<?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>35446</bug_id>
          
          <creation_ts>2010-02-26 13:01:54 -0800</creation_ts>
          <short_desc>Add support for Widgets 1.0: View Mode Media Feature</short_desc>
          <delta_ts>2010-03-30 04:59:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>35784</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>diegohcg</cc>
    
    <cc>edisson.braga</cc>
    
    <cc>hausmann</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
    
    <cc>skyul</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>194233</commentid>
    <comment_count>0</comment_count>
      <attachid>49617</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-02-26 13:01:54 -0800</bug_when>
    <thetext>Created attachment 49617
Patch

The patch adds support for the view mode feature: http://www.w3.org/TR/widgets-vmmf/

It is currently only enabled for the Qt port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194240</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-26 13:02:52 -0800</bug_when>
    <thetext>Attachment 49617 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/MediaQueryEvaluator.cpp:499:  view_modeMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Ignoring &quot;WebKit/qt/Api/qwebpage_p.h&quot;: this file is exempt from the style guide.
Ignoring &quot;WebKit/qt/Api/qwebpage.cpp&quot;: this file is exempt from the style guide.
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194244</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-02-26 13:03:36 -0800</bug_when>
    <thetext>The style check will complain a bit, but I&apos;m following similar style used in
the media feature implementation, to not make it look out of place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200376</commentid>
    <comment_count>3</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-03-16 12:45:06 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Created an attachment (id=49617) [details]
&gt; Patch
&gt; 
&gt; The patch adds support for the view mode feature:
&gt; http://www.w3.org/TR/widgets-vmmf/
&gt; 
&gt; It is currently only enabled for the Qt port.

I was walking through the patch, and a few questions raised:

1) It introduces a build guard (which I think it ok) w/ the name &quot;ENABLE_WEBWIDGET_SUPPORT&quot;, however the spec says &quot;Widgets&quot; (note the S in the end). Maybe it could be changed accordingly.

2) Patch adds the term &quot;WEBWIDGET&quot;, although the specs say &quot;Widget&quot; (w/o &quot;Web&quot;). What do you think?

3) Do we really need the -webkit prefix as in &quot;-webkit-view-mode: mode&quot; syntax. Is that because the spec is still a draft?

4) Patch introduces 4 possible values (mini, float, application and fullscreen). I just checked the implementation, and there is an additional &quot;all&quot; value, which means:

&quot;The all value is defined to describe a widget for which it is irrelevant how it is displayed. The presentation of the widget is fully dependant on the user agent. This value does not define any actual presentation mode of a widget.

This value is to be used to override the default presentation mode set to floating that would be applied if no value is specified in the document.
&quot;

, which btw I think should be the default value, if none is set by the webpage.

5) If the above is corrent, patch should also reset DRT to &quot;all&quot; after each test execution.

Kenneth, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200384</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-16 12:58:12 -0700</bug_when>
    <thetext>Thanks for the comments

&gt; 1) It introduces a build guard (which I think it ok) w/ the name
&gt; &quot;ENABLE_WEBWIDGET_SUPPORT&quot;, however the spec says &quot;Widgets&quot; (note the S in the
&gt; end). Maybe it could be changed accordingly.

I guess we could use ENABLE_WIDGETS_10_SUPPORT. I was afraid that people would confuse it with something else. That is why I added the WEB as well.
 
&gt; 2) Patch adds the term &quot;WEBWIDGET&quot;, although the specs say &quot;Widget&quot; (w/o
&gt; &quot;Web&quot;). What do you think?

I&apos;m OK with ENABLE_WIDGETS_10_SUPPORT / ENABLE(WIDGETS_10_SUPPORT)

&gt; 
&gt; 3) Do we really need the -webkit prefix as in &quot;-webkit-view-mode: mode&quot; syntax.
&gt; Is that because the spec is still a draft?

We don&apos;t. I actually believe it is wrong. -webkit is used for CSS properties as they are ignored by other browser. This is not how it works for media features, as if the browser doesn&apos;t know a media feature it defaults to false.

I suggest just using view-mode and not -webkit-view-mode.

&gt; 4) Patch introduces 4 possible values (mini, float, application and
&gt; fullscreen). I just checked the implementation, and there is an additional
&gt; &quot;all&quot; value, which means:

Yes, this was added in the latest spec, and it will need some special treatment.

&gt; 5) If the above is corrent, patch should also reset DRT to &quot;all&quot; after each
&gt; test execution.

No, because that means that you are running as a Widget, and it will always return true. It should only return true for &quot;all&quot; when we are in one of the 4 other modes. For non Widget 1.0 views, it should return false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201068</commentid>
    <comment_count>5</comment_count>
      <attachid>50979</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-17 17:32:25 -0700</bug_when>
    <thetext>Created attachment 50979
Patch 2, addressing the comments and with support for &apos;all&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201072</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-17 17:36:23 -0700</bug_when>
    <thetext>Attachment 50979 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/MediaQueryEvaluator.cpp:499:  view_modeMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WARNING: File exempt from style guide. Skipping: &quot;WebKit/qt/Api/qwebpage_p.h&quot;
WARNING: File exempt from style guide. Skipping: &quot;WebKit/qt/Api/qwebpage.cpp&quot;
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201086</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-17 17:54:20 -0700</bug_when>
    <thetext>Marciej, do you know who would be the right guy to review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201295</commentid>
    <comment_count>8</comment_count>
      <attachid>50979</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-03-18 08:02:29 -0700</bug_when>
    <thetext>Comment on attachment 50979
Patch 2, addressing the comments and with support for &apos;all&apos;

Just a thought, but perhaps the code would be simpler if you stored the view mode in the settings instead of it being queried through a virtual function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201298</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-18 08:05:38 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 50979 [details])
&gt; Just a thought, but perhaps the code would be simpler if you stored the view
&gt; mode in the settings instead of it being queried through a virtual function?

It is an option, though it doesn&apos;t really feel like a setting, so it might be abusing the setting system for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201384</commentid>
    <comment_count>10</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-03-18 10:51:03 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=50979) [details]
&gt; Patch 2, addressing the comments and with support for &apos;all&apos;

LGTM now, Kenneth. Thx

Personally I would not dump the render tree but a custom result via layoutTestController.dumpAsText, since it would get rid of any font size possible difference we are comonly seeing between the qt bots and normal linux machines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201385</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-18 10:53:28 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #5)
&gt; &gt; Created an attachment (id=50979) [details] [details]
&gt; &gt; Patch 2, addressing the comments and with support for &apos;all&apos;
&gt; 
&gt; LGTM now, Kenneth. Thx
&gt; 
&gt; Personally I would not dump the render tree but a custom result via
&gt; layoutTestController.dumpAsText, since it would get rid of any font size
&gt; possible difference we are comonly seeing between the qt bots and normal linux
&gt; machines.

That is exactly why I don&apos;t use text in the test. It already provides a cross platform result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202667</commentid>
    <comment_count>12</comment_count>
      <attachid>50979</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-03-22 12:08:05 -0700</bug_when>
    <thetext>Comment on attachment 50979
Patch 2, addressing the comments and with support for &apos;all&apos;

I think the view-mode spec is too unstable to implement now:
&lt;http://lists.w3.org/Archives/Public/www-style/2010Mar/0119.html&gt;
We don&apos;t want an early, unprefixed implementation in WebKit that we&apos;ll have to maintain after the spec changes later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202673</commentid>
    <comment_count>13</comment_count>
      <attachid>50979</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-03-22 12:14:15 -0700</bug_when>
    <thetext>Comment on attachment 50979
Patch 2, addressing the comments and with support for &apos;all&apos;

&gt; diff --git a/WebCore/page/ChromeClient.h b/WebCore/page/ChromeClient.h
&gt; index e4bc8d1..af92af3 100644
&gt; --- a/WebCore/page/ChromeClient.h
&gt; +++ b/WebCore/page/ChromeClient.h
&gt; @@ -231,6 +231,16 @@ namespace WebCore {
&gt;          virtual void needTouchEvents(bool) = 0;
&gt;  #endif
&gt;  
&gt; +#if ENABLE(WIDGETS_10_SUPPORT)
&gt; +        // As the view mode is compared with the result of the media
&gt; +        // feature (view-mode: mode), returning a nulled string equals
&gt; +        // disabling view mode
&gt; +        virtual String webWidgetViewMode()
&gt; +        {
&gt; +            return String();
&gt; +        };
&gt; +#endif

I don&apos;t like the way that you&apos;re forcing the ChromeClient implement to know all about view modes. I&apos;d prefer it returns an enum, or you have explicit isMinified(), isFullscreen() etc methods.

It&apos;s also not at all clear (even in the spec) if these modes are mutually exclusive. You may need to return a bit mask.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202679</commentid>
    <comment_count>14</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-22 12:21:08 -0700</bug_when>
    <thetext>
&gt; I don&apos;t like the way that you&apos;re forcing the ChromeClient implement to know all
&gt; about view modes. I&apos;d prefer it returns an enum, or you have explicit
&gt; isMinified(), isFullscreen() etc methods.
&gt; 
&gt; It&apos;s also not at all clear (even in the spec) if these modes are mutually
&gt; exclusive. You may need to return a bit mask.

Judging from how the spec specifies the view modes, they are mutually exclusive: 

For instance if you are floating you will been to have transparency and no chrome, but if you are an application you should have chrome and not be transparent. I think this just needs some clarification in the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202718</commentid>
    <comment_count>15</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-22 13:02:48 -0700</bug_when>
    <thetext>http://lists.w3.org/Archives/Public/www-style/2010Mar/0116.html

Nice comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202736</commentid>
    <comment_count>16</comment_count>
      <attachid>51345</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-22 13:42:36 -0700</bug_when>
    <thetext>Created attachment 51345
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202738</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-22 13:45:40 -0700</bug_when>
    <thetext>Attachment 51345 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/MediaQueryEvaluator.cpp:499:  view_modeMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WARNING: File exempt from style guide. Skipping: &quot;WebKit/qt/Api/qwebpage_p.h&quot;
WARNING: File exempt from style guide. Skipping: &quot;WebKit/qt/Api/qwebpage.cpp&quot;
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205656</commentid>
    <comment_count>18</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-29 13:48:54 -0700</bug_when>
    <thetext>Simon, could you please have a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205663</commentid>
    <comment_count>19</comment_count>
      <attachid>51345</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-03-29 14:17:32 -0700</bug_when>
    <thetext>Comment on attachment 51345
Patch 3

&gt; diff --git a/WebCore/css/MediaQueryEvaluator.cpp b/WebCore/css/MediaQueryEvaluator.cpp

&gt; +#if ENABLE(WIDGETS_10_SUPPORT)
&gt; +static bool view_modeMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* frame, MediaFeaturePrefix op)
&gt; +{
&gt; +    if (value) {
&gt; +        String mode = static_cast&lt;CSSPrimitiveValue*&gt;(value)-&gt;getStringValue();
&gt; +        if (ChromeClient* client = frame-&gt;page()-&gt;chrome()-&gt;client()) {
&gt; +            if (mode == &quot;all&quot;)
&gt; +                return true;
&gt; +            if (mode == &quot;mini&quot; &amp;&amp; client-&gt;isDocked())
&gt; +                return true;
&gt; +            if (mode == &quot;floating&quot; &amp;&amp; client-&gt;isFloating())
&gt; +                return true;
&gt; +            if (mode == &quot;application&quot; &amp;&amp; client-&gt;isApplication())
&gt; +                return true;
&gt; +            if (mode == &quot;fullscreen&quot; &amp;&amp; client-&gt;isFullscreen())
&gt; +                return true;
&gt; +            return false;
&gt; +        }
&gt; +    }
&gt; +    return false;
&gt; +}

I don&apos;t see any words in the spec that say that the modes are evaluated in this order, and it&apos;s not clear that they are mutually exclusive.

Should the &quot;application&quot; mode be assumed it none of the other modes are in force?

Should the string compares be case-insensitive?

&gt; diff --git a/WebCore/page/ChromeClient.h b/WebCore/page/ChromeClient.h

&gt; +#if ENABLE(WIDGETS_10_SUPPORT)
&gt; +        virtual bool isDocked() { return false; }

I don&apos;t like this name; &quot;docked&quot; has platform-implications. Maybe &quot;isMimimized()&quot;.

&gt; +        virtual bool isFloating() { return false; }
&gt; +        virtual bool isApplication() { return false; }
&gt; +        virtual bool isFullscreen() { return false; }


&gt; diff --git a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h
&gt; index 5cf5104..a562fd3 100644
&gt; --- a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h
&gt; +++ b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h
&gt; @@ -138,6 +138,7 @@ public slots:
&gt;      void setMainFrameIsFirstResponder(bool isFirst);
&gt;      void setXSSAuditorEnabled(bool enable);
&gt;      void setCaretBrowsingEnabled(bool enable);
&gt; +    void setViewModeMediaFeature(const QString&amp; mode);
&gt;  
&gt;      bool pauseAnimationAtTimeOnElementWithId(const QString&amp; animationName, double time, const QString&amp; elementId);
&gt;      bool pauseTransitionAtTimeOnElementWithId(const QString&amp; propertyName, double time, const QString&amp; elementId);

I&apos;d prefer to see LayoutTestController fixed in the primary platforms as well, or at least stubbed.

r=me but we reserve the right to modify the -webkit-view-mode behavior as the spec evolves. If you need a frozen implementation, you&apos;ll have to maintain it in your own source tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205669</commentid>
    <comment_count>20</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-29 14:26:16 -0700</bug_when>
    <thetext>If OK with you, I will commit it as it is, and fix your comments in follow up patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205670</commentid>
    <comment_count>21</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-29 14:36:21 -0700</bug_when>
    <thetext>
&gt; I don&apos;t see any words in the spec that say that the modes are evaluated in this
&gt; order, and it&apos;s not clear that they are mutually exclusive.

I don&apos;t think the evaluation in order is a problem, as you could do @media (view-mode: mini) and (view-mode: floating).

&gt; Should the &quot;application&quot; mode be assumed it none of the other modes are in
&gt; force?

That is a good question. I will think about that.

&gt; Should the string compares be case-insensitive?

I&apos;m not sure; is PX in (min-device-width: 100PX) supposed to be accepted?

&gt; I don&apos;t like this name; &quot;docked&quot; has platform-implications. Maybe
&gt; &quot;isMimimized()&quot;.

Describes a widget docked or otherwise minimised, but with a dynamic graphical representation being available nevertheless. 

It is called docket in the Opera implementation: 
http://dev.opera.com/articles/view/opera-widgets-core-dom-reference/

&gt; I&apos;d prefer to see LayoutTestController fixed in the primary platforms as well,
&gt; or at least stubbed.

I will make additional patches for this.

&gt; r=me but we reserve the right to modify the -webkit-view-mode behavior as the
&gt; spec evolves. If you need a frozen implementation, you&apos;ll have to maintain it
&gt; in your own source tree.

Sounds fair!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205674</commentid>
    <comment_count>22</comment_count>
      <attachid>51345</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-29 14:45:33 -0700</bug_when>
    <thetext>Comment on attachment 51345
Patch 3

Landed in r56740</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205946</commentid>
    <comment_count>23</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-03-30 04:59:08 -0700</bug_when>
    <thetext>Revision r56740 cherry-picked into qtwebkit-2.0 with commit a5c57135aa32a8e883cdb5fe9898bbbdbea5ee5c</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49617</attachid>
            <date>2010-02-26 13:01:54 -0800</date>
            <delta_ts>2010-03-17 17:32:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-JavaScriptCore-Add-an-enable-flag-for-the-Widgets-ht.patch</filename>
            <type>text/plain</type>
            <size>17363</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA0NjgwYWFmNDU0YmNmYzAxOTI1YjEwODljYmM4MjgzMjRjNWNmMjRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBGcmksIDI2IEZlYiAyMDEwIDE3OjU4OjQ3IC0wMzAwClN1YmplY3Q6
IFtQQVRDSF0gSmF2YVNjcmlwdENvcmU6IEFkZCBhbiBlbmFibGUgZmxhZyBmb3IgdGhlIFdpZGdl
dHMgKGh0dHA6Ly93d3cudzMub3JnL1RSL3dpZGdldHMtcmVxcy8pCiBhbmQgdHVybiBpdCBvbiBm
b3IgUXQgb25seS4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiB3dGYvUGxhdGZvcm0u
aDoKCldlYkNvcmU6IFdoZW4gZW5hYmxpbmcgV2ViIFdpZGdldHMsIGFkZCBzdXBwb3J0IGZvciB0
aGUgdmlldy1tb2RlIG1lZGlhCmZlYXR1cmUgKGh0dHA6Ly93d3cudzMub3JnL1RSL3dpZGdldHMt
dm1tZi8pLgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpDdXJyZW50bHkgdXNpbmcgKC13
ZWJraXQtdmlldy1tb2RlOiBtb2RlKSBhcyBzeW50YXgsIGFzIHRoZQpzcGVjIGlzIHN0aWxsIGEg
ZHJhZnQuCgpUZXN0OiBmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1s
CgoqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgoqIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oOgoq
IGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKFdlYkNvcmU6OnZpZXdfbW9kZU1lZGlhRmVh
dHVyZUV2YWwpOgoqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CihXZWJDb3JlOjpDaHJvbWVDbGllbnQ6
OndlYldpZGdldFZpZXdNb2RlKToKCldlYktpdC9xdDogQWRkIGFuIGludGVybmFsIFF0IEFQSSBm
b3IgY2hhbmdpbmcgdGhlIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlCihodHRwOi8vd3d3LnczLm9y
Zy9UUi93aWRnZXRzLXZtbWYvKS4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBBcGkv
cXdlYnBhZ2UuY3BwOgoocXRfd3J0X3NldFZpZXdNb2RlKToKKFFXZWJQYWdlUHJpdmF0ZTo6cHJp
dik6CiogQXBpL3F3ZWJwYWdlX3AuaDoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5j
cHA6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6d2ViV2lkZ2V0Vmlld01vZGUpOgoqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CgpXZWJLaXRUb29sczogQWRkIGhvb2tzIHRvIHRo
ZSBRdCBEUlQgZm9yIHRlc3RpbmcgdGhlIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlLgoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0
dXJlKToKKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CgpMYXlv
dXRUZXN0czogQWRkIGEgdGVzdCBhbmQgYW4gZXhwZWN0ZWQgcmVzdWx0IGZvciB0aGUgV2lkZ2V0
cyAxLjA6IFZpZXcgTW9kZQpNZWRpYSBGZWF0dXJlIChodHRwOi8vd3d3LnczLm9yZy9UUi93aWRn
ZXRzLXZtbWYvKS4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU2tpcCBvbiBhbGwgb3Ro
ZXIgcGxhdGZvcm1zIHRoYW4gUXQsIHRoYXQgaGFzIFNraXBwZWQgZmlsZXMuCgoqIGZhc3QvbWVk
aWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWw6IEFkZGVkLgoqIHBsYXRmb3JtL3F0
L2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCiogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CiogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CiogcGxh
dGZvcm0vd2luL1NraXBwZWQ6Ci0tLQogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrKysrKwogSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmggICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsrKysrKysKIExheW91dFRlc3Rz
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysrKysrKysr
KysrKysKIC4uLi9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sICAg
IHwgICAxNCArKysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQg
ICAgICAgICAgICAgICAgICAgfCAgICAzICsrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAzICsrKwogLi4uL21lZGlhL21lZGlhLWZlYXR1
cmUtd2d0LXZpZXctbW9kZS1leHBlY3RlZC50eHQgfCAgICA1ICsrKysrCiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDMgKysrCiBXZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrKysr
KysrKysrKysrKysrKwogV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiAgICAgICAgICAg
ICAgICAgICAgfCAgICA2ICsrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCAg
ICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKysrKysKIFdlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysr
KysrKysrCiBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTQgKysrKysrKysrKysrKysKIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMyArKysKIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysrKysrKysrKysrKysKIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgICAgICAgIHwgICAgNiArKysrKysK
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oICAgICAgICAgIHwgICAg
MiArKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDEwICsrKysrKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmNwcCAgIHwgICAgNiArKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmggICAgIHwgICAgMSArCiAyMSBmaWxlcyBjaGFuZ2VkLCAxNzMgaW5z
ZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJl
LXdndC12aWV3LW1vZGUtZXhwZWN0ZWQudHh0CgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGI0MWYyOTguLjMzYWNj
ZTAgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wMi0yNiAgS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIGVuYWJsZSBmbGFnIGZvciB0aGUg
V2lkZ2V0cyAoaHR0cDovL3d3dy53My5vcmcvVFIvd2lkZ2V0cy1yZXFzLykKKyAgICAgICAgYW5k
IHR1cm4gaXQgb24gZm9yIFF0IG9ubHkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwog
MjAxMC0wMi0yNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDQ3
MGJiZDAuLjUyZTA5NjUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC01MzcsNiArNTM3LDkgQEAK
IAogI2lmIFBMQVRGT1JNKFFUKQogI2RlZmluZSBXVEZfVVNFX1FUNF9VTklDT0RFIDEKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfV0VCV0lER0VUX1NVUFBPUlQpCisjZGVmaW5lIEVOQUJMRV9XRUJXSURH
RVRfU1VQUE9SVCAxCisjZW5kaWYKICNlbGlmIE9TKFdJTkNFKQogI2RlZmluZSBXVEZfVVNFX1dJ
TkNFX1VOSUNPREUgMQogI2VsaWYgUExBVEZPUk0oR1RLKQpAQCAtNzc2LDYgKzc3OSwxMCBAQAog
I2RlZmluZSBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfV0VCV0lER0VUX1NVUFBPUlQpCisjZGVmaW5lIEVOQUJMRV9XRUJXSURHRVRfU1VQ
UE9SVCAwCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1IpCiAjZGVmaW5l
IEVOQUJMRV9JTlNQRUNUT1IgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTVjZjVhMC4uMDBmNTlkZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTAyLTI2ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNl
biAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IGFuZCBhbiBleHBlY3RlZCByZXN1bHQgZm9yIHRo
ZSBXaWRnZXRzIDEuMDogVmlldyBNb2RlCisgICAgICAgIE1lZGlhIEZlYXR1cmUgKGh0dHA6Ly93
d3cudzMub3JnL1RSL3dpZGdldHMtdm1tZi8pLgorCisgICAgICAgIFNraXAgb24gYWxsIG90aGVy
IHBsYXRmb3JtcyB0aGFuIFF0LCB0aGF0IGhhcyBTa2lwcGVkIGZpbGVzLgorCisgICAgICAgICog
ZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vcXQvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tp
cHBlZDoKKwogMjAxMC0wMi0yNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQzYjAzNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2Rl
Lmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgor
ICAgIEBtZWRpYSAoLXdlYmtpdC12aWV3LW1vZGU6IG1pbmkpIHsKKyAgICAgICAgYm9keSB7Cisg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgIH0KKzwv
c3R5bGU+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCJtaW5p
Iik7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApp
bmRleCBiM2FjZmY1Li45ZTAwZTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNTgx
NiwzICs1ODE2LDYgQEAgaHR0cC90ZXN0cy9sb2FkaW5nLzMwNy1hZnRlci0zMDMtYWZ0ZXItcG9z
dC5odG1sCiAKICMgRHVtcFJlbmRlclRyZWUgY29kZSB0byBlbmFibGUgSmF2YSBpcyBjdXJyZW50
bHkgYSBuby1vcAogamF2YQorCisjIE5vIFdlYiBXaWRnZXRzIHN1cHBvcnQKK2Zhc3QvbWVkaWEv
bWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQK
aW5kZXggMDU3MmNkYi4uMjU4NzkzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTEx
OCwzICsxMTgsNiBAQCBzdG9yYWdlL2RhdGFiYXNlLWxvY2stYWZ0ZXItcmVsb2FkLmh0bWwKIAog
IyBBY2NlcHQgaGVhZGVyIGlzIGhhbmRsZWQgYnkgdGhlIGJyb3dzZXIKIGh0dHAvdGVzdHMvbWlz
Yy9pbWFnZS1jaGVja3MtZm9yLWFjY2VwdC5odG1sCisKKyMgTm8gV2ViIFdpZGdldHMgc3VwcG9y
dAorZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12
aWV3LW1vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9tZWRp
YS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhZGU0YjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0IFtiZ2NvbG9yPSMwMDgwMDBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDc2M2Q3ZDguLjVjMmZiNjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC03NjcsMyArNzY3LDYgQEAgZmFzdC9sb2FkZXIvYXBpLXRl
c3QtbmV3LXdpbmRvdy1kYXRhLWxvYWQtYmFzZS11cmwuaHRtbAogCiAjIER1bXBSZW5kZXJUcmVl
IGNvZGUgdG8gZW5hYmxlIEphdmEgaXMgY3VycmVudGx5IGEgbm8tb3AuIFdpbmRvd3MgZG9lc24n
dCBjb21lIHdpdGggSmF2YSBieSBkZWZhdWx0LgogamF2YQorCisjIE5vIFdlYiBXaWRnZXRzIHN1
cHBvcnQKK2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM4Mjg0
My4uYjRlOTY0MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wMi0yNiAgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBlbmFibGluZyBXZWIgV2lkZ2V0cywgYWRkIHN1
cHBvcnQgZm9yIHRoZSB2aWV3LW1vZGUgbWVkaWEKKyAgICAgICAgZmVhdHVyZSAoaHR0cDovL3d3
dy53My5vcmcvVFIvd2lkZ2V0cy12bW1mLykuCisKKyAgICAgICAgQ3VycmVudGx5IHVzaW5nICgt
d2Via2l0LXZpZXctbW9kZTogbW9kZSkgYXMgc3ludGF4LCBhcyB0aGUKKyAgICAgICAgc3BlYyBp
cyBzdGlsbCBhIGRyYWZ0LgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWEvbWVkaWEtZmVhdHVy
ZS13Z3Qtdmlldy1tb2RlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
OgorICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oOgorICAgICAgICAqIGNzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZpZXdfbW9kZU1lZGlhRmVh
dHVyZUV2YWwpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnQ6OndlYldpZGdldFZpZXdNb2RlKToKKwogMjAxMC0wMi0yNiAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3
ZWQ6IHRvdWNoIEluc3BlY3RvckNvbnRyb2xsZXIgdG8gZm9yY2UgZnJvbnQtZW5kIGRlcGxveW1l
bnQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCBjYTJhNDdhLi4wNGNhM2JkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KQEAgLTcwMSwzICs3MDEsOSBAQCBnZW9tZXRyaWNQcmVjaXNpb24K
ICMgLXdlYmtpdC1jb2xvci1jb3JyZWN0aW9uCiAjZGVmYXVsdAogc1JHQgorCisjIC13ZWJraXQt
dmlldy1tb2RlCittaW5pCitmbG9hdGluZworYXBwbGljYXRpb24KK2Z1bGxzY3JlZW4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggYi9XZWJDb3JlL2Nzcy9NZWRp
YUZlYXR1cmVOYW1lcy5oCmluZGV4IDI3OTkwMDQuLjc1YmE1ODQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKKysrIGIvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJl
TmFtZXMuaApAQCAtMjUsNiArMjUsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBuYW1l
c3BhY2UgTWVkaWFGZWF0dXJlTmFtZXMgewogCisjaWYgRU5BQkxFKFdFQldJREdFVF9TVVBQT1JU
KQorI2RlZmluZSBDU1NfTUVESUFRVUVSWV9OQU1FU19GT1JfV0VCV0lER0VUX01FRElBRkVBVFVS
RShtYWNybykgXAorICAgIG1hY3JvKHZpZXdfbW9kZSwgIi13ZWJraXQtdmlldy1tb2RlIikKKyNl
bHNlCisjZGVmaW5lIENTU19NRURJQVFVRVJZX05BTUVTX0ZPUl9XRUJXSURHRVRfTUVESUFGRUFU
VVJFKG1hY3JvKQorI2VuZGlmCisKICNkZWZpbmUgQ1NTX01FRElBUVVFUllfTkFNRVNfRk9SX0VB
Q0hfTUVESUFGRUFUVVJFKG1hY3JvKSBcCiAgICAgbWFjcm8oY29sb3IsICJjb2xvciIpIFwKICAg
ICBtYWNybyhncmlkLCAiZ3JpZCIpIFwKQEAgLTU5LDYgKzY2LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIG1hY3JvKHRyYW5zZm9ybV8zZCwgIi13ZWJraXQtdHJhbnNmb3JtLTNkIikgXAog
ICAgIG1hY3JvKHRyYW5zaXRpb24sICItd2Via2l0LXRyYW5zaXRpb24iKSBcCiAgICAgbWFjcm8o
YW5pbWF0aW9uLCAiLXdlYmtpdC1hbmltYXRpb24iKSBcCisgICAgQ1NTX01FRElBUVVFUllfTkFN
RVNfRk9SX1dFQldJREdFVF9NRURJQUZFQVRVUkUobWFjcm8pCisKIC8vIGVuZCBvZiBtYWNybwog
CiAjaWZuZGVmIENTU19NRURJQVFVRVJZX05BTUVTX0hJREVfR0xPQkFMUwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA0OTYzZWQ0Li4wMGE2ZjI1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIk1lZGlhUXVlcnlF
dmFsdWF0b3IuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVu
dC5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVT
ZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgpAQCAtNDkyLDYgKzQ5MywxOCBA
QCBzdGF0aWMgYm9vbCB0cmFuc2Zvcm1fM2RNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZgogICAgIHJldHVybiByZXR1cm5WYWx1ZUlmTm9QYXJh
bWV0ZXI7CiB9CiAKKyNpZiBFTkFCTEUoV0VCV0lER0VUX1NVUFBPUlQpCitzdGF0aWMgYm9vbCB2
aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBG
cmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sKKyAgICBpZiAodmFsdWUpIHsK
KyAgICAgICAgU3RyaW5nIG1vZGUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZh
bHVlKS0+Z2V0U3RyaW5nVmFsdWUoKTsKKyAgICAgICAgaWYgKENocm9tZUNsaWVudCogY2xpZW50
ID0gZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKQorICAgICAgICAgICAgcmV0dXJu
IGNsaWVudC0+d2ViV2lkZ2V0Vmlld01vZGUoKSA9PSBtb2RlOworICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisjZW5kaWYKKwogc3RhdGljIHZvaWQgY3JlYXRlRnVuY3Rpb25NYXAoKQogewog
ICAgIC8vIENyZWF0ZSB0aGUgdGFibGUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYjA1ZDg1Yi4uNTU0
NDk0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjI5LDYgKzIyOSwxNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9vbCkgPSAwOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCV0lER0VUX1NVUFBPUlQpCisgICAgICAgIC8vIEFzIHRo
ZSB2aWV3IG1vZGUgaXMgY29tcGFyZWQgd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSBtZWRpYQorICAg
ICAgICAvLyBmZWF0dXJlICgtd2Via2l0LXZpZXctbW9kZTogbW9kZSksIHJldHVybmluZyBhIG51
bGxlZCBzdHJpbmcKKyAgICAgICAgLy8gaXMgYmFzaWNhbGx5IHRoZSBzYW1lIGFzIGRpc2FibGlu
ZyB2aWV3IG1vZGUKKyAgICAgICAgdmlydHVhbCBTdHJpbmcgd2ViV2lkZ2V0Vmlld01vZGUoKQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIH07CisjZW5k
aWYKKwogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAKaW5kZXggMmE4YWNlZC4uM2Y1ODUxMCAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAKQEAgLTExOSw2ICsxMTksMTUgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK3Zv
aWQgUVdFQktJVF9FWFBPUlQgcXRfd3J0X3NldFZpZXdNb2RlKFFXZWJQYWdlKiBwYWdlLCBjb25z
dCBRU3RyaW5nJiBtb2RlKQoreworICAgIFFXZWJQYWdlUHJpdmF0ZTo6cHJpdihwYWdlKS0+d2Vi
V2lkZ2V0Vmlld01vZGUgPSBtb2RlOworICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IFFXZWJG
cmFtZVByaXZhdGU6OmNvcmUocGFnZS0+bWFpbkZyYW1lKCkpOworICAgIFdlYkNvcmU6OkZyYW1l
VmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CisgICAgZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0
ZVN0eWxlU2VsZWN0b3IoKTsKKyAgICB2aWV3LT5mb3JjZUxheW91dCgpOworfQorCiB2b2lkIFFX
RUJLSVRfRVhQT1JUIHF0X2RydF9vdmVyd3JpdGVQbHVnaW5EaXJlY3RvcmllcygpCiB7CiAgICAg
UGx1Z2luRGF0YWJhc2UqIGRiID0gUGx1Z2luRGF0YWJhc2U6Omluc3RhbGxlZFBsdWdpbnMoLyog
cG9wdWxhdGUgKi8gZmFsc2UpOwpAQCAtNDg4LDYgKzQ5NywxMSBAQCBXZWJDb3JlOjpQYWdlKiBR
V2ViUGFnZVByaXZhdGU6OmNvcmUoUVdlYlBhZ2UqIHBhZ2UpCiAgICAgcmV0dXJuIHBhZ2UtPmQt
PnBhZ2U7CiB9CiAKK1FXZWJQYWdlUHJpdmF0ZSogUVdlYlBhZ2VQcml2YXRlOjpwcml2KFFXZWJQ
YWdlKiBwYWdlKQoreworICAgIHJldHVybiBwYWdlLT5kOworfQorCiBib29sIFFXZWJQYWdlUHJp
dmF0ZTo6YWNjZXB0TmF2aWdhdGlvblJlcXVlc3QoUVdlYkZyYW1lICpmcmFtZSwgY29uc3QgUU5l
dHdvcmtSZXF1ZXN0ICZyZXF1ZXN0LCBRV2ViUGFnZTo6TmF2aWdhdGlvblR5cGUgdHlwZSkKIHsK
ICAgICBpZiAoaW5zaWRlT3BlbkNhbGwKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBh
Z2VfcC5oIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZV9wLmgKaW5kZXggMTVkZGZiMi4uYTgwODk0
NiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZV9wLmgKKysrIGIvV2ViS2l0L3F0
L0FwaS9xd2VicGFnZV9wLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIH5RV2ViUGFn
ZVByaXZhdGUoKTsKIAogICAgIHN0YXRpYyBXZWJDb3JlOjpQYWdlKiBjb3JlKFFXZWJQYWdlKik7
CisgICAgc3RhdGljIFFXZWJQYWdlUHJpdmF0ZSogcHJpdihRV2ViUGFnZSopOwogCiAgICAgdm9p
ZCBjcmVhdGVNYWluRnJhbWUoKTsKICNpZm5kZWYgUVRfTk9fQ09OVEVYVE1FTlUKQEAgLTE4NSw2
ICsxODYsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpbnNwZWN0b3JJc0ludGVybmFsT25seTsgLy8g
VHJ1ZSBpZiBjcmVhdGVkIHRocm91Z2ggdGhlIEluc3BlY3QgY29udGV4dCBtZW51IGFjdGlvbgog
ICAgIFF0OjpEcm9wQWN0aW9uIG1fbGFzdERyb3BBY3Rpb247CiAKKyAgICBRU3RyaW5nIHdlYldp
ZGdldFZpZXdNb2RlOworCiAgICAgc3RhdGljIGJvb2wgZHJ0UnVuOwogfTsKIApkaWZmIC0tZ2l0
IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggM2VmNjFh
MC4uZTcwYTE5YiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQv
cXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDItMjYgIEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBpbnRlcm5hbCBRdCBBUEkgZm9yIGNo
YW5naW5nIHRoZSB2aWV3IG1vZGUgbWVkaWEgZmVhdHVyZQorICAgICAgICAoaHR0cDovL3d3dy53
My5vcmcvVFIvd2lkZ2V0cy12bW1mLykuCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgor
ICAgICAgICAocXRfd3J0X3NldFZpZXdNb2RlKToKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6
cHJpdik6CisgICAgICAgICogQXBpL3F3ZWJwYWdlX3AuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6d2ViV2lkZ2V0Vmlld01vZGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0Lmg6CisKIDIwMTAtMDItMjYgIEphbWV5IEhpY2tzICA8amFtZXkuaGlja3NAbm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IExhc3psbyBHb21ib3MuCmRpZmYgLS1naXQgYS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCBlY2JhYmU0Li44Y2JjODYyIDEw
MDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCisr
KyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTUwOCw0
ICs1MDgsMTAgQEAgUXRBYnN0cmFjdFdlYlBvcHVwKiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2Vs
ZWN0UG9wdXAoKQogICAgIHJldHVybiBuZXcgUXRGYWxsYmFja1dlYlBvcHVwOwogfQogCisjaWYg
RU5BQkxFKFdFQldJREdFVF9TVVBQT1JUKQorU3RyaW5nIENocm9tZUNsaWVudFF0Ojp3ZWJXaWRn
ZXRWaWV3TW9kZSgpCit7CisgICAgcmV0dXJuIFN0cmluZyhtX3dlYlBhZ2UtPmQtPndlYldpZGdl
dFZpZXdNb2RlKTsKK30KKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuaAppbmRleCBkYTNkYTU5Li40ZThjODg2IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMTUxLDYgKzE1MSw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqKSB7IH0KIAorICAg
ICAgICB2aXJ0dWFsIFN0cmluZyB3ZWJXaWRnZXRWaWV3TW9kZSgpOworCiAgICAgICAgIFF0QWJz
dHJhY3RXZWJQb3B1cCogY3JlYXRlU2VsZWN0UG9wdXAoKTsKIAogICAgICAgICBRV2ViUGFnZSog
bV93ZWJQYWdlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDJiNzY1ZGYuLmVhYmNiNjggMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMC0wMi0yNiAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGhvb2tzIHRvIHRoZSBRdCBEUlQgZm9yIHRlc3RpbmcgdGhlIHZpZXcgbW9kZSBtZWRpYSBm
ZWF0dXJlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Vmlld01vZGVNZWRp
YUZlYXR1cmUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuaDoKKwogMjAxMC0wMi0yNiAgSmFtZXkgSGlja3MgIDxqYW1leS5oaWNrc0Bub2tpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTGFzemxvIEdvbWJvcy4KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAK
aW5kZXggYTI2YmMzZC4uY2MyZDdjMyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTM2LDYgKzM2LDcg
QEAKICNpbmNsdWRlIDxRTG9jYWxlPgogI2luY2x1ZGUgPHF3ZWJzZXR0aW5ncy5oPgogCitleHRl
cm4gdm9pZCBxdF93cnRfc2V0Vmlld01vZGUoUVdlYlBhZ2UqLCBjb25zdCBRU3RyaW5nJiBtb2Rl
KTsKIGV4dGVybiB2b2lkIHF0X2R1bXBfZWRpdGluZ19jYWxsYmFja3MoYm9vbCBiKTsKIGV4dGVy
biB2b2lkIHF0X2R1bXBfZnJhbWVfbG9hZGVyKGJvb2wgYik7CiBleHRlcm4gdm9pZCBxdF9kdW1w
X3Jlc291cmNlX2xvYWRfY2FsbGJhY2tzKGJvb2wgYik7CkBAIC0xNDQsNiArMTQ1LDExIEBAIFFT
dHJpbmcgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNv
bnN0IFFTdHJpbmcmIGlkKQogICAgIHJldHVybiBxdF9kcnRfY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWQobV9kcnQtPndlYlBhZ2UoKS0+bWFpbkZyYW1lKCksIGlkKTsKIH0KIAordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoY29uc3QgUVN0cmluZyYg
bW9kZSkKK3sKKyAgICBxdF93cnRfc2V0Vmlld01vZGUobV9kcnQtPndlYlBhZ2UoKSwgbW9kZSk7
Cit9CisKIGludCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d2ViSGlzdG9yeUl0ZW1Db3VudCgpCiB7
CiAgICAgaWYgKCFtX3dlYkhpc3RvcnkpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKaW5kZXggZDczNzk0ZS4uNDQyYTk1
MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuaApAQCAtMTMxLDYgKzEzMSw3IEBAIHB1YmxpYyBzbG90czoKICAgICB2
b2lkIHNldFdpbmRvd0lzS2V5KGJvb2wgaXNLZXkpOwogICAgIHZvaWQgc2V0TWFpbkZyYW1lSXNG
aXJzdFJlc3BvbmRlcihib29sIGlzRmlyc3QpOwogICAgIHZvaWQgc2V0WFNTQXVkaXRvckVuYWJs
ZWQoYm9vbCBlbmFibGUpOworICAgIHZvaWQgc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoY29uc3Qg
UVN0cmluZyYgbW9kZSk7CiAKICAgICBib29sIHBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50
V2l0aElkKGNvbnN0IFFTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lLCBjb25zdCBR
U3RyaW5nJiBlbGVtZW50SWQpOwogICAgIGJvb2wgcGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVt
ZW50V2l0aElkKGNvbnN0IFFTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0
IFFTdHJpbmcmIGVsZW1lbnRJZCk7Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50979</attachid>
            <date>2010-03-17 17:32:25 -0700</date>
            <delta_ts>2010-03-22 13:42:36 -0700</delta_ts>
            <desc>Patch 2, addressing the comments and with support for &apos;all&apos;</desc>
            <filename>0001-JavaScriptCore-Add-an-enable-flag-for-the-Widgets-ht.patch</filename>
            <type>text/plain</type>
            <size>17353</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA2NTcyYjRkMmQ0NzIxNjViMDdmNzFjZDlmNjVkNWE1YjM1MTU5MjFiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBGcmksIDI2IEZlYiAyMDEwIDE3OjU4OjQ3IC0wMzAwClN1YmplY3Q6
IFtQQVRDSF0gSmF2YVNjcmlwdENvcmU6IEFkZCBhbiBlbmFibGUgZmxhZyBmb3IgdGhlIFdpZGdl
dHMgKGh0dHA6Ly93d3cudzMub3JnL1RSL3dpZGdldHMtcmVxcy8pCiBhbmQgdHVybiBpdCBvbiBm
b3IgUXQgb25seS4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiB3dGYvUGxhdGZvcm0u
aDoKCldlYkNvcmU6IFdoZW4gZW5hYmxpbmcgV2ViIFdpZGdldHMsIGFkZCBzdXBwb3J0IGZvciB0
aGUgdmlldy1tb2RlIG1lZGlhCmZlYXR1cmUgKGh0dHA6Ly93d3cudzMub3JnL1RSL3dpZGdldHMt
dm1tZi8pLgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUZXN0OiBmYXN0L21lZGlhL21l
ZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCgoqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
OgoqIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oOgoqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cDoKKFdlYkNvcmU6OnZpZXdfbW9kZU1lZGlhRmVhdHVyZUV2YWwpOgoqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CihXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OndlYldpZGdldFZpZXdNb2RlKToKCldlYktp
dC9xdDogQWRkIGFuIGludGVybmFsIFF0IEFQSSBmb3IgY2hhbmdpbmcgdGhlIHZpZXcgbW9kZSBt
ZWRpYSBmZWF0dXJlCihodHRwOi8vd3d3LnczLm9yZy9UUi93aWRnZXRzLXZtbWYvKS4KClJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBBcGkvcXdlYnBhZ2UuY3BwOgoocXRfd3J0X3NldFZp
ZXdNb2RlKToKKFFXZWJQYWdlUHJpdmF0ZTo6cHJpdik6CiogQXBpL3F3ZWJwYWdlX3AuaDoKKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6d2ViV2lkZ2V0Vmlld01vZGUpOgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6
CgpXZWJLaXRUb29sczogQWRkIGhvb2tzIHRvIHRoZSBRdCBEUlQgZm9yIHRlc3RpbmcgdGhlIHZp
ZXcgbW9kZSBtZWRpYSBmZWF0dXJlLgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIER1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKToKKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CgpMYXlvdXRUZXN0czogQWRkIGEgdGVzdCBhbmQgYW4g
ZXhwZWN0ZWQgcmVzdWx0IGZvciB0aGUgV2lkZ2V0cyAxLjA6IFZpZXcgTW9kZQpNZWRpYSBGZWF0
dXJlIChodHRwOi8vd3d3LnczLm9yZy9UUi93aWRnZXRzLXZtbWYvKS4KClJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKU2tpcCBvbiBhbGwgb3RoZXIgcGxhdGZvcm1zIHRoYW4gUXQsIHRoYXQg
aGFzIFNraXBwZWQgZmlsZXMuCgoqIGZhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1t
b2RlLmh0bWw6IEFkZGVkLgoqIGZhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2Rl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CiogcGxhdGZvcm0v
bWFjL1NraXBwZWQ6CiogcGxhdGZvcm0vd2luL1NraXBwZWQ6Ci0tLQogSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrKysKIEphdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArKysr
KwogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE1ICsrKysrKysrKysrKwogLi4uL2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1t
b2RlLmh0bWwgICAgfCAgIDI1ICsrKysrKysrKysrKysrKysrKysrCiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDMgKysKIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgNSArKystCiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDUgKysr
LQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE2ICsrKysrKysrKysrKwogV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiAgICAgICAg
ICAgICAgICAgICAgfCAgICA3ICsrKysrCiBXZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5o
ICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKysrKysrKwogV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysrKysrKysrKysrCiBXZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysr
KysrKysKIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxNCArKysrKysrKysrKwogV2ViS2l0L3F0L0FwaS9xd2VicGFnZV9wLmggICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAzICsrCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKysrKysrCiBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwICAgICAgICB8ICAgIDYgKysrKwogV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggICAgICAgICAgfCAgICAyICsKIFdlYktp
dFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysr
KysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwICAg
fCAgICA2ICsrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0
LmggICAgIHwgICAgMSArCiAyMCBmaWxlcyBjaGFuZ2VkLCAxODQgaW5zZXJ0aW9ucygrKSwgMiBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQ5YTdiYjMuLmY4
ZDYwZTQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wMi0yNiAgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIGVuYWJsZSBmbGFnIGZvciB0
aGUgV2lkZ2V0cyAoaHR0cDovL3d3dy53My5vcmcvVFIvd2lkZ2V0cy1yZXFzLykKKyAgICAgICAg
YW5kIHR1cm4gaXQgb24gZm9yIFF0IG9ubHkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoK
KwogMjAxMC0wMy0xNyAgTWlrZSBIb21leSAgPGdsYW5kaXVtQGRlYmlhbi5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCAz
Y2Q0MjkwLi44YmZjYzVmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtNTU0LDYgKzU1NCw5IEBA
CiAKICNpZiBQTEFURk9STShRVCkKICNkZWZpbmUgV1RGX1VTRV9RVDRfVU5JQ09ERSAxCisjaWYg
IWRlZmluZWQoRU5BQkxFX1dJREdFVFNfMTBfU1VQUE9SVCkKKyNkZWZpbmUgRU5BQkxFX1dJREdF
VFNfMTBfU1VQUE9SVCAxCisjZW5kaWYKICNlbGlmIE9TKFdJTkNFKQogI2RlZmluZSBXVEZfVVNF
X1dJTkNFX1VOSUNPREUgMQogI2VsaWYgUExBVEZPUk0oR1RLKQpAQCAtODA0LDYgKzgwNywxMCBA
QAogI2RlZmluZSBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQgMAogI2VuZGlmCiAKKyNpZiAhZGVm
aW5lZChFTkFCTEVfV0lER0VUU18xMF9TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVfV0lER0VUU18x
MF9TVVBQT1JUIDAKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUikKICNk
ZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUiAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NWUzYWJhLi4zZGNkNmQw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDItMjYgIEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgYW5kIGFuIGV4cGVjdGVkIHJlc3VsdCBm
b3IgdGhlIFdpZGdldHMgMS4wOiBWaWV3IE1vZGUKKyAgICAgICAgTWVkaWEgRmVhdHVyZSAoaHR0
cDovL3d3dy53My5vcmcvVFIvd2lkZ2V0cy12bW1mLykuCisKKyAgICAgICAgU2tpcCBvbiBhbGwg
b3RoZXIgcGxhdGZvcm1zIHRoYW4gUXQsIHRoYXQgaGFzIFNraXBwZWQgZmlsZXMuCisKKyAgICAg
ICAgKiBmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgor
CiAyMDEwLTAzLTE3ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zY2UzNzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbApAQCAtMCwwICsx
LDI1IEBACis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdGluZyBXaWRnZXRzIDEuMCBWaWV3IE1vZGUg
TWVkaWEgRmVhdHVyZTwvdGl0bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAg
ICAgZGl2IHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgfQor
ICAgICAgICBAbWVkaWEgKHZpZXctbW9kZTogbWluaSkgeworICAgICAgICAgICAgYm9keSB7Cisg
ICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBAbWVkaWEgKHZpZXctbW9kZTogYWxsKSB7CisgICAgICAgICAgICBk
aXYgeworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmkiKTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDA7IGhlaWdodDogMjAwOyJc
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA0MTJlOTZlLi4wOGRlZTlj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNTg1NCwzICs1ODU0LDYgQEAgcGx1Z2lu
cy9yZXNpemUtZnJvbS1wbHVnaW4uaHRtbAogIyBUaGlzIHRlc3QgY3Jhc2hlcyBzb21ldGltZXMu
CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjIyOAogcGx1Z2lu
cy9yZXR1cm4tZXJyb3ItZnJvbS1uZXctc3RyZWFtLWRvZXNudC1pbnZva2UtZGVzdHJveS1zdHJl
YW0uaHRtbAorCisjIE5vIFdpZGdldHMgMS4wIHN1cHBvcnQKK2Zhc3QvbWVkaWEvbWVkaWEtZmVh
dHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggNTM3
OThlMy4uYTZhNjYyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTEzOCw0ICsxMzgs
NyBAQCBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9ncmVzcy1wcm9wZXJ0aWVz
Lmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kYXRhVHJhbnNmZXItc2V0RGF0YS1nZXREYXRhLmh0
bWwKIAogIyBldmVudFNlbmRlciBuZWVkcyB0byBwcm9wYWdhdGUgdGhlIGV2ZW50IHRvIHRoZSBj
YWxsaW5nIHdpbmRvdywgbm90IHRoZSBtYWluIGZyYW1lIGFsd2F5cy4KLWh0dHAvdGVzdHMvcGx1
Z2lucy9wbHVnaW4tZG9jdW1lbnQtaGFzLWZvY3VzLmh0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCitodHRwL3Rlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWhhcy1mb2N1cy5odG1s
CisKKyMgTm8gV2lkZ2V0cyAxLjAgc3VwcG9ydAorZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdn
dC12aWV3LW1vZGUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA5YTFmNTBiLi5l
NzQ3Mjk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODA0LDQgKzgwNCw3IEBAIGZh
c3QvZXZlbnRzL3BsYXRmb3JtLXdoZWVsZXZlbnQtaW4tc2Nyb2xsaW5nLWRpdi5odG1sCiBmYXN0
L2V2ZW50cy9jb250aW51b3VzLXBsYXRmb3JtLXdoZWVsZXZlbnQtaW4tc2Nyb2xsaW5nLWRpdi5o
dG1sCiAKICMgV2luZG93cyBwb3J0IGRvZXNuJ3QgeWV0IHN1cHBvcnQgcmVuZGVyaW5nIG9mIG5v
bi1CTVAgY2hhcmFjdGVycyBldmVuIHRob3VnaCB0aGVyZSdzIGEgZm9udCBhdmFpbGFibGUuCi1m
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9wbGFuZTIuaHRtbCAKK2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL3BsYW5lMi5odG1sCisKKyMgTm8gV2lkZ2V0cyAxLjAgc3VwcG9ydAorZmFzdC9tZWRpYS9t
ZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZTU3ZmNhLi45ZjRlZTc2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDEwLTAyLTI2ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuIGVuYWJsaW5nIFdlYiBXaWRnZXRzLCBhZGQgc3VwcG9ydCBmb3IgdGhlIHZpZXct
bW9kZSBtZWRpYQorICAgICAgICBmZWF0dXJlIChodHRwOi8vd3d3LnczLm9yZy9UUi93aWRnZXRz
LXZtbWYvKS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZp
ZXctbW9kZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAg
ICAgKiBjc3MvTWVkaWFGZWF0dXJlTmFtZXMuaDoKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2
YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFs
KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50Ojp3ZWJXaWRnZXRWaWV3TW9kZSk6CisKIDIwMTAtMDMtMTcgIEpvc8OpIE1pbGzD
oW4gU290byAgPGptaWxsYW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggZTY4NGRhZi4uNzI0ZGIxZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC03MDksMyArNzA5LDEwIEBAIGdlb21ldHJpY1ByZWNp
c2lvbgogIyAtd2Via2l0LWNvbG9yLWNvcnJlY3Rpb24KICNkZWZhdWx0CiBzUkdCCisKKyMgKHZp
ZXctbW9kZTopIG1lZGlhIGZlYXR1cmU6CittaW5pCitmbG9hdGluZworYXBwbGljYXRpb24KK2Z1
bGxzY3JlZW4KKyNhbGwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVz
LmggYi9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCmluZGV4IDI3OTkwMDQuLjczNTZk
OGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKKysrIGIvV2Vi
Q29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaApAQCAtMjUsNiArMjUsMTMgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBuYW1lc3BhY2UgTWVkaWFGZWF0dXJlTmFtZXMgewogCisjaWYgRU5B
QkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKKyNkZWZpbmUgQ1NTX01FRElBUVVFUllfTkFNRVNfRk9S
X1dJREdFVFNfMTBfTUVESUFGRUFUVVJFKG1hY3JvKSBcCisgICAgbWFjcm8odmlld19tb2RlLCAi
dmlldy1tb2RlIikKKyNlbHNlCisjZGVmaW5lIENTU19NRURJQVFVRVJZX05BTUVTX0ZPUl9XSURH
RVRTXzEwX01FRElBRkVBVFVSRShtYWNybykKKyNlbmRpZgorCiAjZGVmaW5lIENTU19NRURJQVFV
RVJZX05BTUVTX0ZPUl9FQUNIX01FRElBRkVBVFVSRShtYWNybykgXAogICAgIG1hY3JvKGNvbG9y
LCAiY29sb3IiKSBcCiAgICAgbWFjcm8oZ3JpZCwgImdyaWQiKSBcCkBAIC01OSw2ICs2Niw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh0cmFuc2Zvcm1fM2QsICItd2Via2l0LXRy
YW5zZm9ybS0zZCIpIFwKICAgICBtYWNybyh0cmFuc2l0aW9uLCAiLXdlYmtpdC10cmFuc2l0aW9u
IikgXAogICAgIG1hY3JvKGFuaW1hdGlvbiwgIi13ZWJraXQtYW5pbWF0aW9uIikgXAorICAgIENT
U19NRURJQVFVRVJZX05BTUVTX0ZPUl9XSURHRVRTXzEwX01FRElBRkVBVFVSRShtYWNybykKKwog
Ly8gZW5kIG9mIG1hY3JvCiAKICNpZm5kZWYgQ1NTX01FRElBUVVFUllfTkFNRVNfSElERV9HTE9C
QUxTCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGFhODY3YjMuLjU1NWVmY2Ig
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNp
bmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCkBA
IC00OTQsNiArNDk1LDIzIEBAIHN0YXRpYyBib29sIHRyYW5zZm9ybV8zZE1lZGlhRmVhdHVyZUV2
YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmCiAgICAgcmV0dXJuIHJl
dHVyblZhbHVlSWZOb1BhcmFtZXRlcjsKIH0KIAorI2lmIEVOQUJMRShXSURHRVRTXzEwX1NVUFBP
UlQpCitzdGF0aWMgYm9vbCB2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sK
KyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgU3RyaW5nIG1vZGUgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3RyaW5nVmFsdWUoKTsKKyAgICAgICAgaWYgKENo
cm9tZUNsaWVudCogY2xpZW50ID0gZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKSB7
CisgICAgICAgICAgICBpZiAoY2xpZW50LT53ZWJXaWRnZXRWaWV3TW9kZSgpLmlzTnVsbCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gd2UgYXJlIG5vdCB1c2VkIGJ5IGEgV2lk
Z2V0IDEuMCBVc2VyIEFnZW50CisgICAgICAgICAgICBpZiAobW9kZSA9PSAiYWxsIikKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBjbGllbnQtPndlYldp
ZGdldFZpZXdNb2RlKCkgPT0gbW9kZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisjZW5kaWYKKwogc3RhdGljIHZvaWQgY3JlYXRlRnVuY3Rpb25NYXAoKQogewogICAg
IC8vIENyZWF0ZSB0aGUgdGFibGUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZTRiYzhkMS4uYWY5MmFm
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjMxLDYgKzIzMSwxNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9vbCkgPSAwOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoV0lER0VUU18xMF9TVVBQT1JUKQorICAgICAgICAvLyBBcyB0aGUg
dmlldyBtb2RlIGlzIGNvbXBhcmVkIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgbWVkaWEKKyAgICAg
ICAgLy8gZmVhdHVyZSAodmlldy1tb2RlOiBtb2RlKSwgcmV0dXJuaW5nIGEgbnVsbGVkIHN0cmlu
ZyBlcXVhbHMKKyAgICAgICAgLy8gZGlzYWJsaW5nIHZpZXcgbW9kZQorICAgICAgICB2aXJ0dWFs
IFN0cmluZyB3ZWJXaWRnZXRWaWV3TW9kZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICAgICAgfTsKKyNlbmRpZgorCiAgICAgcHJvdGVjdGVkOgogICAgICAg
ICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCBh
ZDgxMjI3Li43YjY0OThlIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAor
KysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApAQCAtMTE5LDYgKzExOSwxNSBAQAogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAordm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93cnRfc2V0
Vmlld01vZGUoUVdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFFTdHJpbmcmIG1vZGUpCit7CisgICAgUVdl
YlBhZ2VQcml2YXRlOjpwcml2KHBhZ2UpLT53ZWJXaWRnZXRWaWV3TW9kZSA9IG1vZGU7CisgICAg
V2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShwYWdlLT5tYWlu
RnJhbWUoKSk7CisgICAgV2ViQ29yZTo6RnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsK
KyAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVTZWxlY3RvcigpOworICAgIHZpZXct
PmZvcmNlTGF5b3V0KCk7Cit9CisKIHZvaWQgUVdFQktJVF9FWFBPUlQgcXRfZHJ0X292ZXJ3cml0
ZVBsdWdpbkRpcmVjdG9yaWVzKCkKIHsKICAgICBQbHVnaW5EYXRhYmFzZSogZGIgPSBQbHVnaW5E
YXRhYmFzZTo6aW5zdGFsbGVkUGx1Z2lucygvKiBwb3B1bGF0ZSAqLyBmYWxzZSk7CkBAIC00OTMs
NiArNTAyLDExIEBAIFdlYkNvcmU6OlBhZ2UqIFFXZWJQYWdlUHJpdmF0ZTo6Y29yZShRV2ViUGFn
ZSogcGFnZSkKICAgICByZXR1cm4gcGFnZS0+ZC0+cGFnZTsKIH0KIAorUVdlYlBhZ2VQcml2YXRl
KiBRV2ViUGFnZVByaXZhdGU6OnByaXYoUVdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIHBh
Z2UtPmQ7Cit9CisKIGJvb2wgUVdlYlBhZ2VQcml2YXRlOjphY2NlcHROYXZpZ2F0aW9uUmVxdWVz
dChRV2ViRnJhbWUgKmZyYW1lLCBjb25zdCBRTmV0d29ya1JlcXVlc3QgJnJlcXVlc3QsIFFXZWJQ
YWdlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQogewogICAgIGlmIChpbnNpZGVPcGVuQ2FsbApkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZV9wLmggYi9XZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlX3AuaAppbmRleCAxNWRkZmIyLi5hODA4OTQ2IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlX3AuaAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaApAQCAtNjQsNiAr
NjQsNyBAQCBwdWJsaWM6CiAgICAgflFXZWJQYWdlUHJpdmF0ZSgpOwogCiAgICAgc3RhdGljIFdl
YkNvcmU6OlBhZ2UqIGNvcmUoUVdlYlBhZ2UqKTsKKyAgICBzdGF0aWMgUVdlYlBhZ2VQcml2YXRl
KiBwcml2KFFXZWJQYWdlKik7CiAKICAgICB2b2lkIGNyZWF0ZU1haW5GcmFtZSgpOwogI2lmbmRl
ZiBRVF9OT19DT05URVhUTUVOVQpAQCAtMTg1LDYgKzE4Niw4IEBAIHB1YmxpYzoKICAgICBib29s
IGluc3BlY3RvcklzSW50ZXJuYWxPbmx5OyAvLyBUcnVlIGlmIGNyZWF0ZWQgdGhyb3VnaCB0aGUg
SW5zcGVjdCBjb250ZXh0IG1lbnUgYWN0aW9uCiAgICAgUXQ6OkRyb3BBY3Rpb24gbV9sYXN0RHJv
cEFjdGlvbjsKIAorICAgIFFTdHJpbmcgd2ViV2lkZ2V0Vmlld01vZGU7CisKICAgICBzdGF0aWMg
Ym9vbCBkcnRSdW47CiB9OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2Vi
S2l0L3F0L0NoYW5nZUxvZwppbmRleCA1NDZhYzM0Li5jMGY5OGYzIDEwMDY0NAotLS0gYS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxMC0wMi0yNiAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGFuIGludGVybmFsIFF0IEFQSSBmb3IgY2hhbmdpbmcgdGhlIHZpZXcgbW9kZSBtZWRpYSBm
ZWF0dXJlCisgICAgICAgIChodHRwOi8vd3d3LnczLm9yZy9UUi93aWRnZXRzLXZtbWYvKS4KKwor
ICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChxdF93cnRfc2V0Vmlld01vZGUp
OgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpwcml2KToKKyAgICAgICAgKiBBcGkvcXdlYnBh
Z2VfcC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0Ojp3ZWJXaWRnZXRWaWV3TW9kZSk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMC0wMy0xNyAgQ3Nh
YmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5jcHAKaW5kZXggZDU4ZTVlYi4uNmRlYzk0MiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC01MTYsNCArNTE2LDEwIEBAIFF0
QWJzdHJhY3RXZWJQb3B1cCogQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVwKCkKICAg
ICByZXR1cm4gbmV3IFF0RmFsbGJhY2tXZWJQb3B1cDsKIH0KIAorI2lmIEVOQUJMRShXSURHRVRT
XzEwX1NVUFBPUlQpCitTdHJpbmcgQ2hyb21lQ2xpZW50UXQ6OndlYldpZGdldFZpZXdNb2RlKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKG1fd2ViUGFnZS0+ZC0+d2ViV2lkZ2V0Vmlld01vZGUpOwor
fQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmlu
ZGV4IDI3NTEzNDIuLjg4M2ExZjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oCkBAIC0xNTQsNiArMTU0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1l
KiwgR2VvbG9jYXRpb24qKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSopIHsgfQogCisgICAgICAgIHZpcnR1YWwg
U3RyaW5nIHdlYldpZGdldFZpZXdNb2RlKCk7CisKICAgICAgICAgUXRBYnN0cmFjdFdlYlBvcHVw
KiBjcmVhdGVTZWxlY3RQb3B1cCgpOwogCiAgICAgICAgIFFXZWJQYWdlKiBtX3dlYlBhZ2U7CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cK
aW5kZXggMTE5YTc0ZC4uMzQ3ODllYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTAyLTI2
ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgaG9va3MgdG8g
dGhlIFF0IERSVCBmb3IgdGVzdGluZyB0aGUgdmlldyBtb2RlIG1lZGlhIGZlYXR1cmUuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorCiAy
MDEwLTAzLTE3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IGM4YTI5MjkuLjcxODY0
NTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8UUxvY2Fs
ZT4KICNpbmNsdWRlIDxxd2Vic2V0dGluZ3MuaD4KIAorZXh0ZXJuIHZvaWQgcXRfd3J0X3NldFZp
ZXdNb2RlKFFXZWJQYWdlKiwgY29uc3QgUVN0cmluZyYgbW9kZSk7CiBleHRlcm4gdm9pZCBxdF9k
dW1wX2VkaXRpbmdfY2FsbGJhY2tzKGJvb2wgYik7CiBleHRlcm4gdm9pZCBxdF9kdW1wX2ZyYW1l
X2xvYWRlcihib29sIGIpOwogZXh0ZXJuIHZvaWQgcXRfZHVtcF9yZXNvdXJjZV9sb2FkX2NhbGxi
YWNrcyhib29sIGIpOwpAQCAtMTQ1LDYgKzE0NiwxMSBAQCBRU3RyaW5nIExheW91dFRlc3RDb250
cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBRU3RyaW5nJiBpZCkKICAg
ICByZXR1cm4gcXRfZHJ0X2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKG1fZHJ0LT53ZWJQYWdl
KCktPm1haW5GcmFtZSgpLCBpZCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dFZpZXdNb2RlTWVkaWFGZWF0dXJlKGNvbnN0IFFTdHJpbmcmIG1vZGUpCit7CisgICAgcXRfd3J0
X3NldFZpZXdNb2RlKG1fZHJ0LT53ZWJQYWdlKCksIG1vZGUpOworfQorCiBpbnQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OndlYkhpc3RvcnlJdGVtQ291bnQoKQogewogICAgIGlmICghbV93ZWJIaXN0
b3J5KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oCmluZGV4IDhhOWYyNmYuLmUxYmJmMTcgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAg
LTEzNiw2ICsxMzYsNyBAQCBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJc0Zp
cnN0UmVzcG9uZGVyKGJvb2wgaXNGaXJzdCk7CiAgICAgdm9pZCBzZXRYU1NBdWRpdG9yRW5hYmxl
ZChib29sIGVuYWJsZSk7CiAgICAgdm9pZCBzZXRDYXJldEJyb3dzaW5nRW5hYmxlZChib29sIGVu
YWJsZSk7CisgICAgdm9pZCBzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZShjb25zdCBRU3RyaW5nJiBt
b2RlKTsKIAogICAgIGJvb2wgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoY29u
c3QgUVN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IFFTdHJpbmcmIGVs
ZW1lbnRJZCk7CiAgICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQo
Y29uc3QgUVN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgdGltZSwgY29uc3QgUVN0cmluZyYg
ZWxlbWVudElkKTsKLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="34166"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51345</attachid>
            <date>2010-03-22 13:42:36 -0700</date>
            <delta_ts>2010-03-29 14:45:33 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>0001-JavaScriptCore-Add-an-enable-flag-for-the-Widgets-ht.patch</filename>
            <type>text/plain</type>
            <size>18782</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA1NWI4MGFlOWJmMjVkZjZkYjJhNDI2MmI3OGIxNmU2NDNlZGU5MDJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBNb24sIDIyIE1hciAyMDEwIDE3OjQwOjIwIC0wMzAwClN1YmplY3Q6
IFtQQVRDSF0gSmF2YVNjcmlwdENvcmU6IEFkZCBhbiBlbmFibGUgZmxhZyBmb3IgdGhlIFdpZGdl
dHMgKGh0dHA6Ly93d3cudzMub3JnL1RSL3dpZGdldHMtcmVxcy8pCiBhbmQgdHVybiBpdCBvbiBm
b3IgUXQgb25seS4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiB3dGYvUGxhdGZvcm0u
aDoKCldlYkNvcmU6IFdoZW4gZW5hYmxpbmcgV2ViIFdpZGdldHMsIGFkZCBzdXBwb3J0IGZvciB0
aGUgdmlldy1tb2RlIG1lZGlhCmZlYXR1cmUgKGh0dHA6Ly93d3cudzMub3JnL1RSL3dpZGdldHMt
dm1tZi8pLgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUZXN0OiBmYXN0L21lZGlhL21l
ZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCgoqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
OgoqIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oOgoqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cDoKKFdlYkNvcmU6OnZpZXdfbW9kZU1lZGlhRmVhdHVyZUV2YWwpOgoqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CihXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmlzRG9ja2VkKToKKFdlYkNvcmU6OkNocm9t
ZUNsaWVudDo6aXNGbG9hdGluZyk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmlzQXBwbGljYXRp
b24pOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojppc0Z1bGxzY3JlZW4pOgoKV2ViS2l0L3F0OiBB
ZGQgYW4gaW50ZXJuYWwgUXQgQVBJIGZvciBjaGFuZ2luZyB0aGUgdmlldyBtb2RlIG1lZGlhIGZl
YXR1cmUKKGh0dHA6Ly93d3cudzMub3JnL1RSL3dpZGdldHMtdm1tZi8pLgoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgoqIEFwaS9xd2VicGFnZS5jcHA6CihxdF93cnRfc2V0Vmlld01vZGUp
OgooUVdlYlBhZ2VQcml2YXRlOjpwcml2KToKKiBBcGkvcXdlYnBhZ2VfcC5oOgoqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0Ojppc0Rv
Y2tlZCk6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6aXNGbG9hdGluZyk6CihXZWJDb3JlOjpD
aHJvbWVDbGllbnRRdDo6aXNBcHBsaWNhdGlvbik6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6
aXNGdWxsc2NyZWVuKToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgoKV2ViS2l0
VG9vbHM6IEFkZCBob29rcyB0byB0aGUgUXQgRFJUIGZvciB0ZXN0aW5nIHRoZSB2aWV3IG1vZGUg
bWVkaWEgZmVhdHVyZS4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBEdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZSk6CiogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oOgoKTGF5b3V0VGVzdHM6IEFkZCBhIHRlc3QgYW5kIGFuIGV4cGVjdGVk
IHJlc3VsdCBmb3IgdGhlIFdpZGdldHMgMS4wOiBWaWV3IE1vZGUKTWVkaWEgRmVhdHVyZSAoaHR0
cDovL3d3dy53My5vcmcvVFIvd2lkZ2V0cy12bW1mLykuCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KClNraXAgb24gYWxsIG90aGVyIHBsYXRmb3JtcyB0aGFuIFF0LCB0aGF0IGhhcyBTa2lw
cGVkIGZpbGVzLgoKKiBmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1s
OiBBZGRlZC4KKiBmYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgoqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgoqIHBsYXRmb3JtL21hYy9Ta2lw
cGVkOgoqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgotLS0KIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSArKysrKysrCiBKYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKysrKysKIExheW91
dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysr
KysrKysrKysKIC4uLi9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUtZXhwZWN0ZWQu
dHh0IHwgICAgNiArKysrCiAuLi4vZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1v
ZGUuaHRtbCAgICB8ICAgMjUgKysrKysrKysrKysrKysrKysrKysKIExheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMyArKwogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAzICsrCiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDMgKysKIFdl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSAr
KysrKysrKysrKysrKysKIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gICAgICAgICAg
ICAgICAgICAgIHwgICAgNyArKysrKwogV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCAg
ICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrKysKIFdlYkNvcmUvY3NzL01lZGlhUXVlcnlF
dmFsdWF0b3IuY3BwICAgICAgICAgICAgICAgIHwgICAyNCArKysrKysrKysrKysrKysrKysrCiBX
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcg
KysrKysKIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxNCArKysrKysrKysrKwogV2ViS2l0L3F0L0FwaS9xd2VicGFnZV9wLmggICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAzICsrCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTggKysrKysrKysrKysrKysKIFdlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgICAgICAgIHwgICAyMiArKysrKysrKysrKysr
KysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggICAgICAgICAg
fCAgICA3ICsrKysrCiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTAgKysrKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmNwcCAgIHwgICAgNiArKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5oICAgICB8ICAgIDEgKwogMjEgZmlsZXMgY2hhbmdlZCwgMjE4
IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUtZXhwZWN0ZWQudHh0
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJl
LXdndC12aWV3LW1vZGUuaHRtbAoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5NTk0NjEwLi45NzY0YjFlIDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDItMjYgIEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBlbmFibGUgZmxhZyBmb3IgdGhlIFdpZGdldHMg
KGh0dHA6Ly93d3cudzMub3JnL1RSL3dpZGdldHMtcmVxcy8pCisgICAgICAgIGFuZCB0dXJuIGl0
IG9uIGZvciBRdCBvbmx5LgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTAtMDMt
MjIgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3Jt
LmggYi9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCA5MmE4MGQzLi5hNmIxYjZi
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9KYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtNTU0LDYgKzU1NCw5IEBACiAKICNpZiBQTEFURk9S
TShRVCkKICNkZWZpbmUgV1RGX1VTRV9RVDRfVU5JQ09ERSAxCisjaWYgIWRlZmluZWQoRU5BQkxF
X1dJREdFVFNfMTBfU1VQUE9SVCkKKyNkZWZpbmUgRU5BQkxFX1dJREdFVFNfMTBfU1VQUE9SVCAx
CisjZW5kaWYKICNlbGlmIE9TKFdJTkNFKQogI2RlZmluZSBXVEZfVVNFX1dJTkNFX1VOSUNPREUg
MQogI2VsaWYgUExBVEZPUk0oR1RLKQpAQCAtODA0LDYgKzgwNywxMCBAQAogI2RlZmluZSBFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0lE
R0VUU18xMF9TVVBQT1JUKQorI2RlZmluZSBFTkFCTEVfV0lER0VUU18xMF9TVVBQT1JUIDAKKyNl
bmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUikKICNkZWZpbmUgRU5BQkxFX0lO
U1BFQ1RPUiAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxYTUwMGRjLi41ODJlNDg0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTAtMDItMjYgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIHRlc3QgYW5kIGFuIGV4cGVjdGVkIHJlc3VsdCBmb3IgdGhlIFdpZGdldHMg
MS4wOiBWaWV3IE1vZGUKKyAgICAgICAgTWVkaWEgRmVhdHVyZSAoaHR0cDovL3d3dy53My5vcmcv
VFIvd2lkZ2V0cy12bW1mLykuCisKKyAgICAgICAgU2tpcCBvbiBhbGwgb3RoZXIgcGxhdGZvcm1z
IHRoYW4gUXQsIHRoYXQgaGFzIFNraXBwZWQgZmlsZXMuCisKKyAgICAgICAgKiBmYXN0L21lZGlh
L21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTAzLTIyICBO
YXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
Q2hyb21pdW0gZXhwZWN0YXRpb25zIHR3ZWFrLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tZWRpYS1mZWF0dXJlLXdndC12aWV3LW1vZGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2NzEzMjMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9k
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0IFtiZ2NvbG9yPSMwMDAw
RkZdCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIwMHgyMDAgW2JnY29s
b3I9IzAwODAwMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbWVkaWEtZmVh
dHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21lZGlhLWZl
YXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjliNmViNWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21l
ZGlhLWZlYXR1cmUtd2d0LXZpZXctbW9kZS5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzxoZWFkPgor
ICAgIDx0aXRsZT5UZXN0aW5nIFdpZGdldHMgMS4wIFZpZXcgTW9kZSBNZWRpYSBGZWF0dXJlPC90
aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICBkaXYgeworICAgICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICB9CisgICAgICAgIEBtZWRpYSAo
LXdlYmtpdC12aWV3LW1vZGU6IG1pbmkpIHsKKyAgICAgICAgICAgIGJvZHkgeworICAgICAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgQG1lZGlhICgtd2Via2l0LXZpZXctbW9kZTogYWxsKSB7CisgICAgICAgICAgICBk
aXYgeworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoIm1pbmkiKTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyMDA7IGhlaWdodDogMjAwOyJc
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBiZWNjYmQ5Li4zZDRiZmI4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNTgzOCwzICs1ODM4LDYgQEAgcGx1Z2lu
cy9yZXR1cm4tZXJyb3ItZnJvbS1uZXctc3RyZWFtLWRvZXNudC1pbnZva2UtZGVzdHJveS1zdHJl
YW0uaHRtbAogCiAjIE1pc3NlcyBzZXRNZWRpYVR5cGUoKSBpbXBsZW1lbnRhdGlvbgogZmFzdC9t
ZWRpYS9wcmludC1yZXN0b3Jlcy1wcmV2aW91cy1tZWRpYXR5cGUuaHRtbAorCisjIE5vIFdpZGdl
dHMgMS4wIHN1cHBvcnQKK2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggNjI3N2JiYi4uY2M5NTUzMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTE0MiwzICsxNDIsNiBAQCBodHRwL3Rlc3RzL3BsdWdp
bnMvcGx1Z2luLWRvY3VtZW50LWhhcy1mb2N1cy5odG1sCiAKICMgTWlzc2VzIHNldE1lZGlhVHlw
ZSgpIGFuZCBpbXBsZW1lbnRhdGlvbgogZmFzdC9tZWRpYS9wcmludC1yZXN0b3Jlcy1wcmV2aW91
cy1tZWRpYXR5cGUuaHRtbAorCisjIE5vIFdpZGdldHMgMS4wIHN1cHBvcnQKK2Zhc3QvbWVkaWEv
bWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQK
aW5kZXggNDY3ZTRkZC4uZjJhODNlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTgw
OCwzICs4MDgsNiBAQCBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9wbGFuZTIuaHRtbAogCiAjIE1p
c3NlcyBzZXRNZWRpYVR5cGUoKSBpbXBsZW1lbnRhdGlvbgogZmFzdC9tZWRpYS9wcmludC1yZXN0
b3Jlcy1wcmV2aW91cy1tZWRpYXR5cGUuaHRtbAorCisjIE5vIFdpZGdldHMgMS4wIHN1cHBvcnQK
K2Zhc3QvbWVkaWEvbWVkaWEtZmVhdHVyZS13Z3Qtdmlldy1tb2RlLmh0bWwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDIzNGFkZS4uOGY3
MDYxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wMy0yMiAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiBlbmFibGluZyBXZWIgV2lkZ2V0cywgYWRkIHN1cHBvcnQg
Zm9yIHRoZSB2aWV3LW1vZGUgbWVkaWEKKyAgICAgICAgZmVhdHVyZSAoaHR0cDovL3d3dy53My5v
cmcvVFIvd2lkZ2V0cy12bW1mLykuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYS9tZWRpYS1m
ZWF0dXJlLXdndC12aWV3LW1vZGUuaHRtbAorCisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW46CisgICAgICAgICogY3NzL01lZGlhRmVhdHVyZU5hbWVzLmg6CisgICAgICAgICogY3Nz
L01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmlld19tb2RlTWVk
aWFGZWF0dXJlRXZhbCk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNEb2NrZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50Ojppc0Zsb2F0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6
aXNBcHBsaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmlzRnVsbHNj
cmVlbik6CisKIDIwMTAtMDMtMjIgIEpha3ViIFdpZWN6b3JlayAgPGZhdzIxN0BnbWFpbC5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgppbmRleCBlNjg0ZGFmLi45ZDdlZDZjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KQEAgLTcwOSwzICs3MDksMTAgQEAgZ2VvbWV0cmljUHJlY2lzaW9uCiAjIC13ZWJr
aXQtY29sb3ItY29ycmVjdGlvbgogI2RlZmF1bHQKIHNSR0IKKworIyAoLXdlYmtpdC12aWV3LW1v
ZGU6KSBtZWRpYSBmZWF0dXJlOgorbWluaQorZmxvYXRpbmcKK2FwcGxpY2F0aW9uCitmdWxsc2Ny
ZWVuCisjYWxsCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIGIv
V2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaAppbmRleCAyNzk5MDA0Li44YWFlZGIyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCisrKyBiL1dlYkNvcmUv
Y3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKQEAgLTI1LDYgKzI1LDEzIEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgbmFtZXNwYWNlIE1lZGlhRmVhdHVyZU5hbWVzIHsKIAorI2lmIEVOQUJMRShX
SURHRVRTXzEwX1NVUFBPUlQpCisjZGVmaW5lIENTU19NRURJQVFVRVJZX05BTUVTX0ZPUl9XSURH
RVRTXzEwX01FRElBRkVBVFVSRShtYWNybykgXAorICAgIG1hY3JvKHZpZXdfbW9kZSwgIi13ZWJr
aXQtdmlldy1tb2RlIikKKyNlbHNlCisjZGVmaW5lIENTU19NRURJQVFVRVJZX05BTUVTX0ZPUl9X
SURHRVRTXzEwX01FRElBRkVBVFVSRShtYWNybykKKyNlbmRpZgorCiAjZGVmaW5lIENTU19NRURJ
QVFVRVJZX05BTUVTX0ZPUl9FQUNIX01FRElBRkVBVFVSRShtYWNybykgXAogICAgIG1hY3JvKGNv
bG9yLCAiY29sb3IiKSBcCiAgICAgbWFjcm8oZ3JpZCwgImdyaWQiKSBcCkBAIC01OSw2ICs2Niw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh0cmFuc2Zvcm1fM2QsICItd2Via2l0
LXRyYW5zZm9ybS0zZCIpIFwKICAgICBtYWNybyh0cmFuc2l0aW9uLCAiLXdlYmtpdC10cmFuc2l0
aW9uIikgXAogICAgIG1hY3JvKGFuaW1hdGlvbiwgIi13ZWJraXQtYW5pbWF0aW9uIikgXAorICAg
IENTU19NRURJQVFVRVJZX05BTUVTX0ZPUl9XSURHRVRTXzEwX01FRElBRkVBVFVSRShtYWNybykK
KwogLy8gZW5kIG9mIG1hY3JvCiAKICNpZm5kZWYgQ1NTX01FRElBUVVFUllfTkFNRVNfSElERV9H
TE9CQUxTCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBi
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGFhODY3YjMuLjhlYWEx
ZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBi
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIK
ICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0Lmgi
CkBAIC00OTQsNiArNDk1LDI5IEBAIHN0YXRpYyBib29sIHRyYW5zZm9ybV8zZE1lZGlhRmVhdHVy
ZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmCiAgICAgcmV0dXJu
IHJldHVyblZhbHVlSWZOb1BhcmFtZXRlcjsKIH0KIAorI2lmIEVOQUJMRShXSURHRVRTXzEwX1NV
UFBPUlQpCitzdGF0aWMgYm9vbCB2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2
YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkK
K3sKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgU3RyaW5nIG1vZGUgPSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3RyaW5nVmFsdWUoKTsKKyAgICAgICAgaWYg
KENocm9tZUNsaWVudCogY2xpZW50ID0gZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgp
KSB7CisgICAgICAgICAgICBpZiAobW9kZSA9PSAiYWxsIikKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChtb2RlID09ICJtaW5pIiAmJiBjbGllbnQtPmlzRG9j
a2VkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBpZiAobW9k
ZSA9PSAiZmxvYXRpbmciICYmIGNsaWVudC0+aXNGbG9hdGluZygpKQorICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgaWYgKG1vZGUgPT0gImFwcGxpY2F0aW9uIiAmJiBj
bGllbnQtPmlzQXBwbGljYXRpb24oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChtb2RlID09ICJmdWxsc2NyZWVuIiAmJiBjbGllbnQtPmlzRnVsbHNjcmVl
bigpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiBz
dGF0aWMgdm9pZCBjcmVhdGVGdW5jdGlvbk1hcCgpCiB7CiAgICAgLy8gQ3JlYXRlIHRoZSB0YWJs
ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAppbmRleCBlNGJjOGQxLi43YWQ3ZWI1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CkBAIC0yMzEsNiArMjMxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSA9IDA7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShX
SURHRVRTXzEwX1NVUFBPUlQpCisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0RvY2tlZCgpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0aW5nKCkgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICAgICAgdmlydHVhbCBib29sIGlzQXBwbGljYXRpb24oKSB7IHJldHVybiBm
YWxzZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCkgeyByZXR1cm4gZmFs
c2U7IH0KKyNlbmRpZgorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIH5DaHJvbWVD
bGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCAxYTAxN2EwLi45ZTUyNmVmIDEw
MDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9XZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlLmNwcApAQCAtMTE5LDYgKzExOSwxNSBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAordm9pZCBRV0VCS0lUX0VYUE9SVCBxdF93cnRfc2V0Vmlld01vZGUoUVdlYlBhZ2Uq
IHBhZ2UsIGNvbnN0IFFTdHJpbmcmIG1vZGUpCit7CisgICAgUVdlYlBhZ2VQcml2YXRlOjpwcml2
KHBhZ2UpLT52aWV3TW9kZSA9IG1vZGU7CisgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdl
YkZyYW1lUHJpdmF0ZTo6Y29yZShwYWdlLT5tYWluRnJhbWUoKSk7CisgICAgV2ViQ29yZTo6RnJh
bWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBk
YXRlU3R5bGVTZWxlY3RvcigpOworICAgIHZpZXctPmZvcmNlTGF5b3V0KCk7Cit9CisKIHZvaWQg
UVdFQktJVF9FWFBPUlQgcXRfZHJ0X292ZXJ3cml0ZVBsdWdpbkRpcmVjdG9yaWVzKCkKIHsKICAg
ICBQbHVnaW5EYXRhYmFzZSogZGIgPSBQbHVnaW5EYXRhYmFzZTo6aW5zdGFsbGVkUGx1Z2lucygv
KiBwb3B1bGF0ZSAqLyBmYWxzZSk7CkBAIC00OTMsNiArNTAyLDExIEBAIFdlYkNvcmU6OlBhZ2Uq
IFFXZWJQYWdlUHJpdmF0ZTo6Y29yZShRV2ViUGFnZSogcGFnZSkKICAgICByZXR1cm4gcGFnZS0+
ZC0+cGFnZTsKIH0KIAorUVdlYlBhZ2VQcml2YXRlKiBRV2ViUGFnZVByaXZhdGU6OnByaXYoUVdl
YlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIHBhZ2UtPmQ7Cit9CisKIGJvb2wgUVdlYlBhZ2VQ
cml2YXRlOjphY2NlcHROYXZpZ2F0aW9uUmVxdWVzdChRV2ViRnJhbWUgKmZyYW1lLCBjb25zdCBR
TmV0d29ya1JlcXVlc3QgJnJlcXVlc3QsIFFXZWJQYWdlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQog
ewogICAgIGlmIChpbnNpZGVPcGVuQ2FsbApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZV9wLmggYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaAppbmRleCAxNWRkZmIyLi4wNzEy
ZDBjIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaAorKysgYi9XZWJLaXQv
cXQvQXBpL3F3ZWJwYWdlX3AuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgflFXZWJQ
YWdlUHJpdmF0ZSgpOwogCiAgICAgc3RhdGljIFdlYkNvcmU6OlBhZ2UqIGNvcmUoUVdlYlBhZ2Uq
KTsKKyAgICBzdGF0aWMgUVdlYlBhZ2VQcml2YXRlKiBwcml2KFFXZWJQYWdlKik7CiAKICAgICB2
b2lkIGNyZWF0ZU1haW5GcmFtZSgpOwogI2lmbmRlZiBRVF9OT19DT05URVhUTUVOVQpAQCAtMTg1
LDYgKzE4Niw4IEBAIHB1YmxpYzoKICAgICBib29sIGluc3BlY3RvcklzSW50ZXJuYWxPbmx5OyAv
LyBUcnVlIGlmIGNyZWF0ZWQgdGhyb3VnaCB0aGUgSW5zcGVjdCBjb250ZXh0IG1lbnUgYWN0aW9u
CiAgICAgUXQ6OkRyb3BBY3Rpb24gbV9sYXN0RHJvcEFjdGlvbjsKIAorICAgIFFTdHJpbmcgdmll
d01vZGU7CisKICAgICBzdGF0aWMgYm9vbCBkcnRSdW47CiB9OwogCmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA2MDA5YTZlLi5mZjRh
YzY3IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wMy0yMiAgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIGludGVybmFsIFF0IEFQSSBmb3IgY2hhbmdpbmcg
dGhlIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlCisgICAgICAgIChodHRwOi8vd3d3LnczLm9yZy9U
Ui93aWRnZXRzLXZtbWYvKS4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAg
IChxdF93cnRfc2V0Vmlld01vZGUpOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpwcml2KToK
KyAgICAgICAgKiBBcGkvcXdlYnBhZ2VfcC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0Ojppc0Rv
Y2tlZCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6aXNGbG9hdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6aXNBcHBsaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6aXNGdWxsc2NyZWVuKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDEwLTAzLTIyICBKYWt1YiBXaWVjem9y
ZWsgIDxqd2llY3pvcmVrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
SGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApp
bmRleCBkNThlNWViLi5iNmRkNjgxIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5jcHAKQEAgLTUxNiw0ICs1MTYsMjYgQEAgUXRBYnN0cmFjdFdlYlBvcHVwKiBD
aHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0UG9wdXAoKQogICAgIHJldHVybiBuZXcgUXRGYWxs
YmFja1dlYlBvcHVwOwogfQogCisjaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKK2Jvb2wg
Q2hyb21lQ2xpZW50UXQ6OmlzRG9ja2VkKCkKK3sKKyAgICByZXR1cm4gbV93ZWJQYWdlLT5kLT52
aWV3TW9kZSA9PSAibWluaSI7Cit9CisKK2Jvb2wgQ2hyb21lQ2xpZW50UXQ6OmlzRmxvYXRpbmco
KQoreworICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPnZpZXdNb2RlID09ICJmbG9hdGluZyI7Cit9
CisKK2Jvb2wgQ2hyb21lQ2xpZW50UXQ6OmlzQXBwbGljYXRpb24oKQoreworICAgIHJldHVybiBt
X3dlYlBhZ2UtPmQtPnZpZXdNb2RlID09ICJhcHBsaWNhdGlvbiI7Cit9CisKK2Jvb2wgQ2hyb21l
Q2xpZW50UXQ6OmlzRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIG1fd2ViUGFnZS0+ZC0+dmll
d01vZGUgPT0gImZ1bGxzY3JlZW4iOworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggMjc1MTM0Mi4uZmIyNjk2YiAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTE1NCw2ICsxNTQsMTMgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFt
ZSopIHsgfQogCisjaWYgRU5BQkxFKFdJREdFVFNfMTBfU1VQUE9SVCkKKyAgICAgICAgdmlydHVh
bCBib29sIGlzRG9ja2VkKCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0aW5nKCk7Cisg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc0FwcGxpY2F0aW9uKCk7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0Z1bGxzY3JlZW4oKTsKKyNlbmRpZgorCiAgICAgICAgIFF0QWJzdHJhY3RXZWJQb3B1cCog
Y3JlYXRlU2VsZWN0UG9wdXAoKTsKIAogICAgICAgICBRV2ViUGFnZSogbV93ZWJQYWdlOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDI3ZDdmZWMuLmFkOTFkYmMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZwor
KysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wMi0yNiAg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGhvb2tzIHRvIHRo
ZSBRdCBEUlQgZm9yIHRlc3RpbmcgdGhlIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKwogMjAx
MC0wMy0yMiAgQ2hyaXMgSmVyZG9uZWsgIDxjamVyZG9uZWtAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCA3MDg3OTI0Li5i
OGZlYmY4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPFFM
b2NhbGU+CiAjaW5jbHVkZSA8cXdlYnNldHRpbmdzLmg+CiAKK2V4dGVybiB2b2lkIHF0X3dydF9z
ZXRWaWV3TW9kZShRV2ViUGFnZSosIGNvbnN0IFFTdHJpbmcmIG1vZGUpOwogZXh0ZXJuIHZvaWQg
cXRfZHVtcF9lZGl0aW5nX2NhbGxiYWNrcyhib29sIGIpOwogZXh0ZXJuIHZvaWQgcXRfZHVtcF9m
cmFtZV9sb2FkZXIoYm9vbCBiKTsKIGV4dGVybiB2b2lkIHF0X2R1bXBfcmVzb3VyY2VfbG9hZF9j
YWxsYmFja3MoYm9vbCBiKTsKQEAgLTE0Niw2ICsxNDcsMTEgQEAgUVN0cmluZyBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgUVN0cmluZyYgaWQp
CiAgICAgcmV0dXJuIHF0X2RydF9jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChtX2RydC0+d2Vi
UGFnZSgpLT5tYWluRnJhbWUoKSwgaWQpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZShjb25zdCBRU3RyaW5nJiBtb2RlKQoreworICAgIHF0
X3dydF9zZXRWaWV3TW9kZShtX2RydC0+d2ViUGFnZSgpLCBtb2RlKTsKK30KKwogaW50IExheW91
dFRlc3RDb250cm9sbGVyOjp3ZWJIaXN0b3J5SXRlbUNvdW50KCkKIHsKICAgICBpZiAoIW1fd2Vi
SGlzdG9yeSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCA1Y2Y1MTA0Li5hNTYyZmQzIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5o
CkBAIC0xMzgsNiArMTM4LDcgQEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQgc2V0TWFpbkZyYW1l
SXNGaXJzdFJlc3BvbmRlcihib29sIGlzRmlyc3QpOwogICAgIHZvaWQgc2V0WFNTQXVkaXRvckVu
YWJsZWQoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9v
bCBlbmFibGUpOworICAgIHZvaWQgc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoY29uc3QgUVN0cmlu
ZyYgbW9kZSk7CiAKICAgICBib29sIHBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElk
KGNvbnN0IFFTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lLCBjb25zdCBRU3RyaW5n
JiBlbGVtZW50SWQpOwogICAgIGJvb2wgcGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0
aElkKGNvbnN0IFFTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IFFTdHJp
bmcmIGVsZW1lbnRJZCk7Ci0tIAoxLjYuMy4zCgo=
</data>
<flag name="review"
          id="34582"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>