<?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>149608</bug_id>
          
          <creation_ts>2015-09-28 15:46:36 -0700</creation_ts>
          <short_desc>Dashboard metrics has JS errors from toggle button patch</short_desc>
          <delta_ts>2015-09-28 21:31:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Dean Johnson">dean_johnson</reporter>
          <assigned_to name="Dean Johnson">dean_johnson</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1129098</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2015-09-28 15:46:36 -0700</bug_when>
    <thetext>The Dashboard metrics page has JS errors that were introduced with https://bugs.webkit.org/show_bug.cgi?id=148403. This patch fixes them and also moves some of the identical logic from dashboard/Scripts/Main.js and dashboard/Scripts/MetricsMain.js to dashboard/Scripts/Settings.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129100</commentid>
    <comment_count>1</comment_count>
      <attachid>262025</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2015-09-28 15:51:39 -0700</bug_when>
    <thetext>Created attachment 262025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129103</commentid>
    <comment_count>2</comment_count>
      <attachid>262025</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-09-28 15:55:56 -0700</bug_when>
    <thetext>Comment on attachment 262025
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js:346
&gt; +        var settingsWrapper = document.createElement(&quot;div&quot;);

Eventually we should refactor this to have less copy/pasted code.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Settings.js:91
&gt; +        if (platformName)
&gt; +            return platformName.substr(0, platformName.indexOf(&quot;-&quot;));
&gt; +        return &apos;&apos;

Coding style nit: we prefer early return, so this should be

if (!platformName)
    return &apos;&apos;
return platformName.substr(0, platformName.indexOf(&quot;-&quot;));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129106</commentid>
    <comment_count>3</comment_count>
      <attachid>262026</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2015-09-28 16:12:40 -0700</bug_when>
    <thetext>Created attachment 262026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129107</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2015-09-28 16:13:21 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 262025 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=262025&amp;action=review
&gt; 
&gt; &gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js:346
&gt; &gt; +        var settingsWrapper = document.createElement(&quot;div&quot;);
&gt; 
&gt; Eventually we should refactor this to have less copy/pasted code.
&gt; 
Agreed.

&gt; &gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Settings.js:91
&gt; &gt; +        if (platformName)
&gt; &gt; +            return platformName.substr(0, platformName.indexOf(&quot;-&quot;));
&gt; &gt; +        return &apos;&apos;
&gt; 
&gt; Coding style nit: we prefer early return, so this should be
&gt; 
&gt; if (!platformName)
&gt;     return &apos;&apos;
&gt; return platformName.substr(0, platformName.indexOf(&quot;-&quot;));
Fixed in latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129147</commentid>
    <comment_count>5</comment_count>
      <attachid>262026</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-28 21:31:41 -0700</bug_when>
    <thetext>Comment on attachment 262026
Patch

Clearing flags on attachment: 262026

Committed r190303: &lt;http://trac.webkit.org/changeset/190303&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129148</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-28 21:31:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262025</attachid>
            <date>2015-09-28 15:51:39 -0700</date>
            <delta_ts>2015-09-28 16:12:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149608-20150928155116.patch</filename>
            <type>text/plain</type>
            <size>10798</size>
            <attacher name="Dean Johnson">dean_johnson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDhlYThkNTBjMWEyNDc4M2ZlZDlmMDkxNGRkN2JkMDNj
NTc3NWQyMy4uYmNhMGU3MzdkZTY5NDEzMWVjNWQxNzRiYmI4MTYzNGE2NzczNDI1ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDE1LTA5LTI4ICBEZWFuIEpvaG5zb24gIDxkZWFuX2pvaG5zb25AYXBwbGUuY29tPgor
CisgICAgICAgIEZpeCBKUyBlcnJvcnMgb24gZGFzaGJvYXJkIG1ldHJpY3MgcGFnZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NjA4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3Vw
cG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0
cy9NYWluLmpzOiBVcGRhdGVkIHRvIHVzZSBTZXR0aW5ncy4KKyAgICAgICAgKGluaXRQbGF0Zm9y
bXNCeUZhbWlseSk6IAorICAgICAgICAodXBkYXRlSGlkZGVuUGxhdGZvcm1zKToKKyAgICAgICAg
KHBhcnNlUGxhdGZvcm1GYW1pbHkpOiBEZWxldGVkLgorICAgICAgICAodXBkYXRlVG9nZ2xlQnV0
dG9ucyk6IERlbGV0ZWQuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0
Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmljc01haW4uanM6
CisgICAgICAgICh1cGRhdGVIaWRkZW5QbGF0Zm9ybXMpOiBBZGRlZCB0byByZW1vdmUgZXJyb3Jz
LgorICAgICAgICAoaW5pdFBsYXRmb3Jtc0J5RmFtaWx5KTogQWRkZWQgdG8gcmVtb3ZlIGVycm9y
cy4KKyAgICAgICAgKHVuaGlkZGVuUXVldWVzKTogVXBkYXRlZCB0byB1c2UgU2V0dGluZ3MuCisg
ICAgICAgIChkb2N1bWVudFJlYWR5KTogQWRkZWQgbG9naWMgdG8gYWRkIHRvZ2dsZSBidXR0b25z
IHRvIHRoZSBzZXR0aW5ncyBtZW51LgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1NldHRpbmdz
LmpzOgorICAgICAgICAoU2V0dGluZ3MucHJvdG90eXBlLnBhcnNlUGxhdGZvcm1GYW1pbHkpOiBN
b3ZlZCBkdXBsaWNhdGUgbG9naWMgZnJvbSBNYWluLmpzIGFuZAorICAgICAgICBNZXRyaWNzTWFp
bi5qcyB0byBTZXR0aW5ncy4KKyAgICAgICAgKFNldHRpbmdzLnByb3RvdHlwZS51cGRhdGVUb2dn
bGVCdXR0b25zKTogTW92ZWQgZHVwbGljYXRlIGxvZ2ljIGZyb20gTWFpbi5qcyBhbmQKKyAgICAg
ICAgTWV0cmljc01haW4uanMgdG8gU2V0dGluZ3MuCisKIDIwMTUtMDktMjQgIERhbmllbCBCYXRl
cyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UgZm9yIGlPUyA5LjAKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01haW4uanMg
Yi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzCmluZGV4IDE0ZDRlYmIxNGQ3NGZiYzQyYzZh
NGM1NTExZTFhZTNhMmEwMmZkMDUuLjMwZTIxNzJmMmI5ZmQ3ZDlhMjgwYjk5Y2Y0M2EzNjNhZTE5
ZDEzYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01haW4uanMKKysrIGIvVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
ZGFzaGJvYXJkL1NjcmlwdHMvTWFpbi5qcwpAQCAtMTA0LDEzICsxMDQsNiBAQCB2YXIgdGVzdE5h
bWVzID0ge307CiB0ZXN0TmFtZXNbQnVpbGRib3QuVGVzdENhdGVnb3J5LldlYktpdDJdID0gIldL
MiBUZXN0cyI7CiB0ZXN0TmFtZXNbQnVpbGRib3QuVGVzdENhdGVnb3J5LldlYktpdDFdID0gIldL
MSBUZXN0cyI7CiAKLWZ1bmN0aW9uIHBhcnNlUGxhdGZvcm1GYW1pbHkocGxhdGZvcm1OYW1lKQot
ewotICAgIGlmIChwbGF0Zm9ybU5hbWUpCi0gICAgICAgIHJldHVybiBwbGF0Zm9ybU5hbWUuc3Vi
c3RyKDAsIHBsYXRmb3JtTmFtZS5pbmRleE9mKCItIikpOwotICAgIHJldHVybiAnJwotfQotCiBm
dW5jdGlvbiBpbml0UGxhdGZvcm1zQnlGYW1pbHkoKQogewogICAgIHZhciBwbGF0Zm9ybXMgPSBE
YXNoYm9hcmQuc29ydGVkUGxhdGZvcm1zOwpAQCAtMTE5LDcgKzExMiw3IEBAIGZ1bmN0aW9uIGlu
aXRQbGF0Zm9ybXNCeUZhbWlseSgpCiAgICAgICAgIGlmICghY2F0ZWdvcml6ZWRRdWV1ZXNCeVBs
YXRmb3JtQW5kQnVpbGRUeXBlW3BsYXRmb3Jtc1tpXS5uYW1lXSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIHZhciBwbGF0Zm9ybUZhbWlseSA9IHBhcnNlUGxhdGZvcm1GYW1pbHko
cGxhdGZvcm1zW2ldLm5hbWUpOworICAgICAgICB2YXIgcGxhdGZvcm1GYW1pbHkgPSBzZXR0aW5n
cy5wYXJzZVBsYXRmb3JtRmFtaWx5KHBsYXRmb3Jtc1tpXS5uYW1lKTsKICAgICAgICAgaWYgKHBs
YXRmb3Jtc0J5RmFtaWx5W3BsYXRmb3JtRmFtaWx5XSkKICAgICAgICAgICAgIHBsYXRmb3Jtc0J5
RmFtaWx5W3BsYXRmb3JtRmFtaWx5XS5wdXNoKHBsYXRmb3Jtc1tpXS5uYW1lKQogICAgICAgICBl
bHNlCkBAIC0xMjcsMjMgKzEyMCw2IEBAIGZ1bmN0aW9uIGluaXRQbGF0Zm9ybXNCeUZhbWlseSgp
CiAgICAgfQogfQogCi1mdW5jdGlvbiB1cGRhdGVUb2dnbGVCdXR0b25zKCkKLXsKLSAgICB2YXIg
aGlkZGVuUGxhdGZvcm1GYW1pbGllcyA9IHNldHRpbmdzLmdldE9iamVjdCgiaGlkZGVuUGxhdGZv
cm1GYW1pbGllcyIpIHx8IFtdOwotICAgIHZhciBoaWRkZW5GYW1pbHlCdXR0b25zID0geyJhbGwi
OiBoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzLmxlbmd0aCA+IDB9OwotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgaGlkZGVuUGxhdGZvcm1GYW1pbGllcy5sZW5ndGg7ICsraSkKLSAgICAgICAgaGlkZGVu
RmFtaWx5QnV0dG9uc1toaWRkZW5QbGF0Zm9ybUZhbWlsaWVzW2ldXSA9IHRydWU7Ci0KLSAgICB2
YXIgcGxhdGZvcm1GYW1pbHlCdXR0b25zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSgicGxhdGZvcm1GYW1pbHlUb2dnbGVCdXR0b24iKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHBsYXRmb3JtRmFtaWx5QnV0dG9ucy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgaGlkZGVu
UGxhdGZvcm1GYW1pbHkgPSBwYXJzZVBsYXRmb3JtRmFtaWx5KHBsYXRmb3JtRmFtaWx5QnV0dG9u
c1tpXS5pZCk7Ci0gICAgICAgIGlmICghaGlkZGVuRmFtaWx5QnV0dG9uc1toaWRkZW5QbGF0Zm9y
bUZhbWlseV0pCi0gICAgICAgICAgICBwbGF0Zm9ybUZhbWlseUJ1dHRvbnNbaV0uY2xhc3NMaXN0
LmFkZCgiZmFtaWx5U2hvd24iKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcGxhdGZvcm1G
YW1pbHlCdXR0b25zW2ldLmNsYXNzTGlzdC5yZW1vdmUoImZhbWlseVNob3duIik7Ci0gICAgfQot
fQotCiBmdW5jdGlvbiB1cGRhdGVIaWRkZW5QbGF0Zm9ybXMoKQogewogICAgIHZhciBoaWRkZW5Q
bGF0Zm9ybUZhbWlsaWVzID0gc2V0dGluZ3MuZ2V0T2JqZWN0KCJoaWRkZW5QbGF0Zm9ybUZhbWls
aWVzIikgfHwgW107CkBAIC0xNjAsNyArMTM2LDcgQEAgZnVuY3Rpb24gdXBkYXRlSGlkZGVuUGxh
dGZvcm1zKCkKICAgICAgICAgICAgICAgICBwbGF0Zm9ybVJvdy5jbGFzc0xpc3QuYWRkKCJoaWRk
ZW4iKTsKICAgICAgICAgfQogICAgIH0KLSAgICB1cGRhdGVUb2dnbGVCdXR0b25zKCk7CisgICAg
c2V0dGluZ3MudXBkYXRlVG9nZ2xlQnV0dG9ucygpOwogfQogCiBmdW5jdGlvbiBhcHBseUFjY2Vz
c2liaWxpdHlDb2xvclNldHRpbmcoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMv
TWV0cmljc01haW4uanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzTWFpbi5qcwppbmRl
eCBlYTIxNjdhN2M5OTVjNzRmOWU2NjViOTYxODdmZDc0NmVmMmUxNGVhLi5iNmM3YThmYzM1YzYz
ZmMzZWE3Mjc1NzNjNjYyYjAzZDJkOWI2MmQ5IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9NZXRyaWNzTWFpbi5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzTWFp
bi5qcwpAQCAtMzEsNiArMzEsNyBAQCB2YXIgYWxsQnVpbGRlclJlc3VsdHNQc2V1ZG9RdWV1ZSA9
IHsgaWQ6ICJhbGxCdWlsZGVyUmVzdWx0c1BzZXVkb1F1ZXVlIiB9OwogdmFyIGFsbFJlc3VsdHNQ
c2V1ZG9RdWV1ZSA9IHsgaWQ6ICJhbGxSZXN1bHRzUHNldWRvUXVldWUiIH07CiAKIHZhciBjYXRl
Z29yaXplZFF1ZXVlc0J5UGxhdGZvcm1BbmRCdWlsZFR5cGUgPSB7fTsKK3ZhciBwbGF0Zm9ybXNC
eUZhbWlseSA9IHt9OwogCiBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkYm90cy5sZW5ndGg7ICsr
aSkgewogICAgIHZhciBidWlsZGJvdCA9IGJ1aWxkYm90c1tpXTsKQEAgLTcwLDYgKzcxLDQzIEBA
IHZhciB0ZXN0TmFtZXMgPSB7fTsKIHRlc3ROYW1lc1tCdWlsZGJvdC5UZXN0Q2F0ZWdvcnkuV2Vi
S2l0Ml0gPSAiV0syIFRlc3RzIjsKIHRlc3ROYW1lc1tCdWlsZGJvdC5UZXN0Q2F0ZWdvcnkuV2Vi
S2l0MV0gPSAiV0sxIFRlc3RzIjsKIAorCitmdW5jdGlvbiB1cGRhdGVIaWRkZW5QbGF0Zm9ybXMo
KQoreworICAgIHZhciBoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzID0gc2V0dGluZ3MuZ2V0T2JqZWN0
KCJoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzIikgfHwgW107CisgICAgdmFyIHBsYXRmb3JtUm93cyA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRyLnBsYXRmb3JtIik7CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBwbGF0Zm9ybVJvd3MubGVuZ3RoOyArK2kpCisgICAgICAgIHBsYXRmb3JtUm93
c1tpXS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgaGlkZGVuUGxhdGZvcm1GYW1pbGllcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgcGxh
dGZvcm1GYW1pbHkgPSBoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzW2ldOworICAgICAgICBmb3IgKHZh
ciBqID0gMDsgaiA8IHBsYXRmb3Jtc0J5RmFtaWx5W3BsYXRmb3JtRmFtaWx5XS5sZW5ndGg7ICsr
aikgeworICAgICAgICAgICAgdmFyIG5hbWUgPSBwbGF0Zm9ybXNCeUZhbWlseVtwbGF0Zm9ybUZh
bWlseV1bal07CisgICAgICAgICAgICB2YXIgcGxhdGZvcm1Sb3cgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJ0ci5wbGF0Zm9ybS4iICsgbmFtZSk7CisgICAgICAgICAgICBpZiAocGxhdGZvcm1S
b3cpCisgICAgICAgICAgICAgICAgcGxhdGZvcm1Sb3cuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7
CisgICAgICAgIH0KKyAgICB9CisgICAgc2V0dGluZ3MudXBkYXRlVG9nZ2xlQnV0dG9ucygpOwor
fQorCisKK2Z1bmN0aW9uIGluaXRQbGF0Zm9ybXNCeUZhbWlseSgpCit7CisgICAgdmFyIHBsYXRm
b3JtcyA9IERhc2hib2FyZC5zb3J0ZWRQbGF0Zm9ybXM7CisgICAgZm9yICh2YXIgaSBpbiBwbGF0
Zm9ybXMpIHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBwbGF0Zm9ybSB3aWxsIGJlIGRpc3Bs
YXllZCBvbiB0aGUgcGFnZSBiZWZvcmUgY29uc2lkZXJpbmcgaXRzIHBsYXRmb3JtIGZhbWlseS4K
KyAgICAgICAgaWYgKCFjYXRlZ29yaXplZFF1ZXVlc0J5UGxhdGZvcm1BbmRCdWlsZFR5cGVbcGxh
dGZvcm1zW2ldLm5hbWVdKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgdmFyIHBs
YXRmb3JtRmFtaWx5ID0gc2V0dGluZ3MucGFyc2VQbGF0Zm9ybUZhbWlseShwbGF0Zm9ybXNbaV0u
bmFtZSk7CisgICAgICAgIGlmIChwbGF0Zm9ybXNCeUZhbWlseVtwbGF0Zm9ybUZhbWlseV0pCisg
ICAgICAgICAgICBwbGF0Zm9ybXNCeUZhbWlseVtwbGF0Zm9ybUZhbWlseV0ucHVzaChwbGF0Zm9y
bXNbaV0ubmFtZSkKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcGxhdGZvcm1zQnlGYW1pbHlb
cGxhdGZvcm1GYW1pbHldID0gW3BsYXRmb3Jtc1tpXS5uYW1lXQorICAgIH0KK30KKwogZnVuY3Rp
b24gdW5oaWRkZW5RdWV1ZXMoKQogewogICAgIHZhciBoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzID0g
c2V0dGluZ3MuZ2V0T2JqZWN0KCJoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzIikgfHwgW107CkBAIC03
OCw3ICsxMTYsNyBAQCBmdW5jdGlvbiB1bmhpZGRlblF1ZXVlcygpCiAgICAgICAgIHZhciBidWls
ZGJvdCA9IGJ1aWxkYm90c1tpXTsKICAgICAgICAgZm9yICh2YXIgaWQgaW4gYnVpbGRib3QucXVl
dWVzKSB7CiAgICAgICAgICAgICB2YXIgcXVldWUgPSBidWlsZGJvdC5xdWV1ZXNbaWRdOwotICAg
ICAgICAgICAgaWYgKC0xID09PSBoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzLmluZGV4T2YocGFyc2VQ
bGF0Zm9ybUZhbWlseShxdWV1ZS5wbGF0Zm9ybSkpKQorICAgICAgICAgICAgaWYgKC0xID09PSBo
aWRkZW5QbGF0Zm9ybUZhbWlsaWVzLmluZGV4T2Yoc2V0dGluZ3MucGFyc2VQbGF0Zm9ybUZhbWls
eShxdWV1ZS5wbGF0Zm9ybSkpKQogICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHF1ZXVlKTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTMwNSw2ICszNDMsMzMgQEAgZnVuY3Rpb24gZG9jdW1lbnRS
ZWFkeSgpCiAgICAgICAgIHNldHRpbmdzQnV0dG9uLmNsYXNzTGlzdC5hZGQoInNldHRpbmdzIik7
CiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2V0dGluZ3NCdXR0b24pOwogCisg
ICAgICAgIHZhciBzZXR0aW5nc1dyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICAgICAgc2V0dGluZ3NXcmFwcGVyLmNsYXNzTGlzdC5hZGQoInVuaGlkZSIsICJoaWRk
ZW4iLCAic2V0dGluZ3NXcmFwcGVyIikKKworICAgICAgICB2YXIgcGxhdGZvcm1GYW1pbHlUb2dn
bGVXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIHBsYXRm
b3JtRmFtaWx5VG9nZ2xlV3JhcHBlci5jbGFzc0xpc3QuYWRkKCJ1bmhpZGUiLCAiaGlkZGVuIiwg
ImZhbWlseVRvZ2dsZVdyYXBwZXIiKTsKKworICAgICAgICB2YXIgdW5oaWRlQWxsQnV0dG9uID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIHVuaGlkZUFsbEJ1dHRvbi5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgc2V0dGluZ3MuY2xlYXJIaWRk
ZW5QbGF0Zm9ybUZhbWlsaWVzKCk7IH0pOworICAgICAgICB1bmhpZGVBbGxCdXR0b24uY2xhc3NM
aXN0LmFkZCgidW5oaWRlIiwgImhpZGRlbiIsICJwbGF0Zm9ybUZhbWlseVRvZ2dsZUJ1dHRvbiIp
OworICAgICAgICB1bmhpZGVBbGxCdXR0b24uc2V0QXR0cmlidXRlKCJpZCIsICJhbGwtcGxhdGZv
cm1GYW1pbHlUb2dnbGVCdXR0b24iKTsKKyAgICAgICAgdW5oaWRlQWxsQnV0dG9uLnRleHRDb250
ZW50ID0gImFsbCI7CisgICAgICAgIHBsYXRmb3JtRmFtaWx5VG9nZ2xlV3JhcHBlci5hcHBlbmRD
aGlsZCh1bmhpZGVBbGxCdXR0b24pOworCisgICAgICAgIGluaXRQbGF0Zm9ybXNCeUZhbWlseSgp
OworICAgICAgICBmb3IgKHZhciBwbGF0Zm9ybUZhbWlseSBpbiBwbGF0Zm9ybXNCeUZhbWlseSkg
eworICAgICAgICAgICAgdmFyIHBsYXRmb3JtRmFtaWx5VG9nZ2xlID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICBwbGF0Zm9ybUZhbWlseVRvZ2dsZS5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBzZXR0aW5n
cy50b2dnbGVIaWRkZW5QbGF0Zm9ybUZhbWlseSh0aGlzLnRvU3RyaW5nKCkpOworICAgICAgICAg
ICAgfS5iaW5kKHBsYXRmb3JtRmFtaWx5KSk7CisgICAgICAgICAgICBwbGF0Zm9ybUZhbWlseVRv
Z2dsZS5jbGFzc0xpc3QuYWRkKCJ1bmhpZGUiLCAiaGlkZGVuIiwgInBsYXRmb3JtRmFtaWx5VG9n
Z2xlQnV0dG9uIik7CisgICAgICAgICAgICBwbGF0Zm9ybUZhbWlseVRvZ2dsZS5zZXRBdHRyaWJ1
dGUoImlkIiwgcGxhdGZvcm1GYW1pbHkgKyAiLXBsYXRmb3JtRmFtaWx5VG9nZ2xlQnV0dG9uIik7
CisgICAgICAgICAgICBwbGF0Zm9ybUZhbWlseVRvZ2dsZS50ZXh0Q29udGVudCA9IHBsYXRmb3Jt
RmFtaWx5OworICAgICAgICAgICAgcGxhdGZvcm1GYW1pbHlUb2dnbGVXcmFwcGVyLmFwcGVuZENo
aWxkKHBsYXRmb3JtRmFtaWx5VG9nZ2xlKTsKKyAgICAgICAgfQorICAgICAgICBzZXR0aW5nc1dy
YXBwZXIuYXBwZW5kQ2hpbGQocGxhdGZvcm1GYW1pbHlUb2dnbGVXcmFwcGVyKTsKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzZXR0aW5nc1dyYXBwZXIpOworCiAgICAgICAgIHVw
ZGF0ZUhpZGRlblBsYXRmb3JtcygpOwogICAgICAgICBzZXR0aW5ncy5hZGRTZXR0aW5nTGlzdGVu
ZXIoImhpZGRlblBsYXRmb3JtRmFtaWxpZXMiLCB1cGRhdGVIaWRkZW5QbGF0Zm9ybXMpOwogICAg
ICAgICBzZXR0aW5ncy5hZGRTZXR0aW5nTGlzdGVuZXIoImVudGVyZWRTZXR0aW5ncyIsIGZ1bmN0
aW9uKCkgeyAKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1NldHRpbmdzLmpzIGIv
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvU2V0dGluZ3MuanMKaW5kZXggN2Q2MGUyYjNkZDUxZjBiMmE2
M2U0ZmRiOWZiYzA2YWZjOTZmZDNjZC4uM2Q0NjQxN2Y1MjEwYmU2Yzk3YzhiNTUyYWNlNTI3NGFi
NmJlNmVjYiAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0
Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvU2V0dGluZ3MuanMKKysr
IGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGlj
X2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvU2V0dGluZ3MuanMKQEAgLTg0LDYgKzg0LDEzIEBAIFNl
dHRpbmdzLnByb3RvdHlwZSA9IHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9n
Z2xlKCJzZXR0aW5ncy12aXNpYmxlIik7CiAgICAgfSwKIAorICAgIHBhcnNlUGxhdGZvcm1GYW1p
bHk6IGZ1bmN0aW9uKHBsYXRmb3JtTmFtZSkKKyAgICB7CisgICAgICAgIGlmIChwbGF0Zm9ybU5h
bWUpCisgICAgICAgICAgICByZXR1cm4gcGxhdGZvcm1OYW1lLnN1YnN0cigwLCBwbGF0Zm9ybU5h
bWUuaW5kZXhPZigiLSIpKTsKKyAgICAgICAgcmV0dXJuICcnCisgICAgfSwKKwogICAgIHRvZ2ds
ZUhpZGRlblBsYXRmb3JtRmFtaWx5OiBmdW5jdGlvbihwbGF0Zm9ybUZhbWlseSkKICAgICB7CiAg
ICAgICAgIHZhciBoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzID0gdGhpcy5nZXRPYmplY3QoImhpZGRl
blBsYXRmb3JtRmFtaWxpZXMiKSB8fCBbXTsKQEAgLTEwMiw0ICsxMDksMjEgQEAgU2V0dGluZ3Mu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnNldE9iamVjdCgiaGlkZGVuUGxhdGZvcm1GYW1p
bGllcyIsIFtdKTsKICAgICAgICAgdGhpcy5maXJlU2V0dGluZ0xpc3RlbmVyKCJoaWRkZW5QbGF0
Zm9ybUZhbWlsaWVzIik7CiAgICAgfSwKKworICAgIHVwZGF0ZVRvZ2dsZUJ1dHRvbnM6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzID0gdGhpcy5n
ZXRPYmplY3QoImhpZGRlblBsYXRmb3JtRmFtaWxpZXMiKSB8fCBbXTsKKyAgICAgICAgdmFyIGhp
ZGRlbkZhbWlseUJ1dHRvbnMgPSB7ImFsbCI6IGhpZGRlblBsYXRmb3JtRmFtaWxpZXMubGVuZ3Ro
ID4gMH07CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGlkZGVuUGxhdGZvcm1GYW1pbGll
cy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGhpZGRlbkZhbWlseUJ1dHRvbnNbaGlkZGVuUGxh
dGZvcm1GYW1pbGllc1tpXV0gPSB0cnVlOworCisgICAgICAgIHZhciBwbGF0Zm9ybUZhbWlseUJ1
dHRvbnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwbGF0Zm9ybUZhbWlseVRv
Z2dsZUJ1dHRvbiIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBsYXRmb3JtRmFtaWx5
QnV0dG9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGhpZGRlblBsYXRmb3JtRmFt
aWx5ID0gdGhpcy5wYXJzZVBsYXRmb3JtRmFtaWx5KHBsYXRmb3JtRmFtaWx5QnV0dG9uc1tpXS5p
ZCk7CisgICAgICAgICAgICBpZiAoIWhpZGRlbkZhbWlseUJ1dHRvbnNbaGlkZGVuUGxhdGZvcm1G
YW1pbHldKQorICAgICAgICAgICAgICAgIHBsYXRmb3JtRmFtaWx5QnV0dG9uc1tpXS5jbGFzc0xp
c3QuYWRkKCJmYW1pbHlTaG93biIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHBsYXRmb3JtRmFtaWx5QnV0dG9uc1tpXS5jbGFzc0xpc3QucmVtb3ZlKCJmYW1pbHlTaG93biIp
OworICAgICAgICB9CisgICAgfSwKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262026</attachid>
            <date>2015-09-28 16:12:40 -0700</date>
            <delta_ts>2015-09-28 21:31:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149608-20150928161218.patch</filename>
            <type>text/plain</type>
            <size>11960</size>
            <attacher name="Dean Johnson">dean_johnson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDhlYThkNTBjMWEyNDc4M2ZlZDlmMDkxNGRkN2JkMDNj
NTc3NWQyMy4uY2QxM2QyNDc5NzA2NjI2MzI0ZTgzYTY3MTAxYmFhMjcxMzgzNDhiYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDE1LTA5LTI4ICBEZWFuIEpvaG5zb24gIDxkZWFuX2pvaG5zb25AYXBwbGUuY29tPgor
CisgICAgICAgIEZpeCBKUyBlcnJvcnMgb24gZGFzaGJvYXJkIG1ldHJpY3MgcGFnZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NjA4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICAqIEJ1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL01haW4uanM6IFVwZGF0ZWQgdG8gdXNlIFNldHRpbmdzLgorICAgICAgICAoaW5pdFBs
YXRmb3Jtc0J5RmFtaWx5KTogCisgICAgICAgICh1cGRhdGVIaWRkZW5QbGF0Zm9ybXMpOgorICAg
ICAgICAocGFyc2VQbGF0Zm9ybUZhbWlseSk6IERlbGV0ZWQuCisgICAgICAgICh1cGRhdGVUb2dn
bGVCdXR0b25zKTogRGVsZXRlZC4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NZXRyaWNzTWFp
bi5qczoKKyAgICAgICAgKHVwZGF0ZUhpZGRlblBsYXRmb3Jtcyk6IEFkZGVkIHRvIHJlbW92ZSBl
cnJvcnMuCisgICAgICAgIChpbml0UGxhdGZvcm1zQnlGYW1pbHkpOiBBZGRlZCB0byByZW1vdmUg
ZXJyb3JzLgorICAgICAgICAodW5oaWRkZW5RdWV1ZXMpOiBVcGRhdGVkIHRvIHVzZSBTZXR0aW5n
cy4KKyAgICAgICAgKGRvY3VtZW50UmVhZHkpOiBBZGRlZCBsb2dpYyB0byBhZGQgdG9nZ2xlIGJ1
dHRvbnMgdG8gdGhlIHNldHRpbmdzIG1lbnUuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvU2V0
dGluZ3MuanM6CisgICAgICAgIChTZXR0aW5ncy5wcm90b3R5cGUucGFyc2VQbGF0Zm9ybUZhbWls
eSk6IE1vdmVkIGR1cGxpY2F0ZSBsb2dpYyBmcm9tIE1haW4uanMgYW5kCisgICAgICAgIE1ldHJp
Y3NNYWluLmpzIHRvIFNldHRpbmdzLgorICAgICAgICAoU2V0dGluZ3MucHJvdG90eXBlLnVwZGF0
ZVRvZ2dsZUJ1dHRvbnMpOiBNb3ZlZCBkdXBsaWNhdGUgbG9naWMgZnJvbSBNYWluLmpzIGFuZAor
ICAgICAgICBNZXRyaWNzTWFpbi5qcyB0byBTZXR0aW5ncy4KKyAgICAgICAgKiBCdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9RdWV1ZVZpZXcuanM6CisgICAgICAgIChRdWV1ZVZpZXcucHJvdG90eXBlLl91cGRhdGVI
aWRkZW5TdGF0ZSk6IFVwZGF0ZWQgdG8gdXNlIFNldHRpbmdzLgorCiAyMDE1LTA5LTI0ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgV2ViS2l0U3lzdGVt
SW50ZXJmYWNlIGZvciBpT1MgOS4wCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9N
YWluLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWFpbi5qcwppbmRleCAxNGQ0ZWJiMTRkNzRm
YmM0MmM2YTRjNTUxMWUxYWUzYTJhMDJmZDA1Li4zMGUyMTcyZjJiOWZkN2Q5YTI4MGI5OWNmNDNh
MzYzYWUxOWQxM2I2IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzCisr
KyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01haW4uanMKQEAgLTEwNCwxMyArMTA0LDYgQEAgdmFy
IHRlc3ROYW1lcyA9IHt9OwogdGVzdE5hbWVzW0J1aWxkYm90LlRlc3RDYXRlZ29yeS5XZWJLaXQy
XSA9ICJXSzIgVGVzdHMiOwogdGVzdE5hbWVzW0J1aWxkYm90LlRlc3RDYXRlZ29yeS5XZWJLaXQx
XSA9ICJXSzEgVGVzdHMiOwogCi1mdW5jdGlvbiBwYXJzZVBsYXRmb3JtRmFtaWx5KHBsYXRmb3Jt
TmFtZSkKLXsKLSAgICBpZiAocGxhdGZvcm1OYW1lKQotICAgICAgICByZXR1cm4gcGxhdGZvcm1O
YW1lLnN1YnN0cigwLCBwbGF0Zm9ybU5hbWUuaW5kZXhPZigiLSIpKTsKLSAgICByZXR1cm4gJycK
LX0KLQogZnVuY3Rpb24gaW5pdFBsYXRmb3Jtc0J5RmFtaWx5KCkKIHsKICAgICB2YXIgcGxhdGZv
cm1zID0gRGFzaGJvYXJkLnNvcnRlZFBsYXRmb3JtczsKQEAgLTExOSw3ICsxMTIsNyBAQCBmdW5j
dGlvbiBpbml0UGxhdGZvcm1zQnlGYW1pbHkoKQogICAgICAgICBpZiAoIWNhdGVnb3JpemVkUXVl
dWVzQnlQbGF0Zm9ybUFuZEJ1aWxkVHlwZVtwbGF0Zm9ybXNbaV0ubmFtZV0pCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICB2YXIgcGxhdGZvcm1GYW1pbHkgPSBwYXJzZVBsYXRmb3Jt
RmFtaWx5KHBsYXRmb3Jtc1tpXS5uYW1lKTsKKyAgICAgICAgdmFyIHBsYXRmb3JtRmFtaWx5ID0g
c2V0dGluZ3MucGFyc2VQbGF0Zm9ybUZhbWlseShwbGF0Zm9ybXNbaV0ubmFtZSk7CiAgICAgICAg
IGlmIChwbGF0Zm9ybXNCeUZhbWlseVtwbGF0Zm9ybUZhbWlseV0pCiAgICAgICAgICAgICBwbGF0
Zm9ybXNCeUZhbWlseVtwbGF0Zm9ybUZhbWlseV0ucHVzaChwbGF0Zm9ybXNbaV0ubmFtZSkKICAg
ICAgICAgZWxzZQpAQCAtMTI3LDIzICsxMjAsNiBAQCBmdW5jdGlvbiBpbml0UGxhdGZvcm1zQnlG
YW1pbHkoKQogICAgIH0KIH0KIAotZnVuY3Rpb24gdXBkYXRlVG9nZ2xlQnV0dG9ucygpCi17Ci0g
ICAgdmFyIGhpZGRlblBsYXRmb3JtRmFtaWxpZXMgPSBzZXR0aW5ncy5nZXRPYmplY3QoImhpZGRl
blBsYXRmb3JtRmFtaWxpZXMiKSB8fCBbXTsKLSAgICB2YXIgaGlkZGVuRmFtaWx5QnV0dG9ucyA9
IHsiYWxsIjogaGlkZGVuUGxhdGZvcm1GYW1pbGllcy5sZW5ndGggPiAwfTsKLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGhpZGRlblBsYXRmb3JtRmFtaWxpZXMubGVuZ3RoOyArK2kpCi0gICAgICAg
IGhpZGRlbkZhbWlseUJ1dHRvbnNbaGlkZGVuUGxhdGZvcm1GYW1pbGllc1tpXV0gPSB0cnVlOwot
Ci0gICAgdmFyIHBsYXRmb3JtRmFtaWx5QnV0dG9ucyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlD
bGFzc05hbWUoInBsYXRmb3JtRmFtaWx5VG9nZ2xlQnV0dG9uIik7Ci0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBwbGF0Zm9ybUZhbWlseUJ1dHRvbnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFy
IGhpZGRlblBsYXRmb3JtRmFtaWx5ID0gcGFyc2VQbGF0Zm9ybUZhbWlseShwbGF0Zm9ybUZhbWls
eUJ1dHRvbnNbaV0uaWQpOwotICAgICAgICBpZiAoIWhpZGRlbkZhbWlseUJ1dHRvbnNbaGlkZGVu
UGxhdGZvcm1GYW1pbHldKQotICAgICAgICAgICAgcGxhdGZvcm1GYW1pbHlCdXR0b25zW2ldLmNs
YXNzTGlzdC5hZGQoImZhbWlseVNob3duIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBs
YXRmb3JtRmFtaWx5QnV0dG9uc1tpXS5jbGFzc0xpc3QucmVtb3ZlKCJmYW1pbHlTaG93biIpOwot
ICAgIH0KLX0KLQogZnVuY3Rpb24gdXBkYXRlSGlkZGVuUGxhdGZvcm1zKCkKIHsKICAgICB2YXIg
aGlkZGVuUGxhdGZvcm1GYW1pbGllcyA9IHNldHRpbmdzLmdldE9iamVjdCgiaGlkZGVuUGxhdGZv
cm1GYW1pbGllcyIpIHx8IFtdOwpAQCAtMTYwLDcgKzEzNiw3IEBAIGZ1bmN0aW9uIHVwZGF0ZUhp
ZGRlblBsYXRmb3JtcygpCiAgICAgICAgICAgICAgICAgcGxhdGZvcm1Sb3cuY2xhc3NMaXN0LmFk
ZCgiaGlkZGVuIik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgdXBkYXRlVG9nZ2xlQnV0dG9ucygp
OworICAgIHNldHRpbmdzLnVwZGF0ZVRvZ2dsZUJ1dHRvbnMoKTsKIH0KIAogZnVuY3Rpb24gYXBw
bHlBY2Nlc3NpYmlsaXR5Q29sb3JTZXR0aW5nKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL01ldHJpY3NNYWluLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0cmljc01haW4u
anMKaW5kZXggZWEyMTY3YTdjOTk1Yzc0ZjllNjY1Yjk2MTg3ZmQ3NDZlZjJlMTRlYS4uYjZjN2E4
ZmMzNWM2M2ZjM2VhNzI3NTczYzY2MmIwM2QyZDliNjJkOSAxMDA2NDQKLS0tIGEvVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvTWV0cmljc01haW4uanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWV0
cmljc01haW4uanMKQEAgLTMxLDYgKzMxLDcgQEAgdmFyIGFsbEJ1aWxkZXJSZXN1bHRzUHNldWRv
UXVldWUgPSB7IGlkOiAiYWxsQnVpbGRlclJlc3VsdHNQc2V1ZG9RdWV1ZSIgfTsKIHZhciBhbGxS
ZXN1bHRzUHNldWRvUXVldWUgPSB7IGlkOiAiYWxsUmVzdWx0c1BzZXVkb1F1ZXVlIiB9OwogCiB2
YXIgY2F0ZWdvcml6ZWRRdWV1ZXNCeVBsYXRmb3JtQW5kQnVpbGRUeXBlID0ge307Cit2YXIgcGxh
dGZvcm1zQnlGYW1pbHkgPSB7fTsKIAogZm9yICh2YXIgaSA9IDA7IGkgPCBidWlsZGJvdHMubGVu
Z3RoOyArK2kpIHsKICAgICB2YXIgYnVpbGRib3QgPSBidWlsZGJvdHNbaV07CkBAIC03MCw2ICs3
MSw0MyBAQCB2YXIgdGVzdE5hbWVzID0ge307CiB0ZXN0TmFtZXNbQnVpbGRib3QuVGVzdENhdGVn
b3J5LldlYktpdDJdID0gIldLMiBUZXN0cyI7CiB0ZXN0TmFtZXNbQnVpbGRib3QuVGVzdENhdGVn
b3J5LldlYktpdDFdID0gIldLMSBUZXN0cyI7CiAKKworZnVuY3Rpb24gdXBkYXRlSGlkZGVuUGxh
dGZvcm1zKCkKK3sKKyAgICB2YXIgaGlkZGVuUGxhdGZvcm1GYW1pbGllcyA9IHNldHRpbmdzLmdl
dE9iamVjdCgiaGlkZGVuUGxhdGZvcm1GYW1pbGllcyIpIHx8IFtdOworICAgIHZhciBwbGF0Zm9y
bVJvd3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0ci5wbGF0Zm9ybSIpOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcGxhdGZvcm1Sb3dzLmxlbmd0aDsgKytpKQorICAgICAgICBwbGF0
Zm9ybVJvd3NbaV0uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7CisKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGhpZGRlblBsYXRmb3JtRmFtaWxpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
dmFyIHBsYXRmb3JtRmFtaWx5ID0gaGlkZGVuUGxhdGZvcm1GYW1pbGllc1tpXTsKKyAgICAgICAg
Zm9yICh2YXIgaiA9IDA7IGogPCBwbGF0Zm9ybXNCeUZhbWlseVtwbGF0Zm9ybUZhbWlseV0ubGVu
Z3RoOyArK2opIHsKKyAgICAgICAgICAgIHZhciBuYW1lID0gcGxhdGZvcm1zQnlGYW1pbHlbcGxh
dGZvcm1GYW1pbHldW2pdOworICAgICAgICAgICAgdmFyIHBsYXRmb3JtUm93ID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigidHIucGxhdGZvcm0uIiArIG5hbWUpOworICAgICAgICAgICAgaWYgKHBs
YXRmb3JtUm93KQorICAgICAgICAgICAgICAgIHBsYXRmb3JtUm93LmNsYXNzTGlzdC5hZGQoImhp
ZGRlbiIpOworICAgICAgICB9CisgICAgfQorICAgIHNldHRpbmdzLnVwZGF0ZVRvZ2dsZUJ1dHRv
bnMoKTsKK30KKworCitmdW5jdGlvbiBpbml0UGxhdGZvcm1zQnlGYW1pbHkoKQoreworICAgIHZh
ciBwbGF0Zm9ybXMgPSBEYXNoYm9hcmQuc29ydGVkUGxhdGZvcm1zOworICAgIGZvciAodmFyIGkg
aW4gcGxhdGZvcm1zKSB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgcGxhdGZvcm0gd2lsbCBi
ZSBkaXNwbGF5ZWQgb24gdGhlIHBhZ2UgYmVmb3JlIGNvbnNpZGVyaW5nIGl0cyBwbGF0Zm9ybSBm
YW1pbHkuCisgICAgICAgIGlmICghY2F0ZWdvcml6ZWRRdWV1ZXNCeVBsYXRmb3JtQW5kQnVpbGRU
eXBlW3BsYXRmb3Jtc1tpXS5uYW1lXSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IHZhciBwbGF0Zm9ybUZhbWlseSA9IHNldHRpbmdzLnBhcnNlUGxhdGZvcm1GYW1pbHkocGxhdGZv
cm1zW2ldLm5hbWUpOworICAgICAgICBpZiAocGxhdGZvcm1zQnlGYW1pbHlbcGxhdGZvcm1GYW1p
bHldKQorICAgICAgICAgICAgcGxhdGZvcm1zQnlGYW1pbHlbcGxhdGZvcm1GYW1pbHldLnB1c2go
cGxhdGZvcm1zW2ldLm5hbWUpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBsYXRmb3Jtc0J5
RmFtaWx5W3BsYXRmb3JtRmFtaWx5XSA9IFtwbGF0Zm9ybXNbaV0ubmFtZV0KKyAgICB9Cit9CisK
IGZ1bmN0aW9uIHVuaGlkZGVuUXVldWVzKCkKIHsKICAgICB2YXIgaGlkZGVuUGxhdGZvcm1GYW1p
bGllcyA9IHNldHRpbmdzLmdldE9iamVjdCgiaGlkZGVuUGxhdGZvcm1GYW1pbGllcyIpIHx8IFtd
OwpAQCAtNzgsNyArMTE2LDcgQEAgZnVuY3Rpb24gdW5oaWRkZW5RdWV1ZXMoKQogICAgICAgICB2
YXIgYnVpbGRib3QgPSBidWlsZGJvdHNbaV07CiAgICAgICAgIGZvciAodmFyIGlkIGluIGJ1aWxk
Ym90LnF1ZXVlcykgewogICAgICAgICAgICAgdmFyIHF1ZXVlID0gYnVpbGRib3QucXVldWVzW2lk
XTsKLSAgICAgICAgICAgIGlmICgtMSA9PT0gaGlkZGVuUGxhdGZvcm1GYW1pbGllcy5pbmRleE9m
KHBhcnNlUGxhdGZvcm1GYW1pbHkocXVldWUucGxhdGZvcm0pKSkKKyAgICAgICAgICAgIGlmICgt
MSA9PT0gaGlkZGVuUGxhdGZvcm1GYW1pbGllcy5pbmRleE9mKHNldHRpbmdzLnBhcnNlUGxhdGZv
cm1GYW1pbHkocXVldWUucGxhdGZvcm0pKSkKICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChx
dWV1ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMDUsNiArMzQzLDMzIEBAIGZ1bmN0aW9uIGRv
Y3VtZW50UmVhZHkoKQogICAgICAgICBzZXR0aW5nc0J1dHRvbi5jbGFzc0xpc3QuYWRkKCJzZXR0
aW5ncyIpOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNldHRpbmdzQnV0dG9u
KTsKIAorICAgICAgICB2YXIgc2V0dGluZ3NXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgICAgIHNldHRpbmdzV3JhcHBlci5jbGFzc0xpc3QuYWRkKCJ1bmhpZGUi
LCAiaGlkZGVuIiwgInNldHRpbmdzV3JhcHBlciIpCisKKyAgICAgICAgdmFyIHBsYXRmb3JtRmFt
aWx5VG9nZ2xlV3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAg
ICBwbGF0Zm9ybUZhbWlseVRvZ2dsZVdyYXBwZXIuY2xhc3NMaXN0LmFkZCgidW5oaWRlIiwgImhp
ZGRlbiIsICJmYW1pbHlUb2dnbGVXcmFwcGVyIik7CisKKyAgICAgICAgdmFyIHVuaGlkZUFsbEJ1
dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICB1bmhpZGVBbGxC
dXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7IHNldHRpbmdzLmNs
ZWFySGlkZGVuUGxhdGZvcm1GYW1pbGllcygpOyB9KTsKKyAgICAgICAgdW5oaWRlQWxsQnV0dG9u
LmNsYXNzTGlzdC5hZGQoInVuaGlkZSIsICJoaWRkZW4iLCAicGxhdGZvcm1GYW1pbHlUb2dnbGVC
dXR0b24iKTsKKyAgICAgICAgdW5oaWRlQWxsQnV0dG9uLnNldEF0dHJpYnV0ZSgiaWQiLCAiYWxs
LXBsYXRmb3JtRmFtaWx5VG9nZ2xlQnV0dG9uIik7CisgICAgICAgIHVuaGlkZUFsbEJ1dHRvbi50
ZXh0Q29udGVudCA9ICJhbGwiOworICAgICAgICBwbGF0Zm9ybUZhbWlseVRvZ2dsZVdyYXBwZXIu
YXBwZW5kQ2hpbGQodW5oaWRlQWxsQnV0dG9uKTsKKworICAgICAgICBpbml0UGxhdGZvcm1zQnlG
YW1pbHkoKTsKKyAgICAgICAgZm9yICh2YXIgcGxhdGZvcm1GYW1pbHkgaW4gcGxhdGZvcm1zQnlG
YW1pbHkpIHsKKyAgICAgICAgICAgIHZhciBwbGF0Zm9ybUZhbWlseVRvZ2dsZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcGxhdGZvcm1GYW1pbHlUb2dnbGUu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
c2V0dGluZ3MudG9nZ2xlSGlkZGVuUGxhdGZvcm1GYW1pbHkodGhpcy50b1N0cmluZygpKTsKKyAg
ICAgICAgICAgIH0uYmluZChwbGF0Zm9ybUZhbWlseSkpOworICAgICAgICAgICAgcGxhdGZvcm1G
YW1pbHlUb2dnbGUuY2xhc3NMaXN0LmFkZCgidW5oaWRlIiwgImhpZGRlbiIsICJwbGF0Zm9ybUZh
bWlseVRvZ2dsZUJ1dHRvbiIpOworICAgICAgICAgICAgcGxhdGZvcm1GYW1pbHlUb2dnbGUuc2V0
QXR0cmlidXRlKCJpZCIsIHBsYXRmb3JtRmFtaWx5ICsgIi1wbGF0Zm9ybUZhbWlseVRvZ2dsZUJ1
dHRvbiIpOworICAgICAgICAgICAgcGxhdGZvcm1GYW1pbHlUb2dnbGUudGV4dENvbnRlbnQgPSBw
bGF0Zm9ybUZhbWlseTsKKyAgICAgICAgICAgIHBsYXRmb3JtRmFtaWx5VG9nZ2xlV3JhcHBlci5h
cHBlbmRDaGlsZChwbGF0Zm9ybUZhbWlseVRvZ2dsZSk7CisgICAgICAgIH0KKyAgICAgICAgc2V0
dGluZ3NXcmFwcGVyLmFwcGVuZENoaWxkKHBsYXRmb3JtRmFtaWx5VG9nZ2xlV3JhcHBlcik7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2V0dGluZ3NXcmFwcGVyKTsKKwogICAg
ICAgICB1cGRhdGVIaWRkZW5QbGF0Zm9ybXMoKTsKICAgICAgICAgc2V0dGluZ3MuYWRkU2V0dGlu
Z0xpc3RlbmVyKCJoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzIiwgdXBkYXRlSGlkZGVuUGxhdGZvcm1z
KTsKICAgICAgICAgc2V0dGluZ3MuYWRkU2V0dGluZ0xpc3RlbmVyKCJlbnRlcmVkU2V0dGluZ3Mi
LCBmdW5jdGlvbigpIHsgCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
ZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9RdWV1ZVZp
ZXcuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9RdWV1ZVZpZXcuanMKaW5kZXggNTg4MzA4NTZi
ZGFkZTQ3NTJkZjc5YjBkYmZlYmVhZjk4MDgzMTYyOS4uYjcxOTRhYTIwMjA4ZDhkMzlkYWQ2ZGIw
MTEyMjkzNWRkZjQwZjNhYiAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvUXVldWVW
aWV3LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29u
ZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1F1ZXVlVmlldy5qcwpAQCAtNjksNyAr
NjksNyBAQCBRdWV1ZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBoaWRkZW5QbGF0
Zm9ybUZhbWlsaWVzID0gc2V0dGluZ3MuZ2V0T2JqZWN0KCJoaWRkZW5QbGF0Zm9ybUZhbWlsaWVz
Iik7CiAgICAgICAgIHZhciB3YXNIaWRkZW4gPSAhdGhpcy51cGRhdGVUaW1lcjsKLSAgICAgICAg
dmFyIGlzSGlkZGVuID0gaGlkZGVuUGxhdGZvcm1GYW1pbGllcyAmJiBoaWRkZW5QbGF0Zm9ybUZh
bWlsaWVzLmNvbnRhaW5zKHBhcnNlUGxhdGZvcm1GYW1pbHkodGhpcy5wbGF0Zm9ybSkpOworICAg
ICAgICB2YXIgaXNIaWRkZW4gPSBoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzICYmIGhpZGRlblBsYXRm
b3JtRmFtaWxpZXMuY29udGFpbnMoc2V0dGluZ3MucGFyc2VQbGF0Zm9ybUZhbWlseSh0aGlzLnBs
YXRmb3JtKSk7CiAKICAgICAgICAgaWYgKHdhc0hpZGRlbiAmJiAhaXNIaWRkZW4pIHsKICAgICAg
ICAgICAgIHRoaXMuX3VwZGF0ZVF1ZXVlcygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Nj
cmlwdHMvU2V0dGluZ3MuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9TZXR0aW5ncy5qcwppbmRl
eCA3ZDYwZTJiM2RkNTFmMGIyYTYzZTRmZGI5ZmJjMDZhZmM5NmZkM2NkLi42NDNhYmRiZmNiYWMx
MWJmZDFkMzRkOGYzMWY0NTQyMWZjNjhmNTI5IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9TZXR0aW5ncy5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9TZXR0aW5ncy5qcwpA
QCAtODQsNiArODQsMTMgQEAgU2V0dGluZ3MucHJvdG90eXBlID0gewogICAgICAgICBkb2N1bWVu
dC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoInNldHRpbmdzLXZpc2libGUiKTsKICAgICB9LAogCisg
ICAgcGFyc2VQbGF0Zm9ybUZhbWlseTogZnVuY3Rpb24ocGxhdGZvcm1OYW1lKQorICAgIHsKKyAg
ICAgICAgaWYgKCFwbGF0Zm9ybU5hbWUpCisgICAgICAgICAgICByZXR1cm4gJyc7CisgICAgICAg
IHJldHVybiBwbGF0Zm9ybU5hbWUuc3Vic3RyKDAsIHBsYXRmb3JtTmFtZS5pbmRleE9mKCItIikp
OworICAgIH0sCisKICAgICB0b2dnbGVIaWRkZW5QbGF0Zm9ybUZhbWlseTogZnVuY3Rpb24ocGxh
dGZvcm1GYW1pbHkpCiAgICAgewogICAgICAgICB2YXIgaGlkZGVuUGxhdGZvcm1GYW1pbGllcyA9
IHRoaXMuZ2V0T2JqZWN0KCJoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzIikgfHwgW107CkBAIC0xMDIs
NCArMTA5LDIxIEBAIFNldHRpbmdzLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5zZXRPYmpl
Y3QoImhpZGRlblBsYXRmb3JtRmFtaWxpZXMiLCBbXSk7CiAgICAgICAgIHRoaXMuZmlyZVNldHRp
bmdMaXN0ZW5lcigiaGlkZGVuUGxhdGZvcm1GYW1pbGllcyIpOwogICAgIH0sCisKKyAgICB1cGRh
dGVUb2dnbGVCdXR0b25zOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgaGlkZGVuUGxh
dGZvcm1GYW1pbGllcyA9IHRoaXMuZ2V0T2JqZWN0KCJoaWRkZW5QbGF0Zm9ybUZhbWlsaWVzIikg
fHwgW107CisgICAgICAgIHZhciBoaWRkZW5GYW1pbHlCdXR0b25zID0geyJhbGwiOiBoaWRkZW5Q
bGF0Zm9ybUZhbWlsaWVzLmxlbmd0aCA+IDB9OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGhpZGRlblBsYXRmb3JtRmFtaWxpZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBoaWRkZW5G
YW1pbHlCdXR0b25zW2hpZGRlblBsYXRmb3JtRmFtaWxpZXNbaV1dID0gdHJ1ZTsKKworICAgICAg
ICB2YXIgcGxhdGZvcm1GYW1pbHlCdXR0b25zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZSgicGxhdGZvcm1GYW1pbHlUb2dnbGVCdXR0b24iKTsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBwbGF0Zm9ybUZhbWlseUJ1dHRvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAg
IHZhciBoaWRkZW5QbGF0Zm9ybUZhbWlseSA9IHRoaXMucGFyc2VQbGF0Zm9ybUZhbWlseShwbGF0
Zm9ybUZhbWlseUJ1dHRvbnNbaV0uaWQpOworICAgICAgICAgICAgaWYgKCFoaWRkZW5GYW1pbHlC
dXR0b25zW2hpZGRlblBsYXRmb3JtRmFtaWx5XSkKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybUZh
bWlseUJ1dHRvbnNbaV0uY2xhc3NMaXN0LmFkZCgiZmFtaWx5U2hvd24iKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybUZhbWlseUJ1dHRvbnNbaV0uY2xhc3NMaXN0
LnJlbW92ZSgiZmFtaWx5U2hvd24iKTsKKyAgICAgICAgfQorICAgIH0sCiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>