<?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>99295</bug_id>
          
          <creation_ts>2012-10-14 23:30:25 -0700</creation_ts>
          <short_desc>removeAttribute(&apos;style&apos;) not working in certain circumstances</short_desc>
          <delta_ts>2012-11-06 03:33:38 -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="GU Yiling">justice360</reporter>
          <assigned_to name="Takashi Sakamoto">tasak</assigned_to>
          <cc>adamk</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>cabanier</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>kennyluck</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rniwa</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>741767</commentid>
    <comment_count>0</comment_count>
      <attachid>168630</attachid>
    <who name="GU Yiling">justice360</who>
    <bug_when>2012-10-14 23:30:25 -0700</bug_when>
    <thetext>Created attachment 168630
Test cases for removeAttribute(&apos;style&apos;)

Hi all.

It seems that the creation of &apos;style&apos; content attribute for an HTML element is delayed until getAttribute(&apos;style&apos;) or setAttribute(&apos;style&apos;, &apos;...&apos;) is called for the first time *and* HTML style attribute exists. If style is modified through IDL attributes before that, the style cannot be removed successfully by calling removeAttribute(&apos;style&apos;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741774</commentid>
    <comment_count>1</comment_count>
    <who name="GU Yiling">justice360</who>
    <bug_when>2012-10-14 23:39:23 -0700</bug_when>
    <thetext>Bug 28176 (https://bugs.webkit.org/show_bug.cgi?id=28176), it seems, is caused by the same problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741790</commentid>
    <comment_count>2</comment_count>
    <who name="Kang-Hao (Kenny) Lu">kennyluck</who>
    <bug_when>2012-10-15 00:04:07 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Created an attachment (id=168630) [details]
&gt; Test cases for removeAttribute(&apos;style&apos;)

Just FYI, the spec says you should not see any red in any cell. See also this relevant jQuery ticket: http://bugs.jquery.com/ticket/9699 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742794</commentid>
    <comment_count>3</comment_count>
      <attachid>168852</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-15 22:06:32 -0700</bug_when>
    <thetext>Created attachment 168852
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742871</commentid>
    <comment_count>4</comment_count>
      <attachid>168872</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-15 23:49:21 -0700</bug_when>
    <thetext>Created attachment 168872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745941</commentid>
    <comment_count>5</comment_count>
      <attachid>168872</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-10-18 20:52:28 -0700</bug_when>
    <thetext>Comment on attachment 168872
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        When Element::removeAttribute is invoked, check whether the given name
&gt; +        is &apos;style&apos; or not. If the element has no style attribute and style is
&gt; +        given, reset the element&apos;s style by using removeBlockProperties.

This is not a good comment. It repeats what the code does in English, but doesn’t answer the question why this is the right thing to do.

&gt; Source/WebCore/ChangeLog:18
&gt; +        If &apos;style&apos; is given but the element has no style attribute, invoke
&gt; +        removeBlockProperties to reset the style. After the reset, invoke
&gt; +        didRemoveAttribute to notify that the element&apos;s style is updated.

And this is just that same text again. The change log needs to say why this is being done, not just restate what’s in the code.

&gt; Source/WebCore/dom/Element.cpp:1578
&gt; +        if (localName == styleAttr &amp;&amp; style() &amp;&amp; style()-&gt;length() &gt; 0) {
&gt; +            style()-&gt;makeMutable()-&gt;removeBlockProperties();
&gt; +            didRemoveAttribute(QualifiedName(nullAtom, localName, nullAtom));
&gt; +        }

All the other code to special case the style attribute is in the StyledElement class. It’s not appropriate to put this mysterious code here in the Element class; the code to handle removal belongs in the StyledElement class with the rest of the code.

I suggest investigating whether this can be fixed in the StyledElement::attributeChanged function instead of here. I’m pretty sure it can be.

It’s incorrect for performance reasons to call style(), which will force a CSSStyleDeclaration to be created. The work should be done directly on the StylePropertySet. The function inlineStyle() should be called, and checked for null. Then if the style is non-empty, we should remove all the properties and call inlineStyleChanged.

It’s incorrect to call removeBlockProperties. We need to remove all the properties, not just the block properties. We may need to add a function to StylePropertySet that removes all properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745942</commentid>
    <comment_count>6</comment_count>
      <attachid>168872</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-10-18 20:54:23 -0700</bug_when>
    <thetext>Comment on attachment 168872
Patch

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

&gt;&gt; Source/WebCore/dom/Element.cpp:1578
&gt;&gt; +        }
&gt; 
&gt; All the other code to special case the style attribute is in the StyledElement class. It’s not appropriate to put this mysterious code here in the Element class; the code to handle removal belongs in the StyledElement class with the rest of the code.
&gt; 
&gt; I suggest investigating whether this can be fixed in the StyledElement::attributeChanged function instead of here. I’m pretty sure it can be.
&gt; 
&gt; It’s incorrect for performance reasons to call style(), which will force a CSSStyleDeclaration to be created. The work should be done directly on the StylePropertySet. The function inlineStyle() should be called, and checked for null. Then if the style is non-empty, we should remove all the properties and call inlineStyleChanged.
&gt; 
&gt; It’s incorrect to call removeBlockProperties. We need to remove all the properties, not just the block properties. We may need to add a function to StylePropertySet that removes all properties.

I do think we will need to add some code to Element::removeAttribute, but it will be code something like this:

    if (UNLIKELY(name == styleAttr) &amp;&amp; !isStyleAttributeValid())
        updateStyleAttribute();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747266</commentid>
    <comment_count>7</comment_count>
      <attachid>169835</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-22 00:08:43 -0700</bug_when>
    <thetext>Created attachment 169835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747267</commentid>
    <comment_count>8</comment_count>
      <attachid>169836</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-22 00:20:22 -0700</bug_when>
    <thetext>Created attachment 169836
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747275</commentid>
    <comment_count>9</comment_count>
      <attachid>168872</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-22 00:38:01 -0700</bug_when>
    <thetext>Comment on attachment 168872
Patch

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

Thank you for reviewing.

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        given, reset the element&apos;s style by using removeBlockProperties.
&gt; 
&gt; This is not a good comment. It repeats what the code does in English, but doesn’t answer the question why this is the right thing to do.

I updated the comment.

&gt;&gt; Source/WebCore/ChangeLog:18
&gt;&gt; +        didRemoveAttribute to notify that the element&apos;s style is updated.
&gt; 
&gt; And this is just that same text again. The change log needs to say why this is being done, not just restate what’s in the code.

I updated the comment too.

&gt;&gt;&gt; Source/WebCore/dom/Element.cpp:1578
&gt;&gt;&gt; +        }
&gt;&gt; 
&gt;&gt; All the other code to special case the style attribute is in the StyledElement class. It’s not appropriate to put this mysterious code here in the Element class; the code to handle removal belongs in the StyledElement class with the rest of the code.
&gt;&gt; 
&gt;&gt; I suggest investigating whether this can be fixed in the StyledElement::attributeChanged function instead of here. I’m pretty sure it can be.
&gt;&gt; 
&gt;&gt; It’s incorrect for performance reasons to call style(), which will force a CSSStyleDeclaration to be created. The work should be done directly on the StylePropertySet. The function inlineStyle() should be called, and checked for null. Then if the style is non-empty, we should remove all the properties and call inlineStyleChanged.
&gt;&gt; 
&gt;&gt; It’s incorrect to call removeBlockProperties. We need to remove all the properties, not just the block properties. We may need to add a function to StylePropertySet that removes all properties.
&gt; 
&gt; I do think we will need to add some code to Element::removeAttribute, but it will be code something like this:
&gt; 
&gt;     if (UNLIKELY(name == styleAttr) &amp;&amp; !isStyleAttributeValid())
&gt;         updateStyleAttribute();

I agree that my first patch is very hacky. So I added clear() method to StylePropertySet and StyledElement to remove all inline style properties.
Talking about StyledElement::attributeChanged(), the method will be invoked from Element::didRemoveAttribute. The original code will quickly exit the method if index == notFound. didRemoveAttribute has been never invoked.
We need to modify Element::removeAttribute.

Talking about updateStyleAttribute(), it doesn&apos;t work well in this case. Because, 
(1) StyledElement::updateAttributeStyle() invokes Element::setSynchronizedLazyAttribute,
(2) Element::setSynchronizedLazyAttribute invokes Element::setAttributeInternal,
(3) Element::setAttributeInternal does:

    Attribute* existingAttribute = index != notFound ? attributeData-&gt;attributeItem(index) : 0;
    if (newValue.isNull()) {
        if (existingAttribute)
            removeAttributeInternal(index, inSynchronizationOfLazyAttribute);
        return;
    }
 
Now index == notFound and newValue is null, so just return. No inline styles will be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758042</commentid>
    <comment_count>10</comment_count>
      <attachid>169836</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-03 18:24:22 -0700</bug_when>
    <thetext>Comment on attachment 169836
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        style should be always removed by using &quot;removeAttribute(&apos;style&apos;)&quot;.

Nit: s/removed by using/removable by/

&gt; Source/WebCore/dom/StyledElement.cpp:224
&gt; +void StyledElement::clearInlineStyleProperty()

Should be clearInlineStyleProperties or removeAllInlineStyleProperties.

&gt; Source/WebCore/dom/StyledElement.cpp:228
&gt; +    StylePropertySet* inlineStylePropertySet = ensureInlineStyle();

Why do you want to &quot;ensure&quot; it? We would have exited early if inline style was null.

&gt; LayoutTests/fast/css/remove-attribute-style-expected.txt:6
&gt; +PASS window.getComputedStyle(c11).backgroundColor is &quot;rgba(0, 0, 0, 0)&quot;

This output isn&apos;t great. I can&apos;t tell which line is testing what with cryptic names like c11.

&gt; LayoutTests/fast/css/remove-attribute-style.html:19
&gt; +      &lt;td id=&quot;c11&quot;&gt;no HTML style attribute, no get/setAttribute&lt;/td&gt;

It would have been better if the id was elementWithoutStyleAttribute.

&gt; LayoutTests/fast/css/remove-attribute-style.html:41
&gt; +    document.body.offsetLeft;

Do we really need to trigger layout?

&gt; LayoutTests/fast/css/remove-attribute-style.html:43
&gt; +    shouldBe(&quot;window.getComputedStyle(c11).backgroundColor&quot;, &apos;&quot;rgba(0, 0, 0, 0)&quot;&apos;);

You can omit &quot;window.&quot;

&gt; LayoutTests/fast/css/remove-attribute-style.html:62
&gt; +    c22.getAttribute(&apos;style&apos;);

It would have been better if this line was included in shouldBe so that we can see what you&apos;re doing in the expected result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758245</commentid>
    <comment_count>11</comment_count>
      <attachid>172273</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-04 23:04:58 -0800</bug_when>
    <thetext>Created attachment 172273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758246</commentid>
    <comment_count>12</comment_count>
      <attachid>169836</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-04 23:09:48 -0800</bug_when>
    <thetext>Comment on attachment 169836
Patch

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

Thank you for reviewing.

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        style should be always removed by using &quot;removeAttribute(&apos;style&apos;)&quot;.
&gt; 
&gt; Nit: s/removed by using/removable by/

Thanks. Done.

&gt;&gt; Source/WebCore/dom/StyledElement.cpp:224
&gt;&gt; +void StyledElement::clearInlineStyleProperty()
&gt; 
&gt; Should be clearInlineStyleProperties or removeAllInlineStyleProperties.

Done.

&gt;&gt; Source/WebCore/dom/StyledElement.cpp:228
&gt;&gt; +    StylePropertySet* inlineStylePropertySet = ensureInlineStyle();
&gt; 
&gt; Why do you want to &quot;ensure&quot; it? We would have exited early if inline style was null.

I think, the case is covered by the above &quot;!attributeData()-&gt;inlineStyle()&quot;.
Looking at the other related codes, i.e. removeInlineStyleProperty and so on, ensureInlineStyle() is used to obtain mutable StylePropertySet from mutableAttributeData.

&gt;&gt; LayoutTests/fast/css/remove-attribute-style-expected.txt:6
&gt;&gt; +PASS window.getComputedStyle(c11).backgroundColor is &quot;rgba(0, 0, 0, 0)&quot;
&gt; 
&gt; This output isn&apos;t great. I can&apos;t tell which line is testing what with cryptic names like c11.

I see. Done.

&gt;&gt; LayoutTests/fast/css/remove-attribute-style.html:19
&gt;&gt; +      &lt;td id=&quot;c11&quot;&gt;no HTML style attribute, no get/setAttribute&lt;/td&gt;
&gt; 
&gt; It would have been better if the id was elementWithoutStyleAttribute.

Done.

&gt;&gt; LayoutTests/fast/css/remove-attribute-style.html:41
&gt;&gt; +    document.body.offsetLeft;
&gt; 
&gt; Do we really need to trigger layout?

I&apos;m afraid that reattach() in Element::recalcStyle updates these styles. However, to reproduce this issue, we don&apos;t need this trigger. I removed all &quot;document.body.offsetLeft;&quot;.

&gt;&gt; LayoutTests/fast/css/remove-attribute-style.html:43
&gt;&gt; +    shouldBe(&quot;window.getComputedStyle(c11).backgroundColor&quot;, &apos;&quot;rgba(0, 0, 0, 0)&quot;&apos;);
&gt; 
&gt; You can omit &quot;window.&quot;

Done.

&gt;&gt; LayoutTests/fast/css/remove-attribute-style.html:62
&gt;&gt; +    c22.getAttribute(&apos;style&apos;);
&gt; 
&gt; It would have been better if this line was included in shouldBe so that we can see what you&apos;re doing in the expected result.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758276</commentid>
    <comment_count>13</comment_count>
      <attachid>172273</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-04 23:46:55 -0800</bug_when>
    <thetext>Comment on attachment 172273
Patch

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

&gt; Source/WebCore/dom/StyledElement.cpp:226
&gt; +void StyledElement::clearInlineStyleProperties()

On my second thought, clearInlineStyleProperties sounds as if resetting values of properties. So maybe we should call it removeAllInlineStyleProperties.

&gt; LayoutTests/fast/css/remove-attribute-style.html:55
&gt; +    shouldBeNull(&quot;elementWithoutStyleAttributeWithGetAttrBeforeStyleUpdate.getAttribute(&apos;style&apos;)&quot;);
&gt; +    elementWithoutStyleAttributeWithGetAttrBeforeStyleUpdate.style.backgroundColor = &apos;red&apos;;
&gt; +    elementWithoutStyleAttributeWithGetAttrBeforeStyleUpdate.removeAttribute(&apos;style&apos;);
&gt; +    shouldBe(&quot;getComputedStyle(elementWithoutStyleAttributeWithGetAttrBeforeStyleUpdate).backgroundColor&quot;, &apos;&quot;rgba(0, 0, 0, 0)&quot;&apos;);

You can do something like:
shouldBeNull(&quot;elementWithoutStyleAttribute2.getAttribute(&apos;style&apos;)&quot;);
shouldBe(&quot;elementWithoutStyleAttribute2.style.backgroundColor = &apos;red&apos;; elementWithoutStyleAttribute2.removeAttribute(&apos;style&apos;); elementWithoutStyleAttribute2.backgroundColor&quot;, &quot;rgba(0, 0, 0, 0)&quot;);
so that the actual operations done before accessing backgroundColor is visible in the results instead of giving a really long variable name.

&gt; LayoutTests/fast/css/remove-attribute-style.html:65
&gt; +    elementWithoutStyleAttributeWithSetAttr.style.backgroundColor = &apos;red&apos;;
&gt; +    elementWithoutStyleAttributeWithSetAttr.setAttribute(&apos;style&apos;, &apos;&apos;);
&gt; +    elementWithoutStyleAttributeWithSetAttr.removeAttribute(&apos;style&apos;);
&gt; +    shouldBe(&quot;getComputedStyle(elementWithoutStyleAttributeWithSetAttr).backgroundColor&quot;, &apos;&quot;rgba(0, 0, 0, 0)&quot;&apos;);

Similarly here, you can do:
shouldBe(&quot;elementWithoutStyleAttribute3.style.backgroundColor = &apos;red&apos;; elementWithoutStyleAttribute3.setAttribute(&apos;style&apos;, &apos;&apos;); elementWithoutStyleAttribute3.removeAttribute(&apos;style); getComputedStyle(elementWithoutStyleAttribute3).backgroundColor&quot;, &apos;&quot;rgba(0, 0, 0, 0)&quot;&apos;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759370</commentid>
    <comment_count>14</comment_count>
      <attachid>172273</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-06 01:20:33 -0800</bug_when>
    <thetext>Comment on attachment 172273
Patch

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

&gt;&gt; Source/WebCore/dom/StyledElement.cpp:226
&gt;&gt; +void StyledElement::clearInlineStyleProperties()
&gt; 
&gt; On my second thought, clearInlineStyleProperties sounds as if resetting values of properties. So maybe we should call it removeAllInlineStyleProperties.

I see. Done.

&gt;&gt; LayoutTests/fast/css/remove-attribute-style.html:55
&gt;&gt; +    shouldBe(&quot;getComputedStyle(elementWithoutStyleAttributeWithGetAttrBeforeStyleUpdate).backgroundColor&quot;, &apos;&quot;rgba(0, 0, 0, 0)&quot;&apos;);
&gt; 
&gt; You can do something like:
&gt; shouldBeNull(&quot;elementWithoutStyleAttribute2.getAttribute(&apos;style&apos;)&quot;);
&gt; shouldBe(&quot;elementWithoutStyleAttribute2.style.backgroundColor = &apos;red&apos;; elementWithoutStyleAttribute2.removeAttribute(&apos;style&apos;); elementWithoutStyleAttribute2.backgroundColor&quot;, &quot;rgba(0, 0, 0, 0)&quot;);
&gt; so that the actual operations done before accessing backgroundColor is visible in the results instead of giving a really long variable name.

I see. Done.

&gt;&gt; LayoutTests/fast/css/remove-attribute-style.html:65
&gt;&gt; +    shouldBe(&quot;getComputedStyle(elementWithoutStyleAttributeWithSetAttr).backgroundColor&quot;, &apos;&quot;rgba(0, 0, 0, 0)&quot;&apos;);
&gt; 
&gt; Similarly here, you can do:
&gt; shouldBe(&quot;elementWithoutStyleAttribute3.style.backgroundColor = &apos;red&apos;; elementWithoutStyleAttribute3.setAttribute(&apos;style&apos;, &apos;&apos;); elementWithoutStyleAttribute3.removeAttribute(&apos;style); getComputedStyle(elementWithoutStyleAttribute3).backgroundColor&quot;, &apos;&quot;rgba(0, 0, 0, 0)&quot;&apos;);

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759374</commentid>
    <comment_count>15</comment_count>
      <attachid>172513</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-06 01:22:38 -0800</bug_when>
    <thetext>Created attachment 172513
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759485</commentid>
    <comment_count>16</comment_count>
      <attachid>172513</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 03:33:34 -0800</bug_when>
    <thetext>Comment on attachment 172513
Patch for landing

Clearing flags on attachment: 172513

Committed r133581: &lt;http://trac.webkit.org/changeset/133581&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759486</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 03:33:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>168630</attachid>
            <date>2012-10-14 23:30:25 -0700</date>
            <delta_ts>2012-10-14 23:30:25 -0700</delta_ts>
            <desc>Test cases for removeAttribute(&apos;style&apos;)</desc>
            <filename>remove-style.html</filename>
            <type>text/html</type>
            <size>1774</size>
            <attacher name="GU Yiling">justice360</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUw+DQo8aHRtbD4NCjxoZWFkPg0KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4NCiAgICA8dGl0bGU+cmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpIHRlc3Q8L3RpdGxlPg0KICAg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgICAgIHRkIHsgZGlzcGxheTogdGFibGUtY2Vs
bDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDgwcHg7IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IHRl
eHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfQ0KICAgIDwvc3R5bGU+
DQo8L2hlYWQ+DQo8Ym9keT4NCiAgICA8dGFibGU+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAg
IDx0ZCBpZD0iYzExIj5ubyBIVE1MIHN0eWxlIGF0dHJpYnV0ZSwgbm8gZ2V0L3NldEF0dHJpYnV0
ZTwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9ImMxMiIgc3R5bGU9IiI+ZW1wdHkgSFRNTCBzdHls
ZSBhdHRyaWJ1dGUsIG5vIGdldC9zZXRBdHRyaWJ1dGU8L3RkPg0KICAgICAgICAgICAgPHRkIGlk
PSJjMTMiIHN0eWxlPSJvcGFjaXR5OiAxOyI+bm9uLWVtcHR5IEhUTUwgc3R5bGUgYXR0cmlidXRl
LCBubyBnZXQvc2V0QXR0cmlidXRlPC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICAgPHRyPg0K
ICAgICAgICAgICAgPHRkIGlkPSJjMjEiPm5vIEhUTUwgc3R5bGUgYXR0cmlidXRlLCBnZXRBdHRy
aWJ1dGUgYmVmb3JlIG1vZGlmeWluZyBJREwgYXR0cmlidXRlPC90ZD4NCiAgICAgICAgICAgIDx0
ZCBpZD0iYzIyIj5ubyBIVE1MIHN0eWxlIGF0dHJpYnV0ZSwgZ2V0QXR0cmlidXRlIGFmdGVyIG1v
ZGlmeWluZyBJREwgYXR0cmlidXRlPC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0iYzIzIj5ubyBI
VE1MIHN0eWxlIGF0dHJpYnV0ZSwgc2V0QXR0cmlidXRlIGJlZm9yZSByZW1vdmVBdHRyaWJ1dGU8
L3RkPg0KICAgICAgICA8L3RyPg0KICAgIDwvdGFibGU+DQo8c2NyaXB0Pg0KICAgIHZhciBjMTEg
PSAkKCdjMTEnKSwNCiAgICAgICAgYzEyID0gJCgnYzEyJyksDQogICAgICAgIGMxMyA9ICQoJ2Mx
MycpLA0KICAgICAgICBjMjEgPSAkKCdjMjEnKSwNCiAgICAgICAgYzIyID0gJCgnYzIyJyksDQog
ICAgICAgIGMyMyA9ICQoJ2MyMycpOw0KDQogICAgYzExLnN0eWxlLmJhY2tncm91bmRDb2xvciA9
ICdyZWQnOw0KICAgIGMxMS5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7DQoNCiAgICBjMTIuc3R5
bGUuYmFja2dyb3VuZENvbG9yID0gJ3JlZCc7DQogICAgYzEyLnJlbW92ZUF0dHJpYnV0ZSgnc3R5
bGUnKTsNCg0KICAgIGMxMy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmVkJzsNCiAgICBjMTMu
cmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpOw0KDQogICAgYzIxLmdldEF0dHJpYnV0ZSgnc3R5bGUn
KTsNCiAgICBjMjEuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3JlZCc7DQogICAgYzIxLnJlbW92
ZUF0dHJpYnV0ZSgnc3R5bGUnKTsNCg0KICAgIGMyMi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAn
cmVkJzsNCiAgICBjMjIuZ2V0QXR0cmlidXRlKCdzdHlsZScpOw0KICAgIGMyMi5yZW1vdmVBdHRy
aWJ1dGUoJ3N0eWxlJyk7DQoNCiAgICBjMjMuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3JlZCc7
DQogICAgYzIzLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnJyk7DQogICAgYzIzLnJlbW92ZUF0dHJp
YnV0ZSgnc3R5bGUnKTsNCg0KDQogICAgZnVuY3Rpb24gJChpZCkgew0KICAgICAgICByZXR1cm4g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICAgIH0NCjwvc2NyaXB0Pg0KPC9ib2R5Pg0K
PC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168852</attachid>
            <date>2012-10-15 22:06:32 -0700</date>
            <delta_ts>2012-10-15 23:49:17 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-99295-20121016140521.patch</filename>
            <type>text/plain</type>
            <size>6940</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQ0MTNmNjAzMDI5NjVj
NDNhNTUwNjRiMmYwYmEwMmE5ZjU4YzRhYi4uNGFlZGRhZjk0ZThlMDI4NTc4NjMwNDBkODQ3OTQw
NWUyMTczMWJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTE1ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICByZW1vdmVBdHRyaWJ1
dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTI5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gRWxlbWVudDo6cmVt
b3ZlQXR0cmlidXRlIGlzIGludm9rZWQsIGNoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIG5hbWUKKyAg
ICAgICAgaXMgJ3N0eWxlJyBvciBub3QuIElmIHRoZSBlbGVtZW50IGhhcyBubyBzdHlsZSBhdHRy
aWJ1dGUgYW5kIHN0eWxlIGlzCisgICAgICAgIGdpdmVuLCByZXNldCB0aGUgZWxlbWVudCdzIHN0
eWxlIGJ5IHVzaW5nIHJlbW92ZUJsb2NrUHJvcGVydGllcy4KKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0eWxlLmh0bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZSk6CisgICAg
ICAgIElmICdzdHlsZScgaXMgZ2l2ZW4gYnV0IHRoZSBlbGVtZW50IGhhcyBubyBzdHlsZSBhdHRy
aWJ1dGUsIGludm9rZQorICAgICAgICByZW1vdmVCbG9ja1Byb3BlcnRpZXMgdG8gcmVzZXQgdGhl
IHN0eWxlLiBBZnRlciB0aGUgcmVzZXQsIGludm9rZQorICAgICAgICBkaWRSZW1vdmVBdHRyaWJ1
dGUgdG8gbm90aWZ5IHRoYXQgdGhlIGVsZW1lbnQncyBzdHlsZSBpcyB1cGRhdGVkLgorCiAyMDEy
LTEwLTE1ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbV2ViU29ja2V0XSBXZWJTb2NrZXRJbmZsYXRlciBzaG91bGQgaGFuZGxlIEJGSU5BTCA9IDEg
YmxvY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggN2NiYTUxZjBkZjhjMjA0ZWU2OTU3NDU5
MDU4NTY3ZjZiYTExYTQ3Ny4uYWNkZjQzNDRlNzA4NTkyNGM1YTFiNTEyYWE4MDkyOTVlNzcyMGE1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkF0
dHIuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3Qu
aCIKKyNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ2xhc3NMaXN0
LmgiCiAjaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0Lmgi
CkBAIC0xNTcwLDggKzE1NzEsMTMgQEAgdm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lKQogCiAgICAgQXRvbWljU3RyaW5nIGxvY2FsTmFtZSA9IHNo
b3VsZElnbm9yZUF0dHJpYnV0ZUNhc2UodGhpcykgPyBuYW1lLmxvd2VyKCkgOiBuYW1lOwogICAg
IHNpemVfdCBpbmRleCA9IGF0dHJpYnV0ZURhdGEoKS0+Z2V0QXR0cmlidXRlSXRlbUluZGV4KGxv
Y2FsTmFtZSwgZmFsc2UpOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKKyAgICBpZiAoaW5k
ZXggPT0gbm90Rm91bmQpIHsKKyAgICAgICAgaWYgKGxvY2FsTmFtZSA9PSBzdHlsZUF0dHIgJiYg
c3R5bGUoKSAmJiBzdHlsZSgpLT5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIHN0eWxlKCkt
Pm1ha2VNdXRhYmxlKCktPnJlbW92ZUJsb2NrUHJvcGVydGllcygpOworICAgICAgICAgICAgZGlk
UmVtb3ZlQXR0cmlidXRlKFF1YWxpZmllZE5hbWUobnVsbEF0b20sIGxvY2FsTmFtZSwgbnVsbEF0
b20pKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgcmVtb3ZlQXR0
cmlidXRlSW50ZXJuYWwoaW5kZXgsIE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRl
KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAwYzU4MGUzZjY1MzkxZjUzMTY0NWE3ZGQ3ODEyNDk2MWRlYTYxNzZkLi5l
ZDI0MDE3ZGQ2OWQ3MzZhZDAzYzA2ZGI2MjNkYTBjOWZiYTIwYzQ4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTItMTAtMTUgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgor
CisgICAgICAgIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSBub3Qgd29ya2luZyBpbiBjZXJ0YWlu
IGNpcmN1bXN0YW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk5Mjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0eWxlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9jc3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS5odG1sOiBBZGRl
ZC4KKwogMjAxMi0xMC0xNSAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW1dlYlNvY2tldF0gV2ViU29ja2V0SW5mbGF0ZXIgc2hvdWxkIGhhbmRsZSBC
RklOQUwgPSAxIGJsb2NrcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVtb3Zl
LWF0dHJpYnV0ZS1zdHlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1v
dmUtYXR0cmlidXRlLXN0eWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmEzYTY4ZmM1ZjVh
NDIzYTg1MjVlZmQ3YzdiODdkOWU3YzA4NzIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNSBAQAorW2J1ZyA5OTI5NV0gcmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpIG5vdCB3b3JraW5n
IGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcy4gSWYgdGhpcyB0ZXN0IHBhc3NlcywgYWxsIGJhY2tn
cm91bmRDb2xvcnMgYXJlIHJnYmEoMCwgMCwgMCwgMCksIGkuZS4gYWxsIHN0eWxlcyBhcmUgcmVt
b3ZlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUoYzExKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMxMikuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMTMpLmJhY2tncm91
bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoYzIxKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGMyMikuYmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMjMpLmJhY2tncm91bmRDb2xvciBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUt
YXR0cmlidXRlLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtYXR0cmli
dXRlLXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTE5Zjk1YjMwN2ZhMDlhMDhmMjgzMTFiYWUzM2Uz
OTYzYTdmMTJmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92
ZS1hdHRyaWJ1dGUtc3R5bGUuaHRtbApAQCAtMCwwICsxLDc0IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgordGQgeworICAgIGRpc3Bs
YXk6IHRhYmxlLWNlbGw7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDogODBweDsKKyAg
ICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICB2
ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDx0
YWJsZSBpZD0idGFibGUiPgorICAgIDx0cj4KKyAgICAgIDx0ZCBpZD0iYzExIj5ubyBIVE1MIHN0
eWxlIGF0dHJpYnV0ZSwgbm8gZ2V0L3NldEF0dHJpYnV0ZTwvdGQ+CisgICAgICA8dGQgaWQ9ImMx
MiIgc3R5bGU9IiI+ZW1wdHkgSFRNTCBzdHlsZSBhdHRyaWJ1dGUsIG5vIGdldC9zZXRBdHRyaWJ1
dGU8L3RkPgorICAgICAgPHRkIGlkPSJjMTMiIHN0eWxlPSJvcGFjaXR5OiAxOyI+bm9uLWVtcHR5
IEhUTUwgc3R5bGUgYXR0cmlidXRlLCBubyBnZXQvc2V0QXR0cmlidXRlPC90ZD4KKyAgICA8L3Ry
PgorICAgIDx0cj4KKyAgICAgIDx0ZCBpZD0iYzIxIj5ubyBIVE1MIHN0eWxlIGF0dHJpYnV0ZSwg
Z2V0QXR0cmlidXRlIGJlZm9yZSBtb2RpZnlpbmcgSURMIGF0dHJpYnV0ZTwvdGQ+CisgICAgICA8
dGQgaWQ9ImMyMiI+bm8gSFRNTCBzdHlsZSBhdHRyaWJ1dGUsIGdldEF0dHJpYnV0ZSBhZnRlciBt
b2RpZnlpbmcgSURMIGF0dHJpYnV0ZTwvdGQ+CisgICAgICA8dGQgaWQ9ImMyMyI+bm8gSFRNTCBz
dHlsZSBhdHRyaWJ1dGUsIHNldEF0dHJpYnV0ZSBiZWZvcmUgcmVtb3ZlQXR0cmlidXRlPC90ZD4K
KyAgICA8L3RyPgorICA8L3RhYmxlPgorICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPHNj
cmlwdD4KKyAgICB2YXIgYzExID0gJCgnYzExJyksCisgICAgICAgIGMxMiA9ICQoJ2MxMicpLAor
ICAgICAgICBjMTMgPSAkKCdjMTMnKSwKKyAgICAgICAgYzIxID0gJCgnYzIxJyksCisgICAgICAg
IGMyMiA9ICQoJ2MyMicpLAorICAgICAgICBjMjMgPSAkKCdjMjMnKTsKKworICAgIGMxMS5zdHls
ZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmVkJzsKKyAgICBjMTEucmVtb3ZlQXR0cmlidXRlKCdzdHls
ZScpOworCisgICAgYzEyLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQnOworICAgIGMxMi5y
ZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7CisKKyAgICBjMTMuc3R5bGUuYmFja2dyb3VuZENvbG9y
ID0gJ3JlZCc7CisgICAgYzEzLnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTsKKworICAgIGMyMS5n
ZXRBdHRyaWJ1dGUoJ3N0eWxlJyk7CisgICAgYzIxLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdy
ZWQnOworICAgIGMyMS5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7CisKKyAgICBjMjIuc3R5bGUu
YmFja2dyb3VuZENvbG9yID0gJ3JlZCc7CisgICAgYzIyLmdldEF0dHJpYnV0ZSgnc3R5bGUnKTsK
KyAgICBjMjIucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpOworCisgICAgYzIzLnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9ICdyZWQnOworICAgIGMyMy5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJycpOwor
ICAgIGMyMy5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7CisKKyAgICBmdW5jdGlvbiAkKGlkKSB7
CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgfQorCisg
ICAgZGVzY3JpcHRpb24oIltidWcgOTkyOTVdIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSBub3Qg
d29ya2luZyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMuIElmIHRoaXMgdGVzdCBwYXNzZXMsIGFs
bCBiYWNrZ3JvdW5kQ29sb3JzIGFyZSByZ2JhKDAsIDAsIDAsIDApLCBpLmUuIGFsbCBzdHlsZXMg
YXJlIHJlbW92ZWQuIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMx
MSkuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAsIDAsIDAsIDApIicpOworICAgIHNob3VsZEJl
KCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMTIpLmJhY2tncm91bmRDb2xvciIsICcicmdiYSgw
LCAwLCAwLCAwKSInKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoYzEz
KS5iYWNrZ3JvdW5kQ29sb3IiLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7CisgICAgc2hvdWxkQmUo
IndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMyMSkuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAs
IDAsIDAsIDApIicpOworICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMjIp
LmJhY2tncm91bmRDb2xvciIsICcicmdiYSgwLCAwLCAwLCAwKSInKTsKKyAgICBzaG91bGRCZSgi
d2luZG93LmdldENvbXB1dGVkU3R5bGUoYzIzKS5iYWNrZ3JvdW5kQ29sb3IiLCAnInJnYmEoMCwg
MCwgMCwgMCkiJyk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxlJykuaW5uZXJI
VE1MID0gJyc7CisgIDwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168872</attachid>
            <date>2012-10-15 23:49:21 -0700</date>
            <delta_ts>2012-10-22 00:38:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99295-20121016154810.patch</filename>
            <type>text/plain</type>
            <size>6940</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQ0MTNmNjAzMDI5NjVj
NDNhNTUwNjRiMmYwYmEwMmE5ZjU4YzRhYi4uNGFlZGRhZjk0ZThlMDI4NTc4NjMwNDBkODQ3OTQw
NWUyMTczMWJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTE1ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICByZW1vdmVBdHRyaWJ1
dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTI5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gRWxlbWVudDo6cmVt
b3ZlQXR0cmlidXRlIGlzIGludm9rZWQsIGNoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIG5hbWUKKyAg
ICAgICAgaXMgJ3N0eWxlJyBvciBub3QuIElmIHRoZSBlbGVtZW50IGhhcyBubyBzdHlsZSBhdHRy
aWJ1dGUgYW5kIHN0eWxlIGlzCisgICAgICAgIGdpdmVuLCByZXNldCB0aGUgZWxlbWVudCdzIHN0
eWxlIGJ5IHVzaW5nIHJlbW92ZUJsb2NrUHJvcGVydGllcy4KKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0eWxlLmh0bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZSk6CisgICAg
ICAgIElmICdzdHlsZScgaXMgZ2l2ZW4gYnV0IHRoZSBlbGVtZW50IGhhcyBubyBzdHlsZSBhdHRy
aWJ1dGUsIGludm9rZQorICAgICAgICByZW1vdmVCbG9ja1Byb3BlcnRpZXMgdG8gcmVzZXQgdGhl
IHN0eWxlLiBBZnRlciB0aGUgcmVzZXQsIGludm9rZQorICAgICAgICBkaWRSZW1vdmVBdHRyaWJ1
dGUgdG8gbm90aWZ5IHRoYXQgdGhlIGVsZW1lbnQncyBzdHlsZSBpcyB1cGRhdGVkLgorCiAyMDEy
LTEwLTE1ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbV2ViU29ja2V0XSBXZWJTb2NrZXRJbmZsYXRlciBzaG91bGQgaGFuZGxlIEJGSU5BTCA9IDEg
YmxvY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggN2NiYTUxZjBkZjhjMjA0ZWU2OTU3NDU5
MDU4NTY3ZjZiYTExYTQ3Ny4uYWNkZjQzNDRlNzA4NTkyNGM1YTFiNTEyYWE4MDkyOTVlNzcyMGE1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkF0
dHIuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3Qu
aCIKKyNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ2xhc3NMaXN0
LmgiCiAjaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0Lmgi
CkBAIC0xNTcwLDggKzE1NzEsMTMgQEAgdm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lKQogCiAgICAgQXRvbWljU3RyaW5nIGxvY2FsTmFtZSA9IHNo
b3VsZElnbm9yZUF0dHJpYnV0ZUNhc2UodGhpcykgPyBuYW1lLmxvd2VyKCkgOiBuYW1lOwogICAg
IHNpemVfdCBpbmRleCA9IGF0dHJpYnV0ZURhdGEoKS0+Z2V0QXR0cmlidXRlSXRlbUluZGV4KGxv
Y2FsTmFtZSwgZmFsc2UpOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKKyAgICBpZiAoaW5k
ZXggPT0gbm90Rm91bmQpIHsKKyAgICAgICAgaWYgKGxvY2FsTmFtZSA9PSBzdHlsZUF0dHIgJiYg
c3R5bGUoKSAmJiBzdHlsZSgpLT5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIHN0eWxlKCkt
Pm1ha2VNdXRhYmxlKCktPnJlbW92ZUJsb2NrUHJvcGVydGllcygpOworICAgICAgICAgICAgZGlk
UmVtb3ZlQXR0cmlidXRlKFF1YWxpZmllZE5hbWUobnVsbEF0b20sIGxvY2FsTmFtZSwgbnVsbEF0
b20pKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgcmVtb3ZlQXR0
cmlidXRlSW50ZXJuYWwoaW5kZXgsIE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRl
KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAwYzU4MGUzZjY1MzkxZjUzMTY0NWE3ZGQ3ODEyNDk2MWRlYTYxNzZkLi5l
ZDI0MDE3ZGQ2OWQ3MzZhZDAzYzA2ZGI2MjNkYTBjOWZiYTIwYzQ4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTItMTAtMTUgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgor
CisgICAgICAgIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSBub3Qgd29ya2luZyBpbiBjZXJ0YWlu
IGNpcmN1bXN0YW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk5Mjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0eWxlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9jc3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS5odG1sOiBBZGRl
ZC4KKwogMjAxMi0xMC0xNSAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW1dlYlNvY2tldF0gV2ViU29ja2V0SW5mbGF0ZXIgc2hvdWxkIGhhbmRsZSBC
RklOQUwgPSAxIGJsb2NrcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVtb3Zl
LWF0dHJpYnV0ZS1zdHlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1v
dmUtYXR0cmlidXRlLXN0eWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmEzYTY4ZmM1ZjVh
NDIzYTg1MjVlZmQ3YzdiODdkOWU3YzA4NzIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNSBAQAorW2J1ZyA5OTI5NV0gcmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpIG5vdCB3b3JraW5n
IGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcy4gSWYgdGhpcyB0ZXN0IHBhc3NlcywgYWxsIGJhY2tn
cm91bmRDb2xvcnMgYXJlIHJnYmEoMCwgMCwgMCwgMCksIGkuZS4gYWxsIHN0eWxlcyBhcmUgcmVt
b3ZlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUoYzExKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMxMikuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMTMpLmJhY2tncm91
bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoYzIxKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGMyMikuYmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMjMpLmJhY2tncm91bmRDb2xvciBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUt
YXR0cmlidXRlLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtYXR0cmli
dXRlLXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTE5Zjk1YjMwN2ZhMDlhMDhmMjgzMTFiYWUzM2Uz
OTYzYTdmMTJmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92
ZS1hdHRyaWJ1dGUtc3R5bGUuaHRtbApAQCAtMCwwICsxLDc0IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgordGQgeworICAgIGRpc3Bs
YXk6IHRhYmxlLWNlbGw7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDogODBweDsKKyAg
ICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICB2
ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDx0
YWJsZSBpZD0idGFibGUiPgorICAgIDx0cj4KKyAgICAgIDx0ZCBpZD0iYzExIj5ubyBIVE1MIHN0
eWxlIGF0dHJpYnV0ZSwgbm8gZ2V0L3NldEF0dHJpYnV0ZTwvdGQ+CisgICAgICA8dGQgaWQ9ImMx
MiIgc3R5bGU9IiI+ZW1wdHkgSFRNTCBzdHlsZSBhdHRyaWJ1dGUsIG5vIGdldC9zZXRBdHRyaWJ1
dGU8L3RkPgorICAgICAgPHRkIGlkPSJjMTMiIHN0eWxlPSJvcGFjaXR5OiAxOyI+bm9uLWVtcHR5
IEhUTUwgc3R5bGUgYXR0cmlidXRlLCBubyBnZXQvc2V0QXR0cmlidXRlPC90ZD4KKyAgICA8L3Ry
PgorICAgIDx0cj4KKyAgICAgIDx0ZCBpZD0iYzIxIj5ubyBIVE1MIHN0eWxlIGF0dHJpYnV0ZSwg
Z2V0QXR0cmlidXRlIGJlZm9yZSBtb2RpZnlpbmcgSURMIGF0dHJpYnV0ZTwvdGQ+CisgICAgICA8
dGQgaWQ9ImMyMiI+bm8gSFRNTCBzdHlsZSBhdHRyaWJ1dGUsIGdldEF0dHJpYnV0ZSBhZnRlciBt
b2RpZnlpbmcgSURMIGF0dHJpYnV0ZTwvdGQ+CisgICAgICA8dGQgaWQ9ImMyMyI+bm8gSFRNTCBz
dHlsZSBhdHRyaWJ1dGUsIHNldEF0dHJpYnV0ZSBiZWZvcmUgcmVtb3ZlQXR0cmlidXRlPC90ZD4K
KyAgICA8L3RyPgorICA8L3RhYmxlPgorICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPHNj
cmlwdD4KKyAgICB2YXIgYzExID0gJCgnYzExJyksCisgICAgICAgIGMxMiA9ICQoJ2MxMicpLAor
ICAgICAgICBjMTMgPSAkKCdjMTMnKSwKKyAgICAgICAgYzIxID0gJCgnYzIxJyksCisgICAgICAg
IGMyMiA9ICQoJ2MyMicpLAorICAgICAgICBjMjMgPSAkKCdjMjMnKTsKKworICAgIGMxMS5zdHls
ZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmVkJzsKKyAgICBjMTEucmVtb3ZlQXR0cmlidXRlKCdzdHls
ZScpOworCisgICAgYzEyLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQnOworICAgIGMxMi5y
ZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7CisKKyAgICBjMTMuc3R5bGUuYmFja2dyb3VuZENvbG9y
ID0gJ3JlZCc7CisgICAgYzEzLnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTsKKworICAgIGMyMS5n
ZXRBdHRyaWJ1dGUoJ3N0eWxlJyk7CisgICAgYzIxLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdy
ZWQnOworICAgIGMyMS5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7CisKKyAgICBjMjIuc3R5bGUu
YmFja2dyb3VuZENvbG9yID0gJ3JlZCc7CisgICAgYzIyLmdldEF0dHJpYnV0ZSgnc3R5bGUnKTsK
KyAgICBjMjIucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpOworCisgICAgYzIzLnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9ICdyZWQnOworICAgIGMyMy5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJycpOwor
ICAgIGMyMy5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7CisKKyAgICBmdW5jdGlvbiAkKGlkKSB7
CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgfQorCisg
ICAgZGVzY3JpcHRpb24oIltidWcgOTkyOTVdIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSBub3Qg
d29ya2luZyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMuIElmIHRoaXMgdGVzdCBwYXNzZXMsIGFs
bCBiYWNrZ3JvdW5kQ29sb3JzIGFyZSByZ2JhKDAsIDAsIDAsIDApLCBpLmUuIGFsbCBzdHlsZXMg
YXJlIHJlbW92ZWQuIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMx
MSkuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAsIDAsIDAsIDApIicpOworICAgIHNob3VsZEJl
KCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMTIpLmJhY2tncm91bmRDb2xvciIsICcicmdiYSgw
LCAwLCAwLCAwKSInKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoYzEz
KS5iYWNrZ3JvdW5kQ29sb3IiLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7CisgICAgc2hvdWxkQmUo
IndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMyMSkuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAs
IDAsIDAsIDApIicpOworICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMjIp
LmJhY2tncm91bmRDb2xvciIsICcicmdiYSgwLCAwLCAwLCAwKSInKTsKKyAgICBzaG91bGRCZSgi
d2luZG93LmdldENvbXB1dGVkU3R5bGUoYzIzKS5iYWNrZ3JvdW5kQ29sb3IiLCAnInJnYmEoMCwg
MCwgMCwgMCkiJyk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxlJykuaW5uZXJI
VE1MID0gJyc7CisgIDwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169835</attachid>
            <date>2012-10-22 00:08:43 -0700</date>
            <delta_ts>2012-10-22 00:20:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99295-20121022160722.patch</filename>
            <type>text/plain</type>
            <size>10583</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhmZmY2NzhkNjcyZGQ2
ZGViOGI0NDkyNWE3YzhmZmNlYzhlMDAwMi4uYjVjODM5Mjc1MGU0ODM3NDRlM2FkODdmYWIyYmRh
MWQ0MjAwN2NlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEwLTIxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICByZW1vdmVBdHRyaWJ1
dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTI5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHdlYiBkZXZlbG9w
ZXJzIGRpZCBzdHlsZS5YWFhYPVlZWVkgZm9yIHNvbWUgZWxlbWVudCwgdGhlIGlubGluZQorICAg
ICAgICBzdHlsZSBzaG91bGQgYmUgYWx3YXlzIHJlbW92ZWQgYnkgdXNpbmcgInJlbW92ZUF0dHJp
YnV0ZSgnc3R5bGUnKSIuCisgICAgICAgIEN1cnJlbnRseSBpdCBkZXBlbmRzIG9uIHdoZXRoZXIg
d2ViIGRldmVsb3BlcnMgaW52b2tlcworICAgICAgICBnZXRBdHRyaWJ1dGUoJ3N0eWxlJyksIHNl
dEF0dHJpYnV0ZSgnc3R5bGUpLCBhbmQgc28gb24uIEUuZy4gb25jZSB0aGV5CisgICAgICAgIGlu
dm9rZSBnZXRBdHRyaWJ1dGUoJ3N0eWxlJyksIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSB3b3Jr
cy4gVGhpcyBpcworICAgICAgICB2ZXJ5IGNvbmZ1c2luZyBiZWhhdmlvci4KKyAgICAgICAgTG9v
a2luZyBhdCBGaXJlZm94IGJyb3dzZXIsIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSBhbHdheXMg
cmVtb3ZlcworICAgICAgICBhbGwgaW5saW5lIHN0eWxlcy4KKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0eWxlLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVBy
b3BlcnR5U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OmNsZWFy
KToKKyAgICAgICAgQWRkZWQgYSBuZXcgbWV0aG9kIHRvIHJlbW92ZSBhbGwgc3R5bGUgcHJvcGVy
dGllcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0
Lmg6CisgICAgICAgIChTdHlsZVByb3BlcnR5U2V0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUpOgorICAgICAg
ICBJZiAnc3R5bGUnIGlzIGdpdmVuIGJ1dCB0aGUgZWxlbWVudCBoYXMgbm8gc3R5bGUgYXR0cmli
dXRlLCB0aGUgb2xkCisgICAgICAgIGNvZGUgZGlkIG5vdGhpbmcuIEhvd2V2ZXIsIGlmIHRoZSBl
bGVtZW50IGlzIHN0eWxlZCBlbGVtZW50IGFuZCBoYXMgYW55CisgICAgICAgIGlubGluZSBzdHls
ZXMsIHRoZSBpbmxpbmUgc3R5bGVzIHNob3VsZCBiZSByZW1vdmVkLiBTbyBpbnZva2UKKyAgICAg
ICAgU3R5bGVkRWxlbWVudDo6Y2xlYXJJbmxpbmVTdHlsZVByb3BlcnR5IGFuZCBpZiBhbnkgaW5s
aW5lIHN0eWxlcyBhcmUKKyAgICAgICAgcmVtb3ZlZCwgaW52b2tlIHN0eWxlIHJlY2FsYywgdG9v
LgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlZEVsZW1lbnQ6OmNsZWFySW5saW5lU3R5bGVQcm9wZXJ0eSk6CisgICAgICAgIEFkZGVkIGEg
bmV3IG1ldGhvZCB0byByZW1vdmUgYWxsIGlubGluZSBzdHlsZSBwcm9wZXRpZXMuIElmIGFueSBp
bmxpbmUKKyAgICAgICAgc3R5bGUgaXMgcmVtb3ZlZCwgaW52b2tlIGlubGluZVN0eWxlQ2hhbmdl
ZCgpIHRvIGZvcmNlIHN0eWxlIHJlY2FsYy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGRvbS9TdHlsZWRFbGVtZW50Lmg6CisgICAgICAgIChTdHlsZWRFbGVtZW50KToKKwogMjAxMi0x
MC0yMSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogU2hhZG93IERPTTogTm9kZSByZW1vdmFsIGRvZXNuJ3QgcmVmbGVjdC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAppbmRleCA1ZTUyMmFmOTI5ZDlh
MTE1N2M0ZDhjMGE5MGY0OTE2OTJlMDI1ZGE3Li5mMDQyZWFlNWJjYmMxMmI2ZjI0N2QxMjM2N2Ji
ODNlMWI3M2FhOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
eVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCkBA
IC05NDMsNiArOTQzLDEyIEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGJsb2NrUHJvcGVy
dGllc1tdID0gewogICAgIENTU1Byb3BlcnR5V2lkb3dzCiB9OwogCit2b2lkIFN0eWxlUHJvcGVy
dHlTZXQ6OmNsZWFyKCkKK3sKKyAgICBBU1NFUlQoaXNNdXRhYmxlKCkpOworICAgIG11dGFibGVQ
cm9wZXJ0eVZlY3RvcigpLmNsZWFyKCk7Cit9CisKIGNvbnN0IHVuc2lnbmVkIG51bUJsb2NrUHJv
cGVydGllcyA9IFdURl9BUlJBWV9MRU5HVEgoYmxvY2tQcm9wZXJ0aWVzKTsKIAogUGFzc1JlZlB0
cjxTdHlsZVByb3BlcnR5U2V0PiBTdHlsZVByb3BlcnR5U2V0Ojpjb3B5QmxvY2tQcm9wZXJ0aWVz
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCmluZGV4IDQ0YjZiMTlm
Y2ZiNzk5MTcwM2Y5YmUyMWRhZGYwYWNkYjU4MWYxMjQuLmM0NTNiOTlmMjRkMjYwZDI4MGNhYzMz
YWI0OTQ4NmM3YjhmNjMwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVBy
b3BlcnR5U2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaApA
QCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRQYXJzZWRQcm9wZXJ0aWVzKGNv
bnN0IFZlY3RvcjxDU1NQcm9wZXJ0eT4mKTsKICAgICB2b2lkIGFkZFBhcnNlZFByb3BlcnR5KGNv
bnN0IENTU1Byb3BlcnR5Jik7CiAKKyAgICB2b2lkIGNsZWFyKCk7CiAgICAgUGFzc1JlZlB0cjxT
dHlsZVByb3BlcnR5U2V0PiBjb3B5QmxvY2tQcm9wZXJ0aWVzKCkgY29uc3Q7CiAgICAgdm9pZCBy
ZW1vdmVCbG9ja1Byb3BlcnRpZXMoKTsKICAgICBib29sIHJlbW92ZVByb3BlcnRpZXNJblNldChj
b25zdCBDU1NQcm9wZXJ0eUlEKiBzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKaW5kZXggNjlmNjY2NmE1MDZhNDIyNTMwYTQxMTU1MTA4YWM0MDc2YTRlMzA3MS4uYmQ4
NGE3OWVkM2MzNDA1ZjFjZmQxODBmZjU3OTRjM2Q1MWM0OWMyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcApAQCAtMTU3NSw4ICsxNTc1LDExIEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlQXR0cmlidXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKIAogICAgIEF0b21pY1N0cmluZyBsb2NhbE5hbWUg
PSBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKHRoaXMpID8gbmFtZS5sb3dlcigpIDogbmFtZTsK
ICAgICBzaXplX3QgaW5kZXggPSBhdHRyaWJ1dGVEYXRhKCktPmdldEF0dHJpYnV0ZUl0ZW1JbmRl
eChsb2NhbE5hbWUsIGZhbHNlKTsKLSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCisgICAgaWYg
KGluZGV4ID09IG5vdEZvdW5kKSB7CisgICAgICAgIGlmIChsb2NhbE5hbWUgPT0gc3R5bGVBdHRy
ICYmIGlzU3R5bGVkRWxlbWVudCgpKQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8U3R5bGVkRWxl
bWVudCo+KHRoaXMpLT5jbGVhcklubGluZVN0eWxlUHJvcGVydHkoKTsKICAgICAgICAgcmV0dXJu
OworICAgIH0KIAogICAgIHJlbW92ZUF0dHJpYnV0ZUludGVybmFsKGluZGV4LCBOb3RJblN5bmNo
cm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVu
dC5jcHAKaW5kZXggZDRjNWU5NGI5Mjk1YmFkMzYxZGQxNTlhNWFhMGE0YjdjMGY0YmJlZi4uNmIy
NzQ0ODhmOTE3MDZjNWYwYTdiYzJkMzhmMzQ2ZDIyZDVkNjNhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dHlsZWRFbGVtZW50LmNwcApAQCAtMjIxLDYgKzIyMSwxNyBAQCBib29sIFN0eWxlZEVsZW1lbnQ6
OnJlbW92ZUlubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogICAg
IHJldHVybiBjaGFuZ2VzOwogfQogCit2b2lkIFN0eWxlZEVsZW1lbnQ6OmNsZWFySW5saW5lU3R5
bGVQcm9wZXJ0eSgpCit7CisgICAgaWYgKCFhdHRyaWJ1dGVEYXRhKCkgfHwgIWF0dHJpYnV0ZURh
dGEoKS0+aW5saW5lU3R5bGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFN0eWxlUHJvcGVydHlT
ZXQqIGlubGluZVN0eWxlUHJvcGVydHlTZXQgPSBlbnN1cmVJbmxpbmVTdHlsZSgpOworICAgIGlm
IChpbmxpbmVTdHlsZVByb3BlcnR5U2V0LT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBpbmxpbmVTdHlsZVByb3BlcnR5U2V0LT5jbGVhcigpOworICAgIGlubGluZVN0eWxlQ2hhbmdl
ZCgpOworfQorCiB2b2lkIFN0eWxlZEVsZW1lbnQ6OmFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJM
cyhMaXN0SGFzaFNldDxLVVJMPiYgdXJscykgY29uc3QKIHsKICAgICBpZiAoY29uc3QgU3R5bGVQ
cm9wZXJ0eVNldCogaW5saW5lU3R5bGUgPSBhdHRyaWJ1dGVEYXRhKCkgPyBhdHRyaWJ1dGVEYXRh
KCktPmlubGluZVN0eWxlKCkgOiAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0
eWxlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKaW5kZXgg
MGQwZjc3M2NhZGNjNmRmYTY2NjBhNzViYTdkNzhmNDQ1OWZmMjZmOS4uMmExOWUzMGU2OTVjZjRm
Y2M3MzhkYWJhMTI5NDA1N2M1MzFhZjBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1N0eWxlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5o
CkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNldElubGluZVN0eWxlUHJvcGVy
dHkoQ1NTUHJvcGVydHlJRCwgZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5
cGVzLCBib29sIGltcG9ydGFudCA9IGZhbHNlKTsKICAgICBib29sIHNldElubGluZVN0eWxlUHJv
cGVydHkoQ1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQg
PSBmYWxzZSk7CiAgICAgYm9vbCByZW1vdmVJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5
SUQpOworICAgIHZvaWQgY2xlYXJJbmxpbmVTdHlsZVByb3BlcnR5KCk7CiAgICAgCiAgICAgdmly
dHVhbCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSgpIE9WRVJSSURFOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjZl
OGU2NDVkNWQ3NzUxOWE0N2NhZDNkZDUzYmU4ZTM5NGRiZTI0Yi4uMWQ3ZGNhOTliMjQ2MmM5ZGUz
NzQ5ZmZiNzRlYjY2MWYyZDlhM2U3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTEwLTIx
ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICByZW1vdmVB
dHRyaWJ1dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTI5NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3Mv
cmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUuaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMjEg
IFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFNoYWRvdyBET006IE5vZGUgcmVtb3ZhbCBkb2Vzbid0IHJlZmxlY3QuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0eWxlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYTNhNjhmYzVmNWE0MjNhODUyNWVmZDdjN2I4N2Q5ZTdj
MDg3MjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtYXR0
cmlidXRlLXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitbYnVnIDk5Mjk1XSBy
ZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2VydGFpbiBjaXJjdW1zdGFu
Y2VzLiBJZiB0aGlzIHRlc3QgcGFzc2VzLCBhbGwgYmFja2dyb3VuZENvbG9ycyBhcmUgcmdiYSgw
LCAwLCAwLCAwKSwgaS5lLiBhbGwgc3R5bGVzIGFyZSByZW1vdmVkLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMTEpLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoYzEyKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGMxMykuYmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAs
IDAsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMjEpLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoYzIy
KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGMyMykuYmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAsIDApIgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44OGUwN2Y1NDFhZGI4MTA2MzM2MjU0Y2ZhMWVkNzZhYzg5YzY4Y2ZmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS5odG1s
CkBAIC0wLDAgKzEsODEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+Cit0ZCB7CisgICAgZGlzcGxheTogdGFibGUtY2VsbDsKKyAgICB3
aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0OiA4MHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkICNj
Y2M7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7
Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHRhYmxlIGlkPSJ0YWJsZSI+CisgICAg
PHRyPgorICAgICAgPHRkIGlkPSJjMTEiPm5vIEhUTUwgc3R5bGUgYXR0cmlidXRlLCBubyBnZXQv
c2V0QXR0cmlidXRlPC90ZD4KKyAgICAgIDx0ZCBpZD0iYzEyIiBzdHlsZT0iIj5lbXB0eSBIVE1M
IHN0eWxlIGF0dHJpYnV0ZSwgbm8gZ2V0L3NldEF0dHJpYnV0ZTwvdGQ+CisgICAgICA8dGQgaWQ9
ImMxMyIgc3R5bGU9Im9wYWNpdHk6IDE7Ij5ub24tZW1wdHkgSFRNTCBzdHlsZSBhdHRyaWJ1dGUs
IG5vIGdldC9zZXRBdHRyaWJ1dGU8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRk
IGlkPSJjMjEiPm5vIEhUTUwgc3R5bGUgYXR0cmlidXRlLCBnZXRBdHRyaWJ1dGUgYmVmb3JlIG1v
ZGlmeWluZyBJREwgYXR0cmlidXRlPC90ZD4KKyAgICAgIDx0ZCBpZD0iYzIyIj5ubyBIVE1MIHN0
eWxlIGF0dHJpYnV0ZSwgZ2V0QXR0cmlidXRlIGFmdGVyIG1vZGlmeWluZyBJREwgYXR0cmlidXRl
PC90ZD4KKyAgICAgIDx0ZCBpZD0iYzIzIj5ubyBIVE1MIHN0eWxlIGF0dHJpYnV0ZSwgc2V0QXR0
cmlidXRlIGJlZm9yZSByZW1vdmVBdHRyaWJ1dGU8L3RkPgorICAgIDwvdHI+CisgIDwvdGFibGU+
CisgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJbYnVnIDk5Mjk1XSByZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2Vy
dGFpbiBjaXJjdW1zdGFuY2VzLiBJZiB0aGlzIHRlc3QgcGFzc2VzLCBhbGwgYmFja2dyb3VuZENv
bG9ycyBhcmUgcmdiYSgwLCAwLCAwLCAwKSwgaS5lLiBhbGwgc3R5bGVzIGFyZSByZW1vdmVkLiIp
OworCisgICAgdmFyIGMxMSA9ICQoJ2MxMScpLAorICAgICAgICBjMTIgPSAkKCdjMTInKSwKKyAg
ICAgICAgYzEzID0gJCgnYzEzJyksCisgICAgICAgIGMyMSA9ICQoJ2MyMScpLAorICAgICAgICBj
MjIgPSAkKCdjMjInKSwKKyAgICAgICAgYzIzID0gJCgnYzIzJyk7CisKKyAgICBjMTEuc3R5bGUu
YmFja2dyb3VuZENvbG9yID0gJ3JlZCc7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0Owor
ICAgIGMxMS5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7CisgICAgc2hvdWxkQmUoIndpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGMxMSkuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAsIDAsIDAsIDAp
IicpOworCisgICAgYzEyLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQnOworICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBjMTIucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpOwor
ICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMTIpLmJhY2tncm91bmRDb2xv
ciIsICcicmdiYSgwLCAwLCAwLCAwKSInKTsKKworICAgIGMxMy5zdHlsZS5iYWNrZ3JvdW5kQ29s
b3IgPSAncmVkJzsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgYzEzLnJlbW92
ZUF0dHJpYnV0ZSgnc3R5bGUnKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5
bGUoYzEzKS5iYWNrZ3JvdW5kQ29sb3IiLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7CisKKyAgICBj
MjEuZ2V0QXR0cmlidXRlKCdzdHlsZScpOworICAgIGMyMS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ig
PSAncmVkJzsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgYzIxLnJlbW92ZUF0
dHJpYnV0ZSgnc3R5bGUnKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUo
YzIxKS5iYWNrZ3JvdW5kQ29sb3IiLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7CisKKyAgICBjMjIu
c3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3JlZCc7CisgICAgYzIyLmdldEF0dHJpYnV0ZSgnc3R5
bGUnKTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgYzIyLnJlbW92ZUF0dHJp
YnV0ZSgnc3R5bGUnKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoYzIy
KS5iYWNrZ3JvdW5kQ29sb3IiLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7CisKKyAgICBjMjMuc3R5
bGUuYmFja2dyb3VuZENvbG9yID0gJ3JlZCc7CisgICAgYzIzLnNldEF0dHJpYnV0ZSgnc3R5bGUn
LCAnJyk7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIGMyMy5yZW1vdmVBdHRy
aWJ1dGUoJ3N0eWxlJyk7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMy
MykuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAsIDAsIDAsIDApIicpOworCisgICAgZnVuY3Rp
b24gJChpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwor
ICAgIH0KKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YWJsZScpLmlubmVySFRNTCA9
ICcnOworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169836</attachid>
            <date>2012-10-22 00:20:22 -0700</date>
            <delta_ts>2012-11-04 23:09:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99295-20121022161901.patch</filename>
            <type>text/plain</type>
            <size>10621</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhmZmY2NzhkNjcyZGQ2
ZGViOGI0NDkyNWE3YzhmZmNlYzhlMDAwMi4uYjVjODM5Mjc1MGU0ODM3NDRlM2FkODdmYWIyYmRh
MWQ0MjAwN2NlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEwLTIxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICByZW1vdmVBdHRyaWJ1
dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTI5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHdlYiBkZXZlbG9w
ZXJzIGRpZCBzdHlsZS5YWFhYPVlZWVkgZm9yIHNvbWUgZWxlbWVudCwgdGhlIGlubGluZQorICAg
ICAgICBzdHlsZSBzaG91bGQgYmUgYWx3YXlzIHJlbW92ZWQgYnkgdXNpbmcgInJlbW92ZUF0dHJp
YnV0ZSgnc3R5bGUnKSIuCisgICAgICAgIEN1cnJlbnRseSBpdCBkZXBlbmRzIG9uIHdoZXRoZXIg
d2ViIGRldmVsb3BlcnMgaW52b2tlcworICAgICAgICBnZXRBdHRyaWJ1dGUoJ3N0eWxlJyksIHNl
dEF0dHJpYnV0ZSgnc3R5bGUpLCBhbmQgc28gb24uIEUuZy4gb25jZSB0aGV5CisgICAgICAgIGlu
dm9rZSBnZXRBdHRyaWJ1dGUoJ3N0eWxlJyksIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSB3b3Jr
cy4gVGhpcyBpcworICAgICAgICB2ZXJ5IGNvbmZ1c2luZyBiZWhhdmlvci4KKyAgICAgICAgTG9v
a2luZyBhdCBGaXJlZm94IGJyb3dzZXIsIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSBhbHdheXMg
cmVtb3ZlcworICAgICAgICBhbGwgaW5saW5lIHN0eWxlcy4KKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0eWxlLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVBy
b3BlcnR5U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OmNsZWFy
KToKKyAgICAgICAgQWRkZWQgYSBuZXcgbWV0aG9kIHRvIHJlbW92ZSBhbGwgc3R5bGUgcHJvcGVy
dGllcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0
Lmg6CisgICAgICAgIChTdHlsZVByb3BlcnR5U2V0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUpOgorICAgICAg
ICBJZiAnc3R5bGUnIGlzIGdpdmVuIGJ1dCB0aGUgZWxlbWVudCBoYXMgbm8gc3R5bGUgYXR0cmli
dXRlLCB0aGUgb2xkCisgICAgICAgIGNvZGUgZGlkIG5vdGhpbmcuIEhvd2V2ZXIsIGlmIHRoZSBl
bGVtZW50IGlzIHN0eWxlZCBlbGVtZW50IGFuZCBoYXMgYW55CisgICAgICAgIGlubGluZSBzdHls
ZXMsIHRoZSBpbmxpbmUgc3R5bGVzIHNob3VsZCBiZSByZW1vdmVkLiBTbyBpbnZva2UKKyAgICAg
ICAgU3R5bGVkRWxlbWVudDo6Y2xlYXJJbmxpbmVTdHlsZVByb3BlcnR5IGFuZCBpZiBhbnkgaW5s
aW5lIHN0eWxlcyBhcmUKKyAgICAgICAgcmVtb3ZlZCwgaW52b2tlIHN0eWxlIHJlY2FsYywgdG9v
LgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlZEVsZW1lbnQ6OmNsZWFySW5saW5lU3R5bGVQcm9wZXJ0eSk6CisgICAgICAgIEFkZGVkIGEg
bmV3IG1ldGhvZCB0byByZW1vdmUgYWxsIGlubGluZSBzdHlsZSBwcm9wZXRpZXMuIElmIGFueSBp
bmxpbmUKKyAgICAgICAgc3R5bGUgaXMgcmVtb3ZlZCwgaW52b2tlIGlubGluZVN0eWxlQ2hhbmdl
ZCgpIHRvIGZvcmNlIHN0eWxlIHJlY2FsYy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGRvbS9TdHlsZWRFbGVtZW50Lmg6CisgICAgICAgIChTdHlsZWRFbGVtZW50KToKKwogMjAxMi0x
MC0yMSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogU2hhZG93IERPTTogTm9kZSByZW1vdmFsIGRvZXNuJ3QgcmVmbGVjdC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAppbmRleCA1ZTUyMmFmOTI5ZDlh
MTE1N2M0ZDhjMGE5MGY0OTE2OTJlMDI1ZGE3Li5mMDQyZWFlNWJjYmMxMmI2ZjI0N2QxMjM2N2Ji
ODNlMWI3M2FhOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
eVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCkBA
IC05NDMsNiArOTQzLDEyIEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGJsb2NrUHJvcGVy
dGllc1tdID0gewogICAgIENTU1Byb3BlcnR5V2lkb3dzCiB9OwogCit2b2lkIFN0eWxlUHJvcGVy
dHlTZXQ6OmNsZWFyKCkKK3sKKyAgICBBU1NFUlQoaXNNdXRhYmxlKCkpOworICAgIG11dGFibGVQ
cm9wZXJ0eVZlY3RvcigpLmNsZWFyKCk7Cit9CisKIGNvbnN0IHVuc2lnbmVkIG51bUJsb2NrUHJv
cGVydGllcyA9IFdURl9BUlJBWV9MRU5HVEgoYmxvY2tQcm9wZXJ0aWVzKTsKIAogUGFzc1JlZlB0
cjxTdHlsZVByb3BlcnR5U2V0PiBTdHlsZVByb3BlcnR5U2V0Ojpjb3B5QmxvY2tQcm9wZXJ0aWVz
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCmluZGV4IDQ0YjZiMTlm
Y2ZiNzk5MTcwM2Y5YmUyMWRhZGYwYWNkYjU4MWYxMjQuLmM0NTNiOTlmMjRkMjYwZDI4MGNhYzMz
YWI0OTQ4NmM3YjhmNjMwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVBy
b3BlcnR5U2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaApA
QCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRQYXJzZWRQcm9wZXJ0aWVzKGNv
bnN0IFZlY3RvcjxDU1NQcm9wZXJ0eT4mKTsKICAgICB2b2lkIGFkZFBhcnNlZFByb3BlcnR5KGNv
bnN0IENTU1Byb3BlcnR5Jik7CiAKKyAgICB2b2lkIGNsZWFyKCk7CiAgICAgUGFzc1JlZlB0cjxT
dHlsZVByb3BlcnR5U2V0PiBjb3B5QmxvY2tQcm9wZXJ0aWVzKCkgY29uc3Q7CiAgICAgdm9pZCBy
ZW1vdmVCbG9ja1Byb3BlcnRpZXMoKTsKICAgICBib29sIHJlbW92ZVByb3BlcnRpZXNJblNldChj
b25zdCBDU1NQcm9wZXJ0eUlEKiBzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKaW5kZXggNjlmNjY2NmE1MDZhNDIyNTMwYTQxMTU1MTA4YWM0MDc2YTRlMzA3MS4uOGJk
YWE0NDAzZjUwMzc0MDRkMWY2ZTg5Nzk5YzdmZDQyNjQ4NTNlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcApAQCAtMTU3NSw4ICsxNTc1LDExIEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlQXR0cmlidXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKIAogICAgIEF0b21pY1N0cmluZyBsb2NhbE5hbWUg
PSBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKHRoaXMpID8gbmFtZS5sb3dlcigpIDogbmFtZTsK
ICAgICBzaXplX3QgaW5kZXggPSBhdHRyaWJ1dGVEYXRhKCktPmdldEF0dHJpYnV0ZUl0ZW1JbmRl
eChsb2NhbE5hbWUsIGZhbHNlKTsKLSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCisgICAgaWYg
KGluZGV4ID09IG5vdEZvdW5kKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShsb2NhbE5hbWUgPT0g
c3R5bGVBdHRyKSAmJiAhaXNTdHlsZUF0dHJpYnV0ZVZhbGlkKCkgJiYgaXNTdHlsZWRFbGVtZW50
KCkpCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4odGhpcyktPmNsZWFy
SW5saW5lU3R5bGVQcm9wZXJ0eSgpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgcmVt
b3ZlQXR0cmlidXRlSW50ZXJuYWwoaW5kZXgsIE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0
cmlidXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAppbmRleCBkNGM1ZTk0
YjkyOTViYWQzNjFkZDE1OWE1YWEwYTRiN2MwZjRiYmVmLi42YjI3NDQ4OGY5MTcwNmM1ZjBhN2Jj
MmQzOGYzNDZkMjJkNWQ2M2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVk
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCkBA
IC0yMjEsNiArMjIxLDE3IEBAIGJvb2wgU3R5bGVkRWxlbWVudDo6cmVtb3ZlSW5saW5lU3R5bGVQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgcmV0dXJuIGNoYW5nZXM7CiB9
CiAKK3ZvaWQgU3R5bGVkRWxlbWVudDo6Y2xlYXJJbmxpbmVTdHlsZVByb3BlcnR5KCkKK3sKKyAg
ICBpZiAoIWF0dHJpYnV0ZURhdGEoKSB8fCAhYXR0cmlidXRlRGF0YSgpLT5pbmxpbmVTdHlsZSgp
KQorICAgICAgICByZXR1cm47CisgICAgU3R5bGVQcm9wZXJ0eVNldCogaW5saW5lU3R5bGVQcm9w
ZXJ0eVNldCA9IGVuc3VyZUlubGluZVN0eWxlKCk7CisgICAgaWYgKGlubGluZVN0eWxlUHJvcGVy
dHlTZXQtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlubGluZVN0eWxlUHJvcGVy
dHlTZXQtPmNsZWFyKCk7CisgICAgaW5saW5lU3R5bGVDaGFuZ2VkKCk7Cit9CisKIHZvaWQgU3R5
bGVkRWxlbWVudDo6YWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PEtVUkw+
JiB1cmxzKSBjb25zdAogewogICAgIGlmIChjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBpbmxpbmVT
dHlsZSA9IGF0dHJpYnV0ZURhdGEoKSA/IGF0dHJpYnV0ZURhdGEoKS0+aW5saW5lU3R5bGUoKSA6
IDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAppbmRleCAwZDBmNzczY2FkY2M2ZGZhNjY2
MGE3NWJhN2Q3OGY0NDU5ZmYyNmY5Li4yYTE5ZTMwZTY5NWNmNGZjYzczOGRhYmExMjk0MDU3YzUz
MWFmMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKQEAgLTQ4LDYgKzQ4LDcgQEAg
cHVibGljOgogICAgIGJvb2wgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBk
b3VibGUgdmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMsIGJvb2wgaW1wb3J0YW50
ID0gZmFsc2UpOwogICAgIGJvb2wgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUlE
LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCA9IGZhbHNlKTsKICAgICBib29s
IHJlbW92ZUlubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlJRCk7CisgICAgdm9pZCBjbGVh
cklubGluZVN0eWxlUHJvcGVydHkoKTsKICAgICAKICAgICB2aXJ0dWFsIENTU1N0eWxlRGVjbGFy
YXRpb24qIHN0eWxlKCkgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NmU4ZTY0NWQ1ZDc3NTE5YTQ3Y2Fk
M2RkNTNiZThlMzk0ZGJlMjRiLi4xZDdkY2E5OWIyNDYyYzlkZTM3NDlmZmI3NGViNjYxZjJkOWEz
ZTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTAtMjEgIFRha2FzaGkgU2FrYW1vdG8g
IDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSBu
b3Qgd29ya2luZyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5Mjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0
eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcmVtb3ZlLWF0dHJp
YnV0ZS1zdHlsZS5odG1sOiBBZGRlZC4KKwogMjAxMi0xMC0yMSAgU2hpbnlhIEthd2FuYWthICA8
c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU2hhZG93IERP
TTogTm9kZSByZW1vdmFsIGRvZXNuJ3QgcmVmbGVjdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWJhM2E2OGZjNWY1YTQyM2E4NTI1ZWZkN2M3Yjg3ZDllN2MwODcyMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1tidWcgOTkyOTVdIHJlbW92ZUF0dHJpYnV0ZSgnc3R5
bGUnKSBub3Qgd29ya2luZyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMuIElmIHRoaXMgdGVzdCBw
YXNzZXMsIGFsbCBiYWNrZ3JvdW5kQ29sb3JzIGFyZSByZ2JhKDAsIDAsIDAsIDApLCBpLmUuIGFs
bCBzdHlsZXMgYXJlIHJlbW92ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMxMSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMTIpLmJhY2tncm91
bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoYzEzKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGMyMSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMjIpLmJhY2tncm91bmRDb2xvciBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoYzIzKS5i
YWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4ZTA3ZjU0MWFkYjgx
MDYzMzYyNTRjZmExZWQ3NmFjODljNjhjZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0eWxlLmh0bWwKQEAgLTAsMCArMSw4MSBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
K3RkIHsKKyAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOworICAgIHdpZHRoOiAyMDBweDsKKyAgICBo
ZWlnaHQ6IDgwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKKyAgICB0ZXh0LWFsaWdu
OiBjZW50ZXI7CisgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKK30KKzwvc3R5bGU+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICA8dGFibGUgaWQ9InRhYmxlIj4KKyAgICA8dHI+CisgICAgICA8dGQgaWQ9
ImMxMSI+bm8gSFRNTCBzdHlsZSBhdHRyaWJ1dGUsIG5vIGdldC9zZXRBdHRyaWJ1dGU8L3RkPgor
ICAgICAgPHRkIGlkPSJjMTIiIHN0eWxlPSIiPmVtcHR5IEhUTUwgc3R5bGUgYXR0cmlidXRlLCBu
byBnZXQvc2V0QXR0cmlidXRlPC90ZD4KKyAgICAgIDx0ZCBpZD0iYzEzIiBzdHlsZT0ib3BhY2l0
eTogMTsiPm5vbi1lbXB0eSBIVE1MIHN0eWxlIGF0dHJpYnV0ZSwgbm8gZ2V0L3NldEF0dHJpYnV0
ZTwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQgaWQ9ImMyMSI+bm8gSFRNTCBz
dHlsZSBhdHRyaWJ1dGUsIGdldEF0dHJpYnV0ZSBiZWZvcmUgbW9kaWZ5aW5nIElETCBhdHRyaWJ1
dGU8L3RkPgorICAgICAgPHRkIGlkPSJjMjIiPm5vIEhUTUwgc3R5bGUgYXR0cmlidXRlLCBnZXRB
dHRyaWJ1dGUgYWZ0ZXIgbW9kaWZ5aW5nIElETCBhdHRyaWJ1dGU8L3RkPgorICAgICAgPHRkIGlk
PSJjMjMiPm5vIEhUTUwgc3R5bGUgYXR0cmlidXRlLCBzZXRBdHRyaWJ1dGUgYmVmb3JlIHJlbW92
ZUF0dHJpYnV0ZTwvdGQ+CisgICAgPC90cj4KKyAgPC90YWJsZT4KKyAgPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisgIDxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIltidWcgOTkyOTVdIHJlbW92
ZUF0dHJpYnV0ZSgnc3R5bGUnKSBub3Qgd29ya2luZyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMu
IElmIHRoaXMgdGVzdCBwYXNzZXMsIGFsbCBiYWNrZ3JvdW5kQ29sb3JzIGFyZSByZ2JhKDAsIDAs
IDAsIDApLCBpLmUuIGFsbCBzdHlsZXMgYXJlIHJlbW92ZWQuIik7CisKKyAgICB2YXIgYzExID0g
JCgnYzExJyksCisgICAgICAgIGMxMiA9ICQoJ2MxMicpLAorICAgICAgICBjMTMgPSAkKCdjMTMn
KSwKKyAgICAgICAgYzIxID0gJCgnYzIxJyksCisgICAgICAgIGMyMiA9ICQoJ2MyMicpLAorICAg
ICAgICBjMjMgPSAkKCdjMjMnKTsKKworICAgIGMxMS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAn
cmVkJzsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgYzExLnJlbW92ZUF0dHJp
YnV0ZSgnc3R5bGUnKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoYzEx
KS5iYWNrZ3JvdW5kQ29sb3IiLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7CisKKyAgICBjMTIuc3R5
bGUuYmFja2dyb3VuZENvbG9yID0gJ3JlZCc7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0
OworICAgIGMxMi5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7CisgICAgc2hvdWxkQmUoIndpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGMxMikuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAsIDAsIDAs
IDApIicpOworCisgICAgYzEzLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQnOworICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBjMTMucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScp
OworICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMTMpLmJhY2tncm91bmRD
b2xvciIsICcicmdiYSgwLCAwLCAwLCAwKSInKTsKKworICAgIGMyMS5nZXRBdHRyaWJ1dGUoJ3N0
eWxlJyk7CisgICAgYzIxLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQnOworICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBjMjEucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpOwor
ICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMjEpLmJhY2tncm91bmRDb2xv
ciIsICcicmdiYSgwLCAwLCAwLCAwKSInKTsKKworICAgIGMyMi5zdHlsZS5iYWNrZ3JvdW5kQ29s
b3IgPSAncmVkJzsKKyAgICBjMjIuZ2V0QXR0cmlidXRlKCdzdHlsZScpOworICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBjMjIucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpOworICAg
IHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjMjIpLmJhY2tncm91bmRDb2xvciIs
ICcicmdiYSgwLCAwLCAwLCAwKSInKTsKKworICAgIGMyMy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ig
PSAncmVkJzsKKyAgICBjMjMuc2V0QXR0cmlidXRlKCdzdHlsZScsICcnKTsKKyAgICBkb2N1bWVu
dC5ib2R5Lm9mZnNldExlZnQ7CisgICAgYzIzLnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTsKKyAg
ICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoYzIzKS5iYWNrZ3JvdW5kQ29sb3Ii
LCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7CisKKyAgICBmdW5jdGlvbiAkKGlkKSB7CisgICAgICAg
IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgfQorCisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxlJykuaW5uZXJIVE1MID0gJyc7CisgIDwvc2NyaXB0Pgor
ICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172273</attachid>
            <date>2012-11-04 23:04:58 -0800</date>
            <delta_ts>2012-11-06 01:22:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99295-20121105160312.patch</filename>
            <type>text/plain</type>
            <size>12274</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE0YTliNzE2N2ViMmFj
NWM0MDU4NTc4NTAxYWM5MmViZTcyYmU1MC4uNTA0ZWQ5NGFhYjhjYzM1YmY4NDhiMzYxNDlhNmFh
NThjZDdiNzhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEwLTIxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICByZW1vdmVBdHRyaWJ1
dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTI5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHdlYiBkZXZlbG9w
ZXJzIGRpZCBzdHlsZS5YWFhYPVlZWVkgZm9yIHNvbWUgZWxlbWVudCwgdGhlIGlubGluZQorICAg
ICAgICBzdHlsZSBzaG91bGQgYmUgYWx3YXlzIHJlbW92YWJsZSBieSB1c2luZyAicmVtb3ZlQXR0
cmlidXRlKCdzdHlsZScpIi4KKyAgICAgICAgQ3VycmVudGx5IGl0IGRlcGVuZHMgb24gd2hldGhl
ciB3ZWIgZGV2ZWxvcGVycyBpbnZva2VzCisgICAgICAgIGdldEF0dHJpYnV0ZSgnc3R5bGUnKSwg
c2V0QXR0cmlidXRlKCdzdHlsZSksIGFuZCBzbyBvbi4gRS5nLiBvbmNlIHRoZXkKKyAgICAgICAg
aW52b2tlIGdldEF0dHJpYnV0ZSgnc3R5bGUnKSwgcmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpIHdv
cmtzLiBUaGlzIGlzCisgICAgICAgIHZlcnkgY29uZnVzaW5nIGJlaGF2aW9yLgorICAgICAgICBM
b29raW5nIGF0IEZpcmVmb3ggYnJvd3NlciwgcmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpIGFsd2F5
cyByZW1vdmVzCisgICAgICAgIGFsbCBpbmxpbmUgc3R5bGVzLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUuaHRtbAorCisgICAgICAgICogY3NzL1N0eWxl
UHJvcGVydHlTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6Y2xl
YXIpOgorICAgICAgICBBZGRlZCBhIG5ldyBtZXRob2QgdG8gcmVtb3ZlIGFsbCBzdHlsZSBwcm9w
ZXJ0aWVzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlT
ZXQuaDoKKyAgICAgICAgKFN0eWxlUHJvcGVydHlTZXQpOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZSk6CisgICAg
ICAgIElmICdzdHlsZScgaXMgZ2l2ZW4gYnV0IHRoZSBlbGVtZW50IGhhcyBubyBzdHlsZSBhdHRy
aWJ1dGUsIHRoZSBvbGQKKyAgICAgICAgY29kZSBkaWQgbm90aGluZy4gSG93ZXZlciwgaWYgdGhl
IGVsZW1lbnQgaXMgc3R5bGVkIGVsZW1lbnQgYW5kIGhhcyBhbnkKKyAgICAgICAgaW5saW5lIHN0
eWxlcywgdGhlIGlubGluZSBzdHlsZXMgc2hvdWxkIGJlIHJlbW92ZWQuIFNvIGludm9rZQorICAg
ICAgICBTdHlsZWRFbGVtZW50OjpjbGVhcklubGluZVN0eWxlUHJvcGVydGllcyBhbmQgaWYgYW55
IGlubGluZSBzdHlsZXMgYXJlCisgICAgICAgIHJlbW92ZWQsIGludm9rZSBzdHlsZSByZWNhbGMs
IHRvby4KKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZWRFbGVtZW50OjpjbGVhcklubGluZVN0eWxlUHJvcGVydGllcyk6CisgICAgICAgIEFk
ZGVkIGEgbmV3IG1ldGhvZCB0byByZW1vdmUgYWxsIGlubGluZSBzdHlsZSBwcm9wZXRpZXMuIElm
IGFueSBpbmxpbmUKKyAgICAgICAgc3R5bGUgaXMgcmVtb3ZlZCwgaW52b2tlIGlubGluZVN0eWxl
Q2hhbmdlZCgpIHRvIGZvcmNlIHN0eWxlIHJlY2FsYy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGRvbS9TdHlsZWRFbGVtZW50Lmg6CisgICAgICAgIChTdHlsZWRFbGVtZW50KToKKwog
MjAxMi0xMS0wNCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUgc2hvdWxkIGhhdmUgQmFzZUNsaWNr
YWJsZVdpdGhLZXlJbnB1dFR5cGUgYmVoYXZpb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnR5U2V0LmNwcAppbmRleCBmZTIyYzc3ODNmY2I5MmY2YjgzNGMxZmZkMTJhYzQ3YzQyZTY5MzIz
Li4xMTBiODAyYzk1MGJhOWQ0NzljY2E0ZGNiOGEwNjQ2MTJjODFjYmQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCkBAIC05NzgsNiArOTc4LDEyIEBAIHN0YXRpYyBj
b25zdCBDU1NQcm9wZXJ0eUlEIGJsb2NrUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5
V2lkb3dzCiB9OwogCit2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OmNsZWFyKCkKK3sKKyAgICBBU1NF
UlQoaXNNdXRhYmxlKCkpOworICAgIG11dGFibGVQcm9wZXJ0eVZlY3RvcigpLmNsZWFyKCk7Cit9
CisKIGNvbnN0IHVuc2lnbmVkIG51bUJsb2NrUHJvcGVydGllcyA9IFdURl9BUlJBWV9MRU5HVEgo
YmxvY2tQcm9wZXJ0aWVzKTsKIAogUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBTdHlsZVBy
b3BlcnR5U2V0Ojpjb3B5QmxvY2tQcm9wZXJ0aWVzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0eVNldC5oCmluZGV4IDQzNWRjNGQzYjBiMjgxODU2Nzk3ZGI1MjY2YjEyMzUxOWIw
MWFlMTguLmY3MGYxZmY3YmRhN2ZjZWZhZjcyN2QyYzI0NDQ2MmViYTE2NTQ2YzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaApAQCAtMTIzLDYgKzEyMyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFkZFBhcnNlZFByb3BlcnRpZXMoY29uc3QgVmVjdG9yPENTU1Byb3BlcnR5PiYp
OwogICAgIHZvaWQgYWRkUGFyc2VkUHJvcGVydHkoY29uc3QgQ1NTUHJvcGVydHkmKTsKIAorICAg
IHZvaWQgY2xlYXIoKTsKICAgICBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGNvcHlCbG9j
a1Byb3BlcnRpZXMoKSBjb25zdDsKICAgICB2b2lkIHJlbW92ZUJsb2NrUHJvcGVydGllcygpOwog
ICAgIGJvb2wgcmVtb3ZlUHJvcGVydGllc0luU2V0KGNvbnN0IENTU1Byb3BlcnR5SUQqIHNldCwg
dW5zaWduZWQgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBlMWFlNDYzNDA1NmEz
ZWJlNTU3YjFmZWQ3NzYzZWIxZDExNTc1YjU3Li40NWYwZjkwMjEzYjZjMWNhMDFlOGY5ZGExNzU1
NjU5NTMxYTMwOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNjY1LDggKzE2NjUsMTEg
QEAgdm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
KQogCiAgICAgQXRvbWljU3RyaW5nIGxvY2FsTmFtZSA9IHNob3VsZElnbm9yZUF0dHJpYnV0ZUNh
c2UodGhpcykgPyBuYW1lLmxvd2VyKCkgOiBuYW1lOwogICAgIHNpemVfdCBpbmRleCA9IGF0dHJp
YnV0ZURhdGEoKS0+Z2V0QXR0cmlidXRlSXRlbUluZGV4KGxvY2FsTmFtZSwgZmFsc2UpOwotICAg
IGlmIChpbmRleCA9PSBub3RGb3VuZCkKKyAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpIHsKKyAg
ICAgICAgaWYgKFVOTElLRUxZKGxvY2FsTmFtZSA9PSBzdHlsZUF0dHIpICYmIHN0eWxlQXR0cmli
dXRlSXNEaXJ0eSgpICYmIGlzU3R5bGVkRWxlbWVudCgpKQorICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8U3R5bGVkRWxlbWVudCo+KHRoaXMpLT5jbGVhcklubGluZVN0eWxlUHJvcGVydGllcygpOwog
ICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgcmVtb3ZlQXR0cmlidXRlSW50ZXJuYWwoaW5k
ZXgsIE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHlsZWRFbGVtZW50LmNwcAppbmRleCBjZWNhZTA1MjBjZGQxYTkzZjZiMDg4NjM4NWJlNDMy
OTM0ZTBiNmRiLi4yNmQ1YzUzZWNiNjkyNzY5NTFmNTIyYzM1ZTdiYTRiNDhiOGJhZTVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCkBAIC0yMjMsNiArMjIzLDE3IEBAIGJvb2wg
U3R5bGVkRWxlbWVudDo6cmVtb3ZlSW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SUQpCiAgICAgcmV0dXJuIGNoYW5nZXM7CiB9CiAKK3ZvaWQgU3R5bGVkRWxlbWVudDo6
Y2xlYXJJbmxpbmVTdHlsZVByb3BlcnRpZXMoKQoreworICAgIGlmICghYXR0cmlidXRlRGF0YSgp
IHx8ICFhdHRyaWJ1dGVEYXRhKCktPmlubGluZVN0eWxlKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBTdHlsZVByb3BlcnR5U2V0KiBpbmxpbmVTdHlsZVByb3BlcnR5U2V0ID0gZW5zdXJlSW5saW5l
U3R5bGUoKTsKKyAgICBpZiAoaW5saW5lU3R5bGVQcm9wZXJ0eVNldC0+aXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm47CisgICAgaW5saW5lU3R5bGVQcm9wZXJ0eVNldC0+Y2xlYXIoKTsKKyAgICBp
bmxpbmVTdHlsZUNoYW5nZWQoKTsKK30KKwogdm9pZCBTdHlsZWRFbGVtZW50OjphZGRTdWJyZXNv
dXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mIHVybHMpIGNvbnN0CiB7CiAgICAg
aWYgKGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIGlubGluZVN0eWxlID0gYXR0cmlidXRlRGF0YSgp
ID8gYXR0cmlidXRlRGF0YSgpLT5pbmxpbmVTdHlsZSgpIDogMCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVk
RWxlbWVudC5oCmluZGV4IGUwNzEzYTg0YmMyNmFjZWUwMTY2YTQ4MzU3YTAzN2M2Nzk2OWQ0OTIu
LmNlZTRjNTkxNjYyYjEzZTQzM2JlY2U3MjVmZDgwOGI0NDMyMjIyNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1N0eWxlZEVsZW1lbnQuaApAQCAtNDgsNiArNDgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXRJ
bmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQsIGRvdWJsZSB2YWx1ZSwgQ1NTUHJpbWl0
aXZlVmFsdWU6OlVuaXRUeXBlcywgYm9vbCBpbXBvcnRhbnQgPSBmYWxzZSk7CiAgICAgYm9vbCBz
ZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUs
IGJvb2wgaW1wb3J0YW50ID0gZmFsc2UpOwogICAgIGJvb2wgcmVtb3ZlSW5saW5lU3R5bGVQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEKTsKKyAgICB2b2lkIGNsZWFySW5saW5lU3R5bGVQcm9wZXJ0aWVz
KCk7CiAgICAgCiAgICAgdmlydHVhbCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSgpIE9WRVJS
SURFOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZjYyZjcwMjEzNWRlMjczYTlhOGQ2YTE4YzNkOTU3YTJkYTI2MzFiMS4u
ZGM0NTljNzc1MGYzNDRlYWU4YmZlMDA5ZTJlZWM3ZWUwNWVhNmJlZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTEwLTIxICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4K
KworICAgICAgICByZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2VydGFp
biBjaXJjdW1zdGFuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTI5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9jc3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUuaHRtbDogQWRk
ZWQuCisKIDIwMTItMTEtMDQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzM0MTYuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0eWxlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhhZTc1ODZkODQ5OWFiN2VhZDdjZjk2NWFkMDEwNjA4ZjRjOWJl
YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtYXR0cmli
dXRlLXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitbYnVnIDk5Mjk1XSByZW1v
dmVBdHRyaWJ1dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2Vz
LiBJZiB0aGlzIHRlc3QgcGFzc2VzLCBhbGwgYmFja2dyb3VuZENvbG9ycyBhcmUgcmdiYSgwLCAw
LCAwLCAwKSwgaS5lLiBhbGwgc3R5bGVzIGFyZSByZW1vdmVkLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnRXaXRob3V0U3R5bGVB
dHRyaWJ1dGUpLmJhY2tncm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50V2l0aEVtcHR5U3R5bGVBdHRyaWJ1dGUpLmJhY2tncm91bmRD
b2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50
V2l0aFN0eWxlQXR0cmlidXRlKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCki
CitQQVNTIGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGVXaXRoR2V0QXR0ckJlZm9yZVN0eWxl
VXBkYXRlLmdldEF0dHJpYnV0ZSgnc3R5bGUnKSBpcyBudWxsCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZWxlbWVudFdpdGhvdXRTdHlsZUF0dHJpYnV0ZVdpdGhHZXRBdHRyQmVmb3JlU3R5bGVVcGRh
dGUpLmJhY2tncm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgZWxlbWVudFdp
dGhvdXRTdHlsZUF0dHJpYnV0ZVdpdGhHZXRBdHRyQWZ0ZXJTdHlsZVVwZGF0ZS5nZXRBdHRyaWJ1
dGUoJ3N0eWxlJykgaXMgImJhY2tncm91bmQtY29sb3I6IHJlZDsiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZWxlbWVudFdpdGhvdXRTdHlsZUF0dHJpYnV0ZVdpdGhHZXRBdHRyQWZ0ZXJTdHlsZVVw
ZGF0ZSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGVXaXRoU2V0QXR0cikuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAsIDApIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jl
bW92ZS1hdHRyaWJ1dGUtc3R5bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzQyYmI2MmRkOWMyNmRmOWJh
ZGU5ZjhjZDkzZTdmODM4MTgwNGFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhZG9j
dHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cit0ZCB7
CisgICAgZGlzcGxheTogdGFibGUtY2VsbDsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0
OiA4MHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CisgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOworICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPHRhYmxlIGlkPSJ0YWJsZSI+CisgICAgPHRyPgorICAgICAgPHRkIGlkPSJlbGVt
ZW50V2l0aG91dFN0eWxlQXR0cmlidXRlIj5ubyBIVE1MIHN0eWxlIGF0dHJpYnV0ZSwgbm8gZ2V0
L3NldEF0dHJpYnV0ZTwvdGQ+CisgICAgICA8dGQgaWQ9ImVsZW1lbnRXaXRoRW1wdHlTdHlsZUF0
dHJpYnV0ZSIgc3R5bGU9IiI+ZW1wdHkgSFRNTCBzdHlsZSBhdHRyaWJ1dGUsIG5vIGdldC9zZXRB
dHRyaWJ1dGU8L3RkPgorICAgICAgPHRkIGlkPSJlbGVtZW50V2l0aFN0eWxlQXR0cmlidXRlIiBz
dHlsZT0ib3BhY2l0eTogMTsiPm5vbi1lbXB0eSBIVE1MIHN0eWxlIGF0dHJpYnV0ZSwgbm8gZ2V0
L3NldEF0dHJpYnV0ZTwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQgaWQ9ImVs
ZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGVXaXRoR2V0QXR0ckJlZm9yZVN0eWxlVXBkYXRlIj5u
byBIVE1MIHN0eWxlIGF0dHJpYnV0ZSwgZ2V0QXR0cmlidXRlIGJlZm9yZSBtb2RpZnlpbmcgSURM
IGF0dHJpYnV0ZTwvdGQ+CisgICAgICA8dGQgaWQ9ImVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1
dGVXaXRoR2V0QXR0ckFmdGVyU3R5bGVVcGRhdGUiPm5vIEhUTUwgc3R5bGUgYXR0cmlidXRlLCBn
ZXRBdHRyaWJ1dGUgYWZ0ZXIgbW9kaWZ5aW5nIElETCBhdHRyaWJ1dGU8L3RkPgorICAgICAgPHRk
IGlkPSJlbGVtZW50V2l0aG91dFN0eWxlQXR0cmlidXRlV2l0aFNldEF0dHIiPm5vIEhUTUwgc3R5
bGUgYXR0cmlidXRlLCBzZXRBdHRyaWJ1dGUgYmVmb3JlIHJlbW92ZUF0dHJpYnV0ZTwvdGQ+Cisg
ICAgPC90cj4KKyAgPC90YWJsZT4KKyAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIltidWcgOTkyOTVdIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUn
KSBub3Qgd29ya2luZyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMuIElmIHRoaXMgdGVzdCBwYXNz
ZXMsIGFsbCBiYWNrZ3JvdW5kQ29sb3JzIGFyZSByZ2JhKDAsIDAsIDAsIDApLCBpLmUuIGFsbCBz
dHlsZXMgYXJlIHJlbW92ZWQuIik7CisKKyAgICB2YXIgZWxlbWVudFdpdGhvdXRTdHlsZUF0dHJp
YnV0ZSA9ICQoJ2VsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUnKSwKKyAgICAgICAgZWxlbWVu
dFdpdGhFbXB0eVN0eWxlQXR0cmlidXRlID0gJCgnZWxlbWVudFdpdGhFbXB0eVN0eWxlQXR0cmli
dXRlJyksCisgICAgICAgIGVsZW1lbnRXaXRoU3R5bGVBdHRyaWJ1dGUgPSAkKCdlbGVtZW50V2l0
aFN0eWxlQXR0cmlidXRlJyksCisgICAgICAgIGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGVX
aXRoR2V0QXR0ckJlZm9yZVN0eWxlVXBkYXRlID0gJCgnZWxlbWVudFdpdGhvdXRTdHlsZUF0dHJp
YnV0ZVdpdGhHZXRBdHRyQmVmb3JlU3R5bGVVcGRhdGUnKSwKKyAgICAgICAgZWxlbWVudFdpdGhv
dXRTdHlsZUF0dHJpYnV0ZVdpdGhHZXRBdHRyQWZ0ZXJTdHlsZVVwZGF0ZSA9ICQoJ2VsZW1lbnRX
aXRob3V0U3R5bGVBdHRyaWJ1dGVXaXRoR2V0QXR0ckFmdGVyU3R5bGVVcGRhdGUnKSwKKyAgICAg
ICAgZWxlbWVudFdpdGhvdXRTdHlsZUF0dHJpYnV0ZVdpdGhTZXRBdHRyID0gJCgnZWxlbWVudFdp
dGhvdXRTdHlsZUF0dHJpYnV0ZVdpdGhTZXRBdHRyJyk7CisKKyAgICBlbGVtZW50V2l0aG91dFN0
eWxlQXR0cmlidXRlLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQnOworICAgIGVsZW1lbnRX
aXRob3V0U3R5bGVBdHRyaWJ1dGUucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpOworICAgIHNob3Vs
ZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUpLmJhY2tn
cm91bmRDb2xvciIsICcicmdiYSgwLCAwLCAwLCAwKSInKTsKKworICAgIGVsZW1lbnRXaXRoRW1w
dHlTdHlsZUF0dHJpYnV0ZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmVkJzsKKyAgICBlbGVt
ZW50V2l0aEVtcHR5U3R5bGVBdHRyaWJ1dGUucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpOworICAg
IHNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnRXaXRoRW1wdHlTdHlsZUF0dHJpYnV0
ZSkuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAsIDAsIDAsIDApIicpOworCisgICAgZWxlbWVu
dFdpdGhTdHlsZUF0dHJpYnV0ZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmVkJzsKKyAgICBl
bGVtZW50V2l0aFN0eWxlQXR0cmlidXRlLnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTsKKyAgICBz
aG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50V2l0aFN0eWxlQXR0cmlidXRlKS5iYWNr
Z3JvdW5kQ29sb3IiLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7CisKKyAgICBzaG91bGRCZU51bGwo
ImVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGVXaXRoR2V0QXR0ckJlZm9yZVN0eWxlVXBkYXRl
LmdldEF0dHJpYnV0ZSgnc3R5bGUnKSIpOworICAgIGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1
dGVXaXRoR2V0QXR0ckJlZm9yZVN0eWxlVXBkYXRlLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdy
ZWQnOworICAgIGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGVXaXRoR2V0QXR0ckJlZm9yZVN0
eWxlVXBkYXRlLnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTsKKyAgICBzaG91bGRCZSgiZ2V0Q29t
cHV0ZWRTdHlsZShlbGVtZW50V2l0aG91dFN0eWxlQXR0cmlidXRlV2l0aEdldEF0dHJCZWZvcmVT
dHlsZVVwZGF0ZSkuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAsIDAsIDAsIDApIicpOworCisg
ICAgZWxlbWVudFdpdGhvdXRTdHlsZUF0dHJpYnV0ZVdpdGhHZXRBdHRyQWZ0ZXJTdHlsZVVwZGF0
ZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmVkJzsKKyAgICBzaG91bGRCZSgiZWxlbWVudFdp
dGhvdXRTdHlsZUF0dHJpYnV0ZVdpdGhHZXRBdHRyQWZ0ZXJTdHlsZVVwZGF0ZS5nZXRBdHRyaWJ1
dGUoJ3N0eWxlJykiLCAnImJhY2tncm91bmQtY29sb3I6IHJlZDsiJyk7CisgICAgZWxlbWVudFdp
dGhvdXRTdHlsZUF0dHJpYnV0ZVdpdGhHZXRBdHRyQWZ0ZXJTdHlsZVVwZGF0ZS5yZW1vdmVBdHRy
aWJ1dGUoJ3N0eWxlJyk7CisgICAgc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudFdp
dGhvdXRTdHlsZUF0dHJpYnV0ZVdpdGhHZXRBdHRyQWZ0ZXJTdHlsZVVwZGF0ZSkuYmFja2dyb3Vu
ZENvbG9yIiwgJyJyZ2JhKDAsIDAsIDAsIDApIicpOworCisgICAgZWxlbWVudFdpdGhvdXRTdHls
ZUF0dHJpYnV0ZVdpdGhTZXRBdHRyLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQnOworICAg
IGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGVXaXRoU2V0QXR0ci5zZXRBdHRyaWJ1dGUoJ3N0
eWxlJywgJycpOworICAgIGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGVXaXRoU2V0QXR0ci5y
ZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7CisgICAgc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudFdpdGhvdXRTdHlsZUF0dHJpYnV0ZVdpdGhTZXRBdHRyKS5iYWNrZ3JvdW5kQ29sb3Ii
LCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7CisKKyAgICBmdW5jdGlvbiAkKGlkKSB7CisgICAgICAg
IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgfQorCisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxlJykuaW5uZXJIVE1MID0gJyc7CisgIDwvc2NyaXB0Pgor
ICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172513</attachid>
            <date>2012-11-06 01:22:38 -0800</date>
            <delta_ts>2012-11-06 03:33:33 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-99295-20121106182051.patch</filename>
            <type>text/plain</type>
            <size>12075</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGFiMjFkNGQ5ZGYxMGM0
MGQ2YmQ5YzQ3Nzk2YjcxZGZmN2MyYjRjOC4uZGMxNTRjMjJjY2I5ZGNjNTI2YzRlMjdlNzliMzY1
NWYwN2FkNThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEwLTIxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICByZW1vdmVBdHRyaWJ1
dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTI5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBBZnRlciB3ZWIgZGV2ZWxvcGVy
cyBkaWQgc3R5bGUuWFhYWD1ZWVlZIGZvciBzb21lIGVsZW1lbnQsIHRoZSBpbmxpbmUKKyAgICAg
ICAgc3R5bGUgc2hvdWxkIGJlIGFsd2F5cyByZW1vdmFibGUgYnkgdXNpbmcgInJlbW92ZUF0dHJp
YnV0ZSgnc3R5bGUnKSIuCisgICAgICAgIEN1cnJlbnRseSBpdCBkZXBlbmRzIG9uIHdoZXRoZXIg
d2ViIGRldmVsb3BlcnMgaW52b2tlcworICAgICAgICBnZXRBdHRyaWJ1dGUoJ3N0eWxlJyksIHNl
dEF0dHJpYnV0ZSgnc3R5bGUpLCBhbmQgc28gb24uIEUuZy4gb25jZSB0aGV5CisgICAgICAgIGlu
dm9rZSBnZXRBdHRyaWJ1dGUoJ3N0eWxlJyksIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSB3b3Jr
cy4gVGhpcyBpcworICAgICAgICB2ZXJ5IGNvbmZ1c2luZyBiZWhhdmlvci4KKyAgICAgICAgTG9v
a2luZyBhdCBGaXJlZm94IGJyb3dzZXIsIHJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKSBhbHdheXMg
cmVtb3ZlcworICAgICAgICBhbGwgaW5saW5lIHN0eWxlcy4KKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy9yZW1vdmUtYXR0cmlidXRlLXN0eWxlLmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVBy
b3BlcnR5U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OmNsZWFy
KToKKyAgICAgICAgQWRkZWQgYSBuZXcgbWV0aG9kIHRvIHJlbW92ZSBhbGwgc3R5bGUgcHJvcGVy
dGllcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0
Lmg6CisgICAgICAgIChTdHlsZVByb3BlcnR5U2V0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUpOgorICAgICAg
ICBJZiAnc3R5bGUnIGlzIGdpdmVuIGJ1dCB0aGUgZWxlbWVudCBoYXMgbm8gc3R5bGUgYXR0cmli
dXRlLCB0aGUgb2xkCisgICAgICAgIGNvZGUgZGlkIG5vdGhpbmcuIEhvd2V2ZXIsIGlmIHRoZSBl
bGVtZW50IGlzIHN0eWxlZCBlbGVtZW50IGFuZCBoYXMgYW55CisgICAgICAgIGlubGluZSBzdHls
ZXMsIHRoZSBpbmxpbmUgc3R5bGVzIHNob3VsZCBiZSByZW1vdmVkLiBTbyBpbnZva2UKKyAgICAg
ICAgU3R5bGVkRWxlbWVudDo6cmVtb3ZlQWxsSW5saW5lU3R5bGVQcm9wZXJ0aWVzIGFuZCBpZiBh
bnkgaW5saW5lIHN0eWxlcworICAgICAgICBhcmUgcmVtb3ZlZCwgaW52b2tlIHN0eWxlIHJlY2Fs
YywgdG9vLgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlZEVsZW1lbnQ6OnJlbW92ZUFsbElubGluZVN0eWxlUHJvcGVydGllcyk6CisgICAg
ICAgIEFkZGVkIGEgbmV3IG1ldGhvZCB0byByZW1vdmUgYWxsIGlubGluZSBzdHlsZSBwcm9wZXRp
ZXMuIElmIGFueSBpbmxpbmUKKyAgICAgICAgc3R5bGUgaXMgcmVtb3ZlZCwgaW52b2tlIGlubGlu
ZVN0eWxlQ2hhbmdlZCgpIHRvIGZvcmNlIHN0eWxlIHJlY2FsYy4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50Lmg6CisgICAgICAgIChTdHlsZWRFbGVtZW50
KToKKwogMjAxMi0xMS0wNiAgTmlraXRhIFZhc2lseWV2ICA8bWVAZWx2MXMucnU+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogQ29uc29sZTogd3JhcCBsb25nIFVSTHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnR5U2V0LmNwcAppbmRleCBmZTIyYzc3ODNmY2I5MmY2YjgzNGMxZmZkMTJh
YzQ3YzQyZTY5MzIzLi4xMTBiODAyYzk1MGJhOWQ0NzljY2E0ZGNiOGEwNjQ2MTJjODFjYmQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCkBAIC05NzgsNiArOTc4LDEy
IEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGJsb2NrUHJvcGVydGllc1tdID0gewogICAg
IENTU1Byb3BlcnR5V2lkb3dzCiB9OwogCit2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OmNsZWFyKCkK
K3sKKyAgICBBU1NFUlQoaXNNdXRhYmxlKCkpOworICAgIG11dGFibGVQcm9wZXJ0eVZlY3Rvcigp
LmNsZWFyKCk7Cit9CisKIGNvbnN0IHVuc2lnbmVkIG51bUJsb2NrUHJvcGVydGllcyA9IFdURl9B
UlJBWV9MRU5HVEgoYmxvY2tQcm9wZXJ0aWVzKTsKIAogUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5
U2V0PiBTdHlsZVByb3BlcnR5U2V0Ojpjb3B5QmxvY2tQcm9wZXJ0aWVzKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCmluZGV4IDQzNWRjNGQzYjBiMjgxODU2Nzk3ZGI1
MjY2YjEyMzUxOWIwMWFlMTguLmY3MGYxZmY3YmRhN2ZjZWZhZjcyN2QyYzI0NDQ2MmViYTE2NTQ2
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaApAQCAtMTIzLDYgKzEyMyw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBhcnNlZFByb3BlcnRpZXMoY29uc3QgVmVjdG9yPENT
U1Byb3BlcnR5PiYpOwogICAgIHZvaWQgYWRkUGFyc2VkUHJvcGVydHkoY29uc3QgQ1NTUHJvcGVy
dHkmKTsKIAorICAgIHZvaWQgY2xlYXIoKTsKICAgICBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlT
ZXQ+IGNvcHlCbG9ja1Byb3BlcnRpZXMoKSBjb25zdDsKICAgICB2b2lkIHJlbW92ZUJsb2NrUHJv
cGVydGllcygpOwogICAgIGJvb2wgcmVtb3ZlUHJvcGVydGllc0luU2V0KGNvbnN0IENTU1Byb3Bl
cnR5SUQqIHNldCwgdW5zaWduZWQgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA0
ZDkzODMwZWQxYTMwMDNiODYyMmUyZWVlZDUxMGU2MTQ5ZWIyN2IzLi44MGZmNDliNzI5OWRmNGI1
NmE5MjNjYjYwZGEwZDhlMTRjM2M1YTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNjYy
LDggKzE2NjIsMTEgQEAgdm9pZCBFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lKQogCiAgICAgQXRvbWljU3RyaW5nIGxvY2FsTmFtZSA9IHNob3VsZElnbm9y
ZUF0dHJpYnV0ZUNhc2UodGhpcykgPyBuYW1lLmxvd2VyKCkgOiBuYW1lOwogICAgIHNpemVfdCBp
bmRleCA9IGF0dHJpYnV0ZURhdGEoKS0+Z2V0QXR0cmlidXRlSXRlbUluZGV4KGxvY2FsTmFtZSwg
ZmFsc2UpOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKKyAgICBpZiAoaW5kZXggPT0gbm90
Rm91bmQpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGxvY2FsTmFtZSA9PSBzdHlsZUF0dHIpICYm
ICFpc1N0eWxlQXR0cmlidXRlVmFsaWQoKSAmJiBpc1N0eWxlZEVsZW1lbnQoKSkKKyAgICAgICAg
ICAgIHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPih0aGlzKS0+cmVtb3ZlQWxsSW5saW5lU3R5
bGVQcm9wZXJ0aWVzKCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICByZW1vdmVBdHRy
aWJ1dGVJbnRlcm5hbChpbmRleCwgTm90SW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDU3NmFhMjI4NDgwYTM1
MDFjYzE2MjU0NTg3ZWQ4MWFjMjRhNDc2YmIuLmM0Yzg2ZWNmZDMzMTVlZmFmMTYxODlkNzRjMGE3
ZmUxMzQ5M2NjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTIyMSw2
ICsyMjEsMTcgQEAgYm9vbCBTdHlsZWRFbGVtZW50OjpyZW1vdmVJbmxpbmVTdHlsZVByb3BlcnR5
KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKICAgICByZXR1cm4gY2hhbmdlczsKIH0KIAordm9p
ZCBTdHlsZWRFbGVtZW50OjpyZW1vdmVBbGxJbmxpbmVTdHlsZVByb3BlcnRpZXMoKQoreworICAg
IGlmICghYXR0cmlidXRlRGF0YSgpIHx8ICFhdHRyaWJ1dGVEYXRhKCktPmlubGluZVN0eWxlKCkp
CisgICAgICAgIHJldHVybjsKKyAgICBTdHlsZVByb3BlcnR5U2V0KiBpbmxpbmVTdHlsZVByb3Bl
cnR5U2V0ID0gZW5zdXJlSW5saW5lU3R5bGUoKTsKKyAgICBpZiAoaW5saW5lU3R5bGVQcm9wZXJ0
eVNldC0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgaW5saW5lU3R5bGVQcm9wZXJ0
eVNldC0+Y2xlYXIoKTsKKyAgICBpbmxpbmVTdHlsZUNoYW5nZWQoKTsKK30KKwogdm9pZCBTdHls
ZWRFbGVtZW50OjphZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4m
IHVybHMpIGNvbnN0CiB7CiAgICAgaWYgKGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIGlubGluZVN0
eWxlID0gYXR0cmlidXRlRGF0YSgpID8gYXR0cmlidXRlRGF0YSgpLT5pbmxpbmVTdHlsZSgpIDog
MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCmluZGV4IGNmNTllZDFhZGIzYjA3OThkYjdk
NTkwNzljZGM1MmRjMzlmZDBjNmEuLmE1ZDMwODNmMzY5NDYxNjJjZTUyNzRhZDA3ZmIyODJmYWU1
OGVjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaApAQCAtNDgsNiArNDgsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQsIGRv
dWJsZSB2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcywgYm9vbCBpbXBvcnRhbnQg
PSBmYWxzZSk7CiAgICAgYm9vbCBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQs
IGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50ID0gZmFsc2UpOwogICAgIGJvb2wg
cmVtb3ZlSW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKTsKKyAgICB2b2lkIHJlbW92
ZUFsbElubGluZVN0eWxlUHJvcGVydGllcygpOwogICAgIAogICAgIHZpcnR1YWwgQ1NTU3R5bGVE
ZWNsYXJhdGlvbiogc3R5bGUoKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGExNTY0YmRkYTllMTliNzg2
NjdiNGVlODEzNTYwYWQ3MWQyYzEwOTQuLjZlMDIzMWI4MGUwMDk5NDdlYzdjZDEzNDBlMGEwZjRl
MGVlYzdmZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0xMC0yMSAgVGFrYXNoaSBTYWth
bW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgcmVtb3ZlQXR0cmlidXRlKCdzdHls
ZScpIG5vdCB3b3JraW5nIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkyOTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9yZW1vdmUtYXR0cmlidXRl
LXN0eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcmVtb3ZlLWF0
dHJpYnV0ZS1zdHlsZS5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0wNSAgQ3NhYmEgT3N6dHJvZ29u
w6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBtb3JuaW5n
IGdhcmRlbmluZywgc2tpcCBuZXcgZmFpbGluZyB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcmVtb3ZlLWF0dHJpYnV0ZS1zdHlsZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTgxNmZhZTY4YTkwNTUyNTMyNjY3NGRhZDhiZjFjYzRkZTg4YWJmNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3JlbW92ZS1hdHRyaWJ1dGUtc3R5bGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1tidWcgOTkyOTVdIHJlbW92ZUF0dHJpYnV0ZSgn
c3R5bGUnKSBub3Qgd29ya2luZyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMuIElmIHRoaXMgdGVz
dCBwYXNzZXMsIGFsbCBiYWNrZ3JvdW5kQ29sb3JzIGFyZSByZ2JhKDAsIDAsIDAsIDApLCBpLmUu
IGFsbCBzdHlsZXMgYXJlIHJlbW92ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUuc3R5bGUuYmFja2dyb3VuZENvbG9y
ID0gJ3JlZCc7IGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUucmVtb3ZlQXR0cmlidXRlKCdz
dHlsZScpOyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUpLmJh
Y2tncm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50V2l0aEVtcHR5U3R5bGVBdHRyaWJ1dGUpLmJhY2tncm91bmRDb2xvciBpcyAicmdi
YSgwLCAwLCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50V2l0aFN0eWxlQXR0
cmlidXRlKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGVsZW1l
bnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUyLmdldEF0dHJpYnV0ZSgnc3R5bGUnKSBpcyBudWxsCitQ
QVNTIGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUyLnN0eWxlLmJhY2tncm91bmRDb2xvciA9
ICdyZWQnOyBlbGVtZW50V2l0aG91dFN0eWxlQXR0cmlidXRlMi5yZW1vdmVBdHRyaWJ1dGUoJ3N0
eWxlJyk7IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudFdpdGhvdXRTdHlsZUF0dHJpYnV0ZTIpLmJh
Y2tncm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1MgZWxlbWVudFdpdGhvdXRT
dHlsZUF0dHJpYnV0ZTMuZ2V0QXR0cmlidXRlKCdzdHlsZScpIGlzICJiYWNrZ3JvdW5kLWNvbG9y
OiByZWQ7IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1
dGUzKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwgMCkiCitQQVNTIGVsZW1lbnRX
aXRob3V0U3R5bGVBdHRyaWJ1dGU0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQnOyBlbGVt
ZW50V2l0aG91dFN0eWxlQXR0cmlidXRlNC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJycpOyBlbGVt
ZW50V2l0aG91dFN0eWxlQXR0cmlidXRlNC5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7IGdldENv
bXB1dGVkU3R5bGUoZWxlbWVudFdpdGhvdXRTdHlsZUF0dHJpYnV0ZTQpLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1v
dmUtYXR0cmlidXRlLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZW1vdmUtYXR0
cmlidXRlLXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTA4M2QzNDUyYjQzMDY5Nzg0MTEzZmI1OGY1
NzUyYzU1MGJkNmI5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jl
bW92ZS1hdHRyaWJ1dGUtc3R5bGUuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgordGQgeworICAgIGRp
c3BsYXk6IHRhYmxlLWNlbGw7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDogODBweDsK
KyAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAg
ICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cisg
IDx0YWJsZSBpZD0idGFibGUiPgorICAgIDx0cj4KKyAgICAgIDx0ZCBpZD0iZWxlbWVudFdpdGhv
dXRTdHlsZUF0dHJpYnV0ZSI+bm8gSFRNTCBzdHlsZSBhdHRyaWJ1dGUsIG5vIGdldC9zZXRBdHRy
aWJ1dGU8L3RkPgorICAgICAgPHRkIGlkPSJlbGVtZW50V2l0aEVtcHR5U3R5bGVBdHRyaWJ1dGUi
IHN0eWxlPSIiPmVtcHR5IEhUTUwgc3R5bGUgYXR0cmlidXRlLCBubyBnZXQvc2V0QXR0cmlidXRl
PC90ZD4KKyAgICAgIDx0ZCBpZD0iZWxlbWVudFdpdGhTdHlsZUF0dHJpYnV0ZSIgc3R5bGU9Im9w
YWNpdHk6IDE7Ij5ub24tZW1wdHkgSFRNTCBzdHlsZSBhdHRyaWJ1dGUsIG5vIGdldC9zZXRBdHRy
aWJ1dGU8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIGlkPSJlbGVtZW50V2l0
aG91dFN0eWxlQXR0cmlidXRlMiI+bm8gSFRNTCBzdHlsZSBhdHRyaWJ1dGUsIGdldEF0dHJpYnV0
ZSBiZWZvcmUgbW9kaWZ5aW5nIElETCBhdHRyaWJ1dGU8L3RkPgorICAgICAgPHRkIGlkPSJlbGVt
ZW50V2l0aG91dFN0eWxlQXR0cmlidXRlMyI+bm8gSFRNTCBzdHlsZSBhdHRyaWJ1dGUsIGdldEF0
dHJpYnV0ZSBhZnRlciBtb2RpZnlpbmcgSURMIGF0dHJpYnV0ZTwvdGQ+CisgICAgICA8dGQgaWQ9
ImVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGU0Ij5ubyBIVE1MIHN0eWxlIGF0dHJpYnV0ZSwg
c2V0QXR0cmlidXRlIGJlZm9yZSByZW1vdmVBdHRyaWJ1dGU8L3RkPgorICAgIDwvdHI+CisgIDwv
dGFibGU+CisgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJbYnVnIDk5Mjk1XSByZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJykgbm90IHdvcmtpbmcg
aW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLiBJZiB0aGlzIHRlc3QgcGFzc2VzLCBhbGwgYmFja2dy
b3VuZENvbG9ycyBhcmUgcmdiYSgwLCAwLCAwLCAwKSwgaS5lLiBhbGwgc3R5bGVzIGFyZSByZW1v
dmVkLiIpOworCisgICAgdmFyIGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUgPSAkKCdlbGVt
ZW50V2l0aG91dFN0eWxlQXR0cmlidXRlJyksCisgICAgICAgIGVsZW1lbnRXaXRoRW1wdHlTdHls
ZUF0dHJpYnV0ZSA9ICQoJ2VsZW1lbnRXaXRoRW1wdHlTdHlsZUF0dHJpYnV0ZScpLAorICAgICAg
ICBlbGVtZW50V2l0aFN0eWxlQXR0cmlidXRlID0gJCgnZWxlbWVudFdpdGhTdHlsZUF0dHJpYnV0
ZScpLAorICAgICAgICBlbGVtZW50V2l0aG91dFN0eWxlQXR0cmlidXRlMiA9ICQoJ2VsZW1lbnRX
aXRob3V0U3R5bGVBdHRyaWJ1dGUyJyksCisgICAgICAgIGVsZW1lbnRXaXRob3V0U3R5bGVBdHRy
aWJ1dGUzID0gJCgnZWxlbWVudFdpdGhvdXRTdHlsZUF0dHJpYnV0ZTMnKSwKKyAgICAgICAgZWxl
bWVudFdpdGhvdXRTdHlsZUF0dHJpYnV0ZTQgPSAkKCdlbGVtZW50V2l0aG91dFN0eWxlQXR0cmli
dXRlNCcpOworCisgICAgc2hvdWxkQmUoImVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUuc3R5
bGUuYmFja2dyb3VuZENvbG9yID0gJ3JlZCc7IGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUu
cmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpOyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnRXaXRob3V0
U3R5bGVBdHRyaWJ1dGUpLmJhY2tncm91bmRDb2xvciIsICcicmdiYSgwLCAwLCAwLCAwKSInKTsK
KworICAgIGVsZW1lbnRXaXRoRW1wdHlTdHlsZUF0dHJpYnV0ZS5zdHlsZS5iYWNrZ3JvdW5kQ29s
b3IgPSAncmVkJzsKKyAgICBlbGVtZW50V2l0aEVtcHR5U3R5bGVBdHRyaWJ1dGUucmVtb3ZlQXR0
cmlidXRlKCdzdHlsZScpOworICAgIHNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnRX
aXRoRW1wdHlTdHlsZUF0dHJpYnV0ZSkuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAsIDAsIDAs
IDApIicpOworCisgICAgZWxlbWVudFdpdGhTdHlsZUF0dHJpYnV0ZS5zdHlsZS5iYWNrZ3JvdW5k
Q29sb3IgPSAncmVkJzsKKyAgICBlbGVtZW50V2l0aFN0eWxlQXR0cmlidXRlLnJlbW92ZUF0dHJp
YnV0ZSgnc3R5bGUnKTsKKyAgICBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50V2l0
aFN0eWxlQXR0cmlidXRlKS5iYWNrZ3JvdW5kQ29sb3IiLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7
CisKKyAgICBzaG91bGRCZU51bGwoImVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUyLmdldEF0
dHJpYnV0ZSgnc3R5bGUnKSIpOworICAgIHNob3VsZEJlKCJlbGVtZW50V2l0aG91dFN0eWxlQXR0
cmlidXRlMi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmVkJzsgZWxlbWVudFdpdGhvdXRTdHls
ZUF0dHJpYnV0ZTIucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpOyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUyKS5iYWNrZ3JvdW5kQ29sb3IiLCAnInJnYmEoMCwg
MCwgMCwgMCkiJyk7CisKKyAgICBlbGVtZW50V2l0aG91dFN0eWxlQXR0cmlidXRlMy5zdHlsZS5i
YWNrZ3JvdW5kQ29sb3IgPSAncmVkJzsKKyAgICBzaG91bGRCZSgiZWxlbWVudFdpdGhvdXRTdHls
ZUF0dHJpYnV0ZTMuZ2V0QXR0cmlidXRlKCdzdHlsZScpIiwgJyJiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7IicpOworICAgIGVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGUzLnJlbW92ZUF0dHJpYnV0
ZSgnc3R5bGUnKTsKKyAgICBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50V2l0aG91
dFN0eWxlQXR0cmlidXRlMykuYmFja2dyb3VuZENvbG9yIiwgJyJyZ2JhKDAsIDAsIDAsIDApIicp
OworCisgICAgc2hvdWxkQmUoImVsZW1lbnRXaXRob3V0U3R5bGVBdHRyaWJ1dGU0LnN0eWxlLmJh
Y2tncm91bmRDb2xvciA9ICdyZWQnOyBlbGVtZW50V2l0aG91dFN0eWxlQXR0cmlidXRlNC5zZXRB
dHRyaWJ1dGUoJ3N0eWxlJywgJycpOyBlbGVtZW50V2l0aG91dFN0eWxlQXR0cmlidXRlNC5yZW1v
dmVBdHRyaWJ1dGUoJ3N0eWxlJyk7IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudFdpdGhvdXRTdHls
ZUF0dHJpYnV0ZTQpLmJhY2tncm91bmRDb2xvciIsICcicmdiYSgwLCAwLCAwLCAwKSInKTsKKwor
ICAgIGZ1bmN0aW9uICQoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGlkKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFibGUnKS5p
bm5lckhUTUwgPSAnJzsKKyAgPC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>