<?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>25539</bug_id>
          
          <creation_ts>2009-05-04 00:07:02 -0700</creation_ts>
          <short_desc>spellcheck=&apos;&apos; should be the same as spellcheck=&quot;true&quot;</short_desc>
          <delta_ts>2010-10-26 18:57:12 -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>Mac</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>14552</dependson>
    
    <dependson>48314</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>119787</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-05-04 00:07:02 -0700</bug_when>
    <thetext>http://www.whatwg.org/specs/web-apps/current-work/#attr-spellcheck

&quot;The spellcheck attribute is an enumerated attribute whose keywords are the empty string, true and false. The empty string and the true keyword map to the true state. The false keyword maps to the false state. In addition, there is a third state, the inherit state, which is the missing value default (and the invalid value default).&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297836</commentid>
    <comment_count>1</comment_count>
      <attachid>71527</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-21 22:49:26 -0700</bug_when>
    <thetext>Created attachment 71527
a repro

Attached a repro for someone&apos;s curiosity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297888</commentid>
    <comment_count>2</comment_count>
      <attachid>71543</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-22 03:28:11 -0700</bug_when>
    <thetext>Created attachment 71543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297898</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-22 03:58:01 -0700</bug_when>
    <thetext>The patch might apeear overly crafted, but it is also a starting point for Bug 25536
so I think it makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298040</commentid>
    <comment_count>4</comment_count>
      <attachid>71543</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-10-22 10:17:25 -0700</bug_when>
    <thetext>Comment on attachment 71543
Patch

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

&gt; WebCore/dom/Element.h:327
&gt; +    SpellcheckAttributeState spellcheckAttributeState() const;

Can this method be private?

&gt; WebCore/dom/Element.h:328
&gt; +    bool spellCheckingEnabled() const;

I would name this isSpellCheckingEnabled to match similar methods.

&gt; WebCore/editing/Editor.cpp:2551
&gt; +    const Element* focusedElement = node-&gt;isElementNode() ? toElement(node) : node-&gt;parentElement();

Is it possible that node-&gt;parentElement() is null, but node-&gt;parent()-&gt;parentElement() is true?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298690</commentid>
    <comment_count>5</comment_count>
      <attachid>71705</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-24 19:06:27 -0700</bug_when>
    <thetext>Created attachment 71705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298710</commentid>
    <comment_count>6</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-24 20:15:33 -0700</bug_when>
    <thetext>Hi Tony,
Thank you for taking a look!
I updated the patch.

(In reply to comment #4)
&gt; (From update of attachment 71543 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=71543&amp;action=review
&gt; 
&gt; &gt; WebCore/dom/Element.h:327
&gt; &gt; +    SpellcheckAttributeState spellcheckAttributeState() const;
&gt; 
&gt; Can this method be private?
Fixed.

&gt; 
&gt; &gt; WebCore/dom/Element.h:328
&gt; &gt; +    bool spellCheckingEnabled() const;
&gt; 
&gt; I would name this isSpellCheckingEnabled to match similar methods.
Renamed. I also renamed Editor::spellCheckingEnabledInFocusedNode as well.

&gt; 
&gt; &gt; WebCore/editing/Editor.cpp:2551
&gt; &gt; +    const Element* focusedElement = node-&gt;isElementNode() ? toElement(node) : node-&gt;parentElement();
&gt; 
&gt; Is it possible that node-&gt;parentElement() is null, but node-&gt;parent()-&gt;parentElement() is true?
I&apos;m sorry but I could not get the point.
My intention here is to ensure that we check against Element class because node might be Text.
And Text might be orphaned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298713</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-24 20:32:30 -0700</bug_when>
    <thetext>Attachment 71705 did not build on chromium:
Build output: http://queues.webkit.org/results/4609068</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298807</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-25 05:28:41 -0700</bug_when>
    <thetext>Attachment 71705 did not build on chromium:
Build output: http://queues.webkit.org/results/4704070</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298950</commentid>
    <comment_count>9</comment_count>
      <attachid>71705</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-10-25 10:34:05 -0700</bug_when>
    <thetext>Comment on attachment 71705
Patch

The cr-linux compile error looks real.  There are 2 calls to spellCheckingEnabledInFocusedNode() in WebKit/chromium.  Fix those, and r=me.

&gt; &gt; WebCore/editing/Editor.cpp:2551
&gt; &gt; +    const Element* focusedElement = node-&gt;isElementNode() ? toElement(node) : node-&gt;parentElement();
&gt; 
&gt; Is it possible that node-&gt;parentElement() is null, but node-&gt;parent()-&gt;parentElement() is true?
I&apos;m sorry but I could not get the point.
My intention here is to ensure that we check against Element class because node might be Text.
And Text might be orphaned.

The previous code looped over node-&gt;parent(), but the new code uses node-&gt;parentElement().  I was wondering if we were missing cases if parent() is not an element, but parent()-&gt;parentElement() is an element.  I don&apos;t think that&apos;s possible, so this seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299230</commentid>
    <comment_count>10</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-25 18:39:23 -0700</bug_when>
    <thetext>&gt; The previous code looped over node-&gt;parent(), but the new code uses node-&gt;parentElement().  I was wondering if we were missing cases if parent() is not an element, but parent()-&gt;parentElement() is an element.  I don&apos;t think that&apos;s possible, so this seems fine.
I got it! Thank you for explanation. 
According to Node.cpp, The XML spec allows EntityReference node but WebKit doesn&apos;t support it.

I&apos;ll land this after fixing chromium build break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299272</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-25 21:45:54 -0700</bug_when>
    <thetext>Committed r70512: &lt;http://trac.webkit.org/changeset/70512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299341</commentid>
    <comment_count>12</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-26 01:30:30 -0700</bug_when>
    <thetext>Reverted (Bug 48314.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299369</commentid>
    <comment_count>13</comment_count>
      <attachid>71858</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-26 03:44:37 -0700</bug_when>
    <thetext>Created attachment 71858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299371</commentid>
    <comment_count>14</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-26 03:46:10 -0700</bug_when>
    <thetext>&gt; Created an attachment (id=71858) [details]
&gt; Patch
Last patch missed a null check on Editor::isSpellCheckingEnabledInFocusedNode().
Added it, tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299512</commentid>
    <comment_count>15</comment_count>
      <attachid>71858</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-10-26 09:19:35 -0700</bug_when>
    <thetext>Comment on attachment 71858
Patch

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

Is it possible to add a layout test for the !node crash?

&gt; WebCore/editing/Editor.cpp:2552
&gt; +    if (!node)
&gt; +        return false;

Note that the previous code returned true if !node, but it doesn&apos;t seem to matter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299931</commentid>
    <comment_count>16</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-26 18:48:48 -0700</bug_when>
    <thetext>&gt; Is it possible to add a layout test for the !node crash?
This did crash some existing tests, that is why the patch was rolled out...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299933</commentid>
    <comment_count>17</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-26 18:57:12 -0700</bug_when>
    <thetext>Committed r70598: &lt;http://trac.webkit.org/changeset/70598&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>71527</attachid>
            <date>2010-10-21 22:49:26 -0700</date>
            <delta_ts>2010-10-21 22:49:26 -0700</delta_ts>
            <desc>a repro</desc>
            <filename>spellcheck.html</filename>
            <type>text/html</type>
            <size>1485</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgogIDx0aWx0ZT5zcGVsbGNoZWNrIGF0dHJpYnV0ZXM8L3RpdGxlPgo8L2hl
YWQ+Cjxib2R5PgogIDxoMj51bmRlciBzcGVsbGNoZWNrPSJ0cnVlIiBwYXJlbnQ8L2gyPgogIDxk
aXYgc3BlbGxjaGVjaz0idHJ1ZSI+CiAgICA8ZGl2PmF0dHJpYnV0ZSB3aXRoIG5vIHZhbHVlIChz
aG91bGQgZW5hYmxlKTogPHNwYW4gc3BlbGxjaGVjayBjb250ZW50RWRpdGFibGU9IiI+aGVsbG88
L3NwYW4+PC9kaXY+CiAgICA8ZGl2PnNwZWxsY2hlY2s9IiIgKHNob3VsZCBlbmFibGUpOiAgPHNw
YW4gc3BlbGxjaGVjaz0iIiBjb250ZW50RWRpdGFibGU9IiI+aGVsbG88L3NwYW4+PC9kaXY+CiAg
ICA8ZGl2PnNwZWxsY2hlY2s9InRydWUiIChzaG91bGQgZW5hYmxlKTogPHNwYW4gc3BlbGxjaGVj
az0idHJ1ZSIgY29udGVudEVkaXRhYmxlPSIiPmhlbGxvPC9zcGFuPjwvZGl2PgogICAgPGRpdj5z
cGVsbGNoZWNrPSJmYWxzZSIgKHNob3VsZCBkaXNhYmxlKTogPHNwYW4gc3BlbGxjaGVjaz0iZmFs
c2UiIGNvbnRlbnRFZGl0YWJsZT0iIj5oZWxsbzwvc3Bhbj48L2Rpdj4KICAgIDxkaXY+c3BlbGxj
aGVjaz0iZm9vIiAoc2hvdWxkIGluaGVyaXQ9ZW5hYmxlKTogPHNwYW4gc3BlbGxjaGVjaz0iZm9v
IiBjb250ZW50RWRpdGFibGU9IiI+aGVsbG88L3NwYW4+PC9kaXY+CiAgICA8ZGl2Pm5vIGF0dHJp
YnV0ZSAoc2hvdWxkIGluaGVyaXQ9ZW5hYmxlKTogPHNwYW4gY29udGVudEVkaXRhYmxlPSIiPmhl
bGxvPC9zcGFuPjwvZGl2PgogIDwvZGl2PgogIDxoMj51bmRlciBzcGVsbGNoZWNrPSJmYWxzZSIg
cGFyZW50PC9oMj4KICA8ZGl2IHNwZWxsY2hlY2s9ImZhbHNlIj4KICAgIDxkaXY+YXR0cmlidXRl
IHdpdGggbm8gdmFsdWUgKHNob3VsZCBlbmFibGUpOiA8c3BhbiBzcGVsbGNoZWNrIGNvbnRlbnRF
ZGl0YWJsZT0iIj5oZWxsbzwvc3Bhbj48L2Rpdj4KICAgIDxkaXY+c3BlbGxjaGVjaz0iIiAoc2hv
dWxkIGVuYWJsZSk6IDxzcGFuIHNwZWxsY2hlY2s9IiIgY29udGVudEVkaXRhYmxlPSIiPmhlbGxv
PC9zcGFuPjwvZGl2PgogICAgPGRpdj5zcGVsbGNoZWNrPSJ0cnVlIiAoc2hvdWxkIGVuYWJsZSk6
IDxzcGFuIHNwZWxsY2hlY2s9InRydWUiIGNvbnRlbnRFZGl0YWJsZT0iIj5oZWxsbzwvc3Bhbj48
L2Rpdj4KICAgIDxkaXY+c3BlbGxjaGVjaz0iZmFsc2UiIChzaG91bGQgZGlzYWJsZSk6IDxzcGFu
IHNwZWxsY2hlY2s9ImZhbHNlIiBjb250ZW50RWRpdGFibGU9IiI+aGVsbG88L3NwYW4+PC9kaXY+
CiAgICA8ZGl2PnNwZWxsY2hlY2s9ImZvbyIgKHNob3VsZCBpbmhlcml0PWRpc2FibGUpOiA8c3Bh
biBzcGVsbGNoZWNrPSJmb28iIGNvbnRlbnRFZGl0YWJsZT0iIj5oZWxsbzwvc3Bhbj48L2Rpdj4K
ICAgIDxkaXY+bm8gYXR0cmlidXRlIChzaG91bGQgaW5oZXJpdD1kaXNhYmxlKTogPHNwYW4gY29u
dGVudEVkaXRhYmxlPSIiPmhlbGxvPC9zcGFuPjwvZGl2PgogIDwvZGl2Pgo8L2JvZHk+CjwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71543</attachid>
            <date>2010-10-22 03:28:11 -0700</date>
            <delta_ts>2010-10-24 19:06:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-25539-20101022192809.patch</filename>
            <type>text/plain</type>
            <size>7802</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDQzZGJkYzQwMDg0YzZhMTQyNWMyNWVmMDRmN2RmMzViZTAzYTdjLi43MTExZmIw
ZDI3YTU2YTkyNDIyMjY1NjUwNmNmZDFjYzM4YjAzMWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMTAtMjIgIE1PUklUQSBIYWppbWUgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrPScnIHNo
b3VsZCBiZSB0aGUgc2FtZSBhcyBzcGVsbGNoZWNrPSJ0cnVlIgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MzkKKworICAgICAgICAqIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVk
aXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hdHRyaWJ1dGUuaHRtbDoKKwogMjAxMC0xMC0yMiAg
TU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKaW5kZXggZTkwZWM2MDAy
ODZmNThlNDNiYzMxNWEyN2I2ODA3MWJhM2M1MGVmMC4uNGZhMzMxZDE4NDA1NGVhMDJkNTFlMzI3
ZDcxMTQ2Yzg4ZmU3YzFjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTMsNyAr
MywxMyBAQCBUaGlzIHRlc3RzIGlmIHRoZSAic3BlbGxjaGVjayIgYXR0cmlidXRlIGlzIGltcGxl
bWVudGVkIGFzIHdyaXR0ZW4gaW4gaXRzIHNwZWNpZgogUEFTUzp0ZXN0MV8xCiBQQVNTOnRlc3Qx
XzIKIFBBU1M6dGVzdDFfMworUEFTUzp0ZXN0MV80CitQQVNTOnRlc3QxXzUKK1BBU1M6dGVzdDFf
NgogUEFTUzp0ZXN0Ml8xCiBQQVNTOnRlc3QyXzIKIFBBU1M6dGVzdDJfMworUEFTUzp0ZXN0Ml80
CitQQVNTOnRlc3QyXzUKK1BBU1M6dGVzdDJfNgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXR0cmlidXRlLmh0bWwKaW5kZXggNzAzNDhjNjAx
YzlhYzJjOTkxOWI1MGRjN2QwNzYzZThhMGYwODZhNC4uMGU1YTA3ZTgwNTI4ZjBhMzUxZGVkMjQy
Y2YyNjQxNWM3NmI2MDRlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1hdHRyaWJ1dGUuaHRtbApAQCAtMTAsMTEgKzEwLDE3IEBACiA8bGFi
ZWw+MS4xLjwvbGFiZWw+PGlucHV0IGlkPSJ0ZXN0MV8xIiB0eXBlPSJ0ZXh0Ij48L2lucHV0Pjxi
ci8+CiA8bGFiZWw+MS4yLjwvbGFiZWw+PGlucHV0IGlkPSJ0ZXN0MV8yIiB0eXBlPSJ0ZXh0IiBz
cGVsbGNoZWNrPSJ0cnVlIj48L2lucHV0Pjxici8+CiA8bGFiZWw+MS4zLjwvbGFiZWw+PGlucHV0
IGlkPSJ0ZXN0MV8zIiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNrPSJmYWxzZSI+PC9pbnB1dD48YnIv
PgorPGxhYmVsPjEuNC48L2xhYmVsPjxpbnB1dCBpZD0idGVzdDFfNCIgdHlwZT0idGV4dCIgc3Bl
bGxjaGVjaz0iSW52YWxpZFZhbHVlIj48L2lucHV0Pjxici8+Cis8bGFiZWw+MS41LjwvbGFiZWw+
PGlucHV0IGlkPSJ0ZXN0MV81IiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNrPjwvaW5wdXQ+PGJyLz4K
KzxsYWJlbD4xLjYuPC9sYWJlbD48aW5wdXQgaWQ9InRlc3QxXzYiIHR5cGU9InRleHQiPjwvaW5w
dXQ+PGJyLz4KIDwvZGl2PgogPGRpdiBzcGVsbGNoZWNrPSJmYWxzZSI+CiA8bGFiZWw+Mi4xLjwv
bGFiZWw+PGlucHV0IGlkPSJ0ZXN0Ml8xIiB0eXBlPSJ0ZXh0Ij48L2lucHV0Pjxici8+CiA8bGFi
ZWw+Mi4yLjwvbGFiZWw+PGlucHV0IGlkPSJ0ZXN0Ml8yIiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNr
PSJ0cnVlIj48L2lucHV0Pjxici8+CiA8bGFiZWw+Mi4zLjwvbGFiZWw+PGlucHV0IGlkPSJ0ZXN0
Ml8zIiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNrPSJmYWxzZSI+PC9pbnB1dD48YnIvPgorPGxhYmVs
PjIuNC48L2xhYmVsPjxpbnB1dCBpZD0idGVzdDJfNCIgdHlwZT0idGV4dCIgc3BlbGxjaGVjaz0i
SW52YWxpZFZhbHVlIj48L2lucHV0Pjxici8+Cis8bGFiZWw+Mi41LjwvbGFiZWw+PGlucHV0IGlk
PSJ0ZXN0Ml81IiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNrPjwvaW5wdXQ+PGJyLz4KKzxsYWJlbD4y
LjYuPC9sYWJlbD48aW5wdXQgaWQ9InRlc3QyXzYiIHR5cGU9InRleHQiPjwvaW5wdXQ+PGJyLz4K
IDwvZGl2PgogPC9kaXY+CiA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KQEAgLTM3LDkgKzQzLDE1
IEBAIGZ1bmN0aW9uIHRlc3RUeXBpbmdJbnZhbGlkV29yZChpZCwgc2hvdWxkQmVNYXJrZWQpIHsK
IHRlc3RUeXBpbmdJbnZhbGlkV29yZCgndGVzdDFfMScsIHRydWUpOwogdGVzdFR5cGluZ0ludmFs
aWRXb3JkKCd0ZXN0MV8yJywgdHJ1ZSk7CiB0ZXN0VHlwaW5nSW52YWxpZFdvcmQoJ3Rlc3QxXzMn
LCBmYWxzZSk7Cit0ZXN0VHlwaW5nSW52YWxpZFdvcmQoJ3Rlc3QxXzQnLCB0cnVlKTsKK3Rlc3RU
eXBpbmdJbnZhbGlkV29yZCgndGVzdDFfNScsIHRydWUpOwordGVzdFR5cGluZ0ludmFsaWRXb3Jk
KCd0ZXN0MV82JywgdHJ1ZSk7CiB0ZXN0VHlwaW5nSW52YWxpZFdvcmQoJ3Rlc3QyXzEnLCBmYWxz
ZSk7CiB0ZXN0VHlwaW5nSW52YWxpZFdvcmQoJ3Rlc3QyXzInLCB0cnVlKTsKIHRlc3RUeXBpbmdJ
bnZhbGlkV29yZCgndGVzdDJfMycsIGZhbHNlKTsKK3Rlc3RUeXBpbmdJbnZhbGlkV29yZCgndGVz
dDJfNCcsIGZhbHNlKTsKK3Rlc3RUeXBpbmdJbnZhbGlkV29yZCgndGVzdDJfNScsIHRydWUpOwor
dGVzdFR5cGluZ0ludmFsaWRXb3JkKCd0ZXN0Ml82JywgZmFsc2UpOwogCiBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxNTU5NzdjYjg1N2RjMGNmNzFkZDRlMzNjMTY0YWY1NmVmYmY5MjE1Li45NmVkOTViMTYy
YTg0NDE5MWFjZTU3YzhhYzkyYjc4YTUyYmFiYTQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTEwLTIy
ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2s9Jycgc2hvdWxkIGJlIHRo
ZSBzYW1lIGFzIHNwZWxsY2hlY2s9InRydWUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTUzOQorCisgICAgICAgIC0gQWRkZWQgYSBjaGVjayBmb3Ig
ZW1wdHkgc3RyaW5nIGFuZCBtaXNzaW5nIGF0dHJpYnV0ZS4KKyAgICAgICAgLSBFeHRyYWN0ZWQg
dGhlIGNoZWNrIHRvIEVsZW1lbnQ6OnNwZWxsQ2hlY2tpbmdFbmFibGVkKCkKKyAgICAgICAgLSBJ
bnRyb2R1Y2VkIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSBlbnVtIHRvIHJlcHJlc2VudCB0aGUK
KyAgICAgICAgICBzdGF0ZXMgZm9yIHNwZWxsY2hlY2sgYXR0cmlidXRlcy4KKworICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNwZWxsY2hlY2tB
dHRyaWJ1dGVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzcGVsbENoZWNraW5n
RW5hYmxlZCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0Vk
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNwZWxsQ2hlY2tpbmdFbmFibGVk
SW5Gb2N1c2VkTm9kZSk6CisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLWF0dHJpYnV0ZS5odG1sCisKIDIwMTAtMTAtMjEgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBj
b21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggODNlMTI5ZThlMjhjZmE1MTBlZTBkODE1NmQyNDM4NWQxZTkzZGNmOS4uODZhZjU1NmRj
YTliM2QxNzRlMWNiNWJkMmNiZTBiMWFhODNjZjU3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE2NzgsNCArMTY3
OCwzNyBAQCB2b2lkIEVsZW1lbnQ6OndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKHVuc2lnbmVkIHNo
b3J0IGZsYWdzKQogfQogI2VuZGlmICAgIAogCitTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgRWxl
bWVudDo6c3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIWhhc0F0
dHJpYnV0ZShIVE1MTmFtZXM6OnNwZWxsY2hlY2tBdHRyKSkKKyAgICAgICAgcmV0dXJuIFNwZWxs
Y2hlY2tBdHRyaWJ1dGVEZWZhdWx0OworCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9
IGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNwZWxsY2hlY2tBdHRyKTsKKyAgICBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UodmFsdWUsICJ0cnVlIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICIi
KSkKKyAgICAgICAgcmV0dXJuIFNwZWxsY2hlY2tBdHRyaWJ1dGVUcnVlOworICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZhbHNlIikpCisgICAgICAgIHJldHVybiBTcGVsbGNoZWNr
QXR0cmlidXRlRmFsc2U7CisKKyAgICByZXR1cm4gU3BlbGxjaGVja0F0dHJpYnV0ZURlZmF1bHQ7
Cit9CisKK2Jvb2wgRWxlbWVudDo6c3BlbGxDaGVja2luZ0VuYWJsZWQoKSBjb25zdAoreworICAg
IGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQgPSB0aGlzOworICAgIHdoaWxlIChlbGVtZW50KSB7Cisg
ICAgICAgIHN3aXRjaCAoZWxlbWVudC0+c3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlKCkpIHsKKyAg
ICAgICAgY2FzZSBTcGVsbGNoZWNrQXR0cmlidXRlVHJ1ZToKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBjYXNlIFNwZWxsY2hlY2tBdHRyaWJ1dGVGYWxzZToKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBTcGVsbGNoZWNrQXR0cmlidXRlRGVmYXVsdDoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZWxlbWVudCA9IGVsZW1l
bnQtPnBhcmVudEVsZW1lbnQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIv
V2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGI4OTBlY2RlNGYyYWVkNmMxZmJlOTRjNWQyMzVk
YTI3MDc3NDJjMWEuLjUyNjE1YzNiMDM0YmRjY2JjZGM1MWUxYzc4YjFiNDA4MWM1ZTFhMmIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKQEAgLTQwLDYgKzQwLDEyIEBAIGNsYXNzIERPTVRva2VuTGlzdDsKIGNsYXNzIEVsZW1lbnRS
YXJlRGF0YTsKIGNsYXNzIEludFNpemU7CiAKK2VudW0gU3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRl
IHsKKyAgICBTcGVsbGNoZWNrQXR0cmlidXRlVHJ1ZSwKKyAgICBTcGVsbGNoZWNrQXR0cmlidXRl
RmFsc2UsCisgICAgU3BlbGxjaGVja0F0dHJpYnV0ZURlZmF1bHQKK307CisKIGNsYXNzIEVsZW1l
bnQgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwpAQCAt
MzE4LDYgKzMyNCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVu
KHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKICNlbmRpZgogCisgICAgU3BlbGxjaGVja0F0dHJpYnV0
ZVN0YXRlIHNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSgpIGNvbnN0OworICAgIGJvb2wgc3BlbGxD
aGVja2luZ0VuYWJsZWQoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25U
eXBlIHR5cGUpCiAgICAgICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgdHlwZSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKaW5kZXggN2IzZDA1NTJhMmJmYjY3MmMwN2I3OGQ1NGQ3MGYwMmYwZmUwZDc3ZS4uMDhh
M2I4MTc2OGRhMTg3ZjkyMDg3MzlkZmQ2YmQ3Yzg2OTRkODE0YyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAg
LTI1NDgsMTcgKzI1NDgsMTAgQEAgYm9vbCBFZGl0b3I6OnNwZWxsQ2hlY2tpbmdFbmFibGVkSW5G
b2N1c2VkTm9kZSgpIGNvbnN0CiAgICAgLy8gQXNjZW5kIHRoZSBET00gdHJlZSB0byBmaW5kIGEg
InNwZWxsY2hlY2siIGF0dHJpYnV0ZS4KICAgICAvLyBXaGVuIHdlIGZpbmQgYSAic3BlbGxjaGVj
ayIgYXR0cmlidXRlLCByZXRyaWV2ZSBpdHMgdmFsdWUgYW5kIHJldHVybiBmYWxzZSBpZiBpdHMg
dmFsdWUgaXMgImZhbHNlIi4KICAgICBjb25zdCBOb2RlKiBub2RlID0gZnJhbWUoKS0+ZG9jdW1l
bnQoKS0+Zm9jdXNlZE5vZGUoKTsKLSAgICB3aGlsZSAobm9kZSkgewotICAgICAgICBpZiAobm9k
ZS0+aXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICBjb25zdCBXVEY6OkF0b21pY1N0cmlu
ZyYgdmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50Kj4obm9kZSktPmdldEF0dHJpYnV0
ZShzcGVsbGNoZWNrQXR0cik7Ci0gICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFs
dWUsICJ0cnVlIikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJmYWxzZSIpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50KCk7Ci0g
ICAgfQotICAgIHJldHVybiB0cnVlOworICAgIGNvbnN0IEVsZW1lbnQqIGZvY3VzZWRFbGVtZW50
ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpIDogbm9kZS0+cGFyZW50
RWxlbWVudCgpOworICAgIGlmICghZm9jdXNlZEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gZm9jdXNlZEVsZW1lbnQtPnNwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiB9
CiAKIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGVjdGlvbiwgUmVmUHRyPFJhbmdlPiYgZmlyc3RNaXNzcGVsbGluZ1JhbmdlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71705</attachid>
            <date>2010-10-24 19:06:27 -0700</date>
            <delta_ts>2010-10-26 03:44:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-25539-20101025110625.patch</filename>
            <type>text/plain</type>
            <size>10812</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDQzZGJkYzQwMDg0YzZhMTQyNWMyNWVmMDRmN2RmMzViZTAzYTdjLi43MTExZmIw
ZDI3YTU2YTkyNDIyMjY1NjUwNmNmZDFjYzM4YjAzMWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMTAtMjIgIE1PUklUQSBIYWppbWUgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrPScnIHNo
b3VsZCBiZSB0aGUgc2FtZSBhcyBzcGVsbGNoZWNrPSJ0cnVlIgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MzkKKworICAgICAgICAqIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVk
aXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hdHRyaWJ1dGUuaHRtbDoKKwogMjAxMC0xMC0yMiAg
TU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKaW5kZXggZTkwZWM2MDAy
ODZmNThlNDNiYzMxNWEyN2I2ODA3MWJhM2M1MGVmMC4uNGZhMzMxZDE4NDA1NGVhMDJkNTFlMzI3
ZDcxMTQ2Yzg4ZmU3YzFjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTMsNyAr
MywxMyBAQCBUaGlzIHRlc3RzIGlmIHRoZSAic3BlbGxjaGVjayIgYXR0cmlidXRlIGlzIGltcGxl
bWVudGVkIGFzIHdyaXR0ZW4gaW4gaXRzIHNwZWNpZgogUEFTUzp0ZXN0MV8xCiBQQVNTOnRlc3Qx
XzIKIFBBU1M6dGVzdDFfMworUEFTUzp0ZXN0MV80CitQQVNTOnRlc3QxXzUKK1BBU1M6dGVzdDFf
NgogUEFTUzp0ZXN0Ml8xCiBQQVNTOnRlc3QyXzIKIFBBU1M6dGVzdDJfMworUEFTUzp0ZXN0Ml80
CitQQVNTOnRlc3QyXzUKK1BBU1M6dGVzdDJfNgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXR0cmlidXRlLmh0bWwKaW5kZXggNzAzNDhjNjAx
YzlhYzJjOTkxOWI1MGRjN2QwNzYzZThhMGYwODZhNC4uMGU1YTA3ZTgwNTI4ZjBhMzUxZGVkMjQy
Y2YyNjQxNWM3NmI2MDRlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1hdHRyaWJ1dGUuaHRtbApAQCAtMTAsMTEgKzEwLDE3IEBACiA8bGFi
ZWw+MS4xLjwvbGFiZWw+PGlucHV0IGlkPSJ0ZXN0MV8xIiB0eXBlPSJ0ZXh0Ij48L2lucHV0Pjxi
ci8+CiA8bGFiZWw+MS4yLjwvbGFiZWw+PGlucHV0IGlkPSJ0ZXN0MV8yIiB0eXBlPSJ0ZXh0IiBz
cGVsbGNoZWNrPSJ0cnVlIj48L2lucHV0Pjxici8+CiA8bGFiZWw+MS4zLjwvbGFiZWw+PGlucHV0
IGlkPSJ0ZXN0MV8zIiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNrPSJmYWxzZSI+PC9pbnB1dD48YnIv
PgorPGxhYmVsPjEuNC48L2xhYmVsPjxpbnB1dCBpZD0idGVzdDFfNCIgdHlwZT0idGV4dCIgc3Bl
bGxjaGVjaz0iSW52YWxpZFZhbHVlIj48L2lucHV0Pjxici8+Cis8bGFiZWw+MS41LjwvbGFiZWw+
PGlucHV0IGlkPSJ0ZXN0MV81IiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNrPjwvaW5wdXQ+PGJyLz4K
KzxsYWJlbD4xLjYuPC9sYWJlbD48aW5wdXQgaWQ9InRlc3QxXzYiIHR5cGU9InRleHQiPjwvaW5w
dXQ+PGJyLz4KIDwvZGl2PgogPGRpdiBzcGVsbGNoZWNrPSJmYWxzZSI+CiA8bGFiZWw+Mi4xLjwv
bGFiZWw+PGlucHV0IGlkPSJ0ZXN0Ml8xIiB0eXBlPSJ0ZXh0Ij48L2lucHV0Pjxici8+CiA8bGFi
ZWw+Mi4yLjwvbGFiZWw+PGlucHV0IGlkPSJ0ZXN0Ml8yIiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNr
PSJ0cnVlIj48L2lucHV0Pjxici8+CiA8bGFiZWw+Mi4zLjwvbGFiZWw+PGlucHV0IGlkPSJ0ZXN0
Ml8zIiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNrPSJmYWxzZSI+PC9pbnB1dD48YnIvPgorPGxhYmVs
PjIuNC48L2xhYmVsPjxpbnB1dCBpZD0idGVzdDJfNCIgdHlwZT0idGV4dCIgc3BlbGxjaGVjaz0i
SW52YWxpZFZhbHVlIj48L2lucHV0Pjxici8+Cis8bGFiZWw+Mi41LjwvbGFiZWw+PGlucHV0IGlk
PSJ0ZXN0Ml81IiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNrPjwvaW5wdXQ+PGJyLz4KKzxsYWJlbD4y
LjYuPC9sYWJlbD48aW5wdXQgaWQ9InRlc3QyXzYiIHR5cGU9InRleHQiPjwvaW5wdXQ+PGJyLz4K
IDwvZGl2PgogPC9kaXY+CiA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KQEAgLTM3LDkgKzQzLDE1
IEBAIGZ1bmN0aW9uIHRlc3RUeXBpbmdJbnZhbGlkV29yZChpZCwgc2hvdWxkQmVNYXJrZWQpIHsK
IHRlc3RUeXBpbmdJbnZhbGlkV29yZCgndGVzdDFfMScsIHRydWUpOwogdGVzdFR5cGluZ0ludmFs
aWRXb3JkKCd0ZXN0MV8yJywgdHJ1ZSk7CiB0ZXN0VHlwaW5nSW52YWxpZFdvcmQoJ3Rlc3QxXzMn
LCBmYWxzZSk7Cit0ZXN0VHlwaW5nSW52YWxpZFdvcmQoJ3Rlc3QxXzQnLCB0cnVlKTsKK3Rlc3RU
eXBpbmdJbnZhbGlkV29yZCgndGVzdDFfNScsIHRydWUpOwordGVzdFR5cGluZ0ludmFsaWRXb3Jk
KCd0ZXN0MV82JywgdHJ1ZSk7CiB0ZXN0VHlwaW5nSW52YWxpZFdvcmQoJ3Rlc3QyXzEnLCBmYWxz
ZSk7CiB0ZXN0VHlwaW5nSW52YWxpZFdvcmQoJ3Rlc3QyXzInLCB0cnVlKTsKIHRlc3RUeXBpbmdJ
bnZhbGlkV29yZCgndGVzdDJfMycsIGZhbHNlKTsKK3Rlc3RUeXBpbmdJbnZhbGlkV29yZCgndGVz
dDJfNCcsIGZhbHNlKTsKK3Rlc3RUeXBpbmdJbnZhbGlkV29yZCgndGVzdDJfNScsIHRydWUpOwor
dGVzdFR5cGluZ0ludmFsaWRXb3JkKCd0ZXN0Ml82JywgZmFsc2UpOwogCiBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxNTU5NzdjYjg1N2RjMGNmNzFkZDRlMzNjMTY0YWY1NmVmYmY5MjE1Li40YjMyNTU2ZDJh
YTQxNTVkZDg1MGY4NGFhZDBkM2Y0N2E3OWMyMzI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEwLTEwLTI0
ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2s9Jycgc2hvdWxkIGJlIHRo
ZSBzYW1lIGFzIHNwZWxsY2hlY2s9InRydWUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTUzOQorCisgICAgICAgIC0gQWRkZWQgYSBjaGVjayBmb3Ig
ZW1wdHkgc3RyaW5nIGFuZCBtaXNzaW5nIGF0dHJpYnV0ZS4KKyAgICAgICAgLSBFeHRyYWN0ZWQg
dGhlIGNoZWNrIHRvIEVsZW1lbnQ6OnNwZWxsQ2hlY2tpbmdFbmFibGVkKCkKKyAgICAgICAgLSBJ
bnRyb2R1Y2VkIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSBlbnVtIHRvIHJlcHJlc2VudCB0aGUK
KyAgICAgICAgICBzdGF0ZXMgZm9yIHNwZWxsY2hlY2sgYXR0cmlidXRlcy4KKworICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNwZWxsY2hlY2tB
dHRyaWJ1dGVTdGF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aXNTcGVs
bENoZWNraW5nRW5hYmxlZCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAg
ICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFya01pc3NwZWxs
aW5nc09yQmFkR3JhbW1hcik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmlzU3BlbGxDaGVj
a2luZ0VuYWJsZWRJbkZvY3VzZWROb2RlKTogUmVuYW1lZCwgcGFydGx5IGV4dHJhY3RlZCB0byBF
bGVtZW50Ojppc1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6cG9wdWxhdGUpOgorCiAyMDEwLTEwLTIxICBL
d2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDgzZTEyOWU4ZTI4Y2ZhNTEwZWUwZDgxNTZkMjQz
ODVkMWU5M2RjZjkuLjBjZmVjZGY0MDBlMzEwMTEyMTFmNGRmMTQ0YTY0YWFjN2RiMGZiZWIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCkBAIC0xNjc4LDQgKzE2NzgsMzcgQEAgdm9pZCBFbGVtZW50Ojp3ZWJraXRSZXF1ZXN0
RnVsbFNjcmVlbih1bnNpZ25lZCBzaG9ydCBmbGFncykKIH0KICNlbmRpZiAgICAKIAorU3BlbGxj
aGVja0F0dHJpYnV0ZVN0YXRlIEVsZW1lbnQ6OnNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSgpIGNv
bnN0Cit7CisgICAgaWYgKCFoYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzcGVsbGNoZWNrQXR0cikp
CisgICAgICAgIHJldHVybiBTcGVsbGNoZWNrQXR0cmlidXRlRGVmYXVsdDsKKworICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgdmFsdWUgPSBnZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzcGVsbGNoZWNr
QXR0cik7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAidHJ1ZSIpIHx8IGVxdWFs
SWdub3JpbmdDYXNlKHZhbHVlLCAiIikpCisgICAgICAgIHJldHVybiBTcGVsbGNoZWNrQXR0cmli
dXRlVHJ1ZTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJmYWxzZSIpKQorICAg
ICAgICByZXR1cm4gU3BlbGxjaGVja0F0dHJpYnV0ZUZhbHNlOworCisgICAgcmV0dXJuIFNwZWxs
Y2hlY2tBdHRyaWJ1dGVEZWZhdWx0OworfQorCitib29sIEVsZW1lbnQ6OmlzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoKSBjb25zdAoreworICAgIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQgPSB0aGlzOwor
ICAgIHdoaWxlIChlbGVtZW50KSB7CisgICAgICAgIHN3aXRjaCAoZWxlbWVudC0+c3BlbGxjaGVj
a0F0dHJpYnV0ZVN0YXRlKCkpIHsKKyAgICAgICAgY2FzZSBTcGVsbGNoZWNrQXR0cmlidXRlVHJ1
ZToKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIFNwZWxsY2hlY2tBdHRy
aWJ1dGVGYWxzZToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBTcGVs
bGNoZWNrQXR0cmlidXRlRGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisK
KyAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vRWxlbWVudC5oIGIvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGI4OTBl
Y2RlNGYyYWVkNmMxZmJlOTRjNWQyMzVkYTI3MDc3NDJjMWEuLmU0N2QyY2ZkOTQzZmY0NTQ4YWE1
ZmIxODA0MDQzNGIzMWI3YmJlY2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAor
KysgYi9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQwLDYgKzQwLDEyIEBAIGNsYXNzIERPTVRv
a2VuTGlzdDsKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YTsKIGNsYXNzIEludFNpemU7CiAKK2VudW0g
U3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlIHsKKyAgICBTcGVsbGNoZWNrQXR0cmlidXRlVHJ1ZSwK
KyAgICBTcGVsbGNoZWNrQXR0cmlidXRlRmFsc2UsCisgICAgU3BlbGxjaGVja0F0dHJpYnV0ZURl
ZmF1bHQKK307CisKIGNsYXNzIEVsZW1lbnQgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwpAQCAtMzE4LDYgKzMyNCw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKICNlbmRpZgog
CisgICAgYm9vbCBpc1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgY29uc3Q7CisKIHByb3RlY3RlZDoK
ICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICAgICA6IENvbnRhaW5lck5vZGUoZG9j
dW1lbnQsIHR5cGUpCkBAIC0zNzMsNyArMzgxLDkgQEAgcHJpdmF0ZToKIAogICAgIEVsZW1lbnRS
YXJlRGF0YSogcmFyZURhdGEoKSBjb25zdDsKICAgICBFbGVtZW50UmFyZURhdGEqIGVuc3VyZVJh
cmVEYXRhKCk7Ci0gICAgCisKKyAgICBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgc3BlbGxjaGVj
a0F0dHJpYnV0ZVN0YXRlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8
TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1hcDsKIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDdiM2Qw
NTUyYTJiZmI2NzJjMDdiNzhkNTRkNzBmMDJmMGZlMGQ3N2UuLjc0M2Q0MmQyNWExZWE5OTM4MzMy
YTZjYmJiYTY2MjE2YTdiYzAzYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yNTI0LDcgKzI1MjQsNyBA
QCBzdGF0aWMgdm9pZCBtYXJrTWlzc3BlbGxpbmdzT3JCYWRHcmFtbWFyKEVkaXRvciogZWRpdG9y
LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJgogICAgIGlmICghZWRpdGFibGVOb2RlIHx8ICFlZGl0
YWJsZU5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
ICghZWRpdG9yLT5zcGVsbENoZWNraW5nRW5hYmxlZEluRm9jdXNlZE5vZGUoKSkKKyAgICBpZiAo
IWVkaXRvci0+aXNTcGVsbENoZWNraW5nRW5hYmxlZEluRm9jdXNlZE5vZGUoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gR2V0IHRoZSBzcGVsbCBjaGVja2VyIGlmIGl0IGlzIGF2YWlsYWJs
ZQpAQCAtMjU0MywyMiArMjU0MywxNSBAQCBzdGF0aWMgdm9pZCBtYXJrTWlzc3BlbGxpbmdzT3JC
YWRHcmFtbWFyKEVkaXRvciogZWRpdG9yLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJgogICAgIH0g
ICAgCiB9CiAKLWJvb2wgRWRpdG9yOjpzcGVsbENoZWNraW5nRW5hYmxlZEluRm9jdXNlZE5vZGUo
KSBjb25zdAorYm9vbCBFZGl0b3I6OmlzU3BlbGxDaGVja2luZ0VuYWJsZWRJbkZvY3VzZWROb2Rl
KCkgY29uc3QKIHsKICAgICAvLyBBc2NlbmQgdGhlIERPTSB0cmVlIHRvIGZpbmQgYSAic3BlbGxj
aGVjayIgYXR0cmlidXRlLgogICAgIC8vIFdoZW4gd2UgZmluZCBhICJzcGVsbGNoZWNrIiBhdHRy
aWJ1dGUsIHJldHJpZXZlIGl0cyB2YWx1ZSBhbmQgcmV0dXJuIGZhbHNlIGlmIGl0cyB2YWx1ZSBp
cyAiZmFsc2UiLgogICAgIGNvbnN0IE5vZGUqIG5vZGUgPSBmcmFtZSgpLT5kb2N1bWVudCgpLT5m
b2N1c2VkTm9kZSgpOwotICAgIHdoaWxlIChub2RlKSB7Ci0gICAgICAgIGlmIChub2RlLT5pc0Vs
ZW1lbnROb2RlKCkpIHsKLSAgICAgICAgICAgIGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiB2YWx1
ZSA9IHN0YXRpY19jYXN0PGNvbnN0IEVsZW1lbnQqPihub2RlKS0+Z2V0QXR0cmlidXRlKHNwZWxs
Y2hlY2tBdHRyKTsKLSAgICAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgInRy
dWUiKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZSh2YWx1ZSwgImZhbHNlIikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnQoKTsKLSAgICB9Ci0g
ICAgcmV0dXJuIHRydWU7CisgICAgY29uc3QgRWxlbWVudCogZm9jdXNlZEVsZW1lbnQgPSBub2Rl
LT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1lbnQobm9kZSkgOiBub2RlLT5wYXJlbnRFbGVtZW50
KCk7CisgICAgaWYgKCFmb2N1c2VkRWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBmb2N1c2VkRWxlbWVudC0+aXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwogfQogCiB2
b2lkIEVkaXRvcjo6bWFya01pc3NwZWxsaW5ncyhjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIFJlZlB0cjxSYW5nZT4mIGZpcnN0TWlzc3BlbGxpbmdSYW5nZSkKQEAgLTI2MDMsNyAr
MjU5Niw3IEBAIHZvaWQgRWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcklu
UmFuZ2VzKFRleHRDaGVja2luZ09wdGlvbnMgdGV4dENoCiAgICAgaWYgKCFlZGl0YWJsZU5vZGUg
fHwgIWVkaXRhYmxlTm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKCFzcGVsbENoZWNraW5nRW5hYmxlZEluRm9jdXNlZE5vZGUoKSkKKyAgICBpZiAo
IWlzU3BlbGxDaGVja2luZ0VuYWJsZWRJbkZvY3VzZWROb2RlKCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIEV4cGFuZCB0aGUgcmFuZ2UgdG8gZW5jb21wYXNzIGVudGlyZSBwYXJhZ3JhcGhz
LCBzaW5jZSB0ZXh0IGNoZWNraW5nIG5lZWRzIHRoYXQgbXVjaCBjb250ZXh0LgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmlu
ZGV4IGRmMmU5NDczMWFjZDI1OTI3M2I2ZDRmMWU4MzNmYWZjNjE3ZGRiMDEuLjBhZDQ3Mzc4MmQz
YTRmNWI0ZTdjMTRkM2NlNzUwZGRiNGUzMjk1MmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTIwNyw3ICsyMDcs
NyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFN0cmluZz4gZ3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxl
Y3Rpb24oKTsKICAgICBWZWN0b3I8U3RyaW5nPiBndWVzc2VzRm9yVW5ncmFtbWF0aWNhbFNlbGVj
dGlvbigpOwogICAgIFZlY3RvcjxTdHJpbmc+IGd1ZXNzZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1t
YXRpY2FsU2VsZWN0aW9uKGJvb2wmIG1pc3NwZWxsZWQsIGJvb2wmIHVuZ3JhbW1hdGljYWwpOwot
ICAgIGJvb2wgc3BlbGxDaGVja2luZ0VuYWJsZWRJbkZvY3VzZWROb2RlKCkgY29uc3Q7CisgICAg
Ym9vbCBpc1NwZWxsQ2hlY2tpbmdFbmFibGVkSW5Gb2N1c2VkTm9kZSgpIGNvbnN0OwogICAgIHZv
aWQgbWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Qb3NpdGlvbihjb25zdCBWaXNpYmxlUG9z
aXRpb24mKTsKICAgICB2b2lkIG1hcmtNaXNzcGVsbGluZ3MoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIFJlZlB0cjxSYW5nZT4mIGZpcnN0TWlzc3BlbGxpbmdSYW5nZSk7CiAgICAgdm9pZCBtYXJr
QmFkR3JhbW1hcihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUu
Y3BwCmluZGV4IGNhMWY3MTllYWVjNTk3NzQ0NDUyMDc5ZTc4YjYyYTYyZmNhOGJmZTUuLjM2OWY5
Y2UwYzI3NzcwOGE3MTJjYTMyZjhlODkzN2JhOGI5OGZmMzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnUuY3BwCkBAIC00MjgsNyArNDI4LDcgQEAgdm9pZCBDb250ZXh0TWVudTo6cG9wdWxhdGUoKQog
ICAgIH0gZWxzZSB7IC8vIE1ha2UgYW4gZWRpdGluZyBjb250ZXh0IG1lbnUKICAgICAgICAgU2Vs
ZWN0aW9uQ29udHJvbGxlciogc2VsZWN0aW9uID0gZnJhbWUtPnNlbGVjdGlvbigpOwogICAgICAg
ICBib29sIGluUGFzc3dvcmRGaWVsZCA9IHNlbGVjdGlvbi0+aXNJblBhc3N3b3JkRmllbGQoKTsK
LSAgICAgICAgYm9vbCBzcGVsbENoZWNraW5nRW5hYmxlZCA9IGZyYW1lLT5lZGl0b3IoKS0+c3Bl
bGxDaGVja2luZ0VuYWJsZWRJbkZvY3VzZWROb2RlKCk7CisgICAgICAgIGJvb2wgc3BlbGxDaGVj
a2luZ0VuYWJsZWQgPSBmcmFtZS0+ZWRpdG9yKCktPmlzU3BlbGxDaGVja2luZ0VuYWJsZWRJbkZv
Y3VzZWROb2RlKCk7CiAgICAgICAgIAogICAgICAgICBpZiAoIWluUGFzc3dvcmRGaWVsZCAmJiBz
cGVsbENoZWNraW5nRW5hYmxlZCkgewogICAgICAgICAgICAgLy8gQ29uc2lkZXIgYWRkaW5nIHNw
ZWxsaW5nLXJlbGF0ZWQgb3IgZ3JhbW1hci1yZWxhdGVkIGNvbnRleHQgbWVudSBpdGVtcyAobmV2
ZXIgYm90aCwgc2luY2UgYSBzaW5nbGUgc2VsZWN0ZWQgcmFuZ2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71858</attachid>
            <date>2010-10-26 03:44:37 -0700</date>
            <delta_ts>2010-10-26 09:19:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-25539-20101026194435.patch</filename>
            <type>text/plain</type>
            <size>13151</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3M2VkZDdjOTMwMmQwNWVhYTQ3OTEwZmI2OGIyOTYxYzNjMzdjMzY1Li4zMzM1MTQ1
Y2M1YTY4YjEyYjNhYzAwODljMDIzMjY5NWQ5ZjhmNDhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTAtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUm9sbGluZyBpbiByNzA1
MTIgYWdhaW4uCisgICAgICAgIAorICAgICAgICBzcGVsbGNoZWNrPScnIHNob3VsZCBiZSB0aGUg
c2FtZSBhcyBzcGVsbGNoZWNrPSJ0cnVlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MzkKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxjaGVjay1hdHRyaWJ1dGUuaHRtbDoKKwogMjAxMC0xMC0yNiAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjcwNTEyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsY2hlY2stYXR0cmlidXRlLWV4cGVjdGVkLnR4dAppbmRleCBlOTBlYzYw
MDI4NmY1OGU0M2JjMzE1YTI3YjY4MDcxYmEzYzUwZWYwLi40ZmEzMzFkMTg0MDU0ZWEwMmQ1MWUz
MjdkNzExNDZjODhmZTdjMWNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsY2hlY2stYXR0cmlidXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXR0cmlidXRlLWV4cGVjdGVkLnR4dApAQCAtMyw3
ICszLDEzIEBAIFRoaXMgdGVzdHMgaWYgdGhlICJzcGVsbGNoZWNrIiBhdHRyaWJ1dGUgaXMgaW1w
bGVtZW50ZWQgYXMgd3JpdHRlbiBpbiBpdHMgc3BlY2lmCiBQQVNTOnRlc3QxXzEKIFBBU1M6dGVz
dDFfMgogUEFTUzp0ZXN0MV8zCitQQVNTOnRlc3QxXzQKK1BBU1M6dGVzdDFfNQorUEFTUzp0ZXN0
MV82CiBQQVNTOnRlc3QyXzEKIFBBU1M6dGVzdDJfMgogUEFTUzp0ZXN0Ml8zCitQQVNTOnRlc3Qy
XzQKK1BBU1M6dGVzdDJfNQorUEFTUzp0ZXN0Ml82CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hdHRyaWJ1dGUuaHRtbAppbmRleCA3MDM0OGM2
MDFjOWFjMmM5OTE5YjUwZGM3ZDA3NjNlOGEwZjA4NmE0Li4wZTVhMDdlODA1MjhmMGEzNTFkZWQy
NDJjZjI2NDE1Yzc2YjYwNGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsY2hlY2stYXR0cmlidXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS5odG1sCkBAIC0xMCwxMSArMTAsMTcgQEAKIDxs
YWJlbD4xLjEuPC9sYWJlbD48aW5wdXQgaWQ9InRlc3QxXzEiIHR5cGU9InRleHQiPjwvaW5wdXQ+
PGJyLz4KIDxsYWJlbD4xLjIuPC9sYWJlbD48aW5wdXQgaWQ9InRlc3QxXzIiIHR5cGU9InRleHQi
IHNwZWxsY2hlY2s9InRydWUiPjwvaW5wdXQ+PGJyLz4KIDxsYWJlbD4xLjMuPC9sYWJlbD48aW5w
dXQgaWQ9InRlc3QxXzMiIHR5cGU9InRleHQiIHNwZWxsY2hlY2s9ImZhbHNlIj48L2lucHV0Pjxi
ci8+Cis8bGFiZWw+MS40LjwvbGFiZWw+PGlucHV0IGlkPSJ0ZXN0MV80IiB0eXBlPSJ0ZXh0IiBz
cGVsbGNoZWNrPSJJbnZhbGlkVmFsdWUiPjwvaW5wdXQ+PGJyLz4KKzxsYWJlbD4xLjUuPC9sYWJl
bD48aW5wdXQgaWQ9InRlc3QxXzUiIHR5cGU9InRleHQiIHNwZWxsY2hlY2s+PC9pbnB1dD48YnIv
PgorPGxhYmVsPjEuNi48L2xhYmVsPjxpbnB1dCBpZD0idGVzdDFfNiIgdHlwZT0idGV4dCI+PC9p
bnB1dD48YnIvPgogPC9kaXY+CiA8ZGl2IHNwZWxsY2hlY2s9ImZhbHNlIj4KIDxsYWJlbD4yLjEu
PC9sYWJlbD48aW5wdXQgaWQ9InRlc3QyXzEiIHR5cGU9InRleHQiPjwvaW5wdXQ+PGJyLz4KIDxs
YWJlbD4yLjIuPC9sYWJlbD48aW5wdXQgaWQ9InRlc3QyXzIiIHR5cGU9InRleHQiIHNwZWxsY2hl
Y2s9InRydWUiPjwvaW5wdXQ+PGJyLz4KIDxsYWJlbD4yLjMuPC9sYWJlbD48aW5wdXQgaWQ9InRl
c3QyXzMiIHR5cGU9InRleHQiIHNwZWxsY2hlY2s9ImZhbHNlIj48L2lucHV0Pjxici8+Cis8bGFi
ZWw+Mi40LjwvbGFiZWw+PGlucHV0IGlkPSJ0ZXN0Ml80IiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNr
PSJJbnZhbGlkVmFsdWUiPjwvaW5wdXQ+PGJyLz4KKzxsYWJlbD4yLjUuPC9sYWJlbD48aW5wdXQg
aWQ9InRlc3QyXzUiIHR5cGU9InRleHQiIHNwZWxsY2hlY2s+PC9pbnB1dD48YnIvPgorPGxhYmVs
PjIuNi48L2xhYmVsPjxpbnB1dCBpZD0idGVzdDJfNiIgdHlwZT0idGV4dCI+PC9pbnB1dD48YnIv
PgogPC9kaXY+CiA8L2Rpdj4KIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgpAQCAtMzcsOSArNDMs
MTUgQEAgZnVuY3Rpb24gdGVzdFR5cGluZ0ludmFsaWRXb3JkKGlkLCBzaG91bGRCZU1hcmtlZCkg
ewogdGVzdFR5cGluZ0ludmFsaWRXb3JkKCd0ZXN0MV8xJywgdHJ1ZSk7CiB0ZXN0VHlwaW5nSW52
YWxpZFdvcmQoJ3Rlc3QxXzInLCB0cnVlKTsKIHRlc3RUeXBpbmdJbnZhbGlkV29yZCgndGVzdDFf
MycsIGZhbHNlKTsKK3Rlc3RUeXBpbmdJbnZhbGlkV29yZCgndGVzdDFfNCcsIHRydWUpOwordGVz
dFR5cGluZ0ludmFsaWRXb3JkKCd0ZXN0MV81JywgdHJ1ZSk7Cit0ZXN0VHlwaW5nSW52YWxpZFdv
cmQoJ3Rlc3QxXzYnLCB0cnVlKTsKIHRlc3RUeXBpbmdJbnZhbGlkV29yZCgndGVzdDJfMScsIGZh
bHNlKTsKIHRlc3RUeXBpbmdJbnZhbGlkV29yZCgndGVzdDJfMicsIHRydWUpOwogdGVzdFR5cGlu
Z0ludmFsaWRXb3JkKCd0ZXN0Ml8zJywgZmFsc2UpOwordGVzdFR5cGluZ0ludmFsaWRXb3JkKCd0
ZXN0Ml80JywgZmFsc2UpOwordGVzdFR5cGluZ0ludmFsaWRXb3JkKCd0ZXN0Ml81JywgdHJ1ZSk7
Cit0ZXN0VHlwaW5nSW52YWxpZFdvcmQoJ3Rlc3QyXzYnLCBmYWxzZSk7CiAKIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDM0ODM2NDE0MjgzZjNkM2ZmOGU2MjQxNWI1ZmFlM2I2NDIzODFiYTkuLjdjMDYxY2Jl
YWZmOTQyZDVmNDlkYWI3ZDUxZjIxOGZkNTU2ZWZkODEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMTAt
MjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUm9sbGluZyBpbiByNzA1MTIgYWdhaW4s
IGFkZGVkIG1pc3NpbmcgbnVsbC1jaGVjayB0bworICAgICAgICBFZGl0b3I6OmlzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
NzA1MTIKKworICAgICAgICBzcGVsbGNoZWNrPScnIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBzcGVs
bGNoZWNrPSJ0cnVlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU1MzkKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OnNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50Ojppc1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBkb20vRWxlbWVu
dC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1h
cmtNaXNzcGVsbGluZ3NPckJhZEdyYW1tYXIpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpp
c1NwZWxsQ2hlY2tpbmdFbmFibGVkSW5Gb2N1c2VkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMpOgorICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OnBvcHVsYXRlKToKKwogMjAxMC0xMC0y
NiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
TWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBmM2QzODhlZGY3ZjhiMGE4N2QyZTg3NWY4NmNh
NTllZDJiZDQyMjVjLi40YzM1MmMwMDljYmJjNzQzMGJiODU1MThmMTBkMmJiNThjN2I5NjlmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtMTcwOCw0ICsxNzA4LDM3IEBAIHZvaWQgRWxlbWVudDo6d2Via2l0UmVxdWVz
dEZ1bGxTY3JlZW4odW5zaWduZWQgc2hvcnQgZmxhZ3MpCiB9CiAjZW5kaWYgICAgCiAKK1NwZWxs
Y2hlY2tBdHRyaWJ1dGVTdGF0ZSBFbGVtZW50OjpzcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUoKSBj
b25zdAoreworICAgIGlmICghaGFzQXR0cmlidXRlKEhUTUxOYW1lczo6c3BlbGxjaGVja0F0dHIp
KQorICAgICAgICByZXR1cm4gU3BlbGxjaGVja0F0dHJpYnV0ZURlZmF1bHQ7CisKKyAgICBjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlID0gZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3BlbGxjaGVj
a0F0dHIpOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgInRydWUiKSB8fCBlcXVh
bElnbm9yaW5nQ2FzZSh2YWx1ZSwgIiIpKQorICAgICAgICByZXR1cm4gU3BlbGxjaGVja0F0dHJp
YnV0ZVRydWU7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAiZmFsc2UiKSkKKyAg
ICAgICAgcmV0dXJuIFNwZWxsY2hlY2tBdHRyaWJ1dGVGYWxzZTsKKworICAgIHJldHVybiBTcGVs
bGNoZWNrQXR0cmlidXRlRGVmYXVsdDsKK30KKworYm9vbCBFbGVtZW50Ojppc1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkgY29uc3QKK3sKKyAgICBjb25zdCBFbGVtZW50KiBlbGVtZW50ID0gdGhpczsK
KyAgICB3aGlsZSAoZWxlbWVudCkgeworICAgICAgICBzd2l0Y2ggKGVsZW1lbnQtPnNwZWxsY2hl
Y2tBdHRyaWJ1dGVTdGF0ZSgpKSB7CisgICAgICAgIGNhc2UgU3BlbGxjaGVja0F0dHJpYnV0ZVRy
dWU6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBTcGVsbGNoZWNrQXR0
cmlidXRlRmFsc2U6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgU3Bl
bGxjaGVja0F0dHJpYnV0ZURlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
CisgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50KCk7CisgICAgfQorCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBmNWYx
NzBhOGFjZmZkZTQ0OGJmZThkZWYyYzZmMTdhYzRmM2IwYzFjLi42Nzg4N2NjYWUyOWUwM2ViMzVj
NjBlYzZjN2M2YWU1Y2NlOWRjZmE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
KysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00MCw2ICs0MCwxMiBAQCBjbGFzcyBET01U
b2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURhdGE7CiBjbGFzcyBJbnRTaXplOwogCitlbnVt
IFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CisgICAgU3BlbGxjaGVja0F0dHJpYnV0ZVRydWUs
CisgICAgU3BlbGxjaGVja0F0dHJpYnV0ZUZhbHNlLAorICAgIFNwZWxsY2hlY2tBdHRyaWJ1dGVE
ZWZhdWx0Cit9OworCiBjbGFzcyBFbGVtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUgewogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKQEAgLTMyMCw2ICszMjYsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbih1bnNpZ25lZCBzaG9ydCBmbGFncyk7CiAjZW5kaWYK
IAorICAgIGJvb2wgaXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6
CiAgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQsIENvbnN0cnVjdGlvblR5cGUgdHlwZSkKICAgICAgICAgOiBDb250YWluZXJOb2RlKGRv
Y3VtZW50LCB0eXBlKQpAQCAtMzc1LDcgKzM4Myw5IEBAIHByaXZhdGU6CiAKICAgICBFbGVtZW50
UmFyZURhdGEqIHJhcmVEYXRhKCkgY29uc3Q7CiAgICAgRWxlbWVudFJhcmVEYXRhKiBlbnN1cmVS
YXJlRGF0YSgpOwotICAgIAorCisgICAgU3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlIHNwZWxsY2hl
Y2tBdHRyaWJ1dGVTdGF0ZSgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIG11dGFibGUgUmVmUHRy
PE5hbWVkTm9kZU1hcD4gbV9hdHRyaWJ1dGVNYXA7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA0ZDZk
MjU4MzA3YWEwYjAwMzZiMWI5ZWRjZGYwYWY0YTM0NzJkMmZmLi5hZjk0YjYzYTBhYTY3NGY5ZWQ0
NTFlZWZlOWFhY2UxNzA2MTRkZDBhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjUyNCw3ICsyNTI0LDcg
QEAgc3RhdGljIHZvaWQgbWFya01pc3NwZWxsaW5nc09yQmFkR3JhbW1hcihFZGl0b3IqIGVkaXRv
ciwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYKICAgICBpZiAoIWVkaXRhYmxlTm9kZSB8fCAhZWRp
dGFibGVOb2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoIWVkaXRvci0+c3BlbGxDaGVja2luZ0VuYWJsZWRJbkZvY3VzZWROb2RlKCkpCisgICAgaWYg
KCFlZGl0b3ItPmlzU3BlbGxDaGVja2luZ0VuYWJsZWRJbkZvY3VzZWROb2RlKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIC8vIEdldCB0aGUgc3BlbGwgY2hlY2tlciBpZiBpdCBpcyBhdmFpbGFi
bGUKQEAgLTI1NDMsMjIgKzI1NDMsMTcgQEAgc3RhdGljIHZvaWQgbWFya01pc3NwZWxsaW5nc09y
QmFkR3JhbW1hcihFZGl0b3IqIGVkaXRvciwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYKICAgICB9
ICAgIAogfQogCi1ib29sIEVkaXRvcjo6c3BlbGxDaGVja2luZ0VuYWJsZWRJbkZvY3VzZWROb2Rl
KCkgY29uc3QKK2Jvb2wgRWRpdG9yOjppc1NwZWxsQ2hlY2tpbmdFbmFibGVkSW5Gb2N1c2VkTm9k
ZSgpIGNvbnN0CiB7CiAgICAgLy8gQXNjZW5kIHRoZSBET00gdHJlZSB0byBmaW5kIGEgInNwZWxs
Y2hlY2siIGF0dHJpYnV0ZS4KICAgICAvLyBXaGVuIHdlIGZpbmQgYSAic3BlbGxjaGVjayIgYXR0
cmlidXRlLCByZXRyaWV2ZSBpdHMgdmFsdWUgYW5kIHJldHVybiBmYWxzZSBpZiBpdHMgdmFsdWUg
aXMgImZhbHNlIi4KICAgICBjb25zdCBOb2RlKiBub2RlID0gZnJhbWUoKS0+ZG9jdW1lbnQoKS0+
Zm9jdXNlZE5vZGUoKTsKLSAgICB3aGlsZSAobm9kZSkgewotICAgICAgICBpZiAobm9kZS0+aXNF
bGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICBjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgdmFs
dWUgPSBzdGF0aWNfY2FzdDxjb25zdCBFbGVtZW50Kj4obm9kZSktPmdldEF0dHJpYnV0ZShzcGVs
bGNoZWNrQXR0cik7Ci0gICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJ0
cnVlIikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICBpZiAoZXF1
YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJmYWxzZSIpKQotICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgfQotICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50KCk7Ci0gICAgfQot
ICAgIHJldHVybiB0cnVlOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGNvbnN0IEVsZW1lbnQqIGZvY3VzZWRFbGVtZW50ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgp
ID8gdG9FbGVtZW50KG5vZGUpIDogbm9kZS0+cGFyZW50RWxlbWVudCgpOworICAgIGlmICghZm9j
dXNlZEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZm9jdXNlZEVs
ZW1lbnQtPmlzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3I6Om1hcmtN
aXNzcGVsbGluZ3MoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBSZWZQdHI8UmFu
Z2U+JiBmaXJzdE1pc3NwZWxsaW5nUmFuZ2UpCkBAIC0yNjAzLDcgKzI1OTgsNyBAQCB2b2lkIEVk
aXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhUZXh0Q2hlY2tp
bmdPcHRpb25zIHRleHRDaAogICAgIGlmICghZWRpdGFibGVOb2RlIHx8ICFlZGl0YWJsZU5vZGUt
PmlzQ29udGVudEVkaXRhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghc3BlbGxD
aGVja2luZ0VuYWJsZWRJbkZvY3VzZWROb2RlKCkpCisgICAgaWYgKCFpc1NwZWxsQ2hlY2tpbmdF
bmFibGVkSW5Gb2N1c2VkTm9kZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBFeHBhbmQg
dGhlIHJhbmdlIHRvIGVuY29tcGFzcyBlbnRpcmUgcGFyYWdyYXBocywgc2luY2UgdGV4dCBjaGVj
a2luZyBuZWVkcyB0aGF0IG11Y2ggY29udGV4dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCBkZjJlOTQ3MzFhY2Qy
NTkyNzNiNmQ0ZjFlODMzZmFmYzYxN2RkYjAxLi4wYWQ0NzM3ODJkM2E0ZjViNGU3YzE0ZDNjZTc1
MGRkYjRlMzI5NTJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0yMDcsNyArMjA3LDcgQEAgcHVibGljOgogICAg
IFZlY3RvcjxTdHJpbmc+IGd1ZXNzZXNGb3JNaXNzcGVsbGVkU2VsZWN0aW9uKCk7CiAgICAgVmVj
dG9yPFN0cmluZz4gZ3Vlc3Nlc0ZvclVuZ3JhbW1hdGljYWxTZWxlY3Rpb24oKTsKICAgICBWZWN0
b3I8U3RyaW5nPiBndWVzc2VzRm9yTWlzc3BlbGxlZE9yVW5ncmFtbWF0aWNhbFNlbGVjdGlvbihi
b29sJiBtaXNzcGVsbGVkLCBib29sJiB1bmdyYW1tYXRpY2FsKTsKLSAgICBib29sIHNwZWxsQ2hl
Y2tpbmdFbmFibGVkSW5Gb2N1c2VkTm9kZSgpIGNvbnN0OworICAgIGJvb2wgaXNTcGVsbENoZWNr
aW5nRW5hYmxlZEluRm9jdXNlZE5vZGUoKSBjb25zdDsKICAgICB2b2lkIG1hcmtNaXNzcGVsbGlu
Z3NBZnRlclR5cGluZ1RvUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAgICAgdm9p
ZCBtYXJrTWlzc3BlbGxpbmdzKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBSZWZQdHI8UmFuZ2U+
JiBmaXJzdE1pc3NwZWxsaW5nUmFuZ2UpOwogICAgIHZvaWQgbWFya0JhZEdyYW1tYXIoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcAppbmRleCBjYTFmNzE5
ZWFlYzU5Nzc0NDQ1MjA3OWU3OGI2MmE2MmZjYThiZmU1Li4zNjlmOWNlMGMyNzc3MDhhNzEyY2Ez
MmY4ZTg5MzdiYThiOThmZjMwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRN
ZW51LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcApAQCAtNDI4LDcg
KzQyOCw3IEBAIHZvaWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICAgICB9IGVsc2UgeyAvLyBN
YWtlIGFuIGVkaXRpbmcgY29udGV4dCBtZW51CiAgICAgICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIq
IHNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKTsKICAgICAgICAgYm9vbCBpblBhc3N3b3Jk
RmllbGQgPSBzZWxlY3Rpb24tPmlzSW5QYXNzd29yZEZpZWxkKCk7Ci0gICAgICAgIGJvb2wgc3Bl
bGxDaGVja2luZ0VuYWJsZWQgPSBmcmFtZS0+ZWRpdG9yKCktPnNwZWxsQ2hlY2tpbmdFbmFibGVk
SW5Gb2N1c2VkTm9kZSgpOworICAgICAgICBib29sIHNwZWxsQ2hlY2tpbmdFbmFibGVkID0gZnJh
bWUtPmVkaXRvcigpLT5pc1NwZWxsQ2hlY2tpbmdFbmFibGVkSW5Gb2N1c2VkTm9kZSgpOwogICAg
ICAgICAKICAgICAgICAgaWYgKCFpblBhc3N3b3JkRmllbGQgJiYgc3BlbGxDaGVja2luZ0VuYWJs
ZWQpIHsKICAgICAgICAgICAgIC8vIENvbnNpZGVyIGFkZGluZyBzcGVsbGluZy1yZWxhdGVkIG9y
IGdyYW1tYXItcmVsYXRlZCBjb250ZXh0IG1lbnUgaXRlbXMgKG5ldmVyIGJvdGgsIHNpbmNlIGEg
c2luZ2xlIHNlbGVjdGVkIHJhbmdlCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA4MzY3NDQ2MDJjYWRhNzNjNTRj
NDI1MDk3YTQwMzU5MDU1ZDM5NmJjLi4yNTQzOTIxNDY0ZmMzZGE4YmZmZTZhYmJiMWMyMTU5Mjg5
YTk4YWZlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMC0yNiAgTU9SSVRB
IEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSb2xsaW5nIGluIHI3MDUxMiBhZ2Fpbi4KKyAgICAgICAg
CisgICAgICAgIHNwZWxsY2hlY2s9Jycgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHNwZWxsY2hlY2s9
InRydWUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NTUzOQorCisgICAgICAgICogc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkNvbnRleHRNZW51Q2xpZW50SW1wbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0
SXRlbXMpOgorICAgICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6c2hvdWxkU3BlbGxjaGVja0J5RGVmYXVsdCk6CisKIDIw
MTAtMTAtMjYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MDUxMi4KZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcAppbmRleCBkOWNjYjE3ZTA5ZDIzMzY2ZWEz
NjA5ZGU5MzliZmZhNWM2YjUwMWUxLi5kMzNhMDZiZGJkY2Y2Y2UyMzNhNDgwYjk4Nzc3ODliNDRl
ODNhZjk2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50
SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwu
Y3BwCkBAIC0yNDEsNyArMjQxLDcgQEAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1l
bnVDbGllbnRJbXBsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcygKICAgICAgICAgaWYg
KG1fd2ViVmlldy0+Zm9jdXNlZFdlYkNvcmVGcmFtZSgpLT5lZGl0b3IoKS0+aXNDb250aW51b3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKSkgewogICAgICAgICAgICAgZGF0YS5pc1NwZWxsQ2hlY2tp
bmdFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgICAgIC8vIFNwZWxsY2hlY2tpbmcgbWlnaHQgYmUg
ZW5hYmxlZCBmb3IgdGhlIGZpZWxkLCBidXQgY291bGQgYmUgZGlzYWJsZWQgb24gdGhlIG5vZGUu
Ci0gICAgICAgICAgICBpZiAobV93ZWJWaWV3LT5mb2N1c2VkV2ViQ29yZUZyYW1lKCktPmVkaXRv
cigpLT5zcGVsbENoZWNraW5nRW5hYmxlZEluRm9jdXNlZE5vZGUoKSkKKyAgICAgICAgICAgIGlm
IChtX3dlYlZpZXctPmZvY3VzZWRXZWJDb3JlRnJhbWUoKS0+ZWRpdG9yKCktPmlzU3BlbGxDaGVj
a2luZ0VuYWJsZWRJbkZvY3VzZWROb2RlKCkpCiAgICAgICAgICAgICAgICAgZGF0YS5taXNzcGVs
bGVkV29yZCA9IHNlbGVjdE1pc3NwZWxsZWRXb3JkKGRlZmF1bHRNZW51LCBzZWxlY3RlZEZyYW1l
KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRp
dG9yQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwu
Y3BwCmluZGV4IDExOTc3YjY2NGU0YTg0N2I2NDFjYTFhNGJhNDIwMDVjYTkzYmU2NDUuLmJjMWQy
MDZmZjlhM2FkZjc5NmUzYWY5OTIwYzMwZTkyZjVkNWMxZGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIGJvb2wgRWRpdG9yQ2xp
ZW50SW1wbDo6c2hvdWxkU3BlbGxjaGVja0J5RGVmYXVsdCgpCiAgICAgY29uc3QgRWRpdG9yKiBl
ZGl0b3IgPSBmcmFtZS0+ZWRpdG9yKCk7CiAgICAgaWYgKCFlZGl0b3IpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoZWRpdG9yLT5zcGVsbENoZWNraW5nRW5hYmxlZEluRm9jdXNlZE5v
ZGUoKSkKKyAgICBpZiAoZWRpdG9yLT5pc1NwZWxsQ2hlY2tpbmdFbmFibGVkSW5Gb2N1c2VkTm9k
ZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjb25zdCBEb2N1bWVudCogZG9jdW1lbnQg
PSBmcmFtZS0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQo=
</data>
<flag name="review"
          id="61998"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>