<?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>27474</bug_id>
          
          <creation_ts>2009-07-20 17:37:06 -0700</creation_ts>
          <short_desc>Crash if the selection is set in a textarea/text input immediately after setting display:none</short_desc>
          <delta_ts>2009-07-27 15:54:47 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Ojan Vafai">ojan</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133311</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-07-20 17:37:06 -0700</bug_when>
    <thetext>summary: webkit crashes if the selection is set in a textarea/text input immediately after setting display:none

Patch + layout test coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133318</commentid>
    <comment_count>1</comment_count>
      <attachid>33129</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-07-20 17:58:54 -0700</bug_when>
    <thetext>Created attachment 33129
Fixes crashes


---
 8 files changed, 101 insertions(+), 1 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133786</commentid>
    <comment_count>2</comment_count>
      <attachid>33129</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-22 09:37:09 -0700</bug_when>
    <thetext>Comment on attachment 33129
Fixes crashes

This is definitely the right basic approach. And what&apos;s here is OK if it&apos;s OK for these functions to do nothing when there are pending stylesheets.

But I think it&apos;s likely that for website compatibility, these functions need to work even when called early during loading before all the stylesheets are loaded. The code needs to call updateLayoutIgnorePendingStylesheets instead of updateLayout for cases where that needs to work.

I&apos;m going to say review- because of that issue, but I could be convinced to reconsider if you think I&apos;m wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133791</commentid>
    <comment_count>3</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-07-22 09:54:09 -0700</bug_when>
    <thetext>I&apos;m not at all familiar with layout updating and pending stylesheets, so I&apos;ll trust your judgement that it should call updateLayoutIgnorePendingStylesheets. I&apos;ll post a new patch in a bit.

FWIW, calling updateLayoutIgnorePendingStylesheets would be a change in behavior. The old code just calls updateLayout. By moving it up the callstack, we only avoid cases where we would otherwise have crashed (i.e. because the renderer disappeared).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133826</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-22 11:56:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; FWIW, calling updateLayoutIgnorePendingStylesheets would be a change in
&gt; behavior. The old code just calls updateLayout. By moving it up the callstack,
&gt; we only avoid cases where we would otherwise have crashed (i.e. because the
&gt; renderer disappeared).

It&apos;s true; one could argue that these are two separate issues that perhaps should use two separate bug reports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133952</commentid>
    <comment_count>5</comment_count>
      <attachid>33303</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-07-22 15:38:43 -0700</bug_when>
    <thetext>Created attachment 33303
Fixes crashes


---
 9 files changed, 132 insertions(+), 29 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133955</commentid>
    <comment_count>6</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-07-22 15:41:12 -0700</bug_when>
    <thetext>Changes from previous patch:
-moved some duplicate code into static functions
-s/updateLayout/updateLayoutIgnorePendingStylesheets
-Changed assert to deal with reentrancy in updateLayout
-Changed the updateLayout call in HTMLTextAreaElement::updateFocusAppearance to an assert that the document does not need style recalc or is mid style recalc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133990</commentid>
    <comment_count>7</comment_count>
      <attachid>33303</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-22 16:58:25 -0700</bug_when>
    <thetext>Comment on attachment 33303
Fixes crashes

&gt; +        Unfortunately, this seems to be
&gt; +        untestable. Loading an external stylesheet and then having an inline
&gt; +        script hit this code did not result in an pending stylesheets.

You should talk to Hyatt. I&apos;m sure he can give you a way to test this.

If we put too many of these calls in we get &quot;flashes of unstyled content&quot; (FOUC).

We need to put these into calls that need to function even when called early, while stylesheets are still loading.

But we should not put it into calls where it&apos;s OK if they silently do nothing when called early, while stylesheets are still loading.

There&apos;s a risk that by following my request to do the stronger form of updateLayout you will introduce FOUC.

&gt; +static bool isTextFieldWithRendererAfterUpdateLayout(HTMLInputElement* element)

I think the AfterUpdateLayout here is slightly too explicit.

&gt; +    ASSERT(!document()-&gt;childNeedsStyleRecalc() || document()-&gt;inStyleRecalc());

If the assertion is going to take this form, then maybe we should expose this expression instead of the raw inStyleRecalc value.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135054</commentid>
    <comment_count>8</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2009-07-27 15:54:47 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/46437

(In reply to comment #7)
&gt; (From update of attachment 33303 [details])
&gt; &gt; +        Unfortunately, this seems to be
&gt; &gt; +        untestable. Loading an external stylesheet and then having an inline
&gt; &gt; +        script hit this code did not result in an pending stylesheets.
&gt; 
&gt; You should talk to Hyatt. I&apos;m sure he can give you a way to test this.

I had talked to Hyatt actually. He suggested having a test case that points to an external stylesheet and then does something that calls updateLayoutIgnorePendingStylesheets. This didn&apos;t work. Specifically, there weren&apos;t actually any pending stylesheets by the time we got to the updateLayoutIgnorePendingStylesheets call. Hyatt concluded that this &quot;may&quot; be untestable.

I&apos;m happy to put more work into adding a test for this, but I&apos;m probably not the most qualified. Alternately, I can commit a patch that reverts this back to an updateLayout call, but now that I understand what it does, I think you are right that this is a case where we do actually want updateLayoutIgnorePendingStylesheets.

&gt; If we put too many of these calls in we get &quot;flashes of unstyled content&quot;
&gt; (FOUC).
&gt; 
&gt; We need to put these into calls that need to function even when called early,
&gt; while stylesheets are still loading.
&gt; 
&gt; But we should not put it into calls where it&apos;s OK if they silently do nothing
&gt; when called early, while stylesheets are still loading.
&gt; 
&gt; There&apos;s a risk that by following my request to do the stronger form of
&gt; updateLayout you will introduce FOUC.

Thanks for the explanation.

&gt; &gt; +static bool isTextFieldWithRendererAfterUpdateLayout(HTMLInputElement* element)
&gt; 
&gt; I think the AfterUpdateLayout here is slightly too explicit.

Fixed.

&gt; &gt; +    ASSERT(!document()-&gt;childNeedsStyleRecalc() || document()-&gt;inStyleRecalc());
&gt; 
&gt; If the assertion is going to take this form, then maybe we should expose this
&gt; expression instead of the raw inStyleRecalc value.

Fixed, although I wasn&apos;t able to come up with a great name for this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33129</attachid>
            <date>2009-07-20 17:58:54 -0700</date>
            <delta_ts>2009-07-22 15:38:40 -0700</delta_ts>
            <desc>Fixes crashes</desc>
            <filename>bug-27474-20090720175853.patch</filename>
            <type>text/plain</type>
            <size>7674</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMjRiY2ZkLi5mYzBlYjE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDct
MjAgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjc0NzQKKyAgICAgICAgVGVzdHMgY3Jhc2hlcyB3aGVuIGNhbGxpbmcgc2Vs
ZWN0LCBzZXRTZWxlY3Rpb25SYW5nZSBvciBzZXR0aW5nCisgICAgICAgIHNlbGVjdGlvblN0YXJ0
L3NlbGVjdGlvbkVuZCBvbiBhIHRleHRhcmVhL2lucHV0IGltbWVkaWF0ZWx5IGFmdGVyCisgICAg
ICAgIHNldHRpbmcgZGlzcGxheTpub25lLgorCisgICAgICAgICogZmFzdC9kb20vdGV4dC1jb250
cm9sLWNyYXNoLW9uLXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL3RleHQtY29udHJvbC1jcmFzaC1vbi1zZWxlY3QuaHRtbDogQWRkZWQuCisKIDIwMDktMDct
MTkgIFNpbW9uIEhhdXNtYW5uICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSdWJi
ZXItc3RhbXBlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS90ZXh0LWNvbnRyb2wtY3Jhc2gtb24tc2VsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3RleHQtY29udHJvbC1jcmFzaC1vbi1zZWxlY3QtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5OGY5ODIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90ZXh0LWNvbnRyb2wtY3Jhc2gtb24tc2VsZWN0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxIEBACitUZXN0cyB0aGF0IHdlIGRvbid0IGNyYXNoIHdoZW4ga2ls
bGluZyBhbiB0ZXh0IGlucHV0J3Mgb3IgdGV4dGFyZWEncyByZW5kZXJlciBhbmQgdGhlbiBjYWxs
aW5nIHNlbGVjdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RleHQtY29udHJv
bC1jcmFzaC1vbi1zZWxlY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RleHQtY29udHJv
bC1jcmFzaC1vbi1zZWxlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4zNTE5OWE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGV4dC1j
b250cm9sLWNyYXNoLW9uLXNlbGVjdC5odG1sCkBAIC0wLDAgKzEsMzggQEAKK1Rlc3RzIHRoYXQg
d2UgZG9uJ3QgY3Jhc2ggd2hlbiBraWxsaW5nIGFuIHRleHQgaW5wdXQncyBvciB0ZXh0YXJlYSdz
IHJlbmRlcmVyIGFuZCB0aGVuIGNhbGxpbmcgc2VsZWN0LgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJl
YTEiPnRleHRhcmVhPC90ZXh0YXJlYT4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEyIj50ZXh0YXJl
YTwvdGV4dGFyZWE+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhMyI+dGV4dGFyZWE8L3RleHRhcmVh
PgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYTQiPnRleHRhcmVhPC90ZXh0YXJlYT4KKzxpbnB1dCBp
ZD0iaW5wdXQxIj4KKzxpbnB1dCBpZD0iaW5wdXQyIj4KKzxpbnB1dCBpZD0iaW5wdXQzIj4KKzxp
bnB1dCBpZD0iaW5wdXQ0Ij4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgZnVuY3Rpb24gJChpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RTZXR0aW5nU2VsZWN0aW9uKHRhZ05h
bWUpIHsKKyAgICAgICAgdmFyIGlkID0gdGFnTmFtZSArICcxJzsKKyAgICAgICAgJChpZCkuc3R5
bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICAgICAgJChpZCkuc2VsZWN0KCk7CisKKyAgICAgICAg
aWQgPSB0YWdOYW1lICsgJzInOworICAgICAgICAkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUi
OworICAgICAgICAkKGlkKS5zZXRTZWxlY3Rpb25SYW5nZSgxLCAyKTsKKworICAgICAgICBpZCA9
IHRhZ05hbWUgKyAnMyc7CisgICAgICAgICQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Cisg
ICAgICAgICQoaWQpLnNlbGVjdGlvblN0YXJ0ID0gMjsKKworICAgICAgICBpZCA9IHRhZ05hbWUg
KyAnNCc7CisgICAgICAgICQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICQo
aWQpLnNlbGVjdGlvbkVuZCA9IDE7CisgICAgfQorICAgIAorICAgIHRlc3RTZXR0aW5nU2VsZWN0
aW9uKCd0ZXh0YXJlYScpOworICAgIHRlc3RTZXR0aW5nU2VsZWN0aW9uKCdpbnB1dCcpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDllMGEyYmQuLmFhMDYyMjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDktMDctMjAgIE9qYW4g
VmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjc0NzQKKyAgICAgICAgRml4ZXMgY3Jhc2hlcyBkdWUgdG8gcmVuZGVyZXIgZ2V0dGluZyBk
ZXN0cm95ZWQgaW4gdXBkYXRlTGF5b3V0LgorICAgICAgICBXZSBuZWVkIHRvIGNhbGwgdXBkYXRl
TGF5b3V0IGJlZm9yZSB3ZSBjYWxsIGludG8gdGhlIHJlbmRlcmVyLgorICAgICAgICBSZW1vdmVk
IHRoZSB1cGRhdGVMYXlvdXQgY2FsbCBmcm9tIFJlbmRlclRleHRDb250cm9sIGFuZCBtb3ZlZCBp
dAorICAgICAgICBpbnRvIHRoZSBjYWxsaW5nIHNpdGVzLgorICAgICAgICAKKyAgICAgICAgVGhl
IGFyZSBvdGhlciBjYXNlcyBvZiB0aGlzIGluIHRoZSByZW5kZXJpbmcgY29kZS4gSSdsbCBmaWxl
IGEgCisgICAgICAgIGZvbGxvd3VwIGJ1ZyB0byBhdWRpdCB0aGUgY2FsbHMgdG8gdXBkYXRlTGF5
b3V0LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3RleHQtY29udHJvbC1jcmFzaC1vbi1zZWxl
Y3QuaHRtbAorCisgICAgICAgICogZG9tL0lucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dEVsZW1lbnQ6OnVwZGF0ZVNlbGVjdGlvblJhbmdlKToKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6c2V0U2VsZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6c2V0U2VsZWN0aW9uRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OnNlbGVjdCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFNlbGVjdGlvbkVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpzZWxlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlRm9jdXNBcHBlYXJhbmNlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OnNldFNlbGVjdGlvblJhbmdlKToKKwogMjAwOS0wNy0y
MCAgRHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0lucHV0RWxl
bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuY3BwCmluZGV4IDEwOGQxN2UuLjRj
MGNiMTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAKKysrIGIvV2Vi
Q29yZS9kb20vSW5wdXRFbGVtZW50LmNwcApAQCAtMTE2LDYgKzExNiw4IEBAIHZvaWQgSW5wdXRF
bGVtZW50Ojp1cGRhdGVTZWxlY3Rpb25SYW5nZShJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCwg
RWxlbWVudCogZWxlCiAgICAgaWYgKCFpbnB1dEVsZW1lbnQtPmlzVGV4dEZpZWxkKCkpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOwor
CiAgICAgaWYgKFJlbmRlclRleHRDb250cm9sKiByZW5kZXJlciA9IHRvUmVuZGVyVGV4dENvbnRy
b2woZWxlbWVudC0+cmVuZGVyZXIoKSkpCiAgICAgICAgIHJlbmRlcmVyLT5zZXRTZWxlY3Rpb25S
YW5nZShzdGFydCwgZW5kKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBmNGM0
NjZjLi5kODE2MmIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC01MTUsOCArNTE1
LDExIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQoaW50IHN0YXJ0
KQogewogICAgIGlmICghaXNUZXh0RmllbGQoKSkKICAgICAgICAgcmV0dXJuOworCisgICAgZG9j
dW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CiAgICAgaWYgKCFyZW5kZXJlcigpKQogICAgICAgICBy
ZXR1cm47CisKICAgICB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKCkpLT5zZXRTZWxlY3Rp
b25TdGFydChzdGFydCk7CiB9CiAKQEAgLTUyNCw4ICs1MjcsMTEgQEAgdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpzZXRTZWxlY3Rpb25FbmQoaW50IGVuZCkKIHsKICAgICBpZiAoIWlzVGV4dEZpZWxk
KCkpCiAgICAgICAgIHJldHVybjsKKworICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOwog
ICAgIGlmICghcmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuOworCiAgICAgdG9SZW5kZXJUZXh0
Q29udHJvbChyZW5kZXJlcigpKS0+c2V0U2VsZWN0aW9uRW5kKGVuZCk7CiB9CiAKQEAgLTUzMyw4
ICs1MzksMTEgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3QoKQogewogICAgIGlmICgh
aXNUZXh0RmllbGQoKSkKICAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQoKS0+dXBkYXRl
TGF5b3V0KCk7CiAgICAgaWYgKCFyZW5kZXJlcigpKQogICAgICAgICByZXR1cm47CisKICAgICB0
b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKCkpLT5zZWxlY3QoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDhiZGE3MmIuLjRjY2E5NjAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTEwOSw2ICsxMDksNyBAQCBpbnQgSFRNTFRleHRB
cmVhRWxlbWVudDo6c2VsZWN0aW9uRW5kKCkKIAogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojpz
ZXRTZWxlY3Rpb25TdGFydChpbnQgc3RhcnQpCiB7CisgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5
b3V0KCk7CiAgICAgaWYgKCFyZW5kZXJlcigpKQogICAgICAgICByZXR1cm47CiAgICAgdG9SZW5k
ZXJUZXh0Q29udHJvbChyZW5kZXJlcigpKS0+c2V0U2VsZWN0aW9uU3RhcnQoc3RhcnQpOwpAQCAt
MTE2LDYgKzExNyw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0U2VsZWN0aW9uU3Rh
cnQoaW50IHN0YXJ0KQogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFNlbGVjdGlvbkVu
ZChpbnQgZW5kKQogeworICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOwogICAgIGlmICgh
cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHRvUmVuZGVyVGV4dENvbnRyb2wocmVu
ZGVyZXIoKSktPnNldFNlbGVjdGlvbkVuZChlbmQpOwpAQCAtMTIzLDYgKzEyNSw3IEBAIHZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKGludCBlbmQpCiAKIHZvaWQgSFRN
TFRleHRBcmVhRWxlbWVudDo6c2VsZWN0KCkKIHsKKyAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlv
dXQoKTsKICAgICBpZiAoIXJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybjsKICAgICB0b1JlbmRl
clRleHRDb250cm9sKHJlbmRlcmVyKCkpLT5zZWxlY3QoKTsKQEAgLTEzMCw2ICsxMzMsNyBAQCB2
b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNlbGVjdCgpCiAKIHZvaWQgSFRNTFRleHRBcmVhRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kKQogeworICAgIGRvY3Vt
ZW50KCktPnVwZGF0ZUxheW91dCgpOwogICAgIGlmICghcmVuZGVyZXIoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSktPnNldFNlbGVjdGlvblJh
bmdlKHN0YXJ0LCBlbmQpOwpAQCAtMjM5LDYgKzI0MywxMCBAQCBib29sIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50
Ojp1cGRhdGVGb2N1c0FwcGVhcmFuY2UoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pCiB7
CiAgICAgQVNTRVJUKHJlbmRlcmVyKCkpOworCisgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0
KCk7CisgICAgaWYgKCFyZW5kZXJlcigpKQorICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYg
KCFyZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24gfHwgbV9jYWNoZWRTZWxlY3Rpb25TdGFydCA8IDAp
IHsKICNpZiBFTkFCTEUoT05fRklSU1RfVEVYVEFSRUFfRk9DVVNfU0VMRUNUX0FMTCkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAppbmRleCA5YWNkOWIyLi5mNzY5ZjRmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCkBAIC0yMzUsNyArMjM1LDcg
QEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBp
bnQgZW5kKQogICAgIGVuZCA9IG1heChlbmQsIDApOwogICAgIHN0YXJ0ID0gbWluKG1heChzdGFy
dCwgMCksIGVuZCk7CiAKLSAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKKyAgICBBU1NF
UlQoIWRvY3VtZW50KCktPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpKTsKIAogICAgIGlmIChzdHls
ZSgpLT52aXNpYmlsaXR5KCkgPT0gSElEREVOIHx8ICFtX2lubmVyVGV4dCB8fCAhbV9pbm5lclRl
eHQtPnJlbmRlcmVyKCkgfHwgIW1faW5uZXJUZXh0LT5yZW5kZXJCb3goKS0+aGVpZ2h0KCkpIHsK
ICAgICAgICAgY2FjaGVTZWxlY3Rpb24oc3RhcnQsIGVuZCk7
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33303</attachid>
            <date>2009-07-22 15:38:43 -0700</date>
            <delta_ts>2009-07-22 16:58:25 -0700</delta_ts>
            <desc>Fixes crashes</desc>
            <filename>bug-27474-20090722153842.patch</filename>
            <type>text/plain</type>
            <size>10224</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMjk5MDczLi4xYmM1ZTIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDct
MjIgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjc0NzQKKyAgICAgICAgVGVzdHMgY3Jhc2hlcyB3aGVuIGNhbGxpbmcgc2Vs
ZWN0LCBzZXRTZWxlY3Rpb25SYW5nZSBvciBzZXR0aW5nCisgICAgICAgIHNlbGVjdGlvblN0YXJ0
L3NlbGVjdGlvbkVuZCBvbiBhIHRleHRhcmVhL2lucHV0IGltbWVkaWF0ZWx5IGFmdGVyCisgICAg
ICAgIHNldHRpbmcgZGlzcGxheTpub25lLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlw
dGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBmYXN0L2RvbS90ZXh0LWNvbnRy
b2wtY3Jhc2gtb24tc2VsZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vdGV4dC1jb250cm9sLWNyYXNoLW9uLXNlbGVjdC5odG1sOiBBZGRlZC4KKwogMjAwOS0wNy0y
MSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
biBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90ZXh0LWNvbnRy
b2wtY3Jhc2gtb24tc2VsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Rl
eHQtY29udHJvbC1jcmFzaC1vbi1zZWxlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjU5OGY5ODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS90ZXh0LWNvbnRyb2wtY3Jhc2gtb24tc2VsZWN0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxIEBACitUZXN0cyB0aGF0IHdlIGRvbid0IGNyYXNoIHdoZW4ga2lsbGluZyBhbiB0ZXh0
IGlucHV0J3Mgb3IgdGV4dGFyZWEncyByZW5kZXJlciBhbmQgdGhlbiBjYWxsaW5nIHNlbGVjdC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RleHQtY29udHJvbC1jcmFzaC1vbi1z
ZWxlY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RleHQtY29udHJvbC1jcmFzaC1vbi1z
ZWxlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTE5OWE5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGV4dC1jb250cm9sLWNyYXNo
LW9uLXNlbGVjdC5odG1sCkBAIC0wLDAgKzEsMzggQEAKK1Rlc3RzIHRoYXQgd2UgZG9uJ3QgY3Jh
c2ggd2hlbiBraWxsaW5nIGFuIHRleHQgaW5wdXQncyBvciB0ZXh0YXJlYSdzIHJlbmRlcmVyIGFu
ZCB0aGVuIGNhbGxpbmcgc2VsZWN0LgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYTEiPnRleHRhcmVh
PC90ZXh0YXJlYT4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEyIj50ZXh0YXJlYTwvdGV4dGFyZWE+
Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhMyI+dGV4dGFyZWE8L3RleHRhcmVhPgorPHRleHRhcmVh
IGlkPSJ0ZXh0YXJlYTQiPnRleHRhcmVhPC90ZXh0YXJlYT4KKzxpbnB1dCBpZD0iaW5wdXQxIj4K
KzxpbnB1dCBpZD0iaW5wdXQyIj4KKzxpbnB1dCBpZD0iaW5wdXQzIj4KKzxpbnB1dCBpZD0iaW5w
dXQ0Ij4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24g
JChpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHRlc3RTZXR0aW5nU2VsZWN0aW9uKHRhZ05hbWUpIHsKKyAgICAg
ICAgdmFyIGlkID0gdGFnTmFtZSArICcxJzsKKyAgICAgICAgJChpZCkuc3R5bGUuZGlzcGxheSA9
ICJub25lIjsKKyAgICAgICAgJChpZCkuc2VsZWN0KCk7CisKKyAgICAgICAgaWQgPSB0YWdOYW1l
ICsgJzInOworICAgICAgICAkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICAgICAgICAk
KGlkKS5zZXRTZWxlY3Rpb25SYW5nZSgxLCAyKTsKKworICAgICAgICBpZCA9IHRhZ05hbWUgKyAn
Myc7CisgICAgICAgICQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICQoaWQp
LnNlbGVjdGlvblN0YXJ0ID0gMjsKKworICAgICAgICBpZCA9IHRhZ05hbWUgKyAnNCc7CisgICAg
ICAgICQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICQoaWQpLnNlbGVjdGlv
bkVuZCA9IDE7CisgICAgfQorICAgIAorICAgIHRlc3RTZXR0aW5nU2VsZWN0aW9uKCd0ZXh0YXJl
YScpOworICAgIHRlc3RTZXR0aW5nU2VsZWN0aW9uKCdpbnB1dCcpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZjMzg2
OTYuLmM0N2U4MjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMDktMDctMjIgIE9qYW4gVmFmYWkgIDxvamFu
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NzQKKyAg
ICAgICAgRml4ZXMgY3Jhc2hlcyBkdWUgdG8gcmVuZGVyZXIgZ2V0dGluZyBkZXN0cm95ZWQgaW4g
dXBkYXRlTGF5b3V0LgorICAgICAgICBXZSBuZWVkIHRvIGNhbGwgdXBkYXRlTGF5b3V0IGJlZm9y
ZSB3ZSBjYWxsIGludG8gdGhlIHJlbmRlcmVyLgorICAgICAgICBSZW1vdmVkIHRoZSB1cGRhdGVM
YXlvdXQgY2FsbCBmcm9tIFJlbmRlclRleHRDb250cm9sIGFuZCBtb3ZlZCBpdAorICAgICAgICBp
bnRvIHRoZSBjYWxsaW5nIHNpdGVzLgorICAgICAgICAKKyAgICAgICAgQWxzbyBjaGFuZ2VzIHVw
ZGF0ZUxheW91dCB0byB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMgc28KKyAg
ICAgICAgdGhpcyB3b3JrcyB3aXRoIHBlbmRpbmcgc3R5bGVzaGVldHMuIFVuZm9ydHVuYXRlbHks
IHRoaXMgc2VlbXMgdG8gYmUKKyAgICAgICAgdW50ZXN0YWJsZS4gTG9hZGluZyBhbiBleHRlcm5h
bCBzdHlsZXNoZWV0IGFuZCB0aGVuIGhhdmluZyBhbiBpbmxpbmUKKyAgICAgICAgc2NyaXB0IGhp
dCB0aGlzIGNvZGUgZGlkIG5vdCByZXN1bHQgaW4gYW4gcGVuZGluZyBzdHlsZXNoZWV0cy4KKyAg
ICAgICAgCisgICAgICAgIFRoZSBhcmUgb3RoZXIgY2FzZXMgb2YgdGhpcyBidWcgaW4gdGhlIHJl
bmRlcmluZyBjb2RlLiBJJ2xsIGZpbGUgYSAKKyAgICAgICAgZm9sbG93dXAgYnVnIHRvIGF1ZGl0
IHRoZSBjYWxscyB0byB1cGRhdGVMYXlvdXQuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vdGV4
dC1jb250cm9sLWNyYXNoLW9uLXNlbGVjdC5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppblN0eWxlUmVjYWxjKTogQWRkZWQgc28g
dGhlIEFTU0VSVHMgaW4gdXBkYXRlRm9jdXNBcHBlYXJhbmNlCisgICAgICAgICAgICBhbmQgc2V0
U2VsZWN0aW9uUmFuZ2UgY291bGQgZGVhbCB3aXRoIGNhc2VzIG9mIHJlZW50cmFuY3kgaW50byB1
cGRhdGVMYXlvdXQKKyAgICAgICAgICAgIGNhbGxzLiBUaGlzIGhhcHBlbnMgaW4gYSBjb3VwbGUg
bGF5b3V0IHRlc3RzLgorICAgICAgICAqIGRvbS9JbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRFbGVtZW50Ojp1cGRhdGVTZWxlY3Rpb25SYW5nZSk6CisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVGV4dEZpZWxk
V2l0aFJlbmRlcmVyQWZ0ZXJVcGRhdGVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElu
cHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElu
cHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OnNlbGVjdCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlcmVyQWZ0ZXJVcGRhdGVMYXlvdXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNlbGVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVGb2N1c0FwcGVhcmFuY2UpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorCiAyMDA5LTA3LTIy
ICBQYXVsIEdvZGF2YXJpICA8cGF1bEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZWIzYmY3ZC4uODczNGM0OCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC00
MDYsNiArNDA2LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8RWRpdGluZ1RleHQ+IGNyZWF0
ZUVkaXRpbmdUZXh0Tm9kZShjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNh
bGNTdHlsZShTdHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKKyAgICBib29sIGluU3R5bGVSZWNhbGMo
KSB7IHJldHVybiBtX2luU3R5bGVSZWNhbGM7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3R5
bGVJZk5lZWRlZCgpOwogICAgIHZvaWQgdXBkYXRlTGF5b3V0KCk7CiAgICAgdm9pZCB1cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L0lucHV0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuY3BwCmluZGV4IDEw
OGQxN2UuLmIyNWNkNWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAK
KysrIGIvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcApAQCAtMTE2LDYgKzExNiw4IEBAIHZv
aWQgSW5wdXRFbGVtZW50Ojp1cGRhdGVTZWxlY3Rpb25SYW5nZShJbnB1dEVsZW1lbnQqIGlucHV0
RWxlbWVudCwgRWxlbWVudCogZWxlCiAgICAgaWYgKCFpbnB1dEVsZW1lbnQtPmlzVGV4dEZpZWxk
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworCiAgICAgaWYgKFJlbmRlclRleHRDb250
cm9sKiByZW5kZXJlciA9IHRvUmVuZGVyVGV4dENvbnRyb2woZWxlbWVudC0+cmVuZGVyZXIoKSkp
CiAgICAgICAgIHJlbmRlcmVyLT5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTsKIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBmNGM0NjZjLi4yNmRjN2E4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCkBAIC01MTEsMzEgKzUxMSwzNCBAQCBpbnQgSFRNTElucHV0RWxl
bWVudDo6c2VsZWN0aW9uRW5kKCkgY29uc3QKICAgICByZXR1cm4gdG9SZW5kZXJUZXh0Q29udHJv
bChyZW5kZXJlcigpKS0+c2VsZWN0aW9uRW5kKCk7CiB9CiAKK3N0YXRpYyBib29sIGlzVGV4dEZp
ZWxkV2l0aFJlbmRlcmVyQWZ0ZXJVcGRhdGVMYXlvdXQoSFRNTElucHV0RWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICBpZiAoIWVsZW1lbnQtPmlzVGV4dEZpZWxkKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOworICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0U2VsZWN0aW9uU3RhcnQoaW50IHN0YXJ0KQogewotICAgIGlmICghaXNUZXh0Rmll
bGQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghcmVuZGVyZXIoKSkKLSAgICAgICAgcmV0
dXJuOwotICAgIHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSktPnNldFNlbGVjdGlvblN0
YXJ0KHN0YXJ0KTsKKyAgICBpZiAoaXNUZXh0RmllbGRXaXRoUmVuZGVyZXJBZnRlclVwZGF0ZUxh
eW91dCh0aGlzKSkKKyAgICAgICAgdG9SZW5kZXJUZXh0Q29udHJvbChyZW5kZXJlcigpKS0+c2V0
U2VsZWN0aW9uU3RhcnQoc3RhcnQpOwogfQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFNl
bGVjdGlvbkVuZChpbnQgZW5kKQogewotICAgIGlmICghaXNUZXh0RmllbGQoKSkKLSAgICAgICAg
cmV0dXJuOwotICAgIGlmICghcmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHRvUmVu
ZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSktPnNldFNlbGVjdGlvbkVuZChlbmQpOworICAgIGlm
IChpc1RleHRGaWVsZFdpdGhSZW5kZXJlckFmdGVyVXBkYXRlTGF5b3V0KHRoaXMpKQorICAgICAg
ICB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKCkpLT5zZXRTZWxlY3Rpb25FbmQoZW5kKTsK
IH0KIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3QoKQogewotICAgIGlmICghaXNUZXh0
RmllbGQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghcmVuZGVyZXIoKSkKLSAgICAgICAg
cmV0dXJuOwotICAgIHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSktPnNlbGVjdCgpOwor
ICAgIGlmIChpc1RleHRGaWVsZFdpdGhSZW5kZXJlckFmdGVyVXBkYXRlTGF5b3V0KHRoaXMpKQor
ICAgICAgICB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKCkpLT5zZWxlY3QoKTsKIH0KIAog
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBl
bmQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggOGJkYTcyYi4uOTUzMDNj
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtMTA3LDMyICsxMDcsMzQg
QEAgaW50IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNlbGVjdGlvbkVuZCgpCiAgICAgcmV0dXJuIHRv
UmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSktPnNlbGVjdGlvbkVuZCgpOwogfQogCitzdGF0
aWMgUmVuZGVyVGV4dENvbnRyb2wqIHJlbmRlcmVyQWZ0ZXJVcGRhdGVMYXlvdXQoSFRNTFRleHRB
cmVhRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICByZXR1cm4gdG9SZW5kZXJUZXh0
Q29udHJvbChlbGVtZW50LT5yZW5kZXJlcigpKTsKK30KKwogdm9pZCBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpzZXRTZWxlY3Rpb25TdGFydChpbnQgc3RhcnQpCiB7Ci0gICAgaWYgKCFyZW5kZXJlcigp
KQotICAgICAgICByZXR1cm47Ci0gICAgdG9SZW5kZXJUZXh0Q29udHJvbChyZW5kZXJlcigpKS0+
c2V0U2VsZWN0aW9uU3RhcnQoc3RhcnQpOworICAgIGlmIChSZW5kZXJUZXh0Q29udHJvbCogcmVu
ZGVyZXIgPSByZW5kZXJlckFmdGVyVXBkYXRlTGF5b3V0KHRoaXMpKQorICAgICAgICByZW5kZXJl
ci0+c2V0U2VsZWN0aW9uU3RhcnQoc3RhcnQpOwogfQogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OnNldFNlbGVjdGlvbkVuZChpbnQgZW5kKQogewotICAgIGlmICghcmVuZGVyZXIoKSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSktPnNldFNl
bGVjdGlvbkVuZChlbmQpOworICAgIGlmIChSZW5kZXJUZXh0Q29udHJvbCogcmVuZGVyZXIgPSBy
ZW5kZXJlckFmdGVyVXBkYXRlTGF5b3V0KHRoaXMpKQorICAgICAgICByZW5kZXJlci0+c2V0U2Vs
ZWN0aW9uRW5kKGVuZCk7CiB9CiAKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2VsZWN0KCkK
IHsKLSAgICBpZiAoIXJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybjsKLSAgICB0b1JlbmRlclRl
eHRDb250cm9sKHJlbmRlcmVyKCkpLT5zZWxlY3QoKTsKKyAgICBpZiAoUmVuZGVyVGV4dENvbnRy
b2wqIHJlbmRlcmVyID0gcmVuZGVyZXJBZnRlclVwZGF0ZUxheW91dCh0aGlzKSkKKyAgICAgICAg
cmVuZGVyZXItPnNlbGVjdCgpOwogfQogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFNl
bGVjdGlvblJhbmdlKGludCBzdGFydCwgaW50IGVuZCkKIHsKLSAgICBpZiAoIXJlbmRlcmVyKCkp
Ci0gICAgICAgIHJldHVybjsKLSAgICB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKCkpLT5z
ZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTsKKyAgICBpZiAoUmVuZGVyVGV4dENvbnRyb2wq
IHJlbmRlcmVyID0gcmVuZGVyZXJBZnRlclVwZGF0ZUxheW91dCh0aGlzKSkKKyAgICAgICAgcmVu
ZGVyZXItPnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBlbmQpOwogfQogCiB2b2lkIEhUTUxUZXh0
QXJlYUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSog
YmVmb3JlQ2hhbmdlLCBOb2RlKiBhZnRlckNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSkKQEAg
LTIzOSw3ICsyNDEsOCBAQCBib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmlzTW91c2VGb2N1c2Fi
bGUoKSBjb25zdAogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVGb2N1c0FwcGVhcmFu
Y2UoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pCiB7CiAgICAgQVNTRVJUKHJlbmRlcmVy
KCkpOwotICAgIAorICAgIEFTU0VSVCghZG9jdW1lbnQoKS0+Y2hpbGROZWVkc1N0eWxlUmVjYWxj
KCkgfHwgZG9jdW1lbnQoKS0+aW5TdHlsZVJlY2FsYygpKTsKKwogICAgIGlmICghcmVzdG9yZVBy
ZXZpb3VzU2VsZWN0aW9uIHx8IG1fY2FjaGVkU2VsZWN0aW9uU3RhcnQgPCAwKSB7CiAjaWYgRU5B
QkxFKE9OX0ZJUlNUX1RFWFRBUkVBX0ZPQ1VTX1NFTEVDVF9BTEwpCiAgICAgICAgIC8vIERldmlj
ZXMgd2l0aCB0cmFja2JhbGxzIG9yIGQtcGFkcyBtYXkgZm9jdXMgb24gYSB0ZXh0YXJlYSBpbiBy
b3V0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCmluZGV4IDlhY2Q5YjIu
LmM0MmM3NDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTIz
NSw3ICsyMzUsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sOjpzZXRTZWxlY3Rpb25SYW5nZShp
bnQgc3RhcnQsIGludCBlbmQpCiAgICAgZW5kID0gbWF4KGVuZCwgMCk7CiAgICAgc3RhcnQgPSBt
aW4obWF4KHN0YXJ0LCAwKSwgZW5kKTsKIAotICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgp
OworICAgIEFTU0VSVCghZG9jdW1lbnQoKS0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgZG9j
dW1lbnQoKS0+aW5TdHlsZVJlY2FsYygpKTsKIAogICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5
KCkgPT0gSElEREVOIHx8ICFtX2lubmVyVGV4dCB8fCAhbV9pbm5lclRleHQtPnJlbmRlcmVyKCkg
fHwgIW1faW5uZXJUZXh0LT5yZW5kZXJCb3goKS0+aGVpZ2h0KCkpIHsKICAgICAgICAgY2FjaGVT
ZWxlY3Rpb24oc3RhcnQsIGVuZCk7
</data>
<flag name="review"
          id="17603"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>