<?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>47202</bug_id>
          
          <creation_ts>2010-10-05 12:47:43 -0700</creation_ts>
          <short_desc>Adding Qt WebKit2 API for dealing with viewport meta info</short_desc>
          <delta_ts>2010-10-11 07:43:27 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>andersca</cc>
    
    <cc>aroben</cc>
    
    <cc>christian.webkit</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>joone</cc>
    
    <cc>kbalazs</cc>
    
    <cc>kimmo.t.kinnunen</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>luiz</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>289815</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-05 12:47:43 -0700</bug_when>
    <thetext>I&apos;m looking into exposing the viewport meta tag info to WebKit2 and we need to discuss now such an API should look like

How does it work:

1. The user should be notified when the current viewport data gets invalidated so that it can be recomputed.

Currently we have a ChromeClient::dispatchDidChangeViewportData which can be used for that, which is called when the meta info changes (if check for change when new meta data is received and when the body is inserted into the document in case no viewport meta tag was encountered).

2. page-&gt;viewportArguments() can be used to get the current web author provided arguments.

The things is that the raw data provided by the web author needs to be treated to be useful for a browser. There is now a method in webcore for that which needs data such as the actual visible view (think the iphone minus ui components), plus the global device specifics such as device height.


An idea for a C API:

1. add a callback to the UI client, much like ViewportAttributesInvalidated or so.
2. add something like the below for calculating the viewport (maximum scale, minimum-scale, viewport layout width, etc)

WK_EXPORT ... WKPageComputeViewportAttributes(WKPageRef page, int visibleWidth, int visibleHeight, int desktopWidth, int deviceWidth, int deviceHeight, int deviceDPI);

I wonder if it makes sense returning just a struct or make a new C type, WKViewportAttributesRef with methods such as WKViewportAttributesGetMaximumScale() etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289855</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-05 13:51:18 -0700</bug_when>
    <thetext>Example API:

// Call to set the initial viewport (before first load) and every time the visible area changes in your app - ie. when you rotate your phone.

WK_EXPORT ViewportAttributesRef WKPageComputeViewportAttributes(WKPageRef page, int visibleWidth, int visibleHeight, int desktopWidth, int deviceWidth, int deviceHeight, int deviceDPI);

// Callback called every time the viewport attributes much be updated.

typedef void (*WKPageViewportAttributesInvalidatedCallback)(WKPageRef page, const void *clientInfo);

// Getter methods

WK_EXPORT int WKViewportArgumentsGetLayoutWidth(WKViewportAttributesRef viewportAttr);
WK_EXPORT int WKViewportArgumentsGetLayoutHeight(WKViewportAttributesRef viewportAttr);
WK_EXPORT float WKViewportArgumentsGetInitialScaleFactor(WKViewportAttributesRef viewportAttr);
WK_EXPORT float WKViewportArgumentsGetMinimumScaleFactor(WKViewportAttributesRef viewportAttr);
WK_EXPORT float WKViewportArgumentsGetMaximumScaleFactor(WKViewportAttributesRef viewportAttr);
WK_EXPORT float WKViewportArgumentsGetPixelRatio(WKViewportAttributesRef viewportAttr);
WK_EXPORT bool WKViewportArgumentsGetIsUserScalable(WKViewportAttributesRef viewportAttr);


I guess WKViewportAttributes should map to a new WebKit class or to WebCore::ViewportConfiguration which currently exists, and it being returned by WebCore::findConfigurationForViewportData(ViewportArguments...).

Comments welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289860</commentid>
    <comment_count>2</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-05 13:58:22 -0700</bug_when>
    <thetext>This API looks generally good to me, assuming that we need to leave the door open for future attribute additions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289867</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-05 14:03:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This API looks generally good to me, assuming that we need to leave the door open for future attribute additions.

I&apos;m considering renaming WebCore::ViewportConfiguration to WebCore::ViewportAttributes and WebCore::findConfigurationForViewportData(...) to WebCore::computeViewportAttributes(...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289908</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-05 14:59:32 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Example API:
&gt; 
&gt; // Call to set the initial viewport (before first load) and every time the visible area changes in your app - ie. when you rotate your phone.
&gt; 
&gt; WK_EXPORT ViewportAttributesRef WKPageComputeViewportAttributes(WKPageRef page, int visibleWidth, int visibleHeight, int desktopWidth, int deviceWidth, int deviceHeight, int deviceDPI);

ViewportAttributesRef should be prefixed with &quot;WK&quot;: WKViewportAttributesRef.

The WebKit2 C API currently follows CoreFoundation&apos;s conventions regarding ref-counted types:
1) Types ending in &quot;Ref&quot; are assumed to be ref-counted using WKRetain/WKRelease
2) Functions that return ref-counted types should either have &quot;Get&quot;, &quot;Create&quot;, or &quot;Copy&quot; in their name

(2) is important so that the caller knows whether they need to call WKRelease on the returned pointer. You have to call WKRelease for Create- or Copy-style functions, but not for Get-style functions.

I&apos;ll leave the other issues to Sam and Anders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290016</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-05 18:13:46 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #1)
&gt; &gt; Example API:
&gt; &gt; 
&gt; &gt; // Call to set the initial viewport (before first load) and every time the visible area changes in your app - ie. when you rotate your phone.
&gt; &gt; 
&gt; &gt; WK_EXPORT ViewportAttributesRef WKPageComputeViewportAttributes(WKPageRef page, int visibleWidth, int visibleHeight, int desktopWidth, int deviceWidth, int deviceHeight, int deviceDPI);
&gt; 
&gt; ViewportAttributesRef should be prefixed with &quot;WK&quot;: WKViewportAttributesRef.

Oh, that was a typo from my side.

&gt; The WebKit2 C API currently follows CoreFoundation&apos;s conventions regarding ref-counted types:
&gt; 1) Types ending in &quot;Ref&quot; are assumed to be ref-counted using WKRetain/WKRelease
&gt; 2) Functions that return ref-counted types should either have &quot;Get&quot;, &quot;Create&quot;, or &quot;Copy&quot; in their name
&gt; 
&gt; (2) is important so that the caller knows whether they need to call WKRelease on the returned pointer. You have to call WKRelease for Create- or Copy-style functions, but not for Get-style functions.
&gt; 
&gt; I&apos;ll leave the other issues to Sam and Anders.

Got it! Thanks for the explanation.

What about?

WK_EXPORT WKViewportAttributesRef WKPageCreateComputedViewportAttributes(...) 

or do you have any better idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290193</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-06 04:33:35 -0700</bug_when>
    <thetext>Someone suggested calling this WKViewportFeaturesRef instead of WKViewportAttributesRef. 

I would like to know what name you think best describes the structure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290208</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-06 04:54:34 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; What about?
&gt; 
&gt; WK_EXPORT WKViewportAttributesRef WKPageCreateComputedViewportAttributes(...) 
&gt; 
&gt; or do you have any better idea?

I&apos;m not sure &quot;Computed&quot; adds anything here. And &quot;Copy&quot; makes a little more sense to me, since these seem to me to be a property of the page, rather than an entirely separate object that the page is just a factory for. So WKPageCopyViewportAttributes seems like a good name to me.

As I said in bug 47256, I think it would be useful to discuss use-cases for the API as well. That way we&apos;ll know if the API we&apos;re designing will actually work for anyone!

(In reply to comment #6)
&gt; Someone suggested calling this WKViewportFeaturesRef instead of WKViewportAttributesRef. 
&gt; 
&gt; I would like to know what name you think best describes the structure.

&quot;Attributes&quot; seems better than &quot;Features&quot;. It&apos;s strange to think about something like &quot;width&quot; being a &quot;feature&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290217</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-06 05:06:37 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; What about?
&gt; &gt; 
&gt; &gt; WK_EXPORT WKViewportAttributesRef WKPageCreateComputedViewportAttributes(...) 
&gt; &gt; 
&gt; &gt; or do you have any better idea?
&gt; 
&gt; I&apos;m not sure &quot;Computed&quot; adds anything here. And &quot;Copy&quot; makes a little more sense to me, since these seem to me to be a property of the page, rather than an entirely separate object that the page is just a factory for. So WKPageCopyViewportAttributes seems like a good name to me.

Basically Apple added a viewport meta tag to the iphone, which later got augmented with one additional feature by Android. Now everyone seems to be implementing this, including Opera and Firefox - it has thus become a defacto standard.

The web author can provide some hints to how he wants the page layouted which is very useful for making webpages act as real applications, for instance by setting width = device-width.

These input needs to be treated in a specific way to compute the actual decided layout viewport (plus min, max scale etc) given the device sizes, minimum actual visible viewport.

Info: http://people.opera.com/rune/TR/css-viewport/

The app who wants to support this (mostly browser with mobile user agent receives the viewport meta  tags), will need to compute the viewport attributes before first load, and then again everytime it get&apos;s invalidates (loading a new page, navigating page cache) or every time on of the browser attributes change, such as when the device is rotates (which changes the actual visible viewport).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290246</commentid>
    <comment_count>9</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-10-06 06:03:24 -0700</bug_when>
    <thetext>I like attributes better than features, too, actually! Features came to my mind because of WindowFeatures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291106</commentid>
    <comment_count>10</comment_count>
      <attachid>70113</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-07 10:32:57 -0700</bug_when>
    <thetext>Created attachment 70113
WIP Patch

Work in progress patch. It currently depends on the patch from Sam Weinig that made the WebPageProxy messages be generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291224</commentid>
    <comment_count>11</comment_count>
      <attachid>70143</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-07 13:34:47 -0700</bug_when>
    <thetext>Created attachment 70143
Patch (missing mac build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291226</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-07 13:37:23 -0700</bug_when>
    <thetext>Attachment 70143 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/C/WKPage.h:156:  Extra space between WKPageViewportAttributesInvalidatedCallback and viewportAttributesInvalidated  [whitespace/declaration] [3]
WebKit2/UIProcess/API/C/WKViewportAttributes.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/WebViewportAttributes.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 3 in 25 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>291229</commentid>
    <comment_count>13</comment_count>
      <attachid>70143</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-07 13:48:48 -0700</bug_when>
    <thetext>Comment on attachment 70143
Patch (missing mac build)

I don&apos;t see anything obviously wrong with this patch other than missing a change to WebKit2Generated.make. But Sam and/or Anders and/or Maciej should have a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291256</commentid>
    <comment_count>14</comment_count>
      <attachid>70151</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-07 14:24:04 -0700</bug_when>
    <thetext>Created attachment 70151
Patch (win fix)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291258</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-07 14:25:56 -0700</bug_when>
    <thetext>Attachment 70151 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/C/WKPage.h:156:  Extra space between WKPageViewportAttributesInvalidatedCallback and viewportAttributesInvalidated  [whitespace/declaration] [3]
WebKit2/UIProcess/API/C/WKViewportAttributes.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/WebViewportAttributes.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 3 in 26 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>291521</commentid>
    <comment_count>16</comment_count>
      <attachid>70216</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-10-08 02:31:43 -0700</bug_when>
    <thetext>Created attachment 70216
p</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291522</commentid>
    <comment_count>17</comment_count>
      <attachid>70216</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-10-08 02:34:16 -0700</bug_when>
    <thetext>Comment on attachment 70216
p

latest patch has some minor adjustments to the mac build system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291523</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-08 02:34:46 -0700</bug_when>
    <thetext>Attachment 70216 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/C/WKPage.h:156:  Extra space between WKPageViewportAttributesInvalidatedCallback and viewportAttributesInvalidated  [whitespace/declaration] [3]
WebKit2/UIProcess/API/C/WKViewportAttributes.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/WebViewportAttributes.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 3 in 28 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>291772</commentid>
    <comment_count>19</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-10-08 11:22:44 -0700</bug_when>
    <thetext>Anders and I took a look at this and we are a bit confused about why the client needs to know about the viewport at all. Couldn&apos;t WebKit handle this itself (maybe if it was put into a special mode where it knew to handle viewport args)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291776</commentid>
    <comment_count>20</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-08 11:26:20 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Anders and I took a look at this and we are a bit confused about why the client needs to know about the viewport at all. Couldn&apos;t WebKit handle this itself (maybe if it was put into a special mode where it knew to handle viewport args)?

Because it is the client that deals with zooming/scaling etc, so the client will have to enforce the limits. It is also the client that knows when a device was rotated and thus can update the layout (we also wants to do that at the right time because of ui animations etc).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291777</commentid>
    <comment_count>21</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-08 11:28:00 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; Anders and I took a look at this and we are a bit confused about why the client needs to know about the viewport at all. Couldn&apos;t WebKit handle this itself (maybe if it was put into a special mode where it knew to handle viewport args)?
&gt; 
&gt; Because it is the client that deals with zooming/scaling etc, so the client will have to enforce the limits. It is also the client that knows when a device was rotated and thus can update the layout (we also wants to do that at the right time because of ui animations etc).

It is also not as simple as just setting the layout size as the client might be using a tiled backing store and thus using the setFixedLayout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291791</commentid>
    <comment_count>22</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-08 11:54:39 -0700</bug_when>
    <thetext>Would it be possible to discuss this on IRC?

The viewport meta handling depends on the device and UI:

- device height/width
- device DPI
- actual viewport given the UI (if you consider the iPhone, this is the size when all ui components are shown, incl. the address bar) something that changes given orientation.

The UI also is responsible for doing rotation animation, and adding the components, thus affecting the actual viewport.

All even handling such as panning, pinch zoom etc are handled by the UI, so the UI needs to enforce the limits. It is true that could could handle some of this in WebKit itself, but for instance with tiling (which allows non-blocking scrolling) we need to handle this on the UI.

We could make special views in WebKit2 that handles this behind the scenes and thus removes the public C API, but that is not really a possibility for Qt, as Qt and QtWebKit lays below the UI toolkit, in our toolchain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291807</commentid>
    <comment_count>23</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-10-08 12:29:25 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; We could make special views in WebKit2 that handles this behind the scenes and thus removes the public C API, but that is not really a possibility for Qt, as Qt and QtWebKit lays below the UI toolkit, in our toolchain.

Work around this issue and introduce new layering violations for this would be a big step backward (if it is possible at all), and I think Kenneth explained the use-cases thoroughly enough to justify why this API is needed, so I do not see any real blocker for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291857</commentid>
    <comment_count>24</comment_count>
      <attachid>70285</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-08 14:20:58 -0700</bug_when>
    <thetext>Created attachment 70285
Patch (Qt API only)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291858</commentid>
    <comment_count>25</comment_count>
      <attachid>70286</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-08 14:23:14 -0700</bug_when>
    <thetext>Created attachment 70286
Patch (without garbage)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292125</commentid>
    <comment_count>26</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-09 08:46:01 -0700</bug_when>
    <thetext>After discussion on IRC we decided to make this a Qt only API for now and make it go through the PageClient. The latest patch does exactly that.

Apple will probably just implement the handling in the view provided to iOS developers, which we unfortunately cannot do for Qt, hence adding the Qt-only API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292393</commentid>
    <comment_count>27</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-10 17:32:27 -0700</bug_when>
    <thetext>Ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292402</commentid>
    <comment_count>28</comment_count>
      <attachid>70286</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-10 19:42:51 -0700</bug_when>
    <thetext>Comment on attachment 70286
Patch (without garbage)

Rejecting patch 70286 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 70286]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=70286&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=47202&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 70286 from bug 47202.
Failed to run &quot;[u&apos;/Users/abarth/git/webkit-queue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Sam Weinig&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4360022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292404</commentid>
    <comment_count>29</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-10 19:48:34 -0700</bug_when>
    <thetext>Thanks Sam. I will try landing this patch manually tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292473</commentid>
    <comment_count>30</comment_count>
      <attachid>70286</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-11 07:36:28 -0700</bug_when>
    <thetext>Comment on attachment 70286
Patch (without garbage)

Landed in 69490</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292480</commentid>
    <comment_count>31</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-11 07:43:27 -0700</bug_when>
    <thetext>Win build fix committed in 69491</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70113</attachid>
            <date>2010-10-07 10:32:57 -0700</date>
            <delta_ts>2010-10-07 13:34:47 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>0001-WebKit2-Adding-C-API-for-dealing-with-viewport-meta-.patch</filename>
            <type>text/plain</type>
            <size>42345</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA4YjEzMjQzNzAyNmFjOWFkNDkwMDBkZjU0ZTA3MThlMWYxMmFhMWU1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogV2VkLCA2IE9jdCAyMDEwIDExOjMwOjEw
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViS2l0MjogQWRkaW5nIEMgQVBJIGZvciBkZWFsaW5n
IHdpdGggdmlld3BvcnQgbWV0YSBpbmZvCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDcyMDIKClBhdGNoIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuIDxrZW5u
ZXRoQHdlYmtpdC5vcmc+IG9uIDIwMTAtMTAtMDYKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgpBZGQgbmV3IEFQSSBmb3Igc2V0dGluZyBzY2FsZSBhbmQgbGF5b3V0IHZpZXdwb3J0IGdpdmVu
IHRoZSBkYXRhCnByb3ZpZGVkIGJ5IHRoZSB2aWV3cG9ydCBtZXRhIHRhZy4KCkFueSBXZWJLaXQg
dXNlciB3aG8gd2FudHMgdG8gc3VwcG9ydCB0aGlzLCB3aWxsIG5lZWQgdG8KY29tcHV0ZSB0aGUg
dmlld3BvcnQgYXR0cmlidXRlcyBiZWZvcmUgZmlyc3QgbG9hZCB1c2luZwpXS1BhZ2VDb3B5Vmll
d3BvcnRBdHRyaWJ1dGVzKC4uLiksIGFuZCB0aGVuIGFnYWluIGV2ZXJ5dGltZQp0aGUgdmlld3Bv
cnQgYXR0cmlidXRlcyBnZXRzIGludmFsaWRhdGVzIChsb2FkaW5nIGEgbmV3IHBhZ2UsCm5hdmln
YXRpbmcgcGFnZSBjYWNoZSkgb3IgZXZlcnkgdGltZSBvbiBvZiB0aGUgYnJvd3NlcgphdHRyaWJ1
dGVzIGNoYW5nZSwgc3VjaCBhcyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlcyAod2hpY2gKY2hh
bmdlcyB0aGUgYWN0dWFsIHZpc2libGUgdmlld3BvcnQpLiBBIGNhbGxiYWNrIGluIHRoZQpXS1Bh
Z2VVSUNsaWVudCBpcyBwcm92aWRlZCBmb3IgdGhlIGZvcm1lci4KCiogU2hhcmVkL0FQSS9jL1dL
QmFzZS5oOgoqIFNoYXJlZC9BUElPYmplY3QuaDoKKiBTaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2Vi
UGFnZVByb3h5TWVzc2FnZUtpbmRzLmg6CiogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
OgoqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcDoKKFdLUGFnZUNvcHlWaWV3cG9ydEF0dHJpYnV0ZXMpOgoqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaDoKKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwOiBBZGRl
ZC4KKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0VHlwZUlEKToKKFdLVmlld3BvcnRBdHRyaWJ1dGVz
R2V0TGF5b3V0V2lkdGgpOgooV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRMYXlvdXRIZWlnaHQpOgoo
V0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRJbml0aWFsU2NhbGVGYWN0b3IpOgooV0tWaWV3cG9ydEF0
dHJpYnV0ZXNHZXRNaW5pbXVtU2NhbGVGYWN0b3IpOgooV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRN
YXhpbXVtU2NhbGVGYWN0b3IpOgooV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRQaXhlbFJhdGlvKToK
KFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0SXNVc2VyU2NhbGFibGUpOgoqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2UuY3BwOgooUVdLUGFnZTo6UVdLUGFnZSk6CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgooV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkKToKKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0Vmlld3BvcnRBcmd1bWVudHMp
OgooV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZpZXdwb3J0QXJndW1lbnRzKToKKiBVSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwOgooV2ViS2l0OjpXZWJVSUNsaWVudDo6dmlld3BvcnRBdHRyaWJ1dGVz
SW52YWxpZGF0ZWQpOgoqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oOgoqIFVJUHJvY2Vzcy9XZWJW
aWV3cG9ydEF0dHJpYnV0ZXMuY3BwOiBBZGRlZC4KKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1
dGVzOjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXMpOgoqIFVJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJp
YnV0ZXMuaDogQWRkZWQuCihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3JlYXRlKToK
KFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpsYXlvdXRXaWR0aCk6CihXZWJLaXQ6Oldl
YlZpZXdwb3J0QXR0cmlidXRlczo6bGF5b3V0SGVpZ2h0KToKKFdlYktpdDo6V2ViVmlld3BvcnRB
dHRyaWJ1dGVzOjpwaXhlbFJhdGlvKToKKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpp
bml0aWFsU2NhbGVGYWN0b3IpOgooV2ViS2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6Om1pbmlt
dW1TY2FsZUZhY3Rvcik6CihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6bWF4aW11bVNj
YWxlRmFjdG9yKToKKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjppc1VzZXJTY2FsYWJs
ZSk6CihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6dHlwZSk6CiogV2ViS2l0Mi5wcm86
CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgooV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKToKKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgoKV2ViS2l0VG9vbHM6IFVw
ZGF0ZSB1c2FnZSBvZiBVSUNsaWVudCB0byBhY2NvdW50IGZvciB0aGUgbmV3CnZpZXdwb3J0QXR0
cmlidXRlc0ludmFsaWRhdGVkIGNhbGxiYWNrLgoKUGF0Y2ggYnkgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4gPGtlbm5ldGhAd2Via2l0Lm9yZz4gb24gMjAxMC0xMC0wNgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiogTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVy
Lm06CigtW0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3YWtlRnJvbU5pYl0pOgoqIE1pbmlCcm93
c2VyL3dpbi9Ccm93c2VyVmlldy5jcHA6CihCcm93c2VyVmlldzo6Y3JlYXRlKToKKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKFdUUjo6Y3JlYXRlT3RoZXJQYWdlKToKKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgotLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwICAgICAgIHwgICAgMyArCiBXZWJLaXQyL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjUgKysrKysrKysrKysrKysr
KysKIFdlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAyMCArKystLS0KIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMSArCiBXZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmggICAgICAgICAgICAgfCAgICAyICsKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwICAgICAgICAgICAgICAgICB8ICAgIDggKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oICAgICAgICAgICAgICAgICAgIHwgICAgNSArKwogV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwICAgfCAgIDcxICsrKysrKysrKysrKysrKysr
KwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaCAgICAgfCAg
IDUzICsrKysrKysrKysrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5n
UXQuY3BwICAgICAgICB8ICAgIDIgKy0KIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tV
UkxRdC5jcHAgICAgICAgICAgIHwgICAgMiArLQogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
a3BhZ2UuY3BwICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2twYWdlX3AuaCAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCAgICAgICAgICAgICAgICAgfCAgICA3ICsrLQogV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggICAgICAgICAgICAgICAgICAgfCAgICA3ICsrCiBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gICAgICAgICB8ICAgIDEgKwogV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwICAgICAgICAgICAgICAgICAgfCAgICA4ICsr
CiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oICAgICAgICAgICAgICAgICAgICB8ICAg
IDEgKwogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmNwcCAgICAgICAg
fCAgIDQyICsrKysrKysrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0
ZXMuaCAgICAgICAgICB8ICAgNzUgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdDIvV2ViS2l0
Mi5wcm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiAuLi4vV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwICB8ICAgIDUgKysKIC4uLi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAgIHwgICAgMyArCiBX
ZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUg
KysrKwogLi4uL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tICAgICAg
fCAgICAxICsKIFdlYktpdFRvb2xzL01pbmlCcm93c2VyL3dpbi9Ccm93c2VyVmlldy5jcHAgICAg
ICAgIHwgICAgMSArCiBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcCAgICB8ICAgIDIgKwogMjkgZmlsZXMgY2hhbmdlZCwgMzk2IGluc2VydGlvbnMoKyksIDE0
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBX
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwCiBjcmVhdGUgbW9kZSAx
MDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmgKCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCmluZGV4IGU0MDU4MGMuLjM3
M2EyMWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRp
bGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3Bw
CkBAIC01MSw2ICs1MSw4IEBAIEZsb2F0UmVjdCBGRVRpbGU6OmRldGVybWluZUZpbHRlclByaW1p
dGl2ZVN1YnJlZ2lvbihGaWx0ZXIqIGZpbHRlcikKIAogdm9pZCBGRVRpbGU6OmFwcGx5KEZpbHRl
ciogZmlsdGVyKQogeworLy8gRklYTUU6IFNlZSBidWcgNDczMTUuIFRoaXMgaXMgYSBoYWNrIHRv
IHdvcmsgYXJvdW5kIGEgY29tcGlsZSBmYWlsdXJlLCBidXQgaXMgaW5jb3JyZWN0IGJlaGF2aW9y
IG90aGVyd2lzZS4KKyNpZiBFTkFCTEUoU1ZHKQogICAgIEZpbHRlckVmZmVjdCogaW4gPSBpbnB1
dEVmZmVjdCgwKTsKICAgICBpbi0+YXBwbHkoZmlsdGVyKTsKICAgICBpZiAoIWluLT5yZXN1bHRJ
bWFnZSgpKQpAQCAtODcsNiArODksNyBAQCB2b2lkIEZFVGlsZTo6YXBwbHkoRmlsdGVyKiBmaWx0
ZXIpCiAgICAgcGF0dGVybi0+c2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKHBhdHRlcm5UcmFuc2Zv
cm0pOwogICAgIGZpbHRlckNvbnRleHQtPnNldEZpbGxQYXR0ZXJuKHBhdHRlcm4pOwogICAgIGZp
bHRlckNvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGFic29sdXRlUGFp
bnRSZWN0KCkuc2l6ZSgpKSk7CisjZW5kaWYKIH0KIAogdm9pZCBGRVRpbGU6OmR1bXAoKQpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxNzA0
ODMyLi43ZTcxMDMxIDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEwLTEwLTA2ICBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgQyBBUEkgZm9yIGRlYWxpbmcgd2l0aCB2
aWV3cG9ydCBtZXRhIGluZm8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ3MjAyCisKKyAgICAgICAgQWRkIG5ldyBBUEkgZm9yIHNldHRpbmcgc2NhbGUg
YW5kIGxheW91dCB2aWV3cG9ydCBnaXZlbiB0aGUgZGF0YQorICAgICAgICBwcm92aWRlZCBieSB0
aGUgdmlld3BvcnQgbWV0YSB0YWcuCisKKyAgICAgICAgQW55IFdlYktpdCB1c2VyIHdobyB3YW50
cyB0byBzdXBwb3J0IHRoaXMsIHdpbGwgbmVlZCB0bworICAgICAgICBjb21wdXRlIHRoZSB2aWV3
cG9ydCBhdHRyaWJ1dGVzIGJlZm9yZSBmaXJzdCBsb2FkIHVzaW5nCisgICAgICAgIFdLUGFnZUNv
cHlWaWV3cG9ydEF0dHJpYnV0ZXMoLi4uKSwgYW5kIHRoZW4gYWdhaW4gZXZlcnl0aW1lCisgICAg
ICAgIHRoZSB2aWV3cG9ydCBhdHRyaWJ1dGVzIGdldHMgaW52YWxpZGF0ZXMgKGxvYWRpbmcgYSBu
ZXcgcGFnZSwKKyAgICAgICAgbmF2aWdhdGluZyBwYWdlIGNhY2hlKSBvciBldmVyeSB0aW1lIG9u
IG9mIHRoZSBicm93c2VyCisgICAgICAgIGF0dHJpYnV0ZXMgY2hhbmdlLCBzdWNoIGFzIHdoZW4g
dGhlIGRldmljZSBpcyByb3RhdGVzICh3aGljaAorICAgICAgICBjaGFuZ2VzIHRoZSBhY3R1YWwg
dmlzaWJsZSB2aWV3cG9ydCkuIEEgY2FsbGJhY2sgaW4gdGhlCisgICAgICAgIFdLUGFnZVVJQ2xp
ZW50IGlzIHByb3ZpZGVkIGZvciB0aGUgZm9ybWVyLgorCisgICAgICAgICogU2hhcmVkL0FQSS9j
L1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFy
ZWQvQ29yZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmg6CisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAg
ICAgICAgKFdLUGFnZUNvcHlWaWV3cG9ydEF0dHJpYnV0ZXMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0
dHJpYnV0ZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0VHlw
ZUlEKToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TGF5b3V0V2lkdGgpOgorICAg
ICAgICAoV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRMYXlvdXRIZWlnaHQpOgorICAgICAgICAoV0tW
aWV3cG9ydEF0dHJpYnV0ZXNHZXRJbml0aWFsU2NhbGVGYWN0b3IpOgorICAgICAgICAoV0tWaWV3
cG9ydEF0dHJpYnV0ZXNHZXRNaW5pbXVtU2NhbGVGYWN0b3IpOgorICAgICAgICAoV0tWaWV3cG9y
dEF0dHJpYnV0ZXNHZXRNYXhpbXVtU2NhbGVGYWN0b3IpOgorICAgICAgICAoV0tWaWV3cG9ydEF0
dHJpYnV0ZXNHZXRQaXhlbFJhdGlvKToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0
SXNVc2VyU2NhbGFibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0
cmlidXRlcy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3Bw
OgorICAgICAgICAoUVdLUGFnZTo6UVdLUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZpZXdwb3J0QXR0cmlidXRl
c0ludmFsaWRhdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0Vmlld3BvcnRBcmd1bWVudHMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVSUNsaWVudDo6
dmlld3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJV
SUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpXZWJWaWV3
cG9ydEF0dHJpYnV0ZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0
ZXMuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpsYXlvdXRXaWR0
aCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6bGF5b3V0SGVpZ2h0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpwaXhlbFJhdGlvKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjppbml0aWFsU2NhbGVGYWN0
b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6Om1pbmltdW1TY2Fs
ZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6bWF4aW11
bVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpp
c1VzZXJTY2FsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6
dHlwZSk6CisgICAgICAgICogV2ViS2l0Mi5wcm86CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDEwLTEwLTA2ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvIGIv
V2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KaW5kZXggOGM1Y2FkNS4uMjY0MDViZiAxMDA2NDQK
LS0tIGEvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KKysrIGIvV2ViS2l0Mi9EZXJpdmVkU291
cmNlcy5wcm8KQEAgLTUyLDE3ICs1MiwxNyBAQCBtZXNzYWdlcmVjZWl2ZXJfZ2VuZXJhdG9yLnRh
cmdldCAgID0gJCR7T1VUUFVUX0RJUn0vV2ViS2l0Mi9nZW5lcmF0ZWQvV2ViUGFnZU1lcwogZ2Vu
ZXJhdGVkX2ZpbGVzLmRlcGVuZHMgICAgICAgICAgICArPSBtZXNzYWdlcmVjZWl2ZXJfZ2VuZXJh
dG9yCiBRTUFLRV9FWFRSQV9UQVJHRVRTICAgICAgICAgICAgICAgICs9IG1lc3NhZ2VyZWNlaXZl
cl9nZW5lcmF0b3IKIAotcHJvY2Vzc21lc3NhZ2VoZWFkZXJfZ2VuZXJhdG9yLmNvbW1hbmRzID0g
cHl0aG9uICQke1NSQ19ST09UX0RJUn0vV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2Vz
LWhlYWRlci5weSAgJCR7U1JDX1JPT1RfRElSfS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4gPiAkJE9VVFBVVF9ESVIvV2ViS2l0Mi9nZW5lcmF0ZWQvV2ViUGFnZVBy
b3h5TWVzc2FnZXMuaAotcHJvY2Vzc21lc3NhZ2VoZWFkZXJfZ2VuZXJhdG9yLmRlcGVuZHMgID0g
JCR7U1JDX1JPT1RfRElSfS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVy
LnB5ICQke1NSQ19ST09UX0RJUn0vVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCi1wcm9jZXNzbWVzc2FnZWhlYWRlcl9nZW5lcmF0b3IudGFyZ2V0ICAgPSAkJHtP
VVRQVVRfRElSfS9XZWJLaXQyL2dlbmVyYXRlZC9XZWJQYWdlUHJveHlNZXNzYWdlcy5oCi1nZW5l
cmF0ZWRfZmlsZXMuZGVwZW5kcyAgICAgICAgICAgICAgICAgKz0gcHJvY2Vzc21lc3NhZ2VoZWFk
ZXJfZ2VuZXJhdG9yCi1RTUFLRV9FWFRSQV9UQVJHRVRTICAgICAgICAgICAgICAgICAgICAgKz0g
cHJvY2Vzc21lc3NhZ2VoZWFkZXJfZ2VuZXJhdG9yCi0KLXByb2Nlc3NtZXNzYWdlcmVjZWl2ZXJf
Z2VuZXJhdG9yLmNvbW1hbmRzID0gcHl0aG9uICQke1NSQ19ST09UX0RJUn0vV2ViS2l0Mi9TY3Jp
cHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgICQke1NSQ19ST09UX0RJUn0vV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluID4gJCRPVVRQVVRfRElSL1dlYktp
dDIvZ2VuZXJhdGVkL1dlYlBhZ2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLXByb2Nlc3NtZXNz
YWdlcmVjZWl2ZXJfZ2VuZXJhdG9yLmRlcGVuZHMgID0gJCR7U1JDX1JPT1RfRElSfS9XZWJLaXQy
L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSAkJHtTUkNfUk9PVF9ESVJ9L1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgotcHJvY2Vzc21lc3NhZ2Vy
ZWNlaXZlcl9nZW5lcmF0b3IudGFyZ2V0ICAgPSAkJHtPVVRQVVRfRElSfS9XZWJLaXQyL2dlbmVy
YXRlZC9XZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi1nZW5lcmF0ZWRfZmlsZXMuZGVw
ZW5kcyAgICAgICAgICAgICAgICAgICArPSBwcm9jZXNzbWVzc2FnZXJlY2VpdmVyX2dlbmVyYXRv
cgotUU1BS0VfRVhUUkFfVEFSR0VUUyAgICAgICAgICAgICAgICAgICAgICAgKz0gcHJvY2Vzc21l
c3NhZ2VyZWNlaXZlcl9nZW5lcmF0b3IKK2Fwcm9jZXNzbWVzc2FnZWhlYWRlcl9nZW5lcmF0b3Iu
Y29tbWFuZHMgPSBweXRob24gJCR7U1JDX1JPT1RfRElSfS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJh
dGUtbWVzc2FnZXMtaGVhZGVyLnB5ICAkJHtTUkNfUk9PVF9ESVJ9L1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiA+ICQkT1VUUFVUX0RJUi9XZWJLaXQyL2dlbmVyYXRl
ZC9XZWJQYWdlUHJveHlNZXNzYWdlcy5oCithcHJvY2Vzc21lc3NhZ2VoZWFkZXJfZ2VuZXJhdG9y
LmRlcGVuZHMgID0gJCR7U1JDX1JPT1RfRElSfS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtbWVz
c2FnZXMtaGVhZGVyLnB5ICQke1NSQ19ST09UX0RJUn0vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCithcHJvY2Vzc21lc3NhZ2VoZWFkZXJfZ2VuZXJhdG9yLnRhcmdl
dCAgID0gJCR7T1VUUFVUX0RJUn0vV2ViS2l0Mi9nZW5lcmF0ZWQvV2ViUGFnZVByb3h5TWVzc2Fn
ZXMuaAorZ2VuZXJhdGVkX2ZpbGVzLmRlcGVuZHMgICAgICAgICAgICAgICAgICs9IGFwcm9jZXNz
bWVzc2FnZWhlYWRlcl9nZW5lcmF0b3IKK1FNQUtFX0VYVFJBX1RBUkdFVFMgICAgICAgICAgICAg
ICAgICAgICArPSBhcHJvY2Vzc21lc3NhZ2VoZWFkZXJfZ2VuZXJhdG9yCisKK2Fwcm9jZXNzbWVz
c2FnZXJlY2VpdmVyX2dlbmVyYXRvci5jb21tYW5kcyA9IHB5dGhvbiAkJHtTUkNfUk9PVF9ESVJ9
L1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICAkJHtTUkNfUk9P
VF9ESVJ9L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiA+ICQkT1VU
UFVUX0RJUi9XZWJLaXQyL2dlbmVyYXRlZC9XZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CithcHJvY2Vzc21lc3NhZ2VyZWNlaXZlcl9nZW5lcmF0b3IuZGVwZW5kcyAgPSAkJHtTUkNfUk9P
VF9ESVJ9L1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5ICQke1NS
Q19ST09UX0RJUn0vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCith
cHJvY2Vzc21lc3NhZ2VyZWNlaXZlcl9nZW5lcmF0b3IudGFyZ2V0ICAgPSAkJHtPVVRQVVRfRElS
fS9XZWJLaXQyL2dlbmVyYXRlZC9XZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCitnZW5l
cmF0ZWRfZmlsZXMuZGVwZW5kcyAgICAgICAgICAgICAgICAgICArPSBhcHJvY2Vzc21lc3NhZ2Vy
ZWNlaXZlcl9nZW5lcmF0b3IKK1FNQUtFX0VYVFJBX1RBUkdFVFMgICAgICAgICAgICAgICAgICAg
ICAgICs9IGFwcm9jZXNzbWVzc2FnZXJlY2VpdmVyX2dlbmVyYXRvcgogCiBwcm9jZXNzbWVzc2Fn
ZWhlYWRlcl9nZW5lcmF0b3IuY29tbWFuZHMgPSBweXRob24gJCR7U1JDX1JPT1RfRElSfS9XZWJL
aXQyL1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5ICAkJHtTUkNfUk9PVF9ESVJ9
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluID4gJCRPVVRQVVRfRElS
L1dlYktpdDIvZ2VuZXJhdGVkL1dlYlByb2Nlc3NNZXNzYWdlcy5oCiBwcm9jZXNzbWVzc2FnZWhl
YWRlcl9nZW5lcmF0b3IuZGVwZW5kcyAgPSAkJHtTUkNfUk9PVF9ESVJ9L1dlYktpdDIvU2NyaXB0
cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgJCR7U1JDX1JPT1RfRElSfS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmggYi9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCAw
ZTZmMmZlLi5iNmYwYWM1IDEwMDY0NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2Uu
aAorKysgYi9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtNjcsNiArNjcsNyBAQCB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25EYXRhKiBXS05hdmlnYXRpb25E
YXRhUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VOYW1lc3BhY2UqIFdLUGFnZU5hbWVzcGFj
ZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMqIFdLUHJlZmVy
ZW5jZXNSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpZXdwb3J0QXR0cmlidXRl
cyogV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWY7CiAKIC8qIFdlYktpdDIgQnVuZGxlIHR5cGVzICov
CiAKZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmgKaW5kZXggYjQ2ZTU5Ni4uNDBiMjczMyAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAg
LTYyLDYgKzYyLDcgQEAgcHVibGljOgogICAgICAgICBUeXBlUGFnZSwKICAgICAgICAgVHlwZVBh
Z2VOYW1lc3BhY2UsCiAgICAgICAgIFR5cGVQcmVmZXJlbmNlcywKKyAgICAgICAgVHlwZVZpZXdw
b3J0QXR0cmlidXRlcywKIAogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAgVHlwZUJ1
bmRsZSwKZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
IGIvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYjQwNjRiMi4u
NDg5OTdkNyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKKysrIGIvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDxsaW1pdHM+CiAK
IG5hbWVzcGFjZSBDb3JlSVBDIHsKQEAgLTQyLDYgKzQzLDcgQEAgbmFtZXNwYWNlIENvcmVJUEMg
ewogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4gOiBT
aW1wbGVBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFBvaW50PiB7IH07CiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IDogU2ltcGxlQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpJbnRTaXplPiB7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkludFJlY3Q+IDogU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0
PiB7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0
QXJndW1lbnRzPiA6IFNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHM+IHsgfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNaW1l
Q2xhc3NJbmZvPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5j
b2RlciwgY29uc3QgV2ViQ29yZTo6TWltZUNsYXNzSW5mbyYgbWltZUNsYXNzSW5mbykKZGlmZiAt
LWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggZGRkYTRmZC4uZWQyMDBiYiAxMDA2NDQKLS0t
IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgV2ViTmF2aWdh
dGlvbkRhdGE7CiBjbGFzcyBXZWJQYWdlTmFtZXNwYWNlOwogY2xhc3MgV2ViUGFnZVByb3h5Owog
Y2xhc3MgV2ViUHJlZmVyZW5jZXM7CitjbGFzcyBXZWJWaWV3cG9ydEF0dHJpYnV0ZXM7CiAKIFdL
X0FERF9BUElfTUFQUElORyhXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0pCiBXS19BRERfQVBJX01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RSZWYsIFdlYkJh
Y2tGb3J3YXJkTGlzdCkKQEAgLTU1LDYgKzU2LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2
aWdhdGlvbkRhdGFSZWYsIFdlYk5hdmlnYXRpb25EYXRhKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
UGFnZU5hbWVzcGFjZVJlZiwgV2ViUGFnZU5hbWVzcGFjZSkKIFdLX0FERF9BUElfTUFQUElORyhX
S1BhZ2VSZWYsIFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1ByZWZlcmVuY2Vz
UmVmLCBXZWJQcmVmZXJlbmNlcykKK1dLX0FERF9BUElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmli
dXRlc1JlZiwgV2ViVmlld3BvcnRBdHRyaWJ1dGVzKQogCiAvKiBFbnVtIGNvbnZlcnNpb25zICov
CiAKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDI3ZDc0ZTYuLmEyZGI0OWIgMTAw
NjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIldlYkRhdGEuaCIKICNpbmNsdWRlICJX
ZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaCIKIAogI2lm
ZGVmIF9fQkxPQ0tTX18KICNpbmNsdWRlIDxCbG9jay5oPgpAQCAtMTg4LDYgKzE4OSwxMyBAQCB2
b2lkIFdLUGFnZVNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoV0tQYWdlUmVmIHBhZ2VSZWYsIGRv
dWJsZSBwYWdlWm9vbUZhY3RvciwgZAogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0UGFnZUFuZFRl
eHRab29tRmFjdG9ycyhwYWdlWm9vbUZhY3RvciwgdGV4dFpvb21GYWN0b3IpOwogfQogCitXS1Zp
ZXdwb3J0QXR0cmlidXRlc1JlZiBXS1BhZ2VDb3B5Vmlld3BvcnRBdHRyaWJ1dGVzKFdLUGFnZVJl
ZiBwYWdlUmVmLCBpbnQgdmlzaWJsZVdpZHRoLCBpbnQgdmlzaWJsZUhlaWdodCwgaW50IGRlc2t0
b3BXaWR0aCwgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgZGV2aWNlRFBJ
KQoreworICAgIFZpZXdwb3J0QXR0cmlidXRlcyBhdHRyOworICAgIGF0dHIgPSBmaW5kQ29uZmln
dXJhdGlvbkZvclZpZXdwb3J0RGF0YSh0b0ltcGwocGFnZVJlZiktPnZpZXdwb3J0QXJndW1lbnRz
KCksIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwgZGV2aWNlRFBJLCBJ
bnRTaXplKHZpc2libGVXaWR0aCwgdmlzaWJsZUhlaWdodCkpOworICAgIHJldHVybiB0b0FQSShX
ZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmNyZWF0ZShhdHRyKS5sZWFrUmVmKCkpOworfQorCiB2b2lk
IFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFn
ZUxvYWRlckNsaWVudCogd2tDbGllbnQpCiB7CiAgICAgaWYgKHdrQ2xpZW50ICYmIHdrQ2xpZW50
LT52ZXJzaW9uKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgg
Yi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCA5NGQ4YThiLi5mNmZmMTNm
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
PFdlYktpdDIvV0tCYXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0V2ZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViS2l0Mi9XS05hdGl2ZUV2ZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1ZpZXdwb3J0
QXR0cmlidXRlcy5oPgogCiAjaWZuZGVmIF9fY3BsdXNwbHVzCiAjaW5jbHVkZSA8c3RkYm9vbC5o
PgpAQCAtMTM2LDYgKzEzNyw3IEBAIHR5cGVkZWYgYm9vbCAoKldLUGFnZVJ1bkphdmFTY3JpcHRD
b25maXJtQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtCiB0eXBlZGVmIFdL
U3RyaW5nUmVmICgqV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVmYXVsdFZhbHVlLCBXS0Zy
YW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
UGFnZVNldFN0YXR1c1RleHRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRl
eHQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlTW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRXZlbnRNb2RpZmll
cnMgbW9kaWZpZXJzLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
OwordHlwZWRlZiB2b2lkICgqV0tQYWdlVmlld3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWRDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2
b2lkICgqV0tQYWdlQ29udGVudHNTaXplQ2hhbmdlZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS05hdGl2ZUV2ZW50UHRyIGV2ZW50LCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKIApAQCAtMTUxLDYgKzE1Myw3IEBAIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7
CiAgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OwogICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQ7CiAgICAgV0tQYWdlQ29udGVudHNTaXplQ2hhbmdlZENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50c1NpemVDaGFuZ2VkOworICAg
IFdLUGFnZVZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgdmlld3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQ7CiAgICAgV0tQYWdlRGlk
Tm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWROb3RIYW5kbGVLZXlFdmVudDsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVu
dCBXS1BhZ2VVSUNsaWVudDsKQEAgLTE5Nyw2ICsyMDAsOCBAQCBXS19FWFBPUlQgZG91YmxlIFdL
UGFnZUdldFBhZ2Vab29tRmFjdG9yKFdLUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCB2b2lkIFdL
UGFnZVNldFBhZ2Vab29tRmFjdG9yKFdLUGFnZVJlZiBwYWdlLCBkb3VibGUgem9vbUZhY3Rvcik7
CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKFdLUGFnZVJl
ZiBwYWdlLCBkb3VibGUgcGFnZVpvb21GYWN0b3IsIGRvdWJsZSB0ZXh0Wm9vbUZhY3Rvcik7CiAK
K1dLX0VYUE9SVCBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiBXS1BhZ2VDb3B5Vmlld3BvcnRBdHRy
aWJ1dGVzKFdLUGFnZVJlZiBwYWdlLCBpbnQgdmlzaWJsZVdpZHRoLCBpbnQgdmlzaWJsZUhlaWdo
dCwgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBp
bnQgZGV2aWNlRFBJKTsKKwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVu
dChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50KiBjbGllbnQpOwogV0tf
RVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29u
c3QgV0tQYWdlUG9saWN5Q2xpZW50KiBjbGllbnQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0
UGFnZUZvcm1DbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZUZvcm1DbGllbnQqIGNs
aWVudCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0
cmlidXRlcy5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRl
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNmYjlmMAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVz
LmNwcApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2lu
Y2x1ZGUgIldlYlZpZXdwb3J0QXR0cmlidXRlcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OworCitXS1R5cGVJRCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldFR5cGVJRCgpCit7CisgICAgcmV0
dXJuIHRvQVBJKFdlYlZpZXdwb3J0QXR0cmlidXRlczo6QVBJVHlwZSk7Cit9CisKK2ludCBXS1Zp
ZXdwb3J0QXR0cmlidXRlc0dldExheW91dFdpZHRoKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZp
ZXdwb3J0QXR0cikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdwb3J0QXR0ciktPmxheW91dFdp
ZHRoKCk7Cit9CisKK2ludCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldExheW91dEhlaWdodChXS1Zp
ZXdwb3J0QXR0cmlidXRlc1JlZiB2aWV3cG9ydEF0dHIpCit7CisgICAgcmV0dXJuIHRvSW1wbCh2
aWV3cG9ydEF0dHIpLT5sYXlvdXRIZWlnaHQoKTsKK30KKworZmxvYXQgV0tWaWV3cG9ydEF0dHJp
YnV0ZXNHZXRJbml0aWFsU2NhbGVGYWN0b3IoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3Bv
cnRBdHRyKQoreworICAgIHJldHVybiB0b0ltcGwodmlld3BvcnRBdHRyKS0+aW5pdGlhbFNjYWxl
RmFjdG9yKCk7Cit9CisKK2Zsb2F0IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWluaW11bVNjYWxl
RmFjdG9yKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cikKK3sKKyAgICByZXR1
cm4gdG9JbXBsKHZpZXdwb3J0QXR0ciktPm1pbmltdW1TY2FsZUZhY3RvcigpOworfQorCitmbG9h
dCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldE1heGltdW1TY2FsZUZhY3RvcihXS1ZpZXdwb3J0QXR0
cmlidXRlc1JlZiB2aWV3cG9ydEF0dHIpCit7CisgICAgcmV0dXJuIHRvSW1wbCh2aWV3cG9ydEF0
dHIpLT5tYXhpbXVtU2NhbGVGYWN0b3IoKTsKK30KKworZmxvYXQgV0tWaWV3cG9ydEF0dHJpYnV0
ZXNHZXRQaXhlbFJhdGlvKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cikKK3sK
KyAgICByZXR1cm4gdG9JbXBsKHZpZXdwb3J0QXR0ciktPnBpeGVsUmF0aW8oKTsKK30KKworYm9v
bCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldElzVXNlclNjYWxhYmxlKFdLVmlld3BvcnRBdHRyaWJ1
dGVzUmVmIHZpZXdwb3J0QXR0cikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdwb3J0QXR0cikt
PmlzVXNlclNjYWxhYmxlKCk7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3
cG9ydEF0dHJpYnV0ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWVl
NGEyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9y
dEF0dHJpYnV0ZXMuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdLVmlld3BvcnRBdHRyaWJ1dGVzX2gKKyNkZWZpbmUgV0tWaWV3cG9ydEF0dHJp
YnV0ZXNfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmbmRlZiBfX2NwbHVz
cGx1cworI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMK
K2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1ZpZXdwb3J0QXR0
cmlidXRlc0dldFR5cGVJRCgpOworCitXS19FWFBPUlQgaW50IFdLVmlld3BvcnRBdHRyaWJ1dGVz
R2V0TGF5b3V0V2lkdGgoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKK1dL
X0VYUE9SVCBpbnQgV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRMYXlvdXRIZWlnaHQoV0tWaWV3cG9y
dEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKK1dLX0VYUE9SVCBmbG9hdCBXS1ZpZXdwb3J0
QXR0cmlidXRlc0dldEluaXRpYWxTY2FsZUZhY3RvcihXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2
aWV3cG9ydEF0dHIpOworV0tfRVhQT1JUIGZsb2F0IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWlu
aW11bVNjYWxlRmFjdG9yKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cik7CitX
S19FWFBPUlQgZmxvYXQgV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRNYXhpbXVtU2NhbGVGYWN0b3Io
V0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKK1dLX0VYUE9SVCBmbG9hdCBX
S1ZpZXdwb3J0QXR0cmlidXRlc0dldFBpeGVsUmF0aW8oV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYg
dmlld3BvcnRBdHRyKTsKK1dLX0VYUE9SVCBib29sIFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0SXNV
c2VyU2NhbGFibGUoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKKworI2lm
ZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLRnJhbWVfaCAqLwpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0LmNwcCBiL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5jcHAKaW5kZXggZDUzYzQxZS4u
MGYyYzk0NiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmlu
Z1F0LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3Bw
CkBAIC0zMCw3ICszMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiBXS1N0cmluZ1JlZiBX
S1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGNvbnN0IFFTdHJpbmcmIHFTdHJpbmcpCiB7CiAgICAg
V1RGOjpTdHJpbmcgc3RyaW5nKHFTdHJpbmcpOwotICAgIHJldHVybiB0b0NvcGllZFJlZihzdHJp
bmcpOworICAgIHJldHVybiB0b0NvcGllZEFQSShzdHJpbmcpOwogfQogCiBRU3RyaW5nIFdLU3Ry
aW5nQ29weVFTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nUmVmKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9jcHAvcXQvV0tVUkxRdC5jcHAKaW5kZXggNzQzOGJhZC4uNzRlY2E4NiAxMDA2NDQKLS0tIGEv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcAorKysgYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJMUXQuY3BwCkBAIC0zMCw3ICszMCw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiBXS1VSTFJlZiBXS1VSTENyZWF0ZVdpdGhRVXJsKGNvbnN0IFFVcmwm
IHFVUkwpCiB7CiAgICAgV1RGOjpTdHJpbmcgdXJsU3RyaW5nKHFVUkwudG9TdHJpbmcoKSk7Ci0g
ICAgcmV0dXJuIHRvQ29waWVkVVJMUmVmKHVybFN0cmluZyk7CisgICAgcmV0dXJuIHRvQ29waWVk
VVJMQVBJKHVybFN0cmluZyk7CiB9CiAKIFFVcmwgV0tVUkxDb3B5UVVybChXS1VSTFJlZiB1cmxS
ZWYpCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAgYi9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKaW5kZXggMWM2ZTRlZC4uMjAyYTBi
OCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCisrKyBi
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcApAQCAtMjcxLDYgKzI3MSw3IEBA
IFFXS1BhZ2U6OlFXS1BhZ2UoV0tQYWdlTmFtZXNwYWNlUmVmIG5hbWVzcGFjZVJlZikKICAgICAg
ICAgMCwgIC8qIHNldFN0YXR1c1RleHQgKi8KICAgICAgICAgMCwgIC8qIG1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50ICovCiAgICAgICAgIDAsICAvKiBjb250ZW50c1NpemVDaGFuZ2VkICovCisgICAg
ICAgIDAsICAvKiB2aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCAqLwogICAgICAgICAwICAg
LyogZGlkTm90SGFuZGxlS2V5RXZlbnQgKi8KICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNs
aWVudChwYWdlUmVmKCksICZ1aUNsaWVudCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZV9wLmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9w
LmgKaW5kZXggOWVkNTg2Ny4uYjdlNzY3ZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2VfcC5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdl
X3AuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNv
cihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKGJv
b2wgZGlyZWN0aW9uKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3Qg
V1RGOjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgdm9pZCByZWdp
c3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5Piwg
V2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJFZGl0
Q29tbWFuZChQYXNzUmVmUHRyPFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eT4sIFdlYktpdDo6
V2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbGxFZGl0
Q29tbWFuZHMoKTsKIAogICAgIHZvaWQgcGFpbnQoUVBhaW50ZXIqIHBhaW50ZXIsIFFSZWN0KTsK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI2NGVhYTYuLjM1Y2RmYzQgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTQxLDcgKzU0MSw2IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNCiAgICAgfQogCiAgICAgZGlkUmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwotCiB9CiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMsIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkpCkBAIC04NDYsNiAr
ODQ1LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50c1NpemVDaGFuZ2VkKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmCiAgICAgbV91aUNsaWVudC5jb250ZW50
c1NpemVDaGFuZ2VkKHRoaXMsIHNpemUsIHByb2Nlc3MoKS0+d2ViRnJhbWUoZnJhbWVJRCkpOwog
fQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlVmlld3BvcnREYXRhKGNvbnN0IFZpZXdw
b3J0QXJndW1lbnRzJiBhcmdzKQoreworICAgIHNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3MpOwor
ICAgIG1fdWlDbGllbnQudmlld3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQodGhpcyk7Cit9CisK
IC8vIEJhY2tGb3J3YXJkTGlzdAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRBZGRJ
dGVtKHVpbnQ2NF90IGl0ZW1JRCkKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDFiNWEy
Zi4uYjViZmI3ZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU2LDYgKzU2LDcgQEAg
bmFtZXNwYWNlIENvcmVJUEMgewogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEludFNp
emU7CiAgICAgY2xhc3MgQ3Vyc29yOworICAgIGNsYXNzIFZpZXdwb3J0QXJndW1lbnRzOwogfQog
CiBzdHJ1Y3QgV0tDb250ZXh0U3RhdGlzdGljczsKQEAgLTEzOSw2ICsxNDAsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSk7
CiAgICAgdm9pZCB2YWxpZGF0ZU1lbnVJdGVtKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpOwog
CisgICAgdm9pZCBzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFy
Z3VtZW50cyYgYXJndW1lbnRzKSB7IG1fdmlld3BvcnRBcmd1bWVudHMgPSBhcmd1bWVudHM7IH0K
KyAgICBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvcnRBcmd1bWVudHMo
KSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0QXJndW1lbnRzOyB9CisKIC8vIFRoZXNlIGFyZSBv
bmx5IHVzZWQgb24gTWFjIGN1cnJlbnRseS4KICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBz
ZXRXaW5kb3dJc1Zpc2libGUoYm9vbCB3aW5kb3dJc1Zpc2libGUpOwpAQCAtMjQ4LDYgKzI1Miw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYpOwogICAg
IHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQodWludDMyX3QgbW9kaWZpZXJzLCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZvaWQgZGlkQ2hhbmdl
Vmlld3BvcnREYXRhKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CiAKICAgICAv
LyBCYWNrL0ZvcndhcmQgbGlzdCBtYW5hZ2VtZW50CiAgICAgdm9pZCBiYWNrRm9yd2FyZEFkZEl0
ZW0odWludDY0X3QgaXRlbUlEKTsKQEAgLTMxNyw2ICszMjIsOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV92YWxpZDsKICAgICBib29sIG1fY2xvc2VkOwogCisgICAgV2ViQ29yZTo6Vmlld3BvcnRB
cmd1bWVudHMgbV92aWV3cG9ydEFyZ3VtZW50czsKKwogICAgIHVpbnQ2NF90IG1fcGFnZUlEOwog
CiAgICAgRGVxdWU8TmF0aXZlV2ViS2V5Ym9hcmRFdmVudD4gbV9rZXlFdmVudFF1ZXVlOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE4NDk4NzUuLjk0
YTM0OWQgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAg
LTMwLDYgKzMwLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBSdW5KYXZhU2Ny
aXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG1lc3NhZ2UsIFdURjo6U3Ry
aW5nIGRlZmF1bHRWYWx1ZSkgLT4gKFdURjo6U3RyaW5nIHJlc3VsdCkKICAgICBNb3VzZURpZE1v
dmVPdmVyRWxlbWVudCh1aW50MzJfdCBtb2RpZmllcnMsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVV
c2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpOwogICAgIENvbnRlbnRzU2l6ZUNoYW5nZWQodWlu
dDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6SW50U2l6ZSBuZXdTaXplKQorICAgIERpZENoYW5nZVZp
ZXdwb3J0RGF0YShXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMpCiAgICAgRGlk
UmVjZWl2ZUV2ZW50KHVpbnQzMl90IHR5cGUsIGJvb2wgaGFuZGxlZCkKICAgICBEaWRWYWxpZGF0
ZU1lbnVJdGVtKFdURjo6U3RyaW5nIGNvbW1hbmROYW1lLCBib29sIGlzRW5hYmxlZCwgaW50MzJf
dCBzdGF0ZSkKICAgICBTZXRDdXJzb3IoV2ViQ29yZTo6Q3Vyc29yIGN1cnNvcikKZGlmZiAtLWdp
dCBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlVJQ2xpZW50LmNwcAppbmRleCBiYTI1Zjk2Li4wNWRlZGRlIDEwMDY0NAotLS0gYS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VUlDbGllbnQuY3BwCkBAIC0xMjksNiArMTI5LDE0IEBAIHZvaWQgV2ViVUlDbGllbnQ6OmNvbnRl
bnRzU2l6ZUNoYW5nZWQoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBJbnRTaXplJiBzaXplLCBX
CiAgICAgbV9wYWdlVUlDbGllbnQuY29udGVudHNTaXplQ2hhbmdlZCh0b0FQSShwYWdlKSwgc2l6
ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCB0b0FQSShmcmFtZSksIG1fcGFnZVVJQ2xpZW50LmNs
aWVudEluZm8pOwogfQogCit2b2lkIFdlYlVJQ2xpZW50Ojp2aWV3cG9ydEF0dHJpYnV0ZXNJbnZh
bGlkYXRlZChXZWJQYWdlUHJveHkqIHBhZ2UpCit7CisgICAgaWYgKCFtX3BhZ2VVSUNsaWVudC52
aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9w
YWdlVUlDbGllbnQudmlld3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQodG9BUEkocGFnZSksIG1f
cGFnZVVJQ2xpZW50LmNsaWVudEluZm8pOworfQorCiB2b2lkIFdlYlVJQ2xpZW50OjpkaWROb3RI
YW5kbGVLZXlFdmVudChXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IE5hdGl2ZVdlYktleWJvYXJk
RXZlbnQmIGV2ZW50KQogewogICAgIGlmICghbV9wYWdlVUlDbGllbnQuZGlkTm90SGFuZGxlS2V5
RXZlbnQpCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIGIvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaAppbmRleCA2MTQ4YzZjLi5mMzk1YzFjIDEwMDY0
NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCisrKyBiL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0U3RhdHVzVGV4dChXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIG1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50KFdlYlBhZ2VQcm94eSosIFdlYkV2ZW50OjpNb2RpZmllcnMs
IEFQSU9iamVjdCopOwogICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJQYWdlUHJveHkq
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViRnJhbWVQcm94eSopOworICAgIHZvaWQgdmll
d3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQoV2ViUGFnZVByb3h5Kik7CiAgICAgdm9pZCBkaWRO
b3RIYW5kbGVLZXlFdmVudChXZWJQYWdlUHJveHkqLCBjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50Jik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3
cG9ydEF0dHJpYnV0ZXMuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1
dGVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWY1YTQwCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmNw
cApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
V2ViVmlld3BvcnRBdHRyaWJ1dGVzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpXZWJWaWV3cG9ydEF0
dHJpYnV0ZXMoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJiBhdHRyKQoreworICAgIG1fbGF5b3V0
U2l6ZSA9IGF0dHIubGF5b3V0Vmlld3BvcnQ7CisgICAgbV9waXhlbFJhdGlvID0gYXR0ci5kZXZp
Y2VQaXhlbFJhdGlvOworICAgIG1faW5pdGlhbFNjYWxlRmFjdG9yID0gYXR0ci5pbml0aWFsU2Nh
bGU7CisgICAgbV9taW5pbXVtU2NhbGVGYWN0b3IgPSBhdHRyLm1pbmltdW1TY2FsZTsKKyAgICBt
X21heGltdW1TY2FsZUZhY3RvciA9IGF0dHIubWF4aW11bVNjYWxlOworICAgIG1faXNVc2VyU2Nh
bGFibGUgPSBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaCBiL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmRlMjM2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJW
aWV3cG9ydEF0dHJpYnV0ZXMuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYlZpZXdwb3J0QXR0cmlidXRlc19oCisjZGVmaW5lIFdlYlZpZXdw
b3J0QXR0cmlidXRlc19oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0ludFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+Cisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlZpZXdwb3J0QXR0cmlidXRlcyA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0
YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlVmlld3BvcnRBdHRyaWJ1dGVzOworCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViVmlld3BvcnRBdHRyaWJ1dGVzPiBjcmVhdGUoY29uc3QgVmll
d3BvcnRBdHRyaWJ1dGVzJiBhdHRyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMoYXR0cikpOworICAgIH0KKworICAgIGludCBsYXlvdXRX
aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0U2l6ZS53aWR0aCgpOyB9CisgICAgaW50IGxh
eW91dEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0U2l6ZS5oZWlnaHQoKTsgfQorCisg
ICAgZmxvYXQgcGl4ZWxSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxSYXRpbzsgfQorCisg
ICAgZmxvYXQgaW5pdGlhbFNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFsU2Nh
bGVGYWN0b3I7IH0KKyAgICBmbG9hdCBtaW5pbXVtU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVy
biBtX21pbmltdW1TY2FsZUZhY3RvcjsgfQorICAgIGZsb2F0IG1heGltdW1TY2FsZUZhY3Rvcigp
IGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bVNjYWxlRmFjdG9yOyB9CisKKyAgICBib29sIGlzVXNl
clNjYWxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc1VzZXJTY2FsYWJsZTsgfQorCitwcml2YXRl
OgorICAgIFdlYlZpZXdwb3J0QXR0cmlidXRlcyhjb25zdCBWaWV3cG9ydEF0dHJpYnV0ZXMmKTsK
KyAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICBJbnRTaXpl
IG1fbGF5b3V0U2l6ZTsKKyAgICBmbG9hdCBtX3BpeGVsUmF0aW87CisKKyAgICBmbG9hdCBtX2lu
aXRpYWxTY2FsZUZhY3RvcjsKKyAgICBmbG9hdCBtX21pbmltdW1TY2FsZUZhY3RvcjsKKyAgICBm
bG9hdCBtX21heGltdW1TY2FsZUZhY3RvcjsKKworICAgIGJvb2wgbV9pc1VzZXJTY2FsYWJsZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViVmlld3BvcnRBdHRy
aWJ1dGVzX2gKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9XZWJLaXQyL1dlYktp
dDIucHJvCmluZGV4IGNhYTQ3YzIuLmJjZmRjODIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0
Mi5wcm8KKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMjE1LDYgKzIxNSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYW1lc3BhY2UuaCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmgg
XAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9jcHAvcXQvV0tVUkxRdC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL2NwcC9XS1JldGFpblB0
ci5oIFwKQEAgLTI1Miw2ICsyNTMsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc01hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIFwKICAg
ICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBcCisgICAgVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0
cmlidXRlcy5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0
VGVzdFJlc3VsdC5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGUuaCBcCkBAIC0zNDAsNiArMzQyLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VOYW1lc3BhY2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAg
XAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcWdy
YXBoaWNzd2t2aWV3LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcCBcCkBA
IC0zNzYsNiArMzc5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NN
YW5hZ2VyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJp
YnV0ZXMuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
SGl0VGVzdFJlc3VsdC5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0lu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYzA5
NWFlMC4uZjI5MjUzOCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUg
IkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVy
cy5oIgorI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFt
ZUxvYWRlckNsaWVudC5oIgpAQCAtNTQ2LDUgKzU0Nyw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkKIH0KICNlbmRpZgogCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6ZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2UoY29uc3QgVmlld3Bv
cnRBcmd1bWVudHMmIGFyZ3MpIGNvbnN0Cit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZVZpZXdwb3J0
RGF0YShhcmdzKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCmluZGV4IDQxOWE2YzkuLmFkNDg4ZjkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAK
ICNkZWZpbmUgV2ViQ2hyb21lQ2xpZW50X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lQ2xp
ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE4Nyw2ICsx
ODgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJy
ZW50Q3Vyc29yKCk7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0
RGF0YURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0Owor
CiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiB9Owpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDI2YzMyNjEuLjQ2NTE1OWMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0xMC0w
NiAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHVzYWdl
IG9mIFVJQ2xpZW50IHRvIGFjY291bnQgZm9yIHRoZSBuZXcKKyAgICAgICAgdmlld3BvcnRBdHRy
aWJ1dGVzSW52YWxpZGF0ZWQgY2FsbGJhY2suCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMv
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bQnJvd3NlcldpbmRvd0NvbnRy
b2xsZXIgYXdha2VGcm9tTmliXSk6CisgICAgICAgICogTWluaUJyb3dzZXIvd2luL0Jyb3dzZXJW
aWV3LmNwcDoKKyAgICAgICAgKEJyb3dzZXJWaWV3OjpjcmVhdGUpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpjcmVhdGVPdGhl
clBhZ2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisKIDIw
MTAtMTAtMDYgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByNjkyMDIuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9NaW5p
QnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1dlYktpdFRvb2xzL01pbmlC
cm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IGNiNGM1NmEuLjlmOTRk
NTEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93
Q29udHJvbGxlci5tCisrKyBiL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2lu
ZG93Q29udHJvbGxlci5tCkBAIC01MzgsNiArNTM4LDcgQEAgLSAodm9pZClhd2FrZUZyb21OaWIK
ICAgICAgICAgc2V0U3RhdHVzVGV4dCwKICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQs
CiAgICAgICAgIGNvbnRlbnRzU2l6ZUNoYW5nZWQsCisgICAgICAgIDAsICAgICAgICAgIC8qIHZp
ZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkICovCiAgICAgICAgIDAgICAgICAgICAgIC8qIGRp
ZE5vdEhhbmRsZUtleUV2ZW50ICovCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
X3dlYlZpZXcucGFnZVJlZiwgJnVpQ2xpZW50KTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL01p
bmlCcm93c2VyL3dpbi9Ccm93c2VyVmlldy5jcHAgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci93
aW4vQnJvd3NlclZpZXcuY3BwCmluZGV4IDc2ODQ4ZmEuLjVkN2IzZWIgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL01pbmlCcm93c2VyL3dpbi9Ccm93c2VyVmlldy5jcHAKKysrIGIvV2ViS2l0VG9v
bHMvTWluaUJyb3dzZXIvd2luL0Jyb3dzZXJWaWV3LmNwcApAQCAtMTEwLDYgKzExMCw3IEBAIHZv
aWQgQnJvd3NlclZpZXc6OmNyZWF0ZShSRUNUIHdlYlZpZXdSZWN0LCBCcm93c2VyV2luZG93KiBw
YXJlbnRXaW5kb3cpCiAgICAgICAgIHNldFN0YXR1c1RleHQsCiAgICAgICAgIG1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50LAogICAgICAgICBjb250ZW50c1NpemVDaGFuZ2VkLAorICAgICAgICAwLCAg
ICAgICAgICAgICAgLyogdmlld3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQgKi8KICAgICAgICAg
MCAgICAgICAgICAgICAgIC8qIGRpZE5vdEhhbmRsZUtleUV2ZW50ICovCiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAg
Yi9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA3
MzlkNDA1Li45NjM4N2Q2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtODYsNiArODYsNyBAQCBzdGF0aWMgV0tQYWdlUmVmIGNyZWF0
ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgY29uc3Qgdm9pZCopCiAgICAgICAgIDAsCiAg
ICAgICAgIDAsCiAgICAgICAgIDAsCisgICAgICAgIDAsCiAgICAgICAgIDAKICAgICB9OwogICAg
IFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAmb3RoZXJQYWdlVUlDbGllbnQpOwpAQCAt
MTY3LDYgKzE2OCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2Ms
IGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgMCwKICAgICAgICAgMCwKICAgICAgICAgMCwK
KyAgICAgICAgMCwKICAgICAgICAgMAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50
KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudCk7Ci0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70143</attachid>
            <date>2010-10-07 13:34:47 -0700</date>
            <delta_ts>2010-10-07 14:24:04 -0700</delta_ts>
            <desc>Patch (missing mac build)</desc>
            <filename>0001-WebKit2-Adding-C-API-for-dealing-with-viewport-meta-.patch</filename>
            <type>text/plain</type>
            <size>36979</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSAyNjQ0MzI5NGU1YWViOGVmZTVhODhiODhkNTNjOGRkNDU1NzFhZjg0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogV2VkLCA2IE9jdCAyMDEwIDExOjMwOjEw
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViS2l0MjogQWRkaW5nIEMgQVBJIGZvciBkZWFsaW5n
IHdpdGggdmlld3BvcnQgbWV0YSBpbmZvCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDcyMDIKClBhdGNoIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuIDxrZW5u
ZXRoQHdlYmtpdC5vcmc+IG9uIDIwMTAtMTAtMDYKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgpBZGQgbmV3IEFQSSBmb3Igc2V0dGluZyBzY2FsZSBhbmQgbGF5b3V0IHZpZXdwb3J0IGdpdmVu
IHRoZSBkYXRhCnByb3ZpZGVkIGJ5IHRoZSB2aWV3cG9ydCBtZXRhIHRhZy4KCkFueSBXZWJLaXQg
dXNlciB3aG8gd2FudHMgdG8gc3VwcG9ydCB0aGlzLCB3aWxsIG5lZWQgdG8KY29tcHV0ZSB0aGUg
dmlld3BvcnQgYXR0cmlidXRlcyBiZWZvcmUgZmlyc3QgbG9hZCB1c2luZwpXS1BhZ2VDb3B5Vmll
d3BvcnRBdHRyaWJ1dGVzKC4uLiksIGFuZCB0aGVuIGFnYWluIGV2ZXJ5dGltZQp0aGUgdmlld3Bv
cnQgYXR0cmlidXRlcyBnZXRzIGludmFsaWRhdGVzIChsb2FkaW5nIGEgbmV3IHBhZ2UsCm5hdmln
YXRpbmcgcGFnZSBjYWNoZSkgb3IgZXZlcnkgdGltZSBvbiBvZiB0aGUgYnJvd3NlcgphdHRyaWJ1
dGVzIGNoYW5nZSwgc3VjaCBhcyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlcyAod2hpY2gKY2hh
bmdlcyB0aGUgYWN0dWFsIHZpc2libGUgdmlld3BvcnQpLiBBIGNhbGxiYWNrIGluIHRoZQpXS1Bh
Z2VVSUNsaWVudCBpcyBwcm92aWRlZCBmb3IgdGhlIGZvcm1lci4KCiogU2hhcmVkL0FQSS9jL1dL
QmFzZS5oOgoqIFNoYXJlZC9BUElPYmplY3QuaDoKKiBTaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2Vi
UGFnZVByb3h5TWVzc2FnZUtpbmRzLmg6CiogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
OgoqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcDoKKFdLUGFnZUNvcHlWaWV3cG9ydEF0dHJpYnV0ZXMpOgoqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaDoKKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwOiBBZGRl
ZC4KKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0VHlwZUlEKToKKFdLVmlld3BvcnRBdHRyaWJ1dGVz
R2V0TGF5b3V0V2lkdGgpOgooV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRMYXlvdXRIZWlnaHQpOgoo
V0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRJbml0aWFsU2NhbGVGYWN0b3IpOgooV0tWaWV3cG9ydEF0
dHJpYnV0ZXNHZXRNaW5pbXVtU2NhbGVGYWN0b3IpOgooV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRN
YXhpbXVtU2NhbGVGYWN0b3IpOgooV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRQaXhlbFJhdGlvKToK
KFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0SXNVc2VyU2NhbGFibGUpOgoqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2UuY3BwOgooUVdLUGFnZTo6UVdLUGFnZSk6CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgooV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkKToKKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0Vmlld3BvcnRBcmd1bWVudHMp
OgooV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZpZXdwb3J0QXJndW1lbnRzKToKKiBVSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwOgooV2ViS2l0OjpXZWJVSUNsaWVudDo6dmlld3BvcnRBdHRyaWJ1dGVz
SW52YWxpZGF0ZWQpOgoqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oOgoqIFVJUHJvY2Vzcy9XZWJW
aWV3cG9ydEF0dHJpYnV0ZXMuY3BwOiBBZGRlZC4KKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1
dGVzOjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXMpOgoqIFVJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJp
YnV0ZXMuaDogQWRkZWQuCihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3JlYXRlKToK
KFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpsYXlvdXRXaWR0aCk6CihXZWJLaXQ6Oldl
YlZpZXdwb3J0QXR0cmlidXRlczo6bGF5b3V0SGVpZ2h0KToKKFdlYktpdDo6V2ViVmlld3BvcnRB
dHRyaWJ1dGVzOjpwaXhlbFJhdGlvKToKKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpp
bml0aWFsU2NhbGVGYWN0b3IpOgooV2ViS2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6Om1pbmlt
dW1TY2FsZUZhY3Rvcik6CihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6bWF4aW11bVNj
YWxlRmFjdG9yKToKKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjppc1VzZXJTY2FsYWJs
ZSk6CihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6dHlwZSk6CiogV2ViS2l0Mi5wcm86
CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgooV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKToKKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgoKV2ViS2l0VG9vbHM6IFVw
ZGF0ZSB1c2FnZSBvZiBVSUNsaWVudCB0byBhY2NvdW50IGZvciB0aGUgbmV3CnZpZXdwb3J0QXR0
cmlidXRlc0ludmFsaWRhdGVkIGNhbGxiYWNrLgoKUGF0Y2ggYnkgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4gPGtlbm5ldGhAd2Via2l0Lm9yZz4gb24gMjAxMC0xMC0wNgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiogTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVy
Lm06CigtW0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3YWtlRnJvbU5pYl0pOgoqIE1pbmlCcm93
c2VyL3dpbi9Ccm93c2VyVmlldy5jcHA6CihCcm93c2VyVmlldzo6Y3JlYXRlKToKKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKFdUUjo6Y3JlYXRlT3RoZXJQYWdlKToKKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgotLS0KIFdlYktpdDIvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NSArKysrKysrKysrKysrKysrKwog
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggICAgICAgICAgICAgICAgICAgICAgfCAgICAx
ICsKIFdlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMSArCiBXZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCAgICAgICAgICAg
ICB8ICAgIDIgKwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggICAgICAgICAg
ICAgICAgfCAgICAyICsKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAg
ICAgICAgICAgIHwgICAgOCArKwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggICAg
ICAgICAgICAgICAgICAgfCAgICA1ICsrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdw
b3J0QXR0cmlidXRlcy5jcHAgICB8ICAgNzEgKysrKysrKysrKysrKysrKysrCiBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oICAgICB8ICAgNTMgKysrKysrKysr
KysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcCAgICAgICAgICAgICAg
IHwgICAgMSArCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgICAg
ICAgICB8ICAgIDcgKystCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAg
ICAgICAgICAgICB8ICAgIDcgKysKIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiAgICAgICAgIHwgICAgMSArCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5j
cHAgICAgICAgICAgICAgICAgICB8ICAgIDggKysKIFdlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xp
ZW50LmggICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJW
aWV3cG9ydEF0dHJpYnV0ZXMuY3BwICAgICAgICB8ICAgNDIgKysrKysrKysrKysKIFdlYktpdDIv
VUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oICAgICAgICAgIHwgICA3NSArKysrKysr
KysrKysrKysrKysrKwogV2ViS2l0Mi9XZWJLaXQyLnBybyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA0ICsKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAgIHwgICAgNSArKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggICAgfCAgICAzICsKIFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArKysrCiBXZWJLaXRUb29scy9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKwogLi4uL01pbmlCcm93c2Vy
L21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tICAgICAgfCAgICAxICsKIFdlYktpdFRvb2xz
L01pbmlCcm93c2VyL3dpbi9Ccm93c2VyVmlldy5jcHAgICAgICAgIHwgICAgMSArCiBXZWJLaXRU
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAgICB8ICAgIDIgKwogMjUg
ZmlsZXMgY2hhbmdlZCwgMzk2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMu
Y3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9y
dEF0dHJpYnV0ZXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNzL1dlYlZp
ZXdwb3J0QXR0cmlidXRlcy5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vz
cy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaAoKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9n
IGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTVjNWNkZi4uNDQyMjVhMCAxMDA2NDQKLS0tIGEv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBA
QAorMjAxMC0xMC0wNiAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkaW5nIEMgQVBJIGZvciBkZWFsaW5nIHdpdGggdmlld3BvcnQgbWV0YSBpbmZvCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzIwMgorCisgICAgICAg
IEFkZCBuZXcgQVBJIGZvciBzZXR0aW5nIHNjYWxlIGFuZCBsYXlvdXQgdmlld3BvcnQgZ2l2ZW4g
dGhlIGRhdGEKKyAgICAgICAgcHJvdmlkZWQgYnkgdGhlIHZpZXdwb3J0IG1ldGEgdGFnLgorCisg
ICAgICAgIEFueSBXZWJLaXQgdXNlciB3aG8gd2FudHMgdG8gc3VwcG9ydCB0aGlzLCB3aWxsIG5l
ZWQgdG8KKyAgICAgICAgY29tcHV0ZSB0aGUgdmlld3BvcnQgYXR0cmlidXRlcyBiZWZvcmUgZmly
c3QgbG9hZCB1c2luZworICAgICAgICBXS1BhZ2VDb3B5Vmlld3BvcnRBdHRyaWJ1dGVzKC4uLiks
IGFuZCB0aGVuIGFnYWluIGV2ZXJ5dGltZQorICAgICAgICB0aGUgdmlld3BvcnQgYXR0cmlidXRl
cyBnZXRzIGludmFsaWRhdGVzIChsb2FkaW5nIGEgbmV3IHBhZ2UsCisgICAgICAgIG5hdmlnYXRp
bmcgcGFnZSBjYWNoZSkgb3IgZXZlcnkgdGltZSBvbiBvZiB0aGUgYnJvd3NlcgorICAgICAgICBh
dHRyaWJ1dGVzIGNoYW5nZSwgc3VjaCBhcyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlcyAod2hp
Y2gKKyAgICAgICAgY2hhbmdlcyB0aGUgYWN0dWFsIHZpc2libGUgdmlld3BvcnQpLiBBIGNhbGxi
YWNrIGluIHRoZQorICAgICAgICBXS1BhZ2VVSUNsaWVudCBpcyBwcm92aWRlZCBmb3IgdGhlIGZv
cm1lci4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFy
ZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYlBhZ2VQ
cm94eU1lc3NhZ2VLaW5kcy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VDb3B5Vmlld3BvcnRB
dHRyaWJ1dGVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcDogQWRkZWQuCisgICAg
ICAgIChXS1ZpZXdwb3J0QXR0cmlidXRlc0dldFR5cGVJRCk6CisgICAgICAgIChXS1ZpZXdwb3J0
QXR0cmlidXRlc0dldExheW91dFdpZHRoKToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVz
R2V0TGF5b3V0SGVpZ2h0KToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0SW5pdGlh
bFNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWluaW11bVNj
YWxlRmFjdG9yKToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWF4aW11bVNjYWxl
RmFjdG9yKToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0UGl4ZWxSYXRpbyk6Cisg
ICAgICAgIChXS1ZpZXdwb3J0QXR0cmlidXRlc0dldElzVXNlclNjYWxhYmxlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDoKKyAgICAgICAgKFFXS1BhZ2U6OlFXS1Bh
Z2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojp2aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldFZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp2
aWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OnZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRh
dGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdwb3J0QXR0cmlidXRlczo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdwb3J0QXR0cmlidXRlczo6bGF5b3V0V2lkdGgpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3cG9ydEF0dHJpYnV0ZXM6OmxheW91dEhlaWdodCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdwb3J0QXR0cmlidXRlczo6cGl4ZWxSYXRpbyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdw
b3J0QXR0cmlidXRlczo6aW5pdGlhbFNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld3BvcnRBdHRyaWJ1dGVzOjptaW5pbXVtU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6Om1heGltdW1TY2FsZUZhY3Rvcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6aXNVc2VyU2NhbGFibGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OnR5cGUpOgorICAgICAgICAqIFdlYktpdDIu
cHJvOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaXNwYXRjaFZpZXdwb3J0
RGF0YURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaDoKKwogMjAxMC0xMC0wNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKaW5kZXggMGU2ZjJmZS4uYjZmMGFjNSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tCYXNlLmgKKysrIGIvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTY3LDYg
KzY3LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uRGF0YSogV0tO
YXZpZ2F0aW9uRGF0YVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZSogV0tQ
YWdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlTmFtZXNwYWNlKiBXS1Bh
Z2VOYW1lc3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2Vz
KiBXS1ByZWZlcmVuY2VzUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3cG9y
dEF0dHJpYnV0ZXMqIFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmOwogCiAvKiBXZWJLaXQyIEJ1bmRs
ZSB0eXBlcyAqLwogCmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1dl
YktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IGI0NmU1OTYuLjQwYjI3MzMgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1dlYktpdDIvU2hhcmVkL0FQSU9i
amVjdC5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZVBhZ2UsCiAgICAg
ICAgIFR5cGVQYWdlTmFtZXNwYWNlLAogICAgICAgICBUeXBlUHJlZmVyZW5jZXMsCisgICAgICAg
IFR5cGVWaWV3cG9ydEF0dHJpYnV0ZXMsCiAKICAgICAgICAgLy8gQnVuZGxlIHR5cGVzCiAgICAg
ICAgIFR5cGVCdW5kbGUsCmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCBiL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4
IGI0MDY0YjIuLjQ4OTk3ZDcgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCisrKyBiL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8
bGltaXRzPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CkBAIC00Miw2ICs0Myw3IEBAIG5hbWVzcGFj
ZSBDb3JlSVBDIHsKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50
UG9pbnQ+IDogU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2ludD4geyB9OwogdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRTaXplPiA6IFNpbXBsZUFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4geyB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiA6IFNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6SW50UmVjdD4geyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50cz4gOiBTaW1wbGVBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdw
b3J0QXJndW1lbnRzPiB7IH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6TWltZUNsYXNzSW5mbz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXIqIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6Ok1pbWVDbGFzc0luZm8mIG1pbWVDbGFzc0lu
Zm8pCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDkyYTgwM2QuLmFiZmQwMGEg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNz
IFdlYk5hdmlnYXRpb25EYXRhOwogY2xhc3MgV2ViUGFnZU5hbWVzcGFjZTsKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKIGNsYXNzIFdlYlByZWZlcmVuY2VzOworY2xhc3MgV2ViVmlld3BvcnRBdHRyaWJ1
dGVzOwogCiBXS19BRERfQVBJX01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0
UmVmLCBXZWJCYWNrRm9yd2FyZExpc3QpCkBAIC01Niw2ICs1Nyw3IEBAIFdLX0FERF9BUElfTUFQ
UElORyhXS05hdmlnYXRpb25EYXRhUmVmLCBXZWJOYXZpZ2F0aW9uRGF0YSkKIFdLX0FERF9BUElf
TUFQUElORyhXS1BhZ2VOYW1lc3BhY2VSZWYsIFdlYlBhZ2VOYW1lc3BhY2UpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tQYWdlUmVmLCBXZWJQYWdlUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQ
cmVmZXJlbmNlc1JlZiwgV2ViUHJlZmVyZW5jZXMpCitXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3
cG9ydEF0dHJpYnV0ZXNSZWYsIFdlYlZpZXdwb3J0QXR0cmlidXRlcykKIAogLyogRW51bSBjb252
ZXJzaW9ucyAqLwogCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA3YWJmMWUzLi5h
ZTM2YWI2IDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisr
KyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNsdWRlICJXZWJEYXRhLmgiCiAj
aW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViVmlld3BvcnRBdHRyaWJ1dGVz
LmgiCiAKICNpZmRlZiBfX0JMT0NLU19fCiAjaW5jbHVkZSA8QmxvY2suaD4KQEAgLTIwMyw2ICsy
MDQsMTMgQEAgdm9pZCBXS1BhZ2VDb3VudFN0cmluZ01hdGNoZXMoV0tQYWdlUmVmIHBhZ2VSZWYs
IFdLU3RyaW5nUmVmIHN0cmluZywgYm9vbCBjYXNlSW4KICAgICB0b0ltcGwocGFnZVJlZiktPmNv
dW50U3RyaW5nTWF0Y2hlcyh0b0ltcGwoc3RyaW5nKS0+c3RyaW5nKCksIGNhc2VJbnNlbnNpdGl2
ZSwgbWF4TnVtTWF0Y2hlcyk7CiB9CiAKK1dLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIFdLUGFnZUNv
cHlWaWV3cG9ydEF0dHJpYnV0ZXMoV0tQYWdlUmVmIHBhZ2VSZWYsIGludCB2aXNpYmxlV2lkdGgs
IGludCB2aXNpYmxlSGVpZ2h0LCBpbnQgZGVza3RvcFdpZHRoLCBpbnQgZGV2aWNlV2lkdGgsIGlu
dCBkZXZpY2VIZWlnaHQsIGludCBkZXZpY2VEUEkpCit7CisgICAgVmlld3BvcnRBdHRyaWJ1dGVz
IGF0dHI7CisgICAgYXR0ciA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXModG9JbXBsKHBhZ2VS
ZWYpLT52aWV3cG9ydEFyZ3VtZW50cygpLCBkZXNrdG9wV2lkdGgsIGRldmljZVdpZHRoLCBkZXZp
Y2VIZWlnaHQsIGRldmljZURQSSwgSW50U2l6ZSh2aXNpYmxlV2lkdGgsIHZpc2libGVIZWlnaHQp
KTsKKyAgICByZXR1cm4gdG9BUEkoV2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpjcmVhdGUoYXR0ciku
bGVha1JlZigpKTsKK30KKwogdm9pZCBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJl
ZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VMb2FkZXJDbGllbnQqIHdrQ2xpZW50KQogewogICAgIGlm
ICh3a0NsaWVudCAmJiB3a0NsaWVudC0+dmVyc2lvbikKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgK
aW5kZXggYWUzZjNlMC4uN2QwM2E0OCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmgKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2luY2x1ZGUgPFdlYktp
dDIvV0tFdmVudC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tOYXRpdmVFdmVudC5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaD4KIAogI2lmbmRlZiBfX2NwbHVzcGx1
cwogI2luY2x1ZGUgPHN0ZGJvb2wuaD4KQEAgLTEzNiw2ICsxMzcsNyBAQCB0eXBlZGVmIGJvb2wg
KCpXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgbQogdHlwZWRlZiBXS1N0cmluZ1JlZiAoKldLUGFnZVJ1bkphdmFTY3JpcHRQcm9t
cHRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5n
UmVmIGRlZmF1bHRWYWx1ZSwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS1N0cmluZ1JlZiB0ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVZpZXdwb3J0QXR0
cmlidXRlc0ludmFsaWRhdGVkQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZUNvbnRlbnRzU2l6ZUNoYW5nZWRDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIGludCB3aWR0aCwgaW50IGhlaWdodCwgV0tGcmFtZVJlZiBm
cmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRO
b3RIYW5kbGVLZXlFdmVudENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tOYXRpdmVFdmVudFB0
ciBldmVudCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAKQEAgLTE1MSw2ICsxNTMsNyBAQCBz
dHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIFdLUGFnZVNldFN0YXR1c1RleHRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzVGV4dDsKICAg
ICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OwogICAgIFdLUGFnZUNvbnRlbnRz
U2l6ZUNoYW5nZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGVudHNTaXplQ2hhbmdlZDsKKyAgICBXS1BhZ2VWaWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRl
ZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0QXR0cmlidXRlc0ludmFs
aWRhdGVkOwogICAgIFdLUGFnZURpZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlS2V5RXZlbnQ7CiB9OwogdHlwZWRl
ZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgV0tQYWdlVUlDbGllbnQ7CkBAIC0yMTYsNiArMjE5LDgg
QEAgV0tfRVhQT1JUIHZvaWQgV0tQYWdlRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJp
bmdSZWYgc3RyaW5nLCBXS0ZpbmREaXJlY3QKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUhpZGVGaW5k
VUkoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlQ291bnRTdHJpbmdNYXRj
aGVzKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzdHJpbmcsIGJvb2wgY2FzZUluc2Vuc2l0
aXZlLCB1bnNpZ25lZCBtYXhOdW1NYXRjaGVzKTsKIAorV0tfRVhQT1JUIFdLVmlld3BvcnRBdHRy
aWJ1dGVzUmVmIFdLUGFnZUNvcHlWaWV3cG9ydEF0dHJpYnV0ZXMoV0tQYWdlUmVmIHBhZ2UsIGlu
dCB2aXNpYmxlV2lkdGgsIGludCB2aXNpYmxlSGVpZ2h0LCBpbnQgZGVza3RvcFdpZHRoLCBpbnQg
ZGV2aWNlV2lkdGgsIGludCBkZXZpY2VIZWlnaHQsIGludCBkZXZpY2VEUEkpOworCiBXS19FWFBP
UlQgdm9pZCBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBX
S1BhZ2VMb2FkZXJDbGllbnQqIGNsaWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdl
UG9saWN5Q2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VQb2xpY3lDbGllbnQqIGNs
aWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlRm9ybUNsaWVudChXS1BhZ2VSZWYg
cGFnZSwgY29uc3QgV0tQYWdlRm9ybUNsaWVudCogY2xpZW50KTsKZGlmZiAtLWdpdCBhL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcCBiL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45M2ZiOWYwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwCkBAIC0wLDAgKzEsNzEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS1ZpZXdwb3J0QXR0cmlidXRlcy5o
IgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViVmlld3BvcnRBdHRyaWJ1
dGVzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLVmlld3BvcnRB
dHRyaWJ1dGVzR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViVmlld3BvcnRBdHRy
aWJ1dGVzOjpBUElUeXBlKTsKK30KKworaW50IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TGF5b3V0
V2lkdGgoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKQoreworICAgIHJldHVy
biB0b0ltcGwodmlld3BvcnRBdHRyKS0+bGF5b3V0V2lkdGgoKTsKK30KKworaW50IFdLVmlld3Bv
cnRBdHRyaWJ1dGVzR2V0TGF5b3V0SGVpZ2h0KFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdw
b3J0QXR0cikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdwb3J0QXR0ciktPmxheW91dEhlaWdo
dCgpOworfQorCitmbG9hdCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldEluaXRpYWxTY2FsZUZhY3Rv
cihXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2aWV3cG9ydEF0dHIpCit7CisgICAgcmV0dXJuIHRv
SW1wbCh2aWV3cG9ydEF0dHIpLT5pbml0aWFsU2NhbGVGYWN0b3IoKTsKK30KKworZmxvYXQgV0tW
aWV3cG9ydEF0dHJpYnV0ZXNHZXRNaW5pbXVtU2NhbGVGYWN0b3IoV0tWaWV3cG9ydEF0dHJpYnV0
ZXNSZWYgdmlld3BvcnRBdHRyKQoreworICAgIHJldHVybiB0b0ltcGwodmlld3BvcnRBdHRyKS0+
bWluaW11bVNjYWxlRmFjdG9yKCk7Cit9CisKK2Zsb2F0IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0
TWF4aW11bVNjYWxlRmFjdG9yKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cikK
K3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdwb3J0QXR0ciktPm1heGltdW1TY2FsZUZhY3Rvcigp
OworfQorCitmbG9hdCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldFBpeGVsUmF0aW8oV0tWaWV3cG9y
dEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKQoreworICAgIHJldHVybiB0b0ltcGwodmlld3Bv
cnRBdHRyKS0+cGl4ZWxSYXRpbygpOworfQorCitib29sIFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0
SXNVc2VyU2NhbGFibGUoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKQorewor
ICAgIHJldHVybiB0b0ltcGwodmlld3BvcnRBdHRyKS0+aXNVc2VyU2NhbGFibGUoKTsKK30KZGlm
ZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmgg
Yi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhZWU0YTIKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oCkBAIC0wLDAgKzEs
NTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tWaWV3cG9ydEF0dHJp
YnV0ZXNfaAorI2RlZmluZSBXS1ZpZXdwb3J0QXR0cmlidXRlc19oCisKKyNpbmNsdWRlIDxXZWJL
aXQyL1dLQmFzZS5oPgorCisjaWZuZGVmIF9fY3BsdXNwbHVzCisjaW5jbHVkZSA8c3RkYm9vbC5o
PgorI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwor
V0tfRVhQT1JUIFdLVHlwZUlEIFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0VHlwZUlEKCk7CisKK1dL
X0VYUE9SVCBpbnQgV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRMYXlvdXRXaWR0aChXS1ZpZXdwb3J0
QXR0cmlidXRlc1JlZiB2aWV3cG9ydEF0dHIpOworV0tfRVhQT1JUIGludCBXS1ZpZXdwb3J0QXR0
cmlidXRlc0dldExheW91dEhlaWdodChXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2aWV3cG9ydEF0
dHIpOworV0tfRVhQT1JUIGZsb2F0IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0SW5pdGlhbFNjYWxl
RmFjdG9yKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cik7CitXS19FWFBPUlQg
ZmxvYXQgV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRNaW5pbXVtU2NhbGVGYWN0b3IoV0tWaWV3cG9y
dEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKK1dLX0VYUE9SVCBmbG9hdCBXS1ZpZXdwb3J0
QXR0cmlidXRlc0dldE1heGltdW1TY2FsZUZhY3RvcihXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2
aWV3cG9ydEF0dHIpOworV0tfRVhQT1JUIGZsb2F0IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0UGl4
ZWxSYXRpbyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2aWV3cG9ydEF0dHIpOworV0tfRVhQT1JU
IGJvb2wgV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRJc1VzZXJTY2FsYWJsZShXS1ZpZXdwb3J0QXR0
cmlidXRlc1JlZiB2aWV3cG9ydEF0dHIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRp
ZgorCisjZW5kaWYgLyogV0tGcmFtZV9oICovCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZS5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5j
cHAKaW5kZXggN2Q1ZWM2My4uMjY0N2U5ZiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2UuY3BwCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdl
LmNwcApAQCAtMjcxLDYgKzI3MSw3IEBAIFFXS1BhZ2U6OlFXS1BhZ2UoV0tQYWdlTmFtZXNwYWNl
UmVmIG5hbWVzcGFjZVJlZikKICAgICAgICAgMCwgIC8qIHNldFN0YXR1c1RleHQgKi8KICAgICAg
ICAgMCwgIC8qIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50ICovCiAgICAgICAgIDAsICAvKiBjb250
ZW50c1NpemVDaGFuZ2VkICovCisgICAgICAgIDAsICAvKiB2aWV3cG9ydEF0dHJpYnV0ZXNJbnZh
bGlkYXRlZCAqLwogICAgICAgICAwICAgLyogZGlkTm90SGFuZGxlS2V5RXZlbnQgKi8KICAgICB9
OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChwYWdlUmVmKCksICZ1aUNsaWVudCk7CmRpZmYg
LS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyYjZmYjg0Li4wMDg2ODA4IDEwMDY0NAotLS0g
YS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU1Niw3ICs1NTYsNiBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TQogICAgIH0KIAogICAgIGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLQogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5KQpAQCAtODYxLDYgKzg2MCwx
MiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudHNTaXplQ2hhbmdlZCh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJgogICAgIG1fdWlDbGllbnQuY29udGVudHNTaXpl
Q2hhbmdlZCh0aGlzLCBzaXplLCBwcm9jZXNzKCktPndlYkZyYW1lKGZyYW1lSUQpKTsKIH0KIAor
dm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVZpZXdwb3J0RGF0YShjb25zdCBWaWV3cG9ydEFy
Z3VtZW50cyYgYXJncykKK3sKKyAgICBzZXRWaWV3cG9ydEFyZ3VtZW50cyhhcmdzKTsKKyAgICBt
X3VpQ2xpZW50LnZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkKHRoaXMpOworfQorCiAvLyBC
YWNrRm9yd2FyZExpc3QKIAogdm9pZCBXZWJQYWdlUHJveHk6OmJhY2tGb3J3YXJkQWRkSXRlbSh1
aW50NjRfdCBpdGVtSUQpCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDQyODFiM2UuLjkx
YTRlMDkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01Nyw2ICs1Nyw3IEBAIG5hbWVz
cGFjZSBDb3JlSVBDIHsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRTaXplOwog
ICAgIGNsYXNzIEN1cnNvcjsKKyAgICBjbGFzcyBWaWV3cG9ydEFyZ3VtZW50czsKIH0KIAogc3Ry
dWN0IFdLQ29udGV4dFN0YXRpc3RpY3M7CkBAIC0xNDAsNiArMTQxLDkgQEAgcHVibGljOgogICAg
IHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpOwogICAg
IHZvaWQgdmFsaWRhdGVNZW51SXRlbShjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKTsKIAorICAg
IHZvaWQgc2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHMmIGFyZ3VtZW50cykgeyBtX3ZpZXdwb3J0QXJndW1lbnRzID0gYXJndW1lbnRzOyB9CisgICAg
Y29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKCkgY29u
c3QgeyByZXR1cm4gbV92aWV3cG9ydEFyZ3VtZW50czsgfQorCiAvLyBUaGVzZSBhcmUgb25seSB1
c2VkIG9uIE1hYyBjdXJyZW50bHkuCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0V2lu
ZG93SXNWaXNpYmxlKGJvb2wgd2luZG93SXNWaXNpYmxlKTsKQEAgLTI1NCw2ICsyNTgsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lk
IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHVpbnQzMl90IG1vZGlmaWVycywgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2b2lkIGRpZENoYW5nZVZpZXdw
b3J0RGF0YShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwogCiAgICAgLy8gQmFj
ay9Gb3J3YXJkIGxpc3QgbWFuYWdlbWVudAogICAgIHZvaWQgYmFja0ZvcndhcmRBZGRJdGVtKHVp
bnQ2NF90IGl0ZW1JRCk7CkBAIC0zMjMsNiArMzI4LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1f
dmFsaWQ7CiAgICAgYm9vbCBtX2Nsb3NlZDsKIAorICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1l
bnRzIG1fdmlld3BvcnRBcmd1bWVudHM7CisKICAgICB1aW50NjRfdCBtX3BhZ2VJRDsKIAogICAg
IERlcXVlPE5hdGl2ZVdlYktleWJvYXJkRXZlbnQ+IG1fa2V5RXZlbnRRdWV1ZTsKZGlmZiAtLWdp
dCBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxODQ5ODc1Li45NGEzNDlk
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMCw2
ICszMCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUnVuSmF2YVNjcmlwdFBy
b21wdCh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBtZXNzYWdlLCBXVEY6OlN0cmluZyBk
ZWZhdWx0VmFsdWUpIC0+IChXVEY6OlN0cmluZyByZXN1bHQpCiAgICAgTW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQodWludDMyX3QgbW9kaWZpZXJzLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1l
c3NhZ2VFbmNvZGVyIHVzZXJEYXRhKTsKICAgICBDb250ZW50c1NpemVDaGFuZ2VkKHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OkludFNpemUgbmV3U2l6ZSkKKyAgICBEaWRDaGFuZ2VWaWV3cG9y
dERhdGEoV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzKQogICAgIERpZFJlY2Vp
dmVFdmVudCh1aW50MzJfdCB0eXBlLCBib29sIGhhbmRsZWQpCiAgICAgRGlkVmFsaWRhdGVNZW51
SXRlbShXVEY6OlN0cmluZyBjb21tYW5kTmFtZSwgYm9vbCBpc0VuYWJsZWQsIGludDMyX3Qgc3Rh
dGUpCiAgICAgU2V0Q3Vyc29yKFdlYkNvcmU6OkN1cnNvciBjdXJzb3IpCmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJV
SUNsaWVudC5jcHAKaW5kZXggYmEyNWY5Ni4uMDVkZWRkZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xp
ZW50LmNwcApAQCAtMTI5LDYgKzEyOSwxNCBAQCB2b2lkIFdlYlVJQ2xpZW50Ojpjb250ZW50c1Np
emVDaGFuZ2VkKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgVwogICAg
IG1fcGFnZVVJQ2xpZW50LmNvbnRlbnRzU2l6ZUNoYW5nZWQodG9BUEkocGFnZSksIHNpemUud2lk
dGgoKSwgc2l6ZS5oZWlnaHQoKSwgdG9BUEkoZnJhbWUpLCBtX3BhZ2VVSUNsaWVudC5jbGllbnRJ
bmZvKTsKIH0KIAordm9pZCBXZWJVSUNsaWVudDo6dmlld3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0
ZWQoV2ViUGFnZVByb3h5KiBwYWdlKQoreworICAgIGlmICghbV9wYWdlVUlDbGllbnQudmlld3Bv
cnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZVVJ
Q2xpZW50LnZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkKHRvQVBJKHBhZ2UpLCBtX3BhZ2VV
SUNsaWVudC5jbGllbnRJbmZvKTsKK30KKwogdm9pZCBXZWJVSUNsaWVudDo6ZGlkTm90SGFuZGxl
S2V5RXZlbnQoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50
JiBldmVudCkKIHsKICAgICBpZiAoIW1fcGFnZVVJQ2xpZW50LmRpZE5vdEhhbmRsZUtleUV2ZW50
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBiL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKaW5kZXggNjE0OGM2Yy4uZjM5NWMxYyAxMDA2NDQKLS0t
IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaAorKysgYi9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJVSUNsaWVudC5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0
YXR1c1RleHQoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChXZWJQYWdlUHJveHkqLCBXZWJFdmVudDo6TW9kaWZpZXJzLCBBUElP
YmplY3QqKTsKICAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViUGFnZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkZyYW1lUHJveHkqKTsKKyAgICB2b2lkIHZpZXdwb3J0
QXR0cmlidXRlc0ludmFsaWRhdGVkKFdlYlBhZ2VQcm94eSopOwogICAgIHZvaWQgZGlkTm90SGFu
ZGxlS2V5RXZlbnQoV2ViUGFnZVByb3h5KiwgY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYp
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRB
dHRyaWJ1dGVzLmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRiZTg4NQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5jcHAKQEAg
LTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYlZp
ZXdwb3J0QXR0cmlidXRlcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYlZpZXdwb3J0QXR0cmlidXRlczo6V2ViVmlld3BvcnRBdHRyaWJ1
dGVzKGNvbnN0IFZpZXdwb3J0QXR0cmlidXRlcyYgYXR0cikKK3sKKyAgICBtX2xheW91dFNpemUg
PSBhdHRyLmxheW91dFNpemU7CisgICAgbV9waXhlbFJhdGlvID0gYXR0ci5kZXZpY2VQaXhlbFJh
dGlvOworICAgIG1faW5pdGlhbFNjYWxlRmFjdG9yID0gYXR0ci5pbml0aWFsU2NhbGU7CisgICAg
bV9taW5pbXVtU2NhbGVGYWN0b3IgPSBhdHRyLm1pbmltdW1TY2FsZTsKKyAgICBtX21heGltdW1T
Y2FsZUZhY3RvciA9IGF0dHIubWF4aW11bVNjYWxlOworICAgIG1faXNVc2VyU2NhbGFibGUgPSBh
dHRyLnVzZXJTY2FsYWJsZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaCBiL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmRlMjM2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYlZpZXdwb3J0QXR0cmlidXRlc19oCisjZGVmaW5lIFdlYlZp
ZXdwb3J0QXR0cmlidXRlc19oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0ludFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlZpZXdwb3J0QXR0cmlidXRlcyA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAg
IHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlVmlld3BvcnRBdHRyaWJ1dGVzOworCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVmlld3BvcnRBdHRyaWJ1dGVzPiBjcmVhdGUoY29uc3Qg
Vmlld3BvcnRBdHRyaWJ1dGVzJiBhdHRyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMoYXR0cikpOworICAgIH0KKworICAgIGludCBsYXlv
dXRXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0U2l6ZS53aWR0aCgpOyB9CisgICAgaW50
IGxheW91dEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0U2l6ZS5oZWlnaHQoKTsgfQor
CisgICAgZmxvYXQgcGl4ZWxSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxSYXRpbzsgfQor
CisgICAgZmxvYXQgaW5pdGlhbFNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFs
U2NhbGVGYWN0b3I7IH0KKyAgICBmbG9hdCBtaW5pbXVtU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX21pbmltdW1TY2FsZUZhY3RvcjsgfQorICAgIGZsb2F0IG1heGltdW1TY2FsZUZhY3Rv
cigpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bVNjYWxlRmFjdG9yOyB9CisKKyAgICBib29sIGlz
VXNlclNjYWxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc1VzZXJTY2FsYWJsZTsgfQorCitwcml2
YXRlOgorICAgIFdlYlZpZXdwb3J0QXR0cmlidXRlcyhjb25zdCBWaWV3cG9ydEF0dHJpYnV0ZXMm
KTsKKyAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICBJbnRT
aXplIG1fbGF5b3V0U2l6ZTsKKyAgICBmbG9hdCBtX3BpeGVsUmF0aW87CisKKyAgICBmbG9hdCBt
X2luaXRpYWxTY2FsZUZhY3RvcjsKKyAgICBmbG9hdCBtX21pbmltdW1TY2FsZUZhY3RvcjsKKyAg
ICBmbG9hdCBtX21heGltdW1TY2FsZUZhY3RvcjsKKworICAgIGJvb2wgbV9pc1VzZXJTY2FsYWJs
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViVmlld3BvcnRB
dHRyaWJ1dGVzX2gKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9XZWJLaXQyL1dl
YktpdDIucHJvCmluZGV4IGFjYmRhOWIuLmQ1ZjQxZTUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2Vi
S2l0Mi5wcm8KKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMjE3LDYgKzIxNyw3IEBAIEhF
QURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJp
YnV0ZXMuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL3F0L1dLTmF0aXZlRXZlbnQuaCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL2Nw
cC9xdC9XS1VSTFF0LmggXApAQCAtMjU1LDYgKzI1Niw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIFwKKyAgICBVSVByb2Nlc3MvV2Vi
Vmlld3BvcnRBdHRyaWJ1dGVzLmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVIaXRUZXN0UmVzdWx0LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
RE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIFwKQEAgLTM0Niw2ICszNDgsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmFtZXNwYWNlLmNwcCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1ByaXZhdGUuY3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9y
dEF0dHJpYnV0ZXMuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuY3BwIFwK
ICAgICBVSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5jcHAgXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZS5jcHAgXApAQCAtMzgyLDYgKzM4NSw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIFwKKyAgICBV
SVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGMw
OTVhZTAuLmYyOTI1MzggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRl
ICJEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2Rl
cnMuaCIKKyNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCIKQEAgLTU0Niw1ICs1NDcsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiB9CiAjZW5kaWYKIAordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0IFZpZXdw
b3J0QXJndW1lbnRzJiBhcmdzKSBjb25zdAoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VWaWV3cG9y
dERhdGEoYXJncyksIG1fcGFnZS0+cGFnZUlEKCkpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCA0MTlhNmM5Li5hZDQ4OGY5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjZGVmaW5lIFdlYkNocm9tZUNsaWVudF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZUNs
aWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xODcsNiAr
MTg4LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3Vy
cmVudEN1cnNvcigpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9y
dERhdGFEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsK
KwogICAgIFN0cmluZyBtX2NhY2hlZFRvb2xUaXA7CiAgICAgV2ViUGFnZSogbV9wYWdlOwogfTsK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi52Y3Byb2oKaW5kZXggMzQyYzBhOC4uZmQ3MGI4ZSAxMDA3NTUKLS0tIGEvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTE1
NTksNiArMTU1OSwxNCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYlVJQ2xp
ZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxVSVByb2Nlc3NcV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmNwcCINCisJCQkJPg0KKwkJCTwv
RmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJWaWV3
cG9ydEF0dHJpYnV0ZXMuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCiAJCQk8RmlsdGVyDQogCQkJ
CU5hbWU9IkFQSSINCiAJCQkJPg0KQEAgLTE2ODEsNiArMTY4OSwxNCBAQAogCQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCINCiAJCQkJ
CQk+DQogCQkJCQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
VUlQcm9jZXNzXEFQSVxDXFdLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcCINCisJCQkJCQk+DQorCQkJ
CQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XEFQSVxDXFdLVmlld3BvcnRBdHRyaWJ1dGVzLmgiDQorCQkJCQkJPg0KKwkJCQkJPC9GaWxlPg0K
IAkJCQkJPEZpbHRlcg0KIAkJCQkJCU5hbWU9IndpbiINCiAJCQkJCQk+DQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQxODgy
MDQuLjg1ZDk0NGMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJL
aXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0xMC0wNiAgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9mIFVJQ2xpZW50
IHRvIGFjY291bnQgZm9yIHRoZSBuZXcKKyAgICAgICAgdmlld3BvcnRBdHRyaWJ1dGVzSW52YWxp
ZGF0ZWQgY2FsbGJhY2suCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYXdha2VG
cm9tTmliXSk6CisgICAgICAgICogTWluaUJyb3dzZXIvd2luL0Jyb3dzZXJWaWV3LmNwcDoKKyAg
ICAgICAgKEJyb3dzZXJWaWV3OjpjcmVhdGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpjcmVhdGVPdGhlclBhZ2UpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisKIDIwMTAtMDktMjEgIE1h
cnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIEZsZWl6YWNoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIv
bWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9t
YWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCBjYjRjNTZhLi45Zjk0ZDUxIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xs
ZXIubQorKysgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRy
b2xsZXIubQpAQCAtNTM4LDYgKzUzOCw3IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAg
IHNldFN0YXR1c1RleHQsCiAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50LAogICAgICAg
ICBjb250ZW50c1NpemVDaGFuZ2VkLAorICAgICAgICAwLCAgICAgICAgICAvKiB2aWV3cG9ydEF0
dHJpYnV0ZXNJbnZhbGlkYXRlZCAqLwogICAgICAgICAwICAgICAgICAgICAvKiBkaWROb3RIYW5k
bGVLZXlFdmVudCAqLwogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KF93ZWJWaWV3
LnBhZ2VSZWYsICZ1aUNsaWVudCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nl
ci93aW4vQnJvd3NlclZpZXcuY3BwIGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvd2luL0Jyb3dz
ZXJWaWV3LmNwcAppbmRleCA3Njg0OGZhLi41ZDdiM2ViIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9NaW5pQnJvd3Nlci93aW4vQnJvd3NlclZpZXcuY3BwCisrKyBiL1dlYktpdFRvb2xzL01pbmlC
cm93c2VyL3dpbi9Ccm93c2VyVmlldy5jcHAKQEAgLTExMCw2ICsxMTAsNyBAQCB2b2lkIEJyb3dz
ZXJWaWV3OjpjcmVhdGUoUkVDVCB3ZWJWaWV3UmVjdCwgQnJvd3NlcldpbmRvdyogcGFyZW50V2lu
ZG93KQogICAgICAgICBzZXRTdGF0dXNUZXh0LAogICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxl
bWVudCwKICAgICAgICAgY29udGVudHNTaXplQ2hhbmdlZCwKKyAgICAgICAgMCwgICAgICAgICAg
ICAgIC8qIHZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkICovCiAgICAgICAgIDAgICAgICAg
ICAgICAgICAvKiBkaWROb3RIYW5kbGVLZXlFdmVudCAqLwogICAgIH07CiAKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOTAxZjhkZi4u
NTQ2N2MwMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKQEAgLTkyLDYgKzkyLDcgQEAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVPdGhlclBh
Z2UoV0tQYWdlUmVmIG9sZFBhZ2UsIGNvbnN0IHZvaWQqKQogICAgICAgICAwLAogICAgICAgICAw
LAogICAgICAgICAwLAorICAgICAgICAwLAogICAgICAgICAwCiAgICAgfTsKICAgICBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50KTsKQEAgLTE3Myw2ICsx
NzQsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBj
aGFyKiBhcmd2W10pCiAgICAgICAgIDAsCiAgICAgICAgIDAsCiAgICAgICAgIDAsCisgICAgICAg
IDAsCiAgICAgICAgIDAKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5X
ZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQpOwotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70151</attachid>
            <date>2010-10-07 14:24:04 -0700</date>
            <delta_ts>2010-10-08 02:31:43 -0700</delta_ts>
            <desc>Patch (win fix)</desc>
            <filename>0001-WebKit2-Adding-C-API-for-dealing-with-viewport-meta-.patch</filename>
            <type>text/plain</type>
            <size>37909</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBlOGIxMGMyMzFiMmUwYjVhZGU1OTZlNzNlYjlmMjM1YWFkZTZhMjMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogV2VkLCA2IE9jdCAyMDEwIDExOjMwOjEw
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViS2l0MjogQWRkaW5nIEMgQVBJIGZvciBkZWFsaW5n
IHdpdGggdmlld3BvcnQgbWV0YSBpbmZvCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDcyMDIKClBhdGNoIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuIDxrZW5u
ZXRoQHdlYmtpdC5vcmc+IG9uIDIwMTAtMTAtMDYKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgpBZGQgbmV3IEFQSSBmb3Igc2V0dGluZyBzY2FsZSBhbmQgbGF5b3V0IHZpZXdwb3J0IGdpdmVu
IHRoZSBkYXRhCnByb3ZpZGVkIGJ5IHRoZSB2aWV3cG9ydCBtZXRhIHRhZy4KCkFueSBXZWJLaXQg
dXNlciB3aG8gd2FudHMgdG8gc3VwcG9ydCB0aGlzLCB3aWxsIG5lZWQgdG8KY29tcHV0ZSB0aGUg
dmlld3BvcnQgYXR0cmlidXRlcyBiZWZvcmUgZmlyc3QgbG9hZCB1c2luZwpXS1BhZ2VDb3B5Vmll
d3BvcnRBdHRyaWJ1dGVzKC4uLiksIGFuZCB0aGVuIGFnYWluIGV2ZXJ5dGltZQp0aGUgdmlld3Bv
cnQgYXR0cmlidXRlcyBnZXRzIGludmFsaWRhdGVzIChsb2FkaW5nIGEgbmV3IHBhZ2UsCm5hdmln
YXRpbmcgcGFnZSBjYWNoZSkgb3IgZXZlcnkgdGltZSBvbiBvZiB0aGUgYnJvd3NlcgphdHRyaWJ1
dGVzIGNoYW5nZSwgc3VjaCBhcyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlcyAod2hpY2gKY2hh
bmdlcyB0aGUgYWN0dWFsIHZpc2libGUgdmlld3BvcnQpLiBBIGNhbGxiYWNrIGluIHRoZQpXS1Bh
Z2VVSUNsaWVudCBpcyBwcm92aWRlZCBmb3IgdGhlIGZvcm1lci4KCiogU2hhcmVkL0FQSS9jL1dL
QmFzZS5oOgoqIFNoYXJlZC9BUElPYmplY3QuaDoKKiBTaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2Vi
UGFnZVByb3h5TWVzc2FnZUtpbmRzLmg6CiogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
OgoqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcDoKKFdLUGFnZUNvcHlWaWV3cG9ydEF0dHJpYnV0ZXMpOgoqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaDoKKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwOiBBZGRl
ZC4KKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0VHlwZUlEKToKKFdLVmlld3BvcnRBdHRyaWJ1dGVz
R2V0TGF5b3V0V2lkdGgpOgooV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRMYXlvdXRIZWlnaHQpOgoo
V0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRJbml0aWFsU2NhbGVGYWN0b3IpOgooV0tWaWV3cG9ydEF0
dHJpYnV0ZXNHZXRNaW5pbXVtU2NhbGVGYWN0b3IpOgooV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRN
YXhpbXVtU2NhbGVGYWN0b3IpOgooV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRQaXhlbFJhdGlvKToK
KFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0SXNVc2VyU2NhbGFibGUpOgoqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2UuY3BwOgooUVdLUGFnZTo6UVdLUGFnZSk6CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgooV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkKToKKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0Vmlld3BvcnRBcmd1bWVudHMp
OgooV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZpZXdwb3J0QXJndW1lbnRzKToKKiBVSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwOgooV2ViS2l0OjpXZWJVSUNsaWVudDo6dmlld3BvcnRBdHRyaWJ1dGVz
SW52YWxpZGF0ZWQpOgoqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oOgoqIFVJUHJvY2Vzcy9XZWJW
aWV3cG9ydEF0dHJpYnV0ZXMuY3BwOiBBZGRlZC4KKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1
dGVzOjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXMpOgoqIFVJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJp
YnV0ZXMuaDogQWRkZWQuCihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3JlYXRlKToK
KFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpsYXlvdXRXaWR0aCk6CihXZWJLaXQ6Oldl
YlZpZXdwb3J0QXR0cmlidXRlczo6bGF5b3V0SGVpZ2h0KToKKFdlYktpdDo6V2ViVmlld3BvcnRB
dHRyaWJ1dGVzOjpwaXhlbFJhdGlvKToKKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpp
bml0aWFsU2NhbGVGYWN0b3IpOgooV2ViS2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6Om1pbmlt
dW1TY2FsZUZhY3Rvcik6CihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6bWF4aW11bVNj
YWxlRmFjdG9yKToKKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjppc1VzZXJTY2FsYWJs
ZSk6CihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6dHlwZSk6CiogV2ViS2l0Mi5wcm86
CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgooV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKToKKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgoKV2ViS2l0VG9vbHM6IFVw
ZGF0ZSB1c2FnZSBvZiBVSUNsaWVudCB0byBhY2NvdW50IGZvciB0aGUgbmV3CnZpZXdwb3J0QXR0
cmlidXRlc0ludmFsaWRhdGVkIGNhbGxiYWNrLgoKUGF0Y2ggYnkgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4gPGtlbm5ldGhAd2Via2l0Lm9yZz4gb24gMjAxMC0xMC0wNgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiogTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVy
Lm06CigtW0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3YWtlRnJvbU5pYl0pOgoqIE1pbmlCcm93
c2VyL3dpbi9Ccm93c2VyVmlldy5jcHA6CihCcm93c2VyVmlldzo6Y3JlYXRlKToKKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKFdUUjo6Y3JlYXRlT3RoZXJQYWdlKToKKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgotLS0KIFdlYktpdDIvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NSArKysrKysrKysrKysrKysrKwog
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggICAgICAgICAgICAgICAgICAgICAgfCAgICAx
ICsKIFdlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMSArCiBXZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCAgICAgICAgICAg
ICB8ICAgIDIgKwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggICAgICAgICAg
ICAgICAgfCAgICAyICsKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAg
ICAgICAgICAgIHwgICAgOCArKwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggICAg
ICAgICAgICAgICAgICAgfCAgICA1ICsrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdw
b3J0QXR0cmlidXRlcy5jcHAgICB8ICAgNzEgKysrKysrKysrKysrKysrKysrCiBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oICAgICB8ICAgNTMgKysrKysrKysr
KysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcCAgICAgICAgICAgICAg
IHwgICAgMSArCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgICAg
ICAgICB8ICAgIDcgKystCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAg
ICAgICAgICAgICB8ICAgIDcgKysKIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiAgICAgICAgIHwgICAgMSArCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5j
cHAgICAgICAgICAgICAgICAgICB8ICAgIDggKysKIFdlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xp
ZW50LmggICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJW
aWV3cG9ydEF0dHJpYnV0ZXMuY3BwICAgICAgICB8ICAgNDIgKysrKysrKysrKysKIFdlYktpdDIv
VUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oICAgICAgICAgIHwgICA3NSArKysrKysr
KysrKysrKysrKysrKwogV2ViS2l0Mi9XZWJLaXQyLnBybyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA0ICsKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAgIHwgICAgNSArKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggICAgfCAgICAzICsKIFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArKysrCiBXZWJLaXQyL3dpbi9XZWJLaXQyR2Vu
ZXJhdGVkLm1ha2UgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysKIC4uLi9NaW5pQnJv
d3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSAgICAgIHwgICAgMSArCiBXZWJLaXRU
b29scy9NaW5pQnJvd3Nlci93aW4vQnJvd3NlclZpZXcuY3BwICAgICAgICB8ICAgIDEgKwogV2Vi
S2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAgfCAgICAyICsK
IDI2IGZpbGVzIGNoYW5nZWQsIDM5NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1
dGVzLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVmll
d3BvcnRBdHRyaWJ1dGVzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmgKCmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU1YzVjZGYuLjQ0MjI1YTAgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NjggQEAKKzIwMTAtMTAtMDYgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGluZyBDIEFQSSBmb3IgZGVhbGluZyB3aXRoIHZpZXdwb3J0IG1ldGEgaW5mbworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcyMDIKKworICAg
ICAgICBBZGQgbmV3IEFQSSBmb3Igc2V0dGluZyBzY2FsZSBhbmQgbGF5b3V0IHZpZXdwb3J0IGdp
dmVuIHRoZSBkYXRhCisgICAgICAgIHByb3ZpZGVkIGJ5IHRoZSB2aWV3cG9ydCBtZXRhIHRhZy4K
KworICAgICAgICBBbnkgV2ViS2l0IHVzZXIgd2hvIHdhbnRzIHRvIHN1cHBvcnQgdGhpcywgd2ls
bCBuZWVkIHRvCisgICAgICAgIGNvbXB1dGUgdGhlIHZpZXdwb3J0IGF0dHJpYnV0ZXMgYmVmb3Jl
IGZpcnN0IGxvYWQgdXNpbmcKKyAgICAgICAgV0tQYWdlQ29weVZpZXdwb3J0QXR0cmlidXRlcygu
Li4pLCBhbmQgdGhlbiBhZ2FpbiBldmVyeXRpbWUKKyAgICAgICAgdGhlIHZpZXdwb3J0IGF0dHJp
YnV0ZXMgZ2V0cyBpbnZhbGlkYXRlcyAobG9hZGluZyBhIG5ldyBwYWdlLAorICAgICAgICBuYXZp
Z2F0aW5nIHBhZ2UgY2FjaGUpIG9yIGV2ZXJ5IHRpbWUgb24gb2YgdGhlIGJyb3dzZXIKKyAgICAg
ICAgYXR0cmlidXRlcyBjaGFuZ2UsIHN1Y2ggYXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZXMg
KHdoaWNoCisgICAgICAgIGNoYW5nZXMgdGhlIGFjdHVhbCB2aXNpYmxlIHZpZXdwb3J0KS4gQSBj
YWxsYmFjayBpbiB0aGUKKyAgICAgICAgV0tQYWdlVUlDbGllbnQgaXMgcHJvdmlkZWQgZm9yIHRo
ZSBmb3JtZXIuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICog
U2hhcmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJQ
YWdlUHJveHlNZXNzYWdlS2luZHMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlQ29weVZpZXdw
b3J0QXR0cmlidXRlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHA6IEFkZGVkLgor
ICAgICAgICAoV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRUeXBlSUQpOgorICAgICAgICAoV0tWaWV3
cG9ydEF0dHJpYnV0ZXNHZXRMYXlvdXRXaWR0aCk6CisgICAgICAgIChXS1ZpZXdwb3J0QXR0cmli
dXRlc0dldExheW91dEhlaWdodCk6CisgICAgICAgIChXS1ZpZXdwb3J0QXR0cmlidXRlc0dldElu
aXRpYWxTY2FsZUZhY3Rvcik6CisgICAgICAgIChXS1ZpZXdwb3J0QXR0cmlidXRlc0dldE1pbmlt
dW1TY2FsZUZhY3Rvcik6CisgICAgICAgIChXS1ZpZXdwb3J0QXR0cmlidXRlc0dldE1heGltdW1T
Y2FsZUZhY3Rvcik6CisgICAgICAgIChXS1ZpZXdwb3J0QXR0cmlidXRlc0dldFBpeGVsUmF0aW8p
OgorICAgICAgICAoV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRJc1VzZXJTY2FsYWJsZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHA6CisgICAgICAgIChRV0tQYWdlOjpR
V0tQYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6dmlld3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXRWaWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6dmlld3BvcnRBcmd1bWVudHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVJQ2xpZW50Ojp2aWV3cG9ydEF0dHJpYnV0ZXNJbnZh
bGlkYXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OldlYlZpZXdwb3J0QXR0cmlidXRlcyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmxheW91dFdpZHRoKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjpsYXlvdXRIZWlnaHQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OnBpeGVsUmF0aW8pOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3cG9ydEF0dHJpYnV0ZXM6OmluaXRpYWxTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdwb3J0QXR0cmlidXRlczo6bWluaW11bVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjptYXhpbXVtU2NhbGVGYWN0b3IpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmlzVXNlclNjYWxhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjp0eXBlKToKKyAgICAgICAgKiBXZWJL
aXQyLnBybzoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlzcGF0Y2hWaWV3
cG9ydERhdGFEaWRDaGFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTAtMTAtMDcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQg
YS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oCmluZGV4IDBlNmYyZmUuLmI2ZjBhYzUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLQmFzZS5oCisrKyBiL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC02
Nyw2ICs2Nyw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEq
IFdLTmF2aWdhdGlvbkRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2Uq
IFdLUGFnZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZU5hbWVzcGFjZSog
V0tQYWdlTmFtZXNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJl
bmNlcyogV0tQcmVmZXJlbmNlc1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmll
d3BvcnRBdHRyaWJ1dGVzKiBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIAogLyogV2ViS2l0MiBC
dW5kbGUgdHlwZXMgKi8KIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0Lmgg
Yi9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCBiNDZlNTk2Li40MGIyNzMzIDEwMDY0
NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaApAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVQYWdlLAog
ICAgICAgICBUeXBlUGFnZU5hbWVzcGFjZSwKICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAorICAg
ICAgICBUeXBlVmlld3BvcnRBdHRyaWJ1dGVzLAogCiAgICAgICAgIC8vIEJ1bmRsZSB0eXBlcwog
ICAgICAgICBUeXBlQnVuZGxlLApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmggYi9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApp
bmRleCBiNDA2NGIyLi40ODk5N2Q3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaAorKysgYi9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgogI2luY2x1
ZGUgPGxpbWl0cz4KIAogbmFtZXNwYWNlIENvcmVJUEMgewpAQCAtNDIsNiArNDMsNyBAQCBuYW1l
c3BhY2UgQ29yZUlQQyB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFBvaW50PiA6IFNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50UG9pbnQ+IHsgfTsK
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gOiBTaW1w
bGVBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IHsgfTsKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50UmVjdD4gOiBTaW1wbGVBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkludFJlY3Q+IHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IDogU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpW
aWV3cG9ydEFyZ3VtZW50cz4geyB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6Ok1pbWVDbGFzc0luZm8+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpNaW1lQ2xhc3NJbmZvJiBtaW1lQ2xh
c3NJbmZvKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmgg
Yi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA5MmE4MDNkLi5hYmZk
MDBhIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysg
Yi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtNDUsNiArNDUsNyBAQCBj
bGFzcyBXZWJOYXZpZ2F0aW9uRGF0YTsKIGNsYXNzIFdlYlBhZ2VOYW1lc3BhY2U7CiBjbGFzcyBX
ZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQcmVmZXJlbmNlczsKK2NsYXNzIFdlYlZpZXdwb3J0QXR0
cmlidXRlczsKIAogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwg
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSkKIFdLX0FERF9BUElfTUFQUElORyhXS0JhY2tGb3J3YXJk
TGlzdFJlZiwgV2ViQmFja0ZvcndhcmRMaXN0KQpAQCAtNTYsNiArNTcsNyBAQCBXS19BRERfQVBJ
X01BUFBJTkcoV0tOYXZpZ2F0aW9uRGF0YVJlZiwgV2ViTmF2aWdhdGlvbkRhdGEpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tQYWdlTmFtZXNwYWNlUmVmLCBXZWJQYWdlTmFtZXNwYWNlKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLUHJlZmVyZW5jZXNSZWYsIFdlYlByZWZlcmVuY2VzKQorV0tfQUREX0FQSV9NQVBQSU5HKFdL
Vmlld3BvcnRBdHRyaWJ1dGVzUmVmLCBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMpCiAKIC8qIEVudW0g
Y29udmVyc2lvbnMgKi8KIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggN2FiZjFl
My4uYWUzNmFiNiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW5jbHVkZSAiV2ViRGF0YS5o
IgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlZpZXdwb3J0QXR0cmli
dXRlcy5oIgogCiAjaWZkZWYgX19CTE9DS1NfXwogI2luY2x1ZGUgPEJsb2NrLmg+CkBAIC0yMDMs
NiArMjA0LDEzIEBAIHZvaWQgV0tQYWdlQ291bnRTdHJpbmdNYXRjaGVzKFdLUGFnZVJlZiBwYWdl
UmVmLCBXS1N0cmluZ1JlZiBzdHJpbmcsIGJvb2wgY2FzZUluCiAgICAgdG9JbXBsKHBhZ2VSZWYp
LT5jb3VudFN0cmluZ01hdGNoZXModG9JbXBsKHN0cmluZyktPnN0cmluZygpLCBjYXNlSW5zZW5z
aXRpdmUsIG1heE51bU1hdGNoZXMpOwogfQogCitXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiBXS1Bh
Z2VDb3B5Vmlld3BvcnRBdHRyaWJ1dGVzKFdLUGFnZVJlZiBwYWdlUmVmLCBpbnQgdmlzaWJsZVdp
ZHRoLCBpbnQgdmlzaWJsZUhlaWdodCwgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdpZHRo
LCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgZGV2aWNlRFBJKQoreworICAgIFZpZXdwb3J0QXR0cmli
dXRlcyBhdHRyOworICAgIGF0dHIgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKHRvSW1wbChw
YWdlUmVmKS0+dmlld3BvcnRBcmd1bWVudHMoKSwgZGVza3RvcFdpZHRoLCBkZXZpY2VXaWR0aCwg
ZGV2aWNlSGVpZ2h0LCBkZXZpY2VEUEksIEludFNpemUodmlzaWJsZVdpZHRoLCB2aXNpYmxlSGVp
Z2h0KSk7CisgICAgcmV0dXJuIHRvQVBJKFdlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3JlYXRlKGF0
dHIpLmxlYWtSZWYoKSk7Cit9CisKIHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChXS1Bh
Z2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50KiB3a0NsaWVudCkKIHsKICAg
ICBpZiAod2tDbGllbnQgJiYgd2tDbGllbnQtPnZlcnNpb24pCmRpZmYgLS1naXQgYS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oCmluZGV4IGFlM2YzZTAuLjdkMDNhNDggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNpbmNsdWRlIDxX
ZWJLaXQyL1dLRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLTmF0aXZlRXZlbnQuaD4KKyNp
bmNsdWRlIDxXZWJLaXQyL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmg+CiAKICNpZm5kZWYgX19jcGx1
c3BsdXMKICNpbmNsdWRlIDxzdGRib29sLmg+CkBAIC0xMzYsNiArMTM3LDcgQEAgdHlwZWRlZiBi
b29sICgqV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLU3RyaW5nUmVmIG0KIHR5cGVkZWYgV0tTdHJpbmdSZWYgKCpXS1BhZ2VSdW5KYXZhU2NyaXB0
UHJvbXB0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0
cmluZ1JlZiBkZWZhdWx0VmFsdWUsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VWaWV3cG9y
dEF0dHJpYnV0ZXNJbnZhbGlkYXRlZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VDb250ZW50c1NpemVDaGFuZ2Vk
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIFdLRnJhbWVS
ZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdl
RGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLTmF0aXZlRXZl
bnRQdHIgZXZlbnQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCkBAIC0xNTEsNiArMTUzLDcg
QEAgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7
CiAgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKICAgICBXS1BhZ2VDb250
ZW50c1NpemVDaGFuZ2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnRlbnRzU2l6ZUNoYW5nZWQ7CisgICAgV0tQYWdlVmlld3BvcnRBdHRyaWJ1dGVzSW52YWxp
ZGF0ZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydEF0dHJpYnV0ZXNJ
bnZhbGlkYXRlZDsKICAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OwogfTsKIHR5
cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50IFdLUGFnZVVJQ2xpZW50OwpAQCAtMjE2LDYgKzIx
OSw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUZpbmRTdHJpbmcoV0tQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIHN0cmluZywgV0tGaW5kRGlyZWN0CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VIaWRl
RmluZFVJKFdLUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUNvdW50U3RyaW5n
TWF0Y2hlcyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCBib29sIGNhc2VJbnNl
bnNpdGl2ZSwgdW5zaWduZWQgbWF4TnVtTWF0Y2hlcyk7CiAKK1dLX0VYUE9SVCBXS1ZpZXdwb3J0
QXR0cmlidXRlc1JlZiBXS1BhZ2VDb3B5Vmlld3BvcnRBdHRyaWJ1dGVzKFdLUGFnZVJlZiBwYWdl
LCBpbnQgdmlzaWJsZVdpZHRoLCBpbnQgdmlzaWJsZUhlaWdodCwgaW50IGRlc2t0b3BXaWR0aCwg
aW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgZGV2aWNlRFBJKTsKKwogV0tf
RVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29u
c3QgV0tQYWdlTG9hZGVyQ2xpZW50KiBjbGllbnQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0
UGFnZVBvbGljeUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlUG9saWN5Q2xpZW50
KiBjbGllbnQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUZvcm1DbGllbnQoV0tQYWdl
UmVmIHBhZ2UsIGNvbnN0IFdLUGFnZUZvcm1DbGllbnQqIGNsaWVudCk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAgYi9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOTNmYjlmMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcApAQCAtMCwwICsxLDcxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV0tWaWV3cG9ydEF0dHJpYnV0
ZXMuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlZpZXdwb3J0QXR0
cmlidXRlcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS1ZpZXdw
b3J0QXR0cmlidXRlc0dldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYlZpZXdwb3J0
QXR0cmlidXRlczo6QVBJVHlwZSk7Cit9CisKK2ludCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldExh
eW91dFdpZHRoKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cikKK3sKKyAgICBy
ZXR1cm4gdG9JbXBsKHZpZXdwb3J0QXR0ciktPmxheW91dFdpZHRoKCk7Cit9CisKK2ludCBXS1Zp
ZXdwb3J0QXR0cmlidXRlc0dldExheW91dEhlaWdodChXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2
aWV3cG9ydEF0dHIpCit7CisgICAgcmV0dXJuIHRvSW1wbCh2aWV3cG9ydEF0dHIpLT5sYXlvdXRI
ZWlnaHQoKTsKK30KKworZmxvYXQgV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRJbml0aWFsU2NhbGVG
YWN0b3IoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKQoreworICAgIHJldHVy
biB0b0ltcGwodmlld3BvcnRBdHRyKS0+aW5pdGlhbFNjYWxlRmFjdG9yKCk7Cit9CisKK2Zsb2F0
IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWluaW11bVNjYWxlRmFjdG9yKFdLVmlld3BvcnRBdHRy
aWJ1dGVzUmVmIHZpZXdwb3J0QXR0cikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdwb3J0QXR0
ciktPm1pbmltdW1TY2FsZUZhY3RvcigpOworfQorCitmbG9hdCBXS1ZpZXdwb3J0QXR0cmlidXRl
c0dldE1heGltdW1TY2FsZUZhY3RvcihXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2aWV3cG9ydEF0
dHIpCit7CisgICAgcmV0dXJuIHRvSW1wbCh2aWV3cG9ydEF0dHIpLT5tYXhpbXVtU2NhbGVGYWN0
b3IoKTsKK30KKworZmxvYXQgV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRQaXhlbFJhdGlvKFdLVmll
d3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHZp
ZXdwb3J0QXR0ciktPnBpeGVsUmF0aW8oKTsKK30KKworYm9vbCBXS1ZpZXdwb3J0QXR0cmlidXRl
c0dldElzVXNlclNjYWxhYmxlKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cikK
K3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdwb3J0QXR0ciktPmlzVXNlclNjYWxhYmxlKCk7Cit9
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRl
cy5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWVlNGEyCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaApAQCAtMCww
ICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVmlld3BvcnRB
dHRyaWJ1dGVzX2gKKyNkZWZpbmUgV0tWaWV3cG9ydEF0dHJpYnV0ZXNfaAorCisjaW5jbHVkZSA8
V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmbmRlZiBfX2NwbHVzcGx1cworI2luY2x1ZGUgPHN0ZGJv
b2wuaD4KKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlm
CisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldFR5cGVJRCgpOwor
CitXS19FWFBPUlQgaW50IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TGF5b3V0V2lkdGgoV0tWaWV3
cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKK1dLX0VYUE9SVCBpbnQgV0tWaWV3cG9y
dEF0dHJpYnV0ZXNHZXRMYXlvdXRIZWlnaHQoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3Bv
cnRBdHRyKTsKK1dLX0VYUE9SVCBmbG9hdCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldEluaXRpYWxT
Y2FsZUZhY3RvcihXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2aWV3cG9ydEF0dHIpOworV0tfRVhQ
T1JUIGZsb2F0IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWluaW11bVNjYWxlRmFjdG9yKFdLVmll
d3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cik7CitXS19FWFBPUlQgZmxvYXQgV0tWaWV3
cG9ydEF0dHJpYnV0ZXNHZXRNYXhpbXVtU2NhbGVGYWN0b3IoV0tWaWV3cG9ydEF0dHJpYnV0ZXNS
ZWYgdmlld3BvcnRBdHRyKTsKK1dLX0VYUE9SVCBmbG9hdCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dl
dFBpeGVsUmF0aW8oV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKK1dLX0VY
UE9SVCBib29sIFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0SXNVc2VyU2NhbGFibGUoV0tWaWV3cG9y
dEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9Cisj
ZW5kaWYKKworI2VuZGlmIC8qIFdLRnJhbWVfaCAqLwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2UuY3BwCmluZGV4IDdkNWVjNjMuLjI2NDdlOWYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2twYWdlLmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
cGFnZS5jcHAKQEAgLTI3MSw2ICsyNzEsNyBAQCBRV0tQYWdlOjpRV0tQYWdlKFdLUGFnZU5hbWVz
cGFjZVJlZiBuYW1lc3BhY2VSZWYpCiAgICAgICAgIDAsICAvKiBzZXRTdGF0dXNUZXh0ICovCiAg
ICAgICAgIDAsICAvKiBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCAqLwogICAgICAgICAwLCAgLyog
Y29udGVudHNTaXplQ2hhbmdlZCAqLworICAgICAgICAwLCAgLyogdmlld3BvcnRBdHRyaWJ1dGVz
SW52YWxpZGF0ZWQgKi8KICAgICAgICAgMCAgIC8qIGRpZE5vdEhhbmRsZUtleUV2ZW50ICovCiAg
ICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQocGFnZVJlZigpLCAmdWlDbGllbnQpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMmI2ZmI4NC4uMDA4NjgwOCAxMDA2NDQK
LS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NTYsNyArNTU2LDYgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok0KICAgICB9CiAKICAgICBkaWRSZWNlaXZlV2ViUGFnZVByb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0KIH0KIAogdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSkKQEAgLTg2MSw2ICs4
NjAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRzU2l6ZUNoYW5nZWQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYKICAgICBtX3VpQ2xpZW50LmNvbnRlbnRz
U2l6ZUNoYW5nZWQodGhpcywgc2l6ZSwgcHJvY2VzcygpLT53ZWJGcmFtZShmcmFtZUlEKSk7CiB9
CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VWaWV3cG9ydERhdGEoY29uc3QgVmlld3Bv
cnRBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgc2V0Vmlld3BvcnRBcmd1bWVudHMoYXJncyk7Cisg
ICAgbV91aUNsaWVudC52aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCh0aGlzKTsKK30KKwog
Ly8gQmFja0ZvcndhcmRMaXN0CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpiYWNrRm9yd2FyZEFkZEl0
ZW0odWludDY0X3QgaXRlbUlEKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0MjgxYjNl
Li45MWE0ZTA5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTcsNiArNTcsNyBAQCBu
YW1lc3BhY2UgQ29yZUlQQyB7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50U2l6
ZTsKICAgICBjbGFzcyBDdXJzb3I7CisgICAgY2xhc3MgVmlld3BvcnRBcmd1bWVudHM7CiB9CiAK
IHN0cnVjdCBXS0NvbnRleHRTdGF0aXN0aWNzOwpAQCAtMTQwLDYgKzE0MSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKTsK
ICAgICB2b2lkIHZhbGlkYXRlTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSk7CiAK
KyAgICB2b2lkIHNldFZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzJiBhcmd1bWVudHMpIHsgbV92aWV3cG9ydEFyZ3VtZW50cyA9IGFyZ3VtZW50czsgfQor
ICAgIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50cygp
IGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRBcmd1bWVudHM7IH0KKwogLy8gVGhlc2UgYXJlIG9u
bHkgdXNlZCBvbiBNYWMgY3VycmVudGx5LgogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNl
dFdpbmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJsZSk7CkBAIC0yNTQsNiArMjU4LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCh1aW50MzJfdCBtb2RpZmllcnMsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgdm9pZCBkaWRDaGFuZ2VW
aWV3cG9ydERhdGEoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKIAogICAgIC8v
IEJhY2svRm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKICAgICB2b2lkIGJhY2tGb3J3YXJkQWRkSXRl
bSh1aW50NjRfdCBpdGVtSUQpOwpAQCAtMzIzLDYgKzMyOCw4IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3ZhbGlkOwogICAgIGJvb2wgbV9jbG9zZWQ7CiAKKyAgICBXZWJDb3JlOjpWaWV3cG9ydEFy
Z3VtZW50cyBtX3ZpZXdwb3J0QXJndW1lbnRzOworCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7CiAK
ICAgICBEZXF1ZTxOYXRpdmVXZWJLZXlib2FyZEV2ZW50PiBtX2tleUV2ZW50UXVldWU7CmRpZmYg
LS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTg0OTg3NS4uOTRh
MzQ5ZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MzAsNiArMzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFJ1bkphdmFTY3Jp
cHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgbWVzc2FnZSwgV1RGOjpTdHJp
bmcgZGVmYXVsdFZhbHVlKSAtPiAoV1RGOjpTdHJpbmcgcmVzdWx0KQogICAgIE1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KHVpbnQzMl90IG1vZGlmaWVycywgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVz
ZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSk7CiAgICAgQ29udGVudHNTaXplQ2hhbmdlZCh1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpJbnRTaXplIG5ld1NpemUpCisgICAgRGlkQ2hhbmdlVmll
d3BvcnREYXRhKFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cykKICAgICBEaWRS
ZWNlaXZlRXZlbnQodWludDMyX3QgdHlwZSwgYm9vbCBoYW5kbGVkKQogICAgIERpZFZhbGlkYXRl
TWVudUl0ZW0oV1RGOjpTdHJpbmcgY29tbWFuZE5hbWUsIGJvb2wgaXNFbmFibGVkLCBpbnQzMl90
IHN0YXRlKQogICAgIFNldEN1cnNvcihXZWJDb3JlOjpDdXJzb3IgY3Vyc29yKQpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwCmluZGV4IGJhMjVmOTYuLjA1ZGVkZGUgMTAwNjQ0Ci0tLSBhL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJV
SUNsaWVudC5jcHAKQEAgLTEyOSw2ICsxMjksMTQgQEAgdm9pZCBXZWJVSUNsaWVudDo6Y29udGVu
dHNTaXplQ2hhbmdlZChXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IEludFNpemUmIHNpemUsIFcK
ICAgICBtX3BhZ2VVSUNsaWVudC5jb250ZW50c1NpemVDaGFuZ2VkKHRvQVBJKHBhZ2UpLCBzaXpl
LndpZHRoKCksIHNpemUuaGVpZ2h0KCksIHRvQVBJKGZyYW1lKSwgbV9wYWdlVUlDbGllbnQuY2xp
ZW50SW5mbyk7CiB9CiAKK3ZvaWQgV2ViVUlDbGllbnQ6OnZpZXdwb3J0QXR0cmlidXRlc0ludmFs
aWRhdGVkKFdlYlBhZ2VQcm94eSogcGFnZSkKK3sKKyAgICBpZiAoIW1fcGFnZVVJQ2xpZW50LnZp
ZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Bh
Z2VVSUNsaWVudC52aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCh0b0FQSShwYWdlKSwgbV9w
YWdlVUlDbGllbnQuY2xpZW50SW5mbyk7Cit9CisKIHZvaWQgV2ViVUlDbGllbnQ6OmRpZE5vdEhh
bmRsZUtleUV2ZW50KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKCFtX3BhZ2VVSUNsaWVudC5kaWROb3RIYW5kbGVLZXlF
dmVudCkKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggYi9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IDYxNDhjNmMuLmYzOTVjMWMgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViVUlDbGllbnQuaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRTdGF0dXNUZXh0KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV2ViUGFnZVByb3h5KiwgV2ViRXZlbnQ6Ok1vZGlmaWVycywg
QVBJT2JqZWN0Kik7CiAgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYlBhZ2VQcm94eSos
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJGcmFtZVByb3h5Kik7CisgICAgdm9pZCB2aWV3
cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZChXZWJQYWdlUHJveHkqKTsKICAgICB2b2lkIGRpZE5v
dEhhbmRsZUtleUV2ZW50KFdlYlBhZ2VQcm94eSosIGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZXdw
b3J0QXR0cmlidXRlcy5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0
ZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkYmU4ODUKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3Bw
CkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJX
ZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OldlYlZpZXdwb3J0QXR0
cmlidXRlcyhjb25zdCBWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpCit7CisgICAgbV9sYXlvdXRT
aXplID0gYXR0ci5sYXlvdXRTaXplOworICAgIG1fcGl4ZWxSYXRpbyA9IGF0dHIuZGV2aWNlUGl4
ZWxSYXRpbzsKKyAgICBtX2luaXRpYWxTY2FsZUZhY3RvciA9IGF0dHIuaW5pdGlhbFNjYWxlOwor
ICAgIG1fbWluaW11bVNjYWxlRmFjdG9yID0gYXR0ci5taW5pbXVtU2NhbGU7CisgICAgbV9tYXhp
bXVtU2NhbGVGYWN0b3IgPSBhdHRyLm1heGltdW1TY2FsZTsKKyAgICBtX2lzVXNlclNjYWxhYmxl
ID0gYXR0ci51c2VyU2NhbGFibGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmggYi9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5kZTIzNmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJWaWV3cG9ydEF0dHJpYnV0ZXNfaAorI2RlZmluZSBX
ZWJWaWV3cG9ydEF0dHJpYnV0ZXNfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50
cy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVZpZXdwb3J0QXR0cmlidXRlczsK
KworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZXdwb3J0QXR0cmlidXRlcz4gY3JlYXRlKGNv
bnN0IFZpZXdwb3J0QXR0cmlidXRlcyYgYXR0cikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViVmlld3BvcnRBdHRyaWJ1dGVzKGF0dHIpKTsKKyAgICB9CisKKyAgICBpbnQg
bGF5b3V0V2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2xheW91dFNpemUud2lkdGgoKTsgfQorICAg
IGludCBsYXlvdXRIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2xheW91dFNpemUuaGVpZ2h0KCk7
IH0KKworICAgIGZsb2F0IHBpeGVsUmF0aW8oKSBjb25zdCB7IHJldHVybiBtX3BpeGVsUmF0aW87
IH0KKworICAgIGZsb2F0IGluaXRpYWxTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1faW5p
dGlhbFNjYWxlRmFjdG9yOyB9CisgICAgZmxvYXQgbWluaW11bVNjYWxlRmFjdG9yKCkgY29uc3Qg
eyByZXR1cm4gbV9taW5pbXVtU2NhbGVGYWN0b3I7IH0KKyAgICBmbG9hdCBtYXhpbXVtU2NhbGVG
YWN0b3IoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1TY2FsZUZhY3RvcjsgfQorCisgICAgYm9v
bCBpc1VzZXJTY2FsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNVc2VyU2NhbGFibGU7IH0KKwor
cHJpdmF0ZToKKyAgICBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMoY29uc3QgVmlld3BvcnRBdHRyaWJ1
dGVzJik7CisgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAg
SW50U2l6ZSBtX2xheW91dFNpemU7CisgICAgZmxvYXQgbV9waXhlbFJhdGlvOworCisgICAgZmxv
YXQgbV9pbml0aWFsU2NhbGVGYWN0b3I7CisgICAgZmxvYXQgbV9taW5pbXVtU2NhbGVGYWN0b3I7
CisgICAgZmxvYXQgbV9tYXhpbXVtU2NhbGVGYWN0b3I7CisKKyAgICBib29sIG1faXNVc2VyU2Nh
bGFibGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlZpZXdw
b3J0QXR0cmlidXRlc19oCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYktpdDIucHJvIGIvV2ViS2l0
Mi9XZWJLaXQyLnBybwppbmRleCBhY2JkYTliLi5kNWY0MWU1IDEwMDY0NAotLS0gYS9XZWJLaXQy
L1dlYktpdDIucHJvCisrKyBiL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAgLTIxNyw2ICsyMTcsNyBA
QCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRB
dHRyaWJ1dGVzLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9xdC9XS05hdGl2ZUV2ZW50LmggXAog
ICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuaCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9jcHAvcXQvV0tVUkxRdC5oIFwKQEAgLTI1NSw2ICsyNTYsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBVSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBcCisgICAgVUlQcm9jZXNz
L1dlYlZpZXdwb3J0QXR0cmlidXRlcy5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZS5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCBcCkBAIC0zNDYsNiArMzQ4LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hbWVzcGFjZS5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmll
d3BvcnRBdHRyaWJ1dGVzLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNw
cCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuY3BwIFwKICAgICBVSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwIFwKQEAgLTM4Miw2ICszODUsNyBAQCBTT1VSQ0VTICs9
IFwKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBcCisg
ICAgVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5jcHAgXAogICAgIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgXApkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCBjMDk1YWUwLi5mMjkyNTM4IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5j
bHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
Q29kZXJzLmgiCisjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldl
YkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC01NDYsNSArNTQ3LDkgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKQogfQogI2VuZGlmCiAKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjpkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25zdCBW
aWV3cG9ydEFyZ3VtZW50cyYgYXJncykgY29uc3QKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlVmll
d3BvcnREYXRhKGFyZ3MpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKaW5kZXggNDE5YTZjOS4uYWQ0ODhmOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjgsNiArMjgs
NyBAQAogI2RlZmluZSBXZWJDaHJvbWVDbGllbnRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJv
bWVDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTg3
LDYgKzE4OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JU
b0N1cnJlbnRDdXJzb3IoKTsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVmll
d3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikgY29u
c3Q7CisKICAgICBTdHJpbmcgbV9jYWNoZWRUb29sVGlwOwogICAgIFdlYlBhZ2UqIG1fcGFnZTsK
IH07CmRpZmYgLS1naXQgYS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiBiL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qCmluZGV4IDM0MmMwYTguLmZkNzBiOGUgMTAwNzU1Ci0tLSBhL1dlYktp
dDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCkBA
IC0xNTU5LDYgKzE1NTksMTQgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJV
SUNsaWVudC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVUlQcm9jZXNzXFdlYlZpZXdwb3J0QXR0cmlidXRlcy5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2Vi
Vmlld3BvcnRBdHRyaWJ1dGVzLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQogCQkJPEZpbHRlcg0K
IAkJCQlOYW1lPSJBUEkiDQogCQkJCT4NCkBAIC0xNjgxLDYgKzE2ODksMTQgQEAKIAkJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLUHJlZmVyZW5jZXNQcml2YXRlLmgiDQog
CQkJCQkJPg0KIAkJCQkJPC9GaWxlPg0KKwkJCQkJPEZpbGUNCisJCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAiDQorCQkJCQkJPg0K
KwkJCQkJPC9GaWxlPg0KKwkJCQkJPEZpbGUNCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xBUElcQ1xXS1ZpZXdwb3J0QXR0cmlidXRlcy5oIg0KKwkJCQkJCT4NCisJCQkJCTwvRmls
ZT4NCiAJCQkJCTxGaWx0ZXINCiAJCQkJCQlOYW1lPSJ3aW4iDQogCQkJCQkJPg0KZGlmZiAtLWdp
dCBhL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZSBiL1dlYktpdDIvd2luL1dlYktp
dDJHZW5lcmF0ZWQubWFrZQppbmRleCAxZjQzNGQxLi5kZWY3MjIwIDEwMDY0NAotLS0gYS9XZWJL
aXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UKKysrIGIvV2ViS2l0Mi93aW4vV2ViS2l0Mkdl
bmVyYXRlZC5tYWtlCkBAIC0zNyw2ICszNyw3IEBAIGFsbDoKICAgICB4Y29weSAveSAvZCAiLi5c
VUlQcm9jZXNzXEFQSVxDXFdLUGFnZS5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2Vi
S2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLUGFnZU5hbWVzcGFj
ZS5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAv
ZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLUHJlZmVyZW5jZXMuaCIgIiQoV0VCS0lUT1VUUFVURElS
KVxpbmNsdWRlXFdlYktpdDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xX
S1ZpZXdwb3J0QXR0cmlidXRlcy5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0
MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLUHJlZmVyZW5jZXNQcml2
YXRlLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95
IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcd2luXFdLQ29udGV4dFByaXZhdGVXaW4uaCIgIiQoV0VC
S0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJv
Y2Vzc1xBUElcQ1x3aW5cV0tWaWV3LmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJL
aXQyIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGQxODgyMDQuLjg1ZDk0NGMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0No
YW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
MC0xMC0wNiAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
IHVzYWdlIG9mIFVJQ2xpZW50IHRvIGFjY291bnQgZm9yIHRoZSBuZXcKKyAgICAgICAgdmlld3Bv
cnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQgY2FsbGJhY2suCisKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIgYXdha2VGcm9tTmliXSk6CisgICAgICAgICogTWluaUJyb3dzZXIvd2luL0Jy
b3dzZXJWaWV3LmNwcDoKKyAgICAgICAgKEJyb3dzZXJWaWV3OjpjcmVhdGUpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpjcmVh
dGVPdGhlclBhZ2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6
CisKIDIwMTAtMDktMjEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9XZWJLaXRU
b29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCBjYjRj
NTZhLi45Zjk0ZDUxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9tYWMvQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9tYWMv
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNTM4LDYgKzUzOCw3IEBAIC0gKHZvaWQpYXdh
a2VGcm9tTmliCiAgICAgICAgIHNldFN0YXR1c1RleHQsCiAgICAgICAgIG1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50LAogICAgICAgICBjb250ZW50c1NpemVDaGFuZ2VkLAorICAgICAgICAwLCAgICAg
ICAgICAvKiB2aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCAqLwogICAgICAgICAwICAgICAg
ICAgICAvKiBkaWROb3RIYW5kbGVLZXlFdmVudCAqLwogICAgIH07CiAgICAgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KF93ZWJWaWV3LnBhZ2VSZWYsICZ1aUNsaWVudCk7CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9NaW5pQnJvd3Nlci93aW4vQnJvd3NlclZpZXcuY3BwIGIvV2ViS2l0VG9vbHMvTWlu
aUJyb3dzZXIvd2luL0Jyb3dzZXJWaWV3LmNwcAppbmRleCA3Njg0OGZhLi41ZDdiM2ViIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci93aW4vQnJvd3NlclZpZXcuY3BwCisrKyBi
L1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3dpbi9Ccm93c2VyVmlldy5jcHAKQEAgLTExMCw2ICsx
MTAsNyBAQCB2b2lkIEJyb3dzZXJWaWV3OjpjcmVhdGUoUkVDVCB3ZWJWaWV3UmVjdCwgQnJvd3Nl
cldpbmRvdyogcGFyZW50V2luZG93KQogICAgICAgICBzZXRTdGF0dXNUZXh0LAogICAgICAgICBt
b3VzZURpZE1vdmVPdmVyRWxlbWVudCwKICAgICAgICAgY29udGVudHNTaXplQ2hhbmdlZCwKKyAg
ICAgICAgMCwgICAgICAgICAgICAgIC8qIHZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkICov
CiAgICAgICAgIDAgICAgICAgICAgICAgICAvKiBkaWROb3RIYW5kbGVLZXlFdmVudCAqLwogICAg
IH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKaW5kZXggOTAxZjhkZi4uNTQ2N2MwMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTkyLDYgKzkyLDcgQEAgc3RhdGljIFdLUGFn
ZVJlZiBjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIGNvbnN0IHZvaWQqKQogICAg
ICAgICAwLAogICAgICAgICAwLAogICAgICAgICAwLAorICAgICAgICAwLAogICAgICAgICAwCiAg
ICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xp
ZW50KTsKQEAgLTE3Myw2ICsxNzQsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXpl
KGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAgIDAsCiAgICAgICAgIDAsCiAg
ICAgICAgIDAsCisgICAgICAgIDAsCiAgICAgICAgIDAKICAgICB9OwogICAgIFdLUGFnZVNldFBh
Z2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQpOwotLSAKMS43
LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70216</attachid>
            <date>2010-10-08 02:31:43 -0700</date>
            <delta_ts>2010-10-08 14:20:58 -0700</delta_ts>
            <desc>p</desc>
            <filename>0001-WebKit2-Adding-C-API-for-dealing-with-viewport-meta-.patch</filename>
            <type>text/plain</type>
            <size>43996</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBhMmU3MWFlYmEzZTJjYmYxNGZiNTdiNThiYzkyNDAyMzE3OTlkNWRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgOCBPY3QgMjAxMCAwNToxMzoxOSAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIFdlYktpdDI6IEFkZGluZyBDIEFQSSBmb3IgZGVhbGluZyB3aXRoIHZpZXdwb3J0IG1ldGEg
aW5mbwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MjAyCgpQYXRj
aCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3ZWJraXQub3JnPiBvbiAy
MDEwLTEwLTA2ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIG5ldyBBUEkgZm9yIHNl
dHRpbmcgc2NhbGUgYW5kIGxheW91dCB2aWV3cG9ydCBnaXZlbiB0aGUgZGF0YQpwcm92aWRlZCBi
eSB0aGUgdmlld3BvcnQgbWV0YSB0YWcuCgpBbnkgV2ViS2l0IHVzZXIgd2hvIHdhbnRzIHRvIHN1
cHBvcnQgdGhpcywgd2lsbCBuZWVkIHRvCmNvbXB1dGUgdGhlIHZpZXdwb3J0IGF0dHJpYnV0ZXMg
YmVmb3JlIGZpcnN0IGxvYWQgdXNpbmcKV0tQYWdlQ29weVZpZXdwb3J0QXR0cmlidXRlcyguLi4p
LCBhbmQgdGhlbiBhZ2FpbiBldmVyeXRpbWUKdGhlIHZpZXdwb3J0IGF0dHJpYnV0ZXMgZ2V0cyBp
bnZhbGlkYXRlcyAobG9hZGluZyBhIG5ldyBwYWdlLApuYXZpZ2F0aW5nIHBhZ2UgY2FjaGUpIG9y
IGV2ZXJ5IHRpbWUgb24gb2YgdGhlIGJyb3dzZXIKYXR0cmlidXRlcyBjaGFuZ2UsIHN1Y2ggYXMg
d2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZXMgKHdoaWNoCmNoYW5nZXMgdGhlIGFjdHVhbCB2aXNp
YmxlIHZpZXdwb3J0KS4gQSBjYWxsYmFjayBpbiB0aGUKV0tQYWdlVUlDbGllbnQgaXMgcHJvdmlk
ZWQgZm9yIHRoZSBmb3JtZXIuCgoqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKiBTaGFyZWQvQVBJ
T2JqZWN0Lmg6CiogU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYlBhZ2VQcm94eU1lc3NhZ2VLaW5k
cy5oOgoqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKiBVSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0Lmg6CiogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CihXS1BhZ2VDb3B5Vmll
d3BvcnRBdHRyaWJ1dGVzKToKKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CiogVUlQcm9jZXNz
L0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcDogQWRkZWQuCihXS1ZpZXdwb3J0QXR0cmli
dXRlc0dldFR5cGVJRCk6CihXS1ZpZXdwb3J0QXR0cmlidXRlc0dldExheW91dFdpZHRoKToKKFdL
Vmlld3BvcnRBdHRyaWJ1dGVzR2V0TGF5b3V0SGVpZ2h0KToKKFdLVmlld3BvcnRBdHRyaWJ1dGVz
R2V0SW5pdGlhbFNjYWxlRmFjdG9yKToKKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWluaW11bVNj
YWxlRmFjdG9yKToKKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWF4aW11bVNjYWxlRmFjdG9yKToK
KFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0UGl4ZWxSYXRpbyk6CihXS1ZpZXdwb3J0QXR0cmlidXRl
c0dldElzVXNlclNjYWxhYmxlKToKKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0
ZXMuaDogQWRkZWQuCiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDoKKFFXS1BhZ2U6OlFX
S1BhZ2UpOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgooV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp2aWV3cG9ydEF0
dHJpYnV0ZXNJbnZhbGlkYXRlZCk6CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgooV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnNldFZpZXdwb3J0QXJndW1lbnRzKToKKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojp2aWV3cG9ydEFyZ3VtZW50cyk6CiogVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcDoKKFdl
YktpdDo6V2ViVUlDbGllbnQ6OnZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVkKToKKiBVSVBy
b2Nlc3MvV2ViVUlDbGllbnQuaDoKKiBVSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmNw
cDogQWRkZWQuCihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6V2ViVmlld3BvcnRBdHRy
aWJ1dGVzKToKKiBVSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmg6IEFkZGVkLgooV2Vi
S2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmNyZWF0ZSk6CihXZWJLaXQ6OldlYlZpZXdwb3J0
QXR0cmlidXRlczo6bGF5b3V0V2lkdGgpOgooV2ViS2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6
OmxheW91dEhlaWdodCk6CihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6cGl4ZWxSYXRp
byk6CihXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6aW5pdGlhbFNjYWxlRmFjdG9yKToK
KFdlYktpdDo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjptaW5pbXVtU2NhbGVGYWN0b3IpOgooV2Vi
S2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6Om1heGltdW1TY2FsZUZhY3Rvcik6CihXZWJLaXQ6
OldlYlZpZXdwb3J0QXR0cmlidXRlczo6aXNVc2VyU2NhbGFibGUpOgooV2ViS2l0OjpXZWJWaWV3
cG9ydEF0dHJpYnV0ZXM6OnR5cGUpOgoqIFdlYktpdDIucHJvOgoqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpk
aXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZSk6CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKCldlYktpdFRvb2xzOiBVcGRhdGUgdXNhZ2Ugb2YgVUlDbGll
bnQgdG8gYWNjb3VudCBmb3IgdGhlIG5ldwp2aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCBj
YWxsYmFjay4KClBhdGNoIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuIDxrZW5uZXRoQHdl
YmtpdC5vcmc+IG9uIDIwMTAtMTAtMDYKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIE1p
bmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tOgooLVtCcm93c2VyV2luZG93
Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKToKKiBNaW5pQnJvd3Nlci93aW4vQnJvd3NlclZpZXcu
Y3BwOgooQnJvd3NlclZpZXc6OmNyZWF0ZSk6CiogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHA6CihXVFI6OmNyZWF0ZU90aGVyUGFnZSk6CihXVFI6OlRlc3RDb250cm9sbGVyOjpp
bml0aWFsaXplKToKLS0tCiBXZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDY1ICsrKysrKysrKysrKysrKysrCiBXZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oICAgICAgICAgICAgIHwgICAgMiArCiBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCAgICAgICAgICAgICAgICB8ICAgIDIgKwog
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCAgICAgICAgICAgICAgICAgfCAgICA4
ICsrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCAgICAgICAgICAgICAgICAgICB8
ICAgIDUgKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNw
cCAgIHwgICA3MSArKysrKysrKysrKysrKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Vmlld3BvcnRBdHRyaWJ1dGVzLmggICAgIHwgICA1MyArKysrKysrKysrKysrKwogV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgICAgICAgIHwgICAgNyArKy0K
IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oICAgICAgICAgICAgICAgICAgIHwgICAg
NyArKwogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluICAgICAgICAg
fCAgICAxICsKIFdlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCAgICAgICAgICAgICAg
ICAgIHwgICAgOCArKwogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCAgICAgICAgICAg
ICAgICAgICAgfCAgICAxICsKIFdlYktpdDIvVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRl
cy5jcHAgICAgICAgIHwgICA0MiArKysrKysrKysrKwogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmll
d3BvcnRBdHRyaWJ1dGVzLmggICAgICAgICAgfCAgIDc1ICsrKysrKysrKysrKysrKysrKysrCiBX
ZWJLaXQyL1dlYktpdDIucHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQg
KwogV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAgICAgICAgfCAg
IDE2ICsrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgIHwgICAgNSArKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmggICAgfCAgICAzICsKIFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxNiArKysrCiBXZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1h
a2UgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysKIC4uLi9NaW5pQnJvd3Nlci9tYWMv
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSAgICAgIHwgICAgMSArCiBXZWJLaXRUb29scy9NaW5p
QnJvd3Nlci93aW4vQnJvd3NlclZpZXcuY3BwICAgICAgICB8ICAgIDEgKwogV2ViS2l0VG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAgfCAgICAyICsKIDI4IGZpbGVz
IGNoYW5nZWQsIDQxNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRy
aWJ1dGVzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9y
dEF0dHJpYnV0ZXMuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Vmlld3BvcnRBdHRyaWJ1dGVzLmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
IGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBlZmY5OWQ4Li5iMzVlZDM3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
QEAgLTQ4NSw2ICs0ODUsNyBAQCBfX1pON1dlYkNvcmUyNVBsdWdpbk1haW5UaHJlYWRTY2hlZHVs
ZXIxMnNjaGVkdWxlQ2FsbEVQNF9OUFBQRnZQdkVTM18KIF9fWk43V2ViQ29yZTI1UGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlcjE0cmVnaXN0ZXJQbHVnaW5FUDRfTlBQCiBfX1pON1dlYkNvcmUyNVBs
dWdpbk1haW5UaHJlYWRTY2hlZHVsZXIxNnVucmVnaXN0ZXJQbHVnaW5FUDRfTlBQCiBfX1pON1dl
YkNvcmUyNVBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI5c2NoZWR1bGVyRXYKK19fWk43V2ViQ29y
ZTI1Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlc0VOU18xN1ZpZXdwb3J0QXJndW1lbnRzRWlpaWlO
U183SW50U2l6ZUUKIF9fWk43V2ViQ29yZTI1Y29udGV4dE1lbnVJdGVtVGFnT3V0bGluZUV2CiBf
X1pON1dlYkNvcmUyNkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQzFFdgogX19aTjdXZWJDb3Jl
MjZOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjZjcmVhdGVFUE5TXzVGcmFtZUVQTlNfMzJOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudEUKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdl
TG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzEwZWQ3MC4uYzQ1ZTFiZSAxMDA2NDQKLS0t
IGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2
OCBAQAorMjAxMC0xMC0wNiAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkaW5nIEMgQVBJIGZvciBkZWFsaW5nIHdpdGggdmlld3BvcnQgbWV0YSBpbmZvCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzIwMgorCisgICAg
ICAgIEFkZCBuZXcgQVBJIGZvciBzZXR0aW5nIHNjYWxlIGFuZCBsYXlvdXQgdmlld3BvcnQgZ2l2
ZW4gdGhlIGRhdGEKKyAgICAgICAgcHJvdmlkZWQgYnkgdGhlIHZpZXdwb3J0IG1ldGEgdGFnLgor
CisgICAgICAgIEFueSBXZWJLaXQgdXNlciB3aG8gd2FudHMgdG8gc3VwcG9ydCB0aGlzLCB3aWxs
IG5lZWQgdG8KKyAgICAgICAgY29tcHV0ZSB0aGUgdmlld3BvcnQgYXR0cmlidXRlcyBiZWZvcmUg
Zmlyc3QgbG9hZCB1c2luZworICAgICAgICBXS1BhZ2VDb3B5Vmlld3BvcnRBdHRyaWJ1dGVzKC4u
LiksIGFuZCB0aGVuIGFnYWluIGV2ZXJ5dGltZQorICAgICAgICB0aGUgdmlld3BvcnQgYXR0cmli
dXRlcyBnZXRzIGludmFsaWRhdGVzIChsb2FkaW5nIGEgbmV3IHBhZ2UsCisgICAgICAgIG5hdmln
YXRpbmcgcGFnZSBjYWNoZSkgb3IgZXZlcnkgdGltZSBvbiBvZiB0aGUgYnJvd3NlcgorICAgICAg
ICBhdHRyaWJ1dGVzIGNoYW5nZSwgc3VjaCBhcyB3aGVuIHRoZSBkZXZpY2UgaXMgcm90YXRlcyAo
d2hpY2gKKyAgICAgICAgY2hhbmdlcyB0aGUgYWN0dWFsIHZpc2libGUgdmlld3BvcnQpLiBBIGNh
bGxiYWNrIGluIHRoZQorICAgICAgICBXS1BhZ2VVSUNsaWVudCBpcyBwcm92aWRlZCBmb3IgdGhl
IGZvcm1lci4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBT
aGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYlBh
Z2VQcm94eU1lc3NhZ2VLaW5kcy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VDb3B5Vmlld3Bv
cnRBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcDogQWRkZWQuCisg
ICAgICAgIChXS1ZpZXdwb3J0QXR0cmlidXRlc0dldFR5cGVJRCk6CisgICAgICAgIChXS1ZpZXdw
b3J0QXR0cmlidXRlc0dldExheW91dFdpZHRoKToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1
dGVzR2V0TGF5b3V0SGVpZ2h0KToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0SW5p
dGlhbFNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWluaW11
bVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWF4aW11bVNj
YWxlRmFjdG9yKToKKyAgICAgICAgKFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0UGl4ZWxSYXRpbyk6
CisgICAgICAgIChXS1ZpZXdwb3J0QXR0cmlidXRlc0dldElzVXNlclNjYWxhYmxlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDoKKyAgICAgICAgKFFXS1BhZ2U6OlFX
S1BhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp2aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnNldFZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojp2aWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OnZpZXdwb3J0QXR0cmlidXRlc0ludmFs
aWRhdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6V2ViVmlld3BvcnRBdHRyaWJ1dGVzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdwb3J0QXR0cmlidXRlczo6bGF5b3V0V2lkdGgpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OmxheW91dEhlaWdodCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdwb3J0QXR0cmlidXRlczo6cGl4ZWxSYXRpbyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdwb3J0QXR0cmlidXRlczo6aW5pdGlhbFNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld3BvcnRBdHRyaWJ1dGVzOjptaW5pbXVtU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6Om1heGltdW1TY2FsZUZhY3Rvcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdwb3J0QXR0cmlidXRlczo6aXNVc2VyU2NhbGFibGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OnR5cGUpOgorICAgICAgICAqIFdlYktp
dDIucHJvOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaXNwYXRjaFZpZXdw
b3J0RGF0YURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxMC0xMC0wNyAgSXZhbiBLcnN0acSHICA8aWtlQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCmRpZmYgLS1naXQgYS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
CmluZGV4IDBlNmYyZmUuLmI2ZjBhYzUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL0FQSS9j
L1dLQmFzZS5oCisrKyBiL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC02Nyw2ICs2
Nyw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2
aWdhdGlvbkRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFn
ZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZU5hbWVzcGFjZSogV0tQYWdl
TmFtZXNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyog
V0tQcmVmZXJlbmNlc1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRB
dHRyaWJ1dGVzKiBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIAogLyogV2ViS2l0MiBCdW5kbGUg
dHlwZXMgKi8KIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCBiNDZlNTk2Li40MGIyNzMzIDEwMDY0NAotLS0g
YS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9XZWJLaXQyL1NoYXJlZC9BUElPYmpl
Y3QuaApAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVQYWdlLAogICAgICAg
ICBUeXBlUGFnZU5hbWVzcGFjZSwKICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAorICAgICAgICBU
eXBlVmlld3BvcnRBdHRyaWJ1dGVzLAogCiAgICAgICAgIC8vIEJ1bmRsZSB0eXBlcwogICAgICAg
ICBUeXBlQnVuZGxlLApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmggYi9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBi
NDA2NGIyLi40ODk5N2Q3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAorKysgYi9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGx1Z2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPGxp
bWl0cz4KIAogbmFtZXNwYWNlIENvcmVJUEMgewpAQCAtNDIsNiArNDMsNyBAQCBuYW1lc3BhY2Ug
Q29yZUlQQyB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFBv
aW50PiA6IFNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50UG9pbnQ+IHsgfTsKIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gOiBTaW1wbGVBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IHsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6SW50UmVjdD4gOiBTaW1wbGVBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkludFJlY3Q+IHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
Vmlld3BvcnRBcmd1bWVudHM+IDogU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cz4geyB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6Ok1pbWVDbGFzc0luZm8+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpNaW1lQ2xhc3NJbmZvJiBtaW1lQ2xhc3NJbmZv
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA5MmE4MDNkLi5hYmZkMDBhIDEw
MDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBX
ZWJOYXZpZ2F0aW9uRGF0YTsKIGNsYXNzIFdlYlBhZ2VOYW1lc3BhY2U7CiBjbGFzcyBXZWJQYWdl
UHJveHk7CiBjbGFzcyBXZWJQcmVmZXJlbmNlczsKK2NsYXNzIFdlYlZpZXdwb3J0QXR0cmlidXRl
czsKIAogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbSkKIFdLX0FERF9BUElfTUFQUElORyhXS0JhY2tGb3J3YXJkTGlzdFJl
ZiwgV2ViQmFja0ZvcndhcmRMaXN0KQpAQCAtNTYsNiArNTcsNyBAQCBXS19BRERfQVBJX01BUFBJ
TkcoV0tOYXZpZ2F0aW9uRGF0YVJlZiwgV2ViTmF2aWdhdGlvbkRhdGEpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tQYWdlTmFtZXNwYWNlUmVmLCBXZWJQYWdlTmFtZXNwYWNlKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUHJl
ZmVyZW5jZXNSZWYsIFdlYlByZWZlcmVuY2VzKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld3Bv
cnRBdHRyaWJ1dGVzUmVmLCBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMpCiAKIC8qIEVudW0gY29udmVy
c2lvbnMgKi8KIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYWNkMmRhZC4uMDJm
MDkxOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysg
Yi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW5jbHVkZSAiV2ViRGF0YS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlZpZXdwb3J0QXR0cmlidXRlcy5o
IgogCiAjaWZkZWYgX19CTE9DS1NfXwogI2luY2x1ZGUgPEJsb2NrLmg+CkBAIC0yMDMsNiArMjA0
LDEzIEBAIHZvaWQgV0tQYWdlQ291bnRTdHJpbmdNYXRjaGVzKFdLUGFnZVJlZiBwYWdlUmVmLCBX
S1N0cmluZ1JlZiBzdHJpbmcsIGJvb2wgY2FzZUluCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5jb3Vu
dFN0cmluZ01hdGNoZXModG9JbXBsKHN0cmluZyktPnN0cmluZygpLCBjYXNlSW5zZW5zaXRpdmUs
IG1heE51bU1hdGNoZXMpOwogfQogCitXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiBXS1BhZ2VDb3B5
Vmlld3BvcnRBdHRyaWJ1dGVzKFdLUGFnZVJlZiBwYWdlUmVmLCBpbnQgdmlzaWJsZVdpZHRoLCBp
bnQgdmlzaWJsZUhlaWdodCwgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdpZHRoLCBpbnQg
ZGV2aWNlSGVpZ2h0LCBpbnQgZGV2aWNlRFBJKQoreworICAgIFZpZXdwb3J0QXR0cmlidXRlcyBh
dHRyOworICAgIGF0dHIgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKHRvSW1wbChwYWdlUmVm
KS0+dmlld3BvcnRBcmd1bWVudHMoKSwgZGVza3RvcFdpZHRoLCBkZXZpY2VXaWR0aCwgZGV2aWNl
SGVpZ2h0LCBkZXZpY2VEUEksIEludFNpemUodmlzaWJsZVdpZHRoLCB2aXNpYmxlSGVpZ2h0KSk7
CisgICAgcmV0dXJuIHRvQVBJKFdlYlZpZXdwb3J0QXR0cmlidXRlczo6Y3JlYXRlKGF0dHIpLmxl
YWtSZWYoKSk7Cit9CisKIHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChXS1BhZ2VSZWYg
cGFnZVJlZiwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50KiB3a0NsaWVudCkKIHsKICAgICBpZiAo
d2tDbGllbnQgJiYgd2tDbGllbnQtPnZlcnNpb24pCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmlu
ZGV4IGFmNzdjMzEuLjlkNTJmNTQgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJLaXQy
L1dLRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLTmF0aXZlRXZlbnQuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmg+CiAKICNpZm5kZWYgX19jcGx1c3BsdXMK
ICNpbmNsdWRlIDxzdGRib29sLmg+CkBAIC0xMzYsNiArMTM3LDcgQEAgdHlwZWRlZiBib29sICgq
V0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3Ry
aW5nUmVmIG0KIHR5cGVkZWYgV0tTdHJpbmdSZWYgKCpXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1Jl
ZiBkZWZhdWx0VmFsdWUsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
OwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgV0tTdHJpbmdSZWYgdGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVm
IHZvaWQgKCpXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VWaWV3cG9ydEF0dHJp
YnV0ZXNJbnZhbGlkYXRlZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VDb250ZW50c1NpemVDaGFuZ2VkQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIFdLRnJhbWVSZWYgZnJh
bWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkTm90
SGFuZGxlS2V5RXZlbnRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLTmF0aXZlRXZlbnRQdHIg
ZXZlbnQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCkBAIC0xNTEsNiArMTUzLDcgQEAgc3Ry
dWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7CiAgICAg
V0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKICAgICBXS1BhZ2VDb250ZW50c1Np
emVDaGFuZ2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRl
bnRzU2l6ZUNoYW5nZWQ7CisgICAgV0tQYWdlVmlld3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlk
YXRlZDsKICAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OwogfTsKIHR5cGVkZWYg
c3RydWN0IFdLUGFnZVVJQ2xpZW50IFdLUGFnZVVJQ2xpZW50OwpAQCAtMjI2LDYgKzIyOSw4IEBA
IFdLX0VYUE9SVCB2b2lkIFdLUGFnZUZpbmRTdHJpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5n
UmVmIHN0cmluZywgV0tGaW5kRGlyZWN0CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VIaWRlRmluZFVJ
KFdLUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUNvdW50U3RyaW5nTWF0Y2hl
cyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCBib29sIGNhc2VJbnNlbnNpdGl2
ZSwgdW5zaWduZWQgbWF4TnVtTWF0Y2hlcyk7CiAKK1dLX0VYUE9SVCBXS1ZpZXdwb3J0QXR0cmli
dXRlc1JlZiBXS1BhZ2VDb3B5Vmlld3BvcnRBdHRyaWJ1dGVzKFdLUGFnZVJlZiBwYWdlLCBpbnQg
dmlzaWJsZVdpZHRoLCBpbnQgdmlzaWJsZUhlaWdodCwgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRl
dmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgZGV2aWNlRFBJKTsKKwogV0tfRVhQT1JU
IHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQ
YWdlTG9hZGVyQ2xpZW50KiBjbGllbnQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZVBv
bGljeUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlUG9saWN5Q2xpZW50KiBjbGll
bnQpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUZvcm1DbGllbnQoV0tQYWdlUmVmIHBh
Z2UsIGNvbnN0IFdLUGFnZUZvcm1DbGllbnQqIGNsaWVudCk7CmRpZmYgLS1naXQgYS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAgYi9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTNmYjlmMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcApAQCAtMCwwICsxLDcxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaCIK
KworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlZpZXdwb3J0QXR0cmlidXRl
cy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS1ZpZXdwb3J0QXR0
cmlidXRlc0dldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYlZpZXdwb3J0QXR0cmli
dXRlczo6QVBJVHlwZSk7Cit9CisKK2ludCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldExheW91dFdp
ZHRoKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cikKK3sKKyAgICByZXR1cm4g
dG9JbXBsKHZpZXdwb3J0QXR0ciktPmxheW91dFdpZHRoKCk7Cit9CisKK2ludCBXS1ZpZXdwb3J0
QXR0cmlidXRlc0dldExheW91dEhlaWdodChXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2aWV3cG9y
dEF0dHIpCit7CisgICAgcmV0dXJuIHRvSW1wbCh2aWV3cG9ydEF0dHIpLT5sYXlvdXRIZWlnaHQo
KTsKK30KKworZmxvYXQgV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRJbml0aWFsU2NhbGVGYWN0b3Io
V0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKQoreworICAgIHJldHVybiB0b0lt
cGwodmlld3BvcnRBdHRyKS0+aW5pdGlhbFNjYWxlRmFjdG9yKCk7Cit9CisKK2Zsb2F0IFdLVmll
d3BvcnRBdHRyaWJ1dGVzR2V0TWluaW11bVNjYWxlRmFjdG9yKFdLVmlld3BvcnRBdHRyaWJ1dGVz
UmVmIHZpZXdwb3J0QXR0cikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdwb3J0QXR0ciktPm1p
bmltdW1TY2FsZUZhY3RvcigpOworfQorCitmbG9hdCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldE1h
eGltdW1TY2FsZUZhY3RvcihXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2aWV3cG9ydEF0dHIpCit7
CisgICAgcmV0dXJuIHRvSW1wbCh2aWV3cG9ydEF0dHIpLT5tYXhpbXVtU2NhbGVGYWN0b3IoKTsK
K30KKworZmxvYXQgV0tWaWV3cG9ydEF0dHJpYnV0ZXNHZXRQaXhlbFJhdGlvKFdLVmlld3BvcnRB
dHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdwb3J0
QXR0ciktPnBpeGVsUmF0aW8oKTsKK30KKworYm9vbCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldElz
VXNlclNjYWxhYmxlKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cikKK3sKKyAg
ICByZXR1cm4gdG9JbXBsKHZpZXdwb3J0QXR0ciktPmlzVXNlclNjYWxhYmxlKCk7Cit9CmRpZmYg
LS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oIGIv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWVlNGEyCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaApAQCAtMCwwICsxLDUz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVmlld3BvcnRBdHRyaWJ1
dGVzX2gKKyNkZWZpbmUgV0tWaWV3cG9ydEF0dHJpYnV0ZXNfaAorCisjaW5jbHVkZSA8V2ViS2l0
Mi9XS0Jhc2UuaD4KKworI2lmbmRlZiBfX2NwbHVzcGx1cworI2luY2x1ZGUgPHN0ZGJvb2wuaD4K
KyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dL
X0VYUE9SVCBXS1R5cGVJRCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldFR5cGVJRCgpOworCitXS19F
WFBPUlQgaW50IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TGF5b3V0V2lkdGgoV0tWaWV3cG9ydEF0
dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKK1dLX0VYUE9SVCBpbnQgV0tWaWV3cG9ydEF0dHJp
YnV0ZXNHZXRMYXlvdXRIZWlnaHQoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRy
KTsKK1dLX0VYUE9SVCBmbG9hdCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldEluaXRpYWxTY2FsZUZh
Y3RvcihXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiB2aWV3cG9ydEF0dHIpOworV0tfRVhQT1JUIGZs
b2F0IFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0TWluaW11bVNjYWxlRmFjdG9yKFdLVmlld3BvcnRB
dHRyaWJ1dGVzUmVmIHZpZXdwb3J0QXR0cik7CitXS19FWFBPUlQgZmxvYXQgV0tWaWV3cG9ydEF0
dHJpYnV0ZXNHZXRNYXhpbXVtU2NhbGVGYWN0b3IoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmll
d3BvcnRBdHRyKTsKK1dLX0VYUE9SVCBmbG9hdCBXS1ZpZXdwb3J0QXR0cmlidXRlc0dldFBpeGVs
UmF0aW8oV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKK1dLX0VYUE9SVCBi
b29sIFdLVmlld3BvcnRBdHRyaWJ1dGVzR2V0SXNVc2VyU2NhbGFibGUoV0tWaWV3cG9ydEF0dHJp
YnV0ZXNSZWYgdmlld3BvcnRBdHRyKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYK
KworI2VuZGlmIC8qIFdLRnJhbWVfaCAqLwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2UuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3Bw
CmluZGV4IDdkNWVjNjMuLjI2NDdlOWYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2twYWdlLmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5j
cHAKQEAgLTI3MSw2ICsyNzEsNyBAQCBRV0tQYWdlOjpRV0tQYWdlKFdLUGFnZU5hbWVzcGFjZVJl
ZiBuYW1lc3BhY2VSZWYpCiAgICAgICAgIDAsICAvKiBzZXRTdGF0dXNUZXh0ICovCiAgICAgICAg
IDAsICAvKiBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCAqLwogICAgICAgICAwLCAgLyogY29udGVu
dHNTaXplQ2hhbmdlZCAqLworICAgICAgICAwLCAgLyogdmlld3BvcnRBdHRyaWJ1dGVzSW52YWxp
ZGF0ZWQgKi8KICAgICAgICAgMCAgIC8qIGRpZE5vdEhhbmRsZUtleUV2ZW50ICovCiAgICAgfTsK
ICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQocGFnZVJlZigpLCAmdWlDbGllbnQpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNGI3NmZiYS4uZDNhZWZjMyAxMDA2NDQKLS0tIGEv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NjEsNyArNTYxLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok0KICAgICB9CiAKICAgICBkaWRSZWNlaXZlV2ViUGFnZVByb3h5TWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0KIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSkKQEAgLTg2Niw2ICs4NjUsMTIg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRzU2l6ZUNoYW5nZWQodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYKICAgICBtX3VpQ2xpZW50LmNvbnRlbnRzU2l6ZUNo
YW5nZWQodGhpcywgc2l6ZSwgcHJvY2VzcygpLT53ZWJGcmFtZShmcmFtZUlEKSk7CiB9CiAKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VWaWV3cG9ydERhdGEoY29uc3QgVmlld3BvcnRBcmd1
bWVudHMmIGFyZ3MpCit7CisgICAgc2V0Vmlld3BvcnRBcmd1bWVudHMoYXJncyk7CisgICAgbV91
aUNsaWVudC52aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCh0aGlzKTsKK30KKwogLy8gQmFj
a0ZvcndhcmRMaXN0CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpiYWNrRm9yd2FyZEFkZEl0ZW0odWlu
dDY0X3QgaXRlbUlEKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiZTgxZDQ4Li4zZTMw
N2I2IDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTgsNiArNTgsNyBAQCBuYW1lc3Bh
Y2UgQ29yZUlQQyB7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50U2l6ZTsKICAg
ICBjbGFzcyBDdXJzb3I7CisgICAgY2xhc3MgVmlld3BvcnRBcmd1bWVudHM7CiB9CiAKIHN0cnVj
dCBXS0NvbnRleHRTdGF0aXN0aWNzOwpAQCAtMTQxLDYgKzE0Miw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKTsKICAgICB2
b2lkIHZhbGlkYXRlTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSk7CiAKKyAgICB2
b2lkIHNldFZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRz
JiBhcmd1bWVudHMpIHsgbV92aWV3cG9ydEFyZ3VtZW50cyA9IGFyZ3VtZW50czsgfQorICAgIGNv
bnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50cygpIGNvbnN0
IHsgcmV0dXJuIG1fdmlld3BvcnRBcmd1bWVudHM7IH0KKwogLy8gVGhlc2UgYXJlIG9ubHkgdXNl
ZCBvbiBNYWMgY3VycmVudGx5LgogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldFdpbmRv
d0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJsZSk7CkBAIC0yNTUsNiArMjU5LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBt
b3VzZURpZE1vdmVPdmVyRWxlbWVudCh1aW50MzJfdCBtb2RpZmllcnMsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOwogICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZCh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9y
dERhdGEoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKIAogICAgIC8vIEJhY2sv
Rm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKICAgICB2b2lkIGJhY2tGb3J3YXJkQWRkSXRlbSh1aW50
NjRfdCBpdGVtSUQpOwpAQCAtMzI4LDYgKzMzMyw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Zh
bGlkOwogICAgIGJvb2wgbV9jbG9zZWQ7CiAKKyAgICBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50
cyBtX3ZpZXdwb3J0QXJndW1lbnRzOworCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7CiAKICAgICBE
ZXF1ZTxOYXRpdmVXZWJLZXlib2FyZEV2ZW50PiBtX2tleUV2ZW50UXVldWU7CmRpZmYgLS1naXQg
YS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMmVmNWYzNy4uYzVlMjM4OCAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzAsNiAr
MzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFJ1bkphdmFTY3JpcHRQcm9t
cHQodWludDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgbWVzc2FnZSwgV1RGOjpTdHJpbmcgZGVm
YXVsdFZhbHVlKSAtPiAoV1RGOjpTdHJpbmcgcmVzdWx0KQogICAgIE1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KHVpbnQzMl90IG1vZGlmaWVycywgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlRW5jb2RlciB1c2VyRGF0YSk7CiAgICAgQ29udGVudHNTaXplQ2hhbmdlZCh1aW50NjRfdCBm
cmFtZUlELCBXZWJDb3JlOjpJbnRTaXplIG5ld1NpemUpCisgICAgRGlkQ2hhbmdlVmlld3BvcnRE
YXRhKFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cykKICAgICBEaWRSZWNlaXZl
RXZlbnQodWludDMyX3QgdHlwZSwgYm9vbCBoYW5kbGVkKQogICAgIERpZFZhbGlkYXRlTWVudUl0
ZW0oV1RGOjpTdHJpbmcgY29tbWFuZE5hbWUsIGJvb2wgaXNFbmFibGVkLCBpbnQzMl90IHN0YXRl
KQogICAgIFNldEN1cnNvcihXZWJDb3JlOjpDdXJzb3IgY3Vyc29yKQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlD
bGllbnQuY3BwCmluZGV4IGJhMjVmOTYuLjA1ZGVkZGUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVu
dC5jcHAKQEAgLTEyOSw2ICsxMjksMTQgQEAgdm9pZCBXZWJVSUNsaWVudDo6Y29udGVudHNTaXpl
Q2hhbmdlZChXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IEludFNpemUmIHNpemUsIFcKICAgICBt
X3BhZ2VVSUNsaWVudC5jb250ZW50c1NpemVDaGFuZ2VkKHRvQVBJKHBhZ2UpLCBzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCksIHRvQVBJKGZyYW1lKSwgbV9wYWdlVUlDbGllbnQuY2xpZW50SW5m
byk7CiB9CiAKK3ZvaWQgV2ViVUlDbGllbnQ6OnZpZXdwb3J0QXR0cmlidXRlc0ludmFsaWRhdGVk
KFdlYlBhZ2VQcm94eSogcGFnZSkKK3sKKyAgICBpZiAoIW1fcGFnZVVJQ2xpZW50LnZpZXdwb3J0
QXR0cmlidXRlc0ludmFsaWRhdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2VVSUNs
aWVudC52aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCh0b0FQSShwYWdlKSwgbV9wYWdlVUlD
bGllbnQuY2xpZW50SW5mbyk7Cit9CisKIHZvaWQgV2ViVUlDbGllbnQ6OmRpZE5vdEhhbmRsZUtl
eUV2ZW50KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYg
ZXZlbnQpCiB7CiAgICAgaWYgKCFtX3BhZ2VVSUNsaWVudC5kaWROb3RIYW5kbGVLZXlFdmVudCkK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IDYxNDhjNmMuLmYzOTVjMWMgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVUlDbGllbnQuaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdGF0
dXNUZXh0KFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQoV2ViUGFnZVByb3h5KiwgV2ViRXZlbnQ6Ok1vZGlmaWVycywgQVBJT2Jq
ZWN0Kik7CiAgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYlBhZ2VQcm94eSosIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmLCBXZWJGcmFtZVByb3h5Kik7CisgICAgdm9pZCB2aWV3cG9ydEF0
dHJpYnV0ZXNJbnZhbGlkYXRlZChXZWJQYWdlUHJveHkqKTsKICAgICB2b2lkIGRpZE5vdEhhbmRs
ZUtleUV2ZW50KFdlYlBhZ2VQcm94eSosIGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmKTsK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZXdwb3J0QXR0
cmlidXRlcy5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkYmU4ODUKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwCkBAIC0w
LDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJWaWV3
cG9ydEF0dHJpYnV0ZXMuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitXZWJWaWV3cG9ydEF0dHJpYnV0ZXM6OldlYlZpZXdwb3J0QXR0cmlidXRl
cyhjb25zdCBWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpCit7CisgICAgbV9sYXlvdXRTaXplID0g
YXR0ci5sYXlvdXRTaXplOworICAgIG1fcGl4ZWxSYXRpbyA9IGF0dHIuZGV2aWNlUGl4ZWxSYXRp
bzsKKyAgICBtX2luaXRpYWxTY2FsZUZhY3RvciA9IGF0dHIuaW5pdGlhbFNjYWxlOworICAgIG1f
bWluaW11bVNjYWxlRmFjdG9yID0gYXR0ci5taW5pbXVtU2NhbGU7CisgICAgbV9tYXhpbXVtU2Nh
bGVGYWN0b3IgPSBhdHRyLm1heGltdW1TY2FsZTsKKyAgICBtX2lzVXNlclNjYWxhYmxlID0gYXR0
ci51c2VyU2NhbGFibGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmggYi9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kZTIzNmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Vmlld3BvcnRBdHRyaWJ1dGVzLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJWaWV3cG9ydEF0dHJpYnV0ZXNfaAorI2RlZmluZSBXZWJWaWV3
cG9ydEF0dHJpYnV0ZXNfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJWaWV3cG9ydEF0dHJpYnV0ZXMgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVZpZXdwb3J0QXR0cmlidXRlczsKKworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZXdwb3J0QXR0cmlidXRlcz4gY3JlYXRlKGNvbnN0IFZp
ZXdwb3J0QXR0cmlidXRlcyYgYXR0cikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViVmlld3BvcnRBdHRyaWJ1dGVzKGF0dHIpKTsKKyAgICB9CisKKyAgICBpbnQgbGF5b3V0
V2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2xheW91dFNpemUud2lkdGgoKTsgfQorICAgIGludCBs
YXlvdXRIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2xheW91dFNpemUuaGVpZ2h0KCk7IH0KKwor
ICAgIGZsb2F0IHBpeGVsUmF0aW8oKSBjb25zdCB7IHJldHVybiBtX3BpeGVsUmF0aW87IH0KKwor
ICAgIGZsb2F0IGluaXRpYWxTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbFNj
YWxlRmFjdG9yOyB9CisgICAgZmxvYXQgbWluaW11bVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1
cm4gbV9taW5pbXVtU2NhbGVGYWN0b3I7IH0KKyAgICBmbG9hdCBtYXhpbXVtU2NhbGVGYWN0b3Io
KSBjb25zdCB7IHJldHVybiBtX21heGltdW1TY2FsZUZhY3RvcjsgfQorCisgICAgYm9vbCBpc1Vz
ZXJTY2FsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNVc2VyU2NhbGFibGU7IH0KKworcHJpdmF0
ZToKKyAgICBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJik7
CisgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgSW50U2l6
ZSBtX2xheW91dFNpemU7CisgICAgZmxvYXQgbV9waXhlbFJhdGlvOworCisgICAgZmxvYXQgbV9p
bml0aWFsU2NhbGVGYWN0b3I7CisgICAgZmxvYXQgbV9taW5pbXVtU2NhbGVGYWN0b3I7CisgICAg
ZmxvYXQgbV9tYXhpbXVtU2NhbGVGYWN0b3I7CisKKyAgICBib29sIG1faXNVc2VyU2NhbGFibGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlZpZXdwb3J0QXR0
cmlidXRlc19oCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYktpdDIucHJvIGIvV2ViS2l0Mi9XZWJL
aXQyLnBybwppbmRleCBlNzgzODIwLi4zNTk4NmU1IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYktp
dDIucHJvCisrKyBiL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAgLTIxNyw2ICsyMTcsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1
dGVzLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9xdC9XS05hdGl2ZUV2ZW50LmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9jcHAv
cXQvV0tVUkxRdC5oIFwKQEAgLTI1Niw2ICsyNTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBcCisgICAgVUlQcm9jZXNzL1dlYlZp
ZXdwb3J0QXR0cmlidXRlcy5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlSGl0VGVzdFJlc3VsdC5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RP
TS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCBcCkBAIC0zNDcsNiArMzQ5LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hbWVzcGFjZS5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNQcml2YXRlLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRB
dHRyaWJ1dGVzLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuY3BwIFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2UuY3BwIFwKQEAgLTM4NCw2ICszODcsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBVSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBcCisgICAgVUlQ
cm9jZXNzL1dlYlZpZXdwb3J0QXR0cmlidXRlcy5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMjEyNWMxLi4zMjNkMGY2IDEwMDY0NAotLS0g
YS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDI2LDYgKzQyNiwxMCBAQAog
CQlDMEUzQUE3QjEyMDlFODM1MDBBNDlEMDEgLyogTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwRTNBQTQ1MTIwOUUyQkEwMEE0OUQwMSAv
KiBNb2R1bGUuY3BwICovOyB9OwogCQlDMEUzQUE3QzEyMDlFODNDMDBBNDlEMDEgLyogTW9kdWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEUzQUE0
NDEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmggKi87IH07CiAJCUM1MjM3RjYwMTI0NDFDQTMw
MDc4MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTIzN0Y1RjEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRp
dG9yQ2xpZW50TWFjLm1tICovOyB9OworCQlEMzFCMzVEOTEyNUU3NUIzMDBCOEY0ODggLyogV2Vi
Vmlld3BvcnRBdHRyaWJ1dGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQzMUIzNUQ3MTI1RTc1QjMwMEI4RjQ4OCAvKiBXZWJWaWV3cG9ydEF0dHJp
YnV0ZXMuY3BwICovOyB9OworCQlEMzFCMzVEQTEyNUU3NUIzMDBCOEY0ODggLyogV2ViVmlld3Bv
cnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEMzFCMzVEODEyNUU3NUIzMDBCOEY0ODggLyogV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmgg
Ki87IH07CisJCUQzMUIzNUUxMTI1RTc1RkQwMEI4RjQ4OCAvKiBXS1ZpZXdwb3J0QXR0cmlidXRl
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMzFC
MzVERjEyNUU3NUZEMDBCOEY0ODggLyogV0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwICovOyB9Owor
CQlEMzFCMzVFMjEyNUU3NUZEMDBCOEY0ODggLyogV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzMUIzNUUwMTI1RTc1
RkQwMEI4RjQ4OCAvKiBXS1ZpZXdwb3J0QXR0cmlidXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJRDNCOTQ4NDYxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEM0I5NDg0MjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLzsg
fTsKIAkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCOTQ4NDMxMUZGNEI2NTAw
MDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovOyB9OwogCQlEM0I5NDg0ODExRkY0QjY1MDAwMzJC
MzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQ
b3B1cE1lbnUuY3BwICovOyB9OwpAQCAtODk4LDYgKzkwMiwxMCBAQAogCQlDMEUzQUE0NTEyMDlF
MkJBMDBBNDlEMDEgLyogTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwRTNBQTQ4
MTIwOUU0NTAwMEE0OUQwMSAvKiBNb2R1bGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBNb2R1bGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM1MjM3RjVGMTI0NDFDQTMwMDc4MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJFZGl0b3JDbGllbnRNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQzMUIzNUQ3MTI1RTc1QjMwMEI4RjQ4
OCAvKiBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRDMxQjM1RDgxMjVFNzVCMzAwQjhGNDg4IC8qIFdlYlZpZXdwb3J0QXR0cmli
dXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWV3cG9ydEF0dHJp
YnV0ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDMxQjM1REYxMjVFNzVGRDAw
QjhGNDg4IC8qIFdLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRDMxQjM1RTAxMjVFNzVGRDAwQjhGNDg4IC8qIFdLVmlld3BvcnRBdHRy
aWJ1dGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmlld3BvcnRBdHRy
aWJ1dGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzQjk0ODQyMTFGRjRCNjUw
MDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViUG9wdXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1l
bnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM1OCw2ICsxMzY2LDggQEAK
IAkJCQlCQzAzMkRDRjEwRjQzODlGMDA1OEMxNUEgLyogV2ViUHJvY2Vzc1Byb3h5LmggKi8sCiAJ
CQkJMUE1OTRBQjgxMTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmNwcCAqLywKIAkJCQkx
QTU5NEFCOTExMkExRkI2MDA5REU3QzcgLyogV2ViVUlDbGllbnQuaCAqLywKKwkJCQlEMzFCMzVE
NzEyNUU3NUIzMDBCOEY0ODggLyogV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmNwcCAqLywKKwkJCQlE
MzFCMzVEODEyNUU3NUIzMDBCOEY0ODggLyogV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IFVJUHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0xNDAyLDYgKzE0MTIsOCBAQAogCQkJCUJDRDU5N0NFMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1By
ZWZlcmVuY2VzLmggKi8sCiAJCQkJNzYyQjc0OUQxMjBCQzhFQTAwODE5MzM5IC8qIFdLUHJlZmVy
ZW5jZXNQcml2YXRlLmNwcCAqLywKIAkJCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaCAqLywKKwkJCQlEMzFCMzVERjEyNUU3NUZEMDBCOEY0ODggLyog
V0tWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwICovLAorCQkJCUQzMUIzNUUwMTI1RTc1RkQwMEI4RjQ4
OCAvKiBXS1ZpZXdwb3J0QXR0cmlidXRlcy5oICovLAogCQkJKTsKIAkJCXBhdGggPSBDOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE5NjEsNiArMTk3Myw4IEBACiAJCQkJQkNCRDND
M0IxMjVCRkE3QTAwRDJDMjlGIC8qIFN0cmluZ1BhaXJWZWN0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBM0REMjAyMTI1RTVBMUYwMDQ1MTVFNiAvKiBXZWJGaW5kQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQTNERDIwNjEyNUU1QTJGMDA0NTE1RTYgLyogQVBJQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlEMzFCMzVEQTEyNUU3NUIzMDBCOEY0ODggLyogV2ViVmlld3BvcnRBdHRy
aWJ1dGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlEMzFCMzVFMjEyNUU3NUZEMDBCOEY0ODggLyog
V0tWaWV3cG9ydEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjI2MSw2ICsyMjc1LDgg
QEAKIAkJCQk1MUE3RjJGNTEyNUJGOEQ0MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0JEMzkxNDEyNUJCMUE4MDBEMkMyOUYgLyogV2ViUGFnZVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBM0REMUZEMTI1RTU5RjMwMDQ1MTVF
NiAvKiBXZWJGaW5kQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQzMUIzNUQ5MTI1RTc1
QjMwMEI4RjQ4OCAvKiBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRDMxQjM1RTExMjVFNzVGRDAwQjhGNDg4IC8qIFdLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBjMDk1YWUwLi4zNTExNWJiIDEwMDY0NAotLS0g
YS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtNTQ2LDUgKzU0Nyw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkKIH0KICNlbmRpZgogCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6ZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2UoY29uc3QgVmlld3Bv
cnRBcmd1bWVudHMmIGFyZ3MpIGNvbnN0Cit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZVZpZXdwb3J0
RGF0YShhcmdzKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCmluZGV4IDQxOWE2YzkuLmFkNDg4ZjkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAK
ICNkZWZpbmUgV2ViQ2hyb21lQ2xpZW50X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lQ2xp
ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE4Nyw2ICsx
ODgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJy
ZW50Q3Vyc29yKCk7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0
RGF0YURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0Owor
CiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiB9Owpk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9XZWJLaXQyL3dpbi9XZWJL
aXQyLnZjcHJvagppbmRleCBhNGRjNjZkLi5lNjA3NDVkMiAxMDA3NTUKLS0tIGEvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTE1
NjgsNiArMTU2OCwxNCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYlVJQ2xp
ZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxVSVByb2Nlc3NcV2ViVmlld3BvcnRBdHRyaWJ1dGVzLmNwcCINCisJCQkJPg0KKwkJCTwv
RmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJWaWV3
cG9ydEF0dHJpYnV0ZXMuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCiAJCQk8RmlsdGVyDQogCQkJ
CU5hbWU9IkFQSSINCiAJCQkJPg0KQEAgLTE2OTAsNiArMTY5OCwxNCBAQAogCQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCINCiAJCQkJ
CQk+DQogCQkJCQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
VUlQcm9jZXNzXEFQSVxDXFdLVmlld3BvcnRBdHRyaWJ1dGVzLmNwcCINCisJCQkJCQk+DQorCQkJ
CQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XEFQSVxDXFdLVmlld3BvcnRBdHRyaWJ1dGVzLmgiDQorCQkJCQkJPg0KKwkJCQkJPC9GaWxlPg0K
IAkJCQkJPEZpbHRlcg0KIAkJCQkJCU5hbWU9IndpbiINCiAJCQkJCQk+DQpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlIGIvV2ViS2l0Mi93aW4vV2ViS2l0Mkdl
bmVyYXRlZC5tYWtlCmluZGV4IDFmNDM0ZDEuLmRlZjcyMjAgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
d2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQorKysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJh
dGVkLm1ha2UKQEAgLTM3LDYgKzM3LDcgQEAgYWxsOgogICAgIHhjb3B5IC95IC9kICIuLlxVSVBy
b2Nlc3NcQVBJXENcV0tQYWdlLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQy
IgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tQYWdlTmFtZXNwYWNlLmgi
ICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIu
LlxVSVByb2Nlc3NcQVBJXENcV0tQcmVmZXJlbmNlcy5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGlu
Y2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLVmll
d3BvcnRBdHRyaWJ1dGVzLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgog
ICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2Qg
Ii4uXFVJUHJvY2Vzc1xBUElcQ1x3aW5cV0tDb250ZXh0UHJpdmF0ZVdpbi5oIiAiJChXRUJLSVRP
VVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNz
XEFQSVxDXHdpblxXS1ZpZXcuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIi
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKaW5kZXggZjczMTdmYS4uZWQ3ZjM2YyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTEw
LTA2ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdXNh
Z2Ugb2YgVUlDbGllbnQgdG8gYWNjb3VudCBmb3IgdGhlIG5ldworICAgICAgICB2aWV3cG9ydEF0
dHJpYnV0ZXNJbnZhbGlkYXRlZCBjYWxsYmFjay4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21h
Yy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtCcm93c2VyV2luZG93Q29u
dHJvbGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci93aW4vQnJvd3Nl
clZpZXcuY3BwOgorICAgICAgICAoQnJvd3NlclZpZXc6OmNyZWF0ZSk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OmNyZWF0ZU90
aGVyUGFnZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKwog
MjAxMC0xMC0wNyAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL01pbmlCcm93
c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tIGIvV2ViS2l0VG9vbHMvTWluaUJyb3dz
ZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KaW5kZXggY2I0YzU2YS4uOWY5NGQ1MSAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250
cm9sbGVyLm0KKysrIGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dD
b250cm9sbGVyLm0KQEAgLTUzOCw2ICs1MzgsNyBAQCAtICh2b2lkKWF3YWtlRnJvbU5pYgogICAg
ICAgICBzZXRTdGF0dXNUZXh0LAogICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCwKICAg
ICAgICAgY29udGVudHNTaXplQ2hhbmdlZCwKKyAgICAgICAgMCwgICAgICAgICAgLyogdmlld3Bv
cnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQgKi8KICAgICAgICAgMCAgICAgICAgICAgLyogZGlkTm90
SGFuZGxlS2V5RXZlbnQgKi8KICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChfd2Vi
Vmlldy5wYWdlUmVmLCAmdWlDbGllbnQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvTWluaUJy
b3dzZXIvd2luL0Jyb3dzZXJWaWV3LmNwcCBiL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3dpbi9C
cm93c2VyVmlldy5jcHAKaW5kZXggNzY4NDhmYS4uNWQ3YjNlYiAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvTWluaUJyb3dzZXIvd2luL0Jyb3dzZXJWaWV3LmNwcAorKysgYi9XZWJLaXRUb29scy9N
aW5pQnJvd3Nlci93aW4vQnJvd3NlclZpZXcuY3BwCkBAIC0xMTAsNiArMTEwLDcgQEAgdm9pZCBC
cm93c2VyVmlldzo6Y3JlYXRlKFJFQ1Qgd2ViVmlld1JlY3QsIEJyb3dzZXJXaW5kb3cqIHBhcmVu
dFdpbmRvdykKICAgICAgICAgc2V0U3RhdHVzVGV4dCwKICAgICAgICAgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQsCiAgICAgICAgIGNvbnRlbnRzU2l6ZUNoYW5nZWQsCisgICAgICAgIDAsICAgICAg
ICAgICAgICAvKiB2aWV3cG9ydEF0dHJpYnV0ZXNJbnZhbGlkYXRlZCAqLwogICAgICAgICAwICAg
ICAgICAgICAgICAgLyogZGlkTm90SGFuZGxlS2V5RXZlbnQgKi8KICAgICB9OwogCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1dl
YktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDkwMWY4
ZGYuLjU0NjdjMDAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCkBAIC05Miw2ICs5Miw3IEBAIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlT3Ro
ZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBjb25zdCB2b2lkKikKICAgICAgICAgMCwKICAgICAg
ICAgMCwKICAgICAgICAgMCwKKyAgICAgICAgMCwKICAgICAgICAgMAogICAgIH07CiAgICAgV0tQ
YWdlU2V0UGFnZVVJQ2xpZW50KG5ld1BhZ2UsICZvdGhlclBhZ2VVSUNsaWVudCk7CkBAIC0xNzMs
NiArMTc0LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29u
c3QgY2hhciogYXJndltdKQogICAgICAgICAwLAogICAgICAgICAwLAogICAgICAgICAwLAorICAg
ICAgICAwLAogICAgICAgICAwCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9t
YWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50KTsKLS0gCjEuNy4yLjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70285</attachid>
            <date>2010-10-08 14:20:58 -0700</date>
            <delta_ts>2010-10-08 14:23:14 -0700</delta_ts>
            <desc>Patch (Qt API only)</desc>
            <filename>0001-WebKit2-Adding-Qt-WebKit2-API-for-dealing-with-viewp.patch</filename>
            <type>text/plain</type>
            <size>20905</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSAxNmQ5YmY5OGNjMzMwNDc5NjQxOWZjNGVjODYxYjRiNDVmYjIyMTk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogRnJpLCA4IE9jdCAyMDEwIDE4OjIwOjQ5
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViS2l0MjogQWRkaW5nIFF0IFdlYktpdDIgQVBJIGZv
ciBkZWFsaW5nIHdpdGggdmlld3BvcnQgbWV0YSBpbmZvCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDcyMDIKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRk
IG5ldyBBUEkgZm9yIHNldHRpbmcgc2NhbGUgYW5kIGxheW91dCB2aWV3cG9ydCBnaXZlbiB0aGUg
ZGF0YQpwcm92aWRlZCBieSB0aGUgdmlld3BvcnQgbWV0YSB0YWcuCgpBbnkgUXQgdmlldyBjb21w
b25lbnRzIHdobyB3YW50cyB0byBzdXBwb3J0IHRoaXMsIHdpbGwgbmVlZCB0bwpjb21wdXRlIHRo
ZSB2aWV3cG9ydCBhdHRyaWJ1dGVzIGJlZm9yZSBmaXJzdCBsb2FkIHVzaW5nCnZpZXdwb3J0QXR0
cmlidXRlc0ZvclNpemUoLi4pLCBhbmQgdGhlbiBhZ2FpbiBldmVyeXRpbWUKdGhlIHZpZXdwb3J0
IGF0dHJpYnV0ZXMgZ2V0cyBpbnZhbGlkYXRlcyAobG9hZGluZyBhIG5ldyBwYWdlLApuYXZpZ2F0
aW5nIHBhZ2UgY2FjaGUpIG9yIGV2ZXJ5IHRpbWUgb24gb2YgdGhlIGJyb3dzZXIKYXR0cmlidXRl
cyBjaGFuZ2UsIHN1Y2ggYXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZXMgKHdoaWNoCmNoYW5n
ZXMgdGhlIGFjdHVhbCB2aXNpYmxlIHZpZXdwb3J0KS4gQSBzaWduYWwKdmlld3BvcnRDaGFuZ2VS
ZXF1ZXN0ZWQoKSBpcyBwcm92aWRlZCBmb3IgdGhlIGZvcm1lci4KCiogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgoqIFVJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6Ciog
VUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW06CihXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpzZXRWaWV3cG9ydEFyZ3VtZW50cyk6CiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNw
cDoKKFFXS1BhZ2VQcml2YXRlOjpzZXRWaWV3cG9ydEFyZ3VtZW50cyk6CihRV0tQYWdlOjpWaWV3
cG9ydEF0dHJpYnV0ZXM6OlZpZXdwb3J0QXR0cmlidXRlcyk6CihRV0tQYWdlOjpWaWV3cG9ydEF0
dHJpYnV0ZXM6On5WaWV3cG9ydEF0dHJpYnV0ZXMpOgooUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1
dGVzOjpvcGVyYXRvcj0pOgooUVdLUGFnZTo6dmlld3BvcnRBdHRyaWJ1dGVzRm9yU2l6ZSk6Ciog
VUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmg6CiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3Au
aDoKKFF0Vmlld3BvcnRBdHRyaWJ1dGVzUHJpdmF0ZTo6UXRWaWV3cG9ydEF0dHJpYnV0ZXNQcml2
YXRlKToKKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgooV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VWaWV3cG9ydERhdGEpOgoqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgoqIFVJUHJvY2Vz
cy93aW4vV2ViVmlldy5jcHA6CihXZWJLaXQ6OldlYlZpZXc6OnNldFZpZXdwb3J0QXJndW1lbnRz
KToKKiBVSVByb2Nlc3Mvd2luL1dlYlZpZXcuaDoKKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHA6CihXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlzcGF0Y2hW
aWV3cG9ydERhdGFEaWRDaGFuZ2UpOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lmg6CgpXZWJLaXRUb29sczogVXBkYXRlIHVzYWdlIG9mIFVJQ2xpZW50IHRvIGFj
Y291bnQgZm9yIHRoZSBuZXcKdmlld3BvcnRBdHRyaWJ1dGVzSW52YWxpZGF0ZWQgY2FsbGJhY2su
CgpQYXRjaCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3ZWJraXQub3Jn
PiBvbiAyMDEwLTEwLTA2ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBNaW5pQnJvd3Nl
ci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKC1bQnJvd3NlcldpbmRvd0NvbnRyb2xs
ZXIgYXdha2VGcm9tTmliXSk6CiogTWluaUJyb3dzZXIvd2luL0Jyb3dzZXJWaWV3LmNwcDoKKEJy
b3dzZXJWaWV3OjpjcmVhdGUpOgoqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
OgooV1RSOjpjcmVhdGVPdGhlclBhZ2UpOgooV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6
ZSk6Ci0tLQogV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDQ1ICsrKysrKysrKysrKysrKysrKysrCiBXZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCAgICAgICAgICAgICB8ICAgIDIgKwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9QYWdlQ2xpZW50SW1wbC5oICAgICAgICAgfCAgICAxICsKIFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0gICAgICAgIHwgICAgNSArKwogV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwICAgICAgICAgICAgICAgfCAgIDIyICsrKysrKy0tLS0K
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmggICAgICAgICAgICAgICAgIHwgICAx
NyArKysrLS0tLQogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oICAgICAgICAg
ICAgICAgfCAgICA4ICsrLQogV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oICAgICAgICAg
ICAgICAgICAgICAgfCAgICAyICsKIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
ICAgICAgICAgICAgICAgIHwgICAgNiArKy0KIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gICAgICAgICB8ICAgIDEgKwogV2ViS2l0Mi9VSVByb2Nlc3Mvd2lu
L1dlYlZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAgICA0ICsrCiBXZWJLaXQyL1VJUHJvY2Vz
cy93aW4vV2ViVmlldy5oICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogLi4uL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgfCAgICA1ICsrCiAuLi4vV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCAgICB8ICAgIDMgKwogV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsr
KysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDExOCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGM0MDAyMTcuLjkwN2ZkMGQgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTAtMTAtMDggIEtlbm5ldGgg
Um9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aC5jaHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcg
UXQgV2ViS2l0MiBBUEkgZm9yIGRlYWxpbmcgd2l0aCB2aWV3cG9ydCBtZXRhIGluZm8KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MjAyCisKKyAgICAg
ICAgQWRkIG5ldyBBUEkgZm9yIHNldHRpbmcgc2NhbGUgYW5kIGxheW91dCB2aWV3cG9ydCBnaXZl
biB0aGUgZGF0YQorICAgICAgICBwcm92aWRlZCBieSB0aGUgdmlld3BvcnQgbWV0YSB0YWcuCisK
KyAgICAgICAgQW55IFF0IHZpZXcgY29tcG9uZW50cyB3aG8gd2FudHMgdG8gc3VwcG9ydCB0aGlz
LCB3aWxsIG5lZWQgdG8KKyAgICAgICAgY29tcHV0ZSB0aGUgdmlld3BvcnQgYXR0cmlidXRlcyBi
ZWZvcmUgZmlyc3QgbG9hZCB1c2luZworICAgICAgICB2aWV3cG9ydEF0dHJpYnV0ZXNGb3JTaXpl
KC4uKSwgYW5kIHRoZW4gYWdhaW4gZXZlcnl0aW1lCisgICAgICAgIHRoZSB2aWV3cG9ydCBhdHRy
aWJ1dGVzIGdldHMgaW52YWxpZGF0ZXMgKGxvYWRpbmcgYSBuZXcgcGFnZSwKKyAgICAgICAgbmF2
aWdhdGluZyBwYWdlIGNhY2hlKSBvciBldmVyeSB0aW1lIG9uIG9mIHRoZSBicm93c2VyCisgICAg
ICAgIGF0dHJpYnV0ZXMgY2hhbmdlLCBzdWNoIGFzIHdoZW4gdGhlIGRldmljZSBpcyByb3RhdGVz
ICh3aGljaAorICAgICAgICBjaGFuZ2VzIHRoZSBhY3R1YWwgdmlzaWJsZSB2aWV3cG9ydCkuIEEg
c2lnbmFsCisgICAgICAgIHZpZXdwb3J0Q2hhbmdlUmVxdWVzdGVkKCkgaXMgcHJvdmlkZWQgZm9y
IHRoZSBmb3JtZXIuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnNldFZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6OnNldFZpZXdw
b3J0QXJndW1lbnRzKToKKyAgICAgICAgKFFXS1BhZ2U6OlZpZXdwb3J0QXR0cmlidXRlczo6Vmll
d3BvcnRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFFXS1BhZ2U6OlZpZXdwb3J0QXR0cmlidXRlczo6
flZpZXdwb3J0QXR0cmlidXRlcyk6CisgICAgICAgIChRV0tQYWdlOjpWaWV3cG9ydEF0dHJpYnV0
ZXM6Om9wZXJhdG9yPSk6CisgICAgICAgIChRV0tQYWdlOjp2aWV3cG9ydEF0dHJpYnV0ZXNGb3JT
aXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oOgorICAgICAgICAoUXRWaWV3cG9ydEF0dHJpYnV0
ZXNQcml2YXRlOjpRdFZpZXdwb3J0QXR0cmlidXRlc1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZVZpZXdwb3J0RGF0YSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2V0Vmlld3BvcnRBcmd1bWVudHMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxMC0xMC0wOCAg
Sm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCmluZGV4IGI0MDY0YjIuLjQ4OTk3ZDcgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+
CiAjaW5jbHVkZSA8bGltaXRzPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CkBAIC00Miw2ICs0Myw3
IEBAIG5hbWVzcGFjZSBDb3JlSVBDIHsKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6SW50UG9pbnQ+IDogU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRQb2lu
dD4geyB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRTaXpl
PiA6IFNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4geyB9OwogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRSZWN0PiA6IFNpbXBsZUFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6SW50UmVjdD4geyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gOiBTaW1wbGVBcmd1bWVudENvZGVyPFdl
YkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7IH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6TWltZUNsYXNzSW5mbz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6Ok1pbWVDbGFzc0luZm8m
IG1pbWVDbGFzc0luZm8pCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1Bh
Z2VDbGllbnRJbXBsLmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBs
LmgKaW5kZXggNzQ4ZDdlMy4uNTVhNjE1YSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
UGFnZUNsaWVudEltcGwuaApAQCAtNTEsNiArNTEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCB0YWtlRm9jdXMoYm9vbCBkaXJlY3Rpb24pOwogICAgIHZpcnR1YWwgdm9pZCB0b29sVGlw
Q2hhbmdlZChjb25zdCBTdHJpbmcmIG9sZFRvb2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VG9vbFRp
cCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmll
d3BvcnRBcmd1bWVudHMmKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVm
UHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pOwogICAg
IHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFuZHMoKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IGI0N2YzMTAuLjA1YzliMGQgMTAwNjQ0Ci0tLSBhL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtMTM2LDYgKzEzNiwxMSBAQCB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJz
b3IpCiAgICAgW21fd2tWaWV3IF9zZXRDdXJzb3I6Y3Vyc29yLnBsYXRmb3JtQ3Vyc29yKCldOwog
fQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBXZWJD
b3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpCit7CisKK30KKwogc3RhdGljIE5TU3RyaW5nKiBuYW1l
Rm9yRWRpdEFjdGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCiB7CiAgICAgLy8gRklYTUU6IFVz
ZSBsb2NhbGl6ZWQgc3RyaW5ncy4KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2twYWdlLmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAppbmRl
eCA3ZDVlYzYzLi5mMTFkMGQ3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdrcGFnZS5jcHAKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCkBA
IC03OCw2ICs3OCwxMiBAQCB2b2lkIFFXS1BhZ2VQcml2YXRlOjpzZXRDdXJzb3IoY29uc3QgV2Vi
Q29yZTo6Q3Vyc29yJiBjdXJzb3IpCiAjZW5kaWYKIH0KIAordm9pZCBRV0tQYWdlUHJpdmF0ZTo6
c2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIGFyZ3MpCit7Cisg
ICAgdmlld3BvcnRBcmd1bWVudHMgPSBhcmdzOworICAgIGVtaXQgcS0+dmlld3BvcnRDaGFuZ2VS
ZXF1ZXN0ZWQoKTsKK30KKwogdm9pZCBRV0tQYWdlUHJpdmF0ZTo6dG9vbFRpcENoYW5nZWQoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBuZXdUb29sdGlwKQogewogICAgIGVtaXQgcS0+c3Rh
dHVzQmFyTWVzc2FnZShRU3RyaW5nKG5ld1Rvb2x0aXApKTsKQEAgLTI4MSw3ICsyODcsNyBAQCBR
V0tQYWdlOjp+UVdLUGFnZSgpCiAgICAgZGVsZXRlIGQ7CiB9CiAKLVFXS1BhZ2U6OlZpZXdwb3J0
Q29uZmlndXJhdGlvbjo6Vmlld3BvcnRDb25maWd1cmF0aW9uKCkKK1FXS1BhZ2U6OlZpZXdwb3J0
QXR0cmlidXRlczo6Vmlld3BvcnRBdHRyaWJ1dGVzKCkKICAgICA6IGQoMCkKICAgICAsIG1faW5p
dGlhbFNjYWxlRmFjdG9yKC0xLjApCiAgICAgLCBtX21pbmltdW1TY2FsZUZhY3RvcigtMS4wKQpA
QCAtMjkzLDcgKzI5OSw3IEBAIFFXS1BhZ2U6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6Vmlld3Bv
cnRDb25maWd1cmF0aW9uKCkKIAogfQogCi1RV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246
OlZpZXdwb3J0Q29uZmlndXJhdGlvbihjb25zdCBRV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRp
b24mIG90aGVyKQorUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzOjpWaWV3cG9ydEF0dHJpYnV0
ZXMoY29uc3QgUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiBvdGhlcikKICAgICA6IGQob3Ro
ZXIuZCkKICAgICAsIG1faW5pdGlhbFNjYWxlRmFjdG9yKG90aGVyLm1faW5pdGlhbFNjYWxlRmFj
dG9yKQogICAgICwgbV9taW5pbXVtU2NhbGVGYWN0b3Iob3RoZXIubV9taW5pbXVtU2NhbGVGYWN0
b3IpCkBAIC0zMDYsMTIgKzMxMiwxMiBAQCBRV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246
OlZpZXdwb3J0Q29uZmlndXJhdGlvbihjb25zdCBRV0tQYWdlOjpWaWV3cG9ydENvbgogCiB9CiAK
LVFXS1BhZ2U6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6flZpZXdwb3J0Q29uZmlndXJhdGlvbigp
CitRV0tQYWdlOjpWaWV3cG9ydEF0dHJpYnV0ZXM6On5WaWV3cG9ydEF0dHJpYnV0ZXMoKQogewog
CiB9CiAKLVFXS1BhZ2U6OlZpZXdwb3J0Q29uZmlndXJhdGlvbiYgUVdLUGFnZTo6Vmlld3BvcnRD
b25maWd1cmF0aW9uOjpvcGVyYXRvcj0oY29uc3QgUVdLUGFnZTo6Vmlld3BvcnRDb25maWd1cmF0
aW9uJiBvdGhlcikKK1FXS1BhZ2U6OlZpZXdwb3J0QXR0cmlidXRlcyYgUVdLUGFnZTo6Vmlld3Bv
cnRBdHRyaWJ1dGVzOjpvcGVyYXRvcj0oY29uc3QgUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVz
JiBvdGhlcikKIHsKICAgICBpZiAodGhpcyAhPSAmb3RoZXIpIHsKICAgICAgICAgZCA9IG90aGVy
LmQ7CkBAIC0zMjcsNyArMzMzLDcgQEAgUVdLUGFnZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uJiBR
V0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246Om9wZXJhdG9yPShjb25zdAogICAgIHJldHVy
biAqdGhpczsKIH0KIAotUVdLUGFnZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uIFFXS1BhZ2U6OnZp
ZXdwb3J0Q29uZmlndXJhdGlvbkZvclNpemUoUVNpemUgYXZhaWxhYmxlU2l6ZSkgY29uc3QKK1FX
S1BhZ2U6OlZpZXdwb3J0QXR0cmlidXRlcyBRV0tQYWdlOjp2aWV3cG9ydEF0dHJpYnV0ZXNGb3JT
aXplKFFTaXplIGF2YWlsYWJsZVNpemUpIGNvbnN0CiB7CiAgICAgc3RhdGljIGludCBkZXNrdG9w
V2lkdGggPSA5ODA7CiAgICAgc3RhdGljIGludCBkZXZpY2VEUEkgPSAxNjA7CkBAIC0zMzcsMTEg
KzM0Myw5IEBAIFFXS1BhZ2U6OlZpZXdwb3J0Q29uZmlndXJhdGlvbiBRV0tQYWdlOjp2aWV3cG9y
dENvbmZpZ3VyYXRpb25Gb3JTaXplKFFTaXplIGF2YWlsCiAgICAgaW50IGRldmljZVdpZHRoID0g
NDgwOwogICAgIGludCBkZXZpY2VIZWlnaHQgPSA4NjQ7CiAKLSAgICBWaWV3cG9ydEFyZ3VtZW50
cyBhcmdzOwotCi0gICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIGNvbmYgPSBXZWJDb3Jl
Ojpjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3MsIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lk
dGgsIGRldmljZUhlaWdodCwgZGV2aWNlRFBJLCBhdmFpbGFibGVTaXplKTsKKyAgICBXZWJDb3Jl
OjpWaWV3cG9ydEF0dHJpYnV0ZXMgY29uZiA9IFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJp
YnV0ZXMoZC0+dmlld3BvcnRBcmd1bWVudHMsIGRlc2t0b3BXaWR0aCwgZGV2aWNlV2lkdGgsIGRl
dmljZUhlaWdodCwgZGV2aWNlRFBJLCBhdmFpbGFibGVTaXplKTsKIAotICAgIFZpZXdwb3J0Q29u
ZmlndXJhdGlvbiByZXN1bHQ7CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdDsKIAogICAg
IHJlc3VsdC5tX2lzVmFsaWQgPSB0cnVlOwogICAgIHJlc3VsdC5tX3NpemUgPSBjb25mLmxheW91
dFNpemU7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oIGIv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaAppbmRleCAwYmI5ZGI5Li5lZDU0YTYx
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oCisrKyBiL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgKQEAgLTE2LDcgKzE2LDcgQEAgY2xhc3Mg
UUN1cnNvcjsKIGNsYXNzIFFXS0dyYXBoaWNzV2lkZ2V0OwogY2xhc3MgUVdLUHJlZmVyZW5jZXM7
CiBjbGFzcyBRV0tQYWdlUHJpdmF0ZTsKLWNsYXNzIFF0Vmlld3BvcnRDb25maWd1cmF0aW9uUHJp
dmF0ZTsKK2NsYXNzIFF0Vmlld3BvcnRBdHRyaWJ1dGVzUHJpdmF0ZTsKIAogY2xhc3MgUVdFQktJ
VF9FWFBPUlQgUVdLUGFnZSA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX09CSkVDVApAQCAtMzUs
MTQgKzM1LDE0IEBAIHB1YmxpYzoKICAgICAgICAgV2ViQWN0aW9uQ291bnQKICAgICB9OwogCi0g
ICAgY2xhc3MgVmlld3BvcnRDb25maWd1cmF0aW9uIHsKKyAgICBjbGFzcyBWaWV3cG9ydEF0dHJp
YnV0ZXMgewogICAgIHB1YmxpYzoKLSAgICAgICAgVmlld3BvcnRDb25maWd1cmF0aW9uKCk7Ci0g
ICAgICAgIFZpZXdwb3J0Q29uZmlndXJhdGlvbihjb25zdCBRV0tQYWdlOjpWaWV3cG9ydENvbmZp
Z3VyYXRpb24mIG90aGVyKTsKKyAgICAgICAgVmlld3BvcnRBdHRyaWJ1dGVzKCk7CisgICAgICAg
IFZpZXdwb3J0QXR0cmlidXRlcyhjb25zdCBRV0tQYWdlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIG90
aGVyKTsKIAotICAgICAgICB+Vmlld3BvcnRDb25maWd1cmF0aW9uKCk7CisgICAgICAgIH5WaWV3
cG9ydEF0dHJpYnV0ZXMoKTsKIAotICAgICAgICBRV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRp
b24mIG9wZXJhdG9yPShjb25zdCBRV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb24mIG90aGVy
KTsKKyAgICAgICAgUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiBvcGVyYXRvcj0oY29uc3Qg
UVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiBvdGhlcik7CiAKICAgICAgICAgaW5saW5lIHFy
ZWFsIGluaXRpYWxTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbFNjYWxlRmFj
dG9yOyB9OwogICAgICAgICBpbmxpbmUgcXJlYWwgbWluaW11bVNjYWxlRmFjdG9yKCkgY29uc3Qg
eyByZXR1cm4gbV9taW5pbXVtU2NhbGVGYWN0b3I7IH07CkBAIC01Myw3ICs1Myw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaW5saW5lIFFTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH07
CiAKICAgICBwcml2YXRlOgotICAgICAgICBRU2hhcmVkRGF0YVBvaW50ZXI8UXRWaWV3cG9ydENv
bmZpZ3VyYXRpb25Qcml2YXRlPiBkOworICAgICAgICBRU2hhcmVkRGF0YVBvaW50ZXI8UXRWaWV3
cG9ydEF0dHJpYnV0ZXNQcml2YXRlPiBkOwogICAgICAgICBxcmVhbCBtX2luaXRpYWxTY2FsZUZh
Y3RvcjsKICAgICAgICAgcXJlYWwgbV9taW5pbXVtU2NhbGVGYWN0b3I7CiAgICAgICAgIHFyZWFs
IG1fbWF4aW11bVNjYWxlRmFjdG9yOwpAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgUVN0
cmluZyB0aXRsZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRWaWV3cG9ydFNpemUoY29uc3QgUVNp
emUmKTsKLSAgICBWaWV3cG9ydENvbmZpZ3VyYXRpb24gdmlld3BvcnRDb25maWd1cmF0aW9uRm9y
U2l6ZShRU2l6ZSBhdmFpbGFibGVTaXplKSBjb25zdDsKKyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMg
dmlld3BvcnRBdHRyaWJ1dGVzRm9yU2l6ZShRU2l6ZSBhdmFpbGFibGVTaXplKSBjb25zdDsKIAog
ICAgIFFBY3Rpb24qIGFjdGlvbihXZWJBY3Rpb24gYWN0aW9uKSBjb25zdDsKICAgICB2b2lkIHRy
aWdnZXJBY3Rpb24oV2ViQWN0aW9uIGFjdGlvbiwgYm9vbCBjaGVja2VkID0gZmFsc2UpOwpAQCAt
OTksNiArOTksNyBAQCBwdWJsaWM6CiAgICAgUV9TSUdOQUwgdm9pZCB1cmxDaGFuZ2VkKGNvbnN0
IFFVcmwmKTsKICAgICBRX1NJR05BTCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoY29uc3QgUVNp
emUmKTsKICAgICBRX1NJR05BTCB2b2lkIGN1cnNvckNoYW5nZWQoY29uc3QgUUN1cnNvciYpOwor
ICAgIFFfU0lHTkFMIHZvaWQgdmlld3BvcnRDaGFuZ2VSZXF1ZXN0ZWQoKTsKIAogcHJvdGVjdGVk
OgogICAgIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCopOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a3BhZ2VfcC5oCmluZGV4IGI3ZTc2N2QuLjM5ZmI1YzQgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrcGFnZV9wLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBwcm9jZXNzRGlkRXhpdCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkUmV2aXZl
KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3Im
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6
Vmlld3BvcnRBcmd1bWVudHMmKTsKICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKGJvb2wgZGly
ZWN0aW9uKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3QgV1RGOjpT
dHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckVk
aXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5PiwgV2ViS2l0
OjpXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pOwpAQCAtODIsNiArODMsNyBAQCBwdWJsaWM6CiAK
ICAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IHBhZ2U7CiAgICAgV0tQYWdlTmFtZXNw
YWNlUmVmIHBhZ2VOYW1lc3BhY2VSZWY7CisgICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMg
dmlld3BvcnRBcmd1bWVudHM7CiAKICAgICBRV0tQYWdlOjpDcmVhdGVOZXdQYWdlRm4gY3JlYXRl
TmV3UGFnZUZuOwogCkBAIC04OSwxMyArOTEsMTMgQEAgcHVibGljOgogICAgIFFCYXNpY1RpbWVy
IHRyaXBsZUNsaWNrVGltZXI7CiB9OwogCi1jbGFzcyBRdFZpZXdwb3J0Q29uZmlndXJhdGlvblBy
aXZhdGUgOiBwdWJsaWMgUVNoYXJlZERhdGEgeworY2xhc3MgUXRWaWV3cG9ydEF0dHJpYnV0ZXNQ
cml2YXRlIDogcHVibGljIFFTaGFyZWREYXRhIHsKIHB1YmxpYzoKLSAgICBRdFZpZXdwb3J0Q29u
ZmlndXJhdGlvblByaXZhdGUoUVdLUGFnZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uKiBxcSkKKyAg
ICBRdFZpZXdwb3J0QXR0cmlidXRlc1ByaXZhdGUoUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVz
KiBxcSkKICAgICAgICAgOiBxKHFxKQogICAgIHsgfQogCi0gICAgUVdLUGFnZTo6Vmlld3BvcnRD
b25maWd1cmF0aW9uKiBxOworICAgIFFXS1BhZ2U6OlZpZXdwb3J0QXR0cmlidXRlcyogcTsKIH07
CiAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvV2ViS2l0
Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDkwOTk0NDYuLjNiNzgzYWMgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIGNsYXNzIEN1cnNvcjsKKyAgICBjbGFzcyBWaWV3cG9ydEFyZ3VtZW50czsKIH0KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC00OCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgdG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgPSAwOwogCiAg
ICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFdlYkNvcmU6OlZpZXdw
b3J0QXJndW1lbnRzJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRWRpdENvbW1h
bmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JS
ZWRvKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCkgPSAwOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNGI3NmZiYS4uYjQ0ZGJiMSAxMDA2NDQK
LS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NjEsNyArNTYxLDYgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok0KICAgICB9CiAKICAgICBkaWRSZWNlaXZlV2ViUGFnZVByb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci0KIH0KIAogdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSkKQEAgLTg2Niw2ICs4
NjUsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRzU2l6ZUNoYW5nZWQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYKICAgICBtX3VpQ2xpZW50LmNvbnRlbnRz
U2l6ZUNoYW5nZWQodGhpcywgc2l6ZSwgcHJvY2VzcygpLT53ZWJGcmFtZShmcmFtZUlEKSk7CiB9
CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VWaWV3cG9ydERhdGEoY29uc3QgVmlld3Bv
cnRBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgbV9wYWdlQ2xpZW50LT5zZXRWaWV3cG9ydEFyZ3Vt
ZW50cyhhcmdzKTsKK30KKwogLy8gQmFja0ZvcndhcmRMaXN0CiAKIHZvaWQgV2ViUGFnZVByb3h5
OjpiYWNrRm9yd2FyZEFkZEl0ZW0odWludDY0X3QgaXRlbUlEKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCBiZTgxZDQ4Li5iMTIzNWFjIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtNTgsNiArNTgsNyBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgSW50U2l6ZTsKICAgICBjbGFzcyBDdXJzb3I7CisgICAgY2xhc3MgVmlld3Bv
cnRBcmd1bWVudHM7CiB9CiAKIHN0cnVjdCBXS0NvbnRleHRTdGF0aXN0aWNzOwpAQCAtMjU1LDYg
KzI1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYp
OwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQodWludDMyX3QgbW9kaWZpZXJzLCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZvaWQgZGlk
Q2hhbmdlVmlld3BvcnREYXRhKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CiAK
ICAgICAvLyBCYWNrL0ZvcndhcmQgbGlzdCBtYW5hZ2VtZW50CiAgICAgdm9pZCBiYWNrRm9yd2Fy
ZEFkZEl0ZW0odWludDY0X3QgaXRlbUlEKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCAyZWY1ZjM3Li5jNWUyMzg4IDEwMDY0NAotLS0gYS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMCw2ICszMCw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAgICAgUnVuSmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlE
LCBXVEY6OlN0cmluZyBtZXNzYWdlLCBXVEY6OlN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChXVEY6
OlN0cmluZyByZXN1bHQpCiAgICAgTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQodWludDMyX3QgbW9k
aWZpZXJzLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRh
KTsKICAgICBDb250ZW50c1NpemVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6Oklu
dFNpemUgbmV3U2l6ZSkKKyAgICBEaWRDaGFuZ2VWaWV3cG9ydERhdGEoV2ViQ29yZTo6Vmlld3Bv
cnRBcmd1bWVudHMgYXJndW1lbnRzKQogICAgIERpZFJlY2VpdmVFdmVudCh1aW50MzJfdCB0eXBl
LCBib29sIGhhbmRsZWQpCiAgICAgRGlkVmFsaWRhdGVNZW51SXRlbShXVEY6OlN0cmluZyBjb21t
YW5kTmFtZSwgYm9vbCBpc0VuYWJsZWQsIGludDMyX3Qgc3RhdGUpCiAgICAgU2V0Q3Vyc29yKFdl
YkNvcmU6OkN1cnNvciBjdXJzb3IpCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4v
V2ViVmlldy5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKaW5kZXggZjU0
ZGE1Ny4uODQ5M2Q2ZiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcu
Y3BwCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcApAQCAtNTcyLDYgKzU3
MiwxMCBAQCB2b2lkIFdlYlZpZXc6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1
cnNvcikKICAgICA6OlNldEN1cnNvcihwbGF0Zm9ybUN1cnNvcik7CiB9CiAKK3ZvaWQgV2ViVmll
dzo6c2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMm
KQoreworfQorCiB2b2lkIFdlYlZpZXc6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxX
ZWJFZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKQogewogfQpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaCBiL1dlYktpdDIvVUlQcm9j
ZXNzL3dpbi9XZWJWaWV3LmgKaW5kZXggNjAyNTRkNS4uMDAxZWJiMCAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy93aW4v
V2ViVmlldy5oCkBAIC05NSw2ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHRh
a2VGb2N1cyhib29sIGRpcmVjdGlvbik7CiAgICAgdmlydHVhbCB2b2lkIHRvb2xUaXBDaGFuZ2Vk
KGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwog
ICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENv
bW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyk7CiAgICAgdmlydHVhbCB2b2lk
IGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEVkaXRDb21tYW5k
U3RhdGUoY29uc3QgV1RGOjpTdHJpbmcmLCBib29sLCBpbnQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBjMDk1
YWUwLi5mMjkyNTM4IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAi
RHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJz
LmgiCisjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1l
TG9hZGVyQ2xpZW50LmgiCkBAIC01NDYsNSArNTQ3LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKQogfQogI2VuZGlmCiAKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25zdCBWaWV3cG9y
dEFyZ3VtZW50cyYgYXJncykgY29uc3QKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlVmlld3BvcnRE
YXRhKGFyZ3MpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKaW5kZXggNDE5YTZjOS4uYWQ0ODhmOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjgsNiArMjgsNyBAQAog
I2RlZmluZSBXZWJDaHJvbWVDbGllbnRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWVDbGll
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTg3LDYgKzE4
OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJl
bnRDdXJzb3IoKTsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVmlld3BvcnRE
YXRhRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CisK
ICAgICBTdHJpbmcgbV9jYWNoZWRUb29sVGlwOwogICAgIFdlYlBhZ2UqIG1fcGFnZTsKIH07CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cK
aW5kZXggMGUzNmVmZi4uYzE3MTIxNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTEwLTA2
ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdXNhZ2Ug
b2YgVUlDbGllbnQgdG8gYWNjb3VudCBmb3IgdGhlIG5ldworICAgICAgICB2aWV3cG9ydEF0dHJp
YnV0ZXNJbnZhbGlkYXRlZCBjYWxsYmFjay4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9C
cm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtCcm93c2VyV2luZG93Q29udHJv
bGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci93aW4vQnJvd3NlclZp
ZXcuY3BwOgorICAgICAgICAoQnJvd3NlclZpZXc6OmNyZWF0ZSk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OmNyZWF0ZU90aGVy
UGFnZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKwogMjAx
MC0xMC0wOCAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQ3NhYmEgT3N6dHJvZ29uw6FjLgotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70286</attachid>
            <date>2010-10-08 14:23:14 -0700</date>
            <delta_ts>2010-10-11 07:36:28 -0700</delta_ts>
            <desc>Patch (without garbage)</desc>
            <filename>0001-Adding-Qt-WebKit2-API-for-dealing-with-viewport-meta.patch</filename>
            <type>text/plain</type>
            <size>19607</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSAwYTM0NTM5NTE4NDQzMDViNDBjNDE1MzYyMTNhZDU2ODc2NzM4ZTdiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogRnJpLCA4IE9jdCAyMDEwIDE4OjIwOjQ5
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gQWRkaW5nIFF0IFdlYktpdDIgQVBJIGZvciBkZWFsaW5n
IHdpdGggdmlld3BvcnQgbWV0YSBpbmZvCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDcyMDIKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIG5ldyBBUEkg
Zm9yIHNldHRpbmcgc2NhbGUgYW5kIGxheW91dCB2aWV3cG9ydCBnaXZlbiB0aGUgZGF0YQpwcm92
aWRlZCBieSB0aGUgdmlld3BvcnQgbWV0YSB0YWcuCgpBbnkgUXQgdmlldyBjb21wb25lbnRzIHdo
byB3YW50cyB0byBzdXBwb3J0IHRoaXMsIHdpbGwgbmVlZCB0bwpjb21wdXRlIHRoZSB2aWV3cG9y
dCBhdHRyaWJ1dGVzIGJlZm9yZSBmaXJzdCBsb2FkIHVzaW5nCnZpZXdwb3J0QXR0cmlidXRlc0Zv
clNpemUoLi4pLCBhbmQgdGhlbiBhZ2FpbiBldmVyeXRpbWUKdGhlIHZpZXdwb3J0IGF0dHJpYnV0
ZXMgZ2V0cyBpbnZhbGlkYXRlcyAobG9hZGluZyBhIG5ldyBwYWdlLApuYXZpZ2F0aW5nIHBhZ2Ug
Y2FjaGUpIG9yIGV2ZXJ5IHRpbWUgb24gb2YgdGhlIGJyb3dzZXIKYXR0cmlidXRlcyBjaGFuZ2Us
IHN1Y2ggYXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZXMgKHdoaWNoCmNoYW5nZXMgdGhlIGFj
dHVhbCB2aXNpYmxlIHZpZXdwb3J0KS4gQSBzaWduYWwKdmlld3BvcnRDaGFuZ2VSZXF1ZXN0ZWQo
KSBpcyBwcm92aWRlZCBmb3IgdGhlIGZvcm1lci4KCiogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oOgoqIFVJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CiogVUlQcm9jZXNz
L0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW06CihXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRW
aWV3cG9ydEFyZ3VtZW50cyk6CiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDoKKFFXS1Bh
Z2VQcml2YXRlOjpzZXRWaWV3cG9ydEFyZ3VtZW50cyk6CihRV0tQYWdlOjpWaWV3cG9ydEF0dHJp
YnV0ZXM6OlZpZXdwb3J0QXR0cmlidXRlcyk6CihRV0tQYWdlOjpWaWV3cG9ydEF0dHJpYnV0ZXM6
On5WaWV3cG9ydEF0dHJpYnV0ZXMpOgooUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzOjpvcGVy
YXRvcj0pOgooUVdLUGFnZTo6dmlld3BvcnRBdHRyaWJ1dGVzRm9yU2l6ZSk6CiogVUlQcm9jZXNz
L0FQSS9xdC9xd2twYWdlLmg6CiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaDoKKFF0Vmll
d3BvcnRBdHRyaWJ1dGVzUHJpdmF0ZTo6UXRWaWV3cG9ydEF0dHJpYnV0ZXNQcml2YXRlKToKKiBV
SVByb2Nlc3MvUGFnZUNsaWVudC5oOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgooV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRDaGFuZ2VWaWV3cG9ydERhdGEpOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgoqIFVJUHJvY2Vzcy93aW4vV2Vi
Vmlldy5jcHA6CihXZWJLaXQ6OldlYlZpZXc6OnNldFZpZXdwb3J0QXJndW1lbnRzKToKKiBVSVBy
b2Nlc3Mvd2luL1dlYlZpZXcuaDoKKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHA6CihXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlzcGF0Y2hWaWV3cG9ydERh
dGFEaWRDaGFuZ2UpOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6Ci0tLQogV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDQ1ICsrKysrKysrKysrKysrKysrKysrCiBXZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCAgICAgICAgICAgICB8ICAgIDIgKwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9QYWdlQ2xpZW50SW1wbC5oICAgICAgICAgfCAgICAxICsKIFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0gICAgICAgIHwgICAgNSArKwogV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwICAgICAgICAgICAgICAgfCAgIDIyICsrKysrKy0tLS0K
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmggICAgICAgICAgICAgICAgIHwgICAx
NyArKysrLS0tLQogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oICAgICAgICAg
ICAgICAgfCAgICA4ICsrLQogV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oICAgICAgICAg
ICAgICAgICAgICAgfCAgICAyICsKIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
ICAgICAgICAgICAgICAgIHwgICAgNiArKy0KIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gICAgICAgICB8ICAgIDEgKwogV2ViS2l0Mi9VSVByb2Nlc3Mvd2lu
L1dlYlZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAgICA0ICsrCiBXZWJLaXQyL1VJUHJvY2Vz
cy93aW4vV2ViVmlldy5oICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogLi4uL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgfCAgICA1ICsrCiAuLi4vV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCAgICB8ICAgIDMgKwogMTUg
ZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzQwMDIx
Ny4uOTA3ZmQwZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0xMC0wOCAgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBRdCBXZWJLaXQy
IEFQSSBmb3IgZGVhbGluZyB3aXRoIHZpZXdwb3J0IG1ldGEgaW5mbworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcyMDIKKworICAgICAgICBBZGQgbmV3
IEFQSSBmb3Igc2V0dGluZyBzY2FsZSBhbmQgbGF5b3V0IHZpZXdwb3J0IGdpdmVuIHRoZSBkYXRh
CisgICAgICAgIHByb3ZpZGVkIGJ5IHRoZSB2aWV3cG9ydCBtZXRhIHRhZy4KKworICAgICAgICBB
bnkgUXQgdmlldyBjb21wb25lbnRzIHdobyB3YW50cyB0byBzdXBwb3J0IHRoaXMsIHdpbGwgbmVl
ZCB0bworICAgICAgICBjb21wdXRlIHRoZSB2aWV3cG9ydCBhdHRyaWJ1dGVzIGJlZm9yZSBmaXJz
dCBsb2FkIHVzaW5nCisgICAgICAgIHZpZXdwb3J0QXR0cmlidXRlc0ZvclNpemUoLi4pLCBhbmQg
dGhlbiBhZ2FpbiBldmVyeXRpbWUKKyAgICAgICAgdGhlIHZpZXdwb3J0IGF0dHJpYnV0ZXMgZ2V0
cyBpbnZhbGlkYXRlcyAobG9hZGluZyBhIG5ldyBwYWdlLAorICAgICAgICBuYXZpZ2F0aW5nIHBh
Z2UgY2FjaGUpIG9yIGV2ZXJ5IHRpbWUgb24gb2YgdGhlIGJyb3dzZXIKKyAgICAgICAgYXR0cmli
dXRlcyBjaGFuZ2UsIHN1Y2ggYXMgd2hlbiB0aGUgZGV2aWNlIGlzIHJvdGF0ZXMgKHdoaWNoCisg
ICAgICAgIGNoYW5nZXMgdGhlIGFjdHVhbCB2aXNpYmxlIHZpZXdwb3J0KS4gQSBzaWduYWwKKyAg
ICAgICAgdmlld3BvcnRDaGFuZ2VSZXF1ZXN0ZWQoKSBpcyBwcm92aWRlZCBmb3IgdGhlIGZvcm1l
ci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6c2V0Vmlld3BvcnRBcmd1bWVudHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cXdrcGFnZS5jcHA6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6c2V0Vmlld3BvcnRBcmd1bWVu
dHMpOgorICAgICAgICAoUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzOjpWaWV3cG9ydEF0dHJp
YnV0ZXMpOgorICAgICAgICAoUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzOjp+Vmlld3BvcnRB
dHRyaWJ1dGVzKToKKyAgICAgICAgKFFXS1BhZ2U6OlZpZXdwb3J0QXR0cmlidXRlczo6b3BlcmF0
b3I9KToKKyAgICAgICAgKFFXS1BhZ2U6OnZpZXdwb3J0QXR0cmlidXRlc0ZvclNpemUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvcXdrcGFnZV9wLmg6CisgICAgICAgIChRdFZpZXdwb3J0QXR0cmlidXRlc1ByaXZhdGU6
OlF0Vmlld3BvcnRBdHRyaWJ1dGVzUHJpdmF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlVmlld3BvcnREYXRhKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRWaWV3cG9ydEFyZ3VtZW50cyk6CisgICAgICAgICogVUlQ
cm9jZXNzL3dpbi9XZWJWaWV3Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDEwLTEwLTA4ICBKb2NlbHluIFR1
cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oIGIvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5k
ZXggYjQwNjRiMi4uNDg5OTdkNyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKKysrIGIvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVx
dWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRl
IDxsaW1pdHM+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKQEAgLTQyLDYgKzQzLDcgQEAgbmFtZXNw
YWNlIENvcmVJUEMgewogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJ
bnRQb2ludD4gOiBTaW1wbGVBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFBvaW50PiB7IH07CiB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkludFNpemU+IDogU2ltcGxl
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRTaXplPiB7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkludFJlY3Q+IDogU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpJbnRSZWN0PiB7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlZpZXdwb3J0QXJndW1lbnRzPiA6IFNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmll
d3BvcnRBcmd1bWVudHM+IHsgfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpNaW1lQ2xhc3NJbmZvPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciogZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6TWltZUNsYXNzSW5mbyYgbWltZUNsYXNz
SW5mbykKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAppbmRleCA3
NDhkN2UzLi41NWE2MTVhIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1Bh
Z2VDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50
SW1wbC5oCkBAIC01MSw2ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHRha2VG
b2N1cyhib29sIGRpcmVjdGlvbik7CiAgICAgdmlydHVhbCB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNv
bnN0IFN0cmluZyYgb2xkVG9vbFRpcCwgY29uc3QgU3RyaW5nJiBuZXdUb29sVGlwKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3Vt
ZW50cyYpOwogCiAgICAgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRp
dENvbW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyk7CiAgICAgdm9pZCBjbGVh
ckFsbEVkaXRDb21tYW5kcygpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9QYWdlQ2xpZW50SW1wbC5tbSBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVu
dEltcGwubW0KaW5kZXggYjQ3ZjMxMC4uMDVjOWIwZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC0xMzYsNiArMTM2LDExIEBAIHZvaWQgUGFnZUNs
aWVudEltcGw6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcikKICAgICBb
bV93a1ZpZXcgX3NldEN1cnNvcjpjdXJzb3IucGxhdGZvcm1DdXJzb3IoKV07CiB9CiAKK3ZvaWQg
UGFnZUNsaWVudEltcGw6OnNldFZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFdlYkNvcmU6OlZpZXdw
b3J0QXJndW1lbnRzJikKK3sKKworfQorCiBzdGF0aWMgTlNTdHJpbmcqIG5hbWVGb3JFZGl0QWN0
aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKIHsKICAgICAvLyBGSVhNRTogVXNlIGxvY2FsaXpl
ZCBzdHJpbmdzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2Uu
Y3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCmluZGV4IDdkNWVjNjMu
LmYxMWQwZDcgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNw
cAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKQEAgLTc4LDYgKzc4
LDEyIEBAIHZvaWQgUVdLUGFnZVByaXZhdGU6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJz
b3ImIGN1cnNvcikKICNlbmRpZgogfQogCit2b2lkIFFXS1BhZ2VQcml2YXRlOjpzZXRWaWV3cG9y
dEFyZ3VtZW50cyhjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJncykKK3sKKyAgICB2aWV3cG9y
dEFyZ3VtZW50cyA9IGFyZ3M7CisgICAgZW1pdCBxLT52aWV3cG9ydENoYW5nZVJlcXVlc3RlZCgp
OworfQorCiB2b2lkIFFXS1BhZ2VQcml2YXRlOjp0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIG5ld1Rvb2x0aXApCiB7CiAgICAgZW1pdCBxLT5zdGF0dXNCYXJNZXNz
YWdlKFFTdHJpbmcobmV3VG9vbHRpcCkpOwpAQCAtMjgxLDcgKzI4Nyw3IEBAIFFXS1BhZ2U6On5R
V0tQYWdlKCkKICAgICBkZWxldGUgZDsKIH0KIAotUVdLUGFnZTo6Vmlld3BvcnRDb25maWd1cmF0
aW9uOjpWaWV3cG9ydENvbmZpZ3VyYXRpb24oKQorUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVz
OjpWaWV3cG9ydEF0dHJpYnV0ZXMoKQogICAgIDogZCgwKQogICAgICwgbV9pbml0aWFsU2NhbGVG
YWN0b3IoLTEuMCkKICAgICAsIG1fbWluaW11bVNjYWxlRmFjdG9yKC0xLjApCkBAIC0yOTMsNyAr
Mjk5LDcgQEAgUVdLUGFnZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjpWaWV3cG9ydENvbmZpZ3Vy
YXRpb24oKQogCiB9CiAKLVFXS1BhZ2U6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6Vmlld3BvcnRD
b25maWd1cmF0aW9uKGNvbnN0IFFXS1BhZ2U6OlZpZXdwb3J0Q29uZmlndXJhdGlvbiYgb3RoZXIp
CitRV0tQYWdlOjpWaWV3cG9ydEF0dHJpYnV0ZXM6OlZpZXdwb3J0QXR0cmlidXRlcyhjb25zdCBR
V0tQYWdlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIG90aGVyKQogICAgIDogZChvdGhlci5kKQogICAg
ICwgbV9pbml0aWFsU2NhbGVGYWN0b3Iob3RoZXIubV9pbml0aWFsU2NhbGVGYWN0b3IpCiAgICAg
LCBtX21pbmltdW1TY2FsZUZhY3RvcihvdGhlci5tX21pbmltdW1TY2FsZUZhY3RvcikKQEAgLTMw
NiwxMiArMzEyLDEyIEBAIFFXS1BhZ2U6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6Vmlld3BvcnRD
b25maWd1cmF0aW9uKGNvbnN0IFFXS1BhZ2U6OlZpZXdwb3J0Q29uCiAKIH0KIAotUVdLUGFnZTo6
Vmlld3BvcnRDb25maWd1cmF0aW9uOjp+Vmlld3BvcnRDb25maWd1cmF0aW9uKCkKK1FXS1BhZ2U6
OlZpZXdwb3J0QXR0cmlidXRlczo6flZpZXdwb3J0QXR0cmlidXRlcygpCiB7CiAKIH0KIAotUVdL
UGFnZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uJiBRV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRp
b246Om9wZXJhdG9yPShjb25zdCBRV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb24mIG90aGVy
KQorUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiBRV0tQYWdlOjpWaWV3cG9ydEF0dHJpYnV0
ZXM6Om9wZXJhdG9yPShjb25zdCBRV0tQYWdlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIG90aGVyKQog
ewogICAgIGlmICh0aGlzICE9ICZvdGhlcikgewogICAgICAgICBkID0gb3RoZXIuZDsKQEAgLTMy
Nyw3ICszMzMsNyBAQCBRV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb24mIFFXS1BhZ2U6OlZp
ZXdwb3J0Q29uZmlndXJhdGlvbjo6b3BlcmF0b3I9KGNvbnN0CiAgICAgcmV0dXJuICp0aGlzOwog
fQogCi1RV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb24gUVdLUGFnZTo6dmlld3BvcnRDb25m
aWd1cmF0aW9uRm9yU2l6ZShRU2l6ZSBhdmFpbGFibGVTaXplKSBjb25zdAorUVdLUGFnZTo6Vmll
d3BvcnRBdHRyaWJ1dGVzIFFXS1BhZ2U6OnZpZXdwb3J0QXR0cmlidXRlc0ZvclNpemUoUVNpemUg
YXZhaWxhYmxlU2l6ZSkgY29uc3QKIHsKICAgICBzdGF0aWMgaW50IGRlc2t0b3BXaWR0aCA9IDk4
MDsKICAgICBzdGF0aWMgaW50IGRldmljZURQSSA9IDE2MDsKQEAgLTMzNywxMSArMzQzLDkgQEAg
UVdLUGFnZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uIFFXS1BhZ2U6OnZpZXdwb3J0Q29uZmlndXJh
dGlvbkZvclNpemUoUVNpemUgYXZhaWwKICAgICBpbnQgZGV2aWNlV2lkdGggPSA0ODA7CiAgICAg
aW50IGRldmljZUhlaWdodCA9IDg2NDsKIAotICAgIFZpZXdwb3J0QXJndW1lbnRzIGFyZ3M7Ci0K
LSAgICBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgY29uZiA9IFdlYkNvcmU6OmNvbXB1dGVW
aWV3cG9ydEF0dHJpYnV0ZXMoYXJncywgZGVza3RvcFdpZHRoLCBkZXZpY2VXaWR0aCwgZGV2aWNl
SGVpZ2h0LCBkZXZpY2VEUEksIGF2YWlsYWJsZVNpemUpOworICAgIFdlYkNvcmU6OlZpZXdwb3J0
QXR0cmlidXRlcyBjb25mID0gV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhkLT52
aWV3cG9ydEFyZ3VtZW50cywgZGVza3RvcFdpZHRoLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0
LCBkZXZpY2VEUEksIGF2YWlsYWJsZVNpemUpOwogCi0gICAgVmlld3BvcnRDb25maWd1cmF0aW9u
IHJlc3VsdDsKKyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgcmVzdWx0OwogCiAgICAgcmVzdWx0Lm1f
aXNWYWxpZCA9IHRydWU7CiAgICAgcmVzdWx0Lm1fc2l6ZSA9IGNvbmYubGF5b3V0U2l6ZTsKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmggYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oCmluZGV4IDBiYjlkYjkuLmVkNTRhNjEgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgKKysrIGIvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaApAQCAtMTYsNyArMTYsNyBAQCBjbGFzcyBRQ3Vyc29yOwog
Y2xhc3MgUVdLR3JhcGhpY3NXaWRnZXQ7CiBjbGFzcyBRV0tQcmVmZXJlbmNlczsKIGNsYXNzIFFX
S1BhZ2VQcml2YXRlOwotY2xhc3MgUXRWaWV3cG9ydENvbmZpZ3VyYXRpb25Qcml2YXRlOworY2xh
c3MgUXRWaWV3cG9ydEF0dHJpYnV0ZXNQcml2YXRlOwogCiBjbGFzcyBRV0VCS0lUX0VYUE9SVCBR
V0tQYWdlIDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNUCkBAIC0zNSwxNCArMzUsMTQg
QEAgcHVibGljOgogICAgICAgICBXZWJBY3Rpb25Db3VudAogICAgIH07CiAKLSAgICBjbGFzcyBW
aWV3cG9ydENvbmZpZ3VyYXRpb24geworICAgIGNsYXNzIFZpZXdwb3J0QXR0cmlidXRlcyB7CiAg
ICAgcHVibGljOgotICAgICAgICBWaWV3cG9ydENvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgVmll
d3BvcnRDb25maWd1cmF0aW9uKGNvbnN0IFFXS1BhZ2U6OlZpZXdwb3J0Q29uZmlndXJhdGlvbiYg
b3RoZXIpOworICAgICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgVmlld3BvcnRB
dHRyaWJ1dGVzKGNvbnN0IFFXS1BhZ2U6OlZpZXdwb3J0QXR0cmlidXRlcyYgb3RoZXIpOwogCi0g
ICAgICAgIH5WaWV3cG9ydENvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgflZpZXdwb3J0QXR0cmli
dXRlcygpOwogCi0gICAgICAgIFFXS1BhZ2U6OlZpZXdwb3J0Q29uZmlndXJhdGlvbiYgb3BlcmF0
b3I9KGNvbnN0IFFXS1BhZ2U6OlZpZXdwb3J0Q29uZmlndXJhdGlvbiYgb3RoZXIpOworICAgICAg
ICBRV0tQYWdlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIG9wZXJhdG9yPShjb25zdCBRV0tQYWdlOjpW
aWV3cG9ydEF0dHJpYnV0ZXMmIG90aGVyKTsKIAogICAgICAgICBpbmxpbmUgcXJlYWwgaW5pdGlh
bFNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFsU2NhbGVGYWN0b3I7IH07CiAg
ICAgICAgIGlubGluZSBxcmVhbCBtaW5pbXVtU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBt
X21pbmltdW1TY2FsZUZhY3RvcjsgfTsKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgICAg
ICBpbmxpbmUgUVNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIFFTaGFyZWREYXRhUG9pbnRlcjxRdFZpZXdwb3J0Q29uZmlndXJhdGlv
blByaXZhdGU+IGQ7CisgICAgICAgIFFTaGFyZWREYXRhUG9pbnRlcjxRdFZpZXdwb3J0QXR0cmli
dXRlc1ByaXZhdGU+IGQ7CiAgICAgICAgIHFyZWFsIG1faW5pdGlhbFNjYWxlRmFjdG9yOwogICAg
ICAgICBxcmVhbCBtX21pbmltdW1TY2FsZUZhY3RvcjsKICAgICAgICAgcXJlYWwgbV9tYXhpbXVt
U2NhbGVGYWN0b3I7CkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICBRU3RyaW5nIHRpdGxl
KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFZpZXdwb3J0U2l6ZShjb25zdCBRU2l6ZSYpOwotICAg
IFZpZXdwb3J0Q29uZmlndXJhdGlvbiB2aWV3cG9ydENvbmZpZ3VyYXRpb25Gb3JTaXplKFFTaXpl
IGF2YWlsYWJsZVNpemUpIGNvbnN0OworICAgIFZpZXdwb3J0QXR0cmlidXRlcyB2aWV3cG9ydEF0
dHJpYnV0ZXNGb3JTaXplKFFTaXplIGF2YWlsYWJsZVNpemUpIGNvbnN0OwogCiAgICAgUUFjdGlv
biogYWN0aW9uKFdlYkFjdGlvbiBhY3Rpb24pIGNvbnN0OwogICAgIHZvaWQgdHJpZ2dlckFjdGlv
bihXZWJBY3Rpb24gYWN0aW9uLCBib29sIGNoZWNrZWQgPSBmYWxzZSk7CkBAIC05OSw2ICs5OSw3
IEBAIHB1YmxpYzoKICAgICBRX1NJR05BTCB2b2lkIHVybENoYW5nZWQoY29uc3QgUVVybCYpOwog
ICAgIFFfU0lHTkFMIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChjb25zdCBRU2l6ZSYpOwogICAg
IFFfU0lHTkFMIHZvaWQgY3Vyc29yQ2hhbmdlZChjb25zdCBRQ3Vyc29yJik7CisgICAgUV9TSUdO
QUwgdm9pZCB2aWV3cG9ydENoYW5nZVJlcXVlc3RlZCgpOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50Kik7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZV9wLmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9w
LmgKaW5kZXggYjdlNzY3ZC4uMzlmYjVjNCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2VfcC5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdl
X3AuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NE
aWRFeGl0KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRSZXZpdmUoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFy
Z3VtZW50cyYpOwogICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoYm9vbCBkaXJlY3Rpb24pIHsg
fQogICAgIHZpcnR1YWwgdm9pZCB0b29sVGlwQ2hhbmdlZChjb25zdCBXVEY6OlN0cmluZyYsIGNv
bnN0IFdURjo6U3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQo
UGFzc1JlZlB0cjxXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6VW5kb09yUmVkbyk7CkBAIC04Miw2ICs4Myw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0
cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gcGFnZTsKICAgICBXS1BhZ2VOYW1lc3BhY2VSZWYgcGFn
ZU5hbWVzcGFjZVJlZjsKKyAgICBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFy
Z3VtZW50czsKIAogICAgIFFXS1BhZ2U6OkNyZWF0ZU5ld1BhZ2VGbiBjcmVhdGVOZXdQYWdlRm47
CiAKQEAgLTg5LDEzICs5MSwxMyBAQCBwdWJsaWM6CiAgICAgUUJhc2ljVGltZXIgdHJpcGxlQ2xp
Y2tUaW1lcjsKIH07CiAKLWNsYXNzIFF0Vmlld3BvcnRDb25maWd1cmF0aW9uUHJpdmF0ZSA6IHB1
YmxpYyBRU2hhcmVkRGF0YSB7CitjbGFzcyBRdFZpZXdwb3J0QXR0cmlidXRlc1ByaXZhdGUgOiBw
dWJsaWMgUVNoYXJlZERhdGEgewogcHVibGljOgotICAgIFF0Vmlld3BvcnRDb25maWd1cmF0aW9u
UHJpdmF0ZShRV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb24qIHFxKQorICAgIFF0Vmlld3Bv
cnRBdHRyaWJ1dGVzUHJpdmF0ZShRV0tQYWdlOjpWaWV3cG9ydEF0dHJpYnV0ZXMqIHFxKQogICAg
ICAgICA6IHEocXEpCiAgICAgeyB9CiAKLSAgICBRV0tQYWdlOjpWaWV3cG9ydENvbmZpZ3VyYXRp
b24qIHE7CisgICAgUVdLUGFnZTo6Vmlld3BvcnRBdHRyaWJ1dGVzKiBxOwogfTsKIAogCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKaW5kZXggOTA5OTQ0Ni4uM2I3ODNhYyAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaApAQCAtMzEsNiArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3Mg
Q3Vyc29yOworICAgIGNsYXNzIFZpZXdwb3J0QXJndW1lbnRzOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0b29sVGlw
Q2hhbmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSA9IDA7CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVm
UHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFuZHMoKSA9IDA7CmRpZmYgLS1naXQg
YS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA0Yjc2ZmJhLi5iNDRkYmIxIDEwMDY0NAotLS0gYS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTU2MSw3ICs1NjEsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TQogICAgIH0KIAogICAgIGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLQogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
LCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5KQpAQCAtODY2LDYgKzg2NSwxMSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudHNTaXplQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJgogICAgIG1fdWlDbGllbnQuY29udGVudHNTaXplQ2hhbmdl
ZCh0aGlzLCBzaXplLCBwcm9jZXNzKCktPndlYkZyYW1lKGZyYW1lSUQpKTsKIH0KIAordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZENoYW5nZVZpZXdwb3J0RGF0YShjb25zdCBWaWV3cG9ydEFyZ3VtZW50
cyYgYXJncykKK3sKKyAgICBtX3BhZ2VDbGllbnQtPnNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3Mp
OworfQorCiAvLyBCYWNrRm9yd2FyZExpc3QKIAogdm9pZCBXZWJQYWdlUHJveHk6OmJhY2tGb3J3
YXJkQWRkSXRlbSh1aW50NjRfdCBpdGVtSUQpCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IGJlODFkNDguLmIxMjM1YWMgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01OCw2ICs1
OCw3IEBAIG5hbWVzcGFjZSBDb3JlSVBDIHsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBJbnRTaXplOwogICAgIGNsYXNzIEN1cnNvcjsKKyAgICBjbGFzcyBWaWV3cG9ydEFyZ3VtZW50
czsKIH0KIAogc3RydWN0IFdLQ29udGV4dFN0YXRpc3RpY3M7CkBAIC0yNTUsNiArMjU2LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9p
ZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCh1aW50MzJfdCBtb2RpZmllcnMsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZCh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3
cG9ydERhdGEoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKIAogICAgIC8vIEJh
Y2svRm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKICAgICB2b2lkIGJhY2tGb3J3YXJkQWRkSXRlbSh1
aW50NjRfdCBpdGVtSUQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDJlZjVmMzcuLmM1ZTIzODggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBSdW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3Ry
aW5nIG1lc3NhZ2UsIFdURjo6U3RyaW5nIGRlZmF1bHRWYWx1ZSkgLT4gKFdURjo6U3RyaW5nIHJl
c3VsdCkKICAgICBNb3VzZURpZE1vdmVPdmVyRWxlbWVudCh1aW50MzJfdCBtb2RpZmllcnMsIFdl
YktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpOwogICAgIENv
bnRlbnRzU2l6ZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6SW50U2l6ZSBuZXdT
aXplKQorICAgIERpZENoYW5nZVZpZXdwb3J0RGF0YShXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50
cyBhcmd1bWVudHMpCiAgICAgRGlkUmVjZWl2ZUV2ZW50KHVpbnQzMl90IHR5cGUsIGJvb2wgaGFu
ZGxlZCkKICAgICBEaWRWYWxpZGF0ZU1lbnVJdGVtKFdURjo6U3RyaW5nIGNvbW1hbmROYW1lLCBi
b29sIGlzRW5hYmxlZCwgaW50MzJfdCBzdGF0ZSkKICAgICBTZXRDdXJzb3IoV2ViQ29yZTo6Q3Vy
c29yIGN1cnNvcikKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNw
cCBiL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAppbmRleCBmNTRkYTU3Li44NDkz
ZDZmIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKKysrIGIv
V2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCkBAIC01NzIsNiArNTcyLDEwIEBAIHZv
aWQgV2ViVmlldzo6c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKQogICAg
IDo6U2V0Q3Vyc29yKHBsYXRmb3JtQ3Vyc29yKTsKIH0KIAordm9pZCBXZWJWaWV3OjpzZXRWaWV3
cG9ydEFyZ3VtZW50cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpCit7Cit9CisK
IHZvaWQgV2ViVmlldzo6cmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21t
YW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pCiB7CiB9CmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oIGIvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dl
YlZpZXcuaAppbmRleCA2MDI1NGQ1Li4wMDFlYmIwIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJv
Y2Vzcy93aW4vV2ViVmlldy5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgK
QEAgLTk1LDYgKzk1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKGJv
b2wgZGlyZWN0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3QgV1RG
OjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJz
b3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZXdwb3J0
QXJndW1lbnRzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CiAgICAgdmlydHVh
bCB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5
PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbGxF
ZGl0Q29tbWFuZHMoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdENvbW1hbmRTdGF0ZShjb25z
dCBXVEY6OlN0cmluZyYsIGJvb2wsIGludCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGMwOTVhZTAuLmYyOTI1
MzggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJEcmF3aW5nQXJl
YS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKKyNpbmNs
dWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCIKQEAgLTU0Niw1ICs1NDcsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TGFzdFNl
dEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiB9CiAjZW5kaWYKIAordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRz
JiBhcmdzKSBjb25zdAoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VWaWV3cG9ydERhdGEoYXJncyks
IG1fcGFnZS0+cGFnZUlEKCkpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCA0MTlhNmM5Li5hZDQ4OGY5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjZGVmaW5lIFdl
YkNocm9tZUNsaWVudF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZUNsaWVudC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xODcsNiArMTg4LDggQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigp
OwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFu
Z2UoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsKKwogICAgIFN0cmlu
ZyBtX2NhY2hlZFRvb2xUaXA7CiAgICAgV2ViUGFnZSogbV9wYWdlOwogfTsKLS0gCjEuNy4xCgo=
</data>
<flag name="review"
          id="60106"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="60128"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>