<?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>13026</bug_id>
          
          <creation_ts>2007-03-09 12:09:02 -0800</creation_ts>
          <short_desc>incomplete render of menu (assertion failing in -[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:])</short_desc>
          <delta_ts>2007-04-02 14:32:46 -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>Plug-ins</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.law.stanford.edu/employers/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, NeedsReduction</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Romanovich">alex</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>bruceq</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>martin_j</cc>
    
    <cc>mitz</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>19705</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Romanovich">alex</who>
    <bug_when>2007-03-09 12:09:02 -0800</bug_when>
    <thetext>The Stanford Law site has an &quot;information for&quot; menu that renders with gaps on current release of Safari. Using 20057 I can reproduce it as well, although the menu is far less broken. Mouse over the menu and drag down slowly over the menu items to see the glitch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19707</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-03-09 12:18:54 -0800</bug_when>
    <thetext>ASSERTION FAILED: pOffScreenGWorld &amp;&amp; !err
(WebKit/Plugins/WebBaseNetscapePluginView.mm:422 -[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:])

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19687</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-03-10 01:02:51 -0800</bug_when>
    <thetext>The assertion failure being hit was added in r20042 by Bruce Q Hammond.  Bruce, perhaps you could shed some light on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19464</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-03-12 01:46:29 -0700</bug_when>
    <thetext>                if (pixelFormat == 0) {
                    // Not a valid pixel format - don&apos;t render at all.
                    offscreenBounds.top = 0;
                    offscreenBounds.left = 0;
                    offscreenBounds.right = 0;
                    offscreenBounds.bottom = 0;
                    rowBytes = 0;
                    pixelFormat = k32BGRAPixelFormat;
                }

These parameters are invalid for NewGWorldFromPtr, which returns a -50 error. Not sure that&apos;s the best way to accomplish &quot;don&apos;t render at all&quot;, even if this code is not supposed to be reached. In the test case, the 0 pixelFormat is what QDPixelFormatFromCGBitmapInfo() returns for kCGBitmapByteOrderDefault. Is there a way to resolve kCGBitmapByteOrderDefault in compile time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>19004</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-03-13 16:22:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/5061026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18831</commentid>
    <comment_count>5</comment_count>
      <attachid>13619</attachid>
    <who name="Bruce Q. Hammond">bruceq</who>
    <bug_when>2007-03-13 17:08:07 -0700</bug_when>
    <thetext>Created attachment 13619
Change to QDPixelFormatFromCGBitmapInfo to handle kCGBitmapByteOrderDefault

QDPixelFormatFromCGBitmapInfo will now do something reasonable
with bitmaps that have byte order of kCGBitmapByteOrderDefault.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18833</commentid>
    <comment_count>6</comment_count>
      <attachid>13619</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-13 17:35:13 -0700</bug_when>
    <thetext>Comment on attachment 13619
Change to QDPixelFormatFromCGBitmapInfo to handle kCGBitmapByteOrderDefault

r=me -- we need this fix!

Why did you change the indentation? Why are the static_cast calls needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18834</commentid>
    <comment_count>7</comment_count>
      <attachid>13619</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-13 17:48:14 -0700</bug_when>
    <thetext>Comment on attachment 13619
Change to QDPixelFormatFromCGBitmapInfo to handle kCGBitmapByteOrderDefault

We don&apos;t really want to link to libkern just to find out the endianness. We don&apos;t want to keep the dead code to handle 0 either. I&apos;ll investigate a little myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18835</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-13 17:53:04 -0700</bug_when>
    <thetext>Why are we exercising the bitmap context code path at all? I thought that code path wouldn&apos;t be used at all for Safari.

Is &quot;something reasonable&quot; really correct? We need to get the format right, not just reasonable, I imagine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18838</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-13 18:23:48 -0700</bug_when>
    <thetext>This code was not supposed to be exercised at all in Safari. Do you know why it&apos;s taking this code path?

Maybe we need an additional check to see if the graphics context is the same as the -[NSWindow graphicsContext]. If it is, then I don&apos;t think we want to go into the bitmap context code path.

I&apos;ll attach a patch in a bit, with my proposed change. I am annoyed, though, that we don&apos;t have a suitable test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18840</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-13 18:27:21 -0700</bug_when>
    <thetext>In my testing, I can&apos;t reproduce a case where we go through the BitmapContext code path, this I can&apos;t reproduce the bug either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18842</commentid>
    <comment_count>11</comment_count>
      <attachid>13623</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-13 18:39:31 -0700</bug_when>
    <thetext>Created attachment 13623
another cut at a fix

But I still don&apos;t understand why this code path is exercised at all in Safari. I can&apos;t reproduce a case where it&apos;s a BitmapContext, but it seems like others can.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18043</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-20 09:39:44 -0700</bug_when>
    <thetext>Is this bug still reproducible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18044</commentid>
    <comment_count>13</comment_count>
    <who name="Alexander Romanovich">alex</who>
    <bug_when>2007-03-20 09:52:23 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Is this bug still reproducible?
&gt; 

Just downloaded and tried 20341. Still reproducible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17207</commentid>
    <comment_count>14</comment_count>
      <attachid>13824</attachid>
    <who name="Bruce Q. Hammond">bruceq</who>
    <bug_when>2007-03-26 19:23:38 -0700</bug_when>
    <thetext>Created attachment 13824
Does the right thing with bitmaps that have kCGBitmapByteOrderDefault

stylistic changes of patch of 13Mar07</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17190</commentid>
    <comment_count>15</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-03-27 07:51:06 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; In my testing, I can&apos;t reproduce a case where we go through the BitmapContext
&gt; code path, this I can&apos;t reproduce the bug either.

I was able to reproduce the bug simply by opening the web page and then hovering over the menu.  At the time, CPU usage was near 100% though because I was rebuilding a debug build of WebKit.  (The menu didn&apos;t even open before the assertion was hit.)

Also, I&apos;m using a PowerBook G4 (not an Intel Mac) if that makes any difference.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17191</commentid>
    <comment_count>16</comment_count>
      <attachid>13828</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-03-27 07:52:43 -0700</bug_when>
    <thetext>Created attachment 13828
Stack trace

Console output when assertion is hit:

ASSERTION FAILED: pOffScreenGWorld &amp;&amp; !err
(/path/to/WebKit/WebKit/Plugins/WebBaseNetscapePluginView.mm:423 -[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:])
Segmentation fault</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17174</commentid>
    <comment_count>17</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-03-27 07:53:51 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=13828) [edit]
&gt; Stack trace

Using a local debug build of WebKit r20504 with Safari 2.0.4 (419.3) on Mac OS X 10.4.9 (8P135).

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16940</commentid>
    <comment_count>18</comment_count>
      <attachid>13824</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-27 09:41:57 -0700</bug_when>
    <thetext>Comment on attachment 13824
Does the right thing with bitmaps that have kCGBitmapByteOrderDefault

This patch still doesn&apos;t answer my question. Why is any of this code running at all in Safari? Where is the CGBitmapContext coming from? Until I have an answer to that I&apos;m not comfortable saying review+.

And I would prefer not to have a runtime check to figure out the byte order, when there&apos;s a perfectly good compile time check already done in the CoreGraphics headers. Please look at my patch for an alternative that does not involve a call to a function and also makes fewer assumptions and may be more correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16795</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-28 06:57:19 -0700</bug_when>
    <thetext>OK, I figured out why the code is unexpectedly running inside Safari.

The plug-in is inside a transparency layer.

When drawing inside a transparency layer, the current GraphicsContext is going to be a CGBitmapContext. One that was created with CGContextBeginTransparencyLayer. But I think we don&apos;t want to use the special code path in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16796</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-28 07:11:43 -0700</bug_when>
    <thetext>The real bug here is that WKCGContextIsBitmapContext is returning true, but the context is *not* a bitmap context. For example, CGBitmapContextGetData returns 0 and CGBitmapContextGetBitmapInfo returns all zeros!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16797</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-28 07:14:19 -0700</bug_when>
    <thetext>Turns out that we don&apos;t need the WebKitSystemInterface call at all. Just calling CGBitmapContextGetData checks if the current context is a bitmap context, without doing any special logging when it&apos;s not. As far as I can tell from my testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16798</commentid>
    <comment_count>22</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-28 07:19:48 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Turns out that we don&apos;t need the WebKitSystemInterface call at all. Just
&gt; calling CGBitmapContextGetData checks if the current context is a bitmap
&gt; context, without doing any special logging when it&apos;s not. As far as I can tell
&gt; from my testing.

That&apos;s not quite true. But it is true that in the layer case, we get zero from the bitmap context data pointer. So this gives us an excellent way to detect that case and handle it differently. I&apos;ll put together a patch now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16799</commentid>
    <comment_count>23</comment_count>
      <attachid>13824</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-28 07:20:53 -0700</bug_when>
    <thetext>Comment on attachment 13824
Does the right thing with bitmaps that have kCGBitmapByteOrderDefault

review-, because the issue isn&apos;t just the bitmap info -- it&apos;s also the data pointer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16800</commentid>
    <comment_count>24</comment_count>
      <attachid>13843</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-28 07:54:48 -0700</bug_when>
    <thetext>Created attachment 13843
don&apos;t use offscreen code path if data pointer is 0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16802</commentid>
    <comment_count>25</comment_count>
      <attachid>13844</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-28 09:31:15 -0700</bug_when>
    <thetext>Created attachment 13844
new patch with additional fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16591</commentid>
    <comment_count>26</comment_count>
      <attachid>13844</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-28 18:32:02 -0700</bug_when>
    <thetext>Comment on attachment 13844
new patch with additional fixes

I noticed that one of the two bugs has the wrong description in the change log. I&apos;ll fix that when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16138</commentid>
    <comment_count>27</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-03-31 07:50:47 -0700</bug_when>
    <thetext>*** Bug 13244 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15949</commentid>
    <comment_count>28</comment_count>
      <attachid>13844</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-04-02 12:50:17 -0700</bug_when>
    <thetext>Comment on attachment 13844
new patch with additional fixes

+            CGContextRef context = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];

I&apos;m curious -- why did you choose the C-style cast here?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15950</commentid>
    <comment_count>29</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-02 12:57:32 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 13844 [edit])
&gt; +            CGContextRef context = (CGContextRef)[[NSGraphicsContext
&gt; currentContext] graphicsPort];
&gt; 
&gt; I&apos;m curious -- why did you choose the C-style cast here?

I think it&apos;s the heritage of this file. It used to be a C source file and was only recently changed to C++. I think I copied and pasted it from elsewhere in the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15878</commentid>
    <comment_count>30</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-02 14:32:46 -0700</bug_when>
    <thetext>Sadly, I couldn&apos;t come up with a good way to do regression tests.

Sending        WebKit/ChangeLog
Sending        WebKit/Plugins/WebBaseNetscapePluginView.h
Sending        WebKit/Plugins/WebBaseNetscapePluginView.mm
Transmitting file data ...
Committed revision 20668.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13619</attachid>
            <date>2007-03-13 17:08:07 -0700</date>
            <delta_ts>2007-03-26 19:23:38 -0700</delta_ts>
            <desc>Change to QDPixelFormatFromCGBitmapInfo to handle kCGBitmapByteOrderDefault</desc>
            <filename>webkit_bug_13026_patch.txt</filename>
            <type>text/plain</type>
            <size>1698</size>
            <attacher name="Bruce Q. Hammond">bruceq</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMjAxNjgpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMDctMDMtMTMgIEJydWNlIFEgSGFtbW9uZCAgPHNldCBFTUFJTF9BRERS
RVNTIGVudmlyb25tZW50IHZhcmlhYmxlPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCQorICAgICAgICBUaGlzIGFkZHJlc3NlcyBCdWcgMTMwMjY6IGluY29tcGxldGUg
cmVuZGVyIG9mIG1lbnUKKyAgICAgICAgKGFzc2VydGlvbiBmYWlsaW5nIGluIC1bV2ViQmFzZU5l
dHNjYXBlUGx1Z2luVmlldworICAgICAgICBzYXZlQW5kU2V0TmV3UG9ydFN0YXRlRm9yVXBkYXRl
Ol0pCisJCisgICAgICAgIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJbmZvIHdpbGwgbm93IGRv
IHNvbWV0aGluZyByZWFzb25hYmxlCisgICAgICAgIHdpdGggYml0bWFwcyB0aGF0IGhhdmUgYnl0
ZSBvcmRlciBvZiBrQ0dCaXRtYXBCeXRlT3JkZXJEZWZhdWx0LgorCisgICAgICAgICogUGx1Z2lu
cy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoUURQaXhlbEZvcm1hdEZy
b21DR0JpdG1hcEluZm8pOgorCiAyMDA3LTAzLTEzICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZi4KSW5kZXg6IFdlYktpdC9Q
bHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQkocmV2aXNpb24gMjAxNTQpCisr
KyBXZWJLaXQvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCSh3b3JraW5nIGNv
cHkpCkBAIC02MSw2ICs2MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFz
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlVJ
RGVsZWdhdGUuaD4KKyNpbXBvcnQgPGxpYmtlcm4vT1NCeXRlT3JkZXIuaD4KICNpbXBvcnQgPG9i
amMvb2JqYy1ydW50aW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjY5LDcg
KzI3MCw3IEBAIHN0YXRpYyBVSW50MzIgUURQaXhlbEZvcm1hdEZyb21DR0JpdG1hcEkKICAgICBV
SW50MzIgY2dCeXRlT3JkZXIgPSBiaXRtYXBJbmZvICYga0NHQml0bWFwQnl0ZU9yZGVyTWFzazsK
ICAgICBzd2l0Y2ggKGNnQnl0ZU9yZGVyKSB7CiAgICAgY2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXJE
ZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKKyAgICAgICByZXR1cm4gT1NIb3N0Qnl0ZU9yZGVy
KCkgPT0gT1NCaWdFbmRpYW4gPyBzdGF0aWNfY2FzdDxVSW50MzI+KGszMkFSR0JQaXhlbEZvcm1h
dCkgOiBzdGF0aWNfY2FzdDxVSW50MzI+KGszMkJHUkFQaXhlbEZvcm1hdCk7CiAgICAgY2FzZSBr
Q0dCaXRtYXBCeXRlT3JkZXIxNkxpdHRsZToKICAgICAgICAgcmV0dXJuIGsxNkxFNTU1UGl4ZWxG
b3JtYXQ7CiAgICAgY2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZToK
</data>
<flag name="review"
          id="5408"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13623</attachid>
            <date>2007-03-13 18:39:31 -0700</date>
            <delta_ts>2007-03-27 07:52:43 -0700</delta_ts>
            <desc>another cut at a fix</desc>
            <filename>BitmapFormatPatch.txt</filename>
            <type>text/plain</type>
            <size>5995</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQkocmV2
aXNpb24gMjAxNjgpCisrKyBXZWJLaXQvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsMjQgKzI2NCwzMCBAQCBzdGF0aWMgT1NTdGF0dXMg
VFNNRXZlbnRIYW5kbGVyKEV2ZW50SGFuCiAjZW5kaWYKIAogI2lmbmRlZiBOUF9OT19RVUlDS0RS
QVcKLXN0YXRpYyBVSW50MzIgUURQaXhlbEZvcm1hdEZyb21DR0JpdG1hcEluZm8oQ0dCaXRtYXBJ
bmZvIGJpdG1hcEluZm8pCitzdGF0aWMgVUludDMyIGdldFFEUGl4ZWxGb3JtYXRGb3JCaXRtYXBD
b250ZXh0KENHQ29udGV4dFJlZiBjb250ZXh0KQogewotICAgIFVJbnQzMiBjZ0J5dGVPcmRlciA9
IGJpdG1hcEluZm8gJiBrQ0dCaXRtYXBCeXRlT3JkZXJNYXNrOwotICAgIHN3aXRjaCAoY2dCeXRl
T3JkZXIpIHsKLSAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlckRlZmF1bHQ6Ci0gICAgICAgIHJl
dHVybiAwOwotICAgIGNhc2Uga0NHQml0bWFwQnl0ZU9yZGVyMTZMaXR0bGU6Ci0gICAgICAgIHJl
dHVybiBrMTZMRTU1NVBpeGVsRm9ybWF0OwotICAgIGNhc2Uga0NHQml0bWFwQnl0ZU9yZGVyMzJM
aXR0bGU6Ci0gICAgICAgIHJldHVybiBrMzJCR1JBUGl4ZWxGb3JtYXQ7Ci0gICAgY2FzZSBrQ0dC
aXRtYXBCeXRlT3JkZXIxNkJpZzoKLSAgICAgICAgcmV0dXJuIGsxNkJFNTU1UGl4ZWxGb3JtYXQ7
Ci0gICAgY2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXIzMkJpZzoKLSAgICAgICAgcmV0dXJuIGszMkFS
R0JQaXhlbEZvcm1hdDsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgVUludDMyIGJ5dGVPcmRlciA9IENHQml0bWFwQ29u
dGV4dEdldEJpdG1hcEluZm8oY29udGV4dCkgJiBrQ0dCaXRtYXBCeXRlT3JkZXJNYXNrOworICAg
IGlmIChieXRlT3JkZXIgPT0ga0NHQml0bWFwQnl0ZU9yZGVyRGVmYXVsdCkKKyAgICAgICAgc3dp
dGNoIChDR0JpdG1hcENvbnRleHRHZXRCaXRzUGVyUGl4ZWwoY29udGV4dCkpIHsKKyAgICAgICAg
ICAgIGNhc2UgMTY6CisgICAgICAgICAgICAgICAgYnl0ZU9yZGVyID0ga0NHQml0bWFwQnl0ZU9y
ZGVyMTZIb3N0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAzMjoK
KyAgICAgICAgICAgICAgICBieXRlT3JkZXIgPSBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3Q7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICBzd2l0Y2ggKGJ5dGVPcmRlcikg
eworICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlcjE2TGl0dGxlOgorICAgICAgICAgICAg
cmV0dXJuIGsxNkxFNTU1UGl4ZWxGb3JtYXQ7CisgICAgICAgIGNhc2Uga0NHQml0bWFwQnl0ZU9y
ZGVyMzJMaXR0bGU6CisgICAgICAgICAgICByZXR1cm4gazMyQkdSQVBpeGVsRm9ybWF0OworICAg
ICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlcjE2QmlnOgorICAgICAgICAgICAgcmV0dXJuIGsx
NkJFNTU1UGl4ZWxGb3JtYXQ7CisgICAgICAgIGNhc2Uga0NHQml0bWFwQnl0ZU9yZGVyMzJCaWc6
CisgICAgICAgICAgICByZXR1cm4gazMyQVJHQlBpeGVsRm9ybWF0OwogICAgIH0KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKIH0KICNlbmRpZgogCkBAIC0zOTYsMTEg
KzQwMiwxNCBAQCBzdGF0aWMgVUludDMyIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJCiAgICAg
ICAgICAgICBSZ25IYW5kbGUgY2xpcFJlZ2lvbiA9IE5ld1JnbigpOwogICAgICAgICAgICAgcWRQ
b3J0U3RhdGUtPmNsaXBSZWdpb24gPSBjbGlwUmVnaW9uOwogCi0gICAgICAgICAgICBDR0NvbnRl
eHRSZWYgY3VycmVudENvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0gICAgICAgICAgICAvLyBJZiB0aGUgY3Vy
cmVudCBjb250ZXh0IGlzIGFuIG9mZnNjcmVlbiBiaXRtYXAsIHRoZW4gd2UgY3JlYXRlIGEgR1dv
cmxkIGZvciBpdAotICAgICAgICAgICAgYm9vbCBvZmZTY3JlZW5Db250ZXh0ID0gY3VycmVudENv
bnRleHQgJiYgV0tDR0NvbnRleHRJc0JpdG1hcENvbnRleHQoY3VycmVudENvbnRleHQpOwotICAg
ICAgICAgICAgaWYgKG9mZlNjcmVlbkNvbnRleHQpIHsKLSAgICAgICAgICAgICAgICBDR0JpdG1h
cEluZm8gY29udGV4dEJpdG1hcEluZm8gPSBDR0JpdG1hcENvbnRleHRHZXRCaXRtYXBJbmZvKGN1
cnJlbnRDb250ZXh0KTsKKyAgICAgICAgICAgIE5TR3JhcGhpY3NDb250ZXh0ICpjdXJyZW50TlND
b250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKKyAgICAgICAgICAg
IENHQ29udGV4dFJlZiBjdXJyZW50Q29udGV4dCA9IChDR0NvbnRleHRSZWYpW2N1cnJlbnROU0Nv
bnRleHQgZ3JhcGhpY3NQb3J0XTsKKyAgICAgICAgICAgIGJvb2wgaXNPZmZzY3JlZW5Db250ZXh0
ID0gY3VycmVudENvbnRleHQKKyAgICAgICAgICAgICAgICAmJiBXS0NHQ29udGV4dElzQml0bWFw
Q29udGV4dChjdXJyZW50Q29udGV4dCkKKyAgICAgICAgICAgICAgICAmJiBjdXJyZW50TlNDb250
ZXh0ICE9IFtyZWFsV2luZG93IGdyYXBoaWNzQ29udGV4dF07CisKKyAgICAgICAgICAgIC8vIElm
IHRoZSBjdXJyZW50IGNvbnRleHQgaXMgYW4gb2Zmc2NyZWVuIGJpdG1hcCwgdGhlbiB3ZSBjcmVh
dGUgYSBHV29ybGQgZm9yIGl0LgorICAgICAgICAgICAgaWYgKGlzT2Zmc2NyZWVuQ29udGV4dCkg
ewogICAgICAgICAgICAgICAgIEdXb3JsZFB0ciBwT2ZmU2NyZWVuR1dvcmxkOwogICAgICAgICAg
ICAgICAgIFJlY3Qgb2Zmc2NyZWVuQm91bmRzOwogICAgICAgICAgICAgICAgIGludCByb3dCeXRl
cyA9IENHQml0bWFwQ29udGV4dEdldEJ5dGVzUGVyUm93KGN1cnJlbnRDb250ZXh0KTsKQEAgLTQw
OCwxNiArNDE3LDcgQEAgc3RhdGljIFVJbnQzMiBRRFBpeGVsRm9ybWF0RnJvbUNHQml0bWFwSQog
ICAgICAgICAgICAgICAgIG9mZnNjcmVlbkJvdW5kcy5sZWZ0ID0gMDsKICAgICAgICAgICAgICAg
ICBvZmZzY3JlZW5Cb3VuZHMucmlnaHQgPSBDR0JpdG1hcENvbnRleHRHZXRXaWR0aChjdXJyZW50
Q29udGV4dCk7CiAgICAgICAgICAgICAgICAgb2Zmc2NyZWVuQm91bmRzLmJvdHRvbSA9IENHQml0
bWFwQ29udGV4dEdldEhlaWdodChjdXJyZW50Q29udGV4dCk7Ci0gICAgICAgICAgICAgICAgVUlu
dDMyIHBpeGVsRm9ybWF0ID0gUURQaXhlbEZvcm1hdEZyb21DR0JpdG1hcEluZm8oY29udGV4dEJp
dG1hcEluZm8pOwotICAgICAgICAgICAgICAgIGlmIChwaXhlbEZvcm1hdCA9PSAwKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIC8vIE5vdCBhIHZhbGlkIHBpeGVsIGZvcm1hdCAtIGRvbid0IHJlbmRl
ciBhdCBhbGwuCi0gICAgICAgICAgICAgICAgICAgIG9mZnNjcmVlbkJvdW5kcy50b3AgPSAwOwot
ICAgICAgICAgICAgICAgICAgICBvZmZzY3JlZW5Cb3VuZHMubGVmdCA9IDA7Ci0gICAgICAgICAg
ICAgICAgICAgIG9mZnNjcmVlbkJvdW5kcy5yaWdodCA9IDA7Ci0gICAgICAgICAgICAgICAgICAg
IG9mZnNjcmVlbkJvdW5kcy5ib3R0b20gPSAwOwotICAgICAgICAgICAgICAgICAgICByb3dCeXRl
cyA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIHBpeGVsRm9ybWF0ID0gazMyQkdSQVBpeGVsRm9y
bWF0OwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBVSW50MzIgcGl4ZWxGb3Jt
YXQgPSBnZXRRRFBpeGVsRm9ybWF0Rm9yQml0bWFwQ29udGV4dChjdXJyZW50Q29udGV4dCk7CiAg
ICAgICAgICAgICAgICAgdm9pZCogYml0cyA9IENHQml0bWFwQ29udGV4dEdldERhdGEoY3VycmVu
dENvbnRleHQpOwogICAgICAgICAgICAgICAgIFFERXJyIGVyciA9IE5ld0dXb3JsZEZyb21QdHIo
JnBPZmZTY3JlZW5HV29ybGQsIHBpeGVsRm9ybWF0LCAmb2Zmc2NyZWVuQm91bmRzLCAwLCAwLCAw
LCBzdGF0aWNfY2FzdDxjaGFyKj4oYml0cyksIHJvd0J5dGVzKTsKICAgICAgICAgICAgICAgICBB
U1NFUlQocE9mZlNjcmVlbkdXb3JsZCAmJiAhZXJyKTsKQEAgLTQ3NCw3ICs0NzQsNyBAQCBzdGF0
aWMgVUludDMyIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJCiAgICAgICAgICAgICAgICAgLy8g
SW50ZXJzZWN0IHRoZSBkaXJ0eSByZWdpb24gd2l0aCB0aGUgY2xpcCByZWdpb24sIHNvIHRoYXQg
d2Ugb25seSBkcmF3IG92ZXIgZGlydHkgcGFydHMKICAgICAgICAgICAgICAgICBTZWN0UmduKGNs
aXBSZWdpb24sIHZpZXdDbGlwUmVnaW9uLCBjbGlwUmVnaW9uKTsKICAgICAgICAgICAgICAgICBE
aXNwb3NlUmduKHZpZXdDbGlwUmVnaW9uKTsKLSAgICAgICAgICAgICAgICBpZiAob2ZmU2NyZWVu
Q29udGV4dCkgeworICAgICAgICAgICAgICAgIGlmIChpc09mZnNjcmVlbkNvbnRleHQpIHsKICAg
ICAgICAgICAgICAgICAgICAgR2V0UmVnaW9uQm91bmRzKGNsaXBSZWdpb24sICZjbGlwQm91bmRz
KTsKICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0UmduKGNsaXBSZWdpb24sIC1jbGlwQm91bmRz
LmxlZnQsIC1jbGlwQm91bmRzLnRvcCk7CiAgICAgICAgICAgICAgICAgICAgIHBvcnQgPSBuUG9y
dC5xZFBvcnQucG9ydDsKQEAgLTQ5Nyw3ICs0OTcsNyBAQCBzdGF0aWMgVUludDMyIFFEUGl4ZWxG
b3JtYXRGcm9tQ0dCaXRtYXBJCiAKICAgICAgICAgICAgICAgICAvLyBTb21lIHBsdWdpbnMgZG8g
dGhlaXIgb3duIEJlZ2luVXBkYXRlL0VuZFVwZGF0ZS4KICAgICAgICAgICAgICAgICAvLyBGb3Ig
dGhvc2UsIHdlIG11c3QgbWFrZSBzdXJlIHRoYXQgdGhlIHVwZGF0ZSByZWdpb24gY29udGFpbnMg
dGhlIGFyZWEgd2Ugd2FudCB0byBkcmF3LgotICAgICAgICAgICAgICAgIGlmIChvZmZTY3JlZW5D
b250ZXh0KQorICAgICAgICAgICAgICAgIGlmIChpc09mZnNjcmVlbkNvbnRleHQpCiAgICAgICAg
ICAgICAgICAgICAgIE9mZnNldFJnbihjbGlwUmVnaW9uLCBjbGlwQm91bmRzLmxlZnQsIGNsaXBC
b3VuZHMudG9wKTsKICAgICAgICAgICAgICAgICBJbnZhbFdpbmRvd1Jnbih3aW5kb3dSZWYsIGNs
aXBSZWdpb24pOwogICAgICAgICAgICAgfQpJbmRleDogV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjAxNjgpCisrKyBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEyODAsNyArMTI4MCw2IEBACiAJ
CTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlz
YSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4MzIwODkw
MkIwRjAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAi
V2ViS2l0IiAqLzsKLQkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDIuNCI7CiAJCQlo
YXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmds
aXNoLApAQCAtMTI5NSw3ICsxMjk0LDYgQEAKIAkJCXByb2R1Y3RSZWZHcm91cCA9IDAzNDc2OERG
RkYzOEE1MDQxMURCOUM4QiAvKiBQcm9kdWN0cyAqLzsKIAkJCXByb2plY3REaXJQYXRoID0gIiI7
CiAJCQlwcm9qZWN0Um9vdCA9ICIiOwotCQkJc2hvdWxkQ2hlY2tDb21wYXRpYmlsaXR5ID0gMTsK
IAkJCXRhcmdldHMgPSAoCiAJCQkJOTM5ODEwMEEwODI0QkYwMTAwOERGMDM4IC8qIFdlYktpdCAq
LywKIAkJCSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13824</attachid>
            <date>2007-03-26 19:23:38 -0700</date>
            <delta_ts>2007-03-28 07:54:48 -0700</delta_ts>
            <desc>Does the right thing with bitmaps that have kCGBitmapByteOrderDefault</desc>
            <filename>webkit-bug13026.patch</filename>
            <type>text/plain</type>
            <size>2628</size>
            <attacher name="Bruce Q. Hammond">bruceq</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMjA1MDEpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTggQEAKKzIwMDctMDMtMjYgIEJydWNlIFEgSGFtbW9uZCAgPHNldCBFTUFJTF9BRERS
RVNTIGVudmlyb25tZW50IHZhcmlhYmxlPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICBUaGlzIGFkZHJlc3NlcyBCdWcgMTMwMjY6IGluY29tcGxldGUg
cmVuZGVyIG9mIG1lbnUKKyAgICAgICAgIChhc3NlcnRpb24gZmFpbGluZyBpbiAtW1dlYkJhc2VO
ZXRzY2FwZVBsdWdpblZpZXcKKyAgICAgICAgIHNhdmVBbmRTZXROZXdQb3J0U3RhdGVGb3JVcGRh
dGU6XSkKKworICAgICAgICAgUURQaXhlbEZvcm1hdEZyb21DR0JpdG1hcEluZm8gd2lsbCBub3cg
ZG8gdGhlIHJpZ2h0IHRoaW5nCisgICAgICAgICB3aXRoIGJpdG1hcHMgdGhhdCBoYXZlIGJ5dGUg
b3JkZXIgb2Yga0NHQml0bWFwQnl0ZU9yZGVyRGVmYXVsdC4KKworICAgICAgICAqIFBsdWdpbnMv
V2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKFFEUGl4ZWxGb3JtYXRGcm9t
Q0dCaXRtYXBJbmZvKToKKyAgICAgICAgKC1bV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldyBzYXZl
QW5kU2V0TmV3UG9ydFN0YXRlRm9yVXBkYXRlOl0pOgorCiAyMDA3LTAzLTI2ICBKb2huIFN1bGxp
dmFuICA8c3VsbGl2YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSGFy
cmlzb24KSW5kZXg6IFdlYktpdC9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5t
bQkocmV2aXNpb24gMjA1MDApCisrKyBXZWJLaXQvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNjksNyArMjY5LDE0IEBAIHN0YXRpYyBVSW50
MzIgUURQaXhlbEZvcm1hdEZyb21DR0JpdG1hcEkKICAgICBVSW50MzIgY2dCeXRlT3JkZXIgPSBi
aXRtYXBJbmZvICYga0NHQml0bWFwQnl0ZU9yZGVyTWFzazsKICAgICBzd2l0Y2ggKGNnQnl0ZU9y
ZGVyKSB7CiAgICAgY2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXJEZWZhdWx0OgotICAgICAgICByZXR1
cm4gMDsKKyAgICB7CisgICAgICAgIFVJbnQzMiBmb3JtYXQ7CisgICAgICAgIGlmIChPU0hvc3RC
eXRlT3JkZXIoKSA9PSBPU0JpZ0VuZGlhbikKKyAgICAgICAgICAgIGZvcm1hdCA9IGszMkFSR0JQ
aXhlbEZvcm1hdDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZm9ybWF0ID0gazMyQkdSQVBp
eGVsRm9ybWF0OworICAgICAgICByZXR1cm4gZm9ybWF0OworICAgIH0KICAgICBjYXNlIGtDR0Jp
dG1hcEJ5dGVPcmRlcjE2TGl0dGxlOgogICAgICAgICByZXR1cm4gazE2TEU1NTVQaXhlbEZvcm1h
dDsKICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlcjMyTGl0dGxlOgpAQCAtNDA5LDE1ICs0MTYs
NiBAQCBzdGF0aWMgVUludDMyIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJCiAgICAgICAgICAg
ICAgICAgb2Zmc2NyZWVuQm91bmRzLnJpZ2h0ID0gQ0dCaXRtYXBDb250ZXh0R2V0V2lkdGgoY3Vy
cmVudENvbnRleHQpOwogICAgICAgICAgICAgICAgIG9mZnNjcmVlbkJvdW5kcy5ib3R0b20gPSBD
R0JpdG1hcENvbnRleHRHZXRIZWlnaHQoY3VycmVudENvbnRleHQpOwogICAgICAgICAgICAgICAg
IFVJbnQzMiBwaXhlbEZvcm1hdCA9IFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJbmZvKGNvbnRl
eHRCaXRtYXBJbmZvKTsKLSAgICAgICAgICAgICAgICBpZiAocGl4ZWxGb3JtYXQgPT0gMCkgewot
ICAgICAgICAgICAgICAgICAgICAvLyBOb3QgYSB2YWxpZCBwaXhlbCBmb3JtYXQgLSBkb24ndCBy
ZW5kZXIgYXQgYWxsLgotICAgICAgICAgICAgICAgICAgICBvZmZzY3JlZW5Cb3VuZHMudG9wID0g
MDsKLSAgICAgICAgICAgICAgICAgICAgb2Zmc2NyZWVuQm91bmRzLmxlZnQgPSAwOwotICAgICAg
ICAgICAgICAgICAgICBvZmZzY3JlZW5Cb3VuZHMucmlnaHQgPSAwOwotICAgICAgICAgICAgICAg
ICAgICBvZmZzY3JlZW5Cb3VuZHMuYm90dG9tID0gMDsKLSAgICAgICAgICAgICAgICAgICAgcm93
Qnl0ZXMgPSAwOwotICAgICAgICAgICAgICAgICAgICBwaXhlbEZvcm1hdCA9IGszMkJHUkFQaXhl
bEZvcm1hdDsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgdm9pZCogYml0cyA9
IENHQml0bWFwQ29udGV4dEdldERhdGEoY3VycmVudENvbnRleHQpOwogICAgICAgICAgICAgICAg
IFFERXJyIGVyciA9IE5ld0dXb3JsZEZyb21QdHIoJnBPZmZTY3JlZW5HV29ybGQsIHBpeGVsRm9y
bWF0LCAmb2Zmc2NyZWVuQm91bmRzLCAwLCAwLCAwLCBzdGF0aWNfY2FzdDxjaGFyKj4oYml0cyks
IHJvd0J5dGVzKTsKICAgICAgICAgICAgICAgICBBU1NFUlQocE9mZlNjcmVlbkdXb3JsZCAmJiAh
ZXJyKTsK
</data>
<flag name="review"
          id="5526"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13828</attachid>
            <date>2007-03-27 07:52:43 -0700</date>
            <delta_ts>2007-03-27 07:52:43 -0700</delta_ts>
            <desc>Stack trace</desc>
            <filename>bug-13026-stack.txt</filename>
            <type>text/plain</type>
            <size>8162</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">RXhjZXB0aW9uOiAgRVhDX0JBRF9BQ0NFU1MgKDB4MDAwMSkKQ29kZXM6ICAgICAgS0VSTl9JTlZB
TElEX0FERFJFU1MgKDB4MDAwMSkgYXQgMHhiYmFkYmVlZgoKVGhyZWFkIDAgQ3Jhc2hlZDoKMCAg
IGNvbS5hcHBsZS5XZWJLaXQgICAgICAgICAgICAgICAJMHgwMDMyNjQzMCAtW1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcgc2F2ZUFuZFNldE5ld1BvcnRTdGF0ZUZvclVwZGF0ZTpdICsgMzE1Mgox
ICAgY29tLmFwcGxlLldlYktpdCAgICAgICAgICAgICAgIAkweDAwMzFhY2U4IC1bV2ViQmFzZU5l
dHNjYXBlUGx1Z2luVmlldyBzZW5kRXZlbnQ6XSArIDg1NgoyICAgY29tLmFwcGxlLldlYktpdCAg
ICAgICAgICAgICAgIAkweDAwMzFiMGU0IC1bV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldyBzZW5k
VXBkYXRlRXZlbnRdICsgMTg4CjMgICBjb20uYXBwbGUuV2ViS2l0ICAgICAgICAgICAgICAgCTB4
MDAzMjcwNzAgLVtXZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3IGRyYXdSZWN0Ol0gKyAxNjAKNCAg
IGNvbS5hcHBsZS5BcHBLaXQgICAgICAgICAgICAgICAJMHg5MzdlNzg1OCAtW05TVmlldyBfZHJh
d1JlY3Q6Y2xpcDpdICsgMjEyOAo1ICAgY29tLmFwcGxlLkFwcEtpdCAgICAgICAgICAgICAgIAkw
eDkzN2U2NWZjIC1bTlNWaWV3IF9yZWN1cnNpdmVEaXNwbGF5UmVjdElmTmVlZGVkSWdub3JpbmdP
cGFjaXR5OmlzVmlzaWJsZVJlY3Q6cmVjdElzVmlzaWJsZVJlY3RGb3JWaWV3OnRvcFZpZXc6XSAr
IDczNgo2ICAgY29tLmFwcGxlLkFwcEtpdCAgICAgICAgICAgICAgIAkweDkzN2UwMDU0IC1bTlNW
aWV3IF9kaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTppc1Zpc2libGVSZWN0OnJlY3RJc1Zpc2li
bGVSZWN0Rm9yVmlldzpdICsgMzg0CjcgICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAgICAgICAg
CTB4OTM4YmZmN2MgLVtOU1ZpZXcgZGlzcGxheUlmTmVlZGVkSW5SZWN0SWdub3JpbmdPcGFjaXR5
Ol0gKyAyNjQKOCAgIGNvbS5hcHBsZS5BcHBLaXQgICAgICAgICAgICAgICAJMHg5MzhiZmU2MCAt
W05TVmlldyBkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTpdICsgMTA0CjkgICBjb20uYXBwbGUu
V2ViQ29yZSAgICAgICAgICAgICAgCTB4MDEyODMwMTQgV2ViQ29yZTo6V2lkZ2V0OjpwYWludChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBXZWJDb3JlOjpJbnRSZWN0IGNvbnN0JikgKyA1MTYg
KFdpZGdldE1hYy5tbToyNzApCjEwICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAgCTB4
MDEzMzYwMzAgV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpwYWludChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OlBhaW50SW5mbyYsIGludCwgaW50KSArIDg4OCAoUmVuZGVyV2lkZ2V0LmNwcDoxOTYpCjEx
ICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAgCTB4MDEzNDJlZGMgV2ViQ29yZTo6SW5s
aW5lQm94OjpwYWludChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGludCwgaW50
KSArIDUxNiAoSW5saW5lQm94LmNwcDoxNDcpCjEyICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAg
ICAgICAgCTB4MDEzNDI2MTAgV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6cGFpbnQoV2ViQ29yZTo6
UmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBpbnQsIGludCkgKyA5OTYgKElubGluZUZsb3dCb3gu
Y3BwOjU4MCkKMTMgIGNvbS5hcHBsZS5XZWJDb3JlICAgICAgICAgICAgICAJMHgwMTM0NTI4OCBX
ZWJDb3JlOjpSb290SW5saW5lQm94OjpwYWludChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlBhaW50
SW5mbyYsIGludCwgaW50KSArIDY4IChSb290SW5saW5lQm94LmNwcDoxNjMpCjE0ICBjb20uYXBw
bGUuV2ViQ29yZSAgICAgICAgICAgICAgCTB4MDExYjViOTQgV2ViQ29yZTo6UmVuZGVyRmxvdzo6
cGFpbnRMaW5lcyhXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGludCwgaW50KSAr
IDE3OTYgKFJlbmRlckZsb3cuY3BwOjM3MykKMTUgIGNvbS5hcHBsZS5XZWJDb3JlICAgICAgICAg
ICAgICAJMHgwMTE4MjFiOCBXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRDb250ZW50cyhXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGludCwgaW50KSArIDIzMiAoUmVuZGVyQmxv
Y2suY3BwOjE0MDApCjE2ICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAgCTB4MDExOGY4
NDggV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KFdlYkNvcmU6OlJlbmRlck9iamVj
dDo6UGFpbnRJbmZvJiwgaW50LCBpbnQpICsgNDgwIChSZW5kZXJCbG9jay5jcHA6MTQ4OSkKMTcg
IGNvbS5hcHBsZS5XZWJDb3JlICAgICAgICAgICAgICAJMHgwMTE4MTU1NCBXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6cGFpbnQoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBpbnQsIGlu
dCkgKyA2NzIgKFJlbmRlckJsb2NrLmNwcDoxMzI1KQoxOCAgY29tLmFwcGxlLldlYkNvcmUgICAg
ICAgICAgICAgIAkweDAxMTgxZTU0IFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludENoaWxkcmVu
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgaW50LCBpbnQpICsgODA0IChSZW5k
ZXJCbG9jay5jcHA6MTQyOSkKMTkgIGNvbS5hcHBsZS5XZWJDb3JlICAgICAgICAgICAgICAJMHgw
MTE4MjFkMCBXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRDb250ZW50cyhXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OlBhaW50SW5mbyYsIGludCwgaW50KSArIDI1NiAoUmVuZGVyQmxvY2suY3BwOjE0
MDMpCjIwICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAgCTB4MDExOGY4NDggV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UGFpbnRJ
bmZvJiwgaW50LCBpbnQpICsgNDgwIChSZW5kZXJCbG9jay5jcHA6MTQ4OSkKMjEgIGNvbS5hcHBs
ZS5XZWJDb3JlICAgICAgICAgICAgICAJMHgwMTE4MTU1NCBXZWJDb3JlOjpSZW5kZXJCbG9jazo6
cGFpbnQoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBpbnQsIGludCkgKyA2NzIg
KFJlbmRlckJsb2NrLmNwcDoxMzI1KQoyMiAgY29tLmFwcGxlLldlYkNvcmUgICAgICAgICAgICAg
IAkweDAxMTgxZTU0IFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludENoaWxkcmVuKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgaW50LCBpbnQpICsgODA0IChSZW5kZXJCbG9jay5j
cHA6MTQyOSkKMjMgIGNvbS5hcHBsZS5XZWJDb3JlICAgICAgICAgICAgICAJMHgwMTE4MjFkMCBX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRDb250ZW50cyhXZWJDb3JlOjpSZW5kZXJPYmplY3Q6
OlBhaW50SW5mbyYsIGludCwgaW50KSArIDI1NiAoUmVuZGVyQmxvY2suY3BwOjE0MDMpCjI0ICBj
b20uYXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAgCTB4MDExOGY4NDggV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OnBhaW50T2JqZWN0KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgaW50
LCBpbnQpICsgNDgwIChSZW5kZXJCbG9jay5jcHA6MTQ4OSkKMjUgIGNvbS5hcHBsZS5XZWJDb3Jl
ICAgICAgICAgICAgICAJMHgwMTE4MTU1NCBXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnQoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBpbnQsIGludCkgKyA2NzIgKFJlbmRlckJs
b2NrLmNwcDoxMzI1KQoyNiAgY29tLmFwcGxlLldlYkNvcmUgICAgICAgICAgICAgIAkweDAxMWM3
ZjQ0IFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyKFdlYkNvcmU6OlJlbmRlckxheWVy
KiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgV2ViQ29yZTo6SW50UmVjdCBjb25zdCYsIGJv
b2wsIFdlYkNvcmU6OlBhaW50UmVzdHJpY3Rpb24sIFdlYkNvcmU6OlJlbmRlck9iamVjdCopICsg
MTcwNCAoUmVuZGVyTGF5ZXIuY3BwOjE0ODIpCjI3ICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAg
ICAgICAgCTB4MDExYzgxMzAgV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBXZWJDb3JlOjpJbnRS
ZWN0IGNvbnN0JiwgYm9vbCwgV2ViQ29yZTo6UGFpbnRSZXN0cmljdGlvbiwgV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0KikgKyAyMTk2IChSZW5kZXJMYXllci5jcHA6MTUwNSkKMjggIGNvbS5hcHBsZS5X
ZWJDb3JlICAgICAgICAgICAgICAJMHgwMTFjODEzMCBXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFp
bnRMYXllcihXZWJDb3JlOjpSZW5kZXJMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCos
IFdlYkNvcmU6OkludFJlY3QgY29uc3QmLCBib29sLCBXZWJDb3JlOjpQYWludFJlc3RyaWN0aW9u
LCBXZWJDb3JlOjpSZW5kZXJPYmplY3QqKSArIDIxOTYgKFJlbmRlckxheWVyLmNwcDoxNTA1KQoy
OSAgY29tLmFwcGxlLldlYkNvcmUgICAgICAgICAgICAgIAkweDAxMWM4MjQwIFdlYkNvcmU6OlJl
bmRlckxheWVyOjpwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBXZWJDb3JlOjpJbnRS
ZWN0IGNvbnN0JiwgV2ViQ29yZTo6UGFpbnRSZXN0cmljdGlvbiwgV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0KikgKyA3MiAoUmVuZGVyTGF5ZXIuY3BwOjEzNzQpCjMwICBjb20uYXBwbGUuV2ViQ29yZSAg
ICAgICAgICAgICAgCTB4MDEwZWRmODAgV2ViQ29yZTo6RnJhbWU6OnBhaW50KFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCosIFdlYkNvcmU6OkludFJlY3QgY29uc3QmKSArIDgwMCAoRnJhbWUuY3Bw
OjEzMDYpCjMxICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAgCTB4MDExMTllYTggLVtX
ZWJDb3JlRnJhbWVCcmlkZ2UgZHJhd1JlY3Q6XSArIDM3MiAoV2ViQ29yZUZyYW1lQnJpZGdlLm1t
OjQxMykKMzIgIGNvbS5hcHBsZS5XZWJLaXQgICAgICAgICAgICAgICAJMHgwMDM0Zjc4NCAtW1dl
YkhUTUxWaWV3IGRyYXdTaW5nbGVSZWN0Ol0gKyA3NjAgKFdlYkhUTUxWaWV3Lm1tOjI3NTkpCjMz
ICBjb20uYXBwbGUuV2ViS2l0ICAgICAgICAgICAgICAgCTB4MDAzNGZiZWMgLVtXZWJIVE1MVmll
dyBkcmF3UmVjdDpdICsgNTYwIChXZWJIVE1MVmlldy5tbToyODA5KQozNCAgY29tLmFwcGxlLkFw
cEtpdCAgICAgICAgICAgICAgIAkweDkzN2U3ODU4IC1bTlNWaWV3IF9kcmF3UmVjdDpjbGlwOl0g
KyAyMTI4CjM1ICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAgICAgICAgCTB4OTM3ZTY1ZmMgLVtO
U1ZpZXcgX3JlY3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVkZWRJZ25vcmluZ09wYWNpdHk6aXNWaXNp
YmxlUmVjdDpyZWN0SXNWaXNpYmxlUmVjdEZvclZpZXc6dG9wVmlldzpdICsgNzM2CjM2ICBjb20u
YXBwbGUuV2ViS2l0ICAgICAgICAgICAgICAgCTB4MDAzNDZjODAgLVtXZWJIVE1MVmlldyhXZWJQ
cml2YXRlKSBfcmVjdXJzaXZlRGlzcGxheVJlY3RJZk5lZWRlZElnbm9yaW5nT3BhY2l0eTppc1Zp
c2libGVSZWN0OnJlY3RJc1Zpc2libGVSZWN0Rm9yVmlldzp0b3BWaWV3Ol0gKyA1MjAgKFdlYkhU
TUxWaWV3Lm1tOjg1MCkKMzcgIGNvbS5hcHBsZS5BcHBLaXQgICAgICAgICAgICAgICAJMHg5Mzdl
NjlhOCAtW05TVmlldyBfcmVjdXJzaXZlRGlzcGxheVJlY3RJZk5lZWRlZElnbm9yaW5nT3BhY2l0
eTppc1Zpc2libGVSZWN0OnJlY3RJc1Zpc2libGVSZWN0Rm9yVmlldzp0b3BWaWV3Ol0gKyAxNjc2
CjM4ICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAgICAgICAgCTB4OTM3ZTY5YTggLVtOU1ZpZXcg
X3JlY3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVkZWRJZ25vcmluZ09wYWNpdHk6aXNWaXNpYmxlUmVj
dDpyZWN0SXNWaXNpYmxlUmVjdEZvclZpZXc6dG9wVmlldzpdICsgMTY3NgozOSAgY29tLmFwcGxl
LkFwcEtpdCAgICAgICAgICAgICAgIAkweDkzN2U2OWE4IC1bTlNWaWV3IF9yZWN1cnNpdmVEaXNw
bGF5UmVjdElmTmVlZGVkSWdub3JpbmdPcGFjaXR5OmlzVmlzaWJsZVJlY3Q6cmVjdElzVmlzaWJs
ZVJlY3RGb3JWaWV3OnRvcFZpZXc6XSArIDE2NzYKNDAgIGNvbS5hcHBsZS5BcHBLaXQgICAgICAg
ICAgICAgICAJMHg5MzdlNjlhOCAtW05TVmlldyBfcmVjdXJzaXZlRGlzcGxheVJlY3RJZk5lZWRl
ZElnbm9yaW5nT3BhY2l0eTppc1Zpc2libGVSZWN0OnJlY3RJc1Zpc2libGVSZWN0Rm9yVmlldzp0
b3BWaWV3Ol0gKyAxNjc2CjQxICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAgICAgICAgCTB4OTM3
ZTY5YTggLVtOU1ZpZXcgX3JlY3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVkZWRJZ25vcmluZ09wYWNp
dHk6aXNWaXNpYmxlUmVjdDpyZWN0SXNWaXNpYmxlUmVjdEZvclZpZXc6dG9wVmlldzpdICsgMTY3
Ngo0MiAgY29tLmFwcGxlLkFwcEtpdCAgICAgICAgICAgICAgIAkweDkzN2U2OWE4IC1bTlNWaWV3
IF9yZWN1cnNpdmVEaXNwbGF5UmVjdElmTmVlZGVkSWdub3JpbmdPcGFjaXR5OmlzVmlzaWJsZVJl
Y3Q6cmVjdElzVmlzaWJsZVJlY3RGb3JWaWV3OnRvcFZpZXc6XSArIDE2NzYKNDMgIGNvbS5hcHBs
ZS5BcHBLaXQgICAgICAgICAgICAgICAJMHg5MzdlNjlhOCAtW05TVmlldyBfcmVjdXJzaXZlRGlz
cGxheVJlY3RJZk5lZWRlZElnbm9yaW5nT3BhY2l0eTppc1Zpc2libGVSZWN0OnJlY3RJc1Zpc2li
bGVSZWN0Rm9yVmlldzp0b3BWaWV3Ol0gKyAxNjc2CjQ0ICBjb20uYXBwbGUuQXBwS2l0ICAgICAg
ICAgICAgICAgCTB4OTM4MDcwNDQgLVtOU1RoZW1lRnJhbWUgX3JlY3Vyc2l2ZURpc3BsYXlSZWN0
SWZOZWVkZWRJZ25vcmluZ09wYWNpdHk6aXNWaXNpYmxlUmVjdDpyZWN0SXNWaXNpYmxlUmVjdEZv
clZpZXc6dG9wVmlldzpdICsgMTkyCjQ1ICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAgICAgICAg
CTB4OTM3ZTAwNTQgLVtOU1ZpZXcgX2Rpc3BsYXlSZWN0SWdub3JpbmdPcGFjaXR5OmlzVmlzaWJs
ZVJlY3Q6cmVjdElzVmlzaWJsZVJlY3RGb3JWaWV3Ol0gKyAzODQKNDYgIGNvbS5hcHBsZS5BcHBL
aXQgICAgICAgICAgICAgICAJMHg5MzdkNTM0OCAtW05TVmlldyBkaXNwbGF5SWZOZWVkZWRdICsg
MjQ4CjQ3ICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAgICAgICAgCTB4OTM3ZDUxYjggLVtOU1dp
bmRvdyBkaXNwbGF5SWZOZWVkZWRdICsgMTgwCjQ4ICBjb20uYXBwbGUuU2FmYXJpICAgICAgICAg
ICAgICAgCTB4MDAwMWE1ZjggMHgxMDAwICsgMTAzOTI4CjQ5ICBjb20uYXBwbGUuQXBwS2l0ICAg
ICAgICAgICAgICAgCTB4OTM3ZDUwNjQgX2hhbmRsZVdpbmRvd05lZWRzRGlzcGxheSArIDIwMAo1
MCAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgIAkweDkwN2RlNzZjIF9fQ0ZSdW5Mb29w
RG9PYnNlcnZlcnMgKyAzNTIKNTEgIGNvbS5hcHBsZS5Db3JlRm91bmRhdGlvbiAgICAgICAJMHg5
MDdkZWEwYyBfX0NGUnVuTG9vcFJ1biArIDQyMAo1MiAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9u
ICAgICAgIAkweDkwN2RlNGFjIENGUnVuTG9vcFJ1blNwZWNpZmljICsgMjY4CjUzICBjb20uYXBw
bGUuSElUb29sYm94ICAgICAgICAgICAgCTB4OTMyOWJiMjAgUnVuQ3VycmVudEV2ZW50TG9vcElu
TW9kZSArIDI2NAo1NCAgY29tLmFwcGxlLkhJVG9vbGJveCAgICAgICAgICAgIAkweDkzMjliMTJj
IFJlY2VpdmVOZXh0RXZlbnRDb21tb24gKyAyNDQKNTUgIGNvbS5hcHBsZS5ISVRvb2xib3ggICAg
ICAgICAgICAJMHg5MzI5YjAyMCBCbG9ja1VudGlsTmV4dEV2ZW50TWF0Y2hpbmdMaXN0SW5Nb2Rl
ICsgOTYKNTYgIGNvbS5hcHBsZS5BcHBLaXQgICAgICAgICAgICAgICAJMHg5MzdhMWFlNCBfRFBT
TmV4dEV2ZW50ICsgMzg0CjU3ICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAgICAgICAgCTB4OTM3
YTE3YTggLVtOU0FwcGxpY2F0aW9uIG5leHRFdmVudE1hdGNoaW5nTWFzazp1bnRpbERhdGU6aW5N
b2RlOmRlcXVldWU6XSArIDExNgo1OCAgY29tLmFwcGxlLlNhZmFyaSAgICAgICAgICAgICAgIAkw
eDAwMDA2NzQwIDB4MTAwMCArIDIyMzM2CjU5ICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAgICAg
ICAgCTB4OTM3OWRjZWMgLVtOU0FwcGxpY2F0aW9uIHJ1bl0gKyA0NzIKNjAgIGNvbS5hcHBsZS5B
cHBLaXQgICAgICAgICAgICAgICAJMHg5Mzg4ZTg3YyBOU0FwcGxpY2F0aW9uTWFpbiArIDQ1Mgo2
MSAgY29tLmFwcGxlLlNhZmFyaSAgICAgICAgICAgICAgIAkweDAwMDVjNzdjIDB4MTAwMCArIDM3
NDY1Mgo2MiAgY29tLmFwcGxlLlNhZmFyaSAgICAgICAgICAgICAgIAkweDAwMDVjNjI0IDB4MTAw
MCArIDM3NDMwOAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13843</attachid>
            <date>2007-03-28 07:54:48 -0700</date>
            <delta_ts>2007-03-28 09:31:15 -0700</delta_ts>
            <desc>don&apos;t use offscreen code path if data pointer is 0</desc>
            <filename>OffscreenGWorldPatch.txt</filename>
            <type>text/plain</type>
            <size>18692</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMjA1NTIpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMzMgQEAKKzIwMDctMDMtMjggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4IGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDI2CisgICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzUwNjEwMjY+CisgICAgICAgICAgaW5jb21wbGV0ZSByZW5kZXIgb2YgbWVu
dSAoYXNzZXJ0aW9uIGZhaWxpbmcgaW4gLVtXZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3CisgICAg
ICAgICAgc2F2ZUFuZFNldE5ld1BvcnRTdGF0ZUZvclVwZGF0ZTpdKQorCisgICAgICAgIEEgZmV3
IGZpeGVzOgorCisgICAgICAgICAgICAxKSBEb24ndCB0cnkgdG8gdXNlIHRoZSBvZmZzY3JlZW4g
Y29kZSBwYXRoIGlmIEdHQml0bWFwQ29udGV4dEdldERhdGEgcmV0dXJucyAwLgorICAgICAgICAg
ICAgMikgSGFuZGxlIGtDR0JpdG1hcEJ5dGVPcmRlckRlZmF1bHQgd2hlbiBjb21wdXRpbmcgdGhl
IFFEIHBpeGVsIGZvcm1hdC4KKyAgICAgICAgICAgIDMpIERlc3Ryb3kgdGhlIEdXb3JsZCBpbiBh
IHNpbXBsZXIgd2F5IGJ5IHN0b3JpbmcgdGhlIHBvaW50ZXIgaW4gdGhlIHBvcnQgc3RhdGUKKyAg
ICAgICAgICAgICAgIChhbHRob3VnaCB0aGF0IGhhcyB0byBiZSByZXdvcmtlZCBsYXRlciB0byBm
aXggYW5vdGhlciBidWcpLgorCisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tOgorICAgICAgICAoZ2V0UURQaXhlbEZvcm1hdEZvckJpdG1hcENvbnRleHQpOiBS
ZXBsYWNlZCBRRFBpeGVsRm9ybWF0RnJvbUNHQml0bWFwSW5mby4gVXNlZCB0aGUKKyAgICAgICAg
ImdldCIgcHJlZml4IHNvIHdlIGRvbid0IGludHJ1ZGUgb24gdGhlIFFEIG5hbWVzcGFjZS4gQWRk
ZWQgY29kZSB0byBoYW5kbGUgdGhlCisgICAgICAgIGtDR0JpdG1hcEJ5dGVPcmRlckRlZmF1bHQg
Y2FzZSwgYWx0aG91Z2ggSSdtIG5vdCBzdXJlIGl0IHdpbGwgcmVhbGx5IGNvbWUgdXAgaW4KKyAg
ICAgICAgcHJhY3RpY2UgLS0gaXQgd2Fzbid0IHJlYWxseSBjb21pbmcgdXAgaW4gdGhlIGJ1Z2d5
IGNhc2UuCisgICAgICAgIChnZXROUFJlY3QpOiBBZGRlZC4gVXNlZCB0byBtYWtlIHRoZSBjb2Rl
IGJlbG93IHNpbXBsZXIgaW4gYSBjb3VwbGUgY2FzZXMuCisgICAgICAgICgtW1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcgc2F2ZUFuZFNldE5ld1BvcnRTdGF0ZUZvclVwZGF0ZTpdKTogVXNlIGdl
dE5QUmVjdCB0bworICAgICAgICBzdHJlYW1saW5lIGNvZGUuIFVzZSBHZXRHV29ybGQgdG8gc2F2
ZSB0aGUgcG9ydCBzaW5jZSB3ZSB1c2UgU2V0R1dvcmxkIHRvIHJlc3RvcmUKKyAgICAgICAgaXQg
bGF0ZXIuIFVzZSB0aGUgbmV3IG9mZnNjcmVlbkdXb3JsZCBmaWVsZCBpbiB0aGUgcG9ydCBzdGF0
ZSB0byBzdG9yZSB0aGUKKyAgICAgICAgR1dvcmxkIHdlIGNyZWF0ZS4gRG9uJ3QgdHJlYXRlIHRo
ZSBDR0JpdG1hcENvbnRleHQgYXMgYW4gb2Zmc2NyZWVuIGJpdG1hcCBpZiBpdAorICAgICAgICBo
YXMgYSBkYXRhIHBvaW50ZXIgb2YgMC4KKyAgICAgICAgKC1bV2ViQmFzZU5ldHNjYXBlUGx1Z2lu
VmlldyByZXN0b3JlUG9ydFN0YXRlOl0pOiBEZXN0cm95IHRoZSBHV29ybGQgaW4gYSBzaW1wbGVy
CisgICAgICAgIHdheSBiZWNhdXNlIGl0J3Mgc3RvcmVkIGluIHRoZSBwb3J0IHN0YXRlIHN0cnVj
dCBub3cuCisKIDIwMDctMDMtMjcgIEpvaG4gU3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltCkluZGV4OiBXZWJLaXQvUGx1Z2lucy9XZWJCYXNl
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9QbHVnaW5zL1dlYkJh
c2VOZXRzY2FwZVBsdWdpblZpZXcubW0JKHJldmlzaW9uIDIwNTQ2KQorKysgV2ViS2l0L1BsdWdp
bnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTksMTAg
Kzk5LDEyIEBAIHR5cGVkZWYgc3RydWN0IE9wYXF1ZVBvcnRTdGF0ZSogUG9ydFN0YXQKIAogdHlw
ZWRlZiBzdHJ1Y3QgewogICAgIEdyYWZQdHIgb2xkUG9ydDsKKyAgICBHREhhbmRsZSBvbGREZXZp
Y2U7CiAgICAgUG9pbnQgb2xkT3JpZ2luOwogICAgIFJnbkhhbmRsZSBvbGRDbGlwUmVnaW9uOwog
ICAgIFJnbkhhbmRsZSBvbGRWaXNpYmxlUmVnaW9uOwogICAgIFJnbkhhbmRsZSBjbGlwUmVnaW9u
OworICAgIEdXb3JsZFB0ciBvZmZzY3JlZW5HV29ybGQ7CiAgICAgQk9PTCBmb3JVcGRhdGU7CiB9
IFBvcnRTdGF0ZV9RRDsKIApAQCAtMjM3LDYgKzIzOSw3IEBAIHN0YXRpYyBPU1N0YXR1cyBUU01F
dmVudEhhbmRsZXIoRXZlbnRIYW4KIH0KIAogI2lmbmRlZiBOUF9OT19RVUlDS0RSQVcKKwogLy8g
VGhlIFdpbmRvd1JlZiBjcmVhdGVkIGJ5IC1bTlNXaW5kb3cgd2luZG93UmVmXSBoYXMgYSBRdWlj
a0RyYXcgR3JhZlBvcnQgdGhhdCBjb3ZlcnMgCiAvLyB0aGUgZW50aXJlIHdpbmRvdyBmcmFtZSAo
b3Igc3RydWN0dXJlIHJlZ2lvbiB0byB1c2UgdGhlIENhcmJvbiB0ZXJtKSByYXRoZXIgdGhlbiBq
dXN0IHRoZSB3aW5kb3cgY29udGVudC4KIC8vIFdlIGNhbiByZW1vdmUgdGhpcyB3aGVuIDxyZGFy
Oi8vcHJvYmxlbS80MjAxMDk5PiBpcyBmaXhlZC4KQEAgLTI2MSwzMCArMjY0LDUxIEBAIHN0YXRp
YyBPU1N0YXR1cyBUU01FdmVudEhhbmRsZXIoRXZlbnRIYW4KICAgICAKICAgICBTZXRQb3J0KG9s
ZFBvcnQpOwogfQotI2VuZGlmCiAKLSNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFXCi1zdGF0aWMgVUlu
dDMyIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJbmZvKENHQml0bWFwSW5mbyBiaXRtYXBJbmZv
KQorc3RhdGljIFVJbnQzMiBnZXRRRFBpeGVsRm9ybWF0Rm9yQml0bWFwQ29udGV4dChDR0NvbnRl
eHRSZWYgY29udGV4dCkKIHsKLSAgICBVSW50MzIgY2dCeXRlT3JkZXIgPSBiaXRtYXBJbmZvICYg
a0NHQml0bWFwQnl0ZU9yZGVyTWFzazsKLSAgICBzd2l0Y2ggKGNnQnl0ZU9yZGVyKSB7Ci0gICAg
Y2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXJEZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKLSAgICBj
YXNlIGtDR0JpdG1hcEJ5dGVPcmRlcjE2TGl0dGxlOgotICAgICAgICByZXR1cm4gazE2TEU1NTVQ
aXhlbEZvcm1hdDsKLSAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlcjMyTGl0dGxlOgotICAgICAg
ICByZXR1cm4gazMyQkdSQVBpeGVsRm9ybWF0OwotICAgIGNhc2Uga0NHQml0bWFwQnl0ZU9yZGVy
MTZCaWc6Ci0gICAgICAgIHJldHVybiBrMTZCRTU1NVBpeGVsRm9ybWF0OwotICAgIGNhc2Uga0NH
Qml0bWFwQnl0ZU9yZGVyMzJCaWc6Ci0gICAgICAgIHJldHVybiBrMzJBUkdCUGl4ZWxGb3JtYXQ7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybiAwOworICAgIFVJbnQzMiBieXRlT3JkZXIgPSBDR0JpdG1hcENvbnRleHRHZXRCaXRtYXBJ
bmZvKGNvbnRleHQpICYga0NHQml0bWFwQnl0ZU9yZGVyTWFzazsKKyAgICBpZiAoYnl0ZU9yZGVy
ID09IGtDR0JpdG1hcEJ5dGVPcmRlckRlZmF1bHQpCisgICAgICAgIHN3aXRjaCAoQ0dCaXRtYXBD
b250ZXh0R2V0Qml0c1BlclBpeGVsKGNvbnRleHQpKSB7CisgICAgICAgICAgICBjYXNlIDE2Ogor
ICAgICAgICAgICAgICAgIGJ5dGVPcmRlciA9IGtDR0JpdG1hcEJ5dGVPcmRlcjE2SG9zdDsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMzI6CisgICAgICAgICAgICAg
ICAgYnl0ZU9yZGVyID0ga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0OworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgc3dpdGNoIChieXRlT3JkZXIpIHsKKyAgICAgICAgY2Fz
ZSBrQ0dCaXRtYXBCeXRlT3JkZXIxNkxpdHRsZToKKyAgICAgICAgICAgIHJldHVybiBrMTZMRTU1
NVBpeGVsRm9ybWF0OworICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlcjMyTGl0dGxlOgor
ICAgICAgICAgICAgcmV0dXJuIGszMkJHUkFQaXhlbEZvcm1hdDsKKyAgICAgICAgY2FzZSBrQ0dC
aXRtYXBCeXRlT3JkZXIxNkJpZzoKKyAgICAgICAgICAgIHJldHVybiBrMTZCRTU1NVBpeGVsRm9y
bWF0OworICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlcjMyQmlnOgorICAgICAgICAgICAg
cmV0dXJuIGszMkFSR0JQaXhlbEZvcm1hdDsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29u
c3QgQ0dSZWN0JiBjZ3IsIE5QUmVjdCYgbnByKQoreworICAgIG5wci50b3AgPSBzdGF0aWNfY2Fz
dDxzaG9ydD4oY2dyLm9yaWdpbi55KTsKKyAgICBucHIubGVmdCA9IHN0YXRpY19jYXN0PHNob3J0
PihjZ3Iub3JpZ2luLngpOworICAgIG5wci5ib3R0b20gPSBzdGF0aWNfY2FzdDxzaG9ydD4oQ0dS
ZWN0R2V0TWF4WShjZ3IpKTsKKyAgICBucHIucmlnaHQgPSBzdGF0aWNfY2FzdDxzaG9ydD4oQ0dS
ZWN0R2V0TWF4WChjZ3IpKTsKIH0KKwogI2VuZGlmCiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBnZXRO
UFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCit7CisgICAgbnByLnRvcCA9IHN0
YXRpY19jYXN0PHNob3J0Pihuci5vcmlnaW4ueSk7CisgICAgbnByLmxlZnQgPSBzdGF0aWNfY2Fz
dDxzaG9ydD4obnIub3JpZ2luLngpOworICAgIG5wci5ib3R0b20gPSBzdGF0aWNfY2FzdDxzaG9y
dD4oTlNNYXhZKG5yKSk7CisgICAgbnByLnJpZ2h0ID0gc3RhdGljX2Nhc3Q8c2hvcnQ+KE5TTWF4
WChucikpOworfQorCiAtIChQb3J0U3RhdGUpc2F2ZUFuZFNldE5ld1BvcnRTdGF0ZUZvclVwZGF0
ZTooQk9PTClmb3JVcGRhdGUKIHsKICAgICBBU1NFUlQoW3NlbGYgY3VycmVudFdpbmRvd10gIT0g
bmlsKTsKQEAgLTI5NSw3ICszMTksNyBAQCBzdGF0aWMgVUludDMyIFFEUGl4ZWxGb3JtYXRGcm9t
Q0dCaXRtYXBJCiAgICAgaWYgKGRyYXdpbmdNb2RlbCA9PSBOUERyYXdpbmdNb2RlbFF1aWNrRHJh
dykKICAgICAgICAgW3NlbGYgZml4V2luZG93UG9ydF07CiAjZW5kaWYKLSAgICAKKwogICAgIFdp
bmRvd1JlZiB3aW5kb3dSZWYgPSAoV2luZG93UmVmKVtbc2VsZiBjdXJyZW50V2luZG93XSB3aW5k
b3dSZWZdOwogICAgIEFTU0VSVCh3aW5kb3dSZWYpOwogICAgIApAQCAtMzQwLDYgKzM2NCw3IEBA
IHN0YXRpYyBVSW50MzIgUURQaXhlbEZvcm1hdEZyb21DR0JpdG1hcEkKICAgICAgICAgICAgIHx8
IFtOU0FwcCBpc0hpZGRlbl0KICAgICAgICAgICAgIHx8ICFbc2VsZiBzdXBlcnZpZXdzSGF2ZVN1
cGVydmlld3NdCiAgICAgICAgICAgICB8fCBbc2VsZiBpc0hpZGRlbk9ySGFzSGlkZGVuQW5jZXN0
b3JdKSB7CisKICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIHRyaWVzIHRvIGdpdmUgcGx1
Zy1pbnMgdGhlIHNhbWUgc2l6ZSB0aGV5IHdpbGwgZXZlbnR1YWxseSBoYXZlLgogICAgICAgICAv
LyBUaGUgc3BlY2lmaWVkV2lkdGggYW5kIHNwZWNpZmllZEhlaWdodCB2YXJpYWJsZXMgYXJlIHVz
ZWQgdG8gcHJlZGljdCB0aGUgc2l6ZSB0aGF0CiAgICAgICAgIC8vIFdlYkNvcmUgd2lsbCBldmVu
dHVhbGx5IHJlc2l6ZSB1cyB0by4KQEAgLTM0OCwyOCArMzczLDIyIEBAIHN0YXRpYyBVSW50MzIg
UURQaXhlbEZvcm1hdEZyb21DR0JpdG1hcEkKICAgICAgICAgLy8gU2luY2Ugb3RoZXIgcGx1Zy1p
bnMgYWxzbyBtaWdodCBoYXZlIHRoZSBzYW1lIHNvcnQgb2YgdHJvdWJsZSwgd2UgbWFrZSBzdXJl
CiAgICAgICAgIC8vIHRvIGFsd2F5cyBnaXZlIHBsdWctaW5zIGEgc2l6ZSBvdGhlciB0aGFuIDAs
MC4KIAotICAgICAgICBpZiAod2luZG93LndpZHRoIDw9IDApIHsKKyAgICAgICAgaWYgKHdpbmRv
dy53aWR0aCA8PSAwKQogICAgICAgICAgICAgd2luZG93LndpZHRoID0gc3BlY2lmaWVkV2lkdGgg
PiAwID8gc3BlY2lmaWVkV2lkdGggOiAxMDA7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHdpbmRv
dy5oZWlnaHQgPD0gMCkgeworICAgICAgICBpZiAod2luZG93LmhlaWdodCA8PSAwKQogICAgICAg
ICAgICAgd2luZG93LmhlaWdodCA9IHNwZWNpZmllZEhlaWdodCA+IDAgPyBzcGVjaWZpZWRIZWln
aHQgOiAxMDA7Ci0gICAgICAgIH0KIAogICAgICAgICB3aW5kb3cuY2xpcFJlY3QuYm90dG9tID0g
d2luZG93LmNsaXBSZWN0LnRvcDsKICAgICAgICAgd2luZG93LmNsaXBSZWN0LmxlZnQgPSB3aW5k
b3cuY2xpcFJlY3QucmlnaHQ7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgd2luZG93LmNsaXBSZWN0
LnRvcCA9ICh1aW50MTYpdmlzaWJsZVJlY3RJbldpbmRvdy5vcmlnaW4ueTsKLSAgICAgICAgd2lu
ZG93LmNsaXBSZWN0LmxlZnQgPSAodWludDE2KXZpc2libGVSZWN0SW5XaW5kb3cub3JpZ2luLng7
Ci0gICAgICAgIHdpbmRvdy5jbGlwUmVjdC5ib3R0b20gPSAodWludDE2KSh2aXNpYmxlUmVjdElu
V2luZG93Lm9yaWdpbi55ICsgdmlzaWJsZVJlY3RJbldpbmRvdy5zaXplLmhlaWdodCk7Ci0gICAg
ICAgIHdpbmRvdy5jbGlwUmVjdC5yaWdodCA9ICh1aW50MTYpKHZpc2libGVSZWN0SW5XaW5kb3cu
b3JpZ2luLnggKyB2aXNpYmxlUmVjdEluV2luZG93LnNpemUud2lkdGgpOyAgICAgICAgCisgICAg
ICAgIGdldE5QUmVjdCh2aXNpYmxlUmVjdEluV2luZG93LCB3aW5kb3cuY2xpcFJlY3QpOwogICAg
IH0KICAgICAKICAgICAvLyBTYXZlIHRoZSBwb3J0IHN0YXRlLCBzZXQgdXAgdGhlIHBvcnQgZm9y
IGVudHJ5IGludG8gdGhlIHBsdWdpbgogICAgIFBvcnRTdGF0ZSBwb3J0U3RhdGU7CiAgICAgc3dp
dGNoIChkcmF3aW5nTW9kZWwpIHsKICNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFXCi0gICAgICAgIGNh
c2UgTlBEcmF3aW5nTW9kZWxRdWlja0RyYXc6Ci0gICAgICAgIHsKKyAgICAgICAgY2FzZSBOUERy
YXdpbmdNb2RlbFF1aWNrRHJhdzogewogICAgICAgICAgICAgLy8gU2V0IHVwIE5TX1BvcnQuCiAg
ICAgICAgICAgICBSZWN0IHBvcnRCb3VuZHM7CiAgICAgICAgICAgICBDR3JhZlB0ciBwb3J0ID0g
R2V0V2luZG93UG9ydCh3aW5kb3dSZWYpOwpAQCAtMzgyLDcgKzQwMSw3IEBAIHN0YXRpYyBVSW50
MzIgUURQaXhlbEZvcm1hdEZyb21DR0JpdG1hcEkKICAgICAgICAgICAgIFBvcnRTdGF0ZV9RRCAq
cWRQb3J0U3RhdGUgPSAoUG9ydFN0YXRlX1FEKiltYWxsb2Moc2l6ZW9mKFBvcnRTdGF0ZV9RRCkp
OwogICAgICAgICAgICAgcG9ydFN0YXRlID0gKFBvcnRTdGF0ZSlxZFBvcnRTdGF0ZTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgR2V0UG9ydCgmcWRQb3J0U3RhdGUtPm9sZFBvcnQpOyAgICAK
KyAgICAgICAgICAgIEdldEdXb3JsZCgmcWRQb3J0U3RhdGUtPm9sZFBvcnQsICZxZFBvcnRTdGF0
ZS0+b2xkRGV2aWNlKTsgICAgCiAKICAgICAgICAgICAgIHFkUG9ydFN0YXRlLT5vbGRPcmlnaW4u
aCA9IHBvcnRCb3VuZHMubGVmdDsKICAgICAgICAgICAgIHFkUG9ydFN0YXRlLT5vbGRPcmlnaW4u
diA9IHBvcnRCb3VuZHMudG9wOwpAQCAtMzk2LDUwICs0MTUsNDYgQEAgc3RhdGljIFVJbnQzMiBR
RFBpeGVsRm9ybWF0RnJvbUNHQml0bWFwSQogICAgICAgICAgICAgUmduSGFuZGxlIGNsaXBSZWdp
b24gPSBOZXdSZ24oKTsKICAgICAgICAgICAgIHFkUG9ydFN0YXRlLT5jbGlwUmVnaW9uID0gY2xp
cFJlZ2lvbjsKIAorICAgICAgICAgICAgcWRQb3J0U3RhdGUtPm9mZnNjcmVlbkdXb3JsZCA9IDA7
CisKICAgICAgICAgICAgIENHQ29udGV4dFJlZiBjdXJyZW50Q29udGV4dCA9IChDR0NvbnRleHRS
ZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSAg
ICAgICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGNvbnRleHQgaXMgYW4gb2Zmc2NyZWVuIGJpdG1h
cCwgdGhlbiB3ZSBjcmVhdGUgYSBHV29ybGQgZm9yIGl0Ci0gICAgICAgICAgICBib29sIG9mZlNj
cmVlbkNvbnRleHQgPSBjdXJyZW50Q29udGV4dCAmJiBXS0NHQ29udGV4dElzQml0bWFwQ29udGV4
dChjdXJyZW50Q29udGV4dCk7Ci0gICAgICAgICAgICBpZiAob2ZmU2NyZWVuQ29udGV4dCkgewot
ICAgICAgICAgICAgICAgIENHQml0bWFwSW5mbyBjb250ZXh0Qml0bWFwSW5mbyA9IENHQml0bWFw
Q29udGV4dEdldEJpdG1hcEluZm8oY3VycmVudENvbnRleHQpOwotICAgICAgICAgICAgICAgIEdX
b3JsZFB0ciBwT2ZmU2NyZWVuR1dvcmxkOwotICAgICAgICAgICAgICAgIFJlY3Qgb2Zmc2NyZWVu
Qm91bmRzOwotICAgICAgICAgICAgICAgIGludCByb3dCeXRlcyA9IENHQml0bWFwQ29udGV4dEdl
dEJ5dGVzUGVyUm93KGN1cnJlbnRDb250ZXh0KTsKLSAgICAgICAgICAgICAgICBvZmZzY3JlZW5C
b3VuZHMudG9wID0gMDsKLSAgICAgICAgICAgICAgICBvZmZzY3JlZW5Cb3VuZHMubGVmdCA9IDA7
Ci0gICAgICAgICAgICAgICAgb2Zmc2NyZWVuQm91bmRzLnJpZ2h0ID0gQ0dCaXRtYXBDb250ZXh0
R2V0V2lkdGgoY3VycmVudENvbnRleHQpOwotICAgICAgICAgICAgICAgIG9mZnNjcmVlbkJvdW5k
cy5ib3R0b20gPSBDR0JpdG1hcENvbnRleHRHZXRIZWlnaHQoY3VycmVudENvbnRleHQpOwotICAg
ICAgICAgICAgICAgIFVJbnQzMiBwaXhlbEZvcm1hdCA9IFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRt
YXBJbmZvKGNvbnRleHRCaXRtYXBJbmZvKTsKLSAgICAgICAgICAgICAgICBpZiAocGl4ZWxGb3Jt
YXQgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAvLyBOb3QgYSB2YWxpZCBwaXhlbCBmb3Jt
YXQgLSBkb24ndCByZW5kZXIgYXQgYWxsLgorICAgICAgICAgICAgaWYgKGN1cnJlbnRDb250ZXh0
ICYmIFdLQ0dDb250ZXh0SXNCaXRtYXBDb250ZXh0KGN1cnJlbnRDb250ZXh0KSkgeworICAgICAg
ICAgICAgICAgIC8vIFdlIHVzZSBXS0NHQ29udGV4dElzQml0bWFwQ29udGV4dCBoZXJlLCBiZWNh
dXNlIGlmIHdlIGp1c3QgY2FsbGVkIENHQml0bWFwQ29udGV4dEdldERhdGEKKyAgICAgICAgICAg
ICAgICAvLyBvbiBhbnkgY29udGV4dCwgd2UnZCBsb2cgdG8gdGhlIGNvbnNvbGUgZXZlcnkgdGlt
ZS4gQnV0IGV2ZW4gaWYgV0tDR0NvbnRleHRJc0JpdG1hcENvbnRleHQKKyAgICAgICAgICAgICAg
ICAvLyByZXR1cm5zIHRydWUsIGl0IHN0aWxsIG1pZ2h0IG5vdCBiZSBhIGNvbnRleHQgd2UgbmVl
ZCB0byBjcmVhdGUgYSBHV29ybGQgZm9yOyBmb3IgZXhhbXBsZQorICAgICAgICAgICAgICAgIC8v
IHRyYW5zcGFyZW5jeSBsYXllcnMgd2lsbCByZXR1cm4gdHJ1ZSwgYnV0IHJldHVybiAwIGZvciBD
R0JpdG1hcENvbnRleHRHZXREYXRhLgorICAgICAgICAgICAgICAgIHZvaWQqIG9mZnNjcmVlbkRh
dGEgPSBDR0JpdG1hcENvbnRleHRHZXREYXRhKGN1cnJlbnRDb250ZXh0KTsKKyAgICAgICAgICAg
ICAgICBpZiAob2Zmc2NyZWVuRGF0YSkgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUg
Y3VycmVudCBjb250ZXh0IGlzIGFuIG9mZnNjcmVlbiBiaXRtYXAsIHRoZW4gY3JlYXRlIGEgR1dv
cmxkIGZvciBpdC4KKyAgICAgICAgICAgICAgICAgICAgUmVjdCBvZmZzY3JlZW5Cb3VuZHM7CiAg
ICAgICAgICAgICAgICAgICAgIG9mZnNjcmVlbkJvdW5kcy50b3AgPSAwOwogICAgICAgICAgICAg
ICAgICAgICBvZmZzY3JlZW5Cb3VuZHMubGVmdCA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIG9m
ZnNjcmVlbkJvdW5kcy5yaWdodCA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIG9mZnNjcmVlbkJv
dW5kcy5ib3R0b20gPSAwOwotICAgICAgICAgICAgICAgICAgICByb3dCeXRlcyA9IDA7Ci0gICAg
ICAgICAgICAgICAgICAgIHBpeGVsRm9ybWF0ID0gazMyQkdSQVBpeGVsRm9ybWF0OwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2b2lkKiBiaXRzID0gQ0dCaXRtYXBDb250ZXh0
R2V0RGF0YShjdXJyZW50Q29udGV4dCk7Ci0gICAgICAgICAgICAgICAgUURFcnIgZXJyID0gTmV3
R1dvcmxkRnJvbVB0cigmcE9mZlNjcmVlbkdXb3JsZCwgcGl4ZWxGb3JtYXQsICZvZmZzY3JlZW5C
b3VuZHMsIDAsIDAsIDAsIHN0YXRpY19jYXN0PGNoYXIqPihiaXRzKSwgcm93Qnl0ZXMpOwotICAg
ICAgICAgICAgICAgIEFTU0VSVChwT2ZmU2NyZWVuR1dvcmxkICYmICFlcnIpOwotICAgICAgICAg
ICAgICAgIGlmICghZXJyKSB7Ci0gICAgICAgICAgICAgICAgICAgIFNldEdXb3JsZChwT2ZmU2Ny
ZWVuR1dvcmxkLCBOVUxMKTsKLSAgICAgICAgICAgICAgICAgICAgblBvcnQucWRQb3J0LnBvcnQg
PSBwT2ZmU2NyZWVuR1dvcmxkOwotICAgICAgICAgICAgICAgICAgICBOU1JlY3QgYm91bmRzSW5X
aW5kb3cgPSBbc2VsZiBib3VuZHNdOwotICAgICAgICAgICAgICAgICAgICBuUG9ydC5xZFBvcnQu
cG9ydHggPSAoKGludDMyKS1ib3VuZHNJbldpbmRvdy5vcmlnaW4ueCk7Ci0gICAgICAgICAgICAg
ICAgICAgIG5Qb3J0LnFkUG9ydC5wb3J0eSA9ICgoaW50MzIpLWJvdW5kc0luV2luZG93Lm9yaWdp
bi55KTsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LnggPSAwOwotICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cueSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy53aW5kb3cgPSAm
blBvcnQ7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBjbGlwIGJvdW5kcyBmb3Ig
dGhlIGV4aXN0aW5nIGNvbnRleHQgYW5kIHVzZSB0aGF0IGZvciB0aGUgcGx1Zy1pbidzIHdpbmRv
dy5jbGlwUmVjdC4KLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHBsdWctaW4gd2lsbCBpbnRl
cnNlY3QgdGhpcyBjbGlwIHJlY3Qgd2l0aCB0aGUgcG9ydCdzIGRpcnR5IHJlZ2lvbiBjbGlwIGNv
bnN0cnVjdGVkIGJlbG93LiAKLSAgICAgICAgICAgICAgICAgICAgQ0dSZWN0IGNvbnRleHRDbGlw
ID0gQ0dDb250ZXh0R2V0Q2xpcEJvdW5kaW5nQm94KGN1cnJlbnRDb250ZXh0KTsKLSAgICAgICAg
ICAgICAgICAgICAgd2luZG93LmNsaXBSZWN0LnRvcCA9ICh1aW50MTYpY29udGV4dENsaXAub3Jp
Z2luLnk7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jbGlwUmVjdC5sZWZ0ID0gKHVpbnQx
Niljb250ZXh0Q2xpcC5vcmlnaW4ueDsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LmNsaXBS
ZWN0LnJpZ2h0ID0gKHVpbnQxNil3aW5kb3cuY2xpcFJlY3QubGVmdCArICh1aW50MTYpY29udGV4
dENsaXAuc2l6ZS53aWR0aDsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LmNsaXBSZWN0LmJv
dHRvbSA9ICh1aW50MTYpd2luZG93LmNsaXBSZWN0LnRvcCArICh1aW50MTYpY29udGV4dENsaXAu
c2l6ZS5oZWlnaHQ7CisgICAgICAgICAgICAgICAgICAgIG9mZnNjcmVlbkJvdW5kcy5yaWdodCA9
IENHQml0bWFwQ29udGV4dEdldFdpZHRoKGN1cnJlbnRDb250ZXh0KTsKKyAgICAgICAgICAgICAg
ICAgICAgb2Zmc2NyZWVuQm91bmRzLmJvdHRvbSA9IENHQml0bWFwQ29udGV4dEdldEhlaWdodChj
dXJyZW50Q29udGV4dCk7CisgICAgICAgICAgICAgICAgICAgIFFERXJyIGVyciA9IE5ld0dXb3Js
ZEZyb21QdHIoJnFkUG9ydFN0YXRlLT5vZmZzY3JlZW5HV29ybGQsCisgICAgICAgICAgICAgICAg
ICAgICAgICBnZXRRRFBpeGVsRm9ybWF0Rm9yQml0bWFwQ29udGV4dChjdXJyZW50Q29udGV4dCks
ICZvZmZzY3JlZW5Cb3VuZHMsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxjaGFyKj4ob2Zmc2NyZWVuRGF0YSksIENHQml0bWFwQ29udGV4dEdldEJ5dGVzUGVy
Um93KGN1cnJlbnRDb250ZXh0KSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChxZFBvcnRT
dGF0ZS0+b2Zmc2NyZWVuR1dvcmxkICYmICFlcnIpOworICAgICAgICAgICAgICAgICAgICBpZiAo
IWVycikgeworICAgICAgICAgICAgICAgICAgICAgICAgU2V0R1dvcmxkKHFkUG9ydFN0YXRlLT5v
ZmZzY3JlZW5HV29ybGQsIE5VTEwpOworCisgICAgICAgICAgICAgICAgICAgICAgICBwb3J0ID0g
cWRQb3J0U3RhdGUtPm9mZnNjcmVlbkdXb3JsZDsKKworICAgICAgICAgICAgICAgICAgICAgICAg
blBvcnQucWRQb3J0LnBvcnQgPSBwb3J0OworICAgICAgICAgICAgICAgICAgICAgICAgTlNSZWN0
IGJvdW5kc0luV2luZG93ID0gW3NlbGYgYm91bmRzXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5Qb3J0LnFkUG9ydC5wb3J0eCA9ICgoaW50MzIpLWJvdW5kc0luV2luZG93Lm9yaWdpbi54KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5Qb3J0LnFkUG9ydC5wb3J0eSA9ICgoaW50MzIpLWJv
dW5kc0luV2luZG93Lm9yaWdpbi55KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy54
ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy55ID0gMDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvdy53aW5kb3cgPSAmblBvcnQ7CisKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFVzZSB0aGUgY2xpcCBib3VuZHMgZnJvbSB0aGUgY29udGV4dCBpbnN0ZWFkIG9m
IHRoZSBib3VuZHMgd2UgY3JlYXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJvbSB0
aGUgd2luZG93IGFib3ZlLgorICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TlBSZWN0KENHQ29u
dGV4dEdldENsaXBCb3VuZGluZ0JveChjdXJyZW50Q29udGV4dCksIHdpbmRvdy5jbGlwUmVjdCk7
CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CisKICAgICAgICAgICAgIE1hY1NldFJlY3RSZ24oY2xpcFJlZ2lvbiwKICAgICAgICAgICAgICAg
ICB3aW5kb3cuY2xpcFJlY3QubGVmdCArIG5Qb3J0LnFkUG9ydC5wb3J0eCwgd2luZG93LmNsaXBS
ZWN0LnRvcCArIG5Qb3J0LnFkUG9ydC5wb3J0eSwKICAgICAgICAgICAgICAgICB3aW5kb3cuY2xp
cFJlY3QucmlnaHQgKyBuUG9ydC5xZFBvcnQucG9ydHgsIHdpbmRvdy5jbGlwUmVjdC5ib3R0b20g
KyBuUG9ydC5xZFBvcnQucG9ydHkpOwpAQCAtNDc0LDEzICs0ODksMTIgQEAgc3RhdGljIFVJbnQz
MiBRRFBpeGVsRm9ybWF0RnJvbUNHQml0bWFwSQogICAgICAgICAgICAgICAgIC8vIEludGVyc2Vj
dCB0aGUgZGlydHkgcmVnaW9uIHdpdGggdGhlIGNsaXAgcmVnaW9uLCBzbyB0aGF0IHdlIG9ubHkg
ZHJhdyBvdmVyIGRpcnR5IHBhcnRzCiAgICAgICAgICAgICAgICAgU2VjdFJnbihjbGlwUmVnaW9u
LCB2aWV3Q2xpcFJlZ2lvbiwgY2xpcFJlZ2lvbik7CiAgICAgICAgICAgICAgICAgRGlzcG9zZVJn
bih2aWV3Q2xpcFJlZ2lvbik7Ci0gICAgICAgICAgICAgICAgaWYgKG9mZlNjcmVlbkNvbnRleHQp
IHsKKyAgICAgICAgICAgICAgICBpZiAocWRQb3J0U3RhdGUtPm9mZnNjcmVlbkdXb3JsZCkgewog
ICAgICAgICAgICAgICAgICAgICBHZXRSZWdpb25Cb3VuZHMoY2xpcFJlZ2lvbiwgJmNsaXBCb3Vu
ZHMpOwogICAgICAgICAgICAgICAgICAgICBPZmZzZXRSZ24oY2xpcFJlZ2lvbiwgLWNsaXBCb3Vu
ZHMubGVmdCwgLWNsaXBCb3VuZHMudG9wKTsKLSAgICAgICAgICAgICAgICAgICAgcG9ydCA9IG5Q
b3J0LnFkUG9ydC5wb3J0OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAK
KwogICAgICAgICAgICAgLy8gU3dpdGNoIHRvIHRoZSBwb3J0IGFuZCBzZXQgaXQgdXAuCiAgICAg
ICAgICAgICBTZXRQb3J0KHBvcnQpOwogICAgICAgICAgICAgUGVuTm9ybWFsKCk7CkBAIC00OTcs
MTkgKzUxMSwxNyBAQCBzdGF0aWMgVUludDMyIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJCiAK
ICAgICAgICAgICAgICAgICAvLyBTb21lIHBsdWdpbnMgZG8gdGhlaXIgb3duIEJlZ2luVXBkYXRl
L0VuZFVwZGF0ZS4KICAgICAgICAgICAgICAgICAvLyBGb3IgdGhvc2UsIHdlIG11c3QgbWFrZSBz
dXJlIHRoYXQgdGhlIHVwZGF0ZSByZWdpb24gY29udGFpbnMgdGhlIGFyZWEgd2Ugd2FudCB0byBk
cmF3LgotICAgICAgICAgICAgICAgIGlmIChvZmZTY3JlZW5Db250ZXh0KQorICAgICAgICAgICAg
ICAgIGlmIChxZFBvcnRTdGF0ZS0+b2Zmc2NyZWVuR1dvcmxkKQogICAgICAgICAgICAgICAgICAg
ICBPZmZzZXRSZ24oY2xpcFJlZ2lvbiwgY2xpcEJvdW5kcy5sZWZ0LCBjbGlwQm91bmRzLnRvcCk7
CiAgICAgICAgICAgICAgICAgSW52YWxXaW5kb3dSZ24od2luZG93UmVmLCBjbGlwUmVnaW9uKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgcWRQb3J0U3RhdGUtPmZv
clVwZGF0ZSA9IGZvclVwZGF0ZTsKLQorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAg
ICAgICAgYnJlYWs7CiAjZW5kaWYgLyogTlBfTk9fUVVJQ0tEUkFXICovCi0gICAgICAgIAotICAg
ICAgICBjYXNlIE5QRHJhd2luZ01vZGVsQ29yZUdyYXBoaWNzOgotICAgICAgICB7ICAgICAgICAg
ICAgCisKKyAgICAgICAgY2FzZSBOUERyYXdpbmdNb2RlbENvcmVHcmFwaGljczogeyAgICAgICAg
ICAgIAogICAgICAgICAgICAgLy8gQSBDb3JlR3JhcGhpY3MgcGx1Z2luJ3Mgd2luZG93IG1heSBv
bmx5IGJlIHNldCB3aGlsZSB0aGUgcGx1Z2luIHZpZXcgaXMgYmVpbmcgdXBkYXRlZAogICAgICAg
ICAgICAgQVNTRVJUKGZvclVwZGF0ZSAmJiBbTlNWaWV3IGZvY3VzVmlld10gPT0gc2VsZik7CiAK
QEAgLTUyNiw4ICs1MzgsOCBAQCBzdGF0aWMgVUludDMyIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRt
YXBJCiAgICAgICAgICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKG5Qb3J0LmNnUG9ydC5jb250ZXh0
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gRklYTUUgKDQ1NDQ5NzEpOiBDbGlwIHRv
IGRpcnR5IHJlZ2lvbiB3aGVuIHVwZGF0aW5nIGluICJ3aW5kb3dsZXNzIiBtb2RlICh0cmFuc3Bh
cmVudCksIGxpa2UgaW4gdGhlIFFEIGNhc2UKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
Ci0gICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICAgICAgY2FzZSBOUERyYXdpbmdNb2RlbE9w
ZW5HTDoKICAgICAgICAgewpAQCAtNTU4LDI4ICs1NzAsMzAgQEAgc3RhdGljIFVJbnQzMiBRRFBp
eGVsRm9ybWF0RnJvbUNHQml0bWFwSQogICAgICAgICAgICAgLy8gQWRqdXN0IHZpZXdwb3J0IGFj
Y29yZGluZyB0byBjbGlwCiAgICAgICAgICAgICBzd2l0Y2ggKHdpbmRvdy50eXBlKSB7CiAgICAg
ICAgICAgICAgICAgY2FzZSBOUFdpbmRvd1R5cGVXaW5kb3c6Ci0gICAgICAgICAgICAgICAgICAg
IGdsVmlld3BvcnQoc3RhdGljX2Nhc3Q8R0xpbnQ+KE5TTWluWChib3VuZHNJbldpbmRvdykgLSBO
U01pblgodmlzaWJsZVJlY3RJbldpbmRvdykpLCBzdGF0aWNfY2FzdDxHTGludD4oTlNNYXhZKHZp
c2libGVSZWN0SW5XaW5kb3cpIC0gTlNNYXhZKGJvdW5kc0luV2luZG93KSksIHdpbmRvdy53aWR0
aCwgd2luZG93LmhlaWdodCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIGdsVmlld3BvcnQoc3RhdGljX2Nhc3Q8R0xpbnQ+KE5TTWluWChib3VuZHNJbldpbmRv
dykgLSBOU01pblgodmlzaWJsZVJlY3RJbldpbmRvdykpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8R0xpbnQ+KE5TTWF4WSh2aXNpYmxlUmVjdEluV2luZG93KSAtIE5TTWF4
WShib3VuZHNJbldpbmRvdykpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53
aWR0aCwgd2luZG93LmhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIGNhc2UgTlBXaW5kb3dUeXBlRHJhd2FibGU6CiAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBoZWln
aHQ7CiAgICAgICAgICAgICAgICAgICAgIGlmIChbc2VsZiBfZ2V0QUdMT2Zmc2NyZWVuQnVmZmVy
Ok5VTEwgd2lkdGg6JndpZHRoIGhlaWdodDomaGVpZ2h0XSkKICAgICAgICAgICAgICAgICAgICAg
ICAgIGdsVmlld3BvcnQoMCwgMCwgd2lkdGgsIGhlaWdodCk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQotICAgICAgICBicmVhazsKICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHBvcnRTdGF0ZSA9IE5V
TEw7Ci0gICAgICAgIGJyZWFrOworICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIAogICAg
IHJldHVybiBwb3J0U3RhdGU7CkBAIC01OTcsMjEgKzYxMSw3IEBAIHN0YXRpYyBVSW50MzIgUURQ
aXhlbEZvcm1hdEZyb21DR0JpdG1hcEkKICAgICAKICAgICBzd2l0Y2ggKGRyYXdpbmdNb2RlbCkg
ewogI2lmbmRlZiBOUF9OT19RVUlDS0RSQVcKLSAgICAgICAgY2FzZSBOUERyYXdpbmdNb2RlbFF1
aWNrRHJhdzoKLSAgICAgICAgewotICAgICAgICAgICAgQ0dDb250ZXh0UmVmIGN1cnJlbnRDb250
ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBn
cmFwaGljc1BvcnRdOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBJZiB0aGUgY3VycmVu
dCBjb250ZXh0IGlzIGFuIG9mZnNjcmVlbiBiaXRtYXAsIHRoZW4gd2UgbmVlZCB0bwotICAgICAg
ICAgICAgLy8gZGlzcG9zZSBpdHMgR1dvcmxkIGFuZCByZXN0b3JlIHRoZSBXaW5kb3cncyBHV29y
bGQKLSAgICAgICAgICAgIGlmIChjdXJyZW50Q29udGV4dCAmJiBXS0NHQ29udGV4dElzQml0bWFw
Q29udGV4dChjdXJyZW50Q29udGV4dCkpIHsKLSAgICAgICAgICAgICAgICBHV29ybGRQdHIgY3Vy
R1dvcmxkOwotICAgICAgICAgICAgICAgIEdldEdXb3JsZCgmY3VyR1dvcmxkLCBOVUxMKTsKLSAg
ICAgICAgICAgICAgICBEaXNwb3NlR1dvcmxkKGN1ckdXb3JsZCk7Ci0gICAgICAgICAgICAgICAg
V2luZG93UmVmIHdpbmRvd1JlZiA9IChXaW5kb3dSZWYpW1tzZWxmIGN1cnJlbnRXaW5kb3ddIHdp
bmRvd1JlZl07Ci0gICAgICAgICAgICAgICAgQ0dyYWZQdHIgcG9ydCA9IEdldFdpbmRvd1BvcnQo
d2luZG93UmVmKTsKLSAgICAgICAgICAgICAgICBTZXRHV29ybGQocG9ydCwgTlVMTCk7Ci0gICAg
ICAgICAgICB9Ci0KKyAgICAgICAgY2FzZSBOUERyYXdpbmdNb2RlbFF1aWNrRHJhdzogewogICAg
ICAgICAgICAgUG9ydFN0YXRlX1FEICpxZFBvcnRTdGF0ZSA9IChQb3J0U3RhdGVfUUQgKilwb3J0
U3RhdGU7CiAgICAgICAgICAgICBXaW5kb3dSZWYgd2luZG93UmVmID0gKFdpbmRvd1JlZilbW3Nl
bGYgY3VycmVudFdpbmRvd10gd2luZG93UmVmXTsKICAgICAgICAgICAgIENHcmFmUHRyIHBvcnQg
PSBHZXRXaW5kb3dQb3J0KHdpbmRvd1JlZik7CkBAIC02MjgsMjYgKzYyOCwyNyBAQCBzdGF0aWMg
VUludDMyIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJCiAgICAgICAgICAgICBEaXNwb3NlUmdu
KHFkUG9ydFN0YXRlLT5vbGRWaXNpYmxlUmVnaW9uKTsKICAgICAgICAgICAgIERpc3Bvc2VSZ24o
cWRQb3J0U3RhdGUtPmNsaXBSZWdpb24pOwogCi0gICAgICAgICAgICBTZXRHV29ybGQocWRQb3J0
U3RhdGUtPm9sZFBvcnQsIE5VTEwpOworICAgICAgICAgICAgU2V0R1dvcmxkKHFkUG9ydFN0YXRl
LT5vbGRQb3J0LCBxZFBvcnRTdGF0ZS0+b2xkRGV2aWNlKTsKKworICAgICAgICAgICAgaWYgKHFk
UG9ydFN0YXRlLT5vZmZzY3JlZW5HV29ybGQpCisgICAgICAgICAgICAgICAgRGlzcG9zZUdXb3Js
ZChxZFBvcnRTdGF0ZS0+b2Zmc2NyZWVuR1dvcmxkKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9Ci0gICAgICAgIGJyZWFrOwogI2VuZGlmIC8qIE5QX05PX1FVSUNLRFJBVyAqLwogICAg
ICAgICAKICAgICAgICAgY2FzZSBOUERyYXdpbmdNb2RlbENvcmVHcmFwaGljczoKLSAgICAgICAg
ewogICAgICAgICAgICAgQVNTRVJUKFtOU1ZpZXcgZm9jdXNWaWV3XSA9PSBzZWxmKTsKICAgICAg
ICAgICAgIEFTU0VSVCgoKFBvcnRTdGF0ZV9DRyAqKXBvcnRTdGF0ZSktPmNvbnRleHQgPT0gblBv
cnQuY2dQb3J0LmNvbnRleHQpOwogICAgICAgICAgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShu
UG9ydC5jZ1BvcnQuY29udGV4dCk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgCiAgICAgICAgIGNhc2UgTlBEcmF3aW5nTW9kZWxPcGVuR0w6
CiAgICAgICAgICAgICBhZ2xTZXRDdXJyZW50Q29udGV4dCgoKFBvcnRTdGF0ZV9HTCAqKXBvcnRT
dGF0ZSktPm9sZENvbnRleHQpOwotICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13844</attachid>
            <date>2007-03-28 09:31:15 -0700</date>
            <delta_ts>2007-04-02 12:50:17 -0700</delta_ts>
            <desc>new patch with additional fixes</desc>
            <filename>OffscreenGWorldPatch.txt</filename>
            <type>text/plain</type>
            <size>24818</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMjA1NTMpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsNTggQEAKKzIwMDctMDMtMjggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4IGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDI2CisgICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzUwNjEwMjY+IGluY29tcGxldGUgcmVuZGVyIG9mIG1lbnUKKyAgICAgICAg
ICAoYXNzZXJ0aW9uIGZhaWxpbmcgaW4gLVtXZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3IHNhdmVB
bmRTZXROZXdQb3J0U3RhdGVGb3JVcGRhdGU6XSkKKworICAgICAgICAtIGZpeCBodHRwOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEyMAorICAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81MDgwMzM5PiBpbmNvbXBsZXRlIHJlbmRlciBvZiBtZW51CisgICAgICAgICAgKGFzc2Vy
dGlvbiBmYWlsaW5nIGluIC1bV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldyBzYXZlQW5kU2V0TmV3
UG9ydFN0YXRlRm9yVXBkYXRlOl0pCisKKyAgICAgICAgLSBzZXQgY2xpcCBwYXRoIGZvciBDb3Jl
R3JhcGhpY3MgcGx1Zy1pbnMgaW4gdGhlIHNhbWUgd2F5IHdlIGRvIGZvciBRdWlja0RyYXcgcGx1
Zy1pbnMKKyAgICAgICAgICB0aGlzIGlzIGEgYmV0dGVyIGZpeCBmb3IgPHJkYXI6Ly9wcm9ibGVt
LzQ5Mzk1MTE+IFdlYktpdCBzaG91bGQgc2V0IHRoZSB0aGUgQ0cgY2xpcAorICAgICAgICAgIHBh
dGggZm9yIHBsdWctaW5zIHRoYXQgZHJhdyB1c2luZyBDb3JlIEdyYXBoaWNzCisKKyAgICAgICAg
SW5jb3Jwb3JhdGVzIGNoYW5nZXMgZnJvbSBhIHBhdGNoIGJ5IE1hcmsgQW1iYWNodHNoZWVyLgor
CisgICAgICAgIEhlcmUgYXJlIHRoZSBjaGFuZ2VzOgorCisgICAgICAgICAgICAxKSBEb24ndCB0
cnkgdG8gdXNlIHRoZSBvZmZzY3JlZW4gY29kZSBwYXRoIGlmIEdHQml0bWFwQ29udGV4dEdldERh
dGEgcmV0dXJucyAwLgorICAgICAgICAgICAgMikgSGFuZGxlIGtDR0JpdG1hcEJ5dGVPcmRlckRl
ZmF1bHQgd2hlbiBjb21wdXRpbmcgdGhlIFFEIHBpeGVsIGZvcm1hdCwgZXZlbiB0aG91Z2gKKyAg
ICAgICAgICAgICAgIHdlIGRvbid0IGhhdmUgYW55IGV2aWRlbmNlIHRoYXQgdGhpcyBoYXBwZW5z
IGluIHByYWN0aWNlLgorICAgICAgICAgICAgMykgS2VlcCB0aGUgR1dvcmxkIGFyb3VuZCB1bnRp
bCB3ZSBjcmVhdGUgYSBuZXcgb25lIG9yIHRoZSBwbHVnLWluIGlzIGRlc3Ryb3llZC4KKyAgICAg
ICAgICAgIDQpIFVzZSB0aGUgR1dvcmxkIHBvaW50ZXIgaXRzZWxmIGFzIGEgZmxhZyB0byBpbmRp
Y2F0ZSB3aGV0aGVyIHdlIGFyZSB1c2luZyBhbgorICAgICAgICAgICAgICAgb2Zmc2NyZWVuIEdX
b3JsZC4KKyAgICAgICAgICAgIDUpIFNldCB1cCBjbGlwcGluZyBmb3IgQ29yZUdyYXBoaWNzIGlu
IHRoZSBzYW1lIHdheSB3ZSBkbyBmb3IgUXVpY2tEcmF3OyByZW1vdmUgYW4KKyAgICAgICAgICAg
ICAgIGVhcmxpZXIgYXR0ZW1wdCB0aGF0IGhhbmRsZWQgQ29yZUdyYXBoaWNzIGRpZmZlcmVudGx5
LgorCisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lmg6IEFkZGVk
IGEgZmllbGQgbmFtZWQgb2Zmc2NyZWVuR1dvcmxkIHRvIGhvbGQKKyAgICAgICAgdGhlIEdXb3Js
ZCB1bnRpbCBpdCdzIG5lZWRlZC4KKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBs
dWdpblZpZXcubW06CisgICAgICAgIChnZXRRRFBpeGVsRm9ybWF0Rm9yQml0bWFwQ29udGV4dCk6
IFJlcGxhY2VkIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJbmZvLiBVc2VkIHRoZQorICAgICAg
ICAiZ2V0IiBwcmVmaXggc28gd2UgZG9uJ3QgaW50cnVkZSBvbiB0aGUgUUQgbmFtZXNwYWNlLiBB
ZGRlZCBjb2RlIHRvIGhhbmRsZSB0aGUKKyAgICAgICAga0NHQml0bWFwQnl0ZU9yZGVyRGVmYXVs
dCBjYXNlLCBhbHRob3VnaCBJJ20gbm90IHN1cmUgaXQgd2lsbCByZWFsbHkgY29tZSB1cCBpbgor
ICAgICAgICBwcmFjdGljZSAtLSBpdCB3YXNuJ3QgcmVhbGx5IGNvbWluZyB1cCBpbiB0aGUgYnVn
Z3kgY2FzZS4KKyAgICAgICAgKGdldE5QUmVjdCk6IEFkZGVkIGhlbHBlciBmdW5jdGlvbnMuIFVz
ZWQgdG8gbWFrZSB0aGUgY29kZSBiZWxvdyBjbGVhcmVyLgorICAgICAgICAoLVtXZWJCYXNlTmV0
c2NhcGVQbHVnaW5WaWV3IHNhdmVBbmRTZXROZXdQb3J0U3RhdGVGb3JVcGRhdGU6XSk6IFVzZSBn
ZXROUFJlY3QgdG8KKyAgICAgICAgc3RyZWFtbGluZSBjb2RlLiBVc2UgR2V0R1dvcmxkIHRvIHNh
dmUgdGhlIHBvcnQgc2luY2Ugd2UgdXNlIFNldEdXb3JsZCB0byByZXN0b3JlCisgICAgICAgIGl0
IGxhdGVyLiBTdG9yZSB0aGUgR1dvcmxkIHdlIGNyZWF0ZSBpbiB0aGUgb2Zmc2NyZWVuR1dvcmxk
IGZpZWxkIGFuZCBkaXNwb3NlIHRoZQorICAgICAgICBleGlzdGluZyBvbmUuIERvbid0IHRyZWF0
IHRoZSBDR0JpdG1hcENvbnRleHQgYXMgYW4gb2Zmc2NyZWVuIGJpdG1hcCBpZiBpdAorICAgICAg
ICBoYXMgYSBkYXRhIHBvaW50ZXIgb2YgMC4gU2V0IHVwIHRoZSBjbGlwIGJhc2VkIG9uIHRoZSBy
ZXN1bHQgb2YKKyAgICAgICAgLVtOU1ZpZXcgZ2V0UmVjdHNCZWluZ0RyYXduOmNvdW50XSB3aGVu
IHNldHRpbmcgdXAgdGhlIHBvcnQgZm9yIENvcmVHcmFwaGljcworICAgICAgICAoYWZ0ZXIgc2F2
aW5nIHRoZSBwb3J0IHN0YXRlKS4KKyAgICAgICAgKC1bV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmll
dyByZXN0b3JlUG9ydFN0YXRlOl0pOiBSZW1vdmUgbm93LXVubmVlZGVkIGNvZGUgdG8KKyAgICAg
ICAgZGVzdHJveSB0aGUgb2Zmc2NyZWVuIEdXb3JsZCwgYW5kIHNpbXBsaWZpZWQgdGhlIGNvZGUg
dGhhdCByZXN0b3JlcyB0aGUgcG9ydCBzbyB3ZQorICAgICAgICBkb24ndCBuZWVkIGEgc2VwYXJh
dGUgY2FzZSBmb3Igb2Zmc2NyZWVuLgorICAgICAgICAoLVtXZWJCYXNlTmV0c2NhcGVQbHVnaW5W
aWV3IGZpbmldKTogUmVuYW1lZCBmcm9tIGZyZWVBdHRyaWJ1dGVLZXlzQW5kVmFsdWVzLCBzaW5j
ZQorICAgICAgICB0aGlzIG1ldGhvZCBub3cgZG9lcyBtb3JlIHRoYW4ganVzdCB0aGUgYXR0cmli
dXRlcy4gVGhpcyBpcyB0aGUgc2hhcmVkIG1ldGhvZCB0aGF0CisgICAgICAgIGRvZXMgdGhpbmdz
IG5lZWRlZCBpbiBib3RoIGRlYWxsb2MgYW5kIGZpbmFsaXplLiBBZGRlZCBhIGNhbGwgdG8gRGlz
cG9zZUdXb3JsZCBoZXJlLgorICAgICAgICAoLVtXZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3IGRl
YWxsb2NdKTogVXBkYXRlZCBmb3IgbmFtZSBjaGFuZ2UuCisgICAgICAgICgtW1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcgZmluYWxpemVdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcgZHJhd1JlY3Q6XSk6IFJlbW92ZWQgY29kZSB0byBzZXQgY2xpcC4gVGhp
cyBpcyBkb25lIGluCisgICAgICAgIHRoZSBzYXZlQW5kU2V0TmV3UG9ydFN0YXRlRm9yVXBkYXRl
OiBtZXRob2QgaW5zdGVhZC4KKwogMjAwNy0wMy0yNyAgSm9obiBTdWxsaXZhbiAgPHN1bGxpdmFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW0KSW5kZXg6IFdlYktpdC9QbHVn
aW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvUGx1
Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgJKHJldmlzaW9uIDIwNTQ2KQorKysgV2Vi
S2l0L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTc5LDYgKzc5LDExIEBAIHR5cGVkZWYgdW5pb24gUGx1Z2luUG9ydCB7CiAgICAg
QUdMQ29udGV4dCBhZ2xDb250ZXh0OwogICAgIE5TV2luZG93ICphZ2xXaW5kb3c7CiAKKyNpZm5k
ZWYgTlBfTk9fUVVJQ0tEUkFXCisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIHdoZW4gZHJhd2lu
Z01vZGVsIGlzIE5QRHJhd2luZ01vZGVsUXVpY2tEcmF3CisgICAgR1dvcmxkUHRyIG9mZnNjcmVl
bkdXb3JsZDsKKyNlbmRpZgorCiAgICAgQk9PTCBpc1N0YXJ0ZWQ7CiAgICAgQk9PTCBpblNldFdp
bmRvdzsKICAgICBCT09MIHN1c3BlbmRLZXlVcEV2ZW50czsKSW5kZXg6IFdlYktpdC9QbHVnaW5z
L1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1BsdWdp
bnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQkocmV2aXNpb24gMjA1NDYpCisrKyBXZWJL
aXQvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwg
MjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTk5LDYgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgT3BhcXVl
UG9ydFN0YXRlKiBQb3J0U3RhdAogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgR3JhZlB0ciBvbGRQ
b3J0OworICAgIEdESGFuZGxlIG9sZERldmljZTsKICAgICBQb2ludCBvbGRPcmlnaW47CiAgICAg
UmduSGFuZGxlIG9sZENsaXBSZWdpb247CiAgICAgUmduSGFuZGxlIG9sZFZpc2libGVSZWdpb247
CkBAIC0yMzcsNiArMjM4LDcgQEAgc3RhdGljIE9TU3RhdHVzIFRTTUV2ZW50SGFuZGxlcihFdmVu
dEhhbgogfQogCiAjaWZuZGVmIE5QX05PX1FVSUNLRFJBVworCiAvLyBUaGUgV2luZG93UmVmIGNy
ZWF0ZWQgYnkgLVtOU1dpbmRvdyB3aW5kb3dSZWZdIGhhcyBhIFF1aWNrRHJhdyBHcmFmUG9ydCB0
aGF0IGNvdmVycyAKIC8vIHRoZSBlbnRpcmUgd2luZG93IGZyYW1lIChvciBzdHJ1Y3R1cmUgcmVn
aW9uIHRvIHVzZSB0aGUgQ2FyYm9uIHRlcm0pIHJhdGhlciB0aGVuIGp1c3QgdGhlIHdpbmRvdyBj
b250ZW50LgogLy8gV2UgY2FuIHJlbW92ZSB0aGlzIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzQyMDEw
OTk+IGlzIGZpeGVkLgpAQCAtMjYxLDMwICsyNjMsNTEgQEAgc3RhdGljIE9TU3RhdHVzIFRTTUV2
ZW50SGFuZGxlcihFdmVudEhhbgogICAgIAogICAgIFNldFBvcnQob2xkUG9ydCk7CiB9Ci0jZW5k
aWYKIAotI2lmbmRlZiBOUF9OT19RVUlDS0RSQVcKLXN0YXRpYyBVSW50MzIgUURQaXhlbEZvcm1h
dEZyb21DR0JpdG1hcEluZm8oQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8pCitzdGF0aWMgVUludDMy
IGdldFFEUGl4ZWxGb3JtYXRGb3JCaXRtYXBDb250ZXh0KENHQ29udGV4dFJlZiBjb250ZXh0KQog
ewotICAgIFVJbnQzMiBjZ0J5dGVPcmRlciA9IGJpdG1hcEluZm8gJiBrQ0dCaXRtYXBCeXRlT3Jk
ZXJNYXNrOwotICAgIHN3aXRjaCAoY2dCeXRlT3JkZXIpIHsKLSAgICBjYXNlIGtDR0JpdG1hcEJ5
dGVPcmRlckRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiAwOwotICAgIGNhc2Uga0NHQml0bWFwQnl0
ZU9yZGVyMTZMaXR0bGU6Ci0gICAgICAgIHJldHVybiBrMTZMRTU1NVBpeGVsRm9ybWF0OwotICAg
IGNhc2Uga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGU6Ci0gICAgICAgIHJldHVybiBrMzJCR1JB
UGl4ZWxGb3JtYXQ7Ci0gICAgY2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXIxNkJpZzoKLSAgICAgICAg
cmV0dXJuIGsxNkJFNTU1UGl4ZWxGb3JtYXQ7Ci0gICAgY2FzZSBrQ0dCaXRtYXBCeXRlT3JkZXIz
MkJpZzoKLSAgICAgICAgcmV0dXJuIGszMkFSR0JQaXhlbEZvcm1hdDsKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgVUlu
dDMyIGJ5dGVPcmRlciA9IENHQml0bWFwQ29udGV4dEdldEJpdG1hcEluZm8oY29udGV4dCkgJiBr
Q0dCaXRtYXBCeXRlT3JkZXJNYXNrOworICAgIGlmIChieXRlT3JkZXIgPT0ga0NHQml0bWFwQnl0
ZU9yZGVyRGVmYXVsdCkKKyAgICAgICAgc3dpdGNoIChDR0JpdG1hcENvbnRleHRHZXRCaXRzUGVy
UGl4ZWwoY29udGV4dCkpIHsKKyAgICAgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICAgICAg
Ynl0ZU9yZGVyID0ga0NHQml0bWFwQnl0ZU9yZGVyMTZIb3N0OworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAzMjoKKyAgICAgICAgICAgICAgICBieXRlT3JkZXIgPSBr
Q0dCaXRtYXBCeXRlT3JkZXIzMkhvc3Q7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICBzd2l0Y2ggKGJ5dGVPcmRlcikgeworICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVP
cmRlcjE2TGl0dGxlOgorICAgICAgICAgICAgcmV0dXJuIGsxNkxFNTU1UGl4ZWxGb3JtYXQ7Cisg
ICAgICAgIGNhc2Uga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGU6CisgICAgICAgICAgICByZXR1
cm4gazMyQkdSQVBpeGVsRm9ybWF0OworICAgICAgICBjYXNlIGtDR0JpdG1hcEJ5dGVPcmRlcjE2
QmlnOgorICAgICAgICAgICAgcmV0dXJuIGsxNkJFNTU1UGl4ZWxGb3JtYXQ7CisgICAgICAgIGNh
c2Uga0NHQml0bWFwQnl0ZU9yZGVyMzJCaWc6CisgICAgICAgICAgICByZXR1cm4gazMyQVJHQlBp
eGVsRm9ybWF0OwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
MDsKIH0KKworc3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBDR1JlY3QmIGNnciwg
TlBSZWN0JiBucHIpCit7CisgICAgbnByLnRvcCA9IHN0YXRpY19jYXN0PHVpbnQxNj4oY2dyLm9y
aWdpbi55KTsKKyAgICBucHIubGVmdCA9IHN0YXRpY19jYXN0PHVpbnQxNj4oY2dyLm9yaWdpbi54
KTsKKyAgICBucHIuYm90dG9tID0gc3RhdGljX2Nhc3Q8dWludDE2PihDR1JlY3RHZXRNYXhZKGNn
cikpOworICAgIG5wci5yaWdodCA9IHN0YXRpY19jYXN0PHVpbnQxNj4oQ0dSZWN0R2V0TWF4WChj
Z3IpKTsKK30KKwogI2VuZGlmCiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3Qg
TlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCit7CisgICAgbnByLnRvcCA9IHN0YXRpY19jYXN0PHVp
bnQxNj4obnIub3JpZ2luLnkpOworICAgIG5wci5sZWZ0ID0gc3RhdGljX2Nhc3Q8dWludDE2Pihu
ci5vcmlnaW4ueCk7CisgICAgbnByLmJvdHRvbSA9IHN0YXRpY19jYXN0PHVpbnQxNj4oTlNNYXhZ
KG5yKSk7CisgICAgbnByLnJpZ2h0ID0gc3RhdGljX2Nhc3Q8dWludDE2PihOU01heFgobnIpKTsK
K30KKwogLSAoUG9ydFN0YXRlKXNhdmVBbmRTZXROZXdQb3J0U3RhdGVGb3JVcGRhdGU6KEJPT0wp
Zm9yVXBkYXRlCiB7CiAgICAgQVNTRVJUKFtzZWxmIGN1cnJlbnRXaW5kb3ddICE9IG5pbCk7CkBA
IC0yOTUsNyArMzE4LDcgQEAgc3RhdGljIFVJbnQzMiBRRFBpeGVsRm9ybWF0RnJvbUNHQml0bWFw
SQogICAgIGlmIChkcmF3aW5nTW9kZWwgPT0gTlBEcmF3aW5nTW9kZWxRdWlja0RyYXcpCiAgICAg
ICAgIFtzZWxmIGZpeFdpbmRvd1BvcnRdOwogI2VuZGlmCi0gICAgCisKICAgICBXaW5kb3dSZWYg
d2luZG93UmVmID0gKFdpbmRvd1JlZilbW3NlbGYgY3VycmVudFdpbmRvd10gd2luZG93UmVmXTsK
ICAgICBBU1NFUlQod2luZG93UmVmKTsKICAgICAKQEAgLTM0MCw2ICszNjMsNyBAQCBzdGF0aWMg
VUludDMyIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJCiAgICAgICAgICAgICB8fCBbTlNBcHAg
aXNIaWRkZW5dCiAgICAgICAgICAgICB8fCAhW3NlbGYgc3VwZXJ2aWV3c0hhdmVTdXBlcnZpZXdz
XQogICAgICAgICAgICAgfHwgW3NlbGYgaXNIaWRkZW5Pckhhc0hpZGRlbkFuY2VzdG9yXSkgewor
CiAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSB0cmllcyB0byBnaXZlIHBsdWctaW5zIHRo
ZSBzYW1lIHNpemUgdGhleSB3aWxsIGV2ZW50dWFsbHkgaGF2ZS4KICAgICAgICAgLy8gVGhlIHNw
ZWNpZmllZFdpZHRoIGFuZCBzcGVjaWZpZWRIZWlnaHQgdmFyaWFibGVzIGFyZSB1c2VkIHRvIHBy
ZWRpY3QgdGhlIHNpemUgdGhhdAogICAgICAgICAvLyBXZWJDb3JlIHdpbGwgZXZlbnR1YWxseSBy
ZXNpemUgdXMgdG8uCkBAIC0zNDgsMjggKzM3MiwyMiBAQCBzdGF0aWMgVUludDMyIFFEUGl4ZWxG
b3JtYXRGcm9tQ0dCaXRtYXBJCiAgICAgICAgIC8vIFNpbmNlIG90aGVyIHBsdWctaW5zIGFsc28g
bWlnaHQgaGF2ZSB0aGUgc2FtZSBzb3J0IG9mIHRyb3VibGUsIHdlIG1ha2Ugc3VyZQogICAgICAg
ICAvLyB0byBhbHdheXMgZ2l2ZSBwbHVnLWlucyBhIHNpemUgb3RoZXIgdGhhbiAwLDAuCiAKLSAg
ICAgICAgaWYgKHdpbmRvdy53aWR0aCA8PSAwKSB7CisgICAgICAgIGlmICh3aW5kb3cud2lkdGgg
PD0gMCkKICAgICAgICAgICAgIHdpbmRvdy53aWR0aCA9IHNwZWNpZmllZFdpZHRoID4gMCA/IHNw
ZWNpZmllZFdpZHRoIDogMTAwOwotICAgICAgICB9Ci0gICAgICAgIGlmICh3aW5kb3cuaGVpZ2h0
IDw9IDApIHsKKyAgICAgICAgaWYgKHdpbmRvdy5oZWlnaHQgPD0gMCkKICAgICAgICAgICAgIHdp
bmRvdy5oZWlnaHQgPSBzcGVjaWZpZWRIZWlnaHQgPiAwID8gc3BlY2lmaWVkSGVpZ2h0IDogMTAw
OwotICAgICAgICB9CiAKICAgICAgICAgd2luZG93LmNsaXBSZWN0LmJvdHRvbSA9IHdpbmRvdy5j
bGlwUmVjdC50b3A7CiAgICAgICAgIHdpbmRvdy5jbGlwUmVjdC5sZWZ0ID0gd2luZG93LmNsaXBS
ZWN0LnJpZ2h0OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHdpbmRvdy5jbGlwUmVjdC50b3AgPSAo
dWludDE2KXZpc2libGVSZWN0SW5XaW5kb3cub3JpZ2luLnk7Ci0gICAgICAgIHdpbmRvdy5jbGlw
UmVjdC5sZWZ0ID0gKHVpbnQxNil2aXNpYmxlUmVjdEluV2luZG93Lm9yaWdpbi54OwotICAgICAg
ICB3aW5kb3cuY2xpcFJlY3QuYm90dG9tID0gKHVpbnQxNikodmlzaWJsZVJlY3RJbldpbmRvdy5v
cmlnaW4ueSArIHZpc2libGVSZWN0SW5XaW5kb3cuc2l6ZS5oZWlnaHQpOwotICAgICAgICB3aW5k
b3cuY2xpcFJlY3QucmlnaHQgPSAodWludDE2KSh2aXNpYmxlUmVjdEluV2luZG93Lm9yaWdpbi54
ICsgdmlzaWJsZVJlY3RJbldpbmRvdy5zaXplLndpZHRoKTsgICAgICAgIAorICAgICAgICBnZXRO
UFJlY3QodmlzaWJsZVJlY3RJbldpbmRvdywgd2luZG93LmNsaXBSZWN0KTsKICAgICB9CiAgICAg
CiAgICAgLy8gU2F2ZSB0aGUgcG9ydCBzdGF0ZSwgc2V0IHVwIHRoZSBwb3J0IGZvciBlbnRyeSBp
bnRvIHRoZSBwbHVnaW4KICAgICBQb3J0U3RhdGUgcG9ydFN0YXRlOwogICAgIHN3aXRjaCAoZHJh
d2luZ01vZGVsKSB7CiAjaWZuZGVmIE5QX05PX1FVSUNLRFJBVwotICAgICAgICBjYXNlIE5QRHJh
d2luZ01vZGVsUXVpY2tEcmF3OgotICAgICAgICB7CisgICAgICAgIGNhc2UgTlBEcmF3aW5nTW9k
ZWxRdWlja0RyYXc6IHsKICAgICAgICAgICAgIC8vIFNldCB1cCBOU19Qb3J0LgogICAgICAgICAg
ICAgUmVjdCBwb3J0Qm91bmRzOwogICAgICAgICAgICAgQ0dyYWZQdHIgcG9ydCA9IEdldFdpbmRv
d1BvcnQod2luZG93UmVmKTsKQEAgLTM4Miw3ICs0MDAsNyBAQCBzdGF0aWMgVUludDMyIFFEUGl4
ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJCiAgICAgICAgICAgICBQb3J0U3RhdGVfUUQgKnFkUG9ydFN0
YXRlID0gKFBvcnRTdGF0ZV9RRCopbWFsbG9jKHNpemVvZihQb3J0U3RhdGVfUUQpKTsKICAgICAg
ICAgICAgIHBvcnRTdGF0ZSA9IChQb3J0U3RhdGUpcWRQb3J0U3RhdGU7CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIEdldFBvcnQoJnFkUG9ydFN0YXRlLT5vbGRQb3J0KTsgICAgCisgICAgICAg
ICAgICBHZXRHV29ybGQoJnFkUG9ydFN0YXRlLT5vbGRQb3J0LCAmcWRQb3J0U3RhdGUtPm9sZERl
dmljZSk7ICAgIAogCiAgICAgICAgICAgICBxZFBvcnRTdGF0ZS0+b2xkT3JpZ2luLmggPSBwb3J0
Qm91bmRzLmxlZnQ7CiAgICAgICAgICAgICBxZFBvcnRTdGF0ZS0+b2xkT3JpZ2luLnYgPSBwb3J0
Qm91bmRzLnRvcDsKQEAgLTM5Nyw0OSArNDE1LDQ4IEBAIHN0YXRpYyBVSW50MzIgUURQaXhlbEZv
cm1hdEZyb21DR0JpdG1hcEkKICAgICAgICAgICAgIHFkUG9ydFN0YXRlLT5jbGlwUmVnaW9uID0g
Y2xpcFJlZ2lvbjsKIAogICAgICAgICAgICAgQ0dDb250ZXh0UmVmIGN1cnJlbnRDb250ZXh0ID0g
KENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGlj
c1BvcnRdOwotICAgICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgY29udGV4dCBpcyBhbiBvZmZz
Y3JlZW4gYml0bWFwLCB0aGVuIHdlIGNyZWF0ZSBhIEdXb3JsZCBmb3IgaXQKLSAgICAgICAgICAg
IGJvb2wgb2ZmU2NyZWVuQ29udGV4dCA9IGN1cnJlbnRDb250ZXh0ICYmIFdLQ0dDb250ZXh0SXNC
aXRtYXBDb250ZXh0KGN1cnJlbnRDb250ZXh0KTsKLSAgICAgICAgICAgIGlmIChvZmZTY3JlZW5D
b250ZXh0KSB7Ci0gICAgICAgICAgICAgICAgQ0dCaXRtYXBJbmZvIGNvbnRleHRCaXRtYXBJbmZv
ID0gQ0dCaXRtYXBDb250ZXh0R2V0Qml0bWFwSW5mbyhjdXJyZW50Q29udGV4dCk7Ci0gICAgICAg
ICAgICAgICAgR1dvcmxkUHRyIHBPZmZTY3JlZW5HV29ybGQ7Ci0gICAgICAgICAgICAgICAgUmVj
dCBvZmZzY3JlZW5Cb3VuZHM7Ci0gICAgICAgICAgICAgICAgaW50IHJvd0J5dGVzID0gQ0dCaXRt
YXBDb250ZXh0R2V0Qnl0ZXNQZXJSb3coY3VycmVudENvbnRleHQpOwotICAgICAgICAgICAgICAg
IG9mZnNjcmVlbkJvdW5kcy50b3AgPSAwOwotICAgICAgICAgICAgICAgIG9mZnNjcmVlbkJvdW5k
cy5sZWZ0ID0gMDsKLSAgICAgICAgICAgICAgICBvZmZzY3JlZW5Cb3VuZHMucmlnaHQgPSBDR0Jp
dG1hcENvbnRleHRHZXRXaWR0aChjdXJyZW50Q29udGV4dCk7Ci0gICAgICAgICAgICAgICAgb2Zm
c2NyZWVuQm91bmRzLmJvdHRvbSA9IENHQml0bWFwQ29udGV4dEdldEhlaWdodChjdXJyZW50Q29u
dGV4dCk7Ci0gICAgICAgICAgICAgICAgVUludDMyIHBpeGVsRm9ybWF0ID0gUURQaXhlbEZvcm1h
dEZyb21DR0JpdG1hcEluZm8oY29udGV4dEJpdG1hcEluZm8pOwotICAgICAgICAgICAgICAgIGlm
IChwaXhlbEZvcm1hdCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIE5vdCBhIHZhbGlk
IHBpeGVsIGZvcm1hdCAtIGRvbid0IHJlbmRlciBhdCBhbGwuCisgICAgICAgICAgICBpZiAoY3Vy
cmVudENvbnRleHQgJiYgV0tDR0NvbnRleHRJc0JpdG1hcENvbnRleHQoY3VycmVudENvbnRleHQp
KSB7CisgICAgICAgICAgICAgICAgLy8gV2UgdXNlIFdLQ0dDb250ZXh0SXNCaXRtYXBDb250ZXh0
IGhlcmUsIGJlY2F1c2UgaWYgd2UganVzdCBjYWxsZWQgQ0dCaXRtYXBDb250ZXh0R2V0RGF0YQor
ICAgICAgICAgICAgICAgIC8vIG9uIGFueSBjb250ZXh0LCB3ZSdkIGxvZyB0byB0aGUgY29uc29s
ZSBldmVyeSB0aW1lLiBCdXQgZXZlbiBpZiBXS0NHQ29udGV4dElzQml0bWFwQ29udGV4dAorICAg
ICAgICAgICAgICAgIC8vIHJldHVybnMgdHJ1ZSwgaXQgc3RpbGwgbWlnaHQgbm90IGJlIGEgY29u
dGV4dCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIEdXb3JsZCBmb3I7IGZvciBleGFtcGxlCisgICAgICAg
ICAgICAgICAgLy8gdHJhbnNwYXJlbmN5IGxheWVycyB3aWxsIHJldHVybiB0cnVlLCBidXQgcmV0
dXJuIDAgZm9yIENHQml0bWFwQ29udGV4dEdldERhdGEuCisgICAgICAgICAgICAgICAgdm9pZCog
b2Zmc2NyZWVuRGF0YSA9IENHQml0bWFwQ29udGV4dEdldERhdGEoY3VycmVudENvbnRleHQpOwor
ICAgICAgICAgICAgICAgIGlmIChvZmZzY3JlZW5EYXRhKSB7CisgICAgICAgICAgICAgICAgICAg
IC8vIElmIHRoZSBjdXJyZW50IGNvbnRleHQgaXMgYW4gb2Zmc2NyZWVuIGJpdG1hcCwgdGhlbiBj
cmVhdGUgYSBHV29ybGQgZm9yIGl0LgorICAgICAgICAgICAgICAgICAgICBSZWN0IG9mZnNjcmVl
bkJvdW5kczsKICAgICAgICAgICAgICAgICAgICAgb2Zmc2NyZWVuQm91bmRzLnRvcCA9IDA7CiAg
ICAgICAgICAgICAgICAgICAgIG9mZnNjcmVlbkJvdW5kcy5sZWZ0ID0gMDsKLSAgICAgICAgICAg
ICAgICAgICAgb2Zmc2NyZWVuQm91bmRzLnJpZ2h0ID0gMDsKLSAgICAgICAgICAgICAgICAgICAg
b2Zmc2NyZWVuQm91bmRzLmJvdHRvbSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIHJvd0J5dGVz
ID0gMDsKLSAgICAgICAgICAgICAgICAgICAgcGl4ZWxGb3JtYXQgPSBrMzJCR1JBUGl4ZWxGb3Jt
YXQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZvaWQqIGJpdHMgPSBDR0Jp
dG1hcENvbnRleHRHZXREYXRhKGN1cnJlbnRDb250ZXh0KTsKLSAgICAgICAgICAgICAgICBRREVy
ciBlcnIgPSBOZXdHV29ybGRGcm9tUHRyKCZwT2ZmU2NyZWVuR1dvcmxkLCBwaXhlbEZvcm1hdCwg
Jm9mZnNjcmVlbkJvdW5kcywgMCwgMCwgMCwgc3RhdGljX2Nhc3Q8Y2hhcio+KGJpdHMpLCByb3dC
eXRlcyk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHBPZmZTY3JlZW5HV29ybGQgJiYgIWVycik7
Ci0gICAgICAgICAgICAgICAgaWYgKCFlcnIpIHsKLSAgICAgICAgICAgICAgICAgICAgU2V0R1dv
cmxkKHBPZmZTY3JlZW5HV29ybGQsIE5VTEwpOwotICAgICAgICAgICAgICAgICAgICBuUG9ydC5x
ZFBvcnQucG9ydCA9IHBPZmZTY3JlZW5HV29ybGQ7Ci0gICAgICAgICAgICAgICAgICAgIE5TUmVj
dCBib3VuZHNJbldpbmRvdyA9IFtzZWxmIGJvdW5kc107Ci0gICAgICAgICAgICAgICAgICAgIG5Q
b3J0LnFkUG9ydC5wb3J0eCA9ICgoaW50MzIpLWJvdW5kc0luV2luZG93Lm9yaWdpbi54KTsKLSAg
ICAgICAgICAgICAgICAgICAgblBvcnQucWRQb3J0LnBvcnR5ID0gKChpbnQzMiktYm91bmRzSW5X
aW5kb3cub3JpZ2luLnkpOwotICAgICAgICAgICAgICAgICAgICB3aW5kb3cueCA9IDA7Ci0gICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy55ID0gMDsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93
LndpbmRvdyA9ICZuUG9ydDsKLQotICAgICAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGNsaXAg
Ym91bmRzIGZvciB0aGUgZXhpc3RpbmcgY29udGV4dCBhbmQgdXNlIHRoYXQgZm9yIHRoZSBwbHVn
LWluJ3Mgd2luZG93LmNsaXBSZWN0LgotICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGx1Zy1p
biB3aWxsIGludGVyc2VjdCB0aGlzIGNsaXAgcmVjdCB3aXRoIHRoZSBwb3J0J3MgZGlydHkgcmVn
aW9uIGNsaXAgY29uc3RydWN0ZWQgYmVsb3cuIAotICAgICAgICAgICAgICAgICAgICBDR1JlY3Qg
Y29udGV4dENsaXAgPSBDR0NvbnRleHRHZXRDbGlwQm91bmRpbmdCb3goY3VycmVudENvbnRleHQp
OwotICAgICAgICAgICAgICAgICAgICB3aW5kb3cuY2xpcFJlY3QudG9wID0gKHVpbnQxNiljb250
ZXh0Q2xpcC5vcmlnaW4ueTsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LmNsaXBSZWN0Lmxl
ZnQgPSAodWludDE2KWNvbnRleHRDbGlwLm9yaWdpbi54OwotICAgICAgICAgICAgICAgICAgICB3
aW5kb3cuY2xpcFJlY3QucmlnaHQgPSAodWludDE2KXdpbmRvdy5jbGlwUmVjdC5sZWZ0ICsgKHVp
bnQxNiljb250ZXh0Q2xpcC5zaXplLndpZHRoOwotICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
Y2xpcFJlY3QuYm90dG9tID0gKHVpbnQxNil3aW5kb3cuY2xpcFJlY3QudG9wICsgKHVpbnQxNilj
b250ZXh0Q2xpcC5zaXplLmhlaWdodDsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2NyZWVuQm91
bmRzLnJpZ2h0ID0gQ0dCaXRtYXBDb250ZXh0R2V0V2lkdGgoY3VycmVudENvbnRleHQpOworICAg
ICAgICAgICAgICAgICAgICBvZmZzY3JlZW5Cb3VuZHMuYm90dG9tID0gQ0dCaXRtYXBDb250ZXh0
R2V0SGVpZ2h0KGN1cnJlbnRDb250ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgR1dvcmxkUHRy
IG5ld09mZnNjcmVlbkdXb3JsZDsKKyAgICAgICAgICAgICAgICAgICAgUURFcnIgZXJyID0gTmV3
R1dvcmxkRnJvbVB0cigmbmV3T2Zmc2NyZWVuR1dvcmxkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgZ2V0UURQaXhlbEZvcm1hdEZvckJpdG1hcENvbnRleHQoY3VycmVudENvbnRleHQpLCAmb2Zm
c2NyZWVuQm91bmRzLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8Y2hhcio+KG9mZnNjcmVlbkRhdGEpLCBDR0JpdG1hcENvbnRleHRHZXRCeXRlc1BlclJvdyhj
dXJyZW50Q29udGV4dCkpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQobmV3T2Zmc2NyZWVu
R1dvcmxkICYmICFlcnIpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWVycikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKG9mZnNjcmVlbkdXb3JsZCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEaXNwb3NlR1dvcmxkKG9mZnNjcmVlbkdXb3JsZCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBvZmZzY3JlZW5HV29ybGQgPSBuZXdPZmZzY3JlZW5HV29ybGQ7CisKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFNldEdXb3JsZChvZmZzY3JlZW5HV29ybGQsIE5VTEwpOworCisg
ICAgICAgICAgICAgICAgICAgICAgICBwb3J0ID0gb2Zmc2NyZWVuR1dvcmxkOworCisgICAgICAg
ICAgICAgICAgICAgICAgICBuUG9ydC5xZFBvcnQucG9ydCA9IHBvcnQ7CisgICAgICAgICAgICAg
ICAgICAgICAgICBib3VuZHNJbldpbmRvdyA9IFtzZWxmIGJvdW5kc107CisgICAgICAgICAgICAg
ICAgICAgICAgICBuUG9ydC5xZFBvcnQucG9ydHggPSAoaW50MzIpLWJvdW5kc0luV2luZG93Lm9y
aWdpbi54OworICAgICAgICAgICAgICAgICAgICAgICAgblBvcnQucWRQb3J0LnBvcnR5ID0gKGlu
dDMyKS1ib3VuZHNJbldpbmRvdy5vcmlnaW4ueTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvdy54ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy55ID0gMDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy53aW5kb3cgPSAmblBvcnQ7CisKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIFVzZSB0aGUgY2xpcCBib3VuZHMgZnJvbSB0aGUgY29udGV4dCBpbnN0
ZWFkIG9mIHRoZSBib3VuZHMgd2UgY3JlYXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgLy8g
ZnJvbSB0aGUgd2luZG93IGFib3ZlLgorICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TlBSZWN0
KENHQ29udGV4dEdldENsaXBCb3VuZGluZ0JveChjdXJyZW50Q29udGV4dCksIHdpbmRvdy5jbGlw
UmVjdCk7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CisKICAgICAgICAgICAgIE1hY1NldFJlY3RSZ24oY2xpcFJlZ2lvbiwKICAgICAgICAg
ICAgICAgICB3aW5kb3cuY2xpcFJlY3QubGVmdCArIG5Qb3J0LnFkUG9ydC5wb3J0eCwgd2luZG93
LmNsaXBSZWN0LnRvcCArIG5Qb3J0LnFkUG9ydC5wb3J0eSwKICAgICAgICAgICAgICAgICB3aW5k
b3cuY2xpcFJlY3QucmlnaHQgKyBuUG9ydC5xZFBvcnQucG9ydHgsIHdpbmRvdy5jbGlwUmVjdC5i
b3R0b20gKyBuUG9ydC5xZFBvcnQucG9ydHkpOwpAQCAtNDc0LDEzICs0OTEsMTIgQEAgc3RhdGlj
IFVJbnQzMiBRRFBpeGVsRm9ybWF0RnJvbUNHQml0bWFwSQogICAgICAgICAgICAgICAgIC8vIElu
dGVyc2VjdCB0aGUgZGlydHkgcmVnaW9uIHdpdGggdGhlIGNsaXAgcmVnaW9uLCBzbyB0aGF0IHdl
IG9ubHkgZHJhdyBvdmVyIGRpcnR5IHBhcnRzCiAgICAgICAgICAgICAgICAgU2VjdFJnbihjbGlw
UmVnaW9uLCB2aWV3Q2xpcFJlZ2lvbiwgY2xpcFJlZ2lvbik7CiAgICAgICAgICAgICAgICAgRGlz
cG9zZVJnbih2aWV3Q2xpcFJlZ2lvbik7Ci0gICAgICAgICAgICAgICAgaWYgKG9mZlNjcmVlbkNv
bnRleHQpIHsKKyAgICAgICAgICAgICAgICBpZiAocG9ydCA9PSBvZmZzY3JlZW5HV29ybGQpIHsK
ICAgICAgICAgICAgICAgICAgICAgR2V0UmVnaW9uQm91bmRzKGNsaXBSZWdpb24sICZjbGlwQm91
bmRzKTsKICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0UmduKGNsaXBSZWdpb24sIC1jbGlwQm91
bmRzLmxlZnQsIC1jbGlwQm91bmRzLnRvcCk7Ci0gICAgICAgICAgICAgICAgICAgIHBvcnQgPSBu
UG9ydC5xZFBvcnQucG9ydDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAg
CisKICAgICAgICAgICAgIC8vIFN3aXRjaCB0byB0aGUgcG9ydCBhbmQgc2V0IGl0IHVwLgogICAg
ICAgICAgICAgU2V0UG9ydChwb3J0KTsKICAgICAgICAgICAgIFBlbk5vcm1hbCgpOwpAQCAtNDk3
LDQwICs1MTMsNTEgQEAgc3RhdGljIFVJbnQzMiBRRFBpeGVsRm9ybWF0RnJvbUNHQml0bWFwSQog
CiAgICAgICAgICAgICAgICAgLy8gU29tZSBwbHVnaW5zIGRvIHRoZWlyIG93biBCZWdpblVwZGF0
ZS9FbmRVcGRhdGUuCiAgICAgICAgICAgICAgICAgLy8gRm9yIHRob3NlLCB3ZSBtdXN0IG1ha2Ug
c3VyZSB0aGF0IHRoZSB1cGRhdGUgcmVnaW9uIGNvbnRhaW5zIHRoZSBhcmVhIHdlIHdhbnQgdG8g
ZHJhdy4KLSAgICAgICAgICAgICAgICBpZiAob2ZmU2NyZWVuQ29udGV4dCkKKyAgICAgICAgICAg
ICAgICBpZiAocG9ydCA9PSBvZmZzY3JlZW5HV29ybGQpCiAgICAgICAgICAgICAgICAgICAgIE9m
ZnNldFJnbihjbGlwUmVnaW9uLCBjbGlwQm91bmRzLmxlZnQsIGNsaXBCb3VuZHMudG9wKTsKICAg
ICAgICAgICAgICAgICBJbnZhbFdpbmRvd1Jnbih3aW5kb3dSZWYsIGNsaXBSZWdpb24pOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBxZFBvcnRTdGF0ZS0+Zm9yVXBk
YXRlID0gZm9yVXBkYXRlOwotCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAg
ICBicmVhazsKICNlbmRpZiAvKiBOUF9OT19RVUlDS0RSQVcgKi8KLSAgICAgICAgCi0gICAgICAg
IGNhc2UgTlBEcmF3aW5nTW9kZWxDb3JlR3JhcGhpY3M6Ci0gICAgICAgIHsgICAgICAgICAgICAK
KworICAgICAgICBjYXNlIE5QRHJhd2luZ01vZGVsQ29yZUdyYXBoaWNzOiB7ICAgICAgICAgICAg
CiAgICAgICAgICAgICAvLyBBIENvcmVHcmFwaGljcyBwbHVnaW4ncyB3aW5kb3cgbWF5IG9ubHkg
YmUgc2V0IHdoaWxlIHRoZSBwbHVnaW4gdmlldyBpcyBiZWluZyB1cGRhdGVkCiAgICAgICAgICAg
ICBBU1NFUlQoZm9yVXBkYXRlICYmIFtOU1ZpZXcgZm9jdXNWaWV3XSA9PSBzZWxmKTsKIAorICAg
ICAgICAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGlj
c0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07CisKICAgICAgICAgICAgIFBv
cnRTdGF0ZV9DRyAqY2dQb3J0U3RhdGUgPSAoUG9ydFN0YXRlX0NHICopbWFsbG9jKHNpemVvZihQ
b3J0U3RhdGVfQ0cpKTsKICAgICAgICAgICAgIHBvcnRTdGF0ZSA9IChQb3J0U3RhdGUpY2dQb3J0
U3RhdGU7Ci0gICAgICAgICAgICBjZ1BvcnRTdGF0ZS0+Y29udGV4dCA9IChDR0NvbnRleHRSZWYp
W1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKKyAgICAg
ICAgICAgIGNnUG9ydFN0YXRlLT5jb250ZXh0ID0gY29udGV4dDsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgLy8gVXBkYXRlIHRoZSBwbHVnaW4ncyB3aW5kb3cvY29udGV4dAogICAgICAgICAg
ICAgblBvcnQuY2dQb3J0LndpbmRvdyA9IHdpbmRvd1JlZjsKLSAgICAgICAgICAgIG5Qb3J0LmNn
UG9ydC5jb250ZXh0ID0gY2dQb3J0U3RhdGUtPmNvbnRleHQ7CisgICAgICAgICAgICBuUG9ydC5j
Z1BvcnQuY29udGV4dCA9IGNvbnRleHQ7CiAgICAgICAgICAgICB3aW5kb3cud2luZG93ID0gJm5Q
b3J0LmNnUG9ydDsKIAogICAgICAgICAgICAgLy8gU2F2ZSBjdXJyZW50IGdyYXBoaWNzIGNvbnRl
eHQncyBzdGF0ZTsgd2lsbCBiZSByZXN0b3JlZCBieSAtcmVzdG9yZVBvcnRTdGF0ZToKLSAgICAg
ICAgICAgIENHQ29udGV4dFNhdmVHU3RhdGUoblBvcnQuY2dQb3J0LmNvbnRleHQpOworICAgICAg
ICAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgLy8gRklYTUUgKDQ1NDQ5NzEpOiBDbGlwIHRvIGRpcnR5IHJlZ2lvbiB3aGVuIHVwZGF0
aW5nIGluICJ3aW5kb3dsZXNzIiBtb2RlICh0cmFuc3BhcmVudCksIGxpa2UgaW4gdGhlIFFEIGNh
c2UKKyAgICAgICAgICAgIC8vIEdldCBsaXN0IG9mIGRpcnR5IHJlY3RzIGZyb20gdGhlIG9wYXF1
ZSBhbmNlc3RvciAtLSBXZWJLaXQgZG9lcyBzb21lIHRyaWNrcyB3aXRoIGludmFsaWRhdGlvbiBh
bmQKKyAgICAgICAgICAgIC8vIGRpc3BsYXkgdG8gZW5hYmxlIHotb3JkZXJpbmcgZm9yIE5TVmll
d3M7IGEgc2lkZS1lZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IG9ubHkgdGhlIFdlYkhUTUxWaWV3Cisg
ICAgICAgICAgICAvLyBrbm93cyBhYm91dCB0aGUgdHJ1ZSBzZXQgb2YgZGlydHkgcmVjdHMuCisg
ICAgICAgICAgICBOU1ZpZXcgKm9wYXF1ZUFuY2VzdG9yID0gW3NlbGYgb3BhcXVlQW5jZXN0b3Jd
OworICAgICAgICAgICAgY29uc3QgTlNSZWN0ICpkaXJ0eVJlY3RzOworICAgICAgICAgICAgaW50
IGNvdW50OworICAgICAgICAgICAgW29wYXF1ZUFuY2VzdG9yIGdldFJlY3RzQmVpbmdEcmF3bjom
ZGlydHlSZWN0cyBjb3VudDomY291bnRdOworICAgICAgICAgICAgVmVjdG9yPENHUmVjdCwgMTY+
IGNvbnZlcnRlZERpcnR5UmVjdHM7CisgICAgICAgICAgICBjb252ZXJ0ZWREaXJ0eVJlY3RzLnJl
c2l6ZShjb3VudCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kp
CisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxOU1JlY3QmPihjb252ZXJ0ZWREaXJ0
eVJlY3RzW2ldKSA9IFtzZWxmIGNvbnZlcnRSZWN0OmRpcnR5UmVjdHNbaV0gZnJvbVZpZXc6b3Bh
cXVlQW5jZXN0b3JdOworICAgICAgICAgICAgQ0dDb250ZXh0Q2xpcFRvUmVjdHMoY29udGV4dCwg
Y29udmVydGVkRGlydHlSZWN0cy5kYXRhKCksIGNvdW50KTsKKworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgICAgIAotICAgICAgICBjYXNlIE5QRHJh
d2luZ01vZGVsT3BlbkdMOgotICAgICAgICB7CisKKyAgICAgICAgY2FzZSBOUERyYXdpbmdNb2Rl
bE9wZW5HTDogewogICAgICAgICAgICAgLy8gQW4gT3BlbkdMIHBsdWdpbidzIHdpbmRvdyBtYXkg
b25seSBiZSBzZXQgd2hpbGUgdGhlIHBsdWdpbiB2aWV3IGlzIGJlaW5nIHVwZGF0ZWQKICAgICAg
ICAgICAgIEFTU0VSVChmb3JVcGRhdGUgJiYgW05TVmlldyBmb2N1c1ZpZXddID09IHNlbGYpOwog
CkBAIC01NTgsMjggKzU4NSwyOSBAQCBzdGF0aWMgVUludDMyIFFEUGl4ZWxGb3JtYXRGcm9tQ0dC
aXRtYXBJCiAgICAgICAgICAgICAvLyBBZGp1c3Qgdmlld3BvcnQgYWNjb3JkaW5nIHRvIGNsaXAK
ICAgICAgICAgICAgIHN3aXRjaCAod2luZG93LnR5cGUpIHsKICAgICAgICAgICAgICAgICBjYXNl
IE5QV2luZG93VHlwZVdpbmRvdzoKLSAgICAgICAgICAgICAgICAgICAgZ2xWaWV3cG9ydChzdGF0
aWNfY2FzdDxHTGludD4oTlNNaW5YKGJvdW5kc0luV2luZG93KSAtIE5TTWluWCh2aXNpYmxlUmVj
dEluV2luZG93KSksIHN0YXRpY19jYXN0PEdMaW50PihOU01heFkodmlzaWJsZVJlY3RJbldpbmRv
dykgLSBOU01heFkoYm91bmRzSW5XaW5kb3cpKSwgd2luZG93LndpZHRoLCB3aW5kb3cuaGVpZ2h0
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZ2xWaWV3cG9y
dChzdGF0aWNfY2FzdDxHTGludD4oTlNNaW5YKGJvdW5kc0luV2luZG93KSAtIE5TTWluWCh2aXNp
YmxlUmVjdEluV2luZG93KSksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxH
TGludD4oTlNNYXhZKHZpc2libGVSZWN0SW5XaW5kb3cpIC0gTlNNYXhZKGJvdW5kc0luV2luZG93
KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LndpZHRoLCB3aW5kb3cuaGVp
Z2h0KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgY2FzZSBOUFdpbmRvd1R5cGVEcmF3YWJsZToKLSAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgY2FzZSBOUFdpbmRvd1R5cGVEcmF3YWJsZTogewogICAgICAgICAg
ICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBoZWlnaHQ7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChbc2VsZiBfZ2V0QUdMT2Zmc2NyZWVuQnVmZmVyOk5VTEwgd2lkdGg6JndpZHRoIGhlaWdodDom
aGVpZ2h0XSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdsVmlld3BvcnQoMCwgMCwgd2lkdGgs
IGhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBicmVhazsKICAg
ICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgIHBvcnRTdGF0ZSA9IE5VTEw7Ci0gICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIAogICAgIHJldHVybiBwb3J0U3RhdGU7CkBAIC01OTcs
MjcgKzYyNSwxNiBAQCBzdGF0aWMgVUludDMyIFFEUGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJCiAg
ICAgCiAgICAgc3dpdGNoIChkcmF3aW5nTW9kZWwpIHsKICNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFX
Ci0gICAgICAgIGNhc2UgTlBEcmF3aW5nTW9kZWxRdWlja0RyYXc6Ci0gICAgICAgIHsKLSAgICAg
ICAgICAgIENHQ29udGV4dFJlZiBjdXJyZW50Q29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tOU0dy
YXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgY29udGV4dCBpcyBhbiBvZmZzY3JlZW4g
Yml0bWFwLCB0aGVuIHdlIG5lZWQgdG8KLSAgICAgICAgICAgIC8vIGRpc3Bvc2UgaXRzIEdXb3Js
ZCBhbmQgcmVzdG9yZSB0aGUgV2luZG93J3MgR1dvcmxkCi0gICAgICAgICAgICBpZiAoY3VycmVu
dENvbnRleHQgJiYgV0tDR0NvbnRleHRJc0JpdG1hcENvbnRleHQoY3VycmVudENvbnRleHQpKSB7
Ci0gICAgICAgICAgICAgICAgR1dvcmxkUHRyIGN1ckdXb3JsZDsKLSAgICAgICAgICAgICAgICBH
ZXRHV29ybGQoJmN1ckdXb3JsZCwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgRGlzcG9zZUdXb3Js
ZChjdXJHV29ybGQpOwotICAgICAgICAgICAgICAgIFdpbmRvd1JlZiB3aW5kb3dSZWYgPSAoV2lu
ZG93UmVmKVtbc2VsZiBjdXJyZW50V2luZG93XSB3aW5kb3dSZWZdOwotICAgICAgICAgICAgICAg
IENHcmFmUHRyIHBvcnQgPSBHZXRXaW5kb3dQb3J0KHdpbmRvd1JlZik7Ci0gICAgICAgICAgICAg
ICAgU2V0R1dvcmxkKHBvcnQsIE5VTEwpOwotICAgICAgICAgICAgfQotCisgICAgICAgIGNhc2Ug
TlBEcmF3aW5nTW9kZWxRdWlja0RyYXc6IHsKICAgICAgICAgICAgIFBvcnRTdGF0ZV9RRCAqcWRQ
b3J0U3RhdGUgPSAoUG9ydFN0YXRlX1FEICopcG9ydFN0YXRlOwogICAgICAgICAgICAgV2luZG93
UmVmIHdpbmRvd1JlZiA9IChXaW5kb3dSZWYpW1tzZWxmIGN1cnJlbnRXaW5kb3ddIHdpbmRvd1Jl
Zl07CiAgICAgICAgICAgICBDR3JhZlB0ciBwb3J0ID0gR2V0V2luZG93UG9ydCh3aW5kb3dSZWYp
OworCisgICAgICAgICAgICBTZXRQb3J0KHBvcnQpOworCiAgICAgICAgICAgICBpZiAocWRQb3J0
U3RhdGUtPmZvclVwZGF0ZSkKICAgICAgICAgICAgICAgICBWYWxpZFdpbmRvd1Jnbih3aW5kb3dS
ZWYsIHFkUG9ydFN0YXRlLT5jbGlwUmVnaW9uKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAg
ICBTZXRPcmlnaW4ocWRQb3J0U3RhdGUtPm9sZE9yaWdpbi5oLCBxZFBvcnRTdGF0ZS0+b2xkT3Jp
Z2luLnYpOwogCiAgICAgICAgICAgICBTZXRQb3J0Q2xpcFJlZ2lvbihwb3J0LCBxZFBvcnRTdGF0
ZS0+b2xkQ2xpcFJlZ2lvbik7CkBAIC02MjgsMjYgKzY0NSwyNCBAQCBzdGF0aWMgVUludDMyIFFE
UGl4ZWxGb3JtYXRGcm9tQ0dCaXRtYXBJCiAgICAgICAgICAgICBEaXNwb3NlUmduKHFkUG9ydFN0
YXRlLT5vbGRWaXNpYmxlUmVnaW9uKTsKICAgICAgICAgICAgIERpc3Bvc2VSZ24ocWRQb3J0U3Rh
dGUtPmNsaXBSZWdpb24pOwogCi0gICAgICAgICAgICBTZXRHV29ybGQocWRQb3J0U3RhdGUtPm9s
ZFBvcnQsIE5VTEwpOworICAgICAgICAgICAgU2V0R1dvcmxkKHFkUG9ydFN0YXRlLT5vbGRQb3J0
LCBxZFBvcnRTdGF0ZS0+b2xkRGV2aWNlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
Ci0gICAgICAgIGJyZWFrOwogI2VuZGlmIC8qIE5QX05PX1FVSUNLRFJBVyAqLwogICAgICAgICAK
ICAgICAgICAgY2FzZSBOUERyYXdpbmdNb2RlbENvcmVHcmFwaGljczoKLSAgICAgICAgewogICAg
ICAgICAgICAgQVNTRVJUKFtOU1ZpZXcgZm9jdXNWaWV3XSA9PSBzZWxmKTsKICAgICAgICAgICAg
IEFTU0VSVCgoKFBvcnRTdGF0ZV9DRyAqKXBvcnRTdGF0ZSktPmNvbnRleHQgPT0gblBvcnQuY2dQ
b3J0LmNvbnRleHQpOwogICAgICAgICAgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShuUG9ydC5j
Z1BvcnQuY29udGV4dCk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgCiAgICAgICAgIGNhc2UgTlBEcmF3aW5nTW9kZWxPcGVuR0w6CiAgICAg
ICAgICAgICBhZ2xTZXRDdXJyZW50Q29udGV4dCgoKFBvcnRTdGF0ZV9HTCAqKXBvcnRTdGF0ZSkt
Pm9sZENvbnRleHQpOwotICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAtMTU4NCw4
ICsxNTk5LDEzIEBAIHN0YXRpYyBPU1N0YXR1cyBUU01FdmVudEhhbmRsZXIoRXZlbnRIYW4KICAg
ICByZXR1cm4gbmlsOwogfQogCi0tICh2b2lkKWZyZWVBdHRyaWJ1dGVLZXlzQW5kVmFsdWVzCist
ICh2b2lkKWZpbmkKIHsKKyNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFXCisgICAgaWYgKG9mZnNjcmVl
bkdXb3JsZCkKKyAgICAgICAgRGlzcG9zZUdXb3JsZChvZmZzY3JlZW5HV29ybGQpOworI2VuZGlm
CisKICAgICB1bnNpZ25lZCBpOwogICAgIGZvciAoaSA9IDA7IGkgPCBhcmdzQ291bnQ7IGkrKykg
ewogICAgICAgICBmcmVlKGNBdHRyaWJ1dGVzW2ldKTsKQEAgLTE2MTksNyArMTYzOSw3IEBAIHN0
YXRpYyBPU1N0YXR1cyBUU01FdmVudEhhbmRsZXIoRXZlbnRIYW4KICAgICBBU1NFUlQoIWFnbFdp
bmRvdyk7CiAgICAgQVNTRVJUKCFhZ2xDb250ZXh0KTsKIAotICAgIFtzZWxmIGZyZWVBdHRyaWJ1
dGVLZXlzQW5kVmFsdWVzXTsKKyAgICBbc2VsZiBmaW5pXTsKIAogICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KQEAgLTE2MjksNyArMTY0OSw3IEBAIHN0YXRpYyBPU1N0YXR1cyBUU01FdmVudEhhbmRs
ZXIoRXZlbnRIYW4KICAgICBBU1NFUlRfTUFJTl9USFJFQUQoKTsKICAgICBBU1NFUlQoIWlzU3Rh
cnRlZCk7CiAKLSAgICBbc2VsZiBmcmVlQXR0cmlidXRlS2V5c0FuZFZhbHVlc107CisgICAgW3Nl
bGYgZmluaV07CiAKICAgICBbc3VwZXIgZmluYWxpemVdOwogfQpAQCAtMTY3NSwxMiArMTY5NSw2
IEBAIHN0YXRpYyBPU1N0YXR1cyBUU01FdmVudEhhbmRsZXIoRXZlbnRIYW4KICAgICAgICAgICAg
IENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY2dDb250ZXh0KTsKICAgICAgICAgfQogICAgIH0KLSAg
ICAKLSAgICAvLyBTZXQgdGhlIENHIGNsaXAgcGF0aCB0byB0aGUgcGx1Zy1pbiBkaXJ0eSByZWN0
LiBUaGlzIGFsbG93cyBwbHVnLWlucyB0byBvYnRhaW4gdGhlaXIgZGlydHkgcmVjdCB1c2luZwot
ICAgIC8vIGZ1bmN0aW9ucyBsaWtlIENHQ29udGV4dEdldENsaXBCb3VuZGluZ0JveCgpLgotICAg
IGlmIChkcmF3aW5nTW9kZWwgPT0gTlBEcmF3aW5nTW9kZWxDb3JlR3JhcGhpY3MpIAotICAgICAg
ICBDR0NvbnRleHRDbGlwVG9SZWN0KChDR0NvbnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSwgKENHUmVjdCAmKXJlY3QpOwotICAgICAgIAog
fQogCiAtIChCT09MKWlzRmxpcHBlZAo=
</data>
<flag name="review"
          id="5538"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>