<?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>154090</bug_id>
          
          <creation_ts>2016-02-10 14:43:04 -0800</creation_ts>
          <short_desc>Perf dashboard should have UI to retry A/B testing</short_desc>
          <delta_ts>2016-02-16 13:53:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>jond</cc>
    
    <cc>rniwa</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1163622</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-10 14:43:04 -0800</bug_when>
    <thetext>There should be an easy way to re-trigger failed A/B testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163633</commentid>
    <comment_count>1</comment_count>
      <attachid>271033</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-10 14:59:57 -0800</bug_when>
    <thetext>Created attachment 271033
Adds the feature</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163869</commentid>
    <comment_count>2</comment_count>
      <attachid>271033</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-02-11 14:11:37 -0800</bug_when>
    <thetext>Comment on attachment 271033
Adds the feature

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163873</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-11 14:17:54 -0800</bug_when>
    <thetext>Committed r196440: &lt;http://trac.webkit.org/changeset/196440&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271033</attachid>
            <date>2016-02-10 14:59:57 -0800</date>
            <delta_ts>2016-02-11 14:11:37 -0800</delta_ts>
            <desc>Adds the feature</desc>
            <filename>bug-154090-20160210145935.patch</filename>
            <type>text/plain</type>
            <size>26448</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2Mzk1KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDY3IEBACisyMDE2LTAyLTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIFBlcmYgZGFzaGJvYXJkIHNob3VsZCBoYXZlIFVJIHRvIHJldHJ5IEEvQiB0ZXN0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQw
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBhIGJ1dHRvbiB0byByZS10cnkgYW4gZXhpc3RpbmcgQS9CIHRlc3RpbmcgZ3JvdXAgd2l0aCBh
IGN1c3RvbSByZXBldGl0aW9uIGNvdW50LiBUaGUgc2FtZSBidXR0b24gZnVuY3Rpb25zCisgICAg
ICAgIGFzIGEgd2F5IG9mIGNvbmZpcm1pbmcgdGhlIHByb2dyZXNzaW9uL3JlZ3Jlc3Npb24gd2hl
biB0aGVyZSBoYXZlIGJlZW4gbm8gQS9CIHRlc3Rpbmcgc2NoZWR1bGVkIGluIHRoZSB0YXNrLgor
CisgICAgICAgIEFsc28gZml4ZWQgdGhlIGJ1ZyB0aGF0IEEvQiB0ZXN0aW5nIGdyb3VwcyB0aGF0
IGhhdmUgYmVlbiB3YWl0aW5nIGZvciBvdGhlciB0ZXN0IGdyb3VwcyB3aWxsIGJlIHNob3duIGFz
ICJydW5uaW5nIi4KKworICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL3Jlc3VsdHMtdGFi
bGUuanM6CisgICAgICAgIChSZXN1bHRzVGFibGUuY3NzVGVtcGxhdGUpOiBEb24ndCBwYWQgdGhl
IGxpc3Qgb2YgZXh0cmEgcmVwb3NpdG9yaWVzIHdoZW4gaXQncyBlbXB0eS4KKworICAgICAgICAq
IHB1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtcmVzdWx0cy10YWJsZS5qczoKKyAgICAg
ICAgKFRlc3RHcm91cFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuYnVpbGRSb3dHcm91cHMpOiBVc2Ug
VGVzdEdyb3VwLmxhYmVsRm9yUm9vdFNldCBpbnN0ZWFkIG9mIG1hbnVhbGx5CisgICAgICAgIGNv
bXB1dGluZyB0aGUgbGV0dGVyIGZvciBlYWNoIGNvbmZpZ3VyYXRpb24gc2V0LgorCisgICAgICAg
ICogcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzOgorICAgICAgICAoQnVpbGRSZXF1
ZXN0LnByb3RvdHlwZS5oYXNTdGFydGVkKTogQWRkZWQuCisKKyAgICAgICAgKiBwdWJsaWMvdjMv
bW9kZWxzL2RhdGEtbW9kZWwuanM6CisgICAgICAgIChEYXRhTW9kZWxPYmplY3QuZW5zdXJlU2lu
Z2xldG9uKTogQWRkZWQuCisgICAgICAgIChEYXRhTW9kZWxPYmplY3QuY2FjaGVkRmV0Y2gpOiBB
ZGRlZCBub0NhY2hlIG9wdGlvbi4gVGhpcyBpcyB1c2VkIHdoZW4gcmUtZmV0Y2hpbmcgdGhlIHRl
c3QgZ3JvdXBzIGFmdGVyCisgICAgICAgIGNyZWF0aW5nIG9uZS4KKworICAgICAgICAqIHB1Ymxp
Yy92My9tb2RlbHMvbWVhc3VyZW1lbnQtY2x1c3Rlci5qczoKKyAgICAgICAgKE1lYXN1cmVtZW50
Q2x1c3Rlci5wcm90b3R5cGUuc3RhcnRUaW1lKTogQWRkZWQuCisKKyAgICAgICAgKiBwdWJsaWMv
djMvbW9kZWxzL21lYXN1cmVtZW50LXNldC5qczoKKyAgICAgICAgKE1lYXN1cmVtZW50U2V0LnBy
b3RvdHlwZS5oYXNGZXRjaGVkUmFuZ2UpOiBBZGRlZC4gUmV0dXJucyB0cnVlIG9ubHkgaWYgdGhl
cmUgYXJlIG5vICJob2xlcyIgKGNsdXN0ZXIKKyAgICAgICAgeWV0IHRvIGJlIGZldGNoZWQpIGJl
dHdlZW4gdGhlIHNwZWNpZmllZCB0aW1lIHJhbmdlLiBUaGlzIHdhcyBhZGRlZCB0byBmaXggYSBi
dWcgaW4gQW5hbHlzaXNUYXNrUGFnZSdzCisgICAgICAgIF9kaWRGZXRjaE1lYXN1cmVtZW50Lgor
CisgICAgICAgICogcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzOgorICAgICAgICAoVGVz
dEdyb3VwKTogQWRkZWQgdGhpcy5fcm9vdFNldFRvTGFiZWwuCisgICAgICAgIChUZXN0R3JvdXAu
cHJvdG90eXBlLmFkZEJ1aWxkUmVxdWVzdCk6IFJlc2V0IHRoaXMuX3Jvb3RTZXRUb0xhYmVsIGFs
b25nIHdpdGggdGhpcy5fcmVxdWVzdGVkUm9vdFNldHMuIAorICAgICAgICAoVGVzdEdyb3VwLnBy
b3RvdHlwZS5yZXBldGl0aW9uQ291bnQpOiBBZGRlZC4gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGl0
ZXJhdGlvbnMgZXhlY3V0ZWQgcGVyIHNldC4gV2UgYXNzdW1lIHRoYXQKKyAgICAgICAgZXZlcnkg
cm9vdCBzZXQgaW4gdGhlIHRlc3QgZ3JvdXAgc2hhcmVzIGEgc2luZ2xlIHJlcGV0aXRpb24gY291
bnQuCisgICAgICAgIChUZXN0R3JvdXAucHJvdG90eXBlLnJlcXVlc3RlZFJvb3RTZXRzKTogTm93
IHBvcHVsYXRlcyB0aGlzLl9yb290U2V0VG9MYWJlbCBmb3IgbGFiZWxGb3JSb290U2V0LgorICAg
ICAgICAoVGVzdEdyb3VwLnByb3RvdHlwZS5sYWJlbEZvclJvb3RTZXQpOiBBZGRlZC4KKyAgICAg
ICAgKFRlc3RHcm91cC5wcm90b3R5cGUuaGFzU3RhcnRlZCk6IEFkZGVkLgorICAgICAgICAoVGVz
dEdyb3VwLnByb3RvdHlwZS5jb21wYXJlVGVzdFJlc3VsdHMpOiBVc2UgJ3J1bm5pbmcnIGFuZCAn
cGVuZGluZycgdG8gZGlmZmVyZW50aWF0ZSB0ZXN0IGdyb3VwcyB0aGF0IGFyZSB3YWl0aW5nCisg
ICAgICAgIGZvciBvdGhlciBncm91cHMgdG8gZmluaXNoIHJ1bm5pbmcgZnJvbSB0aGUgb25lcyB0
aGF0IGFyZSBhY3R1YWxseSBydW5uaW5nICgnaW5jb21wbGV0ZScgYmVmb3JlIHRoaXMgcGF0Y2gp
LgorICAgICAgICAoVGVzdEdyb3VwLmZldGNoQnlUYXNrKToKKyAgICAgICAgKFRlc3RHcm91cC5j
cmVhdGVBbmRSZWZldGNoVGVzdEdyb3Vwcyk6IEFkZGVkLiBDcmVhdGVzIGEgbmV3IHRlc3QgZ3Jv
dXAgdXNpbmcgdGhlIHByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwCisgICAgICAgIGFu
ZCBmZXRjaGVzIHRoZSBsaXN0IG9mIHRlc3QgZ3JvdXBzIGZvciB0aGUgc3BlY2lmaWVkIGFuYWx5
c2lzIHRhc2suCisgICAgICAgIChUZXN0R3JvdXAuX2NyZWF0ZU1vZGVsc0Zyb21GZXRjaGVkVGVz
dEdyb3Vwcyk6IEV4dHJhY3RlZCBmcm9tIFRlc3RHcm91cC5mZXRjaEJ5VGFzay4KKworICAgICAg
ICAqIHB1YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanM6CisgICAgICAgIChBbmFs
eXNpc1Rhc2tQYWdlKTogSW5pdGlhbGl6ZSBfcmVuZGVyZWRDdXJyZW50VGVzdEdyb3VwIHRvIHVu
ZGVmaW5lZCBzbyB0aGF0IHdlJ2QgYWx3YXlzIGNhbiBkaWZmZXJlbnRpYXRlCisgICAgICAgIHRo
ZSBpbml0aWFsIGNhbGwgdG8gQW5hbHlzaXNUYXNrUGFnZS5yZW5kZXIgYW5kIHN1YnNlcXVlbnQg
Y2FsbHMgaW4gd2hpY2ggaXQncyBpZGVudGljYWwgdG8gX2N1cnJlbnRUZXN0R3JvdXAuCisgICAg
ICAgIChBbmFseXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5fZGlkRmV0Y2hNZWFzdXJlbWVudCk6IEZp
eGVkIGEgYnVnIHRoYXQgd2UgZG9uJ3QgZXhpdCBlYXJseSBldmVuIHdoZW4gc29tZQorICAgICAg
ICBjbHVzdGVycyBpbiBiZXR3ZWVuIHN0YXJ0UG9pbnQgYW5kIGVuZFBvaW50IGFyZSBzdGlsbCBi
ZWluZyBmZXRjaGVkIHZpYSBuZXdseSBhZGRlZCBoYXNGZXRjaGVkUmFuZ2UuCisgICAgICAgIChB
bmFseXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5yZW5kZXIpOiBVcGRhdGUgdGhlIGRlZmF1bHQgcmVw
ZXRpdGlvbiBjb3VudCBiYXNlZCBvbiB0aGUgY3VycmVudCB0ZXN0IGdyb3VwLgorICAgICAgICBB
bHNvIHVwZGF0ZSB0aGUgbGFiZWwgb2YgdGhlIGJ1dHRvbiB0byAiQ29uZmlybSB0aGUgY2hhbmdl
IiBpZiB0aGVyZSBpcyBubyBBL0IgdGVzdGluZyBpbiB0aGlzIHRhc2suCisgICAgICAgIChBbmFs
eXNpc1Rhc2tQYWdlLnByb3RvdHlwZS5fcmV0cnlDdXJyZW50VGVzdEdyb3VwKTogQWRkZWQuIFJl
LXRyaWdnZXJzIGFuIGV4aXN0aW5nIEEvQiB0ZXN0aW5nIGdyb3VwIG9yIGNyZWF0ZXMKKyAgICAg
ICAgdGhlIEEvQiB0ZXN0aW5nIGZvciB0aGUgZW50aXJlIHJhbmdlIG9mIHRoZSBhbmFseXNpcyB0
YXNrLgorICAgICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUuX2hhc0R1cGxpY2F0ZVRl
c3RHcm91cE5hbWUpOiBBZGRlZC4KKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBl
Ll9jcmVhdGVSZXRyeU5hbWVGb3JUZXN0R3JvdXApOiBBZGRlZC4KKyAgICAgICAgKEFuYWx5c2lz
VGFza1BhZ2UuaHRtbFRlbXBsYXRlKTogQWRkZWQgZm9ybSBjb250cm9scyB0byByZS10cmlnZ2Vy
IEEvQiB0ZXN0aW5nLgorICAgICAgICAoQW5hbHlzaXNUYXNrUGFnZS5jc3NUZW1wbGF0ZSk6IFVw
ZGF0ZWQgdGhlIHN0eWxlLgorCiAyMDE2LTAyLTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJlbW92ZWQgdGhlIGR1cGxpY2F0ZWQgZGVmaW5pdGlvbiBvZiBD
aGFydFBhbmVCYXNlLgpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9j
b21wb25lbnRzL3Jlc3VsdHMtdGFibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Jlc3VsdHMtdGFibGUuanMJKHJldmlzaW9u
IDE5NjM5NSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy9yZXN1bHRzLXRhYmxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsNiArMjI2LDEwIEBAIGNs
YXNzIFJlc3VsdHNUYWJsZSBleHRlbmRzIENvbXBvbmVudEJhc2UKICAgICAgICAgICAgICAgICBm
b250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgLnJlc3VsdHMt
dGFibGUtZXh0cmEtcmVwb3NpdG9yaWVzOmVtcHR5IHsKKyAgICAgICAgICAgICAgICBwYWRkaW5n
OiAwOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAucmVzdWx0cy10YWJsZS1leHRyYS1y
ZXBvc2l0b3JpZXMgbGkgewogICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTsKICAgICAg
ICAgICAgIH0KSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9u
ZW50cy90ZXN0LWdyb3VwLXJlc3VsdHMtdGFibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtcmVzdWx0cy10
YWJsZS5qcwkocmV2aXNpb24gMTk2Mzk1KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtcmVzdWx0cy10YWJsZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMzAsNyArMzAsNyBAQCBjbGFzcyBUZXN0R3JvdXBSZXN1bHRzVGFibGUgZXh0ZW5k
cyBSZXN1CiAgICAgICAgICAgICByZXR1cm4gW107CiAKICAgICAgICAgdmFyIHJvb3RTZXRzID0g
dGhpcy5fdGVzdEdyb3VwLnJlcXVlc3RlZFJvb3RTZXRzKCk7Ci0gICAgICAgIHZhciBncm91cHMg
PSByb290U2V0cy5tYXAoZnVuY3Rpb24gKHJvb3RTZXQsIHNldEluZGV4KSB7CisgICAgICAgIHZh
ciBncm91cHMgPSByb290U2V0cy5tYXAoZnVuY3Rpb24gKHJvb3RTZXQpIHsKICAgICAgICAgICAg
IHZhciByb3dzID0gW25ldyBSZXN1bHRzVGFibGVSb3coJ01lYW4nLCByb290U2V0KV07CiAgICAg
ICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOwogCkBAIC01MSwxNyArNTEsMTcgQEAgY2xhc3MgVGVz
dEdyb3VwUmVzdWx0c1RhYmxlIGV4dGVuZHMgUmVzdQogICAgICAgICAgICAgaWYgKCFpc05hTihh
Z2dyZWdhdGVkUmVzdWx0LnZhbHVlKSkKICAgICAgICAgICAgICAgICByb3dzWzBdLnNldFJlc3Vs
dChhZ2dyZWdhdGVkUmVzdWx0KTsKIAotICAgICAgICAgICAgcmV0dXJuIHtoZWFkaW5nOiBTdHJp
bmcuZnJvbUNoYXJDb2RlKCdBJy5jaGFyQ29kZUF0KDApICsgc2V0SW5kZXgpLCByb3dzOnJvd3N9
OworICAgICAgICAgICAgcmV0dXJuIHtoZWFkaW5nOiB0ZXN0R3JvdXAubGFiZWxGb3JSb290U2V0
KHJvb3RTZXQpLCByb3dzOnJvd3N9OwogICAgICAgICB9KTsKIAogICAgICAgICB2YXIgY29tcGFy
aXNvblJvd3MgPSBbXTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb290U2V0cy5sZW5n
dGg7IGkrKykgewogICAgICAgICAgICAgZm9yICh2YXIgaiA9IGkgKyAxOyBqIDwgcm9vdFNldHMu
bGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICAgICAgICB2YXIgc3RhcnRDb25maWcgPSBTdHJpbmcu
ZnJvbUNoYXJDb2RlKCdBJy5jaGFyQ29kZUF0KDApICsgaSk7Ci0gICAgICAgICAgICAgICAgdmFy
IGVuZENvbmZpZyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoJ0EnLmNoYXJDb2RlQXQoMCkgKyBqKTsK
KyAgICAgICAgICAgICAgICB2YXIgc3RhcnRDb25maWcgPSB0ZXN0R3JvdXAubGFiZWxGb3JSb290
U2V0KHJvb3RTZXRzW2ldKTsKKyAgICAgICAgICAgICAgICB2YXIgZW5kQ29uZmlnID0gdGVzdEdy
b3VwLmxhYmVsRm9yUm9vdFNldChyb290U2V0c1tqXSk7CiAKICAgICAgICAgICAgICAgICB2YXIg
cmVzdWx0ID0gdGhpcy5fdGVzdEdyb3VwLmNvbXBhcmVUZXN0UmVzdWx0cyhyb290U2V0c1tpXSwg
cm9vdFNldHNbal0pOwotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09ICdpbmNv
bXBsZXRlJyB8fCByZXN1bHQuc3RhdHVzID09ICdmYWlsZWQnKQorICAgICAgICAgICAgICAgIGlm
IChyZXN1bHQuc3RhdHVzID09ICdwZW5kaW5nJyB8fCByZXN1bHQuc3RhdHVzID09ICdydW5uaW5n
JyB8fCByZXN1bHQuc3RhdHVzID09ICdmYWlsZWQnKQogICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKIAogICAgICAgICAgICAgICAgIHZhciByb3cgPSBuZXcgUmVzdWx0c1RhYmxlUm93KGAk
e3N0YXJ0Q29uZmlnfSB0byAke2VuZENvbmZpZ31gLCBudWxsKTsKQEAgLTcwLDcgKzcwLDcgQEAg
Y2xhc3MgVGVzdEdyb3VwUmVzdWx0c1RhYmxlIGV4dGVuZHMgUmVzdQogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgZ3JvdXBzLnB1c2goe2hlYWRpbmc6ICcnLCByb3dzOiBjb21w
YXJpc29uUm93c30pOworICAgICAgICBncm91cHMudW5zaGlmdCh7aGVhZGluZzogJycsIHJvd3M6
IGNvbXBhcmlzb25Sb3dzfSk7CiAKICAgICAgICAgcmV0dXJuIGdyb3VwczsKICAgICB9CkluZGV4
OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9k
ZWxzL2J1aWxkLXJlcXVlc3QuanMJKHJldmlzaW9uIDE5NjM5NSkKKysrIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDYgKzIxLDcgQEAgY2xhc3MgQnVpbGRSZXF1ZXN0IGV4dGVuZHMgRGF0YU1vZGVs
T2JqZQogICAgIHJvb3RTZXQoKSB7IHJldHVybiB0aGlzLl9yb290U2V0OyB9CiAKICAgICBoYXND
b21wbGV0ZWQoKSB7IHJldHVybiB0aGlzLl9zdGF0dXMgPT0gJ2ZhaWxlZCcgfHwgdGhpcy5fc3Rh
dHVzID09ICdjb21wbGV0ZWQnOyB9CisgICAgaGFzU3RhcnRlZCgpIHsgcmV0dXJuIHRoaXMuX3N0
YXR1cyAhPSAncGVuZGluZyc7IH0KICAgICBzdGF0dXNMYWJlbCgpCiAgICAgewogICAgICAgICBz
d2l0Y2ggKHRoaXMuX3N0YXR1cykgewpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvZGF0YS1tb2RlbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1vZGVsLmpzCShyZXZpc2lvbiAxOTYz
OTUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9kYXRhLW1v
ZGVsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC03LDYgKzcsMTQgQEAgY2xhc3MgRGF0YU1vZGVsT2Jq
ZWN0IHsKICAgICB9CiAgICAgaWQoKSB7IHJldHVybiB0aGlzLl9pZDsgfQogCisgICAgc3RhdGlj
IGVuc3VyZVNpbmdsZXRvbihpZCwgb2JqZWN0KQorICAgIHsKKyAgICAgICAgdmFyIHNpbmdsZXRv
biA9IHRoaXMuZmluZEJ5SWQoaWQpOworICAgICAgICBpZiAoc2luZ2xldG9uKQorICAgICAgICAg
ICAgcmV0dXJuIHNpbmdsZXRvbjsKKyAgICAgICAgcmV0dXJuIG5ldyAodGhpcykoaWQsIG9iamVj
dCk7CisgICAgfQorCiAgICAgc3RhdGljIG5hbWVkU3RhdGljTWFwKG5hbWUpCiAgICAgewogICAg
ICAgICB2YXIgc3RhdGljTWFwID0gdGhpc1tEYXRhTW9kZWxPYmplY3QuU3RhdGljTWFwU3ltYm9s
XTsKQEAgLTQzLDcgKzUxLDcgQEAgY2xhc3MgRGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAgcmV0
dXJuIGxpc3Q7CiAgICAgfQogCi0gICAgc3RhdGljIGNhY2hlZEZldGNoKHBhdGgsIHBhcmFtcykK
KyAgICBzdGF0aWMgY2FjaGVkRmV0Y2gocGF0aCwgcGFyYW1zLCBub0NhY2hlKQogICAgIHsKICAg
ICAgICAgdmFyIHF1ZXJ5ID0gW107CiAgICAgICAgIGlmIChwYXJhbXMpIHsKQEAgLTUzLDYgKzYx
LDkgQEAgY2xhc3MgRGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAgaWYgKHF1ZXJ5Lmxlbmd0aCkK
ICAgICAgICAgICAgIHBhdGggKz0gJz8nICsgcXVlcnkuam9pbignJicpOwogCisgICAgICAgIGlm
IChub0NhY2hlKQorICAgICAgICAgICAgcmV0dXJuIGdldEpTT05XaXRoU3RhdHVzKHBhdGgpOwor
CiAgICAgICAgIHZhciBjYWNoZU1hcCA9IHRoaXMuZW5zdXJlTmFtZWRTdGF0aWNNYXAoRGF0YU1v
ZGVsT2JqZWN0LkNhY2hlTWFwU3ltYm9sKTsKICAgICAgICAgaWYgKCFjYWNoZU1hcFtwYXRoXSkK
ICAgICAgICAgICAgIGNhY2hlTWFwW3BhdGhdID0gZ2V0SlNPTldpdGhTdGF0dXMocGF0aCk7Cklu
ZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tZWFzdXJlbWVu
dC1jbHVzdGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL21lYXN1cmVtZW50LWNsdXN0ZXIuanMJKHJldmlzaW9uIDE5NjM5NSkKKysr
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21lYXN1cmVtZW50LWNs
dXN0ZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNyw3IEBAIGNsYXNzIE1lYXN1cmVtZW50
Q2x1c3RlciB7CiAgICAgfQogCiAgICAgc3RhcnRUaW1lKCkgeyByZXR1cm4gdGhpcy5fcmVzcG9u
c2VbJ3N0YXJ0VGltZSddOyB9CisgICAgZW5kVGltZSgpIHsgcmV0dXJuIHRoaXMuX3Jlc3BvbnNl
WydlbmRUaW1lJ107IH0KIAogICAgIGFkZFRvU2VyaWVzKHNlcmllcywgY29uZmlnVHlwZSwgaW5j
bHVkZU91dGxpZXJzLCBpZE1hcCkKICAgICB7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy9tZWFzdXJlbWVudC1zZXQuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWVhc3VyZW1lbnQtc2V0Lmpz
CShyZXZpc2lvbiAxOTYzOTUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy9tZWFzdXJlbWVudC1zZXQuanMJKHdvcmtpbmcgY29weSkKQEAgLTE5MSw2ICsxOTEs
MjMgQEAgY2xhc3MgTWVhc3VyZW1lbnRTZXQgewogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBo
YXNGZXRjaGVkUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1lKQorICAgIHsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoc3RhcnRUaW1lIDwgZW5kVGltZSk7CisgICAgICAgIHZhciBoYXNIb2xlID0gZmFs
c2U7CisgICAgICAgIHZhciBwcmV2aW91c0VuZFRpbWUgPSBudWxsOworICAgICAgICBmb3IgKHZh
ciBjbHVzdGVyIG9mIHRoaXMuX3NvcnRlZENsdXN0ZXJzKSB7CisgICAgICAgICAgICBpZiAoY2x1
c3Rlci5zdGFydFRpbWUoKSA8IHN0YXJ0VGltZSAmJiBzdGFydFRpbWUgPCBjbHVzdGVyLmVuZFRp
bWUoKSkKKyAgICAgICAgICAgICAgICBoYXNIb2xlID0gZmFsc2U7CisgICAgICAgICAgICBpZiAo
cHJldmlvdXNFbmRUaW1lICE9PSBudWxsICYmIHByZXZpb3VzRW5kVGltZSAhPSBjbHVzdGVyLnN0
YXJ0VGltZSgpKQorICAgICAgICAgICAgICAgIGhhc0hvbGUgPSB0cnVlOworICAgICAgICAgICAg
aWYgKGNsdXN0ZXIuc3RhcnRUaW1lKCkgPCBlbmRUaW1lICYmIGVuZFRpbWUgPCBjbHVzdGVyLmVu
ZFRpbWUoKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHByZXZpb3VzRW5k
VGltZSA9IGNsdXN0ZXIuZW5kVGltZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAhaGFz
SG9sZTsKKyAgICB9CisKICAgICBmZXRjaGVkVGltZVNlcmllcyhjb25maWdUeXBlLCBpbmNsdWRl
T3V0bGllcnMsIGV4dGVuZFRvRnV0dXJlKQogICAgIHsKICAgICAgICAgSW5zdHJ1bWVudGF0aW9u
LnN0YXJ0TWVhc3VyaW5nVGltZSgnTWVhc3VyZW1lbnRTZXQnLCAnZmV0Y2hlZFRpbWVTZXJpZXMn
KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3Qt
Z3JvdXAuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvdGVzdC1ncm91cC5qcwkocmV2aXNpb24gMTk2Mzk1KQorKysgV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMTEsNiArMTEsNyBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0
IHsKICAgICAgICAgdGhpcy5fcmVxdWVzdHNBcmVJbk9yZGVyID0gZmFsc2U7CiAgICAgICAgIHRo
aXMuX3JlcG9zaXRvcmllcyA9IG51bGw7CiAgICAgICAgIHRoaXMuX3JlcXVlc3RlZFJvb3RTZXRz
ID0gbnVsbDsKKyAgICAgICAgdGhpcy5fcm9vdFNldFRvTGFiZWwgPSBuZXcgTWFwOwogICAgICAg
ICB0aGlzLl9hbGxSb290U2V0cyA9IG51bGw7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvYmpl
Y3QucGxhdGZvcm0gfHwgb2JqZWN0LnBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwogICAg
ICAgICB0aGlzLl9wbGF0Zm9ybSA9IG9iamVjdC5wbGF0Zm9ybTsKQEAgLTIzLDYgKzI0LDIwIEBA
IGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICB0aGlzLl9i
dWlsZFJlcXVlc3RzLnB1c2gocmVxdWVzdCk7CiAgICAgICAgIHRoaXMuX3JlcXVlc3RzQXJlSW5P
cmRlciA9IGZhbHNlOwogICAgICAgICB0aGlzLl9yZXF1ZXN0ZWRSb290U2V0cyA9IG51bGw7Cisg
ICAgICAgIHRoaXMuX3Jvb3RTZXRUb0xhYmVsID0gbnVsbDsKKyAgICB9CisKKyAgICByZXBldGl0
aW9uQ291bnQoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9idWlsZFJlcXVlc3RzLmxlbmd0
aCkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB2YXIgcm9vdFNldCA9IHRoaXMuX2J1
aWxkUmVxdWVzdHNbMF0ucm9vdFNldCgpOworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAg
ICBmb3IgKHZhciByZXF1ZXN0IG9mIHRoaXMuX2J1aWxkUmVxdWVzdHMpIHsKKyAgICAgICAgICAg
IGlmIChyZXF1ZXN0LnJvb3RTZXQoKSA9PSByb290U2V0KQorICAgICAgICAgICAgICAgIGNvdW50
Kys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvdW50OwogICAgIH0KIAogICAgIHJlcXVl
c3RlZFJvb3RTZXRzKCkKQEAgLTM2LDYgKzUxLDEyIEBAIGNsYXNzIFRlc3RHcm91cCBleHRlbmRz
IExhYmVsZWRPYmplY3QgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXF1ZXN0ZWRSb290
U2V0cy5wdXNoKHNldCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLl9yZXF1ZXN0
ZWRSb290U2V0cy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLmxhdGVzdENvbW1pdFRp
bWUoKSAtIGIubGF0ZXN0Q29tbWl0VGltZSgpOyB9KTsKKyAgICAgICAgICAgIHZhciBzZXRJbmRl
eCA9IDA7CisgICAgICAgICAgICBmb3IgKHZhciBzZXQgb2YgdGhpcy5fcmVxdWVzdGVkUm9vdFNl
dHMpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9yb290U2V0VG9MYWJlbC5zZXQoc2V0LCBTdHJp
bmcuZnJvbUNoYXJDb2RlKCdBJy5jaGFyQ29kZUF0KDApICsgc2V0SW5kZXgpKTsKKyAgICAgICAg
ICAgICAgICBzZXRJbmRleCsrOworICAgICAgICAgICAgfQorCiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIHRoaXMuX3JlcXVlc3RlZFJvb3RTZXRzOwogICAgIH0KQEAgLTQ2LDYgKzY3LDEyIEBA
IGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICByZXR1cm4g
dGhpcy5fYnVpbGRSZXF1ZXN0cy5maWx0ZXIoZnVuY3Rpb24gKHJlcXVlc3QpIHsgcmV0dXJuIHJl
cXVlc3Qucm9vdFNldCgpID09IHJvb3RTZXQ7IH0pOwogICAgIH0KIAorICAgIGxhYmVsRm9yUm9v
dFNldChyb290U2V0KQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcmVxdWVz
dGVkUm9vdFNldHMpOworICAgICAgICByZXR1cm4gdGhpcy5fcm9vdFNldFRvTGFiZWwuZ2V0KHJv
b3RTZXQpOworICAgIH0KKwogICAgIF9vcmRlckJ1aWxkUmVxdWVzdHMoKQogICAgIHsKICAgICAg
ICAgaWYgKHRoaXMuX3JlcXVlc3RzQXJlSW5PcmRlcikKQEAgLTY0LDYgKzkxLDExIEBAIGNsYXNz
IFRlc3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICByZXR1cm4gdGhpcy5f
YnVpbGRSZXF1ZXN0cy5ldmVyeShmdW5jdGlvbiAocmVxdWVzdCkgeyByZXR1cm4gcmVxdWVzdC5o
YXNDb21wbGV0ZWQoKTsgfSk7CiAgICAgfQogCisgICAgaGFzU3RhcnRlZCgpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5fYnVpbGRSZXF1ZXN0cy5zb21lKGZ1bmN0aW9uIChyZXF1ZXN0KSB7
IHJldHVybiByZXF1ZXN0Lmhhc1N0YXJ0ZWQoKTsgfSk7CisgICAgfQorCiAgICAgY29tcGFyZVRl
c3RSZXN1bHRzKHJvb3RTZXRBLCByb290U2V0QikKICAgICB7CiAgICAgICAgIHZhciBiZWZvcmVW
YWx1ZXMgPSB0aGlzLl92YWx1ZXNGb3JSb290U2V0KHJvb3RTZXRBKTsKQEAgLTg1LDkgKzExNywx
NSBAQCBjbGFzcyBUZXN0R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgfQog
CiAgICAgICAgIGlmICghdGhpcy5oYXNDb21wbGV0ZWQoKSkgewotICAgICAgICAgICAgcmVzdWx0
LnN0YXR1cyA9ICdpbmNvbXBsZXRlJzsKLSAgICAgICAgICAgIHJlc3VsdC5sYWJlbCA9ICdSdW5u
aW5nJzsKLSAgICAgICAgICAgIHJlc3VsdC5mdWxsTGFiZWwgPSAnUnVubmluZyc7CisgICAgICAg
ICAgICBpZiAodGhpcy5oYXNTdGFydGVkKCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuc3Rh
dHVzID0gJ3J1bm5pbmcnOworICAgICAgICAgICAgICAgIHJlc3VsdC5sYWJlbCA9ICdSdW5uaW5n
JzsKKyAgICAgICAgICAgICAgICByZXN1bHQuZnVsbExhYmVsID0gJ1J1bm5pbmcnOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuc3RhdHVzID0gJ3BlbmRpbmcn
OworICAgICAgICAgICAgICAgIHJlc3VsdC5sYWJlbCA9ICdQZW5kaW5nJzsKKyAgICAgICAgICAg
ICAgICByZXN1bHQuZnVsbExhYmVsID0gJ1BlbmRpbmcnOworICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UgaWYgKHJlc3VsdC5jaGFuZ2VUeXBlKSB7CiAgICAgICAgICAgICB2YXIgc2lnbmlm
aWNhbmNlID0gcmVzdWx0LmlzU3RhdGlzdGljYWxseVNpZ25pZmljYW50ID8gJ3NpZ25pZmljYW50
JyA6ICdpbnNpZ25pZmljYW50JzsKICAgICAgICAgICAgIHJlc3VsdC5mdWxsTGFiZWwgPSBgJHty
ZXN1bHQubGFiZWx9IChzdGF0aXN0aWNhbGx5ICR7c2lnbmlmaWNhbmNlfSlgOwpAQCAtMTA3LDMy
ICsxNDUsNDcgQEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAg
ICAgIHJldHVybiB2YWx1ZXM7CiAgICAgfQogCisgICAgc3RhdGljIGNyZWF0ZUFuZFJlZmV0Y2hU
ZXN0R3JvdXBzKHRhc2ssIG5hbWUsIHJlcGV0aXRpb25Db3VudCwgcm9vdFNldHMpCisgICAgewor
ICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHsKKyAgICAgICAgICAgIHRhc2s6IHRhc2su
aWQoKSwKKyAgICAgICAgICAgIG5hbWU6IG5hbWUsCisgICAgICAgICAgICByZXBldGl0aW9uQ291
bnQ6IHJlcGV0aXRpb25Db3VudCwKKyAgICAgICAgICAgIHJvb3RTZXRzOiByb290U2V0cywKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAoZGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIHNlbGYu
Y2FjaGVkRmV0Y2goJy4uL2FwaS90ZXN0LWdyb3VwcycsIHt0YXNrOiB0YXNrLmlkKCl9LCB0cnVl
KS50aGVuKHNlbGYuX2NyZWF0ZU1vZGVsc0Zyb21GZXRjaGVkVGVzdEdyb3Vwcy5iaW5kKHNlbGYp
KTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgc3RhdGljIGZldGNoQnlUYXNrKHRhc2tJZCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmNhY2hlZEZldGNoKCcuLi9hcGkvdGVzdC1ncm91
cHMnLCB7dGFzazogdGFza0lkfSkudGhlbihmdW5jdGlvbiAoZGF0YSkgewotICAgICAgICAgICAg
dmFyIHRlc3RHcm91cHMgPSBkYXRhWyd0ZXN0R3JvdXBzJ10ubWFwKGZ1bmN0aW9uIChyb3cpIHsK
LSAgICAgICAgICAgICAgICByb3cucGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChyb3cucGxh
dGZvcm0pOwotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVGVzdEdyb3VwKHJvdy5pZCwgcm93
KTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICB2YXIgcm9vdElkTWFwID0ge307Ci0g
ICAgICAgICAgICBmb3IgKHZhciByb290IG9mIGRhdGFbJ3Jvb3RzJ10pCi0gICAgICAgICAgICAg
ICAgcm9vdElkTWFwW3Jvb3QuaWRdID0gcm9vdDsKLQotICAgICAgICAgICAgdmFyIHJvb3RTZXRz
ID0gZGF0YVsncm9vdFNldHMnXS5tYXAoZnVuY3Rpb24gKHJvdykgewotICAgICAgICAgICAgICAg
IHJvdy5yb290cyA9IHJvdy5yb290cy5tYXAoZnVuY3Rpb24gKHJvb3RJZCkgeyByZXR1cm4gcm9v
dElkTWFwW3Jvb3RJZF07IH0pOwotICAgICAgICAgICAgICAgIHJvdy50ZXN0R3JvdXAgPSBSb290
U2V0LmZpbmRCeUlkKHJvdy50ZXN0R3JvdXApOwotICAgICAgICAgICAgICAgIHJldHVybiBuZXcg
Um9vdFNldChyb3cuaWQsIHJvdyk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgdmFy
IGJ1aWxkUmVxdWVzdHMgPSBkYXRhWydidWlsZFJlcXVlc3RzJ10ubWFwKGZ1bmN0aW9uIChyYXdE
YXRhKSB7Ci0gICAgICAgICAgICAgICAgcmF3RGF0YS50ZXN0R3JvdXAgPSBUZXN0R3JvdXAuZmlu
ZEJ5SWQocmF3RGF0YS50ZXN0R3JvdXApOwotICAgICAgICAgICAgICAgIHJhd0RhdGEucm9vdFNl
dCA9IFJvb3RTZXQuZmluZEJ5SWQocmF3RGF0YS5yb290U2V0KTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IEJ1aWxkUmVxdWVzdChyYXdEYXRhLmlkLCByYXdEYXRhKTsKLSAgICAgICAgICAg
IH0pOworICAgICAgICByZXR1cm4gdGhpcy5jYWNoZWRGZXRjaCgnLi4vYXBpL3Rlc3QtZ3JvdXBz
Jywge3Rhc2s6IHRhc2tJZH0pLnRoZW4odGhpcy5fY3JlYXRlTW9kZWxzRnJvbUZldGNoZWRUZXN0
R3JvdXBzLmJpbmQodGhpcykpOworICAgIH0KKworICAgIHN0YXRpYyBfY3JlYXRlTW9kZWxzRnJv
bUZldGNoZWRUZXN0R3JvdXBzKGRhdGEpCisgICAgeworICAgICAgICB2YXIgdGVzdEdyb3VwcyA9
IGRhdGFbJ3Rlc3RHcm91cHMnXS5tYXAoZnVuY3Rpb24gKHJvdykgeworICAgICAgICAgICAgcm93
LnBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQocm93LnBsYXRmb3JtKTsKKyAgICAgICAgICAg
IHJldHVybiBUZXN0R3JvdXAuZW5zdXJlU2luZ2xldG9uKHJvdy5pZCwgcm93KTsKKyAgICAgICAg
fSk7CiAKLSAgICAgICAgICAgIHJldHVybiB0ZXN0R3JvdXBzOworICAgICAgICB2YXIgcm9vdElk
TWFwID0ge307CisgICAgICAgIGZvciAodmFyIHJvb3Qgb2YgZGF0YVsncm9vdHMnXSkKKyAgICAg
ICAgICAgIHJvb3RJZE1hcFtyb290LmlkXSA9IHJvb3Q7CisKKyAgICAgICAgdmFyIHJvb3RTZXRz
ID0gZGF0YVsncm9vdFNldHMnXS5tYXAoZnVuY3Rpb24gKHJvdykgeworICAgICAgICAgICAgcm93
LnJvb3RzID0gcm93LnJvb3RzLm1hcChmdW5jdGlvbiAocm9vdElkKSB7IHJldHVybiByb290SWRN
YXBbcm9vdElkXTsgfSk7CisgICAgICAgICAgICByb3cudGVzdEdyb3VwID0gUm9vdFNldC5maW5k
QnlJZChyb3cudGVzdEdyb3VwKTsKKyAgICAgICAgICAgIHJldHVybiBSb290U2V0LmVuc3VyZVNp
bmdsZXRvbihyb3cuaWQsIHJvdyk7CiAgICAgICAgIH0pOwotICAgIH0KIAorICAgICAgICB2YXIg
YnVpbGRSZXF1ZXN0cyA9IGRhdGFbJ2J1aWxkUmVxdWVzdHMnXS5tYXAoZnVuY3Rpb24gKHJhd0Rh
dGEpIHsKKyAgICAgICAgICAgIHJhd0RhdGEudGVzdEdyb3VwID0gVGVzdEdyb3VwLmZpbmRCeUlk
KHJhd0RhdGEudGVzdEdyb3VwKTsKKyAgICAgICAgICAgIHJhd0RhdGEucm9vdFNldCA9IFJvb3RT
ZXQuZmluZEJ5SWQocmF3RGF0YS5yb290U2V0KTsKKyAgICAgICAgICAgIHJldHVybiBCdWlsZFJl
cXVlc3QuZW5zdXJlU2luZ2xldG9uKHJhd0RhdGEuaWQsIHJhd0RhdGEpOworICAgICAgICB9KTsK
KworICAgICAgICByZXR1cm4gdGVzdEdyb3VwczsKKyAgICB9CiB9CkluZGV4OiBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5
c2lzLXRhc2stcGFnZS5qcwkocmV2aXNpb24gMTk2Mzk1KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTEzLDcgKzEzLDcgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VX
aXRoSAogICAgICAgICB0aGlzLl90YXNrID0gbnVsbDsKICAgICAgICAgdGhpcy5fdGVzdEdyb3Vw
cyA9IG51bGw7CiAgICAgICAgIHRoaXMuX3JlbmRlcmVkVGVzdEdyb3VwcyA9IG51bGw7Ci0gICAg
ICAgIHRoaXMuX3JlbmRlcmVkQ3VycmVudFRlc3RHcm91cCA9IG51bGw7CisgICAgICAgIHRoaXMu
X3JlbmRlcmVkQ3VycmVudFRlc3RHcm91cCA9IHVuZGVmaW5lZDsKICAgICAgICAgdGhpcy5fYW5h
bHlzaXNSZXN1bHRzID0gbnVsbDsKICAgICAgICAgdGhpcy5fbWVhc3VyZW1lbnRTZXQgPSBudWxs
OwogICAgICAgICB0aGlzLl9zdGFydFBvaW50ID0gbnVsbDsKQEAgLTI0LDYgKzI0LDggQEAgY2xh
c3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSAogICAgICAgICB0aGlzLl9hbmFs
eXNpc1Jlc3VsdHNWaWV3ZXIgPSB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCdhbmFseXNp
cy1yZXN1bHRzLXZpZXdlcicpLmNvbXBvbmVudCgpOwogICAgICAgICB0aGlzLl9hbmFseXNpc1Jl
c3VsdHNWaWV3ZXIuc2V0VGVzdEdyb3VwQ2FsbGJhY2sodGhpcy5fc2hvd1Rlc3RHcm91cC5iaW5k
KHRoaXMpKTsKICAgICAgICAgdGhpcy5fdGVzdEdyb3VwUmVzdWx0c1RhYmxlID0gdGhpcy5jb250
ZW50KCkucXVlcnlTZWxlY3RvcigndGVzdC1ncm91cC1yZXN1bHRzLXRhYmxlJykuY29tcG9uZW50
KCk7CisKKyAgICAgICAgdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLnRlc3QtZ3JvdXAt
cmV0cnktZm9ybScpLm9uc3VibWl0ID0gdGhpcy5fcmV0cnlDdXJyZW50VGVzdEdyb3VwLmJpbmQo
dGhpcyk7CiAgICAgfQogCiAgICAgdGl0bGUoKSB7IHJldHVybiB0aGlzLl90YXNrID8gdGhpcy5f
dGFzay5sYWJlbCgpIDogJ0FuYWx5c2lzIFRhc2snOyB9CkBAIC04NSw3ICs4Nyw3IEBAIGNsYXNz
IEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEgKICAgICAgICAgdmFyIHNlcmllcyA9
IHRoaXMuX21lYXN1cmVtZW50U2V0LmZldGNoZWRUaW1lU2VyaWVzKCdjdXJyZW50JywgZmFsc2Us
IGZhbHNlKTsKICAgICAgICAgdmFyIHN0YXJ0UG9pbnQgPSBzZXJpZXMuZmluZEJ5SWQodGhpcy5f
dGFzay5zdGFydE1lYXN1cmVtZW50SWQoKSk7CiAgICAgICAgIHZhciBlbmRQb2ludCA9IHNlcmll
cy5maW5kQnlJZCh0aGlzLl90YXNrLmVuZE1lYXN1cmVtZW50SWQoKSk7Ci0gICAgICAgIGlmICgh
c3RhcnRQb2ludCB8fCAhZW5kUG9pbnQpCisgICAgICAgIGlmICghc3RhcnRQb2ludCB8fCAhZW5k
UG9pbnQgfHwgIXRoaXMuX21lYXN1cmVtZW50U2V0Lmhhc0ZldGNoZWRSYW5nZShzdGFydFBvaW50
LnRpbWUsIGVuZFBvaW50LnRpbWUpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRo
aXMuX2FuYWx5c2lzUmVzdWx0c1ZpZXdlci5zZXRQb2ludHMoc3RhcnRQb2ludCwgZW5kUG9pbnQp
OwpAQCAtMTM5LDcgKzE0MSw3IEBAIGNsYXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdl
V2l0aEgKIAogICAgICAgICB2YXIgdjJVUkwgPSBgL3YyLyMvYW5hbHlzaXMvdGFzay8ke3RoaXMu
X3Rhc2tJZH1gOwogICAgICAgICB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcuZXJyb3It
bWVzc2FnZScpLmlubmVySFRNTCArPQotICAgICAgICAgICAgYDxwPlRoaXMgcGFnZSBpcyByZWFk
IG9ubHkgZm9yIG5vdy4gVG8gc2NoZWR1bGUgYSBuZXcgQS9CIHRlc3Rpbmcgam9iLCB1c2UgPGEg
aHJlZj0iJHt2MlVSTH0iPnYyIHBhZ2U8L2E+LjwvcD5gOworICAgICAgICAgICAgYDxwPlRvIHNj
aGVkdWxlIGEgY3VzdG9tIEEvQiB0ZXN0aW5nLCB1c2UgPGEgaHJlZj0iJHt2MlVSTH0iPnYyIFVJ
PC9hPi48L3A+YDsKIAogICAgICAgICAgdGhpcy5fY2hhcnRQYW5lLnJlbmRlcigpOwogCkBAIC0x
NjgsNyArMTcwLDggQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSAog
ICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVkQ3VycmVudFRl
c3RHcm91cCA9IG51bGw7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHRoaXMuX3JlbmRlcmVkQ3Vy
cmVudFRlc3RHcm91cCAhPSB0aGlzLl9jdXJyZW50VGVzdEdyb3VwKSB7CisKKyAgICAgICAgaWYg
KHRoaXMuX3JlbmRlcmVkQ3VycmVudFRlc3RHcm91cCAhPT0gdGhpcy5fY3VycmVudFRlc3RHcm91
cCkgewogICAgICAgICAgICAgaWYgKHRoaXMuX3JlbmRlcmVkQ3VycmVudFRlc3RHcm91cCkgewog
ICAgICAgICAgICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3Rv
cignLnRlc3QtZ3JvdXAtbGlzdC0nICsgdGhpcy5fcmVuZGVyZWRDdXJyZW50VGVzdEdyb3VwLmlk
KCkpOwogICAgICAgICAgICAgICAgIGlmIChlbGVtZW50KQpAQCAtMTc5LDkgKzE4MiwxOCBAQCBj
bGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhICiAgICAgICAgICAgICAgICAg
aWYgKGVsZW1lbnQpCiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgn
c2VsZWN0ZWQnKTsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhpcy5jb250ZW50KCku
cXVlcnlTZWxlY3RvcignLnRlc3QtZ3JvdXAtcmV0cnktYnV0dG9uJykudGV4dENvbnRlbnQgPSB0
aGlzLl9jdXJyZW50VGVzdEdyb3VwID8gJ1JldHJ5JyA6ICdDb25maXJtIHRoZSBjaGFuZ2UnOwor
CisgICAgICAgICAgICB2YXIgcmVwZXRpdGlvbkNvdW50ID0gdGhpcy5fY3VycmVudFRlc3RHcm91
cCA/IHRoaXMuX2N1cnJlbnRUZXN0R3JvdXAucmVwZXRpdGlvbkNvdW50KCkgOiA0OworICAgICAg
ICAgICAgdmFyIHJlcGV0aXRpb25Db3VudENvbnRyb2xsZXIgPSB0aGlzLmNvbnRlbnQoKS5xdWVy
eVNlbGVjdG9yKCcudGVzdC1ncm91cC1yZXRyeS1yZXBldGl0aW9uLWNvdW50Jyk7CisgICAgICAg
ICAgICByZXBldGl0aW9uQ291bnRDb250cm9sbGVyLnZhbHVlID0gcmVwZXRpdGlvbkNvdW50Owor
CiAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlZEN1cnJlbnRUZXN0R3JvdXAgPSB0aGlzLl9jdXJy
ZW50VGVzdEdyb3VwOwogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5jb250ZW50KCkucXVlcnlT
ZWxlY3RvcignLnRlc3QtZ3JvdXAtcmV0cnktYnV0dG9uJykuZGlzYWJsZWQgPSAhKHRoaXMuX2N1
cnJlbnRUZXN0R3JvdXAgfHwgdGhpcy5fc3RhcnRQb2ludCk7CisKICAgICAgICAgdGhpcy5fdGVz
dEdyb3VwUmVzdWx0c1RhYmxlLnJlbmRlcigpOwogCiAgICAgICAgIEluc3RydW1lbnRhdGlvbi5l
bmRNZWFzdXJpbmdUaW1lKCdBbmFseXNpc1Rhc2tQYWdlJywgJ3JlbmRlcicpOwpAQCAtMTk0LDYg
KzIwNiw4NiBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhICiAgICAg
ICAgIHRoaXMucmVuZGVyKCk7CiAgICAgfQogCisgICAgX3JldHJ5Q3VycmVudFRlc3RHcm91cChl
dmVudCkKKyAgICB7CisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHRoaXMuX2N1cnJlbnRUZXN0R3JvdXAgfHwgdGhpcy5fc3RhcnRQb2ludCk7
CisKKyAgICAgICAgdmFyIHRlc3RHcm91cE5hbWU7CisgICAgICAgIHZhciByb290U2V0TGlzdDsK
KyAgICAgICAgdmFyIHJvb3RTZXRMYWJlbHM7CisKKyAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRU
ZXN0R3JvdXApIHsKKyAgICAgICAgICAgIHZhciB0ZXN0R3JvdXAgPSB0aGlzLl9jdXJyZW50VGVz
dEdyb3VwOworICAgICAgICAgICAgdGVzdEdyb3VwTmFtZSA9IHRoaXMuX2NyZWF0ZVJldHJ5TmFt
ZUZvclRlc3RHcm91cCh0ZXN0R3JvdXAubmFtZSgpKTsKKyAgICAgICAgICAgIHJvb3RTZXRMaXN0
ID0gdGVzdEdyb3VwLnJlcXVlc3RlZFJvb3RTZXRzKCk7CisgICAgICAgICAgICByb290U2V0TGFi
ZWxzID0gcm9vdFNldExpc3QubWFwKGZ1bmN0aW9uIChyb290U2V0KSB7IHJldHVybiB0ZXN0R3Jv
dXAubGFiZWxGb3JSb290U2V0KHJvb3RTZXQpOyB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHRlc3RHcm91cE5hbWUgPSAnQ29uZmlybWluZyB0aGUgY2hhbmdlJzsKKyAgICAgICAg
ICAgIHJvb3RTZXRMaXN0ID0gW3RoaXMuX3N0YXJ0UG9pbnQucm9vdFNldCgpLCB0aGlzLl9lbmRQ
b2ludC5yb290U2V0KCldOworICAgICAgICAgICAgcm9vdFNldExhYmVscyA9IFsnUG9pbnQgMCcs
IGBQb2ludCAke3RoaXMuX2VuZFBvaW50LnNlcmllc0luZGV4IC0gdGhpcy5fc3RhcnRQb2ludC5z
ZXJpZXNJbmRleH1gXTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciByb290U2V0c0J5TmFtZSA9
IHt9OworICAgICAgICBmb3IgKHZhciByZXBvc2l0b3J5IG9mIHJvb3RTZXRMaXN0WzBdLnJlcG9z
aXRvcmllcygpKQorICAgICAgICAgICAgcm9vdFNldHNCeU5hbWVbcmVwb3NpdG9yeS5uYW1lKCld
ID0gW107CisKKyAgICAgICAgdmFyIHNldEluZGV4ID0gMDsKKyAgICAgICAgZm9yICh2YXIgcm9v
dFNldCBvZiByb290U2V0TGlzdCkgeworICAgICAgICAgICAgZm9yICh2YXIgcmVwb3NpdG9yeSBv
ZiByb290U2V0LnJlcG9zaXRvcmllcygpKSB7CisgICAgICAgICAgICAgICAgdmFyIGxpc3QgPSBy
b290U2V0c0J5TmFtZVtyZXBvc2l0b3J5Lm5hbWUoKV07CisgICAgICAgICAgICAgICAgaWYgKCFs
aXN0KSB7CisgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGBTZXQgJHtyb290U2V0TGFiZWxzW3Nl
dEluZGV4XX0gc3BlY2lmaWVzICR7cmVwb3NpdG9yeS5sYWJlbCgpfSBidXQgc2V0ICR7cm9vdFNl
dExhYmVsc1swXX0gZG9lcyBub3QuYCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxs
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsaXN0LnB1c2gocm9vdFNldC5j
b21taXRGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnkpLnJldmlzaW9uKCkpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgc2V0SW5kZXgrKzsKKyAgICAgICAgICAgIGZvciAodmFyIG5hbWUgaW4g
cm9vdFNldHNCeU5hbWUpIHsKKyAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IHJvb3RTZXRzQnlO
YW1lW25hbWVdOworICAgICAgICAgICAgICAgIGlmIChsaXN0Lmxlbmd0aCA8IHNldEluZGV4KSB7
CisgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGBTZXQgJHtyb290U2V0TGFiZWxzWzBdfSBzcGVj
aWZpZXMgJHtyZXBvc2l0b3J5LmxhYmVsKCl9IGJ1dCBzZXQgJHtyb290U2V0TGFiZWxzW3NldElu
ZGV4XX0gZG9lcyBub3QuYCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZhciBy
ZXBldGl0aW9uQ291bnQgPSB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcudGVzdC1ncm91
cC1yZXRyeS1yZXBldGl0aW9uLWNvdW50JykudmFsdWU7CisKKyAgICAgICAgVGVzdEdyb3VwLmNy
ZWF0ZUFuZFJlZmV0Y2hUZXN0R3JvdXBzKHRoaXMuX3Rhc2ssIHRlc3RHcm91cE5hbWUsIHJlcGV0
aXRpb25Db3VudCwgcm9vdFNldHNCeU5hbWUpCisgICAgICAgICAgICAudGhlbih0aGlzLl9kaWRG
ZXRjaFRlc3RHcm91cHMuYmluZCh0aGlzKSwgZnVuY3Rpb24gKGVycm9yKSB7CisgICAgICAgICAg
ICBhbGVydCgnRmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyB0ZXN0IGdyb3VwOiAnICsgZXJyb3IpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBfY3JlYXRlUmV0cnlOYW1lRm9yVGVzdEdyb3VwKG5h
bWUpCisgICAgeworICAgICAgICB2YXIgbmFtZVdpdGhOdW1iZXJNYXRjaCA9IG5hbWUubWF0Y2go
LyguKz8pXHMqXChccyooXGQrKVxzKlwpXHMqJC8pOworICAgICAgICB2YXIgbnVtYmVyID0gMTsK
KyAgICAgICAgaWYgKG5hbWVXaXRoTnVtYmVyTWF0Y2gpIHsKKyAgICAgICAgICAgIG5hbWUgPSBu
YW1lV2l0aE51bWJlck1hdGNoWzFdOworICAgICAgICAgICAgbnVtYmVyID0gcGFyc2VJbnQobmFt
ZVdpdGhOdW1iZXJNYXRjaFsyXSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbmV3TmFtZTsK
KyAgICAgICAgZG8geworICAgICAgICAgICAgbnVtYmVyKys7CisgICAgICAgICAgICBuZXdOYW1l
ID0gYCR7bmFtZX0gKCR7bnVtYmVyfSlgOworICAgICAgICB9IHdoaWxlICh0aGlzLl9oYXNEdXBs
aWNhdGVUZXN0R3JvdXBOYW1lKG5ld05hbWUpKTsKKworICAgICAgICByZXR1cm4gbmV3TmFtZTsK
KyAgICB9CisKKyAgICBfaGFzRHVwbGljYXRlVGVzdEdyb3VwTmFtZShuYW1lKQorICAgIHsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fdGVzdEdyb3Vwcyk7CisgICAgICAgIGZvciAodmFy
IGdyb3VwIG9mIHRoaXMuX3Rlc3RHcm91cHMpIHsKKyAgICAgICAgICAgIGlmIChncm91cC5uYW1l
KCkgPT0gbmFtZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgc3RhdGljIGh0bWxUZW1wbGF0ZSgpCiAg
ICAgewogICAgICAgICByZXR1cm4gYApAQCAtMjA4LDcgKzMwMCwyNiBAQCBjbGFzcyBBbmFseXNp
c1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhICiAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgog
ICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJ0ZXN0LWdyb3VwLXZpZXciPgogICAgICAg
ICAgICAgICAgICAgICA8dWwgY2xhc3M9InRlc3QtZ3JvdXAtbGlzdCI+PC91bD4KLSAgICAgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVzdC1ncm91cC1kZXRhaWxzIj48dGVzdC1ncm91cC1y
ZXN1bHRzLXRhYmxlPjwvdGVzdC1ncm91cC1yZXN1bHRzLXRhYmxlPjwvZGl2PgorICAgICAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXN0LWdyb3VwLWRldGFpbHMiPgorICAgICAgICAgICAg
ICAgICAgICAgICAgPHRlc3QtZ3JvdXAtcmVzdWx0cy10YWJsZT48L3Rlc3QtZ3JvdXAtcmVzdWx0
cy10YWJsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzPSJ0ZXN0LWdyb3Vw
LXJldHJ5LWZvcm0iPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9
InRlc3QtZ3JvdXAtcmV0cnktYnV0dG9uIiB0eXBlPSJzdWJtaXQiPlJldHJ5PC9idXR0b24+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxzZWxlY3QgY2xhc3M9InRlc3QtZ3JvdXAtcmV0cnktcmVwZXRpdGlvbi1jb3VudCI+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+MTwvb3B0aW9uPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPjI8L29wdGlvbj4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj4zPC9vcHRpb24+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxvcHRpb24+NDwvb3B0aW9uPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8b3B0aW9uPjU8L29wdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPG9wdGlvbj42PC9vcHRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxvcHRpb24+Nzwvb3B0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0
aW9uPjg8L29wdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj45
PC9vcHRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+MTA8L29w
dGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpdGVyYXRpb25zIHBlciBzZXQKKyAgICAgICAgICAgICAgICAgICAg
ICAgIDwvZm9ybT4KKyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAg
PC9zZWN0aW9uPgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgpAQCAtMjY4LDE4
ICszNzksMjMgQEAgY2xhc3MgQW5hbHlzaXNUYXNrUGFnZSBleHRlbmRzIFBhZ2VXaXRoSAogICAg
ICAgICAgICAgLnRlc3QtZ3JvdXAtdmlldyB7CiAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFi
bGU7CiAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07CisgICAgICAgICAgICAgICAgbWFy
Z2luLWJvdHRvbTogMnJlbTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLnRlc3QtZ3Jv
dXAtZGV0YWlscyB7CiAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsKICAgICAg
ICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOworICAgICAgICAgICAgICAgIHBhZGRpbmc6
IDA7CisgICAgICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICAudGVzdC1ncm91cC1saXN0IHsKLSAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1j
ZWxsOworICAgICAgICAgICAgLnRlc3QtZ3JvdXAtcmV0cnktZm9ybSB7CisgICAgICAgICAgICAg
ICAgcGFkZGluZzogMDsKKyAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTsKICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgLnRlc3QtZ3JvdXAtbGlzdDpub3QoOmVtcHR5KSB7CisgICAg
ICAgICAgICAudGVzdC1ncm91cC1saXN0IHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJs
ZS1jZWxsOwogICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgICAgICBwYWRk
aW5nOiAwLjJyZW0gMDsKICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lOwpAQCAtMjg3
LDYgKzQwMywxMiBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhICiAg
ICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgICAgIH0KIAorICAg
ICAgICAgICAgLnRlc3QtZ3JvdXAtbGlzdDplbXB0eSB7CisgICAgICAgICAgICAgICAgbWFyZ2lu
OiAwOworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7CisgICAgICAgICAgICAgICAgYm9yZGVy
LXJpZ2h0OiBub25lOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAudGVzdC1ncm91cC1s
aXN0IGxpIHsKICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgIH0K
</data>
<flag name="review"
          id="295881"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>