<?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>155781</bug_id>
          
          <creation_ts>2016-03-22 18:40:17 -0700</creation_ts>
          <short_desc>Add unit tests for test-group.js</short_desc>
          <delta_ts>2016-03-23 14:55:54 -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>Perf Dashboard</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1177255</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-22 18:40:17 -0700</bug_when>
    <thetext>Add tests for TestGroup objects so that we can catch regressions like the ones fixed in r198503 in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177256</commentid>
    <comment_count>1</comment_count>
      <attachid>274721</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-22 18:43:42 -0700</bug_when>
    <thetext>Created attachment 274721
Adds tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177472</commentid>
    <comment_count>2</comment_count>
      <attachid>274721</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-23 14:36:17 -0700</bug_when>
    <thetext>Comment on attachment 274721
Adds tests

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

r=me

&gt; Websites/perf.webkit.org/unit-tests/test-groups-tests.js:130
&gt; +        it(&apos;should create build reuqests for each group&apos;, function () {

Typo: &quot;reuqests&quot; =&gt; &quot;requests&quot;

&gt; Websites/perf.webkit.org/unit-tests/test-groups-tests.js:213
&gt; +        it(&apos;should return true if all build requests have been cancled&apos;, function () {

Typo: &quot;cancled&quot; =&gt; &quot;canceled&quot;

&gt; Websites/perf.webkit.org/unit-tests/test-groups-tests.js:238
&gt; +            assert.ok(!testGroupWithStatusList([&apos;completed&apos;, &apos;cancled&apos;, &apos;completed&apos;, &apos;running&apos;]).hasFinished());

Typo: &quot;cancled&quot;

&gt; Websites/perf.webkit.org/unit-tests/test-groups-tests.js:251
&gt; +        it(&apos;should return true if all build requests have been cancled&apos;, function () {

Typo: &quot;cancled&quot;

&gt; Websites/perf.webkit.org/unit-tests/test-groups-tests.js:277
&gt; +        it(&apos;should return false if some build requests have completed&apos;, function () {
&gt; +            assert.ok(testGroupWithStatusList([&apos;completed&apos;, &apos;pending&apos;, &apos;pending&apos;, &apos;pending&apos;]).hasStarted());
&gt; +        });
&gt; +
&gt; +        it(&apos;should return false if some build requests are scheduled&apos;, function () {
&gt; +            assert.ok(testGroupWithStatusList([&apos;scheduled&apos;, &apos;pending&apos;, &apos;pending&apos;, &apos;pending&apos;]).hasStarted());
&gt; +        });
&gt; +
&gt; +        it(&apos;should return false if some build requests are running&apos;, function () {
&gt; +            assert.ok(testGroupWithStatusList([&apos;running&apos;, &apos;pending&apos;, &apos;pending&apos;, &apos;pending&apos;]).hasStarted());
&gt; +        });

These all assert &quot;true&quot; but the should sentence says false.

&gt; Websites/perf.webkit.org/unit-tests/test-groups-tests.js:289
&gt; +        it(&apos;should return false if all build requests have been cancled&apos;, function () {

Typo: &quot;cancled&quot;

&gt; Websites/perf.webkit.org/unit-tests/test-groups-tests.js:306
&gt; +            assert.ok(testGroupWithStatusList([&apos;completed&apos;, &apos;failed&apos;, &apos;cancled&apos;, &apos;pending&apos;]).hasPending());

Typo: &quot;cancled&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177479</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-23 14:53:03 -0700</bug_when>
    <thetext>Thanks for the review! Will fix those before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177480</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-23 14:55:54 -0700</bug_when>
    <thetext>Committed r198598: &lt;http://trac.webkit.org/changeset/198598&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274721</attachid>
            <date>2016-03-22 18:43:42 -0700</date>
            <delta_ts>2016-03-23 14:36:17 -0700</delta_ts>
            <desc>Adds tests</desc>
            <filename>bug-155781-20160322184343.patch</filename>
            <type>text/plain</type>
            <size>20434</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4NTcxKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDE2LTAzLTIyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEFkZCB1bml0IHRlc3RzIGZvciB0ZXN0LWdyb3VwLmpzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU3ODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB1bml0IHRlc3RzIGZvciB0
ZXN0LWdyb3VwLmpzIHRoYXQgd291bGQgaGF2ZSBjYXVnaHQgcmVncmVzc2lvbnMgZml4ZWQgaW4g
cjE5ODUwMy4KKworICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL2NoYXJ0LXBhbmUtYmFz
ZS5qczoKKyAgICAgICAgKENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLl9yZW5kZXJBbm5vdGF0aW9u
cyk6IEFkZGVkIGEgZm9yZ290dGVuIGJyZWFrIHN0YXRlbWVudC4KKyAgICAgICAgKiBwdWJsaWMv
djMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanM6CisgICAgICAgIChCdWlsZFJlcXVlc3QucHJvdG90
eXBlLnNldFJlc3VsdCk6CisgICAgICAgIChCdWlsZFJlcXVlc3QpOgorICAgICAgICAqIHB1Ymxp
Yy92My9tb2RlbHMvdGVzdC1ncm91cC5qczoKKyAgICAgICAgKiB1bml0LXRlc3RzL21lYXN1cmVt
ZW50LXNldC10ZXN0cy5qczogVXNlIC4vcmVzb3VyY2VzL3YzLW1vZGVscy5qcyB0byByZWR1Y2Ug
dGhlIGNvZGUgZHVwbGljYXRpb24uCisgICAgICAgICogdW5pdC10ZXN0cy9yZXNvdXJjZXMvdjMt
bW9kZWxzLmpzOiBJbXBvcnQgbW9yZSBzdHVmZiBmcm9tIHYzIG1vZGVscy4KKyAgICAgICAgKGJl
Zm9yZUVhY2gpOgorICAgICAgICAqIHVuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanM6IEFk
ZGVkLiBBZGRlZCBzb21lIHVuaXQgdGVzdHMgZm9yIFRlc3RHcm91cC4KKyAgICAgICAgKHNhbXBs
ZVRlc3RHcm91cCk6CisgICAgICAgICgudGVzdEdyb3VwV2l0aFN0YXR1c0xpc3QpOgorCiAyMDE2
LTAzLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENvbW1p
dCBsb2cgdmlld2VyIHJlcGFpbnRzIHRvbyBmcmVxdWVudGx5IGFmdGVyIHIxOTg0OTkKSW5kZXg6
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jaGFydC1wYW5l
LWJhc2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9jb21wb25lbnRzL2NoYXJ0LXBhbmUtYmFzZS5qcwkocmV2aXNpb24gMTk4NTY5KQorKysgV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2NoYXJ0LXBhbmUtYmFz
ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMjAzLDYgKzIwMyw3IEBAIGNsYXNzIENoYXJ0UGFuZUJh
c2UgZXh0ZW5kcyBDb21wb25lbnRCYXMKICAgICAgICAgICAgIHN3aXRjaCAodGFzay5jaGFuZ2VU
eXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgJ2luY29uY2x1c2l2ZSc6CiAgICAgICAgICAgICAg
ICAgZmlsbFN0eWxlID0gJyNmY2MnOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSAncHJvZ3Jlc3Npb24nOgogICAgICAgICAgICAgICAgIGZpbGxTdHlsZSA9ICcjMzlm
JzsKICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcwkocmV2
aXNpb24gMTk4NTY5KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvYnVpbGQtcmVxdWVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQgQEAKKyd1c2Ug
c3RyaWN0JzsKIAogY2xhc3MgQnVpbGRSZXF1ZXN0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsK
IApAQCAtNjEsMyArNjIsNiBAQCBjbGFzcyBCdWlsZFJlcXVlc3QgZXh0ZW5kcyBEYXRhTW9kZWxP
YmplCiAgICAgICAgIHRoaXMuX3Rlc3RHcm91cC5kaWRTZXRSZXN1bHQodGhpcyk7CiAgICAgfQog
fQorCitpZiAodHlwZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJykKKyAgICBtb2R1bGUuZXhwb3J0
cy5CdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3Q7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMJKHJldmlz
aW9uIDE5ODU2OSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxz
L3Rlc3QtZ3JvdXAuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0IEBACisndXNlIHN0cmlj
dCc7CiAKIGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogCkBAIC0yNDEs
MyArMjQyLDYgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAg
ICAgIHJldHVybiB0ZXN0R3JvdXBzOwogICAgIH0KIH0KKworaWYgKHR5cGVvZiBtb2R1bGUgIT0g
J3VuZGVmaW5lZCcpCisgICAgbW9kdWxlLmV4cG9ydHMuVGVzdEdyb3VwID0gVGVzdEdyb3VwOwpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0
LXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRl
c3RzL21lYXN1cmVtZW50LXNldC10ZXN0cy5qcwkocmV2aXNpb24gMTk4NTY5KQorKysgV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0zLDE5ICszLDcgQEAKIHZhciBhc3NlcnQgPSByZXF1aXJlKCdhc3Nl
cnQnKTsKIAogcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzJyk7Ci0KLWds
b2JhbC5EYXRhTW9kZWxPYmplY3QgPSByZXF1aXJlKCcuLi9wdWJsaWMvdjMvbW9kZWxzL2RhdGEt
bW9kZWwuanMnKS5EYXRhTW9kZWxPYmplY3Q7Ci1nbG9iYWwuTGFiZWxlZE9iamVjdCA9IHJlcXVp
cmUoJy4uL3B1YmxpYy92My9tb2RlbHMvZGF0YS1tb2RlbC5qcycpLkxhYmVsZWRPYmplY3Q7Ci1n
bG9iYWwuQ29tbWl0TG9nID0gcmVxdWlyZSgnLi4vcHVibGljL3YzL21vZGVscy9jb21taXQtbG9n
LmpzJykuQ29tbWl0TG9nOwotZ2xvYmFsLkJ1aWxkID0gcmVxdWlyZSgnLi4vcHVibGljL3YzL21v
ZGVscy9idWlsZGVyLmpzJykuQnVpbGQ7Ci1nbG9iYWwuQnVpbGRlciA9IHJlcXVpcmUoJy4uL3B1
YmxpYy92My9tb2RlbHMvYnVpbGRlci5qcycpLkJ1aWxkZXI7Ci1nbG9iYWwuTWVhc3VyZW1lbnRS
b290U2V0ID0gcmVxdWlyZSgnLi4vcHVibGljL3YzL21vZGVscy9yb290LXNldC5qcycpLk1lYXN1
cmVtZW50Um9vdFNldDsKLWdsb2JhbC5NZWFzdXJlbWVudEFkYXB0b3IgPSByZXF1aXJlKCcuLi9w
dWJsaWMvdjMvbW9kZWxzL21lYXN1cmVtZW50LWFkYXB0b3IuanMnKS5NZWFzdXJlbWVudEFkYXB0
b3I7Ci1nbG9iYWwuTWVhc3VyZW1lbnRDbHVzdGVyID0gcmVxdWlyZSgnLi4vcHVibGljL3YzL21v
ZGVscy9tZWFzdXJlbWVudC1jbHVzdGVyLmpzJykuTWVhc3VyZW1lbnRDbHVzdGVyOwotZ2xvYmFs
Lk1lYXN1cmVtZW50U2V0ID0gcmVxdWlyZSgnLi4vcHVibGljL3YzL21vZGVscy9tZWFzdXJlbWVu
dC1zZXQuanMnKS5NZWFzdXJlbWVudFNldDsKLWdsb2JhbC5SZXBvc2l0b3J5ID0gcmVxdWlyZSgn
Li4vcHVibGljL3YzL21vZGVscy9yZXBvc2l0b3J5LmpzJykuUmVwb3NpdG9yeTsKLWdsb2JhbC5S
b290U2V0ID0gcmVxdWlyZSgnLi4vcHVibGljL3YzL21vZGVscy9yb290LXNldC5qcycpLlJvb3RT
ZXQ7Ci1nbG9iYWwuU3RhdGlzdGljcyA9IHJlcXVpcmUoJy4uL3B1YmxpYy9zaGFyZWQvc3RhdGlz
dGljcy5qcycpOworcmVxdWlyZSgnLi9yZXNvdXJjZXMvdjMtbW9kZWxzLmpzJyk7CiAKIGRlc2Ny
aWJlKCdNZWFzdXJlbWVudFNldCcsIGZ1bmN0aW9uICgpIHsKICAgICBiZWZvcmVFYWNoKGZ1bmN0
aW9uICgpIHsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Rlc3Qt
Z3JvdXBzLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91
bml0LXRlc3RzL3Rlc3QtZ3JvdXBzLXRlc3RzLmpzCShyZXZpc2lvbiAwKQorKysgV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMtdGVzdHMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzMTQgQEAKKyd1c2Ugc3RyaWN0JzsKKwordmFyIGFzc2VydCA9IHJl
cXVpcmUoJ2Fzc2VydCcpOworCityZXF1aXJlKCcuL3Jlc291cmNlcy92My1tb2RlbHMuanMnKTsK
KworZnVuY3Rpb24gc2FtcGxlVGVzdEdyb3VwKCkgeworICAgIHJldHVybiB7CisgICAgICAgICJ0
ZXN0R3JvdXBzIjogW3sKKyAgICAgICAgICAgICJpZCI6ICIyMTI4IiwKKyAgICAgICAgICAgICJ0
YXNrIjogIjEzNzYiLAorICAgICAgICAgICAgIm5hbWUiOiAiQ29uZmlybSIsCisgICAgICAgICAg
ICAiYXV0aG9yIjogInJuaXdhIiwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0
MDAwLAorICAgICAgICAgICAgImhpZGRlbiI6IGZhbHNlLAorICAgICAgICAgICAgImJ1aWxkUmVx
dWVzdHMiOiBbIjE2OTg1IiwgIjE2OTg2IiwgIjE2OTg3IiwgIjE2OTg4IiwgIjE2OTg5IiwgIjE2
OTkwIiwgIjE2OTkxIiwgIjE2OTkyIl0sCisgICAgICAgICAgICAicm9vdFNldHMiOiBbIjQyNTUi
LCAiNDI1NiIsICI0MjU1IiwgIjQyNTYiLCAiNDI1NSIsICI0MjU2IiwgIjQyNTUiLCAiNDI1NiJd
CisgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgImJ1aWxkUmVxdWVzdHMiOiBbeworICAg
ICAgICAgICAgImlkIjogIjE2OTg1IiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwK
KyAgICAgICAgICAgICJ0ZXN0IjogIjg0NCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiMzEi
LAorICAgICAgICAgICAgInRlc3RHcm91cCI6ICIyMTI4IiwKKyAgICAgICAgICAgICJvcmRlciI6
ICIwIiwKKyAgICAgICAgICAgICJyb290U2V0IjogIjQyNTUiLAorICAgICAgICAgICAgInN0YXR1
cyI6ICJwZW5kaW5nIiwKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAgICAgImJ1
aWxkIjogbnVsbCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwCisgICAg
ICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICIxNjk4NiIsCisgICAgICAgICAgICAidHJpZ2dl
cmFibGUiOiAiMyIsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBs
YXRmb3JtIjogIjMxIiwKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEyOCIsCisgICAgICAg
ICAgICAib3JkZXIiOiAiMSIsCisgICAgICAgICAgICAicm9vdFNldCI6ICI0MjU2IiwKKyAgICAg
ICAgICAgICJzdGF0dXMiOiAicGVuZGluZyIsCisgICAgICAgICAgICAidXJsIjogbnVsbCwKKyAg
ICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4
ODUxNDAwMAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiMTY5ODci
LAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRlc3QiOiAi
ODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICIzMSIsCisgICAgICAgICAgICAidGVzdEdy
b3VwIjogIjIxMjgiLAorICAgICAgICAgICAgIm9yZGVyIjogIjIiLAorICAgICAgICAgICAgInJv
b3RTZXQiOiAiNDI1NSIsCisgICAgICAgICAgICAic3RhdHVzIjogInBlbmRpbmciLAorICAgICAg
ICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGQiOiBudWxsLAorICAgICAgICAg
ICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAg
ImlkIjogIjE2OTg4IiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAgICAgICAg
ICAgICJ0ZXN0IjogIjg0NCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiMzEiLAorICAgICAg
ICAgICAgInRlc3RHcm91cCI6ICIyMTI4IiwKKyAgICAgICAgICAgICJvcmRlciI6ICIzIiwKKyAg
ICAgICAgICAgICJyb290U2V0IjogIjQyNTYiLAorICAgICAgICAgICAgInN0YXR1cyI6ICJwZW5k
aW5nIiwKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAgICAgImJ1aWxkIjogbnVs
bCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwCisgICAgICAgIH0KKyAg
ICAgICAgXSwKKyAgICAgICAgInJvb3RTZXRzIjogW3sKKyAgICAgICAgICAgICJpZCI6ICI0MjU1
IiwKKyAgICAgICAgICAgICJyb290cyI6IFsiODc4MzIiLCAiOTMxMTYiXQorICAgICAgICB9LCB7
CisgICAgICAgICAgICAiaWQiOiAiNDI1NiIsCisgICAgICAgICAgICAicm9vdHMiOiBbIjg3ODMy
IiwgIjk2MzM2Il0KKyAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICAicm9vdHMiOiBbewor
ICAgICAgICAgICAgImlkIjogIjg3ODMyIiwKKyAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIjki
LAorICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjExIDE1QTI4NCIsCisgICAgICAgICAgICAi
dGltZSI6IDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlkIjogIjkzMTE2IiwKKyAgICAg
ICAgICAgICJyZXBvc2l0b3J5IjogIjExIiwKKyAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxOTE2
MjIiLAorICAgICAgICAgICAgInRpbWUiOiAxNDQ1OTQ1ODE2ODc4CisgICAgICAgIH0sIHsKKyAg
ICAgICAgICAgICJpZCI6ICI4NzgzMiIsCisgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICI5IiwK
KyAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC4xMSAxNUEyODQiLAorICAgICAgICAgICAgInRp
bWUiOiAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICI5NjMzNiIsCisgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICIxMSIsCisgICAgICAgICAgICAicmV2aXNpb24iOiAiMTkyNzM2
IiwKKyAgICAgICAgICAgICJ0aW1lIjogMTQ0ODIyNTMyNTY1MAorICAgICAgICB9CisgICAgICAg
IF0sCisgICAgICAgICJzdGF0dXMiOiAiT0siCisgICAgfTsKK30KKworZGVzY3JpYmUoJ1Rlc3RH
cm91cCcsIGZ1bmN0aW9uICgpIHsKKworICAgIGRlc2NyaWJlKCdfY3JlYXRlTW9kZWxzRnJvbUZl
dGNoZWRUZXN0R3JvdXBzJywgZnVuY3Rpb24gKCkgeworICAgICAgICBpdCgnc2hvdWxkIGNyZWF0
ZSB0ZXN0IGdyb3VwcycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBncm91cHMgPSBU
ZXN0R3JvdXAuX2NyZWF0ZU1vZGVsc0Zyb21GZXRjaGVkVGVzdEdyb3VwcyhzYW1wbGVUZXN0R3Jv
dXAoKSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3JvdXBzLmxlbmd0aCwgMSk7CisKKyAg
ICAgICAgICAgIHZhciBncm91cCA9IGdyb3Vwc1swXTsKKyAgICAgICAgICAgIGFzc2VydC5vayhn
cm91cCBpbnN0YW5jZW9mIFRlc3RHcm91cCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ3Jv
dXAuaWQoKSwgMjEyOCk7CisgICAgICAgICAgICBhc3NlcnQub2soZ3JvdXAuY3JlYXRlZEF0KCkg
aW5zdGFuY2VvZiBEYXRlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5pc0hpZGRl
bigpLCBmYWxzZSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoK2dyb3VwLmNyZWF0ZWRBdCgp
LCAxNDU4Njg4NTE0MDAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cC5yZXBldGl0
aW9uQ291bnQoKSwgc2FtcGxlVGVzdEdyb3VwKClbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGggLyAy
KTsKKyAgICAgICAgICAgIGFzc2VydC5vayhncm91cC5oYXNQZW5kaW5nKCkpOworICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFncm91cC5oYXNGaW5pc2hlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayghZ3JvdXAuaGFzU3RhcnRlZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3Vs
ZCBub3QgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIFRlc3RHcm91cCBvYmplY3QgaWYgdGhlcmUg
aXMgYSBtYXRjaGluZyBlbnRyeScsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBmaXJz
dE9iamVjdCA9IFRlc3RHcm91cC5fY3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0R3JvdXBzKHNh
bXBsZVRlc3RHcm91cCgpKVswXTsKKyAgICAgICAgICAgIGFzc2VydC5vayhmaXJzdE9iamVjdCBp
bnN0YW5jZW9mIFRlc3RHcm91cCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVGVzdEdyb3Vw
Ll9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RHcm91cHMoc2FtcGxlVGVzdEdyb3VwKCkpWzBd
LCBmaXJzdE9iamVjdCk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgY3JlYXRl
IGJ1aWxkIHJldXFlc3RzIGZvciBlYWNoIGdyb3VwJywgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgdmFyIGdyb3VwcyA9IFRlc3RHcm91cC5fY3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0R3Jv
dXBzKHNhbXBsZVRlc3RHcm91cCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYnVpbGRSZXF1
ZXN0cygpLmxlbmd0aCwgc2FtcGxlVGVzdEdyb3VwKClbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgp
OworCisgICAgICAgICAgICB2YXIgYnVpbGRSZXF1ZXN0cyA9IGdyb3Vwc1swXS5idWlsZFJlcXVl
c3RzKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5pZCgpLCAx
Njk4NSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5vcmRlcigp
LCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNGaW5pc2hl
ZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0c1swXS5oYXNTdGFydGVk
KCkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdHNbMF0uaGFzUGVuZGluZygp
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzBdLnN0YXR1c0xhYmVs
KCksICdXYWl0aW5nIHRvIGJlIHNjaGVkdWxlZCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdHNbMF0uYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3RzWzBdLnJlc3VsdCgpLCBudWxsKTsKKworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0uaWQoKSwgMTY5ODYpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0ub3JkZXIoKSwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaGFzRmluaXNoZWQoKSk7CisgICAgICAgICAgICBhc3Nl
cnQub2soIWJ1aWxkUmVxdWVzdHNbMV0uaGFzU3RhcnRlZCgpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5vayhidWlsZFJlcXVlc3RzWzFdLmhhc1BlbmRpbmcoKSk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZyB0byBiZSBzY2hl
ZHVsZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzWzFdLmJ1aWxk
SWQoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5y
ZXN1bHQoKSwgbnVsbCk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgY3JlYXRl
IHJvb3Qgc2V0cyBmb3IgZWFjaCBncm91cCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZh
ciBidWlsZFJlcXVlc3RzID0gVGVzdEdyb3VwLl9jcmVhdGVNb2RlbHNGcm9tRmV0Y2hlZFRlc3RH
cm91cHMoc2FtcGxlVGVzdEdyb3VwKCkpWzBdLmJ1aWxkUmVxdWVzdHMoKTsKKworICAgICAgICAg
ICAgdmFyIGZpcnN0U2V0ID0gYnVpbGRSZXF1ZXN0c1swXS5yb290U2V0KCk7CisgICAgICAgICAg
ICBhc3NlcnQub2soZmlyc3RTZXQgaW5zdGFuY2VvZiBSb290U2V0KTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChmaXJzdFNldCwgYnVpbGRSZXF1ZXN0c1syXS5yb290U2V0KCkpOworCisgICAg
ICAgICAgICB2YXIgc2Vjb25kU2V0ID0gYnVpbGRSZXF1ZXN0c1sxXS5yb290U2V0KCk7CisgICAg
ICAgICAgICBhc3NlcnQub2soc2Vjb25kU2V0IGluc3RhbmNlb2YgUm9vdFNldCk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kU2V0LCBidWlsZFJlcXVlc3RzWzNdLnJvb3RTZXQoKSk7
CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFNldC5yZXZpc2lvbkZvclJlcG9zaXRv
cnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICAgICAgdmFyIGZpcnN0V2ViS2l0Q29tbWl0
ID0gZmlyc3RTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICAgICAgYXNz
ZXJ0Lm9rKGZpcnN0V2ViS2l0Q29tbWl0IGluc3RhbmNlb2YgQ29tbWl0TG9nKTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayhmaXJzdFdlYktpdENvbW1pdCwgYnVpbGRSZXF1ZXN0c1syXS5yb290U2V0
KCkuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhm
aXJzdFdlYktpdENvbW1pdC5yZXBvc2l0b3J5KCksIHdlYmtpdCk7CisgICAgICAgICAgICBhc3Nl
cnQub2soZmlyc3RXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICAg
ICAgYXNzZXJ0Lm9rKGZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSBpbnN0YW5jZW9mIERhdGUpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCtmaXJzdFdlYktpdENvbW1pdC50aW1lKCksIDE0NDU5NDU4
MTY4NzgpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kU2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7CisgICAgICAgICAgICB2YXIgc2Vjb25kV2Vi
S2l0Q29tbWl0ID0gc2Vjb25kU2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAg
ICAgICAgIGFzc2VydC5vayhzZWNvbmRXZWJLaXRDb21taXQgaW5zdGFuY2VvZiBDb21taXRMb2cp
OworICAgICAgICAgICAgYXNzZXJ0Lm9rKHNlY29uZFdlYktpdENvbW1pdCwgYnVpbGRSZXF1ZXN0
c1szXS5yb290U2V0KCkuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAg
IGFzc2VydC5vayhzZWNvbmRXZWJLaXRDb21taXQucmVwb3NpdG9yeSgpLCB3ZWJraXQpOworICAg
ICAgICAgICAgYXNzZXJ0Lm9rKHNlY29uZFdlYktpdENvbW1pdC5yZXZpc2lvbigpLCAnMTkyNzM2
Jyk7CisgICAgICAgICAgICBhc3NlcnQub2soc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSBpbnN0
YW5jZW9mIERhdGUpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKCtzZWNvbmRXZWJLaXRDb21taXQu
dGltZSgpLCAxNDQ1OTQ1ODE2ODc4KTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGZpcnN0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAg
ICAgICB2YXIgb3N4Q29tbWl0ID0gZmlyc3RTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeShvc3gpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm9rKG9zeENvbW1pdCBpbnN0YW5jZW9mIENvbW1pdExvZyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0LCBidWlsZFJlcXVlc3RzWzFdLnJvb3RT
ZXQoKS5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdCwgYnVpbGRSZXF1ZXN0c1syXS5yb290U2V0KCkuY29tbWl0Rm9yUmVwb3NpdG9y
eShvc3gpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQsIGJ1aWxkUmVxdWVz
dHNbM10ucm9vdFNldCgpLmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KSk7CisgICAgICAgICAgICBh
c3NlcnQub2sob3N4Q29tbWl0LnJlcG9zaXRvcnkoKSwgb3N4KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5vayhvc3hDb21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICB9KTsK
KyAgICB9KTsKKworICAgIGZ1bmN0aW9uIHRlc3RHcm91cFdpdGhTdGF0dXNMaXN0KGxpc3QpIHsK
KyAgICAgICAgdmFyIGRhdGEgPSBzYW1wbGVUZXN0R3JvdXAoKTsKKyAgICAgICAgZGF0YS5idWls
ZFJlcXVlc3RzWzBdLnN0YXR1cyA9IGxpc3RbMF07CisgICAgICAgIGRhdGEuYnVpbGRSZXF1ZXN0
c1sxXS5zdGF0dXMgPSBsaXN0WzFdOworICAgICAgICBkYXRhLmJ1aWxkUmVxdWVzdHNbMl0uc3Rh
dHVzID0gbGlzdFsyXTsKKyAgICAgICAgZGF0YS5idWlsZFJlcXVlc3RzWzNdLnN0YXR1cyA9IGxp
c3RbM107CisgICAgICAgIHJldHVybiBUZXN0R3JvdXAuX2NyZWF0ZU1vZGVsc0Zyb21GZXRjaGVk
VGVzdEdyb3VwcyhkYXRhKVswXTsKKyAgICB9CisKKyAgICBkZXNjcmliZSgnaGFzRmluaXNoZWQn
LCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgaWYgYWxsIGJ1
aWxkIHJlcXVlc3RzIGhhdmUgY29tcGxldGVkJywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
YXNzZXJ0Lm9rKHRlc3RHcm91cFdpdGhTdGF0dXNMaXN0KFsnY29tcGxldGVkJywgJ2NvbXBsZXRl
ZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJ10pLmhhc0ZpbmlzaGVkKCkpOworICAgICAgICB9
KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIGlmIGFsbCBidWlsZCByZXF1ZXN0
cyBoYXZlIGZhaWxlZCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydC5vayh0ZXN0
R3JvdXBXaXRoU3RhdHVzTGlzdChbJ2ZhaWxlZCcsICdmYWlsZWQnLCAnZmFpbGVkJywgJ2ZhaWxl
ZCddKS5oYXNGaW5pc2hlZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBy
ZXR1cm4gdHJ1ZSBpZiBhbGwgYnVpbGQgcmVxdWVzdHMgaGF2ZSBiZWVuIGNhbmNsZWQnLCBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwV2l0aFN0YXR1c0xpc3Qo
WydjYW5jZWxlZCcsICdjYW5jZWxlZCcsICdjYW5jZWxlZCcsICdjYW5jZWxlZCddKS5oYXNGaW5p
c2hlZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSBp
ZiBhbGwgYnVpbGQgcmVxdWVzdHMgaGF2ZSBjb21wbGV0ZWQgb3IgZmFpbGVkJywgZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cFdpdGhTdGF0dXNMaXN0KFsnZmFp
bGVkJywgJ2NvbXBsZXRlZCcsICdmYWlsZWQnLCAnZmFpbGVkJ10pLmhhc0ZpbmlzaGVkKCkpOwor
ICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIGlmIGFsbCBidWls
ZCByZXF1ZXN0cyBoYXZlIGNvbXBsZXRlZCwgZmFpbGVkLCBvciBjYW5jbGVkJywgZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cFdpdGhTdGF0dXNMaXN0KFsnZmFp
bGVkJywgJ2NvbXBsZXRlZCcsICdjYW5jZWxlZCcsICdjYW5jZWxlZCddKS5oYXNGaW5pc2hlZCgp
KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2UgaWYgYWxs
IGJ1aWxkIHJlcXVlc3RzIGFyZSBwZW5kaW5nJywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
YXNzZXJ0Lm9rKCF0ZXN0R3JvdXBXaXRoU3RhdHVzTGlzdChbJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJywgJ3BlbmRpbmcnXSkuaGFzRmluaXNoZWQoKSk7CisgICAgICAgIH0pOworCisg
ICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIGlmIHNvbWUgYnVpbGQgcmVxdWVzdHMgYXJl
IHBlbmRpbmcnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91
cFdpdGhTdGF0dXNMaXN0KFsnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAn
cGVuZGluZyddKS5oYXNGaW5pc2hlZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3No
b3VsZCByZXR1cm4gZmFsc2UgaWYgc29tZSBidWlsZCByZXF1ZXN0cyBhcmUgc2NoZWR1bGVkJywg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3JvdXBXaXRoU3RhdHVz
TGlzdChbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ3NjaGVkdWxlZCdd
KS5oYXNGaW5pc2hlZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1
cm4gZmFsc2UgaWYgc29tZSBidWlsZCByZXF1ZXN0cyBhcmUgcnVubmluZycsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwV2l0aFN0YXR1c0xpc3QoWydjb21w
bGV0ZWQnLCAnY2FuY2xlZCcsICdjb21wbGV0ZWQnLCAncnVubmluZyddKS5oYXNGaW5pc2hlZCgp
KTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgnaGFzU3RhcnRlZCcsIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSBpZiBhbGwgYnVpbGQg
cmVxdWVzdHMgaGF2ZSBjb21wbGV0ZWQnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBhc3Nl
cnQub2sodGVzdEdyb3VwV2l0aFN0YXR1c0xpc3QoWydjb21wbGV0ZWQnLCAnY29tcGxldGVkJywg
J2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnXSkuaGFzU3RhcnRlZCgpKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSBpZiBhbGwgYnVpbGQgcmVxdWVzdHMgaGF2
ZSBmYWlsZWQnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBhc3NlcnQub2sodGVzdEdyb3Vw
V2l0aFN0YXR1c0xpc3QoWydmYWlsZWQnLCAnZmFpbGVkJywgJ2ZhaWxlZCcsICdmYWlsZWQnXSku
aGFzU3RhcnRlZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4g
dHJ1ZSBpZiBhbGwgYnVpbGQgcmVxdWVzdHMgaGF2ZSBiZWVuIGNhbmNsZWQnLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwV2l0aFN0YXR1c0xpc3QoWydjYW5j
ZWxlZCcsICdjYW5jZWxlZCcsICdjYW5jZWxlZCcsICdjYW5jZWxlZCddKS5oYXNTdGFydGVkKCkp
OworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIGlmIGFsbCBi
dWlsZCByZXF1ZXN0cyBoYXZlIGNvbXBsZXRlZCBvciBmYWlsZWQnLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwV2l0aFN0YXR1c0xpc3QoWydmYWlsZWQnLCAn
Y29tcGxldGVkJywgJ2ZhaWxlZCcsICdmYWlsZWQnXSkuaGFzU3RhcnRlZCgpKTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSBpZiBhbGwgYnVpbGQgcmVxdWVz
dHMgaGF2ZSBjb21wbGV0ZWQsIGZhaWxlZCwgb3IgY2FuY2xlZCcsIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIGFzc2VydC5vayh0ZXN0R3JvdXBXaXRoU3RhdHVzTGlzdChbJ2ZhaWxlZCcsICdj
b21wbGV0ZWQnLCAnY2FuY2VsZWQnLCAnY2FuY2VsZWQnXSkuaGFzU3RhcnRlZCgpKTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2UgaWYgYWxsIGJ1aWxkIHJl
cXVlc3RzIGFyZSBwZW5kaW5nJywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0Lm9r
KCF0ZXN0R3JvdXBXaXRoU3RhdHVzTGlzdChbJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5n
JywgJ3BlbmRpbmcnXSkuaGFzU3RhcnRlZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQo
J3Nob3VsZCByZXR1cm4gZmFsc2UgaWYgc29tZSBidWlsZCByZXF1ZXN0cyBoYXZlIGNvbXBsZXRl
ZCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydC5vayh0ZXN0R3JvdXBXaXRoU3Rh
dHVzTGlzdChbJ2NvbXBsZXRlZCcsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddKS5o
YXNTdGFydGVkKCkpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBm
YWxzZSBpZiBzb21lIGJ1aWxkIHJlcXVlc3RzIGFyZSBzY2hlZHVsZWQnLCBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwV2l0aFN0YXR1c0xpc3QoWydzY2hlZHVs
ZWQnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSkuaGFzU3RhcnRlZCgpKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2UgaWYgc29tZSBidWls
ZCByZXF1ZXN0cyBhcmUgcnVubmluZycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2Vy
dC5vayh0ZXN0R3JvdXBXaXRoU3RhdHVzTGlzdChbJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5k
aW5nJywgJ3BlbmRpbmcnXSkuaGFzU3RhcnRlZCgpKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisK
KyAgICBkZXNjcmliZSgnaGFzUGVuZGluZycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaXQoJ3No
b3VsZCByZXR1cm4gZmFsc2UgaWYgYWxsIGJ1aWxkIHJlcXVlc3RzIGhhdmUgY29tcGxldGVkJywg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0Lm9rKCF0ZXN0R3JvdXBXaXRoU3RhdHVz
TGlzdChbJ2NvbXBsZXRlZCcsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCdd
KS5oYXNQZW5kaW5nKCkpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVy
biBmYWxzZSBpZiBhbGwgYnVpbGQgcmVxdWVzdHMgaGF2ZSBmYWlsZWQnLCBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICBhc3NlcnQub2soIXRlc3RHcm91cFdpdGhTdGF0dXNMaXN0KFsnZmFpbGVk
JywgJ2ZhaWxlZCcsICdmYWlsZWQnLCAnZmFpbGVkJ10pLmhhc1BlbmRpbmcoKSk7CisgICAgICAg
IH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIGlmIGFsbCBidWlsZCByZXF1
ZXN0cyBoYXZlIGJlZW4gY2FuY2xlZCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2Vy
dC5vayghdGVzdEdyb3VwV2l0aFN0YXR1c0xpc3QoWydjYW5jZWxlZCcsICdjYW5jZWxlZCcsICdj
YW5jZWxlZCcsICdjYW5jZWxlZCddKS5oYXNQZW5kaW5nKCkpOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSBpZiBhbGwgYnVpbGQgcmVxdWVzdHMgaGF2ZSBj
b21wbGV0ZWQgb3IgZmFpbGVkJywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0Lm9r
KCF0ZXN0R3JvdXBXaXRoU3RhdHVzTGlzdChbJ2ZhaWxlZCcsICdjb21wbGV0ZWQnLCAnZmFpbGVk
JywgJ2ZhaWxlZCddKS5oYXNQZW5kaW5nKCkpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgn
c2hvdWxkIHJldHVybiBmYWxzZSBpZiBhbGwgYnVpbGQgcmVxdWVzdHMgaGF2ZSBjb21wbGV0ZWQs
IGZhaWxlZCwgb3IgY2FuY2xlZCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydC5v
ayghdGVzdEdyb3VwV2l0aFN0YXR1c0xpc3QoWydmYWlsZWQnLCAnY29tcGxldGVkJywgJ2NhbmNl
bGVkJywgJ2NhbmNlbGVkJ10pLmhhc1BlbmRpbmcoKSk7CisgICAgICAgIH0pOworCisgICAgICAg
IGl0KCdzaG91bGQgcmV0dXJuIHRydWUgaWYgYWxsIGJ1aWxkIHJlcXVlc3RzIGFyZSBwZW5kaW5n
JywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cFdpdGhTdGF0
dXNMaXN0KFsncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddKS5oYXNQ
ZW5kaW5nKCkpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVl
IGlmIHNvbWUgYnVpbGQgcmVxdWVzdHMgYXJlIHBlbmRpbmcnLCBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwV2l0aFN0YXR1c0xpc3QoWydjb21wbGV0ZWQnLCAn
ZmFpbGVkJywgJ2NhbmNsZWQnLCAncGVuZGluZyddKS5oYXNQZW5kaW5nKCkpOworICAgICAgICB9
KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSBpZiBzb21lIGJ1aWxkIHJlcXVl
c3RzIGFyZSBzY2hlZHVsZWQgYW5kIG90aGVycyBoYXZlIGNvbXBsZXRlZCcsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIGFzc2VydC5vayghdGVzdEdyb3VwV2l0aFN0YXR1c0xpc3QoWydjb21w
bGV0ZWQnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZCcsICdzY2hlZHVsZWQnXSkuaGFzUGVuZGlu
ZygpKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKK30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNl
cy92My1tb2RlbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Vu
aXQtdGVzdHMvcmVzb3VyY2VzL3YzLW1vZGVscy5qcwkocmV2aXNpb24gMTk4NTY5KQorKysgV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL3YzLW1vZGVscy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMTAsMTYgKzEwLDIwIEBAIGltcG9ydEZyb21WMygnbW9kZWxzL2Rh
dGEtbW9kZWwuanMnLCAnRGEKIGltcG9ydEZyb21WMygnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAn
TGFiZWxlZE9iamVjdCcpOwogCiBpbXBvcnRGcm9tVjMoJ21vZGVscy9hbmFseXNpcy10YXNrLmpz
JywgJ0FuYWx5c2lzVGFzaycpOworaW1wb3J0RnJvbVYzKCdtb2RlbHMvYnVpbGQtcmVxdWVzdC5q
cycsICdCdWlsZFJlcXVlc3QnKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL2J1aWxkZXIuanMnLCAn
QnVpbGQnKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL2J1aWxkZXIuanMnLCAnQnVpbGRlcicpOwog
aW1wb3J0RnJvbVYzKCdtb2RlbHMvY29tbWl0LWxvZy5qcycsICdDb21taXRMb2cnKTsKIGltcG9y
dEZyb21WMygnbW9kZWxzL21lYXN1cmVtZW50LWFkYXB0b3IuanMnLCAnTWVhc3VyZW1lbnRBZGFw
dG9yJyk7CitpbXBvcnRGcm9tVjMoJ21vZGVscy9tZWFzdXJlbWVudC1jbHVzdGVyLmpzJywgJ01l
YXN1cmVtZW50Q2x1c3RlcicpOworaW1wb3J0RnJvbVYzKCdtb2RlbHMvbWVhc3VyZW1lbnQtc2V0
LmpzJywgJ01lYXN1cmVtZW50U2V0Jyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9tZXRyaWMuanMn
LCAnTWV0cmljJyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9wbGF0Zm9ybS5qcycsICdQbGF0Zm9y
bScpOwogaW1wb3J0RnJvbVYzKCdtb2RlbHMvcmVwb3NpdG9yeS5qcycsICdSZXBvc2l0b3J5Jyk7
CiBpbXBvcnRGcm9tVjMoJ21vZGVscy9yb290LXNldC5qcycsICdNZWFzdXJlbWVudFJvb3RTZXQn
KTsKIGltcG9ydEZyb21WMygnbW9kZWxzL3Jvb3Qtc2V0LmpzJywgJ1Jvb3RTZXQnKTsKIGltcG9y
dEZyb21WMygnbW9kZWxzL3Rlc3QuanMnLCAnVGVzdCcpOworaW1wb3J0RnJvbVYzKCdtb2RlbHMv
dGVzdC1ncm91cC5qcycsICdUZXN0R3JvdXAnKTsKIAogaW1wb3J0RnJvbVYzKCdpbnN0cnVtZW50
YXRpb24uanMnLCAnSW5zdHJ1bWVudGF0aW9uJyk7CiAKQEAgLTMwLDYgKzM0LDggQEAgYmVmb3Jl
RWFjaChmdW5jdGlvbiAoKSB7CiAgICAgQW5hbHlzaXNUYXNrLmNsZWFyU3RhdGljTWFwKCk7CiAg
ICAgQ29tbWl0TG9nLmNsZWFyU3RhdGljTWFwKCk7CiAgICAgUm9vdFNldC5jbGVhclN0YXRpY01h
cCgpOworICAgIFRlc3RHcm91cC5jbGVhclN0YXRpY01hcCgpOworICAgIEJ1aWxkUmVxdWVzdC5j
bGVhclN0YXRpY01hcCgpOwogCiAgICAgZ2xvYmFsLm9zeCA9IFJlcG9zaXRvcnkuZW5zdXJlU2lu
Z2xldG9uKDksIHtuYW1lOiAnT1MgWCd9KTsKICAgICBnbG9iYWwud2Via2l0ID0gUmVwb3NpdG9y
eS5lbnN1cmVTaW5nbGV0b24oMTEsIHtuYW1lOiAnV2ViS2l0JywgdXJsOiAnaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvJDEnfSk7Cg==
</data>
<flag name="review"
          id="299136"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>