<?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>64446</bug_id>
          
          <creation_ts>2011-07-13 03:50:37 -0700</creation_ts>
          <short_desc>garden-o-matic should have a &quot;rebaseline&quot; button</short_desc>
          <delta_ts>2011-07-14 19:06:50 -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>New Bugs</component>
          <version>528+ (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>
          
          <blocked>64188</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>aroben</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>koz</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>436344</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-13 03:50:37 -0700</bug_when>
    <thetext>garden-o-matic should have a &quot;rebaseline&quot; button</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436345</commentid>
    <comment_count>1</comment_count>
      <attachid>100651</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-13 03:51:13 -0700</bug_when>
    <thetext>Created attachment 100651
work-in-progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436346</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-13 03:51:27 -0700</bug_when>
    <thetext>Needs tests.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436955</commentid>
    <comment_count>3</comment_count>
      <attachid>100774</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-13 23:44:04 -0700</bug_when>
    <thetext>Created attachment 100774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436956</commentid>
    <comment_count>4</comment_count>
      <attachid>100775</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-13 23:44:29 -0700</bug_when>
    <thetext>Created attachment 100775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436971</commentid>
    <comment_count>5</comment_count>
      <attachid>100775</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-14 00:21:09 -0700</bug_when>
    <thetext>Comment on attachment 100775
Patch

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

&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:106
&gt; +        fs = self._tool.filesystem
&gt; +        fs.maybe_make_directory(fs.dirname(target_baseline))
&gt; +        fs.write_binary_file(target_baseline, data)

Eh.  I think filesystem is strictly superior to &quot;fs&quot;

&gt; Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:134
&gt; +        case IMAGE:
&gt; +            return [&apos;png&apos;];
&gt; +        case TEXT:
&gt; +            return [&apos;txt&apos;];
&gt; +        case IMAGE_TEXT:
&gt; +            return [&apos;txt&apos;, &apos;png&apos;];
&gt; +        default:
&gt; +            // FIXME: Add support for the rest of the result types.
&gt; +            // &apos;-expected.html&apos;,
&gt; +            // &apos;-expected-mismatch.html&apos;,
&gt; +            // &apos;-expected.wav&apos;,
&gt; +            // &apos;-actual.wav&apos;,
&gt; +            // ... and possibly more.
&gt; +            return [];

WebKit c++ does not indent case statements.  Seems we should match in JS, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437111</commentid>
    <comment_count>6</comment_count>
      <attachid>100813</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-14 08:56:37 -0700</bug_when>
    <thetext>Created attachment 100813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437120</commentid>
    <comment_count>7</comment_count>
      <attachid>100813</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-07-14 09:18:26 -0700</bug_when>
    <thetext>Comment on attachment 100813
Patch

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

&gt; Tools/ChangeLog:17
&gt; +        2) The baselines are not optimized for redundancy (meaning you can have
&gt; +           identical baselines in both chromium-mac and chromium-win).

Koz is a checkin or two away from having a tool that does this. Then this could use that? We should see if he&apos;d be willing to prioritize getting this done.

&gt; Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/index.html:23
&gt; +  &lt;div class=&quot;toolbar&quot;&gt;
&gt; +    &lt;div class=&quot;actions&quot;&gt;
&gt; +      &lt;a class=&quot;rebaseline&quot; href=&quot;#&quot;&gt;Rebaseline&lt;/a&gt;
&gt; +      &lt;a class=&quot;dismiss&quot; href=&quot;#&quot;&gt;Close&lt;/a&gt;
&gt; +    &lt;/div&gt;
&gt; +    &lt;div class=&quot;status&quot;&gt;&lt;/div&gt;
&gt; +  &lt;/div&gt;
&gt; +  &lt;div class=&quot;content&quot;&gt;&lt;/div&gt;

indentation is off here. also, shouldn&apos;t these be 4 space indents? i realize we don&apos;t have a firm style here, but may as well be consistent on indentation size.

&gt; Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:126
&gt; +        return [&apos;png&apos;];
&gt; +    case TEXT:
&gt; +        return [&apos;txt&apos;];
&gt; +    case IMAGE_TEXT:
&gt; +        return [&apos;txt&apos;, &apos;png&apos;];

These strings should be constants IMO.

&gt; Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:144
&gt; +    for (var i= 0; i &lt; failureTypeList.length; ++i) {
&gt; +        if (results.failureTypeToExtensionList(failureTypeList[i]).length &gt; 0)
&gt; +            return true;
&gt; +    }
&gt; +    return false;

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some

return failureTypeList.some(function(element) {
    return results.failureTypeToExtensionList(failureTypeList[i]).length &gt; 0;
});</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437182</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-14 10:38:20 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 100813 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100813&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:17
&gt; &gt; +        2) The baselines are not optimized for redundancy (meaning you can have
&gt; &gt; +           identical baselines in both chromium-mac and chromium-win).
&gt; 
&gt; Koz is a checkin or two away from having a tool that does this. Then this could use that? We should see if he&apos;d be willing to prioritize getting this done.

That would be great.  I haven&apos;t seen any action on that front in a while.  Is he still working on this?

&gt; &gt; Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/index.html:23
&gt; &gt; +  &lt;div class=&quot;toolbar&quot;&gt;
&gt; &gt; +    &lt;div class=&quot;actions&quot;&gt;
&gt; &gt; +      &lt;a class=&quot;rebaseline&quot; href=&quot;#&quot;&gt;Rebaseline&lt;/a&gt;
&gt; &gt; +      &lt;a class=&quot;dismiss&quot; href=&quot;#&quot;&gt;Close&lt;/a&gt;
&gt; &gt; +    &lt;/div&gt;
&gt; &gt; +    &lt;div class=&quot;status&quot;&gt;&lt;/div&gt;
&gt; &gt; +  &lt;/div&gt;
&gt; &gt; +  &lt;div class=&quot;content&quot;&gt;&lt;/div&gt;
&gt; 
&gt; indentation is off here. also, shouldn&apos;t these be 4 space indents? i realize we don&apos;t have a firm style here, but may as well be consistent on indentation size.

Sure.

&gt; &gt; Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:126
&gt; &gt; +        return [&apos;png&apos;];
&gt; &gt; +    case TEXT:
&gt; &gt; +        return [&apos;txt&apos;];
&gt; &gt; +    case IMAGE_TEXT:
&gt; &gt; +        return [&apos;txt&apos;, &apos;png&apos;];
&gt; 
&gt; These strings should be constants IMO.

kk.

&gt; &gt; Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:144
&gt; &gt; +    for (var i= 0; i &lt; failureTypeList.length; ++i) {
&gt; &gt; +        if (results.failureTypeToExtensionList(failureTypeList[i]).length &gt; 0)
&gt; &gt; +            return true;
&gt; &gt; +    }
&gt; &gt; +    return false;
&gt; 
&gt; https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some
&gt; 
&gt; return failureTypeList.some(function(element) {
&gt;     return results.failureTypeToExtensionList(failureTypeList[i]).length &gt; 0;
&gt; });

Yay!  That&apos;s way more awesome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437471</commentid>
    <comment_count>9</comment_count>
      <attachid>100912</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-14 18:53:58 -0700</bug_when>
    <thetext>Created attachment 100912
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437477</commentid>
    <comment_count>10</comment_count>
      <attachid>100912</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-14 19:06:45 -0700</bug_when>
    <thetext>Comment on attachment 100912
Patch for landing

Clearing flags on attachment: 100912

Committed r91042: &lt;http://trac.webkit.org/changeset/91042&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437478</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-14 19:06:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100651</attachid>
            <date>2011-07-13 03:51:13 -0700</date>
            <delta_ts>2011-07-13 23:44:00 -0700</delta_ts>
            <desc>work-in-progress</desc>
            <filename>bug-64446-20110713035112.patch</filename>
            <type>text/plain</type>
            <size>9588</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4ODEKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5YWJhMjNhMDFmZTNhMzdiYjg1YTIwNzAyNGRiM2ZhNGVi
MDA3NjEyLi5lYmQyMTBhYmZjMGVhNzcyYWRiYmQ5YzE5ZmU2OGJlMDFmNDhhMGNmIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTgg
QEAKIDIwMTEtMDctMTMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgaGF2ZSBhICJyZWJhc2VsaW5lIiBidXR0b24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NDQ2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jaGVja291dC5qczoKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9p
bmRleC5odG1sOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEv
Z2FyZGVuaW5nc2VydmVyL21haW4uY3NzOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uanM6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qczoK
KworMjAxMS0wNy0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAg
IFJlbW92ZSAiRGlzbWlzcyIgYnV0dG9uIGZyb20gZ2FyZGVuLW8tbWF0aWMgYnV0dGVyYmFyCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ0MwogCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRl
bmluZ3NlcnZlci9jaGVja291dC5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzCmluZGV4IGJkZWZiMWQyY2JlNjdj
MWUxODY4OGRmMTBkOGU5MWE5M2M1YWQzYjUuLjI4NjRiZWYzOTA1MGJhMDYzMzQ0ZTNjYTY0NTA4
ODc5OWY4YmY3ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzCkBA
IC0yOCw0ICsyOCwyNyBAQCBjaGVja291dC5leGlzdHNBdFJldmlzaW9uID0gZnVuY3Rpb24gKHN1
YnZlcnNpb25VUkwsIHJldmlzaW9uLCBjYWxsYmFjaykKICAgICB9KTsKIH07CiAKK2NoZWNrb3V0
LnJlYmFzZWxpbmUgPSBmdW5jdGlvbihidWlsZGVyTmFtZSwgdGVzdE5hbWUsIGZhaWx1cmVUeXBl
TGlzdCwgY2FsbGJhY2spCit7CisgICAgdmFyIGV4dGVuc2lvbkxpc3QgPSBbXTsKKworICAgICQu
ZWFjaChmYWlsdXJlVHlwZVRvU3VmZml4LCBmdW5jdGlvbihpbmRleCwgZmFpbHVyZVR5cGUpIHsK
KyAgICAgICAgZXh0ZW5zaW9uTGlzdCA9IHN1ZmZpeExpc3QuY29uY2F0KHJlc3VsdHMuZmFpbHVy
ZVR5cGVUb0V4dGVuc2lvbkxpc3QoZmFpbHVyZVR5cGUpKTsKKyAgICB9KTsKKworICAgIHZhciBy
ZXF1ZXN0c0luRmxpZ2h0ID0gZXh0ZW5zaW9uTGlzdC5sZW5ndGg7CisgICAgJC5lYWNoKGV4dGVu
c2lvbkxpc3QsIGZ1bmN0aW9uKGluZGV4LCBleHRlbnNpb24pIHsKKyAgICAgICAgJC5wb3N0KCcv
cmViYXNlbGluZT8nICsgJC5wYXJhbSh7CisgICAgICAgICAgICAnYnVpbGRlcic6IGJ1aWxkZXJO
YW1lLAorICAgICAgICAgICAgJ3Rlc3QnOiB0ZXN0TmFtZSwKKyAgICAgICAgICAgIC8vIEZJWE1F
OiBSZW5hbWUgInN1ZmZpeCIgcXVlcnkgcGFyYW1ldGVyIHRvICJleHRlbnNpb24iLgorICAgICAg
ICAgICAgJ3N1ZmZpeCc6IGV4dGVuc2lvbgorICAgICAgICB9KSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAtLXJlcXVlc3RzSW5GbGlnaHQ7CisgICAgICAgICAgICBpZiAoIXJlcXVlc3RzSW5G
bGlnaHQpCisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSk7CisgICAgfSk7
Cit9OworCiB9KSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvaW5kZXguaHRtbCBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwKaW5kZXgg
M2FkM2FkZDI3YTExYTRkYmUyZGU0NGEwZGMwOWNjNjE2OThkNTkxOS4uYjc2ZGI0MWJmNDYwZTQ5
ODJhMGExMzJmMDg1OTIzNzdkODdiMmY0MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvaW5kZXguaHRtbAorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9p
bmRleC5odG1sCkBAIC0xMyw3ICsxMywxMyBAQAogPGRpdiBjbGFzcz0iYnV0dGVyYmFyIj48c3Bh
biBjbGFzcz0ic3RhdHVzIj5Mb2FkaW5nLi4uPC9zcGFuPjwvZGl2PgogPGRpdiBjbGFzcz0icmVz
dWx0cyI+PC9kaXY+CiA8ZGl2IGNsYXNzPSJyZXN1bHRzLWRldGFpbCI+Ci08ZGl2IGNsYXNzPSJ0
b29sYmFyIj48c3BhbiBjbGFzcz0ic3RhdHVzIj48L3NwYW4+IDxhIGNsYXNzPSJkaXNtaXNzIiBo
cmVmPSIjIj5DbG9zZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJjb250ZW50Ij48L2Rpdj48L2Rpdj4K
KyAgPGRpdiBjbGFzcz0idG9vbGJhciI+CisgICAgPHNwYW4gY2xhc3M9InN0YXR1cyI+PC9zcGFu
PgorICAgIDxhIGNsYXNzPSJhY3Rpb24gZGlzbWlzcyIgaHJlZj0iIyI+Q2xvc2U8L2E+CisgICAg
PGEgY2xhc3M9ImFjdGlvbiByZWJhc2VsaW5lIiBocmVmPSIjIj5SZWJhc2VsaW5lPC9hPgorICA8
L2Rpdj4KKyAgPGRpdiBjbGFzcz0iY29udGVudCI+PC9kaXY+CisgPC9kaXY+CiA8c2NyaXB0IHNy
Yz0iaHR0cHM6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMS40LjIvanF1
ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+IAogPHNjcmlwdCBzcmM9ImNvbmZpZy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iYmFzZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVy
L21haW4uY3NzCmluZGV4IDlhZWE1MGI3NGQ0NjYwZDNiNWRmZDFhNWUwZGUxZjJiOTA4ZWU0YWYu
LjI4YzA1MGU4MzhlMWFjODFjMjdkMzA3OTY4NWFkNTJkMDU1NWNhN2UgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21h
aW4uY3NzCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2Fy
ZGVuaW5nc2VydmVyL21haW4uY3NzCkBAIC0xNzIsNyArMTcyLDcgQEAgdGQ6bGFzdC1vZi10eXBl
IHsKICAgICBwYWRkaW5nOiA1cHg7CiB9CiAKLS5yZXN1bHRzLWRldGFpbCAudG9vbGJhciAuZGlz
bWlzcyB7CisucmVzdWx0cy1kZXRhaWwgLnRvb2xiYXIgLmFjdGlvbiB7CiAgICAgZmxvYXQ6IHJp
Z2h0OwogICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICBwYWRkaW5nOiA1cHg7CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmlu
Z3NlcnZlci9tYWluLmpzIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0
YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qcwppbmRleCA1OTU0N2IzNjBkZDE3NzVjNDkwYmU3Y2Rl
NjhjODU5OWE2Njc2MTk3Li4xY2ZjZWZlODdkZDcyMWYyNTg0ODk0MzI5MGQ4M2YxNWFlNjU4MWZl
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dh
cmRlbmluZ3NlcnZlci9tYWluLmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
ZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uanMKQEAgLTE3LDcgKzE3LDcgQEAgZnVu
Y3Rpb24gc2V0SWNvblN0YXRlKGhhc0ZhaWx1cmVzKQogICAgICQoJyNmYXZpY29uJykuYXR0cign
aHJlZicsIGZhdmljb25VUkwpOwogfQogCi1mdW5jdGlvbiBmZXRjaFJlc3VsdHMob25zdWNjZXNz
KQorZnVuY3Rpb24gc2hvd1Jlc3VsdHMob25zdWNjZXNzKQogewogICAgIHJlc3VsdHMuZmV0Y2hS
ZXN1bHRzQnlCdWlsZGVyKGNvbmZpZy5idWlsZGVycywgZnVuY3Rpb24ocmVzdWx0c0J5QnVpbGRl
cikgewogICAgICAgICB2YXIgdW5leHBlY3RlZEZhaWx1cmVzID0gcmVzdWx0cy51bmV4cGVjdGVk
RmFpbHVyZXNCeVRlc3QocmVzdWx0c0J5QnVpbGRlcik7CkBAIC01OSwxMCArNTksMTUgQEAgZnVu
Y3Rpb24gc2hvd1Jlc3VsdHNEZXRhaWwoKQogICAgIHZhciB0ZXN0QmxvY2sgPSAkKHRoaXMpLnBh
cmVudHMoJy50ZXN0Jyk7CiAgICAgdmFyIGJ1aWxkZXJOYW1lID0gJCh0aGlzKS5hdHRyKGNvbmZp
Zy5rQnVpbGRlck5hbWVBdHRyKTsKICAgICB2YXIgdGVzdE5hbWUgPSAkKCcud2hhdCcsIHRlc3RC
bG9jaykudGV4dCgpOwotICAgIHZhciBmYWlsdXJlVHlwZUxpc3QgPSB0ZXN0QmxvY2suYXR0cihj
b25maWcua0ZhaWx1cmVUeXBlc0F0dHIpLnNwbGl0KCcgJyk7CisKKyAgICAvLyBGSVhNRTogSXQn
cyBsYW1lIHRoYXQgd2UgaGF2ZSB0d28gZGlmZmVyZW50IHJlcHJlc2VudGF0aW9ucyBvZiBtdWx0
aXBsZSBmYWlsdXJlIHR5cGVzLgorICAgIHZhciBmYWlsdXJlVHlwZXMgPSB0ZXN0QmxvY2suYXR0
cihjb25maWcua0ZhaWx1cmVUeXBlc0F0dHIpOworICAgIHZhciBmYWlsdXJlVHlwZUxpc3QgPSBm
YWlsdXJlVHlwZXMuc3BsaXQoJyAnKTsKIAogICAgIHZhciBjb250ZW50ID0gJCgnLnJlc3VsdHMt
ZGV0YWlsIC5jb250ZW50Jyk7Ci0gICAgaWYgKCQoJy5yZXN1bHRzJywgY29udGVudCkuYXR0cihj
b25maWcua0J1aWxkZXJOYW1lQXR0cikgPT0gYnVpbGRlck5hbWUgJiYgJCgnLnJlc3VsdHMnLCBj
b250ZW50KS5hdHRyKGNvbmZpZy5rVGVzdE5hbWVBdHRyKSA9PSB0ZXN0TmFtZSkKKyAgICBpZiAo
JCgnLmZhaWx1cmUtZGV0YWlscycsIGNvbnRlbnQpLmF0dHIoY29uZmlnLmtCdWlsZGVyTmFtZUF0
dHIpID09IGJ1aWxkZXJOYW1lICYmCisgICAgICAgICQoJy5mYWlsdXJlLWRldGFpbHMnLCBjb250
ZW50KS5hdHRyKGNvbmZpZy5rVGVzdE5hbWVBdHRyKSA9PSB0ZXN0TmFtZSAmJgorICAgICAgICAk
KCcuZmFpbHVyZS1kZXRhaWxzJywgY29udGVudCkuYXR0cihjb25maWcua0ZhaWx1cmVUeXBlc0F0
dHIpID09IGZhaWx1cmVUeXBlcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgZGlzcGxheU9uQnV0
dGVyYmFyKCdMb2FkaW5nLi4uJyk7CkBAIC03MCwxMSArNzUsMTQgQEAgZnVuY3Rpb24gc2hvd1Jl
c3VsdHNEZXRhaWwoKQogICAgIHJlc3VsdHMuZmV0Y2hSZXN1bHRzVVJMcyhidWlsZGVyTmFtZSwg
dGVzdE5hbWUsIGZhaWx1cmVUeXBlTGlzdCwgZnVuY3Rpb24ocmVzdWx0c1VSTHMpIHsKICAgICAg
ICAgdmFyIHN0YXR1cyA9ICQoJy5yZXN1bHRzLWRldGFpbCAudG9vbGJhciAuc3RhdHVzJyk7CiAK
LSAgICAgICAgZnVuY3Rpb24gYXBwZW5kUmVzdWx0cygpIHsKKyAgICAgICAgZnVuY3Rpb24gdXBk
YXRlUmVzdWx0cygpCisgICAgICAgIHsKICAgICAgICAgICAgIHN0YXR1cy50ZXh0KHRlc3ROYW1l
ICsgJyBbJyArIGJ1aWxkZXJOYW1lICsgJ10nKTsKKyAgICAgICAgICAgIGNvbnRlbnQuZW1wdHko
KTsKICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHVpLmZhaWx1cmVEZXRhaWxzKHJlc3VsdHNV
UkxzKSk7Ci0gICAgICAgICAgICAkKCcucmVzdWx0cycsIGNvbnRlbnQpLmF0dHIoY29uZmlnLmtC
dWlsZGVyTmFtZUF0dHIsIGJ1aWxkZXJOYW1lKTsKLSAgICAgICAgICAgICQoJy5yZXN1bHRzJywg
Y29udGVudCkuYXR0cihjb25maWcua1Rlc3ROYW1lQXR0ciwgdGVzdE5hbWUpOworICAgICAgICAg
ICAgJCgnLmZhaWx1cmUtZGV0YWlscycsIGNvbnRlbnQpLmF0dHIoY29uZmlnLmtCdWlsZGVyTmFt
ZUF0dHIsIGJ1aWxkZXJOYW1lKTsKKyAgICAgICAgICAgICQoJy5mYWlsdXJlLWRldGFpbHMnLCBj
b250ZW50KS5hdHRyKGNvbmZpZy5rVGVzdE5hbWVBdHRyLCB0ZXN0TmFtZSk7CisgICAgICAgICAg
ICAkKCcuZmFpbHVyZS1kZXRhaWxzJywgY29udGVudCkuYXR0cihjb25maWcua0ZhaWx1cmVUeXBl
c0F0dHIsIGZhaWx1cmVUeXBlcyk7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgY2hpbGRyZW4g
PSAkKGNvbnRlbnQpLmNoaWxkcmVuKCk7CkBAIC04MiwxMyArOTAsMTIgQEAgZnVuY3Rpb24gc2hv
d1Jlc3VsdHNEZXRhaWwoKQogICAgICAgICAgICAgLy8gVGhlIHJlc3VsdHMtZGV0YWlsIHBhbmUg
aXMgYWxyZWFkeSBvcGVuLiBMZXQncyBkbyBhIHF1aWNrIGNyb3NzLWZhZGUuCiAgICAgICAgICAg
ICBzdGF0dXMuZmFkZU91dCgnZmFzdCcpOwogICAgICAgICAgICAgY2hpbGRyZW4uZmFkZU91dCgn
ZmFzdCcsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGNvbnRlbnQuZW1wdHkoKTsKLSAg
ICAgICAgICAgICAgICBhcHBlbmRSZXN1bHRzKCk7CisgICAgICAgICAgICAgICAgdXBkYXRlUmVz
dWx0cygpOwogICAgICAgICAgICAgICAgIHN0YXR1cy5mYWRlSW4oJ2Zhc3QnKTsKICAgICAgICAg
ICAgICAgICAkKGNvbnRlbnQpLmNoaWxkcmVuKCkuaGlkZSgpLmZhZGVJbignZmFzdCcsIGRpc21p
c3NCdXR0ZXJiYXIpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBhcHBlbmRSZXN1bHRzKCk7CisgICAgICAgICAgICB1cGRhdGVSZXN1bHRzKCk7CiAgICAg
ICAgICAgICAkKCcucmVzdWx0cy1kZXRhaWwnKS5mYWRlSW4oJ2Zhc3QnLCBkaXNtaXNzQnV0dGVy
YmFyKTsKICAgICAgICAgfQogICAgIH0pOwpAQCAtMTAxLDExICsxMDgsMjUgQEAgZnVuY3Rpb24g
aGlkZVJlc3VsdHNEZXRhaWwoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiByZWJhc2VsaW5lUmVz
dWx0cygpCit7CisgICAgdmFyIGZhaWx1cmVEZXRhaWxzID0gJCgnLmZhaWx1cmUtZGV0YWlscycs
ICQodGhpcykucGFyZW50cygnLnJlc3VsdHMtZGV0YWlsJykpOworCisgICAgdmFyIGJ1aWxkZXJO
YW1lID0gZmFpbHVyZURldGFpbHMuYXR0cihjb25maWcua0J1aWxkZXJOYW1lQXR0cik7CisgICAg
dmFyIHRlc3ROYW1lID0gZmFpbHVyZURldGFpbHMuYXR0cihjb25maWcua1Rlc3ROYW1lQXR0cik7
CisgICAgdmFyIGZhaWx1cmVUeXBlcyA9IGZhaWx1cmVEZXRhaWxzLmF0dHIoY29uZmlnLmtGYWls
dXJlVHlwZXNBdHRyKTsKKyAgICB2YXIgZmFpbHVyZVR5cGVMaXN0ID0gZmFpbHVyZVR5cGVzLnNw
bGl0KCcgJyk7CisKKyAgICBkaXNwbGF5T25CdXR0ZXJiYXIoJ1JlYmFzZWxpbmluZy4uLicpOwor
ICAgIGNoZWNrb3V0LnJlYmFzZWxpbmUoYnVpbGRlck5hbWUsIHRlc3ROYW1lLCBmYWlsdXJlVHlw
ZUxpc3QsIGRpc21pc3NCdXR0ZXJiYXIpOworfQorCiAkKCcucmVncmVzc2lvbiAud2hlcmUgbGkn
KS5saXZlKCdtb3VzZWVudGVyJywgc2hvd1Jlc3VsdHNEZXRhaWwpOwogJCgnLnJlc3VsdHMtZGV0
YWlsIC5kaXNtaXNzJykubGl2ZSgnY2xpY2snLCBoaWRlUmVzdWx0c0RldGFpbCk7CiskKCcucmVz
dWx0cy1kZXRhaWwgLnJlYmFzZWxpbmUnKS5saXZlKCdjbGljaycsIHJlYmFzZWxpbmVSZXN1bHRz
KTsKIAogJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7Ci0gICAgZmV0Y2hSZXN1bHRzKGZ1
bmN0aW9uKCkgeworICAgIHNob3dSZXN1bHRzKGZ1bmN0aW9uKCkgewogICAgICAgICAkKCcuYnV0
dGVyYmFyJykuZmFkZU91dCgpOwogICAgIH0pOwogfSk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpz
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2
ZXIvcmVzdWx0cy5qcwppbmRleCAxMzRjYTU4ZTBiOTVkZjkyOWQzZDJhN2I5OTZhMWQ4OTRmMWY2
ZGVmLi45MTc3ZTVjN2IwZTgwNzJjM2YxMjljNTUzYTM4MGYyNWRkMTk5NmM3IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9yZXN1bHRzLmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2Rh
dGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHMuanMKQEAgLTExNSw2ICsxMTUsMjcgQEAgZnVuY3Rp
b24gcG9zc2libGVTdWZmaXhMaXN0Rm9yKGZhaWx1cmVUeXBlTGlzdCkKICAgICByZXR1cm4gc3Vm
Zml4TGlzdDsKIH0KIAorcmVzdWx0cy5mYWlsdXJlVHlwZVRvRXh0ZW5zaW9uTGlzdCA9IGZ1bmN0
aW9uKGZhaWx1cmVUeXBlKQoreworICAgIHN3aXRjaChmYWlsdXJlVHlwZSkgeworICAgICAgICBj
YXNlIElNQUdFOgorICAgICAgICAgICAgcmV0dXJuIFsncG5nJ10KKyAgICAgICAgY2FzZSBURVhU
OgorICAgICAgICAgICAgcmV0dXJuIFsndHh0J10KKyAgICAgICAgY2FzZSBJTUFHRV9URVhUOgor
ICAgICAgICAgICAgcmV0dXJuIFsndHh0JywgJ3BuZyddCisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHRoZSByZXN0IG9mIHRoZSByZXN1bHQg
dHlwZXMuCisgICAgICAgICAgICAvLyAnLWV4cGVjdGVkLmh0bWwnLAorICAgICAgICAgICAgLy8g
Jy1leHBlY3RlZC1taXNtYXRjaC5odG1sJywKKyAgICAgICAgICAgIC8vICctZXhwZWN0ZWQud2F2
JywKKyAgICAgICAgICAgIC8vICctYWN0dWFsLndhdicsCisgICAgICAgICAgICAvLyAuLi4gYW5k
IHBvc3NpYmx5IG1vcmUuCisgICAgICAgIHJldHVybiBbXQorICAgIH0KK30KKworCiBmdW5jdGlv
biByZXN1bHRzU3VtbWFyeVVSTChidWlsZGVyTmFtZSwgdGVzdE5hbWUpCiB7CiAgICAgcmV0dXJu
IGtUZXN0UmVzdWx0c1F1ZXJ5ICsgJC5wYXJhbShyZXN1bHRzUGFyYW1ldGVycyhidWlsZGVyTmFt
ZSwgdGVzdE5hbWUpKTsKQEAgLTQyOSw2ICs0NTAsMTEgQEAgcmVzdWx0cy5mZXRjaFJlc3VsdHNV
UkxzID0gZnVuY3Rpb24oYnVpbGRlck5hbWUsIHRlc3ROYW1lLCBmYWlsdXJlVHlwZUxpc3QsIGNh
bGwKICAgICB2YXIgcmVzdWx0VVJMcyA9IFtdOwogICAgIHZhciByZXF1ZXN0c0luRmxpZ2h0ID0g
c3VmZml4TGlzdC5sZW5ndGg7CiAKKyAgICBpZiAoIXJlcXVlc3RzSW5GbGlnaHQpIHsKKyAgICAg
ICAgY2FsbGJhY2socmVzdWx0VVJMcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBm
dW5jdGlvbiBjaGVja0NvbXBsZXRlKCkKICAgICB7CiAgICAgICAgIGlmICgtLXJlcXVlc3RzSW5G
bGlnaHQgPT0gMCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100774</attachid>
            <date>2011-07-13 23:44:04 -0700</date>
            <delta_ts>2011-07-13 23:44:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64446-20110713234403.patch</filename>
            <type>text/plain</type>
            <size>10691</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA5NzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMjY5NTEwMzk1NTc2YmQxMTBjODZmNTc0YmQ2N2UwNWM2
ZjUyNGJjLi5mN2IyMTMwZDM2NGNiNWFkYTM0MTM0NTc1OWU0NzFhYzJjOGI3Y2ExIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzkg
QEAKIDIwMTEtMDctMTMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgaGF2ZSBhICJyZWJhc2VsaW5lIiBidXR0b24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NDQ2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRz
IGEgYmFzaWMgUmViYXNlbGluZSBidXR0b24gdGhhdCBjb3BpZXMgdGhlIGJhc2VsaW5lcworICAg
ICAgICBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdHMgcGFuZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSBk
aXJlY3RvcnkgaW4geW91cgorICAgICAgICB3b3JraW5nIGNvcHkuCisKKyAgICAgICAgVGhlcmUg
YXJlIHR3byBtYWluIGxpbWl0YXRpb25zOgorCisgICAgICAgIDEpIFRoZXJlIGlzIG5vIFVJIGZv
ciBhY3R1YWxseSBjb21taXR0aW5nIHRoZSBiYXNlbGluZXMuCisKKyAgICAgICAgMikgVGhlIGJh
c2VsaW5lcyBhcmUgbm90IG9wdGltaXplZCBmb3IgcmVkdW5kYW5jeSAobWVhbmluZyB5b3UgY2Fu
IGhhdmUKKyAgICAgICAgICAgaWRlbnRpY2FsIGJhc2VsaW5lcyBpbiBib3RoIGNocm9taXVtLW1h
YyBhbmQgY2hyb21pdW0td2luKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9yZWJhc2VsaW5lLnB5OgorICAgICAgICAgICAgLSBUdXJucyBvdXQgd2UgbmVlZCB0
byBjcmVhdGUgdGhlIGRpcmVjdG9yeSBmb3IgdGhlIGJhc2VsaW5lIGlmIGl0IGRvZXNuJ3QgZXhp
c3QgeWV0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2Fy
ZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzOgorICAgICAgICAgICAgLSBBZGQgYW4gcHJvZ3JhbWF0
aWMgQVBJIHRvIGNhbGwgdGhlIHNlcnZlci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5odG1sOgorICAgICAgICAgICAg
LSBBZGQgdGhlIHJlYmFzZWxpbmUgYnV0dG9uIGl0c2VsZi4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzczoKKyAgICAg
ICAgICAgIC0gQ2hhbmdlIHRoZSBDU1Mgc28gdGhhdCB0aGUgUmViYXNlbGluZSBhbmQgQ2xvc2Ug
YnV0dG9ucyBjYW4KKyAgICAgICAgICAgICAgYXBwZWFyIGluIHRoZSBub3JtYWwgb3JkZXIgaW4g
dGhlIERPTS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dh
cmRlbmluZ3NlcnZlci9tYWluLmpzOgorICAgICAgICAgICAgLSBCaW5kIHRoZSBldmVudCBhbmQg
dHJhbnNsYXRlIHRoZSBwYXJhbWV0ZXJzLgorICAgICAgICAgICAgLSBIaWRlL3Nob3cgdGhlIHJl
YmFzZWxpbmUgYnV0dG9uLCBhcyBhcHByb3ByaWF0ZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzOgorICAgICAg
ICAgICAgLSBBZGQgc29tZSBoZWxwZnVsIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRp
bmcgZmFpbHVyZSB0eXBlcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5qczoKKworMjAxMS0wNy0x
MyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIGdhcmRlbi1vLW1h
dGljIHJlc3VsdHMgcGFuZSBzaG91bGQgYmUgbW9yZSBkaXNjb3ZlcmFibGUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTEzCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKaW5kZXggZTVj
NThiZjhiOGQ1YmE0NjU5NzM1YWU5NjgxYzlhZWY3YmI5NmMyNi4uNjZhYzY5MGFhZTkxMjVhNDI4
NGE0MGEyMDNhNTE5MDBhNzQzMjMwNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKQEAgLTEwMSw3ICsxMDEsOSBAQCBjbGFzcyBS
ZWJhc2VsaW5lVGVzdChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgICAgIHJldHVy
biBwb3J0LmJhc2VsaW5lX3BhdGgoKQogCiAgICAgZGVmIF9zYXZlX2Jhc2VsaW5lKHNlbGYsIGRh
dGEsIHRhcmdldF9iYXNlbGluZSk6Ci0gICAgICAgIHNlbGYuX3Rvb2wuZmlsZXN5c3RlbS53cml0
ZV9iaW5hcnlfZmlsZSh0YXJnZXRfYmFzZWxpbmUsIGRhdGEpCisgICAgICAgIGZzID0gc2VsZi5f
dG9vbC5maWxlc3lzdGVtCisgICAgICAgIGZzLm1heWJlX21ha2VfZGlyZWN0b3J5KGZzLmRpcm5h
bWUodGFyZ2V0X2Jhc2VsaW5lKSkKKyAgICAgICAgZnMud3JpdGVfYmluYXJ5X2ZpbGUodGFyZ2V0
X2Jhc2VsaW5lLCBkYXRhKQogICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC5zY20oKS5leGlzdHMo
dGFyZ2V0X2Jhc2VsaW5lKToKICAgICAgICAgICAgIHNlbGYuX3Rvb2wuc2NtKCkuYWRkKHRhcmdl
dF9iYXNlbGluZSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvY2hlY2tvdXQuanMgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jaGVja291dC5qcwppbmRl
eCBiZGVmYjFkMmNiZTY3YzFlMTg2ODhkZjEwZDhlOTFhOTNjNWFkM2I1Li4xNDM0NzVlNWVjNTY1
ODc3NWM3ZTc5YzljZjhhMWFmM2U3NWNiYTY2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jaGVja291dC5qcworKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9jaGVja291dC5qcwpAQCAtMjgsNCArMjgsMzEgQEAgY2hlY2tvdXQuZXhpc3RzQXRSZXZpc2lv
biA9IGZ1bmN0aW9uIChzdWJ2ZXJzaW9uVVJMLCByZXZpc2lvbiwgY2FsbGJhY2spCiAgICAgfSk7
CiB9OwogCitjaGVja291dC5yZWJhc2VsaW5lID0gZnVuY3Rpb24oYnVpbGRlck5hbWUsIHRlc3RO
YW1lLCBmYWlsdXJlVHlwZUxpc3QsIGNhbGxiYWNrKQoreworICAgIHZhciBleHRlbnNpb25MaXN0
ID0gW107CisKKyAgICAkLmVhY2goZmFpbHVyZVR5cGVMaXN0LCBmdW5jdGlvbihpbmRleCwgZmFp
bHVyZVR5cGUpIHsKKyAgICAgICAgZXh0ZW5zaW9uTGlzdCA9IGV4dGVuc2lvbkxpc3QuY29uY2F0
KHJlc3VsdHMuZmFpbHVyZVR5cGVUb0V4dGVuc2lvbkxpc3QoZmFpbHVyZVR5cGUpKTsKKyAgICB9
KTsKKworICAgIHZhciByZXF1ZXN0c0luRmxpZ2h0ID0gZXh0ZW5zaW9uTGlzdC5sZW5ndGg7CisK
KyAgICBpZiAoIXJlcXVlc3RzSW5GbGlnaHQpCisgICAgICAgIGNhbGxiYWNrKCk7CisKKyAgICAk
LmVhY2goZXh0ZW5zaW9uTGlzdCwgZnVuY3Rpb24oaW5kZXgsIGV4dGVuc2lvbikgeworICAgICAg
ICAkLnBvc3QoJy9yZWJhc2VsaW5lPycgKyAkLnBhcmFtKHsKKyAgICAgICAgICAgICdidWlsZGVy
JzogYnVpbGRlck5hbWUsCisgICAgICAgICAgICAndGVzdCc6IHRlc3ROYW1lLAorICAgICAgICAg
ICAgLy8gRklYTUU6IFJlbmFtZSAic3VmZml4IiBxdWVyeSBwYXJhbWV0ZXIgdG8gImV4dGVuc2lv
biIuCisgICAgICAgICAgICAnc3VmZml4JzogZXh0ZW5zaW9uCisgICAgICAgIH0pLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIC0tcmVxdWVzdHNJbkZsaWdodDsKKyAgICAgICAgICAgIGlmICgh
cmVxdWVzdHNJbkZsaWdodCkKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9
KTsKKyAgICB9KTsKK307CisKIH0pKCk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5odG1sIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvaW5kZXgu
aHRtbAppbmRleCAzYWQzYWRkMjdhMTFhNGRiZTJkZTQ0YTBkYzA5Y2M2MTY5OGQ1OTE5Li4xOTY0
YThiYzcyN2MwMWM0NDAxMzNjMjEwMzA5ZWQ3YjEzMWY3OWQyIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5o
dG1sCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVu
aW5nc2VydmVyL2luZGV4Lmh0bWwKQEAgLTEzLDcgKzEzLDE1IEBACiA8ZGl2IGNsYXNzPSJidXR0
ZXJiYXIiPjxzcGFuIGNsYXNzPSJzdGF0dXMiPkxvYWRpbmcuLi48L3NwYW4+PC9kaXY+CiA8ZGl2
IGNsYXNzPSJyZXN1bHRzIj48L2Rpdj4KIDxkaXYgY2xhc3M9InJlc3VsdHMtZGV0YWlsIj4KLTxk
aXYgY2xhc3M9InRvb2xiYXIiPjxzcGFuIGNsYXNzPSJzdGF0dXMiPjwvc3Bhbj4gPGEgY2xhc3M9
ImRpc21pc3MiIGhyZWY9IiMiPkNsb3NlPC9hPjwvZGl2PjxkaXYgY2xhc3M9ImNvbnRlbnQiPjwv
ZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KKyAgICA8ZGl2IGNsYXNzPSJhY3Rp
b25zIj4KKyAgICAgIDxhIGNsYXNzPSJyZWJhc2VsaW5lIiBocmVmPSIjIj5SZWJhc2VsaW5lPC9h
PgorICAgICAgPGEgY2xhc3M9ImRpc21pc3MiIGhyZWY9IiMiPkNsb3NlPC9hPgorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InN0YXR1cyI+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNz
PSJjb250ZW50Ij48L2Rpdj4KKzwvZGl2PgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vYWpheC5nb29n
bGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzEuNC4yL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0
PiAKIDxzY3JpcHQgc3JjPSJjb25maWcuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9ImJhc2Uu
anMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5jc3MgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcwppbmRleCAwZjA5
OWU2Yjg0MDgwZDlkZmZhMzQ0MGIzYmI0ZDU0YzhlMzY3ZGRhLi4zZjFlOThjMGQzNTFiOWE0NTRi
MjhiY2U1NmUxOGQzNzNiNDQ2YzFhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcworKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNz
cwpAQCAtMTc3LDEwICsxNzcsMTMgQEAgdGQ6bGFzdC1vZi10eXBlIHsKICAgICBwYWRkaW5nOiA1
cHg7CiB9CiAKLS5yZXN1bHRzLWRldGFpbCAudG9vbGJhciAuZGlzbWlzcyB7CisucmVzdWx0cy1k
ZXRhaWwgLnRvb2xiYXIgLmFjdGlvbnMgewogICAgIGZsb2F0OiByaWdodDsKK30KKworLnJlc3Vs
dHMtZGV0YWlsIC50b29sYmFyIC5hY3Rpb25zIGEgewogICAgIGRpc3BsYXk6IGlubGluZS1ibG9j
azsKLSAgICBwYWRkaW5nOiA1cHg7CisgICAgcGFkZGluZzogNXB4IDVweCA1cHggMHB4OwogfQog
CiAucmVzdWx0cy1kZXRhaWwgLnRvb2xiYXIgewpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qcyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4u
anMKaW5kZXggMzE5YWU3ODc1NjlhNWIzMmM3NzU3MmQ0YTliOTYzMzFhNmY5M2JjNi4uNzJmN2Fl
YzgyZTViOTJiNTE3MDI2ODA0NTMzYmE5ODBkYmM4ZjgwZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qcwor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3Nl
cnZlci9tYWluLmpzCkBAIC04MCw2ICs4MCw3IEBAIGZ1bmN0aW9uIHNob3dSZXN1bHRzRGV0YWls
KCkKICAgICAgICAgICAgIHN0YXR1cy50ZXh0KHRlc3ROYW1lICsgJyBbJyArIGJ1aWxkZXJOYW1l
ICsgJ10nKTsKICAgICAgICAgICAgIGNvbnRlbnQuZW1wdHkoKTsKICAgICAgICAgICAgIGNvbnRl
bnQuYXBwZW5kKHVpLmZhaWx1cmVEZXRhaWxzKHJlc3VsdHNVUkxzKSk7CisgICAgICAgICAgICAk
KCcucmVzdWx0cy1kZXRhaWwgLmFjdGlvbnMgLnJlYmFzZWxpbmUnKS50b2dnbGUocmVzdWx0cy5j
YW5SZWJhc2VsaW5lKGZhaWx1cmVUeXBlTGlzdCkpOwogICAgICAgICAgICAgJCgnLmZhaWx1cmUt
ZGV0YWlscycsIGNvbnRlbnQpLmF0dHIoY29uZmlnLmtCdWlsZGVyTmFtZUF0dHIsIGJ1aWxkZXJO
YW1lKTsKICAgICAgICAgICAgICQoJy5mYWlsdXJlLWRldGFpbHMnLCBjb250ZW50KS5hdHRyKGNv
bmZpZy5rVGVzdE5hbWVBdHRyLCB0ZXN0TmFtZSk7CiAgICAgICAgICAgICAkKCcuZmFpbHVyZS1k
ZXRhaWxzJywgY29udGVudCkuYXR0cihjb25maWcua0ZhaWx1cmVUeXBlc0F0dHIsIGZhaWx1cmVU
eXBlcyk7CkBAIC0xMDgsOCArMTA5LDIyIEBAIGZ1bmN0aW9uIGhpZGVSZXN1bHRzRGV0YWlsKCkK
ICAgICB9KTsKIH0KIAorZnVuY3Rpb24gcmViYXNlbGluZVJlc3VsdHMoKQoreworICAgIHZhciBm
YWlsdXJlRGV0YWlscyA9ICQoJy5mYWlsdXJlLWRldGFpbHMnLCAkKHRoaXMpLnBhcmVudHMoJy5y
ZXN1bHRzLWRldGFpbCcpKTsKKworICAgIHZhciBidWlsZGVyTmFtZSA9IGZhaWx1cmVEZXRhaWxz
LmF0dHIoY29uZmlnLmtCdWlsZGVyTmFtZUF0dHIpOworICAgIHZhciB0ZXN0TmFtZSA9IGZhaWx1
cmVEZXRhaWxzLmF0dHIoY29uZmlnLmtUZXN0TmFtZUF0dHIpOworICAgIHZhciBmYWlsdXJlVHlw
ZXMgPSBmYWlsdXJlRGV0YWlscy5hdHRyKGNvbmZpZy5rRmFpbHVyZVR5cGVzQXR0cik7CisgICAg
dmFyIGZhaWx1cmVUeXBlTGlzdCA9IGZhaWx1cmVUeXBlcy5zcGxpdCgnICcpOworCisgICAgZGlz
cGxheU9uQnV0dGVyYmFyKCdSZWJhc2VsaW5pbmcuLi4nKTsKKyAgICBjaGVja291dC5yZWJhc2Vs
aW5lKGJ1aWxkZXJOYW1lLCB0ZXN0TmFtZSwgZmFpbHVyZVR5cGVMaXN0LCBkaXNtaXNzQnV0dGVy
YmFyKTsKK30KKwogJCgnLnJlZ3Jlc3Npb24gLndoZXJlIGEnKS5saXZlKCdjbGljaycsIHNob3dS
ZXN1bHRzRGV0YWlsKTsKLSQoJy5yZXN1bHRzLWRldGFpbCAuZGlzbWlzcycpLmxpdmUoJ2NsaWNr
JywgaGlkZVJlc3VsdHNEZXRhaWwpOworJCgnLnJlc3VsdHMtZGV0YWlsIC5hY3Rpb25zIC5kaXNt
aXNzJykubGl2ZSgnY2xpY2snLCBoaWRlUmVzdWx0c0RldGFpbCk7CiskKCcucmVzdWx0cy1kZXRh
aWwgLmFjdGlvbnMgLnJlYmFzZWxpbmUnKS5saXZlKCdjbGljaycsIHJlYmFzZWxpbmVSZXN1bHRz
KTsKIAogJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAgc2hvd1Jlc3VsdHMoZnVu
Y3Rpb24oKSB7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qcwppbmRleCA3MDU2
NjYyNjM2MWRhY2I1YzVhOTMzZGU1Y2E1MTg2ODI5ZmE5YTZkLi4yMDBhYzQwM2ZmZjQxMDMwNmVj
OGY2Y2VlOGQyOTE3ZWQxNmFiZTY2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzCisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3Vs
dHMuanMKQEAgLTExNSw2ICsxMTUsMzUgQEAgZnVuY3Rpb24gcG9zc2libGVTdWZmaXhMaXN0Rm9y
KGZhaWx1cmVUeXBlTGlzdCkKICAgICByZXR1cm4gc3VmZml4TGlzdDsKIH0KIAorcmVzdWx0cy5m
YWlsdXJlVHlwZVRvRXh0ZW5zaW9uTGlzdCA9IGZ1bmN0aW9uKGZhaWx1cmVUeXBlKQoreworICAg
IHN3aXRjaChmYWlsdXJlVHlwZSkgeworICAgICAgICBjYXNlIElNQUdFOgorICAgICAgICAgICAg
cmV0dXJuIFsncG5nJ107CisgICAgICAgIGNhc2UgVEVYVDoKKyAgICAgICAgICAgIHJldHVybiBb
J3R4dCddOworICAgICAgICBjYXNlIElNQUdFX1RFWFQ6CisgICAgICAgICAgICByZXR1cm4gWyd0
eHQnLCAncG5nJ107CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBGSVhNRTogQWRk
IHN1cHBvcnQgZm9yIHRoZSByZXN0IG9mIHRoZSByZXN1bHQgdHlwZXMuCisgICAgICAgICAgICAv
LyAnLWV4cGVjdGVkLmh0bWwnLAorICAgICAgICAgICAgLy8gJy1leHBlY3RlZC1taXNtYXRjaC5o
dG1sJywKKyAgICAgICAgICAgIC8vICctZXhwZWN0ZWQud2F2JywKKyAgICAgICAgICAgIC8vICct
YWN0dWFsLndhdicsCisgICAgICAgICAgICAvLyAuLi4gYW5kIHBvc3NpYmx5IG1vcmUuCisgICAg
ICAgICAgICByZXR1cm4gW107CisgICAgfQorfTsKKworcmVzdWx0cy5jYW5SZWJhc2VsaW5lID0g
ZnVuY3Rpb24oZmFpbHVyZVR5cGVMaXN0KQoreworICAgIGZvciAodmFyIGk9IDA7IGkgPCBmYWls
dXJlVHlwZUxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHJlc3VsdHMuZmFpbHVyZVR5
cGVUb0V4dGVuc2lvbkxpc3QoZmFpbHVyZVR5cGVMaXN0W2ldKS5sZW5ndGggPiAwKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK307CisKIGZ1bmN0
aW9uIHJlc3VsdHNTdW1tYXJ5VVJMKGJ1aWxkZXJOYW1lLCB0ZXN0TmFtZSkKIHsKICAgICByZXR1
cm4ga1Rlc3RSZXN1bHRzUXVlcnkgKyAkLnBhcmFtKHJlc3VsdHNQYXJhbWV0ZXJzKGJ1aWxkZXJO
YW1lLCB0ZXN0TmFtZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0c191bml0dGVzdHMuanMgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1
bHRzX3VuaXR0ZXN0cy5qcwppbmRleCA1NDQ0YzUyNjVlMzZhYjJiZDAxYzEwOTNhMDZkMmM1Yzdh
MTg4ZjE5Li5mNGZkNWQ1NzU2NTM4ZWM3YzQ0ZGViYTAxNWZjMzRhMmMwZTRmN2ZlIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3Nl
cnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5qcwpAQCAt
MzI2LDYgKzMyNiwyNCBAQCB0ZXN0KCJjb2xsZWN0VW5leHBlY3RlZFJlc3VsdHMiLCAxLCBmdW5j
dGlvbigpIHsKICAgICBkZWVwRXF1YWwoY29sbGVjdGVkUmVzdWx0cywgWyJURVhUIiwgIklNQUdF
Il0pOwogfSk7CiAKK3Rlc3QoImZhaWx1cmVUeXBlVG9FeHRlbnNpb25MaXN0IiwgNSwgZnVuY3Rp
b24oKSB7CisgICAgZGVlcEVxdWFsKHJlc3VsdHMuZmFpbHVyZVR5cGVUb0V4dGVuc2lvbkxpc3Qo
J1RFWFQnKSwgWyd0eHQnXSk7CisgICAgZGVlcEVxdWFsKHJlc3VsdHMuZmFpbHVyZVR5cGVUb0V4
dGVuc2lvbkxpc3QoJ0lNQUdFK1RFWFQnKSwgWyd0eHQnLCAncG5nJ10pOworICAgIGRlZXBFcXVh
bChyZXN1bHRzLmZhaWx1cmVUeXBlVG9FeHRlbnNpb25MaXN0KCdJTUFHRScpLCBbJ3BuZyddKTsK
KyAgICBkZWVwRXF1YWwocmVzdWx0cy5mYWlsdXJlVHlwZVRvRXh0ZW5zaW9uTGlzdCgnQ1JBU0gn
KSwgW10pOworICAgIGRlZXBFcXVhbChyZXN1bHRzLmZhaWx1cmVUeXBlVG9FeHRlbnNpb25MaXN0
KCdUSU1FT1VUJyksIFtdKTsKK30pOworCit0ZXN0KCJjYW5SZWJhc2VsaW5lIiwgNiwgZnVuY3Rp
b24oKSB7CisgICAgb2socmVzdWx0cy5jYW5SZWJhc2VsaW5lKFsnVEVYVCddKSk7CisgICAgb2so
cmVzdWx0cy5jYW5SZWJhc2VsaW5lKFsnSU1BR0UrVEVYVCcsICdDUkFTSCddKSk7CisgICAgb2so
cmVzdWx0cy5jYW5SZWJhc2VsaW5lKFsnSU1BR0UnXSkpOworICAgIG9rKCFyZXN1bHRzLmNhblJl
YmFzZWxpbmUoWydDUkFTSCddKSk7CisgICAgb2soIXJlc3VsdHMuY2FuUmViYXNlbGluZShbJ1RJ
TUVPVVQnXSkpOworICAgIG9rKCFyZXN1bHRzLmNhblJlYmFzZWxpbmUoW10pKTsKK30pOworCisK
IHRlc3QoImZldGNoUmVzdWx0c1VSTHMiLCA0LCBmdW5jdGlvbigpIHsKICAgICB2YXIgc2ltdWxh
dG9yID0gbmV3IE5ldHdvcmtTaW11bGF0b3IoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100775</attachid>
            <date>2011-07-13 23:44:29 -0700</date>
            <delta_ts>2011-07-14 08:56:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64446-20110713234428.patch</filename>
            <type>text/plain</type>
            <size>10689</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA5NzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMjY5NTEwMzk1NTc2YmQxMTBjODZmNTc0YmQ2N2UwNWM2
ZjUyNGJjLi5mN2IyMTMwZDM2NGNiNWFkYTM0MTM0NTc1OWU0NzFhYzJjOGI3Y2ExIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzkg
QEAKIDIwMTEtMDctMTMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgaGF2ZSBhICJyZWJhc2VsaW5lIiBidXR0b24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NDQ2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRz
IGEgYmFzaWMgUmViYXNlbGluZSBidXR0b24gdGhhdCBjb3BpZXMgdGhlIGJhc2VsaW5lcworICAg
ICAgICBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdHMgcGFuZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSBk
aXJlY3RvcnkgaW4geW91cgorICAgICAgICB3b3JraW5nIGNvcHkuCisKKyAgICAgICAgVGhlcmUg
YXJlIHR3byBtYWluIGxpbWl0YXRpb25zOgorCisgICAgICAgIDEpIFRoZXJlIGlzIG5vIFVJIGZv
ciBhY3R1YWxseSBjb21taXR0aW5nIHRoZSBiYXNlbGluZXMuCisKKyAgICAgICAgMikgVGhlIGJh
c2VsaW5lcyBhcmUgbm90IG9wdGltaXplZCBmb3IgcmVkdW5kYW5jeSAobWVhbmluZyB5b3UgY2Fu
IGhhdmUKKyAgICAgICAgICAgaWRlbnRpY2FsIGJhc2VsaW5lcyBpbiBib3RoIGNocm9taXVtLW1h
YyBhbmQgY2hyb21pdW0td2luKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9yZWJhc2VsaW5lLnB5OgorICAgICAgICAgICAgLSBUdXJucyBvdXQgd2UgbmVlZCB0
byBjcmVhdGUgdGhlIGRpcmVjdG9yeSBmb3IgdGhlIGJhc2VsaW5lIGlmIGl0IGRvZXNuJ3QgZXhp
c3QgeWV0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2Fy
ZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzOgorICAgICAgICAgICAgLSBBZGQgYW4gcHJvZ3JhbWF0
aWMgQVBJIHRvIGNhbGwgdGhlIHNlcnZlci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5odG1sOgorICAgICAgICAgICAg
LSBBZGQgdGhlIHJlYmFzZWxpbmUgYnV0dG9uIGl0c2VsZi4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzczoKKyAgICAg
ICAgICAgIC0gQ2hhbmdlIHRoZSBDU1Mgc28gdGhhdCB0aGUgUmViYXNlbGluZSBhbmQgQ2xvc2Ug
YnV0dG9ucyBjYW4KKyAgICAgICAgICAgICAgYXBwZWFyIGluIHRoZSBub3JtYWwgb3JkZXIgaW4g
dGhlIERPTS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dh
cmRlbmluZ3NlcnZlci9tYWluLmpzOgorICAgICAgICAgICAgLSBCaW5kIHRoZSBldmVudCBhbmQg
dHJhbnNsYXRlIHRoZSBwYXJhbWV0ZXJzLgorICAgICAgICAgICAgLSBIaWRlL3Nob3cgdGhlIHJl
YmFzZWxpbmUgYnV0dG9uLCBhcyBhcHByb3ByaWF0ZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzOgorICAgICAg
ICAgICAgLSBBZGQgc29tZSBoZWxwZnVsIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRp
bmcgZmFpbHVyZSB0eXBlcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5qczoKKworMjAxMS0wNy0x
MyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIGdhcmRlbi1vLW1h
dGljIHJlc3VsdHMgcGFuZSBzaG91bGQgYmUgbW9yZSBkaXNjb3ZlcmFibGUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTEzCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKaW5kZXggZTVj
NThiZjhiOGQ1YmE0NjU5NzM1YWU5NjgxYzlhZWY3YmI5NmMyNi4uNjZhYzY5MGFhZTkxMjVhNDI4
NGE0MGEyMDNhNTE5MDBhNzQzMjMwNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKQEAgLTEwMSw3ICsxMDEsOSBAQCBjbGFzcyBS
ZWJhc2VsaW5lVGVzdChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgICAgIHJldHVy
biBwb3J0LmJhc2VsaW5lX3BhdGgoKQogCiAgICAgZGVmIF9zYXZlX2Jhc2VsaW5lKHNlbGYsIGRh
dGEsIHRhcmdldF9iYXNlbGluZSk6Ci0gICAgICAgIHNlbGYuX3Rvb2wuZmlsZXN5c3RlbS53cml0
ZV9iaW5hcnlfZmlsZSh0YXJnZXRfYmFzZWxpbmUsIGRhdGEpCisgICAgICAgIGZzID0gc2VsZi5f
dG9vbC5maWxlc3lzdGVtCisgICAgICAgIGZzLm1heWJlX21ha2VfZGlyZWN0b3J5KGZzLmRpcm5h
bWUodGFyZ2V0X2Jhc2VsaW5lKSkKKyAgICAgICAgZnMud3JpdGVfYmluYXJ5X2ZpbGUodGFyZ2V0
X2Jhc2VsaW5lLCBkYXRhKQogICAgICAgICBpZiBub3Qgc2VsZi5fdG9vbC5zY20oKS5leGlzdHMo
dGFyZ2V0X2Jhc2VsaW5lKToKICAgICAgICAgICAgIHNlbGYuX3Rvb2wuc2NtKCkuYWRkKHRhcmdl
dF9iYXNlbGluZSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvY2hlY2tvdXQuanMgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jaGVja291dC5qcwppbmRl
eCBiZGVmYjFkMmNiZTY3YzFlMTg2ODhkZjEwZDhlOTFhOTNjNWFkM2I1Li4xNDM0NzVlNWVjNTY1
ODc3NWM3ZTc5YzljZjhhMWFmM2U3NWNiYTY2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9jaGVja291dC5qcworKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9jaGVja291dC5qcwpAQCAtMjgsNCArMjgsMzEgQEAgY2hlY2tvdXQuZXhpc3RzQXRSZXZpc2lv
biA9IGZ1bmN0aW9uIChzdWJ2ZXJzaW9uVVJMLCByZXZpc2lvbiwgY2FsbGJhY2spCiAgICAgfSk7
CiB9OwogCitjaGVja291dC5yZWJhc2VsaW5lID0gZnVuY3Rpb24oYnVpbGRlck5hbWUsIHRlc3RO
YW1lLCBmYWlsdXJlVHlwZUxpc3QsIGNhbGxiYWNrKQoreworICAgIHZhciBleHRlbnNpb25MaXN0
ID0gW107CisKKyAgICAkLmVhY2goZmFpbHVyZVR5cGVMaXN0LCBmdW5jdGlvbihpbmRleCwgZmFp
bHVyZVR5cGUpIHsKKyAgICAgICAgZXh0ZW5zaW9uTGlzdCA9IGV4dGVuc2lvbkxpc3QuY29uY2F0
KHJlc3VsdHMuZmFpbHVyZVR5cGVUb0V4dGVuc2lvbkxpc3QoZmFpbHVyZVR5cGUpKTsKKyAgICB9
KTsKKworICAgIHZhciByZXF1ZXN0c0luRmxpZ2h0ID0gZXh0ZW5zaW9uTGlzdC5sZW5ndGg7CisK
KyAgICBpZiAoIXJlcXVlc3RzSW5GbGlnaHQpCisgICAgICAgIGNhbGxiYWNrKCk7CisKKyAgICAk
LmVhY2goZXh0ZW5zaW9uTGlzdCwgZnVuY3Rpb24oaW5kZXgsIGV4dGVuc2lvbikgeworICAgICAg
ICAkLnBvc3QoJy9yZWJhc2VsaW5lPycgKyAkLnBhcmFtKHsKKyAgICAgICAgICAgICdidWlsZGVy
JzogYnVpbGRlck5hbWUsCisgICAgICAgICAgICAndGVzdCc6IHRlc3ROYW1lLAorICAgICAgICAg
ICAgLy8gRklYTUU6IFJlbmFtZSAic3VmZml4IiBxdWVyeSBwYXJhbWV0ZXIgdG8gImV4dGVuc2lv
biIuCisgICAgICAgICAgICAnc3VmZml4JzogZXh0ZW5zaW9uCisgICAgICAgIH0pLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIC0tcmVxdWVzdHNJbkZsaWdodDsKKyAgICAgICAgICAgIGlmICgh
cmVxdWVzdHNJbkZsaWdodCkKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9
KTsKKyAgICB9KTsKK307CisKIH0pKCk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5odG1sIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvaW5kZXgu
aHRtbAppbmRleCAzYWQzYWRkMjdhMTFhNGRiZTJkZTQ0YTBkYzA5Y2M2MTY5OGQ1OTE5Li4xOTY0
YThiYzcyN2MwMWM0NDAxMzNjMjEwMzA5ZWQ3YjEzMWY3OWQyIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5o
dG1sCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVu
aW5nc2VydmVyL2luZGV4Lmh0bWwKQEAgLTEzLDcgKzEzLDE1IEBACiA8ZGl2IGNsYXNzPSJidXR0
ZXJiYXIiPjxzcGFuIGNsYXNzPSJzdGF0dXMiPkxvYWRpbmcuLi48L3NwYW4+PC9kaXY+CiA8ZGl2
IGNsYXNzPSJyZXN1bHRzIj48L2Rpdj4KIDxkaXYgY2xhc3M9InJlc3VsdHMtZGV0YWlsIj4KLTxk
aXYgY2xhc3M9InRvb2xiYXIiPjxzcGFuIGNsYXNzPSJzdGF0dXMiPjwvc3Bhbj4gPGEgY2xhc3M9
ImRpc21pc3MiIGhyZWY9IiMiPkNsb3NlPC9hPjwvZGl2PjxkaXYgY2xhc3M9ImNvbnRlbnQiPjwv
ZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KKyAgICA8ZGl2IGNsYXNzPSJhY3Rp
b25zIj4KKyAgICAgIDxhIGNsYXNzPSJyZWJhc2VsaW5lIiBocmVmPSIjIj5SZWJhc2VsaW5lPC9h
PgorICAgICAgPGEgY2xhc3M9ImRpc21pc3MiIGhyZWY9IiMiPkNsb3NlPC9hPgorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InN0YXR1cyI+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGNsYXNz
PSJjb250ZW50Ij48L2Rpdj4KKzwvZGl2PgogPHNjcmlwdCBzcmM9Imh0dHBzOi8vYWpheC5nb29n
bGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzEuNC4yL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0
PiAKIDxzY3JpcHQgc3JjPSJjb25maWcuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9ImJhc2Uu
anMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5jc3MgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcwppbmRleCAwZjA5
OWU2Yjg0MDgwZDlkZmZhMzQ0MGIzYmI0ZDU0YzhlMzY3ZGRhLi4zZjFlOThjMGQzNTFiOWE0NTRi
MjhiY2U1NmUxOGQzNzNiNDQ2YzFhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcworKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNz
cwpAQCAtMTc3LDEwICsxNzcsMTMgQEAgdGQ6bGFzdC1vZi10eXBlIHsKICAgICBwYWRkaW5nOiA1
cHg7CiB9CiAKLS5yZXN1bHRzLWRldGFpbCAudG9vbGJhciAuZGlzbWlzcyB7CisucmVzdWx0cy1k
ZXRhaWwgLnRvb2xiYXIgLmFjdGlvbnMgewogICAgIGZsb2F0OiByaWdodDsKK30KKworLnJlc3Vs
dHMtZGV0YWlsIC50b29sYmFyIC5hY3Rpb25zIGEgewogICAgIGRpc3BsYXk6IGlubGluZS1ibG9j
azsKLSAgICBwYWRkaW5nOiA1cHg7CisgICAgcGFkZGluZzogNXB4IDVweCA1cHggMHB4OwogfQog
CiAucmVzdWx0cy1kZXRhaWwgLnRvb2xiYXIgewpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qcyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4u
anMKaW5kZXggMzE5YWU3ODc1NjlhNWIzMmM3NzU3MmQ0YTliOTYzMzFhNmY5M2JjNi4uNzJmN2Fl
YzgyZTViOTJiNTE3MDI2ODA0NTMzYmE5ODBkYmM4ZjgwZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qcwor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3Nl
cnZlci9tYWluLmpzCkBAIC04MCw2ICs4MCw3IEBAIGZ1bmN0aW9uIHNob3dSZXN1bHRzRGV0YWls
KCkKICAgICAgICAgICAgIHN0YXR1cy50ZXh0KHRlc3ROYW1lICsgJyBbJyArIGJ1aWxkZXJOYW1l
ICsgJ10nKTsKICAgICAgICAgICAgIGNvbnRlbnQuZW1wdHkoKTsKICAgICAgICAgICAgIGNvbnRl
bnQuYXBwZW5kKHVpLmZhaWx1cmVEZXRhaWxzKHJlc3VsdHNVUkxzKSk7CisgICAgICAgICAgICAk
KCcucmVzdWx0cy1kZXRhaWwgLmFjdGlvbnMgLnJlYmFzZWxpbmUnKS50b2dnbGUocmVzdWx0cy5j
YW5SZWJhc2VsaW5lKGZhaWx1cmVUeXBlTGlzdCkpOwogICAgICAgICAgICAgJCgnLmZhaWx1cmUt
ZGV0YWlscycsIGNvbnRlbnQpLmF0dHIoY29uZmlnLmtCdWlsZGVyTmFtZUF0dHIsIGJ1aWxkZXJO
YW1lKTsKICAgICAgICAgICAgICQoJy5mYWlsdXJlLWRldGFpbHMnLCBjb250ZW50KS5hdHRyKGNv
bmZpZy5rVGVzdE5hbWVBdHRyLCB0ZXN0TmFtZSk7CiAgICAgICAgICAgICAkKCcuZmFpbHVyZS1k
ZXRhaWxzJywgY29udGVudCkuYXR0cihjb25maWcua0ZhaWx1cmVUeXBlc0F0dHIsIGZhaWx1cmVU
eXBlcyk7CkBAIC0xMDgsOCArMTA5LDIyIEBAIGZ1bmN0aW9uIGhpZGVSZXN1bHRzRGV0YWlsKCkK
ICAgICB9KTsKIH0KIAorZnVuY3Rpb24gcmViYXNlbGluZVJlc3VsdHMoKQoreworICAgIHZhciBm
YWlsdXJlRGV0YWlscyA9ICQoJy5mYWlsdXJlLWRldGFpbHMnLCAkKHRoaXMpLnBhcmVudHMoJy5y
ZXN1bHRzLWRldGFpbCcpKTsKKworICAgIHZhciBidWlsZGVyTmFtZSA9IGZhaWx1cmVEZXRhaWxz
LmF0dHIoY29uZmlnLmtCdWlsZGVyTmFtZUF0dHIpOworICAgIHZhciB0ZXN0TmFtZSA9IGZhaWx1
cmVEZXRhaWxzLmF0dHIoY29uZmlnLmtUZXN0TmFtZUF0dHIpOworICAgIHZhciBmYWlsdXJlVHlw
ZXMgPSBmYWlsdXJlRGV0YWlscy5hdHRyKGNvbmZpZy5rRmFpbHVyZVR5cGVzQXR0cik7CisgICAg
dmFyIGZhaWx1cmVUeXBlTGlzdCA9IGZhaWx1cmVUeXBlcy5zcGxpdCgnICcpOworCisgICAgZGlz
cGxheU9uQnV0dGVyYmFyKCdSZWJhc2VsaW5pbmcuLi4nKTsKKyAgICBjaGVja291dC5yZWJhc2Vs
aW5lKGJ1aWxkZXJOYW1lLCB0ZXN0TmFtZSwgZmFpbHVyZVR5cGVMaXN0LCBkaXNtaXNzQnV0dGVy
YmFyKTsKK30KKwogJCgnLnJlZ3Jlc3Npb24gLndoZXJlIGEnKS5saXZlKCdjbGljaycsIHNob3dS
ZXN1bHRzRGV0YWlsKTsKLSQoJy5yZXN1bHRzLWRldGFpbCAuZGlzbWlzcycpLmxpdmUoJ2NsaWNr
JywgaGlkZVJlc3VsdHNEZXRhaWwpOworJCgnLnJlc3VsdHMtZGV0YWlsIC5hY3Rpb25zIC5kaXNt
aXNzJykubGl2ZSgnY2xpY2snLCBoaWRlUmVzdWx0c0RldGFpbCk7CiskKCcucmVzdWx0cy1kZXRh
aWwgLmFjdGlvbnMgLnJlYmFzZWxpbmUnKS5saXZlKCdjbGljaycsIHJlYmFzZWxpbmVSZXN1bHRz
KTsKIAogJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAgc2hvd1Jlc3VsdHMoZnVu
Y3Rpb24oKSB7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qcwppbmRleCA3MDU2
NjYyNjM2MWRhY2I1YzVhOTMzZGU1Y2E1MTg2ODI5ZmE5YTZkLi4yMDBhYzQwM2ZmZjQxMDMwNmVj
OGY2Y2VlOGQyOTE3ZWQxNmFiZTY2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzCisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3Vs
dHMuanMKQEAgLTExNSw2ICsxMTUsMzUgQEAgZnVuY3Rpb24gcG9zc2libGVTdWZmaXhMaXN0Rm9y
KGZhaWx1cmVUeXBlTGlzdCkKICAgICByZXR1cm4gc3VmZml4TGlzdDsKIH0KIAorcmVzdWx0cy5m
YWlsdXJlVHlwZVRvRXh0ZW5zaW9uTGlzdCA9IGZ1bmN0aW9uKGZhaWx1cmVUeXBlKQoreworICAg
IHN3aXRjaChmYWlsdXJlVHlwZSkgeworICAgICAgICBjYXNlIElNQUdFOgorICAgICAgICAgICAg
cmV0dXJuIFsncG5nJ107CisgICAgICAgIGNhc2UgVEVYVDoKKyAgICAgICAgICAgIHJldHVybiBb
J3R4dCddOworICAgICAgICBjYXNlIElNQUdFX1RFWFQ6CisgICAgICAgICAgICByZXR1cm4gWyd0
eHQnLCAncG5nJ107CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBGSVhNRTogQWRk
IHN1cHBvcnQgZm9yIHRoZSByZXN0IG9mIHRoZSByZXN1bHQgdHlwZXMuCisgICAgICAgICAgICAv
LyAnLWV4cGVjdGVkLmh0bWwnLAorICAgICAgICAgICAgLy8gJy1leHBlY3RlZC1taXNtYXRjaC5o
dG1sJywKKyAgICAgICAgICAgIC8vICctZXhwZWN0ZWQud2F2JywKKyAgICAgICAgICAgIC8vICct
YWN0dWFsLndhdicsCisgICAgICAgICAgICAvLyAuLi4gYW5kIHBvc3NpYmx5IG1vcmUuCisgICAg
ICAgICAgICByZXR1cm4gW107CisgICAgfQorfTsKKworcmVzdWx0cy5jYW5SZWJhc2VsaW5lID0g
ZnVuY3Rpb24oZmFpbHVyZVR5cGVMaXN0KQoreworICAgIGZvciAodmFyIGk9IDA7IGkgPCBmYWls
dXJlVHlwZUxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHJlc3VsdHMuZmFpbHVyZVR5
cGVUb0V4dGVuc2lvbkxpc3QoZmFpbHVyZVR5cGVMaXN0W2ldKS5sZW5ndGggPiAwKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK307CisKIGZ1bmN0
aW9uIHJlc3VsdHNTdW1tYXJ5VVJMKGJ1aWxkZXJOYW1lLCB0ZXN0TmFtZSkKIHsKICAgICByZXR1
cm4ga1Rlc3RSZXN1bHRzUXVlcnkgKyAkLnBhcmFtKHJlc3VsdHNQYXJhbWV0ZXJzKGJ1aWxkZXJO
YW1lLCB0ZXN0TmFtZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0c191bml0dGVzdHMuanMgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1
bHRzX3VuaXR0ZXN0cy5qcwppbmRleCA1NDQ0YzUyNjVlMzZhYjJiZDAxYzEwOTNhMDZkMmM1Yzdh
MTg4ZjE5Li43MTcyYzdjOGE0ZWNhNzQ3ZjNiNzFjNzdlMGJlYzFlYjA1ODY3OTQ2IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3Nl
cnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5qcworKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5qcwpAQCAt
MzI2LDYgKzMyNiwyMyBAQCB0ZXN0KCJjb2xsZWN0VW5leHBlY3RlZFJlc3VsdHMiLCAxLCBmdW5j
dGlvbigpIHsKICAgICBkZWVwRXF1YWwoY29sbGVjdGVkUmVzdWx0cywgWyJURVhUIiwgIklNQUdF
Il0pOwogfSk7CiAKK3Rlc3QoImZhaWx1cmVUeXBlVG9FeHRlbnNpb25MaXN0IiwgNSwgZnVuY3Rp
b24oKSB7CisgICAgZGVlcEVxdWFsKHJlc3VsdHMuZmFpbHVyZVR5cGVUb0V4dGVuc2lvbkxpc3Qo
J1RFWFQnKSwgWyd0eHQnXSk7CisgICAgZGVlcEVxdWFsKHJlc3VsdHMuZmFpbHVyZVR5cGVUb0V4
dGVuc2lvbkxpc3QoJ0lNQUdFK1RFWFQnKSwgWyd0eHQnLCAncG5nJ10pOworICAgIGRlZXBFcXVh
bChyZXN1bHRzLmZhaWx1cmVUeXBlVG9FeHRlbnNpb25MaXN0KCdJTUFHRScpLCBbJ3BuZyddKTsK
KyAgICBkZWVwRXF1YWwocmVzdWx0cy5mYWlsdXJlVHlwZVRvRXh0ZW5zaW9uTGlzdCgnQ1JBU0gn
KSwgW10pOworICAgIGRlZXBFcXVhbChyZXN1bHRzLmZhaWx1cmVUeXBlVG9FeHRlbnNpb25MaXN0
KCdUSU1FT1VUJyksIFtdKTsKK30pOworCit0ZXN0KCJjYW5SZWJhc2VsaW5lIiwgNiwgZnVuY3Rp
b24oKSB7CisgICAgb2socmVzdWx0cy5jYW5SZWJhc2VsaW5lKFsnVEVYVCddKSk7CisgICAgb2so
cmVzdWx0cy5jYW5SZWJhc2VsaW5lKFsnSU1BR0UrVEVYVCcsICdDUkFTSCddKSk7CisgICAgb2so
cmVzdWx0cy5jYW5SZWJhc2VsaW5lKFsnSU1BR0UnXSkpOworICAgIG9rKCFyZXN1bHRzLmNhblJl
YmFzZWxpbmUoWydDUkFTSCddKSk7CisgICAgb2soIXJlc3VsdHMuY2FuUmViYXNlbGluZShbJ1RJ
TUVPVVQnXSkpOworICAgIG9rKCFyZXN1bHRzLmNhblJlYmFzZWxpbmUoW10pKTsKK30pOworCiB0
ZXN0KCJmZXRjaFJlc3VsdHNVUkxzIiwgNCwgZnVuY3Rpb24oKSB7CiAgICAgdmFyIHNpbXVsYXRv
ciA9IG5ldyBOZXR3b3JrU2ltdWxhdG9yKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100813</attachid>
            <date>2011-07-14 08:56:37 -0700</date>
            <delta_ts>2011-07-14 18:53:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64446-20110714085636.patch</filename>
            <type>text/plain</type>
            <size>12135</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA5NzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMjY5NTEwMzk1NTc2YmQxMTBjODZmNTc0YmQ2N2UwNWM2
ZjUyNGJjLi5mN2IyMTMwZDM2NGNiNWFkYTM0MTM0NTc1OWU0NzFhYzJjOGI3Y2ExIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzkg
QEAKIDIwMTEtMDctMTMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAg
ICBnYXJkZW4tby1tYXRpYyBzaG91bGQgaGF2ZSBhICJyZWJhc2VsaW5lIiBidXR0b24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NDQ2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRz
IGEgYmFzaWMgUmViYXNlbGluZSBidXR0b24gdGhhdCBjb3BpZXMgdGhlIGJhc2VsaW5lcworICAg
ICAgICBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdHMgcGFuZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSBk
aXJlY3RvcnkgaW4geW91cgorICAgICAgICB3b3JraW5nIGNvcHkuCisKKyAgICAgICAgVGhlcmUg
YXJlIHR3byBtYWluIGxpbWl0YXRpb25zOgorCisgICAgICAgIDEpIFRoZXJlIGlzIG5vIFVJIGZv
ciBhY3R1YWxseSBjb21taXR0aW5nIHRoZSBiYXNlbGluZXMuCisKKyAgICAgICAgMikgVGhlIGJh
c2VsaW5lcyBhcmUgbm90IG9wdGltaXplZCBmb3IgcmVkdW5kYW5jeSAobWVhbmluZyB5b3UgY2Fu
IGhhdmUKKyAgICAgICAgICAgaWRlbnRpY2FsIGJhc2VsaW5lcyBpbiBib3RoIGNocm9taXVtLW1h
YyBhbmQgY2hyb21pdW0td2luKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9yZWJhc2VsaW5lLnB5OgorICAgICAgICAgICAgLSBUdXJucyBvdXQgd2UgbmVlZCB0
byBjcmVhdGUgdGhlIGRpcmVjdG9yeSBmb3IgdGhlIGJhc2VsaW5lIGlmIGl0IGRvZXNuJ3QgZXhp
c3QgeWV0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2Fy
ZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzOgorICAgICAgICAgICAgLSBBZGQgYW4gcHJvZ3JhbWF0
aWMgQVBJIHRvIGNhbGwgdGhlIHNlcnZlci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5odG1sOgorICAgICAgICAgICAg
LSBBZGQgdGhlIHJlYmFzZWxpbmUgYnV0dG9uIGl0c2VsZi4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzczoKKyAgICAg
ICAgICAgIC0gQ2hhbmdlIHRoZSBDU1Mgc28gdGhhdCB0aGUgUmViYXNlbGluZSBhbmQgQ2xvc2Ug
YnV0dG9ucyBjYW4KKyAgICAgICAgICAgICAgYXBwZWFyIGluIHRoZSBub3JtYWwgb3JkZXIgaW4g
dGhlIERPTS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dh
cmRlbmluZ3NlcnZlci9tYWluLmpzOgorICAgICAgICAgICAgLSBCaW5kIHRoZSBldmVudCBhbmQg
dHJhbnNsYXRlIHRoZSBwYXJhbWV0ZXJzLgorICAgICAgICAgICAgLSBIaWRlL3Nob3cgdGhlIHJl
YmFzZWxpbmUgYnV0dG9uLCBhcyBhcHByb3ByaWF0ZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzOgorICAgICAg
ICAgICAgLSBBZGQgc29tZSBoZWxwZnVsIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRp
bmcgZmFpbHVyZSB0eXBlcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5qczoKKworMjAxMS0wNy0x
MyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIGdhcmRlbi1vLW1h
dGljIHJlc3VsdHMgcGFuZSBzaG91bGQgYmUgbW9yZSBkaXNjb3ZlcmFibGUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTEzCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKaW5kZXggZTVj
NThiZjhiOGQ1YmE0NjU5NzM1YWU5NjgxYzlhZWY3YmI5NmMyNi4uYTNjOWNmNDIxZDExMTE3OTdi
ZjUzMGMyYmIzODA1M2RjNjI5YWVhMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKQEAgLTEwMSw3ICsxMDEsOSBAQCBjbGFzcyBS
ZWJhc2VsaW5lVGVzdChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgICAgIHJldHVy
biBwb3J0LmJhc2VsaW5lX3BhdGgoKQogCiAgICAgZGVmIF9zYXZlX2Jhc2VsaW5lKHNlbGYsIGRh
dGEsIHRhcmdldF9iYXNlbGluZSk6Ci0gICAgICAgIHNlbGYuX3Rvb2wuZmlsZXN5c3RlbS53cml0
ZV9iaW5hcnlfZmlsZSh0YXJnZXRfYmFzZWxpbmUsIGRhdGEpCisgICAgICAgIGZpbGVzeXN0ZW0g
PSBzZWxmLl90b29sLmZpbGVzeXN0ZW0KKyAgICAgICAgZmlsZXN5c3RlbS5tYXliZV9tYWtlX2Rp
cmVjdG9yeShmaWxlc3lzdGVtLmRpcm5hbWUodGFyZ2V0X2Jhc2VsaW5lKSkKKyAgICAgICAgZmls
ZXN5c3RlbS53cml0ZV9iaW5hcnlfZmlsZSh0YXJnZXRfYmFzZWxpbmUsIGRhdGEpCiAgICAgICAg
IGlmIG5vdCBzZWxmLl90b29sLnNjbSgpLmV4aXN0cyh0YXJnZXRfYmFzZWxpbmUpOgogICAgICAg
ICAgICAgc2VsZi5fdG9vbC5zY20oKS5hZGQodGFyZ2V0X2Jhc2VsaW5lKQogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9jaGVja291dC5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEv
Z2FyZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzCmluZGV4IGJkZWZiMWQyY2JlNjdjMWUxODY4OGRm
MTBkOGU5MWE5M2M1YWQzYjUuLjE0MzQ3NWU1ZWM1NjU4Nzc1YzdlNzljOWNmOGExYWYzZTc1Y2Jh
NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEv
Z2FyZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzCkBAIC0yOCw0ICsy
OCwzMSBAQCBjaGVja291dC5leGlzdHNBdFJldmlzaW9uID0gZnVuY3Rpb24gKHN1YnZlcnNpb25V
UkwsIHJldmlzaW9uLCBjYWxsYmFjaykKICAgICB9KTsKIH07CiAKK2NoZWNrb3V0LnJlYmFzZWxp
bmUgPSBmdW5jdGlvbihidWlsZGVyTmFtZSwgdGVzdE5hbWUsIGZhaWx1cmVUeXBlTGlzdCwgY2Fs
bGJhY2spCit7CisgICAgdmFyIGV4dGVuc2lvbkxpc3QgPSBbXTsKKworICAgICQuZWFjaChmYWls
dXJlVHlwZUxpc3QsIGZ1bmN0aW9uKGluZGV4LCBmYWlsdXJlVHlwZSkgeworICAgICAgICBleHRl
bnNpb25MaXN0ID0gZXh0ZW5zaW9uTGlzdC5jb25jYXQocmVzdWx0cy5mYWlsdXJlVHlwZVRvRXh0
ZW5zaW9uTGlzdChmYWlsdXJlVHlwZSkpOworICAgIH0pOworCisgICAgdmFyIHJlcXVlc3RzSW5G
bGlnaHQgPSBleHRlbnNpb25MaXN0Lmxlbmd0aDsKKworICAgIGlmICghcmVxdWVzdHNJbkZsaWdo
dCkKKyAgICAgICAgY2FsbGJhY2soKTsKKworICAgICQuZWFjaChleHRlbnNpb25MaXN0LCBmdW5j
dGlvbihpbmRleCwgZXh0ZW5zaW9uKSB7CisgICAgICAgICQucG9zdCgnL3JlYmFzZWxpbmU/JyAr
ICQucGFyYW0oeworICAgICAgICAgICAgJ2J1aWxkZXInOiBidWlsZGVyTmFtZSwKKyAgICAgICAg
ICAgICd0ZXN0JzogdGVzdE5hbWUsCisgICAgICAgICAgICAvLyBGSVhNRTogUmVuYW1lICJzdWZm
aXgiIHF1ZXJ5IHBhcmFtZXRlciB0byAiZXh0ZW5zaW9uIi4KKyAgICAgICAgICAgICdzdWZmaXgn
OiBleHRlbnNpb24KKyAgICAgICAgfSksIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgLS1yZXF1
ZXN0c0luRmxpZ2h0OworICAgICAgICAgICAgaWYgKCFyZXF1ZXN0c0luRmxpZ2h0KQorICAgICAg
ICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0pOworICAgIH0pOworfTsKKwogfSkoKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2Fy
ZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2Vy
dmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9pbmRleC5odG1sCmluZGV4IDNhZDNhZGQyN2ExMWE0
ZGJlMmRlNDRhMGRjMDljYzYxNjk4ZDU5MTkuLjE5NjRhOGJjNzI3YzAxYzQ0MDEzM2MyMTAzMDll
ZDdiMTMxZjc5ZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvaW5kZXguaHRtbApAQCAt
MTMsNyArMTMsMTUgQEAKIDxkaXYgY2xhc3M9ImJ1dHRlcmJhciI+PHNwYW4gY2xhc3M9InN0YXR1
cyI+TG9hZGluZy4uLjwvc3Bhbj48L2Rpdj4KIDxkaXYgY2xhc3M9InJlc3VsdHMiPjwvZGl2Pgog
PGRpdiBjbGFzcz0icmVzdWx0cy1kZXRhaWwiPgotPGRpdiBjbGFzcz0idG9vbGJhciI+PHNwYW4g
Y2xhc3M9InN0YXR1cyI+PC9zcGFuPiA8YSBjbGFzcz0iZGlzbWlzcyIgaHJlZj0iIyI+Q2xvc2U8
L2E+PC9kaXY+PGRpdiBjbGFzcz0iY29udGVudCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9
InRvb2xiYXIiPgorICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMiPgorICAgICAgPGEgY2xhc3M9InJl
YmFzZWxpbmUiIGhyZWY9IiMiPlJlYmFzZWxpbmU8L2E+CisgICAgICA8YSBjbGFzcz0iZGlzbWlz
cyIgaHJlZj0iIyI+Q2xvc2U8L2E+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic3RhdHVz
Ij48L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPjwvZGl2PgorPC9kaXY+
CiA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVl
cnkvMS40LjIvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+IAogPHNjcmlwdCBzcmM9ImNvbmZpZy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iYmFzZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9tYWluLmNzcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2Fy
ZGVuaW5nc2VydmVyL21haW4uY3NzCmluZGV4IDBmMDk5ZTZiODQwODBkOWRmZmEzNDQwYjNiYjRk
NTRjOGUzNjdkZGEuLjNmMWU5OGMwZDM1MWI5YTQ1NGIyOGJjZTU2ZTE4ZDM3M2I0NDZjMWEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVu
aW5nc2VydmVyL21haW4uY3NzCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzCkBAIC0xNzcsMTAgKzE3NywxMyBAQCB0
ZDpsYXN0LW9mLXR5cGUgewogICAgIHBhZGRpbmc6IDVweDsKIH0KIAotLnJlc3VsdHMtZGV0YWls
IC50b29sYmFyIC5kaXNtaXNzIHsKKy5yZXN1bHRzLWRldGFpbCAudG9vbGJhciAuYWN0aW9ucyB7
CiAgICAgZmxvYXQ6IHJpZ2h0OworfQorCisucmVzdWx0cy1kZXRhaWwgLnRvb2xiYXIgLmFjdGlv
bnMgYSB7CiAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgIHBhZGRpbmc6IDVweDsKKyAg
ICBwYWRkaW5nOiA1cHggNXB4IDVweCAwcHg7CiB9CiAKIC5yZXN1bHRzLWRldGFpbCAudG9vbGJh
ciB7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRh
L2dhcmRlbmluZ3NlcnZlci9tYWluLmpzIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvbWFpbi5qcwppbmRleCAzMTlhZTc4NzU2OWE1YjMy
Yzc3NTcyZDRhOWI5NjMzMWE2ZjkzYmM2Li43MmY3YWVjODJlNWI5MmI1MTcwMjY4MDQ1MzNiYTk4
MGRiYzhmODBlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uanMKQEAgLTgwLDYgKzgw
LDcgQEAgZnVuY3Rpb24gc2hvd1Jlc3VsdHNEZXRhaWwoKQogICAgICAgICAgICAgc3RhdHVzLnRl
eHQodGVzdE5hbWUgKyAnIFsnICsgYnVpbGRlck5hbWUgKyAnXScpOwogICAgICAgICAgICAgY29u
dGVudC5lbXB0eSgpOwogICAgICAgICAgICAgY29udGVudC5hcHBlbmQodWkuZmFpbHVyZURldGFp
bHMocmVzdWx0c1VSTHMpKTsKKyAgICAgICAgICAgICQoJy5yZXN1bHRzLWRldGFpbCAuYWN0aW9u
cyAucmViYXNlbGluZScpLnRvZ2dsZShyZXN1bHRzLmNhblJlYmFzZWxpbmUoZmFpbHVyZVR5cGVM
aXN0KSk7CiAgICAgICAgICAgICAkKCcuZmFpbHVyZS1kZXRhaWxzJywgY29udGVudCkuYXR0cihj
b25maWcua0J1aWxkZXJOYW1lQXR0ciwgYnVpbGRlck5hbWUpOwogICAgICAgICAgICAgJCgnLmZh
aWx1cmUtZGV0YWlscycsIGNvbnRlbnQpLmF0dHIoY29uZmlnLmtUZXN0TmFtZUF0dHIsIHRlc3RO
YW1lKTsKICAgICAgICAgICAgICQoJy5mYWlsdXJlLWRldGFpbHMnLCBjb250ZW50KS5hdHRyKGNv
bmZpZy5rRmFpbHVyZVR5cGVzQXR0ciwgZmFpbHVyZVR5cGVzKTsKQEAgLTEwOCw4ICsxMDksMjIg
QEAgZnVuY3Rpb24gaGlkZVJlc3VsdHNEZXRhaWwoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiBy
ZWJhc2VsaW5lUmVzdWx0cygpCit7CisgICAgdmFyIGZhaWx1cmVEZXRhaWxzID0gJCgnLmZhaWx1
cmUtZGV0YWlscycsICQodGhpcykucGFyZW50cygnLnJlc3VsdHMtZGV0YWlsJykpOworCisgICAg
dmFyIGJ1aWxkZXJOYW1lID0gZmFpbHVyZURldGFpbHMuYXR0cihjb25maWcua0J1aWxkZXJOYW1l
QXR0cik7CisgICAgdmFyIHRlc3ROYW1lID0gZmFpbHVyZURldGFpbHMuYXR0cihjb25maWcua1Rl
c3ROYW1lQXR0cik7CisgICAgdmFyIGZhaWx1cmVUeXBlcyA9IGZhaWx1cmVEZXRhaWxzLmF0dHIo
Y29uZmlnLmtGYWlsdXJlVHlwZXNBdHRyKTsKKyAgICB2YXIgZmFpbHVyZVR5cGVMaXN0ID0gZmFp
bHVyZVR5cGVzLnNwbGl0KCcgJyk7CisKKyAgICBkaXNwbGF5T25CdXR0ZXJiYXIoJ1JlYmFzZWxp
bmluZy4uLicpOworICAgIGNoZWNrb3V0LnJlYmFzZWxpbmUoYnVpbGRlck5hbWUsIHRlc3ROYW1l
LCBmYWlsdXJlVHlwZUxpc3QsIGRpc21pc3NCdXR0ZXJiYXIpOworfQorCiAkKCcucmVncmVzc2lv
biAud2hlcmUgYScpLmxpdmUoJ2NsaWNrJywgc2hvd1Jlc3VsdHNEZXRhaWwpOwotJCgnLnJlc3Vs
dHMtZGV0YWlsIC5kaXNtaXNzJykubGl2ZSgnY2xpY2snLCBoaWRlUmVzdWx0c0RldGFpbCk7Cisk
KCcucmVzdWx0cy1kZXRhaWwgLmFjdGlvbnMgLmRpc21pc3MnKS5saXZlKCdjbGljaycsIGhpZGVS
ZXN1bHRzRGV0YWlsKTsKKyQoJy5yZXN1bHRzLWRldGFpbCAuYWN0aW9ucyAucmViYXNlbGluZScp
LmxpdmUoJ2NsaWNrJywgcmViYXNlbGluZVJlc3VsdHMpOwogCiAkKGRvY3VtZW50KS5yZWFkeShm
dW5jdGlvbigpIHsKICAgICBzaG93UmVzdWx0cyhmdW5jdGlvbigpIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jl
c3VsdHMuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRl
bmluZ3NlcnZlci9yZXN1bHRzLmpzCmluZGV4IDcwNTY2NjI2MzYxZGFjYjVjNWE5MzNkZTVjYTUx
ODY4MjlmYTlhNmQuLjQzMTBjOTA4OTg5MjJkNmZlMDZjYjcyZmU0ZDE1ZTg3YTQwM2Y0NmIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVu
aW5nc2VydmVyL3Jlc3VsdHMuanMKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5qcwpAQCAtODgsMzMgKzg4LDYyIEBA
IGZ1bmN0aW9uIHBvc3NpYmxlU3VmZml4TGlzdEZvcihmYWlsdXJlVHlwZUxpc3QpCiAKICAgICAk
LmVhY2goZmFpbHVyZVR5cGVMaXN0LCBmdW5jdGlvbihpbmRleCwgZmFpbHVyZVR5cGUpIHsKICAg
ICAgICAgc3dpdGNoKGZhaWx1cmVUeXBlKSB7Ci0gICAgICAgICAgICBjYXNlIElNQUdFOgotICAg
ICAgICAgICAgICAgIHB1c2hJbWFnZVN1ZmZpeGVzKCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgICAgICAgICAgcHVzaFRleHRTdWZmaXhl
cygpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBJTUFHRV9URVhU
OgotICAgICAgICAgICAgICAgIHB1c2hJbWFnZVN1ZmZpeGVzKCk7Ci0gICAgICAgICAgICAgICAg
cHVzaFRleHRTdWZmaXhlcygpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSBDUkFTSDoKLSAgICAgICAgICAgICAgICBzdWZmaXhMaXN0LnB1c2goa0NyYXNoTG9nU3Vm
Zml4KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciB0aGUgcmVzdCBvZiB0aGUgcmVz
dWx0IHR5cGVzLgotICAgICAgICAgICAgICAgIC8vICctZXhwZWN0ZWQuaHRtbCcsCi0gICAgICAg
ICAgICAgICAgLy8gJy1leHBlY3RlZC1taXNtYXRjaC5odG1sJywKLSAgICAgICAgICAgICAgICAv
LyAnLWV4cGVjdGVkLndhdicsCi0gICAgICAgICAgICAgICAgLy8gJy1hY3R1YWwud2F2JywKLSAg
ICAgICAgICAgICAgICAvLyAuLi4gYW5kIHBvc3NpYmx5IG1vcmUuCi0gICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgSU1BR0U6CisgICAgICAgICAgICBwdXNoSW1hZ2VTdWZmaXhl
cygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVEVYVDoKKyAgICAgICAgICAg
IHB1c2hUZXh0U3VmZml4ZXMoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElN
QUdFX1RFWFQ6CisgICAgICAgICAgICBwdXNoSW1hZ2VTdWZmaXhlcygpOworICAgICAgICAgICAg
cHVzaFRleHRTdWZmaXhlcygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1JB
U0g6CisgICAgICAgICAgICBzdWZmaXhMaXN0LnB1c2goa0NyYXNoTG9nU3VmZml4KTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciB0aGUgcmVzdCBvZiB0aGUgcmVzdWx0IHR5cGVzLgorICAgICAgICAgICAg
Ly8gJy1leHBlY3RlZC5odG1sJywKKyAgICAgICAgICAgIC8vICctZXhwZWN0ZWQtbWlzbWF0Y2gu
aHRtbCcsCisgICAgICAgICAgICAvLyAnLWV4cGVjdGVkLndhdicsCisgICAgICAgICAgICAvLyAn
LWFjdHVhbC53YXYnLAorICAgICAgICAgICAgLy8gLi4uIGFuZCBwb3NzaWJseSBtb3JlLgorICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9KTsKIAogICAgIHJldHVybiBzdWZmaXhM
aXN0OwogfQogCityZXN1bHRzLmZhaWx1cmVUeXBlVG9FeHRlbnNpb25MaXN0ID0gZnVuY3Rpb24o
ZmFpbHVyZVR5cGUpCit7CisgICAgc3dpdGNoKGZhaWx1cmVUeXBlKSB7CisgICAgY2FzZSBJTUFH
RToKKyAgICAgICAgcmV0dXJuIFsncG5nJ107CisgICAgY2FzZSBURVhUOgorICAgICAgICByZXR1
cm4gWyd0eHQnXTsKKyAgICBjYXNlIElNQUdFX1RFWFQ6CisgICAgICAgIHJldHVybiBbJ3R4dCcs
ICdwbmcnXTsKKyAgICBkZWZhdWx0OgorICAgICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9y
IHRoZSByZXN0IG9mIHRoZSByZXN1bHQgdHlwZXMuCisgICAgICAgIC8vICctZXhwZWN0ZWQuaHRt
bCcsCisgICAgICAgIC8vICctZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCcsCisgICAgICAgIC8vICct
ZXhwZWN0ZWQud2F2JywKKyAgICAgICAgLy8gJy1hY3R1YWwud2F2JywKKyAgICAgICAgLy8gLi4u
IGFuZCBwb3NzaWJseSBtb3JlLgorICAgICAgICByZXR1cm4gW107CisgICAgfQorfTsKKworcmVz
dWx0cy5jYW5SZWJhc2VsaW5lID0gZnVuY3Rpb24oZmFpbHVyZVR5cGVMaXN0KQoreworICAgIGZv
ciAodmFyIGk9IDA7IGkgPCBmYWlsdXJlVHlwZUxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
aWYgKHJlc3VsdHMuZmFpbHVyZVR5cGVUb0V4dGVuc2lvbkxpc3QoZmFpbHVyZVR5cGVMaXN0W2ld
KS5sZW5ndGggPiAwKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVy
biBmYWxzZTsKK307CisKIGZ1bmN0aW9uIHJlc3VsdHNTdW1tYXJ5VVJMKGJ1aWxkZXJOYW1lLCB0
ZXN0TmFtZSkKIHsKICAgICByZXR1cm4ga1Rlc3RSZXN1bHRzUXVlcnkgKyAkLnBhcmFtKHJlc3Vs
dHNQYXJhbWV0ZXJzKGJ1aWxkZXJOYW1lLCB0ZXN0TmFtZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0
c191bml0dGVzdHMuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRh
L2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5qcwppbmRleCA1NDQ0YzUyNjVlMzZh
YjJiZDAxYzEwOTNhMDZkMmM1YzdhMTg4ZjE5Li43MTcyYzdjOGE0ZWNhNzQ3ZjNiNzFjNzdlMGJl
YzFlYjA1ODY3OTQ2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2Vy
dmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5qcworKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1
bHRzX3VuaXR0ZXN0cy5qcwpAQCAtMzI2LDYgKzMyNiwyMyBAQCB0ZXN0KCJjb2xsZWN0VW5leHBl
Y3RlZFJlc3VsdHMiLCAxLCBmdW5jdGlvbigpIHsKICAgICBkZWVwRXF1YWwoY29sbGVjdGVkUmVz
dWx0cywgWyJURVhUIiwgIklNQUdFIl0pOwogfSk7CiAKK3Rlc3QoImZhaWx1cmVUeXBlVG9FeHRl
bnNpb25MaXN0IiwgNSwgZnVuY3Rpb24oKSB7CisgICAgZGVlcEVxdWFsKHJlc3VsdHMuZmFpbHVy
ZVR5cGVUb0V4dGVuc2lvbkxpc3QoJ1RFWFQnKSwgWyd0eHQnXSk7CisgICAgZGVlcEVxdWFsKHJl
c3VsdHMuZmFpbHVyZVR5cGVUb0V4dGVuc2lvbkxpc3QoJ0lNQUdFK1RFWFQnKSwgWyd0eHQnLCAn
cG5nJ10pOworICAgIGRlZXBFcXVhbChyZXN1bHRzLmZhaWx1cmVUeXBlVG9FeHRlbnNpb25MaXN0
KCdJTUFHRScpLCBbJ3BuZyddKTsKKyAgICBkZWVwRXF1YWwocmVzdWx0cy5mYWlsdXJlVHlwZVRv
RXh0ZW5zaW9uTGlzdCgnQ1JBU0gnKSwgW10pOworICAgIGRlZXBFcXVhbChyZXN1bHRzLmZhaWx1
cmVUeXBlVG9FeHRlbnNpb25MaXN0KCdUSU1FT1VUJyksIFtdKTsKK30pOworCit0ZXN0KCJjYW5S
ZWJhc2VsaW5lIiwgNiwgZnVuY3Rpb24oKSB7CisgICAgb2socmVzdWx0cy5jYW5SZWJhc2VsaW5l
KFsnVEVYVCddKSk7CisgICAgb2socmVzdWx0cy5jYW5SZWJhc2VsaW5lKFsnSU1BR0UrVEVYVCcs
ICdDUkFTSCddKSk7CisgICAgb2socmVzdWx0cy5jYW5SZWJhc2VsaW5lKFsnSU1BR0UnXSkpOwor
ICAgIG9rKCFyZXN1bHRzLmNhblJlYmFzZWxpbmUoWydDUkFTSCddKSk7CisgICAgb2soIXJlc3Vs
dHMuY2FuUmViYXNlbGluZShbJ1RJTUVPVVQnXSkpOworICAgIG9rKCFyZXN1bHRzLmNhblJlYmFz
ZWxpbmUoW10pKTsKK30pOworCiB0ZXN0KCJmZXRjaFJlc3VsdHNVUkxzIiwgNCwgZnVuY3Rpb24o
KSB7CiAgICAgdmFyIHNpbXVsYXRvciA9IG5ldyBOZXR3b3JrU2ltdWxhdG9yKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100912</attachid>
            <date>2011-07-14 18:53:58 -0700</date>
            <delta_ts>2011-07-14 19:06:45 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-64446-20110714185357.patch</filename>
            <type>text/plain</type>
            <size>11728</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDkxMDM5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMTEtMDctMTQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBnYXJkZW4tby1tYXRpYyBzaG91bGQgaGF2ZSBhICJyZWJhc2VsaW5lIiBidXR0b24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NDQ2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KKworICAgICAgICBUaGlzIHBhdGNoIGFk
ZHMgYSBiYXNpYyBSZWJhc2VsaW5lIGJ1dHRvbiB0aGF0IGNvcGllcyB0aGUgYmFzZWxpbmVzCisg
ICAgICAgIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0cyBwYW5lIGludG8gdGhlIGFwcHJvcHJpYXRl
IGRpcmVjdG9yeSBpbiB5b3VyCisgICAgICAgIHdvcmtpbmcgY29weS4KKworICAgICAgICBUaGVy
ZSBhcmUgdHdvIG1haW4gbGltaXRhdGlvbnM6CisKKyAgICAgICAgMSkgVGhlcmUgaXMgbm8gVUkg
Zm9yIGFjdHVhbGx5IGNvbW1pdHRpbmcgdGhlIGJhc2VsaW5lcy4KKworICAgICAgICAyKSBUaGUg
YmFzZWxpbmVzIGFyZSBub3Qgb3B0aW1pemVkIGZvciByZWR1bmRhbmN5IChtZWFuaW5nIHlvdSBj
YW4gaGF2ZQorICAgICAgICAgICBpZGVudGljYWwgYmFzZWxpbmVzIGluIGJvdGggY2hyb21pdW0t
bWFjIGFuZCBjaHJvbWl1bS13aW4pLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3JlYmFzZWxpbmUucHk6CisgICAgICAgICAgICAtIFR1cm5zIG91dCB3ZSBuZWVk
IHRvIGNyZWF0ZSB0aGUgZGlyZWN0b3J5IGZvciB0aGUgYmFzZWxpbmUgaWYgaXQgZG9lc24ndCBl
eGlzdCB5ZXQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9n
YXJkZW5pbmdzZXJ2ZXIvY2hlY2tvdXQuanM6CisgICAgICAgICAgICAtIEFkZCBhbiBwcm9ncmFt
YXRpYyBBUEkgdG8gY2FsbCB0aGUgc2VydmVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWw6CisgICAgICAgICAg
ICAtIEFkZCB0aGUgcmViYXNlbGluZSBidXR0b24gaXRzZWxmLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4uY3NzOgorICAg
ICAgICAgICAgLSBDaGFuZ2UgdGhlIENTUyBzbyB0aGF0IHRoZSBSZWJhc2VsaW5lIGFuZCBDbG9z
ZSBidXR0b25zIGNhbgorICAgICAgICAgICAgICBhcHBlYXIgaW4gdGhlIG5vcm1hbCBvcmRlciBp
biB0aGUgRE9NLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEv
Z2FyZGVuaW5nc2VydmVyL21haW4uanM6CisgICAgICAgICAgICAtIEJpbmQgdGhlIGV2ZW50IGFu
ZCB0cmFuc2xhdGUgdGhlIHBhcmFtZXRlcnMuCisgICAgICAgICAgICAtIEhpZGUvc2hvdyB0aGUg
cmViYXNlbGluZSBidXR0b24sIGFzIGFwcHJvcHJpYXRlLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHMuanM6CisgICAg
ICAgICAgICAtIEFkZCBzb21lIGhlbHBmdWwgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIG1hbmlwdWxh
dGluZyBmYWlsdXJlIHR5cGVzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHNfdW5pdHRlc3RzLmpzOgorCiAyMDExLTA3
LTE0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJ
T046IHdlYmtpdC1wYXRjaCByb2xsLWNocm9taXVtLWRlcHMgaXMgYnJva2VuCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weQko
cmV2aXNpb24gOTEwMzkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cmViYXNlbGluZS5weQkod29ya2luZyBjb3B5KQpAQCAtMTAxLDcgKzEwMSw5IEBAIGNsYXNzIFJl
YmFzZWxpbmVUZXN0KEFic3RyYWN0RGVjbGFyYXRpdmUKICAgICAgICAgcmV0dXJuIHBvcnQuYmFz
ZWxpbmVfcGF0aCgpCiAKICAgICBkZWYgX3NhdmVfYmFzZWxpbmUoc2VsZiwgZGF0YSwgdGFyZ2V0
X2Jhc2VsaW5lKToKLSAgICAgICAgc2VsZi5fdG9vbC5maWxlc3lzdGVtLndyaXRlX2JpbmFyeV9m
aWxlKHRhcmdldF9iYXNlbGluZSwgZGF0YSkKKyAgICAgICAgZmlsZXN5c3RlbSA9IHNlbGYuX3Rv
b2wuZmlsZXN5c3RlbQorICAgICAgICBmaWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KGZp
bGVzeXN0ZW0uZGlybmFtZSh0YXJnZXRfYmFzZWxpbmUpKQorICAgICAgICBmaWxlc3lzdGVtLndy
aXRlX2JpbmFyeV9maWxlKHRhcmdldF9iYXNlbGluZSwgZGF0YSkKICAgICAgICAgaWYgbm90IHNl
bGYuX3Rvb2wuc2NtKCkuZXhpc3RzKHRhcmdldF9iYXNlbGluZSk6CiAgICAgICAgICAgICBzZWxm
Ll90b29sLnNjbSgpLmFkZCh0YXJnZXRfYmFzZWxpbmUpCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2Fy
ZGVuaW5nc2VydmVyL2NoZWNrb3V0LmpzCShyZXZpc2lvbiA5MTAzOSkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2NoZWNrb3V0Lmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw0ICsyOCwzMSBAQCBjaGVja291dC5leGlzdHNBdFJldmlz
aW9uID0gZnVuY3Rpb24gKHN1CiAgICAgfSk7CiB9OwogCitjaGVja291dC5yZWJhc2VsaW5lID0g
ZnVuY3Rpb24oYnVpbGRlck5hbWUsIHRlc3ROYW1lLCBmYWlsdXJlVHlwZUxpc3QsIGNhbGxiYWNr
KQoreworICAgIHZhciBleHRlbnNpb25MaXN0ID0gW107CisKKyAgICAkLmVhY2goZmFpbHVyZVR5
cGVMaXN0LCBmdW5jdGlvbihpbmRleCwgZmFpbHVyZVR5cGUpIHsKKyAgICAgICAgZXh0ZW5zaW9u
TGlzdCA9IGV4dGVuc2lvbkxpc3QuY29uY2F0KHJlc3VsdHMuZmFpbHVyZVR5cGVUb0V4dGVuc2lv
bkxpc3QoZmFpbHVyZVR5cGUpKTsKKyAgICB9KTsKKworICAgIHZhciByZXF1ZXN0c0luRmxpZ2h0
ID0gZXh0ZW5zaW9uTGlzdC5sZW5ndGg7CisKKyAgICBpZiAoIXJlcXVlc3RzSW5GbGlnaHQpCisg
ICAgICAgIGNhbGxiYWNrKCk7CisKKyAgICAkLmVhY2goZXh0ZW5zaW9uTGlzdCwgZnVuY3Rpb24o
aW5kZXgsIGV4dGVuc2lvbikgeworICAgICAgICAkLnBvc3QoJy9yZWJhc2VsaW5lPycgKyAkLnBh
cmFtKHsKKyAgICAgICAgICAgICdidWlsZGVyJzogYnVpbGRlck5hbWUsCisgICAgICAgICAgICAn
dGVzdCc6IHRlc3ROYW1lLAorICAgICAgICAgICAgLy8gRklYTUU6IFJlbmFtZSAic3VmZml4IiBx
dWVyeSBwYXJhbWV0ZXIgdG8gImV4dGVuc2lvbiIuCisgICAgICAgICAgICAnc3VmZml4JzogZXh0
ZW5zaW9uCisgICAgICAgIH0pLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIC0tcmVxdWVzdHNJ
bkZsaWdodDsKKyAgICAgICAgICAgIGlmICghcmVxdWVzdHNJbkZsaWdodCkKKyAgICAgICAgICAg
ICAgICBjYWxsYmFjaygpOworICAgICAgICB9KTsKKyAgICB9KTsKK307CisKIH0pKCk7CkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9pbmRleC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
ZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL2luZGV4Lmh0bWwJKHJldmlzaW9uIDkxMDM5KQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2
ZXIvaW5kZXguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsNyArMTMsMTUgQEAKIDxkaXYgY2xh
c3M9ImJ1dHRlcmJhciI+PHNwYW4gY2xhc3M9InN0YXR1cyI+TG9hZGluZy4uLjwvc3Bhbj48L2Rp
dj4KIDxkaXYgY2xhc3M9InJlc3VsdHMiPjwvZGl2PgogPGRpdiBjbGFzcz0icmVzdWx0cy1kZXRh
aWwiPgotPGRpdiBjbGFzcz0idG9vbGJhciI+PHNwYW4gY2xhc3M9InN0YXR1cyI+PC9zcGFuPiA8
YSBjbGFzcz0iZGlzbWlzcyIgaHJlZj0iIyI+Q2xvc2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0iY29u
dGVudCI+PC9kaXY+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImFjdGlvbnMiPgorICAgICAgICAgICAgPGEgY2xhc3M9InJlYmFzZWxpbmUiIGhy
ZWY9IiMiPlJlYmFzZWxpbmU8L2E+CisgICAgICAgICAgICA8YSBjbGFzcz0iZGlzbWlzcyIgaHJl
Zj0iIyI+Q2xvc2U8L2E+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0
dXMiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPjwvZGl2Pgor
PC9kaXY+CiA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGli
cy9qcXVlcnkvMS40LjIvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+IAogPHNjcmlwdCBzcmM9ImNv
bmZpZy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iYmFzZS5qcyI+PC9zY3JpcHQ+CkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZl
ci9tYWluLmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2Vy
dmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmNzcwkocmV2aXNpb24gOTEwMzkpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9t
YWluLmNzcwkod29ya2luZyBjb3B5KQpAQCAtMTc3LDEwICsxNzcsMTMgQEAgdGQ6bGFzdC1vZi10
eXBlIHsKICAgICBwYWRkaW5nOiA1cHg7CiB9CiAKLS5yZXN1bHRzLWRldGFpbCAudG9vbGJhciAu
ZGlzbWlzcyB7CisucmVzdWx0cy1kZXRhaWwgLnRvb2xiYXIgLmFjdGlvbnMgewogICAgIGZsb2F0
OiByaWdodDsKK30KKworLnJlc3VsdHMtZGV0YWlsIC50b29sYmFyIC5hY3Rpb25zIGEgewogICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICBwYWRkaW5nOiA1cHg7CisgICAgcGFkZGluZzog
NXB4IDVweCA1cHggMHB4OwogfQogCiAucmVzdWx0cy1kZXRhaWwgLnRvb2xiYXIgewpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIv
bWFpbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9tYWluLmpzCShyZXZpc2lvbiA5MTAzOSkKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2RhdGEvZ2FyZGVuaW5nc2VydmVyL21haW4u
anMJKHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDcgQEAgZnVuY3Rpb24gc2hvd1Jlc3VsdHNE
ZXRhaWwoKQogICAgICAgICAgICAgc3RhdHVzLnRleHQodGVzdE5hbWUgKyAnIFsnICsgYnVpbGRl
ck5hbWUgKyAnXScpOwogICAgICAgICAgICAgY29udGVudC5lbXB0eSgpOwogICAgICAgICAgICAg
Y29udGVudC5hcHBlbmQodWkuZmFpbHVyZURldGFpbHMocmVzdWx0c1VSTHMpKTsKKyAgICAgICAg
ICAgICQoJy5yZXN1bHRzLWRldGFpbCAuYWN0aW9ucyAucmViYXNlbGluZScpLnRvZ2dsZShyZXN1
bHRzLmNhblJlYmFzZWxpbmUoZmFpbHVyZVR5cGVMaXN0KSk7CiAgICAgICAgICAgICAkKCcuZmFp
bHVyZS1kZXRhaWxzJywgY29udGVudCkuYXR0cihjb25maWcua0J1aWxkZXJOYW1lQXR0ciwgYnVp
bGRlck5hbWUpOwogICAgICAgICAgICAgJCgnLmZhaWx1cmUtZGV0YWlscycsIGNvbnRlbnQpLmF0
dHIoY29uZmlnLmtUZXN0TmFtZUF0dHIsIHRlc3ROYW1lKTsKICAgICAgICAgICAgICQoJy5mYWls
dXJlLWRldGFpbHMnLCBjb250ZW50KS5hdHRyKGNvbmZpZy5rRmFpbHVyZVR5cGVzQXR0ciwgZmFp
bHVyZVR5cGVzKTsKQEAgLTEwOCw4ICsxMDksMjIgQEAgZnVuY3Rpb24gaGlkZVJlc3VsdHNEZXRh
aWwoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiByZWJhc2VsaW5lUmVzdWx0cygpCit7CisgICAg
dmFyIGZhaWx1cmVEZXRhaWxzID0gJCgnLmZhaWx1cmUtZGV0YWlscycsICQodGhpcykucGFyZW50
cygnLnJlc3VsdHMtZGV0YWlsJykpOworCisgICAgdmFyIGJ1aWxkZXJOYW1lID0gZmFpbHVyZURl
dGFpbHMuYXR0cihjb25maWcua0J1aWxkZXJOYW1lQXR0cik7CisgICAgdmFyIHRlc3ROYW1lID0g
ZmFpbHVyZURldGFpbHMuYXR0cihjb25maWcua1Rlc3ROYW1lQXR0cik7CisgICAgdmFyIGZhaWx1
cmVUeXBlcyA9IGZhaWx1cmVEZXRhaWxzLmF0dHIoY29uZmlnLmtGYWlsdXJlVHlwZXNBdHRyKTsK
KyAgICB2YXIgZmFpbHVyZVR5cGVMaXN0ID0gZmFpbHVyZVR5cGVzLnNwbGl0KCcgJyk7CisKKyAg
ICBkaXNwbGF5T25CdXR0ZXJiYXIoJ1JlYmFzZWxpbmluZy4uLicpOworICAgIGNoZWNrb3V0LnJl
YmFzZWxpbmUoYnVpbGRlck5hbWUsIHRlc3ROYW1lLCBmYWlsdXJlVHlwZUxpc3QsIGRpc21pc3NC
dXR0ZXJiYXIpOworfQorCiAkKCcucmVncmVzc2lvbiAud2hlcmUgYScpLmxpdmUoJ2NsaWNrJywg
c2hvd1Jlc3VsdHNEZXRhaWwpOwotJCgnLnJlc3VsdHMtZGV0YWlsIC5kaXNtaXNzJykubGl2ZSgn
Y2xpY2snLCBoaWRlUmVzdWx0c0RldGFpbCk7CiskKCcucmVzdWx0cy1kZXRhaWwgLmFjdGlvbnMg
LmRpc21pc3MnKS5saXZlKCdjbGljaycsIGhpZGVSZXN1bHRzRGV0YWlsKTsKKyQoJy5yZXN1bHRz
LWRldGFpbCAuYWN0aW9ucyAucmViYXNlbGluZScpLmxpdmUoJ2NsaWNrJywgcmViYXNlbGluZVJl
c3VsdHMpOwogCiAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICAgICBzaG93UmVzdWx0
cyhmdW5jdGlvbigpIHsKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJz
L2RhdGEvZ2FyZGVuaW5nc2VydmVyL3Jlc3VsdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZGF0YS9nYXJkZW5pbmdzZXJ2ZXIvcmVzdWx0cy5q
cwkocmV2aXNpb24gOTEwMzkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw5IEBAIHZhciBrSW1hZ2VEaWZmU3VmZml4ID0gJy1kaWZmLnBuZyc7CiB2YXIga1RleHRE
aWZmU3VmZml4ID0gJy1kaWZmLnR4dCc7CiB2YXIga0NyYXNoTG9nU3VmZml4ID0gJy1jcmFzaC1s
b2cudHh0JzsKIAordmFyIGtQTkdFeHRlbnNpb24gPSAncG5nJzsKK3ZhciBrVFhURXh0ZW5zaW9u
ID0gJ3R4dCc7CisKIHZhciBrUHJlZmVycmVkU3VmZml4T3JkZXIgPSBbCiAgICAga0V4cGVjdGVk
SW1hZ2VTdWZmaXgsCiAgICAga0FjdHVhbEltYWdlU3VmZml4LApAQCAtODgsMzMgKzkxLDYwIEBA
IGZ1bmN0aW9uIHBvc3NpYmxlU3VmZml4TGlzdEZvcihmYWlsdXJlVHkKIAogICAgICQuZWFjaChm
YWlsdXJlVHlwZUxpc3QsIGZ1bmN0aW9uKGluZGV4LCBmYWlsdXJlVHlwZSkgewogICAgICAgICBz
d2l0Y2goZmFpbHVyZVR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgICAg
ICAgICAgcHVzaEltYWdlU3VmZml4ZXMoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGNhc2UgVEVYVDoKLSAgICAgICAgICAgICAgICBwdXNoVGV4dFN1ZmZpeGVzKCk7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIElNQUdFX1RFWFQ6Ci0gICAg
ICAgICAgICAgICAgcHVzaEltYWdlU3VmZml4ZXMoKTsKLSAgICAgICAgICAgICAgICBwdXNoVGV4
dFN1ZmZpeGVzKCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENS
QVNIOgotICAgICAgICAgICAgICAgIHN1ZmZpeExpc3QucHVzaChrQ3Jhc2hMb2dTdWZmaXgpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHRoZSByZXN0IG9mIHRoZSByZXN1bHQgdHlw
ZXMuCi0gICAgICAgICAgICAgICAgLy8gJy1leHBlY3RlZC5odG1sJywKLSAgICAgICAgICAgICAg
ICAvLyAnLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwnLAotICAgICAgICAgICAgICAgIC8vICctZXhw
ZWN0ZWQud2F2JywKLSAgICAgICAgICAgICAgICAvLyAnLWFjdHVhbC53YXYnLAotICAgICAgICAg
ICAgICAgIC8vIC4uLiBhbmQgcG9zc2libHkgbW9yZS4KLSAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBJTUFHRToKKyAgICAgICAgICAgIHB1c2hJbWFnZVN1ZmZpeGVzKCk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBURVhUOgorICAgICAgICAgICAgcHVzaFRl
eHRTdWZmaXhlcygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSU1BR0VfVEVY
VDoKKyAgICAgICAgICAgIHB1c2hJbWFnZVN1ZmZpeGVzKCk7CisgICAgICAgICAgICBwdXNoVGV4
dFN1ZmZpeGVzKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDUkFTSDoKKyAg
ICAgICAgICAgIHN1ZmZpeExpc3QucHVzaChrQ3Jhc2hMb2dTdWZmaXgpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBGSVhNRTogQWRkIHN1cHBv
cnQgZm9yIHRoZSByZXN0IG9mIHRoZSByZXN1bHQgdHlwZXMuCisgICAgICAgICAgICAvLyAnLWV4
cGVjdGVkLmh0bWwnLAorICAgICAgICAgICAgLy8gJy1leHBlY3RlZC1taXNtYXRjaC5odG1sJywK
KyAgICAgICAgICAgIC8vICctZXhwZWN0ZWQud2F2JywKKyAgICAgICAgICAgIC8vICctYWN0dWFs
LndhdicsCisgICAgICAgICAgICAvLyAuLi4gYW5kIHBvc3NpYmx5IG1vcmUuCisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgIH0pOwogCiAgICAgcmV0dXJuIHN1ZmZpeExpc3Q7CiB9
CiAKK3Jlc3VsdHMuZmFpbHVyZVR5cGVUb0V4dGVuc2lvbkxpc3QgPSBmdW5jdGlvbihmYWlsdXJl
VHlwZSkKK3sKKyAgICBzd2l0Y2goZmFpbHVyZVR5cGUpIHsKKyAgICBjYXNlIElNQUdFOgorICAg
ICAgICByZXR1cm4gW2tQTkdFeHRlbnNpb25dOworICAgIGNhc2UgVEVYVDoKKyAgICAgICAgcmV0
dXJuIFtrVFhURXh0ZW5zaW9uXTsKKyAgICBjYXNlIElNQUdFX1RFWFQ6CisgICAgICAgIHJldHVy
biBba1RYVEV4dGVuc2lvbiwga1BOR0V4dGVuc2lvbl07CisgICAgZGVmYXVsdDoKKyAgICAgICAg
Ly8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciB0aGUgcmVzdCBvZiB0aGUgcmVzdWx0IHR5cGVzLgor
ICAgICAgICAvLyAnLWV4cGVjdGVkLmh0bWwnLAorICAgICAgICAvLyAnLWV4cGVjdGVkLW1pc21h
dGNoLmh0bWwnLAorICAgICAgICAvLyAnLWV4cGVjdGVkLndhdicsCisgICAgICAgIC8vICctYWN0
dWFsLndhdicsCisgICAgICAgIC8vIC4uLiBhbmQgcG9zc2libHkgbW9yZS4KKyAgICAgICAgcmV0
dXJuIFtdOworICAgIH0KK307CisKK3Jlc3VsdHMuY2FuUmViYXNlbGluZSA9IGZ1bmN0aW9uKGZh
aWx1cmVUeXBlTGlzdCkKK3sKKyAgICByZXR1cm4gZmFpbHVyZVR5cGVMaXN0LnNvbWUoZnVuY3Rp
b24oZWxlbWVudCkgeworICAgICAgICByZXR1cm4gcmVzdWx0cy5mYWlsdXJlVHlwZVRvRXh0ZW5z
aW9uTGlzdChlbGVtZW50KS5sZW5ndGggPiAwOworICAgIH0pOworfTsKKwogZnVuY3Rpb24gcmVz
dWx0c1N1bW1hcnlVUkwoYnVpbGRlck5hbWUsIHRlc3ROYW1lKQogewogICAgIHJldHVybiBrVGVz
dFJlc3VsdHNRdWVyeSArICQucGFyYW0ocmVzdWx0c1BhcmFtZXRlcnMoYnVpbGRlck5hbWUsIHRl
c3ROYW1lKSk7CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRh
L2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1
bHRzX3VuaXR0ZXN0cy5qcwkocmV2aXNpb24gOTEwMzkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc2VydmVycy9kYXRhL2dhcmRlbmluZ3NlcnZlci9yZXN1bHRzX3VuaXR0ZXN0cy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMzI2LDYgKzMyNiwyMyBAQCB0ZXN0KCJjb2xsZWN0VW5leHBl
Y3RlZFJlc3VsdHMiLCAxLCBmdW5jCiAgICAgZGVlcEVxdWFsKGNvbGxlY3RlZFJlc3VsdHMsIFsi
VEVYVCIsICJJTUFHRSJdKTsKIH0pOwogCit0ZXN0KCJmYWlsdXJlVHlwZVRvRXh0ZW5zaW9uTGlz
dCIsIDUsIGZ1bmN0aW9uKCkgeworICAgIGRlZXBFcXVhbChyZXN1bHRzLmZhaWx1cmVUeXBlVG9F
eHRlbnNpb25MaXN0KCdURVhUJyksIFsndHh0J10pOworICAgIGRlZXBFcXVhbChyZXN1bHRzLmZh
aWx1cmVUeXBlVG9FeHRlbnNpb25MaXN0KCdJTUFHRStURVhUJyksIFsndHh0JywgJ3BuZyddKTsK
KyAgICBkZWVwRXF1YWwocmVzdWx0cy5mYWlsdXJlVHlwZVRvRXh0ZW5zaW9uTGlzdCgnSU1BR0Un
KSwgWydwbmcnXSk7CisgICAgZGVlcEVxdWFsKHJlc3VsdHMuZmFpbHVyZVR5cGVUb0V4dGVuc2lv
bkxpc3QoJ0NSQVNIJyksIFtdKTsKKyAgICBkZWVwRXF1YWwocmVzdWx0cy5mYWlsdXJlVHlwZVRv
RXh0ZW5zaW9uTGlzdCgnVElNRU9VVCcpLCBbXSk7Cit9KTsKKwordGVzdCgiY2FuUmViYXNlbGlu
ZSIsIDYsIGZ1bmN0aW9uKCkgeworICAgIG9rKHJlc3VsdHMuY2FuUmViYXNlbGluZShbJ1RFWFQn
XSkpOworICAgIG9rKHJlc3VsdHMuY2FuUmViYXNlbGluZShbJ0lNQUdFK1RFWFQnLCAnQ1JBU0gn
XSkpOworICAgIG9rKHJlc3VsdHMuY2FuUmViYXNlbGluZShbJ0lNQUdFJ10pKTsKKyAgICBvaygh
cmVzdWx0cy5jYW5SZWJhc2VsaW5lKFsnQ1JBU0gnXSkpOworICAgIG9rKCFyZXN1bHRzLmNhblJl
YmFzZWxpbmUoWydUSU1FT1VUJ10pKTsKKyAgICBvayghcmVzdWx0cy5jYW5SZWJhc2VsaW5lKFtd
KSk7Cit9KTsKKwogdGVzdCgiZmV0Y2hSZXN1bHRzVVJMcyIsIDQsIGZ1bmN0aW9uKCkgewogICAg
IHZhciBzaW11bGF0b3IgPSBuZXcgTmV0d29ya1NpbXVsYXRvcigpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>