<?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>73364</bug_id>
          
          <creation_ts>2011-11-29 14:35:27 -0800</creation_ts>
          <short_desc>[Qt][WK2] Expose WebContext as an experimental API and move downloadRequested to it</short_desc>
          <delta_ts>2012-03-30 10:16:50 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>75489</dependson>
          <blocked>73318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jesus Sanchez-Palencia">jesus</reporter>
          <assigned_to name="Jesus Sanchez-Palencia">jesus</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>511112</commentid>
    <comment_count>0</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-11-29 14:35:27 -0800</bug_when>
    <thetext>Downloads are not view-dependent but context-dependent instead. We should expose the WebContext through our experimental set of APIs for the time being and move the signal onDownloadRequested into it as a proof of concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511130</commentid>
    <comment_count>1</comment_count>
      <attachid>117051</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-11-29 14:55:13 -0800</bug_when>
    <thetext>Created attachment 117051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511134</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-29 14:59:06 -0800</bug_when>
    <thetext>Attachment 117051 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebKit/qt/ChangeLog&apos;,...&quot; exit_code: 1

Source/WebKit2/UIProcess/API/qt/qquickwebcontext_p_p.h:36:  q_ptr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebKit2/UIProcess/API/qt/qquickwebcontext_p.h:41:  d_ptr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 16 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>520328</commentid>
    <comment_count>3</comment_count>
      <attachid>117051</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-12-13 13:18:43 -0800</bug_when>
    <thetext>Comment on attachment 117051
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=117051&amp;action=review

Could be a first step. Maybe later this context should be a &quot;global&quot; object.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebcontext_p.h:25
&gt; +#include &lt;QtDeclarative/qquickitem.h&gt;

Should be QtQuick

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebcontext_p.h:32
&gt; +

Unneeded space

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:92
&gt; +

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522183</commentid>
    <comment_count>4</comment_count>
      <attachid>119489</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-12-15 13:13:32 -0800</bug_when>
    <thetext>Created attachment 119489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522186</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-15 13:17:12 -0800</bug_when>
    <thetext>Attachment 119489 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebKit/qt/ChangeLog&apos;,...&quot; exit_code: 1

Source/WebKit2/UIProcess/API/qt/qquickwebcontext_p_p.h:36:  q_ptr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebKit2/UIProcess/API/qt/qquickwebcontext_p.h:40:  d_ptr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 14 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>522189</commentid>
    <comment_count>6</comment_count>
      <attachid>119489</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-12-15 13:19:15 -0800</bug_when>
    <thetext>Comment on attachment 119489
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=119489&amp;action=review

&gt; Source/WebKit2/ChangeLog:10
&gt; +        The download API is the perfect example for this, so thi patch also moves

thi?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523861</commentid>
    <comment_count>7</comment_count>
      <attachid>119489</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-12-19 05:51:25 -0800</bug_when>
    <thetext>Comment on attachment 119489
Patch

I don&apos;t think this is the way we should expose the context, as just another property.

I suppose we _could_ make it a separate entity and move our main webview initialization code to componentComplete(). Then perhaps it would be easier to support an optional _settable_ context property on the view:

WebView {
    id: standaloneView
}

WebContext {
    id: myContext

    onDownloadRequest: { ...}
}

WebView {
    context: myContext
}

WebView {
    id: anotherInstance
    context: myContext
}

What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523878</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-12-19 06:20:29 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 119489 [details])
&gt; I don&apos;t think this is the way we should expose the context, as just another property.
&gt; 
&gt; I suppose we _could_ make it a separate entity and move our main webview initialization code to componentComplete(). Then perhaps it would be easier to support an optional _settable_ context property on the view:
&gt; 
&gt; WebView {
&gt;     id: standaloneView
&gt; }
&gt; 
&gt; WebContext {
&gt;     id: myContext
&gt; 
&gt;     onDownloadRequest: { ...}
&gt; }
&gt; 
&gt; WebView {
&gt;     context: myContext
&gt; }
&gt; 
&gt; WebView {
&gt;     id: anotherInstance
&gt;     context: myContext
&gt; }
&gt; 
&gt; What do you think?

Is that easily possible? Also how are we going to handle page groups in the future etc? I think we need to consider all these things</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532133</commentid>
    <comment_count>9</comment_count>
      <attachid>121654</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-09 06:02:46 -0800</bug_when>
    <thetext>Created attachment 121654
WIP Patch

This is a WIP patch that is in a good shape. I would like to get some &quot;informal&quot; feedback from you guys in order to check if this aligned with your thoughts and if I should keep going or not.

Thanks in advance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532136</commentid>
    <comment_count>10</comment_count>
      <attachid>121656</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-09 06:03:35 -0800</bug_when>
    <thetext>Created attachment 121656
QML test case

Simple QML file to be used as a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532141</commentid>
    <comment_count>11</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-01-09 06:13:32 -0800</bug_when>
    <thetext>Just a few questions (out of curiosity): 

 - What are the use-cases for this api?
 - When will you have more than one WebView?
 - Or more than one webcontext?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532146</commentid>
    <comment_count>12</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-09 06:14:40 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=121654) [details]
&gt; WIP Patch


(In reply to comment #10)
&gt; Created an attachment (id=121656) [details]
&gt; QML test case


Please bare in mind that they work on top of the WIP patch available at https://bugs.webkit.org/show_bug.cgi?id=75489 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532148</commentid>
    <comment_count>13</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-09 06:17:50 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Just a few questions (out of curiosity): 
&gt; 
&gt;  - What are the use-cases for this api?
Having another entry point in our API for non view-dependent stuff, like downloads for instance. In the future, for creating multiple webcontexts.

&gt;  - When will you have more than one WebView?
Snowshoe uses multiple webviews already, for tabs.

&gt;  - Or more than one webcontext?
When we having more than one WebProcess we&apos;ll have more than one webcontext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532172</commentid>
    <comment_count>14</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-01-09 07:06:08 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #11)
&gt; &gt; Just a few questions (out of curiosity): 
&gt; &gt; 
&gt; &gt;  - What are the use-cases for this api?
&gt; Having another entry point in our API for non view-dependent stuff, like downloads for instance. In the future, for creating multiple webcontexts.
&gt; 
&gt; &gt;  - When will you have more than one WebView?
&gt; Snowshoe uses multiple webviews already, for tabs.
&gt; 
&gt; &gt;  - Or more than one webcontext?
&gt; When we having more than one WebProcess we&apos;ll have more than one webcontext.

Ok, that&apos;s more or less what I expected.

Wouldn&apos;t this mean that a single WebView would no longer have onDownloadRequested? 

And what about multiple tabs with multiple web contexts? 

WebView {
    id: firstTab
    context: firstContext
}

WebContext {
    id: firstContext
    onDownloadRequest: {}
}

WebView {
    id: secondTab
    context: secondContext
}

WebContext {
    id: secondContext
    onDownloadRequest: {}
}

You&apos;d want to share the onDownloadRequest handling right? And you wouldn&apos;t statically build these WebContexts in the QML file anyways, you&apos;d manage them dynamically based on tabs opened from other tabs etc? 

I&apos;m not convinced this needs to be QML API. We&apos;re complicating the single-webview case for the build-a-browser-with-muiltiple-tabs-and-multiple-webcontexts-case. 

Is there some other way we can solve this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532224</commentid>
    <comment_count>15</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-09 08:54:05 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Wouldn&apos;t this mean that a single WebView would no longer have onDownloadRequested? 

&gt; I&apos;m not convinced this needs to be QML API. We&apos;re complicating the single-webview case for the build-a-browser-with-muiltiple-tabs-and-multiple-webcontexts-case. 


The simple webview case is working on the same way, as it creates its own QQuickWebContext if none is set. The onDownloadRequested will still be there but through webView.context.onDownloadRequested , instead of webView.experimental.onDownloadRequested.


&gt; You&apos;d want to share the onDownloadRequest handling right? And you wouldn&apos;t statically build these WebContexts in the QML file anyways, you&apos;d manage them dynamically based on tabs opened from other tabs etc?

I&apos;m not sure I&apos;m following you here, sorry. =/


Thanks for the questions and feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532226</commentid>
    <comment_count>16</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-01-09 09:01:58 -0800</bug_when>
    <thetext>Other concerns:
1. It&apos;s weird to have the context exposed as a visual Component:
- it requires another visual Item as it&apos;s parent, not possible to handle it on the C++ side.
- sharing the context across web views will be difficult, it will require it to be stored in an Item property and created dynamically if we want one per tab.
Maybe have it as a straight QObject creatable through JS?

2. The context has to play well with the way we will handle the createNewPage signal to be able to pass it between pages that have JS affinities. Ideally this should be done automatically, but if we expose it this could be difficult.

3. Trying to have one context per tab is going to force the developer to manage the connections between the context and its download manager to make sure that all contexts are connected to the download manager and that the connection isn&apos;t duplicated through intermediates if a context is used in more than one tab.

Overall I don&apos;t have a better solution, but I think that the real problem is that download requests lost the association to their page once on the UI process side. WebView { onDownloadRequested: ... } would make perfect sense. For all those reasons it also feels to me that the WebContext is too low level to be exposed in QML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534971</commentid>
    <comment_count>17</comment_count>
      <attachid>122270</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-12 11:00:01 -0800</bug_when>
    <thetext>Created attachment 122270
WIP - rebased patch after updates on componentComplete bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535026</commentid>
    <comment_count>18</comment_count>
      <attachid>122280</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-12 11:58:22 -0800</bug_when>
    <thetext>Created attachment 122280
WIP - rebased after latest bug fixing on componentComplete</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592249</commentid>
    <comment_count>19</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-03-30 10:16:50 -0700</bug_when>
    <thetext>We decided to not expose WebContext in QML for now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117051</attachid>
            <date>2011-11-29 14:55:13 -0800</date>
            <delta_ts>2011-12-15 13:13:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73364-20111129195454.patch</filename>
            <type>text/plain</type>
            <size>17586</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGUxMDE3MTc2ZTEx
NjEwN2I3ZWJmYzJlOTRiY2JhZmY0MzBkZTA1MjguLjAwMjcyOTQ5MzYzMGFiZjlkODVlMWY4MGUx
NjJiMjZkYTdmYmI5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTEt
MjkgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFtRdF1bV0syXSBFeHBvc2UgV2ViQ29udGV4dCBhcyBhbiBleHBlcmltZW50
YWwgQVBJIGFuZCBtb3ZlIGRvd25sb2FkUmVxdWVzdGVkIHRvIGl0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM2NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGVjbGFyYXRpdmUvZXhwZXJpbWVudGFs
L3BsdWdpbi5jcHA6CisgICAgICAgIFJlZ2lzdGVyaW5nIFFRdWlja1dlYkNvbnRleHQgYXMgbmV3
IFFNTCB0eXBlLgorCiAyMDExLTExLTI5ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIE1ha2UgV2ViS2l0L3F0IGJ1aWxkIHdpdGggVjgg
YW5kIFF0IDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiMzhjYWZiYjlkM2ZiNzEyMmRkMjZmNjYwMjkwMmMwZDQ2
NDlmNzMyLi4yNzQ5YmIyOTdhZTkzZDg5ZjAyZDIzNWU4OThiODI0NjJjNDFmOTdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTEtMjkgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEg
IDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBFeHBv
c2UgV2ViQ29udGV4dCBhcyBhbiBleHBlcmltZW50YWwgQVBJIGFuZCBtb3ZlIGRvd25sb2FkUmVx
dWVzdGVkIHRvIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MzM2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFFRdWlja1dlYkNvbnRleHQgd2lsbCBiZSBleHBvc2VkIGluIHFtbCB0aHJvdWdoIHRoZSBl
eHBlcmltZW50YWwKKyAgICAgICAgZXh0ZW5zaW9uIGFuZCB3aWxsIGNvbmNlbnRyYXRlIGV2ZXJ5
dGhpbmcgdGhhdCBpcyBub3Qgdmlldy9wYWdlIGRlcGVuZGVudC4KKyAgICAgICAgVGhlIGRvd25s
b2FkIEFQSSBpcyB0aGUgcGVyZmVjdCBleGFtcGxlIGZvciB0aGlzLCBzbyB0aGkgcGF0Y2ggYWxz
byBtb3ZlcworICAgICAgICB0aGUgc2lnbmFsIG9uRG93bmxvYWRSZXF1ZXN0ZWQgaW50byBjb250
ZXh0LgorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlj
a1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmNv
bnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZG93bmxvYWQucW1s
OgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdERvd25sb2FkTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlF0RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZEZhaWxlZCk6CisgICAgICAgICog
VUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFF0V2ViUGFnZVByb3h5
OjpkaWRSZWNlaXZlRG93bmxvYWRSZXNwb25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChRdFdlYlBhZ2VQcm94eTo6d2ViQ29udGV4dCk6CisK
IDIwMTEtMTEtMjkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBEZWNvcmF0ZSBhZG9wdFdLIHdpdGggV0FSTl9VTlVTRURfUkVUVVJOCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9wbHVnaW4uY3BwIGIv
U291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9leHBlcmltZW50YWwvcGx1Z2luLmNwcAppbmRl
eCA4NjMxMmUxMDU5M2NmODFlOTRjMjQ4MTc5OGU4YWZhMWUwMGZmNDBlLi41ZjRhMThkMzQwYzdh
OTY5MTUwMDBjNzVkZmUyZGNmMmQ2NTZkOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9wbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvZGVjbGFyYXRpdmUvZXhwZXJpbWVudGFsL3BsdWdpbi5jcHAKQEAgLTE3LDYgKzE3LDcgQEAK
ICAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICovCiAKKyNpbmNsdWRlICJxcXVpY2t3
ZWJjb250ZXh0X3AuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJx
cXVpY2t3ZWJ2aWV3X3AuaCIKICNpbmNsdWRlICJxd2ViZG93bmxvYWRpdGVtX3AuaCIKQEAgLTQx
LDYgKzQyLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgUV9BU1NFUlQoUUxhdGluMVN0cmlu
Zyh1cmkpID09IFFMYXRpbjFTdHJpbmcoIlF0V2ViS2l0LmV4cGVyaW1lbnRhbCIpKTsKIAorICAg
ICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRUXVpY2tXZWJDb250ZXh0Pih1cmksIDMs
IDAsICJXZWJDb250ZXh0IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5z
dGFuY2Ugb2YgV2ViQ29udGV4dCIpKTsKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5
cGU8UVdlYkRvd25sb2FkSXRlbT4odXJpLCAzLCAwLCAiRG93bmxvYWRJdGVtIiwgUU9iamVjdDo6
dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgRG93bmxvYWRJdGVtIikpOwog
ICAgICAgICBxbWxSZWdpc3RlckV4dGVuZGVkVHlwZTxRUXVpY2tXZWJWaWV3LCBRUXVpY2tXZWJW
aWV3RXhwZXJpbWVudGFsRXh0ZW5zaW9uPih1cmksIDMsIDAsICJXZWJWaWV3Iik7CiAgICAgICAg
IHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw+KHVy
aSwgMywgMCwgIlFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwiLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggOTRk
OTEzOTc0ODZlM2QwYzZjYjQ3NzBkNjc4ZmFlMmJkMmM1MjNlNC4uYTViMjY0OWZlM2M0ZWNiNjA3
NTQyMzllYmQ3ODZkOTk0OTZmMTY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xNzQsNiArMTc0LDggQEAg
SEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgg
XAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wLmggXAogICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3AuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJjb250ZXh0X3AuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJj
b250ZXh0X3BfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcC5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmggXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggXApAQCAtNDgyLDYgKzQ4NCw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwIFwKICAgICBVSVBy
b2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
ZG93bmxvYWRpdGVtLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJjb250ZXh0
LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9x
d2VicHJlZmVyZW5jZXMuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYmNvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3OTg2YzRkODNlYzZhZDE0
YzU4NTNlNzRiZWE2MzZjM2NkOGM5MTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHQuY3BwCkBAIC0wLDAgKzEsNDQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAicXF1aWNr
d2ViY29udGV4dF9wLmgiCisKKyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0X3BfcC5oIgorCisj
aW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9RUXVpY2tJdGVtPgorCitRUXVpY2tXZWJDb250ZXh0UHJp
dmF0ZTo6UVF1aWNrV2ViQ29udGV4dFByaXZhdGUoUVF1aWNrV2ViQ29udGV4dCogd2ViQ29udGV4
dCkKKyAgICA6IHFfcHRyKHdlYkNvbnRleHQpCisgICAgLCBjb250ZXh0KDApCit7Cit9CisKK1FR
dWlja1dlYkNvbnRleHQ6OlFRdWlja1dlYkNvbnRleHQoUVF1aWNrSXRlbSogcGFyZW50KQorICAg
IDogUU9iamVjdChwYXJlbnQpCisgICAgLCBkX3B0cihuZXcgUVF1aWNrV2ViQ29udGV4dFByaXZh
dGUodGhpcykpCit7Cit9CisKK1FRdWlja1dlYkNvbnRleHQ6On5RUXVpY2tXZWJDb250ZXh0KCkK
K3sKK30KKworI2luY2x1ZGUgIm1vY19xcXVpY2t3ZWJjb250ZXh0X3AuY3BwIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJjb250ZXh0X3AuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dF9wLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmQ4ZDY4NGUzZmY3ZTYzNzllNmUwYmFhYTVjOTBkZmUyOTY5Y2NjMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29u
dGV4dF9wLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgcXF1
aWNrd2ViY29udGV4dF9wX2gKKyNkZWZpbmUgcXF1aWNrd2ViY29udGV4dF9wX2gKKworI2luY2x1
ZGUgInF3ZWJraXRnbG9iYWwuaCIKKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FxdWlja2l0ZW0u
aD4KKworY2xhc3MgUVF1aWNrV2ViQ29udGV4dFByaXZhdGU7CitjbGFzcyBRV2ViRG93bmxvYWRJ
dGVtOworCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJDb250ZXh0IDogcHVibGljIFFP
YmplY3QgeworICAgIFFfT0JKRUNUCisKK3B1YmxpYzoKKyAgICBRUXVpY2tXZWJDb250ZXh0KFFR
dWlja0l0ZW0qIHBhcmVudCk7CisgICAgdmlydHVhbCB+UVF1aWNrV2ViQ29udGV4dCgpOworCitR
X1NJR05BTFM6CisgICAgdm9pZCBkb3dubG9hZFJlcXVlc3RlZChRV2ViRG93bmxvYWRJdGVtKiBk
b3dubG9hZEl0ZW0pOworCitwcml2YXRlOgorICAgIFFRdWlja1dlYkNvbnRleHRQcml2YXRlKiBk
X3B0cjsKKyAgICBRX0RFQ0xBUkVfUFJJVkFURShRUXVpY2tXZWJDb250ZXh0KQorCisgICAgZnJp
ZW5kIGNsYXNzIFFRdWlja1dlYlZpZXdQcml2YXRlOworICAgIGZyaWVuZCBjbGFzcyBRdFdlYlBh
Z2VQcm94eTsKK307CisKKyNlbmRpZiAvLyBxcXVpY2t3ZWJjb250ZXh0X3BfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJjb250ZXh0X3BfcC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJjb250ZXh0X3BfcC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjlmZWVjMGY3Nzg2NzA1NWEwNmUzYzVlMWM1YWMwZDgzYTQ4NzNlZTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YmNvbnRleHRfcF9wLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9n
cmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5k
ZWYgcXF1aWNrd2ViY29udGV4dF9wX3BfaAorI2RlZmluZSBxcXVpY2t3ZWJjb250ZXh0X3BfcF9o
CisKKyNpbmNsdWRlICJRdFdlYkNvbnRleHQuaCIKKworI2luY2x1ZGUgInFxdWlja3dlYmNvbnRl
eHRfcC5oIgorCitjbGFzcyBRUXVpY2tXZWJDb250ZXh0UHJpdmF0ZSB7CisgICAgUV9ERUNMQVJF
X1BVQkxJQyhRUXVpY2tXZWJDb250ZXh0KQorICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTsKKworcHVibGljOgorICAgIFFRdWlja1dlYkNvbnRleHRQcml2YXRlKFFRdWlja1dl
YkNvbnRleHQqKTsKKworcHJpdmF0ZToKKyAgICBRUXVpY2tXZWJDb250ZXh0KiBxX3B0cjsKKyAg
ICBXZWJLaXQ6OlF0V2ViQ29udGV4dCogY29udGV4dDsKK307CisjZW5kaWYgLy8gcXF1aWNrd2Vi
Y29udGV4dF9wX3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHAKaW5kZXggZjBmYTY2OGExZmMwZjZjOGVjODVhMzIyYmFhODBhY2E3NDVk
NjAwZC4uYmVhNjlmMmFmNGM3OTdhZmZkN2QyYWJlMmUwNjhkNmJkZTg0ZGY5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC0y
Nyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUHJl
ZmVyZW5jZXMuaCIKIAorI2luY2x1ZGUgInFxdWlja3dlYmNvbnRleHRfcC5oIgorI2luY2x1ZGUg
InFxdWlja3dlYmNvbnRleHRfcF9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9wX3AuaCIK
ICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3BfcC5oIgogI2luY2x1ZGUgInF3ZWJwcmVmZXJlbmNl
c19wX3AuaCIKQEAgLTQzLDYgKzQ1LDcgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dl
YlZpZXdQcml2YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0LCBXS0NvbnRleHRSZWYKICAgICAs
IHByb21wdERpYWxvZygwKQogICAgICwgcG9zdFRyYW5zaXRpb25TdGF0ZShhZG9wdFB0cihuZXcg
UG9zdFRyYW5zaXRpb25TdGF0ZSh0aGlzKSkpCiAgICAgLCB0cmFuc2l0aW9uaW5nVG9OZXdQYWdl
KGZhbHNlKQorICAgICwgbV9jb250ZXh0KG5ldyBRUXVpY2tXZWJDb250ZXh0KHZpZXdwb3J0KSkK
IHsKICAgICB2aWV3cG9ydC0+c2V0RmxhZ3MoUVF1aWNrSXRlbTo6SXRlbUNsaXBzQ2hpbGRyZW5U
b1NoYXBlKTsKIApAQCAtNjQsNiArNjcsOCBAQCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNr
V2ViVmlld1ByaXZhdGUoUVF1aWNrV2ViVmlldyogdmlld3BvcnQsIFdLQ29udGV4dFJlZgogCiAg
ICAgLy8gQ3JlYXRlcyBhIHBhZ2Ugd2l0aCB0aGUgcGFnZSBjcmVhdGlvbiBwYXJhbWV0ZXJzLgog
ICAgIHBhZ2VQcm94eS0+aW5pdChldmVudEhhbmRsZXIuZGF0YSgpKTsKKworICAgIG1fY29udGV4
dC0+ZF9wdHItPmNvbnRleHQgPSBwYWdlUHJveHktPndlYkNvbnRleHQoKTsKIH0KIAogdm9pZCBR
UXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZW5hYmxlTW91c2VFdmVudHMoKQpAQCAtNDY3LDYgKzQ3Miwx
MSBAQCBib29sIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnVzZVRyYWRpdGlvbmFsRGVza3Rv
cEJlaGF2aW91cigpIGNvbnN0CiAgICAgcmV0dXJuIGQtPnVzZVRyYWRpdGlvbmFsRGVza3RvcEJl
aGF2aW91cjsKIH0KIAorUVF1aWNrV2ViQ29udGV4dCogUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRh
bDo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRfcHRyLT5tX2NvbnRleHQ7Cit9CisK
IFFRdWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXcoUVF1aWNrSXRlbSogcGFyZW50KQogICAgIDog
UVF1aWNrSXRlbShwYXJlbnQpCiAgICAgLCBkX3B0cihuZXcgUVF1aWNrV2ViVmlld1ByaXZhdGUo
dGhpcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaAppbmRleCBmN2U3ZWUxZjMyYzJhMWY2MTY4ZGU2MjA2ZjdiMDM5N2M4MmNkZjAwLi5j
ZjgzMWJkYjFiMDJlZjk1ZGFmMmMzYjY1MjAxMzE0MWQ5NzhmZmZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTI1LDYgKzI1
LDggQEAKICNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FxdWlja2l0ZW0uaD4KIAogY2xhc3MgUURl
Y2xhcmF0aXZlQ29tcG9uZW50OworY2xhc3MgUVF1aWNrV2ViQ29udGV4dDsKK2NsYXNzIFFRdWlj
a1dlYkNvbnRleHRQcml2YXRlOwogY2xhc3MgUVF1aWNrV2ViUGFnZTsKIGNsYXNzIFFRdWlja1dl
YlZpZXdBdHRhY2hlZDsKIGNsYXNzIFFRdWlja1dlYlZpZXdQcml2YXRlOwpAQCAtMTcwLDYgKzE3
Miw3IEBAIGNsYXNzIFFXRUJLSVRfRVhQT1JUIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwgOiBw
dWJsaWMgUU9iamVjdCB7CiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIGNv
bmZpcm1EaWFsb2cgUkVBRCBjb25maXJtRGlhbG9nIFdSSVRFIHNldENvbmZpcm1EaWFsb2cgTk9U
SUZZIGNvbmZpcm1EaWFsb2dDaGFuZ2VkKQogICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlQ29t
cG9uZW50KiBwcm9tcHREaWFsb2cgUkVBRCBwcm9tcHREaWFsb2cgV1JJVEUgc2V0UHJvbXB0RGlh
bG9nIE5PVElGWSBwcm9tcHREaWFsb2dDaGFuZ2VkKQogICAgIFFfUFJPUEVSVFkoYm9vbCB1c2VU
cmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIgUkVBRCB1c2VUcmFkaXRpb25hbERlc2t0b3BCZWhh
dmlvdXIgV1JJVEUgc2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKQorICAgIFFfUFJP
UEVSVFkoUVF1aWNrV2ViQ29udGV4dCogY29udGV4dCBSRUFEIGNvbnRleHQgQ09OU1RBTlQgRklO
QUwpCiAKIHB1YmxpYzoKICAgICBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsKFFRdWlja1dlYlZp
ZXcqIHdlYlZpZXcpOwpAQCAtMTg0LDYgKzE4Nyw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgdXNl
VHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKCkgY29uc3Q7CiAKKyAgICBRUXVpY2tXZWJDb250
ZXh0KiBjb250ZXh0KCkgY29uc3Q7CisKIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgc2V0VXNl
VHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKGJvb2wgZW5hYmxlKTsKIApAQCAtMTkxLDcgKzE5
Niw2IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIGFsZXJ0RGlhbG9nQ2hhbmdlZCgpOwogICAgIHZv
aWQgY29uZmlybURpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIHByb21wdERpYWxvZ0NoYW5nZWQo
KTsKLSAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFXZWJEb3dubG9hZEl0ZW0qIGRvd25sb2Fk
SXRlbSk7CiAKIHByaXZhdGU6CiAgICAgUVF1aWNrV2ViVmlldyogcV9wdHI7CkBAIC0yMDIsNSAr
MjA2LDQgQEAgcHJpdmF0ZToKICAgICBRX0RFQ0xBUkVfUFJJVkFURShRUXVpY2tXZWJWaWV3KQog
ICAgIFFfREVDTEFSRV9QVUJMSUMoUVF1aWNrV2ViVmlldykKIH07Ci0KICNlbmRpZiAvLyBxcXVp
Y2t3ZWJ2aWV3X3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IGU2Y2E1NTNjMDdkNDM0YzA0MGNhNGIyM2VlMTFkNWJh
NDgxZjUzZDQuLjc1MzE3MGVlYWI0ZDYyZjg2NzQzMjU2OWMxNzQyNWM3NWMwY2YzMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3Au
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9w
LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJRdFdlYlBhZ2VQcm94eS5oIgogI2luY2x1
ZGUgIlF0V2ViUGFnZVVJQ2xpZW50LmgiCiAKKyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0X3Au
aCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdl
X3AuaCIKIApAQCAtMTM1LDYgKzEzNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1c2VUcmFkaXRp
b25hbERlc2t0b3BCZWhhdmlvdXI7CiAgICAgUUZpbGVEaWFsb2cqIGZpbGVEaWFsb2c7CiAgICAg
V0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKLX07
CiAKKyAgICBRUXVpY2tXZWJDb250ZXh0KiBtX2NvbnRleHQ7Cit9OwogI2VuZGlmIC8vIHFxdWlj
a3dlYnZpZXdfcF9wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZG93bmxvYWQucW1sIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9kb3dubG9hZC5x
bWwKaW5kZXggNjE1YmJiZmY5NDJlMjFiZjQ4Y2VhMzBiZWQ4ZGU5MDkwNGVjNjBmMC4uYjQwMWM4
ZWI3ODYyNzg2NjBjZjljMzY4MmQ4YWQ2NTkwOWI1NzZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9kb3dubG9h
ZC5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0
cy9XZWJWaWV3L3RzdF9kb3dubG9hZC5xbWwKQEAgLTE0LDExICsxNCwxMSBAQCBXZWJWaWV3IHsK
IAogICAgIFNpZ25hbFNweSB7CiAgICAgICAgIGlkOiBzcHkKLSAgICAgICAgdGFyZ2V0OiBleHBl
cmltZW50YWwKKyAgICAgICAgdGFyZ2V0OiBleHBlcmltZW50YWwuY29udGV4dAogICAgICAgICBz
aWduYWxOYW1lOiAiZG93bmxvYWRSZXF1ZXN0ZWQiCiAgICAgfQogCi0gICAgZXhwZXJpbWVudGFs
Lm9uRG93bmxvYWRSZXF1ZXN0ZWQ6IHsKKyAgICBleHBlcmltZW50YWwuY29udGV4dC5vbkRvd25s
b2FkUmVxdWVzdGVkOiB7CiAgICAgICAgIGRvd25sb2FkLnRhcmdldCA9IGRvd25sb2FkSXRlbQog
ICAgICAgICBleHBlY3RlZExlbmd0aCA9IGRvd25sb2FkSXRlbS5leHBlY3RlZENvbnRlbnRMZW5n
dGgKICAgICAgICAgZG93bmxvYWRJdGVtLmRlc3RpbmF0aW9uUGF0aCA9IGRvd25sb2FkSXRlbS5z
dWdnZXN0ZWRGaWxlbmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0RG93bmxvYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERv
d25sb2FkTWFuYWdlci5jcHAKaW5kZXggNjg4M2NjNDI5MjNlZjVlZmU1MThlZTFmNzExNjc3YzMy
YzQzM2UxOC4uOTRkMjUwZWVhZTUwNjgyZmQxYTExYTZmMDg5YTUzMDUzYmIxYTg3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuY3BwCkBA
IC04OSw2ICs4OSw3IEBAIHZvaWQgUXREb3dubG9hZE1hbmFnZXI6OmRvd25sb2FkRmFpbGVkKERv
d25sb2FkUHJveHkqIGRvd25sb2FkLCBjb25zdCBRdFdlYkVycm9yCiAgICAgLy8gV2lsbCBiZSBj
YWxsZWQgd2hlbiBkb3dubG9hZCBmYWlscyBvciBpcyBhYm9ydGVkLgogICAgIFFXZWJEb3dubG9h
ZEl0ZW0qIGRvd25sb2FkSXRlbSA9IG1fZG93bmxvYWRzLnRha2UoZG93bmxvYWQtPmRvd25sb2Fk
SUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkSXRlbSk7CisKICAgICBlbWl0IGRvd25sb2FkSXRl
bS0+ZmFpbGVkKGVycm9yLmVycm9yQ29kZUFzRG93bmxvYWRFcnJvcigpLCBlcnJvci51cmwoKSwg
ZXJyb3IuZGVzY3JpcHRpb24oKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRXZWJQYWdlUHJveHkuY3BwCmluZGV4IDRhYzA0ZjRkZmRiZWI4ODQ0YTQ0MzEzNTZhMjdi
ZTAzZjNhYjRmNjIuLjVkZWZjN2FiYTNhYjI3MDMyNDU0ZmE0ODM1MjQ3ZWI2MTk0NDU2NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcApAQCAt
NTIxLDcgKzUyMSw3IEBAIHZvaWQgUXRXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVEb3dubG9hZFJl
c3BvbnNlKFFXZWJEb3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgUURlY2xhcmF0aXZlRW5naW5lOjpzZXRPYmplY3RPd25lcnNoaXAoZG93bmxvYWRJdGVt
LCBRRGVjbGFyYXRpdmVFbmdpbmU6OkphdmFTY3JpcHRPd25lcnNoaXApOwotICAgIGVtaXQgbV9x
bWxXZWJWaWV3LT5leHBlcmltZW50YWwoKS0+ZG93bmxvYWRSZXF1ZXN0ZWQoZG93bmxvYWRJdGVt
KTsKKyAgICBlbWl0IG1fcW1sV2ViVmlldy0+ZXhwZXJpbWVudGFsKCktPmNvbnRleHQoKS0+ZG93
bmxvYWRSZXF1ZXN0ZWQoZG93bmxvYWRJdGVtKTsKIH0KIAogUGFzc093blB0cjxEcmF3aW5nQXJl
YVByb3h5PiBRdFdlYlBhZ2VQcm94eTo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCmluZGV4IDMzMTcwNDQ1NGUz
YzljMWZkMDQxMjY1YjA4NjgxMThlMTk0YjQzMTIuLmQ4ODljNTg4ZDc2N2VkYTVjMWViOGU2ZTcz
M2UwNDg4MDEyNjM2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFdlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VQcm94eS5oCkBAIC0xODgsNiArMTg4LDggQEAgcHVibGljOgogCiAgICAgUXRXZWJQYWdlRXZl
bnRIYW5kbGVyKiBldmVudEhhbmRsZXIoKSB7IHJldHVybiBtX2V2ZW50SGFuZGxlcjsgfQogCisg
ICAgUXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9
CisKIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgZGlkUmVjZWl2ZURvd25sb2FkUmVzcG9uc2Uo
UVdlYkRvd25sb2FkSXRlbSogZG93bmxvYWRJdGVtKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL3F0
d2Via2l0LWV4cG9ydC5tYXAgYi9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAppbmRleCBhNDI2
MjAzMDJiYTBiYTIwZjhkZjgxZTY3NzhlYmM0YTU4NGY2MTU1Li42MjU2ZmU3ODE2N2I0NmVhOTM4
Mzc4MGEwODUxOGY0NjI1YWVjNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0
Lm1hcAorKysgYi9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcApAQCAtMTI3LDYgKzEyNyw5IEBA
IHF3a18xLjAgewogICAgICAgICAqUVF1aWNrV2ViUGFnZTsKICAgICAgICAgbm9uLXZpcnR1YWw/
dGh1bms/dG8/UVF1aWNrV2ViUGFnZSo7CiAgICAgICAgIFFRdWlja1dlYlBhZ2U6Oio7CisgICAg
ICAgICpRUXVpY2tXZWJDb250ZXh0OworICAgICAgICBub24tdmlydHVhbD90aHVuaz90bz9RUXVp
Y2tXZWJDb250ZXh0KjsKKyAgICAgICAgUVF1aWNrV2ViQ29udGV4dDo6KjsKIAogICAgICAgICAj
IFdlYktpdCAyIEMgQVBJIG1hbmdsZWQgaW4gQysrCiAgICAgICAgIFdLU3RyaW5nQ29weVFTdHJp
bmcqOwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDA0MGZlZmUyOWVk
MDFmOTcxYjI4ZmRjYzVlYmQzNmRhZDQ4MzBhMWEuLjIyNmVjYzAyMTE4OGI0ZjIxMmFjOTBhODM5
NmJhYjlhYTVlZGQ4MDcgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxMS0xMS0yOSAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3Vz
LnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XVtXSzJdIEV4cG9zZSBXZWJD
b250ZXh0IGFzIGFuIGV4cGVyaW1lbnRhbCBBUEkgYW5kIG1vdmUgZG93bmxvYWRSZXF1ZXN0ZWQg
dG8gaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcz
MzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhw
b3J0aW5nIG5lZWRlZCBRTUwgc3ltYm9scy4KKworICAgICAgICAqIFNvdXJjZS9xdHdlYmtpdC1l
eHBvcnQubWFwOgorCiAyMDExLTExLTI5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBoaWRlIFdlYkF1ZGlvIGJ1aWxkIG9wdGlvbiB1bnRp
bCBzdXBwb3J0IGZvciBGRlRXIGlzIHJlbW92ZWQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119489</attachid>
            <date>2011-12-15 13:13:32 -0800</date>
            <delta_ts>2012-01-09 06:02:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73364-20111215181318.patch</filename>
            <type>text/plain</type>
            <size>16785</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyOTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDYxZjhhNTgwODU4
YjljOTVlY2VjODI2MGE2ODViZDNhZDY1OWNjOTguLjJhZGYzYWZlYmI5ZDYxN2RjODAyNmIxMGNh
M2ZlMTA3ZWFiNjZkNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTEt
MjkgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFtRdF1bV0syXSBFeHBvc2UgV2ViQ29udGV4dCBhcyBhbiBleHBlcmltZW50
YWwgQVBJIGFuZCBtb3ZlIGRvd25sb2FkUmVxdWVzdGVkIHRvIGl0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM2NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGVjbGFyYXRpdmUvZXhwZXJpbWVudGFs
L3BsdWdpbi5jcHA6CisgICAgICAgIFJlZ2lzdGVyaW5nIFFRdWlja1dlYkNvbnRleHQgYXMgbmV3
IFFNTCB0eXBlLgorCiAyMDExLTEyLTE0ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVz
dGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEdldCByaWQgb2YgbGF5ZXJpbmcgdmlvbGF0
aW9uIGluIFBsdWdpblZpZXdRdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg3NWMxYTM5MGFhOTI5NTUxMDU0Zjkw
MjVjMzY4N2VkMGI5NWVkOTcuLjA1MWRjOTBiZjhmMzE1NjVmOTBmZWU3MGJlYzY5Njg2NTU4NTZh
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMS0xMi0xNSAgSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0
XVtXSzJdIEV4cG9zZSBXZWJDb250ZXh0IGFzIGFuIGV4cGVyaW1lbnRhbCBBUEkgYW5kIG1vdmUg
ZG93bmxvYWRSZXF1ZXN0ZWQgdG8gaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczMzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUVF1aWNrV2ViQ29udGV4dCB3aWxsIGJlIGV4cG9zZWQgaW4gcW1sIHRo
cm91Z2ggdGhlIGV4cGVyaW1lbnRhbAorICAgICAgICBleHRlbnNpb24gYW5kIHdpbGwgY29uY2Vu
dHJhdGUgZXZlcnl0aGluZyB0aGF0IGlzIG5vdCB2aWV3L3BhZ2UgZGVwZW5kZW50LgorICAgICAg
ICBUaGUgZG93bmxvYWQgQVBJIGlzIHRoZSBwZXJmZWN0IGV4YW1wbGUgZm9yIHRoaXMsIHNvIHRo
aSBwYXRjaCBhbHNvIG1vdmVzCisgICAgICAgIHRoZSBzaWduYWwgb25Eb3dubG9hZFJlcXVlc3Rl
ZCBpbnRvIGNvbnRleHQuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJp
dmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0V4cGVy
aW1lbnRhbDo6Y29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9k
b3dubG9hZC5xbWw6CisKIDIwMTEtMTItMTUgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rh
dm8ubm9yb25oYUBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIE5ldyBBUEkgdGVzdCBm
b3IgV2luZG93UHJvcGVydGllcyBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9k
ZWNsYXJhdGl2ZS9leHBlcmltZW50YWwvcGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvZGVj
bGFyYXRpdmUvZXhwZXJpbWVudGFsL3BsdWdpbi5jcHAKaW5kZXggZDg4MWViODdmZjVmNmM2YTY5
ODkxYTcwZTlhNGZiNzU0OTZkOGEwOC4uZjEwYTc5OGQyZDc1ZGQ3NTQxYmQ0YjE3YzQ2YmFmODQ3
YTVhNzhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9leHBlcmlt
ZW50YWwvcGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL2V4cGVy
aW1lbnRhbC9wbHVnaW4uY3BwCkBAIC0xNyw2ICsxNyw3IEBACiAgICAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCiAqLwogCisjaW5jbHVkZSAicXF1aWNrd2ViY29udGV4dF9wLmgiCiAjaW5j
bHVkZSAicXF1aWNrd2VicGFnZV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAj
aW5jbHVkZSAicXdlYmRvd25sb2FkaXRlbV9wLmgiCkBAIC00NCw2ICs0NSw3IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIFFfQVNTRVJUKFFMYXRpbjFTdHJpbmcodXJpKSA9PSBRTGF0aW4xU3Ry
aW5nKCJRdFdlYktpdC5leHBlcmltZW50YWwiKSk7CiAKKyAgICAgICAgcW1sUmVnaXN0ZXJVbmNy
ZWF0YWJsZVR5cGU8UVF1aWNrV2ViQ29udGV4dD4odXJpLCAzLCAwLCAiV2ViQ29udGV4dCIsIFFP
YmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFdlYkNvbnRleHQi
KSk7CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJEb3dubG9hZEl0ZW0+
KHVyaSwgMywgMCwgIkRvd25sb2FkSXRlbSIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNl
cGFyYXRlIGluc3RhbmNlIG9mIERvd25sb2FkSXRlbSIpKTsKICAgICAgICAgcW1sUmVnaXN0ZXJV
bmNyZWF0YWJsZVR5cGU8UVdlYk5hdmlnYXRpb25MaXN0TW9kZWw+KHVyaSwgMywgMCwgIk5hdmln
YXRpb25MaXN0TW9kZWwiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0
YW5jZSBvZiBOYXZpZ2F0aW9uTGlzdE1vZGVsIikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3Jl
YXRhYmxlVHlwZTxRV2ViTmF2aWdhdGlvbkhpc3Rvcnk+KHVyaSwgMywgMCwgIk5hdmlnYXRpb25I
aXN0b3J5IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2Yg
TmF2aWdhdGlvbkhpc3RvcnkiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCA1OWFiYjhmOTdmZDc4MDg5OGQ0
OTIzNWQ2ODI2NmY2OTQ1NjliN2VkLi4xNzIxZjMzYWExYzVjMWY3NWFjMjM2Y2NiMDEyNDhmNzU2
OTdhM2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE3OCw2ICsxNzgsOCBAQCBIRUFERVJTICs9IFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1fcF9wLmggXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9x
dC9xd2VibmF2aWdhdGlvbnJlcXVlc3RfcC5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYmNvbnRleHRfcC5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHRf
cF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wLmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9x
dC9xd2VibmF2aWdhdGlvbmhpc3RvcnlfcC5oIFwKQEAgLTUwMCw2ICs1MDIsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0LmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJjb250ZXh0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJw
YWdlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3RvcnkuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJmNDRhOTRiZTU0NmYyOTQ2NjRmMWQyMzlhNmU0OTJkNDhkODJlOWEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRl
eHQuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAicXF1aWNrd2ViY29udGV4dF9wLmgiCisKKyNpbmNsdWRlICJxcXVp
Y2t3ZWJjb250ZXh0X3BfcC5oIgorCisjaW5jbHVkZSA8UXRRdWljay9RUXVpY2tJdGVtPgorCitR
UXVpY2tXZWJDb250ZXh0UHJpdmF0ZTo6UVF1aWNrV2ViQ29udGV4dFByaXZhdGUoUVF1aWNrV2Vi
Q29udGV4dCogd2ViQ29udGV4dCkKKyAgICA6IHFfcHRyKHdlYkNvbnRleHQpCisgICAgLCBjb250
ZXh0KDApCit7Cit9CisKK1FRdWlja1dlYkNvbnRleHQ6OlFRdWlja1dlYkNvbnRleHQoUVF1aWNr
SXRlbSogcGFyZW50KQorICAgIDogUU9iamVjdChwYXJlbnQpCisgICAgLCBkX3B0cihuZXcgUVF1
aWNrV2ViQ29udGV4dFByaXZhdGUodGhpcykpCit7Cit9CisKK1FRdWlja1dlYkNvbnRleHQ6On5R
UXVpY2tXZWJDb250ZXh0KCkKK3sKK30KKworI2luY2x1ZGUgIm1vY19xcXVpY2t3ZWJjb250ZXh0
X3AuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJjb250ZXh0X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2ViY29udGV4dF9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFhZDI2MjE0NTg4NWNhZDc2MDZhZDEwN2I3ZGEx
NzkwZTlhYmU4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2ViY29udGV4dF9wLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBw
cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgor
ICovCisKKyNpZm5kZWYgcXF1aWNrd2ViY29udGV4dF9wX2gKKyNkZWZpbmUgcXF1aWNrd2ViY29u
dGV4dF9wX2gKKworI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKKyNpbmNsdWRlIDxRdFF1aWNr
L3FxdWlja2l0ZW0uaD4KKworY2xhc3MgUVF1aWNrV2ViQ29udGV4dFByaXZhdGU7CitjbGFzcyBR
V2ViRG93bmxvYWRJdGVtOworCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJDb250ZXh0
IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgUVF1aWNrV2Vi
Q29udGV4dChRUXVpY2tJdGVtKiBwYXJlbnQpOworICAgIHZpcnR1YWwgflFRdWlja1dlYkNvbnRl
eHQoKTsKKworUV9TSUdOQUxTOgorICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0ZWQoUVdlYkRvd25s
b2FkSXRlbSogZG93bmxvYWRJdGVtKTsKKworcHJpdmF0ZToKKyAgICBRUXVpY2tXZWJDb250ZXh0
UHJpdmF0ZSogZF9wdHI7CisgICAgUV9ERUNMQVJFX1BSSVZBVEUoUVF1aWNrV2ViQ29udGV4dCkK
KworICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3UHJpdmF0ZTsKKyAgICBmcmllbmQgY2xh
c3MgUXRXZWJQYWdlUHJveHk7Cit9OworCisjZW5kaWYgLy8gcXF1aWNrd2ViY29udGV4dF9wX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29u
dGV4dF9wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29u
dGV4dF9wX3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmVlYzBmNzc4NjcwNTVhMDZlM2M1ZTFjNWFjMGQ4M2E0
ODczZWU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJjb250ZXh0X3BfcC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJv
Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAq
LworCisjaWZuZGVmIHFxdWlja3dlYmNvbnRleHRfcF9wX2gKKyNkZWZpbmUgcXF1aWNrd2ViY29u
dGV4dF9wX3BfaAorCisjaW5jbHVkZSAiUXRXZWJDb250ZXh0LmgiCisKKyNpbmNsdWRlICJxcXVp
Y2t3ZWJjb250ZXh0X3AuaCIKKworY2xhc3MgUVF1aWNrV2ViQ29udGV4dFByaXZhdGUgeworICAg
IFFfREVDTEFSRV9QVUJMSUMoUVF1aWNrV2ViQ29udGV4dCkKKyAgICBmcmllbmQgY2xhc3MgUVF1
aWNrV2ViVmlld1ByaXZhdGU7CisKK3B1YmxpYzoKKyAgICBRUXVpY2tXZWJDb250ZXh0UHJpdmF0
ZShRUXVpY2tXZWJDb250ZXh0Kik7CisKK3ByaXZhdGU6CisgICAgUVF1aWNrV2ViQ29udGV4dCog
cV9wdHI7CisgICAgV2ViS2l0OjpRdFdlYkNvbnRleHQqIGNvbnRleHQ7Cit9OworI2VuZGlmIC8v
IHFxdWlja3dlYmNvbnRleHRfcF9wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IGExNTZhZTE1N2FhMTMwMjlkYWM2NzA5OGNh
NzZkMzYyNDVhMWRlYzUuLjY2OWRiZDY2MzgxZGM2MTFmODg5YWZiNjc4NzExY2YyODE3OTY4NTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgogI2luY2x1
ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAKKyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0X3AuaCIK
KyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0X3BfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnBh
Z2VfcF9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wX3AuaCIKICNpbmNsdWRlICJxd2Vi
ZG93bmxvYWRpdGVtX3BfcC5oIgpAQCAtNTcsNiArNTksNyBAQCBRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUoUVF1aWNrV2ViVmlldyogdmlld3BvcnQpCiAgICAgLCBp
c1RyYW5zaXRpb25pbmdUb05ld1BhZ2UoZmFsc2UpCiAgICAgLCBwYWdlSXNTdXNwZW5kZWQoZmFs
c2UpCiAgICAgLCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkKKyAgICAsIG1fY29u
dGV4dChuZXcgUVF1aWNrV2ViQ29udGV4dCh2aWV3cG9ydCkpCiB7CiAgICAgdmlld3BvcnQtPnNl
dEZsYWdzKFFRdWlja0l0ZW06Okl0ZW1DbGlwc0NoaWxkcmVuVG9TaGFwZSk7CiAgICAgUU9iamVj
dDo6Y29ubmVjdCh2aWV3cG9ydCwgU0lHTkFMKHZpc2libGVDaGFuZ2VkKCkpLCB2aWV3cG9ydCwg
U0xPVChfcV9vblZpc2libGVDaGFuZ2VkKCkpKTsKQEAgLTkzLDYgKzk2LDggQEAgdm9pZCBRUXVp
Y2tXZWJWaWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQ
YWdlR3JvdXBSZWYgcGEKIAogICAgIC8vIFRyaWdnZXIgc2V0dGluZyBvZiBjb3JyZWN0IHZpc2li
aWxpdHkgZmxhZ3MgYWZ0ZXIgZXZlcnl0aGluZyB3YXMgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXpl
ZC4KICAgICBfcV9vblZpc2libGVDaGFuZ2VkKCk7CisKKyAgICBtX2NvbnRleHQtPmRfcHRyLT5j
b250ZXh0ID0gY29udGV4dC5nZXQoKTsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6
ZW5hYmxlTW91c2VFdmVudHMoKQpAQCAtMjk3LDcgKzMwMiw3IEBAIHZvaWQgUVF1aWNrV2ViVmll
d1ByaXZhdGU6Ol9xX29uUmVjZWl2ZWRSZXNwb25zZUZyb21Eb3dubG9hZChRV2ViRG93bmxvYWRJ
dGVtKiBkCiAKICAgICBRX1EoUVF1aWNrV2ViVmlldyk7CiAgICAgUURlY2xhcmF0aXZlRW5naW5l
OjpzZXRPYmplY3RPd25lcnNoaXAoZG93bmxvYWRJdGVtLCBRRGVjbGFyYXRpdmVFbmdpbmU6Okph
dmFTY3JpcHRPd25lcnNoaXApOwotICAgIGVtaXQgcS0+ZXhwZXJpbWVudGFsKCktPmRvd25sb2Fk
UmVxdWVzdGVkKGRvd25sb2FkSXRlbSk7CisgICAgZW1pdCBxLT5leHBlcmltZW50YWwoKS0+Y29u
dGV4dCgpLT5kb3dubG9hZFJlcXVlc3RlZChkb3dubG9hZEl0ZW0pOwogfQogCiB2b2lkIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjp1cGRhdGVWaWV3cG9ydFNpemUoKQpAQCAtNjcwLDYgKzY3NSwxMSBA
QCBRV2ViVmlld3BvcnRJbmZvKiBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjp2aWV3cG9ydElu
Zm8oKQogICAgIHJldHVybiBtX3ZpZXdwb3J0SW5mbzsKIH0KIAorUVF1aWNrV2ViQ29udGV4dCog
UVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGRfcHRyLT5tX2NvbnRleHQ7Cit9CisKIFFRdWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXcoUVF1
aWNrSXRlbSogcGFyZW50KQogICAgIDogUVF1aWNrSXRlbShwYXJlbnQpCiAgICAgLCBkX3B0cihu
ZXcgUVF1aWNrV2ViVmlld1ByaXZhdGUodGhpcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCA0ZjlhMjBlOTg3ZmI1YzRlNjQ5
NzMzODAwNmUzOTdiOTFiY2ZhMDI3Li4xODRkYzRkOGFkNzE1NDkwMTdkZDI4YzMxNmFjOGFmYjAx
NzAzZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wLmgKQEAgLTI2LDYgKzI2LDggQEAKIAogY2xhc3MgUVdlYk5hdmlnYXRpb25SZXF1
ZXN0OwogY2xhc3MgUURlY2xhcmF0aXZlQ29tcG9uZW50OworY2xhc3MgUVF1aWNrV2ViQ29udGV4
dDsKK2NsYXNzIFFRdWlja1dlYkNvbnRleHRQcml2YXRlOwogY2xhc3MgUVF1aWNrV2ViUGFnZTsK
IGNsYXNzIFFRdWlja1dlYlZpZXdBdHRhY2hlZDsKIGNsYXNzIFFRdWlja1dlYlZpZXdQcml2YXRl
OwpAQCAtMTc0LDYgKzE3Niw3IEBAIGNsYXNzIFFXRUJLSVRfRVhQT1JUIFFRdWlja1dlYlZpZXdF
eHBlcmltZW50YWwgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9QUk9QRVJUWShRV2ViUHJlZmVy
ZW5jZXMqIHByZWZlcmVuY2VzIFJFQUQgcHJlZmVyZW5jZXMgQ09OU1RBTlQgRklOQUwpCiAgICAg
UV9QUk9QRVJUWShib29sIHVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91ciBSRUFEIHVzZVRy
YWRpdGlvbmFsRGVza3RvcEJlaGF2aW91ciBXUklURSBzZXRVc2VUcmFkaXRpb25hbERlc2t0b3BC
ZWhhdmlvdXIpCiAgICAgUV9QUk9QRVJUWShRV2ViVmlld3BvcnRJbmZvKiB2aWV3cG9ydEluZm8g
UkVBRCB2aWV3cG9ydEluZm8gQ09OU1RBTlQgRklOQUwpCisgICAgUV9QUk9QRVJUWShRUXVpY2tX
ZWJDb250ZXh0KiBjb250ZXh0IFJFQUQgY29udGV4dCBDT05TVEFOVCBGSU5BTCkKIAogcHVibGlj
OgogICAgIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwoUVF1aWNrV2ViVmlldyogd2ViVmlldyk7
CkBAIC0xOTQsNiArMTk3LDggQEAgcHVibGljOgogICAgIGJvb2wgdXNlVHJhZGl0aW9uYWxEZXNr
dG9wQmVoYXZpb3VyKCkgY29uc3Q7CiAgICAgUVdlYk5hdmlnYXRpb25IaXN0b3J5KiBuYXZpZ2F0
aW9uSGlzdG9yeSgpIGNvbnN0OwogCisgICAgUVF1aWNrV2ViQ29udGV4dCogY29udGV4dCgpIGNv
bnN0OworCiBwdWJsaWMgUV9TTE9UUzoKICAgICB2b2lkIHNldFVzZVRyYWRpdGlvbmFsRGVza3Rv
cEJlaGF2aW91cihib29sIGVuYWJsZSk7CiAgICAgdm9pZCBnb0JhY2tUbyhpbnQgaW5kZXgpOwpA
QCAtMjE5LDUgKzIyNCw0IEBAIHByaXZhdGU6CiAgICAgUV9ERUNMQVJFX1BSSVZBVEUoUVF1aWNr
V2ViVmlldykKICAgICBRX0RFQ0xBUkVfUFVCTElDKFFRdWlja1dlYlZpZXcpCiB9OwotCiAjZW5k
aWYgLy8gcXF1aWNrd2Vidmlld19wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCBhOTZkNDM0NjIwNDRkNGQzOTcwNGRi
MTdiZDMwODBjZDNjYTVjNWE5Li41NTEwYzZjNDU1OWY0YzMxMTY3NDMzNzRiNjRhZDJlNGEyZjI2
OWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3X3BfcC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUXRXZWJVbmRvQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogCisjaW5jbHVkZSAicXF1aWNrd2Vi
Y29udGV4dF9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSAicXF1
aWNrd2VicGFnZV9wLmgiCiAKQEAgLTE2MCw2ICsxNjEsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCB1c2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXI7CiAgICAgYm9vbCBtX25hdmlnYXRvclF0
T2JqZWN0RW5hYmxlZDsKLX07CiAKKyAgICBRUXVpY2tXZWJDb250ZXh0KiBtX2NvbnRleHQ7Cit9
OwogI2VuZGlmIC8vIHFxdWlja3dlYnZpZXdfcF9wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9u
YXZpZ2F0aW9uUmVxdWVzdGVkLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFt
bAppbmRleCBmMjE3OTEzNGVlYTEwYzhkNTVhNjNlNWE3ZDdkNjI5YTkxNDZlZDhhLi43ZmU5NTA2
Y2M2ZjQ0ODhlZWU0MDhiZDMwYjY2MzhmODUxYWNmZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3Rf
bmF2aWdhdGlvblJlcXVlc3RlZC5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0
ZWQucW1sCkBAIC0yMyw3ICsyMyw3IEBAIEl0ZW0gewogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKLSAgICAgICAgZXhwZXJpbWVudGFsLm9uRG93bmxvYWRSZXF1ZXN0ZWQ6IHsKKyAgICAgICAg
ZXhwZXJpbWVudGFsLmNvbnRleHQub25Eb3dubG9hZFJlcXVlc3RlZDogewogICAgICAgICAgICAg
ZG93bmxvYWQudGFyZ2V0ID0gZG93bmxvYWRJdGVtCiAgICAgICAgICAgICBleHBlY3RlZExlbmd0
aCA9IGRvd25sb2FkSXRlbS5leHBlY3RlZENvbnRlbnRMZW5ndGgKICAgICAgICAgICAgIGRvd25s
b2FkSXRlbS5kZXN0aW5hdGlvblBhdGggPSBkb3dubG9hZEl0ZW0uc3VnZ2VzdGVkRmlsZW5hbWUK
QEAgLTU4LDcgKzU4LDcgQEAgSXRlbSB7CiAKICAgICBTaWduYWxTcHkgewogICAgICAgICBpZDog
ZG93bmxvYWRTcHkKLSAgICAgICAgdGFyZ2V0OiB3ZWJWaWV3LmV4cGVyaW1lbnRhbAorICAgICAg
ICB0YXJnZXQ6IHdlYlZpZXcuZXhwZXJpbWVudGFsLmNvbnRleHQKICAgICAgICAgc2lnbmFsTmFt
ZTogImRvd25sb2FkUmVxdWVzdGVkIgogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9kb3dubG9hZC5x
bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X2Rvd25sb2FkLnFtbAppbmRleCA2YzI1YWYzYmM5MzE0YzE3NjhkOTEwMWQ4YzdkOGE0
ZTU2ZDQxMWMxLi4zNWY5MGY1ZmNkMzA0OWQzNjNmNWI2ZWIyNDVhZjlkMzI0MWU1MDQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dl
YlZpZXcvdHN0X2Rvd25sb2FkLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2Rvd25sb2FkLnFtbApAQCAtMTUsNyArMTUs
NyBAQCBXZWJWaWV3IHsKIAogICAgIFNpZ25hbFNweSB7CiAgICAgICAgIGlkOiBzcHkKLSAgICAg
ICAgdGFyZ2V0OiBleHBlcmltZW50YWwKKyAgICAgICAgdGFyZ2V0OiBleHBlcmltZW50YWwuY29u
dGV4dAogICAgICAgICBzaWduYWxOYW1lOiAiZG93bmxvYWRSZXF1ZXN0ZWQiCiAgICAgfQogCkBA
IC0yNSw3ICsyNSw3IEBAIFdlYlZpZXcgewogICAgICAgICBzaWduYWxOYW1lOiAiZG93bmxvYWRG
aW5pc2hlZCIKICAgICB9CiAKLSAgICBleHBlcmltZW50YWwub25Eb3dubG9hZFJlcXVlc3RlZDog
eworICAgIGV4cGVyaW1lbnRhbC5jb250ZXh0Lm9uRG93bmxvYWRSZXF1ZXN0ZWQ6IHsKICAgICAg
ICAgZG93bmxvYWQudGFyZ2V0ID0gZG93bmxvYWRJdGVtCiAgICAgICAgIGV4cGVjdGVkTGVuZ3Ro
ID0gZG93bmxvYWRJdGVtLmV4cGVjdGVkQ29udGVudExlbmd0aAogICAgICAgICBkb3dubG9hZEl0
ZW0uZGVzdGluYXRpb25QYXRoID0gZG93bmxvYWRJdGVtLnN1Z2dlc3RlZEZpbGVuYW1lCmRpZmYg
LS1naXQgYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCBiL1NvdXJjZS9xdHdlYmtpdC1leHBv
cnQubWFwCmluZGV4IDgzMjA1YzhkNDg4MTFiMDZiNmVkNjMyMTdkNWY4YjdmMTA1Zjk3NTAuLmZm
ZjQxOGY1YWM1MzZjMzAzNTI4M2JmZjU4OTU1ZjE3OWZkYjRmMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9xdHdlYmtpdC1leHBvcnQubWFwCisrKyBiL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCkBA
IC0xNDIsNyArMTQyLDkgQEAgcXdrXzEuMCB7CiAgICAgICAgICpRV2ViTmF2aWdhdGlvblJlcXVl
c3Q7CiAgICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3RvP1FXZWJOYXZpZ2F0aW9uUmVxdWVzdCo7
CiAgICAgICAgIFFXZWJOYXZpZ2F0aW9uUmVxdWVzdDo6KjsKLQorICAgICAgICAqUVF1aWNrV2Vi
Q29udGV4dDsKKyAgICAgICAgbm9uLXZpcnR1YWw/dGh1bms/dG8/UVF1aWNrV2ViQ29udGV4dCo7
CisgICAgICAgIFFRdWlja1dlYkNvbnRleHQ6Oio7CiAKICAgICAgICAgIyBXZWJLaXQgMiBDIEFQ
SSBtYW5nbGVkIGluIEMrKwogICAgICAgICBXS1N0cmluZ0NvcHlRU3RyaW5nKjsKZGlmZiAtLWdp
dCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlYTlkNWVlYzU5NzIzMmFiYzA5NDIzODY4
ZmIyY2MxNzBlODdmOGVmLi5lNzMxNDc5ZmFhYWYwYWQ3Y2I3YzlkOGRkNDk5ZGFkNGRjYzE0NTE5
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMTEtMjkgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBFeHBvc2UgV2ViQ29udGV4dCBhcyBhbiBl
eHBlcmltZW50YWwgQVBJIGFuZCBtb3ZlIGRvd25sb2FkUmVxdWVzdGVkIHRvIGl0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM2NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9ydGluZyBuZWVkZWQg
UU1MIHN5bWJvbHMuCisKKyAgICAgICAgKiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcDoKKwog
MjAxMS0xMi0xNSAgVWxhbiBEZWdlbmJhZXYgIDx1bGFuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBbQ2hyb21pdW1dICBDYWxsIExvd01lbW9yeU5vdGlmaWNhdGlvbiBp
bnN0ZWFkIG9mIElkbGVOb3RpZmljYXRpb24K
</data>
<flag name="review"
          id="119535"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121654</attachid>
            <date>2012-01-09 06:02:46 -0800</date>
            <delta_ts>2012-01-12 11:00:01 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>0002-wip-webcontext.patch</filename>
            <type>text/plain</type>
            <size>24760</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSAyYzUxOTVhYTM0OGNlMmU1OGQ5OTAxODQ2MTFiNzIwNTg5ZjZhMTEzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDUgSmFuIDIwMTIgMTA6Mjk6MzMgLTAzMDAKU3Vi
amVjdDogW1BBVENIIDIvMl0gd2lwIC0gd2ViY29udGV4dAoKU2lnbmVkLW9mZi1ieTogSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCndpcCB3ZWJj
b250ZXh0IGtlZXBzIGdvaW5nCgpTaWduZWQtb2ZmLWJ5OiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
IDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgoKd2lwIC0gY29udGV4dCAzIC0gYWRkaW5n
IGluaXQgdG8gcXF1aWNrd2ViY29udGV4dAoKU2lnbmVkLW9mZi1ieTogSmVzdXMgU2FuY2hlei1Q
YWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCndpcCAtIGFkZGluZyB2aWV3
cyB0byBhIGRlbGV0aW9uIGxpc3QgaW4gd2ViY29udGV4dAoKU2lnbmVkLW9mZi1ieTogSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCndpcCB3ZWJj
b250ZXh0IGNsZWFuaW5nIHVwIGRlbGV0aW9ucwoKU2lnbmVkLW9mZi1ieTogSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KLS0tCiAuLi4vV2ViS2l0
L3F0L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9wbHVnaW4uY3BwICB8ICAgIDIgKwogU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIC4u
Li9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dC5jcHAgIHwgICA3MSAr
KysrKysrKysrKysrKysrKysrKwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJjb250ZXh0X3AuaCAgfCAgIDU2ICsrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2ViY29udGV4dF9wX3AuaCAgICAgICAgfCAgIDQ1ICsrKysrKysrKysrKwogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCAgfCAgIDUzICsr
KysrKysrKysrLS0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXdfcC5oICB8ICAgMTEgKystCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmggICB8ICAgIDYgKy0KIC4uLi9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRp
b25SZXF1ZXN0ZWQucW1sICAgIHwgICAgNCArLQogLi4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9kb3dubG9hZC5xbWwgfCAgICA0ICstCiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0
Lm1hcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggICAgICAgICAgIHwgICAgMSArCiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcCAgICB8ICAgMTYgKysrLS0KIDEzIGZp
bGVzIGNoYW5nZWQsIDI0OSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRl
eHQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJjb250ZXh0X3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dF9wX3AuaAoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvZXhwZXJpbWVudGFsL3BsdWdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9wbHVnaW4uY3BwCmluZGV4IGNh
YjBmYmEuLjcwZTFiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUv
ZXhwZXJpbWVudGFsL3BsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2
ZS9leHBlcmltZW50YWwvcGx1Z2luLmNwcApAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSAi
cXF1aWNrbmV0d29ya3JlcGx5X3AuaCIKICNpbmNsdWRlICJxcXVpY2tuZXR3b3JrcmVxdWVzdF9w
LmgiCisjaW5jbHVkZSAicXF1aWNrd2ViY29udGV4dF9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vi
cGFnZV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSAicXdlYmRv
d25sb2FkaXRlbV9wLmgiCkBAIC00OCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IFFfQVNTRVJUKFFMYXRpbjFTdHJpbmcodXJpKSA9PSBRTGF0aW4xU3RyaW5nKCJRdFdlYktpdC5l
eHBlcmltZW50YWwiKSk7CiAKKyAgICAgICAgcW1sUmVnaXN0ZXJUeXBlPFFRdWlja1dlYkNvbnRl
eHQ+KHVyaSwgMywgMCwgIldlYkNvbnRleHQiKTsKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0
YWJsZVR5cGU8UVdlYkRvd25sb2FkSXRlbT4odXJpLCAzLCAwLCAiRG93bmxvYWRJdGVtIiwgUU9i
amVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgRG93bmxvYWRJdGVt
IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2ViTmF2aWdhdGlvbkxp
c3RNb2RlbD4odXJpLCAzLCAwLCAiTmF2aWdhdGlvbkxpc3RNb2RlbCIsIFFPYmplY3Q6OnRyKCJD
YW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIE5hdmlnYXRpb25MaXN0TW9kZWwiKSk7
CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJOYXZpZ2F0aW9uSGlzdG9y
eT4odXJpLCAzLCAwLCAiTmF2aWdhdGlvbkhpc3RvcnkiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNy
ZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOYXZpZ2F0aW9uSGlzdG9yeSIpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CmluZGV4IDM1OTgzZjAuLjc1MTExOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTc1LDYgKzE3NSw4IEBA
IEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3Au
aCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdF9wLmggXAorICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dF9wLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2ViY29udGV4dF9wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJw
YWdlX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeV9wLmggXApAQCAtNTA1LDYg
KzUwNyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2Fk
aXRlbS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNw
cCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbnJlcXVlc3QuY3BwIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHQuY3BwIFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZp
Z2F0aW9uaGlzdG9yeS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJjb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
Y29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBlYTE2Zgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2ViY29udGV4dC5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9n
cmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0X3AuaCIKKworI2luY2x1
ZGUgIlF0V2ViQ29udGV4dC5oIgorCisjaW5jbHVkZSAicXF1aWNrd2ViY29udGV4dF9wX3AuaCIK
KyNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKworI2luY2x1ZGUgPFF0UXVpY2svUVF1aWNr
SXRlbT4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQVBJQ2FzdC5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OworCitRUXVpY2tXZWJDb250ZXh0UHJpdmF0ZTo6UVF1aWNrV2ViQ29udGV4dFByaXZh
dGUoUVF1aWNrV2ViQ29udGV4dCogd2ViQ29udGV4dCkKKyAgICA6IHFfcHRyKHdlYkNvbnRleHQp
CisgICAgLCBpc0luaXRpYWxpemVkKGZhbHNlKQoreworfQorCitRUXVpY2tXZWJDb250ZXh0OjpR
UXVpY2tXZWJDb250ZXh0KFFRdWlja0l0ZW0qIHBhcmVudCkKKyAgICA6IFFPYmplY3QocGFyZW50
KQorICAgICwgZF9wdHIobmV3IFFRdWlja1dlYkNvbnRleHRQcml2YXRlKHRoaXMpKQoreworfQor
CitRUXVpY2tXZWJDb250ZXh0Ojp+UVF1aWNrV2ViQ29udGV4dCgpCit7CisgICAgd2hpbGUgKCFk
X3B0ci0+dmlld3MuaXNFbXB0eSgpKQorICAgICAgICBkZWxldGUgZF9wdHItPnZpZXdzLnRha2VG
aXJzdCgpOworCisgICAgZGVsZXRlIGRfcHRyOworfQorCit2b2lkIFFRdWlja1dlYkNvbnRleHQ6
OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgZF9wdHItPmNvbnRl
eHQgPSBjb250ZXh0UmVmID8gV2ViS2l0OjpRdFdlYkNvbnRleHQ6OmNyZWF0ZSh0b0ltcGwoY29u
dGV4dFJlZikpIDogV2ViS2l0OjpRdFdlYkNvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCk7CisgICAg
ZF9wdHItPmlzSW5pdGlhbGl6ZWQgPSB0cnVlOworfQorCit2b2lkIFFRdWlja1dlYkNvbnRleHQ6
OmFkZFdlYlZpZXcoUVF1aWNrV2ViVmlldyogd2ViVmlldykKK3sKKyAgICBpZiAoIWRfcHRyLT52
aWV3cy5jb250YWlucyh3ZWJWaWV3KSkKKyAgICAgICAgZF9wdHItPnZpZXdzIDw8IHdlYlZpZXc7
Cit9CisKK3ZvaWQgUVF1aWNrV2ViQ29udGV4dDo6cmVtb3ZlV2ViVmlldyhRUXVpY2tXZWJWaWV3
KiB3ZWJWaWV3KQoreworICAgIGRfcHRyLT52aWV3cy5yZW1vdmVBbGwod2ViVmlldyk7Cit9CisK
KyNpbmNsdWRlICJtb2NfcXF1aWNrd2ViY29udGV4dF9wLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dF9wLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHRfcC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1OGJiOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHRfcC5oCkBAIC0wLDAg
KzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIHFxdWlja3dlYmNvbnRleHRfcF9o
CisjZGVmaW5lIHFxdWlja3dlYmNvbnRleHRfcF9oCisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFs
LmgiCisjaW5jbHVkZSA8UXRRdWljay9xcXVpY2tpdGVtLmg+CisKK2NsYXNzIFFRdWlja1dlYkNv
bnRleHRQcml2YXRlOworY2xhc3MgUVdlYkRvd25sb2FkSXRlbTsKK2NsYXNzIFFRdWlja1dlYlZp
ZXc7CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29udGV4dCogV0tDb250ZXh0UmVm
OworCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJDb250ZXh0IDogcHVibGljIFFPYmpl
Y3QgeworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgUVF1aWNrV2ViQ29udGV4dChRUXVpY2tJ
dGVtKiBwYXJlbnQgPSAwKTsKKyAgICB2aXJ0dWFsIH5RUXVpY2tXZWJDb250ZXh0KCk7CisKKyAg
ICB2b2lkIGluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYgPSAwKTsKKyAgICB2b2lk
IGFkZFdlYlZpZXcoUVF1aWNrV2ViVmlldyopOworICAgIHZvaWQgcmVtb3ZlV2ViVmlldyhRUXVp
Y2tXZWJWaWV3Kik7CisKK1FfU0lHTkFMUzoKKyAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFX
ZWJEb3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CisKK3ByaXZhdGU6CisgICAgUVF1aWNrV2Vi
Q29udGV4dFByaXZhdGUqIGRfcHRyOworICAgIFFfREVDTEFSRV9QUklWQVRFKFFRdWlja1dlYkNv
bnRleHQpCisKKyAgICBmcmllbmQgY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CisgICAgZnJp
ZW5kIGNsYXNzIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw7CisgICAgZnJpZW5kIGNsYXNzIFF0
V2ViUGFnZVByb3h5OworfTsKKworI2VuZGlmIC8vIHFxdWlja3dlYmNvbnRleHRfcF9oCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4
dF9wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4
dF9wX3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTBmYTMwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJj
b250ZXh0X3BfcC5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh
bTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVm
IHFxdWlja3dlYmNvbnRleHRfcF9wX2gKKyNkZWZpbmUgcXF1aWNrd2ViY29udGV4dF9wX3BfaAor
CisjaW5jbHVkZSAiUXRXZWJDb250ZXh0LmgiCisKKyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0
X3AuaCIKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworY2xhc3MgUVF1aWNrV2ViQ29udGV4
dFByaXZhdGUgeworICAgIFFfREVDTEFSRV9QVUJMSUMoUVF1aWNrV2ViQ29udGV4dCkKKyAgICBm
cmllbmQgY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CisgICAgZnJpZW5kIGNsYXNzIFFRdWlj
a1dlYlZpZXdFeHBlcmltZW50YWw7CisKK3B1YmxpYzoKKyAgICBRUXVpY2tXZWJDb250ZXh0UHJp
dmF0ZShRUXVpY2tXZWJDb250ZXh0Kik7CisKK3ByaXZhdGU6CisgICAgUVF1aWNrV2ViQ29udGV4
dCogcV9wdHI7CisgICAgUmVmUHRyPFdlYktpdDo6UXRXZWJDb250ZXh0PiBjb250ZXh0OworICAg
IGJvb2wgaXNJbml0aWFsaXplZDsKKyAgICBRTGlzdDxRUXVpY2tXZWJWaWV3Kj4gdmlld3M7Cit9
OworI2VuZGlmIC8vIHFxdWlja3dlYmNvbnRleHRfcF9wX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggYWE4NGZlNS4uMmQ0
NzA2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgi
CiAKICNpbmNsdWRlICJxcXVpY2tuZXR3b3JrcmVwbHlfcC5oIgorI2luY2x1ZGUgInFxdWlja3dl
YmNvbnRleHRfcF9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9wX3AuaCIKICNpbmNsdWRl
ICJxcXVpY2t3ZWJ2aWV3X3BfcC5oIgogI2luY2x1ZGUgInF3ZWJkb3dubG9hZGl0ZW1fcF9wLmgi
CkBAIC02Miw2ICs2Myw3IEBAIFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJp
dmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKICAgICAsIHVzZVRyYWRpdGlvbmFsRGVza3Rv
cEJlaGF2aW91cihmYWxzZSkKICAgICAsIG1fbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGZhbHNl
KQogICAgICwgaXNJbml0aWFsaXplZChmYWxzZSkKKyAgICAsIG1fY29udGV4dChuZXcgUVF1aWNr
V2ViQ29udGV4dCh2aWV3cG9ydCkpCiB7CiAgICAgdmlld3BvcnQtPnNldEZsYWdzKFFRdWlja0l0
ZW06Okl0ZW1DbGlwc0NoaWxkcmVuVG9TaGFwZSk7CiAgICAgUU9iamVjdDo6Y29ubmVjdCh2aWV3
cG9ydCwgU0lHTkFMKHZpc2libGVDaGFuZ2VkKCkpLCB2aWV3cG9ydCwgU0xPVChfcV9vblZpc2li
bGVDaGFuZ2VkKCkpKTsKQEAgLTc0LDExICs3NiwxMyBAQCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6
flFRdWlja1dlYlZpZXdQcml2YXRlKCkKIHsKICAgICBpZiAoaW50ZXJhY3Rpb25FbmdpbmUpCiAg
ICAgICAgIGludGVyYWN0aW9uRW5naW5lLT5kaXNjb25uZWN0KCk7Ci0gICAgd2ViUGFnZVByb3h5
LT5jbG9zZSgpOworCisgICAgaWYgKHdlYlBhZ2VQcm94eSkKKyAgICAgICAgd2ViUGFnZVByb3h5
LT5jbG9zZSgpOwogfQogCiAvLyBOb3RlOiB3ZSBkZWxheSB0aGlzIGluaXRpYWxpemF0aW9uIHRv
IG1ha2Ugc3VyZSB0aGF0IFFRdWlja1dlYlZpZXcgaGFzIGl0cyBkLXB0ciBpbi1wbGFjZS4KLXZv
aWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRS
ZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKK3ZvaWQgUVF1aWNrV2ViVmlld1ByaXZh
dGU6OmluaXRpYWxpemUoUVF1aWNrV2ViQ29udGV4dCogd2ViQ29udGV4dCwgV0tQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwUmVmKQogewogICAgIFJlZlB0cjxXZWJQYWdlR3JvdXA+IHBhZ2VHcm91cDsK
ICAgICBpZiAocGFnZUdyb3VwUmVmKQpAQCAtODYsOCArOTAsMTIgQEAgdm9pZCBRUXVpY2tXZWJW
aWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3Jv
dXBSZWYgcGEKICAgICBlbHNlCiAgICAgICAgIHBhZ2VHcm91cCA9IFdlYlBhZ2VHcm91cDo6Y3Jl
YXRlKCk7CiAKLSAgICBjb250ZXh0ID0gY29udGV4dFJlZiA/IFF0V2ViQ29udGV4dDo6Y3JlYXRl
KHRvSW1wbChjb250ZXh0UmVmKSkgOiBRdFdlYkNvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCk7Ci0g
ICAgd2ViUGFnZVByb3h5ID0gY29udGV4dC0+Y3JlYXRlV2ViUGFnZSgmcGFnZUNsaWVudCwgcGFn
ZUdyb3VwLmdldCgpKTsKKyAgICBpZiAod2ViQ29udGV4dCkKKyAgICAgICAgbV9jb250ZXh0ID0g
d2ViQ29udGV4dDsKKyAgICBlbHNlIGlmICghbV9jb250ZXh0LT5kX3B0ci0+aXNJbml0aWFsaXpl
ZCkKKyAgICAgICAgbV9jb250ZXh0LT5pbml0aWFsaXplKCk7CisKKyAgICB3ZWJQYWdlUHJveHkg
PSBtX2NvbnRleHQtPmRfcHRyLT5jb250ZXh0LT5jcmVhdGVXZWJQYWdlKCZwYWdlQ2xpZW50LCBw
YWdlR3JvdXAuZ2V0KCkpOwogCiAgICAgUVF1aWNrV2ViUGFnZVByaXZhdGUqIGNvbnN0IHBhZ2VW
aWV3UHJpdmF0ZSA9IHBhZ2VWaWV3LmRhdGEoKS0+ZDsKICAgICBwYWdlVmlld1ByaXZhdGUtPmlu
aXRpYWxpemUod2ViUGFnZVByb3h5LmdldCgpKTsKQEAgLTk3LDcgKzEwNSw3IEBAIHZvaWQgUVF1
aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdL
UGFnZUdyb3VwUmVmIHBhCiAgICAgcGFnZVVJQ2xpZW50LnJlc2V0KG5ldyBRdFdlYlBhZ2VVSUNs
aWVudCh0b0FQSSh3ZWJQYWdlUHJveHkuZ2V0KCkpLCBxX3B0cikpOwogICAgIG5hdmlnYXRpb25I
aXN0b3J5LT5kLT5zZXRQYWdlKHRvQVBJKHdlYlBhZ2VQcm94eS5nZXQoKSkpOwogCi0gICAgUXRX
ZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZSA9IGNvbnRleHQtPmljb25EYXRhYmFz
ZSgpOworICAgIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBpY29uRGF0YWJhc2UgPSBtX2NvbnRl
eHQtPmRfcHRyLT5jb250ZXh0LT5pY29uRGF0YWJhc2UoKTsKICAgICBRT2JqZWN0Ojpjb25uZWN0
KGljb25EYXRhYmFzZSwgU0lHTkFMKGljb25DaGFuZ2VkRm9yUGFnZVVSTChRVXJsLCBRVXJsKSks
IHFfcHRyLCBTTE9UKF9xX29uSWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFVcmwsIFFVcmwpKSk7CiAg
ICAgUU9iamVjdDo6Y29ubmVjdChxX3B0ciwgU0lHTkFMKHVybENoYW5nZWQoUVVybCkpLCBpY29u
RGF0YWJhc2UsIFNMT1QocmVxdWVzdEljb25Gb3JQYWdlVVJMKFFVcmwpKSk7CiAKQEAgLTExNCw2
ICsxMjIsNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplKFdLQ29udGV4
dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYQogICAgICAgICBwcmVmZXJlbmNlcy0+
ZC0+c2V0V2ViVmlld1ByaXZhdGUodGhpcyk7CiAKICAgICBpc0luaXRpYWxpemVkID0gdHJ1ZTsK
KwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjplbmFibGVNb3VzZUV2ZW50cygpCkBA
IC0yODksNyArMjk4LDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aGFuZGxlRG93bmxv
YWRSZXF1ZXN0KERvd25sb2FkUHJveHkqIGRvd25sb2FkKQogICAgIGRvd25sb2FkSXRlbS0+ZC0+
ZG93bmxvYWRQcm94eSA9IGRvd25sb2FkOwogCiAgICAgcS0+Y29ubmVjdChkb3dubG9hZEl0ZW0t
PmQsIFNJR05BTChyZWNlaXZlZFJlc3BvbnNlKFFXZWJEb3dubG9hZEl0ZW0qKSksIHEsIFNMT1Qo
X3Ffb25SZWNlaXZlZFJlc3BvbnNlRnJvbURvd25sb2FkKFFXZWJEb3dubG9hZEl0ZW0qKSkpOwot
ICAgIGNvbnRleHQtPmRvd25sb2FkTWFuYWdlcigpLT5hZGREb3dubG9hZChkb3dubG9hZCwgZG93
bmxvYWRJdGVtKTsKKyAgICBtX2NvbnRleHQtPmRfcHRyLT5jb250ZXh0LT5kb3dubG9hZE1hbmFn
ZXIoKS0+YWRkRG93bmxvYWQoZG93bmxvYWQsIGRvd25sb2FkSXRlbSk7CiB9CiAKIHZvaWQgUVF1
aWNrV2ViVmlld1ByaXZhdGU6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdEFuZFNjYWxlKCkKQEAg
LTMzMSw3ICszNDAsNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV9vblJlY2VpdmVk
UmVzcG9uc2VGcm9tRG93bmxvYWQoUVdlYkRvd25sb2FkSXRlbSogZAogCiAgICAgUV9RKFFRdWlj
a1dlYlZpZXcpOwogICAgIFFEZWNsYXJhdGl2ZUVuZ2luZTo6c2V0T2JqZWN0T3duZXJzaGlwKGRv
d25sb2FkSXRlbSwgUURlY2xhcmF0aXZlRW5naW5lOjpKYXZhU2NyaXB0T3duZXJzaGlwKTsKLSAg
ICBlbWl0IHEtPmV4cGVyaW1lbnRhbCgpLT5kb3dubG9hZFJlcXVlc3RlZChkb3dubG9hZEl0ZW0p
OworICAgIGVtaXQgcS0+Y29udGV4dCgpLT5kb3dubG9hZFJlcXVlc3RlZChkb3dubG9hZEl0ZW0p
OwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjp1cGRhdGVWaWV3cG9ydFNpemUoKQpA
QCAtNTQzLDcgKzU1Miw3IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnNldEljb24oY29u
c3QgUVVybCYgaWNvblVSTCkKICAgICBTdHJpbmcgbmV3UGFnZVVSTCA9IHdlYlBhZ2VQcm94eS0+
bWFpbkZyYW1lKCktPnVybCgpOwogCiAgICAgaWYgKG9sZFBhZ2VVUkwgIT0gbmV3UGFnZVVSTCkg
ewotICAgICAgICBRdFdlYkljb25EYXRhYmFzZUNsaWVudCogaWNvbkRhdGFiYXNlID0gY29udGV4
dC0+aWNvbkRhdGFiYXNlKCk7CisgICAgICAgIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBpY29u
RGF0YWJhc2UgPSBtX2NvbnRleHQtPmRfcHRyLT5jb250ZXh0LT5pY29uRGF0YWJhc2UoKTsKICAg
ICAgICAgaWYgKCFvbGRQYWdlVVJMLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGljb25EYXRhYmFz
ZS0+cmVsZWFzZUljb25Gb3JQYWdlVVJMKG9sZFBhZ2VVUkwpOwogCkBAIC01NjYsNyArNTc1LDcg
QEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVk
KGJvb2wgZW5hYmxlZCkKICAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGhhdmUgdG8ga2VlcCB0
aGlzIGluZm9ybWF0aW9uIGluIGJvdGggcHJvY2Vzc2VzIGFuZCB0aGUgc2V0dGluZyBpcyBhc3lu
Y2hyb25vdXMuCiAgICAgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQgPSBlbmFibGVkOwogCi0g
ICAgY29udGV4dC0+c2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKHdlYlBhZ2VQcm94eS5nZXQo
KSwgZW5hYmxlZCk7CisgICAgbV9jb250ZXh0LT5kX3B0ci0+Y29udGV4dC0+c2V0TmF2aWdhdG9y
UXRPYmplY3RFbmFibGVkKHdlYlBhZ2VQcm94eS5nZXQoKSwgZW5hYmxlZCk7CiB9CiAKIFdlYkNv
cmU6OkludFNpemUgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnZpZXdTaXplKCkgY29uc3QKQEAgLTYz
NSw3ICs2NDQsNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFVzZVRyYWRp
dGlvbmFsRGVza3RvcEJlaGF2aW91cihib29sIGVuYWJsZSkKIHZvaWQgUVF1aWNrV2ViVmlld0V4
cGVyaW1lbnRhbDo6cG9zdE1lc3NhZ2UoY29uc3QgUVN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBR
X0QoUVF1aWNrV2ViVmlldyk7Ci0gICAgZC0+Y29udGV4dC0+cG9zdE1lc3NhZ2VUb05hdmlnYXRv
clF0T2JqZWN0KGQtPndlYlBhZ2VQcm94eS5nZXQoKSwgbWVzc2FnZSk7CisgICAgZC0+bV9jb250
ZXh0LT5kX3B0ci0+Y29udGV4dC0+cG9zdE1lc3NhZ2VUb05hdmlnYXRvclF0T2JqZWN0KGQtPndl
YlBhZ2VQcm94eS5nZXQoKSwgbWVzc2FnZSk7CiB9CiAKIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCog
UVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6YWxlcnREaWFsb2coKSBjb25zdApAQCAtODE0LDEz
ICs4MjMsMTMgQEAgUVF1aWNrV2ViVmlldzo6UVF1aWNrV2ViVmlldyhRUXVpY2tJdGVtKiBwYXJl
bnQpCiB7CiB9CiAKLVFRdWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXcoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgUVF1aWNrSXRlbSogcGFyZW50
KQorUVF1aWNrV2ViVmlldzo6UVF1aWNrV2ViVmlldyhRUXVpY2tXZWJDb250ZXh0KiB3ZWJDb250
ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIFFRdWlja0l0ZW0qIHBhcmVudCkKICAg
ICA6IFFRdWlja0l0ZW0ocGFyZW50KQogICAgICwgZF9wdHIobmV3IFFRdWlja1dlYlZpZXdQcml2
YXRlKHRoaXMpKQogICAgICwgbV9leHBlcmltZW50YWwobmV3IFFRdWlja1dlYlZpZXdFeHBlcmlt
ZW50YWwodGhpcykpCiB7CiAgICAgUV9EKFFRdWlja1dlYlZpZXcpOwotICAgIGQtPmluaXRpYWxp
emUoY29udGV4dFJlZiwgcGFnZUdyb3VwUmVmKTsKKyAgICBkLT5pbml0aWFsaXplKHdlYkNvbnRl
eHQsIHBhZ2VHcm91cFJlZik7CiB9CiAKIFFRdWlja1dlYlZpZXc6On5RUXVpY2tXZWJWaWV3KCkK
QEAgLTEwNDAsNCArMTA0OSwyNCBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OmNvbXBvbmVudENvbXBs
ZXRlKCkKICAgICBkLT5zZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIoZC0+dXNlVHJh
ZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKTsKIH0KIAordm9pZCBRUXVpY2tXZWJWaWV3OjpzZXRD
b250ZXh0KFFRdWlja1dlYkNvbnRleHQqIHdlYkNvbnRleHQpCit7CisgICAgUV9EKFFRdWlja1dl
YlZpZXcpOworCisgICAgaWYgKHdlYkNvbnRleHQgPT0gZC0+bV9jb250ZXh0KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBkLT5tX2NvbnRleHQtPnJlbW92ZVdlYlZpZXcodGhpcyk7CisgICAgZC0+
bV9jb250ZXh0ID0gd2ViQ29udGV4dDsKKyAgICBkLT5tX2NvbnRleHQtPmFkZFdlYlZpZXcodGhp
cyk7CisKKyAgICBlbWl0IGNvbnRleHRDaGFuZ2VkKCk7Cit9CisKK1FRdWlja1dlYkNvbnRleHQq
IFFRdWlja1dlYlZpZXc6OmNvbnRleHQoKQoreworICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKKyAg
ICByZXR1cm4gZC0+bV9jb250ZXh0OworfQorCiAjaW5jbHVkZSAibW9jX3FxdWlja3dlYnZpZXdf
cC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaAppbmRleCA4YWQ5MDUyLi4xZGFjMDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTI4LDYgKzI4LDggQEAKIAog
Y2xhc3MgUVdlYk5hdmlnYXRpb25SZXF1ZXN0OwogY2xhc3MgUURlY2xhcmF0aXZlQ29tcG9uZW50
OworY2xhc3MgUVF1aWNrV2ViQ29udGV4dDsKK2NsYXNzIFFRdWlja1dlYkNvbnRleHRQcml2YXRl
OwogY2xhc3MgUVF1aWNrV2ViUGFnZTsKIGNsYXNzIFFRdWlja1dlYlZpZXdBdHRhY2hlZDsKIGNs
YXNzIFFRdWlja1dlYlZpZXdQcml2YXRlOwpAQCAtNTEsNyArNTMsNiBAQCBuYW1lc3BhY2UgV1RG
IHsKIHRlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIFBhc3NSZWZQdHI7CiB9CiAKLXR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLQ29udGV4dCogV0tDb250ZXh0UmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7CiAKQEAgLTcwLDYgKzcxLDcgQEAgY2xhc3Mg
UVdFQktJVF9FWFBPUlQgUVF1aWNrV2ViVmlldyA6IHB1YmxpYyBRUXVpY2tJdGVtIHsKICAgICBR
X1BST1BFUlRZKGJvb2wgY2FuR29Gb3J3YXJkIFJFQUQgY2FuR29Gb3J3YXJkIE5PVElGWSBuYXZp
Z2F0aW9uU3RhdGVDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9vbCBsb2FkaW5nIFJF
QUQgbG9hZGluZyBOT1RJRlkgbmF2aWdhdGlvblN0YXRlQ2hhbmdlZCBGSU5BTCkKICAgICBRX1BS
T1BFUlRZKGJvb2wgY2FuUmVsb2FkIFJFQUQgY2FuUmVsb2FkIE5PVElGWSBuYXZpZ2F0aW9uU3Rh
dGVDaGFuZ2VkIEZJTkFMKQorICAgIFFfUFJPUEVSVFkoUVF1aWNrV2ViQ29udGV4dCogY29udGV4
dCBSRUFEIGNvbnRleHQgV1JJVEUgc2V0Q29udGV4dCBOT1RJRlkgY29udGV4dENoYW5nZWQpCiAg
ICAgUV9FTlVNUyhOYXZpZ2F0aW9uUmVxdWVzdEFjdGlvbikKICAgICBRX0VOVU1TKEVycm9yRG9t
YWluKQogCkBAIC0xMDksNiArMTExLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNv
bXBvbmVudENvbXBsZXRlKCk7CiAKKyAgICBRUXVpY2tXZWJDb250ZXh0KiBjb250ZXh0KCk7Cisg
ICAgdm9pZCBzZXRDb250ZXh0KFFRdWlja1dlYkNvbnRleHQqKTsKKwogcHVibGljIFFfU0xPVFM6
CiAgICAgdm9pZCBsb2FkKGNvbnN0IFFVcmwmKTsKICAgICB2b2lkIGxvYWRIdG1sKGNvbnN0IFFT
dHJpbmcmIGh0bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwgPSBRVXJsKCkpOwpAQCAtMTI5LDYgKzEz
NCw3IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIGxpbmtIb3ZlcmVkKGNvbnN0IFFVcmwmIHVybCwg
Y29uc3QgUVN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgbmF2aWdhdGlvblN0YXRlQ2hhbmdlZCgp
OwogICAgIHZvaWQgbmF2aWdhdGlvblJlcXVlc3RlZChRV2ViTmF2aWdhdGlvblJlcXVlc3QqIHJl
cXVlc3QpOworICAgIHZvaWQgY29udGV4dENoYW5nZWQoKTsKIAogcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgdm9pZCBnZW9tZXRyeUNoYW5nZWQoY29uc3QgUVJlY3RGJiwgY29uc3QgUVJlY3RGJik7
CkBAIC0xMzgsNyArMTQ0LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBRX0RFQ0xBUkVf
UFJJVkFURShRUXVpY2tXZWJWaWV3KQogCi0gICAgUVF1aWNrV2ViVmlldyhXS0NvbnRleHRSZWYs
IFdLUGFnZUdyb3VwUmVmLCBRUXVpY2tJdGVtKiBwYXJlbnQgPSAwKTsKKyAgICBRUXVpY2tXZWJW
aWV3KFFRdWlja1dlYkNvbnRleHQqLCBXS1BhZ2VHcm91cFJlZiwgUVF1aWNrSXRlbSogcGFyZW50
ID0gMCk7CiAgICAgV0tQYWdlUmVmIHBhZ2VSZWYoKSBjb25zdDsKIAogICAgIFFfUFJJVkFURV9T
TE9UKGRfZnVuYygpLCB2b2lkIF9xX3N1c3BlbmQoKSk7CkBAIC0yMzcsNyArMjQzLDYgQEAgUV9T
SUdOQUxTOgogICAgIHZvaWQgY29uZmlybURpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIHByb21w
dERpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGl0ZW1TZWxlY3RvckNoYW5nZWQoKTsKLSAgICB2
b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFXZWJEb3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CiAg
ICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVkKFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcGVybWlz
c2lvbik7CiAgICAgdm9pZCBtZXNzYWdlUmVjZWl2ZWQoY29uc3QgUVZhcmlhbnRNYXAmIG1lc3Nh
Z2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmgKaW5kZXggYzVmMzViMC4uOGEzNzYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIlF0V2ViVW5kb0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKIAorI2luY2x1ZGUgInFxdWlja3dlYmNvbnRleHRfcC5oIgogI2luY2x1ZGUgInFx
dWlja3dlYnZpZXdfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgogCkBAIC02NCw3
ICs2NSw3IEBAIHB1YmxpYzoKICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3
KiB2aWV3cG9ydCk7CiAgICAgdmlydHVhbCB+UVF1aWNrV2ViVmlld1ByaXZhdGUoKTsKIAotICAg
IHZvaWQgaW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiA9IDAsIFdLUGFnZUdyb3Vw
UmVmIHBhZ2VHcm91cFJlZiA9IDApOworICAgIHZvaWQgaW5pdGlhbGl6ZShRUXVpY2tXZWJDb250
ZXh0KiB3ZWJDb250ZXh0ID0gMCwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gMCk7CiAK
ICAgICB2b2lkIGluaXRpYWxpemVUb3VjaChRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCk7CiAgICAg
dm9pZCBpbml0aWFsaXplRGVza3RvcChRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCk7CkBAIC0xMzAs
NyArMTMxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgUVBvaW50IHBvc2l0aW9uOwogICAgIH07CiAK
LSAgICBSZWZQdHI8UXRXZWJDb250ZXh0PiBjb250ZXh0OwogICAgIFJlZlB0cjxXZWJLaXQ6Oldl
YlBhZ2VQcm94eT4gd2ViUGFnZVByb3h5OwogCiAgICAgUXRQYWdlQ2xpZW50IHBhZ2VDbGllbnQ7
CkBAIC0xNjQsNiArMTY0LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fbmF2aWdhdG9yUXRPYmpl
Y3RFbmFibGVkOwogICAgIFFVcmwgbV9pY29uVVJMOwogICAgIGJvb2wgaXNJbml0aWFsaXplZDsK
KworICAgIFFRdWlja1dlYkNvbnRleHQqIG1fY29udGV4dDsKIH07CiAKICNlbmRpZiAvLyBxcXVp
Y2t3ZWJ2aWV3X3BfcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3Rl
ZC5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rl
c2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5xbWwKaW5kZXggM2VmN2Q1NS4u
MGYzYWZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0
cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3Rv
cEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbApAQCAtMjgsNyArMjgsNyBAQCBJ
dGVtIHsKICAgICAgICAgICAgIG9yaWdpbmF0aW5nVXJsID0gcmVxdWVzdC5vcmlnaW5hdGluZ1Vy
bAogICAgICAgICB9CiAKLSAgICAgICAgZXhwZXJpbWVudGFsLm9uRG93bmxvYWRSZXF1ZXN0ZWQ6
IHsKKyAgICAgICAgY29udGV4dC5vbkRvd25sb2FkUmVxdWVzdGVkOiB7CiAgICAgICAgICAgICBk
b3dubG9hZC50YXJnZXQgPSBkb3dubG9hZEl0ZW0KICAgICAgICAgICAgIGV4cGVjdGVkTGVuZ3Ro
ID0gZG93bmxvYWRJdGVtLmV4cGVjdGVkQ29udGVudExlbmd0aAogICAgICAgICAgICAgZG93bmxv
YWRJdGVtLmRlc3RpbmF0aW9uUGF0aCA9IGRvd25sb2FkSXRlbS5zdWdnZXN0ZWRGaWxlbmFtZQpA
QCAtNjMsNyArNjMsNyBAQCBJdGVtIHsKIAogICAgIFNpZ25hbFNweSB7CiAgICAgICAgIGlkOiBk
b3dubG9hZFNweQotICAgICAgICB0YXJnZXQ6IHdlYlZpZXcuZXhwZXJpbWVudGFsCisgICAgICAg
IHRhcmdldDogd2ViVmlldy5jb250ZXh0CiAgICAgICAgIHNpZ25hbE5hbWU6ICJkb3dubG9hZFJl
cXVlc3RlZCIKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZG93bmxvYWQucW1sIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9kb3dubG9h
ZC5xbWwKaW5kZXggNmMyNWFmMy4uOTMyM2M3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9kb3dubG9hZC5xbWwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJW
aWV3L3RzdF9kb3dubG9hZC5xbWwKQEAgLTE1LDcgKzE1LDcgQEAgV2ViVmlldyB7CiAKICAgICBT
aWduYWxTcHkgewogICAgICAgICBpZDogc3B5Ci0gICAgICAgIHRhcmdldDogZXhwZXJpbWVudGFs
CisgICAgICAgIHRhcmdldDogY29udGV4dAogICAgICAgICBzaWduYWxOYW1lOiAiZG93bmxvYWRS
ZXF1ZXN0ZWQiCiAgICAgfQogCkBAIC0yNSw3ICsyNSw3IEBAIFdlYlZpZXcgewogICAgICAgICBz
aWduYWxOYW1lOiAiZG93bmxvYWRGaW5pc2hlZCIKICAgICB9CiAKLSAgICBleHBlcmltZW50YWwu
b25Eb3dubG9hZFJlcXVlc3RlZDogeworICAgIGNvbnRleHQub25Eb3dubG9hZFJlcXVlc3RlZDog
ewogICAgICAgICBkb3dubG9hZC50YXJnZXQgPSBkb3dubG9hZEl0ZW0KICAgICAgICAgZXhwZWN0
ZWRMZW5ndGggPSBkb3dubG9hZEl0ZW0uZXhwZWN0ZWRDb250ZW50TGVuZ3RoCiAgICAgICAgIGRv
d25sb2FkSXRlbS5kZXN0aW5hdGlvblBhdGggPSBkb3dubG9hZEl0ZW0uc3VnZ2VzdGVkRmlsZW5h
bWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwIGIvU291cmNlL3F0d2Vi
a2l0LWV4cG9ydC5tYXAKaW5kZXggM2FmODQ5Mi4uZWU5YjUyNSAxMDA2NDQKLS0tIGEvU291cmNl
L3F0d2Via2l0LWV4cG9ydC5tYXAKKysrIGIvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKQEAg
LTE1NCw3ICsxNTQsOSBAQCBxd2tfMS4wIHsKICAgICAgICAgUVF1aWNrTmV0d29ya1JlcXVlc3Q6
Oio7CiAgICAgICAgICpRUXVpY2tOZXR3b3JrUmVwbHk7CiAgICAgICAgIFFRdWlja05ldHdvcmtS
ZXBseTo6KjsKLQorICAgICAgICAqUVF1aWNrV2ViQ29udGV4dDsKKyAgICAgICAgbm9uLXZpcnR1
YWw/dGh1bms/dG8/UVF1aWNrV2ViQ29udGV4dCo7CisgICAgICAgIFFRdWlja1dlYkNvbnRleHQ6
Oio7CiAKICAgICAgICAgIyBXZWJLaXQgMiBDIEFQSSBtYW5nbGVkIGluIEMrKwogICAgICAgICBX
S1N0cmluZ0NvcHlRU3RyaW5nKjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
UGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmll
dy5oCmluZGV4IDBlOGM2YjUuLjFmNTNjMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0
Zm9ybVdlYlZpZXcuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRh
aW5QdHIuaD4KIAogI2lmIGRlZmluZWQoQlVJTERJTkdfUVRfXykKK2NsYXNzIFFRdWlja1dlYkNv
bnRleHQ7CiBjbGFzcyBRUXVpY2tXZWJWaWV3OwogdHlwZWRlZiBRUXVpY2tXZWJWaWV3KiBQbGF0
Zm9ybVdLVmlldzsKIGNsYXNzIFFRdWlja1ZpZXc7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCmluZGV4IDBiOGE3ZDEuLjc4NDg1ODggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJQbGF0Zm9ybVdl
YlZpZXcuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0X3AuaCIKICNpbmNsdWRlICJxcXVp
Y2t3ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKIApAQCAtNDEsOSAr
NDIsMTAgQEAgbmFtZXNwYWNlIFdUUiB7CiBjbGFzcyBXcmFwcGVyV2luZG93IDogcHVibGljIFFR
dWlja1ZpZXcgewogICAgIFFfT0JKRUNUCiBwdWJsaWM6Ci0gICAgV3JhcHBlcldpbmRvdyhRUXVp
Y2tXZWJWaWV3KiB2aWV3KQorICAgIFdyYXBwZXJXaW5kb3coUVF1aWNrV2ViVmlldyogdmlldywg
UVF1aWNrV2ViQ29udGV4dCogY29udGV4dCkKICAgICAgICAgOiBRUXVpY2tWaWV3KFFVcmwoImRh
dGE6dGV4dC9wbGFpbixpbXBvcnQgUXRRdWljayAyLjBcbkl0ZW0geyBvYmplY3ROYW1lOiAncm9v
dCcgfSIpKQogICAgICAgICAsIG1fdmlldyh2aWV3KQorICAgICAgICAsIG1fY29udGV4dChjb250
ZXh0KQogICAgIHsKICAgICAgICAgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCh2aWV3KS5zZXRV
c2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIodHJ1ZSk7CiAgICAgICAgIGNvbm5lY3QodGhp
cywgU0lHTkFMKHN0YXR1c0NoYW5nZWQoUVF1aWNrVmlldzo6U3RhdHVzKSksIFNMT1QoaGFuZGxl
U3RhdHVzQ2hhbmdlZChRUXVpY2tWaWV3OjpTdGF0dXMpKSk7CkBAIC01OCw3ICs2MCw4IEBAIHBy
aXZhdGUgc2xvdHM6CiAgICAgICAgIHNldEdlb21ldHJ5KDAsIDAsIDgwMCwgNjAwKTsKICAgICAg
ICAgc2V0UmVzaXplTW9kZShRUXVpY2tWaWV3OjpTaXplUm9vdE9iamVjdFRvVmlldyk7CiAKLSAg
ICAgICAgbV92aWV3LT5zZXRQYXJlbnRJdGVtKHJvb3RPYmplY3QoKSk7CisgICAgICAgIG1fY29u
dGV4dC0+c2V0UGFyZW50KHJvb3RPYmplY3QoKSk7CisgICAgICAgIG1fY29udGV4dC0+YWRkV2Vi
VmlldyhtX3ZpZXcpOwogICAgICAgICBRRGVjbGFyYXRpdmVQcm9wZXJ0eTo6d3JpdGUobV92aWV3
LCAiYW5jaG9ycy5maWxsIiwgcVZhcmlhbnRGcm9tVmFsdWUocm9vdE9iamVjdCgpKSk7CiAKICAg
ICAgICAgUVdpbmRvd1N5c3RlbUludGVyZmFjZTo6aGFuZGxlV2luZG93QWN0aXZhdGVkKHRoaXMp
OwpAQCAtNjcsMTQgKzcwLDE3IEBAIHByaXZhdGUgc2xvdHM6CiAKIHByaXZhdGU6CiAgICAgUVF1
aWNrV2ViVmlldyogbV92aWV3OworICAgIFFRdWlja1dlYkNvbnRleHQqIG1fY29udGV4dDsKIH07
CiAKIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0
UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCi0gICAgOiBtX3ZpZXcobmV3IFFRdWlj
a1dlYlZpZXcoY29udGV4dFJlZiwgcGFnZUdyb3VwUmVmKSkKLSAgICAsIG1fd2luZG93KG5ldyBX
cmFwcGVyV2luZG93KG1fdmlldykpCi0gICAgLCBtX3dpbmRvd0lzS2V5KHRydWUpCisgICAgOiBt
X3dpbmRvd0lzS2V5KHRydWUpCiAgICAgLCBtX21vZGFsRXZlbnRMb29wKDApCiB7CisgICAgUVF1
aWNrV2ViQ29udGV4dCogY29udGV4dCA9IG5ldyBRUXVpY2tXZWJDb250ZXh0KCk7CisgICAgY29u
dGV4dC0+aW5pdGlhbGl6ZShjb250ZXh0UmVmKTsKKyAgICBtX3ZpZXcgPSBuZXcgUVF1aWNrV2Vi
Vmlldyhjb250ZXh0LCBwYWdlR3JvdXBSZWYpOworICAgIG1fd2luZG93ID0gbmV3IFdyYXBwZXJX
aW5kb3cobV92aWV3LCBjb250ZXh0KTsKIH0KIAogUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1X
ZWJWaWV3KCkKLS0gCjEuNy44LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>121656</attachid>
            <date>2012-01-09 06:03:35 -0800</date>
            <delta_ts>2012-01-09 06:03:35 -0800</delta_ts>
            <desc>QML test case</desc>
            <filename>test.qml</filename>
            <type>text/x-qml</type>
            <size>709</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">aW1wb3J0IFF0UXVpY2sgMi4wCmltcG9ydCBRdFdlYktpdCAzLjAKaW1wb3J0IFF0V2ViS2l0LmV4
cGVyaW1lbnRhbCAzLjAKCkl0ZW0gewogICAgaWQ6IGl0ZW0KICAgIHdpZHRoOiAxMDI0CiAgICBo
ZWlnaHQ6IDc2OAoKICAgIFdlYkNvbnRleHQgewogICAgICAgIGlkOiBteUNvbnRleHQKICAgIH0K
CiAgICBXZWJWaWV3IHsKICAgICAgICBpZDogd2ViVmlldwogICAgICAgIHdpZHRoOiAxMDI0CiAg
ICAgICAgaGVpZ2h0OiA3NjgKCiAgICAgICAgY29udGV4dDogbXlDb250ZXh0CgogICAgICAgIG9u
Q29udGV4dENoYW5nZWQ6IHsKICAgICAgICAgICAgY29uc29sZS5sb2coIlxuXG4hISBDb250ZXh0
IGhhcyBDaGFuZ2VkIG9uIFdlYlZpZXcgMSAhISIpCiAgICAgICAgfQogICAgfQoKICAgIFdlYlZp
ZXcgewogICAgICAgIGlkOiB3ZWJWaWV3MgogICAgICAgIHdpZHRoOiAxMDI0CiAgICAgICAgaGVp
Z2h0OiA3NjgKCiAgICAgICAgY29udGV4dDogbXlDb250ZXh0CgogICAgICAgIG9uQ29udGV4dENo
YW5nZWQ6IHsKICAgICAgICAgICAgY29uc29sZS5sb2coIlxuXG4hISEhIENvbnRleHQgaGFzIENo
YW5nZWQgb24gV2ViVmlldyAyICEhISEiKQogICAgICAgIH0KCiAgICAgICAgQ29tcG9uZW50Lm9u
Q29tcGxldGVkOiB7CiAgICAgICAgICAgIHdlYlZpZXcyLmxvYWQoImh0dHA6Ly93d3cuZ29vZ2xl
LmNvbSIpCiAgICAgICAgfQogICAgfQp9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122270</attachid>
            <date>2012-01-12 11:00:01 -0800</date>
            <delta_ts>2012-01-12 11:58:22 -0800</delta_ts>
            <desc>WIP - rebased patch after updates on componentComplete bug</desc>
            <filename>0002-wip-webcontext.patch</filename>
            <type>text/plain</type>
            <size>24714</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSBhMjM4ZmFiZjQyMDU1NzMyYzI3YzM1MzQ5NmZmOGIwNjhjZjVhNWIyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDUgSmFuIDIwMTIgMTA6Mjk6MzMgLTAzMDAKU3Vi
amVjdDogW1BBVENIIDIvMl0gd2lwIC0gd2ViY29udGV4dAoKU2lnbmVkLW9mZi1ieTogSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCndpcCB3ZWJj
b250ZXh0IGtlZXBzIGdvaW5nCgpTaWduZWQtb2ZmLWJ5OiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
IDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgoKd2lwIC0gY29udGV4dCAzIC0gYWRkaW5n
IGluaXQgdG8gcXF1aWNrd2ViY29udGV4dAoKU2lnbmVkLW9mZi1ieTogSmVzdXMgU2FuY2hlei1Q
YWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCndpcCAtIGFkZGluZyB2aWV3
cyB0byBhIGRlbGV0aW9uIGxpc3QgaW4gd2ViY29udGV4dAoKU2lnbmVkLW9mZi1ieTogSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCndpcCB3ZWJj
b250ZXh0IGNsZWFuaW5nIHVwIGRlbGV0aW9ucwoKU2lnbmVkLW9mZi1ieTogSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KLS0tCiAuLi4vV2ViS2l0
L3F0L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9wbHVnaW4uY3BwICB8ICAgIDIgKwogU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIC4u
Li9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dC5jcHAgIHwgICA3MSAr
KysrKysrKysrKysrKysrKysrKwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJjb250ZXh0X3AuaCAgfCAgIDU2ICsrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2ViY29udGV4dF9wX3AuaCAgICAgICAgfCAgIDQ1ICsrKysrKysrKysrKwogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCAgfCAgIDUzICsr
KysrKysrKysrLS0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXdfcC5oICB8ICAgMTEgKystCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmggICB8ICAgIDYgKy0KIC4uLi9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRp
b25SZXF1ZXN0ZWQucW1sICAgIHwgICAgNCArLQogLi4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9kb3dubG9hZC5xbWwgfCAgICA0ICstCiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0
Lm1hcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggICAgICAgICAgIHwgICAgMSArCiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcCAgICB8ICAgMTYgKysrLS0KIDEzIGZp
bGVzIGNoYW5nZWQsIDI0OSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRl
eHQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJjb250ZXh0X3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dF9wX3AuaAoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvZXhwZXJpbWVudGFsL3BsdWdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9wbHVnaW4uY3BwCmluZGV4IGNh
YjBmYmEuLjcwZTFiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUv
ZXhwZXJpbWVudGFsL3BsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2
ZS9leHBlcmltZW50YWwvcGx1Z2luLmNwcApAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSAi
cXF1aWNrbmV0d29ya3JlcGx5X3AuaCIKICNpbmNsdWRlICJxcXVpY2tuZXR3b3JrcmVxdWVzdF9w
LmgiCisjaW5jbHVkZSAicXF1aWNrd2ViY29udGV4dF9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vi
cGFnZV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSAicXdlYmRv
d25sb2FkaXRlbV9wLmgiCkBAIC00OCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IFFfQVNTRVJUKFFMYXRpbjFTdHJpbmcodXJpKSA9PSBRTGF0aW4xU3RyaW5nKCJRdFdlYktpdC5l
eHBlcmltZW50YWwiKSk7CiAKKyAgICAgICAgcW1sUmVnaXN0ZXJUeXBlPFFRdWlja1dlYkNvbnRl
eHQ+KHVyaSwgMywgMCwgIldlYkNvbnRleHQiKTsKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0
YWJsZVR5cGU8UVdlYkRvd25sb2FkSXRlbT4odXJpLCAzLCAwLCAiRG93bmxvYWRJdGVtIiwgUU9i
amVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgRG93bmxvYWRJdGVt
IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2ViTmF2aWdhdGlvbkxp
c3RNb2RlbD4odXJpLCAzLCAwLCAiTmF2aWdhdGlvbkxpc3RNb2RlbCIsIFFPYmplY3Q6OnRyKCJD
YW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIE5hdmlnYXRpb25MaXN0TW9kZWwiKSk7
CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJOYXZpZ2F0aW9uSGlzdG9y
eT4odXJpLCAzLCAwLCAiTmF2aWdhdGlvbkhpc3RvcnkiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNy
ZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOYXZpZ2F0aW9uSGlzdG9yeSIpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CmluZGV4IDM1OTgzZjAuLjc1MTExOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTc1LDYgKzE3NSw4IEBA
IEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3Au
aCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdF9wLmggXAorICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dF9wLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2ViY29udGV4dF9wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJw
YWdlX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeV9wLmggXApAQCAtNTA1LDYg
KzUwNyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2Fk
aXRlbS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNw
cCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbnJlcXVlc3QuY3BwIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHQuY3BwIFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZp
Z2F0aW9uaGlzdG9yeS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJjb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
Y29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBlYTE2Zgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2ViY29udGV4dC5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9n
cmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0X3AuaCIKKworI2luY2x1
ZGUgIlF0V2ViQ29udGV4dC5oIgorCisjaW5jbHVkZSAicXF1aWNrd2ViY29udGV4dF9wX3AuaCIK
KyNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKworI2luY2x1ZGUgPFF0UXVpY2svUVF1aWNr
SXRlbT4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQVBJQ2FzdC5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OworCitRUXVpY2tXZWJDb250ZXh0UHJpdmF0ZTo6UVF1aWNrV2ViQ29udGV4dFByaXZh
dGUoUVF1aWNrV2ViQ29udGV4dCogd2ViQ29udGV4dCkKKyAgICA6IHFfcHRyKHdlYkNvbnRleHQp
CisgICAgLCBpc0luaXRpYWxpemVkKGZhbHNlKQoreworfQorCitRUXVpY2tXZWJDb250ZXh0OjpR
UXVpY2tXZWJDb250ZXh0KFFRdWlja0l0ZW0qIHBhcmVudCkKKyAgICA6IFFPYmplY3QocGFyZW50
KQorICAgICwgZF9wdHIobmV3IFFRdWlja1dlYkNvbnRleHRQcml2YXRlKHRoaXMpKQoreworfQor
CitRUXVpY2tXZWJDb250ZXh0Ojp+UVF1aWNrV2ViQ29udGV4dCgpCit7CisgICAgd2hpbGUgKCFk
X3B0ci0+dmlld3MuaXNFbXB0eSgpKQorICAgICAgICBkZWxldGUgZF9wdHItPnZpZXdzLnRha2VG
aXJzdCgpOworCisgICAgZGVsZXRlIGRfcHRyOworfQorCit2b2lkIFFRdWlja1dlYkNvbnRleHQ6
OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgZF9wdHItPmNvbnRl
eHQgPSBjb250ZXh0UmVmID8gV2ViS2l0OjpRdFdlYkNvbnRleHQ6OmNyZWF0ZSh0b0ltcGwoY29u
dGV4dFJlZikpIDogV2ViS2l0OjpRdFdlYkNvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCk7CisgICAg
ZF9wdHItPmlzSW5pdGlhbGl6ZWQgPSB0cnVlOworfQorCit2b2lkIFFRdWlja1dlYkNvbnRleHQ6
OmFkZFdlYlZpZXcoUVF1aWNrV2ViVmlldyogd2ViVmlldykKK3sKKyAgICBpZiAoIWRfcHRyLT52
aWV3cy5jb250YWlucyh3ZWJWaWV3KSkKKyAgICAgICAgZF9wdHItPnZpZXdzIDw8IHdlYlZpZXc7
Cit9CisKK3ZvaWQgUVF1aWNrV2ViQ29udGV4dDo6cmVtb3ZlV2ViVmlldyhRUXVpY2tXZWJWaWV3
KiB3ZWJWaWV3KQoreworICAgIGRfcHRyLT52aWV3cy5yZW1vdmVBbGwod2ViVmlldyk7Cit9CisK
KyNpbmNsdWRlICJtb2NfcXF1aWNrd2ViY29udGV4dF9wLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dF9wLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHRfcC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1OGJiOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHRfcC5oCkBAIC0wLDAg
KzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIHFxdWlja3dlYmNvbnRleHRfcF9o
CisjZGVmaW5lIHFxdWlja3dlYmNvbnRleHRfcF9oCisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFs
LmgiCisjaW5jbHVkZSA8UXRRdWljay9xcXVpY2tpdGVtLmg+CisKK2NsYXNzIFFRdWlja1dlYkNv
bnRleHRQcml2YXRlOworY2xhc3MgUVdlYkRvd25sb2FkSXRlbTsKK2NsYXNzIFFRdWlja1dlYlZp
ZXc7CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29udGV4dCogV0tDb250ZXh0UmVm
OworCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJDb250ZXh0IDogcHVibGljIFFPYmpl
Y3QgeworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgUVF1aWNrV2ViQ29udGV4dChRUXVpY2tJ
dGVtKiBwYXJlbnQgPSAwKTsKKyAgICB2aXJ0dWFsIH5RUXVpY2tXZWJDb250ZXh0KCk7CisKKyAg
ICB2b2lkIGluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYgPSAwKTsKKyAgICB2b2lk
IGFkZFdlYlZpZXcoUVF1aWNrV2ViVmlldyopOworICAgIHZvaWQgcmVtb3ZlV2ViVmlldyhRUXVp
Y2tXZWJWaWV3Kik7CisKK1FfU0lHTkFMUzoKKyAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFX
ZWJEb3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CisKK3ByaXZhdGU6CisgICAgUVF1aWNrV2Vi
Q29udGV4dFByaXZhdGUqIGRfcHRyOworICAgIFFfREVDTEFSRV9QUklWQVRFKFFRdWlja1dlYkNv
bnRleHQpCisKKyAgICBmcmllbmQgY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CisgICAgZnJp
ZW5kIGNsYXNzIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw7CisgICAgZnJpZW5kIGNsYXNzIFF0
V2ViUGFnZVByb3h5OworfTsKKworI2VuZGlmIC8vIHFxdWlja3dlYmNvbnRleHRfcF9oCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4
dF9wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4
dF9wX3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTBmYTMwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJj
b250ZXh0X3BfcC5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh
bTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVm
IHFxdWlja3dlYmNvbnRleHRfcF9wX2gKKyNkZWZpbmUgcXF1aWNrd2ViY29udGV4dF9wX3BfaAor
CisjaW5jbHVkZSAiUXRXZWJDb250ZXh0LmgiCisKKyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0
X3AuaCIKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworY2xhc3MgUVF1aWNrV2ViQ29udGV4
dFByaXZhdGUgeworICAgIFFfREVDTEFSRV9QVUJMSUMoUVF1aWNrV2ViQ29udGV4dCkKKyAgICBm
cmllbmQgY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CisgICAgZnJpZW5kIGNsYXNzIFFRdWlj
a1dlYlZpZXdFeHBlcmltZW50YWw7CisKK3B1YmxpYzoKKyAgICBRUXVpY2tXZWJDb250ZXh0UHJp
dmF0ZShRUXVpY2tXZWJDb250ZXh0Kik7CisKK3ByaXZhdGU6CisgICAgUVF1aWNrV2ViQ29udGV4
dCogcV9wdHI7CisgICAgUmVmUHRyPFdlYktpdDo6UXRXZWJDb250ZXh0PiBjb250ZXh0OworICAg
IGJvb2wgaXNJbml0aWFsaXplZDsKKyAgICBRTGlzdDxRUXVpY2tXZWJWaWV3Kj4gdmlld3M7Cit9
OworI2VuZGlmIC8vIHFxdWlja3dlYmNvbnRleHRfcF9wX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggM2YxNDkyYS4uMmI5
ZjBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXcuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIK
IAogI2luY2x1ZGUgInFxdWlja25ldHdvcmtyZXBseV9wLmgiCisjaW5jbHVkZSAicXF1aWNrd2Vi
Y29udGV4dF9wX3AuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3BfcC5oIgogI2luY2x1ZGUg
InFxdWlja3dlYnZpZXdfcF9wLmgiCiAjaW5jbHVkZSAicXdlYmRvd25sb2FkaXRlbV9wX3AuaCIK
QEAgLTYxLDYgKzYyLDcgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2
YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgICwgcGFnZUlzU3VzcGVuZGVkKGZhbHNl
KQogICAgICwgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoZmFsc2UpCiAgICAgLCBpc0luaXRp
YWxpemVkKGZhbHNlKQorICAgICwgbV9jb250ZXh0KG5ldyBRUXVpY2tXZWJDb250ZXh0KHZpZXdw
b3J0KSkKIHsKICAgICB2aWV3cG9ydC0+c2V0RmxhZ3MoUVF1aWNrSXRlbTo6SXRlbUNsaXBzQ2hp
bGRyZW5Ub1NoYXBlKTsKICAgICBRT2JqZWN0Ojpjb25uZWN0KHZpZXdwb3J0LCBTSUdOQUwodmlz
aWJsZUNoYW5nZWQoKSksIHZpZXdwb3J0LCBTTE9UKF9xX29uVmlzaWJsZUNoYW5nZWQoKSkpOwpA
QCAtNzMsMTEgKzc1LDEzIEBAIFFRdWlja1dlYlZpZXdQcml2YXRlOjp+UVF1aWNrV2ViVmlld1By
aXZhdGUoKQogewogICAgIGlmIChpbnRlcmFjdGlvbkVuZ2luZSkKICAgICAgICAgaW50ZXJhY3Rp
b25FbmdpbmUtPmRpc2Nvbm5lY3QoKTsKLSAgICB3ZWJQYWdlUHJveHktPmNsb3NlKCk7CisKKyAg
ICBpZiAod2ViUGFnZVByb3h5KQorICAgICAgICB3ZWJQYWdlUHJveHktPmNsb3NlKCk7CiB9CiAK
IC8vIE5vdGU6IHdlIGRlbGF5IHRoaXMgaW5pdGlhbGl6YXRpb24gdG8gbWFrZSBzdXJlIHRoYXQg
UVF1aWNrV2ViVmlldyBoYXMgaXRzIGQtcHRyIGluLXBsYWNlLgotdm9pZCBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwUmVmKQordm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZShR
UXVpY2tXZWJDb250ZXh0KiB3ZWJDb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYp
CiB7CiAgICAgUmVmUHRyPFdlYlBhZ2VHcm91cD4gcGFnZUdyb3VwOwogICAgIGlmIChwYWdlR3Jv
dXBSZWYpCkBAIC04NSw4ICs4OSwxMiBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0
aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYQogICAgIGVs
c2UKICAgICAgICAgcGFnZUdyb3VwID0gV2ViUGFnZUdyb3VwOjpjcmVhdGUoKTsKIAotICAgIGNv
bnRleHQgPSBjb250ZXh0UmVmID8gUXRXZWJDb250ZXh0OjpjcmVhdGUodG9JbXBsKGNvbnRleHRS
ZWYpKSA6IFF0V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKTsKLSAgICB3ZWJQYWdlUHJveHkg
PSBjb250ZXh0LT5jcmVhdGVXZWJQYWdlKCZwYWdlQ2xpZW50LCBwYWdlR3JvdXAuZ2V0KCkpOwor
ICAgIGlmICh3ZWJDb250ZXh0KQorICAgICAgICBtX2NvbnRleHQgPSB3ZWJDb250ZXh0OworICAg
IGVsc2UgaWYgKCFtX2NvbnRleHQtPmRfcHRyLT5pc0luaXRpYWxpemVkKQorICAgICAgICBtX2Nv
bnRleHQtPmluaXRpYWxpemUoKTsKKworICAgIHdlYlBhZ2VQcm94eSA9IG1fY29udGV4dC0+ZF9w
dHItPmNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UoJnBhZ2VDbGllbnQsIHBhZ2VHcm91cC5nZXQoKSk7
CiAKICAgICBRUXVpY2tXZWJQYWdlUHJpdmF0ZSogY29uc3QgcGFnZVZpZXdQcml2YXRlID0gcGFn
ZVZpZXcuZGF0YSgpLT5kOwogICAgIHBhZ2VWaWV3UHJpdmF0ZS0+aW5pdGlhbGl6ZSh3ZWJQYWdl
UHJveHkuZ2V0KCkpOwpAQCAtOTYsNyArMTA0LDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGEK
ICAgICBwYWdlVUlDbGllbnQucmVzZXQobmV3IFF0V2ViUGFnZVVJQ2xpZW50KHRvQVBJKHdlYlBh
Z2VQcm94eS5nZXQoKSksIHFfcHRyKSk7CiAgICAgbmF2aWdhdGlvbkhpc3RvcnktPmQtPnNldFBh
Z2UodG9BUEkod2ViUGFnZVByb3h5LmdldCgpKSk7CiAKLSAgICBRdFdlYkljb25EYXRhYmFzZUNs
aWVudCogaWNvbkRhdGFiYXNlID0gY29udGV4dC0+aWNvbkRhdGFiYXNlKCk7CisgICAgUXRXZWJJ
Y29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZSA9IG1fY29udGV4dC0+ZF9wdHItPmNvbnRl
eHQtPmljb25EYXRhYmFzZSgpOwogICAgIFFPYmplY3Q6OmNvbm5lY3QoaWNvbkRhdGFiYXNlLCBT
SUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFVcmwsIFFVcmwpKSwgcV9wdHIsIFNMT1QoX3Ff
b25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVVybCwgUVVybCkpKTsKICAgICBRT2JqZWN0Ojpjb25u
ZWN0KHFfcHRyLCBTSUdOQUwodXJsQ2hhbmdlZChRVXJsKSksIGljb25EYXRhYmFzZSwgU0xPVChy
ZXF1ZXN0SWNvbkZvclBhZ2VVUkwoUVVybCkpKTsKIApAQCAtMTIwLDYgKzEyOCw3IEBAIHZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYs
IFdLUGFnZUdyb3VwUmVmIHBhCiAgICAgfQogCiAgICAgaXNJbml0aWFsaXplZCA9IHRydWU7CisK
IH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZW5hYmxlTW91c2VFdmVudHMoKQpAQCAt
Mjg5LDcgKzI5OCw3IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZURvd25sb2Fk
UmVxdWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKICAgICBkb3dubG9hZEl0ZW0tPmQtPmRv
d25sb2FkUHJveHkgPSBkb3dubG9hZDsKIAogICAgIHEtPmNvbm5lY3QoZG93bmxvYWRJdGVtLT5k
LCBTSUdOQUwocmVjZWl2ZWRSZXNwb25zZShRV2ViRG93bmxvYWRJdGVtKikpLCBxLCBTTE9UKF9x
X29uUmVjZWl2ZWRSZXNwb25zZUZyb21Eb3dubG9hZChRV2ViRG93bmxvYWRJdGVtKikpKTsKLSAg
ICBjb250ZXh0LT5kb3dubG9hZE1hbmFnZXIoKS0+YWRkRG93bmxvYWQoZG93bmxvYWQsIGRvd25s
b2FkSXRlbSk7CisgICAgbV9jb250ZXh0LT5kX3B0ci0+Y29udGV4dC0+ZG93bmxvYWRNYW5hZ2Vy
KCktPmFkZERvd25sb2FkKGRvd25sb2FkLCBkb3dubG9hZEl0ZW0pOwogfQogCiB2b2lkIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZSgpCkBAIC0z
MzEsNyArMzQwLDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6X3Ffb25SZWNlaXZlZFJl
c3BvbnNlRnJvbURvd25sb2FkKFFXZWJEb3dubG9hZEl0ZW0qIGQKIAogICAgIFFfUShRUXVpY2tX
ZWJWaWV3KTsKICAgICBRRGVjbGFyYXRpdmVFbmdpbmU6OnNldE9iamVjdE93bmVyc2hpcChkb3du
bG9hZEl0ZW0sIFFEZWNsYXJhdGl2ZUVuZ2luZTo6SmF2YVNjcmlwdE93bmVyc2hpcCk7Ci0gICAg
ZW1pdCBxLT5leHBlcmltZW50YWwoKS0+ZG93bmxvYWRSZXF1ZXN0ZWQoZG93bmxvYWRJdGVtKTsK
KyAgICBlbWl0IHEtPmNvbnRleHQoKS0+ZG93bmxvYWRSZXF1ZXN0ZWQoZG93bmxvYWRJdGVtKTsK
IH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlVmlld3BvcnRTaXplKCkKQEAg
LTU0MSw3ICs1NTAsNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpzZXRJY29uKGNvbnN0
IFFVcmwmIGljb25VUkwpCiAgICAgU3RyaW5nIG5ld1BhZ2VVUkwgPSB3ZWJQYWdlUHJveHktPm1h
aW5GcmFtZSgpLT51cmwoKTsKIAogICAgIGlmIChvbGRQYWdlVVJMICE9IG5ld1BhZ2VVUkwpIHsK
LSAgICAgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZSA9IGNvbnRleHQt
Pmljb25EYXRhYmFzZSgpOworICAgICAgICBRdFdlYkljb25EYXRhYmFzZUNsaWVudCogaWNvbkRh
dGFiYXNlID0gbV9jb250ZXh0LT5kX3B0ci0+Y29udGV4dC0+aWNvbkRhdGFiYXNlKCk7CiAgICAg
ICAgIGlmICghb2xkUGFnZVVSTC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBpY29uRGF0YWJhc2Ut
PnJlbGVhc2VJY29uRm9yUGFnZVVSTChvbGRQYWdlVVJMKTsKIApAQCAtNTY0LDcgKzU3Myw3IEBA
IHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChi
b29sIGVuYWJsZWQpCiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBoYXZlIHRvIGtlZXAgdGhp
cyBpbmZvcm1hdGlvbiBpbiBib3RoIHByb2Nlc3NlcyBhbmQgdGhlIHNldHRpbmcgaXMgYXN5bmNo
cm9ub3VzLgogICAgIG1fbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkID0gZW5hYmxlZDsKIAotICAg
IGNvbnRleHQtPnNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCh3ZWJQYWdlUHJveHkuZ2V0KCks
IGVuYWJsZWQpOworICAgIG1fY29udGV4dC0+ZF9wdHItPmNvbnRleHQtPnNldE5hdmlnYXRvclF0
T2JqZWN0RW5hYmxlZCh3ZWJQYWdlUHJveHkuZ2V0KCksIGVuYWJsZWQpOwogfQogCiBXZWJDb3Jl
OjpJbnRTaXplIFFRdWlja1dlYlZpZXdQcml2YXRlOjp2aWV3U2l6ZSgpIGNvbnN0CkBAIC02MzMs
NyArNjQyLDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRVc2VUcmFkaXRp
b25hbERlc2t0b3BCZWhhdmlvdXIoYm9vbCBlbmFibGUpCiB2b2lkIFFRdWlja1dlYlZpZXdFeHBl
cmltZW50YWw6OnBvc3RNZXNzYWdlKGNvbnN0IFFTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgUV9E
KFFRdWlja1dlYlZpZXcpOwotICAgIGQtPmNvbnRleHQtPnBvc3RNZXNzYWdlVG9OYXZpZ2F0b3JR
dE9iamVjdChkLT53ZWJQYWdlUHJveHkuZ2V0KCksIG1lc3NhZ2UpOworICAgIGQtPm1fY29udGV4
dC0+ZF9wdHItPmNvbnRleHQtPnBvc3RNZXNzYWdlVG9OYXZpZ2F0b3JRdE9iamVjdChkLT53ZWJQ
YWdlUHJveHkuZ2V0KCksIG1lc3NhZ2UpOwogfQogCiBRRGVjbGFyYXRpdmVDb21wb25lbnQqIFFR
dWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmFsZXJ0RGlhbG9nKCkgY29uc3QKQEAgLTgxMiwxMyAr
ODIxLDEzIEBAIFFRdWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXcoUVF1aWNrSXRlbSogcGFyZW50
KQogewogfQogCi1RUXVpY2tXZWJWaWV3OjpRUXVpY2tXZWJWaWV3KFdLQ29udGV4dFJlZiBjb250
ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIFFRdWlja0l0ZW0qIHBhcmVudCkK
K1FRdWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXcoUVF1aWNrV2ViQ29udGV4dCogd2ViQ29udGV4
dCwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBRUXVpY2tJdGVtKiBwYXJlbnQpCiAgICAg
OiBRUXVpY2tJdGVtKHBhcmVudCkKICAgICAsIGRfcHRyKG5ldyBRUXVpY2tXZWJWaWV3UHJpdmF0
ZSh0aGlzKSkKICAgICAsIG1fZXhwZXJpbWVudGFsKG5ldyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVu
dGFsKHRoaXMpKQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKLSAgICBkLT5pbml0aWFsaXpl
KGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7CisgICAgZC0+aW5pdGlhbGl6ZSh3ZWJDb250ZXh0
LCBwYWdlR3JvdXBSZWYpOwogfQogCiBRUXVpY2tXZWJWaWV3Ojp+UVF1aWNrV2ViVmlldygpCkBA
IC0xMTc4LDQgKzExODcsMjQgQEAgdm9pZCBRUXVpY2tXZWJWaWV3Ojpjb21wb25lbnRDb21wbGV0
ZSgpCiAgICAgZC0+c2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKGQtPnBhZ2VWaWV3
LT51c2VzVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKCkpOwogfQogCit2b2lkIFFRdWlja1dl
YlZpZXc6OnNldENvbnRleHQoUVF1aWNrV2ViQ29udGV4dCogd2ViQ29udGV4dCkKK3sKKyAgICBR
X0QoUVF1aWNrV2ViVmlldyk7CisKKyAgICBpZiAod2ViQ29udGV4dCA9PSBkLT5tX2NvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIGQtPm1fY29udGV4dC0+cmVtb3ZlV2ViVmlldyh0aGlz
KTsKKyAgICBkLT5tX2NvbnRleHQgPSB3ZWJDb250ZXh0OworICAgIGQtPm1fY29udGV4dC0+YWRk
V2ViVmlldyh0aGlzKTsKKworICAgIGVtaXQgY29udGV4dENoYW5nZWQoKTsKK30KKworUVF1aWNr
V2ViQ29udGV4dCogUVF1aWNrV2ViVmlldzo6Y29udGV4dCgpCit7CisgICAgUV9EKFFRdWlja1dl
YlZpZXcpOworICAgIHJldHVybiBkLT5tX2NvbnRleHQ7Cit9CisKICNpbmNsdWRlICJtb2NfcXF1
aWNrd2Vidmlld19wLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDU5NTk0ZGIuLjgwMTY0ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMjgsNiAr
MjgsOCBAQAogCiBjbGFzcyBRV2ViTmF2aWdhdGlvblJlcXVlc3Q7CiBjbGFzcyBRRGVjbGFyYXRp
dmVDb21wb25lbnQ7CitjbGFzcyBRUXVpY2tXZWJDb250ZXh0OworY2xhc3MgUVF1aWNrV2ViQ29u
dGV4dFByaXZhdGU7CiBjbGFzcyBRUXVpY2tXZWJQYWdlOwogY2xhc3MgUVF1aWNrV2ViVmlld0F0
dGFjaGVkOwogY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CkBAIC01MSw3ICs1Myw2IEBAIG5h
bWVzcGFjZSBXVEYgewogdGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3MgUGFzc1JlZlB0cjsKIH0KIAot
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDb250ZXh0KiBXS0NvbnRleHRSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIApAQCAtNzAsNiArNzEs
NyBAQCBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3IDogcHVibGljIFFRdWlja0l0
ZW0gewogICAgIFFfUFJPUEVSVFkoYm9vbCBjYW5Hb0ZvcndhcmQgUkVBRCBjYW5Hb0ZvcndhcmQg
Tk9USUZZIG5hdmlnYXRpb25TdGF0ZUNoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShib29s
IGxvYWRpbmcgUkVBRCBsb2FkaW5nIE5PVElGWSBuYXZpZ2F0aW9uU3RhdGVDaGFuZ2VkIEZJTkFM
KQogICAgIFFfUFJPUEVSVFkoYm9vbCBjYW5SZWxvYWQgUkVBRCBjYW5SZWxvYWQgTk9USUZZIG5h
dmlnYXRpb25TdGF0ZUNoYW5nZWQgRklOQUwpCisgICAgUV9QUk9QRVJUWShRUXVpY2tXZWJDb250
ZXh0KiBjb250ZXh0IFJFQUQgY29udGV4dCBXUklURSBzZXRDb250ZXh0IE5PVElGWSBjb250ZXh0
Q2hhbmdlZCkKICAgICBRX0VOVU1TKE5hdmlnYXRpb25SZXF1ZXN0QWN0aW9uKQogICAgIFFfRU5V
TVMoRXJyb3JEb21haW4pCiAKQEAgLTExNCw2ICsxMTYsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgY29tcG9uZW50Q29tcGxldGUoKTsKIAorICAgIFFRdWlja1dlYkNvbnRleHQqIGNv
bnRleHQoKTsKKyAgICB2b2lkIHNldENvbnRleHQoUVF1aWNrV2ViQ29udGV4dCopOworCiBwdWJs
aWMgUV9TTE9UUzoKICAgICB2b2lkIGxvYWQoY29uc3QgUVVybCYpOwogICAgIHZvaWQgbG9hZEh0
bWwoY29uc3QgUVN0cmluZyYgaHRtbCwgY29uc3QgUVVybCYgYmFzZVVybCA9IFFVcmwoKSk7CkBA
IC0xMzQsNiArMTM5LDcgQEAgUV9TSUdOQUxTOgogICAgIHZvaWQgbGlua0hvdmVyZWQoY29uc3Qg
UVVybCYgdXJsLCBjb25zdCBRU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCBuYXZpZ2F0aW9uU3Rh
dGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBuYXZpZ2F0aW9uUmVxdWVzdGVkKFFXZWJOYXZpZ2F0aW9u
UmVxdWVzdCogcmVxdWVzdCk7CisgICAgdm9pZCBjb250ZXh0Q2hhbmdlZCgpOwogCiBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGdlb21ldHJ5Q2hhbmdlZChjb25zdCBRUmVjdEYmLCBjb25z
dCBRUmVjdEYmKTsKQEAgLTE2MSw3ICsxNjcsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IFFfREVDTEFSRV9QUklWQVRFKFFRdWlja1dlYlZpZXcpCiAKLSAgICBRUXVpY2tXZWJWaWV3KFdL
Q29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIFFRdWlja0l0ZW0qIHBhcmVudCA9IDApOworICAg
IFFRdWlja1dlYlZpZXcoUVF1aWNrV2ViQ29udGV4dCosIFdLUGFnZUdyb3VwUmVmLCBRUXVpY2tJ
dGVtKiBwYXJlbnQgPSAwKTsKICAgICBXS1BhZ2VSZWYgcGFnZVJlZigpIGNvbnN0OwogCiAgICAg
UV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffc3VzcGVuZCgpKTsKQEAgLTI2MCw3ICsy
NjYsNiBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBjb25maXJtRGlhbG9nQ2hhbmdlZCgpOwogICAg
IHZvaWQgcHJvbXB0RGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQgaXRlbVNlbGVjdG9yQ2hhbmdl
ZCgpOwotICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0ZWQoUVdlYkRvd25sb2FkSXRlbSogZG93bmxv
YWRJdGVtKTsKICAgICB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQoUVdlYlBlcm1pc3Npb25SZXF1
ZXN0KiBwZXJtaXNzaW9uKTsKICAgICB2b2lkIG1lc3NhZ2VSZWNlaXZlZChjb25zdCBRVmFyaWFu
dE1hcCYgbWVzc2FnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCAwNzhjNjgxLi41ZjI1NDE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUXRXZWJVbmRvQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eS5oIgogCisjaW5jbHVkZSAicXF1aWNrd2ViY29udGV4dF9wLmgiCiAj
aW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9wLmgi
CiAKQEAgLTY0LDcgKzY1LDcgQEAgcHVibGljOgogICAgIFFRdWlja1dlYlZpZXdQcml2YXRlKFFR
dWlja1dlYlZpZXcqIHZpZXdwb3J0KTsKICAgICB2aXJ0dWFsIH5RUXVpY2tXZWJWaWV3UHJpdmF0
ZSgpOwogCi0gICAgdm9pZCBpbml0aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmID0gMCwg
V0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gMCk7CisgICAgdm9pZCBpbml0aWFsaXplKFFR
dWlja1dlYkNvbnRleHQqIHdlYkNvbnRleHQgPSAwLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBS
ZWYgPSAwKTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVRvdWNoKFFRdWlja1dlYlZpZXcqIHZpZXdw
b3J0KTsKICAgICB2b2lkIGluaXRpYWxpemVEZXNrdG9wKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0
KTsKQEAgLTEzMCw3ICsxMzEsNiBAQCBwcml2YXRlOgogICAgICAgICBRUG9pbnQgcG9zaXRpb247
CiAgICAgfTsKIAotICAgIFJlZlB0cjxRdFdlYkNvbnRleHQ+IGNvbnRleHQ7CiAgICAgUmVmUHRy
PFdlYktpdDo6V2ViUGFnZVByb3h5PiB3ZWJQYWdlUHJveHk7CiAKICAgICBRdFBhZ2VDbGllbnQg
cGFnZUNsaWVudDsKQEAgLTE2Miw2ICsxNjIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9uYXZp
Z2F0b3JRdE9iamVjdEVuYWJsZWQ7CiAgICAgUVVybCBtX2ljb25VUkw7CiAgICAgYm9vbCBpc0lu
aXRpYWxpemVkOworCisgICAgUVF1aWNrV2ViQ29udGV4dCogbV9jb250ZXh0OwogfTsKIAogI2Vu
ZGlmIC8vIHFxdWlja3dlYnZpZXdfcF9wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0
aW9uUmVxdWVzdGVkLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbAppbmRl
eCAzZWY3ZDU1Li4wZjNhZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVl
c3RlZC5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sCkBAIC0yOCw3
ICsyOCw3IEBAIEl0ZW0gewogICAgICAgICAgICAgb3JpZ2luYXRpbmdVcmwgPSByZXF1ZXN0Lm9y
aWdpbmF0aW5nVXJsCiAgICAgICAgIH0KIAotICAgICAgICBleHBlcmltZW50YWwub25Eb3dubG9h
ZFJlcXVlc3RlZDogeworICAgICAgICBjb250ZXh0Lm9uRG93bmxvYWRSZXF1ZXN0ZWQ6IHsKICAg
ICAgICAgICAgIGRvd25sb2FkLnRhcmdldCA9IGRvd25sb2FkSXRlbQogICAgICAgICAgICAgZXhw
ZWN0ZWRMZW5ndGggPSBkb3dubG9hZEl0ZW0uZXhwZWN0ZWRDb250ZW50TGVuZ3RoCiAgICAgICAg
ICAgICBkb3dubG9hZEl0ZW0uZGVzdGluYXRpb25QYXRoID0gZG93bmxvYWRJdGVtLnN1Z2dlc3Rl
ZEZpbGVuYW1lCkBAIC02Myw3ICs2Myw3IEBAIEl0ZW0gewogCiAgICAgU2lnbmFsU3B5IHsKICAg
ICAgICAgaWQ6IGRvd25sb2FkU3B5Ci0gICAgICAgIHRhcmdldDogd2ViVmlldy5leHBlcmltZW50
YWwKKyAgICAgICAgdGFyZ2V0OiB3ZWJWaWV3LmNvbnRleHQKICAgICAgICAgc2lnbmFsTmFtZTog
ImRvd25sb2FkUmVxdWVzdGVkIgogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9kb3dubG9hZC5xbWwg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcv
dHN0X2Rvd25sb2FkLnFtbAppbmRleCA2YzI1YWYzLi45MzIzYzdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2Rv
d25sb2FkLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X2Rvd25sb2FkLnFtbApAQCAtMTUsNyArMTUsNyBAQCBXZWJWaWV3
IHsKIAogICAgIFNpZ25hbFNweSB7CiAgICAgICAgIGlkOiBzcHkKLSAgICAgICAgdGFyZ2V0OiBl
eHBlcmltZW50YWwKKyAgICAgICAgdGFyZ2V0OiBjb250ZXh0CiAgICAgICAgIHNpZ25hbE5hbWU6
ICJkb3dubG9hZFJlcXVlc3RlZCIKICAgICB9CiAKQEAgLTI1LDcgKzI1LDcgQEAgV2ViVmlldyB7
CiAgICAgICAgIHNpZ25hbE5hbWU6ICJkb3dubG9hZEZpbmlzaGVkIgogICAgIH0KIAotICAgIGV4
cGVyaW1lbnRhbC5vbkRvd25sb2FkUmVxdWVzdGVkOiB7CisgICAgY29udGV4dC5vbkRvd25sb2Fk
UmVxdWVzdGVkOiB7CiAgICAgICAgIGRvd25sb2FkLnRhcmdldCA9IGRvd25sb2FkSXRlbQogICAg
ICAgICBleHBlY3RlZExlbmd0aCA9IGRvd25sb2FkSXRlbS5leHBlY3RlZENvbnRlbnRMZW5ndGgK
ICAgICAgICAgZG93bmxvYWRJdGVtLmRlc3RpbmF0aW9uUGF0aCA9IGRvd25sb2FkSXRlbS5zdWdn
ZXN0ZWRGaWxlbmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgYi9T
b3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAppbmRleCAzYWY4NDkyLi5lZTliNTI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAorKysgYi9Tb3VyY2UvcXR3ZWJraXQtZXhw
b3J0Lm1hcApAQCAtMTU0LDcgKzE1NCw5IEBAIHF3a18xLjAgewogICAgICAgICBRUXVpY2tOZXR3
b3JrUmVxdWVzdDo6KjsKICAgICAgICAgKlFRdWlja05ldHdvcmtSZXBseTsKICAgICAgICAgUVF1
aWNrTmV0d29ya1JlcGx5OjoqOwotCisgICAgICAgICpRUXVpY2tXZWJDb250ZXh0OworICAgICAg
ICBub24tdmlydHVhbD90aHVuaz90bz9RUXVpY2tXZWJDb250ZXh0KjsKKyAgICAgICAgUVF1aWNr
V2ViQ29udGV4dDo6KjsKIAogICAgICAgICAjIFdlYktpdCAyIEMgQVBJIG1hbmdsZWQgaW4gQysr
CiAgICAgICAgIFdLU3RyaW5nQ29weVFTdHJpbmcqOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxh
dGZvcm1XZWJWaWV3LmgKaW5kZXggMGU4YzZiNS4uMWY1M2MzOSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8V2Vi
S2l0Mi9XS1JldGFpblB0ci5oPgogCiAjaWYgZGVmaW5lZChCVUlMRElOR19RVF9fKQorY2xhc3Mg
UVF1aWNrV2ViQ29udGV4dDsKIGNsYXNzIFFRdWlja1dlYlZpZXc7CiB0eXBlZGVmIFFRdWlja1dl
YlZpZXcqIFBsYXRmb3JtV0tWaWV3OwogY2xhc3MgUVF1aWNrVmlldzsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKaW5kZXggMTNhMzNmOC4uYWZh
NDk2MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZp
ZXdRdC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdR
dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUg
IlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgInFxdWlja3dlYmNvbnRleHRfcC5oIgogI2lu
Y2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgog
CkBAIC00MSw5ICs0MiwxMCBAQCBuYW1lc3BhY2UgV1RSIHsKIGNsYXNzIFdyYXBwZXJXaW5kb3cg
OiBwdWJsaWMgUVF1aWNrVmlldyB7CiAgICAgUV9PQkpFQ1QKIHB1YmxpYzoKLSAgICBXcmFwcGVy
V2luZG93KFFRdWlja1dlYlZpZXcqIHZpZXcpCisgICAgV3JhcHBlcldpbmRvdyhRUXVpY2tXZWJW
aWV3KiB2aWV3LCBRUXVpY2tXZWJDb250ZXh0KiBjb250ZXh0KQogICAgICAgICA6IFFRdWlja1Zp
ZXcoUVVybCgiZGF0YTp0ZXh0L3BsYWluLGltcG9ydCBRdFF1aWNrIDIuMFxuSXRlbSB7IG9iamVj
dE5hbWU6ICdyb290JyB9IikpCiAgICAgICAgICwgbV92aWV3KHZpZXcpCisgICAgICAgICwgbV9j
b250ZXh0KGNvbnRleHQpCiAgICAgewogICAgICAgICBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFs
KHZpZXcpLnNldFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cih0cnVlKTsKICAgICAgICAg
Y29ubmVjdCh0aGlzLCBTSUdOQUwoc3RhdHVzQ2hhbmdlZChRUXVpY2tWaWV3OjpTdGF0dXMpKSwg
U0xPVChoYW5kbGVTdGF0dXNDaGFuZ2VkKFFRdWlja1ZpZXc6OlN0YXR1cykpKTsKQEAgLTU4LDcg
KzYwLDggQEAgcHJpdmF0ZSBzbG90czoKICAgICAgICAgc2V0R2VvbWV0cnkoMCwgMCwgODAwLCA2
MDApOwogICAgICAgICBzZXRSZXNpemVNb2RlKFFRdWlja1ZpZXc6OlNpemVSb290T2JqZWN0VG9W
aWV3KTsKIAotICAgICAgICBtX3ZpZXctPnNldFBhcmVudEl0ZW0ocm9vdE9iamVjdCgpKTsKKyAg
ICAgICAgbV9jb250ZXh0LT5zZXRQYXJlbnQocm9vdE9iamVjdCgpKTsKKyAgICAgICAgbV9jb250
ZXh0LT5hZGRXZWJWaWV3KG1fdmlldyk7CiAgICAgICAgIFFEZWNsYXJhdGl2ZVByb3BlcnR5Ojp3
cml0ZShtX3ZpZXcsICJhbmNob3JzLmZpbGwiLCBxVmFyaWFudEZyb21WYWx1ZShyb290T2JqZWN0
KCkpKTsKIAogICAgICAgICBRV2luZG93U3lzdGVtSW50ZXJmYWNlOjpoYW5kbGVXaW5kb3dBY3Rp
dmF0ZWQodGhpcyk7CkBAIC02NywxNCArNzAsMTcgQEAgcHJpdmF0ZSBzbG90czoKIAogcHJpdmF0
ZToKICAgICBRUXVpY2tXZWJWaWV3KiBtX3ZpZXc7CisgICAgUVF1aWNrV2ViQ29udGV4dCogbV9j
b250ZXh0OwogfTsKIAogUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKLSAgICA6IG1fdmll
dyhuZXcgUVF1aWNrV2ViVmlldyhjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYpKQotICAgICwgbV93
aW5kb3cobmV3IFdyYXBwZXJXaW5kb3cobV92aWV3KSkKLSAgICAsIG1fd2luZG93SXNLZXkodHJ1
ZSkKKyAgICA6IG1fd2luZG93SXNLZXkodHJ1ZSkKICAgICAsIG1fbW9kYWxFdmVudExvb3AoMCkK
IHsKKyAgICBRUXVpY2tXZWJDb250ZXh0KiBjb250ZXh0ID0gbmV3IFFRdWlja1dlYkNvbnRleHQo
KTsKKyAgICBjb250ZXh0LT5pbml0aWFsaXplKGNvbnRleHRSZWYpOworICAgIG1fdmlldyA9IG5l
dyBRUXVpY2tXZWJWaWV3KGNvbnRleHQsIHBhZ2VHcm91cFJlZik7CisgICAgbV93aW5kb3cgPSBu
ZXcgV3JhcHBlcldpbmRvdyhtX3ZpZXcsIGNvbnRleHQpOwogfQogCiBQbGF0Zm9ybVdlYlZpZXc6
On5QbGF0Zm9ybVdlYlZpZXcoKQotLSAKMS43LjguMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122280</attachid>
            <date>2012-01-12 11:58:22 -0800</date>
            <delta_ts>2012-01-12 11:58:22 -0800</delta_ts>
            <desc>WIP - rebased after latest bug fixing on componentComplete</desc>
            <filename>0002-wip-webcontext.patch</filename>
            <type>text/plain</type>
            <size>24714</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA3OGE5NTcwODU1MDg2MjkxZjhmYjhlZDhmMjA5ZjcxZjc3MThmNGFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDUgSmFuIDIwMTIgMTA6Mjk6MzMgLTAzMDAKU3Vi
amVjdDogW1BBVENIIDIvMl0gd2lwIC0gd2ViY29udGV4dAoKU2lnbmVkLW9mZi1ieTogSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCndpcCB3ZWJj
b250ZXh0IGtlZXBzIGdvaW5nCgpTaWduZWQtb2ZmLWJ5OiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
IDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgoKd2lwIC0gY29udGV4dCAzIC0gYWRkaW5n
IGluaXQgdG8gcXF1aWNrd2ViY29udGV4dAoKU2lnbmVkLW9mZi1ieTogSmVzdXMgU2FuY2hlei1Q
YWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCndpcCAtIGFkZGluZyB2aWV3
cyB0byBhIGRlbGV0aW9uIGxpc3QgaW4gd2ViY29udGV4dAoKU2lnbmVkLW9mZi1ieTogSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KCndpcCB3ZWJj
b250ZXh0IGNsZWFuaW5nIHVwIGRlbGV0aW9ucwoKU2lnbmVkLW9mZi1ieTogSmVzdXMgU2FuY2hl
ei1QYWxlbmNpYSA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KLS0tCiAuLi4vV2ViS2l0
L3F0L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9wbHVnaW4uY3BwICB8ICAgIDIgKwogU291cmNl
L1dlYktpdDIvVGFyZ2V0LnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIC4u
Li9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dC5jcHAgIHwgICA3MSAr
KysrKysrKysrKysrKysrKysrKwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJjb250ZXh0X3AuaCAgfCAgIDU2ICsrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2ViY29udGV4dF9wX3AuaCAgICAgICAgfCAgIDQ1ICsrKysrKysrKysrKwogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCAgfCAgIDUzICsr
KysrKysrKysrLS0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXdfcC5oICB8ICAgMTEgKystCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmggICB8ICAgIDYgKy0KIC4uLi9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRp
b25SZXF1ZXN0ZWQucW1sICAgIHwgICAgNCArLQogLi4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9kb3dubG9hZC5xbWwgfCAgICA0ICstCiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0
Lm1hcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggICAgICAgICAgIHwgICAgMSArCiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcCAgICB8ICAgMTYgKysrLS0KIDEzIGZp
bGVzIGNoYW5nZWQsIDI0OSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRl
eHQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJjb250ZXh0X3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dF9wX3AuaAoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvZXhwZXJpbWVudGFsL3BsdWdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9wbHVnaW4uY3BwCmluZGV4IGNh
YjBmYmEuLjcwZTFiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUv
ZXhwZXJpbWVudGFsL3BsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2
ZS9leHBlcmltZW50YWwvcGx1Z2luLmNwcApAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSAi
cXF1aWNrbmV0d29ya3JlcGx5X3AuaCIKICNpbmNsdWRlICJxcXVpY2tuZXR3b3JrcmVxdWVzdF9w
LmgiCisjaW5jbHVkZSAicXF1aWNrd2ViY29udGV4dF9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vi
cGFnZV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSAicXdlYmRv
d25sb2FkaXRlbV9wLmgiCkBAIC00OCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IFFfQVNTRVJUKFFMYXRpbjFTdHJpbmcodXJpKSA9PSBRTGF0aW4xU3RyaW5nKCJRdFdlYktpdC5l
eHBlcmltZW50YWwiKSk7CiAKKyAgICAgICAgcW1sUmVnaXN0ZXJUeXBlPFFRdWlja1dlYkNvbnRl
eHQ+KHVyaSwgMywgMCwgIldlYkNvbnRleHQiKTsKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0
YWJsZVR5cGU8UVdlYkRvd25sb2FkSXRlbT4odXJpLCAzLCAwLCAiRG93bmxvYWRJdGVtIiwgUU9i
amVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgRG93bmxvYWRJdGVt
IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2ViTmF2aWdhdGlvbkxp
c3RNb2RlbD4odXJpLCAzLCAwLCAiTmF2aWdhdGlvbkxpc3RNb2RlbCIsIFFPYmplY3Q6OnRyKCJD
YW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIE5hdmlnYXRpb25MaXN0TW9kZWwiKSk7
CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJOYXZpZ2F0aW9uSGlzdG9y
eT4odXJpLCAzLCAwLCAiTmF2aWdhdGlvbkhpc3RvcnkiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNy
ZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOYXZpZ2F0aW9uSGlzdG9yeSIpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CmluZGV4IDM1OTgzZjAuLjc1MTExOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTc1LDYgKzE3NSw4IEBA
IEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3Au
aCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdF9wLmggXAorICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dF9wLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2ViY29udGV4dF9wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJw
YWdlX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeV9wLmggXApAQCAtNTA1LDYg
KzUwNyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2Fk
aXRlbS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNw
cCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbnJlcXVlc3QuY3BwIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHQuY3BwIFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZp
Z2F0aW9uaGlzdG9yeS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJjb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
Y29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBlYTE2Zgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2ViY29udGV4dC5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9n
cmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0X3AuaCIKKworI2luY2x1
ZGUgIlF0V2ViQ29udGV4dC5oIgorCisjaW5jbHVkZSAicXF1aWNrd2ViY29udGV4dF9wX3AuaCIK
KyNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKworI2luY2x1ZGUgPFF0UXVpY2svUVF1aWNr
SXRlbT4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQVBJQ2FzdC5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OworCitRUXVpY2tXZWJDb250ZXh0UHJpdmF0ZTo6UVF1aWNrV2ViQ29udGV4dFByaXZh
dGUoUVF1aWNrV2ViQ29udGV4dCogd2ViQ29udGV4dCkKKyAgICA6IHFfcHRyKHdlYkNvbnRleHQp
CisgICAgLCBpc0luaXRpYWxpemVkKGZhbHNlKQoreworfQorCitRUXVpY2tXZWJDb250ZXh0OjpR
UXVpY2tXZWJDb250ZXh0KFFRdWlja0l0ZW0qIHBhcmVudCkKKyAgICA6IFFPYmplY3QocGFyZW50
KQorICAgICwgZF9wdHIobmV3IFFRdWlja1dlYkNvbnRleHRQcml2YXRlKHRoaXMpKQoreworfQor
CitRUXVpY2tXZWJDb250ZXh0Ojp+UVF1aWNrV2ViQ29udGV4dCgpCit7CisgICAgd2hpbGUgKCFk
X3B0ci0+dmlld3MuaXNFbXB0eSgpKQorICAgICAgICBkZWxldGUgZF9wdHItPnZpZXdzLnRha2VG
aXJzdCgpOworCisgICAgZGVsZXRlIGRfcHRyOworfQorCit2b2lkIFFRdWlja1dlYkNvbnRleHQ6
OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgZF9wdHItPmNvbnRl
eHQgPSBjb250ZXh0UmVmID8gV2ViS2l0OjpRdFdlYkNvbnRleHQ6OmNyZWF0ZSh0b0ltcGwoY29u
dGV4dFJlZikpIDogV2ViS2l0OjpRdFdlYkNvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCk7CisgICAg
ZF9wdHItPmlzSW5pdGlhbGl6ZWQgPSB0cnVlOworfQorCit2b2lkIFFRdWlja1dlYkNvbnRleHQ6
OmFkZFdlYlZpZXcoUVF1aWNrV2ViVmlldyogd2ViVmlldykKK3sKKyAgICBpZiAoIWRfcHRyLT52
aWV3cy5jb250YWlucyh3ZWJWaWV3KSkKKyAgICAgICAgZF9wdHItPnZpZXdzIDw8IHdlYlZpZXc7
Cit9CisKK3ZvaWQgUVF1aWNrV2ViQ29udGV4dDo6cmVtb3ZlV2ViVmlldyhRUXVpY2tXZWJWaWV3
KiB3ZWJWaWV3KQoreworICAgIGRfcHRyLT52aWV3cy5yZW1vdmVBbGwod2ViVmlldyk7Cit9CisK
KyNpbmNsdWRlICJtb2NfcXF1aWNrd2ViY29udGV4dF9wLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4dF9wLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHRfcC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1OGJiOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYmNvbnRleHRfcC5oCkBAIC0wLDAg
KzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIHFxdWlja3dlYmNvbnRleHRfcF9o
CisjZGVmaW5lIHFxdWlja3dlYmNvbnRleHRfcF9oCisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFs
LmgiCisjaW5jbHVkZSA8UXRRdWljay9xcXVpY2tpdGVtLmg+CisKK2NsYXNzIFFRdWlja1dlYkNv
bnRleHRQcml2YXRlOworY2xhc3MgUVdlYkRvd25sb2FkSXRlbTsKK2NsYXNzIFFRdWlja1dlYlZp
ZXc7CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29udGV4dCogV0tDb250ZXh0UmVm
OworCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJDb250ZXh0IDogcHVibGljIFFPYmpl
Y3QgeworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgUVF1aWNrV2ViQ29udGV4dChRUXVpY2tJ
dGVtKiBwYXJlbnQgPSAwKTsKKyAgICB2aXJ0dWFsIH5RUXVpY2tXZWJDb250ZXh0KCk7CisKKyAg
ICB2b2lkIGluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYgPSAwKTsKKyAgICB2b2lk
IGFkZFdlYlZpZXcoUVF1aWNrV2ViVmlldyopOworICAgIHZvaWQgcmVtb3ZlV2ViVmlldyhRUXVp
Y2tXZWJWaWV3Kik7CisKK1FfU0lHTkFMUzoKKyAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFX
ZWJEb3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CisKK3ByaXZhdGU6CisgICAgUVF1aWNrV2Vi
Q29udGV4dFByaXZhdGUqIGRfcHRyOworICAgIFFfREVDTEFSRV9QUklWQVRFKFFRdWlja1dlYkNv
bnRleHQpCisKKyAgICBmcmllbmQgY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CisgICAgZnJp
ZW5kIGNsYXNzIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw7CisgICAgZnJpZW5kIGNsYXNzIFF0
V2ViUGFnZVByb3h5OworfTsKKworI2VuZGlmIC8vIHFxdWlja3dlYmNvbnRleHRfcF9oCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4
dF9wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2ViY29udGV4
dF9wX3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTBmYTMwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJj
b250ZXh0X3BfcC5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh
bTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVm
IHFxdWlja3dlYmNvbnRleHRfcF9wX2gKKyNkZWZpbmUgcXF1aWNrd2ViY29udGV4dF9wX3BfaAor
CisjaW5jbHVkZSAiUXRXZWJDb250ZXh0LmgiCisKKyNpbmNsdWRlICJxcXVpY2t3ZWJjb250ZXh0
X3AuaCIKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworY2xhc3MgUVF1aWNrV2ViQ29udGV4
dFByaXZhdGUgeworICAgIFFfREVDTEFSRV9QVUJMSUMoUVF1aWNrV2ViQ29udGV4dCkKKyAgICBm
cmllbmQgY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CisgICAgZnJpZW5kIGNsYXNzIFFRdWlj
a1dlYlZpZXdFeHBlcmltZW50YWw7CisKK3B1YmxpYzoKKyAgICBRUXVpY2tXZWJDb250ZXh0UHJp
dmF0ZShRUXVpY2tXZWJDb250ZXh0Kik7CisKK3ByaXZhdGU6CisgICAgUVF1aWNrV2ViQ29udGV4
dCogcV9wdHI7CisgICAgUmVmUHRyPFdlYktpdDo6UXRXZWJDb250ZXh0PiBjb250ZXh0OworICAg
IGJvb2wgaXNJbml0aWFsaXplZDsKKyAgICBRTGlzdDxRUXVpY2tXZWJWaWV3Kj4gdmlld3M7Cit9
OworI2VuZGlmIC8vIHFxdWlja3dlYmNvbnRleHRfcF9wX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggNGUzNDY4Yi4uYmJl
N2I2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXcuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIK
IAogI2luY2x1ZGUgInFxdWlja25ldHdvcmtyZXBseV9wLmgiCisjaW5jbHVkZSAicXF1aWNrd2Vi
Y29udGV4dF9wX3AuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3BfcC5oIgogI2luY2x1ZGUg
InFxdWlja3dlYnZpZXdfcF9wLmgiCiAjaW5jbHVkZSAicXdlYmRvd25sb2FkaXRlbV9wX3AuaCIK
QEAgLTYxLDYgKzYyLDcgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2
YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgICwgcGFnZUlzU3VzcGVuZGVkKGZhbHNl
KQogICAgICwgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoZmFsc2UpCiAgICAgLCBpc0luaXRp
YWxpemVkKGZhbHNlKQorICAgICwgbV9jb250ZXh0KG5ldyBRUXVpY2tXZWJDb250ZXh0KHZpZXdw
b3J0KSkKIHsKICAgICB2aWV3cG9ydC0+c2V0RmxhZ3MoUVF1aWNrSXRlbTo6SXRlbUNsaXBzQ2hp
bGRyZW5Ub1NoYXBlKTsKICAgICBRT2JqZWN0Ojpjb25uZWN0KHZpZXdwb3J0LCBTSUdOQUwodmlz
aWJsZUNoYW5nZWQoKSksIHZpZXdwb3J0LCBTTE9UKF9xX29uVmlzaWJsZUNoYW5nZWQoKSkpOwpA
QCAtNzMsMTEgKzc1LDEzIEBAIFFRdWlja1dlYlZpZXdQcml2YXRlOjp+UVF1aWNrV2ViVmlld1By
aXZhdGUoKQogewogICAgIGlmIChpbnRlcmFjdGlvbkVuZ2luZSkKICAgICAgICAgaW50ZXJhY3Rp
b25FbmdpbmUtPmRpc2Nvbm5lY3QoKTsKLSAgICB3ZWJQYWdlUHJveHktPmNsb3NlKCk7CisKKyAg
ICBpZiAod2ViUGFnZVByb3h5KQorICAgICAgICB3ZWJQYWdlUHJveHktPmNsb3NlKCk7CiB9CiAK
IC8vIE5vdGU6IHdlIGRlbGF5IHRoaXMgaW5pdGlhbGl6YXRpb24gdG8gbWFrZSBzdXJlIHRoYXQg
UVF1aWNrV2ViVmlldyBoYXMgaXRzIGQtcHRyIGluLXBsYWNlLgotdm9pZCBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwUmVmKQordm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZShR
UXVpY2tXZWJDb250ZXh0KiB3ZWJDb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYp
CiB7CiAgICAgUmVmUHRyPFdlYlBhZ2VHcm91cD4gcGFnZUdyb3VwOwogICAgIGlmIChwYWdlR3Jv
dXBSZWYpCkBAIC04NSw4ICs4OSwxMiBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0
aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYQogICAgIGVs
c2UKICAgICAgICAgcGFnZUdyb3VwID0gV2ViUGFnZUdyb3VwOjpjcmVhdGUoKTsKIAotICAgIGNv
bnRleHQgPSBjb250ZXh0UmVmID8gUXRXZWJDb250ZXh0OjpjcmVhdGUodG9JbXBsKGNvbnRleHRS
ZWYpKSA6IFF0V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKTsKLSAgICB3ZWJQYWdlUHJveHkg
PSBjb250ZXh0LT5jcmVhdGVXZWJQYWdlKCZwYWdlQ2xpZW50LCBwYWdlR3JvdXAuZ2V0KCkpOwor
ICAgIGlmICh3ZWJDb250ZXh0KQorICAgICAgICBtX2NvbnRleHQgPSB3ZWJDb250ZXh0OworICAg
IGVsc2UgaWYgKCFtX2NvbnRleHQtPmRfcHRyLT5pc0luaXRpYWxpemVkKQorICAgICAgICBtX2Nv
bnRleHQtPmluaXRpYWxpemUoKTsKKworICAgIHdlYlBhZ2VQcm94eSA9IG1fY29udGV4dC0+ZF9w
dHItPmNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UoJnBhZ2VDbGllbnQsIHBhZ2VHcm91cC5nZXQoKSk7
CiAKICAgICBRUXVpY2tXZWJQYWdlUHJpdmF0ZSogY29uc3QgcGFnZVZpZXdQcml2YXRlID0gcGFn
ZVZpZXcuZGF0YSgpLT5kOwogICAgIHBhZ2VWaWV3UHJpdmF0ZS0+aW5pdGlhbGl6ZSh3ZWJQYWdl
UHJveHkuZ2V0KCkpOwpAQCAtOTYsNyArMTA0LDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGEK
ICAgICBwYWdlVUlDbGllbnQucmVzZXQobmV3IFF0V2ViUGFnZVVJQ2xpZW50KHRvQVBJKHdlYlBh
Z2VQcm94eS5nZXQoKSksIHFfcHRyKSk7CiAgICAgbmF2aWdhdGlvbkhpc3RvcnktPmQtPnNldFBh
Z2UodG9BUEkod2ViUGFnZVByb3h5LmdldCgpKSk7CiAKLSAgICBRdFdlYkljb25EYXRhYmFzZUNs
aWVudCogaWNvbkRhdGFiYXNlID0gY29udGV4dC0+aWNvbkRhdGFiYXNlKCk7CisgICAgUXRXZWJJ
Y29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZSA9IG1fY29udGV4dC0+ZF9wdHItPmNvbnRl
eHQtPmljb25EYXRhYmFzZSgpOwogICAgIFFPYmplY3Q6OmNvbm5lY3QoaWNvbkRhdGFiYXNlLCBT
SUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFVcmwsIFFVcmwpKSwgcV9wdHIsIFNMT1QoX3Ff
b25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVVybCwgUVVybCkpKTsKICAgICBRT2JqZWN0Ojpjb25u
ZWN0KHFfcHRyLCBTSUdOQUwodXJsQ2hhbmdlZChRVXJsKSksIGljb25EYXRhYmFzZSwgU0xPVChy
ZXF1ZXN0SWNvbkZvclBhZ2VVUkwoUVVybCkpKTsKIApAQCAtMTIwLDYgKzEyOCw3IEBAIHZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYs
IFdLUGFnZUdyb3VwUmVmIHBhCiAgICAgfQogCiAgICAgaXNJbml0aWFsaXplZCA9IHRydWU7CisK
IH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZW5hYmxlTW91c2VFdmVudHMoKQpAQCAt
Mjg5LDcgKzI5OCw3IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZURvd25sb2Fk
UmVxdWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKICAgICBkb3dubG9hZEl0ZW0tPmQtPmRv
d25sb2FkUHJveHkgPSBkb3dubG9hZDsKIAogICAgIHEtPmNvbm5lY3QoZG93bmxvYWRJdGVtLT5k
LCBTSUdOQUwocmVjZWl2ZWRSZXNwb25zZShRV2ViRG93bmxvYWRJdGVtKikpLCBxLCBTTE9UKF9x
X29uUmVjZWl2ZWRSZXNwb25zZUZyb21Eb3dubG9hZChRV2ViRG93bmxvYWRJdGVtKikpKTsKLSAg
ICBjb250ZXh0LT5kb3dubG9hZE1hbmFnZXIoKS0+YWRkRG93bmxvYWQoZG93bmxvYWQsIGRvd25s
b2FkSXRlbSk7CisgICAgbV9jb250ZXh0LT5kX3B0ci0+Y29udGV4dC0+ZG93bmxvYWRNYW5hZ2Vy
KCktPmFkZERvd25sb2FkKGRvd25sb2FkLCBkb3dubG9hZEl0ZW0pOwogfQogCiB2b2lkIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZSgpCkBAIC0z
MzIsNyArMzQxLDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6X3Ffb25SZWNlaXZlZFJl
c3BvbnNlRnJvbURvd25sb2FkKFFXZWJEb3dubG9hZEl0ZW0qIGQKIAogICAgIFFfUShRUXVpY2tX
ZWJWaWV3KTsKICAgICBRRGVjbGFyYXRpdmVFbmdpbmU6OnNldE9iamVjdE93bmVyc2hpcChkb3du
bG9hZEl0ZW0sIFFEZWNsYXJhdGl2ZUVuZ2luZTo6SmF2YVNjcmlwdE93bmVyc2hpcCk7Ci0gICAg
ZW1pdCBxLT5leHBlcmltZW50YWwoKS0+ZG93bmxvYWRSZXF1ZXN0ZWQoZG93bmxvYWRJdGVtKTsK
KyAgICBlbWl0IHEtPmNvbnRleHQoKS0+ZG93bmxvYWRSZXF1ZXN0ZWQoZG93bmxvYWRJdGVtKTsK
IH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlVmlld3BvcnRTaXplKCkKQEAg
LTU0Miw3ICs1NTEsNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpzZXRJY29uKGNvbnN0
IFFVcmwmIGljb25VUkwpCiAgICAgU3RyaW5nIG5ld1BhZ2VVUkwgPSB3ZWJQYWdlUHJveHktPm1h
aW5GcmFtZSgpLT51cmwoKTsKIAogICAgIGlmIChvbGRQYWdlVVJMICE9IG5ld1BhZ2VVUkwpIHsK
LSAgICAgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZSA9IGNvbnRleHQt
Pmljb25EYXRhYmFzZSgpOworICAgICAgICBRdFdlYkljb25EYXRhYmFzZUNsaWVudCogaWNvbkRh
dGFiYXNlID0gbV9jb250ZXh0LT5kX3B0ci0+Y29udGV4dC0+aWNvbkRhdGFiYXNlKCk7CiAgICAg
ICAgIGlmICghb2xkUGFnZVVSTC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBpY29uRGF0YWJhc2Ut
PnJlbGVhc2VJY29uRm9yUGFnZVVSTChvbGRQYWdlVVJMKTsKIApAQCAtNTY1LDcgKzU3NCw3IEBA
IHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChi
b29sIGVuYWJsZWQpCiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBoYXZlIHRvIGtlZXAgdGhp
cyBpbmZvcm1hdGlvbiBpbiBib3RoIHByb2Nlc3NlcyBhbmQgdGhlIHNldHRpbmcgaXMgYXN5bmNo
cm9ub3VzLgogICAgIG1fbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkID0gZW5hYmxlZDsKIAotICAg
IGNvbnRleHQtPnNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCh3ZWJQYWdlUHJveHkuZ2V0KCks
IGVuYWJsZWQpOworICAgIG1fY29udGV4dC0+ZF9wdHItPmNvbnRleHQtPnNldE5hdmlnYXRvclF0
T2JqZWN0RW5hYmxlZCh3ZWJQYWdlUHJveHkuZ2V0KCksIGVuYWJsZWQpOwogfQogCiBXZWJDb3Jl
OjpJbnRTaXplIFFRdWlja1dlYlZpZXdQcml2YXRlOjp2aWV3U2l6ZSgpIGNvbnN0CkBAIC02MzQs
NyArNjQzLDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRVc2VUcmFkaXRp
b25hbERlc2t0b3BCZWhhdmlvdXIoYm9vbCBlbmFibGUpCiB2b2lkIFFRdWlja1dlYlZpZXdFeHBl
cmltZW50YWw6OnBvc3RNZXNzYWdlKGNvbnN0IFFTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgUV9E
KFFRdWlja1dlYlZpZXcpOwotICAgIGQtPmNvbnRleHQtPnBvc3RNZXNzYWdlVG9OYXZpZ2F0b3JR
dE9iamVjdChkLT53ZWJQYWdlUHJveHkuZ2V0KCksIG1lc3NhZ2UpOworICAgIGQtPm1fY29udGV4
dC0+ZF9wdHItPmNvbnRleHQtPnBvc3RNZXNzYWdlVG9OYXZpZ2F0b3JRdE9iamVjdChkLT53ZWJQ
YWdlUHJveHkuZ2V0KCksIG1lc3NhZ2UpOwogfQogCiBRRGVjbGFyYXRpdmVDb21wb25lbnQqIFFR
dWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmFsZXJ0RGlhbG9nKCkgY29uc3QKQEAgLTgxMywxMyAr
ODIyLDEzIEBAIFFRdWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXcoUVF1aWNrSXRlbSogcGFyZW50
KQogewogfQogCi1RUXVpY2tXZWJWaWV3OjpRUXVpY2tXZWJWaWV3KFdLQ29udGV4dFJlZiBjb250
ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIFFRdWlja0l0ZW0qIHBhcmVudCkK
K1FRdWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXcoUVF1aWNrV2ViQ29udGV4dCogd2ViQ29udGV4
dCwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBRUXVpY2tJdGVtKiBwYXJlbnQpCiAgICAg
OiBRUXVpY2tJdGVtKHBhcmVudCkKICAgICAsIGRfcHRyKG5ldyBRUXVpY2tXZWJWaWV3UHJpdmF0
ZSh0aGlzKSkKICAgICAsIG1fZXhwZXJpbWVudGFsKG5ldyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVu
dGFsKHRoaXMpKQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKLSAgICBkLT5pbml0aWFsaXpl
KGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7CisgICAgZC0+aW5pdGlhbGl6ZSh3ZWJDb250ZXh0
LCBwYWdlR3JvdXBSZWYpOwogfQogCiBRUXVpY2tXZWJWaWV3Ojp+UVF1aWNrV2ViVmlldygpCkBA
IC0xMTc5LDQgKzExODgsMjQgQEAgdm9pZCBRUXVpY2tXZWJWaWV3Ojpjb21wb25lbnRDb21wbGV0
ZSgpCiAgICAgZC0+c2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKGQtPnBhZ2VWaWV3
LT51c2VzVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKCkpOwogfQogCit2b2lkIFFRdWlja1dl
YlZpZXc6OnNldENvbnRleHQoUVF1aWNrV2ViQ29udGV4dCogd2ViQ29udGV4dCkKK3sKKyAgICBR
X0QoUVF1aWNrV2ViVmlldyk7CisKKyAgICBpZiAod2ViQ29udGV4dCA9PSBkLT5tX2NvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIGQtPm1fY29udGV4dC0+cmVtb3ZlV2ViVmlldyh0aGlz
KTsKKyAgICBkLT5tX2NvbnRleHQgPSB3ZWJDb250ZXh0OworICAgIGQtPm1fY29udGV4dC0+YWRk
V2ViVmlldyh0aGlzKTsKKworICAgIGVtaXQgY29udGV4dENoYW5nZWQoKTsKK30KKworUVF1aWNr
V2ViQ29udGV4dCogUVF1aWNrV2ViVmlldzo6Y29udGV4dCgpCit7CisgICAgUV9EKFFRdWlja1dl
YlZpZXcpOworICAgIHJldHVybiBkLT5tX2NvbnRleHQ7Cit9CisKICNpbmNsdWRlICJtb2NfcXF1
aWNrd2Vidmlld19wLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDU5NTk0ZGIuLjgwMTY0ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMjgsNiAr
MjgsOCBAQAogCiBjbGFzcyBRV2ViTmF2aWdhdGlvblJlcXVlc3Q7CiBjbGFzcyBRRGVjbGFyYXRp
dmVDb21wb25lbnQ7CitjbGFzcyBRUXVpY2tXZWJDb250ZXh0OworY2xhc3MgUVF1aWNrV2ViQ29u
dGV4dFByaXZhdGU7CiBjbGFzcyBRUXVpY2tXZWJQYWdlOwogY2xhc3MgUVF1aWNrV2ViVmlld0F0
dGFjaGVkOwogY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGU7CkBAIC01MSw3ICs1Myw2IEBAIG5h
bWVzcGFjZSBXVEYgewogdGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3MgUGFzc1JlZlB0cjsKIH0KIAot
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDb250ZXh0KiBXS0NvbnRleHRSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIApAQCAtNzAsNiArNzEs
NyBAQCBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3IDogcHVibGljIFFRdWlja0l0
ZW0gewogICAgIFFfUFJPUEVSVFkoYm9vbCBjYW5Hb0ZvcndhcmQgUkVBRCBjYW5Hb0ZvcndhcmQg
Tk9USUZZIG5hdmlnYXRpb25TdGF0ZUNoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShib29s
IGxvYWRpbmcgUkVBRCBsb2FkaW5nIE5PVElGWSBuYXZpZ2F0aW9uU3RhdGVDaGFuZ2VkIEZJTkFM
KQogICAgIFFfUFJPUEVSVFkoYm9vbCBjYW5SZWxvYWQgUkVBRCBjYW5SZWxvYWQgTk9USUZZIG5h
dmlnYXRpb25TdGF0ZUNoYW5nZWQgRklOQUwpCisgICAgUV9QUk9QRVJUWShRUXVpY2tXZWJDb250
ZXh0KiBjb250ZXh0IFJFQUQgY29udGV4dCBXUklURSBzZXRDb250ZXh0IE5PVElGWSBjb250ZXh0
Q2hhbmdlZCkKICAgICBRX0VOVU1TKE5hdmlnYXRpb25SZXF1ZXN0QWN0aW9uKQogICAgIFFfRU5V
TVMoRXJyb3JEb21haW4pCiAKQEAgLTExNCw2ICsxMTYsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgY29tcG9uZW50Q29tcGxldGUoKTsKIAorICAgIFFRdWlja1dlYkNvbnRleHQqIGNv
bnRleHQoKTsKKyAgICB2b2lkIHNldENvbnRleHQoUVF1aWNrV2ViQ29udGV4dCopOworCiBwdWJs
aWMgUV9TTE9UUzoKICAgICB2b2lkIGxvYWQoY29uc3QgUVVybCYpOwogICAgIHZvaWQgbG9hZEh0
bWwoY29uc3QgUVN0cmluZyYgaHRtbCwgY29uc3QgUVVybCYgYmFzZVVybCA9IFFVcmwoKSk7CkBA
IC0xMzQsNiArMTM5LDcgQEAgUV9TSUdOQUxTOgogICAgIHZvaWQgbGlua0hvdmVyZWQoY29uc3Qg
UVVybCYgdXJsLCBjb25zdCBRU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCBuYXZpZ2F0aW9uU3Rh
dGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBuYXZpZ2F0aW9uUmVxdWVzdGVkKFFXZWJOYXZpZ2F0aW9u
UmVxdWVzdCogcmVxdWVzdCk7CisgICAgdm9pZCBjb250ZXh0Q2hhbmdlZCgpOwogCiBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGdlb21ldHJ5Q2hhbmdlZChjb25zdCBRUmVjdEYmLCBjb25z
dCBRUmVjdEYmKTsKQEAgLTE2MSw3ICsxNjcsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IFFfREVDTEFSRV9QUklWQVRFKFFRdWlja1dlYlZpZXcpCiAKLSAgICBRUXVpY2tXZWJWaWV3KFdL
Q29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIFFRdWlja0l0ZW0qIHBhcmVudCA9IDApOworICAg
IFFRdWlja1dlYlZpZXcoUVF1aWNrV2ViQ29udGV4dCosIFdLUGFnZUdyb3VwUmVmLCBRUXVpY2tJ
dGVtKiBwYXJlbnQgPSAwKTsKICAgICBXS1BhZ2VSZWYgcGFnZVJlZigpIGNvbnN0OwogCiAgICAg
UV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffc3VzcGVuZCgpKTsKQEAgLTI2MCw3ICsy
NjYsNiBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBjb25maXJtRGlhbG9nQ2hhbmdlZCgpOwogICAg
IHZvaWQgcHJvbXB0RGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQgaXRlbVNlbGVjdG9yQ2hhbmdl
ZCgpOwotICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0ZWQoUVdlYkRvd25sb2FkSXRlbSogZG93bmxv
YWRJdGVtKTsKICAgICB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQoUVdlYlBlcm1pc3Npb25SZXF1
ZXN0KiBwZXJtaXNzaW9uKTsKICAgICB2b2lkIG1lc3NhZ2VSZWNlaXZlZChjb25zdCBRVmFyaWFu
dE1hcCYgbWVzc2FnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCAwNzhjNjgxLi41ZjI1NDE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUXRXZWJVbmRvQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eS5oIgogCisjaW5jbHVkZSAicXF1aWNrd2ViY29udGV4dF9wLmgiCiAj
aW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9wLmgi
CiAKQEAgLTY0LDcgKzY1LDcgQEAgcHVibGljOgogICAgIFFRdWlja1dlYlZpZXdQcml2YXRlKFFR
dWlja1dlYlZpZXcqIHZpZXdwb3J0KTsKICAgICB2aXJ0dWFsIH5RUXVpY2tXZWJWaWV3UHJpdmF0
ZSgpOwogCi0gICAgdm9pZCBpbml0aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmID0gMCwg
V0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gMCk7CisgICAgdm9pZCBpbml0aWFsaXplKFFR
dWlja1dlYkNvbnRleHQqIHdlYkNvbnRleHQgPSAwLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBS
ZWYgPSAwKTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVRvdWNoKFFRdWlja1dlYlZpZXcqIHZpZXdw
b3J0KTsKICAgICB2b2lkIGluaXRpYWxpemVEZXNrdG9wKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0
KTsKQEAgLTEzMCw3ICsxMzEsNiBAQCBwcml2YXRlOgogICAgICAgICBRUG9pbnQgcG9zaXRpb247
CiAgICAgfTsKIAotICAgIFJlZlB0cjxRdFdlYkNvbnRleHQ+IGNvbnRleHQ7CiAgICAgUmVmUHRy
PFdlYktpdDo6V2ViUGFnZVByb3h5PiB3ZWJQYWdlUHJveHk7CiAKICAgICBRdFBhZ2VDbGllbnQg
cGFnZUNsaWVudDsKQEAgLTE2Miw2ICsxNjIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9uYXZp
Z2F0b3JRdE9iamVjdEVuYWJsZWQ7CiAgICAgUVVybCBtX2ljb25VUkw7CiAgICAgYm9vbCBpc0lu
aXRpYWxpemVkOworCisgICAgUVF1aWNrV2ViQ29udGV4dCogbV9jb250ZXh0OwogfTsKIAogI2Vu
ZGlmIC8vIHFxdWlja3dlYnZpZXdfcF9wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0
aW9uUmVxdWVzdGVkLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbAppbmRl
eCAzZWY3ZDU1Li4wZjNhZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVl
c3RlZC5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sCkBAIC0yOCw3
ICsyOCw3IEBAIEl0ZW0gewogICAgICAgICAgICAgb3JpZ2luYXRpbmdVcmwgPSByZXF1ZXN0Lm9y
aWdpbmF0aW5nVXJsCiAgICAgICAgIH0KIAotICAgICAgICBleHBlcmltZW50YWwub25Eb3dubG9h
ZFJlcXVlc3RlZDogeworICAgICAgICBjb250ZXh0Lm9uRG93bmxvYWRSZXF1ZXN0ZWQ6IHsKICAg
ICAgICAgICAgIGRvd25sb2FkLnRhcmdldCA9IGRvd25sb2FkSXRlbQogICAgICAgICAgICAgZXhw
ZWN0ZWRMZW5ndGggPSBkb3dubG9hZEl0ZW0uZXhwZWN0ZWRDb250ZW50TGVuZ3RoCiAgICAgICAg
ICAgICBkb3dubG9hZEl0ZW0uZGVzdGluYXRpb25QYXRoID0gZG93bmxvYWRJdGVtLnN1Z2dlc3Rl
ZEZpbGVuYW1lCkBAIC02Myw3ICs2Myw3IEBAIEl0ZW0gewogCiAgICAgU2lnbmFsU3B5IHsKICAg
ICAgICAgaWQ6IGRvd25sb2FkU3B5Ci0gICAgICAgIHRhcmdldDogd2ViVmlldy5leHBlcmltZW50
YWwKKyAgICAgICAgdGFyZ2V0OiB3ZWJWaWV3LmNvbnRleHQKICAgICAgICAgc2lnbmFsTmFtZTog
ImRvd25sb2FkUmVxdWVzdGVkIgogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9kb3dubG9hZC5xbWwg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcv
dHN0X2Rvd25sb2FkLnFtbAppbmRleCA2YzI1YWYzLi45MzIzYzdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2Rv
d25sb2FkLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X2Rvd25sb2FkLnFtbApAQCAtMTUsNyArMTUsNyBAQCBXZWJWaWV3
IHsKIAogICAgIFNpZ25hbFNweSB7CiAgICAgICAgIGlkOiBzcHkKLSAgICAgICAgdGFyZ2V0OiBl
eHBlcmltZW50YWwKKyAgICAgICAgdGFyZ2V0OiBjb250ZXh0CiAgICAgICAgIHNpZ25hbE5hbWU6
ICJkb3dubG9hZFJlcXVlc3RlZCIKICAgICB9CiAKQEAgLTI1LDcgKzI1LDcgQEAgV2ViVmlldyB7
CiAgICAgICAgIHNpZ25hbE5hbWU6ICJkb3dubG9hZEZpbmlzaGVkIgogICAgIH0KIAotICAgIGV4
cGVyaW1lbnRhbC5vbkRvd25sb2FkUmVxdWVzdGVkOiB7CisgICAgY29udGV4dC5vbkRvd25sb2Fk
UmVxdWVzdGVkOiB7CiAgICAgICAgIGRvd25sb2FkLnRhcmdldCA9IGRvd25sb2FkSXRlbQogICAg
ICAgICBleHBlY3RlZExlbmd0aCA9IGRvd25sb2FkSXRlbS5leHBlY3RlZENvbnRlbnRMZW5ndGgK
ICAgICAgICAgZG93bmxvYWRJdGVtLmRlc3RpbmF0aW9uUGF0aCA9IGRvd25sb2FkSXRlbS5zdWdn
ZXN0ZWRGaWxlbmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgYi9T
b3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAppbmRleCAzYWY4NDkyLi5lZTliNTI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAorKysgYi9Tb3VyY2UvcXR3ZWJraXQtZXhw
b3J0Lm1hcApAQCAtMTU0LDcgKzE1NCw5IEBAIHF3a18xLjAgewogICAgICAgICBRUXVpY2tOZXR3
b3JrUmVxdWVzdDo6KjsKICAgICAgICAgKlFRdWlja05ldHdvcmtSZXBseTsKICAgICAgICAgUVF1
aWNrTmV0d29ya1JlcGx5OjoqOwotCisgICAgICAgICpRUXVpY2tXZWJDb250ZXh0OworICAgICAg
ICBub24tdmlydHVhbD90aHVuaz90bz9RUXVpY2tXZWJDb250ZXh0KjsKKyAgICAgICAgUVF1aWNr
V2ViQ29udGV4dDo6KjsKIAogICAgICAgICAjIFdlYktpdCAyIEMgQVBJIG1hbmdsZWQgaW4gQysr
CiAgICAgICAgIFdLU3RyaW5nQ29weVFTdHJpbmcqOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxh
dGZvcm1XZWJWaWV3LmgKaW5kZXggMGU4YzZiNS4uMWY1M2MzOSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8V2Vi
S2l0Mi9XS1JldGFpblB0ci5oPgogCiAjaWYgZGVmaW5lZChCVUlMRElOR19RVF9fKQorY2xhc3Mg
UVF1aWNrV2ViQ29udGV4dDsKIGNsYXNzIFFRdWlja1dlYlZpZXc7CiB0eXBlZGVmIFFRdWlja1dl
YlZpZXcqIFBsYXRmb3JtV0tWaWV3OwogY2xhc3MgUVF1aWNrVmlldzsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKaW5kZXggMTNhMzNmOC4uYWZh
NDk2MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZp
ZXdRdC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdR
dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUg
IlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgInFxdWlja3dlYmNvbnRleHRfcC5oIgogI2lu
Y2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgog
CkBAIC00MSw5ICs0MiwxMCBAQCBuYW1lc3BhY2UgV1RSIHsKIGNsYXNzIFdyYXBwZXJXaW5kb3cg
OiBwdWJsaWMgUVF1aWNrVmlldyB7CiAgICAgUV9PQkpFQ1QKIHB1YmxpYzoKLSAgICBXcmFwcGVy
V2luZG93KFFRdWlja1dlYlZpZXcqIHZpZXcpCisgICAgV3JhcHBlcldpbmRvdyhRUXVpY2tXZWJW
aWV3KiB2aWV3LCBRUXVpY2tXZWJDb250ZXh0KiBjb250ZXh0KQogICAgICAgICA6IFFRdWlja1Zp
ZXcoUVVybCgiZGF0YTp0ZXh0L3BsYWluLGltcG9ydCBRdFF1aWNrIDIuMFxuSXRlbSB7IG9iamVj
dE5hbWU6ICdyb290JyB9IikpCiAgICAgICAgICwgbV92aWV3KHZpZXcpCisgICAgICAgICwgbV9j
b250ZXh0KGNvbnRleHQpCiAgICAgewogICAgICAgICBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFs
KHZpZXcpLnNldFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cih0cnVlKTsKICAgICAgICAg
Y29ubmVjdCh0aGlzLCBTSUdOQUwoc3RhdHVzQ2hhbmdlZChRUXVpY2tWaWV3OjpTdGF0dXMpKSwg
U0xPVChoYW5kbGVTdGF0dXNDaGFuZ2VkKFFRdWlja1ZpZXc6OlN0YXR1cykpKTsKQEAgLTU4LDcg
KzYwLDggQEAgcHJpdmF0ZSBzbG90czoKICAgICAgICAgc2V0R2VvbWV0cnkoMCwgMCwgODAwLCA2
MDApOwogICAgICAgICBzZXRSZXNpemVNb2RlKFFRdWlja1ZpZXc6OlNpemVSb290T2JqZWN0VG9W
aWV3KTsKIAotICAgICAgICBtX3ZpZXctPnNldFBhcmVudEl0ZW0ocm9vdE9iamVjdCgpKTsKKyAg
ICAgICAgbV9jb250ZXh0LT5zZXRQYXJlbnQocm9vdE9iamVjdCgpKTsKKyAgICAgICAgbV9jb250
ZXh0LT5hZGRXZWJWaWV3KG1fdmlldyk7CiAgICAgICAgIFFEZWNsYXJhdGl2ZVByb3BlcnR5Ojp3
cml0ZShtX3ZpZXcsICJhbmNob3JzLmZpbGwiLCBxVmFyaWFudEZyb21WYWx1ZShyb290T2JqZWN0
KCkpKTsKIAogICAgICAgICBRV2luZG93U3lzdGVtSW50ZXJmYWNlOjpoYW5kbGVXaW5kb3dBY3Rp
dmF0ZWQodGhpcyk7CkBAIC02NywxNCArNzAsMTcgQEAgcHJpdmF0ZSBzbG90czoKIAogcHJpdmF0
ZToKICAgICBRUXVpY2tXZWJWaWV3KiBtX3ZpZXc7CisgICAgUVF1aWNrV2ViQ29udGV4dCogbV9j
b250ZXh0OwogfTsKIAogUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKLSAgICA6IG1fdmll
dyhuZXcgUVF1aWNrV2ViVmlldyhjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYpKQotICAgICwgbV93
aW5kb3cobmV3IFdyYXBwZXJXaW5kb3cobV92aWV3KSkKLSAgICAsIG1fd2luZG93SXNLZXkodHJ1
ZSkKKyAgICA6IG1fd2luZG93SXNLZXkodHJ1ZSkKICAgICAsIG1fbW9kYWxFdmVudExvb3AoMCkK
IHsKKyAgICBRUXVpY2tXZWJDb250ZXh0KiBjb250ZXh0ID0gbmV3IFFRdWlja1dlYkNvbnRleHQo
KTsKKyAgICBjb250ZXh0LT5pbml0aWFsaXplKGNvbnRleHRSZWYpOworICAgIG1fdmlldyA9IG5l
dyBRUXVpY2tXZWJWaWV3KGNvbnRleHQsIHBhZ2VHcm91cFJlZik7CisgICAgbV93aW5kb3cgPSBu
ZXcgV3JhcHBlcldpbmRvdyhtX3ZpZXcsIGNvbnRleHQpOwogfQogCiBQbGF0Zm9ybVdlYlZpZXc6
On5QbGF0Zm9ybVdlYlZpZXcoKQotLSAKMS43LjguMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>