<?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>158679</bug_id>
          
          <creation_ts>2016-06-12 18:08:39 -0700</creation_ts>
          <short_desc>Invalid token error when trying to create an A/B analysis for a range</short_desc>
          <delta_ts>2016-06-13 12:46:06 -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>InRadar</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>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1201742</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-06-12 18:08:39 -0700</bug_when>
    <thetext>Make PrivilegedAPI robust against its token becoming invalid.

&lt;rdar://problem/26246420&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201745</commentid>
    <comment_count>1</comment_count>
      <attachid>281137</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-06-12 18:22:40 -0700</bug_when>
    <thetext>Created attachment 281137
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201747</commentid>
    <comment_count>2</comment_count>
      <attachid>281139</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-06-12 18:24:28 -0700</bug_when>
    <thetext>Created attachment 281139
Added unit tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201852</commentid>
    <comment_count>3</comment_count>
      <attachid>281139</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-13 09:20:01 -0700</bug_when>
    <thetext>Comment on attachment 281139
Added unit tests

Rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201915</commentid>
    <comment_count>4</comment_count>
      <attachid>281139</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-13 12:46:02 -0700</bug_when>
    <thetext>Comment on attachment 281139
Added unit tests

Clearing flags on attachment: 281139

Committed r202001: &lt;http://trac.webkit.org/changeset/202001&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201916</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-13 12:46:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281137</attachid>
            <date>2016-06-12 18:22:40 -0700</date>
            <delta_ts>2016-06-12 18:24:23 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-158679-20160612182413.patch</filename>
            <type>text/plain</type>
            <size>19964</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxOTg1KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQyIEBACisyMDE2LTA2LTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEludmFsaWQgdG9rZW4gZXJyb3Igd2hlbiB0cnlpbmcgdG8gY3JlYXRlIGFuIEEv
QiBhbmFseXNpcyBmb3IgYSByYW5nZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4Njc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIHByb2JsZW0gaW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2Ugd2FzIGR1
ZSB0byBhbm90aGVyIHdlYnNpdGUgb3ZlcnJpZGluZyBjb29raWVzIGZvciBvdXIgc3ViZG9tYWlu
LgorICAgICAgICBNYWtlIFByaXZpbGVnZWRBUEkgcm9idXN0IGFnYWluc3QgaXRzIHRva2VuIGJl
Y29taW5nIGludmFsaWQgaW4gZ2VuZXJhbCB0byBmaXggdGhlIGJ1ZyBzaW5jZSB0aGUgY29va2ll
CisgICAgICAgIGlzIG9ubHkgYXZhaWxhYmxlIHVuZGVyIC9wcml2aWxlZ2VkLWFwaS8gYW5kIHRo
ZSB2MyBVSSBjYW4ndCBhY2Nlc3MgaXQgZm9yIHNlY3VyaXR5IHJlYXNvbnMuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBmYWN0b3JzIG91dCBQcml2aWxlZ2VkQVBJIG91dCBvZiByZW1vdGUuanMgc28g
dGhhdCBpdCBjYW4gYmUgdGVzdGVkIHNlcGFyYXRlbHkgaW4gc2VydmVyIHRlc3RzCisgICAgICAg
IGFzIHdlbGwgYXMgdW5pdCB0ZXN0cyBldmVuIHRob3VnaCBSZW1vdGVBUEkgaXRzZWxmIGlzIGlt
cGxlbWVudGVkIGRpZmZlcmVudGx5IGluIGVhY2ggY2FzZS4KKworICAgICAgICAqIGluaXQtZGF0
YWJhc2Uuc3FsOiBBZGRlZCBhIGZvcmdvdHRlbiBkZWZhdWx0IHZhbHVlICJmYWxzZSIgdG8gcnVu
X21hcmtlZF9vdXRsaWVyLgorICAgICAgICAqIHB1YmxpYy92My9pbmRleC5odG1sOgorICAgICAg
ICAqIHB1YmxpYy92My9wcml2aWxlZ2VkLWFwaS5qczogQWRkZWQuIEV4dHJhY3RlZCBvdXQgb2Yg
cHVibGljL3YzL3JlbW90ZS5qcy4KKyAgICAgICAgKFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qp
OiBGaXhlZCB0aGUgYnVnLiBXaGVuIHRoZSBpbml0aWFsIHJlcXVlc3QgZmFpbHMgd2l0aCAiSW52
YWxpZFRva2VuIiBlcnJvciwKKyAgICAgICAgcmUtZ2VuZXJhdGUgdGhlIHRva2VuIGFuZCByZS1p
c3N1ZSB0aGUgcmVxdWVzdC4KKyAgICAgICAgKFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tl
bik6CisgICAgICAgICogcHVibGljL3YzL3JlbW90ZS5qczoKKyAgICAgICAgKFJlbW90ZUFQSS5w
b3N0SlNPTik6IEFkZGVkIHRvIG1hdGNoIHRvb2xzL2pzL3JlbW90ZS5qcy4KKyAgICAgICAgKFJl
bW90ZUFQSS5wb3N0SlNPTldpdGhTdGF0dXMpOiBEaXR0by4KKyAgICAgICAgKFByaXZpbGVnZWRB
UEkpOiBNb3ZlZCB0byBwcml2aWxlZ2VkLWFwaS5qcy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
YXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qczogUmVtb3ZlZCB0aGUgdW51c2VkIHJlcXVpcmUg
Zm9yIGNyeXB0by4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUt
cnVuLXN0YXR1cy5qczogQWRkZWQgdGVzdHMgZm9yIC9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVu
LXN0YXR1cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpz
OgorICAgICAgICAoVGVzdFNlcnZlci5wcm90b3R5cGUuaW5qZWN0KTogQ2xlYXIgdGhlIGNvb2tp
ZXMgYXMgd2VsbCBhcyB0b2tlbnMgaW4gUHJpdmlsZWdlZEFQSS4KKyAgICAgICAgKiB0b29scy9q
cy9yZW1vdGUuanM6CisgICAgICAgIChSZW1vdGVBUEkpOiBBZGRlZCB0aGUgc3VwcG9ydCBmb3Ig
UHJpdmlsZWdlZEFQSSBieSBtYWtpbmcgY29va2llIHNldCBieSB0aGUgc2VydmVyIHBlcnNpc3Qu
CisgICAgICAgIChSZW1vdGVBUEkucHJvdG90eXBlLmNsZWFyQ29va2llcyk6IEFkZGVkIGZvciB0
ZXN0cy4KKyAgICAgICAgKFJlbW90ZUFQSS5wcm90b3R5cGUucG9zdEpTT04pOiBNYWtlIHN1cmUg
c2VuZEh0dHBSZXF1ZXN0IGFsd2F5cyBzZW5kcyBhIHZhbGlkIEpTT04uCisgICAgICAgIChSZW1v
dGVBUEkucHJvdG90eXBlLnBvc3RKU09OV2l0aFN0YXR1cyk6IEFkZGVkIHNpbmNlIHRoaXMgQVBJ
IGlzIHVzZWQgUHJpdmlsZWdlZEFQSS4KKyAgICAgICAgKFJlbW90ZUFQSS5wcm90b3R5cGUuc2Vu
ZEh0dHBSZXF1ZXN0KTogUmV0YWluIHRoZSBjb29raWUgc2V0IGJ5IHRoZSBzZXJ2ZXIgYW5kIHNl
bmQgaXQgYmFjayBpbiBlYWNoIHJlcXVlc3QuCisgICAgICAgICogdG9vbHMvanMvdjMtbW9kZWxz
LmpzOgorICAgICAgICAqIHVuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5qczoK
KyAgICAgICAgKE1vY2tSZW1vdGVBUEkucG9zdEpTT04pOiBBZGRlZCBmb3IgdW5pdCB0ZXN0aW5n
LgorICAgICAgICAoTW9ja1JlbW90ZUFQSS5wb3N0SlNPTldpdGhTdGF0dXMpOiBEaXR0by4KKwog
MjAxNi0wNi0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBz
eW5jLWJ1aWxkYm90LmpzIHNob3VsZCB1cGRhdGUgdGhlIGxpc3Qgb2YgdGVzdHMgYW5kIHBsYXRm
b3JtcyBhc3NvY2lhdGVkIHdpdGggYSB0cmlnZ2VyYWJsZQpJbmRleDogV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAkocmV2aXNpb24gMjAxOTg1KQorKysgV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDAsNyArMTQwLDcgQEAgQ1JFQVRFIFRBQkxFIHRlc3RfcnVucyAoCiAgICAgcnVuX21lYW5fY2Fj
aGUgZG91YmxlIHByZWNpc2lvbiwKICAgICBydW5fc3VtX2NhY2hlIGRvdWJsZSBwcmVjaXNpb24s
CiAgICAgcnVuX3NxdWFyZV9zdW1fY2FjaGUgZG91YmxlIHByZWNpc2lvbiwKLSAgICBydW5fbWFy
a2VkX291dGxpZXIgYm9vbGVhbiwKKyAgICBydW5fbWFya2VkX291dGxpZXIgYm9vbGVhbiBOT1Qg
TlVMTCBERUZBVUxUIEZBTFNFLAogICAgIENPTlNUUkFJTlQgdGVzdF9jb25maWdfYnVpbGRfbXVz
dF9iZV91bmlxdWUgVU5JUVVFKHJ1bl9jb25maWcsIHJ1bl9idWlsZCkpOwogQ1JFQVRFIElOREVY
IHJ1bl9jb25maWdfaW5kZXggT04gdGVzdF9ydW5zKHJ1bl9jb25maWcpOwogQ1JFQVRFIElOREVY
IHJ1bl9idWlsZF9pbmRleCBPTiB0ZXN0X3J1bnMocnVuX2J1aWxkKTsKSW5kZXg6IFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2luZGV4Lmh0bWwJKHJldmlzaW9uIDIwMTk4
NSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBSdW4gdG9vbHMvYnVuZGxlLXYzLXNjcmlwdHMg
dG8gc3BlZWQgdXAgCiAKICAgICAgICAgPHNjcmlwdCBzcmM9Imluc3RydW1lbnRhdGlvbi5qcyI+
PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSJyZW1vdGUuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz0icHJpdmlsZWdlZC1hcGkuanMiPjwvc2NyaXB0PgogCiAgICAgICAg
IDxzY3JpcHQgc3JjPSJtb2RlbHMvdGltZS1zZXJpZXMuanMiPjwvc2NyaXB0PgogICAgICAgICA8
c2NyaXB0IHNyYz0ibW9kZWxzL21lYXN1cmVtZW50LWFkYXB0b3IuanMiPjwvc2NyaXB0PgpJbmRl
eDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wcml2aWxlZ2VkLWFwaS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3ByaXZpbGVn
ZWQtYXBpLmpzCShyZXZpc2lvbiAwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9wcml2aWxlZ2VkLWFwaS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACisi
dXNlIHN0cmljdCI7CisKKy8vIEZJWE1FOiBVc2UgcmVhbCBjbGFzcyBzeW50YXggb25jZSB0aGUg
ZGVwZW5kZW5jeSBvbiBkYXRhLmpzIGhhcyBiZWVuIHJlbW92ZWQuCit2YXIgUHJpdmlsZWdlZEFQ
SSA9IGNsYXNzIHsKKworICAgIHN0YXRpYyBzZW5kUmVxdWVzdChwYXRoLCBkYXRhKQorICAgIHsK
KyAgICAgICAgdmFyIGNsb25lZERhdGEgPSB7fTsKKyAgICAgICAgZm9yICh2YXIga2V5IGluIGRh
dGEpCisgICAgICAgICAgICBjbG9uZWREYXRhW2tleV0gPSBkYXRhW2tleV07CisKKyAgICAgICAg
cmV0dXJuIHRoaXMucmVxdWVzdENTUkZUb2tlbigpLnRoZW4oZnVuY3Rpb24gKHRva2VuKSB7Cisg
ICAgICAgICAgICBjbG9uZWREYXRhWyd0b2tlbiddID0gdG9rZW47CisgICAgICAgICAgICByZXR1
cm4gUmVtb3RlQVBJLnBvc3RKU09OV2l0aFN0YXR1cygnL3ByaXZpbGVnZWQtYXBpLycgKyBwYXRo
LCBjbG9uZWREYXRhKS5jYXRjaChmdW5jdGlvbiAoc3RhdHVzKSB7CisgICAgICAgICAgICAgICAg
aWYgKHN0YXR1cyAhPSAnSW52YWxpZFRva2VuJykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UucmVqZWN0KHN0YXR1cyk7CisgICAgICAgICAgICAgICAgUHJpdmlsZWdlZEFQSS5f
dG9rZW4gPSBudWxsOworICAgICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVl
c3RDU1JGVG9rZW4oKS50aGVuKGZ1bmN0aW9uICh0b2tlbikgeworICAgICAgICAgICAgICAgICAg
ICBjbG9uZWREYXRhWyd0b2tlbiddID0gdG9rZW47CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBSZW1vdGVBUEkucG9zdEpTT05XaXRoU3RhdHVzKCcvcHJpdmlsZWdlZC1hcGkvJyArIHBhdGgs
IGNsb25lZERhdGEpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIHN0YXRpYyByZXF1ZXN0Q1NSRlRva2VuKCkKKyAgICB7Cisg
ICAgICAgIHZhciBtYXhOZXR3b3JrTGF0ZW5jeSA9IDMgKiA2MCAqIDEwMDA7IC8qIDMgbWludXRl
cyAqLworICAgICAgICBpZiAodGhpcy5fdG9rZW4gJiYgdGhpcy5fZXhwaXJhdGlvbiA+IERhdGUu
bm93KCkgKyBtYXhOZXR3b3JrTGF0ZW5jeSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJl
c29sdmUodGhpcy5fdG9rZW4pOworCisgICAgICAgIHJldHVybiBSZW1vdGVBUEkucG9zdEpTT05X
aXRoU3RhdHVzKCcvcHJpdmlsZWdlZC1hcGkvZ2VuZXJhdGUtY3NyZi10b2tlbicpLnRoZW4oZnVu
Y3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgUHJpdmlsZWdlZEFQSS5fdG9rZW4gPSByZXN1
bHRbJ3Rva2VuJ107CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLl9leHBpcmF0aW9uID0gbmV3
IERhdGUocmVzdWx0WydleHBpcmF0aW9uJ10pOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVn
ZWRBUEkuX3Rva2VuOworICAgICAgICB9KTsKKyAgICB9CisKK30KKworUHJpdmlsZWdlZEFQSS5f
dG9rZW4gPSBudWxsOworUHJpdmlsZWdlZEFQSS5fZXhwaXJhdGlvbiA9IG51bGw7CisKK2lmICh0
eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnKQorICAgIG1vZHVsZS5leHBvcnRzLlByaXZpbGVn
ZWRBUEkgPSBQcml2aWxlZ2VkQVBJOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9yZW1vdGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9yZW1vdGUuanMJKHJldmlzaW9uIDIwMTk4NSkKKysrIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvcmVtb3RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEs
MTggQEAKKyJ1c2Ugc3RyaWN0IjsKIAogdmFyIFJlbW90ZUFQSSA9IHt9OwogCitSZW1vdGVBUEku
cG9zdEpTT04gPSBmdW5jdGlvbiAocGF0aCwgZGF0YSkKK3sKKyAgICByZXR1cm4gdGhpcy5nZXRK
U09OKHBhdGgsIGRhdGEgfHwge30pOworfQorCitSZW1vdGVBUEkucG9zdEpTT05XaXRoU3RhdHVz
ID0gZnVuY3Rpb24gKHBhdGgsIGRhdGEpCit7CisgICAgY29uc29sZS5sb2coZG9jdW1lbnQuY29v
a2llKTsKKyAgICByZXR1cm4gdGhpcy5nZXRKU09OV2l0aFN0YXR1cyhwYXRoLCBkYXRhIHx8IHt9
KTsKK30KKwogUmVtb3RlQVBJLmdldEpTT04gPSBmdW5jdGlvbihwYXRoLCBkYXRhKQogewogICAg
IGNvbnNvbGUuYXNzZXJ0KCFwYXRoLnN0YXJ0c1dpdGgoJ2h0dHA6JykgJiYgIXBhdGguc3RhcnRz
V2l0aCgnaHR0cHM6JykgJiYgIXBhdGguc3RhcnRzV2l0aCgnZmlsZTonKSk7CkBAIC01MywzNSAr
NjUsMyBAQCBSZW1vdGVBUEkuZ2V0SlNPTldpdGhTdGF0dXMgPSBmdW5jdGlvbihwCiAgICAgICAg
IHJldHVybiBjb250ZW50OwogICAgIH0pOwogfQotCi0vLyBGSVhNRTogVXNlIHJlYWwgY2xhc3Mg
c3ludGF4IG9uY2UgdGhlIGRlcGVuZGVuY3kgb24gZGF0YS5qcyBoYXMgYmVlbiByZW1vdmVkLgot
UHJpdmlsZWdlZEFQSSA9IGNsYXNzIHsKLQotICAgIHN0YXRpYyBzZW5kUmVxdWVzdChwYXRoLCBk
YXRhKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdENTUkZUb2tlbigpLnRoZW4o
ZnVuY3Rpb24gKHRva2VuKSB7Ci0gICAgICAgICAgICB2YXIgY2xvbmVkRGF0YSA9IHt9OwotICAg
ICAgICAgICAgZm9yICh2YXIga2V5IGluIGRhdGEpCi0gICAgICAgICAgICAgICAgY2xvbmVkRGF0
YVtrZXldID0gZGF0YVtrZXldOwotICAgICAgICAgICAgY2xvbmVkRGF0YVsndG9rZW4nXSA9IHRv
a2VuOwotICAgICAgICAgICAgcmV0dXJuIFJlbW90ZUFQSS5nZXRKU09OV2l0aFN0YXR1cygnLi4v
cHJpdmlsZWdlZC1hcGkvJyArIHBhdGgsIGNsb25lZERhdGEpOwotICAgICAgICB9KTsKLSAgICB9
Ci0KLSAgICBzdGF0aWMgcmVxdWVzdENTUkZUb2tlbigpCi0gICAgewotICAgICAgICB2YXIgbWF4
TmV0d29ya0xhdGVuY3kgPSAzICogNjAgKiAxMDAwOyAvKiAzIG1pbnV0ZXMgKi8KLSAgICAgICAg
aWYgKHRoaXMuX3Rva2VuICYmIHRoaXMuX2V4cGlyYXRpb24gPiBEYXRlLm5vdygpICsgbWF4TmV0
d29ya0xhdGVuY3kpCi0gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX3Rv
a2VuKTsKLQotICAgICAgICByZXR1cm4gUmVtb3RlQVBJLmdldEpTT05XaXRoU3RhdHVzKCcuLi9w
cml2aWxlZ2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2VuJywge30pLnRoZW4oZnVuY3Rpb24gKHJl
c3VsdCkgewotICAgICAgICAgICAgUHJpdmlsZWdlZEFQSS5fdG9rZW4gPSByZXN1bHRbJ3Rva2Vu
J107Ci0gICAgICAgICAgICBQcml2aWxlZ2VkQVBJLl9leHBpcmF0aW9uID0gbmV3IERhdGUocmVz
dWx0WydleHBpcmF0aW9uJ10pOwotICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuX3Rv
a2VuOwotICAgICAgICB9KTsKLSAgICB9Ci0KLX0KLQotUHJpdmlsZWdlZEFQSS5fdG9rZW4gPSBu
dWxsOwotUHJpdmlsZWdlZEFQSS5fZXhwaXJhdGlvbiA9IG51bGw7CkluZGV4OiBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
bWVhc3VyZW1lbnQtc2V0LXRlc3RzLmpzCShyZXZpc2lvbiAyMDE5ODUpCisrKyBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw2IEBACiAndXNlIHN0cmljdCc7CiAKIGNvbnN0IGFz
c2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwotY29uc3QgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRv
Jyk7CiAKIGNvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZl
ci5qcycpOwogY29uc3QgYWRkQnVpbGRlckZvclJlcG9ydCA9IHJlcXVpcmUoJy4vcmVzb3VyY2Vz
L2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYWRkQnVpbGRlckZvclJlcG9ydDsKSW5kZXg6IFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVu
LXN0YXR1cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwYXRlLXJ1bi1zdGF0dXMuanMJKHJldmlzaW9uIDApCisr
KyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVw
YXRlLXJ1bi1zdGF0dXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzQgQEAKKyd1c2Ug
c3RyaWN0JzsKKworcmVxdWlyZSgnLi4vdG9vbHMvanMvdjMtbW9kZWxzLmpzJyk7CisKK2NvbnN0
IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOworCitjb25zdCBUZXN0U2VydmVyID0gcmVxdWly
ZSgnLi9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMnKTsKK2NvbnN0IGFkZEJ1aWxkZXJGb3JSZXBv
cnQgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmFkZEJ1aWxk
ZXJGb3JSZXBvcnQ7Citjb25zdCBjb25uZWN0VG9EYXRhYmFzZUluRXZlcnlUZXN0ID0gcmVxdWly
ZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5jb25uZWN0VG9EYXRhYmFzZUlu
RXZlcnlUZXN0OworCitkZXNjcmliZSgiL3ByaXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVz
IiwgZnVuY3Rpb24gKCkgeworICAgIHRoaXMudGltZW91dCgxMDAwKTsKKyAgICBUZXN0U2VydmVy
LmluamVjdCgpOworICAgIGNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3QoKTsKKworICAgIGNv
bnN0IHJlcG9ydFdpdGhSZXZpc2lvbiA9IFt7CisgICAgICAgICJidWlsZE51bWJlciI6ICIxMjQi
LAorICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTU6MzQ6NTEiLAorICAgICAgICAi
cmV2aXNpb25zIjogeworICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAi
cmV2aXNpb24iOiAiMTkxNjIyIiwKKyAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogKG5ldyBE
YXRlKDE0NDU5NDU4MTY4NzgpKS50b0lTT1N0cmluZygpLAorICAgICAgICAgICAgfSwKKyAgICAg
ICAgfSwKKyAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgImJ1
aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAicGxhdGZvcm0iOiAic29t
ZSBwbGF0Zm9ybSIsCisgICAgICAgICJ0ZXN0cyI6IHsKKyAgICAgICAgICAgICJTdWl0ZSI6IHsK
KyAgICAgICAgICAgICAgICAidGVzdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJ0ZXN0MSI6
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXRyaWNzIjogeyJUaW1lIjogeyAiY3VycmVu
dCI6IFsxMV0gfX0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0sCisgICAgICAgIH19XTsKKworICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0byBt
YXJrIGEgcnVuIGFzIGFuIG91dGxpZXIiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBjb25z
dCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgbGV0IGlkOworICAgICAgICBh
ZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSkudGhlbihmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3Rh
dHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5z
Jyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJ1blJvd3MpIHsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuUm93c1swXVsnbWVhbl9jYWNoZSddLCAxMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cnVuUm93c1swXVsnaXRlcmF0aW9uX2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAg
ICAgIGlkID0gcnVuUm93c1swXVsnaWQnXTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnJlcXVlc3RDU1JGVG9rZW4oKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXJ1bi1z
dGF0dXMnLCB7J3J1bic6IGlkLCAnbWFya2VkT3V0bGllcic6IHRydWUsICd0b2tlbic6IFByaXZp
bGVnZWRBUEkuX3Rva2VufSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CisgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKHJ1blJvd3MpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWVhbl9jYWNo
ZSddLCAxMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnaXRlcmF0aW9u
X2NvdW50X2NhY2hlJ10sIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1b
J21hcmtlZF9vdXRsaWVyJ10sIHRydWUpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9
KS5jYXRjaChkb25lKTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IHdoZW4gdGhl
IHRva2VuIGlzIG5vdCBzZXQgaW4gY29va2llIiwgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JS
ZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8n
LCByZXBvcnRXaXRoUmV2aXNpb24pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25z
ZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAocnVuUm93cykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1
blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydt
YXJrZWRfb3V0bGllciddLCBmYWxzZSk7CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQ
SS5yZXF1ZXN0Q1NSRlRva2VuKCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgUmVtb3RlQVBJLmNsZWFyQ29va2llcygpOworICAgICAgICAgICAgcmV0dXJuIFJl
bW90ZUFQSS5wb3N0SlNPTldpdGhTdGF0dXMoJy9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVuLXN0
YXR1cycsIHt0b2tlbjogUHJpdmlsZWdlZEFQSS5fdG9rZW59KTsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICBhc3NlcnQoZmFsc2UsICdQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0IHNob3VsZCByZWplY3QnKTsKKyAgICAgICAgfSwgZnVuY3Rpb24gKHJlc3BvbnNl
KSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxp
ZFRva2VuJyk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOwor
ICAgIH0pOworCisgICAgaXQoInNob3VsZCByZWplY3Qgd2hlbiB0aGUgdG9rZW4gaW4gdGhlIHJl
cXVlc3QgY29udGVudCBpcyBiYWQiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBjb25zdCBk
YiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChy
ZXBvcnRXaXRoUmV2aXNpb25bMF0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0
dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhSZXZpc2lvbik7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uIChydW5Sb3dzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9v
dXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVl
c3RDU1JGVG9rZW4oKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICByZXR1cm4gUmVtb3RlQVBJLnBvc3RKU09OV2l0aFN0YXR1cygnL3ByaXZpbGVnZWQtYXBpL3Vw
ZGF0ZS1ydW4tc3RhdHVzJywge3Rva2VuOiAnYmFkJ30pOworICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2VydChmYWxzZSwgJ1ByaXZpbGVnZWRBUEkuc2VuZFJl
cXVlc3Qgc2hvdWxkIHJlamVjdCcpOworICAgICAgICB9LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkVG9r
ZW4nKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAg
fSk7CisKKyAgICBpdCgic2hvdWxkIGJlIGFibGUgdG8gdW5tYXJrIGEgcnVuIGFzIGFuIG91dGxp
ZXIiLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKTsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25b
MF0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7Cisg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBkYi5z
ZWxlY3RBbGwoJ3Rlc3RfcnVucycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChydW5Sb3dz
KSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsK
KyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtcnVu
LXN0YXR1cycsIHsncnVuJzogcnVuUm93c1swXVsnaWQnXSwgJ21hcmtlZE91dGxpZXInOiB0cnVl
fSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIGRi
LnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJ1blJv
d3MpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7
CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndXBkYXRlLXJ1
bi1zdGF0dXMnLCB7J3J1bic6IHJ1blJvd3NbMF1bJ2lkJ10sICdtYXJrZWRPdXRsaWVyJzogZmFs
c2V9KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4g
ZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocnVu
Um93cykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtYXJrZWRfb3V0bGllciddLCBmYWxz
ZSk7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgIH0p
OworfSk7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy90ZXN0LXNlcnZlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcwkocmV2aXNpb24gMjAxOTg1
KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVz
dC1zZXJ2ZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTIzMyw2ICsyMzMsMTIgQEAgY2xhc3MgVGVz
dFNlcnZlciB7CiAgICAgICAgICAgICBzZWxmLmNsZWFuRGF0YURpcmVjdG9yeSgpOwogICAgICAg
ICAgICAgb3JpZ2luYWxSZW1vdGUgPSBnbG9iYWwuUmVtb3RlQVBJOwogICAgICAgICAgICAgZ2xv
YmFsLlJlbW90ZUFQSSA9IHNlbGYuX3JlbW90ZTsKKyAgICAgICAgICAgIHNlbGYuX3JlbW90ZS5j
bGVhckNvb2tpZXMoKTsKKworICAgICAgICAgICAgaWYgKGdsb2JhbC5Qcml2aWxlZ2VkQVBJKSB7
CisgICAgICAgICAgICAgICAgZ2xvYmFsLlByaXZpbGVnZWRBUEkuX3Rva2VuID0gbnVsbDsKKyAg
ICAgICAgICAgICAgICBnbG9iYWwuUHJpdmlsZWdlZEFQSS5fZXhwaXJhdGlvbiA9IG51bGw7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0pOwogCiAgICAgICAgIGFmdGVyKGZ1bmN0aW9uICgpIHsK
SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcwkocmV2
aXNpb24gMjAxOTg1KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90
ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtOSw2ICs5LDcgQEAgY2xhc3MgUmVtb3RlQVBJIHsKICAg
ICBjb25zdHJ1Y3RvcihzZXJ2ZXIpCiAgICAgewogICAgICAgICB0aGlzLl9zZXJ2ZXIgPSBudWxs
OworICAgICAgICB0aGlzLl9jb29raWVzID0gbmV3IE1hcDsKICAgICAgICAgaWYgKHNlcnZlcikK
ICAgICAgICAgICAgIHRoaXMuY29uZmlndXJlKHNlcnZlcik7CiAgICAgfQpAQCAtNTAsNiArNTEs
OCBAQCBjbGFzcyBSZW1vdGVBUEkgewogICAgICAgICB9OwogICAgIH0KIAorICAgIGNsZWFyQ29v
a2llcygpIHsgdGhpcy5fY29va2llcyA9IG5ldyBNYXA7IH0KKwogICAgIGdldEpTT04ocGF0aCkK
ICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLnNlbmRIdHRwUmVxdWVzdChwYXRoLCAnR0VUJywg
bnVsbCwgbnVsbCkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CkBAIC02OSw3ICs3Miw3IEBAIGNs
YXNzIFJlbW90ZUFQSSB7CiAgICAgcG9zdEpTT04ocGF0aCwgZGF0YSkKICAgICB7CiAgICAgICAg
IGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL2pzb24nOwotICAgICAgICBjb25zdCBw
YXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7CisgICAgICAgIGNvbnN0IHBheWxvYWQgPSBK
U09OLnN0cmluZ2lmeShkYXRhIHx8IHt9KTsKICAgICAgICAgcmV0dXJuIHRoaXMuc2VuZEh0dHBS
ZXF1ZXN0KHBhdGgsICdQT1NUJywgJ2FwcGxpY2F0aW9uL2pzb24nLCBwYXlsb2FkKS50aGVuKGZ1
bmN0aW9uIChyZXN1bHQpIHsKICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEpTT04ucGFyc2UocmVzdWx0LnJlc3BvbnNlVGV4dCk7CkBAIC04MCw2ICs4MywxNSBAQCBj
bGFzcyBSZW1vdGVBUEkgewogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBwb3N0SlNPTldpdGhT
dGF0dXMocGF0aCwgZGF0YSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnBvc3RKU09OKHBh
dGgsIGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHJlc3Vs
dFsnc3RhdHVzJ10gIT0gJ09LJykKKyAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWpl
Y3QocmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0pOworICAg
IH0KKwogICAgIHBvc3RGb3JtVXJsZW5jb2RlZERhdGEocGF0aCwgZGF0YSkKICAgICB7CiAgICAg
ICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl
ZCc7CkBAIC05Miw2ICsxMDQsNyBAQCBjbGFzcyBSZW1vdGVBUEkgewogICAgIHNlbmRIdHRwUmVx
dWVzdChwYXRoLCBtZXRob2QsIGNvbnRlbnRUeXBlLCBjb250ZW50KQogICAgIHsKICAgICAgICAg
bGV0IHNlcnZlciA9IHRoaXMuX3NlcnZlcjsKKyAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7CiAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CiAg
ICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHsKICAgICAgICAgICAgICAgICBob3N0bmFtZTogc2Vy
dmVyLmhvc3QsCkBAIC0xMDUsNyArMTE4LDE1IEBAIGNsYXNzIFJlbW90ZUFQSSB7CiAgICAgICAg
ICAgICAgICAgbGV0IHJlc3BvbnNlVGV4dCA9ICcnOwogICAgICAgICAgICAgICAgIHJlc3BvbnNl
LnNldEVuY29kaW5nKCd1dGY4Jyk7CiAgICAgICAgICAgICAgICAgcmVzcG9uc2Uub24oJ2RhdGEn
LCBmdW5jdGlvbiAoY2h1bmspIHsgcmVzcG9uc2VUZXh0ICs9IGNodW5rOyB9KTsKLSAgICAgICAg
ICAgICAgICByZXNwb25zZS5vbignZW5kJywgZnVuY3Rpb24gKCkgeyByZXNvbHZlKHtzdGF0dXND
b2RlOiByZXNwb25zZS5zdGF0dXNDb2RlLCByZXNwb25zZVRleHQ6IHJlc3BvbnNlVGV4dH0pOyB9
KTsKKyAgICAgICAgICAgICAgICByZXNwb25zZS5vbignZW5kJywgZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoJ3NldC1jb29raWUnIGluIHJlc3BvbnNlLmhlYWRlcnMpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29va2llIG9mIHJlc3BvbnNlLmhl
YWRlcnNbJ3NldC1jb29raWUnXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBu
YW1lVmFsdWUgPSBjb29raWUuc3BsaXQoJz0nKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX2Nvb2tpZXMuc2V0KG5hbWVWYWx1ZVswXSwgbmFtZVZhbHVlWzFdKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICByZXNvbHZlKHtzdGF0dXNDb2RlOiByZXNwb25zZS5zdGF0dXNDb2RlLCByZXNwb25zZVRl
eHQ6IHJlc3BvbnNlVGV4dH0pOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgICAgIHJlcXVlc3Qub24oJ2Vycm9yJywgcmVqZWN0KTsKQEAgLTExMyw2ICsx
MzQsMTIgQEAgY2xhc3MgUmVtb3RlQVBJIHsKICAgICAgICAgICAgIGlmIChjb250ZW50VHlwZSkK
ICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhlYWRlcignQ29udGVudC1UeXBlJywgY29udGVu
dFR5cGUpOwogCisgICAgICAgICAgICBpZiAoc2VsZi5fY29va2llcy5zaXplKSB7CisgICAgICAg
ICAgICAgICAgcmVxdWVzdC5zZXRIZWFkZXIoJ0Nvb2tpZScsIEFycmF5LmZyb20oc2VsZi5fY29v
a2llcy5rZXlzKCkpLm1hcChmdW5jdGlvbiAoa2V5KSB7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBgJHtrZXl9PSR7c2VsZi5fY29va2llcy5nZXQoa2V5KX1gOworICAgICAgICAgICAgICAg
IH0pLmpvaW4oJzsgJykpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBpZiAoY29udGVu
dCkKICAgICAgICAgICAgICAgICByZXF1ZXN0LndyaXRlKGNvbnRlbnQpOwogCkluZGV4OiBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMJKHJldmlzaW9u
IDIwMTk4NSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAgaW1wb3J0RnJvbVYzKCdtb2RlbHMv
cm9vdC1zZXQuanMnLCAnUm9vdAogaW1wb3J0RnJvbVYzKCdtb2RlbHMvdGVzdC5qcycsICdUZXN0
Jyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy90ZXN0LWdyb3VwLmpzJywgJ1Rlc3RHcm91cCcpOwog
CitpbXBvcnRGcm9tVjMoJ3ByaXZpbGVnZWQtYXBpLmpzJywgJ1ByaXZpbGVnZWRBUEknKTsKIGlt
cG9ydEZyb21WMygnaW5zdHJ1bWVudGF0aW9uLmpzJywgJ0luc3RydW1lbnRhdGlvbicpOwogCiBn
bG9iYWwuU3RhdGlzdGljcyA9IHJlcXVpcmUoJy4uLy4uL3B1YmxpYy9zaGFyZWQvc3RhdGlzdGlj
cy5qcycpOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3Vy
Y2VzL21vY2stcmVtb3RlLWFwaS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzCShyZXZpc2lvbiAy
MDE5ODUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMv
bW9jay1yZW1vdGUtYXBpLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw2ICsxNiwxNCBAQCB2YXIg
TW9ja1JlbW90ZUFQSSA9IHsKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9hZGRSZXF1ZXN0
KHVybCwgJ0dFVCcsIG51bGwpOwogICAgIH0sCisgICAgcG9zdEpTT046IGZ1bmN0aW9uICh1cmws
IGRhdGEpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYWRkUmVxdWVzdCh1cmwsICdQT1NU
JywgZGF0YSk7CisgICAgfSwKKyAgICBwb3N0SlNPTldpdGhTdGF0dXM6IGZ1bmN0aW9uICh1cmws
IGRhdGEpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYWRkUmVxdWVzdCh1cmwsICdQT1NU
JywgZGF0YSk7CisgICAgfSwKICAgICBwb3N0Rm9ybVVybGVuY29kZWREYXRhOiBmdW5jdGlvbiAo
dXJsLCBkYXRhKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2FkZFJlcXVlc3QodXJsLCAn
UE9TVCcsIGRhdGEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281139</attachid>
            <date>2016-06-12 18:24:28 -0700</date>
            <delta_ts>2016-06-13 12:46:02 -0700</delta_ts>
            <desc>Added unit tests</desc>
            <filename>bug-158679-20160612182601.patch</filename>
            <type>text/plain</type>
            <size>28121</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxOTg1KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE2LTA2LTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEludmFsaWQgdG9rZW4gZXJyb3Igd2hlbiB0cnlpbmcgdG8gY3JlYXRlIGFuIEEv
QiBhbmFseXNpcyBmb3IgYSByYW5nZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4Njc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIHByb2JsZW0gaW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2Ugd2FzIGR1
ZSB0byBhbm90aGVyIHdlYnNpdGUgb3ZlcnJpZGluZyBjb29raWVzIGZvciBvdXIgc3ViZG9tYWlu
LgorICAgICAgICBNYWtlIFByaXZpbGVnZWRBUEkgcm9idXN0IGFnYWluc3QgaXRzIHRva2VuIGJl
Y29taW5nIGludmFsaWQgaW4gZ2VuZXJhbCB0byBmaXggdGhlIGJ1ZyBzaW5jZSB0aGUgY29va2ll
CisgICAgICAgIGlzIG9ubHkgYXZhaWxhYmxlIHVuZGVyIC9wcml2aWxlZ2VkLWFwaS8gYW5kIHRo
ZSB2MyBVSSBjYW4ndCBhY2Nlc3MgaXQgZm9yIHNlY3VyaXR5IHJlYXNvbnMuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBmYWN0b3JzIG91dCBQcml2aWxlZ2VkQVBJIG91dCBvZiByZW1vdGUuanMgc28g
dGhhdCBpdCBjYW4gYmUgdGVzdGVkIHNlcGFyYXRlbHkgaW4gc2VydmVyIHRlc3RzCisgICAgICAg
IGFzIHdlbGwgYXMgdW5pdCB0ZXN0cyBldmVuIHRob3VnaCBSZW1vdGVBUEkgaXRzZWxmIGlzIGlt
cGxlbWVudGVkIGRpZmZlcmVudGx5IGluIGVhY2ggY2FzZS4KKworICAgICAgICAqIGluaXQtZGF0
YWJhc2Uuc3FsOiBBZGRlZCBhIGZvcmdvdHRlbiBkZWZhdWx0IHZhbHVlICJmYWxzZSIgdG8gcnVu
X21hcmtlZF9vdXRsaWVyLgorICAgICAgICAqIHB1YmxpYy92My9pbmRleC5odG1sOgorICAgICAg
ICAqIHB1YmxpYy92My9wcml2aWxlZ2VkLWFwaS5qczogQWRkZWQuIEV4dHJhY3RlZCBvdXQgb2Yg
cHVibGljL3YzL3JlbW90ZS5qcy4KKyAgICAgICAgKFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qp
OiBGaXhlZCB0aGUgYnVnLiBXaGVuIHRoZSBpbml0aWFsIHJlcXVlc3QgZmFpbHMgd2l0aCAiSW52
YWxpZFRva2VuIiBlcnJvciwKKyAgICAgICAgcmUtZ2VuZXJhdGUgdGhlIHRva2VuIGFuZCByZS1p
c3N1ZSB0aGUgcmVxdWVzdC4KKyAgICAgICAgKFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tl
bik6CisgICAgICAgICogcHVibGljL3YzL3JlbW90ZS5qczoKKyAgICAgICAgKFJlbW90ZUFQSS5w
b3N0SlNPTik6IEFkZGVkIHRvIG1hdGNoIHRvb2xzL2pzL3JlbW90ZS5qcy4KKyAgICAgICAgKFJl
bW90ZUFQSS5wb3N0SlNPTldpdGhTdGF0dXMpOiBEaXR0by4KKyAgICAgICAgKFByaXZpbGVnZWRB
UEkpOiBNb3ZlZCB0byBwcml2aWxlZ2VkLWFwaS5qcy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
YXBpLW1lYXN1cmVtZW50LXNldC10ZXN0cy5qczogUmVtb3ZlZCB0aGUgdW51c2VkIHJlcXVpcmUg
Zm9yIGNyeXB0by4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUt
cnVuLXN0YXR1cy5qczogQWRkZWQgdGVzdHMgZm9yIC9wcml2aWxlZ2VkLWFwaS91cGRhdGUtcnVu
LXN0YXR1cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpz
OgorICAgICAgICAoVGVzdFNlcnZlci5wcm90b3R5cGUuaW5qZWN0KTogQ2xlYXIgdGhlIGNvb2tp
ZXMgYXMgd2VsbCBhcyB0b2tlbnMgaW4gUHJpdmlsZWdlZEFQSS4KKyAgICAgICAgKiB0b29scy9q
cy9yZW1vdGUuanM6CisgICAgICAgIChSZW1vdGVBUEkpOiBBZGRlZCB0aGUgc3VwcG9ydCBmb3Ig
UHJpdmlsZWdlZEFQSSBieSBtYWtpbmcgY29va2llIHNldCBieSB0aGUgc2VydmVyIHBlcnNpc3Qu
CisgICAgICAgIChSZW1vdGVBUEkucHJvdG90eXBlLmNsZWFyQ29va2llcyk6IEFkZGVkIGZvciB0
ZXN0cy4KKyAgICAgICAgKFJlbW90ZUFQSS5wcm90b3R5cGUucG9zdEpTT04pOiBNYWtlIHN1cmUg
c2VuZEh0dHBSZXF1ZXN0IGFsd2F5cyBzZW5kcyBhIHZhbGlkIEpTT04uCisgICAgICAgIChSZW1v
dGVBUEkucHJvdG90eXBlLnBvc3RKU09OV2l0aFN0YXR1cyk6IEFkZGVkIHNpbmNlIHRoaXMgQVBJ
IGlzIHVzZWQgUHJpdmlsZWdlZEFQSS4KKyAgICAgICAgKFJlbW90ZUFQSS5wcm90b3R5cGUuc2Vu
ZEh0dHBSZXF1ZXN0KTogUmV0YWluIHRoZSBjb29raWUgc2V0IGJ5IHRoZSBzZXJ2ZXIgYW5kIHNl
bmQgaXQgYmFjayBpbiBlYWNoIHJlcXVlc3QuCisgICAgICAgICogdG9vbHMvanMvdjMtbW9kZWxz
LmpzOgorICAgICAgICAqIHVuaXQtdGVzdHMvcHJpdmlsZWdlZC1hcGktdGVzdHMuanM6IEFkZGVk
IHVuaXQgdGVzdHMgZm9yIFByaXZpbGVnZWRBUEkuCisgICAgICAgICogdW5pdC10ZXN0cy9yZXNv
dXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzOgorICAgICAgICAoTW9ja1JlbW90ZUFQSS5wb3N0SlNP
Tik6IEFkZGVkIGZvciB1bml0IHRlc3RpbmcuCisgICAgICAgIChNb2NrUmVtb3RlQVBJLnBvc3RK
U09OV2l0aFN0YXR1cyk6IERpdHRvLgorCiAyMDE2LTA2LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIHN5bmMtYnVpbGRib3QuanMgc2hvdWxkIHVwZGF0ZSB0
aGUgbGlzdCBvZiB0ZXN0cyBhbmQgcGxhdGZvcm1zIGFzc29jaWF0ZWQgd2l0aCBhIHRyaWdnZXJh
YmxlCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCShy
ZXZpc2lvbiAyMDE5ODUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFz
ZS5zcWwJKHdvcmtpbmcgY29weSkKQEAgLTE0MCw3ICsxNDAsNyBAQCBDUkVBVEUgVEFCTEUgdGVz
dF9ydW5zICgKICAgICBydW5fbWVhbl9jYWNoZSBkb3VibGUgcHJlY2lzaW9uLAogICAgIHJ1bl9z
dW1fY2FjaGUgZG91YmxlIHByZWNpc2lvbiwKICAgICBydW5fc3F1YXJlX3N1bV9jYWNoZSBkb3Vi
bGUgcHJlY2lzaW9uLAotICAgIHJ1bl9tYXJrZWRfb3V0bGllciBib29sZWFuLAorICAgIHJ1bl9t
YXJrZWRfb3V0bGllciBib29sZWFuIE5PVCBOVUxMIERFRkFVTFQgRkFMU0UsCiAgICAgQ09OU1RS
QUlOVCB0ZXN0X2NvbmZpZ19idWlsZF9tdXN0X2JlX3VuaXF1ZSBVTklRVUUocnVuX2NvbmZpZywg
cnVuX2J1aWxkKSk7CiBDUkVBVEUgSU5ERVggcnVuX2NvbmZpZ19pbmRleCBPTiB0ZXN0X3J1bnMo
cnVuX2NvbmZpZyk7CiBDUkVBVEUgSU5ERVggcnVuX2J1aWxkX2luZGV4IE9OIHRlc3RfcnVucyhy
dW5fYnVpbGQpOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRl
eC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
aW5kZXguaHRtbAkocmV2aXNpb24gMjAxOTg1KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9pbmRleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIFJ1
biB0b29scy9idW5kbGUtdjMtc2NyaXB0cyB0byBzcGVlZCB1cCAKIAogICAgICAgICA8c2NyaXB0
IHNyYz0iaW5zdHJ1bWVudGF0aW9uLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9
InJlbW90ZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJwcml2aWxlZ2VkLWFw
aS5qcyI+PC9zY3JpcHQ+CiAKICAgICAgICAgPHNjcmlwdCBzcmM9Im1vZGVscy90aW1lLXNlcmll
cy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSJtb2RlbHMvbWVhc3VyZW1lbnQt
YWRhcHRvci5qcyI+PC9zY3JpcHQ+CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL3ByaXZpbGVnZWQtYXBpLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvcHJpdmlsZWdlZC1hcGkuanMJKHJldmlzaW9uIDApCisrKyBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3ByaXZpbGVnZWQtYXBpLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKyJ1c2Ugc3RyaWN0IjsKKworLy8gRklYTUU6IFVzZSBy
ZWFsIGNsYXNzIHN5bnRheCBvbmNlIHRoZSBkZXBlbmRlbmN5IG9uIGRhdGEuanMgaGFzIGJlZW4g
cmVtb3ZlZC4KK3ZhciBQcml2aWxlZ2VkQVBJID0gY2xhc3MgeworCisgICAgc3RhdGljIHNlbmRS
ZXF1ZXN0KHBhdGgsIGRhdGEpCisgICAgeworICAgICAgICB2YXIgY2xvbmVkRGF0YSA9IHt9Owor
ICAgICAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSkKKyAgICAgICAgICAgIGNsb25lZERhdGFba2V5
XSA9IGRhdGFba2V5XTsKKworICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0Q1NSRlRva2VuKCku
dGhlbihmdW5jdGlvbiAodG9rZW4pIHsKKyAgICAgICAgICAgIGNsb25lZERhdGFbJ3Rva2VuJ10g
PSB0b2tlbjsKKyAgICAgICAgICAgIHJldHVybiBSZW1vdGVBUEkucG9zdEpTT05XaXRoU3RhdHVz
KCcvcHJpdmlsZWdlZC1hcGkvJyArIHBhdGgsIGNsb25lZERhdGEpLmNhdGNoKGZ1bmN0aW9uIChz
dGF0dXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9ICdJbnZhbGlkVG9rZW4nKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoc3RhdHVzKTsKKyAgICAg
ICAgICAgICAgICBQcml2aWxlZ2VkQVBJLl90b2tlbiA9IG51bGw7CisgICAgICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tlbigpLnRoZW4oZnVuY3Rpb24gKHRv
a2VuKSB7CisgICAgICAgICAgICAgICAgICAgIGNsb25lZERhdGFbJ3Rva2VuJ10gPSB0b2tlbjsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlbW90ZUFQSS5wb3N0SlNPTldpdGhTdGF0dXMo
Jy9wcml2aWxlZ2VkLWFwaS8nICsgcGF0aCwgY2xvbmVkRGF0YSk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIHJl
cXVlc3RDU1JGVG9rZW4oKQorICAgIHsKKyAgICAgICAgdmFyIG1heE5ldHdvcmtMYXRlbmN5ID0g
MyAqIDYwICogMTAwMDsgLyogMyBtaW51dGVzICovCisgICAgICAgIGlmICh0aGlzLl90b2tlbiAm
JiB0aGlzLl9leHBpcmF0aW9uID4gRGF0ZS5ub3coKSArIG1heE5ldHdvcmtMYXRlbmN5KQorICAg
ICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl90b2tlbik7CisKKyAgICAgICAg
cmV0dXJuIFJlbW90ZUFQSS5wb3N0SlNPTldpdGhTdGF0dXMoJy9wcml2aWxlZ2VkLWFwaS9nZW5l
cmF0ZS1jc3JmLXRva2VuJykudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICAgICBQ
cml2aWxlZ2VkQVBJLl90b2tlbiA9IHJlc3VsdFsndG9rZW4nXTsKKyAgICAgICAgICAgIFByaXZp
bGVnZWRBUEkuX2V4cGlyYXRpb24gPSBuZXcgRGF0ZShyZXN1bHRbJ2V4cGlyYXRpb24nXSk7Cisg
ICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5fdG9rZW47CisgICAgICAgIH0pOworICAg
IH0KKworfQorCitQcml2aWxlZ2VkQVBJLl90b2tlbiA9IG51bGw7CitQcml2aWxlZ2VkQVBJLl9l
eHBpcmF0aW9uID0gbnVsbDsKKworaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpCisg
ICAgbW9kdWxlLmV4cG9ydHMuUHJpdmlsZWdlZEFQSSA9IFByaXZpbGVnZWRBUEk7CkluZGV4OiBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3JlbW90ZS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3JlbW90ZS5qcwkocmV2aXNpb24g
MjAxOTg1KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9yZW1vdGUuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSwxOCBAQAorInVzZSBzdHJpY3QiOwogCiB2YXIgUmVt
b3RlQVBJID0ge307CiAKK1JlbW90ZUFQSS5wb3N0SlNPTiA9IGZ1bmN0aW9uIChwYXRoLCBkYXRh
KQoreworICAgIHJldHVybiB0aGlzLmdldEpTT04ocGF0aCwgZGF0YSB8fCB7fSk7Cit9CisKK1Jl
bW90ZUFQSS5wb3N0SlNPTldpdGhTdGF0dXMgPSBmdW5jdGlvbiAocGF0aCwgZGF0YSkKK3sKKyAg
ICBjb25zb2xlLmxvZyhkb2N1bWVudC5jb29raWUpOworICAgIHJldHVybiB0aGlzLmdldEpTT05X
aXRoU3RhdHVzKHBhdGgsIGRhdGEgfHwge30pOworfQorCiBSZW1vdGVBUEkuZ2V0SlNPTiA9IGZ1
bmN0aW9uKHBhdGgsIGRhdGEpCiB7CiAgICAgY29uc29sZS5hc3NlcnQoIXBhdGguc3RhcnRzV2l0
aCgnaHR0cDonKSAmJiAhcGF0aC5zdGFydHNXaXRoKCdodHRwczonKSAmJiAhcGF0aC5zdGFydHNX
aXRoKCdmaWxlOicpKTsKQEAgLTUzLDM1ICs2NSwzIEBAIFJlbW90ZUFQSS5nZXRKU09OV2l0aFN0
YXR1cyA9IGZ1bmN0aW9uKHAKICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7CiAgICAgfSk7CiB9Ci0K
LS8vIEZJWE1FOiBVc2UgcmVhbCBjbGFzcyBzeW50YXggb25jZSB0aGUgZGVwZW5kZW5jeSBvbiBk
YXRhLmpzIGhhcyBiZWVuIHJlbW92ZWQuCi1Qcml2aWxlZ2VkQVBJID0gY2xhc3MgewotCi0gICAg
c3RhdGljIHNlbmRSZXF1ZXN0KHBhdGgsIGRhdGEpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5yZXF1ZXN0Q1NSRlRva2VuKCkudGhlbihmdW5jdGlvbiAodG9rZW4pIHsKLSAgICAgICAgICAg
IHZhciBjbG9uZWREYXRhID0ge307Ci0gICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSkK
LSAgICAgICAgICAgICAgICBjbG9uZWREYXRhW2tleV0gPSBkYXRhW2tleV07Ci0gICAgICAgICAg
ICBjbG9uZWREYXRhWyd0b2tlbiddID0gdG9rZW47Ci0gICAgICAgICAgICByZXR1cm4gUmVtb3Rl
QVBJLmdldEpTT05XaXRoU3RhdHVzKCcuLi9wcml2aWxlZ2VkLWFwaS8nICsgcGF0aCwgY2xvbmVk
RGF0YSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIHN0YXRpYyByZXF1ZXN0Q1NSRlRva2Vu
KCkKLSAgICB7Ci0gICAgICAgIHZhciBtYXhOZXR3b3JrTGF0ZW5jeSA9IDMgKiA2MCAqIDEwMDA7
IC8qIDMgbWludXRlcyAqLwotICAgICAgICBpZiAodGhpcy5fdG9rZW4gJiYgdGhpcy5fZXhwaXJh
dGlvbiA+IERhdGUubm93KCkgKyBtYXhOZXR3b3JrTGF0ZW5jeSkKLSAgICAgICAgICAgIHJldHVy
biBQcm9taXNlLnJlc29sdmUodGhpcy5fdG9rZW4pOwotCi0gICAgICAgIHJldHVybiBSZW1vdGVB
UEkuZ2V0SlNPTldpdGhTdGF0dXMoJy4uL3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRlLWNzcmYtdG9r
ZW4nLCB7fSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBQcml2aWxlZ2Vk
QVBJLl90b2tlbiA9IHJlc3VsdFsndG9rZW4nXTsKLSAgICAgICAgICAgIFByaXZpbGVnZWRBUEku
X2V4cGlyYXRpb24gPSBuZXcgRGF0ZShyZXN1bHRbJ2V4cGlyYXRpb24nXSk7Ci0gICAgICAgICAg
ICByZXR1cm4gUHJpdmlsZWdlZEFQSS5fdG9rZW47Ci0gICAgICAgIH0pOwotICAgIH0KLQotfQot
Ci1Qcml2aWxlZ2VkQVBJLl90b2tlbiA9IG51bGw7Ci1Qcml2aWxlZ2VkQVBJLl9leHBpcmF0aW9u
ID0gbnVsbDsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMJKHJldmlz
aW9uIDIwMTk4NSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LW1lYXN1cmVtZW50LXNldC10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDYgQEAK
ICd1c2Ugc3RyaWN0JzsKIAogY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7Ci1jb25z
dCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTsKIAogY29uc3QgVGVzdFNlcnZlciA9IHJlcXVp
cmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25zdCBhZGRCdWlsZGVyRm9yUmVw
b3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRCdWls
ZGVyRm9yUmVwb3J0OwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9wcml2aWxlZ2VkLWFwaS11cGF0ZS1ydW4tc3RhdHVzLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVu
LXN0YXR1cy5qcwkocmV2aXNpb24gMCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBhdGUtcnVuLXN0YXR1cy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEzNCBAQAorJ3VzZSBzdHJpY3QnOworCityZXF1aXJlKCcuLi90b29scy9q
cy92My1tb2RlbHMuanMnKTsKKworY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CisK
K2NvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycp
OworY29uc3QgYWRkQnVpbGRlckZvclJlcG9ydCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1v
bi1vcGVyYXRpb25zLmpzJykuYWRkQnVpbGRlckZvclJlcG9ydDsKK2NvbnN0IGNvbm5lY3RUb0Rh
dGFiYXNlSW5FdmVyeVRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9u
cy5qcycpLmNvbm5lY3RUb0RhdGFiYXNlSW5FdmVyeVRlc3Q7CisKK2Rlc2NyaWJlKCIvcHJpdmls
ZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMiLCBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy50aW1l
b3V0KDEwMDApOworICAgIFRlc3RTZXJ2ZXIuaW5qZWN0KCk7CisgICAgY29ubmVjdFRvRGF0YWJh
c2VJbkV2ZXJ5VGVzdCgpOworCisgICAgY29uc3QgcmVwb3J0V2l0aFJldmlzaW9uID0gW3sKKyAg
ICAgICAgImJ1aWxkTnVtYmVyIjogIjEyNCIsCisgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0w
Mi0yOFQxNTozNDo1MSIsCisgICAgICAgICJyZXZpc2lvbnMiOiB7CisgICAgICAgICAgICAiV2Vi
S2l0IjogeworICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxOTE2MjIiLAorICAgICAgICAg
ICAgICAgICJ0aW1lc3RhbXAiOiAobmV3IERhdGUoMTQ0NTk0NTgxNjg3OCkpLnRvSVNPU3RyaW5n
KCksCisgICAgICAgICAgICB9LAorICAgICAgICB9LAorICAgICAgICAiYnVpbGRlck5hbWUiOiAi
c29tZUJ1aWxkZXIiLAorICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIs
CisgICAgICAgICJwbGF0Zm9ybSI6ICJzb21lIHBsYXRmb3JtIiwKKyAgICAgICAgInRlc3RzIjog
eworICAgICAgICAgICAgIlN1aXRlIjogeworICAgICAgICAgICAgICAgICJ0ZXN0cyI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgInRlc3QxIjogeworICAgICAgICAgICAgICAgICAgICAgICAgIm1l
dHJpY3MiOiB7IlRpbWUiOiB7ICJjdXJyZW50IjogWzExXSB9fQorICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfX1dOworCisg
ICAgaXQoInNob3VsZCBiZSBhYmxlIHRvIG1hcmsgYSBydW4gYXMgYW4gb3V0bGllciIsIGZ1bmN0
aW9uIChkb25lKSB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwor
ICAgICAgICBsZXQgaWQ7CisgICAgICAgIGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJl
dmlzaW9uWzBdKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNp
b24pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICByZXR1
cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
cnVuUm93cykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRfY2Fj
aGUnXSwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291
dGxpZXInXSwgZmFsc2UpOworICAgICAgICAgICAgaWQgPSBydW5Sb3dzWzBdWydpZCddOworICAg
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tlbigpOworICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCd1cGRhdGUtcnVuLXN0YXR1cycsIHsncnVuJzogaWQsICdtYXJrZWRPdXRs
aWVyJzogdHJ1ZSwgJ3Rva2VuJzogUHJpdmlsZWdlZEFQSS5fdG9rZW59KTsKKyAgICAgICAgfSku
dGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0
X3J1bnMnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocnVuUm93cykgeworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5Sb3dzWzBdWydtZWFuX2NhY2hlJ10sIDExKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChydW5Sb3dzWzBdWydpdGVyYXRpb25fY291bnRfY2FjaGUnXSwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgdHJ1ZSk7CisgICAg
ICAgICAgICBkb25lKCk7CisgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgIH0pOworCisgICAg
aXQoInNob3VsZCByZWplY3Qgd2hlbiB0aGUgdG9rZW4gaXMgbm90IHNldCBpbiBjb29raWUiLCBm
dW5jdGlvbiAoZG9uZSkgeworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KTsKKyAgICAgICAgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pLnRo
ZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgICAg
IH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RB
bGwoJ3Rlc3RfcnVucycpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChydW5Sb3dzKSB7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJ1blJvd3NbMF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAg
ICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJLnJlcXVlc3RDU1JGVG9rZW4oKTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBSZW1vdGVBUEkuY2xlYXJDb29raWVz
KCk7CisgICAgICAgICAgICByZXR1cm4gUmVtb3RlQVBJLnBvc3RKU09OV2l0aFN0YXR1cygnL3By
aXZpbGVnZWQtYXBpL3VwZGF0ZS1ydW4tc3RhdHVzJywge3Rva2VuOiBQcml2aWxlZ2VkQVBJLl90
b2tlbn0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGFzc2Vy
dChmYWxzZSwgJ1ByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qgc2hvdWxkIHJlamVjdCcpOworICAg
ICAgICB9LCBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkVG9rZW4nKTsKKyAgICAgICAgICAgIGRvbmUoKTsK
KyAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIHJlamVj
dCB3aGVuIHRoZSB0b2tlbiBpbiB0aGUgcmVxdWVzdCBjb250ZW50IGlzIGJhZCIsIGZ1bmN0aW9u
IChkb25lKSB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAg
ICAgICBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSkudGhlbihmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICAgICAgfSkudGhl
bihmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVz
dF9ydW5zJyk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJ1blJvd3MpIHsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChydW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocnVuUm93c1swXVsnbWFya2VkX291dGxpZXInXSwgZmFsc2UpOworICAgICAgICAgICAg
cmV0dXJuIFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZUb2tlbigpOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBSZW1vdGVBUEkucG9zdEpTT05XaXRo
U3RhdHVzKCcvcHJpdmlsZWdlZC1hcGkvdXBkYXRlLXJ1bi1zdGF0dXMnLCB7dG9rZW46ICdiYWQn
fSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYXNzZXJ0KGZh
bHNlLCAnUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCBzaG91bGQgcmVqZWN0Jyk7CisgICAgICAg
IH0sIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRUb2tlbicpOworICAgICAgICAgICAgZG9uZSgpOworICAg
ICAgICB9KS5jYXRjaChkb25lKTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgYmUgYWJsZSB0
byB1bm1hcmsgYSBydW4gYXMgYW4gb3V0bGllciIsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAg
IGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBhZGRCdWlsZGVyRm9y
UmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQv
JywgcmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9u
c2UpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgcmV0dXJuIGRiLnNlbGVjdEFsbCgndGVzdF9ydW5zJyk7CisgICAgICAg
IH0pLnRoZW4oZnVuY3Rpb24gKHJ1blJvd3MpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
dW5Sb3dzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocnVuUm93c1swXVsn
bWFya2VkX291dGxpZXInXSwgZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ3VwZGF0ZS1ydW4tc3RhdHVzJywgeydydW4nOiBydW5Sb3dzWzBdWydp
ZCddLCAnbWFya2VkT3V0bGllcic6IHRydWV9KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICByZXR1cm4gZGIuc2VsZWN0QWxsKCd0ZXN0X3J1bnMnKTsKKyAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAocnVuUm93cykgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJ1blJvd3MubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChydW5Sb3dzWzBd
WydtYXJrZWRfb3V0bGllciddLCB0cnVlKTsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCd1cGRhdGUtcnVuLXN0YXR1cycsIHsncnVuJzogcnVuUm93c1swXVsn
aWQnXSwgJ21hcmtlZE91dGxpZXInOiBmYWxzZX0pOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHJldHVybiBkYi5zZWxlY3RBbGwoJ3Rlc3RfcnVucycpOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uIChydW5Sb3dzKSB7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocnVuUm93cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJ1blJvd3Nb
MF1bJ21hcmtlZF9vdXRsaWVyJ10sIGZhbHNlKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAg
ICAgfSkuY2F0Y2goZG9uZSk7CisgICAgfSk7Cit9KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qt
c2VydmVyLmpzCShyZXZpc2lvbiAyMDE5ODUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcwkod29ya2luZyBjb3B5KQpAQCAt
MjMzLDYgKzIzMywxMiBAQCBjbGFzcyBUZXN0U2VydmVyIHsKICAgICAgICAgICAgIHNlbGYuY2xl
YW5EYXRhRGlyZWN0b3J5KCk7CiAgICAgICAgICAgICBvcmlnaW5hbFJlbW90ZSA9IGdsb2JhbC5S
ZW1vdGVBUEk7CiAgICAgICAgICAgICBnbG9iYWwuUmVtb3RlQVBJID0gc2VsZi5fcmVtb3RlOwor
ICAgICAgICAgICAgc2VsZi5fcmVtb3RlLmNsZWFyQ29va2llcygpOworCisgICAgICAgICAgICBp
ZiAoZ2xvYmFsLlByaXZpbGVnZWRBUEkpIHsKKyAgICAgICAgICAgICAgICBnbG9iYWwuUHJpdmls
ZWdlZEFQSS5fdG9rZW4gPSBudWxsOworICAgICAgICAgICAgICAgIGdsb2JhbC5Qcml2aWxlZ2Vk
QVBJLl9leHBpcmF0aW9uID0gbnVsbDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAKICAg
ICAgICAgYWZ0ZXIoZnVuY3Rpb24gKCkgewpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL3JlbW90ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvcmVtb3RlLmpzCShyZXZpc2lvbiAyMDE5ODUpCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC05LDYgKzks
NyBAQCBjbGFzcyBSZW1vdGVBUEkgewogICAgIGNvbnN0cnVjdG9yKHNlcnZlcikKICAgICB7CiAg
ICAgICAgIHRoaXMuX3NlcnZlciA9IG51bGw7CisgICAgICAgIHRoaXMuX2Nvb2tpZXMgPSBuZXcg
TWFwOwogICAgICAgICBpZiAoc2VydmVyKQogICAgICAgICAgICAgdGhpcy5jb25maWd1cmUoc2Vy
dmVyKTsKICAgICB9CkBAIC01MCw2ICs1MSw4IEBAIGNsYXNzIFJlbW90ZUFQSSB7CiAgICAgICAg
IH07CiAgICAgfQogCisgICAgY2xlYXJDb29raWVzKCkgeyB0aGlzLl9jb29raWVzID0gbmV3IE1h
cDsgfQorCiAgICAgZ2V0SlNPTihwYXRoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuc2Vu
ZEh0dHBSZXF1ZXN0KHBhdGgsICdHRVQnLCBudWxsLCBudWxsKS50aGVuKGZ1bmN0aW9uIChyZXN1
bHQpIHsKQEAgLTY5LDcgKzcyLDcgQEAgY2xhc3MgUmVtb3RlQVBJIHsKICAgICBwb3N0SlNPTihw
YXRoLCBkYXRhKQogICAgIHsKICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSAnYXBwbGljYXRp
b24vanNvbic7Ci0gICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShkYXRhKTsK
KyAgICAgICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KGRhdGEgfHwge30pOwogICAg
ICAgICByZXR1cm4gdGhpcy5zZW5kSHR0cFJlcXVlc3QocGF0aCwgJ1BPU1QnLCAnYXBwbGljYXRp
b24vanNvbicsIHBheWxvYWQpLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewogICAgICAgICAgICAg
dHJ5IHsKICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQucmVzcG9uc2VU
ZXh0KTsKQEAgLTgwLDYgKzgzLDE1IEBAIGNsYXNzIFJlbW90ZUFQSSB7CiAgICAgICAgIH0pOwog
ICAgIH0KIAorICAgIHBvc3RKU09OV2l0aFN0YXR1cyhwYXRoLCBkYXRhKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMucG9zdEpTT04ocGF0aCwgZGF0YSkudGhlbihmdW5jdGlvbiAocmVzdWx0
KSB7CisgICAgICAgICAgICBpZiAocmVzdWx0WydzdGF0dXMnXSAhPSAnT0snKQorICAgICAgICAg
ICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZXN1bHQpOworICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgcG9zdEZvcm1VcmxlbmNvZGVkRGF0
YShwYXRoLCBkYXRhKQogICAgIHsKICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSAnYXBwbGlj
YXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzsKQEAgLTkyLDYgKzEwNCw3IEBAIGNsYXNzIFJl
bW90ZUFQSSB7CiAgICAgc2VuZEh0dHBSZXF1ZXN0KHBhdGgsIG1ldGhvZCwgY29udGVudFR5cGUs
IGNvbnRlbnQpCiAgICAgewogICAgICAgICBsZXQgc2VydmVyID0gdGhpcy5fc2VydmVyOworICAg
ICAgICBjb25zdCBzZWxmID0gdGhpczsKICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0
aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIGxldCBvcHRpb25zID0gewogICAg
ICAgICAgICAgICAgIGhvc3RuYW1lOiBzZXJ2ZXIuaG9zdCwKQEAgLTEwNSw3ICsxMTgsMTUgQEAg
Y2xhc3MgUmVtb3RlQVBJIHsKICAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2VUZXh0ID0gJyc7
CiAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2V0RW5jb2RpbmcoJ3V0ZjgnKTsKICAgICAgICAg
ICAgICAgICByZXNwb25zZS5vbignZGF0YScsIGZ1bmN0aW9uIChjaHVuaykgeyByZXNwb25zZVRl
eHQgKz0gY2h1bms7IH0pOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCBmdW5j
dGlvbiAoKSB7IHJlc29sdmUoe3N0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1c0NvZGUsIHJlc3Bv
bnNlVGV4dDogcmVzcG9uc2VUZXh0fSk7IH0pOworICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9u
KCdlbmQnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgnc2V0LWNvb2tp
ZScgaW4gcmVzcG9uc2UuaGVhZGVycykgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChj
b25zdCBjb29raWUgb2YgcmVzcG9uc2UuaGVhZGVyc1snc2V0LWNvb2tpZSddKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIG5hbWVWYWx1ZSA9IGNvb2tpZS5zcGxpdCgnPScpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29va2llcy5zZXQobmFtZVZhbHVlWzBd
LCBuYW1lVmFsdWVbMV0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe3N0YXR1c0NvZGU6IHJlc3Bv
bnNlLnN0YXR1c0NvZGUsIHJlc3BvbnNlVGV4dDogcmVzcG9uc2VUZXh0fSk7CisgICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgcmVxdWVzdC5vbignZXJy
b3InLCByZWplY3QpOwpAQCAtMTEzLDYgKzEzNCwxMiBAQCBjbGFzcyBSZW1vdGVBUEkgewogICAg
ICAgICAgICAgaWYgKGNvbnRlbnRUeXBlKQogICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SGVh
ZGVyKCdDb250ZW50LVR5cGUnLCBjb250ZW50VHlwZSk7CiAKKyAgICAgICAgICAgIGlmIChzZWxm
Ll9jb29raWVzLnNpemUpIHsKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhlYWRlcignQ29v
a2llJywgQXJyYXkuZnJvbShzZWxmLl9jb29raWVzLmtleXMoKSkubWFwKGZ1bmN0aW9uIChrZXkp
IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2tleX09JHtzZWxmLl9jb29raWVzLmdl
dChrZXkpfWA7CisgICAgICAgICAgICAgICAgfSkuam9pbignOyAnKSk7CisgICAgICAgICAgICB9
CisKICAgICAgICAgICAgIGlmIChjb250ZW50KQogICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Jp
dGUoY29udGVudCk7CiAKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92
My1tb2RlbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xz
L2pzL3YzLW1vZGVscy5qcwkocmV2aXNpb24gMjAxOTg1KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcs
NyBAQCBpbXBvcnRGcm9tVjMoJ21vZGVscy9yb290LXNldC5qcycsICdSb290CiBpbXBvcnRGcm9t
VjMoJ21vZGVscy90ZXN0LmpzJywgJ1Rlc3QnKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL3Rlc3Qt
Z3JvdXAuanMnLCAnVGVzdEdyb3VwJyk7CiAKK2ltcG9ydEZyb21WMygncHJpdmlsZWdlZC1hcGku
anMnLCAnUHJpdmlsZWdlZEFQSScpOwogaW1wb3J0RnJvbVYzKCdpbnN0cnVtZW50YXRpb24uanMn
LCAnSW5zdHJ1bWVudGF0aW9uJyk7CiAKIGdsb2JhbC5TdGF0aXN0aWNzID0gcmVxdWlyZSgnLi4v
Li4vcHVibGljL3NoYXJlZC9zdGF0aXN0aWNzLmpzJyk7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdW5pdC10ZXN0cy9wcml2aWxlZ2VkLWFwaS10ZXN0cy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9wcml2aWxlZ2VkLWFwaS10ZXN0
cy5qcwkocmV2aXNpb24gMCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3Rz
L3ByaXZpbGVnZWQtYXBpLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTgyIEBA
CisndXNlIHN0cmljdCc7CisKK2NvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOworCits
ZXQgTW9ja1JlbW90ZUFQSSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5q
cycpLk1vY2tSZW1vdGVBUEk7CityZXF1aXJlKCcuLi90b29scy9qcy92My1tb2RlbHMuanMnKTsK
KworZGVzY3JpYmUoJ1ByaXZpbGVnZWRBUEknLCBmdW5jdGlvbiAoKSB7CisgICAgbGV0IHJlcXVl
c3RzID0gTW9ja1JlbW90ZUFQSS5pbmplY3QoKTsKKworICAgIGJlZm9yZUVhY2goZnVuY3Rpb24g
KCkgeworICAgICAgICBQcml2aWxlZ2VkQVBJLl90b2tlbiA9IG51bGw7CisgICAgfSkKKworICAg
IGRlc2NyaWJlKCdyZXF1ZXN0Q1NSRlRva2VuJywgZnVuY3Rpb24gKCkgeworICAgICAgICBpdCgn
c2hvdWxkIGdlbmVyYXRlIGEgbmV3IHRva2VuJywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
UHJpdmlsZWdlZEFQSS5yZXF1ZXN0Q1NSRlRva2VuKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1swXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvZ2VuZXJhdGUtY3NyZi10b2tlbicpOworICAgICAg
ICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG5vdCBnZW5lcmF0ZSBhIG5ldyB0b2tlbiBpZiB0
aGUgZXhpc3RpbmcgdG9rZW4gaGFkIG5vdCBleHBpcmVkJywgZnVuY3Rpb24gKGRvbmUpIHsKKyAg
ICAgICAgICAgIGNvbnN0IHRva2VuUmVxdWVzdCA9IFByaXZpbGVnZWRBUEkucmVxdWVzdENTUkZU
b2tlbigpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL3ByaXZpbGVnZWQtYXBp
L2dlbmVyYXRlLWNzcmYtdG9rZW4nKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUo
eworICAgICAgICAgICAgICAgIHRva2VuOiAnYWJjJywKKyAgICAgICAgICAgICAgICBleHBpcmF0
aW9uOiBEYXRlLm5vdygpICsgMzYwMCAqIDEwMDAsCisgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHRva2VuUmVxdWVzdC50aGVuKGZ1bmN0aW9uICh0b2tlbikgeworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0b2tlbiwgJ2FiYycpOworICAgICAgICAgICAgICAgIFByaXZpbGVnZWRB
UEkucmVxdWVzdENTUkZUb2tlbigpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIH0p
LmNhdGNoKGRvbmUpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGdlbmVyYXRl
IGEgbmV3IHRva2VuIGlmIHRoZSBleGlzdGluZyB0b2tlbiBoYWQgYWxyZWFkeSBleHBpcmVkJywg
ZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgICAgIGNvbnN0IHRva2VuUmVxdWVzdCA9IFByaXZp
bGVnZWRBUEkucmVxdWVzdENTUkZUb2tlbigpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0u
dXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRlLWNzcmYtdG9rZW4nKTsKKyAgICAgICAgICAg
IHJlcXVlc3RzWzBdLnJlc29sdmUoeworICAgICAgICAgICAgICAgIHRva2VuOiAnYWJjJywKKyAg
ICAgICAgICAgICAgICBleHBpcmF0aW9uOiBEYXRlLm5vdygpIC0gMSwKKyAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdG9rZW5SZXF1ZXN0LnRoZW4oZnVuY3Rpb24gKHRva2VuKSB7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRva2VuLCAnYWJjJyk7CisgICAgICAgICAgICAgICAg
UHJpdmlsZWdlZEFQSS5yZXF1ZXN0Q1NSRlRva2VuKCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2VuJyk7
CisgICAgICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgfSkuY2F0Y2goZG9uZSk7Cisg
ICAgICAgIH0pOworICAgIH0pOworICAgIAorICAgIGRlc2NyaWJlKCdzZW5kUmVxdWVzdCcsIGZ1
bmN0aW9uICgpIHsKKworICAgICAgICBpdCgnc2hvdWxkIGdlbmVyYXRlIGEgbmV3IHRva2VuIGlm
IG5vIHRva2VuIGhhZCBiZWVuIGZldGNoZWQnLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICAg
ICAgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndGVzdCcsIHt9KTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzBdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRva2VuJyk7
CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsKKyAgICAgICAgICAgICAgICB0b2tl
bjogJ2FiYycsCisgICAgICAgICAgICAgICAgZXhwaXJhdGlvbjogRGF0ZS5ub3coKSArIDEwMCAq
IDEwMDAsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRo
ZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUo
KTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1sxXS51cmwsICcvcHJpdmlsZWdlZC1hcGkvdGVzdCcpOworICAgICAgICAg
ICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIH0pLmNhdGNoKGRvbmUpOworICAgICAgICB9KTsK
KworICAgICAgICBpdCgnc2hvdWxkIG5vdCBnZW5lcmF0ZSBhIG5ldyB0b2tlbiBpZiB0aGUgZXhp
c3RpbmcgdG9rZW4gaGFkIG5vdCBiZWVuIGV4cGlyZWQnLCBmdW5jdGlvbiAoZG9uZSkgeworICAg
ICAgICAgICAgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgndGVzdCcsIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9wcml2aWxlZ2VkLWFwaS9nZW5lcmF0ZS1jc3JmLXRv
a2VuJyk7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsKKyAgICAgICAgICAgICAg
ICB0b2tlbjogJ2FiYycsCisgICAgICAgICAgICAgICAgZXhwaXJhdGlvbjogRGF0ZS5ub3coKSAr
IDM2MDAgKiAxMDAwLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBQcm9taXNlLnJlc29s
dmUoKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5y
ZXNvbHZlKCk7CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL3Rlc3QnKTsKKyAg
ICAgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd0ZXN0MicsIHt9KTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisgICAgICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0udXJs
LCAnL3ByaXZpbGVnZWQtYXBpL3Rlc3QyJyk7CisgICAgICAgICAgICAgICAgZG9uZSgpOworICAg
ICAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91
bGQgcmVqZWN0IGltbWVkaWF0ZWx5IHdoZW4gYSB0b2tlbiBnZW5lcmF0aW9uIGhhZCBmYWlsZWQn
LCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IFByaXZpbGVn
ZWRBUEkuc2VuZFJlcXVlc3QoJ3Rlc3QnLCB7fSk7CisgICAgICAgICAgICBsZXQgY2F1Z2h0ID0g
ZmFsc2U7CisgICAgICAgICAgICByZXF1ZXN0LmNhdGNoKGZ1bmN0aW9uICgpIHsgY2F1Z2h0ID0g
dHJ1ZTsgfSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvcHJpdmlsZWdlZC1h
cGkvZ2VuZXJhdGUtY3NyZi10b2tlbicpOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVqZWN0
KHtzdGF0dXM6ICdGYWlsZWRUb0dlbmVyYXRlVG9rZW4nfSk7CisgICAgICAgICAgICBQcm9taXNl
LnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5yZXNvbHZlKCk7CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQoY2F1Z2h0KTsKKyAgICAgICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAg
ICB9KS5jYXRjaChkb25lKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZS1n
ZW5lcmF0ZSB0b2tlbiB3aGVuIGl0IGhhZCBiZWNvbWUgaW52YWxpZCcsIGZ1bmN0aW9uIChkb25l
KSB7CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd0ZXN0Jywge30pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRl
LWNzcmYtdG9rZW4nKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoeworICAgICAg
ICAgICAgICAgIHRva2VuOiAnYWJjJywKKyAgICAgICAgICAgICAgICBleHBpcmF0aW9uOiBEYXRl
Lm5vdygpICsgMzYwMCAqIDEwMDAsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIFByb21p
c2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBQ
cm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5kYXRhLnRva2VuLCAnYWJjJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxlZ2VkLWFw
aS90ZXN0Jyk7CisgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVqZWN0KCdJbnZhbGlkVG9r
ZW4nKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisgICAgICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMl0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRlLWNzcmYtdG9rZW4nKTsKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0c1syXS5yZXNvbHZlKHsKKyAgICAgICAgICAgICAgICAgICAgdG9r
ZW46ICdkZWYnLAorICAgICAgICAgICAgICAgICAgICBleHBpcmF0aW9uOiBEYXRlLm5vdygpICsg
MzYwMCAqIDEwMDAsCisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmRhdGEudG9rZW4sICdkZWYnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10udXJsLCAnL3ByaXZpbGVnZWQt
YXBpL3Rlc3QnKTsKKyAgICAgICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICB9KS5jYXRj
aChkb25lKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBub3QgcmUtZ2VuZXJh
dGUgdG9rZW4gd2hlbiB0aGUgcmUtZmV0Y2hlZCB0b2tlbiB3YXMgaW52YWxpZCcsIGZ1bmN0aW9u
IChkb25lKSB7CisgICAgICAgICAgICBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCd0ZXN0Jywg
e30pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dl
bmVyYXRlLWNzcmYtdG9rZW4nKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoewor
ICAgICAgICAgICAgICAgIHRva2VuOiAnYWJjJywKKyAgICAgICAgICAgICAgICBleHBpcmF0aW9u
OiBEYXRlLm5vdygpICsgMzYwMCAqIDEwMDAsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJl
dHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5kYXRhLnRva2VuLCAnYWJjJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9wcml2aWxl
Z2VkLWFwaS90ZXN0Jyk7CisgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVqZWN0KCdJbnZh
bGlkVG9rZW4nKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7Cisg
ICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMl0udXJsLCAnL3ByaXZpbGVnZWQtYXBpL2dlbmVyYXRlLWNzcmYtdG9rZW4nKTsK
KyAgICAgICAgICAgICAgICByZXF1ZXN0c1syXS5yZXNvbHZlKHsKKyAgICAgICAgICAgICAgICAg
ICAgdG9rZW46ICdkZWYnLAorICAgICAgICAgICAgICAgICAgICBleHBpcmF0aW9uOiBEYXRlLm5v
dygpICsgMzYwMCAqIDEwMDAsCisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLmRhdGEudG9rZW4sICdkZWYn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10udXJsLCAnL3ByaXZp
bGVnZWQtYXBpL3Rlc3QnKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1szXS5yZWplY3QoJ0lu
dmFsaWRUb2tlbicpOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAg
ICAgZG9uZSgpOworICAgICAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgICAgIH0pOworCisg
ICAgfSk7CisKK30pOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMv
cmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzCShyZXZp
c2lvbiAyMDE5ODUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNv
dXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw2ICsxNiwxNCBA
QCB2YXIgTW9ja1JlbW90ZUFQSSA9IHsKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9hZGRS
ZXF1ZXN0KHVybCwgJ0dFVCcsIG51bGwpOwogICAgIH0sCisgICAgcG9zdEpTT046IGZ1bmN0aW9u
ICh1cmwsIGRhdGEpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYWRkUmVxdWVzdCh1cmws
ICdQT1NUJywgZGF0YSk7CisgICAgfSwKKyAgICBwb3N0SlNPTldpdGhTdGF0dXM6IGZ1bmN0aW9u
ICh1cmwsIGRhdGEpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYWRkUmVxdWVzdCh1cmws
ICdQT1NUJywgZGF0YSk7CisgICAgfSwKICAgICBwb3N0Rm9ybVVybGVuY29kZWREYXRhOiBmdW5j
dGlvbiAodXJsLCBkYXRhKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2FkZFJlcXVlc3Qo
dXJsLCAnUE9TVCcsIGRhdGEpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>