<?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>35274</bug_id>
          
          <creation_ts>2010-02-22 17:03:01 -0800</creation_ts>
          <short_desc>REGRESSION(r55107): Inspector docking is busted.</short_desc>
          <delta_ts>2010-02-24 00:36:10 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>ain</cc>
    
    <cc>beidson</cc>
    
    <cc>pfeldman</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>192704</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-22 17:03:01 -0800</bug_when>
    <thetext>REGRESSION(???): Inspector window appears and disappears when running the layout tests on mac

I didn&apos;t used to see any windows when running the layout tests. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192705</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-22 17:04:24 -0800</bug_when>
    <thetext>I&apos;ve not narrowed it down to a list of tests yet.  I just know that when I am running the tests (currently using run-chromium-webkit-tests) i see inspector windows appear and disappear.  run-chromium-webkit-tests uses the same DumpRenderTree as run-webkit-tests, so I very much doubt it&apos;s related to the test harness.

I didn&apos;t see this earlier today, so I think the regression may have started today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192706</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-22 17:06:28 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/55107 looks suspect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192709</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-22 17:09:39 -0800</bug_when>
    <thetext>Here&apos;s the only thing that could be different:  
If your platform&apos;s layouttests show the web inspector for each test, and you used to dock the inspector to the window, but the window is too small to accept the docking, then it will no longer be allowed to dock and will open as it&apos;s own window instead.

We don&apos;t see this on Mac or Windows, so there must be something peculiar about what Chromium does with the web inspector during layouttests...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192710</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-22 17:11:00 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; run-chromium-webkit-tests uses the same
&gt; DumpRenderTree as run-webkit-tests, so I very much doubt it&apos;s related to the
&gt; test harness.

Not specific to the testing harness, perhaps, but rather chromium&apos;s own settings for the layouttests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192715</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-22 17:13:23 -0800</bug_when>
    <thetext>Oh, this has nothing to do with Chromium.   run-chromium-webkit-tests is poorly named (since it is just a python version of run-webkit-tests).  I&apos;m running the normal Mac WebKit DumpRenderTree.

I need to rename run-chromium-webkit-tests.

I just verified that this occurs for me running:

run-webkit-tests inspector

as well.  Again, chromium is not related here.  Sorry for the confusion by mentioning run-chromium-webkit-tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192716</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-22 17:16:10 -0800</bug_when>
    <thetext>Yup, I can see what eric sees with run-webkit-tests inspector.

I didn&apos;t see this because I was away from my computer while running the layouttests, and they still pass.

Since it is actually the intended functional progression intended by the patch, I guess we need to find a way to somehow suppress the inspector window altogether in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192796</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-22 23:12:14 -0800</bug_when>
    <thetext>This is really annoying and should be fixed asap. Our tests are already taking too long, so we can&apos;t afford the luxury of opening inspector window.

Can we make sure that defaults (DRT&apos;s 800x600 and default inspector ratio) allow docking? That would make DRT happy. If not, we should extend DRT and disable this behavior explicitly.

Wrt to the original change, I am not sure the following scenario would work:

1)
- Open inspector in docked mode
- Maximize the window
- Undock inspector
- Restore original window size
- Dock inspector

2) Furthermore, I see no changes to the frontend and that makes me think that &quot;dock&quot; button will anyways be visible and enabled. What happens when user clicks it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192818</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 00:52:01 -0800</bug_when>
    <thetext>
&gt; Can we make sure that defaults (DRT&apos;s 800x600 and default inspector ratio)
&gt; allow docking? That would make DRT happy. If not, we should extend DRT and
&gt; disable this behavior explicitly.

Thinking it was very odd that docking wouldn&apos;t work with 800px height, I tried this locally.  It&apos;s completely busted.  I didn&apos;t notice the glaring bug because I happened to be testing with either &quot;really tiny&quot; window heights and 1000+px window heights. I know exactly what I need to do to fix it, and that will again hide the window in DRT.

That said, I have no tree to work out of right now and won&apos;t till tomorrow.  I&apos;ll pre-emptively rubberstamp someone rolling it out if they truly can&apos;t stand it until tomorrow, or I&apos;ll get to fixing it tomorrow morning.

That said...

(In reply to comment #7)
&gt; This is really annoying and should be fixed asap. Our tests are already taking
&gt; too long, so we can&apos;t afford the luxury of opening inspector window.

I agree the bug is annoying - but it does *NOT* make the inspector tests take longer.  Each test took about 1 second before my change, and each test takes about 1 second after my change.

Opening the web inspector is a painfully, unacceptably slow operation in general.  Doing so in DRT is no exception, even when the window is hidden.

&gt; 2) Furthermore, I see no changes to the frontend and that makes me think that
&gt; &quot;dock&quot; button will anyways be visible and enabled. What happens when user
&gt; clicks it?

You&apos;re right, there were no front-end changes in this patch.  I thought I filed a followup, but now that I can&apos;t find it by searching from home, I&apos;m sure my browser @ work is sitting on the submit screen reminding me I forgot to choose a component.  ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192979</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 09:03:34 -0800</bug_when>
    <thetext>*** Bug 35293 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192980</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 09:04:50 -0800</bug_when>
    <thetext>Got the math wrong and the inspector won&apos;t dock unless the browser window is 1000+px high.

Also, even a failed docking attempt results in the inspector window itself changing into &quot;docked&quot; mode.

*sigh*

I am working on this right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193027</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 11:25:24 -0800</bug_when>
    <thetext>Yah I completely botched this one.  A cleanup will be attached shortly.

In the meantime, I filed https://bugs.webkit.org/show_bug.cgi?id=35306 to cover disabling the Dock button when the attach can&apos;t take place.

That one will be easy to fix, but is logically separate from this bug and this one is much more important to get fixed asap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193029</commentid>
    <comment_count>12</comment_count>
      <attachid>49309</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 11:29:41 -0800</bug_when>
    <thetext>Created attachment 49309
Make this work.

May as well post this while I&apos;m running the layouttests.

Clean this up, including exposing the &quot;can attach?&quot; method to the front end host so the inspector front end can make decisions about this.  (will help resolving https://bugs.webkit.org/show_bug.cgi?id=35306, too)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193031</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 11:32:14 -0800</bug_when>
    <thetext>Nevermind, didn&apos;t know there was an autogen and idl here (I was manually editting a derived source)

Followup coming...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193042</commentid>
    <comment_count>14</comment_count>
      <attachid>49313</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 11:42:14 -0800</bug_when>
    <thetext>Created attachment 49313
Take 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193047</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 11:49:31 -0800</bug_when>
    <thetext>Ugggh - causes a layouttest failure...  anyone know how the inspector tests work?

--- /tmp/layout-test-results/inspector/timeline-event-dispatch-expected.txt	2010-02-23 11:40:48.000000000 -0800
+++ /tmp/layout-test-results/inspector/timeline-event-dispatch-actual.txt	2010-02-23 11:40:48.000000000 -0800
@@ -1,12 +1,4 @@
 Tests the Timeline API instrumentation of a DOM Dispatch (mousedown)
 
 Test Mouse Target
-EventDispatch Properties:
-+ startTime : * DEFINED *
-+ data : {
-+- type : mousedown
-+ }
-+ children : * DEFINED *
-+ endTime : * DEFINED *
-+ type : 0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193051</commentid>
    <comment_count>16</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-02-23 11:55:06 -0800</bug_when>
    <thetext>I am not sure why this fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193055</commentid>
    <comment_count>17</comment_count>
      <attachid>49315</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 11:59:37 -0800</bug_when>
    <thetext>Created attachment 49315
3rd time&apos;s the charm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193074</commentid>
    <comment_count>18</comment_count>
      <attachid>49315</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-23 12:21:06 -0800</bug_when>
    <thetext>Comment on attachment 49315
3rd time&apos;s the charm

The IDL change looks fine. I would only ask that you check InspectorFrontendHost.canAttach for existence before calling into it. Otherwise Chromium gets doomed. We have not yet upstreamed the frontend interface. I don&apos;t follow the general logic though:

&gt; +    return constrainedAttachedWindowHeight(preferredHeight, inspectedPageHeight) &lt;= inspectedPageHeight * maximumAttachedHeightRatio;

If I inline constrainedAttachedWindowHeight, I get:

max(minimumAttachedHeight, min(preferredHeight, inspectedPageHeight * maximumAttachedHeightRatio)) &lt;= inspectedPageHeight * maximumAttachedHeightRatio

this evolves to

max(minimumAttachedHeight, {x | x &lt;= inspectedPageHeight * maximumAttachedHeightRatio}) &lt;= inspectedPageHeight * maximumAttachedHeightRatio

So this thing is only false if minimumAttachedHeight &gt;  inspectedPageHeight * maximumAttachedHeightRatio. This looks like a strange check. What do I miss? r- unless you convince me this is the right check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193080</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 12:51:06 -0800</bug_when>
    <thetext>I don&apos;t need to convince you, because you&apos;re right. ;)

I&apos;m kind of sad I&apos;ll be doing the existence check as a temporary fix while Chromium waits to upstream other changes...  seems kind of odd that we might end up littering the code with such checks then forgetting to remove them later.  Have we done this before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193081</commentid>
    <comment_count>20</comment_count>
      <attachid>49317</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 12:53:09 -0800</bug_when>
    <thetext>Created attachment 49317
With pfeldman&apos;s requested change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193083</commentid>
    <comment_count>21</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-23 12:59:29 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; I don&apos;t need to convince you, because you&apos;re right. ;)
&gt; 
&gt; I&apos;m kind of sad I&apos;ll be doing the existence check as a temporary fix while
&gt; Chromium waits to upstream other changes...  seems kind of odd that we might
&gt; end up littering the code with such checks then forgetting to remove them
&gt; later.  Have we done this before?

The way it works these days: when new method is added to
InspectorFrontendHost.idl in WebKit, Chromium&apos;s inspector interactive tests
fail. Then I fix Chromium&apos;s version of the frontend host and everyone is happy.
It is just that when I am aware of the upcoming change like this I ask that the
call to a new thing is guarded. I typically fix the check same or next day. It
prevents Chromium tests from failing. Chromium&apos;s front-end version is living
upstream (WebKit/chromium/), but the tests are not yet being enabled on WebKit
bots. We are working on final bits of migrating to the same implementation of the inspector frontend host, so it&apos;ll go away soonish!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193088</commentid>
    <comment_count>22</comment_count>
      <attachid>49317</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-02-23 13:09:16 -0800</bug_when>
    <thetext>Comment on attachment 49317
With pfeldman&apos;s requested change

Looks good. Single nit below:

&gt; +    if (constrainedHeight &gt; inspectedPageHeight * maximumAttachedHeightRatio)
&gt;          return;

Same as before, this could be a change against minimumAttachedHeight. You can then use constrainedAttachedWindowHeight in place below as it used to be.
Essentially your change will move from checks against preferredHeight to checks against minimumAttachedHeight, rest of the code won&apos;t change.

&gt; +        if (x &amp;&amp; InspectorFrontendHost.canAttachWindow &amp;&amp; !InspectorFrontendHost.canAttachWindow())
&gt; +            return;

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193123</commentid>
    <comment_count>23</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 14:10:29 -0800</bug_when>
    <thetext>Yet another problem with my patch, actually, when starting out docked.

Because starting out docked involves such a bizarre series of steps.

I think I just need to forcefully prevent the attach when the button is clicked, and in the original showWindow call.  Trying to do it at any other same leads to things getting inconsistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193131</commentid>
    <comment_count>24</comment_count>
      <attachid>49328</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 14:27:15 -0800</bug_when>
    <thetext>Created attachment 49328
Actually feel good about this one *sigh*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193133</commentid>
    <comment_count>25</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 14:29:44 -0800</bug_when>
    <thetext>Only different in my last patch from what pfeldman r+&apos;ed is that the actual policy decision of &quot;should I attach?&quot; has been moved out of the native ::attachWindow() and into the dock-button&apos;s click handler in the front-end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193136</commentid>
    <comment_count>26</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-23 14:39:54 -0800</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/55172</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193262</commentid>
    <comment_count>27</comment_count>
    <who name="Ain Tohvri">ain</who>
    <bug_when>2010-02-24 00:36:10 -0800</bug_when>
    <thetext>Great job Brady and guys, works nicely in r55180, thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49309</attachid>
            <date>2010-02-23 11:29:41 -0800</date>
            <delta_ts>2010-02-23 11:42:14 -0800</delta_ts>
            <desc>Make this work.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8616</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTE2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDItMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
Z3Jlc3Npb24gKHI1NTEwNykgLSBXZWJJbnNwZWN0b3IgZG9ja2luZyBpcyBidXN0ZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTI3NAorCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2FuQXR0YWNoV2luZG93KTogVXNlIHRoZSBjb25zdHJh
aW5lZCBoZWlnaHQgZm9yIHRoaXMgY2FsY3VsYXRpb24sCisgICAgICAgICAgbm90IHRoZSBwcmVm
ZXJyZWQgaGVpZ2h0LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6YXR0
YWNoV2luZG93KTogRGl0dG8uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6Y2Fu
QXR0YWNoV2luZG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
Lmg6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5zZXQgYXR0YWNoZWQpOiBCZWZvcmUgYXR0YWNoaW5nLCBhc2sgdGhl
IGZyb250LWVuZC1ob3N0IGlmIGF0dGFjaGluZyBpcyBhbGxvd2VkLgorCiAyMDEwLTAyLTIzICBM
ZWFuZHJvIFBlcmVpcmEgIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjQsNyArNDI0
LDcgQEAgYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpjYW5BdHRhY2hXaW5kbwogICAgIHVuc2ln
bmVkIGluc3BlY3RlZFBhZ2VIZWlnaHQgPSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT52
aWV3KCktPnZpc2libGVIZWlnaHQoKTsKIAogICAgIC8vIERvbid0IGFsbG93IHRoZSBhdHRhY2gg
aWYgdGhlIHdpbmRvdyBpcyB0b28gc21hbGwgdG8gcmVzcGVjdCB3aGF0IHNob3VsZCBiZSB0aGUg
bWluaW11bSBpbnNwZWN0b3IgaGVpZ2h0LgotICAgIHJldHVybiBwcmVmZXJyZWRIZWlnaHQgPD0g
aW5zcGVjdGVkUGFnZUhlaWdodCAqIG1heGltdW1BdHRhY2hlZEhlaWdodFJhdGlvOworICAgIHJl
dHVybiBjb25zdHJhaW5lZEF0dGFjaGVkV2luZG93SGVpZ2h0KHByZWZlcnJlZEhlaWdodCwgaW5z
cGVjdGVkUGFnZUhlaWdodCkgPD0gaW5zcGVjdGVkUGFnZUhlaWdodCAqIG1heGltdW1BdHRhY2hl
ZEhlaWdodFJhdGlvOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmF0dGFjaFdpbmRv
dygpCkBAIC00MzksMTUgKzQzOSwxNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmF0dGFj
aFdpbmRvdygpCiAgICAgaW50IGhlaWdodCA9IGF0dGFjaGVkSGVpZ2h0LnRvSW50KCZzdWNjZXNz
KTsKICAgICB1bnNpZ25lZCBwcmVmZXJyZWRIZWlnaHQgPSBzdWNjZXNzID8gaGVpZ2h0IDogZGVm
YXVsdEF0dGFjaGVkSGVpZ2h0OwogICAgIAotICAgIC8vIERvbid0IGFsbG93IHRoZSBhdHRhY2gg
aWYgdGhlIHdpbmRvdyBpcyB0b28gc21hbGwgdG8gcmVzcGVjdCB3aGF0IHNob3VsZCBiZSB0aGUg
bWluaW11bSBpbnNwZWN0b3IgaGVpZ2h0LgotICAgIGlmIChwcmVmZXJyZWRIZWlnaHQgPiBpbnNw
ZWN0ZWRQYWdlSGVpZ2h0ICogbWF4aW11bUF0dGFjaGVkSGVpZ2h0UmF0aW8pCisgICAgLy8gRG9u
J3QgYWxsb3cgdGhlIGF0dGFjaCBpZiB0aGUgd2luZG93IHdvdWxkIGJlIHRvbyBzbWFsbCB0byBh
Y2NvbW1vZGF0ZSB0aGUgbWluaW11bSBpbnNwZWN0b3IgaGVpZ2h0LgorICAgIHVuc2lnbmVkIGNv
bnN0cmFpbmVkSGVpZ2h0ID0gY29uc3RyYWluZWRBdHRhY2hlZFdpbmRvd0hlaWdodChwcmVmZXJy
ZWRIZWlnaHQsIGluc3BlY3RlZFBhZ2VIZWlnaHQpOworICAgIGlmIChjb25zdHJhaW5lZEhlaWdo
dCA+IGluc3BlY3RlZFBhZ2VIZWlnaHQgKiBtYXhpbXVtQXR0YWNoZWRIZWlnaHRSYXRpbykKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9jbGllbnQtPmF0dGFjaFdpbmRvdygpOwogCiAgICAgLy8g
V2UgbmVlZCB0byBjb25zdHJhaW4gdGhlIHdpbmRvdyBoZWlnaHQgaGVyZSBpbiBjYXNlIHRoZSB1
c2VyIGhhcyByZXNpemVkIHRoZSBpbnNwZWN0ZWQgcGFnZSdzIHdpbmRvdyBzbyB0aGF0CiAgICAg
Ly8gdGhlIHVzZXIncyBwcmVmZXJyZWQgaGVpZ2h0IHdvdWxkIGJlIHRvbyBiaWcgdG8gZGlzcGxh
eS4KLSAgICBtX2NsaWVudC0+c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoY29uc3RyYWluZWRBdHRh
Y2hlZFdpbmRvd0hlaWdodChwcmVmZXJyZWRIZWlnaHQsIGluc3BlY3RlZFBhZ2VIZWlnaHQpKTsK
KyAgICBtX2NsaWVudC0+c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoY29uc3RyYWluZWRIZWlnaHQp
OwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRldGFjaFdpbmRvdygpCkluZGV4OiBX
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAJKHJldmlzaW9uIDU1
MTU1KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTYsNiArOTYsMTMgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6
OndpbmRvd1VubG9hZAogICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmNsb3NlKCk7CiB9
CiAKK2Jvb2wgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpjYW5BdHRhY2hXaW5kb3coKSBjb25zdAor
eworICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBtX2luc3Bl
Y3RvckNvbnRyb2xsZXItPmNhbkF0dGFjaFdpbmRvdygpOworICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVu
c2lnbmVkIGhlaWdodCkKIHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQpJbmRleDog
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgJKHJldmlzaW9uIDU1MTU1
KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xvc2VXaW5kb3coKTsK
ICAgICB2b2lkIHdpbmRvd1VubG9hZGluZygpOwogCisgICAgYm9vbCBjYW5BdHRhY2hXaW5kb3co
KSBjb25zdDsKICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdo
dCk7CiAgICAgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3Q7CiAKSW5k
ZXg6IFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwkocmV2aXNpb24gNTUx
NTUpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzEsNiArMjMxLDkgQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAg
aWYgKHRoaXMuX2F0dGFjaGVkID09PSB4KQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAg
IGlmICh4ICYmICFJbnNwZWN0b3JGcm9udGVuZEhvc3QuY2FuQXR0YWNoV2luZG93KCkpCisgICAg
ICAgICAgICByZXR1cm47CisKICAgICAgICAgdGhpcy5fYXR0YWNoZWQgPSB4OwogCiAgICAgICAg
IHRoaXMudXBkYXRlU2VhcmNoTGFiZWwoKTsKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTE2MSkKKysrIFdl
YktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAt
MDItMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZ3Jlc3Npb24gKHI1NTEwNykgLSBX
ZWJJbnNwZWN0b3IgZG9ja2luZyBpcyBidXN0ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTI3NAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250
cm9sbGVyIHNob3dXaW5kb3c6XSk6IFN3YXAgdGhlIG9yZGVyIG9mIHRoZSAic2hvdWxkIGF0dGFj
aD8iIGNoZWNrCisgICAgICAgICAgdG8gZ2V0IHRoZSBleHBlY3RlZCBiZWhhdmlvci4KKwogMjAx
MC0wMi0yMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0z
MjYsMTQgKzMyNiwxMiBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6aW5zcGVjdG9yV2luZG93
CiAKICAgICBfdmlzaWJsZSA9IFlFUzsKICAgICAKLSAgICBpZiAoIVtfaW5zcGVjdGVkV2ViVmll
dyBwYWdlXS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5jYW5BdHRhY2hXaW5kb3coKSkKLSAgICAg
ICAgX3Nob3VsZEF0dGFjaCA9IE5POworICAgIC8vIElmIG5vIHByZWZlcmVuY2UgaXMgc2V0IC0g
ZGVmYXVsdCB0byBhbiBhdHRhY2hlZCB3aW5kb3cuIFRoaXMgaXMgaW1wb3J0YW50IGZvciBpbnNw
ZWN0b3IgTGF5b3V0VGVzdHMuCisgICAgU3RyaW5nIHNob3VsZEF0dGFjaCA9IFtfaW5zcGVjdGVk
V2ViVmlldyBwYWdlXS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zZXR0aW5nKGluc3BlY3RvclN0
YXJ0c0F0dGFjaGVkTmFtZSk7CisgICAgX3Nob3VsZEF0dGFjaCA9IHNob3VsZEF0dGFjaCAhPSAi
ZmFsc2UiOwogICAgIAotICAgIGlmIChfc2hvdWxkQXR0YWNoKSB7Ci0gICAgICAgIC8vIElmIG5v
IHByZWZlcmVuY2UgaXMgc2V0IC0gZGVmYXVsdCB0byBhbiBhdHRhY2hlZCB3aW5kb3cuIFRoaXMg
aXMgaW1wb3J0YW50IGZvciBpbnNwZWN0b3IgTGF5b3V0VGVzdHMuCi0gICAgICAgIFN0cmluZyBz
aG91bGRBdHRhY2ggPSBbX2luc3BlY3RlZFdlYlZpZXcgcGFnZV0tPmluc3BlY3RvckNvbnRyb2xs
ZXIoKS0+c2V0dGluZyhpbnNwZWN0b3JTdGFydHNBdHRhY2hlZE5hbWUpOwotICAgICAgICBfc2hv
dWxkQXR0YWNoID0gc2hvdWxkQXR0YWNoICE9ICJmYWxzZSI7Ci0gICAgfQorICAgIGlmIChfc2hv
dWxkQXR0YWNoICYmICFbX2luc3BlY3RlZFdlYlZpZXcgcGFnZV0tPmluc3BlY3RvckNvbnRyb2xs
ZXIoKS0+Y2FuQXR0YWNoV2luZG93KCkpCisgICAgICAgIF9zaG91bGRBdHRhY2ggPSBOTzsKIAog
ICAgIGlmIChfc2hvdWxkQXR0YWNoKSB7CiAgICAgICAgIFdlYkZyYW1lVmlldyAqZnJhbWVWaWV3
ID0gW1tfaW5zcGVjdGVkV2ViVmlldyBtYWluRnJhbWVdIGZyYW1lVmlld107CkluZGV4OiBXZWJL
aXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2
aXNpb24gNTUxNjEpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE0IEBACisyMDEwLTAyLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWdy
ZXNzaW9uIChyNTUxMDcpIC0gV2ViSW5zcGVjdG9yIGRvY2tpbmcgaXMgYnVzdGVkLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUyNzQKKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJJ
bnNwZWN0b3JDbGllbnQ6OnNob3dXaW5kb3dXaXRob3V0Tm90aWZpY2F0aW9ucyk6IFN3YXAgdGhl
IG9yZGVyIG9mIHRoZSAic2hvdWxkIGF0dGFjaD8iIGNoZWNrCisgICAgICAgICAgdG8gZ2V0IHRo
ZSBleHBlY3RlZCBiZWhhdmlvci4KKwogMjAxMC0wMi0yMyAgU3RldmUgQmxvY2sgIDxzdGV2ZWJs
b2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4
OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3Bw
CShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ5LDE1ICszNDksMTMgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JDbGllbnQ6OnNob3dXaW5kb3dXaXRobwogICAgIEFTU0VSVChtX3dlYlZpZXcp
OwogICAgIEFTU0VSVChtX2luc3BlY3RlZFdlYlZpZXdId25kKTsKIAotICAgIGlmICghbV9pbnNw
ZWN0ZWRXZWJWaWV3LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+Y2FuQXR0YWNoV2lu
ZG93KCkpCisgICAgLy8gSWYgbm8gcHJlZmVyZW5jZSBpcyBzZXQgLSBkZWZhdWx0IHRvIGFuIGF0
dGFjaGVkIHdpbmRvdy4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGluc3BlY3RvciBMYXlvdXRUZXN0
cy4KKyAgICBTdHJpbmcgc2hvdWxkQXR0YWNoID0gbV9pbnNwZWN0ZWRXZWJWaWV3LT5wYWdlKCkt
Pmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0dGluZyhpbnNwZWN0b3JTdGFydHNBdHRhY2hlZE5h
bWUpOworICAgIG1fc2hvdWxkQXR0YWNoV2hlblNob3duID0gc2hvdWxkQXR0YWNoICE9ICJmYWxz
ZSI7CisgICAgICAgIAorICAgIGlmIChtX3Nob3VsZEF0dGFjaFdoZW5TaG93biAmJiAhbV9pbnNw
ZWN0ZWRXZWJWaWV3LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+Y2FuQXR0YWNoV2lu
ZG93KCkpCiAgICAgICAgIG1fc2hvdWxkQXR0YWNoV2hlblNob3duID0gZmFsc2U7CiAgICAgCi0g
ICAgaWYgKG1fc2hvdWxkQXR0YWNoV2hlblNob3duKSB7Ci0gICAgICAgIC8vIElmIG5vIHByZWZl
cmVuY2UgaXMgc2V0IC0gZGVmYXVsdCB0byBhbiBhdHRhY2hlZCB3aW5kb3cuIFRoaXMgaXMgaW1w
b3J0YW50IGZvciBpbnNwZWN0b3IgTGF5b3V0VGVzdHMuCi0gICAgICAgIFN0cmluZyBzaG91bGRB
dHRhY2ggPSBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LT5zZXR0aW5nKGluc3BlY3RvclN0YXJ0c0F0dGFjaGVkTmFtZSk7Ci0gICAgICAgIG1fc2hvdWxk
QXR0YWNoV2hlblNob3duID0gc2hvdWxkQXR0YWNoICE9ICJmYWxzZSI7Ci0gICAgfQotICAgIAog
ICAgIGlmICghbV9zaG91bGRBdHRhY2hXaGVuU2hvd24pIHsKICAgICAgICAgLy8gUHV0IHRoZSBJ
bnNwZWN0b3IncyBXZWJWaWV3IGluc2lkZSBvdXIgd2luZG93IGFuZCBzaG93IGl0LgogICAgICAg
ICBtX3dlYlZpZXctPnNldEhvc3RXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxPTEVfSEFORExFPiht
X2h3bmQpKTsK
</data>
<flag name="review"
          id="32142"
          type_id="1"
          status="-"
          setter="beidson"
    />
    <flag name="commit-queue"
          id="32143"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49313</attachid>
            <date>2010-02-23 11:42:14 -0800</date>
            <delta_ts>2010-02-23 11:59:37 -0800</delta_ts>
            <desc>Take 2</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>9161</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTE2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDItMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
Z3Jlc3Npb24gKHI1NTEwNykgLSBXZWJJbnNwZWN0b3IgZG9ja2luZyBpcyBidXN0ZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTI3NAorCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2FuQXR0YWNoV2luZG93KTogVXNlIHRoZSBjb25zdHJh
aW5lZCBoZWlnaHQgZm9yIHRoaXMgY2FsY3VsYXRpb24sCisgICAgICAgICAgbm90IHRoZSBwcmVm
ZXJyZWQgaGVpZ2h0LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6YXR0
YWNoV2luZG93KTogRGl0dG8uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6Y2Fu
QXR0YWNoV2luZG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGw6CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5zZXQgYXR0YWNoZWQpOiBCZWZvcmUgYXR0YWNoaW5nLCBhc2sgdGhlIGZyb250LWVu
ZC1ob3N0IGlmIGF0dGFjaGluZyBpcyBhbGxvd2VkLgorCiAyMDEwLTAyLTIzICBMZWFuZHJvIFBl
cmVpcmEgIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1
c3Rhdm8gTm9yb25oYSBTaWx2YS4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjQsNyArNDI0LDcgQEAgYm9v
bCBJbnNwZWN0b3JDb250cm9sbGVyOjpjYW5BdHRhY2hXaW5kbwogICAgIHVuc2lnbmVkIGluc3Bl
Y3RlZFBhZ2VIZWlnaHQgPSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPnZp
c2libGVIZWlnaHQoKTsKIAogICAgIC8vIERvbid0IGFsbG93IHRoZSBhdHRhY2ggaWYgdGhlIHdp
bmRvdyBpcyB0b28gc21hbGwgdG8gcmVzcGVjdCB3aGF0IHNob3VsZCBiZSB0aGUgbWluaW11bSBp
bnNwZWN0b3IgaGVpZ2h0LgotICAgIHJldHVybiBwcmVmZXJyZWRIZWlnaHQgPD0gaW5zcGVjdGVk
UGFnZUhlaWdodCAqIG1heGltdW1BdHRhY2hlZEhlaWdodFJhdGlvOworICAgIHJldHVybiBjb25z
dHJhaW5lZEF0dGFjaGVkV2luZG93SGVpZ2h0KHByZWZlcnJlZEhlaWdodCwgaW5zcGVjdGVkUGFn
ZUhlaWdodCkgPD0gaW5zcGVjdGVkUGFnZUhlaWdodCAqIG1heGltdW1BdHRhY2hlZEhlaWdodFJh
dGlvOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmF0dGFjaFdpbmRvdygpCkBAIC00
MzksMTUgKzQzOSwxNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmF0dGFjaFdpbmRvdygp
CiAgICAgaW50IGhlaWdodCA9IGF0dGFjaGVkSGVpZ2h0LnRvSW50KCZzdWNjZXNzKTsKICAgICB1
bnNpZ25lZCBwcmVmZXJyZWRIZWlnaHQgPSBzdWNjZXNzID8gaGVpZ2h0IDogZGVmYXVsdEF0dGFj
aGVkSGVpZ2h0OwogICAgIAotICAgIC8vIERvbid0IGFsbG93IHRoZSBhdHRhY2ggaWYgdGhlIHdp
bmRvdyBpcyB0b28gc21hbGwgdG8gcmVzcGVjdCB3aGF0IHNob3VsZCBiZSB0aGUgbWluaW11bSBp
bnNwZWN0b3IgaGVpZ2h0LgotICAgIGlmIChwcmVmZXJyZWRIZWlnaHQgPiBpbnNwZWN0ZWRQYWdl
SGVpZ2h0ICogbWF4aW11bUF0dGFjaGVkSGVpZ2h0UmF0aW8pCisgICAgLy8gRG9uJ3QgYWxsb3cg
dGhlIGF0dGFjaCBpZiB0aGUgd2luZG93IHdvdWxkIGJlIHRvbyBzbWFsbCB0byBhY2NvbW1vZGF0
ZSB0aGUgbWluaW11bSBpbnNwZWN0b3IgaGVpZ2h0LgorICAgIHVuc2lnbmVkIGNvbnN0cmFpbmVk
SGVpZ2h0ID0gY29uc3RyYWluZWRBdHRhY2hlZFdpbmRvd0hlaWdodChwcmVmZXJyZWRIZWlnaHQs
IGluc3BlY3RlZFBhZ2VIZWlnaHQpOworICAgIGlmIChjb25zdHJhaW5lZEhlaWdodCA+IGluc3Bl
Y3RlZFBhZ2VIZWlnaHQgKiBtYXhpbXVtQXR0YWNoZWRIZWlnaHRSYXRpbykKICAgICAgICAgcmV0
dXJuOwogCiAgICAgbV9jbGllbnQtPmF0dGFjaFdpbmRvdygpOwogCiAgICAgLy8gV2UgbmVlZCB0
byBjb25zdHJhaW4gdGhlIHdpbmRvdyBoZWlnaHQgaGVyZSBpbiBjYXNlIHRoZSB1c2VyIGhhcyBy
ZXNpemVkIHRoZSBpbnNwZWN0ZWQgcGFnZSdzIHdpbmRvdyBzbyB0aGF0CiAgICAgLy8gdGhlIHVz
ZXIncyBwcmVmZXJyZWQgaGVpZ2h0IHdvdWxkIGJlIHRvbyBiaWcgdG8gZGlzcGxheS4KLSAgICBt
X2NsaWVudC0+c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoY29uc3RyYWluZWRBdHRhY2hlZFdpbmRv
d0hlaWdodChwcmVmZXJyZWRIZWlnaHQsIGluc3BlY3RlZFBhZ2VIZWlnaHQpKTsKKyAgICBtX2Ns
aWVudC0+c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoY29uc3RyYWluZWRIZWlnaHQpOwogfQogCiB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRldGFjaFdpbmRvdygpCkluZGV4OiBXZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAJKHJldmlzaW9uIDU1MTU1KQorKysg
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTYsNiArOTYsMTMgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OndpbmRvd1Vu
bG9hZAogICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmNsb3NlKCk7CiB9CiAKK2Jvb2wg
SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpjYW5BdHRhY2hXaW5kb3coKSBjb25zdAoreworICAgIGlm
IChtX2luc3BlY3RvckNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBtX2luc3BlY3RvckNvbnRy
b2xsZXItPmNhbkF0dGFjaFdpbmRvdygpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhl
aWdodCkKIHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQpJbmRleDogV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgJKHJldmlzaW9uIDU1MTU1KQorKysgV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xvc2VXaW5kb3coKTsKICAgICB2b2lk
IHdpbmRvd1VubG9hZGluZygpOwogCisgICAgYm9vbCBjYW5BdHRhY2hXaW5kb3coKSBjb25zdDsK
ICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCk7CiAgICAg
dm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3Q7CiAKSW5kZXg6IFdlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAkocmV2aXNpb24gNTUxNTUp
CisrKyBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgdm9pZCBjbG9z
ZVdpbmRvdygpOwogICAgICAgICB2b2lkIHdpbmRvd1VubG9hZGluZygpOwogCisgICAgICAgIGJv
b2xlYW4gY2FuQXR0YWNoV2luZG93KCk7CiAgICAgICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dI
ZWlnaHQoaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwogICAgICAgICB2b2lkIG1vdmVXaW5kb3dC
eShpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KTsKIApJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw2ICsyMzEsOSBA
QCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICBpZiAodGhpcy5fYXR0YWNoZWQgPT09IHgp
CiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgaWYgKHggJiYgIUluc3BlY3RvckZyb250
ZW5kSG9zdC5jYW5BdHRhY2hXaW5kb3coKSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAg
ICB0aGlzLl9hdHRhY2hlZCA9IHg7CiAKICAgICAgICAgdGhpcy51cGRhdGVTZWFyY2hMYWJlbCgp
OwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU1MTYxKQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wMi0yMyAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVncmVzc2lvbiAocjU1MTA3KSAtIFdlYkluc3BlY3RvciBkb2NraW5nIGlzIGJ1
c3RlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1
Mjc0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06Cisg
ICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgc2hvd1dpbmRvdzpdKTogU3dh
cCB0aGUgb3JkZXIgb2YgdGhlICJzaG91bGQgYXR0YWNoPyIgY2hlY2sKKyAgICAgICAgICB0byBn
ZXQgdGhlIGV4cGVjdGVkIGJlaGF2aW9yLgorCiAyMDEwLTAyLTIzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRl
eDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0J
KHJldmlzaW9uIDU1MTU1KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyNiwxNCArMzI2LDEyIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0b3JXaW5kb3cKIAogICAgIF92aXNpYmxlID0gWUVTOwog
ICAgIAotICAgIGlmICghW19pbnNwZWN0ZWRXZWJWaWV3IHBhZ2VdLT5pbnNwZWN0b3JDb250cm9s
bGVyKCktPmNhbkF0dGFjaFdpbmRvdygpKQotICAgICAgICBfc2hvdWxkQXR0YWNoID0gTk87Cisg
ICAgLy8gSWYgbm8gcHJlZmVyZW5jZSBpcyBzZXQgLSBkZWZhdWx0IHRvIGFuIGF0dGFjaGVkIHdp
bmRvdy4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGluc3BlY3RvciBMYXlvdXRUZXN0cy4KKyAgICBT
dHJpbmcgc2hvdWxkQXR0YWNoID0gW19pbnNwZWN0ZWRXZWJWaWV3IHBhZ2VdLT5pbnNwZWN0b3JD
b250cm9sbGVyKCktPnNldHRpbmcoaW5zcGVjdG9yU3RhcnRzQXR0YWNoZWROYW1lKTsKKyAgICBf
c2hvdWxkQXR0YWNoID0gc2hvdWxkQXR0YWNoICE9ICJmYWxzZSI7CiAgICAgCi0gICAgaWYgKF9z
aG91bGRBdHRhY2gpIHsKLSAgICAgICAgLy8gSWYgbm8gcHJlZmVyZW5jZSBpcyBzZXQgLSBkZWZh
dWx0IHRvIGFuIGF0dGFjaGVkIHdpbmRvdy4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGluc3BlY3Rv
ciBMYXlvdXRUZXN0cy4KLSAgICAgICAgU3RyaW5nIHNob3VsZEF0dGFjaCA9IFtfaW5zcGVjdGVk
V2ViVmlldyBwYWdlXS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zZXR0aW5nKGluc3BlY3RvclN0
YXJ0c0F0dGFjaGVkTmFtZSk7Ci0gICAgICAgIF9zaG91bGRBdHRhY2ggPSBzaG91bGRBdHRhY2gg
IT0gImZhbHNlIjsKLSAgICB9CisgICAgaWYgKF9zaG91bGRBdHRhY2ggJiYgIVtfaW5zcGVjdGVk
V2ViVmlldyBwYWdlXS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5jYW5BdHRhY2hXaW5kb3coKSkK
KyAgICAgICAgX3Nob3VsZEF0dGFjaCA9IE5POwogCiAgICAgaWYgKF9zaG91bGRBdHRhY2gpIHsK
ICAgICAgICAgV2ViRnJhbWVWaWV3ICpmcmFtZVZpZXcgPSBbW19pbnNwZWN0ZWRXZWJWaWV3IG1h
aW5GcmFtZV0gZnJhbWVWaWV3XTsKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTE2MSkKKysrIFdlYktpdC93
aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDItMjMg
IEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZ3Jlc3Npb24gKHI1NTEwNykgLSBXZWJJbnNw
ZWN0b3IgZG9ja2luZyBpcyBidXN0ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNTI3NAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVudDo6c2hvd1dpbmRv
d1dpdGhvdXROb3RpZmljYXRpb25zKTogU3dhcCB0aGUgb3JkZXIgb2YgdGhlICJzaG91bGQgYXR0
YWNoPyIgY2hlY2sKKyAgICAgICAgICB0byBnZXQgdGhlIGV4cGVjdGVkIGJlaGF2aW9yLgorCiAy
MDEwLTAyLTIzICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAJKHJldmlzaW9uIDU1MTU1KQorKysgV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDksMTUgKzM0OSwxMyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6c2hvd1dp
bmRvd1dpdGhvCiAgICAgQVNTRVJUKG1fd2ViVmlldyk7CiAgICAgQVNTRVJUKG1faW5zcGVjdGVk
V2ViVmlld0h3bmQpOwogCi0gICAgaWYgKCFtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLT5jYW5BdHRhY2hXaW5kb3coKSkKKyAgICAvLyBJZiBubyBwcmVm
ZXJlbmNlIGlzIHNldCAtIGRlZmF1bHQgdG8gYW4gYXR0YWNoZWQgd2luZG93LiBUaGlzIGlzIGlt
cG9ydGFudCBmb3IgaW5zcGVjdG9yIExheW91dFRlc3RzLgorICAgIFN0cmluZyBzaG91bGRBdHRh
Y2ggPSBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5z
ZXR0aW5nKGluc3BlY3RvclN0YXJ0c0F0dGFjaGVkTmFtZSk7CisgICAgbV9zaG91bGRBdHRhY2hX
aGVuU2hvd24gPSBzaG91bGRBdHRhY2ggIT0gImZhbHNlIjsKKyAgICAgICAgCisgICAgaWYgKG1f
c2hvdWxkQXR0YWNoV2hlblNob3duICYmICFtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLT5jYW5BdHRhY2hXaW5kb3coKSkKICAgICAgICAgbV9zaG91bGRB
dHRhY2hXaGVuU2hvd24gPSBmYWxzZTsKICAgICAKLSAgICBpZiAobV9zaG91bGRBdHRhY2hXaGVu
U2hvd24pIHsKLSAgICAgICAgLy8gSWYgbm8gcHJlZmVyZW5jZSBpcyBzZXQgLSBkZWZhdWx0IHRv
IGFuIGF0dGFjaGVkIHdpbmRvdy4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGluc3BlY3RvciBMYXlv
dXRUZXN0cy4KLSAgICAgICAgU3RyaW5nIHNob3VsZEF0dGFjaCA9IG1faW5zcGVjdGVkV2ViVmll
dy0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNldHRpbmcoaW5zcGVjdG9yU3RhcnRz
QXR0YWNoZWROYW1lKTsKLSAgICAgICAgbV9zaG91bGRBdHRhY2hXaGVuU2hvd24gPSBzaG91bGRB
dHRhY2ggIT0gImZhbHNlIjsKLSAgICB9Ci0gICAgCiAgICAgaWYgKCFtX3Nob3VsZEF0dGFjaFdo
ZW5TaG93bikgewogICAgICAgICAvLyBQdXQgdGhlIEluc3BlY3RvcidzIFdlYlZpZXcgaW5zaWRl
IG91ciB3aW5kb3cgYW5kIHNob3cgaXQuCiAgICAgICAgIG1fd2ViVmlldy0+c2V0SG9zdFdpbmRv
dyhyZWludGVycHJldF9jYXN0PE9MRV9IQU5ETEU+KG1faHduZCkpOwo=
</data>
<flag name="commit-queue"
          id="32149"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49315</attachid>
            <date>2010-02-23 11:59:37 -0800</date>
            <delta_ts>2010-02-23 12:53:09 -0800</delta_ts>
            <desc>3rd time&apos;s the charm</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10583</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTE2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDItMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
Z3Jlc3Npb24gKHI1NTEwNykgLSBXZWJJbnNwZWN0b3IgZG9ja2luZyBpcyBidXN0ZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTI3NAorCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2FuQXR0YWNoV2luZG93KTogVXNlIHRoZSBjb25zdHJh
aW5lZCBoZWlnaHQgZm9yIHRoaXMgY2FsY3VsYXRpb24sCisgICAgICAgICAgbm90IHRoZSBwcmVm
ZXJyZWQgaGVpZ2h0LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6YXR0
YWNoV2luZG93KTogRGl0dG8uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6Y2Fu
QXR0YWNoV2luZG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGw6CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5zZXQgYXR0YWNoZWQpOiBCZWZvcmUgYXR0YWNoaW5nLCBhc2sgdGhlIGZyb250LWVu
ZC1ob3N0IGlmIGF0dGFjaGluZyBpcyBhbGxvd2VkLgorCiAyMDEwLTAyLTIzICBMZWFuZHJvIFBl
cmVpcmEgIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1
c3Rhdm8gTm9yb25oYSBTaWx2YS4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjQsNyArNDI0LDcgQEAgYm9v
bCBJbnNwZWN0b3JDb250cm9sbGVyOjpjYW5BdHRhY2hXaW5kbwogICAgIHVuc2lnbmVkIGluc3Bl
Y3RlZFBhZ2VIZWlnaHQgPSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPnZp
c2libGVIZWlnaHQoKTsKIAogICAgIC8vIERvbid0IGFsbG93IHRoZSBhdHRhY2ggaWYgdGhlIHdp
bmRvdyBpcyB0b28gc21hbGwgdG8gcmVzcGVjdCB3aGF0IHNob3VsZCBiZSB0aGUgbWluaW11bSBp
bnNwZWN0b3IgaGVpZ2h0LgotICAgIHJldHVybiBwcmVmZXJyZWRIZWlnaHQgPD0gaW5zcGVjdGVk
UGFnZUhlaWdodCAqIG1heGltdW1BdHRhY2hlZEhlaWdodFJhdGlvOworICAgIHJldHVybiBjb25z
dHJhaW5lZEF0dGFjaGVkV2luZG93SGVpZ2h0KHByZWZlcnJlZEhlaWdodCwgaW5zcGVjdGVkUGFn
ZUhlaWdodCkgPD0gaW5zcGVjdGVkUGFnZUhlaWdodCAqIG1heGltdW1BdHRhY2hlZEhlaWdodFJh
dGlvOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmF0dGFjaFdpbmRvdygpCkBAIC00
MzksMTUgKzQzOSwxNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmF0dGFjaFdpbmRvdygp
CiAgICAgaW50IGhlaWdodCA9IGF0dGFjaGVkSGVpZ2h0LnRvSW50KCZzdWNjZXNzKTsKICAgICB1
bnNpZ25lZCBwcmVmZXJyZWRIZWlnaHQgPSBzdWNjZXNzID8gaGVpZ2h0IDogZGVmYXVsdEF0dGFj
aGVkSGVpZ2h0OwogICAgIAotICAgIC8vIERvbid0IGFsbG93IHRoZSBhdHRhY2ggaWYgdGhlIHdp
bmRvdyBpcyB0b28gc21hbGwgdG8gcmVzcGVjdCB3aGF0IHNob3VsZCBiZSB0aGUgbWluaW11bSBp
bnNwZWN0b3IgaGVpZ2h0LgotICAgIGlmIChwcmVmZXJyZWRIZWlnaHQgPiBpbnNwZWN0ZWRQYWdl
SGVpZ2h0ICogbWF4aW11bUF0dGFjaGVkSGVpZ2h0UmF0aW8pCisgICAgLy8gRG9uJ3QgYWxsb3cg
dGhlIGF0dGFjaCBpZiB0aGUgd2luZG93IHdvdWxkIGJlIHRvbyBzbWFsbCB0byBhY2NvbW1vZGF0
ZSB0aGUgbWluaW11bSBpbnNwZWN0b3IgaGVpZ2h0LgorICAgIHVuc2lnbmVkIGNvbnN0cmFpbmVk
SGVpZ2h0ID0gY29uc3RyYWluZWRBdHRhY2hlZFdpbmRvd0hlaWdodChwcmVmZXJyZWRIZWlnaHQs
IGluc3BlY3RlZFBhZ2VIZWlnaHQpOworICAgIGlmIChjb25zdHJhaW5lZEhlaWdodCA+IGluc3Bl
Y3RlZFBhZ2VIZWlnaHQgKiBtYXhpbXVtQXR0YWNoZWRIZWlnaHRSYXRpbykKICAgICAgICAgcmV0
dXJuOwogCiAgICAgbV9jbGllbnQtPmF0dGFjaFdpbmRvdygpOwogCiAgICAgLy8gV2UgbmVlZCB0
byBjb25zdHJhaW4gdGhlIHdpbmRvdyBoZWlnaHQgaGVyZSBpbiBjYXNlIHRoZSB1c2VyIGhhcyBy
ZXNpemVkIHRoZSBpbnNwZWN0ZWQgcGFnZSdzIHdpbmRvdyBzbyB0aGF0CiAgICAgLy8gdGhlIHVz
ZXIncyBwcmVmZXJyZWQgaGVpZ2h0IHdvdWxkIGJlIHRvbyBiaWcgdG8gZGlzcGxheS4KLSAgICBt
X2NsaWVudC0+c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoY29uc3RyYWluZWRBdHRhY2hlZFdpbmRv
d0hlaWdodChwcmVmZXJyZWRIZWlnaHQsIGluc3BlY3RlZFBhZ2VIZWlnaHQpKTsKKyAgICBtX2Ns
aWVudC0+c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoY29uc3RyYWluZWRIZWlnaHQpOwogfQogCiB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRldGFjaFdpbmRvdygpCkluZGV4OiBXZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAJKHJldmlzaW9uIDU1MTU1KQorKysg
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTYsNiArOTYsMTMgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OndpbmRvd1Vu
bG9hZAogICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmNsb3NlKCk7CiB9CiAKK2Jvb2wg
SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpjYW5BdHRhY2hXaW5kb3coKSBjb25zdAoreworICAgIGlm
IChtX2luc3BlY3RvckNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBtX2luc3BlY3RvckNvbnRy
b2xsZXItPmNhbkF0dGFjaFdpbmRvdygpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhl
aWdodCkKIHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQpJbmRleDogV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgJKHJldmlzaW9uIDU1MTU1KQorKysgV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xvc2VXaW5kb3coKTsKICAgICB2b2lk
IHdpbmRvd1VubG9hZGluZygpOwogCisgICAgYm9vbCBjYW5BdHRhY2hXaW5kb3coKSBjb25zdDsK
ICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCk7CiAgICAg
dm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3Q7CiAKSW5kZXg6IFdlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAkocmV2aXNpb24gNTUxNTUp
CisrKyBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgdm9pZCBjbG9z
ZVdpbmRvdygpOwogICAgICAgICB2b2lkIHdpbmRvd1VubG9hZGluZygpOwogCisgICAgICAgIGJv
b2xlYW4gY2FuQXR0YWNoV2luZG93KCk7CiAgICAgICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dI
ZWlnaHQoaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwogICAgICAgICB2b2lkIG1vdmVXaW5kb3dC
eShpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KTsKIApJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw2ICsyMzEsOSBA
QCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICBpZiAodGhpcy5fYXR0YWNoZWQgPT09IHgp
CiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgaWYgKHggJiYgIUluc3BlY3RvckZyb250
ZW5kSG9zdC5jYW5BdHRhY2hXaW5kb3coKSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAg
ICB0aGlzLl9hdHRhY2hlZCA9IHg7CiAKICAgICAgICAgdGhpcy51cGRhdGVTZWFyY2hMYWJlbCgp
OwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU1MTYxKQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wMi0yMyAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVncmVzc2lvbiAocjU1MTA3KSAtIFdlYkluc3BlY3RvciBkb2NraW5nIGlzIGJ1
c3RlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1
Mjc0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06Cisg
ICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgc2hvd1dpbmRvdzpdKTogU3dh
cCB0aGUgb3JkZXIgb2YgdGhlICJzaG91bGQgYXR0YWNoPyIgY2hlY2sKKyAgICAgICAgICB0byBn
ZXQgdGhlIGV4cGVjdGVkIGJlaGF2aW9yLgorCiAyMDEwLTAyLTIzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRl
eDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0J
KHJldmlzaW9uIDU1MTU1KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyNiwxNCArMzI2LDEyIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0b3JXaW5kb3cKIAogICAgIF92aXNpYmxlID0gWUVTOwog
ICAgIAotICAgIGlmICghW19pbnNwZWN0ZWRXZWJWaWV3IHBhZ2VdLT5pbnNwZWN0b3JDb250cm9s
bGVyKCktPmNhbkF0dGFjaFdpbmRvdygpKQotICAgICAgICBfc2hvdWxkQXR0YWNoID0gTk87Cisg
ICAgLy8gSWYgbm8gcHJlZmVyZW5jZSBpcyBzZXQgLSBkZWZhdWx0IHRvIGFuIGF0dGFjaGVkIHdp
bmRvdy4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGluc3BlY3RvciBMYXlvdXRUZXN0cy4KKyAgICBT
dHJpbmcgc2hvdWxkQXR0YWNoID0gW19pbnNwZWN0ZWRXZWJWaWV3IHBhZ2VdLT5pbnNwZWN0b3JD
b250cm9sbGVyKCktPnNldHRpbmcoaW5zcGVjdG9yU3RhcnRzQXR0YWNoZWROYW1lKTsKKyAgICBf
c2hvdWxkQXR0YWNoID0gc2hvdWxkQXR0YWNoICE9ICJmYWxzZSI7CiAgICAgCi0gICAgaWYgKF9z
aG91bGRBdHRhY2gpIHsKLSAgICAgICAgLy8gSWYgbm8gcHJlZmVyZW5jZSBpcyBzZXQgLSBkZWZh
dWx0IHRvIGFuIGF0dGFjaGVkIHdpbmRvdy4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGluc3BlY3Rv
ciBMYXlvdXRUZXN0cy4KLSAgICAgICAgU3RyaW5nIHNob3VsZEF0dGFjaCA9IFtfaW5zcGVjdGVk
V2ViVmlldyBwYWdlXS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zZXR0aW5nKGluc3BlY3RvclN0
YXJ0c0F0dGFjaGVkTmFtZSk7Ci0gICAgICAgIF9zaG91bGRBdHRhY2ggPSBzaG91bGRBdHRhY2gg
IT0gImZhbHNlIjsKLSAgICB9CisgICAgaWYgKF9zaG91bGRBdHRhY2ggJiYgIVtfaW5zcGVjdGVk
V2ViVmlldyBwYWdlXS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5jYW5BdHRhY2hXaW5kb3coKSkK
KyAgICAgICAgX3Nob3VsZEF0dGFjaCA9IE5POwogCiAgICAgaWYgKF9zaG91bGRBdHRhY2gpIHsK
ICAgICAgICAgV2ViRnJhbWVWaWV3ICpmcmFtZVZpZXcgPSBbW19pbnNwZWN0ZWRXZWJWaWV3IG1h
aW5GcmFtZV0gZnJhbWVWaWV3XTsKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTE2MSkKKysrIFdlYktpdC93
aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDItMjMg
IEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZ3Jlc3Npb24gKHI1NTEwNykgLSBXZWJJbnNw
ZWN0b3IgZG9ja2luZyBpcyBidXN0ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNTI3NAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVudDo6c2hvd1dpbmRv
d1dpdGhvdXROb3RpZmljYXRpb25zKTogU3dhcCB0aGUgb3JkZXIgb2YgdGhlICJzaG91bGQgYXR0
YWNoPyIgY2hlY2sKKyAgICAgICAgICB0byBnZXQgdGhlIGV4cGVjdGVkIGJlaGF2aW9yLgorCiAy
MDEwLTAyLTIzICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAJKHJldmlzaW9uIDU1MTU1KQorKysgV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDksMTUgKzM0OSwxMyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6c2hvd1dp
bmRvd1dpdGhvCiAgICAgQVNTRVJUKG1fd2ViVmlldyk7CiAgICAgQVNTRVJUKG1faW5zcGVjdGVk
V2ViVmlld0h3bmQpOwogCi0gICAgaWYgKCFtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLT5jYW5BdHRhY2hXaW5kb3coKSkKKyAgICAvLyBJZiBubyBwcmVm
ZXJlbmNlIGlzIHNldCAtIGRlZmF1bHQgdG8gYW4gYXR0YWNoZWQgd2luZG93LiBUaGlzIGlzIGlt
cG9ydGFudCBmb3IgaW5zcGVjdG9yIExheW91dFRlc3RzLgorICAgIFN0cmluZyBzaG91bGRBdHRh
Y2ggPSBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5z
ZXR0aW5nKGluc3BlY3RvclN0YXJ0c0F0dGFjaGVkTmFtZSk7CisgICAgbV9zaG91bGRBdHRhY2hX
aGVuU2hvd24gPSBzaG91bGRBdHRhY2ggIT0gImZhbHNlIjsKKyAgICAgICAgCisgICAgaWYgKG1f
c2hvdWxkQXR0YWNoV2hlblNob3duICYmICFtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLT5jYW5BdHRhY2hXaW5kb3coKSkKICAgICAgICAgbV9zaG91bGRB
dHRhY2hXaGVuU2hvd24gPSBmYWxzZTsKICAgICAKLSAgICBpZiAobV9zaG91bGRBdHRhY2hXaGVu
U2hvd24pIHsKLSAgICAgICAgLy8gSWYgbm8gcHJlZmVyZW5jZSBpcyBzZXQgLSBkZWZhdWx0IHRv
IGFuIGF0dGFjaGVkIHdpbmRvdy4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGluc3BlY3RvciBMYXlv
dXRUZXN0cy4KLSAgICAgICAgU3RyaW5nIHNob3VsZEF0dGFjaCA9IG1faW5zcGVjdGVkV2ViVmll
dy0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNldHRpbmcoaW5zcGVjdG9yU3RhcnRz
QXR0YWNoZWROYW1lKTsKLSAgICAgICAgbV9zaG91bGRBdHRhY2hXaGVuU2hvd24gPSBzaG91bGRB
dHRhY2ggIT0gImZhbHNlIjsKLSAgICB9Ci0gICAgCiAgICAgaWYgKCFtX3Nob3VsZEF0dGFjaFdo
ZW5TaG93bikgewogICAgICAgICAvLyBQdXQgdGhlIEluc3BlY3RvcidzIFdlYlZpZXcgaW5zaWRl
IG91ciB3aW5kb3cgYW5kIHNob3cgaXQuCiAgICAgICAgIG1fd2ViVmlldy0+c2V0SG9zdFdpbmRv
dyhyZWludGVycHJldF9jYXN0PE9MRV9IQU5ETEU+KG1faHduZCkpOwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gNTUxNjEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMyBAQAorMjAxMC0wMi0yMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVncmVz
c2lvbiAocjU1MTA3KSAtIFdlYkluc3BlY3RvciBkb2NraW5nIGlzIGJ1c3RlZC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1Mjc0CisKKyAgICAgICAg
KiBpbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2guaHRtbDogQWN0dWFsbHkgY2xpY2sg
aW4gdGhlIHJpZ2h0IHBsYWNlIG5vdyB0aGF0IHRoZQorICAgICAgICAgIGluc3BlY3RvciBpc24n
dCBkb2NrZWQgYW55bW9yZS4KKwogMjAxMC0wMi0yMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6
IExheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1ldmVudC1kaXNwYXRjaC5o
dG1sCShyZXZpc2lvbiA1NTE1NSkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1l
dmVudC1kaXNwYXRjaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiwxMCArMTYsMTEgQEAgZnVu
Y3Rpb24gZG9pdCgpIAogCiAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0VGFyZ2V0Iik7CiAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIs
IGhhbmRsZU1vdXNlRG93biwgdHJ1ZSk7CisgICAgdmFyIHJlY3QgPSB0YXJnZXQuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7CiAKICAgICAvLyBTaW11bGF0ZSB0aGUgbW91c2UgZG93biBvdmVyIHRo
ZSB0YXJnZXQgdG8gdHJpZ2dlciBhbiBFdmVudERpc3BhdGNoCiAgICAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewotICAgICAgICB3aW5kb3cuZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjAwLCAz
MDApOworICAgICAgICB3aW5kb3cuZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8ocmVjdC5sZWZ0ICsg
cmVjdC53aWR0aCAvIDIsIHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyKTsKICAgICAgICAgd2lu
ZG93LmV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="32151"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="32152"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49317</attachid>
            <date>2010-02-23 12:53:09 -0800</date>
            <delta_ts>2010-02-23 14:27:15 -0800</delta_ts>
            <desc>With pfeldman&apos;s requested change</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10966</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTE2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDItMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
Z3Jlc3Npb24gKHI1NTEwNykgLSBXZWJJbnNwZWN0b3IgZG9ja2luZyBpcyBidXN0ZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTI3NAorCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2FuQXR0YWNoV2luZG93KTogVXNlIHRoZSBjb25zdHJh
aW5lZCBoZWlnaHQgZm9yIHRoaXMgY2FsY3VsYXRpb24sCisgICAgICAgICAgbm90IHRoZSBwcmVm
ZXJyZWQgaGVpZ2h0LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6YXR0
YWNoV2luZG93KTogRGl0dG8uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6Y2Fu
QXR0YWNoV2luZG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGw6CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5zZXQgYXR0YWNoZWQpOiBCZWZvcmUgYXR0YWNoaW5nLCBhc2sgdGhlIGZyb250LWVu
ZC1ob3N0IGlmIGF0dGFjaGluZyBpcyBhbGxvd2VkLgorCiAyMDEwLTAyLTIzICBMZWFuZHJvIFBl
cmVpcmEgIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1
c3Rhdm8gTm9yb25oYSBTaWx2YS4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTUsMTYgKzQxNSwxMSBAQCBi
b29sIEluc3BlY3RvckNvbnRyb2xsZXI6OmNhbkF0dGFjaFdpbmRvCiB7CiAgICAgaWYgKCFlbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBTdHJpbmcgYXR0YWNoZWRI
ZWlnaHQgPSBzZXR0aW5nKGluc3BlY3RvckF0dGFjaGVkSGVpZ2h0TmFtZSk7Ci0gICAgYm9vbCBz
dWNjZXNzID0gdHJ1ZTsKLSAgICBpbnQgaGVpZ2h0ID0gYXR0YWNoZWRIZWlnaHQudG9JbnQoJnN1
Y2Nlc3MpOwotICAgIHVuc2lnbmVkIHByZWZlcnJlZEhlaWdodCA9IHN1Y2Nlc3MgPyBoZWlnaHQg
OiBkZWZhdWx0QXR0YWNoZWRIZWlnaHQ7CiAgICAgICAgIAogICAgIHVuc2lnbmVkIGluc3BlY3Rl
ZFBhZ2VIZWlnaHQgPSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPnZpc2li
bGVIZWlnaHQoKTsKIAotICAgIC8vIERvbid0IGFsbG93IHRoZSBhdHRhY2ggaWYgdGhlIHdpbmRv
dyBpcyB0b28gc21hbGwgdG8gcmVzcGVjdCB3aGF0IHNob3VsZCBiZSB0aGUgbWluaW11bSBpbnNw
ZWN0b3IgaGVpZ2h0LgotICAgIHJldHVybiBwcmVmZXJyZWRIZWlnaHQgPD0gaW5zcGVjdGVkUGFn
ZUhlaWdodCAqIG1heGltdW1BdHRhY2hlZEhlaWdodFJhdGlvOworICAgIC8vIERvbid0IGFsbG93
IHRoZSBhdHRhY2ggaWYgdGhlIHdpbmRvdyB3b3VsZCBiZSB0b28gc21hbGwgdG8gYWNjb21tb2Rh
dGUgdGhlIG1pbmltdW0gaW5zcGVjdG9yIGhlaWdodC4KKyAgICByZXR1cm4gbWluaW11bUF0dGFj
aGVkSGVpZ2h0IDw9IGluc3BlY3RlZFBhZ2VIZWlnaHQgKiBtYXhpbXVtQXR0YWNoZWRIZWlnaHRS
YXRpbzsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjphdHRhY2hXaW5kb3coKQpAQCAt
NDM5LDE1ICs0MzQsMTYgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjphdHRhY2hXaW5kb3co
KQogICAgIGludCBoZWlnaHQgPSBhdHRhY2hlZEhlaWdodC50b0ludCgmc3VjY2Vzcyk7CiAgICAg
dW5zaWduZWQgcHJlZmVycmVkSGVpZ2h0ID0gc3VjY2VzcyA/IGhlaWdodCA6IGRlZmF1bHRBdHRh
Y2hlZEhlaWdodDsKICAgICAKLSAgICAvLyBEb24ndCBhbGxvdyB0aGUgYXR0YWNoIGlmIHRoZSB3
aW5kb3cgaXMgdG9vIHNtYWxsIHRvIHJlc3BlY3Qgd2hhdCBzaG91bGQgYmUgdGhlIG1pbmltdW0g
aW5zcGVjdG9yIGhlaWdodC4KLSAgICBpZiAocHJlZmVycmVkSGVpZ2h0ID4gaW5zcGVjdGVkUGFn
ZUhlaWdodCAqIG1heGltdW1BdHRhY2hlZEhlaWdodFJhdGlvKQorICAgIC8vIERvbid0IGFsbG93
IHRoZSBhdHRhY2ggaWYgdGhlIHdpbmRvdyB3b3VsZCBiZSB0b28gc21hbGwgdG8gYWNjb21tb2Rh
dGUgdGhlIHRhcmdldCBpbnNwZWN0b3IgaGVpZ2h0LgorICAgIHVuc2lnbmVkIGNvbnN0cmFpbmVk
SGVpZ2h0ID0gY29uc3RyYWluZWRBdHRhY2hlZFdpbmRvd0hlaWdodChwcmVmZXJyZWRIZWlnaHQs
IGluc3BlY3RlZFBhZ2VIZWlnaHQpOworICAgIGlmIChjb25zdHJhaW5lZEhlaWdodCA+IGluc3Bl
Y3RlZFBhZ2VIZWlnaHQgKiBtYXhpbXVtQXR0YWNoZWRIZWlnaHRSYXRpbykKICAgICAgICAgcmV0
dXJuOwogCiAgICAgbV9jbGllbnQtPmF0dGFjaFdpbmRvdygpOwogCiAgICAgLy8gV2UgbmVlZCB0
byBjb25zdHJhaW4gdGhlIHdpbmRvdyBoZWlnaHQgaGVyZSBpbiBjYXNlIHRoZSB1c2VyIGhhcyBy
ZXNpemVkIHRoZSBpbnNwZWN0ZWQgcGFnZSdzIHdpbmRvdyBzbyB0aGF0CiAgICAgLy8gdGhlIHVz
ZXIncyBwcmVmZXJyZWQgaGVpZ2h0IHdvdWxkIGJlIHRvbyBiaWcgdG8gZGlzcGxheS4KLSAgICBt
X2NsaWVudC0+c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoY29uc3RyYWluZWRBdHRhY2hlZFdpbmRv
d0hlaWdodChwcmVmZXJyZWRIZWlnaHQsIGluc3BlY3RlZFBhZ2VIZWlnaHQpKTsKKyAgICBtX2Ns
aWVudC0+c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoY29uc3RyYWluZWRIZWlnaHQpOwogfQogCiB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRldGFjaFdpbmRvdygpCkluZGV4OiBXZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAJKHJldmlzaW9uIDU1MTU1KQorKysg
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTYsNiArOTYsMTMgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OndpbmRvd1Vu
bG9hZAogICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmNsb3NlKCk7CiB9CiAKK2Jvb2wg
SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpjYW5BdHRhY2hXaW5kb3coKSBjb25zdAoreworICAgIGlm
IChtX2luc3BlY3RvckNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBtX2luc3BlY3RvckNvbnRy
b2xsZXItPmNhbkF0dGFjaFdpbmRvdygpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhl
aWdodCkKIHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQpJbmRleDogV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgJKHJldmlzaW9uIDU1MTU1KQorKysgV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xvc2VXaW5kb3coKTsKICAgICB2b2lk
IHdpbmRvd1VubG9hZGluZygpOwogCisgICAgYm9vbCBjYW5BdHRhY2hXaW5kb3coKSBjb25zdDsK
ICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCk7CiAgICAg
dm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3Q7CiAKSW5kZXg6IFdlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAkocmV2aXNpb24gNTUxNTUp
CisrKyBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgdm9pZCBjbG9z
ZVdpbmRvdygpOwogICAgICAgICB2b2lkIHdpbmRvd1VubG9hZGluZygpOwogCisgICAgICAgIGJv
b2xlYW4gY2FuQXR0YWNoV2luZG93KCk7CiAgICAgICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dI
ZWlnaHQoaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwogICAgICAgICB2b2lkIG1vdmVXaW5kb3dC
eShpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KTsKIApJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTIzMSw2ICsyMzEsOSBA
QCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICBpZiAodGhpcy5fYXR0YWNoZWQgPT09IHgp
CiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgaWYgKHggJiYgSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNhbkF0dGFjaFdpbmRvdyAmJiAhSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNhbkF0dGFj
aFdpbmRvdygpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIHRoaXMuX2F0dGFjaGVk
ID0geDsKIAogICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaExhYmVsKCk7CkluZGV4OiBXZWJLaXQv
bWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNp
b24gNTUxNjEpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDEwLTAyLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWdyZXNz
aW9uIChyNTUxMDcpIC0gV2ViSW5zcGVjdG9yIGRvY2tpbmcgaXMgYnVzdGVkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUyNzQKKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViSW5z
cGVjdG9yV2luZG93Q29udHJvbGxlciBzaG93V2luZG93Ol0pOiBTd2FwIHRoZSBvcmRlciBvZiB0
aGUgInNob3VsZCBhdHRhY2g/IiBjaGVjaworICAgICAgICAgIHRvIGdldCB0aGUgZXhwZWN0ZWQg
YmVoYXZpb3IuCisKIDIwMTAtMDItMjMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBXZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQkocmV2aXNpb24gNTUxNTUp
CisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQkod29y
a2luZyBjb3B5KQpAQCAtMzI2LDE0ICszMjYsMTIgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6
Omluc3BlY3RvcldpbmRvdwogCiAgICAgX3Zpc2libGUgPSBZRVM7CiAgICAgCi0gICAgaWYgKCFb
X2luc3BlY3RlZFdlYlZpZXcgcGFnZV0tPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+Y2FuQXR0YWNo
V2luZG93KCkpCi0gICAgICAgIF9zaG91bGRBdHRhY2ggPSBOTzsKKyAgICAvLyBJZiBubyBwcmVm
ZXJlbmNlIGlzIHNldCAtIGRlZmF1bHQgdG8gYW4gYXR0YWNoZWQgd2luZG93LiBUaGlzIGlzIGlt
cG9ydGFudCBmb3IgaW5zcGVjdG9yIExheW91dFRlc3RzLgorICAgIFN0cmluZyBzaG91bGRBdHRh
Y2ggPSBbX2luc3BlY3RlZFdlYlZpZXcgcGFnZV0tPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0
dGluZyhpbnNwZWN0b3JTdGFydHNBdHRhY2hlZE5hbWUpOworICAgIF9zaG91bGRBdHRhY2ggPSBz
aG91bGRBdHRhY2ggIT0gImZhbHNlIjsKICAgICAKLSAgICBpZiAoX3Nob3VsZEF0dGFjaCkgewot
ICAgICAgICAvLyBJZiBubyBwcmVmZXJlbmNlIGlzIHNldCAtIGRlZmF1bHQgdG8gYW4gYXR0YWNo
ZWQgd2luZG93LiBUaGlzIGlzIGltcG9ydGFudCBmb3IgaW5zcGVjdG9yIExheW91dFRlc3RzLgot
ICAgICAgICBTdHJpbmcgc2hvdWxkQXR0YWNoID0gW19pbnNwZWN0ZWRXZWJWaWV3IHBhZ2VdLT5p
bnNwZWN0b3JDb250cm9sbGVyKCktPnNldHRpbmcoaW5zcGVjdG9yU3RhcnRzQXR0YWNoZWROYW1l
KTsKLSAgICAgICAgX3Nob3VsZEF0dGFjaCA9IHNob3VsZEF0dGFjaCAhPSAiZmFsc2UiOwotICAg
IH0KKyAgICBpZiAoX3Nob3VsZEF0dGFjaCAmJiAhW19pbnNwZWN0ZWRXZWJWaWV3IHBhZ2VdLT5p
bnNwZWN0b3JDb250cm9sbGVyKCktPmNhbkF0dGFjaFdpbmRvdygpKQorICAgICAgICBfc2hvdWxk
QXR0YWNoID0gTk87CiAKICAgICBpZiAoX3Nob3VsZEF0dGFjaCkgewogICAgICAgICBXZWJGcmFt
ZVZpZXcgKmZyYW1lVmlldyA9IFtbX2luc3BlY3RlZFdlYlZpZXcgbWFpbkZyYW1lXSBmcmFtZVZp
ZXddOwpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dp
bi9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1MTYxKQorKysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wMi0yMyAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVncmVzc2lvbiAocjU1MTA3KSAtIFdlYkluc3BlY3RvciBkb2NraW5nIGlz
IGJ1c3RlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM1Mjc0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViSW5zcGVjdG9yQ2xpZW50OjpzaG93V2luZG93V2l0aG91dE5vdGlmaWNh
dGlvbnMpOiBTd2FwIHRoZSBvcmRlciBvZiB0aGUgInNob3VsZCBhdHRhY2g/IiBjaGVjaworICAg
ICAgICAgIHRvIGdldCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3IuCisKIDIwMTAtMDItMjMgIFN0ZXZl
IEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gNTUxNTUpCisrKyBXZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0OSwxNSAr
MzQ5LDEzIEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpzaG93V2luZG93V2l0aG8KICAgICBB
U1NFUlQobV93ZWJWaWV3KTsKICAgICBBU1NFUlQobV9pbnNwZWN0ZWRXZWJWaWV3SHduZCk7CiAK
LSAgICBpZiAoIW1faW5zcGVjdGVkV2ViVmlldy0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVy
KCktPmNhbkF0dGFjaFdpbmRvdygpKQorICAgIC8vIElmIG5vIHByZWZlcmVuY2UgaXMgc2V0IC0g
ZGVmYXVsdCB0byBhbiBhdHRhY2hlZCB3aW5kb3cuIFRoaXMgaXMgaW1wb3J0YW50IGZvciBpbnNw
ZWN0b3IgTGF5b3V0VGVzdHMuCisgICAgU3RyaW5nIHNob3VsZEF0dGFjaCA9IG1faW5zcGVjdGVk
V2ViVmlldy0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNldHRpbmcoaW5zcGVjdG9y
U3RhcnRzQXR0YWNoZWROYW1lKTsKKyAgICBtX3Nob3VsZEF0dGFjaFdoZW5TaG93biA9IHNob3Vs
ZEF0dGFjaCAhPSAiZmFsc2UiOworICAgICAgICAKKyAgICBpZiAobV9zaG91bGRBdHRhY2hXaGVu
U2hvd24gJiYgIW1faW5zcGVjdGVkV2ViVmlldy0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVy
KCktPmNhbkF0dGFjaFdpbmRvdygpKQogICAgICAgICBtX3Nob3VsZEF0dGFjaFdoZW5TaG93biA9
IGZhbHNlOwogICAgIAotICAgIGlmIChtX3Nob3VsZEF0dGFjaFdoZW5TaG93bikgewotICAgICAg
ICAvLyBJZiBubyBwcmVmZXJlbmNlIGlzIHNldCAtIGRlZmF1bHQgdG8gYW4gYXR0YWNoZWQgd2lu
ZG93LiBUaGlzIGlzIGltcG9ydGFudCBmb3IgaW5zcGVjdG9yIExheW91dFRlc3RzLgotICAgICAg
ICBTdHJpbmcgc2hvdWxkQXR0YWNoID0gbV9pbnNwZWN0ZWRXZWJWaWV3LT5wYWdlKCktPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS0+c2V0dGluZyhpbnNwZWN0b3JTdGFydHNBdHRhY2hlZE5hbWUpOwot
ICAgICAgICBtX3Nob3VsZEF0dGFjaFdoZW5TaG93biA9IHNob3VsZEF0dGFjaCAhPSAiZmFsc2Ui
OwotICAgIH0KLSAgICAKICAgICBpZiAoIW1fc2hvdWxkQXR0YWNoV2hlblNob3duKSB7CiAgICAg
ICAgIC8vIFB1dCB0aGUgSW5zcGVjdG9yJ3MgV2ViVmlldyBpbnNpZGUgb3VyIHdpbmRvdyBhbmQg
c2hvdyBpdC4KICAgICAgICAgbV93ZWJWaWV3LT5zZXRIb3N0V2luZG93KHJlaW50ZXJwcmV0X2Nh
c3Q8T0xFX0hBTkRMRT4obV9od25kKSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTE2MSkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEw
LTAyLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWdyZXNzaW9uIChyNTUxMDcpIC0g
V2ViSW5zcGVjdG9yIGRvY2tpbmcgaXMgYnVzdGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUyNzQKKworICAgICAgICAqIGluc3BlY3Rvci90aW1l
bGluZS1ldmVudC1kaXNwYXRjaC5odG1sOiBBY3R1YWxseSBjbGljayBpbiB0aGUgcmlnaHQgcGxh
Y2Ugbm93IHRoYXQgdGhlCisgICAgICAgICAgaW5zcGVjdG9yIGlzbid0IGRvY2tlZCBhbnltb3Jl
LgorCiAyMDEwLTAyLTIzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAg
ICAgUnViYmVyLXN0YW1wZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLmh0bWwJKHJldmlzaW9uIDU1
MTU1KQorKysgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTE2LDEwICsxNiwxMSBAQCBmdW5jdGlvbiBkb2l0KCkgCiAK
ICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RUYXJnZXQiKTsK
ICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgaGFuZGxlTW91c2VEb3du
LCB0cnVlKTsKKyAgICB2YXIgcmVjdCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
IAogICAgIC8vIFNpbXVsYXRlIHRoZSBtb3VzZSBkb3duIG92ZXIgdGhlIHRhcmdldCB0byB0cmln
Z2VyIGFuIEV2ZW50RGlzcGF0Y2gKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAg
ICAgIHdpbmRvdy5ldmVudFNlbmRlci5tb3VzZU1vdmVUbygyMDAsIDMwMCk7CisgICAgICAgIHdp
bmRvdy5ldmVudFNlbmRlci5tb3VzZU1vdmVUbyhyZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMiwg
cmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDIpOwogICAgICAgICB3aW5kb3cuZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CiAgICAgfQogCg==
</data>
<flag name="review"
          id="32155"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="32156"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49328</attachid>
            <date>2010-02-23 14:27:15 -0800</date>
            <delta_ts>2010-02-23 14:30:48 -0800</delta_ts>
            <desc>Actually feel good about this one *sigh*</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10593</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTE3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDItMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
Z3Jlc3Npb24gKHI1NTEwNykgLSBXZWJJbnNwZWN0b3IgZG9ja2luZyBpcyBidXN0ZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTI3NAorCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2FuQXR0YWNoV2luZG93KTogVXNlIHRoZSBtaW5pbXVt
IGhlaWdodCBmb3IgdGhpcyBjYWxjdWxhdGlvbiwKKyAgICAgICAgICBub3QgdGhlIHByZWZlcnJl
ZCBoZWlnaHQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjphdHRhY2hX
aW5kb3cpOiBhdHRhY2hXaW5kb3coKSBzaG91bGRuJ3QgZGVjaWRlIHRoZSBwb2xpY3ksIGFzIGl0
IGlzCisgICAgICAgICAgb2Z0ZW4gY2FsbGVkIHBhcnR3YXkgdGhyb3VnaCB0aGUgc2hvdyBvciBk
b2NrIHByb2NlZHVyZSBhZnRlciBzb21lIG9mIHRoZSBpbml0aWFsIGNvbmRpdGlvbnMgaGF2ZQor
ICAgICAgICAgIGNoYW5nZWQuIExldCB0aGUgZnJvbnQtZW5kIGl0c2VsZiBhbmQgdGhlIEluc3Bl
Y3RvckNsaWVudCdzIG1ha2UgdGhlIHBvbGljeSBkZWNpc2lvbiBhdCB0aGUgc3RhcnQKKyAgICAg
ICAgICBvZiB0aGUgc2hvdy9kb2NrIG9wZXJhdGlvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRIb3N0OjpjYW5BdHRhY2hXaW5kb3cpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmlkbDoKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLnRvZ2dsZUF0dGFjaCk6IEJlZm9yZSBhdHRhY2hpbmcsIGFz
ayB0aGUgZnJvbnQtZW5kLWhvc3QgaWYgYXR0YWNoaW5nIGlzIGFsbG93ZWQuCisKIDIwMTAtMDIt
MjMgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBH
ZW9mZiBHYXJlbi4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTUsMTYgKzQxNSwxMSBAQCBib29sIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmNhbkF0dGFjaFdpbmRvCiB7CiAgICAgaWYgKCFlbmFibGVkKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBTdHJpbmcgYXR0YWNoZWRIZWlnaHQgPSBz
ZXR0aW5nKGluc3BlY3RvckF0dGFjaGVkSGVpZ2h0TmFtZSk7Ci0gICAgYm9vbCBzdWNjZXNzID0g
dHJ1ZTsKLSAgICBpbnQgaGVpZ2h0ID0gYXR0YWNoZWRIZWlnaHQudG9JbnQoJnN1Y2Nlc3MpOwot
ICAgIHVuc2lnbmVkIHByZWZlcnJlZEhlaWdodCA9IHN1Y2Nlc3MgPyBoZWlnaHQgOiBkZWZhdWx0
QXR0YWNoZWRIZWlnaHQ7CiAgICAgICAgIAogICAgIHVuc2lnbmVkIGluc3BlY3RlZFBhZ2VIZWln
aHQgPSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPnZpc2libGVIZWlnaHQo
KTsKIAotICAgIC8vIERvbid0IGFsbG93IHRoZSBhdHRhY2ggaWYgdGhlIHdpbmRvdyBpcyB0b28g
c21hbGwgdG8gcmVzcGVjdCB3aGF0IHNob3VsZCBiZSB0aGUgbWluaW11bSBpbnNwZWN0b3IgaGVp
Z2h0LgotICAgIHJldHVybiBwcmVmZXJyZWRIZWlnaHQgPD0gaW5zcGVjdGVkUGFnZUhlaWdodCAq
IG1heGltdW1BdHRhY2hlZEhlaWdodFJhdGlvOworICAgIC8vIERvbid0IGFsbG93IHRoZSBhdHRh
Y2ggaWYgdGhlIHdpbmRvdyB3b3VsZCBiZSB0b28gc21hbGwgdG8gYWNjb21tb2RhdGUgdGhlIG1p
bmltdW0gaW5zcGVjdG9yIGhlaWdodC4KKyAgICByZXR1cm4gbWluaW11bUF0dGFjaGVkSGVpZ2h0
IDw9IGluc3BlY3RlZFBhZ2VIZWlnaHQgKiBtYXhpbXVtQXR0YWNoZWRIZWlnaHRSYXRpbzsKIH0K
IAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjphdHRhY2hXaW5kb3coKQpAQCAtNDM4LDEwICs0
MzMsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmF0dGFjaFdpbmRvdygpCiAgICAgYm9v
bCBzdWNjZXNzID0gdHJ1ZTsKICAgICBpbnQgaGVpZ2h0ID0gYXR0YWNoZWRIZWlnaHQudG9JbnQo
JnN1Y2Nlc3MpOwogICAgIHVuc2lnbmVkIHByZWZlcnJlZEhlaWdodCA9IHN1Y2Nlc3MgPyBoZWln
aHQgOiBkZWZhdWx0QXR0YWNoZWRIZWlnaHQ7Ci0gICAgCi0gICAgLy8gRG9uJ3QgYWxsb3cgdGhl
IGF0dGFjaCBpZiB0aGUgd2luZG93IGlzIHRvbyBzbWFsbCB0byByZXNwZWN0IHdoYXQgc2hvdWxk
IGJlIHRoZSBtaW5pbXVtIGluc3BlY3RvciBoZWlnaHQuCi0gICAgaWYgKHByZWZlcnJlZEhlaWdo
dCA+IGluc3BlY3RlZFBhZ2VIZWlnaHQgKiBtYXhpbXVtQXR0YWNoZWRIZWlnaHRSYXRpbykKLSAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9jbGllbnQtPmF0dGFjaFdpbmRvdygpOwogCkluZGV4OiBX
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAJKHJldmlzaW9uIDU1
MTU1KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTYsNiArOTYsMTMgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6
OndpbmRvd1VubG9hZAogICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmNsb3NlKCk7CiB9
CiAKK2Jvb2wgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpjYW5BdHRhY2hXaW5kb3coKSBjb25zdAor
eworICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBtX2luc3Bl
Y3RvckNvbnRyb2xsZXItPmNhbkF0dGFjaFdpbmRvdygpOworICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVu
c2lnbmVkIGhlaWdodCkKIHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQpJbmRleDog
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgJKHJldmlzaW9uIDU1MTU1
KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xvc2VXaW5kb3coKTsK
ICAgICB2b2lkIHdpbmRvd1VubG9hZGluZygpOwogCisgICAgYm9vbCBjYW5BdHRhY2hXaW5kb3co
KSBjb25zdDsKICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdo
dCk7CiAgICAgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3Q7CiAKSW5k
ZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAkocmV2aXNp
b24gNTUxNTUpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAg
dm9pZCBjbG9zZVdpbmRvdygpOwogICAgICAgICB2b2lkIHdpbmRvd1VubG9hZGluZygpOwogCisg
ICAgICAgIGJvb2xlYW4gY2FuQXR0YWNoV2luZG93KCk7CiAgICAgICAgIHZvaWQgc2V0QXR0YWNo
ZWRXaW5kb3dIZWlnaHQoaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwogICAgICAgICB2b2lkIG1v
dmVXaW5kb3dCeShpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KTsKIApJbmRleDogV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTg4NSw2
ICs4ODUsOSBAQCBXZWJJbnNwZWN0b3IuZm9jdXNTZWFyY2hGaWVsZCA9IGZ1bmN0aW9uCiAKIFdl
Ykluc3BlY3Rvci50b2dnbGVBdHRhY2ggPSBmdW5jdGlvbigpCiB7CisgICAgaWYgKCF0aGlzLmF0
dGFjaGVkICYmIEluc3BlY3RvckZyb250ZW5kSG9zdC5jYW5BdHRhY2hXaW5kb3cgJiYgIUluc3Bl
Y3RvckZyb250ZW5kSG9zdC5jYW5BdHRhY2hXaW5kb3coKSkKKyAgICAgICAgICAgIHJldHVybjsK
KwogICAgIHRoaXMuYXR0YWNoZWQgPSAhdGhpcy5hdHRhY2hlZDsKICAgICB0aGlzLmRyYXdlci5y
ZXNpemUoKTsKIH0KSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTE2MSkKKysrIFdlYktpdC9tYWMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDItMjMgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlZ3Jlc3Npb24gKHI1NTEwNykgLSBXZWJJbnNwZWN0b3IgZG9j
a2luZyBpcyBidXN0ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNTI3NAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50Lm1tOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIHNob3dXaW5k
b3c6XSk6IFN3YXAgdGhlIG9yZGVyIG9mIHRoZSAic2hvdWxkIGF0dGFjaD8iIGNoZWNrCisgICAg
ICAgICAgdG8gZ2V0IHRoZSBleHBlY3RlZCBiZWhhdmlvci4KKwogMjAxMC0wMi0yMyAgRGFuIEJl
cm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZy
YXNlci4KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50Lm1tCShyZXZpc2lvbiA1NTE1NSkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMjYsMTQgKzMyNiwxMiBA
QCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6aW5zcGVjdG9yV2luZG93CiAKICAgICBfdmlzaWJs
ZSA9IFlFUzsKICAgICAKLSAgICBpZiAoIVtfaW5zcGVjdGVkV2ViVmlldyBwYWdlXS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLT5jYW5BdHRhY2hXaW5kb3coKSkKLSAgICAgICAgX3Nob3VsZEF0dGFj
aCA9IE5POworICAgIC8vIElmIG5vIHByZWZlcmVuY2UgaXMgc2V0IC0gZGVmYXVsdCB0byBhbiBh
dHRhY2hlZCB3aW5kb3cuIFRoaXMgaXMgaW1wb3J0YW50IGZvciBpbnNwZWN0b3IgTGF5b3V0VGVz
dHMuCisgICAgU3RyaW5nIHNob3VsZEF0dGFjaCA9IFtfaW5zcGVjdGVkV2ViVmlldyBwYWdlXS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zZXR0aW5nKGluc3BlY3RvclN0YXJ0c0F0dGFjaGVkTmFt
ZSk7CisgICAgX3Nob3VsZEF0dGFjaCA9IHNob3VsZEF0dGFjaCAhPSAiZmFsc2UiOwogICAgIAot
ICAgIGlmIChfc2hvdWxkQXR0YWNoKSB7Ci0gICAgICAgIC8vIElmIG5vIHByZWZlcmVuY2UgaXMg
c2V0IC0gZGVmYXVsdCB0byBhbiBhdHRhY2hlZCB3aW5kb3cuIFRoaXMgaXMgaW1wb3J0YW50IGZv
ciBpbnNwZWN0b3IgTGF5b3V0VGVzdHMuCi0gICAgICAgIFN0cmluZyBzaG91bGRBdHRhY2ggPSBb
X2luc3BlY3RlZFdlYlZpZXcgcGFnZV0tPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0dGluZyhp
bnNwZWN0b3JTdGFydHNBdHRhY2hlZE5hbWUpOwotICAgICAgICBfc2hvdWxkQXR0YWNoID0gc2hv
dWxkQXR0YWNoICE9ICJmYWxzZSI7Ci0gICAgfQorICAgIGlmIChfc2hvdWxkQXR0YWNoICYmICFb
X2luc3BlY3RlZFdlYlZpZXcgcGFnZV0tPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+Y2FuQXR0YWNo
V2luZG93KCkpCisgICAgICAgIF9zaG91bGRBdHRhY2ggPSBOTzsKIAogICAgIGlmIChfc2hvdWxk
QXR0YWNoKSB7CiAgICAgICAgIFdlYkZyYW1lVmlldyAqZnJhbWVWaWV3ID0gW1tfaW5zcGVjdGVk
V2ViVmlldyBtYWluRnJhbWVdIGZyYW1lVmlld107CkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gNTUxNjEpCisr
KyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDEwLTAyLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWdyZXNzaW9uIChyNTUxMDcp
IC0gV2ViSW5zcGVjdG9yIGRvY2tpbmcgaXMgYnVzdGVkLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUyNzQKKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJJbnNwZWN0b3JDbGllbnQ6
OnNob3dXaW5kb3dXaXRob3V0Tm90aWZpY2F0aW9ucyk6IFN3YXAgdGhlIG9yZGVyIG9mIHRoZSAi
c2hvdWxkIGF0dGFjaD8iIGNoZWNrCisgICAgICAgICAgdG8gZ2V0IHRoZSBleHBlY3RlZCBiZWhh
dmlvci4KKwogMjAxMC0wMi0yMyAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCShyZXZpc2lvbiA1NTE1
NSkKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQ5LDE1ICszNDksMTMgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGll
bnQ6OnNob3dXaW5kb3dXaXRobwogICAgIEFTU0VSVChtX3dlYlZpZXcpOwogICAgIEFTU0VSVCht
X2luc3BlY3RlZFdlYlZpZXdId25kKTsKIAotICAgIGlmICghbV9pbnNwZWN0ZWRXZWJWaWV3LT5w
YWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+Y2FuQXR0YWNoV2luZG93KCkpCisgICAgLy8g
SWYgbm8gcHJlZmVyZW5jZSBpcyBzZXQgLSBkZWZhdWx0IHRvIGFuIGF0dGFjaGVkIHdpbmRvdy4g
VGhpcyBpcyBpbXBvcnRhbnQgZm9yIGluc3BlY3RvciBMYXlvdXRUZXN0cy4KKyAgICBTdHJpbmcg
c2hvdWxkQXR0YWNoID0gbV9pbnNwZWN0ZWRXZWJWaWV3LT5wYWdlKCktPmluc3BlY3RvckNvbnRy
b2xsZXIoKS0+c2V0dGluZyhpbnNwZWN0b3JTdGFydHNBdHRhY2hlZE5hbWUpOworICAgIG1fc2hv
dWxkQXR0YWNoV2hlblNob3duID0gc2hvdWxkQXR0YWNoICE9ICJmYWxzZSI7CisgICAgICAgIAor
ICAgIGlmIChtX3Nob3VsZEF0dGFjaFdoZW5TaG93biAmJiAhbV9pbnNwZWN0ZWRXZWJWaWV3LT5w
YWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+Y2FuQXR0YWNoV2luZG93KCkpCiAgICAgICAg
IG1fc2hvdWxkQXR0YWNoV2hlblNob3duID0gZmFsc2U7CiAgICAgCi0gICAgaWYgKG1fc2hvdWxk
QXR0YWNoV2hlblNob3duKSB7Ci0gICAgICAgIC8vIElmIG5vIHByZWZlcmVuY2UgaXMgc2V0IC0g
ZGVmYXVsdCB0byBhbiBhdHRhY2hlZCB3aW5kb3cuIFRoaXMgaXMgaW1wb3J0YW50IGZvciBpbnNw
ZWN0b3IgTGF5b3V0VGVzdHMuCi0gICAgICAgIFN0cmluZyBzaG91bGRBdHRhY2ggPSBtX2luc3Bl
Y3RlZFdlYlZpZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zZXR0aW5nKGluc3Bl
Y3RvclN0YXJ0c0F0dGFjaGVkTmFtZSk7Ci0gICAgICAgIG1fc2hvdWxkQXR0YWNoV2hlblNob3du
ID0gc2hvdWxkQXR0YWNoICE9ICJmYWxzZSI7Ci0gICAgfQotICAgIAogICAgIGlmICghbV9zaG91
bGRBdHRhY2hXaGVuU2hvd24pIHsKICAgICAgICAgLy8gUHV0IHRoZSBJbnNwZWN0b3IncyBXZWJW
aWV3IGluc2lkZSBvdXIgd2luZG93IGFuZCBzaG93IGl0LgogICAgICAgICBtX3dlYlZpZXctPnNl
dEhvc3RXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxPTEVfSEFORExFPihtX2h3bmQpKTsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU1MTYxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDItMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlZ3Jlc3Npb24gKHI1NTEwNykgLSBXZWJJbnNwZWN0b3IgZG9ja2luZyBpcyBidXN0ZWQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTI3NAor
CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lLWV2ZW50LWRpc3BhdGNoLmh0bWw6IEFjdHVh
bGx5IGNsaWNrIGluIHRoZSByaWdodCBwbGFjZSBub3cgdGhhdCB0aGUKKyAgICAgICAgICBpbnNw
ZWN0b3IgaXNuJ3QgZG9ja2VkIGFueW1vcmUuCisKIDIwMTAtMDItMjMgIERhbiBCZXJuc3RlaW4g
IDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBTaW1vbiBGcmFz
ZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQtZGlzcGF0Y2gu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZXZlbnQt
ZGlzcGF0Y2guaHRtbAkocmV2aXNpb24gNTUxNTUpCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUtZXZlbnQtZGlzcGF0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTYsMTAgKzE2
LDExIEBAIGZ1bmN0aW9uIGRvaXQoKSAKIAogICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdFRhcmdldCIpOwogICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZWRvd24iLCBoYW5kbGVNb3VzZURvd24sIHRydWUpOworICAgIHZhciByZWN0ID0gdGFyZ2V0
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogCiAgICAgLy8gU2ltdWxhdGUgdGhlIG1vdXNlIGRv
d24gb3ZlciB0aGUgdGFyZ2V0IHRvIHRyaWdnZXIgYW4gRXZlbnREaXNwYXRjaAogICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKDIwMCwgMzAwKTsKKyAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHJl
Y3QubGVmdCArIHJlY3Qud2lkdGggLyAyLCByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMik7CiAg
ICAgICAgIHdpbmRvdy5ldmVudFNlbmRlci5tb3VzZURvd24oKTsKICAgICB9CiAK
</data>
<flag name="review"
          id="32173"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="32174"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>