<?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>25889</bug_id>
          
          <creation_ts>2009-05-20 07:11:07 -0700</creation_ts>
          <short_desc>[GTK] scrollbar policy for main frame is not implementable</short_desc>
          <delta_ts>2009-08-28 08:35:20 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>25646</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gustavo Noronha (kov)">gustavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>christian</cc>
    
    <cc>jaroslav.klaus</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>122148</commentid>
    <comment_count>0</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-20 07:11:07 -0700</bug_when>
    <thetext>Scrollbar policy for the main frame is currently not implementable, since Scrollview::setScrollbarMode is not forwarded to our view code, nor to the application so that it is able to implement the policy in whatever widget it is using to provide scrolling.

This breaks sites such as orkut.com, which disable the main frame&apos;s scrollbars, and implement their own - we get two scrollbars in our current implementation. It also breaks expectations such as css overflow handling forcing the scrollbars to appear/disappear, making some layout tests not work for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122151</commentid>
    <comment_count>1</comment_count>
      <attachid>30507</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-20 07:31:35 -0700</bug_when>
    <thetext>Created attachment 30507
report scrollbar policy

 WebCore/ChangeLog                      |   12 +++
 WebCore/platform/ScrollView.cpp        |    2 +-
 WebCore/platform/gtk/ScrollViewGtk.cpp |   24 ++++++
 WebKit/gtk/ChangeLog                   |   16 ++++
 WebKit/gtk/webkit/webkitwebview.cpp    |  129 +++++++++++++++++++++++++++++++-
 WebKit/gtk/webkit/webkitwebview.h      |   11 +++-
 6 files changed, 191 insertions(+), 3 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122152</commentid>
    <comment_count>2</comment_count>
      <attachid>30508</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-20 07:31:41 -0700</bug_when>
    <thetext>Created attachment 30508
correctly report visible contents rect

 WebCore/ChangeLog                      |   12 ++++++++++++
 WebCore/platform/ScrollView.cpp        |    2 ++
 WebCore/platform/gtk/ScrollViewGtk.cpp |   15 +++++++++++++++
 3 files changed, 29 insertions(+), 0 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122154</commentid>
    <comment_count>3</comment_count>
      <attachid>30507</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-20 07:33:10 -0700</bug_when>
    <thetext>Comment on attachment 30507
report scrollbar policy

This patch is WIP, and built on top of a patch by zecke which is still to be reviewed. What is missing from this patch is basically making the properties read/write, but I would like comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122155</commentid>
    <comment_count>4</comment_count>
      <attachid>30508</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-20 07:33:46 -0700</bug_when>
    <thetext>Comment on attachment 30508
correctly report visible contents rect

This is not strictly needed to fix this specific problem, but size reporting is off without it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122221</commentid>
    <comment_count>5</comment_count>
      <attachid>30508</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-20 16:25:56 -0700</bug_when>
    <thetext>Comment on attachment 30508
correctly report visible contents rect

Actually nevermind looking at this patch. It&apos;s broken. I&apos;ll investigate a bit more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122783</commentid>
    <comment_count>6</comment_count>
    <who name="Jaroslav Klaus">jaroslav.klaus</who>
    <bug_when>2009-05-22 21:18:57 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 30507 [review])
&gt; This patch is WIP, and built on top of a patch by zecke which is still to be
&gt; reviewed. What is missing from this patch is basically making the properties
&gt; read/write, but I would like comments.
&gt; 

Thanks for the patch. It works fine. There is additional problem probably related to other bug. Adobe flash plugin overlays WebView scrollbars (horizontal and vertical) and sometimes shifts a content of the view with horizontal scrollbar.

How to repeat:
- disable ads blocking if you have
- enable flash
- go to http://www.ynet.co.il
- shrink the window the horizontal scrollbar appears
- watch the rss ticker and ads (flash) that overlays scrollbars 
- horizontal scrollbar starts after flash content on the left side of the page
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122834</commentid>
    <comment_count>7</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-05-23 05:44:24 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 30507 [review] [review])
&gt; &gt; This patch is WIP, and built on top of a patch by zecke which is still to be
&gt; &gt; reviewed. What is missing from this patch is basically making the properties
&gt; &gt; read/write, but I would like comments.
&gt; &gt; 
&gt; 
&gt; Thanks for the patch. It works fine. There is additional problem probably
&gt; related to other bug. Adobe flash plugin overlays WebView scrollbars
&gt; (horizontal and vertical) and sometimes shifts a content of the view with
&gt; horizontal scrollbar.
&gt; 
&gt; How to repeat:
&gt; - disable ads blocking if you have
&gt; - enable flash
&gt; - go to http://www.ynet.co.il
&gt; - shrink the window the horizontal scrollbar appears
&gt; - watch the rss ticker and ads (flash) that overlays scrollbars 
&gt; - horizontal scrollbar starts after flash content on the left side of the page

please file a separate bug for flash bugs. Yes, the flash window will overlap with various things. This includes popups (see youtube search) and as you mention scrollbars...


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123089</commentid>
    <comment_count>8</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-05-25 19:07:29 -0700</bug_when>
    <thetext>Found a bit of time to look into. I think you will want to move this to WebKitWebFrame. With sites like images.google.com (actually when clicking on a search result). Otherwise you will get the signal (assuming hostWindow() will be != 0) for every frame of the frameset?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123099</commentid>
    <comment_count>9</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-25 20:07:04 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Found a bit of time to look into. I think you will want to move this to
&gt; WebKitWebFrame. With sites like images.google.com (actually when clicking on a
&gt; search result). Otherwise you will get the signal (assuming hostWindow() will
&gt; be != 0) for every frame of the frameset?
&gt; 

The scrollbars that show up in the frames in images.google.com results are drawn by webkit, and the policy changes are already respected correctly. We may want to notify the frame about such changes for informational, but it doesn&apos;t really matter that much to the application or to the scrolling widget that is WebView&apos;s parent, I think. So what we want is to only emit that signal on the WebView for the main frame. Does that make sense to you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123164</commentid>
    <comment_count>10</comment_count>
      <attachid>30675</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-26 12:45:39 -0700</bug_when>
    <thetext>Created attachment 30675
report scrollbar policy

 WebCore/ChangeLog                      |   12 +++
 WebCore/platform/ScrollView.cpp        |    2 +-
 WebCore/platform/gtk/ScrollViewGtk.cpp |   36 +++++++++
 WebKit/gtk/ChangeLog                   |   16 ++++
 WebKit/gtk/webkit/webkitwebview.cpp    |  129 +++++++++++++++++++++++++++++++-
 WebKit/gtk/webkit/webkitwebview.h      |   11 +++-
 6 files changed, 203 insertions(+), 3 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123165</commentid>
    <comment_count>11</comment_count>
      <attachid>30675</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-26 12:46:50 -0700</bug_when>
    <thetext>Comment on attachment 30675
report scrollbar policy

This time reporting policy only for the main frame, since it is the only that matters from a WebView point of view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123168</commentid>
    <comment_count>12</comment_count>
      <attachid>30677</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-26 12:57:01 -0700</bug_when>
    <thetext>Created attachment 30677
report correct visible size

 WebCore/ChangeLog                      |   12 ++++++++++++
 WebCore/platform/ScrollView.cpp        |    2 ++
 WebCore/platform/gtk/ScrollViewGtk.cpp |   21 +++++++++++++++++++++
 3 files changed, 35 insertions(+), 0 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123171</commentid>
    <comment_count>13</comment_count>
      <attachid>30677</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-26 13:04:48 -0700</bug_when>
    <thetext>Comment on attachment 30677
report correct visible size

Ok, after investigating the other porblem, I also reworked this one to only apply the special-cased code to the main frame, as it should.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124870</commentid>
    <comment_count>14</comment_count>
      <attachid>31076</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-08 18:23:00 -0700</bug_when>
    <thetext>Created attachment 31076
report scrollbar policy

 WebCore/ChangeLog                             |   16 ++++
 WebCore/page/ChromeClient.h                   |    4 +
 WebCore/platform/ScrollView.cpp               |    2 +-
 WebCore/platform/ScrollView.h                 |    4 +
 WebCore/platform/gtk/ScrollViewGtk.cpp        |   26 ++++++
 WebKit/gtk/ChangeLog                          |   18 ++++
 WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp |   26 ++++++
 WebKit/gtk/WebCoreSupport/ChromeClientGtk.h   |    1 +
 WebKit/gtk/webkit/webkitwebframe.cpp          |  112 ++++++++++++++++++++++++-
 WebKit/gtk/webkit/webkitwebframe.h            |    7 ++
 10 files changed, 214 insertions(+), 2 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124871</commentid>
    <comment_count>15</comment_count>
      <attachid>31076</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-08 18:24:39 -0700</bug_when>
    <thetext>Comment on attachment 31076
report scrollbar policy

More changes due to talking to zecke on IRC. We now report policy changes to any frame that has an adjustment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124942</commentid>
    <comment_count>16</comment_count>
      <attachid>30677</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-06-09 07:53:41 -0700</bug_when>
    <thetext>Comment on attachment 30677
report correct visible size

Okay, it is a bit sad to have more platform specific code, but such is life... after all the troubles I still think the GtkAdjustment thing is the right way to do it... :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124945</commentid>
    <comment_count>17</comment_count>
      <attachid>31076</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-06-09 08:31:54 -0700</bug_when>
    <thetext>Comment on attachment 31076
report scrollbar policy


&gt;  
&gt; +#if PLATFORM(GTK)
&gt; +        virtual void scrollbarsPolicyDidChange(Frame*) const { };
&gt; +#endif

You will have to bite the bullet and add it to EmptyClients, Qt, Win, Mac, Wx... all of *Client.h should be pure virtual to get the analogy of an interface. I was recently reinforcing this.



&gt;  void ScrollView::scrollbarModes(ScrollbarMode&amp; horizontalMode, ScrollbarMode&amp; verticalMode) const
&gt;  {
&gt; diff --git a/WebCore/platform/ScrollView.h b/WebCore/platform/ScrollView.h
&gt; index 4d5bed1..179b916 100644
&gt; --- a/WebCore/platform/ScrollView.h
&gt; +++ b/WebCore/platform/ScrollView.h
&gt; @@ -40,6 +40,9 @@
&gt;  #endif
&gt;  
&gt;  #if PLATFORM(GTK)
&gt; +namespace WebCore {
&gt; +class Frame;
&gt; +}

&gt;      GtkAdjustment* m_verticalAdjustment;
&gt;      void setScrollOffset(const IntSize&amp; offset) { m_scrollOffset = offset; }
&gt; +    virtual Frame* frame() const = 0;
&gt;  #endif

we can&apos;t do this, it is a layering violation and hyatt will deep fry us. more on this later.




&gt; +
&gt; +    // For frames that do have adjustments attached, we want to report
&gt; +    // policy changes, so that they may be applied to the widget to
&gt; +    // which the WebView has been added, for instance.
&gt; +    Page* page = frame() ? frame()-&gt;page() : 0;
&gt; +    if (page)
&gt; +        page-&gt;chrome()-&gt;client()-&gt;scrollbarsPolicyDidChange(frame());
&gt; +}
&gt; +

You can look at the &quot;scrollRectIntoView&quot;. It is used by the mac to send information into the ChromeClient. I think we can adopt a strategy like that. What you can do either in the method above, or preferable in the ChromeClient implementation itself, is ask the ScrollView if it is a FrameView (isFrameView) and then cast it to a FrameView.


&gt; +    g_object_class_install_property(objectClass, PROP_HORIZONTAL_SCROLLBAR_POLICY,
&gt; +                                    g_param_spec_enum(&quot;horizontal-scrollbar-policy&quot;,
&gt; +                                                      &quot;Horizontal Scrollbar Policy&quot;,
&gt; +                                                      &quot;Determines the current policy for the horizontal scrollbar of the frame.&quot;,
&gt; +                                                      GTK_TYPE_POLICY_TYPE,
&gt; +                                                      GTK_POLICY_AUTOMATIC,
&gt; +                                                      WEBKIT_PARAM_READABLE));
&gt; +
&gt; +    /**
&gt; +     * WebKitWebFrame:vertical-scrollbar-policy:
&gt; +     *
&gt; +     * Determines the current policy for the vertical scrollbar of
&gt; +     * the frame. For the main frame, you should follow this policy on
&gt; +     * the widget that surrounds the #WebKitWebView to make some
&gt; +     * content behave as expected.
&gt; +     *
&gt; +     * Since: 1.1.9
&gt; +     */
&gt; +    g_object_class_install_property(objectClass, PROP_VERTICAL_SCROLLBAR_POLICY,
&gt; +                                    g_param_spec_enum(&quot;vertical-scrollbar-policy&quot;,
&gt; +                                                      &quot;Vertical Scrollbar Policy&quot;,
&gt; +                                                      &quot;Determines the current policy for the vertical scrollbar of the frame.&quot;,
&gt; +                                                      GTK_TYPE_POLICY_TYPE,
&gt; +                                                      GTK_POLICY_AUTOMATIC,
&gt; +                                                      WEBKIT_PARAM_READABLE));
&gt;

i18n in the attributes? :)


looks fine otherwise, sorry that we need another iteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124970</commentid>
    <comment_count>18</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-06-09 10:41:51 -0700</bug_when>
    <thetext>+ For the main frame, you should follow this policy on
+     * the widget that surrounds the #WebKitWebView to make some
+     * content behave as expected.

Just a small point: the wording is a little unclear. Does this mean that one should set the same policy on the scrolled window containing the web view?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124971</commentid>
    <comment_count>19</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-09 10:45:10 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; + For the main frame, you should follow this policy on
&gt; +     * the widget that surrounds the #WebKitWebView to make some
&gt; +     * content behave as expected.
&gt; 
&gt; Just a small point: the wording is a little unclear. Does this mean that one
&gt; should set the same policy on the scrolled window containing the web view?

Yes =). Do you have a suggestion on how to make it clearer?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125032</commentid>
    <comment_count>20</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-09 16:15:08 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; You will have to bite the bullet and add it to EmptyClients, Qt, Win, Mac,
&gt; Wx... all of *Client.h should be pure virtual to get the analogy of an
&gt; interface. I was recently reinforcing this.

No problem (although PLATFORM(MAC) has some methods that go against this, are those just historical artifacts?).
 
&gt; &gt;      GtkAdjustment* m_verticalAdjustment;
&gt; &gt;      void setScrollOffset(const IntSize&amp; offset) { m_scrollOffset = offset; }
&gt; &gt; +    virtual Frame* frame() const = 0;
&gt; &gt;  #endif
&gt; 
&gt; we can&apos;t do this, it is a layering violation and hyatt will deep fry us. more
&gt; on this later.
[...]
&gt; &gt; +    Page* page = frame() ? frame()-&gt;page() : 0;
&gt; &gt; +    if (page)
&gt; &gt; +        page-&gt;chrome()-&gt;client()-&gt;scrollbarsPolicyDidChange(frame());
&gt; &gt; +}
&gt; &gt; +
&gt; 
&gt; You can look at the &quot;scrollRectIntoView&quot;. It is used by the mac to send
&gt; information into the ChromeClient. I think we can adopt a strategy like that.
&gt; What you can do either in the method above, or preferable in the ChromeClient
&gt; implementation itself, is ask the ScrollView if it is a FrameView (isFrameView)
&gt; and then cast it to a FrameView.

I had to make that cast in the ScrollView code, because I needed a way to get to the chrome client, anyway. Let&apos;s see if it looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125033</commentid>
    <comment_count>21</comment_count>
      <attachid>31111</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-09 16:15:39 -0700</bug_when>
    <thetext>Created attachment 31111
report scrollbar policy

 WebCore/ChangeLog                             |   16 ++++
 WebCore/loader/EmptyClients.h                 |    1 +
 WebCore/page/ChromeClient.h                   |    1 +
 WebCore/platform/ScrollView.cpp               |    2 +-
 WebCore/platform/gtk/ScrollViewGtk.cpp        |   31 +++++++
 WebKit/gtk/ChangeLog                          |   18 ++++
 WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp |   26 ++++++
 WebKit/gtk/WebCoreSupport/ChromeClientGtk.h   |    1 +
 WebKit/gtk/webkit/webkitwebframe.cpp          |  112 ++++++++++++++++++++++++-
 WebKit/gtk/webkit/webkitwebframe.h            |    7 ++
 WebKit/mac/WebCoreSupport/WebChromeClient.h   |    1 +
 WebKit/qt/WebCoreSupport/ChromeClientQt.h     |    1 +
 WebKit/win/WebCoreSupport/WebChromeClient.h   |    1 +
 WebKit/wx/WebKitSupport/ChromeClientWx.h      |    1 +
 14 files changed, 217 insertions(+), 2 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125034</commentid>
    <comment_count>22</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-09 16:17:31 -0700</bug_when>
    <thetext>btw, I&apos;m not committing the r+&apos;ed one because I&apos;m lazy, and want to get them in in the same order as they are in my branch, but if anyone gets in a hurry let me know =D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125036</commentid>
    <comment_count>23</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-09 16:44:51 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Created an attachment (id=31111) [review]
&gt; report scrollbar policy

Btw, I forgot about the i18n markers again, but I will add them when landing =/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125202</commentid>
    <comment_count>24</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-06-10 12:48:49 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; + For the main frame, you should follow this policy on
&gt; &gt; +     * the widget that surrounds the #WebKitWebView to make some
&gt; &gt; +     * content behave as expected.
&gt; &gt; 
&gt; &gt; Just a small point: the wording is a little unclear. Does this mean that one
&gt; &gt; should set the same policy on the scrolled window containing the web view?
&gt; 
&gt; Yes =). Do you have a suggestion on how to make it clearer?

I would say &quot;make sure to set the same policy on the scrollable widget containing the web view&quot;, to avoid the ambiguity with &quot;following&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125482</commentid>
    <comment_count>25</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-12 10:29:45 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; &gt; Yes =). Do you have a suggestion on how to make it clearer?
&gt; 
&gt; I would say &quot;make sure to set the same policy on the scrollable widget
&gt; containing the web view&quot;, to avoid the ambiguity with &quot;following&quot;.

That&apos;s perfect, I&apos;ll make this change for landing, thanks! 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125490</commentid>
    <comment_count>26</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-12 11:28:20 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; &gt; Yes =). Do you have a suggestion on how to make it clearer?
&gt; &gt; 
&gt; &gt; I would say &quot;make sure to set the same policy on the scrollable widget
&gt; &gt; containing the web view&quot;, to avoid the ambiguity with &quot;following&quot;.
&gt; 
&gt; That&apos;s perfect, I&apos;ll make this change for landing, thanks! 
&gt; 

Actually, there&apos;s a test that fails with my code. Since it is not failing with windows, it may be because of that check. Changing the code to this makes the failing test pass, and the one I enable with the patch, as well:

+    if (gLayoutTestController-&gt;dumpStatusCallbacks()) {
+        if (message &amp;&amp; strcmp(message, &quot;&quot;))
+            printf(&quot;UI DELEGATE STATUS CALLBACK: setStatusText:%s\n&quot;, message);
+    }

r=you on going like that?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126024</commentid>
    <comment_count>27</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-15 14:05:54 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; Actually, there&apos;s a test that fails with my code. Since it is not failing with
&gt; windows, it may be because of that check. Changing the code to this makes the
&gt; failing test pass, and the one I enable with the patch, as well:
&gt; 
&gt; +    if (gLayoutTestController-&gt;dumpStatusCallbacks()) {
&gt; +        if (message &amp;&amp; strcmp(message, &quot;&quot;))
&gt; +            printf(&quot;UI DELEGATE STATUS CALLBACK: setStatusText:%s\n&quot;,
&gt; message);
&gt; +    }

Nevermind this comment, it was meant for a different bug report!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127301</commentid>
    <comment_count>28</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-06-22 00:03:36 -0700</bug_when>
    <thetext>I think you want to add _() to the properties names?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127359</commentid>
    <comment_count>29</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-22 08:46:52 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; I think you want to add _() to the properties names?
&gt; 

Yeah, I was planning to do that when committing, as well as the doc change suggested by Christian in #24. I just wanted to avoid uploading a new patch. You want me to do it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128159</commentid>
    <comment_count>30</comment_count>
      <attachid>31111</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-25 04:35:01 -0700</bug_when>
    <thetext>Comment on attachment 31111
report scrollbar policy

(In reply to comment #29)
&gt; (In reply to comment #28)
&gt; &gt; I think you want to add _() to the properties names?
&gt; &gt; 
&gt; 
&gt; Yeah, I was planning to do that when committing, as well as the doc change
&gt; suggested by Christian in #24. I just wanted to avoid uploading a new patch.
&gt; You want me to do it?

Please update the patch with regards to Christian&apos;s and Holger&apos;s comments, + update &quot;Since&quot;.

Also, can we add a test for this (if we don&apos;t have one for it yet - layout, unit tests)?

I&apos;ll r- this for now based on the these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128441</commentid>
    <comment_count>31</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-26 01:41:03 -0700</bug_when>
    <thetext>This has been sitting in the commit queue for a month. :(  Kov?  What&apos;s your plan here...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128665</commentid>
    <comment_count>32</comment_count>
      <attachid>30677</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-27 14:42:09 -0700</bug_when>
    <thetext>Comment on attachment 30677
report correct visible size

I got this one committed as r45313, now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128669</commentid>
    <comment_count>33</comment_count>
      <attachid>31980</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-27 15:07:16 -0700</bug_when>
    <thetext>Created attachment 31980
report scrollbar policy

 WebCore/ChangeLog                             |   19 ++++
 WebCore/loader/EmptyClients.h                 |    1 +
 WebCore/page/ChromeClient.h                   |    1 +
 WebCore/platform/ScrollView.cpp               |    2 +-
 WebCore/platform/gtk/ScrollViewGtk.cpp        |   31 +++++++
 WebKit/gtk/ChangeLog                          |   18 ++++
 WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp |   26 ++++++
 WebKit/gtk/WebCoreSupport/ChromeClientGtk.h   |    1 +
 WebKit/gtk/webkit/webkitwebframe.cpp          |  112 ++++++++++++++++++++++++-
 WebKit/gtk/webkit/webkitwebframe.h            |    7 ++
 WebKit/mac/ChangeLog                          |    9 ++
 WebKit/mac/WebCoreSupport/WebChromeClient.h   |    1 +
 WebKit/qt/ChangeLog                           |    9 ++
 WebKit/qt/WebCoreSupport/ChromeClientQt.h     |    1 +
 WebKit/win/ChangeLog                          |    9 ++
 WebKit/win/WebCoreSupport/WebChromeClient.h   |    1 +
 WebKit/wx/ChangeLog                           |    9 ++
 WebKit/wx/WebKitSupport/ChromeClientWx.h      |    1 +
 18 files changed, 256 insertions(+), 2 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128670</commentid>
    <comment_count>34</comment_count>
      <attachid>31980</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-27 15:09:40 -0700</bug_when>
    <thetext>Comment on attachment 31980
report scrollbar policy

(In reply to comment #31)
&gt; This has been sitting in the commit queue for a month. :(  Kov?  What&apos;s your
&gt; plan here...
 
I was under the impression that both patches would receive an r+ quickly, and since they were related, planned to commit them together, but I was clearly wrong =(. So I got out of my laziness today, and actually updated the second patch with the small issues that were pointed out, so that it can get a review, and decided to commit the other =).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128712</commentid>
    <comment_count>35</comment_count>
      <attachid>30677</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-27 22:35:59 -0700</bug_when>
    <thetext>Comment on attachment 30677
report correct visible size

clearing review flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128922</commentid>
    <comment_count>36</comment_count>
      <attachid>32028</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-29 16:54:51 -0700</bug_when>
    <thetext>Created attachment 32028
report scrollbar policy

 ChangeLog                                     |   12 +++
 GNUmakefile.am                                |    6 +
 WebCore/ChangeLog                             |   38 ++++++++
 WebCore/loader/EmptyClients.h                 |    1 +
 WebCore/page/ChromeClient.h                   |    1 +
 WebCore/platform/ScrollView.cpp               |    2 +-
 WebCore/platform/gtk/ScrollViewGtk.cpp        |   31 ++++++
 WebKit/gtk/ChangeLog                          |   26 +++++
 WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp |   26 +++++
 WebKit/gtk/WebCoreSupport/ChromeClientGtk.h   |    1 +
 WebKit/gtk/tests/testwindow.c                 |  125 +++++++++++++++++++++++++
 WebKit/gtk/webkit/webkitwebframe.cpp          |  112 ++++++++++++++++++++++-
 WebKit/gtk/webkit/webkitwebframe.h            |    7 ++
 WebKit/mac/ChangeLog                          |   12 +++
 WebKit/mac/WebCoreSupport/WebChromeClient.h   |    1 +
 WebKit/qt/ChangeLog                           |   12 +++
 WebKit/qt/WebCoreSupport/ChromeClientQt.h     |    1 +
 WebKit/win/ChangeLog                          |   12 +++
 WebKit/win/WebCoreSupport/WebChromeClient.h   |    1 +
 WebKit/wx/ChangeLog                           |   12 +++
 WebKit/wx/WebKitSupport/ChromeClientWx.h      |    1 +
 21 files changed, 438 insertions(+), 2 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128923</commentid>
    <comment_count>37</comment_count>
      <attachid>32028</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-29 16:56:01 -0700</bug_when>
    <thetext>Comment on attachment 32028
report scrollbar policy

Adding a test, and more changelogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129064</commentid>
    <comment_count>38</comment_count>
      <attachid>32028</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-30 07:06:02 -0700</bug_when>
    <thetext>Comment on attachment 32028
report scrollbar policy

&gt; +        (WebCore::ScrollView::setScrollbarModes):
&gt; +&gt;&gt;&gt;&gt;&gt;&gt;&gt; report scrollbar policy:WebCore/ChangeLog

Something went wrong here.

&gt; +    GtkWidget* parent = gtk_widget_get_parent(GTK_WIDGET(webView));
&gt; +    if (!parent || !GTK_IS_SCROLLED_WINDOW(parent))
&gt; +        return;

Should this be an &amp;&amp;?

&gt; +    /* Never */

Never?

&gt; +    /* Always */

Is it ok to be more descriptive? :)

&gt; +    /* Auto */

Ditto.

&gt; +     * @web_view: the object which received the signal
&gt; +     *
&gt; +     * Signal emitted when policy for one or both of the scrollbars of
&gt; +     * the view has changed. The default handler will apply the new
&gt; +     * policy to the container that holds the #WebKitWebFrame if it is
&gt; +     * a #GtkScrolledWindow. If you do not want this to be handled
&gt; +     * automatically, you need to handle this signal.

What does the last sentence mean? 

&gt; +     * Determines the current policy for the horizontal scrollbar of
&gt; +     * the frame. For the main frame, make sure to set the same policy
&gt; +     * on the scrollable widget containing the #WebKitWebView, unless
&gt; +     * you know what you are doing.

What happens if they don&apos;t set the same policy in the widget containing the WebView? I think it should mention it here too.

The rest looks fine. I&apos;ll let Holger do the r+ as he&apos;s more familiar with it (and it&apos;s in his todo list :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131519</commentid>
    <comment_count>39</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-07-14 03:54:18 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; (From update of attachment 32028 [details])
&gt; &gt; +        (WebCore::ScrollView::setScrollbarModes):
&gt; &gt; +&gt;&gt;&gt;&gt;&gt;&gt;&gt; report scrollbar policy:WebCore/ChangeLog
&gt; 
&gt; Something went wrong here.

/me hates ChangeLogs

&gt; &gt; +    GtkWidget* parent = gtk_widget_get_parent(GTK_WIDGET(webView));
&gt; &gt; +    if (!parent || !GTK_IS_SCROLLED_WINDOW(parent))
&gt; &gt; +        return;
&gt; 
&gt; Should this be an &amp;&amp;?

No. We want to return early in the case where we have no parent, or in the case we have a parent, and it is not a scrolled window.

&gt; &gt; +    /* Never */
&gt; 
&gt; Never?

Those are the names of the scrolled window policies - never display scrollbars, in this case. I guess I can be more descriptive.

&gt; &gt; +     * Determines the current policy for the horizontal scrollbar of
&gt; &gt; +     * the frame. For the main frame, make sure to set the same policy
&gt; &gt; +     * on the scrollable widget containing the #WebKitWebView, unless
&gt; &gt; +     * you know what you are doing.
&gt; 
&gt; What happens if they don&apos;t set the same policy in the widget containing the
&gt; WebView? I think it should mention it here too.

It depends on if/how web applications code work. If, say, a hackish code depends on the visible area being made smaller by adding a scrollbar, for some reason, it will break if the scrollbar does not appear, making the visible area smaller. I am not sure adding more info here will help makes this any clearer, but I&apos;m up for suggestions.

&gt; The rest looks fine. I&apos;ll let Holger do the r+ as he&apos;s more familiar with it
&gt; (and it&apos;s in his todo list :)

Cool. Need to track him, and make this not slip one more release =P.

http://bugzilla.gnome.org/show_bug.cgi?id=588130 &lt;= =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133105</commentid>
    <comment_count>40</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-07-20 03:35:51 -0700</bug_when>
    <thetext>We should not do the upcast to FrameView in the ScrollView. The road taken before (even inside ScrollView) is the following.

ScrollView::yourMethod()
{
  if (hostWindow()) hostWindow()-&gt;scrollPolicyChange(param);
}

HostWindow.h
 virtual void scrollPolicyChange(param) = 0;

Chrome.h
  virtual void scrollPolicyChange(param);

Chrome.cpp
 
Chrome::scrollPolicyChange(param)
{
   client-&gt;scrollPolicyChange
}


and this should work as the mac is doing it for scrolling into a rect. And we should go this route as dhyatt spent quite some time getting the upcasting out of ScrollView and I think we should not sneak it in again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136381</commentid>
    <comment_count>41</comment_count>
      <attachid>32028</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-31 21:08:06 -0700</bug_when>
    <thetext>Comment on attachment 32028
report scrollbar policy

r- for now as this needs to be updated per Holger&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143209</commentid>
    <comment_count>42</comment_count>
      <attachid>38691</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-08-27 14:55:12 -0700</bug_when>
    <thetext>Created attachment 38691
report scrollbar policy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143366</commentid>
    <comment_count>43</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-08-28 07:27:11 -0700</bug_when>
    <thetext>Looks fine, no objections from my point of view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143368</commentid>
    <comment_count>44</comment_count>
      <attachid>38691</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-08-28 07:30:29 -0700</bug_when>
    <thetext>Comment on attachment 38691
report scrollbar policy


&gt;  
&gt; +void ScrollView::setScrollbarModes(ScrollbarMode horizontalMode, ScrollbarMode verticalMode)
&gt; +{
&gt; +    if (horizontalMode == m_horizontalScrollbarMode &amp;&amp; verticalMode == m_verticalScrollbarMode)
&gt; +        return;
&gt; +
&gt; +    m_horizontalScrollbarMode = horizontalMode;
&gt; +    m_verticalScrollbarMode = verticalMode;
&gt; +
&gt; +    // We don&apos;t really care about reporting policy changes on frames
&gt; +    // that have no adjustments attached to them.
&gt; +    if (!m_horizontalAdjustment) {
&gt; +        updateScrollbars(scrollOffset());
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    if (!isFrameView())
&gt; +        return;

okay, I don&apos;t think we need this here, but it does not really hurt. Thanks a lot for finishing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143381</commentid>
    <comment_count>45</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-08-28 08:35:20 -0700</bug_when>
    <thetext>Landed as r47866, thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30507</attachid>
            <date>2009-05-20 07:31:35 -0700</date>
            <delta_ts>2009-05-26 12:46:57 -0700</delta_ts>
            <desc>report scrollbar policy</desc>
            <filename>report-scrollbar-policy.patch</filename>
            <type>text/plain</type>
            <size>12680</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">YzVmZDk1Mzk0ZjgwNzY1NDUyZWU1M2NhMWU5N2IwNDc3ZDAyY2QxNwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhOGY1YWJlLi5hZTI5NmM4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDA5LTA1LTIwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNA
Z25vbWUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE92ZXJyaWRlIHNldFNjcm9sbGJhck1vZGVzIHRvIGNvcnJlY3RseSBmb3J3YXJkIHNjcm9s
bGJhciBtb2RlcworICAgICAgICBwb2xpY3kgY2hhbmdlcyB0byBjbGllbnQgY29kZS4KKworICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Vmlldzo6Y3JlYXRlU2Nyb2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmll
d0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJNb2Rl
cyk6CisKIDIwMDktMDUtMTAgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2Vs
ZmlzaC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAppbmRleCA1YmE3YmRjLi4wZDVmNDU0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAKQEAgLTEwMyw3ICsxMDMsNiBAQCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gU2Nyb2xsVmll
dzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aQogewogICAg
IHJldHVybiBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcih0aGlzLCBvcmllbnRhdGlv
biwgUmVndWxhclNjcm9sbGJhcik7CiB9Ci0jZW5kaWYKIAogdm9pZCBTY3JvbGxWaWV3OjpzZXRT
Y3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6b250YWxNb2RlLCBTY3JvbGxiYXJNb2Rl
IHZlcnRpY2FsTW9kZSkKIHsKQEAgLTExNiw2ICsxMTUsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNl
dFNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1vZGUsIFNjcm9sbGJhck1v
ZGUgdgogICAgIGVsc2UKICAgICAgICAgdXBkYXRlU2Nyb2xsYmFycyhzY3JvbGxPZmZzZXQoKSk7
CiB9CisjZW5kaWYKIAogdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJN
b2RlJiBob3Jpem9udGFsTW9kZSwgU2Nyb2xsYmFyTW9kZSYgdmVydGljYWxNb2RlKSBjb25zdAog
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAppbmRleCAwZjA2NmZjLi4xOGMz
ZDczIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcApAQCAtMTIxLDQgKzEy
MSwyOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkZ2V0KiBjaGls
ZCkKICAgICAgICAgZ3RrX2NvbnRhaW5lcl9yZW1vdmUoR1RLX0NPTlRBSU5FUihwYXJlbnQpLCBj
aGlsZC0+cGxhdGZvcm1XaWRnZXQoKSk7CiB9CiAKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xs
YmFyTW9kZXMoU2Nyb2xsYmFyTW9kZSBob3Jpem9udGFsTW9kZSwgU2Nyb2xsYmFyTW9kZSB2ZXJ0
aWNhbE1vZGUpCit7CisgICAgaWYgKGhvcml6b250YWxNb2RlID09IG1faG9yaXpvbnRhbFNjcm9s
bGJhck1vZGUgJiYgdmVydGljYWxNb2RlID09IG1fdmVydGljYWxTY3JvbGxiYXJNb2RlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoIWhvc3RXaW5kb3coKSB8fCAhaG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVdpbmRvdygpKQorICAgICAgICByZXR1cm47CisKKyAgICBHdGtXaWRnZXQqIHBsYXRm
b3JtV2luZG93ID0gaG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpOworCisgICAgaWYgKGhv
cml6b250YWxNb2RlICE9IG1faG9yaXpvbnRhbFNjcm9sbGJhck1vZGUpIHsKKyAgICAgICAgbV9o
b3Jpem9udGFsU2Nyb2xsYmFyTW9kZSA9IGhvcml6b250YWxNb2RlOworICAgICAgICBnX29iamVj
dF9ub3RpZnkoR19PQkpFQ1QocGxhdGZvcm1XaW5kb3cpLCAiaG9yaXpvbnRhbC1zY3JvbGxiYXIt
cG9saWN5Iik7CisgICAgfQorCisgICAgaWYgKHZlcnRpY2FsTW9kZSAhPSBtX3ZlcnRpY2FsU2Ny
b2xsYmFyTW9kZSkgeworICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9IHZlcnRpY2Fs
TW9kZTsKKyAgICAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHBsYXRmb3JtV2luZG93KSwg
InZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3kiKTsKKyAgICB9CisKKyAgICBnYm9vbGVhbiBpc0hh
bmRsZWQ7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHBsYXRmb3JtV2luZG93LCAic2Nyb2xs
YmFycy1wb2xpY3ktY2hhbmdlZCIsICZpc0hhbmRsZWQpOworfQorCiB9CmRpZmYgLS1naXQgYS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDliMDc0NWMu
LmZjZmY0OTUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDUtMjAgIEd1c3Rhdm8gTm9yb25o
YSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHByb3BlcnRpZXMgYW5kIGEgc2lnbmFsIHRvIHJlcG9ydCBz
Y3JvbGxiYXIgcG9saWN5IGNoYW5nZXMgdG8KKyAgICAgICAgY2xpZW50IGNvZGUsIGFuZCBhIGRl
ZmF1bHQgaGFuZGxlciB0aGF0IGRvZXMgdGhlIHJpZ2h0IHRoaW5nIHdoZW4KKyAgICAgICAgdXNp
bmcgR3RrU2Nyb2xsZWRXaW5kb3cuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19yZWFsX3Njcm9sbGJhcnNfcG9saWN5X2NoYW5nZWQpOgorICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dl
dF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3kpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3
X2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9saWN5KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5oOgorCiAyMDA5LTA1LTA4ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZv
Lm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Bl
ei4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggMTdiNDQ4OS4uNGNkMTllOSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsYmFyLmgiCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlIDx3dGYv
R093blB0ci5oPgogCiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMuaD4KQEAgLTE0MCw2ICsxNDEs
NyBAQCBlbnVtIHsKICAgICBET1dOTE9BRF9SRVFVRVNURUQsCiAgICAgTU9WRV9DVVJTT1IsCiAg
ICAgUFJJTlRfUkVRVUVTVEVELAorICAgIFNDUk9MTEJBUlNfUE9MSUNZX0NIQU5HRUQsCiAgICAg
TEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2MCw3ICsxNjIsOSBAQCBlbnVtIHsKICAgICBQUk9QX0xP
QURfU1RBVFVTLAogICAgIFBST1BfUFJPR1JFU1MsCiAgICAgUFJPUF9FTkNPRElORywKLSAgICBQ
Uk9QX0NVU1RPTV9FTkNPRElORworICAgIFBST1BfQ1VTVE9NX0VOQ09ESU5HLAorICAgIFBST1Bf
SE9SSVpPTlRBTF9TQ1JPTExCQVJfUE9MSUNZLAorICAgIFBST1BfVkVSVElDQUxfU0NST0xMQkFS
X1BPTElDWQogfTsKIAogc3RhdGljIGd1aW50IHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0xBU1Rf
U0lHTkFMXSA9IHsgMCwgfTsKQEAgLTMyNyw2ICszMzEsMTIgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3dlYl92aWV3X2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdW
YWx1ZSoKICAgICBjYXNlIFBST1BfUFJPR1JFU1M6CiAgICAgICAgIGdfdmFsdWVfc2V0X2RvdWJs
ZSh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9wcm9ncmVzcyh3ZWJWaWV3KSk7CiAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUFJPUF9IT1JJWk9OVEFMX1NDUk9MTEJBUl9QT0xJQ1k6CisgICAg
ICBnX3ZhbHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hvcml6b250YWxf
c2Nyb2xsYmFyX3BvbGljeSh3ZWJWaWV3KSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFBST1Bf
VkVSVElDQUxfU0NST0xMQkFSX1BPTElDWToKKyAgICAgIGdfdmFsdWVfc2V0X2VudW0odmFsdWUs
IHdlYmtpdF93ZWJfdmlld19nZXRfdmVydGljYWxfc2Nyb2xsYmFyX3BvbGljeSh3ZWJWaWV3KSk7
CisgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFM
SURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CiAgICAgfQpAQCAtODU3LDYg
Kzg2NywyMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9wYXN0ZV9jbGlwYm9h
cmQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBmcmFtZS0+ZWRpdG9yKCktPmNvbW1hbmQo
IlBhc3RlIikuZXhlY3V0ZSgpOwogfQogCitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3
X3JlYWxfc2Nyb2xsYmFyc19wb2xpY3lfY2hhbmdlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQor
eworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyAod2ViVmlldyks
IEZBTFNFKTsKKworICAgIEd0a1dpZGdldCogcGFyZW50ID0gZ3RrX3dpZGdldF9nZXRfcGFyZW50
KEdUS19XSURHRVQod2ViVmlldykpOworICAgIGlmICghcGFyZW50IHx8ICFHVEtfSVNfU0NST0xM
RURfV0lORE9XKHBhcmVudCkpCisgICAgICAgIHJldHVybiBGQUxTRTsKKworICAgIGd0a19zY3Jv
bGxlZF93aW5kb3dfc2V0X3BvbGljeShHVEtfU0NST0xMRURfV0lORE9XKHBhcmVudCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93ZWJfdmlld19nZXRfaG9yaXpv
bnRhbF9zY3JvbGxiYXJfcG9saWN5KHdlYlZpZXcpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZlcnRpY2FsX3Njcm9sbGJhcl9wb2xpY3ko
d2ViVmlldykpOworCisgICAgcmV0dXJuIFRSVUU7Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfdmlld19kaXNwb3NlKEdPYmplY3QqIG9iamVjdCkKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKG9iamVjdCk7CkBAIC0xNjI5LDYgKzE2NTQsMzEgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNz
KiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICBHVEtfVFlQRV9NT1ZFTUVOVF9TVEVQLAogICAg
ICAgICAgICAgR19UWVBFX0lOVCk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3Ojpz
Y3JvbGxiYXJzLXBvbGljeS1jaGFuZ2VkOgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3
aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCisgICAgICoKKyAgICAgKiBTaWduYWwgZW1pdHRlZCB3
aGVuIHBvbGljeSBmb3Igb25lIG9yIGJvdGggb2YgdGhlIHNjcm9sbGJhcnMgb2YKKyAgICAgKiB0
aGUgdmlldyBoYXMgY2hhbmdlZC4gVGhlIGRlZmF1bHQgaGFuZGxlciB3aWxsIGFwcGx5IHRoZSBu
ZXcKKyAgICAgKiBwb2xpY3kgdG8gdGhlIGNvbnRhaW5lciB0aGF0IGhvbGRzIHRoZSAjV2ViS2l0
V2ViVmlldyBpZiBpdCBpcworICAgICAqIGEgI0d0a1Njcm9sbGVkV2luZG93LiBJZiB5b3UgZG8g
bm90IHdhbnQgdGhpcyB0byBiZSBoYW5kbGVkCisgICAgICogYXV0b21hdGljYWxseSwgeW91IG5l
ZWQgdG8gaGFuZGxlIHRoaXMgc2lnbmFsLgorICAgICAqCisgICAgICogWW91IGNhbiBvYnRhaW4g
dGhlIG5ldyBwb2xpY2llcyBmcm9tIHRoZQorICAgICAqIFdlYktpdFdlYlZpZXc6aG9yaXpvbnRh
bC1zY3JvbGxiYXItcG9saWN5IGFuZAorICAgICAqIFdlYktpdFdlYlZpZXc6dmVydGljYWwtc2Ny
b2xsYmFyLXBvbGljeSBwcm9wZXJ0aWVzLgorICAgICAqCisgICAgICogU2luY2U6IDEuMS44Cisg
ICAgICovCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbU0NST0xMQkFSU19QT0xJQ1lfQ0hB
TkdFRF0gPSBnX3NpZ25hbF9uZXcoInNjcm9sbGJhcnMtcG9saWN5LWNoYW5nZWQiLAorICAgICAg
ICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgIChHU2ln
bmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAg
ICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIHNjcm9sbGJhcnNfcG9saWN5
X2NoYW5nZWQpLAorICAgICAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVk
LAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5f
X1ZPSUQsCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMCk7CisKICAgICAvKgogICAgICAq
IGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KQEAgLTE2NDYsNiAr
MTY5Niw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdl
YlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgIHdlYlZpZXdDbGFzcy0+Y29weV9jbGlwYm9h
cmQgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jb3B5X2NsaXBib2FyZDsKICAgICB3ZWJWaWV3Q2xh
c3MtPnBhc3RlX2NsaXBib2FyZCA9IHdlYmtpdF93ZWJfdmlld19yZWFsX3Bhc3RlX2NsaXBib2Fy
ZDsKICAgICB3ZWJWaWV3Q2xhc3MtPm1vdmVfY3Vyc29yID0gd2Via2l0X3dlYl92aWV3X3JlYWxf
bW92ZV9jdXJzb3I7CisgICAgd2ViVmlld0NsYXNzLT5zY3JvbGxiYXJzX3BvbGljeV9jaGFuZ2Vk
ID0gd2Via2l0X3dlYl92aWV3X3JlYWxfc2Nyb2xsYmFyc19wb2xpY3lfY2hhbmdlZDsKIAogICAg
IEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3ZWJWaWV3Q2xhc3Mp
OwogICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0X3dlYl92aWV3X2Rpc3Bvc2U7CkBA
IC0xOTUxLDYgKzIwMDIsNDIgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2lu
aXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMCwgMS4wLCAxLjAsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJ
VF9QQVJBTV9SRUFEQUJMRSkpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzpob3Jp
em9udGFsLXNjcm9sbGJhci1wb2xpY3k6CisgICAgICoKKyAgICAgKiBEZXRlcm1pbmVzIHRoZSBj
dXJyZW50IHBvbGljeSBmb3IgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIG9mCisgICAgICogdGhl
IG1haW4gZnJhbWUuIFlvdSBuZWVkIHRvIGZvbGxvdyB0aGlzIHBvbGljeSBvbiB0aGUgd2lkZ2V0
CisgICAgICogdGhhdCBzdXJyb3VuZHMgdGhlICNXZWJLaXRXZWJWaWV3IHRvIG1ha2Ugc29tZSBj
b250ZW50IGJlaGF2ZQorICAgICAqIGFzIGV4cGVjdGVkLgorICAgICAqCisgICAgICogU2luY2U6
IDEuMS44CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmpl
Y3RDbGFzcywgUFJPUF9IT1JJWk9OVEFMX1NDUk9MTEJBUl9QT0xJQ1ksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfZW51bSgiaG9yaXpvbnRhbC1zY3Jv
bGxiYXItcG9saWN5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJIb3Jpem9udGFsIFNjcm9sbGJhciBQb2xpY3kiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRldGVybWluZXMgdGhl
IGN1cnJlbnQgcG9saWN5IGZvciB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgb2YgdGhlIG1haW4g
ZnJhbWUuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdUS19UWVBFX1BPTElDWV9UWVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1BPTElDWV9BVVRPTUFUSUMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6dmVydGljYWwt
c2Nyb2xsYmFyLXBvbGljeToKKyAgICAgKgorICAgICAqIERldGVybWluZXMgdGhlIGN1cnJlbnQg
cG9saWN5IGZvciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIG9mCisgICAgICogdGhlIG1haW4gZnJh
bWUuIFlvdSBuZWVkIHRvIGZvbGxvdyB0aGlzIHBvbGljeSBvbiB0aGUgd2lkZ2V0CisgICAgICog
dGhhdCBzdXJyb3VuZHMgdGhlICNXZWJLaXRXZWJWaWV3IHRvIG1ha2Ugc29tZSBjb250ZW50IGJl
aGF2ZQorICAgICAqIGFzIGV4cGVjdGVkLgorICAgICAqCisgICAgICogU2luY2U6IDEuMS44Cisg
ICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywg
UFJPUF9WRVJUSUNBTF9TQ1JPTExCQVJfUE9MSUNZLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2VudW0oInZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3ki
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlZlcnRpY2FsIFNjcm9sbGJhciBQb2xpY3kiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRldGVybWluZXMgdGhlIGN1cnJlbnQgcG9saWN5
IGZvciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIG9mIHRoZSBtYWluIGZyYW1lLiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfVFlQRV9Q
T0xJQ1lfVFlQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdUS19QT0xJQ1lfQVVUT01BVElDLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisK
ICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUod2ViVmlld0NsYXNzLCBzaXplb2YoV2ViS2l0
V2ViVmlld1ByaXZhdGUpKTsKIH0KIApAQCAtMjMxMyw2ICsyNDAwLDQ2IEBAIFdlYktpdFdlYkJh
Y2tGb3J3YXJkTGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlzdChXZWJL
aXRXZWJWaWV3KiB3CiAgICAgcmV0dXJuIHByaXYtPmJhY2tGb3J3YXJkTGlzdDsKIH0KIAorR3Rr
UG9saWN5VHlwZSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hvcml6b250YWxfc2Nyb2xsYmFyX3BvbGlj
eShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgR1RLX1BPTElDWV9BVVRPTUFUSUMpOworCisgICAg
UGFnZSogcGFnZSA9IGNvcmUoV0VCS0lUX1dFQl9WSUVXKHdlYlZpZXcpKTsKKyAgICBGcmFtZVZp
ZXcqIHZpZXcgPSBwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpOworICAgIGlmICghdmlldykKKyAg
ICAgICAgcmV0dXJuIEdUS19QT0xJQ1lfQVVUT01BVElDOworCisgICAgU2Nyb2xsYmFyTW9kZSBo
TW9kZSA9IHZpZXctPmhvcml6b250YWxTY3JvbGxiYXJNb2RlKCk7CisKKyAgICBpZiAoaE1vZGUg
PT0gU2Nyb2xsYmFyQWx3YXlzT24pCisgICAgICAgIHJldHVybiBHVEtfUE9MSUNZX0FMV0FZUzsK
KworICAgIGlmIChoTW9kZSA9PSBTY3JvbGxiYXJBbHdheXNPZmYpCisgICAgICAgIHJldHVybiBH
VEtfUE9MSUNZX05FVkVSOworCisgICAgcmV0dXJuIEdUS19QT0xJQ1lfQVVUT01BVElDOworfQor
CitHdGtQb2xpY3lUeXBlIHdlYmtpdF93ZWJfdmlld19nZXRfdmVydGljYWxfc2Nyb2xsYmFyX3Bv
bGljeShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgR1RLX1BPTElDWV9BVVRPTUFUSUMpOworCisg
ICAgUGFnZSogcGFnZSA9IGNvcmUoV0VCS0lUX1dFQl9WSUVXKHdlYlZpZXcpKTsKKyAgICBGcmFt
ZVZpZXcqIHZpZXcgPSBwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpOworICAgIGlmICghdmlldykK
KyAgICAgICAgcmV0dXJuIEdUS19QT0xJQ1lfQVVUT01BVElDOworCisgICAgU2Nyb2xsYmFyTW9k
ZSB2TW9kZSA9IHZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyTW9kZSgpOworCisgICAgaWYgKHZNb2Rl
ID09IFNjcm9sbGJhckFsd2F5c09uKQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9BTFdBWVM7
CisKKyAgICBpZiAodk1vZGUgPT0gU2Nyb2xsYmFyQWx3YXlzT2ZmKQorICAgICAgICByZXR1cm4g
R1RLX1BPTElDWV9ORVZFUjsKKworICAgIHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKK30K
KwogLyoqCiAgKiB3ZWJraXRfd2ViX3ZpZXdfZ29fdG9fYmFja19mb3J3YXJkX2l0ZW06CiAgKiBA
d2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnZpZXcuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAppbmRl
eCA2MGQzMzBlLi4zZWM1MGJkIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCkBAIC0xMTQs
NiArMTE0LDEwIEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0NsYXNzIHsKICAgICB2b2lkICAgICAg
ICAgICAgICAgICAgICAgICAoKiBzZXRfc2Nyb2xsX2FkanVzdG1lbnRzKSAoV2ViS2l0V2ViVmll
dyAgICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHdGtBZGp1c3RtZW50ICAgICAgICAqaGFkanVzdG1lbnQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEd0a0FkanVzdG1lbnQgICAgICAgICp2YWRqdXN0bWVudCk7CisKKworICAgIGdib29sZWFu
ICAgICAgICAgICAgICAgICAgICgqIHNjcm9sbGJhcnNfcG9saWN5X2NoYW5nZWQpIChXZWJLaXRX
ZWJWaWV3ICAgICAqd2ViX3ZpZXcpOworCiAgICAgLyogUGFkZGluZyBmb3IgZnV0dXJlIGV4cGFu
c2lvbiAqLwogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOwogICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOwpAQCAtMTIxLDcgKzEyNSw2IEBAIHN0cnVjdCBf
V2ViS2l0V2ViVmlld0NsYXNzIHsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lk
KTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDQpICh2b2lkKTsKICAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDUpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDYpICh2
b2lkKTsKIH07CiAKIFdFQktJVF9BUEkgR1R5cGUKQEAgLTMzOCw2ICszNDEsMTIgQEAgd2Via2l0
X3dlYl92aWV3X2dldF9sb2FkX3N0YXR1cyAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICp3ZWJfdmlldykKIFdFQktJVF9BUEkgZ2RvdWJsZQogd2Via2l0X3dlYl92aWV3X2dl
dF9wcm9ncmVzcyAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJf
dmlldyk7CiAKK1dFQktJVF9BUEkgR3RrUG9saWN5VHlwZQord2Via2l0X3dlYl92aWV3X2dldF9o
b3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3kgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmll
dyk7CisKK1dFQktJVF9BUEkgR3RrUG9saWN5VHlwZQord2Via2l0X3dlYl92aWV3X2dldF92ZXJ0
aWNhbF9zY3JvbGxiYXJfcG9saWN5ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7
CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30508</attachid>
            <date>2009-05-20 07:31:41 -0700</date>
            <delta_ts>2009-05-26 12:59:05 -0700</delta_ts>
            <desc>correctly report visible contents rect</desc>
            <filename>correctly-report-visible-contents-rect.patch</filename>
            <type>text/plain</type>
            <size>2561</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">ZTg4ZWY5Y2JkMjQ4OTUwNjJkOGYzMjRjZmNkOTdiM2Q0MmQwZmU3YgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZTI5NmM4Li5mMTliNDlk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDE4IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgT3ZlcnJpZGUgdmlzaWJsZUNvbnRlbnRSZWN0IHRvIGhhbmRsZSBHVEsrJ3MgY2Fz
ZSwgaW4gd2hpY2gKKyAgICAgICAgc2Nyb2xsYmFycyBvciBlcXVpdmFsZW50IGRlY29yYXRpb24g
YXJlIHBhaW50ZWQgYnkgdGhlIHBhcmVudAorICAgICAgICB3aWRnZXQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmll
d0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp2aXNpYmxlQ29udGVudFJl
Y3QpOgorCisyMDA5LTA1LTIwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIE92ZXJy
aWRlIHNldFNjcm9sbGJhck1vZGVzIHRvIGNvcnJlY3RseSBmb3J3YXJkIHNjcm9sbGJhciBtb2Rl
cwogICAgICAgICBwb2xpY3kgY2hhbmdlcyB0byBjbGllbnQgY29kZS4KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHAKaW5kZXggMGQ1ZjQ1NC4uZGY0YWMyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
CkBAIC0xNjUsNiArMTY1LDcgQEAgYm9vbCBTY3JvbGxWaWV3OjpjYW5CbGl0T25TY3JvbGwoKSBj
b25zdAogICAgIHJldHVybiBtX2NhbkJsaXRPblNjcm9sbDsKIH0KIAorI2lmICFQTEFURk9STShH
VEspCiBJbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1ZGVT
Y3JvbGxiYXJzKSBjb25zdAogewogICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQpAQCAtMTczLDYg
KzE3NCw3IEBAIEludFJlY3QgU2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5j
bHVkZVNjcm9sbGJhcnMpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgSW50U2l6ZShtYXgoMCwg
d2lkdGgoKSAtICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICFpbmNsdWRlU2Nyb2xsYmFycyA/IHZl
cnRpY2FsU2Nyb2xsYmFyKCktPndpZHRoKCkgOiAwKSksIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWF4KDAsIGhlaWdodCgpIC0gKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiAhaW5jbHVk
ZVNjcm9sbGJhcnMgPyBob3Jpem9udGFsU2Nyb2xsYmFyKCktPmhlaWdodCgpIDogMCkpKSk7CiB9
CisjZW5kaWYKIAogaW50IFNjcm9sbFZpZXc6OmxheW91dFdpZHRoKCkgY29uc3QKIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKaW5kZXggMThjM2Q3My4uYzUxZjYxZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKQEAgLTE0NSw0ICsxNDUsMTkgQEAg
dm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6b250
YWxNb2RlLCBTY3JvbGxiYXJNb2RlIHYKICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUocGxhdGZv
cm1XaW5kb3csICJzY3JvbGxiYXJzLXBvbGljeS1jaGFuZ2VkIiwgJmlzSGFuZGxlZCk7CiB9CiAK
K0ludFJlY3QgU2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9s
bGJhcnMpIGNvbnN0Cit7CisgICAgR3RrV2lkZ2V0KiBtZWFzdXJlZFdpZGdldCA9IGhvc3RXaW5k
b3coKS0+cGxhdGZvcm1XaW5kb3coKTsKKyAgICBHdGtXaWRnZXQqIHBhcmVudCA9IGd0a193aWRn
ZXRfZ2V0X3BhcmVudChtZWFzdXJlZFdpZGdldCk7CisKKyAgICAvLyBXZSBtYXkgbm90IGJlIGlu
IGEgd2lkZ2V0IHRoYXQgZGlzcGxheXMgc2Nyb2xsYmFycywgYnV0IHdlIG1heQorICAgIC8vIGhh
dmUgb3RoZXIga2luZHMgb2YgZGVjb3JhdGlvbiB0aGF0IG1ha2UgdXMgc21hbGxlcgorICAgIGlm
IChwYXJlbnQgJiYgaW5jbHVkZVNjcm9sbGJhcnMpCisgICAgICAgIG1lYXN1cmVkV2lkZ2V0ID0g
cGFyZW50OworCisgICAgcmV0dXJuIEludFJlY3QoSW50UG9pbnQobV9zY3JvbGxPZmZzZXQud2lk
dGgoKSwgbV9zY3JvbGxPZmZzZXQuaGVpZ2h0KCkpLAorICAgICAgICAgICAgICAgICAgIEludFNp
emUobWVhc3VyZWRXaWRnZXQtPmFsbG9jYXRpb24ud2lkdGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtZWFzdXJlZFdpZGdldC0+YWxsb2NhdGlvbi5oZWlnaHQpKTsKK30KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30675</attachid>
            <date>2009-05-26 12:45:39 -0700</date>
            <delta_ts>2009-06-08 18:24:45 -0700</delta_ts>
            <desc>report scrollbar policy</desc>
            <filename>report-scrollbar-policy.patch</filename>
            <type>text/plain</type>
            <size>13176</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">MWFlZWQxYWEyZjFjMWY2ODA4YTVmYzNiNTI3N2ZlMWU0MzkwNjQ1NwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMzI0ZmMzLi5mMTAwM2Zh
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDA5LTA1LTIwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNA
Z25vbWUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE92ZXJyaWRlIHNldFNjcm9sbGJhck1vZGVzIHRvIGNvcnJlY3RseSBmb3J3YXJkIHNjcm9s
bGJhciBtb2RlcworICAgICAgICBwb2xpY3kgY2hhbmdlcyB0byBjbGllbnQgY29kZS4KKworICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Vmlldzo6Y3JlYXRlU2Nyb2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmll
d0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJNb2Rl
cyk6CisKIDIwMDktMDUtMTAgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2Vs
ZmlzaC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAppbmRleCAyNzk2YjY2Li5jZDJhMjM2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAKQEAgLTEwMyw3ICsxMDMsNiBAQCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gU2Nyb2xsVmll
dzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aQogewogICAg
IHJldHVybiBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcih0aGlzLCBvcmllbnRhdGlv
biwgUmVndWxhclNjcm9sbGJhcik7CiB9Ci0jZW5kaWYKIAogdm9pZCBTY3JvbGxWaWV3OjpzZXRT
Y3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6b250YWxNb2RlLCBTY3JvbGxiYXJNb2Rl
IHZlcnRpY2FsTW9kZSkKIHsKQEAgLTExNiw2ICsxMTUsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNl
dFNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1vZGUsIFNjcm9sbGJhck1v
ZGUgdgogICAgIGVsc2UKICAgICAgICAgdXBkYXRlU2Nyb2xsYmFycyhzY3JvbGxPZmZzZXQoKSk7
CiB9CisjZW5kaWYKIAogdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJN
b2RlJiBob3Jpem9udGFsTW9kZSwgU2Nyb2xsYmFyTW9kZSYgdmVydGljYWxNb2RlKSBjb25zdAog
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAppbmRleCAwZjA2NmZjLi40NDI4
M2YzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcApAQCAtMTIxLDQgKzEy
MSw0MCBAQCB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkZ2V0KiBjaGls
ZCkKICAgICAgICAgZ3RrX2NvbnRhaW5lcl9yZW1vdmUoR1RLX0NPTlRBSU5FUihwYXJlbnQpLCBj
aGlsZC0+cGxhdGZvcm1XaWRnZXQoKSk7CiB9CiAKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xs
YmFyTW9kZXMoU2Nyb2xsYmFyTW9kZSBob3Jpem9udGFsTW9kZSwgU2Nyb2xsYmFyTW9kZSB2ZXJ0
aWNhbE1vZGUpCit7CisgICAgaWYgKGhvcml6b250YWxNb2RlID09IG1faG9yaXpvbnRhbFNjcm9s
bGJhck1vZGUgJiYgdmVydGljYWxNb2RlID09IG1fdmVydGljYWxTY3JvbGxiYXJNb2RlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoIWhvc3RXaW5kb3coKSB8fCAhaG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVdpbmRvdygpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBkb24ndCByZWFs
bHkgY2FyZSBhYm91dCByZXBvcnRpbmcgcG9saWN5IGNoYW5nZXMgb24gaW50ZXJuYWwKKyAgICAv
LyBmcmFtZXMsIHNpbmNlIHRoZXkgZG8gbm90IGFmZmVjdCB0aGUgc2Nyb2xsYmFycyBwb2xpY3kg
Zm9yIHRoZQorICAgIC8vIHdpZGdldCB0aGUgYXBwbGljYXRpb24gZGVjaWRlZCB0byBhZGQgdGhl
IFdlYlZpZXcgdG8uCisgICAgaWYgKCFtX2hvcml6b250YWxBZGp1c3RtZW50KSB7CisgICAgICAg
IG1faG9yaXpvbnRhbFNjcm9sbGJhck1vZGUgPSBob3Jpem9udGFsTW9kZTsKKyAgICAgICAgbV92
ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPSB2ZXJ0aWNhbE1vZGU7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICAvLyBGb3IgbWFpbiBmcmFtZSwgd2Ugd2FudCB0byByZXBvcnQgcG9saWN5IGNo
YW5nZXMsIHNvIHRoYXQgdGhleQorICAgIC8vIG1heSBiZSBhcHBsaWVkIHRvIHRoZSB3aWRnZXQg
dG8gd2hpY2ggdGhlIFdlYlZpZXcgaGFzIGJlZW4KKyAgICAvLyBhZGRlZC4KKyAgICBHdGtXaWRn
ZXQqIHBsYXRmb3JtV2luZG93ID0gaG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpOworCisg
ICAgaWYgKGhvcml6b250YWxNb2RlICE9IG1faG9yaXpvbnRhbFNjcm9sbGJhck1vZGUpIHsKKyAg
ICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSA9IGhvcml6b250YWxNb2RlOworICAgICAg
ICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1QocGxhdGZvcm1XaW5kb3cpLCAiaG9yaXpvbnRhbC1z
Y3JvbGxiYXItcG9saWN5Iik7CisgICAgfQorCisgICAgaWYgKHZlcnRpY2FsTW9kZSAhPSBtX3Zl
cnRpY2FsU2Nyb2xsYmFyTW9kZSkgeworICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9
IHZlcnRpY2FsTW9kZTsKKyAgICAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHBsYXRmb3Jt
V2luZG93KSwgInZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3kiKTsKKyAgICB9CisKKyAgICBnYm9v
bGVhbiBpc0hhbmRsZWQ7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHBsYXRmb3JtV2luZG93
LCAic2Nyb2xsYmFycy1wb2xpY3ktY2hhbmdlZCIsICZpc0hhbmRsZWQpOworfQorCiB9CmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IDZlZjUzM2MuLjBhZDA1MzAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDUtMjAgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHByb3BlcnRpZXMgYW5kIGEgc2lnbmFsIHRv
IHJlcG9ydCBzY3JvbGxiYXIgcG9saWN5IGNoYW5nZXMgdG8KKyAgICAgICAgY2xpZW50IGNvZGUs
IGFuZCBhIGRlZmF1bHQgaGFuZGxlciB0aGF0IGRvZXMgdGhlIHJpZ2h0IHRoaW5nIHdoZW4KKyAg
ICAgICAgdXNpbmcgR3RrU2Nyb2xsZWRXaW5kb3cuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Byb3BlcnR5KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19yZWFsX3Njcm9sbGJhcnNfcG9saWN5X2NoYW5nZWQpOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3dl
Yl92aWV3X2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3kpOgorICAgICAgICAod2Via2l0
X3dlYl92aWV3X2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9saWN5KToKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5oOgorCiAyMDA5LTA1LTI0ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCmRpZmYgLS1naXQgYS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwCmluZGV4IDA4MmEzYTIuLjA4ODhlYTcgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGUuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgor
I2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0dPd25QdHIuaD4KIAogI2lu
Y2x1ZGUgPGdkay9nZGtrZXlzeW1zLmg+CkBAIC0xNDAsNiArMTQxLDcgQEAgZW51bSB7CiAgICAg
RE9XTkxPQURfUkVRVUVTVEVELAogICAgIE1PVkVfQ1VSU09SLAogICAgIFBSSU5UX1JFUVVFU1RF
RCwKKyAgICBTQ1JPTExCQVJTX1BPTElDWV9DSEFOR0VELAogICAgIExBU1RfU0lHTkFMCiB9Owog
CkBAIC0xNjAsNyArMTYyLDkgQEAgZW51bSB7CiAgICAgUFJPUF9MT0FEX1NUQVRVUywKICAgICBQ
Uk9QX1BST0dSRVNTLAogICAgIFBST1BfRU5DT0RJTkcsCi0gICAgUFJPUF9DVVNUT01fRU5DT0RJ
TkcKKyAgICBQUk9QX0NVU1RPTV9FTkNPRElORywKKyAgICBQUk9QX0hPUklaT05UQUxfU0NST0xM
QkFSX1BPTElDWSwKKyAgICBQUk9QX1ZFUlRJQ0FMX1NDUk9MTEJBUl9QT0xJQ1kKIH07CiAKIHN0
YXRpYyBndWludCB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07
CkBAIC0zMjcsNiArMzMxLDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19nZXRfcHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqCiAgICAgY2FzZSBQ
Uk9QX1BST0dSRVNTOgogICAgICAgICBnX3ZhbHVlX3NldF9kb3VibGUodmFsdWUsIHdlYmtpdF93
ZWJfdmlld19nZXRfcHJvZ3Jlc3Mod2ViVmlldykpOwogICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBST1BfSE9SSVpPTlRBTF9TQ1JPTExCQVJfUE9MSUNZOgorICAgICAgZ192YWx1ZV9zZXRfZW51
bSh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3ko
d2ViVmlldykpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX1ZFUlRJQ0FMX1NDUk9MTEJB
Ul9QT0xJQ1k6CisgICAgICBnX3ZhbHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3ZlcnRpY2FsX3Njcm9sbGJhcl9wb2xpY3kod2ViVmlldykpOworICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9i
amVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgIH0KQEAgLTg3Myw2ICs4ODMsMjEgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl92aWV3X3JlYWxfcGFzdGVfY2xpcGJvYXJkKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCiAgICAgZnJhbWUtPmVkaXRvcigpLT5jb21tYW5kKCJQYXN0ZSIpLmV4ZWN1dGUo
KTsKIH0KIAorc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19yZWFsX3Njcm9sbGJhcnNf
cG9saWN5X2NoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcgKHdlYlZpZXcpLCBGQUxTRSk7CisKKyAgICBH
dGtXaWRnZXQqIHBhcmVudCA9IGd0a193aWRnZXRfZ2V0X3BhcmVudChHVEtfV0lER0VUKHdlYlZp
ZXcpKTsKKyAgICBpZiAoIXBhcmVudCB8fCAhR1RLX0lTX1NDUk9MTEVEX1dJTkRPVyhwYXJlbnQp
KQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBndGtfc2Nyb2xsZWRfd2luZG93X3NldF9w
b2xpY3koR1RLX1NDUk9MTEVEX1dJTkRPVyhwYXJlbnQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hvcml6b250YWxfc2Nyb2xsYmFyX3Bv
bGljeSh3ZWJWaWV3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Via2l0
X3dlYl92aWV3X2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9saWN5KHdlYlZpZXcpKTsKKworICAg
IHJldHVybiBUUlVFOworfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZShH
T2JqZWN0KiBvYmplY3QpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9X
RUJfVklFVyhvYmplY3QpOwpAQCAtMTY1Niw2ICsxNjgxLDMxIEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQog
ICAgICAgICAgICAgR1RLX1RZUEVfTU9WRU1FTlRfU1RFUCwKICAgICAgICAgICAgIEdfVFlQRV9J
TlQpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzo6c2Nyb2xsYmFycy1wb2xpY3kt
Y2hhbmdlZDoKKyAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhl
IHNpZ25hbAorICAgICAqCisgICAgICogU2lnbmFsIGVtaXR0ZWQgd2hlbiBwb2xpY3kgZm9yIG9u
ZSBvciBib3RoIG9mIHRoZSBzY3JvbGxiYXJzIG9mCisgICAgICogdGhlIHZpZXcgaGFzIGNoYW5n
ZWQuIFRoZSBkZWZhdWx0IGhhbmRsZXIgd2lsbCBhcHBseSB0aGUgbmV3CisgICAgICogcG9saWN5
IHRvIHRoZSBjb250YWluZXIgdGhhdCBob2xkcyB0aGUgI1dlYktpdFdlYlZpZXcgaWYgaXQgaXMK
KyAgICAgKiBhICNHdGtTY3JvbGxlZFdpbmRvdy4gSWYgeW91IGRvIG5vdCB3YW50IHRoaXMgdG8g
YmUgaGFuZGxlZAorICAgICAqIGF1dG9tYXRpY2FsbHksIHlvdSBuZWVkIHRvIGhhbmRsZSB0aGlz
IHNpZ25hbC4KKyAgICAgKgorICAgICAqIFlvdSBjYW4gb2J0YWluIHRoZSBuZXcgcG9saWNpZXMg
ZnJvbSB0aGUKKyAgICAgKiBXZWJLaXRXZWJWaWV3Omhvcml6b250YWwtc2Nyb2xsYmFyLXBvbGlj
eSBhbmQKKyAgICAgKiBXZWJLaXRXZWJWaWV3OnZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3kgcHJv
cGVydGllcy4KKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjEuOAorICAgICAqLworICAgIHdlYmtp
dF93ZWJfdmlld19zaWduYWxzW1NDUk9MTEJBUlNfUE9MSUNZX0NIQU5HRURdID0gZ19zaWduYWxf
bmV3KCJzY3JvbGxiYXJzLXBvbGljeS1jaGFuZ2VkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9N
X0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05B
TF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICBHX1NUUlVDVF9PRkZT
RVQoV2ViS2l0V2ViVmlld0NsYXNzLCBzY3JvbGxiYXJzX3BvbGljeV9jaGFuZ2VkKSwKKyAgICAg
ICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAgICAgIE5V
TEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19WT0lELAorICAgICAgICAg
ICAgR19UWVBFX0JPT0xFQU4sIDApOworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMg
b2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCkBAIC0xNjczLDYgKzE3MjMsNyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZp
ZXdDbGFzcykKICAgICB3ZWJWaWV3Q2xhc3MtPmNvcHlfY2xpcGJvYXJkID0gd2Via2l0X3dlYl92
aWV3X3JlYWxfY29weV9jbGlwYm9hcmQ7CiAgICAgd2ViVmlld0NsYXNzLT5wYXN0ZV9jbGlwYm9h
cmQgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9wYXN0ZV9jbGlwYm9hcmQ7CiAgICAgd2ViVmlld0Ns
YXNzLT5tb3ZlX2N1cnNvciA9IHdlYmtpdF93ZWJfdmlld19yZWFsX21vdmVfY3Vyc29yOworICAg
IHdlYlZpZXdDbGFzcy0+c2Nyb2xsYmFyc19wb2xpY3lfY2hhbmdlZCA9IHdlYmtpdF93ZWJfdmll
d19yZWFsX3Njcm9sbGJhcnNfcG9saWN5X2NoYW5nZWQ7CiAKICAgICBHT2JqZWN0Q2xhc3MqIG9i
amVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Mod2ViVmlld0NsYXNzKTsKICAgICBvYmplY3RDbGFz
cy0+ZGlzcG9zZSA9IHdlYmtpdF93ZWJfdmlld19kaXNwb3NlOwpAQCAtMTk3OCw2ICsyMDI5LDQy
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdD
bGFzcyogd2ViVmlld0NsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLjAsIDEuMCwgMS4wLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUp
KTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6aG9yaXpvbnRhbC1zY3JvbGxiYXIt
cG9saWN5OgorICAgICAqCisgICAgICogRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBwb2xpY3kgZm9y
IHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBvZgorICAgICAqIHRoZSBtYWluIGZyYW1lLiBZb3Ug
bmVlZCB0byBmb2xsb3cgdGhpcyBwb2xpY3kgb24gdGhlIHdpZGdldAorICAgICAqIHRoYXQgc3Vy
cm91bmRzIHRoZSAjV2ViS2l0V2ViVmlldyB0byBtYWtlIHNvbWUgY29udGVudCBiZWhhdmUKKyAg
ICAgKiBhcyBleHBlY3RlZC4KKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjEuOAorICAgICAqLwor
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfSE9S
SVpPTlRBTF9TQ1JPTExCQVJfUE9MSUNZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ19wYXJhbV9zcGVjX2VudW0oImhvcml6b250YWwtc2Nyb2xsYmFyLXBvbGljeSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSG9y
aXpvbnRhbCBTY3JvbGxiYXIgUG9saWN5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHBvbGljeSBm
b3IgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIG9mIHRoZSBtYWluIGZyYW1lLiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfVFlQRV9Q
T0xJQ1lfVFlQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdUS19QT0xJQ1lfQVVUT01BVElDLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisK
KyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3OnZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3k6
CisgICAgICoKKyAgICAgKiBEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHBvbGljeSBmb3IgdGhlIHZl
cnRpY2FsIHNjcm9sbGJhciBvZgorICAgICAqIHRoZSBtYWluIGZyYW1lLiBZb3UgbmVlZCB0byBm
b2xsb3cgdGhpcyBwb2xpY3kgb24gdGhlIHdpZGdldAorICAgICAqIHRoYXQgc3Vycm91bmRzIHRo
ZSAjV2ViS2l0V2ViVmlldyB0byBtYWtlIHNvbWUgY29udGVudCBiZWhhdmUKKyAgICAgKiBhcyBl
eHBlY3RlZC4KKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjEuOAorICAgICAqLworICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfVkVSVElDQUxfU0NS
T0xMQkFSX1BPTElDWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFy
YW1fc3BlY19lbnVtKCJ2ZXJ0aWNhbC1zY3JvbGxiYXItcG9saWN5IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJWZXJ0aWNhbCBTY3JvbGxi
YXIgUG9saWN5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHBvbGljeSBmb3IgdGhlIHZlcnRpY2Fs
IHNjcm9sbGJhciBvZiB0aGUgbWFpbiBmcmFtZS4iLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1RZUEVfUE9MSUNZX1RZUEUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfUE9M
SUNZX0FVVE9NQVRJQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCiAgICAgZ190eXBlX2NsYXNz
X2FkZF9wcml2YXRlKHdlYlZpZXdDbGFzcywgc2l6ZW9mKFdlYktpdFdlYlZpZXdQcml2YXRlKSk7
CiB9CiAKQEAgLTIzNTMsNiArMjQ0MCw0NiBAQCBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdl
YmtpdF93ZWJfdmlld19nZXRfYmFja19mb3J3YXJkX2xpc3QoV2ViS2l0V2ViVmlldyogdwogICAg
IHJldHVybiBwcml2LT5iYWNrRm9yd2FyZExpc3Q7CiB9CiAKK0d0a1BvbGljeVR5cGUgd2Via2l0
X3dlYl92aWV3X2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3koV2ViS2l0V2ViVmlldyog
d2ViVmlldykKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVco
d2ViVmlldyksIEdUS19QT0xJQ1lfQVVUT01BVElDKTsKKworICAgIFBhZ2UqIHBhZ2UgPSBjb3Jl
KFdFQktJVF9XRUJfVklFVyh3ZWJWaWV3KSk7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gcGFnZS0+
bWFpbkZyYW1lKCktPnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybiBHVEtf
UE9MSUNZX0FVVE9NQVRJQzsKKworICAgIFNjcm9sbGJhck1vZGUgaE1vZGUgPSB2aWV3LT5ob3Jp
em9udGFsU2Nyb2xsYmFyTW9kZSgpOworCisgICAgaWYgKGhNb2RlID09IFNjcm9sbGJhckFsd2F5
c09uKQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9BTFdBWVM7CisKKyAgICBpZiAoaE1vZGUg
PT0gU2Nyb2xsYmFyQWx3YXlzT2ZmKQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9ORVZFUjsK
KworICAgIHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKK30KKworR3RrUG9saWN5VHlwZSB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZlcnRpY2FsX3Njcm9sbGJhcl9wb2xpY3koV2ViS2l0V2ViVmll
dyogd2ViVmlldykKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJ
RVcod2ViVmlldyksIEdUS19QT0xJQ1lfQVVUT01BVElDKTsKKworICAgIFBhZ2UqIHBhZ2UgPSBj
b3JlKFdFQktJVF9XRUJfVklFVyh3ZWJWaWV3KSk7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gcGFn
ZS0+bWFpbkZyYW1lKCktPnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybiBH
VEtfUE9MSUNZX0FVVE9NQVRJQzsKKworICAgIFNjcm9sbGJhck1vZGUgdk1vZGUgPSB2aWV3LT52
ZXJ0aWNhbFNjcm9sbGJhck1vZGUoKTsKKworICAgIGlmICh2TW9kZSA9PSBTY3JvbGxiYXJBbHdh
eXNPbikKKyAgICAgICAgcmV0dXJuIEdUS19QT0xJQ1lfQUxXQVlTOworCisgICAgaWYgKHZNb2Rl
ID09IFNjcm9sbGJhckFsd2F5c09mZikKKyAgICAgICAgcmV0dXJuIEdUS19QT0xJQ1lfTkVWRVI7
CisKKyAgICByZXR1cm4gR1RLX1BPTElDWV9BVVRPTUFUSUM7Cit9CisKIC8qKgogICogd2Via2l0
X3dlYl92aWV3X2dvX3RvX2JhY2tfZm9yd2FyZF9pdGVtOgogICogQHdlYl92aWV3OiBhICNXZWJL
aXRXZWJWaWV3CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3Lmgg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKaW5kZXggNjBkMzMwZS4uM2VjNTBi
ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCisrKyBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaApAQCAtMTE0LDYgKzExNCwxMCBAQCBzdHJ1
Y3QgX1dlYktpdFdlYlZpZXdDbGFzcyB7CiAgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICAg
KCogc2V0X3Njcm9sbF9hZGp1c3RtZW50cykgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmll
dywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR3RrQWRqdXN0bWVudCAgICAgICAgKmhhZGp1c3RtZW50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtBZGp1c3RtZW50
ICAgICAgICAqdmFkanVzdG1lbnQpOworCisKKyAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAg
ICAoKiBzY3JvbGxiYXJzX3BvbGljeV9jaGFuZ2VkKSAoV2ViS2l0V2ViVmlldyAgICAgKndlYl92
aWV3KTsKKwogICAgIC8qIFBhZGRpbmcgZm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KICAgICB2b2lk
ICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDEpICh2b2lkKTsKQEAgLTEyMSw3ICsxMjUsNiBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdDbGFz
cyB7CiAgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7CiAgICAgdm9pZCAoKl93
ZWJraXRfcmVzZXJ2ZWQ0KSAodm9pZCk7CiAgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ1KSAo
dm9pZCk7Ci0gICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ2KSAodm9pZCk7CiB9OwogCiBXRUJL
SVRfQVBJIEdUeXBlCkBAIC0zMzgsNiArMzQxLDEyIEBAIHdlYmtpdF93ZWJfdmlld19nZXRfbG9h
ZF9zdGF0dXMgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcp
CiBXRUJLSVRfQVBJIGdkb3VibGUKIHdlYmtpdF93ZWJfdmlld19nZXRfcHJvZ3Jlc3MgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRf
QVBJIEd0a1BvbGljeVR5cGUKK3dlYmtpdF93ZWJfdmlld19nZXRfaG9yaXpvbnRhbF9zY3JvbGxi
YXJfcG9saWN5IChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOworCitXRUJLSVRfQVBJ
IEd0a1BvbGljeVR5cGUKK3dlYmtpdF93ZWJfdmlld19nZXRfdmVydGljYWxfc2Nyb2xsYmFyX3Bv
bGljeSAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOworCiBHX0VORF9ERUNMUwog
CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30677</attachid>
            <date>2009-05-26 12:57:01 -0700</date>
            <delta_ts>2009-06-27 22:35:59 -0700</delta_ts>
            <desc>report correct visible size</desc>
            <filename>report-correct-visible-size.patch</filename>
            <type>text/plain</type>
            <size>2969</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">ODYyM2RiOTNjZjI2NWJiNGMyMzgyOTg0ZDYxYzg4MWIwOGM2M2M1ZApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMTAwM2ZhLi4xM2RmOTAw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDE4IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgT3ZlcnJpZGUgdmlzaWJsZUNvbnRlbnRSZWN0IHRvIGhhbmRsZSBHVEsrJ3MgY2Fz
ZSwgaW4gd2hpY2gKKyAgICAgICAgc2Nyb2xsYmFycyBvciBlcXVpdmFsZW50IGRlY29yYXRpb24g
YXJlIHBhaW50ZWQgYnkgdGhlIHBhcmVudAorICAgICAgICB3aWRnZXQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmll
d0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp2aXNpYmxlQ29udGVudFJl
Y3QpOgorCisyMDA5LTA1LTIwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIE92ZXJy
aWRlIHNldFNjcm9sbGJhck1vZGVzIHRvIGNvcnJlY3RseSBmb3J3YXJkIHNjcm9sbGJhciBtb2Rl
cwogICAgICAgICBwb2xpY3kgY2hhbmdlcyB0byBjbGllbnQgY29kZS4KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5jcHAKaW5kZXggY2QyYTIzNi4uYWI2NjBiNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
CkBAIC0xNjUsNiArMTY1LDcgQEAgYm9vbCBTY3JvbGxWaWV3OjpjYW5CbGl0T25TY3JvbGwoKSBj
b25zdAogICAgIHJldHVybiBtX2NhbkJsaXRPblNjcm9sbDsKIH0KIAorI2lmICFQTEFURk9STShH
VEspCiBJbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1ZGVT
Y3JvbGxiYXJzKSBjb25zdAogewogICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQpAQCAtMTczLDYg
KzE3NCw3IEBAIEludFJlY3QgU2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5j
bHVkZVNjcm9sbGJhcnMpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgSW50U2l6ZShtYXgoMCwg
d2lkdGgoKSAtICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICFpbmNsdWRlU2Nyb2xsYmFycyA/IHZl
cnRpY2FsU2Nyb2xsYmFyKCktPndpZHRoKCkgOiAwKSksIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWF4KDAsIGhlaWdodCgpIC0gKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiAhaW5jbHVk
ZVNjcm9sbGJhcnMgPyBob3Jpem9udGFsU2Nyb2xsYmFyKCktPmhlaWdodCgpIDogMCkpKSk7CiB9
CisjZW5kaWYKIAogaW50IFNjcm9sbFZpZXc6OmxheW91dFdpZHRoKCkgY29uc3QKIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKaW5kZXggNDQyODNmMy4uNTk0MTNjMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAKQEAgLTE1Nyw0ICsxNTcsMjUgQEAg
dm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6b250
YWxNb2RlLCBTY3JvbGxiYXJNb2RlIHYKICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUocGxhdGZv
cm1XaW5kb3csICJzY3JvbGxiYXJzLXBvbGljeS1jaGFuZ2VkIiwgJmlzSGFuZGxlZCk7CiB9CiAK
K0ludFJlY3QgU2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9s
bGJhcnMpIGNvbnN0Cit7CisgICAgaWYgKCFtX2hvcml6b250YWxBZGp1c3RtZW50KQorICAgICAg
ICByZXR1cm4gSW50UmVjdChJbnRQb2ludChtX3Njcm9sbE9mZnNldC53aWR0aCgpLCBtX3Njcm9s
bE9mZnNldC5oZWlnaHQoKSksCisgICAgICAgICAgICAgICAgICAgICAgIEludFNpemUobWF4KDAs
IHdpZHRoKCkgLSAodmVydGljYWxTY3JvbGxiYXIoKSAmJiAhaW5jbHVkZVNjcm9sbGJhcnMgPyB2
ZXJ0aWNhbFNjcm9sbGJhcigpLT53aWR0aCgpIDogMCkpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1heCgwLCBoZWlnaHQoKSAtIChob3Jpem9udGFsU2Nyb2xsYmFyKCkgJiYgIWlu
Y2x1ZGVTY3JvbGxiYXJzID8gaG9yaXpvbnRhbFNjcm9sbGJhcigpLT5oZWlnaHQoKSA6IDApKSkp
OworCisgICAgLy8gTWFpbiBmcmFtZS4KKyAgICBHdGtXaWRnZXQqIG1lYXN1cmVkV2lkZ2V0ID0g
aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpOworICAgIEd0a1dpZGdldCogcGFyZW50ID0g
Z3RrX3dpZGdldF9nZXRfcGFyZW50KG1lYXN1cmVkV2lkZ2V0KTsKKworICAgIC8vIFdlIG1heSBu
b3QgYmUgaW4gYSB3aWRnZXQgdGhhdCBkaXNwbGF5cyBzY3JvbGxiYXJzLCBidXQgd2UgbWF5Cisg
ICAgLy8gaGF2ZSBvdGhlciBraW5kcyBvZiBkZWNvcmF0aW9uIHRoYXQgbWFrZSB1cyBzbWFsbGVy
LgorICAgIGlmIChwYXJlbnQgJiYgaW5jbHVkZVNjcm9sbGJhcnMpCisgICAgICAgIG1lYXN1cmVk
V2lkZ2V0ID0gcGFyZW50OworCisgICAgcmV0dXJuIEludFJlY3QoSW50UG9pbnQobV9zY3JvbGxP
ZmZzZXQud2lkdGgoKSwgbV9zY3JvbGxPZmZzZXQuaGVpZ2h0KCkpLAorICAgICAgICAgICAgICAg
ICAgIEludFNpemUobWVhc3VyZWRXaWRnZXQtPmFsbG9jYXRpb24ud2lkdGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZWFzdXJlZFdpZGdldC0+YWxsb2NhdGlvbi5oZWlnaHQpKTsKK30K
KwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31076</attachid>
            <date>2009-06-08 18:23:00 -0700</date>
            <delta_ts>2009-06-09 16:15:59 -0700</delta_ts>
            <desc>report scrollbar policy</desc>
            <filename>report-scrollbar-policy.patch</filename>
            <type>text/plain</type>
            <size>14233</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">ZTdkMGVhZGY0OGU3YzUxMjFkNmFkYTY0NmYxYzU1M2I2YjRiNDUyZgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYjg4M2EwLi5mMTRiZWMy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDA5LTA2LTA4ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNA
Z25vbWUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE92ZXJyaWRlIHNldFNjcm9sbGJhck1vZGVzIHRvIGNvcnJlY3RseSBmb3J3YXJkIHNjcm9s
bGJhciBtb2RlcworICAgICAgICBwb2xpY3kgY2hhbmdlcyB0byBjbGllbnQgY29kZSwgdmlhIGEg
bmV3IHBsYXRmb3JtLXNwZWNpZmljIG1ldGhvZCwKKyAgICAgICAgc2Nyb2xsYmFyc1BvbGljeURp
ZENoYW5nZS4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnQ6OnNjcm9sbGJhcnNQb2xpY3lEaWRDaGFuZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
Y3JlYXRlU2Nyb2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6c2V0U2Nyb2xsYmFyTW9kZXMpOgorCiAyMDA5LTA2LTA4ICBWaWN0b3IgV2Fu
ZyA8dmljdG9yd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBH
bGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGUxNTU3NTQuLjA0ZDgxZWMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKQEAgLTE5MSw2ICsxOTEsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIHZvaWQgd2lsbFBvcFVwTWVudShOU01lbnUgKikgeyB9CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKEdUSykKKyAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNQb2xpY3lEaWRDaGFu
Z2UoRnJhbWUqKSBjb25zdCB7IH07CisjZW5kaWYKKwogICAgIHByb3RlY3RlZDoKICAgICAgICAg
dmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
CmluZGV4IDlmMGRhM2EuLjlkZGVhMzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtMTAz
LDcgKzEwMyw2IEBAIFBhc3NSZWZQdHI8U2Nyb2xsYmFyPiBTY3JvbGxWaWV3OjpjcmVhdGVTY3Jv
bGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpCiB7CiAgICAgcmV0dXJuIFNjcm9s
bGJhcjo6Y3JlYXRlTmF0aXZlU2Nyb2xsYmFyKHRoaXMsIG9yaWVudGF0aW9uLCBSZWd1bGFyU2Ny
b2xsYmFyKTsKIH0KLSNlbmRpZgogCiB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbGJhck1vZGVz
KFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1vZGUsIFNjcm9sbGJhck1vZGUgdmVydGljYWxNb2Rl
KQogewpAQCAtMTE2LDYgKzExNSw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsYmFyTW9k
ZXMoU2Nyb2xsYmFyTW9kZSBob3Jpem9udGFsTW9kZSwgU2Nyb2xsYmFyTW9kZSB2CiAgICAgZWxz
ZQogICAgICAgICB1cGRhdGVTY3JvbGxiYXJzKHNjcm9sbE9mZnNldCgpKTsKIH0KKyNlbmRpZgog
CiB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUmIGhvcml6b250
YWxNb2RlLCBTY3JvbGxiYXJNb2RlJiB2ZXJ0aWNhbE1vZGUpIGNvbnN0CiB7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5oCmluZGV4IDRkNWJlZDEuLjE3OWI5MTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC00
MCw2ICs0MCw5IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIEZyYW1lOworfQogdHlwZWRlZiBzdHJ1Y3QgX0d0a0FkanVzdG1lbnQgR3Rr
QWRqdXN0bWVudDsKICNlbmRpZgogCkBAIC0zMDcsNiArMzEwLDcgQEAgcHVibGljOgogICAgIEd0
a0FkanVzdG1lbnQqIG1faG9yaXpvbnRhbEFkanVzdG1lbnQ7CiAgICAgR3RrQWRqdXN0bWVudCog
bV92ZXJ0aWNhbEFkanVzdG1lbnQ7CiAgICAgdm9pZCBzZXRTY3JvbGxPZmZzZXQoY29uc3QgSW50
U2l6ZSYgb2Zmc2V0KSB7IG1fc2Nyb2xsT2Zmc2V0ID0gb2Zmc2V0OyB9CisgICAgdmlydHVhbCBG
cmFtZSogZnJhbWUoKSBjb25zdCA9IDA7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdYKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAppbmRleCAwZjA2NmZjLi40YzgwY2I1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcApAQCAtMzEsMTAgKzMxLDEzIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgogCisjaW5jbHVk
ZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIb3N0V2luZG93
LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNp
bmNsdWRlICJTY3JvbGxiYXJHdGsuaCIKQEAgLTEyMSw0ICsxMjQsMjcgQEAgdm9pZCBTY3JvbGxW
aWV3OjpwbGF0Zm9ybVJlbW92ZUNoaWxkKFdpZGdldCogY2hpbGQpCiAgICAgICAgIGd0a19jb250
YWluZXJfcmVtb3ZlKEdUS19DT05UQUlORVIocGFyZW50KSwgY2hpbGQtPnBsYXRmb3JtV2lkZ2V0
KCkpOwogfQogCit2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1v
ZGUgaG9yaXpvbnRhbE1vZGUsIFNjcm9sbGJhck1vZGUgdmVydGljYWxNb2RlKQoreworICAgIGlm
IChob3Jpem9udGFsTW9kZSA9PSBtX2hvcml6b250YWxTY3JvbGxiYXJNb2RlICYmIHZlcnRpY2Fs
TW9kZSA9PSBtX3ZlcnRpY2FsU2Nyb2xsYmFyTW9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSA9IGhvcml6b250YWxNb2RlOworICAgIG1fdmVydGlj
YWxTY3JvbGxiYXJNb2RlID0gdmVydGljYWxNb2RlOworCisgICAgLy8gV2UgZG9uJ3QgcmVhbGx5
IGNhcmUgYWJvdXQgcmVwb3J0aW5nIHBvbGljeSBjaGFuZ2VzIG9uIGZyYW1lcworICAgIC8vIHRo
YXQgaGF2ZSBubyBhZGp1c3RtZW50cyBhdHRhY2hlZCB0byB0aGVtLgorICAgIGlmICghbV9ob3Jp
em9udGFsQWRqdXN0bWVudCkgeworICAgICAgICB1cGRhdGVTY3JvbGxiYXJzKHNjcm9sbE9mZnNl
dCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZvciBmcmFtZXMgdGhhdCBk
byBoYXZlIGFkanVzdG1lbnRzIGF0dGFjaGVkLCB3ZSB3YW50IHRvIHJlcG9ydAorICAgIC8vIHBv
bGljeSBjaGFuZ2VzLCBzbyB0aGF0IHRoZXkgbWF5IGJlIGFwcGxpZWQgdG8gdGhlIHdpZGdldCB0
bworICAgIC8vIHdoaWNoIHRoZSBXZWJWaWV3IGhhcyBiZWVuIGFkZGVkLCBmb3IgaW5zdGFuY2Uu
CisgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkgOiAwOworICAgIGlm
IChwYWdlKQorICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnNjcm9sbGJhcnNQb2xp
Y3lEaWRDaGFuZ2UoZnJhbWUoKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZThlNzc2Yy4uMGMwY2RmNCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwyMyBAQAogMjAwOS0wNi0wOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25z
QGdub21lLm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgcHJvcGVydGllcyBhbmQgYSBzaWduYWwgdG8gcmVwb3J0IHNjcm9sbGJhciBwb2xp
Y3kgY2hhbmdlcyB0bworICAgICAgICBjbGllbnQgY29kZSwgYW5kIGEgZGVmYXVsdCBoYW5kbGVy
IHRoYXQgZG9lcyB0aGUgcmlnaHQgdGhpbmcgd2hlbgorICAgICAgICB1c2luZyBHdGtTY3JvbGxl
ZFdpbmRvdy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xsYmFyc1BvbGljeURpZENoYW5n
ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdCk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3kp
OgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfdmVydGljYWxfc2Nyb2xsYmFyX3BvbGlj
eSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6CisKKzIwMDktMDYtMDggIEd1
c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQg
YnkgSmFuIEFsb256by4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjYyNDAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcAppbmRleCA1MDIzZDVjLi45NjY1NmQ5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC0zODIsNiArMzgyLDMyIEBAIHZvaWQgQ2hy
b21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNv
bnN0CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBDaHJvbWVDbGllbnQ6OnNjcm9s
bGJhcnNQb2xpY3lEaWRDaGFuZ2UoRnJhbWUqIGNvcmVGcmFtZSkgY29uc3QKK3sKKyAgICBXZWJL
aXRXZWJGcmFtZSogd2ViRnJhbWUgPSBraXQoY29yZUZyYW1lKTsKKworICAgIGdfb2JqZWN0X25v
dGlmeShHX09CSkVDVCh3ZWJGcmFtZSksICJob3Jpem9udGFsLXNjcm9sbGJhci1wb2xpY3kiKTsK
KyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViRnJhbWUpLCAidmVydGljYWwtc2Nyb2xs
YmFyLXBvbGljeSIpOworCisgICAgZ2Jvb2xlYW4gaXNIYW5kbGVkOworICAgIGdfc2lnbmFsX2Vt
aXRfYnlfbmFtZSh3ZWJGcmFtZSwgInNjcm9sbGJhcnMtcG9saWN5LWNoYW5nZWQiLCAmaXNIYW5k
bGVkKTsKKworICAgIGlmIChpc0hhbmRsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKHdlYkZyYW1lKTsKKyAgICBpZiAo
d2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKHdlYlZpZXcpICE9IHdlYkZyYW1lKQorICAg
ICAgICByZXR1cm47CisKKyAgICBHdGtXaWRnZXQqIHBhcmVudCA9IGd0a193aWRnZXRfZ2V0X3Bh
cmVudChHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBpZiAoIXBhcmVudCB8fCAhR1RLX0lTX1ND
Uk9MTEVEX1dJTkRPVyhwYXJlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBndGtfc2Nyb2xs
ZWRfd2luZG93X3NldF9wb2xpY3koR1RLX1NDUk9MTEVEX1dJTkRPVyhwYXJlbnQpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfd2ViX2ZyYW1lX2dldF9ob3Jpem9u
dGFsX3Njcm9sbGJhcl9wb2xpY3kod2ViRnJhbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3ZWJraXRfd2ViX2ZyYW1lX2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9saWN5
KHdlYkZyYW1lKSk7Cit9CisKIHZvaWQgQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxl
bWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCiB7
CiAgICAgLy8gSWYgYSB0b29sdGlwIG11c3QgYmUgZGlzcGxheWVkIGl0IHdpbGwgYmUsIGFmdGVy
d2FyZHMsIHdoZW4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
CmluZGV4IDgwOTc2NjUuLmI1YjhjNDkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuaApAQCAtOTIsNiArOTIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAg
ICAgICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRvdygpIGNvbnN0OwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSosIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdDsKIAorICAgICAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsYmFyc1BvbGljeURpZENoYW5nZShXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKSBjb25zdDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNv
cmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAgICAgICB2
aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmNwcAppbmRleCA5MDAxMjEyLi5iNGZiYmQ4IDEwMDY0NAotLS0g
YS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCkBAIC04MCw2ICs4MCw3IEBAIGVudW0gewogICAgIExP
QURfRE9ORSwKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJfTElOSywKKyAg
ICBTQ1JPTExCQVJTX1BPTElDWV9DSEFOR0VELAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC04
OSw3ICs5MCw5IEBAIGVudW0gewogICAgIFBST1BfTkFNRSwKICAgICBQUk9QX1RJVExFLAogICAg
IFBST1BfVVJJLAotICAgIFBST1BfTE9BRF9TVEFUVVMKKyAgICBQUk9QX0xPQURfU1RBVFVTLAor
ICAgIFBST1BfSE9SSVpPTlRBTF9TQ1JPTExCQVJfUE9MSUNZLAorICAgIFBST1BfVkVSVElDQUxf
U0NST0xMQkFSX1BPTElDWQogfTsKIAogc3RhdGljIGd1aW50IHdlYmtpdF93ZWJfZnJhbWVfc2ln
bmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CkBAIC0xMTMsNiArMTE2LDEyIEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwgR1ZhbHVlCiAgICAgY2FzZSBQUk9QX0xPQURfU1RBVFVTOgogICAgICAgICBnX3Zh
bHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0YXR1cyhmcmFt
ZSkpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfSE9SSVpPTlRBTF9TQ1JPTExCQVJf
UE9MSUNZOgorICAgICAgICBnX3ZhbHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfd2ViX2ZyYW1l
X2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3koZnJhbWUpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQUk9QX1ZFUlRJQ0FMX1NDUk9MTEJBUl9QT0xJQ1k6CisgICAgICAgIGdfdmFs
dWVfc2V0X2VudW0odmFsdWUsIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2FsX3Njcm9sbGJh
cl9wb2xpY3koZnJhbWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMp
OwogICAgICAgICBicmVhazsKQEAgLTIwOSw2ICsyMTgsMzEgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3dlYl9mcmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZyYW1lQ2xhc3MqIGZyYW1lQ2xhc3MpCiAg
ICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcsIEdf
VFlQRV9TVFJJTkcpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViRnJhbWU6OnNjcm9sbGJh
cnMtcG9saWN5LWNoYW5nZWQ6CisgICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJl
Y2VpdmVkIHRoZSBzaWduYWwKKyAgICAgKgorICAgICAqIFNpZ25hbCBlbWl0dGVkIHdoZW4gcG9s
aWN5IGZvciBvbmUgb3IgYm90aCBvZiB0aGUgc2Nyb2xsYmFycyBvZgorICAgICAqIHRoZSB2aWV3
IGhhcyBjaGFuZ2VkLiBUaGUgZGVmYXVsdCBoYW5kbGVyIHdpbGwgYXBwbHkgdGhlIG5ldworICAg
ICAqIHBvbGljeSB0byB0aGUgY29udGFpbmVyIHRoYXQgaG9sZHMgdGhlICNXZWJLaXRXZWJGcmFt
ZSBpZiBpdCBpcworICAgICAqIGEgI0d0a1Njcm9sbGVkV2luZG93LiBJZiB5b3UgZG8gbm90IHdh
bnQgdGhpcyB0byBiZSBoYW5kbGVkCisgICAgICogYXV0b21hdGljYWxseSwgeW91IG5lZWQgdG8g
aGFuZGxlIHRoaXMgc2lnbmFsLgorICAgICAqCisgICAgICogWW91IGNhbiBvYnRhaW4gdGhlIG5l
dyBwb2xpY2llcyBmcm9tIHRoZQorICAgICAqIFdlYktpdFdlYkZyYW1lOmhvcml6b250YWwtc2Ny
b2xsYmFyLXBvbGljeSBhbmQKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTp2ZXJ0aWNhbC1zY3JvbGxi
YXItcG9saWN5IHByb3BlcnRpZXMuCisgICAgICoKKyAgICAgKiBTaW5jZTogMS4xLjkKKyAgICAg
Ki8KKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbU0NST0xMQkFSU19QT0xJQ1lfQ0hBTkdF
RF0gPSBnX3NpZ25hbF9uZXcoInNjcm9sbGJhcnMtcG9saWN5LWNoYW5nZWQiLAorICAgICAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZs
YWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAw
LAorICAgICAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLAorICAgICAg
ICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX1ZPSUQsCisg
ICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMCk7CisKICAgICAvKgogICAgICAqIGltcGxlbWVu
dGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KQEAgLTI1NSw2ICsyODksNDIgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZyYW1lQ2xh
c3MqIGZyYW1lQ2xhc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXRUJLSVRfTE9BRF9GSU5JU0hFRCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViRnJhbWU6aG9yaXpvbnRhbC1zY3JvbGxiYXIt
cG9saWN5OgorICAgICAqCisgICAgICogRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBwb2xpY3kgZm9y
IHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBvZgorICAgICAqIHRoZSBmcmFtZS4gRm9yIHRoZSBt
YWluIGZyYW1lLCB5b3Ugc2hvdWxkIGZvbGxvdyB0aGlzIHBvbGljeSBvbgorICAgICAqIHRoZSB3
aWRnZXQgdGhhdCBzdXJyb3VuZHMgdGhlICNXZWJLaXRXZWJWaWV3IHRvIG1ha2Ugc29tZQorICAg
ICAqIGNvbnRlbnQgYmVoYXZlIGFzIGV4cGVjdGVkLgorICAgICAqCisgICAgICogU2luY2U6IDEu
MS45CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RD
bGFzcywgUFJPUF9IT1JJWk9OVEFMX1NDUk9MTEJBUl9QT0xJQ1ksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfZW51bSgiaG9yaXpvbnRhbC1zY3JvbGxi
YXItcG9saWN5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJIb3Jpem9udGFsIFNjcm9sbGJhciBQb2xpY3kiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRldGVybWluZXMgdGhlIGN1
cnJlbnQgcG9saWN5IGZvciB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgb2YgdGhlIGZyYW1lLiIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
VEtfVFlQRV9QT0xJQ1lfVFlQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdUS19QT0xJQ1lfQVVUT01BVElDLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURB
QkxFKSk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTp2ZXJ0aWNhbC1zY3JvbGxi
YXItcG9saWN5OgorICAgICAqCisgICAgICogRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBwb2xpY3kg
Zm9yIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb2YKKyAgICAgKiB0aGUgZnJhbWUuIEZvciB0aGUg
bWFpbiBmcmFtZSwgeW91IHNob3VsZCBmb2xsb3cgdGhpcyBwb2xpY3kgb24KKyAgICAgKiB0aGUg
d2lkZ2V0IHRoYXQgc3Vycm91bmRzIHRoZSAjV2ViS2l0V2ViVmlldyB0byBtYWtlIHNvbWUKKyAg
ICAgKiBjb250ZW50IGJlaGF2ZSBhcyBleHBlY3RlZC4KKyAgICAgKgorICAgICAqIFNpbmNlOiAx
LjEuOQorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0
Q2xhc3MsIFBST1BfVkVSVElDQUxfU0NST0xMQkFSX1BPTElDWSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19lbnVtKCJ2ZXJ0aWNhbC1zY3JvbGxiYXIt
cG9saWN5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJWZXJ0aWNhbCBTY3JvbGxiYXIgUG9saWN5IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXRlcm1pbmVzIHRoZSBjdXJyZW50
IHBvbGljeSBmb3IgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciBvZiB0aGUgZnJhbWUuIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19UWVBF
X1BPTElDWV9UWVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR1RLX1BPTElDWV9BVVRPTUFUSUMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsK
KwogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShmcmFtZUNsYXNzLCBzaXplb2YoV2ViS2l0
V2ViRnJhbWVQcml2YXRlKSk7CiB9CiAKQEAgLTgyOCwzICs4OTgsNDMgQEAgV2ViS2l0TG9hZFN0
YXR1cyB3ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0YXR1cyhXZWJLaXRXZWJGcmFtZSogZnJh
bWUpCiAgICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CiAgICAg
cmV0dXJuIHByaXYtPmxvYWRTdGF0dXM7CiB9CisKK0d0a1BvbGljeVR5cGUgd2Via2l0X3dlYl9m
cmFtZV9nZXRfaG9yaXpvbnRhbF9zY3JvbGxiYXJfcG9saWN5KFdlYktpdFdlYkZyYW1lKiBmcmFt
ZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1l
KSwgR1RLX1BPTElDWV9BVVRPTUFUSUMpOworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUo
ZnJhbWUpOworICAgIEZyYW1lVmlldyogdmlldyA9IGNvcmVGcmFtZS0+dmlldygpOworICAgIGlm
ICghdmlldykKKyAgICAgICAgcmV0dXJuIEdUS19QT0xJQ1lfQVVUT01BVElDOworCisgICAgU2Ny
b2xsYmFyTW9kZSBoTW9kZSA9IHZpZXctPmhvcml6b250YWxTY3JvbGxiYXJNb2RlKCk7CisKKyAg
ICBpZiAoaE1vZGUgPT0gU2Nyb2xsYmFyQWx3YXlzT24pCisgICAgICAgIHJldHVybiBHVEtfUE9M
SUNZX0FMV0FZUzsKKworICAgIGlmIChoTW9kZSA9PSBTY3JvbGxiYXJBbHdheXNPZmYpCisgICAg
ICAgIHJldHVybiBHVEtfUE9MSUNZX05FVkVSOworCisgICAgcmV0dXJuIEdUS19QT0xJQ1lfQVVU
T01BVElDOworfQorCitHdGtQb2xpY3lUeXBlIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2Fs
X3Njcm9sbGJhcl9wb2xpY3koV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBHVEtfUE9MSUNZX0FVVE9N
QVRJQyk7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgRnJhbWVW
aWV3KiB2aWV3ID0gY29yZUZyYW1lLT52aWV3KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICBy
ZXR1cm4gR1RLX1BPTElDWV9BVVRPTUFUSUM7CisKKyAgICBTY3JvbGxiYXJNb2RlIHZNb2RlID0g
dmlldy0+dmVydGljYWxTY3JvbGxiYXJNb2RlKCk7CisKKyAgICBpZiAodk1vZGUgPT0gU2Nyb2xs
YmFyQWx3YXlzT24pCisgICAgICAgIHJldHVybiBHVEtfUE9MSUNZX0FMV0FZUzsKKworICAgIGlm
ICh2TW9kZSA9PSBTY3JvbGxiYXJBbHdheXNPZmYpCisgICAgICAgIHJldHVybiBHVEtfUE9MSUNZ
X05FVkVSOworCisgICAgcmV0dXJuIEdUS19QT0xJQ1lfQVVUT01BVElDOworfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaCBiL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmgKaW5kZXggMzMwMzI3ZC4uODQ2MDA5MiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJmcmFtZS5oCkBAIC01MSw2ICs1MSw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViRnJhbWVD
bGFzcyB7CiAgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIAogICAgIC8qPCBwdWJsaWMg
PiovCisKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKICAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMp
ICh2b2lkKTsKQEAgLTEzNCw2ICsxMzUsMTIgQEAgd2Via2l0X3dlYl9mcmFtZV9wcmludCAgICAg
ICAgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiBXRUJLSVRfQVBJIFdlYktp
dExvYWRTdGF0dXMKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2xvYWRfc3RhdHVzICAgIChXZWJLaXRX
ZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCitXRUJLSVRfQVBJIEd0a1BvbGljeVR5cGUKK3dlYmtp
dF93ZWJfZnJhbWVfZ2V0X2hvcml6b250YWxfc2Nyb2xsYmFyX3BvbGljeSAoV2ViS2l0V2ViRnJh
bWUgICAgICAgICpmcmFtZSk7CisKK1dFQktJVF9BUEkgR3RrUG9saWN5VHlwZQord2Via2l0X3dl
Yl9mcmFtZV9nZXRfdmVydGljYWxfc2Nyb2xsYmFyX3BvbGljeSAgIChXZWJLaXRXZWJGcmFtZSAg
ICAgICAgKmZyYW1lKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31111</attachid>
            <date>2009-06-09 16:15:39 -0700</date>
            <delta_ts>2009-08-27 14:55:12 -0700</delta_ts>
            <desc>report scrollbar policy</desc>
            <filename>report-scrollbar-policy.patch</filename>
            <type>text/plain</type>
            <size>16847</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">MDcwZTNhYzM2NjcwZDk5YzM5NzZmYTM5NWVkNGI5OTllMjQ5ZTc3OApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YzEwMmZmLi44NDc4MTZm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDA5LTA2LTA4ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNA
Z25vbWUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE92ZXJyaWRlIHNldFNjcm9sbGJhck1vZGVzIHRvIGNvcnJlY3RseSBmb3J3YXJkIHNjcm9s
bGJhciBtb2RlcworICAgICAgICBwb2xpY3kgY2hhbmdlcyB0byBjbGllbnQgY29kZSwgdmlhIGEg
bmV3IHBsYXRmb3JtLXNwZWNpZmljIG1ldGhvZCwKKyAgICAgICAgc2Nyb2xsYmFyc1BvbGljeURp
ZENoYW5nZS4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnQ6OnNjcm9sbGJhcnNQb2xpY3lEaWRDaGFuZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
Y3JlYXRlU2Nyb2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6c2V0U2Nyb2xsYmFyTW9kZXMpOgorCiAyMDA5LTA2LTA5ICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggMTA3YjhiZS4uZTE4NGI5NCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKQEAgLTEyMyw2ICsxMjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQbGF0
Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRvdygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0
dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUmKSBjb25z
dCB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZShGcmFtZSop
IGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25z
dCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFRv
b2xUaXAoY29uc3QgU3RyaW5nJikgeyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZTE1NTc1NC4uNDFi
NDY3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTI5LDYgKzEyOSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRS
ZWN0JiwgY29uc3QgU2Nyb2xsVmlldyopIGNvbnN0ID0gMDsgLy8gQ3VycmVudGx5IG9ubHkgTWFj
IGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KICAgICAgICAgLy8gRW5kIG1ldGhvZHMg
dXNlZCBieSBIb3N0V2luZG93LgogCisgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9k
ZURpZENoYW5nZShGcmFtZSopIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmll
ckZsYWdzKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3Ry
aW5nJikgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggOWYwZGEzYS4uOWRkZWEzMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC0xMDMsNyArMTAzLDYgQEAgUGFzc1JlZlB0cjxT
Y3JvbGxiYXI+IFNjcm9sbFZpZXc6OmNyZWF0ZVNjcm9sbGJhcihTY3JvbGxiYXJPcmllbnRhdGlv
biBvcmllbnRhdGkKIHsKICAgICByZXR1cm4gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxi
YXIodGhpcywgb3JpZW50YXRpb24sIFJlZ3VsYXJTY3JvbGxiYXIpOwogfQotI2VuZGlmCiAKIHZv
aWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsYmFyTW9kZXMoU2Nyb2xsYmFyTW9kZSBob3Jpem9udGFs
TW9kZSwgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNhbE1vZGUpCiB7CkBAIC0xMTYsNiArMTE1LDcgQEAg
dm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6b250
YWxNb2RlLCBTY3JvbGxiYXJNb2RlIHYKICAgICBlbHNlCiAgICAgICAgIHVwZGF0ZVNjcm9sbGJh
cnMoc2Nyb2xsT2Zmc2V0KCkpOwogfQorI2VuZGlmCiAKIHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xs
YmFyTW9kZXMoU2Nyb2xsYmFyTW9kZSYgaG9yaXpvbnRhbE1vZGUsIFNjcm9sbGJhck1vZGUmIHZl
cnRpY2FsTW9kZSkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Nj
cm9sbFZpZXdHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAK
aW5kZXggMGYwNjZmYy4uZDc4OTVkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
U2Nyb2xsVmlld0d0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0
ay5jcHAKQEAgLTMxLDEwICszMSwxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlNjcm9sbFZpZXcuaCIKIAorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1N
b3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAi
U2Nyb2xsYmFyR3RrLmgiCkBAIC0xMjEsNCArMTI1LDMxIEBAIHZvaWQgU2Nyb2xsVmlldzo6cGxh
dGZvcm1SZW1vdmVDaGlsZChXaWRnZXQqIGNoaWxkKQogICAgICAgICBndGtfY29udGFpbmVyX3Jl
bW92ZShHVEtfQ09OVEFJTkVSKHBhcmVudCksIGNoaWxkLT5wbGF0Zm9ybVdpZGdldCgpKTsKIH0K
IAordm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6
b250YWxNb2RlLCBTY3JvbGxiYXJNb2RlIHZlcnRpY2FsTW9kZSkKK3sKKyAgICBpZiAoaG9yaXpv
bnRhbE1vZGUgPT0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSAmJiB2ZXJ0aWNhbE1vZGUgPT0g
bV92ZXJ0aWNhbFNjcm9sbGJhck1vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1faG9yaXpv
bnRhbFNjcm9sbGJhck1vZGUgPSBob3Jpem9udGFsTW9kZTsKKyAgICBtX3ZlcnRpY2FsU2Nyb2xs
YmFyTW9kZSA9IHZlcnRpY2FsTW9kZTsKKworICAgIC8vIFdlIGRvbid0IHJlYWxseSBjYXJlIGFi
b3V0IHJlcG9ydGluZyBwb2xpY3kgY2hhbmdlcyBvbiBmcmFtZXMKKyAgICAvLyB0aGF0IGhhdmUg
bm8gYWRqdXN0bWVudHMgYXR0YWNoZWQgdG8gdGhlbS4KKyAgICBpZiAoIW1faG9yaXpvbnRhbEFk
anVzdG1lbnQpIHsKKyAgICAgICAgdXBkYXRlU2Nyb2xsYmFycyhzY3JvbGxPZmZzZXQoKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWlzRnJhbWVWaWV3KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIC8vIEZvciBmcmFtZXMgdGhhdCBkbyBoYXZlIGFkanVzdG1lbnRzIGF0
dGFjaGVkLCB3ZSB3YW50IHRvIHJlcG9ydAorICAgIC8vIHBvbGljeSBjaGFuZ2VzLCBzbyB0aGF0
IHRoZXkgbWF5IGJlIGFwcGxpZWQgdG8gdGhlIHdpZGdldCB0bworICAgIC8vIHdoaWNoIHRoZSBX
ZWJWaWV3IGhhcyBiZWVuIGFkZGVkLCBmb3IgaW5zdGFuY2UuCisgICAgRnJhbWVWaWV3KiBmcmFt
ZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih0aGlzKTsKKyAgICBQYWdlKiBwYWdlID0g
ZnJhbWVWaWV3LT5mcmFtZSgpID8gZnJhbWVWaWV3LT5mcmFtZSgpLT5wYWdlKCkgOiAwOworICAg
IGlmIChwYWdlKQorICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnNjcm9sbGJhcnNN
b2RlRGlkQ2hhbmdlKGZyYW1lVmlldy0+ZnJhbWUoKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggOGRmNjZlMC4u
YWJmODQ2MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKQEAgLTE4LDYgKzE4LDI0IEBACiAKIDIwMDktMDYtMDggIEd1c3Rhdm8gTm9y
b25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHByb3BlcnRpZXMgYW5kIGEgc2lnbmFsIHRvIHJlcG9y
dCBzY3JvbGxiYXIgcG9saWN5IGNoYW5nZXMgdG8KKyAgICAgICAgY2xpZW50IGNvZGUsIGFuZCBh
IGRlZmF1bHQgaGFuZGxlciB0aGF0IGRvZXMgdGhlIHJpZ2h0IHRoaW5nIHdoZW4KKyAgICAgICAg
dXNpbmcgR3RrU2Nyb2xsZWRXaW5kb3cuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcm9sbGJh
cnNQb2xpY3lEaWRDaGFuZ2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAgICh3
ZWJraXRfd2ViX2ZyYW1lX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX2ZyYW1l
X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfaG9yaXpvbnRhbF9z
Y3JvbGxiYXJfcG9saWN5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2Fs
X3Njcm9sbGJhcl9wb2xpY3kpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgor
CisyMDA5LTA2LTA4ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8uCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MjQwCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggNTAyM2Q1Yy4uYTg0NzRjNSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtMzgyLDYgKzM4
MiwzMiBAQCB2b2lkIENocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNv
bnN0IEludFNpemUmKSBjb25zdAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgQ2hy
b21lQ2xpZW50OjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZShGcmFtZSogY29yZUZyYW1lKSBjb25z
dAoreworICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdChjb3JlRnJhbWUpOworCisg
ICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdlYkZyYW1lKSwgImhvcml6b250YWwtc2Nyb2xs
YmFyLXBvbGljeSIpOworICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJGcmFtZSksICJ2
ZXJ0aWNhbC1zY3JvbGxiYXItcG9saWN5Iik7CisKKyAgICBnYm9vbGVhbiBpc0hhbmRsZWQ7Cisg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYkZyYW1lLCAic2Nyb2xsYmFycy1wb2xpY3ktY2hh
bmdlZCIsICZpc0hhbmRsZWQpOworCisgICAgaWYgKGlzSGFuZGxlZCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUod2ViRnJh
bWUpOworICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUod2ViVmlldykgIT0g
d2ViRnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIEd0a1dpZGdldCogcGFyZW50ID0gZ3Rr
X3dpZGdldF9nZXRfcGFyZW50KEdUS19XSURHRVQod2ViVmlldykpOworICAgIGlmICghcGFyZW50
IHx8ICFHVEtfSVNfU0NST0xMRURfV0lORE9XKHBhcmVudCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGd0a19zY3JvbGxlZF93aW5kb3dfc2V0X3BvbGljeShHVEtfU0NST0xMRURfV0lORE9XKHBh
cmVudCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X2hvcml6b250YWxfc2Nyb2xsYmFyX3BvbGljeSh3ZWJGcmFtZSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2FsX3Nj
cm9sbGJhcl9wb2xpY3kod2ViRnJhbWUpKTsKK30KKwogdm9pZCBDaHJvbWVDbGllbnQ6Om1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdCwgdW5zaWduZWQgbW9k
aWZpZXJGbGFncykKIHsKICAgICAvLyBJZiBhIHRvb2x0aXAgbXVzdCBiZSBkaXNwbGF5ZWQgaXQg
d2lsbCBiZSwgYWZ0ZXJ3YXJkcywgd2hlbgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmgKaW5kZXggODA5NzY2NS4uNTQxMzJlZCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBAIC05Miw2ICs5Miw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2luZG93
KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNv
cmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OwogCisgICAgICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZShXZWJDb3JlOjpGcmFtZSopIGNvbnN0
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2Vi
Q29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IDkwMDEyMTIuLmI0ZmJiZDggMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAorKysgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAgLTgwLDYgKzgwLDcgQEAgZW51bSB7CiAgICAg
TE9BRF9ET05FLAogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAor
ICAgIFNDUk9MTEJBUlNfUE9MSUNZX0NIQU5HRUQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAg
LTg5LDcgKzkwLDkgQEAgZW51bSB7CiAgICAgUFJPUF9OQU1FLAogICAgIFBST1BfVElUTEUsCiAg
ICAgUFJPUF9VUkksCi0gICAgUFJPUF9MT0FEX1NUQVRVUworICAgIFBST1BfTE9BRF9TVEFUVVMs
CisgICAgUFJPUF9IT1JJWk9OVEFMX1NDUk9MTEJBUl9QT0xJQ1ksCisgICAgUFJPUF9WRVJUSUNB
TF9TQ1JPTExCQVJfUE9MSUNZCiB9OwogCiBzdGF0aWMgZ3VpbnQgd2Via2l0X3dlYl9mcmFtZV9z
aWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKQEAgLTExMyw2ICsxMTYsMTIgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9mcmFtZV9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWlu
dCBwcm9wX2lkLCBHVmFsdWUKICAgICBjYXNlIFBST1BfTE9BRF9TVEFUVVM6CiAgICAgICAgIGdf
dmFsdWVfc2V0X2VudW0odmFsdWUsIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2xvYWRfc3RhdHVzKGZy
YW1lKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9IT1JJWk9OVEFMX1NDUk9MTEJB
Ul9QT0xJQ1k6CisgICAgICAgIGdfdmFsdWVfc2V0X2VudW0odmFsdWUsIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X2hvcml6b250YWxfc2Nyb2xsYmFyX3BvbGljeShmcmFtZSkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFBST1BfVkVSVElDQUxfU0NST0xMQkFSX1BPTElDWToKKyAgICAgICAgZ192
YWx1ZV9zZXRfZW51bSh2YWx1ZSwgd2Via2l0X3dlYl9mcmFtZV9nZXRfdmVydGljYWxfc2Nyb2xs
YmFyX3BvbGljeShmcmFtZSkpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3Bl
Yyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMjA5LDYgKzIxOCwzMSBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfd2ViX2ZyYW1lX2NsYXNzX2luaXQoV2ViS2l0V2ViRnJhbWVDbGFzcyogZnJhbWVDbGFzcykK
ICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBFX1NUUklORywg
R19UWVBFX1NUUklORyk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTo6c2Nyb2xs
YmFycy1wb2xpY3ktY2hhbmdlZDoKKyAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgd2hpY2gg
cmVjZWl2ZWQgdGhlIHNpZ25hbAorICAgICAqCisgICAgICogU2lnbmFsIGVtaXR0ZWQgd2hlbiBw
b2xpY3kgZm9yIG9uZSBvciBib3RoIG9mIHRoZSBzY3JvbGxiYXJzIG9mCisgICAgICogdGhlIHZp
ZXcgaGFzIGNoYW5nZWQuIFRoZSBkZWZhdWx0IGhhbmRsZXIgd2lsbCBhcHBseSB0aGUgbmV3Cisg
ICAgICogcG9saWN5IHRvIHRoZSBjb250YWluZXIgdGhhdCBob2xkcyB0aGUgI1dlYktpdFdlYkZy
YW1lIGlmIGl0IGlzCisgICAgICogYSAjR3RrU2Nyb2xsZWRXaW5kb3cuIElmIHlvdSBkbyBub3Qg
d2FudCB0aGlzIHRvIGJlIGhhbmRsZWQKKyAgICAgKiBhdXRvbWF0aWNhbGx5LCB5b3UgbmVlZCB0
byBoYW5kbGUgdGhpcyBzaWduYWwuCisgICAgICoKKyAgICAgKiBZb3UgY2FuIG9idGFpbiB0aGUg
bmV3IHBvbGljaWVzIGZyb20gdGhlCisgICAgICogV2ViS2l0V2ViRnJhbWU6aG9yaXpvbnRhbC1z
Y3JvbGxiYXItcG9saWN5IGFuZAorICAgICAqIFdlYktpdFdlYkZyYW1lOnZlcnRpY2FsLXNjcm9s
bGJhci1wb2xpY3kgcHJvcGVydGllcy4KKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjEuOQorICAg
ICAqLworICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tTQ1JPTExCQVJTX1BPTElDWV9DSEFO
R0VEXSA9IGdfc2lnbmFsX25ldygic2Nyb2xsYmFycy1wb2xpY3ktY2hhbmdlZCIsCisgICAgICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFs
RmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAg
IDAsCisgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAg
ICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fVk9JRCwK
KyAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAwKTsKKwogICAgIC8qCiAgICAgICogaW1wbGVt
ZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAqLwpAQCAtMjU1LDYgKzI4OSw0MiBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2NsYXNzX2luaXQoV2ViS2l0V2ViRnJhbWVD
bGFzcyogZnJhbWVDbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdFQktJVF9MT0FEX0ZJTklTSEVELAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxF
KSk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTpob3Jpem9udGFsLXNjcm9sbGJh
ci1wb2xpY3k6CisgICAgICoKKyAgICAgKiBEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHBvbGljeSBm
b3IgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIG9mCisgICAgICogdGhlIGZyYW1lLiBGb3IgdGhl
IG1haW4gZnJhbWUsIHlvdSBzaG91bGQgZm9sbG93IHRoaXMgcG9saWN5IG9uCisgICAgICogdGhl
IHdpZGdldCB0aGF0IHN1cnJvdW5kcyB0aGUgI1dlYktpdFdlYlZpZXcgdG8gbWFrZSBzb21lCisg
ICAgICogY29udGVudCBiZWhhdmUgYXMgZXhwZWN0ZWQuCisgICAgICoKKyAgICAgKiBTaW5jZTog
MS4xLjkKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVj
dENsYXNzLCBQUk9QX0hPUklaT05UQUxfU0NST0xMQkFSX1BPTElDWSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19lbnVtKCJob3Jpem9udGFsLXNjcm9s
bGJhci1wb2xpY3kiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkhvcml6b250YWwgU2Nyb2xsYmFyIFBvbGljeSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGV0ZXJtaW5lcyB0aGUg
Y3VycmVudCBwb2xpY3kgZm9yIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBvZiB0aGUgZnJhbWUu
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdUS19UWVBFX1BPTElDWV9UWVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR1RLX1BPTElDWV9BVVRPTUFUSUMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
REFCTEUpKTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFdlYkZyYW1lOnZlcnRpY2FsLXNjcm9s
bGJhci1wb2xpY3k6CisgICAgICoKKyAgICAgKiBEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHBvbGlj
eSBmb3IgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciBvZgorICAgICAqIHRoZSBmcmFtZS4gRm9yIHRo
ZSBtYWluIGZyYW1lLCB5b3Ugc2hvdWxkIGZvbGxvdyB0aGlzIHBvbGljeSBvbgorICAgICAqIHRo
ZSB3aWRnZXQgdGhhdCBzdXJyb3VuZHMgdGhlICNXZWJLaXRXZWJWaWV3IHRvIG1ha2Ugc29tZQor
ICAgICAqIGNvbnRlbnQgYmVoYXZlIGFzIGV4cGVjdGVkLgorICAgICAqCisgICAgICogU2luY2U6
IDEuMS45CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmpl
Y3RDbGFzcywgUFJPUF9WRVJUSUNBTF9TQ1JPTExCQVJfUE9MSUNZLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2VudW0oInZlcnRpY2FsLXNjcm9sbGJh
ci1wb2xpY3kiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlZlcnRpY2FsIFNjcm9sbGJhciBQb2xpY3kiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRldGVybWluZXMgdGhlIGN1cnJl
bnQgcG9saWN5IGZvciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIG9mIHRoZSBmcmFtZS4iLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1RZ
UEVfUE9MSUNZX1RZUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHVEtfUE9MSUNZX0FVVE9NQVRJQywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OworCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGZyYW1lQ2xhc3MsIHNpemVvZihXZWJL
aXRXZWJGcmFtZVByaXZhdGUpKTsKIH0KIApAQCAtODI4LDMgKzg5OCw0MyBAQCBXZWJLaXRMb2Fk
U3RhdHVzIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2xvYWRfc3RhdHVzKFdlYktpdFdlYkZyYW1lKiBm
cmFtZSkKICAgICBXZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKICAg
ICByZXR1cm4gcHJpdi0+bG9hZFN0YXR1czsKIH0KKworR3RrUG9saWN5VHlwZSB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3koV2ViS2l0V2ViRnJhbWUqIGZy
YW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJh
bWUpLCBHVEtfUE9MSUNZX0FVVE9NQVRJQyk7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29y
ZShmcmFtZSk7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gY29yZUZyYW1lLT52aWV3KCk7CisgICAg
aWYgKCF2aWV3KQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9BVVRPTUFUSUM7CisKKyAgICBT
Y3JvbGxiYXJNb2RlIGhNb2RlID0gdmlldy0+aG9yaXpvbnRhbFNjcm9sbGJhck1vZGUoKTsKKwor
ICAgIGlmIChoTW9kZSA9PSBTY3JvbGxiYXJBbHdheXNPbikKKyAgICAgICAgcmV0dXJuIEdUS19Q
T0xJQ1lfQUxXQVlTOworCisgICAgaWYgKGhNb2RlID09IFNjcm9sbGJhckFsd2F5c09mZikKKyAg
ICAgICAgcmV0dXJuIEdUS19QT0xJQ1lfTkVWRVI7CisKKyAgICByZXR1cm4gR1RLX1BPTElDWV9B
VVRPTUFUSUM7Cit9CisKK0d0a1BvbGljeVR5cGUgd2Via2l0X3dlYl9mcmFtZV9nZXRfdmVydGlj
YWxfc2Nyb2xsYmFyX3BvbGljeShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIEdUS19QT0xJQ1lfQVVU
T01BVElDKTsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBGcmFt
ZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAg
IHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKKworICAgIFNjcm9sbGJhck1vZGUgdk1vZGUg
PSB2aWV3LT52ZXJ0aWNhbFNjcm9sbGJhck1vZGUoKTsKKworICAgIGlmICh2TW9kZSA9PSBTY3Jv
bGxiYXJBbHdheXNPbikKKyAgICAgICAgcmV0dXJuIEdUS19QT0xJQ1lfQUxXQVlTOworCisgICAg
aWYgKHZNb2RlID09IFNjcm9sbGJhckFsd2F5c09mZikKKyAgICAgICAgcmV0dXJuIEdUS19QT0xJ
Q1lfTkVWRVI7CisKKyAgICByZXR1cm4gR1RLX1BPTElDWV9BVVRPTUFUSUM7Cit9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuaAppbmRleCAzMzAzMjdkLi44NDYwMDkyIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmgKQEAgLTUxLDYgKzUxLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJGcmFt
ZUNsYXNzIHsKICAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogCiAgICAgLyo8IHB1Ymxp
YyA+Ki8KKwogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOwogICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOwogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVk
MykgKHZvaWQpOwpAQCAtMTM0LDYgKzEzNSwxMiBAQCB3ZWJraXRfd2ViX2ZyYW1lX3ByaW50ICAg
ICAgICAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIFdFQktJVF9BUEkgV2Vi
S2l0TG9hZFN0YXR1cwogd2Via2l0X3dlYl9mcmFtZV9nZXRfbG9hZF9zdGF0dXMgICAgKFdlYktp
dFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKK1dFQktJVF9BUEkgR3RrUG9saWN5VHlwZQord2Vi
a2l0X3dlYl9mcmFtZV9nZXRfaG9yaXpvbnRhbF9zY3JvbGxiYXJfcG9saWN5IChXZWJLaXRXZWJG
cmFtZSAgICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBHdGtQb2xpY3lUeXBlCit3ZWJraXRf
d2ViX2ZyYW1lX2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9saWN5ICAgKFdlYktpdFdlYkZyYW1l
ICAgICAgICAqZnJhbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDhkYWFkMTMuLmZhMWFjZGUgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtOTksNiAr
OTksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQo
Y29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01v
ZGVEaWRDaGFuZ2UoRnJhbWUqKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1v
ZGlmaWVyRmxhZ3MpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV2ViQ29y
ZTo6U3RyaW5nJik7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmlu
ZGV4IDlmMmMxYjUuLmNjODc5MmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oCkBAIC0xMDgsNiArMTA4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2luZG93KCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYp
IGNvbnN0OwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZShG
cmFtZSopIGNvbnN0IHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNTZjZTZlYy4uYWM4NDhh
MCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC05
OSw2ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3Jt
V2luZG93KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2Vi
Q29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Q7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoRnJhbWUqKSBjb25zdCB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVz
dFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCiAgICAgdmlydHVhbCB2b2lkIHNl
dFRvb2xUaXAoY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CmRpZmYgLS1naXQgYS9XZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guaAppbmRleCBiNmUxMDM2Li45N2QzY2RkIDEwMDY0NAotLS0gYS9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRvdygpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNv
bnN0OwogCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKEZyYW1lKikg
Y29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0
IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYpOwo=
</data>
<flag name="review"
          id="15850"
          type_id="1"
          status="-"
          setter="jmalonzo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31980</attachid>
            <date>2009-06-27 15:07:16 -0700</date>
            <delta_ts>2009-06-29 16:55:42 -0700</delta_ts>
            <desc>report scrollbar policy</desc>
            <filename>report-scrollbar-policy.patch</filename>
            <type>text/plain</type>
            <size>19118</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">YWQ0ODlkN2Y5YTQ0MjIxOWI0MGE3OWMwMDdiMmJmOWE3YzY1ZGRjZgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZGMzZWY0Li5mMzc4YWRi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDA5LTA2LTI3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTg4OQorICAgICAgICBbR1RLXSBzY3JvbGxiYXIgcG9saWN5IGZvciBtYWluIGZyYW1l
IGlzIG5vdCBpbXBsZW1lbnRhYmxlCisKKyAgICAgICAgT3ZlcnJpZGUgc2V0U2Nyb2xsYmFyTW9k
ZXMgdG8gY29ycmVjdGx5IGZvcndhcmQgc2Nyb2xsYmFyIG1vZGVzCisgICAgICAgIHBvbGljeSBj
aGFuZ2VzIHRvIGNsaWVudCBjb2RlLCB2aWEgYSBuZXcgcGxhdGZvcm0tc3BlY2lmaWMgbWV0aG9k
LAorICAgICAgICBzY3JvbGxiYXJzUG9saWN5RGlkQ2hhbmdlLgorCisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNj
cm9sbGJhcnNNb2RlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xs
Vmlld0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJN
b2Rlcyk6CisKIDIwMDktMDYtMjcgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAppbmRleCBlMWE5MmQ1Li5iMmRiMDQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTIz
LDYgKzEyMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3Jt
V2luZG93KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1Np
emVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0IHsgfQogCisgICAgdmlydHVh
bCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKEZyYW1lKikgY29uc3QgeyB9CiAgICAgdmly
dHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1
bnNpZ25lZCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcm
KSB7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBlMTU1NzU0Li40MWI0NjczIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC0xMjksNiArMTI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmLCBjb25zdCBTY3JvbGxW
aWV3KikgY29uc3QgPSAwOyAvLyBDdXJyZW50bHkgb25seSBNYWMgaGFzIGEgbm9uIGVtcHR5IGlt
cGxlbWVudGF0aW9uLgogICAgICAgICAvLyBFbmQgbWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cu
CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKEZyYW1lKikg
Y29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQo
Y29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpID0gMDsKIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmKSA9IDA7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAppbmRleCA5ZDNjMTI4Li40YmQwMzZiIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAKQEAgLTEwMyw3ICsxMDMsNiBAQCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gU2Nyb2xsVmll
dzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aQogewogICAg
IHJldHVybiBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcih0aGlzLCBvcmllbnRhdGlv
biwgUmVndWxhclNjcm9sbGJhcik7CiB9Ci0jZW5kaWYKIAogdm9pZCBTY3JvbGxWaWV3OjpzZXRT
Y3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlIGhvcml6b250YWxNb2RlLCBTY3JvbGxiYXJNb2Rl
IHZlcnRpY2FsTW9kZSkKIHsKQEAgLTExNiw2ICsxMTUsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNl
dFNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1vZGUsIFNjcm9sbGJhck1v
ZGUgdgogICAgIGVsc2UKICAgICAgICAgdXBkYXRlU2Nyb2xsYmFycyhzY3JvbGxPZmZzZXQoKSk7
CiB9CisjZW5kaWYKIAogdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJN
b2RlJiBob3Jpem9udGFsTW9kZSwgU2Nyb2xsYmFyTW9kZSYgdmVydGljYWxNb2RlKSBjb25zdAog
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAppbmRleCAwZTgxMWVmLi41ZjM5
OWJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcApAQCAtMzEsMTAgKzMx
LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgogCisj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgor
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJHdGsuaCIKQEAg
LTE0Miw0ICsxNDYsMzEgQEAgSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3Qo
Ym9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1lYXN1cmVkV2lkZ2V0LT5hbGxvY2F0aW9uLmhlaWdodCkpOwogfQogCit2b2lkIFNjcm9sbFZp
ZXc6OnNldFNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1vZGUsIFNjcm9s
bGJhck1vZGUgdmVydGljYWxNb2RlKQoreworICAgIGlmIChob3Jpem9udGFsTW9kZSA9PSBtX2hv
cml6b250YWxTY3JvbGxiYXJNb2RlICYmIHZlcnRpY2FsTW9kZSA9PSBtX3ZlcnRpY2FsU2Nyb2xs
YmFyTW9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTW9k
ZSA9IGhvcml6b250YWxNb2RlOworICAgIG1fdmVydGljYWxTY3JvbGxiYXJNb2RlID0gdmVydGlj
YWxNb2RlOworCisgICAgLy8gV2UgZG9uJ3QgcmVhbGx5IGNhcmUgYWJvdXQgcmVwb3J0aW5nIHBv
bGljeSBjaGFuZ2VzIG9uIGZyYW1lcworICAgIC8vIHRoYXQgaGF2ZSBubyBhZGp1c3RtZW50cyBh
dHRhY2hlZCB0byB0aGVtLgorICAgIGlmICghbV9ob3Jpem9udGFsQWRqdXN0bWVudCkgeworICAg
ICAgICB1cGRhdGVTY3JvbGxiYXJzKHNjcm9sbE9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmICghaXNGcmFtZVZpZXcoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gRm9yIGZyYW1lcyB0aGF0IGRvIGhhdmUgYWRqdXN0bWVudHMgYXR0YWNoZWQsIHdlIHdhbnQg
dG8gcmVwb3J0CisgICAgLy8gcG9saWN5IGNoYW5nZXMsIHNvIHRoYXQgdGhleSBtYXkgYmUgYXBw
bGllZCB0byB0aGUgd2lkZ2V0IHRvCisgICAgLy8gd2hpY2ggdGhlIFdlYlZpZXcgaGFzIGJlZW4g
YWRkZWQsIGZvciBpbnN0YW5jZS4KKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19j
YXN0PEZyYW1lVmlldyo+KHRoaXMpOworICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZVZpZXctPmZyYW1l
KCkgPyBmcmFtZVZpZXctPmZyYW1lKCktPnBhZ2UoKSA6IDA7CisgICAgaWYgKHBhZ2UpCisgICAg
ICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoZnJh
bWVWaWV3LT5mcmFtZSgpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBiMDM4YTQ3Li41ODY2ZDRjIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDA5LTA2LTI3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZv
Lm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBwcm9wZXJ0aWVzIGFuZCBhIHNpZ25hbCB0byByZXBvcnQg
c2Nyb2xsYmFyIHBvbGljeSBjaGFuZ2VzIHRvCisgICAgICAgIGNsaWVudCBjb2RlLCBhbmQgYSBk
ZWZhdWx0IGhhbmRsZXIgdGhhdCBkb2VzIHRoZSByaWdodCB0aGluZyB3aGVuCisgICAgICAgIHVz
aW5nIEd0a1Njcm9sbGVkV2luZG93LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGxiYXJz
TW9kZURpZENoYW5nZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
Lmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHdlYmtp
dF93ZWJfZnJhbWVfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfY2xh
c3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF9ob3Jpem9udGFsX3Njcm9s
bGJhcl9wb2xpY3kpOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfdmVydGljYWxfc2Ny
b2xsYmFyX3BvbGljeSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6CisKIDIw
MDktMDYtMjQgIEppYWh1YSBIdWFuZyAgPGpodWFuZ2ppYWh1YUBnbWFpbC5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IDUwMjNkNWMuLmE4NDc0YzUgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTM4Miw2ICsz
ODIsMzIgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBj
b25zdCBJbnRTaXplJikgY29uc3QKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIENo
cm9tZUNsaWVudDo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoRnJhbWUqIGNvcmVGcmFtZSkgY29u
c3QKK3sKKyAgICBXZWJLaXRXZWJGcmFtZSogd2ViRnJhbWUgPSBraXQoY29yZUZyYW1lKTsKKwor
ICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJGcmFtZSksICJob3Jpem9udGFsLXNjcm9s
bGJhci1wb2xpY3kiKTsKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViRnJhbWUpLCAi
dmVydGljYWwtc2Nyb2xsYmFyLXBvbGljeSIpOworCisgICAgZ2Jvb2xlYW4gaXNIYW5kbGVkOwor
ICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJGcmFtZSwgInNjcm9sbGJhcnMtcG9saWN5LWNo
YW5nZWQiLCAmaXNIYW5kbGVkKTsKKworICAgIGlmIChpc0hhbmRsZWQpCisgICAgICAgIHJldHVy
bjsKKworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKHdlYkZy
YW1lKTsKKyAgICBpZiAod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKHdlYlZpZXcpICE9
IHdlYkZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBHdGtXaWRnZXQqIHBhcmVudCA9IGd0
a193aWRnZXRfZ2V0X3BhcmVudChHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBpZiAoIXBhcmVu
dCB8fCAhR1RLX0lTX1NDUk9MTEVEX1dJTkRPVyhwYXJlbnQpKQorICAgICAgICByZXR1cm47CisK
KyAgICBndGtfc2Nyb2xsZWRfd2luZG93X3NldF9wb2xpY3koR1RLX1NDUk9MTEVEX1dJTkRPVyhw
YXJlbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfd2ViX2Zy
YW1lX2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3kod2ViRnJhbWUpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfd2ViX2ZyYW1lX2dldF92ZXJ0aWNhbF9z
Y3JvbGxiYXJfcG9saWN5KHdlYkZyYW1lKSk7Cit9CisKIHZvaWQgQ2hyb21lQ2xpZW50Ojptb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXQsIHVuc2lnbmVkIG1v
ZGlmaWVyRmxhZ3MpCiB7CiAgICAgLy8gSWYgYSB0b29sdGlwIG11c3QgYmUgZGlzcGxheWVkIGl0
IHdpbGwgYmUsIGFmdGVyd2FyZHMsIHdoZW4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oCmluZGV4IDgwOTc2NjUuLjU0MTMyZWQgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtOTIsNiArOTIsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRv
dygpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJD
b3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdDsKIAorICAgICAgICB2
aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUqKSBjb25z
dDsKICAgICAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdl
YkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAppbmRleCAyNmZlZDgzLi4wMDI0OGI2IDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCkBAIC04MCw2ICs4MCw3IEBAIGVudW0gewogICAg
IExPQURfRE9ORSwKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJfTElOSywK
KyAgICBTQ1JPTExCQVJTX1BPTElDWV9DSEFOR0VELAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBA
IC04OSw3ICs5MCw5IEBAIGVudW0gewogICAgIFBST1BfTkFNRSwKICAgICBQUk9QX1RJVExFLAog
ICAgIFBST1BfVVJJLAotICAgIFBST1BfTE9BRF9TVEFUVVMKKyAgICBQUk9QX0xPQURfU1RBVFVT
LAorICAgIFBST1BfSE9SSVpPTlRBTF9TQ1JPTExCQVJfUE9MSUNZLAorICAgIFBST1BfVkVSVElD
QUxfU0NST0xMQkFSX1BPTElDWQogfTsKIAogc3RhdGljIGd1aW50IHdlYmtpdF93ZWJfZnJhbWVf
c2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CkBAIC0xMTMsNiArMTE2LDEyIEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3Vp
bnQgcHJvcF9pZCwgR1ZhbHVlCiAgICAgY2FzZSBQUk9QX0xPQURfU1RBVFVTOgogICAgICAgICBn
X3ZhbHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0YXR1cyhm
cmFtZSkpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfSE9SSVpPTlRBTF9TQ1JPTExC
QVJfUE9MSUNZOgorICAgICAgICBnX3ZhbHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfd2ViX2Zy
YW1lX2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3koZnJhbWUpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBQUk9QX1ZFUlRJQ0FMX1NDUk9MTEJBUl9QT0xJQ1k6CisgICAgICAgIGdf
dmFsdWVfc2V0X2VudW0odmFsdWUsIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2FsX3Njcm9s
bGJhcl9wb2xpY3koZnJhbWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNw
ZWMpOwogICAgICAgICBicmVhazsKQEAgLTIwOSw2ICsyMTgsMzEgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZyYW1lQ2xhc3MqIGZyYW1lQ2xhc3Mp
CiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcs
IEdfVFlQRV9TVFJJTkcpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViRnJhbWU6OnNjcm9s
bGJhcnMtcG9saWN5LWNoYW5nZWQ6CisgICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IHdoaWNo
IHJlY2VpdmVkIHRoZSBzaWduYWwKKyAgICAgKgorICAgICAqIFNpZ25hbCBlbWl0dGVkIHdoZW4g
cG9saWN5IGZvciBvbmUgb3IgYm90aCBvZiB0aGUgc2Nyb2xsYmFycyBvZgorICAgICAqIHRoZSB2
aWV3IGhhcyBjaGFuZ2VkLiBUaGUgZGVmYXVsdCBoYW5kbGVyIHdpbGwgYXBwbHkgdGhlIG5ldwor
ICAgICAqIHBvbGljeSB0byB0aGUgY29udGFpbmVyIHRoYXQgaG9sZHMgdGhlICNXZWJLaXRXZWJG
cmFtZSBpZiBpdCBpcworICAgICAqIGEgI0d0a1Njcm9sbGVkV2luZG93LiBJZiB5b3UgZG8gbm90
IHdhbnQgdGhpcyB0byBiZSBoYW5kbGVkCisgICAgICogYXV0b21hdGljYWxseSwgeW91IG5lZWQg
dG8gaGFuZGxlIHRoaXMgc2lnbmFsLgorICAgICAqCisgICAgICogWW91IGNhbiBvYnRhaW4gdGhl
IG5ldyBwb2xpY2llcyBmcm9tIHRoZQorICAgICAqIFdlYktpdFdlYkZyYW1lOmhvcml6b250YWwt
c2Nyb2xsYmFyLXBvbGljeSBhbmQKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTp2ZXJ0aWNhbC1zY3Jv
bGxiYXItcG9saWN5IHByb3BlcnRpZXMuCisgICAgICoKKyAgICAgKiBTaW5jZTogMS4xLjkKKyAg
ICAgKi8KKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbU0NST0xMQkFSU19QT0xJQ1lfQ0hB
TkdFRF0gPSBnX3NpZ25hbF9uZXcoInNjcm9sbGJhcnMtcG9saWN5LWNoYW5nZWQiLAorICAgICAg
ICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25h
bEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAg
ICAwLAorICAgICAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLAorICAg
ICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX1ZPSUQs
CisgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMCk7CisKICAgICAvKgogICAgICAqIGltcGxl
bWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KQEAgLTI1NSw2ICsyODksNDIg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZyYW1l
Q2xhc3MqIGZyYW1lQ2xhc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXRUJLSVRfTE9BRF9GSU5JU0hFRCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJM
RSkpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViRnJhbWU6aG9yaXpvbnRhbC1zY3JvbGxi
YXItcG9saWN5OgorICAgICAqCisgICAgICogRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBwb2xpY3kg
Zm9yIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBvZgorICAgICAqIHRoZSBmcmFtZS4gRm9yIHRo
ZSBtYWluIGZyYW1lLCBtYWtlIHN1cmUgdG8gc2V0IHRoZSBzYW1lIHBvbGljeQorICAgICAqIG9u
IHRoZSBzY3JvbGxhYmxlIHdpZGdldCBjb250YWluaW5nIHRoZSAjV2ViS2l0V2ViVmlldywgdW5s
ZXNzCisgICAgICogeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLgorICAgICAqCisgICAgICog
U2luY2U6IDEuMS4xMQorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkob2JqZWN0Q2xhc3MsIFBST1BfSE9SSVpPTlRBTF9TQ1JPTExCQVJfUE9MSUNZLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2VudW0oImhvcml6b250
YWwtc2Nyb2xsYmFyLXBvbGljeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBfKCJIb3Jpem9udGFsIFNjcm9sbGJhciBQb2xpY3kiKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkRl
dGVybWluZXMgdGhlIGN1cnJlbnQgcG9saWN5IGZvciB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIg
b2YgdGhlIGZyYW1lLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR1RLX1RZUEVfUE9MSUNZX1RZUEUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfUE9MSUNZX0FVVE9NQVRJQywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViRnJhbWU6
dmVydGljYWwtc2Nyb2xsYmFyLXBvbGljeToKKyAgICAgKgorICAgICAqIERldGVybWluZXMgdGhl
IGN1cnJlbnQgcG9saWN5IGZvciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIG9mCisgICAgICogdGhl
IGZyYW1lLiBGb3IgdGhlIG1haW4gZnJhbWUsIG1ha2Ugc3VyZSB0byBzZXQgdGhlIHNhbWUgcG9s
aWN5CisgICAgICogb24gdGhlIHNjcm9sbGFibGUgd2lkZ2V0IGNvbnRhaW5pbmcgdGhlICNXZWJL
aXRXZWJWaWV3LCB1bmxlc3MKKyAgICAgKiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuCisg
ICAgICoKKyAgICAgKiBTaW5jZTogMS4xLjExCisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9WRVJUSUNBTF9TQ1JPTExCQVJfUE9M
SUNZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Vu
dW0oInZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3kiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVmVydGljYWwgU2Nyb2xsYmFyIFBvbGlj
eSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBwb2xpY3kgZm9yIHRoZSB2ZXJ0aWNhbCBzY3Jv
bGxiYXIgb2YgdGhlIGZyYW1lLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR1RLX1RZUEVfUE9MSUNZX1RZUEUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfUE9MSUNZX0FVVE9N
QVRJQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2
YXRlKGZyYW1lQ2xhc3MsIHNpemVvZihXZWJLaXRXZWJGcmFtZVByaXZhdGUpKTsKIH0KIApAQCAt
ODM1LDMgKzkwNSw0MyBAQCB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfY2xlYXJfbWFpbl9mcmFtZV9u
YW1lKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKIAogICAgIGNvcmUoZnJhbWUpLT50cmVlKCktPmNs
ZWFyTmFtZSgpOwogfQorCitHdGtQb2xpY3lUeXBlIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2hvcml6
b250YWxfc2Nyb2xsYmFyX3BvbGljeShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIEdUS19QT0xJQ1lf
QVVUT01BVElDKTsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBG
cmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAg
ICAgIHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKKworICAgIFNjcm9sbGJhck1vZGUgaE1v
ZGUgPSB2aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSgpOworCisgICAgaWYgKGhNb2RlID09
IFNjcm9sbGJhckFsd2F5c09uKQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9BTFdBWVM7CisK
KyAgICBpZiAoaE1vZGUgPT0gU2Nyb2xsYmFyQWx3YXlzT2ZmKQorICAgICAgICByZXR1cm4gR1RL
X1BPTElDWV9ORVZFUjsKKworICAgIHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKK30KKwor
R3RrUG9saWN5VHlwZSB3ZWJraXRfd2ViX2ZyYW1lX2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9s
aWN5KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgR1RLX1BPTElDWV9BVVRPTUFUSUMpOworCisgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEZyYW1lVmlldyogdmlldyA9IGNv
cmVGcmFtZS0+dmlldygpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIEdUS19QT0xJ
Q1lfQVVUT01BVElDOworCisgICAgU2Nyb2xsYmFyTW9kZSB2TW9kZSA9IHZpZXctPnZlcnRpY2Fs
U2Nyb2xsYmFyTW9kZSgpOworCisgICAgaWYgKHZNb2RlID09IFNjcm9sbGJhckFsd2F5c09uKQor
ICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9BTFdBWVM7CisKKyAgICBpZiAodk1vZGUgPT0gU2Ny
b2xsYmFyQWx3YXlzT2ZmKQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9ORVZFUjsKKworICAg
IHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5oCmluZGV4IGIyZTYxYjkuLjE3ZjNkYzUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUu
aApAQCAtNTEsNiArNTEsNyBAQCBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lQ2xhc3MgewogICAgIEdP
YmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiAKICAgICAvKjwgcHVibGljID4qLworCiAgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CiAgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2
ZWQyKSAodm9pZCk7CiAgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7CkBAIC0x
NTIsNiArMTUzLDEyIEBAIHdlYmtpdF93ZWJfZnJhbWVfcHJpbnQgICAgICAgICAgICAgIChXZWJL
aXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogV0VCS0lUX0FQSSBXZWJLaXRMb2FkU3RhdHVzCiB3
ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0YXR1cyAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAg
KmZyYW1lKTsKIAorV0VCS0lUX0FQSSBHdGtQb2xpY3lUeXBlCit3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3kgKFdlYktpdFdlYkZyYW1lICAgICAgICAqZnJh
bWUpOworCitXRUJLSVRfQVBJIEd0a1BvbGljeVR5cGUKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X3Zl
cnRpY2FsX3Njcm9sbGJhcl9wb2xpY3kgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgICpmcmFtZSk7
CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmNGQ2MWNmLi4yNjY3Mzc0IDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDA5LTA2LTI3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZv
Lm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBlbXB0eSBpbXBsZW1lbnRhdGlvbiBmb3IgbmV3IENocm9t
ZUNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2Up
OgorCiAyMDA5LTA2LTI2ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPi4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmgg
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDhkYWFk
MTMuLmZhMWFjZGUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtOTksNiArOTksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHNl
dFN0YXR1c2JhclRleHQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoRnJhbWUqKSBjb25zdCB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3Vs
dCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xU
aXAoY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdl
TG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA0M2ExMGVhLi5mZjI1MTAyIDEwMDY0NAot
LS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAwOS0wNi0yNyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5u
b3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgZW1wdHkgaW1wbGVtZW50YXRpb24gZm9yIG5ldyBDaHJvbWVD
bGllbnQgbWV0aG9kLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzY3JvbGxiYXJzTW9kZURpZENo
YW5nZSk6CisKIDIwMDktMDYtMjcgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9r
aWEuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgUXQgdW5kZXIgV2luZG93cy4KZGlmZiAt
LWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggOWYyYzFiNS4uY2M4Nzky
ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgK
KysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTEwOCw2
ICsxMDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZvcm1X
aWRnZXQgcGxhdGZvcm1XaW5kb3coKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRl
bnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3Q7CiAKKyAgICAgICAg
dmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKEZyYW1lKikgY29uc3QgeyB9CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0
UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5n
ZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDA1NjMwMGMuLjQzOWM2MTUgMTAwNjQ0
Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMDktMDYtMjcgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rh
dm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGVtcHR5IGltcGxlbWVudGF0aW9uIGZvciBuZXcgQ2hy
b21lQ2xpZW50IG1ldGhvZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzY3JvbGxiYXJzTW9kZURpZENoYW5n
ZSk6CisKIDIwMDktMDYtMjYgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGI5ZDAwOWEuLmJmZmVjYTcgMTAwNjQ0
Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtOTYsNiArOTYs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRvdygp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OwogCisgICAgdmlydHVhbCB2b2lk
IHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKEZyYW1lKikgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2
b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQm
LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlw
KGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxv
ZyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggN2JiYTY5YS4uNGU5NTVkMSAxMDA2NDQKLS0t
IGEvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMDktMDYtMjcgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9y
b25oYUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGVtcHR5IGltcGxlbWVudGF0aW9uIGZvciBuZXcgQ2hyb21lQ2xp
ZW50IG1ldGhvZC4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4OjpzY3JvbGxiYXJzTW9kZURpZENoYW5n
ZSk6CisKIDIwMDktMDYtMDkgIEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5j
b20+CiAKICAgICAgICAgd3ggYnVpbGQgZml4LCBhZGRpbmcgSlNDb3JlL2Fzc2VtYmxlciB0byB0
aGUgbGlzdCBvZiBpbmNsdWRlIGRpcnMuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9DaHJvbWVDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xp
ZW50V3guaAppbmRleCBiNmUxMDM2Li45N2QzY2RkIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0Nocm9tZUNsaWVudFd4LmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRvdygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OwogCisg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKEZyYW1lKikgY29uc3QgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RS
ZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRU
b29sVGlwKGNvbnN0IFN0cmluZyYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32028</attachid>
            <date>2009-06-29 16:54:51 -0700</date>
            <delta_ts>2009-08-27 14:55:12 -0700</delta_ts>
            <desc>report scrollbar policy</desc>
            <filename>report-scrollbar-policy.patch</filename>
            <type>text/plain</type>
            <size>27431</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">MGU5OWIxNTY4ZWM3MmI4NTMxMzg5OTMwZDhjNjAxYzdhYzZkMTRhZQpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGYyY2M5YTIuLmQyNDYxYTEgMTAwNjQ0Ci0tLSBhL0No
YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wNi0yOSAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4ODkKKyAgICAgICAgW0dUS10gc2Nyb2xs
YmFyIHBvbGljeSBmb3IgbWFpbiBmcmFtZSBpcyBub3QgaW1wbGVtZW50YWJsZQorCisgICAgICAg
IEFkZGluZyBmaWxlcyBmb3IgdGhlIG5ldyB0ZXN0IGZvciB3aW5kb3ctcmVsYXRlZCBpc3N1ZXMg
KHN0YXJ0aW5nCisgICAgICAgIHdpdGggc2Nyb2xsYmFyIHBvbGljeSkuCisKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5hbToKKwogMjAwOS0wNi0yMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25z
QGdub21lLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxvbnpvLgpkaWZmIC0tZ2l0
IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBkMmIyYzcxLi4wZDU5Y2M5
IDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5hbQpAQCAtNTMx
LDYgKzUzMSw3IEBAIFRFU1RfUFJPR1MgKz0gUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3RodHRwYmFj
a2VuZCBcCiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3R3ZWJmcmFtZSBcCiAJUHJvZ3JhbXMvdW5p
dHRlc3RzL3Rlc3R3ZWJiYWNrZm9yd2FyZGxpc3QgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0
d2ViaGlzdG9yeWl0ZW0gXAorCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2luZG93IFwKIAlQcm9n
cmFtcy91bml0dGVzdHMvdGVzdGRvd25sb2FkIFwKIAlQcm9ncmFtcy91bml0dGVzdHMvdGVzdGF0
awogCkBAIC01NjUsNiArNTY2LDExIEBAIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0d2ViaGlzdG9y
eWl0ZW1fQ0ZMQUdTID0gJCh3ZWJraXRfdGVzdHNfY2ZsYWdzKQogUHJvZ3JhbXNfdW5pdHRlc3Rz
X3Rlc3R3ZWJoaXN0b3J5aXRlbV9MREFERCA9ICQod2Via2l0X3Rlc3RzX2xkYWRkKQogUHJvZ3Jh
bXNfdW5pdHRlc3RzX3Rlc3R3ZWJoaXN0b3J5aXRlbV9MREZMQUdTID0gJCh3ZWJraXRfdGVzdHNf
bGRmbGFncykKIAorUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3aW5kb3dfU09VUkNFUyA9IFdlYktp
dC9ndGsvdGVzdHMvdGVzdHdpbmRvdy5jCitQcm9ncmFtc191bml0dGVzdHNfdGVzdHdpbmRvd19D
RkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxhZ3MpCitQcm9ncmFtc191bml0dGVzdHNfdGVzdHdp
bmRvd19MREFERCA9ICQod2Via2l0X3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfdW5pdHRlc3RzX3Rl
c3R3aW5kb3dfTERGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2xkZmxhZ3MpCisKIFByb2dyYW1zX3Vu
aXR0ZXN0c190ZXN0ZG93bmxvYWRfU09VUkNFUyA9IFdlYktpdC9ndGsvdGVzdHMvdGVzdGRvd25s
b2FkLmMKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0ZG93bmxvYWRfQ0ZMQUdTID0gJCh3ZWJraXRf
dGVzdHNfY2ZsYWdzKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3Rkb3dubG9hZF9MREFERCA9ICQo
d2Via2l0X3Rlc3RzX2xkYWRkKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAwZmVmOTJkLi5mNTdjY2Q2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDA5
LTA2LTI3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3Jh
LmNvLnVrPgorCisJUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODg5CisgICAgICAgIFtHVEtdIHNj
cm9sbGJhciBwb2xpY3kgZm9yIG1haW4gZnJhbWUgaXMgbm90IGltcGxlbWVudGFibGUKKworICAg
ICAgICBPdmVycmlkZSBzZXRTY3JvbGxiYXJNb2RlcyB0byBjb3JyZWN0bHkgZm9yd2FyZCBzY3Jv
bGxiYXIgbW9kZXMKKyAgICAgICAgcG9saWN5IGNoYW5nZXMgdG8gY2xpZW50IGNvZGUsIHZpYSBh
IG5ldyBwbGF0Zm9ybS1zcGVjaWZpYyBtZXRob2QsCisgICAgICAgIHNjcm9sbGJhcnNQb2xpY3lE
aWRDaGFuZ2UuCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50OjpzY3JvbGxiYXJzUG9saWN5RGlkQ2hhbmdlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6
OmNyZWF0ZVNjcm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OnNldFNjcm9sbGJhck1vZGVzKToKKwogMjAwOS0wNi0yOSAgU2FtIFdlaW5p
ZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCkBA
IC01MjIsNiArNTQxLDI1IEBACiAKICAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQ
cm9tcHQuanM6CiAgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUuX2Nv
bXBsZXRpb25zUmVhZHkpOgorMjAwOS0wNi0wOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25z
QGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4ODkKKyAgICAg
ICAgW0dUS10gc2Nyb2xsYmFyIHBvbGljeSBmb3IgbWFpbiBmcmFtZSBpcyBub3QgaW1wbGVtZW50
YWJsZQorCisgICAgICAgIE92ZXJyaWRlIHNldFNjcm9sbGJhck1vZGVzIHRvIGNvcnJlY3RseSBm
b3J3YXJkIHNjcm9sbGJhciBtb2RlcworICAgICAgICBwb2xpY3kgY2hhbmdlcyB0byBjbGllbnQg
Y29kZSwgdmlhIGEgbmV3IHBsYXRmb3JtLXNwZWNpZmljIG1ldGhvZCwKKyAgICAgICAgc2Nyb2xs
YmFyc1BvbGljeURpZENoYW5nZS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzY3JvbGxiYXJzTW9kZURpZENo
YW5nZSk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmNyZWF0ZVNj
cm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsYmFyTW9kZXMpOgorPj4+Pj4+PiBy
ZXBvcnQgc2Nyb2xsYmFyIHBvbGljeTpXZWJDb3JlL0NoYW5nZUxvZwogCiAyMDA5LTA2LTI3ICBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CmluZGV4IDJhYmQ1NGYuLmEwNWQ1NDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xMjMsNiAr
MTIzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGxhdGZvcm1XaWRnZXQgcGxhdGZvcm1XaW5k
b3coKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNo
YW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3QgeyB9CiAKKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoRnJhbWUqKSBjb25zdCB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2ln
bmVkKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYpIHsg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCmluZGV4IGUxNTU3NTQuLjQxYjQ2NzMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
QEAgLTEyOSw2ICsxMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYsIGNvbnN0IFNjcm9sbFZpZXcq
KSBjb25zdCA9IDA7IC8vIEN1cnJlbnRseSBvbmx5IE1hYyBoYXMgYSBub24gZW1wdHkgaW1wbGVt
ZW50YXRpb24uCiAgICAgICAgIC8vIEVuZCBtZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRvdy4KIAor
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoRnJhbWUqKSBjb25z
dCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25z
dCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgPSAwOwogCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYpID0gMDsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCmluZGV4IDlkM2MxMjguLjRiZDAzNmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cApAQCAtMTAzLDcgKzEwMyw2IEBAIFBhc3NSZWZQdHI8U2Nyb2xsYmFyPiBTY3JvbGxWaWV3Ojpj
cmVhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpCiB7CiAgICAgcmV0
dXJuIFNjcm9sbGJhcjo6Y3JlYXRlTmF0aXZlU2Nyb2xsYmFyKHRoaXMsIG9yaWVudGF0aW9uLCBS
ZWd1bGFyU2Nyb2xsYmFyKTsKIH0KLSNlbmRpZgogCiB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9s
bGJhck1vZGVzKFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1vZGUsIFNjcm9sbGJhck1vZGUgdmVy
dGljYWxNb2RlKQogewpAQCAtMTE2LDYgKzExNSw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Ny
b2xsYmFyTW9kZXMoU2Nyb2xsYmFyTW9kZSBob3Jpem9udGFsTW9kZSwgU2Nyb2xsYmFyTW9kZSB2
CiAgICAgZWxzZQogICAgICAgICB1cGRhdGVTY3JvbGxiYXJzKHNjcm9sbE9mZnNldCgpKTsKIH0K
KyNlbmRpZgogCiB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUm
IGhvcml6b250YWxNb2RlLCBTY3JvbGxiYXJNb2RlJiB2ZXJ0aWNhbE1vZGUpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCmluZGV4IDBlODExZWYuLjVmMzk5YmUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCkBAIC0zMSwxMCArMzEsMTQg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3LmgiCiAKKyNpbmNs
dWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhckd0ay5oIgpAQCAtMTQy
LDQgKzE0NiwzMSBAQCBJbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChib29s
IGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVh
c3VyZWRXaWRnZXQtPmFsbG9jYXRpb24uaGVpZ2h0KSk7CiB9CiAKK3ZvaWQgU2Nyb2xsVmlldzo6
c2V0U2Nyb2xsYmFyTW9kZXMoU2Nyb2xsYmFyTW9kZSBob3Jpem9udGFsTW9kZSwgU2Nyb2xsYmFy
TW9kZSB2ZXJ0aWNhbE1vZGUpCit7CisgICAgaWYgKGhvcml6b250YWxNb2RlID09IG1faG9yaXpv
bnRhbFNjcm9sbGJhck1vZGUgJiYgdmVydGljYWxNb2RlID09IG1fdmVydGljYWxTY3JvbGxiYXJN
b2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2hvcml6b250YWxTY3JvbGxiYXJNb2RlID0g
aG9yaXpvbnRhbE1vZGU7CisgICAgbV92ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPSB2ZXJ0aWNhbE1v
ZGU7CisKKyAgICAvLyBXZSBkb24ndCByZWFsbHkgY2FyZSBhYm91dCByZXBvcnRpbmcgcG9saWN5
IGNoYW5nZXMgb24gZnJhbWVzCisgICAgLy8gdGhhdCBoYXZlIG5vIGFkanVzdG1lbnRzIGF0dGFj
aGVkIHRvIHRoZW0uCisgICAgaWYgKCFtX2hvcml6b250YWxBZGp1c3RtZW50KSB7CisgICAgICAg
IHVwZGF0ZVNjcm9sbGJhcnMoc2Nyb2xsT2Zmc2V0KCkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCFpc0ZyYW1lVmlldygpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBG
b3IgZnJhbWVzIHRoYXQgZG8gaGF2ZSBhZGp1c3RtZW50cyBhdHRhY2hlZCwgd2Ugd2FudCB0byBy
ZXBvcnQKKyAgICAvLyBwb2xpY3kgY2hhbmdlcywgc28gdGhhdCB0aGV5IG1heSBiZSBhcHBsaWVk
IHRvIHRoZSB3aWRnZXQgdG8KKyAgICAvLyB3aGljaCB0aGUgV2ViVmlldyBoYXMgYmVlbiBhZGRl
ZCwgZm9yIGluc3RhbmNlLgorICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8
RnJhbWVWaWV3Kj4odGhpcyk7CisgICAgUGFnZSogcGFnZSA9IGZyYW1lVmlldy0+ZnJhbWUoKSA/
IGZyYW1lVmlldy0+ZnJhbWUoKS0+cGFnZSgpIDogMDsKKyAgICBpZiAocGFnZSkKKyAgICAgICAg
cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5zY3JvbGxiYXJzTW9kZURpZENoYW5nZShmcmFtZVZp
ZXctPmZyYW1lKCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDAzZWIxOTQuLmY5YTNjNmEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjkgQEAKKzIwMDktMDYtMjcgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9y
b25oYUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1
ODg5CisgICAgICAgIFtHVEtdIHNjcm9sbGJhciBwb2xpY3kgZm9yIG1haW4gZnJhbWUgaXMgbm90
IGltcGxlbWVudGFibGUKKworICAgICAgICBBZGQgcHJvcGVydGllcyBhbmQgYSBzaWduYWwgdG8g
cmVwb3J0IHNjcm9sbGJhciBwb2xpY3kgY2hhbmdlcyB0bworICAgICAgICBjbGllbnQgY29kZSwg
YW5kIGEgZGVmYXVsdCBoYW5kbGVyIHRoYXQgZG9lcyB0aGUgcmlnaHQgdGhpbmcgd2hlbgorICAg
ICAgICB1c2luZyBHdGtTY3JvbGxlZFdpbmRvdy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Ny
b2xsYmFyc01vZGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAg
ICh3ZWJraXRfd2ViX2ZyYW1lX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX2Zy
YW1lX2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfaG9yaXpvbnRh
bF9zY3JvbGxiYXJfcG9saWN5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRp
Y2FsX3Njcm9sbGJhcl9wb2xpY3kpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5o
OgorICAgICAgICAqIHRlc3RzL3Rlc3R3aW5kb3cuYzogQWRkZWQuCisgICAgICAgIChsb2FkX2Zp
bmlzaGVkX2NiKToKKyAgICAgICAgKHRlc3Rfd2Via2l0X3dpbmRvd19zY3JvbGxiYXJfcG9saWN5
KToKKyAgICAgICAgKG1haW4pOgorCisKIDIwMDktMDYtMjggIFhhbiBMb3BleiAgPHhsb3BlekBp
Z2FsaWEuY29tPgogCiAgICAgICAgIEZpeCB0aGUgR1RLKyBidWlsZC4KZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCA1MDIzZDVjLi5hODQ3NGM1
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBA
IC0zODIsNiArMzgyLDMyIEBAIHZvaWQgQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2Vk
KEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAordm9pZCBDaHJvbWVDbGllbnQ6OnNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKEZyYW1lKiBjb3Jl
RnJhbWUpIGNvbnN0Cit7CisgICAgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lID0ga2l0KGNvcmVG
cmFtZSk7CisKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViRnJhbWUpLCAiaG9yaXpv
bnRhbC1zY3JvbGxiYXItcG9saWN5Iik7CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdl
YkZyYW1lKSwgInZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3kiKTsKKworICAgIGdib29sZWFuIGlz
SGFuZGxlZDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViRnJhbWUsICJzY3JvbGxiYXJz
LXBvbGljeS1jaGFuZ2VkIiwgJmlzSGFuZGxlZCk7CisKKyAgICBpZiAoaXNIYW5kbGVkKQorICAg
ICAgICByZXR1cm47CisKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21G
cmFtZSh3ZWJGcmFtZSk7CisgICAgaWYgKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSh3
ZWJWaWV3KSAhPSB3ZWJGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3RrV2lkZ2V0KiBw
YXJlbnQgPSBndGtfd2lkZ2V0X2dldF9wYXJlbnQoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAg
aWYgKCFwYXJlbnQgfHwgIUdUS19JU19TQ1JPTExFRF9XSU5ET1cocGFyZW50KSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgZ3RrX3Njcm9sbGVkX3dpbmRvd19zZXRfcG9saWN5KEdUS19TQ1JPTExF
RF9XSU5ET1cocGFyZW50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vi
a2l0X3dlYl9mcmFtZV9nZXRfaG9yaXpvbnRhbF9zY3JvbGxiYXJfcG9saWN5KHdlYkZyYW1lKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Via2l0X3dlYl9mcmFtZV9nZXRf
dmVydGljYWxfc2Nyb2xsYmFyX3BvbGljeSh3ZWJGcmFtZSkpOworfQorCiB2b2lkIENocm9tZUNs
aWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0LCB1
bnNpZ25lZCBtb2RpZmllckZsYWdzKQogewogICAgIC8vIElmIGEgdG9vbHRpcCBtdXN0IGJlIGRp
c3BsYXllZCBpdCB3aWxsIGJlLCBhZnRlcndhcmRzLCB3aGVuCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCA4MDk3NjY1Li41NDEzMmVkIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisrKyBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTkyLDYgKzkyLDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZvcm1XaWRnZXQgcGxh
dGZvcm1XaW5kb3coKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNo
YW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Q7CiAK
KyAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKFdlYkNvcmU6OkZy
YW1lKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV2ViQ29yZTo6U3RyaW5n
Jik7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3aW5kb3cuYyBiL1dlYktpdC9n
dGsvdGVzdHMvdGVzdHdpbmRvdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmNlYmE4N2UKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3aW5kb3cu
YwpAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBDb2xsYWJvcmEg
THRkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KKwor
I2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTigyLCAxNiwgMCkgJiYgR1RLX0NIRUNLX1ZFUlNJT04oMiwg
MTQsIDApCisKK3N0YXRpYyB2b2lkIGxvYWRfZmluaXNoZWRfY2IoV2ViS2l0V2ViVmlldyogd2Vi
X3ZpZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJfZnJhbWUsIGdwb2ludGVyIGRhdGEpCit7CisgICAg
R01haW5Mb29wKiBsb29wID0gKEdNYWluTG9vcCopZGF0YTsKKworICAgIGdfbWFpbl9sb29wX3F1
aXQobG9vcCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X3dpbmRvd19zY3JvbGxiYXJf
cG9saWN5KHZvaWQpCit7CisgICAgR01haW5Mb29wKiBsb29wOworICAgIEd0a1dpZGdldCogc2Ny
b2xsZWRXaW5kb3c7CisgICAgR3RrV2lkZ2V0KiB3ZWJWaWV3OworICAgIFdlYktpdFdlYkZyYW1l
KiBtYWluRnJhbWU7CisgICAgR3RrUG9saWN5VHlwZSBob3Jpem9udGFsUG9saWN5OworICAgIEd0
a1BvbGljeVR5cGUgdmVydGljYWxQb2xpY3k7CisKKyAgICBsb29wID0gZ19tYWluX2xvb3BfbmV3
KE5VTEwsIFRSVUUpOworCisgICAgc2Nyb2xsZWRXaW5kb3cgPSBndGtfc2Nyb2xsZWRfd2luZG93
X25ldyhOVUxMLCBOVUxMKTsKKyAgICBndGtfc2Nyb2xsZWRfd2luZG93X3NldF9wb2xpY3koR1RL
X1NDUk9MTEVEX1dJTkRPVyhzY3JvbGxlZFdpbmRvdyksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdUS19QT0xJQ1lfQVVUT01BVElDLCBHVEtfUE9MSUNZX0FVVE9NQVRJQyk7
CisKKyAgICB3ZWJWaWV3ID0gd2Via2l0X3dlYl92aWV3X25ldygpOworICAgIGdfb2JqZWN0X3Jl
Zl9zaW5rKHdlYlZpZXcpOworCisgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJWaWV3LCAibG9hZC1m
aW5pc2hlZCIsCisgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLKGxvYWRfZmluaXNoZWRf
Y2IpLCBsb29wKTsKKworICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoc2Nyb2xs
ZWRXaW5kb3cpLCB3ZWJWaWV3KTsKKworICAgIG1haW5GcmFtZSA9IHdlYmtpdF93ZWJfdmlld19n
ZXRfbWFpbl9mcmFtZShXRUJLSVRfV0VCX1ZJRVcod2ViVmlldykpOworCisgICAgLyogTmV2ZXIg
Ki8KKyAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9odG1sX3N0cmluZyhXRUJLSVRfV0VCX1ZJRVco
d2ViVmlldyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxodG1sPjxi
b2R5PldlYktpdCE8L2JvZHk+PHNjcmlwdD5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
Ym9keScpWzBdLnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7PC9zY3JpcHQ+PC9odG1sPiIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGU6Ly8iKTsKKworICAgIGdf
bWFpbl9sb29wX3J1bihsb29wKTsKKworICAgIGd0a19zY3JvbGxlZF93aW5kb3dfZ2V0X3BvbGlj
eShHVEtfU0NST0xMRURfV0lORE9XKHNjcm9sbGVkV2luZG93KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJmhvcml6b250YWxQb2xpY3ksICZ2ZXJ0aWNhbFBvbGljeSk7CisK
KyAgICBnX2Fzc2VydChob3Jpem9udGFsUG9saWN5ID09IEdUS19QT0xJQ1lfTkVWRVIpOworICAg
IGdfYXNzZXJ0KHZlcnRpY2FsUG9saWN5ID09IEdUS19QT0xJQ1lfTkVWRVIpOworCisgICAgZ19h
c3NlcnQoaG9yaXpvbnRhbFBvbGljeSA9PSB3ZWJraXRfd2ViX2ZyYW1lX2dldF9ob3Jpem9udGFs
X3Njcm9sbGJhcl9wb2xpY3kobWFpbkZyYW1lKSk7CisgICAgZ19hc3NlcnQodmVydGljYWxQb2xp
Y3kgPT0gd2Via2l0X3dlYl9mcmFtZV9nZXRfdmVydGljYWxfc2Nyb2xsYmFyX3BvbGljeShtYWlu
RnJhbWUpKTsKKworICAgIC8qIEFsd2F5cyAqLworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX2h0
bWxfc3RyaW5nKFdFQktJVF9XRUJfVklFVyh3ZWJWaWV3KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiPGh0bWw+PGJvZHk+V2ViS2l0ITwvYm9keT48c2NyaXB0PmRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0uc3R5bGUub3ZlcmZsb3cgPSAnc2Ny
b2xsJzs8L3NjcmlwdD48L2h0bWw+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZmlsZTovLyIpOworCisgICAgZ19tYWluX2xvb3BfcnVuKGxvb3ApOworCisgICAgZ3Rr
X3Njcm9sbGVkX3dpbmRvd19nZXRfcG9saWN5KEdUS19TQ1JPTExFRF9XSU5ET1coc2Nyb2xsZWRX
aW5kb3cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaG9yaXpvbnRhbFBv
bGljeSwgJnZlcnRpY2FsUG9saWN5KTsKKworICAgIGdfYXNzZXJ0KGhvcml6b250YWxQb2xpY3kg
PT0gR1RLX1BPTElDWV9BTFdBWVMpOworICAgIGdfYXNzZXJ0KHZlcnRpY2FsUG9saWN5ID09IEdU
S19QT0xJQ1lfQUxXQVlTKTsKKworICAgIGdfYXNzZXJ0KGhvcml6b250YWxQb2xpY3kgPT0gd2Vi
a2l0X3dlYl9mcmFtZV9nZXRfaG9yaXpvbnRhbF9zY3JvbGxiYXJfcG9saWN5KG1haW5GcmFtZSkp
OworICAgIGdfYXNzZXJ0KHZlcnRpY2FsUG9saWN5ID09IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Zl
cnRpY2FsX3Njcm9sbGJhcl9wb2xpY3kobWFpbkZyYW1lKSk7CisKKyAgICAvKiBBdXRvICovCisg
ICAgd2Via2l0X3dlYl92aWV3X2xvYWRfaHRtbF9zdHJpbmcoV0VCS0lUX1dFQl9WSUVXKHdlYlZp
ZXcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8aHRtbD48Ym9keT5X
ZWJLaXQhPC9ib2R5PjxzY3JpcHQ+ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHkn
KVswXS5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJzs8L3NjcmlwdD48L2h0bWw+IiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsZTovLyIpOworCisgICAgZ19tYWluX2xv
b3BfcnVuKGxvb3ApOworCisgICAgZ3RrX3Njcm9sbGVkX3dpbmRvd19nZXRfcG9saWN5KEdUS19T
Q1JPTExFRF9XSU5ET1coc2Nyb2xsZWRXaW5kb3cpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmaG9yaXpvbnRhbFBvbGljeSwgJnZlcnRpY2FsUG9saWN5KTsKKworICAgIGdf
YXNzZXJ0KGhvcml6b250YWxQb2xpY3kgPT0gR1RLX1BPTElDWV9BVVRPTUFUSUMpOworICAgIGdf
YXNzZXJ0KHZlcnRpY2FsUG9saWN5ID09IEdUS19QT0xJQ1lfQVVUT01BVElDKTsKKworICAgIGdf
YXNzZXJ0KGhvcml6b250YWxQb2xpY3kgPT0gd2Via2l0X3dlYl9mcmFtZV9nZXRfaG9yaXpvbnRh
bF9zY3JvbGxiYXJfcG9saWN5KG1haW5GcmFtZSkpOworICAgIGdfYXNzZXJ0KHZlcnRpY2FsUG9s
aWN5ID09IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2FsX3Njcm9sbGJhcl9wb2xpY3kobWFp
bkZyYW1lKSk7CisKKyAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKK30KKworaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIGdfdGhyZWFkX2luaXQoTlVMTCk7CisgICAg
Z3RrX3Rlc3RfaW5pdCgmYXJnYywgJmFyZ3YsIE5VTEwpOworCisgICAgZ190ZXN0X2J1Z19iYXNl
KCJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8iKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJr
aXQvd2luZG93L3Njcm9sbGJhcl9wb2xpY3kiLCB0ZXN0X3dlYmtpdF93aW5kb3dfc2Nyb2xsYmFy
X3BvbGljeSk7CisgICAgcmV0dXJuIGdfdGVzdF9ydW4gKCk7Cit9CisKKyNlbHNlCitpbnQgbWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgZ19jcml0aWNhbCgiWW91IHdpbGwgbmVl
ZCBhdCBsZWFzdCBnbGliLTIuMTYuMCBhbmQgZ3RrLTIuMTQuMCB0byBydW4gdGhlIHVuaXQgdGVz
dHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOworICAgIHJldHVybiAwOworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBiL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAppbmRleCAyNmZlZDgzLi4wMDI0OGI2IDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCkBAIC04MCw2ICs4MCw3IEBAIGVudW0gewog
ICAgIExPQURfRE9ORSwKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJfTElO
SywKKyAgICBTQ1JPTExCQVJTX1BPTElDWV9DSEFOR0VELAogICAgIExBU1RfU0lHTkFMCiB9Owog
CkBAIC04OSw3ICs5MCw5IEBAIGVudW0gewogICAgIFBST1BfTkFNRSwKICAgICBQUk9QX1RJVExF
LAogICAgIFBST1BfVVJJLAotICAgIFBST1BfTE9BRF9TVEFUVVMKKyAgICBQUk9QX0xPQURfU1RB
VFVTLAorICAgIFBST1BfSE9SSVpPTlRBTF9TQ1JPTExCQVJfUE9MSUNZLAorICAgIFBST1BfVkVS
VElDQUxfU0NST0xMQkFSX1BPTElDWQogfTsKIAogc3RhdGljIGd1aW50IHdlYmtpdF93ZWJfZnJh
bWVfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CkBAIC0xMTMsNiArMTE2LDEyIEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcF9pZCwgR1ZhbHVlCiAgICAgY2FzZSBQUk9QX0xPQURfU1RBVFVTOgogICAgICAg
ICBnX3ZhbHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0YXR1
cyhmcmFtZSkpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfSE9SSVpPTlRBTF9TQ1JP
TExCQVJfUE9MSUNZOgorICAgICAgICBnX3ZhbHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3koZnJhbWUpKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBQUk9QX1ZFUlRJQ0FMX1NDUk9MTEJBUl9QT0xJQ1k6CisgICAgICAg
IGdfdmFsdWVfc2V0X2VudW0odmFsdWUsIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2FsX3Nj
cm9sbGJhcl9wb2xpY3koZnJhbWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwg
cHNwZWMpOwogICAgICAgICBicmVhazsKQEAgLTIwOSw2ICsyMTgsMzEgQEAgc3RhdGljIHZvaWQg
d2Via2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZyYW1lQ2xhc3MqIGZyYW1lQ2xh
c3MpCiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAgICAgIEdfVFlQRV9TVFJJ
TkcsIEdfVFlQRV9TVFJJTkcpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViRnJhbWU6OnNj
cm9sbGJhcnMtcG9saWN5LWNoYW5nZWQ6CisgICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IHdo
aWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKKyAgICAgKgorICAgICAqIFNpZ25hbCBlbWl0dGVkIHdo
ZW4gcG9saWN5IGZvciBvbmUgb3IgYm90aCBvZiB0aGUgc2Nyb2xsYmFycyBvZgorICAgICAqIHRo
ZSB2aWV3IGhhcyBjaGFuZ2VkLiBUaGUgZGVmYXVsdCBoYW5kbGVyIHdpbGwgYXBwbHkgdGhlIG5l
dworICAgICAqIHBvbGljeSB0byB0aGUgY29udGFpbmVyIHRoYXQgaG9sZHMgdGhlICNXZWJLaXRX
ZWJGcmFtZSBpZiBpdCBpcworICAgICAqIGEgI0d0a1Njcm9sbGVkV2luZG93LiBJZiB5b3UgZG8g
bm90IHdhbnQgdGhpcyB0byBiZSBoYW5kbGVkCisgICAgICogYXV0b21hdGljYWxseSwgeW91IG5l
ZWQgdG8gaGFuZGxlIHRoaXMgc2lnbmFsLgorICAgICAqCisgICAgICogWW91IGNhbiBvYnRhaW4g
dGhlIG5ldyBwb2xpY2llcyBmcm9tIHRoZQorICAgICAqIFdlYktpdFdlYkZyYW1lOmhvcml6b250
YWwtc2Nyb2xsYmFyLXBvbGljeSBhbmQKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTp2ZXJ0aWNhbC1z
Y3JvbGxiYXItcG9saWN5IHByb3BlcnRpZXMuCisgICAgICoKKyAgICAgKiBTaW5jZTogMS4xLjkK
KyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbU0NST0xMQkFSU19QT0xJQ1lf
Q0hBTkdFRF0gPSBnX3NpZ25hbF9uZXcoInNjcm9sbGJhcnMtcG9saWN5LWNoYW5nZWQiLAorICAg
ICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1Np
Z25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAg
ICAgICAwLAorICAgICAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLAor
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX1ZP
SUQsCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMCk7CisKICAgICAvKgogICAgICAqIGlt
cGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KQEAgLTI1NSw2ICsyODks
NDIgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZy
YW1lQ2xhc3MqIGZyYW1lQ2xhc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfTE9BRF9GSU5JU0hFRCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
QUJMRSkpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViRnJhbWU6aG9yaXpvbnRhbC1zY3Jv
bGxiYXItcG9saWN5OgorICAgICAqCisgICAgICogRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBwb2xp
Y3kgZm9yIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBvZgorICAgICAqIHRoZSBmcmFtZS4gRm9y
IHRoZSBtYWluIGZyYW1lLCBtYWtlIHN1cmUgdG8gc2V0IHRoZSBzYW1lIHBvbGljeQorICAgICAq
IG9uIHRoZSBzY3JvbGxhYmxlIHdpZGdldCBjb250YWluaW5nIHRoZSAjV2ViS2l0V2ViVmlldywg
dW5sZXNzCisgICAgICogeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLgorICAgICAqCisgICAg
ICogU2luY2U6IDEuMS4xMQorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkob2JqZWN0Q2xhc3MsIFBST1BfSE9SSVpPTlRBTF9TQ1JPTExCQVJfUE9MSUNZLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2VudW0oImhvcml6
b250YWwtc2Nyb2xsYmFyLXBvbGljeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfKCJIb3Jpem9udGFsIFNjcm9sbGJhciBQb2xpY3kiKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
IkRldGVybWluZXMgdGhlIGN1cnJlbnQgcG9saWN5IGZvciB0aGUgaG9yaXpvbnRhbCBzY3JvbGxi
YXIgb2YgdGhlIGZyYW1lLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1RLX1RZUEVfUE9MSUNZX1RZUEUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfUE9MSUNZX0FVVE9NQVRJ
QywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViRnJh
bWU6dmVydGljYWwtc2Nyb2xsYmFyLXBvbGljeToKKyAgICAgKgorICAgICAqIERldGVybWluZXMg
dGhlIGN1cnJlbnQgcG9saWN5IGZvciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIG9mCisgICAgICog
dGhlIGZyYW1lLiBGb3IgdGhlIG1haW4gZnJhbWUsIG1ha2Ugc3VyZSB0byBzZXQgdGhlIHNhbWUg
cG9saWN5CisgICAgICogb24gdGhlIHNjcm9sbGFibGUgd2lkZ2V0IGNvbnRhaW5pbmcgdGhlICNX
ZWJLaXRXZWJWaWV3LCB1bmxlc3MKKyAgICAgKiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcu
CisgICAgICoKKyAgICAgKiBTaW5jZTogMS4xLjExCisgICAgICovCisgICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9WRVJUSUNBTF9TQ1JPTExCQVJf
UE9MSUNZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVj
X2VudW0oInZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3kiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVmVydGljYWwgU2Nyb2xsYmFyIFBv
bGljeSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXygiRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBwb2xpY3kgZm9yIHRoZSB2ZXJ0aWNhbCBz
Y3JvbGxiYXIgb2YgdGhlIGZyYW1lLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1RZUEVfUE9MSUNZX1RZUEUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfUE9MSUNZX0FV
VE9NQVRJQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCiAgICAgZ190eXBlX2NsYXNzX2FkZF9w
cml2YXRlKGZyYW1lQ2xhc3MsIHNpemVvZihXZWJLaXRXZWJGcmFtZVByaXZhdGUpKTsKIH0KIApA
QCAtODM1LDMgKzkwNSw0MyBAQCB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfY2xlYXJfbWFpbl9mcmFt
ZV9uYW1lKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKIAogICAgIGNvcmUoZnJhbWUpLT50cmVlKCkt
PmNsZWFyTmFtZSgpOwogfQorCitHdGtQb2xpY3lUeXBlIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2hv
cml6b250YWxfc2Nyb2xsYmFyX3BvbGljeShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIEdUS19QT0xJ
Q1lfQVVUT01BVElDKTsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAg
ICBGcmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisg
ICAgICAgIHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKKworICAgIFNjcm9sbGJhck1vZGUg
aE1vZGUgPSB2aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSgpOworCisgICAgaWYgKGhNb2Rl
ID09IFNjcm9sbGJhckFsd2F5c09uKQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9BTFdBWVM7
CisKKyAgICBpZiAoaE1vZGUgPT0gU2Nyb2xsYmFyQWx3YXlzT2ZmKQorICAgICAgICByZXR1cm4g
R1RLX1BPTElDWV9ORVZFUjsKKworICAgIHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKK30K
KworR3RrUG9saWN5VHlwZSB3ZWJraXRfd2ViX2ZyYW1lX2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJf
cG9saWN5KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgR1RLX1BPTElDWV9BVVRPTUFUSUMpOworCisg
ICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEZyYW1lVmlldyogdmlldyA9
IGNvcmVGcmFtZS0+dmlldygpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIEdUS19Q
T0xJQ1lfQVVUT01BVElDOworCisgICAgU2Nyb2xsYmFyTW9kZSB2TW9kZSA9IHZpZXctPnZlcnRp
Y2FsU2Nyb2xsYmFyTW9kZSgpOworCisgICAgaWYgKHZNb2RlID09IFNjcm9sbGJhckFsd2F5c09u
KQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9BTFdBWVM7CisKKyAgICBpZiAodk1vZGUgPT0g
U2Nyb2xsYmFyQWx3YXlzT2ZmKQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9ORVZFUjsKKwor
ICAgIHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJm
cmFtZS5oCmluZGV4IGIyZTYxYjkuLjE3ZjNkYzUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJh
bWUuaApAQCAtNTEsNiArNTEsNyBAQCBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lQ2xhc3MgewogICAg
IEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiAKICAgICAvKjwgcHVibGljID4qLworCiAgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CiAgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQyKSAodm9pZCk7CiAgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7CkBA
IC0xNTIsNiArMTUzLDEyIEBAIHdlYmtpdF93ZWJfZnJhbWVfcHJpbnQgICAgICAgICAgICAgIChX
ZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogV0VCS0lUX0FQSSBXZWJLaXRMb2FkU3RhdHVz
CiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0YXR1cyAgICAoV2ViS2l0V2ViRnJhbWUgICAg
ICAgKmZyYW1lKTsKIAorV0VCS0lUX0FQSSBHdGtQb2xpY3lUeXBlCit3ZWJraXRfd2ViX2ZyYW1l
X2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3kgKFdlYktpdFdlYkZyYW1lICAgICAgICAq
ZnJhbWUpOworCitXRUJLSVRfQVBJIEd0a1BvbGljeVR5cGUKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0
X3ZlcnRpY2FsX3Njcm9sbGJhcl9wb2xpY3kgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgICpmcmFt
ZSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFu
Z2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkNmI2MmIzLi4zODBkNDFmIDEwMDY0
NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDA5LTA2LTI3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTg4OQorICAgICAgICBbR1RLXSBzY3JvbGxiYXIgcG9saWN5IGZvciBtYWluIGZyYW1l
IGlzIG5vdCBpbXBsZW1lbnRhYmxlCisKKyAgICAgICAgQWRkIGVtcHR5IGltcGxlbWVudGF0aW9u
IGZvciBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzY3JvbGxiYXJz
TW9kZURpZENoYW5nZSk6CisKIDIwMDktMDYtMjkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOGRhYWQxMy4uZmEx
YWNkZSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBA
IC05OSw2ICs5OSw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVz
YmFyVGV4dChjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGxiYXJzTW9kZURpZENoYW5nZShGcmFtZSopIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBt
b3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5z
aWduZWQgbW9kaWZpZXJGbGFncyk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25z
dCBXZWJDb3JlOjpTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGRmZmE1ZTUuLjQ3Nzg2MGMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDA5LTA2LTI3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFA
Y29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg4OQor
ICAgICAgICBbR1RLXSBzY3JvbGxiYXIgcG9saWN5IGZvciBtYWluIGZyYW1lIGlzIG5vdCBpbXBs
ZW1lbnRhYmxlCisKKyAgICAgICAgQWRkIGVtcHR5IGltcGxlbWVudGF0aW9uIGZvciBuZXcgQ2hy
b21lQ2xpZW50IG1ldGhvZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6c2Nyb2xsYmFyc01vZGVE
aWRDaGFuZ2UpOgorCiAyMDA5LTA2LTI5ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBGaXggdGhlIFF0IGJ1aWxkLCBhZGQgbWlzc2luZyBpc1Nw
ZWFraW5nKCkgaW1wbGVtZW50YXRpb24gdG8KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmgKaW5kZXggOWYyYzFiNS4uY2M4NzkyZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTEwOCw2ICsxMDgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZvcm1XaWRnZXQgcGxhdGZvcm1XaW5kb3coKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBj
b25zdCBJbnRTaXplJikgY29uc3Q7CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNN
b2RlRGlkQ2hhbmdlKEZyYW1lKikgY29uc3QgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBtb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZp
ZXJGbGFncyk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5n
Jik7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdl
TG9nCmluZGV4IDcyMzRhNDcuLmZkZmI3MzEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDYt
MjcgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28u
dWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODg5CisgICAgICAgIFtHVEtd
IHNjcm9sbGJhciBwb2xpY3kgZm9yIG1haW4gZnJhbWUgaXMgbm90IGltcGxlbWVudGFibGUKKwor
ICAgICAgICBBZGQgZW1wdHkgaW1wbGVtZW50YXRpb24gZm9yIG5ldyBDaHJvbWVDbGllbnQgbWV0
aG9kLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OnNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKToKKwogMjAwOS0w
Ni0yOSAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCBiOWQwMDlhLi5iZmZlY2E3IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTk2LDYgKzk2LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgUGxhdGZvcm1XaWRnZXQgcGxhdGZvcm1XaW5kb3coKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmKSBjb25zdDsKIAorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENo
YW5nZShGcmFtZSopIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVy
RWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJG
bGFncyk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXZWJDb3JlOjpTdHJp
bmcmKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hhbmdl
TG9nCmluZGV4IDdiYmE2OWEuLjNhZTRlYTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDA5LTA2LTI3
ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVr
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg4OQorICAgICAgICBbR1RLXSBz
Y3JvbGxiYXIgcG9saWN5IGZvciBtYWluIGZyYW1lIGlzIG5vdCBpbXBsZW1lbnRhYmxlCisKKyAg
ICAgICAgQWRkIGVtcHR5IGltcGxlbWVudGF0aW9uIGZvciBuZXcgQ2hyb21lQ2xpZW50IG1ldGhv
ZC4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudFd4OjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZSk6CisKIDIw
MDktMDYtMDkgIEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAg
ICAgICAgd3ggYnVpbGQgZml4LCBhZGRpbmcgSlNDb3JlL2Fzc2VtYmxlciB0byB0aGUgbGlzdCBv
ZiBpbmNsdWRlIGRpcnMuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJv
bWVDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApp
bmRleCBiNmUxMDM2Li45N2QzY2RkIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNs
aWVudFd4LmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9y
bVdpZGdldCBwbGF0Zm9ybVdpbmRvdygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50
c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OwogCisgICAgdmlydHVh
bCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKEZyYW1lKikgY29uc3QgeyB9CiAgICAgdmly
dHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1
bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNv
bnN0IFN0cmluZyYpOwo=
</data>
<flag name="review"
          id="16553"
          type_id="1"
          status="-"
          setter="jmalonzo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38691</attachid>
            <date>2009-08-27 14:55:12 -0700</date>
            <delta_ts>2009-08-28 07:30:29 -0700</delta_ts>
            <desc>report scrollbar policy</desc>
            <filename>0001-report-scrollbar-policy.patch</filename>
            <type>text/plain</type>
            <size>29364</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSAwOTI1MzAyNTgyMzdmM2QzM2JjOWI3YzhlNWFhNmFjYmI3MDQxODgwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGtvdkBkZWJpYW4ub3Jn
PgpEYXRlOiBXZWQsIDIwIE1heSAyMDA5IDExOjIwOjUzIC0wMzAwClN1YmplY3Q6IFtQQVRDSF0g
cmVwb3J0IHNjcm9sbGJhciBwb2xpY3kKCi0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysKIEdOVW1ha2VmaWxlLmFtICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysrCiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaCAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvcGFnZS9DaHJvbWUuY3BwICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKwogV2ViQ29yZS9wYWdlL0Nocm9tZS5oICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5o
ICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cCAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmll
d0d0ay5jcHAgICAgICAgIHwgICAyOSArKysrKysKIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMjUgKysrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcCB8ICAgMjIgKysrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggICB8ICAgIDEgKwogV2ViS2l0L2d0ay90ZXN0cy90ZXN0
d2luZG93LmMgICAgICAgICAgICAgICAgIHwgIDEyNSArKysrKysrKysrKysrKysrKysrKysrKysr
CiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgICAgICAgICAgfCAgMTEyICsr
KysrKysrKysrKysrKysrKysrKystCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5o
ICAgICAgICAgICAgfCAgICA2ICsKIFdlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTIgKysrCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oICAgfCAgICAxICsKIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTIgKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaCAgICAgfCAgICAxICsKIFdlYktpdC93aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTIgKysrCiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oICAgfCAgICAxICsKIFdlYktpdC93eC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTIgKysrCiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGll
bnRXeC5oICAgICAgfCAgICAxICsKIDI0IGZpbGVzIGNoYW5nZWQsIDQyMCBpbnNlcnRpb25zKCsp
LCAyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvdGVzdHMvdGVz
dHdpbmRvdy5jCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGIzNThi
OTQuLjZhMjI4MjYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAwOS0wOC0yMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5u
b3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjU4ODkKKyAgICAgICAgW0dUS10gc2Nyb2xsYmFyIHBvbGljeSBmb3IgbWFpbiBmcmFtZSBpcyBu
b3QgaW1wbGVtZW50YWJsZQorCisgICAgICAgIEFkZGluZyBmaWxlcyBmb3IgdGhlIG5ldyB0ZXN0
IGZvciB3aW5kb3ctcmVsYXRlZCBpc3N1ZXMgKHN0YXJ0aW5nCisgICAgICAgIHdpdGggc2Nyb2xs
YmFyIHBvbGljeSkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKwogMjAwOS0wOC0yNyAg
UHJpaXQgTGFlcyAgPHBsYWVzQHBsYWVzLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4g
TG9wZXouCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmluZGV4
IDVkY2JiODUuLjk1Mzc4MDEgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dOVW1h
a2VmaWxlLmFtCkBAIC01MjMsNiArNTIzLDcgQEAgVEVTVF9QUk9HUyArPSBQcm9ncmFtcy91bml0
dGVzdHMvdGVzdGh0dHBiYWNrZW5kIFwKIAlQcm9ncmFtcy91bml0dGVzdHMvdGVzdHdlYmZyYW1l
IFwKIAlQcm9ncmFtcy91bml0dGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdCBcCiAJUHJvZ3Jh
bXMvdW5pdHRlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbSBcCisJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rl
c3R3aW5kb3cgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0ZG93bmxvYWQgXAogCVByb2dyYW1z
L3VuaXR0ZXN0cy90ZXN0YXRrIFwKIAlQcm9ncmFtcy91bml0dGVzdHMvdGVzdHdlYnNldHRpbmdz
CkBAIC01NTgsNiArNTU5LDExIEBAIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0d2ViaGlzdG9yeWl0
ZW1fQ0ZMQUdTID0gJCh3ZWJraXRfdGVzdHNfY2ZsYWdzKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rl
c3R3ZWJoaXN0b3J5aXRlbV9MREFERCA9ICQod2Via2l0X3Rlc3RzX2xkYWRkKQogUHJvZ3JhbXNf
dW5pdHRlc3RzX3Rlc3R3ZWJoaXN0b3J5aXRlbV9MREZMQUdTID0gJCh3ZWJraXRfdGVzdHNfbGRm
bGFncykKIAorUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3aW5kb3dfU09VUkNFUyA9IFdlYktpdC9n
dGsvdGVzdHMvdGVzdHdpbmRvdy5jCitQcm9ncmFtc191bml0dGVzdHNfdGVzdHdpbmRvd19DRkxB
R1MgPSAkKHdlYmtpdF90ZXN0c19jZmxhZ3MpCitQcm9ncmFtc191bml0dGVzdHNfdGVzdHdpbmRv
d19MREFERCA9ICQod2Via2l0X3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3
aW5kb3dfTERGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2xkZmxhZ3MpCisKIFByb2dyYW1zX3VuaXR0
ZXN0c190ZXN0ZG93bmxvYWRfU09VUkNFUyA9IFdlYktpdC9ndGsvdGVzdHMvdGVzdGRvd25sb2Fk
LmMKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0ZG93bmxvYWRfQ0ZMQUdTID0gJCh3ZWJraXRfdGVz
dHNfY2ZsYWdzKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3Rkb3dubG9hZF9MREFERCA9ICQod2Vi
a2l0X3Rlc3RzX2xkYWRkKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBiMWFmMTgzLi43MmM2ZjRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDA5LTA4
LTIwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNv
LnVrPgorCisJUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODg5CisgICAgICAgIFtHVEtdIHNjcm9s
bGJhciBwb2xpY3kgZm9yIG1haW4gZnJhbWUgaXMgbm90IGltcGxlbWVudGFibGUKKworICAgICAg
ICBPdmVycmlkZSBzZXRTY3JvbGxiYXJNb2RlcyB0byBjb3JyZWN0bHkgZm9yd2FyZCBzY3JvbGxi
YXIgbW9kZXMKKyAgICAgICAgcG9saWN5IGNoYW5nZXMgdG8gY2xpZW50IGNvZGUsIHZpYSBhIG5l
dyBwbGF0Zm9ybS1zcGVjaWZpYyBtZXRob2QsCisgICAgICAgIHNjcm9sbGJhcnNQb2xpY3lEaWRD
aGFuZ2UuCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50OjpzY3JvbGxiYXJzUG9saWN5RGlkQ2hhbmdlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmNy
ZWF0ZVNjcm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbFZpZXc6OnNldFNjcm9sbGJhck1vZGVzKToKKwogMjAwOS0wOC0yNyAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkg
R2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYTk5ZmQzYi4uZjUxNjFkOCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKQEAgLTEyMyw2ICsxMjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQ
bGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRvdygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2
aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUmKSBj
b25zdCB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNv
bnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBI
aXRUZXN0UmVzdWx0JiwgdW5zaWduZWQpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xU
aXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVjdGlvbikgeyB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcCBiL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IGJjZmVmNzku
Ljc2MmRkOGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1dlYkNv
cmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0xMDIsNiArMTAyLDExIEBAIHZvaWQgQ2hyb21lOjpzY3Jv
bGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgU2Nyb2xsVmlldyogc2Ny
b2xsVmllCiAgICAgbV9jbGllbnQtPnNjcm9sbFJlY3RJbnRvVmlldyhyZWN0LCBzY3JvbGxWaWV3
KTsKIH0KIAordm9pZCBDaHJvbWU6OnNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QKK3sK
KyAgICBtX2NsaWVudC0+c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKTsKK30KKwogdm9pZCBDaHJv
bWU6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAogewogICAgIG1f
Y2xpZW50LT5zZXRXaW5kb3dSZWN0KHJlY3QpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0No
cm9tZS5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IGUyODY2MWMuLjc5ZDNlY2EgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKQEAgLTY1LDYgKzY1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0OwogICAgICAgICB2
aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2luZG93KCkgY29uc3Q7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYsIGNvbnN0IFNjcm9s
bFZpZXcqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hh
bmdlKCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMTAxMDI3My4uYWU5
YjdmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTMzLDYgKzEzMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRS
ZWN0JiwgY29uc3QgU2Nyb2xsVmlldyopIGNvbnN0ID0gMDsgLy8gQ3VycmVudGx5IG9ubHkgTWFj
IGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KICAgICAgICAgLy8gRW5kIG1ldGhvZHMg
dXNlZCBieSBIb3N0V2luZG93LgogCisgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9k
ZURpZENoYW5nZSgpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdz
KSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwg
VGV4dERpcmVjdGlvbikgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2lu
ZG93LmggYi9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCAzYTAyNGRlLi44Yzc0
ZDRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaApAQCAtNTQsNiArNTQsOSBAQCBwdWJsaWM6CiAgICAg
Ly8gRm9yIHNjcm9sbGluZyBhIHJlY3QgaW50byB2aWV3IHJlY3Vyc2l2ZWx5LiAgVXNlZnVsIGlu
IHRoZSBjYXNlcyB3aGVyZSBhIFdlYlZpZXcgaXMgZW1iZWRkZWQgaW5zaWRlIHNvbWUgY29udGFp
bmluZwogICAgIC8vIHBsYXRmb3JtLXNwZWNpZmljIFNjcm9sbFZpZXcuCiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JiwgY29uc3QgU2Nyb2xsVmlldyop
IGNvbnN0ID0gMDsKKworICAgIC8vIFRvIG5vdGlmeSBXZWJLaXQgb2Ygc2Nyb2xsYmFyIG1vZGUg
Y2hhbmdlcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25z
dCA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cAppbmRleCA2YmJmYzI3Li45NGRmNTEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTEw
Niw3ICsxMDYsNiBAQCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gU2Nyb2xsVmlldzo6Y3JlYXRlU2Ny
b2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aQogewogICAgIHJldHVybiBTY3Jv
bGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJhcih0aGlzLCBvcmllbnRhdGlvbiwgUmVndWxhclNj
cm9sbGJhcik7CiB9Ci0jZW5kaWYKIAogdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJNb2Rl
cyhTY3JvbGxiYXJNb2RlIGhvcml6b250YWxNb2RlLCBTY3JvbGxiYXJNb2RlIHZlcnRpY2FsTW9k
ZSkKIHsKQEAgLTExOSw2ICsxMTgsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbGJhck1v
ZGVzKFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1vZGUsIFNjcm9sbGJhck1vZGUgdgogICAgIGVs
c2UKICAgICAgICAgdXBkYXRlU2Nyb2xsYmFycyhzY3JvbGxPZmZzZXQoKSk7CiB9CisjZW5kaWYK
IAogdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJNb2RlJiBob3Jpem9u
dGFsTW9kZSwgU2Nyb2xsYmFyTW9kZSYgdmVydGljYWxNb2RlKSBjb25zdAogewpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAppbmRleCAwZTgxMWVmLi45MTQzOGUxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcApAQCAtMzEsMTAgKzMxLDE0IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgogCisjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNp
bmNsdWRlICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJHdGsuaCIKQEAgLTE0Miw0ICsxNDYs
MjkgQEAgSW50UmVjdCBTY3JvbGxWaWV3Ojp2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRl
U2Nyb2xsYmFycykgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVkV2lk
Z2V0LT5hbGxvY2F0aW9uLmhlaWdodCkpOwogfQogCit2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9s
bGJhck1vZGVzKFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbE1vZGUsIFNjcm9sbGJhck1vZGUgdmVy
dGljYWxNb2RlKQoreworICAgIGlmIChob3Jpem9udGFsTW9kZSA9PSBtX2hvcml6b250YWxTY3Jv
bGxiYXJNb2RlICYmIHZlcnRpY2FsTW9kZSA9PSBtX3ZlcnRpY2FsU2Nyb2xsYmFyTW9kZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSA9IGhvcml6b250
YWxNb2RlOworICAgIG1fdmVydGljYWxTY3JvbGxiYXJNb2RlID0gdmVydGljYWxNb2RlOworCisg
ICAgLy8gV2UgZG9uJ3QgcmVhbGx5IGNhcmUgYWJvdXQgcmVwb3J0aW5nIHBvbGljeSBjaGFuZ2Vz
IG9uIGZyYW1lcworICAgIC8vIHRoYXQgaGF2ZSBubyBhZGp1c3RtZW50cyBhdHRhY2hlZCB0byB0
aGVtLgorICAgIGlmICghbV9ob3Jpem9udGFsQWRqdXN0bWVudCkgeworICAgICAgICB1cGRhdGVT
Y3JvbGxiYXJzKHNjcm9sbE9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICghaXNGcmFtZVZpZXcoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRm9yIGZyYW1l
cyB0aGF0IGRvIGhhdmUgYWRqdXN0bWVudHMgYXR0YWNoZWQsIHdlIHdhbnQgdG8gcmVwb3J0Cisg
ICAgLy8gcG9saWN5IGNoYW5nZXMsIHNvIHRoYXQgdGhleSBtYXkgYmUgYXBwbGllZCB0byB0aGUg
d2lkZ2V0IHRvCisgICAgLy8gd2hpY2ggdGhlIFdlYlZpZXcgaGFzIGJlZW4gYWRkZWQsIGZvciBp
bnN0YW5jZS4KKyAgICBpZiAoaG9zdFdpbmRvdygpKQorICAgICAgICBob3N0V2luZG93KCktPnNj
cm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNGQ2NGNjOC4uMTVhYzE3NiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOCBAQAorMjAwOS0wOC0yMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8
Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU4ODkKKyAgICAgICAgW0dUS10gc2Nyb2xsYmFyIHBvbGljeSBmb3IgbWFpbiBm
cmFtZSBpcyBub3QgaW1wbGVtZW50YWJsZQorCisgICAgICAgIEFkZCBwcm9wZXJ0aWVzIGFuZCBh
IHNpZ25hbCB0byByZXBvcnQgc2Nyb2xsYmFyIHBvbGljeSBjaGFuZ2VzIHRvCisgICAgICAgIGNs
aWVudCBjb2RlLCBhbmQgYSBkZWZhdWx0IGhhbmRsZXIgdGhhdCBkb2VzIHRoZSByaWdodCB0aGlu
ZyB3aGVuCisgICAgICAgIHVzaW5nIEd0a1Njcm9sbGVkV2luZG93LgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50OjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cDoKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3kpOgorICAgICAgICAod2Via2l0X3dlYl9mcmFt
ZV9nZXRfdmVydGljYWxfc2Nyb2xsYmFyX3BvbGljeSk6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmg6CisgICAgICAgICogdGVzdHMvdGVzdHdpbmRvdy5jOiBBZGRlZC4KKyAgICAg
ICAgKGxvYWRfZmluaXNoZWRfY2IpOgorICAgICAgICAodGVzdF93ZWJraXRfd2luZG93X3Njcm9s
bGJhcl9wb2xpY3kpOgorICAgICAgICAobWFpbik6CisKIDIwMDktMDgtMjYgIFhhbiBMb3BleiAg
PHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25o
YS4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRl
eCAxN2ExNjNiLi45NjdkMzdhIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwCkBAIC00MDIsNiArNDAyLDI4IEBAIHZvaWQgQ2hyb21lQ2xpZW50Ojpj
b250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29u
c3QKICAgICAgICAgZ3RrX3dpZGdldF9xdWV1ZV9yZXNpemVfbm9fcmVkcmF3KHdpZGdldCk7CiB9
CiAKK3ZvaWQgQ2hyb21lQ2xpZW50OjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0Cit7
CisgICAgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lID0gd2Via2l0X3dlYl92aWV3X2dldF9tYWlu
X2ZyYW1lKG1fd2ViVmlldyk7CisKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViRnJh
bWUpLCAiaG9yaXpvbnRhbC1zY3JvbGxiYXItcG9saWN5Iik7CisgICAgZ19vYmplY3Rfbm90aWZ5
KEdfT0JKRUNUKHdlYkZyYW1lKSwgInZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3kiKTsKKworICAg
IGdib29sZWFuIGlzSGFuZGxlZDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViRnJhbWUs
ICJzY3JvbGxiYXJzLXBvbGljeS1jaGFuZ2VkIiwgJmlzSGFuZGxlZCk7CisKKyAgICBpZiAoaXNI
YW5kbGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBHdGtXaWRnZXQqIHBhcmVudCA9IGd0a193
aWRnZXRfZ2V0X3BhcmVudChHVEtfV0lER0VUKG1fd2ViVmlldykpOworICAgIGlmICghcGFyZW50
IHx8ICFHVEtfSVNfU0NST0xMRURfV0lORE9XKHBhcmVudCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGd0a19zY3JvbGxlZF93aW5kb3dfc2V0X3BvbGljeShHVEtfU0NST0xMRURfV0lORE9XKHBh
cmVudCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X2hvcml6b250YWxfc2Nyb2xsYmFyX3BvbGljeSh3ZWJGcmFtZSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2FsX3Nj
cm9sbGJhcl9wb2xpY3kod2ViRnJhbWUpKTsKK30KKwogdm9pZCBDaHJvbWVDbGllbnQ6Om1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdCwgdW5zaWduZWQgbW9k
aWZpZXJGbGFncykKIHsKICAgICAvLyBJZiBhIHRvb2x0aXAgbXVzdCBiZSBkaXNwbGF5ZWQgaXQg
d2lsbCBiZSwgYWZ0ZXJ3YXJkcywgd2hlbgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmgKaW5kZXggMGYzNWU1Mi4uOWFmYTAyMiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBAIC05Miw2ICs5Miw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2luZG93
KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNv
cmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OwogCisgICAgICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0OwogICAgICAgICB2aXJ0
dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXRUb29sVGlwKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24p
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2luZG93LmMgYi9XZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3R3aW5kb3cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j
ZWJhODdlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2luZG93LmMK
QEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQ29sbGFib3JhIEx0
ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CisKKyNp
ZiBHTElCX0NIRUNLX1ZFUlNJT04oMiwgMTYsIDApICYmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0
LCAwKQorCitzdGF0aWMgdm9pZCBsb2FkX2ZpbmlzaGVkX2NiKFdlYktpdFdlYlZpZXcqIHdlYl92
aWV3LCBXZWJLaXRXZWJGcmFtZSogd2ViX2ZyYW1lLCBncG9pbnRlciBkYXRhKQoreworICAgIEdN
YWluTG9vcCogbG9vcCA9IChHTWFpbkxvb3AqKWRhdGE7CisKKyAgICBnX21haW5fbG9vcF9xdWl0
KGxvb3ApOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF93aW5kb3dfc2Nyb2xsYmFyX3Bv
bGljeSh2b2lkKQoreworICAgIEdNYWluTG9vcCogbG9vcDsKKyAgICBHdGtXaWRnZXQqIHNjcm9s
bGVkV2luZG93OworICAgIEd0a1dpZGdldCogd2ViVmlldzsKKyAgICBXZWJLaXRXZWJGcmFtZSog
bWFpbkZyYW1lOworICAgIEd0a1BvbGljeVR5cGUgaG9yaXpvbnRhbFBvbGljeTsKKyAgICBHdGtQ
b2xpY3lUeXBlIHZlcnRpY2FsUG9saWN5OworCisgICAgbG9vcCA9IGdfbWFpbl9sb29wX25ldyhO
VUxMLCBUUlVFKTsKKworICAgIHNjcm9sbGVkV2luZG93ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19u
ZXcoTlVMTCwgTlVMTCk7CisgICAgZ3RrX3Njcm9sbGVkX3dpbmRvd19zZXRfcG9saWN5KEdUS19T
Q1JPTExFRF9XSU5ET1coc2Nyb2xsZWRXaW5kb3cpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHVEtfUE9MSUNZX0FVVE9NQVRJQywgR1RLX1BPTElDWV9BVVRPTUFUSUMpOwor
CisgICAgd2ViVmlldyA9IHdlYmtpdF93ZWJfdmlld19uZXcoKTsKKyAgICBnX29iamVjdF9yZWZf
c2luayh3ZWJWaWV3KTsKKworICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViVmlldywgImxvYWQtZmlu
aXNoZWQiLAorICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyhsb2FkX2ZpbmlzaGVkX2Ni
KSwgbG9vcCk7CisKKyAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHNjcm9sbGVk
V2luZG93KSwgd2ViVmlldyk7CisKKyAgICBtYWluRnJhbWUgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X21haW5fZnJhbWUoV0VCS0lUX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIC8qIE5ldmVyICov
CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfaHRtbF9zdHJpbmcoV0VCS0lUX1dFQl9WSUVXKHdl
YlZpZXcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8aHRtbD48Ym9k
eT5XZWJLaXQhPC9ib2R5PjxzY3JpcHQ+ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Jv
ZHknKVswXS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nOzwvc2NyaXB0PjwvaHRtbD4iLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlOi8vIik7CisKKyAgICBnX21h
aW5fbG9vcF9ydW4obG9vcCk7CisKKyAgICBndGtfc2Nyb2xsZWRfd2luZG93X2dldF9wb2xpY3ko
R1RLX1NDUk9MTEVEX1dJTkRPVyhzY3JvbGxlZFdpbmRvdyksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZob3Jpem9udGFsUG9saWN5LCAmdmVydGljYWxQb2xpY3kpOworCisg
ICAgZ19hc3NlcnQoaG9yaXpvbnRhbFBvbGljeSA9PSBHVEtfUE9MSUNZX05FVkVSKTsKKyAgICBn
X2Fzc2VydCh2ZXJ0aWNhbFBvbGljeSA9PSBHVEtfUE9MSUNZX05FVkVSKTsKKworICAgIGdfYXNz
ZXJ0KGhvcml6b250YWxQb2xpY3kgPT0gd2Via2l0X3dlYl9mcmFtZV9nZXRfaG9yaXpvbnRhbF9z
Y3JvbGxiYXJfcG9saWN5KG1haW5GcmFtZSkpOworICAgIGdfYXNzZXJ0KHZlcnRpY2FsUG9saWN5
ID09IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2FsX3Njcm9sbGJhcl9wb2xpY3kobWFpbkZy
YW1lKSk7CisKKyAgICAvKiBBbHdheXMgKi8KKyAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9odG1s
X3N0cmluZyhXRUJLSVRfV0VCX1ZJRVcod2ViVmlldyksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjxodG1sPjxib2R5PldlYktpdCE8L2JvZHk+PHNjcmlwdD5kb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdLnN0eWxlLm92ZXJmbG93ID0gJ3Njcm9s
bCc7PC9zY3JpcHQ+PC9odG1sPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImZpbGU6Ly8iKTsKKworICAgIGdfbWFpbl9sb29wX3J1bihsb29wKTsKKworICAgIGd0a19z
Y3JvbGxlZF93aW5kb3dfZ2V0X3BvbGljeShHVEtfU0NST0xMRURfV0lORE9XKHNjcm9sbGVkV2lu
ZG93KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhvcml6b250YWxQb2xp
Y3ksICZ2ZXJ0aWNhbFBvbGljeSk7CisKKyAgICBnX2Fzc2VydChob3Jpem9udGFsUG9saWN5ID09
IEdUS19QT0xJQ1lfQUxXQVlTKTsKKyAgICBnX2Fzc2VydCh2ZXJ0aWNhbFBvbGljeSA9PSBHVEtf
UE9MSUNZX0FMV0FZUyk7CisKKyAgICBnX2Fzc2VydChob3Jpem9udGFsUG9saWN5ID09IHdlYmtp
dF93ZWJfZnJhbWVfZ2V0X2hvcml6b250YWxfc2Nyb2xsYmFyX3BvbGljeShtYWluRnJhbWUpKTsK
KyAgICBnX2Fzc2VydCh2ZXJ0aWNhbFBvbGljeSA9PSB3ZWJraXRfd2ViX2ZyYW1lX2dldF92ZXJ0
aWNhbF9zY3JvbGxiYXJfcG9saWN5KG1haW5GcmFtZSkpOworCisgICAgLyogQXV0byAqLworICAg
IHdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWxfc3RyaW5nKFdFQktJVF9XRUJfVklFVyh3ZWJWaWV3
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPGh0bWw+PGJvZHk+V2Vi
S2l0ITwvYm9keT48c2NyaXB0PmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5Jylb
MF0uc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7PC9zY3JpcHQ+PC9odG1sPiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGU6Ly8iKTsKKworICAgIGdfbWFpbl9sb29w
X3J1bihsb29wKTsKKworICAgIGd0a19zY3JvbGxlZF93aW5kb3dfZ2V0X3BvbGljeShHVEtfU0NS
T0xMRURfV0lORE9XKHNjcm9sbGVkV2luZG93KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJmhvcml6b250YWxQb2xpY3ksICZ2ZXJ0aWNhbFBvbGljeSk7CisKKyAgICBnX2Fz
c2VydChob3Jpem9udGFsUG9saWN5ID09IEdUS19QT0xJQ1lfQVVUT01BVElDKTsKKyAgICBnX2Fz
c2VydCh2ZXJ0aWNhbFBvbGljeSA9PSBHVEtfUE9MSUNZX0FVVE9NQVRJQyk7CisKKyAgICBnX2Fz
c2VydChob3Jpem9udGFsUG9saWN5ID09IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2hvcml6b250YWxf
c2Nyb2xsYmFyX3BvbGljeShtYWluRnJhbWUpKTsKKyAgICBnX2Fzc2VydCh2ZXJ0aWNhbFBvbGlj
eSA9PSB3ZWJraXRfd2ViX2ZyYW1lX2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9saWN5KG1haW5G
cmFtZSkpOworCisgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7Cit9CisKK2ludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBnX3RocmVhZF9pbml0KE5VTEwpOworICAgIGd0
a190ZXN0X2luaXQoJmFyZ2MsICZhcmd2LCBOVUxMKTsKKworICAgIGdfdGVzdF9idWdfYmFzZSgi
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvIik7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0
L3dpbmRvdy9zY3JvbGxiYXJfcG9saWN5IiwgdGVzdF93ZWJraXRfd2luZG93X3Njcm9sbGJhcl9w
b2xpY3kpOworICAgIHJldHVybiBnX3Rlc3RfcnVuICgpOworfQorCisjZWxzZQoraW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQg
YXQgbGVhc3QgZ2xpYi0yLjE2LjAgYW5kIGd0ay0yLjE0LjAgdG8gcnVuIHRoZSB1bml0IHRlc3Rz
LiBEb2luZyBub3RoaW5nIG5vdy4iKTsKKyAgICByZXR1cm4gMDsKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKaW5kZXggMDQ2MjdhZi4uZjhhZWYyNCAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtODUsNiArODUsNyBAQCBlbnVtIHsKICAg
ICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAgICBIT1ZFUklOR19PVkVSX0xJTkss
CisgICAgU0NST0xMQkFSU19QT0xJQ1lfQ0hBTkdFRCwKICAgICBMQVNUX1NJR05BTAogfTsKIApA
QCAtOTQsNyArOTUsOSBAQCBlbnVtIHsKICAgICBQUk9QX05BTUUsCiAgICAgUFJPUF9USVRMRSwK
ICAgICBQUk9QX1VSSSwKLSAgICBQUk9QX0xPQURfU1RBVFVTCisgICAgUFJPUF9MT0FEX1NUQVRV
UywKKyAgICBQUk9QX0hPUklaT05UQUxfU0NST0xMQkFSX1BPTElDWSwKKyAgICBQUk9QX1ZFUlRJ
Q0FMX1NDUk9MTEJBUl9QT0xJQ1kKIH07CiAKIHN0YXRpYyBndWludCB3ZWJraXRfd2ViX2ZyYW1l
X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwpAQCAtMTE4LDYgKzEyMSwxMiBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BfaWQsIEdWYWx1ZQogICAgIGNhc2UgUFJPUF9MT0FEX1NUQVRVUzoKICAgICAgICAg
Z192YWx1ZV9zZXRfZW51bSh2YWx1ZSwgd2Via2l0X3dlYl9mcmFtZV9nZXRfbG9hZF9zdGF0dXMo
ZnJhbWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0hPUklaT05UQUxfU0NST0xM
QkFSX1BPTElDWToKKyAgICAgICAgZ192YWx1ZV9zZXRfZW51bSh2YWx1ZSwgd2Via2l0X3dlYl9m
cmFtZV9nZXRfaG9yaXpvbnRhbF9zY3JvbGxiYXJfcG9saWN5KGZyYW1lKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUFJPUF9WRVJUSUNBTF9TQ1JPTExCQVJfUE9MSUNZOgorICAgICAgICBn
X3ZhbHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfd2ViX2ZyYW1lX2dldF92ZXJ0aWNhbF9zY3Jv
bGxiYXJfcG9saWN5KGZyYW1lKSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBz
cGVjKTsKICAgICAgICAgYnJlYWs7CkBAIC0yMTQsNiArMjIzLDMxIEBAIHN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdChXZWJLaXRXZWJGcmFtZUNsYXNzKiBmcmFtZUNsYXNz
KQogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAgICAgICAgICBHX1RZUEVfU1RSSU5H
LCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFdlYkZyYW1lOjpzY3Jv
bGxiYXJzLXBvbGljeS1jaGFuZ2VkOgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3aGlj
aCByZWNlaXZlZCB0aGUgc2lnbmFsCisgICAgICoKKyAgICAgKiBTaWduYWwgZW1pdHRlZCB3aGVu
IHBvbGljeSBmb3Igb25lIG9yIGJvdGggb2YgdGhlIHNjcm9sbGJhcnMgb2YKKyAgICAgKiB0aGUg
dmlldyBoYXMgY2hhbmdlZC4gVGhlIGRlZmF1bHQgaGFuZGxlciB3aWxsIGFwcGx5IHRoZSBuZXcK
KyAgICAgKiBwb2xpY3kgdG8gdGhlIGNvbnRhaW5lciB0aGF0IGhvbGRzIHRoZSAjV2ViS2l0V2Vi
RnJhbWUgaWYgaXQgaXMKKyAgICAgKiBhICNHdGtTY3JvbGxlZFdpbmRvdy4gSWYgeW91IGRvIG5v
dCB3YW50IHRoaXMgdG8gYmUgaGFuZGxlZAorICAgICAqIGF1dG9tYXRpY2FsbHksIHlvdSBuZWVk
IHRvIGhhbmRsZSB0aGlzIHNpZ25hbC4KKyAgICAgKgorICAgICAqIFlvdSBjYW4gb2J0YWluIHRo
ZSBuZXcgcG9saWNpZXMgZnJvbSB0aGUKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTpob3Jpem9udGFs
LXNjcm9sbGJhci1wb2xpY3kgYW5kCisgICAgICogV2ViS2l0V2ViRnJhbWU6dmVydGljYWwtc2Ny
b2xsYmFyLXBvbGljeSBwcm9wZXJ0aWVzLgorICAgICAqCisgICAgICogU2luY2U6IDEuMS45Cisg
ICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW1NDUk9MTEJBUlNfUE9MSUNZX0NI
QU5HRURdID0gZ19zaWduYWxfbmV3KCJzY3JvbGxiYXJzLXBvbGljeS1jaGFuZ2VkIiwKKyAgICAg
ICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWdu
YWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAg
ICAgMCwKKyAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAg
ICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19WT0lE
LAorICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDApOworCiAgICAgLyoKICAgICAgKiBpbXBs
ZW1lbnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCkBAIC0yNjAsNiArMjk0LDQy
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdChXZWJLaXRXZWJGcmFt
ZUNsYXNzKiBmcmFtZUNsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV0VCS0lUX0xPQURfRklOSVNIRUQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFC
TEUpKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFdlYkZyYW1lOmhvcml6b250YWwtc2Nyb2xs
YmFyLXBvbGljeToKKyAgICAgKgorICAgICAqIERldGVybWluZXMgdGhlIGN1cnJlbnQgcG9saWN5
IGZvciB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgb2YKKyAgICAgKiB0aGUgZnJhbWUuIEZvciB0
aGUgbWFpbiBmcmFtZSwgbWFrZSBzdXJlIHRvIHNldCB0aGUgc2FtZSBwb2xpY3kKKyAgICAgKiBv
biB0aGUgc2Nyb2xsYWJsZSB3aWRnZXQgY29udGFpbmluZyB0aGUgI1dlYktpdFdlYlZpZXcsIHVu
bGVzcworICAgICAqIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy4KKyAgICAgKgorICAgICAq
IFNpbmNlOiAxLjEuMTEKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KG9iamVjdENsYXNzLCBQUk9QX0hPUklaT05UQUxfU0NST0xMQkFSX1BPTElDWSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19lbnVtKCJob3Jpem9u
dGFsLXNjcm9sbGJhci1wb2xpY3kiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiSG9yaXpvbnRhbCBTY3JvbGxiYXIgUG9saWN5IiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJE
ZXRlcm1pbmVzIHRoZSBjdXJyZW50IHBvbGljeSBmb3IgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFy
IG9mIHRoZSBmcmFtZS4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdUS19UWVBFX1BPTElDWV9UWVBFLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1BPTElDWV9BVVRPTUFUSUMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
RUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFdlYkZyYW1l
OnZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3k6CisgICAgICoKKyAgICAgKiBEZXRlcm1pbmVzIHRo
ZSBjdXJyZW50IHBvbGljeSBmb3IgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciBvZgorICAgICAqIHRo
ZSBmcmFtZS4gRm9yIHRoZSBtYWluIGZyYW1lLCBtYWtlIHN1cmUgdG8gc2V0IHRoZSBzYW1lIHBv
bGljeQorICAgICAqIG9uIHRoZSBzY3JvbGxhYmxlIHdpZGdldCBjb250YWluaW5nIHRoZSAjV2Vi
S2l0V2ViVmlldywgdW5sZXNzCisgICAgICogeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLgor
ICAgICAqCisgICAgICogU2luY2U6IDEuMS4xMQorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfVkVSVElDQUxfU0NST0xMQkFSX1BP
TElDWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19l
bnVtKCJ2ZXJ0aWNhbC1zY3JvbGxiYXItcG9saWN5IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlZlcnRpY2FsIFNjcm9sbGJhciBQb2xp
Y3kiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF8oIkRldGVybWluZXMgdGhlIGN1cnJlbnQgcG9saWN5IGZvciB0aGUgdmVydGljYWwgc2Ny
b2xsYmFyIG9mIHRoZSBmcmFtZS4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdUS19UWVBFX1BPTElDWV9UWVBFLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1BPTElDWV9BVVRP
TUFUSUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKwogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJp
dmF0ZShmcmFtZUNsYXNzLCBzaXplb2YoV2ViS2l0V2ViRnJhbWVQcml2YXRlKSk7CiB9CiAKQEAg
LTg4NiwzICs5NTYsNDMgQEAgQXRrT2JqZWN0KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9mb2N1c2Vk
X2FjY2Vzc2libGVfZWxlbWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUKICAgICByZXR1cm4gTlVM
TDsKICNlbmRpZgogfQorCitHdGtQb2xpY3lUeXBlIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2hvcml6
b250YWxfc2Nyb2xsYmFyX3BvbGljeShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIEdUS19QT0xJQ1lf
QVVUT01BVElDKTsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBG
cmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAg
ICAgIHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKKworICAgIFNjcm9sbGJhck1vZGUgaE1v
ZGUgPSB2aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSgpOworCisgICAgaWYgKGhNb2RlID09
IFNjcm9sbGJhckFsd2F5c09uKQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9BTFdBWVM7CisK
KyAgICBpZiAoaE1vZGUgPT0gU2Nyb2xsYmFyQWx3YXlzT2ZmKQorICAgICAgICByZXR1cm4gR1RL
X1BPTElDWV9ORVZFUjsKKworICAgIHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKK30KKwor
R3RrUG9saWN5VHlwZSB3ZWJraXRfd2ViX2ZyYW1lX2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9s
aWN5KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgR1RLX1BPTElDWV9BVVRPTUFUSUMpOworCisgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEZyYW1lVmlldyogdmlldyA9IGNv
cmVGcmFtZS0+dmlldygpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIEdUS19QT0xJ
Q1lfQVVUT01BVElDOworCisgICAgU2Nyb2xsYmFyTW9kZSB2TW9kZSA9IHZpZXctPnZlcnRpY2Fs
U2Nyb2xsYmFyTW9kZSgpOworCisgICAgaWYgKHZNb2RlID09IFNjcm9sbGJhckFsd2F5c09uKQor
ICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9BTFdBWVM7CisKKyAgICBpZiAodk1vZGUgPT0gU2Ny
b2xsYmFyQWx3YXlzT2ZmKQorICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9ORVZFUjsKKworICAg
IHJldHVybiBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5oCmluZGV4IGIyZTYxYjkuLmFkMzU5ZjYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUu
aApAQCAtMTUyLDYgKzE1MiwxMiBAQCB3ZWJraXRfd2ViX2ZyYW1lX3ByaW50ICAgICAgICAgICAg
ICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIFdFQktJVF9BUEkgV2ViS2l0TG9hZFN0
YXR1cwogd2Via2l0X3dlYl9mcmFtZV9nZXRfbG9hZF9zdGF0dXMgICAgKFdlYktpdFdlYkZyYW1l
ICAgICAgICpmcmFtZSk7CiAKK1dFQktJVF9BUEkgR3RrUG9saWN5VHlwZQord2Via2l0X3dlYl9m
cmFtZV9nZXRfaG9yaXpvbnRhbF9zY3JvbGxiYXJfcG9saWN5IChXZWJLaXRXZWJGcmFtZSAgICAg
ICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBHdGtQb2xpY3lUeXBlCit3ZWJraXRfd2ViX2ZyYW1l
X2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9saWN5ICAgKFdlYktpdFdlYkZyYW1lICAgICAgICAq
ZnJhbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTRlM2Q5ZC4uNDBkMGQzMyAx
MDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wOC0yMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8
Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU4ODkKKyAgICAgICAgW0dUS10gc2Nyb2xsYmFyIHBvbGljeSBmb3IgbWFpbiBm
cmFtZSBpcyBub3QgaW1wbGVtZW50YWJsZQorCisgICAgICAgIEFkZCBlbXB0eSBpbXBsZW1lbnRh
dGlvbiBmb3IgbmV3IENocm9tZUNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2Nyb2xs
YmFyc01vZGVEaWRDaGFuZ2UpOgorCiAyMDA5LTA4LTI1ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggN2ExZDdiMy4u
N2NkZWZkMSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC05OSw2ICs5OSw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3Rh
dHVzYmFyVGV4dChjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKIAorICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWdu
ZWQgbW9kaWZpZXJGbGFncyk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBX
ZWJDb3JlOjpTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGZjOGUzMjguLjk3
YmNhNmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDA5LTA4LTIwICBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNTg4OQorICAgICAgICBbR1RLXSBzY3JvbGxiYXIgcG9saWN5IGZvciBt
YWluIGZyYW1lIGlzIG5vdCBpbXBsZW1lbnRhYmxlCisKKyAgICAgICAgQWRkIGVtcHR5IGltcGxl
bWVudGF0aW9uIGZvciBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZC4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGll
bnRRdDo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UpOgorCiAyMDA5LTA4LTI3ICBKZWRyemVqIE5v
d2Fja2kgIDxqZWRyemVqLm5vd2Fja2lAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFyaXlhIEhpZGF5YXQuCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
CmluZGV4IDk2YzdmYWIuLjdlYTZhNzAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5oCkBAIC0xMDgsNiArMTA4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2luZG93KCkgY29uc3Q7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6
ZSYpIGNvbnN0OwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5n
ZSgpIGNvbnN0IHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24p
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxv
ZwppbmRleCAzNWY0YjA2Li43MmFmNjFmIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDA5LTA4LTIw
ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVr
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg4OQorICAgICAgICBbR1RLXSBz
Y3JvbGxiYXIgcG9saWN5IGZvciBtYWluIGZyYW1lIGlzIG5vdCBpbXBsZW1lbnRhYmxlCisKKyAg
ICAgICAgQWRkIGVtcHR5IGltcGxlbWVudGF0aW9uIGZvciBuZXcgQ2hyb21lQ2xpZW50IG1ldGhv
ZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAoV2ViQ2hyb21lQ2xpZW50OjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZSk6CisKIDIwMDktMDgt
MjYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IDk0ZmYwODcuLjRjODdjMDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtOTgsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRvdygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpIGNvbnN0OwogCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdl
KCkgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNv
bnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYsIFdlYkNv
cmU6OlRleHREaXJlY3Rpb24pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1dl
YktpdC93eC9DaGFuZ2VMb2cKaW5kZXggMDZmNmQzNy4uMTIyYjI2NiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMDktMDgtMjAgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBj
b2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODg5Cisg
ICAgICAgIFtHVEtdIHNjcm9sbGJhciBwb2xpY3kgZm9yIG1haW4gZnJhbWUgaXMgbm90IGltcGxl
bWVudGFibGUKKworICAgICAgICBBZGQgZW1wdHkgaW1wbGVtZW50YXRpb24gZm9yIG5ldyBDaHJv
bWVDbGllbnQgbWV0aG9kLgorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRX
eC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OnNjcm9sbGJhcnNNb2RlRGlk
Q2hhbmdlKToKKwogMjAwOS0wOC0xOSAgS2V2aW4gV2F0dGVycyAgPGtldmlud2F0dGVyc0BnbWFp
bC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2V2aW4gT2xsaXZpZXIuCmRpZmYgLS1naXQg
YS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dl
YktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAppbmRleCA4NTMzNWM4Li5iMDQ4ZjNlIDEwMDY0
NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCisrKyBiL1dl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKQEAgLTEwNyw2ICsxMDcsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRvdygpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3Qg
SW50U2l6ZSYpIGNvbnN0OwogCisgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hh
bmdlKCkgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pOwotLSAK
MS42LjMuMwoK
</data>
<flag name="review"
          id="19690"
          type_id="1"
          status="+"
          setter="zecke"
    />
    <flag name="commit-queue"
          id="19691"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>