<?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>23432</bug_id>
          
          <creation_ts>2009-01-20 07:54:50 -0800</creation_ts>
          <short_desc>window.open scripts do not trigger newWindowDelegate callback.</short_desc>
          <delta_ts>2026-03-03 11:58:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>525.x (Safari 3.2)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://code.google.com/p/pandoraboy/source/browse/tags/pandoraboy_0_3/Controller.m#156</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dirk Theisen">d.theisen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>joone.hur</cc>
    
    <cc>joone.hur</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mathstuf</cc>
    
    <cc>nicolas</cc>
    
    <cc>senko</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>106331</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Theisen">d.theisen</who>
    <bug_when>2009-01-20 07:54:50 -0800</bug_when>
    <thetext>By WebKit delegate implements

- (void)webView:(WebView *)sender decidePolicyForNewWindowAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request newFrameName:(NSString *)frameName decisionListener:(id &lt; WebPolicyDecisionListener &gt;)listener;

It gets called for href links an target set, but not for javascript window.open(url) links. Instead, a new window is silently requested and the new url is requested to load into that new window.

I&apos;d expect the above delegate to be called prior to new window/frame generation with the url given in the window.open call.


In addition, on window.open the delegate method

- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request

gets passed a nil request which makes it impossible to take appropriate action as a workaround. This might qualify for a different bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202283</commentid>
    <comment_count>1</comment_count>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2010-03-21 06:24:07 -0700</bug_when>
    <thetext>In WebKitGtk port,  &quot;new-window-policy-decision-requested&quot;  signal isn&apos;t also triggered when using the window.open call.
It seems like a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231555</commentid>
    <comment_count>2</comment_count>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-05-27 21:47:37 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; In WebKitGtk port,  &quot;new-window-policy-decision-requested&quot;  signal isn&apos;t also triggered when using the window.open call.
&gt; It seems like a bug.

For javascript it will call ChromeClient::createWindow() instead. In EFL port I&apos;ve implemented both ChromeClientEfl::createWindow() and ChromeClient::decidePolicyForNewWindowAction() by calling our ewk_view_window_create() with different parameters in order to be able to differentiate between javascript ones and link ones.

Unfortunately, sending upstream this code is being blocked by other bugs that are not reviewed yet. As soon as they are r+ cq+ I&apos;ll send them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294388</commentid>
    <comment_count>3</comment_count>
      <attachid>70783</attachid>
    <who name="Juan Pablo Ugarte">juanpablougarte</who>
    <bug_when>2010-10-14 14:53:23 -0700</bug_when>
    <thetext>Created attachment 70783
Simple test case, that show new-window-policy-decision-requested is not emited on JS window.open()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295672</commentid>
    <comment_count>4</comment_count>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-10-18 12:03:51 -0700</bug_when>
    <thetext>For the record, this has something to do with a fixme in JSDOMWindowCustom.cpp line 678:

// FIXME: It&apos;s much better for client API if a new window starts with a URL, here where we
// know what URL we are going to open. Unfortunately, this code passes the empty string
// for the URL, but there&apos;s a reason for that. Before loading we have to set up the opener,
// openedByDOM, and dialogArguments values. Also, to decide whether to use the URL we currently
// do an allowsAccessFrom call using the window we create, which can&apos;t be done before creating it.
// We&apos;d have to resolve all those issues to pass the URL instead of &quot;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296297</commentid>
    <comment_count>5</comment_count>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-10-19 11:14:59 -0700</bug_when>
    <thetext>After more analyses, I concluded that this missing newWindowDelegate callback hides a bigger problem. The problem is that checking the window policy is an asynchronous call but window.open() calls are handled synchronously. From my point of view, if new window is denied by the client, window.open() should return undefined. This cannot be achieved with current API.

As exposed by Lucas, one solution is to check the policy when ChromeClient::createWindow() is called. I&apos;m currently writing a patch for the Gtk platform. There is other issues that will need fixing before it actually work.

1. The FrameLoadRequest passed to createWindow() always contains an empty URL (&quot;&quot;).
2. There is only NavigationTypeOther that seems to fit, maybe a NavigationTypeJavascript would be better. (optional I guess)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296352</commentid>
    <comment_count>6</comment_count>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-10-19 13:07:31 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I&apos;m currently writing a patch for the Gtk platform. There is other issues that &gt; will need fixing before it actually work.

Sorry for replying to my own comment, but it&apos;s not possible to implement the check in Gtk&apos;s ChromeClient::createWindow(). The reason is that Gtk port allow to queue the decisions for later.

I&apos;ve compared window.open() with other similar API like history.go() and found that they all return void which make it simple to delay their execution. For window.open(), the return value is a JavaScript Window object, which is currently bound at creation time to the native frame/page object. This function is implemented as one synchronous native call, and thus cannot be interrupted and resumed later.

Base on these facts, I think a potential solution would be to delay the creation of native frame until the navigation policy decision has been taken. The side effect is that call to window.open() will return a JavaScript window even if the window creation is denied. Is this acceptable ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306817</commentid>
    <comment_count>7</comment_count>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-09 08:52:59 -0800</bug_when>
    <thetext>After more work on this I&apos;ve finally managed to implement a solution that I will soon attach. The solution I&apos;ve found is to allow creating page without making it visible (see Page::chrome().show() and WebCore::createWindow()). This enables two things: 1) you can actually request for location change before displaying the window, which allow making popup blocking decision/triage based on URI before the window is displayed and 2) for synchronous scripted popup (e.g. window.open()), you can simply create an hidden window, fire NewWindowPolicy on initial location change and show only if decision was positive (close if not).

At first I was concern about show() call being flipped with ChangeLocationPolicy, but I found that there exist cases where we already get this order. Stay tunned ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306975</commentid>
    <comment_count>8</comment_count>
      <attachid>73415</attachid>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-09 14:21:29 -0800</bug_when>
    <thetext>Created attachment 73415
[PATCH 1/4] Allow creating hidden window

Allow creating hidden window that can be destroyed if it&apos;s creation was
refused by NewWindowPolicy. This is required to fullfill the synchronous
requirement of JS call to window.open().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306976</commentid>
    <comment_count>9</comment_count>
      <attachid>73416</attachid>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-09 14:22:05 -0800</bug_when>
    <thetext>Created attachment 73416
[PATCH 2/4] Show window only after initial location request

To fix this bug we enabled creating hidden windows. This patch takes
benifit of this new feature and queue location change before calling
Page::chrome()-&gt;show(). This mean URI can be considered sooner by
non-destructive popup blocker like the one in Chrome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306978</commentid>
    <comment_count>10</comment_count>
      <attachid>73417</attachid>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-09 14:22:40 -0800</bug_when>
    <thetext>Created attachment 73417
[PATCH 3/4] Don&apos;t duplicate code from FrameTree::find()

In JSDOMWindow::open() we duplicate some of the code from
FrameTree::find(). This patch also removes one call to FrameTree::find().
This code cleanup is attached to this bug since it ensure that createWindow
is actually called to create new window, reducing side effect risk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306979</commentid>
    <comment_count>11</comment_count>
      <attachid>73418</attachid>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-09 14:23:12 -0800</bug_when>
    <thetext>Created attachment 73418
[PATCH 4/4] Trigger newWindowDelegate when window.open() is called

This is a bit tricky since newWindowDelegate() is normally triggered before
creating the actual window. But since window.open() returns a window, we have
no choice but to create it. In this patch, we play with the window visibility,
creating the window and launching the newWindowDelegate() through
changeLocation() and a special optional parameter. The result is that the
window will only be showed if the policy is accepted, and will be closed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306980</commentid>
    <comment_count>12</comment_count>
      <attachid>73418</attachid>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-09 14:27:10 -0800</bug_when>
    <thetext>Comment on attachment 73418
[PATCH 4/4] Trigger newWindowDelegate when window.open() is called

Note: style check fails because this patch depends on cleanup patch to apply cleanly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307008</commentid>
    <comment_count>13</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-09 14:52:50 -0800</bug_when>
    <thetext>Attachment 73416 did not build on qt:
Build output: http://queues.webkit.org/results/5528067</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307033</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-09 15:45:48 -0800</bug_when>
    <thetext>Attachment 73416 did not build on gtk:
Build output: http://queues.webkit.org/results/5496057</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307119</commentid>
    <comment_count>15</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-11-09 19:29:25 -0800</bug_when>
    <thetext>Attachment 73416 did not build on win:
Build output: http://queues.webkit.org/results/5484069</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307130</commentid>
    <comment_count>16</comment_count>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-09 19:57:18 -0800</bug_when>
    <thetext>Ok, tell me what is the procedure here, because what the automated build does wont work, you can&apos;t try all patches separately, e.g. 2 depends on 1, and 4 depends on 3 and 1. Maybe I should have requested review for 1 and 3 first, and waited for them to be upstream ?

thanks, and sorry for noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307412</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-10 10:30:30 -0800</bug_when>
    <thetext>&gt; Ok, tell me what is the procedure here, because what the automated build does wont work, you can&apos;t try all patches separately, e.g. 2 depends on 1, and 4 depends on 3 and 1. Maybe I should have requested review for 1 and 3 first, and waited for them to be upstream ?

The EWS doesn&apos;t handle dependent patch sequences.  You&apos;re welcome to add support for them if you like, but it doesn&apos;t come up that often.  Sorry for the bugmail spam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307467</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-10 11:58:27 -0800</bug_when>
    <thetext>Attachment 73416 did not build on chromium:
Build output: http://queues.webkit.org/results/5530077</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308018</commentid>
    <comment_count>19</comment_count>
      <attachid>73418</attachid>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-11 11:29:38 -0800</bug_when>
    <thetext>Comment on attachment 73418
[PATCH 4/4] Trigger newWindowDelegate when window.open() is called

It&apos;s too soon to request review, need to wait for patch 1 and 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308019</commentid>
    <comment_count>20</comment_count>
      <attachid>73416</attachid>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-11 11:30:11 -0800</bug_when>
    <thetext>Comment on attachment 73416
[PATCH 2/4] Show window only after initial location request

Too soon to request view, need to wait for patch 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314863</commentid>
    <comment_count>21</comment_count>
      <attachid>75107</attachid>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-29 22:32:42 -0800</bug_when>
    <thetext>Created attachment 75107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314872</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-29 23:22:26 -0800</bug_when>
    <thetext>Attachment 75107 did not build on chromium:
Build output: http://queues.webkit.org/results/6459013</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315051</commentid>
    <comment_count>23</comment_count>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2010-11-30 07:57:19 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Attachment 75107 [details] did not build on chromium:
&gt; Build output: http://queues.webkit.org/results/6459013

It seems that I broke V8 build, I&apos;ll fix soon, see log:

In file included from WebCore/bindings/v8/specialization/V8BindingDOMWindow.h:34,
                 from WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp:53:
WebCore/bindings/generic/BindingDOMWindow.h: In static member function ‘static WebCore::Frame* WebCore::BindingDOMWindow&lt;Binding&gt;::createWindow(WebCore::State&lt;Binding&gt;*, WebCore::Frame*, WebCore::Frame*, WebCore::Frame*, const WTF::String&amp;, const WTF::String&amp;, const WebCore::WindowFeatures&amp;, typename Binding::Value)’:
WebCore/bindings/generic/BindingDOMWindow.h:128: error: ‘create’ was not declared in this scope</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392815</commentid>
    <comment_count>24</comment_count>
      <attachid>75107</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-26 15:26:11 -0700</bug_when>
    <thetext>Comment on attachment 75107
Patch

This patch has an incorrect ChangeLog, does not contain tests, and does not compile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393547</commentid>
    <comment_count>25</comment_count>
    <who name="Nicolas Dufresne">nicolas</who>
    <bug_when>2011-04-27 08:00:48 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 75107 [details])
&gt; This patch has an incorrect ChangeLog

Please specify so I can fix.

&gt; does not contain tests,
As explain in the log, this is not visible from HTML side. As every port wraps this differently, I cannot come up with a test that works for all ports, at best I can provide a GTK port, base on the test case originally attached.

&gt; and does not compile.

This can be fixed, please leave the bug open, I need to rebase against the new folder organization, and I&apos;m doing that on free time, I have no more particular interest on my side anymore, aside correctness. If anyone needs it sooner, well take over the patch, the implementation is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998988</commentid>
    <comment_count>26</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-08 18:32:27 -0700</bug_when>
    <thetext>*** Bug 34715 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2186644</commentid>
    <comment_count>27</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-03-03 11:58:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/171647708&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>70783</attachid>
            <date>2010-10-14 14:53:23 -0700</date>
            <delta_ts>2010-10-14 14:53:23 -0700</delta_ts>
            <desc>Simple test case, that show new-window-policy-decision-requested is not emited on JS window.open()</desc>
            <filename>new_window_signal_test_case.c</filename>
            <type>text/x-csrc</type>
            <size>4107</size>
            <attacher name="Juan Pablo Ugarte">juanpablougarte</attacher>
            
              <data encoding="base64">LyogLSotIE1vZGU6IEM7IGluZGVudC10YWJzLW1vZGU6IHQ7IGMtYmFzaWMtb2Zmc2V0OiA0OyB0
YWItd2lkdGg6IDQgLSotICovCi8qIGdjYyBgcGtnLWNvbmZpZyAtLWNmbGFncyAtLWxpYnMgd2Vi
a2l0LTEuMGAgbmV3X3dpbmRvd19zaWduYWxfdGVzdF9jYXNlLmMgKi8KI2luY2x1ZGUgPHdlYmtp
dC93ZWJraXQuaD4KCnN0YXRpYyBXZWJLaXRXZWJWaWV3ICpjcmVhdGVfd2luZG93ICgpOwoKc3Rh
dGljIGdib29sZWFuCm9uX3dlYmtpdF9uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9yZXF1ZXN0
ZWQgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJGcmFtZSAqZnJhbWUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0ICpy
ZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uICpuYXZpZ2F0aW9uX2FjdGlvbiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViUG9saWN5RGVjaXNp
b24gKnBvbGljeV9kZWNpc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR3RrV2lkZ2V0ICp3aW5kb3cpCnsKCWdfZGVidWcgKCIlcyB2aWV3ICVwIiwg
X19mdW5jX18sIHdlYl92aWV3KTsKCXJldHVybiBGQUxTRTsKfQoKc3RhdGljIGdib29sZWFuCm9u
X3dlYmtpdF9uZXdfd2luZG93X3BvbGljeV9kZWNpc2lvbl9yZXF1ZXN0ZWQgKFdlYktpdFdlYlZp
ZXcgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJLaXRXZWJGcmFtZSAqZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0ICpyZXF1ZXN0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJOYXZpZ2F0
aW9uQWN0aW9uICpuYXZpZ2F0aW9uX2FjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViUG9saWN5RGVjaXNpb24gKnBvbGljeV9kZWNp
c2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Rr
V2lkZ2V0ICp3aW5kb3cpCnsKCWdfZGVidWcgKCIlcyB2aWV3ICVwIiwgX19mdW5jX18sIHdlYl92
aWV3KTsKCXJldHVybiBGQUxTRTsKfQoKc3RhdGljIFdlYktpdFdlYlZpZXcgKgpvbl93ZWJraXRf
Y3JlYXRlX3dlYl92aWV3IChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldywgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYktpdFdlYkZyYW1lICp3ZWJfZnJhbWUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEd0a1dpZGdldCAqd2luZG93KQp7CglnX2RlYnVnICgiJXMgdmlldyAlcCIsIF9f
ZnVuY19fLCB3ZWJfdmlldyk7CglyZXR1cm4gY3JlYXRlX3dpbmRvdyAoRkFMU0UpOwp9CgpzdGF0
aWMgZ2Jvb2xlYW4Kb25fd2Via2l0X3dlYl92aWV3X3JlYWR5IChXZWJLaXRXZWJWaWV3ICp3ZWJf
dmlldywgR3RrV2lkZ2V0ICp3aW5kb3cpCnsKCWdfZGVidWcgKCIlcyB2aWV3ICVwIiwgX19mdW5j
X18sIHdlYl92aWV3KTsKCglndGtfd2lkZ2V0X3Nob3cgKHdpbmRvdyk7CgoJcmV0dXJuIEZBTFNF
Owp9CgpzdGF0aWMgZ2Jvb2xlYW4Kb25fd2Via2l0X2Nsb3NlX3dlYl92aWV3IChXZWJLaXRXZWJW
aWV3ICp3ZWJfdmlldywgR3RrV2lkZ2V0ICp3aW5kb3cpCnsKCWdfZGVidWcgKCIlcyB2aWV3ICVw
IiwgX19mdW5jX18sIHdlYl92aWV3KTsKCQoJZ3RrX3dpZGdldF9kZXN0cm95ICh3aW5kb3cpOwoK
CXJldHVybiBUUlVFOwp9CgpzdGF0aWMgV2ViS2l0V2ViVmlldyAqCmNyZWF0ZV93aW5kb3cgKGdi
b29sZWFuIHNob3cpCnsKCVdlYktpdFdlYlZpZXcgKndlYnZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcg
KHdlYmtpdF93ZWJfdmlld19uZXcgKCkpOwoJR3RrV2lkZ2V0ICp3aW5kb3csICpzY3JvbGxlZF93
aW5kb3c7CgkKCXdpbmRvdyA9IGd0a193aW5kb3dfbmV3IChHVEtfV0lORE9XX1RPUExFVkVMKTsK
CXNjcm9sbGVkX3dpbmRvdyA9IGd0a19zY3JvbGxlZF93aW5kb3dfbmV3IChOVUxMLCBOVUxMKTsK
CglndGtfY29udGFpbmVyX2FkZCAoR1RLX0NPTlRBSU5FUiAoc2Nyb2xsZWRfd2luZG93KSwgR1RL
X1dJREdFVCAod2VidmlldykpOwoJZ3RrX2NvbnRhaW5lcl9hZGQgKEdUS19DT05UQUlORVIgKHdp
bmRvdyksIHNjcm9sbGVkX3dpbmRvdyk7CgoJZ3RrX3dpbmRvd19zZXRfZGVmYXVsdF9zaXplIChH
VEtfV0lORE9XICh3aW5kb3cpLCA4MDAsIDYwMCk7CgkKCWd0a193aWRnZXRfc2hvdyAoR1RLX1dJ
REdFVCAod2VidmlldykpOwoJZ3RrX3dpZGdldF9zaG93IChzY3JvbGxlZF93aW5kb3cpOwoKCWlm
IChzaG93KSBndGtfd2lkZ2V0X3Nob3cgKHdpbmRvdyk7CgoJZ19zaWduYWxfY29ubmVjdCAod2Vi
dmlldywgIm5hdmlnYXRpb24tcG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZCIsIEdfQ0FMTEJBQ0sg
KG9uX3dlYmtpdF9uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9yZXF1ZXN0ZWQpLCB3aW5kb3cp
OwoJZ19zaWduYWxfY29ubmVjdCAod2VidmlldywgIm5ldy13aW5kb3ctcG9saWN5LWRlY2lzaW9u
LXJlcXVlc3RlZCIsIEdfQ0FMTEJBQ0sgKG9uX3dlYmtpdF9uZXdfd2luZG93X3BvbGljeV9kZWNp
c2lvbl9yZXF1ZXN0ZWQpLCB3aW5kb3cpOwoJZ19zaWduYWxfY29ubmVjdCAod2VidmlldywgImNy
ZWF0ZS13ZWItdmlldyIsIEdfQ0FMTEJBQ0sgKG9uX3dlYmtpdF9jcmVhdGVfd2ViX3ZpZXcpLCB3
aW5kb3cpOwoJZ19zaWduYWxfY29ubmVjdCAod2VidmlldywgIndlYi12aWV3LXJlYWR5IiwgR19D
QUxMQkFDSyAob25fd2Via2l0X3dlYl92aWV3X3JlYWR5KSwgd2luZG93KTsKCWdfc2lnbmFsX2Nv
bm5lY3QgKHdlYnZpZXcsICJjbG9zZS13ZWItdmlldyIsIEdfQ0FMTEJBQ0sgKG9uX3dlYmtpdF9j
bG9zZV93ZWJfdmlldyksIHdpbmRvdyk7CgkKCXJldHVybiB3ZWJ2aWV3Owp9CgppbnQKbWFpbiAo
aW50IGFyZ2MsIGNoYXIgKiphcmd2KQp7CglXZWJLaXRXZWJWaWV3ICp3ZWJraXQ7CgoJZ3RrX2lu
aXQgKCZhcmdjLCAmYXJndik7CgoJd2Via2l0ID0gY3JlYXRlX3dpbmRvdyAoVFJVRSk7CgoJLyog
T3BlbiBhIHdlYnBhZ2UgKi8KCWlmIChhcmd2WzFdKQoJCXdlYmtpdF93ZWJfdmlld19sb2FkX3Vy
aSAod2Via2l0LCBhcmd2WzFdKTsKCWVsc2UKCQl3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcg
KHdlYmtpdCwKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxIVE1MPiIKCSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIjxCT0RZPiIKCSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIjxBIEhSRUY9XCJodHRwOi8vd3d3Lmdvb2dsZS5jb21cIiBUQVJHRVQ9XCJfYmxhbmtcIj5h
IG5ldyB3aW5kb3cgdXNpbmcgX2JsYW5rIHRhcmdldDwvQT4iCgkJICAgICAgICAgICAgICAgICAg
ICAgICAgICI8Zm9ybT4iCgkJCQkJCQkJICI8aW5wdXQgdHlwZT1idXR0b24gdmFsdWU9XCJPcGVu
IG5ldyB3aW5kb3dcIiAiCgkJICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgb25DbGljaz1c
Im15UmVmID0gd2luZG93Lm9wZW4oJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzQzMicsJ215d2luJywiCgkJCQkJCQkJICIJICdsZWZ0PTIwLHRvcD0yMCx3aWR0aD01
MDAsaGVpZ2h0PTUwMCx0b29sYmFyPTEscmVzaXphYmxlPTAnKTsiCgkJICAgICAgICAgICAgICAg
ICAgICAgICAgICJteVJlZi5mb2N1cygpXCI+IgoJCSAgICAgICAgICAgICAgICAgICAgICAgICAi
PC9mb3JtPiIKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwvQk9EWT4iCgkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICI8L0hUTUw+IiwKCSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCwgTlVMTCwgImZpbGU6Ly8uIik7CgkKCWd0a19tYWluICgpOwoKCXJldHVybiAw
Owp9
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73415</attachid>
            <date>2010-11-09 14:21:29 -0800</date>
            <delta_ts>2010-11-29 22:31:35 -0800</delta_ts>
            <desc>[PATCH 1/4] Allow creating hidden window</desc>
            <filename>0001-Allow-creating-hidden-window.patch</filename>
            <type>text/plain</type>
            <size>3254</size>
            <attacher name="Nicolas Dufresne">nicolas</attacher>
            
              <data encoding="base64">RnJvbSA4ZWNlOTI2ZTA2YjhkZDdjNzRmZWYxZTA0ZGE0MDFhZTYwMDMyNTZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNv
bGxhYm9yYS5jby51az4KRGF0ZTogVHVlLCA5IE5vdiAyMDEwIDE2OjUyOjE0IC0wNTAwClN1Ympl
Y3Q6IFtQQVRDSCAxLzRdIEFsbG93IGNyZWF0aW5nIGhpZGRlbiB3aW5kb3cKCmh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQzMgoKQWxsb3cgY3JlYXRpbmcgaGlkZGVu
IHdpbmRvdyB0aGF0IGNhbiBiZSBkZXN0cm95ZWQgaWYgaXQncyBjcmVhdGlvbiB3YXMKcmVmdXNl
ZCBieSBOZXdXaW5kb3dQb2xpY3kuIFRoaXMgaXMgcmVxdWlyZWQgdG8gZnVsbGZpbGwgdGhlIHN5
bmNocm9ub3VzCnJlcXVpcmVtZW50IG9mIEpTIGNhbGwgdG8gd2luZG93Lm9wZW4oKS4KLS0tCiBX
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysrKysrKysrKysr
CiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgfCAgICA1ICsrKy0tCiBXZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oICAgfCAgICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDI0IGluc2Vy
dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NmQ4YTdjLi5mYzMyODZkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDEwLTExLTA5ICBOaWNvbGFzIER1ZnJlc25lICA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJv
cmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWxsb3cgY3JlYXRpbmcgaGlkZGVuIHdpbmRvdworCisgICAgICAgIHdpbmRvdy5vcGVuIHNj
cmlwdHMgZG8gbm90IHRyaWdnZXIgbmV3V2luZG93RGVsZWdhdGUgY2FsbGJhY2suCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQzMgorCisgICAgICAg
IEFsbG93IGNyZWF0aW5nIGhpZGRlbiB3aW5kb3cgdGhhdCBjYW4gYmUgZGVzdHJveWVkIGlmIGl0
J3MgY3JlYXRpb24gd2FzCisgICAgICAgIHJlZnVzZWQgYnkgTmV3V2luZG93UG9saWN5LiBUaGlz
IGlzIHJlcXVpcmVkIHRvIGZ1bGxmaWxsIHRoZSBzeW5jaHJvbm91cworICAgICAgICByZXF1aXJl
bWVudCBvZiBKUyBjYWxsIHRvIHdpbmRvdy5vcGVuKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBub3QgdmlzaWJsZSBmcm9tIHNjcmlwdC9odG1sLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJv
dXRQYXN0TWVtb3J5Q2FjaGVMb2Fkcyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXaW5kb3cp
OgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorCiAyMDEwLTExLTA5ICBTdGV2ZSBC
bG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRy
ZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGM0OGNhMzAuLmNjNDExYjUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTM0NjcsNyArMzQ2Nyw3IEBAIGJvb2wgRnJhbWVMb2Fk
ZXJDbGllbnQ6Omhhc0hUTUxWaWV3KCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotRnJh
bWUqIGNyZWF0ZVdpbmRvdyhGcmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZl
YXR1cmVzLCBib29sJiBjcmVhdGVkKQorRnJhbWUqIGNyZWF0ZVdpbmRvdyhGcmFtZSogb3BlbmVy
RnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBib29sJiBjcmVhdGVkLCBib29sIHNo
b3cpCiB7CiAgICAgQVNTRVJUKCFmZWF0dXJlcy5kaWFsb2cgfHwgcmVxdWVzdC5mcmFtZU5hbWUo
KS5pc0VtcHR5KCkpOwogCkBAIC0zNTI3LDcgKzM1MjcsOCBAQCBGcmFtZSogY3JlYXRlV2luZG93
KEZyYW1lKiBvcGVuZXJGcmFtZSwgRnJhbWUqIGxvb2t1cEZyYW1lLCBjb25zdCBGcmFtZUxvYWRS
ZXF1ZQogICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdodChmZWF0dXJlcy5oZWlnaHQgKyAod2lu
ZG93UmVjdC5oZWlnaHQoKSAtIHBhZ2VTaXplLmhlaWdodCgpKSk7CiAgICAgcGFnZS0+Y2hyb21l
KCktPnNldFdpbmRvd1JlY3Qod2luZG93UmVjdCk7CiAKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2hv
dygpOworICAgIGlmIChzaG93KQorICAgICAgcGFnZS0+Y2hyb21lKCktPnNob3coKTsKIAogICAg
IGNyZWF0ZWQgPSB0cnVlOwogICAgIHJldHVybiBmcmFtZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4
IDllYmVmMjkuLjRkYzhjMjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtNTEwLDcgKzUxMCw3IEBA
IHByaXZhdGU6CiAvLwogLy8gRklYTUU6IENvbnNpZGVyIG1ha2luZyB0aGlzIGZ1bmN0aW9uIHBh
cnQgb2YgYW4gYXBwcm9wcmlhdGUgY2xhc3MgKG5vdCBGcmFtZUxvYWRlcikKIC8vIGFuZCBtb3Zp
bmcgaXQgdG8gYSBtb3JlIGFwcHJvcHJpYXRlIGxvY2F0aW9uLgotRnJhbWUqIGNyZWF0ZVdpbmRv
dyhGcmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2Fk
UmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgYm9vbCYgY3JlYXRlZCk7CitGcmFtZSog
Y3JlYXRlV2luZG93KEZyYW1lKiBvcGVuZXJGcmFtZSwgRnJhbWUqIGxvb2t1cEZyYW1lLCBjb25z
dCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBib29sJiBjcmVhdGVk
LCBib29sIHNob3cgPSB0cnVlKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0tIAoxLjcu
My4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73416</attachid>
            <date>2010-11-09 14:22:05 -0800</date>
            <delta_ts>2010-11-29 22:32:22 -0800</delta_ts>
            <desc>[PATCH 2/4] Show window only after initial location request</desc>
            <filename>0002-Show-window-only-after-initial-location-request.patch</filename>
            <type>text/plain</type>
            <size>5140</size>
            <attacher name="Nicolas Dufresne">nicolas</attacher>
            
              <data encoding="base64">RnJvbSA4ZmMxNmRmMWZiMGQ4N2FmYjg4NDVmYmFhNTkzM2UwODJhYjZiZDljIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNv
bGxhYm9yYS5jby51az4KRGF0ZTogVHVlLCA5IE5vdiAyMDEwIDE2OjU2OjAzIC0wNTAwClN1Ympl
Y3Q6IFtQQVRDSCAyLzRdIFNob3cgd2luZG93IG9ubHkgYWZ0ZXIgaW5pdGlhbCBsb2NhdGlvbiBy
ZXF1ZXN0CgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MzIKClRv
IGZpeCB0aGlzIGJ1ZyB3ZSBlbmFibGVkIGNyZWF0aW5nIGhpZGRlbiB3aW5kb3dzLiBUaGlzIHBh
dGNoIHRha2VzCmJlbmlmaXQgb2YgdGhpcyBuZXcgZmVhdHVyZSBhbmQgcXVldWUgbG9jYXRpb24g
Y2hhbmdlIGJlZm9yZSBjYWxsaW5nClBhZ2U6OmNocm9tZSgpLT5zaG93KCkuIFRoaXMgbWVhbiBV
UkkgY2FuIGJlIGNvbnNpZGVyZWQgc29vbmVyIGJ5Cm5vbi1kZXN0cnVjdGl2ZSBwb3B1cCBibG9j
a2VyIGxpa2UgdGhlIG9uZSBpbiBDaHJvbWUuCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMjMgKysrKysrKysrKysrKysrKysrKysrKysKIFdlYkNv
cmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmggfCAgICA1ICsrKystCiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCAgIHwgICAgNSArKysrLQogV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICAgICAgICAgICB8ICAgIDIgKy0KIDQgZmls
ZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZjMzI4NmQuLmVl
ODhkYzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0yLDYgKzIsMjkgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KIAorICAgICAgICBTaG93IHdpbmRvdyBvbmx5IGFmdGVyIGluaXRpYWwgbG9jYXRpb24gcmVx
dWVzdAorCisgICAgICAgIHdpbmRvdy5vcGVuIHNjcmlwdHMgZG8gbm90IHRyaWdnZXIgbmV3V2lu
ZG93RGVsZWdhdGUgY2FsbGJhY2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzQzMgorCisgICAgICAgIFRvIGZpeCB0aGlzIGJ1ZyB3ZSBlbmFibGVk
IGNyZWF0aW5nIGhpZGRlbiB3aW5kb3dzLiBUaGlzIHBhdGNoIHRha2VzCisgICAgICAgIGJlbmlm
aXQgb2YgdGhpcyBuZXcgZmVhdHVyZSBhbmQgcXVldWUgbG9jYXRpb24gY2hhbmdlIGJlZm9yZSBj
YWxsaW5nCisgICAgICAgIFBhZ2U6OmNocm9tZSgpLT5zaG93KCkuIFRoaXMgbWVhbiBVUkkgY2Fu
IGJlIGNvbnNpZGVyZWQgc29vbmVyIGJ5CisgICAgICAgIG5vbi1kZXN0cnVjdGl2ZSBwb3B1cCBi
bG9ja2VyIGxpa2UgdGhlIG9uZSBpbiBDaHJvbWUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBu
b3QgdmlzaWJsZSBmcm9tIHNjcmlwdC9odG1sLgorCisgICAgICAgICogYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nRE9NV2luZG93Lmg6CisgICAgICAgIChXZWJDb3JlOjo6OmNyZWF0ZVdpbmRvdyk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmV3V2lu
ZG93UG9saWN5KToKKworMjAxMC0xMS0wOSAgTmljb2xhcyBEdWZyZXNuZSAgPG5pY29sYXMuZHVm
cmVzbmVAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCiAgICAgICAgIEFsbG93IGNyZWF0aW5nIGhpZGRlbiB3aW5kb3cKIAogICAgICAgICB3
aW5kb3cub3BlbiBzY3JpcHRzIGRvIG5vdCB0cmlnZ2VyIG5ld1dpbmRvd0RlbGVnYXRlIGNhbGxi
YWNrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5k
b3cuaCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKaW5kZXgg
MzU2OGU2Yy4uYzQ2NzM5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0Jp
bmRpbmdET01XaW5kb3cuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0RP
TVdpbmRvdy5oCkBAIC0xMDcsNyArMTA3LDcgQEAgRnJhbWUqIEJpbmRpbmdET01XaW5kb3c8Qmlu
ZGluZz46OmNyZWF0ZVdpbmRvdyhTdGF0ZTxCaW5kaW5nPiogc3RhdGUsCiAgICAgYm9vbCBjcmVh
dGVkOwogICAgIC8vIFdlIHBhc3MgdGhlIG9wZW5lciBmcmFtZSBmb3IgdGhlIGxvb2t1cEZyYW1l
IGluIGNhc2UgdGhlIGFjdGl2ZSBmcmFtZSBpcyBkaWZmZXJlbnQgZnJvbQogICAgIC8vIHRoZSBv
cGVuZXIgZnJhbWUsIGFuZCB0aGUgbmFtZSByZWZlcmVuY2VzIGEgZnJhbWUgcmVsYXRpdmUgdG8g
dGhlIG9wZW5lciBmcmFtZS4KLSAgICBGcmFtZSogbmV3RnJhbWUgPSBXZWJDb3JlOjpjcmVhdGVX
aW5kb3coY2FsbGluZ0ZyYW1lLCBvcGVuZXJGcmFtZSwgZnJhbWVSZXF1ZXN0LCB3aW5kb3dGZWF0
dXJlcywgY3JlYXRlZCk7CisgICAgRnJhbWUqIG5ld0ZyYW1lID0gV2ViQ29yZTo6Y3JlYXRlV2lu
ZG93KGNhbGxpbmdGcmFtZSwgb3BlbmVyRnJhbWUsIGZyYW1lUmVxdWVzdCwgd2luZG93RmVhdHVy
ZXMsIGNyZWF0ZWQsIGZhbHNlKTsKICAgICBpZiAoIW5ld0ZyYW1lKQogICAgICAgICByZXR1cm4g
MDsKIApAQCAtMTI1LDYgKzEyNSw5IEBAIEZyYW1lKiBCaW5kaW5nRE9NV2luZG93PEJpbmRpbmc+
OjpjcmVhdGVXaW5kb3coU3RhdGU8QmluZGluZz4qIHN0YXRlLAogICAgICAgICAgICAgbmV3RnJh
bWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShjb21wbGV0
ZWRVcmwuc3RyaW5nKCksIHJlZmVycmVyLCBmYWxzZSwgZmFsc2UpOwogICAgIH0KIAorICAgIGlm
IChjcmVhdGUpCisgICAgICBuZXdGcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+c2hvdygpOworCiAg
ICAgcmV0dXJuIG5ld0ZyYW1lOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCmluZGV4IDcxMTllYTYuLjlmMDBjMjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02ODUsNyArNjg1LDcgQEAgc3RhdGljIEZyYW1lKiBj
cmVhdGVXaW5kb3coRXhlY1N0YXRlKiBleGVjLCBGcmFtZSogbGV4aWNhbEZyYW1lLCBGcmFtZSog
ZHluYW1pY0YKICAgICBib29sIGNyZWF0ZWQ7CiAgICAgLy8gV2UgcGFzcyB0aGUgb3BlbmVyIGZy
YW1lIGZvciB0aGUgbG9va3VwRnJhbWUgaW4gY2FzZSB0aGUgYWN0aXZlIGZyYW1lIGlzIGRpZmZl
cmVudCBmcm9tCiAgICAgLy8gdGhlIG9wZW5lciBmcmFtZSwgYW5kIHRoZSBuYW1lIHJlZmVyZW5j
ZXMgYSBmcmFtZSByZWxhdGl2ZSB0byB0aGUgb3BlbmVyIGZyYW1lLgotICAgIEZyYW1lKiBuZXdG
cmFtZSA9IGNyZWF0ZVdpbmRvdyhsZXhpY2FsRnJhbWUsIG9wZW5lckZyYW1lLCBmcmFtZVJlcXVl
c3QsIHdpbmRvd0ZlYXR1cmVzLCBjcmVhdGVkKTsKKyAgICBGcmFtZSogbmV3RnJhbWUgPSBjcmVh
dGVXaW5kb3cobGV4aWNhbEZyYW1lLCBvcGVuZXJGcmFtZSwgZnJhbWVSZXF1ZXN0LCB3aW5kb3dG
ZWF0dXJlcywgY3JlYXRlZCwgZmFsc2UpOwogICAgIGlmICghbmV3RnJhbWUpCiAgICAgICAgIHJl
dHVybiAwOwogCkBAIC03MDYsNiArNzA2LDkgQEAgc3RhdGljIEZyYW1lKiBjcmVhdGVXaW5kb3co
RXhlY1N0YXRlKiBleGVjLCBGcmFtZSogbGV4aWNhbEZyYW1lLCBGcmFtZSogZHluYW1pY0YKICAg
ICAgICAgICAgIG5ld0ZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRp
b25DaGFuZ2UoY29tcGxldGVkVVJMLnN0cmluZygpLCByZWZlcnJlciwgIWxleGljYWxGcmFtZS0+
c2NyaXB0KCktPmFueVBhZ2VJc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpLCBmYWxzZSk7CiAgICAg
fQogCisgICAgaWYgKGNyZWF0ZWQpCisgICAgICBuZXdGcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+
c2hvdygpOworCiAgICAgcmV0dXJuIG5ld0ZyYW1lOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggY2M0MTFiNS4uY2Y5NDMwMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzAwNSwx
MCArMzAwNSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRv
d1BvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogICAgICAgICBtYWluRnJhbWUt
PnRyZWUoKS0+c2V0TmFtZShmcmFtZU5hbWUpOwogCiAgICAgbWFpbkZyYW1lLT5wYWdlKCktPnNl
dE9wZW5lZEJ5RE9NKCk7Ci0gICAgbWFpbkZyYW1lLT5sb2FkZXIoKS0+bV9jbGllbnQtPmRpc3Bh
dGNoU2hvdygpOwogICAgIGlmICghbV9zdXBwcmVzc09wZW5lckluTmV3RnJhbWUpCiAgICAgICAg
IG1haW5GcmFtZS0+bG9hZGVyKCktPnNldE9wZW5lcihmcmFtZS5nZXQoKSk7CiAgICAgbWFpbkZy
YW1lLT5sb2FkZXIoKS0+bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRp
b25BY3Rpb24oKSwgZmFsc2UsIEZyYW1lTG9hZFR5cGVTdGFuZGFyZCwgZm9ybVN0YXRlKTsKKyAg
ICBtYWluRnJhbWUtPmxvYWRlcigpLT5tX2NsaWVudC0+ZGlzcGF0Y2hTaG93KCk7CiB9CiAKIHZv
aWQgRnJhbWVMb2FkZXI6OnJlcXVlc3RGcm9tRGVsZWdhdGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCB1bnNpZ25lZCBsb25nJiBpZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLS0g
CjEuNy4zLjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73417</attachid>
            <date>2010-11-09 14:22:40 -0800</date>
            <delta_ts>2010-11-29 22:32:27 -0800</delta_ts>
            <desc>[PATCH 3/4] Don&apos;t duplicate code from FrameTree::find()</desc>
            <filename>0003-Don-t-duplicate-code-from-FrameTree-find.patch</filename>
            <type>text/plain</type>
            <size>5604</size>
            <attacher name="Nicolas Dufresne">nicolas</attacher>
            
              <data encoding="base64">RnJvbSBhNzJiZWUzODZiM2RhMmMzYjY5Njk0MzhlNzMxNzhmZmNlMTZkNDA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNv
bGxhYm9yYS5jby51az4KRGF0ZTogVHVlLCA5IE5vdiAyMDEwIDE3OjAwOjU4IC0wNTAwClN1Ympl
Y3Q6IFtQQVRDSCAzLzRdIERvbid0IGR1cGxpY2F0ZSBjb2RlIGZyb20gRnJhbWVUcmVlOjpmaW5k
KCkKCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQzMgoKSW4gSlNE
T01XaW5kb3c6Om9wZW4oKSB3ZSBkdXBsaWNhdGUgc29tZSBvZiB0aGUgY29kZSBmcm9tCkZyYW1l
VHJlZTo6ZmluZCgpLiBUaGlzIHBhdGNoIGFsc28gcmVtb3ZlcyBvbmUgY2FsbCB0byBGcmFtZVRy
ZWU6OmZpbmQoKS4KVGhpcyBjb2RlIGNsZWFudXAgaXMgYXR0YWNoZWQgdG8gdGhpcyBidWcgc2lu
Y2UgaXQgZW5zdXJlIHRoYXQgY3JlYXRlV2luZG93CmlzIGFjdHVhbGx5IGNhbGxlZCB0byBjcmVh
dGUgbmV3IHdpbmRvdywgcmVkdWNpbmcgc2lkZSBlZmZlY3Qgcmlzay4KLS0tCiBXZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKysrKysrKysrKysrKysrCiBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCB8ICAgMzkgKysrKysrKysr
KysrLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwg
MjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBlZTg4ZGMzLi45MDhmYTQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDI2IEBACiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAgRG9uJ3QgZHVwbGljYXRl
IGNvZGUgZnJvbSBGcmFtZVRyZWU6OmZpbmQoKQorCisgICAgICAgIHdpbmRvdy5vcGVuIHNjcmlw
dHMgZG8gbm90IHRyaWdnZXIgbmV3V2luZG93RGVsZWdhdGUgY2FsbGJhY2suCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQzMgorCisgICAgICAgIElu
IEpTRE9NV2luZG93OjpvcGVuKCkgd2UgZHVwbGljYXRlIHNvbWUgb2YgdGhlIGNvZGUgZnJvbQor
ICAgICAgICBGcmFtZVRyZWU6OmZpbmQoKS4gVGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgb25lIGNh
bGwgdG8gRnJhbWVUcmVlOjpmaW5kKCkuCisgICAgICAgIFRoaXMgY29kZSBjbGVhbnVwIGlzIGF0
dGFjaGVkIHRvIHRoaXMgYnVnIHNpbmNlIGl0IGVuc3VyZSB0aGF0IGNyZWF0ZVdpbmRvdworICAg
ICAgICBpcyBhY3R1YWxseSBjYWxsZWQgdG8gY3JlYXRlIG5ldyB3aW5kb3csIHJlZHVjaW5nIHNp
ZGUgZWZmZWN0IHJpc2suCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb2RlIGNsZWFudXAgb25s
eS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V2luZG93OjpzaG93TW9kYWxEaWFsb2cpOgorCisyMDEwLTExLTA5ICBOaWNvbGFzIER1ZnJlc25l
ICA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgU2hvdyB3aW5kb3cgb25seSBhZnRlciBpbml0
aWFsIGxvY2F0aW9uIHJlcXVlc3QKIAogICAgICAgICB3aW5kb3cub3BlbiBzY3JpcHRzIGRvIG5v
dCB0cmlnZ2VyIG5ld1dpbmRvd0RlbGVnYXRlIGNhbGxiYWNrLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA5ZjAwYzI2Li4yOGRkNTFiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNzM4LDQyICs3MzgsMzUgQEAg
SlNWYWx1ZSBKU0RPTVdpbmRvdzo6b3BlbihFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBQYWdlKiBw
YWdlID0gZnJhbWUtPnBhZ2UoKTsKIAotICAgIC8vIEJlY2F1c2UgRnJhbWVUcmVlOjpmaW5kKCkg
cmV0dXJucyB0cnVlIGZvciBlbXB0eSBzdHJpbmdzLCB3ZSBtdXN0IGNoZWNrIGZvciBlbXB0eSBm
cmFtZW5hbWVzLgotICAgIC8vIE90aGVyd2lzZSwgaWxsZWdpdGltYXRlIHdpbmRvdy5vcGVuKCkg
Y2FsbHMgd2l0aCBubyBuYW1lIHdpbGwgcGFzcyByaWdodCB0aHJvdWdoIHRoZSBwb3B1cCBibG9j
a2VyLgotICAgIGlmICghZG9tV2luZG93QWxsb3dQb3BVcChkeW5hbWljRnJhbWUpICYmIChmcmFt
ZU5hbWUuaXNFbXB0eSgpIHx8ICFmcmFtZS0+dHJlZSgpLT5maW5kKGZyYW1lTmFtZSkpKQotICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAvLyB3aW5kb3cub3BlbigpIGludGVycHJl
dCBlbXB0eSBzdHJpbmcgYXMgaWYgaXQgd2FzIF9ibGFuaywgd2hpY2ggaSdzIG5vcm1hbGx5IHNl
bGYuCisgICAgaWYgKGZyYW1lTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIGZyYW1lTmFtZSA9ICJf
YmxhbmsiOwogCi0gICAgLy8gR2V0IHRoZSB0YXJnZXQgZnJhbWUgZm9yIHRoZSBzcGVjaWFsIGNh
c2VzIG9mIF90b3AgYW5kIF9wYXJlbnQuICBJbiB0aG9zZQotICAgIC8vIGNhc2VzLCB3ZSBjYW4g
c2NoZWR1bGUgYSBsb2NhdGlvbiBjaGFuZ2UgcmlnaHQgbm93IGFuZCByZXR1cm4gZWFybHkuCi0g
ICAgYm9vbCB0b3BPclBhcmVudCA9IGZhbHNlOwotICAgIGlmIChmcmFtZU5hbWUgPT0gIl90b3Ai
KSB7Ci0gICAgICAgIGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dG9wKCk7Ci0gICAgICAgIHRvcE9y
UGFyZW50ID0gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKGZyYW1lTmFtZSA9PSAiX3BhcmVudCIpIHsK
LSAgICAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSBmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkKLSAg
ICAgICAgICAgIGZyYW1lID0gcGFyZW50OwotICAgICAgICB0b3BPclBhcmVudCA9IHRydWU7Ci0g
ICAgfQotICAgIGlmICh0b3BPclBhcmVudCkgeworICAgIEZyYW1lKiB0YXJnZXRGcmFtZSA9IGZy
YW1lLT50cmVlKCktPmZpbmQoZnJhbWVOYW1lKTsKKworICAgIGlmICh0YXJnZXRGcmFtZSkgewog
ICAgICAgICBTdHJpbmcgY29tcGxldGVkVVJMOwogICAgICAgICBpZiAoIXVybFN0cmluZy5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICBjb21wbGV0ZWRVUkwgPSBjb21wbGV0ZVVSTChleGVjLCB1cmxT
dHJpbmcpLnN0cmluZygpOwogCi0gICAgICAgIGlmICghc2hvdWxkQWxsb3dOYXZpZ2F0aW9uKGV4
ZWMsIGZyYW1lKSkKKyAgICAgICAgaWYgKCFzaG91bGRBbGxvd05hdmlnYXRpb24oZXhlYywgdGFy
Z2V0RnJhbWUpKQogICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICAgICAg
Y29uc3QgSlNET01XaW5kb3cqIHRhcmdldGVkV2luZG93ID0gdG9KU0RPTVdpbmRvdyhmcmFtZSwg
Y3VycmVudFdvcmxkKGV4ZWMpKTsKKyAgICAgICAgY29uc3QgSlNET01XaW5kb3cqIHRhcmdldGVk
V2luZG93ID0gdG9KU0RPTVdpbmRvdyh0YXJnZXRGcmFtZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsK
ICAgICAgICAgaWYgKCFjb21wbGV0ZWRVUkwuaXNFbXB0eSgpICYmICghcHJvdG9jb2xJc0phdmFT
Y3JpcHQoY29tcGxldGVkVVJMKSB8fCAodGFyZ2V0ZWRXaW5kb3cgJiYgdGFyZ2V0ZWRXaW5kb3ct
PmFsbG93c0FjY2Vzc0Zyb20oZXhlYykpKSkgewogICAgICAgICAgICAgLy8gRm9yIHdoYXRldmVy
IHJlYXNvbiwgRmlyZWZveCB1c2VzIHRoZSBkeW5hbWljR2xvYmFsT2JqZWN0IHRvCiAgICAgICAg
ICAgICAvLyBkZXRlcm1pbmUgdGhlIG91dGdvaW5nUmVmZXJyZXIuICBXZSByZXBsaWNhdGUgdGhh
dCBiZWhhdmlvcgogICAgICAgICAgICAgLy8gaGVyZS4KICAgICAgICAgICAgIFN0cmluZyByZWZl
cnJlciA9IGR5bmFtaWNGcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKTsKIAotICAg
ICAgICAgICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNo
YW5nZShjb21wbGV0ZWRVUkwsIHJlZmVycmVyLCAhbGV4aWNhbEZyYW1lLT5zY3JpcHQoKS0+YW55
UGFnZUlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCksIGZhbHNlKTsKKyAgICAgICAgICAgIHRhcmdl
dEZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoY29t
cGxldGVkVVJMLCByZWZlcnJlciwgIWxleGljYWxGcmFtZS0+c2NyaXB0KCktPmFueVBhZ2VJc1By
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpLCBmYWxzZSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHRvSlMoZXhlYywgZnJhbWUtPmRvbVdpbmRvdygpKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgdGFyZ2V0RnJhbWUtPmRvbVdpbmRvdygpKTsKICAgICB9CiAKKyAgICBpZiAoIWRvbVdpbmRv
d0FsbG93UG9wVXAoZHluYW1pY0ZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CisKICAgICAvLyBJbiB0aGUgY2FzZSBvZiBhIG5hbWVkIGZyYW1lIG9yIGEgbmV3IHdpbmRvdywg
d2UnbGwgdXNlIHRoZSBjcmVhdGVXaW5kb3coKSBoZWxwZXIKICAgICBGbG9hdFJlY3Qgd2luZG93
UmVjdCh3aW5kb3dGZWF0dXJlcy54U2V0ID8gd2luZG93RmVhdHVyZXMueCA6IDAsIHdpbmRvd0Zl
YXR1cmVzLnlTZXQgPyB3aW5kb3dGZWF0dXJlcy55IDogMCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aW5kb3dGZWF0dXJlcy53aWR0aFNldCA/IHdpbmRvd0ZlYXR1cmVzLndpZHRoIDogMCwg
d2luZG93RmVhdHVyZXMuaGVpZ2h0U2V0ID8gd2luZG93RmVhdHVyZXMuaGVpZ2h0IDogMCk7CkBA
IC03ODQsMTIgKzc3NywxMiBAQCBKU1ZhbHVlIEpTRE9NV2luZG93OjpvcGVuKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICB3aW5kb3dGZWF0dXJlcy5oZWlnaHQgPSB3aW5kb3dSZWN0LmhlaWdodCgpOwog
ICAgIHdpbmRvd0ZlYXR1cmVzLndpZHRoID0gd2luZG93UmVjdC53aWR0aCgpOwogCi0gICAgZnJh
bWUgPSBjcmVhdGVXaW5kb3coZXhlYywgbGV4aWNhbEZyYW1lLCBkeW5hbWljRnJhbWUsIGZyYW1l
LCB1cmxTdHJpbmcsIGZyYW1lTmFtZSwgd2luZG93RmVhdHVyZXMsIEpTVmFsdWUoKSk7CisgICAg
dGFyZ2V0RnJhbWUgPSBjcmVhdGVXaW5kb3coZXhlYywgbGV4aWNhbEZyYW1lLCBkeW5hbWljRnJh
bWUsIGZyYW1lLCB1cmxTdHJpbmcsIGZyYW1lTmFtZSwgd2luZG93RmVhdHVyZXMsIEpTVmFsdWUo
KSk7CiAKLSAgICBpZiAoIWZyYW1lKQorICAgIGlmICghdGFyZ2V0RnJhbWUpCiAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgcmV0dXJuIHRvSlMoZXhlYywgZnJhbWUtPmRvbVdp
bmRvdygpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0YXJnZXRGcmFtZS0+ZG9tV2luZG93KCkp
OwogfQogCiBKU1ZhbHVlIEpTRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2coRXhlY1N0YXRlKiBl
eGVjKQotLSAKMS43LjMuMgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73418</attachid>
            <date>2010-11-09 14:23:12 -0800</date>
            <delta_ts>2010-11-29 22:32:35 -0800</delta_ts>
            <desc>[PATCH 4/4] Trigger newWindowDelegate when window.open() is called</desc>
            <filename>0004-Trigger-newWindowDelegate-when-window.open-is-called.patch</filename>
            <type>text/plain</type>
            <size>7836</size>
            <attacher name="Nicolas Dufresne">nicolas</attacher>
            
              <data encoding="base64">RnJvbSBiNzAyNmYyZWI4N2M4Y2ZiNmZlMmY4NWEzOTIwZDZmODMxYmYxYTVmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNv
bGxhYm9yYS5jby51az4KRGF0ZTogVHVlLCA5IE5vdiAyMDEwIDE3OjA3OjAxIC0wNTAwClN1Ympl
Y3Q6IFtQQVRDSCA0LzRdIFRyaWdnZXIgbmV3V2luZG93RGVsZWdhdGUgd2hlbiB3aW5kb3cub3Bl
bigpIGlzIGNhbGxlZAoKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NDMyCgpUaGlzIGlzIGEgYml0IHRyaWNreSBzaW5jZSBuZXdXaW5kb3dEZWxlZ2F0ZSgpIGlzIG5v
cm1hbGx5IHRyaWdnZXJlZCBiZWZvcmUKY3JlYXRpbmcgdGhlIGFjdHVhbCB3aW5kb3cuIEJ1dCBz
aW5jZSB3aW5kb3cub3BlbigpIHJldHVybnMgYSB3aW5kb3csIHdlIGhhdmUKbm8gY2hvaWNlIGJ1
dCB0byBjcmVhdGUgaXQuIEluIHRoaXMgcGF0Y2gsIHdlIHBsYXkgd2l0aCB0aGUgd2luZG93IHZp
c2liaWxpdHksCmNyZWF0aW5nIHRoZSB3aW5kb3cgYW5kIGxhdW5jaGluZyB0aGUgbmV3V2luZG93
RGVsZWdhdGUoKSB0aHJvdWdoCmNoYW5nZUxvY2F0aW9uKCkgYW5kIGEgc3BlY2lhbCBvcHRpb25h
bCBwYXJhbWV0ZXIuIFRoZSByZXN1bHQgaXMgdGhhdCB0aGUKd2luZG93IHdpbGwgb25seSBiZSBz
aG93ZWQgaWYgdGhlIHBvbGljeSBpcyBhY2NlcHRlZCwgYW5kIHdpbGwgYmUgY2xvc2VkCm90aGVy
d2lzZS4KLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MjggKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAgfCAgICA1ICstLS0KIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCAgICAg
ICAgICAgIHwgICA0MyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuaCAgICAgICAgICAgICAgfCAgICA0ICsrLQogNCBmaWxlcyBjaGFuZ2Vk
LCA2MiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDkwOGZhNDIuLmIzNGRlNzkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0y
LDYgKzIsMzQgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAg
ICAgICBUcmlnZ2VyIG5ld1dpbmRvd0RlbGVnYXRlIHdoZW4gd2luZG93Lm9wZW4oKSBpcyBjYWxs
ZWQKKworICAgICAgICB3aW5kb3cub3BlbiBzY3JpcHRzIGRvIG5vdCB0cmlnZ2VyIG5ld1dpbmRv
d0RlbGVnYXRlIGNhbGxiYWNrLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM0MzIKKworICAgICAgICBUaGlzIGlzIGEgYml0IHRyaWNreSBzaW5jZSBu
ZXdXaW5kb3dEZWxlZ2F0ZSgpIGlzIG5vcm1hbGx5IHRyaWdnZXJlZCBiZWZvcmUKKyAgICAgICAg
Y3JlYXRpbmcgdGhlIGFjdHVhbCB3aW5kb3cuIEJ1dCBzaW5jZSB3aW5kb3cub3BlbigpIHJldHVy
bnMgYSB3aW5kb3csIHdlIGhhdmUKKyAgICAgICAgbm8gY2hvaWNlIGJ1dCB0byBjcmVhdGUgaXQu
IEluIHRoaXMgcGF0Y2gsIHdlIHBsYXkgd2l0aCB0aGUgd2luZG93IHZpc2liaWxpdHksCisgICAg
ICAgIGNyZWF0aW5nIHRoZSB3aW5kb3cgYW5kIGxhdW5jaGluZyB0aGUgbmV3V2luZG93RGVsZWdh
dGUoKSB0aHJvdWdoCisgICAgICAgIGNoYW5nZUxvY2F0aW9uKCkgYW5kIGEgc3BlY2lhbCBvcHRp
b25hbCBwYXJhbWV0ZXIuIFRoZSByZXN1bHQgaXMgdGhhdCB0aGUKKyAgICAgICAgd2luZG93IHdp
bGwgb25seSBiZSBzaG93ZWQgaWYgdGhlIHBvbGljeSBpcyBhY2NlcHRlZCwgYW5kIHdpbGwgYmUg
Y2xvc2VkCisgICAgICAgIG90aGVyd2lzZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGRvZXMg
bm90IGNoYW5nZSBzY3JpcHQvaHRtbC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
OjpGcmFtZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hhbmdlTG9j
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5
KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKworMjAxMC0xMS0wOSAgTmljb2xh
cyBEdWZyZXNuZSAgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIERvbid0IGR1cGxpY2F0ZSBj
b2RlIGZyb20gRnJhbWVUcmVlOjpmaW5kKCkKIAogICAgICAgICB3aW5kb3cub3BlbiBzY3JpcHRz
IGRvIG5vdCB0cmlnZ2VyIG5ld1dpbmRvd0RlbGVnYXRlIGNhbGxiYWNrLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCAyOGRkNTFiLi44YTFmMmI0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNzAxLDE0ICs3MDEs
MTEgQEAgc3RhdGljIEZyYW1lKiBjcmVhdGVXaW5kb3coRXhlY1N0YXRlKiBleGVjLCBGcmFtZSog
bGV4aWNhbEZyYW1lLCBGcmFtZSogZHluYW1pY0YKICAgICBpZiAoIXByb3RvY29sSXNKYXZhU2Ny
aXB0KHVybCkgfHwgbmV3V2luZG93LT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKSB7CiAgICAgICAg
IEtVUkwgY29tcGxldGVkVVJMID0gdXJsLmlzRW1wdHkoKSA/IEtVUkwoUGFyc2VkVVJMU3RyaW5n
LCAiIikgOiBjb21wbGV0ZVVSTChleGVjLCB1cmwpOwogICAgICAgICBpZiAoY3JlYXRlZCkKLSAg
ICAgICAgICAgIG5ld0ZyYW1lLT5sb2FkZXIoKS0+Y2hhbmdlTG9jYXRpb24oY29tcGxldGVkVVJM
LCByZWZlcnJlciwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgIG5ld0ZyYW1lLT5sb2FkZXIo
KS0+Y2hhbmdlTG9jYXRpb24oY29tcGxldGVkVVJMLCByZWZlcnJlciwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgdHJ1ZSk7CiAgICAgICAgIGVsc2UgaWYgKCF1cmwuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgbmV3RnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5n
ZShjb21wbGV0ZWRVUkwuc3RyaW5nKCksIHJlZmVycmVyLCAhbGV4aWNhbEZyYW1lLT5zY3JpcHQo
KS0+YW55UGFnZUlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCksIGZhbHNlKTsKICAgICB9CiAKLSAg
ICBpZiAoY3JlYXRlZCkKLSAgICAgIG5ld0ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5zaG93KCk7
Ci0KICAgICByZXR1cm4gbmV3RnJhbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBj
Zjk0MzAzLi44ZTUzMDlkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMDUsNiArMjA1LDcg
QEAgRnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVyKEZyYW1lKiBmcmFtZSwgRnJhbWVMb2FkZXJDbGll
bnQqIGNsaWVudCkKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX2RpZERpc3BhdGNoRGlkQ29tbWl0
TG9hZChmYWxzZSkKICNlbmRpZgorICAgICwgbV9pc1VuYXV0aG9yaXplZE5ld1dpbmRvdyhmYWxz
ZSkKIHsKIH0KIApAQCAtMjY0LDEyICsyNjUsMTMgQEAgYm9vbCBGcmFtZUxvYWRlcjo6Y2FuSGFu
ZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgcmV0dXJuIG1f
Y2xpZW50LT5jYW5IYW5kbGVSZXF1ZXN0KHJlcXVlc3QpOwogfQogCi12b2lkIEZyYW1lTG9hZGVy
OjpjaGFuZ2VMb2NhdGlvbihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgYm9vbCByZWZyZXNo
KQordm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2Fy
ZExpc3QsIGJvb2wgcmVmcmVzaCwgYm9vbCBpc1VuYXV0aG9yaXplZE5ld1dpbmRvdykKIHsKICAg
ICBSZWZQdHI8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CiAKICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCh1cmwsIHJlZmVycmVyLCByZWZyZXNoID8gUmVsb2FkSWdub3JpbmdDYWNoZURhdGEg
OiBVc2VQcm90b2NvbENhY2hlUG9saWN5KTsKICAgICAKKyAgICBtX2lzVW5hdXRob3JpemVkTmV3
V2luZG93ID0gaXNVbmF1dGhvcml6ZWROZXdXaW5kb3c7CiAgICAgdXJsU2VsZWN0ZWQocmVxdWVz
dCwgIl9zZWxmIiwgMCwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIFNlbmRSZWZl
cnJlciwgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKTsKIH0KIApAQCAtMTMyMSw3ICsx
MzIzLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChjb25zdCBLVVJMJiBuZXdVUkwsIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIsIGNvbnN0IFN0cmkKIAogICAgIE5hdmlnYXRpb25BY3Rpb24g
YWN0aW9uKG5ld1VSTCwgbmV3TG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50KTsKIAot
ICAgIGlmICghdGFyZ2V0RnJhbWUgJiYgIWZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKKyAgICBpZiAo
bV9pc1VuYXV0aG9yaXplZE5ld1dpbmRvdyB8fCAoIXRhcmdldEZyYW1lICYmICFmcmFtZU5hbWUu
aXNFbXB0eSgpKSkgewogICAgICAgICBwb2xpY3lDaGVja2VyKCktPmNoZWNrTmV3V2luZG93UG9s
aWN5KGFjdGlvbiwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1Bv
bGljeSwKICAgICAgICAgICAgIHJlcXVlc3QsIGZvcm1TdGF0ZS5yZWxlYXNlKCksIGZyYW1lTmFt
ZSwgdGhpcyk7CiAgICAgICAgIHJldHVybjsKQEAgLTI5OTMsMjAgKzI5OTUsMzUgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHZvaWQqIGFy
Z3VtZW50LAogdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xp
Y3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAogICAgIFBhc3NSZWZQdHI8Rm9ybVN0
YXRlPiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiBhY3Rpb24sIGJvb2wgc2hvdWxkQ29udGludWUpCiB7Ci0gICAgaWYgKCFzaG91bGRD
b250aW51ZSkKLSAgICAgICAgcmV0dXJuOworICAgIFJlZlB0cjxGcmFtZT4gZnJhbWU7CisgICAg
UmVmUHRyPEZyYW1lPiBtYWluRnJhbWU7CiAKLSAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gbV9m
cmFtZTsKLSAgICBSZWZQdHI8RnJhbWU+IG1haW5GcmFtZSA9IG1fY2xpZW50LT5kaXNwYXRjaENy
ZWF0ZVBhZ2UoYWN0aW9uKTsKLSAgICBpZiAoIW1haW5GcmFtZSkKLSAgICAgICAgcmV0dXJuOwor
ICAgIGlmIChtX2lzVW5hdXRob3JpemVkTmV3V2luZG93KSB7CisgICAgICAgIGlmICghc2hvdWxk
Q29udGludWUpIHsKKyAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsb3Nl
V2luZG93U29vbigpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
bWFpbkZyYW1lID0gbV9mcmFtZTsKKyAgICAgICAgbV9pc1VuYXV0aG9yaXplZE5ld1dpbmRvdyA9
IGZhbHNlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmcmFtZSA9IG1fZnJhbWU7CisgICAgICAgIG1h
aW5GcmFtZSA9IG1fY2xpZW50LT5kaXNwYXRjaENyZWF0ZVBhZ2UoYWN0aW9uKTsKKworICAgICAg
ICBpZiAoIW1haW5GcmFtZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZnJh
bWVOYW1lICE9ICJfYmxhbmsiKQorICAgICAgICAgICAgbWFpbkZyYW1lLT50cmVlKCktPnNldE5h
bWUoZnJhbWVOYW1lKTsKIAotICAgIGlmIChmcmFtZU5hbWUgIT0gIl9ibGFuayIpCi0gICAgICAg
IG1haW5GcmFtZS0+dHJlZSgpLT5zZXROYW1lKGZyYW1lTmFtZSk7CisgICAgICAgIG1haW5GcmFt
ZS0+cGFnZSgpLT5zZXRPcGVuZWRCeURPTSgpOworICAgICAgICBpZiAoIW1fc3VwcHJlc3NPcGVu
ZXJJbk5ld0ZyYW1lKQorICAgICAgICAgICAgbWFpbkZyYW1lLT5sb2FkZXIoKS0+c2V0T3BlbmVy
KGZyYW1lLmdldCgpKTsKKyAgICAgIH0KIAotICAgIG1haW5GcmFtZS0+cGFnZSgpLT5zZXRPcGVu
ZWRCeURPTSgpOwotICAgIGlmICghbV9zdXBwcmVzc09wZW5lckluTmV3RnJhbWUpCi0gICAgICAg
IG1haW5GcmFtZS0+bG9hZGVyKCktPnNldE9wZW5lcihmcmFtZS5nZXQoKSk7CiAgICAgbWFpbkZy
YW1lLT5sb2FkZXIoKS0+bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRp
b25BY3Rpb24oKSwgZmFsc2UsIEZyYW1lTG9hZFR5cGVTdGFuZGFyZCwgZm9ybVN0YXRlKTsKICAg
ICBtYWluRnJhbWUtPmxvYWRlcigpLT5tX2NsaWVudC0+ZGlzcGF0Y2hTaG93KCk7CiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaAppbmRleCA0ZGM4YzI2Li44YjRjOWZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAg
LTIxNCw3ICsyMTQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9v
bCk7CiAKLSAgICB2b2lkIGNoYW5nZUxvY2F0aW9uKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyLCBib29sIGxvY2tIaXN0b3J5ID0gdHJ1ZSwgYm9vbCBsb2NrQmFja0ZvcndhcmRM
aXN0ID0gdHJ1ZSwgYm9vbCByZWZyZXNoID0gZmFsc2UpOworICAgIHZvaWQgY2hhbmdlTG9jYXRp
b24oY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgbG9ja0hpc3Rvcnkg
PSB0cnVlLCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QgPSB0cnVlLCBib29sIHJlZnJlc2ggPSBm
YWxzZSwgYm9vbCBpc1VuYXV0aG9yaXplZE5ld1dpbmRvdyA9IGZhbHNlKTsKICAgICB2b2lkIHVy
bFNlbGVjdGVkKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgUGFzc1JlZlB0cjxF
dmVudD4sIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgUmVmZXJy
ZXJQb2xpY3kpOwogCiAgICAgdm9pZCBzdWJtaXRGb3JtKFBhc3NSZWZQdHI8Rm9ybVN1Ym1pc3Np
b24+KTsKQEAgLTUwMCw2ICs1MDAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kaWREaXNwYXRj
aERpZENvbW1pdExvYWQ7CiAjZW5kaWYKIAorICAgIGJvb2wgbV9pc1VuYXV0aG9yaXplZE5ld1dp
bmRvdzsKKwogICAgIFJlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBtX25ldHdvcmtpbmdD
b250ZXh0OwogfTsKIAotLSAKMS43LjMuMgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75107</attachid>
            <date>2010-11-29 22:32:42 -0800</date>
            <delta_ts>2011-04-26 15:26:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-23432-20101129223240.patch</filename>
            <type>text/plain</type>
            <size>16021</size>
            <attacher name="Nicolas Dufresne">nicolas</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGI3M2QxYTY5ODljZTAwNjg0MDNhN2RjMGYyMjYzMDRlYmI2MGY0NS4uZGM3MTc3OTNiMmI2ZmY2
ODUxZmM1ZDhmOGVjZmNkYWM0MTJiMGM4MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NCBAQAorMjAxMC0xMS0yOSAgTmlj
b2xhcyBEdWZyZXNuZSAgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRyaWdnZXIgbmV3V2lu
ZG93RGVsZWdhdGUgd2hlbiB3aW5kb3cub3BlbigpIGlzIGNhbGxlZAorCisgICAgICAgIHdpbmRv
dy5vcGVuIHNjcmlwdHMgZG8gbm90IHRyaWdnZXIgbmV3V2luZG93RGVsZWdhdGUgY2FsbGJhY2su
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQzMgor
CisgICAgICAgIFRoaXMgaXMgYSBiaXQgdHJpY2t5IHNpbmNlIG5ld1dpbmRvd0RlbGVnYXRlKCkg
aXMgbm9ybWFsbHkgdHJpZ2dlcmVkIGJlZm9yZQorICAgICAgICBjcmVhdGluZyB0aGUgYWN0dWFs
IHdpbmRvdy4gQnV0IHNpbmNlIHdpbmRvdy5vcGVuKCkgcmV0dXJucyBhIHdpbmRvdywgd2UgaGF2
ZQorICAgICAgICBubyBjaG9pY2UgYnV0IHRvIGNyZWF0ZSBpdC4gSW4gdGhpcyBwYXRjaCwgd2Ug
cGxheSB3aXRoIHRoZSB3aW5kb3cgdmlzaWJpbGl0eSwKKyAgICAgICAgY3JlYXRpbmcgdGhlIHdp
bmRvdyBhbmQgbGF1bmNoaW5nIHRoZSBuZXdXaW5kb3dEZWxlZ2F0ZSgpIHRocm91Z2gKKyAgICAg
ICAgY2hhbmdlTG9jYXRpb24oKSBhbmQgYSBzcGVjaWFsIG9wdGlvbmFsIHBhcmFtZXRlci4gVGhl
IHJlc3VsdCBpcyB0aGF0IHRoZQorICAgICAgICB3aW5kb3cgd2lsbCBvbmx5IGJlIHNob3dlZCBp
ZiB0aGUgcG9saWN5IGlzIGFjY2VwdGVkLCBhbmQgd2lsbCBiZSBjbG9zZWQKKyAgICAgICAgb3Ro
ZXJ3aXNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZG9lcyBub3QgY2hhbmdlIHNjcmlwdC9o
dG1sLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5oOgorCisyMDEwLTExLTI5ICBOaWNvbGFzIER1ZnJlc25lICA8bmljb2xh
cy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgZHVwbGljYXRlIGNvZGUgZnJvbSBGcmFtZVRyZWU6
OmZpbmQoKQorCisgICAgICAgIHdpbmRvdy5vcGVuIHNjcmlwdHMgZG8gbm90IHRyaWdnZXIgbmV3
V2luZG93RGVsZWdhdGUgY2FsbGJhY2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzQzMgorCisgICAgICAgIEluIEpTRE9NV2luZG93OjpvcGVuKCkg
d2UgZHVwbGljYXRlIHNvbWUgb2YgdGhlIGNvZGUgZnJvbQorICAgICAgICBGcmFtZVRyZWU6OmZp
bmQoKS4gVGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgb25lIGNhbGwgdG8gRnJhbWVUcmVlOjpmaW5k
KCkuCisgICAgICAgIFRoaXMgY29kZSBjbGVhbnVwIGlzIGF0dGFjaGVkIHRvIHRoaXMgYnVnIHNp
bmNlIGl0IGVuc3VyZSB0aGF0IGNyZWF0ZVdpbmRvdworICAgICAgICBpcyBhY3R1YWxseSBjYWxs
ZWQgdG8gY3JlYXRlIG5ldyB3aW5kb3csIHJlZHVjaW5nIHNpZGUgZWZmZWN0IHJpc2suCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBjb2RlIGNsZWFudXAgb25seS4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93OjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpzaG93TW9kYWxEaWFs
b2cpOgorCisyMDEwLTExLTI5ICBOaWNvbGFzIER1ZnJlc25lICA8bmljb2xhcy5kdWZyZXNuZUBj
b2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU2hvdyB3aW5kb3cgb25seSBhZnRlciBpbml0aWFsIGxvY2F0aW9uIHJlcXVlc3QK
KworICAgICAgICB3aW5kb3cub3BlbiBzY3JpcHRzIGRvIG5vdCB0cmlnZ2VyIG5ld1dpbmRvd0Rl
bGVnYXRlIGNhbGxiYWNrLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM0MzIKKworICAgICAgICBUbyBmaXggdGhpcyBidWcgd2UgZW5hYmxlZCBjcmVh
dGluZyBoaWRkZW4gd2luZG93cy4gVGhpcyBwYXRjaCB0YWtlcworICAgICAgICBiZW5pZml0IG9m
IHRoaXMgbmV3IGZlYXR1cmUgYW5kIHF1ZXVlIGxvY2F0aW9uIGNoYW5nZSBiZWZvcmUgY2FsbGlu
ZworICAgICAgICBQYWdlOjpjaHJvbWUoKS0+c2hvdygpLiBUaGlzIG1lYW4gVVJJIGNhbiBiZSBj
b25zaWRlcmVkIHNvb25lciBieQorICAgICAgICBub24tZGVzdHJ1Y3RpdmUgcG9wdXAgYmxvY2tl
ciBsaWtlIHRoZSBvbmUgaW4gQ2hyb21lLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm90IHZp
c2libGUgZnJvbSBzY3JpcHQvaHRtbC4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvQmlu
ZGluZ0RPTVdpbmRvdy5oOgorICAgICAgICAoV2ViQ29yZTo6OjpjcmVhdGVXaW5kb3cpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1Bv
bGljeSk6CisKKzIwMTAtMTEtMjkgIE5pY29sYXMgRHVmcmVzbmUgIDxuaWNvbGFzLmR1ZnJlc25l
QGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBbGxvdyBjcmVhdGluZyBoaWRkZW4gd2luZG93CisKKyAgICAgICAgd2luZG93
Lm9wZW4gc2NyaXB0cyBkbyBub3QgdHJpZ2dlciBuZXdXaW5kb3dEZWxlZ2F0ZSBjYWxsYmFjay4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDMyCisK
KyAgICAgICAgQWxsb3cgY3JlYXRpbmcgaGlkZGVuIHdpbmRvdyB0aGF0IGNhbiBiZSBkZXN0cm95
ZWQgaWYgaXQncyBjcmVhdGlvbiB3YXMKKyAgICAgICAgcmVmdXNlZCBieSBOZXdXaW5kb3dQb2xp
Y3kuIFRoaXMgaXMgcmVxdWlyZWQgdG8gZnVsbGZpbGwgdGhlIHN5bmNocm9ub3VzCisgICAgICAg
IHJlcXVpcmVtZW50IG9mIEpTIGNhbGwgdG8gd2luZG93Lm9wZW4oKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vdCB2aXNpYmxlIGZyb20gc2NyaXB0L2h0bWwuCisKKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnRlbGxD
bGllbnRBYm91dFBhc3RNZW1vcnlDYWNoZUxvYWRzKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVdpbmRvdyk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisKIDIwMTAtMTEtMjkg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5n
RE9NV2luZG93LmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5o
CmluZGV4IDM1NjhlNmNiZTI4N2Q3ZjhkMjU0NTdhNzNmNmNjNWYwZjAyNTgyNmIuLmM0NjczOTdi
Y2U2MjQxNTdlNzZkYTk2MzY1MjFlZDYxZTkwMDExOGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9n
ZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaApAQCAtMTA3LDcgKzEwNyw3IEBAIEZyYW1lKiBCaW5k
aW5nRE9NV2luZG93PEJpbmRpbmc+OjpjcmVhdGVXaW5kb3coU3RhdGU8QmluZGluZz4qIHN0YXRl
LAogICAgIGJvb2wgY3JlYXRlZDsKICAgICAvLyBXZSBwYXNzIHRoZSBvcGVuZXIgZnJhbWUgZm9y
IHRoZSBsb29rdXBGcmFtZSBpbiBjYXNlIHRoZSBhY3RpdmUgZnJhbWUgaXMgZGlmZmVyZW50IGZy
b20KICAgICAvLyB0aGUgb3BlbmVyIGZyYW1lLCBhbmQgdGhlIG5hbWUgcmVmZXJlbmNlcyBhIGZy
YW1lIHJlbGF0aXZlIHRvIHRoZSBvcGVuZXIgZnJhbWUuCi0gICAgRnJhbWUqIG5ld0ZyYW1lID0g
V2ViQ29yZTo6Y3JlYXRlV2luZG93KGNhbGxpbmdGcmFtZSwgb3BlbmVyRnJhbWUsIGZyYW1lUmVx
dWVzdCwgd2luZG93RmVhdHVyZXMsIGNyZWF0ZWQpOworICAgIEZyYW1lKiBuZXdGcmFtZSA9IFdl
YkNvcmU6OmNyZWF0ZVdpbmRvdyhjYWxsaW5nRnJhbWUsIG9wZW5lckZyYW1lLCBmcmFtZVJlcXVl
c3QsIHdpbmRvd0ZlYXR1cmVzLCBjcmVhdGVkLCBmYWxzZSk7CiAgICAgaWYgKCFuZXdGcmFtZSkK
ICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEyNSw2ICsxMjUsOSBAQCBGcmFtZSogQmluZGluZ0RP
TVdpbmRvdzxCaW5kaW5nPjo6Y3JlYXRlV2luZG93KFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwKICAg
ICAgICAgICAgIG5ld0ZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRp
b25DaGFuZ2UoY29tcGxldGVkVXJsLnN0cmluZygpLCByZWZlcnJlciwgZmFsc2UsIGZhbHNlKTsK
ICAgICB9CiAKKyAgICBpZiAoY3JlYXRlKQorICAgICAgbmV3RnJhbWUtPnBhZ2UoKS0+Y2hyb21l
KCktPnNob3coKTsKKwogICAgIHJldHVybiBuZXdGcmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA5NWZjZGMxOWNkMTkwNjg2YTdmMTgzOTll
YzNkNWY0N2ZjNzIyYWRiLi4yMTgwYThkMWE1NDYxNDg1NDYxOThlOTIxNzJlNWEzNWY5YWQyNWNi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNjkwLDcg
KzY5MCw3IEBAIHN0YXRpYyBGcmFtZSogY3JlYXRlV2luZG93KEV4ZWNTdGF0ZSogZXhlYywgRnJh
bWUqIGxleGljYWxGcmFtZSwgRnJhbWUqIGR5bmFtaWNGCiAgICAgYm9vbCBjcmVhdGVkOwogICAg
IC8vIFdlIHBhc3MgdGhlIG9wZW5lciBmcmFtZSBmb3IgdGhlIGxvb2t1cEZyYW1lIGluIGNhc2Ug
dGhlIGFjdGl2ZSBmcmFtZSBpcyBkaWZmZXJlbnQgZnJvbQogICAgIC8vIHRoZSBvcGVuZXIgZnJh
bWUsIGFuZCB0aGUgbmFtZSByZWZlcmVuY2VzIGEgZnJhbWUgcmVsYXRpdmUgdG8gdGhlIG9wZW5l
ciBmcmFtZS4KLSAgICBGcmFtZSogbmV3RnJhbWUgPSBjcmVhdGVXaW5kb3cobGV4aWNhbEZyYW1l
LCBvcGVuZXJGcmFtZSwgZnJhbWVSZXF1ZXN0LCB3aW5kb3dGZWF0dXJlcywgY3JlYXRlZCk7Cisg
ICAgRnJhbWUqIG5ld0ZyYW1lID0gY3JlYXRlV2luZG93KGxleGljYWxGcmFtZSwgb3BlbmVyRnJh
bWUsIGZyYW1lUmVxdWVzdCwgd2luZG93RmVhdHVyZXMsIGNyZWF0ZWQsIGZhbHNlKTsKICAgICBp
ZiAoIW5ld0ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNzA2LDcgKzcwNiw3IEBAIHN0
YXRpYyBGcmFtZSogY3JlYXRlV2luZG93KEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGxleGljYWxG
cmFtZSwgRnJhbWUqIGR5bmFtaWNGCiAgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwp
IHx8IG5ld1dpbmRvdy0+YWxsb3dzQWNjZXNzRnJvbShleGVjKSkgewogICAgICAgICBLVVJMIGNv
bXBsZXRlZFVSTCA9IHVybC5pc0VtcHR5KCkgPyBLVVJMKFBhcnNlZFVSTFN0cmluZywgIiIpIDog
Y29tcGxldGVVUkwoZXhlYywgdXJsKTsKICAgICAgICAgaWYgKGNyZWF0ZWQpCi0gICAgICAgICAg
ICBuZXdGcmFtZS0+bG9hZGVyKCktPmNoYW5nZUxvY2F0aW9uKGNvbXBsZXRlZFVSTCwgcmVmZXJy
ZXIsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICBuZXdGcmFtZS0+bG9hZGVyKCktPmNoYW5n
ZUxvY2F0aW9uKGNvbXBsZXRlZFVSTCwgcmVmZXJyZXIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRy
dWUpOwogICAgICAgICBlbHNlIGlmICghdXJsLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG5ld0Zy
YW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoY29tcGxl
dGVkVVJMLnN0cmluZygpLCByZWZlcnJlciwgIWxleGljYWxGcmFtZS0+c2NyaXB0KCktPmFueVBh
Z2VJc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpLCBmYWxzZSk7CiAgICAgfQpAQCAtNzQwLDQyICs3
NDAsMzUgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6b3BlbihFeGVjU3RhdGUqIGV4ZWMpCiAKICAg
ICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKIAotICAgIC8vIEJlY2F1c2UgRnJhbWVUcmVl
OjpmaW5kKCkgcmV0dXJucyB0cnVlIGZvciBlbXB0eSBzdHJpbmdzLCB3ZSBtdXN0IGNoZWNrIGZv
ciBlbXB0eSBmcmFtZW5hbWVzLgotICAgIC8vIE90aGVyd2lzZSwgaWxsZWdpdGltYXRlIHdpbmRv
dy5vcGVuKCkgY2FsbHMgd2l0aCBubyBuYW1lIHdpbGwgcGFzcyByaWdodCB0aHJvdWdoIHRoZSBw
b3B1cCBibG9ja2VyLgotICAgIGlmICghZG9tV2luZG93QWxsb3dQb3BVcChkeW5hbWljRnJhbWUp
ICYmIChmcmFtZU5hbWUuaXNFbXB0eSgpIHx8ICFmcmFtZS0+dHJlZSgpLT5maW5kKGZyYW1lTmFt
ZSkpKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAvLyB3aW5kb3cub3Blbigp
IGludGVycHJldCBlbXB0eSBzdHJpbmcgYXMgaWYgaXQgd2FzIF9ibGFuaywgd2hpY2ggaSdzIG5v
cm1hbGx5IHNlbGYuCisgICAgaWYgKGZyYW1lTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIGZyYW1l
TmFtZSA9ICJfYmxhbmsiOwogCi0gICAgLy8gR2V0IHRoZSB0YXJnZXQgZnJhbWUgZm9yIHRoZSBz
cGVjaWFsIGNhc2VzIG9mIF90b3AgYW5kIF9wYXJlbnQuICBJbiB0aG9zZQotICAgIC8vIGNhc2Vz
LCB3ZSBjYW4gc2NoZWR1bGUgYSBsb2NhdGlvbiBjaGFuZ2UgcmlnaHQgbm93IGFuZCByZXR1cm4g
ZWFybHkuCi0gICAgYm9vbCB0b3BPclBhcmVudCA9IGZhbHNlOwotICAgIGlmIChmcmFtZU5hbWUg
PT0gIl90b3AiKSB7Ci0gICAgICAgIGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dG9wKCk7Ci0gICAg
ICAgIHRvcE9yUGFyZW50ID0gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKGZyYW1lTmFtZSA9PSAiX3Bh
cmVudCIpIHsKLSAgICAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSBmcmFtZS0+dHJlZSgpLT5wYXJl
bnQoKSkKLSAgICAgICAgICAgIGZyYW1lID0gcGFyZW50OwotICAgICAgICB0b3BPclBhcmVudCA9
IHRydWU7Ci0gICAgfQotICAgIGlmICh0b3BPclBhcmVudCkgeworICAgIEZyYW1lKiB0YXJnZXRG
cmFtZSA9IGZyYW1lLT50cmVlKCktPmZpbmQoZnJhbWVOYW1lKTsKKworICAgIGlmICh0YXJnZXRG
cmFtZSkgewogICAgICAgICBTdHJpbmcgY29tcGxldGVkVVJMOwogICAgICAgICBpZiAoIXVybFN0
cmluZy5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb21wbGV0ZWRVUkwgPSBjb21wbGV0ZVVSTChl
eGVjLCB1cmxTdHJpbmcpLnN0cmluZygpOwogCi0gICAgICAgIGlmICghc2hvdWxkQWxsb3dOYXZp
Z2F0aW9uKGV4ZWMsIGZyYW1lKSkKKyAgICAgICAgaWYgKCFzaG91bGRBbGxvd05hdmlnYXRpb24o
ZXhlYywgdGFyZ2V0RnJhbWUpKQogICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAK
LSAgICAgICAgY29uc3QgSlNET01XaW5kb3cqIHRhcmdldGVkV2luZG93ID0gdG9KU0RPTVdpbmRv
dyhmcmFtZSwgY3VycmVudFdvcmxkKGV4ZWMpKTsKKyAgICAgICAgY29uc3QgSlNET01XaW5kb3cq
IHRhcmdldGVkV2luZG93ID0gdG9KU0RPTVdpbmRvdyh0YXJnZXRGcmFtZSwgY3VycmVudFdvcmxk
KGV4ZWMpKTsKICAgICAgICAgaWYgKCFjb21wbGV0ZWRVUkwuaXNFbXB0eSgpICYmICghcHJvdG9j
b2xJc0phdmFTY3JpcHQoY29tcGxldGVkVVJMKSB8fCAodGFyZ2V0ZWRXaW5kb3cgJiYgdGFyZ2V0
ZWRXaW5kb3ctPmFsbG93c0FjY2Vzc0Zyb20oZXhlYykpKSkgewogICAgICAgICAgICAgLy8gRm9y
IHdoYXRldmVyIHJlYXNvbiwgRmlyZWZveCB1c2VzIHRoZSBkeW5hbWljR2xvYmFsT2JqZWN0IHRv
CiAgICAgICAgICAgICAvLyBkZXRlcm1pbmUgdGhlIG91dGdvaW5nUmVmZXJyZXIuICBXZSByZXBs
aWNhdGUgdGhhdCBiZWhhdmlvcgogICAgICAgICAgICAgLy8gaGVyZS4KICAgICAgICAgICAgIFN0
cmluZyByZWZlcnJlciA9IGR5bmFtaWNGcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIo
KTsKIAotICAgICAgICAgICAgZnJhbWUtPm5hdmlnYXRpb25TY2hlZHVsZXIoKS0+c2NoZWR1bGVM
b2NhdGlvbkNoYW5nZShjb21wbGV0ZWRVUkwsIHJlZmVycmVyLCAhbGV4aWNhbEZyYW1lLT5zY3Jp
cHQoKS0+YW55UGFnZUlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCksIGZhbHNlKTsKKyAgICAgICAg
ICAgIHRhcmdldEZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25D
aGFuZ2UoY29tcGxldGVkVVJMLCByZWZlcnJlciwgIWxleGljYWxGcmFtZS0+c2NyaXB0KCktPmFu
eVBhZ2VJc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpLCBmYWxzZSk7CiAgICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZnJhbWUtPmRvbVdpbmRvdygpKTsKKyAgICAgICAgcmV0dXJu
IHRvSlMoZXhlYywgdGFyZ2V0RnJhbWUtPmRvbVdpbmRvdygpKTsKICAgICB9CiAKKyAgICBpZiAo
IWRvbVdpbmRvd0FsbG93UG9wVXAoZHluYW1pY0ZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CisKICAgICAvLyBJbiB0aGUgY2FzZSBvZiBhIG5hbWVkIGZyYW1lIG9yIGEgbmV3
IHdpbmRvdywgd2UnbGwgdXNlIHRoZSBjcmVhdGVXaW5kb3coKSBoZWxwZXIKICAgICBGbG9hdFJl
Y3Qgd2luZG93UmVjdCh3aW5kb3dGZWF0dXJlcy54U2V0ID8gd2luZG93RmVhdHVyZXMueCA6IDAs
IHdpbmRvd0ZlYXR1cmVzLnlTZXQgPyB3aW5kb3dGZWF0dXJlcy55IDogMCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aW5kb3dGZWF0dXJlcy53aWR0aFNldCA/IHdpbmRvd0ZlYXR1cmVzLndp
ZHRoIDogMCwgd2luZG93RmVhdHVyZXMuaGVpZ2h0U2V0ID8gd2luZG93RmVhdHVyZXMuaGVpZ2h0
IDogMCk7CkBAIC03ODYsMTIgKzc3OSwxMiBAQCBKU1ZhbHVlIEpTRE9NV2luZG93OjpvcGVuKEV4
ZWNTdGF0ZSogZXhlYykKICAgICB3aW5kb3dGZWF0dXJlcy5oZWlnaHQgPSB3aW5kb3dSZWN0Lmhl
aWdodCgpOwogICAgIHdpbmRvd0ZlYXR1cmVzLndpZHRoID0gd2luZG93UmVjdC53aWR0aCgpOwog
Ci0gICAgZnJhbWUgPSBjcmVhdGVXaW5kb3coZXhlYywgbGV4aWNhbEZyYW1lLCBkeW5hbWljRnJh
bWUsIGZyYW1lLCB1cmxTdHJpbmcsIGZyYW1lTmFtZSwgd2luZG93RmVhdHVyZXMsIEpTVmFsdWUo
KSk7CisgICAgdGFyZ2V0RnJhbWUgPSBjcmVhdGVXaW5kb3coZXhlYywgbGV4aWNhbEZyYW1lLCBk
eW5hbWljRnJhbWUsIGZyYW1lLCB1cmxTdHJpbmcsIGZyYW1lTmFtZSwgd2luZG93RmVhdHVyZXMs
IEpTVmFsdWUoKSk7CiAKLSAgICBpZiAoIWZyYW1lKQorICAgIGlmICghdGFyZ2V0RnJhbWUpCiAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgcmV0dXJuIHRvSlMoZXhlYywgZnJh
bWUtPmRvbVdpbmRvdygpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0YXJnZXRGcmFtZS0+ZG9t
V2luZG93KCkpOwogfQogCiBKU1ZhbHVlIEpTRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2coRXhl
Y1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDM1YTQ5MmI5YTMwMmM0ZDY5
MjE3NjM4ODBmMzhkZjJkYzNkOWEwNDkuLmI3MGM4YjQ3MjE1MjVmMWM5N2I2YmJjODQyZGQwNWU4
ZDQ0ODgwMWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysg
Yi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIwMiw2ICsyMDIsNyBAQCBGcmFt
ZUxvYWRlcjo6RnJhbWVMb2FkZXIoRnJhbWUqIGZyYW1lLCBGcmFtZUxvYWRlckNsaWVudCogY2xp
ZW50KQogICAgICwgbV9zdXBwcmVzc09wZW5lckluTmV3RnJhbWUoZmFsc2UpCiAgICAgLCBtX3Nh
bmRib3hGbGFncyhTYW5kYm94QWxsKQogICAgICwgbV9mb3JjZWRTYW5kYm94RmxhZ3MoU2FuZGJv
eE5vbmUpCisgICAgLCBtX2lzVW5hdXRob3JpemVkTmV3V2luZG93KGZhbHNlKQogewogfQogCkBA
IC0yNjEsMTIgKzI2MiwxMyBAQCBib29sIEZyYW1lTG9hZGVyOjpjYW5IYW5kbGVSZXF1ZXN0KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICByZXR1cm4gbV9jbGllbnQtPmNhbkhh
bmRsZVJlcXVlc3QocmVxdWVzdCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoYW5nZUxvY2F0
aW9uKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBsb2NrSGlz
dG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0LCBib29sIHJlZnJlc2gpCit2b2lkIEZyYW1l
TG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgYm9vbCBy
ZWZyZXNoLCBib29sIGlzVW5hdXRob3JpemVkTmV3V2luZG93KQogewogICAgIFJlZlB0cjxGcmFt
ZT4gcHJvdGVjdChtX2ZyYW1lKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHVybCwg
cmVmZXJyZXIsIHJlZnJlc2ggPyBSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSA6IFVzZVByb3RvY29s
Q2FjaGVQb2xpY3kpOwogICAgIAorICAgIG1faXNVbmF1dGhvcml6ZWROZXdXaW5kb3cgPSBpc1Vu
YXV0aG9yaXplZE5ld1dpbmRvdzsKICAgICB1cmxTZWxlY3RlZChyZXF1ZXN0LCAiX3NlbGYiLCAw
LCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgU2VuZFJlZmVycmVyLCBSZXBsYWNl
RG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOwogfQogCkBAIC0xMzIyLDcgKzEzMjQsNyBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpsb2FkVVJMKGNvbnN0IEtVUkwmIG5ld1VSTCwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlciwgY29uc3QgU3RyaQogCiAgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24obmV3VVJM
LCBuZXdMb2FkVHlwZSwgaXNGb3JtU3VibWlzc2lvbiwgZXZlbnQpOwogCi0gICAgaWYgKCF0YXJn
ZXRGcmFtZSAmJiAhZnJhbWVOYW1lLmlzRW1wdHkoKSkgeworICAgIGlmIChtX2lzVW5hdXRob3Jp
emVkTmV3V2luZG93IHx8ICghdGFyZ2V0RnJhbWUgJiYgIWZyYW1lTmFtZS5pc0VtcHR5KCkpKSB7
CiAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tOZXdXaW5kb3dQb2xpY3koYWN0aW9uLCBG
cmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LAogICAgICAg
ICAgICAgcmVxdWVzdCwgZm9ybVN0YXRlLnJlbGVhc2UoKSwgZnJhbWVOYW1lLCB0aGlzKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjk4MiwyMiArMjk4NCwzNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpj
YWxsQ29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kodm9pZCogYXJndW1lbnQsCiB2b2lk
IEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsCiAgICAgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0
ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlv
biwgYm9vbCBzaG91bGRDb250aW51ZSkKIHsKLSAgICBpZiAoIXNob3VsZENvbnRpbnVlKQotICAg
ICAgICByZXR1cm47CisgICAgUmVmUHRyPEZyYW1lPiBmcmFtZTsKKyAgICBSZWZQdHI8RnJhbWU+
IG1haW5GcmFtZTsKIAotICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBtX2ZyYW1lOwotICAgIFJl
ZlB0cjxGcmFtZT4gbWFpbkZyYW1lID0gbV9jbGllbnQtPmRpc3BhdGNoQ3JlYXRlUGFnZShhY3Rp
b24pOwotICAgIGlmICghbWFpbkZyYW1lKQotICAgICAgICByZXR1cm47CisgICAgaWYgKG1faXNV
bmF1dGhvcml6ZWROZXdXaW5kb3cpIHsKKyAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSkgewor
ICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xvc2VXaW5kb3dTb29uKCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIGlmIChmcmFtZU5hbWUgIT0g
Il9ibGFuayIpCi0gICAgICAgIG1haW5GcmFtZS0+dHJlZSgpLT5zZXROYW1lKGZyYW1lTmFtZSk7
CisgICAgICAgIG1haW5GcmFtZSA9IG1fZnJhbWU7CisgICAgICAgIG1faXNVbmF1dGhvcml6ZWRO
ZXdXaW5kb3cgPSBmYWxzZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGlmICghc2hvdWxkQ29u
dGludWUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnJhbWUgPSBtX2ZyYW1lOwor
ICAgICAgICBtYWluRnJhbWUgPSBtX2NsaWVudC0+ZGlzcGF0Y2hDcmVhdGVQYWdlKGFjdGlvbik7
CisKKyAgICAgICAgaWYgKCFtYWluRnJhbWUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgaWYgKGZyYW1lTmFtZSAhPSAiX2JsYW5rIikKKyAgICAgICAgICAgIG1haW5GcmFtZS0+dHJl
ZSgpLT5zZXROYW1lKGZyYW1lTmFtZSk7CisKKyAgICAgICAgbWFpbkZyYW1lLT5wYWdlKCktPnNl
dE9wZW5lZEJ5RE9NKCk7CisgICAgICAgIGlmICghbV9zdXBwcmVzc09wZW5lckluTmV3RnJhbWUp
CisgICAgICAgICAgICBtYWluRnJhbWUtPmxvYWRlcigpLT5zZXRPcGVuZXIoZnJhbWUuZ2V0KCkp
OworICAgICAgfQogCi0gICAgbWFpbkZyYW1lLT5wYWdlKCktPnNldE9wZW5lZEJ5RE9NKCk7Ci0g
ICAgbWFpbkZyYW1lLT5sb2FkZXIoKS0+bV9jbGllbnQtPmRpc3BhdGNoU2hvdygpOwotICAgIGlm
ICghbV9zdXBwcmVzc09wZW5lckluTmV3RnJhbWUpCi0gICAgICAgIG1haW5GcmFtZS0+bG9hZGVy
KCktPnNldE9wZW5lcihmcmFtZS5nZXQoKSk7CiAgICAgbWFpbkZyYW1lLT5sb2FkZXIoKS0+bG9h
ZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25BY3Rpb24oKSwgZmFsc2Us
IEZyYW1lTG9hZFR5cGVTdGFuZGFyZCwgZm9ybVN0YXRlKTsKKyAgICBtYWluRnJhbWUtPmxvYWRl
cigpLT5tX2NsaWVudC0+ZGlzcGF0Y2hTaG93KCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnJl
cXVlc3RGcm9tRGVsZWdhdGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1bnNpZ25lZCBsb25n
JiBpZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTM0NTcsNyArMzQ3NCw3IEBA
IGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6Omhhc0hUTUxWaWV3KCkgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotRnJhbWUqIGNyZWF0ZVdpbmRvdyhGcmFtZSogb3BlbmVyRnJhbWUsIEZyYW1l
KiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2lu
ZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBib29sJiBjcmVhdGVkKQorRnJhbWUqIGNyZWF0ZVdpbmRv
dyhGcmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2Fk
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBib29sJiBj
cmVhdGVkLCBib29sIHNob3cpCiB7CiAgICAgQVNTRVJUKCFmZWF0dXJlcy5kaWFsb2cgfHwgcmVx
dWVzdC5mcmFtZU5hbWUoKS5pc0VtcHR5KCkpOwogCkBAIC0zNTE3LDcgKzM1MzQsOCBAQCBGcmFt
ZSogY3JlYXRlV2luZG93KEZyYW1lKiBvcGVuZXJGcmFtZSwgRnJhbWUqIGxvb2t1cEZyYW1lLCBj
b25zdCBGcmFtZUxvYWRSZXF1ZQogICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdodChmZWF0dXJl
cy5oZWlnaHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHBhZ2VTaXplLmhlaWdodCgpKSk7CiAg
ICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3Qod2luZG93UmVjdCk7CiAKLSAgICBwYWdl
LT5jaHJvbWUoKS0+c2hvdygpOworICAgIGlmIChzaG93KQorICAgICAgcGFnZS0+Y2hyb21lKCkt
PnNob3coKTsKIAogICAgIGNyZWF0ZWQgPSB0cnVlOwogICAgIHJldHVybiBmcmFtZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCmluZGV4IDc2YWQ5NzdiNDNmNTA0Mjc2MjgwN2YwMzExNzgzNjY1ZjQ5ZTZlMTku
LmZjMTM5YzFlNGYxZjdmNjQwMzQ1MTQyYzdhYWRmMTU0Mjk0NTg4OGYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaApAQCAtMjE0LDcgKzIxNCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9h
ZGluZyhib29sKTsKIAotICAgIHZvaWQgY2hhbmdlTG9jYXRpb24oY29uc3QgS1VSTCYsIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgbG9ja0hpc3RvcnkgPSB0cnVlLCBib29sIGxvY2tCYWNr
Rm9yd2FyZExpc3QgPSB0cnVlLCBib29sIHJlZnJlc2ggPSBmYWxzZSk7CisgICAgdm9pZCBjaGFu
Z2VMb2NhdGlvbihjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBsb2Nr
SGlzdG9yeSA9IHRydWUsIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCA9IHRydWUsIGJvb2wgcmVm
cmVzaCA9IGZhbHNlLCBib29sIGlzVW5hdXRob3JpemVkTmV3V2luZG93ID0gZmFsc2UpOwogICAg
IHZvaWQgdXJsU2VsZWN0ZWQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBQYXNz
UmVmUHRyPEV2ZW50PiwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0
LCBSZWZlcnJlclBvbGljeSk7CiAKICAgICB2b2lkIHN1Ym1pdEZvcm0oUGFzc1JlZlB0cjxGb3Jt
U3VibWlzc2lvbj4pOwpAQCAtNDg0LDYgKzQ4NCw4IEBAIHByaXZhdGU6CiAgICAgU2FuZGJveEZs
YWdzIG1fc2FuZGJveEZsYWdzOwogICAgIFNhbmRib3hGbGFncyBtX2ZvcmNlZFNhbmRib3hGbGFn
czsKIAorICAgIGJvb2wgbV9pc1VuYXV0aG9yaXplZE5ld1dpbmRvdzsKKwogICAgIFJlZlB0cjxG
cmFtZU5ldHdvcmtpbmdDb250ZXh0PiBtX25ldHdvcmtpbmdDb250ZXh0OwogfTsKIApAQCAtNDk0
LDcgKzQ5Niw3IEBAIHByaXZhdGU6CiAvLwogLy8gRklYTUU6IENvbnNpZGVyIG1ha2luZyB0aGlz
IGZ1bmN0aW9uIHBhcnQgb2YgYW4gYXBwcm9wcmlhdGUgY2xhc3MgKG5vdCBGcmFtZUxvYWRlcikK
IC8vIGFuZCBtb3ZpbmcgaXQgdG8gYSBtb3JlIGFwcHJvcHJpYXRlIGxvY2F0aW9uLgotRnJhbWUq
IGNyZWF0ZVdpbmRvdyhGcmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgYm9vbCYgY3JlYXRl
ZCk7CitGcmFtZSogY3JlYXRlV2luZG93KEZyYW1lKiBvcGVuZXJGcmFtZSwgRnJhbWUqIGxvb2t1
cEZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBi
b29sJiBjcmVhdGVkLCBib29sIHNob3cgPSB0cnVlKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCg==
</data>
<flag name="review"
          id="65847"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>