<?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>110786</bug_id>
          
          <creation_ts>2013-02-25 13:01:29 -0800</creation_ts>
          <short_desc>Style recalculation takes too long when adding whitespace text nodes</short_desc>
          <delta_ts>2013-03-01 21:20:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Pete Blois">webkit</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>buildbot</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ericbidelman</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>esprehn</cc>
    
    <cc>haraken</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>mitz</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>paulirish</cc>
    
    <cc>rniwa</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>841225</commentid>
    <comment_count>0</comment_count>
      <attachid>190110</attachid>
    <who name="Pete Blois">webkit</who>
    <bug_when>2013-02-25 13:01:29 -0800</bug_when>
    <thetext>Created attachment 190110
HTML repro file

When a large number of whitespace text nodes are added to the document, interspersed with standard div elements, WebKit spends an excessive amount of time in &apos;Recalculate Style&apos;.

To reproduce, load the following HTML in a page:
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;body&gt;
  &lt;script&gt;
for (var i = 0; i &lt; 1500; ++i) {
  document.body.appendChild(document.createTextNode(&apos; &apos;));
  document.body.appendChild(document.createElement(&apos;div&apos;));
  document.body.appendChild(document.createTextNode(&apos; &apos;));
}
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;

Expected:
Page loads in &lt;300ms.

Actual:
Page loads in 20-30s, majority of time attributed by timeline to &apos;Recalculate Style&apos;.

Does not repro on FireFox and IE 9/10.
Does not repro if any non-whitespace characters are added to the text nodes.
Does not repro if spans of whitespace are inserted rather than text nodes.

Also repros with document fragments:
var fragment = document.createDocumentFragment();
fragment.appendChild(document.createTextNode(&apos; &apos;));
fragment.appendChild(document.createElement(&apos;div&apos;));
fragment.appendChild(document.createTextNode(&apos; &apos;));
for (var i = 0; i &lt; 1500; ++i) {
  document.body.appendChild(fragment.cloneNode(true));
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841468</commentid>
    <comment_count>1</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-25 18:00:23 -0800</bug_when>
    <thetext>I profiled the benchmark and identified that the culprit is this FIXME: https://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/dom/Node.cpp&amp;exact_package=chromium&amp;q=node.cpp&amp;type=cs&amp;l=1065

Because an empty text does not have a renderer, we are hitting the O(n^2) case.

I&apos;ll take a detailed look and consider how to address the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841501</commentid>
    <comment_count>2</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-25 18:26:00 -0800</bug_when>
    <thetext>CC-ing rendering experts.

eric: It looks like you added the FIXME comment. Do you have any idea of how to fix the issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843177</commentid>
    <comment_count>3</comment_count>
      <attachid>190545</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-27 09:47:39 -0800</bug_when>
    <thetext>Created attachment 190545
Performance tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843189</commentid>
    <comment_count>4</comment_count>
      <attachid>190549</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-27 09:56:41 -0800</bug_when>
    <thetext>Created attachment 190549
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843217</commentid>
    <comment_count>5</comment_count>
      <attachid>190549</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-27 10:24:22 -0800</bug_when>
    <thetext>Comment on attachment 190549
Patch

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

&gt; Source/WebCore/dom/Node.cpp:-1071
&gt; -    // FIXME: This is O(N^2) for the innerHTML case, where all children are replaced at once (and not attached).

Does this still apply?  What about other nodes that we attach but intentionally don&apos;t have renderers (like display: none content)

&gt; Source/WebCore/dom/Node.cpp:1086
&gt; +                if (!toText(next)-&gt;createTextRendererIfNeeded())
&gt; +                    next-&gt;setTextNodeIntentionallyWithoutRenderer();

I wonder if this should be done inside createTextRenderIfNeeded.  It&apos;s a bit odd for that to have side-effects, but I worry there are other cases wher we&apos;ll need this call and fail to have it.

&gt; Source/WebCore/dom/Node.h:731
&gt; +        TextNodeIntentionallyWithoutRendererFlag = 1 &lt;&lt; 27,

Do we have enough space for this flag?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843244</commentid>
    <comment_count>6</comment_count>
      <attachid>190554</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-27 10:46:03 -0800</bug_when>
    <thetext>Created attachment 190554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843246</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-27 10:46:32 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 190549 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190549&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Node.cpp:-1071
&gt; &gt; -    // FIXME: This is O(N^2) for the innerHTML case, where all children are replaced at once (and not attached).
&gt; 
&gt; Does this still apply?  What about other nodes that we attach but intentionally don&apos;t have renderers (like display: none content)

Good point. The patch solves the problem for text nodes only. I restored and updated the FIXME. Also I renamed the flag to IntentionallyWithoutRenderer so that we can use it for other nodes as well.
 
&gt; &gt; Source/WebCore/dom/Node.cpp:1086
&gt; &gt; +                if (!toText(next)-&gt;createTextRendererIfNeeded())
&gt; &gt; +                    next-&gt;setTextNodeIntentionallyWithoutRenderer();
&gt; 
&gt; I wonder if this should be done inside createTextRenderIfNeeded.  It&apos;s a bit odd for that to have side-effects, but I worry there are other cases wher we&apos;ll need this call and fail to have it.

Fixed.

&gt; &gt; Source/WebCore/dom/Node.h:731
&gt; &gt; +        TextNodeIntentionallyWithoutRendererFlag = 1 &lt;&lt; 27,
&gt; 
&gt; Do we have enough space for this flag?

Yes, we have 32 bit for flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843251</commentid>
    <comment_count>8</comment_count>
      <attachid>190549</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-27 10:49:01 -0800</bug_when>
    <thetext>Comment on attachment 190549
Patch

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

This patch doesn&apos;t look right. Why don&apos;t we bail out on the attached() check inside the loop? We should have finished attaching all the text nodes preventing this n^2 behavior.

&gt; Source/WebCore/dom/Node.cpp:1083
&gt; +                if (next-&gt;isTextNodeIntentionallyWithoutRenderer())

This doesn&apos;t look right. If you run into a text node that &quot;intentionally&quot; doesn&apos;t have a renderer you&apos;ll give up early when a later sibling may need one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843253</commentid>
    <comment_count>9</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-27 10:50:38 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 190549 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190549&amp;action=review
&gt; 
&gt; This patch doesn&apos;t look right. Why don&apos;t we bail out on the attached() check inside the loop? We should have finished attaching all the text nodes preventing this n^2 behavior.
&gt; 

Specifically, this bitfield doesn&apos;t seem needed. If you&apos;re attached() and renderer() is null, then you intentionally don&apos;t have a renderer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843257</commentid>
    <comment_count>10</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-27 10:54:01 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; This patch doesn&apos;t look right. Why don&apos;t we bail out on the attached() check inside the loop? We should have finished attaching all the text nodes preventing this n^2 behavior.
&gt; &gt; 
&gt; 
&gt; Specifically, this bitfield doesn&apos;t seem needed. If you&apos;re attached() and renderer() is null, then you intentionally don&apos;t have a renderer.

Agreed. If attached() returns true, it means that we have already checked if a renderer should be created or not. So if attach() returns true and renderer() returns NULL, it means that we have already decided not to create a renderer. So we can bail out. Sounds reasonable.

Will update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843272</commentid>
    <comment_count>11</comment_count>
      <attachid>190557</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-27 11:07:56 -0800</bug_when>
    <thetext>Created attachment 190557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843288</commentid>
    <comment_count>12</comment_count>
      <attachid>190557</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-27 11:19:04 -0800</bug_when>
    <thetext>Comment on attachment 190557
Patch

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

The idea here seems basically right, but there is some kind of fundamental mistake.

&gt; Source/WebCore/dom/Node.cpp:1082
&gt;              if (next-&gt;renderer())
&gt;                  break;
&gt; +            // This means that we intentionally did not create a renderer for the node.
&gt; +            if (next-&gt;attached() &amp;&amp; !next-&gt;renderer())
&gt; +                break;
&gt; +            // This means none of the following siblings are attached.
&gt;              if (!next-&gt;attached())
&gt; -                break;  // Assume this means none of the following siblings are attached.
&gt; +                break;

This can’t be right. It says:

    if (a)
        break;
    if (b &amp;&amp; !a)
        break;
    if (!b)
        break;

That’s the same as just:

    break;

So what this patch does is remove the code entirely in a roundabout way. The createTextRendererIfNeeded function will never be called.

Maybe that’s what we’re really learning. That this code is not needed! If so, we should be sure we examine test cases for why this code was originally added to confirm that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843306</commentid>
    <comment_count>13</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-27 11:29:27 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; This can’t be right. It says:
&gt; 
&gt;     if (a)
&gt;         break;
&gt;     if (b &amp;&amp; !a)
&gt;         break;
&gt;     if (!b)
&gt;         break;
&gt; 
&gt; That’s the same as just:
&gt; 
&gt;     break;
&gt; 
&gt; So what this patch does is remove the code entirely in a roundabout way. The createTextRendererIfNeeded function will never be called.
&gt; 
&gt; Maybe that’s what we’re really learning. That this code is not needed! If so, we should be sure we examine test cases for why this code was originally added to confirm that.

Great observation...!

I think that &apos;if (!attached()) break&apos; is not right and should be removed. Imagine the following case:

    parent(attached with renderer) -- child1(attached without renderer)

When we try to insert child0 before child1, it can change the renderer of child1. So createTextRendererIfNeeded should be called for child1.


mitz, eric, anttik: It looks like you&apos;ve touched the code around it. Do you have any idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843367</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-27 12:17:40 -0800</bug_when>
    <thetext>svn annotate is going to know better than my memory. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843571</commentid>
    <comment_count>15</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-27 15:40:34 -0800</bug_when>
    <thetext>Changes related to this patch:

http://trac.webkit.org/changeset/29054 (The for loop was introduced)
http://trac.webkit.org/changeset/80330 (The FIXME was added)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844182</commentid>
    <comment_count>16</comment_count>
      <attachid>190747</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-28 10:15:41 -0800</bug_when>
    <thetext>Created attachment 190747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844184</commentid>
    <comment_count>17</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-28 10:18:09 -0800</bug_when>
    <thetext>Darin: Thanks for review! I updated the patch.

&gt; we should be sure we examine test cases for why this code was originally added to confirm that.

The for loop was introduced in r29054 five years ago. The test case is fast/dynamic/create-renderer-for-whitespace-only-text.html and other layout tests that was updated in r29054. I confirmed that these tests pass with my latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844227</commentid>
    <comment_count>18</comment_count>
      <attachid>190747</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-28 10:57:01 -0800</bug_when>
    <thetext>Comment on attachment 190747
Patch

Attachment 190747 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/16675264

New failing tests:
fast/html/details-nested-2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844241</commentid>
    <comment_count>19</comment_count>
      <attachid>190747</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-28 11:09:22 -0800</bug_when>
    <thetext>Comment on attachment 190747
Patch

Attachment 190747 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/16823369

New failing tests:
fast/html/details-nested-2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844245</commentid>
    <comment_count>20</comment_count>
      <attachid>190747</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 11:15:14 -0800</bug_when>
    <thetext>Comment on attachment 190747
Patch

Attachment 190747 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16801110

New failing tests:
fast/html/details-nested-2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844307</commentid>
    <comment_count>21</comment_count>
      <attachid>190747</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-28 11:49:09 -0800</bug_when>
    <thetext>Comment on attachment 190747
Patch

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

Some of the failures look real, specifically fast/html/details-nested-2.html

&gt; Source/WebCore/dom/Node.cpp:1080
&gt; +                // At this point, next does not have a renderer.

Just assert this :)

ASSERT(!next-&gt;renderer())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844310</commentid>
    <comment_count>22</comment_count>
      <attachid>190773</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-28 11:51:15 -0800</bug_when>
    <thetext>Created attachment 190773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844313</commentid>
    <comment_count>23</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-28 11:53:52 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; &gt; Source/WebCore/dom/Node.cpp:1080
&gt; &gt; +                // At this point, next does not have a renderer.
&gt; 
&gt; Just assert this :)
&gt; 
&gt; ASSERT(!next-&gt;renderer())

Done.

&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190747&amp;action=review
&gt; 
&gt; Some of the failures look real, specifically fast/html/details-nested-2.html

I&apos;m not sure if it is a real failure or not. One anonymous render block is removed with this patch. In the latest patch, I updated the test result for the time being. Maybe is it a wrong thing to do?

  - RenderBlock (anonymous) at (8,44) size 768x0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844319</commentid>
    <comment_count>24</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-28 11:58:37 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #21)
&gt; &gt; &gt; Source/WebCore/dom/Node.cpp:1080
&gt; &gt; &gt; +                // At this point, next does not have a renderer.
&gt; &gt; 
&gt; &gt; Just assert this :)
&gt; &gt; 
&gt; &gt; ASSERT(!next-&gt;renderer())
&gt; 
&gt; Done.
&gt; 
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190747&amp;action=review
&gt; &gt; 
&gt; &gt; Some of the failures look real, specifically fast/html/details-nested-2.html
&gt; 
&gt; I&apos;m not sure if it is a real failure or not. One anonymous render block is removed with this patch. In the latest patch, I updated the test result for the time being. Maybe is it a wrong thing to do?
&gt; 
&gt;   - RenderBlock (anonymous) at (8,44) size 768x0

I think that&apos;s a real failure. You&apos;re not creating an anonymous block wrapper for some text now between the &lt;summary&gt; and the &lt;details&gt; that&apos;s right after it. In a real app this might cause two inline-block elements to suddenly run into each other:

&lt;div style=&quot;display: inline-block&quot;&gt;&lt;/div&gt;{ws}
&lt;div style=&quot;display: inline-block&quot;&gt;&lt;/div&gt;

where {ws} is some whitespace. I think if you change the test to not be about &lt;details&gt; (which is magic) you&apos;ll see bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844439</commentid>
    <comment_count>25</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-28 13:45:21 -0800</bug_when>
    <thetext>I discussed with Elliott and Morrita offline.

- Removing the anonymous block is a right thing to do. The new test result is an expected behavior of details-nested-2.html.

- So the question is why there had existed the anonymous block in trunk. According to morrita, redundant anonymous blocks can be sometimes left without being cleaned up.

- I investigated the stack trace that creates the anonymous block, with my patch and without my patch. In both cases, the anonymous block is created inside Text::createTextRendererIfNeeded() (but in a different call path). Without my patch, the anonymous block is not cleaned up (for some reason). With my patch, the anonymous block is cleaned up (for some reason).

[Without my patch]
[0x7fd6f6945cb0] &lt;unknown&gt;
 [0x0000012eb771] WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks()
 [0x0000006d8ffb] WebCore::NodeRenderingContext::createRendererForTextIfNeeded()
 [0x0000006fd4f7] WebCore::Text::createTextRendererIfNeeded()
 [0x0000006caefd] WebCore::Node::attach()
 [0x0000006bb41f] WebCore::Element::attach()
 [0x000000bc7d75] WebCore::InsertionPoint::attach()
 [0x0000006bb06e] WebCore::Element::recalcStyle()
 [0x000000725bbf] WebCore::ShadowRoot::recalcStyle()
 [0x00000071439a] WebCore::ElementShadow::recalcStyle()
 [0x0000006bac7e] WebCore::Element::recalcStyle()
 [0x0000006bad1c] WebCore::Element::recalcStyle()
 [0x0000006bad1c] WebCore::Element::recalcStyle()
 [0x000000696277] WebCore::Document::recalcStyle()
 [0x0000006969de] WebCore::Document::updateStyleIfNeeded()
 [0x000000696b04] WebCore::Document::finishedParsing()

[With my patch]
 [0x0000012e8cb1] WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks()
 [0x0000006d8774] WebCore::NodeRenderingContext::createRendererForTextIfNeeded()
 [0x0000006fcc88] WebCore::Text::createTextRendererIfNeeded()
 [0x0000006fcca9] WebCore::Text::attach()
 [0x000000bc70c5] WebCore::InsertionPoint::attach()
 [0x000000674d73] WebCore::ContainerNode::attach()
 [0x000000724e9e] WebCore::ShadowRoot::attach()
 [0x000000713a1e] WebCore::ElementShadow::attach()
 [0x0000006bab87] WebCore::Element::attach()
 [0x000000bc70c5] WebCore::InsertionPoint::attach()
 [0x0000006ba7de] WebCore::Element::recalcStyle()
 [0x00000072535f] WebCore::ShadowRoot::recalcStyle()
 [0x000000713b2a] WebCore::ElementShadow::recalcStyle()
 [0x0000006ba3ee] WebCore::Element::recalcStyle()
 [0x0000006ba48c] WebCore::Element::recalcStyle()
 [0x0000006ba48c] WebCore::Element::recalcStyle()
 [0x0000006959e7] WebCore::Document::recalcStyle()
 [0x00000069614e] WebCore::Document::updateStyleIfNeeded()
 [0x000000696274] WebCore::Document::finishedParsing()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844543</commentid>
    <comment_count>26</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-28 15:31:21 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; I discussed with Elliott and Morrita offline.
&gt; 
&gt; - Removing the anonymous block is a right thing to do. The new test result is an expected behavior of details-nested-2.html.
&gt; 
&gt; - So the question is why there had existed the anonymous block in trunk. According to morrita, redundant anonymous blocks can be sometimes left without being cleaned up.
&gt; 

Cool, thanks for investigating where this came from!

LGTM on the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844549</commentid>
    <comment_count>27</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-28 15:33:41 -0800</bug_when>
    <thetext>Darin: would you review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845687</commentid>
    <comment_count>28</comment_count>
      <attachid>190773</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-03-01 18:10:06 -0800</bug_when>
    <thetext>Comment on attachment 190773
Patch

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

The change to Node::attach seems fine, but I don’t think the other changes are needed.

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:287
&gt; +bool NodeRenderingContext::createRendererForTextIfNeeded()

Why do we need this boolean return value? Why don’t callers just check if renderer() is 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845693</commentid>
    <comment_count>29</comment_count>
      <attachid>191086</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-01 18:30:11 -0800</bug_when>
    <thetext>Created attachment 191086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845694</commentid>
    <comment_count>30</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-01 18:31:05 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; &gt; Source/WebCore/dom/NodeRenderingContext.cpp:287
&gt; &gt; +bool NodeRenderingContext::createRendererForTextIfNeeded()
&gt; 
&gt; Why do we need this boolean return value? Why don’t callers just check if renderer() is 0?

Sounds reasonable. Updated the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845715</commentid>
    <comment_count>31</comment_count>
      <attachid>191086</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-03-01 20:32:16 -0800</bug_when>
    <thetext>Comment on attachment 191086
Patch

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

It would be better if this came with a test. The tests in LayoutTests/perf can be used to check for unwanted O(n^2) in a really nice clean way. I would love it if you’d add one of those tests.

&gt; Source/WebCore/dom/Node.cpp:1079
&gt; +            if (next-&gt;isTextNode()) {

Might read nicer if this said:

    if (!next-&gt;isTextNode())
        continue;

Instead of nesting the rest of the loop inside an if.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845723</commentid>
    <comment_count>32</comment_count>
      <attachid>191086</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-01 21:11:53 -0800</bug_when>
    <thetext>Comment on attachment 191086
Patch

Attachment 191086 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/16819620

New failing tests:
editing/selection/selection-invalid-offset.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845725</commentid>
    <comment_count>33</comment_count>
      <attachid>191094</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-01 21:17:33 -0800</bug_when>
    <thetext>Created attachment 191094
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845726</commentid>
    <comment_count>34</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-01 21:19:12 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 191086 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191086&amp;action=review
&gt; 
&gt; It would be better if this came with a test. The tests in LayoutTests/perf can be used to check for unwanted O(n^2) in a really nice clean way. I would love it if you’d add one of those tests.

Added perf/append-text-nodes-without-renderers.html.

&gt; &gt; Source/WebCore/dom/Node.cpp:1079
&gt; &gt; +            if (next-&gt;isTextNode()) {
&gt; 
&gt; Might read nicer if this said:
&gt; 
&gt;     if (!next-&gt;isTextNode())
&gt;         continue;
&gt; 
&gt; Instead of nesting the rest of the loop inside an if.

Fixed. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845727</commentid>
    <comment_count>35</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-01 21:20:43 -0800</bug_when>
    <thetext>Committed r144526: &lt;http://trac.webkit.org/changeset/144526&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>190110</attachid>
            <date>2013-02-25 13:01:29 -0800</date>
            <delta_ts>2013-02-25 13:01:29 -0800</delta_ts>
            <desc>HTML repro file</desc>
            <filename>minnodes.html</filename>
            <type>text/html</type>
            <size>464</size>
            <attacher name="Pete Blois">webkit</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8ZGl2IGNsYXNzPSd0aW1lVG9vayc+PC9kaXY+CiAgPHNj
cmlwdD4KZm9yICh2YXIgaSA9IDA7IGkgPCAxNTAwOyArK2kpIHsKICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJykpOwogIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAnKSk7Cn0KdmFyIHN0YXJ0
VGltZSA9IERhdGUubm93KCk7CndpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJy50aW1lVG9vaycpLnRleHRDb250ZW50ID0KICAgICAgJ1Rvb2s6
ICcgKyAoRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSkgKyAnbXMnOwp9LCAwKTsKICA8L3NjcmlwdD4K
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>190545</attachid>
            <date>2013-02-27 09:47:39 -0800</date>
            <delta_ts>2013-02-27 09:47:39 -0800</delta_ts>
            <desc>Performance tests</desc>
            <filename>whitespace.html</filename>
            <type>text/html</type>
            <size>476</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8Ym9keT4KPGRpdiBjbGFzcz0nY29udGFpbmVyJz48L2Rp
dj4KPHNjcmlwdD4KdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb250
YWluZXInKTsKCnZhciB0MSA9IERhdGUubm93KCk7Cgpmb3IgKHZhciBpID0gMDsgaSA8IDE1MDA7
ICsraSkgewogIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgn
ICcpKTsKICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
JykpOwogIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnICcp
KTsKfQoKc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgdmFyIHQyID0gRGF0ZS5ub3coKTsKICBk
b2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICh0MiAtIHQxKSArICIgbXMiOwp9LCAwKTsKPC9zY3Jp
cHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190549</attachid>
            <date>2013-02-27 09:56:41 -0800</date>
            <delta_ts>2013-02-27 11:07:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110786-20130227095254.patch</filename>
            <type>text/plain</type>
            <size>9263</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjMDcyNDQ0ZTgwNDQ2
YWUzYmNlYjM4OTJjYjAyMDRiMDE3MWI4NS4uOWE0OWUxYjZjYzI2Yzk2ZjI3NTI3MTBjNDRkYmE3
MTQ3YThhNDNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAyLTI3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBQZXJmb3JtYW5jZSBp
c3N1ZXMgYWRkaW5nIGxhcmdlIG51bWJlcnMgb2Ygd2hpdGVzcGFjZSB0ZXh0IG5vZGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA3ODYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAvLyBUaGlzIHRha2Vz
IDk4IG1zZWMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTUwMDsgKytpKSB7CisgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgn
eCcpKTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCd4JykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQnV0
IHRoaXMgdGFrZXMgMjUgc2Vjb25kcy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNTAw
OyArK2kpIHsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCcgJykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAnKSk7CisgICAgICAgIH0KKwor
ICAgICAgICBUaGUgcmVhc29uIGlzIHRoYXQgYmVjYXVzZSB3ZSdyZSBub3QgY3JlYXRlIHJlbmRl
cmVycyBmb3IgZW1wdHkgdGV4dAorICAgICAgICBub2Rlcywgd2UgYXJlIGhpdHRpbmcgdGhlIHdv
cnN0IE8oTl4yKSBjYXNlIGluIE5vZGU6OmF0dGFjaCgpLgorICAgICAgICAoU2VlIHRoZSBGSVhN
RSBpbiBOb2RlOjphdHRhY2goKS4pCisKKyAgICAgICAgVG8gZml4IHRoaXMgaXNzdWUsIHdlIG5l
ZWQgdG8gZGlzdGluZ3Vpc2ggdGhlIGZvbGxvd2luZyB0d28gY2FzZXM6CisKKyAgICAgICAgICAt
IHdlIGhhdmUgbm90IHlldCB0cmllZCB0byBjcmVhdGUgYSByZW5kZXJlciBmb3IgdGhlIHRleHQg
bm9kZS4KKyAgICAgICAgICAtIHdlIGhhdmUgdHJpZWQgdG8gY3JlYXRlIGEgcmVuZGVyZXIgZm9y
IHRoZSB0ZXh0IG5vZGUgYW5kCisgICAgICAgICAgICBkZWNpZGVkIG5vdCB0byBjcmVhdGUgYSBy
ZW5kZXJlci4KKworICAgICAgICBUbyBkaXN0aW5ndWlzaCB0aGUgc2l0dWF0aW9ucywgdGhpcyBw
YXRjaCBhZGRzCisgICAgICAgIGEgVGV4dE5vZGVJbnRlbnRpb25hbGx5V2l0aG91dFJlbmRlcmVy
IGZsYWcuCisgICAgICAgIFRoZSBwYXRjaCBmaXhlcyB0aGUgd29yc3QgbG9vcCBjb3N0IGZyb20g
TyhOXjIpIHRvIE8oTikuCisKKyAgICAgICAgUGVyZm9ybWFuY2UgdGVzdHM6IGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTE5MDU0NQorICAgICAgICBSZXN1bHRzIGlu
IENocm9taXVtL0xpbnV4OiAyNS4zIHNlYyA9PiA5OCBtc2VjCisKKyAgICAgICAgKiBkb20vTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjphdHRhY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6aXNUZXh0Tm9kZUludGVudGlvbmFsbHlXaXRob3V0UmVuZGVyZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6c2V0VGV4dE5vZGVJbnRlbnRpb25hbGx5V2l0aG91dFJlbmRlcmVy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNsZWFyVGV4dE5vZGVJbnRlbnRpb25hbGx5V2l0
aG91dFJlbmRlcmVyKToKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVJlbmRlcmVyRm9y
VGV4dElmTmVlZGVkKToKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaDoKKyAg
ICAgICAgKE5vZGVSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBkb20vVGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0OjpjcmVhdGVUZXh0UmVuZGVyZXJJZk5lZWRlZCk6CisgICAg
ICAgICogZG9tL1RleHQuaDoKKyAgICAgICAgKFRleHQpOgorCiAyMDEzLTAyLTI1ICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIEdlbmVyYXRlIGEg
d3JhcHBlciBmdW5jdGlvbiBmb3IgUmVwbGFjZWFibGVBdHRyU2V0dGVyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAppbmRleCBlN2M0NjUwMWQyMTlhMWQ0OGRiOGJiOWNjMGQzMGRjYTNkOTllYzM0Li5iZDQwMTAy
NDEzYzAzMzA2M2RkYTE4Zjc3Y2NjMWE1MDEzNTVkNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0x
MDY4LDcgKzEwNjgsNiBAQCB2b2lkIE5vZGU6OmF0dGFjaCgpCiAgICAgQVNTRVJUKCFhdHRhY2hl
ZCgpKTsKICAgICBBU1NFUlQoIXJlbmRlcmVyKCkgfHwgKHJlbmRlcmVyKCktPnN0eWxlKCkgJiYg
cmVuZGVyZXIoKS0+cGFyZW50KCkpKTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIGlzIE8oTl4yKSBm
b3IgdGhlIGlubmVySFRNTCBjYXNlLCB3aGVyZSBhbGwgY2hpbGRyZW4gYXJlIHJlcGxhY2VkIGF0
IG9uY2UgKGFuZCBub3QgYXR0YWNoZWQpLgogICAgIC8vIElmIHRoaXMgbm9kZSBnb3QgYSByZW5k
ZXJlciBpdCBtYXkgYmUgdGhlIHByZXZpb3VzUmVuZGVyZXIoKSBvZiBzaWJsaW5nIHRleHQgbm9k
ZXMgYW5kIHRodXMgYWZmZWN0IHRoZQogICAgIC8vIHJlc3VsdCBvZiBUZXh0Ojp0ZXh0UmVuZGVy
ZXJJc05lZWRlZCgpIGZvciB0aG9zZSBub2Rlcy4KICAgICBpZiAocmVuZGVyZXIoKSkgewpAQCAt
MTA3Nyw4ICsxMDc2LDE1IEBAIHZvaWQgTm9kZTo6YXR0YWNoKCkKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGlmICghbmV4dC0+YXR0YWNoZWQoKSkKICAgICAgICAgICAgICAg
ICBicmVhazsgIC8vIEFzc3VtZSB0aGlzIG1lYW5zIG5vbmUgb2YgdGhlIGZvbGxvd2luZyBzaWJs
aW5ncyBhcmUgYXR0YWNoZWQuCi0gICAgICAgICAgICBpZiAobmV4dC0+aXNUZXh0Tm9kZSgpKQot
ICAgICAgICAgICAgICAgIHRvVGV4dChuZXh0KS0+Y3JlYXRlVGV4dFJlbmRlcmVySWZOZWVkZWQo
KTsKKyAgICAgICAgICAgIGlmIChuZXh0LT5pc1RleHROb2RlKCkpIHsKKyAgICAgICAgICAgICAg
ICAvLyBXaXRob3V0IHRoaXMgY2hlY2ssIHdlIHdpbGwgZW5kIHVwIHJ1bm5pbmcgdGhlIGxvb3Ag
TyhOXjIpIHRpbWVzCisgICAgICAgICAgICAgICAgLy8gZm9yIGEgY2FzZSB3aGVyZSBhbGwgb2Yg
dGhlIGNoaWxkIHRleHQgbm9kZXMgZG8gbm90IGhhdmUgcmVuZGVyZXJzCisgICAgICAgICAgICAg
ICAgLy8gKGUuZy4gZW1wdHkgdGV4dCBub2RlcykuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzg2CisgICAgICAgICAgICAgICAgaWYgKG5leHQtPmlzVGV4
dE5vZGVJbnRlbnRpb25hbGx5V2l0aG91dFJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGlmICghdG9UZXh0KG5leHQpLT5jcmVhdGVUZXh0UmVu
ZGVyZXJJZk5lZWRlZCgpKQorICAgICAgICAgICAgICAgICAgICBuZXh0LT5zZXRUZXh0Tm9kZUlu
dGVudGlvbmFsbHlXaXRob3V0UmVuZGVyZXIoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KIApAQCAtMTEwOSw2ICsxMTE1LDcgQEAgdm9pZCBOb2RlOjpkZXRhY2goKQogICAgIGlm
IChyZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlcigpLT5kZXN0cm95QW5kQ2xlYW51cEFub255
bW91c1dyYXBwZXJzKCk7CiAgICAgc2V0UmVuZGVyZXIoMCk7CisgICAgY2xlYXJUZXh0Tm9kZUlu
dGVudGlvbmFsbHlXaXRob3V0UmVuZGVyZXIoKTsKIAogICAgIERvY3VtZW50KiBkb2MgPSBkb2N1
bWVudCgpOwogICAgIGlmIChpc1VzZXJBY3Rpb25FbGVtZW50KCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4
IGE4MzZiZjA2YzcwNmUwNGMzNjIzMTcxY2FhNDFiNmNjN2QwMWRmZGQuLmVlNmQzMTI3YjliNzgx
MzUzNTExZWJiYjkwNmFhMTBmOWY1Y2QyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMzYyLDYgKzM2Miw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhhc05hbWUoYm9vbCBmKSB7IEFTU0VSVCghaXNUZXh0
Tm9kZSgpKTsgc2V0RmxhZyhmLCBIYXNOYW1lT3JJc0VkaXRpbmdUZXh0RmxhZyk7IH0KICAgICB2
b2lkIHNldENoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHsgc2V0RmxhZyhDaGlsZE5lZWRzU3R5bGVS
ZWNhbGNGbGFnKTsgfQogICAgIHZvaWQgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB7IGNs
ZWFyRmxhZyhDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnKTsgfQorICAgIGJvb2wgaXNUZXh0Tm9k
ZUludGVudGlvbmFsbHlXaXRob3V0UmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKFRl
eHROb2RlSW50ZW50aW9uYWxseVdpdGhvdXRSZW5kZXJlckZsYWcpOyB9CisgICAgdm9pZCBzZXRU
ZXh0Tm9kZUludGVudGlvbmFsbHlXaXRob3V0UmVuZGVyZXIoKSB7IHNldEZsYWcoVGV4dE5vZGVJ
bnRlbnRpb25hbGx5V2l0aG91dFJlbmRlcmVyRmxhZyk7IH0KKyAgICB2b2lkIGNsZWFyVGV4dE5v
ZGVJbnRlbnRpb25hbGx5V2l0aG91dFJlbmRlcmVyKCkgeyBjbGVhckZsYWcoVGV4dE5vZGVJbnRl
bnRpb25hbGx5V2l0aG91dFJlbmRlcmVyRmxhZyk7IH0KIAogICAgIHZvaWQgc2V0TmVlZHNTdHls
ZVJlY2FsYyhTdHlsZUNoYW5nZVR5cGUgY2hhbmdlVHlwZSA9IEZ1bGxTdHlsZUNoYW5nZSk7CiAg
ICAgdm9pZCBjbGVhck5lZWRzU3R5bGVSZWNhbGMoKSB7IG1fbm9kZUZsYWdzICY9IH5TdHlsZUNo
YW5nZU1hc2s7IH0KQEAgLTcyNSw2ICs3MjgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAg
IE5lZWRzU2hhZG93VHJlZVdhbGtlckZsYWcgPSAxIDw8IDI1LAogICAgICAgICBJc0luU2hhZG93
VHJlZUZsYWcgPSAxIDw8IDI2LAorICAgICAgICBUZXh0Tm9kZUludGVudGlvbmFsbHlXaXRob3V0
UmVuZGVyZXJGbGFnID0gMSA8PCAyNywKIAogICAgICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQ
YXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggYmFlNTFhNzRiOGJiNzJiMmMxN2I2M2FjNzJm
NjU5MDU0Y2Y5NWQwNy4uMGEzMmQ5NWQzNzFlZGNkN2QzNWI1NDQxZTBhM2ZlYWFiNWUxM2U1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yODQs
MTQgKzI4NCwxNCBAQCB2b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZv
ckVsZW1lbnRJZk5lZWRlZCgpCiAgICAgcGFyZW50UmVuZGVyZXItPmFkZENoaWxkKG5ld1JlbmRl
cmVyLCBuZXh0UmVuZGVyZXIpOwogfQogCi12b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVh
dGVSZW5kZXJlckZvclRleHRJZk5lZWRlZCgpCitib29sIE5vZGVSZW5kZXJpbmdDb250ZXh0Ojpj
cmVhdGVSZW5kZXJlckZvclRleHRJZk5lZWRlZCgpCiB7CiAgICAgQVNTRVJUKCFtX25vZGUtPnJl
bmRlcmVyKCkpOwogCiAgICAgVGV4dCogdGV4dE5vZGUgPSB0b1RleHQobV9ub2RlKTsKIAogICAg
IGlmICghc2hvdWxkQ3JlYXRlUmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyID0gdGhpcy0+
cGFyZW50UmVuZGVyZXIoKTsKICAgICBBU1NFUlQocGFyZW50UmVuZGVyZXIpOwpAQCAtMzAzLDEz
ICszMDMsMTQgQEAgdm9pZCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlUmVuZGVyZXJGb3JU
ZXh0SWZOZWVkZWQoKQogICAgICAgICBtX3N0eWxlID0gcGFyZW50UmVuZGVyZXItPnN0eWxlKCk7
CiAKICAgICBpZiAoIXRleHROb2RlLT50ZXh0UmVuZGVyZXJJc05lZWRlZCgqdGhpcykpCi0gICAg
ICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgUmVuZGVyVGV4dCogbmV3
UmVuZGVyZXIgPSB0ZXh0Tm9kZS0+Y3JlYXRlVGV4dFJlbmRlcmVyKGRvY3VtZW50LT5yZW5kZXJB
cmVuYSgpLCBtX3N0eWxlLmdldCgpKTsKICAgICBpZiAoIW5ld1JlbmRlcmVyKQotICAgICAgICBy
ZXR1cm47CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmICghcGFyZW50UmVuZGVyZXItPmlz
Q2hpbGRBbGxvd2VkKG5ld1JlbmRlcmVyLCBtX3N0eWxlLmdldCgpKSkgewogICAgICAgICBuZXdS
ZW5kZXJlci0+ZGVzdHJveSgpOwotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgUmVuZGVyT2JqZWN0IGFscmVhZHkga25v
d3MgaXQgaXMgZ29pbmcgdG8gYmUgYWRkZWQgdG8gYSBSZW5kZXJGbG93VGhyZWFkIGJlZm9yZSB3
ZSBzZXQgdGhlIHN0eWxlCkBAIC0zMjEsNiArMzIyLDcgQEAgdm9pZCBOb2RlUmVuZGVyaW5nQ29u
dGV4dDo6Y3JlYXRlUmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQoKQogICAgIC8vIFBhcmVudCB0YWtl
cyBjYXJlIG9mIHRoZSBhbmltYXRpb25zLCBubyBuZWVkIHRvIGNhbGwgc2V0QW5pbWF0YWJsZVN0
eWxlLgogICAgIG5ld1JlbmRlcmVyLT5zZXRTdHlsZShtX3N0eWxlLnJlbGVhc2UoKSk7CiAgICAg
cGFyZW50UmVuZGVyZXItPmFkZENoaWxkKG5ld1JlbmRlcmVyLCBuZXh0UmVuZGVyZXIpOworICAg
IHJldHVybiB0cnVlOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5oCmluZGV4IGMwNzk3NzZkYzgyMDgyZDRkNWRmZjE1OTUyMTk4NTU1NTZmYmQxNmIuLmU5
NjVkNmFjYmY3NTZiODg0YzExNzQ4NWQwZWRmOTA0YzFlZjY4YjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAg
ICBOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiwgUmVuZGVyU3R5bGUqKTsKICAgICB+Tm9kZVJl
bmRlcmluZ0NvbnRleHQoKTsKIAotICAgIHZvaWQgY3JlYXRlUmVuZGVyZXJGb3JUZXh0SWZOZWVk
ZWQoKTsKKyAgICBib29sIGNyZWF0ZVJlbmRlcmVyRm9yVGV4dElmTmVlZGVkKCk7CiAgICAgdm9p
ZCBjcmVhdGVSZW5kZXJlckZvckVsZW1lbnRJZk5lZWRlZCgpOwogCiAgICAgTm9kZSogbm9kZSgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IGRiZjM1YTQ1ZTNjMTNkN2U0NThlNGQ3NjFlN2Qy
YmZmZDU2NDRiMGUuLjQ4ZmJhNzdhNzMxNmU3ZTY1NThkYmNiMWMyYTJhOGJmYWIxNTMzZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5jcHAKQEAgLTI1OCw5ICsyNTgsOSBAQCBzdGF0aWMgYm9vbCBpc1NWR1RleHQo
VGV4dCogdGV4dCkKIH0KICNlbmRpZgogCi12b2lkIFRleHQ6OmNyZWF0ZVRleHRSZW5kZXJlcklm
TmVlZGVkKCkKK2Jvb2wgVGV4dDo6Y3JlYXRlVGV4dFJlbmRlcmVySWZOZWVkZWQoKQogewotICAg
IE5vZGVSZW5kZXJpbmdDb250ZXh0KHRoaXMpLmNyZWF0ZVJlbmRlcmVyRm9yVGV4dElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIE5vZGVSZW5kZXJpbmdDb250ZXh0KHRoaXMpLmNyZWF0ZVJlbmRlcmVy
Rm9yVGV4dElmTmVlZGVkKCk7CiB9CiAKIFJlbmRlclRleHQqIFRleHQ6OmNyZWF0ZVRleHRSZW5k
ZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCmlu
ZGV4IDY3YWIxNjhjMGFjZGQ0YmY0NDQ0MjEwZmVlM2IzODllMDhiYTUyZjkuLmFjOTA3MGNiNjM0
YjNmODgyOGViYWUxOTFiMzc5ZGRkMzA1MWNkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaApAQCAtNDUsNyArNDUs
NyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxUZXh0PiByZXBsYWNlV2hvbGVUZXh0KGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAKICAgICB2b2lkIHJlY2FsY1RleHRTdHls
ZShTdHlsZUNoYW5nZSk7Ci0gICAgdm9pZCBjcmVhdGVUZXh0UmVuZGVyZXJJZk5lZWRlZCgpOwor
ICAgIGJvb2wgY3JlYXRlVGV4dFJlbmRlcmVySWZOZWVkZWQoKTsKICAgICBib29sIHRleHRSZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CiAgICAgUmVuZGVyVGV4
dCogY3JlYXRlVGV4dFJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2
b2lkIHVwZGF0ZVRleHRSZW5kZXJlcih1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkRGF0YSwgdW5z
aWduZWQgbGVuZ3RoT2ZSZXBsYWNlZERhdGEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190554</attachid>
            <date>2013-02-27 10:46:03 -0800</date>
            <delta_ts>2013-02-27 11:07:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110786-20130227104217.patch</filename>
            <type>text/plain</type>
            <size>8467</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjMDcyNDQ0ZTgwNDQ2
YWUzYmNlYjM4OTJjYjAyMDRiMDE3MWI4NS4uMmFhNGZiZTUxOGU2NjU0MjI2MWJlNzhhMTY2OTFj
MWQ1YzVmOGI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAyLTI3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBQZXJmb3JtYW5jZSBp
c3N1ZXMgYWRkaW5nIGxhcmdlIG51bWJlcnMgb2Ygd2hpdGVzcGFjZSB0ZXh0IG5vZGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA3ODYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAvLyBUaGlzIHRha2Vz
IDk4IG1zZWMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTUwMDsgKytpKSB7CisgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgn
eCcpKTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCd4JykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQnV0
IHRoaXMgdGFrZXMgMjUgc2Vjb25kcy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNTAw
OyArK2kpIHsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCcgJykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAnKSk7CisgICAgICAgIH0KKwor
ICAgICAgICBUaGUgcmVhc29uIGlzIHRoYXQgYmVjYXVzZSB3ZSBkbyBub3QgY3JlYXRlIHJlbmRl
cmVycyBmb3IgZW1wdHkgdGV4dAorICAgICAgICBub2Rlcywgd2UgYXJlIGhpdHRpbmcgdGhlIHdv
cnN0IE8oTl4yKSBjYXNlIGluIE5vZGU6OmF0dGFjaCgpLgorICAgICAgICAoU2VlIHRoZSBGSVhN
RSBpbiBOb2RlOjphdHRhY2goKS4pCisKKyAgICAgICAgVG8gZml4IHRoZSBpc3N1ZSwgd2UgbmVl
ZCB0byBkaXN0aW5ndWlzaCB0aGUgZm9sbG93aW5nIHR3byBjYXNlczoKKworICAgICAgICAgIC0g
d2UgaGF2ZSBub3QgeWV0IHRyaWVkIHRvIGNyZWF0ZSBhIHJlbmRlcmVyIGZvciB0aGUgdGV4dCBu
b2RlLgorICAgICAgICAgIC0gd2UgaGF2ZSB0cmllZCB0byBjcmVhdGUgYSByZW5kZXJlciBmb3Ig
dGhlIHRleHQgbm9kZSBhbmQKKyAgICAgICAgICAgIGRlY2lkZWQgbm90IHRvIGNyZWF0ZSBhIHJl
bmRlcmVyLgorCisgICAgICAgIFRvIGRpc3Rpbmd1aXNoIHRoZSB0d28gc2l0dWF0aW9ucywgdGhp
cyBwYXRjaCBhZGRzIGFuIEludGVudGlvbmFsbHlXaXRob3V0UmVuZGVyZXIKKyAgICAgICAgZmxh
ZyBhbmQgdXNlcyB0aGUgZmxhZyBmb3IgdGV4dCBub2Rlcy4gVGhlIHBhdGNoIHJlZHVjZXMgdGhl
IHdvcnN0LWNhc2UKKyAgICAgICAgbG9vcCBjb3N0IGZyb20gTyhOXjIpIHRvIE8oTikuCisKKyAg
ICAgICAgUGVyZm9ybWFuY2UgdGVzdHM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1l
bnQuY2dpP2lkPTE5MDU0NQorICAgICAgICBSZXN1bHRzIGluIENocm9taXVtL0xpbnV4OiAyNS4z
IHNlYyA9PiA5OCBtc2VjCisKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlOjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGV0YWNoKToKKyAg
ICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNUZXh0Tm9kZUlu
dGVudGlvbmFsbHlXaXRob3V0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0
VGV4dE5vZGVJbnRlbnRpb25hbGx5V2l0aG91dFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmNsZWFyVGV4dE5vZGVJbnRlbnRpb25hbGx5V2l0aG91dFJlbmRlcmVyKToKKyAgICAg
ICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVJlbmRlcmVyRm9yVGV4dElmTmVlZGVkKToKKyAgICAg
ICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKE5vZGVSZW5kZXJpbmdD
b250ZXh0KToKKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
OjpjcmVhdGVUZXh0UmVuZGVyZXJJZk5lZWRlZCk6CisgICAgICAgICogZG9tL1RleHQuaDoKKyAg
ICAgICAgKFRleHQpOgorCiAyMDEzLTAyLTI1ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbVjhdIEdlbmVyYXRlIGEgd3JhcHBlciBmdW5jdGlvbiBmb3Ig
UmVwbGFjZWFibGVBdHRyU2V0dGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBlN2M0NjUwMWQyMTlh
MWQ0OGRiOGJiOWNjMGQzMGRjYTNkOTllYzM0Li5mYWUxMTNjNzRlYjk2Njk5N2NkYmJkZTFhZjUz
OTUzYmQ0NTM4ODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMDY4LDEyICsxMDY4LDE4IEBAIHZv
aWQgTm9kZTo6YXR0YWNoKCkKICAgICBBU1NFUlQoIWF0dGFjaGVkKCkpOwogICAgIEFTU0VSVCgh
cmVuZGVyZXIoKSB8fCAocmVuZGVyZXIoKS0+c3R5bGUoKSAmJiByZW5kZXJlcigpLT5wYXJlbnQo
KSkpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgTyhOXjIpIGZvciB0aGUgaW5uZXJIVE1MIGNh
c2UsIHdoZXJlIGFsbCBjaGlsZHJlbiBhcmUgcmVwbGFjZWQgYXQgb25jZSAoYW5kIG5vdCBhdHRh
Y2hlZCkuCiAgICAgLy8gSWYgdGhpcyBub2RlIGdvdCBhIHJlbmRlcmVyIGl0IG1heSBiZSB0aGUg
cHJldmlvdXNSZW5kZXJlcigpIG9mIHNpYmxpbmcgdGV4dCBub2RlcyBhbmQgdGh1cyBhZmZlY3Qg
dGhlCiAgICAgLy8gcmVzdWx0IG9mIFRleHQ6OnRleHRSZW5kZXJlcklzTmVlZGVkKCkgZm9yIHRo
b3NlIG5vZGVzLgorICAgIC8vCisgICAgLy8gRklYTUU6IENhbGwgc2V0SW50ZW50aW9uYWxseVdp
dGhvdXRSZW5kZXJlcigpIGZvciBub2RlcyBmb3Igd2hpY2gKKyAgICAvLyB3ZSBoYXZlIHRyaWVk
IHRvIGNyZWF0ZSBhIHJlbmRlcmVyIGJ1dCBkZWNpZGVkIG5vdCB0byBjcmVhdGUgYQorICAgIC8v
IHJlbmRlcmVyIChlLmcuIGRpc3BsYXk6bm9uZSBjb250ZW50KS4gV2l0aG91dCB0aGUgY2FsbCwg
d2Ugd2lsbCBlbmQKKyAgICAvLyB1cCBydW5uaW5nIHRoZSBsb29wIE8oTl4yKSB0aW1lcyBpbiBh
IGNhc2Ugd2hlcmUgYWxsIG9mIHRoZSBjaGlsZHJlbgorICAgIC8vIGFyZSBub2RlcyB3aXRob3V0
IHJlbmRlcmVycy4gQ3VycmVudGx5IHdlIGNhbGwgc2V0SW50ZW50aW9uYWxseVdpdGhvdXRSZW5k
ZXJlcigpCisgICAgLy8gY29ycmVjdGx5IG9ubHkgZm9yIHRleHQgbm9kZXMuCiAgICAgaWYgKHJl
bmRlcmVyKCkpIHsKICAgICAgICAgZm9yIChOb2RlKiBuZXh0ID0gbmV4dFNpYmxpbmcoKTsgbmV4
dDsgbmV4dCA9IG5leHQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgICAgIGlmIChuZXh0LT5y
ZW5kZXJlcigpKQorICAgICAgICAgICAgaWYgKG5leHQtPnJlbmRlcmVyKCkgfHwgbmV4dC0+aXNJ
bnRlbnRpb25hbGx5V2l0aG91dFJlbmRlcmVyKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBpZiAoIW5leHQtPmF0dGFjaGVkKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7
ICAvLyBBc3N1bWUgdGhpcyBtZWFucyBub25lIG9mIHRoZSBmb2xsb3dpbmcgc2libGluZ3MgYXJl
IGF0dGFjaGVkLgpAQCAtMTEwOSw2ICsxMTE1LDcgQEAgdm9pZCBOb2RlOjpkZXRhY2goKQogICAg
IGlmIChyZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlcigpLT5kZXN0cm95QW5kQ2xlYW51cEFu
b255bW91c1dyYXBwZXJzKCk7CiAgICAgc2V0UmVuZGVyZXIoMCk7CisgICAgY2xlYXJJbnRlbnRp
b25hbGx5V2l0aG91dFJlbmRlcmVyKCk7CiAKICAgICBEb2N1bWVudCogZG9jID0gZG9jdW1lbnQo
KTsKICAgICBpZiAoaXNVc2VyQWN0aW9uRWxlbWVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBhODM2
YmYwNmM3MDZlMDRjMzYyMzE3MWNhYTQxYjZjYzdkMDFkZmRkLi5lZGM5ZWQyZDBmNTA1MzIyNWIx
NzNmODJmMDdmMzEyMDkzYjY0NmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTM2Miw2ICszNjIsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRIYXNOYW1lKGJvb2wgZikgeyBBU1NFUlQoIWlzVGV4dE5vZGUo
KSk7IHNldEZsYWcoZiwgSGFzTmFtZU9ySXNFZGl0aW5nVGV4dEZsYWcpOyB9CiAgICAgdm9pZCBz
ZXRDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB7IHNldEZsYWcoQ2hpbGROZWVkc1N0eWxlUmVjYWxj
RmxhZyk7IH0KICAgICB2b2lkIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgeyBjbGVhckZs
YWcoQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyk7IH0KKyAgICBib29sIGlzSW50ZW50aW9uYWxs
eVdpdGhvdXRSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSW50ZW50aW9uYWxseVdp
dGhvdXRSZW5kZXJlckZsYWcpOyB9CisgICAgdm9pZCBzZXRJbnRlbnRpb25hbGx5V2l0aG91dFJl
bmRlcmVyKCkgeyBzZXRGbGFnKEludGVudGlvbmFsbHlXaXRob3V0UmVuZGVyZXJGbGFnKTsgfQor
ICAgIHZvaWQgY2xlYXJJbnRlbnRpb25hbGx5V2l0aG91dFJlbmRlcmVyKCkgeyBjbGVhckZsYWco
SW50ZW50aW9uYWxseVdpdGhvdXRSZW5kZXJlckZsYWcpOyB9CiAKICAgICB2b2lkIHNldE5lZWRz
U3R5bGVSZWNhbGMoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUgPSBGdWxsU3R5bGVDaGFuZ2Up
OwogICAgIHZvaWQgY2xlYXJOZWVkc1N0eWxlUmVjYWxjKCkgeyBtX25vZGVGbGFncyAmPSB+U3R5
bGVDaGFuZ2VNYXNrOyB9CkBAIC03MjUsNiArNzI4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAg
ICAgICBOZWVkc1NoYWRvd1RyZWVXYWxrZXJGbGFnID0gMSA8PCAyNSwKICAgICAgICAgSXNJblNo
YWRvd1RyZWVGbGFnID0gMSA8PCAyNiwKKyAgICAgICAgSW50ZW50aW9uYWxseVdpdGhvdXRSZW5k
ZXJlckZsYWcgPSAxIDw8IDI3LAogCiAgICAgICAgIERlZmF1bHROb2RlRmxhZ3MgPSBJc1BhcnNp
bmdDaGlsZHJlbkZpbmlzaGVkRmxhZwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
ZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBiYWU1MWE3NGI4YmI3MmIyYzE3YjYzYWM3MmY2NTkw
NTRjZjk1ZDA3Li4wYTMyZDk1ZDM3MWVkY2Q3ZDM1YjU0NDFlMGEzZmVhYWI1ZTEzZTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI4NCwxNCAr
Mjg0LDE0IEBAIHZvaWQgTm9kZVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVJlbmRlcmVyRm9yRWxl
bWVudElmTmVlZGVkKCkKICAgICBwYXJlbnRSZW5kZXJlci0+YWRkQ2hpbGQobmV3UmVuZGVyZXIs
IG5leHRSZW5kZXJlcik7CiB9CiAKLXZvaWQgTm9kZVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVJl
bmRlcmVyRm9yVGV4dElmTmVlZGVkKCkKK2Jvb2wgTm9kZVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0
ZVJlbmRlcmVyRm9yVGV4dElmTmVlZGVkKCkKIHsKICAgICBBU1NFUlQoIW1fbm9kZS0+cmVuZGVy
ZXIoKSk7CiAKICAgICBUZXh0KiB0ZXh0Tm9kZSA9IHRvVGV4dChtX25vZGUpOwogCiAgICAgaWYg
KCFzaG91bGRDcmVhdGVSZW5kZXJlcigpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSB0aGlzLT5wYXJl
bnRSZW5kZXJlcigpOwogICAgIEFTU0VSVChwYXJlbnRSZW5kZXJlcik7CkBAIC0zMDMsMTMgKzMw
MywxNCBAQCB2b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZvclRleHRJ
Zk5lZWRlZCgpCiAgICAgICAgIG1fc3R5bGUgPSBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKTsKIAog
ICAgIGlmICghdGV4dE5vZGUtPnRleHRSZW5kZXJlcklzTmVlZGVkKCp0aGlzKSkKLSAgICAgICAg
cmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBSZW5kZXJUZXh0KiBuZXdSZW5k
ZXJlciA9IHRleHROb2RlLT5jcmVhdGVUZXh0UmVuZGVyZXIoZG9jdW1lbnQtPnJlbmRlckFyZW5h
KCksIG1fc3R5bGUuZ2V0KCkpOwogICAgIGlmICghbmV3UmVuZGVyZXIpCi0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKCFwYXJlbnRSZW5kZXJlci0+aXNDaGls
ZEFsbG93ZWQobmV3UmVuZGVyZXIsIG1fc3R5bGUuZ2V0KCkpKSB7CiAgICAgICAgIG5ld1JlbmRl
cmVyLT5kZXN0cm95KCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBSZW5kZXJPYmplY3QgYWxyZWFkeSBrbm93cyBp
dCBpcyBnb2luZyB0byBiZSBhZGRlZCB0byBhIFJlbmRlckZsb3dUaHJlYWQgYmVmb3JlIHdlIHNl
dCB0aGUgc3R5bGUKQEAgLTMyMSw2ICszMjIsNyBAQCB2b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0
OjpjcmVhdGVSZW5kZXJlckZvclRleHRJZk5lZWRlZCgpCiAgICAgLy8gUGFyZW50IHRha2VzIGNh
cmUgb2YgdGhlIGFuaW1hdGlvbnMsIG5vIG5lZWQgdG8gY2FsbCBzZXRBbmltYXRhYmxlU3R5bGUu
CiAgICAgbmV3UmVuZGVyZXItPnNldFN0eWxlKG1fc3R5bGUucmVsZWFzZSgpKTsKICAgICBwYXJl
bnRSZW5kZXJlci0+YWRkQ2hpbGQobmV3UmVuZGVyZXIsIG5leHRSZW5kZXJlcik7CisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmgKaW5kZXggYzA3OTc3NmRjODIwODJkNGQ1ZGZmMTU5NTIxOTg1NTU1NmZiZDE2Yi4uZTk2NWQ2
YWNiZjc1NmI4ODRjMTE3NDg1ZDBlZGY5MDRjMWVmNjhiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIE5v
ZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqLCBSZW5kZXJTdHlsZSopOwogICAgIH5Ob2RlUmVuZGVy
aW5nQ29udGV4dCgpOwogCi0gICAgdm9pZCBjcmVhdGVSZW5kZXJlckZvclRleHRJZk5lZWRlZCgp
OworICAgIGJvb2wgY3JlYXRlUmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQoKTsKICAgICB2b2lkIGNy
ZWF0ZVJlbmRlcmVyRm9yRWxlbWVudElmTmVlZGVkKCk7CiAKICAgICBOb2RlKiBub2RlKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVGV4dC5jcHAKaW5kZXggZGJmMzVhNDVlM2MxM2Q3ZTQ1OGU0ZDc2MWU3ZDJiZmZk
NTY0NGIwZS4uMGIyZWNlMzA0NzIwMWIxYTA4N2E5MDc5OTMzMzA3NjE0ZGM5MzAxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0LmNwcApAQCAtMjYwLDcgKzI2MCw4IEBAIHN0YXRpYyBib29sIGlzU1ZHVGV4dChUZXh0
KiB0ZXh0KQogCiB2b2lkIFRleHQ6OmNyZWF0ZVRleHRSZW5kZXJlcklmTmVlZGVkKCkKIHsKLSAg
ICBOb2RlUmVuZGVyaW5nQ29udGV4dCh0aGlzKS5jcmVhdGVSZW5kZXJlckZvclRleHRJZk5lZWRl
ZCgpOworICAgIGlmICghTm9kZVJlbmRlcmluZ0NvbnRleHQodGhpcykuY3JlYXRlUmVuZGVyZXJG
b3JUZXh0SWZOZWVkZWQoKSkKKyAgICAgICAgc2V0SW50ZW50aW9uYWxseVdpdGhvdXRSZW5kZXJl
cigpOwogfQogCiBSZW5kZXJUZXh0KiBUZXh0OjpjcmVhdGVUZXh0UmVuZGVyZXIoUmVuZGVyQXJl
bmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190557</attachid>
            <date>2013-02-27 11:07:56 -0800</date>
            <delta_ts>2013-02-28 10:15:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110786-20130227110409.patch</filename>
            <type>text/plain</type>
            <size>3299</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjMDcyNDQ0ZTgwNDQ2
YWUzYmNlYjM4OTJjYjAyMDRiMDE3MWI4NS4uOTEwMzc1OTdlOTk3ZDJkMTViMzJhNTM0MDUyZjg3
YWRmNjQzZDlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEzLTAyLTI3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBTdHlsZSByZWNhbGN1
bGF0aW9uIHRha2VzIHRvbyBsb25nIHdoZW4gYWRkaW5nIHdoaXRlc3BhY2UgdGV4dCBub2Rlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLy8gVGhpcyB0
YWtlcyA5OCBtc2VjLgorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDE1MDA7ICsraSkgewor
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ3gnKSk7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKSk7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgneCcpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IEJ1dCB0aGlzIHRha2VzIDI1IHNlY29uZHMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTUwMDsgKytpKSB7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgnICcpKTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJykpOworICAgICAgICB9
CisKKyAgICAgICAgVGhlIHJlYXNvbiBpcyB0aGF0IHdlIGRvIG5vdCBjcmVhdGUgcmVuZGVyZXJz
IGZvciBlbXB0eSB0ZXh0CisgICAgICAgIG5vZGVzIGFuZCB0aHVzIHdlIGFyZSBoaXR0aW5nIHRo
ZSB3b3JzdCBPKE5eMikgY2FzZSBpbiBOb2RlOjphdHRhY2goKS4KKyAgICAgICAgKFNlZSBGSVhN
RSBpbiBOb2RlOjphdHRhY2goKS4pCisKKyAgICAgICAgV2UgY2FuIGtpbGwgdGhlIE8oTl4yKSBj
YXNlIGJ5IGJhaWxpbmcgb3V0IHRoZSBsb29wIHdoZW4gd2UgZW5jb3VudGVyCisgICAgICAgIGEg
bm9kZSBmb3Igd2hpY2ggd2UgaW50ZW50aW9uYWxseSBkaWQgbm90IGNyZWF0ZSBhIHJlbmRlcmVy
LgorICAgICAgICBXZSBjYW4gY2hlY2sgaXQgd2l0aCAnaWYgKGF0dGFjaGVkKCkgJiYgIXJlbmRl
cmVyKCkpJywgYmVjYXVzZQorICAgICAgICAnYXR0YWNoZWQoKScgbWVhbnMgdGhhdCB3ZSBoYXZl
IHRyaWVkIHRvIGNyZWF0ZSBhIHJlbmRlcmVyIGJlZm9yZQorICAgICAgICBhbmQgJyFyZW5kZXJl
cigpJyBtZWFucyB0aGF0IHdlIGRpZCBub3QgY3JlYXRlIGEgcmVuZGVyZXIgdGhlbi4KKworICAg
ICAgICBQZXJmb3JtYW5jZSB0ZXN0czogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVu
dC5jZ2k/aWQ9MTkwNTQ1CisgICAgICAgIFJlc3VsdHMgaW4gQ2hyb21pdW0vTGludXg6IDI1LjMg
c2VjID0+IDk4IG1zZWMKKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmF0dGFjaCk6CisKIDIwMTMtMDItMjUgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gR2VuZXJhdGUgYSB3cmFwcGVyIGZ1bmN0aW9u
IGZvciBSZXBsYWNlYWJsZUF0dHJTZXR0ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGU3YzQ2NTAx
ZDIxOWExZDQ4ZGI4YmI5Y2MwZDMwZGNhM2Q5OWVjMzQuLmY4YTY0YTJiMTdkZmFlMjM2NWY4ZGY0
M2Q3NGQ1Y2RiZGM4N2M2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTEwNjgsMTUgKzEwNjgsMTgg
QEAgdm9pZCBOb2RlOjphdHRhY2goKQogICAgIEFTU0VSVCghYXR0YWNoZWQoKSk7CiAgICAgQVNT
RVJUKCFyZW5kZXJlcigpIHx8IChyZW5kZXJlcigpLT5zdHlsZSgpICYmIHJlbmRlcmVyKCktPnBh
cmVudCgpKSk7CiAKLSAgICAvLyBGSVhNRTogVGhpcyBpcyBPKE5eMikgZm9yIHRoZSBpbm5lckhU
TUwgY2FzZSwgd2hlcmUgYWxsIGNoaWxkcmVuIGFyZSByZXBsYWNlZCBhdCBvbmNlIChhbmQgbm90
IGF0dGFjaGVkKS4KICAgICAvLyBJZiB0aGlzIG5vZGUgZ290IGEgcmVuZGVyZXIgaXQgbWF5IGJl
IHRoZSBwcmV2aW91c1JlbmRlcmVyKCkgb2Ygc2libGluZyB0ZXh0IG5vZGVzIGFuZCB0aHVzIGFm
ZmVjdCB0aGUKICAgICAvLyByZXN1bHQgb2YgVGV4dDo6dGV4dFJlbmRlcmVySXNOZWVkZWQoKSBm
b3IgdGhvc2Ugbm9kZXMuCiAgICAgaWYgKHJlbmRlcmVyKCkpIHsKICAgICAgICAgZm9yIChOb2Rl
KiBuZXh0ID0gbmV4dFNpYmxpbmcoKTsgbmV4dDsgbmV4dCA9IG5leHQtPm5leHRTaWJsaW5nKCkp
IHsKICAgICAgICAgICAgIGlmIChuZXh0LT5yZW5kZXJlcigpKQogICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHdlIGludGVudGlvbmFsbHkgZGlk
IG5vdCBjcmVhdGUgYSByZW5kZXJlciBmb3IgdGhlIG5vZGUuCisgICAgICAgICAgICBpZiAobmV4
dC0+YXR0YWNoZWQoKSAmJiAhbmV4dC0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgbm9uZSBvZiB0aGUgZm9sbG93aW5nIHNpYmxp
bmdzIGFyZSBhdHRhY2hlZC4KICAgICAgICAgICAgIGlmICghbmV4dC0+YXR0YWNoZWQoKSkKLSAg
ICAgICAgICAgICAgICBicmVhazsgIC8vIEFzc3VtZSB0aGlzIG1lYW5zIG5vbmUgb2YgdGhlIGZv
bGxvd2luZyBzaWJsaW5ncyBhcmUgYXR0YWNoZWQuCisgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBpZiAobmV4dC0+aXNUZXh0Tm9kZSgpKQogICAgICAgICAgICAgICAgIHRvVGV4
dChuZXh0KS0+Y3JlYXRlVGV4dFJlbmRlcmVySWZOZWVkZWQoKTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190747</attachid>
            <date>2013-02-28 10:15:41 -0800</date>
            <delta_ts>2013-02-28 11:51:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110786-20130228101153.patch</filename>
            <type>text/plain</type>
            <size>7891</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjMDcyNDQ0ZTgwNDQ2
YWUzYmNlYjM4OTJjYjAyMDRiMDE3MWI4NS4uZjQ4ZmEyNTVmYmYyNjViM2Y5MmIxNWU0Y2M2YTIx
ZThmY2EyYjUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAyLTI4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBTdHlsZSByZWNhbGN1
bGF0aW9uIHRha2VzIHRvbyBsb25nIHdoZW4gYWRkaW5nIHdoaXRlc3BhY2UgdGV4dCBub2Rlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLy8gVGhpcyB0
YWtlcyAyMTYgbXNlYy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNTAwOyArK2kpIHsK
KyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCd4JykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2JykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ3gnKSk7CisgICAgICAgIH0KKworICAgICAgICAv
LyBCdXQgdGhpcyB0YWtlcyAyNS4zIHNlY29uZHMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTUwMDsgKytpKSB7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgnICcpKTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJykpOworICAgICAg
ICB9CisKKyAgICAgICAgVGhlIHJlYXNvbiBpcyB0aGF0IHdlIGRvIG5vdCBjcmVhdGUgcmVuZGVy
ZXJzIGZvciBlbXB0eSB0ZXh0CisgICAgICAgIG5vZGVzIGFuZCB0aHVzIHdlIGFyZSBoaXR0aW5n
IHRoZSB3b3JzdCBPKE5eMikgY2FzZSBpbiBOb2RlOjphdHRhY2goKS4KKyAgICAgICAgKFNlZSBG
SVhNRSBpbiBOb2RlOjphdHRhY2goKS4pCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgbG9n
aWMgdG8gYmFpbCBvdXQgdGhlIGxvb3AgdG8gYXZvaWQgdGhlIE8oTl4yKSBjYXNlLgorICAgICAg
ICBTcGVjaWZpY2FsbHksIHRoZSBwYXRjaCBiYWlscyBvdXQgdGhlIGxvb3AgaWYgd2UgZW5jb3Vu
dGVyIGEgdGV4dCBub2RlCisgICAgICAgIGZvciB3aGljaCB3ZSBhZ2FpbiBkZWNpZGVkIG5vdCB0
byBjcmVhdGUgYSByZW5kZXJlci4gVGhpcyBiYWlsIG91dCBpcworICAgICAgICByZWFzb25hYmxl
IGJlY2F1c2UgdGhlIGZhY3QgdGhhdCB3ZSBhZ2FpbiBkZWNpZGVkIG5vdCB0byBjcmVhdGUgYSBy
ZW5kZXJlcgorICAgICAgICBmb3IgdGhlIHRleHQgbm9kZSBpbmRpY2F0ZXMgdGhhdCB0aGVyZSB3
aWxsIGJlIG5vIGFmZmVjdCBvZiB0aGUgcmVzdWx0CisgICAgICAgIG9mIFRleHQ6OnRleHRSZW5k
ZXJlcklzTmVlZGVkKCkgb2YgdGhlIHJlc3Qgb2YgdGhlIHNpYmxpbmcgbm9kZXMuCisKKyAgICAg
ICAgUGVyZm9ybWFuY2UgdGVzdDogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5j
Z2k/aWQ9MTkwNTQ1CisgICAgICAgIFBlcmZvcm1hbmNlIHJlc3VsdCBpbiBDaHJvbWl1bS9MaW51
eDogMjUuMyBzZWMgPT4gNDggbXNlYyAhCisKKyAgICAgICAgVGVzdDogZmFzdC9keW5hbWljL2Ny
ZWF0ZS1yZW5kZXJlci1mb3Itd2hpdGVzcGFjZS1vbmx5LXRleHQuaHRtbAorICAgICAgICBUaGUg
bG9vcCB3YXMgaW50cm9kdWNlZCBpbiByMjkwNTQuIFdlIGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQK
KyAgICAgICAgYWxsIGxheW91dCB0ZXN0cyB0aGF0IHdlcmUgdXBkYXRlZCBpbiByMjkwNTQgcGFz
cyB3aXRoIHRoaXMgcGF0Y2guCisgICAgICAgIFNlZSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8yOTA1NC4KKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmF0dGFjaCk6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJl
ckZvclRleHRJZk5lZWRlZCk6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChOb2RlUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgICogZG9tL1RleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6Y3JlYXRlVGV4dFJlbmRlcmVySWZOZWVkZWQpOgor
ICAgICAgICAqIGRvbS9UZXh0Lmg6CisgICAgICAgIChUZXh0KToKKwogMjAxMy0wMi0yNSAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBHZW5lcmF0
ZSBhIHdyYXBwZXIgZnVuY3Rpb24gZm9yIFJlcGxhY2VhYmxlQXR0clNldHRlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKaW5kZXggZTdjNDY1MDFkMjE5YTFkNDhkYjhiYjljYzBkMzBkY2EzZDk5ZWMzNC4uOTI2
NGUwMWY3MGQ4ODA0YjYwMzIyYzkxNGQ0NjY4YzFkYWIzMTZhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApA
QCAtMTA2OCw3ICsxMDY4LDYgQEAgdm9pZCBOb2RlOjphdHRhY2goKQogICAgIEFTU0VSVCghYXR0
YWNoZWQoKSk7CiAgICAgQVNTRVJUKCFyZW5kZXJlcigpIHx8IChyZW5kZXJlcigpLT5zdHlsZSgp
ICYmIHJlbmRlcmVyKCktPnBhcmVudCgpKSk7CiAKLSAgICAvLyBGSVhNRTogVGhpcyBpcyBPKE5e
MikgZm9yIHRoZSBpbm5lckhUTUwgY2FzZSwgd2hlcmUgYWxsIGNoaWxkcmVuIGFyZSByZXBsYWNl
ZCBhdCBvbmNlIChhbmQgbm90IGF0dGFjaGVkKS4KICAgICAvLyBJZiB0aGlzIG5vZGUgZ290IGEg
cmVuZGVyZXIgaXQgbWF5IGJlIHRoZSBwcmV2aW91c1JlbmRlcmVyKCkgb2Ygc2libGluZyB0ZXh0
IG5vZGVzIGFuZCB0aHVzIGFmZmVjdCB0aGUKICAgICAvLyByZXN1bHQgb2YgVGV4dDo6dGV4dFJl
bmRlcmVySXNOZWVkZWQoKSBmb3IgdGhvc2Ugbm9kZXMuCiAgICAgaWYgKHJlbmRlcmVyKCkpIHsK
QEAgLTEwNzYsOSArMTA3NSwxNiBAQCB2b2lkIE5vZGU6OmF0dGFjaCgpCiAgICAgICAgICAgICBp
ZiAobmV4dC0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGlmICghbmV4dC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgICAgICBicmVhazsgIC8vIEFzc3Vt
ZSB0aGlzIG1lYW5zIG5vbmUgb2YgdGhlIGZvbGxvd2luZyBzaWJsaW5ncyBhcmUgYXR0YWNoZWQu
Ci0gICAgICAgICAgICBpZiAobmV4dC0+aXNUZXh0Tm9kZSgpKQotICAgICAgICAgICAgICAgIHRv
VGV4dChuZXh0KS0+Y3JlYXRlVGV4dFJlbmRlcmVySWZOZWVkZWQoKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsgLy8gQXNzdW1lIHRoaXMgbWVhbnMgbm9uZSBvZiB0aGUgZm9sbG93aW5nIHNpYmxp
bmdzIGFyZSBhdHRhY2hlZC4KKyAgICAgICAgICAgIGlmIChuZXh0LT5pc1RleHROb2RlKCkpIHsK
KyAgICAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCBuZXh0IGRvZXMgbm90IGhhdmUgYSBy
ZW5kZXJlci4KKyAgICAgICAgICAgICAgICBib29sIHJlbmRlcmVyTmVlZGVkID0gdG9UZXh0KG5l
eHQpLT5jcmVhdGVUZXh0UmVuZGVyZXJJZk5lZWRlZCgpOworICAgICAgICAgICAgICAgIC8vIElm
IHdlIGFnYWluIGRlY2lkZWQgbm90IHRvIGNyZWF0ZSBhIHJlbmRlcmVyIGZvciBuZXh0LCB3ZSBj
YW4gYmFpbCBvdXQgdGhlIGxvb3AsCisgICAgICAgICAgICAgICAgLy8gYmVjYXVzZSBpdCB3b24n
dCBhZmZlY3QgdGhlIHJlc3VsdCBvZiBUZXh0Ojp0ZXh0UmVuZGVyZXJJc05lZWRlZCgpIGZvciB0
aGUgcmVzdAorICAgICAgICAgICAgICAgIC8vIG9mIHNpYmxpbmcgbm9kZXMuCisgICAgICAgICAg
ICAgICAgaWYgKCFyZW5kZXJlck5lZWRlZCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGJhZTUxYTc0YjhiYjcyYjJjMTdiNjNhYzcyZjY1
OTA1NGNmOTVkMDcuLjI3ZDViMTMzMTQwMzBlYzEwZjU1YjRmMzhhZGUyOWZhNWM0ZDdhOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjg0LDE0
ICsyODQsMTQgQEAgdm9pZCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlUmVuZGVyZXJGb3JF
bGVtZW50SWZOZWVkZWQoKQogICAgIHBhcmVudFJlbmRlcmVyLT5hZGRDaGlsZChuZXdSZW5kZXJl
ciwgbmV4dFJlbmRlcmVyKTsKIH0KIAotdm9pZCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRl
UmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQoKQorYm9vbCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3Jl
YXRlUmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQoKQogewogICAgIEFTU0VSVCghbV9ub2RlLT5yZW5k
ZXJlcigpKTsKIAogICAgIFRleHQqIHRleHROb2RlID0gdG9UZXh0KG1fbm9kZSk7CiAKICAgICBp
ZiAoIXNob3VsZENyZWF0ZVJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlciA9IHRoaXMtPnBh
cmVudFJlbmRlcmVyKCk7CiAgICAgQVNTRVJUKHBhcmVudFJlbmRlcmVyKTsKQEAgLTMwMywxMyAr
MzAzLDEzIEBAIHZvaWQgTm9kZVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVJlbmRlcmVyRm9yVGV4
dElmTmVlZGVkKCkKICAgICAgICAgbV9zdHlsZSA9IHBhcmVudFJlbmRlcmVyLT5zdHlsZSgpOwog
CiAgICAgaWYgKCF0ZXh0Tm9kZS0+dGV4dFJlbmRlcmVySXNOZWVkZWQoKnRoaXMpKQotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBSZW5kZXJUZXh0KiBuZXdSZW5k
ZXJlciA9IHRleHROb2RlLT5jcmVhdGVUZXh0UmVuZGVyZXIoZG9jdW1lbnQtPnJlbmRlckFyZW5h
KCksIG1fc3R5bGUuZ2V0KCkpOwogICAgIGlmICghbmV3UmVuZGVyZXIpCi0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKCFwYXJlbnRSZW5kZXJlci0+aXNDaGls
ZEFsbG93ZWQobmV3UmVuZGVyZXIsIG1fc3R5bGUuZ2V0KCkpKSB7CiAgICAgICAgIG5ld1JlbmRl
cmVyLT5kZXN0cm95KCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBSZW5kZXJPYmplY3QgYWxyZWFkeSBrbm93cyBp
dCBpcyBnb2luZyB0byBiZSBhZGRlZCB0byBhIFJlbmRlckZsb3dUaHJlYWQgYmVmb3JlIHdlIHNl
dCB0aGUgc3R5bGUKQEAgLTMyMSw2ICszMjEsNyBAQCB2b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0
OjpjcmVhdGVSZW5kZXJlckZvclRleHRJZk5lZWRlZCgpCiAgICAgLy8gUGFyZW50IHRha2VzIGNh
cmUgb2YgdGhlIGFuaW1hdGlvbnMsIG5vIG5lZWQgdG8gY2FsbCBzZXRBbmltYXRhYmxlU3R5bGUu
CiAgICAgbmV3UmVuZGVyZXItPnNldFN0eWxlKG1fc3R5bGUucmVsZWFzZSgpKTsKICAgICBwYXJl
bnRSZW5kZXJlci0+YWRkQ2hpbGQobmV3UmVuZGVyZXIsIG5leHRSZW5kZXJlcik7CisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmgKaW5kZXggYzA3OTc3NmRjODIwODJkNGQ1ZGZmMTU5NTIxOTg1NTU1NmZiZDE2Yi4uZTk2NWQ2
YWNiZjc1NmI4ODRjMTE3NDg1ZDBlZGY5MDRjMWVmNjhiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIE5v
ZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqLCBSZW5kZXJTdHlsZSopOwogICAgIH5Ob2RlUmVuZGVy
aW5nQ29udGV4dCgpOwogCi0gICAgdm9pZCBjcmVhdGVSZW5kZXJlckZvclRleHRJZk5lZWRlZCgp
OworICAgIGJvb2wgY3JlYXRlUmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQoKTsKICAgICB2b2lkIGNy
ZWF0ZVJlbmRlcmVyRm9yRWxlbWVudElmTmVlZGVkKCk7CiAKICAgICBOb2RlKiBub2RlKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVGV4dC5jcHAKaW5kZXggZGJmMzVhNDVlM2MxM2Q3ZTQ1OGU0ZDc2MWU3ZDJiZmZk
NTY0NGIwZS4uNDhmYmE3N2E3MzE2ZTdlNjU1OGRiY2IxYzJhMmE4YmZhYjE1MzNmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0LmNwcApAQCAtMjU4LDkgKzI1OCw5IEBAIHN0YXRpYyBib29sIGlzU1ZHVGV4dChUZXh0
KiB0ZXh0KQogfQogI2VuZGlmCiAKLXZvaWQgVGV4dDo6Y3JlYXRlVGV4dFJlbmRlcmVySWZOZWVk
ZWQoKQorYm9vbCBUZXh0OjpjcmVhdGVUZXh0UmVuZGVyZXJJZk5lZWRlZCgpCiB7Ci0gICAgTm9k
ZVJlbmRlcmluZ0NvbnRleHQodGhpcykuY3JlYXRlUmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQoKTsK
KyAgICByZXR1cm4gTm9kZVJlbmRlcmluZ0NvbnRleHQodGhpcykuY3JlYXRlUmVuZGVyZXJGb3JU
ZXh0SWZOZWVkZWQoKTsKIH0KIAogUmVuZGVyVGV4dCogVGV4dDo6Y3JlYXRlVGV4dFJlbmRlcmVy
KFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKaW5kZXgg
NjdhYjE2OGMwYWNkZDRiZjQ0NDQyMTBmZWUzYjM4OWUwOGJhNTJmOS4uYWM5MDcwY2I2MzRiM2Y4
ODI4ZWJhZTE5MWIzNzlkZGQzMDUxY2Q3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1RleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCkBAIC00NSw3ICs0NSw3IEBA
IHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFRleHQ+IHJlcGxhY2VXaG9sZVRleHQoY29uc3QgU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIAogICAgIHZvaWQgcmVjYWxjVGV4dFN0eWxlKFN0
eWxlQ2hhbmdlKTsKLSAgICB2b2lkIGNyZWF0ZVRleHRSZW5kZXJlcklmTmVlZGVkKCk7CisgICAg
Ym9vbCBjcmVhdGVUZXh0UmVuZGVyZXJJZk5lZWRlZCgpOwogICAgIGJvb2wgdGV4dFJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsKICAgICBSZW5kZXJUZXh0KiBj
cmVhdGVUZXh0UmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZvaWQg
dXBkYXRlVGV4dFJlbmRlcmVyKHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWREYXRhLCB1bnNpZ25l
ZCBsZW5ndGhPZlJlcGxhY2VkRGF0YSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190773</attachid>
            <date>2013-02-28 11:51:15 -0800</date>
            <delta_ts>2013-03-01 18:30:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110786-20130228114727.patch</filename>
            <type>text/plain</type>
            <size>11282</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjMDcyNDQ0ZTgwNDQ2
YWUzYmNlYjM4OTJjYjAyMDRiMDE3MWI4NS4uZjQ4ZmEyNTVmYmYyNjViM2Y5MmIxNWU0Y2M2YTIx
ZThmY2EyYjUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAyLTI4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBTdHlsZSByZWNhbGN1
bGF0aW9uIHRha2VzIHRvbyBsb25nIHdoZW4gYWRkaW5nIHdoaXRlc3BhY2UgdGV4dCBub2Rlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLy8gVGhpcyB0
YWtlcyAyMTYgbXNlYy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNTAwOyArK2kpIHsK
KyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCd4JykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2JykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ3gnKSk7CisgICAgICAgIH0KKworICAgICAgICAv
LyBCdXQgdGhpcyB0YWtlcyAyNS4zIHNlY29uZHMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTUwMDsgKytpKSB7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgnICcpKTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJykpOworICAgICAg
ICB9CisKKyAgICAgICAgVGhlIHJlYXNvbiBpcyB0aGF0IHdlIGRvIG5vdCBjcmVhdGUgcmVuZGVy
ZXJzIGZvciBlbXB0eSB0ZXh0CisgICAgICAgIG5vZGVzIGFuZCB0aHVzIHdlIGFyZSBoaXR0aW5n
IHRoZSB3b3JzdCBPKE5eMikgY2FzZSBpbiBOb2RlOjphdHRhY2goKS4KKyAgICAgICAgKFNlZSBG
SVhNRSBpbiBOb2RlOjphdHRhY2goKS4pCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgbG9n
aWMgdG8gYmFpbCBvdXQgdGhlIGxvb3AgdG8gYXZvaWQgdGhlIE8oTl4yKSBjYXNlLgorICAgICAg
ICBTcGVjaWZpY2FsbHksIHRoZSBwYXRjaCBiYWlscyBvdXQgdGhlIGxvb3AgaWYgd2UgZW5jb3Vu
dGVyIGEgdGV4dCBub2RlCisgICAgICAgIGZvciB3aGljaCB3ZSBhZ2FpbiBkZWNpZGVkIG5vdCB0
byBjcmVhdGUgYSByZW5kZXJlci4gVGhpcyBiYWlsIG91dCBpcworICAgICAgICByZWFzb25hYmxl
IGJlY2F1c2UgdGhlIGZhY3QgdGhhdCB3ZSBhZ2FpbiBkZWNpZGVkIG5vdCB0byBjcmVhdGUgYSBy
ZW5kZXJlcgorICAgICAgICBmb3IgdGhlIHRleHQgbm9kZSBpbmRpY2F0ZXMgdGhhdCB0aGVyZSB3
aWxsIGJlIG5vIGFmZmVjdCBvZiB0aGUgcmVzdWx0CisgICAgICAgIG9mIFRleHQ6OnRleHRSZW5k
ZXJlcklzTmVlZGVkKCkgb2YgdGhlIHJlc3Qgb2YgdGhlIHNpYmxpbmcgbm9kZXMuCisKKyAgICAg
ICAgUGVyZm9ybWFuY2UgdGVzdDogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5j
Z2k/aWQ9MTkwNTQ1CisgICAgICAgIFBlcmZvcm1hbmNlIHJlc3VsdCBpbiBDaHJvbWl1bS9MaW51
eDogMjUuMyBzZWMgPT4gNDggbXNlYyAhCisKKyAgICAgICAgVGVzdDogZmFzdC9keW5hbWljL2Ny
ZWF0ZS1yZW5kZXJlci1mb3Itd2hpdGVzcGFjZS1vbmx5LXRleHQuaHRtbAorICAgICAgICBUaGUg
bG9vcCB3YXMgaW50cm9kdWNlZCBpbiByMjkwNTQuIFdlIGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQK
KyAgICAgICAgYWxsIGxheW91dCB0ZXN0cyB0aGF0IHdlcmUgdXBkYXRlZCBpbiByMjkwNTQgcGFz
cyB3aXRoIHRoaXMgcGF0Y2guCisgICAgICAgIFNlZSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8yOTA1NC4KKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmF0dGFjaCk6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJl
ckZvclRleHRJZk5lZWRlZCk6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6
CisgICAgICAgIChOb2RlUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgICogZG9tL1RleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6Y3JlYXRlVGV4dFJlbmRlcmVySWZOZWVkZWQpOgor
ICAgICAgICAqIGRvbS9UZXh0Lmg6CisgICAgICAgIChUZXh0KToKKwogMjAxMy0wMi0yNSAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBHZW5lcmF0
ZSBhIHdyYXBwZXIgZnVuY3Rpb24gZm9yIFJlcGxhY2VhYmxlQXR0clNldHRlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKaW5kZXggZTdjNDY1MDFkMjE5YTFkNDhkYjhiYjljYzBkMzBkY2EzZDk5ZWMzNC4uZWJm
ZTFlM2MxOGQ2MjA4MDQ1NmM0OTVmNTFiNGMyZTU1NTg4NzliZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApA
QCAtMTA2OCw3ICsxMDY4LDYgQEAgdm9pZCBOb2RlOjphdHRhY2goKQogICAgIEFTU0VSVCghYXR0
YWNoZWQoKSk7CiAgICAgQVNTRVJUKCFyZW5kZXJlcigpIHx8IChyZW5kZXJlcigpLT5zdHlsZSgp
ICYmIHJlbmRlcmVyKCktPnBhcmVudCgpKSk7CiAKLSAgICAvLyBGSVhNRTogVGhpcyBpcyBPKE5e
MikgZm9yIHRoZSBpbm5lckhUTUwgY2FzZSwgd2hlcmUgYWxsIGNoaWxkcmVuIGFyZSByZXBsYWNl
ZCBhdCBvbmNlIChhbmQgbm90IGF0dGFjaGVkKS4KICAgICAvLyBJZiB0aGlzIG5vZGUgZ290IGEg
cmVuZGVyZXIgaXQgbWF5IGJlIHRoZSBwcmV2aW91c1JlbmRlcmVyKCkgb2Ygc2libGluZyB0ZXh0
IG5vZGVzIGFuZCB0aHVzIGFmZmVjdCB0aGUKICAgICAvLyByZXN1bHQgb2YgVGV4dDo6dGV4dFJl
bmRlcmVySXNOZWVkZWQoKSBmb3IgdGhvc2Ugbm9kZXMuCiAgICAgaWYgKHJlbmRlcmVyKCkpIHsK
QEAgLTEwNzYsOSArMTA3NSwxNSBAQCB2b2lkIE5vZGU6OmF0dGFjaCgpCiAgICAgICAgICAgICBp
ZiAobmV4dC0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGlmICghbmV4dC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgICAgICBicmVhazsgIC8vIEFzc3Vt
ZSB0aGlzIG1lYW5zIG5vbmUgb2YgdGhlIGZvbGxvd2luZyBzaWJsaW5ncyBhcmUgYXR0YWNoZWQu
Ci0gICAgICAgICAgICBpZiAobmV4dC0+aXNUZXh0Tm9kZSgpKQotICAgICAgICAgICAgICAgIHRv
VGV4dChuZXh0KS0+Y3JlYXRlVGV4dFJlbmRlcmVySWZOZWVkZWQoKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsgLy8gQXNzdW1lIHRoaXMgbWVhbnMgbm9uZSBvZiB0aGUgZm9sbG93aW5nIHNpYmxp
bmdzIGFyZSBhdHRhY2hlZC4KKyAgICAgICAgICAgIGlmIChuZXh0LT5pc1RleHROb2RlKCkpIHsK
KyAgICAgICAgICAgICAgICBBU1NFUlQoIW5leHQtPnJlbmRlcmVyKCkpOworICAgICAgICAgICAg
ICAgIC8vIElmIHdlIGFnYWluIGRlY2lkZWQgbm90IHRvIGNyZWF0ZSBhIHJlbmRlcmVyIGZvciBu
ZXh0LCB3ZSBjYW4gYmFpbCBvdXQgdGhlIGxvb3AsCisgICAgICAgICAgICAgICAgLy8gYmVjYXVz
ZSBpdCB3b24ndCBhZmZlY3QgdGhlIHJlc3VsdCBvZiBUZXh0Ojp0ZXh0UmVuZGVyZXJJc05lZWRl
ZCgpIGZvciB0aGUgcmVzdAorICAgICAgICAgICAgICAgIC8vIG9mIHNpYmxpbmcgbm9kZXMuCisg
ICAgICAgICAgICAgICAgaWYgKCF0b1RleHQobmV4dCktPmNyZWF0ZVRleHRSZW5kZXJlcklmTmVl
ZGVkKCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNw
cAppbmRleCBiYWU1MWE3NGI4YmI3MmIyYzE3YjYzYWM3MmY2NTkwNTRjZjk1ZDA3Li4yN2Q1YjEz
MzE0MDMwZWMxMGY1NWI0ZjM4YWRlMjlmYTVjNGQ3YTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI4NCwxNCArMjg0LDE0IEBAIHZvaWQgTm9k
ZVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVJlbmRlcmVyRm9yRWxlbWVudElmTmVlZGVkKCkKICAg
ICBwYXJlbnRSZW5kZXJlci0+YWRkQ2hpbGQobmV3UmVuZGVyZXIsIG5leHRSZW5kZXJlcik7CiB9
CiAKLXZvaWQgTm9kZVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVJlbmRlcmVyRm9yVGV4dElmTmVl
ZGVkKCkKK2Jvb2wgTm9kZVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVJlbmRlcmVyRm9yVGV4dElm
TmVlZGVkKCkKIHsKICAgICBBU1NFUlQoIW1fbm9kZS0+cmVuZGVyZXIoKSk7CiAKICAgICBUZXh0
KiB0ZXh0Tm9kZSA9IHRvVGV4dChtX25vZGUpOwogCiAgICAgaWYgKCFzaG91bGRDcmVhdGVSZW5k
ZXJlcigpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJl
bmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSB0aGlzLT5wYXJlbnRSZW5kZXJlcigpOwogICAg
IEFTU0VSVChwYXJlbnRSZW5kZXJlcik7CkBAIC0zMDMsMTMgKzMwMywxMyBAQCB2b2lkIE5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZvclRleHRJZk5lZWRlZCgpCiAgICAgICAg
IG1fc3R5bGUgPSBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKTsKIAogICAgIGlmICghdGV4dE5vZGUt
PnRleHRSZW5kZXJlcklzTmVlZGVkKCp0aGlzKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgUmVuZGVyVGV4dCogbmV3UmVuZGVyZXIgPSB0ZXh0Tm9kZS0+Y3Jl
YXRlVGV4dFJlbmRlcmVyKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpLCBtX3N0eWxlLmdldCgpKTsK
ICAgICBpZiAoIW5ld1JlbmRlcmVyKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0
cnVlOwogICAgIGlmICghcGFyZW50UmVuZGVyZXItPmlzQ2hpbGRBbGxvd2VkKG5ld1JlbmRlcmVy
LCBtX3N0eWxlLmdldCgpKSkgewogICAgICAgICBuZXdSZW5kZXJlci0+ZGVzdHJveSgpOwotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8vIE1ha2Ug
c3VyZSB0aGUgUmVuZGVyT2JqZWN0IGFscmVhZHkga25vd3MgaXQgaXMgZ29pbmcgdG8gYmUgYWRk
ZWQgdG8gYSBSZW5kZXJGbG93VGhyZWFkIGJlZm9yZSB3ZSBzZXQgdGhlIHN0eWxlCkBAIC0zMjEs
NiArMzIxLDcgQEAgdm9pZCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlUmVuZGVyZXJGb3JU
ZXh0SWZOZWVkZWQoKQogICAgIC8vIFBhcmVudCB0YWtlcyBjYXJlIG9mIHRoZSBhbmltYXRpb25z
LCBubyBuZWVkIHRvIGNhbGwgc2V0QW5pbWF0YWJsZVN0eWxlLgogICAgIG5ld1JlbmRlcmVyLT5z
ZXRTdHlsZShtX3N0eWxlLnJlbGVhc2UoKSk7CiAgICAgcGFyZW50UmVuZGVyZXItPmFkZENoaWxk
KG5ld1JlbmRlcmVyLCBuZXh0UmVuZGVyZXIpOworICAgIHJldHVybiB0cnVlOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGMwNzk3NzZkYzgy
MDgyZDRkNWRmZjE1OTUyMTk4NTU1NTZmYmQxNmIuLmU5NjVkNmFjYmY3NTZiODg0YzExNzQ4NWQw
ZWRmOTA0YzFlZjY4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4
dC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBOb2RlUmVuZGVyaW5nQ29udGV4dChO
b2RlKiwgUmVuZGVyU3R5bGUqKTsKICAgICB+Tm9kZVJlbmRlcmluZ0NvbnRleHQoKTsKIAotICAg
IHZvaWQgY3JlYXRlUmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQoKTsKKyAgICBib29sIGNyZWF0ZVJl
bmRlcmVyRm9yVGV4dElmTmVlZGVkKCk7CiAgICAgdm9pZCBjcmVhdGVSZW5kZXJlckZvckVsZW1l
bnRJZk5lZWRlZCgpOwogCiAgICAgTm9kZSogbm9kZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCmlu
ZGV4IGRiZjM1YTQ1ZTNjMTNkN2U0NThlNGQ3NjFlN2QyYmZmZDU2NDRiMGUuLjQ4ZmJhNzdhNzMx
NmU3ZTY1NThkYmNiMWMyYTJhOGJmYWIxNTMzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKQEAgLTI1OCw5
ICsyNTgsOSBAQCBzdGF0aWMgYm9vbCBpc1NWR1RleHQoVGV4dCogdGV4dCkKIH0KICNlbmRpZgog
Ci12b2lkIFRleHQ6OmNyZWF0ZVRleHRSZW5kZXJlcklmTmVlZGVkKCkKK2Jvb2wgVGV4dDo6Y3Jl
YXRlVGV4dFJlbmRlcmVySWZOZWVkZWQoKQogewotICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0KHRo
aXMpLmNyZWF0ZVJlbmRlcmVyRm9yVGV4dElmTmVlZGVkKCk7CisgICAgcmV0dXJuIE5vZGVSZW5k
ZXJpbmdDb250ZXh0KHRoaXMpLmNyZWF0ZVJlbmRlcmVyRm9yVGV4dElmTmVlZGVkKCk7CiB9CiAK
IFJlbmRlclRleHQqIFRleHQ6OmNyZWF0ZVRleHRSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEs
IFJlbmRlclN0eWxlKiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCmluZGV4IDY3YWIxNjhjMGFjZGQ0YmY0NDQ0
MjEwZmVlM2IzODllMDhiYTUyZjkuLmFjOTA3MGNiNjM0YjNmODgyOGViYWUxOTFiMzc5ZGRkMzA1
MWNkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RleHQuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1Jl
ZlB0cjxUZXh0PiByZXBsYWNlV2hvbGVUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICAKICAgICB2b2lkIHJlY2FsY1RleHRTdHlsZShTdHlsZUNoYW5nZSk7Ci0gICAgdm9p
ZCBjcmVhdGVUZXh0UmVuZGVyZXJJZk5lZWRlZCgpOworICAgIGJvb2wgY3JlYXRlVGV4dFJlbmRl
cmVySWZOZWVkZWQoKTsKICAgICBib29sIHRleHRSZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVS
ZW5kZXJpbmdDb250ZXh0Jik7CiAgICAgUmVuZGVyVGV4dCogY3JlYXRlVGV4dFJlbmRlcmVyKFJl
bmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2b2lkIHVwZGF0ZVRleHRSZW5kZXJlcih1
bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkRGF0YSwgdW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNlZERh
dGEpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhw
ZWN0ZWQudHh0CmluZGV4IDZmYWExMTA1MmU0MjAwNGRkZTg3M2ZhZWFkOTU3NjVlYTBlNDBkNzYu
LmFmZDIxMjMxZTdmOWY5ODAxODBkNGE0NTE3ZDY4OGEwYzFiMWY4NzcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQKQEAgLTks
NyArOSw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMjQsOCkgc2l6ZSA2MngxOQogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDI0LDgpIHdpZHRoIDQ6ICIgIgogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI4LDgpIHdpZHRo
IDU4OiAic3VtbWFyeSIKLSAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDgsNDIp
IHNpemUgNzY4eDAKICAgICAgICAgUmVuZGVyQmxvY2sge0RFVEFJTFN9IGF0ICg4LDQyKSBzaXpl
IDc2OHg2OCBbYm9yZGVyOiAoOHB4IHNvbGlkICM5OTU1NTUpXQogICAgICAgICAgIFJlbmRlckJs
b2NrIHtTVU1NQVJZfSBhdCAoOCw4KSBzaXplIDc1MngzNCBbYm9yZGVyOiAoOHB4IHNvbGlkICND
Qzk5OTkpXQogICAgICAgICAgICAgUmVuZGVyRGV0YWlsc01hcmtlciB7RElWfSBhdCAoOCwxMykg
c2l6ZSAxMHgxMDogZG93bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbWFjL2Zhc3QvaHRtbC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBl
Y3RlZC50eHQKaW5kZXggYzFmYzQ3ZmVhYjU3ZDc1N2Q1ZTU5OTU5OTAxZmEwYjExYTIzZTRiZS4u
MmI5MmIwYjk5NzA3NGM5ZjQ3OTAzMDFmNDQ3ODVjMGVlYjA5NWQ4ZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvaHRtbC9kZXRhaWxzLW5lc3RlZC0y
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFz
dC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0CkBAIC05LDcgKzksNiBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDI0LDgpIHNpemUgNjN4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNCw4KSB3aWR0aCA1
OiAiICIKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyOCw4KSB3aWR0aCA1OTogInN1bW1hcnki
Ci0gICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICg4LDQyKSBzaXplIDc2OHgwCiAg
ICAgICAgIFJlbmRlckJsb2NrIHtERVRBSUxTfSBhdCAoOCw0Mikgc2l6ZSA3Njh4NjggW2JvcmRl
cjogKDhweCBzb2xpZCAjOTk1NTU1KV0KICAgICAgICAgICBSZW5kZXJCbG9jayB7U1VNTUFSWX0g
YXQgKDgsOCkgc2l6ZSA3NTJ4MzQgW2JvcmRlcjogKDhweCBzb2xpZCAjQ0M5OTk5KV0KICAgICAg
ICAgICAgIFJlbmRlckRldGFpbHNNYXJrZXIge0RJVn0gYXQgKDgsMTIpIHNpemUgMTF4MTE6IGRv
d24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2h0
bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0CmluZGV4
IGIzMzZlZDA5YmVhZTM0M2Q3ZTFiZmIzNzU3MGNjZmRlMmVlZWE5MGMuLmY2ODI1MTUxY2NkYjgx
YjEwMWNjZTM2ZTQ5MzMwZTVkNTA1MWY3ZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvaHRtbC9kZXRhaWxz
LW5lc3RlZC0yLWV4cGVjdGVkLnR4dApAQCAtOSw3ICs5LDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyNCw4KSBzaXplIDU5
eDE5CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjQsOCkgd2lkdGggNTogIiAiCiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMjgsOCkgd2lkdGggNTU6ICJzdW1tYXJ5IgotICAgICAgICBSZW5k
ZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoOCw0NCkgc2l6ZSA3Njh4MAogICAgICAgICBSZW5kZXJC
bG9jayB7REVUQUlMU30gYXQgKDgsNDQpIHNpemUgNzY4eDcyIFtib3JkZXI6ICg4cHggc29saWQg
Izk5NTU1NSldCiAgICAgICAgICAgUmVuZGVyQmxvY2sge1NVTU1BUll9IGF0ICg4LDgpIHNpemUg
NzUyeDM2IFtib3JkZXI6ICg4cHggc29saWQgI0NDOTk5OSldCiAgICAgICAgICAgICBSZW5kZXJE
ZXRhaWxzTWFya2VyIHtESVZ9IGF0ICg4LDEzKSBzaXplIDExeDExOiBkb3duCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaHRtbC9kZXRhaWxzLW5l
c3RlZC0yLWV4cGVjdGVkLnR4dAppbmRleCBjMWZjNDdmZWFiNTdkNzU3ZDVlNTk5NTk5MDFmYTBi
MTFhMjNlNGJlLi4yYjkyYjBiOTk3MDc0YzlmNDc5MDMwMWY0NDc4NWMwZWViMDk1ZDhlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVk
LTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2h0bWwv
ZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQKQEAgLTksNyArOSw2IEBAIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjQsOCkg
c2l6ZSA2M3gxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI0LDgpIHdpZHRoIDU6ICIgIgog
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI4LDgpIHdpZHRoIDU5OiAic3VtbWFyeSIKLSAgICAg
ICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDgsNDIpIHNpemUgNzY4eDAKICAgICAgICAg
UmVuZGVyQmxvY2sge0RFVEFJTFN9IGF0ICg4LDQyKSBzaXplIDc2OHg2OCBbYm9yZGVyOiAoOHB4
IHNvbGlkICM5OTU1NTUpXQogICAgICAgICAgIFJlbmRlckJsb2NrIHtTVU1NQVJZfSBhdCAoOCw4
KSBzaXplIDc1MngzNCBbYm9yZGVyOiAoOHB4IHNvbGlkICNDQzk5OTkpXQogICAgICAgICAgICAg
UmVuZGVyRGV0YWlsc01hcmtlciB7RElWfSBhdCAoOCwxMikgc2l6ZSAxMXgxMTogZG93bgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191086</attachid>
            <date>2013-03-01 18:30:11 -0800</date>
            <delta_ts>2013-03-01 21:17:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110786-20130301182622.patch</filename>
            <type>text/plain</type>
            <size>7368</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjMDcyNDQ0ZTgwNDQ2
YWUzYmNlYjM4OTJjYjAyMDRiMDE3MWI4NS4uOThjNWZiMGEyM2JkYzVkZjJkNGQ3NzUxNjE4NzVl
OTQ0MWZiOTM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTAyLTI4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBTdHlsZSByZWNhbGN1
bGF0aW9uIHRha2VzIHRvbyBsb25nIHdoZW4gYWRkaW5nIHdoaXRlc3BhY2UgdGV4dCBub2Rlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLy8gVGhpcyB0
YWtlcyAyMTYgbXNlYy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNTAwOyArK2kpIHsK
KyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCd4JykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2JykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ3gnKSk7CisgICAgICAgIH0KKworICAgICAgICAv
LyBCdXQgdGhpcyB0YWtlcyAyNS4zIHNlY29uZHMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTUwMDsgKytpKSB7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgnICcpKTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJykpOworICAgICAg
ICB9CisKKyAgICAgICAgVGhlIHJlYXNvbiBpcyB0aGF0IHdlIGRvIG5vdCBjcmVhdGUgcmVuZGVy
ZXJzIGZvciBlbXB0eSB0ZXh0CisgICAgICAgIG5vZGVzIGFuZCB0aHVzIHdlIGFyZSBoaXR0aW5n
IHRoZSB3b3JzdCBPKE5eMikgY2FzZSBpbiBOb2RlOjphdHRhY2goKS4KKyAgICAgICAgKFNlZSBG
SVhNRSBpbiBOb2RlOjphdHRhY2goKS4pCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgbG9n
aWMgdG8gYmFpbCBvdXQgdGhlIGxvb3AgdG8gYXZvaWQgdGhlIE8oTl4yKSBjYXNlLgorICAgICAg
ICBTcGVjaWZpY2FsbHksIHRoZSBwYXRjaCBiYWlscyBvdXQgdGhlIGxvb3AgaWYgd2UgZW5jb3Vu
dGVyIGEgdGV4dCBub2RlCisgICAgICAgIGZvciB3aGljaCB3ZSBhZ2FpbiBkZWNpZGVkIG5vdCB0
byBjcmVhdGUgYSByZW5kZXJlci4gVGhpcyBiYWlsIG91dCBpcworICAgICAgICByZWFzb25hYmxl
IGJlY2F1c2UgdGhlIGZhY3QgdGhhdCB3ZSBhZ2FpbiBkZWNpZGVkIG5vdCB0byBjcmVhdGUgYSBy
ZW5kZXJlcgorICAgICAgICBmb3IgdGhlIHRleHQgbm9kZSBpbmRpY2F0ZXMgdGhhdCB0aGVyZSB3
aWxsIGJlIG5vIGFmZmVjdCBvZiB0aGUgcmVzdWx0CisgICAgICAgIG9mIFRleHQ6OnRleHRSZW5k
ZXJlcklzTmVlZGVkKCkgb2YgdGhlIHJlc3Qgb2YgdGhlIHNpYmxpbmcgbm9kZXMuCisKKyAgICAg
ICAgUGVyZm9ybWFuY2UgdGVzdDogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5j
Z2k/aWQ9MTkwNTQ1CisgICAgICAgIFBlcmZvcm1hbmNlIHJlc3VsdCBpbiBDaHJvbWl1bS9MaW51
eDogMjUuMyBzZWMgPT4gNDggbXNlYyAhCisKKyAgICAgICAgVGVzdDogZmFzdC9keW5hbWljL2Ny
ZWF0ZS1yZW5kZXJlci1mb3Itd2hpdGVzcGFjZS1vbmx5LXRleHQuaHRtbAorICAgICAgICBUaGUg
bG9vcCB3YXMgaW50cm9kdWNlZCBpbiByMjkwNTQuIFdlIGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQK
KyAgICAgICAgYWxsIGxheW91dCB0ZXN0cyB0aGF0IHdlcmUgdXBkYXRlZCBpbiByMjkwNTQgcGFz
cyB3aXRoIHRoaXMgcGF0Y2guCisgICAgICAgIFNlZSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8yOTA1NC4KKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmF0dGFjaCk6CisKIDIwMTMtMDItMjUgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gR2VuZXJhdGUgYSB3cmFwcGVyIGZ1bmN0aW9u
IGZvciBSZXBsYWNlYWJsZUF0dHJTZXR0ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGU3YzQ2NTAx
ZDIxOWExZDQ4ZGI4YmI5Y2MwZDMwZGNhM2Q5OWVjMzQuLjA0NDVlMGNmOTlhNGQ4MjE0YjYzNzJj
NGUwOWRiNzczY2JkZTZjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTEwNjgsNyArMTA2OCw2IEBA
IHZvaWQgTm9kZTo6YXR0YWNoKCkKICAgICBBU1NFUlQoIWF0dGFjaGVkKCkpOwogICAgIEFTU0VS
VCghcmVuZGVyZXIoKSB8fCAocmVuZGVyZXIoKS0+c3R5bGUoKSAmJiByZW5kZXJlcigpLT5wYXJl
bnQoKSkpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgTyhOXjIpIGZvciB0aGUgaW5uZXJIVE1M
IGNhc2UsIHdoZXJlIGFsbCBjaGlsZHJlbiBhcmUgcmVwbGFjZWQgYXQgb25jZSAoYW5kIG5vdCBh
dHRhY2hlZCkuCiAgICAgLy8gSWYgdGhpcyBub2RlIGdvdCBhIHJlbmRlcmVyIGl0IG1heSBiZSB0
aGUgcHJldmlvdXNSZW5kZXJlcigpIG9mIHNpYmxpbmcgdGV4dCBub2RlcyBhbmQgdGh1cyBhZmZl
Y3QgdGhlCiAgICAgLy8gcmVzdWx0IG9mIFRleHQ6OnRleHRSZW5kZXJlcklzTmVlZGVkKCkgZm9y
IHRob3NlIG5vZGVzLgogICAgIGlmIChyZW5kZXJlcigpKSB7CkBAIC0xMDc2LDkgKzEwNzUsMTYg
QEAgdm9pZCBOb2RlOjphdHRhY2goKQogICAgICAgICAgICAgaWYgKG5leHQtPnJlbmRlcmVyKCkp
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBpZiAoIW5leHQtPmF0dGFjaGVk
KCkpCi0gICAgICAgICAgICAgICAgYnJlYWs7ICAvLyBBc3N1bWUgdGhpcyBtZWFucyBub25lIG9m
IHRoZSBmb2xsb3dpbmcgc2libGluZ3MgYXJlIGF0dGFjaGVkLgotICAgICAgICAgICAgaWYgKG5l
eHQtPmlzVGV4dE5vZGUoKSkKKyAgICAgICAgICAgICAgICBicmVhazsgLy8gQXNzdW1lIHRoaXMg
bWVhbnMgbm9uZSBvZiB0aGUgZm9sbG93aW5nIHNpYmxpbmdzIGFyZSBhdHRhY2hlZC4KKyAgICAg
ICAgICAgIGlmIChuZXh0LT5pc1RleHROb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
IW5leHQtPnJlbmRlcmVyKCkpOwogICAgICAgICAgICAgICAgIHRvVGV4dChuZXh0KS0+Y3JlYXRl
VGV4dFJlbmRlcmVySWZOZWVkZWQoKTsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBhZ2FpbiBk
ZWNpZGVkIG5vdCB0byBjcmVhdGUgYSByZW5kZXJlciBmb3IgbmV4dCwgd2UgY2FuIGJhaWwgb3V0
IHRoZSBsb29wLAorICAgICAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQgd29uJ3QgYWZmZWN0IHRo
ZSByZXN1bHQgb2YgVGV4dDo6dGV4dFJlbmRlcmVySXNOZWVkZWQoKSBmb3IgdGhlIHJlc3QKKyAg
ICAgICAgICAgICAgICAvLyBvZiBzaWJsaW5nIG5vZGVzLgorICAgICAgICAgICAgICAgIGlmICgh
bmV4dC0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRt
bC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9k
ZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dAppbmRleCA2ZmFhMTEwNTJlNDIwMDRkZGU4NzNm
YWVhZDk1NzY1ZWEwZTQwZDc2Li5hZmQyMTIzMWU3ZjlmOTgwMTgwZDRhNDUxN2Q2ODhhMGMxYjFm
ODc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTIt
ZXhwZWN0ZWQudHh0CkBAIC05LDcgKzksNiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI0LDgpIHNpemUgNjJ4MTkKICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgyNCw4KSB3aWR0aCA0OiAiICIKICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgyOCw4KSB3aWR0aCA1ODogInN1bW1hcnkiCi0gICAgICAgIFJlbmRlckJsb2NrIChh
bm9ueW1vdXMpIGF0ICg4LDQyKSBzaXplIDc2OHgwCiAgICAgICAgIFJlbmRlckJsb2NrIHtERVRB
SUxTfSBhdCAoOCw0Mikgc2l6ZSA3Njh4NjggW2JvcmRlcjogKDhweCBzb2xpZCAjOTk1NTU1KV0K
ICAgICAgICAgICBSZW5kZXJCbG9jayB7U1VNTUFSWX0gYXQgKDgsOCkgc2l6ZSA3NTJ4MzQgW2Jv
cmRlcjogKDhweCBzb2xpZCAjQ0M5OTk5KV0KICAgICAgICAgICAgIFJlbmRlckRldGFpbHNNYXJr
ZXIge0RJVn0gYXQgKDgsMTMpIHNpemUgMTB4MTA6IGRvd24KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9odG1sL2Rl
dGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0CmluZGV4IGMxZmM0N2ZlYWI1N2Q3NTdkNWU1OTk1
OTkwMWZhMGIxMWEyM2U0YmUuLjJiOTJiMGI5OTcwNzRjOWY0NzkwMzAxZjQ0Nzg1YzBlZWIwOTVk
OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2h0
bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbWFjL2Zhc3QvaHRtbC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dApA
QCAtOSw3ICs5LDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgyNCw4KSBzaXplIDYzeDE4CiAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMjQsOCkgd2lkdGggNTogIiAiCiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjgsOCkg
d2lkdGggNTk6ICJzdW1tYXJ5IgotICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAo
OCw0Mikgc2l6ZSA3Njh4MAogICAgICAgICBSZW5kZXJCbG9jayB7REVUQUlMU30gYXQgKDgsNDIp
IHNpemUgNzY4eDY4IFtib3JkZXI6ICg4cHggc29saWQgIzk5NTU1NSldCiAgICAgICAgICAgUmVu
ZGVyQmxvY2sge1NVTU1BUll9IGF0ICg4LDgpIHNpemUgNzUyeDM0IFtib3JkZXI6ICg4cHggc29s
aWQgI0NDOTk5OSldCiAgICAgICAgICAgICBSZW5kZXJEZXRhaWxzTWFya2VyIHtESVZ9IGF0ICg4
LDEyKSBzaXplIDExeDExOiBkb3duCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvaHRtbC9kZXRhaWxzLW5lc3RlZC0y
LWV4cGVjdGVkLnR4dAppbmRleCBiMzM2ZWQwOWJlYWUzNDNkN2UxYmZiMzc1NzBjY2ZkZTJlZWVh
OTBjLi5mNjgyNTE1MWNjZGI4MWIxMDFjY2UzNmU0OTMzMGU1ZDUwNTFmN2ZhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9odG1sL2RldGFpbHMtbmVz
dGVkLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQKQEAgLTksNyArOSw2IEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMjQsOCkgc2l6ZSA1OXgxOQogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI0LDgpIHdp
ZHRoIDU6ICIgIgogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI4LDgpIHdpZHRoIDU1OiAic3Vt
bWFyeSIKLSAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDgsNDQpIHNpemUgNzY4
eDAKICAgICAgICAgUmVuZGVyQmxvY2sge0RFVEFJTFN9IGF0ICg4LDQ0KSBzaXplIDc2OHg3MiBb
Ym9yZGVyOiAoOHB4IHNvbGlkICM5OTU1NTUpXQogICAgICAgICAgIFJlbmRlckJsb2NrIHtTVU1N
QVJZfSBhdCAoOCw4KSBzaXplIDc1MngzNiBbYm9yZGVyOiAoOHB4IHNvbGlkICNDQzk5OTkpXQog
ICAgICAgICAgICAgUmVuZGVyRGV0YWlsc01hcmtlciB7RElWfSBhdCAoOCwxMykgc2l6ZSAxMXgx
MTogZG93bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvaHRtbC9k
ZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQKaW5kZXggYzFmYzQ3ZmVhYjU3
ZDc1N2Q1ZTU5OTU5OTAxZmEwYjExYTIzZTRiZS4uMmI5MmIwYjk5NzA3NGM5ZjQ3OTAzMDFmNDQ3
ODVjMGVlYjA5NWQ4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
aHRtbC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0CkBAIC05LDcg
KzksNiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDI0LDgpIHNpemUgNjN4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgy
NCw4KSB3aWR0aCA1OiAiICIKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyOCw4KSB3aWR0aCA1
OTogInN1bW1hcnkiCi0gICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICg4LDQyKSBz
aXplIDc2OHgwCiAgICAgICAgIFJlbmRlckJsb2NrIHtERVRBSUxTfSBhdCAoOCw0Mikgc2l6ZSA3
Njh4NjggW2JvcmRlcjogKDhweCBzb2xpZCAjOTk1NTU1KV0KICAgICAgICAgICBSZW5kZXJCbG9j
ayB7U1VNTUFSWX0gYXQgKDgsOCkgc2l6ZSA3NTJ4MzQgW2JvcmRlcjogKDhweCBzb2xpZCAjQ0M5
OTk5KV0KICAgICAgICAgICAgIFJlbmRlckRldGFpbHNNYXJrZXIge0RJVn0gYXQgKDgsMTIpIHNp
emUgMTF4MTE6IGRvd24K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191094</attachid>
            <date>2013-03-01 21:17:33 -0800</date>
            <delta_ts>2013-03-01 21:17:33 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-110786-20130301211344.patch</filename>
            <type>text/plain</type>
            <size>12230</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg2NGY4ZDE4NDE5NTNl
NTcyZjBkMjE2ZTY2ZGVmZTNmYmU4ZGE4ZC4uY2FkM2EzMDRhZjgyOTlmMTAyMzkyMzc0NmI2NTg2
YzI3MTk0MjYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAzLTAxICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBTdHlsZSByZWNhbGN1
bGF0aW9uIHRha2VzIHRvbyBsb25nIHdoZW4gYWRkaW5nIHdoaXRlc3BhY2UgdGV4dCBub2Rlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgLy8gVGhpcyB0YWtl
cyAyMTYgbXNlYy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNTAwOyArK2kpIHsKKyAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCd4JykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2JykpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ3gnKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBC
dXQgdGhpcyB0YWtlcyAyNS4zIHNlY29uZHMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTUwMDsgKytpKSB7CisgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgnICcpKTsKKyAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJykpOworICAgICAgICB9
CisKKyAgICAgICAgVGhlIHJlYXNvbiBpcyB0aGF0IHdlIGRvIG5vdCBjcmVhdGUgcmVuZGVyZXJz
IGZvciBlbXB0eSB0ZXh0CisgICAgICAgIG5vZGVzIGFuZCB0aHVzIHdlIGFyZSBoaXR0aW5nIHRo
ZSB3b3JzdCBPKE5eMikgY2FzZSBpbiBOb2RlOjphdHRhY2goKS4KKyAgICAgICAgKFNlZSBGSVhN
RSBpbiBOb2RlOjphdHRhY2goKS4pCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgbG9naWMg
dG8gYmFpbCBvdXQgdGhlIGxvb3AgdG8gYXZvaWQgdGhlIE8oTl4yKSBjYXNlLgorICAgICAgICBT
cGVjaWZpY2FsbHksIHRoZSBwYXRjaCBiYWlscyBvdXQgdGhlIGxvb3AgaWYgd2UgZW5jb3VudGVy
IGEgdGV4dCBub2RlCisgICAgICAgIGZvciB3aGljaCB3ZSBhZ2FpbiBkZWNpZGVkIG5vdCB0byBj
cmVhdGUgYSByZW5kZXJlci4gVGhpcyBiYWlsIG91dCBpcworICAgICAgICByZWFzb25hYmxlIGJl
Y2F1c2UgdGhlIGZhY3QgdGhhdCB3ZSBhZ2FpbiBkZWNpZGVkIG5vdCB0byBjcmVhdGUgYSByZW5k
ZXJlcgorICAgICAgICBmb3IgdGhlIHRleHQgbm9kZSBpbmRpY2F0ZXMgdGhhdCB0aGVyZSB3aWxs
IGJlIG5vIGFmZmVjdCBvZiB0aGUgcmVzdWx0CisgICAgICAgIG9mIFRleHQ6OnRleHRSZW5kZXJl
cklzTmVlZGVkKCkgb2YgdGhlIHJlc3Qgb2YgdGhlIHNpYmxpbmcgbm9kZXMuCisKKyAgICAgICAg
UGVyZm9ybWFuY2UgdGVzdDogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/
aWQ9MTkwNTQ1CisgICAgICAgIFBlcmZvcm1hbmNlIHJlc3VsdCBpbiBDaHJvbWl1bS9MaW51eDog
MjUuMyBzZWMgPT4gNDggbXNlYyAhCisKKyAgICAgICAgVGVzdDogcGVyZi9hcHBlbmQtdGV4dC1u
b2Rlcy13aXRob3V0LXJlbmRlcmVycy5odG1sIChmb3IgcGVyZm9ybWFuY2UpCisgICAgICAgICAg
ICAgIGZhc3QvZHluYW1pYy9jcmVhdGUtcmVuZGVyZXItZm9yLXdoaXRlc3BhY2Utb25seS10ZXh0
Lmh0bWwgKGZvciBjb3JyZWN0bmVzcykKKworICAgICAgICBUaGUgbG9vcCB3YXMgaW50cm9kdWNl
ZCBpbiByMjkwNTQuIFdlIGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQKKyAgICAgICAgYWxsIGxheW91
dCB0ZXN0cyB0aGF0IHdlcmUgdXBkYXRlZCBpbiByMjkwNTQgcGFzcyB3aXRoIHRoaXMgcGF0Y2gu
CisgICAgICAgIFNlZSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yOTA1NC4KKwor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmF0dGFjaCk6
CisKIDIwMTMtMDMtMDEgIEVsbGlvdHQgU3ByZWhuICA8ZXNwcmVobkBnbWFpbC5jb20+CiAKICAg
ICAgICAgRG9uJ3QgbGVhayBEb2N1bWVudHMgd2hlbiB1c2luZyBNdXRhdGlvbk9ic2VydmVyIGZy
b20gZXh0ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGU3YzQ2NTAxZDIxOWExZDQ4ZGI4YmI5
Y2MwZDMwZGNhM2Q5OWVjMzQuLjE0NDVhMDA5OTc0NWNlM2E0ZjczM2QwZmNkYWNkNjhlOGFkMjU0
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTEwNjgsNyArMTA2OCw2IEBAIHZvaWQgTm9kZTo6YXR0
YWNoKCkKICAgICBBU1NFUlQoIWF0dGFjaGVkKCkpOwogICAgIEFTU0VSVCghcmVuZGVyZXIoKSB8
fCAocmVuZGVyZXIoKS0+c3R5bGUoKSAmJiByZW5kZXJlcigpLT5wYXJlbnQoKSkpOwogCi0gICAg
Ly8gRklYTUU6IFRoaXMgaXMgTyhOXjIpIGZvciB0aGUgaW5uZXJIVE1MIGNhc2UsIHdoZXJlIGFs
bCBjaGlsZHJlbiBhcmUgcmVwbGFjZWQgYXQgb25jZSAoYW5kIG5vdCBhdHRhY2hlZCkuCiAgICAg
Ly8gSWYgdGhpcyBub2RlIGdvdCBhIHJlbmRlcmVyIGl0IG1heSBiZSB0aGUgcHJldmlvdXNSZW5k
ZXJlcigpIG9mIHNpYmxpbmcgdGV4dCBub2RlcyBhbmQgdGh1cyBhZmZlY3QgdGhlCiAgICAgLy8g
cmVzdWx0IG9mIFRleHQ6OnRleHRSZW5kZXJlcklzTmVlZGVkKCkgZm9yIHRob3NlIG5vZGVzLgog
ICAgIGlmIChyZW5kZXJlcigpKSB7CkBAIC0xMDc2LDkgKzEwNzUsMTYgQEAgdm9pZCBOb2RlOjph
dHRhY2goKQogICAgICAgICAgICAgaWYgKG5leHQtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBpZiAoIW5leHQtPmF0dGFjaGVkKCkpCi0gICAgICAgICAg
ICAgICAgYnJlYWs7ICAvLyBBc3N1bWUgdGhpcyBtZWFucyBub25lIG9mIHRoZSBmb2xsb3dpbmcg
c2libGluZ3MgYXJlIGF0dGFjaGVkLgotICAgICAgICAgICAgaWYgKG5leHQtPmlzVGV4dE5vZGUo
KSkKLSAgICAgICAgICAgICAgICB0b1RleHQobmV4dCktPmNyZWF0ZVRleHRSZW5kZXJlcklmTmVl
ZGVkKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7IC8vIEFzc3VtZSB0aGlzIG1lYW5zIG5vbmUg
b2YgdGhlIGZvbGxvd2luZyBzaWJsaW5ncyBhcmUgYXR0YWNoZWQuCisgICAgICAgICAgICBpZiAo
IW5leHQtPmlzVGV4dE5vZGUoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIEFTU0VSVCghbmV4dC0+cmVuZGVyZXIoKSk7CisgICAgICAgICAgICB0b1RleHQobmV4dCkt
PmNyZWF0ZVRleHRSZW5kZXJlcklmTmVlZGVkKCk7CisgICAgICAgICAgICAvLyBJZiB3ZSBhZ2Fp
biBkZWNpZGVkIG5vdCB0byBjcmVhdGUgYSByZW5kZXJlciBmb3IgbmV4dCwgd2UgY2FuIGJhaWwg
b3V0IHRoZSBsb29wLAorICAgICAgICAgICAgLy8gYmVjYXVzZSBpdCB3b24ndCBhZmZlY3QgdGhl
IHJlc3VsdCBvZiBUZXh0Ojp0ZXh0UmVuZGVyZXJJc05lZWRlZCgpIGZvciB0aGUgcmVzdAorICAg
ICAgICAgICAgLy8gb2Ygc2libGluZyBub2Rlcy4KKyAgICAgICAgICAgIGlmICghbmV4dC0+cmVu
ZGVyZXIoKSkKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGYyNjk2MmE0NmVhM2UwOGI3OTBlMTNmYTAwMTI3NTYwNThlY2ExNjYuLjczOWU5M2RlZGMx
NzM3NWU5N2M5NmU1ZWIxMThmNmQ3ZDQwZWY2MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
My0wMy0wMSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
U3R5bGUgcmVjYWxjdWxhdGlvbiB0YWtlcyB0b28gbG9uZyB3aGVuIGFkZGluZyB3aGl0ZXNwYWNl
IHRleHQgbm9kZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDc4NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAg
ICogZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0OiBTb21ldGltZXMgYW5v
bnltb3VzIGJsb2NrcyBhcmUgbGVmdCB3aXRob3V0CisgICAgICAgIGJlaW5nIGNsZWFuZWQgdXAg
KGZvciBzb21lIHJlYXNvbikuIFdpdGggdGhpcyBwYXRjaCwgb25lIGFub255bW91c2UgYmxvY2sg
aXMgcmVtb3ZlZCBhdAorICAgICAgICB0aGUgY2xlYW4tdXAgcGhhc2UgKGZvciBzb21lIHJlYXNv
bikuIEFueXdheSB0aGUgbmV3IGJlaGF2aW9yIGlzIGFuIGV4cGVjdGVkIGJlaGF2aW9yLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1l
eHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0
L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQ6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBl
Y3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvaHRtbC9kZXRhaWxz
LW5lc3RlZC0yLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogcGVyZi9hcHBlbmQtdGV4
dC1ub2Rlcy13aXRob3V0LXJlbmRlcmVycy1leHBlY3RlZC50eHQ6IEFkZGVkLiBGb3IgcGVyZm9y
bWFuY2UgdGVzdC4KKyAgICAgICAgKiBwZXJmL2FwcGVuZC10ZXh0LW5vZGVzLXdpdGhvdXQtcmVu
ZGVyZXJzLmh0bWw6IEFkZGVkLiBEaXR0by4KKwogMjAxMy0wMy0wMSAgVGVycnkgQW5kZXJzb24g
IDx0ZGFuZGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFdmVudEhhbmRsZXI6OmhhbmRs
ZUdlc3R1cmVTY3JvbGxVcGRhdGUoKSBzaG91bGQgaW52b2tlIHRoZSB1c2VyLWdlbmVyYXRlZCBz
Y3JvbGwgcm91dGluZXMgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvZGV0YWls
cy1uZXN0ZWQtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvZGV0YWlscy1u
ZXN0ZWQtMi1leHBlY3RlZC50eHQKaW5kZXggNmZhYTExMDUyZTQyMDA0ZGRlODczZmFlYWQ5NTc2
NWVhMGU0MGQ3Ni4uYWZkMjEyMzFlN2Y5Zjk4MDE4MGQ0YTQ1MTdkNjg4YTBjMWIxZjg3NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVk
LnR4dApAQCAtOSw3ICs5LDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyNCw4KSBzaXplIDYyeDE5CiAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMjQsOCkgd2lkdGggNDogIiAiCiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MjgsOCkgd2lkdGggNTg6ICJzdW1tYXJ5IgotICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3Vz
KSBhdCAoOCw0Mikgc2l6ZSA3Njh4MAogICAgICAgICBSZW5kZXJCbG9jayB7REVUQUlMU30gYXQg
KDgsNDIpIHNpemUgNzY4eDY4IFtib3JkZXI6ICg4cHggc29saWQgIzk5NTU1NSldCiAgICAgICAg
ICAgUmVuZGVyQmxvY2sge1NVTU1BUll9IGF0ICg4LDgpIHNpemUgNzUyeDM0IFtib3JkZXI6ICg4
cHggc29saWQgI0NDOTk5OSldCiAgICAgICAgICAgICBSZW5kZXJEZXRhaWxzTWFya2VyIHtESVZ9
IGF0ICg4LDEzKSBzaXplIDEweDEwOiBkb3duCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wZXJm
L2FwcGVuZC10ZXh0LW5vZGVzLXdpdGhvdXQtcmVuZGVyZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BlcmYvYXBwZW5kLXRleHQtbm9kZXMtd2l0aG91dC1yZW5kZXJlcnMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVjYjVlZDQwNzI5MjJjNTYxZjlhY2UxMjNkNTI2MTIzNmJjN2IxOTIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wZXJmL2FwcGVuZC10ZXh0LW5vZGVzLXdp
dGhvdXQtcmVuZGVyZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Rlc3RzIHRoYXQg
c3R5bGUgcmVjYWxjdWxhdGlvbiB0aW1lIGlzIGxpbmVhciB3aGVuIGFkZGluZyB0ZXh0IG5vZGVz
IHRoYXQgZG8gbm90IGhhdmUgcmVuZGVyZXJzLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMDc4NgorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
ZXJmL2FwcGVuZC10ZXh0LW5vZGVzLXdpdGhvdXQtcmVuZGVyZXJzLmh0bWwgYi9MYXlvdXRUZXN0
cy9wZXJmL2FwcGVuZC10ZXh0LW5vZGVzLXdpdGhvdXQtcmVuZGVyZXJzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjllNDJhMDlmYmU4M2I4NmM5ZWQ2NmYzMGI5ZmFlMzY3ZWYwODM2OQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BlcmYvYXBwZW5kLXRleHQtbm9kZXMtd2l0aG91dC1yZW5kZXJl
cnMuaHRtbApAQCAtMCwwICsxLDIzIEBACis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9tYWduaXR1ZGUtcGVyZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rp
b24gc2V0dXBGdW5jdGlvbihtYWduaXR1ZGUpCit7Cit9CisKK2Z1bmN0aW9uIHRlc3QobWFnbml0
dWRlKQoreworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWFnbml0dWRlOyBpKyspIHsKKyAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnICcp
KTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoJyAnKSk7CisgICAgfQorICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1M
ID0gIiI7Cit9CisKK01hZ25pdHVkZS5kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBzdHlsZSByZWNh
bGN1bGF0aW9uIHRpbWUgaXMgbGluZWFyIHdoZW4gYWRkaW5nIHRleHQgbm9kZXMgdGhhdCBkbyBu
b3QgaGF2ZSByZW5kZXJlcnMuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEwNzg2Iik7CitNYWduaXR1ZGUucnVuKHNldHVwRnVuY3Rpb24sIHRlc3QsIE1hZ25p
dHVkZS5MSU5FQVIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVk
LTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3Qv
aHRtbC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dAppbmRleCBjMWZjNDdmZWFiNTdkNzU3
ZDVlNTk5NTk5MDFmYTBiMTFhMjNlNGJlLi4yYjkyYjBiOTk3MDc0YzlmNDc5MDMwMWY0NDc4NWMw
ZWViMDk1ZDhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMv
ZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3Rl
ZC50eHQKQEAgLTksNyArOSw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjQsOCkgc2l6ZSA2M3gxOAogICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDI0LDgpIHdpZHRoIDU6ICIgIgogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDI4LDgpIHdpZHRoIDU5OiAic3VtbWFyeSIKLSAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91
cykgYXQgKDgsNDIpIHNpemUgNzY4eDAKICAgICAgICAgUmVuZGVyQmxvY2sge0RFVEFJTFN9IGF0
ICg4LDQyKSBzaXplIDc2OHg2OCBbYm9yZGVyOiAoOHB4IHNvbGlkICM5OTU1NTUpXQogICAgICAg
ICAgIFJlbmRlckJsb2NrIHtTVU1NQVJZfSBhdCAoOCw4KSBzaXplIDc1MngzNCBbYm9yZGVyOiAo
OHB4IHNvbGlkICNDQzk5OTkpXQogICAgICAgICAgICAgUmVuZGVyRGV0YWlsc01hcmtlciB7RElW
fSBhdCAoOCwxMikgc2l6ZSAxMXgxMTogZG93bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL2Zhc3QvaHRtbC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2h0bWwvZGV0YWlscy1u
ZXN0ZWQtMi1leHBlY3RlZC50eHQKaW5kZXggYjMzNmVkMDliZWFlMzQzZDdlMWJmYjM3NTcwY2Nm
ZGUyZWVlYTkwYy4uZjY4MjUxNTFjY2RiODFiMTAxY2NlMzZlNDkzMzBlNWQ1MDUxZjdmYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvaHRtbC9kZXRh
aWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0CkBAIC05LDcg
KzksNiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDI0LDgpIHNpemUgNTl4MTkKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgy
NCw4KSB3aWR0aCA1OiAiICIKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyOCw4KSB3aWR0aCA1
NTogInN1bW1hcnkiCi0gICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICg4LDQ0KSBz
aXplIDc2OHgwCiAgICAgICAgIFJlbmRlckJsb2NrIHtERVRBSUxTfSBhdCAoOCw0NCkgc2l6ZSA3
Njh4NzIgW2JvcmRlcjogKDhweCBzb2xpZCAjOTk1NTU1KV0KICAgICAgICAgICBSZW5kZXJCbG9j
ayB7U1VNTUFSWX0gYXQgKDgsOCkgc2l6ZSA3NTJ4MzYgW2JvcmRlcjogKDhweCBzb2xpZCAjQ0M5
OTk5KV0KICAgICAgICAgICAgIFJlbmRlckRldGFpbHNNYXJrZXIge0RJVn0gYXQgKDgsMTMpIHNp
emUgMTF4MTE6IGRvd24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0
L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9lZmwvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0CmluZGV4IDNjMmJm
ZmM1MGNhYzU4Y2JkMDRhMWZkNGQ3Y2M3YzE4M2M5ZDIyMDIuLmRlNDkyOTNiOTNmNThkM2E1Mzcz
MTczYWQxNTI3MTU3Njc2YThkZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL2Zhc3QvaHRtbC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dApA
QCAtOSw3ICs5LDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgyNCw4KSBzaXplIDYzeDE3CiAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMjQsOCkgd2lkdGggNTogIiAiCiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjgsOCkg
d2lkdGggNTk6ICJzdW1tYXJ5IgotICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAo
OCw0Mikgc2l6ZSA3Njh4MAogICAgICAgICBSZW5kZXJCbG9jayB7REVUQUlMU30gYXQgKDgsNDIp
IHNpemUgNzY4eDY4IFtib3JkZXI6ICg4cHggc29saWQgIzk5NTU1NSldCiAgICAgICAgICAgUmVu
ZGVyQmxvY2sge1NVTU1BUll9IGF0ICg4LDgpIHNpemUgNzUyeDM0IFtib3JkZXI6ICg4cHggc29s
aWQgI0NDOTk5OSldCiAgICAgICAgICAgICBSZW5kZXJEZXRhaWxzTWFya2VyIHtESVZ9IGF0ICg4
LDEyKSBzaXplIDExeDExOiBkb3duCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvaHRtbC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dAppbmRl
eCBjMWZjNDdmZWFiNTdkNzU3ZDVlNTk5NTk5MDFmYTBiMTFhMjNlNGJlLi4yYjkyYjBiOTk3MDc0
YzlmNDc5MDMwMWY0NDc4NWMwZWViMDk1ZDhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBlY3Rl
ZC50eHQKQEAgLTksNyArOSw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjQsOCkgc2l6ZSA2M3gxOAogICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDI0LDgpIHdpZHRoIDU6ICIgIgogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDI4LDgpIHdpZHRoIDU5OiAic3VtbWFyeSIKLSAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91
cykgYXQgKDgsNDIpIHNpemUgNzY4eDAKICAgICAgICAgUmVuZGVyQmxvY2sge0RFVEFJTFN9IGF0
ICg4LDQyKSBzaXplIDc2OHg2OCBbYm9yZGVyOiAoOHB4IHNvbGlkICM5OTU1NTUpXQogICAgICAg
ICAgIFJlbmRlckJsb2NrIHtTVU1NQVJZfSBhdCAoOCw4KSBzaXplIDc1MngzNCBbYm9yZGVyOiAo
OHB4IHNvbGlkICNDQzk5OTkpXQogICAgICAgICAgICAgUmVuZGVyRGV0YWlsc01hcmtlciB7RElW
fSBhdCAoOCwxMikgc2l6ZSAxMXgxMTogZG93bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9odG1sL2RldGFpbHMtbmVzdGVkLTItZXhwZWN0ZWQudHh0
CmluZGV4IDZkMWRhYzIxMzcwNDI0YmZiYTdmNGRiYmNiYWM0NDhjZTBmNmVlMGMuLmY2OWMwN2Uz
MGQ5YjBhMmRjMTBjM2IwMTk0MGQxOTRiYzM2ZDYwODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2Zhc3QvaHRtbC9kZXRhaWxzLW5lc3RlZC0yLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2h0bWwvZGV0YWlscy1uZXN0ZWQtMi1leHBl
Y3RlZC50eHQKQEAgLTksNyArOSw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjQsOCkgc2l6ZSA1OHgxOQogICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDI0LDgpIHdpZHRoIDQ6ICIgIgogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDI4LDgpIHdpZHRoIDU0OiAic3VtbWFyeSIKLSAgICAgICAgUmVuZGVyQmxvY2sgKGFub255
bW91cykgYXQgKDgsNDMpIHNpemUgNzY4eDAKICAgICAgICAgUmVuZGVyQmxvY2sge0RFVEFJTFN9
IGF0ICg4LDQzKSBzaXplIDc2OHg3MCBbYm9yZGVyOiAoOHB4IHNvbGlkICM5OTU1NTUpXQogICAg
ICAgICAgIFJlbmRlckJsb2NrIHtTVU1NQVJZfSBhdCAoOCw4KSBzaXplIDc1MngzNSBbYm9yZGVy
OiAoOHB4IHNvbGlkICNDQzk5OTkpXQogICAgICAgICAgICAgUmVuZGVyRGV0YWlsc01hcmtlciB7
RElWfSBhdCAoOCwxMykgc2l6ZSAxMHgxMDogZG93bgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>