<?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>164071</bug_id>
          
          <creation_ts>2016-10-27 12:50:02 -0700</creation_ts>
          <short_desc>Sync up all copies of testharnessreport.js</short_desc>
          <delta_ts>2016-10-27 14:17:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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=164064</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1245209</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-27 12:50:02 -0700</bug_when>
    <thetext>Sync up all copies on testharnessreport.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245213</commentid>
    <comment_count>1</comment_count>
      <attachid>293045</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-27 12:59:19 -0700</bug_when>
    <thetext>Created attachment 293045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245223</commentid>
    <comment_count>2</comment_count>
      <attachid>293047</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-27 13:14:41 -0700</bug_when>
    <thetext>Created attachment 293047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245228</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-27 13:27:04 -0700</bug_when>
    <thetext>For the http test harness report.js, could we do like in https://bugs.webkit.org/show_bug.cgi?id=159878</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245230</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-27 13:28:56 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; For the http test harness report.js, could we do like in
&gt; https://bugs.webkit.org/show_bug.cgi?id=159878

Are you volunteering? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245232</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-27 13:31:36 -0700</bug_when>
    <thetext>Not today but who knows tomorrow ;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245234</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-27 13:32:10 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Not today but who knows tomorrow ;?

Hey, I am in no hurry :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245254</commentid>
    <comment_count>7</comment_count>
      <attachid>293047</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-27 14:17:42 -0700</bug_when>
    <thetext>Comment on attachment 293047
Patch

Clearing flags on attachment: 293047

Committed r208004: &lt;http://trac.webkit.org/changeset/208004&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245255</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-27 14:17:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293045</attachid>
            <date>2016-10-27 12:59:19 -0700</date>
            <delta_ts>2016-10-27 13:14:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164071-20161027125529.patch</filename>
            <type>text/plain</type>
            <size>25836</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3OTk1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzkwNzRjYjYzZWM0NzIxNjE3N2Mz
N2Q4YWQ4MDcyODQ1ODU0ZjQzYy4uZjU2MDcyODkwODViOWVmOWRiZWI1MWYzM2JjYzI2YzE1ZWY0
YmYzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDE2LTEwLTI3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgU3luYyB1cCBhbGwgY29waWVzIG9mIHRlc3RoYXJu
ZXNzcmVwb3J0LmpzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjQwNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTeW5jIHVwIGFsbCBjb3BpZXMgb2YgdGVzdGhhcm5lc3NyZXBvcnQuanMgZm9yIGNvbnNp
c3RlbmN5LgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtcGxheS10aGVuLXNlZWstYmFjay13aXRoLXJlbW90ZS1jb250cm9sLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVp
cmtzLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLWNzcy1pbi1xdWlya3MtMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy0zLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4t
Y3NzLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1v
cmlnaW4tY3NzLTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
c2FtZS1vcmlnaW4tY3NzLTMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvc2FtZS1vcmlnaW4tY3NzLWluLXF1aXJrcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzOgorICAgICAgICAo
Y29udmVydFJlc3VsdCk6CisgICAgICAgIChzZWxmLnRlc3RSdW5uZXIuYWRkX2NvbXBsZXRpb25f
Y2FsbGJhY2suKToKKyAgICAgICAgKHNlbGYudGVzdFJ1bm5lci5hZGRfY29tcGxldGlvbl9jYWxs
YmFjayk6CisgICAgICAgIChhZGRfY29tcGxldGlvbl9jYWxsYmFjay5zYW5pdGl6ZSk6IERlbGV0
ZWQuCisgICAgICAgIChhZGRfY29tcGxldGlvbl9jYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAg
ICogaW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anM6CisgICAgICAgIChjb252ZXJ0UmVzdWx0KToKKyAgICAgICAgKHNlbGYudGVzdFJ1bm5lci5h
ZGRfY29tcGxldGlvbl9jYWxsYmFjay4pOgorICAgICAgICAoc2VsZi50ZXN0UnVubmVyLmFkZF9j
b21wbGV0aW9uX2NhbGxiYWNrKToKKyAgICAgICAgKGlzQ1NTV0dUZXN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKGlzSlNUZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKGFkZF9jb21wbGV0aW9uX2NhbGxi
YWNrLnNhbml0aXplKTogRGVsZXRlZC4KKyAgICAgICAgKGFkZF9jb21wbGV0aW9uX2NhbGxiYWNr
LmRvbmUpOiBEZWxldGVkLgorICAgICAgICAoYWRkX2NvbXBsZXRpb25fY2FsbGJhY2spOiBEZWxl
dGVkLgorICAgICAgICAqIHJlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qczoKKyAgICAgICAg
KHNlbGYudGVzdFJ1bm5lci5hZGRfY29tcGxldGlvbl9jYWxsYmFjay4pOgorICAgICAgICAoc2Vs
Zi50ZXN0UnVubmVyLmFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKToKKworMjAxNi0xMC0yNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIHRlc3RoYXJuZXNzcmVwb3J0
LmpzIHNob3VsZCBzYW5pdGl6ZSB0aGUgcmVzdWx0cyBiZWZvcmUgcHJpbnRpbmcgdGhlbQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MDY0CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLXBsYXktdGhlbi1zZWVrLWJhY2std2l0aC1yZW1vdGUtY29udHJvbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1wbGF5LXRoZW4tc2Vlay1iYWNrLXdpdGgtcmVtb3RlLWNvbnRyb2wtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGNiNzBhZmZmNTE5OTM4ZmYxOWU0MjczNGE4MGU1N2MzMGI5MjA1ZjYuLjUzYjBkZTRjYzg5
MGY4N2VlYTI2MGZmZWI1YWJiOTdlNTQyOWQyNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXktdGhlbi1zZWVrLWJh
Y2std2l0aC1yZW1vdGUtY29udHJvbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS10aGVuLXNlZWstYmFj
ay13aXRoLXJlbW90ZS1jb250cm9sLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKLSAKKwog
UEFTUyBUZXN0IHBsYXlpbmcgdGhlbiBzZWVraW5nIGJhY2sgd2l0aCByZW1vdGUgY29udHJvbCBj
b21tYW5kLihQQVNTIGlmIG5vIGNyYXNoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy0xLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1x
dWlya3MtMS1leHBlY3RlZC50eHQKaW5kZXggMWVkNmYwNDQ3MmMxZWI1YWJkMzA0MzE1M2QzYTgz
OGM5YTdjMGRhOC4uZTZlMzA0YTQ3ZmVjODNhYjc5NmQxZWFlYTNlMGQ3MDE4ZGRmNTRiNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3Nz
LWluLXF1aXJrcy0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTEtZXhwZWN0ZWQudHh0CkBAIC0xLDUg
KzEsNSBAQAogQ09OU09MRSBNRVNTQUdFOiBEaWQgbm90IHBhcnNlIHN0eWxlc2hlZXQgYXQgJ2h0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD1odHRwOi8vbG9j
YWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3hvcmlnaW5jc3MxLmh0bWwnIGJlY2F1c2Ug
bm9uIENTUyBNSU1FIHR5cGVzIGFyZSBub3QgYWxsb3dlZCBmb3IgY3Jvc3Mtb3JpZ2luIHN0eWxl
c2hlZXRzLgogCiBQQVNTIFRlc3RpbmcgY3Jvc3Mtb3JpZ2luIGFuZCBNSU1FIGJlaGF2aW9yIGZv
ciBDU1MuIAotUEFTUyB4b3JpZ2luY3NzMS5odG1sIHNob3VsZCBub3QgYmUgbG9hZGVkIHZpYSA8
bGluaz4uIAorUEFTUyB4b3JpZ2luY3NzMS5odG1sIHNob3VsZCBub3QgYmUgbG9hZGVkIHZpYSAm
bHQ7bGluayZndDsuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy0yLWV4cGVj
dGVkLnR4dAppbmRleCAzYWQ1NTkwYWQ5MTM5ODQ2MTRhNzc0MTQ5NzkwYTQ2YjFlYzAzYWU5Li43
YjIyNWZkZDM0MDc4MDAwYWY4ZjcxMWFlNWJhZmRkMWMwNzA0YzI1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLWNzcy1pbi1xdWlya3MtMi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBDT05T
T0xFIE1FU1NBR0U6IERpZCBub3QgcGFyc2Ugc3R5bGVzaGVldCBhdCAnaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMveG9yaWdpbmNzczIuaHRtbCcgYmVjYXVzZSBub24gQ1NTIE1JTUUg
dHlwZXMgYXJlIG5vdCBhbGxvd2VkIGZvciBjcm9zcy1vcmlnaW4gc3R5bGVzaGVldHMuCiAKIFBB
U1MgVGVzdGluZyBjcm9zcy1vcmlnaW4gYW5kIE1JTUUgYmVoYXZpb3IgZm9yIENTUy4gCi1QQVNT
IHhvcmlnaW5jc3MyLmh0bWwgc2hvdWxkIG5vdCBiZSBsb2FkZWQgZWl0aGVyIHZpYSA8bGluaz4g
b3IgQGltcG9ydC4gCitQQVNTIHhvcmlnaW5jc3MyLmh0bWwgc2hvdWxkIG5vdCBiZSBsb2FkZWQg
ZWl0aGVyIHZpYSAmbHQ7bGluayZndDsgb3IgQGltcG9ydC4gCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtMy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdp
bi1jc3MtaW4tcXVpcmtzLTMtZXhwZWN0ZWQudHh0CmluZGV4IDgyZjBkMGJhMDgzYTgwMWZjMjRl
ZTJkNzE2MWViZGYzMWQyNjZhMTIuLmQ0NmVlZWEwZWNmNDRkYzdlMjRlMDA0ZmZiOWZkMjk0ZGEx
NTkwZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLWNzcy1pbi1xdWlya3MtMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy0zLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDQgQEAKIAogUEFTUyBUZXN0aW5nIGNyb3NzLW9yaWdpbiBhbmQgTUlNRSBi
ZWhhdmlvciBmb3IgQ1NTLiAKLVBBU1MgeG9yaWdpbmNzczEuY3NzIHNob3VsZCBiZSBsb2FkZWQg
dmlhIDxsaW5rPiAKK1BBU1MgeG9yaWdpbmNzczEuY3NzIHNob3VsZCBiZSBsb2FkZWQgdmlhICZs
dDtsaW5rJmd0OyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy00LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtNC1leHBlY3Rl
ZC50eHQKaW5kZXggNDVhNmMzMDBhNzQ0MTQyNDdlM2FiMTQwYTQ5MmI1NjRiN2Y3Y2RkZi4uMWM5
Y2JmNTgyZjE2ZmE2YWE1NzkwYTA4ZTM4YzRmOGQxYmMzNmQ2OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy00LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9y
aWdpbi1jc3MtaW4tcXVpcmtzLTQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNT
IFRlc3RpbmcgY3Jvc3Mtb3JpZ2luIGFuZCBNSU1FIGJlaGF2aW9yIGZvciBDU1MuIAotUEFTUyB4
b3JpZ2luY3NzMy5odG1sIHNob3VsZCBiZSBsb2FkZWQgdmlhIDxsaW5rPiAKK1BBU1MgeG9yaWdp
bmNzczMuaHRtbCBzaG91bGQgYmUgbG9hZGVkIHZpYSAmbHQ7bGluayZndDsgCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3NzLTEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1j
c3MtMS1leHBlY3RlZC50eHQKaW5kZXggM2JjY2M3YjQyMjc0MzAxZWQ2Y2E3MjIyYThlNDMyNmVi
ODYzNmU4Zi4uMTExMzk3YmNiYjY1MmY5N2U4Mzk2YmViODYyZDQ2Y2YzOTEwNzBiMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9y
aWdpbi1jc3MtMS1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6
IERpZCBub3QgcGFyc2Ugc3R5bGVzaGVldCBhdCAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291
cmNlcy9yZWRpcmVjdC5waHA/dXJsPS9zZWN1cml0eS9yZXNvdXJjZXMveG9yaWdpbmNzczEuaHRt
bCcgYmVjYXVzZSBub24gQ1NTIE1JTUUgdHlwZXMgYXJlIG5vdCBhbGxvd2VkIGluIHN0cmljdCBt
b2RlLgogCiBQQVNTIFRlc3Rpbmcgc2FtZS1vcmlnaW4gYW5kIE1JTUUgYmVoYXZpb3IgZm9yIENT
Uy4gCi1QQVNTIHhvcmlnaW5jc3MxLmh0bWwgc2hvdWxkIG5vdCBiZSBsb2FkZWQgdmlhIDxsaW5r
Pi4gCitQQVNTIHhvcmlnaW5jc3MxLmh0bWwgc2hvdWxkIG5vdCBiZSBsb2FkZWQgdmlhICZsdDts
aW5rJmd0Oy4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
c2FtZS1vcmlnaW4tY3NzLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMi1leHBlY3RlZC50eHQKaW5kZXggMzE0Y2EzNjk2YjBl
NDJkYjc4NGI4YTdhN2Q0MGRmNDZkZTFkYzU2ZC4uMDMyYjFmMmYyNDZjYmIzYmI0OWVmMmU1MmRm
MTA5YzBlMTk3ZjliOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9zYW1lLW9yaWdpbi1jc3MtMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1
IEBACiBDT05TT0xFIE1FU1NBR0U6IERpZCBub3QgcGFyc2Ugc3R5bGVzaGVldCBhdCAnaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPS9zZWN1cml0eS9yZXNv
dXJjZXMveG9yaWdpbmNzczIuaHRtbCcgYmVjYXVzZSBub24gQ1NTIE1JTUUgdHlwZXMgYXJlIG5v
dCBhbGxvd2VkIGluIHN0cmljdCBtb2RlLgogCiBQQVNTIFRlc3Rpbmcgc2FtZS1vcmlnaW4gYW5k
IE1JTUUgYmVoYXZpb3IgZm9yIENTUy4gCi1QQVNTIHhvcmlnaW5jc3MyLmh0bWwgc2hvdWxkIG5v
dCBiZSBsb2FkZWQgZWl0aGVyIHZpYSA8bGluaz4gb3IgQGltcG9ydC4gCitQQVNTIHhvcmlnaW5j
c3MyLmh0bWwgc2hvdWxkIG5vdCBiZSBsb2FkZWQgZWl0aGVyIHZpYSAmbHQ7bGluayZndDsgb3Ig
QGltcG9ydC4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
c2FtZS1vcmlnaW4tY3NzLTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMy1leHBlY3RlZC50eHQKaW5kZXggYjZiYTdjMjQ4ODUz
MTg1NTQ4MThlYWFlMWE1MjE5ZjdlMjI2NTk3Mi4uYWVlMzk4Yjk2ZGIxMjI1Yzc4MTg1YzFjYjZh
YzU1ODk1MzYzOGMzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9zYW1lLW9yaWdpbi1jc3MtMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0
IEBACiAKIFBBU1MgVGVzdGluZyBzYW1lLW9yaWdpbiBhbmQgTUlNRSBiZWhhdmlvciBmb3IgQ1NT
LiAKLVBBU1MgeG9yaWdpbmNzczEuY3NzIHNob3VsZCBiZSBsb2FkZWQgdmlhIDxsaW5rPiAKK1BB
U1MgeG9yaWdpbmNzczEuY3NzIHNob3VsZCBiZSBsb2FkZWQgdmlhICZsdDtsaW5rJmd0OyAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1j
c3MtaW4tcXVpcmtzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvc2FtZS1vcmlnaW4tY3NzLWluLXF1aXJrcy1leHBlY3RlZC50eHQKaW5kZXggZDIwMzRmYmYz
ZDI3YzQzYjE3MjY3NjM5ODVkNmUxZjI5ZjRmNzZhMy4uZDMxNzU3MzAwOGViODUxMzEyMGY0NTgx
YmZmMDdlNzE5N2U0OTc5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9zYW1lLW9yaWdpbi1jc3MtaW4tcXVpcmtzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy1pbi1xdWlya3MtZXhwZWN0
ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAogUEFTUyBiYWNrZ3JvdW5kIGltYWdlIGxvYWRlZAogCiBQ
QVNTIFRlc3Rpbmcgc2FtZS1vcmlnaW4gYW5kIE1JTUUgYmVoYXZpb3IgZm9yIENTUy4gCi1QQVNT
IHhvcmlnaW5jc3MxLmh0bWwgc2hvdWxkIGJlIGxvYWRlZCB2aWEgPGxpbms+LiAKLVBBU1MgeG9y
aWdpbmNzczIuaHRtbCBzaG91bGQgYmUgbG9hZGVkIGVpdGhlciB2aWEgPGxpbms+IG9yIEBpbXBv
cnQuIAotUEFTUyB4b3JpZ2luY3NzMS5jc3Mgc2hvdWxkIGJlIGxvYWRlZCB2aWEgPGxpbms+IAor
UEFTUyB4b3JpZ2luY3NzMS5odG1sIHNob3VsZCBiZSBsb2FkZWQgdmlhICZsdDtsaW5rJmd0Oy4g
CitQQVNTIHhvcmlnaW5jc3MyLmh0bWwgc2hvdWxkIGJlIGxvYWRlZCBlaXRoZXIgdmlhICZsdDts
aW5rJmd0OyBvciBAaW1wb3J0LiAKK1BBU1MgeG9yaWdpbmNzczEuY3NzIHNob3VsZCBiZSBsb2Fk
ZWQgdmlhICZsdDtsaW5rJmd0OyAKIFBBU1MgeG9yaWdpbmNzczMuaHRtbCBzaG91bGQgYmUgbG9h
ZGVkIAogUEFTUyB4b3JpZ2luY3NzNC5odG1sIHNob3VsZCBiZSBsb2FkZWQgdmlhIEBpbXBvcnQu
IAogUEFTUyB4b3JpZ2luY3NzMi5jc3Mgc2hvdWxkIGJlIGxvYWRlZC4gCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMKaW5kZXggOTBmNTExMDI3NzExMWIwZjgxOTIzMWQ0YzYxYTA1Y2I1ZWRlZDE0My4uYzIzOWU0
ZjE4NTc0MjdjNDkyNDVhNmU1Nzc1OTdmMWYxOWNiZmJlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcwpA
QCAtMiwxMCArMiw5IEBACiAgKiBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIHZlbmRvcnMgdG8g
aW1wbGVtZW50DQogICogY29kZSBuZWVkZWQgdG8gaW50ZWdyYXRlIHRlc3RoYXJuZXNzLmpzIHRl
c3RzIHdpdGggdGhlaXIgb3duIHRlc3Qgc3lzdGVtcy4NCiAgKg0KLSAqIFR5cGljYWxseSB0ZXN0
IHN5c3RlbSBpbnRlZ3JhdGlvbiB3aWxsIGF0dGFjaCBjYWxsYmFja3Mgd2hlbiBlYWNoIHRlc3Qg
aGFzDQotICogcnVuLCB1c2luZyBhZGRfcmVzdWx0X2NhbGxiYWNrKGNhbGxiYWNrKHRlc3QpKSwg
b3Igd2hlbiB0aGUgd2hvbGUgdGVzdCBmaWxlDQotICogaGFzIGNvbXBsZXRlZCwgdXNpbmcgDQot
ICogYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soY2FsbGJhY2sodGVzdHMsIGhhcm5lc3Nfc3RhdHVz
KSkuDQorICogVHlwaWNhbGx5IHN1Y2ggaW50ZWdyYXRpb24gd2lsbCBhdHRhY2ggY2FsbGJhY2tz
IHdoZW4gZWFjaCB0ZXN0IGlzDQorICogaGFzIHJ1biwgdXNpbmcgYWRkX3Jlc3VsdF9jYWxsYmFj
ayhjYWxsYmFjayh0ZXN0KSksIG9yIHdoZW4gdGhlIHdob2xlIHRlc3QgZmlsZSBoYXMNCisgKiBj
b21wbGV0ZWQsIHVzaW5nIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGNhbGxiYWNrKHRlc3RzLCBo
YXJuZXNzX3N0YXR1cykpLg0KICAqDQogICogRm9yIG1vcmUgZG9jdW1lbnRhdGlvbiBhYm91dCB0
aGUgY2FsbGJhY2sgZnVuY3Rpb25zIGFuZCB0aGUNCiAgKiBwYXJhbWV0ZXJzIHRoZXkgYXJlIGNh
bGxlZCB3aXRoIHNlZSB0ZXN0aGFybmVzcy5qcw0KQEAgLTE1LDc3ICsxNCw4MCBAQAogaWYgKHNl
bGYudGVzdFJ1bm5lcikgew0KICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCiAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7DQorICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRv
d3MoKTsNCisgICAgLy8gTGV0J3MgcmVzdHJpY3QgY2FsbGluZyB0ZXN0aGFybmVzcyB0aW1lb3V0
KCkgdG8gd3B0c2VydmUgdGVzdHMgZm9yIHRoZSBtb21lbnQuDQorICAgIC8vIFRoYXQgd2lsbCBs
aW1pdCB0aGUgaW1wYWN0IHRvIGEgc21hbGwgbnVtYmVyIG9mIHRlc3RzLg0KKyAgICAvLyBUaGUg
cmlzayBpcyB0aGF0IHRlc3RoYXJuZXNzIHRpbWVvdXQoKSBtaWdodCBiZSBjYWxsZWQgdG8gbGF0
ZSBvbiBzbG93IGJvdHMgdG8gZmluaXNoIHByb3Blcmx5Lg0KKyAgICBpZiAodGVzdFJ1bm5lci50
aW1lb3V0ICYmIGxvY2F0aW9uLnBvcnQgPT0gODgwMCkNCisgICAgICAgIHNldFRpbWVvdXQodGlt
ZW91dCwgdGVzdFJ1bm5lci50aW1lb3V0ICogMC45KTsNCiB9DQogDQogLy8gRnVuY3Rpb24gdXNl
ZCB0byBjb252ZXJ0IHRoZSB0ZXN0IHN0YXR1cyBjb2RlIGludG8NCiAvLyB0aGUgY29ycmVzcG9u
ZGluZyBzdHJpbmcNCi1mdW5jdGlvbiBjb252ZXJ0UmVzdWx0KHJlc3VsdFN0YXR1cyl7DQotCWlm
KHJlc3VsdFN0YXR1cyA9PSAwKQ0KLQkJcmV0dXJuKCJQQVNTIik7DQotCWVsc2UgaWYocmVzdWx0
U3RhdHVzID09IDEpDQotCQlyZXR1cm4oIkZBSUwiKTsNCi0JZWxzZSBpZihyZXN1bHRTdGF0dXMg
PT0gMikNCi0JCXJldHVybigiVElNRU9VVCIpOw0KLQllbHNlDQotCQlyZXR1cm4oIk5PVFJVTiIp
Ow0KK2Z1bmN0aW9uIGNvbnZlcnRSZXN1bHQocmVzdWx0U3RhdHVzKQ0KK3sNCisgICAgaWYocmVz
dWx0U3RhdHVzID09IDApDQorICAgICAgICByZXR1cm4oIlBBU1MiKTsNCisgICAgZWxzZSBpZihy
ZXN1bHRTdGF0dXMgPT0gMSkNCisgICAgICAgIHJldHVybigiRkFJTCIpOw0KKyAgICBlbHNlIGlm
KHJlc3VsdFN0YXR1cyA9PSAyKQ0KKyAgICAgICAgcmV0dXJuKCJUSU1FT1VUIik7DQorICAgIGVs
c2UNCisgICAgICAgIHJldHVybigiTk9UUlVOIik7DQogfQ0KIA0KLS8qIERpc2FibGUgdGhlIGRl
ZmF1bHQgb3V0cHV0IG9mIHRlc3RoYXJuZXNzLmpzLiAgVGhlIGRlZmF1bHQgb3V0cHV0IGZvcm1h
dHMNCi0qICB0ZXN0IHJlc3VsdHMgaW50byBhbiBIVE1MIHRhYmxlLiAgV2hlbiB0aGF0IHRhYmxl
IGlzIGR1bXBlZCBhcyB0ZXh0LCBubw0KLSogIHNwYWNpbmcgYmV0d2VlbiBjZWxscyBpcyBwcmVz
ZXJ2ZWQsIGFuZCBpdCBpcyB0aGVyZWZvcmUgbm90IHJlYWRhYmxlLiBCeQ0KLSogIHNldHRpbmcg
b3V0cHV0IHRvIGZhbHNlLCB0aGUgSFRNTCB0YWJsZSB3aWxsIG5vdCBiZSBjcmVhdGVkDQotKi8N
Ci1zZXR1cCh7Im91dHB1dCI6ZmFsc2V9KTsNCitpZiAoc2VsZi50ZXN0UnVubmVyKSB7DQorICAg
IC8qIERpc2FibGUgdGhlIGRlZmF1bHQgb3V0cHV0IG9mIHRlc3RoYXJuZXNzLmpzLiAgVGhlIGRl
ZmF1bHQgb3V0cHV0IGZvcm1hdHMNCisgICAgKiAgdGVzdCByZXN1bHRzIGludG8gYW4gSFRNTCB0
YWJsZS4gIFdoZW4gdGhhdCB0YWJsZSBpcyBkdW1wZWQgYXMgdGV4dCwgbm8NCisgICAgKiAgc3Bh
Y2luZyBiZXR3ZWVuIGNlbGxzIGlzIHByZXNlcnZlZCwgYW5kIGl0IGlzIHRoZXJlZm9yZSBub3Qg
cmVhZGFibGUuIEJ5DQorICAgICogIHNldHRpbmcgb3V0cHV0IHRvIGZhbHNlLCB0aGUgSFRNTCB0
YWJsZSB3aWxsIG5vdCBiZSBjcmVhdGVkDQorICAgICovDQorICAgIHNldHVwKHsib3V0cHV0Ijog
ZmFsc2UsICJleHBsaWNpdF90aW1lb3V0IjogdHJ1ZX0pOw0KIA0KLS8qICBVc2luZyBhIGNhbGxi
YWNrIGZ1bmN0aW9uLCB0ZXN0IHJlc3VsdHMgd2lsbCBiZSBhZGRlZCB0byB0aGUgcGFnZSBpbiBh
IA0KLSogICBtYW5uZXIgdGhhdCBhbGxvd3MgZHVtcEFzVGV4dCB0byBwcm9kdWNlIHJlYWRhYmxl
IHRlc3QgcmVzdWx0cw0KLSovDQotYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24gKHRl
c3RzLCBoYXJuZXNzX3N0YXR1cyl7DQotCQ0KLQkvLyBDcmVhdGUgZWxlbWVudCB0byBob2xkIHJl
c3VsdHMNCi0JdmFyIHJlc3VsdHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTsNCi0J
DQotCS8vIERlY2xhcmUgcmVzdWx0IHN0cmluZw0KLQl2YXIgcmVzdWx0U3RyID0gIlxuIjsNCisg
ICAgLyogIFVzaW5nIGEgY2FsbGJhY2sgZnVuY3Rpb24sIHRlc3QgcmVzdWx0cyB3aWxsIGJlIGFk
ZGVkIHRvIHRoZSBwYWdlIGluIGEgDQorICAgICogICBtYW5uZXIgdGhhdCBhbGxvd3MgZHVtcEFz
VGV4dCB0byBwcm9kdWNlIHJlYWRhYmxlIHRlc3QgcmVzdWx0cw0KKyAgICAqLw0KKyAgICBhZGRf
Y29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSB7DQor
ICAgICAgICAvLyBXYWl0IGZvciBhbnkgb3RoZXIgY29tcGxldGlvbiBjYWxsYmFja3MNCisgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQorICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTsNCisgICAgICAgICAgICB2YXIgcmVzdWx0U3Ry
ID0gIlxuIjsNCiANCi0gICAgICAgIC8vIFNhbml0aXplcyB0aGUgZ2l2ZW4gdGV4dCBmb3IgZGlz
cGxheSBpbiB0ZXN0IHJlc3VsdHMuDQotICAgICAgICBmdW5jdGlvbiBzYW5pdGl6ZSh0ZXh0KSB7
DQotICAgICAgICAgICAgaWYgKCF0ZXh0KSB7DQotICAgICAgICAgICAgICAgIHJldHVybiAiIjsN
CisgICAgICAgICAgICAvLyBTYW5pdGl6ZXMgdGhlIGdpdmVuIHRleHQgZm9yIGRpc3BsYXkgaW4g
dGVzdCByZXN1bHRzLg0KKyAgICAgICAgICAgIGZ1bmN0aW9uIHNhbml0aXplKHRleHQpIHsNCisg
ICAgICAgICAgICAgICAgaWYgKCF0ZXh0KSB7DQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
IiI7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgdGV4dCA9IHRleHQucmVw
bGFjZSgvXDAvZywgIlxcMCIpOw0KKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5yZXBsYWNl
KC9cci9nLCAiXFxyIik7DQogICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgIC8vIEVzY2FwZSBu
dWxsIGNoYXJhY3RlcnMsIG90aGVyd2lzZSBkaWZmIHdpbGwgdGhpbmsgdGhlIGZpbGUgaXMgYmlu
YXJ5Lg0KLSAgICAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1wwL2csICJcXDAiKTsNCi0g
ICAgICAgICAgICAvLyBFc2NhcGUgY2FycmlhZ2UgcmV0dXJucyBhcyB0aGV5IGJyZWFrIHJpZXR2
ZWxkJ3MgZGlmZnRvb2xzLg0KLSAgICAgICAgICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoL1xyL2cs
ICJcXHIiKTsNCi0gICAgICAgIH0NCiANCi0JDQotCS8vIENoZWNrIGhhcm5lc3Nfc3RhdHVzLiAg
SWYgaXQgaXMgbm90IDAsIHRlc3RzIGRpZCBub3QNCi0JLy8gZXhlY3V0ZSBjb3JyZWN0bHksIG91
dHB1dCB0aGUgZXJyb3IgY29kZSBhbmQgbWVzc2FnZQ0KLQlpZihoYXJuZXNzX3N0YXR1cy5zdGF0
dXMgIT0gMCl7DQotCQlyZXN1bHRTdHIgKz0gIkhhcm5lc3MgRXJyb3IuIGhhcm5lc3Nfc3RhdHVz
LnN0YXR1cyA9ICIgKyANCi0JCQkJCSBoYXJuZXNzX3N0YXR1cy5zdGF0dXMgKw0KLQkJCQkJICIg
LCBoYXJuZXNzX3N0YXR1cy5tZXNzYWdlID0gIiArDQotCQkJCQkgaGFybmVzc19zdGF0dXMubWVz
c2FnZTsNCi0JfQ0KLQllbHNlIHsNCi0JCS8vIEl0ZXJhdGUgdGhyb3VnaCB0ZXN0cyBhcnJheSBh
bmQgYnVpbGQgc3RyaW5nIHRoYXQgY29udGFpbnMNCi0JCS8vIHJlc3VsdHMgZm9yIGFsbCB0ZXN0
cw0KLQkJZm9yKHZhciBpPTA7IGk8dGVzdHMubGVuZ3RoOyBpKyspewkJCQkgDQotCQkJcmVzdWx0
U3RyICs9IGNvbnZlcnRSZXN1bHQodGVzdHNbaV0uc3RhdHVzKSArICIgIiArIA0KLQkJCQkJc2Fu
aXRpemUodGVzdHNbaV0ubmFtZSkgKyAiICIgKw0KLQkJCQkJc2FuaXRpemUodGVzdHNbaV0ubWVz
c2FnZSkgKyAiXG4iOw0KLQkJfQkJCQ0KLQl9DQorICAgICAgICAgICAgaWYoaGFybmVzc19zdGF0
dXMuc3RhdHVzICE9IDApDQorICAgICAgICAgICAgICAgIHJlc3VsdFN0ciArPSAiSGFybmVzcyBF
cnJvciAoIiArIGNvbnZlcnRSZXN1bHQoaGFybmVzc19zdGF0dXMuc3RhdHVzKSArICIpLCBtZXNz
YWdlID0gIiArIGhhcm5lc3Nfc3RhdHVzLm1lc3NhZ2UgKyAiXG5cbiI7DQogDQotCS8vIFNldCBy
ZXN1bHRzIGVsZW1lbnQncyBpbm5lckhUTUwgdG8gdGhlIHJlc3VsdHMgc3RyaW5nDQotCXJlc3Vs
dHMuaW5uZXJIVE1MID0gcmVzdWx0U3RyOw0KKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdGVzdHMubGVuZ3RoOyBpKyspIHsNCisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBz
YW5pdGl6ZSh0ZXN0c1tpXS5tZXNzYWdlKTsNCisgICAgICAgICAgICAgICAgaWYgKHRlc3RzW2ld
LnN0YXR1cyA9PSAxICYmICF0ZXN0c1tpXS5kdW1wU3RhY2spIHsNCisgICAgICAgICAgICAgICAg
ICAgIC8vIFJlbW92ZSBzdGFjayBmb3IgZmFpbGVkIHRlc3RzIGZvciBwcm9wZXIgc3RyaW5nIGNv
bXBhcmlzb24gd2l0aG91dCBmaWxlIHBhdGhzLg0KKyAgICAgICAgICAgICAgICAgICAgLy8gRm9y
IGEgdGVzdCB0byBkdW1wIHRoZSBzdGFjayBzZXQgaXRzIGR1bXBTdGFjayBhdHRyaWJ1dGUgdG8g
dHJ1ZS4NCisgICAgICAgICAgICAgICAgICAgIHZhciBzdGFja0luZGV4ID0gbWVzc2FnZS5pbmRl
eE9mKCIoc3RhY2s6Iik7DQorICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2tJbmRleCA+IDAp
DQorICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2Uuc3Vic3RyKDAsIHN0
YWNrSW5kZXgpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIHJlc3VsdFN0
ciArPSBjb252ZXJ0UmVzdWx0KHRlc3RzW2ldLnN0YXR1cykgKyAiICIgKyBzYW5pdGl6ZSh0ZXN0
c1tpXS5uYW1lKSArICIgIiArIG1lc3NhZ2UgKyAiXG4iOw0KKyAgICAgICAgICAgIH0NCiANCi0J
Ly8gQWRkIHJlc3VsdHMgZWxlbWVudCB0byBkb2N1bWVudA0KLQlkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHJlc3VsdHMpOw0KKyAgICAgICAgICAgIHJlc3VsdHMuaW5uZXJUZXh0ID0gcmVzdWx0
U3RyOw0KKyAgICAgICAgICAgIHZhciBsb2cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9n
Iik7DQorICAgICAgICAgICAgaWYgKGxvZykNCisgICAgICAgICAgICAgICAgbG9nLmFwcGVuZENo
aWxkKHJlc3VsdHMpOw0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChyZXN1bHRzKTsNCiANCi0JaWYgKHNlbGYudGVzdFJ1bm5lcikN
Ci0JCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOw0KLX0pOw0KKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOw0KKyAgICAgICAgfSwgMCk7DQorICAgIH0pOw0KIA0KLS8vIHZpbTog
c2V0IGV4cGFuZHRhYiBzaGlmdHdpZHRoPTQgdGFic3RvcD00Og0KKyAgICBpZiAod2luZG93Lmlu
dGVybmFscykNCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UmVzb3VyY2VUaW1pbmdTdXBw
b3J0KHRydWUpOw0KK30NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9o
dHRwL3Rlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL2JsaW5rL2h0dHAvdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzCmlu
ZGV4IDg2ODczZDgxNmU2MWM3NTIzMjdiMjcyZGYxZmU3NmQzNzhhNGFhZTEuLmMyMzllNGYxODU3
NDI3YzQ5MjQ1YTZlNTc3NTk3ZjFmMTljYmZiZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL2JsaW5rL2h0dHAvdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2h0dHAvdGVzdHMvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzCkBAIC0xLDEzMSArMSw5MyBAQAotLyoKLSAqIFRISVMgRklMRSBJTlRF
TlRJT05BTExZIExFRlQgQkxBTksKLSAqCi0gKiBNb3JlIHNwZWNpZmljYWxseSwgdGhpcyBmaWxl
IGlzIGludGVuZGVkIGZvciB2ZW5kb3JzIHRvIGltcGxlbWVudAotICogY29kZSBuZWVkZWQgdG8g
aW50ZWdyYXRlIHRlc3RoYXJuZXNzLmpzIHRlc3RzIHdpdGggdGhlaXIgb3duIHRlc3Qgc3lzdGVt
cy4KLSAqCi0gKiBUeXBpY2FsbHkgc3VjaCBpbnRlZ3JhdGlvbiB3aWxsIGF0dGFjaCBjYWxsYmFj
a3Mgd2hlbiBlYWNoIHRlc3QgaXMKLSAqIGhhcyBydW4sIHVzaW5nIGFkZF9yZXN1bHRfY2FsbGJh
Y2soY2FsbGJhY2sodGVzdCkpLCBvciB3aGVuIHRoZSB3aG9sZSB0ZXN0IGZpbGUgaGFzCi0gKiBj
b21wbGV0ZWQsIHVzaW5nIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGNhbGxiYWNrKHRlc3RzLCBo
YXJuZXNzX3N0YXR1cykpLgotICoKLSAqIEZvciBtb3JlIGRvY3VtZW50YXRpb24gYWJvdXQgdGhl
IGNhbGxiYWNrIGZ1bmN0aW9ucyBhbmQgdGhlCi0gKiBwYXJhbWV0ZXJzIHRoZXkgYXJlIGNhbGxl
ZCB3aXRoIHNlZSB0ZXN0aGFybmVzcy5qcwotICovCi0KLS8vIFNldHVwIGZvciBXZWJLaXQgSmF2
YVNjcmlwdCB0ZXN0cwotaWYgKHNlbGYudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5u
ZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICB0ZXN0UnVubmVyLnNldENsb3NlUmVtYWluaW5n
V2luZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKLX0KLQotLy8gRnVuY3Rpb24gdXNlZCB0byBjb252
ZXJ0IHRoZSB0ZXN0IHN0YXR1cyBjb2RlIGludG8KLS8vIHRoZSBjb3JyZXNwb25kaW5nIHN0cmlu
ZwotZnVuY3Rpb24gY29udmVydFJlc3VsdChyZXN1bHRTdGF0dXMpIHsKLSAgICBpZihyZXN1bHRT
dGF0dXMgPT0gMCkKLSAgICAgICAgcmV0dXJuKCJQQVNTIik7Ci0gICAgZWxzZSBpZihyZXN1bHRT
dGF0dXMgPT0gMSkKLSAgICAgICAgcmV0dXJuKCJGQUlMIik7Ci0gICAgZWxzZSBpZihyZXN1bHRT
dGF0dXMgPT0gMikKLSAgICAgICAgcmV0dXJuKCJUSU1FT1VUIik7Ci0gICAgZWxzZQotICAgICAg
ICByZXR1cm4oIk5PVFJVTiIpOwotfQotCi0vKiBEaXNhYmxlIHRoZSBkZWZhdWx0IG91dHB1dCBv
ZiB0ZXN0aGFybmVzcy5qcy4gIFRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXRzCi0qICB0ZXN0IHJl
c3VsdHMgaW50byBhbiBIVE1MIHRhYmxlLiAgV2hlbiB0aGF0IHRhYmxlIGlzIGR1bXBlZCBhcyB0
ZXh0LCBubwotKiAgc3BhY2luZyBiZXR3ZWVuIGNlbGxzIGlzIHByZXNlcnZlZCwgYW5kIGl0IGlz
IHRoZXJlZm9yZSBub3QgcmVhZGFibGUuIEJ5Ci0qICBzZXR0aW5nIG91dHB1dCB0byBmYWxzZSwg
dGhlIEhUTUwgdGFibGUgd2lsbCBub3QgYmUgY3JlYXRlZAotKi8KLXNldHVwKHsib3V0cHV0Ijpm
YWxzZX0pOwotCi0vKiBJZiB0aGUgdGVzdCBoYXMgYSBtZXRhIHRhZyBuYW1lZCBmbGFncyBhbmQg
dGhlIGNvbnRlbnQgY29udGFpbnMgImRvbSIsIHRoZW4gaXQncyBhIENTU1dHIHRlc3QuCi0gKi8K
LWZ1bmN0aW9uIGlzQ1NTV0dUZXN0KCkgewotICAgIHZhciBmbGFncyA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ21ldGFbbmFtZT1mbGFnc10nKSwKLSAgICAgICAgY29udGVudCA9IGZsYWdzID8g
ZmxhZ3MuZ2V0QXR0cmlidXRlKCdjb250ZW50JykgOiBudWxsOwotCi0gICAgcmV0dXJuIGNvbnRl
bnQgJiYgY29udGVudC5tYXRjaCgvXGJkb21cYi8pOwotfQotCi1mdW5jdGlvbiBpc0pTVGVzdCgp
IHsKLSAgICByZXR1cm4gISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcyJdJyk7Ci19Ci0KLS8qICBVc2luZyBhIGNhbGxiYWNrIGZ1bmN0
aW9uLCB0ZXN0IHJlc3VsdHMgd2lsbCBiZSBhZGRlZCB0byB0aGUgcGFnZSBpbiBhCi0qICAgbWFu
bmVyIHRoYXQgYWxsb3dzIGR1bXBBc1RleHQgdG8gcHJvZHVjZSByZWFkYWJsZSB0ZXN0IHJlc3Vs
dHMKLSovCi1hZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nf
c3RhdHVzKSB7Ci0KLSAgICAvLyBDcmVhdGUgZWxlbWVudCB0byBob2xkIHJlc3VsdHMKLSAgICB2
YXIgcmVzdWx0cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpOwotCi0gICAgLy8gRGVj
bGFyZSByZXN1bHQgc3RyaW5nCi0gICAgdmFyIHJlc3VsdFN0ciA9ICJUaGlzIGlzIGEgdGVzdGhh
cm5lc3MuanMtYmFzZWQgdGVzdC5cbiI7Ci0KLSAgICAvLyBTYW5pdGl6ZXMgdGhlIGdpdmVuIHRl
eHQgZm9yIGRpc3BsYXkgaW4gdGVzdCByZXN1bHRzLgotICAgIGZ1bmN0aW9uIHNhbml0aXplKHRl
eHQpIHsKLSAgICAgICAgaWYgKCF0ZXh0KSB7Ci0gICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAg
ICAgIH0KLSAgICAgICAgLy8gRXNjYXBlIG51bGwgY2hhcmFjdGVycywgb3RoZXJ3aXNlIGRpZmYg
d2lsbCB0aGluayB0aGUgZmlsZSBpcyBiaW5hcnkuCi0gICAgICAgIHRleHQgPSB0ZXh0LnJlcGxh
Y2UoL1wwL2csICJcXDAiKTsKLSAgICAgICAgLy8gRXNjYXBlIGNhcnJpYWdlIHJldHVybnMgYXMg
dGhleSBicmVhayByaWV0dmVsZCdzIGRpZmZ0b29scy4KLSAgICAgICAgcmV0dXJuIHRleHQucmVw
bGFjZSgvXHIvZywgIlxcciIpOwotICAgIH0KLQotICAgIC8vIENoZWNrIGhhcm5lc3Nfc3RhdHVz
LiAgSWYgaXQgaXMgbm90IDAsIHRlc3RzIGRpZCBub3QKLSAgICAvLyBleGVjdXRlIGNvcnJlY3Rs
eSwgb3V0cHV0IHRoZSBlcnJvciBjb2RlIGFuZCBtZXNzYWdlCi0gICAgaWYgKGhhcm5lc3Nfc3Rh
dHVzLnN0YXR1cyAhPSAwKSB7Ci0gICAgICAgIHJlc3VsdFN0ciArPSAiSGFybmVzcyBFcnJvci4g
aGFybmVzc19zdGF0dXMuc3RhdHVzID0gIiArCi0gICAgICAgICAgICAgICAgICAgICBoYXJuZXNz
X3N0YXR1cy5zdGF0dXMgKwotICAgICAgICAgICAgICAgICAgICAgIiAsIGhhcm5lc3Nfc3RhdHVz
Lm1lc3NhZ2UgPSAiICsKLSAgICAgICAgICAgICAgICAgICAgIGhhcm5lc3Nfc3RhdHVzLm1lc3Nh
Z2UgKwotICAgICAgICAgICAgICAgICAgICAgIlxuIjsKLSAgICB9IGVsc2UgewotICAgICAgICAv
LyBJdGVyYXRlIHRocm91Z2ggdGVzdHMgYXJyYXkgYW5kIGJ1aWxkIHN0cmluZyB0aGF0IGNvbnRh
aW5zCi0gICAgICAgIC8vIHJlc3VsdHMgZm9yIGFsbCB0ZXN0cwotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICByZXN1bHRTdHIgKz0g
Y29udmVydFJlc3VsdCh0ZXN0c1tpXS5zdGF0dXMpICsgIiAiICsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBzYW5pdGl6ZSh0ZXN0c1tpXS5uYW1lKSArICIgIiArCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgc2FuaXRpemUodGVzdHNbaV0ubWVzc2FnZSkgKyAiXG4iOwotICAgICAgICB9Ci0g
ICAgfQotICAgIHJlc3VsdFN0ciArPSAiSGFybmVzczogdGhlIHRlc3QgcmFuIHRvIGNvbXBsZXRp
b24uXG4iOwotCi0gICAgLy8gU2V0IHJlc3VsdHMgZWxlbWVudCdzIHRleHRDb250ZW50IHRvIHRo
ZSByZXN1bHRzIHN0cmluZwotICAgIHJlc3VsdHMudGV4dENvbnRlbnQgPSByZXN1bHRTdHI7Ci0K
LSAgICBmdW5jdGlvbiBkb25lKCkgewotICAgICAgICBpZiAoc2VsZi50ZXN0UnVubmVyKSB7Ci0g
ICAgICAgICAgICB2YXIgbG9nRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwot
ICAgICAgICAgICAgaWYgKChpc0NTU1dHVGVzdCgpIHx8IGlzSlNUZXN0KCkpICYmIGxvZ0Rpdikg
ewotICAgICAgICAgICAgICAgIC8vIEFzc3VtZSBpdCdzIGEgQ1NTV0cgc3R5bGUgdGVzdCwgYW5k
IGFueXRoaW5nIG90aGVyIHRoYW4gdGhlIGxvZyBkaXYgaXNuJ3QKLSAgICAgICAgICAgICAgICAv
LyBtYXRlcmlhbCB0byB0aGUgdGVzdHJ1bm5lciBvdXRwdXQsIHNvIHNob3VsZCBiZSBoaWRkZW4g
ZnJvbSB0aGUgdGV4dCBkdW1wCi0gICAgICAgICAgICAgICAgdmFyIG5leHQgPSBudWxsOwotICAg
ICAgICAgICAgICAgIGZvciAodmFyIGNoaWxkID0gZG9jdW1lbnQuYm9keS5maXJzdENoaWxkOyBj
aGlsZDsgY2hpbGQgPSBuZXh0KSB7Ci0gICAgICAgICAgICAgICAgICAgIG5leHQgPSBjaGlsZC5u
ZXh0U2libGluZzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlID09IE5v
ZGUuRUxFTUVOVF9OT0RFKQotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuc3R5bGUudmlz
aWJpbGl0eSA9ICJoaWRkZW4iOwotICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjaGlsZC5u
b2RlVHlwZSA9PSBOb2RlLlRFWFRfTk9ERSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoY2hpbGQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIEFkZCByZXN1bHRzIGVsZW1lbnQgdG8gZG9j
dW1lbnQuCi0gICAgICAgIGlmICghZG9jdW1lbnQuYm9keSkKLSAgICAgICAgICAgIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5
IikpOwotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3VsdHMpOwotCi0gICAg
ICAgIGlmIChzZWxmLnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKLSAgICB9Ci0KLSAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcn
KSB7Ci0gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9uZSk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgc2V0VGltZW91dChkb25lLCAwKTsKLSAgICB9Ci19KTsKKy8qDQor
ICogVGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciB2ZW5kb3JzIHRvIGltcGxlbWVudA0KKyAqIGNv
ZGUgbmVlZGVkIHRvIGludGVncmF0ZSB0ZXN0aGFybmVzcy5qcyB0ZXN0cyB3aXRoIHRoZWlyIG93
biB0ZXN0IHN5c3RlbXMuDQorICoNCisgKiBUeXBpY2FsbHkgc3VjaCBpbnRlZ3JhdGlvbiB3aWxs
IGF0dGFjaCBjYWxsYmFja3Mgd2hlbiBlYWNoIHRlc3QgaXMNCisgKiBoYXMgcnVuLCB1c2luZyBh
ZGRfcmVzdWx0X2NhbGxiYWNrKGNhbGxiYWNrKHRlc3QpKSwgb3Igd2hlbiB0aGUgd2hvbGUgdGVz
dCBmaWxlIGhhcw0KKyAqIGNvbXBsZXRlZCwgdXNpbmcgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2so
Y2FsbGJhY2sodGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSkuDQorICoNCisgKiBGb3IgbW9yZSBkb2N1
bWVudGF0aW9uIGFib3V0IHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgYW5kIHRoZQ0KKyAqIHBhcmFt
ZXRlcnMgdGhleSBhcmUgY2FsbGVkIHdpdGggc2VlIHRlc3RoYXJuZXNzLmpzDQorICovDQorDQor
Ly8gU2V0dXAgZm9yIFdlYktpdCBKYXZhU2NyaXB0IHRlc3RzDQoraWYgKHNlbGYudGVzdFJ1bm5l
cikgew0KKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7DQorICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsNCisgICAg
Ly8gTGV0J3MgcmVzdHJpY3QgY2FsbGluZyB0ZXN0aGFybmVzcyB0aW1lb3V0KCkgdG8gd3B0c2Vy
dmUgdGVzdHMgZm9yIHRoZSBtb21lbnQuDQorICAgIC8vIFRoYXQgd2lsbCBsaW1pdCB0aGUgaW1w
YWN0IHRvIGEgc21hbGwgbnVtYmVyIG9mIHRlc3RzLg0KKyAgICAvLyBUaGUgcmlzayBpcyB0aGF0
IHRlc3RoYXJuZXNzIHRpbWVvdXQoKSBtaWdodCBiZSBjYWxsZWQgdG8gbGF0ZSBvbiBzbG93IGJv
dHMgdG8gZmluaXNoIHByb3Blcmx5Lg0KKyAgICBpZiAodGVzdFJ1bm5lci50aW1lb3V0ICYmIGxv
Y2F0aW9uLnBvcnQgPT0gODgwMCkNCisgICAgICAgIHNldFRpbWVvdXQodGltZW91dCwgdGVzdFJ1
bm5lci50aW1lb3V0ICogMC45KTsNCit9DQorDQorLy8gRnVuY3Rpb24gdXNlZCB0byBjb252ZXJ0
IHRoZSB0ZXN0IHN0YXR1cyBjb2RlIGludG8NCisvLyB0aGUgY29ycmVzcG9uZGluZyBzdHJpbmcN
CitmdW5jdGlvbiBjb252ZXJ0UmVzdWx0KHJlc3VsdFN0YXR1cykNCit7DQorICAgIGlmKHJlc3Vs
dFN0YXR1cyA9PSAwKQ0KKyAgICAgICAgcmV0dXJuKCJQQVNTIik7DQorICAgIGVsc2UgaWYocmVz
dWx0U3RhdHVzID09IDEpDQorICAgICAgICByZXR1cm4oIkZBSUwiKTsNCisgICAgZWxzZSBpZihy
ZXN1bHRTdGF0dXMgPT0gMikNCisgICAgICAgIHJldHVybigiVElNRU9VVCIpOw0KKyAgICBlbHNl
DQorICAgICAgICByZXR1cm4oIk5PVFJVTiIpOw0KK30NCisNCitpZiAoc2VsZi50ZXN0UnVubmVy
KSB7DQorICAgIC8qIERpc2FibGUgdGhlIGRlZmF1bHQgb3V0cHV0IG9mIHRlc3RoYXJuZXNzLmpz
LiAgVGhlIGRlZmF1bHQgb3V0cHV0IGZvcm1hdHMNCisgICAgKiAgdGVzdCByZXN1bHRzIGludG8g
YW4gSFRNTCB0YWJsZS4gIFdoZW4gdGhhdCB0YWJsZSBpcyBkdW1wZWQgYXMgdGV4dCwgbm8NCisg
ICAgKiAgc3BhY2luZyBiZXR3ZWVuIGNlbGxzIGlzIHByZXNlcnZlZCwgYW5kIGl0IGlzIHRoZXJl
Zm9yZSBub3QgcmVhZGFibGUuIEJ5DQorICAgICogIHNldHRpbmcgb3V0cHV0IHRvIGZhbHNlLCB0
aGUgSFRNTCB0YWJsZSB3aWxsIG5vdCBiZSBjcmVhdGVkDQorICAgICovDQorICAgIHNldHVwKHsi
b3V0cHV0IjogZmFsc2UsICJleHBsaWNpdF90aW1lb3V0IjogdHJ1ZX0pOw0KKw0KKyAgICAvKiAg
VXNpbmcgYSBjYWxsYmFjayBmdW5jdGlvbiwgdGVzdCByZXN1bHRzIHdpbGwgYmUgYWRkZWQgdG8g
dGhlIHBhZ2UgaW4gYSANCisgICAgKiAgIG1hbm5lciB0aGF0IGFsbG93cyBkdW1wQXNUZXh0IHRv
IHByb2R1Y2UgcmVhZGFibGUgdGVzdCByZXN1bHRzDQorICAgICovDQorICAgIGFkZF9jb21wbGV0
aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywgaGFybmVzc19zdGF0dXMpIHsNCisgICAgICAg
IC8vIFdhaXQgZm9yIGFueSBvdGhlciBjb21wbGV0aW9uIGNhbGxiYWNrcw0KKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsNCisgICAgICAgICAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInByZSIpOw0KKyAgICAgICAgICAgIHZhciByZXN1bHRTdHIgPSAiXG4i
Ow0KKw0KKyAgICAgICAgICAgIC8vIFNhbml0aXplcyB0aGUgZ2l2ZW4gdGV4dCBmb3IgZGlzcGxh
eSBpbiB0ZXN0IHJlc3VsdHMuDQorICAgICAgICAgICAgZnVuY3Rpb24gc2FuaXRpemUodGV4dCkg
ew0KKyAgICAgICAgICAgICAgICBpZiAoIXRleHQpIHsNCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAiIjsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4
dC5yZXBsYWNlKC9cMC9nLCAiXFwwIik7DQorICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0LnJl
cGxhY2UoL1xyL2csICJcXHIiKTsNCisgICAgICAgICAgICB9DQorDQorICAgICAgICAgICAgaWYo
aGFybmVzc19zdGF0dXMuc3RhdHVzICE9IDApDQorICAgICAgICAgICAgICAgIHJlc3VsdFN0ciAr
PSAiSGFybmVzcyBFcnJvciAoIiArIGNvbnZlcnRSZXN1bHQoaGFybmVzc19zdGF0dXMuc3RhdHVz
KSArICIpLCBtZXNzYWdlID0gIiArIGhhcm5lc3Nfc3RhdHVzLm1lc3NhZ2UgKyAiXG5cbiI7DQor
DQorICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgew0K
KyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IHNhbml0aXplKHRlc3RzW2ldLm1lc3NhZ2Up
Ow0KKyAgICAgICAgICAgICAgICBpZiAodGVzdHNbaV0uc3RhdHVzID09IDEgJiYgIXRlc3RzW2ld
LmR1bXBTdGFjaykgew0KKyAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHN0YWNrIGZvciBm
YWlsZWQgdGVzdHMgZm9yIHByb3BlciBzdHJpbmcgY29tcGFyaXNvbiB3aXRob3V0IGZpbGUgcGF0
aHMuDQorICAgICAgICAgICAgICAgICAgICAvLyBGb3IgYSB0ZXN0IHRvIGR1bXAgdGhlIHN0YWNr
IHNldCBpdHMgZHVtcFN0YWNrIGF0dHJpYnV0ZSB0byB0cnVlLg0KKyAgICAgICAgICAgICAgICAg
ICAgdmFyIHN0YWNrSW5kZXggPSBtZXNzYWdlLmluZGV4T2YoIihzdGFjazoiKTsNCisgICAgICAg
ICAgICAgICAgICAgIGlmIChzdGFja0luZGV4ID4gMCkNCisgICAgICAgICAgICAgICAgICAgICAg
ICBtZXNzYWdlID0gbWVzc2FnZS5zdWJzdHIoMCwgc3RhY2tJbmRleCk7DQorICAgICAgICAgICAg
ICAgIH0NCisgICAgICAgICAgICAgICAgcmVzdWx0U3RyICs9IGNvbnZlcnRSZXN1bHQodGVzdHNb
aV0uc3RhdHVzKSArICIgIiArIHNhbml0aXplKHRlc3RzW2ldLm5hbWUpICsgIiAiICsgbWVzc2Fn
ZSArICJcbiI7DQorICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgIHJlc3VsdHMuaW5uZXJU
ZXh0ID0gcmVzdWx0U3RyOw0KKyAgICAgICAgICAgIHZhciBsb2cgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibG9nIik7DQorICAgICAgICAgICAgaWYgKGxvZykNCisgICAgICAgICAgICAgICAg
bG9nLmFwcGVuZENoaWxkKHJlc3VsdHMpOw0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN1bHRzKTsNCisNCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsNCisgICAgICAgIH0sIDApOw0KKyAgICB9KTsNCisN
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpDQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dFJlc291cmNlVGltaW5nU3VwcG9ydCh0cnVlKTsNCit9DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzCmluZGV4IGQ1NjA5ZDY2MWQyZTJhMjUxYzcxZmI3NjgwZWEy
YjFhNGVjYTFhZmYuLmMyMzllNGYxODU3NDI3YzQ5MjQ1YTZlNTc3NTk3ZjFmMTljYmZiZTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcworKysg
Yi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMKQEAgLTEsNyArMSw1
IEBACiAvKg0KLSAqIFRISVMgRklMRSBJTlRFTlRJT05BTExZIExFRlQgQkxBTksNCi0gKg0KLSAq
IE1vcmUgc3BlY2lmaWNhbGx5LCB0aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIHZlbmRvcnMgdG8g
aW1wbGVtZW50DQorICogVGhpcyBmaWxlIGlzIGludGVuZGVkIGZvciB2ZW5kb3JzIHRvIGltcGxl
bWVudA0KICAqIGNvZGUgbmVlZGVkIHRvIGludGVncmF0ZSB0ZXN0aGFybmVzcy5qcyB0ZXN0cyB3
aXRoIHRoZWlyIG93biB0ZXN0IHN5c3RlbXMuDQogICoNCiAgKiBUeXBpY2FsbHkgc3VjaCBpbnRl
Z3JhdGlvbiB3aWxsIGF0dGFjaCBjYWxsYmFja3Mgd2hlbiBlYWNoIHRlc3QgaXMNCkBAIC02MCw5
ICs1OCw3IEBAIGlmIChzZWxmLnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgICAgICBpZiAoIXRl
eHQpIHsNCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsNCiAgICAgICAgICAgICAgICAg
fQ0KLSAgICAgICAgICAgICAgICAvLyBFc2NhcGUgbnVsbCBjaGFyYWN0ZXJzLCBvdGhlcndpc2Ug
ZGlmZiB3aWxsIHRoaW5rIHRoZSBmaWxlIGlzIGJpbmFyeS4NCiAgICAgICAgICAgICAgICAgdGV4
dCA9IHRleHQucmVwbGFjZSgvXDAvZywgIlxcMCIpOw0KLSAgICAgICAgICAgICAgICAvLyBFc2Nh
cGUgY2FycmlhZ2UgcmV0dXJucyBhcyB0aGV5IGJyZWFrIHJpZXR2ZWxkJ3MgZGlmZnRvb2xzLg0K
ICAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5yZXBsYWNlKC9cci9nLCAiXFxyIik7DQogICAg
ICAgICAgICAgfQ0KIA0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293047</attachid>
            <date>2016-10-27 13:14:41 -0700</date>
            <delta_ts>2016-10-27 14:17:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164071-20161027131052.patch</filename>
            <type>text/plain</type>
            <size>28010</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3OTk1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzkwNzRjYjYzZWM0NzIxNjE3N2Mz
N2Q4YWQ4MDcyODQ1ODU0ZjQzYy4uZjU2MDcyODkwODViOWVmOWRiZWI1MWYzM2JjYzI2YzE1ZWY0
YmYzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDE2LTEwLTI3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgU3luYyB1cCBhbGwgY29waWVzIG9mIHRlc3RoYXJu
ZXNzcmVwb3J0LmpzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjQwNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTeW5jIHVwIGFsbCBjb3BpZXMgb2YgdGVzdGhhcm5lc3NyZXBvcnQuanMgZm9yIGNvbnNp
c3RlbmN5LgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtcGxheS10aGVuLXNlZWstYmFjay13aXRoLXJlbW90ZS1jb250cm9sLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVp
cmtzLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLWNzcy1pbi1xdWlya3MtMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy0zLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4t
Y3NzLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1v
cmlnaW4tY3NzLTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
c2FtZS1vcmlnaW4tY3NzLTMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvc2FtZS1vcmlnaW4tY3NzLWluLXF1aXJrcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzOgorICAgICAgICAo
Y29udmVydFJlc3VsdCk6CisgICAgICAgIChzZWxmLnRlc3RSdW5uZXIuYWRkX2NvbXBsZXRpb25f
Y2FsbGJhY2suKToKKyAgICAgICAgKHNlbGYudGVzdFJ1bm5lci5hZGRfY29tcGxldGlvbl9jYWxs
YmFjayk6CisgICAgICAgIChhZGRfY29tcGxldGlvbl9jYWxsYmFjay5zYW5pdGl6ZSk6IERlbGV0
ZWQuCisgICAgICAgIChhZGRfY29tcGxldGlvbl9jYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAg
ICogaW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anM6CisgICAgICAgIChjb252ZXJ0UmVzdWx0KToKKyAgICAgICAgKHNlbGYudGVzdFJ1bm5lci5h
ZGRfY29tcGxldGlvbl9jYWxsYmFjay4pOgorICAgICAgICAoc2VsZi50ZXN0UnVubmVyLmFkZF9j
b21wbGV0aW9uX2NhbGxiYWNrKToKKyAgICAgICAgKGlzQ1NTV0dUZXN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKGlzSlNUZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKGFkZF9jb21wbGV0aW9uX2NhbGxi
YWNrLnNhbml0aXplKTogRGVsZXRlZC4KKyAgICAgICAgKGFkZF9jb21wbGV0aW9uX2NhbGxiYWNr
LmRvbmUpOiBEZWxldGVkLgorICAgICAgICAoYWRkX2NvbXBsZXRpb25fY2FsbGJhY2spOiBEZWxl
dGVkLgorICAgICAgICAqIHJlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qczoKKyAgICAgICAg
KHNlbGYudGVzdFJ1bm5lci5hZGRfY29tcGxldGlvbl9jYWxsYmFjay4pOgorICAgICAgICAoc2Vs
Zi50ZXN0UnVubmVyLmFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKToKKworMjAxNi0xMC0yNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIHRlc3RoYXJuZXNzcmVwb3J0
LmpzIHNob3VsZCBzYW5pdGl6ZSB0aGUgcmVzdWx0cyBiZWZvcmUgcHJpbnRpbmcgdGhlbQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MDY0CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLXBsYXktdGhlbi1zZWVrLWJhY2std2l0aC1yZW1vdGUtY29udHJvbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1wbGF5LXRoZW4tc2Vlay1iYWNrLXdpdGgtcmVtb3RlLWNvbnRyb2wtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGNiNzBhZmZmNTE5OTM4ZmYxOWU0MjczNGE4MGU1N2MzMGI5MjA1ZjYuLjUzYjBkZTRjYzg5
MGY4N2VlYTI2MGZmZWI1YWJiOTdlNTQyOWQyNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXktdGhlbi1zZWVrLWJh
Y2std2l0aC1yZW1vdGUtY29udHJvbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS10aGVuLXNlZWstYmFj
ay13aXRoLXJlbW90ZS1jb250cm9sLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKLSAKKwog
UEFTUyBUZXN0IHBsYXlpbmcgdGhlbiBzZWVraW5nIGJhY2sgd2l0aCByZW1vdGUgY29udHJvbCBj
b21tYW5kLihQQVNTIGlmIG5vIGNyYXNoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTEtZXhwZWN0ZWQudHh0
CmluZGV4IDFiY2JjMGE2OTBiZWJhYWMyNjZlMmNhNGVmYjU3MmM5MzBmYTMwNjMuLjg5MTk5OTUx
NTA0NWVlYmYzN2E1ZDM4M2RiOTIyNzA1MDEzNmEwODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy0xLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtMS1leHBl
Y3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6IERpZCBub3QgcGFyc2Ug
c3R5bGVzaGVldCBhdCAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5w
aHA/dXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveG9yaWdpbmNz
czEuaHRtbCcgYmVjYXVzZSBub24gQ1NTIE1JTUUgdHlwZXMgYXJlIG5vdCBhbGxvd2VkIGluIHN0
cmljdCBtb2RlLgogCiBQQVNTIFRlc3RpbmcgY3Jvc3Mtb3JpZ2luIGFuZCBNSU1FIGJlaGF2aW9y
IGZvciBDU1MuIAotUEFTUyB4b3JpZ2luY3NzMS5odG1sIHNob3VsZCBub3QgYmUgbG9hZGVkIHZp
YSA8bGluaz4uIAorUEFTUyB4b3JpZ2luY3NzMS5odG1sIHNob3VsZCBub3QgYmUgbG9hZGVkIHZp
YSAmbHQ7bGluayZndDsuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtMi1leHBlY3RlZC50eHQKaW5kZXggOTAy
NzhlMDU4MTc4Y2FhNDdiMzA4ZTU2Zjg3Mzk5N2U0OTNmNzVjNi4uM2M1OTBiYjRiOGJjNWJiOGYx
OTFiZTRhNDE4MGFmY2Y3ZDE5NjkyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy0yLWV4cGVjdGVkLnR4dApA
QCAtMSw1ICsxLDUgQEAKIENPTlNPTEUgTUVTU0FHRTogRGlkIG5vdCBwYXJzZSBzdHlsZXNoZWV0
IGF0ICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9aHR0
cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94b3JpZ2luY3NzMi5odG1sJyBi
ZWNhdXNlIG5vbiBDU1MgTUlNRSB0eXBlcyBhcmUgbm90IGFsbG93ZWQgaW4gc3RyaWN0IG1vZGUu
CiAKIFBBU1MgVGVzdGluZyBjcm9zcy1vcmlnaW4gYW5kIE1JTUUgYmVoYXZpb3IgZm9yIENTUy4g
Ci1QQVNTIHhvcmlnaW5jc3MyLmh0bWwgc2hvdWxkIG5vdCBiZSBsb2FkZWQgZWl0aGVyIHZpYSA8
bGluaz4gb3IgQGltcG9ydC4gCitQQVNTIHhvcmlnaW5jc3MyLmh0bWwgc2hvdWxkIG5vdCBiZSBs
b2FkZWQgZWl0aGVyIHZpYSAmbHQ7bGluayZndDsgb3IgQGltcG9ydC4gCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy0zLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNz
cy0zLWV4cGVjdGVkLnR4dAppbmRleCA4MmYwZDBiYTA4M2E4MDFmYzI0ZWUyZDcxNjFlYmRmMzFk
MjY2YTEyLi5kNDZlZWVhMGVjZjQ0ZGM3ZTI0ZTAwNGZmYjlmZDI5NGRhMTU5MGU4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtMy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4tY3NzLTMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIFRlc3Rpbmcg
Y3Jvc3Mtb3JpZ2luIGFuZCBNSU1FIGJlaGF2aW9yIGZvciBDU1MuIAotUEFTUyB4b3JpZ2luY3Nz
MS5jc3Mgc2hvdWxkIGJlIGxvYWRlZCB2aWEgPGxpbms+IAorUEFTUyB4b3JpZ2luY3NzMS5jc3Mg
c2hvdWxkIGJlIGxvYWRlZCB2aWEgJmx0O2xpbmsmZ3Q7IAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
Y3NzLWluLXF1aXJrcy0xLWV4cGVjdGVkLnR4dAppbmRleCAxZWQ2ZjA0NDcyYzFlYjVhYmQzMDQz
MTUzZDNhODM4YzlhN2MwZGE4Li5lNmUzMDRhNDdmZWM4M2FiNzk2ZDFlYWVhM2UwZDcwMThkZGY1
NGI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9y
aWdpbi1jc3MtaW4tcXVpcmtzLTEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtMS1leHBlY3RlZC50eHQK
QEAgLTEsNSArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6IERpZCBub3QgcGFyc2Ugc3R5bGVzaGVl
dCBhdCAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/dXJsPWh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMveG9yaWdpbmNzczEuaHRtbCcg
YmVjYXVzZSBub24gQ1NTIE1JTUUgdHlwZXMgYXJlIG5vdCBhbGxvd2VkIGZvciBjcm9zcy1vcmln
aW4gc3R5bGVzaGVldHMuCiAKIFBBU1MgVGVzdGluZyBjcm9zcy1vcmlnaW4gYW5kIE1JTUUgYmVo
YXZpb3IgZm9yIENTUy4gCi1QQVNTIHhvcmlnaW5jc3MxLmh0bWwgc2hvdWxkIG5vdCBiZSBsb2Fk
ZWQgdmlhIDxsaW5rPi4gCitQQVNTIHhvcmlnaW5jc3MxLmh0bWwgc2hvdWxkIG5vdCBiZSBsb2Fk
ZWQgdmlhICZsdDtsaW5rJmd0Oy4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtz
LTItZXhwZWN0ZWQudHh0CmluZGV4IDNhZDU1OTBhZDkxMzk4NDYxNGE3NzQxNDk3OTBhNDZiMWVj
MDNhZTkuLjdiMjI1ZmRkMzQwNzgwMDBhZjhmNzExYWU1YmFmZGQxYzA3MDRjMjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWNzcy1pbi1x
dWlya3MtMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy0yLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUg
QEAKIENPTlNPTEUgTUVTU0FHRTogRGlkIG5vdCBwYXJzZSBzdHlsZXNoZWV0IGF0ICdodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9aHR0cDovL2xvY2FsaG9z
dDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy94b3JpZ2luY3NzMi5odG1sJyBiZWNhdXNlIG5vbiBD
U1MgTUlNRSB0eXBlcyBhcmUgbm90IGFsbG93ZWQgZm9yIGNyb3NzLW9yaWdpbiBzdHlsZXNoZWV0
cy4KIAogUEFTUyBUZXN0aW5nIGNyb3NzLW9yaWdpbiBhbmQgTUlNRSBiZWhhdmlvciBmb3IgQ1NT
LiAKLVBBU1MgeG9yaWdpbmNzczIuaHRtbCBzaG91bGQgbm90IGJlIGxvYWRlZCBlaXRoZXIgdmlh
IDxsaW5rPiBvciBAaW1wb3J0LiAKK1BBU1MgeG9yaWdpbmNzczIuaHRtbCBzaG91bGQgbm90IGJl
IGxvYWRlZCBlaXRoZXIgdmlhICZsdDtsaW5rJmd0OyBvciBAaW1wb3J0LiAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1
aXJrcy0zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtMy1leHBlY3RlZC50eHQKaW5kZXggODJmMGQwYmEwODNh
ODAxZmMyNGVlMmQ3MTYxZWJkZjMxZDI2NmExMi4uZDQ2ZWVlYTBlY2Y0NGRjN2UyNGUwMDRmZmI5
ZmQyOTRkYTE1OTBlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy0zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCiBQQVNTIFRlc3RpbmcgY3Jvc3Mtb3JpZ2luIGFu
ZCBNSU1FIGJlaGF2aW9yIGZvciBDU1MuIAotUEFTUyB4b3JpZ2luY3NzMS5jc3Mgc2hvdWxkIGJl
IGxvYWRlZCB2aWEgPGxpbms+IAorUEFTUyB4b3JpZ2luY3NzMS5jc3Mgc2hvdWxkIGJlIGxvYWRl
ZCB2aWEgJmx0O2xpbmsmZ3Q7IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVpcmtzLTQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tY3NzLWluLXF1aXJrcy00
LWV4cGVjdGVkLnR4dAppbmRleCA0NWE2YzMwMGE3NDQxNDI0N2UzYWIxNDBhNDkyYjU2NGI3Zjdj
ZGRmLi4xYzljYmY1ODJmMTZmYTZhYTU3OTBhMDhlMzhjNGY4ZDFiYzM2ZDY5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1jc3MtaW4tcXVp
cmtzLTQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3Mtb3JpZ2luLWNzcy1pbi1xdWlya3MtNC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBA
CiAKIFBBU1MgVGVzdGluZyBjcm9zcy1vcmlnaW4gYW5kIE1JTUUgYmVoYXZpb3IgZm9yIENTUy4g
Ci1QQVNTIHhvcmlnaW5jc3MzLmh0bWwgc2hvdWxkIGJlIGxvYWRlZCB2aWEgPGxpbms+IAorUEFT
UyB4b3JpZ2luY3NzMy5odG1sIHNob3VsZCBiZSBsb2FkZWQgdmlhICZsdDtsaW5rJmd0OyAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1j
c3MtMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUt
b3JpZ2luLWNzcy0xLWV4cGVjdGVkLnR4dAppbmRleCAzYmNjYzdiNDIyNzQzMDFlZDZjYTcyMjJh
OGU0MzI2ZWI4NjM2ZThmLi4xMTEzOTdiY2JiNjUyZjk3ZTgzOTZiZWI4NjJkNDZjZjM5MTA3MGIz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2lu
LWNzcy0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3NhbWUtb3JpZ2luLWNzcy0xLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIENPTlNPTEUg
TUVTU0FHRTogRGlkIG5vdCBwYXJzZSBzdHlsZXNoZWV0IGF0ICdodHRwOi8vMTI3LjAuMC4xOjgw
MDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9L3NlY3VyaXR5L3Jlc291cmNlcy94b3JpZ2lu
Y3NzMS5odG1sJyBiZWNhdXNlIG5vbiBDU1MgTUlNRSB0eXBlcyBhcmUgbm90IGFsbG93ZWQgaW4g
c3RyaWN0IG1vZGUuCiAKIFBBU1MgVGVzdGluZyBzYW1lLW9yaWdpbiBhbmQgTUlNRSBiZWhhdmlv
ciBmb3IgQ1NTLiAKLVBBU1MgeG9yaWdpbmNzczEuaHRtbCBzaG91bGQgbm90IGJlIGxvYWRlZCB2
aWEgPGxpbms+LiAKK1BBU1MgeG9yaWdpbmNzczEuaHRtbCBzaG91bGQgbm90IGJlIGxvYWRlZCB2
aWEgJmx0O2xpbmsmZ3Q7LiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy0yLWV4cGVjdGVkLnR4dAppbmRleCAzMTRj
YTM2OTZiMGU0MmRiNzg0YjhhN2E3ZDQwZGY0NmRlMWRjNTZkLi4wMzJiMWYyZjI0NmNiYjNiYjQ5
ZWYyZTUyZGYxMDljMGUxOTdmOWI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy0yLWV4cGVjdGVkLnR4dApAQCAt
MSw1ICsxLDUgQEAKIENPTlNPTEUgTUVTU0FHRTogRGlkIG5vdCBwYXJzZSBzdHlsZXNoZWV0IGF0
ICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9L3NlY3Vy
aXR5L3Jlc291cmNlcy94b3JpZ2luY3NzMi5odG1sJyBiZWNhdXNlIG5vbiBDU1MgTUlNRSB0eXBl
cyBhcmUgbm90IGFsbG93ZWQgaW4gc3RyaWN0IG1vZGUuCiAKIFBBU1MgVGVzdGluZyBzYW1lLW9y
aWdpbiBhbmQgTUlNRSBiZWhhdmlvciBmb3IgQ1NTLiAKLVBBU1MgeG9yaWdpbmNzczIuaHRtbCBz
aG91bGQgbm90IGJlIGxvYWRlZCBlaXRoZXIgdmlhIDxsaW5rPiBvciBAaW1wb3J0LiAKK1BBU1Mg
eG9yaWdpbmNzczIuaHRtbCBzaG91bGQgbm90IGJlIGxvYWRlZCBlaXRoZXIgdmlhICZsdDtsaW5r
Jmd0OyBvciBAaW1wb3J0LiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy0zLWV4cGVjdGVkLnR4dAppbmRleCBiNmJh
N2MyNDg4NTMxODU1NDgxOGVhYWUxYTUyMTlmN2UyMjY1OTcyLi5hZWUzOThiOTZkYjEyMjVjNzgx
ODVjMWNiNmFjNTU4OTUzNjM4YzNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy0zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy0zLWV4cGVjdGVkLnR4dApAQCAt
MSw0ICsxLDQgQEAKIAogUEFTUyBUZXN0aW5nIHNhbWUtb3JpZ2luIGFuZCBNSU1FIGJlaGF2aW9y
IGZvciBDU1MuIAotUEFTUyB4b3JpZ2luY3NzMS5jc3Mgc2hvdWxkIGJlIGxvYWRlZCB2aWEgPGxp
bms+IAorUEFTUyB4b3JpZ2luY3NzMS5jc3Mgc2hvdWxkIGJlIGxvYWRlZCB2aWEgJmx0O2xpbmsm
Z3Q7IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUt
b3JpZ2luLWNzcy1pbi1xdWlya3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1jc3MtaW4tcXVpcmtzLWV4cGVjdGVkLnR4dAppbmRleCBk
MjAzNGZiZjNkMjdjNDNiMTcyNjc2Mzk4NWQ2ZTFmMjlmNGY3NmEzLi5kMzE3NTczMDA4ZWI4NTEz
MTIwZjQ1ODFiZmYwN2U3MTk3ZTQ5NzlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWNzcy1pbi1xdWlya3MtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tY3NzLWluLXF1aXJr
cy1leHBlY3RlZC50eHQKQEAgLTEsOSArMSw5IEBACiBQQVNTIGJhY2tncm91bmQgaW1hZ2UgbG9h
ZGVkCiAKIFBBU1MgVGVzdGluZyBzYW1lLW9yaWdpbiBhbmQgTUlNRSBiZWhhdmlvciBmb3IgQ1NT
LiAKLVBBU1MgeG9yaWdpbmNzczEuaHRtbCBzaG91bGQgYmUgbG9hZGVkIHZpYSA8bGluaz4uIAot
UEFTUyB4b3JpZ2luY3NzMi5odG1sIHNob3VsZCBiZSBsb2FkZWQgZWl0aGVyIHZpYSA8bGluaz4g
b3IgQGltcG9ydC4gCi1QQVNTIHhvcmlnaW5jc3MxLmNzcyBzaG91bGQgYmUgbG9hZGVkIHZpYSA8
bGluaz4gCitQQVNTIHhvcmlnaW5jc3MxLmh0bWwgc2hvdWxkIGJlIGxvYWRlZCB2aWEgJmx0O2xp
bmsmZ3Q7LiAKK1BBU1MgeG9yaWdpbmNzczIuaHRtbCBzaG91bGQgYmUgbG9hZGVkIGVpdGhlciB2
aWEgJmx0O2xpbmsmZ3Q7IG9yIEBpbXBvcnQuIAorUEFTUyB4b3JpZ2luY3NzMS5jc3Mgc2hvdWxk
IGJlIGxvYWRlZCB2aWEgJmx0O2xpbmsmZ3Q7IAogUEFTUyB4b3JpZ2luY3NzMy5odG1sIHNob3Vs
ZCBiZSBsb2FkZWQgCiBQQVNTIHhvcmlnaW5jc3M0Lmh0bWwgc2hvdWxkIGJlIGxvYWRlZCB2aWEg
QGltcG9ydC4gCiBQQVNTIHhvcmlnaW5jc3MyLmNzcyBzaG91bGQgYmUgbG9hZGVkLiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcwppbmRleCA5MGY1MTEwMjc3MTExYjBmODE5MjMxZDRjNjFhMDVjYjVlZGVkMTQz
Li5jMjM5ZTRmMTg1NzQyN2M0OTI0NWE2ZTU3NzU5N2YxZjE5Y2JmYmUwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzCkBAIC0yLDEwICsyLDkgQEAKICAqIFRoaXMgZmlsZSBpcyBpbnRlbmRlZCBmb3IgdmVu
ZG9ycyB0byBpbXBsZW1lbnQNCiAgKiBjb2RlIG5lZWRlZCB0byBpbnRlZ3JhdGUgdGVzdGhhcm5l
c3MuanMgdGVzdHMgd2l0aCB0aGVpciBvd24gdGVzdCBzeXN0ZW1zLg0KICAqDQotICogVHlwaWNh
bGx5IHRlc3Qgc3lzdGVtIGludGVncmF0aW9uIHdpbGwgYXR0YWNoIGNhbGxiYWNrcyB3aGVuIGVh
Y2ggdGVzdCBoYXMNCi0gKiBydW4sIHVzaW5nIGFkZF9yZXN1bHRfY2FsbGJhY2soY2FsbGJhY2so
dGVzdCkpLCBvciB3aGVuIHRoZSB3aG9sZSB0ZXN0IGZpbGUNCi0gKiBoYXMgY29tcGxldGVkLCB1
c2luZyANCi0gKiBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhjYWxsYmFjayh0ZXN0cywgaGFybmVz
c19zdGF0dXMpKS4NCisgKiBUeXBpY2FsbHkgc3VjaCBpbnRlZ3JhdGlvbiB3aWxsIGF0dGFjaCBj
YWxsYmFja3Mgd2hlbiBlYWNoIHRlc3QgaXMNCisgKiBoYXMgcnVuLCB1c2luZyBhZGRfcmVzdWx0
X2NhbGxiYWNrKGNhbGxiYWNrKHRlc3QpKSwgb3Igd2hlbiB0aGUgd2hvbGUgdGVzdCBmaWxlIGhh
cw0KKyAqIGNvbXBsZXRlZCwgdXNpbmcgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soY2FsbGJhY2so
dGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSkuDQogICoNCiAgKiBGb3IgbW9yZSBkb2N1bWVudGF0aW9u
IGFib3V0IHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgYW5kIHRoZQ0KICAqIHBhcmFtZXRlcnMgdGhl
eSBhcmUgY2FsbGVkIHdpdGggc2VlIHRlc3RoYXJuZXNzLmpzDQpAQCAtMTUsNzcgKzE0LDgwIEBA
CiBpZiAoc2VsZi50ZXN0UnVubmVyKSB7DQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0K
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsNCisgICAgdGVzdFJ1bm5lci5zZXRDYW5P
cGVuV2luZG93cygpOw0KKyAgICAvLyBMZXQncyByZXN0cmljdCBjYWxsaW5nIHRlc3RoYXJuZXNz
IHRpbWVvdXQoKSB0byB3cHRzZXJ2ZSB0ZXN0cyBmb3IgdGhlIG1vbWVudC4NCisgICAgLy8gVGhh
dCB3aWxsIGxpbWl0IHRoZSBpbXBhY3QgdG8gYSBzbWFsbCBudW1iZXIgb2YgdGVzdHMuDQorICAg
IC8vIFRoZSByaXNrIGlzIHRoYXQgdGVzdGhhcm5lc3MgdGltZW91dCgpIG1pZ2h0IGJlIGNhbGxl
ZCB0byBsYXRlIG9uIHNsb3cgYm90cyB0byBmaW5pc2ggcHJvcGVybHkuDQorICAgIGlmICh0ZXN0
UnVubmVyLnRpbWVvdXQgJiYgbG9jYXRpb24ucG9ydCA9PSA4ODAwKQ0KKyAgICAgICAgc2V0VGlt
ZW91dCh0aW1lb3V0LCB0ZXN0UnVubmVyLnRpbWVvdXQgKiAwLjkpOw0KIH0NCiANCiAvLyBGdW5j
dGlvbiB1c2VkIHRvIGNvbnZlcnQgdGhlIHRlc3Qgc3RhdHVzIGNvZGUgaW50bw0KIC8vIHRoZSBj
b3JyZXNwb25kaW5nIHN0cmluZw0KLWZ1bmN0aW9uIGNvbnZlcnRSZXN1bHQocmVzdWx0U3RhdHVz
KXsNCi0JaWYocmVzdWx0U3RhdHVzID09IDApDQotCQlyZXR1cm4oIlBBU1MiKTsNCi0JZWxzZSBp
ZihyZXN1bHRTdGF0dXMgPT0gMSkNCi0JCXJldHVybigiRkFJTCIpOw0KLQllbHNlIGlmKHJlc3Vs
dFN0YXR1cyA9PSAyKQ0KLQkJcmV0dXJuKCJUSU1FT1VUIik7DQotCWVsc2UNCi0JCXJldHVybigi
Tk9UUlVOIik7DQorZnVuY3Rpb24gY29udmVydFJlc3VsdChyZXN1bHRTdGF0dXMpDQorew0KKyAg
ICBpZihyZXN1bHRTdGF0dXMgPT0gMCkNCisgICAgICAgIHJldHVybigiUEFTUyIpOw0KKyAgICBl
bHNlIGlmKHJlc3VsdFN0YXR1cyA9PSAxKQ0KKyAgICAgICAgcmV0dXJuKCJGQUlMIik7DQorICAg
IGVsc2UgaWYocmVzdWx0U3RhdHVzID09IDIpDQorICAgICAgICByZXR1cm4oIlRJTUVPVVQiKTsN
CisgICAgZWxzZQ0KKyAgICAgICAgcmV0dXJuKCJOT1RSVU4iKTsNCiB9DQogDQotLyogRGlzYWJs
ZSB0aGUgZGVmYXVsdCBvdXRwdXQgb2YgdGVzdGhhcm5lc3MuanMuICBUaGUgZGVmYXVsdCBvdXRw
dXQgZm9ybWF0cw0KLSogIHRlc3QgcmVzdWx0cyBpbnRvIGFuIEhUTUwgdGFibGUuICBXaGVuIHRo
YXQgdGFibGUgaXMgZHVtcGVkIGFzIHRleHQsIG5vDQotKiAgc3BhY2luZyBiZXR3ZWVuIGNlbGxz
IGlzIHByZXNlcnZlZCwgYW5kIGl0IGlzIHRoZXJlZm9yZSBub3QgcmVhZGFibGUuIEJ5DQotKiAg
c2V0dGluZyBvdXRwdXQgdG8gZmFsc2UsIHRoZSBIVE1MIHRhYmxlIHdpbGwgbm90IGJlIGNyZWF0
ZWQNCi0qLw0KLXNldHVwKHsib3V0cHV0IjpmYWxzZX0pOw0KK2lmIChzZWxmLnRlc3RSdW5uZXIp
IHsNCisgICAgLyogRGlzYWJsZSB0aGUgZGVmYXVsdCBvdXRwdXQgb2YgdGVzdGhhcm5lc3MuanMu
ICBUaGUgZGVmYXVsdCBvdXRwdXQgZm9ybWF0cw0KKyAgICAqICB0ZXN0IHJlc3VsdHMgaW50byBh
biBIVE1MIHRhYmxlLiAgV2hlbiB0aGF0IHRhYmxlIGlzIGR1bXBlZCBhcyB0ZXh0LCBubw0KKyAg
ICAqICBzcGFjaW5nIGJldHdlZW4gY2VsbHMgaXMgcHJlc2VydmVkLCBhbmQgaXQgaXMgdGhlcmVm
b3JlIG5vdCByZWFkYWJsZS4gQnkNCisgICAgKiAgc2V0dGluZyBvdXRwdXQgdG8gZmFsc2UsIHRo
ZSBIVE1MIHRhYmxlIHdpbGwgbm90IGJlIGNyZWF0ZWQNCisgICAgKi8NCisgICAgc2V0dXAoeyJv
dXRwdXQiOiBmYWxzZSwgImV4cGxpY2l0X3RpbWVvdXQiOiB0cnVlfSk7DQogDQotLyogIFVzaW5n
IGEgY2FsbGJhY2sgZnVuY3Rpb24sIHRlc3QgcmVzdWx0cyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBw
YWdlIGluIGEgDQotKiAgIG1hbm5lciB0aGF0IGFsbG93cyBkdW1wQXNUZXh0IHRvIHByb2R1Y2Ug
cmVhZGFibGUgdGVzdCByZXN1bHRzDQotKi8NCi1hZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5j
dGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzKXsNCi0JDQotCS8vIENyZWF0ZSBlbGVtZW50IHRv
IGhvbGQgcmVzdWx0cw0KLQl2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInBy
ZSIpOw0KLQkNCi0JLy8gRGVjbGFyZSByZXN1bHQgc3RyaW5nDQotCXZhciByZXN1bHRTdHIgPSAi
XG4iOw0KKyAgICAvKiAgVXNpbmcgYSBjYWxsYmFjayBmdW5jdGlvbiwgdGVzdCByZXN1bHRzIHdp
bGwgYmUgYWRkZWQgdG8gdGhlIHBhZ2UgaW4gYSANCisgICAgKiAgIG1hbm5lciB0aGF0IGFsbG93
cyBkdW1wQXNUZXh0IHRvIHByb2R1Y2UgcmVhZGFibGUgdGVzdCByZXN1bHRzDQorICAgICovDQor
ICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywgaGFybmVzc19zdGF0
dXMpIHsNCisgICAgICAgIC8vIFdhaXQgZm9yIGFueSBvdGhlciBjb21wbGV0aW9uIGNhbGxiYWNr
cw0KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsNCisgICAgICAgICAgICB2YXIgcmVz
dWx0cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpOw0KKyAgICAgICAgICAgIHZhciBy
ZXN1bHRTdHIgPSAiXG4iOw0KIA0KLSAgICAgICAgLy8gU2FuaXRpemVzIHRoZSBnaXZlbiB0ZXh0
IGZvciBkaXNwbGF5IGluIHRlc3QgcmVzdWx0cy4NCi0gICAgICAgIGZ1bmN0aW9uIHNhbml0aXpl
KHRleHQpIHsNCi0gICAgICAgICAgICBpZiAoIXRleHQpIHsNCi0gICAgICAgICAgICAgICAgcmV0
dXJuICIiOw0KKyAgICAgICAgICAgIC8vIFNhbml0aXplcyB0aGUgZ2l2ZW4gdGV4dCBmb3IgZGlz
cGxheSBpbiB0ZXN0IHJlc3VsdHMuDQorICAgICAgICAgICAgZnVuY3Rpb24gc2FuaXRpemUodGV4
dCkgew0KKyAgICAgICAgICAgICAgICBpZiAoIXRleHQpIHsNCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiAiIjsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB0ZXh0ID0g
dGV4dC5yZXBsYWNlKC9cMC9nLCAiXFwwIik7DQorICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0
LnJlcGxhY2UoL1xyL2csICJcXHIiKTsNCiAgICAgICAgICAgICB9DQotICAgICAgICAgICAgLy8g
RXNjYXBlIG51bGwgY2hhcmFjdGVycywgb3RoZXJ3aXNlIGRpZmYgd2lsbCB0aGluayB0aGUgZmls
ZSBpcyBiaW5hcnkuDQotICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvXDAvZywgIlxc
MCIpOw0KLSAgICAgICAgICAgIC8vIEVzY2FwZSBjYXJyaWFnZSByZXR1cm5zIGFzIHRoZXkgYnJl
YWsgcmlldHZlbGQncyBkaWZmdG9vbHMuDQotICAgICAgICAgICAgcmV0dXJuIHRleHQucmVwbGFj
ZSgvXHIvZywgIlxcciIpOw0KLSAgICAgICAgfQ0KIA0KLQkNCi0JLy8gQ2hlY2sgaGFybmVzc19z
dGF0dXMuICBJZiBpdCBpcyBub3QgMCwgdGVzdHMgZGlkIG5vdA0KLQkvLyBleGVjdXRlIGNvcnJl
Y3RseSwgb3V0cHV0IHRoZSBlcnJvciBjb2RlIGFuZCBtZXNzYWdlDQotCWlmKGhhcm5lc3Nfc3Rh
dHVzLnN0YXR1cyAhPSAwKXsNCi0JCXJlc3VsdFN0ciArPSAiSGFybmVzcyBFcnJvci4gaGFybmVz
c19zdGF0dXMuc3RhdHVzID0gIiArIA0KLQkJCQkJIGhhcm5lc3Nfc3RhdHVzLnN0YXR1cyArDQot
CQkJCQkgIiAsIGhhcm5lc3Nfc3RhdHVzLm1lc3NhZ2UgPSAiICsNCi0JCQkJCSBoYXJuZXNzX3N0
YXR1cy5tZXNzYWdlOw0KLQl9DQotCWVsc2Ugew0KLQkJLy8gSXRlcmF0ZSB0aHJvdWdoIHRlc3Rz
IGFycmF5IGFuZCBidWlsZCBzdHJpbmcgdGhhdCBjb250YWlucw0KLQkJLy8gcmVzdWx0cyBmb3Ig
YWxsIHRlc3RzDQotCQlmb3IodmFyIGk9MDsgaTx0ZXN0cy5sZW5ndGg7IGkrKyl7CQkJCSANCi0J
CQlyZXN1bHRTdHIgKz0gY29udmVydFJlc3VsdCh0ZXN0c1tpXS5zdGF0dXMpICsgIiAiICsgDQot
CQkJCQlzYW5pdGl6ZSh0ZXN0c1tpXS5uYW1lKSArICIgIiArDQotCQkJCQlzYW5pdGl6ZSh0ZXN0
c1tpXS5tZXNzYWdlKSArICJcbiI7DQotCQl9CQkJDQotCX0NCisgICAgICAgICAgICBpZihoYXJu
ZXNzX3N0YXR1cy5zdGF0dXMgIT0gMCkNCisgICAgICAgICAgICAgICAgcmVzdWx0U3RyICs9ICJI
YXJuZXNzIEVycm9yICgiICsgY29udmVydFJlc3VsdChoYXJuZXNzX3N0YXR1cy5zdGF0dXMpICsg
IiksIG1lc3NhZ2UgPSAiICsgaGFybmVzc19zdGF0dXMubWVzc2FnZSArICJcblxuIjsNCiANCi0J
Ly8gU2V0IHJlc3VsdHMgZWxlbWVudCdzIGlubmVySFRNTCB0byB0aGUgcmVzdWx0cyBzdHJpbmcN
Ci0JcmVzdWx0cy5pbm5lckhUTUwgPSByZXN1bHRTdHI7DQorICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgew0KKyAgICAgICAgICAgICAgICB2YXIgbWVz
c2FnZSA9IHNhbml0aXplKHRlc3RzW2ldLm1lc3NhZ2UpOw0KKyAgICAgICAgICAgICAgICBpZiAo
dGVzdHNbaV0uc3RhdHVzID09IDEgJiYgIXRlc3RzW2ldLmR1bXBTdGFjaykgew0KKyAgICAgICAg
ICAgICAgICAgICAgLy8gUmVtb3ZlIHN0YWNrIGZvciBmYWlsZWQgdGVzdHMgZm9yIHByb3BlciBz
dHJpbmcgY29tcGFyaXNvbiB3aXRob3V0IGZpbGUgcGF0aHMuDQorICAgICAgICAgICAgICAgICAg
ICAvLyBGb3IgYSB0ZXN0IHRvIGR1bXAgdGhlIHN0YWNrIHNldCBpdHMgZHVtcFN0YWNrIGF0dHJp
YnV0ZSB0byB0cnVlLg0KKyAgICAgICAgICAgICAgICAgICAgdmFyIHN0YWNrSW5kZXggPSBtZXNz
YWdlLmluZGV4T2YoIihzdGFjazoiKTsNCisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFja0lu
ZGV4ID4gMCkNCisgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5zdWJz
dHIoMCwgc3RhY2tJbmRleCk7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAg
cmVzdWx0U3RyICs9IGNvbnZlcnRSZXN1bHQodGVzdHNbaV0uc3RhdHVzKSArICIgIiArIHNhbml0
aXplKHRlc3RzW2ldLm5hbWUpICsgIiAiICsgbWVzc2FnZSArICJcbiI7DQorICAgICAgICAgICAg
fQ0KIA0KLQkvLyBBZGQgcmVzdWx0cyBlbGVtZW50IHRvIGRvY3VtZW50DQotCWRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQocmVzdWx0cyk7DQorICAgICAgICAgICAgcmVzdWx0cy5pbm5lclRleHQg
PSByZXN1bHRTdHI7DQorICAgICAgICAgICAgdmFyIGxvZyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJsb2ciKTsNCisgICAgICAgICAgICBpZiAobG9nKQ0KKyAgICAgICAgICAgICAgICBsb2cu
YXBwZW5kQ2hpbGQocmVzdWx0cyk7DQorICAgICAgICAgICAgZWxzZQ0KKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3VsdHMpOw0KIA0KLQlpZiAoc2VsZi50ZXN0
UnVubmVyKQ0KLQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7DQotfSk7DQorICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7DQorICAgICAgICB9LCAwKTsNCisgICAgfSk7DQogDQot
Ly8gdmltOiBzZXQgZXhwYW5kdGFiIHNoaWZ0d2lkdGg9NCB0YWJzdG9wPTQ6DQorICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQ0KKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRSZXNvdXJjZVRp
bWluZ1N1cHBvcnQodHJ1ZSk7DQorfQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L2JsaW5rL2h0dHAvdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMKaW5kZXggODY4NzNkODE2ZTYxYzc1MjMyN2IyNzJkZjFmZTc2ZDM3OGE0YWFlMS4uYzIz
OWU0ZjE4NTc0MjdjNDkyNDVhNmU1Nzc1OTdmMWYxOWNiZmJlMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMKQEAgLTEsMTMxICsxLDkzIEBACi0vKgotICogVEhJUyBG
SUxFIElOVEVOVElPTkFMTFkgTEVGVCBCTEFOSwotICoKLSAqIE1vcmUgc3BlY2lmaWNhbGx5LCB0
aGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIHZlbmRvcnMgdG8gaW1wbGVtZW50Ci0gKiBjb2RlIG5l
ZWRlZCB0byBpbnRlZ3JhdGUgdGVzdGhhcm5lc3MuanMgdGVzdHMgd2l0aCB0aGVpciBvd24gdGVz
dCBzeXN0ZW1zLgotICoKLSAqIFR5cGljYWxseSBzdWNoIGludGVncmF0aW9uIHdpbGwgYXR0YWNo
IGNhbGxiYWNrcyB3aGVuIGVhY2ggdGVzdCBpcwotICogaGFzIHJ1biwgdXNpbmcgYWRkX3Jlc3Vs
dF9jYWxsYmFjayhjYWxsYmFjayh0ZXN0KSksIG9yIHdoZW4gdGhlIHdob2xlIHRlc3QgZmlsZSBo
YXMKLSAqIGNvbXBsZXRlZCwgdXNpbmcgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soY2FsbGJhY2so
dGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSkuCi0gKgotICogRm9yIG1vcmUgZG9jdW1lbnRhdGlvbiBh
Ym91dCB0aGUgY2FsbGJhY2sgZnVuY3Rpb25zIGFuZCB0aGUKLSAqIHBhcmFtZXRlcnMgdGhleSBh
cmUgY2FsbGVkIHdpdGggc2VlIHRlc3RoYXJuZXNzLmpzCi0gKi8KLQotLy8gU2V0dXAgZm9yIFdl
YktpdCBKYXZhU2NyaXB0IHRlc3RzCi1pZiAoc2VsZi50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAg
dGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VS
ZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOwotfQotCi0vLyBGdW5jdGlvbiB1c2Vk
IHRvIGNvbnZlcnQgdGhlIHRlc3Qgc3RhdHVzIGNvZGUgaW50bwotLy8gdGhlIGNvcnJlc3BvbmRp
bmcgc3RyaW5nCi1mdW5jdGlvbiBjb252ZXJ0UmVzdWx0KHJlc3VsdFN0YXR1cykgewotICAgIGlm
KHJlc3VsdFN0YXR1cyA9PSAwKQotICAgICAgICByZXR1cm4oIlBBU1MiKTsKLSAgICBlbHNlIGlm
KHJlc3VsdFN0YXR1cyA9PSAxKQotICAgICAgICByZXR1cm4oIkZBSUwiKTsKLSAgICBlbHNlIGlm
KHJlc3VsdFN0YXR1cyA9PSAyKQotICAgICAgICByZXR1cm4oIlRJTUVPVVQiKTsKLSAgICBlbHNl
Ci0gICAgICAgIHJldHVybigiTk9UUlVOIik7Ci19Ci0KLS8qIERpc2FibGUgdGhlIGRlZmF1bHQg
b3V0cHV0IG9mIHRlc3RoYXJuZXNzLmpzLiAgVGhlIGRlZmF1bHQgb3V0cHV0IGZvcm1hdHMKLSog
IHRlc3QgcmVzdWx0cyBpbnRvIGFuIEhUTUwgdGFibGUuICBXaGVuIHRoYXQgdGFibGUgaXMgZHVt
cGVkIGFzIHRleHQsIG5vCi0qICBzcGFjaW5nIGJldHdlZW4gY2VsbHMgaXMgcHJlc2VydmVkLCBh
bmQgaXQgaXMgdGhlcmVmb3JlIG5vdCByZWFkYWJsZS4gQnkKLSogIHNldHRpbmcgb3V0cHV0IHRv
IGZhbHNlLCB0aGUgSFRNTCB0YWJsZSB3aWxsIG5vdCBiZSBjcmVhdGVkCi0qLwotc2V0dXAoeyJv
dXRwdXQiOmZhbHNlfSk7Ci0KLS8qIElmIHRoZSB0ZXN0IGhhcyBhIG1ldGEgdGFnIG5hbWVkIGZs
YWdzIGFuZCB0aGUgY29udGVudCBjb250YWlucyAiZG9tIiwgdGhlbiBpdCdzIGEgQ1NTV0cgdGVz
dC4KLSAqLwotZnVuY3Rpb24gaXNDU1NXR1Rlc3QoKSB7Ci0gICAgdmFyIGZsYWdzID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPWZsYWdzXScpLAotICAgICAgICBjb250ZW50ID0g
ZmxhZ3MgPyBmbGFncy5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKSA6IG51bGw7Ci0KLSAgICByZXR1
cm4gY29udGVudCAmJiBjb250ZW50Lm1hdGNoKC9cYmRvbVxiLyk7Ci19Ci0KLWZ1bmN0aW9uIGlz
SlNUZXN0KCkgewotICAgIHJldHVybiAhIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtz
cmMqPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzIl0nKTsKLX0KLQotLyogIFVzaW5nIGEgY2FsbGJh
Y2sgZnVuY3Rpb24sIHRlc3QgcmVzdWx0cyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBwYWdlIGluIGEK
LSogICBtYW5uZXIgdGhhdCBhbGxvd3MgZHVtcEFzVGV4dCB0byBwcm9kdWNlIHJlYWRhYmxlIHRl
c3QgcmVzdWx0cwotKi8KLWFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywg
aGFybmVzc19zdGF0dXMpIHsKLQotICAgIC8vIENyZWF0ZSBlbGVtZW50IHRvIGhvbGQgcmVzdWx0
cwotICAgIHZhciByZXN1bHRzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7Ci0KLSAg
ICAvLyBEZWNsYXJlIHJlc3VsdCBzdHJpbmcKLSAgICB2YXIgcmVzdWx0U3RyID0gIlRoaXMgaXMg
YSB0ZXN0aGFybmVzcy5qcy1iYXNlZCB0ZXN0LlxuIjsKLQotICAgIC8vIFNhbml0aXplcyB0aGUg
Z2l2ZW4gdGV4dCBmb3IgZGlzcGxheSBpbiB0ZXN0IHJlc3VsdHMuCi0gICAgZnVuY3Rpb24gc2Fu
aXRpemUodGV4dCkgewotICAgICAgICBpZiAoIXRleHQpIHsKLSAgICAgICAgICAgIHJldHVybiAi
IjsKLSAgICAgICAgfQotICAgICAgICAvLyBFc2NhcGUgbnVsbCBjaGFyYWN0ZXJzLCBvdGhlcndp
c2UgZGlmZiB3aWxsIHRoaW5rIHRoZSBmaWxlIGlzIGJpbmFyeS4KLSAgICAgICAgdGV4dCA9IHRl
eHQucmVwbGFjZSgvXDAvZywgIlxcMCIpOwotICAgICAgICAvLyBFc2NhcGUgY2FycmlhZ2UgcmV0
dXJucyBhcyB0aGV5IGJyZWFrIHJpZXR2ZWxkJ3MgZGlmZnRvb2xzLgotICAgICAgICByZXR1cm4g
dGV4dC5yZXBsYWNlKC9cci9nLCAiXFxyIik7Ci0gICAgfQotCi0gICAgLy8gQ2hlY2sgaGFybmVz
c19zdGF0dXMuICBJZiBpdCBpcyBub3QgMCwgdGVzdHMgZGlkIG5vdAotICAgIC8vIGV4ZWN1dGUg
Y29ycmVjdGx5LCBvdXRwdXQgdGhlIGVycm9yIGNvZGUgYW5kIG1lc3NhZ2UKLSAgICBpZiAoaGFy
bmVzc19zdGF0dXMuc3RhdHVzICE9IDApIHsKLSAgICAgICAgcmVzdWx0U3RyICs9ICJIYXJuZXNz
IEVycm9yLiBoYXJuZXNzX3N0YXR1cy5zdGF0dXMgPSAiICsKLSAgICAgICAgICAgICAgICAgICAg
IGhhcm5lc3Nfc3RhdHVzLnN0YXR1cyArCi0gICAgICAgICAgICAgICAgICAgICAiICwgaGFybmVz
c19zdGF0dXMubWVzc2FnZSA9ICIgKwotICAgICAgICAgICAgICAgICAgICAgaGFybmVzc19zdGF0
dXMubWVzc2FnZSArCi0gICAgICAgICAgICAgICAgICAgICAiXG4iOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0ZXN0cyBhcnJheSBhbmQgYnVpbGQgc3RyaW5nIHRo
YXQgY29udGFpbnMKLSAgICAgICAgLy8gcmVzdWx0cyBmb3IgYWxsIHRlc3RzCi0gICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHJlc3Vs
dFN0ciArPSBjb252ZXJ0UmVzdWx0KHRlc3RzW2ldLnN0YXR1cykgKyAiICIgKwotICAgICAgICAg
ICAgICAgICAgICAgICAgIHNhbml0aXplKHRlc3RzW2ldLm5hbWUpICsgIiAiICsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBzYW5pdGl6ZSh0ZXN0c1tpXS5tZXNzYWdlKSArICJcbiI7Ci0gICAg
ICAgIH0KLSAgICB9Ci0gICAgcmVzdWx0U3RyICs9ICJIYXJuZXNzOiB0aGUgdGVzdCByYW4gdG8g
Y29tcGxldGlvbi5cbiI7Ci0KLSAgICAvLyBTZXQgcmVzdWx0cyBlbGVtZW50J3MgdGV4dENvbnRl
bnQgdG8gdGhlIHJlc3VsdHMgc3RyaW5nCi0gICAgcmVzdWx0cy50ZXh0Q29udGVudCA9IHJlc3Vs
dFN0cjsKLQotICAgIGZ1bmN0aW9uIGRvbmUoKSB7Ci0gICAgICAgIGlmIChzZWxmLnRlc3RSdW5u
ZXIpIHsKLSAgICAgICAgICAgIHZhciBsb2dEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bG9nJyk7Ci0gICAgICAgICAgICBpZiAoKGlzQ1NTV0dUZXN0KCkgfHwgaXNKU1Rlc3QoKSkgJiYg
bG9nRGl2KSB7Ci0gICAgICAgICAgICAgICAgLy8gQXNzdW1lIGl0J3MgYSBDU1NXRyBzdHlsZSB0
ZXN0LCBhbmQgYW55dGhpbmcgb3RoZXIgdGhhbiB0aGUgbG9nIGRpdiBpc24ndAotICAgICAgICAg
ICAgICAgIC8vIG1hdGVyaWFsIHRvIHRoZSB0ZXN0cnVubmVyIG91dHB1dCwgc28gc2hvdWxkIGJl
IGhpZGRlbiBmcm9tIHRoZSB0ZXh0IGR1bXAKLSAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgY2hpbGQgPSBkb2N1bWVudC5ib2R5LmZpcnN0
Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IG5leHQpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV4dCA9
IGNoaWxkLm5leHRTaWJsaW5nOwotICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQubm9kZVR5
cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpCi0gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC5z
dHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYg
KGNoaWxkLm5vZGVUeXBlID09IE5vZGUuVEVYVF9OT0RFKQotICAgICAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChjaGlsZCk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gQWRkIHJlc3VsdHMgZWxlbWVu
dCB0byBkb2N1bWVudC4KLSAgICAgICAgaWYgKCFkb2N1bWVudC5ib2R5KQotICAgICAgICAgICAg
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImJvZHkiKSk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdWx0cyk7
Ci0KLSAgICAgICAgaWYgKHNlbGYudGVzdFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwotICAgIH0KLQotICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAn
bG9hZGluZycpIHsKLSAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb25l
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBzZXRUaW1lb3V0KGRvbmUsIDApOwotICAgIH0KLX0p
OworLyoNCisgKiBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIHZlbmRvcnMgdG8gaW1wbGVtZW50
DQorICogY29kZSBuZWVkZWQgdG8gaW50ZWdyYXRlIHRlc3RoYXJuZXNzLmpzIHRlc3RzIHdpdGgg
dGhlaXIgb3duIHRlc3Qgc3lzdGVtcy4NCisgKg0KKyAqIFR5cGljYWxseSBzdWNoIGludGVncmF0
aW9uIHdpbGwgYXR0YWNoIGNhbGxiYWNrcyB3aGVuIGVhY2ggdGVzdCBpcw0KKyAqIGhhcyBydW4s
IHVzaW5nIGFkZF9yZXN1bHRfY2FsbGJhY2soY2FsbGJhY2sodGVzdCkpLCBvciB3aGVuIHRoZSB3
aG9sZSB0ZXN0IGZpbGUgaGFzDQorICogY29tcGxldGVkLCB1c2luZyBhZGRfY29tcGxldGlvbl9j
YWxsYmFjayhjYWxsYmFjayh0ZXN0cywgaGFybmVzc19zdGF0dXMpKS4NCisgKg0KKyAqIEZvciBt
b3JlIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucyBhbmQgdGhlDQor
ICogcGFyYW1ldGVycyB0aGV5IGFyZSBjYWxsZWQgd2l0aCBzZWUgdGVzdGhhcm5lc3MuanMNCisg
Ki8NCisNCisvLyBTZXR1cCBmb3IgV2ViS2l0IEphdmFTY3JpcHQgdGVzdHMNCitpZiAoc2VsZi50
ZXN0UnVubmVyKSB7DQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsNCisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygp
Ow0KKyAgICAvLyBMZXQncyByZXN0cmljdCBjYWxsaW5nIHRlc3RoYXJuZXNzIHRpbWVvdXQoKSB0
byB3cHRzZXJ2ZSB0ZXN0cyBmb3IgdGhlIG1vbWVudC4NCisgICAgLy8gVGhhdCB3aWxsIGxpbWl0
IHRoZSBpbXBhY3QgdG8gYSBzbWFsbCBudW1iZXIgb2YgdGVzdHMuDQorICAgIC8vIFRoZSByaXNr
IGlzIHRoYXQgdGVzdGhhcm5lc3MgdGltZW91dCgpIG1pZ2h0IGJlIGNhbGxlZCB0byBsYXRlIG9u
IHNsb3cgYm90cyB0byBmaW5pc2ggcHJvcGVybHkuDQorICAgIGlmICh0ZXN0UnVubmVyLnRpbWVv
dXQgJiYgbG9jYXRpb24ucG9ydCA9PSA4ODAwKQ0KKyAgICAgICAgc2V0VGltZW91dCh0aW1lb3V0
LCB0ZXN0UnVubmVyLnRpbWVvdXQgKiAwLjkpOw0KK30NCisNCisvLyBGdW5jdGlvbiB1c2VkIHRv
IGNvbnZlcnQgdGhlIHRlc3Qgc3RhdHVzIGNvZGUgaW50bw0KKy8vIHRoZSBjb3JyZXNwb25kaW5n
IHN0cmluZw0KK2Z1bmN0aW9uIGNvbnZlcnRSZXN1bHQocmVzdWx0U3RhdHVzKQ0KK3sNCisgICAg
aWYocmVzdWx0U3RhdHVzID09IDApDQorICAgICAgICByZXR1cm4oIlBBU1MiKTsNCisgICAgZWxz
ZSBpZihyZXN1bHRTdGF0dXMgPT0gMSkNCisgICAgICAgIHJldHVybigiRkFJTCIpOw0KKyAgICBl
bHNlIGlmKHJlc3VsdFN0YXR1cyA9PSAyKQ0KKyAgICAgICAgcmV0dXJuKCJUSU1FT1VUIik7DQor
ICAgIGVsc2UNCisgICAgICAgIHJldHVybigiTk9UUlVOIik7DQorfQ0KKw0KK2lmIChzZWxmLnRl
c3RSdW5uZXIpIHsNCisgICAgLyogRGlzYWJsZSB0aGUgZGVmYXVsdCBvdXRwdXQgb2YgdGVzdGhh
cm5lc3MuanMuICBUaGUgZGVmYXVsdCBvdXRwdXQgZm9ybWF0cw0KKyAgICAqICB0ZXN0IHJlc3Vs
dHMgaW50byBhbiBIVE1MIHRhYmxlLiAgV2hlbiB0aGF0IHRhYmxlIGlzIGR1bXBlZCBhcyB0ZXh0
LCBubw0KKyAgICAqICBzcGFjaW5nIGJldHdlZW4gY2VsbHMgaXMgcHJlc2VydmVkLCBhbmQgaXQg
aXMgdGhlcmVmb3JlIG5vdCByZWFkYWJsZS4gQnkNCisgICAgKiAgc2V0dGluZyBvdXRwdXQgdG8g
ZmFsc2UsIHRoZSBIVE1MIHRhYmxlIHdpbGwgbm90IGJlIGNyZWF0ZWQNCisgICAgKi8NCisgICAg
c2V0dXAoeyJvdXRwdXQiOiBmYWxzZSwgImV4cGxpY2l0X3RpbWVvdXQiOiB0cnVlfSk7DQorDQor
ICAgIC8qICBVc2luZyBhIGNhbGxiYWNrIGZ1bmN0aW9uLCB0ZXN0IHJlc3VsdHMgd2lsbCBiZSBh
ZGRlZCB0byB0aGUgcGFnZSBpbiBhIA0KKyAgICAqICAgbWFubmVyIHRoYXQgYWxsb3dzIGR1bXBB
c1RleHQgdG8gcHJvZHVjZSByZWFkYWJsZSB0ZXN0IHJlc3VsdHMNCisgICAgKi8NCisgICAgYWRk
X2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24gKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgew0K
KyAgICAgICAgLy8gV2FpdCBmb3IgYW55IG90aGVyIGNvbXBsZXRpb24gY2FsbGJhY2tzDQorICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KKyAgICAgICAgICAgIHZhciByZXN1bHRzID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7DQorICAgICAgICAgICAgdmFyIHJlc3VsdFN0
ciA9ICJcbiI7DQorDQorICAgICAgICAgICAgLy8gU2FuaXRpemVzIHRoZSBnaXZlbiB0ZXh0IGZv
ciBkaXNwbGF5IGluIHRlc3QgcmVzdWx0cy4NCisgICAgICAgICAgICBmdW5jdGlvbiBzYW5pdGl6
ZSh0ZXh0KSB7DQorICAgICAgICAgICAgICAgIGlmICghdGV4dCkgew0KKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuICIiOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIHRl
eHQgPSB0ZXh0LnJlcGxhY2UoL1wwL2csICJcXDAiKTsNCisgICAgICAgICAgICAgICAgcmV0dXJu
IHRleHQucmVwbGFjZSgvXHIvZywgIlxcciIpOw0KKyAgICAgICAgICAgIH0NCisNCisgICAgICAg
ICAgICBpZihoYXJuZXNzX3N0YXR1cy5zdGF0dXMgIT0gMCkNCisgICAgICAgICAgICAgICAgcmVz
dWx0U3RyICs9ICJIYXJuZXNzIEVycm9yICgiICsgY29udmVydFJlc3VsdChoYXJuZXNzX3N0YXR1
cy5zdGF0dXMpICsgIiksIG1lc3NhZ2UgPSAiICsgaGFybmVzc19zdGF0dXMubWVzc2FnZSArICJc
blxuIjsNCisNCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsg
aSsrKSB7DQorICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gc2FuaXRpemUodGVzdHNbaV0u
bWVzc2FnZSk7DQorICAgICAgICAgICAgICAgIGlmICh0ZXN0c1tpXS5zdGF0dXMgPT0gMSAmJiAh
dGVzdHNbaV0uZHVtcFN0YWNrKSB7DQorICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgc3Rh
Y2sgZm9yIGZhaWxlZCB0ZXN0cyBmb3IgcHJvcGVyIHN0cmluZyBjb21wYXJpc29uIHdpdGhvdXQg
ZmlsZSBwYXRocy4NCisgICAgICAgICAgICAgICAgICAgIC8vIEZvciBhIHRlc3QgdG8gZHVtcCB0
aGUgc3RhY2sgc2V0IGl0cyBkdW1wU3RhY2sgYXR0cmlidXRlIHRvIHRydWUuDQorICAgICAgICAg
ICAgICAgICAgICB2YXIgc3RhY2tJbmRleCA9IG1lc3NhZ2UuaW5kZXhPZigiKHN0YWNrOiIpOw0K
KyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrSW5kZXggPiAwKQ0KKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnN1YnN0cigwLCBzdGFja0luZGV4KTsNCisgICAg
ICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICByZXN1bHRTdHIgKz0gY29udmVydFJlc3Vs
dCh0ZXN0c1tpXS5zdGF0dXMpICsgIiAiICsgc2FuaXRpemUodGVzdHNbaV0ubmFtZSkgKyAiICIg
KyBtZXNzYWdlICsgIlxuIjsNCisgICAgICAgICAgICB9DQorDQorICAgICAgICAgICAgcmVzdWx0
cy5pbm5lclRleHQgPSByZXN1bHRTdHI7DQorICAgICAgICAgICAgdmFyIGxvZyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJsb2ciKTsNCisgICAgICAgICAgICBpZiAobG9nKQ0KKyAgICAgICAg
ICAgICAgICBsb2cuYXBwZW5kQ2hpbGQocmVzdWx0cyk7DQorICAgICAgICAgICAgZWxzZQ0KKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3VsdHMpOw0KKw0KKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOw0KKyAgICAgICAgfSwgMCk7DQorICAg
IH0pOw0KKw0KKyAgICBpZiAod2luZG93LmludGVybmFscykNCisgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0UmVzb3VyY2VUaW1pbmdTdXBwb3J0KHRydWUpOw0KK30NCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMgYi9MYXlvdXRUZXN0cy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMKaW5kZXggZDU2MDlkNjYxZDJlMmEyNTFjNzFm
Yjc2ODBlYTJiMWE0ZWNhMWFmZi4uYzIzOWU0ZjE4NTc0MjdjNDkyNDVhNmU1Nzc1OTdmMWYxOWNi
ZmJlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcwpAQCAt
MSw3ICsxLDUgQEAKIC8qDQotICogVEhJUyBGSUxFIElOVEVOVElPTkFMTFkgTEVGVCBCTEFOSw0K
LSAqDQotICogTW9yZSBzcGVjaWZpY2FsbHksIHRoaXMgZmlsZSBpcyBpbnRlbmRlZCBmb3IgdmVu
ZG9ycyB0byBpbXBsZW1lbnQNCisgKiBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIHZlbmRvcnMg
dG8gaW1wbGVtZW50DQogICogY29kZSBuZWVkZWQgdG8gaW50ZWdyYXRlIHRlc3RoYXJuZXNzLmpz
IHRlc3RzIHdpdGggdGhlaXIgb3duIHRlc3Qgc3lzdGVtcy4NCiAgKg0KICAqIFR5cGljYWxseSBz
dWNoIGludGVncmF0aW9uIHdpbGwgYXR0YWNoIGNhbGxiYWNrcyB3aGVuIGVhY2ggdGVzdCBpcw0K
QEAgLTYwLDkgKzU4LDcgQEAgaWYgKHNlbGYudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICAg
IGlmICghdGV4dCkgew0KICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOw0KICAgICAgICAg
ICAgICAgICB9DQotICAgICAgICAgICAgICAgIC8vIEVzY2FwZSBudWxsIGNoYXJhY3RlcnMsIG90
aGVyd2lzZSBkaWZmIHdpbGwgdGhpbmsgdGhlIGZpbGUgaXMgYmluYXJ5Lg0KICAgICAgICAgICAg
ICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC9cMC9nLCAiXFwwIik7DQotICAgICAgICAgICAgICAg
IC8vIEVzY2FwZSBjYXJyaWFnZSByZXR1cm5zIGFzIHRoZXkgYnJlYWsgcmlldHZlbGQncyBkaWZm
dG9vbHMuDQogICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoL1xyL2csICJcXHIi
KTsNCiAgICAgICAgICAgICB9DQogDQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>