<?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>28108</bug_id>
          
          <creation_ts>2009-08-08 08:49:40 -0700</creation_ts>
          <short_desc>Tint of checkboxes/radio buttons/etc. not correctly updated on Chromium/Mac</short_desc>
          <delta_ts>2009-08-12 09:01:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>0</everconfirmed>
          <reporter name="Viet-Trung Luu">viettrungluu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>avi</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>hyatt</cc>
    
    <cc>jrg</cc>
    
    <cc>playmobil</cc>
    
    <cc>thakis</cc>
    
    <cc>viettrungluu</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>138332</commentid>
    <comment_count>0</comment_count>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-08 08:49:40 -0700</bug_when>
    <thetext>Original bug: &lt;http://crbug.com/18199&gt;. The tints of controls in web content don&apos;t reflect the &quot;(in)active state&quot; of the window, remaining blue all the time. To check:

1. On Chromium/Mac, go to a webpage with such a control (including this one).
2. Select another window/application (e.g., Finder desktop) in such a way that you can still see the webpage.
3. Notice that the blue parts of the controls don&apos;t go grey.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138334</commentid>
    <comment_count>1</comment_count>
      <attachid>34367</attachid>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-08 08:52:27 -0700</bug_when>
    <thetext>Created attachment 34367
Fixes bug 28108 (control tints on Chromium/Mac)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138342</commentid>
    <comment_count>2</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2009-08-08 09:04:05 -0700</bug_when>
    <thetext>Does this work correctly if you set &quot;appearance&quot; to graphite in sysprefs-&gt;appearance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138343</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-08-08 09:04:56 -0700</bug_when>
    <thetext>Jeremy, could you take a look? I don&apos;t even know what I am looking at here :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138779</commentid>
    <comment_count>4</comment_count>
    <who name="John Grabowski">jrg</who>
    <bug_when>2009-08-10 12:59:10 -0700</bug_when>
    <thetext>2 comments.  
1) Can you confirm we get a repaint request (to cause retinting) when Chromium loses/gains focus?  
2) The explicit tinting by color/NSControlTint seems a bit specific.  Isn&apos;t there a better way to do this (e.g. setDrawingModeForFocusState: or something like that)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138780</commentid>
    <comment_count>5</comment_count>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-10 13:04:10 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Does this work correctly if you set &quot;appearance&quot; to graphite in
&gt; sysprefs-&gt;appearance?

Tried it just now (must remember to add myself to the CC list).

But, shockingly, yes it works (despite the name of the Cocoa constant).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138785</commentid>
    <comment_count>6</comment_count>
    <who name="Avi Drissman">avi</who>
    <bug_when>2009-08-10 13:08:51 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; 2) The explicit tinting by color/NSControlTint seems a bit specific.  Isn&apos;t
&gt; there a better way to do this (e.g. setDrawingModeForFocusState: or something
&gt; like that)

John:

Apparently the answer to drawing active or not _is_ to use the tinting... see
http://developer.apple.com/documentation/Cocoa/Conceptual/ControlCell/SystemTintAware.html
for details.

But you can&apos;t hard-code NSBlueControlTint. Bad idea. Use [NSColor
currentControlTint] instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138803</commentid>
    <comment_count>7</comment_count>
      <attachid>34510</attachid>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-10 13:40:05 -0700</bug_when>
    <thetext>Created attachment 34510
Updated patch (as per Avi&apos;s comments)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138805</commentid>
    <comment_count>8</comment_count>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-10 13:44:02 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; 2 comments.  
&gt; 1) Can you confirm we get a repaint request (to cause retinting) when Chromium
&gt; loses/gains focus?  
&gt; 2) The explicit tinting by color/NSControlTint seems a bit specific.  Isn&apos;t
&gt; there a better way to do this (e.g. setDrawingModeForFocusState: or something
&gt; like that)

I think Avi answered 1) on #chromium, but I can also confirm it: when we call SetActive() or whatever it is (which we do on losing/gaining focus), this causes a repaint.

Note: We should also catch changes in the system control tint, and update immediately (so you get instant gratification when using System Preferences/Appearances/...) -- Safari does (somewhat surprisingly). I&apos;ll file a Chromium bug on this, though it&apos;s pretty low-priority.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138809</commentid>
    <comment_count>9</comment_count>
      <attachid>34510</attachid>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-08-10 13:47:33 -0700</bug_when>
    <thetext>Comment on attachment 34510
Updated patch (as per Avi&apos;s comments)

I&apos;m not a reviewer, but here are my comments per dglazkov&apos;s request:

Could you add a more complete explanation here including answers to the following questions and anything else someone looking at this code further down the road:
* Why do we need this when Safari doesn&apos;t?
* Are controls repainted when in background?
* Comment with a summary of Avi&apos;s note.

&gt; +static void updateNSCellControlTint(NSCell* cell, RenderObject* o) {
&gt; +    if (o-&gt;document()-&gt;frame() &amp;&amp; o-&gt;document()-&gt;frame()-&gt;page() &amp;&amp;
&gt; +            o-&gt;document()-&gt;frame()-&gt;page()-&gt;focusController()) {
Could you split this whole check into a temp variable and then text that variable, focusControllerIsValid or somesuch.

&gt; +        FocusController* focusCtlr =
&gt; +                o-&gt;document()-&gt;frame()-&gt;page()-&gt;focusController();
&gt; +        [cell setControlTint:(focusCtlr-&gt;isActive() ?
&gt; +                                  [NSColor currentControlTint] :
&gt; +                                  NSClearControlTint)];
Again temp variable and lose the ?:, should make this a little easier to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138812</commentid>
    <comment_count>10</comment_count>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-10 14:10:16 -0700</bug_when>
    <thetext>Let me see if I can make things a lot nicer. Hang on a sec....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138835</commentid>
    <comment_count>11</comment_count>
      <attachid>34520</attachid>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-10 15:04:45 -0700</bug_when>
    <thetext>Created attachment 34520
Updated patch

I realized that RenderTheme has an isActive() method. I also made things more consistent with the other updateFooState() methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138837</commentid>
    <comment_count>12</comment_count>
      <attachid>34520</attachid>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-08-10 15:13:41 -0700</bug_when>
    <thetext>Comment on attachment 34520
Updated patch

&gt; +// Updates the control tint of |cell| (with information from |o|).
Still missing more thorough function doc as mentioned in previous comment.
&gt; +void RenderThemeChromiumMac::updateActiveState(NSCell* cell, const RenderObject* o) {

Other than that looks good, unless Avi or John have any objections, w/more thorough documentation I&apos;m fine with r+ing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138839</commentid>
    <comment_count>13</comment_count>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-10 15:18:53 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Could you add a more complete explanation here including answers to the
&gt; following questions and anything else someone looking at this code further down
&gt; the road:
&gt; * Why do we need this when Safari doesn&apos;t?

When we draw our controls using Cocoa, we feed them inView:nil. The code in RenderThemeMac.mm (most similar to ours) usually feeds inView:o-&gt;view()-&gt;frameView()-&gt;documentView(), i.e., a real NSView, from which the control can determine the &quot;active&quot; state. The current code in
RenderThemeSafari.cpp checks isActive() in its determineState().

[In the latest version of the patch, I use isActive(), which does what I previously did manually.]

&gt; * Are controls repainted when in background?

They are repainted whenever the FocusController&apos;s setActive() is called and this actually results in a changed state (setActive() checks). We only call down to setActive() when necessary, for the foreground view.

&gt; * Comment with a summary of Avi&apos;s note.
&gt; 
&gt; &gt; +static void updateNSCellControlTint(NSCell* cell, RenderObject* o) {
&gt; &gt; +    if (o-&gt;document()-&gt;frame() &amp;&amp; o-&gt;document()-&gt;frame()-&gt;page() &amp;&amp;
&gt; &gt; +            o-&gt;document()-&gt;frame()-&gt;page()-&gt;focusController()) {
&gt; Could you split this whole check into a temp variable and then text that
&gt; variable, focusControllerIsValid or somesuch.

This is gone, i.e., now inside the pre-existing RenderTheme::isActive().

&gt; &gt; +        FocusController* focusCtlr =
&gt; &gt; +                o-&gt;document()-&gt;frame()-&gt;page()-&gt;focusController();
&gt; &gt; +        [cell setControlTint:(focusCtlr-&gt;isActive() ?
&gt; &gt; +                                  [NSColor currentControlTint] :
&gt; &gt; +                                  NSClearControlTint)];
&gt; Again temp variable and lose the ?:, should make this a little easier to read.

Please take a look at the current patch (it still has a ?:, but in a hopefully-more-reasonable context). I also lined things up with the current updateFooState()&apos;s.

Note that since all NSCells have an &quot;active state&quot;/control tint, I set said state for everything. If one is very confident, one could remove the setting of the active state for various controls (but I prefer to play it safe).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138840</commentid>
    <comment_count>14</comment_count>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-10 15:21:56 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 34520 [details])
&gt; &gt; +// Updates the control tint of |cell| (with information from |o|).
&gt; Still missing more thorough function doc as mentioned in previous comment.
&gt; &gt; +void RenderThemeChromiumMac::updateActiveState(NSCell* cell, const RenderObject* o) {

Thanks for reviewing it. I can provide more thorough documentation if you want, though my terse comment is much more than what you find for other functions in WebKit.... :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138841</commentid>
    <comment_count>15</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-08-10 15:27:44 -0700</bug_when>
    <thetext>Again, I&apos;m not a WebKit reviewer, but I&apos;d prefer this to have better documentation, to make things easier for the next person who has to poke around this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138846</commentid>
    <comment_count>16</comment_count>
      <attachid>34523</attachid>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-10 15:44:14 -0700</bug_when>
    <thetext>Created attachment 34523
Now with a beefier comment.

Maybe it&apos;s time to start writing comments in WebKit.... :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138847</commentid>
    <comment_count>17</comment_count>
      <attachid>34523</attachid>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-08-10 15:52:52 -0700</bug_when>
    <thetext>Comment on attachment 34523
Now with a beefier comment.

&gt; +// Updates the control tint (a.k.a. active state) of |cell| (depending on
&gt; +// |RenderTheme::isActive(o)|). This should be called before drawing any
&gt; +// NSCell-derived control, unless you are sure that it isn&apos;t needed; in any
&gt; +// case, it won&apos;t do any harm. We need to set the control tint explicitly since
&gt; +// we do not give |cell| a parent NSView.

How about something like:
In the Chromium port, the renderer runs as a background process and the control&apos;s NScells lack a parent NSView. Therefore controls don&apos;t have their tint color updated correctly when the Application is activated/deactivated.
FocusController&apos;s setActive() is called when the application is activated/deactivated which causes a repaint at which time this code is called.
This function should be called before drawing any NSCell-derived controls, unless you&apos;re sure it isn&apos;t needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139163</commentid>
    <comment_count>18</comment_count>
      <attachid>34612</attachid>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-11 16:38:20 -0700</bug_when>
    <thetext>Created attachment 34612
Updated with Jeremy&apos;s suggested comment (more or less).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139164</commentid>
    <comment_count>19</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-08-11 16:42:48 -0700</bug_when>
    <thetext>Looks Good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139326</commentid>
    <comment_count>20</comment_count>
      <attachid>34612</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-08-12 08:38:28 -0700</bug_when>
    <thetext>Comment on attachment 34612
Updated with Jeremy&apos;s suggested comment (more or less).

From the style patrol:

Needs a ChangeLog entry.

&gt; +void RenderThemeChromiumMac::updateActiveState(NSCell* cell, const RenderObject* o) {

Opening brace on new line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139335</commentid>
    <comment_count>21</comment_count>
      <attachid>34664</attachid>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2009-08-12 08:48:55 -0700</bug_when>
    <thetext>Created attachment 34664
Changelog entry back, style fix.

Ack! -- the directory from which you run svn-create-patch actually matters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139339</commentid>
    <comment_count>22</comment_count>
      <attachid>34664</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-08-12 08:59:01 -0700</bug_when>
    <thetext>Comment on attachment 34664
Changelog entry back, style fix.

r=me, based on Mac-ies&apos; comments above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139340</commentid>
    <comment_count>23</comment_count>
      <attachid>34664</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-08-12 09:01:10 -0700</bug_when>
    <thetext>Comment on attachment 34664
Changelog entry back, style fix.

r=me, based on Mac-ies&apos; comments above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139341</commentid>
    <comment_count>24</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-08-12 09:01:34 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/47108.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34367</attachid>
            <date>2009-08-08 08:52:27 -0700</date>
            <delta_ts>2009-08-10 13:40:05 -0700</delta_ts>
            <desc>Fixes bug 28108 (control tints on Chromium/Mac)</desc>
            <filename>patch-cr18199-1.txt</filename>
            <type>text/plain</type>
            <size>5902</size>
            <attacher name="Viet-Trung Luu">viettrungluu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Njk1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDgtMDggIFZpZXQtVHJ1bmcgTHV1ICA8dmlldHRydW5nbHV1
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFeHBsaWNpdGx5IHNldCBjb250cm9sIHRpbnRzIGZvciBDaHJvbWl1bSBvbiBNYWMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODEwOAorICAg
ICAgICBodHRwOi8vY3JidWcuY29tLzE4MTk5CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZU5TQ2VsbENvbnRy
b2xUaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50
Q2hlY2tib3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFp
bnRSYWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWlu
dEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWlu
dE1lbnVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBh
aW50U2xpZGVyVGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6cGFpbnRTZWFyY2hGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9t
aXVtTWFjOjpwYWludFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbik6CisKIDIwMDktMDgtMDggIEphbiBNaWNoYWVsIEFsb256byAg
PGptYWxvbnpvQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCShyZXZp
c2lvbiA0Njk1MykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDkgQEAKICNpbXBvcnQgIkNTU1N0eWxlU2Vs
ZWN0b3IuaCIKICNpbXBvcnQgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbXBvcnQgIkVsZW1lbnQu
aCIKKyNpbXBvcnQgIkZvY3VzQ29udHJvbGxlci5oIgogI2ltcG9ydCAiRm91bmRhdGlvbkV4dHJh
cy5oIgorI2ltcG9ydCAiRnJhbWUuaCIKICNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAi
R3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJIVE1MSW5wdXRFbGVtZW50LmgiCkBAIC00Niw2
ICs0OCw3IEBACiAjaW1wb3J0ICJJbWFnZS5oIgogI2ltcG9ydCAiTG9jYWxDdXJyZW50R3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW1wb3J0ICJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIgorI2ltcG9ydCAi
UGFnZS5oIgogI2ltcG9ydCAiUmVuZGVyTWVkaWEuaCIKICNpbXBvcnQgIlJlbmRlclNsaWRlci5o
IgogI2ltcG9ydCAiUmVuZGVyVmlldy5oIgpAQCAtNzAxLDYgKzcwNCwxNyBAQCBOU0NvbnRyb2xT
aXplIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmNvCiAgICAgcmV0dXJuIE5TTWluaUNvbnRyb2xT
aXplOwogfQogCisvLyBVcGRhdGVzIHRoZSBjb250cm9sIHRpbnQgb2YgfGNlbGx8ICh3aXRoIGlu
Zm9ybWF0aW9uIGZyb20gfG98KS4KK3N0YXRpYyB2b2lkIHVwZGF0ZU5TQ2VsbENvbnRyb2xUaW50
KE5TQ2VsbCogY2VsbCwgUmVuZGVyT2JqZWN0KiBvKSB7CisgICAgaWYgKG8tPmRvY3VtZW50KCkt
PmZyYW1lKCkgJiYgby0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+cGFnZSgpICYmCisgICAgICAgICAg
ICBvLT5kb2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpKSB7Cisg
ICAgICAgIEZvY3VzQ29udHJvbGxlciogZm9jdXNDdGxyID0KKyAgICAgICAgICAgICAgICBvLT5k
b2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpOworICAgICAgICBb
Y2VsbCBzZXRDb250cm9sVGludDooZm9jdXNDdGxyLT5pc0FjdGl2ZSgpID8gTlNCbHVlQ29udHJv
bFRpbnQgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlNDbGVhckNvbnRyb2xUaW50KV07CisgICAgfQorfQorCiAvLyBGSVhNRTogVGhpcyB1
c2VkIHRvIGJlIGluIHRoZSB1cHN0cmVhbSB2ZXJzaW9uIHVudGlsIGl0IHdhcyBjb252ZXJ0ZWQg
dG8gdGhlIG5ldyB0aGVtZSBBUEkgaW4gcjM3NzMxLgogYm9vbCBSZW5kZXJUaGVtZUNocm9taXVt
TWFjOjpwYWludENoZWNrYm94KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcikKIHsKQEAgLTcyOSw2ICs3NDMs
NyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50Q2hlY2tiCiAgICAgICAgIHBh
aW50SW5mby5jb250ZXh0LT50cmFuc2xhdGUoLWluZmxhdGVkUmVjdC54KCksIC1pbmZsYXRlZFJl
Y3QueSgpKTsKICAgICB9CiAgICAgCisgICAgdXBkYXRlTlNDZWxsQ29udHJvbFRpbnQoY2hlY2ti
b3gsIG8pOwogICAgIFtjaGVja2JveCBkcmF3V2l0aEZyYW1lOk5TUmVjdChJbnRSZWN0VG9OU1Jl
Y3QoaW5mbGF0ZWRSZWN0KSkgaW5WaWV3Om5pbF07CiAgICAgW2NoZWNrYm94IHNldENvbnRyb2xW
aWV3Om5pbF07CiAKQEAgLTgxMCw2ICs4MjUsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1N
YWM6OnBhaW50UmFkaW8oCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT50cmFuc2xhdGUoLWlu
ZmxhdGVkUmVjdC54KCksIC1pbmZsYXRlZFJlY3QueSgpKTsKICAgICB9CiAKKyAgICB1cGRhdGVO
U0NlbGxDb250cm9sVGludChyYWRpbywgbyk7CiAgICAgW3JhZGlvIGRyYXdXaXRoRnJhbWU6TlNS
ZWN0KEludFJlY3RUb05TUmVjdChpbmZsYXRlZFJlY3QpKSBpblZpZXc6bmlsXTsKICAgICBbcmFk
aW8gc2V0Q29udHJvbFZpZXc6bmlsXTsKIApAQCAtMTAyOSw2ICsxMDQ1LDcgQEAgYm9vbCBSZW5k
ZXJUaGVtZUNocm9taXVtTWFjOjpwYWludEJ1dHRvbgogICAgIH0gZWxzZSBpZiAoW3ByZXZpb3Vz
RGVmYXVsdEJ1dHRvbkNlbGwgaXNFcXVhbDpidXR0b25dKQogICAgICAgICBbd2luZG93IHNldERl
ZmF1bHRCdXR0b25DZWxsOm5pbF07CiAKKyAgICB1cGRhdGVOU0NlbGxDb250cm9sVGludChidXR0
b24sIG8pOwogICAgIFtidXR0b24gZHJhd1dpdGhGcmFtZTpOU1JlY3QoSW50UmVjdFRvTlNSZWN0
KGluZmxhdGVkUmVjdCkpIGluVmlldzp2aWV3XTsKICAgICBbYnV0dG9uIHNldENvbnRyb2xWaWV3
Om5pbF07CiAKQEAgLTExMzQsNiArMTE1MSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6cGFpbnRNZW51TGkKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnRyYW5zbGF0ZSgtaW5m
bGF0ZWRSZWN0LngoKSwgLWluZmxhdGVkUmVjdC55KCkpOwogICAgIH0KIAorICAgIHVwZGF0ZU5T
Q2VsbENvbnRyb2xUaW50KHBvcHVwQnV0dG9uLCBvKTsKICAgICBbcG9wdXBCdXR0b24gZHJhd1dp
dGhGcmFtZTpJbnRSZWN0VG9OU1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZpZXc6bmlsXTsKICAgICBb
cG9wdXBCdXR0b24gc2V0Q29udHJvbFZpZXc6bmlsXTsKIApAQCAtMTUzNyw2ICsxNTU1LDcgQEAg
Ym9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNsaWRlcgogICAgICAgICBwYWludElu
Zm8uY29udGV4dC0+dHJhbnNsYXRlKC11bnpvb21lZFJlY3QueCgpLCAtdW56b29tZWRSZWN0Lnko
KSk7CiAgICAgfQogCisgICAgdXBkYXRlTlNDZWxsQ29udHJvbFRpbnQoc2xpZGVyVGh1bWJDZWxs
LCBvKTsKICAgICBbc2xpZGVyVGh1bWJDZWxsIGRyYXdXaXRoRnJhbWU6RmxvYXRSZWN0VG9OU1Jl
Y3QodW56b29tZWRSZWN0KSBpblZpZXc6bmlsXTsKICAgICBbc2xpZGVyVGh1bWJDZWxsIHNldENv
bnRyb2xWaWV3Om5pbF07CiAKQEAgLTE1ODYsNiArMTYwNSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVD
aHJvbWl1bU1hYzo6cGFpbnRTZWFyY2gKICAgICAvLyBTZXQgdGhlIHNlYXJjaCBidXR0b24gdG8g
bmlsIGJlZm9yZSBkcmF3aW5nLiAgVGhlbiByZXNldCBpdCBzbyB3ZSBjYW4gZHJhdyBpdCBsYXRl
ci4KICAgICBbc2VhcmNoIHNldFNlYXJjaEJ1dHRvbkNlbGw6bmlsXTsKIAorICAgIHVwZGF0ZU5T
Q2VsbENvbnRyb2xUaW50KHNlYXJjaCwgbyk7CiAgICAgW3NlYXJjaCBkcmF3V2l0aEZyYW1lOk5T
UmVjdChJbnRSZWN0VG9OU1JlY3QodW56b29tZWRSZWN0KSkgaW5WaWV3Om5pbF07CiAjaWZkZWYg
QlVJTERJTkdfT05fVElHRVIKICAgICBpZiAoW3NlYXJjaCBzaG93c0ZpcnN0UmVzcG9uZGVyXSkK
QEAgLTE2ODQsNiArMTcwNCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRT
ZWFyY2gKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnRyYW5zbGF0ZSgtdW56b29tZWRSZWN0
LngoKSwgLXVuem9vbWVkUmVjdC55KCkpOwogICAgIH0KIAorICAgIHVwZGF0ZU5TQ2VsbENvbnRy
b2xUaW50KFtzZWFyY2ggY2FuY2VsQnV0dG9uQ2VsbF0sIG8pOwogICAgIFtbc2VhcmNoIGNhbmNl
bEJ1dHRvbkNlbGxdIGRyYXdXaXRoRnJhbWU6SW50UmVjdFRvTlNSZWN0KHVuem9vbWVkUmVjdCkg
aW5WaWV3Om5pbF07CiAgICAgW1tzZWFyY2ggY2FuY2VsQnV0dG9uQ2VsbF0gc2V0Q29udHJvbFZp
ZXc6bmlsXTsKIApAQCAtMTc0NSw2ICsxNzY2LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVt
TWFjOjpwYWludFNlYXJjaAogICAgIGlmIChbc2VhcmNoIHNlYXJjaE1lbnVUZW1wbGF0ZV0gIT0g
bmlsKQogICAgICAgICBbc2VhcmNoIHNldFNlYXJjaE1lbnVUZW1wbGF0ZTpuaWxdOwogCisgICAg
dXBkYXRlTlNDZWxsQ29udHJvbFRpbnQoW3NlYXJjaCBzZWFyY2hCdXR0b25DZWxsXSwgbyk7CiAg
ICAgTlNSZWN0IGJvdW5kcyA9IFtzZWFyY2ggc2VhcmNoQnV0dG9uUmVjdEZvckJvdW5kczpOU1Jl
Y3QoSW50UmVjdFRvTlNSZWN0KGlucHV0LT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94
UmVjdCgpKSldOwogICAgIFtbc2VhcmNoIHNlYXJjaEJ1dHRvbkNlbGxdIGRyYXdXaXRoRnJhbWU6
Ym91bmRzIGluVmlldzpuaWxdOwogICAgIFtbc2VhcmNoIHNlYXJjaEJ1dHRvbkNlbGxdIHNldENv
bnRyb2xWaWV3Om5pbF07CkBAIC0xNzg3LDYgKzE4MDksNyBAQCBib29sIFJlbmRlclRoZW1lQ2hy
b21pdW1NYWM6OnBhaW50U2VhcmNoCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT50cmFuc2xh
dGUoLXVuem9vbWVkUmVjdC54KCksIC11bnpvb21lZFJlY3QueSgpKTsKICAgICB9CiAKKyAgICB1
cGRhdGVOU0NlbGxDb250cm9sVGludChbc2VhcmNoIHNlYXJjaEJ1dHRvbkNlbGxdLCBvKTsKICAg
ICBbW3NlYXJjaCBzZWFyY2hCdXR0b25DZWxsXSBkcmF3V2l0aEZyYW1lOkludFJlY3RUb05TUmVj
dCh1bnpvb21lZFJlY3QpIGluVmlldzpuaWxdOwogICAgIFtbc2VhcmNoIHNlYXJjaEJ1dHRvbkNl
bGxdIHNldENvbnRyb2xWaWV3Om5pbF07CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34510</attachid>
            <date>2009-08-10 13:40:05 -0700</date>
            <delta_ts>2009-08-10 15:04:45 -0700</delta_ts>
            <desc>Updated patch (as per Avi&apos;s comments)</desc>
            <filename>patch-cr18199-2.txt</filename>
            <type>text/plain</type>
            <size>5928</size>
            <attacher name="Viet-Trung Luu">viettrungluu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Njk1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDgtMDggIFZpZXQtVHJ1bmcgTHV1ICA8dmlldHRydW5nbHV1
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFeHBsaWNpdGx5IHNldCBjb250cm9sIHRpbnRzIGZvciBDaHJvbWl1bSBvbiBNYWMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODEwOAorICAg
ICAgICBodHRwOi8vY3JidWcuY29tLzE4MTk5CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZU5TQ2VsbENvbnRy
b2xUaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50
Q2hlY2tib3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFp
bnRSYWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWlu
dEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWlu
dE1lbnVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBh
aW50U2xpZGVyVGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6cGFpbnRTZWFyY2hGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9t
aXVtTWFjOjpwYWludFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbik6CisKIDIwMDktMDgtMDggIEphbiBNaWNoYWVsIEFsb256byAg
PGptYWxvbnpvQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCShyZXZp
c2lvbiA0Njk1MykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDkgQEAKICNpbXBvcnQgIkNTU1N0eWxlU2Vs
ZWN0b3IuaCIKICNpbXBvcnQgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbXBvcnQgIkVsZW1lbnQu
aCIKKyNpbXBvcnQgIkZvY3VzQ29udHJvbGxlci5oIgogI2ltcG9ydCAiRm91bmRhdGlvbkV4dHJh
cy5oIgorI2ltcG9ydCAiRnJhbWUuaCIKICNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAi
R3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJIVE1MSW5wdXRFbGVtZW50LmgiCkBAIC00Niw2
ICs0OCw3IEBACiAjaW1wb3J0ICJJbWFnZS5oIgogI2ltcG9ydCAiTG9jYWxDdXJyZW50R3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW1wb3J0ICJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIgorI2ltcG9ydCAi
UGFnZS5oIgogI2ltcG9ydCAiUmVuZGVyTWVkaWEuaCIKICNpbXBvcnQgIlJlbmRlclNsaWRlci5o
IgogI2ltcG9ydCAiUmVuZGVyVmlldy5oIgpAQCAtNzAxLDYgKzcwNCwxOCBAQCBOU0NvbnRyb2xT
aXplIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmNvCiAgICAgcmV0dXJuIE5TTWluaUNvbnRyb2xT
aXplOwogfQogCisvLyBVcGRhdGVzIHRoZSBjb250cm9sIHRpbnQgb2YgfGNlbGx8ICh3aXRoIGlu
Zm9ybWF0aW9uIGZyb20gfG98KS4KK3N0YXRpYyB2b2lkIHVwZGF0ZU5TQ2VsbENvbnRyb2xUaW50
KE5TQ2VsbCogY2VsbCwgUmVuZGVyT2JqZWN0KiBvKSB7CisgICAgaWYgKG8tPmRvY3VtZW50KCkt
PmZyYW1lKCkgJiYgby0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+cGFnZSgpICYmCisgICAgICAgICAg
ICBvLT5kb2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpKSB7Cisg
ICAgICAgIEZvY3VzQ29udHJvbGxlciogZm9jdXNDdGxyID0KKyAgICAgICAgICAgICAgICBvLT5k
b2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpOworICAgICAgICBb
Y2VsbCBzZXRDb250cm9sVGludDooZm9jdXNDdGxyLT5pc0FjdGl2ZSgpID8KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbTlNDb2xvciBjdXJyZW50Q29udHJvbFRpbnRdIDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOU0NsZWFyQ29udHJvbFRpbnQpXTsKKyAg
ICB9Cit9CisKIC8vIEZJWE1FOiBUaGlzIHVzZWQgdG8gYmUgaW4gdGhlIHVwc3RyZWFtIHZlcnNp
b24gdW50aWwgaXQgd2FzIGNvbnZlcnRlZCB0byB0aGUgbmV3IHRoZW1lIEFQSSBpbiByMzc3MzEu
CiBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50Q2hlY2tib3goUmVuZGVyT2JqZWN0
KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRS
ZWN0JiByKQogewpAQCAtNzI5LDYgKzc0NCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6cGFpbnRDaGVja2IKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnRyYW5zbGF0ZSgtaW5m
bGF0ZWRSZWN0LngoKSwgLWluZmxhdGVkUmVjdC55KCkpOwogICAgIH0KICAgICAKKyAgICB1cGRh
dGVOU0NlbGxDb250cm9sVGludChjaGVja2JveCwgbyk7CiAgICAgW2NoZWNrYm94IGRyYXdXaXRo
RnJhbWU6TlNSZWN0KEludFJlY3RUb05TUmVjdChpbmZsYXRlZFJlY3QpKSBpblZpZXc6bmlsXTsK
ICAgICBbY2hlY2tib3ggc2V0Q29udHJvbFZpZXc6bmlsXTsKIApAQCAtODEwLDYgKzgyNiw3IEBA
IGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRSYWRpbygKICAgICAgICAgcGFpbnRJ
bmZvLmNvbnRleHQtPnRyYW5zbGF0ZSgtaW5mbGF0ZWRSZWN0LngoKSwgLWluZmxhdGVkUmVjdC55
KCkpOwogICAgIH0KIAorICAgIHVwZGF0ZU5TQ2VsbENvbnRyb2xUaW50KHJhZGlvLCBvKTsKICAg
ICBbcmFkaW8gZHJhd1dpdGhGcmFtZTpOU1JlY3QoSW50UmVjdFRvTlNSZWN0KGluZmxhdGVkUmVj
dCkpIGluVmlldzpuaWxdOwogICAgIFtyYWRpbyBzZXRDb250cm9sVmlldzpuaWxdOwogCkBAIC0x
MDI5LDYgKzEwNDYsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50QnV0dG9u
CiAgICAgfSBlbHNlIGlmIChbcHJldmlvdXNEZWZhdWx0QnV0dG9uQ2VsbCBpc0VxdWFsOmJ1dHRv
bl0pCiAgICAgICAgIFt3aW5kb3cgc2V0RGVmYXVsdEJ1dHRvbkNlbGw6bmlsXTsKIAorICAgIHVw
ZGF0ZU5TQ2VsbENvbnRyb2xUaW50KGJ1dHRvbiwgbyk7CiAgICAgW2J1dHRvbiBkcmF3V2l0aEZy
YW1lOk5TUmVjdChJbnRSZWN0VG9OU1JlY3QoaW5mbGF0ZWRSZWN0KSkgaW5WaWV3OnZpZXddOwog
ICAgIFtidXR0b24gc2V0Q29udHJvbFZpZXc6bmlsXTsKIApAQCAtMTEzNCw2ICsxMTUyLDcgQEAg
Ym9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludE1lbnVMaQogICAgICAgICBwYWludElu
Zm8uY29udGV4dC0+dHJhbnNsYXRlKC1pbmZsYXRlZFJlY3QueCgpLCAtaW5mbGF0ZWRSZWN0Lnko
KSk7CiAgICAgfQogCisgICAgdXBkYXRlTlNDZWxsQ29udHJvbFRpbnQocG9wdXBCdXR0b24sIG8p
OwogICAgIFtwb3B1cEJ1dHRvbiBkcmF3V2l0aEZyYW1lOkludFJlY3RUb05TUmVjdChpbmZsYXRl
ZFJlY3QpIGluVmlldzpuaWxdOwogICAgIFtwb3B1cEJ1dHRvbiBzZXRDb250cm9sVmlldzpuaWxd
OwogCkBAIC0xNTM3LDYgKzE1NTYsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBh
aW50U2xpZGVyCiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT50cmFuc2xhdGUoLXVuem9vbWVk
UmVjdC54KCksIC11bnpvb21lZFJlY3QueSgpKTsKICAgICB9CiAKKyAgICB1cGRhdGVOU0NlbGxD
b250cm9sVGludChzbGlkZXJUaHVtYkNlbGwsIG8pOwogICAgIFtzbGlkZXJUaHVtYkNlbGwgZHJh
d1dpdGhGcmFtZTpGbG9hdFJlY3RUb05TUmVjdCh1bnpvb21lZFJlY3QpIGluVmlldzpuaWxdOwog
ICAgIFtzbGlkZXJUaHVtYkNlbGwgc2V0Q29udHJvbFZpZXc6bmlsXTsKIApAQCAtMTU4Niw2ICsx
NjA2LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNlYXJjaAogICAgIC8v
IFNldCB0aGUgc2VhcmNoIGJ1dHRvbiB0byBuaWwgYmVmb3JlIGRyYXdpbmcuICBUaGVuIHJlc2V0
IGl0IHNvIHdlIGNhbiBkcmF3IGl0IGxhdGVyLgogICAgIFtzZWFyY2ggc2V0U2VhcmNoQnV0dG9u
Q2VsbDpuaWxdOwogCisgICAgdXBkYXRlTlNDZWxsQ29udHJvbFRpbnQoc2VhcmNoLCBvKTsKICAg
ICBbc2VhcmNoIGRyYXdXaXRoRnJhbWU6TlNSZWN0KEludFJlY3RUb05TUmVjdCh1bnpvb21lZFJl
Y3QpKSBpblZpZXc6bmlsXTsKICNpZmRlZiBCVUlMRElOR19PTl9USUdFUgogICAgIGlmIChbc2Vh
cmNoIHNob3dzRmlyc3RSZXNwb25kZXJdKQpAQCAtMTY4NCw2ICsxNzA1LDcgQEAgYm9vbCBSZW5k
ZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNlYXJjaAogICAgICAgICBwYWludEluZm8uY29udGV4
dC0+dHJhbnNsYXRlKC11bnpvb21lZFJlY3QueCgpLCAtdW56b29tZWRSZWN0LnkoKSk7CiAgICAg
fQogCisgICAgdXBkYXRlTlNDZWxsQ29udHJvbFRpbnQoW3NlYXJjaCBjYW5jZWxCdXR0b25DZWxs
XSwgbyk7CiAgICAgW1tzZWFyY2ggY2FuY2VsQnV0dG9uQ2VsbF0gZHJhd1dpdGhGcmFtZTpJbnRS
ZWN0VG9OU1JlY3QodW56b29tZWRSZWN0KSBpblZpZXc6bmlsXTsKICAgICBbW3NlYXJjaCBjYW5j
ZWxCdXR0b25DZWxsXSBzZXRDb250cm9sVmlldzpuaWxdOwogCkBAIC0xNzQ1LDYgKzE3NjcsNyBA
QCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50U2VhcmNoCiAgICAgaWYgKFtzZWFy
Y2ggc2VhcmNoTWVudVRlbXBsYXRlXSAhPSBuaWwpCiAgICAgICAgIFtzZWFyY2ggc2V0U2VhcmNo
TWVudVRlbXBsYXRlOm5pbF07CiAKKyAgICB1cGRhdGVOU0NlbGxDb250cm9sVGludChbc2VhcmNo
IHNlYXJjaEJ1dHRvbkNlbGxdLCBvKTsKICAgICBOU1JlY3QgYm91bmRzID0gW3NlYXJjaCBzZWFy
Y2hCdXR0b25SZWN0Rm9yQm91bmRzOk5TUmVjdChJbnRSZWN0VG9OU1JlY3QoaW5wdXQtPnJlbmRl
cmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCkpKV07CiAgICAgW1tzZWFyY2ggc2VhcmNo
QnV0dG9uQ2VsbF0gZHJhd1dpdGhGcmFtZTpib3VuZHMgaW5WaWV3Om5pbF07CiAgICAgW1tzZWFy
Y2ggc2VhcmNoQnV0dG9uQ2VsbF0gc2V0Q29udHJvbFZpZXc6bmlsXTsKQEAgLTE3ODcsNiArMTgx
MCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRTZWFyY2gKICAgICAgICAg
cGFpbnRJbmZvLmNvbnRleHQtPnRyYW5zbGF0ZSgtdW56b29tZWRSZWN0LngoKSwgLXVuem9vbWVk
UmVjdC55KCkpOwogICAgIH0KIAorICAgIHVwZGF0ZU5TQ2VsbENvbnRyb2xUaW50KFtzZWFyY2gg
c2VhcmNoQnV0dG9uQ2VsbF0sIG8pOwogICAgIFtbc2VhcmNoIHNlYXJjaEJ1dHRvbkNlbGxdIGRy
YXdXaXRoRnJhbWU6SW50UmVjdFRvTlNSZWN0KHVuem9vbWVkUmVjdCkgaW5WaWV3Om5pbF07CiAg
ICAgW1tzZWFyY2ggc2VhcmNoQnV0dG9uQ2VsbF0gc2V0Q29udHJvbFZpZXc6bmlsXTsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34520</attachid>
            <date>2009-08-10 15:04:45 -0700</date>
            <delta_ts>2009-08-10 15:44:14 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch-cr18199-3.txt</filename>
            <type>text/plain</type>
            <size>4388</size>
            <attacher name="Viet-Trung Luu">viettrungluu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgJKHJldmlz
aW9uIDQ2OTUzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNiArMTU2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBJbnRTaXplIHNpemVGb3JTeXN0ZW1Gb250KFJlbmRlclN0eWxlKiwgY29uc3QgSW50
U2l6ZSogc2l6ZXMpIGNvbnN0OwogICAgICAgICB2b2lkIHNldEZvbnRGcm9tQ29udHJvbFNpemUo
Q1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgTlNDb250cm9sU2l6ZSkgY29uc3Q7CiAK
KyAgICAgICAgdm9pZCB1cGRhdGVBY3RpdmVTdGF0ZShOU0NlbGwqLCBjb25zdCBSZW5kZXJPYmpl
Y3QqKTsKICAgICAgICAgdm9pZCB1cGRhdGVDaGVja2VkU3RhdGUoTlNDZWxsKiwgY29uc3QgUmVu
ZGVyT2JqZWN0Kik7CiAgICAgICAgIHZvaWQgdXBkYXRlRW5hYmxlZFN0YXRlKE5TQ2VsbCosIGNv
bnN0IFJlbmRlck9iamVjdCopOwogICAgICAgICB2b2lkIHVwZGF0ZUZvY3VzZWRTdGF0ZShOU0Nl
bGwqLCBjb25zdCBSZW5kZXJPYmplY3QqKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQkocmV2aXNpb24gNDY5NTMpCisrKyBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NDksNiAr
NTQ5LDE2IEBAIEludFJlY3QgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6aW5mbGF0ZVIKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCisvLyBVcGRhdGVzIHRoZSBjb250cm9sIHRpbnQgb2YgfGNlbGx8
ICh3aXRoIGluZm9ybWF0aW9uIGZyb20gfG98KS4KK3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6dXBkYXRlQWN0aXZlU3RhdGUoTlNDZWxsKiBjZWxsLCBjb25zdCBSZW5kZXJPYmplY3QqIG8p
IHsKKyAgICBOU0NvbnRyb2xUaW50IG9sZFRpbnQgPSBbY2VsbCBjb250cm9sVGludF07CisgICAg
TlNDb250cm9sVGludCB0aW50ID0gaXNBY3RpdmUobykgPyBbTlNDb2xvciBjdXJyZW50Q29udHJv
bFRpbnRdIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5TQ2xlYXJD
b250cm9sVGludDsKKworICAgIGlmICh0aW50ICE9IG9sZFRpbnQpCisgICAgICAgIFtjZWxsIHNl
dENvbnRyb2xUaW50OnRpbnRdOworfQorCiB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnVw
ZGF0ZUNoZWNrZWRTdGF0ZShOU0NlbGwqIGNlbGwsIGNvbnN0IFJlbmRlck9iamVjdCogbykKIHsK
ICAgICBib29sIG9sZEluZGV0ZXJtaW5hdGUgPSBbY2VsbCBzdGF0ZV0gPT0gTlNNaXhlZFN0YXRl
OwpAQCAtNzY1LDYgKzc3NSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6c2V0Q2hl
Y2tib3gKICAgICBzZXRDb250cm9sU2l6ZShjaGVja2JveCwgY2hlY2tib3hTaXplcygpLCByLnNp
emUoKSwgby0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUg
dmFyaW91cyBzdGF0ZXMgd2UgcmVzcG9uZCB0by4KKyAgICB1cGRhdGVBY3RpdmVTdGF0ZShjaGVj
a2JveCwgbyk7CiAgICAgdXBkYXRlQ2hlY2tlZFN0YXRlKGNoZWNrYm94LCBvKTsKICAgICB1cGRh
dGVFbmFibGVkU3RhdGUoY2hlY2tib3gsIG8pOwogICAgIHVwZGF0ZVByZXNzZWRTdGF0ZShjaGVj
a2JveCwgbyk7CkBAIC04NDYsNiArODU3LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFj
OjpzZXRSYWRpb0NlbAogICAgIHNldENvbnRyb2xTaXplKHJhZGlvLCByYWRpb1NpemVzKCksIHIu
c2l6ZSgpLCBvLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpOwogCiAgICAgLy8gVXBkYXRlIHRo
ZSB2YXJpb3VzIHN0YXRlcyB3ZSByZXNwb25kIHRvLgorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKHJh
ZGlvLCBvKTsKICAgICB1cGRhdGVDaGVja2VkU3RhdGUocmFkaW8sIG8pOwogICAgIHVwZGF0ZUVu
YWJsZWRTdGF0ZShyYWRpbywgbyk7CiAgICAgdXBkYXRlUHJlc3NlZFN0YXRlKHJhZGlvLCBvKTsK
QEAgLTk3Niw2ICs5ODgsNyBAQCB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnNldEJ1dHRv
bkNlCiAgICAgW2J1dHRvbiBzZXRLZXlFcXVpdmFsZW50Oihpc0RlZmF1bHRCdXR0b24gPyBAIlxy
IiA6IEAiIildOwogCiAgICAgLy8gVXBkYXRlIHRoZSB2YXJpb3VzIHN0YXRlcyB3ZSByZXNwb25k
IHRvLgorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKGJ1dHRvbiwgbyk7CiAgICAgdXBkYXRlQ2hlY2tl
ZFN0YXRlKGJ1dHRvbiwgbyk7CiAgICAgdXBkYXRlRW5hYmxlZFN0YXRlKGJ1dHRvbiwgbyk7CiAg
ICAgdXBkYXRlUHJlc3NlZFN0YXRlKGJ1dHRvbiwgbyk7CkBAIC0xNDE0LDYgKzE0MjcsNyBAQCB2
b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnNldFBvcHVwQnV0CiAgICAgc2V0Q29udHJvbFNp
emUocG9wdXBCdXR0b24sIHBvcHVwQnV0dG9uU2l6ZXMoKSwgci5zaXplKCksIG8tPnN0eWxlKCkt
PmVmZmVjdGl2ZVpvb20oKSk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHZhcmlvdXMgc3RhdGVzIHdl
IHJlc3BvbmQgdG8uCisgICAgdXBkYXRlQWN0aXZlU3RhdGUocG9wdXBCdXR0b24sIG8pOwogICAg
IHVwZGF0ZUNoZWNrZWRTdGF0ZShwb3B1cEJ1dHRvbiwgbyk7CiAgICAgdXBkYXRlRW5hYmxlZFN0
YXRlKHBvcHVwQnV0dG9uLCBvKTsKICAgICB1cGRhdGVQcmVzc2VkU3RhdGUocG9wdXBCdXR0b24s
IG8pOwpAQCAtMTQ5Niw2ICsxNTEwLDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpw
YWludFNsaWRlcgogICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQo
cGFpbnRJbmZvLmNvbnRleHQpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB2YXJpb3VzIHN0YXRlcyB3
ZSByZXNwb25kIHRvLgorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKHNsaWRlclRodW1iQ2VsbCwgbyk7
CiAgICAgdXBkYXRlRW5hYmxlZFN0YXRlKHNsaWRlclRodW1iQ2VsbCwgby0+cGFyZW50KCkpOwog
ICAgIHVwZGF0ZUZvY3VzZWRTdGF0ZShzbGlkZXJUaHVtYkNlbGwsIG8tPnBhcmVudCgpKTsKIApA
QCAtMTYwNyw2ICsxNjIyLDcgQEAgdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpzZXRTZWFy
Y2hDZQogICAgIFtzZWFyY2ggc2V0Q29udHJvbFNpemU6Y29udHJvbFNpemVGb3JGb250KG8tPnN0
eWxlKCkpXTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgdmFyaW91cyBzdGF0ZXMgd2UgcmVzcG9uZCB0
by4KKyAgICB1cGRhdGVBY3RpdmVTdGF0ZShzZWFyY2gsIG8pOwogICAgIHVwZGF0ZUVuYWJsZWRT
dGF0ZShzZWFyY2gsIG8pOwogICAgIHVwZGF0ZUZvY3VzZWRTdGF0ZShzZWFyY2gsIG8pOwogfQpA
QCAtMTY2Nyw2ICsxNjgzLDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNl
YXJjaAogCiAgICAgTlNTZWFyY2hGaWVsZENlbGwqIHNlYXJjaCA9IHRoaXMtPnNlYXJjaCgpOwog
CisgICAgdXBkYXRlQWN0aXZlU3RhdGUoW3NlYXJjaCBjYW5jZWxCdXR0b25DZWxsXSwgbyk7CiAg
ICAgdXBkYXRlUHJlc3NlZFN0YXRlKFtzZWFyY2ggY2FuY2VsQnV0dG9uQ2VsbF0sIG8pOwogCiAg
ICAgcGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKQEAgLTE3NDIsNiArMTc1OSw4IEBAIGJvb2wg
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRTZWFyY2gKIAogICAgIE5TU2VhcmNoRmllbGRD
ZWxsKiBzZWFyY2ggPSB0aGlzLT5zZWFyY2goKTsKIAorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKFtz
ZWFyY2ggc2VhcmNoQnV0dG9uQ2VsbF0sIG8pOworCiAgICAgaWYgKFtzZWFyY2ggc2VhcmNoTWVu
dVRlbXBsYXRlXSAhPSBuaWwpCiAgICAgICAgIFtzZWFyY2ggc2V0U2VhcmNoTWVudVRlbXBsYXRl
Om5pbF07CiAKQEAgLTE3NjksNiArMTc4OCw4IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6cGFpbnRTZWFyY2gKIAogICAgIE5TU2VhcmNoRmllbGRDZWxsKiBzZWFyY2ggPSB0aGlzLT5z
ZWFyY2goKTsKIAorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKFtzZWFyY2ggc2VhcmNoQnV0dG9uQ2Vs
bF0sIG8pOworCiAgICAgaWYgKCFbc2VhcmNoIHNlYXJjaE1lbnVUZW1wbGF0ZV0pCiAgICAgICAg
IFtzZWFyY2ggc2V0U2VhcmNoTWVudVRlbXBsYXRlOnNlYXJjaE1lbnVUZW1wbGF0ZSgpXTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34523</attachid>
            <date>2009-08-10 15:44:14 -0700</date>
            <delta_ts>2009-08-11 16:38:20 -0700</delta_ts>
            <desc>Now with a beefier comment.</desc>
            <filename>patch-cr18199-4.txt</filename>
            <type>text/plain</type>
            <size>4670</size>
            <attacher name="Viet-Trung Luu">viettrungluu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgJKHJldmlz
aW9uIDQ2OTUzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNiArMTU2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBJbnRTaXplIHNpemVGb3JTeXN0ZW1Gb250KFJlbmRlclN0eWxlKiwgY29uc3QgSW50
U2l6ZSogc2l6ZXMpIGNvbnN0OwogICAgICAgICB2b2lkIHNldEZvbnRGcm9tQ29udHJvbFNpemUo
Q1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgTlNDb250cm9sU2l6ZSkgY29uc3Q7CiAK
KyAgICAgICAgdm9pZCB1cGRhdGVBY3RpdmVTdGF0ZShOU0NlbGwqLCBjb25zdCBSZW5kZXJPYmpl
Y3QqKTsKICAgICAgICAgdm9pZCB1cGRhdGVDaGVja2VkU3RhdGUoTlNDZWxsKiwgY29uc3QgUmVu
ZGVyT2JqZWN0Kik7CiAgICAgICAgIHZvaWQgdXBkYXRlRW5hYmxlZFN0YXRlKE5TQ2VsbCosIGNv
bnN0IFJlbmRlck9iamVjdCopOwogICAgICAgICB2b2lkIHVwZGF0ZUZvY3VzZWRTdGF0ZShOU0Nl
bGwqLCBjb25zdCBSZW5kZXJPYmplY3QqKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQkocmV2aXNpb24gNDY5NTMpCisrKyBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NDksNiAr
NTQ5LDIwIEBAIEludFJlY3QgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6aW5mbGF0ZVIKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCisvLyBVcGRhdGVzIHRoZSBjb250cm9sIHRpbnQgKGEuay5hLiBh
Y3RpdmUgc3RhdGUpIG9mIHxjZWxsfCAoZGVwZW5kaW5nIG9uCisvLyB8UmVuZGVyVGhlbWU6Omlz
QWN0aXZlKG8pfCkuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgZHJhd2luZyBhbnkKKy8v
IE5TQ2VsbC1kZXJpdmVkIGNvbnRyb2wsIHVubGVzcyB5b3UgYXJlIHN1cmUgdGhhdCBpdCBpc24n
dCBuZWVkZWQ7IGluIGFueQorLy8gY2FzZSwgaXQgd29uJ3QgZG8gYW55IGhhcm0uIFdlIG5lZWQg
dG8gc2V0IHRoZSBjb250cm9sIHRpbnQgZXhwbGljaXRseSBzaW5jZQorLy8gd2UgZG8gbm90IGdp
dmUgfGNlbGx8IGEgcGFyZW50IE5TVmlldy4KK3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6
dXBkYXRlQWN0aXZlU3RhdGUoTlNDZWxsKiBjZWxsLCBjb25zdCBSZW5kZXJPYmplY3QqIG8pIHsK
KyAgICBOU0NvbnRyb2xUaW50IG9sZFRpbnQgPSBbY2VsbCBjb250cm9sVGludF07CisgICAgTlND
b250cm9sVGludCB0aW50ID0gaXNBY3RpdmUobykgPyBbTlNDb2xvciBjdXJyZW50Q29udHJvbFRp
bnRdIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5TQ2xlYXJDb250
cm9sVGludDsKKworICAgIGlmICh0aW50ICE9IG9sZFRpbnQpCisgICAgICAgIFtjZWxsIHNldENv
bnRyb2xUaW50OnRpbnRdOworfQorCiB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnVwZGF0
ZUNoZWNrZWRTdGF0ZShOU0NlbGwqIGNlbGwsIGNvbnN0IFJlbmRlck9iamVjdCogbykKIHsKICAg
ICBib29sIG9sZEluZGV0ZXJtaW5hdGUgPSBbY2VsbCBzdGF0ZV0gPT0gTlNNaXhlZFN0YXRlOwpA
QCAtNzY1LDYgKzc3OSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6c2V0Q2hlY2ti
b3gKICAgICBzZXRDb250cm9sU2l6ZShjaGVja2JveCwgY2hlY2tib3hTaXplcygpLCByLnNpemUo
KSwgby0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgdmFy
aW91cyBzdGF0ZXMgd2UgcmVzcG9uZCB0by4KKyAgICB1cGRhdGVBY3RpdmVTdGF0ZShjaGVja2Jv
eCwgbyk7CiAgICAgdXBkYXRlQ2hlY2tlZFN0YXRlKGNoZWNrYm94LCBvKTsKICAgICB1cGRhdGVF
bmFibGVkU3RhdGUoY2hlY2tib3gsIG8pOwogICAgIHVwZGF0ZVByZXNzZWRTdGF0ZShjaGVja2Jv
eCwgbyk7CkBAIC04NDYsNiArODYxLDcgQEAgdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpz
ZXRSYWRpb0NlbAogICAgIHNldENvbnRyb2xTaXplKHJhZGlvLCByYWRpb1NpemVzKCksIHIuc2l6
ZSgpLCBvLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB2
YXJpb3VzIHN0YXRlcyB3ZSByZXNwb25kIHRvLgorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKHJhZGlv
LCBvKTsKICAgICB1cGRhdGVDaGVja2VkU3RhdGUocmFkaW8sIG8pOwogICAgIHVwZGF0ZUVuYWJs
ZWRTdGF0ZShyYWRpbywgbyk7CiAgICAgdXBkYXRlUHJlc3NlZFN0YXRlKHJhZGlvLCBvKTsKQEAg
LTk3Niw2ICs5OTIsNyBAQCB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnNldEJ1dHRvbkNl
CiAgICAgW2J1dHRvbiBzZXRLZXlFcXVpdmFsZW50Oihpc0RlZmF1bHRCdXR0b24gPyBAIlxyIiA6
IEAiIildOwogCiAgICAgLy8gVXBkYXRlIHRoZSB2YXJpb3VzIHN0YXRlcyB3ZSByZXNwb25kIHRv
LgorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKGJ1dHRvbiwgbyk7CiAgICAgdXBkYXRlQ2hlY2tlZFN0
YXRlKGJ1dHRvbiwgbyk7CiAgICAgdXBkYXRlRW5hYmxlZFN0YXRlKGJ1dHRvbiwgbyk7CiAgICAg
dXBkYXRlUHJlc3NlZFN0YXRlKGJ1dHRvbiwgbyk7CkBAIC0xNDE0LDYgKzE0MzEsNyBAQCB2b2lk
IFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnNldFBvcHVwQnV0CiAgICAgc2V0Q29udHJvbFNpemUo
cG9wdXBCdXR0b24sIHBvcHVwQnV0dG9uU2l6ZXMoKSwgci5zaXplKCksIG8tPnN0eWxlKCktPmVm
ZmVjdGl2ZVpvb20oKSk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHZhcmlvdXMgc3RhdGVzIHdlIHJl
c3BvbmQgdG8uCisgICAgdXBkYXRlQWN0aXZlU3RhdGUocG9wdXBCdXR0b24sIG8pOwogICAgIHVw
ZGF0ZUNoZWNrZWRTdGF0ZShwb3B1cEJ1dHRvbiwgbyk7CiAgICAgdXBkYXRlRW5hYmxlZFN0YXRl
KHBvcHVwQnV0dG9uLCBvKTsKICAgICB1cGRhdGVQcmVzc2VkU3RhdGUocG9wdXBCdXR0b24sIG8p
OwpAQCAtMTQ5Niw2ICsxNTE0LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWlu
dFNsaWRlcgogICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQocGFp
bnRJbmZvLmNvbnRleHQpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB2YXJpb3VzIHN0YXRlcyB3ZSBy
ZXNwb25kIHRvLgorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKHNsaWRlclRodW1iQ2VsbCwgbyk7CiAg
ICAgdXBkYXRlRW5hYmxlZFN0YXRlKHNsaWRlclRodW1iQ2VsbCwgby0+cGFyZW50KCkpOwogICAg
IHVwZGF0ZUZvY3VzZWRTdGF0ZShzbGlkZXJUaHVtYkNlbGwsIG8tPnBhcmVudCgpKTsKIApAQCAt
MTYwNyw2ICsxNjI2LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpzZXRTZWFyY2hD
ZQogICAgIFtzZWFyY2ggc2V0Q29udHJvbFNpemU6Y29udHJvbFNpemVGb3JGb250KG8tPnN0eWxl
KCkpXTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgdmFyaW91cyBzdGF0ZXMgd2UgcmVzcG9uZCB0by4K
KyAgICB1cGRhdGVBY3RpdmVTdGF0ZShzZWFyY2gsIG8pOwogICAgIHVwZGF0ZUVuYWJsZWRTdGF0
ZShzZWFyY2gsIG8pOwogICAgIHVwZGF0ZUZvY3VzZWRTdGF0ZShzZWFyY2gsIG8pOwogfQpAQCAt
MTY2Nyw2ICsxNjg3LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNlYXJj
aAogCiAgICAgTlNTZWFyY2hGaWVsZENlbGwqIHNlYXJjaCA9IHRoaXMtPnNlYXJjaCgpOwogCisg
ICAgdXBkYXRlQWN0aXZlU3RhdGUoW3NlYXJjaCBjYW5jZWxCdXR0b25DZWxsXSwgbyk7CiAgICAg
dXBkYXRlUHJlc3NlZFN0YXRlKFtzZWFyY2ggY2FuY2VsQnV0dG9uQ2VsbF0sIG8pOwogCiAgICAg
cGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKQEAgLTE3NDIsNiArMTc2Myw4IEBAIGJvb2wgUmVu
ZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRTZWFyY2gKIAogICAgIE5TU2VhcmNoRmllbGRDZWxs
KiBzZWFyY2ggPSB0aGlzLT5zZWFyY2goKTsKIAorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKFtzZWFy
Y2ggc2VhcmNoQnV0dG9uQ2VsbF0sIG8pOworCiAgICAgaWYgKFtzZWFyY2ggc2VhcmNoTWVudVRl
bXBsYXRlXSAhPSBuaWwpCiAgICAgICAgIFtzZWFyY2ggc2V0U2VhcmNoTWVudVRlbXBsYXRlOm5p
bF07CiAKQEAgLTE3NjksNiArMTc5Miw4IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6
cGFpbnRTZWFyY2gKIAogICAgIE5TU2VhcmNoRmllbGRDZWxsKiBzZWFyY2ggPSB0aGlzLT5zZWFy
Y2goKTsKIAorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKFtzZWFyY2ggc2VhcmNoQnV0dG9uQ2VsbF0s
IG8pOworCiAgICAgaWYgKCFbc2VhcmNoIHNlYXJjaE1lbnVUZW1wbGF0ZV0pCiAgICAgICAgIFtz
ZWFyY2ggc2V0U2VhcmNoTWVudVRlbXBsYXRlOnNlYXJjaE1lbnVUZW1wbGF0ZSgpXTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34612</attachid>
            <date>2009-08-11 16:38:20 -0700</date>
            <delta_ts>2009-08-12 08:48:55 -0700</delta_ts>
            <desc>Updated with Jeremy&apos;s suggested comment (more or less).</desc>
            <filename>patch-cr18199-5.txt</filename>
            <type>text/plain</type>
            <size>4903</size>
            <attacher name="Viet-Trung Luu">viettrungluu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgJKHJldmlz
aW9uIDQ2OTUzKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNiArMTU2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBJbnRTaXplIHNpemVGb3JTeXN0ZW1Gb250KFJlbmRlclN0eWxlKiwgY29uc3QgSW50
U2l6ZSogc2l6ZXMpIGNvbnN0OwogICAgICAgICB2b2lkIHNldEZvbnRGcm9tQ29udHJvbFNpemUo
Q1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgTlNDb250cm9sU2l6ZSkgY29uc3Q7CiAK
KyAgICAgICAgdm9pZCB1cGRhdGVBY3RpdmVTdGF0ZShOU0NlbGwqLCBjb25zdCBSZW5kZXJPYmpl
Y3QqKTsKICAgICAgICAgdm9pZCB1cGRhdGVDaGVja2VkU3RhdGUoTlNDZWxsKiwgY29uc3QgUmVu
ZGVyT2JqZWN0Kik7CiAgICAgICAgIHZvaWQgdXBkYXRlRW5hYmxlZFN0YXRlKE5TQ2VsbCosIGNv
bnN0IFJlbmRlck9iamVjdCopOwogICAgICAgICB2b2lkIHVwZGF0ZUZvY3VzZWRTdGF0ZShOU0Nl
bGwqLCBjb25zdCBSZW5kZXJPYmplY3QqKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQkocmV2aXNpb24gNDY5NTMpCisrKyBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NDksNiAr
NTQ5LDI0IEBAIEludFJlY3QgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6aW5mbGF0ZVIKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCisvLyBVcGRhdGVzIHRoZSBjb250cm9sIHRpbnQgKGEuay5hLiBh
Y3RpdmUgc3RhdGUpIG9mIHxjZWxsfCAoZnJvbSB8b3wpLgorLy8gSW4gdGhlIENocm9taXVtIHBv
cnQsIHRoZSByZW5kZXJlciBydW5zIGFzIGEgYmFja2dyb3VuZCBwcm9jZXNzIGFuZCBjb250cm9s
cycKKy8vIE5TQ2VsbChzKSBsYWNrIGEgcGFyZW50IE5TVmlldy4gVGhlcmVmb3JlIGNvbnRyb2xz
IGRvbid0IGhhdmUgdGhlaXIgdGludAorLy8gY29sb3IgdXBkYXRlZCBjb3JyZWN0bHkgd2hlbiB0
aGUgYXBwbGljYXRpb24gaXMgYWN0aXZhdGVkL2RlYWN0aXZhdGVkLgorLy8gRm9jdXNDb250cm9s
bGVyJ3Mgc2V0QWN0aXZlKCkgaXMgY2FsbGVkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzCisvLyBh
Y3RpdmF0ZWQvZGVhY3RpdmF0ZWQsIHdoaWNoIGNhdXNlcyBhIHJlcGFpbnQgYXQgd2hpY2ggdGlt
ZSB0aGlzIGNvZGUgaXMKKy8vIGNhbGxlZC4KKy8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNh
bGxlZCBiZWZvcmUgZHJhd2luZyBhbnkgTlNDZWxsLWRlcml2ZWQgY29udHJvbHMsCisvLyB1bmxl
c3MgeW91J3JlIHN1cmUgaXQgaXNuJ3QgbmVlZGVkLgordm9pZCBSZW5kZXJUaGVtZUNocm9taXVt
TWFjOjp1cGRhdGVBY3RpdmVTdGF0ZShOU0NlbGwqIGNlbGwsIGNvbnN0IFJlbmRlck9iamVjdCog
bykgeworICAgIE5TQ29udHJvbFRpbnQgb2xkVGludCA9IFtjZWxsIGNvbnRyb2xUaW50XTsKKyAg
ICBOU0NvbnRyb2xUaW50IHRpbnQgPSBpc0FjdGl2ZShvKSA/IFtOU0NvbG9yIGN1cnJlbnRDb250
cm9sVGludF0gOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlNDbGVh
ckNvbnRyb2xUaW50OworCisgICAgaWYgKHRpbnQgIT0gb2xkVGludCkKKyAgICAgICAgW2NlbGwg
c2V0Q29udHJvbFRpbnQ6dGludF07Cit9CisKIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6
dXBkYXRlQ2hlY2tlZFN0YXRlKE5TQ2VsbCogY2VsbCwgY29uc3QgUmVuZGVyT2JqZWN0KiBvKQog
ewogICAgIGJvb2wgb2xkSW5kZXRlcm1pbmF0ZSA9IFtjZWxsIHN0YXRlXSA9PSBOU01peGVkU3Rh
dGU7CkBAIC03NjUsNiArNzgzLDcgQEAgdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpzZXRD
aGVja2JveAogICAgIHNldENvbnRyb2xTaXplKGNoZWNrYm94LCBjaGVja2JveFNpemVzKCksIHIu
c2l6ZSgpLCBvLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpOwogCiAgICAgLy8gVXBkYXRlIHRo
ZSB2YXJpb3VzIHN0YXRlcyB3ZSByZXNwb25kIHRvLgorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKGNo
ZWNrYm94LCBvKTsKICAgICB1cGRhdGVDaGVja2VkU3RhdGUoY2hlY2tib3gsIG8pOwogICAgIHVw
ZGF0ZUVuYWJsZWRTdGF0ZShjaGVja2JveCwgbyk7CiAgICAgdXBkYXRlUHJlc3NlZFN0YXRlKGNo
ZWNrYm94LCBvKTsKQEAgLTg0Niw2ICs4NjUsNyBAQCB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1N
YWM6OnNldFJhZGlvQ2VsCiAgICAgc2V0Q29udHJvbFNpemUocmFkaW8sIHJhZGlvU2l6ZXMoKSwg
ci5zaXplKCksIG8tPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7CiAKICAgICAvLyBVcGRhdGUg
dGhlIHZhcmlvdXMgc3RhdGVzIHdlIHJlc3BvbmQgdG8uCisgICAgdXBkYXRlQWN0aXZlU3RhdGUo
cmFkaW8sIG8pOwogICAgIHVwZGF0ZUNoZWNrZWRTdGF0ZShyYWRpbywgbyk7CiAgICAgdXBkYXRl
RW5hYmxlZFN0YXRlKHJhZGlvLCBvKTsKICAgICB1cGRhdGVQcmVzc2VkU3RhdGUocmFkaW8sIG8p
OwpAQCAtOTc2LDYgKzk5Niw3IEBAIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6c2V0QnV0
dG9uQ2UKICAgICBbYnV0dG9uIHNldEtleUVxdWl2YWxlbnQ6KGlzRGVmYXVsdEJ1dHRvbiA/IEAi
XHIiIDogQCIiKV07CiAKICAgICAvLyBVcGRhdGUgdGhlIHZhcmlvdXMgc3RhdGVzIHdlIHJlc3Bv
bmQgdG8uCisgICAgdXBkYXRlQWN0aXZlU3RhdGUoYnV0dG9uLCBvKTsKICAgICB1cGRhdGVDaGVj
a2VkU3RhdGUoYnV0dG9uLCBvKTsKICAgICB1cGRhdGVFbmFibGVkU3RhdGUoYnV0dG9uLCBvKTsK
ICAgICB1cGRhdGVQcmVzc2VkU3RhdGUoYnV0dG9uLCBvKTsKQEAgLTE0MTQsNiArMTQzNSw3IEBA
IHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6c2V0UG9wdXBCdXQKICAgICBzZXRDb250cm9s
U2l6ZShwb3B1cEJ1dHRvbiwgcG9wdXBCdXR0b25TaXplcygpLCByLnNpemUoKSwgby0+c3R5bGUo
KS0+ZWZmZWN0aXZlWm9vbSgpKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgdmFyaW91cyBzdGF0ZXMg
d2UgcmVzcG9uZCB0by4KKyAgICB1cGRhdGVBY3RpdmVTdGF0ZShwb3B1cEJ1dHRvbiwgbyk7CiAg
ICAgdXBkYXRlQ2hlY2tlZFN0YXRlKHBvcHVwQnV0dG9uLCBvKTsKICAgICB1cGRhdGVFbmFibGVk
U3RhdGUocG9wdXBCdXR0b24sIG8pOwogICAgIHVwZGF0ZVByZXNzZWRTdGF0ZShwb3B1cEJ1dHRv
biwgbyk7CkBAIC0xNDk2LDYgKzE1MTgsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6
OnBhaW50U2xpZGVyCiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4
dChwYWludEluZm8uY29udGV4dCk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHZhcmlvdXMgc3RhdGVz
IHdlIHJlc3BvbmQgdG8uCisgICAgdXBkYXRlQWN0aXZlU3RhdGUoc2xpZGVyVGh1bWJDZWxsLCBv
KTsKICAgICB1cGRhdGVFbmFibGVkU3RhdGUoc2xpZGVyVGh1bWJDZWxsLCBvLT5wYXJlbnQoKSk7
CiAgICAgdXBkYXRlRm9jdXNlZFN0YXRlKHNsaWRlclRodW1iQ2VsbCwgby0+cGFyZW50KCkpOwog
CkBAIC0xNjA3LDYgKzE2MzAsNyBAQCB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnNldFNl
YXJjaENlCiAgICAgW3NlYXJjaCBzZXRDb250cm9sU2l6ZTpjb250cm9sU2l6ZUZvckZvbnQoby0+
c3R5bGUoKSldOwogCiAgICAgLy8gVXBkYXRlIHRoZSB2YXJpb3VzIHN0YXRlcyB3ZSByZXNwb25k
IHRvLgorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKHNlYXJjaCwgbyk7CiAgICAgdXBkYXRlRW5hYmxl
ZFN0YXRlKHNlYXJjaCwgbyk7CiAgICAgdXBkYXRlRm9jdXNlZFN0YXRlKHNlYXJjaCwgbyk7CiB9
CkBAIC0xNjY3LDYgKzE2OTEsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50
U2VhcmNoCiAKICAgICBOU1NlYXJjaEZpZWxkQ2VsbCogc2VhcmNoID0gdGhpcy0+c2VhcmNoKCk7
CiAKKyAgICB1cGRhdGVBY3RpdmVTdGF0ZShbc2VhcmNoIGNhbmNlbEJ1dHRvbkNlbGxdLCBvKTsK
ICAgICB1cGRhdGVQcmVzc2VkU3RhdGUoW3NlYXJjaCBjYW5jZWxCdXR0b25DZWxsXSwgbyk7CiAK
ICAgICBwYWludEluZm8uY29udGV4dC0+c2F2ZSgpOwpAQCAtMTc0Miw2ICsxNzY3LDggQEAgYm9v
bCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNlYXJjaAogCiAgICAgTlNTZWFyY2hGaWVs
ZENlbGwqIHNlYXJjaCA9IHRoaXMtPnNlYXJjaCgpOwogCisgICAgdXBkYXRlQWN0aXZlU3RhdGUo
W3NlYXJjaCBzZWFyY2hCdXR0b25DZWxsXSwgbyk7CisKICAgICBpZiAoW3NlYXJjaCBzZWFyY2hN
ZW51VGVtcGxhdGVdICE9IG5pbCkKICAgICAgICAgW3NlYXJjaCBzZXRTZWFyY2hNZW51VGVtcGxh
dGU6bmlsXTsKIApAQCAtMTc2OSw2ICsxNzk2LDggQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVt
TWFjOjpwYWludFNlYXJjaAogCiAgICAgTlNTZWFyY2hGaWVsZENlbGwqIHNlYXJjaCA9IHRoaXMt
PnNlYXJjaCgpOwogCisgICAgdXBkYXRlQWN0aXZlU3RhdGUoW3NlYXJjaCBzZWFyY2hCdXR0b25D
ZWxsXSwgbyk7CisKICAgICBpZiAoIVtzZWFyY2ggc2VhcmNoTWVudVRlbXBsYXRlXSkKICAgICAg
ICAgW3NlYXJjaCBzZXRTZWFyY2hNZW51VGVtcGxhdGU6c2VhcmNoTWVudVRlbXBsYXRlKCldOwog
Cg==
</data>
<flag name="review"
          id="18764"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34664</attachid>
            <date>2009-08-12 08:48:55 -0700</date>
            <delta_ts>2009-08-12 09:01:10 -0700</delta_ts>
            <desc>Changelog entry back, style fix.</desc>
            <filename>patch-cr18199-6.txt</filename>
            <type>text/plain</type>
            <size>6256</size>
            <attacher name="Viet-Trung Luu">viettrungluu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Njk1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMDgtMTIgIFZpZXQtVHJ1bmcgTHV1ICA8dmlldHRydW5nbHV1
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFeHBsaWNpdGx5IHNldCBjb250cm9sIHRpbnRzIGZvciBDaHJvbWl1bS9NYWMsIHNpbmNl
IHRoZSBjb250cm9scycKKyAgICAgICAgTlNDZWxsKHMpIGxhY2sgYW4gTlNWaWV3IGFuZCBoZW5j
ZSB0aGVpciB0aW50IGlzbid0IHVwZGF0ZWQKKyAgICAgICAgYXV0b21hdGljYWxseSB3aGVuIHRo
ZSBhcHBsaWNhdGlvbiBpcyBhY3RpdmF0ZWQvZGVhY3RpdmF0ZWQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODEwOAorICAgICAgICBodHRwOi8vY3Ji
dWcuY29tLzE4MTk5CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZU5TQ2VsbENvbnRyb2xUaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50Q2hlY2tib3gpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRSYWRpbyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludEJ1dHRvbik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludE1lbnVMaXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50U2xpZGVyVGh1bWIp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRTZWFyY2hG
aWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hy
b21pdW1NYWM6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0J1
dHRvbik6CisKIDIwMDktMDgtMDggIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJbmRleDogV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAkocmV2aXNpb24gNDY5NTMpCisrKyBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE1Niw2ICsxNTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEludFNpemUg
c2l6ZUZvclN5c3RlbUZvbnQoUmVuZGVyU3R5bGUqLCBjb25zdCBJbnRTaXplKiBzaXplcykgY29u
c3Q7CiAgICAgICAgIHZvaWQgc2V0Rm9udEZyb21Db250cm9sU2l6ZShDU1NTdHlsZVNlbGVjdG9y
KiwgUmVuZGVyU3R5bGUqLCBOU0NvbnRyb2xTaXplKSBjb25zdDsKIAorICAgICAgICB2b2lkIHVw
ZGF0ZUFjdGl2ZVN0YXRlKE5TQ2VsbCosIGNvbnN0IFJlbmRlck9iamVjdCopOwogICAgICAgICB2
b2lkIHVwZGF0ZUNoZWNrZWRTdGF0ZShOU0NlbGwqLCBjb25zdCBSZW5kZXJPYmplY3QqKTsKICAg
ICAgICAgdm9pZCB1cGRhdGVFbmFibGVkU3RhdGUoTlNDZWxsKiwgY29uc3QgUmVuZGVyT2JqZWN0
Kik7CiAgICAgICAgIHZvaWQgdXBkYXRlRm9jdXNlZFN0YXRlKE5TQ2VsbCosIGNvbnN0IFJlbmRl
ck9iamVjdCopOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
TWFjLm1tCShyZXZpc2lvbiA0Njk1MykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTU0OSw2ICs1NDksMjUgQEAgSW50UmVj
dCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjppbmZsYXRlUgogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKKy8vIFVwZGF0ZXMgdGhlIGNvbnRyb2wgdGludCAoYS5rLmEuIGFjdGl2ZSBzdGF0ZSkgb2Yg
fGNlbGx8IChmcm9tIHxvfCkuCisvLyBJbiB0aGUgQ2hyb21pdW0gcG9ydCwgdGhlIHJlbmRlcmVy
IHJ1bnMgYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MgYW5kIGNvbnRyb2xzJworLy8gTlNDZWxsKHMp
IGxhY2sgYSBwYXJlbnQgTlNWaWV3LiBUaGVyZWZvcmUgY29udHJvbHMgZG9uJ3QgaGF2ZSB0aGVp
ciB0aW50CisvLyBjb2xvciB1cGRhdGVkIGNvcnJlY3RseSB3aGVuIHRoZSBhcHBsaWNhdGlvbiBp
cyBhY3RpdmF0ZWQvZGVhY3RpdmF0ZWQuCisvLyBGb2N1c0NvbnRyb2xsZXIncyBzZXRBY3RpdmUo
KSBpcyBjYWxsZWQgd2hlbiB0aGUgYXBwbGljYXRpb24gaXMKKy8vIGFjdGl2YXRlZC9kZWFjdGl2
YXRlZCwgd2hpY2ggY2F1c2VzIGEgcmVwYWludCBhdCB3aGljaCB0aW1lIHRoaXMgY29kZSBpcwor
Ly8gY2FsbGVkLgorLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBkcmF3
aW5nIGFueSBOU0NlbGwtZGVyaXZlZCBjb250cm9scywKKy8vIHVubGVzcyB5b3UncmUgc3VyZSBp
dCBpc24ndCBuZWVkZWQuCit2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnVwZGF0ZUFjdGl2
ZVN0YXRlKE5TQ2VsbCogY2VsbCwgY29uc3QgUmVuZGVyT2JqZWN0KiBvKQoreworICAgIE5TQ29u
dHJvbFRpbnQgb2xkVGludCA9IFtjZWxsIGNvbnRyb2xUaW50XTsKKyAgICBOU0NvbnRyb2xUaW50
IHRpbnQgPSBpc0FjdGl2ZShvKSA/IFtOU0NvbG9yIGN1cnJlbnRDb250cm9sVGludF0gOgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlNDbGVhckNvbnRyb2xUaW50Owor
CisgICAgaWYgKHRpbnQgIT0gb2xkVGludCkKKyAgICAgICAgW2NlbGwgc2V0Q29udHJvbFRpbnQ6
dGludF07Cit9CisKIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6dXBkYXRlQ2hlY2tlZFN0
YXRlKE5TQ2VsbCogY2VsbCwgY29uc3QgUmVuZGVyT2JqZWN0KiBvKQogewogICAgIGJvb2wgb2xk
SW5kZXRlcm1pbmF0ZSA9IFtjZWxsIHN0YXRlXSA9PSBOU01peGVkU3RhdGU7CkBAIC03NjUsNiAr
Nzg0LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpzZXRDaGVja2JveAogICAgIHNl
dENvbnRyb2xTaXplKGNoZWNrYm94LCBjaGVja2JveFNpemVzKCksIHIuc2l6ZSgpLCBvLT5zdHls
ZSgpLT5lZmZlY3RpdmVab29tKCkpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB2YXJpb3VzIHN0YXRl
cyB3ZSByZXNwb25kIHRvLgorICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKGNoZWNrYm94LCBvKTsKICAg
ICB1cGRhdGVDaGVja2VkU3RhdGUoY2hlY2tib3gsIG8pOwogICAgIHVwZGF0ZUVuYWJsZWRTdGF0
ZShjaGVja2JveCwgbyk7CiAgICAgdXBkYXRlUHJlc3NlZFN0YXRlKGNoZWNrYm94LCBvKTsKQEAg
LTg0Niw2ICs4NjYsNyBAQCB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnNldFJhZGlvQ2Vs
CiAgICAgc2V0Q29udHJvbFNpemUocmFkaW8sIHJhZGlvU2l6ZXMoKSwgci5zaXplKCksIG8tPnN0
eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHZhcmlvdXMgc3Rh
dGVzIHdlIHJlc3BvbmQgdG8uCisgICAgdXBkYXRlQWN0aXZlU3RhdGUocmFkaW8sIG8pOwogICAg
IHVwZGF0ZUNoZWNrZWRTdGF0ZShyYWRpbywgbyk7CiAgICAgdXBkYXRlRW5hYmxlZFN0YXRlKHJh
ZGlvLCBvKTsKICAgICB1cGRhdGVQcmVzc2VkU3RhdGUocmFkaW8sIG8pOwpAQCAtOTc2LDYgKzk5
Nyw3IEBAIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6c2V0QnV0dG9uQ2UKICAgICBbYnV0
dG9uIHNldEtleUVxdWl2YWxlbnQ6KGlzRGVmYXVsdEJ1dHRvbiA/IEAiXHIiIDogQCIiKV07CiAK
ICAgICAvLyBVcGRhdGUgdGhlIHZhcmlvdXMgc3RhdGVzIHdlIHJlc3BvbmQgdG8uCisgICAgdXBk
YXRlQWN0aXZlU3RhdGUoYnV0dG9uLCBvKTsKICAgICB1cGRhdGVDaGVja2VkU3RhdGUoYnV0dG9u
LCBvKTsKICAgICB1cGRhdGVFbmFibGVkU3RhdGUoYnV0dG9uLCBvKTsKICAgICB1cGRhdGVQcmVz
c2VkU3RhdGUoYnV0dG9uLCBvKTsKQEAgLTE0MTQsNiArMTQzNiw3IEBAIHZvaWQgUmVuZGVyVGhl
bWVDaHJvbWl1bU1hYzo6c2V0UG9wdXBCdXQKICAgICBzZXRDb250cm9sU2l6ZShwb3B1cEJ1dHRv
biwgcG9wdXBCdXR0b25TaXplcygpLCByLnNpemUoKSwgby0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9v
bSgpKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgdmFyaW91cyBzdGF0ZXMgd2UgcmVzcG9uZCB0by4K
KyAgICB1cGRhdGVBY3RpdmVTdGF0ZShwb3B1cEJ1dHRvbiwgbyk7CiAgICAgdXBkYXRlQ2hlY2tl
ZFN0YXRlKHBvcHVwQnV0dG9uLCBvKTsKICAgICB1cGRhdGVFbmFibGVkU3RhdGUocG9wdXBCdXR0
b24sIG8pOwogICAgIHVwZGF0ZVByZXNzZWRTdGF0ZShwb3B1cEJ1dHRvbiwgbyk7CkBAIC0xNDk2
LDYgKzE1MTksNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50U2xpZGVyCiAg
ICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChwYWludEluZm8uY29u
dGV4dCk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHZhcmlvdXMgc3RhdGVzIHdlIHJlc3BvbmQgdG8u
CisgICAgdXBkYXRlQWN0aXZlU3RhdGUoc2xpZGVyVGh1bWJDZWxsLCBvKTsKICAgICB1cGRhdGVF
bmFibGVkU3RhdGUoc2xpZGVyVGh1bWJDZWxsLCBvLT5wYXJlbnQoKSk7CiAgICAgdXBkYXRlRm9j
dXNlZFN0YXRlKHNsaWRlclRodW1iQ2VsbCwgby0+cGFyZW50KCkpOwogCkBAIC0xNjA3LDYgKzE2
MzEsNyBAQCB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnNldFNlYXJjaENlCiAgICAgW3Nl
YXJjaCBzZXRDb250cm9sU2l6ZTpjb250cm9sU2l6ZUZvckZvbnQoby0+c3R5bGUoKSldOwogCiAg
ICAgLy8gVXBkYXRlIHRoZSB2YXJpb3VzIHN0YXRlcyB3ZSByZXNwb25kIHRvLgorICAgIHVwZGF0
ZUFjdGl2ZVN0YXRlKHNlYXJjaCwgbyk7CiAgICAgdXBkYXRlRW5hYmxlZFN0YXRlKHNlYXJjaCwg
byk7CiAgICAgdXBkYXRlRm9jdXNlZFN0YXRlKHNlYXJjaCwgbyk7CiB9CkBAIC0xNjY3LDYgKzE2
OTIsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50U2VhcmNoCiAKICAgICBO
U1NlYXJjaEZpZWxkQ2VsbCogc2VhcmNoID0gdGhpcy0+c2VhcmNoKCk7CiAKKyAgICB1cGRhdGVB
Y3RpdmVTdGF0ZShbc2VhcmNoIGNhbmNlbEJ1dHRvbkNlbGxdLCBvKTsKICAgICB1cGRhdGVQcmVz
c2VkU3RhdGUoW3NlYXJjaCBjYW5jZWxCdXR0b25DZWxsXSwgbyk7CiAKICAgICBwYWludEluZm8u
Y29udGV4dC0+c2F2ZSgpOwpAQCAtMTc0Miw2ICsxNzY4LDggQEAgYm9vbCBSZW5kZXJUaGVtZUNo
cm9taXVtTWFjOjpwYWludFNlYXJjaAogCiAgICAgTlNTZWFyY2hGaWVsZENlbGwqIHNlYXJjaCA9
IHRoaXMtPnNlYXJjaCgpOwogCisgICAgdXBkYXRlQWN0aXZlU3RhdGUoW3NlYXJjaCBzZWFyY2hC
dXR0b25DZWxsXSwgbyk7CisKICAgICBpZiAoW3NlYXJjaCBzZWFyY2hNZW51VGVtcGxhdGVdICE9
IG5pbCkKICAgICAgICAgW3NlYXJjaCBzZXRTZWFyY2hNZW51VGVtcGxhdGU6bmlsXTsKIApAQCAt
MTc2OSw2ICsxNzk3LDggQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludFNlYXJj
aAogCiAgICAgTlNTZWFyY2hGaWVsZENlbGwqIHNlYXJjaCA9IHRoaXMtPnNlYXJjaCgpOwogCisg
ICAgdXBkYXRlQWN0aXZlU3RhdGUoW3NlYXJjaCBzZWFyY2hCdXR0b25DZWxsXSwgbyk7CisKICAg
ICBpZiAoIVtzZWFyY2ggc2VhcmNoTWVudVRlbXBsYXRlXSkKICAgICAgICAgW3NlYXJjaCBzZXRT
ZWFyY2hNZW51VGVtcGxhdGU6c2VhcmNoTWVudVRlbXBsYXRlKCldOwogCg==
</data>
<flag name="review"
          id="18818"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>