<?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>36683</bug_id>
          
          <creation_ts>2010-03-26 16:08:39 -0700</creation_ts>
          <short_desc>For compatibility, execCommand should support deprecated &apos;useCSS&apos; alias for &apos;styleWithCSS&apos;</short_desc>
          <delta_ts>2011-09-13 16:18:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>EasyFix, NeedsReduction</keywords>
          <priority>P3</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ayg</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>jparent</cc>
    
    <cc>ojan</cc>
    
    <cc>owenestea</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>204848</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-03-26 16:08:39 -0700</bug_when>
    <thetext>WebKit should support execCommand(&apos;useCSS&apos;, false, &apos;true&apos;/&apos;false&apos;) to be compatible with websites made for old versions of Firefox.  It&apos;s the same command as &apos;styleWithCSS&apos;.  See the end of https://developer.mozilla.org/en/Midas.  We could argue that we shouldn&apos;t support it since it&apos;s already deprecated but there seems to be some websites that rely on this command.  For example, http://www.mozilla.org/editor/midasdemo/ is such a website.

Production step,
1. Go to http://www.mozilla.org/editor/midasdemo/
2. Check &quot;Use CSS&quot;)
2. Execute any command

Expected: Styles are added by CSS.
Actual: Styles are added by presentational tags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453190</commentid>
    <comment_count>1</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-08-18 11:34:38 -0700</bug_when>
    <thetext>The editing spec currently requires support, but I&apos;d be happy to drop it if Gecko is willing to.

http://aryeh.name/spec/editing/editing.html#the-usecss-command</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460084</commentid>
    <comment_count>2</comment_count>
      <attachid>105861</attachid>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-08-31 16:57:48 -0700</bug_when>
    <thetext>Created attachment 105861
the modified version of the test page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460090</commentid>
    <comment_count>3</comment_count>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-08-31 17:02:55 -0700</bug_when>
    <thetext>While I was working on this bug to get myself up to speed, I noticed something bizarre. I am using the Nightly Version 5.0.5 (6533.21.1, r94213) on Mac 10.6.7.

BEHAVIOR: styleWithCSS does not work properly

STEPS TO REPRODUCE:
1. Download the test page suggested by rniwa (http://www-archive.mozilla.org/editor/midasdemo/) and modify L403 to 

document.getElementById(&apos;edit&apos;).contentWindow.document.execCommand(&quot;styleWithCSS&quot;, false, source);

Essentially, modify the page so that it uses &quot;styleWithCSS&quot; as opposed to &quot;useCSS&quot;. Note that the boolean argument needs to be flipped. I attached this modified version.

2. Load the modified version of the page (It would be missing images and such)

3. Although &quot;useCSS&quot; is checked, it does not work as expected. &quot;View HTML Source&quot; shows presentational tags. Now, if you uncheck &quot;useCSS&quot; and check it back, everything works as expected. CSS styles are now used instead of presentational tags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460104</commentid>
    <comment_count>4</comment_count>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-08-31 17:18:50 -0700</bug_when>
    <thetext>(In reply to comment #3)
This turned out to stem from the fact that the Mozilla page assumed that styleWithCSS/useCSS to be on by default.

&gt; While I was working on this bug to get myself up to speed, I noticed something bizarre. I am using the Nightly Version 5.0.5 (6533.21.1, r94213) on Mac 10.6.7.
&gt; 
&gt; BEHAVIOR: styleWithCSS does not work properly
&gt; 
&gt; STEPS TO REPRODUCE:
&gt; 1. Download the test page suggested by rniwa (http://www-archive.mozilla.org/editor/midasdemo/) and modify L403 to 
&gt; 
&gt; document.getElementById(&apos;edit&apos;).contentWindow.document.execCommand(&quot;styleWithCSS&quot;, false, source);
&gt; 
&gt; Essentially, modify the page so that it uses &quot;styleWithCSS&quot; as opposed to &quot;useCSS&quot;. Note that the boolean argument needs to be flipped. I attached this modified version.
&gt; 
&gt; 2. Load the modified version of the page (It would be missing images and such)
&gt; 
&gt; 3. Although &quot;useCSS&quot; is checked, it does not work as expected. &quot;View HTML Source&quot; shows presentational tags. Now, if you uncheck &quot;useCSS&quot; and check it back, everything works as expected. CSS styles are now used instead of presentational tags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460160</commentid>
    <comment_count>5</comment_count>
      <attachid>105881</attachid>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-08-31 19:00:15 -0700</bug_when>
    <thetext>Created attachment 105881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460176</commentid>
    <comment_count>6</comment_count>
      <attachid>105881</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-31 19:44:35 -0700</bug_when>
    <thetext>Comment on attachment 105881
Patch

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

&gt; Source/WebCore/editing/EditorCommand.cpp:1029
&gt; +    if (value != &quot;false&quot; &amp;&amp; value != &quot;true&quot;)

I think we should do case-insensitive comparison here according to Aryeh&apos;s spec (http://aryeh.name/spec/editing/editing.html#the-stylewithcss-command).  We should probably change executeStyleWithCSS as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460303</commentid>
    <comment_count>7</comment_count>
      <attachid>105916</attachid>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-09-01 00:50:01 -0700</bug_when>
    <thetext>Created attachment 105916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460469</commentid>
    <comment_count>8</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-09-01 08:03:13 -0700</bug_when>
    <thetext>What the spec says, and what Gecko does, is to interpret a case-insensitive match for &quot;false&quot; as &quot;false&quot;, and anything else as &quot;true&quot;.  So &quot;false&quot;, &quot;FALSE&quot;, and &quot;fAlSe&quot; all count as false, while &quot;&quot;, &quot;1&quot;, &quot;0&quot;, &quot; false&quot;, &quot;true&quot;, &quot;amsi993&quot;, &quot;\0&quot;, etc. all count as true.  It doesn&apos;t make a big difference, since authors will usually pass boolean true or false, which will become the string &quot;true&quot; or &quot;false&quot;.  But WebKit may as well match Gecko here.  Gecko&apos;s behavior is simpler here -- it can only do two things (enable/disable), not three (enable/disable/nothing).  Also, Gecko&apos;s behavior is probably more compatible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460488</commentid>
    <comment_count>9</comment_count>
      <attachid>105916</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-01 08:43:49 -0700</bug_when>
    <thetext>Comment on attachment 105916
Patch

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

Thanks for contributing a patch.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

We require tests for patches that fix bugs like this one.

&gt; Source/WebCore/editing/EditorCommand.cpp:1020
&gt; +    const String lowercasedValue = value.lower();

The right way to do a case-insensitive comparison is to call equalIgnoringCase, not to call lower on the string. 

Since this patch is fixing a bug where we were case-sensitive before and now need to ignore case:

    1) The change log or bug title needs to mention that.
    2) The patch needs to include tests covering the correct behavior.

&gt; Source/WebCore/editing/EditorCommand.cpp:1024
&gt; +    frame-&gt;editor()-&gt;setShouldStyleWithCSS(lowercasedValue == &quot;true&quot; ? true : false);

The use of &quot;? true : false&quot; here is not good style. That’s a no-op and should be omitted.

This code should be written so it does two string comparisons, rather than repeating one a second time.

&gt; Source/WebCore/editing/EditorCommand.cpp:1034
&gt; +    frame-&gt;editor()-&gt;setShouldStyleWithCSS(lowercasedValue == &quot;false&quot; ? true : false);

A good way to write this is !equalIgnoringCase(value, &quot;false&quot;). That use of ? : is not helpful.

&gt; Source/WebCore/editing/EditorCommand.cpp:1537
&gt;          { &quot;StyleWithCSS&quot;, { executeStyleWithCSS, supported, enabled, stateStyleWithCSS, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
&gt; +        { &quot;UseCSS&quot;, { executeUseCSS, supported, enabled, stateStyleWithCSS, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
&gt;          { &quot;Subscript&quot;, { executeSubscript, supported, enabledInRichlyEditableText, stateSubscript, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },

This list is alphabetical, so UseCSS should be put in the correct alphabetical location.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460489</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-01 08:44:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; What the spec says, and what Gecko does, is to interpret a case-insensitive match for &quot;false&quot; as &quot;false&quot;, and anything else as &quot;true&quot;.  So &quot;false&quot;, &quot;FALSE&quot;, and &quot;fAlSe&quot; all count as false, while &quot;&quot;, &quot;1&quot;, &quot;0&quot;, &quot; false&quot;, &quot;true&quot;, &quot;amsi993&quot;, &quot;\0&quot;, etc. all count as true.  It doesn&apos;t make a big difference, since authors will usually pass boolean true or false, which will become the string &quot;true&quot; or &quot;false&quot;.  But WebKit may as well match Gecko here.  Gecko&apos;s behavior is simpler here -- it can only do two things (enable/disable), not three (enable/disable/nothing).  Also, Gecko&apos;s behavior is probably more compatible.

I think this makes sense. For future browser engine developers, can we make sure there’s a spec that describes the Mozilla behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460490</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-01 08:46:16 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I think this makes sense. For future browser engine developers, can we make sure there’s a spec that describes the Mozilla behavior?

What I meant to say is “Aryeh, does your spec cover this too?”

The reason I ask is that when developing Safari we found that many website developers had made mistakes, and so behavior when passing crazy incorrect values was almost as important as normal behavior for real-world compatibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460547</commentid>
    <comment_count>12</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-09-01 10:05:25 -0700</bug_when>
    <thetext>This is indeed specced:

http://aryeh.name/spec/editing/editing.html#the-stylewithcss-command
http://aryeh.name/spec/editing/editing.html#the-usecss-command

If you click the &quot;View comments&quot; boxes on the right, you&apos;ll see the research that led to the current spec.  Only Gecko and WebKit support styleWithCSS at all, and I went with the Gecko behavior in this case because it&apos;s simpler and also older.  (In other cases I went with more WebKit-like behavior, e.g., the entire way inline formatting works.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465381</commentid>
    <comment_count>13</comment_count>
      <attachid>107001</attachid>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-09-10 22:52:50 -0700</bug_when>
    <thetext>Created attachment 107001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465382</commentid>
    <comment_count>14</comment_count>
      <attachid>107001</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-10 23:14:15 -0700</bug_when>
    <thetext>Comment on attachment 107001
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +

Please explain what kind of change you&apos;re making here.  See other change log entries for examples.

&gt; LayoutTests/ChangeLog:7
&gt; +        Adding useCSS support for execCommand and changing the behavior of styleWithCSS in accordance
&gt; +        to http://aryeh.name/spec/editing/editing.html#the-stylewithcss-command

This description should appear in the change log for WebCore.

&gt; LayoutTests/ChangeLog:9
&gt; +        Reviewed by NOBODY (OOPS!).

&quot;Reviewed by&quot; should appear before the description.

&gt; LayoutTests/ChangeLog:13
&gt; +        * editing/execCommand/script-tests/toggle-text-decorations.js:
&gt; +        (testSingleToggle):
&gt; +        * editing/execCommand/toggle-text-decorations-expected.txt:

I don&apos;t think modifying these tests is a good way to test this behavior change.  These tests are testing execCommand(&apos;underline&apos;/&apos;strikeThrough&apos;) behaviors, not styleWithCSS or useCSS.

If I were you, I would write a test that does:
1. queryCommandState(&apos;styleWithCSS&apos;) returns true/fase after calling execCommand(&apos;useCSS&apos;...) with false/true
2. the result of execCommand(&apos;bold&apos; or whatever command) contains span/b after calling execCommand(&apos;useCSS&apos;) with false/true

r- because of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465470</commentid>
    <comment_count>15</comment_count>
      <attachid>107017</attachid>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-09-11 20:53:04 -0700</bug_when>
    <thetext>Created attachment 107017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465482</commentid>
    <comment_count>16</comment_count>
      <attachid>107017</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-11 22:06:38 -0700</bug_when>
    <thetext>Comment on attachment 107017
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        the boolean false or the case-insensitive string &quot;false&quot;. This is per http://aryeh.name/spec/editing/editing.html#the-stylewithcss-command

Nit: You should probably line break after &quot;per&quot;.

&gt; Source/WebCore/editing/EditorCommand.cpp:1027
&gt; +    frame-&gt;editor()-&gt;setShouldStyleWithCSS(equalIgnoringCase(value, &quot;false&quot;));
&gt;      return true;

Per Aryeh&apos;s spec, it might be a good idea to log a console message saying that this command is deprecated.

&gt; Source/WebCore/editing/EditorCommand.cpp:1540
&gt; +        { &quot;UseCSS&quot;, { executeUseCSS, supported, enabled, stateStyleWithCSS, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },

Are you sure queryCommandState(&quot;useCSS&quot;) should behave like queryCommandState(&quot;styleWithCSS&quot;)?

&gt; LayoutTests/editing/execCommand/style-with-css.html:10
&gt; +&lt;script src=&quot;script-tests/style-with-css.js&quot;&gt;&lt;/script&gt;

You can just include the script here instead.

&gt; LayoutTests/editing/execCommand/use-css.html:10
&gt; +&lt;script src=&quot;script-tests/use-css.js&quot;&gt;&lt;/script&gt;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465493</commentid>
    <comment_count>17</comment_count>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-09-11 22:48:15 -0700</bug_when>
    <thetext>Thanks for the prompt response. I will address the feedback related to tests/ChangeLog. As far as 

&gt; 
&gt; Are you sure queryCommandState(&quot;useCSS&quot;) should behave like queryCommandState(&quot;styleWithCSS&quot;)?
&gt; 

goes,  I am pretty sure this yields a correct behavior. My understanding (per http://aryeh.name/spec/editing/editing.html#the-stylewithcss-command) is that useCSS is essentially styleWithCSS except for its interpretation of the third argument passed into document.execCommand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465499</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-11 22:58:56 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; I am pretty sure this yields a correct behavior. My understanding (per http://aryeh.name/spec/editing/editing.html#the-stylewithcss-command) is that useCSS is essentially styleWithCSS except for its interpretation of the third argument passed into document.execCommand.

Interesting. Firefox doesn&apos;t support queryCommandState or queryCommandValue for UseCSS. It might be better for us not to return any state/value for this command.

Aryeh, any opinions on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465773</commentid>
    <comment_count>19</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-09-12 13:50:01 -0700</bug_when>
    <thetext>Gecko doesn&apos;t support state for either styleWithCSS or useCSS, so there&apos;s no compatibility reason to support queryCommandState(&quot;useCSS&quot;).  The spec doesn&apos;t define any indeterm/state/value for useCSS, which means that queryCommand(Indeterm|State|Value)(&quot;useCSS&quot;) is supposed to throw INVALID_ACCESS_ERR.  This basically matches Gecko, which also throws an exception, but of a nonstandard type (NS_ERROR_FAILURE).

I added a note to make this clearer:

http://aryeh.name/gitweb.cgi?p=editing;a=commitdiff;h=7928c688
http://aryeh.name/spec/editing/editing.html#the-usecss-command</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465788</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-12 14:17:58 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Gecko doesn&apos;t support state for either styleWithCSS or useCSS, so there&apos;s no compatibility reason to support queryCommandState(&quot;useCSS&quot;).  The spec doesn&apos;t define any indeterm/state/value for useCSS, which means that queryCommand(Indeterm|State|Value)(&quot;useCSS&quot;) is supposed to throw INVALID_ACCESS_ERR.  This basically matches Gecko, which also throws an exception, but of a nonstandard type (NS_ERROR_FAILURE).

Thanks for the clarification.

However, since we throw any exceptions in queryCommand*, we probably should just return false here (i.e. just give use stateNone instead of stateStyleWithCSS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466046</commentid>
    <comment_count>21</comment_count>
      <attachid>107131</attachid>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-09-12 19:40:06 -0700</bug_when>
    <thetext>Created attachment 107131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466056</commentid>
    <comment_count>22</comment_count>
      <attachid>107131</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-12 20:07:52 -0700</bug_when>
    <thetext>Comment on attachment 107131
Patch

Could you also add tests for queryCommandValue/queryCommandState with styleWithCSS and useCSS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466066</commentid>
    <comment_count>23</comment_count>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-09-12 20:17:09 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 107131 [details])
&gt; Could you also add tests for queryCommandValue/queryCommandState with styleWithCSS and useCSS?

Sure. What are we expected to see when queryCommandValue/State is called for useCSS? (I am not 100% sure what the expected behavior should be).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466069</commentid>
    <comment_count>24</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-12 20:21:54 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Sure. What are we expected to see when queryCommandValue/State is called for useCSS? (I am not 100% sure what the expected behavior should be).

They should return &apos;false&apos; and false respectively. I know Aryeh&apos;s spec says we should throw an exception but we don&apos;t do that anywhere else so that behavioral change should be made in a separate patch if we ever decide to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466175</commentid>
    <comment_count>25</comment_count>
      <attachid>107131</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-13 00:51:47 -0700</bug_when>
    <thetext>Comment on attachment 107131
Patch

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

Let&apos;s add tests for queryCommandState/queryCommandValue and then land this patch.

&gt; LayoutTests/editing/execCommand/style-with-css.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

Can we use new style? (i.e. &lt;!DOCTYPE html&gt;)

&gt; LayoutTests/editing/execCommand/style-with-css.html:21
&gt; +    {
&gt; +        testPassed(&apos;styleWithCSS changed the state successfully&apos;);
&gt; +    } else {
&gt; +        testFailed(&apos;styleWithCSS failed with the argument &apos; + styleArg);
&gt; +    }

No curly brackets around single line statements.

&gt; LayoutTests/editing/execCommand/use-css.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

Ditto.

&gt; LayoutTests/editing/execCommand/use-css.html:25
&gt; +    {
&gt; +        testPassed(&apos;useCSS changed the state successfully&apos;);
&gt; +    } else {
&gt; +        testFailed(&apos;useCSS failed with the argument &apos; + styleArg);
&gt; +    }

Ditto.

&gt; LayoutTests/editing/execCommand/use-css.html:38
&gt; +    if (testContainer.innerHTML === expectedContents) {
&gt; +        testPassed(&quot;one &quot; + toggleCommand + &quot; command converted &quot; + initialContents + &quot; to &quot; + expectedContents);
&gt; +    } else {
&gt; +        testFailed(&quot;one &quot; + toggleCommand + &quot; command converted &quot; + initialContents + &quot; to &quot; + testContainer.innerHTML + &quot;, expected &quot; + expectedContents);
&gt; +    }

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466483</commentid>
    <comment_count>26</comment_count>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-09-13 12:57:45 -0700</bug_when>
    <thetext>&gt; Let&apos;s add tests for queryCommandState/queryCommandValue and then land this patch.

Just for &apos;useCSS&apos; or also for &apos;styleWithCSS&apos;?

(In reply to comment #25)
&gt; (From update of attachment 107131 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=107131&amp;action=review
&gt; 
&gt; Let&apos;s add tests for queryCommandState/queryCommandValue and then land this patch.
&gt; 
&gt; &gt; LayoutTests/editing/execCommand/style-with-css.html:1
&gt; &gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&gt; 
&gt; Can we use new style? (i.e. &lt;!DOCTYPE html&gt;)
&gt; 
&gt; &gt; LayoutTests/editing/execCommand/style-with-css.html:21
&gt; &gt; +    {
&gt; &gt; +        testPassed(&apos;styleWithCSS changed the state successfully&apos;);
&gt; &gt; +    } else {
&gt; &gt; +        testFailed(&apos;styleWithCSS failed with the argument &apos; + styleArg);
&gt; &gt; +    }
&gt; 
&gt; No curly brackets around single line statements.
&gt; 
&gt; &gt; LayoutTests/editing/execCommand/use-css.html:1
&gt; &gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; LayoutTests/editing/execCommand/use-css.html:25
&gt; &gt; +    {
&gt; &gt; +        testPassed(&apos;useCSS changed the state successfully&apos;);
&gt; &gt; +    } else {
&gt; &gt; +        testFailed(&apos;useCSS failed with the argument &apos; + styleArg);
&gt; &gt; +    }
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; LayoutTests/editing/execCommand/use-css.html:38
&gt; &gt; +    if (testContainer.innerHTML === expectedContents) {
&gt; &gt; +        testPassed(&quot;one &quot; + toggleCommand + &quot; command converted &quot; + initialContents + &quot; to &quot; + expectedContents);
&gt; &gt; +    } else {
&gt; &gt; +        testFailed(&quot;one &quot; + toggleCommand + &quot; command converted &quot; + initialContents + &quot; to &quot; + testContainer.innerHTML + &quot;, expected &quot; + expectedContents);
&gt; &gt; +    }
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466499</commentid>
    <comment_count>27</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-13 13:23:39 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; &gt; Let&apos;s add tests for queryCommandState/queryCommandValue and then land this patch.
&gt; 
&gt; Just for &apos;useCSS&apos; or also for &apos;styleWithCSS&apos;?

Definitely for useCSS but it&apos;ll be great if you could also add tests for styleWithCSS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466511</commentid>
    <comment_count>28</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-09-13 13:39:32 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; They should return &apos;false&apos; and false respectively. I know Aryeh&apos;s spec says we should throw an exception but we don&apos;t do that anywhere else so that behavioral change should be made in a separate patch if we ever decide to do.

Sounds reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466577</commentid>
    <comment_count>29</comment_count>
      <attachid>107237</attachid>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-09-13 14:59:19 -0700</bug_when>
    <thetext>Created attachment 107237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466578</commentid>
    <comment_count>30</comment_count>
      <attachid>107237</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-13 15:01:41 -0700</bug_when>
    <thetext>Comment on attachment 107237
Patch

Thanks for adding the test!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466579</commentid>
    <comment_count>31</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-13 15:02:03 -0700</bug_when>
    <thetext>Perhaps you want to ask for cq+ ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466581</commentid>
    <comment_count>32</comment_count>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-09-13 15:03:36 -0700</bug_when>
    <thetext>What is cq+? Commit Queue?
(In reply to comment #31)
&gt; Perhaps you want to ask for cq+ ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466582</commentid>
    <comment_count>33</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-13 15:04:44 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; What is cq+? Commit Queue?
&gt; (In reply to comment #31)
&gt; &gt; Perhaps you want to ask for cq+ ?

Yes. The commit queue can your land your patch if some committer sets cq+.  Alternatively, you can ask some committer to land your patch on behalf.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466585</commentid>
    <comment_count>34</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-13 15:06:41 -0700</bug_when>
    <thetext>When submitting a patch, if you want it to be landed by the commit-queue, you can indicate it by setting the commit-queue flag to ?. That lets a committer know that it should be set to + if it’s good to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466588</commentid>
    <comment_count>35</comment_count>
      <attachid>107237</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-13 15:09:18 -0700</bug_when>
    <thetext>Comment on attachment 107237
Patch

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

&gt; LayoutTests/editing/execCommand/use-css.html:42
&gt; +testUseCSS(false, true);
&gt; +testUseCSS(&apos;false&apos;, true);
&gt; +testUseCSS(&apos;FALSE&apos;, true);
&gt; +testUseCSS(true, false);
&gt; +testUseCSS(&apos;random string&apos;, false);

Other cases to test would be the empty string and the string &quot; false &quot; (which apparently means true).

&gt; LayoutTests/editing/execCommand/use-css.html:47
&gt; +if (document.queryCommandState(&apos;useCSS&apos;) === false)
&gt; +    testPassed(&quot;queryCommandState(&apos;useCSS&apos;) returns false&quot;);
&gt; +else
&gt; +    testFailed(&quot;queryCommandState(&apos;useCSS&apos;) should return boolean false&quot;);

I think the shouldBe macro does a better job of this; I’m not sure that === false will fail for every value other than false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466596</commentid>
    <comment_count>36</comment_count>
    <who name="Kiyoto Tamura">owenestea</who>
    <bug_when>2011-09-13 15:19:52 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; Other cases to test would be the empty string and the string &quot; false &quot; (which apparently means true).

We can certainly test that.

&gt; 
&gt; &gt; LayoutTests/editing/execCommand/use-css.html:47
&gt; &gt; +if (document.queryCommandState(&apos;useCSS&apos;) === false)
&gt; &gt; +    testPassed(&quot;queryCommandState(&apos;useCSS&apos;) returns false&quot;);
&gt; &gt; +else
&gt; &gt; +    testFailed(&quot;queryCommandState(&apos;useCSS&apos;) should return boolean false&quot;);
&gt; 
&gt; I think the shouldBe macro does a better job of this; I’m not sure that === false will fail for every value other than false.

Do you know which shouldBe macro it is? I was looking at LayoutTest/fast/js/resources/js-test-pre.js and the shouldBe function seemed to require that both arguments be strings. Here, we are trying to test that it is the boolean true/false as opposed to strings. The (===) is to avoid JS&apos;s notorious type coercions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466606</commentid>
    <comment_count>37</comment_count>
      <attachid>107237</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-13 15:30:29 -0700</bug_when>
    <thetext>Comment on attachment 107237
Patch

Clearing flags on attachment: 107237

Committed r95050: &lt;http://trac.webkit.org/changeset/95050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466607</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-13 15:30:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466622</commentid>
    <comment_count>39</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-13 15:41:46 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; Do you know which shouldBe macro it is? I was looking at LayoutTest/fast/js/resources/js-test-pre.js and the shouldBe function seemed to require that both arguments be strings. Here, we are trying to test that it is the boolean true/false as opposed to strings. The (===) is to avoid JS&apos;s notorious type coercions.

shouldBe evaluates both strings and then compare so shouldBe(&apos;true&apos;, &apos;1 == 1&apos;) will PASS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466646</commentid>
    <comment_count>40</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-13 16:18:05 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; Do you know which shouldBe macro it is?

shouldBe(&quot;document.queryCommandState(&apos;useCSS&apos;)&quot;, &quot;false&quot;);</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>105861</attachid>
            <date>2011-08-31 16:57:48 -0700</date>
            <delta_ts>2011-08-31 16:57:48 -0700</delta_ts>
            <desc>the modified version of the test page.</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>13893</size>
            <attacher name="Kiyoto Tamura">owenestea</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+TW96aWxsYSBSaWNoIFRleHQgRWRpdGluZyBEZW1vPC90aXRs
ZT4KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5pbWFnZWJ1dHRvbiB7aGVpZ2h0OiAyMjsgd2lk
dGg6IDIzOyBib3JkZXI6IHNvbGlkIDJweCAjQzBDMEMwOyBiYWNrZ3JvdW5kLWNvbG9yOiAjQzBD
MEMwfQouaW1hZ2Uge3Bvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogMTsgdG9wOiAxOyBoZWlnaHQ6
MjA7IHdpZHRoOjIxOyBib3JkZXI6bm9uZTt9Ci50b29sYmFyIHtoZWlnaHQ6IDMwOyBiYWNrZ3Jv
dW5kLWNvbG9yOiAjQzBDMEMwO30KPC9zdHlsZT4KCjxzY3JpcHQ+Cgp2YXIgY29tbWFuZCA9ICIi
OwoKZnVuY3Rpb24gSW5pdFRvb2xiYXJCdXR0b25zKCkgewogIHZhciBraWRzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ0RJVicpOwoKICBmb3IgKHZhciBpPTA7IGkgPCBraWRzLmxl
bmd0aDsgaSsrKSB7CiAgICBpZiAoa2lkc1tpXS5jbGFzc05hbWUgPT0gImltYWdlYnV0dG9uIikg
ewogICAgICBraWRzW2ldLm9ubW91c2VvdmVyID0gdGJtb3VzZW92ZXI7CiAgICAgIGtpZHNbaV0u
b25tb3VzZW91dCA9IHRibW91c2VvdXQ7CiAgICAgIGtpZHNbaV0ub25tb3VzZWRvd24gPSB0Ym1v
dXNlZG93bjsKICAgICAga2lkc1tpXS5vbm1vdXNldXAgPSB0Ym1vdXNldXA7CiAgICAgIGtpZHNb
aV0ub25jbGljayA9IHRiY2xpY2s7CiAgICB9CiAgfQp9CgpmdW5jdGlvbiB0Ym1vdXNlZG93bihl
KQp7CiAgdmFyIGV2dCA9IGUgPyBlIDogd2luZG93LmV2ZW50OyAKCiAgdGhpcy5maXJzdENoaWxk
LnN0eWxlLmxlZnQgPSAyOwogIHRoaXMuZmlyc3RDaGlsZC5zdHlsZS50b3AgPSAyOwogIHRoaXMu
c3R5bGUuYm9yZGVyPSJpbnNldCAycHgiOwogIGlmIChldnQucmV0dXJuVmFsdWUpIHsKICAgIGV2
dC5yZXR1cm5WYWx1ZSA9IGZhbHNlOwogIH0gZWxzZSBpZiAoZXZ0LnByZXZlbnREZWZhdWx0KSB7
CiAgICBldnQucHJldmVudERlZmF1bHQoICk7CiAgfSBlbHNlIHsKICAgIHJldHVybiBmYWxzZTsK
ICB9Cn0KCmZ1bmN0aW9uIHRibW91c2V1cCgpCnsKICB0aGlzLmZpcnN0Q2hpbGQuc3R5bGUubGVm
dCA9IDE7CiAgdGhpcy5maXJzdENoaWxkLnN0eWxlLnRvcCA9IDE7CiAgdGhpcy5zdHlsZS5ib3Jk
ZXI9Im91dHNldCAycHgiOwp9CgpmdW5jdGlvbiB0Ym1vdXNlb3V0KCkKewogIHRoaXMuc3R5bGUu
Ym9yZGVyPSJzb2xpZCAycHggI0MwQzBDMCI7Cn0KCmZ1bmN0aW9uIHRibW91c2VvdmVyKCkKewog
IHRoaXMuc3R5bGUuYm9yZGVyPSJvdXRzZXQgMnB4IjsKfQoKICBmdW5jdGlvbiBpbnNlcnROb2Rl
QXRTZWxlY3Rpb24od2luLCBpbnNlcnROb2RlKQogIHsKICAgICAgLy8gZ2V0IGN1cnJlbnQgc2Vs
ZWN0aW9uCiAgICAgIHZhciBzZWwgPSB3aW4uZ2V0U2VsZWN0aW9uKCk7CgogICAgICAvLyBnZXQg
dGhlIGZpcnN0IHJhbmdlIG9mIHRoZSBzZWxlY3Rpb24KICAgICAgLy8gKHRoZXJlJ3MgYWxtb3N0
IGFsd2F5cyBvbmx5IG9uZSByYW5nZSkKICAgICAgdmFyIHJhbmdlID0gc2VsLmdldFJhbmdlQXQo
MCk7CgogICAgICAvLyBkZXNlbGVjdCBldmVyeXRoaW5nCiAgICAgIHNlbC5yZW1vdmVBbGxSYW5n
ZXMoKTsKCiAgICAgIC8vIHJlbW92ZSBjb250ZW50IG9mIGN1cnJlbnQgc2VsZWN0aW9uIGZyb20g
ZG9jdW1lbnQKICAgICAgcmFuZ2UuZGVsZXRlQ29udGVudHMoKTsKCiAgICAgIC8vIGdldCBsb2Nh
dGlvbiBvZiBjdXJyZW50IHNlbGVjdGlvbgogICAgICB2YXIgY29udGFpbmVyID0gcmFuZ2Uuc3Rh
cnRDb250YWluZXI7CiAgICAgIHZhciBwb3MgPSByYW5nZS5zdGFydE9mZnNldDsKCiAgICAgIC8v
IG1ha2UgYSBuZXcgcmFuZ2UgZm9yIHRoZSBuZXcgc2VsZWN0aW9uCiAgICAgIHJhbmdlPWRvY3Vt
ZW50LmNyZWF0ZVJhbmdlKCk7CgogICAgICBpZiAoY29udGFpbmVyLm5vZGVUeXBlPT0zICYmIGlu
c2VydE5vZGUubm9kZVR5cGU9PTMpIHsKCiAgICAgICAgLy8gaWYgd2UgaW5zZXJ0IHRleHQgaW4g
YSB0ZXh0bm9kZSwgZG8gb3B0aW1pemVkIGluc2VydGlvbgogICAgICAgIGNvbnRhaW5lci5pbnNl
cnREYXRhKHBvcywgaW5zZXJ0Tm9kZS5ub2RlVmFsdWUpOwoKICAgICAgICAvLyBwdXQgY3Vyc29y
IGFmdGVyIGluc2VydGVkIHRleHQKICAgICAgICByYW5nZS5zZXRFbmQoY29udGFpbmVyLCBwb3Mr
aW5zZXJ0Tm9kZS5sZW5ndGgpOwogICAgICAgIHJhbmdlLnNldFN0YXJ0KGNvbnRhaW5lciwgcG9z
K2luc2VydE5vZGUubGVuZ3RoKTsKCiAgICAgIH0gZWxzZSB7CgoKICAgICAgICB2YXIgYWZ0ZXJO
b2RlOwogICAgICAgIGlmIChjb250YWluZXIubm9kZVR5cGU9PTMpIHsKCiAgICAgICAgICAvLyB3
aGVuIGluc2VydGluZyBpbnRvIGEgdGV4dG5vZGUKICAgICAgICAgIC8vIHdlIGNyZWF0ZSAyIG5l
dyB0ZXh0bm9kZXMKICAgICAgICAgIC8vIGFuZCBwdXQgdGhlIGluc2VydE5vZGUgaW4gYmV0d2Vl
bgoKICAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGNvbnRhaW5lcjsKICAgICAgICAgIGNvbnRhaW5l
ciA9IHRleHROb2RlLnBhcmVudE5vZGU7CiAgICAgICAgICB2YXIgdGV4dCA9IHRleHROb2RlLm5v
ZGVWYWx1ZTsKCiAgICAgICAgICAvLyB0ZXh0IGJlZm9yZSB0aGUgc3BsaXQKICAgICAgICAgIHZh
ciB0ZXh0QmVmb3JlID0gdGV4dC5zdWJzdHIoMCxwb3MpOwogICAgICAgICAgLy8gdGV4dCBhZnRl
ciB0aGUgc3BsaXQKICAgICAgICAgIHZhciB0ZXh0QWZ0ZXIgPSB0ZXh0LnN1YnN0cihwb3MpOwoK
ICAgICAgICAgIHZhciBiZWZvcmVOb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dEJl
Zm9yZSk7CiAgICAgICAgICBhZnRlck5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0
QWZ0ZXIpOwoKICAgICAgICAgIC8vIGluc2VydCB0aGUgMyBuZXcgbm9kZXMgYmVmb3JlIHRoZSBv
bGQgb25lCiAgICAgICAgICBjb250YWluZXIuaW5zZXJ0QmVmb3JlKGFmdGVyTm9kZSwgdGV4dE5v
ZGUpOwogICAgICAgICAgY29udGFpbmVyLmluc2VydEJlZm9yZShpbnNlcnROb2RlLCBhZnRlck5v
ZGUpOwogICAgICAgICAgY29udGFpbmVyLmluc2VydEJlZm9yZShiZWZvcmVOb2RlLCBpbnNlcnRO
b2RlKTsKCiAgICAgICAgICAvLyByZW1vdmUgdGhlIG9sZCBub2RlCiAgICAgICAgICBjb250YWlu
ZXIucmVtb3ZlQ2hpbGQodGV4dE5vZGUpOwoKICAgICAgICB9IGVsc2UgewoKICAgICAgICAgIC8v
IGVsc2Ugc2ltcGx5IGluc2VydCB0aGUgbm9kZQogICAgICAgICAgYWZ0ZXJOb2RlID0gY29udGFp
bmVyLmNoaWxkTm9kZXNbcG9zXTsKICAgICAgICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoaW5z
ZXJ0Tm9kZSwgYWZ0ZXJOb2RlKTsKICAgICAgICB9CgogICAgICAgIHJhbmdlLnNldEVuZChhZnRl
ck5vZGUsIDApOwogICAgICAgIHJhbmdlLnNldFN0YXJ0KGFmdGVyTm9kZSwgMCk7CiAgICAgIH0K
CiAgICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7CiAgfTsKCmZ1bmN0aW9uIGdldE9mZnNldFRvcChl
bG0pIHsKCiAgdmFyIG1PZmZzZXRUb3AgPSBlbG0ub2Zmc2V0VG9wOwogIHZhciBtT2Zmc2V0UGFy
ZW50ID0gZWxtLm9mZnNldFBhcmVudDsKCiAgd2hpbGUobU9mZnNldFBhcmVudCl7CiAgICBtT2Zm
c2V0VG9wICs9IG1PZmZzZXRQYXJlbnQub2Zmc2V0VG9wOwogICAgbU9mZnNldFBhcmVudCA9IG1P
ZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50OwogIH0KIAogIHJldHVybiBtT2Zmc2V0VG9wOwp9Cgpm
dW5jdGlvbiBnZXRPZmZzZXRMZWZ0KGVsbSkgewoKICB2YXIgbU9mZnNldExlZnQgPSBlbG0ub2Zm
c2V0TGVmdDsKICB2YXIgbU9mZnNldFBhcmVudCA9IGVsbS5vZmZzZXRQYXJlbnQ7CgogIHdoaWxl
KG1PZmZzZXRQYXJlbnQpewogICAgbU9mZnNldExlZnQgKz0gbU9mZnNldFBhcmVudC5vZmZzZXRM
ZWZ0OwogICAgbU9mZnNldFBhcmVudCA9IG1PZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50OwogIH0K
IAogIHJldHVybiBtT2Zmc2V0TGVmdDsKfQoKZnVuY3Rpb24gdGJjbGljaygpCnsKICBpZiAoKHRo
aXMuaWQgPT0gImZvcmVjb2xvciIpIHx8ICh0aGlzLmlkID09ICJoaWxpdGVjb2xvciIpKSB7CiAg
ICBwYXJlbnQuY29tbWFuZCA9IHRoaXMuaWQ7CiAgICBidXR0b25FbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQodGhpcy5pZCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29s
b3JwYWxldHRlIikuc3R5bGUubGVmdCA9IGdldE9mZnNldExlZnQoYnV0dG9uRWxlbWVudCk7CiAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29sb3JwYWxldHRlIikuc3R5bGUudG9wID0gZ2V0
T2Zmc2V0VG9wKGJ1dHRvbkVsZW1lbnQpICsgYnV0dG9uRWxlbWVudC5vZmZzZXRIZWlnaHQ7CiAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29sb3JwYWxldHRlIikuc3R5bGUudmlzaWJpbGl0
eT0idmlzaWJsZSI7CiAgfSBlbHNlIGlmICh0aGlzLmlkID09ICJjcmVhdGVsaW5rIikgewogICAg
dmFyIHN6VVJMID0gcHJvbXB0KCJFbnRlciBhIFVSTDoiLCAiaHR0cDovLyIpOwogICAgaWYgKChz
elVSTCAhPSBudWxsKSAmJiAoc3pVUkwgIT0gIiIpKSB7CiAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdlZGl0JykuY29udGVudFdpbmRvdy5kb2N1bWVudC5leGVjQ29tbWFuZCgiQ3JlYXRl
TGluayIsZmFsc2Usc3pVUkwpOwogICAgfQogIH0gZWxzZSBpZiAodGhpcy5pZCA9PSAiY3JlYXRl
aW1hZ2UiKSB7CiAgICBpbWFnZVBhdGggPSBwcm9tcHQoJ0VudGVyIEltYWdlIFVSTDonLCAnaHR0
cDovLycpOwogICAgaWYgKChpbWFnZVBhdGggIT0gbnVsbCkgJiYgKGltYWdlUGF0aCAhPSAiIikp
IHsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXQnKS5jb250ZW50V2luZG93LmRv
Y3VtZW50LmV4ZWNDb21tYW5kKCdJbnNlcnRJbWFnZScsIGZhbHNlLCBpbWFnZVBhdGgpOwogICAg
fQogIH0gZWxzZSBpZiAodGhpcy5pZCA9PSAiY3JlYXRldGFibGUiKSB7CiAgICBlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImVkaXQiKTsKICAgIHJvd3N0ZXh0ID0gcHJvbXB0KCJlbnRlciBy
b3dzIik7CiAgICBjb2xzdGV4dCA9IHByb21wdCgiZW50ZXIgY29scyIpOwogICAgcm93cyA9IHBh
cnNlSW50KHJvd3N0ZXh0KTsKICAgIGNvbHMgPSBwYXJzZUludChjb2xzdGV4dCk7CiAgICBpZiAo
KHJvd3MgPiAwKSAmJiAoY29scyA+IDApKSB7CiAgICAgIHRhYmxlID0gZS5jb250ZW50V2luZG93
LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7CiAgICAgIHRhYmxlLnNldEF0dHJpYnV0
ZSgiYm9yZGVyIiwgIjEiKTsKICAgICAgdGFibGUuc2V0QXR0cmlidXRlKCJjZWxscGFkZGluZyIs
ICIyIik7CiAgICAgIHRhYmxlLnNldEF0dHJpYnV0ZSgiY2VsbHNwYWNpbmciLCAiMiIpOwogICAg
ICB0Ym9keSA9IGUuY29udGVudFdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIp
OwogICAgICBmb3IgKHZhciBpPTA7IGkgPCByb3dzOyBpKyspIHsKICAgICAgICB0ciA9ZS5jb250
ZW50V2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7CiAgICAgICAgZm9yICh2YXIg
aj0wOyBqIDwgY29sczsgaisrKSB7CiAgICAgICAgICB0ZCA9ZS5jb250ZW50V2luZG93LmRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7CiAgICAgICAgICBiciA9ZS5jb250ZW50V2luZG93LmRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIik7CiAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChicik7
CiAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgfQogICAgICAgIHRib2R5LmFw
cGVuZENoaWxkKHRyKTsKICAgICAgfQogICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0Ym9keSk7ICAg
ICAgCiAgICAgIGluc2VydE5vZGVBdFNlbGVjdGlvbihlLmNvbnRlbnRXaW5kb3csIHRhYmxlKTsK
ICAgIH0KICB9IGVsc2UgewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXQnKS5jb250
ZW50V2luZG93LmRvY3VtZW50LmV4ZWNDb21tYW5kKHRoaXMuaWQsIGZhbHNlLCBudWxsKTsKICB9
Cn0KCmZ1bmN0aW9uIFNlbGVjdChzZWxlY3RuYW1lKQp7CiAgdmFyIGN1cnNlbCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKHNlbGVjdG5hbWUpLnNlbGVjdGVkSW5kZXg7CiAgLyogRmlyc3Qgb25l
IGlzIGFsd2F5cyBhIGxhYmVsICovCiAgaWYgKGN1cnNlbCAhPSAwKSB7CiAgICB2YXIgc2VsZWN0
ZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxlY3RuYW1lKS5vcHRpb25zW2N1cnNlbF0u
dmFsdWU7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdCcpLmNvbnRlbnRXaW5kb3cu
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoc2VsZWN0bmFtZSwgZmFsc2UsIHNlbGVjdGVkKTsKICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKHNlbGVjdG5hbWUpLnNlbGVjdGVkSW5kZXggPSAwOwogIH0K
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdCIpLmNvbnRlbnRXaW5kb3cuZm9jdXMoKTsK
fQoKZnVuY3Rpb24gZGlzbWlzc2NvbG9ycGFsZXR0ZSgpCnsKICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29sb3JwYWxldHRlIikuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjsKfQoKZnVuY3Rp
b24gU3RhcnQoKSB7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXQnKS5jb250ZW50V2lu
ZG93LmRvY3VtZW50LmRlc2lnbk1vZGUgPSAib24iOwogIHRyeSB7CiAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZWRpdCcpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZXhlY0NvbW1hbmQoInVu
ZG8iLCBmYWxzZSwgbnVsbCk7CiAgfSAgY2F0Y2ggKGUpIHsKICAgIGFsZXJ0KCJUaGlzIGRlbW8g
aXMgbm90IHN1cHBvcnRlZCBvbiB5b3VyIGxldmVsIG9mIE1vemlsbGEuIik7CiAgfQoKICBJbml0
VG9vbGJhckJ1dHRvbnMoKTsKICBpZiAoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewogICAg
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgZGlzbWlzc2NvbG9ycGFsZXR0
ZSwgdHJ1ZSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdCIpLmNvbnRlbnRXaW5k
b3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgZGlzbWlzc2NvbG9ycGFs
ZXR0ZSwgdHJ1ZSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlwcmVzcyIsIGRp
c21pc3Njb2xvcnBhbGV0dGUsIHRydWUpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVk
aXQiKS5jb250ZW50V2luZG93LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIiwg
ZGlzbWlzc2NvbG9ycGFsZXR0ZSwgdHJ1ZSk7CiAgfSBlbHNlIGlmIChkb2N1bWVudC5hdHRhY2hF
dmVudCkgewogICAgZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm1vdXNlZG93biIsIGRpc21pc3Njb2xv
cnBhbGV0dGUsIHRydWUpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXQiKS5jb250
ZW50V2luZG93LmRvY3VtZW50LmF0dGFjaEV2ZW50KCJtb3VzZWRvd24iLCBkaXNtaXNzY29sb3Jw
YWxldHRlLCB0cnVlKTsKICAgIGRvY3VtZW50LmF0dGFjaEV2ZW50KCJrZXlwcmVzcyIsIGRpc21p
c3Njb2xvcnBhbGV0dGUsIHRydWUpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXQi
KS5jb250ZW50V2luZG93LmRvY3VtZW50LmF0dGFjaEV2ZW50KCJrZXlwcmVzcyIsIGRpc21pc3Nj
b2xvcnBhbGV0dGUsIHRydWUpOwogIH0KfQoKPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHkgb25Mb2Fk
PSJTdGFydCgpIj4KPGgyPlBsZWFzZSBub3RlIHRoYXQgdGhlIGNoYW5naW5nIG9mIHRleHQgZm9y
bWF0IChIZWFkaW5nLCBQYXJhZ3JhcGgsIGV0Yy4pIHdpbGwgb25seSBmdW5jdGlvbgpwcm9wZXJs
eSBvbiBhIDEuM2IgYnVpbGQgZGF0ZWQgYWZ0ZXIgSmFudWFyeSAyNiwgMjAwMy4gVGhhbmtzLjwv
aDI+CjxwPlRoZSBDdXQsIENvcHksIGFuZCBQYXN0ZSBidXR0b25zIGJlbG93IGFyZSBkaXNhYmxl
ZCBmb3Igc2VjdXJpdHkgcmVhc29ucy4gVG8gZW5hYmxlCnRoZW0gZm9yIHB1cnBvc2VzIG9mIHRo
aXMgZGVtbywgeW91IG5lZWQgdG8KPGEgaHJlZj0ic2VjdXJpdHlwcmVmcy5odG1sIj5lZGl0IHlv
dXIgcHJlZmVyZW5jZXMgZmlsZTwvYT4uPC9wPgoKPHRhYmxlIGJnY29sb3I9IiNDMEMwQzAiIGlk
PSJ0b29sYmFyMSI+Cjx0cj4KPHRkPgo8ZGl2IGNsYXNzPSJpbWFnZWJ1dHRvbiIgaWQ9ImN1dCI+
PGltZyBjbGFzcz0iaW1hZ2UiIHNyYz0iY3V0LmdpZiIgYWx0PSJDdXQiIHRpdGxlPSJDdXQiPjwv
ZGl2Pgo8L3RkPgo8dGQ+CjxkaXYgY2xhc3M9ImltYWdlYnV0dG9uIiBpZD0iY29weSI+PGltZyBj
bGFzcz0iaW1hZ2UiIHNyYz0iY29weS5naWYiIGFsdD0iQ29weSIgdGl0bGU9IkNvcHkiPjwvZGl2
Pgo8L3RkPgo8dGQ+CjxkaXYgY2xhc3M9ImltYWdlYnV0dG9uIiBpZD0icGFzdGUiPjxpbWcgY2xh
c3M9ImltYWdlIiBzcmM9InBhc3RlLmdpZiIgYWx0PSJQYXN0ZSIgdGl0bGU9IlBhc3RlIj48L2Rp
dj4KPHRkPgo8L3RkPgo8dGQ+CjwvdGQ+Cjx0ZD4KPGRpdiBjbGFzcz0iaW1hZ2VidXR0b24iIGlk
PSJ1bmRvIj48aW1nIGNsYXNzPSJpbWFnZSIgc3JjPSJ1bmRvLmdpZiIgYWx0PSJVbmRvIiB0aXRs
ZT0iVW5kbyI+PC9kaXY+CjwvdGQ+Cjx0ZD4KPGRpdiBjbGFzcz0iaW1hZ2VidXR0b24iIGlkPSJy
ZWRvIj48aW1nIGNsYXNzPSJpbWFnZSIgc3JjPSJyZWRvLmdpZiIgYWx0PSJSZWRvIiB0aXRsZT0i
UmVkbyI+PC9kaXY+CjwvdGQ+Cjx0ZD4KPC90ZD4KPHRkPgo8ZGl2IHN0eWxlPSJsZWZ0OiAxMDsi
IGNsYXNzPSJpbWFnZWJ1dHRvbiIgaWQ9ImNyZWF0ZWxpbmsiPjxpbWcgY2xhc3M9ImltYWdlIiBz
cmM9ImxpbmsuZ2lmIiBhbHQ9Ikluc2VydCBMaW5rIiB0aXRsZT0iSW5zZXJ0IExpbmsiPjwvZGl2
Pgo8L3RkPgo8dGQ+CjxkaXYgc3R5bGU9ImxlZnQ6IDEwOyIgY2xhc3M9ImltYWdlYnV0dG9uIiBp
ZD0iY3JlYXRlaW1hZ2UiPjxpbWcgY2xhc3M9ImltYWdlIiBzcmM9ImltYWdlLmdpZiIgYWx0PSJJ
bnNlcnQgSW1hZ2UiIHRpdGxlPSJJbnNlcnQgSW1hZ2UiPjwvZGl2Pgo8L3RkPgo8dGQ+CjwvdGQ+
Cjx0ZD4KPGRpdiBzdHlsZT0ibGVmdDogMTA7IiBjbGFzcz0iaW1hZ2VidXR0b24iIGlkPSJjcmVh
dGV0YWJsZSI+PGltZyBjbGFzcz0iaW1hZ2UiIHNyYz0idGFibGUuZ2lmIiBhbHQ9Ikluc2VydCBU
YWJsZSIgdGl0bGU9Ikluc2VydCBUYWJsZSI+PC9kaXY+CjwvdGQ+CjwvdHI+CjwvdGFibGU+Cjxi
cj4KPHRhYmxlIGJnY29sb3I9IiNDMEMwQzAiIGlkPSJ0b29sYmFyMiI+Cjx0cj4KPHRkPgo8c2Vs
ZWN0IGlkPSJmb3JtYXRibG9jayIgb25jaGFuZ2U9IlNlbGVjdCh0aGlzLmlkKTsiPgogIDxvcHRp
b24gdmFsdWU9IjxwPiI+Tm9ybWFsPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iPHA+Ij5QYXJh
Z3JhcGg8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSI8aDE+Ij5IZWFkaW5nIDEgPEgxPjwvb3B0
aW9uPgogIDxvcHRpb24gdmFsdWU9IjxoMj4iPkhlYWRpbmcgMiA8SDI+PC9vcHRpb24+CiAgPG9w
dGlvbiB2YWx1ZT0iPGgzPiI+SGVhZGluZyAzIDxIMz48L29wdGlvbj4KICA8b3B0aW9uIHZhbHVl
PSI8aDQ+Ij5IZWFkaW5nIDQgPEg0Pjwvb3B0aW9uPgogIDxvcHRpb24gdmFsdWU9IjxoNT4iPkhl
YWRpbmcgNSA8SDU+PC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iPGg2PiI+SGVhZGluZyA2IDxI
Nj48L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSI8YWRkcmVzcz4iPkFkZHJlc3MgPEFERFI+PC9v
cHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iPHByZT4iPkZvcm1hdHRlZCA8UFJFPjwvb3B0aW9uPgo8
L3NlbGVjdD4KPC90ZD4KPHRkPgo8c2VsZWN0IGlkPSJmb250bmFtZSIgb25jaGFuZ2U9IlNlbGVj
dCh0aGlzLmlkKTsiPgogIDxvcHRpb24gdmFsdWU9IkZvbnQiPkZvbnQ8L29wdGlvbj4KICA8b3B0
aW9uIHZhbHVlPSJBcmlhbCI+QXJpYWw8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSJDb3VyaWVy
Ij5Db3VyaWVyPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iVGltZXMgTmV3IFJvbWFuIj5UaW1l
cyBOZXcgUm9tYW48L29wdGlvbj4KPC9zZWxlY3Q+CjwvdGQ+Cjx0ZD4KPHNlbGVjdCB1bnNlbGVj
dGFibGU9Im9uIiBpZD0iZm9udHNpemUiIG9uY2hhbmdlPSJTZWxlY3QodGhpcy5pZCk7Ij4KICA8
b3B0aW9uIHZhbHVlPSJTaXplIj5TaXplPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iMSI+MTwv
b3B0aW9uPgogIDxvcHRpb24gdmFsdWU9IjIiPjI8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSIz
Ij4zPC9vcHRpb24+CiAgPG9wdGlvbiB2YWx1ZT0iNCI+NDwvb3B0aW9uPgogIDxvcHRpb24gdmFs
dWU9IjUiPjU8L29wdGlvbj4KICA8b3B0aW9uIHZhbHVlPSI2Ij42PC9vcHRpb24+CiAgPG9wdGlv
biB2YWx1ZT0iNyI+Nzwvb3B0aW9uPiAgCjwvc2VsZWN0Pgo8L3RkPgo8dGQ+CjxkaXYgY2xhc3M9
ImltYWdlYnV0dG9uIiBpZD0iYm9sZCI+PGltZyBjbGFzcz0iaW1hZ2UiIHNyYz0iYm9sZC5naWYi
IGFsdD0iQm9sZCIgdGl0bGU9IkJvbGQiPjwvZGl2Pgo8L3RkPgo8dGQ+CjxkaXYgY2xhc3M9Imlt
YWdlYnV0dG9uIiBpZD0iaXRhbGljIj48aW1nIGNsYXNzPSJpbWFnZSIgc3JjPSJpdGFsaWMuZ2lm
IiBhbHQ9Ikl0YWxpYyIgdGl0bGU9Ikl0YWxpYyI+PC9kaXY+CjwvdGQ+Cjx0ZD4KPGRpdiBjbGFz
cz0iaW1hZ2VidXR0b24iIGlkPSJ1bmRlcmxpbmUiPjxpbWcgY2xhc3M9ImltYWdlIiBzcmM9InVu
ZGVybGluZS5naWYiIGFsdD0iVW5kZXJsaW5lIiB0aXRsZT0iVW5kZXJsaW5lIj48L2Rpdj4KPC90
ZD4KPHRkPgo8L3RkPgo8dGQ+CjxkaXYgc3R5bGU9ImxlZnQ6IDEwOyIgY2xhc3M9ImltYWdlYnV0
dG9uIiBpZD0iZm9yZWNvbG9yIj48aW1nIGNsYXNzPSJpbWFnZSIgc3JjPSJmb3JlY29sb3IuZ2lm
IiBhbHQ9IlRleHQgQ29sb3IiIHRpdGxlPSJUZXh0IENvbG9yIj48L2Rpdj4KPC90ZD4KPHRkPgo8
ZGl2IHN0eWxlPSJsZWZ0OiA0MDsiIGNsYXNzPSJpbWFnZWJ1dHRvbiIgaWQ9ImhpbGl0ZWNvbG9y
Ij48aW1nIGNsYXNzPSJpbWFnZSIgc3JjPSJiYWNrY29sb3IuZ2lmIiBhbHQ9IkJhY2tncm91bmQg
Q29sb3IiIHRpdGxlPSJCYWNrZ3JvdW5kIENvbG9yIj48L2Rpdj4KPC90ZD4KPHRkPgo8L3RkPgo8
dGQ+CjxkaXYgc3R5bGU9ImxlZnQ6IDEwOyIgY2xhc3M9ImltYWdlYnV0dG9uIiBpZD0ianVzdGlm
eWxlZnQiPjxpbWcgY2xhc3M9ImltYWdlIiBzcmM9Imp1c3RpZnlsZWZ0LmdpZiIgYWx0PSJBbGln
biBMZWZ0IiB0aXRsZT0iQWxpZ24gTGVmdCI+PC9kaXY+CjwvdGQ+Cjx0ZD4KPGRpdiBzdHlsZT0i
bGVmdDogNDA7IiBjbGFzcz0iaW1hZ2VidXR0b24iIGlkPSJqdXN0aWZ5Y2VudGVyIj48aW1nIGNs
YXNzPSJpbWFnZSIgc3JjPSJqdXN0aWZ5Y2VudGVyLmdpZiIgYWx0PSJDZW50ZXIiIHRpdGxlPSJD
ZW50ZXIiPjwvZGl2Pgo8L3RkPgo8dGQ+CjxkaXYgc3R5bGU9ImxlZnQ6IDcwOyIgY2xhc3M9Imlt
YWdlYnV0dG9uIiBpZD0ianVzdGlmeXJpZ2h0Ij48aW1nIGNsYXNzPSJpbWFnZSIgc3JjPSJqdXN0
aWZ5cmlnaHQuZ2lmIiBhbHQ9IkFsaWduIFJpZ2h0IiB0aXRsZT0iQWxpZ24gUmlnaHQiPjwvZGl2
Pgo8L3RkPgo8dGQ+CjwvdGQ+Cjx0ZD4KPGRpdiBzdHlsZT0ibGVmdDogMTA7IiBjbGFzcz0iaW1h
Z2VidXR0b24iIGlkPSJpbnNlcnRvcmRlcmVkbGlzdCI+PGltZyBjbGFzcz0iaW1hZ2UiIHNyYz0i
b3JkZXJlZGxpc3QuZ2lmIiBhbHQ9Ik9yZGVyZWQgTGlzdCIgdGl0bGU9Ik9yZGVyZWQgTGlzdCI+
PC9kaXY+CjwvdGQ+Cjx0ZD4KPGRpdiBzdHlsZT0ibGVmdDogNDA7IiBjbGFzcz0iaW1hZ2VidXR0
b24iIGlkPSJpbnNlcnR1bm9yZGVyZWRsaXN0Ij48aW1nIGNsYXNzPSJpbWFnZSIgc3JjPSJ1bm9y
ZGVyZWRsaXN0LmdpZiIgYWx0PSJVbm9yZGVyZWQgTGlzdCIgdGl0bGU9IlVub3JkZXJlZCBMaXN0
Ij48L2Rpdj4KPC90ZD4KPHRkPgo8L3RkPgo8dGQ+CjxkaXYgc3R5bGU9ImxlZnQ6IDEwOyIgY2xh
c3M9ImltYWdlYnV0dG9uIiBpZD0ib3V0ZGVudCI+PGltZyBjbGFzcz0iaW1hZ2UiIHNyYz0ib3V0
ZGVudC5naWYiIGFsdD0iT3V0ZGVudCIgdGl0bGU9Ik91dGRlbnQiPjwvZGl2Pgo8L3RkPgo8dGQ+
CjxkaXYgc3R5bGU9ImxlZnQ6IDQwOyIgY2xhc3M9ImltYWdlYnV0dG9uIiBpZD0iaW5kZW50Ij48
aW1nIGNsYXNzPSJpbWFnZSIgc3JjPSJpbmRlbnQuZ2lmIiBhbHQ9IkluZGVudCIgdGl0bGU9Iklu
ZGVudCI+PC9kaXY+CjwvdGQ+CjwvdHI+CjwvdGFibGU+Cjxicj4KPGlmcmFtZSBpZD0iZWRpdCIg
d2lkdGg9IjEwMCUiIGhlaWdodD0iMjAwcHgiPjwvaWZyYW1lPgo8aWZyYW1lIHdpZHRoPSIyNTAi
IGhlaWdodD0iMTcwIiBpZD0iY29sb3JwYWxldHRlIiBzcmM9ImNvbG9ycy5odG1sIiBzdHlsZT0i
dmlzaWJpbGl0eTpoaWRkZW47IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjwvaWZyYW1lPgoKPHNjcmlw
dD4KZnVuY3Rpb24gdmlld3NvdXJjZShzb3VyY2UpCnsKICB2YXIgaHRtbDsKICBpZiAoc291cmNl
KSB7CiAgICBodG1sID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2VkaXQnKS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MKTsKICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0JykuY29udGVudFdpbmRvdy5kb2N1bWVudC5i
b2R5LmlubmVySFRNTCA9ICIiOwogICAgaHRtbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
ZGl0JykuY29udGVudFdpbmRvdy5kb2N1bWVudC5pbXBvcnROb2RlKGh0bWwsZmFsc2UpOwoJZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXQnKS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoaHRtbCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9vbGJhcjEi
KS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRvb2xiYXIyIikuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjsgIAogIH0gZWxzZSB7CiAgICBo
dG1sID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXQnKS5jb250ZW50V2luZG93LmRvY3Vt
ZW50LmJvZHkub3duZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgaHRtbC5zZWxlY3ROb2Rl
Q29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXQnKS5jb250ZW50V2luZG93LmRv
Y3VtZW50LmJvZHkpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXQnKS5jb250ZW50
V2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gaHRtbC50b1N0cmluZygpOwogICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvb2xiYXIxIikuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJs
ZSI7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9vbGJhcjIiKS5zdHlsZS52aXNpYmls
aXR5PSJ2aXNpYmxlIjsgIAogIH0KfQoKZnVuY3Rpb24gdXNlY3NzKHNvdXJjZSkKewogIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0JykuY29udGVudFdpbmRvdy5kb2N1bWVudC5leGVjQ29t
bWFuZCgic3R5bGVXaXRoQ1NTIiwgZmFsc2UsIHNvdXJjZSk7ICAKfQoKZnVuY3Rpb24gcmVhZG9u
bHkoc291cmNlKQp7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdCcpLmNvbnRlbnRX
aW5kb3cuZG9jdW1lbnQuZXhlY0NvbW1hbmQoInJlYWRvbmx5IiwgZmFsc2UsICEoc291cmNlKSk7
ICAKfQo8L3NjcmlwdD4KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBvbmNsaWNrPSJ2aWV3c291cmNl
KHRoaXMuY2hlY2tlZCkiPgpWaWV3IEhUTUwgU291cmNlPC9pbnB1dD4KPGlucHV0IGNoZWNrZWQg
dHlwZT0iY2hlY2tib3giIG9uY2xpY2s9InVzZWNzcyh0aGlzLmNoZWNrZWQpIj4KVXNlIENTUzwv
aW5wdXQ+CjxpbnB1dCB0eXBlPSJjaGVja2JveCIgb25jbGljaz0icmVhZG9ubHkodGhpcy5jaGVj
a2VkKSI+ClJlYWQgb25seTwvaW5wdXQ+Cgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105881</attachid>
            <date>2011-08-31 19:00:15 -0700</date>
            <delta_ts>2011-09-01 00:49:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36683-20110831190013.patch</filename>
            <type>text/plain</type>
            <size>2758</size>
            <attacher name="Kiyoto Tamura">owenestea</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MjYzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMzEgIEtpeW90byBU
YW11cmEgIDxvd2VuZXN0ZWFAZ21haWwuY29tPgorCisgICAgICAgIEZvciBjb21wYXRpYmlsaXR5
LCBleGVjQ29tbWFuZCBzaG91bGQgc3VwcG9ydCBkZXByZWNhdGVkICd1c2VDU1MnIGFsaWFzIGZv
ciAnc3R5bGVXaXRoQ1NTJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzY2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlVXNlQ1NTKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUNvbW1hbmRNYXApOgorCiAyMDExLTA4LTMxICBDaHJpcyBSb2dlcnMg
IDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkIGRlZmVuc2l2ZSBib3VuZHMgY2hl
Y2tpbmcgZm9yIEF1ZGlvTm9kZSBtZXRob2RzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAJKHJldmlzaW9uIDk0MDg2KQorKysgU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyNCw2ICsxMDI0LDE1
IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVTdHlsZVdpdGhDU1MoRnJhbWUqIGYKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgZXhlY3V0ZVVzZUNTUyhGcmFtZSogZnJhbWUsIEV2ZW50
KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAo
dmFsdWUgIT0gImZhbHNlIiAmJiB2YWx1ZSAhPSAidHJ1ZSIpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICBmcmFtZS0+ZWRpdG9yKCktPnNldFNob3VsZFN0eWxlV2l0aENTUyh2YWx1
ZSA9PSAiZmFsc2UiID8gdHJ1ZSA6IGZhbHNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3Rh
dGljIGJvb2wgZXhlY3V0ZVN1YnNjcmlwdChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29t
bWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIGV4ZWN1dGVU
b2dnbGVTdHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uU3Vic2NyaXB0LCBDU1NQcm9wZXJ0
eVZlcnRpY2FsQWxpZ24sICJiYXNlbGluZSIsICJzdWIiKTsKQEAgLTE1MjIsNiArMTUzMSw3IEBA
IHN0YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWEKICAgICAgICAgeyAiU2V0
TWFyayIsIHsgZXhlY3V0ZVNldE1hcmssIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBl
bmFibGVkVmlzaWJsZVNlbGVjdGlvbiwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNl
cnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJT
dHJpa2V0aHJvdWdoIiwgeyBleGVjdXRlU3RyaWtldGhyb3VnaCwgc3VwcG9ydGVkLCBlbmFibGVk
SW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlU3RyaWtldGhyb3VnaCwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAg
ICAgeyAiU3R5bGVXaXRoQ1NTIiwgeyBleGVjdXRlU3R5bGVXaXRoQ1NTLCBzdXBwb3J0ZWQsIGVu
YWJsZWQsIHN0YXRlU3R5bGVXaXRoQ1NTLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRv
Tm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAorICAgICAgICB7ICJVc2VDU1MiLCB7
IGV4ZWN1dGVVc2VDU1MsIHN1cHBvcnRlZCwgZW5hYmxlZCwgc3RhdGVTdHlsZVdpdGhDU1MsIHZh
bHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxl
ZCB9IH0sCiAgICAgICAgIHsgIlN1YnNjcmlwdCIsIHsgZXhlY3V0ZVN1YnNjcmlwdCwgc3VwcG9y
dGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlU3Vic2NyaXB0LCB2YWx1ZU51
bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9
LAogICAgICAgICB7ICJTdXBlcnNjcmlwdCIsIHsgZXhlY3V0ZVN1cGVyc2NyaXB0LCBzdXBwb3J0
ZWQsIGVuYWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dCwgc3RhdGVTdXBlcnNjcmlwdCwgdmFsdWVO
dWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0g
fSwKICAgICAgICAgeyAiU3dhcFdpdGhNYXJrIiwgeyBleGVjdXRlU3dhcFdpdGhNYXJrLCBzdXBw
b3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZFZpc2libGVTZWxlY3Rpb25BbmRNYXJr
LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1
dGlvbldoZW5EaXNhYmxlZCB9IH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105916</attachid>
            <date>2011-09-01 00:50:01 -0700</date>
            <delta_ts>2011-09-10 22:52:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36683-20110901005000.patch</filename>
            <type>text/plain</type>
            <size>3116</size>
            <attacher name="Kiyoto Tamura">owenestea</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0Mjc5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMDEgIEtpeW90byBU
YW11cmEgIDxvd2VuZXN0ZWFAZ21haWwuY29tPgorCisgICAgICAgIEZvciBjb21wYXRpYmlsaXR5
LCBleGVjQ29tbWFuZCBzaG91bGQgc3VwcG9ydCBkZXByZWNhdGVkICd1c2VDU1MnIGFsaWFzIGZv
ciAnc3R5bGVXaXRoQ1NTJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzY2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlU3R5bGVXaXRoQ1NTKToKKyAg
ICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVVc2VDU1MpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
Q29tbWFuZE1hcCk6CisKIDIwMTEtMDktMDEgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmVuYW1lIGNvbG9yU2VsZWN0ZWQgdG8gZGlkQ2hvb3NlQ29sb3IK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkocmV2aXNpb24g
OTQwODYpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDE3LDEwICsxMDE3LDIxIEBAIHN0YXRpYyBib29sIGV4ZWN1dGVTdHJp
a2V0aHJvdWdoKEZyYW1lKiAKIAogc3RhdGljIGJvb2wgZXhlY3V0ZVN0eWxlV2l0aENTUyhGcmFt
ZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIHsKLSAgICBpZiAodmFsdWUgIT0gImZhbHNlIiAmJiB2YWx1ZSAhPSAidHJ1ZSIpCisgICAg
Y29uc3QgU3RyaW5nIGxvd2VyY2FzZWRWYWx1ZSA9IHZhbHVlLmxvd2VyKCk7CisgICAgaWYgKGxv
d2VyY2FzZWRWYWx1ZSAhPSAiZmFsc2UiICYmIGxvd2VyY2FzZWRWYWx1ZSAhPSAidHJ1ZSIpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBmcmFtZS0+ZWRpdG9yKCktPnNldFNob3Vs
ZFN0eWxlV2l0aENTUyh2YWx1ZSA9PSAidHJ1ZSIgPyB0cnVlIDogZmFsc2UpOworICAgIGZyYW1l
LT5lZGl0b3IoKS0+c2V0U2hvdWxkU3R5bGVXaXRoQ1NTKGxvd2VyY2FzZWRWYWx1ZSA9PSAidHJ1
ZSIgPyB0cnVlIDogZmFsc2UpOworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBl
eGVjdXRlVXNlQ1NTKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBj
b25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGNvbnN0IFN0cmluZyBsb3dlcmNhc2VkVmFsdWUg
PSB2YWx1ZS5sb3dlcigpOworICAgIGlmIChsb3dlcmNhc2VkVmFsdWUgIT0gImZhbHNlIiAmJiBs
b3dlcmNhc2VkVmFsdWUgIT0gInRydWUiKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisg
ICAgZnJhbWUtPmVkaXRvcigpLT5zZXRTaG91bGRTdHlsZVdpdGhDU1MobG93ZXJjYXNlZFZhbHVl
ID09ICJmYWxzZSIgPyB0cnVlIDogZmFsc2UpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0x
NTIyLDYgKzE1MzMsNyBAQCBzdGF0aWMgY29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFuZE1h
CiAgICAgICAgIHsgIlNldE1hcmsiLCB7IGV4ZWN1dGVTZXRNYXJrLCBzdXBwb3J0ZWRGcm9tTWVu
dU9yS2V5QmluZGluZywgZW5hYmxlZFZpc2libGVTZWxlY3Rpb24sIHN0YXRlTm9uZSwgdmFsdWVO
dWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0g
fSwKICAgICAgICAgeyAiU3RyaWtldGhyb3VnaCIsIHsgZXhlY3V0ZVN0cmlrZXRocm91Z2gsIHN1
cHBvcnRlZCwgZW5hYmxlZEluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0ZVN0cmlrZXRocm91Z2gs
IHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNh
YmxlZCB9IH0sCiAgICAgICAgIHsgIlN0eWxlV2l0aENTUyIsIHsgZXhlY3V0ZVN0eWxlV2l0aENT
Uywgc3VwcG9ydGVkLCBlbmFibGVkLCBzdGF0ZVN0eWxlV2l0aENTUywgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKKyAgICAg
ICAgeyAiVXNlQ1NTIiwgeyBleGVjdXRlVXNlQ1NTLCBzdXBwb3J0ZWQsIGVuYWJsZWQsIHN0YXRl
U3R5bGVXaXRoQ1NTLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVj
dXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJTdWJzY3JpcHQiLCB7IGV4ZWN1dGVT
dWJzY3JpcHQsIHN1cHBvcnRlZCwgZW5hYmxlZEluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0ZVN1
YnNjcmlwdCwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9u
V2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAiU3VwZXJzY3JpcHQiLCB7IGV4ZWN1dGVTdXBl
cnNjcmlwdCwgc3VwcG9ydGVkLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlU3Vw
ZXJzY3JpcHQsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlv
bldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlN3YXBXaXRoTWFyayIsIHsgZXhlY3V0ZVN3
YXBXaXRoTWFyaywgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRWaXNpYmxl
U2VsZWN0aW9uQW5kTWFyaywgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24s
IGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107001</attachid>
            <date>2011-09-10 22:52:50 -0700</date>
            <delta_ts>2011-09-11 20:52:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36683-20110910225249.patch</filename>
            <type>text/plain</type>
            <size>10370</size>
            <attacher name="Kiyoto Tamura">owenestea</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0OTE5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMTAgIEtpeW90byBU
YW11cmEgIDxvd2VuZXN0ZWFAZ21haWwuY29tPgorCisgICAgICAgIEZvciBjb21wYXRpYmlsaXR5
LCBleGVjQ29tbWFuZCBzaG91bGQgc3VwcG9ydCBkZXByZWNhdGVkICd1c2VDU1MnIGFsaWFzIGZv
ciAnc3R5bGVXaXRoQ1NTJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzY2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpl
eGVjdXRlU3R5bGVXaXRoQ1NTKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVVc2VDU1MpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ29tbWFuZE1hcCk6CisKIDIwMTEtMDktMTAgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgaXNJbnRlcnJ1cHRlZEV4ZWN1
dGlvbkV4Y2VwdGlvbiBhbmQgaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uIHByZWRpY2F0
ZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkocmV2aXNp
b24gOTQ5MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDE3LDEwICsxMDE3LDEzIEBAIHN0YXRpYyBib29sIGV4ZWN1dGVT
dHJpa2V0aHJvdWdoKEZyYW1lKiAKIAogc3RhdGljIGJvb2wgZXhlY3V0ZVN0eWxlV2l0aENTUyhG
cmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIHsKLSAgICBpZiAodmFsdWUgIT0gImZhbHNlIiAmJiB2YWx1ZSAhPSAidHJ1ZSIpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBmcmFtZS0+ZWRpdG9yKCktPnNldFNob3Vs
ZFN0eWxlV2l0aENTUyh2YWx1ZSA9PSAidHJ1ZSIgPyB0cnVlIDogZmFsc2UpOworICAgIGZyYW1l
LT5lZGl0b3IoKS0+c2V0U2hvdWxkU3R5bGVXaXRoQ1NTKCFlcXVhbElnbm9yaW5nQ2FzZSh2YWx1
ZSwgImZhbHNlIikpOworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBleGVjdXRl
VXNlQ1NTKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBT
dHJpbmcmIHZhbHVlKQoreworICAgIGZyYW1lLT5lZGl0b3IoKS0+c2V0U2hvdWxkU3R5bGVXaXRo
Q1NTKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAiZmFsc2UiKSk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTE1MzQsNiArMTUzNyw3IEBAIHN0YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVh
dGVDb21tYW5kTWEKICAgICAgICAgeyAiVW5saW5rIiwgeyBleGVjdXRlVW5saW5rLCBzdXBwb3J0
ZWQsIGVuYWJsZWRSYW5nZUluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVs
bCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0s
CiAgICAgICAgIHsgIlVuc2NyaXB0IiwgeyBleGVjdXRlVW5zY3JpcHQsIHN1cHBvcnRlZEZyb21N
ZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwg
dmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2Fi
bGVkIH0gfSwKICAgICAgICAgeyAiVW5zZWxlY3QiLCB7IGV4ZWN1dGVVbnNlbGVjdCwgc3VwcG9y
dGVkLCBlbmFibGVkVmlzaWJsZVNlbGVjdGlvbiwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRl
eHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAorICAgICAg
ICB7ICJVc2VDU1MiLCB7IGV4ZWN1dGVVc2VDU1MsIHN1cHBvcnRlZCwgZW5hYmxlZCwgc3RhdGVT
dHlsZVdpdGhDU1MsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1
dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIllhbmsiLCB7IGV4ZWN1dGVZYW5rLCBz
dXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFibGVUZXh0LCBzdGF0
ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldo
ZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIllhbmtBbmRTZWxlY3QiLCB7IGV4ZWN1dGVZYW5r
QW5kU2VsZWN0LCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFi
bGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxv
d0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0OTE5KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTEtMDktMTAgIEtpeW90byBUYW11cmEgIDxvd2VuZXN0ZWFAZ21haWwuY29tPgorCisgICAg
ICAgIEZvciBjb21wYXRpYmlsaXR5LCBleGVjQ29tbWFuZCBzaG91bGQgc3VwcG9ydCBkZXByZWNh
dGVkICd1c2VDU1MnIGFsaWFzIGZvciAnc3R5bGVXaXRoQ1NTJworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY2ODMKKyAgICAgICAgCisgICAgICAgIEFk
ZGluZyB1c2VDU1Mgc3VwcG9ydCBmb3IgZXhlY0NvbW1hbmQgYW5kIGNoYW5naW5nIHRoZSBiZWhh
dmlvciBvZiBzdHlsZVdpdGhDU1MgaW4gYWNjb3JkYW5jZQorICAgICAgICB0byBodHRwOi8vYXJ5
ZWgubmFtZS9zcGVjL2VkaXRpbmcvZWRpdGluZy5odG1sI3RoZS1zdHlsZXdpdGhjc3MtY29tbWFu
ZAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZWRp
dGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvdG9nZ2xlLXRleHQtZGVjb3JhdGlvbnMuanM6
CisgICAgICAgICh0ZXN0U2luZ2xlVG9nZ2xlKToKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21t
YW5kL3RvZ2dsZS10ZXh0LWRlY29yYXRpb25zLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0wOS0xMCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBTa2lwIGZhc3QvaW1h
Z2VzL3N1cHBvcnQtYnJva2VuLWltYWdlLWRlbGVnYXRlLmh0bWwgdGVtcG9yYXJpbHkgb24gTWFj
LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtdGV4dC1kZWNv
cmF0aW9ucy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC90b2dnbGUtdGV4dC1kZWNvcmF0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDk0OTE2KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtdGV4dC1k
ZWNvcmF0aW9ucy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSwyMCBAQCBQ
QVNTIG9uZSB1bmRlcmxpbmUgY29tbWFuZCBjb252ZXJ0ZWQgPHNwCiBQQVNTIG9uZSBzdHJpa2V0
aHJvdWdoIGNvbW1hbmQgY29udmVydGVkIHRlc3QgdG8gPHNwYW4gc3R5bGU9InRleHQtZGVjb3Jh
dGlvbjogbGluZS10aHJvdWdoOyI+dGVzdDwvc3Bhbj4KIFBBU1Mgb25lIHN0cmlrZXRocm91Z2gg
Y29tbWFuZCBjb252ZXJ0ZWQgPHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjogbGluZS10aHJv
dWdoOyI+dGVzdDwvc3Bhbj4gdG8gdGVzdAogUEFTUyBvbmUgc3RyaWtldGhyb3VnaCBjb21tYW5k
IGNvbnZlcnRlZCA8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgbGluZS10
aHJvdWdoIG92ZXJsaW5lOyI+dGVzdDwvc3Bhbj4gdG8gPHNwYW4gc3R5bGU9InRleHQtZGVjb3Jh
dGlvbjogdW5kZXJsaW5lIG92ZXJsaW5lOyI+dGVzdDwvc3Bhbj4KK1BBU1Mgb25lIHVuZGVybGlu
ZSBjb21tYW5kIGNvbnZlcnRlZCB0ZXN0IHRvIDxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246
IHVuZGVybGluZTsiPnRlc3Q8L3NwYW4+CitQQVNTIG9uZSB1bmRlcmxpbmUgY29tbWFuZCBjb252
ZXJ0ZWQgdGVzdCB0byA8dT50ZXN0PC91PgorUEFTUyBvbmUgdW5kZXJsaW5lIGNvbW1hbmQgY29u
dmVydGVkIHRlc3QgdG8gPHU+dGVzdDwvdT4KK1BBU1Mgb25lIHVuZGVybGluZSBjb21tYW5kIGNv
bnZlcnRlZCB0ZXN0IHRvIDx1PnRlc3Q8L3U+CitQQVNTIG9uZSB1bmRlcmxpbmUgY29tbWFuZCBj
b252ZXJ0ZWQgdGVzdCB0byA8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7
Ij50ZXN0PC9zcGFuPgorUEFTUyBvbmUgdW5kZXJsaW5lIGNvbW1hbmQgY29udmVydGVkIDxzcGFu
IHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPnRlc3Q8L3NwYW4+IHRvIHRlc3QK
K1BBU1Mgb25lIHVuZGVybGluZSBjb21tYW5kIGNvbnZlcnRlZCA8c3BhbiBzdHlsZT0idGV4dC1k
ZWNvcmF0aW9uOiB1bmRlcmxpbmUgbGluZS10aHJvdWdoIG92ZXJsaW5lOyI+dGVzdDwvc3Bhbj4g
dG8gPHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjogb3ZlcmxpbmUgbGluZS10aHJvdWdoOyI+
dGVzdDwvc3Bhbj4KK1BBU1Mgb25lIHN0cmlrZXRocm91Z2ggY29tbWFuZCBjb252ZXJ0ZWQgdGVz
dCB0byA8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7Ij50ZXN0PC9z
cGFuPgorUEFTUyBvbmUgc3RyaWtldGhyb3VnaCBjb21tYW5kIGNvbnZlcnRlZCA8c3BhbiBzdHls
ZT0idGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7Ij50ZXN0PC9zcGFuPiB0byB0ZXN0CitQ
QVNTIG9uZSBzdHJpa2V0aHJvdWdoIGNvbW1hbmQgY29udmVydGVkIDxzcGFuIHN0eWxlPSJ0ZXh0
LWRlY29yYXRpb246IHVuZGVybGluZSBsaW5lLXRocm91Z2ggb3ZlcmxpbmU7Ij50ZXN0PC9zcGFu
PiB0byA8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgb3ZlcmxpbmU7Ij50
ZXN0PC9zcGFuPgorUEFTUyBvbmUgdW5kZXJsaW5lIGNvbW1hbmQgY29udmVydGVkIHRlc3QgdG8g
PHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyI+dGVzdDwvc3Bhbj4KK1BB
U1Mgb25lIHVuZGVybGluZSBjb21tYW5kIGNvbnZlcnRlZCB0ZXN0IHRvIDxzcGFuIHN0eWxlPSJ0
ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPnRlc3Q8L3NwYW4+CitQQVNTIG9uZSB1bmRlcmxp
bmUgY29tbWFuZCBjb252ZXJ0ZWQgdGVzdCB0byA8dT50ZXN0PC91PgorUEFTUyBvbmUgdW5kZXJs
aW5lIGNvbW1hbmQgY29udmVydGVkIHRlc3QgdG8gPHU+dGVzdDwvdT4KIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvdG9nZ2xlLXRleHQtZGVjb3JhdGlvbnMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVz
dHMvdG9nZ2xlLXRleHQtZGVjb3JhdGlvbnMuanMJKHJldmlzaW9uIDk0OTE2KQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvdG9nZ2xlLXRleHQtZGVjb3Jh
dGlvbnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTQsMTEgKzQsMTEgQEAgdmFyIHRlc3RDb250YWlu
ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZQogdGVzdENvbnRhaW5lci5jb250ZW50RWRpdGFibGUg
PSB0cnVlOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0Q29udGFpbmVyKTsKIAotZnVu
Y3Rpb24gdGVzdFNpbmdsZVRvZ2dsZSh0b2dnbGVDb21tYW5kLCBpbml0aWFsQ29udGVudHMsIGV4
cGVjdGVkQ29udGVudHMpCitmdW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xlKHRvZ2dsZUNvbW1hbmQs
IHN0eWxlQ29tbWFuZCwgc3R5bGVDb21tYW5kQXJnLCBpbml0aWFsQ29udGVudHMsIGV4cGVjdGVk
Q29udGVudHMpCiB7CiAgICAgdGVzdENvbnRhaW5lci5pbm5lckhUTUwgPSBpbml0aWFsQ29udGVu
dHM7CiAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKHRlc3RDb250
YWluZXIpOwotICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJzdHlsZVdpdGhDU1MiLCBmYWxzZSwg
dHJ1ZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoc3R5bGVDb21tYW5kLCBmYWxzZSwgc3R5
bGVDb21tYW5kQXJnKTsKICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCh0b2dnbGVDb21tYW5kLCBm
YWxzZSwgbnVsbCk7CiAgICAgaWYgKHRlc3RDb250YWluZXIuaW5uZXJIVE1MID09PSBleHBlY3Rl
ZENvbnRlbnRzKSB7CiAgICAgICAgIHRlc3RQYXNzZWQoIm9uZSAiICsgdG9nZ2xlQ29tbWFuZCAr
ICIgY29tbWFuZCBjb252ZXJ0ZWQgIiArIGluaXRpYWxDb250ZW50cyArICIgdG8gIiArIGV4cGVj
dGVkQ29udGVudHMpOwpAQCAtMTcsMTIgKzE3LDMxIEBAIGZ1bmN0aW9uIHRlc3RTaW5nbGVUb2dn
bGUodG9nZ2xlQ29tbWFuZCwKICAgICB9CiB9CiAKLXRlc3RTaW5nbGVUb2dnbGUoInVuZGVybGlu
ZSIsICJ0ZXN0IiwgIjxzcGFuIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XCI+
dGVzdDwvc3Bhbj4iKTsKLXRlc3RTaW5nbGVUb2dnbGUoInVuZGVybGluZSIsICI8c3BhbiBzdHls
ZT1cInRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1wiPnRlc3Q8L3NwYW4+IiwgInRlc3QiKTsK
LXRlc3RTaW5nbGVUb2dnbGUoInVuZGVybGluZSIsICI8c3BhbiBzdHlsZT1cInRleHQtZGVjb3Jh
dGlvbjogdW5kZXJsaW5lIGxpbmUtdGhyb3VnaCBvdmVybGluZTtcIj50ZXN0PC9zcGFuPiIsICI8
c3BhbiBzdHlsZT1cInRleHQtZGVjb3JhdGlvbjogb3ZlcmxpbmUgbGluZS10aHJvdWdoO1wiPnRl
c3Q8L3NwYW4+Iik7Ci10ZXN0U2luZ2xlVG9nZ2xlKCJzdHJpa2V0aHJvdWdoIiwgInRlc3QiLCAi
PHNwYW4gc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcIj50ZXN0PC9zcGFu
PiIpOwotdGVzdFNpbmdsZVRvZ2dsZSgic3RyaWtldGhyb3VnaCIsICI8c3BhbiBzdHlsZT1cInRl
eHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1wiPnRlc3Q8L3NwYW4+IiwgInRlc3QiKTsKLXRl
c3RTaW5nbGVUb2dnbGUoInN0cmlrZXRocm91Z2giLCAiPHNwYW4gc3R5bGU9XCJ0ZXh0LWRlY29y
YXRpb246IHVuZGVybGluZSBsaW5lLXRocm91Z2ggb3ZlcmxpbmU7XCI+dGVzdDwvc3Bhbj4iLCAi
PHNwYW4gc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBvdmVybGluZTtcIj50ZXN0
PC9zcGFuPiIpOwordGVzdFNpbmdsZVRvZ2dsZSgidW5kZXJsaW5lIiwgInN0eWxlV2l0aENTUyIs
IHRydWUsICJ0ZXN0IiwgIjxzcGFuIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7
XCI+dGVzdDwvc3Bhbj4iKTsKK3Rlc3RTaW5nbGVUb2dnbGUoInVuZGVybGluZSIsICJzdHlsZVdp
dGhDU1MiLCB0cnVlLCAiPHNwYW4gc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtc
Ij50ZXN0PC9zcGFuPiIsICJ0ZXN0Iik7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJ1bmRlcmxpbmUiLCAi
c3R5bGVXaXRoQ1NTIiwgdHJ1ZSwgIjxzcGFuIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiB1bmRl
cmxpbmUgbGluZS10aHJvdWdoIG92ZXJsaW5lO1wiPnRlc3Q8L3NwYW4+IiwgIjxzcGFuIHN0eWxl
PVwidGV4dC1kZWNvcmF0aW9uOiBvdmVybGluZSBsaW5lLXRocm91Z2g7XCI+dGVzdDwvc3Bhbj4i
KTsKK3Rlc3RTaW5nbGVUb2dnbGUoInN0cmlrZXRocm91Z2giLCAic3R5bGVXaXRoQ1NTIiwgdHJ1
ZSwgInRlc3QiLCAiPHNwYW4gc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtc
Ij50ZXN0PC9zcGFuPiIpOwordGVzdFNpbmdsZVRvZ2dsZSgic3RyaWtldGhyb3VnaCIsICJzdHls
ZVdpdGhDU1MiLCB0cnVlLCAiPHNwYW4gc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhy
b3VnaDtcIj50ZXN0PC9zcGFuPiIsICJ0ZXN0Iik7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJzdHJpa2V0
aHJvdWdoIiwgInN0eWxlV2l0aENTUyIsIHRydWUsICI8c3BhbiBzdHlsZT1cInRleHQtZGVjb3Jh
dGlvbjogdW5kZXJsaW5lIGxpbmUtdGhyb3VnaCBvdmVybGluZTtcIj50ZXN0PC9zcGFuPiIsICI8
c3BhbiBzdHlsZT1cInRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIG92ZXJsaW5lO1wiPnRlc3Q8
L3NwYW4+Iik7CisKK3Rlc3RTaW5nbGVUb2dnbGUoInVuZGVybGluZSIsICJzdHlsZVdpdGhDU1Mi
LCAibm9uLWZhbHNlIHN0cmluZyIsICJ0ZXN0IiwgIjxzcGFuIHN0eWxlPVwidGV4dC1kZWNvcmF0
aW9uOiB1bmRlcmxpbmU7XCI+dGVzdDwvc3Bhbj4iKTsKKwordGVzdFNpbmdsZVRvZ2dsZSgidW5k
ZXJsaW5lIiwgInN0eWxlV2l0aENTUyIsIGZhbHNlLCAidGVzdCIsICI8dT50ZXN0PC91PiIpOwor
dGVzdFNpbmdsZVRvZ2dsZSgidW5kZXJsaW5lIiwgInN0eWxlV2l0aENTUyIsICJmYWxzZSIsICJ0
ZXN0IiwgIjx1PnRlc3Q8L3U+Iik7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJ1bmRlcmxpbmUiLCAic3R5
bGVXaXRoQ1NTIiwgIkZBTFNFIiwgInRlc3QiLCAiPHU+dGVzdDwvdT4iKTsKKwordGVzdFNpbmds
ZVRvZ2dsZSgidW5kZXJsaW5lIiwgInVzZUNTUyIsIGZhbHNlLCAidGVzdCIsICI8c3BhbiBzdHls
ZT1cInRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1wiPnRlc3Q8L3NwYW4+Iik7Cit0ZXN0U2lu
Z2xlVG9nZ2xlKCJ1bmRlcmxpbmUiLCAidXNlQ1NTIiwgZmFsc2UsICI8c3BhbiBzdHlsZT1cInRl
eHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1wiPnRlc3Q8L3NwYW4+IiwgInRlc3QiKTsKK3Rlc3RT
aW5nbGVUb2dnbGUoInVuZGVybGluZSIsICJ1c2VDU1MiLCBmYWxzZSwgIjxzcGFuIHN0eWxlPVwi
dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgbGluZS10aHJvdWdoIG92ZXJsaW5lO1wiPnRlc3Q8
L3NwYW4+IiwgIjxzcGFuIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiBvdmVybGluZSBsaW5lLXRo
cm91Z2g7XCI+dGVzdDwvc3Bhbj4iKTsKK3Rlc3RTaW5nbGVUb2dnbGUoInN0cmlrZXRocm91Z2gi
LCAidXNlQ1NTIiwgZmFsc2UsICJ0ZXN0IiwgIjxzcGFuIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9u
OiBsaW5lLXRocm91Z2g7XCI+dGVzdDwvc3Bhbj4iKTsKK3Rlc3RTaW5nbGVUb2dnbGUoInN0cmlr
ZXRocm91Z2giLCAidXNlQ1NTIiwgZmFsc2UsICI8c3BhbiBzdHlsZT1cInRleHQtZGVjb3JhdGlv
bjogbGluZS10aHJvdWdoO1wiPnRlc3Q8L3NwYW4+IiwgInRlc3QiKTsKK3Rlc3RTaW5nbGVUb2dn
bGUoInN0cmlrZXRocm91Z2giLCAidXNlQ1NTIiwgZmFsc2UsICI8c3BhbiBzdHlsZT1cInRleHQt
ZGVjb3JhdGlvbjogdW5kZXJsaW5lIGxpbmUtdGhyb3VnaCBvdmVybGluZTtcIj50ZXN0PC9zcGFu
PiIsICI8c3BhbiBzdHlsZT1cInRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIG92ZXJsaW5lO1wi
PnRlc3Q8L3NwYW4+Iik7CisKK3Rlc3RTaW5nbGVUb2dnbGUoInVuZGVybGluZSIsICJ1c2VDU1Mi
LCAiZmFsc2UiLCAidGVzdCIsICI8c3BhbiBzdHlsZT1cInRleHQtZGVjb3JhdGlvbjogdW5kZXJs
aW5lO1wiPnRlc3Q8L3NwYW4+Iik7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJ1bmRlcmxpbmUiLCAidXNl
Q1NTIiwgIkZBTFNFIiwgInRlc3QiLCAiPHNwYW4gc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IHVu
ZGVybGluZTtcIj50ZXN0PC9zcGFuPiIpOworCit0ZXN0U2luZ2xlVG9nZ2xlKCJ1bmRlcmxpbmUi
LCAidXNlQ1NTIiwgIm5vdCBmYWxzZSIsICJ0ZXN0IiwgIjx1PnRlc3Q8L3U+Iik7Cit0ZXN0U2lu
Z2xlVG9nZ2xlKCJ1bmRlcmxpbmUiLCAidXNlQ1NTIiwgdHJ1ZSwgInRlc3QiLCAiPHU+dGVzdDwv
dT4iKTsKIAogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVyKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107017</attachid>
            <date>2011-09-11 20:53:04 -0700</date>
            <delta_ts>2011-09-12 19:40:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36683-20110911205303.patch</filename>
            <type>text/plain</type>
            <size>9825</size>
            <attacher name="Kiyoto Tamura">owenestea</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0OTQyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDktMTEgIEtpeW90byBU
YW11cmEgIDxvd2VuZXN0ZWFAZ21haWwuY29tPgorCisgICAgICAgIEZvciBjb21wYXRpYmlsaXR5
LCBleGVjQ29tbWFuZCBzaG91bGQgc3VwcG9ydCBkZXByZWNhdGVkICd1c2VDU1MnIGFsaWFzIGZv
ciAnc3R5bGVXaXRoQ1NTJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzY2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbiBhZGRpdGlvbiB0byBzdXBwb3J0aW5nICd1c2VDU1MnLCAnc3R5bGVXaXRoQ1NT
JyBub3cgYWNjZXB0cyBhbnkgYXJndW1lbnQgb3RoZXIgdGhhbgorICAgICAgICB0aGUgYm9vbGVh
biBmYWxzZSBvciB0aGUgY2FzZS1pbnNlbnNpdGl2ZSBzdHJpbmcgImZhbHNlIi4gVGhpcyBpcyBw
ZXIgaHR0cDovL2FyeWVoLm5hbWUvc3BlYy9lZGl0aW5nL2VkaXRpbmcuaHRtbCN0aGUtc3R5bGV3
aXRoY3NzLWNvbW1hbmQKKworICAgICAgICBUZXN0czogZWRpdGluZy9leGVjQ29tbWFuZC9zdHls
ZS13aXRoLWNzcy5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL2V4ZWNDb21tYW5kL3VzZS1j
c3MuaHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmV4ZWN1dGVTdHlsZVdpdGhDU1MpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0
ZVVzZUNTUyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDb21tYW5kTWFwKToKKwogMjAxMS0w
OS0xMSAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJFR1JFU1NJT04gKHI4NzM1MSk6IHRvZ2dsaW5nIGRpc3BsYXkgb2YgbG90cyAodGhvdXNhbmRz
KSBvZiBlbGVtZW50cyB3aXRoIGRpc3BsYXk6bm9uZSBpcyB2ZXJ5IHNsb3cKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkocmV2aXNpb24gOTQ5MTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDE3LDEwICsxMDE3LDEzIEBAIHN0YXRpYyBib29sIGV4ZWN1dGVTdHJpa2V0aHJvdWdoKEZy
YW1lKiAKIAogc3RhdGljIGJvb2wgZXhlY3V0ZVN0eWxlV2l0aENTUyhGcmFtZSogZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBp
ZiAodmFsdWUgIT0gImZhbHNlIiAmJiB2YWx1ZSAhPSAidHJ1ZSIpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICBmcmFtZS0+ZWRpdG9yKCktPnNldFNob3VsZFN0eWxlV2l0aENTUyh2
YWx1ZSA9PSAidHJ1ZSIgPyB0cnVlIDogZmFsc2UpOworICAgIGZyYW1lLT5lZGl0b3IoKS0+c2V0
U2hvdWxkU3R5bGVXaXRoQ1NTKCFlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZhbHNlIikpOwor
ICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBleGVjdXRlVXNlQ1NTKEZyYW1lKiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQor
eworICAgIGZyYW1lLT5lZGl0b3IoKS0+c2V0U2hvdWxkU3R5bGVXaXRoQ1NTKGVxdWFsSWdub3Jp
bmdDYXNlKHZhbHVlLCAiZmFsc2UiKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE1MzQs
NiArMTUzNyw3IEBAIHN0YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWEKICAg
ICAgICAgeyAiVW5saW5rIiwgeyBleGVjdXRlVW5saW5rLCBzdXBwb3J0ZWQsIGVuYWJsZWRSYW5n
ZUluUmljaGx5RWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2Vy
dGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlVu
c2NyaXB0IiwgeyBleGVjdXRlVW5zY3JpcHQsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5n
LCBlbmFibGVkSW5SaWNobHlFZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RU
ZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAg
ICAgeyAiVW5zZWxlY3QiLCB7IGV4ZWN1dGVVbnNlbGVjdCwgc3VwcG9ydGVkLCBlbmFibGVkVmlz
aWJsZVNlbGVjdGlvbiwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRv
Tm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAorICAgICAgICB7ICJVc2VDU1MiLCB7
IGV4ZWN1dGVVc2VDU1MsIHN1cHBvcnRlZCwgZW5hYmxlZCwgc3RhdGVTdHlsZVdpdGhDU1MsIHZh
bHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxl
ZCB9IH0sCiAgICAgICAgIHsgIllhbmsiLCB7IGV4ZWN1dGVZYW5rLCBzdXBwb3J0ZWRGcm9tTWVu
dU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVs
bCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0s
CiAgICAgICAgIHsgIllhbmtBbmRTZWxlY3QiLCB7IGV4ZWN1dGVZYW5rQW5kU2VsZWN0LCBzdXBw
b3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFibGVUZXh0LCBzdGF0ZU5v
bmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5E
aXNhYmxlZCB9IH0sCiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0OTQyKQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDktMTEgIEtp
eW90byBUYW11cmEgIDxvd2VuZXN0ZWFAZ21haWwuY29tPgorCisgICAgICAgIEZvciBjb21wYXRp
YmlsaXR5LCBleGVjQ29tbWFuZCBzaG91bGQgc3VwcG9ydCBkZXByZWNhdGVkICd1c2VDU1MnIGFs
aWFzIGZvciAnc3R5bGVXaXRoQ1NTJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzY2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0aW5nIHVzZUNTUywgdGhlIGNvbW1hbmQgcHJldmlvdXNseSB1bnN1
cHBvcnRlZCBieSBXZWJLaXQuIEFsc28sIHdlIGFyZSB0ZXN0aW5nCisgICAgICAgIHN0eWxlV2l0
aENTUyBhY2NlcHRzIGFueXRoaW5nIHRoYXQgaXMgbm90IHRoZSBib29sZWFuIGZhbHNlIG9yIHRo
ZSBzdHJpbmcgImZhbHNlIiBhcyB0cnVlLgorCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFu
ZC9zY3JpcHQtdGVzdHMvc3R5bGUtd2l0aC1jc3MuanM6IEFkZGVkLgorICAgICAgICAodGVzdFN0
eWxlV2l0aENTUyk6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMv
dXNlLWNzcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0VXNlQ1NTKToKKyAgICAgICAgKHRlc3RT
aW5nbGVUb2dnbGUpOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvc3R5bGUtd2l0aC1j
c3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3N0
eWxlLXdpdGgtY3NzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQv
dXNlLWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1h
bmQvdXNlLWNzcy5odG1sOiBBZGRlZC4KKwogMjAxMS0wOS0xMSAgQmVuIFdlbGxzICA8YmVud2Vs
bHNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlYmFzZWxpbmUgZm9yIGJ1ZyA2NTU4MyAocGF0
aCBiYXNlZCBib3JkZXIgcmFkaXVzIGRyYXdpbmcgb24gc2tpYSkgcGFydCAzCkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgtY3NzLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgt
Y3NzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvc3R5bGUtd2l0aC1jc3MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE0IEBACitUZXN0IHN0eWxlV2l0aENTUyBjb21tYW5kCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHN0eWxlV2l0aENTUyBjaGFuZ2VkIHRoZSBzdGF0ZSBzdWNjZXNz
ZnVsbHkKK1BBU1Mgc3R5bGVXaXRoQ1NTIGNoYW5nZWQgdGhlIHN0YXRlIHN1Y2Nlc3NmdWxseQor
UEFTUyBzdHlsZVdpdGhDU1MgY2hhbmdlZCB0aGUgc3RhdGUgc3VjY2Vzc2Z1bGx5CitQQVNTIHN0
eWxlV2l0aENTUyBjaGFuZ2VkIHRoZSBzdGF0ZSBzdWNjZXNzZnVsbHkKK1BBU1Mgc3R5bGVXaXRo
Q1NTIGNoYW5nZWQgdGhlIHN0YXRlIHN1Y2Nlc3NmdWxseQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvc3R5bGUtd2l0aC1jc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgtY3NzLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgtY3NzLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0eWxlLXdpdGgtY3NzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC91c2UtY3NzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3VzZS1jc3MtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91c2UtY3NzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorVGVzdCB1c2VDU1MgY29tbWFu
ZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB1c2VDU1MgY2hhbmdlZCB0
aGUgc3RhdGUgc3VjY2Vzc2Z1bGx5CitQQVNTIHVzZUNTUyBjaGFuZ2VkIHRoZSBzdGF0ZSBzdWNj
ZXNzZnVsbHkKK1BBU1MgdXNlQ1NTIGNoYW5nZWQgdGhlIHN0YXRlIHN1Y2Nlc3NmdWxseQorUEFT
UyB1c2VDU1MgY2hhbmdlZCB0aGUgc3RhdGUgc3VjY2Vzc2Z1bGx5CitQQVNTIHVzZUNTUyBjaGFu
Z2VkIHRoZSBzdGF0ZSBzdWNjZXNzZnVsbHkKK1BBU1Mgb25lIHVuZGVybGluZSBjb21tYW5kIGNv
bnZlcnRlZCB0ZXN0IHRvIDxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsi
PnRlc3Q8L3NwYW4+CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91c2UtY3NzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91c2UtY3Nz
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3Vz
ZS1jc3MuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdXNl
LWNzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL3N0eWxlLXdpdGgtY3NzLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRl
c3RzL3N0eWxlLXdpdGgtY3NzLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvc3R5bGUtd2l0aC1jc3MuanMJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjAgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IHN0eWxlV2l0aENTUyBjb21tYW5k
Jyk7CisKK2Z1bmN0aW9uIHRlc3RTdHlsZVdpdGhDU1Moc3R5bGVBcmcsIGV4cGVjdGVkU3RhdGUp
Cit7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3N0eWxlV2l0aENTUycsIGZhbHNlLCBzdHls
ZUFyZyk7IAorICAgIGlmIChkb2N1bWVudC5xdWVyeUNvbW1hbmRTdGF0ZSgnc3R5bGVXaXRoQ1NT
JykgPT09IGV4cGVjdGVkU3RhdGUpCisgICAgeworICAgICAgICB0ZXN0UGFzc2VkKCdzdHlsZVdp
dGhDU1MgY2hhbmdlZCB0aGUgc3RhdGUgc3VjY2Vzc2Z1bGx5Jyk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgdGVzdEZhaWxlZCgnc3R5bGVXaXRoQ1NTIGZhaWxlZCB3aXRoIHRoZSBhcmd1bWVudCAn
ICsgc3R5bGVBcmcpOworICAgIH0KK30KKwordGVzdFN0eWxlV2l0aENTUyh0cnVlLCB0cnVlKTsK
K3Rlc3RTdHlsZVdpdGhDU1MoJ2ZhbHNlJywgZmFsc2UpOwordGVzdFN0eWxlV2l0aENTUygnRkFM
U0UnLCBmYWxzZSk7Cit0ZXN0U3R5bGVXaXRoQ1NTKCdyYW5kb20gc3RyaW5nJywgdHJ1ZSk7Cit0
ZXN0U3R5bGVXaXRoQ1NTKG51bGwsIHRydWUpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3Rz
L3VzZS1jc3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9zY3JpcHQtdGVzdHMvdXNlLWNzcy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL3VzZS1jc3MuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDEgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IHVzZUNTUyBjb21tYW5kJyk7CisKK3Zh
ciB0ZXN0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0Q29u
dGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KHRlc3RDb250YWluZXIpOworCitmdW5jdGlvbiB0ZXN0VXNlQ1NTKHN0eWxlQXJnLCBleHBlY3Rl
ZFN0YXRlKQoreworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCd1c2VDU1MnLCBmYWxzZSwgc3R5
bGVBcmcpOyAKKyAgICBpZiAoZG9jdW1lbnQucXVlcnlDb21tYW5kU3RhdGUoJ3N0eWxlV2l0aENT
UycpID09PSBleHBlY3RlZFN0YXRlKQorICAgIHsKKyAgICAgICAgdGVzdFBhc3NlZCgndXNlQ1NT
IGNoYW5nZWQgdGhlIHN0YXRlIHN1Y2Nlc3NmdWxseScpOworICAgIH0gZWxzZSB7CisgICAgICAg
IHRlc3RGYWlsZWQoJ3VzZUNTUyBmYWlsZWQgd2l0aCB0aGUgYXJndW1lbnQgJyArIHN0eWxlQXJn
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RTaW5nbGVUb2dnbGUodG9nZ2xlQ29tbWFuZCwg
aW5pdGlhbENvbnRlbnRzLCBleHBlY3RlZENvbnRlbnRzKQoreworICAgIHRlc3RDb250YWluZXIu
aW5uZXJIVE1MID0gaW5pdGlhbENvbnRlbnRzOworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5z
ZWxlY3RBbGxDaGlsZHJlbih0ZXN0Q29udGFpbmVyKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFu
ZCgidXNlQ1NTIiwgZmFsc2UsIGZhbHNlKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCh0b2dn
bGVDb21tYW5kLCBmYWxzZSwgbnVsbCk7CisgICAgaWYgKHRlc3RDb250YWluZXIuaW5uZXJIVE1M
ID09PSBleHBlY3RlZENvbnRlbnRzKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIm9uZSAiICsgdG9n
Z2xlQ29tbWFuZCArICIgY29tbWFuZCBjb252ZXJ0ZWQgIiArIGluaXRpYWxDb250ZW50cyArICIg
dG8gIiArIGV4cGVjdGVkQ29udGVudHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RGYWls
ZWQoIm9uZSAiICsgdG9nZ2xlQ29tbWFuZCArICIgY29tbWFuZCBjb252ZXJ0ZWQgIiArIGluaXRp
YWxDb250ZW50cyArICIgdG8gIiArIHRlc3RDb250YWluZXIuaW5uZXJIVE1MICsgIiwgZXhwZWN0
ZWQgIiArIGV4cGVjdGVkQ29udGVudHMpOworICAgIH0KK30KKwordGVzdFVzZUNTUyhmYWxzZSwg
dHJ1ZSk7Cit0ZXN0VXNlQ1NTKCdmYWxzZScsIHRydWUpOwordGVzdFVzZUNTUygnRkFMU0UnLCB0
cnVlKTsKK3Rlc3RVc2VDU1ModHJ1ZSwgZmFsc2UpOwordGVzdFVzZUNTUygncmFuZG9tIHN0cmlu
ZycsIGZhbHNlKTsKKwordGVzdFNpbmdsZVRvZ2dsZSgidW5kZXJsaW5lIiwgInRlc3QiLCAiPHNw
YW4gc3R5bGU9XCJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcIj50ZXN0PC9zcGFuPiIpOwor
Citkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107131</attachid>
            <date>2011-09-12 19:40:06 -0700</date>
            <delta_ts>2011-09-13 14:59:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36683-20110912194006.patch</filename>
            <type>text/plain</type>
            <size>8949</size>
            <attacher name="Kiyoto Tamura">owenestea</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0OTk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDktMTIgIEtpeW90byBU
YW11cmEgIDxvd2VuZXN0ZWFAZ21haWwuY29tPgorCisgICAgICAgIEZvciBjb21wYXRpYmlsaXR5
LCBleGVjQ29tbWFuZCBzaG91bGQgc3VwcG9ydCBkZXByZWNhdGVkICd1c2VDU1MnIGFsaWFzIGZv
ciAnc3R5bGVXaXRoQ1NTJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzY2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbiBhZGRpdGlvbiB0byBzdXBwb3J0aW5nIHRoZSBkZXByZWNhdGVkICd1c2VDU1Mn
LCAnc3R5bGVXaXRoQ1NTJyBub3cgYWNjZXB0cyBhbnkgYXJndW1lbnQgb3RoZXIgdGhhbgorICAg
ICAgICB0aGUgYm9vbGVhbiBmYWxzZSBvciB0aGUgY2FzZS1pbnNlbnNpdGl2ZSBzdHJpbmcgImZh
bHNlIi4gVGhpcyBpcyBwZXIKKyAgICAgICAgaHR0cDovL2FyeWVoLm5hbWUvc3BlYy9lZGl0aW5n
L2VkaXRpbmcuaHRtbCN0aGUtc3R5bGV3aXRoY3NzLWNvbW1hbmQKKworICAgICAgICBUZXN0czog
ZWRpdGluZy9leGVjQ29tbWFuZC9zdHlsZS13aXRoLWNzcy5odG1sCisgICAgICAgICAgICAgICBl
ZGl0aW5nL2V4ZWNDb21tYW5kL3VzZS1jc3MuaHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVTdHlsZVdpdGhDU1MpOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVVzZUNTUyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVDb21tYW5kTWFwKToKKwogMjAxMS0wOS0xMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDA1NDYxNT4gRmxvYXRzIGluIHJ1Ynkg
dGV4dCBpbnRydWRlIGludG8gdGhlIGJhc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcAkocmV2aXNpb24gOTQ5NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDE3LDEwICsxMDE3LDEz
IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVTdHJpa2V0aHJvdWdoKEZyYW1lKiAKIAogc3RhdGljIGJv
b2wgZXhlY3V0ZVN0eWxlV2l0aENTUyhGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFu
ZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBpZiAodmFsdWUgIT0gImZhbHNl
IiAmJiB2YWx1ZSAhPSAidHJ1ZSIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBm
cmFtZS0+ZWRpdG9yKCktPnNldFNob3VsZFN0eWxlV2l0aENTUyh2YWx1ZSA9PSAidHJ1ZSIgPyB0
cnVlIDogZmFsc2UpOworICAgIGZyYW1lLT5lZGl0b3IoKS0+c2V0U2hvdWxkU3R5bGVXaXRoQ1NT
KCFlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZhbHNlIikpOworICAgIHJldHVybiB0cnVlOwor
fQorCitzdGF0aWMgYm9vbCBleGVjdXRlVXNlQ1NTKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0
b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGZyYW1lLT5lZGl0
b3IoKS0+c2V0U2hvdWxkU3R5bGVXaXRoQ1NTKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAiZmFs
c2UiKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE1MzQsNiArMTUzNyw3IEBAIHN0YXRp
YyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWEKICAgICAgICAgeyAiVW5saW5rIiwg
eyBleGVjdXRlVW5saW5rLCBzdXBwb3J0ZWQsIGVuYWJsZWRSYW5nZUluUmljaGx5RWRpdGFibGVU
ZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4
ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIlVuc2NyaXB0IiwgeyBleGVjdXRl
VW5zY3JpcHQsIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkSW5SaWNobHlF
ZGl0YWJsZVRleHQsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05v
dEFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAiVW5zZWxlY3QiLCB7
IGV4ZWN1dGVVbnNlbGVjdCwgc3VwcG9ydGVkLCBlbmFibGVkVmlzaWJsZVNlbGVjdGlvbiwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25X
aGVuRGlzYWJsZWQgfSB9LAorICAgICAgICB7ICJVc2VDU1MiLCB7IGV4ZWN1dGVVc2VDU1MsIHN1
cHBvcnRlZCwgZW5hYmxlZCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24s
IGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJZYW5rIiwg
eyBleGVjdXRlWWFuaywgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJbkVk
aXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90
QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJZYW5rQW5kU2VsZWN0
IiwgeyBleGVjdXRlWWFua0FuZFNlbGVjdCwgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcs
IGVuYWJsZWRJbkVkaXRhYmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNl
cnRpb24sIGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogCkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA5NDk5OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE4IEBACisyMDExLTA5LTEyICBLaXlvdG8gVGFtdXJhICA8b3dlbmVzdGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBGb3IgY29tcGF0aWJpbGl0eSwgZXhlY0NvbW1hbmQgc2hvdWxk
IHN1cHBvcnQgZGVwcmVjYXRlZCAndXNlQ1NTJyBhbGlhcyBmb3IgJ3N0eWxlV2l0aENTUycKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NjgzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGluZyB1c2VD
U1MsIHRoZSBjb21tYW5kIHByZXZpb3VzbHkgdW5zdXBwb3J0ZWQgYnkgV2ViS2l0LiBBbHNvLCB3
ZSBhcmUgdGVzdGluZworICAgICAgICBzdHlsZVdpdGhDU1MgYWNjZXB0cyBhbnl0aGluZyB0aGF0
IGlzIG5vdCB0aGUgYm9vbGVhbiBmYWxzZSBvciB0aGUgc3RyaW5nICJmYWxzZSIgYXMgdHJ1ZS4K
KworICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvc3R5bGUtd2l0aC1jc3MtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgtY3Nz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdXNlLWNzcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdXNlLWNzcy5o
dG1sOiBBZGRlZC4KKwogMjAxMS0wOS0xMiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGJhZCBleHBlY3RhdGlvbiB0aGF0
IHdhcyBjYXVzaW5nIHVzIHRvIHJ1biBhIGNvbXBvc2l0aW5nLyB0ZXN0IG9uIExlb3BhcmQuICBU
c2sgdHNrLCBNaWtlCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxl
LXdpdGgtY3NzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgtY3NzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc3R5bGUtd2l0aC1jc3MtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACitUZXN0IHN0eWxlV2l0aENTUyBjb21t
YW5kCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN0eWxlV2l0aENTUyBj
aGFuZ2VkIHRoZSBzdGF0ZSBzdWNjZXNzZnVsbHkKK1BBU1Mgc3R5bGVXaXRoQ1NTIGNoYW5nZWQg
dGhlIHN0YXRlIHN1Y2Nlc3NmdWxseQorUEFTUyBzdHlsZVdpdGhDU1MgY2hhbmdlZCB0aGUgc3Rh
dGUgc3VjY2Vzc2Z1bGx5CitQQVNTIHN0eWxlV2l0aENTUyBjaGFuZ2VkIHRoZSBzdGF0ZSBzdWNj
ZXNzZnVsbHkKK1BBU1Mgc3R5bGVXaXRoQ1NTIGNoYW5nZWQgdGhlIHN0YXRlIHN1Y2Nlc3NmdWxs
eQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc3R5bGUtd2l0aC1jc3MuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgt
Y3NzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L3N0eWxlLXdpdGgtY3NzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oJ1Rlc3Qgc3R5bGVXaXRoQ1NTIGNvbW1hbmQnKTsKKworZnVuY3Rpb24gdGVzdFN0eWxlV2l0
aENTUyhzdHlsZUFyZywgZXhwZWN0ZWRTdGF0ZSkKK3sKKyAgICBkb2N1bWVudC5leGVjQ29tbWFu
ZCgnc3R5bGVXaXRoQ1NTJywgZmFsc2UsIHN0eWxlQXJnKTsgCisgICAgaWYgKGRvY3VtZW50LnF1
ZXJ5Q29tbWFuZFN0YXRlKCdzdHlsZVdpdGhDU1MnKSA9PT0gZXhwZWN0ZWRTdGF0ZSkKKyAgICB7
CisgICAgICAgIHRlc3RQYXNzZWQoJ3N0eWxlV2l0aENTUyBjaGFuZ2VkIHRoZSBzdGF0ZSBzdWNj
ZXNzZnVsbHknKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKCdzdHlsZVdpdGhD
U1MgZmFpbGVkIHdpdGggdGhlIGFyZ3VtZW50ICcgKyBzdHlsZUFyZyk7CisgICAgfQorfQorCit0
ZXN0U3R5bGVXaXRoQ1NTKHRydWUsIHRydWUpOwordGVzdFN0eWxlV2l0aENTUygnZmFsc2UnLCBm
YWxzZSk7Cit0ZXN0U3R5bGVXaXRoQ1NTKCdGQUxTRScsIGZhbHNlKTsKK3Rlc3RTdHlsZVdpdGhD
U1MoJ3JhbmRvbSBzdHJpbmcnLCB0cnVlKTsKK3Rlc3RTdHlsZVdpdGhDU1MobnVsbCwgdHJ1ZSk7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdXNl
LWNzcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVj
Q29tbWFuZC91c2UtY3NzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvdXNlLWNzcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTUgQEAKK1Rlc3QgdXNlQ1NTIGNvbW1hbmQKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgdXNlQ1NTIGNoYW5nZWQgdGhlIHN0YXRlIHN1Y2Nlc3NmdWxseQor
UEFTUyB1c2VDU1MgY2hhbmdlZCB0aGUgc3RhdGUgc3VjY2Vzc2Z1bGx5CitQQVNTIHVzZUNTUyBj
aGFuZ2VkIHRoZSBzdGF0ZSBzdWNjZXNzZnVsbHkKK1BBU1MgdXNlQ1NTIGNoYW5nZWQgdGhlIHN0
YXRlIHN1Y2Nlc3NmdWxseQorUEFTUyB1c2VDU1MgY2hhbmdlZCB0aGUgc3RhdGUgc3VjY2Vzc2Z1
bGx5CitQQVNTIG9uZSB1bmRlcmxpbmUgY29tbWFuZCBjb252ZXJ0ZWQgdGVzdCB0byA8c3BhbiBz
dHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij50ZXN0PC9zcGFuPgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdXNlLWNzcy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdXNlLWNzcy5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91c2UtY3NzLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgdXNlQ1NTIGNvbW1hbmQnKTsKKwordmFy
IHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RDb250
YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
dGVzdENvbnRhaW5lcik7CisKK2Z1bmN0aW9uIHRlc3RVc2VDU1Moc3R5bGVBcmcsIGV4cGVjdGVk
U3RhdGUpCit7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3VzZUNTUycsIGZhbHNlLCBzdHls
ZUFyZyk7IAorICAgIGlmIChkb2N1bWVudC5xdWVyeUNvbW1hbmRTdGF0ZSgnc3R5bGVXaXRoQ1NT
JykgPT09IGV4cGVjdGVkU3RhdGUpCisgICAgeworICAgICAgICB0ZXN0UGFzc2VkKCd1c2VDU1Mg
Y2hhbmdlZCB0aGUgc3RhdGUgc3VjY2Vzc2Z1bGx5Jyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
dGVzdEZhaWxlZCgndXNlQ1NTIGZhaWxlZCB3aXRoIHRoZSBhcmd1bWVudCAnICsgc3R5bGVBcmcp
OworICAgIH0KK30KKworZnVuY3Rpb24gdGVzdFNpbmdsZVRvZ2dsZSh0b2dnbGVDb21tYW5kLCBp
bml0aWFsQ29udGVudHMsIGV4cGVjdGVkQ29udGVudHMpCit7CisgICAgdGVzdENvbnRhaW5lci5p
bm5lckhUTUwgPSBpbml0aWFsQ29udGVudHM7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNl
bGVjdEFsbENoaWxkcmVuKHRlc3RDb250YWluZXIpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCJ1c2VDU1MiLCBmYWxzZSwgZmFsc2UpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKHRvZ2ds
ZUNvbW1hbmQsIGZhbHNlLCBudWxsKTsKKyAgICBpZiAodGVzdENvbnRhaW5lci5pbm5lckhUTUwg
PT09IGV4cGVjdGVkQ29udGVudHMpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgib25lICIgKyB0b2dn
bGVDb21tYW5kICsgIiBjb21tYW5kIGNvbnZlcnRlZCAiICsgaW5pdGlhbENvbnRlbnRzICsgIiB0
byAiICsgZXhwZWN0ZWRDb250ZW50cyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgib25lICIgKyB0b2dnbGVDb21tYW5kICsgIiBjb21tYW5kIGNvbnZlcnRlZCAiICsgaW5pdGlh
bENvbnRlbnRzICsgIiB0byAiICsgdGVzdENvbnRhaW5lci5pbm5lckhUTUwgKyAiLCBleHBlY3Rl
ZCAiICsgZXhwZWN0ZWRDb250ZW50cyk7CisgICAgfQorfQorCit0ZXN0VXNlQ1NTKGZhbHNlLCB0
cnVlKTsKK3Rlc3RVc2VDU1MoJ2ZhbHNlJywgdHJ1ZSk7Cit0ZXN0VXNlQ1NTKCdGQUxTRScsIHRy
dWUpOwordGVzdFVzZUNTUyh0cnVlLCBmYWxzZSk7Cit0ZXN0VXNlQ1NTKCdyYW5kb20gc3RyaW5n
JywgZmFsc2UpOworCit0ZXN0U2luZ2xlVG9nZ2xlKCJ1bmRlcmxpbmUiLCAidGVzdCIsICI8c3Bh
biBzdHlsZT1cInRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1wiPnRlc3Q8L3NwYW4+Iik7CisK
K2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcik7CisKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107237</attachid>
            <date>2011-09-13 14:59:19 -0700</date>
            <delta_ts>2011-09-13 15:30:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36683-20110913145918.patch</filename>
            <type>text/plain</type>
            <size>10670</size>
            <attacher name="Kiyoto Tamura">owenestea</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1MDQ3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDktMTMgIEtpeW90byBU
YW11cmEgIDxvd2VuZXN0ZWFAZ21haWwuY29tPgorCisgICAgICAgIEZvciBjb21wYXRpYmlsaXR5
LCBleGVjQ29tbWFuZCBzaG91bGQgc3VwcG9ydCBkZXByZWNhdGVkICd1c2VDU1MnIGFsaWFzIGZv
ciAnc3R5bGVXaXRoQ1NTJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzY2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbiBhZGRpdGlvbiB0byBzdXBwb3J0aW5nIHRoZSBkZXByZWNhdGVkICd1c2VDU1Mn
LCAnc3R5bGVXaXRoQ1NTJyBub3cgYWNjZXB0cyBhbnkgYXJndW1lbnQgb3RoZXIgdGhhbgorICAg
ICAgICB0aGUgYm9vbGVhbiBmYWxzZSBvciB0aGUgY2FzZS1pbnNlbnNpdGl2ZSBzdHJpbmcgImZh
bHNlIi4gVGhpcyBpcyBwZXIKKyAgICAgICAgaHR0cDovL2FyeWVoLm5hbWUvc3BlYy9lZGl0aW5n
L2VkaXRpbmcuaHRtbCN0aGUtc3R5bGV3aXRoY3NzLWNvbW1hbmQKKworICAgICAgICBUZXN0czog
ZWRpdGluZy9leGVjQ29tbWFuZC9zdHlsZS13aXRoLWNzcy5odG1sCisgICAgICAgICAgICAgICBl
ZGl0aW5nL2V4ZWNDb21tYW5kL3VzZS1jc3MuaHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVTdHlsZVdpdGhDU1MpOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVVzZUNTUyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVDb21tYW5kTWFwKToKKwogMjAxMS0wOS0xMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OICg2NDI3NSk6IFNoYXBlIHBhdHRlcm4t
aW1hZ2UgZmlsbCB0dXJucyBibGFjawpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ckNvbW1hbmQuY3BwCShyZXZpc2lvbiA5NTAzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMTcsMTAgKzEwMTcsMTMgQEAg
c3RhdGljIGJvb2wgZXhlY3V0ZVN0cmlrZXRocm91Z2goRnJhbWUqIAogCiBzdGF0aWMgYm9vbCBl
eGVjdXRlU3R5bGVXaXRoQ1NTKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291
cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIGlmICh2YWx1ZSAhPSAiZmFsc2UiICYm
IHZhbHVlICE9ICJ0cnVlIikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGZyYW1l
LT5lZGl0b3IoKS0+c2V0U2hvdWxkU3R5bGVXaXRoQ1NTKHZhbHVlID09ICJ0cnVlIiA/IHRydWUg
OiBmYWxzZSk7CisgICAgZnJhbWUtPmVkaXRvcigpLT5zZXRTaG91bGRTdHlsZVdpdGhDU1MoIWVx
dWFsSWdub3JpbmdDYXNlKHZhbHVlLCAiZmFsc2UiKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3N0YXRpYyBib29sIGV4ZWN1dGVVc2VDU1MoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNv
bW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgZnJhbWUtPmVkaXRvcigp
LT5zZXRTaG91bGRTdHlsZVdpdGhDU1MoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJmYWxzZSIp
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTUzNCw2ICsxNTM3LDcgQEAgc3RhdGljIGNv
bnN0IENvbW1hbmRNYXAmIGNyZWF0ZUNvbW1hbmRNYQogICAgICAgICB7ICJVbmxpbmsiLCB7IGV4
ZWN1dGVVbmxpbmssIHN1cHBvcnRlZCwgZW5hYmxlZFJhbmdlSW5SaWNobHlFZGl0YWJsZVRleHQs
IHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBub3RUZXh0SW5zZXJ0aW9uLCBkb05vdEFsbG93RXhlY3V0
aW9uV2hlbkRpc2FibGVkIH0gfSwKICAgICAgICAgeyAiVW5zY3JpcHQiLCB7IGV4ZWN1dGVVbnNj
cmlwdCwgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRJblJpY2hseUVkaXRh
YmxlVGV4dCwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGRvTm90QWxs
b3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogICAgICAgICB7ICJVbnNlbGVjdCIsIHsgZXhl
Y3V0ZVVuc2VsZWN0LCBzdXBwb3J0ZWQsIGVuYWJsZWRWaXNpYmxlU2VsZWN0aW9uLCBzdGF0ZU5v
bmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5E
aXNhYmxlZCB9IH0sCisgICAgICAgIHsgIlVzZUNTUyIsIHsgZXhlY3V0ZVVzZUNTUywgc3VwcG9y
dGVkLCBlbmFibGVkLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9O
b3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIllhbmsiLCB7IGV4
ZWN1dGVZYW5rLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZEluRWRpdGFi
bGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxv
d0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAgICAgICAgIHsgIllhbmtBbmRTZWxlY3QiLCB7
IGV4ZWN1dGVZYW5rQW5kU2VsZWN0LCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5h
YmxlZEluRWRpdGFibGVUZXh0LCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlv
biwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDk1MDQ3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTEtMDktMTMgIEtpeW90byBUYW11cmEgIDxvd2VuZXN0ZWFAZ21haWwu
Y29tPgorCisgICAgICAgIEZvciBjb21wYXRpYmlsaXR5LCBleGVjQ29tbWFuZCBzaG91bGQgc3Vw
cG9ydCBkZXByZWNhdGVkICd1c2VDU1MnIGFsaWFzIGZvciAnc3R5bGVXaXRoQ1NTJworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY2ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0aW5nIHVzZUNTUywg
dGhlIGNvbW1hbmQgcHJldmlvdXNseSB1bnN1cHBvcnRlZCBieSBXZWJLaXQuIEFsc28sIHdlIGFy
ZSB0ZXN0aW5nCisgICAgICAgIHN0eWxlV2l0aENTUyBhY2NlcHRzIGFueXRoaW5nIHRoYXQgaXMg
bm90IHRoZSBib29sZWFuIGZhbHNlIG9yIHRoZSBzdHJpbmcgImZhbHNlIiBhcyB0cnVlLgorICAg
ICAgICBGdXJ0aGVybW9yZSwgd2UgdGVzdCB0aGF0IHF1ZXJ5Q29tbWFuZFZhbHVlL1N0YXRlKCd1
c2VDU1MnKSByZXR1cm4gYm9vbGVhbiBmYWxzZSBhbmQKKyAgICAgICAgcXVlcnlDb21tYW5kVmFs
dWUvU3RhdGUoJ3VzZVN0eWxlV2l0aENTUycpIHJldHVybnMgYm9vbGVhbnMgKGFzIG9wcG9zZWQg
dG8gJ3RydWUnLydmYWxzZScKKyAgICAgICAgc3RyaW5ncykKKworICAgICAgICAqIGVkaXRpbmcv
ZXhlY0NvbW1hbmQvc3R5bGUtd2l0aC1jc3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgtY3NzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdXNlLWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdXNlLWNzcy5odG1sOiBBZGRlZC4KKwogMjAxMS0w
OS0xMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OICg2NDI3NSk6IFNoYXBlIHBhdHRlcm4taW1hZ2UgZmlsbCB0dXJucyBibGFjawpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9zdHlsZS13aXRoLWNzcy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9z
dHlsZS13aXRoLWNzcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgtY3NzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxOCBAQAorVGVzdCBzdHlsZVdpdGhDU1MgY29tbWFuZAorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdHlsZVdpdGhDU1MgY2hhbmdlZCB0aGUgc3Rh
dGUgc3VjY2Vzc2Z1bGx5CitQQVNTIHN0eWxlV2l0aENTUyBjaGFuZ2VkIHRoZSBzdGF0ZSBzdWNj
ZXNzZnVsbHkKK1BBU1Mgc3R5bGVXaXRoQ1NTIGNoYW5nZWQgdGhlIHN0YXRlIHN1Y2Nlc3NmdWxs
eQorUEFTUyBzdHlsZVdpdGhDU1MgY2hhbmdlZCB0aGUgc3RhdGUgc3VjY2Vzc2Z1bGx5CitQQVNT
IHN0eWxlV2l0aENTUyBjaGFuZ2VkIHRoZSBzdGF0ZSBzdWNjZXNzZnVsbHkKK1BBU1MgcXVlcnlD
b21tYW5kU3RhdGUoJ3N0eWxlV2l0aENTUycpIHJldHVybnMgdHJ1ZQorUEFTUyBxdWVyeUNvbW1h
bmRWYWx1ZSgnc3R5bGVXaXRoQ1NTJykgcmV0dXJucyAndHJ1ZScKK1BBU1MgcXVlcnlDb21tYW5k
U3RhdGUoJ3N0eWxlV2l0aENTUycpIHJldHVybnMgZmFsc2UKK1BBU1MgcXVlcnlDb21tYW5kVmFs
dWUoJ3N0eWxlV2l0aENTUycpIHJldHVybnMgJ2ZhbHNlJworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvc3R5bGUtd2l0aC1jc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgtY3NzLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3N0eWxlLXdpdGgtY3NzLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignVGVzdCBzdHlsZVdpdGhDU1MgY29tbWFuZCcpOworCitmdW5jdGlvbiB0ZXN0U3R5bGVX
aXRoQ1NTKHN0eWxlQXJnLCBleHBlY3RlZFN0YXRlKQoreworICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCdzdHlsZVdpdGhDU1MnLCBmYWxzZSwgc3R5bGVBcmcpOyAKKyAgICBpZiAoZG9jdW1lbnQu
cXVlcnlDb21tYW5kU3RhdGUoJ3N0eWxlV2l0aENTUycpID09PSBleHBlY3RlZFN0YXRlKQorICAg
ICAgICB0ZXN0UGFzc2VkKCdzdHlsZVdpdGhDU1MgY2hhbmdlZCB0aGUgc3RhdGUgc3VjY2Vzc2Z1
bGx5Jyk7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCdzdHlsZVdpdGhDU1MgZmFpbGVk
IHdpdGggdGhlIGFyZ3VtZW50ICcgKyBzdHlsZUFyZyk7Cit9CisKK3Rlc3RTdHlsZVdpdGhDU1Mo
dHJ1ZSwgdHJ1ZSk7Cit0ZXN0U3R5bGVXaXRoQ1NTKCdmYWxzZScsIGZhbHNlKTsKK3Rlc3RTdHls
ZVdpdGhDU1MoJ0ZBTFNFJywgZmFsc2UpOwordGVzdFN0eWxlV2l0aENTUygncmFuZG9tIHN0cmlu
ZycsIHRydWUpOwordGVzdFN0eWxlV2l0aENTUyhudWxsLCB0cnVlKTsKKworZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ3N0eWxlV2l0aENTUycsIGZhbHNlLCB0cnVlKTsKK2lmIChkb2N1bWVudC5xdWVy
eUNvbW1hbmRTdGF0ZSgnc3R5bGVXaXRoQ1NTJykgPT09IHRydWUpCisgICAgdGVzdFBhc3NlZCgi
cXVlcnlDb21tYW5kU3RhdGUoJ3N0eWxlV2l0aENTUycpIHJldHVybnMgdHJ1ZSIpOworZWxzZQor
ICAgIHRlc3RGYWlsZWQoInF1ZXJ5Q29tbWFuZFN0YXRlKCdzdHlsZVdpdGhDU1MnKSBzaG91bGQg
cmV0dXJuIGJvb2xlYW4gdHJ1ZSIpOworCitpZiAoZG9jdW1lbnQucXVlcnlDb21tYW5kVmFsdWUo
J3N0eWxlV2l0aENTUycpID09PSAndHJ1ZScpCisgICAgdGVzdFBhc3NlZCgicXVlcnlDb21tYW5k
VmFsdWUoJ3N0eWxlV2l0aENTUycpIHJldHVybnMgJ3RydWUnIik7CitlbHNlCisgICAgdGVzdEZh
aWxlZCgicXVlcnlDb21tYW5kVmFsdWUoJ3N0eWxlV2l0aENTUycpIHNob3VsZCByZXR1cm4gJ3Ry
dWUnIik7CisKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdzdHlsZVdpdGhDU1MnLCBmYWxzZSwgZmFs
c2UpOworaWYgKGRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN0YXRlKCdzdHlsZVdpdGhDU1MnKSA9PT0g
ZmFsc2UpCisgICAgdGVzdFBhc3NlZCgicXVlcnlDb21tYW5kU3RhdGUoJ3N0eWxlV2l0aENTUycp
IHJldHVybnMgZmFsc2UiKTsKK2Vsc2UKKyAgICB0ZXN0RmFpbGVkKCJxdWVyeUNvbW1hbmRTdGF0
ZSgnc3R5bGVXaXRoQ1NTJykgc2hvdWxkIHJldHVybiBib29sZWFuIGZhbHNlIik7CisKK2lmIChk
b2N1bWVudC5xdWVyeUNvbW1hbmRWYWx1ZSgnc3R5bGVXaXRoQ1NTJykgPT09ICdmYWxzZScpCisg
ICAgdGVzdFBhc3NlZCgicXVlcnlDb21tYW5kVmFsdWUoJ3N0eWxlV2l0aENTUycpIHJldHVybnMg
J2ZhbHNlJyIpOworZWxzZQorICAgIHRlc3RGYWlsZWQoInF1ZXJ5Q29tbWFuZFZhbHVlKCdzdHls
ZVdpdGhDU1MnKSBzaG91bGQgcmV0dXJuICdmYWxzZSciKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91c2UtY3NzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3VzZS1jc3MtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91
c2UtY3NzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorVGVzdCB1
c2VDU1MgY29tbWFuZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB1c2VD
U1MgY2hhbmdlZCB0aGUgc3RhdGUgc3VjY2Vzc2Z1bGx5CitQQVNTIHVzZUNTUyBjaGFuZ2VkIHRo
ZSBzdGF0ZSBzdWNjZXNzZnVsbHkKK1BBU1MgdXNlQ1NTIGNoYW5nZWQgdGhlIHN0YXRlIHN1Y2Nl
c3NmdWxseQorUEFTUyB1c2VDU1MgY2hhbmdlZCB0aGUgc3RhdGUgc3VjY2Vzc2Z1bGx5CitQQVNT
IHVzZUNTUyBjaGFuZ2VkIHRoZSBzdGF0ZSBzdWNjZXNzZnVsbHkKK1BBU1MgcXVlcnlDb21tYW5k
U3RhdGUoJ3VzZUNTUycpIHJldHVybnMgZmFsc2UKK1BBU1MgcXVlcnlDb21tYW5kVmFsdWUoJ3Vz
ZUNTUycpIHJldHVybnMgZmFsc2UKK1BBU1Mgb25lIHVuZGVybGluZSBjb21tYW5kIGNvbnZlcnRl
ZCB0ZXN0IHRvIDxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPnRlc3Q8
L3NwYW4+CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91c2UtY3NzLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91c2UtY3NzLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3VzZS1jc3Mu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCdUZXN0IHVzZUNTUyBjb21tYW5kJyk7CisKK3ZhciB0ZXN0Q29udGFpbmVy
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0Q29udGFpbmVyLmNvbnRlbnRF
ZGl0YWJsZSA9IHRydWU7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RDb250YWluZXIp
OworCitmdW5jdGlvbiB0ZXN0VXNlQ1NTKHN0eWxlQXJnLCBleHBlY3RlZFN0YXRlKQoreworICAg
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCd1c2VDU1MnLCBmYWxzZSwgc3R5bGVBcmcpOyAKKyAgICBp
ZiAoZG9jdW1lbnQucXVlcnlDb21tYW5kU3RhdGUoJ3N0eWxlV2l0aENTUycpID09PSBleHBlY3Rl
ZFN0YXRlKQorICAgICAgICB0ZXN0UGFzc2VkKCd1c2VDU1MgY2hhbmdlZCB0aGUgc3RhdGUgc3Vj
Y2Vzc2Z1bGx5Jyk7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCd1c2VDU1MgZmFpbGVk
IHdpdGggdGhlIGFyZ3VtZW50ICcgKyBzdHlsZUFyZyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTaW5n
bGVUb2dnbGUodG9nZ2xlQ29tbWFuZCwgaW5pdGlhbENvbnRlbnRzLCBleHBlY3RlZENvbnRlbnRz
KQoreworICAgIHRlc3RDb250YWluZXIuaW5uZXJIVE1MID0gaW5pdGlhbENvbnRlbnRzOworICAg
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbih0ZXN0Q29udGFpbmVyKTsK
KyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgidXNlQ1NTIiwgZmFsc2UsIGZhbHNlKTsKKyAgICBk
b2N1bWVudC5leGVjQ29tbWFuZCh0b2dnbGVDb21tYW5kLCBmYWxzZSwgbnVsbCk7CisgICAgaWYg
KHRlc3RDb250YWluZXIuaW5uZXJIVE1MID09PSBleHBlY3RlZENvbnRlbnRzKQorICAgICAgICB0
ZXN0UGFzc2VkKCJvbmUgIiArIHRvZ2dsZUNvbW1hbmQgKyAiIGNvbW1hbmQgY29udmVydGVkICIg
KyBpbml0aWFsQ29udGVudHMgKyAiIHRvICIgKyBleHBlY3RlZENvbnRlbnRzKTsKKyAgICBlbHNl
CisgICAgICAgIHRlc3RGYWlsZWQoIm9uZSAiICsgdG9nZ2xlQ29tbWFuZCArICIgY29tbWFuZCBj
b252ZXJ0ZWQgIiArIGluaXRpYWxDb250ZW50cyArICIgdG8gIiArIHRlc3RDb250YWluZXIuaW5u
ZXJIVE1MICsgIiwgZXhwZWN0ZWQgIiArIGV4cGVjdGVkQ29udGVudHMpOworfQorCit0ZXN0VXNl
Q1NTKGZhbHNlLCB0cnVlKTsKK3Rlc3RVc2VDU1MoJ2ZhbHNlJywgdHJ1ZSk7Cit0ZXN0VXNlQ1NT
KCdGQUxTRScsIHRydWUpOwordGVzdFVzZUNTUyh0cnVlLCBmYWxzZSk7Cit0ZXN0VXNlQ1NTKCdy
YW5kb20gc3RyaW5nJywgZmFsc2UpOworCitpZiAoZG9jdW1lbnQucXVlcnlDb21tYW5kU3RhdGUo
J3VzZUNTUycpID09PSBmYWxzZSkKKyAgICB0ZXN0UGFzc2VkKCJxdWVyeUNvbW1hbmRTdGF0ZSgn
dXNlQ1NTJykgcmV0dXJucyBmYWxzZSIpOworZWxzZQorICAgIHRlc3RGYWlsZWQoInF1ZXJ5Q29t
bWFuZFN0YXRlKCd1c2VDU1MnKSBzaG91bGQgcmV0dXJuIGJvb2xlYW4gZmFsc2UiKTsKKworaWYg
KGRvY3VtZW50LnF1ZXJ5Q29tbWFuZFZhbHVlKCd1c2VDU1MnKSA9PT0gZmFsc2UpCisgICAgdGVz
dFBhc3NlZCgicXVlcnlDb21tYW5kVmFsdWUoJ3VzZUNTUycpIHJldHVybnMgZmFsc2UiKTsKK2Vs
c2UKKyAgICB0ZXN0RmFpbGVkKCJxdWVyeUNvbW1hbmRWYWx1ZSgndXNlQ1NTJykgc2hvdWxkIHJl
dHVybiBib29sZWFuIGZhbHNlIik7CisKK3Rlc3RTaW5nbGVUb2dnbGUoInVuZGVybGluZSIsICJ0
ZXN0IiwgIjxzcGFuIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XCI+dGVzdDwv
c3Bhbj4iKTsKKworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVyKTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>