<?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>63709</bug_id>
          
          <creation_ts>2011-06-30 06:23:58 -0700</creation_ts>
          <short_desc>Disabled or read-only input type=search still allows clicking [x] to clear contents</short_desc>
          <delta_ts>2011-07-01 06:58:35 -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>Forms</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>haraken</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>430356</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-06-30 06:23:58 -0700</bug_when>
    <thetext>See Chromium bug 85552: http://code.google.com/p/chromium/issues/detail?id=85552

Given the following code:

&lt;input type=&quot;search&quot;  value=&quot;Test&quot; disabled&gt;

Chrome displays a text field with an [X] button on the right to clear the contents. Clicking the [X] button works even when the control is disabled. Safari, which also shows an [X], does not allow clicking it to clear the contents of the field when it&apos;s disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430376</commentid>
    <comment_count>1</comment_count>
      <attachid>99295</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-06-30 06:57:00 -0700</bug_when>
    <thetext>Created attachment 99295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430393</commentid>
    <comment_count>2</comment_count>
      <attachid>99295</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-30 07:16:27 -0700</bug_when>
    <thetext>Comment on attachment 99295
Patch

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

BTW, Does NSSearchField show the [X] button when it is disabled/readonly?

&gt; LayoutTests/fast/forms/search-cancel-button-mouseup.html:2
&gt;  &lt;html&gt;

This file is for &apos;cancel-button-mouseup&apos;. So merging a test case of this bug is not suitable.
We have disabled-search-input.html.  It&apos;s a better place to add the test case.

&gt; LayoutTests/fast/forms/search-cancel-button-mouseup.html:13
&gt; +&lt;input id=&quot;search2&quot; type=&quot;search&quot; value=&quot;value2&quot;&gt;&lt;br /&gt;
&gt; +&lt;input id=&quot;search3&quot; type=&quot;search&quot; value=&quot;value3&quot; disabled=&quot;disabled&quot;&gt;&lt;br /&gt;
&gt; +&lt;input id=&quot;search4&quot; type=&quot;search&quot; value=&quot;value4&quot; disabled=&quot;disabled&quot;&gt;&lt;br /&gt;
&gt; +&lt;input id=&quot;search5&quot; type=&quot;search&quot; value=&quot;value5&quot; disabled=&quot;disabled&quot;&gt;&lt;br /&gt;

You fixes &apos;readonly&apos; too.  So you should make test cases for &apos;readonly&apos; too.

&gt; LayoutTests/fast/forms/search-cancel-button-mouseup.html:22
&gt; +    var input = document.getElementById(&quot;search0&quot;);

nit: You can use getElementsByTagName(&apos;input&apos;) and index-access. Also, resources/common.js has $().

&gt; LayoutTests/fast/forms/search-cancel-button-mouseup.html:43
&gt; +    eventSender.mouseMoveTo(middleX, y);
&gt; +    eventSender.mouseDown();
&gt; +    eventSender.mouseMoveTo(buttonX, y);
&gt; +    eventSender.mouseUp();

You had better have click(x, y) function.

&gt; Source/WebCore/ChangeLog:5
&gt; +        Disallow clicking an [X] button in &apos;search&apos; input forms when &apos;disabled&apos; attribute is set.

Please mention &apos;readonly&apos; too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430620</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-30 12:26:12 -0700</bug_when>
    <thetext>It&apos;s partially a regression - in Safari 5.0.5, the [x] button accepted clicks, but it didn&apos;t clear the content in disabled element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431077</commentid>
    <comment_count>4</comment_count>
      <attachid>99451</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-01 03:09:31 -0700</bug_when>
    <thetext>Created attachment 99451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431078</commentid>
    <comment_count>5</comment_count>
      <attachid>99452</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-01 03:10:29 -0700</bug_when>
    <thetext>Created attachment 99452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431079</commentid>
    <comment_count>6</comment_count>
      <attachid>99295</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-01 03:11:46 -0700</bug_when>
    <thetext>Comment on attachment 99295
Patch

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

&gt;&gt; LayoutTests/fast/forms/search-cancel-button-mouseup.html:2
&gt;&gt;  &lt;html&gt;
&gt; 
&gt; This file is for &apos;cancel-button-mouseup&apos;. So merging a test case of this bug is not suitable.
&gt; We have disabled-search-input.html.  It&apos;s a better place to add the test case.

Done. Reverted search-cancel-button-mouseup.html to the original.

&gt;&gt; LayoutTests/fast/forms/search-cancel-button-mouseup.html:13
&gt;&gt; +&lt;input id=&quot;search5&quot; type=&quot;search&quot; value=&quot;value5&quot; disabled=&quot;disabled&quot;&gt;&lt;br /&gt;
&gt; 
&gt; You fixes &apos;readonly&apos; too.  So you should make test cases for &apos;readonly&apos; too.

Added the test cases.

&gt;&gt; LayoutTests/fast/forms/search-cancel-button-mouseup.html:22
&gt;&gt; +    var input = document.getElementById(&quot;search0&quot;);
&gt; 
&gt; nit: You can use getElementsByTagName(&apos;input&apos;) and index-access. Also, resources/common.js has $().

I removed multiple &apos;input&apos;s and instead used one &apos;input&apos; in the latest patch.

&gt;&gt; LayoutTests/fast/forms/search-cancel-button-mouseup.html:43
&gt;&gt; +    eventSender.mouseUp();
&gt; 
&gt; You had better have click(x, y) function.

Done.

&gt;&gt; Source/WebCore/ChangeLog:5
&gt;&gt; +        Disallow clicking an [X] button in &apos;search&apos; input forms when &apos;disabled&apos; attribute is set.
&gt; 
&gt; Please mention &apos;readonly&apos; too.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431082</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-01 03:19:04 -0700</bug_when>
    <thetext>&gt; It&apos;s partially a regression - in Safari 5.0.5, the [x] button accepted clicks, but it didn&apos;t clear the content in disabled element.

Thank you very much for the review. I confirmed the followings:

- In released Safari 5.0.5 (6533.21.1, with WebKit r81529), the [X] button accepts clicks. The [X] button does not clear the content if &apos;disabled&apos; is set, but clears the content if &apos;readonly&apos; is set. 

- In Safari 5.0.5 (6533.21.1, with WebKit r89995), the [X] button accepts clicks. The [X] button clears the content if &apos;disabled&apos; or &apos;readonly&apos; is set. 

- In Safari 5.0.5 (with my WebKit patch), the [X] button accepts clicks. The [X] button does not clear the content if &apos;disabled&apos; or &apos;readonly&apos; is set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431089</commentid>
    <comment_count>8</comment_count>
      <attachid>99452</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-01 04:04:15 -0700</bug_when>
    <thetext>Comment on attachment 99452
Patch

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

&gt; LayoutTests/fast/forms/disabled-search-input-expected.txt:11
&gt; +PASS Value is &quot;&quot;.
&gt; +PASS Value is &quot;b&quot;.
&gt; +PASS Value is &quot;foo&quot;.
&gt; +PASS Value is &quot;foo&quot;.
&gt; +PASS Value is &quot;foo&quot;.
&gt; +PASS Value is &quot;foo&quot;.
&gt; +PASS Value is &quot;foo&quot;.
&gt; +PASS Value is &quot;foo&quot;.

Test result readability is not good.
Please show each of test conditions by debug();

&gt; LayoutTests/fast/forms/disabled-search-input.html:8
&gt; +&lt;input id=&quot;search_input&quot; type=&quot;search&quot; /&gt;

The purpose of the existing test is to check behavior in a case that a disabled search field gets enabled.  You must add &apos;disabled&apos; here.

&gt; LayoutTests/fast/forms/disabled-search-input.html:15
&gt; +function click(button) {

The argument name &apos;button&apos; is confusing.  It&apos;s a position of something.

&gt; LayoutTests/fast/forms/disabled-search-input.html:37
&gt; +function checkResult(input, expected) {
&gt; +    if (input.value == expected)
&gt; +        testPassed(&apos;Value is &quot;&apos; + input.value + &apos;&quot;.&apos;);
&gt; +    else
&gt; +        testFailed(&apos;Value is &quot;&apos; + input.value + &apos;&quot;, but it should be &quot;&apos; + expected + &apos;&quot;.&apos;);
&gt; +}

This function is not needed.
You can write it as:
    shouldBe(&apos;input.value&apos;, &apos;&quot;foo&quot;&apos;);

&gt; LayoutTests/fast/forms/disabled-search-input.html:39
&gt; +function setInputAttribute(input, value, disabled, readonly) {

Attribute -&gt; Attributes?

&gt; LayoutTests/fast/forms/disabled-search-input.html:45
&gt; +    if (readonly)
&gt; +        input.setAttribute(&quot;readonly&quot;, readonly);
&gt; +    else if (input.hasAttribute(&quot;readonly&quot;))
&gt; +        input.removeAttribute(&quot;readonly&quot;);

Why don&apos;t you use input.readOnly = readonly ?

&gt; LayoutTests/fast/forms/disabled-search-input.html:50
&gt; +    var cancelButton = searchCancelButtonPosition(input);

&apos;cancelButton&apos; is not a good name.  It&apos;s a position, not button.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431090</commentid>
    <comment_count>9</comment_count>
      <attachid>99452</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-01 04:08:45 -0700</bug_when>
    <thetext>Comment on attachment 99452
Patch

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

&gt;&gt; LayoutTests/fast/forms/disabled-search-input.html:8
&gt;&gt; +&lt;input id=&quot;search_input&quot; type=&quot;search&quot; /&gt;
&gt; 
&gt; The purpose of the existing test is to check behavior in a case that a disabled search field gets enabled.  You must add &apos;disabled&apos; here.

Also, the existing test clicks the center of the search field in order to get focus, not the cancel button.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431106</commentid>
    <comment_count>10</comment_count>
      <attachid>99463</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-01 05:40:43 -0700</bug_when>
    <thetext>Created attachment 99463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431107</commentid>
    <comment_count>11</comment_count>
      <attachid>99452</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-01 05:41:06 -0700</bug_when>
    <thetext>Comment on attachment 99452
Patch

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

&gt;&gt; LayoutTests/fast/forms/disabled-search-input-expected.txt:11
&gt;&gt; +PASS Value is &quot;foo&quot;.
&gt; 
&gt; Test result readability is not good.
&gt; Please show each of test conditions by debug();

Done.

&gt; LayoutTests/fast/forms/disabled-search-input.html:1
&gt; +&lt;!DOCTYPE html&gt;

I renamed the file to search-disabled-readonly.html.

&gt;&gt;&gt; LayoutTests/fast/forms/disabled-search-input.html:8
&gt;&gt;&gt; +&lt;input id=&quot;search_input&quot; type=&quot;search&quot; /&gt;
&gt;&gt; 
&gt;&gt; The purpose of the existing test is to check behavior in a case that a disabled search field gets enabled.  You must add &apos;disabled&apos; here.
&gt; 
&gt; Also, the existing test clicks the center of the search field in order to get focus, not the cancel button.

Done. I added the test cases for both, i.e. (1) click the center of the form and (2) click the cancel button.

&gt;&gt; LayoutTests/fast/forms/disabled-search-input.html:15
&gt;&gt; +function click(button) {
&gt; 
&gt; The argument name &apos;button&apos; is confusing.  It&apos;s a position of something.

Done.

&gt;&gt; LayoutTests/fast/forms/disabled-search-input.html:37
&gt;&gt; +}
&gt; 
&gt; This function is not needed.
&gt; You can write it as:
&gt;     shouldBe(&apos;input.value&apos;, &apos;&quot;foo&quot;&apos;);

Done.

&gt;&gt; LayoutTests/fast/forms/disabled-search-input.html:39
&gt;&gt; +function setInputAttribute(input, value, disabled, readonly) {
&gt; 
&gt; Attribute -&gt; Attributes?

Done.

&gt;&gt; LayoutTests/fast/forms/disabled-search-input.html:45
&gt;&gt; +        input.removeAttribute(&quot;readonly&quot;);
&gt; 
&gt; Why don&apos;t you use input.readOnly = readonly ?

Done.

&gt;&gt; LayoutTests/fast/forms/disabled-search-input.html:50
&gt;&gt; +    var cancelButton = searchCancelButtonPosition(input);
&gt; 
&gt; &apos;cancelButton&apos; is not a good name.  It&apos;s a position, not button.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431111</commentid>
    <comment_count>12</comment_count>
      <attachid>99463</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-01 05:48:52 -0700</bug_when>
    <thetext>Comment on attachment 99463
Patch

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

&gt; LayoutTests/fast/forms/search-disabled-readonly-expected.txt:8
&gt; +Test on the input form with disabled=false and readonly=false
&gt; +Click the cancel button:
&gt; +PASS input.value is &quot;&quot;
&gt; +... and then input one character:
&gt; +PASS input.value is &quot;b&quot;

This doesn&apos;t cover the original scenario of disabled-search-input.html.
The scenario was:
  1. layout with &lt;input type=search disabled&gt;
  2. Click the center of it
  3. Type a key
  4. Expect that the character is inserted.

But, you don&apos;t need to cover the scenario if you don&apos;t remove disabled-search-input.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431113</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-01 05:49:47 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; This doesn&apos;t cover the original scenario of disabled-search-input.html.
&gt; The scenario was:
&gt;   1. layout with &lt;input type=search disabled&gt;

1.5 disabled = false

&gt;   2. Click the center of it
&gt;   3. Type a key
&gt;   4. Expect that the character is inserted.
&gt; 
&gt; But, you don&apos;t need to cover the scenario if you don&apos;t remove disabled-search-input.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431116</commentid>
    <comment_count>14</comment_count>
      <attachid>99466</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-01 06:04:12 -0700</bug_when>
    <thetext>Created attachment 99466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431117</commentid>
    <comment_count>15</comment_count>
      <attachid>99463</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-07-01 06:06:21 -0700</bug_when>
    <thetext>Comment on attachment 99463
Patch

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

&gt;&gt; LayoutTests/fast/forms/search-disabled-readonly-expected.txt:8
&gt;&gt; +PASS input.value is &quot;b&quot;
&gt; 
&gt; This doesn&apos;t cover the original scenario of disabled-search-input.html.
&gt; The scenario was:
&gt;   1. layout with &lt;input type=search disabled&gt;
&gt;   2. Click the center of it
&gt;   3. Type a key
&gt;   4. Expect that the character is inserted.
&gt; 
&gt; But, you don&apos;t need to cover the scenario if you don&apos;t remove disabled-search-input.html.

Ah...sorry, I got it. In conclusion, I left disabled-search-input.html as it is, and added search-disabled-readonly.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431118</commentid>
    <comment_count>16</comment_count>
      <attachid>99466</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-01 06:06:23 -0700</bug_when>
    <thetext>Comment on attachment 99466
Patch

ok, great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431132</commentid>
    <comment_count>17</comment_count>
      <attachid>99466</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-01 06:58:31 -0700</bug_when>
    <thetext>Comment on attachment 99466
Patch

Clearing flags on attachment: 99466

Committed r90225: &lt;http://trac.webkit.org/changeset/90225&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431133</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-01 06:58:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99295</attachid>
            <date>2011-06-30 06:57:00 -0700</date>
            <delta_ts>2011-07-01 03:54:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63709-20110630225658.patch</filename>
            <type>text/plain</type>
            <size>9777</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk5OTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMWY3YzgwOGZiZmYyMGRlZmEzMzQw
Mzg4N2VkZTAzYjEyZjYyOGRjLi43MmIyMTg4NjA2ZWZmYWQ1MWQ0ZGRiMzQ2ZmVmNmZhY2MzNmUz
YTFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYtMzAgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBEaXNhbGxvdyBjbGlja2luZyBhbiBbWF0gYnV0dG9uIGluICdzZWFyY2gnIGlu
cHV0IGZvcm1zIHdoZW4gJ2Rpc2FibGVkJyBhdHRyaWJ1dGUgaXMgc2V0LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3MDkKKworICAgICAgICBBZGRl
ZCBhIHRlc3QgdGhhdCBjaGVja3Mgd2hldGhlciB0aGUgY29udGVudCBpbiAnc2VhcmNoJyBpbnB1
dCBmb3JtcyB3aXRoICdkaXNhYmxlZCcgYXR0cmlidXRlCisgICAgICAgIGlzIGNsZWFyZWQgb3Ig
bm90LCB3aGVuIGFuIFtYXSBidXR0b24gaXMgY2xpY2tlZC4gUmVmYWN0b3JlZCB0aGUgdGVzdCBj
b2RlLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9zZWFyY2gtY2FuY2VsLWJ1dHRvbi1tb3VzZXVw
Lmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9zZWFyY2gtY2FuY2VsLWJ1dHRvbi1tb3VzZXVw
LWV4cGVjdGVkLnR4dDoKKwogMjAxMS0wNi0yOSAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVp
bmVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkOiBtb3JlIGp1Z2dsaW5nIHdp
dGggcnVieSBleHBlY3RhdGlvbiBmaWxlcywgdHJ5aW5nIHRvCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1jYW5jZWwtYnV0dG9uLW1vdXNldXAtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtY2FuY2VsLWJ1dHRvbi1tb3VzZXVwLWV4
cGVjdGVkLnR4dAppbmRleCAwNDcwOGRjMDAxODRjZWVjZTE3ZGM2ZDFmMmU4OTljY2ZiYzlmZjQ3
Li41NzYwOTY3MTJlNWEwMzRiNDM1YTVhZTczODlmMjJjM2I0NzZkNzI5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1jYW5jZWwtYnV0dG9uLW1vdXNldXAtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWNhbmNlbC1idXR0b24t
bW91c2V1cC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwxOCBAQAotVGVzdCBmb3IgaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MTggUkVHUkVTU0lPTiAoU2VhcmNoRmll
bGQpOiBEcmFnZ2luZyBhY3Jvc3MgdGhlIHRleHQgYW5kIHJlbGVhc2luZyBvdmVyIHRoZSBjbGVh
ciBidXR0b24gY2xlYXJzIHRoZSBmaWVsZC4KIAotUEFTUwogCi0gCi0gCisKKworCisKK1RoaXMg
dGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgY2FuY2VsIGJ1dHRvbiBpbiBzZWFyY2ggaW5wdXQgZm9y
bXMuIFRoaXMgdGVzdCBjYW5ub3QgcnVuIGludGVyYWN0aXZlbHkuCisKK1BBU1MgVmFsdWUgaXMg
dmFsdWUwCitQQVNTIFZhbHVlIGlzIHZhbHVlMQorUEFTUyBWYWx1ZSBpcyAKK1BBU1MgVmFsdWUg
aXMgdmFsdWUzCitQQVNTIFZhbHVlIGlzIHZhbHVlNAorUEFTUyBWYWx1ZSBpcyB2YWx1ZTUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1jYW5jZWwtYnV0dG9uLW1vdXNldXAu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWNhbmNlbC1idXR0b24tbW91c2V1
cC5odG1sCmluZGV4IDIwM2UwMDFhMjdkMjEzZDAzODQyMmFkYjZlNzYzODU2YjhhYjYxZjIuLmU5
YTM4ODczNDNlMGE4YmU4MGNkMjM5MzMyYzQ2MzIyZGYxM2FjZTQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWNhbmNlbC1idXR0b24tbW91c2V1cC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWNhbmNlbC1idXR0b24tbW91c2V1cC5odG1s
CkBAIC0xLDY0ICsxLDkzIEBACis8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+Ci0gICAg
PHRpdGxlPjwvdGl0bGU+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIGZ1bmN0aW9uIHRlc3QoKQotICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8aW5wdXQgaWQ9InNlYXJjaDAiIHR5cGU9InNlYXJjaCIgdmFsdWU9InZh
bHVlMCI+PGJyIC8+Cis8aW5wdXQgaWQ9InNlYXJjaDEiIHR5cGU9InNlYXJjaCIgdmFsdWU9InZh
bHVlMSI+PGJyIC8+Cis8aW5wdXQgaWQ9InNlYXJjaDIiIHR5cGU9InNlYXJjaCIgdmFsdWU9InZh
bHVlMiI+PGJyIC8+Cis8aW5wdXQgaWQ9InNlYXJjaDMiIHR5cGU9InNlYXJjaCIgdmFsdWU9InZh
bHVlMyIgZGlzYWJsZWQ9ImRpc2FibGVkIj48YnIgLz4KKzxpbnB1dCBpZD0ic2VhcmNoNCIgdHlw
ZT0ic2VhcmNoIiB2YWx1ZT0idmFsdWU0IiBkaXNhYmxlZD0iZGlzYWJsZWQiPjxiciAvPgorPGlu
cHV0IGlkPSJzZWFyY2g1IiB0eXBlPSJzZWFyY2giIHZhbHVlPSJ2YWx1ZTUiIGRpc2FibGVkPSJk
aXNhYmxlZCI+PGJyIC8+Cis8ZGl2IGlkPSJjb25zb2xlIj4KKzxwPgorVGhpcyB0ZXN0cyB0aGUg
YmVoYXZpb3Igb2YgYSBjYW5jZWwgYnV0dG9uIGluIHNlYXJjaCBpbnB1dCBmb3Jtcy4gCitUaGlz
IHRlc3QgY2Fubm90IHJ1biBpbnRlcmFjdGl2ZWx5LgorPC9wPgorPC9kaXY+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHZhciBpbnB1dCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2gwIik7CisgICAgdmFyIGNhbmNlbEJ1dHRvbiA9IHNl
YXJjaENhbmNlbEJ1dHRvblBvc2l0aW9uKGlucHV0KTsKKyAgICB2YXIgYnV0dG9uWCA9IGNhbmNl
bEJ1dHRvbi54OworICAgIHZhciBtaWRkbGVYID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9m
ZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgeSwgcmVzdWx0OwogCi0gICAgICAgICAgICB2YXIgczEg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoMSIpOwotICAgICAgICAgICAgdmFyIHMy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaDIiKTsKLSAgICAgICAgICAgIHZhciBz
MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2gzIik7CisgICAgaW5wdXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoMCIpOworICAgIHkgPSBpbnB1dC5vZmZzZXRUb3Ag
KyBpbnB1dC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJ1
dHRvblgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKG1pZGRsZVgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAg
ICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKKyAgICByZXN1bHQgPSAiVmFsdWUgaXMg
IiArIGlucHV0LnZhbHVlOworICAgIGlucHV0LnZhbHVlID09ICJ2YWx1ZTAiID8gdGVzdFBhc3Nl
ZChyZXN1bHQpIDogdGVzdEZhaWxlZChyZXN1bHQpOwogCi0gICAgICAgICAgICB2YXIgczFjYW5j
ZWxQb3MgPSBzZWFyY2hDYW5jZWxCdXR0b25Qb3NpdGlvbihzMSk7Ci0gICAgICAgICAgICB2YXIg
YnV0dG9uWCA9IHMxY2FuY2VsUG9zLng7Ci0gICAgICAgICAgICB2YXIgbWlkZGxlWCA9IHMxLm9m
ZnNldExlZnQgKyBzMS5vZmZzZXRXaWR0aCAvIDI7CisgICAgaW5wdXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic2VhcmNoMSIpOworICAgIHkgPSBpbnB1dC5vZmZzZXRUb3AgKyBpbnB1dC5v
ZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG1pZGRsZVgsIHkp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKGJ1dHRvblgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBldmVudFNl
bmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKKyAgICByZXN1bHQgPSAiVmFsdWUgaXMgIiArIGlucHV0
LnZhbHVlOworICAgIGlucHV0LnZhbHVlID09ICJ2YWx1ZTEiID8gdGVzdFBhc3NlZChyZXN1bHQp
IDogdGVzdEZhaWxlZChyZXN1bHQpOwogCi0gICAgICAgICAgICB2YXIgeTIgPSBzMi5vZmZzZXRU
b3AgKyBzMi5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICAgICAgdmFyIHkzID0gczMub2Zmc2V0
VG9wICsgczMub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzZWFyY2gyIik7CisgICAgeSA9IGlucHV0Lm9mZnNldFRvcCArIGlucHV0Lm9mZnNl
dEhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYnV0dG9uWCwgeSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
YnV0dG9uWCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVy
LmxlYXBGb3J3YXJkKDEwMDApOworICAgIHJlc3VsdCA9ICJWYWx1ZSBpcyAiICsgaW5wdXQudmFs
dWU7CisgICAgaW5wdXQudmFsdWUgPT0gIiIgPyB0ZXN0UGFzc2VkKHJlc3VsdCkgOiB0ZXN0RmFp
bGVkKHJlc3VsdCk7CiAKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJ1dHRv
blgsIHMxY2FuY2VsUG9zLnkpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7
Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhtaWRkbGVYLCBzMWNhbmNlbFBv
cy55KTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMDApOworICAgIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInNlYXJjaDMiKTsKKyAgICB5ID0gaW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zm
c2V0SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b25YLCB5KTsK
KyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhtaWRkbGVYLCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXZlbnRTZW5k
ZXIubGVhcEZvcndhcmQoMTAwMCk7CisgICAgcmVzdWx0ID0gIlZhbHVlIGlzICIgKyBpbnB1dC52
YWx1ZTsKKyAgICBpbnB1dC52YWx1ZSA9PSAidmFsdWUzIiA/IHRlc3RQYXNzZWQocmVzdWx0KSA6
IHRlc3RGYWlsZWQocmVzdWx0KTsKIAotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8obWlkZGxlWCwgeTIpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0g
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b25YLCB5Mik7Ci0gICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5sZWFw
Rm9yd2FyZCgxMDAwKTsKKyAgICBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFy
Y2g0Iik7CisgICAgeSA9IGlucHV0Lm9mZnNldFRvcCArIGlucHV0Lm9mZnNldEhlaWdodCAvIDI7
CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obWlkZGxlWCwgeSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYnV0dG9uWCwgeSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJk
KDEwMDApOworICAgIHJlc3VsdCA9ICJWYWx1ZSBpcyAiICsgaW5wdXQudmFsdWU7CisgICAgaW5w
dXQudmFsdWUgPT0gInZhbHVlNCIgPyB0ZXN0UGFzc2VkKHJlc3VsdCkgOiB0ZXN0RmFpbGVkKHJl
c3VsdCk7CiAKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJ1dHRvblgsIHkz
KTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oYnV0dG9uWCwgeTMpOwotICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VVcCgpOworICAgIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJj
aDUiKTsKKyAgICB5ID0gaW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsK
KyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b25YLCB5KTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b25YLCB5KTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQo
MTAwMCk7CisgICAgcmVzdWx0ID0gIlZhbHVlIGlzICIgKyBpbnB1dC52YWx1ZTsKKyAgICBpbnB1
dC52YWx1ZSA9PSAidmFsdWU1IiA/IHRlc3RQYXNzZWQocmVzdWx0KSA6IHRlc3RGYWlsZWQocmVz
dWx0KTsKK30KIAotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZXN1bHQiKTsKLSAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBzMS52YWx1ZSArICIsICIg
KyBzMi52YWx1ZSArICIsICIgKyBzMy52YWx1ZTsKLSAgICAgICAgICAgIGlmICh2YWx1ZXMgPT0g
ImZvbywgYmFyLCAiKQotICAgICAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiUEFTUyI7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJG
QUlMICgiICsgdmFsdWVzICsgIikiOwotICAgICAgICB9Ci0gICAgPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci0gICAgPHA+Ci0gICAgICAgIFRlc3QgZm9yIDxpPjxh
IGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjE4Ij5odHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYxODwvYT4KLSAgICAgICAgUkVH
UkVTU0lPTiAoU2VhcmNoRmllbGQpOiBEcmFnZ2luZyBhY3Jvc3MgdGhlIHRleHQgYW5kIHJlbGVh
c2luZyBvdmVyIHRoZSBjbGVhciBidXR0b24gY2xlYXJzIHRoZSBmaWVsZDwvaT4uCi0gICAgPC9w
PgotICAgIDxwIGlkPSJyZXN1bHQiPgotICAgICAgICBDYW5ub3QgcnVuIGludGVyYWN0aXZlbHku
Ci0gICAgPC9wPgotICAgIDxpbnB1dCBpZD0ic2VhcmNoMSIgdHlwZT0ic2VhcmNoIiB2YWx1ZT0i
Zm9vIj4KLSAgICA8YnI+Ci0gICAgPGlucHV0IGlkPSJzZWFyY2gyIiB0eXBlPSJzZWFyY2giIHZh
bHVlPSJiYXIiPgotICAgIDxicj4KLSAgICA8aW5wdXQgaWQ9InNlYXJjaDMiIHR5cGU9InNlYXJj
aCIgdmFsdWU9ImJheiI+Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdiNDc2YzNkZmJiOTZkZmQ4YTc5ZjFi
YjljNjEzYmUxZTk5Nzk3MTcuLjhmOThiY2Q1N2ZhY2IyZWJjMjY5ZDNmMzM3N2E1YmQwNjU4NDNk
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wNi0zMCAgS2VudGFybyBIYXJh
ICA8aGFyYWtlbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERpc2FsbG93IGNsaWNraW5nIGFuIFtYXSBidXR0b24gaW4gJ3NlYXJj
aCcgaW5wdXQgZm9ybXMgd2hlbiAnZGlzYWJsZWQnIGF0dHJpYnV0ZSBpcyBzZXQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzcwOQorCisgICAgICAg
IElnbm9yZSBhIGNhbmNlbCBidXR0b24gZXZlbnQgb24gYSAnc2VhcmNoJyBpbnB1dCBmb3JtIGlm
ICdkaXNhYmxlZCcgYXR0cmlidXRlIGlzIHNldAorICAgICAgICB0byB0aGUgaW5wdXQgZm9ybS4K
KworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL3NlYXJjaC1jYW5jZWwtYnV0dG9uLW1vdXNldXAu
aHRtbAorCisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcik6CisKIDIwMTEtMDYtMjggIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmNwcAppbmRleCA5NGM5M2IxMzk3YjFhYmE2OWM4MzFlMDc0YjQxM2RjNGRjNGM4Yzg4Li5i
MzJhOTYyYTI3NTgxNDdhMWRmNWVlMDdiMzUxYjdkN2U2ZWI2ZGYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAK
QEAgLTE5Miw2ICsxOTIsMTIgQEAgdm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewogICAgIC8vIElmIHRoZSBlbGVt
ZW50IGlzIHZpc2libGUsIG9uIG1vdXNldXAsIGNsZWFyIHRoZSB2YWx1ZSwgYW5kIHNldCBzZWxl
Y3Rpb24KICAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKSk7CisgICAgaWYgKGlucHV0LT5k
aXNhYmxlZCgpIHx8IGlucHV0LT5pc1JlYWRPbmx5Rm9ybUNvbnRyb2woKSkgeworICAgICAgICBp
ZiAoIWV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQorICAgICAgICAgICAgSFRNTERpdkVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2
ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5i
dXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRl
cmVyKCktPnZpc2libGVUb0hpdFRlc3RpbmcoKSkgewogICAgICAgICAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99451</attachid>
            <date>2011-07-01 03:09:31 -0700</date>
            <delta_ts>2011-07-01 03:10:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63709-20110701190930.patch</filename>
            <type>text/plain</type>
            <size>7955</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAyMDkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MGUzZmZjYjBkZWM5ZjZkODMwMDJj
NDk2OWY1MDkxZTczMWJmNzI2Li44OGMwOTY1MjBjNWE4ZDViZTM1NDQzNmI5ZDU2OGJmZjQ2NDIx
YjdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDctMDEgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKwor
ICAgICAgICBEaXNhbGxvdyBjbGlja2luZyBhbiBbWF0gYnV0dG9uIGluICdzZWFyY2gnIGlucHV0
IGZvcm1zIHdoZW4gJ2Rpc2FibGVkJyBhdHRyaWJ1dGUgb3IgJ3JlYWRvbmx5JyBhdHRyaWJ1dGUg
aXMgc2V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjM3MDkKKworICAgICAgICBBZGRlZCBhIHRlc3QgdGhhdCBjaGVja3Mgd2hldGhlciB0aGUgY29u
dGVudCBpbiAnc2VhcmNoJyBpbnB1dCBmb3JtcyB3aXRoICdkaXNhYmxlZCcgYXR0cmlidXRlCisg
ICAgICAgIG9yICdyZWFkb25seScgYXR0cmlidXRlIGlzIGNsZWFyZWQgb3Igbm90LCB3aGVuIGFu
IFtYXSBidXR0b24gaXMgY2xpY2tlZC4gUmVmYWN0b3JlZCB0aGUgdGVzdCBjb2RlLgorCisgICAg
ICAgICogZmFzdC9mb3Jtcy9kaXNhYmxlZC1zZWFyY2gtaW5wdXQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvZGlzYWJsZWQtc2VhcmNoLWlucHV0Lmh0bWw6CisKIDIwMTEtMDYt
MzAgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhcy5idWdAZ21haWwuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2Rpc2FibGVkLXNlYXJjaC1pbnB1dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2Rpc2FibGVkLXNlYXJjaC1pbnB1dC1leHBlY3RlZC50eHQKaW5kZXggZjUxNzVh
YjQwOWMxMzNhMDhlYzE4MGZkMmU3OGI0ZjE4MzMwZDljYy4uYTM4MGJiZDZkNTliYjI0YzJiNTNi
OTEwNjM3MmM5NzdjNmUwYTgzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9k
aXNhYmxlZC1zZWFyY2gtaW5wdXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZGlzYWJsZWQtc2VhcmNoLWlucHV0LWV4cGVjdGVkLnR4dApAQCAtMSwyICsxLDE1IEBA
CiAKLVRoZSBpbm5lciB0ZXh0IGVsZW1lbnQgb2YgdGhlIHNlYXJjaCBpbnB1dCBzaG91bGQgbmV2
ZXIgYmUgMC1oZWlnaHQ6IFBBU1MKK1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgY2FuY2Vs
IGJ1dHRvbiBpbiBzZWFyY2ggaW5wdXQgZm9ybXMuCisKK1BBU1MgVmFsdWUgaXMgIiIuCitQQVNT
IFZhbHVlIGlzICJiIi4KK1BBU1MgVmFsdWUgaXMgImZvbyIuCitQQVNTIFZhbHVlIGlzICJmb28i
LgorUEFTUyBWYWx1ZSBpcyAiZm9vIi4KK1BBU1MgVmFsdWUgaXMgImZvbyIuCitQQVNTIFZhbHVl
IGlzICJmb28iLgorUEFTUyBWYWx1ZSBpcyAiZm9vIi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2Rpc2FibGVkLXNlYXJjaC1pbnB1dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9kaXNhYmxlZC1zZWFyY2gtaW5wdXQuaHRtbAppbmRleCBlNDBiYWIxYTM2MmJlNzA4OTcyMWRk
ZWRlYWQwMGY1YjFhOWI4MzgzLi5kOGY1ZDlmMGQ4ODAyZjhmZTdkMjU2ZjVkNzY2NWIwOTdlY2I1
NTJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Rpc2FibGVkLXNlYXJjaC1p
bnB1dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGlzYWJsZWQtc2VhcmNoLWlu
cHV0Lmh0bWwKQEAgLTEsNTggKzEsOTYgQEAKKzwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8aW5wdXQgaWQ9InNlYXJjaF9pbnB1dCIgdHlwZT0ic2VhcmNoIiAvPgorPGRpdiBp
ZD0iY29uc29sZSI+Cis8cD4KK1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgY2FuY2VsIGJ1
dHRvbiBpbiBzZWFyY2ggaW5wdXQgZm9ybXMuCis8L3A+Cis8L2Rpdj4KIDxzY3JpcHQ+CitmdW5j
dGlvbiBjbGljayhidXR0b24pIHsKKyAgICBpZiAoIWV2ZW50U2VuZGVyKQorICAgICAgICByZXR1
cm47CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYnV0dG9uLngsIGJ1dHRvbi55KTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhi
dXR0b24ueCwgYnV0dG9uLnkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBldmVu
dFNlbmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKK30KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitmdW5jdGlvbiBrZXlkb3duKGNo
YXJhY3RlcikgeworICAgIGlmICghZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKyAgICBl
dmVudFNlbmRlci5rZXlEb3duKGNoYXJhY3Rlcik7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndh
cmQoMTAwMCk7CiB9CiAKLXZhciBsb2dEaXY7CitmdW5jdGlvbiBjaGVja1Jlc3VsdChpbnB1dCwg
ZXhwZWN0ZWQpIHsKKyAgICBpZiAoaW5wdXQudmFsdWUgPT0gZXhwZWN0ZWQpCisgICAgICAgIHRl
c3RQYXNzZWQoJ1ZhbHVlIGlzICInICsgaW5wdXQudmFsdWUgKyAnIi4nKTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RGYWlsZWQoJ1ZhbHVlIGlzICInICsgaW5wdXQudmFsdWUgKyAnIiwgYnV0IGl0
IHNob3VsZCBiZSAiJyArIGV4cGVjdGVkICsgJyIuJyk7Cit9CiAKLWZ1bmN0aW9uIGxvZyhtc2cs
IHN1Y2Nlc3MpCi17Ci0gICAgbG9nRGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpKS50ZXh0Q29udGVudCA9IG1zZyArICc6ICcgKyAoISFzdWNjZXNzID8gJ1BBU1Mn
IDogJ0ZBSUwnKTsKK2Z1bmN0aW9uIHNldElucHV0QXR0cmlidXRlKGlucHV0LCB2YWx1ZSwgZGlz
YWJsZWQsIHJlYWRvbmx5KSB7CisgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTsKKyAgICBpbnB1dC5k
aXNhYmxlZCA9IGRpc2FibGVkOworICAgIGlmIChyZWFkb25seSkKKyAgICAgICAgaW5wdXQuc2V0
QXR0cmlidXRlKCJyZWFkb25seSIsIHJlYWRvbmx5KTsKKyAgICBlbHNlIGlmIChpbnB1dC5oYXNB
dHRyaWJ1dGUoInJlYWRvbmx5IikpCisgICAgICAgIGlucHV0LnJlbW92ZUF0dHJpYnV0ZSgicmVh
ZG9ubHkiKTsKIH0KIAotZnVuY3Rpb24gY2xpY2tPbihlbGVtZW50KQotewotICAgIGlmICghd2lu
ZG93LmV2ZW50U2VuZGVyKQotICAgICAgICByZXR1cm47CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgdmFyIGlucHV0ID0gJCgic2VhcmNoX2lucHV0Iik7CisgICAgdmFy
IGNhbmNlbEJ1dHRvbiA9IHNlYXJjaENhbmNlbEJ1dHRvblBvc2l0aW9uKGlucHV0KTsKKyAgICB2
YXIgZW5hYmxlZCA9IGZhbHNlOworICAgIHZhciBkaXNhYmxlZCA9IHRydWU7CisgICAgdmFyIHJl
YWRvbmx5ID0gdHJ1ZTsKIAotICAgIHZhciB4ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVu
dC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgdmFyIHkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsK
LSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
Ci19CisgICAgc2V0SW5wdXRBdHRyaWJ1dGUoaW5wdXQsICJmb28iLCBlbmFibGVkKTsKKyAgICBj
bGljayhjYW5jZWxCdXR0b24pOworICAgIGNoZWNrUmVzdWx0KGlucHV0LCAiIik7CisKKyAgICBz
ZXRJbnB1dEF0dHJpYnV0ZShpbnB1dCwgImZvbyIsIGVuYWJsZWQpOworICAgIGNsaWNrKGNhbmNl
bEJ1dHRvbik7CisgICAga2V5ZG93bigiYiIpOworICAgIGNoZWNrUmVzdWx0KGlucHV0LCAiYiIp
OworCisgICAgc2V0SW5wdXRBdHRyaWJ1dGUoaW5wdXQsICJmb28iLCBlbmFibGVkLCByZWFkb25s
eSk7CisgICAgY2xpY2soY2FuY2VsQnV0dG9uKTsKKyAgICBjaGVja1Jlc3VsdChpbnB1dCwgImZv
byIpOworCisgICAgc2V0SW5wdXRBdHRyaWJ1dGUoaW5wdXQsICJmb28iLCBlbmFibGVkLCByZWFk
b25seSk7CisgICAgY2xpY2soY2FuY2VsQnV0dG9uKTsKKyAgICBrZXlkb3duKCJiIik7CisgICAg
Y2hlY2tSZXN1bHQoaW5wdXQsICJmb28iKTsKIAotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAg
bG9nRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsKLSAgICB2YXIgaW5w
dXQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTsKLSAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IGZhbHNlOwotICAg
ICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICB2YXIgeCA9IGlucHV0Lm9mZnNldExlZnQgKyBpbnB1dC5vZmZzZXRXaWR0aCAvIDI7Ci0g
ICAgICAgIHZhciB5ID0gaW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsK
LSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci0gICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oJ2EnKTsKLSAgICAgICAgbG9nKCdUaGUgaW5uZXIgdGV4dCBl
bGVtZW50IG9mIHRoZSBzZWFyY2ggaW5wdXQgc2hvdWxkIG5ldmVyIGJlIDAtaGVpZ2h0JywgaW5w
dXQudmFsdWUgPT0gJ2EnKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOwotICAgIH0sIDApOworICAgIHNldElucHV0QXR0cmlidXRlKGlucHV0LCAiZm9vIiwgZGlz
YWJsZWQpOworICAgIGNsaWNrKGNhbmNlbEJ1dHRvbik7CisgICAgY2hlY2tSZXN1bHQoaW5wdXQs
ICJmb28iKTsKKworICAgIHNldElucHV0QXR0cmlidXRlKGlucHV0LCAiZm9vIiwgZGlzYWJsZWQp
OworICAgIGNsaWNrKGNhbmNlbEJ1dHRvbik7CisgICAga2V5ZG93bigiYiIpOworICAgIGNoZWNr
UmVzdWx0KGlucHV0LCAiZm9vIik7CisKKyAgICBzZXRJbnB1dEF0dHJpYnV0ZShpbnB1dCwgImZv
byIsIGRpc2FibGVkLCByZWFkb25seSk7CisgICAgY2xpY2soY2FuY2VsQnV0dG9uKTsKKyAgICBj
aGVja1Jlc3VsdChpbnB1dCwgImZvbyIpOworCisgICAgc2V0SW5wdXRBdHRyaWJ1dGUoaW5wdXQs
ICJmb28iLCBkaXNhYmxlZCwgcmVhZG9ubHkpOworICAgIGNsaWNrKGNhbmNlbEJ1dHRvbik7Cisg
ICAga2V5ZG93bigiYiIpOworICAgIGNoZWNrUmVzdWx0KGlucHV0LCAiZm9vIik7CiB9CiAKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPGRpdj4KLSAgICAgICAgPGlucHV0IGlkPSJmb28iIHR5
cGU9InNlYXJjaCIgcmVzdWx0cz0iMCIgZGlzYWJsZWQ+Ci0gICAgPC9kaXY+Ci08ZGl2IGlkPSJj
b25zb2xlIj4KLTwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBiNGNmODk1
NWViYWM2MWMzMDhlMjUxMDY5MjVhZTlmMGJmNDBiOTUuLjg4MTk2YzZmNWQyN2Y1OGY0Zjg0Yzk4
MTc5ZDc3YTQwOTEyMzJmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wNy0w
MSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEtlbnQgVGFtdXJhLgorCisgICAgICAgIERpc2FsbG93IGNsaWNraW5nIGFuIFtYXSBidXR0
b24gaW4gJ3NlYXJjaCcgaW5wdXQgZm9ybXMgd2hlbiAnZGlzYWJsZWQnIGF0dHJpYnV0ZSBvciAn
cmVhZG9ubHknIGF0dHJpYnV0ZSBpcyBzZXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02MzcwOQorCisgICAgICAgIElnbm9yZSBhIGNhbmNlbCBidXR0
b24gZXZlbnQgb24gYSAnc2VhcmNoJyBpbnB1dCBmb3JtIGlmICdkaXNhYmxlZCcgYXR0cmlidXRl
IG9yCisgICAgICAgICdyZWFkb25seScgYXR0cmlidXRlIGlzIHNldCB0byB0aGUgaW5wdXQgZm9y
bS4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL2Rpc2FibGVkLXNlYXJjaC1pbnB1dC5odG1s
CisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKToKKwogMjAxMS0wNi0zMCAgRXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFz
LmJ1Z0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxl
bWVudHMuY3BwCmluZGV4IDhiNmY5OGVkZTFiODgwMzQwZDA4Zjg3MjIyODEwZjc3ZGUxNTg3OWIu
LmQ5MWMwZWQyYWU1NmUyOGQzM2VmZDRiNjY2Nzc2MGRiOTJkYjE0ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNw
cApAQCAtMTkyLDYgKzE5MiwxMiBAQCB2b2lkIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gSWYgdGhlIGVs
ZW1lbnQgaXMgdmlzaWJsZSwgb24gbW91c2V1cCwgY2xlYXIgdGhlIHZhbHVlLCBhbmQgc2V0IHNl
bGVjdGlvbgogICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpKTsKKyAgICBpZiAoaW5wdXQt
PmRpc2FibGVkKCkgfHwgaW5wdXQtPmlzUmVhZE9ubHlGb3JtQ29udHJvbCgpKSB7CisgICAgICAg
IGlmICghZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgICAgICBIVE1MRGl2RWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYg
ZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCkt
PmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVu
ZGVyZXIoKS0+dmlzaWJsZVRvSGl0VGVzdGluZygpKSB7CiAgICAgICAgICAgICBpZiAoRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99452</attachid>
            <date>2011-07-01 03:10:29 -0700</date>
            <delta_ts>2011-07-01 06:03:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63709-20110701191028.patch</filename>
            <type>text/plain</type>
            <size>7955</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAyMDkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MGUzZmZjYjBkZWM5ZjZkODMwMDJj
NDk2OWY1MDkxZTczMWJmNzI2Li44OGMwOTY1MjBjNWE4ZDViZTM1NDQzNmI5ZDU2OGJmZjQ2NDIx
YjdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDctMDEgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKwor
ICAgICAgICBEaXNhbGxvdyBjbGlja2luZyBhbiBbWF0gYnV0dG9uIGluICdzZWFyY2gnIGlucHV0
IGZvcm1zIHdoZW4gJ2Rpc2FibGVkJyBhdHRyaWJ1dGUgb3IgJ3JlYWRvbmx5JyBhdHRyaWJ1dGUg
aXMgc2V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjM3MDkKKworICAgICAgICBBZGRlZCBhIHRlc3QgdGhhdCBjaGVja3Mgd2hldGhlciB0aGUgY29u
dGVudCBpbiAnc2VhcmNoJyBpbnB1dCBmb3JtcyB3aXRoICdkaXNhYmxlZCcgYXR0cmlidXRlCisg
ICAgICAgIG9yICdyZWFkb25seScgYXR0cmlidXRlIGlzIGNsZWFyZWQgb3Igbm90LCB3aGVuIGFu
IFtYXSBidXR0b24gaXMgY2xpY2tlZC4gUmVmYWN0b3JlZCB0aGUgdGVzdCBjb2RlLgorCisgICAg
ICAgICogZmFzdC9mb3Jtcy9kaXNhYmxlZC1zZWFyY2gtaW5wdXQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvZGlzYWJsZWQtc2VhcmNoLWlucHV0Lmh0bWw6CisKIDIwMTEtMDYt
MzAgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhcy5idWdAZ21haWwuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2Rpc2FibGVkLXNlYXJjaC1pbnB1dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2Rpc2FibGVkLXNlYXJjaC1pbnB1dC1leHBlY3RlZC50eHQKaW5kZXggZjUxNzVh
YjQwOWMxMzNhMDhlYzE4MGZkMmU3OGI0ZjE4MzMwZDljYy4uYTM4MGJiZDZkNTliYjI0YzJiNTNi
OTEwNjM3MmM5NzdjNmUwYTgzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9k
aXNhYmxlZC1zZWFyY2gtaW5wdXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZGlzYWJsZWQtc2VhcmNoLWlucHV0LWV4cGVjdGVkLnR4dApAQCAtMSwyICsxLDE1IEBA
CiAKLVRoZSBpbm5lciB0ZXh0IGVsZW1lbnQgb2YgdGhlIHNlYXJjaCBpbnB1dCBzaG91bGQgbmV2
ZXIgYmUgMC1oZWlnaHQ6IFBBU1MKK1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgY2FuY2Vs
IGJ1dHRvbiBpbiBzZWFyY2ggaW5wdXQgZm9ybXMuCisKK1BBU1MgVmFsdWUgaXMgIiIuCitQQVNT
IFZhbHVlIGlzICJiIi4KK1BBU1MgVmFsdWUgaXMgImZvbyIuCitQQVNTIFZhbHVlIGlzICJmb28i
LgorUEFTUyBWYWx1ZSBpcyAiZm9vIi4KK1BBU1MgVmFsdWUgaXMgImZvbyIuCitQQVNTIFZhbHVl
IGlzICJmb28iLgorUEFTUyBWYWx1ZSBpcyAiZm9vIi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2Rpc2FibGVkLXNlYXJjaC1pbnB1dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9kaXNhYmxlZC1zZWFyY2gtaW5wdXQuaHRtbAppbmRleCBlNDBiYWIxYTM2MmJlNzA4OTcyMWRk
ZWRlYWQwMGY1YjFhOWI4MzgzLi5kOGY1ZDlmMGQ4ODAyZjhmZTdkMjU2ZjVkNzY2NWIwOTdlY2I1
NTJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Rpc2FibGVkLXNlYXJjaC1p
bnB1dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGlzYWJsZWQtc2VhcmNoLWlu
cHV0Lmh0bWwKQEAgLTEsNTggKzEsOTYgQEAKKzwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8aW5wdXQgaWQ9InNlYXJjaF9pbnB1dCIgdHlwZT0ic2VhcmNoIiAvPgorPGRpdiBp
ZD0iY29uc29sZSI+Cis8cD4KK1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgY2FuY2VsIGJ1
dHRvbiBpbiBzZWFyY2ggaW5wdXQgZm9ybXMuCis8L3A+Cis8L2Rpdj4KIDxzY3JpcHQ+CitmdW5j
dGlvbiBjbGljayhidXR0b24pIHsKKyAgICBpZiAoIWV2ZW50U2VuZGVyKQorICAgICAgICByZXR1
cm47CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYnV0dG9uLngsIGJ1dHRvbi55KTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhi
dXR0b24ueCwgYnV0dG9uLnkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBldmVu
dFNlbmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKK30KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitmdW5jdGlvbiBrZXlkb3duKGNo
YXJhY3RlcikgeworICAgIGlmICghZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKyAgICBl
dmVudFNlbmRlci5rZXlEb3duKGNoYXJhY3Rlcik7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndh
cmQoMTAwMCk7CiB9CiAKLXZhciBsb2dEaXY7CitmdW5jdGlvbiBjaGVja1Jlc3VsdChpbnB1dCwg
ZXhwZWN0ZWQpIHsKKyAgICBpZiAoaW5wdXQudmFsdWUgPT0gZXhwZWN0ZWQpCisgICAgICAgIHRl
c3RQYXNzZWQoJ1ZhbHVlIGlzICInICsgaW5wdXQudmFsdWUgKyAnIi4nKTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RGYWlsZWQoJ1ZhbHVlIGlzICInICsgaW5wdXQudmFsdWUgKyAnIiwgYnV0IGl0
IHNob3VsZCBiZSAiJyArIGV4cGVjdGVkICsgJyIuJyk7Cit9CiAKLWZ1bmN0aW9uIGxvZyhtc2cs
IHN1Y2Nlc3MpCi17Ci0gICAgbG9nRGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpKS50ZXh0Q29udGVudCA9IG1zZyArICc6ICcgKyAoISFzdWNjZXNzID8gJ1BBU1Mn
IDogJ0ZBSUwnKTsKK2Z1bmN0aW9uIHNldElucHV0QXR0cmlidXRlKGlucHV0LCB2YWx1ZSwgZGlz
YWJsZWQsIHJlYWRvbmx5KSB7CisgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTsKKyAgICBpbnB1dC5k
aXNhYmxlZCA9IGRpc2FibGVkOworICAgIGlmIChyZWFkb25seSkKKyAgICAgICAgaW5wdXQuc2V0
QXR0cmlidXRlKCJyZWFkb25seSIsIHJlYWRvbmx5KTsKKyAgICBlbHNlIGlmIChpbnB1dC5oYXNB
dHRyaWJ1dGUoInJlYWRvbmx5IikpCisgICAgICAgIGlucHV0LnJlbW92ZUF0dHJpYnV0ZSgicmVh
ZG9ubHkiKTsKIH0KIAotZnVuY3Rpb24gY2xpY2tPbihlbGVtZW50KQotewotICAgIGlmICghd2lu
ZG93LmV2ZW50U2VuZGVyKQotICAgICAgICByZXR1cm47CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgdmFyIGlucHV0ID0gJCgic2VhcmNoX2lucHV0Iik7CisgICAgdmFy
IGNhbmNlbEJ1dHRvbiA9IHNlYXJjaENhbmNlbEJ1dHRvblBvc2l0aW9uKGlucHV0KTsKKyAgICB2
YXIgZW5hYmxlZCA9IGZhbHNlOworICAgIHZhciBkaXNhYmxlZCA9IHRydWU7CisgICAgdmFyIHJl
YWRvbmx5ID0gdHJ1ZTsKIAotICAgIHZhciB4ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVu
dC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgdmFyIHkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsK
LSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
Ci19CisgICAgc2V0SW5wdXRBdHRyaWJ1dGUoaW5wdXQsICJmb28iLCBlbmFibGVkKTsKKyAgICBj
bGljayhjYW5jZWxCdXR0b24pOworICAgIGNoZWNrUmVzdWx0KGlucHV0LCAiIik7CisKKyAgICBz
ZXRJbnB1dEF0dHJpYnV0ZShpbnB1dCwgImZvbyIsIGVuYWJsZWQpOworICAgIGNsaWNrKGNhbmNl
bEJ1dHRvbik7CisgICAga2V5ZG93bigiYiIpOworICAgIGNoZWNrUmVzdWx0KGlucHV0LCAiYiIp
OworCisgICAgc2V0SW5wdXRBdHRyaWJ1dGUoaW5wdXQsICJmb28iLCBlbmFibGVkLCByZWFkb25s
eSk7CisgICAgY2xpY2soY2FuY2VsQnV0dG9uKTsKKyAgICBjaGVja1Jlc3VsdChpbnB1dCwgImZv
byIpOworCisgICAgc2V0SW5wdXRBdHRyaWJ1dGUoaW5wdXQsICJmb28iLCBlbmFibGVkLCByZWFk
b25seSk7CisgICAgY2xpY2soY2FuY2VsQnV0dG9uKTsKKyAgICBrZXlkb3duKCJiIik7CisgICAg
Y2hlY2tSZXN1bHQoaW5wdXQsICJmb28iKTsKIAotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAg
bG9nRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsKLSAgICB2YXIgaW5w
dXQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTsKLSAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IGZhbHNlOwotICAg
ICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICB2YXIgeCA9IGlucHV0Lm9mZnNldExlZnQgKyBpbnB1dC5vZmZzZXRXaWR0aCAvIDI7Ci0g
ICAgICAgIHZhciB5ID0gaW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsK
LSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci0gICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oJ2EnKTsKLSAgICAgICAgbG9nKCdUaGUgaW5uZXIgdGV4dCBl
bGVtZW50IG9mIHRoZSBzZWFyY2ggaW5wdXQgc2hvdWxkIG5ldmVyIGJlIDAtaGVpZ2h0JywgaW5w
dXQudmFsdWUgPT0gJ2EnKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOwotICAgIH0sIDApOworICAgIHNldElucHV0QXR0cmlidXRlKGlucHV0LCAiZm9vIiwgZGlz
YWJsZWQpOworICAgIGNsaWNrKGNhbmNlbEJ1dHRvbik7CisgICAgY2hlY2tSZXN1bHQoaW5wdXQs
ICJmb28iKTsKKworICAgIHNldElucHV0QXR0cmlidXRlKGlucHV0LCAiZm9vIiwgZGlzYWJsZWQp
OworICAgIGNsaWNrKGNhbmNlbEJ1dHRvbik7CisgICAga2V5ZG93bigiYiIpOworICAgIGNoZWNr
UmVzdWx0KGlucHV0LCAiZm9vIik7CisKKyAgICBzZXRJbnB1dEF0dHJpYnV0ZShpbnB1dCwgImZv
byIsIGRpc2FibGVkLCByZWFkb25seSk7CisgICAgY2xpY2soY2FuY2VsQnV0dG9uKTsKKyAgICBj
aGVja1Jlc3VsdChpbnB1dCwgImZvbyIpOworCisgICAgc2V0SW5wdXRBdHRyaWJ1dGUoaW5wdXQs
ICJmb28iLCBkaXNhYmxlZCwgcmVhZG9ubHkpOworICAgIGNsaWNrKGNhbmNlbEJ1dHRvbik7Cisg
ICAga2V5ZG93bigiYiIpOworICAgIGNoZWNrUmVzdWx0KGlucHV0LCAiZm9vIik7CiB9CiAKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPGRpdj4KLSAgICAgICAgPGlucHV0IGlkPSJmb28iIHR5
cGU9InNlYXJjaCIgcmVzdWx0cz0iMCIgZGlzYWJsZWQ+Ci0gICAgPC9kaXY+Ci08ZGl2IGlkPSJj
b25zb2xlIj4KLTwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBiNGNmODk1
NWViYWM2MWMzMDhlMjUxMDY5MjVhZTlmMGJmNDBiOTUuLjg4MTk2YzZmNWQyN2Y1OGY0Zjg0Yzk4
MTc5ZDc3YTQwOTEyMzJmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wNy0w
MSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEtlbnQgVGFtdXJhLgorCisgICAgICAgIERpc2FsbG93IGNsaWNraW5nIGFuIFtYXSBidXR0
b24gaW4gJ3NlYXJjaCcgaW5wdXQgZm9ybXMgd2hlbiAnZGlzYWJsZWQnIGF0dHJpYnV0ZSBvciAn
cmVhZG9ubHknIGF0dHJpYnV0ZSBpcyBzZXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02MzcwOQorCisgICAgICAgIElnbm9yZSBhIGNhbmNlbCBidXR0
b24gZXZlbnQgb24gYSAnc2VhcmNoJyBpbnB1dCBmb3JtIGlmICdkaXNhYmxlZCcgYXR0cmlidXRl
IG9yCisgICAgICAgICdyZWFkb25seScgYXR0cmlidXRlIGlzIHNldCB0byB0aGUgaW5wdXQgZm9y
bS4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL2Rpc2FibGVkLXNlYXJjaC1pbnB1dC5odG1s
CisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKToKKwogMjAxMS0wNi0zMCAgRXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFz
LmJ1Z0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxl
bWVudHMuY3BwCmluZGV4IDhiNmY5OGVkZTFiODgwMzQwZDA4Zjg3MjIyODEwZjc3ZGUxNTg3OWIu
LmQ5MWMwZWQyYWU1NmUyOGQzM2VmZDRiNjY2Nzc2MGRiOTJkYjE0ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNw
cApAQCAtMTkyLDYgKzE5MiwxMiBAQCB2b2lkIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gSWYgdGhlIGVs
ZW1lbnQgaXMgdmlzaWJsZSwgb24gbW91c2V1cCwgY2xlYXIgdGhlIHZhbHVlLCBhbmQgc2V0IHNl
bGVjdGlvbgogICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpKTsKKyAgICBpZiAoaW5wdXQt
PmRpc2FibGVkKCkgfHwgaW5wdXQtPmlzUmVhZE9ubHlGb3JtQ29udHJvbCgpKSB7CisgICAgICAg
IGlmICghZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgICAgICBIVE1MRGl2RWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYg
ZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCkt
PmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVu
ZGVyZXIoKS0+dmlzaWJsZVRvSGl0VGVzdGluZygpKSB7CiAgICAgICAgICAgICBpZiAoRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99463</attachid>
            <date>2011-07-01 05:40:43 -0700</date>
            <delta_ts>2011-07-01 06:06:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63709-20110701214042.patch</filename>
            <type>text/plain</type>
            <size>11292</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAyMDkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MGUzZmZjYjBkZWM5ZjZkODMwMDJj
NDk2OWY1MDkxZTczMWJmNzI2Li42OTc4Yjg1ODQ5YzBmOTk2MzU0ZmVhNWFiOTIyNTczNGYwMmI4
NTVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDctMDEgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKwor
ICAgICAgICBEaXNhbGxvdyBjbGlja2luZyBhbiBbWF0gYnV0dG9uIGluICdzZWFyY2gnIGlucHV0
IGZvcm1zIHdoZW4gJ2Rpc2FibGVkJyBhdHRyaWJ1dGUgb3IgJ3JlYWRvbmx5JyBhdHRyaWJ1dGUg
aXMgc2V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjM3MDkKKworICAgICAgICBBZGRlZCBhIHRlc3QgdGhhdCBjaGVja3Mgd2hldGhlciB0aGUgY29u
dGVudCBpbiAnc2VhcmNoJyBpbnB1dCBmb3JtcyB3aXRoICdkaXNhYmxlZCcgYXR0cmlidXRlCisg
ICAgICAgIG9yICdyZWFkb25seScgYXR0cmlidXRlIGlzIGNsZWFyZWQgb3Igbm90LCB3aGVuIGFu
IFtYXSBidXR0b24gaXMgY2xpY2tlZC4gUmVmYWN0b3JlZCB0aGUgdGVzdCBjb2RlLgorCisgICAg
ICAgICogZmFzdC9mb3Jtcy9kaXNhYmxlZC1zZWFyY2gtaW5wdXQtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGlzYWJsZWQtc2VhcmNoLWlucHV0Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zZWFyY2gtZGlzYWJsZWQtcmVhZG9ubHktZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1kaXNhYmxlZC1y
ZWFkb25seS5odG1sOiBBZGRlZC4KKwogMjAxMS0wNi0zMCAgRXVnZW5lIEtseXVjaG5pa292ICA8
ZXVzdGFzLmJ1Z0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1h
bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGlzYWJsZWQtc2VhcmNoLWlu
cHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGlzYWJsZWQtc2VhcmNo
LWlucHV0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjUxNzVh
YjQwOWMxMzNhMDhlYzE4MGZkMmU3OGI0ZjE4MzMwZDljYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Rpc2FibGVk
LXNlYXJjaC1pbnB1dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LQotVGhlIGlubmVyIHRleHQgZWxlbWVudCBvZiB0aGUgc2VhcmNoIGlucHV0IHNob3VsZCBuZXZl
ciBiZSAwLWhlaWdodDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9k
aXNhYmxlZC1zZWFyY2gtaW5wdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGlzYWJs
ZWQtc2VhcmNoLWlucHV0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0MGJh
YjFhMzYyYmU3MDg5NzIxZGRlZGVhZDAwZjViMWE5YjgzODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kaXNhYmxl
ZC1zZWFyY2gtaW5wdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0PgotCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotdmFyIGxvZ0RpdjsKLQotZnVuY3Rpb24g
bG9nKG1zZywgc3VjY2VzcykKLXsKLSAgICBsb2dEaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2JykpLnRleHRDb250ZW50ID0gbXNnICsgJzogJyArICghIXN1Y2Nlc3Mg
PyAnUEFTUycgOiAnRkFJTCcpOwotfQotCi1mdW5jdGlvbiBjbGlja09uKGVsZW1lbnQpCi17Ci0g
ICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZhciB4
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgdmFy
IHkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQot
ewotICAgIGxvZ0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyk7Ci0gICAg
dmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0JylbMF07Ci0g
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSBmYWxz
ZTsKLSAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgdmFyIHggPSBpbnB1dC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zmc2V0V2lkdGgg
LyAyOwotICAgICAgICB2YXIgeSA9IGlucHV0Lm9mZnNldFRvcCArIGlucHV0Lm9mZnNldEhlaWdo
dCAvIDI7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwotICAgICAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwot
ICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCdhJyk7Ci0gICAgICAgIGxvZygnVGhlIGlubmVy
IHRleHQgZWxlbWVudCBvZiB0aGUgc2VhcmNoIGlucHV0IHNob3VsZCBuZXZlciBiZSAwLWhlaWdo
dCcsIGlucHV0LnZhbHVlID09ICdhJyk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKLSAgICB9LCAwKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPGRpdj4KLSAgICAgICAgPGlucHV0IGlkPSJmb28iIHR5
cGU9InNlYXJjaCIgcmVzdWx0cz0iMCIgZGlzYWJsZWQ+Ci0gICAgPC9kaXY+Ci08ZGl2IGlkPSJj
b25zb2xlIj4KLTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zZWFyY2gtZGlzYWJsZWQtcmVhZG9ubHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtZGlzYWJsZWQtcmVhZG9ubHktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQwODE2MzAwZmIzN2U5N2ZjM2UyZmE5ZGVmNGUwMmRjNTAxNGE0OTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1kaXNhYmxlZC1y
ZWFkb25seS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NyBAQAorCitUaGlzIHRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBhIGNhbmNlbCBidXR0b24gaW4gc2VhcmNoIGlucHV0IGZvcm1zLgorCitUZXN0
IG9uIHRoZSBpbnB1dCBmb3JtIHdpdGggZGlzYWJsZWQ9ZmFsc2UgYW5kIHJlYWRvbmx5PWZhbHNl
CitDbGljayB0aGUgY2FuY2VsIGJ1dHRvbjoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIiIKKy4uLiBh
bmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFjdGVyOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiYiIKK0Ns
aWNrIHRoZSBjZW50ZXIgb2YgdGhlIGZvcm06CitQQVNTIGlucHV0LnZhbHVlIGlzICJmb28iCisu
Li4gYW5kIHRoZW4gaW5wdXQgb25lIGNoYXJhY3RlcjoKK1BBU1MgaW5wdXQudmFsdWUgaXMgImZv
b2IiCisKK1Rlc3Qgb24gdGhlIGlucHV0IGZvcm0gd2l0aCBkaXNhYmxlZD1mYWxzZSBhbmQgcmVh
ZG9ubHk9dHJ1ZQorQ2xpY2sgdGhlIGNhbmNlbCBidXR0b246CitQQVNTIGlucHV0LnZhbHVlIGlz
ICJmb28iCisuLi4gYW5kIHRoZW4gaW5wdXQgb25lIGNoYXJhY3RlcjoKK1BBU1MgaW5wdXQudmFs
dWUgaXMgImZvbyIKK0NsaWNrIHRoZSBjZW50ZXIgb2YgdGhlIGZvcm06CitQQVNTIGlucHV0LnZh
bHVlIGlzICJmb28iCisuLi4gYW5kIHRoZW4gaW5wdXQgb25lIGNoYXJhY3RlcjoKK1BBU1MgaW5w
dXQudmFsdWUgaXMgImZvbyIKKworVGVzdCBvbiB0aGUgaW5wdXQgZm9ybSB3aXRoIGRpc2FibGVk
PXRydWUgYW5kIHJlYWRvbmx5PWZhbHNlCitDbGljayB0aGUgY2FuY2VsIGJ1dHRvbjoKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgImZvbyIKKy4uLiBhbmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFjdGVyOgor
UEFTUyBpbnB1dC52YWx1ZSBpcyAiZm9vIgorQ2xpY2sgdGhlIGNlbnRlciBvZiB0aGUgZm9ybToK
K1BBU1MgaW5wdXQudmFsdWUgaXMgImZvbyIKKy4uLiBhbmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFj
dGVyOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiZm9vIgorCitUZXN0IG9uIHRoZSBpbnB1dCBmb3Jt
IHdpdGggZGlzYWJsZWQ9dHJ1ZSBhbmQgcmVhZG9ubHk9dHJ1ZQorQ2xpY2sgdGhlIGNhbmNlbCBi
dXR0b246CitQQVNTIGlucHV0LnZhbHVlIGlzICJmb28iCisuLi4gYW5kIHRoZW4gaW5wdXQgb25l
IGNoYXJhY3RlcjoKK1BBU1MgaW5wdXQudmFsdWUgaXMgImZvbyIKK0NsaWNrIHRoZSBjZW50ZXIg
b2YgdGhlIGZvcm06CitQQVNTIGlucHV0LnZhbHVlIGlzICJmb28iCisuLi4gYW5kIHRoZW4gaW5w
dXQgb25lIGNoYXJhY3RlcjoKK1BBU1MgaW5wdXQudmFsdWUgaXMgImZvbyIKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWRpc2FibGVkLXJlYWRvbmx5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1kaXNhYmxlZC1yZWFkb25seS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE3ZjM2NDUzYzRiMTRjMTgzZjdhYmQ2YTA2MzI0MmViN2M3YjkxMDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1kaXNhYmxlZC1yZWFkb25seS5o
dG1sCkBAIC0wLDAgKzEsMTMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGlucHV0IGlkPSJzZWFyY2hfaW5wdXQiIHR5cGU9InNlYXJjaCIgZGlzYWJsZWQ9ImRpc2Fi
bGVkIiAvPgorPGRpdiBpZD0iY29uc29sZSI+Cis8cD4KK1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9y
IG9mIGEgY2FuY2VsIGJ1dHRvbiBpbiBzZWFyY2ggaW5wdXQgZm9ybXMuCis8L3A+Cis8L2Rpdj4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBjbGljayhwb3NpdGlvbikgeworICAgIGlmICghZXZlbnRTZW5k
ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhwb3NpdGlv
bi54LCBwb3NpdGlvbi55KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhwb3NpdGlvbi54LCBwb3NpdGlvbi55KTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwMCk7Cit9CisK
K2Z1bmN0aW9uIGtleWRvd24oY2hhcmFjdGVyKSB7CisgICAgaWYgKCFldmVudFNlbmRlcikKKyAg
ICAgICAgcmV0dXJuOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oY2hhcmFjdGVyKTsKKyAgICBl
dmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKK30KKworZnVuY3Rpb24gc2V0SW5wdXRBdHRy
aWJ1dGVzKGlucHV0LCB2YWx1ZSwgZGlzYWJsZWQsIHJlYWRvbmx5KSB7CisgICAgaW5wdXQudmFs
dWUgPSB2YWx1ZTsKKyAgICBpbnB1dC5kaXNhYmxlZCA9IGRpc2FibGVkOworICAgIGlucHV0LnJl
YWRPbmx5ID0gISFyZWFkb25seTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIHZhciBpbnB1dCA9ICQoInNlYXJjaF9pbnB1dCIpOworICAgIHZhciBjYW5jZWxC
dXR0b25Qb3NpdGlvbiA9IHNlYXJjaENhbmNlbEJ1dHRvblBvc2l0aW9uKGlucHV0KTsKKyAgICB2
YXIgbWlkZGxlQnV0dG9uUG9zaXRpb24gPSB7fTsKKyAgICBtaWRkbGVCdXR0b25Qb3NpdGlvbi54
ID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFdpZHRoIC8gMjsKKyAgICBtaWRkbGVC
dXR0b25Qb3NpdGlvbi55ID0gaW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8g
MjsKKyAgICB2YXIgZW5hYmxlZCA9IGZhbHNlOworICAgIHZhciBkaXNhYmxlZCA9IHRydWU7Cisg
ICAgdmFyIHJlYWRvbmx5ID0gdHJ1ZTsKKworICAgIGRlYnVnKCJUZXN0IG9uIHRoZSBpbnB1dCBm
b3JtIHdpdGggZGlzYWJsZWQ9ZmFsc2UgYW5kIHJlYWRvbmx5PWZhbHNlIik7CisKKyAgICBzZXRJ
bnB1dEF0dHJpYnV0ZXMoaW5wdXQsICJmb28iLCBlbmFibGVkKTsKKyAgICBkZWJ1ZygiQ2xpY2sg
dGhlIGNhbmNlbCBidXR0b246Iik7CisgICAgY2xpY2soY2FuY2VsQnV0dG9uUG9zaXRpb24pOwor
ICAgIHNob3VsZEJlKCdpbnB1dC52YWx1ZScsICciIicpOworICAgIGRlYnVnKCIuLi4gYW5kIHRo
ZW4gaW5wdXQgb25lIGNoYXJhY3RlcjoiKTsKKyAgICBrZXlkb3duKCJiIik7CisgICAgc2hvdWxk
QmUoJ2lucHV0LnZhbHVlJywgJyJiIicpOworCisgICAgc2V0SW5wdXRBdHRyaWJ1dGVzKGlucHV0
LCAiZm9vIiwgZW5hYmxlZCk7CisgICAgZGVidWcoIkNsaWNrIHRoZSBjZW50ZXIgb2YgdGhlIGZv
cm06Iik7CisgICAgY2xpY2sobWlkZGxlQnV0dG9uUG9zaXRpb24pOworICAgIHNob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciZm9vIicpOworICAgIGRlYnVnKCIuLi4gYW5kIHRoZW4gaW5wdXQgb25l
IGNoYXJhY3RlcjoiKTsKKyAgICBrZXlkb3duKCJiIik7CisgICAgc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyJmb29iIicpOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IG9uIHRo
ZSBpbnB1dCBmb3JtIHdpdGggZGlzYWJsZWQ9ZmFsc2UgYW5kIHJlYWRvbmx5PXRydWUiKTsKKwor
ICAgIHNldElucHV0QXR0cmlidXRlcyhpbnB1dCwgImZvbyIsIGVuYWJsZWQsIHJlYWRvbmx5KTsK
KyAgICBkZWJ1ZygiQ2xpY2sgdGhlIGNhbmNlbCBidXR0b246Iik7CisgICAgY2xpY2soY2FuY2Vs
QnV0dG9uUG9zaXRpb24pOworICAgIHNob3VsZEJlKCdpbnB1dC52YWx1ZScsICciZm9vIicpOwor
ICAgIGRlYnVnKCIuLi4gYW5kIHRoZW4gaW5wdXQgb25lIGNoYXJhY3RlcjoiKTsKKyAgICBrZXlk
b3duKCJiIik7CisgICAgc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyJmb28iJyk7CisKKyAgICBz
ZXRJbnB1dEF0dHJpYnV0ZXMoaW5wdXQsICJmb28iLCBlbmFibGVkLCByZWFkb25seSk7CisgICAg
ZGVidWcoIkNsaWNrIHRoZSBjZW50ZXIgb2YgdGhlIGZvcm06Iik7CisgICAgY2xpY2sobWlkZGxl
QnV0dG9uUG9zaXRpb24pOworICAgIHNob3VsZEJlKCdpbnB1dC52YWx1ZScsICciZm9vIicpOwor
ICAgIGRlYnVnKCIuLi4gYW5kIHRoZW4gaW5wdXQgb25lIGNoYXJhY3RlcjoiKTsKKyAgICBrZXlk
b3duKCJiIik7CisgICAgc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyJmb28iJyk7CisKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3Qgb24gdGhlIGlucHV0IGZvcm0gd2l0aCBkaXNhYmxl
ZD10cnVlIGFuZCByZWFkb25seT1mYWxzZSIpOworCisgICAgc2V0SW5wdXRBdHRyaWJ1dGVzKGlu
cHV0LCAiZm9vIiwgZGlzYWJsZWQpOworICAgIGRlYnVnKCJDbGljayB0aGUgY2FuY2VsIGJ1dHRv
bjoiKTsKKyAgICBjbGljayhjYW5jZWxCdXR0b25Qb3NpdGlvbik7CisgICAgc2hvdWxkQmUoJ2lu
cHV0LnZhbHVlJywgJyJmb28iJyk7CisgICAgZGVidWcoIi4uLiBhbmQgdGhlbiBpbnB1dCBvbmUg
Y2hhcmFjdGVyOiIpOworICAgIGtleWRvd24oImIiKTsKKyAgICBzaG91bGRCZSgnaW5wdXQudmFs
dWUnLCAnImZvbyInKTsKKworICAgIHNldElucHV0QXR0cmlidXRlcyhpbnB1dCwgImZvbyIsIGRp
c2FibGVkKTsKKyAgICBkZWJ1ZygiQ2xpY2sgdGhlIGNlbnRlciBvZiB0aGUgZm9ybToiKTsKKyAg
ICBjbGljayhtaWRkbGVCdXR0b25Qb3NpdGlvbik7CisgICAgc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyJmb28iJyk7CisgICAgZGVidWcoIi4uLiBhbmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFjdGVy
OiIpOworICAgIGtleWRvd24oImIiKTsKKyAgICBzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnImZv
byInKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBvbiB0aGUgaW5wdXQgZm9y
bSB3aXRoIGRpc2FibGVkPXRydWUgYW5kIHJlYWRvbmx5PXRydWUiKTsKKworICAgIHNldElucHV0
QXR0cmlidXRlcyhpbnB1dCwgImZvbyIsIGRpc2FibGVkLCByZWFkb25seSk7CisgICAgZGVidWco
IkNsaWNrIHRoZSBjYW5jZWwgYnV0dG9uOiIpOworICAgIGNsaWNrKGNhbmNlbEJ1dHRvblBvc2l0
aW9uKTsKKyAgICBzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnImZvbyInKTsKKyAgICBkZWJ1Zygi
Li4uIGFuZCB0aGVuIGlucHV0IG9uZSBjaGFyYWN0ZXI6Iik7CisgICAga2V5ZG93bigiYiIpOwor
ICAgIHNob3VsZEJlKCdpbnB1dC52YWx1ZScsICciZm9vIicpOworCisgICAgc2V0SW5wdXRBdHRy
aWJ1dGVzKGlucHV0LCAiZm9vIiwgZGlzYWJsZWQsIHJlYWRvbmx5KTsKKyAgICBkZWJ1ZygiQ2xp
Y2sgdGhlIGNlbnRlciBvZiB0aGUgZm9ybToiKTsKKyAgICBjbGljayhtaWRkbGVCdXR0b25Qb3Np
dGlvbik7CisgICAgc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyJmb28iJyk7CisgICAgZGVidWco
Ii4uLiBhbmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFjdGVyOiIpOworICAgIGtleWRvd24oImIiKTsK
KyAgICBzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnImZvbyInKTsKKworICAgIGRlYnVnKCIiKTsK
K30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYjRjZjg5NTVlYmFjNjFjMzA4ZTI1MTA2OTI1YWU5ZjBi
ZjQwYjk1Li44ODE5NmM2ZjVkMjdmNThmNGY4NGM5ODE3OWQ3N2E0MDkxMjMyZjhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDctMDEgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5A
Z29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKworICAgICAg
ICBEaXNhbGxvdyBjbGlja2luZyBhbiBbWF0gYnV0dG9uIGluICdzZWFyY2gnIGlucHV0IGZvcm1z
IHdoZW4gJ2Rpc2FibGVkJyBhdHRyaWJ1dGUgb3IgJ3JlYWRvbmx5JyBhdHRyaWJ1dGUgaXMgc2V0
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3MDkK
KworICAgICAgICBJZ25vcmUgYSBjYW5jZWwgYnV0dG9uIGV2ZW50IG9uIGEgJ3NlYXJjaCcgaW5w
dXQgZm9ybSBpZiAnZGlzYWJsZWQnIGF0dHJpYnV0ZSBvcgorICAgICAgICAncmVhZG9ubHknIGF0
dHJpYnV0ZSBpcyBzZXQgdG8gdGhlIGlucHV0IGZvcm0uCisKKyAgICAgICAgVGVzdDogZmFzdC9m
b3Jtcy9kaXNhYmxlZC1zZWFyY2gtaW5wdXQuaHRtbAorCisgICAgICAgICogaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisKIDIwMTEtMDYt
MzAgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhcy5idWdAZ21haWwuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCA4YjZmOThlZGUx
Yjg4MDM0MGQwOGY4NzIyMjgxMGY3N2RlMTU4NzliLi5kOTFjMGVkMmFlNTZlMjhkMzNlZmQ0YjY2
Njc3NjBkYjkyZGIxNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTE5Miw2ICsxOTIsMTIgQEAgdm9p
ZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQqIGV2ZW50KQogewogICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIHZpc2libGUsIG9uIG1vdXNl
dXAsIGNsZWFyIHRoZSB2YWx1ZSwgYW5kIHNldCBzZWxlY3Rpb24KICAgICBSZWZQdHI8SFRNTElu
cHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0Fu
Y2VzdG9yTm9kZSgpKSk7CisgICAgaWYgKGlucHV0LT5kaXNhYmxlZCgpIHx8IGlucHV0LT5pc1Jl
YWRPbmx5Rm9ybUNvbnRyb2woKSkgeworICAgICAgICBpZiAoIWV2ZW50LT5kZWZhdWx0SGFuZGxl
ZCgpKQorICAgICAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZl
bnQpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBz
dGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7
CiAgICAgICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnZpc2libGVUb0hpdFRlc3Rp
bmcoKSkgewogICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1l
KCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99466</attachid>
            <date>2011-07-01 06:04:12 -0700</date>
            <delta_ts>2011-07-01 06:58:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63709-20110701220410.patch</filename>
            <type>text/plain</type>
            <size>8925</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAyMDkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MGUzZmZjYjBkZWM5ZjZkODMwMDJj
NDk2OWY1MDkxZTczMWJmNzI2Li5kNDkwZTQ4NGU2MDVkZjA0YzliOTRkNmYxNzM2ODRiMzc5MzI3
ZjYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDctMDEgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKwor
ICAgICAgICBEaXNhbGxvdyBjbGlja2luZyBhbiBbWF0gYnV0dG9uIGluICdzZWFyY2gnIGlucHV0
IGZvcm1zIHdoZW4gJ2Rpc2FibGVkJyBhdHRyaWJ1dGUgb3IgJ3JlYWRvbmx5JyBhdHRyaWJ1dGUg
aXMgc2V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjM3MDkKKworICAgICAgICBBZGRlZCBhIHRlc3QgdGhhdCBjaGVja3Mgd2hldGhlciB0aGUgY29u
dGVudCBpbiAnc2VhcmNoJyBpbnB1dCBmb3JtcyB3aXRoICdkaXNhYmxlZCcgYXR0cmlidXRlCisg
ICAgICAgIG9yICdyZWFkb25seScgYXR0cmlidXRlIGlzIGNsZWFyZWQgb3Igbm90LCB3aGVuIGFu
IFtYXSBidXR0b24gaXMgY2xpY2tlZC4KKworICAgICAgICAqIGZhc3QvZm9ybXMvc2VhcmNoLWRp
c2FibGVkLXJlYWRvbmx5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jt
cy9zZWFyY2gtZGlzYWJsZWQtcmVhZG9ubHkuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYtMzAgIEV1
Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhcy5idWdAZ21haWwuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NlYXJjaC1kaXNhYmxlZC1yZWFkb25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NlYXJjaC1kaXNhYmxlZC1yZWFkb25seS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDA4MTYzMDBmYjM3ZTk3ZmMzZTJmYTlkZWY0ZTAyZGM1MDE0YTQ5MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWRpc2FibGVkLXJlYWRvbmx5LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQ3IEBACisKK1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEg
Y2FuY2VsIGJ1dHRvbiBpbiBzZWFyY2ggaW5wdXQgZm9ybXMuCisKK1Rlc3Qgb24gdGhlIGlucHV0
IGZvcm0gd2l0aCBkaXNhYmxlZD1mYWxzZSBhbmQgcmVhZG9ubHk9ZmFsc2UKK0NsaWNrIHRoZSBj
YW5jZWwgYnV0dG9uOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiIgorLi4uIGFuZCB0aGVuIGlucHV0
IG9uZSBjaGFyYWN0ZXI6CitQQVNTIGlucHV0LnZhbHVlIGlzICJiIgorQ2xpY2sgdGhlIGNlbnRl
ciBvZiB0aGUgZm9ybToKK1BBU1MgaW5wdXQudmFsdWUgaXMgImZvbyIKKy4uLiBhbmQgdGhlbiBp
bnB1dCBvbmUgY2hhcmFjdGVyOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiZm9vYiIKKworVGVzdCBv
biB0aGUgaW5wdXQgZm9ybSB3aXRoIGRpc2FibGVkPWZhbHNlIGFuZCByZWFkb25seT10cnVlCitD
bGljayB0aGUgY2FuY2VsIGJ1dHRvbjoKK1BBU1MgaW5wdXQudmFsdWUgaXMgImZvbyIKKy4uLiBh
bmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFjdGVyOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiZm9vIgor
Q2xpY2sgdGhlIGNlbnRlciBvZiB0aGUgZm9ybToKK1BBU1MgaW5wdXQudmFsdWUgaXMgImZvbyIK
Ky4uLiBhbmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFjdGVyOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
Zm9vIgorCitUZXN0IG9uIHRoZSBpbnB1dCBmb3JtIHdpdGggZGlzYWJsZWQ9dHJ1ZSBhbmQgcmVh
ZG9ubHk9ZmFsc2UKK0NsaWNrIHRoZSBjYW5jZWwgYnV0dG9uOgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiZm9vIgorLi4uIGFuZCB0aGVuIGlucHV0IG9uZSBjaGFyYWN0ZXI6CitQQVNTIGlucHV0LnZh
bHVlIGlzICJmb28iCitDbGljayB0aGUgY2VudGVyIG9mIHRoZSBmb3JtOgorUEFTUyBpbnB1dC52
YWx1ZSBpcyAiZm9vIgorLi4uIGFuZCB0aGVuIGlucHV0IG9uZSBjaGFyYWN0ZXI6CitQQVNTIGlu
cHV0LnZhbHVlIGlzICJmb28iCisKK1Rlc3Qgb24gdGhlIGlucHV0IGZvcm0gd2l0aCBkaXNhYmxl
ZD10cnVlIGFuZCByZWFkb25seT10cnVlCitDbGljayB0aGUgY2FuY2VsIGJ1dHRvbjoKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgImZvbyIKKy4uLiBhbmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFjdGVyOgor
UEFTUyBpbnB1dC52YWx1ZSBpcyAiZm9vIgorQ2xpY2sgdGhlIGNlbnRlciBvZiB0aGUgZm9ybToK
K1BBU1MgaW5wdXQudmFsdWUgaXMgImZvbyIKKy4uLiBhbmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFj
dGVyOgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiZm9vIgorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zZWFyY2gtZGlzYWJsZWQtcmVhZG9ubHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc2VhcmNoLWRpc2FibGVkLXJlYWRvbmx5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDExNzE2MGQ4
M2JjZGI1MjJiMzdmOWNjOThiY2I5YWI3MjNiZmNjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWRpc2FibGVkLXJlYWRvbmx5Lmh0bWwKQEAgLTAsMCAr
MSwxMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aW5wdXQgaWQ9
InNlYXJjaF9pbnB1dCIgdHlwZT0ic2VhcmNoIiAvPgorPGRpdiBpZD0iY29uc29sZSI+Cis8cD4K
K1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgY2FuY2VsIGJ1dHRvbiBpbiBzZWFyY2ggaW5w
dXQgZm9ybXMuCis8L3A+Cis8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjbGljayhwb3NpdGlv
bikgeworICAgIGlmICghZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKyAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyhwb3NpdGlvbi54LCBwb3NpdGlvbi55KTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhwb3NpdGlvbi54LCBw
b3NpdGlvbi55KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXZlbnRTZW5kZXIu
bGVhcEZvcndhcmQoMTAwMCk7Cit9CisKK2Z1bmN0aW9uIGtleWRvd24oY2hhcmFjdGVyKSB7Cisg
ICAgaWYgKCFldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOworICAgIGV2ZW50U2VuZGVyLmtl
eURvd24oY2hhcmFjdGVyKTsKKyAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKK30K
KworZnVuY3Rpb24gc2V0SW5wdXRBdHRyaWJ1dGVzKGlucHV0LCB2YWx1ZSwgZGlzYWJsZWQsIHJl
YWRvbmx5KSB7CisgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTsKKyAgICBpbnB1dC5kaXNhYmxlZCA9
IGRpc2FibGVkOworICAgIGlucHV0LnJlYWRPbmx5ID0gISFyZWFkb25seTsKK30KKworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHZhciBpbnB1dCA9ICQoInNlYXJjaF9p
bnB1dCIpOworICAgIHZhciBjYW5jZWxCdXR0b25Qb3NpdGlvbiA9IHNlYXJjaENhbmNlbEJ1dHRv
blBvc2l0aW9uKGlucHV0KTsKKyAgICB2YXIgbWlkZGxlQnV0dG9uUG9zaXRpb24gPSB7fTsKKyAg
ICBtaWRkbGVCdXR0b25Qb3NpdGlvbi54ID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNl
dFdpZHRoIC8gMjsKKyAgICBtaWRkbGVCdXR0b25Qb3NpdGlvbi55ID0gaW5wdXQub2Zmc2V0VG9w
ICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICB2YXIgZW5hYmxlZCA9IGZhbHNlOworICAg
IHZhciBkaXNhYmxlZCA9IHRydWU7CisgICAgdmFyIHJlYWRvbmx5ID0gdHJ1ZTsKKworICAgIGRl
YnVnKCJUZXN0IG9uIHRoZSBpbnB1dCBmb3JtIHdpdGggZGlzYWJsZWQ9ZmFsc2UgYW5kIHJlYWRv
bmx5PWZhbHNlIik7CisKKyAgICBzZXRJbnB1dEF0dHJpYnV0ZXMoaW5wdXQsICJmb28iLCBlbmFi
bGVkKTsKKyAgICBkZWJ1ZygiQ2xpY2sgdGhlIGNhbmNlbCBidXR0b246Iik7CisgICAgY2xpY2so
Y2FuY2VsQnV0dG9uUG9zaXRpb24pOworICAgIHNob3VsZEJlKCdpbnB1dC52YWx1ZScsICciIicp
OworICAgIGRlYnVnKCIuLi4gYW5kIHRoZW4gaW5wdXQgb25lIGNoYXJhY3RlcjoiKTsKKyAgICBr
ZXlkb3duKCJiIik7CisgICAgc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyJiIicpOworCisgICAg
c2V0SW5wdXRBdHRyaWJ1dGVzKGlucHV0LCAiZm9vIiwgZW5hYmxlZCk7CisgICAgZGVidWcoIkNs
aWNrIHRoZSBjZW50ZXIgb2YgdGhlIGZvcm06Iik7CisgICAgY2xpY2sobWlkZGxlQnV0dG9uUG9z
aXRpb24pOworICAgIHNob3VsZEJlKCdpbnB1dC52YWx1ZScsICciZm9vIicpOworICAgIGRlYnVn
KCIuLi4gYW5kIHRoZW4gaW5wdXQgb25lIGNoYXJhY3RlcjoiKTsKKyAgICBrZXlkb3duKCJiIik7
CisgICAgc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyJmb29iIicpOworCisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJUZXN0IG9uIHRoZSBpbnB1dCBmb3JtIHdpdGggZGlzYWJsZWQ9ZmFsc2Ug
YW5kIHJlYWRvbmx5PXRydWUiKTsKKworICAgIHNldElucHV0QXR0cmlidXRlcyhpbnB1dCwgImZv
byIsIGVuYWJsZWQsIHJlYWRvbmx5KTsKKyAgICBkZWJ1ZygiQ2xpY2sgdGhlIGNhbmNlbCBidXR0
b246Iik7CisgICAgY2xpY2soY2FuY2VsQnV0dG9uUG9zaXRpb24pOworICAgIHNob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciZm9vIicpOworICAgIGRlYnVnKCIuLi4gYW5kIHRoZW4gaW5wdXQgb25l
IGNoYXJhY3RlcjoiKTsKKyAgICBrZXlkb3duKCJiIik7CisgICAgc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyJmb28iJyk7CisKKyAgICBzZXRJbnB1dEF0dHJpYnV0ZXMoaW5wdXQsICJmb28iLCBl
bmFibGVkLCByZWFkb25seSk7CisgICAgZGVidWcoIkNsaWNrIHRoZSBjZW50ZXIgb2YgdGhlIGZv
cm06Iik7CisgICAgY2xpY2sobWlkZGxlQnV0dG9uUG9zaXRpb24pOworICAgIHNob3VsZEJlKCdp
bnB1dC52YWx1ZScsICciZm9vIicpOworICAgIGRlYnVnKCIuLi4gYW5kIHRoZW4gaW5wdXQgb25l
IGNoYXJhY3RlcjoiKTsKKyAgICBrZXlkb3duKCJiIik7CisgICAgc2hvdWxkQmUoJ2lucHV0LnZh
bHVlJywgJyJmb28iJyk7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3Qgb24gdGhl
IGlucHV0IGZvcm0gd2l0aCBkaXNhYmxlZD10cnVlIGFuZCByZWFkb25seT1mYWxzZSIpOworCisg
ICAgc2V0SW5wdXRBdHRyaWJ1dGVzKGlucHV0LCAiZm9vIiwgZGlzYWJsZWQpOworICAgIGRlYnVn
KCJDbGljayB0aGUgY2FuY2VsIGJ1dHRvbjoiKTsKKyAgICBjbGljayhjYW5jZWxCdXR0b25Qb3Np
dGlvbik7CisgICAgc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyJmb28iJyk7CisgICAgZGVidWco
Ii4uLiBhbmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFjdGVyOiIpOworICAgIGtleWRvd24oImIiKTsK
KyAgICBzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnImZvbyInKTsKKworICAgIHNldElucHV0QXR0
cmlidXRlcyhpbnB1dCwgImZvbyIsIGRpc2FibGVkKTsKKyAgICBkZWJ1ZygiQ2xpY2sgdGhlIGNl
bnRlciBvZiB0aGUgZm9ybToiKTsKKyAgICBjbGljayhtaWRkbGVCdXR0b25Qb3NpdGlvbik7Cisg
ICAgc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyJmb28iJyk7CisgICAgZGVidWcoIi4uLiBhbmQg
dGhlbiBpbnB1dCBvbmUgY2hhcmFjdGVyOiIpOworICAgIGtleWRvd24oImIiKTsKKyAgICBzaG91
bGRCZSgnaW5wdXQudmFsdWUnLCAnImZvbyInKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZygiVGVzdCBvbiB0aGUgaW5wdXQgZm9ybSB3aXRoIGRpc2FibGVkPXRydWUgYW5kIHJlYWRvbmx5
PXRydWUiKTsKKworICAgIHNldElucHV0QXR0cmlidXRlcyhpbnB1dCwgImZvbyIsIGRpc2FibGVk
LCByZWFkb25seSk7CisgICAgZGVidWcoIkNsaWNrIHRoZSBjYW5jZWwgYnV0dG9uOiIpOworICAg
IGNsaWNrKGNhbmNlbEJ1dHRvblBvc2l0aW9uKTsKKyAgICBzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnImZvbyInKTsKKyAgICBkZWJ1ZygiLi4uIGFuZCB0aGVuIGlucHV0IG9uZSBjaGFyYWN0ZXI6
Iik7CisgICAga2V5ZG93bigiYiIpOworICAgIHNob3VsZEJlKCdpbnB1dC52YWx1ZScsICciZm9v
IicpOworCisgICAgc2V0SW5wdXRBdHRyaWJ1dGVzKGlucHV0LCAiZm9vIiwgZGlzYWJsZWQsIHJl
YWRvbmx5KTsKKyAgICBkZWJ1ZygiQ2xpY2sgdGhlIGNlbnRlciBvZiB0aGUgZm9ybToiKTsKKyAg
ICBjbGljayhtaWRkbGVCdXR0b25Qb3NpdGlvbik7CisgICAgc2hvdWxkQmUoJ2lucHV0LnZhbHVl
JywgJyJmb28iJyk7CisgICAgZGVidWcoIi4uLiBhbmQgdGhlbiBpbnB1dCBvbmUgY2hhcmFjdGVy
OiIpOworICAgIGtleWRvd24oImIiKTsKKyAgICBzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnImZv
byInKTsKKworICAgIGRlYnVnKCIiKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYjRjZjg5NTVl
YmFjNjFjMzA4ZTI1MTA2OTI1YWU5ZjBiZjQwYjk1Li41ZjE4NjI5ZDU4NmE3YmQ1NjQ3NzY2ZWVm
MjNkMzZiYzJhYTBkODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDctMDEg
IEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBLZW50IFRhbXVyYS4KKworICAgICAgICBEaXNhbGxvdyBjbGlja2luZyBhbiBbWF0gYnV0dG9u
IGluICdzZWFyY2gnIGlucHV0IGZvcm1zIHdoZW4gJ2Rpc2FibGVkJyBhdHRyaWJ1dGUgb3IgJ3Jl
YWRvbmx5JyBhdHRyaWJ1dGUgaXMgc2V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjM3MDkKKworICAgICAgICBJZ25vcmUgYSBjYW5jZWwgYnV0dG9u
IGV2ZW50IG9uIGEgJ3NlYXJjaCcgaW5wdXQgZm9ybSBpZiAnZGlzYWJsZWQnIGF0dHJpYnV0ZSBv
cgorICAgICAgICAncmVhZG9ubHknIGF0dHJpYnV0ZSBpcyBzZXQgdG8gdGhlIGlucHV0IGZvcm0u
CisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9zZWFyY2gtZGlzYWJsZWQtcmVhZG9ubHkuaHRt
bAorCisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcik6CisKIDIwMTEtMDYtMzAgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rh
cy5idWdAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxl
bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnRzLmNwcAppbmRleCA4YjZmOThlZGUxYjg4MDM0MGQwOGY4NzIyMjgxMGY3N2RlMTU4Nzli
Li5kOTFjMGVkMmFlNTZlMjhkMzNlZmQ0YjY2Njc3NjBkYjkyZGIxNGRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAKQEAgLTE5Miw2ICsxOTIsMTIgQEAgdm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewogICAgIC8vIElmIHRoZSBl
bGVtZW50IGlzIHZpc2libGUsIG9uIG1vdXNldXAsIGNsZWFyIHRoZSB2YWx1ZSwgYW5kIHNldCBz
ZWxlY3Rpb24KICAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKSk7CisgICAgaWYgKGlucHV0
LT5kaXNhYmxlZCgpIHx8IGlucHV0LT5pc1JlYWRPbmx5Rm9ybUNvbnRyb2woKSkgeworICAgICAg
ICBpZiAoIWV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQorICAgICAgICAgICAgSFRNTERpdkVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYm
IGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQp
LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlmIChyZW5kZXJlcigpICYmIHJl
bmRlcmVyKCktPnZpc2libGVUb0hpdFRlc3RpbmcoKSkgewogICAgICAgICAgICAgaWYgKEZyYW1l
KiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>