<?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>23090</bug_id>
          
          <creation_ts>2009-01-03 10:49:24 -0800</creation_ts>
          <short_desc>Redraw issue with width and opacity change</short_desc>
          <delta_ts>2009-01-04 10:40:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>hyatt</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>104240</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-03 10:49:24 -0800</bug_when>
    <thetext>The attached testcase shows that a block with width and opacity changing at the same time shows a redraw issue which leaves an area where the element used to be un-repainted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104241</commentid>
    <comment_count>1</comment_count>
      <attachid>26392</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-03 10:50:44 -0800</bug_when>
    <thetext>Created attachment 26392
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104242</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-03 10:51:48 -0800</bug_when>
    <thetext>Seems to be an issue only when the element toggles between having a layer (opacity &lt; 1) and no layer (opacity == 1).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104248</commentid>
    <comment_count>3</comment_count>
      <attachid>26393</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-03 12:20:06 -0800</bug_when>
    <thetext>Created attachment 26393
Patch, testcase, changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104271</commentid>
    <comment_count>4</comment_count>
      <attachid>26393</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-03 18:39:53 -0800</bug_when>
    <thetext>Comment on attachment 26393
Patch, testcase, changelog

&gt; +            } else if (m_style-&gt;hasTransform() != newStyle-&gt;hasTransform() ||
&gt; +                       m_style-&gt;hasOpacity() != newStyle-&gt;hasOpacity()) {
&gt; +                // If we don&apos;t have a layer yet, but we are going to get one because of a transform or opacity change, then
&gt;                  // we need to repaint the old position of the object

The comment is right, but the code is wrong. This will decide to repaint something that already has a layer if its opacity is going to change. Can we do a better check that gets this right? We want to repaint if &quot;gets own layer&quot; is going to change, so that&apos;s what we should be checking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104272</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-03 19:03:11 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 26393 [review])
&gt; &gt; +            } else if (m_style-&gt;hasTransform() != newStyle-&gt;hasTransform() ||
&gt; &gt; +                       m_style-&gt;hasOpacity() != newStyle-&gt;hasOpacity()) {
&gt; &gt; +                // If we don&apos;t have a layer yet, but we are going to get one because of a transform or opacity change, then
&gt; &gt;                  // we need to repaint the old position of the object
&gt; 
&gt; The comment is right, but the code is wrong. This will decide to repaint
&gt; something that already has a layer if its opacity is going to change. Can we do
&gt; a better check that gets this right? We want to repaint if &quot;gets own layer&quot; is
&gt; going to change, so that&apos;s what we should be checking.

This is in a !hasLayer() clause, so it will actually do the right thing.
However, I will tidy up the logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104275</commentid>
    <comment_count>6</comment_count>
      <attachid>26400</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-03 19:11:16 -0800</bug_when>
    <thetext>Created attachment 26400
Improved patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104298</commentid>
    <comment_count>7</comment_count>
      <attachid>26400</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-03 20:44:11 -0800</bug_when>
    <thetext>Comment on attachment 26400
Improved patch

&gt; +    bool hasOpacity() const { return rareNonInheritedData-&gt;opacity &lt; 1; }

I&apos;m not a huge fan of this name for the function. What this function means is that you have non-standard opacity, non-opaque opacity. It says nothing about whether you have any CSS opacity rules, for example. You could have one saying opacity: 1.

But the real problem is it doesn&apos;t make sense to say that a fully opaque object with an opacity of &quot;1&quot; does not have opacity.

I&apos;d suggest just saying opacity() &lt; 1 at the call site, or coming up with a better name for this helper function.

r=me with or without a change to that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104361</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-04 10:40:06 -0800</bug_when>
    <thetext>I changed it to test opacity() &lt; 1 at the call site.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/repaint/create-layer-repaint.html
	A	LayoutTests/platform/mac/fast/repaint/create-layer-repaint-expected.checksum
	A	LayoutTests/platform/mac/fast/repaint/create-layer-repaint-expected.png
	A	LayoutTests/platform/mac/fast/repaint/create-layer-repaint-expected.txt
	M	WebCore/ChangeLog
	M	WebCore/rendering/RenderObject.cpp
Committed r39588

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>26392</attachid>
            <date>2009-01-03 10:50:44 -0800</date>
            <delta_ts>2009-01-03 10:50:44 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>transition-test.html</filename>
            <type>text/html</type>
            <size>732</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
ICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cjxo
dG1sPgo8aGVhZD4KICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LXR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CiAgPHRpdGxlPkNTUyBUcmFuc2l0aW9uIHRlc3QgY2Fz
ZTwvdGl0bGU+CiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KICAgIC5z
dHJldGNoeSB7CiAgICAgIGJhY2tncm91bmQ6IGJsdWU7CiAgICAgIG9wYWNpdHk6IC42NjY7CiAg
ICAgIGhlaWdodDogNTBweDsKICAgICAgd2lkdGg6IDIzMnB4OwogICAgICBtYXJnaW46IDIwcHg7
CiAgICB9CiAgICAKICAgIC5zdHJldGNoeTpob3ZlciB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAg
IHdpZHRoOiA1MDBweDsKICAgIH0KICAgIAogIDwvc3R5bGU+CjwvaGVhZD4KCjxib2R5PgogIDxw
PkhvdmVyIG92ZXIgdGhlIGJsdWUgYm94LCB0aGVuIHVuaG92ZXIuPC9wPgogIDxkaXYgY2xhc3M9
InN0cmV0Y2h5Ij48L2Rpdj4KCiAgPHA+V2l0aCB0cmFuc2l0aW9uOjwvcD4KICA8ZGl2IGNsYXNz
PSJzdHJldGNoeSIgc3R5bGU9Ii13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZS1v
dXQsIHdpZHRoIC41cyBlYXNlLW91dDsiPjwvZGl2Pgo8L2JvZHk+Cgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26393</attachid>
            <date>2009-01-03 12:20:06 -0800</date>
            <delta_ts>2009-01-03 19:11:16 -0800</delta_ts>
            <desc>Patch, testcase, changelog</desc>
            <filename>23090_patch.txt</filename>
            <type>text/plain</type>
            <size>6219</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyOGMyMDlhLi40ODE3NWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDEt
MDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMDkwCisgICAgICAgIAorICAgICAgICBSZXBhaW50IHRlc3Qg
Zm9yIHJlcGFpbnRpbmcgd2hlbiBhbiBlbGVtZW50IGdldHMgc21hbGxlciwKKyAgICAgICAgYW5k
IGdhaW5zIGEgUmVuZGVyTGF5ZXIgYXQgdGhlIHNhbWUgdGltZS4KKyAgICAgICAgCisgICAgICAg
ICogZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC93aWR0
aC1sYXllci1jaGFuZ2UtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
CiAyMDA5LTAxLTAyICBEYXZpZCBTbWl0aCAgPGNhdGZpc2gubWFuQGdtYWlsLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC93aWR0aC1sYXllci1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC93aWR0aC1sYXllci1jaGFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi44M2RkMjZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3dpZHRoLWxheWVyLWNoYW5nZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBo
dG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisgICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sPgorPGhl
YWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PXV0Zi04Ij4KKyAgPHRpdGxlPkNTUyBUcmFuc2l0aW9uIHRlc3QgY2FzZTwvdGl0
bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLnN0cmV0
Y2h5IHsKKyAgICAgIGJhY2tncm91bmQ6IGdyZWVuOworICAgICAgb3BhY2l0eTogMC41OworICAg
ICAgaGVpZ2h0OiA1MHB4OworICAgICAgd2lkdGg6IDI1MHB4OworICAgICAgbWFyZ2luOiAyMHB4
OworICAgIH0KKyAgICAKKyAgICAuc3RyZXRjaHkuYmlnIHsKKyAgICAgIGJhY2tncm91bmQ6IHJl
ZDsKKyAgICAgIG9wYWNpdHk6IDE7CisgICAgICB3aWR0aDogNTAwcHg7CisgICAgfQorICA8L3N0
eWxlPgorICA8c2NyaXB0IHNyYz0icmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48
L3NjcmlwdD4KKyAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgewor
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5jbGFzc05hbWUgPSAnc3RyZXRj
aHknOworICAgIH0KKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blJlcGFp
bnRUZXN0KCkiPgorICA8cD5JZiB5b3Ugc2VlIHJlZCwgdGhlIHRlc3QgZmFpbGVkPC9wPgorICA8
ZGl2IGlkPSJ0ZXN0IiBjbGFzcz0iYmlnIHN0cmV0Y2h5Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvd2lk
dGgtbGF5ZXItY2hhbmdlLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvcmVwYWludC93aWR0aC1sYXllci1jaGFuZ2UtZXhwZWN0ZWQuY2hlY2tzdW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTdiMDVmZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvd2lkdGgtbGF5ZXItY2hh
bmdlLWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKKzYxOTQxMzM4NDNiNjkyYzQ0Njgz
N2M1N2Y5OGI5NDA2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC93aWR0aC1sYXllci1jaGFuZ2UtZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC93aWR0aC1s
YXllci1jaGFuZ2UtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjM4Y2Y5YTQKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS1leHBlY3RlZC5wbmcgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3dp
ZHRoLWxheWVyLWNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc1ZGE1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvd2lkdGgtbGF5ZXItY2hhbmdlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDEyNAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTI0CisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDg4CisgICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMTc3eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTc3OiAi
SWYgeW91IHNlZSByZWQsIHRoZSB0ZXN0IGZhaWxlZCIKK2xheWVyIGF0ICgyOCw1NCkgc2l6ZSAy
NTB4NTAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwLDM4KSBzaXplIDI1MHg1MCBbYmdjb2xv
cj0jMDA4MDAwXQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAwOWNjMWQ4Li5jZTc1MmUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDA5LTAxLTAzICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzA5MAorICAgICAgICAKKyAgICAgICAgSWYgYW4gb2JqZWN0IGdldHMg
YSBMYXlvdXQgaGludCwgYW5kIHRoZSBzdHlsZSBjaGFuZ2Ugd2lsbCByZXN1bHQgaW4KKyAgICAg
ICAgdGhlIGNyZWF0aW9uIG9mIGEgUmVuZGVyTGF5ZXIsIHRoZW4gd2UgbmVlZCB0byByZXBhaW50
IHRoZSBvbGQgcG9zaXRpb24KKyAgICAgICAgb2YgdGhlIG9iamVjdC4gVGhpcyB3YXMgZG9uZSBm
b3IgdHJhbnNmb3JtLCBidXQgd2UgaGF2ZSB0byB0ZXN0IG9wYWNpdHkgdG9vLgorICAgICAgICAK
KyAgICAgICAgVGVzdDogZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS5odG1sCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpoYXNPcGFj
aXR5KToKKwogMjAwOS0wMS0wMiAgQ2FyeSBDbGFyayAgPGNhcnljbGFya0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGFuZCBsYW5kZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAppbmRleCBlYjRhNjEyLi5kNTNiYzUyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKQEAgLTIzMDMsOCArMjMwMyw5IEBAIHZvaWQgUmVuZGVyT2JqZWN0Ojpz
dHlsZVdpbGxDaGFuZ2UoUmVuZGVyU3R5bGU6OkRpZmYgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUq
IG5lCiAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPm9wYWNpdHkoKSAhPSBuZXdTdHlsZS0+
b3BhY2l0eSgpIHx8CiAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnRyYW5zZm9ybSgpICE9
IG5ld1N0eWxlLT50cmFuc2Zvcm0oKSkKICAgICAgICAgICAgICAgICBsYXllcigpLT5yZXBhaW50
SW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobV9zdHlsZS0+
dHJhbnNmb3JtKCkgIT0gbmV3U3R5bGUtPnRyYW5zZm9ybSgpKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gSWYgd2UgZG9uJ3QgaGF2ZSBhIGxheWVyIHlldCwgYnV0IHdlIGFyZSBnb2luZyB0byBnZXQg
b25lIGJlY2F1c2Ugb2YgYSB0cmFuc2Zvcm0gY2hhbmdlLCB0aGVuCisgICAgICAgICAgICB9IGVs
c2UgaWYgKG1fc3R5bGUtPmhhc1RyYW5zZm9ybSgpICE9IG5ld1N0eWxlLT5oYXNUcmFuc2Zvcm0o
KSB8fAorICAgICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5oYXNPcGFjaXR5KCkgIT0gbmV3
U3R5bGUtPmhhc09wYWNpdHkoKSkgeworICAgICAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhh
dmUgYSBsYXllciB5ZXQsIGJ1dCB3ZSBhcmUgZ29pbmcgdG8gZ2V0IG9uZSBiZWNhdXNlIG9mIGEg
dHJhbnNmb3JtIG9yIG9wYWNpdHkgY2hhbmdlLCB0aGVuCiAgICAgICAgICAgICAgICAgLy8gd2Ug
bmVlZCB0byByZXBhaW50IHRoZSBvbGQgcG9zaXRpb24gb2YgdGhlIG9iamVjdAogICAgICAgICAg
ICAgICAgIHJlcGFpbnQoKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCmluZGV4IDJmNGNiY2UuLmQ3M2U0MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaApAQCAtNTc3LDYgKzU3Nyw3IEBAIHB1YmxpYzoKICAgICBmbG9hdCB0ZXh0
U3Ryb2tlV2lkdGgoKSBjb25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFN0cm9r
ZVdpZHRoOyB9CiAgICAgY29uc3QgQ29sb3ImIHRleHRGaWxsQ29sb3IoKSBjb25zdCB7IHJldHVy
biByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEZpbGxDb2xvcjsgfQogICAgIGZsb2F0IG9wYWNpdHko
KSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3BhY2l0eTsgfQorICAgIGJv
b2wgaGFzT3BhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5vcGFj
aXR5IDwgMTsgfQogICAgIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxDb250cm9sUGFydD4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYXBwZWFyYW5j
ZSk7IH0KICAgICBFQm94QWxpZ25tZW50IGJveEFsaWduKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8RUJveEFsaWdubWVudD4ocmFyZU5vbkluaGVyaXRlZERhdGEtPmZsZXhpYmxlQm94LT5h
bGlnbik7IH0KICAgICBFQm94RGlyZWN0aW9uIGJveERpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PEVCb3hEaXJlY3Rpb24+KGluaGVyaXRlZF9mbGFncy5fYm94X2RpcmVjdGlv
bik7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26400</attachid>
            <date>2009-01-03 19:11:16 -0800</date>
            <delta_ts>2009-01-03 20:44:11 -0800</delta_ts>
            <desc>Improved patch</desc>
            <filename>23090_patch.txt</filename>
            <type>text/plain</type>
            <size>6217</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyOGMyMDlhLi40ODE3NWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDEt
MDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMDkwCisgICAgICAgIAorICAgICAgICBSZXBhaW50IHRlc3Qg
Zm9yIHJlcGFpbnRpbmcgd2hlbiBhbiBlbGVtZW50IGdldHMgc21hbGxlciwKKyAgICAgICAgYW5k
IGdhaW5zIGEgUmVuZGVyTGF5ZXIgYXQgdGhlIHNhbWUgdGltZS4KKyAgICAgICAgCisgICAgICAg
ICogZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC93aWR0
aC1sYXllci1jaGFuZ2UtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
CiAyMDA5LTAxLTAyICBEYXZpZCBTbWl0aCAgPGNhdGZpc2gubWFuQGdtYWlsLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC93aWR0aC1sYXllci1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC93aWR0aC1sYXllci1jaGFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi44M2RkMjZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3dpZHRoLWxheWVyLWNoYW5nZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBo
dG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisgICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sPgorPGhl
YWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PXV0Zi04Ij4KKyAgPHRpdGxlPkNTUyBUcmFuc2l0aW9uIHRlc3QgY2FzZTwvdGl0
bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLnN0cmV0
Y2h5IHsKKyAgICAgIGJhY2tncm91bmQ6IGdyZWVuOworICAgICAgb3BhY2l0eTogMC41OworICAg
ICAgaGVpZ2h0OiA1MHB4OworICAgICAgd2lkdGg6IDI1MHB4OworICAgICAgbWFyZ2luOiAyMHB4
OworICAgIH0KKyAgICAKKyAgICAuc3RyZXRjaHkuYmlnIHsKKyAgICAgIGJhY2tncm91bmQ6IHJl
ZDsKKyAgICAgIG9wYWNpdHk6IDE7CisgICAgICB3aWR0aDogNTAwcHg7CisgICAgfQorICA8L3N0
eWxlPgorICA8c2NyaXB0IHNyYz0icmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48
L3NjcmlwdD4KKyAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCisgICAgewor
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5jbGFzc05hbWUgPSAnc3RyZXRj
aHknOworICAgIH0KKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blJlcGFp
bnRUZXN0KCkiPgorICA8cD5JZiB5b3Ugc2VlIHJlZCwgdGhlIHRlc3QgZmFpbGVkPC9wPgorICA8
ZGl2IGlkPSJ0ZXN0IiBjbGFzcz0iYmlnIHN0cmV0Y2h5Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvd2lk
dGgtbGF5ZXItY2hhbmdlLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvcmVwYWludC93aWR0aC1sYXllci1jaGFuZ2UtZXhwZWN0ZWQuY2hlY2tzdW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTdiMDVmZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvd2lkdGgtbGF5ZXItY2hh
bmdlLWV4cGVjdGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKKzYxOTQxMzM4NDNiNjkyYzQ0Njgz
N2M1N2Y5OGI5NDA2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC93aWR0aC1sYXllci1jaGFuZ2UtZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVwYWludC93aWR0aC1s
YXllci1jaGFuZ2UtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjM4Y2Y5YTQKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS1leHBlY3RlZC5wbmcgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZXBhaW50L3dp
ZHRoLWxheWVyLWNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc1ZGE1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvd2lkdGgtbGF5ZXItY2hhbmdlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDEyNAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTI0CisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDg4CisgICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMTc3eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTc3OiAi
SWYgeW91IHNlZSByZWQsIHRoZSB0ZXN0IGZhaWxlZCIKK2xheWVyIGF0ICgyOCw1NCkgc2l6ZSAy
NTB4NTAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwLDM4KSBzaXplIDI1MHg1MCBbYmdjb2xv
cj0jMDA4MDAwXQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAwOWNjMWQ4Li5jZTc1MmUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDA5LTAxLTAzICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzA5MAorICAgICAgICAKKyAgICAgICAgSWYgYW4gb2JqZWN0IGdldHMg
YSBMYXlvdXQgaGludCwgYW5kIHRoZSBzdHlsZSBjaGFuZ2Ugd2lsbCByZXN1bHQgaW4KKyAgICAg
ICAgdGhlIGNyZWF0aW9uIG9mIGEgUmVuZGVyTGF5ZXIsIHRoZW4gd2UgbmVlZCB0byByZXBhaW50
IHRoZSBvbGQgcG9zaXRpb24KKyAgICAgICAgb2YgdGhlIG9iamVjdC4gVGhpcyB3YXMgZG9uZSBm
b3IgdHJhbnNmb3JtLCBidXQgd2UgaGF2ZSB0byB0ZXN0IG9wYWNpdHkgdG9vLgorICAgICAgICAK
KyAgICAgICAgVGVzdDogZmFzdC9yZXBhaW50L3dpZHRoLWxheWVyLWNoYW5nZS5odG1sCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpoYXNPcGFj
aXR5KToKKwogMjAwOS0wMS0wMiAgQ2FyeSBDbGFyayAgPGNhcnljbGFya0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGFuZCBsYW5kZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAppbmRleCBlYjRhNjEyLi5kYTc0YzEzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKQEAgLTIzMDMsOSArMjMwMyw5IEBAIHZvaWQgUmVuZGVyT2JqZWN0Ojpz
dHlsZVdpbGxDaGFuZ2UoUmVuZGVyU3R5bGU6OkRpZmYgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUq
IG5lCiAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPm9wYWNpdHkoKSAhPSBuZXdTdHlsZS0+
b3BhY2l0eSgpIHx8CiAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnRyYW5zZm9ybSgpICE9
IG5ld1N0eWxlLT50cmFuc2Zvcm0oKSkKICAgICAgICAgICAgICAgICBsYXllcigpLT5yZXBhaW50
SW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobV9zdHlsZS0+
dHJhbnNmb3JtKCkgIT0gbmV3U3R5bGUtPnRyYW5zZm9ybSgpKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gSWYgd2UgZG9uJ3QgaGF2ZSBhIGxheWVyIHlldCwgYnV0IHdlIGFyZSBnb2luZyB0byBnZXQg
b25lIGJlY2F1c2Ugb2YgYSB0cmFuc2Zvcm0gY2hhbmdlLCB0aGVuCi0gICAgICAgICAgICAgICAg
Ly8gd2UgbmVlZCB0byByZXBhaW50IHRoZSBvbGQgcG9zaXRpb24gb2YgdGhlIG9iamVjdAorICAg
ICAgICAgICAgfSBlbHNlIGlmIChuZXdTdHlsZS0+aGFzVHJhbnNmb3JtKCkgfHwgbmV3U3R5bGUt
Pmhhc09wYWNpdHkoKSkgeworICAgICAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBs
YXllciB5ZXQsIGJ1dCB3ZSBhcmUgZ29pbmcgdG8gZ2V0IG9uZSBiZWNhdXNlIG9mIHRyYW5zZm9y
bSBvciBvcGFjaXR5LAorICAgICAgICAgICAgICAgIC8vICB0aGVuIHdlIG5lZWQgdG8gcmVwYWlu
dCB0aGUgb2xkIHBvc2l0aW9uIG9mIHRoZSBvYmplY3QuCiAgICAgICAgICAgICAgICAgcmVwYWlu
dCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAppbmRleCAyZjRjYmNlLi5kNzNlNDBiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKQEAgLTU3Nyw2ICs1NzcsNyBAQCBwdWJsaWM6CiAgICAgZmxvYXQgdGV4dFN0
cm9rZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPnRleHRTdHJva2VX
aWR0aDsgfQogICAgIGNvbnN0IENvbG9yJiB0ZXh0RmlsbENvbG9yKCkgY29uc3QgeyByZXR1cm4g
cmFyZUluaGVyaXRlZERhdGEtPnRleHRGaWxsQ29sb3I7IH0KICAgICBmbG9hdCBvcGFjaXR5KCkg
Y29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm9wYWNpdHk7IH0KKyAgICBib29s
IGhhc09wYWNpdHkoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3BhY2l0
eSA8IDE7IH0KICAgICBDb250cm9sUGFydCBhcHBlYXJhbmNlKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q29udHJvbFBhcnQ+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2FwcGVhcmFuY2Up
OyB9CiAgICAgRUJveEFsaWdubWVudCBib3hBbGlnbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PEVCb3hBbGlnbm1lbnQ+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5mbGV4aWJsZUJveC0+YWxp
Z24pOyB9CiAgICAgRUJveERpcmVjdGlvbiBib3hEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxFQm94RGlyZWN0aW9uPihpbmhlcml0ZWRfZmxhZ3MuX2JveF9kaXJlY3Rpb24p
OyB9Cg==
</data>
<flag name="review"
          id="12519"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>