<?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>149505</bug_id>
          
          <creation_ts>2015-09-23 10:11:21 -0700</creation_ts>
          <short_desc>Web Inspector: Console SearchBar should work more like ContentBrowser FindBanner</short_desc>
          <delta_ts>2015-10-22 10:57:03 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>graouts</cc>
    
    <cc>hello</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1128342</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-09-23 10:11:21 -0700</bug_when>
    <thetext>* SUMMARY
Console SearchBar should work more like ContentBrowser FindBanner.

The Console&apos;s search has a poorer experience than the ContentBrowser search.

* STEPS TO REPRODUCE
1. Evaluate &quot;123&quot;, &quot;1234&quot;, &quot;12345&quot; in the console
2. Focus the Console&apos;s search bar
3. Type &quot;123&quot; followed by Enter/Return
  =&gt; Search bar should still have focus, but it does not have focus
  =&gt; Expected # of results and next/previous buttons, but there are none</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128343</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-09-23 10:11:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/22821142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128663</commentid>
    <comment_count>2</comment_count>
      <attachid>261915</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-24 22:54:12 -0700</bug_when>
    <thetext>Created attachment 261915
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128681</commentid>
    <comment_count>3</comment_count>
      <attachid>261915</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-09-25 01:33:02 -0700</bug_when>
    <thetext>Comment on attachment 261915
patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/ConsoleFindBanner.css:2
&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.

2013?

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:34
&gt; +        this._element.classList.add(className);

I would recommend adding an if statement/fallback in case className is ever falsy.

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:73
&gt; +            this._doneButton = document.createElement(&quot;button&quot;);

We like to name our DOM element variables with *Element.  Also, this variable isn&apos;t used outside of this loop, so it&apos;s really not necessary to save it:
let doneButtonElement = ...

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:202
&gt; +        this._delegate.searchBarWantsToLoseFocus();

You should add a check here to ensure that the delegate exists and has a function called searchBarWantsToLoseFocus.

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:205
&gt; +

NIT: remove extra newlines.

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:896
&gt; +        var numberOfResults = 0;

We are using &quot;let&quot; instead of &quot;var&quot; now.

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:904
&gt; +                numberOfResults ++;

NIT: remove extra space.
numberOfResults++;

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:924
&gt; +        this._searchBar.numberOfResults =  numberOfResults;

NIT: remove extra space.
= numberOfResults;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128721</commentid>
    <comment_count>4</comment_count>
      <attachid>261928</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-25 10:18:20 -0700</bug_when>
    <thetext>Created attachment 261928
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128742</commentid>
    <comment_count>5</comment_count>
      <attachid>261931</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-25 12:18:29 -0700</bug_when>
    <thetext>Created attachment 261931
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128829</commentid>
    <comment_count>6</comment_count>
      <attachid>261931</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-09-25 17:44:39 -0700</bug_when>
    <thetext>Comment on attachment 261931
patch

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

&gt; Source/WebInspectorUI/UserInterface/Main.html:85
&gt; +    &lt;link rel=&quot;stylesheet&quot; href=&quot;Views/ConsoleFindBanner.css&quot;&gt;

We organize CSS files by alphabetical order.  Please move this to its appropriate place.

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:918
&gt; +        this._findBanner.numberOfResults = numberOfResults;

You have a findBanner parameter for this function.  Is there a reason that you don&apos;t use it?  If so, why not remove the parameter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128845</commentid>
    <comment_count>7</comment_count>
      <attachid>261931</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-25 20:06:56 -0700</bug_when>
    <thetext>Comment on attachment 261931
patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:918
&gt;&gt; +        this._findBanner.numberOfResults = numberOfResults;
&gt; 
&gt; You have a findBanner parameter for this function.  Is there a reason that you don&apos;t use it?  If so, why not remove the parameter?

you are right, no need to use it on this function, going to remove it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128846</commentid>
    <comment_count>8</comment_count>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-25 20:07:25 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=261931&amp;action=review

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:918
&gt;&gt; +        this._findBanner.numberOfResults = numberOfResults;
&gt; 
&gt; You have a findBanner parameter for this function.  Is there a reason that you don&apos;t use it?  If so, why not remove the parameter?

you are right, no need to use it on this function, going to remove it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128847</commentid>
    <comment_count>9</comment_count>
      <attachid>261961</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-25 20:28:53 -0700</bug_when>
    <thetext>Created attachment 261961
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129275</commentid>
    <comment_count>10</comment_count>
      <attachid>261961</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-09-29 10:21:43 -0700</bug_when>
    <thetext>Comment on attachment 261961
patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/ConsoleFindBanner.css:58
&gt; +.console-find-banner &gt; input[type=&quot;search&quot;] {

Is this CSS rule the only reason that you created ConsoleFindBanner.css?  If so, please delete this file and just add this rule to FindBanner.css like so:

.find-banner.console-find-banner &gt; input[type=&quot;search&quot;] {
    ...
}

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:28
&gt; +    constructor(delegate, className = &quot;find-banner&quot;, fixed = false)

I would actually change how you are currently doing the className to always add &quot;find-banner&quot; and, if the user specifies a className in the constructor, add another classname:

constructor(delegate, className, fixed = false)

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:34
&gt; +        this._element.classList.add(className);

From line 28:

this._element.classList.add(&quot;find-banner&quot;);
if (className &amp;&amp; className.length)
    this._element.classList.add(className):

This ensures that all FindBanners have the same default styling specified in FindBanner.css but also have the ability to have extra styling applied through this className arg (use this for my comment in ConsoleFindBanner.css).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129471</commentid>
    <comment_count>11</comment_count>
      <attachid>262131</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-29 19:05:05 -0700</bug_when>
    <thetext>Created attachment 262131
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129486</commentid>
    <comment_count>12</comment_count>
      <attachid>262131</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-09-29 20:22:39 -0700</bug_when>
    <thetext>Comment on attachment 262131
patch

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

&gt; Source/WebInspectorUI/ChangeLog:13
&gt; +        * UserInterface/Views/ConsoleFindBanner.css: Added.

You forgot to update the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129627</commentid>
    <comment_count>13</comment_count>
      <attachid>262181</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-30 10:23:36 -0700</bug_when>
    <thetext>Created attachment 262181
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129713</commentid>
    <comment_count>14</comment_count>
      <attachid>262203</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-30 16:23:02 -0700</bug_when>
    <thetext>Created attachment 262203
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129729</commentid>
    <comment_count>15</comment_count>
      <attachid>262203</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-09-30 16:43:24 -0700</bug_when>
    <thetext>Comment on attachment 262203
patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:93
&gt; +        var navigationItems = [this._findBanner, this._scopeBar, this._clearLogNavigationItem];

Use let rather than var in new code.

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:219
&gt; +    findBannerRevealPreviousResult() {

Opening brace should be on its own line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129741</commentid>
    <comment_count>16</comment_count>
      <attachid>262208</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-30 17:02:53 -0700</bug_when>
    <thetext>Created attachment 262208
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129751</commentid>
    <comment_count>17</comment_count>
      <attachid>262208</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-09-30 17:16:19 -0700</bug_when>
    <thetext>Comment on attachment 262208
patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:83
&gt; +

Extra newline.

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:90
&gt; +

See above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129755</commentid>
    <comment_count>18</comment_count>
      <attachid>262211</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-09-30 17:20:41 -0700</bug_when>
    <thetext>Created attachment 262211
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131091</commentid>
    <comment_count>19</comment_count>
      <attachid>262211</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-06 12:50:03 -0700</bug_when>
    <thetext>Comment on attachment 262211
patch

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

This certainly improves the experience in the console. Some more tweaks and it should be good to land.

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:34
&gt;          this._element.classList.add(&quot;find-banner&quot;);

Now that the super class is creating the element this code should use &quot;this.element&quot; instead of &quot;this._element&quot;.

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:36
&gt; +        if (className &amp;&amp; className.length)

The first condition is enough.

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:-69
&gt; -        this._inputField.addEventListener(&quot;keydown&quot;, this._inputFieldKeyDown.bind(this), false);
&gt; -        this._inputField.addEventListener(&quot;keyup&quot;, this._inputFieldKeyUp.bind(this), false);

I don&apos;t understand why these are being removed.

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:202
&gt; +    loseFocus()

The name &quot;loseFocus&quot; could be improved, as this is both clearing the input and attempting to lose focus. It also doesn&apos;t need to be public.

How about &quot;_clearAndBlur&quot;.

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:209
&gt; +        if (this._delegate &amp;&amp; typeof this._delegate.findBannerWantsToLoseFocus === &quot;function&quot;) {
&gt; +            this._inputField.value = &quot;&quot;;
&gt; +            this._previousSearchValue = &quot;&quot;;
&gt; +            this._delegate.findBannerSearchCleared();
&gt; +            this._delegate.findBannerWantsToLoseFocus();
&gt; +        }

You are calling two delegate methods but only checking for one. This should probably be rewritten as:

    this._inputField.value = &quot;&quot;;
    this._previousSearchValue = &quot;&quot;;
    if (this._delegate.findBannerSearchCleared)
        this._delegate.findBannerSearchCleared();
    if (this._delegate.findBannerWantsToLoseFocus)
        this._delegate.findBannerWantsToLoseFocus();

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:-275
&gt; -            } else if (this._searchKeyPressed &amp;&amp; this._numberOfResults &gt; 0) {
&gt; -                if (this._searchBackwards) {
&gt; -                    if (this._delegate &amp;&amp; typeof this._delegate.findBannerRevealPreviousResult === &quot;function&quot;)
&gt; -                        this._delegate.findBannerRevealPreviousResult(this);
&gt; -                } else {
&gt; -                    if (this._delegate &amp;&amp; typeof this._delegate.findBannerRevealNextResult === &quot;function&quot;)
&gt; -                        this._delegate.findBannerRevealNextResult(this);
&gt; -                }

This seems to break hitting &quot;Enter&quot; and &quot;Shift+Enter&quot; from searching forwards and backwards. We still want that!

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:60
&gt; -        this._searchBar = new WebInspector.SearchBar(&quot;log-search-bar&quot;, WebInspector.UIString(&quot;Filter Console Log&quot;), this);
&gt; -        this._searchBar.addEventListener(WebInspector.SearchBar.Event.TextChanged, this._searchTextDidChange, this);
&gt; +        this._findBanner = new WebInspector.FindBanner(this, &quot;console-find-banner&quot;, true);

This used to include styles:

.search-bar.log-search-bar &gt; input[type=&quot;search&quot;] {
    width: 150px;
    border: 1px solid hsla(0, 0%, 0%, 0.35);
    padding-left: 4px;
}

I think we at least want to keep the border coloring (the others seem less important / poor).

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:874
&gt; +    _performSearch(searchTerms = &quot;&quot;)

I know it was an earlier comment, but I find this confusing / magical to have a default value here. I would think _performSearch() would repeat a search, not clear a search.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131797</commentid>
    <comment_count>20</comment_count>
      <attachid>262733</attachid>
    <who name="João Oliveira">hello</who>
    <bug_when>2015-10-08 17:26:55 -0700</bug_when>
    <thetext>Created attachment 262733
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133223</commentid>
    <comment_count>21</comment_count>
      <attachid>262733</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-14 12:27:57 -0700</bug_when>
    <thetext>Comment on attachment 262733
patch

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

r=me.

&gt; Source/WebInspectorUI/UserInterface/Views/FindBanner.js:77
&gt; +            this.element.classList.add(className);

This statement looks redundant, as it was already one above on line 36.

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:-60
&gt; -        this._searchBar = new WebInspector.SearchBar(&quot;log-search-bar&quot;, WebInspector.UIString(&quot;Filter Console Log&quot;), this);

You have removed the only use of &quot;log-search-bar&quot;. You should remove the CSS that is no longer used:

Views/LogContentView.css
188:.search-bar.log-search-bar &gt; input[type=&quot;search&quot;] {

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:874
&gt; +    _performSearch(searchTerms)

Nit: A pre-existing bug is that the search should re-run when the filter bar changes (All | Errors | Warnings | Logs). That can be filed and fixed separately though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133262</commentid>
    <comment_count>22</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-14 14:06:31 -0700</bug_when>
    <thetext>&lt;http://trac.webkit.org/changeset/191071&gt;

Made some additional changes while landing.
1. Styled the &lt;input type=&quot;search&quot;&gt; more like it was (Search Bar) for appearances
2. Made &quot;Escape&quot; also set numberOfResults to null to not leave dangling &quot;No Results Found&quot; text
3. Restored the Placeholder in the Console Search bar
4. Removed some :placeholder-shown CSS that didn&apos;t seem to be changing behavior, unless I&apos;m missing what it was doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135689</commentid>
    <comment_count>23</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-10-22 08:17:46 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; &lt;http://trac.webkit.org/changeset/191071&gt;
&gt; 
&gt; 4. Removed some :placeholder-shown CSS that didn&apos;t seem to be changing
&gt; behavior, unless I&apos;m missing what it was doing.

The point of the :placeholder-shown selectors was to style the sidebar inputs with a white background when they had user typed text, not just when focused. So if you click/tab away it will stay white. That way the user has an indication a filter is applied and it won&apos;t recess into the sidebar background.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135690</commentid>
    <comment_count>24</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-10-22 08:20:06 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; &lt;http://trac.webkit.org/changeset/191071&gt;
&gt; &gt; 
&gt; &gt; 4. Removed some :placeholder-shown CSS that didn&apos;t seem to be changing
&gt; &gt; behavior, unless I&apos;m missing what it was doing.
&gt; 
&gt; The point of the :placeholder-shown selectors was to style the sidebar
&gt; inputs with a white background when they had user typed text, not just when
&gt; focused. So if you click/tab away it will stay white. That way the user has
&gt; an indication a filter is applied and it won&apos;t recess into the sidebar
&gt; background.

That use to match Xcode&apos;s behavior, but they don&apos;t do that anymore. They now style the search box&apos;s filter icon blue when a text filter is applied. I&apos;m ambivalent on the new Xcode design. (They also make blue icons have a 2px stroke when the grey/black icons have 1px. No like.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135736</commentid>
    <comment_count>25</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-22 10:57:03 -0700</bug_when>
    <thetext>Patch restoring them is on:
&lt;https://webkit.org/b/150452&gt; Web Inspector: Restore :not(:placeholder-shown) behavior on search bars with comments</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261915</attachid>
            <date>2015-09-24 22:54:12 -0700</date>
            <delta_ts>2015-09-25 10:18:10 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-149505-20150925065352.patch</filename>
            <type>text/plain</type>
            <size>21967</size>
            <attacher name="João Oliveira">hello</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAz
MWY0NDc1MDMwMmFmNzRlYTZhNzJmMDZlMjYyN2RhMWViYTc3YWIzLi5kYWIwN2RhOGZjOTUzYTQx
YWI4ZmFlZTQxZDVlNjBhODQ0MWIxNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAxNS0wOS0yNCAgSm/Do28gT2xpdmVpcmEgIDxoZWxsb0BqeHMucHQ+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBTZWFyY2hCYXIgc2hvdWxkIHdvcmsgbW9y
ZSBsaWtlIENvbnRlbnRCcm93c2VyIEZpbmRCYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQ29uc29sZSB0YWIgbm93IHVzZXMgZmlu
ZEJhbm5lciwgYWRhcHRlZCBMb2dDb250ZW50VmlldyB0byB1c2UgZmluZEJhbm5lciwKKyAgICAg
ICAgYW5kIGZpbmRCYW5uZXIgdG8gYmUgbW9yZSBhZ25vc3RpYyB0byBib3RoIHVzZWNhc2VzLCBl
aXRoZXIgYXMgZml4ZWQsIG9uIGNvbnNvbGUgdGFiLAorICAgICAgICBhbmQgaGlkZWFibGUgb24g
b3RoZXIgaW5zcGVjdG9yIHRhYnMuIAorICAgICAgICAKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L01haW4uaHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVGaW5kQmFu
bmVyLmNzczogQWRkZWQuCisgICAgICAgIChib2R5LndpbmRvdy1pbmFjdGl2ZSAuY29uc29sZS1m
aW5kLWJhbm5lcik6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lci5zaG93aW5nKToKKyAg
ICAgICAgKC5uby1maW5kLWJhbm5lci10cmFuc2l0aW9uOm1hdGNoZXMoLmNvbnNvbGUtZmluZC1i
YW5uZXIsIC5zdXBwb3J0cy1maW5kLWJhbm5lcikpOgorICAgICAgICAoLnN1cHBvcnRzLWZpbmQt
YmFubmVyKToKKyAgICAgICAgKC5zdXBwb3J0cy1maW5kLWJhbm5lci5zaG93aW5nLWZpbmQtYmFu
bmVyKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gOmZpcnN0LWNoaWxkKToKKyAg
ICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gOmxhc3QtY2hpbGQpOgorICAgICAgICAoLmNv
bnNvbGUtZmluZC1iYW5uZXIgPiBpbnB1dFt0eXBlPSJzZWFyY2giXSk6CisgICAgICAgICguY29u
c29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbik6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5l
ciA+IGJ1dHRvbiA+IC5nbHlwaCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1
dHRvbjpkaXNhYmxlZCA+IC5nbHlwaCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+
IGJ1dHRvbjphY3RpdmU6bm90KDpkaXNhYmxlZCkpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1i
YW5uZXIgPiBidXR0b246ZGlzYWJsZWQpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiBidXR0b24uc2VnbWVudGVkLmxlZnQpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiBidXR0b24uc2VnbWVudGVkLmxlZnQgPiAuZ2x5cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmlu
ZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLmxlZnQ6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpID4g
LmdseXBoKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRl
ZC5yaWdodCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50
ZWQucmlnaHQgPiAuZ2x5cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0
b24uc2VnbWVudGVkLnJpZ2h0OmFjdGl2ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCk6CisgICAg
ICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50ZWQpOgorICAgICAgICAo
LmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkOmFjdGl2ZSk6CisgICAgICAg
ICguY29uc29sZS1maW5kLWJhbm5lciA+IGxhYmVsKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRC
cm93c2VyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RmluZEJhbm5lci5wcm90b3R5cGUuZm9jdXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbmRC
YW5uZXIucHJvdG90eXBlLmxvc2VGb2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJh
bm5lci5wcm90b3R5cGUuX2lucHV0RmllbGRLZXlEb3duKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVsZEtleVVwKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVs
ZFNlYXJjaCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJSZXZl
YWxQcmV2aW91c1Jlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX2ZpbHRlck1lc3NhZ2VFbGVtZW50cyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJQ
ZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90
b3R5cGUuZmluZEJhbm5lclNlYXJjaENsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3LnByb3RvdHlwZS5yZXZlYWxOZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUucmV2ZWFsUHJldmlvdXNTZWFy
Y2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5fcGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLnNlYXJjaEJhckRpZEFjdGl2YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3NlYXJjaFRleHREaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoQmFyLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaEJhci5wcm90b3R5cGUuZm9jdXMpOgorCiAyMDE1LTA5
LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJhbiBzb3J0
LVhjb2RlLXByb2plY3QtZmlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbAppbmRleCBiMGI0YjU5MmQwOTIzN2M1YzRjNjYyZGM2NTc3NWJiOGQxMjRk
NzllLi42MmVlMDczNzU1ZTNiYWVhNjUzNWI4ZjE4MjMyYmE2YjNjMjE0YWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC04Miw2ICs4Miw3
IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9FcnJvck9iamVjdFZp
ZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0ZpbHRlckJh
ci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvRmluZEJhbm5l
ci5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ29uc29sZUZp
bmRCYW5uZXIuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0Zs
ZXhpYmxlU3BhY2VOYXZpZ2F0aW9uSXRlbS5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvRm9sZGVySWNvbi5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvRm9udFJlc291cmNlQ29udGVudFZpZXcuY3NzIj4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVGaW5kQmFu
bmVyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNv
bGVGaW5kQmFubmVyLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzg3OWQxMDdjOWQ2NWUyMzNkYjcyODE1MTVk
OTRmZGRlOTVmYzE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUZpbmRCYW5uZXIuY3NzCkBAIC0wLDAgKzEsMTc1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworYm9keS53aW5kb3ctaW5hY3RpdmUgLmNvbnNvbGUtZmluZC1iYW5uZXIg
eworICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGhzbCgwLCAwJSwgODUlKTsKK30KKworLmNvbnNv
bGUtZmluZC1iYW5uZXIuc2hvd2luZyB7CisgICAgdG9wOiAwOworICAgIHRyYW5zaXRpb24tdGlt
aW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsKK30KKworLm5vLWZpbmQtYmFubmVyLXRyYW5zaXRpb246
bWF0Y2hlcyguY29uc29sZS1maW5kLWJhbm5lciwgLnN1cHBvcnRzLWZpbmQtYmFubmVyKSB7Cisg
ICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMCAhaW1wb3J0YW50OworfQorCisuc3VwcG9ydHMtZmlu
ZC1iYW5uZXIgeworICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRvcDsKKyAgICB0cmFuc2l0aW9u
LWR1cmF0aW9uOiAyMDBtczsKKyAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1p
bjsKK30KKworLnN1cHBvcnRzLWZpbmQtYmFubmVyLnNob3dpbmctZmluZC1iYW5uZXIgeworICAg
IHRvcDogMjJweCAhaW1wb3J0YW50OworICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBl
YXNlLW91dDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiA6Zmlyc3QtY2hpbGQgeworICAg
IG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiA6bGFzdC1jaGlsZCB7CisgICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKK30KKwor
LmNvbnNvbGUtZmluZC1iYW5uZXIgPiBpbnB1dFt0eXBlPSJzZWFyY2giXSB7CisgICAgcGFkZGlu
Zy10b3A6IDA7CisgICAgbWFyZ2luOiAxcHggNnB4OworCisgICAgb3V0bGluZTogbm9uZTsKKwor
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKKworICAgIGJvcmRlcjogMXB4IHNvbGlkIGhz
bGEoMCwgMCUsIDAlLCAwLjI1KTsKKyAgICBib3JkZXItcmFkaXVzOiAzcHg7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgMTAwJSwgMC4yKTsKKyAgICBiYWNrZ3JvdW5kLWNsaXA6
IHBhZGRpbmctYm94OworCisgICAgaGVpZ2h0OiAyMnB4OworfQorCisuY29uc29sZS1maW5kLWJh
bm5lciA+IGJ1dHRvbiB7CisgICAgbWFyZ2luOiAxcHggNHB4OworCisgICAgcGFkZGluZy1sZWZ0
OiA2cHg7CisgICAgcGFkZGluZy1yaWdodDogNnB4OworCisgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBub25lOworCisgICAgYm9yZGVyLXJhZGl1czogNHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlk
IGhzbCgwLCAwJSwgNTclKTsKKworICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICAgIGJh
Y2tncm91bmQtaW1hZ2U6IG5vbmU7CisgICAgYm94LXNoYWRvdzogbm9uZTsKKworICAgIGxpbmUt
aGVpZ2h0OiAxMXB4OworCisgICAgaGVpZ2h0OiAxOXB4OworCisgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOworICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisKKyAgICBvdXRsaW5lLW9mZnNldDogLTJw
eDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24gPiAuZ2x5cGggeworICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKworICAgIHdpZHRoOiA3cHg7CisgICAgaGVpZ2h0OiAxMXB4
OworfQorCisuY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbjpkaXNhYmxlZCA+IC5nbHlwaCB7
CisgICAgb3BhY2l0eTogMC42NTsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b246
YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUs
IDU1JSk7CisgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwg
aHNsKDAsIDAlLCA3OCUpLCBoc2woMCwgMCUsIDg1JSkpOworICAgIGJveC1zaGFkb3c6IGhzbGEo
MCwgMCUsIDEwMCUsIDAuMzMpIDAgMXB4IDAsIGluc2V0IGhzbCgwLCAwJSwgNjQlKSAwIDFweCAx
cHg7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uOmRpc2FibGVkIHsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDc2JSk7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
bm9uZTsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLmxlZnQg
eworICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOworICAgIGJvcmRlci1ib3R0b20tcmln
aHQtcmFkaXVzOiAwOworCisgICAgbWFyZ2luLXJpZ2h0OiAwOworCisgICAgcGFkZGluZy1sZWZ0
OiA2cHg7CisgICAgcGFkZGluZy1yaWdodDogNnB4OworfQorCisuY29uc29sZS1maW5kLWJhbm5l
ciA+IGJ1dHRvbi5zZWdtZW50ZWQubGVmdCA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jYW52YXMoZmluZC1iYW5uZXItcHJldmlvdXMtYXJyb3ctbm9ybWFsKTsKKyAg
ICBiYWNrZ3JvdW5kLXNpemU6IDdweCAxMXB4OworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1y
ZXBlYXQ7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRlZC5sZWZ0
OmFjdGl2ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jYW52YXMoZmluZC1iYW5uZXItcHJldmlvdXMtYXJyb3ctbm9ybWFsLWFjdGl2ZSk7
Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRlZC5yaWdodCB7Cisg
ICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsKKyAgICBib3JkZXItYm90dG9tLWxlZnQtcmFk
aXVzOiAwOworCisgICAgbWFyZ2luLWxlZnQ6IC0xcHg7CisKKyAgICBwYWRkaW5nLWxlZnQ6IDVw
eDsKKyAgICBwYWRkaW5nLXJpZ2h0OiA3cHg7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4g
YnV0dG9uLnNlZ21lbnRlZC5yaWdodCA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jYW52YXMoZmluZC1iYW5uZXItbmV4dC1hcnJvdy1ub3JtYWwpOworICAgIGJhY2tn
cm91bmQtc2l6ZTogN3B4IDExcHg7CisgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsK
K30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLnJpZ2h0OmFjdGl2
ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jYW52YXMoZmluZC1iYW5uZXItbmV4dC1hcnJvdy1ub3JtYWwtYWN0aXZlKTsKK30KKworLmNv
bnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkIHsKKyAgICBtaW4td2lkdGg6IDIy
cHg7CisgICAgcGFkZGluZy10b3A6IDNweDsKKyAgICBwYWRkaW5nLWJvdHRvbTogMnB4OworfQor
CisuY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50ZWQ6YWN0aXZlIHsKKyAgICB6
LWluZGV4OiAxMDA7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorCisuY29uc29sZS1maW5k
LWJhbm5lciA+IGxhYmVsIHsKKyAgICBtYXJnaW46IDAgNnB4OworICAgIGxpbmUtaGVpZ2h0OiAy
MXB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29udGVudEJyb3dzZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwppbmRleCA0MTljNjUxM2M1YjFiYmNmYWI5Mzc4
NWM1ZDVlMjE1Mjg2ZjZlMTRmLi5kOTU3NzZhY2YzZGM4ODU4MmM3NTA3OTRlMTBhZGE2OWM5ZmE4
Y2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZW50QnJvd3Nlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwpAQCAtMzksNyArMzksNyBAQCBXZWJJbnNwZWN0
b3IuQ29udGVudEJyb3dzZXIgPSBjbGFzcyBDb250ZW50QnJvd3NlciBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdDb250YWluZXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudFZpZXdDb250YWluZXIuRXZlbnQuQ3VycmVudENv
bnRlbnRWaWV3RGlkQ2hhbmdlLCB0aGlzLl9jdXJyZW50Q29udGVudFZpZXdEaWRDaGFuZ2UsIHRo
aXMpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2NvbnRlbnRWaWV3
Q29udGFpbmVyLmVsZW1lbnQpOwogCi0gICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLkZpbmRCYW5uZXIodGhpcyk7CisgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIodGhpcywgImZpbmQtYmFubmVyIik7CiAgICAgICAg
IHRoaXMuX2ZpbmRCYW5uZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRmluZEJhbm5l
ci5FdmVudC5EaWRTaG93LCB0aGlzLl9maW5kQmFubmVyRGlkU2hvdywgdGhpcyk7CiAgICAgICAg
IHRoaXMuX2ZpbmRCYW5uZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRmluZEJhbm5l
ci5FdmVudC5EaWRIaWRlLCB0aGlzLl9maW5kQmFubmVyRGlkSGlkZSwgdGhpcyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5u
ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFu
bmVyLmpzCmluZGV4IGFiYWQ3NTBmMzlhNjU1YWM5ODJjMWE5ZTQzZjA3ZmM1ZTQyN2I1MGQuLjFk
ZTI1OGNlMzI0MTg1MmZjZWMxMmVlYWUwMWI0ZGJjZjIwNjQ2ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qcwpA
QCAtMjMsMTYgKzIzLDE1IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5k
QmFubmVyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk5hdmlnYXRpb25JdGVtCiB7Ci0gICAgY29uc3Ry
dWN0b3IoZGVsZWdhdGUsIGVsZW1lbnQpCisgICAgY29uc3RydWN0b3IoZGVsZWdhdGUsIGNsYXNz
TmFtZSwgZml4ZWQgPSBmYWxzZSkKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAg
dGhpcy5fZGVsZWdhdGUgPSBkZWxlZ2F0ZSB8fCBudWxsOwogCi0gICAgICAgIHRoaXMuX2VsZW1l
bnQgPSBlbGVtZW50IHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB0
aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoImZpbmQtYmFubmVyIik7CisgICAgICAgIHRoaXMu
X2VsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpOwogCiAgICAgICAgIHRoaXMuX3Jlc3Vs
dENvdW50TGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgICB0
aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Jlc3VsdENvdW50TGFiZWwpOwpAQCAtNjUs
MjIgKzY0LDI2IEBAIFdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5pbmNy
ZW1lbnRhbCA9IHRydWU7CiAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuc2V0QXR0cmlidXRlKCJy
ZXN1bHRzIiwgNSk7CiAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuc2V0QXR0cmlidXRlKCJhdXRv
c2F2ZSIsICJpbnNwZWN0b3Itc2VhcmNoIik7Ci0gICAgICAgIHRoaXMuX2lucHV0RmllbGQuYWRk
RXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2lucHV0RmllbGRLZXlEb3duLmJpbmQodGhp
cyksIGZhbHNlKTsKLSAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJr
ZXl1cCIsIHRoaXMuX2lucHV0RmllbGRLZXlVcC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgICAg
IHRoaXMuX2lucHV0RmllbGQuYWRkRXZlbnRMaXN0ZW5lcigic2VhcmNoIiwgdGhpcy5faW5wdXRG
aWVsZFNlYXJjaC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5faW5wdXRGaWVsZCk7CiAKLSAgICAgICAgdGhpcy5fZG9uZUJ1dHRvbiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwotICAgICAgICB0aGlzLl9kb25lQnV0
dG9uLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb25lIik7Ci0gICAgICAg
IHRoaXMuX2RvbmVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9kb25lQnV0
dG9uQ2xpY2tlZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl9kb25lQnV0dG9uKTsKKyAgICAgICAgaWYgKGZpeGVkKSB7CisgICAgICAgICAgICB0
aGlzLl9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRXNjYXBlLCB0aGlz
Lmxvc2VGb2N1cy5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHRoaXMuX2RvbmVCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJi
dXR0b24iKTsKKyAgICAgICAgICAgIHRoaXMuX2RvbmVCdXR0b24udGV4dENvbnRlbnQgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkRvbmUiKTsKKyAgICAgICAgICAgIHRoaXMuX2RvbmVCdXR0b24u
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9kb25lQnV0dG9uQ2xpY2tlZC5iaW5kKHRo
aXMpKTsKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZG9uZUJ1
dHRvbik7CisgICAgICAgICAgICB0aGlzLl9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dC5LZXkuRXNjYXBlLCB0aGlzLmhpZGUuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7Cisg
ICAgICAgIH0KKwogCiAgICAgICAgIHRoaXMuX251bWJlck9mUmVzdWx0cyA9IG51bGw7CiAgICAg
ICAgIHRoaXMuX3NlYXJjaEJhY2t3YXJkcyA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zZWFyY2hL
ZXlQcmVzc2VkID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSAi
IjsKIAotICAgICAgICB0aGlzLl9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5L
ZXkuRXNjYXBlLCB0aGlzLmhpZGUuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7CisKICAgICAg
ICAgdGhpcy5fcG9wdWxhdGVGaW5kS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3Iu
S2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5D
b21tYW5kT3JDb250cm9sLCAiRSIsIHRoaXMuX3BvcHVsYXRlU2VhcmNoUXVlcnlGcm9tU2VsZWN0
aW9uLmJpbmQodGhpcykpOwogICAgICAgICB0aGlzLl9wb3B1bGF0ZUZpbmRLZXlib2FyZFNob3J0
Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fZmlu
ZE5leHRLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2ws
ICJHIiwgdGhpcy5fbmV4dFJlc3VsdEJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSk7CkBAIC0xODUs
NiArMTg4LDIyIEBAIFdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQu
Y2xhc3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLlNob3dpbmdTdHlsZUNs
YXNzTmFtZSk7CiAgICAgfQogCisgICAgZm9jdXMoKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6
IFdvcmthcm91bmQgZm9yOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQ5NTA0PiBDYXJldCBtaXNz
aW5nIGZyb20gPGlucHV0PiBhZnRlciBjbGVhcmluZyB0ZXh0IGFuZCBjYWxsaW5nIHNlbGVjdCgp
CisgICAgICAgIGlmICghdGhpcy5faW5wdXRGaWVsZC52YWx1ZS5sZW5ndGgpCisgICAgICAgICAg
ICB0aGlzLl9pbnB1dEZpZWxkLmZvY3VzKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRo
aXMuX2lucHV0RmllbGQuc2VsZWN0KCk7CisgICAgfQorCisgICAgbG9zZUZvY3VzKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNlYXJjaEJhcldhbnRzVG9Mb3NlRm9jdXMoKTsKKyAg
ICB9CisKKworCiAgICAgc2hvdygpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlz
Ll90YXJnZXRFbGVtZW50KTsKQEAgLTI0Myw0NCArMjYyLDE4IEBAIFdlYkluc3BlY3Rvci5GaW5k
QmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAog
ICAgIC8vIFByaXZhdGUKIAotICAgIF9pbnB1dEZpZWxkS2V5RG93bihldmVudCkKLSAgICB7Ci0g
ICAgICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiU2hpZnQiKQotICAgICAgICAgICAg
dGhpcy5fc2VhcmNoQmFja3dhcmRzID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnQua2V5
SWRlbnRpZmllciA9PT0gIkVudGVyIikKLSAgICAgICAgICAgIHRoaXMuX3NlYXJjaEtleVByZXNz
ZWQgPSB0cnVlOwotICAgIH0KLQotICAgIF9pbnB1dEZpZWxkS2V5VXAoZXZlbnQpCi0gICAgewot
ICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlNoaWZ0IikKLSAgICAgICAgICAg
IHRoaXMuX3NlYXJjaEJhY2t3YXJkcyA9IGZhbHNlOwotICAgICAgICBlbHNlIGlmIChldmVudC5r
ZXlJZGVudGlmaWVyID09PSAiRW50ZXIiKQotICAgICAgICAgICAgdGhpcy5fc2VhcmNoS2V5UHJl
c3NlZCA9IGZhbHNlOwotICAgIH0KLQogICAgIF9pbnB1dEZpZWxkU2VhcmNoKGV2ZW50KQogICAg
IHsKICAgICAgICAgaWYgKHRoaXMuX2lucHV0RmllbGQudmFsdWUpIHsKICAgICAgICAgICAgIGlm
ICh0aGlzLl9wcmV2aW91c1NlYXJjaFZhbHVlICE9PSB0aGlzLnNlYXJjaFF1ZXJ5KSB7CiAgICAg
ICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5m
aW5kQmFubmVyUGVyZm9ybVNlYXJjaCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclBlcmZvcm1TZWFyY2godGhpcywgdGhpcy5zZWFy
Y2hRdWVyeSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3NlYXJjaEtleVByZXNzZWQg
JiYgdGhpcy5fbnVtYmVyT2ZSZXN1bHRzID4gMCkgewotICAgICAgICAgICAgICAgIGlmICh0aGlz
Ll9zZWFyY2hCYWNrd2FyZHMpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVn
YXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1
bHQgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0
ZS5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQodGhpcyk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVv
ZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsTmV4dFJlc3VsdCA9PT0gImZ1bmN0aW9u
IikKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJSZXZl
YWxOZXh0UmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMubnVtYmVyT2ZSZXN1bHRzID0gbnVsbDsK
LQogICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0
ZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAgICAg
ICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCh0aGlzKTsKICAgICAgICAg
fQotCiAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSB0aGlzLnNlYXJjaFF1ZXJ5
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwppbmRleCAyMTg4NmMyZWJhMzBkYzY2MDM3
MmNjYjE2ZDZhYzY0NzQzZjg0NWE5Li5mNjRhNjFhMDg3YmRlZmQ2ODcxNjZjYWZkMDg2MDNmNTcz
NWVmMGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpAQCAtNTcsOCArNTcsNyBAQCBXZWJJbnNw
ZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYklu
c3BlY3Rvci5Db250ZW50VgogICAgICAgICB0aGlzLl9sb2dWaWV3Q29udHJvbGxlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyKHRoaXMubWVzc2FnZXNFbGVt
ZW50LCB0aGlzLmVsZW1lbnQsIHRoaXMucHJvbXB0LCB0aGlzLCAiY29uc29sZS1wcm9tcHQtaGlz
dG9yeSIpOwogICAgICAgICB0aGlzLl9sYXN0TWVzc2FnZVZpZXcgPSBudWxsOwogCi0gICAgICAg
IHRoaXMuX3NlYXJjaEJhciA9IG5ldyBXZWJJbnNwZWN0b3IuU2VhcmNoQmFyKCJsb2ctc2VhcmNo
LWJhciIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmlsdGVyIENvbnNvbGUgTG9nIiksIHRoaXMp
OwotICAgICAgICB0aGlzLl9zZWFyY2hCYXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
U2VhcmNoQmFyLkV2ZW50LlRleHRDaGFuZ2VkLCB0aGlzLl9zZWFyY2hUZXh0RGlkQ2hhbmdlLCB0
aGlzKTsKKyAgICAgICAgdGhpcy5fc2VhcmNoQmFyID0gbmV3IFdlYkluc3BlY3Rvci5GaW5kQmFu
bmVyKHRoaXMsICJjb25zb2xlLWZpbmQtYmFubmVyIiwgdHJ1ZSk7CiAKICAgICAgICAgdmFyIHNj
b3BlQmFySXRlbXMgPSBbCiAgICAgICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLlNjb3BlQmFySXRl
bShXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2NvcGVzLkFsbCwgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJBbGwiKSwgdHJ1ZSksCkBAIC0yMTcsNiArMjE2LDEwIEBAIFdlYkluc3BlY3Rvci5M
b2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9y
LkNvbnRlbnRWCiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfQogCisgICAg
ZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KCkgeworICAgICAgICB0aGlzLmhpZ2hsaWdo
dFByZXZpb3VzU2VhcmNoTWF0Y2goKTsKKyAgICB9CisKICAgICBoaWdobGlnaHRQcmV2aW91c1Nl
YXJjaE1hdGNoKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zZWFyY2hJblByb2dyZXNzIHx8
IGlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykpCkBAIC0yMjYsNiArMjI5LDExIEBA
IFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFNlYXJjaE1h
dGNoQXRJbmRleChpbmRleCAtIDEpOwogICAgIH0KIAorICAgIGZpbmRCYW5uZXJSZXZlYWxOZXh0
UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRoaXMuaGlnaGxpZ2h0TmV4dFNlYXJjaE1hdGNoKCk7
CisgICAgfQorCiAgICAgaGlnaGxpZ2h0TmV4dFNlYXJjaE1hdGNoKCkKICAgICB7CiAgICAgICAg
IGlmICghdGhpcy5zZWFyY2hJblByb2dyZXNzIHx8IGlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNo
TWF0Y2hlcykpCkBAIC0yNDcsNyArMjU1LDYgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3
ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAg
ICB7CiAgICAgICAgIGlmICghaXNFbXB0eU9iamVjdCh0aGlzLl9zZWFyY2hNYXRjaGVzKSkKICAg
ICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFNlYXJjaE1hdGNoQXRJbmRleCgwKTsKLSAgICAgICAg
dGhpcy5wcm9tcHQuZm9jdXMoKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCkBAIC02OTQsNyAr
NzAxLDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZp
ZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgICAgIH0KICAgICAgICAg
fSwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCgpOworICAgICAgICB0aGlz
Ll9wZXJmb3JtU2VhcmNoKHRoaXMuX3NlYXJjaEJhciwgIiIpOwogICAgIH0KIAogICAgIF9rZXlE
b3duKGV2ZW50KQpAQCAtODQ5LDE4ICs4NTYsMzEgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRW
aWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYK
ICAgICAgICAgICAgIGZvY3VzYWJsZUVsZW1lbnRzW2ldLnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5k
ZXgiKTsKICAgICB9CiAKLSAgICBfc2VhcmNoVGV4dERpZENoYW5nZShldmVudCkKKyAgICBmaW5k
QmFubmVyUGVyZm9ybVNlYXJjaChmaW5kQmFubmVyLCBzZWFyY2hUZXJtcykKKyAgICB7CisgICAg
ICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goZmluZEJhbm5lciwgc2VhcmNoVGVybXMpOworICAgIH0K
KworICAgIGZpbmRCYW5uZXJTZWFyY2hDbGVhcmVkKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Bl
cmZvcm1TZWFyY2goKTsKKyAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaChudWxsLCAiIik7CiAg
ICAgfQogCi0gICAgX3BlcmZvcm1TZWFyY2goKQorICAgIHJldmVhbE5leHRTZWFyY2hSZXN1bHQo
KQorICAgIHsKKyAgICAgICAgdGhpcy5maW5kQmFubmVyUmV2ZWFsTmV4dFJlc3VsdCgpOworICAg
IH0KKworICAgIHJldmVhbFByZXZpb3VzU2VhcmNoUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRo
aXMuZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KCk7CisgICAgfQorCisgICAgX3BlcmZv
cm1TZWFyY2goZmluZEJhbm5lciwgc2VhcmNoVGVybXMpCiAgICAgewogICAgICAgICBpZiAoIWlz
RW1wdHlPYmplY3QodGhpcy5fc2VhcmNoSGlnaGxpZ2h0RE9NQ2hhbmdlcykpCiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IucmV2ZXJ0RG9tQ2hhbmdlcyh0aGlzLl9zZWFyY2hIaWdobGlnaHRET01D
aGFuZ2VzKTsKIAotICAgICAgICB2YXIgc2VhcmNoVGVybXMgPSB0aGlzLl9zZWFyY2hCYXIudGV4
dDsKLQogICAgICAgICBpZiAoc2VhcmNoVGVybXMgPT09ICIiKSB7CiAgICAgICAgICAgICBkZWxl
dGUgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRjaDsKICAgICAgICAgICAgIHRoaXMuX21hdGNoaW5n
U2VhcmNoRWxlbWVudHMgPSBbXTsKQEAgLTg3Myw2ICs4OTMsNyBAQCBXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5D
b250ZW50VgogICAgICAgICB0aGlzLl9zZWFyY2hIaWdobGlnaHRET01DaGFuZ2VzID0gW107CiAg
ICAgICAgIHRoaXMuX3NlYXJjaE1hdGNoZXMgPSBbXTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRT
ZWFyY2hNYXRoSXNWYWxpZCA9IGZhbHNlOworICAgICAgICB2YXIgbnVtYmVyT2ZSZXN1bHRzID0g
MDsKIAogICAgICAgICB2YXIgc2VhcmNoUmVnZXggPSBuZXcgUmVnRXhwKHNlYXJjaFRlcm1zLmVz
Y2FwZUZvclJlZ0V4cCgpLCAiZ2kiKTsKICAgICAgICAgdGhpcy5fdW5maWx0ZXJlZE1lc3NhZ2VF
bGVtZW50cygpLmZvckVhY2goZnVuY3Rpb24obWVzc2FnZSkgewpAQCAtODgwLDYgKzkwMSw3IEBA
IFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgICAgICB2YXIgdGV4dCA9IG1lc3NhZ2Uu
dGV4dENvbnRlbnQ7CiAgICAgICAgICAgICB2YXIgbWF0Y2ggPSBzZWFyY2hSZWdleC5leGVjKHRl
eHQpOwogICAgICAgICAgICAgd2hpbGUgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAgbnVtYmVy
T2ZSZXN1bHRzICsrOwogICAgICAgICAgICAgICAgIG1hdGNoUmFuZ2VzLnB1c2goeyBvZmZzZXQ6
IG1hdGNoLmluZGV4LCBsZW5ndGg6IG1hdGNoWzBdLmxlbmd0aCB9KTsKICAgICAgICAgICAgICAg
ICBtYXRjaCA9IHNlYXJjaFJlZ2V4LmV4ZWModGV4dCk7CiAgICAgICAgICAgICB9CkBAIC04OTgs
NiArOTIwLDggQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVu
dFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgICAgIHRoaXMuX3Nl
bGVjdGVkU2VhcmNoTWF0Y2guaGlnaGxpZ2h0LmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgZGVs
ZXRlIHRoaXMuX3NlbGVjdGVkU2VhcmNoTWF0Y2g7CiAgICAgICAgIH0KKworICAgICAgICB0aGlz
Ll9zZWFyY2hCYXIubnVtYmVyT2ZSZXN1bHRzID0gIG51bWJlck9mUmVzdWx0czsKICAgICB9CiAK
ICAgICBfaGlnaGxpZ2h0UmFuZ2VzKG1lc3NhZ2UsIG1hdGNoUmFuZ2VzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoQmFyLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoQmFyLmpzCmlu
ZGV4IGIyZGRjNzBhYTExOGRlYmRkOGZiZGM3MDFlNjA1YjFmZjgxN2MzMmMuLjcxYzFhYTk1MGZk
MGM5OGY5NjlmYzAzN2I2NDU0MzZiZTljZjFmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaEJhci5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hCYXIuanMKQEAgLTYxLDggKzYx
LDExIEBAIFdlYkluc3BlY3Rvci5TZWFyY2hCYXIgPSBjbGFzcyBTZWFyY2hCYXIgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuTmF2aWdhdGlvbkl0ZW0KIAogICAgIGZvY3VzKCkKICAgICB7Ci0gICAgICAg
IHRoaXMuX3NlYXJjaElucHV0LmZvY3VzKCk7Ci0gICAgICAgIHRoaXMuX3NlYXJjaElucHV0LnNl
bGVjdCgpOworICAgICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCBmb3I6IDxodHRwczovL3dlYmtp
dC5vcmcvYi8xNDk1MDQ+IENhcmV0IG1pc3NpbmcgZnJvbSA8aW5wdXQ+IGFmdGVyIGNsZWFyaW5n
IHRleHQgYW5kIGNhbGxpbmcgc2VsZWN0KCkKKyAgICAgICAgaWYgKCF0aGlzLl9zZWFyY2hJbnB1
dC52YWx1ZS5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLl9zZWFyY2hJbnB1dC5mb2N1cygpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9zZWFyY2hJbnB1dC5zZWxlY3QoKTsKICAg
ICB9CiAKICAgICAvLyBQcml2YXRlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261928</attachid>
            <date>2015-09-25 10:18:20 -0700</date>
            <delta_ts>2015-09-25 12:18:18 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-149505-20150925181759.patch</filename>
            <type>text/plain</type>
            <size>23173</size>
            <attacher name="João Oliveira">hello</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAz
MWY0NDc1MDMwMmFmNzRlYTZhNzJmMDZlMjYyN2RhMWViYTc3YWIzLi5kYWIwN2RhOGZjOTUzYTQx
YWI4ZmFlZTQxZDVlNjBhODQ0MWIxNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAxNS0wOS0yNCAgSm/Do28gT2xpdmVpcmEgIDxoZWxsb0BqeHMucHQ+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBTZWFyY2hCYXIgc2hvdWxkIHdvcmsgbW9y
ZSBsaWtlIENvbnRlbnRCcm93c2VyIEZpbmRCYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQ29uc29sZSB0YWIgbm93IHVzZXMgZmlu
ZEJhbm5lciwgYWRhcHRlZCBMb2dDb250ZW50VmlldyB0byB1c2UgZmluZEJhbm5lciwKKyAgICAg
ICAgYW5kIGZpbmRCYW5uZXIgdG8gYmUgbW9yZSBhZ25vc3RpYyB0byBib3RoIHVzZWNhc2VzLCBl
aXRoZXIgYXMgZml4ZWQsIG9uIGNvbnNvbGUgdGFiLAorICAgICAgICBhbmQgaGlkZWFibGUgb24g
b3RoZXIgaW5zcGVjdG9yIHRhYnMuIAorICAgICAgICAKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L01haW4uaHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVGaW5kQmFu
bmVyLmNzczogQWRkZWQuCisgICAgICAgIChib2R5LndpbmRvdy1pbmFjdGl2ZSAuY29uc29sZS1m
aW5kLWJhbm5lcik6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lci5zaG93aW5nKToKKyAg
ICAgICAgKC5uby1maW5kLWJhbm5lci10cmFuc2l0aW9uOm1hdGNoZXMoLmNvbnNvbGUtZmluZC1i
YW5uZXIsIC5zdXBwb3J0cy1maW5kLWJhbm5lcikpOgorICAgICAgICAoLnN1cHBvcnRzLWZpbmQt
YmFubmVyKToKKyAgICAgICAgKC5zdXBwb3J0cy1maW5kLWJhbm5lci5zaG93aW5nLWZpbmQtYmFu
bmVyKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gOmZpcnN0LWNoaWxkKToKKyAg
ICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gOmxhc3QtY2hpbGQpOgorICAgICAgICAoLmNv
bnNvbGUtZmluZC1iYW5uZXIgPiBpbnB1dFt0eXBlPSJzZWFyY2giXSk6CisgICAgICAgICguY29u
c29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbik6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5l
ciA+IGJ1dHRvbiA+IC5nbHlwaCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1
dHRvbjpkaXNhYmxlZCA+IC5nbHlwaCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+
IGJ1dHRvbjphY3RpdmU6bm90KDpkaXNhYmxlZCkpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1i
YW5uZXIgPiBidXR0b246ZGlzYWJsZWQpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiBidXR0b24uc2VnbWVudGVkLmxlZnQpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiBidXR0b24uc2VnbWVudGVkLmxlZnQgPiAuZ2x5cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmlu
ZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLmxlZnQ6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpID4g
LmdseXBoKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRl
ZC5yaWdodCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50
ZWQucmlnaHQgPiAuZ2x5cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0
b24uc2VnbWVudGVkLnJpZ2h0OmFjdGl2ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCk6CisgICAg
ICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50ZWQpOgorICAgICAgICAo
LmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkOmFjdGl2ZSk6CisgICAgICAg
ICguY29uc29sZS1maW5kLWJhbm5lciA+IGxhYmVsKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRC
cm93c2VyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RmluZEJhbm5lci5wcm90b3R5cGUuZm9jdXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbmRC
YW5uZXIucHJvdG90eXBlLmxvc2VGb2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJh
bm5lci5wcm90b3R5cGUuX2lucHV0RmllbGRLZXlEb3duKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVsZEtleVVwKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVs
ZFNlYXJjaCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJSZXZl
YWxQcmV2aW91c1Jlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX2ZpbHRlck1lc3NhZ2VFbGVtZW50cyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJQ
ZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90
b3R5cGUuZmluZEJhbm5lclNlYXJjaENsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3LnByb3RvdHlwZS5yZXZlYWxOZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUucmV2ZWFsUHJldmlvdXNTZWFy
Y2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5fcGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLnNlYXJjaEJhckRpZEFjdGl2YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3NlYXJjaFRleHREaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoQmFyLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaEJhci5wcm90b3R5cGUuZm9jdXMpOgorCiAyMDE1LTA5
LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJhbiBzb3J0
LVhjb2RlLXByb2plY3QtZmlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbAppbmRleCBiMGI0YjU5MmQwOTIzN2M1YzRjNjYyZGM2NTc3NWJiOGQxMjRk
NzllLi42MmVlMDczNzU1ZTNiYWVhNjUzNWI4ZjE4MjMyYmE2YjNjMjE0YWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC04Miw2ICs4Miw3
IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9FcnJvck9iamVjdFZp
ZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0ZpbHRlckJh
ci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvRmluZEJhbm5l
ci5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ29uc29sZUZp
bmRCYW5uZXIuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0Zs
ZXhpYmxlU3BhY2VOYXZpZ2F0aW9uSXRlbS5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvRm9sZGVySWNvbi5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvRm9udFJlc291cmNlQ29udGVudFZpZXcuY3NzIj4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVGaW5kQmFu
bmVyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNv
bGVGaW5kQmFubmVyLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzg3OWQxMDdjOWQ2NWUyMzNkYjcyODE1MTVk
OTRmZGRlOTVmYzE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUZpbmRCYW5uZXIuY3NzCkBAIC0wLDAgKzEsMTc1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworYm9keS53aW5kb3ctaW5hY3RpdmUgLmNvbnNvbGUtZmluZC1iYW5uZXIg
eworICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGhzbCgwLCAwJSwgODUlKTsKK30KKworLmNvbnNv
bGUtZmluZC1iYW5uZXIuc2hvd2luZyB7CisgICAgdG9wOiAwOworICAgIHRyYW5zaXRpb24tdGlt
aW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsKK30KKworLm5vLWZpbmQtYmFubmVyLXRyYW5zaXRpb246
bWF0Y2hlcyguY29uc29sZS1maW5kLWJhbm5lciwgLnN1cHBvcnRzLWZpbmQtYmFubmVyKSB7Cisg
ICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMCAhaW1wb3J0YW50OworfQorCisuc3VwcG9ydHMtZmlu
ZC1iYW5uZXIgeworICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRvcDsKKyAgICB0cmFuc2l0aW9u
LWR1cmF0aW9uOiAyMDBtczsKKyAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1p
bjsKK30KKworLnN1cHBvcnRzLWZpbmQtYmFubmVyLnNob3dpbmctZmluZC1iYW5uZXIgeworICAg
IHRvcDogMjJweCAhaW1wb3J0YW50OworICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBl
YXNlLW91dDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiA6Zmlyc3QtY2hpbGQgeworICAg
IG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiA6bGFzdC1jaGlsZCB7CisgICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKK30KKwor
LmNvbnNvbGUtZmluZC1iYW5uZXIgPiBpbnB1dFt0eXBlPSJzZWFyY2giXSB7CisgICAgcGFkZGlu
Zy10b3A6IDA7CisgICAgbWFyZ2luOiAxcHggNnB4OworCisgICAgb3V0bGluZTogbm9uZTsKKwor
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKKworICAgIGJvcmRlcjogMXB4IHNvbGlkIGhz
bGEoMCwgMCUsIDAlLCAwLjI1KTsKKyAgICBib3JkZXItcmFkaXVzOiAzcHg7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgMTAwJSwgMC4yKTsKKyAgICBiYWNrZ3JvdW5kLWNsaXA6
IHBhZGRpbmctYm94OworCisgICAgaGVpZ2h0OiAyMnB4OworfQorCisuY29uc29sZS1maW5kLWJh
bm5lciA+IGJ1dHRvbiB7CisgICAgbWFyZ2luOiAxcHggNHB4OworCisgICAgcGFkZGluZy1sZWZ0
OiA2cHg7CisgICAgcGFkZGluZy1yaWdodDogNnB4OworCisgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBub25lOworCisgICAgYm9yZGVyLXJhZGl1czogNHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlk
IGhzbCgwLCAwJSwgNTclKTsKKworICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICAgIGJh
Y2tncm91bmQtaW1hZ2U6IG5vbmU7CisgICAgYm94LXNoYWRvdzogbm9uZTsKKworICAgIGxpbmUt
aGVpZ2h0OiAxMXB4OworCisgICAgaGVpZ2h0OiAxOXB4OworCisgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOworICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisKKyAgICBvdXRsaW5lLW9mZnNldDogLTJw
eDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24gPiAuZ2x5cGggeworICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKworICAgIHdpZHRoOiA3cHg7CisgICAgaGVpZ2h0OiAxMXB4
OworfQorCisuY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbjpkaXNhYmxlZCA+IC5nbHlwaCB7
CisgICAgb3BhY2l0eTogMC42NTsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b246
YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUs
IDU1JSk7CisgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwg
aHNsKDAsIDAlLCA3OCUpLCBoc2woMCwgMCUsIDg1JSkpOworICAgIGJveC1zaGFkb3c6IGhzbGEo
MCwgMCUsIDEwMCUsIDAuMzMpIDAgMXB4IDAsIGluc2V0IGhzbCgwLCAwJSwgNjQlKSAwIDFweCAx
cHg7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uOmRpc2FibGVkIHsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDc2JSk7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
bm9uZTsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLmxlZnQg
eworICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOworICAgIGJvcmRlci1ib3R0b20tcmln
aHQtcmFkaXVzOiAwOworCisgICAgbWFyZ2luLXJpZ2h0OiAwOworCisgICAgcGFkZGluZy1sZWZ0
OiA2cHg7CisgICAgcGFkZGluZy1yaWdodDogNnB4OworfQorCisuY29uc29sZS1maW5kLWJhbm5l
ciA+IGJ1dHRvbi5zZWdtZW50ZWQubGVmdCA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jYW52YXMoZmluZC1iYW5uZXItcHJldmlvdXMtYXJyb3ctbm9ybWFsKTsKKyAg
ICBiYWNrZ3JvdW5kLXNpemU6IDdweCAxMXB4OworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1y
ZXBlYXQ7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRlZC5sZWZ0
OmFjdGl2ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jYW52YXMoZmluZC1iYW5uZXItcHJldmlvdXMtYXJyb3ctbm9ybWFsLWFjdGl2ZSk7
Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRlZC5yaWdodCB7Cisg
ICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsKKyAgICBib3JkZXItYm90dG9tLWxlZnQtcmFk
aXVzOiAwOworCisgICAgbWFyZ2luLWxlZnQ6IC0xcHg7CisKKyAgICBwYWRkaW5nLWxlZnQ6IDVw
eDsKKyAgICBwYWRkaW5nLXJpZ2h0OiA3cHg7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4g
YnV0dG9uLnNlZ21lbnRlZC5yaWdodCA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jYW52YXMoZmluZC1iYW5uZXItbmV4dC1hcnJvdy1ub3JtYWwpOworICAgIGJhY2tn
cm91bmQtc2l6ZTogN3B4IDExcHg7CisgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsK
K30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLnJpZ2h0OmFjdGl2
ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jYW52YXMoZmluZC1iYW5uZXItbmV4dC1hcnJvdy1ub3JtYWwtYWN0aXZlKTsKK30KKworLmNv
bnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkIHsKKyAgICBtaW4td2lkdGg6IDIy
cHg7CisgICAgcGFkZGluZy10b3A6IDNweDsKKyAgICBwYWRkaW5nLWJvdHRvbTogMnB4OworfQor
CisuY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50ZWQ6YWN0aXZlIHsKKyAgICB6
LWluZGV4OiAxMDA7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorCisuY29uc29sZS1maW5k
LWJhbm5lciA+IGxhYmVsIHsKKyAgICBtYXJnaW46IDAgNnB4OworICAgIGxpbmUtaGVpZ2h0OiAy
MXB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29udGVudEJyb3dzZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwppbmRleCA0MTljNjUxM2M1YjFiYmNmYWI5Mzc4
NWM1ZDVlMjE1Mjg2ZjZlMTRmLi5kOTU3NzZhY2YzZGM4ODU4MmM3NTA3OTRlMTBhZGE2OWM5ZmE4
Y2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZW50QnJvd3Nlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwpAQCAtMzksNyArMzksNyBAQCBXZWJJbnNwZWN0
b3IuQ29udGVudEJyb3dzZXIgPSBjbGFzcyBDb250ZW50QnJvd3NlciBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdDb250YWluZXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudFZpZXdDb250YWluZXIuRXZlbnQuQ3VycmVudENv
bnRlbnRWaWV3RGlkQ2hhbmdlLCB0aGlzLl9jdXJyZW50Q29udGVudFZpZXdEaWRDaGFuZ2UsIHRo
aXMpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2NvbnRlbnRWaWV3
Q29udGFpbmVyLmVsZW1lbnQpOwogCi0gICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLkZpbmRCYW5uZXIodGhpcyk7CisgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIodGhpcywgImZpbmQtYmFubmVyIik7CiAgICAgICAg
IHRoaXMuX2ZpbmRCYW5uZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRmluZEJhbm5l
ci5FdmVudC5EaWRTaG93LCB0aGlzLl9maW5kQmFubmVyRGlkU2hvdywgdGhpcyk7CiAgICAgICAg
IHRoaXMuX2ZpbmRCYW5uZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRmluZEJhbm5l
ci5FdmVudC5EaWRIaWRlLCB0aGlzLl9maW5kQmFubmVyRGlkSGlkZSwgdGhpcyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5u
ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFu
bmVyLmpzCmluZGV4IGFiYWQ3NTBmMzlhNjU1YWM5ODJjMWE5ZTQzZjA3ZmM1ZTQyN2I1MGQuLmYy
MzJjYzcxZTg1Yzk4ZWM1YmUxNjM0NjcxZWY0N2RiMjE0ODM1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qcwpA
QCAtMjMsMTYgKzIzLDE1IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5k
QmFubmVyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk5hdmlnYXRpb25JdGVtCiB7Ci0gICAgY29uc3Ry
dWN0b3IoZGVsZWdhdGUsIGVsZW1lbnQpCisgICAgY29uc3RydWN0b3IoZGVsZWdhdGUsIGNsYXNz
TmFtZSwgZml4ZWQgPSBmYWxzZSkKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAg
dGhpcy5fZGVsZWdhdGUgPSBkZWxlZ2F0ZSB8fCBudWxsOwogCi0gICAgICAgIHRoaXMuX2VsZW1l
bnQgPSBlbGVtZW50IHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB0
aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoImZpbmQtYmFubmVyIik7CisgICAgICAgIHRoaXMu
X2VsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpOwogCiAgICAgICAgIHRoaXMuX3Jlc3Vs
dENvdW50TGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgICB0
aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Jlc3VsdENvdW50TGFiZWwpOwpAQCAtNjUs
MjIgKzY0LDI2IEBAIFdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5pbmNy
ZW1lbnRhbCA9IHRydWU7CiAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuc2V0QXR0cmlidXRlKCJy
ZXN1bHRzIiwgNSk7CiAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuc2V0QXR0cmlidXRlKCJhdXRv
c2F2ZSIsICJpbnNwZWN0b3Itc2VhcmNoIik7Ci0gICAgICAgIHRoaXMuX2lucHV0RmllbGQuYWRk
RXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2lucHV0RmllbGRLZXlEb3duLmJpbmQodGhp
cyksIGZhbHNlKTsKLSAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJr
ZXl1cCIsIHRoaXMuX2lucHV0RmllbGRLZXlVcC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgICAg
IHRoaXMuX2lucHV0RmllbGQuYWRkRXZlbnRMaXN0ZW5lcigic2VhcmNoIiwgdGhpcy5faW5wdXRG
aWVsZFNlYXJjaC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5faW5wdXRGaWVsZCk7CiAKLSAgICAgICAgdGhpcy5fZG9uZUJ1dHRvbiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwotICAgICAgICB0aGlzLl9kb25lQnV0
dG9uLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb25lIik7Ci0gICAgICAg
IHRoaXMuX2RvbmVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9kb25lQnV0
dG9uQ2xpY2tlZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl9kb25lQnV0dG9uKTsKKyAgICAgICAgaWYgKGZpeGVkKSB7CisgICAgICAgICAgICB0
aGlzLl9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRXNjYXBlLCB0aGlz
Lmxvc2VGb2N1cy5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHRoaXMuX2RvbmVCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJi
dXR0b24iKTsKKyAgICAgICAgICAgIHRoaXMuX2RvbmVCdXR0b24udGV4dENvbnRlbnQgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkRvbmUiKTsKKyAgICAgICAgICAgIHRoaXMuX2RvbmVCdXR0b24u
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9kb25lQnV0dG9uQ2xpY2tlZC5iaW5kKHRo
aXMpKTsKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZG9uZUJ1
dHRvbik7CisgICAgICAgICAgICB0aGlzLl9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dC5LZXkuRXNjYXBlLCB0aGlzLmhpZGUuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7Cisg
ICAgICAgIH0KKwogCiAgICAgICAgIHRoaXMuX251bWJlck9mUmVzdWx0cyA9IG51bGw7CiAgICAg
ICAgIHRoaXMuX3NlYXJjaEJhY2t3YXJkcyA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zZWFyY2hL
ZXlQcmVzc2VkID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSAi
IjsKIAotICAgICAgICB0aGlzLl9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5L
ZXkuRXNjYXBlLCB0aGlzLmhpZGUuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7CisKICAgICAg
ICAgdGhpcy5fcG9wdWxhdGVGaW5kS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3Iu
S2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5D
b21tYW5kT3JDb250cm9sLCAiRSIsIHRoaXMuX3BvcHVsYXRlU2VhcmNoUXVlcnlGcm9tU2VsZWN0
aW9uLmJpbmQodGhpcykpOwogICAgICAgICB0aGlzLl9wb3B1bGF0ZUZpbmRLZXlib2FyZFNob3J0
Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fZmlu
ZE5leHRLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2ws
ICJHIiwgdGhpcy5fbmV4dFJlc3VsdEJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSk7CkBAIC0xODUs
NiArMTg4LDIyIEBAIFdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQu
Y2xhc3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLlNob3dpbmdTdHlsZUNs
YXNzTmFtZSk7CiAgICAgfQogCisgICAgZm9jdXMoKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6
IFdvcmthcm91bmQgZm9yOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQ5NTA0PiBDYXJldCBtaXNz
aW5nIGZyb20gPGlucHV0PiBhZnRlciBjbGVhcmluZyB0ZXh0IGFuZCBjYWxsaW5nIHNlbGVjdCgp
CisgICAgICAgIGlmICghdGhpcy5faW5wdXRGaWVsZC52YWx1ZS5sZW5ndGgpCisgICAgICAgICAg
ICB0aGlzLl9pbnB1dEZpZWxkLmZvY3VzKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRo
aXMuX2lucHV0RmllbGQuc2VsZWN0KCk7CisgICAgfQorCisgICAgbG9zZUZvY3VzKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJXYW50c1RvTG9zZUZvY3VzKCk7Cisg
ICAgfQorCisKKwogICAgIHNob3coKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhp
cy5fdGFyZ2V0RWxlbWVudCk7CkBAIC0yNDMsNDQgKzI2MiwxOCBAQCBXZWJJbnNwZWN0b3IuRmlu
ZEJhbm5lciA9IGNsYXNzIEZpbmRCYW5uZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAK
ICAgICAvLyBQcml2YXRlCiAKLSAgICBfaW5wdXRGaWVsZEtleURvd24oZXZlbnQpCi0gICAgewot
ICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlNoaWZ0IikKLSAgICAgICAgICAg
IHRoaXMuX3NlYXJjaEJhY2t3YXJkcyA9IHRydWU7Ci0gICAgICAgIGVsc2UgaWYgKGV2ZW50Lmtl
eUlkZW50aWZpZXIgPT09ICJFbnRlciIpCi0gICAgICAgICAgICB0aGlzLl9zZWFyY2hLZXlQcmVz
c2VkID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBfaW5wdXRGaWVsZEtleVVwKGV2ZW50KQotICAgIHsK
LSAgICAgICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJTaGlmdCIpCi0gICAgICAgICAg
ICB0aGlzLl9zZWFyY2hCYWNrd2FyZHMgPSBmYWxzZTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnQu
a2V5SWRlbnRpZmllciA9PT0gIkVudGVyIikKLSAgICAgICAgICAgIHRoaXMuX3NlYXJjaEtleVBy
ZXNzZWQgPSBmYWxzZTsKLSAgICB9Ci0KICAgICBfaW5wdXRGaWVsZFNlYXJjaChldmVudCkKICAg
ICB7CiAgICAgICAgIGlmICh0aGlzLl9pbnB1dEZpZWxkLnZhbHVlKSB7CiAgICAgICAgICAgICBp
ZiAodGhpcy5fcHJldmlvdXNTZWFyY2hWYWx1ZSAhPT0gdGhpcy5zZWFyY2hRdWVyeSkgewogICAg
ICAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUu
ZmluZEJhbm5lclBlcmZvcm1TZWFyY2ggPT09ICJmdW5jdGlvbiIpCiAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJQZXJmb3JtU2VhcmNoKHRoaXMsIHRoaXMuc2Vh
cmNoUXVlcnkpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9zZWFyY2hLZXlQcmVzc2Vk
ICYmIHRoaXMuX251bWJlck9mUmVzdWx0cyA+IDApIHsKLSAgICAgICAgICAgICAgICBpZiAodGhp
cy5fc2VhcmNoQmFja3dhcmRzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kZWxl
Z2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVz
dWx0ID09PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdh
dGUuZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBl
b2YgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclJldmVhbE5leHRSZXN1bHQgPT09ICJmdW5jdGlv
biIpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2
ZWFsTmV4dFJlc3VsdCh0aGlzKTsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0aGlzLm51bWJlck9mUmVzdWx0cyA9IG51bGw7
Ci0KICAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdh
dGUuZmluZEJhbm5lclNlYXJjaENsZWFyZWQgPT09ICJmdW5jdGlvbiIpCiAgICAgICAgICAgICAg
ICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclNlYXJjaENsZWFyZWQodGhpcyk7CiAgICAgICAg
IH0KLQogICAgICAgICB0aGlzLl9wcmV2aW91c1NlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hRdWVy
eTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKaW5kZXggMjE4ODZjMmViYTMwZGM2NjAz
NzJjY2IxNmQ2YWM2NDc0M2Y4NDVhOS4uZmE2NGM1ZmQ4OGFhMmFjZTJiMmQ3MTY1ZTRmMDZmMTQz
MDIyMTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTG9nQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKQEAgLTU3LDggKzU3LDcgQEAgV2ViSW5z
cGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgdGhpcy5fbG9nVmlld0NvbnRyb2xsZXIgPSBuZXcg
V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlcih0aGlzLm1lc3NhZ2VzRWxl
bWVudCwgdGhpcy5lbGVtZW50LCB0aGlzLnByb21wdCwgdGhpcywgImNvbnNvbGUtcHJvbXB0LWhp
c3RvcnkiKTsKICAgICAgICAgdGhpcy5fbGFzdE1lc3NhZ2VWaWV3ID0gbnVsbDsKIAotICAgICAg
ICB0aGlzLl9zZWFyY2hCYXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNlYXJjaEJhcigibG9nLXNlYXJj
aC1iYXIiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZpbHRlciBDb25zb2xlIExvZyIpLCB0aGlz
KTsKLSAgICAgICAgdGhpcy5fc2VhcmNoQmFyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlNlYXJjaEJhci5FdmVudC5UZXh0Q2hhbmdlZCwgdGhpcy5fc2VhcmNoVGV4dERpZENoYW5nZSwg
dGhpcyk7CisgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbmRC
YW5uZXIodGhpcywgImNvbnNvbGUtZmluZC1iYW5uZXIiLCB0cnVlKTsKIAogICAgICAgICB2YXIg
c2NvcGVCYXJJdGVtcyA9IFsKICAgICAgICAgICAgIG5ldyBXZWJJbnNwZWN0b3IuU2NvcGVCYXJJ
dGVtKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TY29wZXMuQWxsLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkFsbCIpLCB0cnVlKSwKQEAgLTkxLDcgKzkwLDcgQEAgV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
Q29udGVudFYKIAogICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMoKQogICAgIHsKLSAgICAgICAgdmFy
IG5hdmlnYXRpb25JdGVtcyA9IFt0aGlzLl9zZWFyY2hCYXIsIHRoaXMuX3Njb3BlQmFyLCB0aGlz
Ll9jbGVhckxvZ05hdmlnYXRpb25JdGVtXTsKKyAgICAgICAgdmFyIG5hdmlnYXRpb25JdGVtcyA9
IFt0aGlzLl9maW5kQmFubmVyLCB0aGlzLl9zY29wZUJhciwgdGhpcy5fY2xlYXJMb2dOYXZpZ2F0
aW9uSXRlbV07CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuaXNTaG93aW5nU3BsaXRDb25zb2xl
KCkpCiAgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9zaG93Q29uc29sZVRh
Yk5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgcmV0dXJuIG5hdmlnYXRpb25JdGVtczsKQEAgLTE4
OCw3ICsxODcsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250
ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICBpZiAoIXRoaXMu
dmlzaWJsZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9zZWFyY2hCYXIu
Zm9jdXMoKTsKKyAgICAgICAgdGhpcy5fZmluZEJhbm5lci5mb2N1cygpOwogICAgIH0KIAogICAg
IGdldCBzdXBwb3J0c1NhdmUoKQpAQCAtMjE3LDYgKzIxNiwxMCBAQCBXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5D
b250ZW50VgogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgIH0KIAorICAgIGZp
bmRCYW5uZXJSZXZlYWxQcmV2aW91c1Jlc3VsdCgpIHsKKyAgICAgICAgdGhpcy5oaWdobGlnaHRQ
cmV2aW91c1NlYXJjaE1hdGNoKCk7CisgICAgfQorCiAgICAgaGlnaGxpZ2h0UHJldmlvdXNTZWFy
Y2hNYXRjaCgpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuc2VhcmNoSW5Qcm9ncmVzcyB8fCBp
c0VtcHR5T2JqZWN0KHRoaXMuX3NlYXJjaE1hdGNoZXMpKQpAQCAtMjI2LDYgKzIyOSwxMSBAQCBX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRz
IFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICB0aGlzLl9oaWdobGlnaHRTZWFyY2hNYXRj
aEF0SW5kZXgoaW5kZXggLSAxKTsKICAgICB9CiAKKyAgICBmaW5kQmFubmVyUmV2ZWFsTmV4dFJl
c3VsdCgpCisgICAgeworICAgICAgICB0aGlzLmhpZ2hsaWdodE5leHRTZWFyY2hNYXRjaCgpOwor
ICAgIH0KKwogICAgIGhpZ2hsaWdodE5leHRTZWFyY2hNYXRjaCgpCiAgICAgewogICAgICAgICBp
ZiAoIXRoaXMuc2VhcmNoSW5Qcm9ncmVzcyB8fCBpc0VtcHR5T2JqZWN0KHRoaXMuX3NlYXJjaE1h
dGNoZXMpKQpAQCAtMjM1LDcgKzI0Myw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9
IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAg
ICAgIHRoaXMuX2hpZ2hsaWdodFNlYXJjaE1hdGNoQXRJbmRleChpbmRleCk7CiAgICAgfQogCi0g
ICAgc2VhcmNoQmFyV2FudHNUb0xvc2VGb2N1cyhzZWFyY2hCYXIpCisgICAgZmluZEJhbm5lcldh
bnRzVG9Mb3NlRm9jdXMoZmluZEJhbm5lcikKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9zZWxl
Y3RlZE1lc3NhZ2VzLmxlbmd0aCkKICAgICAgICAgICAgIHRoaXMubWVzc2FnZXNFbGVtZW50LmZv
Y3VzKCk7CkBAIC0yNDMsMTMgKzI1MSw2IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9
IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAg
ICAgICAgICB0aGlzLnByb21wdC5mb2N1cygpOwogICAgIH0KIAotICAgIHNlYXJjaEJhckRpZEFj
dGl2YXRlKHNlYXJjaEJhcikKLSAgICB7Ci0gICAgICAgIGlmICghaXNFbXB0eU9iamVjdCh0aGlz
Ll9zZWFyY2hNYXRjaGVzKSkKLSAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFNlYXJjaE1hdGNo
QXRJbmRleCgwKTsKLSAgICAgICAgdGhpcy5wcm9tcHQuZm9jdXMoKTsKLSAgICB9Ci0KICAgICAv
LyBQcml2YXRlCiAKICAgICBfZm9ybWF0TWVzc2FnZXNBc0RhdGEob25seVNlbGVjdGVkKQpAQCAt
Njk0LDcgKzY5NSw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0Nv
bnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0sIHRoaXMpOwogCi0gICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goKTsKKyAgICAg
ICAgdGhpcy5fcGVyZm9ybVNlYXJjaCh0aGlzLl9maW5kQmFubmVyLCAiIik7CiAgICAgfQogCiAg
ICAgX2tleURvd24oZXZlbnQpCkBAIC04NDksMTggKzg1MCwzMSBAQCBXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5D
b250ZW50VgogICAgICAgICAgICAgZm9jdXNhYmxlRWxlbWVudHNbaV0ucmVtb3ZlQXR0cmlidXRl
KCJ0YWJpbmRleCIpOwogICAgIH0KIAotICAgIF9zZWFyY2hUZXh0RGlkQ2hhbmdlKGV2ZW50KQor
ICAgIGZpbmRCYW5uZXJQZXJmb3JtU2VhcmNoKGZpbmRCYW5uZXIsIHNlYXJjaFRlcm1zKQogICAg
IHsKLSAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCgpOworICAgICAgICB0aGlzLl9wZXJmb3Jt
U2VhcmNoKGZpbmRCYW5uZXIsIHNlYXJjaFRlcm1zKTsKICAgICB9CiAKLSAgICBfcGVyZm9ybVNl
YXJjaCgpCisgICAgZmluZEJhbm5lclNlYXJjaENsZWFyZWQoKQorICAgIHsKKyAgICAgICAgdGhp
cy5fcGVyZm9ybVNlYXJjaChudWxsLCAiIik7CisgICAgfQorCisgICAgcmV2ZWFsTmV4dFNlYXJj
aFJlc3VsdCgpCisgICAgeworICAgICAgICB0aGlzLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0
KCk7CisgICAgfQorCisgICAgcmV2ZWFsUHJldmlvdXNTZWFyY2hSZXN1bHQoKQorICAgIHsKKyAg
ICAgICAgdGhpcy5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQoKTsKKyAgICB9CisKKyAg
ICBfcGVyZm9ybVNlYXJjaChmaW5kQmFubmVyLCBzZWFyY2hUZXJtcykKICAgICB7CiAgICAgICAg
IGlmICghaXNFbXB0eU9iamVjdCh0aGlzLl9zZWFyY2hIaWdobGlnaHRET01DaGFuZ2VzKSkKICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXZlcnREb21DaGFuZ2VzKHRoaXMuX3NlYXJjaEhpZ2hs
aWdodERPTUNoYW5nZXMpOwogCi0gICAgICAgIHZhciBzZWFyY2hUZXJtcyA9IHRoaXMuX3NlYXJj
aEJhci50ZXh0OwotCiAgICAgICAgIGlmIChzZWFyY2hUZXJtcyA9PT0gIiIpIHsKICAgICAgICAg
ICAgIGRlbGV0ZSB0aGlzLl9zZWxlY3RlZFNlYXJjaE1hdGNoOwogICAgICAgICAgICAgdGhpcy5f
bWF0Y2hpbmdTZWFyY2hFbGVtZW50cyA9IFtdOwpAQCAtODczLDYgKzg4Nyw3IEBAIFdlYkluc3Bl
Y3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5z
cGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIHRoaXMuX3NlYXJjaEhpZ2hsaWdodERPTUNoYW5nZXMg
PSBbXTsKICAgICAgICAgdGhpcy5fc2VhcmNoTWF0Y2hlcyA9IFtdOwogICAgICAgICB0aGlzLl9z
ZWxlY3RlZFNlYXJjaE1hdGhJc1ZhbGlkID0gZmFsc2U7CisgICAgICAgIHZhciBudW1iZXJPZlJl
c3VsdHMgPSAwOwogCiAgICAgICAgIHZhciBzZWFyY2hSZWdleCA9IG5ldyBSZWdFeHAoc2VhcmNo
VGVybXMuZXNjYXBlRm9yUmVnRXhwKCksICJnaSIpOwogICAgICAgICB0aGlzLl91bmZpbHRlcmVk
TWVzc2FnZUVsZW1lbnRzKCkuZm9yRWFjaChmdW5jdGlvbihtZXNzYWdlKSB7CkBAIC04ODAsNiAr
ODk1LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZp
ZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgICAgIHZhciB0ZXh0ID0g
bWVzc2FnZS50ZXh0Q29udGVudDsKICAgICAgICAgICAgIHZhciBtYXRjaCA9IHNlYXJjaFJlZ2V4
LmV4ZWModGV4dCk7CiAgICAgICAgICAgICB3aGlsZSAobWF0Y2gpIHsKKyAgICAgICAgICAgICAg
ICBudW1iZXJPZlJlc3VsdHMgKys7CiAgICAgICAgICAgICAgICAgbWF0Y2hSYW5nZXMucHVzaCh7
IG9mZnNldDogbWF0Y2guaW5kZXgsIGxlbmd0aDogbWF0Y2hbMF0ubGVuZ3RoIH0pOwogICAgICAg
ICAgICAgICAgIG1hdGNoID0gc2VhcmNoUmVnZXguZXhlYyh0ZXh0KTsKICAgICAgICAgICAgIH0K
QEAgLTg5OCw2ICs5MTQsOCBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBM
b2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICAgICAg
dGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRjaC5oaWdobGlnaHQuY2xhc3NMaXN0LnJlbW92ZShXZWJJ
bnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAg
ICAgICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRjaDsKICAgICAgICAgfQorCisgICAg
ICAgIHRoaXMuX2ZpbmRCYW5uZXIubnVtYmVyT2ZSZXN1bHRzID0gIG51bWJlck9mUmVzdWx0czsK
ICAgICB9CiAKICAgICBfaGlnaGxpZ2h0UmFuZ2VzKG1lc3NhZ2UsIG1hdGNoUmFuZ2VzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNo
QmFyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNo
QmFyLmpzCmluZGV4IGIyZGRjNzBhYTExOGRlYmRkOGZiZGM3MDFlNjA1YjFmZjgxN2MzMmMuLjcx
YzFhYTk1MGZkMGM5OGY5NjlmYzAzN2I2NDU0MzZiZTljZjFmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaEJhci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hCYXIuanMKQEAg
LTYxLDggKzYxLDExIEBAIFdlYkluc3BlY3Rvci5TZWFyY2hCYXIgPSBjbGFzcyBTZWFyY2hCYXIg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuTmF2aWdhdGlvbkl0ZW0KIAogICAgIGZvY3VzKCkKICAgICB7
Ci0gICAgICAgIHRoaXMuX3NlYXJjaElucHV0LmZvY3VzKCk7Ci0gICAgICAgIHRoaXMuX3NlYXJj
aElucHV0LnNlbGVjdCgpOworICAgICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCBmb3I6IDxodHRw
czovL3dlYmtpdC5vcmcvYi8xNDk1MDQ+IENhcmV0IG1pc3NpbmcgZnJvbSA8aW5wdXQ+IGFmdGVy
IGNsZWFyaW5nIHRleHQgYW5kIGNhbGxpbmcgc2VsZWN0KCkKKyAgICAgICAgaWYgKCF0aGlzLl9z
ZWFyY2hJbnB1dC52YWx1ZS5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLl9zZWFyY2hJbnB1dC5m
b2N1cygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9zZWFyY2hJbnB1dC5zZWxl
Y3QoKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261931</attachid>
            <date>2015-09-25 12:18:29 -0700</date>
            <delta_ts>2015-09-25 20:28:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-149505-20150925201809.patch</filename>
            <type>text/plain</type>
            <size>22222</size>
            <attacher name="João Oliveira">hello</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAz
MWY0NDc1MDMwMmFmNzRlYTZhNzJmMDZlMjYyN2RhMWViYTc3YWIzLi5kYWIwN2RhOGZjOTUzYTQx
YWI4ZmFlZTQxZDVlNjBhODQ0MWIxNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAxNS0wOS0yNCAgSm/Do28gT2xpdmVpcmEgIDxoZWxsb0BqeHMucHQ+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBTZWFyY2hCYXIgc2hvdWxkIHdvcmsgbW9y
ZSBsaWtlIENvbnRlbnRCcm93c2VyIEZpbmRCYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQ29uc29sZSB0YWIgbm93IHVzZXMgZmlu
ZEJhbm5lciwgYWRhcHRlZCBMb2dDb250ZW50VmlldyB0byB1c2UgZmluZEJhbm5lciwKKyAgICAg
ICAgYW5kIGZpbmRCYW5uZXIgdG8gYmUgbW9yZSBhZ25vc3RpYyB0byBib3RoIHVzZWNhc2VzLCBl
aXRoZXIgYXMgZml4ZWQsIG9uIGNvbnNvbGUgdGFiLAorICAgICAgICBhbmQgaGlkZWFibGUgb24g
b3RoZXIgaW5zcGVjdG9yIHRhYnMuIAorICAgICAgICAKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L01haW4uaHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVGaW5kQmFu
bmVyLmNzczogQWRkZWQuCisgICAgICAgIChib2R5LndpbmRvdy1pbmFjdGl2ZSAuY29uc29sZS1m
aW5kLWJhbm5lcik6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lci5zaG93aW5nKToKKyAg
ICAgICAgKC5uby1maW5kLWJhbm5lci10cmFuc2l0aW9uOm1hdGNoZXMoLmNvbnNvbGUtZmluZC1i
YW5uZXIsIC5zdXBwb3J0cy1maW5kLWJhbm5lcikpOgorICAgICAgICAoLnN1cHBvcnRzLWZpbmQt
YmFubmVyKToKKyAgICAgICAgKC5zdXBwb3J0cy1maW5kLWJhbm5lci5zaG93aW5nLWZpbmQtYmFu
bmVyKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gOmZpcnN0LWNoaWxkKToKKyAg
ICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gOmxhc3QtY2hpbGQpOgorICAgICAgICAoLmNv
bnNvbGUtZmluZC1iYW5uZXIgPiBpbnB1dFt0eXBlPSJzZWFyY2giXSk6CisgICAgICAgICguY29u
c29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbik6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5l
ciA+IGJ1dHRvbiA+IC5nbHlwaCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1
dHRvbjpkaXNhYmxlZCA+IC5nbHlwaCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+
IGJ1dHRvbjphY3RpdmU6bm90KDpkaXNhYmxlZCkpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1i
YW5uZXIgPiBidXR0b246ZGlzYWJsZWQpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiBidXR0b24uc2VnbWVudGVkLmxlZnQpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiBidXR0b24uc2VnbWVudGVkLmxlZnQgPiAuZ2x5cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmlu
ZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLmxlZnQ6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpID4g
LmdseXBoKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRl
ZC5yaWdodCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50
ZWQucmlnaHQgPiAuZ2x5cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0
b24uc2VnbWVudGVkLnJpZ2h0OmFjdGl2ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCk6CisgICAg
ICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50ZWQpOgorICAgICAgICAo
LmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkOmFjdGl2ZSk6CisgICAgICAg
ICguY29uc29sZS1maW5kLWJhbm5lciA+IGxhYmVsKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRC
cm93c2VyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RmluZEJhbm5lci5wcm90b3R5cGUuZm9jdXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbmRC
YW5uZXIucHJvdG90eXBlLmxvc2VGb2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJh
bm5lci5wcm90b3R5cGUuX2lucHV0RmllbGRLZXlEb3duKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVsZEtleVVwKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVs
ZFNlYXJjaCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJSZXZl
YWxQcmV2aW91c1Jlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX2ZpbHRlck1lc3NhZ2VFbGVtZW50cyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJQ
ZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90
b3R5cGUuZmluZEJhbm5lclNlYXJjaENsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3LnByb3RvdHlwZS5yZXZlYWxOZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUucmV2ZWFsUHJldmlvdXNTZWFy
Y2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5fcGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLnNlYXJjaEJhckRpZEFjdGl2YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3NlYXJjaFRleHREaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoQmFyLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaEJhci5wcm90b3R5cGUuZm9jdXMpOgorCiAyMDE1LTA5
LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJhbiBzb3J0
LVhjb2RlLXByb2plY3QtZmlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbAppbmRleCBiMGI0YjU5MmQwOTIzN2M1YzRjNjYyZGM2NTc3NWJiOGQxMjRk
NzllLi42MmVlMDczNzU1ZTNiYWVhNjUzNWI4ZjE4MjMyYmE2YjNjMjE0YWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC04Miw2ICs4Miw3
IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9FcnJvck9iamVjdFZp
ZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0ZpbHRlckJh
ci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvRmluZEJhbm5l
ci5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ29uc29sZUZp
bmRCYW5uZXIuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0Zs
ZXhpYmxlU3BhY2VOYXZpZ2F0aW9uSXRlbS5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvRm9sZGVySWNvbi5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvRm9udFJlc291cmNlQ29udGVudFZpZXcuY3NzIj4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVGaW5kQmFu
bmVyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNv
bGVGaW5kQmFubmVyLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2VlYTIzZDMwZjc1YWNhMjEwYjcyMDRhNGM1
ZDkzOWMxMGMxM2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUZpbmRCYW5uZXIuY3NzCkBAIC0wLDAgKzEsMTc1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworYm9keS53aW5kb3ctaW5hY3RpdmUgLmNvbnNvbGUtZmluZC1iYW5uZXIg
eworICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGhzbCgwLCAwJSwgODUlKTsKK30KKworLmNvbnNv
bGUtZmluZC1iYW5uZXIuc2hvd2luZyB7CisgICAgdG9wOiAwOworICAgIHRyYW5zaXRpb24tdGlt
aW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsKK30KKworLm5vLWZpbmQtYmFubmVyLXRyYW5zaXRpb246
bWF0Y2hlcyguY29uc29sZS1maW5kLWJhbm5lciwgLnN1cHBvcnRzLWZpbmQtYmFubmVyKSB7Cisg
ICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMCAhaW1wb3J0YW50OworfQorCisuc3VwcG9ydHMtZmlu
ZC1iYW5uZXIgeworICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRvcDsKKyAgICB0cmFuc2l0aW9u
LWR1cmF0aW9uOiAyMDBtczsKKyAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1p
bjsKK30KKworLnN1cHBvcnRzLWZpbmQtYmFubmVyLnNob3dpbmctZmluZC1iYW5uZXIgeworICAg
IHRvcDogMjJweCAhaW1wb3J0YW50OworICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBl
YXNlLW91dDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiA6Zmlyc3QtY2hpbGQgeworICAg
IG1hcmdpbi1sZWZ0OiA4cHggIWltcG9ydGFudDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiA6bGFzdC1jaGlsZCB7CisgICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDsKK30KKwor
LmNvbnNvbGUtZmluZC1iYW5uZXIgPiBpbnB1dFt0eXBlPSJzZWFyY2giXSB7CisgICAgcGFkZGlu
Zy10b3A6IDA7CisgICAgbWFyZ2luOiAxcHggNnB4OworCisgICAgb3V0bGluZTogbm9uZTsKKwor
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKKworICAgIGJvcmRlcjogMXB4IHNvbGlkIGhz
bGEoMCwgMCUsIDAlLCAwLjI1KTsKKyAgICBib3JkZXItcmFkaXVzOiAzcHg7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgMTAwJSwgMC4yKTsKKyAgICBiYWNrZ3JvdW5kLWNsaXA6
IHBhZGRpbmctYm94OworCisgICAgaGVpZ2h0OiAyMnB4OworfQorCisuY29uc29sZS1maW5kLWJh
bm5lciA+IGJ1dHRvbiB7CisgICAgbWFyZ2luOiAxcHggNHB4OworCisgICAgcGFkZGluZy1sZWZ0
OiA2cHg7CisgICAgcGFkZGluZy1yaWdodDogNnB4OworCisgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBub25lOworCisgICAgYm9yZGVyLXJhZGl1czogNHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlk
IGhzbCgwLCAwJSwgNTclKTsKKworICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICAgIGJh
Y2tncm91bmQtaW1hZ2U6IG5vbmU7CisgICAgYm94LXNoYWRvdzogbm9uZTsKKworICAgIGxpbmUt
aGVpZ2h0OiAxMXB4OworCisgICAgaGVpZ2h0OiAxOXB4OworCisgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOworICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisKKyAgICBvdXRsaW5lLW9mZnNldDogLTJw
eDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24gPiAuZ2x5cGggeworICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKworICAgIHdpZHRoOiA3cHg7CisgICAgaGVpZ2h0OiAxMXB4
OworfQorCisuY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbjpkaXNhYmxlZCA+IC5nbHlwaCB7
CisgICAgb3BhY2l0eTogMC42NTsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b246
YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUs
IDU1JSk7CisgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwg
aHNsKDAsIDAlLCA3OCUpLCBoc2woMCwgMCUsIDg1JSkpOworICAgIGJveC1zaGFkb3c6IGhzbGEo
MCwgMCUsIDEwMCUsIDAuMzMpIDAgMXB4IDAsIGluc2V0IGhzbCgwLCAwJSwgNjQlKSAwIDFweCAx
cHg7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uOmRpc2FibGVkIHsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDc2JSk7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
bm9uZTsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLmxlZnQg
eworICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOworICAgIGJvcmRlci1ib3R0b20tcmln
aHQtcmFkaXVzOiAwOworCisgICAgbWFyZ2luLXJpZ2h0OiAwOworCisgICAgcGFkZGluZy1sZWZ0
OiA2cHg7CisgICAgcGFkZGluZy1yaWdodDogNnB4OworfQorCisuY29uc29sZS1maW5kLWJhbm5l
ciA+IGJ1dHRvbi5zZWdtZW50ZWQubGVmdCA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogLXdlYmtpdC1jYW52YXMoZmluZC1iYW5uZXItcHJldmlvdXMtYXJyb3ctbm9ybWFsKTsKKyAg
ICBiYWNrZ3JvdW5kLXNpemU6IDdweCAxMXB4OworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1y
ZXBlYXQ7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRlZC5sZWZ0
OmFjdGl2ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jYW52YXMoZmluZC1iYW5uZXItcHJldmlvdXMtYXJyb3ctbm9ybWFsLWFjdGl2ZSk7
Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRlZC5yaWdodCB7Cisg
ICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsKKyAgICBib3JkZXItYm90dG9tLWxlZnQtcmFk
aXVzOiAwOworCisgICAgbWFyZ2luLWxlZnQ6IC0xcHg7CisKKyAgICBwYWRkaW5nLWxlZnQ6IDVw
eDsKKyAgICBwYWRkaW5nLXJpZ2h0OiA3cHg7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4g
YnV0dG9uLnNlZ21lbnRlZC5yaWdodCA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
LXdlYmtpdC1jYW52YXMoZmluZC1iYW5uZXItbmV4dC1hcnJvdy1ub3JtYWwpOworICAgIGJhY2tn
cm91bmQtc2l6ZTogN3B4IDExcHg7CisgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsK
K30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLnJpZ2h0OmFjdGl2
ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtp
dC1jYW52YXMoZmluZC1iYW5uZXItbmV4dC1hcnJvdy1ub3JtYWwtYWN0aXZlKTsKK30KKworLmNv
bnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkIHsKKyAgICBtaW4td2lkdGg6IDIy
cHg7CisgICAgcGFkZGluZy10b3A6IDNweDsKKyAgICBwYWRkaW5nLWJvdHRvbTogMnB4OworfQor
CisuY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50ZWQ6YWN0aXZlIHsKKyAgICB6
LWluZGV4OiAxMDA7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorCisuY29uc29sZS1maW5k
LWJhbm5lciA+IGxhYmVsIHsKKyAgICBtYXJnaW46IDAgNnB4OworICAgIGxpbmUtaGVpZ2h0OiAy
MXB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRmluZEJhbm5lci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0ZpbmRCYW5uZXIuanMKaW5kZXggYWJhZDc1MGYzOWE2NTVhYzk4MmMxYTllNDNmMDdm
YzVlNDI3YjUwZC4uNmFiYzE1YTg2ZjAwMGNmZTU2YmMzMGY4NDBmNWY5ZjhmYWY4MDBkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJh
bm5lci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9G
aW5kQmFubmVyLmpzCkBAIC0yMywxNiArMjMsMTUgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuRmluZEJhbm5lciA9IGNsYXNzIEZpbmRC
YW5uZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuRmluZEJhbm5l
ciA9IGNsYXNzIEZpbmRCYW5uZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuTmF2aWdhdGlvbkl0ZW0K
IHsKLSAgICBjb25zdHJ1Y3RvcihkZWxlZ2F0ZSwgZWxlbWVudCkKKyAgICBjb25zdHJ1Y3Rvcihk
ZWxlZ2F0ZSwgY2xhc3NOYW1lID0gImZpbmQtYmFubmVyIiwgZml4ZWQgPSBmYWxzZSkKICAgICB7
CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBkZWxlZ2F0ZSB8
fCBudWxsOwogCi0gICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50IHx8IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQo
ImZpbmQtYmFubmVyIik7CisgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFz
c05hbWUpOwogCiAgICAgICAgIHRoaXMuX3Jlc3VsdENvdW50TGFiZWwgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRo
aXMuX3Jlc3VsdENvdW50TGFiZWwpOwpAQCAtNjUsMjIgKzY0LDI2IEBAIFdlYkluc3BlY3Rvci5G
aW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QK
ICAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5pbmNyZW1lbnRhbCA9IHRydWU7CiAgICAgICAgIHRo
aXMuX2lucHV0RmllbGQuc2V0QXR0cmlidXRlKCJyZXN1bHRzIiwgNSk7CiAgICAgICAgIHRoaXMu
X2lucHV0RmllbGQuc2V0QXR0cmlidXRlKCJhdXRvc2F2ZSIsICJpbnNwZWN0b3Itc2VhcmNoIik7
Ci0gICAgICAgIHRoaXMuX2lucHV0RmllbGQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRo
aXMuX2lucHV0RmllbGRLZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKLSAgICAgICAgdGhpcy5f
aW5wdXRGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuX2lucHV0RmllbGRLZXlV
cC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuYWRkRXZlbnRM
aXN0ZW5lcigic2VhcmNoIiwgdGhpcy5faW5wdXRGaWVsZFNlYXJjaC5iaW5kKHRoaXMpLCBmYWxz
ZSk7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5faW5wdXRGaWVsZCk7
CiAKLSAgICAgICAgdGhpcy5fZG9uZUJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1
dHRvbiIpOwotICAgICAgICB0aGlzLl9kb25lQnV0dG9uLnRleHRDb250ZW50ID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJEb25lIik7Ci0gICAgICAgIHRoaXMuX2RvbmVCdXR0b24uYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCB0aGlzLl9kb25lQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpKTsKLSAg
ICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kb25lQnV0dG9uKTsKKyAgICAg
ICAgaWYgKGZpeGVkKSB7CisgICAgICAgICAgICB0aGlzLl9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9
IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5LZXkuRXNjYXBlLCB0aGlzLmxvc2VGb2N1cy5iaW5kKHRoaXMpLCB0aGlz
Ll9lbGVtZW50KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxldCBkb25lQnV0dG9u
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOworICAgICAgICAgICAg
ZG9uZUJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRv
bmUiKTsKKyAgICAgICAgICAgIGRvbmVCdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5fZG9uZUJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0
aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGRvbmVCdXR0b25FbGVtZW50KTsKKyAgICAgICAgICAg
IHRoaXMuX2hpZGVLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNo
b3J0Y3V0KG51bGwsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUsIHRo
aXMuaGlkZS5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKKyAgICAgICAgfQorCiAKICAgICAg
ICAgdGhpcy5fbnVtYmVyT2ZSZXN1bHRzID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2VhcmNoQmFj
a3dhcmRzID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3NlYXJjaEtleVByZXNzZWQgPSBmYWxzZTsK
ICAgICAgICAgdGhpcy5fcHJldmlvdXNTZWFyY2hWYWx1ZSA9ICIiOwogCi0gICAgICAgIHRoaXMu
X2hpZGVLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
KG51bGwsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUsIHRoaXMuaGlk
ZS5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKKwogICAgICAgICB0aGlzLl9wb3B1bGF0ZUZp
bmRLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wsICJF
IiwgdGhpcy5fcG9wdWxhdGVTZWFyY2hRdWVyeUZyb21TZWxlY3Rpb24uYmluZCh0aGlzKSk7CiAg
ICAgICAgIHRoaXMuX3BvcHVsYXRlRmluZEtleWJvYXJkU2hvcnRjdXQuaW1wbGljaXRseVByZXZl
bnRzRGVmYXVsdCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9maW5kTmV4dEtleWJvYXJkU2hvcnRj
dXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJv
YXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIkciLCB0aGlzLl9uZXh0UmVz
dWx0QnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpKTsKQEAgLTE4NSw2ICsxODgsMjEgQEAgV2ViSW5z
cGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMgV2ViSW5zcGVjdG9y
Lk9iamVjdAogICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMo
V2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIuU2hvd2luZ1N0eWxlQ2xhc3NOYW1lKTsKICAgICB9CiAK
KyAgICBmb2N1cygpCisgICAgeworICAgICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCBmb3I6IDxo
dHRwczovL3dlYmtpdC5vcmcvYi8xNDk1MDQ+IENhcmV0IG1pc3NpbmcgZnJvbSA8aW5wdXQ+IGFm
dGVyIGNsZWFyaW5nIHRleHQgYW5kIGNhbGxpbmcgc2VsZWN0KCkKKyAgICAgICAgaWYgKCF0aGlz
Ll9pbnB1dEZpZWxkLnZhbHVlLmxlbmd0aCkKKyAgICAgICAgICAgIHRoaXMuX2lucHV0RmllbGQu
Zm9jdXMoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5zZWxl
Y3QoKTsKKyAgICB9CisKKyAgICBsb3NlRm9jdXMoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyV2FudHNUb0xvc2VG
b2N1cyA9PT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5u
ZXJXYW50c1RvTG9zZUZvY3VzKCk7CisgICAgfQorCiAgICAgc2hvdygpCiAgICAgewogICAgICAg
ICBjb25zb2xlLmFzc2VydCh0aGlzLl90YXJnZXRFbGVtZW50KTsKQEAgLTI0Myw0NCArMjYxLDE4
IEBAIFdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdl
Ykluc3BlY3Rvci5PYmplY3QKIAogICAgIC8vIFByaXZhdGUKIAotICAgIF9pbnB1dEZpZWxkS2V5
RG93bihldmVudCkKLSAgICB7Ci0gICAgICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAi
U2hpZnQiKQotICAgICAgICAgICAgdGhpcy5fc2VhcmNoQmFja3dhcmRzID0gdHJ1ZTsKLSAgICAg
ICAgZWxzZSBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkVudGVyIikKLSAgICAgICAgICAg
IHRoaXMuX3NlYXJjaEtleVByZXNzZWQgPSB0cnVlOwotICAgIH0KLQotICAgIF9pbnB1dEZpZWxk
S2V5VXAoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0g
IlNoaWZ0IikKLSAgICAgICAgICAgIHRoaXMuX3NlYXJjaEJhY2t3YXJkcyA9IGZhbHNlOwotICAg
ICAgICBlbHNlIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiKQotICAgICAgICAg
ICAgdGhpcy5fc2VhcmNoS2V5UHJlc3NlZCA9IGZhbHNlOwotICAgIH0KLQogICAgIF9pbnB1dEZp
ZWxkU2VhcmNoKGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2lucHV0RmllbGQudmFs
dWUpIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NlYXJjaFZhbHVlICE9PSB0aGlz
LnNlYXJjaFF1ZXJ5KSB7CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5
cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUGVyZm9ybVNlYXJjaCA9PT0gImZ1bmN0aW9u
IikKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclBlcmZvcm1T
ZWFyY2godGhpcywgdGhpcy5zZWFyY2hRdWVyeSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHRo
aXMuX3NlYXJjaEtleVByZXNzZWQgJiYgdGhpcy5fbnVtYmVyT2ZSZXN1bHRzID4gMCkgewotICAg
ICAgICAgICAgICAgIGlmICh0aGlzLl9zZWFyY2hCYWNrd2FyZHMpIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFu
bmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQodGhp
cyk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRo
aXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsTmV4
dFJlc3VsdCA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Rl
bGVnYXRlLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMubnVt
YmVyT2ZSZXN1bHRzID0gbnVsbDsKLQogICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYm
IHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCA9PT0gImZ1bmN0
aW9uIikKICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xl
YXJlZCh0aGlzKTsKICAgICAgICAgfQotCiAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFs
dWUgPSB0aGlzLnNlYXJjaFF1ZXJ5OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwppbmRl
eCAyMTg4NmMyZWJhMzBkYzY2MDM3MmNjYjE2ZDZhYzY0NzQzZjg0NWE5Li40YmZlYjE2ZmYxZDY2
NjI5MjFmOGZhNjNjMGMyNTU2NjBkNzk0MzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpAQCAt
NTcsOCArNTcsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250
ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICB0aGlzLl9sb2dW
aWV3Q29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9s
bGVyKHRoaXMubWVzc2FnZXNFbGVtZW50LCB0aGlzLmVsZW1lbnQsIHRoaXMucHJvbXB0LCB0aGlz
LCAiY29uc29sZS1wcm9tcHQtaGlzdG9yeSIpOwogICAgICAgICB0aGlzLl9sYXN0TWVzc2FnZVZp
ZXcgPSBudWxsOwogCi0gICAgICAgIHRoaXMuX3NlYXJjaEJhciA9IG5ldyBXZWJJbnNwZWN0b3Iu
U2VhcmNoQmFyKCJsb2ctc2VhcmNoLWJhciIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmlsdGVy
IENvbnNvbGUgTG9nIiksIHRoaXMpOwotICAgICAgICB0aGlzLl9zZWFyY2hCYXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuU2VhcmNoQmFyLkV2ZW50LlRleHRDaGFuZ2VkLCB0aGlzLl9z
ZWFyY2hUZXh0RGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fZmluZEJhbm5lciA9IG5l
dyBXZWJJbnNwZWN0b3IuRmluZEJhbm5lcih0aGlzLCAiY29uc29sZS1maW5kLWJhbm5lciIsIHRy
dWUpOwogCiAgICAgICAgIHZhciBzY29wZUJhckl0ZW1zID0gWwogICAgICAgICAgICAgbmV3IFdl
Ykluc3BlY3Rvci5TY29wZUJhckl0ZW0oV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNjb3Bl
cy5BbGwsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWxsIiksIHRydWUpLApAQCAtOTEsNyArOTAs
NyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBl
eHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogCiAgICAgZ2V0IG5hdmlnYXRpb25JdGVtcygp
CiAgICAgewotICAgICAgICB2YXIgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX3NlYXJjaEJhciwg
dGhpcy5fc2NvcGVCYXIsIHRoaXMuX2NsZWFyTG9nTmF2aWdhdGlvbkl0ZW1dOworICAgICAgICB2
YXIgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX2ZpbmRCYW5uZXIsIHRoaXMuX3Njb3BlQmFyLCB0
aGlzLl9jbGVhckxvZ05hdmlnYXRpb25JdGVtXTsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5p
c1Nob3dpbmdTcGxpdENvbnNvbGUoKSkKICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNo
KHRoaXMuX3Nob3dDb25zb2xlVGFiTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICByZXR1cm4gbmF2
aWdhdGlvbkl0ZW1zOwpAQCAtMTg4LDcgKzE4Nyw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50
VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRW
CiAgICAgICAgIGlmICghdGhpcy52aXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIHRoaXMuX3NlYXJjaEJhci5mb2N1cygpOworICAgICAgICB0aGlzLl9maW5kQmFubmVyLmZv
Y3VzKCk7CiAgICAgfQogCiAgICAgZ2V0IHN1cHBvcnRzU2F2ZSgpCkBAIC0yMTcsNiArMjE2LDEw
IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7CiAgICAgfQogCisgICAgZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KCkgeworICAg
ICAgICB0aGlzLmhpZ2hsaWdodFByZXZpb3VzU2VhcmNoTWF0Y2goKTsKKyAgICB9CisKICAgICBo
aWdobGlnaHRQcmV2aW91c1NlYXJjaE1hdGNoKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5z
ZWFyY2hJblByb2dyZXNzIHx8IGlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykpCkBA
IC0yMjYsNiArMjI5LDExIEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExv
Z0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIHRoaXMu
X2hpZ2hsaWdodFNlYXJjaE1hdGNoQXRJbmRleChpbmRleCAtIDEpOwogICAgIH0KIAorICAgIGZp
bmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRoaXMuaGlnaGxpZ2h0
TmV4dFNlYXJjaE1hdGNoKCk7CisgICAgfQorCiAgICAgaGlnaGxpZ2h0TmV4dFNlYXJjaE1hdGNo
KCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zZWFyY2hJblByb2dyZXNzIHx8IGlzRW1wdHlP
YmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykpCkBAIC0yMzUsNyArMjQzLDcgQEAgV2ViSW5zcGVj
dG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuQ29udGVudFYKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0U2VhcmNoTWF0Y2hBdEluZGV4
KGluZGV4KTsKICAgICB9CiAKLSAgICBzZWFyY2hCYXJXYW50c1RvTG9zZUZvY3VzKHNlYXJjaEJh
cikKKyAgICBmaW5kQmFubmVyV2FudHNUb0xvc2VGb2N1cyhmaW5kQmFubmVyKQogICAgIHsKICAg
ICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMubGVuZ3RoKQogICAgICAgICAgICAgdGhp
cy5tZXNzYWdlc0VsZW1lbnQuZm9jdXMoKTsKQEAgLTI0MywxMyArMjUxLDYgQEAgV2ViSW5zcGVj
dG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuQ29udGVudFYKICAgICAgICAgICAgIHRoaXMucHJvbXB0LmZvY3VzKCk7CiAgICAgfQog
Ci0gICAgc2VhcmNoQmFyRGlkQWN0aXZhdGUoc2VhcmNoQmFyKQotICAgIHsKLSAgICAgICAgaWYg
KCFpc0VtcHR5T2JqZWN0KHRoaXMuX3NlYXJjaE1hdGNoZXMpKQotICAgICAgICAgICAgdGhpcy5f
aGlnaGxpZ2h0U2VhcmNoTWF0Y2hBdEluZGV4KDApOwotICAgICAgICB0aGlzLnByb21wdC5mb2N1
cygpOwotICAgIH0KLQogICAgIC8vIFByaXZhdGUKIAogICAgIF9mb3JtYXRNZXNzYWdlc0FzRGF0
YShvbmx5U2VsZWN0ZWQpCkBAIC02OTQsNyArNjk1LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRl
bnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVu
dFYKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5fcGVy
Zm9ybVNlYXJjaCgpOworICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKHRoaXMuX2ZpbmRCYW5u
ZXIsICIiKTsKICAgICB9CiAKICAgICBfa2V5RG93bihldmVudCkKQEAgLTg0OSwxOCArODUwLDMx
IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgICAgICBmb2N1c2FibGVFbGVtZW50
c1tpXS5yZW1vdmVBdHRyaWJ1dGUoInRhYmluZGV4Iik7CiAgICAgfQogCi0gICAgX3NlYXJjaFRl
eHREaWRDaGFuZ2UoZXZlbnQpCisgICAgZmluZEJhbm5lclBlcmZvcm1TZWFyY2goZmluZEJhbm5l
ciwgc2VhcmNoVGVybXMpCiAgICAgewotICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKCk7Cisg
ICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goZmluZEJhbm5lciwgc2VhcmNoVGVybXMpOwogICAg
IH0KIAotICAgIF9wZXJmb3JtU2VhcmNoKCkKKyAgICBmaW5kQmFubmVyU2VhcmNoQ2xlYXJlZCgp
CisgICAgeworICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKG51bGwsICIiKTsKKyAgICB9CisK
KyAgICByZXZlYWxOZXh0U2VhcmNoUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRoaXMuZmluZEJh
bm5lclJldmVhbE5leHRSZXN1bHQoKTsKKyAgICB9CisKKyAgICByZXZlYWxQcmV2aW91c1NlYXJj
aFJlc3VsdCgpCisgICAgeworICAgICAgICB0aGlzLmZpbmRCYW5uZXJSZXZlYWxQcmV2aW91c1Jl
c3VsdCgpOworICAgIH0KKworICAgIF9wZXJmb3JtU2VhcmNoKGZpbmRCYW5uZXIsIHNlYXJjaFRl
cm1zKQogICAgIHsKICAgICAgICAgaWYgKCFpc0VtcHR5T2JqZWN0KHRoaXMuX3NlYXJjaEhpZ2hs
aWdodERPTUNoYW5nZXMpKQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnJldmVydERvbUNoYW5n
ZXModGhpcy5fc2VhcmNoSGlnaGxpZ2h0RE9NQ2hhbmdlcyk7CiAKLSAgICAgICAgdmFyIHNlYXJj
aFRlcm1zID0gdGhpcy5fc2VhcmNoQmFyLnRleHQ7Ci0KICAgICAgICAgaWYgKHNlYXJjaFRlcm1z
ID09PSAiIikgewogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGVkU2VhcmNoTWF0Y2g7
CiAgICAgICAgICAgICB0aGlzLl9tYXRjaGluZ1NlYXJjaEVsZW1lbnRzID0gW107CkBAIC04NzMs
NiArODg3LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVu
dFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgdGhpcy5fc2VhcmNo
SGlnaGxpZ2h0RE9NQ2hhbmdlcyA9IFtdOwogICAgICAgICB0aGlzLl9zZWFyY2hNYXRjaGVzID0g
W107CiAgICAgICAgIHRoaXMuX3NlbGVjdGVkU2VhcmNoTWF0aElzVmFsaWQgPSBmYWxzZTsKKyAg
ICAgICAgbGV0IG51bWJlck9mUmVzdWx0cyA9IDA7CiAKICAgICAgICAgdmFyIHNlYXJjaFJlZ2V4
ID0gbmV3IFJlZ0V4cChzZWFyY2hUZXJtcy5lc2NhcGVGb3JSZWdFeHAoKSwgImdpIik7CiAgICAg
ICAgIHRoaXMuX3VuZmlsdGVyZWRNZXNzYWdlRWxlbWVudHMoKS5mb3JFYWNoKGZ1bmN0aW9uKG1l
c3NhZ2UpIHsKQEAgLTg4MCw2ICs4OTUsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcg
PSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAg
ICAgICAgICAgdmFyIHRleHQgPSBtZXNzYWdlLnRleHRDb250ZW50OwogICAgICAgICAgICAgdmFy
IG1hdGNoID0gc2VhcmNoUmVnZXguZXhlYyh0ZXh0KTsKICAgICAgICAgICAgIHdoaWxlIChtYXRj
aCkgeworICAgICAgICAgICAgICAgIG51bWJlck9mUmVzdWx0cysrOwogICAgICAgICAgICAgICAg
IG1hdGNoUmFuZ2VzLnB1c2goeyBvZmZzZXQ6IG1hdGNoLmluZGV4LCBsZW5ndGg6IG1hdGNoWzBd
Lmxlbmd0aCB9KTsKICAgICAgICAgICAgICAgICBtYXRjaCA9IHNlYXJjaFJlZ2V4LmV4ZWModGV4
dCk7CiAgICAgICAgICAgICB9CkBAIC04OTgsNiArOTE0LDggQEAgV2ViSW5zcGVjdG9yLkxvZ0Nv
bnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29u
dGVudFYKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkU2VhcmNoTWF0Y2guaGlnaGxpZ2h0LmNs
YXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVD
bGFzc05hbWUpOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGVkU2VhcmNoTWF0Y2g7
CiAgICAgICAgIH0KKworICAgICAgICB0aGlzLl9maW5kQmFubmVyLm51bWJlck9mUmVzdWx0cyA9
IG51bWJlck9mUmVzdWx0czsKICAgICB9CiAKICAgICBfaGlnaGxpZ2h0UmFuZ2VzKG1lc3NhZ2Us
IG1hdGNoUmFuZ2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU2VhcmNoQmFyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU2VhcmNoQmFyLmpzCmluZGV4IGIyZGRjNzBhYTExOGRlYmRkOGZiZGM3MDFl
NjA1YjFmZjgxN2MzMmMuLjcxYzFhYTk1MGZkMGM5OGY5NjlmYzAzN2I2NDU0MzZiZTljZjFmYTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nl
YXJjaEJhci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9TZWFyY2hCYXIuanMKQEAgLTYxLDggKzYxLDExIEBAIFdlYkluc3BlY3Rvci5TZWFyY2hCYXIg
PSBjbGFzcyBTZWFyY2hCYXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuTmF2aWdhdGlvbkl0ZW0KIAog
ICAgIGZvY3VzKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3NlYXJjaElucHV0LmZvY3VzKCk7Ci0g
ICAgICAgIHRoaXMuX3NlYXJjaElucHV0LnNlbGVjdCgpOworICAgICAgICAvLyBGSVhNRTogV29y
a2Fyb3VuZCBmb3I6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDk1MDQ+IENhcmV0IG1pc3Npbmcg
ZnJvbSA8aW5wdXQ+IGFmdGVyIGNsZWFyaW5nIHRleHQgYW5kIGNhbGxpbmcgc2VsZWN0KCkKKyAg
ICAgICAgaWYgKCF0aGlzLl9zZWFyY2hJbnB1dC52YWx1ZS5sZW5ndGgpCisgICAgICAgICAgICB0
aGlzLl9zZWFyY2hJbnB1dC5mb2N1cygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlz
Ll9zZWFyY2hJbnB1dC5zZWxlY3QoKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261961</attachid>
            <date>2015-09-25 20:28:53 -0700</date>
            <delta_ts>2015-09-29 19:04:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-149505-20150926042832.patch</filename>
            <type>text/plain</type>
            <size>22573</size>
            <attacher name="João Oliveira">hello</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAz
MWY0NDc1MDMwMmFmNzRlYTZhNzJmMDZlMjYyN2RhMWViYTc3YWIzLi5kYWIwN2RhOGZjOTUzYTQx
YWI4ZmFlZTQxZDVlNjBhODQ0MWIxNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAxNS0wOS0yNCAgSm/Do28gT2xpdmVpcmEgIDxoZWxsb0BqeHMucHQ+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBTZWFyY2hCYXIgc2hvdWxkIHdvcmsgbW9y
ZSBsaWtlIENvbnRlbnRCcm93c2VyIEZpbmRCYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQ29uc29sZSB0YWIgbm93IHVzZXMgZmlu
ZEJhbm5lciwgYWRhcHRlZCBMb2dDb250ZW50VmlldyB0byB1c2UgZmluZEJhbm5lciwKKyAgICAg
ICAgYW5kIGZpbmRCYW5uZXIgdG8gYmUgbW9yZSBhZ25vc3RpYyB0byBib3RoIHVzZWNhc2VzLCBl
aXRoZXIgYXMgZml4ZWQsIG9uIGNvbnNvbGUgdGFiLAorICAgICAgICBhbmQgaGlkZWFibGUgb24g
b3RoZXIgaW5zcGVjdG9yIHRhYnMuIAorICAgICAgICAKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L01haW4uaHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVGaW5kQmFu
bmVyLmNzczogQWRkZWQuCisgICAgICAgIChib2R5LndpbmRvdy1pbmFjdGl2ZSAuY29uc29sZS1m
aW5kLWJhbm5lcik6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lci5zaG93aW5nKToKKyAg
ICAgICAgKC5uby1maW5kLWJhbm5lci10cmFuc2l0aW9uOm1hdGNoZXMoLmNvbnNvbGUtZmluZC1i
YW5uZXIsIC5zdXBwb3J0cy1maW5kLWJhbm5lcikpOgorICAgICAgICAoLnN1cHBvcnRzLWZpbmQt
YmFubmVyKToKKyAgICAgICAgKC5zdXBwb3J0cy1maW5kLWJhbm5lci5zaG93aW5nLWZpbmQtYmFu
bmVyKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gOmZpcnN0LWNoaWxkKToKKyAg
ICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gOmxhc3QtY2hpbGQpOgorICAgICAgICAoLmNv
bnNvbGUtZmluZC1iYW5uZXIgPiBpbnB1dFt0eXBlPSJzZWFyY2giXSk6CisgICAgICAgICguY29u
c29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbik6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5l
ciA+IGJ1dHRvbiA+IC5nbHlwaCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1
dHRvbjpkaXNhYmxlZCA+IC5nbHlwaCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+
IGJ1dHRvbjphY3RpdmU6bm90KDpkaXNhYmxlZCkpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1i
YW5uZXIgPiBidXR0b246ZGlzYWJsZWQpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiBidXR0b24uc2VnbWVudGVkLmxlZnQpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiBidXR0b24uc2VnbWVudGVkLmxlZnQgPiAuZ2x5cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmlu
ZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLmxlZnQ6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpID4g
LmdseXBoKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRl
ZC5yaWdodCk6CisgICAgICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50
ZWQucmlnaHQgPiAuZ2x5cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0
b24uc2VnbWVudGVkLnJpZ2h0OmFjdGl2ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCk6CisgICAg
ICAgICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50ZWQpOgorICAgICAgICAo
LmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkOmFjdGl2ZSk6CisgICAgICAg
ICguY29uc29sZS1maW5kLWJhbm5lciA+IGxhYmVsKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRC
cm93c2VyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RmluZEJhbm5lci5wcm90b3R5cGUuZm9jdXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbmRC
YW5uZXIucHJvdG90eXBlLmxvc2VGb2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJh
bm5lci5wcm90b3R5cGUuX2lucHV0RmllbGRLZXlEb3duKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVsZEtleVVwKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVs
ZFNlYXJjaCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJSZXZl
YWxQcmV2aW91c1Jlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX2ZpbHRlck1lc3NhZ2VFbGVtZW50cyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJQ
ZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90
b3R5cGUuZmluZEJhbm5lclNlYXJjaENsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3LnByb3RvdHlwZS5yZXZlYWxOZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUucmV2ZWFsUHJldmlvdXNTZWFy
Y2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5fcGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLnNlYXJjaEJhckRpZEFjdGl2YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3NlYXJjaFRleHREaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoQmFyLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaEJhci5wcm90b3R5cGUuZm9jdXMpOgorCiAyMDE1LTA5
LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJhbiBzb3J0
LVhjb2RlLXByb2plY3QtZmlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbAppbmRleCBiMGI0YjU5MmQwOTIzN2M1YzRjNjYyZGM2NTc3NWJiOGQxMjRk
NzllLi44YTE4MjFhY2FkMzU2MTE5YjJkOGExNmZhMzhkOGJjNmY0MmFmNzE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC01MSw2ICs1MSw3
IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Db2xvcldoZWVsLmNz
cyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Db21wbGV0aW9uU3Vn
Z2VzdGlvbnNWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3
cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJWaWV3cy9Db25zb2xlRmluZEJhbm5lci5jc3MiPgogICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3LmNzcyI+CiAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Db25zb2xlUHJvbXB0LmNzcyI+CiAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Db250ZW50QnJvd3Nlci5jc3MiPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29u
c29sZUZpbmRCYW5uZXIuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29uc29sZUZpbmRCYW5uZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZWVhMjNkMzBmNzVhY2Ey
MTBiNzIwNGE0YzVkOTM5YzEwYzEzZjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlRmluZEJhbm5lci5jc3MKQEAgLTAs
MCArMSwxNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitib2R5LndpbmRvdy1pbmFjdGl2ZSAuY29uc29sZS1m
aW5kLWJhbm5lciB7CisgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaHNsKDAsIDAlLCA4NSUpOwor
fQorCisuY29uc29sZS1maW5kLWJhbm5lci5zaG93aW5nIHsKKyAgICB0b3A6IDA7CisgICAgdHJh
bnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OworfQorCisubm8tZmluZC1iYW5uZXIt
dHJhbnNpdGlvbjptYXRjaGVzKC5jb25zb2xlLWZpbmQtYmFubmVyLCAuc3VwcG9ydHMtZmluZC1i
YW5uZXIpIHsKKyAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwICFpbXBvcnRhbnQ7Cit9CisKKy5z
dXBwb3J0cy1maW5kLWJhbm5lciB7CisgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wOworICAg
IHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zOworICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0
aW9uOiBlYXNlLWluOworfQorCisuc3VwcG9ydHMtZmluZC1iYW5uZXIuc2hvd2luZy1maW5kLWJh
bm5lciB7CisgICAgdG9wOiAyMnB4ICFpbXBvcnRhbnQ7CisgICAgdHJhbnNpdGlvbi10aW1pbmct
ZnVuY3Rpb246IGVhc2Utb3V0OworfQorCisuY29uc29sZS1maW5kLWJhbm5lciA+IDpmaXJzdC1j
aGlsZCB7CisgICAgbWFyZ2luLWxlZnQ6IDhweCAhaW1wb3J0YW50OworfQorCisuY29uc29sZS1m
aW5kLWJhbm5lciA+IDpsYXN0LWNoaWxkIHsKKyAgICBtYXJnaW4tcmlnaHQ6IDhweCAhaW1wb3J0
YW50OworfQorCisuY29uc29sZS1maW5kLWJhbm5lciA+IGlucHV0W3R5cGU9InNlYXJjaCJdIHsK
KyAgICBwYWRkaW5nLXRvcDogMDsKKyAgICBtYXJnaW46IDFweCA2cHg7CisKKyAgICBvdXRsaW5l
OiBub25lOworCisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOworCisgICAgYm9yZGVyOiAx
cHggc29saWQgaHNsYSgwLCAwJSwgMCUsIDAuMjUpOworICAgIGJvcmRlci1yYWRpdXM6IDNweDsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDAsIDAlLCAxMDAlLCAwLjIpOworICAgIGJhY2tn
cm91bmQtY2xpcDogcGFkZGluZy1ib3g7CisKKyAgICBoZWlnaHQ6IDIycHg7Cit9CisKKy5jb25z
b2xlLWZpbmQtYmFubmVyID4gYnV0dG9uIHsKKyAgICBtYXJnaW46IDFweCA0cHg7CisKKyAgICBw
YWRkaW5nLWxlZnQ6IDZweDsKKyAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7CisKKyAgICAtd2Via2l0
LWFwcGVhcmFuY2U6IG5vbmU7CisKKyAgICBib3JkZXItcmFkaXVzOiA0cHg7CisgICAgYm9yZGVy
OiAxcHggc29saWQgaHNsKDAsIDAlLCA1NyUpOworCisgICAgYmFja2dyb3VuZC1jb2xvcjogd2hp
dGU7CisgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKKyAgICBib3gtc2hhZG93OiBub25lOwor
CisgICAgbGluZS1oZWlnaHQ6IDExcHg7CisKKyAgICBoZWlnaHQ6IDE5cHg7CisKKyAgICB0ZXh0
LWFsaWduOiBjZW50ZXI7CisgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKworICAgIG91dGxpbmUt
b2Zmc2V0OiAtMnB4OworfQorCisuY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbiA+IC5nbHlw
aCB7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworCisgICAgd2lkdGg6IDdweDsKKyAgICBo
ZWlnaHQ6IDExcHg7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uOmRpc2FibGVk
ID4gLmdseXBoIHsKKyAgICBvcGFjaXR5OiAwLjY1OworfQorCisuY29uc29sZS1maW5kLWJhbm5l
ciA+IGJ1dHRvbjphY3RpdmU6bm90KDpkaXNhYmxlZCkgeworICAgIGJvcmRlcjogMXB4IHNvbGlk
IGhzbCgwLCAwJSwgNTUlKTsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQo
dG8gYm90dG9tLCBoc2woMCwgMCUsIDc4JSksIGhzbCgwLCAwJSwgODUlKSk7CisgICAgYm94LXNo
YWRvdzogaHNsYSgwLCAwJSwgMTAwJSwgMC4zMykgMCAxcHggMCwgaW5zZXQgaHNsKDAsIDAlLCA2
NCUpIDAgMXB4IDFweDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b246ZGlzYWJs
ZWQgeworICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgNzYlKTsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiBub25lOworfQorCisuY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdt
ZW50ZWQubGVmdCB7CisgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7CisgICAgYm9yZGVy
LWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7CisKKyAgICBtYXJnaW4tcmlnaHQ6IDA7CisKKyAgICBw
YWRkaW5nLWxlZnQ6IDZweDsKKyAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7Cit9CisKKy5jb25zb2xl
LWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRlZC5sZWZ0ID4gLmdseXBoIHsKKyAgICBiYWNr
Z3JvdW5kLWltYWdlOiAtd2Via2l0LWNhbnZhcyhmaW5kLWJhbm5lci1wcmV2aW91cy1hcnJvdy1u
b3JtYWwpOworICAgIGJhY2tncm91bmQtc2l6ZTogN3B4IDExcHg7CisgICAgYmFja2dyb3VuZC1y
ZXBlYXQ6IG5vLXJlcGVhdDsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2Vn
bWVudGVkLmxlZnQ6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpID4gLmdseXBoIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiAtd2Via2l0LWNhbnZhcyhmaW5kLWJhbm5lci1wcmV2aW91cy1hcnJvdy1ub3Jt
YWwtYWN0aXZlKTsKK30KKworLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVk
LnJpZ2h0IHsKKyAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOworICAgIGJvcmRlci1ib3R0
b20tbGVmdC1yYWRpdXM6IDA7CisKKyAgICBtYXJnaW4tbGVmdDogLTFweDsKKworICAgIHBhZGRp
bmctbGVmdDogNXB4OworICAgIHBhZGRpbmctcmlnaHQ6IDdweDsKK30KKworLmNvbnNvbGUtZmlu
ZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLnJpZ2h0ID4gLmdseXBoIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiAtd2Via2l0LWNhbnZhcyhmaW5kLWJhbm5lci1uZXh0LWFycm93LW5vcm1hbCk7
CisgICAgYmFja2dyb3VuZC1zaXplOiA3cHggMTFweDsKKyAgICBiYWNrZ3JvdW5kLXJlcGVhdDog
bm8tcmVwZWF0OworfQorCisuY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50ZWQu
cmlnaHQ6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpID4gLmdseXBoIHsKKyAgICBiYWNrZ3JvdW5kLWlt
YWdlOiAtd2Via2l0LWNhbnZhcyhmaW5kLWJhbm5lci1uZXh0LWFycm93LW5vcm1hbC1hY3RpdmUp
OworfQorCisuY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50ZWQgeworICAgIG1p
bi13aWR0aDogMjJweDsKKyAgICBwYWRkaW5nLXRvcDogM3B4OworICAgIHBhZGRpbmctYm90dG9t
OiAycHg7Cit9CisKKy5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRlZDphY3Rp
dmUgeworICAgIHotaW5kZXg6IDEwMDsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9CisKKy5j
b25zb2xlLWZpbmQtYmFubmVyID4gbGFiZWwgeworICAgIG1hcmdpbjogMCA2cHg7CisgICAgbGlu
ZS1oZWlnaHQ6IDIxcHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qcwppbmRleCBhYmFkNzUwZjM5YTY1NWFjOTgy
YzFhOWU0M2YwN2ZjNWU0MjdiNTBkLi42YWJjMTVhODZmMDAwY2ZlNTZiYzMwZjg0MGY1ZjlmOGZh
ZjgwMGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9GaW5kQmFubmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanMKQEAgLTIzLDE2ICsyMywxNSBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0g
Y2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKK1dlYkluc3BlY3Rv
ci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5OYXZp
Z2F0aW9uSXRlbQogewotICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlLCBlbGVtZW50KQorICAgIGNv
bnN0cnVjdG9yKGRlbGVnYXRlLCBjbGFzc05hbWUgPSAiZmluZC1iYW5uZXIiLCBmaXhlZCA9IGZh
bHNlKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKIAogICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9
IGRlbGVnYXRlIHx8IG51bGw7CiAKLSAgICAgICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnQgfHwg
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIHRoaXMuX2VsZW1lbnQuY2xh
c3NMaXN0LmFkZCgiZmluZC1iYW5uZXIiKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xp
c3QuYWRkKGNsYXNzTmFtZSk7CiAKICAgICAgICAgdGhpcy5fcmVzdWx0Q291bnRMYWJlbCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fcmVzdWx0Q291bnRMYWJlbCk7CkBAIC02NSwyMiArNjQsMjYgQEAgV2Vi
SW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMgV2ViSW5zcGVj
dG9yLk9iamVjdAogICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLmluY3JlbWVudGFsID0gdHJ1ZTsK
ICAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5zZXRBdHRyaWJ1dGUoInJlc3VsdHMiLCA1KTsKICAg
ICAgICAgdGhpcy5faW5wdXRGaWVsZC5zZXRBdHRyaWJ1dGUoImF1dG9zYXZlIiwgImluc3BlY3Rv
ci1zZWFyY2giKTsKLSAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJr
ZXlkb3duIiwgdGhpcy5faW5wdXRGaWVsZEtleURvd24uYmluZCh0aGlzKSwgZmFsc2UpOwotICAg
ICAgICB0aGlzLl9pbnB1dEZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5faW5w
dXRGaWVsZEtleVVwLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICAgICAgdGhpcy5faW5wdXRGaWVs
ZC5hZGRFdmVudExpc3RlbmVyKCJzZWFyY2giLCB0aGlzLl9pbnB1dEZpZWxkU2VhcmNoLmJpbmQo
dGhpcyksIGZhbHNlKTsKICAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9p
bnB1dEZpZWxkKTsKIAotICAgICAgICB0aGlzLl9kb25lQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiYnV0dG9uIik7Ci0gICAgICAgIHRoaXMuX2RvbmVCdXR0b24udGV4dENvbnRlbnQg
PSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbmUiKTsKLSAgICAgICAgdGhpcy5fZG9uZUJ1dHRv
bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2RvbmVCdXR0b25DbGlja2VkLmJpbmQo
dGhpcykpOwotICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RvbmVCdXR0
b24pOworICAgICAgICBpZiAoZml4ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX2hpZGVLZXlib2Fy
ZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdlYklu
c3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUsIHRoaXMubG9zZUZvY3VzLmJpbmQo
dGhpcyksIHRoaXMuX2VsZW1lbnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGV0
IGRvbmVCdXR0b25FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7Cisg
ICAgICAgICAgICBkb25lQnV0dG9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiRG9uZSIpOworICAgICAgICAgICAgZG9uZUJ1dHRvbkVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCB0aGlzLl9kb25lQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQoZG9uZUJ1dHRvbkVsZW1lbnQpOwor
ICAgICAgICAgICAgdGhpcy5faGlkZUtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQobnVsbCwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5
LkVzY2FwZSwgdGhpcy5oaWRlLmJpbmQodGhpcyksIHRoaXMuX2VsZW1lbnQpOworICAgICAgICB9
CisKIAogICAgICAgICB0aGlzLl9udW1iZXJPZlJlc3VsdHMgPSBudWxsOwogICAgICAgICB0aGlz
Ll9zZWFyY2hCYWNrd2FyZHMgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fc2VhcmNoS2V5UHJlc3Nl
ZCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9wcmV2aW91c1NlYXJjaFZhbHVlID0gIiI7CiAKLSAg
ICAgICAgdGhpcy5faGlkZUtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJv
YXJkU2hvcnRjdXQobnVsbCwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5LkVzY2Fw
ZSwgdGhpcy5oaWRlLmJpbmQodGhpcyksIHRoaXMuX2VsZW1lbnQpOworCiAgICAgICAgIHRoaXMu
X3BvcHVsYXRlRmluZEtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJk
U2hvcnRjdXQoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9y
Q29udHJvbCwgIkUiLCB0aGlzLl9wb3B1bGF0ZVNlYXJjaFF1ZXJ5RnJvbVNlbGVjdGlvbi5iaW5k
KHRoaXMpKTsKICAgICAgICAgdGhpcy5fcG9wdWxhdGVGaW5kS2V5Ym9hcmRTaG9ydGN1dC5pbXBs
aWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2ZpbmROZXh0S2V5
Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sLCAiRyIsIHRo
aXMuX25leHRSZXN1bHRCdXR0b25DbGlja2VkLmJpbmQodGhpcykpOwpAQCAtMTg1LDYgKzE4OCwy
MSBAQCBXZWJJbnNwZWN0b3IuRmluZEJhbm5lciA9IGNsYXNzIEZpbmRCYW5uZXIgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50LmNsYXNzTGlz
dC5jb250YWlucyhXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5TaG93aW5nU3R5bGVDbGFzc05hbWUp
OwogICAgIH0KIAorICAgIGZvY3VzKCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBXb3JrYXJv
dW5kIGZvcjogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0OTUwND4gQ2FyZXQgbWlzc2luZyBmcm9t
IDxpbnB1dD4gYWZ0ZXIgY2xlYXJpbmcgdGV4dCBhbmQgY2FsbGluZyBzZWxlY3QoKQorICAgICAg
ICBpZiAoIXRoaXMuX2lucHV0RmllbGQudmFsdWUubGVuZ3RoKQorICAgICAgICAgICAgdGhpcy5f
aW5wdXRGaWVsZC5mb2N1cygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9pbnB1
dEZpZWxkLnNlbGVjdCgpOworICAgIH0KKworICAgIGxvc2VGb2N1cygpCisgICAgeworICAgICAg
ICBpZiAodGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJX
YW50c1RvTG9zZUZvY3VzID09PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAgdGhpcy5fZGVsZWdh
dGUuZmluZEJhbm5lcldhbnRzVG9Mb3NlRm9jdXMoKTsKKyAgICB9CisKICAgICBzaG93KCkKICAg
ICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3RhcmdldEVsZW1lbnQpOwpAQCAtMjQz
LDQ0ICsyNjEsMTggQEAgV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVy
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgLy8gUHJpdmF0ZQogCi0gICAgX2lu
cHV0RmllbGRLZXlEb3duKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LmtleUlkZW50
aWZpZXIgPT09ICJTaGlmdCIpCi0gICAgICAgICAgICB0aGlzLl9zZWFyY2hCYWNrd2FyZHMgPSB0
cnVlOwotICAgICAgICBlbHNlIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiKQot
ICAgICAgICAgICAgdGhpcy5fc2VhcmNoS2V5UHJlc3NlZCA9IHRydWU7Ci0gICAgfQotCi0gICAg
X2lucHV0RmllbGRLZXlVcChldmVudCkKLSAgICB7Ci0gICAgICAgIGlmIChldmVudC5rZXlJZGVu
dGlmaWVyID09PSAiU2hpZnQiKQotICAgICAgICAgICAgdGhpcy5fc2VhcmNoQmFja3dhcmRzID0g
ZmFsc2U7Ci0gICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJFbnRlciIp
Ci0gICAgICAgICAgICB0aGlzLl9zZWFyY2hLZXlQcmVzc2VkID0gZmFsc2U7Ci0gICAgfQotCiAg
ICAgX2lucHV0RmllbGRTZWFyY2goZXZlbnQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5faW5w
dXRGaWVsZC52YWx1ZSkgewogICAgICAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFs
dWUgIT09IHRoaXMuc2VhcmNoUXVlcnkpIHsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZGVs
ZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJQZXJmb3JtU2VhcmNoID09
PSAiZnVuY3Rpb24iKQogICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFu
bmVyUGVyZm9ybVNlYXJjaCh0aGlzLCB0aGlzLnNlYXJjaFF1ZXJ5KTsKLSAgICAgICAgICAgIH0g
ZWxzZSBpZiAodGhpcy5fc2VhcmNoS2V5UHJlc3NlZCAmJiB0aGlzLl9udW1iZXJPZlJlc3VsdHMg
PiAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3NlYXJjaEJhY2t3YXJkcykgewotICAg
ICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVn
YXRlLmZpbmRCYW5uZXJSZXZlYWxQcmV2aW91c1Jlc3VsdCA9PT0gImZ1bmN0aW9uIikKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJSZXZlYWxQcmV2aW91
c1Jlc3VsdCh0aGlzKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICBpZiAodGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5u
ZXJSZXZlYWxOZXh0UmVzdWx0ID09PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclJldmVhbE5leHRSZXN1bHQodGhpcyk7Ci0gICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgdGhpcy5udW1iZXJPZlJlc3VsdHMgPSBudWxsOwotCiAgICAgICAgICAgICBpZiAodGhpcy5f
ZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJTZWFyY2hDbGVhcmVk
ID09PSAiZnVuY3Rpb24iKQogICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5u
ZXJTZWFyY2hDbGVhcmVkKHRoaXMpOwogICAgICAgICB9Ci0KICAgICAgICAgdGhpcy5fcHJldmlv
dXNTZWFyY2hWYWx1ZSA9IHRoaXMuc2VhcmNoUXVlcnk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRW
aWV3LmpzCmluZGV4IDIxODg2YzJlYmEzMGRjNjYwMzcyY2NiMTZkNmFjNjQ3NDNmODQ1YTkuLjAx
MjdkNTc2ZjZhYWYzNzk2OGUyMTFmY2M1MTYzNDdiMzYxNjNjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRW
aWV3LmpzCkBAIC01Nyw4ICs1Nyw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNs
YXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAg
IHRoaXMuX2xvZ1ZpZXdDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0TG9n
Vmlld0NvbnRyb2xsZXIodGhpcy5tZXNzYWdlc0VsZW1lbnQsIHRoaXMuZWxlbWVudCwgdGhpcy5w
cm9tcHQsIHRoaXMsICJjb25zb2xlLXByb21wdC1oaXN0b3J5Iik7CiAgICAgICAgIHRoaXMuX2xh
c3RNZXNzYWdlVmlldyA9IG51bGw7CiAKLSAgICAgICAgdGhpcy5fc2VhcmNoQmFyID0gbmV3IFdl
Ykluc3BlY3Rvci5TZWFyY2hCYXIoImxvZy1zZWFyY2gtYmFyIiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJGaWx0ZXIgQ29uc29sZSBMb2ciKSwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX3NlYXJjaEJh
ci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TZWFyY2hCYXIuRXZlbnQuVGV4dENoYW5n
ZWQsIHRoaXMuX3NlYXJjaFRleHREaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICB0aGlzLl9maW5k
QmFubmVyID0gbmV3IFdlYkluc3BlY3Rvci5GaW5kQmFubmVyKHRoaXMsICJjb25zb2xlLWZpbmQt
YmFubmVyIiwgdHJ1ZSk7CiAKICAgICAgICAgdmFyIHNjb3BlQmFySXRlbXMgPSBbCiAgICAgICAg
ICAgICBuZXcgV2ViSW5zcGVjdG9yLlNjb3BlQmFySXRlbShXZWJJbnNwZWN0b3IuTG9nQ29udGVu
dFZpZXcuU2NvcGVzLkFsbCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJBbGwiKSwgdHJ1ZSksCkBA
IC05MSw3ICs5MCw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0Nv
bnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAKICAgICBnZXQgbmF2aWdh
dGlvbkl0ZW1zKCkKICAgICB7Ci0gICAgICAgIHZhciBuYXZpZ2F0aW9uSXRlbXMgPSBbdGhpcy5f
c2VhcmNoQmFyLCB0aGlzLl9zY29wZUJhciwgdGhpcy5fY2xlYXJMb2dOYXZpZ2F0aW9uSXRlbV07
CisgICAgICAgIHZhciBuYXZpZ2F0aW9uSXRlbXMgPSBbdGhpcy5fZmluZEJhbm5lciwgdGhpcy5f
c2NvcGVCYXIsIHRoaXMuX2NsZWFyTG9nTmF2aWdhdGlvbkl0ZW1dOwogICAgICAgICBpZiAoV2Vi
SW5zcGVjdG9yLmlzU2hvd2luZ1NwbGl0Q29uc29sZSgpKQogICAgICAgICAgICAgbmF2aWdhdGlv
bkl0ZW1zLnB1c2godGhpcy5fc2hvd0NvbnNvbGVUYWJOYXZpZ2F0aW9uSXRlbSk7CiAgICAgICAg
IHJldHVybiBuYXZpZ2F0aW9uSXRlbXM7CkBAIC0xODgsNyArMTg3LDcgQEAgV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuQ29udGVudFYKICAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgdGhpcy5fc2VhcmNoQmFyLmZvY3VzKCk7CisgICAgICAgIHRoaXMuX2Zp
bmRCYW5uZXIuZm9jdXMoKTsKICAgICB9CiAKICAgICBnZXQgc3VwcG9ydHNTYXZlKCkKQEAgLTIx
Nyw2ICsyMTYsMTAgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29u
dGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKICAgICB9CiAKKyAgICBmaW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1
bHQoKSB7CisgICAgICAgIHRoaXMuaGlnaGxpZ2h0UHJldmlvdXNTZWFyY2hNYXRjaCgpOworICAg
IH0KKwogICAgIGhpZ2hsaWdodFByZXZpb3VzU2VhcmNoTWF0Y2goKQogICAgIHsKICAgICAgICAg
aWYgKCF0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgfHwgaXNFbXB0eU9iamVjdCh0aGlzLl9zZWFyY2hN
YXRjaGVzKSkKQEAgLTIyNiw2ICsyMjksMTEgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3
ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAg
ICAgICAgdGhpcy5faGlnaGxpZ2h0U2VhcmNoTWF0Y2hBdEluZGV4KGluZGV4IC0gMSk7CiAgICAg
fQogCisgICAgZmluZEJhbm5lclJldmVhbE5leHRSZXN1bHQoKQorICAgIHsKKyAgICAgICAgdGhp
cy5oaWdobGlnaHROZXh0U2VhcmNoTWF0Y2goKTsKKyAgICB9CisKICAgICBoaWdobGlnaHROZXh0
U2VhcmNoTWF0Y2goKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLnNlYXJjaEluUHJvZ3Jlc3Mg
fHwgaXNFbXB0eU9iamVjdCh0aGlzLl9zZWFyY2hNYXRjaGVzKSkKQEAgLTIzNSw3ICsyNDMsNyBA
QCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRl
bmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICB0aGlzLl9oaWdobGlnaHRTZWFyY2hN
YXRjaEF0SW5kZXgoaW5kZXgpOwogICAgIH0KIAotICAgIHNlYXJjaEJhcldhbnRzVG9Mb3NlRm9j
dXMoc2VhcmNoQmFyKQorICAgIGZpbmRCYW5uZXJXYW50c1RvTG9zZUZvY3VzKGZpbmRCYW5uZXIp
CiAgICAgewogICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5sZW5ndGgpCiAgICAg
ICAgICAgICB0aGlzLm1lc3NhZ2VzRWxlbWVudC5mb2N1cygpOwpAQCAtMjQzLDEzICsyNTEsNiBA
QCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRl
bmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICAgICAgdGhpcy5wcm9tcHQuZm9jdXMo
KTsKICAgICB9CiAKLSAgICBzZWFyY2hCYXJEaWRBY3RpdmF0ZShzZWFyY2hCYXIpCi0gICAgewot
ICAgICAgICBpZiAoIWlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykpCi0gICAgICAg
ICAgICB0aGlzLl9oaWdobGlnaHRTZWFyY2hNYXRjaEF0SW5kZXgoMCk7Ci0gICAgICAgIHRoaXMu
cHJvbXB0LmZvY3VzKCk7Ci0gICAgfQotCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX2Zvcm1hdE1l
c3NhZ2VzQXNEYXRhKG9ubHlTZWxlY3RlZCkKQEAgLTY2MSw3ICs2NjIsNiBAQCBXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5Db250ZW50VgogICAgIF9zY29wZUJhclNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKICAg
ICB7CiAgICAgICAgIHZhciBpdGVtID0gdGhpcy5fc2NvcGVCYXIuc2VsZWN0ZWRJdGVtc1swXTsK
LSAgICAgICAgCiAgICAgICAgIGlmIChpdGVtLmlkID09PSBXZWJJbnNwZWN0b3IuTG9nQ29udGVu
dFZpZXcuU2NvcGVzLkFsbCkgewogICAgICAgICAgICAgZm9yICh2YXIgaXRlbSBvZiB0aGlzLl9z
Y29wZUJhci5pdGVtcykKICAgICAgICAgICAgICAgICBpdGVtLmVsZW1lbnQuY2xhc3NMaXN0LnJl
bW92ZSgidW5yZWFkIik7CkBAIC02OTQsNyArNjk0LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRl
bnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVu
dFYKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5fcGVy
Zm9ybVNlYXJjaCgpOworICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKCIiKTsKICAgICB9CiAK
ICAgICBfa2V5RG93bihldmVudCkKQEAgLTg0OSwxOCArODQ5LDMxIEBAIFdlYkluc3BlY3Rvci5M
b2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9y
LkNvbnRlbnRWCiAgICAgICAgICAgICBmb2N1c2FibGVFbGVtZW50c1tpXS5yZW1vdmVBdHRyaWJ1
dGUoInRhYmluZGV4Iik7CiAgICAgfQogCi0gICAgX3NlYXJjaFRleHREaWRDaGFuZ2UoZXZlbnQp
CisgICAgZmluZEJhbm5lclBlcmZvcm1TZWFyY2goZmluZEJhbm5lciwgc2VhcmNoVGVybXMpCiAg
ICAgewotICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKCk7CisgICAgICAgIHRoaXMuX3BlcmZv
cm1TZWFyY2goc2VhcmNoVGVybXMpOwogICAgIH0KIAotICAgIF9wZXJmb3JtU2VhcmNoKCkKKyAg
ICBmaW5kQmFubmVyU2VhcmNoQ2xlYXJlZCgpCisgICAgeworICAgICAgICB0aGlzLl9wZXJmb3Jt
U2VhcmNoKCIiKTsKKyAgICB9CisKKyAgICByZXZlYWxOZXh0U2VhcmNoUmVzdWx0KCkKKyAgICB7
CisgICAgICAgIHRoaXMuZmluZEJhbm5lclJldmVhbE5leHRSZXN1bHQoKTsKKyAgICB9CisKKyAg
ICByZXZlYWxQcmV2aW91c1NlYXJjaFJlc3VsdCgpCisgICAgeworICAgICAgICB0aGlzLmZpbmRC
YW5uZXJSZXZlYWxQcmV2aW91c1Jlc3VsdCgpOworICAgIH0KKworICAgIF9wZXJmb3JtU2VhcmNo
KHNlYXJjaFRlcm1zKQogICAgIHsKICAgICAgICAgaWYgKCFpc0VtcHR5T2JqZWN0KHRoaXMuX3Nl
YXJjaEhpZ2hsaWdodERPTUNoYW5nZXMpKQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnJldmVy
dERvbUNoYW5nZXModGhpcy5fc2VhcmNoSGlnaGxpZ2h0RE9NQ2hhbmdlcyk7CiAKLSAgICAgICAg
dmFyIHNlYXJjaFRlcm1zID0gdGhpcy5fc2VhcmNoQmFyLnRleHQ7Ci0KICAgICAgICAgaWYgKHNl
YXJjaFRlcm1zID09PSAiIikgewogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGVkU2Vh
cmNoTWF0Y2g7CiAgICAgICAgICAgICB0aGlzLl9tYXRjaGluZ1NlYXJjaEVsZW1lbnRzID0gW107
CkBAIC04NzMsNiArODg2LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3Mg
TG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgdGhp
cy5fc2VhcmNoSGlnaGxpZ2h0RE9NQ2hhbmdlcyA9IFtdOwogICAgICAgICB0aGlzLl9zZWFyY2hN
YXRjaGVzID0gW107CiAgICAgICAgIHRoaXMuX3NlbGVjdGVkU2VhcmNoTWF0aElzVmFsaWQgPSBm
YWxzZTsKKyAgICAgICAgbGV0IG51bWJlck9mUmVzdWx0cyA9IDA7CiAKICAgICAgICAgdmFyIHNl
YXJjaFJlZ2V4ID0gbmV3IFJlZ0V4cChzZWFyY2hUZXJtcy5lc2NhcGVGb3JSZWdFeHAoKSwgImdp
Iik7CiAgICAgICAgIHRoaXMuX3VuZmlsdGVyZWRNZXNzYWdlRWxlbWVudHMoKS5mb3JFYWNoKGZ1
bmN0aW9uKG1lc3NhZ2UpIHsKQEAgLTg4MCw2ICs4OTQsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29u
dGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250
ZW50VgogICAgICAgICAgICAgdmFyIHRleHQgPSBtZXNzYWdlLnRleHRDb250ZW50OwogICAgICAg
ICAgICAgdmFyIG1hdGNoID0gc2VhcmNoUmVnZXguZXhlYyh0ZXh0KTsKICAgICAgICAgICAgIHdo
aWxlIChtYXRjaCkgeworICAgICAgICAgICAgICAgIG51bWJlck9mUmVzdWx0cysrOwogICAgICAg
ICAgICAgICAgIG1hdGNoUmFuZ2VzLnB1c2goeyBvZmZzZXQ6IG1hdGNoLmluZGV4LCBsZW5ndGg6
IG1hdGNoWzBdLmxlbmd0aCB9KTsKICAgICAgICAgICAgICAgICBtYXRjaCA9IHNlYXJjaFJlZ2V4
LmV4ZWModGV4dCk7CiAgICAgICAgICAgICB9CkBAIC04OTgsNiArOTEzLDggQEAgV2ViSW5zcGVj
dG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuQ29udGVudFYKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkU2VhcmNoTWF0Y2guaGln
aGxpZ2h0LmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVj
dGVkU3R5bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGVkU2Vh
cmNoTWF0Y2g7CiAgICAgICAgIH0KKworICAgICAgICB0aGlzLl9maW5kQmFubmVyLm51bWJlck9m
UmVzdWx0cyA9IG51bWJlck9mUmVzdWx0czsKICAgICB9CiAKICAgICBfaGlnaGxpZ2h0UmFuZ2Vz
KG1lc3NhZ2UsIG1hdGNoUmFuZ2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoQmFyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoQmFyLmpzCmluZGV4IGIyZGRjNzBhYTExOGRlYmRk
OGZiZGM3MDFlNjA1YjFmZjgxN2MzMmMuLjcxYzFhYTk1MGZkMGM5OGY5NjlmYzAzN2I2NDU0MzZi
ZTljZjFmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NlYXJjaEJhci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TZWFyY2hCYXIuanMKQEAgLTYxLDggKzYxLDExIEBAIFdlYkluc3BlY3Rvci5T
ZWFyY2hCYXIgPSBjbGFzcyBTZWFyY2hCYXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuTmF2aWdhdGlv
bkl0ZW0KIAogICAgIGZvY3VzKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3NlYXJjaElucHV0LmZv
Y3VzKCk7Ci0gICAgICAgIHRoaXMuX3NlYXJjaElucHV0LnNlbGVjdCgpOworICAgICAgICAvLyBG
SVhNRTogV29ya2Fyb3VuZCBmb3I6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDk1MDQ+IENhcmV0
IG1pc3NpbmcgZnJvbSA8aW5wdXQ+IGFmdGVyIGNsZWFyaW5nIHRleHQgYW5kIGNhbGxpbmcgc2Vs
ZWN0KCkKKyAgICAgICAgaWYgKCF0aGlzLl9zZWFyY2hJbnB1dC52YWx1ZS5sZW5ndGgpCisgICAg
ICAgICAgICB0aGlzLl9zZWFyY2hJbnB1dC5mb2N1cygpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0aGlzLl9zZWFyY2hJbnB1dC5zZWxlY3QoKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRl
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262131</attachid>
            <date>2015-09-29 19:05:05 -0700</date>
            <delta_ts>2015-09-30 10:23:26 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-149505-20150930030440.patch</filename>
            <type>text/plain</type>
            <size>15793</size>
            <attacher name="João Oliveira">hello</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA2
ZTI1ODA4YTQ2YjA2MWJhMzc0ZDczMmIyOWVhMzgxZTQyZjVjM2JhLi5iMTQ2Mjc0MjllYTllZGQx
Y2ZhY2I3NTY5ZTY3NmM3M2E0MmE5YTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAxNS0wOS0yOSAgSm/Do28gT2xpdmVpcmEgIDxoZWxsb0BqeHMucHQ+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBTZWFyY2hCYXIgc2hvdWxkIHdvcmsgbW9y
ZSBsaWtlIENvbnRlbnRCcm93c2VyIEZpbmRCYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnNvbGUgdGFiIG5vdyB1c2VzIGZpbmRCYW5uZXIs
IGFkYXB0ZWQgTG9nQ29udGVudFZpZXcgdG8gdXNlIGZpbmRCYW5uZXIsCisgICAgICAgIGFuZCBm
aW5kQmFubmVyIHRvIGJlIG1vcmUgYWdub3N0aWMgdG8gYm90aCB1c2VjYXNlcywgZWl0aGVyIGFz
IGZpeGVkLCBvbiBjb25zb2xlIHRhYiwKKyAgICAgICAgYW5kIGhpZGVhYmxlIG9uIG90aGVyIGlu
c3BlY3RvciB0YWJzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlRmluZEJhbm5lci5jc3M6IEFkZGVkLgor
ICAgICAgICAoYm9keS53aW5kb3ctaW5hY3RpdmUgLmNvbnNvbGUtZmluZC1iYW5uZXIpOgorICAg
ICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIuc2hvd2luZyk6CisgICAgICAgICgubm8tZmluZC1i
YW5uZXItdHJhbnNpdGlvbjptYXRjaGVzKC5jb25zb2xlLWZpbmQtYmFubmVyLCAuc3VwcG9ydHMt
ZmluZC1iYW5uZXIpKToKKyAgICAgICAgKC5zdXBwb3J0cy1maW5kLWJhbm5lcik6CisgICAgICAg
ICguc3VwcG9ydHMtZmluZC1iYW5uZXIuc2hvd2luZy1maW5kLWJhbm5lcik6CisgICAgICAgICgu
Y29uc29sZS1maW5kLWJhbm5lciA+IDpmaXJzdC1jaGlsZCk6CisgICAgICAgICguY29uc29sZS1m
aW5kLWJhbm5lciA+IDpsYXN0LWNoaWxkKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVy
ID4gaW5wdXRbdHlwZT0ic2VhcmNoIl0pOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIg
PiBidXR0b24pOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24gPiAuZ2x5
cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b246ZGlzYWJsZWQgPiAu
Z2x5cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b246YWN0aXZlOm5v
dCg6ZGlzYWJsZWQpKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uOmRp
c2FibGVkKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRl
ZC5sZWZ0KToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRl
ZC5sZWZ0ID4gLmdseXBoKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9u
LnNlZ21lbnRlZC5sZWZ0OmFjdGl2ZTpub3QoOmRpc2FibGVkKSA+IC5nbHlwaCk6CisgICAgICAg
ICguY29uc29sZS1maW5kLWJhbm5lciA+IGJ1dHRvbi5zZWdtZW50ZWQucmlnaHQpOgorICAgICAg
ICAoLmNvbnNvbGUtZmluZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkLnJpZ2h0ID4gLmdseXBo
KToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFubmVyID4gYnV0dG9uLnNlZ21lbnRlZC5yaWdo
dDphY3RpdmU6bm90KDpkaXNhYmxlZCkgPiAuZ2x5cGgpOgorICAgICAgICAoLmNvbnNvbGUtZmlu
ZC1iYW5uZXIgPiBidXR0b24uc2VnbWVudGVkKToKKyAgICAgICAgKC5jb25zb2xlLWZpbmQtYmFu
bmVyID4gYnV0dG9uLnNlZ21lbnRlZDphY3RpdmUpOgorICAgICAgICAoLmNvbnNvbGUtZmluZC1i
YW5uZXIgPiBsYWJlbCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJv
d3Nlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3Nlcik6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkZpbmRCYW5uZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIucHJvdG90
eXBlLmZvY3VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5s
b3NlRm9jdXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIucHJvdG90eXBlLl9p
bnB1dEZpZWxkS2V5RG93bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJh
bm5lci5wcm90b3R5cGUuX2lucHV0RmllbGRLZXlVcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRmluZEJhbm5lci5wcm90b3R5cGUuX2lucHV0RmllbGRTZWFyY2gpOiBEZWxldGVk
LgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5maW5kQmFu
bmVyUmV2ZWFsTmV4dFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZp
ZXcucHJvdG90eXBlLl9maWx0ZXJNZXNzYWdlRWxlbWVudHMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5maW5kQmFubmVyUGVyZm9ybVNlYXJjaCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJT
ZWFyY2hDbGVhcmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90
b3R5cGUucmV2ZWFsTmV4dFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcucHJvdG90eXBlLnJldmVhbFByZXZpb3VzU2VhcmNoUmVzdWx0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3BlcmZvcm1TZWFyY2gp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5zZWFyY2hC
YXJEaWRBY3RpdmF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVu
dFZpZXcucHJvdG90eXBlLl9zZWFyY2hUZXh0RGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaEJhci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TZWFyY2hCYXIucHJvdG90eXBlLmZvY3VzKToKKwogMjAxNS0wOS0yOCAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEhpdHRp
bmcgRVNDIHdoaWxlIGVkaXRpbmcgZWxlbWVudCB0YWcgbmFtZSBsZWF2ZXMgZWxlbWVudCBpbiBi
YWQgc3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0ZpbmRCYW5uZXIuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRmluZEJhbm5lci5jc3MKaW5kZXggMmMzOTViN2IyYzNhMWRmZjhiNWUxYzFmMTQx
NjkyNTdkNDIxMjUxNC4uNTVmMDE0NTBmODQ0ZGVkMWM4MzM2YTViMTk4MGFmZTFmMjUxNDhmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmlu
ZEJhbm5lci5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvRmluZEJhbm5lci5jc3MKQEAgLTE5NSwzICsxOTUsOSBAQCBib2R5LndpbmRvdy1pbmFjdGl2
ZSAuZmluZC1iYW5uZXIgewogICAgIG1hcmdpbjogMCA2cHg7CiAgICAgbGluZS1oZWlnaHQ6IDIx
cHg7CiB9CisKKy5maW5kLWJhbm5lci5jb25zb2xlLWZpbmQtYmFubmVyIHsKKyAgICBwb3NpdGlv
bjogcmVsYXRpdmU7CisgICAgdG9wOiBhdXRvOworICAgIGJvcmRlcjogMDsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVy
LmpzCmluZGV4IGFiYWQ3NTBmMzlhNjU1YWM5ODJjMWE5ZTQzZjA3ZmM1ZTQyN2I1MGQuLmYyYzIy
MmY0OTBmOWE2MTcyYzM0OGJmYmQ1YjFjYTcwNjM4NDJmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qcwpAQCAt
MjMsMTcgKzIzLDE5IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFu
bmVyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk5hdmlnYXRpb25JdGVtCiB7Ci0gICAgY29uc3RydWN0
b3IoZGVsZWdhdGUsIGVsZW1lbnQpCisgICAgY29uc3RydWN0b3IoZGVsZWdhdGUsIGNsYXNzTmFt
ZSwgZml4ZWQgPSBmYWxzZSkKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAgdGhp
cy5fZGVsZWdhdGUgPSBkZWxlZ2F0ZSB8fCBudWxsOwogCi0gICAgICAgIHRoaXMuX2VsZW1lbnQg
PSBlbGVtZW50IHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0aGlz
Ll9lbGVtZW50LmNsYXNzTGlzdC5hZGQoImZpbmQtYmFubmVyIik7CiAKKyAgICAgICAgaWYgKGNs
YXNzTmFtZSAmJiBjbGFzc05hbWUubGVuZ3RoKQorICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5j
bGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7CisKICAgICAgICAgdGhpcy5fcmVzdWx0Q291bnRMYWJl
bCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7CiAgICAgICAgIHRoaXMuX2VsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5fcmVzdWx0Q291bnRMYWJlbCk7CiAKQEAgLTY1LDIyICs2Nywy
NyBAQCBXZWJJbnNwZWN0b3IuRmluZEJhbm5lciA9IGNsYXNzIEZpbmRCYW5uZXIgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuaW5jcmVtZW50YWwg
PSB0cnVlOwogICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLnNldEF0dHJpYnV0ZSgicmVzdWx0cyIs
IDUpOwogICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLnNldEF0dHJpYnV0ZSgiYXV0b3NhdmUiLCAi
aW5zcGVjdG9yLXNlYXJjaCIpOwotICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLmFkZEV2ZW50TGlz
dGVuZXIoImtleWRvd24iLCB0aGlzLl9pbnB1dEZpZWxkS2V5RG93bi5iaW5kKHRoaXMpLCBmYWxz
ZSk7Ci0gICAgICAgIHRoaXMuX2lucHV0RmllbGQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCB0
aGlzLl9pbnB1dEZpZWxkS2V5VXAuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgICAgICB0aGlzLl9p
bnB1dEZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoInNlYXJjaCIsIHRoaXMuX2lucHV0RmllbGRTZWFy
Y2guYmluZCh0aGlzKSwgZmFsc2UpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX2lucHV0RmllbGQpOwogCi0gICAgICAgIHRoaXMuX2RvbmVCdXR0b24gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKLSAgICAgICAgdGhpcy5fZG9uZUJ1dHRvbi50ZXh0
Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9uZSIpOwotICAgICAgICB0aGlzLl9k
b25lQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fZG9uZUJ1dHRvbkNsaWNr
ZWQuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
ZG9uZUJ1dHRvbik7CisgICAgICAgIGlmIChmaXhlZCkgeworICAgICAgICAgICAgdGhpcy5faGlk
ZUtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQobnVs
bCwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5LkVzY2FwZSwgdGhpcy5sb3NlRm9j
dXMuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7CisgICAgICAgICAgICB0aGlzLl9lbGVtZW50
LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGxldCBkb25lQnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIp
OworICAgICAgICAgICAgZG9uZUJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkRvbmUiKTsKKyAgICAgICAgICAgIGRvbmVCdXR0b25FbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fZG9uZUJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSk7
CisgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGRvbmVCdXR0b25FbGVtZW50
KTsKKyAgICAgICAgICAgIHRoaXMuX2hpZGVLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3Bl
Y3Rvci5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
LktleS5Fc2NhcGUsIHRoaXMuaGlkZS5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKKyAgICAg
ICAgfQorCiAKICAgICAgICAgdGhpcy5fbnVtYmVyT2ZSZXN1bHRzID0gbnVsbDsKICAgICAgICAg
dGhpcy5fc2VhcmNoQmFja3dhcmRzID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3NlYXJjaEtleVBy
ZXNzZWQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fcHJldmlvdXNTZWFyY2hWYWx1ZSA9ICIiOwog
Ci0gICAgICAgIHRoaXMuX2hpZGVLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5L
ZXlib2FyZFNob3J0Y3V0KG51bGwsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleS5F
c2NhcGUsIHRoaXMuaGlkZS5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKKwogICAgICAgICB0
aGlzLl9wb3B1bGF0ZUZpbmRLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1h
bmRPckNvbnRyb2wsICJFIiwgdGhpcy5fcG9wdWxhdGVTZWFyY2hRdWVyeUZyb21TZWxlY3Rpb24u
YmluZCh0aGlzKSk7CiAgICAgICAgIHRoaXMuX3BvcHVsYXRlRmluZEtleWJvYXJkU2hvcnRjdXQu
aW1wbGljaXRseVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9maW5kTmV4
dEtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQoV2Vi
SW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIkci
LCB0aGlzLl9uZXh0UmVzdWx0QnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpKTsKQEAgLTE4NSw2ICsx
OTIsMjEgQEAgV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudC5jbGFz
c0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIuU2hvd2luZ1N0eWxlQ2xhc3NO
YW1lKTsKICAgICB9CiAKKyAgICBmb2N1cygpCisgICAgeworICAgICAgICAvLyBGSVhNRTogV29y
a2Fyb3VuZCBmb3I6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDk1MDQ+IENhcmV0IG1pc3Npbmcg
ZnJvbSA8aW5wdXQ+IGFmdGVyIGNsZWFyaW5nIHRleHQgYW5kIGNhbGxpbmcgc2VsZWN0KCkKKyAg
ICAgICAgaWYgKCF0aGlzLl9pbnB1dEZpZWxkLnZhbHVlLmxlbmd0aCkKKyAgICAgICAgICAgIHRo
aXMuX2lucHV0RmllbGQuZm9jdXMoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5f
aW5wdXRGaWVsZC5zZWxlY3QoKTsKKyAgICB9CisKKyAgICBsb3NlRm9jdXMoKQorICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFu
bmVyV2FudHNUb0xvc2VGb2N1cyA9PT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAgIHRoaXMuX2Rl
bGVnYXRlLmZpbmRCYW5uZXJXYW50c1RvTG9zZUZvY3VzKCk7CisgICAgfQorCiAgICAgc2hvdygp
CiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl90YXJnZXRFbGVtZW50KTsKQEAg
LTI0Myw0NCArMjY1LDE4IEBAIFdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJh
bm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgIC8vIFByaXZhdGUKIAotICAg
IF9pbnB1dEZpZWxkS2V5RG93bihldmVudCkKLSAgICB7Ci0gICAgICAgIGlmIChldmVudC5rZXlJ
ZGVudGlmaWVyID09PSAiU2hpZnQiKQotICAgICAgICAgICAgdGhpcy5fc2VhcmNoQmFja3dhcmRz
ID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkVudGVy
IikKLSAgICAgICAgICAgIHRoaXMuX3NlYXJjaEtleVByZXNzZWQgPSB0cnVlOwotICAgIH0KLQot
ICAgIF9pbnB1dEZpZWxkS2V5VXAoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoZXZlbnQua2V5
SWRlbnRpZmllciA9PT0gIlNoaWZ0IikKLSAgICAgICAgICAgIHRoaXMuX3NlYXJjaEJhY2t3YXJk
cyA9IGZhbHNlOwotICAgICAgICBlbHNlIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50
ZXIiKQotICAgICAgICAgICAgdGhpcy5fc2VhcmNoS2V5UHJlc3NlZCA9IGZhbHNlOwotICAgIH0K
LQogICAgIF9pbnB1dEZpZWxkU2VhcmNoKGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
X2lucHV0RmllbGQudmFsdWUpIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NlYXJj
aFZhbHVlICE9PSB0aGlzLnNlYXJjaFF1ZXJ5KSB7CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMu
X2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUGVyZm9ybVNlYXJj
aCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuZmlu
ZEJhbm5lclBlcmZvcm1TZWFyY2godGhpcywgdGhpcy5zZWFyY2hRdWVyeSk7Ci0gICAgICAgICAg
ICB9IGVsc2UgaWYgKHRoaXMuX3NlYXJjaEtleVByZXNzZWQgJiYgdGhpcy5fbnVtYmVyT2ZSZXN1
bHRzID4gMCkgewotICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zZWFyY2hCYWNrd2FyZHMpIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9k
ZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQgPT09ICJmdW5jdGlvbiIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsUHJl
dmlvdXNSZXN1bHQodGhpcyk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5k
QmFubmVyUmV2ZWFsTmV4dFJlc3VsdCA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KHRoaXMpOwot
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIHRoaXMubnVtYmVyT2ZSZXN1bHRzID0gbnVsbDsKLQogICAgICAgICAgICAgaWYgKHRo
aXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xl
YXJlZCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5k
QmFubmVyU2VhcmNoQ2xlYXJlZCh0aGlzKTsKICAgICAgICAgfQotCiAgICAgICAgIHRoaXMuX3By
ZXZpb3VzU2VhcmNoVmFsdWUgPSB0aGlzLnNlYXJjaFF1ZXJ5OwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZp
ZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qcwppbmRleCAyMTg4NmMyZWJhMzBkYzY2MDM3MmNjYjE2ZDZhYzY0NzQzZjg0NWE5
Li45YWM2OGU1MTI2MWU1NWZkOTNjN2E0ZGM2Yjk1YWU4OGFkOTYwZTdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qcwpAQCAtNTcsOCArNTcsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcg
PSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAg
ICAgICB0aGlzLl9sb2dWaWV3Q29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dExvZ1ZpZXdDb250cm9sbGVyKHRoaXMubWVzc2FnZXNFbGVtZW50LCB0aGlzLmVsZW1lbnQsIHRo
aXMucHJvbXB0LCB0aGlzLCAiY29uc29sZS1wcm9tcHQtaGlzdG9yeSIpOwogICAgICAgICB0aGlz
Ll9sYXN0TWVzc2FnZVZpZXcgPSBudWxsOwogCi0gICAgICAgIHRoaXMuX3NlYXJjaEJhciA9IG5l
dyBXZWJJbnNwZWN0b3IuU2VhcmNoQmFyKCJsb2ctc2VhcmNoLWJhciIsIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiRmlsdGVyIENvbnNvbGUgTG9nIiksIHRoaXMpOwotICAgICAgICB0aGlzLl9zZWFy
Y2hCYXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2VhcmNoQmFyLkV2ZW50LlRleHRD
aGFuZ2VkLCB0aGlzLl9zZWFyY2hUZXh0RGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgdGhpcy5f
ZmluZEJhbm5lciA9IG5ldyBXZWJJbnNwZWN0b3IuRmluZEJhbm5lcih0aGlzLCAiY29uc29sZS1m
aW5kLWJhbm5lciIsIHRydWUpOwogCiAgICAgICAgIHZhciBzY29wZUJhckl0ZW1zID0gWwogICAg
ICAgICAgICAgbmV3IFdlYkluc3BlY3Rvci5TY29wZUJhckl0ZW0oV2ViSW5zcGVjdG9yLkxvZ0Nv
bnRlbnRWaWV3LlNjb3Blcy5BbGwsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWxsIiksIHRydWUp
LApAQCAtOTEsNyArOTAsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBM
b2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogCiAgICAgZ2V0IG5h
dmlnYXRpb25JdGVtcygpCiAgICAgewotICAgICAgICB2YXIgbmF2aWdhdGlvbkl0ZW1zID0gW3Ro
aXMuX3NlYXJjaEJhciwgdGhpcy5fc2NvcGVCYXIsIHRoaXMuX2NsZWFyTG9nTmF2aWdhdGlvbkl0
ZW1dOworICAgICAgICB2YXIgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX2ZpbmRCYW5uZXIsIHRo
aXMuX3Njb3BlQmFyLCB0aGlzLl9jbGVhckxvZ05hdmlnYXRpb25JdGVtXTsKICAgICAgICAgaWYg
KFdlYkluc3BlY3Rvci5pc1Nob3dpbmdTcGxpdENvbnNvbGUoKSkKICAgICAgICAgICAgIG5hdmln
YXRpb25JdGVtcy5wdXNoKHRoaXMuX3Nob3dDb25zb2xlVGFiTmF2aWdhdGlvbkl0ZW0pOwogICAg
ICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1zOwpAQCAtMTg4LDcgKzE4Nyw3IEBAIFdlYkluc3Bl
Y3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5z
cGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIGlmICghdGhpcy52aXNpYmxlKQogICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3NlYXJjaEJhci5mb2N1cygpOworICAgICAgICB0aGlz
Ll9maW5kQmFubmVyLmZvY3VzKCk7CiAgICAgfQogCiAgICAgZ2V0IHN1cHBvcnRzU2F2ZSgpCkBA
IC0yMTcsNiArMjE2LDEwIEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExv
Z0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfQogCisgICAgZmluZEJhbm5lclJldmVhbFByZXZpb3Vz
UmVzdWx0KCkgeworICAgICAgICB0aGlzLmhpZ2hsaWdodFByZXZpb3VzU2VhcmNoTWF0Y2goKTsK
KyAgICB9CisKICAgICBoaWdobGlnaHRQcmV2aW91c1NlYXJjaE1hdGNoKCkKICAgICB7CiAgICAg
ICAgIGlmICghdGhpcy5zZWFyY2hJblByb2dyZXNzIHx8IGlzRW1wdHlPYmplY3QodGhpcy5fc2Vh
cmNoTWF0Y2hlcykpCkBAIC0yMjYsNiArMjI5LDExIEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50
VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRW
CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFNlYXJjaE1hdGNoQXRJbmRleChpbmRleCAtIDEpOwog
ICAgIH0KIAorICAgIGZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KCkKKyAgICB7CisgICAgICAg
IHRoaXMuaGlnaGxpZ2h0TmV4dFNlYXJjaE1hdGNoKCk7CisgICAgfQorCiAgICAgaGlnaGxpZ2h0
TmV4dFNlYXJjaE1hdGNoKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zZWFyY2hJblByb2dy
ZXNzIHx8IGlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykpCkBAIC0yMzUsNyArMjQz
LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0U2Vh
cmNoTWF0Y2hBdEluZGV4KGluZGV4KTsKICAgICB9CiAKLSAgICBzZWFyY2hCYXJXYW50c1RvTG9z
ZUZvY3VzKHNlYXJjaEJhcikKKyAgICBmaW5kQmFubmVyV2FudHNUb0xvc2VGb2N1cyhmaW5kQmFu
bmVyKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMubGVuZ3RoKQog
ICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuZm9jdXMoKTsKQEAgLTI0MywxMyArMjUx
LDYgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgICAgIHRoaXMucHJvbXB0LmZv
Y3VzKCk7CiAgICAgfQogCi0gICAgc2VhcmNoQmFyRGlkQWN0aXZhdGUoc2VhcmNoQmFyKQotICAg
IHsKLSAgICAgICAgaWYgKCFpc0VtcHR5T2JqZWN0KHRoaXMuX3NlYXJjaE1hdGNoZXMpKQotICAg
ICAgICAgICAgdGhpcy5faGlnaGxpZ2h0U2VhcmNoTWF0Y2hBdEluZGV4KDApOwotICAgICAgICB0
aGlzLnByb21wdC5mb2N1cygpOwotICAgIH0KLQogICAgIC8vIFByaXZhdGUKIAogICAgIF9mb3Jt
YXRNZXNzYWdlc0FzRGF0YShvbmx5U2VsZWN0ZWQpCkBAIC04NDksMTggKzg1MCwzMSBAQCBXZWJJ
bnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdl
Ykluc3BlY3Rvci5Db250ZW50VgogICAgICAgICAgICAgZm9jdXNhYmxlRWxlbWVudHNbaV0ucmVt
b3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIpOwogICAgIH0KIAotICAgIF9zZWFyY2hUZXh0RGlkQ2hh
bmdlKGV2ZW50KQorICAgIGZpbmRCYW5uZXJQZXJmb3JtU2VhcmNoKGZpbmRCYW5uZXIsIHNlYXJj
aFRlcm1zKQorICAgIHsKKyAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaChzZWFyY2hUZXJtcyk7
CisgICAgfQorCisgICAgZmluZEJhbm5lclNlYXJjaENsZWFyZWQoKQogICAgIHsKICAgICAgICAg
dGhpcy5fcGVyZm9ybVNlYXJjaCgpOwogICAgIH0KIAotICAgIF9wZXJmb3JtU2VhcmNoKCkKKyAg
ICByZXZlYWxOZXh0U2VhcmNoUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRoaXMuZmluZEJhbm5l
clJldmVhbE5leHRSZXN1bHQoKTsKKyAgICB9CisKKyAgICByZXZlYWxQcmV2aW91c1NlYXJjaFJl
c3VsdCgpCisgICAgeworICAgICAgICB0aGlzLmZpbmRCYW5uZXJSZXZlYWxQcmV2aW91c1Jlc3Vs
dCgpOworICAgIH0KKworICAgIF9wZXJmb3JtU2VhcmNoKHNlYXJjaFRlcm1zID0gIiIpCiAgICAg
ewogICAgICAgICBpZiAoIWlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNoSGlnaGxpZ2h0RE9NQ2hh
bmdlcykpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucmV2ZXJ0RG9tQ2hhbmdlcyh0aGlzLl9z
ZWFyY2hIaWdobGlnaHRET01DaGFuZ2VzKTsKIAotICAgICAgICB2YXIgc2VhcmNoVGVybXMgPSB0
aGlzLl9zZWFyY2hCYXIudGV4dDsKLQogICAgICAgICBpZiAoc2VhcmNoVGVybXMgPT09ICIiKSB7
CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRjaDsKICAgICAgICAg
ICAgIHRoaXMuX21hdGNoaW5nU2VhcmNoRWxlbWVudHMgPSBbXTsKQEAgLTg3Myw2ICs4ODcsNyBA
QCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRl
bmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICB0aGlzLl9zZWFyY2hIaWdobGlnaHRE
T01DaGFuZ2VzID0gW107CiAgICAgICAgIHRoaXMuX3NlYXJjaE1hdGNoZXMgPSBbXTsKICAgICAg
ICAgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRoSXNWYWxpZCA9IGZhbHNlOworICAgICAgICBsZXQg
bnVtYmVyT2ZSZXN1bHRzID0gMDsKIAogICAgICAgICB2YXIgc2VhcmNoUmVnZXggPSBuZXcgUmVn
RXhwKHNlYXJjaFRlcm1zLmVzY2FwZUZvclJlZ0V4cCgpLCAiZ2kiKTsKICAgICAgICAgdGhpcy5f
dW5maWx0ZXJlZE1lc3NhZ2VFbGVtZW50cygpLmZvckVhY2goZnVuY3Rpb24obWVzc2FnZSkgewpA
QCAtODgwLDYgKzg5NSw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExv
Z0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgICAgICB2
YXIgdGV4dCA9IG1lc3NhZ2UudGV4dENvbnRlbnQ7CiAgICAgICAgICAgICB2YXIgbWF0Y2ggPSBz
ZWFyY2hSZWdleC5leGVjKHRleHQpOwogICAgICAgICAgICAgd2hpbGUgKG1hdGNoKSB7CisgICAg
ICAgICAgICAgICAgbnVtYmVyT2ZSZXN1bHRzKys7CiAgICAgICAgICAgICAgICAgbWF0Y2hSYW5n
ZXMucHVzaCh7IG9mZnNldDogbWF0Y2guaW5kZXgsIGxlbmd0aDogbWF0Y2hbMF0ubGVuZ3RoIH0p
OwogICAgICAgICAgICAgICAgIG1hdGNoID0gc2VhcmNoUmVnZXguZXhlYyh0ZXh0KTsKICAgICAg
ICAgICAgIH0KQEAgLTg5OCw2ICs5MTQsOCBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcg
PSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAg
ICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRjaC5oaWdobGlnaHQuY2xhc3NMaXN0LnJl
bW92ZShXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7
CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRjaDsKICAgICAgICAg
fQorCisgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIubnVtYmVyT2ZSZXN1bHRzID0gbnVtYmVyT2ZS
ZXN1bHRzOwogICAgIH0KIAogICAgIF9oaWdobGlnaHRSYW5nZXMobWVzc2FnZSwgbWF0Y2hSYW5n
ZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262181</attachid>
            <date>2015-09-30 10:23:36 -0700</date>
            <delta_ts>2015-09-30 16:22:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-149505-20150930182310.patch</filename>
            <type>text/plain</type>
            <size>14242</size>
            <attacher name="João Oliveira">hello</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA2
ZTI1ODA4YTQ2YjA2MWJhMzc0ZDczMmIyOWVhMzgxZTQyZjVjM2JhLi5hNGNmMTljNTUyZDg4YmNl
YTllOWFkYjVhOTFkMjNhYTYyOTY0Mjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNS0wOS0zMCAgSm/Do28gT2xpdmVpcmEgIDxoZWxsb0BqeHMucHQ+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBTZWFyY2hCYXIgc2hvdWxkIHdvcmsgbW9y
ZSBsaWtlIENvbnRlbnRCcm93c2VyIEZpbmRCYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnNvbGUgdGFiIG5vdyB1c2VzIGZpbmRCYW5uZXIs
IGFkYXB0ZWQgTG9nQ29udGVudFZpZXcgdG8gdXNlIGZpbmRCYW5uZXIsCisgICAgICAgIGFuZCBm
aW5kQmFubmVyIHRvIGJlIG1vcmUgYWdub3N0aWMgdG8gYm90aCB1c2VjYXNlcywgZWl0aGVyIGFz
IGZpeGVkLCBvbiBjb25zb2xlIHRhYiwKKyAgICAgICAgYW5kIGhpZGVhYmxlIG9uIG90aGVyIGlu
c3BlY3RvciB0YWJzLgorCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5u
ZXIuY3NzOgorICAgICAgICAoLmZpbmQtYmFubmVyLmNvbnNvbGUtZmluZC1iYW5uZXIpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaW5kQmFubmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLnBy
b3RvdHlwZS5mb2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5wcm90b3R5
cGUubG9zZUZvY3VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlw
ZS5faW5wdXRGaWVsZEtleURvd24pOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZp
bmRCYW5uZXIucHJvdG90eXBlLl9pbnB1dEZpZWxkS2V5VXApOiBEZWxldGVkLgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIucHJvdG90eXBlLl9pbnB1dEZpZWxkU2VhcmNoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmhhbmRsZUZpbmRFdmVu
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRC
YW5uZXJSZXZlYWxQcmV2aW91c1Jlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29u
dGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuZmluZEJhbm5lclBlcmZvcm1T
ZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5y
ZXZlYWxOZXh0U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50
Vmlldy5wcm90b3R5cGUucmV2ZWFsUHJldmlvdXNTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fcGVyZm9ybVNlYXJjaCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLnNlYXJjaEJhckRpZEFj
dGl2YXRlKTogRGVsZXRlZC4KKwogMjAxNS0wOS0yOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEhpdHRpbmcgRVNDIHdoaWxl
IGVkaXRpbmcgZWxlbWVudCB0YWcgbmFtZSBsZWF2ZXMgZWxlbWVudCBpbiBiYWQgc3RhdGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRC
YW5uZXIuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmlu
ZEJhbm5lci5jc3MKaW5kZXggMmMzOTViN2IyYzNhMWRmZjhiNWUxYzFmMTQxNjkyNTdkNDIxMjUx
NC4uNTVmMDE0NTBmODQ0ZGVkMWM4MzM2YTViMTk4MGFmZTFmMjUxNDhmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5jc3MK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5l
ci5jc3MKQEAgLTE5NSwzICsxOTUsOSBAQCBib2R5LndpbmRvdy1pbmFjdGl2ZSAuZmluZC1iYW5u
ZXIgewogICAgIG1hcmdpbjogMCA2cHg7CiAgICAgbGluZS1oZWlnaHQ6IDIxcHg7CiB9CisKKy5m
aW5kLWJhbm5lci5jb25zb2xlLWZpbmQtYmFubmVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7
CisgICAgdG9wOiBhdXRvOworICAgIGJvcmRlcjogMDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVyLmpzCmluZGV4IGFi
YWQ3NTBmMzlhNjU1YWM5ODJjMWE5ZTQzZjA3ZmM1ZTQyN2I1MGQuLmYyYzIyMmY0OTBmOWE2MTcy
YzM0OGJmYmQ1YjFjYTcwNjM4NDJmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qcwpAQCAtMjMsMTcgKzIzLDE5
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVj
dG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAorV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk5hdmlnYXRpb25JdGVtCiB7Ci0gICAgY29uc3RydWN0b3IoZGVsZWdhdGUs
IGVsZW1lbnQpCisgICAgY29uc3RydWN0b3IoZGVsZWdhdGUsIGNsYXNzTmFtZSwgZml4ZWQgPSBm
YWxzZSkKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAgdGhpcy5fZGVsZWdhdGUg
PSBkZWxlZ2F0ZSB8fCBudWxsOwogCi0gICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50IHx8
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmNs
YXNzTGlzdC5hZGQoImZpbmQtYmFubmVyIik7CiAKKyAgICAgICAgaWYgKGNsYXNzTmFtZSAmJiBj
bGFzc05hbWUubGVuZ3RoKQorICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRk
KGNsYXNzTmFtZSk7CisKICAgICAgICAgdGhpcy5fcmVzdWx0Q291bnRMYWJlbCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fcmVzdWx0Q291bnRMYWJlbCk7CiAKQEAgLTY1LDIyICs2NywyNyBAQCBXZWJJbnNw
ZWN0b3IuRmluZEJhbm5lciA9IGNsYXNzIEZpbmRCYW5uZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuaW5jcmVtZW50YWwgPSB0cnVlOwogICAg
ICAgICB0aGlzLl9pbnB1dEZpZWxkLnNldEF0dHJpYnV0ZSgicmVzdWx0cyIsIDUpOwogICAgICAg
ICB0aGlzLl9pbnB1dEZpZWxkLnNldEF0dHJpYnV0ZSgiYXV0b3NhdmUiLCAiaW5zcGVjdG9yLXNl
YXJjaCIpOwotICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoImtleWRv
d24iLCB0aGlzLl9pbnB1dEZpZWxkS2V5RG93bi5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0gICAgICAg
IHRoaXMuX2lucHV0RmllbGQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCB0aGlzLl9pbnB1dEZp
ZWxkS2V5VXAuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLmFk
ZEV2ZW50TGlzdGVuZXIoInNlYXJjaCIsIHRoaXMuX2lucHV0RmllbGRTZWFyY2guYmluZCh0aGlz
KSwgZmFsc2UpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2lucHV0
RmllbGQpOwogCi0gICAgICAgIHRoaXMuX2RvbmVCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJidXR0b24iKTsKLSAgICAgICAgdGhpcy5fZG9uZUJ1dHRvbi50ZXh0Q29udGVudCA9IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiRG9uZSIpOwotICAgICAgICB0aGlzLl9kb25lQnV0dG9uLmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fZG9uZUJ1dHRvbkNsaWNrZWQuYmluZCh0aGlz
KSk7Ci0gICAgICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZG9uZUJ1dHRvbik7
CisgICAgICAgIGlmIChmaXhlZCkgeworICAgICAgICAgICAgdGhpcy5faGlkZUtleWJvYXJkU2hv
cnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQuS2V5LkVzY2FwZSwgdGhpcy5sb3NlRm9jdXMuYmluZCh0aGlz
KSwgdGhpcy5fZWxlbWVudCk7CisgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5h
ZGQoY2xhc3NOYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxldCBkb25lQnV0
dG9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOworICAgICAgICAg
ICAgZG9uZUJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkRvbmUiKTsKKyAgICAgICAgICAgIGRvbmVCdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgdGhpcy5fZG9uZUJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSk7CisgICAgICAgICAg
ICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGRvbmVCdXR0b25FbGVtZW50KTsKKyAgICAgICAg
ICAgIHRoaXMuX2hpZGVLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2Fy
ZFNob3J0Y3V0KG51bGwsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUs
IHRoaXMuaGlkZS5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKKyAgICAgICAgfQorCiAKICAg
ICAgICAgdGhpcy5fbnVtYmVyT2ZSZXN1bHRzID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2VhcmNo
QmFja3dhcmRzID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3NlYXJjaEtleVByZXNzZWQgPSBmYWxz
ZTsKICAgICAgICAgdGhpcy5fcHJldmlvdXNTZWFyY2hWYWx1ZSA9ICIiOwogCi0gICAgICAgIHRo
aXMuX2hpZGVLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0
Y3V0KG51bGwsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUsIHRoaXMu
aGlkZS5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKKwogICAgICAgICB0aGlzLl9wb3B1bGF0
ZUZpbmRLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2ws
ICJFIiwgdGhpcy5fcG9wdWxhdGVTZWFyY2hRdWVyeUZyb21TZWxlY3Rpb24uYmluZCh0aGlzKSk7
CiAgICAgICAgIHRoaXMuX3BvcHVsYXRlRmluZEtleWJvYXJkU2hvcnRjdXQuaW1wbGljaXRseVBy
ZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9maW5kTmV4dEtleWJvYXJkU2hv
cnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQoV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwgIkciLCB0aGlzLl9uZXh0
UmVzdWx0QnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpKTsKQEAgLTE4NSw2ICsxOTIsMjEgQEAgV2Vi
SW5zcGVjdG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMgV2ViSW5zcGVj
dG9yLk9iamVjdAogICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFp
bnMoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIuU2hvd2luZ1N0eWxlQ2xhc3NOYW1lKTsKICAgICB9
CiAKKyAgICBmb2N1cygpCisgICAgeworICAgICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCBmb3I6
IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDk1MDQ+IENhcmV0IG1pc3NpbmcgZnJvbSA8aW5wdXQ+
IGFmdGVyIGNsZWFyaW5nIHRleHQgYW5kIGNhbGxpbmcgc2VsZWN0KCkKKyAgICAgICAgaWYgKCF0
aGlzLl9pbnB1dEZpZWxkLnZhbHVlLmxlbmd0aCkKKyAgICAgICAgICAgIHRoaXMuX2lucHV0Rmll
bGQuZm9jdXMoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5z
ZWxlY3QoKTsKKyAgICB9CisKKyAgICBsb3NlRm9jdXMoKQorICAgIHsKKyAgICAgICAgaWYgKHRo
aXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyV2FudHNUb0xv
c2VGb2N1cyA9PT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRC
YW5uZXJXYW50c1RvTG9zZUZvY3VzKCk7CisgICAgfQorCiAgICAgc2hvdygpCiAgICAgewogICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl90YXJnZXRFbGVtZW50KTsKQEAgLTI0Myw0NCArMjY1
LDE4IEBAIFdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRz
IFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgIC8vIFByaXZhdGUKIAotICAgIF9pbnB1dEZpZWxk
S2V5RG93bihldmVudCkKLSAgICB7Ci0gICAgICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09
PSAiU2hpZnQiKQotICAgICAgICAgICAgdGhpcy5fc2VhcmNoQmFja3dhcmRzID0gdHJ1ZTsKLSAg
ICAgICAgZWxzZSBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkVudGVyIikKLSAgICAgICAg
ICAgIHRoaXMuX3NlYXJjaEtleVByZXNzZWQgPSB0cnVlOwotICAgIH0KLQotICAgIF9pbnB1dEZp
ZWxkS2V5VXAoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9
PT0gIlNoaWZ0IikKLSAgICAgICAgICAgIHRoaXMuX3NlYXJjaEJhY2t3YXJkcyA9IGZhbHNlOwot
ICAgICAgICBlbHNlIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiKQotICAgICAg
ICAgICAgdGhpcy5fc2VhcmNoS2V5UHJlc3NlZCA9IGZhbHNlOwotICAgIH0KLQogICAgIF9pbnB1
dEZpZWxkU2VhcmNoKGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2lucHV0RmllbGQu
dmFsdWUpIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NlYXJjaFZhbHVlICE9PSB0
aGlzLnNlYXJjaFF1ZXJ5KSB7CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYm
IHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUGVyZm9ybVNlYXJjaCA9PT0gImZ1bmN0
aW9uIikKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclBlcmZv
cm1TZWFyY2godGhpcywgdGhpcy5zZWFyY2hRdWVyeSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYg
KHRoaXMuX3NlYXJjaEtleVByZXNzZWQgJiYgdGhpcy5fbnVtYmVyT2ZSZXN1bHRzID4gMCkgewot
ICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zZWFyY2hCYWNrd2FyZHMpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5k
QmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQo
dGhpcyk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFs
TmV4dFJlc3VsdCA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu
X2RlbGVnYXRlLmZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KHRoaXMpOwotICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMu
bnVtYmVyT2ZSZXN1bHRzID0gbnVsbDsKLQogICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRl
ICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCA9PT0gImZ1
bmN0aW9uIikKICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNo
Q2xlYXJlZCh0aGlzKTsKICAgICAgICAgfQotCiAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNo
VmFsdWUgPSB0aGlzLnNlYXJjaFF1ZXJ5OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpp
bmRleCAyMTg4NmMyZWJhMzBkYzY2MDM3MmNjYjE2ZDZhYzY0NzQzZjg0NWE5Li45YWM2OGU1MTI2
MWU1NWZkOTNjN2E0ZGM2Yjk1YWU4OGFkOTYwZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpA
QCAtNTcsOCArNTcsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dD
b250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICB0aGlzLl9s
b2dWaWV3Q29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExvZ1ZpZXdDb250
cm9sbGVyKHRoaXMubWVzc2FnZXNFbGVtZW50LCB0aGlzLmVsZW1lbnQsIHRoaXMucHJvbXB0LCB0
aGlzLCAiY29uc29sZS1wcm9tcHQtaGlzdG9yeSIpOwogICAgICAgICB0aGlzLl9sYXN0TWVzc2Fn
ZVZpZXcgPSBudWxsOwogCi0gICAgICAgIHRoaXMuX3NlYXJjaEJhciA9IG5ldyBXZWJJbnNwZWN0
b3IuU2VhcmNoQmFyKCJsb2ctc2VhcmNoLWJhciIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmls
dGVyIENvbnNvbGUgTG9nIiksIHRoaXMpOwotICAgICAgICB0aGlzLl9zZWFyY2hCYXIuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2VhcmNoQmFyLkV2ZW50LlRleHRDaGFuZ2VkLCB0aGlz
Ll9zZWFyY2hUZXh0RGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fZmluZEJhbm5lciA9
IG5ldyBXZWJJbnNwZWN0b3IuRmluZEJhbm5lcih0aGlzLCAiY29uc29sZS1maW5kLWJhbm5lciIs
IHRydWUpOwogCiAgICAgICAgIHZhciBzY29wZUJhckl0ZW1zID0gWwogICAgICAgICAgICAgbmV3
IFdlYkluc3BlY3Rvci5TY29wZUJhckl0ZW0oV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNj
b3Blcy5BbGwsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWxsIiksIHRydWUpLApAQCAtOTEsNyAr
OTAsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50Vmll
dyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogCiAgICAgZ2V0IG5hdmlnYXRpb25JdGVt
cygpCiAgICAgewotICAgICAgICB2YXIgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX3NlYXJjaEJh
ciwgdGhpcy5fc2NvcGVCYXIsIHRoaXMuX2NsZWFyTG9nTmF2aWdhdGlvbkl0ZW1dOworICAgICAg
ICB2YXIgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX2ZpbmRCYW5uZXIsIHRoaXMuX3Njb3BlQmFy
LCB0aGlzLl9jbGVhckxvZ05hdmlnYXRpb25JdGVtXTsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rv
ci5pc1Nob3dpbmdTcGxpdENvbnNvbGUoKSkKICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5w
dXNoKHRoaXMuX3Nob3dDb25zb2xlVGFiTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICByZXR1cm4g
bmF2aWdhdGlvbkl0ZW1zOwpAQCAtMTg4LDcgKzE4Nyw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRl
bnRWCiAgICAgICAgIGlmICghdGhpcy52aXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIHRoaXMuX3NlYXJjaEJhci5mb2N1cygpOworICAgICAgICB0aGlzLl9maW5kQmFubmVy
LmZvY3VzKCk7CiAgICAgfQogCiAgICAgZ2V0IHN1cHBvcnRzU2F2ZSgpCkBAIC0yMTcsNiArMjE2
LDEwIEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZh
dWx0KCk7CiAgICAgfQogCisgICAgZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KCkgewor
ICAgICAgICB0aGlzLmhpZ2hsaWdodFByZXZpb3VzU2VhcmNoTWF0Y2goKTsKKyAgICB9CisKICAg
ICBoaWdobGlnaHRQcmV2aW91c1NlYXJjaE1hdGNoKCkKICAgICB7CiAgICAgICAgIGlmICghdGhp
cy5zZWFyY2hJblByb2dyZXNzIHx8IGlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykp
CkBAIC0yMjYsNiArMjI5LDExIEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNz
IExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIHRo
aXMuX2hpZ2hsaWdodFNlYXJjaE1hdGNoQXRJbmRleChpbmRleCAtIDEpOwogICAgIH0KIAorICAg
IGZpbmRCYW5uZXJSZXZlYWxOZXh0UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRoaXMuaGlnaGxp
Z2h0TmV4dFNlYXJjaE1hdGNoKCk7CisgICAgfQorCiAgICAgaGlnaGxpZ2h0TmV4dFNlYXJjaE1h
dGNoKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zZWFyY2hJblByb2dyZXNzIHx8IGlzRW1w
dHlPYmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykpCkBAIC0yMzUsNyArMjQzLDcgQEAgV2ViSW5z
cGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0U2VhcmNoTWF0Y2hBdElu
ZGV4KGluZGV4KTsKICAgICB9CiAKLSAgICBzZWFyY2hCYXJXYW50c1RvTG9zZUZvY3VzKHNlYXJj
aEJhcikKKyAgICBmaW5kQmFubmVyV2FudHNUb0xvc2VGb2N1cyhmaW5kQmFubmVyKQogICAgIHsK
ICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMubGVuZ3RoKQogICAgICAgICAgICAg
dGhpcy5tZXNzYWdlc0VsZW1lbnQuZm9jdXMoKTsKQEAgLTI0MywxMyArMjUxLDYgQEAgV2ViSW5z
cGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgICAgIHRoaXMucHJvbXB0LmZvY3VzKCk7CiAgICAg
fQogCi0gICAgc2VhcmNoQmFyRGlkQWN0aXZhdGUoc2VhcmNoQmFyKQotICAgIHsKLSAgICAgICAg
aWYgKCFpc0VtcHR5T2JqZWN0KHRoaXMuX3NlYXJjaE1hdGNoZXMpKQotICAgICAgICAgICAgdGhp
cy5faGlnaGxpZ2h0U2VhcmNoTWF0Y2hBdEluZGV4KDApOwotICAgICAgICB0aGlzLnByb21wdC5m
b2N1cygpOwotICAgIH0KLQogICAgIC8vIFByaXZhdGUKIAogICAgIF9mb3JtYXRNZXNzYWdlc0Fz
RGF0YShvbmx5U2VsZWN0ZWQpCkBAIC04NDksMTggKzg1MCwzMSBAQCBXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5D
b250ZW50VgogICAgICAgICAgICAgZm9jdXNhYmxlRWxlbWVudHNbaV0ucmVtb3ZlQXR0cmlidXRl
KCJ0YWJpbmRleCIpOwogICAgIH0KIAotICAgIF9zZWFyY2hUZXh0RGlkQ2hhbmdlKGV2ZW50KQor
ICAgIGZpbmRCYW5uZXJQZXJmb3JtU2VhcmNoKGZpbmRCYW5uZXIsIHNlYXJjaFRlcm1zKQorICAg
IHsKKyAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaChzZWFyY2hUZXJtcyk7CisgICAgfQorCisg
ICAgZmluZEJhbm5lclNlYXJjaENsZWFyZWQoKQogICAgIHsKICAgICAgICAgdGhpcy5fcGVyZm9y
bVNlYXJjaCgpOwogICAgIH0KIAotICAgIF9wZXJmb3JtU2VhcmNoKCkKKyAgICByZXZlYWxOZXh0
U2VhcmNoUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRoaXMuZmluZEJhbm5lclJldmVhbE5leHRS
ZXN1bHQoKTsKKyAgICB9CisKKyAgICByZXZlYWxQcmV2aW91c1NlYXJjaFJlc3VsdCgpCisgICAg
eworICAgICAgICB0aGlzLmZpbmRCYW5uZXJSZXZlYWxQcmV2aW91c1Jlc3VsdCgpOworICAgIH0K
KworICAgIF9wZXJmb3JtU2VhcmNoKHNlYXJjaFRlcm1zID0gIiIpCiAgICAgewogICAgICAgICBp
ZiAoIWlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNoSGlnaGxpZ2h0RE9NQ2hhbmdlcykpCiAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IucmV2ZXJ0RG9tQ2hhbmdlcyh0aGlzLl9zZWFyY2hIaWdobGln
aHRET01DaGFuZ2VzKTsKIAotICAgICAgICB2YXIgc2VhcmNoVGVybXMgPSB0aGlzLl9zZWFyY2hC
YXIudGV4dDsKLQogICAgICAgICBpZiAoc2VhcmNoVGVybXMgPT09ICIiKSB7CiAgICAgICAgICAg
ICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRjaDsKICAgICAgICAgICAgIHRoaXMuX21h
dGNoaW5nU2VhcmNoRWxlbWVudHMgPSBbXTsKQEAgLTg3Myw2ICs4ODcsNyBAQCBXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5Db250ZW50VgogICAgICAgICB0aGlzLl9zZWFyY2hIaWdobGlnaHRET01DaGFuZ2VzID0g
W107CiAgICAgICAgIHRoaXMuX3NlYXJjaE1hdGNoZXMgPSBbXTsKICAgICAgICAgdGhpcy5fc2Vs
ZWN0ZWRTZWFyY2hNYXRoSXNWYWxpZCA9IGZhbHNlOworICAgICAgICBsZXQgbnVtYmVyT2ZSZXN1
bHRzID0gMDsKIAogICAgICAgICB2YXIgc2VhcmNoUmVnZXggPSBuZXcgUmVnRXhwKHNlYXJjaFRl
cm1zLmVzY2FwZUZvclJlZ0V4cCgpLCAiZ2kiKTsKICAgICAgICAgdGhpcy5fdW5maWx0ZXJlZE1l
c3NhZ2VFbGVtZW50cygpLmZvckVhY2goZnVuY3Rpb24obWVzc2FnZSkgewpAQCAtODgwLDYgKzg5
NSw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgICAgICB2YXIgdGV4dCA9IG1l
c3NhZ2UudGV4dENvbnRlbnQ7CiAgICAgICAgICAgICB2YXIgbWF0Y2ggPSBzZWFyY2hSZWdleC5l
eGVjKHRleHQpOwogICAgICAgICAgICAgd2hpbGUgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAg
bnVtYmVyT2ZSZXN1bHRzKys7CiAgICAgICAgICAgICAgICAgbWF0Y2hSYW5nZXMucHVzaCh7IG9m
ZnNldDogbWF0Y2guaW5kZXgsIGxlbmd0aDogbWF0Y2hbMF0ubGVuZ3RoIH0pOwogICAgICAgICAg
ICAgICAgIG1hdGNoID0gc2VhcmNoUmVnZXguZXhlYyh0ZXh0KTsKICAgICAgICAgICAgIH0KQEAg
LTg5OCw2ICs5MTQsOCBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dD
b250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICAgICAgdGhp
cy5fc2VsZWN0ZWRTZWFyY2hNYXRjaC5oaWdobGlnaHQuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNw
ZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAg
ICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRjaDsKICAgICAgICAgfQorCisgICAgICAg
IHRoaXMuX2ZpbmRCYW5uZXIubnVtYmVyT2ZSZXN1bHRzID0gbnVtYmVyT2ZSZXN1bHRzOwogICAg
IH0KIAogICAgIF9oaWdobGlnaHRSYW5nZXMobWVzc2FnZSwgbWF0Y2hSYW5nZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262203</attachid>
            <date>2015-09-30 16:23:02 -0700</date>
            <delta_ts>2015-09-30 17:02:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-149505-20151001002236.patch</filename>
            <type>text/plain</type>
            <size>14395</size>
            <attacher name="João Oliveira">hello</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA2
ZTI1ODA4YTQ2YjA2MWJhMzc0ZDczMmIyOWVhMzgxZTQyZjVjM2JhLi5jY2QzYjY3MGYxYmNhYjE2
YTYwNzI1NDlkN2Y0OGE2OTg5ODIzYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNS0wOS0zMCAgSm/Do28gT2xpdmVpcmEgIDxoZWxsb0BqeHMucHQ+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBTZWFyY2hCYXIgc2hvdWxkIHdvcmsgbW9y
ZSBsaWtlIENvbnRlbnRCcm93c2VyIEZpbmRCYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnNvbGUgdGFiIG5vdyB1c2VzIGZpbmRCYW5uZXIs
IGFkYXB0ZWQgTG9nQ29udGVudFZpZXcgdG8gdXNlIGZpbmRCYW5uZXIsCisgICAgICAgIGFuZCBm
aW5kQmFubmVyIHRvIGJlIG1vcmUgYWdub3N0aWMgdG8gYm90aCB1c2VjYXNlcywgZWl0aGVyIGFz
IGZpeGVkLCBvbiBjb25zb2xlIHRhYiwKKyAgICAgICAgYW5kIGhpZGVhYmxlIG9uIG90aGVyIGlu
c3BlY3RvciB0YWJzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVy
LmNzczoKKyAgICAgICAgKC5maW5kLWJhbm5lci5jb25zb2xlLWZpbmQtYmFubmVyKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRmluZEJhbm5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5wcm90
b3R5cGUuZm9jdXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIucHJvdG90eXBl
Lmxvc2VGb2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5wcm90b3R5cGUu
X2lucHV0RmllbGRLZXlEb3duKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5k
QmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVsZEtleVVwKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVsZFNlYXJjaCk6IERlbGV0
ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBuYXZpZ2F0aW9uSXRlbXMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVGaW5kRXZlbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5maW5kQmFu
bmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5maW5kQmFubmVyUmV2ZWFsTmV4dFJlc3VsdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJQZXJmb3JtU2Vh
cmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUucmV2
ZWFsTmV4dFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZp
ZXcucHJvdG90eXBlLnJldmVhbFByZXZpb3VzU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3BlcmZvcm1TZWFyY2gpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5zZWFyY2hCYXJEaWRBY3Rp
dmF0ZSk6IERlbGV0ZWQuCisKIDIwMTUtMDktMjggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBIaXR0aW5nIEVTQyB3aGlsZSBl
ZGl0aW5nIGVsZW1lbnQgdGFnIG5hbWUgbGVhdmVzIGVsZW1lbnQgaW4gYmFkIHN0YXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFu
bmVyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRC
YW5uZXIuY3NzCmluZGV4IDJjMzk1YjdiMmMzYTFkZmY4YjVlMWMxZjE0MTY5MjU3ZDQyMTI1MTQu
LjU1ZjAxNDUwZjg0NGRlZDFjODMzNmE1YjE5ODBhZmUxZjI1MTQ4ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuY3NzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIu
Y3NzCkBAIC0xOTUsMyArMTk1LDkgQEAgYm9keS53aW5kb3ctaW5hY3RpdmUgLmZpbmQtYmFubmVy
IHsKICAgICBtYXJnaW46IDAgNnB4OwogICAgIGxpbmUtaGVpZ2h0OiAyMXB4OwogfQorCisuZmlu
ZC1iYW5uZXIuY29uc29sZS1maW5kLWJhbm5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOwor
ICAgIHRvcDogYXV0bzsKKyAgICBib3JkZXI6IDA7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qcwppbmRleCBhYmFk
NzUwZjM5YTY1NWFjOTgyYzFhOWU0M2YwN2ZjNWU0MjdiNTBkLi41MDVmN2M3NDE2ODY4OGJlMDY1
YzE0YjBkZDQyYTFlYzk2YmRmMjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanMKQEAgLTIzLDE3ICsyMywxOSBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rv
ci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKK1dlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdl
Ykluc3BlY3Rvci5OYXZpZ2F0aW9uSXRlbQogewotICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlLCBl
bGVtZW50KQorICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlLCBjbGFzc05hbWUsIGZpeGVkID0gZmFs
c2UpCiAgICAgewogICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIHRoaXMuX2RlbGVnYXRlID0g
ZGVsZWdhdGUgfHwgbnVsbDsKIAotICAgICAgICB0aGlzLl9lbGVtZW50ID0gZWxlbWVudCB8fCBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJmaW5kLWJhbm5lciIpOwogCisgICAgICAgIGlmIChjbGFzc05hbWUgJiYgY2xh
c3NOYW1lLmxlbmd0aCkKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChj
bGFzc05hbWUpOworCiAgICAgICAgIHRoaXMuX3Jlc3VsdENvdW50TGFiZWwgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX3Jlc3VsdENvdW50TGFiZWwpOwogCkBAIC02NSwyMiArNjcsMjcgQEAgV2ViSW5zcGVj
dG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAogICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLmluY3JlbWVudGFsID0gdHJ1ZTsKICAgICAg
ICAgdGhpcy5faW5wdXRGaWVsZC5zZXRBdHRyaWJ1dGUoInJlc3VsdHMiLCA1KTsKICAgICAgICAg
dGhpcy5faW5wdXRGaWVsZC5zZXRBdHRyaWJ1dGUoImF1dG9zYXZlIiwgImluc3BlY3Rvci1zZWFy
Y2giKTsKLSAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3du
IiwgdGhpcy5faW5wdXRGaWVsZEtleURvd24uYmluZCh0aGlzKSwgZmFsc2UpOwotICAgICAgICB0
aGlzLl9pbnB1dEZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5faW5wdXRGaWVs
ZEtleVVwLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5hZGRF
dmVudExpc3RlbmVyKCJzZWFyY2giLCB0aGlzLl9pbnB1dEZpZWxkU2VhcmNoLmJpbmQodGhpcyks
IGZhbHNlKTsKICAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9pbnB1dEZp
ZWxkKTsKIAotICAgICAgICB0aGlzLl9kb25lQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYnV0dG9uIik7Ci0gICAgICAgIHRoaXMuX2RvbmVCdXR0b24udGV4dENvbnRlbnQgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkRvbmUiKTsKLSAgICAgICAgdGhpcy5fZG9uZUJ1dHRvbi5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2RvbmVCdXR0b25DbGlja2VkLmJpbmQodGhpcykp
OwotICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RvbmVCdXR0b24pOwor
ICAgICAgICBpZiAoZml4ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX2hpZGVLZXlib2FyZFNob3J0
Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdlYkluc3BlY3Rv
ci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUsIHRoaXMubG9zZUZvY3VzLmJpbmQodGhpcyks
IHRoaXMuX2VsZW1lbnQpOworICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRk
KGNsYXNzTmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsZXQgZG9uZUJ1dHRv
bkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKKyAgICAgICAgICAg
IGRvbmVCdXR0b25FbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJE
b25lIik7CisgICAgICAgICAgICBkb25lQnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIHRoaXMuX2RvbmVCdXR0b25DbGlja2VkLmJpbmQodGhpcykpOworICAgICAgICAgICAg
dGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChkb25lQnV0dG9uRWxlbWVudCk7CisgICAgICAgICAg
ICB0aGlzLl9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRXNjYXBlLCB0
aGlzLmhpZGUuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7CisgICAgICAgIH0KKwogCiAgICAg
ICAgIHRoaXMuX251bWJlck9mUmVzdWx0cyA9IG51bGw7CiAgICAgICAgIHRoaXMuX3NlYXJjaEJh
Y2t3YXJkcyA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zZWFyY2hLZXlQcmVzc2VkID0gZmFsc2U7
CiAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSAiIjsKIAotICAgICAgICB0aGlz
Ll9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRXNjYXBlLCB0aGlzLmhp
ZGUuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7CisKICAgICAgICAgdGhpcy5fcG9wdWxhdGVG
aW5kS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sLCAi
RSIsIHRoaXMuX3BvcHVsYXRlU2VhcmNoUXVlcnlGcm9tU2VsZWN0aW9uLmJpbmQodGhpcykpOwog
ICAgICAgICB0aGlzLl9wb3B1bGF0ZUZpbmRLZXlib2FyZFNob3J0Y3V0LmltcGxpY2l0bHlQcmV2
ZW50c0RlZmF1bHQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fZmluZE5leHRLZXlib2FyZFNob3J0
Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wsICJHIiwgdGhpcy5fbmV4dFJl
c3VsdEJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSk7CkBAIC0xODUsNiArMTkyLDI1IEBAIFdlYklu
c3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rv
ci5PYmplY3QKICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5z
KFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLlNob3dpbmdTdHlsZUNsYXNzTmFtZSk7CiAgICAgfQog
CisgICAgZm9jdXMoKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgZm9yOiA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQ5NTA0PiBDYXJldCBtaXNzaW5nIGZyb20gPGlucHV0PiBh
ZnRlciBjbGVhcmluZyB0ZXh0IGFuZCBjYWxsaW5nIHNlbGVjdCgpCisgICAgICAgIGlmICghdGhp
cy5faW5wdXRGaWVsZC52YWx1ZS5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLl9pbnB1dEZpZWxk
LmZvY3VzKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuc2Vs
ZWN0KCk7CisgICAgfQorCisgICAgbG9zZUZvY3VzKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlz
Ll9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lcldhbnRzVG9Mb3Nl
Rm9jdXMgPT09ICJmdW5jdGlvbiIpIHsKKyAgICAgICAgICAgIHRoaXMuX2lucHV0RmllbGQudmFs
dWUgPSAiIjsKKyAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSAiIjsKKyAg
ICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJTZWFyY2hDbGVhcmVkKCk7CisgICAg
ICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyV2FudHNUb0xvc2VGb2N1cygpOworICAg
ICAgICB9CisgICAgfQorCiAgICAgc2hvdygpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0aGlzLl90YXJnZXRFbGVtZW50KTsKQEAgLTI0Myw0NCArMjY5LDE4IEBAIFdlYkluc3BlY3Rv
ci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKIAogICAgIC8vIFByaXZhdGUKIAotICAgIF9pbnB1dEZpZWxkS2V5RG93bihldmVudCkKLSAg
ICB7Ci0gICAgICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiU2hpZnQiKQotICAgICAg
ICAgICAgdGhpcy5fc2VhcmNoQmFja3dhcmRzID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoZXZl
bnQua2V5SWRlbnRpZmllciA9PT0gIkVudGVyIikKLSAgICAgICAgICAgIHRoaXMuX3NlYXJjaEtl
eVByZXNzZWQgPSB0cnVlOwotICAgIH0KLQotICAgIF9pbnB1dEZpZWxkS2V5VXAoZXZlbnQpCi0g
ICAgewotICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlNoaWZ0IikKLSAgICAg
ICAgICAgIHRoaXMuX3NlYXJjaEJhY2t3YXJkcyA9IGZhbHNlOwotICAgICAgICBlbHNlIGlmIChl
dmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiKQotICAgICAgICAgICAgdGhpcy5fc2VhcmNo
S2V5UHJlc3NlZCA9IGZhbHNlOwotICAgIH0KLQogICAgIF9pbnB1dEZpZWxkU2VhcmNoKGV2ZW50
KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2lucHV0RmllbGQudmFsdWUpIHsKICAgICAgICAg
ICAgIGlmICh0aGlzLl9wcmV2aW91c1NlYXJjaFZhbHVlICE9PSB0aGlzLnNlYXJjaFF1ZXJ5KSB7
CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxl
Z2F0ZS5maW5kQmFubmVyUGVyZm9ybVNlYXJjaCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclBlcmZvcm1TZWFyY2godGhpcywgdGhp
cy5zZWFyY2hRdWVyeSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3NlYXJjaEtleVBy
ZXNzZWQgJiYgdGhpcy5fbnVtYmVyT2ZSZXN1bHRzID4gMCkgewotICAgICAgICAgICAgICAgIGlm
ICh0aGlzLl9zZWFyY2hCYWNrd2FyZHMpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMu
X2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsUHJldmlv
dXNSZXN1bHQgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9k
ZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQodGhpcyk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYm
IHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsTmV4dFJlc3VsdCA9PT0gImZ1
bmN0aW9uIikKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5u
ZXJSZXZlYWxOZXh0UmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMubnVtYmVyT2ZSZXN1bHRzID0g
bnVsbDsKLQogICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9k
ZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAg
ICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCh0aGlzKTsKICAg
ICAgICAgfQotCiAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSB0aGlzLnNlYXJj
aFF1ZXJ5OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwppbmRleCAyMTg4NmMyZWJhMzBk
YzY2MDM3MmNjYjE2ZDZhYzY0NzQzZjg0NWE5Li45YWM2OGU1MTI2MWU1NWZkOTNjN2E0ZGM2Yjk1
YWU4OGFkOTYwZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpAQCAtNTcsOCArNTcsNyBAQCBX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRz
IFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICB0aGlzLl9sb2dWaWV3Q29udHJvbGxlciA9
IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyKHRoaXMubWVzc2Fn
ZXNFbGVtZW50LCB0aGlzLmVsZW1lbnQsIHRoaXMucHJvbXB0LCB0aGlzLCAiY29uc29sZS1wcm9t
cHQtaGlzdG9yeSIpOwogICAgICAgICB0aGlzLl9sYXN0TWVzc2FnZVZpZXcgPSBudWxsOwogCi0g
ICAgICAgIHRoaXMuX3NlYXJjaEJhciA9IG5ldyBXZWJJbnNwZWN0b3IuU2VhcmNoQmFyKCJsb2ct
c2VhcmNoLWJhciIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmlsdGVyIENvbnNvbGUgTG9nIiks
IHRoaXMpOwotICAgICAgICB0aGlzLl9zZWFyY2hCYXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuU2VhcmNoQmFyLkV2ZW50LlRleHRDaGFuZ2VkLCB0aGlzLl9zZWFyY2hUZXh0RGlkQ2hh
bmdlLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fZmluZEJhbm5lciA9IG5ldyBXZWJJbnNwZWN0b3Iu
RmluZEJhbm5lcih0aGlzLCAiY29uc29sZS1maW5kLWJhbm5lciIsIHRydWUpOwogCiAgICAgICAg
IHZhciBzY29wZUJhckl0ZW1zID0gWwogICAgICAgICAgICAgbmV3IFdlYkluc3BlY3Rvci5TY29w
ZUJhckl0ZW0oV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNjb3Blcy5BbGwsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQWxsIiksIHRydWUpLApAQCAtOTEsNyArOTAsNyBAQCBXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5Db250ZW50VgogCiAgICAgZ2V0IG5hdmlnYXRpb25JdGVtcygpCiAgICAgewotICAgICAg
ICB2YXIgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX3NlYXJjaEJhciwgdGhpcy5fc2NvcGVCYXIs
IHRoaXMuX2NsZWFyTG9nTmF2aWdhdGlvbkl0ZW1dOworICAgICAgICB2YXIgbmF2aWdhdGlvbkl0
ZW1zID0gW3RoaXMuX2ZpbmRCYW5uZXIsIHRoaXMuX3Njb3BlQmFyLCB0aGlzLl9jbGVhckxvZ05h
dmlnYXRpb25JdGVtXTsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5pc1Nob3dpbmdTcGxpdENv
bnNvbGUoKSkKICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRoaXMuX3Nob3dDb25z
b2xlVGFiTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1zOwpA
QCAtMTg4LDcgKzE4Nyw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExv
Z0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIGlmICgh
dGhpcy52aXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3NlYXJj
aEJhci5mb2N1cygpOworICAgICAgICB0aGlzLl9maW5kQmFubmVyLmZvY3VzKCk7CiAgICAgfQog
CiAgICAgZ2V0IHN1cHBvcnRzU2F2ZSgpCkBAIC0yMTcsNiArMjE2LDEwIEBAIFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVj
dG9yLkNvbnRlbnRWCiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfQogCisg
ICAgZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KCkgeworICAgICAgICB0aGlzLmhpZ2hs
aWdodFByZXZpb3VzU2VhcmNoTWF0Y2goKTsKKyAgICB9CisKICAgICBoaWdobGlnaHRQcmV2aW91
c1NlYXJjaE1hdGNoKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zZWFyY2hJblByb2dyZXNz
IHx8IGlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykpCkBAIC0yMjYsNiArMjI5LDEx
IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFNlYXJj
aE1hdGNoQXRJbmRleChpbmRleCAtIDEpOwogICAgIH0KIAorICAgIGZpbmRCYW5uZXJSZXZlYWxO
ZXh0UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRoaXMuaGlnaGxpZ2h0TmV4dFNlYXJjaE1hdGNo
KCk7CisgICAgfQorCiAgICAgaGlnaGxpZ2h0TmV4dFNlYXJjaE1hdGNoKCkKICAgICB7CiAgICAg
ICAgIGlmICghdGhpcy5zZWFyY2hJblByb2dyZXNzIHx8IGlzRW1wdHlPYmplY3QodGhpcy5fc2Vh
cmNoTWF0Y2hlcykpCkBAIC0yMzUsNyArMjQzLDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRW
aWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYK
ICAgICAgICAgdGhpcy5faGlnaGxpZ2h0U2VhcmNoTWF0Y2hBdEluZGV4KGluZGV4KTsKICAgICB9
CiAKLSAgICBzZWFyY2hCYXJXYW50c1RvTG9zZUZvY3VzKHNlYXJjaEJhcikKKyAgICBmaW5kQmFu
bmVyV2FudHNUb0xvc2VGb2N1cyhmaW5kQmFubmVyKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
X3NlbGVjdGVkTWVzc2FnZXMubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0VsZW1l
bnQuZm9jdXMoKTsKQEAgLTI0MywxMyArMjUxLDYgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRW
aWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYK
ICAgICAgICAgICAgIHRoaXMucHJvbXB0LmZvY3VzKCk7CiAgICAgfQogCi0gICAgc2VhcmNoQmFy
RGlkQWN0aXZhdGUoc2VhcmNoQmFyKQotICAgIHsKLSAgICAgICAgaWYgKCFpc0VtcHR5T2JqZWN0
KHRoaXMuX3NlYXJjaE1hdGNoZXMpKQotICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0U2VhcmNo
TWF0Y2hBdEluZGV4KDApOwotICAgICAgICB0aGlzLnByb21wdC5mb2N1cygpOwotICAgIH0KLQog
ICAgIC8vIFByaXZhdGUKIAogICAgIF9mb3JtYXRNZXNzYWdlc0FzRGF0YShvbmx5U2VsZWN0ZWQp
CkBAIC04NDksMTggKzg1MCwzMSBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFz
cyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICAg
ICAgZm9jdXNhYmxlRWxlbWVudHNbaV0ucmVtb3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIpOwogICAg
IH0KIAotICAgIF9zZWFyY2hUZXh0RGlkQ2hhbmdlKGV2ZW50KQorICAgIGZpbmRCYW5uZXJQZXJm
b3JtU2VhcmNoKGZpbmRCYW5uZXIsIHNlYXJjaFRlcm1zKQorICAgIHsKKyAgICAgICAgdGhpcy5f
cGVyZm9ybVNlYXJjaChzZWFyY2hUZXJtcyk7CisgICAgfQorCisgICAgZmluZEJhbm5lclNlYXJj
aENsZWFyZWQoKQogICAgIHsKICAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCgpOwogICAgIH0K
IAotICAgIF9wZXJmb3JtU2VhcmNoKCkKKyAgICByZXZlYWxOZXh0U2VhcmNoUmVzdWx0KCkKKyAg
ICB7CisgICAgICAgIHRoaXMuZmluZEJhbm5lclJldmVhbE5leHRSZXN1bHQoKTsKKyAgICB9CisK
KyAgICByZXZlYWxQcmV2aW91c1NlYXJjaFJlc3VsdCgpCisgICAgeworICAgICAgICB0aGlzLmZp
bmRCYW5uZXJSZXZlYWxQcmV2aW91c1Jlc3VsdCgpOworICAgIH0KKworICAgIF9wZXJmb3JtU2Vh
cmNoKHNlYXJjaFRlcm1zID0gIiIpCiAgICAgewogICAgICAgICBpZiAoIWlzRW1wdHlPYmplY3Qo
dGhpcy5fc2VhcmNoSGlnaGxpZ2h0RE9NQ2hhbmdlcykpCiAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IucmV2ZXJ0RG9tQ2hhbmdlcyh0aGlzLl9zZWFyY2hIaWdobGlnaHRET01DaGFuZ2VzKTsKIAot
ICAgICAgICB2YXIgc2VhcmNoVGVybXMgPSB0aGlzLl9zZWFyY2hCYXIudGV4dDsKLQogICAgICAg
ICBpZiAoc2VhcmNoVGVybXMgPT09ICIiKSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fc2Vs
ZWN0ZWRTZWFyY2hNYXRjaDsKICAgICAgICAgICAgIHRoaXMuX21hdGNoaW5nU2VhcmNoRWxlbWVu
dHMgPSBbXTsKQEAgLTg3Myw2ICs4ODcsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcg
PSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAg
ICAgICB0aGlzLl9zZWFyY2hIaWdobGlnaHRET01DaGFuZ2VzID0gW107CiAgICAgICAgIHRoaXMu
X3NlYXJjaE1hdGNoZXMgPSBbXTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRoSXNW
YWxpZCA9IGZhbHNlOworICAgICAgICBsZXQgbnVtYmVyT2ZSZXN1bHRzID0gMDsKIAogICAgICAg
ICB2YXIgc2VhcmNoUmVnZXggPSBuZXcgUmVnRXhwKHNlYXJjaFRlcm1zLmVzY2FwZUZvclJlZ0V4
cCgpLCAiZ2kiKTsKICAgICAgICAgdGhpcy5fdW5maWx0ZXJlZE1lc3NhZ2VFbGVtZW50cygpLmZv
ckVhY2goZnVuY3Rpb24obWVzc2FnZSkgewpAQCAtODgwLDYgKzg5NSw3IEBAIFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVj
dG9yLkNvbnRlbnRWCiAgICAgICAgICAgICB2YXIgdGV4dCA9IG1lc3NhZ2UudGV4dENvbnRlbnQ7
CiAgICAgICAgICAgICB2YXIgbWF0Y2ggPSBzZWFyY2hSZWdleC5leGVjKHRleHQpOwogICAgICAg
ICAgICAgd2hpbGUgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyT2ZSZXN1bHRzKys7
CiAgICAgICAgICAgICAgICAgbWF0Y2hSYW5nZXMucHVzaCh7IG9mZnNldDogbWF0Y2guaW5kZXgs
IGxlbmd0aDogbWF0Y2hbMF0ubGVuZ3RoIH0pOwogICAgICAgICAgICAgICAgIG1hdGNoID0gc2Vh
cmNoUmVnZXguZXhlYyh0ZXh0KTsKICAgICAgICAgICAgIH0KQEAgLTg5OCw2ICs5MTQsOCBAQCBX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRz
IFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTZWFyY2hN
YXRjaC5oaWdobGlnaHQuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZp
ZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fc2Vs
ZWN0ZWRTZWFyY2hNYXRjaDsKICAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIu
bnVtYmVyT2ZSZXN1bHRzID0gbnVtYmVyT2ZSZXN1bHRzOwogICAgIH0KIAogICAgIF9oaWdobGln
aHRSYW5nZXMobWVzc2FnZSwgbWF0Y2hSYW5nZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262208</attachid>
            <date>2015-09-30 17:02:53 -0700</date>
            <delta_ts>2015-09-30 17:20:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-149505-20151001010226.patch</filename>
            <type>text/plain</type>
            <size>14400</size>
            <attacher name="João Oliveira">hello</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA2
ZTI1ODA4YTQ2YjA2MWJhMzc0ZDczMmIyOWVhMzgxZTQyZjVjM2JhLi5jY2QzYjY3MGYxYmNhYjE2
YTYwNzI1NDlkN2Y0OGE2OTg5ODIzYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNS0wOS0zMCAgSm/Do28gT2xpdmVpcmEgIDxoZWxsb0BqeHMucHQ+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBTZWFyY2hCYXIgc2hvdWxkIHdvcmsgbW9y
ZSBsaWtlIENvbnRlbnRCcm93c2VyIEZpbmRCYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnNvbGUgdGFiIG5vdyB1c2VzIGZpbmRCYW5uZXIs
IGFkYXB0ZWQgTG9nQ29udGVudFZpZXcgdG8gdXNlIGZpbmRCYW5uZXIsCisgICAgICAgIGFuZCBm
aW5kQmFubmVyIHRvIGJlIG1vcmUgYWdub3N0aWMgdG8gYm90aCB1c2VjYXNlcywgZWl0aGVyIGFz
IGZpeGVkLCBvbiBjb25zb2xlIHRhYiwKKyAgICAgICAgYW5kIGhpZGVhYmxlIG9uIG90aGVyIGlu
c3BlY3RvciB0YWJzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVy
LmNzczoKKyAgICAgICAgKC5maW5kLWJhbm5lci5jb25zb2xlLWZpbmQtYmFubmVyKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRmluZEJhbm5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5wcm90
b3R5cGUuZm9jdXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIucHJvdG90eXBl
Lmxvc2VGb2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5wcm90b3R5cGUu
X2lucHV0RmllbGRLZXlEb3duKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5k
QmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVsZEtleVVwKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVsZFNlYXJjaCk6IERlbGV0
ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBuYXZpZ2F0aW9uSXRlbXMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVGaW5kRXZlbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5maW5kQmFu
bmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5maW5kQmFubmVyUmV2ZWFsTmV4dFJlc3VsdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJQZXJmb3JtU2Vh
cmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUucmV2
ZWFsTmV4dFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZp
ZXcucHJvdG90eXBlLnJldmVhbFByZXZpb3VzU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3BlcmZvcm1TZWFyY2gpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5zZWFyY2hCYXJEaWRBY3Rp
dmF0ZSk6IERlbGV0ZWQuCisKIDIwMTUtMDktMjggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBIaXR0aW5nIEVTQyB3aGlsZSBl
ZGl0aW5nIGVsZW1lbnQgdGFnIG5hbWUgbGVhdmVzIGVsZW1lbnQgaW4gYmFkIHN0YXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFu
bmVyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRC
YW5uZXIuY3NzCmluZGV4IDJjMzk1YjdiMmMzYTFkZmY4YjVlMWMxZjE0MTY5MjU3ZDQyMTI1MTQu
LjU1ZjAxNDUwZjg0NGRlZDFjODMzNmE1YjE5ODBhZmUxZjI1MTQ4ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuY3NzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIu
Y3NzCkBAIC0xOTUsMyArMTk1LDkgQEAgYm9keS53aW5kb3ctaW5hY3RpdmUgLmZpbmQtYmFubmVy
IHsKICAgICBtYXJnaW46IDAgNnB4OwogICAgIGxpbmUtaGVpZ2h0OiAyMXB4OwogfQorCisuZmlu
ZC1iYW5uZXIuY29uc29sZS1maW5kLWJhbm5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOwor
ICAgIHRvcDogYXV0bzsKKyAgICBib3JkZXI6IDA7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qcwppbmRleCBhYmFk
NzUwZjM5YTY1NWFjOTgyYzFhOWU0M2YwN2ZjNWU0MjdiNTBkLi41MDVmN2M3NDE2ODY4OGJlMDY1
YzE0YjBkZDQyYTFlYzk2YmRmMjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanMKQEAgLTIzLDE3ICsyMywxOSBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rv
ci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKK1dlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdl
Ykluc3BlY3Rvci5OYXZpZ2F0aW9uSXRlbQogewotICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlLCBl
bGVtZW50KQorICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlLCBjbGFzc05hbWUsIGZpeGVkID0gZmFs
c2UpCiAgICAgewogICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIHRoaXMuX2RlbGVnYXRlID0g
ZGVsZWdhdGUgfHwgbnVsbDsKIAotICAgICAgICB0aGlzLl9lbGVtZW50ID0gZWxlbWVudCB8fCBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJmaW5kLWJhbm5lciIpOwogCisgICAgICAgIGlmIChjbGFzc05hbWUgJiYgY2xh
c3NOYW1lLmxlbmd0aCkKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChj
bGFzc05hbWUpOworCiAgICAgICAgIHRoaXMuX3Jlc3VsdENvdW50TGFiZWwgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX3Jlc3VsdENvdW50TGFiZWwpOwogCkBAIC02NSwyMiArNjcsMjcgQEAgV2ViSW5zcGVj
dG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAogICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLmluY3JlbWVudGFsID0gdHJ1ZTsKICAgICAg
ICAgdGhpcy5faW5wdXRGaWVsZC5zZXRBdHRyaWJ1dGUoInJlc3VsdHMiLCA1KTsKICAgICAgICAg
dGhpcy5faW5wdXRGaWVsZC5zZXRBdHRyaWJ1dGUoImF1dG9zYXZlIiwgImluc3BlY3Rvci1zZWFy
Y2giKTsKLSAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3du
IiwgdGhpcy5faW5wdXRGaWVsZEtleURvd24uYmluZCh0aGlzKSwgZmFsc2UpOwotICAgICAgICB0
aGlzLl9pbnB1dEZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5faW5wdXRGaWVs
ZEtleVVwLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5hZGRF
dmVudExpc3RlbmVyKCJzZWFyY2giLCB0aGlzLl9pbnB1dEZpZWxkU2VhcmNoLmJpbmQodGhpcyks
IGZhbHNlKTsKICAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9pbnB1dEZp
ZWxkKTsKIAotICAgICAgICB0aGlzLl9kb25lQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYnV0dG9uIik7Ci0gICAgICAgIHRoaXMuX2RvbmVCdXR0b24udGV4dENvbnRlbnQgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkRvbmUiKTsKLSAgICAgICAgdGhpcy5fZG9uZUJ1dHRvbi5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2RvbmVCdXR0b25DbGlja2VkLmJpbmQodGhpcykp
OwotICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RvbmVCdXR0b24pOwor
ICAgICAgICBpZiAoZml4ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX2hpZGVLZXlib2FyZFNob3J0
Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdlYkluc3BlY3Rv
ci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUsIHRoaXMubG9zZUZvY3VzLmJpbmQodGhpcyks
IHRoaXMuX2VsZW1lbnQpOworICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRk
KGNsYXNzTmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsZXQgZG9uZUJ1dHRv
bkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKKyAgICAgICAgICAg
IGRvbmVCdXR0b25FbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJE
b25lIik7CisgICAgICAgICAgICBkb25lQnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIHRoaXMuX2RvbmVCdXR0b25DbGlja2VkLmJpbmQodGhpcykpOworICAgICAgICAgICAg
dGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChkb25lQnV0dG9uRWxlbWVudCk7CisgICAgICAgICAg
ICB0aGlzLl9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRXNjYXBlLCB0
aGlzLmhpZGUuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7CisgICAgICAgIH0KKwogCiAgICAg
ICAgIHRoaXMuX251bWJlck9mUmVzdWx0cyA9IG51bGw7CiAgICAgICAgIHRoaXMuX3NlYXJjaEJh
Y2t3YXJkcyA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zZWFyY2hLZXlQcmVzc2VkID0gZmFsc2U7
CiAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSAiIjsKIAotICAgICAgICB0aGlz
Ll9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRXNjYXBlLCB0aGlzLmhp
ZGUuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7CisKICAgICAgICAgdGhpcy5fcG9wdWxhdGVG
aW5kS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sLCAi
RSIsIHRoaXMuX3BvcHVsYXRlU2VhcmNoUXVlcnlGcm9tU2VsZWN0aW9uLmJpbmQodGhpcykpOwog
ICAgICAgICB0aGlzLl9wb3B1bGF0ZUZpbmRLZXlib2FyZFNob3J0Y3V0LmltcGxpY2l0bHlQcmV2
ZW50c0RlZmF1bHQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fZmluZE5leHRLZXlib2FyZFNob3J0
Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lk1vZGlmaWVyLkNvbW1hbmRPckNvbnRyb2wsICJHIiwgdGhpcy5fbmV4dFJl
c3VsdEJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSk7CkBAIC0xODUsNiArMTkyLDI1IEBAIFdlYklu
c3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rv
ci5PYmplY3QKICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5z
KFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLlNob3dpbmdTdHlsZUNsYXNzTmFtZSk7CiAgICAgfQog
CisgICAgZm9jdXMoKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgZm9yOiA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQ5NTA0PiBDYXJldCBtaXNzaW5nIGZyb20gPGlucHV0PiBh
ZnRlciBjbGVhcmluZyB0ZXh0IGFuZCBjYWxsaW5nIHNlbGVjdCgpCisgICAgICAgIGlmICghdGhp
cy5faW5wdXRGaWVsZC52YWx1ZS5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLl9pbnB1dEZpZWxk
LmZvY3VzKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuc2Vs
ZWN0KCk7CisgICAgfQorCisgICAgbG9zZUZvY3VzKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlz
Ll9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lcldhbnRzVG9Mb3Nl
Rm9jdXMgPT09ICJmdW5jdGlvbiIpIHsKKyAgICAgICAgICAgIHRoaXMuX2lucHV0RmllbGQudmFs
dWUgPSAiIjsKKyAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSAiIjsKKyAg
ICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJTZWFyY2hDbGVhcmVkKCk7CisgICAg
ICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyV2FudHNUb0xvc2VGb2N1cygpOworICAg
ICAgICB9CisgICAgfQorCiAgICAgc2hvdygpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0aGlzLl90YXJnZXRFbGVtZW50KTsKQEAgLTI0Myw0NCArMjY5LDE4IEBAIFdlYkluc3BlY3Rv
ci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKIAogICAgIC8vIFByaXZhdGUKIAotICAgIF9pbnB1dEZpZWxkS2V5RG93bihldmVudCkKLSAg
ICB7Ci0gICAgICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiU2hpZnQiKQotICAgICAg
ICAgICAgdGhpcy5fc2VhcmNoQmFja3dhcmRzID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoZXZl
bnQua2V5SWRlbnRpZmllciA9PT0gIkVudGVyIikKLSAgICAgICAgICAgIHRoaXMuX3NlYXJjaEtl
eVByZXNzZWQgPSB0cnVlOwotICAgIH0KLQotICAgIF9pbnB1dEZpZWxkS2V5VXAoZXZlbnQpCi0g
ICAgewotICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlNoaWZ0IikKLSAgICAg
ICAgICAgIHRoaXMuX3NlYXJjaEJhY2t3YXJkcyA9IGZhbHNlOwotICAgICAgICBlbHNlIGlmIChl
dmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiKQotICAgICAgICAgICAgdGhpcy5fc2VhcmNo
S2V5UHJlc3NlZCA9IGZhbHNlOwotICAgIH0KLQogICAgIF9pbnB1dEZpZWxkU2VhcmNoKGV2ZW50
KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2lucHV0RmllbGQudmFsdWUpIHsKICAgICAgICAg
ICAgIGlmICh0aGlzLl9wcmV2aW91c1NlYXJjaFZhbHVlICE9PSB0aGlzLnNlYXJjaFF1ZXJ5KSB7
CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxl
Z2F0ZS5maW5kQmFubmVyUGVyZm9ybVNlYXJjaCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclBlcmZvcm1TZWFyY2godGhpcywgdGhp
cy5zZWFyY2hRdWVyeSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3NlYXJjaEtleVBy
ZXNzZWQgJiYgdGhpcy5fbnVtYmVyT2ZSZXN1bHRzID4gMCkgewotICAgICAgICAgICAgICAgIGlm
ICh0aGlzLl9zZWFyY2hCYWNrd2FyZHMpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMu
X2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsUHJldmlv
dXNSZXN1bHQgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9k
ZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQodGhpcyk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYm
IHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyUmV2ZWFsTmV4dFJlc3VsdCA9PT0gImZ1
bmN0aW9uIikKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5u
ZXJSZXZlYWxOZXh0UmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMubnVtYmVyT2ZSZXN1bHRzID0g
bnVsbDsKLQogICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9k
ZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAg
ICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCh0aGlzKTsKICAg
ICAgICAgfQotCiAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSB0aGlzLnNlYXJj
aFF1ZXJ5OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwppbmRleCAyMTg4NmMyZWJhMzBk
YzY2MDM3MmNjYjE2ZDZhYzY0NzQzZjg0NWE5Li42ZmUwYzg4MWI1NWY3NWJmMjkxZmNlMTJlZDk3
MjAyNDI3YjJlMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpAQCAtNTcsOCArNTcsNyBAQCBX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRz
IFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICB0aGlzLl9sb2dWaWV3Q29udHJvbGxlciA9
IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyKHRoaXMubWVzc2Fn
ZXNFbGVtZW50LCB0aGlzLmVsZW1lbnQsIHRoaXMucHJvbXB0LCB0aGlzLCAiY29uc29sZS1wcm9t
cHQtaGlzdG9yeSIpOwogICAgICAgICB0aGlzLl9sYXN0TWVzc2FnZVZpZXcgPSBudWxsOwogCi0g
ICAgICAgIHRoaXMuX3NlYXJjaEJhciA9IG5ldyBXZWJJbnNwZWN0b3IuU2VhcmNoQmFyKCJsb2ct
c2VhcmNoLWJhciIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmlsdGVyIENvbnNvbGUgTG9nIiks
IHRoaXMpOwotICAgICAgICB0aGlzLl9zZWFyY2hCYXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuU2VhcmNoQmFyLkV2ZW50LlRleHRDaGFuZ2VkLCB0aGlzLl9zZWFyY2hUZXh0RGlkQ2hh
bmdlLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fZmluZEJhbm5lciA9IG5ldyBXZWJJbnNwZWN0b3Iu
RmluZEJhbm5lcih0aGlzLCAiY29uc29sZS1maW5kLWJhbm5lciIsIHRydWUpOwogCiAgICAgICAg
IHZhciBzY29wZUJhckl0ZW1zID0gWwogICAgICAgICAgICAgbmV3IFdlYkluc3BlY3Rvci5TY29w
ZUJhckl0ZW0oV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNjb3Blcy5BbGwsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQWxsIiksIHRydWUpLApAQCAtOTEsNyArOTAsNyBAQCBXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5Db250ZW50VgogCiAgICAgZ2V0IG5hdmlnYXRpb25JdGVtcygpCiAgICAgewotICAgICAg
ICB2YXIgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX3NlYXJjaEJhciwgdGhpcy5fc2NvcGVCYXIs
IHRoaXMuX2NsZWFyTG9nTmF2aWdhdGlvbkl0ZW1dOworICAgICAgICBsZXQgbmF2aWdhdGlvbkl0
ZW1zID0gW3RoaXMuX2ZpbmRCYW5uZXIsIHRoaXMuX3Njb3BlQmFyLCB0aGlzLl9jbGVhckxvZ05h
dmlnYXRpb25JdGVtXTsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5pc1Nob3dpbmdTcGxpdENv
bnNvbGUoKSkKICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRoaXMuX3Nob3dDb25z
b2xlVGFiTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1zOwpA
QCAtMTg4LDcgKzE4Nyw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExv
Z0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIGlmICgh
dGhpcy52aXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3NlYXJj
aEJhci5mb2N1cygpOworICAgICAgICB0aGlzLl9maW5kQmFubmVyLmZvY3VzKCk7CiAgICAgfQog
CiAgICAgZ2V0IHN1cHBvcnRzU2F2ZSgpCkBAIC0yMTcsNiArMjE2LDExIEBAIFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVj
dG9yLkNvbnRlbnRWCiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfQogCisg
ICAgZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRoaXMu
aGlnaGxpZ2h0UHJldmlvdXNTZWFyY2hNYXRjaCgpOworICAgIH0KKwogICAgIGhpZ2hsaWdodFBy
ZXZpb3VzU2VhcmNoTWF0Y2goKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLnNlYXJjaEluUHJv
Z3Jlc3MgfHwgaXNFbXB0eU9iamVjdCh0aGlzLl9zZWFyY2hNYXRjaGVzKSkKQEAgLTIyNiw2ICsy
MzAsMTEgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZp
ZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0
U2VhcmNoTWF0Y2hBdEluZGV4KGluZGV4IC0gMSk7CiAgICAgfQogCisgICAgZmluZEJhbm5lclJl
dmVhbE5leHRSZXN1bHQoKQorICAgIHsKKyAgICAgICAgdGhpcy5oaWdobGlnaHROZXh0U2VhcmNo
TWF0Y2goKTsKKyAgICB9CisKICAgICBoaWdobGlnaHROZXh0U2VhcmNoTWF0Y2goKQogICAgIHsK
ICAgICAgICAgaWYgKCF0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgfHwgaXNFbXB0eU9iamVjdCh0aGlz
Ll9zZWFyY2hNYXRjaGVzKSkKQEAgLTIzNSw3ICsyNDQsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29u
dGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250
ZW50VgogICAgICAgICB0aGlzLl9oaWdobGlnaHRTZWFyY2hNYXRjaEF0SW5kZXgoaW5kZXgpOwog
ICAgIH0KIAotICAgIHNlYXJjaEJhcldhbnRzVG9Mb3NlRm9jdXMoc2VhcmNoQmFyKQorICAgIGZp
bmRCYW5uZXJXYW50c1RvTG9zZUZvY3VzKGZpbmRCYW5uZXIpCiAgICAgewogICAgICAgICBpZiAo
dGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5sZW5ndGgpCiAgICAgICAgICAgICB0aGlzLm1lc3NhZ2Vz
RWxlbWVudC5mb2N1cygpOwpAQCAtMjQzLDEzICsyNTIsNiBAQCBXZWJJbnNwZWN0b3IuTG9nQ29u
dGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250
ZW50VgogICAgICAgICAgICAgdGhpcy5wcm9tcHQuZm9jdXMoKTsKICAgICB9CiAKLSAgICBzZWFy
Y2hCYXJEaWRBY3RpdmF0ZShzZWFyY2hCYXIpCi0gICAgewotICAgICAgICBpZiAoIWlzRW1wdHlP
YmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykpCi0gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRT
ZWFyY2hNYXRjaEF0SW5kZXgoMCk7Ci0gICAgICAgIHRoaXMucHJvbXB0LmZvY3VzKCk7Ci0gICAg
fQotCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX2Zvcm1hdE1lc3NhZ2VzQXNEYXRhKG9ubHlTZWxl
Y3RlZCkKQEAgLTg0OSwxOCArODUxLDMxIEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9
IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAg
ICAgICAgICBmb2N1c2FibGVFbGVtZW50c1tpXS5yZW1vdmVBdHRyaWJ1dGUoInRhYmluZGV4Iik7
CiAgICAgfQogCi0gICAgX3NlYXJjaFRleHREaWRDaGFuZ2UoZXZlbnQpCisgICAgZmluZEJhbm5l
clBlcmZvcm1TZWFyY2goZmluZEJhbm5lciwgc2VhcmNoVGVybXMpCisgICAgeworICAgICAgICB0
aGlzLl9wZXJmb3JtU2VhcmNoKHNlYXJjaFRlcm1zKTsKKyAgICB9CisKKyAgICBmaW5kQmFubmVy
U2VhcmNoQ2xlYXJlZCgpCiAgICAgewogICAgICAgICB0aGlzLl9wZXJmb3JtU2VhcmNoKCk7CiAg
ICAgfQogCi0gICAgX3BlcmZvcm1TZWFyY2goKQorICAgIHJldmVhbE5leHRTZWFyY2hSZXN1bHQo
KQorICAgIHsKKyAgICAgICAgdGhpcy5maW5kQmFubmVyUmV2ZWFsTmV4dFJlc3VsdCgpOworICAg
IH0KKworICAgIHJldmVhbFByZXZpb3VzU2VhcmNoUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRo
aXMuZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KCk7CisgICAgfQorCisgICAgX3BlcmZv
cm1TZWFyY2goc2VhcmNoVGVybXMgPSAiIikKICAgICB7CiAgICAgICAgIGlmICghaXNFbXB0eU9i
amVjdCh0aGlzLl9zZWFyY2hIaWdobGlnaHRET01DaGFuZ2VzKSkKICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5yZXZlcnREb21DaGFuZ2VzKHRoaXMuX3NlYXJjaEhpZ2hsaWdodERPTUNoYW5nZXMp
OwogCi0gICAgICAgIHZhciBzZWFyY2hUZXJtcyA9IHRoaXMuX3NlYXJjaEJhci50ZXh0OwotCiAg
ICAgICAgIGlmIChzZWFyY2hUZXJtcyA9PT0gIiIpIHsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9zZWxlY3RlZFNlYXJjaE1hdGNoOwogICAgICAgICAgICAgdGhpcy5fbWF0Y2hpbmdTZWFyY2hF
bGVtZW50cyA9IFtdOwpAQCAtODczLDYgKzg4OCw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50
VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRW
CiAgICAgICAgIHRoaXMuX3NlYXJjaEhpZ2hsaWdodERPTUNoYW5nZXMgPSBbXTsKICAgICAgICAg
dGhpcy5fc2VhcmNoTWF0Y2hlcyA9IFtdOwogICAgICAgICB0aGlzLl9zZWxlY3RlZFNlYXJjaE1h
dGhJc1ZhbGlkID0gZmFsc2U7CisgICAgICAgIGxldCBudW1iZXJPZlJlc3VsdHMgPSAwOwogCiAg
ICAgICAgIHZhciBzZWFyY2hSZWdleCA9IG5ldyBSZWdFeHAoc2VhcmNoVGVybXMuZXNjYXBlRm9y
UmVnRXhwKCksICJnaSIpOwogICAgICAgICB0aGlzLl91bmZpbHRlcmVkTWVzc2FnZUVsZW1lbnRz
KCkuZm9yRWFjaChmdW5jdGlvbihtZXNzYWdlKSB7CkBAIC04ODAsNiArODk2LDcgQEAgV2ViSW5z
cGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgICAgIHZhciB0ZXh0ID0gbWVzc2FnZS50ZXh0Q29u
dGVudDsKICAgICAgICAgICAgIHZhciBtYXRjaCA9IHNlYXJjaFJlZ2V4LmV4ZWModGV4dCk7CiAg
ICAgICAgICAgICB3aGlsZSAobWF0Y2gpIHsKKyAgICAgICAgICAgICAgICBudW1iZXJPZlJlc3Vs
dHMrKzsKICAgICAgICAgICAgICAgICBtYXRjaFJhbmdlcy5wdXNoKHsgb2Zmc2V0OiBtYXRjaC5p
bmRleCwgbGVuZ3RoOiBtYXRjaFswXS5sZW5ndGggfSk7CiAgICAgICAgICAgICAgICAgbWF0Y2gg
PSBzZWFyY2hSZWdleC5leGVjKHRleHQpOwogICAgICAgICAgICAgfQpAQCAtODk4LDYgKzkxNSw4
IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFNl
YXJjaE1hdGNoLmhpZ2hsaWdodC5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9zZWxlY3RlZFNlYXJjaE1hdGNoOwogICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fZmluZEJh
bm5lci5udW1iZXJPZlJlc3VsdHMgPSBudW1iZXJPZlJlc3VsdHM7CiAgICAgfQogCiAgICAgX2hp
Z2hsaWdodFJhbmdlcyhtZXNzYWdlLCBtYXRjaFJhbmdlcykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262211</attachid>
            <date>2015-09-30 17:20:41 -0700</date>
            <delta_ts>2015-10-08 17:26:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-149505-20151001012015.patch</filename>
            <type>text/plain</type>
            <size>14401</size>
            <attacher name="João Oliveira">hello</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA2
ZTI1ODA4YTQ2YjA2MWJhMzc0ZDczMmIyOWVhMzgxZTQyZjVjM2JhLi5jY2QzYjY3MGYxYmNhYjE2
YTYwNzI1NDlkN2Y0OGE2OTg5ODIzYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNS0wOS0zMCAgSm/Do28gT2xpdmVpcmEgIDxoZWxsb0BqeHMucHQ+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBTZWFyY2hCYXIgc2hvdWxkIHdvcmsgbW9y
ZSBsaWtlIENvbnRlbnRCcm93c2VyIEZpbmRCYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnNvbGUgdGFiIG5vdyB1c2VzIGZpbmRCYW5uZXIs
IGFkYXB0ZWQgTG9nQ29udGVudFZpZXcgdG8gdXNlIGZpbmRCYW5uZXIsCisgICAgICAgIGFuZCBm
aW5kQmFubmVyIHRvIGJlIG1vcmUgYWdub3N0aWMgdG8gYm90aCB1c2VjYXNlcywgZWl0aGVyIGFz
IGZpeGVkLCBvbiBjb25zb2xlIHRhYiwKKyAgICAgICAgYW5kIGhpZGVhYmxlIG9uIG90aGVyIGlu
c3BlY3RvciB0YWJzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVy
LmNzczoKKyAgICAgICAgKC5maW5kLWJhbm5lci5jb25zb2xlLWZpbmQtYmFubmVyKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRmluZEJhbm5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5wcm90
b3R5cGUuZm9jdXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIucHJvdG90eXBl
Lmxvc2VGb2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5wcm90b3R5cGUu
X2lucHV0RmllbGRLZXlEb3duKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5k
QmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVsZEtleVVwKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5faW5wdXRGaWVsZFNlYXJjaCk6IERlbGV0
ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBuYXZpZ2F0aW9uSXRlbXMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5oYW5kbGVGaW5kRXZlbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5maW5kQmFu
bmVyUmV2ZWFsUHJldmlvdXNSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5maW5kQmFubmVyUmV2ZWFsTmV4dFJlc3VsdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLmZpbmRCYW5uZXJQZXJmb3JtU2Vh
cmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUucmV2
ZWFsTmV4dFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZp
ZXcucHJvdG90eXBlLnJldmVhbFByZXZpb3VzU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3BlcmZvcm1TZWFyY2gpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5zZWFyY2hCYXJEaWRBY3Rp
dmF0ZSk6IERlbGV0ZWQuCisKIDIwMTUtMDktMjggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBIaXR0aW5nIEVTQyB3aGlsZSBl
ZGl0aW5nIGVsZW1lbnQgdGFnIG5hbWUgbGVhdmVzIGVsZW1lbnQgaW4gYmFkIHN0YXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFu
bmVyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRC
YW5uZXIuY3NzCmluZGV4IDJjMzk1YjdiMmMzYTFkZmY4YjVlMWMxZjE0MTY5MjU3ZDQyMTI1MTQu
LjU1ZjAxNDUwZjg0NGRlZDFjODMzNmE1YjE5ODBhZmUxZjI1MTQ4ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuY3NzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIu
Y3NzCkBAIC0xOTUsMyArMTk1LDkgQEAgYm9keS53aW5kb3ctaW5hY3RpdmUgLmZpbmQtYmFubmVy
IHsKICAgICBtYXJnaW46IDAgNnB4OwogICAgIGxpbmUtaGVpZ2h0OiAyMXB4OwogfQorCisuZmlu
ZC1iYW5uZXIuY29uc29sZS1maW5kLWJhbm5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOwor
ICAgIHRvcDogYXV0bzsKKyAgICBib3JkZXI6IDA7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qcwppbmRleCBhYmFk
NzUwZjM5YTY1NWFjOTgyYzFhOWU0M2YwN2ZjNWU0MjdiNTBkLi4xZDY5NjA1MWJiNDM4YmVmOGJj
NDk4N2UxNjNlMzI3YWNkZjRjMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuanMKQEAgLTIzLDE3ICsyMywxOSBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rv
ci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKK1dlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdl
Ykluc3BlY3Rvci5OYXZpZ2F0aW9uSXRlbQogewotICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlLCBl
bGVtZW50KQorICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlLCBjbGFzc05hbWUsIGZpeGVkID0gZmFs
c2UpCiAgICAgewogICAgICAgICBzdXBlcigpOwogCiAgICAgICAgIHRoaXMuX2RlbGVnYXRlID0g
ZGVsZWdhdGUgfHwgbnVsbDsKIAotICAgICAgICB0aGlzLl9lbGVtZW50ID0gZWxlbWVudCB8fCBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJmaW5kLWJhbm5lciIpOwogCisgICAgICAgIGlmIChjbGFzc05hbWUgJiYgY2xh
c3NOYW1lLmxlbmd0aCkKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChj
bGFzc05hbWUpOworCiAgICAgICAgIHRoaXMuX3Jlc3VsdENvdW50TGFiZWwgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX3Jlc3VsdENvdW50TGFiZWwpOwogCkBAIC02NSwyMiArNjcsMjUgQEAgV2ViSW5zcGVj
dG9yLkZpbmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAogICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLmluY3JlbWVudGFsID0gdHJ1ZTsKICAgICAg
ICAgdGhpcy5faW5wdXRGaWVsZC5zZXRBdHRyaWJ1dGUoInJlc3VsdHMiLCA1KTsKICAgICAgICAg
dGhpcy5faW5wdXRGaWVsZC5zZXRBdHRyaWJ1dGUoImF1dG9zYXZlIiwgImluc3BlY3Rvci1zZWFy
Y2giKTsKLSAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3du
IiwgdGhpcy5faW5wdXRGaWVsZEtleURvd24uYmluZCh0aGlzKSwgZmFsc2UpOwotICAgICAgICB0
aGlzLl9pbnB1dEZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5faW5wdXRGaWVs
ZEtleVVwLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5hZGRF
dmVudExpc3RlbmVyKCJzZWFyY2giLCB0aGlzLl9pbnB1dEZpZWxkU2VhcmNoLmJpbmQodGhpcyks
IGZhbHNlKTsKICAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9pbnB1dEZp
ZWxkKTsKIAotICAgICAgICB0aGlzLl9kb25lQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYnV0dG9uIik7Ci0gICAgICAgIHRoaXMuX2RvbmVCdXR0b24udGV4dENvbnRlbnQgPSBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkRvbmUiKTsKLSAgICAgICAgdGhpcy5fZG9uZUJ1dHRvbi5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2RvbmVCdXR0b25DbGlja2VkLmJpbmQodGhpcykp
OwotICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RvbmVCdXR0b24pOwor
ICAgICAgICBpZiAoZml4ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX2xvc2VGb2N1c0tleWJvYXJk
U2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV2ViSW5z
cGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5LkVzY2FwZSwgdGhpcy5sb3NlRm9jdXMuYmluZCh0
aGlzKSwgdGhpcy5fZWxlbWVudCk7CisgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlz
dC5hZGQoY2xhc3NOYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxldCBkb25l
QnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOworICAgICAg
ICAgICAgZG9uZUJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkRvbmUiKTsKKyAgICAgICAgICAgIGRvbmVCdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgdGhpcy5fZG9uZUJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSk7CisgICAgICAg
ICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGRvbmVCdXR0b25FbGVtZW50KTsKKyAgICAg
ICAgICAgIHRoaXMuX2hpZGVLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0KG51bGwsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2Nh
cGUsIHRoaXMuaGlkZS5iaW5kKHRoaXMpLCB0aGlzLl9lbGVtZW50KTsKKyAgICAgICAgfQogCiAg
ICAgICAgIHRoaXMuX251bWJlck9mUmVzdWx0cyA9IG51bGw7CiAgICAgICAgIHRoaXMuX3NlYXJj
aEJhY2t3YXJkcyA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zZWFyY2hLZXlQcmVzc2VkID0gZmFs
c2U7CiAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSAiIjsKIAotICAgICAgICB0
aGlzLl9oaWRlS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRXNjYXBlLCB0aGlz
LmhpZGUuYmluZCh0aGlzKSwgdGhpcy5fZWxlbWVudCk7CiAgICAgICAgIHRoaXMuX3BvcHVsYXRl
RmluZEtleWJvYXJkU2hvcnRjdXQgPSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQo
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXIuQ29tbWFuZE9yQ29udHJvbCwg
IkUiLCB0aGlzLl9wb3B1bGF0ZVNlYXJjaFF1ZXJ5RnJvbVNlbGVjdGlvbi5iaW5kKHRoaXMpKTsK
ICAgICAgICAgdGhpcy5fcG9wdWxhdGVGaW5kS2V5Ym9hcmRTaG9ydGN1dC5pbXBsaWNpdGx5UHJl
dmVudHNEZWZhdWx0ID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2ZpbmROZXh0S2V5Ym9hcmRTaG9y
dGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sLCAiRyIsIHRoaXMuX25leHRS
ZXN1bHRCdXR0b25DbGlja2VkLmJpbmQodGhpcykpOwpAQCAtMTg1LDYgKzE5MCwyNSBAQCBXZWJJ
bnNwZWN0b3IuRmluZEJhbm5lciA9IGNsYXNzIEZpbmRCYW5uZXIgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5jb250YWlu
cyhXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5TaG93aW5nU3R5bGVDbGFzc05hbWUpOwogICAgIH0K
IAorICAgIGZvY3VzKCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIGZvcjog
PGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0OTUwND4gQ2FyZXQgbWlzc2luZyBmcm9tIDxpbnB1dD4g
YWZ0ZXIgY2xlYXJpbmcgdGV4dCBhbmQgY2FsbGluZyBzZWxlY3QoKQorICAgICAgICBpZiAoIXRo
aXMuX2lucHV0RmllbGQudmFsdWUubGVuZ3RoKQorICAgICAgICAgICAgdGhpcy5faW5wdXRGaWVs
ZC5mb2N1cygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLnNl
bGVjdCgpOworICAgIH0KKworICAgIGxvc2VGb2N1cygpCisgICAgeworICAgICAgICBpZiAodGhp
cy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJXYW50c1RvTG9z
ZUZvY3VzID09PSAiZnVuY3Rpb24iKSB7CisgICAgICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLnZh
bHVlID0gIiI7CisgICAgICAgICAgICB0aGlzLl9wcmV2aW91c1NlYXJjaFZhbHVlID0gIiI7Cisg
ICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCgpOworICAg
ICAgICAgICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lcldhbnRzVG9Mb3NlRm9jdXMoKTsKKyAg
ICAgICAgfQorICAgIH0KKwogICAgIHNob3coKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3Nl
cnQodGhpcy5fdGFyZ2V0RWxlbWVudCk7CkBAIC0yNDMsNDQgKzI2NywxOCBAQCBXZWJJbnNwZWN0
b3IuRmluZEJhbm5lciA9IGNsYXNzIEZpbmRCYW5uZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2Jq
ZWN0CiAKICAgICAvLyBQcml2YXRlCiAKLSAgICBfaW5wdXRGaWVsZEtleURvd24oZXZlbnQpCi0g
ICAgewotICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlNoaWZ0IikKLSAgICAg
ICAgICAgIHRoaXMuX3NlYXJjaEJhY2t3YXJkcyA9IHRydWU7Ci0gICAgICAgIGVsc2UgaWYgKGV2
ZW50LmtleUlkZW50aWZpZXIgPT09ICJFbnRlciIpCi0gICAgICAgICAgICB0aGlzLl9zZWFyY2hL
ZXlQcmVzc2VkID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBfaW5wdXRGaWVsZEtleVVwKGV2ZW50KQot
ICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJTaGlmdCIpCi0gICAg
ICAgICAgICB0aGlzLl9zZWFyY2hCYWNrd2FyZHMgPSBmYWxzZTsKLSAgICAgICAgZWxzZSBpZiAo
ZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkVudGVyIikKLSAgICAgICAgICAgIHRoaXMuX3NlYXJj
aEtleVByZXNzZWQgPSBmYWxzZTsKLSAgICB9Ci0KICAgICBfaW5wdXRGaWVsZFNlYXJjaChldmVu
dCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9pbnB1dEZpZWxkLnZhbHVlKSB7CiAgICAgICAg
ICAgICBpZiAodGhpcy5fcHJldmlvdXNTZWFyY2hWYWx1ZSAhPT0gdGhpcy5zZWFyY2hRdWVyeSkg
ewogICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVs
ZWdhdGUuZmluZEJhbm5lclBlcmZvcm1TZWFyY2ggPT09ICJmdW5jdGlvbiIpCiAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJQZXJmb3JtU2VhcmNoKHRoaXMsIHRo
aXMuc2VhcmNoUXVlcnkpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9zZWFyY2hLZXlQ
cmVzc2VkICYmIHRoaXMuX251bWJlck9mUmVzdWx0cyA+IDApIHsKLSAgICAgICAgICAgICAgICBp
ZiAodGhpcy5fc2VhcmNoQmFja3dhcmRzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlz
Ll9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclJldmVhbFByZXZp
b3VzUmVzdWx0ID09PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5f
ZGVsZWdhdGUuZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KHRoaXMpOwotICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAm
JiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclJldmVhbE5leHRSZXN1bHQgPT09ICJm
dW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFu
bmVyUmV2ZWFsTmV4dFJlc3VsdCh0aGlzKTsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0aGlzLm51bWJlck9mUmVzdWx0cyA9
IG51bGw7Ci0KICAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5f
ZGVsZWdhdGUuZmluZEJhbm5lclNlYXJjaENsZWFyZWQgPT09ICJmdW5jdGlvbiIpCiAgICAgICAg
ICAgICAgICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclNlYXJjaENsZWFyZWQodGhpcyk7CiAg
ICAgICAgIH0KLQogICAgICAgICB0aGlzLl9wcmV2aW91c1NlYXJjaFZhbHVlID0gdGhpcy5zZWFy
Y2hRdWVyeTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKaW5kZXggMjE4ODZjMmViYTMw
ZGM2NjAzNzJjY2IxNmQ2YWM2NDc0M2Y4NDVhOS4uNmZlMGM4ODFiNTVmNzViZjI5MWZjZTEyZWQ5
NzIwMjQyN2IyZTJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMKQEAgLTU3LDggKzU3LDcgQEAg
V2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgdGhpcy5fbG9nVmlld0NvbnRyb2xsZXIg
PSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRMb2dWaWV3Q29udHJvbGxlcih0aGlzLm1lc3Nh
Z2VzRWxlbWVudCwgdGhpcy5lbGVtZW50LCB0aGlzLnByb21wdCwgdGhpcywgImNvbnNvbGUtcHJv
bXB0LWhpc3RvcnkiKTsKICAgICAgICAgdGhpcy5fbGFzdE1lc3NhZ2VWaWV3ID0gbnVsbDsKIAot
ICAgICAgICB0aGlzLl9zZWFyY2hCYXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNlYXJjaEJhcigibG9n
LXNlYXJjaC1iYXIiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZpbHRlciBDb25zb2xlIExvZyIp
LCB0aGlzKTsKLSAgICAgICAgdGhpcy5fc2VhcmNoQmFyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlNlYXJjaEJhci5FdmVudC5UZXh0Q2hhbmdlZCwgdGhpcy5fc2VhcmNoVGV4dERpZENo
YW5nZSwgdGhpcyk7CisgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LkZpbmRCYW5uZXIodGhpcywgImNvbnNvbGUtZmluZC1iYW5uZXIiLCB0cnVlKTsKIAogICAgICAg
ICB2YXIgc2NvcGVCYXJJdGVtcyA9IFsKICAgICAgICAgICAgIG5ldyBXZWJJbnNwZWN0b3IuU2Nv
cGVCYXJJdGVtKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TY29wZXMuQWxsLCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkFsbCIpLCB0cnVlKSwKQEAgLTkxLDcgKzkwLDcgQEAgV2ViSW5zcGVj
dG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuQ29udGVudFYKIAogICAgIGdldCBuYXZpZ2F0aW9uSXRlbXMoKQogICAgIHsKLSAgICAg
ICAgdmFyIG5hdmlnYXRpb25JdGVtcyA9IFt0aGlzLl9zZWFyY2hCYXIsIHRoaXMuX3Njb3BlQmFy
LCB0aGlzLl9jbGVhckxvZ05hdmlnYXRpb25JdGVtXTsKKyAgICAgICAgbGV0IG5hdmlnYXRpb25J
dGVtcyA9IFt0aGlzLl9maW5kQmFubmVyLCB0aGlzLl9zY29wZUJhciwgdGhpcy5fY2xlYXJMb2dO
YXZpZ2F0aW9uSXRlbV07CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuaXNTaG93aW5nU3BsaXRD
b25zb2xlKCkpCiAgICAgICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9zaG93Q29u
c29sZVRhYk5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgcmV0dXJuIG5hdmlnYXRpb25JdGVtczsK
QEAgLTE4OCw3ICsxODcsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBM
b2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICBpZiAo
IXRoaXMudmlzaWJsZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9zZWFy
Y2hCYXIuZm9jdXMoKTsKKyAgICAgICAgdGhpcy5fZmluZEJhbm5lci5mb2N1cygpOwogICAgIH0K
IAogICAgIGdldCBzdXBwb3J0c1NhdmUoKQpAQCAtMjE3LDYgKzIxNiwxMSBAQCBXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5Db250ZW50VgogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgIH0KIAor
ICAgIGZpbmRCYW5uZXJSZXZlYWxQcmV2aW91c1Jlc3VsdCgpCisgICAgeworICAgICAgICB0aGlz
LmhpZ2hsaWdodFByZXZpb3VzU2VhcmNoTWF0Y2goKTsKKyAgICB9CisKICAgICBoaWdobGlnaHRQ
cmV2aW91c1NlYXJjaE1hdGNoKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zZWFyY2hJblBy
b2dyZXNzIHx8IGlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykpCkBAIC0yMjYsNiAr
MjMwLDExIEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRW
aWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIHRoaXMuX2hpZ2hsaWdo
dFNlYXJjaE1hdGNoQXRJbmRleChpbmRleCAtIDEpOwogICAgIH0KIAorICAgIGZpbmRCYW5uZXJS
ZXZlYWxOZXh0UmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRoaXMuaGlnaGxpZ2h0TmV4dFNlYXJj
aE1hdGNoKCk7CisgICAgfQorCiAgICAgaGlnaGxpZ2h0TmV4dFNlYXJjaE1hdGNoKCkKICAgICB7
CiAgICAgICAgIGlmICghdGhpcy5zZWFyY2hJblByb2dyZXNzIHx8IGlzRW1wdHlPYmplY3QodGhp
cy5fc2VhcmNoTWF0Y2hlcykpCkBAIC0yMzUsNyArMjQ0LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0Nv
bnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29u
dGVudFYKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0U2VhcmNoTWF0Y2hBdEluZGV4KGluZGV4KTsK
ICAgICB9CiAKLSAgICBzZWFyY2hCYXJXYW50c1RvTG9zZUZvY3VzKHNlYXJjaEJhcikKKyAgICBm
aW5kQmFubmVyV2FudHNUb0xvc2VGb2N1cyhmaW5kQmFubmVyKQogICAgIHsKICAgICAgICAgaWYg
KHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5tZXNzYWdl
c0VsZW1lbnQuZm9jdXMoKTsKQEAgLTI0MywxMyArMjUyLDYgQEAgV2ViSW5zcGVjdG9yLkxvZ0Nv
bnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29u
dGVudFYKICAgICAgICAgICAgIHRoaXMucHJvbXB0LmZvY3VzKCk7CiAgICAgfQogCi0gICAgc2Vh
cmNoQmFyRGlkQWN0aXZhdGUoc2VhcmNoQmFyKQotICAgIHsKLSAgICAgICAgaWYgKCFpc0VtcHR5
T2JqZWN0KHRoaXMuX3NlYXJjaE1hdGNoZXMpKQotICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0
U2VhcmNoTWF0Y2hBdEluZGV4KDApOwotICAgICAgICB0aGlzLnByb21wdC5mb2N1cygpOwotICAg
IH0KLQogICAgIC8vIFByaXZhdGUKIAogICAgIF9mb3JtYXRNZXNzYWdlc0FzRGF0YShvbmx5U2Vs
ZWN0ZWQpCkBAIC04NDksMTggKzg1MSwzMSBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcg
PSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAg
ICAgICAgICAgZm9jdXNhYmxlRWxlbWVudHNbaV0ucmVtb3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIp
OwogICAgIH0KIAotICAgIF9zZWFyY2hUZXh0RGlkQ2hhbmdlKGV2ZW50KQorICAgIGZpbmRCYW5u
ZXJQZXJmb3JtU2VhcmNoKGZpbmRCYW5uZXIsIHNlYXJjaFRlcm1zKQorICAgIHsKKyAgICAgICAg
dGhpcy5fcGVyZm9ybVNlYXJjaChzZWFyY2hUZXJtcyk7CisgICAgfQorCisgICAgZmluZEJhbm5l
clNlYXJjaENsZWFyZWQoKQogICAgIHsKICAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCgpOwog
ICAgIH0KIAotICAgIF9wZXJmb3JtU2VhcmNoKCkKKyAgICByZXZlYWxOZXh0U2VhcmNoUmVzdWx0
KCkKKyAgICB7CisgICAgICAgIHRoaXMuZmluZEJhbm5lclJldmVhbE5leHRSZXN1bHQoKTsKKyAg
ICB9CisKKyAgICByZXZlYWxQcmV2aW91c1NlYXJjaFJlc3VsdCgpCisgICAgeworICAgICAgICB0
aGlzLmZpbmRCYW5uZXJSZXZlYWxQcmV2aW91c1Jlc3VsdCgpOworICAgIH0KKworICAgIF9wZXJm
b3JtU2VhcmNoKHNlYXJjaFRlcm1zID0gIiIpCiAgICAgewogICAgICAgICBpZiAoIWlzRW1wdHlP
YmplY3QodGhpcy5fc2VhcmNoSGlnaGxpZ2h0RE9NQ2hhbmdlcykpCiAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucmV2ZXJ0RG9tQ2hhbmdlcyh0aGlzLl9zZWFyY2hIaWdobGlnaHRET01DaGFuZ2Vz
KTsKIAotICAgICAgICB2YXIgc2VhcmNoVGVybXMgPSB0aGlzLl9zZWFyY2hCYXIudGV4dDsKLQog
ICAgICAgICBpZiAoc2VhcmNoVGVybXMgPT09ICIiKSB7CiAgICAgICAgICAgICBkZWxldGUgdGhp
cy5fc2VsZWN0ZWRTZWFyY2hNYXRjaDsKICAgICAgICAgICAgIHRoaXMuX21hdGNoaW5nU2VhcmNo
RWxlbWVudHMgPSBbXTsKQEAgLTg3Myw2ICs4ODgsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVu
dFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50
VgogICAgICAgICB0aGlzLl9zZWFyY2hIaWdobGlnaHRET01DaGFuZ2VzID0gW107CiAgICAgICAg
IHRoaXMuX3NlYXJjaE1hdGNoZXMgPSBbXTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTZWFyY2hN
YXRoSXNWYWxpZCA9IGZhbHNlOworICAgICAgICBsZXQgbnVtYmVyT2ZSZXN1bHRzID0gMDsKIAog
ICAgICAgICB2YXIgc2VhcmNoUmVnZXggPSBuZXcgUmVnRXhwKHNlYXJjaFRlcm1zLmVzY2FwZUZv
clJlZ0V4cCgpLCAiZ2kiKTsKICAgICAgICAgdGhpcy5fdW5maWx0ZXJlZE1lc3NhZ2VFbGVtZW50
cygpLmZvckVhY2goZnVuY3Rpb24obWVzc2FnZSkgewpAQCAtODgwLDYgKzg5Niw3IEBAIFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgICAgICB2YXIgdGV4dCA9IG1lc3NhZ2UudGV4dENv
bnRlbnQ7CiAgICAgICAgICAgICB2YXIgbWF0Y2ggPSBzZWFyY2hSZWdleC5leGVjKHRleHQpOwog
ICAgICAgICAgICAgd2hpbGUgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyT2ZSZXN1
bHRzKys7CiAgICAgICAgICAgICAgICAgbWF0Y2hSYW5nZXMucHVzaCh7IG9mZnNldDogbWF0Y2gu
aW5kZXgsIGxlbmd0aDogbWF0Y2hbMF0ubGVuZ3RoIH0pOwogICAgICAgICAgICAgICAgIG1hdGNo
ID0gc2VhcmNoUmVnZXguZXhlYyh0ZXh0KTsKICAgICAgICAgICAgIH0KQEAgLTg5OCw2ICs5MTUs
OCBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBl
eHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRT
ZWFyY2hNYXRjaC5oaWdobGlnaHQuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuTG9nQ29u
dGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICBkZWxldGUgdGhp
cy5fc2VsZWN0ZWRTZWFyY2hNYXRjaDsKICAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2ZpbmRC
YW5uZXIubnVtYmVyT2ZSZXN1bHRzID0gbnVtYmVyT2ZSZXN1bHRzOwogICAgIH0KIAogICAgIF9o
aWdobGlnaHRSYW5nZXMobWVzc2FnZSwgbWF0Y2hSYW5nZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262733</attachid>
            <date>2015-10-08 17:26:55 -0700</date>
            <delta_ts>2015-10-14 12:27:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-149505-20151009012622.patch</filename>
            <type>text/plain</type>
            <size>18376</size>
            <attacher name="João Oliveira">hello</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAz
ZmNhZWM1ZTc3YzkxMGVkYmY5YjI5NTI2ZWRkNTJjZDNiZDE4NjAwLi5lMDU5YjZjMzU1NWE3Mjk3
ZmIzNGJiZjE0M2U2YTRhZWM2NWIzOTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxNS0xMC0wOCAgSm/Do28gT2xpdmVpcmEgIDxoZWxsb0BqeHMucHQ+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZSBTZWFyY2hCYXIgc2hvdWxkIHdvcmsgbW9y
ZSBsaWtlIENvbnRlbnRCcm93c2VyIEZpbmRCYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTUwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnNvbGUgdGFiIG5vdyB1c2VzIGZpbmRCYW5uZXIs
IGFkYXB0ZWQgTG9nQ29udGVudFZpZXcgdG8gdXNlIGZpbmRCYW5uZXIsCisgICAgICAgIGFuZCBm
aW5kQmFubmVyIHRvIGJlIG1vcmUgYWdub3N0aWMgdG8gYm90aCB1c2VjYXNlcywgZWl0aGVyIGFz
IGZpeGVkLCBvbiBjb25zb2xlIHRhYiwKKyAgICAgICAgYW5kIGhpZGVhYmxlIG9uIG90aGVyIGlu
c3BlY3RvciB0YWJzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVy
LmNzczoKKyAgICAgICAgKC5maW5kLWJhbm5lci5jb25zb2xlLWZpbmQtYmFubmVyKToKKyAgICAg
ICAgKC5maW5kLWJhbm5lci5jb25zb2xlLWZpbmRiYW5uZXIgaW5wdXRbdHlwZT0ic2VhcmNoIl0p
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5GaW5kQmFubmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaW5kQmFu
bmVyLnNldCB0YXJnZXRFbGVtZW50LmRlbGF5ZWRXb3JrKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5GaW5kQmFubmVyLnByb3RvdHlwZS5zZXQgdGFyZ2V0RWxlbWVudCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRmluZEJhbm5lci5wcm90b3R5cGUuZ2V0IHNob3dpbmcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZpbmRCYW5uZXIucHJvdG90eXBlLmZvY3VzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5fY2xlYXJBbmRCbHVyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5zaG93LmRlbGF5ZWRXb3JrKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaW5kQmFubmVyLnByb3RvdHlwZS5oaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5GaW5kQmFubmVyLnByb3RvdHlwZS5nZXQgZWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRmluZEJhbm5lci5wcm90b3R5cGUuX2lucHV0RmllbGRTZWFyY2gpOiBEZWxl
dGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgbmF2aWdhdGlvbkl0ZW1zKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuaGFuZGxlRmluZEV2ZW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuZmluZEJh
bm5lclJldmVhbFByZXZpb3VzUmVzdWx0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50Vmlldy5wcm90b3R5cGUuZmluZEJhbm5lclJldmVhbE5leHRSZXN1bHQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fZmlsdGVyTWVzc2FnZUVsZW1l
bnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuZmlu
ZEJhbm5lclBlcmZvcm1TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLnJldmVhbE5leHRTZWFyY2hSZXN1bHQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5yZXZlYWxQcmV2
aW91c1NlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLl9wZXJmb3JtU2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50Vmlldy5wcm90b3R5cGUuc2VhcmNoQmFyRGlkQWN0aXZhdGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fc2VhcmNoVGV4dERpZENo
YW5nZSk6IERlbGV0ZWQuCisKIDIwMTUtMTAtMDggIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHll
dkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQW4gZXJyb3IgdmlldyBkb2Vz
bid0IGdldCBleHBhbmRlZCBieSBjbGlja2luZyBvbiB0aGUgZXhwYW5kIGFycm93CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVy
LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5u
ZXIuY3NzCmluZGV4IDRiY2FmOWUzOGI2MjZhZWE5MTA4MDkwOWU2MDIzNmY1ODU1Y2Q2ZWIuLmJl
ODVkMzg3NGNlNDA4OGQwYjc5YTg4OWNlYTdjNTlhMmM3MzE4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuY3NzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRCYW5uZXIuY3Nz
CkBAIC0xODgsMyArMTg4LDEzIEBAIGJvZHkud2luZG93LWluYWN0aXZlIC5maW5kLWJhbm5lciB7
CiAgICAgbWFyZ2luOiAwIDZweDsKICAgICBsaW5lLWhlaWdodDogMjFweDsKIH0KKworLmZpbmQt
YmFubmVyLmNvbnNvbGUtZmluZC1iYW5uZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICB0b3A6IGF1dG87CisgICAgYm9yZGVyOiAwOworfQorCisuZmluZC1iYW5uZXIuY29uc29sZS1m
aW5kYmFubmVyIGlucHV0W3R5cGU9InNlYXJjaCJdIHsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBo
c2xhKDAsIDAlLCAwJSwgMC4zNSk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJh
bm5lci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZpbmRC
YW5uZXIuanMKaW5kZXggYWJhZDc1MGYzOWE2NTVhYzk4MmMxYTllNDNmMDdmYzVlNDI3YjUwZC4u
MzMxMmY2Mzc5YWUzZDA2NWI5MTYyZjgzMzcwMmMxYzdhMDI4Yzk1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRmluZEJhbm5lci5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GaW5kQmFubmVyLmpz
CkBAIC0yMywyNiArMjMsMjggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi1XZWJJbnNwZWN0b3IuRmluZEJhbm5lciA9IGNsYXNzIEZpbmRCYW5uZXIgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuRmluZEJhbm5lciA9IGNsYXNzIEZp
bmRCYW5uZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuTmF2aWdhdGlvbkl0ZW0KIHsKLSAgICBjb25z
dHJ1Y3RvcihkZWxlZ2F0ZSwgZWxlbWVudCkKKyAgICBjb25zdHJ1Y3RvcihkZWxlZ2F0ZSwgY2xh
c3NOYW1lLCBmaXhlZCA9IGZhbHNlKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKIAogICAgICAg
ICB0aGlzLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlIHx8IG51bGw7CiAKLSAgICAgICAgdGhpcy5fZWxl
bWVudCA9IGVsZW1lbnQgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAg
IHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZmluZC1iYW5uZXIiKTsKKyAgICAgICAgdGhp
cy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImZpbmQtYmFubmVyIik7CisKKyAgICAgICAgaWYgKGNs
YXNzTmFtZSkKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFt
ZSk7CiAKICAgICAgICAgdGhpcy5fcmVzdWx0Q291bnRMYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImxhYmVsIik7Ci0gICAgICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
cmVzdWx0Q291bnRMYWJlbCk7CisgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlz
Ll9yZXN1bHRDb3VudExhYmVsKTsKIAogICAgICAgICB0aGlzLl9wcmV2aW91c1Jlc3VsdEJ1dHRv
biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwogICAgICAgICB0aGlzLl9wcmV2
aW91c1Jlc3VsdEJ1dHRvbi5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLlNl
Z21lbnRlZEJ1dHRvblN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgdGhpcy5fcHJldmlvdXNSZXN1
bHRCdXR0b24uY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5MZWZ0U2VnbWVu
dEJ1dHRvblN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgdGhpcy5fcHJldmlvdXNSZXN1bHRCdXR0
b24uZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICB0aGlzLl9wcmV2aW91c1Jlc3VsdEJ1dHRvbi5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3ByZXZpb3VzUmVzdWx0QnV0dG9uQ2xpY2tl
ZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9w
cmV2aW91c1Jlc3VsdEJ1dHRvbik7CisgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLl9wcmV2aW91c1Jlc3VsdEJ1dHRvbik7CiAKICAgICAgICAgdmFyIHByZXZpb3VzUmVzdWx0
QnV0dG9uR2x5cGhFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAg
ICAgIHByZXZpb3VzUmVzdWx0QnV0dG9uR2x5cGhFbGVtZW50LmNsYXNzTGlzdC5hZGQoV2ViSW5z
cGVjdG9yLkZpbmRCYW5uZXIuU2VnbWVudEdseXBoU3R5bGVDbGFzc05hbWUpOwpAQCAtNTMsNyAr
NTUsNyBAQCBXZWJJbnNwZWN0b3IuRmluZEJhbm5lciA9IGNsYXNzIEZpbmRCYW5uZXIgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX25leHRSZXN1bHRCdXR0b24uY2xh
c3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5SaWdodFNlZ21lbnRCdXR0b25TdHls
ZUNsYXNzTmFtZSk7CiAgICAgICAgIHRoaXMuX25leHRSZXN1bHRCdXR0b24uZGlzYWJsZWQgPSB0
cnVlOwogICAgICAgICB0aGlzLl9uZXh0UmVzdWx0QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5fbmV4dFJlc3VsdEJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSk7Ci0gICAgICAg
IHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbmV4dFJlc3VsdEJ1dHRvbik7CisgICAg
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9uZXh0UmVzdWx0QnV0dG9uKTsKIAog
ICAgICAgICB2YXIgbmV4dFJlc3VsdEJ1dHRvbkdseXBoRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBuZXh0UmVzdWx0QnV0dG9uR2x5cGhFbGVtZW50LmNs
YXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIuU2VnbWVudEdseXBoU3R5bGVDbGFz
c05hbWUpOwpAQCAtNjgsMTkgKzcwLDI0IEBAIFdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xh
c3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5f
aW5wdXRGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5faW5wdXRGaWVsZEtl
eURvd24uYmluZCh0aGlzKSwgZmFsc2UpOwogICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLmFkZEV2
ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5faW5wdXRGaWVsZEtleVVwLmJpbmQodGhpcyksIGZh
bHNlKTsKICAgICAgICAgdGhpcy5faW5wdXRGaWVsZC5hZGRFdmVudExpc3RlbmVyKCJzZWFyY2gi
LCB0aGlzLl9pbnB1dEZpZWxkU2VhcmNoLmJpbmQodGhpcyksIGZhbHNlKTsKLSAgICAgICAgdGhp
cy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9pbnB1dEZpZWxkKTsKKyAgICAgICAgdGhpcy5l
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2lucHV0RmllbGQpOwogCi0gICAgICAgIHRoaXMuX2Rv
bmVCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKLSAgICAgICAgdGhp
cy5fZG9uZUJ1dHRvbi50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9uZSIp
OwotICAgICAgICB0aGlzLl9kb25lQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhp
cy5fZG9uZUJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX2VsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fZG9uZUJ1dHRvbik7CisgICAgICAgIGlmIChmaXhlZCkgeworICAg
ICAgICAgICAgdGhpcy5fY2xlYXJBbmRCbHVyS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dC5LZXkuRXNjYXBlLCB0aGlzLl9jbGVhckFuZEJsdXIuYmluZCh0aGlzKSwgdGhpcy5lbGVtZW50
KTsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsZXQgZG9uZUJ1dHRvbkVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKKyAgICAgICAgICAgIGRvbmVCdXR0b25FbGVt
ZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb25lIik7CisgICAgICAg
ICAgICBkb25lQnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2Rv
bmVCdXR0b25DbGlja2VkLmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFw
cGVuZENoaWxkKGRvbmVCdXR0b25FbGVtZW50KTsKKyAgICAgICAgICAgIHRoaXMuX2hpZGVLZXli
b2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUsIHRoaXMuaGlkZS5iaW5kKHRo
aXMpLCB0aGlzLmVsZW1lbnQpOworICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fbnVtYmVyT2ZS
ZXN1bHRzID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2VhcmNoQmFja3dhcmRzID0gZmFsc2U7CiAg
ICAgICAgIHRoaXMuX3NlYXJjaEtleVByZXNzZWQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fcHJl
dmlvdXNTZWFyY2hWYWx1ZSA9ICIiOwogCi0gICAgICAgIHRoaXMuX2hpZGVLZXlib2FyZFNob3J0
Y3V0ID0gbmV3IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdlYkluc3BlY3Rv
ci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUsIHRoaXMuaGlkZS5iaW5kKHRoaXMpLCB0aGlz
Ll9lbGVtZW50KTsKICAgICAgICAgdGhpcy5fcG9wdWxhdGVGaW5kS2V5Ym9hcmRTaG9ydGN1dCA9
IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dC5Nb2RpZmllci5Db21tYW5kT3JDb250cm9sLCAiRSIsIHRoaXMuX3BvcHVsYXRlU2Vh
cmNoUXVlcnlGcm9tU2VsZWN0aW9uLmJpbmQodGhpcykpOwogICAgICAgICB0aGlzLl9wb3B1bGF0
ZUZpbmRLZXlib2FyZFNob3J0Y3V0LmltcGxpY2l0bHlQcmV2ZW50c0RlZmF1bHQgPSBmYWxzZTsK
ICAgICAgICAgdGhpcy5fZmluZE5leHRLZXlib2FyZFNob3J0Y3V0ID0gbmV3IFdlYkluc3BlY3Rv
ci5LZXlib2FyZFNob3J0Y3V0KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVy
LkNvbW1hbmRPckNvbnRyb2wsICJHIiwgdGhpcy5fbmV4dFJlc3VsdEJ1dHRvbkNsaWNrZWQuYmlu
ZCh0aGlzKSk7CkBAIC0xMDMsMTEgKzExMCw2IEBAIFdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0g
Y2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhp
cy5fZGVsZWdhdGUgPSBuZXdEZWxlZ2F0ZSB8fCBudWxsOwogICAgIH0KIAotICAgIGdldCBlbGVt
ZW50KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OwotICAgIH0KLQogICAg
IGdldCBpbnB1dEZpZWxkKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9pbnB1dEZpZWxk
OwpAQCAtMTU3LDcgKzE1OSw3IEBAIFdlYkluc3BlY3Rvci5GaW5kQmFubmVyID0gY2xhc3MgRmlu
ZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgZnVuY3Rpb24gZGVs
YXllZFdvcmsoKQogICAgICAgICB7CiAgICAgICAgICAgICBvbGRUYXJnZXRFbGVtZW50LmNsYXNz
TGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIuTm9UcmFuc2l0aW9uU3R5bGVDbGFz
c05hbWUpOwotICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdlYklu
c3BlY3Rvci5GaW5kQmFubmVyLk5vVHJhbnNpdGlvblN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAg
ICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5GaW5kQmFubmVy
Lk5vVHJhbnNpdGlvblN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0
aGlzLl90YXJnZXRFbGVtZW50KSB7CkBAIC0xNjcsOCArMTY5LDggQEAgV2ViSW5zcGVjdG9yLkZp
bmRCYW5uZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAog
ICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3Bl
Y3Rvci5GaW5kQmFubmVyLlN1cHBvcnRzRmluZEJhbm5lclN0eWxlQ2xhc3NOYW1lKTsKICAgICAg
ICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3Iu
RmluZEJhbm5lci5TaG93aW5nRmluZEJhbm5lclN0eWxlQ2xhc3NOYW1lKTsKIAotICAgICAgICAg
ICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLk5v
VHJhbnNpdGlvblN0eWxlQ2xhc3NOYW1lKTsKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xh
c3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuRmluZEJhbm5lci5TaG93aW5nU3R5bGVDbGFzc05h
bWUpOworICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9y
LkZpbmRCYW5uZXIuTm9UcmFuc2l0aW9uU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgdGhp
cy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIuU2hvd2lu
Z1N0eWxlQ2xhc3NOYW1lKTsKIAogICAgICAgICAgICAgLy8gRGVsYXkgc28gd2UgY2FuIHJlbW92
ZSB0aGUgbm8gdHJhbnNpdGlvbiBzdHlsZSBjbGFzcyBhZnRlciB0aGUgb3RoZXIgc3R5bGUgY2hh
bmdlcyBhcmUgY29tbWl0dGVkLgogICAgICAgICAgICAgc2V0VGltZW91dChkZWxheWVkV29yay5i
aW5kKHRoaXMpLCAwKTsKQEAgLTE4Miw3ICsxODQsMjYgQEAgV2ViSW5zcGVjdG9yLkZpbmRCYW5u
ZXIgPSBjbGFzcyBGaW5kQmFubmVyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAg
Z2V0IHNob3dpbmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQuY2xhc3NM
aXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLlNob3dpbmdTdHlsZUNsYXNzTmFt
ZSk7CisgICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFdlYklu
c3BlY3Rvci5GaW5kQmFubmVyLlNob3dpbmdTdHlsZUNsYXNzTmFtZSk7CisgICAgfQorCisgICAg
Zm9jdXMoKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgZm9yOiA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTQ5NTA0PiBDYXJldCBtaXNzaW5nIGZyb20gPGlucHV0PiBhZnRlciBj
bGVhcmluZyB0ZXh0IGFuZCBjYWxsaW5nIHNlbGVjdCgpCisgICAgICAgIGlmICghdGhpcy5faW5w
dXRGaWVsZC52YWx1ZS5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLl9pbnB1dEZpZWxkLmZvY3Vz
KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuc2VsZWN0KCk7
CisgICAgfQorCisgICAgX2NsZWFyQW5kQmx1cigpCisgICAgeworICAgICAgICB0aGlzLl9pbnB1
dEZpZWxkLnZhbHVlID0gIiI7CisgICAgICAgIHRoaXMuX3ByZXZpb3VzU2VhcmNoVmFsdWUgPSAi
IjsKKyAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJTZWFyY2hDbGVhcmVkKQor
ICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lclNlYXJjaENsZWFyZWQoKTsKKyAg
ICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlLmZpbmRCYW5uZXJXYW50c1RvQ2xlYXJBbmRCbHVyKQor
ICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuZmluZEJhbm5lcldhbnRzVG9DbGVhckFuZEJsdXIo
KTsKICAgICB9CiAKICAgICBzaG93KCkKQEAgLTE5NSwxMyArMjE2LDEzIEBAIFdlYkluc3BlY3Rv
ci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKICAgICAgICAgaWYgKCF0aGlzLl90YXJnZXRFbGVtZW50LnBhcmVudE5vZGUpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSAhPT0g
dGhpcy5fdGFyZ2V0RWxlbWVudC5wYXJlbnROb2RlKQotICAgICAgICAgICAgdGhpcy5fdGFyZ2V0
RWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLl9lbGVtZW50LCB0aGlzLl90YXJn
ZXRFbGVtZW50KTsKKyAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5wYXJlbnROb2RlICE9PSB0aGlz
Ll90YXJnZXRFbGVtZW50LnBhcmVudE5vZGUpCisgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVt
ZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuZWxlbWVudCwgdGhpcy5fdGFyZ2V0RWxl
bWVudCk7CiAKICAgICAgICAgZnVuY3Rpb24gZGVsYXllZFdvcmsoKQogICAgICAgICB7CiAgICAg
ICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkZp
bmRCYW5uZXIuU2hvd2luZ0ZpbmRCYW5uZXJTdHlsZUNsYXNzTmFtZSk7Ci0gICAgICAgICAgICB0
aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkZpbmRCYW5uZXIuU2hvd2lu
Z1N0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLlNob3dpbmdTdHlsZUNsYXNzTmFtZSk7CiAKICAgICAg
ICAgICAgIHRoaXMuX2lucHV0RmllbGQuc2VsZWN0KCk7CiAgICAgICAgIH0KQEAgLTIyMiw3ICsy
NDMsNyBAQCBXZWJJbnNwZWN0b3IuRmluZEJhbm5lciA9IGNsYXNzIEZpbmRCYW5uZXIgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX2lucHV0RmllbGQuYmx1cigpOwog
CiAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0
b3IuRmluZEJhbm5lci5TaG93aW5nRmluZEJhbm5lclN0eWxlQ2xhc3NOYW1lKTsKLSAgICAgICAg
dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLlNo
b3dpbmdTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QucmVt
b3ZlKFdlYkluc3BlY3Rvci5GaW5kQmFubmVyLlNob3dpbmdTdHlsZUNsYXNzTmFtZSk7CiAKICAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkZpbmRCYW5u
ZXIuRXZlbnQuRGlkSGlkZSk7CiAgICAgfQpAQCAtMjc2LDcgKzI5Nyw2IEBAIFdlYkluc3BlY3Rv
ci5GaW5kQmFubmVyID0gY2xhc3MgRmluZEJhbm5lciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMubnVt
YmVyT2ZSZXN1bHRzID0gbnVsbDsKLQogICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYm
IHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xlYXJlZCA9PT0gImZ1bmN0
aW9uIikKICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5maW5kQmFubmVyU2VhcmNoQ2xl
YXJlZCh0aGlzKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwppbmRleCAyMTg4NmMy
ZWJhMzBkYzY2MDM3MmNjYjE2ZDZhYzY0NzQzZjg0NWE5Li41NzFjNGZmNjdjOGY3NzI3YjdhZWM5
OGY1MDZlOTAxYWNhMTQ1YzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpAQCAtNTcsOCArNTcs
NyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBl
eHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICB0aGlzLl9sb2dWaWV3Q29udHJv
bGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdExvZ1ZpZXdDb250cm9sbGVyKHRoaXMu
bWVzc2FnZXNFbGVtZW50LCB0aGlzLmVsZW1lbnQsIHRoaXMucHJvbXB0LCB0aGlzLCAiY29uc29s
ZS1wcm9tcHQtaGlzdG9yeSIpOwogICAgICAgICB0aGlzLl9sYXN0TWVzc2FnZVZpZXcgPSBudWxs
OwogCi0gICAgICAgIHRoaXMuX3NlYXJjaEJhciA9IG5ldyBXZWJJbnNwZWN0b3IuU2VhcmNoQmFy
KCJsb2ctc2VhcmNoLWJhciIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmlsdGVyIENvbnNvbGUg
TG9nIiksIHRoaXMpOwotICAgICAgICB0aGlzLl9zZWFyY2hCYXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuU2VhcmNoQmFyLkV2ZW50LlRleHRDaGFuZ2VkLCB0aGlzLl9zZWFyY2hUZXh0
RGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fZmluZEJhbm5lciA9IG5ldyBXZWJJbnNw
ZWN0b3IuRmluZEJhbm5lcih0aGlzLCAiY29uc29sZS1maW5kLWJhbm5lciIsIHRydWUpOwogCiAg
ICAgICAgIHZhciBzY29wZUJhckl0ZW1zID0gWwogICAgICAgICAgICAgbmV3IFdlYkluc3BlY3Rv
ci5TY29wZUJhckl0ZW0oV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNjb3Blcy5BbGwsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiQWxsIiksIHRydWUpLApAQCAtOTEsNyArOTAsNyBAQCBXZWJJ
bnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdl
Ykluc3BlY3Rvci5Db250ZW50VgogCiAgICAgZ2V0IG5hdmlnYXRpb25JdGVtcygpCiAgICAgewot
ICAgICAgICB2YXIgbmF2aWdhdGlvbkl0ZW1zID0gW3RoaXMuX3NlYXJjaEJhciwgdGhpcy5fc2Nv
cGVCYXIsIHRoaXMuX2NsZWFyTG9nTmF2aWdhdGlvbkl0ZW1dOworICAgICAgICBsZXQgbmF2aWdh
dGlvbkl0ZW1zID0gW3RoaXMuX2ZpbmRCYW5uZXIsIHRoaXMuX3Njb3BlQmFyLCB0aGlzLl9jbGVh
ckxvZ05hdmlnYXRpb25JdGVtXTsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5pc1Nob3dpbmdT
cGxpdENvbnNvbGUoKSkKICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRoaXMuX3No
b3dDb25zb2xlVGFiTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0
ZW1zOwpAQCAtMTg4LDcgKzE4Nyw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNs
YXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAg
IGlmICghdGhpcy52aXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMu
X3NlYXJjaEJhci5mb2N1cygpOworICAgICAgICB0aGlzLl9maW5kQmFubmVyLmZvY3VzKCk7CiAg
ICAgfQogCiAgICAgZ2V0IHN1cHBvcnRzU2F2ZSgpCkBAIC0yMTcsNiArMjE2LDExIEBAIFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAg
fQogCisgICAgZmluZEJhbm5lclJldmVhbFByZXZpb3VzUmVzdWx0KCkKKyAgICB7CisgICAgICAg
IHRoaXMuaGlnaGxpZ2h0UHJldmlvdXNTZWFyY2hNYXRjaCgpOworICAgIH0KKwogICAgIGhpZ2hs
aWdodFByZXZpb3VzU2VhcmNoTWF0Y2goKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLnNlYXJj
aEluUHJvZ3Jlc3MgfHwgaXNFbXB0eU9iamVjdCh0aGlzLl9zZWFyY2hNYXRjaGVzKSkKQEAgLTIy
Niw2ICsyMzAsMTEgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29u
dGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgdGhpcy5faGln
aGxpZ2h0U2VhcmNoTWF0Y2hBdEluZGV4KGluZGV4IC0gMSk7CiAgICAgfQogCisgICAgZmluZEJh
bm5lclJldmVhbE5leHRSZXN1bHQoKQorICAgIHsKKyAgICAgICAgdGhpcy5oaWdobGlnaHROZXh0
U2VhcmNoTWF0Y2goKTsKKyAgICB9CisKICAgICBoaWdobGlnaHROZXh0U2VhcmNoTWF0Y2goKQog
ICAgIHsKICAgICAgICAgaWYgKCF0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgfHwgaXNFbXB0eU9iamVj
dCh0aGlzLl9zZWFyY2hNYXRjaGVzKSkKQEAgLTIzNSw3ICsyNDQsNyBAQCBXZWJJbnNwZWN0b3Iu
TG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rv
ci5Db250ZW50VgogICAgICAgICB0aGlzLl9oaWdobGlnaHRTZWFyY2hNYXRjaEF0SW5kZXgoaW5k
ZXgpOwogICAgIH0KIAotICAgIHNlYXJjaEJhcldhbnRzVG9Mb3NlRm9jdXMoc2VhcmNoQmFyKQor
ICAgIGZpbmRCYW5uZXJXYW50c1RvQ2xlYXJBbmRCbHVyKGZpbmRCYW5uZXIpCiAgICAgewogICAg
ICAgICBpZiAodGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5sZW5ndGgpCiAgICAgICAgICAgICB0aGlz
Lm1lc3NhZ2VzRWxlbWVudC5mb2N1cygpOwpAQCAtMjQzLDEzICsyNTIsNiBAQCBXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5Db250ZW50VgogICAgICAgICAgICAgdGhpcy5wcm9tcHQuZm9jdXMoKTsKICAgICB9CiAK
LSAgICBzZWFyY2hCYXJEaWRBY3RpdmF0ZShzZWFyY2hCYXIpCi0gICAgewotICAgICAgICBpZiAo
IWlzRW1wdHlPYmplY3QodGhpcy5fc2VhcmNoTWF0Y2hlcykpCi0gICAgICAgICAgICB0aGlzLl9o
aWdobGlnaHRTZWFyY2hNYXRjaEF0SW5kZXgoMCk7Ci0gICAgICAgIHRoaXMucHJvbXB0LmZvY3Vz
KCk7Ci0gICAgfQotCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX2Zvcm1hdE1lc3NhZ2VzQXNEYXRh
KG9ubHlTZWxlY3RlZCkKQEAgLTY5NCw3ICs2OTYsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVu
dFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50
VgogICAgICAgICAgICAgfQogICAgICAgICB9LCB0aGlzKTsKIAotICAgICAgICB0aGlzLl9wZXJm
b3JtU2VhcmNoKCk7CisgICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goIiIpOwogICAgIH0KIAog
ICAgIF9rZXlEb3duKGV2ZW50KQpAQCAtODQ5LDE4ICs4NTEsMzEgQEAgV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
Q29udGVudFYKICAgICAgICAgICAgIGZvY3VzYWJsZUVsZW1lbnRzW2ldLnJlbW92ZUF0dHJpYnV0
ZSgidGFiaW5kZXgiKTsKICAgICB9CiAKLSAgICBfc2VhcmNoVGV4dERpZENoYW5nZShldmVudCkK
KyAgICBmaW5kQmFubmVyUGVyZm9ybVNlYXJjaChmaW5kQmFubmVyLCBzZWFyY2hUZXJtcykKKyAg
ICB7CisgICAgICAgIHRoaXMuX3BlcmZvcm1TZWFyY2goc2VhcmNoVGVybXMpOworICAgIH0KKwor
ICAgIGZpbmRCYW5uZXJTZWFyY2hDbGVhcmVkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BlcmZv
cm1TZWFyY2goIiIpOworICAgIH0KKworICAgIHJldmVhbE5leHRTZWFyY2hSZXN1bHQoKQogICAg
IHsKLSAgICAgICAgdGhpcy5fcGVyZm9ybVNlYXJjaCgpOworICAgICAgICB0aGlzLmZpbmRCYW5u
ZXJSZXZlYWxOZXh0UmVzdWx0KCk7CiAgICAgfQogCi0gICAgX3BlcmZvcm1TZWFyY2goKQorICAg
IHJldmVhbFByZXZpb3VzU2VhcmNoUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHRoaXMuZmluZEJh
bm5lclJldmVhbFByZXZpb3VzUmVzdWx0KCk7CisgICAgfQorCisgICAgX3BlcmZvcm1TZWFyY2go
c2VhcmNoVGVybXMpCiAgICAgewogICAgICAgICBpZiAoIWlzRW1wdHlPYmplY3QodGhpcy5fc2Vh
cmNoSGlnaGxpZ2h0RE9NQ2hhbmdlcykpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucmV2ZXJ0
RG9tQ2hhbmdlcyh0aGlzLl9zZWFyY2hIaWdobGlnaHRET01DaGFuZ2VzKTsKIAotICAgICAgICB2
YXIgc2VhcmNoVGVybXMgPSB0aGlzLl9zZWFyY2hCYXIudGV4dDsKLQogICAgICAgICBpZiAoc2Vh
cmNoVGVybXMgPT09ICIiKSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRTZWFy
Y2hNYXRjaDsKICAgICAgICAgICAgIHRoaXMuX21hdGNoaW5nU2VhcmNoRWxlbWVudHMgPSBbXTsK
QEAgLTg3Myw2ICs4ODgsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBM
b2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VgogICAgICAgICB0aGlz
Ll9zZWFyY2hIaWdobGlnaHRET01DaGFuZ2VzID0gW107CiAgICAgICAgIHRoaXMuX3NlYXJjaE1h
dGNoZXMgPSBbXTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRoSXNWYWxpZCA9IGZh
bHNlOworICAgICAgICBsZXQgbnVtYmVyT2ZSZXN1bHRzID0gMDsKIAogICAgICAgICB2YXIgc2Vh
cmNoUmVnZXggPSBuZXcgUmVnRXhwKHNlYXJjaFRlcm1zLmVzY2FwZUZvclJlZ0V4cCgpLCAiZ2ki
KTsKICAgICAgICAgdGhpcy5fdW5maWx0ZXJlZE1lc3NhZ2VFbGVtZW50cygpLmZvckVhY2goZnVu
Y3Rpb24obWVzc2FnZSkgewpAQCAtODgwLDYgKzg5Niw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRl
bnRWCiAgICAgICAgICAgICB2YXIgdGV4dCA9IG1lc3NhZ2UudGV4dENvbnRlbnQ7CiAgICAgICAg
ICAgICB2YXIgbWF0Y2ggPSBzZWFyY2hSZWdleC5leGVjKHRleHQpOwogICAgICAgICAgICAgd2hp
bGUgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyT2ZSZXN1bHRzKys7CiAgICAgICAg
ICAgICAgICAgbWF0Y2hSYW5nZXMucHVzaCh7IG9mZnNldDogbWF0Y2guaW5kZXgsIGxlbmd0aDog
bWF0Y2hbMF0ubGVuZ3RoIH0pOwogICAgICAgICAgICAgICAgIG1hdGNoID0gc2VhcmNoUmVnZXgu
ZXhlYyh0ZXh0KTsKICAgICAgICAgICAgIH0KQEAgLTg5OCw2ICs5MTUsOCBAQCBXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5Db250ZW50VgogICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTZWFyY2hNYXRjaC5oaWdo
bGlnaHQuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0
ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRTZWFy
Y2hNYXRjaDsKICAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIubnVtYmVyT2ZS
ZXN1bHRzID0gbnVtYmVyT2ZSZXN1bHRzOwogICAgIH0KIAogICAgIF9oaWdobGlnaHRSYW5nZXMo
bWVzc2FnZSwgbWF0Y2hSYW5nZXMpCg==
</data>
<flag name="review"
          id="287925"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="288288"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>