<?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>82688</bug_id>
          
          <creation_ts>2012-03-29 22:26:45 -0700</creation_ts>
          <short_desc>Caret is not rendered properly inside an input element with text-indent</short_desc>
          <delta_ts>2012-04-17 22:45:42 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>enrica</cc>
    
    <cc>hyatt</cc>
    
    <cc>jer.noble</cc>
    
    <cc>leviw</cc>
    
    <cc>max.hong.shen</cc>
    
    <cc>mitz</cc>
    
    <cc>morrita</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>591878</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-29 22:26:45 -0700</bug_when>
    <thetext>When you click on

&lt;input id=&quot;input&quot; type=&quot;text&quot; style=&quot;text-indent:10px;&quot;&gt;

the caret is initially rendered without indentation although typing &amp; deleting any character would move the caret to the correct position.

http://simple-rte.rniwa.com/?editor=%3Cinput%20id%3D%22input%22%20type%3D%22text%22%20style%3D%22text-indent%3A10px%3B%22%3E&amp;designmode=false&amp;script=document.getElementById%28%27input%27%29.focus%28%29%3B</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591879</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-29 22:27:00 -0700</bug_when>
    <thetext>http://crbug.com/53466</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602414</commentid>
    <comment_count>2</comment_count>
      <attachid>137151</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-04-13 14:33:20 -0700</bug_when>
    <thetext>Created attachment 137151
First try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602433</commentid>
    <comment_count>3</comment_count>
      <attachid>137151</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-13 14:50:08 -0700</bug_when>
    <thetext>Comment on attachment 137151
First try

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:6483
&gt; +            if (currentStyle-&gt;isLeftToRightDirection())
&gt; +                x += textIndentOffset() / 2;
&gt; +            else
&gt; +                x -= textIndentOffset() / 2;

Please add a test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603142</commentid>
    <comment_count>4</comment_count>
      <attachid>137347</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-04-16 07:33:49 -0700</bug_when>
    <thetext>Created attachment 137347
add missing test cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603145</commentid>
    <comment_count>5</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-04-16 07:34:27 -0700</bug_when>
    <thetext>Thanks for the review. Fix it in the latest patch.
(In reply to comment #3)
&gt; (From update of attachment 137151 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137151&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:6483
&gt; &gt; +            if (currentStyle-&gt;isLeftToRightDirection())
&gt; &gt; +                x += textIndentOffset() / 2;
&gt; &gt; +            else
&gt; &gt; +                x -= textIndentOffset() / 2;
&gt; 
&gt; Please add a test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603453</commentid>
    <comment_count>6</comment_count>
      <attachid>137347</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-04-16 14:35:45 -0700</bug_when>
    <thetext>Comment on attachment 137347
add missing test cases

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:6495
&gt; +    x = min(x, w - (borderRight() + paddingRight()) - caretWidth);

This is needed to prevent x from being beyond the edge? Why isn&apos;t this needed for the left side as well?

Also, why not w - borderRight() - paddingRight() - caretWidth? Same with above. Seems less confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603455</commentid>
    <comment_count>7</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-04-16 14:43:49 -0700</bug_when>
    <thetext>Thanks for reviewing.
(In reply to comment #6)
&gt; (From update of attachment 137347 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137347&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:6495
&gt; &gt; +    x = min(x, w - (borderRight() + paddingRight()) - caretWidth);
&gt; 
&gt; This is needed to prevent x from being beyond the edge? Why isn&apos;t this needed for the left side as well?
I checked firefox &amp; safari and found both webkit &amp; firefox prevent x from being beyond the right edge only.  
&gt; 
&gt; Also, why not w - borderRight() - paddingRight() - caretWidth? Same with above. Seems less confusing.
I will fix this, thanks :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603460</commentid>
    <comment_count>8</comment_count>
      <attachid>137347</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-04-16 14:46:42 -0700</bug_when>
    <thetext>Comment on attachment 137347
add missing test cases

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:6495
&gt;&gt;&gt; +    x = min(x, w - (borderRight() + paddingRight()) - caretWidth);
&gt;&gt; 
&gt;&gt; This is needed to prevent x from being beyond the edge? Why isn&apos;t this needed for the left side as well?
&gt;&gt; 
&gt;&gt; Also, why not w - borderRight() - paddingRight() - caretWidth? Same with above. Seems less confusing.
&gt; 
&gt; I checked firefox &amp; safari and found both webkit &amp; firefox prevent x from being beyond the right edge only.

I&apos;m confused what you mean about WebKit, since this appears to be adding this specifically for WebKit now :p</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603533</commentid>
    <comment_count>9</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-04-16 16:09:01 -0700</bug_when>
    <thetext>Sorry for the confusion. WebKit does provide the right caret position for the input element When it has text content -- so, at the moment when the first character entered, I checked the insertion position calculated in RenderText::localCaretRect and found it never beyond right edge. 

In other words, if we don&apos;t check the x value, you will see the caret &apos;jumps&apos; after inserting first character in following case, &quot;&lt;input id=&apos;textIndentTest&apos; type=&apos;text&apos; style=&apos;text-indent:30px;text-align:right&apos;&gt;&quot;.

(In reply to comment #8)
&gt; (From update of attachment 137347 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137347&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:6495
&gt; &gt;&gt;&gt; +    x = min(x, w - (borderRight() + paddingRight()) - caretWidth);
&gt; &gt;&gt; 
&gt; &gt;&gt; This is needed to prevent x from being beyond the edge? Why isn&apos;t this needed for the left side as well?
&gt; &gt;&gt; 
&gt; &gt;&gt; Also, why not w - borderRight() - paddingRight() - caretWidth? Same with above. Seems less confusing.
&gt; &gt; 
&gt; &gt; I checked firefox &amp; safari and found both webkit &amp; firefox prevent x from being beyond the right edge only.
&gt; 
&gt; I&apos;m confused what you mean about WebKit, since this appears to be adding this specifically for WebKit now :p</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603538</commentid>
    <comment_count>10</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-04-16 16:16:34 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Sorry for the confusion. WebKit does provide the right caret position for the input element When it has text content -- so, at the moment when the first character entered, I checked the insertion position calculated in RenderText::localCaretRect and found it never beyond right edge. 
&gt; 
&gt; In other words, if we don&apos;t check the x value, you will see the caret &apos;jumps&apos; after inserting first character in following case, &quot;&lt;input id=&apos;textIndentTest&apos; type=&apos;text&apos; style=&apos;text-indent:30px;text-align:right&apos;&gt;&quot;.

Ahhh, that explains it. Thanks for clearing that up :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604305</commentid>
    <comment_count>11</comment_count>
      <attachid>137597</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-04-17 13:43:35 -0700</bug_when>
    <thetext>Created attachment 137597
updated patch based on Levi&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604310</commentid>
    <comment_count>12</comment_count>
      <attachid>137597</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-17 13:50:54 -0700</bug_when>
    <thetext>Comment on attachment 137597
updated patch based on Levi&apos;s review

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:6501
&gt;      switch (alignment) {
&gt;          case alignLeft:
&gt; +            if (currentStyle-&gt;isLeftToRightDirection())
&gt; +                x += textIndentOffset();
&gt;              break;
&gt;          case alignCenter:
&gt;              x = (x + w - (borderRight() + paddingRight())) / 2;
&gt; +            if (currentStyle-&gt;isLeftToRightDirection())
&gt; +                x += textIndentOffset() / 2;
&gt; +            else
&gt; +                x -= textIndentOffset() / 2;
&gt;              break;
&gt;          case alignRight:
&gt;              x = w - (borderRight() + paddingRight()) - caretWidth;
&gt; +            if (!currentStyle-&gt;isLeftToRightDirection())
&gt; +                x -= textIndentOffset();
&gt;              break;
&gt;      }
&gt; +    x = min(x, w - borderRight() - paddingRight() - caretWidth);

We need to fix this code for vertical writing mode but that&apos;s probably a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604312</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-17 13:51:17 -0700</bug_when>
    <thetext>This isn&apos;t really an editing bug. It&apos;s a rendering bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604448</commentid>
    <comment_count>14</comment_count>
      <attachid>137597</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 16:10:38 -0700</bug_when>
    <thetext>Comment on attachment 137597
updated patch based on Levi&apos;s review

Clearing flags on attachment: 137597

Committed r114461: &lt;http://trac.webkit.org/changeset/114461&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604449</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 16:10:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604602</commentid>
    <comment_count>16</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-17 22:45:42 -0700</bug_when>
    <thetext>This commit, due to its dependency on textInputController, is broken on all WK2 bots.  Adding to skipped list, and making a note in bug #42337.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137151</attachid>
            <date>2012-04-13 14:33:20 -0700</date>
            <delta_ts>2012-04-16 07:33:49 -0700</delta_ts>
            <desc>First try</desc>
            <filename>82688v1.patch</filename>
            <type>text/plain</type>
            <size>5927</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDE2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTEzICBZaSBTaGVu
ICA8eWkuNC5zaGVuQG5va2lhLmNvbT4KKworICAgICAgICBDYXJldCBpcyBub3QgcmVuZGVyZWQg
cHJvcGVybHkgaW5zaWRlIGFuIGlucHV0IGVsZW1lbnQgd2l0aCB0ZXh0LWluZGVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI2ODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgYW4gZW1wdHkgaW5w
dXQgZWxlbWVudCwgdGhlcmUgaXMgbm8gUmVuZGVyVGV4dC4gSW5zdGVhZCwgUmVuZGVyQmxvY2s6
OmxvY2FsQ2FyZXRSZWN0IHByb3ZpZGVzCisgICAgICAgIHRoZSBjYXJldCBwb3NpdGlvbiBmb3Ig
cmVuZGVyaW5nIHRoZSBjYXJldCBpbiB0aGUgZW1wdHkgaW5wdXQgZWxlbWVudC4gVG8gZ2V0IGNv
cnJlY3QgY2FyZXQgcmVjdCwKKyAgICAgICAgdGV4dEluZGVudE9mZnNldCgpIHNob3VsZCBiZSB1
c2VkIHRvIGFkanVzdCB0aGUgY2FyZXQncyBwb3NpdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0
aW5nL3N0eWxlL3RleHQtaW5kZW50Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9jYWxDYXJldFJlY3Qp
OgorCiAyMDEyLTA0LTExICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgdW51c2VkIGNvbXBvc2l0ZVRvVGV4dHVyZSAvIGNv
bXBvc2l0ZU9mZnNjcmVlbiBzZXR0aW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDExNDEzMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0NzIsMTQgKzY0NzIsMjMg
QEAgTGF5b3V0UmVjdCBSZW5kZXJCbG9jazo6bG9jYWxDYXJldFJlY3QoSQogCiAgICAgc3dpdGNo
IChhbGlnbm1lbnQpIHsKICAgICAgICAgY2FzZSBhbGlnbkxlZnQ6CisgICAgICAgICAgICBpZiAo
Y3VycmVudFN0eWxlLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCisgICAgICAgICAgICAgICAg
eCArPSB0ZXh0SW5kZW50T2Zmc2V0KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBhbGlnbkNlbnRlcjoKICAgICAgICAgICAgIHggPSAoeCArIHcgLSAoYm9yZGVyUmlnaHQoKSAr
IHBhZGRpbmdSaWdodCgpKSkgLyAyOworICAgICAgICAgICAgaWYgKGN1cnJlbnRTdHlsZS0+aXNM
ZWZ0VG9SaWdodERpcmVjdGlvbigpKQorICAgICAgICAgICAgICAgIHggKz0gdGV4dEluZGVudE9m
ZnNldCgpIC8gMjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB4IC09IHRleHRJ
bmRlbnRPZmZzZXQoKSAvIDI7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBhbGln
blJpZ2h0OgogICAgICAgICAgICAgeCA9IHcgLSAoYm9yZGVyUmlnaHQoKSArIHBhZGRpbmdSaWdo
dCgpKSAtIGNhcmV0V2lkdGg7CisgICAgICAgICAgICBpZiAoIWN1cnJlbnRTdHlsZS0+aXNMZWZ0
VG9SaWdodERpcmVjdGlvbigpKQorICAgICAgICAgICAgICAgIHggLT0gdGV4dEluZGVudE9mZnNl
dCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIHggPSBtaW4oeCwgdyAtIChib3Jk
ZXJSaWdodCgpICsgcGFkZGluZ1JpZ2h0KCkpIC0gY2FyZXRXaWR0aCk7CiAKICAgICBpZiAoZXh0
cmFXaWR0aFRvRW5kT2ZMaW5lKSB7CiAgICAgICAgIGlmIChpc1JlbmRlckJsb2NrKCkpIHsKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDExNDE2NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA0LTEzICBZaSBTaGVuICA8eWkuNC5zaGVu
QG5va2lhLmNvbT4KKworICAgICAgICBDYXJldCBpcyBub3QgcmVuZGVyZWQgcHJvcGVybHkgaW5z
aWRlIGFuIGlucHV0IGVsZW1lbnQgd2l0aCB0ZXh0LWluZGVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI2ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgYW4gZW1wdHkgaW5wdXQgZWxlbWVudCwg
dGhlcmUgaXMgbm8gUmVuZGVyVGV4dC4gSW5zdGVhZCwgUmVuZGVyQmxvY2s6OmxvY2FsQ2FyZXRS
ZWN0IHByb3ZpZGVzCisgICAgICAgIHRoZSBjYXJldCBwb3NpdGlvbiBmb3IgcmVuZGVyaW5nIHRo
ZSBjYXJldCBpbiB0aGUgZW1wdHkgaW5wdXQgZWxlbWVudC4gVG8gZ2V0IGNvcnJlY3QgY2FyZXQg
cmVjdCwKKyAgICAgICAgdGV4dEluZGVudE9mZnNldCgpIHNob3VsZCBiZSB1c2VkIHRvIGFkanVz
dCB0aGUgY2FyZXQncyBwb3NpdGlvbi4KKworICAgICAgICAqIGVkaXRpbmcvc3R5bGUvdGV4dC1p
bmRlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3RleHQt
aW5kZW50Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTA0LTEzICBWaW5jZW50IFNjaGVpYiAgPHNjaGVp
YkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2hyb21pdW0gdGVzdF9leHBlY3RhdGlvbnMgVElN
T1VUIG1hc2sgZm9yIGZhc3QvY2FudmFzLzJkLmltYWdlRGF0YUhELmh0bWwKSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90ZXh0LWluZGVudC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorU3VjY2Vzcy4gVGhlIGNhcmV0
J3MgeCBwb3NpdGlvbnMgb2YgZW1wdHkmbm9uZW1wdHkgaW5wdXQgZmllbGQgd2VyZSB0aGUgc2Ft
ZS4KK1N1Y2Nlc3MuIFRoZSBjYXJldCdzIHggcG9zaXRpb25zIG9mIGVtcHR5Jm5vbmVtcHR5IGlu
cHV0IGZpZWxkIHdlcmUgdGhlIHNhbWUuCitTdWNjZXNzLiBUaGUgY2FyZXQncyB4IHBvc2l0aW9u
cyBvZiBlbXB0eSZub25lbXB0eSBpbnB1dCBmaWVsZCB3ZXJlIHRoZSBzYW1lLgorU3VjY2Vzcy4g
VGhlIGNhcmV0J3MgeCBwb3NpdGlvbnMgb2YgZW1wdHkmbm9uZW1wdHkgaW5wdXQgZmllbGQgd2Vy
ZSB0aGUgc2FtZS4KK1N1Y2Nlc3MuIFRoZSBjYXJldCdzIHggcG9zaXRpb25zIG9mIGVtcHR5Jm5v
bmVtcHR5IGlucHV0IGZpZWxkIHdlcmUgdGhlIHNhbWUuCitTdWNjZXNzLiBUaGUgY2FyZXQncyB4
IHBvc2l0aW9ucyBvZiBlbXB0eSZub25lbXB0eSBpbnB1dCBmaWVsZCB3ZXJlIHRoZSBzYW1lLgor
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RleHQtaW5kZW50Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90ZXh0LWluZGVudC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90ZXh0LWluZGVudC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0VGV4
dEluZGVudCh0ZXN0Q29udGVudCwgY2hhcmFjdGVySW5kZXgpCit7CisgICAgZG9jdW1lbnQuYm9k
eS5pbm5lckhUTUwgPSB0ZXN0Q29udGVudDsKKyAgICB2YXIgZWRpdG9yID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RleHRJbmRlbnRUZXN0Jyk7CisgICAgZWRpdG9yLmZvY3VzKCk7CisKKyAg
ICB2YXIgY2FyZXRSZWN0ID0gdGV4dElucHV0Q29udHJvbGxlci5maXJzdFJlY3RGb3JDaGFyYWN0
ZXJSYW5nZSgwLCAwKTsKKyAgICB2YXIgY2FyZXRYUG9zaXRpb25fd2l0aG91dFRleHRSZW5kZXIg
PSBjYXJldFJlY3RbMF07CisKKyAgICBlZGl0b3Iuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgMCk7Cisg
ICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFRleHQnLCBmYWxzZSwgJ2EnKTsKKworICAg
IGNhcmV0UmVjdCA9IHRleHRJbnB1dENvbnRyb2xsZXIuZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFu
Z2UoY2hhcmFjdGVySW5kZXgsIDApOworICAgIHZhciBjYXJldFhQb3NpdGlvbl93aXRoVGV4dFJl
bmRlciA9IGNhcmV0UmVjdFswXTsKKworICAgIGlmIChjYXJldFhQb3NpdGlvbl93aXRob3V0VGV4
dFJlbmRlciA9PSBjYXJldFhQb3NpdGlvbl93aXRoVGV4dFJlbmRlcikKKyAgICAgICAgcmV0dXJu
ICJTdWNjZXNzLiBUaGUgY2FyZXQncyB4IHBvc2l0aW9ucyBvZiBlbXB0eSZub25lbXB0eSBpbnB1
dCBmaWVsZCB3ZXJlIHRoZSBzYW1lLlxuIjsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiAiRmFp
bHVyZS4gVGhlIGNhcmV0J3MgeCBwb3NpdGlvbiBvZiBlbXB0eSBpbnB1dCBmaWVsZCB3YXMgIiAr
IGNhcmV0WFBvc2l0aW9uX3dpdGhvdXRUZXh0UmVuZGVyICsgIiwgc2hvdWxkIGhhdmUgYmVlbiAi
ICsgY2FyZXRYUG9zaXRpb25fd2l0aFRleHRSZW5kZXIgKyAiLlxuIjsgCit9CisKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKwordmFyIG91dHB1dCA9ICIiOworb3V0cHV0ICs9IHRlc3RUZXh0SW5k
ZW50KCI8aW5wdXQgaWQ9J3RleHRJbmRlbnRUZXN0JyB0eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1p
bmRlbnQ6MzBweDsnPjwvaW5wdXQ+IiwgMCk7CitvdXRwdXQgKz0gdGVzdFRleHRJbmRlbnQoIjxp
bnB1dCBpZD0ndGV4dEluZGVudFRlc3QnIHR5cGU9J3RleHQnIHN0eWxlPSd0ZXh0LWluZGVudDot
MzBweDsnPiIsIDApOworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50KCI8aW5wdXQgaWQ9J3RleHRJ
bmRlbnRUZXN0JyB0eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1pbmRlbnQ6MzBweDt0ZXh0LWFsaWdu
OmxlZnQnPiIsIDApOworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50KCI8aW5wdXQgaWQ9J3RleHRJ
bmRlbnRUZXN0JyB0eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1pbmRlbnQ6MzBweDt0ZXh0LWFsaWdu
OnJpZ2h0Jz4iLCAxKTsKK291dHB1dCArPSB0ZXN0VGV4dEluZGVudCgiPGlucHV0IGlkPSd0ZXh0
SW5kZW50VGVzdCcgdHlwZT0ndGV4dCcgc3R5bGU9J3RleHQtaW5kZW50OjMwcHg7ZGlyZWN0aW9u
OnJ0bDsnPiIsIDApOworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50KCI8aW5wdXQgaWQ9J3RleHRJ
bmRlbnRUZXN0JyB0eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1pbmRlbnQ6MzBweDtkaXJlY3Rpb246
cnRsO3RleHQtYWxpZ246cmlnaHQ7Jz4iLCAwKTsKK2RvY3VtZW50LmJvZHkuaW5uZXJUZXh0ID0g
b3V0cHV0OworPC9zY3JpcHQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137347</attachid>
            <date>2012-04-16 07:33:49 -0700</date>
            <delta_ts>2012-04-17 13:43:35 -0700</delta_ts>
            <desc>add missing test cases</desc>
            <filename>82688v2.patch</filename>
            <type>text/plain</type>
            <size>7243</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDI1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTE2ICBZaSBTaGVu
ICA8eWkuNC5zaGVuQG5va2lhLmNvbT4KKworICAgICAgICBDYXJldCBpcyBub3QgcmVuZGVyZWQg
cHJvcGVybHkgaW5zaWRlIGFuIGlucHV0IGVsZW1lbnQgd2l0aCB0ZXh0LWluZGVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI2ODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgYW4gZW1wdHkgaW5w
dXQgZWxlbWVudCwgdGhlcmUgaXMgbm8gUmVuZGVyVGV4dC4gSW5zdGVhZCwgUmVuZGVyQmxvY2s6
OmxvY2FsQ2FyZXRSZWN0IHByb3ZpZGVzCisgICAgICAgIHRoZSBjYXJldCBwb3NpdGlvbiBmb3Ig
cmVuZGVyaW5nIHRoZSBjYXJldCBpbiB0aGUgZW1wdHkgaW5wdXQgZWxlbWVudC4gVG8gZ2V0IGNv
cnJlY3QgY2FyZXQgcmVjdCwKKyAgICAgICAgdGV4dEluZGVudE9mZnNldCgpIHNob3VsZCBiZSB1
c2VkIHRvIGFkanVzdCB0aGUgY2FyZXQncyBwb3NpdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0
aW5nL3N0eWxlL3RleHQtaW5kZW50Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9jYWxDYXJldFJlY3Qp
OgorCiAyMDEyLTA0LTE2ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KIAog
ICAgICAgICBbUXRdW1dLMl0gRml4ZWQgZWxlbWVudHMgcG9zaXRpb24gaXMgd3JvbmcgYWZ0ZXIg
em9vbWluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAko
cmV2aXNpb24gMTE0MjQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQ3NiwxNCArNjQ3NiwyMyBAQCBMYXlvdXRSZWN0IFJl
bmRlckJsb2NrOjpsb2NhbENhcmV0UmVjdChJCiAKICAgICBzd2l0Y2ggKGFsaWdubWVudCkgewog
ICAgICAgICBjYXNlIGFsaWduTGVmdDoKKyAgICAgICAgICAgIGlmIChjdXJyZW50U3R5bGUtPmlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKKyAgICAgICAgICAgICAgICB4ICs9IHRleHRJbmRlbnRP
ZmZzZXQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIGFsaWduQ2VudGVyOgog
ICAgICAgICAgICAgeCA9ICh4ICsgdyAtIChib3JkZXJSaWdodCgpICsgcGFkZGluZ1JpZ2h0KCkp
KSAvIDI7CisgICAgICAgICAgICBpZiAoY3VycmVudFN0eWxlLT5pc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKCkpCisgICAgICAgICAgICAgICAgeCArPSB0ZXh0SW5kZW50T2Zmc2V0KCkgLyAyOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHggLT0gdGV4dEluZGVudE9mZnNldCgpIC8g
MjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIGFsaWduUmlnaHQ6CiAgICAgICAg
ICAgICB4ID0gdyAtIChib3JkZXJSaWdodCgpICsgcGFkZGluZ1JpZ2h0KCkpIC0gY2FyZXRXaWR0
aDsKKyAgICAgICAgICAgIGlmICghY3VycmVudFN0eWxlLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9u
KCkpCisgICAgICAgICAgICAgICAgeCAtPSB0ZXh0SW5kZW50T2Zmc2V0KCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICB9CisgICAgeCA9IG1pbih4LCB3IC0gKGJvcmRlclJpZ2h0KCkgKyBwYWRk
aW5nUmlnaHQoKSkgLSBjYXJldFdpZHRoKTsKIAogICAgIGlmIChleHRyYVdpZHRoVG9FbmRPZkxp
bmUpIHsKICAgICAgICAgaWYgKGlzUmVuZGVyQmxvY2soKSkgewpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTE0MjUxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTItMDQtMTYgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9raWEuY29tPgorCisg
ICAgICAgIENhcmV0IGlzIG5vdCByZW5kZXJlZCBwcm9wZXJseSBpbnNpZGUgYW4gaW5wdXQgZWxl
bWVudCB3aXRoIHRleHQtaW5kZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MjY4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZvciBhbiBlbXB0eSBpbnB1dCBlbGVtZW50LCB0aGVyZSBpcyBubyBSZW5k
ZXJUZXh0LiBJbnN0ZWFkLCBSZW5kZXJCbG9jazo6bG9jYWxDYXJldFJlY3QgcHJvdmlkZXMKKyAg
ICAgICAgdGhlIGNhcmV0IHBvc2l0aW9uIGZvciByZW5kZXJpbmcgdGhlIGNhcmV0IGluIHRoZSBl
bXB0eSBpbnB1dCBlbGVtZW50LiBUbyBnZXQgY29ycmVjdCBjYXJldCByZWN0LAorICAgICAgICB0
ZXh0SW5kZW50T2Zmc2V0KCkgc2hvdWxkIGJlIHVzZWQgdG8gYWRqdXN0IHRoZSBjYXJldCdzIHBv
c2l0aW9uLgorCisgICAgICAgICogZWRpdGluZy9zdHlsZS90ZXh0LWluZGVudC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvdGV4dC1pbmRlbnQuaHRtbDogQWRk
ZWQuCisKIDIwMTItMDQtMTYgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVu
aUBsaW51eC5pbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gW0RSVF0gRmVlZGluZyBrZXkgZXZl
bnRzIHdpdGggaW52YWxpZCBrZXlOYW1lCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxl
L3RleHQtaW5kZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3N0eWxlL3RleHQtaW5kZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc3R5bGUvdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDkgQEAKK1N1Y2Nlc3MuIFRoZSBjYXJldCdzIHggcG9zaXRpb25zIG9mIGVt
cHR5Jm5vbmVtcHR5IGlucHV0IGZpZWxkIHdlcmUgdGhlIHNhbWUuCitTdWNjZXNzLiBUaGUgY2Fy
ZXQncyB4IHBvc2l0aW9ucyBvZiBlbXB0eSZub25lbXB0eSBpbnB1dCBmaWVsZCB3ZXJlIHRoZSBz
YW1lLgorU3VjY2Vzcy4gVGhlIGNhcmV0J3MgeCBwb3NpdGlvbnMgb2YgZW1wdHkmbm9uZW1wdHkg
aW5wdXQgZmllbGQgd2VyZSB0aGUgc2FtZS4KK1N1Y2Nlc3MuIFRoZSBjYXJldCdzIHggcG9zaXRp
b25zIG9mIGVtcHR5Jm5vbmVtcHR5IGlucHV0IGZpZWxkIHdlcmUgdGhlIHNhbWUuCitTdWNjZXNz
LiBUaGUgY2FyZXQncyB4IHBvc2l0aW9ucyBvZiBlbXB0eSZub25lbXB0eSBpbnB1dCBmaWVsZCB3
ZXJlIHRoZSBzYW1lLgorU3VjY2Vzcy4gVGhlIGNhcmV0J3MgeCBwb3NpdGlvbnMgb2YgZW1wdHkm
bm9uZW1wdHkgaW5wdXQgZmllbGQgd2VyZSB0aGUgc2FtZS4KK1N1Y2Nlc3MuIFRoZSBjYXJldCdz
IHggcG9zaXRpb25zIHdhcyBzZXQgdG8gZGVzaXJlZCBwb3NpdGlvbiB3aGVuIHRoZSB0ZXh0LWFs
aWduIGlzIGNlbnRlci4KK1N1Y2Nlc3MuIFRoZSBjYXJldCdzIHggcG9zaXRpb25zIHdhcyBzZXQg
dG8gZGVzaXJlZCBwb3NpdGlvbiB3aGVuIHRoZSB0ZXh0LWFsaWduIGlzIGNlbnRlci4KKwpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90ZXh0LWluZGVudC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdGV4dC1pbmRlbnQuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdGV4dC1pbmRlbnQuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdFRleHRJbmRl
bnQodGVzdENvbnRlbnQsIGNoYXJhY3RlckluZGV4KQoreworICAgIGRvY3VtZW50LmJvZHkuaW5u
ZXJIVE1MID0gdGVzdENvbnRlbnQ7CisgICAgdmFyIGVkaXRvciA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXh0SW5kZW50VGVzdCcpOworICAgIGVkaXRvci5mb2N1cygpOworCisgICAgdmFy
IGNhcmV0UmVjdCA9IHRleHRJbnB1dENvbnRyb2xsZXIuZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFu
Z2UoMCwgMCk7CisgICAgdmFyIGNhcmV0WFBvc2l0aW9uX3dpdGhvdXRUZXh0UmVuZGVyID0gY2Fy
ZXRSZWN0WzBdOworCisgICAgZWRpdG9yLnNldFNlbGVjdGlvblJhbmdlKDAsIDApOworICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCdJbnNlcnRUZXh0JywgZmFsc2UsICdhJyk7CisKKyAgICBjYXJl
dFJlY3QgPSB0ZXh0SW5wdXRDb250cm9sbGVyLmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKGNo
YXJhY3RlckluZGV4LCAwKTsKKyAgICB2YXIgY2FyZXRYUG9zaXRpb25fd2l0aFRleHRSZW5kZXIg
PSBjYXJldFJlY3RbMF07CisgICAgCisgICAgaWYgKGNhcmV0WFBvc2l0aW9uX3dpdGhvdXRUZXh0
UmVuZGVyID09IGNhcmV0WFBvc2l0aW9uX3dpdGhUZXh0UmVuZGVyKQorICAgICAgICByZXR1cm4g
IlN1Y2Nlc3MuIFRoZSBjYXJldCdzIHggcG9zaXRpb25zIG9mIGVtcHR5Jm5vbmVtcHR5IGlucHV0
IGZpZWxkIHdlcmUgdGhlIHNhbWUuXG4iOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuICJGYWls
dXJlLiBUaGUgY2FyZXQncyB4IHBvc2l0aW9uIG9mIGVtcHR5IGlucHV0IGZpZWxkIHdhcyAiICsg
Y2FyZXRYUG9zaXRpb25fd2l0aG91dFRleHRSZW5kZXIgKyAiLCBzaG91bGQgaGF2ZSBiZWVuICIg
KyBjYXJldFhQb3NpdGlvbl93aXRoVGV4dFJlbmRlciArICIuXG4iOyAKK30KKworZnVuY3Rpb24g
dGVzdFRleHRJbmRlbnRXaGVuVGV4dEFsaWduc1RvQ2VudGVyKHRleHRJbmRlbnQpCit7CisgICAg
ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiPGlucHV0IGlkPSd0ZXh0SW5kZW50VGVzdCcgdHlw
ZT0ndGV4dCcgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyOyc+IjsKKyAgICB2YXIgZWRpdG9yID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRJbmRlbnRUZXN0Jyk7CisgICAgZWRpdG9yLmZv
Y3VzKCk7CisKKyAgICB2YXIgY2FyZXRSZWN0ID0gdGV4dElucHV0Q29udHJvbGxlci5maXJzdFJl
Y3RGb3JDaGFyYWN0ZXJSYW5nZSgwLCAwKTsKKyAgICB2YXIgY2FyZXRYUG9zaXRpb25fd2l0aG91
dFRleHRJbmRlbnQgPSBjYXJldFJlY3RbMF07CisKKyAgICBlZGl0b3IuYmx1cigpOworICAgIGVk
aXRvci5zdHlsZS50ZXh0SW5kZW50ID0gdGV4dEluZGVudCArICJweCI7CisgICAgZWRpdG9yLmZv
Y3VzKCk7CisKKyAgICBjYXJldFJlY3QgPSB0ZXh0SW5wdXRDb250cm9sbGVyLmZpcnN0UmVjdEZv
ckNoYXJhY3RlclJhbmdlKDAsIDApOworICAgIHZhciBjYXJldFhQb3NpdGlvbl93aXRoVGV4dElu
ZGVudCA9IGNhcmV0UmVjdFswXTsKKworICAgIHZhciBkZXNpcmVkQ2FyZXRYUG9zaXRpb24gPSBj
YXJldFhQb3NpdGlvbl93aXRob3V0VGV4dEluZGVudCArIHRleHRJbmRlbnQgLyAyOworICAgIGlm
IChkZXNpcmVkQ2FyZXRYUG9zaXRpb24gPT0gY2FyZXRYUG9zaXRpb25fd2l0aFRleHRJbmRlbnQp
CisgICAgICAgIHJldHVybiAiU3VjY2Vzcy4gVGhlIGNhcmV0J3MgeCBwb3NpdGlvbnMgd2FzIHNl
dCB0byBkZXNpcmVkIHBvc2l0aW9uIHdoZW4gdGhlIHRleHQtYWxpZ24gaXMgY2VudGVyLlxuIjsK
KyAgICBlbHNlCisgICAgICAgIHJldHVybiAiRmFpbHVyZS4gVGhlIGNhcmV0J3MgeCBwb3NpdGlv
biBvZiBpbnB1dCBmaWVsZCB3YXMgIiArIGNhcmV0WFBvc2l0aW9uX3dpdGhUZXh0SW5kZW50ICsg
Iiwgc2hvdWxkIGhhdmUgYmVlbiAiICsgZGVzaXJlZENhcmV0WFBvc2l0aW9uICsgIi5cbiI7Cit9
CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwordmFyIG91dHB1dCA9ICIiOworb3V0cHV0ICs9
IHRlc3RUZXh0SW5kZW50KCI8aW5wdXQgaWQ9J3RleHRJbmRlbnRUZXN0JyB0eXBlPSd0ZXh0JyBz
dHlsZT0ndGV4dC1pbmRlbnQ6MzBweDsnPjwvaW5wdXQ+IiwgMCk7CitvdXRwdXQgKz0gdGVzdFRl
eHRJbmRlbnQoIjxpbnB1dCBpZD0ndGV4dEluZGVudFRlc3QnIHR5cGU9J3RleHQnIHN0eWxlPSd0
ZXh0LWluZGVudDotMzBweDsnPiIsIDApOworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50KCI8aW5w
dXQgaWQ9J3RleHRJbmRlbnRUZXN0JyB0eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1pbmRlbnQ6MzBw
eDt0ZXh0LWFsaWduOmxlZnQnPiIsIDApOworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50KCI8aW5w
dXQgaWQ9J3RleHRJbmRlbnRUZXN0JyB0eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1pbmRlbnQ6MzBw
eDt0ZXh0LWFsaWduOnJpZ2h0Jz4iLCAxKTsKK291dHB1dCArPSB0ZXN0VGV4dEluZGVudCgiPGlu
cHV0IGlkPSd0ZXh0SW5kZW50VGVzdCcgdHlwZT0ndGV4dCcgc3R5bGU9J3RleHQtaW5kZW50OjMw
cHg7ZGlyZWN0aW9uOnJ0bDsnPiIsIDApOworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50KCI8aW5w
dXQgaWQ9J3RleHRJbmRlbnRUZXN0JyB0eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1pbmRlbnQ6MzBw
eDtkaXJlY3Rpb246cnRsO3RleHQtYWxpZ246cmlnaHQ7Jz4iLCAwKTsKK291dHB1dCArPSB0ZXN0
VGV4dEluZGVudFdoZW5UZXh0QWxpZ25zVG9DZW50ZXIoMzApOworb3V0cHV0ICs9IHRlc3RUZXh0
SW5kZW50V2hlblRleHRBbGlnbnNUb0NlbnRlcigtMzApOworZG9jdW1lbnQuYm9keS5pbm5lclRl
eHQgPSBvdXRwdXQ7Cis8L3NjcmlwdD4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137597</attachid>
            <date>2012-04-17 13:43:35 -0700</date>
            <delta_ts>2012-04-17 16:10:38 -0700</delta_ts>
            <desc>updated patch based on Levi&apos;s review</desc>
            <filename>82688v3.patch</filename>
            <type>text/plain</type>
            <size>7219</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDQyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTE3ICBZaSBTaGVu
ICA8eWkuNC5zaGVuQG5va2lhLmNvbT4KKworICAgICAgICBDYXJldCBpcyBub3QgcmVuZGVyZWQg
cHJvcGVybHkgaW5zaWRlIGFuIGlucHV0IGVsZW1lbnQgd2l0aCB0ZXh0LWluZGVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI2ODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgYW4gZW1wdHkgaW5w
dXQgZWxlbWVudCwgdGhlcmUgaXMgbm8gUmVuZGVyVGV4dC4gSW5zdGVhZCwgUmVuZGVyQmxvY2s6
OmxvY2FsQ2FyZXRSZWN0IHByb3ZpZGVzCisgICAgICAgIHRoZSBjYXJldCBwb3NpdGlvbiBmb3Ig
cmVuZGVyaW5nIHRoZSBjYXJldCBpbiB0aGUgZW1wdHkgaW5wdXQgZWxlbWVudC4gVG8gZ2V0IGNv
cnJlY3QgY2FyZXQgcmVjdCwKKyAgICAgICAgdGV4dEluZGVudE9mZnNldCgpIHNob3VsZCBiZSB1
c2VkIHRvIGFkanVzdCB0aGUgY2FyZXQncyBwb3NpdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0
aW5nL3N0eWxlL3RleHQtaW5kZW50Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9jYWxDYXJldFJlY3Qp
OgorCiAyMDEyLTA0LTE3ICBCZW4gTXVyZG9jaCAgPGJlbm1AZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBgbG9jYWxTdG9yYWdlLnNldEl0ZW1gIGNhbiBvdmVyd3JpdGUgYGxvY2FsU3RvcmFnZWAgbWV0
aG9kcwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZp
c2lvbiAxMTQ0MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NDgyLDE0ICs2NDgyLDIzIEBAIExheW91dFJlY3QgUmVuZGVy
QmxvY2s6OmxvY2FsQ2FyZXRSZWN0KEkKIAogICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7CiAgICAg
ICAgIGNhc2UgYWxpZ25MZWZ0OgorICAgICAgICAgICAgaWYgKGN1cnJlbnRTdHlsZS0+aXNMZWZ0
VG9SaWdodERpcmVjdGlvbigpKQorICAgICAgICAgICAgICAgIHggKz0gdGV4dEluZGVudE9mZnNl
dCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgYWxpZ25DZW50ZXI6CiAgICAg
ICAgICAgICB4ID0gKHggKyB3IC0gKGJvcmRlclJpZ2h0KCkgKyBwYWRkaW5nUmlnaHQoKSkpIC8g
MjsKKyAgICAgICAgICAgIGlmIChjdXJyZW50U3R5bGUtPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSkKKyAgICAgICAgICAgICAgICB4ICs9IHRleHRJbmRlbnRPZmZzZXQoKSAvIDI7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgeCAtPSB0ZXh0SW5kZW50T2Zmc2V0KCkgLyAyOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgYWxpZ25SaWdodDoKICAgICAgICAgICAg
IHggPSB3IC0gKGJvcmRlclJpZ2h0KCkgKyBwYWRkaW5nUmlnaHQoKSkgLSBjYXJldFdpZHRoOwor
ICAgICAgICAgICAgaWYgKCFjdXJyZW50U3R5bGUtPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkK
KyAgICAgICAgICAgICAgICB4IC09IHRleHRJbmRlbnRPZmZzZXQoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgIH0KKyAgICB4ID0gbWluKHgsIHcgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1Jp
Z2h0KCkgLSBjYXJldFdpZHRoKTsKIAogICAgIGlmIChleHRyYVdpZHRoVG9FbmRPZkxpbmUpIHsK
ICAgICAgICAgaWYgKGlzUmVuZGVyQmxvY2soKSkgewpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTE0NDI3
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTItMDQtMTcgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9raWEuY29tPgorCisgICAgICAg
IENhcmV0IGlzIG5vdCByZW5kZXJlZCBwcm9wZXJseSBpbnNpZGUgYW4gaW5wdXQgZWxlbWVudCB3
aXRoIHRleHQtaW5kZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MjY4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZvciBhbiBlbXB0eSBpbnB1dCBlbGVtZW50LCB0aGVyZSBpcyBubyBSZW5kZXJUZXh0
LiBJbnN0ZWFkLCBSZW5kZXJCbG9jazo6bG9jYWxDYXJldFJlY3QgcHJvdmlkZXMKKyAgICAgICAg
dGhlIGNhcmV0IHBvc2l0aW9uIGZvciByZW5kZXJpbmcgdGhlIGNhcmV0IGluIHRoZSBlbXB0eSBp
bnB1dCBlbGVtZW50LiBUbyBnZXQgY29ycmVjdCBjYXJldCByZWN0LAorICAgICAgICB0ZXh0SW5k
ZW50T2Zmc2V0KCkgc2hvdWxkIGJlIHVzZWQgdG8gYWRqdXN0IHRoZSBjYXJldCdzIHBvc2l0aW9u
LgorCisgICAgICAgICogZWRpdGluZy9zdHlsZS90ZXh0LWluZGVudC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvdGV4dC1pbmRlbnQuaHRtbDogQWRkZWQuCisK
IDIwMTItMDQtMTcgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29tPgogCiAgICAgICAgIGBs
b2NhbFN0b3JhZ2Uuc2V0SXRlbWAgY2FuIG92ZXJ3cml0ZSBgbG9jYWxTdG9yYWdlYCBtZXRob2Rz
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RleHQtaW5kZW50LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3RleHQtaW5kZW50LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdGV4
dC1pbmRlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK1N1Y2Nl
c3MuIFRoZSBjYXJldCdzIHggcG9zaXRpb25zIG9mIGVtcHR5Jm5vbmVtcHR5IGlucHV0IGZpZWxk
IHdlcmUgdGhlIHNhbWUuCitTdWNjZXNzLiBUaGUgY2FyZXQncyB4IHBvc2l0aW9ucyBvZiBlbXB0
eSZub25lbXB0eSBpbnB1dCBmaWVsZCB3ZXJlIHRoZSBzYW1lLgorU3VjY2Vzcy4gVGhlIGNhcmV0
J3MgeCBwb3NpdGlvbnMgb2YgZW1wdHkmbm9uZW1wdHkgaW5wdXQgZmllbGQgd2VyZSB0aGUgc2Ft
ZS4KK1N1Y2Nlc3MuIFRoZSBjYXJldCdzIHggcG9zaXRpb25zIG9mIGVtcHR5Jm5vbmVtcHR5IGlu
cHV0IGZpZWxkIHdlcmUgdGhlIHNhbWUuCitTdWNjZXNzLiBUaGUgY2FyZXQncyB4IHBvc2l0aW9u
cyBvZiBlbXB0eSZub25lbXB0eSBpbnB1dCBmaWVsZCB3ZXJlIHRoZSBzYW1lLgorU3VjY2Vzcy4g
VGhlIGNhcmV0J3MgeCBwb3NpdGlvbnMgb2YgZW1wdHkmbm9uZW1wdHkgaW5wdXQgZmllbGQgd2Vy
ZSB0aGUgc2FtZS4KK1N1Y2Nlc3MuIFRoZSBjYXJldCdzIHggcG9zaXRpb25zIHdhcyBzZXQgdG8g
ZGVzaXJlZCBwb3NpdGlvbiB3aGVuIHRoZSB0ZXh0LWFsaWduIGlzIGNlbnRlci4KK1N1Y2Nlc3Mu
IFRoZSBjYXJldCdzIHggcG9zaXRpb25zIHdhcyBzZXQgdG8gZGVzaXJlZCBwb3NpdGlvbiB3aGVu
IHRoZSB0ZXh0LWFsaWduIGlzIGNlbnRlci4KKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9z
dHlsZS90ZXh0LWluZGVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcv
c3R5bGUvdGV4dC1pbmRlbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvdGV4dC1pbmRlbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+
Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdFRleHRJbmRlbnQodGVzdENvbnRlbnQsIGNoYXJhY3Rl
ckluZGV4KQoreworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gdGVzdENvbnRlbnQ7Cisg
ICAgdmFyIGVkaXRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0SW5kZW50VGVzdCcp
OworICAgIGVkaXRvci5mb2N1cygpOworCisgICAgdmFyIGNhcmV0UmVjdCA9IHRleHRJbnB1dENv
bnRyb2xsZXIuZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoMCwgMCk7CisgICAgdmFyIGNhcmV0
WFBvc2l0aW9uX3dpdGhvdXRUZXh0UmVuZGVyID0gY2FyZXRSZWN0WzBdOworCisgICAgZWRpdG9y
LnNldFNlbGVjdGlvblJhbmdlKDAsIDApOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdJbnNl
cnRUZXh0JywgZmFsc2UsICdhJyk7CisKKyAgICBjYXJldFJlY3QgPSB0ZXh0SW5wdXRDb250cm9s
bGVyLmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKGNoYXJhY3RlckluZGV4LCAwKTsKKyAgICB2
YXIgY2FyZXRYUG9zaXRpb25fd2l0aFRleHRSZW5kZXIgPSBjYXJldFJlY3RbMF07CisgICAgCisg
ICAgaWYgKGNhcmV0WFBvc2l0aW9uX3dpdGhvdXRUZXh0UmVuZGVyID09IGNhcmV0WFBvc2l0aW9u
X3dpdGhUZXh0UmVuZGVyKQorICAgICAgICByZXR1cm4gIlN1Y2Nlc3MuIFRoZSBjYXJldCdzIHgg
cG9zaXRpb25zIG9mIGVtcHR5Jm5vbmVtcHR5IGlucHV0IGZpZWxkIHdlcmUgdGhlIHNhbWUuXG4i
OworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuICJGYWlsdXJlLiBUaGUgY2FyZXQncyB4IHBvc2l0
aW9uIG9mIGVtcHR5IGlucHV0IGZpZWxkIHdhcyAiICsgY2FyZXRYUG9zaXRpb25fd2l0aG91dFRl
eHRSZW5kZXIgKyAiLCBzaG91bGQgaGF2ZSBiZWVuICIgKyBjYXJldFhQb3NpdGlvbl93aXRoVGV4
dFJlbmRlciArICIuXG4iOyAKK30KKworZnVuY3Rpb24gdGVzdFRleHRJbmRlbnRXaGVuVGV4dEFs
aWduc1RvQ2VudGVyKHRleHRJbmRlbnQpCit7CisgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwg
PSAiPGlucHV0IGlkPSd0ZXh0SW5kZW50VGVzdCcgdHlwZT0ndGV4dCcgc3R5bGU9J3RleHQtYWxp
Z246Y2VudGVyOyc+IjsKKyAgICB2YXIgZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RleHRJbmRlbnRUZXN0Jyk7CisgICAgZWRpdG9yLmZvY3VzKCk7CisKKyAgICB2YXIgY2FyZXRS
ZWN0ID0gdGV4dElucHV0Q29udHJvbGxlci5maXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSgwLCAw
KTsKKyAgICB2YXIgY2FyZXRYUG9zaXRpb25fd2l0aG91dFRleHRJbmRlbnQgPSBjYXJldFJlY3Rb
MF07CisKKyAgICBlZGl0b3IuYmx1cigpOworICAgIGVkaXRvci5zdHlsZS50ZXh0SW5kZW50ID0g
dGV4dEluZGVudCArICJweCI7CisgICAgZWRpdG9yLmZvY3VzKCk7CisKKyAgICBjYXJldFJlY3Qg
PSB0ZXh0SW5wdXRDb250cm9sbGVyLmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKDAsIDApOwor
ICAgIHZhciBjYXJldFhQb3NpdGlvbl93aXRoVGV4dEluZGVudCA9IGNhcmV0UmVjdFswXTsKKwor
ICAgIHZhciBkZXNpcmVkQ2FyZXRYUG9zaXRpb24gPSBjYXJldFhQb3NpdGlvbl93aXRob3V0VGV4
dEluZGVudCArIHRleHRJbmRlbnQgLyAyOworICAgIGlmIChkZXNpcmVkQ2FyZXRYUG9zaXRpb24g
PT0gY2FyZXRYUG9zaXRpb25fd2l0aFRleHRJbmRlbnQpCisgICAgICAgIHJldHVybiAiU3VjY2Vz
cy4gVGhlIGNhcmV0J3MgeCBwb3NpdGlvbnMgd2FzIHNldCB0byBkZXNpcmVkIHBvc2l0aW9uIHdo
ZW4gdGhlIHRleHQtYWxpZ24gaXMgY2VudGVyLlxuIjsKKyAgICBlbHNlCisgICAgICAgIHJldHVy
biAiRmFpbHVyZS4gVGhlIGNhcmV0J3MgeCBwb3NpdGlvbiBvZiBpbnB1dCBmaWVsZCB3YXMgIiAr
IGNhcmV0WFBvc2l0aW9uX3dpdGhUZXh0SW5kZW50ICsgIiwgc2hvdWxkIGhhdmUgYmVlbiAiICsg
ZGVzaXJlZENhcmV0WFBvc2l0aW9uICsgIi5cbiI7Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKwordmFyIG91dHB1dCA9ICIiOworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50KCI8aW5wdXQg
aWQ9J3RleHRJbmRlbnRUZXN0JyB0eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1pbmRlbnQ6MzBweDsn
PjwvaW5wdXQ+IiwgMCk7CitvdXRwdXQgKz0gdGVzdFRleHRJbmRlbnQoIjxpbnB1dCBpZD0ndGV4
dEluZGVudFRlc3QnIHR5cGU9J3RleHQnIHN0eWxlPSd0ZXh0LWluZGVudDotMzBweDsnPiIsIDAp
Oworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50KCI8aW5wdXQgaWQ9J3RleHRJbmRlbnRUZXN0JyB0
eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1pbmRlbnQ6MzBweDt0ZXh0LWFsaWduOmxlZnQnPiIsIDAp
Oworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50KCI8aW5wdXQgaWQ9J3RleHRJbmRlbnRUZXN0JyB0
eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1pbmRlbnQ6MzBweDt0ZXh0LWFsaWduOnJpZ2h0Jz4iLCAx
KTsKK291dHB1dCArPSB0ZXN0VGV4dEluZGVudCgiPGlucHV0IGlkPSd0ZXh0SW5kZW50VGVzdCcg
dHlwZT0ndGV4dCcgc3R5bGU9J3RleHQtaW5kZW50OjMwcHg7ZGlyZWN0aW9uOnJ0bDsnPiIsIDAp
Oworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50KCI8aW5wdXQgaWQ9J3RleHRJbmRlbnRUZXN0JyB0
eXBlPSd0ZXh0JyBzdHlsZT0ndGV4dC1pbmRlbnQ6MzBweDtkaXJlY3Rpb246cnRsO3RleHQtYWxp
Z246cmlnaHQ7Jz4iLCAwKTsKK291dHB1dCArPSB0ZXN0VGV4dEluZGVudFdoZW5UZXh0QWxpZ25z
VG9DZW50ZXIoMzApOworb3V0cHV0ICs9IHRlc3RUZXh0SW5kZW50V2hlblRleHRBbGlnbnNUb0Nl
bnRlcigtMzApOworZG9jdW1lbnQuYm9keS5pbm5lclRleHQgPSBvdXRwdXQ7Cis8L3NjcmlwdD4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>