<?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>61252</bug_id>
          
          <creation_ts>2011-05-22 12:44:18 -0700</creation_ts>
          <short_desc>[Chromium]Add clipping for listBox in popup window to fix wrong location display when the autofill item is really long.</short_desc>
          <delta_ts>2011-05-24 02:03:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Naoki Takano">honten</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>honten</cc>
    
    <cc>isherman</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>407696</commentid>
    <comment_count>0</comment_count>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-22 12:44:18 -0700</bug_when>
    <thetext>[Chromium]Add clipping for listBox in popup window to fix wrong location display when the autofill item is really long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407697</commentid>
    <comment_count>1</comment_count>
      <attachid>94353</attachid>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-22 12:49:48 -0700</bug_when>
    <thetext>Created attachment 94353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407698</commentid>
    <comment_count>2</comment_count>
      <attachid>94354</attachid>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-22 12:50:47 -0700</bug_when>
    <thetext>Created attachment 94354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407699</commentid>
    <comment_count>3</comment_count>
      <attachid>94354</attachid>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-22 12:53:28 -0700</bug_when>
    <thetext>Comment on attachment 94354
Patch

Please review.

This is a pretty corner case, but definitely it is a bug.

In chromimu, I filed the bug at
http://code.google.com/p/chromium/issues/detail?id=83539

Thanks,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407739</commentid>
    <comment_count>4</comment_count>
      <attachid>94354</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-22 21:22:28 -0700</bug_when>
    <thetext>Comment on attachment 94354
Patch

This looks reasonable, but I&apos;m not sure I&apos;m the right person to review this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408177</commentid>
    <comment_count>5</comment_count>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-23 12:57:20 -0700</bug_when>
    <thetext>Thanks, Adam.

I hope tkent@ or iserman@ will review.

(In reply to comment #4)
&gt; (From update of attachment 94354 [details])
&gt; This looks reasonable, but I&apos;m not sure I&apos;m the right person to review this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408331</commentid>
    <comment_count>6</comment_count>
      <attachid>94354</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-05-23 14:50:49 -0700</bug_when>
    <thetext>Comment on attachment 94354
Patch

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

&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:370
&gt; +                listBox()-&gt;setMaxWidthAndLayout(max(widgetRect.width() - kBorderSize * 2, 0));

nit: This line can be moved out of the if/else, since it is the same in both places.

&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:1381
&gt; +        // windowWidth exceeds m_maxWindowWidth, so we have to clip.

nit: Please move this comment into the if-stmt

&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:1385
&gt; +            baseWidth -= diff;

nit: I think these three lines would be clearer as
windowWidth = m_maxWindowWidth;
baseWidth = windowWidth - scrollbarWidth - paddingWidth;

If you don&apos;t find that clearer, though, feel free to leave this as is.

&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:1386
&gt; +            m_baseWidth = baseWidth;

nit: Is this line not redundant with the else of the if/else below?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408371</commentid>
    <comment_count>7</comment_count>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-23 15:14:06 -0700</bug_when>
    <thetext>Ilya,

Thank you for your review.
&gt; &gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:370
&gt; &gt; +                listBox()-&gt;setMaxWidthAndLayout(max(widgetRect.width() - kBorderSize * 2, 0));
&gt; 
&gt; nit: This line can be moved out of the if/else, since it is the same in both places.
I don&apos;t think so, because only this is not &quot;if/else&quot; but &quot;if/else if&quot;, and only if width is change, we want to call setMaxWidthAndLayout().

(In reply to comment #6)
&gt; (From update of attachment 94354 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=94354&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:370
&gt; &gt; +                listBox()-&gt;setMaxWidthAndLayout(max(widgetRect.width() - kBorderSize * 2, 0));
&gt; 
&gt; nit: This line can be moved out of the if/else, since it is the same in both places.
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:1381
&gt; &gt; +        // windowWidth exceeds m_maxWindowWidth, so we have to clip.
&gt; 
&gt; nit: Please move this comment into the if-stmt
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:1385
&gt; &gt; +            baseWidth -= diff;
&gt; 
&gt; nit: I think these three lines would be clearer as
&gt; windowWidth = m_maxWindowWidth;
&gt; baseWidth = windowWidth - scrollbarWidth - paddingWidth;
&gt; 
&gt; If you don&apos;t find that clearer, though, feel free to leave this as is.
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:1386
&gt; &gt; +            m_baseWidth = baseWidth;
&gt; 
&gt; nit: Is this line not redundant with the else of the if/else below?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408384</commentid>
    <comment_count>8</comment_count>
      <attachid>94354</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-05-23 15:19:39 -0700</bug_when>
    <thetext>Comment on attachment 94354
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:370

&gt;&gt;&gt; 
&gt;&gt;&gt; nit: This line can be moved out of the if/else, since it is the same in both places.
&gt;&gt; 
&gt;&gt; I don&apos;t think so, because only this is not &quot;if/else&quot; but &quot;if/else if&quot;, and only if width is change, we want to call setMaxWidthAndLayout().
&gt;&gt; 
&gt;&gt; (In reply to comment #6)
&gt; 
&gt; 

Ah, you&apos;re right -- my bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408637</commentid>
    <comment_count>9</comment_count>
      <attachid>94561</attachid>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-23 22:01:47 -0700</bug_when>
    <thetext>Created attachment 94561
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408638</commentid>
    <comment_count>10</comment_count>
      <attachid>94561</attachid>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-23 22:02:26 -0700</bug_when>
    <thetext>Comment on attachment 94561
Patch

Please review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408643</commentid>
    <comment_count>11</comment_count>
      <attachid>94561</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2011-05-23 22:10:54 -0700</bug_when>
    <thetext>Comment on attachment 94561
Patch

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

I am not a WebKit reviewer, but this looks good to me.

&gt; Source/WebCore/ChangeLog:11
&gt; +        * manual-tests/autofill-popup-location.html: With long ong text, test the shown location is correct.

nit: Please remove &quot;ong&quot;

&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:364
&gt; +        // When clipping, we have to set and notify listBox() the change.

nit: This comment might be clearer as &quot;&quot;&quot;When clipping, we also need to set a maximum width for the list box.&quot;&quot;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408644</commentid>
    <comment_count>12</comment_count>
      <attachid>94563</attachid>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-23 22:14:21 -0700</bug_when>
    <thetext>Created attachment 94563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408648</commentid>
    <comment_count>13</comment_count>
      <attachid>94563</attachid>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-23 22:15:52 -0700</bug_when>
    <thetext>Comment on attachment 94563
Patch

Change some nits according to Ilya&apos;s review.

Thanks,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408649</commentid>
    <comment_count>14</comment_count>
      <attachid>94563</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-23 22:18:29 -0700</bug_when>
    <thetext>Comment on attachment 94563
Patch

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

&gt; Source/WebCore/manual-tests/autofill-popup-location.html:21
&gt; +      &lt;li&gt; Enter &apos;This is really long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text.&apos; in the following text input area.&lt;/li&gt;

Does it mean type the text and then type ENTER to submit the form?

&gt; Source/WebCore/manual-tests/autofill-popup-location.html:23
&gt; +      &lt;li&gt; Enter &apos;This is short text.&apos; in the following text input area.&lt;/li&gt;

ditto.

&gt; Source/WebCore/manual-tests/autofill-popup-location.html:29
&gt; +    &lt;form&gt;&lt;input name=p autofocus&gt;&lt;/form&gt;

This HTML already has an input with autofocus.  Multiple autofocus inputs are confusing.

&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:170
&gt; +        , m_maxWindowWidth(INT_MAX)

Because this is a C++ code, we had better use numeric_limits&lt;int&gt;::max() instead of INT_MAX.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408652</commentid>
    <comment_count>15</comment_count>
      <attachid>94565</attachid>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-23 22:28:44 -0700</bug_when>
    <thetext>Created attachment 94565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408654</commentid>
    <comment_count>16</comment_count>
      <attachid>94565</attachid>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-23 22:29:12 -0700</bug_when>
    <thetext>Comment on attachment 94565
Patch

Please review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408662</commentid>
    <comment_count>17</comment_count>
      <attachid>94565</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-23 22:46:18 -0700</bug_when>
    <thetext>Comment on attachment 94565
Patch

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

ok

&gt; Source/WebCore/platform/chromium/PopupMenuChromium.cpp:170
&gt; +        , m_maxWindowWidth(std::numeric_limits&lt;int&gt;::max())

nit: We usually declare &quot;using namespace std;&quot; at the beginning of the file, and omit &apos;std::&apos; in the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408666</commentid>
    <comment_count>18</comment_count>
    <who name="Naoki Takano">honten</who>
    <bug_when>2011-05-23 22:56:18 -0700</bug_when>
    <thetext>Thanks, Kent-san.

Once I fix select event bug, I will clean up code about this namespace std problem and const static k* values problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408731</commentid>
    <comment_count>19</comment_count>
      <attachid>94565</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-24 02:03:00 -0700</bug_when>
    <thetext>Comment on attachment 94565
Patch

Clearing flags on attachment: 94565

Committed r87137: &lt;http://trac.webkit.org/changeset/87137&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408732</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-24 02:03:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94353</attachid>
            <date>2011-05-22 12:49:48 -0700</date>
            <delta_ts>2011-05-22 12:50:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61252-20110522124942.patch</filename>
            <type>text/plain</type>
            <size>6719</size>
            <attacher name="Naoki Takano">honten</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjBlYzQxNjBmNzQ0OTlh
ZmRiOWQ2ODNlODM3ZTk3NTJkMDZhMDc3Li44ODY5ODdmYzAwMzUxMmZhNmRmNjVmOWM4ODAxNWFi
NmZhYzEwYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDUtMjIgIE5hb2tp
IFRha2FubyAgPHRha2Fuby5uYW9raUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXUFkZCBjbGlwcGluZyBmb3IgbGlz
dEJveCBpbiBwb3B1cCB3aW5kb3cgdG8gZml4IHdyb25nIGxvY2F0aW9uIGRpc3BsYXkgd2hlbiB0
aGUgYXV0b2ZpbGwgaXRlbSBpcyByZWFsbHkgbG9uZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjUyCisKKyAgICAgICAgTWFudWFsIHRlc3Q6IG1h
bnVhbC10ZXN0cy9hdXRvZmlsbC1wb3B1cC1sb2NhdGlvbi5odG1sLgorCisgICAgICAgICogbWFu
dWFsLXRlc3RzL2F1dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWw6IFdpdGggbG9uZyBvbmcgdGV4
dCwgdGVzdCB0aGUgc2hvd24gbG9jYXRpb24gaXMgY29ycmVjdC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1
cExpc3RCb3g6OnNldEJhc2VXaWR0aCk6IENsaXAgd2lkdGggd2l0aCBtX21heFdpbmRvd1dpZHRo
LgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpQb3B1cExpc3RCb3gpOiBBZGQgbV9t
YXhXaW5kb3dXaWR0aCBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwQ29u
dGFpbmVyOjpsYXlvdXRBbmRDYWxjdWxhdGVXaWRnZXRSZWN0KTogQ2FsbCBzZXRNYXhXaWR0aEFu
ZExheW91dCgpIHdoZW4gdGhlIHdpZHRoIGlzIGNsaXBwZWQgd2l0aCBzY3JlZW4gc2l6ZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6c2V0TWF4V2lkdGhBbmRMYXlvdXQpOiBTZXQg
bV9tYXhXaW5kb3dXaWR0aCBhbmQgY2FsbCBsYXlvdXQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBv
cHVwTGlzdEJveDo6bGF5b3V0KTogQ29tcGFyZSByZW5ld2VkIHdpbmRvd1dpZHRoIGFuZCBtX21h
eFdpbmRvd1dpZHRoLCBhbmQgY2xpcCB0aGUgaXQuCisKIDIwMTEtMDUtMjAgIE1pY2hhZWwgTm9y
ZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
RmlzaGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9maWxs
LXBvcHVwLWxvY2F0aW9uLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2Zp
bGwtcG9wdXAtbG9jYXRpb24uaHRtbAppbmRleCA1ZTI4YTE1ZWEzYzUyN2UyYWM2NzAwYWZjMjdj
ZWRhY2Q4YjFiM2UxLi42OTk3Mzg3YzFjYjRlZWQwYzZhMjVjYmI1MmVjMTgwMTJlNTA5MWI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2ZpbGwtcG9wdXAtbG9j
YXRpb24uaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2ZpbGwtcG9w
dXAtbG9jYXRpb24uaHRtbApAQCAtMTYsNSArMTYsMTYgQEAKICAgICA8L29sPgogICAgIDxicj4K
ICAgICA8Zm9ybT48aW5wdXQgbmFtZT1xIGF1dG9mb2N1cz48L2Zvcm0+CisKKyAgICA8b2w+Cisg
ICAgICA8bGk+IEVudGVyICdUaGlzIGlzIHJlYWxseSBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcg
bG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxv
bmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25n
IGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBs
b25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9u
ZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcg
bG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxv
bmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25n
IGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyB0
ZXh0LicgaW4gdGhlIGZvbGxvd2luZyB0ZXh0IGlucHV0IGFyZWEuPC9saT4KKyAgICAgIDxsaT4g
UHJlc3MgJ1QnIGFuZCBtYWtlIHN1cmUgdGhlIGlucHV0IHRleHQgaXMgc2hvd24gaW4gYXV0b2Zp
bGwgcG9wdXAgd2luZG93IGFuZCBpdCBleGNlZWRzIHRoZSB3aWR0aCBvZiBzY3JlZW4uIElmIHlv
dXIgZGlzcGxheSByZXNvbHV0aW9uIGlzIHZlcnkgaGlnaCwgYW5kIHRoZSB3aGlsZSB0ZXh0IGZp
dHMgaW4gdGhlIHdpbmRvdywgcGxlYXNlIGZpbGwgbW9yZSBjaGFyYWN0ZXJzIGFuZCB0cnkgYWdh
aW4gdGlsbCB0aGUgdGV4dCBleGNlZWRzIHRoZSB3aWR0aC4KKyAgICAgIDxsaT4gRW50ZXIgJ1Ro
aXMgaXMgc2hvcnQgdGV4dC4nIGluIHRoZSBmb2xsb3dpbmcgdGV4dCBpbnB1dCBhcmVhLjwvbGk+
CisgICAgICA8bGk+IFByZXNzICd0JyBhbmQgbWFrZSBzdXJlIHRoZSBpbnB1dCB0ZXh0IHdoaWNo
IHlvdSB0eXBlZCBpbiBpcyBkaXNwbGF5ZWQgaW4gYXV0b2ZpbGwgcG9wdXAgd2luZG93LjwvbGk+
CisgICAgICA8bGk+IFByZXNzICdoJyBhbmQgbWFrZSBzdXJlIHRoZSBwb3B1cCB3aW5kb3cgbG9j
YXRpb24gaXMgY29ycmVjdC48L2xpPgorICAgICAgPGxpPiBQcmVzcyBhcnJvdyBrZXkgZG93biBh
bmQgbWFrZSBzdXJlIHRoZSBwb3B1cCB3aW5kb3cgdGV4dCBpcyBub3QgYnJva2VuLjwvbGk+Cisg
ICAgPC9vbD4KKyAgICA8YnI+CisgICAgPGZvcm0+PGlucHV0IG5hbWU9cCBhdXRvZm9jdXM+PC9m
b3JtPgogICA8L2JvZHk+CiA8L2h0bWw+IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCmluZGV4IDk2NWNjZDU4YjFkNTY1
ZmRlY2I5MWY3YjI0OWVlZTA3NWU0NDY2NzguLjZmNzJjNWZlOGZlMDAxMTg4NGU1NDlkNzViMTNk
ZmVkY2RkYmZiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BvcHVwTWVudUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0LgogICAgIGludCBu
dW1JdGVtcygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4obV9pdGVtcy5zaXplKCkp
OyB9CiAKLSAgICB2b2lkIHNldEJhc2VXaWR0aChpbnQgd2lkdGgpIHsgbV9iYXNlV2lkdGggPSB3
aWR0aDsgfQorICAgIHZvaWQgc2V0QmFzZVdpZHRoKGludCB3aWR0aCkgeyBtX2Jhc2VXaWR0aCA9
IG1pbihtX21heFdpbmRvd1dpZHRoLCB3aWR0aCk7IH0KIAogICAgIC8vIENvbXB1dGVzIHRoZSBz
aXplIG9mIHdpZGdldCBhbmQgY2hpbGRyZW4uCiAgICAgdm9pZCBsYXlvdXQoKTsKQEAgLTE0Niw2
ICsxNDYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1heEhlaWdodChpbnQgbWF4SGVpZ2h0
KSB7IG1fbWF4SGVpZ2h0ID0gbWF4SGVpZ2h0OyB9CiAKKyAgICB2b2lkIHNldE1heFdpZHRoQW5k
TGF5b3V0KGludCk7CisKICAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fcG9wdXBDbGll
bnQgPSAwOyB9CiAKICAgICBjb25zdCBWZWN0b3I8UG9wdXBJdGVtKj4mIGl0ZW1zKCkgY29uc3Qg
eyByZXR1cm4gbV9pdGVtczsgfQpAQCAtMTY1LDYgKzE2Nyw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICwgbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgICAgICwgbV9yZXBlYXRpbmdDaGFyKDApCiAg
ICAgICAgICwgbV9sYXN0Q2hhclRpbWUoMCkKKyAgICAgICAgLCBtX21heFdpbmRvd1dpZHRoKElO
VF9NQVgpCiAgICAgewogICAgICAgICBzZXRTY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJBbHdheXNP
ZmYsIFNjcm9sbGJhckFsd2F5c09mZik7CiAgICAgfQpAQCAtMjcxLDYgKzI3NCw5IEBAIHByaXZh
dGU6CiAKICAgICAvLyBUaGUgbGFzdCB0aW1lIHRoZSB1c2VyIGhpdCBhIGtleS4gIFVzZWQgZm9y
IHR5cGVBaGVhZEZpbmQuCiAgICAgVGltZVN0YW1wIG1fbGFzdENoYXJUaW1lOworCisgICAgLy8g
SWYgd2lkdGggZXhlZWRzIHNjcmVlbiB3aWR0aCwgd2UgaGF2ZSB0byBjbGlwIGl0LgorICAgIGlu
dCBtX21heFdpbmRvd1dpZHRoOwogfTsKIAogc3RhdGljIFBsYXRmb3JtTW91c2VFdmVudCBjb25z
dHJ1Y3RSZWxhdGl2ZU1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBlLApAQCAt
MzU1LDEzICszNjEsMTcgQEAgSW50UmVjdCBQb3B1cENvbnRhaW5lcjo6bGF5b3V0QW5kQ2FsY3Vs
YXRlV2lkZ2V0UmVjdChpbnQgdGFyZ2V0Q29udHJvbEhlaWdodCwgY28KIAogICAgICAgICAvLyBJ
ZiB3ZSBoYXZlIG11bHRpcGxlIHNjcmVlbnMgYW5kIHRoZSBicm93c2VyIHJlY3QgaXMgaW4gb25l
IHNjcmVlbiwgd2UgaGF2ZQogICAgICAgICAvLyB0byBjbGlwIHRoZSB3aW5kb3cgd2lkdGggdG8g
dGhlIHNjcmVlbiB3aWR0aC4KKyAgICAgICAgLy8gV2hlbiBjbGlwcGluZywgd2UgaGF2ZSB0byBz
ZXQgYW5kIG5vdGlmeSBsaXN0Qm94KCkgdGhlIGNoYW5nZS4KICAgICAgICAgRmxvYXRSZWN0IHdp
bmRvd1JlY3QgPSBjaHJvbWVDbGllbnQtPndpbmRvd1JlY3QoKTsKICAgICAgICAgaWYgKHdpbmRv
d1JlY3QueCgpID49IHNjcmVlbi54KCkgJiYgd2luZG93UmVjdC5tYXhYKCkgPD0gc2NyZWVuLm1h
eFgoKSkgewogICAgICAgICAgICAgaWYgKG1fbGlzdEJveC0+bV9wb3B1cENsaWVudC0+bWVudVN0
eWxlKCkudGV4dERpcmVjdGlvbigpID09IFJUTCAmJiB3aWRnZXRSZWN0LngoKSA8IHNjcmVlbi54
KCkpIHsKICAgICAgICAgICAgICAgICB3aWRnZXRSZWN0LnNldFdpZHRoKHdpZGdldFJlY3QubWF4
WCgpIC0gc2NyZWVuLngoKSk7CiAgICAgICAgICAgICAgICAgd2lkZ2V0UmVjdC5zZXRYKHNjcmVl
bi54KCkpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aWRnZXRSZWN0Lm1heFgoKSA+IHNjcmVl
bi5tYXhYKCkpCisgICAgICAgICAgICAgICAgbGlzdEJveCgpLT5zZXRNYXhXaWR0aEFuZExheW91
dChtYXgod2lkZ2V0UmVjdC53aWR0aCgpIC0ga0JvcmRlclNpemUgKiAyLCAwKSk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKHdpZGdldFJlY3QubWF4WCgpID4gc2NyZWVuLm1heFgoKSkgewogICAg
ICAgICAgICAgICAgIHdpZGdldFJlY3Quc2V0V2lkdGgoc2NyZWVuLm1heFgoKSAtIHdpZGdldFJl
Y3QueCgpKTsKKyAgICAgICAgICAgICAgICBsaXN0Qm94KCktPnNldE1heFdpZHRoQW5kTGF5b3V0
KG1heCh3aWRnZXRSZWN0LndpZHRoKCkgLSBrQm9yZGVyU2l6ZSAqIDIsIDApKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8vIENhbGN1bGF0ZSBZIGF4aXMgc2l6ZS4KQEAg
LTEyODMsNiArMTI5MywxMiBAQCB2b2lkIFBvcHVwTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQo
KQogICAgIGxheW91dCgpOwogfQogCit2b2lkIFBvcHVwTGlzdEJveDo6c2V0TWF4V2lkdGhBbmRM
YXlvdXQoaW50IG1heFdpZHRoKQoreworICAgIG1fbWF4V2luZG93V2lkdGggPSBtYXhXaWR0aDsK
KyAgICBsYXlvdXQoKTsKK30KKwogdm9pZCBQb3B1cExpc3RCb3g6OmxheW91dCgpCiB7CiAgICAg
Ym9vbCBpc1JpZ2h0QWxpZ25lZCA9IG1fcG9wdXBDbGllbnQtPm1lbnVTdHlsZSgpLnRleHREaXJl
Y3Rpb24oKSA9PSBSVEw7CkBAIC0xMzYyLDcgKzEzNzgsMTQgQEAgdm9pZCBQb3B1cExpc3RCb3g6
OmxheW91dCgpCiAgICAgICAgIGNvbnRlbnRXaWR0aCA9IG1fYmFzZVdpZHRoIC0gc2Nyb2xsYmFy
V2lkdGg7CiAgICAgfSBlbHNlIHsKICAgICAgICAgd2luZG93V2lkdGggPSBiYXNlV2lkdGggKyBz
Y3JvbGxiYXJXaWR0aCArIHBhZGRpbmdXaWR0aDsKLSAgICAgICAgY29udGVudFdpZHRoID0gYmFz
ZVdpZHRoICsgcGFkZGluZ1dpZHRoOworICAgICAgICAvLyB3aW5kb3dXaWR0aCBleGNlZWRzIG1f
bWF4V2luZG93V2lkdGgsIHNvIHdlIGhhdmUgdG8gY2xpcC4KKyAgICAgICAgaWYgKHdpbmRvd1dp
ZHRoID4gbV9tYXhXaW5kb3dXaWR0aCkgeworICAgICAgICAgICAgaW50IGRpZmYgPSB3aW5kb3dX
aWR0aCAtIG1fbWF4V2luZG93V2lkdGg7CisgICAgICAgICAgICB3aW5kb3dXaWR0aCAtPSBkaWZm
OworICAgICAgICAgICAgYmFzZVdpZHRoIC09IGRpZmY7CisgICAgICAgICAgICBtX2Jhc2VXaWR0
aCA9IGJhc2VXaWR0aDsKKyAgICAgICAgfQorICAgICAgICBjb250ZW50V2lkdGggPSB3aW5kb3dX
aWR0aCAtIHNjcm9sbGJhcldpZHRoOwogCiAgICAgICAgIGlmICh3aW5kb3dXaWR0aCA8IG1fYmFz
ZVdpZHRoKSB7CiAgICAgICAgICAgICB3aW5kb3dXaWR0aCA9IG1fYmFzZVdpZHRoOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94354</attachid>
            <date>2011-05-22 12:50:47 -0700</date>
            <delta_ts>2011-05-23 22:01:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61252-20110522125046.patch</filename>
            <type>text/plain</type>
            <size>6785</size>
            <attacher name="Naoki Takano">honten</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjBlYzQxNjBmNzQ0OTlh
ZmRiOWQ2ODNlODM3ZTk3NTJkMDZhMDc3Li5kZTkzZjgzNTI0OGIzODA2NGJlMGY5YzhhMTZhNGQx
MjU0ZDFiYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDUtMjIgIE5hb2tp
IFRha2FubyAgPHRha2Fuby5uYW9raUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXUFkZCBjbGlwcGluZyBmb3IgbGlz
dEJveCBpbiBwb3B1cCB3aW5kb3cgdG8gZml4IHdyb25nIGxvY2F0aW9uIGRpc3BsYXkgd2hlbiB0
aGUgYXV0b2ZpbGwgaXRlbSBpcyByZWFsbHkgbG9uZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjUyCisgICAgICAgIGh0dHA6Ly9jb2RlLmdvb2ds
ZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTgzNTM5CisKKyAgICAgICAgTWFudWFs
IHRlc3Q6IG1hbnVhbC10ZXN0cy9hdXRvZmlsbC1wb3B1cC1sb2NhdGlvbi5odG1sLgorCisgICAg
ICAgICogbWFudWFsLXRlc3RzL2F1dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWw6IFdpdGggbG9u
ZyBvbmcgdGV4dCwgdGVzdCB0aGUgc2hvd24gbG9jYXRpb24gaXMgY29ycmVjdC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cExpc3RCb3g6OnNldEJhc2VXaWR0aCk6IENsaXAgd2lkdGggd2l0aCBtX21heFdp
bmRvd1dpZHRoLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpQb3B1cExpc3RCb3gp
OiBBZGQgbV9tYXhXaW5kb3dXaWR0aCBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwQ29udGFpbmVyOjpsYXlvdXRBbmRDYWxjdWxhdGVXaWRnZXRSZWN0KTogQ2FsbCBzZXRN
YXhXaWR0aEFuZExheW91dCgpIHdoZW4gdGhlIHdpZHRoIGlzIGNsaXBwZWQgd2l0aCBzY3JlZW4g
c2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6c2V0TWF4V2lkdGhBbmRMYXlv
dXQpOiBTZXQgbV9tYXhXaW5kb3dXaWR0aCBhbmQgY2FsbCBsYXlvdXQoKS4KKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTGlzdEJveDo6bGF5b3V0KTogQ29tcGFyZSByZW5ld2VkIHdpbmRvd1dpZHRo
IGFuZCBtX21heFdpbmRvd1dpZHRoLCBhbmQgY2xpcCB0aGUgaXQuCisKIDIwMTEtMDUtMjAgIE1p
Y2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3Rz
L2F1dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVz
dHMvYXV0b2ZpbGwtcG9wdXAtbG9jYXRpb24uaHRtbAppbmRleCA1ZTI4YTE1ZWEzYzUyN2UyYWM2
NzAwYWZjMjdjZWRhY2Q4YjFiM2UxLi42OTk3Mzg3YzFjYjRlZWQwYzZhMjVjYmI1MmVjMTgwMTJl
NTA5MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2ZpbGwt
cG9wdXAtbG9jYXRpb24uaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0
b2ZpbGwtcG9wdXAtbG9jYXRpb24uaHRtbApAQCAtMTYsNSArMTYsMTYgQEAKICAgICA8L29sPgog
ICAgIDxicj4KICAgICA8Zm9ybT48aW5wdXQgbmFtZT1xIGF1dG9mb2N1cz48L2Zvcm0+CisKKyAg
ICA8b2w+CisgICAgICA8bGk+IEVudGVyICdUaGlzIGlzIHJlYWxseSBsb25nIGxvbmcgbG9uZyBs
b25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9u
ZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcg
bG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxv
bmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25n
IGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBs
b25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9u
ZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcg
bG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxv
bmcgbG9uZyB0ZXh0LicgaW4gdGhlIGZvbGxvd2luZyB0ZXh0IGlucHV0IGFyZWEuPC9saT4KKyAg
ICAgIDxsaT4gUHJlc3MgJ1QnIGFuZCBtYWtlIHN1cmUgdGhlIGlucHV0IHRleHQgaXMgc2hvd24g
aW4gYXV0b2ZpbGwgcG9wdXAgd2luZG93IGFuZCBpdCBleGNlZWRzIHRoZSB3aWR0aCBvZiBzY3Jl
ZW4uIElmIHlvdXIgZGlzcGxheSByZXNvbHV0aW9uIGlzIHZlcnkgaGlnaCwgYW5kIHRoZSB3aGls
ZSB0ZXh0IGZpdHMgaW4gdGhlIHdpbmRvdywgcGxlYXNlIGZpbGwgbW9yZSBjaGFyYWN0ZXJzIGFu
ZCB0cnkgYWdhaW4gdGlsbCB0aGUgdGV4dCBleGNlZWRzIHRoZSB3aWR0aC4KKyAgICAgIDxsaT4g
RW50ZXIgJ1RoaXMgaXMgc2hvcnQgdGV4dC4nIGluIHRoZSBmb2xsb3dpbmcgdGV4dCBpbnB1dCBh
cmVhLjwvbGk+CisgICAgICA8bGk+IFByZXNzICd0JyBhbmQgbWFrZSBzdXJlIHRoZSBpbnB1dCB0
ZXh0IHdoaWNoIHlvdSB0eXBlZCBpbiBpcyBkaXNwbGF5ZWQgaW4gYXV0b2ZpbGwgcG9wdXAgd2lu
ZG93LjwvbGk+CisgICAgICA8bGk+IFByZXNzICdoJyBhbmQgbWFrZSBzdXJlIHRoZSBwb3B1cCB3
aW5kb3cgbG9jYXRpb24gaXMgY29ycmVjdC48L2xpPgorICAgICAgPGxpPiBQcmVzcyBhcnJvdyBr
ZXkgZG93biBhbmQgbWFrZSBzdXJlIHRoZSBwb3B1cCB3aW5kb3cgdGV4dCBpcyBub3QgYnJva2Vu
LjwvbGk+CisgICAgPC9vbD4KKyAgICA8YnI+CisgICAgPGZvcm0+PGlucHV0IG5hbWU9cCBhdXRv
Zm9jdXM+PC9mb3JtPgogICA8L2JvZHk+CiA8L2h0bWw+IApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCmluZGV4IDk2NWNj
ZDU4YjFkNTY1ZmRlY2I5MWY3YjI0OWVlZTA3NWU0NDY2NzguLjZmNzJjNWZlOGZlMDAxMTg4NGU1
NDlkNzViMTNkZmVkY2RkYmZiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBw
dWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0Lgog
ICAgIGludCBudW1JdGVtcygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4obV9pdGVt
cy5zaXplKCkpOyB9CiAKLSAgICB2b2lkIHNldEJhc2VXaWR0aChpbnQgd2lkdGgpIHsgbV9iYXNl
V2lkdGggPSB3aWR0aDsgfQorICAgIHZvaWQgc2V0QmFzZVdpZHRoKGludCB3aWR0aCkgeyBtX2Jh
c2VXaWR0aCA9IG1pbihtX21heFdpbmRvd1dpZHRoLCB3aWR0aCk7IH0KIAogICAgIC8vIENvbXB1
dGVzIHRoZSBzaXplIG9mIHdpZGdldCBhbmQgY2hpbGRyZW4uCiAgICAgdm9pZCBsYXlvdXQoKTsK
QEAgLTE0Niw2ICsxNDYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1heEhlaWdodChpbnQg
bWF4SGVpZ2h0KSB7IG1fbWF4SGVpZ2h0ID0gbWF4SGVpZ2h0OyB9CiAKKyAgICB2b2lkIHNldE1h
eFdpZHRoQW5kTGF5b3V0KGludCk7CisKICAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1f
cG9wdXBDbGllbnQgPSAwOyB9CiAKICAgICBjb25zdCBWZWN0b3I8UG9wdXBJdGVtKj4mIGl0ZW1z
KCkgY29uc3QgeyByZXR1cm4gbV9pdGVtczsgfQpAQCAtMTY1LDYgKzE2Nyw3IEBAIHByaXZhdGU6
CiAgICAgICAgICwgbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgICAgICwgbV9yZXBlYXRpbmdD
aGFyKDApCiAgICAgICAgICwgbV9sYXN0Q2hhclRpbWUoMCkKKyAgICAgICAgLCBtX21heFdpbmRv
d1dpZHRoKElOVF9NQVgpCiAgICAgewogICAgICAgICBzZXRTY3JvbGxiYXJNb2RlcyhTY3JvbGxi
YXJBbHdheXNPZmYsIFNjcm9sbGJhckFsd2F5c09mZik7CiAgICAgfQpAQCAtMjcxLDYgKzI3NCw5
IEBAIHByaXZhdGU6CiAKICAgICAvLyBUaGUgbGFzdCB0aW1lIHRoZSB1c2VyIGhpdCBhIGtleS4g
IFVzZWQgZm9yIHR5cGVBaGVhZEZpbmQuCiAgICAgVGltZVN0YW1wIG1fbGFzdENoYXJUaW1lOwor
CisgICAgLy8gSWYgd2lkdGggZXhlZWRzIHNjcmVlbiB3aWR0aCwgd2UgaGF2ZSB0byBjbGlwIGl0
LgorICAgIGludCBtX21heFdpbmRvd1dpZHRoOwogfTsKIAogc3RhdGljIFBsYXRmb3JtTW91c2VF
dmVudCBjb25zdHJ1Y3RSZWxhdGl2ZU1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
JiBlLApAQCAtMzU1LDEzICszNjEsMTcgQEAgSW50UmVjdCBQb3B1cENvbnRhaW5lcjo6bGF5b3V0
QW5kQ2FsY3VsYXRlV2lkZ2V0UmVjdChpbnQgdGFyZ2V0Q29udHJvbEhlaWdodCwgY28KIAogICAg
ICAgICAvLyBJZiB3ZSBoYXZlIG11bHRpcGxlIHNjcmVlbnMgYW5kIHRoZSBicm93c2VyIHJlY3Qg
aXMgaW4gb25lIHNjcmVlbiwgd2UgaGF2ZQogICAgICAgICAvLyB0byBjbGlwIHRoZSB3aW5kb3cg
d2lkdGggdG8gdGhlIHNjcmVlbiB3aWR0aC4KKyAgICAgICAgLy8gV2hlbiBjbGlwcGluZywgd2Ug
aGF2ZSB0byBzZXQgYW5kIG5vdGlmeSBsaXN0Qm94KCkgdGhlIGNoYW5nZS4KICAgICAgICAgRmxv
YXRSZWN0IHdpbmRvd1JlY3QgPSBjaHJvbWVDbGllbnQtPndpbmRvd1JlY3QoKTsKICAgICAgICAg
aWYgKHdpbmRvd1JlY3QueCgpID49IHNjcmVlbi54KCkgJiYgd2luZG93UmVjdC5tYXhYKCkgPD0g
c2NyZWVuLm1heFgoKSkgewogICAgICAgICAgICAgaWYgKG1fbGlzdEJveC0+bV9wb3B1cENsaWVu
dC0+bWVudVN0eWxlKCkudGV4dERpcmVjdGlvbigpID09IFJUTCAmJiB3aWRnZXRSZWN0LngoKSA8
IHNjcmVlbi54KCkpIHsKICAgICAgICAgICAgICAgICB3aWRnZXRSZWN0LnNldFdpZHRoKHdpZGdl
dFJlY3QubWF4WCgpIC0gc2NyZWVuLngoKSk7CiAgICAgICAgICAgICAgICAgd2lkZ2V0UmVjdC5z
ZXRYKHNjcmVlbi54KCkpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aWRnZXRSZWN0Lm1heFgo
KSA+IHNjcmVlbi5tYXhYKCkpCisgICAgICAgICAgICAgICAgbGlzdEJveCgpLT5zZXRNYXhXaWR0
aEFuZExheW91dChtYXgod2lkZ2V0UmVjdC53aWR0aCgpIC0ga0JvcmRlclNpemUgKiAyLCAwKSk7
CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpZGdldFJlY3QubWF4WCgpID4gc2NyZWVuLm1heFgo
KSkgewogICAgICAgICAgICAgICAgIHdpZGdldFJlY3Quc2V0V2lkdGgoc2NyZWVuLm1heFgoKSAt
IHdpZGdldFJlY3QueCgpKTsKKyAgICAgICAgICAgICAgICBsaXN0Qm94KCktPnNldE1heFdpZHRo
QW5kTGF5b3V0KG1heCh3aWRnZXRSZWN0LndpZHRoKCkgLSBrQm9yZGVyU2l6ZSAqIDIsIDApKTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8vIENhbGN1bGF0ZSBZIGF4aXMg
c2l6ZS4KQEAgLTEyODMsNiArMTI5MywxMiBAQCB2b2lkIFBvcHVwTGlzdEJveDo6dXBkYXRlRnJv
bUVsZW1lbnQoKQogICAgIGxheW91dCgpOwogfQogCit2b2lkIFBvcHVwTGlzdEJveDo6c2V0TWF4
V2lkdGhBbmRMYXlvdXQoaW50IG1heFdpZHRoKQoreworICAgIG1fbWF4V2luZG93V2lkdGggPSBt
YXhXaWR0aDsKKyAgICBsYXlvdXQoKTsKK30KKwogdm9pZCBQb3B1cExpc3RCb3g6OmxheW91dCgp
CiB7CiAgICAgYm9vbCBpc1JpZ2h0QWxpZ25lZCA9IG1fcG9wdXBDbGllbnQtPm1lbnVTdHlsZSgp
LnRleHREaXJlY3Rpb24oKSA9PSBSVEw7CkBAIC0xMzYyLDcgKzEzNzgsMTQgQEAgdm9pZCBQb3B1
cExpc3RCb3g6OmxheW91dCgpCiAgICAgICAgIGNvbnRlbnRXaWR0aCA9IG1fYmFzZVdpZHRoIC0g
c2Nyb2xsYmFyV2lkdGg7CiAgICAgfSBlbHNlIHsKICAgICAgICAgd2luZG93V2lkdGggPSBiYXNl
V2lkdGggKyBzY3JvbGxiYXJXaWR0aCArIHBhZGRpbmdXaWR0aDsKLSAgICAgICAgY29udGVudFdp
ZHRoID0gYmFzZVdpZHRoICsgcGFkZGluZ1dpZHRoOworICAgICAgICAvLyB3aW5kb3dXaWR0aCBl
eGNlZWRzIG1fbWF4V2luZG93V2lkdGgsIHNvIHdlIGhhdmUgdG8gY2xpcC4KKyAgICAgICAgaWYg
KHdpbmRvd1dpZHRoID4gbV9tYXhXaW5kb3dXaWR0aCkgeworICAgICAgICAgICAgaW50IGRpZmYg
PSB3aW5kb3dXaWR0aCAtIG1fbWF4V2luZG93V2lkdGg7CisgICAgICAgICAgICB3aW5kb3dXaWR0
aCAtPSBkaWZmOworICAgICAgICAgICAgYmFzZVdpZHRoIC09IGRpZmY7CisgICAgICAgICAgICBt
X2Jhc2VXaWR0aCA9IGJhc2VXaWR0aDsKKyAgICAgICAgfQorICAgICAgICBjb250ZW50V2lkdGgg
PSB3aW5kb3dXaWR0aCAtIHNjcm9sbGJhcldpZHRoOwogCiAgICAgICAgIGlmICh3aW5kb3dXaWR0
aCA8IG1fYmFzZVdpZHRoKSB7CiAgICAgICAgICAgICB3aW5kb3dXaWR0aCA9IG1fYmFzZVdpZHRo
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94561</attachid>
            <date>2011-05-23 22:01:47 -0700</date>
            <delta_ts>2011-05-23 22:14:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61252-20110523220146.patch</filename>
            <type>text/plain</type>
            <size>6782</size>
            <attacher name="Naoki Takano">honten</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjBlYzQxNjBmNzQ0OTlh
ZmRiOWQ2ODNlODM3ZTk3NTJkMDZhMDc3Li5kZTkzZjgzNTI0OGIzODA2NGJlMGY5YzhhMTZhNGQx
MjU0ZDFiYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDUtMjIgIE5hb2tp
IFRha2FubyAgPHRha2Fuby5uYW9raUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXUFkZCBjbGlwcGluZyBmb3IgbGlz
dEJveCBpbiBwb3B1cCB3aW5kb3cgdG8gZml4IHdyb25nIGxvY2F0aW9uIGRpc3BsYXkgd2hlbiB0
aGUgYXV0b2ZpbGwgaXRlbSBpcyByZWFsbHkgbG9uZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjUyCisgICAgICAgIGh0dHA6Ly9jb2RlLmdvb2ds
ZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTgzNTM5CisKKyAgICAgICAgTWFudWFs
IHRlc3Q6IG1hbnVhbC10ZXN0cy9hdXRvZmlsbC1wb3B1cC1sb2NhdGlvbi5odG1sLgorCisgICAg
ICAgICogbWFudWFsLXRlc3RzL2F1dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWw6IFdpdGggbG9u
ZyBvbmcgdGV4dCwgdGVzdCB0aGUgc2hvd24gbG9jYXRpb24gaXMgY29ycmVjdC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cExpc3RCb3g6OnNldEJhc2VXaWR0aCk6IENsaXAgd2lkdGggd2l0aCBtX21heFdp
bmRvd1dpZHRoLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpQb3B1cExpc3RCb3gp
OiBBZGQgbV9tYXhXaW5kb3dXaWR0aCBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwQ29udGFpbmVyOjpsYXlvdXRBbmRDYWxjdWxhdGVXaWRnZXRSZWN0KTogQ2FsbCBzZXRN
YXhXaWR0aEFuZExheW91dCgpIHdoZW4gdGhlIHdpZHRoIGlzIGNsaXBwZWQgd2l0aCBzY3JlZW4g
c2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6c2V0TWF4V2lkdGhBbmRMYXlv
dXQpOiBTZXQgbV9tYXhXaW5kb3dXaWR0aCBhbmQgY2FsbCBsYXlvdXQoKS4KKyAgICAgICAgKFdl
YkNvcmU6OlBvcHVwTGlzdEJveDo6bGF5b3V0KTogQ29tcGFyZSByZW5ld2VkIHdpbmRvd1dpZHRo
IGFuZCBtX21heFdpbmRvd1dpZHRoLCBhbmQgY2xpcCB0aGUgaXQuCisKIDIwMTEtMDUtMjAgIE1p
Y2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3Rz
L2F1dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVz
dHMvYXV0b2ZpbGwtcG9wdXAtbG9jYXRpb24uaHRtbAppbmRleCA1ZTI4YTE1ZWEzYzUyN2UyYWM2
NzAwYWZjMjdjZWRhY2Q4YjFiM2UxLi42OTk3Mzg3YzFjYjRlZWQwYzZhMjVjYmI1MmVjMTgwMTJl
NTA5MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2ZpbGwt
cG9wdXAtbG9jYXRpb24uaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0
b2ZpbGwtcG9wdXAtbG9jYXRpb24uaHRtbApAQCAtMTYsNSArMTYsMTYgQEAKICAgICA8L29sPgog
ICAgIDxicj4KICAgICA8Zm9ybT48aW5wdXQgbmFtZT1xIGF1dG9mb2N1cz48L2Zvcm0+CisKKyAg
ICA8b2w+CisgICAgICA8bGk+IEVudGVyICdUaGlzIGlzIHJlYWxseSBsb25nIGxvbmcgbG9uZyBs
b25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9u
ZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcg
bG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxv
bmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25n
IGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBs
b25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9u
ZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcg
bG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxv
bmcgbG9uZyB0ZXh0LicgaW4gdGhlIGZvbGxvd2luZyB0ZXh0IGlucHV0IGFyZWEuPC9saT4KKyAg
ICAgIDxsaT4gUHJlc3MgJ1QnIGFuZCBtYWtlIHN1cmUgdGhlIGlucHV0IHRleHQgaXMgc2hvd24g
aW4gYXV0b2ZpbGwgcG9wdXAgd2luZG93IGFuZCBpdCBleGNlZWRzIHRoZSB3aWR0aCBvZiBzY3Jl
ZW4uIElmIHlvdXIgZGlzcGxheSByZXNvbHV0aW9uIGlzIHZlcnkgaGlnaCwgYW5kIHRoZSB3aGls
ZSB0ZXh0IGZpdHMgaW4gdGhlIHdpbmRvdywgcGxlYXNlIGZpbGwgbW9yZSBjaGFyYWN0ZXJzIGFu
ZCB0cnkgYWdhaW4gdGlsbCB0aGUgdGV4dCBleGNlZWRzIHRoZSB3aWR0aC4KKyAgICAgIDxsaT4g
RW50ZXIgJ1RoaXMgaXMgc2hvcnQgdGV4dC4nIGluIHRoZSBmb2xsb3dpbmcgdGV4dCBpbnB1dCBh
cmVhLjwvbGk+CisgICAgICA8bGk+IFByZXNzICd0JyBhbmQgbWFrZSBzdXJlIHRoZSBpbnB1dCB0
ZXh0IHdoaWNoIHlvdSB0eXBlZCBpbiBpcyBkaXNwbGF5ZWQgaW4gYXV0b2ZpbGwgcG9wdXAgd2lu
ZG93LjwvbGk+CisgICAgICA8bGk+IFByZXNzICdoJyBhbmQgbWFrZSBzdXJlIHRoZSBwb3B1cCB3
aW5kb3cgbG9jYXRpb24gaXMgY29ycmVjdC48L2xpPgorICAgICAgPGxpPiBQcmVzcyBhcnJvdyBr
ZXkgZG93biBhbmQgbWFrZSBzdXJlIHRoZSBwb3B1cCB3aW5kb3cgdGV4dCBpcyBub3QgYnJva2Vu
LjwvbGk+CisgICAgPC9vbD4KKyAgICA8YnI+CisgICAgPGZvcm0+PGlucHV0IG5hbWU9cCBhdXRv
Zm9jdXM+PC9mb3JtPgogICA8L2JvZHk+CiA8L2h0bWw+IApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCmluZGV4IDk2NWNj
ZDU4YjFkNTY1ZmRlY2I5MWY3YjI0OWVlZTA3NWU0NDY2NzguLjdlNGJiYTM0YzZlMzQ3ODZkNDY2
MjQyZDYzZjI3OTRiNjIwYTM1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBw
dWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0Lgog
ICAgIGludCBudW1JdGVtcygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4obV9pdGVt
cy5zaXplKCkpOyB9CiAKLSAgICB2b2lkIHNldEJhc2VXaWR0aChpbnQgd2lkdGgpIHsgbV9iYXNl
V2lkdGggPSB3aWR0aDsgfQorICAgIHZvaWQgc2V0QmFzZVdpZHRoKGludCB3aWR0aCkgeyBtX2Jh
c2VXaWR0aCA9IG1pbihtX21heFdpbmRvd1dpZHRoLCB3aWR0aCk7IH0KIAogICAgIC8vIENvbXB1
dGVzIHRoZSBzaXplIG9mIHdpZGdldCBhbmQgY2hpbGRyZW4uCiAgICAgdm9pZCBsYXlvdXQoKTsK
QEAgLTE0Niw2ICsxNDYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1heEhlaWdodChpbnQg
bWF4SGVpZ2h0KSB7IG1fbWF4SGVpZ2h0ID0gbWF4SGVpZ2h0OyB9CiAKKyAgICB2b2lkIHNldE1h
eFdpZHRoQW5kTGF5b3V0KGludCk7CisKICAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1f
cG9wdXBDbGllbnQgPSAwOyB9CiAKICAgICBjb25zdCBWZWN0b3I8UG9wdXBJdGVtKj4mIGl0ZW1z
KCkgY29uc3QgeyByZXR1cm4gbV9pdGVtczsgfQpAQCAtMTY1LDYgKzE2Nyw3IEBAIHByaXZhdGU6
CiAgICAgICAgICwgbV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgICAgICwgbV9yZXBlYXRpbmdD
aGFyKDApCiAgICAgICAgICwgbV9sYXN0Q2hhclRpbWUoMCkKKyAgICAgICAgLCBtX21heFdpbmRv
d1dpZHRoKElOVF9NQVgpCiAgICAgewogICAgICAgICBzZXRTY3JvbGxiYXJNb2RlcyhTY3JvbGxi
YXJBbHdheXNPZmYsIFNjcm9sbGJhckFsd2F5c09mZik7CiAgICAgfQpAQCAtMjcxLDYgKzI3NCw5
IEBAIHByaXZhdGU6CiAKICAgICAvLyBUaGUgbGFzdCB0aW1lIHRoZSB1c2VyIGhpdCBhIGtleS4g
IFVzZWQgZm9yIHR5cGVBaGVhZEZpbmQuCiAgICAgVGltZVN0YW1wIG1fbGFzdENoYXJUaW1lOwor
CisgICAgLy8gSWYgd2lkdGggZXhlZWRzIHNjcmVlbiB3aWR0aCwgd2UgaGF2ZSB0byBjbGlwIGl0
LgorICAgIGludCBtX21heFdpbmRvd1dpZHRoOwogfTsKIAogc3RhdGljIFBsYXRmb3JtTW91c2VF
dmVudCBjb25zdHJ1Y3RSZWxhdGl2ZU1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
JiBlLApAQCAtMzU1LDEzICszNjEsMTcgQEAgSW50UmVjdCBQb3B1cENvbnRhaW5lcjo6bGF5b3V0
QW5kQ2FsY3VsYXRlV2lkZ2V0UmVjdChpbnQgdGFyZ2V0Q29udHJvbEhlaWdodCwgY28KIAogICAg
ICAgICAvLyBJZiB3ZSBoYXZlIG11bHRpcGxlIHNjcmVlbnMgYW5kIHRoZSBicm93c2VyIHJlY3Qg
aXMgaW4gb25lIHNjcmVlbiwgd2UgaGF2ZQogICAgICAgICAvLyB0byBjbGlwIHRoZSB3aW5kb3cg
d2lkdGggdG8gdGhlIHNjcmVlbiB3aWR0aC4KKyAgICAgICAgLy8gV2hlbiBjbGlwcGluZywgd2Ug
aGF2ZSB0byBzZXQgYW5kIG5vdGlmeSBsaXN0Qm94KCkgdGhlIGNoYW5nZS4KICAgICAgICAgRmxv
YXRSZWN0IHdpbmRvd1JlY3QgPSBjaHJvbWVDbGllbnQtPndpbmRvd1JlY3QoKTsKICAgICAgICAg
aWYgKHdpbmRvd1JlY3QueCgpID49IHNjcmVlbi54KCkgJiYgd2luZG93UmVjdC5tYXhYKCkgPD0g
c2NyZWVuLm1heFgoKSkgewogICAgICAgICAgICAgaWYgKG1fbGlzdEJveC0+bV9wb3B1cENsaWVu
dC0+bWVudVN0eWxlKCkudGV4dERpcmVjdGlvbigpID09IFJUTCAmJiB3aWRnZXRSZWN0LngoKSA8
IHNjcmVlbi54KCkpIHsKICAgICAgICAgICAgICAgICB3aWRnZXRSZWN0LnNldFdpZHRoKHdpZGdl
dFJlY3QubWF4WCgpIC0gc2NyZWVuLngoKSk7CiAgICAgICAgICAgICAgICAgd2lkZ2V0UmVjdC5z
ZXRYKHNjcmVlbi54KCkpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aWRnZXRSZWN0Lm1heFgo
KSA+IHNjcmVlbi5tYXhYKCkpCisgICAgICAgICAgICAgICAgbGlzdEJveCgpLT5zZXRNYXhXaWR0
aEFuZExheW91dChtYXgod2lkZ2V0UmVjdC53aWR0aCgpIC0ga0JvcmRlclNpemUgKiAyLCAwKSk7
CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpZGdldFJlY3QubWF4WCgpID4gc2NyZWVuLm1heFgo
KSkgewogICAgICAgICAgICAgICAgIHdpZGdldFJlY3Quc2V0V2lkdGgoc2NyZWVuLm1heFgoKSAt
IHdpZGdldFJlY3QueCgpKTsKKyAgICAgICAgICAgICAgICBsaXN0Qm94KCktPnNldE1heFdpZHRo
QW5kTGF5b3V0KG1heCh3aWRnZXRSZWN0LndpZHRoKCkgLSBrQm9yZGVyU2l6ZSAqIDIsIDApKTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8vIENhbGN1bGF0ZSBZIGF4aXMg
c2l6ZS4KQEAgLTEyODMsNiArMTI5MywxMiBAQCB2b2lkIFBvcHVwTGlzdEJveDo6dXBkYXRlRnJv
bUVsZW1lbnQoKQogICAgIGxheW91dCgpOwogfQogCit2b2lkIFBvcHVwTGlzdEJveDo6c2V0TWF4
V2lkdGhBbmRMYXlvdXQoaW50IG1heFdpZHRoKQoreworICAgIG1fbWF4V2luZG93V2lkdGggPSBt
YXhXaWR0aDsKKyAgICBsYXlvdXQoKTsKK30KKwogdm9pZCBQb3B1cExpc3RCb3g6OmxheW91dCgp
CiB7CiAgICAgYm9vbCBpc1JpZ2h0QWxpZ25lZCA9IG1fcG9wdXBDbGllbnQtPm1lbnVTdHlsZSgp
LnRleHREaXJlY3Rpb24oKSA9PSBSVEw7CkBAIC0xMzYyLDcgKzEzNzgsMTMgQEAgdm9pZCBQb3B1
cExpc3RCb3g6OmxheW91dCgpCiAgICAgICAgIGNvbnRlbnRXaWR0aCA9IG1fYmFzZVdpZHRoIC0g
c2Nyb2xsYmFyV2lkdGg7CiAgICAgfSBlbHNlIHsKICAgICAgICAgd2luZG93V2lkdGggPSBiYXNl
V2lkdGggKyBzY3JvbGxiYXJXaWR0aCArIHBhZGRpbmdXaWR0aDsKLSAgICAgICAgY29udGVudFdp
ZHRoID0gYmFzZVdpZHRoICsgcGFkZGluZ1dpZHRoOworICAgICAgICBpZiAod2luZG93V2lkdGgg
PiBtX21heFdpbmRvd1dpZHRoKSB7CisgICAgICAgICAgICAvLyB3aW5kb3dXaWR0aCBleGNlZWRz
IG1fbWF4V2luZG93V2lkdGgsIHNvIHdlIGhhdmUgdG8gY2xpcC4KKyAgICAgICAgICAgIHdpbmRv
d1dpZHRoID0gbV9tYXhXaW5kb3dXaWR0aDsKKyAgICAgICAgICAgIGJhc2VXaWR0aCA9IHdpbmRv
d1dpZHRoIC0gc2Nyb2xsYmFyV2lkdGggLSBwYWRkaW5nV2lkdGg7CisgICAgICAgICAgICBtX2Jh
c2VXaWR0aCA9IGJhc2VXaWR0aDsKKyAgICAgICAgfQorICAgICAgICBjb250ZW50V2lkdGggPSB3
aW5kb3dXaWR0aCAtIHNjcm9sbGJhcldpZHRoOwogCiAgICAgICAgIGlmICh3aW5kb3dXaWR0aCA8
IG1fYmFzZVdpZHRoKSB7CiAgICAgICAgICAgICB3aW5kb3dXaWR0aCA9IG1fYmFzZVdpZHRoOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94563</attachid>
            <date>2011-05-23 22:14:21 -0700</date>
            <delta_ts>2011-05-23 22:28:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61252-20110523221420.patch</filename>
            <type>text/plain</type>
            <size>6789</size>
            <attacher name="Naoki Takano">honten</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjBlYzQxNjBmNzQ0OTlh
ZmRiOWQ2ODNlODM3ZTk3NTJkMDZhMDc3Li44ZjBlY2ZjMzUxYTk5NDhlZDQ4MDJkYTMzNDY0MjQz
NzMwZTgzYmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDUtMjIgIE5hb2tp
IFRha2FubyAgPHRha2Fuby5uYW9raUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXUFkZCBjbGlwcGluZyBmb3IgbGlz
dEJveCBpbiBwb3B1cCB3aW5kb3cgdG8gZml4IHdyb25nIGxvY2F0aW9uIGRpc3BsYXkgd2hlbiB0
aGUgYXV0b2ZpbGwgaXRlbSBpcyByZWFsbHkgbG9uZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjUyCisgICAgICAgIGh0dHA6Ly9jb2RlLmdvb2ds
ZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTgzNTM5CisKKyAgICAgICAgTWFudWFs
IHRlc3Q6IG1hbnVhbC10ZXN0cy9hdXRvZmlsbC1wb3B1cC1sb2NhdGlvbi5odG1sLgorCisgICAg
ICAgICogbWFudWFsLXRlc3RzL2F1dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWw6IFdpdGggbG9u
ZyBsb25nIHRleHQsIHRlc3QgdGhlIHNob3duIGxvY2F0aW9uIGlzIGNvcnJlY3QuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBMaXN0Qm94OjpzZXRCYXNlV2lkdGgpOiBDbGlwIHdpZHRoIHdpdGggbV9tYXhX
aW5kb3dXaWR0aC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6UG9wdXBMaXN0Qm94
KTogQWRkIG1fbWF4V2luZG93V2lkdGggaW5pdGlhbGl6YXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cENvbnRhaW5lcjo6bGF5b3V0QW5kQ2FsY3VsYXRlV2lkZ2V0UmVjdCk6IENhbGwgc2V0
TWF4V2lkdGhBbmRMYXlvdXQoKSB3aGVuIHRoZSB3aWR0aCBpcyBjbGlwcGVkIHdpdGggc2NyZWVu
IHNpemUuCisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6OnNldE1heFdpZHRoQW5kTGF5
b3V0KTogU2V0IG1fbWF4V2luZG93V2lkdGggYW5kIGNhbGwgbGF5b3V0KCkuCisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cExpc3RCb3g6OmxheW91dCk6IENvbXBhcmUgcmVuZXdlZCB3aW5kb3dXaWR0
aCBhbmQgbV9tYXhXaW5kb3dXaWR0aCwgYW5kIGNsaXAgdGhlIGl0LgorCiAyMDExLTA1LTIwICBN
aWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0
cy9hdXRvZmlsbC1wb3B1cC1sb2NhdGlvbi5odG1sIGIvU291cmNlL1dlYkNvcmUvbWFudWFsLXRl
c3RzL2F1dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWwKaW5kZXggNWUyOGExNWVhM2M1MjdlMmFj
NjcwMGFmYzI3Y2VkYWNkOGIxYjNlMS4uNjk5NzM4N2MxY2I0ZWVkMGM2YTI1Y2JiNTJlYzE4MDEy
ZTUwOTFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9maWxs
LXBvcHVwLWxvY2F0aW9uLmh0bWwKKysrIGIvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1
dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWwKQEAgLTE2LDUgKzE2LDE2IEBACiAgICAgPC9vbD4K
ICAgICA8YnI+CiAgICAgPGZvcm0+PGlucHV0IG5hbWU9cSBhdXRvZm9jdXM+PC9mb3JtPgorCisg
ICAgPG9sPgorICAgICAgPGxpPiBFbnRlciAnVGhpcyBpcyByZWFsbHkgbG9uZyBsb25nIGxvbmcg
bG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxv
bmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25n
IGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBs
b25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9u
ZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcg
bG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxv
bmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25n
IGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBs
b25nIGxvbmcgdGV4dC4nIGluIHRoZSBmb2xsb3dpbmcgdGV4dCBpbnB1dCBhcmVhLjwvbGk+Cisg
ICAgICA8bGk+IFByZXNzICdUJyBhbmQgbWFrZSBzdXJlIHRoZSBpbnB1dCB0ZXh0IGlzIHNob3du
IGluIGF1dG9maWxsIHBvcHVwIHdpbmRvdyBhbmQgaXQgZXhjZWVkcyB0aGUgd2lkdGggb2Ygc2Ny
ZWVuLiBJZiB5b3VyIGRpc3BsYXkgcmVzb2x1dGlvbiBpcyB2ZXJ5IGhpZ2gsIGFuZCB0aGUgd2hp
bGUgdGV4dCBmaXRzIGluIHRoZSB3aW5kb3csIHBsZWFzZSBmaWxsIG1vcmUgY2hhcmFjdGVycyBh
bmQgdHJ5IGFnYWluIHRpbGwgdGhlIHRleHQgZXhjZWVkcyB0aGUgd2lkdGguCisgICAgICA8bGk+
IEVudGVyICdUaGlzIGlzIHNob3J0IHRleHQuJyBpbiB0aGUgZm9sbG93aW5nIHRleHQgaW5wdXQg
YXJlYS48L2xpPgorICAgICAgPGxpPiBQcmVzcyAndCcgYW5kIG1ha2Ugc3VyZSB0aGUgaW5wdXQg
dGV4dCB3aGljaCB5b3UgdHlwZWQgaW4gaXMgZGlzcGxheWVkIGluIGF1dG9maWxsIHBvcHVwIHdp
bmRvdy48L2xpPgorICAgICAgPGxpPiBQcmVzcyAnaCcgYW5kIG1ha2Ugc3VyZSB0aGUgcG9wdXAg
d2luZG93IGxvY2F0aW9uIGlzIGNvcnJlY3QuPC9saT4KKyAgICAgIDxsaT4gUHJlc3MgYXJyb3cg
a2V5IGRvd24gYW5kIG1ha2Ugc3VyZSB0aGUgcG9wdXAgd2luZG93IHRleHQgaXMgbm90IGJyb2tl
bi48L2xpPgorICAgIDwvb2w+CisgICAgPGJyPgorICAgIDxmb3JtPjxpbnB1dCBuYW1lPXAgYXV0
b2ZvY3VzPjwvZm9ybT4KICAgPC9ib2R5PgogPC9odG1sPiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCA5NjVj
Y2Q1OGIxZDU2NWZkZWNiOTFmN2IyNDllZWUwNzVlNDQ2Njc4Li40ZWNkNzQ2NDA5NzgwMjg5NDli
ZWZhMDJiMmJjYTExMGU0ZDlkYmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAg
cHVibGljOgogICAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgbGlzdC4K
ICAgICBpbnQgbnVtSXRlbXMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1faXRl
bXMuc2l6ZSgpKTsgfQogCi0gICAgdm9pZCBzZXRCYXNlV2lkdGgoaW50IHdpZHRoKSB7IG1fYmFz
ZVdpZHRoID0gd2lkdGg7IH0KKyAgICB2b2lkIHNldEJhc2VXaWR0aChpbnQgd2lkdGgpIHsgbV9i
YXNlV2lkdGggPSBtaW4obV9tYXhXaW5kb3dXaWR0aCwgd2lkdGgpOyB9CiAKICAgICAvLyBDb21w
dXRlcyB0aGUgc2l6ZSBvZiB3aWRnZXQgYW5kIGNoaWxkcmVuLgogICAgIHZvaWQgbGF5b3V0KCk7
CkBAIC0xNDYsNiArMTQ2LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNYXhIZWlnaHQoaW50
IG1heEhlaWdodCkgeyBtX21heEhlaWdodCA9IG1heEhlaWdodDsgfQogCisgICAgdm9pZCBzZXRN
YXhXaWR0aEFuZExheW91dChpbnQpOworCiAgICAgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgeyBt
X3BvcHVwQ2xpZW50ID0gMDsgfQogCiAgICAgY29uc3QgVmVjdG9yPFBvcHVwSXRlbSo+JiBpdGVt
cygpIGNvbnN0IHsgcmV0dXJuIG1faXRlbXM7IH0KQEAgLTE2NSw2ICsxNjcsNyBAQCBwcml2YXRl
OgogICAgICAgICAsIG1fcG9wdXBDbGllbnQoY2xpZW50KQogICAgICAgICAsIG1fcmVwZWF0aW5n
Q2hhcigwKQogICAgICAgICAsIG1fbGFzdENoYXJUaW1lKDApCisgICAgICAgICwgbV9tYXhXaW5k
b3dXaWR0aChJTlRfTUFYKQogICAgIHsKICAgICAgICAgc2V0U2Nyb2xsYmFyTW9kZXMoU2Nyb2xs
YmFyQWx3YXlzT2ZmLCBTY3JvbGxiYXJBbHdheXNPZmYpOwogICAgIH0KQEAgLTI3MSw2ICsyNzQs
OSBAQCBwcml2YXRlOgogCiAgICAgLy8gVGhlIGxhc3QgdGltZSB0aGUgdXNlciBoaXQgYSBrZXku
ICBVc2VkIGZvciB0eXBlQWhlYWRGaW5kLgogICAgIFRpbWVTdGFtcCBtX2xhc3RDaGFyVGltZTsK
KworICAgIC8vIElmIHdpZHRoIGV4ZWVkcyBzY3JlZW4gd2lkdGgsIHdlIGhhdmUgdG8gY2xpcCBp
dC4KKyAgICBpbnQgbV9tYXhXaW5kb3dXaWR0aDsKIH07CiAKIHN0YXRpYyBQbGF0Zm9ybU1vdXNl
RXZlbnQgY29uc3RydWN0UmVsYXRpdmVNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYgZSwKQEAgLTM1NSwxMyArMzYxLDE3IEBAIEludFJlY3QgUG9wdXBDb250YWluZXI6OmxheW91
dEFuZENhbGN1bGF0ZVdpZGdldFJlY3QoaW50IHRhcmdldENvbnRyb2xIZWlnaHQsIGNvCiAKICAg
ICAgICAgLy8gSWYgd2UgaGF2ZSBtdWx0aXBsZSBzY3JlZW5zIGFuZCB0aGUgYnJvd3NlciByZWN0
IGlzIGluIG9uZSBzY3JlZW4sIHdlIGhhdmUKICAgICAgICAgLy8gdG8gY2xpcCB0aGUgd2luZG93
IHdpZHRoIHRvIHRoZSBzY3JlZW4gd2lkdGguCisgICAgICAgIC8vIFdoZW4gY2xpcHBpbmcsIHdl
IGFsc28gbmVlZCB0byBzZXQgYSBtYXhpbXVtIHdpZHRoIGZvciB0aGUgbGlzdCBib3guCiAgICAg
ICAgIEZsb2F0UmVjdCB3aW5kb3dSZWN0ID0gY2hyb21lQ2xpZW50LT53aW5kb3dSZWN0KCk7CiAg
ICAgICAgIGlmICh3aW5kb3dSZWN0LngoKSA+PSBzY3JlZW4ueCgpICYmIHdpbmRvd1JlY3QubWF4
WCgpIDw9IHNjcmVlbi5tYXhYKCkpIHsKICAgICAgICAgICAgIGlmIChtX2xpc3RCb3gtPm1fcG9w
dXBDbGllbnQtPm1lbnVTdHlsZSgpLnRleHREaXJlY3Rpb24oKSA9PSBSVEwgJiYgd2lkZ2V0UmVj
dC54KCkgPCBzY3JlZW4ueCgpKSB7CiAgICAgICAgICAgICAgICAgd2lkZ2V0UmVjdC5zZXRXaWR0
aCh3aWRnZXRSZWN0Lm1heFgoKSAtIHNjcmVlbi54KCkpOwogICAgICAgICAgICAgICAgIHdpZGdl
dFJlY3Quc2V0WChzY3JlZW4ueCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2lkZ2V0UmVj
dC5tYXhYKCkgPiBzY3JlZW4ubWF4WCgpKQorICAgICAgICAgICAgICAgIGxpc3RCb3goKS0+c2V0
TWF4V2lkdGhBbmRMYXlvdXQobWF4KHdpZGdldFJlY3Qud2lkdGgoKSAtIGtCb3JkZXJTaXplICog
MiwgMCkpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aWRnZXRSZWN0Lm1heFgoKSA+IHNjcmVl
bi5tYXhYKCkpIHsKICAgICAgICAgICAgICAgICB3aWRnZXRSZWN0LnNldFdpZHRoKHNjcmVlbi5t
YXhYKCkgLSB3aWRnZXRSZWN0LngoKSk7CisgICAgICAgICAgICAgICAgbGlzdEJveCgpLT5zZXRN
YXhXaWR0aEFuZExheW91dChtYXgod2lkZ2V0UmVjdC53aWR0aCgpIC0ga0JvcmRlclNpemUgKiAy
LCAwKSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDYWxjdWxhdGUg
WSBheGlzIHNpemUuCkBAIC0xMjgzLDYgKzEyOTMsMTIgQEAgdm9pZCBQb3B1cExpc3RCb3g6OnVw
ZGF0ZUZyb21FbGVtZW50KCkKICAgICBsYXlvdXQoKTsKIH0KIAordm9pZCBQb3B1cExpc3RCb3g6
OnNldE1heFdpZHRoQW5kTGF5b3V0KGludCBtYXhXaWR0aCkKK3sKKyAgICBtX21heFdpbmRvd1dp
ZHRoID0gbWF4V2lkdGg7CisgICAgbGF5b3V0KCk7Cit9CisKIHZvaWQgUG9wdXBMaXN0Qm94Ojps
YXlvdXQoKQogewogICAgIGJvb2wgaXNSaWdodEFsaWduZWQgPSBtX3BvcHVwQ2xpZW50LT5tZW51
U3R5bGUoKS50ZXh0RGlyZWN0aW9uKCkgPT0gUlRMOwpAQCAtMTM2Miw3ICsxMzc4LDEzIEBAIHZv
aWQgUG9wdXBMaXN0Qm94OjpsYXlvdXQoKQogICAgICAgICBjb250ZW50V2lkdGggPSBtX2Jhc2VX
aWR0aCAtIHNjcm9sbGJhcldpZHRoOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHdpbmRvd1dpZHRo
ID0gYmFzZVdpZHRoICsgc2Nyb2xsYmFyV2lkdGggKyBwYWRkaW5nV2lkdGg7Ci0gICAgICAgIGNv
bnRlbnRXaWR0aCA9IGJhc2VXaWR0aCArIHBhZGRpbmdXaWR0aDsKKyAgICAgICAgaWYgKHdpbmRv
d1dpZHRoID4gbV9tYXhXaW5kb3dXaWR0aCkgeworICAgICAgICAgICAgLy8gd2luZG93V2lkdGgg
ZXhjZWVkcyBtX21heFdpbmRvd1dpZHRoLCBzbyB3ZSBoYXZlIHRvIGNsaXAuCisgICAgICAgICAg
ICB3aW5kb3dXaWR0aCA9IG1fbWF4V2luZG93V2lkdGg7CisgICAgICAgICAgICBiYXNlV2lkdGgg
PSB3aW5kb3dXaWR0aCAtIHNjcm9sbGJhcldpZHRoIC0gcGFkZGluZ1dpZHRoOworICAgICAgICAg
ICAgbV9iYXNlV2lkdGggPSBiYXNlV2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgY29udGVudFdp
ZHRoID0gd2luZG93V2lkdGggLSBzY3JvbGxiYXJXaWR0aDsKIAogICAgICAgICBpZiAod2luZG93
V2lkdGggPCBtX2Jhc2VXaWR0aCkgewogICAgICAgICAgICAgd2luZG93V2lkdGggPSBtX2Jhc2VX
aWR0aDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94565</attachid>
            <date>2011-05-23 22:28:44 -0700</date>
            <delta_ts>2011-05-24 02:03:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61252-20110523222843.patch</filename>
            <type>text/plain</type>
            <size>6909</size>
            <attacher name="Naoki Takano">honten</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZjBlYzQxNjBmNzQ0OTlh
ZmRiOWQ2ODNlODM3ZTk3NTJkMDZhMDc3Li44ZjBlY2ZjMzUxYTk5NDhlZDQ4MDJkYTMzNDY0MjQz
NzMwZTgzYmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDUtMjIgIE5hb2tp
IFRha2FubyAgPHRha2Fuby5uYW9raUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXUFkZCBjbGlwcGluZyBmb3IgbGlz
dEJveCBpbiBwb3B1cCB3aW5kb3cgdG8gZml4IHdyb25nIGxvY2F0aW9uIGRpc3BsYXkgd2hlbiB0
aGUgYXV0b2ZpbGwgaXRlbSBpcyByZWFsbHkgbG9uZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjUyCisgICAgICAgIGh0dHA6Ly9jb2RlLmdvb2ds
ZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTgzNTM5CisKKyAgICAgICAgTWFudWFs
IHRlc3Q6IG1hbnVhbC10ZXN0cy9hdXRvZmlsbC1wb3B1cC1sb2NhdGlvbi5odG1sLgorCisgICAg
ICAgICogbWFudWFsLXRlc3RzL2F1dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWw6IFdpdGggbG9u
ZyBsb25nIHRleHQsIHRlc3QgdGhlIHNob3duIGxvY2F0aW9uIGlzIGNvcnJlY3QuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UG9wdXBMaXN0Qm94OjpzZXRCYXNlV2lkdGgpOiBDbGlwIHdpZHRoIHdpdGggbV9tYXhX
aW5kb3dXaWR0aC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6UG9wdXBMaXN0Qm94
KTogQWRkIG1fbWF4V2luZG93V2lkdGggaW5pdGlhbGl6YXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cENvbnRhaW5lcjo6bGF5b3V0QW5kQ2FsY3VsYXRlV2lkZ2V0UmVjdCk6IENhbGwgc2V0
TWF4V2lkdGhBbmRMYXlvdXQoKSB3aGVuIHRoZSB3aWR0aCBpcyBjbGlwcGVkIHdpdGggc2NyZWVu
IHNpemUuCisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6OnNldE1heFdpZHRoQW5kTGF5
b3V0KTogU2V0IG1fbWF4V2luZG93V2lkdGggYW5kIGNhbGwgbGF5b3V0KCkuCisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cExpc3RCb3g6OmxheW91dCk6IENvbXBhcmUgcmVuZXdlZCB3aW5kb3dXaWR0
aCBhbmQgbV9tYXhXaW5kb3dXaWR0aCwgYW5kIGNsaXAgdGhlIGl0LgorCiAyMDExLTA1LTIwICBN
aWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0
cy9hdXRvZmlsbC1wb3B1cC1sb2NhdGlvbi5odG1sIGIvU291cmNlL1dlYkNvcmUvbWFudWFsLXRl
c3RzL2F1dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWwKaW5kZXggNWUyOGExNWVhM2M1MjdlMmFj
NjcwMGFmYzI3Y2VkYWNkOGIxYjNlMS4uZjY2Mjg3MTVhOGM5Mjc1MGMyNWRkYmI3MzIzODgzM2Jj
ZGU1OGI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9maWxs
LXBvcHVwLWxvY2F0aW9uLmh0bWwKKysrIGIvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2F1
dG9maWxsLXBvcHVwLWxvY2F0aW9uLmh0bWwKQEAgLTE2LDUgKzE2LDE3IEBACiAgICAgPC9vbD4K
ICAgICA8YnI+CiAgICAgPGZvcm0+PGlucHV0IG5hbWU9cSBhdXRvZm9jdXM+PC9mb3JtPgorCisg
ICAgPG9sPgorICAgICAgPGxpPiBUeXBlIHRoZSB0ZXh0ICdUaGlzIGlzIHJlYWxseSBsb25nIGxv
bmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25n
IGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBs
b25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9u
ZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcg
bG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxv
bmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25n
IGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBs
b25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9uZyBsb25nIGxvbmcgbG9u
ZyBsb25nIGxvbmcgbG9uZyB0ZXh0LicgaW4gdGhlIGZvbGxvd2luZyB0ZXh0IGlucHV0IGFyZWEu
IEFuZCBwcmVzcyBFTlRFUiB0byBzdWJtaXQuPC9saT4KKyAgICAgIDxsaT5SZXR1cm4gdG8gdGhp
cyBwYWdlPC9saT4KKyAgICAgIDxsaT4gUHJlc3MgJ1QnIGFuZCBtYWtlIHN1cmUgdGhlIGlucHV0
IHRleHQgaXMgc2hvd24gaW4gYXV0b2ZpbGwgcG9wdXAgd2luZG93IGFuZCBpdCBleGNlZWRzIHRo
ZSB3aWR0aCBvZiBzY3JlZW4uIElmIHlvdXIgZGlzcGxheSByZXNvbHV0aW9uIGlzIHZlcnkgaGln
aCwgYW5kIHRoZSB3aGlsZSB0ZXh0IGZpdHMgaW4gdGhlIHdpbmRvdywgcGxlYXNlIGZpbGwgbW9y
ZSBjaGFyYWN0ZXJzIGFuZCB0cnkgYWdhaW4gdGlsbCB0aGUgdGV4dCBleGNlZWRzIHRoZSB3aWR0
aC4KKyAgICAgIDxsaT4gVHlwZSB0aGUgdGV4dCAnVGhpcyBpcyBzaG9ydCB0ZXh0LicgaW4gdGhl
IGZvbGxvd2luZyB0ZXh0IGlucHV0IGFyZWEuIEFuZCBwcmVzcyBFTlRFUiB0byBzdWJtaXQuPC9s
aT4KKyAgICAgIDxsaT4gUHJlc3MgJ3QnIGFuZCBtYWtlIHN1cmUgdGhlIGlucHV0IHRleHQgd2hp
Y2ggeW91IHR5cGVkIGluIGlzIGRpc3BsYXllZCBpbiBhdXRvZmlsbCBwb3B1cCB3aW5kb3cuPC9s
aT4KKyAgICAgIDxsaT4gUHJlc3MgJ2gnIGFuZCBtYWtlIHN1cmUgdGhlIHBvcHVwIHdpbmRvdyBs
b2NhdGlvbiBpcyBjb3JyZWN0LjwvbGk+CisgICAgICA8bGk+IFByZXNzIGFycm93IGtleSBkb3du
IGFuZCBtYWtlIHN1cmUgdGhlIHBvcHVwIHdpbmRvdyB0ZXh0IGlzIG5vdCBicm9rZW4uPC9saT4K
KyAgICA8L29sPgorICAgIDxicj4KKyAgICA8Zm9ybT48aW5wdXQgbmFtZT1wPjwvZm9ybT4KICAg
PC9ib2R5PgogPC9odG1sPiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCA5NjVjY2Q1OGIxZDU2NWZkZWNiOTFm
N2IyNDllZWUwNzVlNDQ2Njc4Li41ZGQ3YWY4ZjRjMWIxODQzYzQxNjYyMmEzNDdmMDAzM2I1ZjQ2
ZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1l
bnVDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9w
dXBNZW51Q2hyb21pdW0uY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgcHVibGljOgogICAgIC8vIFJl
dHVybnMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgbGlzdC4KICAgICBpbnQgbnVtSXRlbXMo
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KG1faXRlbXMuc2l6ZSgpKTsgfQogCi0g
ICAgdm9pZCBzZXRCYXNlV2lkdGgoaW50IHdpZHRoKSB7IG1fYmFzZVdpZHRoID0gd2lkdGg7IH0K
KyAgICB2b2lkIHNldEJhc2VXaWR0aChpbnQgd2lkdGgpIHsgbV9iYXNlV2lkdGggPSBtaW4obV9t
YXhXaW5kb3dXaWR0aCwgd2lkdGgpOyB9CiAKICAgICAvLyBDb21wdXRlcyB0aGUgc2l6ZSBvZiB3
aWRnZXQgYW5kIGNoaWxkcmVuLgogICAgIHZvaWQgbGF5b3V0KCk7CkBAIC0xNDYsNiArMTQ2LDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNYXhIZWlnaHQoaW50IG1heEhlaWdodCkgeyBtX21h
eEhlaWdodCA9IG1heEhlaWdodDsgfQogCisgICAgdm9pZCBzZXRNYXhXaWR0aEFuZExheW91dChp
bnQpOworCiAgICAgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgeyBtX3BvcHVwQ2xpZW50ID0gMDsg
fQogCiAgICAgY29uc3QgVmVjdG9yPFBvcHVwSXRlbSo+JiBpdGVtcygpIGNvbnN0IHsgcmV0dXJu
IG1faXRlbXM7IH0KQEAgLTE2NSw2ICsxNjcsNyBAQCBwcml2YXRlOgogICAgICAgICAsIG1fcG9w
dXBDbGllbnQoY2xpZW50KQogICAgICAgICAsIG1fcmVwZWF0aW5nQ2hhcigwKQogICAgICAgICAs
IG1fbGFzdENoYXJUaW1lKDApCisgICAgICAgICwgbV9tYXhXaW5kb3dXaWR0aChzdGQ6Om51bWVy
aWNfbGltaXRzPGludD46Om1heCgpKQogICAgIHsKICAgICAgICAgc2V0U2Nyb2xsYmFyTW9kZXMo
U2Nyb2xsYmFyQWx3YXlzT2ZmLCBTY3JvbGxiYXJBbHdheXNPZmYpOwogICAgIH0KQEAgLTI3MSw2
ICsyNzQsOSBAQCBwcml2YXRlOgogCiAgICAgLy8gVGhlIGxhc3QgdGltZSB0aGUgdXNlciBoaXQg
YSBrZXkuICBVc2VkIGZvciB0eXBlQWhlYWRGaW5kLgogICAgIFRpbWVTdGFtcCBtX2xhc3RDaGFy
VGltZTsKKworICAgIC8vIElmIHdpZHRoIGV4ZWVkcyBzY3JlZW4gd2lkdGgsIHdlIGhhdmUgdG8g
Y2xpcCBpdC4KKyAgICBpbnQgbV9tYXhXaW5kb3dXaWR0aDsKIH07CiAKIHN0YXRpYyBQbGF0Zm9y
bU1vdXNlRXZlbnQgY29uc3RydWN0UmVsYXRpdmVNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYgZSwKQEAgLTM1NSwxMyArMzYxLDE3IEBAIEludFJlY3QgUG9wdXBDb250YWluZXI6
OmxheW91dEFuZENhbGN1bGF0ZVdpZGdldFJlY3QoaW50IHRhcmdldENvbnRyb2xIZWlnaHQsIGNv
CiAKICAgICAgICAgLy8gSWYgd2UgaGF2ZSBtdWx0aXBsZSBzY3JlZW5zIGFuZCB0aGUgYnJvd3Nl
ciByZWN0IGlzIGluIG9uZSBzY3JlZW4sIHdlIGhhdmUKICAgICAgICAgLy8gdG8gY2xpcCB0aGUg
d2luZG93IHdpZHRoIHRvIHRoZSBzY3JlZW4gd2lkdGguCisgICAgICAgIC8vIFdoZW4gY2xpcHBp
bmcsIHdlIGFsc28gbmVlZCB0byBzZXQgYSBtYXhpbXVtIHdpZHRoIGZvciB0aGUgbGlzdCBib3gu
CiAgICAgICAgIEZsb2F0UmVjdCB3aW5kb3dSZWN0ID0gY2hyb21lQ2xpZW50LT53aW5kb3dSZWN0
KCk7CiAgICAgICAgIGlmICh3aW5kb3dSZWN0LngoKSA+PSBzY3JlZW4ueCgpICYmIHdpbmRvd1Jl
Y3QubWF4WCgpIDw9IHNjcmVlbi5tYXhYKCkpIHsKICAgICAgICAgICAgIGlmIChtX2xpc3RCb3gt
Pm1fcG9wdXBDbGllbnQtPm1lbnVTdHlsZSgpLnRleHREaXJlY3Rpb24oKSA9PSBSVEwgJiYgd2lk
Z2V0UmVjdC54KCkgPCBzY3JlZW4ueCgpKSB7CiAgICAgICAgICAgICAgICAgd2lkZ2V0UmVjdC5z
ZXRXaWR0aCh3aWRnZXRSZWN0Lm1heFgoKSAtIHNjcmVlbi54KCkpOwogICAgICAgICAgICAgICAg
IHdpZGdldFJlY3Quc2V0WChzY3JlZW4ueCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2lk
Z2V0UmVjdC5tYXhYKCkgPiBzY3JlZW4ubWF4WCgpKQorICAgICAgICAgICAgICAgIGxpc3RCb3go
KS0+c2V0TWF4V2lkdGhBbmRMYXlvdXQobWF4KHdpZGdldFJlY3Qud2lkdGgoKSAtIGtCb3JkZXJT
aXplICogMiwgMCkpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aWRnZXRSZWN0Lm1heFgoKSA+
IHNjcmVlbi5tYXhYKCkpIHsKICAgICAgICAgICAgICAgICB3aWRnZXRSZWN0LnNldFdpZHRoKHNj
cmVlbi5tYXhYKCkgLSB3aWRnZXRSZWN0LngoKSk7CisgICAgICAgICAgICAgICAgbGlzdEJveCgp
LT5zZXRNYXhXaWR0aEFuZExheW91dChtYXgod2lkZ2V0UmVjdC53aWR0aCgpIC0ga0JvcmRlclNp
emUgKiAyLCAwKSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDYWxj
dWxhdGUgWSBheGlzIHNpemUuCkBAIC0xMjgzLDYgKzEyOTMsMTIgQEAgdm9pZCBQb3B1cExpc3RC
b3g6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICBsYXlvdXQoKTsKIH0KIAordm9pZCBQb3B1cExp
c3RCb3g6OnNldE1heFdpZHRoQW5kTGF5b3V0KGludCBtYXhXaWR0aCkKK3sKKyAgICBtX21heFdp
bmRvd1dpZHRoID0gbWF4V2lkdGg7CisgICAgbGF5b3V0KCk7Cit9CisKIHZvaWQgUG9wdXBMaXN0
Qm94OjpsYXlvdXQoKQogewogICAgIGJvb2wgaXNSaWdodEFsaWduZWQgPSBtX3BvcHVwQ2xpZW50
LT5tZW51U3R5bGUoKS50ZXh0RGlyZWN0aW9uKCkgPT0gUlRMOwpAQCAtMTM2Miw3ICsxMzc4LDEz
IEBAIHZvaWQgUG9wdXBMaXN0Qm94OjpsYXlvdXQoKQogICAgICAgICBjb250ZW50V2lkdGggPSBt
X2Jhc2VXaWR0aCAtIHNjcm9sbGJhcldpZHRoOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHdpbmRv
d1dpZHRoID0gYmFzZVdpZHRoICsgc2Nyb2xsYmFyV2lkdGggKyBwYWRkaW5nV2lkdGg7Ci0gICAg
ICAgIGNvbnRlbnRXaWR0aCA9IGJhc2VXaWR0aCArIHBhZGRpbmdXaWR0aDsKKyAgICAgICAgaWYg
KHdpbmRvd1dpZHRoID4gbV9tYXhXaW5kb3dXaWR0aCkgeworICAgICAgICAgICAgLy8gd2luZG93
V2lkdGggZXhjZWVkcyBtX21heFdpbmRvd1dpZHRoLCBzbyB3ZSBoYXZlIHRvIGNsaXAuCisgICAg
ICAgICAgICB3aW5kb3dXaWR0aCA9IG1fbWF4V2luZG93V2lkdGg7CisgICAgICAgICAgICBiYXNl
V2lkdGggPSB3aW5kb3dXaWR0aCAtIHNjcm9sbGJhcldpZHRoIC0gcGFkZGluZ1dpZHRoOworICAg
ICAgICAgICAgbV9iYXNlV2lkdGggPSBiYXNlV2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgY29u
dGVudFdpZHRoID0gd2luZG93V2lkdGggLSBzY3JvbGxiYXJXaWR0aDsKIAogICAgICAgICBpZiAo
d2luZG93V2lkdGggPCBtX2Jhc2VXaWR0aCkgewogICAgICAgICAgICAgd2luZG93V2lkdGggPSBt
X2Jhc2VXaWR0aDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>