<?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>77554</bug_id>
          
          <creation_ts>2012-02-01 07:29:50 -0800</creation_ts>
          <short_desc>[Qt] Allow read/write to the WebView.url property</short_desc>
          <delta_ts>2012-05-29 04:44:09 -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>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>85806</dependson>
    
    <dependson>85876</dependson>
          <blocked>70236</blocked>
    
    <blocked>74403</blocked>
    
    <blocked>76773</blocked>
    
    <blocked>79668</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Tor Arne Vestbø">vestbo</assigned_to>
          <cc>alan.alpert</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lauro.neto</cc>
    
    <cc>marcelo.lira</cc>
    
    <cc>menard</cc>
    
    <cc>ossy</cc>
    
    <cc>rafael.lobo</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>547073</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-01 07:29:50 -0800</bug_when>
    <thetext>As discussed in IRC, we want to change the url property to be read-write, as to reflect either the url requested by the user, or a committed url modified by the WebView.
This would make the url property equivalent to what&apos;s in the address bar. loadStarted and other progress events can still reflects urls in different phases of loading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558194</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-16 08:03:06 -0800</bug_when>
    <thetext>Additional notes from the API review session in Szeged:

&quot;Make sure that setUrl doesn&apos;t tell the web process until the component is complete, to ensure that loadStarted is not emitted before componentComplete(), at the same time fix the tests to not call load via c++, and remove the deferring of loadFinished.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566121</commentid>
    <comment_count>2</comment_count>
      <attachid>129132</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2012-02-27 16:50:29 -0800</bug_when>
    <thetext>Created attachment 129132
patch

First attempt to fix this issue,
1. WebView.url as read/write API
2. Remove WebView.load
3. Defer loading/setting URL to webengine until component complete triggers. 
4. Fixes MiniBrowser, c++ and qml tests to use new API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566206</commentid>
    <comment_count>3</comment_count>
      <attachid>129152</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2012-02-27 17:55:30 -0800</bug_when>
    <thetext>Created attachment 129152
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566861</commentid>
    <comment_count>4</comment_count>
      <attachid>129152</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-02-28 10:48:51 -0800</bug_when>
    <thetext>Comment on attachment 129152
patch

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

Spelling issue for the variable, otherwise ok

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:158
&gt; +    if (m_defferedUrlToLoad.isEmpty())

deferred

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h:164
&gt; +    QUrl m_defferedUrlToLoad;

deferred

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml:96
&gt; +	    webView.url = testUrl

indentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566976</commentid>
    <comment_count>5</comment_count>
      <attachid>129152</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2012-02-28 12:35:16 -0800</bug_when>
    <thetext>Comment on attachment 129152
patch

Committed: r109136: &lt;http://trac.webkit.org/changeset/109136&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566979</commentid>
    <comment_count>6</comment_count>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2012-02-28 12:36:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568329</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-29 21:45:20 -0800</bug_when>
    <thetext>This was cited many times as a major design issue of QWebFrame. This will likely bring the same discussions and extra documentation as in Qt4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591099</commentid>
    <comment_count>8</comment_count>
      <attachid>129152</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-03-29 06:00:18 -0700</bug_when>
    <thetext>Comment on attachment 129152
patch

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

After some inspection and discussion with Marcelo Lira and Alexis we think this patch is incomplete. The url() property in WebView should change when we setUrl() or WebKit sets by itself (link clicked, page redirect, etc). But right now the getter asks directly the main frame: when we setUrl() and check right after, the url() is not changed, from the bug&apos;s first comment it should be.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1160
&gt;      return QUrl(QString(mainFrame-&gt;url()));

Should QQuickWebView::url() use the information of WebPageProxy::activeURL() instead of peeking directly at the main frame?

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1173
&gt; +    if (!isComponentComplete()) {
&gt; +        d-&gt;m_defferedUrlToLoad = url;
&gt; +        return;
&gt; +    }

Should the getter look at deferred URL when the component is not completed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591100</commentid>
    <comment_count>9</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-03-29 06:05:17 -0700</bug_when>
    <thetext>Reopening due to my previous comments, current implementation is not covering what we want: &quot;to reflect either the url requested by the user, or a committed url modified by the WebView.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599189</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-04-10 05:39:04 -0700</bug_when>
    <thetext>cc&apos;ing Tor Arne</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602080</commentid>
    <comment_count>11</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-04-13 08:23:44 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 129152 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129152&amp;action=review
&gt; 
&gt; After some inspection and discussion with Marcelo Lira and Alexis we think this patch is incomplete. 

You&apos;re absolutely correct. I think activeUrl is what we want to return in this case. And yes, initially we have to return the m_deferedUrlToLoad. I&apos;m cooking up a patch that takes care of the corner cases as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604379</commentid>
    <comment_count>12</comment_count>
      <attachid>137613</attachid>
    <who name="Marcelo Lira">marcelo.lira</who>
    <bug_when>2012-04-17 15:02:51 -0700</bug_when>
    <thetext>Created attachment 137613
Makes the url property reflect the url set by the user, which may be changed by the webview.

Tor Arne, I came up with this simple patch. It reflects the url set by the user, and avoid the situation:

user: webview.url = &apos;blah.com&apos;
user: webview, what&apos;s your url?
webview: I don&apos;t know yet...

which is the case now when relying only in the page&apos;s main frame to store the url.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604714</commentid>
    <comment_count>13</comment_count>
      <attachid>137613</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-18 07:16:37 -0700</bug_when>
    <thetext>Comment on attachment 137613
Makes the url property reflect the url set by the user, which may be changed by the webview.

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

This is an informal review: the changelog is missing, and there&apos;s a few comments along the patch. I like that we keep the property on webView hands and update it as the frame changes its url. I had a similar approach to deal with this on snowshoe. You should talk to Tor Arne and figure out what possible corner cases are there, not sure if this approach takes them all into account.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:468
&gt; +void QQuickWebViewPrivate::updateUrl(const QUrl&amp; url)

I don&apos;t like the name, you explain that you use this to avoid an auto load, so maybe &quot;setUrlWithoutLoad&quot; or something along those lines would make this more clear.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1138
&gt; +    if (url.isEmpty() || d-&gt;m_url == url)

So you can&apos;t set webView.url = &quot;&quot; ? Why not? In the end it would load an &quot;about:blank&quot; page I guess, and when the load is finished, the url would change to that value. Is it right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604718</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-04-18 07:28:43 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=137613) [details]
&gt; Makes the url property reflect the url set by the user, which may be changed by the webview.
&gt; 
&gt; Tor Arne, I came up with this simple patch. It reflects the url set by the user, and avoid the situation:
&gt; 
&gt; user: webview.url = &apos;blah.com&apos;
&gt; user: webview, what&apos;s your url?
&gt; webview: I don&apos;t know yet...
&gt; 
&gt; which is the case now when relying only in the page&apos;s main frame to store the url.

See the earlier comments, it sounds like WebPageProxy::activeURL() could simplify our implementation significantly and bring our logic in line with the other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604794</commentid>
    <comment_count>15</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-04-18 09:10:58 -0700</bug_when>
    <thetext>Hey, I think we should go with using activeUrl. I have a patch cooking, will post soon.

(In reply to comment #12)
&gt; Created an attachment (id=137613) [details]
&gt; Makes the url property reflect the url set by the user, which may be changed by the webview.
&gt; 
&gt; Tor Arne, I came up with this simple patch. It reflects the url set by the user, and avoid the situation:
&gt; 
&gt; user: webview.url = &apos;blah.com&apos;
&gt; user: webview, what&apos;s your url?
&gt; webview: I don&apos;t know yet...
&gt; 
&gt; which is the case now when relying only in the page&apos;s main frame to store the url.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605393</commentid>
    <comment_count>16</comment_count>
      <attachid>137847</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-04-18 23:04:22 -0700</bug_when>
    <thetext>Created attachment 137847
Patch, sans changelogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605395</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-18 23:07:18 -0700</bug_when>
    <thetext>Attachment 137847 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/UIProcess/API/qt/qquickwebv...&quot; exit_code: 1
Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:52:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1147:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 2 in 11 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>605397</commentid>
    <comment_count>18</comment_count>
      <attachid>137849</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-04-18 23:09:35 -0700</bug_when>
    <thetext>Created attachment 137849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605399</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-18 23:12:14 -0700</bug_when>
    <thetext>Attachment 137849 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Tools/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 2 in 13 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>605428</commentid>
    <comment_count>20</comment_count>
      <attachid>137849</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-04-19 00:26:28 -0700</bug_when>
    <thetext>Comment on attachment 137849
Patch

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

Looks good in general, but a few nitpicks. The style queue complaints are right for example. I think the reload logic could be simplified, but that&apos;s just a nitpick :)

&gt;&gt; Source/WebKit2/ChangeLog:1
&gt;&gt; +2012-04-18  Tor Arne VestbÃ¸  &lt;torarnv@gmail.com&gt;
&gt; 
&gt; ChangeLog entry has no bug number  [changelog/bugnumber] [5]

Style queue is right here :)

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1116
&gt; +    if (d-&gt;webPageProxy-&gt;mainFrame() &amp;&amp; !d-&gt;webPageProxy-&gt;mainFrame()-&gt;unreachableURL().isEmpty()
&gt; +            &amp;&amp; d-&gt;webPageProxy-&gt;mainFrame()-&gt;url() != blankURL()) {

That&apos;s a lot of repeated d-&gt;webPageProxy-&gt;mainFrame() calls. Wouldn&apos;t it be even easier to read with a local mainFrame variable (less text required for the if) ? :)

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1121
&gt; +        d-&gt;webPageProxy-&gt;loadURL(d-&gt;webPageProxy-&gt;mainFrame()-&gt;unreachableURL());

Hmm, why isn&apos;t this handled in WebCore? Functions like bool FrameLoader::shouldReloadToHandleUnreachableURL make me think that there&apos;s an intent at least.

Then in void FrameLoader::reload(bool endToEndReload) there&apos;s also this snippet:

    ResourceRequest initialRequest = m_documentLoader-&gt;request();

    // Replace error-page URL with the URL we were trying to reach.
    KURL unreachableURL = m_documentLoader-&gt;unreachableURL();
    if (!unreachableURL.isEmpty())
        initialRequest.setURL(unreachableURL);

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1451
&gt; +    If an \a unreachableUrl is passed it&apos;s used as the url for the loaded
&gt; +    content. This is typically used to display error pages for a failed
&gt; +    load.
&gt; +
&gt;      \sa load()
&gt;  */
&gt; -void QQuickWebView::loadHtml(const QString&amp; html, const QUrl&amp; baseUrl)
&gt; +void QQuickWebView::loadHtml(const QString&amp; html, const QUrl&amp; baseUrl, const QUrl&amp; unreachableUrl)

I love the general approach, this is much better than the callbacks we&apos;ve had in WK1. But what do you think about having a dedicated method in QQuickWebView instead of overloading loadHtml with a third parameter?

I&apos;m a bit worried about &quot;less readable&quot; code here, but perhaps that point is not valid given that the actual resulting code isn&apos;t too bad, i.e. the first argument (&quot;Loading failed&quot;) makes it clear what the use-case is.

OTOH this is slightly less discoverable.

Anyway, no strong opinion here, love that it&apos;s a rather non-intrusive solution to a real world use-case.

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro:19
&gt;  OTHER_FILES += \
&gt;      DesktopBehavior/DesktopWebView.qml \
&gt; -    DesktopBehavior/tst_linkHovered.qml \
&gt; -    DesktopBehavior/tst_loadHtml.qml \
&gt; -    DesktopBehavior/tst_messaging.qml \
&gt; -    DesktopBehavior/tst_navigationRequested.qml \
&gt; -    DesktopBehavior/tst_singleFileupload.qml \
&gt; -    DesktopBehavior/tst_multiFileupload.qml
&gt; +    DesktopBehavior/tst_*

I suppose you could also just use *.qml? :)

&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:121
&gt; +
&gt; +    // The user did not set alternate content with an unreachable url as a
&gt; +    // response to the failed load, so we set the url manually here, and
&gt; +    // detect this case in reload() to ensure we will reload the failed url.
&gt; +    WebFrameProxy* wkframe = toImpl(frame);
&gt; +    if (wkframe-&gt;unreachableURL().isEmpty())
&gt; +        wkframe-&gt;setUnreachableURL(qtError.url().toString());

Ohh, _that_ is why you added the logic in reload(). Hmm, what&apos;s the use-case? Convenience for people who want to write a web browser but don&apos;t want to handle errors? :)

&gt; Tools/ChangeLog:27
&gt; +        The url property of the webview now reflects the &apos;active&apos; url of the
&gt; +        page, which maps to either the currenly loading url, in the case of
&gt; +        an ongoing load, or the result of a load, even when the load failed.
&gt; +
&gt; +        In practice this means that setting the url though QML, or navigating
&gt; +        to a new url in the page by e.g clicking, will both instantly change
&gt; +        the url-property of the webview to the target url. This differs from
&gt; +        earlier behavior, where we would update the url when the load
&gt; +        committed.
&gt; +
&gt; +        An optional argument is added to loadHtml(), to allow setting
&gt; +        the unreachable url when providing replacement content for failed
&gt; +        loads.
&gt; +
&gt; +        A slight change in the activeUrl() implementation is also done,
&gt; +        where we now favour the url of an pending API request, even when
&gt; +        we don&apos;t have a mainframe yet.
&gt; +
&gt; +        Finally, the location bar in the minibrowser is updated to behave
&gt; +        a bit more like normal browsers in terms of when the url will change
&gt; +        and how active focus is handled.
&gt; +
&gt; +        Need a short description and bug URL (OOPS!)

I suppose this line should be removed and you could probably shorten the ChangeLog here to just the MiniBrowser relevant stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605607</commentid>
    <comment_count>21</comment_count>
      <attachid>137849</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-19 08:49:33 -0700</bug_when>
    <thetext>Comment on attachment 137849
Patch

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

Great! :) I have some few comments.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:-1136
&gt; -    d-&gt;webPageProxy-&gt;loadURL(url.toString());

Shouldn&apos;t we check here if the new url is really different from the previous one?

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1448
&gt; +

Awesome! 404 pages are saved. :)

&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:64
&gt; +    // FIXME: Should we update the loading state here as well? With a redirect status?

If you are loading and then get redirected I dont think the loading state would change, that would happen only if you are are at load complete state.

&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:106
&gt; +        // The active url might have changed as well

Is it ok that we are emitting url changed signals when there&apos;s a chance the url is not really changed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605807</commentid>
    <comment_count>22</comment_count>
      <attachid>137849</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-04-19 12:59:02 -0700</bug_when>
    <thetext>Comment on attachment 137849
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1116
&gt;&gt; +            &amp;&amp; d-&gt;webPageProxy-&gt;mainFrame()-&gt;url() != blankURL()) {
&gt; 
&gt; That&apos;s a lot of repeated d-&gt;webPageProxy-&gt;mainFrame() calls. Wouldn&apos;t it be even easier to read with a local mainFrame variable (less text required for the if) ? :)

Yepp :)

&gt;&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1121
&gt;&gt; +        d-&gt;webPageProxy-&gt;loadURL(d-&gt;webPageProxy-&gt;mainFrame()-&gt;unreachableURL());
&gt; 
&gt; Hmm, why isn&apos;t this handled in WebCore? Functions like bool FrameLoader::shouldReloadToHandleUnreachableURL make me think that there&apos;s an intent at least.
&gt; 
&gt; Then in void FrameLoader::reload(bool endToEndReload) there&apos;s also this snippet:
&gt; 
&gt;     ResourceRequest initialRequest = m_documentLoader-&gt;request();
&gt; 
&gt;     // Replace error-page URL with the URL we were trying to reach.
&gt;     KURL unreachableURL = m_documentLoader-&gt;unreachableURL();
&gt;     if (!unreachableURL.isEmpty())
&gt;         initialRequest.setURL(unreachableURL);

WebCore only handles this if there&apos;s subsititute-data with an unreachable url, which you don&apos;t have if you didnt do loadHtml as a response to the failed load. There&apos;s no plumbing currently to make webcore aware of an unreachable url without doing a subsituteload, as far as I can tell. So this is a workaround that glosses oer that by setting it on the UIProcess side and handling it in reload()

&gt;&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:-1136
&gt;&gt; -    d-&gt;webPageProxy-&gt;loadURL(url.toString());
&gt; 
&gt; Shouldn&apos;t we check here if the new url is really different from the previous one?

You mean before emitting the signal?

&gt;&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1451
&gt;&gt; +void QQuickWebView::loadHtml(const QString&amp; html, const QUrl&amp; baseUrl, const QUrl&amp; unreachableUrl)
&gt; 
&gt; I love the general approach, this is much better than the callbacks we&apos;ve had in WK1. But what do you think about having a dedicated method in QQuickWebView instead of overloading loadHtml with a third parameter?
&gt; 
&gt; I&apos;m a bit worried about &quot;less readable&quot; code here, but perhaps that point is not valid given that the actual resulting code isn&apos;t too bad, i.e. the first argument (&quot;Loading failed&quot;) makes it clear what the use-case is.
&gt; 
&gt; OTOH this is slightly less discoverable.
&gt; 
&gt; Anyway, no strong opinion here, love that it&apos;s a rather non-intrusive solution to a real world use-case.

I think the place that you&apos;d write this code, plus the arguments passed, would make it pretty readable what the unreachableUrl refers to. A separate function would have to have a name that makes it even more readable, and I&apos;m not sure loadAlternateHTMLString is. Something like loadAlternateHTMLStringForFailedLoad or a long name like that seems like overkill :/

Another question is if there are other cases where you&apos;d call loadAlternateHTMLString but without a unreachable-url?

&gt;&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro:19
&gt;&gt; +    DesktopBehavior/tst_*
&gt; 
&gt; I suppose you could also just use *.qml? :)

Sure :)

&gt;&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:64
&gt;&gt; +    // FIXME: Should we update the loading state here as well? With a redirect status?
&gt; 
&gt; If you are loading and then get redirected I dont think the loading state would change, that would happen only if you are are at load complete state.

Right, so I think we can defer this for now, and if we ever need a hook for this client callback we can deal with it then.

&gt;&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:106
&gt;&gt; +        // The active url might have changed as well
&gt; 
&gt; Is it ok that we are emitting url changed signals when there&apos;s a chance the url is not really changed?

It&apos;s not ideal, but I&apos;m not sure we can detect that here :/

&gt;&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:121
&gt;&gt; +        wkframe-&gt;setUnreachableURL(qtError.url().toString());
&gt; 
&gt; Ohh, _that_ is why you added the logic in reload(). Hmm, what&apos;s the use-case? Convenience for people who want to write a web browser but don&apos;t want to handle errors? :)

In the case of a mobile browser eg, you likely don&apos;t want to throw away the current page by loading replacement-content, but instead pop up a dialog , so that if the user taps a link that points to a site that is down, or the network is bad, he won&apos;t lose the current page. 
In that case you still want the active url to be the url that failed (activeUrl has a special case for an unreachableUrl).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605821</commentid>
    <comment_count>23</comment_count>
      <attachid>137849</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-19 13:19:50 -0700</bug_when>
    <thetext>Comment on attachment 137849
Patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:-1136
&gt;&gt;&gt; -    d-&gt;webPageProxy-&gt;loadURL(url.toString());
&gt;&gt; 
&gt;&gt; Shouldn&apos;t we check here if the new url is really different from the previous one?
&gt; 
&gt; You mean before emitting the signal?

Not exactly. I think we should not do any load or anything at all if we see that the &quot;change&quot; on setUrl won&apos;t change anything, like we do with other properties. We already offer a reload function, so it&apos;s safe to ignore it I guess. Something that also bugs me is that we don&apos;t do anything when the url.isEmpty().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605889</commentid>
    <comment_count>24</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-04-19 14:22:07 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 137849 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137849&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:-1136
&gt; &gt;&gt;&gt; -    d-&gt;webPageProxy-&gt;loadURL(url.toString());
&gt; &gt;&gt; 
&gt; &gt;&gt; Shouldn&apos;t we check here if the new url is really different from the previous one?
&gt; &gt; 
&gt; &gt; You mean before emitting the signal?
&gt; 
&gt; Not exactly. I think we should not do any load or anything at all if we see that the &quot;change&quot; on setUrl won&apos;t change anything, like we do with other properties. We already offer a reload function, so it&apos;s safe to ignore it I guess. Something that also bugs me is that we don&apos;t do anything when the url.isEmpty().

Loading the same URL is a separate load type in the frameloader (FrameLoadTypeSame), and might have different behavior than a reload, for example not restoring the viewport position, so I don&apos;t think we should block this in setUrl(), but leve it up to WebCore to deal with the situation.

What do you think loading an empty url should do?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606135</commentid>
    <comment_count>25</comment_count>
      <attachid>138004</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-04-19 16:33:27 -0700</bug_when>
    <thetext>Created attachment 138004
Rebased, fixed issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606160</commentid>
    <comment_count>26</comment_count>
      <attachid>138004</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-04-19 16:44:29 -0700</bug_when>
    <thetext>Comment on attachment 138004
Rebased, fixed issues

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

&gt; Source/WebKit2/ChangeLog:8
&gt; +        page, which maps to either the currenly loading url, in the case of

currently*

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1118
&gt; +        // url, and will try to reload the currently commited url instead. We don&apos;t

committed

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1133
&gt; +        return d-&gt;m_deferedUrlToLoad;

deferred*

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1444
&gt; +    If an \a unreachableUrl is passed it&apos;s used as the url for the loaded

it is*

&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:106
&gt; +        // The active url might have changed as well

dot at end

&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:116
&gt; +    // The user did not set alternate content with an unreachable url as a

alternative? s/with/for ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606194</commentid>
    <comment_count>27</comment_count>
      <attachid>137849</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-19 16:56:44 -0700</bug_when>
    <thetext>Comment on attachment 137849
Patch

Cleared Simon Hausmann&apos;s review+ from obsolete attachment 137849 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606304</commentid>
    <comment_count>28</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-19 19:38:56 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; (From update of attachment 137849 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137849&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:-1136
&gt; &gt; &gt;&gt;&gt; -    d-&gt;webPageProxy-&gt;loadURL(url.toString());
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; Shouldn&apos;t we check here if the new url is really different from the previous one?
&gt; &gt; &gt; 
&gt; &gt; &gt; You mean before emitting the signal?
&gt; &gt; 
&gt; &gt; Not exactly. I think we should not do any load or anything at all if we see that the &quot;change&quot; on setUrl won&apos;t change anything, like we do with other properties. We already offer a reload function, so it&apos;s safe to ignore it I guess. Something that also bugs me is that we don&apos;t do anything when the url.isEmpty().
&gt; 
&gt; Loading the same URL is a separate load type in the frameloader (FrameLoadTypeSame), and might have different behavior than a reload, for example not restoring the viewport position, so I don&apos;t think we should block this in setUrl(), but leve it up to WebCore to deal with the situation.

Hm, I didn&apos;t know about FrameLoadTypeSame. So this kind of load restores previous viewport info, right? What if we do that on reload() when the url is the same? I think of reload as being the reload/refresh button of a browser. When I press it on chrome, for example, it restores for me the position of scrollbar, so this kind of LoadTypeSame seems to be triggered. Is there any case where the user will request the page to reload and don&apos;t do that? Should we have a separate way to do it?

&gt; 
&gt; What do you think loading an empty url should do?

After changing it to an empty url, I think it should try to load it, and then at the end I believe WebCore will handle it as &quot;about:blank&quot;. But to avoid user typing into url bar and loading this kind of page (as browsers usually do) then the UI should check if the content inside url bar is not empty. This way we give the user of the API the chance to explicitly set the url to &quot;&quot; and make the side-effect of loading it works, just like if you set any other different value. And don&apos;t do anything in case the value is the same, just like any other property.

But we can see how this goes the way it is being proposed right now, and if we see it as a problem then we could work on a solution for it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606362</commentid>
    <comment_count>29</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-04-19 22:32:18 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; Hm, I didn&apos;t know about FrameLoadTypeSame. So this kind of load restores previous viewport info, right? What if we do that on reload() when the url is the same? I think of reload as being the reload/refresh button of a browser. When I press it on chrome, for example, it restores for me the position of scrollbar, so this kind of LoadTypeSame seems to be triggered. Is there any case where the user will request the page to reload and don&apos;t do that? Should we have a separate way to do it?

No, FrameLoadTypeSame does _not_ restore the viewport, but a reload does. So, setting the url again loads the page (from the cache), but does not restore the viewport. Doing a reload does the same, but also restores the viewport.


&gt; &gt; What do you think loading an empty url should do?
&gt; 
&gt; After changing it to an empty url, I think it should try to load it, and then at the end I believe WebCore will handle it as &quot;about:blank&quot;. But to avoid user typing into url bar and loading this kind of page (as browsers usually do) then the UI should check if the content inside url bar is not empty. This way we give the user of the API the chance to explicitly set the url to &quot;&quot; and make the side-effect of loading it works, just like if you set any other different value. And don&apos;t do anything in case the value is the same, just like any other property.

Hmm, I think an explicit load of about:blank is better for this case. Let&apos;s leave it like this for now as you say.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606650</commentid>
    <comment_count>30</comment_count>
      <attachid>138108</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-04-20 09:46:09 -0700</bug_when>
    <thetext>Created attachment 138108
Update based on feedback

We now try to prevent the urlChanged signal from being emitted unless the url actually changes. We catch cases where we are missing url-change in WebCore by asserting in the url-getter. Tests have been extended a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607269</commentid>
    <comment_count>31</comment_count>
      <attachid>138108</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-21 13:57:42 -0700</bug_when>
    <thetext>Comment on attachment 138108
Update based on feedback

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

LGTM.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1155
&gt; +void QQuickWebView::emitUrlChangeIfNeeded()

Nice! :)

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro:16
&gt; +OTHER_FILES += WebView/tst_*

tst_*.qml ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607512</commentid>
    <comment_count>32</comment_count>
      <attachid>138108</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-04-23 00:10:06 -0700</bug_when>
    <thetext>Comment on attachment 138108
Update based on feedback

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

r=me with comments. I&apos;d love to see a unit test for the WebPageProxy.

&gt; Source/WebKit2/ChangeLog:1
&gt; +2012-04-18  Tor Arne VestbÃ¸  &lt;torarnv@gmail.com&gt;

Intentional email? :)

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:160
&gt; +    m_deferredUrlToLoad = QUrl();

Technically speaking calling QUrl::clear() involves one function call less :). Just a nitpick, feel free to ignore.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1163
&gt; +    QUrl activeUrl = QUrl(d-&gt;webPageProxy-&gt;activeURL());
&gt; +    if (activeUrl != d-&gt;m_currentUrl) {
&gt; +        d-&gt;m_currentUrl = activeUrl;
&gt; +        emit urlChanged();
&gt; +    }

This isn&apos;t entirely specific to this patch, but I&apos;m torn here nevertheless: We do a lot of unnecessary url parsing here, that makes me wonder if we should perhaps store m_currentUrl as KURL instead and do the QUrl parsing only in the getter. I suppose this m_current != activeURL comparison happens more (or at least equally) often than the getting being called, at least in a QML bindings environment.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:666
&gt; -    if (!m_mainFrame)
&gt; -        return String();
&gt; -
&gt;      // If there is a currently pending url, it is the active URL.
&gt;      if (!m_pendingAPIRequestURL.isNull())
&gt;          return m_pendingAPIRequestURL;
&gt;  
&gt; +    if (!m_mainFrame)
&gt; +        return String();
&gt; +

Perhaps there should be unit tests for this change in behaviour in TestWebKitAPI? After all we want to rely on this behavior, so we should test it.

&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:121
&gt; +    wkframe-&gt;setUnreachableURL(qtError.url().toString());

This is another example of unecessary QUrl parsing, where we take the URL string out of WKErrorRef, parse it with QUrl and re-assemble it again to a string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610399</commentid>
    <comment_count>33</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-04-26 00:19:43 -0700</bug_when>
    <thetext>Committed r115191: &lt;http://trac.webkit.org/changeset/115191&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610466</commentid>
    <comment_count>34</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-04-26 03:31:10 -0700</bug_when>
    <thetext>Reopen, because it made Qt5-WK2 flakey. There are 2-3 crashing tests after this change: http://build.webkit.sed.hu/results/x86-64%20Linux%20Qt%20Release%20WebKit2%20%28Amazon%20EC2%29/r115298%20%281799%29/results.html

Unfortunately it can&apos;t be reproduce simple, because if you run only one test, it works. But there are crashes (not always, but in 90%) if you run http/tests/security tests.

Could you check and fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610481</commentid>
    <comment_count>35</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-04-26 03:48:38 -0700</bug_when>
    <thetext>*** Bug 84934 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610545</commentid>
    <comment_count>36</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-04-26 06:46:53 -0700</bug_when>
    <thetext>Additionally it broke two API tests:

FAIL!  : qmltests::WebViewLoadFavIcon::test_favIconLoad() Compared values are not the same
   Actual   (): 2
   Expected (): 1
   Loc: [/mnt/raptor3/WebKit/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml(39)]
FAIL!  : qmltests::WebViewLoadFavIcon::test_favIconLoadEncodedUrl() Compared values are not the same
   Actual   (): 3
   Expected (): 1
   Loc: [/mnt/raptor3/WebKit/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml(49)]

It is similar to the layout tests crashes, so it isn&apos;t fail always, but in 90%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610642</commentid>
    <comment_count>37</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-26 08:24:01 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; Additionally it broke two API tests:
&gt; 
&gt; FAIL!  : qmltests::WebViewLoadFavIcon::test_favIconLoad() Compared values are not the same
&gt;    Actual   (): 2
&gt;    Expected (): 1
&gt;    Loc: [/mnt/raptor3/WebKit/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml(39)]
&gt; FAIL!  : qmltests::WebViewLoadFavIcon::test_favIconLoadEncodedUrl() Compared values are not the same
&gt;    Actual   (): 3
&gt;    Expected (): 1
&gt;    Loc: [/mnt/raptor3/WebKit/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml(49)]
&gt; 
&gt; It is similar to the layout tests crashes, so it isn&apos;t fail always, but in 90%.

This is because we request an icon each time the url changes, maybe we should do that only when the &quot;final&quot; url is set. Also the url changed was emitted 3 times instead of 1, maybe we are emitting more than we should? I can understand why it would change twice (the initial value and then the redirected url).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610700</commentid>
    <comment_count>38</comment_count>
      <attachid>139020</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-26 10:14:06 -0700</bug_when>
    <thetext>Created attachment 139020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610701</commentid>
    <comment_count>39</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-26 10:15:19 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; Created an attachment (id=139020) [details]
&gt; Patch

Could you please check if this handles the asserts you&apos;ve hit? I can&apos;t run on debug. :-( Let me know what you think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610792</commentid>
    <comment_count>40</comment_count>
      <attachid>139020</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-26 11:59:37 -0700</bug_when>
    <thetext>Comment on attachment 139020
Patch

This patch is still incomplete. Taking another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610891</commentid>
    <comment_count>41</comment_count>
      <attachid>139056</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-26 13:24:49 -0700</bug_when>
    <thetext>Created attachment 139056
Patch

I&apos;ve noticed that on desktop mode the commit was not requesting the icon, so I&apos;ve removed the differences between QQuickWebViewFlickablePrivate and QQuickWebViewPrivate&apos;s loadDidCommit. Check if this solution works for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610950</commentid>
    <comment_count>42</comment_count>
      <attachid>139056</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-04-26 13:58:34 -0700</bug_when>
    <thetext>Comment on attachment 139056
Patch

Taking out of review queue until we can fully investigate this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611050</commentid>
    <comment_count>43</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-26 16:02:07 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; (From update of attachment 139056 [details])
&gt; Taking out of review queue until we can fully investigate this.

        QString tmp = QLatin1String(&quot;https://accounts.google.com/ServiceLogin?service=adsense&amp;rm=hide&amp;nui=15&amp;alwf=true&amp;ltmpl=adsense&amp;passive=true&amp;continue=https://www.google.com/adsense/gaiaauth2?hl%3Dpt-BR%26subid%3Dbr-ww-et-ads_lrn%26sourceid%3Daso&amp;followup=https://www.google.com/adsense/gaiaauth2?hl%3Dpt-BR%26subid%3Dbr-ww-et-ads_lrn%26sourceid%3Daso&amp;hl=pt_BR&quot;);
        qDebug() &lt;&lt; &quot;QString&quot; &lt;&lt; tmp;
        QUrl tmp2 = tmp;
        qDebug() &lt;&lt; &quot;QUrl&quot; &lt;&lt; tmp2;
        QString tmp3 = tmp2.toString();
        qDebug() &lt;&lt; &quot;QString&quot; &lt;&lt; tmp3;
        if (tmp != tmp3) qDebug() &lt;&lt; &quot;DOES NOT MATCH!&quot;;

(In reply to comment #42)
&gt; (From update of attachment 139056 [details])
&gt; Taking out of review queue until we can fully investigate this.

Lauro has tried with that patch on N9 and he is no longer crashing. But he has found out another bug (unrelated to this) on icons that may not be retrieved by our image provider. I don&apos;t know how we can handle this know because the conversion between QUrl and QString not always can be reverted, but the assert on QWebIconImageProvider is not critical, we can leave it as is right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611053</commentid>
    <comment_count>44</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-04-26 16:03:13 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; (In reply to comment #42)
&gt; &gt; (From update of attachment 139056 [details] [details])
&gt; &gt; Taking out of review queue until we can fully investigate this.
&gt; 
&gt;         QString tmp = QLatin1String(&quot;https://accounts.google.com/ServiceLogin?service=adsense&amp;rm=hide&amp;nui=15&amp;alwf=true&amp;ltmpl=adsense&amp;passive=true&amp;continue=https://www.google.com/adsense/gaiaauth2?hl%3Dpt-BR%26subid%3Dbr-ww-et-ads_lrn%26sourceid%3Daso&amp;followup=https://www.google.com/adsense/gaiaauth2?hl%3Dpt-BR%26subid%3Dbr-ww-et-ads_lrn%26sourceid%3Daso&amp;hl=pt_BR&quot;);
&gt;         qDebug() &lt;&lt; &quot;QString&quot; &lt;&lt; tmp;
&gt;         QUrl tmp2 = tmp;
&gt;         qDebug() &lt;&lt; &quot;QUrl&quot; &lt;&lt; tmp2;
&gt;         QString tmp3 = tmp2.toString();
&gt;         qDebug() &lt;&lt; &quot;QString&quot; &lt;&lt; tmp3;
&gt;         if (tmp != tmp3) qDebug() &lt;&lt; &quot;DOES NOT MATCH!&quot;;

This shouldn&apos;t have gone into this message, sorry (this is the case I was talking about).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614116</commentid>
    <comment_count>45</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-02 02:11:20 -0700</bug_when>
    <thetext>Is there any progression with fixing this regression? (Qt-WK2 bots are still bleeding because of flakey crashing layout tests and flakey failing API tests.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614430</commentid>
    <comment_count>46</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-05-02 10:50:02 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; Is there any progression with fixing this regression? (Qt-WK2 bots are still bleeding because of flakey crashing layout tests and flakey failing API tests.)

The missing favicon bug which is left after that patch existed before the first patch here landed, it&apos;s a QUrl-QString conversion bug, which is (hopefully) going to be handled on Qt5 (more at: http://www.macieira.org/blog/2011/09/qurl-in-qt-5-encoding/).

I think the change on url property is very relevant and the remaining bug should be filed as a separate bug. We could remove the assert for instance (it will show an annoying debug message by the provider sometimes) or provide a non-null image to the image provider and keep track of this bug to fix it properly later, not sure what is the best approach though.

I believe the more we experiment the new url property behavior, the better the chances we will find bugs (if there&apos;s any). What you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614452</commentid>
    <comment_count>47</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-05-02 11:05:27 -0700</bug_when>
    <thetext>(In reply to comment #46)
&gt; (In reply to comment #45)
&gt; &gt; Is there any progression with fixing this regression? (Qt-WK2 bots are still bleeding because of flakey crashing layout tests and flakey failing API tests.)
&gt; 
&gt; The missing favicon bug which is left after that patch existed before the first patch here landed, it&apos;s a QUrl-QString conversion bug, which is (hopefully) going to be handled on Qt5 (more at: http://www.macieira.org/blog/2011/09/qurl-in-qt-5-encoding/).
&gt; 
&gt; I think the change on url property is very relevant and the remaining bug should be filed as a separate bug. We could remove the assert for instance (it will show an annoying debug message by the provider sometimes) or provide a non-null image to the image provider and keep track of this bug to fix it properly later, not sure what is the best approach though.
&gt; 
&gt; I believe the more we experiment the new url property behavior, the better the chances we will find bugs (if there&apos;s any). What you think?

Sure, and as new bugs are found, tests can be added to ensure we don&apos;t regress. But what we have here is that _existing_ tests are failing/crashing. If there&apos;s no quick fix available, then I think it&apos;s better to roll this one out and fix it properly. As it stands today, trunk is really crashy if you try to _actually_ use it. And that in turn also harms the productivity of everyone who wants to work on something other than this issue, because they have to locally apply patches to work around crashes (I&apos;ve had an early return statement in QQuickWebViewPrivate::setIconURL for the past days to not see WebKit crash all the time).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614518</commentid>
    <comment_count>48</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-05-02 12:19:26 -0700</bug_when>
    <thetext>Reverted in r115862</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631369</commentid>
    <comment_count>49</comment_count>
      <attachid>143494</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-05-23 01:19:58 -0700</bug_when>
    <thetext>Created attachment 143494
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631426</commentid>
    <comment_count>50</comment_count>
      <attachid>143494</attachid>
    <who name="alan">zalan</who>
    <bug_when>2012-05-23 02:33:09 -0700</bug_when>
    <thetext>Comment on attachment 143494
Patch

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

Looks good to me. and while you are there, could you change provisionalLoadDidStart()&apos;s signature from qurl to qstring all the way?

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:347
&gt; +void QQuickWebViewPrivate::didReceiveServerRedirectForProvisionalLoadForFrame(const WTF::String&amp;)

Please remove the &apos;ForFrame&apos; suffix to be inline with the other proxy functions. It carries no information as these functions are all valid for mainframe only (at this point of the stack).

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:658
&gt; +

I&apos;d push this check back to the QtWebIconDatabaseClient the same way all the other proxy functions filter for mainframe. (maybe have an assert here)

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1473
&gt; +        // want that, so we override the reload here by doing a manual load.

Could you explain a little bit more what&apos;s the error case here? I was under the impression that WebCore always know about the unreachable url as it comes from the provisionalLoader at WebCore side. I am sure you are trying to resolve a broken case here, I just don&apos;t think the comment sufficiently explains it.

&gt; Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp:93
&gt; +void QtWebPageLoadClient::dispatchLoadFailed(WKFrameRef frame, const QtWebError&amp; error)

It&apos;s really just a style issue and feel free to ignore, but that we are not in the c callback anymore, i&apos;d rather see WebFrameProxy here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635883</commentid>
    <comment_count>51</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-05-29 04:44:09 -0700</bug_when>
    <thetext>Landed with feedback in r118158</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129132</attachid>
            <date>2012-02-27 16:50:29 -0800</date>
            <delta_ts>2012-02-27 17:04:35 -0800</delta_ts>
            <desc>patch</desc>
            <filename>77554.patch</filename>
            <type>text/plain</type>
            <size>42937</size>
            <attacher name="Mahesh Kulkarni">maheshk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxNjU4YzExLi5mNTJkYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTItMDItMjcgIE1haGVzaCBLdWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBub2tpYS5j
b20+CisKKyAgICAgICAgW1F0XSBBbGxvdyByZWFkL3dyaXRlIHRvIHRoZSBXZWJWaWV3LnVybCBw
cm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzc1NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
aGFuZ2UgUU1MIEFQSSBXZWJWaWV3LnVybCB0byByZWFkL3dyaXRlIHRvIHJlZmxlY3QgZWl0aGVy
IHRoZSB1cmwgcmVxdWVzdGVkIGJ5IHRoZSB1c2VyLgorICAgICAgICBBbHNvIHJlbW92ZWQgV2Vi
Vmlldy5sb2FkKHVybCkuIERlZmVycyBzZXR0aW5nIHVybCAobG9hZGluZyBwYWdlKSB1bnRpbCBv
bkNvbXBvbmVudENvbXBsZXRlIGlzIHRyaWdnZXJlZC4gCisgICAgICAgIEZpeGVkIGMrKyBhbmQg
cW1sIHRlc3RzIHRvIHJlZmxlY3QgdGhlIG5ldyBBUEkuCisKKyAgICAgICAgKiBUYXJnZXQucHJp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAo
UVF1aWNrV2ViVmlld1ByaXZhdGU6Om9uQ29tcG9uZW50Q29tcGxldGUpOgorICAgICAgICAoUVF1
aWNrV2ViVmlldzo6c2V0VXJsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmg6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9wdWJsaWNhcGkvdHN0X3B1YmxpY2FwaS5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0
X2l0ZW1TZWxlY3Rvci5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X2xpbmtIb3ZlcmVkLnFtbDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbWVzc2FnaW5n
LnFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BC
ZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5xbWw6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5xbWw6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9k
b3dubG9hZC5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9mYXZJY29uTG9hZC5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9nZW9wZXJtaXNzaW9uLnFtbDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2phdmFTY3JpcHREaWFs
b2dzLnFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X2xvYWRGYWlsLnFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRQcm9ncmVzcy5xbWw6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3NTaWduYWwucW1s
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
bG9hZFVybC5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9uYXZpZ2F0aW9uSGlzdG9yeS5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfcHJlZmVyZW5jZXMucW1s
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
cHJvcGVydGllcy5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0
cy9XZWJWaWV3L3RzdF90aXRsZUNoYW5nZWQucW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcXF1aWNrd2Vidmlldy90c3RfcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgICh0
c3RfUVF1aWNrV2ViVmlldzo6bG9hZEVtcHR5UGFnZVZpZXdIaWRkZW4pOgorICAgICAgICAodHN0
X1FRdWlja1dlYlZpZXc6OmxvYWROb25leGlzdGVudEZpbGVVcmwpOgorCiAyMDEyLTAyLTI0ICBT
aW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRd
W1dLMl0gUVF1aWNrV2ViVmlldzo6ZXZlbnQgc2hvdWxkIGxvb2t1cCBmYXN0ZXIgd2hpY2ggZXZl
bnRzIFFRdWlja1dlYlBhZ2UgY2FuIGhhbmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggOWI3OTUxNi4uN2MwYzBmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CkBAIC0xNTAsNiArMTUwLDE0IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmxvYWREaWRT
dWNjZWVkKCkKICAgICBlbWl0IHEtPmxvYWRTdWNjZWVkZWQoKTsKIH0KIAordm9pZCBRUXVpY2tX
ZWJWaWV3UHJpdmF0ZTo6b25Db21wb25lbnRDb21wbGV0ZSgpCit7CisgICAgaWYgKG1fZGVmZmVy
ZWRVcmxUb0xvYWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBxX3B0ci0+c2V0
VXJsKG1fZGVmZmVyZWRVcmxUb0xvYWQpOworfQorCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRl
OjpzZXROZWVkc0Rpc3BsYXkoKQogewogICAgIFFfUShRUXVpY2tXZWJWaWV3KTsKQEAgLTExMDUs
MTUgKzExMTMsNiBAQCBRUXVpY2tXZWJQYWdlKiBRUXVpY2tXZWJWaWV3OjpwYWdlKCkKICAgICBy
ZXR1cm4gZC0+cGFnZVZpZXcuZGF0YSgpOwogfQogCi12b2lkIFFRdWlja1dlYlZpZXc6OmxvYWQo
Y29uc3QgUVVybCYgdXJsKQotewotICAgIGlmICh1cmwuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBRX0QoUVF1aWNrV2ViVmlldyk7Ci0gICAgZC0+d2ViUGFnZVByb3h5LT5sb2Fk
VVJMKHVybC50b1N0cmluZygpKTsKLX0KLQogdm9pZCBRUXVpY2tXZWJWaWV3Ojpnb0JhY2soKQog
ewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKQEAgLTExNDgsNiArMTE0NywyMSBAQCBRVXJsIFFR
dWlja1dlYlZpZXc6OnVybCgpIGNvbnN0CiAgICAgcmV0dXJuIFFVcmwoUVN0cmluZyhtYWluRnJh
bWUtPnVybCgpKSk7CiB9CiAKK3ZvaWQgUVF1aWNrV2ViVmlldzo6c2V0VXJsKGNvbnN0IFFVcmwm
IHVybCkKK3sKKyAgICBRX0QoUVF1aWNrV2ViVmlldyk7CisKKyAgICBpZiAodXJsLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFpc0NvbXBvbmVudENvbXBsZXRlKCkpIHsK
KyAgICAgICAgZC0+bV9kZWZmZXJlZFVybFRvTG9hZCA9IHVybDsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGQtPndlYlBhZ2VQcm94eS0+bG9hZFVSTCh1cmwudG9TdHJpbmcoKSk7Cit9
CisKIFFVcmwgUVF1aWNrV2ViVmlldzo6aWNvbigpIGNvbnN0CiB7CiAgICAgUV9EKGNvbnN0IFFR
dWlja1dlYlZpZXcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld19wLmgKaW5kZXggNjc0YzE4Zi4uZDkyZDRhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCkBAIC02Nyw3ICs2Nyw3
IEBAIFFUX0VORF9OQU1FU1BBQ0UKIGNsYXNzIFFXRUJLSVRfRVhQT1JUIFFRdWlja1dlYlZpZXcg
OiBwdWJsaWMgUVF1aWNrSXRlbSB7CiAgICAgUV9PQkpFQ1QKICAgICBRX1BST1BFUlRZKFFTdHJp
bmcgdGl0bGUgUkVBRCB0aXRsZSBOT1RJRlkgdGl0bGVDaGFuZ2VkKQotICAgIFFfUFJPUEVSVFko
UVVybCB1cmwgUkVBRCB1cmwgTk9USUZZIHVybENoYW5nZWQpCisgICAgUV9QUk9QRVJUWShRVXJs
IHVybCBSRUFEIHVybCBXUklURSBzZXRVcmwgTk9USUZZIHVybENoYW5nZWQpCiAgICAgUV9QUk9Q
RVJUWShRVXJsIGljb24gUkVBRCBpY29uIE5PVElGWSBpY29uQ2hhbmdlZCBGSU5BTCkKICAgICBR
X1BST1BFUlRZKGludCBsb2FkUHJvZ3Jlc3MgUkVBRCBsb2FkUHJvZ3Jlc3MgTk9USUZZIGxvYWRQ
cm9ncmVzc0NoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShib29sIGNhbkdvQmFjayBSRUFEIGNhbkdv
QmFjayBOT1RJRlkgbmF2aWdhdGlvblN0YXRlQ2hhbmdlZCBGSU5BTCkKQEAgLTEwNCw2ICsxMDQs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UVF1aWNrV2ViVmlldygpOwogCiAgICAgUVVybCB1
cmwoKSBjb25zdDsKKyAgICB2b2lkIHNldFVybChjb25zdCBRVXJsJik7CiAgICAgUVVybCBpY29u
KCkgY29uc3Q7CiAgICAgUVN0cmluZyB0aXRsZSgpIGNvbnN0OwogICAgIGludCBsb2FkUHJvZ3Jl
c3MoKSBjb25zdDsKQEAgLTEzMiw3ICsxMzMsNiBAQCBwdWJsaWM6CiAgICAgUVBvaW50RiBwYWdl
SXRlbVBvcygpOwogCiBwdWJsaWMgUV9TTE9UUzoKLSAgICB2b2lkIGxvYWQoY29uc3QgUVVybCYp
OwogICAgIHZvaWQgbG9hZEh0bWwoY29uc3QgUVN0cmluZyYgaHRtbCwgY29uc3QgUVVybCYgYmFz
ZVVybCA9IFFVcmwoKSk7CiAKICAgICB2b2lkIGdvQmFjaygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IDMwMGI0NzUu
LjIwMzhkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcF9wLmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVDb250ZW50c1NpemUoY29uc3QgUVNpemVGJikgeyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgbG9hZERpZFN1Y2NlZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25Db21wb25lbnRDb21w
bGV0ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBvbmVudENvbXBsZXRlKCk7CiAgICAg
dmlydHVhbCB2b2lkIGxvYWREaWRDb21taXQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoRmlyc3ROb25FbXB0eUxheW91dCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VW
aWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3Mp
IHsgfQpAQCAtMTU5LDYgKzE1OSw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fbmF2aWdhdG9y
UXRPYmplY3RFbmFibGVkOwogICAgIGJvb2wgbV9yZW5kZXJUb09mZnNjcmVlbkJ1ZmZlcjsKICAg
ICBRVXJsIG1faWNvblVSTDsKKyAgICBRVXJsIG1fZGVmZmVyZWRVcmxUb0xvYWQ7CiB9OwogCiBj
bGFzcyBRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZSA6IHB1YmxpYyBRUXVpY2tXZWJWaWV3UHJp
dmF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3B1YmxpY2FwaS90c3RfcHVibGljYXBpLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcHVibGljYXBpL3RzdF9wdWJsaWNhcGkuY3BwCmluZGV4IDNhZDQ3MjkuLjRi
MTI3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cHVibGljYXBpL3RzdF9wdWJsaWNhcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcHVibGljYXBpL3RzdF9wdWJsaWNhcGkuY3BwCkBAIC02Nyw3ICs2Nyw2
IEBAIHN0YXRpYyBRU3RyaW5nTGlzdCBleHBlY3RlZEFQSSA9IFFTdHJpbmdMaXN0KCkKICAgICA8
PCAiUVF1aWNrV2ViVmlldy5saW5rSG92ZXJlZChRVXJsLFFTdHJpbmcpIC0tPiB2b2lkIgogICAg
IDw8ICJRUXVpY2tXZWJWaWV3Lm5hdmlnYXRpb25TdGF0ZUNoYW5nZWQoKSAtLT4gdm9pZCIKICAg
ICA8PCAiUVF1aWNrV2ViVmlldy5uYXZpZ2F0aW9uUmVxdWVzdGVkKFFXZWJOYXZpZ2F0aW9uUmVx
dWVzdCopIC0tPiB2b2lkIgotICAgIDw8ICJRUXVpY2tXZWJWaWV3LmxvYWQoUVVybCkgLS0+IHZv
aWQiCiAgICAgPDwgIlFRdWlja1dlYlZpZXcubG9hZEh0bWwoUVN0cmluZyxRVXJsKSAtLT4gdm9p
ZCIKICAgICA8PCAiUVF1aWNrV2ViVmlldy5sb2FkSHRtbChRU3RyaW5nKSAtLT4gdm9pZCIKICAg
ICA8PCAiUVF1aWNrV2ViVmlldy5nb0JhY2soKSAtLT4gdm9pZCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9y
L3RzdF9pdGVtU2VsZWN0b3IucW1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X2l0ZW1TZWxlY3Rvci5xbWwKaW5kZXgg
NDMyNDE2YS4uMTQ1Mjg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X2l0ZW1TZWxlY3Rvci5xbWwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNr
dG9wQmVoYXZpb3IvdHN0X2l0ZW1TZWxlY3Rvci5xbWwKQEAgLTU5LDcgKzU5LDcgQEAgV2ViVmll
dyB7CiAgICAgICAgICAgICB3ZWJWaWV3LnVzZUFjY2VwdERpcmVjdGx5ID0gZmFsc2UKICAgICAg
ICAgICAgIHdlYlZpZXcuc2VsZWN0b3JMb2FkZWQgPSBmYWxzZQogICAgICAgICAgICAgbG9hZFNw
eS5jbGVhcigpCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2Nv
bW1vbi9zZWxlY3QuaHRtbCIpKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZl
ZFVybCgiLi4vY29tbW9uL3NlbGVjdC5odG1sIikKICAgICAgICAgICAgIGxvYWRTcHkud2FpdCgp
CiAgICAgICAgICAgICB0aXRsZVNweS5jbGVhcigpCiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2
aW9yL3RzdF9saW5rSG92ZXJlZC5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbGlua0hvdmVyZWQucW1sCmluZGV4
IGI4YWIyOTQuLjhkNWM4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9saW5rSG92ZXJlZC5xbWwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNr
dG9wQmVoYXZpb3IvdHN0X2xpbmtIb3ZlcmVkLnFtbApAQCAtNDgsNyArNDgsNyBAQCBXZWJWaWV3
IHsKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0X2xpbmtIb3ZlcmVkKCkgewogICAgICAgICAgICAg
Y29tcGFyZShzcHkuY291bnQsIDApCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2
ZWRVcmwoIi4uL2NvbW1vbi90ZXN0Mi5odG1sIikpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9
IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDIuaHRtbCIpCiAgICAgICAgICAgICBsb2Fk
U3B5LndhaXQoKQogICAgICAgICAgICAgbW91c2VNb3ZlKHdlYlZpZXcsIDEwMCwgMTAwKQogICAg
ICAgICAgICAgc3B5LndhaXQoKQpAQCAtNjQsNyArNjQsNyBAQCBXZWJWaWV3IHsKIAogICAgICAg
ICBmdW5jdGlvbiB0ZXN0X2xpbmtIb3ZlcmVkRG9lc250RW1pdFJlcGVhdGVkKCkgewogICAgICAg
ICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQu
cmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0Mi5odG1sIikpCisgICAgICAgICAgICB3ZWJWaWV3
LnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDIuaHRtbCIpCiAgICAgICAgICAg
ICBsb2FkU3B5LndhaXQoKQogCiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsg
aSArPSAxMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9tZXNzYWdpbmcucW1sIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0
X21lc3NhZ2luZy5xbWwKaW5kZXggZWIxOGE4Mi4uYTQyY2UwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3Iv
dHN0X21lc3NhZ2luZy5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X21lc3NhZ2luZy5xbWwKQEAgLTc1LDcg
Kzc1LDcgQEAgSXRlbSB7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiB0ZXN0X2Jhc2lj
KCkgewotICAgICAgICAgICAgd2ViVmlldy5sb2FkKHRlc3RVcmwpCisgICAgICAgICAgICB3ZWJW
aWV3LnVybCA9IHRlc3RVcmwKICAgICAgICAgICAgIGxvYWRTcHkud2FpdCgpCiAgICAgICAgICAg
ICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC5wb3N0TWVzc2FnZSgiSEVMTE8iKQogICAgICAgICAgICAg
bWVzc2FnZVNweS53YWl0KCkKQEAgLTg0LDggKzg0LDggQEAgSXRlbSB7CiAgICAgICAgIH0KIAog
ICAgICAgICBmdW5jdGlvbiB0ZXN0X3R3b1dlYlZpZXdzKCkgewotICAgICAgICAgICAgd2ViVmll
dy5sb2FkKHRlc3RVcmwpCi0gICAgICAgICAgICBvdGhlcldlYlZpZXcubG9hZCh0ZXN0VXJsKQor
ICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0ZXN0VXJsCisgICAgICAgICAgICBvdGhlcldlYlZp
ZXcudXJsID0gdGVzdFVybAogICAgICAgICAgICAgbG9hZFNweS53YWl0KCkKICAgICAgICAgICAg
IG90aGVyTG9hZFNweS53YWl0KCkKICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnBv
c3RNZXNzYWdlKCJGSVJTVCIpCkBAIC05Nyw3ICs5Nyw3IEBAIEl0ZW0gewogICAgICAgICB9CiAK
ICAgICAgICAgZnVuY3Rpb24gdGVzdF9kaXNhYmxlZCgpIHsKLSAgICAgICAgICAgIGRpc2FibGVk
V2ViVmlldy5sb2FkKHRlc3RVcmwpCisgICAgICAgICAgICBkaXNhYmxlZFdlYlZpZXcudXJsID0g
dGVzdFVybAogICAgICAgICAgICAgdmVyaWZ5KCFkaXNhYmxlZFdlYlZpZXcuZXhwZXJpbWVudGFs
LnByZWZlcmVuY2VzLm5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCkKICAgICAgICAgICAgIGRpc2Fi
bGVkV2ViVmlld0xvYWRTcHkud2FpdCgpCiAgICAgICAgICAgICBkaXNhYmxlZFdlYlZpZXcuZXhw
ZXJpbWVudGFsLnBvc3RNZXNzYWdlKCJISSIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdh
dGlvblJlcXVlc3RlZC5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5xbWwKaW5k
ZXggMTY5YTAyNy4uYTQwNTE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1
ZXN0ZWQucW1sCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbApAQCAtMjIs
NyArMjIsNyBAQCBJdGVtIHsKICAgICAgICAgICAgIGlmIChzaG91bGREb3dubG9hZCkKICAgICAg
ICAgICAgICAgICByZXF1ZXN0LmFjdGlvbiA9IFdlYlZpZXdFeHBlcmltZW50YWwuRG93bmxvYWRS
ZXF1ZXN0CiAgICAgICAgICAgICBlbHNlIGlmIChyZXF1ZXN0LmJ1dHRvbiA9PSBRdC5NaWRkbGVC
dXR0b24gJiYgcmVxdWVzdC5tb2RpZmllcnMgJiBRdC5Db250cm9sTW9kaWZpZXIpIHsKLSAgICAg
ICAgICAgICAgICBvdGhlcldlYlZpZXcubG9hZChyZXF1ZXN0LnVybCkKKyAgICAgICAgICAgICAg
ICBvdGhlcldlYlZpZXcudXJsID0gcmVxdWVzdC51cmwKICAgICAgICAgICAgICAgICByZXF1ZXN0
LmFjdGlvbiA9IFdlYlZpZXcuSWdub3JlUmVxdWVzdAogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgb3JpZ2luYXRpbmdVcmwgPSByZXF1ZXN0Lm9yaWdpbmF0aW5nVXJsCkBAIC05NSw3ICs5NSw3
IEBAIEl0ZW0gewogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdF91c2VQb2xpY3ko
KSB7Ci0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoYmVnaW5VcmwpCisgICAgICAgICAgICB3ZWJW
aWV3LnVybCA9IGJlZ2luVXJsCiAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICBz
cHkuY2xlYXIoKQogICAgICAgICAgICAgbW91c2VDbGljayh3ZWJWaWV3LCAxMDAsIDEwMCwgUXQu
TGVmdEJ1dHRvbikKQEAgLTEwNiw3ICsxMDYsNyBAQCBJdGVtIHsKICAgICAgICAgfQogCiAgICAg
ICAgIGZ1bmN0aW9uIHRlc3RfaWdub3JlUG9saWN5KCkgewotICAgICAgICAgICAgd2ViVmlldy5s
b2FkKGJlZ2luVXJsKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBiZWdpblVybAogICAgICAg
ICAgICAgc3B5LndhaXQoKQogICAgICAgICAgICAgc3B5LmNsZWFyKCkKICAgICAgICAgICAgIGNv
bXBhcmUoc3B5LmNvdW50LCAwKQpAQCAtMTIxLDcgKzEyMSw3IEBAIEl0ZW0gewogICAgICAgICB9
CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdF9kb3dubG9hZFBvbGljeSgpIHsKLSAgICAgICAgICAg
IHdlYlZpZXcubG9hZChiZWdpblVybCkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gYmVnaW5V
cmwKICAgICAgICAgICAgIHNweS53YWl0KCkKICAgICAgICAgICAgIHNweS5jbGVhcigpCiAgICAg
ICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMCkKQEAgLTEzOCw3ICsxMzgsNyBAQCBJdGVtIHsK
ICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3Rfb3JpZ2luYXRpbmdVcmwoKSB7Ci0g
ICAgICAgICAgICB3ZWJWaWV3LmxvYWQoYmVnaW5VcmwpCisgICAgICAgICAgICB3ZWJWaWV3LnVy
bCA9IGJlZ2luVXJsCiAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICBzcHkuY2xl
YXIoKQogICAgICAgICAgICAgbW91c2VDbGljayh3ZWJWaWV3LCAxMDAsIDEwMCwgUXQuTGVmdEJ1
dHRvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy90c3RfYXBwbGljYXRpb25TY2hlbWUucW1sIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9hcHBsaWNhdGlv
blNjaGVtZS5xbWwKaW5kZXggOGJjYjVlYy4uMmUyYTM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9hcHBsaWNh
dGlvblNjaGVtZS5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0
cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5xbWwKQEAgLTc4LDcgKzc4
LDcgQEAgV2ViVmlldyB7CiAgICAgICAgICAgICBzcHlUaXRsZS5jbGVhcigpCiAgICAgICAgICAg
ICBjb21wYXJlKHNweVRpdGxlLmNvdW50LCAwKQogICAgICAgICAgICAgdmFyIHRlc3RVcmwgPSAi
YXBwbGljYXRpb25TY2hlbWU6Ly9zb21ldGhpbmciCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQo
dGVzdFVybCkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gdGVzdFVybAogICAgICAgICAgICAg
c3B5VGl0bGUud2FpdCgpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJUZXN0
IEFwcGxpY2F0aW9uIFNjaGVtZSIpCiAgICAgICAgIH0KQEAgLTg4LDEyICs4OCwxMiBAQCBXZWJW
aWV3IHsKICAgICAgICAgICAgIHNweVRpdGxlLmNsZWFyKCkKICAgICAgICAgICAgIGNvbXBhcmUo
c3B5VGl0bGUuY291bnQsIDApCiAgICAgICAgICAgICB2YXIgdGVzdFVybCA9ICJzY2hlbWUyOi8v
c29tZS11cmwtc3RyaW5nIgotICAgICAgICAgICAgd2ViVmlldy5sb2FkKHRlc3RVcmwpCisgICAg
ICAgICAgICB3ZWJWaWV3LnVybCA9IHRlc3RVcmwKICAgICAgICAgICAgIHNweVRpdGxlLndhaXQo
KQogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiU2NoZW1lMiBSZXBseSIpCiAK
ICAgICAgICAgICAgIHRlc3RVcmwgPSAic2NoZW1lMTovL3NvbWUtdXJsLXN0cmluZyIKLSAgICAg
ICAgICAgIHdlYlZpZXcubG9hZCh0ZXN0VXJsKQorCSAgICB3ZWJWaWV3LnVybCA9IHRlc3RVcmwK
ICAgICAgICAgICAgIHNweVRpdGxlLndhaXQoKQogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3
LnRpdGxlLCAiU2NoZW1lMSBSZXBseSIpCiAKQEAgLTEwNCwxMiArMTA0LDEyIEBAIFdlYlZpZXcg
ewogICAgICAgICAgICAgc3B5VGl0bGUuY2xlYXIoKQogICAgICAgICAgICAgY29tcGFyZShzcHlU
aXRsZS5jb3VudCwgMCkKICAgICAgICAgICAgIHZhciB0ZXN0VXJsID0gInNjaGVtZTM6Ly91cmwx
IgotICAgICAgICAgICAgd2ViVmlldy5sb2FkKHRlc3RVcmwpCisgICAgICAgICAgICB3ZWJWaWV3
LnVybCA9IHRlc3RVcmwKICAgICAgICAgICAgIHNweVRpdGxlLndhaXQoKQogICAgICAgICAgICAg
Y29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiU2NoZW1lMyBSZXBseTEiKQogCiAgICAgICAgICAgICB0
ZXN0VXJsID0gInNjaGVtZTM6Ly91cmwyIgotICAgICAgICAgICAgd2ViVmlldy5sb2FkKHRlc3RV
cmwpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IHRlc3RVcmwKICAgICAgICAgICAgIHNweVRp
dGxlLndhaXQoKQogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiU2NoZW1lMyBS
ZXBseTIiKQogCkBAIC0xMjAsMTIgKzEyMCwxMiBAQCBXZWJWaWV3IHsKICAgICAgICAgICAgIHNw
eVRpdGxlLmNsZWFyKCkKICAgICAgICAgICAgIGNvbXBhcmUoc3B5VGl0bGUuY291bnQsIDApCiAg
ICAgICAgICAgICB2YXIgdGVzdFVybCA9ICJzY2hlbWVDaGFyc2V0Oi8vbGF0aW4xIgotICAgICAg
ICAgICAgd2ViVmlldy5sb2FkKHRlc3RVcmwpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IHRl
c3RVcmwKICAgICAgICAgICAgIHNweVRpdGxlLndhaXQoKQogICAgICAgICAgICAgY29tcGFyZSh3
ZWJWaWV3LnRpdGxlLCAidGl0bGUgd2l0aCBjb3B5cmlnaHQgwqkiKQogCiAgICAgICAgICAgICB0
ZXN0VXJsID0gInNjaGVtZUNoYXJzZXQ6Ly91dGYtOCIKLSAgICAgICAgICAgIHdlYlZpZXcubG9h
ZCh0ZXN0VXJsKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0ZXN0VXJsCiAgICAgICAgICAg
ICBzcHlUaXRsZS53YWl0KCkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgInRp
dGxlIHdpdGggY29weXJpZ2h0IMKpIikKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9kb3dubG9h
ZC5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dl
YlZpZXcvdHN0X2Rvd25sb2FkLnFtbAppbmRleCBmODMyNGE2Li45ZjFkNDMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcv
dHN0X2Rvd25sb2FkLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2Rvd25sb2FkLnFtbApAQCAtNjEsMTQgKzYxLDE0IEBA
IFdlYlZpZXcgewogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RfZG93bmxvYWRSZXF1ZXN0KCkgewog
ICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCi0gICAgICAgICAgICB3ZWJWaWV3Lmxv
YWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9kb3dubG9hZC56aXAiKSkKKyAgICAgICAgICAg
IHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9kb3dubG9hZC56aXAiKQog
ICAgICAgICAgICAgc3B5LndhaXQoKQogICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDEp
CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiB0ZXN0X2V4cGVjdGVkTGVuZ3RoKCkgewog
ICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCi0gICAgICAgICAgICB3ZWJWaWV3Lmxv
YWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9kb3dubG9hZC56aXAiKSkKKyAgICAgICAgICAg
IHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9kb3dubG9hZC56aXAiKQog
ICAgICAgICAgICAgc3B5LndhaXQoKQogICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDEp
CiAgICAgICAgICAgICBjb21wYXJlKGV4cGVjdGVkTGVuZ3RoLCAzMjUpCkBAIC03Niw3ICs3Niw3
IEBAIFdlYlZpZXcgewogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3Rfc3VjY2VlZGVkKCkgewogICAg
ICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQo
UXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9kb3dubG9hZC56aXAiKSkKKyAgICAgICAgICAgIHdl
YlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9kb3dubG9hZC56aXAiKQogICAg
ICAgICAgICAgc3B5LndhaXQoKQogICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDEpCiAg
ICAgICAgICAgICBkb3dubG9hZEZpbmlzaGVkU3B5LndhaXQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9mYXZJ
Y29uTG9hZC5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X2Zhdkljb25Mb2FkLnFtbAppbmRleCAxMjE4MDkzLi43YmFjOTMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L1dlYlZpZXcvdHN0X2Zhdkljb25Mb2FkLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2Zhdkljb25Mb2FkLnFtbApAQCAt
MjksNyArMjksNyBAQCBXZWJWaWV3IHsKICAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKICAgICAg
ICAgICAgIGlmICh3ZWJWaWV3Lmljb24gIT0gJycpIHsKICAgICAgICAgICAgICAgICAvLyBJZiB0
aGlzIGlzIG5vdCB0aGUgZmlyc3QgdGVzdCwgdGhlbiBsb2FkIGEgYmxhbmsgcGFnZSB3aXRob3V0
IGZhdmljb24sIHJlc3RvcmluZyB0aGUgaW5pdGlhbCBzdGF0ZS4KLSAgICAgICAgICAgICAgICB3
ZWJWaWV3LmxvYWQoJ2Fib3V0OmJsYW5rJykKKyAgICAgICAgICAgICAgICB3ZWJWaWV3LnVybCA9
ICdhYm91dDpibGFuaycKICAgICAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICAg
ICAgbG9hZFNweS53YWl0KCkKICAgICAgICAgICAgIH0KQEAgLTQwLDcgKzQwLDcgQEAgV2ViVmll
dyB7CiAgICAgICAgIGZ1bmN0aW9uIHRlc3RfZmF2SWNvbkxvYWQoKSB7CiAgICAgICAgICAgICBj
b21wYXJlKHNweS5jb3VudCwgMCkKICAgICAgICAgICAgIHZhciB1cmwgPSBRdC5yZXNvbHZlZFVy
bCgiLi4vY29tbW9uL2Zhdmljb24uaHRtbCIpCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXJs
KQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSB1cmwKICAgICAgICAgICAgIHNweS53YWl0KCkK
ICAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAxKQogICAgICAgICAgICAgY29tcGFyZShm
YXZpY29uLndpZHRoLCA0OCkKQEAgLTUwLDcgKzUwLDcgQEAgV2ViVmlldyB7CiAgICAgICAgIGZ1
bmN0aW9uIHRlc3RfZmF2SWNvbkxvYWRFbmNvZGVkVXJsKCkgewogICAgICAgICAgICAgY29tcGFy
ZShzcHkuY291bnQsIDApCiAgICAgICAgICAgICB2YXIgdXJsID0gUXQucmVzb2x2ZWRVcmwoIi4u
L2NvbW1vbi9mYXZpY29uMi5odG1sP2Zhdmljb249bG9hZCBzaG91bGQgd29yayB3aXRoI3doaXRl
c3BhY2UhIikKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZCh1cmwpCisgICAgICAgICAgICB3ZWJW
aWV3LnVybCA9IHVybAogICAgICAgICAgICAgc3B5LndhaXQoKQogICAgICAgICAgICAgY29tcGFy
ZShzcHkuY291bnQsIDEpCiAgICAgICAgICAgICBjb21wYXJlKGZhdmljb24ud2lkdGgsIDE2KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0
cy9XZWJWaWV3L3RzdF9nZW9wZXJtaXNzaW9uLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZ2VvcGVybWlzc2lvbi5xbWwKaW5k
ZXggZmQ4OThhNy4uNDEwOTdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9nZW9wZXJtaXNzaW9uLnFtbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcv
dHN0X2dlb3Blcm1pc3Npb24ucW1sCkBAIC00Niw3ICs0Niw3IEBAIFdlYlZpZXcgewogCiAgICAg
ICAgIGZ1bmN0aW9uIHRlc3RfcGVybWlzc2lvblJlcXVlc3QoKSB7CiAgICAgICAgICAgICBjb21w
YXJlKHNweS5jb3VudCwgMCkKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVy
bCgiLi4vY29tbW9uL2dlb2xvY2F0aW9uLmh0bWwiKSkKKyAgICAgICAgICAgIHdlYlZpZXcudXJs
ID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9nZW9sb2NhdGlvbi5odG1sIikKICAgICAgICAg
ICAgIHNweS53YWl0KCkKICAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAxKQogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X2phdmFTY3JpcHREaWFsb2dzLnFtbCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfamF2YVNjcmlwdERp
YWxvZ3MucW1sCmluZGV4IDEzYWRiM2IuLjk2OGJiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfamF2YVNjcmlw
dERpYWxvZ3MucW1sCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy90c3RfamF2YVNjcmlwdERpYWxvZ3MucW1sCkBAIC03Myw3ICs3Myw3
IEBAIFdlYlZpZXcgewogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdF9hbGVydCgp
IHsKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2Fs
ZXJ0Lmh0bWwiKSkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4u
L2NvbW1vbi9hbGVydC5odG1sIikKICAgICAgICAgICAgIGxvYWRTcHkud2FpdCgpCiAgICAgICAg
ICAgICBjb21wYXJlKGxvYWRTcHkuY291bnQsIDEpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZp
ZXcubWVzc2FnZUZyb21BbGVydERpYWxvZywgIkhlbGxvIFF0IikKQEAgLTgyLDE0ICs4MiwxNCBA
QCBXZWJWaWV3IHsKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0X2FsZXJ0V2l0aG91dERpYWxvZygp
IHsKICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLmFsZXJ0RGlhbG9nID0gbnVsbAot
ICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vYWxlcnQu
aHRtbCIpKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29t
bW9uL2FsZXJ0Lmh0bWwiKQogICAgICAgICAgICAgbG9hZFNweS53YWl0KCkKICAgICAgICAgICAg
IGNvbXBhcmUobG9hZFNweS5jb3VudCwgMSkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy5t
ZXNzYWdlRnJvbUFsZXJ0RGlhbG9nLCAiIikKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9u
IHRlc3RfY29uZmlybSgpIHsKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVy
bCgiLi4vY29tbW9uL2NvbmZpcm0uaHRtbCIpKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBR
dC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2NvbmZpcm0uaHRtbCIpCiAgICAgICAgICAgICBsb2Fk
U3B5LndhaXQoKQogICAgICAgICAgICAgY29tcGFyZShsb2FkU3B5LmNvdW50LCAxKQogICAgICAg
ICAgICAgY29tcGFyZSh3ZWJWaWV3LmNvbmZpcm1Db3VudCwgMikKQEAgLTk4LDcgKzk4LDcgQEAg
V2ViVmlldyB7CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdF9jb25maXJtV2l0aG91dERpYWxvZygp
IHsKICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLmNvbmZpcm1EaWFsb2cgPSBudWxs
Ci0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9jb25m
aXJtLmh0bWwiKSkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4u
L2NvbW1vbi9jb25maXJtLmh0bWwiKQogICAgICAgICAgICAgbG9hZFNweS53YWl0KCkKICAgICAg
ICAgICAgIGNvbXBhcmUobG9hZFNweS5jb3VudCwgMSkKICAgICAgICAgICAgIGNvbXBhcmUod2Vi
Vmlldy5jb25maXJtQ291bnQsIDApCkBAIC0xMDYsNyArMTA2LDcgQEAgV2ViVmlldyB7CiAgICAg
ICAgIH0KIAogICAgICAgICBmdW5jdGlvbiB0ZXN0X3Byb21wdCgpIHsKLSAgICAgICAgICAgIHdl
YlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Byb21wdC5odG1sIikpCisgICAg
ICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vcHJvbXB0Lmh0
bWwiKQogICAgICAgICAgICAgbG9hZFNweS53YWl0KCkKICAgICAgICAgICAgIGNvbXBhcmUobG9h
ZFNweS5jb3VudCwgMSkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy5wcm9tcHRDb3VudCwg
MikKQEAgLTExNSw3ICsxMTUsNyBAQCBXZWJWaWV3IHsKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0
X3Byb21wdFdpdGhvdXREaWFsb2coKSB7CiAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRh
bC5wcm9tcHREaWFsb2cgPSBudWxsCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2
ZWRVcmwoIi4uL2NvbW1vbi9wcm9tcHQuaHRtbCIpKQorICAgICAgICAgICAgd2ViVmlldy51cmwg
PSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Byb21wdC5odG1sIikKICAgICAgICAgICAgIGxv
YWRTcHkud2FpdCgpCiAgICAgICAgICAgICBjb21wYXJlKGxvYWRTcHkuY291bnQsIDEpCiAgICAg
ICAgICAgICBjb21wYXJlKHdlYlZpZXcucHJvbXB0Q291bnQsIDApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xv
YWRGYWlsLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvV2ViVmlldy90c3RfbG9hZEZhaWwucW1sCmluZGV4IDI2YTQyYzAuLmVkNzUxYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2Vi
Vmlldy90c3RfbG9hZEZhaWwucW1sCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZEZhaWwucW1sCkBAIC0yMSw3ICsyMSw3
IEBAIFdlYlZpZXcgewogICAgICAgICBmdW5jdGlvbiB0ZXN0X2ZhaWwoKSB7CiAgICAgICAgICAg
ICBjb21wYXJlKHNweS5jb3VudCwgMCkKICAgICAgICAgICAgIHRlc3RVcmwgPSBRdC5yZXNvbHZl
ZFVybCgiZmlsZV90aGF0X2RvZXNfbm90X2V4aXN0Lmh0bWwiKQotICAgICAgICAgICAgd2ViVmll
dy5sb2FkKHRlc3RVcmwpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IHRlc3RVcmwKICAgICAg
ICAgICAgIHNweS53YWl0KCkKICAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAxKQogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRQcm9ncmVzcy5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRQcm9ncmVzcy5x
bWwKaW5kZXggYTUxZDZmNi4uYjM1MzE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3MucW1s
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2Vi
Vmlldy90c3RfbG9hZFByb2dyZXNzLnFtbApAQCAtMTksNyArMTksNyBAQCBXZWJWaWV3IHsKICAg
ICAgICAgZnVuY3Rpb24gdGVzdF9sb2FkUHJvZ3Jlc3MoKSB7CiAgICAgICAgICAgICBjb21wYXJl
KHNweS5jb3VudCwgMCkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy5sb2FkUHJvZ3Jlc3Ms
IDApCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90
ZXN0MS5odG1sIikpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVkVXJsKCIu
Li9jb21tb24vdGVzdDEuaHRtbCIpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcubG9hZFBy
b2dyZXNzLCAwKQogICAgICAgICAgICAgc3B5LndhaXQoKQogICAgICAgICAgICAgY29tcGFyZSh3
ZWJWaWV3LmxvYWRQcm9ncmVzcywgMTAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3NTaWdu
YWwucW1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3NTaWduYWwucW1sCmluZGV4IDEwYWM4NzkuLmI3MzZjYjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvV2ViVmlldy90c3RfbG9hZFByb2dyZXNzU2lnbmFsLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRQcm9ncmVz
c1NpZ25hbC5xbWwKQEAgLTI1LDcgKzI1LDcgQEAgV2ViVmlldyB7CiAgICAgICAgIGZ1bmN0aW9u
IHRlc3RfbG9hZFByb2dyZXNzU2lnbmFsKCkgewogICAgICAgICAgICAgY29tcGFyZShzcHlQcm9n
cmVzcy5jb3VudCwgMCkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy5sb2FkUHJvZ3Jlc3Ms
IDApCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90
ZXN0MS5odG1sIikpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVkVXJsKCIu
Li9jb21tb24vdGVzdDEuaHRtbCIpCiAgICAgICAgICAgICBzcHlQcm9ncmVzcy53YWl0KCkKICAg
ICAgICAgICAgIGNvbXBhcmUodHJ1ZSwgd2ViVmlldy5sb2FkUHJvZ3Jlc3MgPiAtMSAmJiB3ZWJW
aWV3LmxvYWRQcm9ncmVzcyA8IDEwMSkKICAgICAgICAgICAgIGlmICh3ZWJWaWV3LmxvYWRQcm9n
cmVzcyA+IDAgJiYgd2ViVmlldy5sb2FkUHJvZ3Jlc3MgPCAxMDApIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
bG9hZFVybC5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X2xvYWRVcmwucW1sCmluZGV4IGQ3MDk3NmMuLmM1MTA4MmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2Vi
Vmlldy90c3RfbG9hZFVybC5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkVXJsLnFtbApAQCAtMjcsMjUgKzI3LDI1
IEBAIFdlYlZpZXcgewogICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCiAgICAgICAg
ICAgICB2YXIgdXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1sIikKIAot
ICAgICAgICAgICAgd2ViVmlldy5sb2FkKHVybCkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0g
dXJsCiAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICBjb21wYXJlKHNweS5jb3Vu
dCwgMSkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkKIAogICAgICAgICAg
ICAgbGFzdFVybCA9IHdlYlZpZXcudXJsCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoJycpCisg
ICAgICAgICAgICB3ZWJWaWV3LnVybCA9ICcnCiAgICAgICAgICAgICB3YWl0KDEwMDApCiAgICAg
ICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMSkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmll
dy51cmwsIGxhc3RVcmwpCiAKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZCgnYWJvdXQ6Ymxhbmsn
KQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSAnYWJvdXQ6YmxhbmsnCiAgICAgICAgICAgICBz
cHkud2FpdCgpCiAgICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMikKICAgICAgICAgICAg
IGNvbXBhcmUod2ViVmlldy51cmwsICdhYm91dDpibGFuaycpCiAKICAgICAgICAgICAgIC8vIEl0
IHNob3VsZG4ndCBpbnRlcnJ1cHQgYW55IG9uZ29pbmcgbG9hZCB3aGVuIGFuIGVtcHR5IHVybCBp
cyB1c2VkLgogICAgICAgICAgICAgd2F0Y2hQcm9ncmVzcyA9IHRydWUKLSAgICAgICAgICAgIHdl
YlZpZXcubG9hZCh1cmwpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IHVybAogICAgICAgICAg
ICAgc3B5LndhaXQoKQogICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDMpCiAgICAgICAg
ICAgICB2ZXJpZnkoIXdhdGNoUHJvZ3Jlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X25hdmlnYXRpb25IaXN0
b3J5LnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
V2ViVmlldy90c3RfbmF2aWdhdGlvbkhpc3RvcnkucW1sCmluZGV4IGI4ODZlNDguLmFmMDYzMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvV2ViVmlldy90c3RfbmF2aWdhdGlvbkhpc3RvcnkucW1sCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbmF2aWdhdGlvbkhp
c3RvcnkucW1sCkBAIC00MiwxNCArNDIsMTQgQEAgV2ViVmlldyB7CiAgICAgICAgIGZ1bmN0aW9u
IHRlc3RfbmF2aWdhdGlvbkhpc3RvcnkoKSB7CiAgICAgICAgICAgICBjb21wYXJlKHNweS5jb3Vu
dCwgMCkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy5sb2FkUHJvZ3Jlc3MsIDApCi0gICAg
ICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1s
IikpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24v
dGVzdDEuaHRtbCIpCiAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICBjb21wYXJl
KHdlYlZpZXcuY2FuR29CYWNrLCBmYWxzZSkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy5j
YW5Hb0ZvcndhcmQsIGZhbHNlKQogICAgICAgICAgICAgY29tcGFyZShiYWNrSXRlbXNMaXN0LmNv
dW50LCAwKQogICAgICAgICAgICAgY29tcGFyZShmb3J3YXJkSXRlbXNMaXN0LmNvdW50LCAwKQog
ICAgICAgICAgICAgc3B5LmNsZWFyKCkKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNv
bHZlZFVybCgiLi4vY29tbW9uL3Rlc3QyLmh0bWwiKSkKKyAgICAgICAgICAgIHdlYlZpZXcudXJs
ID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0Mi5odG1sIikKICAgICAgICAgICAgIHNw
eS53YWl0KCkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIFF0LnJlc29sdmVkVXJs
KCIuLi9jb21tb24vdGVzdDIuaHRtbCIpKQogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LmNh
bkdvQmFjaywgdHJ1ZSkKQEAgLTcyLDcgKzcyLDcgQEAgV2ViVmlldyB7CiAgICAgICAgICAgICBj
b21wYXJlKGJhY2tJdGVtc0xpc3QuY291bnQsIDEpCiAgICAgICAgICAgICBjb21wYXJlKGZvcndh
cmRJdGVtc0xpc3QuY291bnQsIDApCiAgICAgICAgICAgICBzcHkuY2xlYXIoKQotICAgICAgICAg
ICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vamF2YXNjcmlwdC5odG1s
IikpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24v
amF2YXNjcmlwdC5odG1sIikKICAgICAgICAgICAgIHNweS53YWl0KCkKICAgICAgICAgICAgIGNv
bXBhcmUod2ViVmlldy51cmwsIFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vamF2YXNjcmlwdC5o
dG1sIikpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcuY2FuR29CYWNrLCB0cnVlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9vcmlnaW4ucW1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sCmluZGV4IDcwNzQ1ZDguLjY2MGNh
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwKQEAgLTQ4LDcg
KzQ4LDcgQEAgV2ViVmlldyB7CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdF9wZXJtaXNzaW9uUmVx
dWVzdCgpIHsKICAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAwKQotICAgICAgICAgICAg
d2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZ2VvbG9jYXRpb24uaHRtbCIp
KQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2dl
b2xvY2F0aW9uLmh0bWwiKQogICAgICAgICAgICAgc3B5LndhaXQoKQogICAgICAgICAgICAgY29t
cGFyZShzcHkuY291bnQsIDEpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcuc3VjY2Vzcywg
dHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy90c3RfcHJlZmVyZW5jZXMucW1sIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9wcmVmZXJlbmNlcy5xbWwK
aW5kZXggOTE3YjY4OS4uZmQ1ZTU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9wcmVmZXJlbmNlcy5xbWwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3
L3RzdF9wcmVmZXJlbmNlcy5xbWwKQEAgLTEzMyw3ICsxMzMsNyBAQCBJdGVtIHsKIAogICAgICAg
ICAgICAgICAgICAgICBpZiAod2ViVmlldy51cmwgIT0gJycgJiYgd2ViVmlldy51cmwgIT0gJ2Fi
b3V0OmJsYW5rJykgewogICAgICAgICAgICAgICAgICAgICAgICAgc3B5LmNsZWFyKCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHdlYlZpZXcubG9hZCgnYWJvdXQ6YmxhbmsnKQorICAgICAgICAg
ICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSAnYWJvdXQ6YmxhbmsnCiAgICAgICAgICAgICAg
ICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICAgICAgICAgIH0KIApAQCAtMTU4LDcg
KzE1OCw3IEBAIEl0ZW0gewogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdF9qYXZhc2NyaXB0RW5h
YmxlZCgpIHsKICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC5wcmVmZXJlbmNl
cy5qYXZhc2NyaXB0RW5hYmxlZCA9IHRydWUKICAgICAgICAgICAgICAgICB2YXIgdGVzdFVybCA9
IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vamF2YXNjcmlwdC5odG1sIikKLSAgICAgICAgICAg
ICAgICB3ZWJWaWV3LmxvYWQodGVzdFVybCkKKyAgICAgICAgICAgICAgICB3ZWJWaWV3LnVybCA9
IHRlc3RVcmwKICAgICAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICAgICAgY29t
cGFyZSh3ZWJWaWV3LnRpdGxlLCAiTmV3IFRpdGxlIikKICAgICAgICAgICAgIH0KQEAgLTE2Niw3
ICsxNjYsNyBAQCBJdGVtIHsKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RfamF2YXNjcmlwdERp
c2FibGVkKCkgewogICAgICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnByZWZlcmVu
Y2VzLmphdmFzY3JpcHRFbmFibGVkID0gZmFsc2UKICAgICAgICAgICAgICAgICB2YXIgdGVzdFVy
bCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vamF2YXNjcmlwdC5odG1sIikKLSAgICAgICAg
ICAgICAgICB3ZWJWaWV3LmxvYWQodGVzdFVybCkKKyAgICAgICAgICAgICAgICB3ZWJWaWV3LnVy
bCA9IHRlc3RVcmwKICAgICAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICAgICAg
Y29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3JpZ2luYWwgVGl0bGUiKQogICAgICAgICAgICAgfQpA
QCAtMTc0LDcgKzE3NCw3IEBAIEl0ZW0gewogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdF9sb2Nh
bFN0b3JhZ2VEaXNhYmxlZCgpIHsKICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRh
bC5wcmVmZXJlbmNlcy5sb2NhbFN0b3JhZ2VFbmFibGVkID0gZmFsc2UKICAgICAgICAgICAgICAg
ICB2YXIgdGVzdFVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vbG9jYWxTdG9yYWdlLmh0
bWwiKQotICAgICAgICAgICAgICAgIHdlYlZpZXcubG9hZCh0ZXN0VXJsKQorICAgICAgICAgICAg
ICAgIHdlYlZpZXcudXJsID0gdGVzdFVybAogICAgICAgICAgICAgICAgIHNweS53YWl0KCkKICAg
ICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJPcmlnaW5hbCBUaXRsZSIpCiAg
ICAgICAgICAgICB9CkBAIC0xODIsMTAgKzE4MiwxMCBAQCBJdGVtIHsKICAgICAgICAgICAgIGZ1
bmN0aW9uIHRlc3RfbG9jYWxTdG9yYWdlRW5hYmxlZCgpIHsKICAgICAgICAgICAgICAgICB3ZWJW
aWV3LmV4cGVyaW1lbnRhbC5wcmVmZXJlbmNlcy5sb2NhbFN0b3JhZ2VFbmFibGVkID0gdHJ1ZQog
ICAgICAgICAgICAgICAgIHZhciB0ZXN0VXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9s
b2NhbFN0b3JhZ2UuaHRtbCIpCi0gICAgICAgICAgICAgICAgd2ViVmlldy5sb2FkKHRlc3RVcmwp
CisgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0ZXN0VXJsCiAgICAgICAgICAgICAgICAg
c3B5LndhaXQoKQogICAgICAgICAgICAgICAgIHNweS5jbGVhcigpCi0gICAgICAgICAgICAgICAg
d2ViVmlldy5sb2FkKHRlc3RVcmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0ZXN0
VXJsCiAgICAgICAgICAgICAgICAgc3B5LndhaXQoKQogICAgICAgICAgICAgICAgIGNvbXBhcmUo
d2ViVmlldy50aXRsZSwgIk5ldyBUaXRsZSIpCiAgICAgICAgICAgICB9CkBAIC0xOTQsMTggKzE5
NCwxOCBAQCBJdGVtIHsKICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC5wcmVm
ZXJlbmNlcy5qYXZhc2NyaXB0RW5hYmxlZCA9IHRydWUKICAgICAgICAgICAgICAgICB3ZWJWaWV3
Mi5leHBlcmltZW50YWwucHJlZmVyZW5jZXMuamF2YXNjcmlwdEVuYWJsZWQgPSB0cnVlCiAgICAg
ICAgICAgICAgICAgdmFyIHRlc3RVcmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2phdmFz
Y3JpcHQuaHRtbCIpCi0gICAgICAgICAgICAgICAgd2ViVmlldy5sb2FkKHRlc3RVcmwpCisgICAg
ICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0ZXN0VXJsCiAgICAgICAgICAgICAgICAgc3B5Lndh
aXQoKQotICAgICAgICAgICAgICAgIHdlYlZpZXcyLmxvYWQodGVzdFVybCkKKyAgICAgICAgICAg
ICAgICB3ZWJWaWV3Mi51cmwgPSB0ZXN0VXJsCiAgICAgICAgICAgICAgICAgb3RoZXJTcHkud2Fp
dCgpCiAgICAgICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiTmV3IFRpdGxlIikK
ICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcyLnRpdGxlLCAiTmV3IFRpdGxlIikKICAg
ICAgICAgICAgICAgICBzcHkuY2xlYXIoKQogICAgICAgICAgICAgICAgIG90aGVyU3B5LmNsZWFy
KCkKICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC5wcmVmZXJlbmNlcy5qYXZh
c2NyaXB0RW5hYmxlZCA9IGZhbHNlCi0gICAgICAgICAgICAgICAgd2ViVmlldy5sb2FkKHRlc3RV
cmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0ZXN0VXJsCiAgICAgICAgICAgICAg
ICAgc3B5LndhaXQoKQotICAgICAgICAgICAgICAgIHdlYlZpZXcyLmxvYWQodGVzdFVybCkKKyAg
ICAgICAgICAgICAgICB3ZWJWaWV3Mi51cmwgPSB0ZXN0VXJsCiAgICAgICAgICAgICAgICAgb3Ro
ZXJTcHkud2FpdCgpCiAgICAgICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3Jp
Z2luYWwgVGl0bGUiKQogICAgICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldzIudGl0bGUsICJO
ZXcgVGl0bGUiKQpAQCAtMjEzLDcgKzIxMyw3IEBAIEl0ZW0gewogCiAgICAgICAgICAgICBmdW5j
dGlvbiB0ZXN0X3N0YW5kYXJkRm9udEZhbWlseUNoYW5nZWQoKSB7CiAgICAgICAgICAgICAgICAg
dmFyIHVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZm9udC1wcmVmZXJlbmNlcy5odG1s
P3N0YW5kYXJkI2ZvbnQtZmFtaWx5IikKLSAgICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXJs
KQorICAgICAgICAgICAgICAgIHdlYlZpZXcudXJsID0gdXJsCiAgICAgICAgICAgICAgICAgdGl0
bGVTcHkud2FpdCgpCiAgICAgICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3Jp
Z2luYWwgVGl0bGUiKQogICAgICAgICAgICAgICAgIHRpdGxlU3B5LndhaXQoKQpAQCAtMjIyLDcg
KzIyMiw3IEBAIEl0ZW0gewogICAgICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnBy
ZWZlcmVuY2VzLnN0YW5kYXJkRm9udEZhbWlseSA9ICJmb29iYXIiCiAgICAgICAgICAgICAgICAg
c3RhbmRhcmRGb250RmFtaWx5U3B5LndhaXQoKQogICAgICAgICAgICAgICAgIGNvbXBhcmUoc3Rh
bmRhcmRGb250RmFtaWx5U3B5LmNvdW50LCAxKQotICAgICAgICAgICAgICAgIHdlYlZpZXcubG9h
ZCh1cmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB1cmwKICAgICAgICAgICAgICAg
ICB0aXRsZVNweS53YWl0KCkKICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUs
ICJPcmlnaW5hbCBUaXRsZSIpCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCkBAIC0y
MzEsNyArMjMxLDcgQEAgSXRlbSB7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RfZm9udFNp
emVDaGFuZ2VkKCkgewogICAgICAgICAgICAgICAgIHZhciB1cmwgPSBRdC5yZXNvbHZlZFVybCgi
Li4vY29tbW9uL2ZvbnQtcHJlZmVyZW5jZXMuaHRtbD9zdGFuZGFyZCNmb250LXNpemUiKQotICAg
ICAgICAgICAgICAgIHdlYlZpZXcubG9hZCh1cmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51
cmwgPSB1cmwKICAgICAgICAgICAgICAgICB0aXRsZVNweS53YWl0KCkKICAgICAgICAgICAgICAg
ICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJPcmlnaW5hbCBUaXRsZSIpCiAgICAgICAgICAgICAg
ICAgdGl0bGVTcHkud2FpdCgpCkBAIC0yNDAsNyArMjQwLDcgQEAgSXRlbSB7CiAgICAgICAgICAg
ICAgICAgd2ViVmlldy5leHBlcmltZW50YWwucHJlZmVyZW5jZXMuZGVmYXVsdEZvbnRTaXplID0g
ZGVmYXVsdEZvbnRTaXplICsgMQogICAgICAgICAgICAgICAgIGRlZmF1bHRGb250U2l6ZVNweS53
YWl0KCkKICAgICAgICAgICAgICAgICBjb21wYXJlKGRlZmF1bHRGb250U2l6ZVNweS5jb3VudCwg
MSkKLSAgICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXJsKQorICAgICAgICAgICAgICAgIHdl
YlZpZXcudXJsID0gdXJsCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCiAgICAgICAg
ICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3JpZ2luYWwgVGl0bGUiKQogICAgICAg
ICAgICAgICAgIHRpdGxlU3B5LndhaXQoKQpAQCAtMjQ5LDcgKzI0OSw3IEBAIEl0ZW0gewogCiAg
ICAgICAgICAgICBmdW5jdGlvbiB0ZXN0X2ZpeGVkRm9udFNpemVDaGFuZ2VkKCkgewogICAgICAg
ICAgICAgICAgIHZhciB1cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2ZvbnQtcHJlZmVy
ZW5jZXMuaHRtbD9maXhlZCNmb250LXNpemUiKQotICAgICAgICAgICAgICAgIHdlYlZpZXcubG9h
ZCh1cmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB1cmwKICAgICAgICAgICAgICAg
ICB0aXRsZVNweS53YWl0KCkKICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUs
ICJPcmlnaW5hbCBUaXRsZSIpCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCkBAIC0y
NTgsMTMgKzI1OCwxMyBAQCBJdGVtIHsKICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1l
bnRhbC5wcmVmZXJlbmNlcy5kZWZhdWx0Rml4ZWRGb250U2l6ZSA9IGRlZmF1bHRGaXhlZEZvbnRT
aXplICsgMQogICAgICAgICAgICAgICAgIGRlZmF1bHRGaXhlZEZvbnRTaXplU3B5LndhaXQoKQog
ICAgICAgICAgICAgICAgIGNvbXBhcmUoZGVmYXVsdEZpeGVkRm9udFNpemVTcHkuY291bnQsIDEp
Ci0gICAgICAgICAgICAgICAgd2ViVmlldy5sb2FkKHVybCkKKyAgICAgICAgICAgICAgICB3ZWJW
aWV3LnVybCA9IHVybAogICAgICAgICAgICAgICAgIHRpdGxlU3B5LndhaXQoKQogICAgICAgICAg
ICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIk9yaWdpbmFsIFRpdGxlIikKICAgICAgICAg
ICAgICAgICB0aXRsZVNweS53YWl0KCkKICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcu
dGl0bGUsIChkZWZhdWx0Rml4ZWRGb250U2l6ZSArIDEpLnRvU3RyaW5nKCkgKyAicHgiKQogCi0g
ICAgICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZm9u
dC1wcmVmZXJlbmNlcy5odG1sP3N0YW5kYXJkI2ZvbnQtc2l6ZSIpKQorICAgICAgICAgICAgICAg
IHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9mb250LXByZWZlcmVuY2Vz
Lmh0bWw/c3RhbmRhcmQjZm9udC1zaXplIikKICAgICAgICAgICAgICAgICB0aXRsZVNweS53YWl0
KCkKICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJPcmlnaW5hbCBUaXRs
ZSIpCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCkBAIC0yNzQsNyArMjc0LDcgQEAg
SXRlbSB7CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0X21pbmltdW1Gb250U2l6ZUNoYW5nZWQo
KSB7CiAgICAgICAgICAgICAgICAgdmVyaWZ5KGRlZmF1bHRNaW5pbXVtRm9udFNpemUgPCBkZWZh
dWx0Rm9udFNpemUpCiAgICAgICAgICAgICAgICAgdmFyIHVybCA9IFF0LnJlc29sdmVkVXJsKCIu
Li9jb21tb24vZm9udC1wcmVmZXJlbmNlcy5odG1sP21pbmltdW0jZm9udC1zaXplIikKLSAgICAg
ICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXJsKQorICAgICAgICAgICAgICAgIHdlYlZpZXcudXJs
ID0gdXJsCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCiAgICAgICAgICAgICAgICAg
Y29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3JpZ2luYWwgVGl0bGUiKQogICAgICAgICAgICAgICAg
IHRpdGxlU3B5LndhaXQoKQpAQCAtMjg2LDcgKzI4Niw3IEBAIEl0ZW0gewogICAgICAgICAgICAg
ICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnByZWZlcmVuY2VzLm1pbmltdW1Gb250U2l6ZSA9IGRl
ZmF1bHRGb250U2l6ZQogICAgICAgICAgICAgICAgIG1pbmltdW1Gb250U2l6ZVNweS53YWl0KCkK
ICAgICAgICAgICAgICAgICBjb21wYXJlKG1pbmltdW1Gb250U2l6ZVNweS5jb3VudCwgMSkKLSAg
ICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXJsKQorICAgICAgICAgICAgICAgIHdlYlZpZXcu
dXJsID0gdXJsCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCiAgICAgICAgICAgICAg
ICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3JpZ2luYWwgVGl0bGUiKQogICAgICAgICAgICAg
ICAgIHRpdGxlU3B5LndhaXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9wcm9wZXJ0aWVzLnFtbCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfcHJv
cGVydGllcy5xbWwKaW5kZXggNDc2MWNkMy4uMWFkYmRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9wcm9wZXJ0
aWVzLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X3Byb3BlcnRpZXMucW1sCkBAIC0xOCw3ICsxOCw3IEBAIFdlYlZpZXcg
ewogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RfdGl0bGUoKSB7CiAgICAgICAgICAgICBjb21wYXJl
KHNweS5jb3VudCwgMCkKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgi
Li4vY29tbW9uL3Rlc3QxLmh0bWwiKSkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gUXQucmVz
b2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1sIikKICAgICAgICAgICAgIHNweS53YWl0KCkK
ICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIlRlc3QgcGFnZSAxIikKICAgICAg
ICAgfQpAQCAtMjYsNyArMjYsNyBAQCBXZWJWaWV3IHsKICAgICAgICAgZnVuY3Rpb24gdGVzdF91
cmwoKSB7CiAgICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMSkKICAgICAgICAgICAgIHZh
ciB0ZXN0VXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1sIikKLSAgICAg
ICAgICAgIHdlYlZpZXcubG9hZCh0ZXN0VXJsKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0
ZXN0VXJsCiAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZp
ZXcudXJsLCB0ZXN0VXJsKQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3RpdGxlQ2hhbmdlZC5x
bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X3RpdGxlQ2hhbmdlZC5xbWwKaW5kZXggZjM2ZWE4NS4uMDI5MTg1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3
L3RzdF90aXRsZUNoYW5nZWQucW1sCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfdGl0bGVDaGFuZ2VkLnFtbApAQCAtMjUsNyAr
MjUsNyBAQCBXZWJWaWV3IHsKICAgICAgICAgZnVuY3Rpb24gdGVzdF90aXRsZUZpcnN0TG9hZCgp
IHsKICAgICAgICAgICAgIGNvbXBhcmUoc3B5VGl0bGUuY291bnQsIDApCiAgICAgICAgICAgICB2
YXIgdGVzdFVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDMuaHRtbCIpCi0gICAg
ICAgICAgICB3ZWJWaWV3LmxvYWQodGVzdFVybCkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0g
dGVzdFVybAogICAgICAgICAgICAgc3B5VGl0bGUud2FpdCgpCiAgICAgICAgICAgICBjb21wYXJl
KHdlYlZpZXcudGl0bGUsICJUZXN0IHBhZ2UgMyIpCiAgICAgICAgICAgICBzcHlUaXRsZS53YWl0
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXF1
aWNrd2Vidmlldy90c3RfcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FxdWlja3dlYnZpZXcvdHN0X3FxdWlja3dlYnZpZXcuY3BwCmluZGV4
IDEyODg2YjMuLjZlYmRiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcXF1aWNrd2Vidmlldy90c3RfcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xcXVpY2t3ZWJ2aWV3L3RzdF9xcXVp
Y2t3ZWJ2aWV3LmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgdHN0X1FRdWlja1dlYlZpZXc6
OnN0b3BFbmFibGVkQWZ0ZXJMb2FkU3RhcnRlZCgpCiAgICAgUUNPTVBBUkUod2ViVmlldygpLT5s
b2FkaW5nKCksIGZhbHNlKTsKIAogICAgIExvYWRTdGFydGVkQ2F0Y2hlciBjYXRjaGVyKHdlYlZp
ZXcoKSk7Ci0gICAgd2ViVmlldygpLT5sb2FkKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0
cmluZyhURVNUU19TT1VSQ0VfRElSICIvaHRtbC9iYXNpY19wYWdlLmh0bWwiKSkpOworICAgIHdl
YlZpZXcoKS0+c2V0VXJsKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19T
T1VSQ0VfRElSICIvaHRtbC9iYXNpY19wYWdlLmh0bWwiKSkpOwogICAgIHdhaXRGb3JTaWduYWwo
JmNhdGNoZXIsIFNJR05BTChmaW5pc2hlZCgpKSk7CiAKICAgICBRQ09NUEFSRSh3ZWJWaWV3KCkt
PmxvYWRpbmcoKSwgdHJ1ZSk7CkBAIC0xNjksOCArMTY5LDggQEAgdm9pZCB0c3RfUVF1aWNrV2Vi
Vmlldzo6YmFzZVVybCgpCiAKIHZvaWQgdHN0X1FRdWlja1dlYlZpZXc6OmxvYWRFbXB0eVVybCgp
CiB7Ci0gICAgd2ViVmlldygpLT5sb2FkKFFVcmwoKSk7Ci0gICAgd2ViVmlldygpLT5sb2FkKFFV
cmwoUUxhdGluMVN0cmluZygiIikpKTsKKyAgICB3ZWJWaWV3KCktPnNldFVybChRVXJsKCkpOwor
ICAgIHdlYlZpZXcoKS0+c2V0VXJsKFFVcmwoUUxhdGluMVN0cmluZygiIikpKTsKIH0KIAogdm9p
ZCB0c3RfUVF1aWNrV2ViVmlldzo6bG9hZEVtcHR5UGFnZVZpZXdWaXNpYmxlKCkKQEAgLTE4Myw3
ICsxODMsNyBAQCB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3Ojpsb2FkRW1wdHlQYWdlVmlld0hpZGRl
bigpCiB7CiAgICAgUVNpZ25hbFNweSBsb2FkU3RhcnRlZFNweSh3ZWJWaWV3KCksIFNJR05BTChs
b2FkU3RhcnRlZCgpKSk7CiAKLSAgICB3ZWJWaWV3KCktPmxvYWQoUVVybDo6ZnJvbUxvY2FsRmls
ZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIp
KSk7CisgICAgd2ViVmlldygpLT5zZXRVcmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3Ry
aW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIpKSk7CiAgICAgUVZF
UklGWSh3YWl0Rm9yU2lnbmFsKHdlYlZpZXcoKSwgU0lHTkFMKGxvYWRTdWNjZWVkZWQoKSkpKTsK
IAogICAgIFFDT01QQVJFKGxvYWRTdGFydGVkU3B5LnNpemUoKSwgMSk7CkBAIC0xOTMsNyArMTkz
LDcgQEAgdm9pZCB0c3RfUVF1aWNrV2ViVmlldzo6bG9hZE5vbmV4aXN0ZW50RmlsZVVybCgpCiB7
CiAgICAgUVNpZ25hbFNweSBsb2FkRmFpbGVkU3B5KHdlYlZpZXcoKSwgU0lHTkFMKGxvYWRTdGFy
dGVkKCkpKTsKIAotICAgIHdlYlZpZXcoKS0+bG9hZChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRp
bjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvZmlsZV90aGF0X2RvZXNfbm90X2V4aXN0
Lmh0bWwiKSkpOworICAgIHdlYlZpZXcoKS0+c2V0VXJsKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxh
dGluMVN0cmluZyhURVNUU19TT1VSQ0VfRElSICIvaHRtbC9maWxlX3RoYXRfZG9lc19ub3RfZXhp
c3QuaHRtbCIpKSk7CiAgICAgUVZFUklGWSh3YWl0Rm9yU2lnbmFsKHdlYlZpZXcoKSwgU0lHTkFM
KGxvYWRGYWlsZWQoUVF1aWNrV2ViVmlldzo6RXJyb3JEb21haW4sIGludCwgUVVybCwgUVN0cmlu
ZykpKSk7CiAKICAgICBRQ09NUEFSRShsb2FkRmFpbGVkU3B5LnNpemUoKSwgMSk7CkBAIC0yMDEs
MTIgKzIwMSwxMiBAQCB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3Ojpsb2FkTm9uZXhpc3RlbnRGaWxl
VXJsKCkKIAogdm9pZCB0c3RfUVF1aWNrV2ViVmlldzo6YmFja0FuZEZvcndhcmQoKQogewotICAg
IHdlYlZpZXcoKS0+bG9hZChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNf
U09VUkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZS5odG1sIikpKTsKKyAgICB3ZWJWaWV3KCktPnNl
dFVybChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAi
L2h0bWwvYmFzaWNfcGFnZS5odG1sIikpKTsKICAgICBRVkVSSUZZKHdhaXRGb3JTaWduYWwod2Vi
VmlldygpLCBTSUdOQUwobG9hZFN1Y2NlZWRlZCgpKSkpOwogCiAgICAgUUNPTVBBUkUod2ViVmll
dygpLT51cmwoKS5wYXRoKCksIFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwv
YmFzaWNfcGFnZS5odG1sIikpOwogCi0gICAgd2ViVmlldygpLT5sb2FkKFFVcmw6OmZyb21Mb2Nh
bEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19TT1VSQ0VfRElSICIvaHRtbC9iYXNpY19wYWdlMi5o
dG1sIikpKTsKKyAgICB3ZWJWaWV3KCktPnNldFVybChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRp
bjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZTIuaHRtbCIpKSk7CiAg
ICAgUVZFUklGWSh3YWl0Rm9yU2lnbmFsKHdlYlZpZXcoKSwgU0lHTkFMKGxvYWRTdWNjZWVkZWQo
KSkpKTsKIAogICAgIFFDT01QQVJFKHdlYlZpZXcoKS0+dXJsKCkucGF0aCgpLCBRTGF0aW4xU3Ry
aW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UyLmh0bWwiKSk7CkBAIC0yMjQs
NyArMjI0LDcgQEAgdm9pZCB0c3RfUVF1aWNrV2ViVmlldzo6YmFja0FuZEZvcndhcmQoKQogCiB2
b2lkIHRzdF9RUXVpY2tXZWJWaWV3OjpyZWxvYWQoKQogewotICAgIHdlYlZpZXcoKS0+bG9hZChR
VXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwv
YmFzaWNfcGFnZS5odG1sIikpKTsKKyAgICB3ZWJWaWV3KCktPnNldFVybChRVXJsOjpmcm9tTG9j
YWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZS5o
dG1sIikpKTsKICAgICBRVkVSSUZZKHdhaXRGb3JTaWduYWwod2ViVmlldygpLCBTSUdOQUwobG9h
ZFN1Y2NlZWRlZCgpKSkpOwogCiAgICAgUUNPTVBBUkUod2ViVmlldygpLT51cmwoKS5wYXRoKCks
IFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZS5odG1sIikp
OwpAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgdHN0X1FRdWlja1dlYlZpZXc6OnJlbG9hZCgpCiAK
IHZvaWQgdHN0X1FRdWlja1dlYlZpZXc6OnN0b3AoKQogewotICAgIHdlYlZpZXcoKS0+bG9hZChR
VXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwv
YmFzaWNfcGFnZS5odG1sIikpKTsKKyAgICB3ZWJWaWV3KCktPnNldFVybChRVXJsOjpmcm9tTG9j
YWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZS5o
dG1sIikpKTsKICAgICBRVkVSSUZZKHdhaXRGb3JTaWduYWwod2ViVmlldygpLCBTSUdOQUwobG9h
ZFN1Y2NlZWRlZCgpKSkpOwogCiAgICAgUUNPTVBBUkUod2ViVmlldygpLT51cmwoKS5wYXRoKCks
IFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZS5odG1sIikp
OwpAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgdHN0X1FRdWlja1dlYlZpZXc6OmxvYWRQcm9ncmVz
cygpCiB7CiAgICAgUUNPTVBBUkUod2ViVmlldygpLT5sb2FkUHJvZ3Jlc3MoKSwgMCk7CiAKLSAg
ICB3ZWJWaWV3KCktPmxvYWQoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RT
X1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIpKSk7CisgICAgd2ViVmlldygpLT5z
ZXRVcmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIg
Ii9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIpKSk7CiAgICAgUVNpZ25hbFNweSBsb2FkUHJvZ3Jlc3ND
aGFuZ2VkU3B5KHdlYlZpZXcoKSwgU0lHTkFMKGxvYWRQcm9ncmVzc0NoYW5nZWQoaW50KSkpOwog
ICAgIFFWRVJJRlkod2FpdEZvclNpZ25hbCh3ZWJWaWV3KCksIFNJR05BTChsb2FkU3VjY2VlZGVk
KCkpKSk7CiAKQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3OjpzaG93
V2ViVmlldygpCiB7CiAgICAgd2ViVmlldygpLT5zZXRTaXplKFFTaXplRigzMDAsIDQwMCkpOwog
Ci0gICAgd2ViVmlldygpLT5sb2FkKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhU
RVNUU19TT1VSQ0VfRElSICIvaHRtbC9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCIpKSk7
CisgICAgd2ViVmlldygpLT5zZXRVcmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5n
KFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2RpcmVjdC1pbWFnZS1jb21wb3NpdGluZy5odG1sIikp
KTsKICAgICBRVkVSSUZZKHdhaXRGb3JTaWduYWwod2ViVmlldygpLCBTSUdOQUwobG9hZFN1Y2Nl
ZWRlZCgpKSkpOwogCiAgICAgbV93aW5kb3ctPnNob3coKTsKQEAgLTMwNywxMyArMzA3LDEzIEBA
IHZvaWQgdHN0X1FRdWlja1dlYlZpZXc6Om11bHRpcGxlV2ViVmlld1dpbmRvd3MoKQogICAgIFFT
Y29wZWRQb2ludGVyPFRlc3RXaW5kb3c+IHdpbmRvdzIobmV3IFRlc3RXaW5kb3cod2ViVmlldzIp
KTsKIAogICAgIHdlYlZpZXcxLT5zZXRTaXplKFFTaXplRigzMDAsIDQwMCkpOwotICAgIHdlYlZp
ZXcxLT5sb2FkKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19TT1VSQ0Vf
RElSICIvaHRtbC9zY3JvbGwuaHRtbCIpKSk7CisgICAgd2ViVmlldzEtPnNldFVybChRVXJsOjpm
cm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvc2Nyb2xs
Lmh0bWwiKSkpOwogICAgIFFWRVJJRlkod2FpdEZvclNpZ25hbCh3ZWJWaWV3MSwgU0lHTkFMKGxv
YWRTdWNjZWVkZWQoKSkpKTsKICAgICB3aW5kb3cxLT5zaG93KCk7CiAgICAgd2ViVmlldzEtPnNl
dFZpc2libGUodHJ1ZSk7CiAKICAgICB3ZWJWaWV3Mi0+c2V0U2l6ZShRU2l6ZUYoMzAwLCA0MDAp
KTsKLSAgICB3ZWJWaWV3Mi0+bG9hZChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmco
VEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZS5odG1sIikpKTsKKyAgICB3ZWJWaWV3
Mi0+c2V0VXJsKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19TT1VSQ0Vf
RElSICIvaHRtbC9iYXNpY19wYWdlLmh0bWwiKSkpOwogICAgIFFWRVJJRlkod2FpdEZvclNpZ25h
bCh3ZWJWaWV3MiwgU0lHTkFMKGxvYWRTdWNjZWVkZWQoKSkpKTsKICAgICB3aW5kb3cyLT5zaG93
KCk7CiAgICAgd2ViVmlldzItPnNldFZpc2libGUodHJ1ZSk7CkBAIC0zMzEsMTIgKzMzMSwxMiBA
QCB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3OjptdWx0aXBsZVdlYlZpZXdzKCkKICAgICB3ZWJWaWV3
Mi0+c2V0UGFyZW50SXRlbShtX3dpbmRvdy0+cm9vdEl0ZW0oKSk7CiAKICAgICB3ZWJWaWV3MS0+
c2V0U2l6ZShRU2l6ZUYoMzAwLCA0MDApKTsKLSAgICB3ZWJWaWV3MS0+bG9hZChRVXJsOjpmcm9t
TG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvc2Nyb2xsLmh0
bWwiKSkpOworICAgIHdlYlZpZXcxLT5zZXRVcmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4x
U3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL3Njcm9sbC5odG1sIikpKTsKICAgICBRVkVS
SUZZKHdhaXRGb3JTaWduYWwod2ViVmlldzEuZGF0YSgpLCBTSUdOQUwobG9hZFN1Y2NlZWRlZCgp
KSkpOwogICAgIHdlYlZpZXcxLT5zZXRWaXNpYmxlKHRydWUpOwogCiAgICAgd2ViVmlldzItPnNl
dFNpemUoUVNpemVGKDMwMCwgNDAwKSk7Ci0gICAgd2ViVmlldzItPmxvYWQoUVVybDo6ZnJvbUxv
Y2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2Uu
aHRtbCIpKSk7CisgICAgd2ViVmlldzItPnNldFVybChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRp
bjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZS5odG1sIikpKTsKICAg
ICBRVkVSSUZZKHdhaXRGb3JTaWduYWwod2ViVmlldzIuZGF0YSgpLCBTSUdOQUwobG9hZFN1Y2Nl
ZWRlZCgpKSkpOwogICAgIHdlYlZpZXcyLT5zZXRWaXNpYmxlKHRydWUpOwogICAgIFFUZXN0Ojpx
V2FpdCgyMDApOwpAQCAtMzQ2LDcgKzM0Niw3IEBAIHZvaWQgdHN0X1FRdWlja1dlYlZpZXc6OnNj
cm9sbFJlcXVlc3QoKQogewogICAgIHdlYlZpZXcoKS0+c2V0U2l6ZShRU2l6ZUYoMzAwLCA0MDAp
KTsKIAotICAgIHdlYlZpZXcoKS0+bG9hZChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJp
bmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvc2Nyb2xsLmh0bWwiKSkpOworICAgIHdlYlZpZXco
KS0+c2V0VXJsKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19TT1VSQ0Vf
RElSICIvaHRtbC9zY3JvbGwuaHRtbCIpKSk7CiAgICAgUVZFUklGWSh3YWl0Rm9yU2lnbmFsKHdl
YlZpZXcoKSwgU0lHTkFMKGxvYWRTdWNjZWVkZWQoKSkpKTsKIAogICAgIC8vIENPTVBBUkUgd2l0
aCB0aGUgcG9zaXRpb24gcmVxdWVzdGVkIGluIHRoZSBodG1sCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDcwYTk2NC4uYTk0OGZkMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEyLTAyLTI3ICBNYWhlc2ggS3Vsa2FybmkgIDxtYWhlc2gua3Vsa2FybmlAbm9raWEu
Y29tPgorCisgICAgICAgIFtRdF0gQWxsb3cgcmVhZC93cml0ZSB0byB0aGUgV2ViVmlldy51cmwg
cHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc3NTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IE1pbmlCcm93c2VyIHRvIHVzZSBXZWJWaWV3LnVybCBwcm9wZXJ0eSBhbmQgcmVtb3ZlIFdl
YlZpZXcubG9hZCB1c2FnZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2Vy
V2luZG93LnFtbDoKKwogMjAxMi0wMi0yNCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBbUXRdIEFsbG93IHRvIHVzZSBXZWJDb3JlIGltYWdlZGVjb2RlcnMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbCBi
L1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbAppbmRleCAzMjY4ZDAz
Li5hZTFmOWYyIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3Nlcldp
bmRvdy5xbWwKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1s
CkBAIC0zOSw3ICszOSw3IEBAIFJlY3RhbmdsZSB7CiAgICAgc2lnbmFsIG5ld1dpbmRvdyhzdHJp
bmcgdXJsKQogCiAgICAgZnVuY3Rpb24gbG9hZChhZGRyZXNzKSB7Ci0gICAgICAgIHdlYlZpZXcu
bG9hZChhZGRyZXNzKQorICAgICAgICB3ZWJWaWV3LnVybCA9IGFkZHJlc3MKICAgICB9CiAKICAg
ICBmdW5jdGlvbiByZWxvYWQoKSB7CkBAIC0yODMsNyArMjgzLDcgQEAgUmVjdGFuZ2xlIHsKIAog
ICAgICAgICAgICAgICAgIEtleXMub25SZXR1cm5QcmVzc2VkOnsKICAgICAgICAgICAgICAgICAg
ICAgY29uc29sZS5sb2coImdvaW5nIHRvOiAiLCBhZGRyZXNzTGluZS50ZXh0KQotICAgICAgICAg
ICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXRpbHMudXJsRnJvbVVzZXJJbnB1dChhZGRyZXNzTGlu
ZS50ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB1dGlscy51cmxGcm9t
VXNlcklucHV0KGFkZHJlc3NMaW5lLnRleHQpCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129152</attachid>
            <date>2012-02-27 17:55:30 -0800</date>
            <delta_ts>2012-04-20 09:46:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>77554.patch</filename>
            <type>text/plain</type>
            <size>43829</size>
            <attacher name="Mahesh Kulkarni">maheshk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyMTkwOGVkLi41MjU4OGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTItMDItMjcgIE1haGVzaCBLdWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBub2tpYS5j
b20+CisKKyAgICAgICAgW1F0XSBBbGxvdyByZWFkL3dyaXRlIHRvIHRoZSBXZWJWaWV3LnVybCBw
cm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzc1NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
aGFuZ2UgUU1MIEFQSSBXZWJWaWV3LnVybCB0byByZWFkL3dyaXRlIHRvIHJlZmxlY3QgZWl0aGVy
IHRoZSB1cmwgcmVxdWVzdGVkIGJ5IHRoZSB1c2VyLgorICAgICAgICBBbHNvIHJlbW92ZWQgV2Vi
Vmlldy5sb2FkKHVybCkuIERlZmVycyBzZXR0aW5nIHVybCAobG9hZGluZyBwYWdlKSB1bnRpbCBv
bkNvbXBvbmVudENvbXBsZXRlIGlzIHRyaWdnZXJlZC4gCisgICAgICAgIEZpeGVkIGMrKyBhbmQg
cW1sIHRlc3RzIHRvIHJlZmxlY3QgdGhlIG5ldyBBUEkuCisKKyAgICAgICAgKiBUYXJnZXQucHJp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAo
UVF1aWNrV2ViVmlld1ByaXZhdGU6Om9uQ29tcG9uZW50Q29tcGxldGUpOgorICAgICAgICAoUVF1
aWNrV2ViVmlldzo6c2V0VXJsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmg6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9wdWJsaWNhcGkvdHN0X3B1YmxpY2FwaS5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0
X2l0ZW1TZWxlY3Rvci5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X2xpbmtIb3ZlcmVkLnFtbDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbWVzc2FnaW5n
LnFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BC
ZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5xbWw6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5xbWw6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9k
b3dubG9hZC5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9mYXZJY29uTG9hZC5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9nZW9wZXJtaXNzaW9uLnFtbDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2phdmFTY3JpcHREaWFs
b2dzLnFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X2xvYWRGYWlsLnFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRQcm9ncmVzcy5xbWw6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3NTaWduYWwucW1s
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
bG9hZFVybC5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9uYXZpZ2F0aW9uSGlzdG9yeS5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfcHJlZmVyZW5jZXMucW1s
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
cHJvcGVydGllcy5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0
cy9XZWJWaWV3L3RzdF90aXRsZUNoYW5nZWQucW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcXF1aWNrd2Vidmlldy90c3RfcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgICh0
c3RfUVF1aWNrV2ViVmlldzo6bG9hZEVtcHR5UGFnZVZpZXdIaWRkZW4pOgorICAgICAgICAodHN0
X1FRdWlja1dlYlZpZXc6OmxvYWROb25leGlzdGVudEZpbGVVcmwpOgorCiAyMDEyLTAyLTI3ICBF
bnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0MjogaW1w
bGVtZW50IHBsYXRmb3JtIHN0cmF0ZWd5IHRvIGFjY2VzcyBQYXN0ZWJvYXJkIGluIHRoZSBVSSBw
cm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlldy5jcHAKaW5kZXggMmVlZWZhOC4uOWY0NDlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC0xNTMsNiArMTUzLDE0IEBA
IHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmxvYWREaWRTdWNjZWVkKCkKICAgICBlbWl0IHEt
PmxvYWRpbmdDaGFuZ2VkKCZsb2FkUmVxdWVzdCk7CiB9CiAKK3ZvaWQgUVF1aWNrV2ViVmlld1By
aXZhdGU6Om9uQ29tcG9uZW50Q29tcGxldGUoKQoreworICAgIGlmIChtX2RlZmZlcmVkVXJsVG9M
b2FkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcV9wdHItPnNldFVybChtX2Rl
ZmZlcmVkVXJsVG9Mb2FkKTsKK30KKwogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0TmVl
ZHNEaXNwbGF5KCkKIHsKICAgICBRX1EoUVF1aWNrV2ViVmlldyk7CkBAIC0xMTE4LDE1ICsxMTI2
LDYgQEAgUVF1aWNrV2ViUGFnZSogUVF1aWNrV2ViVmlldzo6cGFnZSgpCiAgICAgcmV0dXJuIGQt
PnBhZ2VWaWV3LmRhdGEoKTsKIH0KIAotdm9pZCBRUXVpY2tXZWJWaWV3Ojpsb2FkKGNvbnN0IFFV
cmwmIHVybCkKLXsKLSAgICBpZiAodXJsLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgUV9EKFFRdWlja1dlYlZpZXcpOwotICAgIGQtPndlYlBhZ2VQcm94eS0+bG9hZFVSTCh1cmwu
dG9TdHJpbmcoKSk7Ci19Ci0KIHZvaWQgUVF1aWNrV2ViVmlldzo6Z29CYWNrKCkKIHsKICAgICBR
X0QoUVF1aWNrV2ViVmlldyk7CkBAIC0xMTYxLDYgKzExNjAsMjEgQEAgUVVybCBRUXVpY2tXZWJW
aWV3Ojp1cmwoKSBjb25zdAogICAgIHJldHVybiBRVXJsKFFTdHJpbmcobWFpbkZyYW1lLT51cmwo
KSkpOwogfQogCit2b2lkIFFRdWlja1dlYlZpZXc6OnNldFVybChjb25zdCBRVXJsJiB1cmwpCit7
CisgICAgUV9EKFFRdWlja1dlYlZpZXcpOworCisgICAgaWYgKHVybC5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghaXNDb21wb25lbnRDb21wbGV0ZSgpKSB7CisgICAgICAg
IGQtPm1fZGVmZmVyZWRVcmxUb0xvYWQgPSB1cmw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBkLT53ZWJQYWdlUHJveHktPmxvYWRVUkwodXJsLnRvU3RyaW5nKCkpOworfQorCiBRVXJs
IFFRdWlja1dlYlZpZXc6Omljb24oKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJW
aWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXdfcC5oCmluZGV4IGRmYjhiNTguLmQzZDBkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtNjgsNyArNjgsNyBAQCBRVF9F
TkRfTkFNRVNQQUNFCiBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3IDogcHVibGlj
IFFRdWlja0l0ZW0gewogICAgIFFfT0JKRUNUCiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIHRpdGxl
IFJFQUQgdGl0bGUgTk9USUZZIHRpdGxlQ2hhbmdlZCkKLSAgICBRX1BST1BFUlRZKFFVcmwgdXJs
IFJFQUQgdXJsIE5PVElGWSB1cmxDaGFuZ2VkKQorICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVB
RCB1cmwgV1JJVEUgc2V0VXJsIE5PVElGWSB1cmxDaGFuZ2VkKQogICAgIFFfUFJPUEVSVFkoUVVy
bCBpY29uIFJFQUQgaWNvbiBOT1RJRlkgaWNvbkNoYW5nZWQgRklOQUwpCiAgICAgUV9QUk9QRVJU
WShib29sIGxvYWRpbmcgUkVBRCBsb2FkaW5nIE5PVElGWSBsb2FkaW5nQ2hhbmdlZCBGSU5BTCkK
ICAgICBRX1BST1BFUlRZKGludCBsb2FkUHJvZ3Jlc3MgUkVBRCBsb2FkUHJvZ3Jlc3MgTk9USUZZ
IGxvYWRQcm9ncmVzc0NoYW5nZWQpCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgflFRdWlja1dlYlZpZXcoKTsKIAogICAgIFFVcmwgdXJsKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRVcmwoY29uc3QgUVVybCYpOwogICAgIFFVcmwgaWNvbigpIGNvbnN0OwogICAgIFFTdHJp
bmcgdGl0bGUoKSBjb25zdDsKICAgICBpbnQgbG9hZFByb2dyZXNzKCkgY29uc3Q7CkBAIC0xMzcs
NyArMTM4LDYgQEAgcHVibGljOgogICAgIFFQb2ludEYgcGFnZUl0ZW1Qb3MoKTsKIAogcHVibGlj
IFFfU0xPVFM6Ci0gICAgdm9pZCBsb2FkKGNvbnN0IFFVcmwmKTsKICAgICB2b2lkIGxvYWRIdG1s
KGNvbnN0IFFTdHJpbmcmIGh0bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwgPSBRVXJsKCkpOwogCiAg
ICAgdm9pZCBnb0JhY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCBiOWZiYmFkLi5kNTQwYTRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBA
IC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHNT
aXplKGNvbnN0IFFTaXplRiYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGxvYWREaWRTdWNjZWVk
KCk7Ci0gICAgdmlydHVhbCB2b2lkIG9uQ29tcG9uZW50Q29tcGxldGUoKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgb25Db21wb25lbnRDb21wbGV0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkRGlk
Q29tbWl0KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEZpcnN0Tm9uRW1wdHlMYXlv
dXQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNv
bnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKSB7IH0KQEAgLTE2MSw2ICsxNjEs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX3JlbmRlclRvT2Zmc2NyZWVuQnVmZmVyOwogICAg
IGJvb2wgbV9sb2FkU3RhcnRlZFNpZ25hbFNlbnQ7CiAgICAgUVVybCBtX2ljb25VUkw7CisgICAg
UVVybCBtX2RlZmZlcmVkVXJsVG9Mb2FkOwogfTsKIAogY2xhc3MgUVF1aWNrV2ViVmlld0xlZ2Fj
eVByaXZhdGUgOiBwdWJsaWMgUVF1aWNrV2ViVmlld1ByaXZhdGUgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9wdWJsaWNhcGkvdHN0X3B1YmxpY2Fw
aS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3B1YmxpY2FwaS90
c3RfcHVibGljYXBpLmNwcAppbmRleCA4N2U2YmY2NC4uNGM0ZDA0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9wdWJsaWNhcGkvdHN0X3B1YmxpY2Fw
aS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9wdWJsaWNh
cGkvdHN0X3B1YmxpY2FwaS5jcHAKQEAgLTcwLDcgKzcwLDYgQEAgc3RhdGljIFFTdHJpbmdMaXN0
IGV4cGVjdGVkQVBJID0gUVN0cmluZ0xpc3QoKQogICAgIDw8ICJRUXVpY2tXZWJWaWV3LmxpbmtI
b3ZlcmVkKFFVcmwsUVN0cmluZykgLS0+IHZvaWQiCiAgICAgPDwgIlFRdWlja1dlYlZpZXcubmF2
aWdhdGlvblN0YXRlQ2hhbmdlZCgpIC0tPiB2b2lkIgogICAgIDw8ICJRUXVpY2tXZWJWaWV3Lm5h
dmlnYXRpb25SZXF1ZXN0ZWQoUVdlYk5hdmlnYXRpb25SZXF1ZXN0KikgLS0+IHZvaWQiCi0gICAg
PDwgIlFRdWlja1dlYlZpZXcubG9hZChRVXJsKSAtLT4gdm9pZCIKICAgICA8PCAiUVF1aWNrV2Vi
Vmlldy5sb2FkSHRtbChRU3RyaW5nLFFVcmwpIC0tPiB2b2lkIgogICAgIDw8ICJRUXVpY2tXZWJW
aWV3LmxvYWRIdG1sKFFTdHJpbmcpIC0tPiB2b2lkIgogICAgIDw8ICJRUXVpY2tXZWJWaWV3Lmdv
QmFjaygpIC0tPiB2b2lkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X2l0ZW1TZWxlY3Rvci5xbWwg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BC
ZWhhdmlvci90c3RfaXRlbVNlbGVjdG9yLnFtbAppbmRleCBkNjlkZmQ3Li4xODc2M2JmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rl
c2t0b3BCZWhhdmlvci90c3RfaXRlbVNlbGVjdG9yLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfaXRlbVNl
bGVjdG9yLnFtbApAQCAtNTMsNyArNTMsNyBAQCBUZXN0V2ViVmlldyB7CiAgICAgICAgICAgICB3
ZWJWaWV3LmZpbmFsU2VsZWN0aW9uID0gLTEKICAgICAgICAgICAgIHdlYlZpZXcudXNlQWNjZXB0
RGlyZWN0bHkgPSBmYWxzZQogICAgICAgICAgICAgd2ViVmlldy5zZWxlY3RvckxvYWRlZCA9IGZh
bHNlCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9z
ZWxlY3QuaHRtbCIpKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgi
Li4vY29tbW9uL3NlbGVjdC5odG1sIikKICAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRG
b3JMb2FkU3VjY2VlZGVkKCkpCiAgICAgICAgICAgICB0aXRsZVNweS5jbGVhcigpCiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9saW5rSG92ZXJlZC5xbWwgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbGlu
a0hvdmVyZWQucW1sCmluZGV4IGI1MjczM2QuLmJlYmY1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3Rz
dF9saW5rSG92ZXJlZC5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X2xpbmtIb3ZlcmVkLnFtbApAQCAtNDMs
NyArNDMsNyBAQCBUZXN0V2ViVmlldyB7CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdF9saW5rSG92
ZXJlZCgpIHsKICAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAwKQotICAgICAgICAgICAg
d2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDIuaHRtbCIpKQorICAg
ICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rlc3QyLmh0
bWwiKQogICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKSkK
ICAgICAgICAgICAgIG1vdXNlTW92ZSh3ZWJWaWV3LCAxMDAsIDEwMCkKICAgICAgICAgICAgIHNw
eS53YWl0KCkKQEAgLTU5LDcgKzU5LDcgQEAgVGVzdFdlYlZpZXcgewogCiAgICAgICAgIGZ1bmN0
aW9uIHRlc3RfbGlua0hvdmVyZWREb2VzbnRFbWl0UmVwZWF0ZWQoKSB7CiAgICAgICAgICAgICBj
b21wYXJlKHNweS5jb3VudCwgMCkKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZl
ZFVybCgiLi4vY29tbW9uL3Rlc3QyLmh0bWwiKSkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0g
UXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0Mi5odG1sIikKICAgICAgICAgICAgIHZlcmlm
eSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCiAKICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwOyBpICs9IDEwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X21lc3NhZ2lu
Zy5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rl
c2t0b3BCZWhhdmlvci90c3RfbWVzc2FnaW5nLnFtbAppbmRleCBiZDYxNDNlLi4xYjNhYjYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L0Rlc2t0b3BCZWhhdmlvci90c3RfbWVzc2FnaW5nLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbWVzc2Fn
aW5nLnFtbApAQCAtNTYsNyArNTYsNyBAQCBJdGVtIHsKICAgICAgICAgfQogCiAgICAgICAgIGZ1
bmN0aW9uIHRlc3RfYmFzaWMoKSB7Ci0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQodGVzdFVybCkK
KyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gdGVzdFVybAogICAgICAgICAgICAgdmVyaWZ5KHdl
YlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKSkKICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJp
bWVudGFsLnBvc3RNZXNzYWdlKCJIRUxMTyIpCiAgICAgICAgICAgICBtZXNzYWdlU3B5LndhaXQo
KQpAQCAtNjUsOCArNjUsOCBAQCBJdGVtIHsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9u
IHRlc3RfdHdvV2ViVmlld3MoKSB7Ci0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQodGVzdFVybCkK
LSAgICAgICAgICAgIG90aGVyV2ViVmlldy5sb2FkKHRlc3RVcmwpCisgICAgICAgICAgICB3ZWJW
aWV3LnVybCA9IHRlc3RVcmwKKyAgICAgICAgICAgIG90aGVyV2ViVmlldy51cmwgPSB0ZXN0VXJs
CiAgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQogICAg
ICAgICAgICAgdmVyaWZ5KG90aGVyV2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQogICAg
ICAgICAgICAgd2ViVmlldy5leHBlcmltZW50YWwucG9zdE1lc3NhZ2UoIkZJUlNUIikKQEAgLTc4
LDcgKzc4LDcgQEAgSXRlbSB7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiB0ZXN0X2Rp
c2FibGVkKCkgewotICAgICAgICAgICAgZGlzYWJsZWRXZWJWaWV3LmxvYWQodGVzdFVybCkKKyAg
ICAgICAgICAgIGRpc2FibGVkV2ViVmlldy51cmwgPSB0ZXN0VXJsCiAgICAgICAgICAgICB2ZXJp
ZnkoIWRpc2FibGVkV2ViVmlldy5leHBlcmltZW50YWwucHJlZmVyZW5jZXMubmF2aWdhdG9yUXRP
YmplY3RFbmFibGVkKQogICAgICAgICAgICAgdmVyaWZ5KGRpc2FibGVkV2ViVmlldy53YWl0Rm9y
TG9hZFN1Y2NlZWRlZCgpKQogICAgICAgICAgICAgZGlzYWJsZWRXZWJWaWV3LmV4cGVyaW1lbnRh
bC5wb3N0TWVzc2FnZSgiSEkiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1
ZXN0ZWQucW1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0
cy9EZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sCmluZGV4IDAxOGJm
YTYuLjljYzg1ZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5x
bWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9E
ZXNrdG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sCkBAIC0yMyw3ICsyMyw3
IEBAIEl0ZW0gewogICAgICAgICAgICAgaWYgKHNob3VsZERvd25sb2FkKQogICAgICAgICAgICAg
ICAgIHJlcXVlc3QuYWN0aW9uID0gV2ViVmlld0V4cGVyaW1lbnRhbC5Eb3dubG9hZFJlcXVlc3QK
ICAgICAgICAgICAgIGVsc2UgaWYgKHJlcXVlc3QuYnV0dG9uID09IFF0Lk1pZGRsZUJ1dHRvbiAm
JiByZXF1ZXN0Lm1vZGlmaWVycyAmIFF0LkNvbnRyb2xNb2RpZmllcikgewotICAgICAgICAgICAg
ICAgIG90aGVyV2ViVmlldy5sb2FkKHJlcXVlc3QudXJsKQorICAgICAgICAgICAgICAgIG90aGVy
V2ViVmlldy51cmwgPSByZXF1ZXN0LnVybAogICAgICAgICAgICAgICAgIHJlcXVlc3QuYWN0aW9u
ID0gV2ViVmlldy5JZ25vcmVSZXF1ZXN0CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBvcmln
aW5hdGluZ1VybCA9IHJlcXVlc3Qub3JpZ2luYXRpbmdVcmwKQEAgLTgyLDcgKzgyLDcgQEAgSXRl
bSB7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiB0ZXN0X3VzZVBvbGljeSgpIHsKLSAg
ICAgICAgICAgIHdlYlZpZXcubG9hZChiZWdpblVybCkKKyAgICAgICAgICAgIHdlYlZpZXcudXJs
ID0gYmVnaW5VcmwKICAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2Vl
ZGVkKCkpCiAgICAgICAgICAgICBtb3VzZUNsaWNrKHdlYlZpZXcsIDEwMCwgMTAwLCBRdC5MZWZ0
QnV0dG9uKQogICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQo
KSkKQEAgLTkxLDcgKzkxLDcgQEAgSXRlbSB7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlv
biB0ZXN0X2lnbm9yZVBvbGljeSgpIHsKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChiZWdpblVy
bCkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gYmVnaW5VcmwKICAgICAgICAgICAgIHZlcmlm
eSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCiAgICAgICAgICAgICBtb3VzZUNsaWNr
KHdlYlZpZXcsIDEwMCwgMTAwLCBRdC5NaWRkbGVCdXR0b24sIFF0LkNvbnRyb2xNb2RpZmllcikK
ICAgICAgICAgICAgIHZlcmlmeShvdGhlcldlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKSkK
QEAgLTEwMiw3ICsxMDIsNyBAQCBJdGVtIHsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9u
IHRlc3RfZG93bmxvYWRQb2xpY3koKSB7Ci0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoYmVnaW5V
cmwpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IGJlZ2luVXJsCiAgICAgICAgICAgICB2ZXJp
Znkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQogICAgICAgICAgICAgZG93bmxvYWRT
cHkuY2xlYXIoKQogICAgICAgICAgICAgZG93bmxvYWRGaW5pc2hlZFNweS5jbGVhcigpCkBAIC0x
MTcsNyArMTE3LDcgQEAgSXRlbSB7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiB0ZXN0
X29yaWdpbmF0aW5nVXJsKCkgewotICAgICAgICAgICAgd2ViVmlldy5sb2FkKGJlZ2luVXJsKQor
ICAgICAgICAgICAgd2ViVmlldy51cmwgPSBiZWdpblVybAogICAgICAgICAgICAgdmVyaWZ5KHdl
YlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKSkKICAgICAgICAgICAgIG1vdXNlQ2xpY2sod2Vi
VmlldywgMTAwLCAxMDAsIFF0LkxlZnRCdXR0b24pCiAgICAgICAgICAgICB2ZXJpZnkod2ViVmll
dy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVt
ZS5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dl
YlZpZXcvdHN0X2FwcGxpY2F0aW9uU2NoZW1lLnFtbAppbmRleCA4YmNiNWVjLi4yZTJhMzUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L1dlYlZpZXcvdHN0X2FwcGxpY2F0aW9uU2NoZW1lLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2FwcGxpY2F0aW9uU2No
ZW1lLnFtbApAQCAtNzgsNyArNzgsNyBAQCBXZWJWaWV3IHsKICAgICAgICAgICAgIHNweVRpdGxl
LmNsZWFyKCkKICAgICAgICAgICAgIGNvbXBhcmUoc3B5VGl0bGUuY291bnQsIDApCiAgICAgICAg
ICAgICB2YXIgdGVzdFVybCA9ICJhcHBsaWNhdGlvblNjaGVtZTovL3NvbWV0aGluZyIKLSAgICAg
ICAgICAgIHdlYlZpZXcubG9hZCh0ZXN0VXJsKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0
ZXN0VXJsCiAgICAgICAgICAgICBzcHlUaXRsZS53YWl0KCkKICAgICAgICAgICAgIGNvbXBhcmUo
d2ViVmlldy50aXRsZSwgIlRlc3QgQXBwbGljYXRpb24gU2NoZW1lIikKICAgICAgICAgfQpAQCAt
ODgsMTIgKzg4LDEyIEBAIFdlYlZpZXcgewogICAgICAgICAgICAgc3B5VGl0bGUuY2xlYXIoKQog
ICAgICAgICAgICAgY29tcGFyZShzcHlUaXRsZS5jb3VudCwgMCkKICAgICAgICAgICAgIHZhciB0
ZXN0VXJsID0gInNjaGVtZTI6Ly9zb21lLXVybC1zdHJpbmciCi0gICAgICAgICAgICB3ZWJWaWV3
LmxvYWQodGVzdFVybCkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gdGVzdFVybAogICAgICAg
ICAgICAgc3B5VGl0bGUud2FpdCgpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUs
ICJTY2hlbWUyIFJlcGx5IikKIAogICAgICAgICAgICAgdGVzdFVybCA9ICJzY2hlbWUxOi8vc29t
ZS11cmwtc3RyaW5nIgotICAgICAgICAgICAgd2ViVmlldy5sb2FkKHRlc3RVcmwpCisJICAgIHdl
YlZpZXcudXJsID0gdGVzdFVybAogICAgICAgICAgICAgc3B5VGl0bGUud2FpdCgpCiAgICAgICAg
ICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJTY2hlbWUxIFJlcGx5IikKIApAQCAtMTA0LDEy
ICsxMDQsMTIgQEAgV2ViVmlldyB7CiAgICAgICAgICAgICBzcHlUaXRsZS5jbGVhcigpCiAgICAg
ICAgICAgICBjb21wYXJlKHNweVRpdGxlLmNvdW50LCAwKQogICAgICAgICAgICAgdmFyIHRlc3RV
cmwgPSAic2NoZW1lMzovL3VybDEiCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQodGVzdFVybCkK
KyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gdGVzdFVybAogICAgICAgICAgICAgc3B5VGl0bGUu
d2FpdCgpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJTY2hlbWUzIFJlcGx5
MSIpCiAKICAgICAgICAgICAgIHRlc3RVcmwgPSAic2NoZW1lMzovL3VybDIiCi0gICAgICAgICAg
ICB3ZWJWaWV3LmxvYWQodGVzdFVybCkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gdGVzdFVy
bAogICAgICAgICAgICAgc3B5VGl0bGUud2FpdCgpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZp
ZXcudGl0bGUsICJTY2hlbWUzIFJlcGx5MiIpCiAKQEAgLTEyMCwxMiArMTIwLDEyIEBAIFdlYlZp
ZXcgewogICAgICAgICAgICAgc3B5VGl0bGUuY2xlYXIoKQogICAgICAgICAgICAgY29tcGFyZShz
cHlUaXRsZS5jb3VudCwgMCkKICAgICAgICAgICAgIHZhciB0ZXN0VXJsID0gInNjaGVtZUNoYXJz
ZXQ6Ly9sYXRpbjEiCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQodGVzdFVybCkKKyAgICAgICAg
ICAgIHdlYlZpZXcudXJsID0gdGVzdFVybAogICAgICAgICAgICAgc3B5VGl0bGUud2FpdCgpCiAg
ICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJ0aXRsZSB3aXRoIGNvcHlyaWdodCDC
qSIpCiAKICAgICAgICAgICAgIHRlc3RVcmwgPSAic2NoZW1lQ2hhcnNldDovL3V0Zi04IgotICAg
ICAgICAgICAgd2ViVmlldy5sb2FkKHRlc3RVcmwpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9
IHRlc3RVcmwKICAgICAgICAgICAgIHNweVRpdGxlLndhaXQoKQogICAgICAgICAgICAgY29tcGFy
ZSh3ZWJWaWV3LnRpdGxlLCAidGl0bGUgd2l0aCBjb3B5cmlnaHQgwqkiKQogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L1dlYlZpZXcvdHN0X2Rvd25sb2FkLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZG93bmxvYWQucW1sCmluZGV4IGY4MzI0YTYu
LjlmMWQ0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZG93bmxvYWQucW1sCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZG93bmxvYWQucW1s
CkBAIC02MSwxNCArNjEsMTQgQEAgV2ViVmlldyB7CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdF9k
b3dubG9hZFJlcXVlc3QoKSB7CiAgICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMCkKLSAg
ICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2Rvd25sb2Fk
LnppcCIpKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29t
bW9uL2Rvd25sb2FkLnppcCIpCiAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICBj
b21wYXJlKHNweS5jb3VudCwgMSkKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3Rf
ZXhwZWN0ZWRMZW5ndGgoKSB7CiAgICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMCkKLSAg
ICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2Rvd25sb2Fk
LnppcCIpKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29t
bW9uL2Rvd25sb2FkLnppcCIpCiAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICBj
b21wYXJlKHNweS5jb3VudCwgMSkKICAgICAgICAgICAgIGNvbXBhcmUoZXhwZWN0ZWRMZW5ndGgs
IDMyNSkKQEAgLTc2LDcgKzc2LDcgQEAgV2ViVmlldyB7CiAKICAgICAgICAgZnVuY3Rpb24gdGVz
dF9zdWNjZWVkZWQoKSB7CiAgICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMCkKLSAgICAg
ICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2Rvd25sb2FkLnpp
cCIpKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9u
L2Rvd25sb2FkLnppcCIpCiAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICBjb21w
YXJlKHNweS5jb3VudCwgMSkKICAgICAgICAgICAgIGRvd25sb2FkRmluaXNoZWRTcHkud2FpdCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X2Zhdkljb25Mb2FkLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZmF2SWNvbkxvYWQucW1sCmluZGV4
IDkyMDNiNjAuLjIwZDUzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZmF2SWNvbkxvYWQucW1sCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
ZmF2SWNvbkxvYWQucW1sCkBAIC0yNCw3ICsyNCw3IEBAIFRlc3RXZWJWaWV3IHsKICAgICAgICAg
ZnVuY3Rpb24gaW5pdCgpIHsKICAgICAgICAgICAgIGlmICh3ZWJWaWV3Lmljb24gIT0gJycpIHsK
ICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIG5vdCB0aGUgZmlyc3QgdGVzdCwgdGhlbiBs
b2FkIGEgYmxhbmsgcGFnZSB3aXRob3V0IGZhdmljb24sIHJlc3RvcmluZyB0aGUgaW5pdGlhbCBz
dGF0ZS4KLSAgICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWQoJ2Fib3V0OmJsYW5rJykKKyAgICAg
ICAgICAgICAgICB3ZWJWaWV3LnVybCA9ICdhYm91dDpibGFuaycKICAgICAgICAgICAgICAgICBz
cHkud2FpdCgpCiAgICAgICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNj
ZWVkZWQoKSkKICAgICAgICAgICAgIH0KQEAgLTM0LDcgKzM0LDcgQEAgVGVzdFdlYlZpZXcgewog
ICAgICAgICBmdW5jdGlvbiB0ZXN0X2Zhdkljb25Mb2FkKCkgewogICAgICAgICAgICAgY29tcGFy
ZShzcHkuY291bnQsIDApCiAgICAgICAgICAgICB2YXIgdXJsID0gUXQucmVzb2x2ZWRVcmwoIi4u
L2NvbW1vbi9mYXZpY29uLmh0bWwiKQotICAgICAgICAgICAgd2ViVmlldy5sb2FkKHVybCkKKyAg
ICAgICAgICAgIHdlYlZpZXcudXJsID0gdXJsCiAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAg
ICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMSkKICAgICAgICAgICAgIGNvbXBhcmUoZmF2aWNv
bi53aWR0aCwgNDgpCkBAIC00NCw3ICs0NCw3IEBAIFRlc3RXZWJWaWV3IHsKICAgICAgICAgZnVu
Y3Rpb24gdGVzdF9mYXZJY29uTG9hZEVuY29kZWRVcmwoKSB7CiAgICAgICAgICAgICBjb21wYXJl
KHNweS5jb3VudCwgMCkKICAgICAgICAgICAgIHZhciB1cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4v
Y29tbW9uL2Zhdmljb24yLmh0bWw/ZmF2aWNvbj1sb2FkIHNob3VsZCB3b3JrIHdpdGgjd2hpdGVz
cGFjZSEiKQotICAgICAgICAgICAgd2ViVmlldy5sb2FkKHVybCkKKyAgICAgICAgICAgIHdlYlZp
ZXcudXJsID0gdXJsCiAgICAgICAgICAgICBzcHkud2FpdCgpCiAgICAgICAgICAgICBjb21wYXJl
KHNweS5jb3VudCwgMSkKICAgICAgICAgICAgIGNvbXBhcmUoZmF2aWNvbi53aWR0aCwgMTYpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L1dlYlZpZXcvdHN0X2dlb3Blcm1pc3Npb24ucW1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9nZW9wZXJtaXNzaW9uLnFtbAppbmRl
eCBmZDg5OGE3Li40MTA5N2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2dlb3Blcm1pc3Npb24ucW1sCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90
c3RfZ2VvcGVybWlzc2lvbi5xbWwKQEAgLTQ2LDcgKzQ2LDcgQEAgV2ViVmlldyB7CiAKICAgICAg
ICAgZnVuY3Rpb24gdGVzdF9wZXJtaXNzaW9uUmVxdWVzdCgpIHsKICAgICAgICAgICAgIGNvbXBh
cmUoc3B5LmNvdW50LCAwKQotICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJs
KCIuLi9jb21tb24vZ2VvbG9jYXRpb24uaHRtbCIpKQorICAgICAgICAgICAgd2ViVmlldy51cmwg
PSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2dlb2xvY2F0aW9uLmh0bWwiKQogICAgICAgICAg
ICAgc3B5LndhaXQoKQogICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDEpCiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvV2ViVmlldy90c3RfamF2YVNjcmlwdERpYWxvZ3MucW1sIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9qYXZhU2NyaXB0RGlh
bG9ncy5xbWwKaW5kZXggNzdhYzZiZi4uNGUxNWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9qYXZhU2NyaXB0
RGlhbG9ncy5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9XZWJWaWV3L3RzdF9qYXZhU2NyaXB0RGlhbG9ncy5xbWwKQEAgLTY3LDcgKzY3LDcg
QEAgVGVzdFdlYlZpZXcgewogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdF9hbGVy
dCgpIHsKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9u
L2FsZXJ0Lmh0bWwiKSkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwo
Ii4uL2NvbW1vbi9hbGVydC5odG1sIikKICAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRG
b3JMb2FkU3VjY2VlZGVkKCkpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcubWVzc2FnZUZy
b21BbGVydERpYWxvZywgIkhlbGxvIFF0IikKICAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3Lm1v
ZGVsTWVzc2FnZUVxdWFsc01lc3NhZ2UpCkBAIC03NSwxMyArNzUsMTMgQEAgVGVzdFdlYlZpZXcg
ewogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RfYWxlcnRXaXRob3V0RGlhbG9nKCkgewogICAgICAg
ICAgICAgd2ViVmlldy5leHBlcmltZW50YWwuYWxlcnREaWFsb2cgPSBudWxsCi0gICAgICAgICAg
ICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9hbGVydC5odG1sIikpCisg
ICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vYWxlcnQu
aHRtbCIpCiAgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgp
KQogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3Lm1lc3NhZ2VGcm9tQWxlcnREaWFsb2csICIi
KQogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdF9jb25maXJtKCkgewotICAgICAg
ICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vY29uZmlybS5odG1s
IikpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24v
Y29uZmlybS5odG1sIikKICAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3Vj
Y2VlZGVkKCkpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcuY29uZmlybUNvdW50LCAyKQog
ICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiQUNDRVBURUQgUkVKRUNURUQiKQpA
QCAtODksMTQgKzg5LDE0IEBAIFRlc3RXZWJWaWV3IHsKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0
X2NvbmZpcm1XaXRob3V0RGlhbG9nKCkgewogICAgICAgICAgICAgd2ViVmlldy5leHBlcmltZW50
YWwuY29uZmlybURpYWxvZyA9IG51bGwKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNv
bHZlZFVybCgiLi4vY29tbW9uL2NvbmZpcm0uaHRtbCIpKQorICAgICAgICAgICAgd2ViVmlldy51
cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2NvbmZpcm0uaHRtbCIpCiAgICAgICAgICAg
ICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQogICAgICAgICAgICAgY29t
cGFyZSh3ZWJWaWV3LmNvbmZpcm1Db3VudCwgMCkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmll
dy50aXRsZSwgIkFDQ0VQVEVEIEFDQ0VQVEVEIikKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0
aW9uIHRlc3RfcHJvbXB0KCkgewotICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVk
VXJsKCIuLi9jb21tb24vcHJvbXB0Lmh0bWwiKSkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0g
UXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9wcm9tcHQuaHRtbCIpCiAgICAgICAgICAgICB2ZXJp
Znkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQogICAgICAgICAgICAgY29tcGFyZSh3
ZWJWaWV3LnByb21wdENvdW50LCAyKQogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxl
LCAidFEgb2xsZUgiKQpAQCAtMTA0LDcgKzEwNCw3IEBAIFRlc3RXZWJWaWV3IHsKIAogICAgICAg
ICBmdW5jdGlvbiB0ZXN0X3Byb21wdFdpdGhvdXREaWFsb2coKSB7CiAgICAgICAgICAgICB3ZWJW
aWV3LmV4cGVyaW1lbnRhbC5wcm9tcHREaWFsb2cgPSBudWxsCi0gICAgICAgICAgICB3ZWJWaWV3
LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9wcm9tcHQuaHRtbCIpKQorICAgICAgICAg
ICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Byb21wdC5odG1sIikK
ICAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCiAgICAg
ICAgICAgICBjb21wYXJlKHdlYlZpZXcucHJvbXB0Q291bnQsIDApCiAgICAgICAgICAgICBjb21w
YXJlKHdlYlZpZXcudGl0bGUsICJGQUlMIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZEZhaWwucW1sIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3Rz
dF9sb2FkRmFpbC5xbWwKaW5kZXggZTJmMzk3Ny4uNTFjMWY3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2Fk
RmFpbC5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9XZWJWaWV3L3RzdF9sb2FkRmFpbC5xbWwKQEAgLTE1LDcgKzE1LDcgQEAgVGVzdFdlYlZp
ZXcgewogICAgICAgICBuYW1lOiAiV2ViVmlld0xvYWRGYWlsIgogICAgICAgICBmdW5jdGlvbiB0
ZXN0X2ZhaWwoKSB7CiAgICAgICAgICAgICB0ZXN0VXJsID0gUXQucmVzb2x2ZWRVcmwoImZpbGVf
dGhhdF9kb2VzX25vdF9leGlzdC5odG1sIikKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZCh0ZXN0
VXJsKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0ZXN0VXJsCiAgICAgICAgICAgICB2ZXJp
Znkod2ViVmlldy53YWl0Rm9yTG9hZEZhaWxlZCgpKQogICAgICAgICB9CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJW
aWV3L3RzdF9sb2FkUHJvZ3Jlc3MucW1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3MucW1sCmluZGV4IGZkMTVi
YTQuLjJmOTVlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZFByb2dyZXNzLnFtbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRQ
cm9ncmVzcy5xbWwKQEAgLTEzLDcgKzEzLDcgQEAgVGVzdFdlYlZpZXcgewogCiAgICAgICAgIGZ1
bmN0aW9uIHRlc3RfbG9hZFByb2dyZXNzKCkgewogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3
LmxvYWRQcm9ncmVzcywgMCkKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVy
bCgiLi4vY29tbW9uL3Rlc3QxLmh0bWwiKSkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gUXQu
cmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1sIikKICAgICAgICAgICAgIGNvbXBhcmUo
d2ViVmlldy5sb2FkUHJvZ3Jlc3MsIDApCiAgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0
Rm9yTG9hZFN1Y2NlZWRlZCgpKQogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LmxvYWRQcm9n
cmVzcywgMTAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3NTaWduYWwucW1sIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2Fk
UHJvZ3Jlc3NTaWduYWwucW1sCmluZGV4IGY3YzQyZjMuLjYyMDY4NjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
bG9hZFByb2dyZXNzU2lnbmFsLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRQcm9ncmVzc1NpZ25hbC5xbWwKQEAg
LTIwLDcgKzIwLDcgQEAgVGVzdFdlYlZpZXcgewogICAgICAgICBmdW5jdGlvbiB0ZXN0X2xvYWRQ
cm9ncmVzc1NpZ25hbCgpIHsKICAgICAgICAgICAgIGNvbXBhcmUoc3B5UHJvZ3Jlc3MuY291bnQs
IDApCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcubG9hZFByb2dyZXNzLCAwKQotICAgICAg
ICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDEuaHRtbCIp
KQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rl
c3QxLmh0bWwiKQogICAgICAgICAgICAgc3B5UHJvZ3Jlc3Mud2FpdCgpCiAgICAgICAgICAgICBj
b21wYXJlKHRydWUsIHdlYlZpZXcubG9hZFByb2dyZXNzID4gLTEgJiYgd2ViVmlldy5sb2FkUHJv
Z3Jlc3MgPCAxMDEpCiAgICAgICAgICAgICBpZiAod2ViVmlldy5sb2FkUHJvZ3Jlc3MgPiAwICYm
IHdlYlZpZXcubG9hZFByb2dyZXNzIDwgMTAwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRVcmwucW1s
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3
L3RzdF9sb2FkVXJsLnFtbAppbmRleCBkZTJmODBkLi44ZmNiYWU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xv
YWRVcmwucW1sCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvV2ViVmlldy90c3RfbG9hZFVybC5xbWwKQEAgLTMwLDIwICszMCwyMCBAQCBUZXN0V2Vi
VmlldyB7CiAgICAgICAgIGZ1bmN0aW9uIHRlc3RfbG9hZElnbm9yZUVtcHR5VXJsKCkgewogICAg
ICAgICAgICAgdmFyIHVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDEuaHRtbCIp
CiAKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZCh1cmwpCisgICAgICAgICAgICB3ZWJWaWV3LnVy
bCA9IHVybAogICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQo
KSkKICAgICAgICAgICAgIGNvbXBhcmUobnVtTG9hZFN0YXJ0ZWQsIDEpCiAgICAgICAgICAgICBj
b21wYXJlKG51bUxvYWRTdWNjZWVkZWQsIDEpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcu
dXJsLCB1cmwpCiAKICAgICAgICAgICAgIGxhc3RVcmwgPSB3ZWJWaWV3LnVybAotICAgICAgICAg
ICAgd2ViVmlldy5sb2FkKCcnKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSAnJwogICAgICAg
ICAgICAgd2FpdCgxMDAwKQogICAgICAgICAgICAgY29tcGFyZShudW1Mb2FkU3RhcnRlZCwgMSkK
ICAgICAgICAgICAgIGNvbXBhcmUobnVtTG9hZFN1Y2NlZWRlZCwgMSkKICAgICAgICAgICAgIGNv
bXBhcmUod2ViVmlldy51cmwsIGxhc3RVcmwpCiAKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZCgn
YWJvdXQ6YmxhbmsnKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSAnYWJvdXQ6YmxhbmsnCiAg
ICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQogICAgICAg
ICAgICAgY29tcGFyZShudW1Mb2FkU3RhcnRlZCwgMikKICAgICAgICAgICAgIGNvbXBhcmUobnVt
TG9hZFN1Y2NlZWRlZCwgMikKQEAgLTUxLDcgKzUxLDcgQEAgVGVzdFdlYlZpZXcgewogCiAgICAg
ICAgICAgICAvLyBJdCBzaG91bGRuJ3QgaW50ZXJydXB0IGFueSBvbmdvaW5nIGxvYWQgd2hlbiBh
biBlbXB0eSB1cmwgaXMgdXNlZC4KICAgICAgICAgICAgIHdhdGNoUHJvZ3Jlc3MgPSB0cnVlCi0g
ICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXJsKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSB1
cmwKICAgICAgICAgICAgIHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKQogICAgICAgICAg
ICAgY29tcGFyZShudW1Mb2FkU3RhcnRlZCwgMykKICAgICAgICAgICAgIGNvbXBhcmUobnVtTG9h
ZFN1Y2NlZWRlZCwgMykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbmF2aWdhdGlvbkhpc3RvcnkucW1sIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9u
YXZpZ2F0aW9uSGlzdG9yeS5xbWwKaW5kZXggNWY0NDIwNy4uM2I1MWM5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3Rz
dF9uYXZpZ2F0aW9uSGlzdG9yeS5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9uYXZpZ2F0aW9uSGlzdG9yeS5xbWwKQEAg
LTM2LDEzICszNiwxMyBAQCBUZXN0V2ViVmlldyB7CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdF9u
YXZpZ2F0aW9uSGlzdG9yeSgpIHsKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy5sb2FkUHJv
Z3Jlc3MsIDApCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2Nv
bW1vbi90ZXN0MS5odG1sIikpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVk
VXJsKCIuLi9jb21tb24vdGVzdDEuaHRtbCIpCiAgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53
YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LmNhbkdv
QmFjaywgZmFsc2UpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcuY2FuR29Gb3J3YXJkLCBm
YWxzZSkKICAgICAgICAgICAgIGNvbXBhcmUoYmFja0l0ZW1zTGlzdC5jb3VudCwgMCkKICAgICAg
ICAgICAgIGNvbXBhcmUoZm9yd2FyZEl0ZW1zTGlzdC5jb3VudCwgMCkKLSAgICAgICAgICAgIHdl
YlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rlc3QyLmh0bWwiKSkKKyAgICAg
ICAgICAgIHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0Mi5odG1s
IikKICAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCiAg
ICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9u
L3Rlc3QyLmh0bWwiKSkKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy5jYW5Hb0JhY2ssIHRy
dWUpCkBAIC02Miw3ICs2Miw3IEBAIFRlc3RXZWJWaWV3IHsKICAgICAgICAgICAgIGNvbXBhcmUo
d2ViVmlldy5jYW5Hb0ZvcndhcmQsIGZhbHNlKQogICAgICAgICAgICAgY29tcGFyZShiYWNrSXRl
bXNMaXN0LmNvdW50LCAxKQogICAgICAgICAgICAgY29tcGFyZShmb3J3YXJkSXRlbXNMaXN0LmNv
dW50LCAwKQotICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21t
b24vamF2YXNjcmlwdC5odG1sIikpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29s
dmVkVXJsKCIuLi9jb21tb24vamF2YXNjcmlwdC5odG1sIikKICAgICAgICAgICAgIHZlcmlmeSh3
ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZp
ZXcudXJsLCBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2phdmFzY3JpcHQuaHRtbCIpKQogICAg
ICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LmNhbkdvQmFjaywgdHJ1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
b3JpZ2luLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbAppbmRleCA3MDc0NWQ4Li42NjBjYTczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X29yaWdpbi5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sCkBAIC00OCw3ICs0OCw3IEBAIFdl
YlZpZXcgewogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RfcGVybWlzc2lvblJlcXVlc3QoKSB7CiAg
ICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMCkKLSAgICAgICAgICAgIHdlYlZpZXcubG9h
ZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2dlb2xvY2F0aW9uLmh0bWwiKSkKKyAgICAgICAg
ICAgIHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9nZW9sb2NhdGlvbi5o
dG1sIikKICAgICAgICAgICAgIHNweS53YWl0KCkKICAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNv
dW50LCAxKQogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnN1Y2Nlc3MsIHRydWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dl
YlZpZXcvdHN0X3ByZWZlcmVuY2VzLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfcHJlZmVyZW5jZXMucW1sCmluZGV4IDgyMmZi
ODMuLjRmMzU2ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfcHJlZmVyZW5jZXMucW1sCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfcHJlZmVy
ZW5jZXMucW1sCkBAIC0xMjEsNyArMTIxLDcgQEAgSXRlbSB7CiAgICAgICAgICAgICAgICAgICAg
IHdlYlZpZXcuZXhwZXJpbWVudGFsLnByZWZlcmVuY2VzLmRlZmF1bHRGaXhlZEZvbnRTaXplID0g
ZGVmYXVsdEZpeGVkRm9udFNpemUKIAogICAgICAgICAgICAgICAgICAgICBpZiAod2ViVmlldy51
cmwgIT0gJycgJiYgd2ViVmlldy51cmwgIT0gJ2Fib3V0OmJsYW5rJykgewotICAgICAgICAgICAg
ICAgICAgICAgICAgd2ViVmlldy5sb2FkKCdhYm91dDpibGFuaycpCisgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWJWaWV3LnVybCA9ICdhYm91dDpibGFuaycKICAgICAgICAgICAgICAgICAgICAg
ICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCiAgICAgICAgICAgICAg
ICAgICAgIH0KIApAQCAtMTQ1LDcgKzE0NSw3IEBAIEl0ZW0gewogICAgICAgICAgICAgZnVuY3Rp
b24gdGVzdF9qYXZhc2NyaXB0RW5hYmxlZCgpIHsKICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4
cGVyaW1lbnRhbC5wcmVmZXJlbmNlcy5qYXZhc2NyaXB0RW5hYmxlZCA9IHRydWUKICAgICAgICAg
ICAgICAgICB2YXIgdGVzdFVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vamF2YXNjcmlw
dC5odG1sIikKLSAgICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWQodGVzdFVybCkKKyAgICAgICAg
ICAgICAgICB3ZWJWaWV3LnVybCA9IHRlc3RVcmwKICAgICAgICAgICAgICAgICB2ZXJpZnkod2Vi
Vmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQogICAgICAgICAgICAgICAgIGNvbXBhcmUod2Vi
Vmlldy50aXRsZSwgIk5ldyBUaXRsZSIpCiAgICAgICAgICAgICB9CkBAIC0xNTMsNyArMTUzLDcg
QEAgSXRlbSB7CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0X2phdmFzY3JpcHREaXNhYmxlZCgp
IHsKICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC5wcmVmZXJlbmNlcy5qYXZh
c2NyaXB0RW5hYmxlZCA9IGZhbHNlCiAgICAgICAgICAgICAgICAgdmFyIHRlc3RVcmwgPSBRdC5y
ZXNvbHZlZFVybCgiLi4vY29tbW9uL2phdmFzY3JpcHQuaHRtbCIpCi0gICAgICAgICAgICAgICAg
d2ViVmlldy5sb2FkKHRlc3RVcmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0ZXN0
VXJsCiAgICAgICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQo
KSkKICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJPcmlnaW5hbCBUaXRs
ZSIpCiAgICAgICAgICAgICB9CkBAIC0xNjEsNyArMTYxLDcgQEAgSXRlbSB7CiAgICAgICAgICAg
ICBmdW5jdGlvbiB0ZXN0X2xvY2FsU3RvcmFnZURpc2FibGVkKCkgewogICAgICAgICAgICAgICAg
IHdlYlZpZXcuZXhwZXJpbWVudGFsLnByZWZlcmVuY2VzLmxvY2FsU3RvcmFnZUVuYWJsZWQgPSBm
YWxzZQogICAgICAgICAgICAgICAgIHZhciB0ZXN0VXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2Nv
bW1vbi9sb2NhbFN0b3JhZ2UuaHRtbCIpCi0gICAgICAgICAgICAgICAgd2ViVmlldy5sb2FkKHRl
c3RVcmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0ZXN0VXJsCiAgICAgICAgICAg
ICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKSkKICAgICAgICAgICAg
ICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJPcmlnaW5hbCBUaXRsZSIpCiAgICAgICAgICAg
ICB9CkBAIC0xNjksOSArMTY5LDkgQEAgSXRlbSB7CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0
X2xvY2FsU3RvcmFnZUVuYWJsZWQoKSB7CiAgICAgICAgICAgICAgICAgd2ViVmlldy5leHBlcmlt
ZW50YWwucHJlZmVyZW5jZXMubG9jYWxTdG9yYWdlRW5hYmxlZCA9IHRydWUKICAgICAgICAgICAg
ICAgICB2YXIgdGVzdFVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vbG9jYWxTdG9yYWdl
Lmh0bWwiKQotICAgICAgICAgICAgICAgIHdlYlZpZXcubG9hZCh0ZXN0VXJsKQorICAgICAgICAg
ICAgICAgIHdlYlZpZXcudXJsID0gdGVzdFVybAogICAgICAgICAgICAgICAgIHZlcmlmeSh3ZWJW
aWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCi0gICAgICAgICAgICAgICAgd2ViVmlldy5sb2Fk
KHRlc3RVcmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB0ZXN0VXJsCiAgICAgICAg
ICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKSkKICAgICAgICAg
ICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJOZXcgVGl0bGUiKQogICAgICAgICAgICAg
fQpAQCAtMTgwLDE2ICsxODAsMTYgQEAgSXRlbSB7CiAgICAgICAgICAgICAgICAgd2ViVmlldy5l
eHBlcmltZW50YWwucHJlZmVyZW5jZXMuamF2YXNjcmlwdEVuYWJsZWQgPSB0cnVlCiAgICAgICAg
ICAgICAgICAgd2ViVmlldzIuZXhwZXJpbWVudGFsLnByZWZlcmVuY2VzLmphdmFzY3JpcHRFbmFi
bGVkID0gdHJ1ZQogICAgICAgICAgICAgICAgIHZhciB0ZXN0VXJsID0gUXQucmVzb2x2ZWRVcmwo
Ii4uL2NvbW1vbi9qYXZhc2NyaXB0Lmh0bWwiKQotICAgICAgICAgICAgICAgIHdlYlZpZXcubG9h
ZCh0ZXN0VXJsKQorICAgICAgICAgICAgICAgIHdlYlZpZXcudXJsID0gdGVzdFVybAogICAgICAg
ICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCi0gICAgICAg
ICAgICAgICAgd2ViVmlldzIubG9hZCh0ZXN0VXJsKQorICAgICAgICAgICAgICAgIHdlYlZpZXcy
LnVybCA9IHRlc3RVcmwKICAgICAgICAgICAgICAgICB2ZXJpZnkod2ViVmlldzIud2FpdEZvckxv
YWRTdWNjZWVkZWQoKSkKICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJO
ZXcgVGl0bGUiKQogICAgICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldzIudGl0bGUsICJOZXcg
VGl0bGUiKQogICAgICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnByZWZlcmVuY2Vz
LmphdmFzY3JpcHRFbmFibGVkID0gZmFsc2UKLSAgICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWQo
dGVzdFVybCkKKyAgICAgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IHRlc3RVcmwKICAgICAgICAg
ICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQotICAgICAgICAg
ICAgICAgIHdlYlZpZXcyLmxvYWQodGVzdFVybCkKKyAgICAgICAgICAgICAgICB3ZWJWaWV3Mi51
cmwgPSB0ZXN0VXJsCiAgICAgICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcyLndhaXRGb3JMb2Fk
U3VjY2VlZGVkKCkpCiAgICAgICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3Jp
Z2luYWwgVGl0bGUiKQogICAgICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldzIudGl0bGUsICJO
ZXcgVGl0bGUiKQpAQCAtMTk3LDcgKzE5Nyw3IEBAIEl0ZW0gewogCiAgICAgICAgICAgICBmdW5j
dGlvbiB0ZXN0X3N0YW5kYXJkRm9udEZhbWlseUNoYW5nZWQoKSB7CiAgICAgICAgICAgICAgICAg
dmFyIHVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZm9udC1wcmVmZXJlbmNlcy5odG1s
P3N0YW5kYXJkI2ZvbnQtZmFtaWx5IikKLSAgICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXJs
KQorICAgICAgICAgICAgICAgIHdlYlZpZXcudXJsID0gdXJsCiAgICAgICAgICAgICAgICAgdGl0
bGVTcHkud2FpdCgpCiAgICAgICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3Jp
Z2luYWwgVGl0bGUiKQogICAgICAgICAgICAgICAgIHRpdGxlU3B5LndhaXQoKQpAQCAtMjA2LDcg
KzIwNiw3IEBAIEl0ZW0gewogICAgICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnBy
ZWZlcmVuY2VzLnN0YW5kYXJkRm9udEZhbWlseSA9ICJmb29iYXIiCiAgICAgICAgICAgICAgICAg
c3RhbmRhcmRGb250RmFtaWx5U3B5LndhaXQoKQogICAgICAgICAgICAgICAgIGNvbXBhcmUoc3Rh
bmRhcmRGb250RmFtaWx5U3B5LmNvdW50LCAxKQotICAgICAgICAgICAgICAgIHdlYlZpZXcubG9h
ZCh1cmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB1cmwKICAgICAgICAgICAgICAg
ICB0aXRsZVNweS53YWl0KCkKICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUs
ICJPcmlnaW5hbCBUaXRsZSIpCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCkBAIC0y
MTUsNyArMjE1LDcgQEAgSXRlbSB7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RfZm9udFNp
emVDaGFuZ2VkKCkgewogICAgICAgICAgICAgICAgIHZhciB1cmwgPSBRdC5yZXNvbHZlZFVybCgi
Li4vY29tbW9uL2ZvbnQtcHJlZmVyZW5jZXMuaHRtbD9zdGFuZGFyZCNmb250LXNpemUiKQotICAg
ICAgICAgICAgICAgIHdlYlZpZXcubG9hZCh1cmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51
cmwgPSB1cmwKICAgICAgICAgICAgICAgICB0aXRsZVNweS53YWl0KCkKICAgICAgICAgICAgICAg
ICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJPcmlnaW5hbCBUaXRsZSIpCiAgICAgICAgICAgICAg
ICAgdGl0bGVTcHkud2FpdCgpCkBAIC0yMjQsNyArMjI0LDcgQEAgSXRlbSB7CiAgICAgICAgICAg
ICAgICAgd2ViVmlldy5leHBlcmltZW50YWwucHJlZmVyZW5jZXMuZGVmYXVsdEZvbnRTaXplID0g
ZGVmYXVsdEZvbnRTaXplICsgMQogICAgICAgICAgICAgICAgIGRlZmF1bHRGb250U2l6ZVNweS53
YWl0KCkKICAgICAgICAgICAgICAgICBjb21wYXJlKGRlZmF1bHRGb250U2l6ZVNweS5jb3VudCwg
MSkKLSAgICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXJsKQorICAgICAgICAgICAgICAgIHdl
YlZpZXcudXJsID0gdXJsCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCiAgICAgICAg
ICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3JpZ2luYWwgVGl0bGUiKQogICAgICAg
ICAgICAgICAgIHRpdGxlU3B5LndhaXQoKQpAQCAtMjMzLDcgKzIzMyw3IEBAIEl0ZW0gewogCiAg
ICAgICAgICAgICBmdW5jdGlvbiB0ZXN0X2ZpeGVkRm9udFNpemVDaGFuZ2VkKCkgewogICAgICAg
ICAgICAgICAgIHZhciB1cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2ZvbnQtcHJlZmVy
ZW5jZXMuaHRtbD9maXhlZCNmb250LXNpemUiKQotICAgICAgICAgICAgICAgIHdlYlZpZXcubG9h
ZCh1cmwpCisgICAgICAgICAgICAgICAgd2ViVmlldy51cmwgPSB1cmwKICAgICAgICAgICAgICAg
ICB0aXRsZVNweS53YWl0KCkKICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUs
ICJPcmlnaW5hbCBUaXRsZSIpCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCkBAIC0y
NDIsMTMgKzI0MiwxMyBAQCBJdGVtIHsKICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1l
bnRhbC5wcmVmZXJlbmNlcy5kZWZhdWx0Rml4ZWRGb250U2l6ZSA9IGRlZmF1bHRGaXhlZEZvbnRT
aXplICsgMQogICAgICAgICAgICAgICAgIGRlZmF1bHRGaXhlZEZvbnRTaXplU3B5LndhaXQoKQog
ICAgICAgICAgICAgICAgIGNvbXBhcmUoZGVmYXVsdEZpeGVkRm9udFNpemVTcHkuY291bnQsIDEp
Ci0gICAgICAgICAgICAgICAgd2ViVmlldy5sb2FkKHVybCkKKyAgICAgICAgICAgICAgICB3ZWJW
aWV3LnVybCA9IHVybAogICAgICAgICAgICAgICAgIHRpdGxlU3B5LndhaXQoKQogICAgICAgICAg
ICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgIk9yaWdpbmFsIFRpdGxlIikKICAgICAgICAg
ICAgICAgICB0aXRsZVNweS53YWl0KCkKICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcu
dGl0bGUsIChkZWZhdWx0Rml4ZWRGb250U2l6ZSArIDEpLnRvU3RyaW5nKCkgKyAicHgiKQogCi0g
ICAgICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZm9u
dC1wcmVmZXJlbmNlcy5odG1sP3N0YW5kYXJkI2ZvbnQtc2l6ZSIpKQorICAgICAgICAgICAgICAg
IHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9mb250LXByZWZlcmVuY2Vz
Lmh0bWw/c3RhbmRhcmQjZm9udC1zaXplIikKICAgICAgICAgICAgICAgICB0aXRsZVNweS53YWl0
KCkKICAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsICJPcmlnaW5hbCBUaXRs
ZSIpCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCkBAIC0yNTgsNyArMjU4LDcgQEAg
SXRlbSB7CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0X21pbmltdW1Gb250U2l6ZUNoYW5nZWQo
KSB7CiAgICAgICAgICAgICAgICAgdmVyaWZ5KGRlZmF1bHRNaW5pbXVtRm9udFNpemUgPCBkZWZh
dWx0Rm9udFNpemUpCiAgICAgICAgICAgICAgICAgdmFyIHVybCA9IFF0LnJlc29sdmVkVXJsKCIu
Li9jb21tb24vZm9udC1wcmVmZXJlbmNlcy5odG1sP21pbmltdW0jZm9udC1zaXplIikKLSAgICAg
ICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXJsKQorICAgICAgICAgICAgICAgIHdlYlZpZXcudXJs
ID0gdXJsCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCiAgICAgICAgICAgICAgICAg
Y29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3JpZ2luYWwgVGl0bGUiKQogICAgICAgICAgICAgICAg
IHRpdGxlU3B5LndhaXQoKQpAQCAtMjcwLDcgKzI3MCw3IEBAIEl0ZW0gewogICAgICAgICAgICAg
ICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnByZWZlcmVuY2VzLm1pbmltdW1Gb250U2l6ZSA9IGRl
ZmF1bHRGb250U2l6ZQogICAgICAgICAgICAgICAgIG1pbmltdW1Gb250U2l6ZVNweS53YWl0KCkK
ICAgICAgICAgICAgICAgICBjb21wYXJlKG1pbmltdW1Gb250U2l6ZVNweS5jb3VudCwgMSkKLSAg
ICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWQodXJsKQorICAgICAgICAgICAgICAgIHdlYlZpZXcu
dXJsID0gdXJsCiAgICAgICAgICAgICAgICAgdGl0bGVTcHkud2FpdCgpCiAgICAgICAgICAgICAg
ICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAiT3JpZ2luYWwgVGl0bGUiKQogICAgICAgICAgICAg
ICAgIHRpdGxlU3B5LndhaXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9wcm9wZXJ0aWVzLnFtbCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfcHJv
cGVydGllcy5xbWwKaW5kZXggM2RlOWNkNC4uMDM2ZWU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9wcm9wZXJ0
aWVzLnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X3Byb3BlcnRpZXMucW1sCkBAIC0xMiwxNCArMTIsMTQgQEAgVGVzdFdl
YlZpZXcgewogICAgICAgICBuYW1lOiAiV2ViVmlld1Byb3BlcnRpZXMiCiAKICAgICAgICAgZnVu
Y3Rpb24gdGVzdF90aXRsZSgpIHsKLSAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZl
ZFVybCgiLi4vY29tbW9uL3Rlc3QxLmh0bWwiKSkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0g
IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDEuaHRtbCIpCiAgICAgICAgICAgICB2ZXJp
Znkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQogICAgICAgICAgICAgY29tcGFyZSh3
ZWJWaWV3LnRpdGxlLCAiVGVzdCBwYWdlIDEiKQogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rp
b24gdGVzdF91cmwoKSB7CiAgICAgICAgICAgICB2YXIgdGVzdFVybCA9IFF0LnJlc29sdmVkVXJs
KCIuLi9jb21tb24vdGVzdDEuaHRtbCIpCi0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQodGVzdFVy
bCkKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gdGVzdFVybAogICAgICAgICAgICAgdmVyaWZ5
KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKSkKICAgICAgICAgICAgIGNvbXBhcmUod2Vi
Vmlldy51cmwsIHRlc3RVcmwpCiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfdGl0bGVDaGFuZ2Vk
LnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2Vi
Vmlldy90c3RfdGl0bGVDaGFuZ2VkLnFtbAppbmRleCBmM2Y1MDY5Li4wNGYyYzdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X3RpdGxlQ2hhbmdlZC5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF90aXRsZUNoYW5nZWQucW1sCkBAIC0yMCw3
ICsyMCw3IEBAIFRlc3RXZWJWaWV3IHsKICAgICAgICAgZnVuY3Rpb24gdGVzdF90aXRsZUZpcnN0
TG9hZCgpIHsKICAgICAgICAgICAgIGNvbXBhcmUoc3B5VGl0bGUuY291bnQsIDApCiAgICAgICAg
ICAgICB2YXIgdGVzdFVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDMuaHRtbCIp
Ci0gICAgICAgICAgICB3ZWJWaWV3LmxvYWQodGVzdFVybCkKKyAgICAgICAgICAgIHdlYlZpZXcu
dXJsID0gdGVzdFVybAogICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNj
ZWVkZWQoKSkKICAgICAgICAgICAgIHNweVRpdGxlLndhaXQoKQogICAgICAgICAgICAgY29tcGFy
ZSh3ZWJWaWV3LnRpdGxlLCAiVGVzdCBwYWdlIDMiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xcXVpY2t3ZWJ2aWV3L3RzdF9xcXVpY2t3ZWJ2aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXF1aWNrd2Vidmll
dy90c3RfcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggN2E5ZTI0ZS4uODBhYThiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xcXVpY2t3ZWJ2aWV3L3Rz
dF9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FxdWlja3dlYnZpZXcvdHN0X3FxdWlja3dlYnZpZXcuY3BwCkBAIC0xNTQsNyArMTU0
LDcgQEAgdm9pZCB0c3RfUVF1aWNrV2ViVmlldzo6c3RvcEVuYWJsZWRBZnRlckxvYWRTdGFydGVk
KCkKICAgICBRQ09NUEFSRSh3ZWJWaWV3KCktPmxvYWRpbmcoKSwgZmFsc2UpOwogCiAgICAgTG9h
ZFN0YXJ0ZWRDYXRjaGVyIGNhdGNoZXIod2ViVmlldygpKTsKLSAgICB3ZWJWaWV3KCktPmxvYWQo
UVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1s
L2Jhc2ljX3BhZ2UuaHRtbCIpKSk7CisgICAgd2ViVmlldygpLT5zZXRVcmwoUVVybDo6ZnJvbUxv
Y2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2Uu
aHRtbCIpKSk7CiAgICAgd2FpdEZvclNpZ25hbCgmY2F0Y2hlciwgU0lHTkFMKGZpbmlzaGVkKCkp
KTsKIAogICAgIFFDT01QQVJFKHdlYlZpZXcoKS0+bG9hZGluZygpLCB0cnVlKTsKQEAgLTE3MCw4
ICsxNzAsOCBAQCB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3OjpiYXNlVXJsKCkKIAogdm9pZCB0c3Rf
UVF1aWNrV2ViVmlldzo6bG9hZEVtcHR5VXJsKCkKIHsKLSAgICB3ZWJWaWV3KCktPmxvYWQoUVVy
bCgpKTsKLSAgICB3ZWJWaWV3KCktPmxvYWQoUVVybChRTGF0aW4xU3RyaW5nKCIiKSkpOworICAg
IHdlYlZpZXcoKS0+c2V0VXJsKFFVcmwoKSk7CisgICAgd2ViVmlldygpLT5zZXRVcmwoUVVybChR
TGF0aW4xU3RyaW5nKCIiKSkpOwogfQogCiB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3Ojpsb2FkRW1w
dHlQYWdlVmlld1Zpc2libGUoKQpAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgdHN0X1FRdWlja1dl
YlZpZXc6OmxvYWRFbXB0eVBhZ2VWaWV3SGlkZGVuKCkKIHsKICAgICBRU2lnbmFsU3B5IGxvYWRT
cHkod2ViVmlldygpLCBTSUdOQUwobG9hZGluZ0NoYW5nZWQoUVdlYkxvYWRSZXF1ZXN0KikpKTsK
IAotICAgIHdlYlZpZXcoKS0+bG9hZChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmco
VEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZS5odG1sIikpKTsKKyAgICB3ZWJWaWV3
KCktPnNldFVybChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNF
X0RJUiAiL2h0bWwvYmFzaWNfcGFnZS5odG1sIikpKTsKICAgICBRVkVSSUZZKHdhaXRGb3JMb2Fk
U3VjY2VlZGVkKHdlYlZpZXcoKSkpOwogCiAgICAgUUNPTVBBUkUobG9hZFNweS5zaXplKCksIDIp
OwpAQCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgdHN0X1FRdWlja1dlYlZpZXc6OmxvYWROb25leGlz
dGVudEZpbGVVcmwoKQogewogICAgIFFTaWduYWxTcHkgbG9hZFNweSh3ZWJWaWV3KCksIFNJR05B
TChsb2FkaW5nQ2hhbmdlZChRV2ViTG9hZFJlcXVlc3QqKSkpOwogCi0gICAgd2ViVmlldygpLT5s
b2FkKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19TT1VSQ0VfRElSICIv
aHRtbC9maWxlX3RoYXRfZG9lc19ub3RfZXhpc3QuaHRtbCIpKSk7CisgICAgd2ViVmlldygpLT5z
ZXRVcmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIg
Ii9odG1sL2ZpbGVfdGhhdF9kb2VzX25vdF9leGlzdC5odG1sIikpKTsKICAgICBRVkVSSUZZKHdh
aXRGb3JMb2FkRmFpbGVkKHdlYlZpZXcoKSkpOwogCiAgICAgUUNPTVBBUkUobG9hZFNweS5zaXpl
KCksIDIpOwpAQCAtMjAyLDEyICsyMDIsMTIgQEAgdm9pZCB0c3RfUVF1aWNrV2ViVmlldzo6bG9h
ZE5vbmV4aXN0ZW50RmlsZVVybCgpCiAKIHZvaWQgdHN0X1FRdWlja1dlYlZpZXc6OmJhY2tBbmRG
b3J3YXJkKCkKIHsKLSAgICB3ZWJWaWV3KCktPmxvYWQoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0
aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIpKSk7Cisg
ICAgd2ViVmlldygpLT5zZXRVcmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRF
U1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIpKSk7CiAgICAgUVZFUklGWSh3
YWl0Rm9yTG9hZFN1Y2NlZWRlZCh3ZWJWaWV3KCkpKTsKIAogICAgIFFDT01QQVJFKHdlYlZpZXco
KS0+dXJsKCkucGF0aCgpLCBRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jh
c2ljX3BhZ2UuaHRtbCIpKTsKIAotICAgIHdlYlZpZXcoKS0+bG9hZChRVXJsOjpmcm9tTG9jYWxG
aWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZTIuaHRt
bCIpKSk7CisgICAgd2ViVmlldygpLT5zZXRVcmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4x
U3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UyLmh0bWwiKSkpOwogICAg
IFFWRVJJRlkod2FpdEZvckxvYWRTdWNjZWVkZWQod2ViVmlldygpKSk7CiAKICAgICBRQ09NUEFS
RSh3ZWJWaWV3KCktPnVybCgpLnBhdGgoKSwgUUxhdGluMVN0cmluZyhURVNUU19TT1VSQ0VfRElS
ICIvaHRtbC9iYXNpY19wYWdlMi5odG1sIikpOwpAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgdHN0
X1FRdWlja1dlYlZpZXc6OmJhY2tBbmRGb3J3YXJkKCkKIAogdm9pZCB0c3RfUVF1aWNrV2ViVmll
dzo6cmVsb2FkKCkKIHsKLSAgICB3ZWJWaWV3KCktPmxvYWQoUVVybDo6ZnJvbUxvY2FsRmlsZShR
TGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIpKSk7
CisgICAgd2ViVmlldygpLT5zZXRVcmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5n
KFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIpKSk7CiAgICAgUVZFUklG
WSh3YWl0Rm9yTG9hZFN1Y2NlZWRlZCh3ZWJWaWV3KCkpKTsKIAogICAgIFFDT01QQVJFKHdlYlZp
ZXcoKS0+dXJsKCkucGF0aCgpLCBRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1s
L2Jhc2ljX3BhZ2UuaHRtbCIpKTsKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIHRzdF9RUXVpY2tX
ZWJWaWV3OjpyZWxvYWQoKQogCiB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3OjpzdG9wKCkKIHsKLSAg
ICB3ZWJWaWV3KCktPmxvYWQoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RT
X1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIpKSk7CisgICAgd2ViVmlldygpLT5z
ZXRVcmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIg
Ii9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIpKSk7CiAgICAgUVZFUklGWSh3YWl0Rm9yTG9hZFN1Y2Nl
ZWRlZCh3ZWJWaWV3KCkpKTsKIAogICAgIFFDT01QQVJFKHdlYlZpZXcoKS0+dXJsKCkucGF0aCgp
LCBRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIp
KTsKQEAgLTI1MSw3ICsyNTEsNyBAQCB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3Ojpsb2FkUHJvZ3Jl
c3MoKQogewogICAgIFFDT01QQVJFKHdlYlZpZXcoKS0+bG9hZFByb2dyZXNzKCksIDApOwogCi0g
ICAgd2ViVmlldygpLT5sb2FkKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNU
U19TT1VSQ0VfRElSICIvaHRtbC9iYXNpY19wYWdlLmh0bWwiKSkpOworICAgIHdlYlZpZXcoKS0+
c2V0VXJsKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19TT1VSQ0VfRElS
ICIvaHRtbC9iYXNpY19wYWdlLmh0bWwiKSkpOwogICAgIFFTaWduYWxTcHkgbG9hZFByb2dyZXNz
Q2hhbmdlZFNweSh3ZWJWaWV3KCksIFNJR05BTChsb2FkUHJvZ3Jlc3NDaGFuZ2VkKGludCkpKTsK
ICAgICBRVkVSSUZZKHdhaXRGb3JMb2FkU3VjY2VlZGVkKHdlYlZpZXcoKSkpOwogCkBAIC0yNzIs
NyArMjcyLDcgQEAgdm9pZCB0c3RfUVF1aWNrV2ViVmlldzo6c2hvd1dlYlZpZXcoKQogewogICAg
IHdlYlZpZXcoKS0+c2V0U2l6ZShRU2l6ZUYoMzAwLCA0MDApKTsKIAotICAgIHdlYlZpZXcoKS0+
bG9hZChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAi
L2h0bWwvZGlyZWN0LWltYWdlLWNvbXBvc2l0aW5nLmh0bWwiKSkpOworICAgIHdlYlZpZXcoKS0+
c2V0VXJsKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19TT1VSQ0VfRElS
ICIvaHRtbC9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCIpKSk7CiAgICAgUVZFUklGWSh3
YWl0Rm9yTG9hZFN1Y2NlZWRlZCh3ZWJWaWV3KCkpKTsKIAogICAgIG1fd2luZG93LT5zaG93KCk7
CkBAIC0zMDgsMTMgKzMwOCwxMyBAQCB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3OjptdWx0aXBsZVdl
YlZpZXdXaW5kb3dzKCkKICAgICBRU2NvcGVkUG9pbnRlcjxUZXN0V2luZG93PiB3aW5kb3cyKG5l
dyBUZXN0V2luZG93KHdlYlZpZXcyKSk7CiAKICAgICB3ZWJWaWV3MS0+c2V0U2l6ZShRU2l6ZUYo
MzAwLCA0MDApKTsKLSAgICB3ZWJWaWV3MS0+bG9hZChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRp
bjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvc2Nyb2xsLmh0bWwiKSkpOworICAgIHdl
YlZpZXcxLT5zZXRVcmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NP
VVJDRV9ESVIgIi9odG1sL3Njcm9sbC5odG1sIikpKTsKICAgICBRVkVSSUZZKHdhaXRGb3JMb2Fk
U3VjY2VlZGVkKHdlYlZpZXcxKSk7CiAgICAgd2luZG93MS0+c2hvdygpOwogICAgIHdlYlZpZXcx
LT5zZXRWaXNpYmxlKHRydWUpOwogCiAgICAgd2ViVmlldzItPnNldFNpemUoUVNpemVGKDMwMCwg
NDAwKSk7Ci0gICAgd2ViVmlldzItPmxvYWQoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3Ry
aW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2Jhc2ljX3BhZ2UuaHRtbCIpKSk7CisgICAgd2Vi
VmlldzItPnNldFVybChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09V
UkNFX0RJUiAiL2h0bWwvYmFzaWNfcGFnZS5odG1sIikpKTsKICAgICBRVkVSSUZZKHdhaXRGb3JM
b2FkU3VjY2VlZGVkKHdlYlZpZXcyKSk7CiAgICAgd2luZG93Mi0+c2hvdygpOwogICAgIHdlYlZp
ZXcyLT5zZXRWaXNpYmxlKHRydWUpOwpAQCAtMzMyLDEyICszMzIsMTIgQEAgdm9pZCB0c3RfUVF1
aWNrV2ViVmlldzo6bXVsdGlwbGVXZWJWaWV3cygpCiAgICAgd2ViVmlldzItPnNldFBhcmVudEl0
ZW0obV93aW5kb3ctPnJvb3RJdGVtKCkpOwogCiAgICAgd2ViVmlldzEtPnNldFNpemUoUVNpemVG
KDMwMCwgNDAwKSk7Ci0gICAgd2ViVmlldzEtPmxvYWQoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0
aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL3Njcm9sbC5odG1sIikpKTsKKyAgICB3
ZWJWaWV3MS0+c2V0VXJsKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19T
T1VSQ0VfRElSICIvaHRtbC9zY3JvbGwuaHRtbCIpKSk7CiAgICAgUVZFUklGWSh3YWl0Rm9yTG9h
ZFN1Y2NlZWRlZCh3ZWJWaWV3MS5kYXRhKCkpKTsKICAgICB3ZWJWaWV3MS0+c2V0VmlzaWJsZSh0
cnVlKTsKIAogICAgIHdlYlZpZXcyLT5zZXRTaXplKFFTaXplRigzMDAsIDQwMCkpOwotICAgIHdl
YlZpZXcyLT5sb2FkKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19TT1VS
Q0VfRElSICIvaHRtbC9iYXNpY19wYWdlLmh0bWwiKSkpOworICAgIHdlYlZpZXcyLT5zZXRVcmwo
UVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1s
L2Jhc2ljX3BhZ2UuaHRtbCIpKSk7CiAgICAgUVZFUklGWSh3YWl0Rm9yTG9hZFN1Y2NlZWRlZCh3
ZWJWaWV3Mi5kYXRhKCkpKTsKICAgICB3ZWJWaWV3Mi0+c2V0VmlzaWJsZSh0cnVlKTsKICAgICBR
VGVzdDo6cVdhaXQoMjAwKTsKQEAgLTM0Nyw3ICszNDcsNyBAQCB2b2lkIHRzdF9RUXVpY2tXZWJW
aWV3OjpzY3JvbGxSZXF1ZXN0KCkKIHsKICAgICB3ZWJWaWV3KCktPnNldFNpemUoUVNpemVGKDMw
MCwgNDAwKSk7CiAKLSAgICB3ZWJWaWV3KCktPmxvYWQoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0
aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL3Njcm9sbC5odG1sIikpKTsKKyAgICB3
ZWJWaWV3KCktPnNldFVybChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNf
U09VUkNFX0RJUiAiL2h0bWwvc2Nyb2xsLmh0bWwiKSkpOwogICAgIFFWRVJJRlkod2FpdEZvckxv
YWRTdWNjZWVkZWQod2ViVmlldygpKSk7CiAKICAgICAvLyBDT01QQVJFIHdpdGggdGhlIHBvc2l0
aW9uIHJlcXVlc3RlZCBpbiB0aGUgaHRtbApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBlN2EyNWUuLmRmNDViMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0w
Mi0yNyAgTWFoZXNoIEt1bGthcm5pICA8bWFoZXNoLmt1bGthcm5pQG5va2lhLmNvbT4KKworICAg
ICAgICBbUXRdIEFsbG93IHJlYWQvd3JpdGUgdG8gdGhlIFdlYlZpZXcudXJsIHByb3BlcnR5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBNaW5pQnJv
d3NlciB0byB1c2UgV2ViVmlldy51cmwgcHJvcGVydHkgYW5kIHJlbW92ZSBXZWJWaWV3LmxvYWQg
dXNhZ2UuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWw6
CisKIDIwMTItMDItMjcgIEdyZWcgQmlsbG9jayAgPGdiaWxsb2NrQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgQWRkIG1vcmUgdGVzdHMgZm9yIHdlYiBpbnRlbnRzCmRpZmYgLS1naXQgYS9Ub29scy9N
aW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwgYi9Ub29scy9NaW5pQnJvd3Nlci9x
dC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKaW5kZXggMzI2OGQwMy4uYWUxZjlmMiAxMDA2NDQKLS0t
IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCisrKyBiL1Rvb2xz
L01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbApAQCAtMzksNyArMzksNyBAQCBS
ZWN0YW5nbGUgewogICAgIHNpZ25hbCBuZXdXaW5kb3coc3RyaW5nIHVybCkKIAogICAgIGZ1bmN0
aW9uIGxvYWQoYWRkcmVzcykgewotICAgICAgICB3ZWJWaWV3LmxvYWQoYWRkcmVzcykKKyAgICAg
ICAgd2ViVmlldy51cmwgPSBhZGRyZXNzCiAgICAgfQogCiAgICAgZnVuY3Rpb24gcmVsb2FkKCkg
ewpAQCAtMjgzLDcgKzI4Myw3IEBAIFJlY3RhbmdsZSB7CiAKICAgICAgICAgICAgICAgICBLZXlz
Lm9uUmV0dXJuUHJlc3NlZDp7CiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJnb2lu
ZyB0bzogIiwgYWRkcmVzc0xpbmUudGV4dCkKLSAgICAgICAgICAgICAgICAgICAgd2ViVmlldy5s
b2FkKHV0aWxzLnVybEZyb21Vc2VySW5wdXQoYWRkcmVzc0xpbmUudGV4dCkpCisgICAgICAgICAg
ICAgICAgICAgIHdlYlZpZXcudXJsID0gdXRpbHMudXJsRnJvbVVzZXJJbnB1dChhZGRyZXNzTGlu
ZS50ZXh0KQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137613</attachid>
            <date>2012-04-17 15:02:51 -0700</date>
            <delta_ts>2012-04-18 23:04:22 -0700</delta_ts>
            <desc>Makes the url property reflect the url set by the user, which may be changed by the webview.</desc>
            <filename>url.patch</filename>
            <type>text/plain</type>
            <size>3303</size>
            <attacher name="Marcelo Lira">marcelo.lira</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CmluZGV4IDJiMGM1ZjkuLjEyNDAxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNDY1LDYgKzQ2NSwxNCBAQCBRUmVjdCBR
UXVpY2tXZWJWaWV3UHJpdmF0ZTo6dmlzaWJsZUNvbnRlbnRzUmVjdCgpIGNvbnN0CiAgICAgcmV0
dXJuIHEtPm1hcFJlY3RUb1dlYkNvbnRlbnQodmlzaWJsZVJlY3QpLnRvQWxpZ25lZFJlY3QoKTsK
IH0KIAordm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlVXJsKGNvbnN0IFFVcmwmIHVy
bCkKK3sKKyAgICBpZiAobV91cmwgPT0gdXJsKQorICAgICAgICByZXR1cm47CisgICAgbV91cmwg
PSB1cmw7CisgICAgZW1pdCBxX3B0ci0+dXJsQ2hhbmdlZCgpOworfQorCiBXZWJDb3JlOjpJbnRT
aXplIFFRdWlja1dlYlZpZXdQcml2YXRlOjp2aWV3U2l6ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFdlYkNvcmU6OkludFNpemUocGFnZVZpZXctPndpZHRoKCksIHBhZ2VWaWV3LT5oZWlnaHQoKSk7
CkBAIC02MTQsNiArNjIyLDExIEBAIHZvaWQgUVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6
OmxvYWREaWRDb21taXQoKQogewogICAgIC8vIER1ZSB0byBlbnRlcmluZyBwcm92aXNpb25hbCBs
b2FkIGJlZm9yZSBjb21taXR0aW5nLCB3ZQogICAgIC8vIG1pZ2h0IGFjdHVhbGx5IGJlIHN1c3Bl
bmRlZCBoZXJlLgorICAgIFJlZlB0cjxXZWJGcmFtZVByb3h5PiBtYWluRnJhbWUgPSB3ZWJQYWdl
UHJveHktPm1haW5GcmFtZSgpOworICAgIFFfQVNTRVJUKG1haW5GcmFtZSk7CisgICAgLy8gUVdl
YlZpZXc6OnNldFVybCBpcyBub3QgdXNlZCBoZXJlIGJlY2F1c2Ugd2UgZG9uJ3QKKyAgICAvLyB3
YW50IHRvIGdldCBhIHJlZGlyZWN0ZWQgcGFnZSBsb2FkZWQgdHdpY2UuCisgICAgdXBkYXRlVXJs
KFFVcmwobWFpbkZyYW1lLT51cmwoKSkpOwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXdGbGlja2Fi
bGVQcml2YXRlOjpkaWRGaW5pc2hGaXJzdE5vbkVtcHR5TGF5b3V0KCkKQEAgLTExMTUsMjUgKzEx
MjgsMjIgQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpyZWxvYWQoKQogUVVybCBRUXVpY2tXZWJWaWV3
Ojp1cmwoKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKLSAgICBSZWZQ
dHI8V2ViRnJhbWVQcm94eT4gbWFpbkZyYW1lID0gZC0+d2ViUGFnZVByb3h5LT5tYWluRnJhbWUo
KTsKLSAgICBpZiAoIW1haW5GcmFtZSkKLSAgICAgICAgcmV0dXJuIFFVcmwoKTsKLSAgICByZXR1
cm4gUVVybChRU3RyaW5nKG1haW5GcmFtZS0+dXJsKCkpKTsKKyAgICByZXR1cm4gZC0+bV91cmw7
CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlldzo6c2V0VXJsKGNvbnN0IFFVcmwmIHVybCkKIHsKICAg
ICBRX0QoUVF1aWNrV2ViVmlldyk7CiAKLSAgICBpZiAodXJsLmlzRW1wdHkoKSkKKyAgICBpZiAo
dXJsLmlzRW1wdHkoKSB8fCBkLT5tX3VybCA9PSB1cmwpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmICghaXNDb21wb25lbnRDb21wbGV0ZSgpKSB7Ci0gICAgICAgIGQtPm1fZGVmZXJlZFVybFRv
TG9hZCA9IHVybDsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBkLT51cGRhdGVVcmwodXJs
KTsKIAotICAgIGQtPndlYlBhZ2VQcm94eS0+bG9hZFVSTCh1cmwudG9TdHJpbmcoKSk7CisgICAg
aWYgKGlzQ29tcG9uZW50Q29tcGxldGUoKSkKKyAgICAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2Fk
VVJMKHVybC50b1N0cmluZygpKTsKKyAgICBlbHNlCisgICAgICAgIGQtPm1fZGVmZXJlZFVybFRv
TG9hZCA9IHVybDsKIH0KIAogUVVybCBRUXVpY2tXZWJWaWV3OjppY29uKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3Au
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApp
bmRleCBhZDdiMmQwLi4xMTNkMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBAIC0xMjQsNiArMTI0LDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzZXREaWFsb2dBY3RpdmUoYm9vbCBhY3RpdmUpIHsgbV9kaWFsb2dBY3Rp
dmUgPSBhY3RpdmU7IH0KIAorICAgIHZvaWQgdXBkYXRlVXJsKGNvbnN0IFFVcmwmIHVybCk7CisK
ICAgICAvLyBQYWdlQ2xpZW50LgogICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBjb25z
dDsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSk7CkBAIC0xNzAsNiArMTcyLDcgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgbV9kaWFsb2dBY3RpdmU7CiAgICAgUVVybCBtX2ljb25VUkw7CiAgICAgUVVybCBtX2RlZmVy
ZWRVcmxUb0xvYWQ7CisgICAgUVVybCBtX3VybDsKIH07CiAKIGNsYXNzIFFRdWlja1dlYlZpZXdM
ZWdhY3lQcml2YXRlIDogcHVibGljIFFRdWlja1dlYlZpZXdQcml2YXRlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcAppbmRleCAw
MzczZWY0Li4xMjJjOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRXZWJQYWdlTG9hZENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwCkBAIC01OSw3ICs1OSw2IEBAIHZvaWQgUXRXZWJQYWdl
TG9hZENsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShjb25zdCBRVXJsJiB1
cmwpCiB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZSgpCiB7
CiAgICAgZW1pdCBtX3dlYlZpZXctPm5hdmlnYXRpb25IaXN0b3J5Q2hhbmdlZCgpOwotICAgIGVt
aXQgbV93ZWJWaWV3LT51cmxDaGFuZ2VkKCk7CiAgICAgZW1pdCBtX3dlYlZpZXctPnRpdGxlQ2hh
bmdlZCgpOwogICAgIG1fd2ViVmlldy0+ZF9mdW5jKCktPmxvYWREaWRDb21taXQoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137847</attachid>
            <date>2012-04-18 23:04:22 -0700</date>
            <delta_ts>2012-04-18 23:09:35 -0700</delta_ts>
            <desc>Patch, sans changelogs</desc>
            <filename>0001-Qt-Make-the-web-view-s-url-property-follow-the-activ.patch</filename>
            <type>text/plain</type>
            <size>20291</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">RnJvbSA5N2RkYzA2MzA2ZTlhMjJiYzU0YWQ2NmUxZWU0NWU0ZWYzYzU2MWQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9yPTIwQXJuZT0yMFZlc3RiPUMzPUI4Pz0g
PHRvcmFybnZAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE5IEFwciAyMDEyIDA3OjMyOjI2ICswMjAw
ClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBNYWtlIHRoZSB3ZWIgdmlldydzIHVybCBwcm9wZXJ0eSBm
b2xsb3cgdGhlIGFjdGl2ZSB1cmwKClRoZSB1cmwgcHJvcGVydHkgb2YgdGhlIHdlYnZpZXcgbm93
IHJlZmxlY3RzIHRoZSAnYWN0aXZlJyB1cmwgb2YgdGhlCnBhZ2UsIHdoaWNoIG1hcHMgdG8gZWl0
aGVyIHRoZSBjdXJyZW5seSBsb2FkaW5nIHVybCwgaW4gdGhlIGNhc2Ugb2YKYW4gb25nb2luZyBs
b2FkLCBvciB0aGUgcmVzdWx0IG9mIGEgbG9hZCwgZXZlbiB3aGVuIHRoZSBsb2FkIGZhaWxlZC4K
CkluIHByYWN0aWNlIHRoaXMgbWVhbnMgdGhhdCBzZXR0aW5nIHRoZSB1cmwgdGhvdWdoIFFNTCwg
b3IgbmF2aWdhdGluZwp0byBhIG5ldyB1cmwgaW4gdGhlIHBhZ2UgYnkgZS5nIGNsaWNraW5nLCB3
aWxsIGJvdGggaW5zdGFudGx5IGNoYW5nZQp0aGUgdXJsLXByb3BlcnR5IG9mIHRoZSB3ZWJ2aWV3
IHRvIHRoZSB0YXJnZXQgdXJsLiBUaGlzIGRpZmZlcnMgZnJvbQplYXJsaWVyIGJlaGF2aW9yLCB3
aGVyZSB3ZSB3b3VsZCB1cGRhdGUgdGhlIHVybCB3aGVuIHRoZSBsb2FkCmNvbW1pdHRlZC4KCkFu
IG9wdGlvbmFsIGFyZ3VtZW50IGlzIGFkZGVkIHRvIGxvYWRIdG1sKCksIHRvIGFsbG93IHNldHRp
bmcKdGhlIHVucmVhY2hhYmxlIHVybCB3aGVuIHByb3ZpZGluZyByZXBsYWNlbWVudCBjb250ZW50
IGZvciBmYWlsZWQKbG9hZHMuCgpBIHNsaWdodCBjaGFuZ2UgaW4gdGhlIGFjdGl2ZVVybCgpIGlt
cGxlbWVudGF0aW9uIGlzIGFsc28gZG9uZSwKd2hlcmUgd2Ugbm93IGZhdm91ciB0aGUgdXJsIG9m
IGFuIHBlbmRpbmcgQVBJIHJlcXVlc3QsIGV2ZW4gd2hlbgp3ZSBkb24ndCBoYXZlIGEgbWFpbmZy
YW1lIHlldC4KCkZpbmFsbHksIHRoZSBsb2NhdGlvbiBiYXIgaW4gdGhlIG1pbmlicm93c2VyIGlz
IHVwZGF0ZWQgdG8gYmVoYXZlCmEgYml0IG1vcmUgbGlrZSBub3JtYWwgYnJvd3NlcnMgaW4gdGVy
bXMgb2Ygd2hlbiB0aGUgdXJsIHdpbGwgY2hhbmdlCmFuZCBob3cgYWN0aXZlIGZvY3VzIGlzIGhh
bmRsZWQuCi0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcCAgfCAgIDM4ICsrKysrKysrKysrKystLS0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oICB8ICAgIDIgKy0KIC4uLi9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybyAgICAgIHwgICAgNyArLS0tCiAuLi4vVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybyAgICB8ICAgMTcgKy0tLS0tLS0KIC4u
Li9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZFVybC5xbWwgIHwgICA0NCAr
KysrKysrKysrKysrKysrKysrKwogLi4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vbGlu
ay5odG1sICAgICAgICAgfCAgICA2ICsrKwogLi4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21t
b24vcmVkaXJlY3QuaHRtbCAgICAgfCAgICA4ICsrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwICAgfCAgIDM2ICsrKysrKysrKysrKysrLS0K
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmggIHwgICAg
NCArLQogVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sICAgICAgICAg
fCAgIDI3ICsrKysrKysrKy0tLQogMTEgZmlsZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKyks
IDQ2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL2xpbmsuaHRtbAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29t
bW9uL3JlZGlyZWN0Lmh0bWwKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCAyYjBjNWY5Li45MjlkYzBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTQ5LDYg
KzQ5LDcgQEAKICNpbmNsdWRlIDxRdFF1aWNrL1FRdWlja0NhbnZhcz4KICNpbmNsdWRlIDxXZWJD
b3JlL0ludFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9LVVJMLmg+CiAjaW5jbHVkZSA8V0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oPgog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
QEAgLTE1Niw2ICsxNTcsNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpvbkNvbXBvbmVu
dENvbXBsZXRlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcV9wdHItPnNldFVybChtX2RlZmVy
ZWRVcmxUb0xvYWQpOworICAgIG1fZGVmZXJlZFVybFRvTG9hZCA9IFFVcmwoKTsKIH0KIAogdm9p
ZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0TmVlZHNEaXNwbGF5KCkKQEAgLTExMDgsNiArMTEx
MCwxNyBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OnN0b3AoKQogdm9pZCBRUXVpY2tXZWJWaWV3Ojpy
ZWxvYWQoKQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKKworICAgIGlmIChkLT53ZWJQYWdl
UHJveHktPm1haW5GcmFtZSgpICYmICFkLT53ZWJQYWdlUHJveHktPm1haW5GcmFtZSgpLT51bnJl
YWNoYWJsZVVSTCgpLmlzRW1wdHkoKQorICAgICAgICAgICAgJiYgZC0+d2ViUGFnZVByb3h5LT5t
YWluRnJhbWUoKS0+dXJsKCkgIT0gYmxhbmtVUkwoKSkgeworICAgICAgICAvLyBXZSBoYXZlIGFu
IHVucmVhY2hhYmxlIHVybCwgYnV0IGhhdmVuJ3QgbG9hZGVkIGFsdGVybmF0aXZlIGNvbnRlbnQK
KyAgICAgICAgLy8gZm9yIGl0IChhbiBlcnJvciBwYWdlIGVnLiksIHNvIFdlYkNvcmUgZG9lc24n
dCBrbm93IGFib3V0IHRoZSB1bnJlYWNoYWJsZQorICAgICAgICAvLyB1cmwsIGFuZCB3aWxsIHRy
eSB0byByZWxvYWQgdGhlIGN1cnJlbnRseSBjb21taXRlZCB1cmwgaW5zdGVhZC4gV2UgZG9uJ3QK
KyAgICAgICAgLy8gd2FudCB0aGF0LCBzbyB3ZSBvdmVycmlkZSB0aGUgcmVsb2FkIGhlcmUgYnkg
ZG9pbmcgYSBtYW51YWwgbG9hZC4KKyAgICAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2FkVVJMKGQt
PndlYlBhZ2VQcm94eS0+bWFpbkZyYW1lKCktPnVucmVhY2hhYmxlVVJMKCkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgY29uc3QgYm9vbCByZWxvYWRGcm9tT3JpZ2luID0gdHJ1ZTsK
ICAgICBkLT53ZWJQYWdlUHJveHktPnJlbG9hZChyZWxvYWRGcm9tT3JpZ2luKTsKIH0KQEAgLTEx
MTUsMTAgKzExMjgsMTEgQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpyZWxvYWQoKQogUVVybCBRUXVp
Y2tXZWJWaWV3Ojp1cmwoKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsK
LSAgICBSZWZQdHI8V2ViRnJhbWVQcm94eT4gbWFpbkZyYW1lID0gZC0+d2ViUGFnZVByb3h5LT5t
YWluRnJhbWUoKTsKLSAgICBpZiAoIW1haW5GcmFtZSkKLSAgICAgICAgcmV0dXJuIFFVcmwoKTsK
LSAgICByZXR1cm4gUVVybChRU3RyaW5nKG1haW5GcmFtZS0+dXJsKCkpKTsKKworICAgIGlmICgh
aXNDb21wb25lbnRDb21wbGV0ZSgpKQorICAgICAgICByZXR1cm4gZC0+bV9kZWZlcmVkVXJsVG9M
b2FkOworCisgICAgcmV0dXJuIFFVcmwoUVN0cmluZyhkLT53ZWJQYWdlUHJveHktPmFjdGl2ZVVS
TCgpKSk7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlldzo6c2V0VXJsKGNvbnN0IFFVcmwmIHVybCkK
QEAgLTExMzAsMTAgKzExNDQsMTEgQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpzZXRVcmwoY29uc3Qg
UVVybCYgdXJsKQogCiAgICAgaWYgKCFpc0NvbXBvbmVudENvbXBsZXRlKCkpIHsKICAgICAgICAg
ZC0+bV9kZWZlcmVkVXJsVG9Mb2FkID0gdXJsOwotICAgICAgICByZXR1cm47CisgICAgfSBlbHNl
IHsKKyAgICAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2FkVVJMKHVybC50b1N0cmluZygpKTsKICAg
ICB9CiAKLSAgICBkLT53ZWJQYWdlUHJveHktPmxvYWRVUkwodXJsLnRvU3RyaW5nKCkpOworICAg
IGVtaXQgdXJsQ2hhbmdlZCgpOwogfQogCiBRVXJsIFFRdWlja1dlYlZpZXc6Omljb24oKSBjb25z
dApAQCAtMTQyNywxMiArMTQ0MiwxOSBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OmhhbmRsZUZsaWNr
YWJsZU1vdXNlUmVsZWFzZShjb25zdCBRUG9pbnRGJiBwb3NpdGlvbiwgcWludDY0CiAgICAgRXh0
ZXJuYWwgb2JqZWN0cyBzdWNoIGFzIHN0eWxlc2hlZXRzIG9yIGltYWdlcyByZWZlcmVuY2VkIGlu
IHRoZSBIVE1MCiAgICAgZG9jdW1lbnQgYXJlIGxvY2F0ZWQgcmVsYXRpdmUgdG8gXGEgYmFzZVVy
bC4KIAorICAgIElmIGFuIFxhIHVucmVhY2hhYmxlVXJsIGlzIHBhc3NlZCBpdCdzIHVzZWQgYXMg
dGhlIHVybCBmb3IgdGhlIGxvYWRlZAorICAgIGNvbnRlbnQuIFRoaXMgaXMgdHlwaWNhbGx5IHVz
ZWQgdG8gZGlzcGxheSBlcnJvciBwYWdlcyBmb3IgYSBmYWlsZWQKKyAgICBsb2FkLgorCiAgICAg
XHNhIGxvYWQoKQogKi8KLXZvaWQgUVF1aWNrV2ViVmlldzo6bG9hZEh0bWwoY29uc3QgUVN0cmlu
ZyYgaHRtbCwgY29uc3QgUVVybCYgYmFzZVVybCkKK3ZvaWQgUVF1aWNrV2ViVmlldzo6bG9hZEh0
bWwoY29uc3QgUVN0cmluZyYgaHRtbCwgY29uc3QgUVVybCYgYmFzZVVybCwgY29uc3QgUVVybCYg
dW5yZWFjaGFibGVVcmwpCiB7CiAgICAgUV9EKFFRdWlja1dlYlZpZXcpOwotICAgIGQtPndlYlBh
Z2VQcm94eS0+bG9hZEhUTUxTdHJpbmcoaHRtbCwgYmFzZVVybC50b1N0cmluZygpKTsKKyAgICBp
ZiAodW5yZWFjaGFibGVVcmwuaXNWYWxpZCgpKQorICAgICAgICBkLT53ZWJQYWdlUHJveHktPmxv
YWRBbHRlcm5hdGVIVE1MU3RyaW5nKGh0bWwsIGJhc2VVcmwudG9TdHJpbmcoKSwgdW5yZWFjaGFi
bGVVcmwudG9TdHJpbmcoKSk7CisgICAgZWxzZQorICAgICAgICBkLT53ZWJQYWdlUHJveHktPmxv
YWRIVE1MU3RyaW5nKGh0bWwsIGJhc2VVcmwudG9TdHJpbmcoKSk7CiB9CiAKIFFQb2ludEYgUVF1
aWNrV2ViVmlldzo6cGFnZUl0ZW1Qb3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggZmM4ZTNiMy4uYTgyM2ZkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCkBA
IC0xNDIsNyArMTQyLDcgQEAgcHVibGljOgogICAgIFFQb2ludEYgcGFnZUl0ZW1Qb3MoKTsKIAog
cHVibGljIFFfU0xPVFM6Ci0gICAgdm9pZCBsb2FkSHRtbChjb25zdCBRU3RyaW5nJiBodG1sLCBj
b25zdCBRVXJsJiBiYXNlVXJsID0gUVVybCgpKTsKKyAgICB2b2lkIGxvYWRIdG1sKGNvbnN0IFFT
dHJpbmcmIGh0bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwgPSBRVXJsKCksIGNvbnN0IFFVcmwmIHVu
cmVhY2hhYmxlVXJsID0gUVVybCgpKTsKIAogICAgIHZvaWQgZ29CYWNrKCk7CiAgICAgdm9pZCBn
b0ZvcndhcmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybwppbmRleCA1OWEz
Y2E1Li45OGRhOGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm8KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IucHJvCkBAIC0x
Niw5ICsxNiw0IEBAIERFRklORVMgKz0gSU1QT1JUX0RJUj1cIlxcXCIkJHtST09UX0JVSUxEX0RJ
Un0kJHtRTUFLRV9ESVJfU0VQfWltcG9ydHNcXFwiXCIKIAogT1RIRVJfRklMRVMgKz0gXAogICAg
IERlc2t0b3BCZWhhdmlvci9EZXNrdG9wV2ViVmlldy5xbWwgXAotICAgIERlc2t0b3BCZWhhdmlv
ci90c3RfbGlua0hvdmVyZWQucW1sIFwKLSAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X2xvYWRIdG1s
LnFtbCBcCi0gICAgRGVza3RvcEJlaGF2aW9yL3RzdF9tZXNzYWdpbmcucW1sIFwKLSAgICBEZXNr
dG9wQmVoYXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sIFwKLSAgICBEZXNrdG9wQmVo
YXZpb3IvdHN0X3NpbmdsZUZpbGV1cGxvYWQucW1sIFwKLSAgICBEZXNrdG9wQmVoYXZpb3IvdHN0
X211bHRpRmlsZXVwbG9hZC5xbWwKKyAgICBEZXNrdG9wQmVoYXZpb3IvdHN0XyoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmll
dy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dl
YlZpZXcucHJvCmluZGV4IDU3MzA3ZjAuLjBmZDI0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy5wcm8KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybwpA
QCAtMTMsMTkgKzEzLDQgQEAgUVQgKz0gcW1sdGVzdAogREVGSU5FUyArPSBRVUlDS19URVNUX1NP
VVJDRV9ESVI9XCJcXFwiJCRQV0QkJHtRTUFLRV9ESVJfU0VQfVdlYlZpZXdcXFwiXCIKIERFRklO
RVMgKz0gSU1QT1JUX0RJUj1cIlxcXCIkJHtST09UX0JVSUxEX0RJUn0kJHtRTUFLRV9ESVJfU0VQ
fWltcG9ydHNcXFwiXCIKIAotT1RIRVJfRklMRVMgKz0gXAotICAgIFdlYlZpZXcvdHN0X2Zhdklj
b25Mb2FkLnFtbCBcCi0gICAgV2ViVmlldy90c3RfZG93bmxvYWQucW1sIFwKLSAgICBXZWJWaWV3
L3RzdF9nZW9wZXJtaXNzaW9uLnFtbCBcCi0gICAgV2ViVmlldy90c3RfaXRlbVNlbGVjdG9yLnFt
bCBcCi0gICAgV2ViVmlldy90c3RfamF2YVNjcmlwdERpYWxvZ3MucW1sIFwKLSAgICBXZWJWaWV3
L3RzdF9sb2FkRmFpbC5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2xvYWRJZ25vcmUucW1sIFwKLSAg
ICBXZWJWaWV3L3RzdF9sb2FkSHRtbC5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2xvYWRQcm9ncmVz
cy5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2xvYWRQcm9ncmVzc1NpZ25hbC5xbWwgXAotICAgIFdl
YlZpZXcvdHN0X3ByZWZlcmVuY2VzLnFtbCBcCi0gICAgV2ViVmlldy90c3RfcHJvcGVydGllcy5x
bWwgXAotICAgIFdlYlZpZXcvdHN0X3RpdGxlQ2hhbmdlZC5xbWwgXAotICAgIFdlYlZpZXcvdHN0
X2FwcGxpY2F0aW9uU2NoZW1lLnFtbCBcCi0gICAgV2ViVmlldy90c3Rfb3JpZ2luLnFtbAorT1RI
RVJfRklMRVMgKz0gV2ViVmlldy90c3RfKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkVXJsLnFtbCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
bG9hZFVybC5xbWwKaW5kZXggN2FiNjliZC4uNWY1NzcxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkVXJs
LnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L1dlYlZpZXcvdHN0X2xvYWRVcmwucW1sCkBAIC0xMCw2ICsxMCw4IEBAIFRlc3RXZWJWaWV3IHsK
ICAgICBwcm9wZXJ0eSBpbnQgbnVtTG9hZFN0YXJ0ZWQ6IDAKICAgICBwcm9wZXJ0eSBpbnQgbnVt
TG9hZFN1Y2NlZWRlZDogMAogCisgICAgZm9jdXM6IHRydWUKKwogICAgIG9uTG9hZFByb2dyZXNz
Q2hhbmdlZDogewogICAgICAgICBpZiAod2F0Y2hQcm9ncmVzcyAmJiB3ZWJWaWV3LmxvYWRQcm9n
cmVzcyAhPSAxMDApIHsKICAgICAgICAgICAgIHdhdGNoUHJvZ3Jlc3MgPSBmYWxzZQpAQCAtMjcs
NiArMjksOCBAQCBUZXN0V2ViVmlldyB7CiAgICAgVGVzdENhc2UgewogICAgICAgICBpZDogdGVz
dAogICAgICAgICBuYW1lOiAiV2ViVmlld0xvYWRVcmwiCisgICAgICAgIHdoZW46IHdpbmRvd1No
b3duCisKICAgICAgICAgZnVuY3Rpb24gdGVzdF9sb2FkSWdub3JlRW1wdHlVcmwoKSB7CiAgICAg
ICAgICAgICB2YXIgdXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1sIikK
IApAQCAtNTgsNSArNjIsNDUgQEAgVGVzdFdlYlZpZXcgewogICAgICAgICAgICAgdmVyaWZ5KCF3
YXRjaFByb2dyZXNzKQogICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgdXJsKQogICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF91cmxQcm9wZXJ0eSgpIHsKKyAgICAgICAg
ICAgIHZhciB1cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rlc3QxLmh0bWwiKQorCisg
ICAgICAgICAgICB3ZWJWaWV3LnVybCA9IHVybAorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3
LnVybCwgdXJsKQorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVk
ZWQoKSkKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkKKworICAgICAgICAg
ICAgdmFyIGJvZ3VzU2l0ZSA9ICJodHRwOi8vd3d3LnNvbWVzaXRldGhhdGRvZXNub3RleGlzdC5h
YmMvIgorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBib2d1c1NpdGUKKyAgICAgICAgICAgIGNv
bXBhcmUod2ViVmlldy51cmwsIGJvZ3VzU2l0ZSkKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3
LndhaXRGb3JMb2FkRmFpbGVkKCkpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCBi
b2d1c1NpdGUpCisgICAgICAgICAgICB3ZWJWaWV3LmxvYWRIdG1sKCJsb2FkIGZhaWxlZCIsIGJv
Z3VzU2l0ZSwgYm9ndXNTaXRlKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgYm9n
dXNTaXRlKQorCisgICAgICAgICAgICB2YXIgZGF0YVVybCA9ICJkYXRhOnRleHQvaHRtbCxmb28i
CisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IGRhdGFVcmwKKyAgICAgICAgICAgIGNvbXBhcmUo
d2ViVmlldy51cmwsIGRhdGFVcmwpCisKKyAgICAgICAgICAgIHZhciByZWRpcmVjdFVybCA9IFF0
LnJlc29sdmVkVXJsKCIuLi9jb21tb24vcmVkaXJlY3QuaHRtbCIpCisgICAgICAgICAgICB3ZWJW
aWV3LnVybCA9IHJlZGlyZWN0VXJsCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCBy
ZWRpcmVjdFVybCkKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2Vl
ZGVkKCkpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCB1cmwpCisKKyAgICAgICAg
ICAgIHZhciBsaW5rVXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9saW5rLmh0bWwiKQor
ICAgICAgICAgICAgd2ViVmlldy51cmwgPSBsaW5rVXJsCisgICAgICAgICAgICBjb21wYXJlKHdl
YlZpZXcudXJsLCBsaW5rVXJsKQorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxv
YWRTdWNjZWVkZWQoKSkKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIGxpbmtVcmwp
CisgICAgICAgICAgICBrZXlQcmVzcyhRdC5LZXlfUmV0dXJuKSAvLyBMaW5rIGlzIGZvY3VzZWQK
KyAgICAgICAgICAgIHdlYlZpZXcubG9hZGluZ0NoYW5nZWQuY29ubmVjdChmdW5jdGlvbihsb2Fk
UmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIGxvYWRSZXF1
ZXN0LnVybCkKKyAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCB1cmwpCisgICAg
ICAgICAgICB9KQorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVk
ZWQoKSkKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkKKyAgICAgICAgfQog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvY29tbW9uL2xpbmsuaHRtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL2xpbmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lNzkxYjdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vbGluay5odG1sCkBAIC0w
LDAgKzEsNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxib2R5IG9ubG9hZD0iZG9jdW1l
bnQubGlua3NbJ2ZvbyddLmZvY3VzKCk7Ij4KKzxhIG5hbWU9ImZvbyIgaHJlZj0idGVzdDEuaHRt
bCI+TGluazwvYT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3JlZGlyZWN0Lmh0bWwgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9yZWRp
cmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmYTc3ZGIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL2NvbW1vbi9yZWRpcmVjdC5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0i
MDsgdXJsPXRlc3QxLmh0bWwiCis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMTJkOTYxMy4uOTBj
MmRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY1
NSwxMyArNjU1LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsR29Ub0JhY2tGb3J3YXJkTGlz
dEl0ZW0odWludDY0X3QgaXRlbUlELCBDb3JlSVBDOjpBcmd1bWVuCiAKIFN0cmluZyBXZWJQYWdl
UHJveHk6OmFjdGl2ZVVSTCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX21haW5GcmFtZSkKLSAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwotCiAgICAgLy8gSWYgdGhlcmUgaXMgYSBjdXJyZW50bHkgcGVu
ZGluZyB1cmwsIGl0IGlzIHRoZSBhY3RpdmUgVVJMLgogICAgIGlmICghbV9wZW5kaW5nQVBJUmVx
dWVzdFVSTC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG1fcGVuZGluZ0FQSVJlcXVlc3RVUkw7
CiAKKyAgICBpZiAoIW1fbWFpbkZyYW1lKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKICAg
ICBpZiAoIW1fbWFpbkZyYW1lLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIG1fbWFpbkZyYW1lLT51bnJlYWNoYWJsZVVSTCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHAKaW5kZXggMDM3M2Vm
NC4uY2VmMjhjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2Vi
UGFnZUxvYWRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YlBhZ2VMb2FkQ2xpZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQCBRdFdlYlBhZ2VMb2FkQ2xpZW50
OjpRdFdlYlBhZ2VMb2FkQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBRUXVpY2tXZWJWaWV3KiB3
ZWJWaQogICAgIGxvYWRDbGllbnQudmVyc2lvbiA9IGtXS1BhZ2VMb2FkZXJDbGllbnRDdXJyZW50
VmVyc2lvbjsKICAgICBsb2FkQ2xpZW50LmNsaWVudEluZm8gPSB0aGlzOwogICAgIGxvYWRDbGll
bnQuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSA9IGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU7CisgICAgbG9hZENsaWVudC5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSA9IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lOwogICAgIGxvYWRDbGllbnQuZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZFdpdGhFcnJvckZvckZyYW1lID0gZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZy
YW1lOwogICAgIGxvYWRDbGllbnQuZGlkQ29tbWl0TG9hZEZvckZyYW1lID0gZGlkQ29tbWl0TG9h
ZEZvckZyYW1lOwogICAgIGxvYWRDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0gZGlkRmlu
aXNoTG9hZEZvckZyYW1lOwpAQCAtNTQsMTIgKzU1LDE4IEBAIHZvaWQgUXRXZWJQYWdlTG9hZENs
aWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShjb25zdCBRVXJsJiB1cmwpCiB7
CiAgICAgUVdlYkxvYWRSZXF1ZXN0IGxvYWRSZXF1ZXN0KHVybCwgUVF1aWNrV2ViVmlldzo6TG9h
ZFN0YXJ0ZWRTdGF0dXMpOwogICAgIG1fd2ViVmlldy0+ZF9mdW5jKCktPmRpZENoYW5nZUxvYWRp
bmdTdGF0ZSgmbG9hZFJlcXVlc3QpOworICAgIGVtaXQgbV93ZWJWaWV3LT51cmxDaGFuZ2VkKCk7
Cit9CisKK3ZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoY29uc3QgUVVybCYgdXJsKQoreworICAgIGVtaXQg
bV93ZWJWaWV3LT51cmxDaGFuZ2VkKCk7CisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1cGRhdGUg
dGhlIGxvYWRpbmcgc3RhdGUgaGVyZSBhcyB3ZWxsPyBXaXRoIGEgcmVkaXJlY3Qgc3RhdHVzPwog
fQogCiB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZSgpCiB7
CiAgICAgZW1pdCBtX3dlYlZpZXctPm5hdmlnYXRpb25IaXN0b3J5Q2hhbmdlZCgpOwotICAgIGVt
aXQgbV93ZWJWaWV3LT51cmxDaGFuZ2VkKCk7CiAgICAgZW1pdCBtX3dlYlZpZXctPnRpdGxlQ2hh
bmdlZCgpOwogICAgIG1fd2ViVmlldy0+ZF9mdW5jKCktPmxvYWREaWRDb21taXQoKTsKIH0KQEAg
LTkwLDE4ICs5NywyOCBAQCB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpc3BhdGNoTG9hZFN1
Y2NlZWRlZCgpCiAgICAgbV93ZWJWaWV3LT5kX2Z1bmMoKS0+bG9hZERpZFN1Y2NlZWQoKTsKIH0K
IAotdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaXNwYXRjaExvYWRGYWlsZWQoV0tFcnJvclJl
ZiBlcnJvcikKK3ZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlzcGF0Y2hMb2FkRmFpbGVkKFdL
RnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IpCiB7CiAgICAgaW50IGVycm9yQ29kZSA9
IFdLRXJyb3JHZXRFcnJvckNvZGUoZXJyb3IpOwogICAgIGlmICh0b0ltcGwoZXJyb3IpLT5wbGF0
Zm9ybUVycm9yKCkuaXNDYW5jZWxsYXRpb24oKSB8fCBlcnJvckNvZGUgPT0ga1dLRXJyb3JDb2Rl
RnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSB8fCBlcnJvckNvZGUgPT0ga1dLRXJy
b3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQpIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQg
TG9hZFN0YXJ0ZWRTdGF0dXMgaGFzIGEgY291bnRlcnBhcnQgd2hlbiBlLmcuIHJlcXVlc3Rpbmcg
YSBkb3dubG9hZC4KICAgICAgICAgZGlzcGF0Y2hMb2FkU3VjY2VlZGVkKCk7CisgICAgICAgIC8v
IFRoZSBhY3RpdmUgdXJsIG1pZ2h0IGhhdmUgY2hhbmdlZCBhcyB3ZWxsCisgICAgICAgIGVtaXQg
bV93ZWJWaWV3LT51cmxDaGFuZ2VkKCk7CisKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFF0V2ViRXJyb3IgcXRFcnJvcihlcnJvcik7CiAgICAgUVdlYkxvYWRSZXF1ZXN0IGxvYWRSZXF1
ZXN0KHF0RXJyb3IudXJsKCksIFFRdWlja1dlYlZpZXc6OkxvYWRGYWlsZWRTdGF0dXMsIHF0RXJy
b3IuZGVzY3JpcHRpb24oKSwgc3RhdGljX2Nhc3Q8UVF1aWNrV2ViVmlldzo6RXJyb3JEb21haW4+
KHF0RXJyb3IudHlwZSgpKSwgcXRFcnJvci5lcnJvckNvZGUoKSk7CiAgICAgZW1pdCBtX3dlYlZp
ZXctPmxvYWRpbmdDaGFuZ2VkKCZsb2FkUmVxdWVzdCk7CisKKyAgICAvLyBUaGUgdXNlciBkaWQg
bm90IHNldCBhbHRlcm5hdGUgY29udGVudCB3aXRoIGFuIHVucmVhY2hhYmxlIHVybCBhcyBhCisg
ICAgLy8gcmVzcG9uc2UgdG8gdGhlIGZhaWxlZCBsb2FkLCBzbyB3ZSBzZXQgdGhlIHVybCBtYW51
YWxseSBoZXJlLCBhbmQKKyAgICAvLyBkZXRlY3QgdGhpcyBjYXNlIGluIHJlbG9hZCgpIHRvIGVu
c3VyZSB3ZSB3aWxsIHJlbG9hZCB0aGUgZmFpbGVkIHVybC4KKyAgICBXZWJGcmFtZVByb3h5KiB3
a2ZyYW1lID0gdG9JbXBsKGZyYW1lKTsKKyAgICBpZiAod2tmcmFtZS0+dW5yZWFjaGFibGVVUkwo
KS5pc0VtcHR5KCkpCisgICAgICAgIHdrZnJhbWUtPnNldFVucmVhY2hhYmxlVVJMKHF0RXJyb3Iu
dXJsKCkudG9TdHJpbmcoKSk7CiB9CiAKIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6c2V0TG9h
ZFByb2dyZXNzKGludCBsb2FkUHJvZ3Jlc3MpCkBAIC0xMjYsMTEgKzE0MywyMiBAQCB2b2lkIFF0
V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmCiAgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5k
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHFVcmwpOwogfQogCit2b2lkIFF0V2ViUGFn
ZUxvYWRDbGllbnQ6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIFdlYkZyYW1lUHJveHkqIHdrZnJhbWUgPSB0b0ltcGwoZnJhbWUp
OworICAgIFFTdHJpbmcgdXJsU3RyKHdrZnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkpOworICAgIFFV
cmwgcVVybCA9IHVybFN0cjsKKyAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbykt
PmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHFVcmwp
OworfQorCiB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZEZhaWxQcm92aXNpb25hbExvYWRX
aXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYg
ZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdL
RnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKLSAgICB0b1F0V2ViUGFn
ZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpc3BhdGNoTG9hZEZhaWxlZChlcnJvcik7CisKKyAg
ICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpc3BhdGNoTG9hZEZhaWxlZChm
cmFtZSwgZXJyb3IpOwogfQogCiB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZENvbW1pdExv
YWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKQEAgLTE1MSw3ICsxNzksNyBAQCB2b2lkIFF0V2ViUGFnZUxvYWRD
bGllbnQ6OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVm
IGZyYQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0
dXJuOwotICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlzcGF0Y2hMb2Fk
RmFpbGVkKGVycm9yKTsKKyAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRp
c3BhdGNoTG9hZEZhaWxlZChmcmFtZSwgZXJyb3IpOwogfQogCiB2b2lkIFF0V2ViUGFnZUxvYWRD
bGllbnQ6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwg
V0tGcmFtZVJlZiBmcmFtZSwgV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuaAppbmRleCA2NzI1OTdhLi40
ODM1MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdl
TG9hZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VM
b2FkQ2xpZW50LmgKQEAgLTM2LDYgKzM2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZv
aWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShjb25zdCBRVXJsJik7CisgICAgdm9p
ZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShjb25z
dCBRVXJsJik7CiAgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoKTsKICAgICB2b2lkIGRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUoKTsKQEAgLTQzLDExICs0NCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
Q2hhbmdlQmFja0ZvcndhcmRMaXN0KCk7CiAKICAgICB2b2lkIGRpc3BhdGNoTG9hZFN1Y2NlZWRl
ZCgpOwotICAgIHZvaWQgZGlzcGF0Y2hMb2FkRmFpbGVkKFdLRXJyb3JSZWYpOworICAgIHZvaWQg
ZGlzcGF0Y2hMb2FkRmFpbGVkKFdLRnJhbWVSZWYsIFdLRXJyb3JSZWYpOwogICAgIHZvaWQgc2V0
TG9hZFByb2dyZXNzKGludCk7CiAKICAgICAvLyBXS1BhZ2VMb2FkQ2xpZW50IGNhbGxiYWNrcy4K
ICAgICBzdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKKyAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tFcnJvclJl
ZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0
aWMgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lk
IGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5p
QnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9x
bWwvQnJvd3NlcldpbmRvdy5xbWwKaW5kZXggMzhmNmFmOS4uM2YzYTFkZCAxMDA2NDQKLS0tIGEv
VG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCisrKyBiL1Rvb2xzL01p
bmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbApAQCAtNDEsMTAgKzQxLDEyIEBAIFJl
Y3RhbmdsZSB7CiAKICAgICBmdW5jdGlvbiBsb2FkKGFkZHJlc3MpIHsKICAgICAgICAgd2ViVmll
dy51cmwgPSBhZGRyZXNzCisgICAgICAgIHdlYlZpZXcuZm9yY2VBY3RpdmVGb2N1cygpCiAgICAg
fQogCiAgICAgZnVuY3Rpb24gcmVsb2FkKCkgewogICAgICAgICB3ZWJWaWV3LnJlbG9hZCgpCisg
ICAgICAgIHdlYlZpZXcuZm9yY2VBY3RpdmVGb2N1cygpCiAgICAgfQogCiAgICAgZnVuY3Rpb24g
Zm9jdXNBZGRyZXNzQmFyKCkgewpAQCAtMjUxLDEwICsyNTMsMTAgQEAgUmVjdGFuZ2xlIHsKICAg
ICAgICAgICAgICAgICAgICAgbGVmdDogcGFyZW50LmxlZnQKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgcmFkaXVzOiAzCi0gICAgICAgICAgICAgICAgd2lkdGg6IHBhcmVudC53
aWR0aCAvIDEwMCAqIHdlYlZpZXcubG9hZFByb2dyZXNzCisgICAgICAgICAgICAgICAgd2lkdGg6
IHBhcmVudC53aWR0aCAvIDEwMCAqIE1hdGgubWF4KDUsIHdlYlZpZXcubG9hZFByb2dyZXNzKQog
ICAgICAgICAgICAgICAgIGNvbG9yOiAiYmx1ZSIKICAgICAgICAgICAgICAgICBvcGFjaXR5OiAw
LjMKLSAgICAgICAgICAgICAgICB2aXNpYmxlOiB3ZWJWaWV3LmxvYWRQcm9ncmVzcyAhPSAxMDAK
KyAgICAgICAgICAgICAgICB2aXNpYmxlOiB3ZWJWaWV3LmxvYWRpbmcKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIEltYWdlIHsKICAgICAgICAgICAgICAgICBpZDogZmF2SWNvbgpAQCAtMjgz
LDggKzI4NSwxMyBAQCBSZWN0YW5nbGUgewogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgICAgIEtleXMub25SZXR1cm5QcmVzc2VkOnsKLSAgICAgICAgICAgICAgICAgICAgY29uc29s
ZS5sb2coImdvaW5nIHRvOiAiLCBhZGRyZXNzTGluZS50ZXh0KQotICAgICAgICAgICAgICAgICAg
ICB3ZWJWaWV3LnVybCA9IHV0aWxzLnVybEZyb21Vc2VySW5wdXQoYWRkcmVzc0xpbmUudGV4dCkK
KyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIk5hdmlnYXRpbmcgdG86ICIsIGFkZHJl
c3NMaW5lLnRleHQpCisgICAgICAgICAgICAgICAgICAgIGxvYWQodXRpbHMudXJsRnJvbVVzZXJJ
bnB1dChhZGRyZXNzTGluZS50ZXh0KSkKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBvbkFjdGl2ZUZvY3VzQ2hhbmdlZDogeworICAgICAgICAgICAgICAgICAgICBpZiAoIWFj
dGl2ZUZvY3VzKQorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHdlYlZpZXcudXJsCiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0zMDEsMTAgKzMw
OCwxNiBAQCBSZWN0YW5nbGUgewogCiAgICAgICAgIG9uVGl0bGVDaGFuZ2VkOiBwYWdlVGl0bGVD
aGFuZ2VkKHRpdGxlKQogICAgICAgICBvblVybENoYW5nZWQ6IHsKLSAgICAgICAgICAgIGFkZHJl
c3NMaW5lLnRleHQgPSB1cmwKKyAgICAgICAgICAgIGlmICghYWRkcmVzc0xpbmUuYWN0aXZlRm9j
dXMpCisgICAgICAgICAgICAgICAgYWRkcmVzc0xpbmUudGV4dCA9IHVybAorCiAgICAgICAgICAg
ICBpZiAob3B0aW9ucy5wcmludExvYWRlZFVybHMpCi0gICAgICAgICAgICAgICAgY29uc29sZS5s
b2coIkxvYWRlZDoiLCB3ZWJWaWV3LnVybC50b1N0cmluZygpKTsKLSAgICAgICAgICAgIGZvcmNl
QWN0aXZlRm9jdXMoKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiV2ViVmlldyB1cmwg
Y2hhbmdlZDoiLCB3ZWJWaWV3LnVybC50b1N0cmluZygpKTsKKyAgICAgICAgfQorCisgICAgICAg
IG9uTG9hZGluZ0NoYW5nZWQ6IHsKKyAgICAgICAgICAgIGlmICghbG9hZGluZyAmJiBsb2FkUmVx
dWVzdC5zdGF0dXMgPT0gV2ViVmlldy5Mb2FkRmFpbGVkU3RhdHVzKQorICAgICAgICAgICAgICAg
IHdlYlZpZXcubG9hZEh0bWwoIkZhaWxlZCB0byBsb2FkICIgKyBsb2FkUmVxdWVzdC51cmwsICIi
LCBsb2FkUmVxdWVzdC51cmwpCiAgICAgICAgIH0KIAogICAgICAgICBleHBlcmltZW50YWwuaXRl
bVNlbGVjdG9yOiBJdGVtU2VsZWN0b3IgeyB9Ci0tIAoxLjcuNy41IChBcHBsZSBHaXQtMjYpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137849</attachid>
            <date>2012-04-18 23:09:35 -0700</date>
            <delta_ts>2012-04-19 16:56:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Qt-Make-the-web-view-s-url-property-follow-the-activ.patch</filename>
            <type>text/plain</type>
            <size>25302</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">RnJvbSA5OTMwZDFmOGNiZDY2NzBmYTBkYmRmNzIzMGY2MjkzYjQwZTYxODNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9yPTIwQXJuZT0yMFZlc3RiPUMzPUI4Pz0g
PHRvcmFybnZAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE5IEFwciAyMDEyIDA3OjMyOjI2ICswMjAw
ClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBNYWtlIHRoZSB3ZWIgdmlldydzIHVybCBwcm9wZXJ0eSBm
b2xsb3cgdGhlIGFjdGl2ZSB1cmwKClRoZSB1cmwgcHJvcGVydHkgb2YgdGhlIHdlYnZpZXcgbm93
IHJlZmxlY3RzIHRoZSAnYWN0aXZlJyB1cmwgb2YgdGhlCnBhZ2UsIHdoaWNoIG1hcHMgdG8gZWl0
aGVyIHRoZSBjdXJyZW5seSBsb2FkaW5nIHVybCwgaW4gdGhlIGNhc2Ugb2YKYW4gb25nb2luZyBs
b2FkLCBvciB0aGUgcmVzdWx0IG9mIGEgbG9hZCwgZXZlbiB3aGVuIHRoZSBsb2FkIGZhaWxlZC4K
CkluIHByYWN0aWNlIHRoaXMgbWVhbnMgdGhhdCBzZXR0aW5nIHRoZSB1cmwgdGhvdWdoIFFNTCwg
b3IgbmF2aWdhdGluZwp0byBhIG5ldyB1cmwgaW4gdGhlIHBhZ2UgYnkgZS5nIGNsaWNraW5nLCB3
aWxsIGJvdGggaW5zdGFudGx5IGNoYW5nZQp0aGUgdXJsLXByb3BlcnR5IG9mIHRoZSB3ZWJ2aWV3
IHRvIHRoZSB0YXJnZXQgdXJsLiBUaGlzIGRpZmZlcnMgZnJvbQplYXJsaWVyIGJlaGF2aW9yLCB3
aGVyZSB3ZSB3b3VsZCB1cGRhdGUgdGhlIHVybCB3aGVuIHRoZSBsb2FkCmNvbW1pdHRlZC4KCkFu
IG9wdGlvbmFsIGFyZ3VtZW50IGlzIGFkZGVkIHRvIGxvYWRIdG1sKCksIHRvIGFsbG93IHNldHRp
bmcKdGhlIHVucmVhY2hhYmxlIHVybCB3aGVuIHByb3ZpZGluZyByZXBsYWNlbWVudCBjb250ZW50
IGZvciBmYWlsZWQKbG9hZHMuCgpBIHNsaWdodCBjaGFuZ2UgaW4gdGhlIGFjdGl2ZVVybCgpIGlt
cGxlbWVudGF0aW9uIGlzIGFsc28gZG9uZSwKd2hlcmUgd2Ugbm93IGZhdm91ciB0aGUgdXJsIG9m
IGFuIHBlbmRpbmcgQVBJIHJlcXVlc3QsIGV2ZW4gd2hlbgp3ZSBkb24ndCBoYXZlIGEgbWFpbmZy
YW1lIHlldC4KCkZpbmFsbHksIHRoZSBsb2NhdGlvbiBiYXIgaW4gdGhlIG1pbmlicm93c2VyIGlz
IHVwZGF0ZWQgdG8gYmVoYXZlCmEgYml0IG1vcmUgbGlrZSBub3JtYWwgYnJvd3NlcnMgaW4gdGVy
bXMgb2Ygd2hlbiB0aGUgdXJsIHdpbGwgY2hhbmdlCmFuZCBob3cgYWN0aXZlIGZvY3VzIGlzIGhh
bmRsZWQuCi0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDU1ICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwICB8ICAgNDQgKysrKysrKysrKysrLS0tLQogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCAgfCAgICAyICst
CiAuLi4vQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm8gICAgICB8ICAg
IDcgKy0tCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybyAg
ICB8ICAgMTcgKy0tLS0tLQogLi4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9s
b2FkVXJsLnFtbCAgfCAgIDQ0ICsrKysrKysrKysrKysrKysKIC4uLi9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvY29tbW9uL2xpbmsuaHRtbCAgICAgICAgIHwgICAgNiArKwogLi4uL0FQSS9xdC90ZXN0
cy9xbWx0ZXN0cy9jb21tb24vcmVkaXJlY3QuaHRtbCAgICAgfCAgICA4ICsrKwogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgfCAgICA2ICstCiAuLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHAgICB8ICAgMzYgKysr
KysrKysrKystLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGll
bnQuaCAgfCAgICA0ICstCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMzIgKysrKysrKysrKysKIFRvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9C
cm93c2VyV2luZG93LnFtbCAgICAgICAgIHwgICAyNyArKysrKysrLS0tCiAxMyBmaWxlcyBjaGFu
Z2VkLCAyMzkgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24v
bGluay5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vcmVkaXJlY3QuaHRtbAoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAx
NzJlYzlmLi4yZjE4ZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTItMDQtMTgg
IFRvciBBcm5lIFZlc3Riw7ggIDx0b3Jhcm52QGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdIE1h
a2UgdGhlIHdlYiB2aWV3J3MgdXJsIHByb3BlcnR5IGZvbGxvdyB0aGUgYWN0aXZlIHVybAorCisg
ICAgICAgIFRoZSB1cmwgcHJvcGVydHkgb2YgdGhlIHdlYnZpZXcgbm93IHJlZmxlY3RzIHRoZSAn
YWN0aXZlJyB1cmwgb2YgdGhlCisgICAgICAgIHBhZ2UsIHdoaWNoIG1hcHMgdG8gZWl0aGVyIHRo
ZSBjdXJyZW5seSBsb2FkaW5nIHVybCwgaW4gdGhlIGNhc2Ugb2YKKyAgICAgICAgYW4gb25nb2lu
ZyBsb2FkLCBvciB0aGUgcmVzdWx0IG9mIGEgbG9hZCwgZXZlbiB3aGVuIHRoZSBsb2FkIGZhaWxl
ZC4KKworICAgICAgICBJbiBwcmFjdGljZSB0aGlzIG1lYW5zIHRoYXQgc2V0dGluZyB0aGUgdXJs
IHRob3VnaCBRTUwsIG9yIG5hdmlnYXRpbmcKKyAgICAgICAgdG8gYSBuZXcgdXJsIGluIHRoZSBw
YWdlIGJ5IGUuZyBjbGlja2luZywgd2lsbCBib3RoIGluc3RhbnRseSBjaGFuZ2UKKyAgICAgICAg
dGhlIHVybC1wcm9wZXJ0eSBvZiB0aGUgd2VidmlldyB0byB0aGUgdGFyZ2V0IHVybC4gVGhpcyBk
aWZmZXJzIGZyb20KKyAgICAgICAgZWFybGllciBiZWhhdmlvciwgd2hlcmUgd2Ugd291bGQgdXBk
YXRlIHRoZSB1cmwgd2hlbiB0aGUgbG9hZAorICAgICAgICBjb21taXR0ZWQuCisKKyAgICAgICAg
QW4gb3B0aW9uYWwgYXJndW1lbnQgaXMgYWRkZWQgdG8gbG9hZEh0bWwoKSwgdG8gYWxsb3cgc2V0
dGluZworICAgICAgICB0aGUgdW5yZWFjaGFibGUgdXJsIHdoZW4gcHJvdmlkaW5nIHJlcGxhY2Vt
ZW50IGNvbnRlbnQgZm9yIGZhaWxlZAorICAgICAgICBsb2Fkcy4KKworICAgICAgICBBIHNsaWdo
dCBjaGFuZ2UgaW4gdGhlIGFjdGl2ZVVybCgpIGltcGxlbWVudGF0aW9uIGlzIGFsc28gZG9uZSwK
KyAgICAgICAgd2hlcmUgd2Ugbm93IGZhdm91ciB0aGUgdXJsIG9mIGFuIHBlbmRpbmcgQVBJIHJl
cXVlc3QsIGV2ZW4gd2hlbgorICAgICAgICB3ZSBkb24ndCBoYXZlIGEgbWFpbmZyYW1lIHlldC4K
KworICAgICAgICBGaW5hbGx5LCB0aGUgbG9jYXRpb24gYmFyIGluIHRoZSBtaW5pYnJvd3NlciBp
cyB1cGRhdGVkIHRvIGJlaGF2ZQorICAgICAgICBhIGJpdCBtb3JlIGxpa2Ugbm9ybWFsIGJyb3dz
ZXJzIGluIHRlcm1zIG9mIHdoZW4gdGhlIHVybCB3aWxsIGNoYW5nZQorICAgICAgICBhbmQgaG93
IGFjdGl2ZSBmb2N1cyBpcyBoYW5kbGVkLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlw
dGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgor
ICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6Om9uQ29tcG9uZW50Q29tcGxldGUpOgorICAg
ICAgICAoUVF1aWNrV2ViVmlldzo6cmVsb2FkKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6OnVy
bCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3OjpzZXRVcmwpOgorICAgICAgICAoUVF1aWNrV2Vi
Vmlldzo6bG9hZEh0bWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
d19wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9w
QmVoYXZpb3IucHJvOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
V2ViVmlldy5wcm86CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9sb2FkVXJsLnFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL2NvbW1vbi9saW5rLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3JlZGlyZWN0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmFjdGl2ZVVSTCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRD
bGllbnQuY3BwOgorICAgICAgICAoUXRXZWJQYWdlTG9hZENsaWVudDo6UXRXZWJQYWdlTG9hZENs
aWVudCk6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRTdGFydFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFF0V2Vi
UGFnZUxvYWRDbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChRdFdlYlBh
Z2VMb2FkQ2xpZW50OjpkaXNwYXRjaExvYWRGYWlsZWQpOgorICAgICAgICAoUXRXZWJQYWdlTG9h
ZENsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAg
ICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50Lmg6CisgICAgICAgIChR
dFdlYlBhZ2VMb2FkQ2xpZW50KToKKwogMjAxMi0wNC0xNiAgQWxleGV5IFByb3NrdXJ5YWtvdiAg
PGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmRQcmludGluZyBtZXNzYWdlIHNob3VsZCBiZSBz
ZW50IHN5bmNocm9ub3VzbHkgd2hlbiBwcmludGluZyB3YXMgaW5pdGlhdGVkIGZyb20gRE9NLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAK
aW5kZXggMmIwYzVmOS4uZmU0MThjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC00NywxMyArNDcsMTUgQEAKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8UXRRbWwv
UVFtbEVuZ2luZT4KICNpbmNsdWRlIDxRdFF1aWNrL1FRdWlja0NhbnZhcz4KKyNpbmNsdWRlIDxX
S09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgotI2luY2x1ZGUgPFdLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0tVUkwuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRp
YyBib29sIHNfZmxpY2thYmxlVmlld3BvcnRFbmFibGVkID0gdHJ1ZTsKQEAgLTE1Niw2ICsxNTgs
NyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpvbkNvbXBvbmVudENvbXBsZXRlKCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgcV9wdHItPnNldFVybChtX2RlZmVyZWRVcmxUb0xvYWQpOwor
ICAgIG1fZGVmZXJlZFVybFRvTG9hZCA9IFFVcmwoKTsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6c2V0TmVlZHNEaXNwbGF5KCkKQEAgLTExMDgsNiArMTExMSwxNyBAQCB2b2lkIFFR
dWlja1dlYlZpZXc6OnN0b3AoKQogdm9pZCBRUXVpY2tXZWJWaWV3OjpyZWxvYWQoKQogewogICAg
IFFfRChRUXVpY2tXZWJWaWV3KTsKKworICAgIGlmIChkLT53ZWJQYWdlUHJveHktPm1haW5GcmFt
ZSgpICYmICFkLT53ZWJQYWdlUHJveHktPm1haW5GcmFtZSgpLT51bnJlYWNoYWJsZVVSTCgpLmlz
RW1wdHkoKQorICAgICAgICAgICAgJiYgZC0+d2ViUGFnZVByb3h5LT5tYWluRnJhbWUoKS0+dXJs
KCkgIT0gYmxhbmtVUkwoKSkgeworICAgICAgICAvLyBXZSBoYXZlIGFuIHVucmVhY2hhYmxlIHVy
bCwgYnV0IGhhdmVuJ3QgbG9hZGVkIGFsdGVybmF0aXZlIGNvbnRlbnQKKyAgICAgICAgLy8gZm9y
IGl0IChhbiBlcnJvciBwYWdlIGVnLiksIHNvIFdlYkNvcmUgZG9lc24ndCBrbm93IGFib3V0IHRo
ZSB1bnJlYWNoYWJsZQorICAgICAgICAvLyB1cmwsIGFuZCB3aWxsIHRyeSB0byByZWxvYWQgdGhl
IGN1cnJlbnRseSBjb21taXRlZCB1cmwgaW5zdGVhZC4gV2UgZG9uJ3QKKyAgICAgICAgLy8gd2Fu
dCB0aGF0LCBzbyB3ZSBvdmVycmlkZSB0aGUgcmVsb2FkIGhlcmUgYnkgZG9pbmcgYSBtYW51YWwg
bG9hZC4KKyAgICAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2FkVVJMKGQtPndlYlBhZ2VQcm94eS0+
bWFpbkZyYW1lKCktPnVucmVhY2hhYmxlVVJMKCkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgY29uc3QgYm9vbCByZWxvYWRGcm9tT3JpZ2luID0gdHJ1ZTsKICAgICBkLT53ZWJQYWdl
UHJveHktPnJlbG9hZChyZWxvYWRGcm9tT3JpZ2luKTsKIH0KQEAgLTExMTUsMTAgKzExMjksMTEg
QEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpyZWxvYWQoKQogUVVybCBRUXVpY2tXZWJWaWV3Ojp1cmwo
KSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKLSAgICBSZWZQdHI8V2Vi
RnJhbWVQcm94eT4gbWFpbkZyYW1lID0gZC0+d2ViUGFnZVByb3h5LT5tYWluRnJhbWUoKTsKLSAg
ICBpZiAoIW1haW5GcmFtZSkKLSAgICAgICAgcmV0dXJuIFFVcmwoKTsKLSAgICByZXR1cm4gUVVy
bChRU3RyaW5nKG1haW5GcmFtZS0+dXJsKCkpKTsKKworICAgIGlmICghaXNDb21wb25lbnRDb21w
bGV0ZSgpKQorICAgICAgICByZXR1cm4gZC0+bV9kZWZlcmVkVXJsVG9Mb2FkOworCisgICAgcmV0
dXJuIFFVcmwoUVN0cmluZyhkLT53ZWJQYWdlUHJveHktPmFjdGl2ZVVSTCgpKSk7CiB9CiAKIHZv
aWQgUVF1aWNrV2ViVmlldzo6c2V0VXJsKGNvbnN0IFFVcmwmIHVybCkKQEAgLTExMjgsMTIgKzEx
NDMsMTIgQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpzZXRVcmwoY29uc3QgUVVybCYgdXJsKQogICAg
IGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWlzQ29tcG9u
ZW50Q29tcGxldGUoKSkgeworICAgIGlmICghaXNDb21wb25lbnRDb21wbGV0ZSgpKQogICAgICAg
ICBkLT5tX2RlZmVyZWRVcmxUb0xvYWQgPSB1cmw7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Cisg
ICAgZWxzZQorICAgICAgICBkLT53ZWJQYWdlUHJveHktPmxvYWRVUkwodXJsLnRvU3RyaW5nKCkp
OwogCi0gICAgZC0+d2ViUGFnZVByb3h5LT5sb2FkVVJMKHVybC50b1N0cmluZygpKTsKKyAgICBl
bWl0IHVybENoYW5nZWQoKTsKIH0KIAogUVVybCBRUXVpY2tXZWJWaWV3OjppY29uKCkgY29uc3QK
QEAgLTE0MjcsMTIgKzE0NDIsMTkgQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpoYW5kbGVGbGlja2Fi
bGVNb3VzZVJlbGVhc2UoY29uc3QgUVBvaW50RiYgcG9zaXRpb24sIHFpbnQ2NAogICAgIEV4dGVy
bmFsIG9iamVjdHMgc3VjaCBhcyBzdHlsZXNoZWV0cyBvciBpbWFnZXMgcmVmZXJlbmNlZCBpbiB0
aGUgSFRNTAogICAgIGRvY3VtZW50IGFyZSBsb2NhdGVkIHJlbGF0aXZlIHRvIFxhIGJhc2VVcmwu
CiAKKyAgICBJZiBhbiBcYSB1bnJlYWNoYWJsZVVybCBpcyBwYXNzZWQgaXQncyB1c2VkIGFzIHRo
ZSB1cmwgZm9yIHRoZSBsb2FkZWQKKyAgICBjb250ZW50LiBUaGlzIGlzIHR5cGljYWxseSB1c2Vk
IHRvIGRpc3BsYXkgZXJyb3IgcGFnZXMgZm9yIGEgZmFpbGVkCisgICAgbG9hZC4KKwogICAgIFxz
YSBsb2FkKCkKICovCi12b2lkIFFRdWlja1dlYlZpZXc6OmxvYWRIdG1sKGNvbnN0IFFTdHJpbmcm
IGh0bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwpCit2b2lkIFFRdWlja1dlYlZpZXc6OmxvYWRIdG1s
KGNvbnN0IFFTdHJpbmcmIGh0bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwsIGNvbnN0IFFVcmwmIHVu
cmVhY2hhYmxlVXJsKQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKLSAgICBkLT53ZWJQYWdl
UHJveHktPmxvYWRIVE1MU3RyaW5nKGh0bWwsIGJhc2VVcmwudG9TdHJpbmcoKSk7CisgICAgaWYg
KHVucmVhY2hhYmxlVXJsLmlzVmFsaWQoKSkKKyAgICAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2Fk
QWx0ZXJuYXRlSFRNTFN0cmluZyhodG1sLCBiYXNlVXJsLnRvU3RyaW5nKCksIHVucmVhY2hhYmxl
VXJsLnRvU3RyaW5nKCkpOworICAgIGVsc2UKKyAgICAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2Fk
SFRNTFN0cmluZyhodG1sLCBiYXNlVXJsLnRvU3RyaW5nKCkpOwogfQogCiBRUG9pbnRGIFFRdWlj
a1dlYlZpZXc6OnBhZ2VJdGVtUG9zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IGZjOGUzYjMuLmE4MjNmZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAt
MTQyLDcgKzE0Miw3IEBAIHB1YmxpYzoKICAgICBRUG9pbnRGIHBhZ2VJdGVtUG9zKCk7CiAKIHB1
YmxpYyBRX1NMT1RTOgotICAgIHZvaWQgbG9hZEh0bWwoY29uc3QgUVN0cmluZyYgaHRtbCwgY29u
c3QgUVVybCYgYmFzZVVybCA9IFFVcmwoKSk7CisgICAgdm9pZCBsb2FkSHRtbChjb25zdCBRU3Ry
aW5nJiBodG1sLCBjb25zdCBRVXJsJiBiYXNlVXJsID0gUVVybCgpLCBjb25zdCBRVXJsJiB1bnJl
YWNoYWJsZVVybCA9IFFVcmwoKSk7CiAKICAgICB2b2lkIGdvQmFjaygpOwogICAgIHZvaWQgZ29G
b3J3YXJkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm8KaW5kZXggNTlhM2Nh
NS4uOThkYThhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybwpAQCAtMTYs
OSArMTYsNCBAQCBERUZJTkVTICs9IElNUE9SVF9ESVI9XCJcXFwiJCR7Uk9PVF9CVUlMRF9ESVJ9
JCR7UU1BS0VfRElSX1NFUH1pbXBvcnRzXFxcIlwiCiAKIE9USEVSX0ZJTEVTICs9IFwKICAgICBE
ZXNrdG9wQmVoYXZpb3IvRGVza3RvcFdlYlZpZXcucW1sIFwKLSAgICBEZXNrdG9wQmVoYXZpb3Iv
dHN0X2xpbmtIb3ZlcmVkLnFtbCBcCi0gICAgRGVza3RvcEJlaGF2aW9yL3RzdF9sb2FkSHRtbC5x
bWwgXAotICAgIERlc2t0b3BCZWhhdmlvci90c3RfbWVzc2FnaW5nLnFtbCBcCi0gICAgRGVza3Rv
cEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbCBcCi0gICAgRGVza3RvcEJlaGF2
aW9yL3RzdF9zaW5nbGVGaWxldXBsb2FkLnFtbCBcCi0gICAgRGVza3RvcEJlaGF2aW9yL3RzdF9t
dWx0aUZpbGV1cGxvYWQucW1sCisgICAgRGVza3RvcEJlaGF2aW9yL3RzdF8qCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcu
cHJvIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJW
aWV3LnBybwppbmRleCA1NzMwN2YwLi4wZmQyNDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcucHJvCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy5wcm8KQEAg
LTEzLDE5ICsxMyw0IEBAIFFUICs9IHFtbHRlc3QKIERFRklORVMgKz0gUVVJQ0tfVEVTVF9TT1VS
Q0VfRElSPVwiXFxcIiQkUFdEJCR7UU1BS0VfRElSX1NFUH1XZWJWaWV3XFxcIlwiCiBERUZJTkVT
ICs9IElNUE9SVF9ESVI9XCJcXFwiJCR7Uk9PVF9CVUlMRF9ESVJ9JCR7UU1BS0VfRElSX1NFUH1p
bXBvcnRzXFxcIlwiCiAKLU9USEVSX0ZJTEVTICs9IFwKLSAgICBXZWJWaWV3L3RzdF9mYXZJY29u
TG9hZC5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2Rvd25sb2FkLnFtbCBcCi0gICAgV2ViVmlldy90
c3RfZ2VvcGVybWlzc2lvbi5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2l0ZW1TZWxlY3Rvci5xbWwg
XAotICAgIFdlYlZpZXcvdHN0X2phdmFTY3JpcHREaWFsb2dzLnFtbCBcCi0gICAgV2ViVmlldy90
c3RfbG9hZEZhaWwucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9sb2FkSWdub3JlLnFtbCBcCi0gICAg
V2ViVmlldy90c3RfbG9hZEh0bWwucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3Mu
cW1sIFwKLSAgICBXZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3NTaWduYWwucW1sIFwKLSAgICBXZWJW
aWV3L3RzdF9wcmVmZXJlbmNlcy5xbWwgXAotICAgIFdlYlZpZXcvdHN0X3Byb3BlcnRpZXMucW1s
IFwKLSAgICBXZWJWaWV3L3RzdF90aXRsZUNoYW5nZWQucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9h
cHBsaWNhdGlvblNjaGVtZS5xbWwgXAotICAgIFdlYlZpZXcvdHN0X29yaWdpbi5xbWwKK09USEVS
X0ZJTEVTICs9IFdlYlZpZXcvdHN0XyoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZFVybC5xbWwgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xv
YWRVcmwucW1sCmluZGV4IDdhYjY5YmQuLjVmNTc3MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZFVybC5x
bWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9sb2FkVXJsLnFtbApAQCAtMTAsNiArMTAsOCBAQCBUZXN0V2ViVmlldyB7CiAg
ICAgcHJvcGVydHkgaW50IG51bUxvYWRTdGFydGVkOiAwCiAgICAgcHJvcGVydHkgaW50IG51bUxv
YWRTdWNjZWVkZWQ6IDAKIAorICAgIGZvY3VzOiB0cnVlCisKICAgICBvbkxvYWRQcm9ncmVzc0No
YW5nZWQ6IHsKICAgICAgICAgaWYgKHdhdGNoUHJvZ3Jlc3MgJiYgd2ViVmlldy5sb2FkUHJvZ3Jl
c3MgIT0gMTAwKSB7CiAgICAgICAgICAgICB3YXRjaFByb2dyZXNzID0gZmFsc2UKQEAgLTI3LDYg
KzI5LDggQEAgVGVzdFdlYlZpZXcgewogICAgIFRlc3RDYXNlIHsKICAgICAgICAgaWQ6IHRlc3QK
ICAgICAgICAgbmFtZTogIldlYlZpZXdMb2FkVXJsIgorICAgICAgICB3aGVuOiB3aW5kb3dTaG93
bgorCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RfbG9hZElnbm9yZUVtcHR5VXJsKCkgewogICAgICAg
ICAgICAgdmFyIHVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDEuaHRtbCIpCiAK
QEAgLTU4LDUgKzYyLDQ1IEBAIFRlc3RXZWJWaWV3IHsKICAgICAgICAgICAgIHZlcmlmeSghd2F0
Y2hQcm9ncmVzcykKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkKICAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RfdXJsUHJvcGVydHkoKSB7CisgICAgICAgICAg
ICB2YXIgdXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1sIikKKworICAg
ICAgICAgICAgd2ViVmlldy51cmwgPSB1cmwKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51
cmwsIHVybCkKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVk
KCkpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCB1cmwpCisKKyAgICAgICAgICAg
IHZhciBib2d1c1NpdGUgPSAiaHR0cDovL3d3dy5zb21lc2l0ZXRoYXRkb2Vzbm90ZXhpc3QuYWJj
LyIKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gYm9ndXNTaXRlCisgICAgICAgICAgICBjb21w
YXJlKHdlYlZpZXcudXJsLCBib2d1c1NpdGUpCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53
YWl0Rm9yTG9hZEZhaWxlZCgpKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgYm9n
dXNTaXRlKQorICAgICAgICAgICAgd2ViVmlldy5sb2FkSHRtbCgibG9hZCBmYWlsZWQiLCBib2d1
c1NpdGUsIGJvZ3VzU2l0ZSkKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIGJvZ3Vz
U2l0ZSkKKworICAgICAgICAgICAgdmFyIGRhdGFVcmwgPSAiZGF0YTp0ZXh0L2h0bWwsZm9vIgor
ICAgICAgICAgICAgd2ViVmlldy51cmwgPSBkYXRhVXJsCisgICAgICAgICAgICBjb21wYXJlKHdl
YlZpZXcudXJsLCBkYXRhVXJsKQorCisgICAgICAgICAgICB2YXIgcmVkaXJlY3RVcmwgPSBRdC5y
ZXNvbHZlZFVybCgiLi4vY29tbW9uL3JlZGlyZWN0Lmh0bWwiKQorICAgICAgICAgICAgd2ViVmll
dy51cmwgPSByZWRpcmVjdFVybAorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgcmVk
aXJlY3RVcmwpCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRl
ZCgpKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgdXJsKQorCisgICAgICAgICAg
ICB2YXIgbGlua1VybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vbGluay5odG1sIikKKyAg
ICAgICAgICAgIHdlYlZpZXcudXJsID0gbGlua1VybAorICAgICAgICAgICAgY29tcGFyZSh3ZWJW
aWV3LnVybCwgbGlua1VybCkKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2Fk
U3VjY2VlZGVkKCkpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCBsaW5rVXJsKQor
ICAgICAgICAgICAga2V5UHJlc3MoUXQuS2V5X1JldHVybikgLy8gTGluayBpcyBmb2N1c2VkCisg
ICAgICAgICAgICB3ZWJWaWV3LmxvYWRpbmdDaGFuZ2VkLmNvbm5lY3QoZnVuY3Rpb24obG9hZFJl
cXVlc3QpIHsKKyAgICAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCBsb2FkUmVxdWVz
dC51cmwpCisgICAgICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgdXJsKQorICAgICAg
ICAgICAgfSkKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVk
KCkpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCB1cmwpCisgICAgICAgIH0KICAg
ICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL2NvbW1vbi9saW5rLmh0bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9saW5rLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZTc5MWI3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL2xpbmsuaHRtbApAQCAtMCww
ICsxLDYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9ImRvY3VtZW50
LmxpbmtzWydmb28nXS5mb2N1cygpOyI+Cis8YSBuYW1lPSJmb28iIGhyZWY9InRlc3QxLmh0bWwi
Pkxpbms8L2E+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9yZWRpcmVjdC5odG1sIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vcmVkaXJl
Y3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmE3N2RiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9jb21tb24vcmVkaXJlY3QuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjA7
IHVybD10ZXN0MS5odG1sIgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDEyZDk2MTMuLjkwYzJk
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02NTUs
MTMgKzY1NSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJ
dGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQQzo6QXJndW1lbgogCiBTdHJpbmcgV2ViUGFnZVBy
b3h5OjphY3RpdmVVUkwoKSBjb25zdAogewotICAgIGlmICghbV9tYWluRnJhbWUpCi0gICAgICAg
IHJldHVybiBTdHJpbmcoKTsKLQogICAgIC8vIElmIHRoZXJlIGlzIGEgY3VycmVudGx5IHBlbmRp
bmcgdXJsLCBpdCBpcyB0aGUgYWN0aXZlIFVSTC4KICAgICBpZiAoIW1fcGVuZGluZ0FQSVJlcXVl
c3RVUkwuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBtX3BlbmRpbmdBUElSZXF1ZXN0VVJMOwog
CisgICAgaWYgKCFtX21haW5GcmFtZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCiAgICAg
aWYgKCFtX21haW5GcmFtZS0+dW5yZWFjaGFibGVVUkwoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBtX21haW5GcmFtZS0+dW5yZWFjaGFibGVVUkwoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwCmluZGV4IDAzNzNlZjQu
LmNlZjI4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VMb2FkQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlTG9hZENsaWVudC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAgUXRXZWJQYWdlTG9hZENsaWVudDo6
UXRXZWJQYWdlTG9hZENsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgUVF1aWNrV2ViVmlldyogd2Vi
VmkKICAgICBsb2FkQ2xpZW50LnZlcnNpb24gPSBrV0tQYWdlTG9hZGVyQ2xpZW50Q3VycmVudFZl
cnNpb247CiAgICAgbG9hZENsaWVudC5jbGllbnRJbmZvID0gdGhpczsKICAgICBsb2FkQ2xpZW50
LmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgPSBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lOworICAgIGxvYWRDbGllbnQuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUgPSBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZTsKICAgICBsb2FkQ2xpZW50LmRpZEZhaWxQcm92aXNpb25hbExvYWRX
aXRoRXJyb3JGb3JGcmFtZSA9IGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZTsKICAgICBsb2FkQ2xpZW50LmRpZENvbW1pdExvYWRGb3JGcmFtZSA9IGRpZENvbW1pdExvYWRG
b3JGcmFtZTsKICAgICBsb2FkQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlz
aExvYWRGb3JGcmFtZTsKQEAgLTU0LDEyICs1NSwxOCBAQCB2b2lkIFF0V2ViUGFnZUxvYWRDbGll
bnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoY29uc3QgUVVybCYgdXJsKQogewog
ICAgIFFXZWJMb2FkUmVxdWVzdCBsb2FkUmVxdWVzdCh1cmwsIFFRdWlja1dlYlZpZXc6OkxvYWRT
dGFydGVkU3RhdHVzKTsKICAgICBtX3dlYlZpZXctPmRfZnVuYygpLT5kaWRDaGFuZ2VMb2FkaW5n
U3RhdGUoJmxvYWRSZXF1ZXN0KTsKKyAgICBlbWl0IG1fd2ViVmlldy0+dXJsQ2hhbmdlZCgpOwor
fQorCit2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKGNvbnN0IFFVcmwmIHVybCkKK3sKKyAgICBlbWl0IG1f
d2ViVmlldy0+dXJsQ2hhbmdlZCgpOworICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXBkYXRlIHRo
ZSBsb2FkaW5nIHN0YXRlIGhlcmUgYXMgd2VsbD8gV2l0aCBhIHJlZGlyZWN0IHN0YXR1cz8KIH0K
IAogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoKQogewog
ICAgIGVtaXQgbV93ZWJWaWV3LT5uYXZpZ2F0aW9uSGlzdG9yeUNoYW5nZWQoKTsKLSAgICBlbWl0
IG1fd2ViVmlldy0+dXJsQ2hhbmdlZCgpOwogICAgIGVtaXQgbV93ZWJWaWV3LT50aXRsZUNoYW5n
ZWQoKTsKICAgICBtX3dlYlZpZXctPmRfZnVuYygpLT5sb2FkRGlkQ29tbWl0KCk7CiB9CkBAIC05
MCwxOCArOTcsMjggQEAgdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaXNwYXRjaExvYWRTdWNj
ZWVkZWQoKQogICAgIG1fd2ViVmlldy0+ZF9mdW5jKCktPmxvYWREaWRTdWNjZWVkKCk7CiB9CiAK
LXZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlzcGF0Y2hMb2FkRmFpbGVkKFdLRXJyb3JSZWYg
ZXJyb3IpCit2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpc3BhdGNoTG9hZEZhaWxlZChXS0Zy
YW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9yKQogewogICAgIGludCBlcnJvckNvZGUgPSBX
S0Vycm9yR2V0RXJyb3JDb2RlKGVycm9yKTsKICAgICBpZiAodG9JbXBsKGVycm9yKS0+cGxhdGZv
cm1FcnJvcigpLmlzQ2FuY2VsbGF0aW9uKCkgfHwgZXJyb3JDb2RlID09IGtXS0Vycm9yQ29kZUZy
YW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgfHwgZXJyb3JDb2RlID09IGtXS0Vycm9y
Q29kZVBsdWdJbldpbGxIYW5kbGVMb2FkKSB7CiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IExv
YWRTdGFydGVkU3RhdHVzIGhhcyBhIGNvdW50ZXJwYXJ0IHdoZW4gZS5nLiByZXF1ZXN0aW5nIGEg
ZG93bmxvYWQuCiAgICAgICAgIGRpc3BhdGNoTG9hZFN1Y2NlZWRlZCgpOworICAgICAgICAvLyBU
aGUgYWN0aXZlIHVybCBtaWdodCBoYXZlIGNoYW5nZWQgYXMgd2VsbAorICAgICAgICBlbWl0IG1f
d2ViVmlldy0+dXJsQ2hhbmdlZCgpOworCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBR
dFdlYkVycm9yIHF0RXJyb3IoZXJyb3IpOwogICAgIFFXZWJMb2FkUmVxdWVzdCBsb2FkUmVxdWVz
dChxdEVycm9yLnVybCgpLCBRUXVpY2tXZWJWaWV3OjpMb2FkRmFpbGVkU3RhdHVzLCBxdEVycm9y
LmRlc2NyaXB0aW9uKCksIHN0YXRpY19jYXN0PFFRdWlja1dlYlZpZXc6OkVycm9yRG9tYWluPihx
dEVycm9yLnR5cGUoKSksIHF0RXJyb3IuZXJyb3JDb2RlKCkpOwogICAgIGVtaXQgbV93ZWJWaWV3
LT5sb2FkaW5nQ2hhbmdlZCgmbG9hZFJlcXVlc3QpOworCisgICAgLy8gVGhlIHVzZXIgZGlkIG5v
dCBzZXQgYWx0ZXJuYXRlIGNvbnRlbnQgd2l0aCBhbiB1bnJlYWNoYWJsZSB1cmwgYXMgYQorICAg
IC8vIHJlc3BvbnNlIHRvIHRoZSBmYWlsZWQgbG9hZCwgc28gd2Ugc2V0IHRoZSB1cmwgbWFudWFs
bHkgaGVyZSwgYW5kCisgICAgLy8gZGV0ZWN0IHRoaXMgY2FzZSBpbiByZWxvYWQoKSB0byBlbnN1
cmUgd2Ugd2lsbCByZWxvYWQgdGhlIGZhaWxlZCB1cmwuCisgICAgV2ViRnJhbWVQcm94eSogd2tm
cmFtZSA9IHRvSW1wbChmcmFtZSk7CisgICAgaWYgKHdrZnJhbWUtPnVucmVhY2hhYmxlVVJMKCku
aXNFbXB0eSgpKQorICAgICAgICB3a2ZyYW1lLT5zZXRVbnJlYWNoYWJsZVVSTChxdEVycm9yLnVy
bCgpLnRvU3RyaW5nKCkpOwogfQogCiB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OnNldExvYWRQ
cm9ncmVzcyhpbnQgbG9hZFByb2dyZXNzKQpAQCAtMTI2LDExICsxNDMsMjIgQEAgdm9pZCBRdFdl
YlBhZ2VMb2FkQ2xpZW50OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZgogICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShxVXJsKTsKIH0KIAordm9pZCBRdFdlYlBhZ2VM
b2FkQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK3sKKyAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAg
ICAgIHJldHVybjsKKyAgICBXZWJGcmFtZVByb3h5KiB3a2ZyYW1lID0gdG9JbXBsKGZyYW1lKTsK
KyAgICBRU3RyaW5nIHVybFN0cih3a2ZyYW1lLT5wcm92aXNpb25hbFVSTCgpKTsKKyAgICBRVXJs
IHFVcmwgPSB1cmxTdHI7CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5k
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShxVXJsKTsK
K30KKwogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0
aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVy
cm9yLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0Zy
YW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47Ci0gICAgdG9RdFdlYlBhZ2VM
b2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaXNwYXRjaExvYWRGYWlsZWQoZXJyb3IpOworCisgICAg
dG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaXNwYXRjaExvYWRGYWlsZWQoZnJh
bWUsIGVycm9yKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDb21taXRMb2Fk
Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCkBAIC0xNTEsNyArMTc5LDcgQEAgdm9pZCBRdFdlYlBhZ2VMb2FkQ2xp
ZW50OjpkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBm
cmEKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVy
bjsKLSAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpc3BhdGNoTG9hZEZh
aWxlZChlcnJvcik7CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaXNw
YXRjaExvYWRGYWlsZWQoZnJhbWUsIGVycm9yKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xp
ZW50OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdL
RnJhbWVSZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmgKaW5kZXggNjcyNTk3YS4uNDgz
NTA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxv
YWRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9h
ZENsaWVudC5oCkBAIC0zNiw2ICszNiw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lk
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoY29uc3QgUVVybCYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoY29uc3Qg
UVVybCYpOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKCk7CiAgICAgdm9pZCBkaWRT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKCk7CkBAIC00MywxMSArNDQsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENo
YW5nZUJhY2tGb3J3YXJkTGlzdCgpOwogCiAgICAgdm9pZCBkaXNwYXRjaExvYWRTdWNjZWVkZWQo
KTsKLSAgICB2b2lkIGRpc3BhdGNoTG9hZEZhaWxlZChXS0Vycm9yUmVmKTsKKyAgICB2b2lkIGRp
c3BhdGNoTG9hZEZhaWxlZChXS0ZyYW1lUmVmLCBXS0Vycm9yUmVmKTsKICAgICB2b2lkIHNldExv
YWRQcm9ncmVzcyhpbnQpOwogCiAgICAgLy8gV0tQYWdlTG9hZENsaWVudCBjYWxsYmFja3MuCiAg
ICAgc3RhdGljIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25h
bExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRXJyb3JSZWYs
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGlj
IHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYgdXNl
ckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhkOGRjMjMuLjc0YjQ3YTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAor
MjAxMi0wNC0xOCAgVG9yIEFybmUgVmVzdGLDuCAgPHRvcmFybnZAZ21haWwuY29tPgorCisgICAg
ICAgIFtRdF0gTWFrZSB0aGUgd2ViIHZpZXcncyB1cmwgcHJvcGVydHkgZm9sbG93IHRoZSBhY3Rp
dmUgdXJsCisKKyAgICAgICAgVGhlIHVybCBwcm9wZXJ0eSBvZiB0aGUgd2VidmlldyBub3cgcmVm
bGVjdHMgdGhlICdhY3RpdmUnIHVybCBvZiB0aGUKKyAgICAgICAgcGFnZSwgd2hpY2ggbWFwcyB0
byBlaXRoZXIgdGhlIGN1cnJlbmx5IGxvYWRpbmcgdXJsLCBpbiB0aGUgY2FzZSBvZgorICAgICAg
ICBhbiBvbmdvaW5nIGxvYWQsIG9yIHRoZSByZXN1bHQgb2YgYSBsb2FkLCBldmVuIHdoZW4gdGhl
IGxvYWQgZmFpbGVkLgorCisgICAgICAgIEluIHByYWN0aWNlIHRoaXMgbWVhbnMgdGhhdCBzZXR0
aW5nIHRoZSB1cmwgdGhvdWdoIFFNTCwgb3IgbmF2aWdhdGluZworICAgICAgICB0byBhIG5ldyB1
cmwgaW4gdGhlIHBhZ2UgYnkgZS5nIGNsaWNraW5nLCB3aWxsIGJvdGggaW5zdGFudGx5IGNoYW5n
ZQorICAgICAgICB0aGUgdXJsLXByb3BlcnR5IG9mIHRoZSB3ZWJ2aWV3IHRvIHRoZSB0YXJnZXQg
dXJsLiBUaGlzIGRpZmZlcnMgZnJvbQorICAgICAgICBlYXJsaWVyIGJlaGF2aW9yLCB3aGVyZSB3
ZSB3b3VsZCB1cGRhdGUgdGhlIHVybCB3aGVuIHRoZSBsb2FkCisgICAgICAgIGNvbW1pdHRlZC4K
KworICAgICAgICBBbiBvcHRpb25hbCBhcmd1bWVudCBpcyBhZGRlZCB0byBsb2FkSHRtbCgpLCB0
byBhbGxvdyBzZXR0aW5nCisgICAgICAgIHRoZSB1bnJlYWNoYWJsZSB1cmwgd2hlbiBwcm92aWRp
bmcgcmVwbGFjZW1lbnQgY29udGVudCBmb3IgZmFpbGVkCisgICAgICAgIGxvYWRzLgorCisgICAg
ICAgIEEgc2xpZ2h0IGNoYW5nZSBpbiB0aGUgYWN0aXZlVXJsKCkgaW1wbGVtZW50YXRpb24gaXMg
YWxzbyBkb25lLAorICAgICAgICB3aGVyZSB3ZSBub3cgZmF2b3VyIHRoZSB1cmwgb2YgYW4gcGVu
ZGluZyBBUEkgcmVxdWVzdCwgZXZlbiB3aGVuCisgICAgICAgIHdlIGRvbid0IGhhdmUgYSBtYWlu
ZnJhbWUgeWV0LgorCisgICAgICAgIEZpbmFsbHksIHRoZSBsb2NhdGlvbiBiYXIgaW4gdGhlIG1p
bmlicm93c2VyIGlzIHVwZGF0ZWQgdG8gYmVoYXZlCisgICAgICAgIGEgYml0IG1vcmUgbGlrZSBu
b3JtYWwgYnJvd3NlcnMgaW4gdGVybXMgb2Ygd2hlbiB0aGUgdXJsIHdpbGwgY2hhbmdlCisgICAg
ICAgIGFuZCBob3cgYWN0aXZlIGZvY3VzIGlzIGhhbmRsZWQuCisKKyAgICAgICAgTmVlZCBhIHNo
b3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2Vy
V2luZG93LnFtbDoKKwogMjAxMi0wNC0xNiAgVmluY2VudCBTY2hlaWIgIDxzY2hlaWJAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEFkZGluZyBDb250cmlidXRvcnMgQnJpYW4gU2Fsb21vbiBhbmQg
VG9tIEh1ZHNvbiB0byBjb21taXR0ZXJzLnB5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jy
b3dzZXJXaW5kb3cucW1sCmluZGV4IDM4ZjZhZjkuLjNmM2ExZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbAorKysgYi9Ub29scy9NaW5pQnJv
d3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKQEAgLTQxLDEwICs0MSwxMiBAQCBSZWN0YW5n
bGUgewogCiAgICAgZnVuY3Rpb24gbG9hZChhZGRyZXNzKSB7CiAgICAgICAgIHdlYlZpZXcudXJs
ID0gYWRkcmVzcworICAgICAgICB3ZWJWaWV3LmZvcmNlQWN0aXZlRm9jdXMoKQogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIHJlbG9hZCgpIHsKICAgICAgICAgd2ViVmlldy5yZWxvYWQoKQorICAgICAg
ICB3ZWJWaWV3LmZvcmNlQWN0aXZlRm9jdXMoKQogICAgIH0KIAogICAgIGZ1bmN0aW9uIGZvY3Vz
QWRkcmVzc0JhcigpIHsKQEAgLTI1MSwxMCArMjUzLDEwIEBAIFJlY3RhbmdsZSB7CiAgICAgICAg
ICAgICAgICAgICAgIGxlZnQ6IHBhcmVudC5sZWZ0CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIHJhZGl1czogMwotICAgICAgICAgICAgICAgIHdpZHRoOiBwYXJlbnQud2lkdGgg
LyAxMDAgKiB3ZWJWaWV3LmxvYWRQcm9ncmVzcworICAgICAgICAgICAgICAgIHdpZHRoOiBwYXJl
bnQud2lkdGggLyAxMDAgKiBNYXRoLm1heCg1LCB3ZWJWaWV3LmxvYWRQcm9ncmVzcykKICAgICAg
ICAgICAgICAgICBjb2xvcjogImJsdWUiCiAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC4zCi0g
ICAgICAgICAgICAgICAgdmlzaWJsZTogd2ViVmlldy5sb2FkUHJvZ3Jlc3MgIT0gMTAwCisgICAg
ICAgICAgICAgICAgdmlzaWJsZTogd2ViVmlldy5sb2FkaW5nCiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBJbWFnZSB7CiAgICAgICAgICAgICAgICAgaWQ6IGZhdkljb24KQEAgLTI4Myw4ICsy
ODUsMTMgQEAgUmVjdGFuZ2xlIHsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAg
ICBLZXlzLm9uUmV0dXJuUHJlc3NlZDp7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9n
KCJnb2luZyB0bzogIiwgYWRkcmVzc0xpbmUudGV4dCkKLSAgICAgICAgICAgICAgICAgICAgd2Vi
Vmlldy51cmwgPSB1dGlscy51cmxGcm9tVXNlcklucHV0KGFkZHJlc3NMaW5lLnRleHQpCisgICAg
ICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJOYXZpZ2F0aW5nIHRvOiAiLCBhZGRyZXNzTGlu
ZS50ZXh0KQorICAgICAgICAgICAgICAgICAgICBsb2FkKHV0aWxzLnVybEZyb21Vc2VySW5wdXQo
YWRkcmVzc0xpbmUudGV4dCkpCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
b25BY3RpdmVGb2N1c0NoYW5nZWQ6IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFhY3RpdmVG
b2N1cykKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSB3ZWJWaWV3LnVybAogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMzAxLDEwICszMDgsMTYg
QEAgUmVjdGFuZ2xlIHsKIAogICAgICAgICBvblRpdGxlQ2hhbmdlZDogcGFnZVRpdGxlQ2hhbmdl
ZCh0aXRsZSkKICAgICAgICAgb25VcmxDaGFuZ2VkOiB7Ci0gICAgICAgICAgICBhZGRyZXNzTGlu
ZS50ZXh0ID0gdXJsCisgICAgICAgICAgICBpZiAoIWFkZHJlc3NMaW5lLmFjdGl2ZUZvY3VzKQor
ICAgICAgICAgICAgICAgIGFkZHJlc3NMaW5lLnRleHQgPSB1cmwKKwogICAgICAgICAgICAgaWYg
KG9wdGlvbnMucHJpbnRMb2FkZWRVcmxzKQotICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJM
b2FkZWQ6Iiwgd2ViVmlldy51cmwudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBmb3JjZUFjdGl2
ZUZvY3VzKCk7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIldlYlZpZXcgdXJsIGNoYW5n
ZWQ6Iiwgd2ViVmlldy51cmwudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBvbkxv
YWRpbmdDaGFuZ2VkOiB7CisgICAgICAgICAgICBpZiAoIWxvYWRpbmcgJiYgbG9hZFJlcXVlc3Qu
c3RhdHVzID09IFdlYlZpZXcuTG9hZEZhaWxlZFN0YXR1cykKKyAgICAgICAgICAgICAgICB3ZWJW
aWV3LmxvYWRIdG1sKCJGYWlsZWQgdG8gbG9hZCAiICsgbG9hZFJlcXVlc3QudXJsLCAiIiwgbG9h
ZFJlcXVlc3QudXJsKQogICAgICAgICB9CiAKICAgICAgICAgZXhwZXJpbWVudGFsLml0ZW1TZWxl
Y3RvcjogSXRlbVNlbGVjdG9yIHsgfQotLSAKMS43LjcuNSAoQXBwbGUgR2l0LTI2KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138004</attachid>
            <date>2012-04-19 16:33:27 -0700</date>
            <delta_ts>2012-04-20 09:46:09 -0700</delta_ts>
            <desc>Rebased, fixed issues</desc>
            <filename>0001-Qt-Make-the-web-view-s-url-property-follow-the-activ.patch</filename>
            <type>text/plain</type>
            <size>25201</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">RnJvbSBmOTUzNWJjNWY1OWFmYjBiNTBjMjdlM2UxNTQ4ZWNmYzllMDBkMWExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9yPTIwQXJuZT0yMFZlc3RiPUMzPUI4Pz0g
PHRvcmFybnZAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE5IEFwciAyMDEyIDA3OjMyOjI2ICswMjAw
ClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBNYWtlIHRoZSB3ZWIgdmlldydzIHVybCBwcm9wZXJ0eSBm
b2xsb3cgdGhlIGFjdGl2ZSB1cmwKCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NzU1NAoKVGhlIHVybCBwcm9wZXJ0eSBvZiB0aGUgd2VidmlldyBub3cgcmVmbGVjdHMg
dGhlICdhY3RpdmUnIHVybCBvZiB0aGUKcGFnZSwgd2hpY2ggbWFwcyB0byBlaXRoZXIgdGhlIGN1
cnJlbmx5IGxvYWRpbmcgdXJsLCBpbiB0aGUgY2FzZSBvZgphbiBvbmdvaW5nIGxvYWQsIG9yIHRo
ZSByZXN1bHQgb2YgYSBsb2FkLCBldmVuIHdoZW4gdGhlIGxvYWQgZmFpbGVkLgoKSW4gcHJhY3Rp
Y2UgdGhpcyBtZWFucyB0aGF0IHNldHRpbmcgdGhlIHVybCB0aG91Z2ggUU1MLCBvciBuYXZpZ2F0
aW5nCnRvIGEgbmV3IHVybCBpbiB0aGUgcGFnZSBieSBlLmcgY2xpY2tpbmcsIHdpbGwgYm90aCBp
bnN0YW50bHkgY2hhbmdlCnRoZSB1cmwtcHJvcGVydHkgb2YgdGhlIHdlYnZpZXcgdG8gdGhlIHRh
cmdldCB1cmwuIFRoaXMgZGlmZmVycyBmcm9tCmVhcmxpZXIgYmVoYXZpb3IsIHdoZXJlIHdlIHdv
dWxkIHVwZGF0ZSB0aGUgdXJsIHdoZW4gdGhlIGxvYWQKY29tbWl0dGVkLgoKQW4gb3B0aW9uYWwg
YXJndW1lbnQgaXMgYWRkZWQgdG8gbG9hZEh0bWwoKSwgdG8gYWxsb3cgc2V0dGluZwp0aGUgdW5y
ZWFjaGFibGUgdXJsIHdoZW4gcHJvdmlkaW5nIHJlcGxhY2VtZW50IGNvbnRlbnQgZm9yIGZhaWxl
ZApsb2Fkcy4KCkEgc2xpZ2h0IGNoYW5nZSBpbiB0aGUgYWN0aXZlVXJsKCkgaW1wbGVtZW50YXRp
b24gaXMgYWxzbyBkb25lLAp3aGVyZSB3ZSBub3cgZmF2b3VyIHRoZSB1cmwgb2YgYW4gcGVuZGlu
ZyBBUEkgcmVxdWVzdCwgZXZlbiB3aGVuCndlIGRvbid0IGhhdmUgYSBtYWluZnJhbWUgeWV0LgoK
RmluYWxseSwgdGhlIGxvY2F0aW9uIGJhciBpbiB0aGUgbWluaWJyb3dzZXIgaXMgdXBkYXRlZCB0
byBiZWhhdmUKYSBiaXQgbW9yZSBsaWtlIG5vcm1hbCBicm93c2VycyBpbiB0ZXJtcyBvZiB3aGVu
IHRoZSB1cmwgd2lsbCBjaGFuZ2UKYW5kIGhvdyBhY3RpdmUgZm9jdXMgaXMgaGFuZGxlZC4KLS0t
CiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
NTMgKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHAgIHwgICA0MyArKysrKysrKysrKystLS0tCiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oICB8ICAgIDIgKy0KIC4uLi9BUEkv
cXQvdGVzdHMvcHVibGljYXBpL3RzdF9wdWJsaWNhcGkuY3BwICAgICAgIHwgICAgMSArCiAuLi4v
QVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm8gICAgICB8ICAgIDkgKy0t
LQogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy5wcm8gICAgfCAg
IDE3ICstLS0tLS0KIC4uLi9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZFVy
bC5xbWwgIHwgICA0NCArKysrKysrKysrKysrKysrCiAuLi4vQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L2NvbW1vbi9saW5rLmh0bWwgICAgICAgICB8ICAgIDYgKysKIC4uLi9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvY29tbW9uL3JlZGlyZWN0Lmh0bWwgICAgIHwgICAgOCArKysKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgICAgNiArLQogLi4uL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwICAgfCAgIDM2ICsrKysrKysr
KysrKy0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5o
ICB8ICAgIDQgKy0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxMiArKysrKwogVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5k
b3cucW1sICAgICAgICAgfCAgIDI3ICsrKysrKystLS0KIDE0IGZpbGVzIGNoYW5nZWQsIDIxNyBp
bnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9saW5rLmh0bWwK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL2NvbW1vbi9yZWRpcmVjdC5odG1sCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDZhZDg4MmIuLjky
ZDM2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxMi0wNC0xOCAgVG9yIEFybmUg
VmVzdGLDuCAgPHRvcmFybnZAZ21haWwuY29tPgorCisgICAgICAgIFtRdF0gTWFrZSB0aGUgd2Vi
IHZpZXcncyB1cmwgcHJvcGVydHkgZm9sbG93IHRoZSBhY3RpdmUgdXJsCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTU0CisKKyAgICAgICAgVGhl
IHVybCBwcm9wZXJ0eSBvZiB0aGUgd2VidmlldyBub3cgcmVmbGVjdHMgdGhlICdhY3RpdmUnIHVy
bCBvZiB0aGUKKyAgICAgICAgcGFnZSwgd2hpY2ggbWFwcyB0byBlaXRoZXIgdGhlIGN1cnJlbmx5
IGxvYWRpbmcgdXJsLCBpbiB0aGUgY2FzZSBvZgorICAgICAgICBhbiBvbmdvaW5nIGxvYWQsIG9y
IHRoZSByZXN1bHQgb2YgYSBsb2FkLCBldmVuIHdoZW4gdGhlIGxvYWQgZmFpbGVkLgorCisgICAg
ICAgIEluIHByYWN0aWNlIHRoaXMgbWVhbnMgdGhhdCBzZXR0aW5nIHRoZSB1cmwgdGhvdWdoIFFN
TCwgb3IgbmF2aWdhdGluZworICAgICAgICB0byBhIG5ldyB1cmwgaW4gdGhlIHBhZ2UgYnkgZS5n
IGNsaWNraW5nLCB3aWxsIGJvdGggaW5zdGFudGx5IGNoYW5nZQorICAgICAgICB0aGUgdXJsLXBy
b3BlcnR5IG9mIHRoZSB3ZWJ2aWV3IHRvIHRoZSB0YXJnZXQgdXJsLiBUaGlzIGRpZmZlcnMgZnJv
bQorICAgICAgICBlYXJsaWVyIGJlaGF2aW9yLCB3aGVyZSB3ZSB3b3VsZCB1cGRhdGUgdGhlIHVy
bCB3aGVuIHRoZSBsb2FkCisgICAgICAgIGNvbW1pdHRlZC4KKworICAgICAgICBBbiBvcHRpb25h
bCBhcmd1bWVudCBpcyBhZGRlZCB0byBsb2FkSHRtbCgpLCB0byBhbGxvdyBzZXR0aW5nCisgICAg
ICAgIHRoZSB1bnJlYWNoYWJsZSB1cmwgd2hlbiBwcm92aWRpbmcgcmVwbGFjZW1lbnQgY29udGVu
dCBmb3IgZmFpbGVkCisgICAgICAgIGxvYWRzLgorCisgICAgICAgIEEgc2xpZ2h0IGNoYW5nZSBp
biB0aGUgYWN0aXZlVXJsKCkgaW1wbGVtZW50YXRpb24gaXMgYWxzbyBkb25lLAorICAgICAgICB3
aGVyZSB3ZSBub3cgZmF2b3VyIHRoZSB1cmwgb2YgYW4gcGVuZGluZyBBUEkgcmVxdWVzdCwgZXZl
biB3aGVuCisgICAgICAgIHdlIGRvbid0IGhhdmUgYSBtYWluZnJhbWUgeWV0LgorCisgICAgICAg
IEZpbmFsbHksIHRoZSBsb2NhdGlvbiBiYXIgaW4gdGhlIG1pbmlicm93c2VyIGlzIHVwZGF0ZWQg
dG8gYmVoYXZlCisgICAgICAgIGEgYml0IG1vcmUgbGlrZSBub3JtYWwgYnJvd3NlcnMgaW4gdGVy
bXMgb2Ygd2hlbiB0aGUgdXJsIHdpbGwgY2hhbmdlCisgICAgICAgIGFuZCBob3cgYWN0aXZlIGZv
Y3VzIGlzIGhhbmRsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6Om9uQ29tcG9uZW50Q29tcGxl
dGUpOgorICAgICAgICAoUVF1aWNrV2ViVmlldzo6cmVsb2FkKToKKyAgICAgICAgKFFRdWlja1dl
YlZpZXc6OnVybCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3OjpzZXRVcmwpOgorICAgICAgICAo
UVF1aWNrV2ViVmlldzo6bG9hZEh0bWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld19wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0
cy9EZXNrdG9wQmVoYXZpb3IucHJvOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy5wcm86CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkVXJsLnFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9saW5rLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3JlZGlyZWN0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmFjdGl2ZVVSTCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2Vi
UGFnZUxvYWRDbGllbnQuY3BwOgorICAgICAgICAoUXRXZWJQYWdlTG9hZENsaWVudDo6UXRXZWJQ
YWdlTG9hZENsaWVudCk6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAg
ICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAg
IChRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaXNwYXRjaExvYWRGYWlsZWQpOgorICAgICAgICAoUXRX
ZWJQYWdlTG9hZENsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1l
KToKKyAgICAgICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9y
RnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50Lmg6Cisg
ICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50KToKKwogMjAxMi0wNC0xOSAgVml2ZWsgR2FsYXRh
Z2UgIDx2aXZla2dhbGF0YWdlQGdtYWlsLmNvbT4KIAogICAgICAgICBEZXZUb29sczogYXNzZXJ0
aW9uIGZhaWx1cmUgdXBvbiBkZXZ0b29scyB3aW5kb3cgcmVvcGVuLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggMmIwYzVmOS4u
MGUzMmFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXcuY3BwCkBAIC00Nyw5ICs0NywxMCBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDxRdFFtbC9RUW1sRW5naW5lPgogI2lu
Y2x1ZGUgPFF0UXVpY2svUVF1aWNrQ2FudmFzPgorI2luY2x1ZGUgPFdLT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRSZWN0Lmg+Ci0jaW5jbHVkZSA8V0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KQEAgLTE1Niw2ICsxNTcsNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpvbkNvbXBv
bmVudENvbXBsZXRlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcV9wdHItPnNldFVybChtX2Rl
ZmVyZWRVcmxUb0xvYWQpOworICAgIG1fZGVmZXJlZFVybFRvTG9hZCA9IFFVcmwoKTsKIH0KIAog
dm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0TmVlZHNEaXNwbGF5KCkKQEAgLTExMDgsNiAr
MTExMCwxNyBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OnN0b3AoKQogdm9pZCBRUXVpY2tXZWJWaWV3
OjpyZWxvYWQoKQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKKworICAgIFdlYkZyYW1lUHJv
eHkqIG1haW5GcmFtZSA9IGQtPndlYlBhZ2VQcm94eS0+bWFpbkZyYW1lKCk7CisgICAgaWYgKG1h
aW5GcmFtZSAmJiAhbWFpbkZyYW1lLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSAmJiBtYWlu
RnJhbWUtPnVybCgpICE9IGJsYW5rVVJMKCkpIHsKKyAgICAgICAgLy8gV2UgaGF2ZSBhbiB1bnJl
YWNoYWJsZSB1cmwsIGJ1dCBoYXZlbid0IGxvYWRlZCBhbHRlcm5hdGl2ZSBjb250ZW50CisgICAg
ICAgIC8vIGZvciBpdCAoYW4gZXJyb3IgcGFnZSBlZy4pLCBzbyBXZWJDb3JlIGRvZXNuJ3Qga25v
dyBhYm91dCB0aGUgdW5yZWFjaGFibGUKKyAgICAgICAgLy8gdXJsLCBhbmQgd2lsbCB0cnkgdG8g
cmVsb2FkIHRoZSBjdXJyZW50bHkgY29tbWl0ZWQgdXJsIGluc3RlYWQuIFdlIGRvbid0CisgICAg
ICAgIC8vIHdhbnQgdGhhdCwgc28gd2Ugb3ZlcnJpZGUgdGhlIHJlbG9hZCBoZXJlIGJ5IGRvaW5n
IGEgbWFudWFsIGxvYWQuCisgICAgICAgIGQtPndlYlBhZ2VQcm94eS0+bG9hZFVSTChtYWluRnJh
bWUtPnVucmVhY2hhYmxlVVJMKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgY29u
c3QgYm9vbCByZWxvYWRGcm9tT3JpZ2luID0gdHJ1ZTsKICAgICBkLT53ZWJQYWdlUHJveHktPnJl
bG9hZChyZWxvYWRGcm9tT3JpZ2luKTsKIH0KQEAgLTExMTUsMTAgKzExMjgsMTEgQEAgdm9pZCBR
UXVpY2tXZWJWaWV3OjpyZWxvYWQoKQogUVVybCBRUXVpY2tXZWJWaWV3Ojp1cmwoKSBjb25zdAog
ewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKLSAgICBSZWZQdHI8V2ViRnJhbWVQcm94
eT4gbWFpbkZyYW1lID0gZC0+d2ViUGFnZVByb3h5LT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIW1h
aW5GcmFtZSkKLSAgICAgICAgcmV0dXJuIFFVcmwoKTsKLSAgICByZXR1cm4gUVVybChRU3RyaW5n
KG1haW5GcmFtZS0+dXJsKCkpKTsKKworICAgIGlmICghaXNDb21wb25lbnRDb21wbGV0ZSgpKQor
ICAgICAgICByZXR1cm4gZC0+bV9kZWZlcmVkVXJsVG9Mb2FkOworCisgICAgcmV0dXJuIFFVcmwo
UVN0cmluZyhkLT53ZWJQYWdlUHJveHktPmFjdGl2ZVVSTCgpKSk7CiB9CiAKIHZvaWQgUVF1aWNr
V2ViVmlldzo6c2V0VXJsKGNvbnN0IFFVcmwmIHVybCkKQEAgLTExMjgsMTIgKzExNDIsMTIgQEAg
dm9pZCBRUXVpY2tXZWJWaWV3OjpzZXRVcmwoY29uc3QgUVVybCYgdXJsKQogICAgIGlmICh1cmwu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWlzQ29tcG9uZW50Q29tcGxl
dGUoKSkgeworICAgIGlmICghaXNDb21wb25lbnRDb21wbGV0ZSgpKQogICAgICAgICBkLT5tX2Rl
ZmVyZWRVcmxUb0xvYWQgPSB1cmw7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgZWxzZQor
ICAgICAgICBkLT53ZWJQYWdlUHJveHktPmxvYWRVUkwodXJsLnRvU3RyaW5nKCkpOwogCi0gICAg
ZC0+d2ViUGFnZVByb3h5LT5sb2FkVVJMKHVybC50b1N0cmluZygpKTsKKyAgICBlbWl0IHVybENo
YW5nZWQoKTsKIH0KIAogUVVybCBRUXVpY2tXZWJWaWV3OjppY29uKCkgY29uc3QKQEAgLTE0Mjcs
MTIgKzE0NDEsMTkgQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpoYW5kbGVGbGlja2FibGVNb3VzZVJl
bGVhc2UoY29uc3QgUVBvaW50RiYgcG9zaXRpb24sIHFpbnQ2NAogICAgIEV4dGVybmFsIG9iamVj
dHMgc3VjaCBhcyBzdHlsZXNoZWV0cyBvciBpbWFnZXMgcmVmZXJlbmNlZCBpbiB0aGUgSFRNTAog
ICAgIGRvY3VtZW50IGFyZSBsb2NhdGVkIHJlbGF0aXZlIHRvIFxhIGJhc2VVcmwuCiAKKyAgICBJ
ZiBhbiBcYSB1bnJlYWNoYWJsZVVybCBpcyBwYXNzZWQgaXQncyB1c2VkIGFzIHRoZSB1cmwgZm9y
IHRoZSBsb2FkZWQKKyAgICBjb250ZW50LiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIHRvIGRpc3Bs
YXkgZXJyb3IgcGFnZXMgZm9yIGEgZmFpbGVkCisgICAgbG9hZC4KKwogICAgIFxzYSBsb2FkKCkK
ICovCi12b2lkIFFRdWlja1dlYlZpZXc6OmxvYWRIdG1sKGNvbnN0IFFTdHJpbmcmIGh0bWwsIGNv
bnN0IFFVcmwmIGJhc2VVcmwpCit2b2lkIFFRdWlja1dlYlZpZXc6OmxvYWRIdG1sKGNvbnN0IFFT
dHJpbmcmIGh0bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwsIGNvbnN0IFFVcmwmIHVucmVhY2hhYmxl
VXJsKQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKLSAgICBkLT53ZWJQYWdlUHJveHktPmxv
YWRIVE1MU3RyaW5nKGh0bWwsIGJhc2VVcmwudG9TdHJpbmcoKSk7CisgICAgaWYgKHVucmVhY2hh
YmxlVXJsLmlzVmFsaWQoKSkKKyAgICAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2FkQWx0ZXJuYXRl
SFRNTFN0cmluZyhodG1sLCBiYXNlVXJsLnRvU3RyaW5nKCksIHVucmVhY2hhYmxlVXJsLnRvU3Ry
aW5nKCkpOworICAgIGVsc2UKKyAgICAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2FkSFRNTFN0cmlu
ZyhodG1sLCBiYXNlVXJsLnRvU3RyaW5nKCkpOwogfQogCiBRUG9pbnRGIFFRdWlja1dlYlZpZXc6
OnBhZ2VJdGVtUG9zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcC5oCmluZGV4IGZjOGUzYjMuLmE4MjNmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMTQyLDcgKzE0
Miw3IEBAIHB1YmxpYzoKICAgICBRUG9pbnRGIHBhZ2VJdGVtUG9zKCk7CiAKIHB1YmxpYyBRX1NM
T1RTOgotICAgIHZvaWQgbG9hZEh0bWwoY29uc3QgUVN0cmluZyYgaHRtbCwgY29uc3QgUVVybCYg
YmFzZVVybCA9IFFVcmwoKSk7CisgICAgdm9pZCBsb2FkSHRtbChjb25zdCBRU3RyaW5nJiBodG1s
LCBjb25zdCBRVXJsJiBiYXNlVXJsID0gUVVybCgpLCBjb25zdCBRVXJsJiB1bnJlYWNoYWJsZVVy
bCA9IFFVcmwoKSk7CiAKICAgICB2b2lkIGdvQmFjaygpOwogICAgIHZvaWQgZ29Gb3J3YXJkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3B1Ymxp
Y2FwaS90c3RfcHVibGljYXBpLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcHVibGljYXBpL3RzdF9wdWJsaWNhcGkuY3BwCmluZGV4IGY1Zjk3NjYuLjMxMDRlMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcHVibGlj
YXBpL3RzdF9wdWJsaWNhcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcHVibGljYXBpL3RzdF9wdWJsaWNhcGkuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHN0
YXRpYyBRU3RyaW5nTGlzdCBleHBlY3RlZEFQSSA9IFFTdHJpbmdMaXN0KCkKICAgICA8PCAiUVF1
aWNrV2ViVmlldy5pY29uQ2hhbmdlZCgpIC0tPiB2b2lkIgogICAgIDw8ICJRUXVpY2tXZWJWaWV3
LmxpbmtIb3ZlcmVkKFFVcmwsUVN0cmluZykgLS0+IHZvaWQiCiAgICAgPDwgIlFRdWlja1dlYlZp
ZXcubmF2aWdhdGlvblJlcXVlc3RlZChRV2ViTmF2aWdhdGlvblJlcXVlc3QqKSAtLT4gdm9pZCIK
KyAgICA8PCAiUVF1aWNrV2ViVmlldy5sb2FkSHRtbChRU3RyaW5nLFFVcmwsUVVybCkgLS0+IHZv
aWQiCiAgICAgPDwgIlFRdWlja1dlYlZpZXcubG9hZEh0bWwoUVN0cmluZyxRVXJsKSAtLT4gdm9p
ZCIKICAgICA8PCAiUVF1aWNrV2ViVmlldy5sb2FkSHRtbChRU3RyaW5nKSAtLT4gdm9pZCIKICAg
ICA8PCAiUVF1aWNrV2ViVmlldy5nb0JhY2soKSAtLT4gdm9pZCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9y
LnBybyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVz
a3RvcEJlaGF2aW9yLnBybwppbmRleCA1OWEzY2E1Li5hMDI1MWY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlv
ci5wcm8KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0
cy9EZXNrdG9wQmVoYXZpb3IucHJvCkBAIC0xNCwxMSArMTQsNCBAQCBERUZJTkVTICs9IERJU0FC
TEVfRkxJQ0tBQkxFX1ZJRVdQT1JUPTEKIERFRklORVMgKz0gUVVJQ0tfVEVTVF9TT1VSQ0VfRElS
PVwiXFxcIiQkUFdEJCR7UU1BS0VfRElSX1NFUH1EZXNrdG9wQmVoYXZpb3JcXFwiXCIKIERFRklO
RVMgKz0gSU1QT1JUX0RJUj1cIlxcXCIkJHtST09UX0JVSUxEX0RJUn0kJHtRTUFLRV9ESVJfU0VQ
fWltcG9ydHNcXFwiXCIKIAotT1RIRVJfRklMRVMgKz0gXAotICAgIERlc2t0b3BCZWhhdmlvci9E
ZXNrdG9wV2ViVmlldy5xbWwgXAotICAgIERlc2t0b3BCZWhhdmlvci90c3RfbGlua0hvdmVyZWQu
cW1sIFwKLSAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X2xvYWRIdG1sLnFtbCBcCi0gICAgRGVza3Rv
cEJlaGF2aW9yL3RzdF9tZXNzYWdpbmcucW1sIFwKLSAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X25h
dmlnYXRpb25SZXF1ZXN0ZWQucW1sIFwKLSAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X3NpbmdsZUZp
bGV1cGxvYWQucW1sIFwKLSAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X211bHRpRmlsZXVwbG9hZC5x
bWwKK09USEVSX0ZJTEVTICs9IERlc2t0b3BCZWhhdmlvci8qLnFtbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy5w
cm8KaW5kZXggNTczMDdmMC4uMGZkMjQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcucHJvCkBAIC0xMywx
OSArMTMsNCBAQCBRVCArPSBxbWx0ZXN0CiBERUZJTkVTICs9IFFVSUNLX1RFU1RfU09VUkNFX0RJ
Uj1cIlxcXCIkJFBXRCQke1FNQUtFX0RJUl9TRVB9V2ViVmlld1xcXCJcIgogREVGSU5FUyArPSBJ
TVBPUlRfRElSPVwiXFxcIiQke1JPT1RfQlVJTERfRElSfSQke1FNQUtFX0RJUl9TRVB9aW1wb3J0
c1xcXCJcIgogCi1PVEhFUl9GSUxFUyArPSBcCi0gICAgV2ViVmlldy90c3RfZmF2SWNvbkxvYWQu
cW1sIFwKLSAgICBXZWJWaWV3L3RzdF9kb3dubG9hZC5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2dl
b3Blcm1pc3Npb24ucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9pdGVtU2VsZWN0b3IucW1sIFwKLSAg
ICBXZWJWaWV3L3RzdF9qYXZhU2NyaXB0RGlhbG9ncy5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2xv
YWRGYWlsLnFtbCBcCi0gICAgV2ViVmlldy90c3RfbG9hZElnbm9yZS5xbWwgXAotICAgIFdlYlZp
ZXcvdHN0X2xvYWRIdG1sLnFtbCBcCi0gICAgV2ViVmlldy90c3RfbG9hZFByb2dyZXNzLnFtbCBc
Ci0gICAgV2ViVmlldy90c3RfbG9hZFByb2dyZXNzU2lnbmFsLnFtbCBcCi0gICAgV2ViVmlldy90
c3RfcHJlZmVyZW5jZXMucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9wcm9wZXJ0aWVzLnFtbCBcCi0g
ICAgV2ViVmlldy90c3RfdGl0bGVDaGFuZ2VkLnFtbCBcCi0gICAgV2ViVmlldy90c3RfYXBwbGlj
YXRpb25TY2hlbWUucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9vcmlnaW4ucW1sCitPVEhFUl9GSUxF
UyArPSBXZWJWaWV3L3RzdF8qCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRVcmwucW1sIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkVXJs
LnFtbAppbmRleCA3YWI2OWJkLi41ZjU3NzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRVcmwucW1sCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmll
dy90c3RfbG9hZFVybC5xbWwKQEAgLTEwLDYgKzEwLDggQEAgVGVzdFdlYlZpZXcgewogICAgIHBy
b3BlcnR5IGludCBudW1Mb2FkU3RhcnRlZDogMAogICAgIHByb3BlcnR5IGludCBudW1Mb2FkU3Vj
Y2VlZGVkOiAwCiAKKyAgICBmb2N1czogdHJ1ZQorCiAgICAgb25Mb2FkUHJvZ3Jlc3NDaGFuZ2Vk
OiB7CiAgICAgICAgIGlmICh3YXRjaFByb2dyZXNzICYmIHdlYlZpZXcubG9hZFByb2dyZXNzICE9
IDEwMCkgewogICAgICAgICAgICAgd2F0Y2hQcm9ncmVzcyA9IGZhbHNlCkBAIC0yNyw2ICsyOSw4
IEBAIFRlc3RXZWJWaWV3IHsKICAgICBUZXN0Q2FzZSB7CiAgICAgICAgIGlkOiB0ZXN0CiAgICAg
ICAgIG5hbWU6ICJXZWJWaWV3TG9hZFVybCIKKyAgICAgICAgd2hlbjogd2luZG93U2hvd24KKwog
ICAgICAgICBmdW5jdGlvbiB0ZXN0X2xvYWRJZ25vcmVFbXB0eVVybCgpIHsKICAgICAgICAgICAg
IHZhciB1cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Rlc3QxLmh0bWwiKQogCkBAIC01
OCw1ICs2Miw0NSBAQCBUZXN0V2ViVmlldyB7CiAgICAgICAgICAgICB2ZXJpZnkoIXdhdGNoUHJv
Z3Jlc3MpCiAgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCB1cmwpCiAgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiB0ZXN0X3VybFByb3BlcnR5KCkgeworICAgICAgICAgICAgdmFy
IHVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDEuaHRtbCIpCisKKyAgICAgICAg
ICAgIHdlYlZpZXcudXJsID0gdXJsCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCB1
cmwpCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQor
ICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgdXJsKQorCisgICAgICAgICAgICB2YXIg
Ym9ndXNTaXRlID0gImh0dHA6Ly93d3cuc29tZXNpdGV0aGF0ZG9lc25vdGV4aXN0LmFiYy8iCisg
ICAgICAgICAgICB3ZWJWaWV3LnVybCA9IGJvZ3VzU2l0ZQorICAgICAgICAgICAgY29tcGFyZSh3
ZWJWaWV3LnVybCwgYm9ndXNTaXRlKQorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZv
ckxvYWRGYWlsZWQoKSkKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIGJvZ3VzU2l0
ZSkKKyAgICAgICAgICAgIHdlYlZpZXcubG9hZEh0bWwoImxvYWQgZmFpbGVkIiwgYm9ndXNTaXRl
LCBib2d1c1NpdGUpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCBib2d1c1NpdGUp
CisKKyAgICAgICAgICAgIHZhciBkYXRhVXJsID0gImRhdGE6dGV4dC9odG1sLGZvbyIKKyAgICAg
ICAgICAgIHdlYlZpZXcudXJsID0gZGF0YVVybAorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3
LnVybCwgZGF0YVVybCkKKworICAgICAgICAgICAgdmFyIHJlZGlyZWN0VXJsID0gUXQucmVzb2x2
ZWRVcmwoIi4uL2NvbW1vbi9yZWRpcmVjdC5odG1sIikKKyAgICAgICAgICAgIHdlYlZpZXcudXJs
ID0gcmVkaXJlY3RVcmwKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHJlZGlyZWN0
VXJsKQorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKSkK
KyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkKKworICAgICAgICAgICAgdmFy
IGxpbmtVcmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL2xpbmsuaHRtbCIpCisgICAgICAg
ICAgICB3ZWJWaWV3LnVybCA9IGxpbmtVcmwKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51
cmwsIGxpbmtVcmwpCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2Nl
ZWRlZCgpKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgbGlua1VybCkKKyAgICAg
ICAgICAgIGtleVByZXNzKFF0LktleV9SZXR1cm4pIC8vIExpbmsgaXMgZm9jdXNlZAorICAgICAg
ICAgICAgd2ViVmlldy5sb2FkaW5nQ2hhbmdlZC5jb25uZWN0KGZ1bmN0aW9uKGxvYWRSZXF1ZXN0
KSB7CisgICAgICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgbG9hZFJlcXVlc3QudXJs
KQorICAgICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkKKyAgICAgICAgICAg
IH0pCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQor
ICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgdXJsKQorICAgICAgICB9CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9jb21tb24vbGluay5odG1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9jb21tb24vbGluay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmU3OTFiN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9saW5rLmh0bWwKQEAgLTAsMCArMSw2
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJkb2N1bWVudC5saW5r
c1snZm9vJ10uZm9jdXMoKTsiPgorPGEgbmFtZT0iZm9vIiBocmVmPSJ0ZXN0MS5odG1sIj5MaW5r
PC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vcmVkaXJlY3QuaHRtbCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3JlZGlyZWN0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZhNzdkYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
Y29tbW9uL3JlZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSw4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIwOyB1cmw9
dGVzdDEuaHRtbCIKKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3Y2MzMGY0Li43NDhhNTczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjU3LDEzICs2
NTcsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1
aW50NjRfdCBpdGVtSUQsIENvcmVJUEM6OkFyZ3VtZW4KIAogU3RyaW5nIFdlYlBhZ2VQcm94eTo6
YWN0aXZlVVJMKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fbWFpbkZyYW1lKQotICAgICAgICByZXR1
cm4gU3RyaW5nKCk7Ci0KICAgICAvLyBJZiB0aGVyZSBpcyBhIGN1cnJlbnRseSBwZW5kaW5nIHVy
bCwgaXQgaXMgdGhlIGFjdGl2ZSBVUkwuCiAgICAgaWYgKCFtX3BlbmRpbmdBUElSZXF1ZXN0VVJM
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gbV9wZW5kaW5nQVBJUmVxdWVzdFVSTDsKIAorICAg
IGlmICghbV9tYWluRnJhbWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKwogICAgIGlmICgh
bV9tYWluRnJhbWUtPnVucmVhY2hhYmxlVVJMKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
bV9tYWluRnJhbWUtPnVucmVhY2hhYmxlVVJMKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcAppbmRleCAwMzczZWY0Li5jZWYy
OGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9h
ZENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxv
YWRDbGllbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBAIFF0V2ViUGFnZUxvYWRDbGllbnQ6OlF0V2Vi
UGFnZUxvYWRDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIFFRdWlja1dlYlZpZXcqIHdlYlZpCiAg
ICAgbG9hZENsaWVudC52ZXJzaW9uID0ga1dLUGFnZUxvYWRlckNsaWVudEN1cnJlbnRWZXJzaW9u
OwogICAgIGxvYWRDbGllbnQuY2xpZW50SW5mbyA9IHRoaXM7CiAgICAgbG9hZENsaWVudC5kaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lID0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZTsKKyAgICBsb2FkQ2xpZW50LmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lID0gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU7CiAgICAgbG9hZENsaWVudC5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUgPSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWU7CiAg
ICAgbG9hZENsaWVudC5kaWRDb21taXRMb2FkRm9yRnJhbWUgPSBkaWRDb21taXRMb2FkRm9yRnJh
bWU7CiAgICAgbG9hZENsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJhbWUgPSBkaWRGaW5pc2hMb2Fk
Rm9yRnJhbWU7CkBAIC01NCwxMiArNTUsMTggQEAgdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50Ojpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKGNvbnN0IFFVcmwmIHVybCkKIHsKICAgICBR
V2ViTG9hZFJlcXVlc3QgbG9hZFJlcXVlc3QodXJsLCBRUXVpY2tXZWJWaWV3OjpMb2FkU3RhcnRl
ZFN0YXR1cyk7CiAgICAgbV93ZWJWaWV3LT5kX2Z1bmMoKS0+ZGlkQ2hhbmdlTG9hZGluZ1N0YXRl
KCZsb2FkUmVxdWVzdCk7CisgICAgZW1pdCBtX3dlYlZpZXctPnVybENoYW5nZWQoKTsKK30KKwor
dm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZShjb25zdCBRVXJsJiB1cmwpCit7CisgICAgZW1pdCBtX3dlYlZp
ZXctPnVybENoYW5nZWQoKTsKKyAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVwZGF0ZSB0aGUgbG9h
ZGluZyBzdGF0ZSBoZXJlIGFzIHdlbGw/IFdpdGggYSByZWRpcmVjdCBzdGF0dXM/CiB9CiAKIHZv
aWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKCkKIHsKICAgICBl
bWl0IG1fd2ViVmlldy0+bmF2aWdhdGlvbkhpc3RvcnlDaGFuZ2VkKCk7Ci0gICAgZW1pdCBtX3dl
YlZpZXctPnVybENoYW5nZWQoKTsKICAgICBlbWl0IG1fd2ViVmlldy0+dGl0bGVDaGFuZ2VkKCk7
CiAgICAgbV93ZWJWaWV3LT5kX2Z1bmMoKS0+bG9hZERpZENvbW1pdCgpOwogfQpAQCAtOTAsMTgg
Kzk3LDI4IEBAIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlzcGF0Y2hMb2FkU3VjY2VlZGVk
KCkKICAgICBtX3dlYlZpZXctPmRfZnVuYygpLT5sb2FkRGlkU3VjY2VlZCgpOwogfQogCi12b2lk
IFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpc3BhdGNoTG9hZEZhaWxlZChXS0Vycm9yUmVmIGVycm9y
KQordm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaXNwYXRjaExvYWRGYWlsZWQoV0tGcmFtZVJl
ZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvcikKIHsKICAgICBpbnQgZXJyb3JDb2RlID0gV0tFcnJv
ckdldEVycm9yQ29kZShlcnJvcik7CiAgICAgaWYgKHRvSW1wbChlcnJvciktPnBsYXRmb3JtRXJy
b3IoKS5pc0NhbmNlbGxhdGlvbigpIHx8IGVycm9yQ29kZSA9PSBrV0tFcnJvckNvZGVGcmFtZUxv
YWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIHx8IGVycm9yQ29kZSA9PSBrV0tFcnJvckNvZGVQ
bHVnSW5XaWxsSGFuZGxlTG9hZCkgewogICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBMb2FkU3Rh
cnRlZFN0YXR1cyBoYXMgYSBjb3VudGVycGFydCB3aGVuIGUuZy4gcmVxdWVzdGluZyBhIGRvd25s
b2FkLgogICAgICAgICBkaXNwYXRjaExvYWRTdWNjZWVkZWQoKTsKKyAgICAgICAgLy8gVGhlIGFj
dGl2ZSB1cmwgbWlnaHQgaGF2ZSBjaGFuZ2VkIGFzIHdlbGwKKyAgICAgICAgZW1pdCBtX3dlYlZp
ZXctPnVybENoYW5nZWQoKTsKKwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUXRXZWJF
cnJvciBxdEVycm9yKGVycm9yKTsKICAgICBRV2ViTG9hZFJlcXVlc3QgbG9hZFJlcXVlc3QocXRF
cnJvci51cmwoKSwgUVF1aWNrV2ViVmlldzo6TG9hZEZhaWxlZFN0YXR1cywgcXRFcnJvci5kZXNj
cmlwdGlvbigpLCBzdGF0aWNfY2FzdDxRUXVpY2tXZWJWaWV3OjpFcnJvckRvbWFpbj4ocXRFcnJv
ci50eXBlKCkpLCBxdEVycm9yLmVycm9yQ29kZSgpKTsKICAgICBlbWl0IG1fd2ViVmlldy0+bG9h
ZGluZ0NoYW5nZWQoJmxvYWRSZXF1ZXN0KTsKKworICAgIC8vIFRoZSB1c2VyIGRpZCBub3Qgc2V0
IGFsdGVybmF0ZSBjb250ZW50IHdpdGggYW4gdW5yZWFjaGFibGUgdXJsIGFzIGEKKyAgICAvLyBy
ZXNwb25zZSB0byB0aGUgZmFpbGVkIGxvYWQsIHNvIHdlIHNldCB0aGUgdXJsIG1hbnVhbGx5IGhl
cmUsIGFuZAorICAgIC8vIGRldGVjdCB0aGlzIGNhc2UgaW4gcmVsb2FkKCkgdG8gZW5zdXJlIHdl
IHdpbGwgcmVsb2FkIHRoZSBmYWlsZWQgdXJsLgorICAgIFdlYkZyYW1lUHJveHkqIHdrZnJhbWUg
PSB0b0ltcGwoZnJhbWUpOworICAgIGlmICh3a2ZyYW1lLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1w
dHkoKSkKKyAgICAgICAgd2tmcmFtZS0+c2V0VW5yZWFjaGFibGVVUkwocXRFcnJvci51cmwoKS50
b1N0cmluZygpKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpzZXRMb2FkUHJvZ3Jl
c3MoaW50IGxvYWRQcm9ncmVzcykKQEAgLTEyNiwxMSArMTQzLDIyIEBAIHZvaWQgUXRXZWJQYWdl
TG9hZENsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdL
RnJhbWVSZWYKICAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUocVVybCk7CiB9CiAKK3ZvaWQgUXRXZWJQYWdlTG9hZENs
aWVudDo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICBy
ZXR1cm47CisgICAgV2ViRnJhbWVQcm94eSogd2tmcmFtZSA9IHRvSW1wbChmcmFtZSk7CisgICAg
UVN0cmluZyB1cmxTdHIod2tmcmFtZS0+cHJvdmlzaW9uYWxVUkwoKSk7CisgICAgUVVybCBxVXJs
ID0gdXJsU3RyOworICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUocVVybCk7Cit9CisK
IHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJv
ckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwg
V0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIGlmICghV0tGcmFtZUlz
TWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwotICAgIHRvUXRXZWJQYWdlTG9hZENs
aWVudChjbGllbnRJbmZvKS0+ZGlzcGF0Y2hMb2FkRmFpbGVkKGVycm9yKTsKKworICAgIHRvUXRX
ZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlzcGF0Y2hMb2FkRmFpbGVkKGZyYW1lLCBl
cnJvcik7CiB9CiAKIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkQ29tbWl0TG9hZEZvckZy
YW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQpAQCAtMTUxLDcgKzE3OSw3IEBAIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6
ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhCiB7
CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47Ci0g
ICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaXNwYXRjaExvYWRGYWlsZWQo
ZXJyb3IpOworICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlzcGF0Y2hM
b2FkRmFpbGVkKGZyYW1lLCBlcnJvcik7CiB9CiAKIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5oCmluZGV4IDY3MjU5N2EuLjQ4MzUwOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGll
bnQuaApAQCAtMzYsNiArMzYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKGNvbnN0IFFVcmwmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKGNvbnN0IFFVcmwm
KTsKICAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSgpOwogICAgIHZvaWQgZGlkU2FtZURv
Y3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZSgpOwpAQCAtNDMsMTEgKzQ0LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDaGFuZ2VC
YWNrRm9yd2FyZExpc3QoKTsKIAogICAgIHZvaWQgZGlzcGF0Y2hMb2FkU3VjY2VlZGVkKCk7Ci0g
ICAgdm9pZCBkaXNwYXRjaExvYWRGYWlsZWQoV0tFcnJvclJlZik7CisgICAgdm9pZCBkaXNwYXRj
aExvYWRGYWlsZWQoV0tGcmFtZVJlZiwgV0tFcnJvclJlZik7CiAgICAgdm9pZCBzZXRMb2FkUHJv
Z3Jlc3MoaW50KTsKIAogICAgIC8vIFdLUGFnZUxvYWRDbGllbnQgY2FsbGJhY2tzLgogICAgIHN0
YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0Zy
YW1lUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAg
IHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0Vycm9yUmVmLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lk
IGRpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmlu
aXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmIHVzZXJEYXRh
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyOTljNjdhLi44NDE4ZmI0IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTIt
MDQtMTggIFRvciBBcm5lIFZlc3Riw7ggIDx0b3Jhcm52QGdtYWlsLmNvbT4KKworICAgICAgICBb
UXRdIE1ha2UgdGhlIHdlYiB2aWV3J3MgdXJsIHByb3BlcnR5IGZvbGxvdyB0aGUgYWN0aXZlIHVy
bAorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1
NAorCisgICAgICAgIFVwZGF0ZSAgdGhlIGxvY2F0aW9uIGJhciBpbiB0aGUgbWluaWJyb3dzZXIg
dG8gYmVoYXZlCisgICAgICAgIGEgYml0IG1vcmUgbGlrZSBub3JtYWwgYnJvd3NlcnMgaW4gdGVy
bXMgb2Ygd2hlbiB0aGUgdXJsIHdpbGwgY2hhbmdlCisgICAgICAgIGFuZCBob3cgYWN0aXZlIGZv
Y3VzIGlzIGhhbmRsZWQuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3Nlcldp
bmRvdy5xbWw6CisKIDIwMTItMDQtMTkgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdv
LnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gW0RSVF0gU2hvdWxkIGNyZWF0ZSBv
ZmZsaW5lIHN0b3JhZ2UgaW5zaWRlIERVTVBSRU5ERVJUUkVFX1RFTVAKZGlmZiAtLWdpdCBhL1Rv
b2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbCBiL1Rvb2xzL01pbmlCcm93
c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbAppbmRleCAzOGY2YWY5Li4zZjNhMWRkIDEwMDY0
NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKKysrIGIv
VG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCkBAIC00MSwxMCArNDEs
MTIgQEAgUmVjdGFuZ2xlIHsKIAogICAgIGZ1bmN0aW9uIGxvYWQoYWRkcmVzcykgewogICAgICAg
ICB3ZWJWaWV3LnVybCA9IGFkZHJlc3MKKyAgICAgICAgd2ViVmlldy5mb3JjZUFjdGl2ZUZvY3Vz
KCkKICAgICB9CiAKICAgICBmdW5jdGlvbiByZWxvYWQoKSB7CiAgICAgICAgIHdlYlZpZXcucmVs
b2FkKCkKKyAgICAgICAgd2ViVmlldy5mb3JjZUFjdGl2ZUZvY3VzKCkKICAgICB9CiAKICAgICBm
dW5jdGlvbiBmb2N1c0FkZHJlc3NCYXIoKSB7CkBAIC0yNTEsMTAgKzI1MywxMCBAQCBSZWN0YW5n
bGUgewogICAgICAgICAgICAgICAgICAgICBsZWZ0OiBwYXJlbnQubGVmdAogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICByYWRpdXM6IDMKLSAgICAgICAgICAgICAgICB3aWR0aDog
cGFyZW50LndpZHRoIC8gMTAwICogd2ViVmlldy5sb2FkUHJvZ3Jlc3MKKyAgICAgICAgICAgICAg
ICB3aWR0aDogcGFyZW50LndpZHRoIC8gMTAwICogTWF0aC5tYXgoNSwgd2ViVmlldy5sb2FkUHJv
Z3Jlc3MpCiAgICAgICAgICAgICAgICAgY29sb3I6ICJibHVlIgogICAgICAgICAgICAgICAgIG9w
YWNpdHk6IDAuMwotICAgICAgICAgICAgICAgIHZpc2libGU6IHdlYlZpZXcubG9hZFByb2dyZXNz
ICE9IDEwMAorICAgICAgICAgICAgICAgIHZpc2libGU6IHdlYlZpZXcubG9hZGluZwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgSW1hZ2UgewogICAgICAgICAgICAgICAgIGlkOiBmYXZJY29u
CkBAIC0yODMsOCArMjg1LDEzIEBAIFJlY3RhbmdsZSB7CiAgICAgICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICAgICAgS2V5cy5vblJldHVyblByZXNzZWQ6ewotICAgICAgICAgICAgICAgICAg
ICBjb25zb2xlLmxvZygiZ29pbmcgdG86ICIsIGFkZHJlc3NMaW5lLnRleHQpCi0gICAgICAgICAg
ICAgICAgICAgIHdlYlZpZXcudXJsID0gdXRpbHMudXJsRnJvbVVzZXJJbnB1dChhZGRyZXNzTGlu
ZS50ZXh0KQorICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTmF2aWdhdGluZyB0bzog
IiwgYWRkcmVzc0xpbmUudGV4dCkKKyAgICAgICAgICAgICAgICAgICAgbG9hZCh1dGlscy51cmxG
cm9tVXNlcklucHV0KGFkZHJlc3NMaW5lLnRleHQpKQorICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIG9uQWN0aXZlRm9jdXNDaGFuZ2VkOiB7CisgICAgICAgICAgICAgICAgICAg
IGlmICghYWN0aXZlRm9jdXMpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gd2ViVmll
dy51cmwKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTMw
MSwxMCArMzA4LDE2IEBAIFJlY3RhbmdsZSB7CiAKICAgICAgICAgb25UaXRsZUNoYW5nZWQ6IHBh
Z2VUaXRsZUNoYW5nZWQodGl0bGUpCiAgICAgICAgIG9uVXJsQ2hhbmdlZDogewotICAgICAgICAg
ICAgYWRkcmVzc0xpbmUudGV4dCA9IHVybAorICAgICAgICAgICAgaWYgKCFhZGRyZXNzTGluZS5h
Y3RpdmVGb2N1cykKKyAgICAgICAgICAgICAgICBhZGRyZXNzTGluZS50ZXh0ID0gdXJsCisKICAg
ICAgICAgICAgIGlmIChvcHRpb25zLnByaW50TG9hZGVkVXJscykKLSAgICAgICAgICAgICAgICBj
b25zb2xlLmxvZygiTG9hZGVkOiIsIHdlYlZpZXcudXJsLnRvU3RyaW5nKCkpOwotICAgICAgICAg
ICAgZm9yY2VBY3RpdmVGb2N1cygpOworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJXZWJW
aWV3IHVybCBjaGFuZ2VkOiIsIHdlYlZpZXcudXJsLnRvU3RyaW5nKCkpOworICAgICAgICB9CisK
KyAgICAgICAgb25Mb2FkaW5nQ2hhbmdlZDogeworICAgICAgICAgICAgaWYgKCFsb2FkaW5nICYm
IGxvYWRSZXF1ZXN0LnN0YXR1cyA9PSBXZWJWaWV3LkxvYWRGYWlsZWRTdGF0dXMpCisgICAgICAg
ICAgICAgICAgd2ViVmlldy5sb2FkSHRtbCgiRmFpbGVkIHRvIGxvYWQgIiArIGxvYWRSZXF1ZXN0
LnVybCwgIiIsIGxvYWRSZXF1ZXN0LnVybCkKICAgICAgICAgfQogCiAgICAgICAgIGV4cGVyaW1l
bnRhbC5pdGVtU2VsZWN0b3I6IEl0ZW1TZWxlY3RvciB7IH0KLS0gCjEuNy43LjUgKEFwcGxlIEdp
dC0yNikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138108</attachid>
            <date>2012-04-20 09:46:09 -0700</date>
            <delta_ts>2012-05-23 01:19:33 -0700</delta_ts>
            <desc>Update based on feedback</desc>
            <filename>0001-Qt-Make-the-web-view-s-url-property-follow-the-activ.patch</filename>
            <type>text/plain</type>
            <size>28224</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">RnJvbSAzZmIxMjEzMDg3ZWEyYjY2OGVlMmY2YzQ5NjkwMmQ1Y2ExNTc3ZmVjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9yPTIwQXJuZT0yMFZlc3RiPUMzPUI4Pz0g
PHRvcmFybnZAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE5IEFwciAyMDEyIDA3OjMyOjI2ICswMjAw
ClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBNYWtlIHRoZSB3ZWIgdmlldydzIHVybCBwcm9wZXJ0eSBm
b2xsb3cgdGhlIGFjdGl2ZSB1cmwKCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NzU1NAoKVGhlIHVybCBwcm9wZXJ0eSBvZiB0aGUgd2VidmlldyBub3cgcmVmbGVjdHMg
dGhlICdhY3RpdmUnIHVybCBvZiB0aGUKcGFnZSwgd2hpY2ggbWFwcyB0byBlaXRoZXIgdGhlIGN1
cnJlbnRseSBsb2FkaW5nIHVybCwgaW4gdGhlIGNhc2Ugb2YKYW4gb25nb2luZyBsb2FkLCBvciB0
aGUgcmVzdWx0IG9mIGEgbG9hZCwgZXZlbiB3aGVuIHRoZSBsb2FkIGZhaWxlZC4KCkluIHByYWN0
aWNlIHRoaXMgbWVhbnMgdGhhdCBzZXR0aW5nIHRoZSB1cmwgdGhvdWdoIFFNTCwgb3IgbmF2aWdh
dGluZwp0byBhIG5ldyB1cmwgaW4gdGhlIHBhZ2UgYnkgZS5nIGNsaWNraW5nLCB3aWxsIGJvdGgg
aW5zdGFudGx5IGNoYW5nZQp0aGUgdXJsLXByb3BlcnR5IG9mIHRoZSB3ZWJ2aWV3IHRvIHRoZSB0
YXJnZXQgdXJsLiBUaGlzIGRpZmZlcnMgZnJvbQplYXJsaWVyIGJlaGF2aW9yLCB3aGVyZSB3ZSB3
b3VsZCB1cGRhdGUgdGhlIHVybCB3aGVuIHRoZSBsb2FkCmNvbW1pdHRlZC4KCkFuIG9wdGlvbmFs
IGFyZ3VtZW50IGlzIGFkZGVkIHRvIGxvYWRIdG1sKCksIHRvIGFsbG93IHNldHRpbmcKdGhlIHVu
cmVhY2hhYmxlIHVybCB3aGVuIHByb3ZpZGluZyByZXBsYWNlbWVudCBjb250ZW50IGZvciBmYWls
ZWQKbG9hZHMuCgpBIHNsaWdodCBjaGFuZ2UgaW4gdGhlIGFjdGl2ZVVybCgpIGltcGxlbWVudGF0
aW9uIGlzIGFsc28gZG9uZSwKd2hlcmUgd2Ugbm93IGZhdm91ciB0aGUgdXJsIG9mIGFuIHBlbmRp
bmcgQVBJIHJlcXVlc3QsIGV2ZW4gd2hlbgp3ZSBkb24ndCBoYXZlIGEgbWFpbmZyYW1lIHlldC4K
CkZpbmFsbHksIHRoZSBsb2NhdGlvbiBiYXIgaW4gdGhlIG1pbmlicm93c2VyIGlzIHVwZGF0ZWQg
dG8gYmVoYXZlCmEgYml0IG1vcmUgbGlrZSBub3JtYWwgYnJvd3NlcnMgaW4gdGVybXMgb2Ygd2hl
biB0aGUgdXJsIHdpbGwgY2hhbmdlCmFuZCBob3cgYWN0aXZlIGZvY3VzIGlzIGhhbmRsZWQuCi0t
LQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDUzICsrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwICB8ICAgNjIgKysrKysrKysrKysrKysrLS0tLS0KIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggIHwgICAgNCArLQogLi4uL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oICAgfCAgICAzICstCiAu
Li4vQVBJL3F0L3Rlc3RzL3B1YmxpY2FwaS90c3RfcHVibGljYXBpLmNwcCAgICAgICB8ICAgIDEg
KwogLi4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IucHJvICAgICAgfCAg
ICA5ICstLS0KIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcucHJv
ICAgIHwgICAxNyArLS0tLS0KIC4uLi9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rf
bG9hZFVybC5xbWwgIHwgICA2MCArKysrKysrKysrKysrKysrKysrCiAuLi4vQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL2NvbW1vbi9saW5rLmh0bWwgICAgICAgICB8ICAgIDYgKysKIC4uLi9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvY29tbW9uL3JlZGlyZWN0Lmh0bWwgICAgIHwgICAgOCArKysKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwICAgICAgICAgIHwgICAgNiArLQog
Li4uL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwICAgfCAgIDQy
ICsrKysrKysrKysrKy0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9h
ZENsaWVudC5oICB8ICAgIDQgKy0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxMiArKysrCiBUb29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJv
d3NlcldpbmRvdy5xbWwgICAgICAgICB8ICAgMzQgKysrKysrKysrLS0KIDE1IGZpbGVzIGNoYW5n
ZWQsIDI2NSBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9s
aW5rLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9yZWRpcmVjdC5odG1sCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDZh
ZDg4MmIuLmZjZjczMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxMi0wNC0xOCAg
VG9yIEFybmUgVmVzdGLDuCAgPHRvcmFybnZAZ21haWwuY29tPgorCisgICAgICAgIFtRdF0gTWFr
ZSB0aGUgd2ViIHZpZXcncyB1cmwgcHJvcGVydHkgZm9sbG93IHRoZSBhY3RpdmUgdXJsCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTU0CisKKyAg
ICAgICAgVGhlIHVybCBwcm9wZXJ0eSBvZiB0aGUgd2VidmlldyBub3cgcmVmbGVjdHMgdGhlICdh
Y3RpdmUnIHVybCBvZiB0aGUKKyAgICAgICAgcGFnZSwgd2hpY2ggbWFwcyB0byBlaXRoZXIgdGhl
IGN1cnJlbnRseSBsb2FkaW5nIHVybCwgaW4gdGhlIGNhc2Ugb2YKKyAgICAgICAgYW4gb25nb2lu
ZyBsb2FkLCBvciB0aGUgcmVzdWx0IG9mIGEgbG9hZCwgZXZlbiB3aGVuIHRoZSBsb2FkIGZhaWxl
ZC4KKworICAgICAgICBJbiBwcmFjdGljZSB0aGlzIG1lYW5zIHRoYXQgc2V0dGluZyB0aGUgdXJs
IHRob3VnaCBRTUwsIG9yIG5hdmlnYXRpbmcKKyAgICAgICAgdG8gYSBuZXcgdXJsIGluIHRoZSBw
YWdlIGJ5IGUuZyBjbGlja2luZywgd2lsbCBib3RoIGluc3RhbnRseSBjaGFuZ2UKKyAgICAgICAg
dGhlIHVybC1wcm9wZXJ0eSBvZiB0aGUgd2VidmlldyB0byB0aGUgdGFyZ2V0IHVybC4gVGhpcyBk
aWZmZXJzIGZyb20KKyAgICAgICAgZWFybGllciBiZWhhdmlvciwgd2hlcmUgd2Ugd291bGQgdXBk
YXRlIHRoZSB1cmwgd2hlbiB0aGUgbG9hZAorICAgICAgICBjb21taXR0ZWQuCisKKyAgICAgICAg
QW4gb3B0aW9uYWwgYXJndW1lbnQgaXMgYWRkZWQgdG8gbG9hZEh0bWwoKSwgdG8gYWxsb3cgc2V0
dGluZworICAgICAgICB0aGUgdW5yZWFjaGFibGUgdXJsIHdoZW4gcHJvdmlkaW5nIHJlcGxhY2Vt
ZW50IGNvbnRlbnQgZm9yIGZhaWxlZAorICAgICAgICBsb2Fkcy4KKworICAgICAgICBBIHNsaWdo
dCBjaGFuZ2UgaW4gdGhlIGFjdGl2ZVVybCgpIGltcGxlbWVudGF0aW9uIGlzIGFsc28gZG9uZSwK
KyAgICAgICAgd2hlcmUgd2Ugbm93IGZhdm91ciB0aGUgdXJsIG9mIGFuIHBlbmRpbmcgQVBJIHJl
cXVlc3QsIGV2ZW4gd2hlbgorICAgICAgICB3ZSBkb24ndCBoYXZlIGEgbWFpbmZyYW1lIHlldC4K
KworICAgICAgICBGaW5hbGx5LCB0aGUgbG9jYXRpb24gYmFyIGluIHRoZSBtaW5pYnJvd3NlciBp
cyB1cGRhdGVkIHRvIGJlaGF2ZQorICAgICAgICBhIGJpdCBtb3JlIGxpa2Ugbm9ybWFsIGJyb3dz
ZXJzIGluIHRlcm1zIG9mIHdoZW4gdGhlIHVybCB3aWxsIGNoYW5nZQorICAgICAgICBhbmQgaG93
IGFjdGl2ZSBmb2N1cyBpcyBoYW5kbGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpvbkNvbXBv
bmVudENvbXBsZXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6OnJlbG9hZCk6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3Ojp1cmwpOgorICAgICAgICAoUVF1aWNrV2ViVmlldzo6c2V0VXJsKToK
KyAgICAgICAgKFFRdWlja1dlYlZpZXc6OmxvYWRIdG1sKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybzoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcucHJvOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZFVybC5xbWw6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vbGluay5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9yZWRpcmVjdC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphY3RpdmVVUkwpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcDoKKyAgICAgICAgKFF0V2ViUGFnZUxvYWRDbGll
bnQ6OlF0V2ViUGFnZUxvYWRDbGllbnQpOgorICAgICAgICAoUXRXZWJQYWdlTG9hZENsaWVudDo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChRdFdlYlBhZ2VMb2Fk
Q2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSk6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDb21taXRMb2FkRm9yRnJhbWUp
OgorICAgICAgICAoUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlzcGF0Y2hMb2FkRmFpbGVkKToKKyAg
ICAgICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJy
b3JGb3JGcmFtZSk6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRGYWlsTG9hZFdp
dGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENs
aWVudC5oOgorICAgICAgICAoUXRXZWJQYWdlTG9hZENsaWVudCk6CisKIDIwMTItMDQtMTkgIFZp
dmVrIEdhbGF0YWdlICA8dml2ZWtnYWxhdGFnZUBnbWFpbC5jb20+CiAKICAgICAgICAgRGV2VG9v
bHM6IGFzc2VydGlvbiBmYWlsdXJlIHVwb24gZGV2dG9vbHMgd2luZG93IHJlb3Blbi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4
IDJiMGM1ZjkuLjE0MWI0ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNDcsOSArNDcsMTAgQEAKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8UXRRbWwvUVFtbEVu
Z2luZT4KICNpbmNsdWRlIDxRdFF1aWNrL1FRdWlja0NhbnZhcz4KKyNpbmNsdWRlIDxXS09wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgotI2luY2x1ZGUgPFdLT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0tVUkwuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CkBAIC0xNTIsMTAgKzE1MywxMSBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2
YXRlOjpsb2FkRGlkU3VjY2VlZCgpCiAKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6Om9uQ29t
cG9uZW50Q29tcGxldGUoKQogewotICAgIGlmIChtX2RlZmVyZWRVcmxUb0xvYWQuaXNFbXB0eSgp
KQorICAgIGlmIChtX2RlZmVycmVkVXJsVG9Mb2FkLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgcV9wdHItPnNldFVybChtX2RlZmVyZWRVcmxUb0xvYWQpOworICAgIHFfcHRyLT5z
ZXRVcmwobV9kZWZlcnJlZFVybFRvTG9hZCk7CisgICAgbV9kZWZlcnJlZFVybFRvTG9hZCA9IFFV
cmwoKTsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0TmVlZHNEaXNwbGF5KCkK
QEAgLTExMDgsNiArMTExMCwxNyBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OnN0b3AoKQogdm9pZCBR
UXVpY2tXZWJWaWV3OjpyZWxvYWQoKQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKKworICAg
IFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGQtPndlYlBhZ2VQcm94eS0+bWFpbkZyYW1lKCk7
CisgICAgaWYgKG1haW5GcmFtZSAmJiAhbWFpbkZyYW1lLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1w
dHkoKSAmJiBtYWluRnJhbWUtPnVybCgpICE9IGJsYW5rVVJMKCkpIHsKKyAgICAgICAgLy8gV2Ug
aGF2ZSBhbiB1bnJlYWNoYWJsZSB1cmwsIGJ1dCBoYXZlbid0IGxvYWRlZCBhbHRlcm5hdGl2ZSBj
b250ZW50CisgICAgICAgIC8vIGZvciBpdCAoYW4gZXJyb3IgcGFnZSBlZy4pLCBzbyBXZWJDb3Jl
IGRvZXNuJ3Qga25vdyBhYm91dCB0aGUgdW5yZWFjaGFibGUKKyAgICAgICAgLy8gdXJsLCBhbmQg
d2lsbCB0cnkgdG8gcmVsb2FkIHRoZSBjdXJyZW50bHkgY29tbWl0dGVkIHVybCBpbnN0ZWFkLiBX
ZSBkb24ndAorICAgICAgICAvLyB3YW50IHRoYXQsIHNvIHdlIG92ZXJyaWRlIHRoZSByZWxvYWQg
aGVyZSBieSBkb2luZyBhIG1hbnVhbCBsb2FkLgorICAgICAgICBkLT53ZWJQYWdlUHJveHktPmxv
YWRVUkwobWFpbkZyYW1lLT51bnJlYWNoYWJsZVVSTCgpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIGNvbnN0IGJvb2wgcmVsb2FkRnJvbU9yaWdpbiA9IHRydWU7CiAgICAgZC0+d2Vi
UGFnZVByb3h5LT5yZWxvYWQocmVsb2FkRnJvbU9yaWdpbik7CiB9CkBAIC0xMTE1LDEwICsxMTI4
LDEyIEBAIHZvaWQgUVF1aWNrV2ViVmlldzo6cmVsb2FkKCkKIFFVcmwgUVF1aWNrV2ViVmlldzo6
dXJsKCkgY29uc3QKIHsKICAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7Ci0gICAgUmVmUHRy
PFdlYkZyYW1lUHJveHk+IG1haW5GcmFtZSA9IGQtPndlYlBhZ2VQcm94eS0+bWFpbkZyYW1lKCk7
Ci0gICAgaWYgKCFtYWluRnJhbWUpCi0gICAgICAgIHJldHVybiBRVXJsKCk7Ci0gICAgcmV0dXJu
IFFVcmwoUVN0cmluZyhtYWluRnJhbWUtPnVybCgpKSk7CisKKyAgICBpZiAoIWlzQ29tcG9uZW50
Q29tcGxldGUoKSkKKyAgICAgICAgcmV0dXJuIGQtPm1fZGVmZXJyZWRVcmxUb0xvYWQ7CisKKyAg
ICBRX0FTU0VSVChkLT5tX2N1cnJlbnRVcmwgPT0gUVVybChkLT53ZWJQYWdlUHJveHktPmFjdGl2
ZVVSTCgpKSk7CisgICAgcmV0dXJuIGQtPm1fY3VycmVudFVybDsKIH0KIAogdm9pZCBRUXVpY2tX
ZWJWaWV3OjpzZXRVcmwoY29uc3QgUVVybCYgdXJsKQpAQCAtMTEyOCwxMiArMTE0MywyNCBAQCB2
b2lkIFFRdWlja1dlYlZpZXc6OnNldFVybChjb25zdCBRVXJsJiB1cmwpCiAgICAgaWYgKHVybC5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghaXNDb21wb25lbnRDb21wbGV0
ZSgpKSB7Ci0gICAgICAgIGQtPm1fZGVmZXJlZFVybFRvTG9hZCA9IHVybDsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KKyAgICBpZiAoIWlzQ29tcG9uZW50Q29tcGxldGUoKSkKKyAgICAgICAgZC0+
bV9kZWZlcnJlZFVybFRvTG9hZCA9IHVybDsKKyAgICBlbHNlCisgICAgICAgIGQtPndlYlBhZ2VQ
cm94eS0+bG9hZFVSTCh1cmwudG9TdHJpbmcoKSk7CiAKLSAgICBkLT53ZWJQYWdlUHJveHktPmxv
YWRVUkwodXJsLnRvU3RyaW5nKCkpOworICAgIGVtaXRVcmxDaGFuZ2VJZk5lZWRlZCgpOworfQor
CisvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgZW1pdCB1cmxDaGFuZ2VkIHVubGVzcyBpdCBhY3R1YWxs
eSBjaGFuZ2VkCit2b2lkIFFRdWlja1dlYlZpZXc6OmVtaXRVcmxDaGFuZ2VJZk5lZWRlZCgpCit7
CisgICAgUV9EKFFRdWlja1dlYlZpZXcpOworCisgICAgUVVybCBhY3RpdmVVcmwgPSBRVXJsKGQt
PndlYlBhZ2VQcm94eS0+YWN0aXZlVVJMKCkpOworICAgIGlmIChhY3RpdmVVcmwgIT0gZC0+bV9j
dXJyZW50VXJsKSB7CisgICAgICAgIGQtPm1fY3VycmVudFVybCA9IGFjdGl2ZVVybDsKKyAgICAg
ICAgZW1pdCB1cmxDaGFuZ2VkKCk7CisgICAgfQogfQogCiBRVXJsIFFRdWlja1dlYlZpZXc6Omlj
b24oKSBjb25zdApAQCAtMTQyNywxMiArMTQ1NCwxOSBAQCB2b2lkIFFRdWlja1dlYlZpZXc6Omhh
bmRsZUZsaWNrYWJsZU1vdXNlUmVsZWFzZShjb25zdCBRUG9pbnRGJiBwb3NpdGlvbiwgcWludDY0
CiAgICAgRXh0ZXJuYWwgb2JqZWN0cyBzdWNoIGFzIHN0eWxlc2hlZXRzIG9yIGltYWdlcyByZWZl
cmVuY2VkIGluIHRoZSBIVE1MCiAgICAgZG9jdW1lbnQgYXJlIGxvY2F0ZWQgcmVsYXRpdmUgdG8g
XGEgYmFzZVVybC4KIAorICAgIElmIGFuIFxhIHVucmVhY2hhYmxlVXJsIGlzIHBhc3NlZCBpdCBp
cyB1c2VkIGFzIHRoZSB1cmwgZm9yIHRoZSBsb2FkZWQKKyAgICBjb250ZW50LiBUaGlzIGlzIHR5
cGljYWxseSB1c2VkIHRvIGRpc3BsYXkgZXJyb3IgcGFnZXMgZm9yIGEgZmFpbGVkCisgICAgbG9h
ZC4KKwogICAgIFxzYSBsb2FkKCkKICovCi12b2lkIFFRdWlja1dlYlZpZXc6OmxvYWRIdG1sKGNv
bnN0IFFTdHJpbmcmIGh0bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwpCit2b2lkIFFRdWlja1dlYlZp
ZXc6OmxvYWRIdG1sKGNvbnN0IFFTdHJpbmcmIGh0bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwsIGNv
bnN0IFFVcmwmIHVucmVhY2hhYmxlVXJsKQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKLSAg
ICBkLT53ZWJQYWdlUHJveHktPmxvYWRIVE1MU3RyaW5nKGh0bWwsIGJhc2VVcmwudG9TdHJpbmco
KSk7CisgICAgaWYgKHVucmVhY2hhYmxlVXJsLmlzVmFsaWQoKSkKKyAgICAgICAgZC0+d2ViUGFn
ZVByb3h5LT5sb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyhodG1sLCBiYXNlVXJsLnRvU3RyaW5nKCks
IHVucmVhY2hhYmxlVXJsLnRvU3RyaW5nKCkpOworICAgIGVsc2UKKyAgICAgICAgZC0+d2ViUGFn
ZVByb3h5LT5sb2FkSFRNTFN0cmluZyhodG1sLCBiYXNlVXJsLnRvU3RyaW5nKCkpOwogfQogCiBR
UG9pbnRGIFFRdWlja1dlYlZpZXc6OnBhZ2VJdGVtUG9zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IGZjOGUzYjMuLjk2MWM4
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaApAQCAtMTQyLDcgKzE0Miw3IEBAIHB1YmxpYzoKICAgICBRUG9pbnRGIHBhZ2VJdGVt
UG9zKCk7CiAKIHB1YmxpYyBRX1NMT1RTOgotICAgIHZvaWQgbG9hZEh0bWwoY29uc3QgUVN0cmlu
ZyYgaHRtbCwgY29uc3QgUVVybCYgYmFzZVVybCA9IFFVcmwoKSk7CisgICAgdm9pZCBsb2FkSHRt
bChjb25zdCBRU3RyaW5nJiBodG1sLCBjb25zdCBRVXJsJiBiYXNlVXJsID0gUVVybCgpLCBjb25z
dCBRVXJsJiB1bnJlYWNoYWJsZVVybCA9IFFVcmwoKSk7CiAKICAgICB2b2lkIGdvQmFjaygpOwog
ICAgIHZvaWQgZ29Gb3J3YXJkKCk7CkBAIC0xOTUsNiArMTk1LDggQEAgcHJpdmF0ZToKICAgICBR
UXVpY2tXZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIFFRdWlja0l0ZW0qIHBh
cmVudCA9IDApOwogICAgIFdLUGFnZVJlZiBwYWdlUmVmKCkgY29uc3Q7CiAKKyAgICB2b2lkIGVt
aXRVcmxDaGFuZ2VJZk5lZWRlZCgpOworCiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZv
aWQgX3Ffc3VzcGVuZCgpKTsKICAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBfcV9y
ZXN1bWUoKSk7CiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3FfY29udGVudFZp
ZXdwb3J0Q2hhbmdlZChjb25zdCBRUG9pbnRGJikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IGFkN2IyZDAuLjU4ODRi
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmgKQEAgLTE2OSw3ICsxNjksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2xv
YWRTdGFydGVkU2lnbmFsU2VudDsKICAgICBib29sIG1fZGlhbG9nQWN0aXZlOwogICAgIFFVcmwg
bV9pY29uVVJMOwotICAgIFFVcmwgbV9kZWZlcmVkVXJsVG9Mb2FkOworICAgIFFVcmwgbV9kZWZl
cnJlZFVybFRvTG9hZDsKKyAgICBRVXJsIG1fY3VycmVudFVybDsKIH07CiAKIGNsYXNzIFFRdWlj
a1dlYlZpZXdMZWdhY3lQcml2YXRlIDogcHVibGljIFFRdWlja1dlYlZpZXdQcml2YXRlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcHVibGljYXBp
L3RzdF9wdWJsaWNhcGkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0
cy9wdWJsaWNhcGkvdHN0X3B1YmxpY2FwaS5jcHAKaW5kZXggZjVmOTc2Ni4uMzEwNGUxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9wdWJsaWNhcGkv
dHN0X3B1YmxpY2FwaS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9wdWJsaWNhcGkvdHN0X3B1YmxpY2FwaS5jcHAKQEAgLTcwLDYgKzcwLDcgQEAgc3RhdGlj
IFFTdHJpbmdMaXN0IGV4cGVjdGVkQVBJID0gUVN0cmluZ0xpc3QoKQogICAgIDw8ICJRUXVpY2tX
ZWJWaWV3Lmljb25DaGFuZ2VkKCkgLS0+IHZvaWQiCiAgICAgPDwgIlFRdWlja1dlYlZpZXcubGlu
a0hvdmVyZWQoUVVybCxRU3RyaW5nKSAtLT4gdm9pZCIKICAgICA8PCAiUVF1aWNrV2ViVmlldy5u
YXZpZ2F0aW9uUmVxdWVzdGVkKFFXZWJOYXZpZ2F0aW9uUmVxdWVzdCopIC0tPiB2b2lkIgorICAg
IDw8ICJRUXVpY2tXZWJWaWV3LmxvYWRIdG1sKFFTdHJpbmcsUVVybCxRVXJsKSAtLT4gdm9pZCIK
ICAgICA8PCAiUVF1aWNrV2ViVmlldy5sb2FkSHRtbChRU3RyaW5nLFFVcmwpIC0tPiB2b2lkIgog
ICAgIDw8ICJRUXVpY2tXZWJWaWV3LmxvYWRIdG1sKFFTdHJpbmcpIC0tPiB2b2lkIgogICAgIDw8
ICJRUXVpY2tXZWJWaWV3LmdvQmFjaygpIC0tPiB2b2lkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IucHJv
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9w
QmVoYXZpb3IucHJvCmluZGV4IDU5YTNjYTUuLmEwMjUxZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBy
bworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rl
c2t0b3BCZWhhdmlvci5wcm8KQEAgLTE0LDExICsxNCw0IEBAIERFRklORVMgKz0gRElTQUJMRV9G
TElDS0FCTEVfVklFV1BPUlQ9MQogREVGSU5FUyArPSBRVUlDS19URVNUX1NPVVJDRV9ESVI9XCJc
XFwiJCRQV0QkJHtRTUFLRV9ESVJfU0VQfURlc2t0b3BCZWhhdmlvclxcXCJcIgogREVGSU5FUyAr
PSBJTVBPUlRfRElSPVwiXFxcIiQke1JPT1RfQlVJTERfRElSfSQke1FNQUtFX0RJUl9TRVB9aW1w
b3J0c1xcXCJcIgogCi1PVEhFUl9GSUxFUyArPSBcCi0gICAgRGVza3RvcEJlaGF2aW9yL0Rlc2t0
b3BXZWJWaWV3LnFtbCBcCi0gICAgRGVza3RvcEJlaGF2aW9yL3RzdF9saW5rSG92ZXJlZC5xbWwg
XAotICAgIERlc2t0b3BCZWhhdmlvci90c3RfbG9hZEh0bWwucW1sIFwKLSAgICBEZXNrdG9wQmVo
YXZpb3IvdHN0X21lc3NhZ2luZy5xbWwgXAotICAgIERlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdh
dGlvblJlcXVlc3RlZC5xbWwgXAotICAgIERlc2t0b3BCZWhhdmlvci90c3Rfc2luZ2xlRmlsZXVw
bG9hZC5xbWwgXAotICAgIERlc2t0b3BCZWhhdmlvci90c3RfbXVsdGlGaWxldXBsb2FkLnFtbAor
T1RIRVJfRklMRVMgKz0gRGVza3RvcEJlaGF2aW9yLyoucW1sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcucHJvIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybwpp
bmRleCA1NzMwN2YwLi4wZmQyNDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy5wcm8KQEAgLTEzLDE5ICsx
Myw0IEBAIFFUICs9IHFtbHRlc3QKIERFRklORVMgKz0gUVVJQ0tfVEVTVF9TT1VSQ0VfRElSPVwi
XFxcIiQkUFdEJCR7UU1BS0VfRElSX1NFUH1XZWJWaWV3XFxcIlwiCiBERUZJTkVTICs9IElNUE9S
VF9ESVI9XCJcXFwiJCR7Uk9PVF9CVUlMRF9ESVJ9JCR7UU1BS0VfRElSX1NFUH1pbXBvcnRzXFxc
IlwiCiAKLU9USEVSX0ZJTEVTICs9IFwKLSAgICBXZWJWaWV3L3RzdF9mYXZJY29uTG9hZC5xbWwg
XAotICAgIFdlYlZpZXcvdHN0X2Rvd25sb2FkLnFtbCBcCi0gICAgV2ViVmlldy90c3RfZ2VvcGVy
bWlzc2lvbi5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2l0ZW1TZWxlY3Rvci5xbWwgXAotICAgIFdl
YlZpZXcvdHN0X2phdmFTY3JpcHREaWFsb2dzLnFtbCBcCi0gICAgV2ViVmlldy90c3RfbG9hZEZh
aWwucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9sb2FkSWdub3JlLnFtbCBcCi0gICAgV2ViVmlldy90
c3RfbG9hZEh0bWwucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3MucW1sIFwKLSAg
ICBXZWJWaWV3L3RzdF9sb2FkUHJvZ3Jlc3NTaWduYWwucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9w
cmVmZXJlbmNlcy5xbWwgXAotICAgIFdlYlZpZXcvdHN0X3Byb3BlcnRpZXMucW1sIFwKLSAgICBX
ZWJWaWV3L3RzdF90aXRsZUNoYW5nZWQucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9hcHBsaWNhdGlv
blNjaGVtZS5xbWwgXAotICAgIFdlYlZpZXcvdHN0X29yaWdpbi5xbWwKK09USEVSX0ZJTEVTICs9
IFdlYlZpZXcvdHN0XyoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZFVybC5xbWwgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRVcmwucW1s
CmluZGV4IDdhYjY5YmQuLjk3MzEyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZFVybC5xbWwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3Rz
dF9sb2FkVXJsLnFtbApAQCAtMTAsNiArMTAsOCBAQCBUZXN0V2ViVmlldyB7CiAgICAgcHJvcGVy
dHkgaW50IG51bUxvYWRTdGFydGVkOiAwCiAgICAgcHJvcGVydHkgaW50IG51bUxvYWRTdWNjZWVk
ZWQ6IDAKIAorICAgIGZvY3VzOiB0cnVlCisKICAgICBvbkxvYWRQcm9ncmVzc0NoYW5nZWQ6IHsK
ICAgICAgICAgaWYgKHdhdGNoUHJvZ3Jlc3MgJiYgd2ViVmlldy5sb2FkUHJvZ3Jlc3MgIT0gMTAw
KSB7CiAgICAgICAgICAgICB3YXRjaFByb2dyZXNzID0gZmFsc2UKQEAgLTI3LDYgKzI5LDggQEAg
VGVzdFdlYlZpZXcgewogICAgIFRlc3RDYXNlIHsKICAgICAgICAgaWQ6IHRlc3QKICAgICAgICAg
bmFtZTogIldlYlZpZXdMb2FkVXJsIgorICAgICAgICB3aGVuOiB3aW5kb3dTaG93bgorCiAgICAg
ICAgIGZ1bmN0aW9uIHRlc3RfbG9hZElnbm9yZUVtcHR5VXJsKCkgewogICAgICAgICAgICAgdmFy
IHVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDEuaHRtbCIpCiAKQEAgLTU4LDUg
KzYyLDYxIEBAIFRlc3RXZWJWaWV3IHsKICAgICAgICAgICAgIHZlcmlmeSghd2F0Y2hQcm9ncmVz
cykKICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkKICAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIHRlc3RfdXJsUHJvcGVydHkoKSB7CisgICAgICAgICAgICB2YXIgdXJs
ID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1sIikKKworICAgICAgICAgICAg
d2ViVmlldy51cmwgPSB1cmwKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkK
KyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisgICAg
ICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCB1cmwpCisKKyAgICAgICAgICAgIHZhciBib2d1
c1NpdGUgPSAiaHR0cDovL3d3dy5zb21lc2l0ZXRoYXRkb2Vzbm90ZXhpc3QuYWJjLyIKKyAgICAg
ICAgICAgIHdlYlZpZXcudXJsID0gYm9ndXNTaXRlCisgICAgICAgICAgICBjb21wYXJlKHdlYlZp
ZXcudXJsLCBib2d1c1NpdGUpCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9h
ZEZhaWxlZCgpKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgYm9ndXNTaXRlKQor
CisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9ICJhYm91dDpibGFuayIgLy8gUmVzZXQgZnJvbSBw
cmV2aW91cyB0ZXN0CisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2Nl
ZWRlZCgpKQorCisgICAgICAgICAgICB2YXIgaGFuZGxlTG9hZEZhaWxlZCA9IGZ1bmN0aW9uKGxv
YWRSZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgaWYgKGxvYWRSZXF1ZXN0LnN0YXR1cyA9PSBX
ZWJWaWV3LkxvYWRGYWlsZWRTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcGFyZSh3
ZWJWaWV3LnVybCwgYm9ndXNTaXRlKQorICAgICAgICAgICAgICAgICAgICBjb21wYXJlKGxvYWRS
ZXF1ZXN0LnVybCwgYm9ndXNTaXRlKQorICAgICAgICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWRI
dG1sKCJsb2FkIGZhaWxlZCIsIGJvZ3VzU2l0ZSwgYm9ndXNTaXRlKQorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdlYlZpZXcubG9hZGluZ0NoYW5nZWQuY29u
bmVjdChoYW5kbGVMb2FkRmFpbGVkKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBib2d1c1Np
dGUKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIGJvZ3VzU2l0ZSkKKyAgICAgICAg
ICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisgICAgICAgICAgICBj
b21wYXJlKHdlYlZpZXcudXJsLCBib2d1c1NpdGUpCisgICAgICAgICAgICB3ZWJWaWV3LmxvYWRp
bmdDaGFuZ2VkLmRpc2Nvbm5lY3QoaGFuZGxlTG9hZEZhaWxlZCkKKworICAgICAgICAgICAgdmFy
IGRhdGFVcmwgPSAiZGF0YTp0ZXh0L2h0bWwsZm9vIgorICAgICAgICAgICAgd2ViVmlldy51cmwg
PSBkYXRhVXJsCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCBkYXRhVXJsKQorCisg
ICAgICAgICAgICB2YXIgcmVkaXJlY3RVcmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3Jl
ZGlyZWN0Lmh0bWwiKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSByZWRpcmVjdFVybAorICAg
ICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgcmVkaXJlY3RVcmwpCisgICAgICAgICAgICB2
ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQorICAgICAgICAgICAgY29tcGFy
ZSh3ZWJWaWV3LnVybCwgdXJsKQorCisgICAgICAgICAgICB2YXIgbGlua1VybCA9IFF0LnJlc29s
dmVkVXJsKCIuLi9jb21tb24vbGluay5odG1sIikKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0g
bGlua1VybAorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgbGlua1VybCkKKyAgICAg
ICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisgICAgICAgICAg
ICBjb21wYXJlKHdlYlZpZXcudXJsLCBsaW5rVXJsKQorICAgICAgICAgICAgd2ViVmlldy5sb2Fk
aW5nQ2hhbmdlZC5jb25uZWN0KGZ1bmN0aW9uKGxvYWRSZXF1ZXN0KSB7CisgICAgICAgICAgICAg
ICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgbG9hZFJlcXVlc3QudXJsKQorICAgICAgICAgICAgICAg
IGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICB3
ZWJWaWV3LmZvcmNlQWN0aXZlRm9jdXMoKQorICAgICAgICAgICAga2V5UHJlc3MoUXQuS2V5X1Jl
dHVybikgLy8gTGluayBpcyBmb2N1c2VkCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0
Rm9yTG9hZFN1Y2NlZWRlZCgpKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgdXJs
KQorICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vbGluay5odG1sIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vbGluay5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3OTFiN2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9s
aW5rLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGJvZHkg
b25sb2FkPSJkb2N1bWVudC5saW5rc1snZm9vJ10uZm9jdXMoKTsiPgorPGEgbmFtZT0iZm9vIiBo
cmVmPSJ0ZXN0MS5odG1sIj5MaW5rPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vcmVk
aXJlY3QuaHRtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvY29tbW9uL3JlZGlyZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYmZhNzdkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3JlZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSw4IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJyZWZy
ZXNoIiBjb250ZW50PSIwOyB1cmw9dGVzdDEuaHRtbCIKKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCA3Y2MzMGY0Li43NDhhNTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtNjU3LDEzICs2NTcsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIENvcmVJUEM6OkFyZ3VtZW4KIAog
U3RyaW5nIFdlYlBhZ2VQcm94eTo6YWN0aXZlVVJMKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fbWFp
bkZyYW1lKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KICAgICAvLyBJZiB0aGVyZSBpcyBh
IGN1cnJlbnRseSBwZW5kaW5nIHVybCwgaXQgaXMgdGhlIGFjdGl2ZSBVUkwuCiAgICAgaWYgKCFt
X3BlbmRpbmdBUElSZXF1ZXN0VVJMLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gbV9wZW5kaW5n
QVBJUmVxdWVzdFVSTDsKIAorICAgIGlmICghbV9tYWluRnJhbWUpCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKwogICAgIGlmICghbV9tYWluRnJhbWUtPnVucmVhY2hhYmxlVVJMKCkuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4gbV9tYWluRnJhbWUtPnVucmVhY2hhYmxlVVJMKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNw
cAppbmRleCAwMzczZWY0Li4wNGM5NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBAIFF0V2Vi
UGFnZUxvYWRDbGllbnQ6OlF0V2ViUGFnZUxvYWRDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIFFR
dWlja1dlYlZpZXcqIHdlYlZpCiAgICAgbG9hZENsaWVudC52ZXJzaW9uID0ga1dLUGFnZUxvYWRl
ckNsaWVudEN1cnJlbnRWZXJzaW9uOwogICAgIGxvYWRDbGllbnQuY2xpZW50SW5mbyA9IHRoaXM7
CiAgICAgbG9hZENsaWVudC5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lID0gZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTsKKyAgICBsb2FkQ2xpZW50LmRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lID0gZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU7CiAgICAgbG9hZENsaWVudC5kaWRGYWls
UHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUgPSBkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWU7CiAgICAgbG9hZENsaWVudC5kaWRDb21taXRMb2FkRm9yRnJhbWUg
PSBkaWRDb21taXRMb2FkRm9yRnJhbWU7CiAgICAgbG9hZENsaWVudC5kaWRGaW5pc2hMb2FkRm9y
RnJhbWUgPSBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7CkBAIC01MywyMSArNTQsMjYgQEAgUXRXZWJQ
YWdlTG9hZENsaWVudDo6UXRXZWJQYWdlTG9hZENsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgUVF1
aWNrV2ViVmlldyogd2ViVmkKIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZShjb25zdCBRVXJsJiB1cmwpCiB7CiAgICAgUVdlYkxvYWRSZXF1
ZXN0IGxvYWRSZXF1ZXN0KHVybCwgUVF1aWNrV2ViVmlldzo6TG9hZFN0YXJ0ZWRTdGF0dXMpOwor
ICAgIG1fd2ViVmlldy0+ZW1pdFVybENoYW5nZUlmTmVlZGVkKCk7CiAgICAgbV93ZWJWaWV3LT5k
X2Z1bmMoKS0+ZGlkQ2hhbmdlTG9hZGluZ1N0YXRlKCZsb2FkUmVxdWVzdCk7CiB9CiAKK3ZvaWQg
UXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoY29uc3QgUVVybCYgdXJsKQoreworICAgIG1fd2ViVmlldy0+ZW1pdFVy
bENoYW5nZUlmTmVlZGVkKCk7Cit9CisKIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkQ29t
bWl0TG9hZEZvckZyYW1lKCkKIHsKICAgICBlbWl0IG1fd2ViVmlldy0+bmF2aWdhdGlvbkhpc3Rv
cnlDaGFuZ2VkKCk7Ci0gICAgZW1pdCBtX3dlYlZpZXctPnVybENoYW5nZWQoKTsKICAgICBlbWl0
IG1fd2ViVmlldy0+dGl0bGVDaGFuZ2VkKCk7CiAgICAgbV93ZWJWaWV3LT5kX2Z1bmMoKS0+bG9h
ZERpZENvbW1pdCgpOwogfQogCiB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JGcmFtZSgpCiB7CisgICAgbV93ZWJWaWV3LT5lbWl0VXJsQ2hhbmdl
SWZOZWVkZWQoKTsKICAgICBlbWl0IG1fd2ViVmlldy0+bmF2aWdhdGlvbkhpc3RvcnlDaGFuZ2Vk
KCk7Ci0gICAgZW1pdCBtX3dlYlZpZXctPnVybENoYW5nZWQoKTsKIH0KIAogdm9pZCBRdFdlYlBh
Z2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSgpCkBAIC05MCwxNiArOTYsMzEg
QEAgdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaXNwYXRjaExvYWRTdWNjZWVkZWQoKQogICAg
IG1fd2ViVmlldy0+ZF9mdW5jKCktPmxvYWREaWRTdWNjZWVkKCk7CiB9CiAKLXZvaWQgUXRXZWJQ
YWdlTG9hZENsaWVudDo6ZGlzcGF0Y2hMb2FkRmFpbGVkKFdLRXJyb3JSZWYgZXJyb3IpCit2b2lk
IFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpc3BhdGNoTG9hZEZhaWxlZChXS0ZyYW1lUmVmIGZyYW1l
LCBXS0Vycm9yUmVmIGVycm9yKQogewogICAgIGludCBlcnJvckNvZGUgPSBXS0Vycm9yR2V0RXJy
b3JDb2RlKGVycm9yKTsKICAgICBpZiAodG9JbXBsKGVycm9yKS0+cGxhdGZvcm1FcnJvcigpLmlz
Q2FuY2VsbGF0aW9uKCkgfHwgZXJyb3JDb2RlID09IGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVy
cnVwdGVkQnlQb2xpY3lDaGFuZ2UgfHwgZXJyb3JDb2RlID09IGtXS0Vycm9yQ29kZVBsdWdJbldp
bGxIYW5kbGVMb2FkKSB7CisgICAgICAgIC8vIFRoZSBhY3RpdmUgdXJsIG1pZ2h0IGhhdmUgY2hh
bmdlZAorICAgICAgICBtX3dlYlZpZXctPmVtaXRVcmxDaGFuZ2VJZk5lZWRlZCgpOworCiAgICAg
ICAgIC8vIE1ha2Ugc3VyZSB0aGF0IExvYWRTdGFydGVkU3RhdHVzIGhhcyBhIGNvdW50ZXJwYXJ0
IHdoZW4gZS5nLiByZXF1ZXN0aW5nIGEgZG93bmxvYWQuCiAgICAgICAgIGRpc3BhdGNoTG9hZFN1
Y2NlZWRlZCgpOworCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBRdFdlYkVycm9yIHF0
RXJyb3IoZXJyb3IpOworCisgICAgLy8gV2Ugc2V0IHRoZSB1bnJlYWNoYWJsZSB1cmwgdW5jb25k
aXRpb25hbGx5IHNvIHRoYXQgdGhlIGN1cnJlbnQKKyAgICAvLyBhY3RpdmUgdXJsIG9mIHRoZSB3
ZWJ2aWV3IHdoZW4gdGhlIGxvYWRpbmdDaGFuZ2VkIHNpZ25hbCBpcworICAgIC8vIGVtaXR0ZWQg
cmVmbGVjdHMgdGhlIGZhaWxlZCB1cmwsIG5vdCB0aGUgcHJldmlvdXNseSBjb21taXR0ZWQKKyAg
ICAvLyB1cmwuIFRoaXMgYWxzbyBlbnN1cmVzIHRoYXQgaWYgdGhlIHVzZXIgZG9lcyBub3QgZG8g
YSBsb2FkSHRtbAorICAgIC8vIHdpdGggYW4gZXJyb3IgcGFnZSBhbmQgYW5kIHVucmVhY2hhYmxl
IHVybCwgYXMgYSByZXBvbnNlIHRvIHRoZQorICAgIC8vIGZhaWxlZCBsb2FkLCB3ZSBjYW4gc3Rp
bGwgZGV0ZWN0IHRoZSBmYWlsZWQgdXJsIGZvciByZWxvYWRzLgorICAgIFdlYkZyYW1lUHJveHkq
IHdrZnJhbWUgPSB0b0ltcGwoZnJhbWUpOworICAgIHdrZnJhbWUtPnNldFVucmVhY2hhYmxlVVJM
KHF0RXJyb3IudXJsKCkudG9TdHJpbmcoKSk7CisgICAgbV93ZWJWaWV3LT5lbWl0VXJsQ2hhbmdl
SWZOZWVkZWQoKTsKKwogICAgIFFXZWJMb2FkUmVxdWVzdCBsb2FkUmVxdWVzdChxdEVycm9yLnVy
bCgpLCBRUXVpY2tXZWJWaWV3OjpMb2FkRmFpbGVkU3RhdHVzLCBxdEVycm9yLmRlc2NyaXB0aW9u
KCksIHN0YXRpY19jYXN0PFFRdWlja1dlYlZpZXc6OkVycm9yRG9tYWluPihxdEVycm9yLnR5cGUo
KSksIHF0RXJyb3IuZXJyb3JDb2RlKCkpOwogICAgIGVtaXQgbV93ZWJWaWV3LT5sb2FkaW5nQ2hh
bmdlZCgmbG9hZFJlcXVlc3QpOwogfQpAQCAtMTI2LDExICsxNDcsMjIgQEAgdm9pZCBRdFdlYlBh
Z2VMb2FkQ2xpZW50OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwg
V0tGcmFtZVJlZgogICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShxVXJsKTsKIH0KIAordm9pZCBRdFdlYlBhZ2VMb2Fk
Q2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFt
ZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3sKKyAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAg
IHJldHVybjsKKyAgICBXZWJGcmFtZVByb3h5KiB3a2ZyYW1lID0gdG9JbXBsKGZyYW1lKTsKKyAg
ICBRU3RyaW5nIHVybFN0cih3a2ZyYW1lLT5wcm92aXNpb25hbFVSTCgpKTsKKyAgICBRVXJsIHFV
cmwgPSB1cmxTdHI7CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShxVXJsKTsKK30K
Kwogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9y
LCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1l
SXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm47Ci0gICAgdG9RdFdlYlBhZ2VMb2Fk
Q2xpZW50KGNsaWVudEluZm8pLT5kaXNwYXRjaExvYWRGYWlsZWQoZXJyb3IpOworCisgICAgdG9R
dFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaXNwYXRjaExvYWRGYWlsZWQoZnJhbWUs
IGVycm9yKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDb21taXRMb2FkRm9y
RnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCkBAIC0xNTEsNyArMTgzLDcgQEAgdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50
OjpkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmEK
IHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsK
LSAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpc3BhdGNoTG9hZEZhaWxl
ZChlcnJvcik7CisgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVudEluZm8pLT5kaXNwYXRj
aExvYWRGYWlsZWQoZnJhbWUsIGVycm9yKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50
OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmgKaW5kZXggNjcyNTk3YS4uNDgzNTA5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENs
aWVudC5oCkBAIC0zNiw2ICszNiw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoY29uc3QgUVVybCYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoY29uc3QgUVVy
bCYpOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKCk7CiAgICAgdm9pZCBkaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZv
ckZyYW1lKCk7CkBAIC00MywxMSArNDQsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENoYW5n
ZUJhY2tGb3J3YXJkTGlzdCgpOwogCiAgICAgdm9pZCBkaXNwYXRjaExvYWRTdWNjZWVkZWQoKTsK
LSAgICB2b2lkIGRpc3BhdGNoTG9hZEZhaWxlZChXS0Vycm9yUmVmKTsKKyAgICB2b2lkIGRpc3Bh
dGNoTG9hZEZhaWxlZChXS0ZyYW1lUmVmLCBXS0Vycm9yUmVmKTsKICAgICB2b2lkIHNldExvYWRQ
cm9ncmVzcyhpbnQpOwogCiAgICAgLy8gV0tQYWdlTG9hZENsaWVudCBjYWxsYmFja3MuCiAgICAg
c3RhdGljIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdL
RnJhbWVSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cisg
ICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExv
YWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRXJyb3JSZWYsIFdL
VHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZv
aWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBkaWRG
aW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI5OWM2N2EuLjg0MThmYjQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
Mi0wNC0xOCAgVG9yIEFybmUgVmVzdGLDuCAgPHRvcmFybnZAZ21haWwuY29tPgorCisgICAgICAg
IFtRdF0gTWFrZSB0aGUgd2ViIHZpZXcncyB1cmwgcHJvcGVydHkgZm9sbG93IHRoZSBhY3RpdmUg
dXJsCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3
NTU0CisKKyAgICAgICAgVXBkYXRlICB0aGUgbG9jYXRpb24gYmFyIGluIHRoZSBtaW5pYnJvd3Nl
ciB0byBiZWhhdmUKKyAgICAgICAgYSBiaXQgbW9yZSBsaWtlIG5vcm1hbCBicm93c2VycyBpbiB0
ZXJtcyBvZiB3aGVuIHRoZSB1cmwgd2lsbCBjaGFuZ2UKKyAgICAgICAgYW5kIGhvdyBhY3RpdmUg
Zm9jdXMgaXMgaGFuZGxlZC4KKworICAgICAgICAqIE1pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2Vy
V2luZG93LnFtbDoKKwogMjAxMi0wNC0xOSAgVGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlh
Z28uc2FudG9zQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBbRFJUXSBTaG91bGQgY3JlYXRl
IG9mZmxpbmUgc3RvcmFnZSBpbnNpZGUgRFVNUFJFTkRFUlRSRUVfVEVNUApkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sIGIvVG9vbHMvTWluaUJy
b3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCmluZGV4IDM4ZjZhZjkuLjRlYTllMDAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbAorKysg
Yi9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKQEAgLTQxLDEwICs0
MSwxMiBAQCBSZWN0YW5nbGUgewogCiAgICAgZnVuY3Rpb24gbG9hZChhZGRyZXNzKSB7CiAgICAg
ICAgIHdlYlZpZXcudXJsID0gYWRkcmVzcworICAgICAgICB3ZWJWaWV3LmZvcmNlQWN0aXZlRm9j
dXMoKQogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJlbG9hZCgpIHsKICAgICAgICAgd2ViVmlldy5y
ZWxvYWQoKQorICAgICAgICB3ZWJWaWV3LmZvcmNlQWN0aXZlRm9jdXMoKQogICAgIH0KIAogICAg
IGZ1bmN0aW9uIGZvY3VzQWRkcmVzc0JhcigpIHsKQEAgLTI1MSwxMCArMjUzLDEwIEBAIFJlY3Rh
bmdsZSB7CiAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHBhcmVudC5sZWZ0CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIHJhZGl1czogMwotICAgICAgICAgICAgICAgIHdpZHRo
OiBwYXJlbnQud2lkdGggLyAxMDAgKiB3ZWJWaWV3LmxvYWRQcm9ncmVzcworICAgICAgICAgICAg
ICAgIHdpZHRoOiBwYXJlbnQud2lkdGggLyAxMDAgKiBNYXRoLm1heCg1LCB3ZWJWaWV3LmxvYWRQ
cm9ncmVzcykKICAgICAgICAgICAgICAgICBjb2xvcjogImJsdWUiCiAgICAgICAgICAgICAgICAg
b3BhY2l0eTogMC4zCi0gICAgICAgICAgICAgICAgdmlzaWJsZTogd2ViVmlldy5sb2FkUHJvZ3Jl
c3MgIT0gMTAwCisgICAgICAgICAgICAgICAgdmlzaWJsZTogd2ViVmlldy5sb2FkaW5nCiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBJbWFnZSB7CiAgICAgICAgICAgICAgICAgaWQ6IGZhdklj
b24KQEAgLTI3MSw2ICsyNzMsNyBAQCBSZWN0YW5nbGUgewogICAgICAgICAgICAgICAgIGlkOiBh
ZGRyZXNzTGluZQogICAgICAgICAgICAgICAgIGNsaXA6IHRydWUKICAgICAgICAgICAgICAgICBz
ZWxlY3RCeU1vdXNlOiB0cnVlCisgICAgICAgICAgICAgICAgaG9yaXpvbnRhbEFsaWdubWVudDog
VGV4dElucHV0LkFsaWduTGVmdAogICAgICAgICAgICAgICAgIGZvbnQgewogICAgICAgICAgICAg
ICAgICAgICBwb2ludFNpemU6IDExCiAgICAgICAgICAgICAgICAgICAgIGZhbWlseTogIlNhbnMi
CkBAIC0yODMsOSArMjg2LDIxIEBAIFJlY3RhbmdsZSB7CiAgICAgICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICAgICAgS2V5cy5vblJldHVyblByZXNzZWQ6ewotICAgICAgICAgICAgICAgICAg
ICBjb25zb2xlLmxvZygiZ29pbmcgdG86ICIsIGFkZHJlc3NMaW5lLnRleHQpCi0gICAgICAgICAg
ICAgICAgICAgIHdlYlZpZXcudXJsID0gdXRpbHMudXJsRnJvbVVzZXJJbnB1dChhZGRyZXNzTGlu
ZS50ZXh0KQorICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTmF2aWdhdGluZyB0bzog
IiwgYWRkcmVzc0xpbmUudGV4dCkKKyAgICAgICAgICAgICAgICAgICAgbG9hZCh1dGlscy51cmxG
cm9tVXNlcklucHV0KGFkZHJlc3NMaW5lLnRleHQpKQogICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIHByb3BlcnR5IHVybCB1cmwKKworICAgICAgICAgICAgICAgIG9uVXJsQ2hh
bmdlZDogeworICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlRm9jdXMpCisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHVybAor
ICAgICAgICAgICAgICAgICAgICBjdXJzb3JQb3NpdGlvbiA9IDAKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBvbkFjdGl2ZUZvY3VzQ2hhbmdlZDogdXJsID0gd2ViVmlldy51
cmwKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTMwMSwxMCArMzE2LDE1IEBA
IFJlY3RhbmdsZSB7CiAKICAgICAgICAgb25UaXRsZUNoYW5nZWQ6IHBhZ2VUaXRsZUNoYW5nZWQo
dGl0bGUpCiAgICAgICAgIG9uVXJsQ2hhbmdlZDogewotICAgICAgICAgICAgYWRkcmVzc0xpbmUu
dGV4dCA9IHVybAorICAgICAgICAgICAgYWRkcmVzc0xpbmUudXJsID0gd2ViVmlldy51cmwKKwog
ICAgICAgICAgICAgaWYgKG9wdGlvbnMucHJpbnRMb2FkZWRVcmxzKQotICAgICAgICAgICAgICAg
IGNvbnNvbGUubG9nKCJMb2FkZWQ6Iiwgd2ViVmlldy51cmwudG9TdHJpbmcoKSk7Ci0gICAgICAg
ICAgICBmb3JjZUFjdGl2ZUZvY3VzKCk7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIldl
YlZpZXcgdXJsIGNoYW5nZWQ6Iiwgd2ViVmlldy51cmwudG9TdHJpbmcoKSk7CisgICAgICAgIH0K
KworICAgICAgICBvbkxvYWRpbmdDaGFuZ2VkOiB7CisgICAgICAgICAgICBpZiAoIWxvYWRpbmcg
JiYgbG9hZFJlcXVlc3Quc3RhdHVzID09IFdlYlZpZXcuTG9hZEZhaWxlZFN0YXR1cykKKyAgICAg
ICAgICAgICAgICB3ZWJWaWV3LmxvYWRIdG1sKCJGYWlsZWQgdG8gbG9hZCAiICsgbG9hZFJlcXVl
c3QudXJsLCAiIiwgbG9hZFJlcXVlc3QudXJsKQogICAgICAgICB9CiAKICAgICAgICAgZXhwZXJp
bWVudGFsLml0ZW1TZWxlY3RvcjogSXRlbVNlbGVjdG9yIHsgfQotLSAKMS43LjcuNSAoQXBwbGUg
R2l0LTI2KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139020</attachid>
            <date>2012-04-26 10:14:06 -0700</date>
            <delta_ts>2012-04-26 13:26:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77554-20120426141403.patch</filename>
            <type>text/plain</type>
            <size>4857</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzFlYzNjOWNiZDY4ODJl
MTBjOWFjY2M5NWFhZGYxMTA2NzY0MzExMC4uZjgzNjk3ZGUyNDA3ZDM2ODBiNzlmYTJiODZjZmJj
MWUxZDJkY2UzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA0LTI2ICBSYWZh
ZWwgQnJhbmRhbyAgPHJhZmFlbC5sb2JvQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XSBB
bGxvdyByZWFkL3dyaXRlIHRvIHRoZSBXZWJWaWV3LnVybCBwcm9wZXJ0eQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggV2ViVmlldy5pY29uIHByb3Bl
cnR5IHRvIGJlIGNoYW5nZWQgb25seSB3aGVuIHRoZSBsb2FkIGlzIGNvbW1pdHRlZCBpbnN0ZWFk
CisgICAgICAgIG9mIGVhY2ggdXJsIGNoYW5nZS4gQXMgd2UgaGF2ZSBjdXJyZW50VXJsLCB3ZSBk
b250IG5lZWQgdG8gbG9vayBpbnRvIG1haW5mcmFtZSB1cmwuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZh
dGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRl
OjpzZXRJY29uKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpsb2Fk
RGlkQ29tbWl0KToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6OnNldFVybCk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
cXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0V2ViUGFnZUxv
YWRDbGllbnQ6OmRpZFN0YXJ0UHJvZ3Jlc3MpOgorCiAyMDEyLTA0LTI2ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBCdWlsZCBhbmQg
cnVuIFRlc3RXZWJLaXRBUEkgV2ViS2l0MiB1bml0IHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCBkOTMyZTIwZTM5Yzk4
NTkwNDkyNjAyZjY2YzRhNzEzNmZkMmFhMmMzLi5lNjIxOWJiOTJjZDAyMTU0ZjIwYjQ3NjgwMjI2
NmM2ZGYwNDY3MmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHAKQEAgLTE2Nyw3ICsxNjcsNiBAQCBRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUoUVF1aWNrV2ViVmlldyogdmlld3BvcnQpCiAgICAgdmll
d3BvcnQtPnNldENsaXAodHJ1ZSk7CiAgICAgdmlld3BvcnQtPnNldFBpeGVsQWxpZ25lZCh0cnVl
KTsKICAgICBRT2JqZWN0Ojpjb25uZWN0KHZpZXdwb3J0LCBTSUdOQUwodmlzaWJsZUNoYW5nZWQo
KSksIHZpZXdwb3J0LCBTTE9UKF9xX29uVmlzaWJsZUNoYW5nZWQoKSkpOwotICAgIFFPYmplY3Q6
OmNvbm5lY3Qodmlld3BvcnQsIFNJR05BTCh1cmxDaGFuZ2VkKCkpLCB2aWV3cG9ydCwgU0xPVChf
cV9vblVybENoYW5nZWQoKSkpOwogICAgIHBhZ2VWaWV3LnJlc2V0KG5ldyBRUXVpY2tXZWJQYWdl
KHZpZXdwb3J0KSk7CiB9CiAKQEAgLTMyMCwxMiArMzE5LDYgQEAgdm9pZCBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6X3Ffb25WaXNpYmxlQ2hhbmdlZCgpCiAgICAgd2ViUGFnZVByb3h5LT52aWV3U3Rh
dGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3SXNWaXNpYmxlKTsKIH0KIAotdm9pZCBRUXVp
Y2tXZWJWaWV3UHJpdmF0ZTo6X3Ffb25VcmxDaGFuZ2VkKCkKLXsKLSAgICBRX1EoUVF1aWNrV2Vi
Vmlldyk7Ci0gICAgY29udGV4dC0+aWNvbkRhdGFiYXNlKCktPnJlcXVlc3RJY29uRm9yUGFnZVVS
TChxLT51cmwoKSk7Ci19Ci0KIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6Ol9xX29uUmVjZWl2
ZWRSZXNwb25zZUZyb21Eb3dubG9hZChRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0pCiB7
CiAgICAgLy8gTm93IHRoYXQgb3VyIGRvd25sb2FkSXRlbSBoYXMgZXZlcnl0aGluZyB3ZSBuZWVk
IHdlIGNhbiBlbWl0IGRvd25sb2FkUmVxdWVzdGVkLgpAQCAtNDk5LDcgKzQ5Miw3IEBAIHZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OnNldEljb24oY29uc3QgUVVybCYgaWNvblVSTCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgU3RyaW5nIG9sZFBhZ2VVUkwgPSBRVXJsOjpmcm9tUGVyY2VudEVu
Y29kaW5nKG1faWNvblVSTC5lbmNvZGVkRnJhZ21lbnQoKSk7Ci0gICAgU3RyaW5nIG5ld1BhZ2VV
UkwgPSB3ZWJQYWdlUHJveHktPm1haW5GcmFtZSgpLT51cmwoKTsKKyAgICBTdHJpbmcgbmV3UGFn
ZVVSTCA9IG1fY3VycmVudFVybDsKIAogICAgIGlmIChvbGRQYWdlVVJMICE9IG5ld1BhZ2VVUkwp
IHsKICAgICAgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZSA9IGNvbnRl
eHQtPmljb25EYXRhYmFzZSgpOwpAQCAtNzA3LDYgKzcwMCw4IEBAIHZvaWQgUVF1aWNrV2ViVmll
d0ZsaWNrYWJsZVByaXZhdGU6OmxvYWREaWRDb21taXQoKQogewogICAgIC8vIER1ZSB0byBlbnRl
cmluZyBwcm92aXNpb25hbCBsb2FkIGJlZm9yZSBjb21taXR0aW5nLCB3ZQogICAgIC8vIG1pZ2h0
IGFjdHVhbGx5IGJlIHN1c3BlbmRlZCBoZXJlLgorICAgIFFfUShRUXVpY2tXZWJWaWV3KTsKKyAg
ICBjb250ZXh0LT5pY29uRGF0YWJhc2UoKS0+cmVxdWVzdEljb25Gb3JQYWdlVVJMKHEtPnVybCgp
KTsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6ZGlkRmluaXNoRmly
c3ROb25FbXB0eUxheW91dCgpCkBAIC0xMjM2LDggKzEyMzEsMTAgQEAgdm9pZCBRUXVpY2tXZWJW
aWV3OjpzZXRVcmwoY29uc3QgUVVybCYgdXJsKQogCiAgICAgaWYgKCFpc0NvbXBvbmVudENvbXBs
ZXRlKCkpCiAgICAgICAgIGQtPm1fZGVmZXJyZWRVcmxUb0xvYWQgPSB1cmw7Ci0gICAgZWxzZQor
ICAgIGVsc2UgeworICAgICAgICBkLT5zZXRJY29uKFFVcmwoKSk7CiAgICAgICAgIGQtPndlYlBh
Z2VQcm94eS0+bG9hZFVSTCh1cmwudG9TdHJpbmcoKSk7CisgICAgfQogCiAgICAgZW1pdFVybENo
YW5nZUlmTmVlZGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCBjNjNjNjAwMTJjZGI1NWQ1ZjM4YWFhMmYzOTdhYzQw
ZThiZGM0YWMxLi41MWQ3N2I0NTBlMjg3OWRkNGMyMWNjN2JiOGFjNzc1OTZiNWVhYjQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgK
QEAgLTIwOSw3ICsyMDksNiBAQCBwcml2YXRlOgogICAgIFFfUFJJVkFURV9TTE9UKGRfZnVuYygp
LCB2b2lkIF9xX2NvbnRlbnRWaWV3cG9ydENoYW5nZWQoY29uc3QgUVBvaW50RiYpKTsKIAogICAg
IFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9xX29uVmlzaWJsZUNoYW5nZWQoKSk7Ci0g
ICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffb25VcmxDaGFuZ2VkKCkpOwogICAg
IFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9xX29uUmVjZWl2ZWRSZXNwb25zZUZyb21E
b3dubG9hZChRV2ViRG93bmxvYWRJdGVtKikpOwogICAgIFFfUFJJVkFURV9TTE9UKGRfZnVuYygp
LCB2b2lkIF9xX29uSWNvbkNoYW5nZWRGb3JQYWdlVVJMKGNvbnN0IFFVcmwmLCBjb25zdCBRVXJs
JikpOwogICAgIC8vIEhpZGVzIFFPYmplY3Q6OmRfcHRyIGFsbG93aW5nIHVzIHRvIHVzZSB0aGUg
Y29udmVuaWVuY2UgbWFjcm9zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwCmluZGV4IDYyZmI1MTJjZjYwOTM0NTY1OTYwNWQwMGVi
NDA0MGNkODZiNjI5NDIuLmE1NTcyMmY5ZTdlNmExNzgzZDgxOGRkMGRiZGQzZTIyMjY5YWViNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENs
aWVudC5jcHAKQEAgLTIwNSw3ICsyMDUsNiBAQCB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRp
ZFN0YXJ0UHJvZ3Jlc3MoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IFF0V2ViUGFnZUxvYWRDbGllbnQqIGNsaWVudCA9IHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGll
bnRJbmZvKTsKICAgICBjbGllbnQtPnNldExvYWRQcm9ncmVzcygwKTsKLSAgICBjbGllbnQtPm1f
d2ViVmlldy0+ZF9mdW5jKCktPnNldEljb24oUVVybCgpKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VM
b2FkQ2xpZW50OjpkaWRDaGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139056</attachid>
            <date>2012-04-26 13:24:49 -0700</date>
            <delta_ts>2012-05-23 01:19:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77554-20120426172447.patch</filename>
            <type>text/plain</type>
            <size>6711</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzFlYzNjOWNiZDY4ODJl
MTBjOWFjY2M5NWFhZGYxMTA2NzY0MzExMC4uMzcwMWFlZGI2MWIxMzc3NDhmYzlkYjUyOGI1ZGE2
M2ZjMDdmNDgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA0LTI2ICBSYWZh
ZWwgQnJhbmRhbyAgPHJhZmFlbC5sb2JvQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW1F0XSBB
bGxvdyByZWFkL3dyaXRlIHRvIHRoZSBXZWJWaWV3LnVybCBwcm9wZXJ0eQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggV2ViVmlldy5pY29uIHByb3Bl
cnR5IHRvIGJlIGNoYW5nZWQgb25seSB3aGVuIHRoZSBsb2FkIGlzIGNvbW1pdHRlZCBpbnN0ZWFk
CisgICAgICAgIG9mIGVhY2ggdXJsIGNoYW5nZS4gQXMgYm90aCBkZXNrdG9wIGFuZCBtb2JpbGUg
bW9kZSB3b3VsZCBiZWhhdmUgaW4gdGhlIHNhbWUgd2F5LAorICAgICAgICB0aGUgZGlmZmVyZW50
aWF0aW9uIG9uIGxvYWREaWRDb21taXQgd2FzIHJlbW92ZWQuIFdlIG5lZWQgdG8gY2xlYXIgdGhl
IGljb24gcHJvcGVydHkKKyAgICAgICAgYmVmb3JlIGEgbG9hZC4gRm9yIGEgcmVsb2FkLCB3ZSBj
YW4ga2VlcCBpdCBhbmQgZ2V0IGl0IHVwZGF0ZWQgb25jZSBpdCBpcyBjb21taXR0ZWQuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1
aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpzZXRJY29uKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdGbGlja2Fi
bGVQcml2YXRlOjpsb2FkRGlkQ29tbWl0KToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6OnNldFVy
bCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJvZ3Jlc3MpOgorCiAyMDEyLTA0LTI2
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXSBCdWlsZCBhbmQgcnVuIFRlc3RXZWJLaXRBUEkgV2ViS2l0MiB1bml0IHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRl
eCBkOTMyZTIwZTM5Yzk4NTkwNDkyNjAyZjY2YzRhNzEzNmZkMmFhMmMzLi5iY2ViNmJmZWEwZjlm
NDhkNTEzZjY1YWZjYjIzNDI2YjdhMzdiNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTE2Nyw3ICsxNjcsNiBAQCBRUXVp
Y2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUoUVF1aWNrV2ViVmlldyogdmll
d3BvcnQpCiAgICAgdmlld3BvcnQtPnNldENsaXAodHJ1ZSk7CiAgICAgdmlld3BvcnQtPnNldFBp
eGVsQWxpZ25lZCh0cnVlKTsKICAgICBRT2JqZWN0Ojpjb25uZWN0KHZpZXdwb3J0LCBTSUdOQUwo
dmlzaWJsZUNoYW5nZWQoKSksIHZpZXdwb3J0LCBTTE9UKF9xX29uVmlzaWJsZUNoYW5nZWQoKSkp
OwotICAgIFFPYmplY3Q6OmNvbm5lY3Qodmlld3BvcnQsIFNJR05BTCh1cmxDaGFuZ2VkKCkpLCB2
aWV3cG9ydCwgU0xPVChfcV9vblVybENoYW5nZWQoKSkpOwogICAgIHBhZ2VWaWV3LnJlc2V0KG5l
dyBRUXVpY2tXZWJQYWdlKHZpZXdwb3J0KSk7CiB9CiAKQEAgLTIzMiw2ICsyMzEsMTQgQEAgdm9p
ZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6bG9hZERpZFN1Y2NlZWQoKQogICAgIGVtaXQgcS0+bG9h
ZGluZ0NoYW5nZWQoJmxvYWRSZXF1ZXN0KTsKIH0KIAordm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6bG9hZERpZENvbW1pdCgpCit7CisgICAgUV9RKFFRdWlja1dlYlZpZXcpOworICAgIC8vIER1
ZSB0byBlbnRlcmluZyBwcm92aXNpb25hbCBsb2FkIGJlZm9yZSBjb21taXR0aW5nLCB3ZQorICAg
IC8vIG1pZ2h0IGFjdHVhbGx5IGJlIHN1c3BlbmRlZCBoZXJlLgorICAgIGNvbnRleHQtPmljb25E
YXRhYmFzZSgpLT5yZXF1ZXN0SWNvbkZvclBhZ2VVUkwocS0+dXJsKCkpOworfQorCiB2b2lkIFFR
dWlja1dlYlZpZXdQcml2YXRlOjpvbkNvbXBvbmVudENvbXBsZXRlKCkKIHsKICAgICBpZiAobV9k
ZWZlcnJlZFVybFRvTG9hZC5pc0VtcHR5KCkpCkBAIC0zMjAsMTIgKzMyNyw2IEBAIHZvaWQgUVF1
aWNrV2ViVmlld1ByaXZhdGU6Ol9xX29uVmlzaWJsZUNoYW5nZWQoKQogICAgIHdlYlBhZ2VQcm94
eS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzVmlzaWJsZSk7CiB9CiAK
LXZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6Ol9xX29uVXJsQ2hhbmdlZCgpCi17Ci0gICAgUV9R
KFFRdWlja1dlYlZpZXcpOwotICAgIGNvbnRleHQtPmljb25EYXRhYmFzZSgpLT5yZXF1ZXN0SWNv
bkZvclBhZ2VVUkwocS0+dXJsKCkpOwotfQotCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpf
cV9vblJlY2VpdmVkUmVzcG9uc2VGcm9tRG93bmxvYWQoUVdlYkRvd25sb2FkSXRlbSogZG93bmxv
YWRJdGVtKQogewogICAgIC8vIE5vdyB0aGF0IG91ciBkb3dubG9hZEl0ZW0gaGFzIGV2ZXJ5dGhp
bmcgd2UgbmVlZCB3ZSBjYW4gZW1pdCBkb3dubG9hZFJlcXVlc3RlZC4KQEAgLTQ5OSw3ICs1MDAs
NyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpzZXRJY29uKGNvbnN0IFFVcmwmIGljb25V
UkwpCiAgICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyBvbGRQYWdlVVJMID0gUVVybDo6ZnJv
bVBlcmNlbnRFbmNvZGluZyhtX2ljb25VUkwuZW5jb2RlZEZyYWdtZW50KCkpOwotICAgIFN0cmlu
ZyBuZXdQYWdlVVJMID0gd2ViUGFnZVByb3h5LT5tYWluRnJhbWUoKS0+dXJsKCk7CisgICAgU3Ry
aW5nIG5ld1BhZ2VVUkwgPSBtX2N1cnJlbnRVcmw7CiAKICAgICBpZiAob2xkUGFnZVVSTCAhPSBu
ZXdQYWdlVVJMKSB7CiAgICAgICAgIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBpY29uRGF0YWJh
c2UgPSBjb250ZXh0LT5pY29uRGF0YWJhc2UoKTsKQEAgLTcwMCwxMyArNzAxLDYgQEAgdm9pZCBR
UXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6bG9hZERpZFN1Y2NlZWQoKQogICAgICAgICBR
UXVpY2tXZWJWaWV3UHJpdmF0ZTo6bG9hZERpZFN1Y2NlZWQoKTsKICAgICBlbHNlCiAgICAgICAg
IGxvYWRTdWNjZXNzRGlzcGF0Y2hJc1BlbmRpbmcgPSB0cnVlOwotCi19Ci0KLXZvaWQgUVF1aWNr
V2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OmxvYWREaWRDb21taXQoKQotewotICAgIC8vIER1ZSB0
byBlbnRlcmluZyBwcm92aXNpb25hbCBsb2FkIGJlZm9yZSBjb21taXR0aW5nLCB3ZQotICAgIC8v
IG1pZ2h0IGFjdHVhbGx5IGJlIHN1c3BlbmRlZCBoZXJlLgogfQogCiB2b2lkIFFRdWlja1dlYlZp
ZXdGbGlja2FibGVQcml2YXRlOjpkaWRGaW5pc2hGaXJzdE5vbkVtcHR5TGF5b3V0KCkKQEAgLTEy
MzYsOCArMTIzMCwxMCBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OnNldFVybChjb25zdCBRVXJsJiB1
cmwpCiAKICAgICBpZiAoIWlzQ29tcG9uZW50Q29tcGxldGUoKSkKICAgICAgICAgZC0+bV9kZWZl
cnJlZFVybFRvTG9hZCA9IHVybDsKLSAgICBlbHNlCisgICAgZWxzZSB7CisgICAgICAgIGQtPnNl
dEljb24oUVVybCgpKTsKICAgICAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2FkVVJMKHVybC50b1N0
cmluZygpKTsKKyAgICB9CiAKICAgICBlbWl0VXJsQ2hhbmdlSWZOZWVkZWQoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4
IGM2M2M2MDAxMmNkYjU1ZDVmMzhhYWEyZjM5N2FjNDBlOGJkYzRhYzEuLjUxZDc3YjQ1MGUyODc5
ZGQ0YzIxY2M3YmI4YWM3NzU5NmI1ZWFiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMjA5LDcgKzIwOSw2IEBAIHByaXZh
dGU6CiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3FfY29udGVudFZpZXdwb3J0
Q2hhbmdlZChjb25zdCBRUG9pbnRGJikpOwogCiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCks
IHZvaWQgX3Ffb25WaXNpYmxlQ2hhbmdlZCgpKTsKLSAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMo
KSwgdm9pZCBfcV9vblVybENoYW5nZWQoKSk7CiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCks
IHZvaWQgX3Ffb25SZWNlaXZlZFJlc3BvbnNlRnJvbURvd25sb2FkKFFXZWJEb3dubG9hZEl0ZW0q
KSk7CiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffb25JY29uQ2hhbmdlZEZv
clBhZ2VVUkwoY29uc3QgUVVybCYsIGNvbnN0IFFVcmwmKSk7CiAgICAgLy8gSGlkZXMgUU9iamVj
dDo6ZF9wdHIgYWxsb3dpbmcgdXMgdG8gdXNlIHRoZSBjb252ZW5pZW5jZSBtYWNyb3MuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9w
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgK
aW5kZXggMDczNjgxZmZmZTY5YzJmMzYzY2U3NGU2YzRkMmRmZWExNDMzYmUyNS4uN2I4MDM1MTQ2
NTg0Y2Y0ZGYxMWRkMzI4MTNmMWYwZWNjM2RiYjk1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtNzUsOSArNzUsOSBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZERpZFN1Y2NlZWQoKTsKICAgICB2aXJ0
dWFsIHZvaWQgb25Db21wb25lbnRDb21wbGV0ZSgpOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkRGlk
Q29tbWl0KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEZpcnN0Tm9uRW1wdHlMYXlv
dXQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNv
bnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYgYXR0cikgeyB9CisgICAgdm9pZCBsb2Fk
RGlkQ29tbWl0KCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VMb2FkaW5nU3RhdGUoUVdlYkxvYWRSZXF1
ZXN0KiBsb2FkUmVxdWVzdCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoKTsK
IApAQCAtMjI0LDcgKzIyNCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkRGlk
U3VjY2VlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBvbmVudENvbXBsZXRlKCk7Ci0gICAg
dmlydHVhbCB2b2lkIGxvYWREaWRDb21taXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNo
Rmlyc3ROb25FbXB0eUxheW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9y
dFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAgICAgdmly
dHVhbCBXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSogdmlld3BvcnRJbnRlcmFj
dGlvbkVuZ2luZSgpIHsgcmV0dXJuIGludGVyYWN0aW9uRW5naW5lLmRhdGEoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwCmlu
ZGV4IDYyZmI1MTJjZjYwOTM0NTY1OTYwNWQwMGViNDA0MGNkODZiNjI5NDIuLmE1NTcyMmY5ZTdl
NmExNzgzZDgxOGRkMGRiZGQzZTIyMjY5YWViNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHAKQEAgLTIwNSw3ICsyMDUsNiBA
QCB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJvZ3Jlc3MoV0tQYWdlUmVmLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFF0V2ViUGFnZUxvYWRDbGllbnQqIGNsaWVu
dCA9IHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKTsKICAgICBjbGllbnQtPnNldExv
YWRQcm9ncmVzcygwKTsKLSAgICBjbGllbnQtPm1fd2ViVmlldy0+ZF9mdW5jKCktPnNldEljb24o
UVVybCgpKTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaWRDaGFuZ2VQcm9ncmVz
cyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143494</attachid>
            <date>2012-05-23 01:19:58 -0700</date>
            <delta_ts>2012-05-23 02:33:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77554-20120523101955.patch</filename>
            <type>text/plain</type>
            <size>25062</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmFmZDIzMGU3MDJkMTIx
ZWJlZjllZDQwYTgwNzc2MzdkNDg3YjZlMS4uOWY1MThlZjFiMjI3ZTVmYjI5NTAyZTJjZjBlZDE0
ODcxMTgxMzAwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA0LTE4ICBUb3Ig
QXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
IE1ha2UgdGhlIHdlYiB2aWV3J3MgdXJsIHByb3BlcnR5IGZvbGxvdyB0aGUgYWN0aXZlIHVybAor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1NAor
CisgICAgICAgIFRoZSB1cmwgcHJvcGVydHkgb2YgdGhlIHdlYnZpZXcgbm93IHJlZmxlY3RzIHRo
ZSAnYWN0aXZlJyB1cmwgb2YgdGhlCisgICAgICAgIHBhZ2UsIHdoaWNoIG1hcHMgdG8gZWl0aGVy
IHRoZSBjdXJyZW50bHkgbG9hZGluZyB1cmwsIGluIHRoZSBjYXNlIG9mCisgICAgICAgIGFuIG9u
Z29pbmcgbG9hZCwgb3IgdGhlIHJlc3VsdCBvZiBhIGxvYWQsIGV2ZW4gd2hlbiB0aGUgbG9hZCBm
YWlsZWQuCisKKyAgICAgICAgSW4gcHJhY3RpY2UgdGhpcyBtZWFucyB0aGF0IHNldHRpbmcgdGhl
IHVybCB0aG91Z2ggUU1MLCBvciBuYXZpZ2F0aW5nCisgICAgICAgIHRvIGEgbmV3IHVybCBpbiB0
aGUgcGFnZSBieSBlLmcgY2xpY2tpbmcsIHdpbGwgYm90aCBpbnN0YW50bHkgY2hhbmdlCisgICAg
ICAgIHRoZSB1cmwtcHJvcGVydHkgb2YgdGhlIHdlYnZpZXcgdG8gdGhlIHRhcmdldCB1cmwuIFRo
aXMgZGlmZmVycyBmcm9tCisgICAgICAgIGVhcmxpZXIgYmVoYXZpb3IsIHdoZXJlIHdlIHdvdWxk
IHVwZGF0ZSB0aGUgdXJsIHdoZW4gdGhlIGxvYWQKKyAgICAgICAgY29tbWl0dGVkLgorCisgICAg
ICAgIEFuIG9wdGlvbmFsIGFyZ3VtZW50IGlzIGFkZGVkIHRvIGxvYWRIdG1sKCksIHRvIGFsbG93
IHNldHRpbmcKKyAgICAgICAgdGhlIHVucmVhY2hhYmxlIHVybCB3aGVuIHByb3ZpZGluZyByZXBs
YWNlbWVudCBjb250ZW50IGZvciBmYWlsZWQKKyAgICAgICAgbG9hZHMuCisKKyAgICAgICAgRmlu
YWxseSwgdGhlIGxvY2F0aW9uIGJhciBpbiB0aGUgbWluaWJyb3dzZXIgaXMgdXBkYXRlZCB0byBi
ZWhhdmUKKyAgICAgICAgYSBiaXQgbW9yZSBsaWtlIG5vcm1hbCBicm93c2VycyBpbiB0ZXJtcyBv
ZiB3aGVuIHRoZSB1cmwgd2lsbCBjaGFuZ2UKKyAgICAgICAgYW5kIGhvdyBhY3RpdmUgZm9jdXMg
aXMgaGFuZGxlZC4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVp
Y2tXZWJWaWV3UHJpdmF0ZTo6b25Db21wb25lbnRDb21wbGV0ZSk6CisgICAgICAgIChRUXVpY2tX
ZWJWaWV3OjpyZWxvYWQpOgorICAgICAgICAoUVF1aWNrV2ViVmlldzo6dXJsKToKKyAgICAgICAg
KFFRdWlja1dlYlZpZXc6OnNldFVybCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3Ojpsb2FkSHRt
bCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm86
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybzoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xv
YWRVcmwucW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29t
bW9uL2xpbmsuaHRtbDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9jb21tb24vcmVkaXJlY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwOgorICAgICAgICAoUXRXZWJQYWdlTG9hZENsaWVu
dDo6UXRXZWJQYWdlTG9hZENsaWVudCk6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50Ojpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFF0V2ViUGFnZUxvYWRD
bGllbnQ6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6
CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaXNwYXRjaExvYWRGYWlsZWQpOgorICAg
ICAgICAoUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJv
ckZvckZyYW1lKToKKyAgICAgICAgKFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZEZhaWxMb2FkV2l0
aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xp
ZW50Lmg6CisgICAgICAgIChRdFdlYlBhZ2VMb2FkQ2xpZW50KToKKwogMjAxMi0wNS0yMSAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzExNDYwMzM2PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3
MDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcAppbmRleCBiZjhkMzRkYWNjMzJjOWZmMDU0OGY3ZTgzNzE2NzUyZTRkZDZkY2U0Li43ZDJj
ZTFjMDAxODcwNWM3M2RmMjk5ZTBlZjU3YjdhZjQ0ODVkN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTMzOCwxNyArMzM4
LDI1IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnByb3Zpc2lvbmFsTG9hZERpZFN0YXJ0
KGNvbnN0IFFVcmwmIHVybCkKIHsKICAgICBRX1EoUVF1aWNrV2ViVmlldyk7CiAKKyAgICBxLT5l
bWl0VXJsQ2hhbmdlSWZOZWVkZWQoKTsKKwogICAgIFFXZWJMb2FkUmVxdWVzdCBsb2FkUmVxdWVz
dCh1cmwsIFFRdWlja1dlYlZpZXc6OkxvYWRTdGFydGVkU3RhdHVzKTsKICAgICBlbWl0IHEtPmxv
YWRpbmdDaGFuZ2VkKCZsb2FkUmVxdWVzdCk7CiB9CiAKK3ZvaWQgUVF1aWNrV2ViVmlld1ByaXZh
dGU6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKGNv
bnN0IFdURjo6U3RyaW5nJikKK3sKKyAgICBRX1EoUVF1aWNrV2ViVmlldyk7CisKKyAgICBxLT5l
bWl0VXJsQ2hhbmdlSWZOZWVkZWQoKTsKK30KKwogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6
bG9hZERpZENvbW1pdCgpCiB7CiAgICAgUV9RKFFRdWlja1dlYlZpZXcpOwogICAgIEFTU0VSVChx
LT5sb2FkaW5nKCkpOwogCiAgICAgZW1pdCBxLT5uYXZpZ2F0aW9uSGlzdG9yeUNoYW5nZWQoKTsK
LSAgICBlbWl0IHEtPnVybENoYW5nZWQoKTsKICAgICBlbWl0IHEtPnRpdGxlQ2hhbmdlZCgpOwog
fQogCkBAIC0zNTYsOCArMzY0LDggQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbigpCiB7CiAgICAgUV9RKFFRdWlja1dlYlZpZXcpOwogCisgICAg
cS0+ZW1pdFVybENoYW5nZUlmTmVlZGVkKCk7CiAgICAgZW1pdCBxLT5uYXZpZ2F0aW9uSGlzdG9y
eUNoYW5nZWQoKTsKLSAgICBlbWl0IHEtPnVybENoYW5nZWQoKTsKIH0KIAogdm9pZCBRUXVpY2tX
ZWJWaWV3UHJpdmF0ZTo6dGl0bGVEaWRDaGFuZ2UoKQpAQCAtNDE5LDYgKzQyNyw3IEBAIHZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OnNldE5lZWRzRGlzcGxheSgpCiB2b2lkIFFRdWlja1dlYlZp
ZXdQcml2YXRlOjpfcV9vbkljb25DaGFuZ2VkRm9yUGFnZVVSTChjb25zdCBRVXJsJiBwYWdlVVJM
LCBjb25zdCBRVXJsJiBpY29uVVJMKQogewogICAgIFFfUShRUXVpY2tXZWJWaWV3KTsKKwogICAg
IGlmIChxLT51cmwoKSAhPSBwYWdlVVJMKQogICAgICAgICByZXR1cm47CiAKQEAgLTY0NCw2ICs2
NTMsOSBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpzZXRJY29uKGNvbnN0IFFVcmwmIGlj
b25VUkwpCiAgICAgaWYgKG1faWNvblVSTCA9PSBpY29uVVJMKQogICAgICAgICByZXR1cm47CiAK
KyAgICBpZiAoIXdlYlBhZ2VQcm94eS0+bWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybjsKKwog
ICAgIFN0cmluZyBvbGRQYWdlVVJMID0gUVVybDo6ZnJvbVBlcmNlbnRFbmNvZGluZyhtX2ljb25V
UkwuZW5jb2RlZEZyYWdtZW50KCkpOwogICAgIFN0cmluZyBuZXdQYWdlVVJMID0gd2ViUGFnZVBy
b3h5LT5tYWluRnJhbWUoKS0+dXJsKCk7CiAKQEAgLTE0NTIsNiArMTQ2NCwxNyBAQCB2b2lkIFFR
dWlja1dlYlZpZXc6OnN0b3AoKQogdm9pZCBRUXVpY2tXZWJWaWV3OjpyZWxvYWQoKQogewogICAg
IFFfRChRUXVpY2tXZWJWaWV3KTsKKworICAgIFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IGQt
PndlYlBhZ2VQcm94eS0+bWFpbkZyYW1lKCk7CisgICAgaWYgKG1haW5GcmFtZSAmJiAhbWFpbkZy
YW1lLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSAmJiBtYWluRnJhbWUtPnVybCgpICE9IGJs
YW5rVVJMKCkpIHsKKyAgICAgICAgLy8gV2UgaGF2ZSBhbiB1bnJlYWNoYWJsZSB1cmwsIGJ1dCBo
YXZlbid0IGxvYWRlZCBhbHRlcm5hdGl2ZSBjb250ZW50CisgICAgICAgIC8vIGZvciBpdCAoYW4g
ZXJyb3IgcGFnZSBlZy4pLCBzbyBXZWJDb3JlIGRvZXNuJ3Qga25vdyBhYm91dCB0aGUgdW5yZWFj
aGFibGUKKyAgICAgICAgLy8gdXJsLCBhbmQgd2lsbCB0cnkgdG8gcmVsb2FkIHRoZSBjdXJyZW50
bHkgY29tbWl0dGVkIHVybCBpbnN0ZWFkLiBXZSBkb24ndAorICAgICAgICAvLyB3YW50IHRoYXQs
IHNvIHdlIG92ZXJyaWRlIHRoZSByZWxvYWQgaGVyZSBieSBkb2luZyBhIG1hbnVhbCBsb2FkLgor
ICAgICAgICBkLT53ZWJQYWdlUHJveHktPmxvYWRVUkwobWFpbkZyYW1lLT51bnJlYWNoYWJsZVVS
TCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGNvbnN0IGJvb2wgcmVsb2FkRnJv
bU9yaWdpbiA9IHRydWU7CiAgICAgZC0+d2ViUGFnZVByb3h5LT5yZWxvYWQocmVsb2FkRnJvbU9y
aWdpbik7CiB9CkBAIC0xNDU5LDEwICsxNDgyLDExIEBAIHZvaWQgUVF1aWNrV2ViVmlldzo6cmVs
b2FkKCkKIFFVcmwgUVF1aWNrV2ViVmlldzo6dXJsKCkgY29uc3QKIHsKICAgICBRX0QoY29uc3Qg
UVF1aWNrV2ViVmlldyk7Ci0gICAgUmVmUHRyPFdlYkZyYW1lUHJveHk+IG1haW5GcmFtZSA9IGQt
PndlYlBhZ2VQcm94eS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFtYWluRnJhbWUpCi0gICAgICAg
IHJldHVybiBRVXJsKCk7Ci0gICAgcmV0dXJuIFFVcmwoUVN0cmluZyhtYWluRnJhbWUtPnVybCgp
KSk7CisKKyAgICAvLyBGSVhNRTogRW5hYmxlIG9uY2Ugd2UgYXJlIHN1cmUgdGhpcyBzaG91bGQg
bm90IHRyaWdnZXIKKyAgICAvLyBRX0FTU0VSVChkLT5tX2N1cnJlbnRVcmwgPT0gZC0+d2ViUGFn
ZVByb3h5LT5hY3RpdmVVUkwoKSk7CisKKyAgICByZXR1cm4gUVVybChkLT5tX2N1cnJlbnRVcmwp
OwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXc6OnNldFVybChjb25zdCBRVXJsJiB1cmwpCkBAIC0x
NDczLDYgKzE0OTcsMTkgQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpzZXRVcmwoY29uc3QgUVVybCYg
dXJsKQogICAgICAgICByZXR1cm47CiAKICAgICBkLT53ZWJQYWdlUHJveHktPmxvYWRVUkwodXJs
LnRvU3RyaW5nKCkpOworICAgIGVtaXRVcmxDaGFuZ2VJZk5lZWRlZCgpOworfQorCisvLyBNYWtl
IHN1cmUgd2UgZG9uJ3QgZW1pdCB1cmxDaGFuZ2VkIHVubGVzcyBpdCBhY3R1YWxseSBjaGFuZ2Vk
Cit2b2lkIFFRdWlja1dlYlZpZXc6OmVtaXRVcmxDaGFuZ2VJZk5lZWRlZCgpCit7CisgICAgUV9E
KFFRdWlja1dlYlZpZXcpOworCisgICAgV1RGOjpTdHJpbmcgYWN0aXZlVXJsID0gZC0+d2ViUGFn
ZVByb3h5LT5hY3RpdmVVUkwoKTsKKyAgICBpZiAoYWN0aXZlVXJsICE9IGQtPm1fY3VycmVudFVy
bCkgeworICAgICAgICBkLT5tX2N1cnJlbnRVcmwgPSBhY3RpdmVVcmw7CisgICAgICAgIGVtaXQg
dXJsQ2hhbmdlZCgpOworICAgIH0KIH0KIAogUVVybCBRUXVpY2tXZWJWaWV3OjppY29uKCkgY29u
c3QKQEAgLTE4MjAsMTIgKzE4NTcsMTkgQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpoYW5kbGVGbGlj
a2FibGVNb3VzZVJlbGVhc2UoY29uc3QgUVBvaW50RiYgcG9zaXRpb24sIHFpbnQ2NAogICAgIEV4
dGVybmFsIG9iamVjdHMgc3VjaCBhcyBzdHlsZXNoZWV0cyBvciBpbWFnZXMgcmVmZXJlbmNlZCBp
biB0aGUgSFRNTAogICAgIGRvY3VtZW50IGFyZSBsb2NhdGVkIHJlbGF0aXZlIHRvIFxhIGJhc2VV
cmwuCiAKKyAgICBJZiBhbiBcYSB1bnJlYWNoYWJsZVVybCBpcyBwYXNzZWQgaXQgaXMgdXNlZCBh
cyB0aGUgdXJsIGZvciB0aGUgbG9hZGVkCisgICAgY29udGVudC4gVGhpcyBpcyB0eXBpY2FsbHkg
dXNlZCB0byBkaXNwbGF5IGVycm9yIHBhZ2VzIGZvciBhIGZhaWxlZAorICAgIGxvYWQuCisKICAg
ICBcc2EgV2ViVmlldzo6dXJsCiAqLwotdm9pZCBRUXVpY2tXZWJWaWV3Ojpsb2FkSHRtbChjb25z
dCBRU3RyaW5nJiBodG1sLCBjb25zdCBRVXJsJiBiYXNlVXJsKQordm9pZCBRUXVpY2tXZWJWaWV3
Ojpsb2FkSHRtbChjb25zdCBRU3RyaW5nJiBodG1sLCBjb25zdCBRVXJsJiBiYXNlVXJsLCBjb25z
dCBRVXJsJiB1bnJlYWNoYWJsZVVybCkKIHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7Ci0gICAg
ZC0+d2ViUGFnZVByb3h5LT5sb2FkSFRNTFN0cmluZyhodG1sLCBiYXNlVXJsLnRvU3RyaW5nKCkp
OworICAgIGlmICh1bnJlYWNoYWJsZVVybC5pc1ZhbGlkKCkpCisgICAgICAgIGQtPndlYlBhZ2VQ
cm94eS0+bG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcoaHRtbCwgYmFzZVVybC50b1N0cmluZygpLCB1
bnJlYWNoYWJsZVVybC50b1N0cmluZygpKTsKKyAgICBlbHNlCisgICAgICAgIGQtPndlYlBhZ2VQ
cm94eS0+bG9hZEhUTUxTdHJpbmcoaHRtbCwgYmFzZVVybC50b1N0cmluZygpKTsKIH0KIAogUVBv
aW50RiBRUXVpY2tXZWJWaWV3OjpwYWdlSXRlbVBvcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCA3NzNmNzM1YTljYzkyMDAy
YzYyNmM2NjI2YzRkYzAxOWFmOWUxZGVhLi45YWJmNjY5ZDY0ZmJmOTRiMGJhZTk0MDNkNzk5YjM4
NjY5Mzg1M2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld19wLmgKQEAgLTE1NCw3ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRB
bGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JMb2NhbEhvc3QoYm9vbCBhbGxvdyk7CiAKIHB1Ymxp
YyBRX1NMT1RTOgotICAgIHZvaWQgbG9hZEh0bWwoY29uc3QgUVN0cmluZyYgaHRtbCwgY29uc3Qg
UVVybCYgYmFzZVVybCA9IFFVcmwoKSk7CisgICAgdm9pZCBsb2FkSHRtbChjb25zdCBRU3RyaW5n
JiBodG1sLCBjb25zdCBRVXJsJiBiYXNlVXJsID0gUVVybCgpLCBjb25zdCBRVXJsJiB1bnJlYWNo
YWJsZVVybCA9IFFVcmwoKSk7CiAKICAgICB2b2lkIGdvQmFjaygpOwogICAgIHZvaWQgZ29Gb3J3
YXJkKCk7CkBAIC0yMDcsNiArMjA3LDggQEAgcHJpdmF0ZToKICAgICBRUXVpY2tXZWJWaWV3KFdL
Q29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIFFRdWlja0l0ZW0qIHBhcmVudCA9IDApOwogICAg
IFdLUGFnZVJlZiBwYWdlUmVmKCkgY29uc3Q7CiAKKyAgICB2b2lkIGVtaXRVcmxDaGFuZ2VJZk5l
ZWRlZCgpOworCiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffc3VzcGVuZCgp
KTsKICAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBfcV9yZXN1bWUoKSk7CiAgICAg
UV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3FfY29udGVudFZpZXdwb3J0Q2hhbmdlZChj
b25zdCBRUG9pbnRGJikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IGViZDA2ZTNlYTQ3Njc0MzYyMWEyNmNhMDQ0NjY2
ZDhhYmY0ODhjM2UuLjMxMDJiMDUyYWIwZjI0NWFmNDEzMzZjNGQwZDIxNThjOTMxOTE5MWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19w
X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cF9wLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVD
b250ZW50c1NpemUoY29uc3QgUVNpemVGJikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJvdmlz
aW9uYWxMb2FkRGlkU3RhcnQoY29uc3QgUVVybCYgdXJsKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoY29uc3QgV1RG
OjpTdHJpbmcmIHVybCk7CiAgICAgdmlydHVhbCB2b2lkIGxvYWREaWRDb21taXQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbigpOwogICAgIHZpcnR1YWwgdm9p
ZCB0aXRsZURpZENoYW5nZSgpOwpAQCAtMjAxLDYgKzIwMiw3IEBAIHByb3RlY3RlZDoKICAgICBi
b29sIG1fYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yTG9jYWxIb3N0OwogICAgIFFVcmwgbV9p
Y29uVVJMOwogICAgIGludCBtX2xvYWRQcm9ncmVzczsKKyAgICBXVEY6OlN0cmluZyBtX2N1cnJl
bnRVcmw7CiB9OwogCiBjbGFzcyBRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZSA6IHB1YmxpYyBR
UXVpY2tXZWJWaWV3UHJpdmF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3B1YmxpY2FwaS90c3RfcHVibGljYXBpLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcHVibGljYXBpL3RzdF9wdWJsaWNhcGkuY3BwCmlu
ZGV4IDM5ZTZiNTRjZjM1ZjEyOGNmZDZjOWZhMmYzOTY3OTNmZjJlNDRmNmEuLjZjMGNiNGI2Mjkw
NDMyYTkwOWI1ZTY3MDZhM2VlODllZmQ0N2ZiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcHVibGljYXBpL3RzdF9wdWJsaWNhcGkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcHVibGljYXBpL3RzdF9wdWJs
aWNhcGkuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHN0YXRpYyBRU3RyaW5nTGlzdCBleHBlY3RlZEFQ
SSA9IFFTdHJpbmdMaXN0KCkKICAgICA8PCAiUVF1aWNrV2ViVmlldy5pY29uQ2hhbmdlZCgpIC0t
PiB2b2lkIgogICAgIDw8ICJRUXVpY2tXZWJWaWV3LmxpbmtIb3ZlcmVkKFFVcmwsUVN0cmluZykg
LS0+IHZvaWQiCiAgICAgPDwgIlFRdWlja1dlYlZpZXcubmF2aWdhdGlvblJlcXVlc3RlZChRV2Vi
TmF2aWdhdGlvblJlcXVlc3QqKSAtLT4gdm9pZCIKKyAgICA8PCAiUVF1aWNrV2ViVmlldy5sb2Fk
SHRtbChRU3RyaW5nLFFVcmwsUVVybCkgLS0+IHZvaWQiCiAgICAgPDwgIlFRdWlja1dlYlZpZXcu
bG9hZEh0bWwoUVN0cmluZyxRVXJsKSAtLT4gdm9pZCIKICAgICA8PCAiUVF1aWNrV2ViVmlldy5s
b2FkSHRtbChRU3RyaW5nKSAtLT4gdm9pZCIKICAgICA8PCAiUVF1aWNrV2ViVmlldy5nb0JhY2so
KSAtLT4gdm9pZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZmF2SWNvbkxvYWQucW1sIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9mYXZJY29uTG9h
ZC5xbWwKaW5kZXggMjBkNTM4ZmJmYTZmNzhkMTY4NjA1NTMxODA1NjUyMDUxNjEwM2U1OS4uODIx
MDA0MGU4ZDRmYTI1MjBiM2ZkNDY3ZjZhYjRlYmZmMGY0MmJiZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9mYXZJ
Y29uTG9hZC5xbWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9XZWJWaWV3L3RzdF9mYXZJY29uTG9hZC5xbWwKQEAgLTM1LDcgKzM1LDggQEAgVGVz
dFdlYlZpZXcgewogICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCiAgICAgICAgICAg
ICB2YXIgdXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9mYXZpY29uLmh0bWwiKQogICAg
ICAgICAgICAgd2ViVmlldy51cmwgPSB1cmwKLSAgICAgICAgICAgIHNweS53YWl0KCkKKyAgICAg
ICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisgICAgICAgICAg
ICBleHBlY3RGYWlsKCIiLCAiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg3MTMzIikKICAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAxKQogICAgICAgICAgICAg
Y29tcGFyZShmYXZpY29uLndpZHRoLCA0OCkKICAgICAgICAgICAgIGNvbXBhcmUoZmF2aWNvbi5o
ZWlnaHQsIDQ4KQpAQCAtNDUsMTAgKzQ2LDEyIEBAIFRlc3RXZWJWaWV3IHsKICAgICAgICAgICAg
IGNvbXBhcmUoc3B5LmNvdW50LCAwKQogICAgICAgICAgICAgdmFyIHVybCA9IFF0LnJlc29sdmVk
VXJsKCIuLi9jb21tb24vZmF2aWNvbjIuaHRtbD9mYXZpY29uPWxvYWQgc2hvdWxkIHdvcmsgd2l0
aCN3aGl0ZXNwYWNlISIpCiAgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IHVybAotICAgICAgICAg
ICAgc3B5LndhaXQoKQorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNj
ZWVkZWQoKSkKKyAgICAgICAgICAgIGV4cGVjdEZhaWwoIiIsICJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxMzMiKQogICAgICAgICAgICAgY29tcGFyZShzcHkuY291
bnQsIDEpCiAgICAgICAgICAgICBjb21wYXJlKGZhdmljb24ud2lkdGgsIDE2KQogICAgICAgICAg
ICAgY29tcGFyZShmYXZpY29uLmhlaWdodCwgMTYpCisKICAgICAgICAgfQogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
V2ViVmlldy90c3RfbG9hZFVybC5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2xvYWRVcmwucW1sCmluZGV4IDdhYjY5YmQxNTM3
ODM4NmVmNmJlYzA0ZTAyNmFhZjBiNWU4NWRlM2QuLmY3N2M3Zjg3YTM1NDczMmZiYzU1NWQ3NzFl
MTE1MjcyNDA3Y2Q5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfbG9hZFVybC5xbWwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9sb2FkVXJs
LnFtbApAQCAtMTAsNiArMTAsOCBAQCBUZXN0V2ViVmlldyB7CiAgICAgcHJvcGVydHkgaW50IG51
bUxvYWRTdGFydGVkOiAwCiAgICAgcHJvcGVydHkgaW50IG51bUxvYWRTdWNjZWVkZWQ6IDAKIAor
ICAgIGZvY3VzOiB0cnVlCisKICAgICBvbkxvYWRQcm9ncmVzc0NoYW5nZWQ6IHsKICAgICAgICAg
aWYgKHdhdGNoUHJvZ3Jlc3MgJiYgd2ViVmlldy5sb2FkUHJvZ3Jlc3MgIT0gMTAwKSB7CiAgICAg
ICAgICAgICB3YXRjaFByb2dyZXNzID0gZmFsc2UKQEAgLTI3LDYgKzI5LDggQEAgVGVzdFdlYlZp
ZXcgewogICAgIFRlc3RDYXNlIHsKICAgICAgICAgaWQ6IHRlc3QKICAgICAgICAgbmFtZTogIldl
YlZpZXdMb2FkVXJsIgorICAgICAgICB3aGVuOiB3aW5kb3dTaG93bgorCiAgICAgICAgIGZ1bmN0
aW9uIHRlc3RfbG9hZElnbm9yZUVtcHR5VXJsKCkgewogICAgICAgICAgICAgdmFyIHVybCA9IFF0
LnJlc29sdmVkVXJsKCIuLi9jb21tb24vdGVzdDEuaHRtbCIpCiAKQEAgLTU4LDUgKzYyLDYzIEBA
IFRlc3RXZWJWaWV3IHsKICAgICAgICAgICAgIHZlcmlmeSghd2F0Y2hQcm9ncmVzcykKICAgICAg
ICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkKICAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHRlc3RfdXJsUHJvcGVydHkoKSB7CisgICAgICAgICAgICB2YXIgdXJsID0gUXQucmVz
b2x2ZWRVcmwoIi4uL2NvbW1vbi90ZXN0MS5odG1sIikKKworICAgICAgICAgICAgd2ViVmlldy51
cmwgPSB1cmwKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVybCkKKyAgICAgICAg
ICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisgICAgICAgICAgICBj
b21wYXJlKHdlYlZpZXcudXJsLCB1cmwpCisKKyAgICAgICAgICAgIHZhciBib2d1c1NpdGUgPSAi
aHR0cDovL3d3dy5zb21lc2l0ZXRoYXRkb2Vzbm90ZXhpc3QuYWJjLyIKKyAgICAgICAgICAgIHdl
YlZpZXcudXJsID0gYm9ndXNTaXRlCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCBi
b2d1c1NpdGUpCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZEZhaWxlZCgp
KQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgYm9ndXNTaXRlKQorCisgICAgICAg
ICAgICB3ZWJWaWV3LnVybCA9ICJhYm91dDpibGFuayIgLy8gUmVzZXQgZnJvbSBwcmV2aW91cyB0
ZXN0CisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQor
CisgICAgICAgICAgICB2YXIgaGFuZGxlTG9hZEZhaWxlZCA9IGZ1bmN0aW9uKGxvYWRSZXF1ZXN0
KSB7CisgICAgICAgICAgICAgICAgaWYgKGxvYWRSZXF1ZXN0LnN0YXR1cyA9PSBXZWJWaWV3Lkxv
YWRGYWlsZWRTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVy
bCwgYm9ndXNTaXRlKQorICAgICAgICAgICAgICAgICAgICBjb21wYXJlKGxvYWRSZXF1ZXN0LnVy
bCwgYm9ndXNTaXRlKQorICAgICAgICAgICAgICAgICAgICB3ZWJWaWV3LmxvYWRIdG1sKCJsb2Fk
IGZhaWxlZCIsIGJvZ3VzU2l0ZSwgYm9ndXNTaXRlKQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHdlYlZpZXcubG9hZGluZ0NoYW5nZWQuY29ubmVjdChoYW5k
bGVMb2FkRmFpbGVkKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBib2d1c1NpdGUKKyAgICAg
ICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIGJvZ3VzU2l0ZSkKKyAgICAgICAgICAgIHZlcmlm
eSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisgICAgICAgICAgICBjb21wYXJlKHdl
YlZpZXcudXJsLCBib2d1c1NpdGUpCisgICAgICAgICAgICB3ZWJWaWV3LmxvYWRpbmdDaGFuZ2Vk
LmRpc2Nvbm5lY3QoaGFuZGxlTG9hZEZhaWxlZCkKKworICAgICAgICAgICAgdmFyIGRhdGFVcmwg
PSAiZGF0YTp0ZXh0L2h0bWwsZm9vIgorICAgICAgICAgICAgd2ViVmlldy51cmwgPSBkYXRhVXJs
CisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCBkYXRhVXJsKQorCisgICAgICAgICAg
ICB2YXIgcmVkaXJlY3RVcmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3JlZGlyZWN0Lmh0
bWwiKQorICAgICAgICAgICAgd2ViVmlldy51cmwgPSByZWRpcmVjdFVybAorICAgICAgICAgICAg
Y29tcGFyZSh3ZWJWaWV3LnVybCwgcmVkaXJlY3RVcmwpCisgICAgICAgICAgICB2ZXJpZnkod2Vi
Vmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3
LnVybCwgcmVkaXJlY3RVcmwpCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9h
ZFN1Y2NlZWRlZCgpKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgdXJsKQorCisg
ICAgICAgICAgICB2YXIgbGlua1VybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vbGluay5o
dG1sIikKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gbGlua1VybAorICAgICAgICAgICAgY29t
cGFyZSh3ZWJWaWV3LnVybCwgbGlua1VybCkKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3Lndh
aXRGb3JMb2FkU3VjY2VlZGVkKCkpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudXJsLCBs
aW5rVXJsKQorICAgICAgICAgICAgd2ViVmlldy5sb2FkaW5nQ2hhbmdlZC5jb25uZWN0KGZ1bmN0
aW9uKGxvYWRSZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwg
bG9hZFJlcXVlc3QudXJsKQorICAgICAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy51cmwsIHVy
bCkKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICB3ZWJWaWV3LmZvcmNlQWN0aXZlRm9jdXMo
KQorICAgICAgICAgICAga2V5UHJlc3MoUXQuS2V5X1JldHVybikgLy8gTGluayBpcyBmb2N1c2Vk
CisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQorICAg
ICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnVybCwgdXJsKQorICAgICAgICB9CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0
cy9jb21tb24vbGluay5odG1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0
cy9xbWx0ZXN0cy9jb21tb24vbGluay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3OTFiN2RlNDgzZDQxNTM0
ZmNmMmEwZWQxNDNkOTFiZDEwNzdkZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9saW5rLmh0bWwKQEAgLTAs
MCArMSw2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJkb2N1bWVu
dC5saW5rc1snZm9vJ10uZm9jdXMoKTsiPgorPGEgbmFtZT0iZm9vIiBocmVmPSJ0ZXN0MS5odG1s
Ij5MaW5rPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vcmVkaXJlY3QuaHRtbCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3JlZGly
ZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTE0ZTVlMzVhNzI1YjQyNTFlODYyNWUwMjNmNzc0MDFhMDIx
Mzc2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvY29tbW9uL3JlZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSw4IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBj
b250ZW50PSIyOyB1cmw9dGVzdDEuaHRtbCIKKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxv
YWRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRD
bGllbnQuY3BwCmluZGV4IGM3YTY5Y2QyODNhY2JlMWJlYjQzMDI1M2M2MmFhY2Y3M2Q3NTRiNDQu
Ljk4Nzc0OTI2ZjY5Mjg3MTA1OTczNWU2MDU2ZTE3NGIxYjdmMmFkMzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlTG9hZENsaWVudC5jcHAKQEAgLTM2
LDYgKzM2LDcgQEAgUXRXZWJQYWdlTG9hZENsaWVudDo6UXRXZWJQYWdlTG9hZENsaWVudChXS1Bh
Z2VSZWYgcGFnZVJlZiwgUVF1aWNrV2ViVmlldyogd2ViVmkKICAgICBsb2FkQ2xpZW50LnZlcnNp
b24gPSBrV0tQYWdlTG9hZGVyQ2xpZW50Q3VycmVudFZlcnNpb247CiAgICAgbG9hZENsaWVudC5j
bGllbnRJbmZvID0gdGhpczsKICAgICBsb2FkQ2xpZW50LmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUgPSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOworICAgIGxvYWRDbGll
bnQuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgPSBk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTsKICAgICBs
b2FkQ2xpZW50LmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSA9IGRpZEZh
aWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZTsKICAgICBsb2FkQ2xpZW50LmRpZENv
bW1pdExvYWRGb3JGcmFtZSA9IGRpZENvbW1pdExvYWRGb3JGcmFtZTsKICAgICBsb2FkQ2xpZW50
LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlzaExvYWRGb3JGcmFtZTsKQEAgLTU0LDYg
KzU1LDExIEBAIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbExv
YWQoY29uc3QgUVVybCYgdXJsKQogICAgIG1fd2ViVmlldy0+ZF9mdW5jKCktPnByb3Zpc2lvbmFs
TG9hZERpZFN0YXJ0KHVybCk7CiB9CiAKK3ZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoY29uc3QgV1RGOjpT
dHJpbmcmIHVybCkKK3sKKyAgICBtX3dlYlZpZXctPmRfZnVuYygpLT5kaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1cmwpOworfQorCiB2b2lkIFF0V2Vi
UGFnZUxvYWRDbGllbnQ6OmRpZENvbW1pdExvYWQoKQogewogICAgIG1fd2ViVmlldy0+ZF9mdW5j
KCktPmxvYWREaWRDb21taXQoKTsKQEAgLTg0LDE2ICs5MCwzMCBAQCB2b2lkIFF0V2ViUGFnZUxv
YWRDbGllbnQ6OmRpc3BhdGNoTG9hZFN1Y2NlZWRlZCgpCiAgICAgbV93ZWJWaWV3LT5kX2Z1bmMo
KS0+bG9hZERpZFN1Y2NlZWQoKTsKIH0KIAotdm9pZCBRdFdlYlBhZ2VMb2FkQ2xpZW50OjpkaXNw
YXRjaExvYWRGYWlsZWQoY29uc3QgUXRXZWJFcnJvciYgZXJyb3IpCit2b2lkIFF0V2ViUGFnZUxv
YWRDbGllbnQ6OmRpc3BhdGNoTG9hZEZhaWxlZChXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCBRdFdl
YkVycm9yJiBlcnJvcikKIHsKICAgICBpbnQgZXJyb3JDb2RlID0gZXJyb3IuZXJyb3JDb2RlKCk7
CiAKICAgICBpZiAoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSB8fCBlcnJvckNvZGUgPT0ga1dLRXJy
b3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSB8fCBlcnJvckNvZGUgPT0g
a1dLRXJyb3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQpIHsKKyAgICAgICAgLy8gVGhlIGFjdGl2
ZSB1cmwgbWlnaHQgaGF2ZSBjaGFuZ2VkCisgICAgICAgIG1fd2ViVmlldy0+ZW1pdFVybENoYW5n
ZUlmTmVlZGVkKCk7CisKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgTG9hZFN0YXJ0ZWRTdGF0
dXMgaGFzIGEgY291bnRlcnBhcnQgd2hlbiBlLmcuIHJlcXVlc3RpbmcgYSBkb3dubG9hZC4KICAg
ICAgICAgZGlzcGF0Y2hMb2FkU3VjY2VlZGVkKCk7CisKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAorICAgIC8vIFdlIHNldCB0aGUgdW5yZWFjaGFibGUgdXJsIHVuY29uZGl0aW9uYWxseSBzbyB0
aGF0IHRoZSBjdXJyZW50CisgICAgLy8gYWN0aXZlIHVybCBvZiB0aGUgd2VidmlldyB3aGVuIHRo
ZSBsb2FkaW5nQ2hhbmdlZCBzaWduYWwgaXMKKyAgICAvLyBlbWl0dGVkIHJlZmxlY3RzIHRoZSBm
YWlsZWQgdXJsLCBub3QgdGhlIHByZXZpb3VzbHkgY29tbWl0dGVkCisgICAgLy8gdXJsLiBUaGlz
IGFsc28gZW5zdXJlcyB0aGF0IGlmIHRoZSB1c2VyIGRvZXMgbm90IGRvIGEgbG9hZEh0bWwKKyAg
ICAvLyB3aXRoIGFuIGVycm9yIHBhZ2UgYW5kIGFuZCB1bnJlYWNoYWJsZSB1cmwgYXMgYSByZXBv
bnNlIHRvIHRoZQorICAgIC8vIGZhaWxlZCBsb2FkLCB3ZSBjYW4gc3RpbGwgZGV0ZWN0IHRoZSBm
YWlsZWQgdXJsIGZvciByZWxvYWRzLgorICAgIFdlYkZyYW1lUHJveHkqIHdrZnJhbWUgPSB0b0lt
cGwoZnJhbWUpOworICAgIHdrZnJhbWUtPnNldFVucmVhY2hhYmxlVVJMKGVycm9yLnVybCgpKTsK
KyAgICBtX3dlYlZpZXctPmVtaXRVcmxDaGFuZ2VJZk5lZWRlZCgpOworCiAgICAgbV93ZWJWaWV3
LT5kX2Z1bmMoKS0+bG9hZERpZEZhaWwoZXJyb3IpOwogfQogCkBAIC0xMTIsMTEgKzEzMiwyMCBA
QCB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmCiAgICAgdG9RdFdlYlBhZ2VMb2FkQ2xpZW50KGNsaWVu
dEluZm8pLT5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZChxVXJsKTsKIH0KIAordm9pZCBRdFdlYlBh
Z2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFdlYkZyYW1lUHJveHkqIHdrZnJhbWUgPSB0b0ltcGwoZnJh
bWUpOworICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUod2tmcmFtZS0+cHJvdmlzaW9u
YWxVUkwoKSk7Cit9CisKIHZvaWQgUXRXZWJQYWdlTG9hZENsaWVudDo6ZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tF
cnJvclJlZiBlcnJvciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwotICAgIHRv
UXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlzcGF0Y2hMb2FkRmFpbGVkKGVycm9y
KTsKKyAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5mbyktPmRpc3BhdGNoTG9hZEZh
aWxlZChmcmFtZSwgZXJyb3IpOwogfQogCiB2b2lkIFF0V2ViUGFnZUxvYWRDbGllbnQ6OmRpZENv
bW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTEzNyw3ICsxNjYsNyBAQCB2b2lkIFF0V2ViUGFn
ZUxvYWRDbGllbnQ6OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0Zy
YW1lUmVmIGZyYQogewogICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIHRvUXRXZWJQYWdlTG9hZENsaWVudChjbGllbnRJbmZvKS0+ZGlzcGF0
Y2hMb2FkRmFpbGVkKGVycm9yKTsKKyAgICB0b1F0V2ViUGFnZUxvYWRDbGllbnQoY2xpZW50SW5m
byktPmRpc3BhdGNoTG9hZEZhaWxlZChmcmFtZSwgZXJyb3IpOwogfQogCiB2b2lkIFF0V2ViUGFn
ZUxvYWRDbGllbnQ6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tU
eXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VMb2FkQ2xpZW50LmgKaW5kZXggMTc5ZWI4ZWQy
ZTkyOGJmY2M3MmYxMWRlOGQzYjFlMWU5MTdlNjVhZi4uNTVlN2RiMzJjMWFkY2E0ODVkNGRjMGY3
OTM3NTY2NzBlMmViNGRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0V2ViUGFnZUxvYWRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRXZWJQYWdlTG9hZENsaWVudC5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlIDxRdEds
b2JhbD4KICNpbmNsdWRlIDxXS1BhZ2UuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogUVRfQkVHSU5fTkFNRVNQQUNFCiBjbGFzcyBRVXJsOwpAQCAtNDAsNiArNDEsNyBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZChjb25z
dCBRVXJsJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZShjb25zdCBXVEY6OlN0cmluZyYpOwogICAgIHZvaWQgZGlkQ29tbWl0TG9h
ZCgpOwogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbigpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZVRpdGxlKCk7CkBAIC00NywxMSArNDksMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZENoYW5nZUJhY2tGb3J3YXJkTGlzdCgpOwogCiAgICAgdm9pZCBkaXNwYXRjaExvYWRTdWNjZWVk
ZWQoKTsKLSAgICB2b2lkIGRpc3BhdGNoTG9hZEZhaWxlZChjb25zdCBRdFdlYkVycm9yJik7Cisg
ICAgdm9pZCBkaXNwYXRjaExvYWRGYWlsZWQoV0tGcmFtZVJlZiwgY29uc3QgUXRXZWJFcnJvciYp
OwogCiAKICAgICAvLyBXS1BhZ2VMb2FkQ2xpZW50IGNhbGxiYWNrcy4KICAgICBzdGF0aWMgdm9p
ZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMg
dm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShX
S1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJv
ckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tFcnJvclJlZiwgV0tUeXBlUmVmIHVz
ZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDb21t
aXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRG
b3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggYTg0MzFlZjgyMTk3ODg0ZDNhZDkxYjg3ZjllNjUyMzg4NjQyYzk5Ni4u
Y2VlNDE3ODdjYjc1NWIwMGRmOTFjZjczNWUxNDNiMWM0NjRiYTEzNSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEy
LTA0LTE4ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KKwor
ICAgICAgICBbUXRdIE1ha2UgdGhlIHdlYiB2aWV3J3MgdXJsIHByb3BlcnR5IGZvbGxvdyB0aGUg
YWN0aXZlIHVybAorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NzU1NAorCisgICAgICAgIFVwZGF0ZSAgdGhlIGxvY2F0aW9uIGJhciBpbiB0aGUgbWlu
aWJyb3dzZXIgdG8gYmVoYXZlCisgICAgICAgIGEgYml0IG1vcmUgbGlrZSBub3JtYWwgYnJvd3Nl
cnMgaW4gdGVybXMgb2Ygd2hlbiB0aGUgdXJsIHdpbGwgY2hhbmdlCisgICAgICAgIGFuZCBob3cg
YWN0aXZlIGZvY3VzIGlzIGhhbmRsZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1
c21hbm4uCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWw6
CisKIDIwMTItMDUtMjIgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tp
YS5jb20+CiAKICAgICAgICAgR0NDIDQuNyBhbmQgQysrMTEgc3VwcG9ydC4KZGlmZiAtLWdpdCBh
L1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbCBiL1Rvb2xzL01pbmlC
cm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbAppbmRleCA5NmQ1M2QzMDk5MjUzMjA0NTI5
NjEyNTBlMzFjNTU1N2IzODE1MTc4Li41MjM3YzcxNWM4NGMxODhiNDI5OGNmZDBkODc2NDJmZTIy
NDk4ZjNiIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRv
dy5xbWwKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCkBA
IC00MiwxMCArNDIsMTIgQEAgUmVjdGFuZ2xlIHsKIAogICAgIGZ1bmN0aW9uIGxvYWQoYWRkcmVz
cykgewogICAgICAgICB3ZWJWaWV3LnVybCA9IGFkZHJlc3MKKyAgICAgICAgd2ViVmlldy5mb3Jj
ZUFjdGl2ZUZvY3VzKCkKICAgICB9CiAKICAgICBmdW5jdGlvbiByZWxvYWQoKSB7CiAgICAgICAg
IHdlYlZpZXcucmVsb2FkKCkKKyAgICAgICAgd2ViVmlldy5mb3JjZUFjdGl2ZUZvY3VzKCkKICAg
ICB9CiAKICAgICBmdW5jdGlvbiBmb2N1c0FkZHJlc3NCYXIoKSB7CkBAIC0yNTMsMTAgKzI1NSwx
MCBAQCBSZWN0YW5nbGUgewogICAgICAgICAgICAgICAgICAgICBsZWZ0OiBwYXJlbnQubGVmdAog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICByYWRpdXM6IDMKLSAgICAgICAgICAg
ICAgICB3aWR0aDogcGFyZW50LndpZHRoIC8gMTAwICogd2ViVmlldy5sb2FkUHJvZ3Jlc3MKKyAg
ICAgICAgICAgICAgICB3aWR0aDogcGFyZW50LndpZHRoIC8gMTAwICogTWF0aC5tYXgoNSwgd2Vi
Vmlldy5sb2FkUHJvZ3Jlc3MpCiAgICAgICAgICAgICAgICAgY29sb3I6ICJibHVlIgogICAgICAg
ICAgICAgICAgIG9wYWNpdHk6IDAuMwotICAgICAgICAgICAgICAgIHZpc2libGU6IHdlYlZpZXcu
bG9hZFByb2dyZXNzICE9IDEwMAorICAgICAgICAgICAgICAgIHZpc2libGU6IHdlYlZpZXcubG9h
ZGluZwogICAgICAgICAgICAgfQogICAgICAgICAgICAgSW1hZ2UgewogICAgICAgICAgICAgICAg
IGlkOiBmYXZJY29uCkBAIC0yNzMsNiArMjc1LDcgQEAgUmVjdGFuZ2xlIHsKICAgICAgICAgICAg
ICAgICBpZDogYWRkcmVzc0xpbmUKICAgICAgICAgICAgICAgICBjbGlwOiB0cnVlCiAgICAgICAg
ICAgICAgICAgc2VsZWN0QnlNb3VzZTogdHJ1ZQorICAgICAgICAgICAgICAgIGhvcml6b250YWxB
bGlnbm1lbnQ6IFRleHRJbnB1dC5BbGlnbkxlZnQKICAgICAgICAgICAgICAgICBmb250IHsKICAg
ICAgICAgICAgICAgICAgICAgcG9pbnRTaXplOiAxMQogICAgICAgICAgICAgICAgICAgICBmYW1p
bHk6ICJTYW5zIgpAQCAtMjg1LDkgKzI4OCwyMSBAQCBSZWN0YW5nbGUgewogICAgICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgICAgIEtleXMub25SZXR1cm5QcmVzc2VkOnsKLSAgICAgICAg
ICAgICAgICAgICAgY29uc29sZS5sb2coImdvaW5nIHRvOiAiLCBhZGRyZXNzTGluZS50ZXh0KQot
ICAgICAgICAgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IHV0aWxzLnVybEZyb21Vc2VySW5wdXQo
YWRkcmVzc0xpbmUudGV4dCkKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIk5hdmln
YXRpbmcgdG86ICIsIGFkZHJlc3NMaW5lLnRleHQpCisgICAgICAgICAgICAgICAgICAgIGxvYWQo
dXRpbHMudXJsRnJvbVVzZXJJbnB1dChhZGRyZXNzTGluZS50ZXh0KSkKICAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSB1cmwgdXJsCisKKyAgICAgICAgICAgICAg
ICBvblVybENoYW5nZWQ6IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUZvY3VzKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgICAgIHRl
eHQgPSB1cmwKKyAgICAgICAgICAgICAgICAgICAgY3Vyc29yUG9zaXRpb24gPSAwCisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgb25BY3RpdmVGb2N1c0NoYW5nZWQ6IHVybCA9
IHdlYlZpZXcudXJsCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0zMDUsMTAg
KzMyMCwxNSBAQCBSZWN0YW5nbGUgewogCiAgICAgICAgIG9uVGl0bGVDaGFuZ2VkOiBwYWdlVGl0
bGVDaGFuZ2VkKHRpdGxlKQogICAgICAgICBvblVybENoYW5nZWQ6IHsKLSAgICAgICAgICAgIGFk
ZHJlc3NMaW5lLnRleHQgPSB1cmwKKyAgICAgICAgICAgIGFkZHJlc3NMaW5lLnVybCA9IHdlYlZp
ZXcudXJsCisKICAgICAgICAgICAgIGlmIChvcHRpb25zLnByaW50TG9hZGVkVXJscykKLSAgICAg
ICAgICAgICAgICBjb25zb2xlLmxvZygiTG9hZGVkOiIsIHdlYlZpZXcudXJsLnRvU3RyaW5nKCkp
OwotICAgICAgICAgICAgZm9yY2VBY3RpdmVGb2N1cygpOworICAgICAgICAgICAgICAgIGNvbnNv
bGUubG9nKCJXZWJWaWV3IHVybCBjaGFuZ2VkOiIsIHdlYlZpZXcudXJsLnRvU3RyaW5nKCkpOwor
ICAgICAgICB9CisKKyAgICAgICAgb25Mb2FkaW5nQ2hhbmdlZDogeworICAgICAgICAgICAgaWYg
KCFsb2FkaW5nICYmIGxvYWRSZXF1ZXN0LnN0YXR1cyA9PSBXZWJWaWV3LkxvYWRGYWlsZWRTdGF0
dXMpCisgICAgICAgICAgICAgICAgd2ViVmlldy5sb2FkSHRtbCgiRmFpbGVkIHRvIGxvYWQgIiAr
IGxvYWRSZXF1ZXN0LnVybCwgIiIsIGxvYWRSZXF1ZXN0LnVybCkKICAgICAgICAgfQogCiAgICAg
ICAgIGV4cGVyaW1lbnRhbC5kZXZpY2VQaXhlbFJhdGlvOiAxLjUK
</data>

          </attachment>
      

    </bug>

</bugzilla>