<?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>140580</bug_id>
          
          <creation_ts>2015-01-16 17:53:11 -0800</creation_ts>
          <short_desc>Web Inspector: Tweak the styles on the Console</short_desc>
          <delta_ts>2017-06-04 12:37:42 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=140696</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=142073</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=172805</see_also>
          <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="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>mkwst</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>1062061</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-01-16 17:53:11 -0800</bug_when>
    <thetext>The console feels dated with monospace font for everything.

Some tweaks we should make:

* Use Menlo only for code. Use the system font for everything else.
* Syntax highlight previous command, don&apos;t force them to be all blue text.
* Color the background for errors and warnings.
* Bump the fond and margins a bit.
* Use less disclosure triangles for things. Especially for errors and stack traces.

These tweaks are shown in a static demo here: http://timothy.hatcher.name/console/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062062</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-01-16 17:53:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/19507400&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062082</commentid>
    <comment_count>2</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-01-16 19:49:58 -0800</bug_when>
    <thetext>See bug 100302 for Nikita&apos;s old attempt at some of this, that was rejected by Chrome dev.

Lets prevail!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064651</commentid>
    <comment_count>3</comment_count>
      <attachid>245468</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-01-27 14:17:08 -0800</bug_when>
    <thetext>Created attachment 245468
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064652</commentid>
    <comment_count>4</comment_count>
      <attachid>245469</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-01-27 14:18:01 -0800</bug_when>
    <thetext>Created attachment 245469
[Image] WIP

Screenshot of the WIP patch applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064653</commentid>
    <comment_count>5</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-01-27 14:22:05 -0800</bug_when>
    <thetext>I’m aware of the following problems:
– vertical misalignment of Menlo text when it’s on the same line with non-monospace Helvetica;
– smaller font size for console.error messages;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065461</commentid>
    <comment_count>6</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-01-29 19:42:00 -0800</bug_when>
    <thetext>How are we going to display objects for

    console.log(&quot;Document: %o. Window: %o&quot;, document, window)

?

This is how it is now: https://cldup.com/l76xpiPkSD.gif

The current same line object expansion is hideous. There are a few options to make it better:

1. Don’t allow expansion for the %o objects, just show the previews. If a person wants an object to be expandable, they should use a separate console.log (without %o) to log it on a separate line.

2. Another option would be &quot;tabs&quot; – only one object could be expanded at the time. E.g.  expanding &quot;window&quot; would collapse document, and vice versa. The expanded object could be displayed one line below the the &quot;Document: {...} . Window: {...}&quot; line.

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065463</commentid>
    <comment_count>7</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-01-29 20:07:04 -0800</bug_when>
    <thetext>Firefox DevTools and Firebug expand objects on the sidebar:

https://cldup.com/R8riS5JrqF.gif

I have to admit I actually like it.

There is no indication which object is expanded; it could be improved it by highlighting it.

Also, notice non-monospace sans-serif font.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065492</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-01-29 22:10:37 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Firefox DevTools and Firebug expand objects on the sidebar:
&gt; 
&gt; https://cldup.com/R8riS5JrqF.gif
&gt; 
&gt; I have to admit I actually like it.

They do this for everything, not just %o.

It is kind of cool, but I think it is much harder to work with if you want to view multiple objects. In Web Inspector&apos;s console, you can expand a few objects see everything, and scroll quickly between them. With the sidebar that is harder. They do have a neat &quot;diff&quot; thing if you click between two similar objects.


(In reply to comment #6)
&gt; How are we going to display objects for
&gt; 
&gt;     console.log(&quot;Document: %o. Window: %o&quot;, document, window)
&gt; 
&gt; ?
&gt; 
&gt; This is how it is now: https://cldup.com/l76xpiPkSD.gif

I wonder how many people use %o? Personally I don&apos;t.

Given how poor the experience can be, and how much better (I think) the console.log(&quot;...&quot;, document, window) is, maybe we shouldn&apos;t invest too much into %o.


&gt; The current same line object expansion is hideous. There are a few options
&gt; to make it better:
&gt; 
&gt; 1. Don’t allow expansion for the %o objects, just show the previews. If a
&gt; person wants an object to be expandable, they should use a separate
&gt; console.log (without %o) to log it on a separate line.

There could be a preview, and still log below if the message itself is expanded.

Honestly, I&apos;ve been interested in a %j that will JSON.stringify an object. Maybe that is what %o could do, and fallback to something like a preview when not possible or the string is too long.



&gt; 2. Another option would be &quot;tabs&quot; – only one object could be expanded at the
&gt; time. E.g.  expanding &quot;window&quot; would collapse document, and vice versa. The
&gt; expanded object could be displayed one line below the the &quot;Document: {...} .
&gt; Window: {...}&quot; line.

Hmm, neat idea.  Probably not worth a special case UI for this unless we think we could re-use that UI. Its like a mix between the console now and the FF approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065501</commentid>
    <comment_count>9</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-01-29 22:47:45 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Firefox DevTools and Firebug expand objects on the sidebar:
&gt; &gt; 
&gt; &gt; https://cldup.com/R8riS5JrqF.gif
&gt; &gt; 
&gt; &gt; I have to admit I actually like it.
&gt; 
&gt; They do this for everything, not just %o.
&gt; 
&gt; It is kind of cool, but I think it is much harder to work with if you want
&gt; to view multiple objects. In Web Inspector&apos;s console, you can expand a few
&gt; objects see everything, and scroll quickly between them. With the sidebar
&gt; that is harder. They do have a neat &quot;diff&quot; thing if you click between two
&gt; similar objects.
&gt; 
&gt; 
&gt; (In reply to comment #6)
&gt; &gt; How are we going to display objects for
&gt; &gt; 
&gt; &gt;     console.log(&quot;Document: %o. Window: %o&quot;, document, window)
&gt; &gt; 
&gt; &gt; ?
&gt; &gt; 
&gt; &gt; This is how it is now: https://cldup.com/l76xpiPkSD.gif
&gt; 
&gt; I wonder how many people use %o? Personally I don&apos;t.
&gt; 
&gt; Given how poor the experience can be, and how much better (I think) the
&gt; console.log(&quot;...&quot;, document, window) is, maybe we shouldn&apos;t invest too much
&gt; into %o.

I don&apos;t use %o either and from the top of my head I can&apos;t remember any library/framework that uses it.

I want to use `line-height: baseline` for console messages, it would nicely vertically align monospace and non-monospace text.

`line-height: baseline`, however, breaks expanded same line objects: https://cldup.com/cfhGu5CPYH-2000x2000.png.
Since we are moving them on the separate line anyway, I was wondering if we can safely use `line-height: baseline` now.

%O is one of the edge cases here.


&gt; 
&gt; &gt; The current same line object expansion is hideous. There are a few options
&gt; &gt; to make it better:
&gt; &gt; 
&gt; &gt; 1. Don’t allow expansion for the %o objects, just show the previews. If a
&gt; &gt; person wants an object to be expandable, they should use a separate
&gt; &gt; console.log (without %o) to log it on a separate line.
&gt; 
&gt; There could be a preview, and still log below if the message itself is
&gt; expanded.

Say, we expanded one object. When we expand a second one, what should happen? Should it show before the first one? After?


&gt; 
&gt; Honestly, I&apos;ve been interested in a %j that will JSON.stringify an object.
&gt; Maybe that is what %o could do, and fallback to something like a preview
&gt; when not possible or the string is too long.
&gt; 
&gt; 
&gt; 
&gt; &gt; 2. Another option would be &quot;tabs&quot; – only one object could be expanded at the
&gt; &gt; time. E.g.  expanding &quot;window&quot; would collapse document, and vice versa. The
&gt; &gt; expanded object could be displayed one line below the the &quot;Document: {...} .
&gt; &gt; Window: {...}&quot; line.
&gt; 
&gt; Hmm, neat idea.  Probably not worth a special case UI for this unless we
&gt; think we could re-use that UI. Its like a mix between the console now and
&gt; the FF approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065772</commentid>
    <comment_count>10</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-01-30 21:16:05 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; Firefox DevTools and Firebug expand objects on the sidebar:
&gt; &gt; &gt; 
&gt; &gt; &gt; https://cldup.com/R8riS5JrqF.gif
&gt; &gt; &gt; 
&gt; &gt; &gt; I have to admit I actually like it.
&gt; &gt; 
&gt; &gt; They do this for everything, not just %o.
&gt; &gt; 
&gt; &gt; It is kind of cool, but I think it is much harder to work with if you want
&gt; &gt; to view multiple objects. In Web Inspector&apos;s console, you can expand a few
&gt; &gt; objects see everything, and scroll quickly between them. With the sidebar
&gt; &gt; that is harder. They do have a neat &quot;diff&quot; thing if you click between two
&gt; &gt; similar objects.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; How are we going to display objects for
&gt; &gt; &gt; 
&gt; &gt; &gt;     console.log(&quot;Document: %o. Window: %o&quot;, document, window)
&gt; &gt; &gt; 
&gt; &gt; &gt; ?
&gt; &gt; &gt; 
&gt; &gt; &gt; This is how it is now: https://cldup.com/l76xpiPkSD.gif
&gt; &gt; 
&gt; &gt; I wonder how many people use %o? Personally I don&apos;t.
&gt; &gt; 
&gt; &gt; Given how poor the experience can be, and how much better (I think) the
&gt; &gt; console.log(&quot;...&quot;, document, window) is, maybe we shouldn&apos;t invest too much
&gt; &gt; into %o.
&gt; 
&gt; I don&apos;t use %o either and from the top of my head I can&apos;t remember any
&gt; library/framework that uses it.
&gt; 
&gt; I want to use `line-height: baseline` for console messages, it would nicely
&gt; vertically align monospace and non-monospace text.
&gt; 
&gt; `line-height: baseline`, however, breaks expanded same line objects:
&gt; https://cldup.com/cfhGu5CPYH-2000x2000.png.
&gt; Since we are moving them on the separate line anyway, I was wondering if we
&gt; can safely use `line-height: baseline` now.
&gt; 
&gt; %O is one of the edge cases here.

I agree, %o is an edge case. I would just inline previews that are not expandable, and show the expandable objects &quot;below the fold&quot; (when expanding the log message). Clicking the preview could expand the log and jump to / highlight the object row too.

&gt; &gt; &gt; The current same line object expansion is hideous. There are a few options
&gt; &gt; &gt; to make it better:
&gt; &gt; &gt; 
&gt; &gt; &gt; 1. Don’t allow expansion for the %o objects, just show the previews. If a
&gt; &gt; &gt; person wants an object to be expandable, they should use a separate
&gt; &gt; &gt; console.log (without %o) to log it on a separate line.
&gt; &gt; 
&gt; &gt; There could be a preview, and still log below if the message itself is
&gt; &gt; expanded.
&gt; 
&gt; Say, we expanded one object. When we expand a second one, what should
&gt; happen? Should it show before the first one? After?

You can expand multiple objects in the proposed row design. Each object is on a bulleted row under the log message. That way there is never weird inline flowing of expanded objects. Inline is reserves for primitives or previews only.
 
&gt; &gt; Honestly, I&apos;ve been interested in a %j that will JSON.stringify an object.
&gt; &gt; Maybe that is what %o could do, and fallback to something like a preview
&gt; &gt; when not possible or the string is too long.

Why not just a preview? It is practically JSON. (We should as a context menu item for objects &quot;Copy as JSON&quot;.)

&gt; &gt; &gt; 2. Another option would be &quot;tabs&quot; – only one object could be expanded at the
&gt; &gt; &gt; time. E.g.  expanding &quot;window&quot; would collapse document, and vice versa. The
&gt; &gt; &gt; expanded object could be displayed one line below the the &quot;Document: {...} .
&gt; &gt; &gt; Window: {...}&quot; line.
&gt; &gt; 
&gt; &gt; Hmm, neat idea.  Probably not worth a special case UI for this unless we
&gt; &gt; think we could re-use that UI. Its like a mix between the console now and
&gt; &gt; the FF approach.

Agreed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065773</commentid>
    <comment_count>11</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-01-30 21:17:08 -0800</bug_when>
    <thetext>&gt; Since we are moving them on the separate line anyway, I was wondering if we
&gt; can safely use `line-height: baseline` now.

We should use baseline alignment now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065774</commentid>
    <comment_count>12</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-01-30 21:23:44 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Firefox DevTools and Firebug expand objects on the sidebar:
&gt; &gt; 
&gt; &gt; https://cldup.com/R8riS5JrqF.gif
&gt; &gt; 
&gt; &gt; I have to admit I actually like it.
&gt; 
&gt; They do this for everything, not just %o.
&gt; 
&gt; It is kind of cool, but I think it is much harder to work with if you want
&gt; to view multiple objects. In Web Inspector&apos;s console, you can expand a few
&gt; objects see everything, and scroll quickly between them. With the sidebar
&gt; that is harder. They do have a neat &quot;diff&quot; thing if you click between two
&gt; similar objects.

I don&apos;t like the FireFox approach (which his a Firebug-ism). The sidebar has no context  for where you came from. With that said…

It could fit into our Details Sidebar design. The Details Sidebar is all about represented objects that are shown in the view. Is an object can be selected in the console, we could push a navigation item and show a Details Sidebar for the object tree. Similar to the Scope Chain Details Sidebar.

I&apos;m still not sure that is the best way to view objects. It wouldn&apos;t be much different that using a popover at that point, which I think we all agreed wasn&apos;t good. How is a sidebar better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065775</commentid>
    <comment_count>13</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-01-30 21:26:00 -0800</bug_when>
    <thetext>But maybe our popovers just needs some work. They are a little flaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065776</commentid>
    <comment_count>14</comment_count>
      <attachid>245468</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-01-30 21:30:19 -0800</bug_when>
    <thetext>Comment on attachment 245468
WIP

Overall the patch looks good. We should still proceed with a redo here. The console code is mired from years of abuse at the hands of others. It is time to start fresh and not spend much time cleaning up this code. The DetailsSection*.js files are a good example of how this could be structured with the &quot;row&quot; subclasses providing concrete DOM views for different data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065806</commentid>
    <comment_count>15</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-01-31 04:20:44 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; How are we going to display objects for
&gt; 
&gt;     console.log(&quot;Document: %o. Window: %o&quot;, document, window)
&gt; 
&gt; ?
&gt; 
&gt; This is how it is now: https://cldup.com/l76xpiPkSD.gif
&gt; 
&gt; The current same line object expansion is hideous. There are a few options
&gt; to make it better:
&gt; 
&gt; 1. Don’t allow expansion for the %o objects, just show the previews. If a
&gt; person wants an object to be expandable, they should use a separate
&gt; console.log (without %o) to log it on a separate line.
&gt; 
&gt; 2. Another option would be &quot;tabs&quot; – only one object could be expanded at the
&gt; time. E.g.  expanding &quot;window&quot; would collapse document, and vice versa. The
&gt; expanded object could be displayed one line below the the &quot;Document: {...} .
&gt; Window: {...}&quot; line.
&gt; 
&gt; WDYT?

I re-read my comment and realized that it isn’t clear.

I’m suggesting to keep the objects previews inline with the text, the same way it’s currently done. For example:

-&gt; Document: {alinkColor: &quot;&quot;, ...}. Window: {Infinity: Infinity, ...}

However, I don’t want the preview to be expandable. Please let me know if we agree up to this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065807</commentid>
    <comment_count>16</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-01-31 04:27:32 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; &gt; The current same line object expansion is hideous. There are a few options
&gt; &gt; &gt; &gt; to make it better:
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 1. Don’t allow expansion for the %o objects, just show the previews. If a
&gt; &gt; &gt; &gt; person wants an object to be expandable, they should use a separate
&gt; &gt; &gt; &gt; console.log (without %o) to log it on a separate line.
&gt; &gt; &gt; 
&gt; &gt; &gt; There could be a preview, and still log below if the message itself is
&gt; &gt; &gt; expanded.
&gt; &gt; 
&gt; &gt; Say, we expanded one object. When we expand a second one, what should
&gt; &gt; happen? Should it show before the first one? After?
&gt; 
&gt; You can expand multiple objects in the proposed row design. Each object is
&gt; on a bulleted row under the log message. That way there is never weird
&gt; inline flowing of expanded objects. Inline is reserves for primitives or
&gt; previews only.

So, are you suggesting something like this:

&gt;&gt; console.log(&quot;Document: %o. Window: %o&quot;, document, window)
-&gt; Document: {alinkColor: &quot;&quot;, ...}. Window: {Infinity: Infinity, ...}
• ► {alinkColor: &quot;&quot;, ...}
• ► {Infinity: Infinity, ...}

E.g. there are non-expandable inline previews and objects are duplicated on each row below the message.

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065808</commentid>
    <comment_count>17</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-01-31 04:35:36 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; Firefox DevTools and Firebug expand objects on the sidebar:
&gt; &gt; &gt; 
&gt; &gt; &gt; https://cldup.com/R8riS5JrqF.gif
&gt; &gt; &gt; 
&gt; &gt; &gt; I have to admit I actually like it.
&gt; &gt; 
&gt; &gt; They do this for everything, not just %o.
&gt; &gt; 
&gt; &gt; It is kind of cool, but I think it is much harder to work with if you want
&gt; &gt; to view multiple objects. In Web Inspector&apos;s console, you can expand a few
&gt; &gt; objects see everything, and scroll quickly between them. With the sidebar
&gt; &gt; that is harder. They do have a neat &quot;diff&quot; thing if you click between two
&gt; &gt; similar objects.
&gt; 
&gt; I don&apos;t like the FireFox approach (which his a Firebug-ism). The sidebar has
&gt; no context  for where you came from. With that said…
&gt; 
&gt; It could fit into our Details Sidebar design. The Details Sidebar is all
&gt; about represented objects that are shown in the view. Is an object can be
&gt; selected in the console, we could push a navigation item and show a Details
&gt; Sidebar for the object tree. Similar to the Scope Chain Details Sidebar.

I wasn&apos;t clear here again.

I like how Firebug/Firefox sidebar approach handles this particular edge case, but I don’t like it overall. I’m not suggesting to use it.

&gt; I&apos;m still not sure that is the best way to view objects. It wouldn&apos;t be much
&gt; different that using a popover at that point, which I think we all agreed
&gt; wasn&apos;t good. How is a sidebar better?

One thing: it doesn&apos;t cover existing content.

But again, I’m not suggesting to use it. I agree it has no context for where you came from.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065810</commentid>
    <comment_count>18</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-01-31 05:52:14 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; &gt; &gt; The current same line object expansion is hideous. There are a few options
&gt; &gt; &gt; &gt; &gt; to make it better:
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; 1. Don’t allow expansion for the %o objects, just show the previews. If a
&gt; &gt; &gt; &gt; &gt; person wants an object to be expandable, they should use a separate
&gt; &gt; &gt; &gt; &gt; console.log (without %o) to log it on a separate line.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; There could be a preview, and still log below if the message itself is
&gt; &gt; &gt; &gt; expanded.
&gt; &gt; &gt; 
&gt; &gt; &gt; Say, we expanded one object. When we expand a second one, what should
&gt; &gt; &gt; happen? Should it show before the first one? After?
&gt; &gt; 
&gt; &gt; You can expand multiple objects in the proposed row design. Each object is
&gt; &gt; on a bulleted row under the log message. That way there is never weird
&gt; &gt; inline flowing of expanded objects. Inline is reserves for primitives or
&gt; &gt; previews only.
&gt; 
&gt; So, are you suggesting something like this:
&gt; 
&gt; &gt;&gt; console.log(&quot;Document: %o. Window: %o&quot;, document, window)
&gt; -&gt; Document: {alinkColor: &quot;&quot;, ...}. Window: {Infinity: Infinity, ...}
&gt; • ► {alinkColor: &quot;&quot;, ...}
&gt; • ► {Infinity: Infinity, ...}
&gt; 
&gt; E.g. there are non-expandable inline previews and objects are duplicated on
&gt; each row below the message.

Yes, and there is a ▼ infant of: Document: {alinkColor: &quot;&quot;, ...}. Window: {Infinity: Infinity, ...}

 &gt;  console.log(&quot;Document: %o. Window: %o&quot;, document, window)
 &lt;· ▼ Document: {alinkColor: &quot;&quot;, ...}. Window: {Infinity: Infinity, ...}
     • ► {alinkColor: &quot;&quot;, ...}
     • ► {Infinity: Infinity, ...}

We probably want to collapse that message by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066037</commentid>
    <comment_count>19</comment_count>
      <attachid>245858</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-02-01 21:59:57 -0800</bug_when>
    <thetext>Created attachment 245858
WIP

Use `vertical-align: baseline` to keep monospace and non-monospace fonts nice and level on the same line.

https://cloudup.com/cT08nvJ25rz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066243</commentid>
    <comment_count>20</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-02-02 14:48:19 -0800</bug_when>
    <thetext>Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068530</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-11 19:01:37 -0800</bug_when>
    <thetext>Attachment 245858 did not pass style-queue:


ERROR: Source/WebInspectorUI/UserInterface/Views/LogContentView.js:459:  Line contains single-quote character.  [js/syntax] [5]
ERROR: Source/WebInspectorUI/UserInterface/Views/LogContentView.js:540:  Line contains single-quote character.  [js/syntax] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069276</commentid>
    <comment_count>22</comment_count>
      <attachid>246616</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-02-14 21:05:27 -0800</bug_when>
    <thetext>Created attachment 246616
Patch

https://cldup.com/RR5k6HFZzz-3000x3000.png

This patch has grown big. I’d like to land it sooner than later and make a several consequent patched afterwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069296</commentid>
    <comment_count>23</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-02-15 00:53:31 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Created attachment 246616 [details]
&gt; Patch
&gt; 
&gt; https://cldup.com/RR5k6HFZzz-3000x3000.png

I like where this is going, but I see some issues.

Let me brain dump exactly what I think we should see in the Console, focusing on console messages.

Principles:

  - Be Concise. Strive for always having a single line output, offer expansion only if needed.
    - developers use console.loa lot. They want to quickly see values. Single line should be valued to get lots of data.

  - Messages and Values. Logging values is richer, so promote that use case.
    - A log might just contain a message, if so treat it like a message. console.error(msg) equivalent to a WebKit engine produced error message.
    - console.log has a format string to build a message. Lets use it for that purpose.
    - it is common to also log values, support rich output for values
    - currently logging a string value is not as useful as it could be. So make it valuable!

  - No Mixed Inline Object Expansion
    - Inline object expansion produces an unwieldy UI. One principle of the new console design is object expansions are always clean
    - This means that any console.log with an object needing expansion must handle object expansion gracefully

  - Log / Warn / Info / Error output is distinct from Console Evaluations
    - console.foo has a user provided message, so promote the message! (see above)
    - Comes from user source code, so include a Source Code Link / Backtrace
    - Distinct Icon + Color (Warn = Yellow, Error = Red, Info = Blue?, Log = ?)


All the cases I could think of, so we can discuss them by #:

    # Case 1: Log a Message (single line, not expandable, formatted as a message)
    &gt; console.log(&quot;Entered Foo.bar()!&quot;)
    &lt;· Entered Foo.bar()!

    # Case 2: Format String Message, no extra values (single line, not expandable, formatted as a message)
    &gt; console.log(&quot;width: %d height: %d&quot;, w, h)
    &lt;· width: 5 height: 10

    # Case 3: Log a single Primitive Value / Lossless Object (basically identical output to evaluating the object in the console yourself)
    &gt; console.log(num)
    &lt;· 1
    &gt; console.log(arr)
    &lt;· [1, 2, 3]
    &gt; console.log(obj)
    &lt;· {a: 1}

    # Case 4: Log multiple Primitive Values / Lossless Objects (basically identical output to evaluating the object in the console yourself, space separated)
    &gt; console.log(num, arr, obj)
    &lt;· 1 [1, 2, 3] {a: 1}

    # Case 5: Log a Message and any number of lossless values after it (single line, not expandable, message followed by values)
    &gt; console.log(&quot;handled event&quot;, event.type, event.altKey, numClicks)
    &lt;· handled event &quot;click&quot; false 12
    &gt; console.log(&quot;handled %s event&quot;, event.type, event.altKey, numClicks)
    &lt;· handled click event false 12

    ------ Now we get to anything that is lossy, and needs expansion to see everything ------

    # Case 6.1: Log a single Lossy Object - Collapsed (object preview)
    &gt; console.log(window)
    &lt;· ► Window {Infinity: Infinity, Array: Array, Document: Document...}

    # Case 6.2: Log a single Lossy Object - Expanded (object tree)
    &gt; console.log(window)
    &lt;· ▼ Window
         Infinity: Infinity
         Array: Array
         Document: Document
         ...

    # Case 7.1: Log multiple Lossy Objects - Collapsed (single line, brief object previews)
    &gt; console.log(window, window.navigator)
    &lt;· ► Window {Infinity: Infinity, ...} Navigator {appCodeName: &quot;Mozilla&quot;, ...}

    # Case 7.2: Log multiple Lossy Objects - Expanded (multiple, separated non-brief object trees)
    &gt; console.log(window, window.navigator)
    &lt;· ▼ Logged Objects
       • ► Window {Infinity: Infinity, Array: Array, Document: Document...}
       • ► Navigator {appCodeName: &quot;Mozilla&quot;, appName: &quot;Netscape&quot;, language: &quot;en-us&quot;...}

    # Case 8.1: Message and Values with at least one Lossy Objects - Collapsed (single line, message, values, brief object previews)
    &gt; console.log(&quot;%s event&quot;, event.type, performance.now(), window.navigator);
    &lt;· ► click event 2659230.187729998 Navigator {appCodeName: &quot;Mozilla&quot;, ...}

    # Case 8.2: Message and Values with at least one Lossy Objects - Expanded (multiple, separated values / object trees)
    &gt; console.log(&quot;%s event&quot;, event.type, performance.now(), window.navigator);
    &lt;· ▼ click event
       • 2659230.187729998
       • ► Navigator {appCodeName: &quot;Mozilla&quot;, appName: &quot;Netscape&quot;, language: &quot;en-us&quot;...}


    ------ Special considerations? ------

    # Special Case 1: Log String Value (Currently we cannot distinguish this from Case 1. Ideally it would be Case 3)
    &gt; console.log(event.type)
    &lt;· click

    # Special Case 2: Log String Literal (Currently we cannot distinguish this from Case 5. Maybe we should treat literals like messages?)
    &gt; console.log(&quot;width&quot;, w, &quot;height&quot;, h)
    &lt;· width 5 &quot;height&quot; 10

    # Special Case 3.1: %o - Collapsed (Inline the object preview, brief if needed)
    &gt; console.log(&quot;win: %o. nav: %o&quot;, window, navigator)
    &lt;· ► win: Window {Infinity: Infinity, ...}. nav: Navigator {appCodeName: &quot;Mozilla&quot;, ...}

    # Special Case 3.2: %o - Expanded (reduce object preview to class name, object trees separated)
    &gt; console.log(&quot;win: %o. nav: %o&quot;, window, navigator)
    &lt;· ► win: Window. nav: Navigator
       • ► Window {Infinity: Infinity, Array: Array, Document: Document...}
       • ► Navigator {appCodeName: &quot;Mozilla&quot;, appName: &quot;Netscape&quot;, language: &quot;en-us&quot;...}


Discussions to be had: (Would benefit from an implementation to play with)

  - Maybe we should skip past Case 7.1/8.1 and go immediately to 7.2/8.2
    - does this save time expanding, or does this cause multi-line output to too quickly fill the console

  - Maybe we should make the Object Previews in Case 7.1/8.1 clickable to immediately jump to a sub 7.2/8.2 faster
    - keep the collapse case, and make specific object expansion 1 click instead of 2
    - how would we show this in the UI? Give the entire preview a hover / clickable / token like state?

  - 7.2 string &quot;Logged Objects&quot; is totally a TBD string
    - would it be better to include the source code location? types of objects? just &quot;Log&quot;?


&gt; This patch has grown big. I’d like to land it sooner than later and make a
&gt; several consequent patched afterwards.

I&apos;d much rather we start fresh anyways. I realize this started as tweaking styles, but I think it has become more than that. Trying to graft the new styles on top of the existing classes already looks like it is hard to write and for us to review. Also, this is an area of cruft that we have wanted to modernize for a long time anyways.

- ConsoleMessage/ConsoleMessageImpl blurs the lines between Model objects and View objects.
  - Currently we don&apos;t test console messages because they are considered &quot;View&quot; objects. That sucks! We want to test what we can.
  - I suggest we rename the existing objects LegacyConsoleMessage/LegacyConsoleMessageImpl and you can start to replace them with new objects:
    - Model/ConsoleMessage - abstraction for the Console.ConsoleMessage protocol type, created by ConsoleObserver, testable
    - Views/ConsoleMessageView - views for the message/previews/objects/sourceCodeLocation/backtrace that can added to the LogContentView

- This patch has a lot of FIXMEs / questions regarding the existing LogContentView / ConsoleMessage styles
  - if we start fresh, that shouldn&apos;t be the case. We will just add all new styles for the new non-legacy classes. Then we can wholesale remove the legacy version.
  - Console messages styles in LogContentView is confusing! I want to see something like ConsoleMessageView.css.
  - Object/Value styles being in LogContentView is confusing. They are used all over inspector not just console (e.g. debugger popovers)

- For the new console design we will want &quot;ObjectPreview&quot;s and &quot;ObjectTree&quot;s to eventually replace &quot;ObjectPropertiesSection&quot;s
  - The current object hierarchy tree needs a visual update:
    - It shows values poorly (functions)
    - edibility is cumbersome if it even works at all
    - expanding prototypes is cluttered, and often unnecessary
    - getters / setters aren&apos;t useful
  - ObjectPropertiesSection is used in many places in the inspector (console, sidebars, indexed databases). It can&apos;t be replaced immediately.
  - While creating a new ConsoleMessageView it would also makes sense to make the new ObjectTree/ObjectPreview in tandem so we have clean support for previews / trees in the console
    - it would take me another hour to type up the design we want for ObjectTree/ObjectPreview (currently only in email). I can do that when you are ready.


Sorry for the rant, I am just really looking forward to a rewrite here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069302</commentid>
    <comment_count>24</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-02-15 01:23:24 -0800</bug_when>
    <thetext>I agree with Joe&apos;s assessment. For Case 7.2, I think the string would just be &quot;Window Navigator&quot;, like Special Case 3.2 without the format string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069366</commentid>
    <comment_count>25</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-02-15 19:51:43 -0800</bug_when>
    <thetext>Joe,

Thanks for the comprehensive comment. It made me realize we were not exactly on the same page. It will take me some time to go through all the points.

Most importantly, my patch is rather a live prototype. It should let us make better design decisions.


&gt;     # Case 7.1: Log multiple Lossy Objects - Collapsed (single line, brief
&gt; object previews)
&gt;     &gt; console.log(window, window.navigator)
&gt;     &lt;· ► Window {Infinity: Infinity, ...} Navigator {appCodeName: &quot;Mozilla&quot;,
&gt; ...}

https://cloudup.com/cID0CgX951P
Notice how big are the previews. They don’t fit on a single line.

We could experiment with smaller previews to see if they are still being useful.


&gt; &gt; This patch has grown big. I’d like to land it sooner than later and make a
&gt; &gt; several consequent patched afterwards.
&gt; 
&gt; I&apos;d much rather we start fresh anyways. I realize this started as tweaking
&gt; styles, but I think it has become more than that. Trying to graft the new
&gt; styles on top of the existing classes already looks like it is hard to write
&gt; and for us to review. Also, this is an area of cruft that we have wanted to
&gt; modernize for a long time anyways.
&gt; 
&gt; - ConsoleMessage/ConsoleMessageImpl blurs the lines between Model objects
&gt; and View objects.
&gt;   - Currently we don&apos;t test console messages because they are considered
&gt; &quot;View&quot; objects. That sucks! We want to test what we can.
&gt;   - I suggest we rename the existing objects
&gt; LegacyConsoleMessage/LegacyConsoleMessageImpl and you can start to replace
&gt; them with new objects:
&gt;     - Model/ConsoleMessage - abstraction for the Console.ConsoleMessage
&gt; protocol type, created by ConsoleObserver, testable
&gt;     - Views/ConsoleMessageView - views for the
&gt; message/previews/objects/sourceCodeLocation/backtrace that can added to the
&gt; LogContentView
&gt; 
&gt; - This patch has a lot of FIXMEs / questions regarding the existing
&gt; LogContentView / ConsoleMessage styles
&gt;   - if we start fresh, that shouldn&apos;t be the case. We will just add all new
&gt; styles for the new non-legacy classes. Then we can wholesale remove the
&gt; legacy version.
&gt;   - Console messages styles in LogContentView is confusing! I want to see
&gt; something like ConsoleMessageView.css.
&gt;   - Object/Value styles being in LogContentView is confusing. They are used
&gt; all over inspector not just console (e.g. debugger popovers)
&gt; 
&gt; - For the new console design we will want &quot;ObjectPreview&quot;s and &quot;ObjectTree&quot;s
&gt; to eventually replace &quot;ObjectPropertiesSection&quot;s
&gt;   - The current object hierarchy tree needs a visual update:
&gt;     - It shows values poorly (functions)
&gt;     - edibility is cumbersome if it even works at all
&gt;     - expanding prototypes is cluttered, and often unnecessary
&gt;     - getters / setters aren&apos;t useful
&gt;   - ObjectPropertiesSection is used in many places in the inspector
&gt; (console, sidebars, indexed databases). It can&apos;t be replaced immediately.
&gt;   - While creating a new ConsoleMessageView it would also makes sense to
&gt; make the new ObjectTree/ObjectPreview in tandem so we have clean support for
&gt; previews / trees in the console
&gt;     - it would take me another hour to type up the design we want for
&gt; ObjectTree/ObjectPreview (currently only in email). I can do that when you
&gt; are ready.

Implementing the UI and these points are almost two different tasks altogether.

I’m still trying to understand how the existing code work, I can’t do a rewrite without knowing how it currently works. I was hoping to lend some changes incrementally. If you don’t want incremental changes, that’s fine. I will eventually do a rewrite, but it may take a couple of weeks.

I’ll get back to some of the points in your comment as I’m progressing with the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069466</commentid>
    <comment_count>26</comment_count>
      <attachid>246616</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-02-16 09:39:10 -0800</bug_when>
    <thetext>Comment on attachment 246616
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/ConsoleGroup.js:63
&gt; +        //@FIXME
&gt; +        element.messageElement = element;

Still needed I guess?

&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:489
&gt; -                if (i &gt;= newRange[0] &amp;&amp; i &lt;= newRange[1] &amp;&amp; !messageInRange.parentNode.classList.contains(WebInspector.LogContentView.SelectedStyleClassName)) {
&gt; -                    messageInRange.parentNode.classList.add(WebInspector.LogContentView.SelectedStyleClassName);
&gt; +                if (i &gt;= newRange[0] &amp;&amp; i &lt;= newRange[1] &amp;&amp; !messageInRange.classList.contains(WebInspector.LogContentView.SelectedStyleClassName)) {
&gt; +                    messageInRange.classList.add(WebInspector.LogContentView.SelectedStyleClassName);
&gt;                      this._selectedMessages.push(messageInRange);
&gt; -                } else if (i &lt; newRange[0] || i &gt; newRange[1] &amp;&amp; messageInRange.parentNode.classList.contains(WebInspector.LogContentView.SelectedStyleClassName)) {
&gt; -                    messageInRange.parentNode.classList.remove(WebInspector.LogContentView.SelectedStyleClassName);
&gt; +                } else if (i &lt; newRange[0] || i &gt; newRange[1] &amp;&amp; messageInRange.classList.contains(WebInspector.LogContentView.SelectedStyleClassName)) {
&gt; +                    messageInRange.classList.remove(WebInspector.LogContentView.SelectedStyleClassName);

Why was this needed? It seems like it would keep already selected elements out of the _selectedMessages array if you select some then select more in an inclusive range. Would _selectedMessages still include the old (still selected) messages?

&gt; Source/WebInspectorUI/UserInterface/Views/Section.css:62
&gt; +    line-height: 18px; /* @nvasilyev: Not sure why it is here. */

Likely a vertical-align hack for the disclosure triangles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069484</commentid>
    <comment_count>27</comment_count>
      <attachid>246616</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-02-16 10:30:49 -0800</bug_when>
    <thetext>Comment on attachment 246616
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/ConsoleGroup.js:63
&gt;&gt; +        element.messageElement = element;
&gt; 
&gt; Still needed I guess?

Let me clean this up and remove messageElement since it’s redundant now.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/LogContentView.js:489
&gt;&gt; +                    messageInRange.classList.remove(WebInspector.LogContentView.SelectedStyleClassName);
&gt; 
&gt; Why was this needed? It seems like it would keep already selected elements out of the _selectedMessages array if you select some then select more in an inclusive range. Would _selectedMessages still include the old (still selected) messages?

I only removed parentNode (e.g s/messageInRange.parentNode/messageInRange/g), everything else is unchanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069485</commentid>
    <comment_count>28</comment_count>
      <attachid>246616</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-02-16 10:33:08 -0800</bug_when>
    <thetext>Comment on attachment 246616
Patch

I’ll clean up ConsoleGroup.js first a little bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069719</commentid>
    <comment_count>29</comment_count>
      <attachid>246714</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-02-16 18:37:50 -0800</bug_when>
    <thetext>Created attachment 246714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069740</commentid>
    <comment_count>30</comment_count>
      <attachid>246714</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-16 20:20:32 -0800</bug_when>
    <thetext>Comment on attachment 246714
Patch

Clearing flags on attachment: 246714

Committed r180205: &lt;http://trac.webkit.org/changeset/180205&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069741</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-16 20:20:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245468</attachid>
            <date>2015-01-27 14:17:08 -0800</date>
            <delta_ts>2015-02-01 21:59:57 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>16067</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
bnNvbGVDb21tYW5kLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ29uc29sZUNvbW1hbmQuanMKaW5kZXggNDM2YjBkNS4uYTk3N2E0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUNvbW1hbmQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29s
ZUNvbW1hbmQuanMKQEAgLTM5LDE4ICszOSwyOCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1h
bmQucHJvdG90eXBlID0gewogCiAgICAgLy8gUHVibGljCiAKKyAgICBkZWNvcmF0ZU1lc3NhZ2VF
bGVtZW50OiBmdW5jdGlvbihlbGVtZW50KSB7CisgICAgICAgIGlmICh0aGlzLl9lbGVtZW50KQor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7CisKKyAgICAgICAgdGhpcy5fZWxlbWVu
dCA9IGVsZW1lbnQ7CisgICAgICAgIHRoaXMuX2VsZW1lbnQuY29tbWFuZCA9IHRoaXM7CisgICAg
ICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgiY29uc29sZS11c2VyLWNvbW1hbmQiKTsK
KyAgICAgICAgdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoImRhdGEtbGFiZWxwcmVmaXgiLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIklucHV0OiAiKSk7CisKKyAgICAgICAgdGhpcy5fZm9ybWF0
Q29tbWFuZCgpOworICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2Zvcm1h
dHRlZENvbW1hbmQpOworCisgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OworICAgIH0sCisK
ICAgICB0b01lc3NhZ2VFbGVtZW50OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAoIXRo
aXMuX2VsZW1lbnQpIHsKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY29tbWFuZCA9IHRo
aXM7Ci0gICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTmFtZSA9ICJjb25zb2xlLXVzZXIt
Y29tbWFuZCI7Ci0gICAgICAgICAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgiZGF0YS1s
YWJlbHByZWZpeCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW5wdXQ6ICIpKTsKKyAgICAgICAg
aWYgKHRoaXMuX2VsZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKIAot
ICAgICAgICAgICAgdGhpcy5fZm9ybWF0Q29tbWFuZCgpOwotICAgICAgICAgICAgdGhpcy5fZWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLl9mb3JtYXR0ZWRDb21tYW5kKTsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGVjb3JhdGVNZXNz
YWdlRWxlbWVudChlbGVtZW50KTsKICAgICB9LAogCiAgICAgLy8gUHJpdmF0ZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUdyb3Vw
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUdy
b3VwLmpzCmluZGV4IDY4OWIyZTIuLjM0MTlhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVHcm91cC5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlR3JvdXAuanMKQEAgLTU0
LDIxICs1NCwyMyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZSA9IHsKIAog
ICAgIGFkZE1lc3NhZ2U6IGZ1bmN0aW9uKG1zZykKICAgICB7Ci0gICAgICAgIHZhciBlbGVtZW50
ID0gbXNnLnRvTWVzc2FnZUVsZW1lbnQoKTsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBXZWJJ
bnNwZWN0b3IuTG9nQ29udGVudFZpZXcuSXRlbVdyYXBwZXJTdHlsZUNsYXNzTmFtZTsKIAotICAg
ICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAg
ICB3cmFwcGVyLmNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5JdGVtV3Jh
cHBlclN0eWxlQ2xhc3NOYW1lOwotICAgICAgICB3cmFwcGVyLm1lc3NhZ2VFbGVtZW50ID0gd3Jh
cHBlci5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICAgICAgbXNnLmRlY29yYXRlTWVzc2FnZUVs
ZW1lbnQoZWxlbWVudCk7CisKKyAgICAgICAgLy9ARklYTUUKKyAgICAgICAgZWxlbWVudC5tZXNz
YWdlRWxlbWVudCA9IGVsZW1lbnQ7CiAKICAgICAgICAgaWYgKG1zZy50eXBlID09PSBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuU3RhcnRHcm91cCB8fCBtc2cudHlwZSA9
PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXBDb2xs
YXBzZWQpIHsKLSAgICAgICAgICAgIHRoaXMubWVzc2FnZXNFbGVtZW50LnBhcmVudE5vZGUuaW5z
ZXJ0QmVmb3JlKHdyYXBwZXIsIHRoaXMubWVzc2FnZXNFbGVtZW50KTsKKyAgICAgICAgICAgIHRo
aXMubWVzc2FnZXNFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIHRoaXMu
bWVzc2FnZXNFbGVtZW50KTsKICAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0aGlzLl90aXRsZUNsaWNrZWQuYmluZCh0aGlzKSk7CiAgICAgICAgICAgICBlbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX3RpdGxlTW91c2VEb3duLmJp
bmQodGhpcykpOwogICAgICAgICAgICAgdmFyIGdyb3VwRWxlbWVudCA9IGVsZW1lbnQuZW5jbG9z
aW5nTm9kZU9yU2VsZldpdGhDbGFzcygiY29uc29sZS1ncm91cCIpOwogICAgICAgICAgICAgaWYg
KGdyb3VwRWxlbWVudCAmJiBtc2cudHlwZSA9PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXBDb2xsYXBzZWQpCiAgICAgICAgICAgICAgICAgZ3JvdXBF
bGVtZW50LmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpOwogICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIHRoaXMubWVzc2FnZXNFbGVtZW50LmFwcGVuZENoaWxkKHdyYXBwZXIpOworICAgICAg
ICAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgfSwK
IAogICAgIGhhc01lc3NhZ2VzOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZUltcGwuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZUltcGwu
anMKaW5kZXggNmZkNWQzZi4uMzM3MWY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VJbXBsLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNzYWdlSW1wbC5q
cwpAQCAtNDU0LDE0ICs0NTQsMTMgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBTdHJpbmcuZm9ybWF0KHBhcmFtZXRlcnNbMF0u
ZGVzY3JpcHRpb24sIHBhcmFtZXRlcnMuc2xpY2UoMSksIGZvcm1hdHRlcnMsIGZvcm1hdHRlZFJl
c3VsdCwgYXBwZW5kKTsKICAgICB9LAogCi0gICAgdG9NZXNzYWdlRWxlbWVudDogZnVuY3Rpb24o
KQorICAgIGRlY29yYXRlTWVzc2FnZUVsZW1lbnQ6IGZ1bmN0aW9uKGVsZW1lbnQpCiAgICAgewog
ICAgICAgICBpZiAodGhpcy5fZWxlbWVudCkKICAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVt
ZW50OwogCi0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CiAgICAgICAgIGVsZW1lbnQubWVzc2FnZSA9IHRoaXM7Ci0gICAgICAgIGVsZW1lbnQuY2xh
c3NOYW1lID0gImNvbnNvbGUtbWVzc2FnZSI7CisgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFk
ZCgiY29uc29sZS1tZXNzYWdlIik7CiAKICAgICAgICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnQ7
CiAKQEAgLTQ5OSw2ICs0OTgsMTYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBlbGVtZW50OwogICAgIH0sCiAKKyAgICB0b01l
c3NhZ2VFbGVtZW50OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fZWxlbWVu
dCkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OworCisgICAgICAgIHZhciBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisKKyAgICAgICAgcmV0dXJuIHRo
aXMuZGVjb3JhdGVNZXNzYWdlRWxlbWVudChlbGVtZW50KTsKKyAgICB9LAorCiAgICAgX3BvcHVs
YXRlU3RhY2tUcmFjZVRyZWVFbGVtZW50OiBmdW5jdGlvbihwYXJlbnRUcmVlRWxlbWVudCkKICAg
ICB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc3RhY2tUcmFjZS5sZW5ndGg7
IGkrKykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTG9nQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuY3NzCmluZGV4IDNiZjUxYzAuLjI0YWIxN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0Nv
bnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Mb2dDb250ZW50Vmlldy5jc3MKQEAgLTM0LDE3ICszNCwyNCBAQAogCiAgICAgd29yZC13
cmFwOiBicmVhay13b3JkOwogCi0gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7Ci0g
ICAgZm9udC1zaXplOiAxMXB4OworICAgIGZvbnQtZmFtaWx5OiAtd2Via2l0LXN5c3RlbS1mb250
LCBzYW5zLXNlcmlmOworICAgIGZvbnQtc2l6ZTogMTJweDsKIAogICAgIG1pbi1oZWlnaHQ6IDEw
MCU7CiB9CiAKKy5jb25zb2xlLXVzZXItY29tbWFuZCwKKy5jb25zb2xlLXVzZXItY29tbWFuZC1y
ZXN1bHQsCisuY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0IHsKKyAgICBmb250LWZhbWlseTogTWVu
bG8sIG1vbm9zcGFjZTsKKyAgICBmb250LXNpemU6IDExcHg7Cit9CisKIC5jb25zb2xlLW1lc3Nh
Z2VzID4gOmZpcnN0LWNoaWxkIHsKICAgICBtYXJnaW4tdG9wOiBhdXRvOwogfQogCi0uY29uc29s
ZS1pdGVtIHsKKy5jb25zb2xlLW1lc3NhZ2UgewogICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBy
Z2IoMjQwLCAyNDAsIDI0MCk7CiB9CiAKQEAgLTUyLDE1ICs1OSw3IEBACiAgICAgYm9yZGVyLXRv
cDogbm9uZTsKIH0KIAotLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCB7Ci0gICAgYmFja2dyb3VuZC1j
b2xvcjogaHNsKDIxMCwgMCUsIDk2JSk7Ci19Ci0KLS5jb25zb2xlLW1lc3NhZ2VzOmZvY3VzIC5j
b25zb2xlLWl0ZW0uc2VsZWN0ZWQgewotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMTAsIDk4
JSwgOTYlKTsKLX0KLQotLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCAuY29uc29sZS1tZXNzYWdlOjph
ZnRlciB7CisuY29uc29sZS1pdGVtLnNlbGVjdGVkOjphZnRlciB7CiAgICAgcG9zaXRpb246IGFi
c29sdXRlOwogICAgIGRpc3BsYXk6IGJsb2NrOwogICAgIGNvbnRlbnQ6ICIiOwpAQCAtNzEsNyAr
NzAsNyBAQAogICAgIHdpZHRoOiAycHg7CiB9CiAKLS5jb25zb2xlLW1lc3NhZ2VzOmZvY3VzIC5j
b25zb2xlLWl0ZW0uc2VsZWN0ZWQgLmNvbnNvbGUtbWVzc2FnZTo6YWZ0ZXIgeworLmNvbnNvbGUt
bWVzc2FnZXM6Zm9jdXMgLmNvbnNvbGUtaXRlbS5zZWxlY3RlZDo6YWZ0ZXIgewogICAgIGJhY2tn
cm91bmQ6IGhzbCgyMTAsIDEwMCUsIDQ5JSk7CiB9CiAKQEAgLTEwMiw3ICsxMDEsNyBAQAogCiAu
Y29uc29sZS1tZXNzYWdlIC5idWJibGUgewogICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAg
ICBoZWlnaHQ6IDE0cHg7CisgICAgaGVpZ2h0OiAxNXB4OwogICAgIGJhY2tncm91bmQtY29sb3I6
IHJnYigxMjgsIDE1MSwgMTg5KTsKICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgIHdo
aXRlLXNwYWNlOiBub3dyYXA7CkBAIC0xNjAsOCArMTU5LDE0IEBACiAgICAgYm9yZGVyLXRvcDog
M3B4IGRhc2hlZCByZ2IoMjQwLCAyNDAsIDI0MCk7CiB9CiAKLS5jb25zb2xlLWVycm9yLWxldmVs
IC5jb25zb2xlLW1lc3NhZ2UtdGV4dCwgLmNvbnNvbGUtZXJyb3ItbGV2ZWwgLnNlY3Rpb24gLmhl
YWRlciAudGl0bGUgewotICAgIGNvbG9yOiByZWQgIWltcG9ydGFudDsKKy5jb25zb2xlLWVycm9y
LWxldmVsIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMTAwJSwgOTYlKTsKKyAgICBi
b3JkZXItY29sb3I6IGhzbCgwLCAxMDAlLCA5MiUpOworfQorCisuY29uc29sZS1lcnJvci1sZXZl
bCAuY29uc29sZS1tZXNzYWdlLXRleHQsCisuY29uc29sZS1lcnJvci1sZXZlbCAuc2VjdGlvbiAu
aGVhZGVyIC50aXRsZSB7CisgICAgY29sb3I6IGhzbCgwLCA3NSUsIDUwJSk7CiB9CiAKIC5jb25z
b2xlLWRlYnVnLWxldmVsIC5jb25zb2xlLW1lc3NhZ2UtdGV4dCB7CkBAIC0xNzcsNiArMTgyLDE1
IEBACiAgICAgYmFja2dyb3VuZC1zaXplOiAxMHB4IDEwcHg7CiB9CiAKKy5jb25zb2xlLXdhcm5p
bmctbGV2ZWwgeworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCg1MCwgMTAwJSwgOTQlKTsKKyAg
ICBib3JkZXItY29sb3I6IGhzbCg1MCwgMTAwJSwgODYlKTsKK30KKworLmNvbnNvbGUtd2Fybmlu
Zy1sZXZlbCAuY29uc29sZS1tZXNzYWdlLXRleHQgeworICAgIGNvbG9yOiBoc2woMzAsIDkwJSwg
MzUlKTsKK30KKwogLmNvbnNvbGUtd2FybmluZy1sZXZlbDo6YmVmb3JlIHsKICAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoLi4vSW1hZ2VzL1dhcm5pbmcuc3ZnKTsKICAgICBiYWNrZ3JvdW5kLXNp
emU6IDEwcHggMTBweDsKQEAgLTIyMiwxNCArMjM2LDE0IEBACiB9CiAKIC5jb25zb2xlLWdyb3Vw
LW1lc3NhZ2VzIC5zZWN0aW9uIC5oZWFkZXI6OmJlZm9yZSB7Ci0gICAgdG9wOiAycHg7CisgICAg
dG9wOiAzcHg7CiAgICAgbGVmdDogMXB4OwogfQogCiAuY29uc29sZS1ncm91cC1tZXNzYWdlcyAu
c2VjdGlvbiAuaGVhZGVyIC50aXRsZSB7CiAgICAgY29sb3I6IGJsYWNrOwogICAgIGZvbnQtd2Vp
Z2h0OiBub3JtYWw7Ci0gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKKyAgICBsaW5lLWhlaWdodDog
bm9ybWFsOyAvKiBARklYTUU6IG1heSBjYXVzZSBpbmNvbnNpc3RlbmNpZXMgaW4gbGluZS1oZWln
aHRzIG9mIG1vbm9zcGFjZSBhbmQgbm9uLW1vbm9zcGFjZSB0ZXh0ICovCiB9CiAKIC5jb25zb2xl
LWdyb3VwLW1lc3NhZ2VzIC5zZWN0aW9uIC5wcm9wZXJ0aWVzIGxpIC5pbmZvIHsKQEAgLTI0OCw4
ICsyNjIsOSBAQAogfQogCiAuY29uc29sZS1ncm91cC1tZXNzYWdlcyAub3V0bGluZS1kaXNjbG9z
dXJlLCAuY29uc29sZS1ncm91cC1tZXNzYWdlcyAub3V0bGluZS1kaXNjbG9zdXJlIG9sIHsKLSAg
ICBmb250LXNpemU6IGluaGVyaXQ7Ci0gICAgbGluZS1oZWlnaHQ6IDEycHg7CisgICAgLyogQG52
YXNpbHlldjogVGhpcyBjYXVzZXMgZm9udC1zaXplIGluY29uc2lzdGVuY2llcyBpbiB0aGUgY29u
c29sZSwgbm90IHN1cmUgd2h5IGl0J3MgaGVyZS4gKi8KKyAgICAvKmZvbnQtc2l6ZTogaW5oZXJp
dDsqLworICAgIC8qbGluZS1oZWlnaHQ6IDEzcHg7Ki8KIH0KIAogLmNvbnNvbGUtZ3JvdXAtbWVz
c2FnZXMgLm91dGxpbmUtZGlzY2xvc3VyZS5zaW5nbGUtbm9kZSBsaSB7CkBAIC0yNjksNiArMjg0
LDcgQEAKICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OwogICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgLyptYXJnaW4tdG9wOiAxcHg7Ki8gLyog
YWxpZ24gd2l0aCBub24tbW9ub3NwYWNlIHRleHQgdGhhdCBoYXBwZW4gdG8gYmUgb24gdGhlIHNh
bWUgbGluZSAqLwogICAgIGNvbG9yOiBibGFjazsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpp
bmRleCAwYzE5ZTIzLi41Y2QwNDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwpAQCAtMjcwLDcg
KzI3MCw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAKICAg
ICAgICAgaWYgKG9ubHlTZWxlY3RlZCkgewogICAgICAgICAgICAgbWVzc2FnZXMgPSB0aGlzLl9h
bGxNZXNzYWdlcygpLmZpbHRlcihmdW5jdGlvbihtZXNzYWdlKSB7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgICAg
IHJldHVybiBtZXNzYWdlLmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29udGVu
dFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fQogCkBAIC00NTYsOSArNDU2LDEwIEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90
b3R5cGUgPSB7CiAKICAgICBfdXBkYXRlTWVzc2FnZXNTZWxlY3Rpb246IGZ1bmN0aW9uKG1lc3Nh
Z2UsIG11bHRpcGxlU2VsZWN0aW9uLCByYW5nZVNlbGVjdGlvbikKICAgICB7CisgICAgICAgIGNv
bnNvbGUuaW5mbygnX3VwZGF0ZU1lc3NhZ2VzU2VsZWN0aW9uJywgbWVzc2FnZSk7CiAgICAgICAg
IHZhciBhbHJlYWR5U2VsZWN0ZWRNZXNzYWdlID0gdGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5jb250
YWlucyhtZXNzYWdlKTsKICAgICAgICAgaWYgKGFscmVhZHlTZWxlY3RlZE1lc3NhZ2UgJiYgdGhp
cy5fc2VsZWN0ZWRNZXNzYWdlcy5sZW5ndGggJiYgbXVsdGlwbGVTZWxlY3Rpb24pIHsKLSAgICAg
ICAgICAgIG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5M
b2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIG1lc3Nh
Z2UuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRT
dHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZE1lc3NhZ2VzLnJlbW92
ZShtZXNzYWdlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNDgyLDE4ICs0
ODMsMTggQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IHN0YXJ0SW5kZXg7IGkgPD0gZW5kSW5kZXg7ICsraSkgewog
ICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlSW5SYW5nZSA9IG1lc3NhZ2VzW2ldOwotICAgICAg
ICAgICAgICAgIGlmIChpID49IG5ld1JhbmdlWzBdICYmIGkgPD0gbmV3UmFuZ2VbMV0gJiYgIW1l
c3NhZ2VJblJhbmdlLnBhcmVudE5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5M
b2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKSkgewotICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlSW5SYW5nZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgICAg
IGlmIChpID49IG5ld1JhbmdlWzBdICYmIGkgPD0gbmV3UmFuZ2VbMV0gJiYgIW1lc3NhZ2VJblJh
bmdlLmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0
ZWRTdHlsZUNsYXNzTmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUluUmFuZ2Uu
Y2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNs
YXNzTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMucHVz
aChtZXNzYWdlSW5SYW5nZSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpIDwgbmV3UmFu
Z2VbMF0gfHwgaSA+IG5ld1JhbmdlWzFdICYmIG1lc3NhZ2VJblJhbmdlLnBhcmVudE5vZGUuY2xh
c3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxl
Q2xhc3NOYW1lKSkgewotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSW5SYW5nZS5wYXJlbnRO
b2RlLmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVk
U3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA8IG5ld1Jhbmdl
WzBdIHx8IGkgPiBuZXdSYW5nZVsxXSAmJiBtZXNzYWdlSW5SYW5nZS5jbGFzc0xpc3QuY29udGFp
bnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpKSB7
CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJblJhbmdlLmNsYXNzTGlzdC5yZW1vdmUoV2Vi
SW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOwogICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZE1lc3NhZ2VzLnJlbW92ZShtZXNzYWdlSW5SYW5n
ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0aGlz
Ll9zZWxlY3Rpb25SYW5nZSA9IG5ld1JhbmdlOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgbWVzc2FnZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkxvZ0NvbnRl
bnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgbWVzc2FnZS5jbGFz
c0xpc3QuYWRkKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NO
YW1lKTsKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMucHVzaChtZXNzYWdlKTsK
ICAgICAgICAgfQogCkBAIC01MzUsNyArNTM2LDggQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRW
aWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9pc01lc3NhZ2VWaXNpYmxlOiBmdW5jdGlvbihtZXNz
YWdlKQogICAgIHsKLSAgICAgICAgdmFyIG5vZGUgPSBtZXNzYWdlLnBhcmVudE5vZGU7CisgICAg
ICAgIHZhciBub2RlID0gbWVzc2FnZTsKKyAgICAgICAgY29uc29sZS5pbmZvKCdfaXNNZXNzYWdl
VmlzaWJsZScsIG5vZGUpOwogCiAgICAgICAgIGlmIChub2RlLmNsYXNzTGlzdC5jb250YWlucyhX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuRmlsdGVyZWRPdXRTdHlsZUNsYXNzTmFtZSkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01NTcsMTMgKzU1OSwxMyBAQCBXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogCiAgICAgX2lzTWVzc2FnZVNlbGVjdGVk
OiBmdW5jdGlvbihtZXNzYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1lc3NhZ2UucGFyZW50
Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVj
dGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICByZXR1cm4gbWVzc2FnZS5jbGFzc0xpc3QuY29u
dGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUp
OwogICAgIH0sCiAKICAgICBfY2xlYXJNZXNzYWdlc1NlbGVjdGlvbjogZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5mb3JFYWNoKGZ1bmN0aW9uKG1lc3Nh
Z2UpIHsKLSAgICAgICAgICAgIG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKFdl
Ykluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKKyAgICAg
ICAgICAgIG1lc3NhZ2UuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZp
ZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIH0pOwogICAgICAgICB0aGlzLl9z
ZWxlY3RlZE1lc3NhZ2VzID0gW107CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9yZWZlcmVuY2VNZXNz
YWdlRm9yUmFuZ2VTZWxlY3Rpb247CkBAIC01NzYsNyArNTc4LDcgQEAgV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG1lc3NhZ2VzID0gdGhpcy5f
dmlzaWJsZU1lc3NhZ2VzKCk7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMu
bGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gbWVzc2FnZXNbaV07Ci0g
ICAgICAgICAgICBtZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3Iu
TG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICBtZXNz
YWdlLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5
bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5wdXNoKG1l
c3NhZ2UpOwogICAgICAgICB9CiAgICAgfSwKQEAgLTU4OSw3ICs1OTEsNyBAQCBXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgIF91bmZpbHRlcmVkTWVzc2FnZXM6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9hbGxNZXNzYWdlcygpLmZp
bHRlcihmdW5jdGlvbihtZXNzYWdlKSB7Ci0gICAgICAgICAgICByZXR1cm4gIW1lc3NhZ2UucGFy
ZW50Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LkZp
bHRlcmVkT3V0U3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgcmV0dXJuICFtZXNzYWdlLmNs
YXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuRmlsdGVyZWRPdXRT
dHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIH0pOwogICAgIH0sCiAKQEAgLTYwMSw3ICs2MDMsNyBA
QCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAg
cmV0dXJuIHVuZmlsdGVyZWRNZXNzYWdlczsKIAogICAgICAgICByZXR1cm4gdW5maWx0ZXJlZE1l
c3NhZ2VzLmZpbHRlcihmdW5jdGlvbihtZXNzYWdlKSB7Ci0gICAgICAgICAgICByZXR1cm4gIW1l
c3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRl
bnRWaWV3LkZpbHRlcmVkT3V0QnlTZWFyY2hTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICBy
ZXR1cm4gIW1lc3NhZ2UuY2xhc3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50
Vmlldy5GaWx0ZXJlZE91dEJ5U2VhcmNoU3R5bGVDbGFzc05hbWUpOwogICAgICAgICB9KTsKICAg
ICB9LAogCkBAIC02NTMsNyArNjU1LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIHZhciBjbGFzc0xpc3QgPSBtZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NMaXN0OworICAgICAg
ICAgICAgdmFyIGNsYXNzTGlzdCA9IG1lc3NhZ2UuY2xhc3NMaXN0OwogICAgICAgICAgICAgaWYg
KHZpc2libGUpCiAgICAgICAgICAgICAgICAgY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3Iu
TG9nQ29udGVudFZpZXcuRmlsdGVyZWRPdXRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICBl
bHNlIHsKQEAgLTc1OSw3ICs3NjEsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJv
dG90eXBlID0gewogCiAgICAgICAgIHZhciBjdXJyZW50TWVzc2FnZSA9IHRoaXMuX3NlbGVjdGVk
TWVzc2FnZXNbMF07CiAgICAgICAgIGlmIChjdXJyZW50TWVzc2FnZS5jbGFzc0xpc3QuY29udGFp
bnMoImNvbnNvbGUtZ3JvdXAtdGl0bGUiKSkKLSAgICAgICAgICAgIGN1cnJlbnRNZXNzYWdlLnBh
cmVudE5vZGUucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKTsKKyAgICAgICAg
ICAgIGN1cnJlbnRNZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIik7
CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgdmFyIG91dGxpbmVUaXRsZSA9IGN1cnJlbnRN
ZXNzYWdlLnF1ZXJ5U2VsZWN0b3IoIm9sLm91dGxpbmUtZGlzY2xvc3VyZSA+IGxpLnBhcmVudCIp
OwogICAgICAgICAgICAgaWYgKG91dGxpbmVUaXRsZSkgewpAQCAtNzgyLDcgKzc4NCw3IEBAIFdl
Ykluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIGN1
cnJlbnRNZXNzYWdlID0gdGhpcy5fc2VsZWN0ZWRNZXNzYWdlc1swXTsKICAgICAgICAgaWYgKGN1
cnJlbnRNZXNzYWdlLmNsYXNzTGlzdC5jb250YWlucygiY29uc29sZS1ncm91cC10aXRsZSIpKQot
ICAgICAgICAgICAgY3VycmVudE1lc3NhZ2UucGFyZW50Tm9kZS5wYXJlbnROb2RlLmNsYXNzTGlz
dC5yZW1vdmUoImNvbGxhcHNlZCIpOworICAgICAgICAgICAgY3VycmVudE1lc3NhZ2UucGFyZW50
Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJjb2xsYXBzZWQiKTsKICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICB2YXIgb3V0bGluZVRpdGxlID0gY3VycmVudE1lc3NhZ2UucXVlcnlTZWxlY3Rvcigi
b2wub3V0bGluZS1kaXNjbG9zdXJlID4gbGkucGFyZW50Iik7CiAgICAgICAgICAgICBpZiAob3V0
bGluZVRpdGxlKSB7CkBAIC04ODYsNyArODg4LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRW
aWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICghaXNFbXB0eU9iamVjdChtYXRjaFJh
bmdlcykpCiAgICAgICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0UmFuZ2VzKG1lc3NhZ2UsIG1h
dGNoUmFuZ2VzKTsKIAotICAgICAgICAgICAgdmFyIGNsYXNzTGlzdCA9IG1lc3NhZ2UucGFyZW50
Tm9kZS5jbGFzc0xpc3Q7CisgICAgICAgICAgICB2YXIgY2xhc3NMaXN0ID0gbWVzc2FnZS5jbGFz
c0xpc3Q7CiAgICAgICAgICAgICBpZiAoIWlzRW1wdHlPYmplY3QobWF0Y2hSYW5nZXMpIHx8IG1l
c3NhZ2UuY29tbWFuZCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZCB8fCBt
ZXNzYWdlLm1lc3NhZ2UgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmRSZXN1
bHQpCiAgICAgICAgICAgICAgICAgY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuTG9nQ29u
dGVudFZpZXcuRmlsdGVyZWRPdXRCeVNlYXJjaFN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgICAg
IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NlY3Rpb24uY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU2VjdGlvbi5jc3MKaW5kZXggMjk5ZmMwNS4uNzkwMzFlNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VjdGlvbi5jc3MKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VjdGlvbi5jc3MKQEAgLTU5
LDcgKzU5LDcgQEAKICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgIHdvcmQtd3JhcDogYnJl
YWstd29yZDsKICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwotICAgIGxpbmUtaGVpZ2h0OiAxOHB4
OworICAgIGxpbmUtaGVpZ2h0OiAxOHB4OyAvKiBAVE9ETzogbm90IHN1cmUgd2h5IGlzIGl0IGhl
cmUgKi8KIH0KIAogLnNlY3Rpb24gLmhlYWRlciAudGl0bGUuYmxhbmstdGl0bGUgewo=
</data>
<flag name="review"
          id="270410"
          type_id="1"
          status="-"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="270411"
          type_id="3"
          status="-"
          setter="nvasilyev"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>245469</attachid>
            <date>2015-01-27 14:18:01 -0800</date>
            <delta_ts>2015-01-27 14:18:01 -0800</delta_ts>
            <desc>[Image] WIP</desc>
            <filename>console-style.png</filename>
            <type>image/png</type>
            <size>70749</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">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
DMjriO9GRsj5Kh5/tbwMehOP/zotoG0MO89gOApN23jFcu8Z4pA3AkFBmJ0d3wtxoPD55VyHXORl
+Ol04NHcYtmcN/8SBgzQBNeC76DfDw5//iPr0tXDP4x9Qexmxvc/zc39c2OjhrtGsOO7oRN9yspT
UXCeD1DMZftCwDv8E5TfQYjvDLHvGPSCcjSpkQzqN0KKNnyfxABoOvv14zsmA2PQ/x1vE/7pLBZ8
Z7HNvUYoCrGJdhQbvkMwhjZir2uQPI7WGPfZpO8dTDovfGvCbq20j+xly+giuTw/iYHIKGaf02Kz
2bnL0LXTbu+y83Z4VlHs+I733rUlxlpSXAyKb4RKImFrF3Z8ZyicAd8Z+uORRD8Ge3z2netmCYEV
o1+cVU2FgfERTBHfZzCu3YywFL6HAN9DFbhCMsDz1o/wKLhcujDsPMHdGXuPy89jMDqF73hHjp+v
xffXbPi+45y3N3wvRLy28cxOYszljqgmgMTXh+9I8N3j++FPPyO7M+L77OzsxurqZ0Lges/4ji/E
92LSl6K4qy9xk1wnNXE2iML3geFd4Z5d70cmPxFq5xkGSnYFtbMO+L42hWsfvyG+J3vCd9Itvisj
6FXUiGc/nLpyfHev0Shqa2LVYY0vO76Daqn10rOpXWoV71Cw3hu+d7RWVvvgNUKQEd8luE2QIozu
P5w9jK0eCFeB7yw241Dq8To7vrt3XvTw1eO7gna6W2KNVOmbqsM0BITWsLYL+0R4x8KvAd8HPyq2
xuWz71y3Fd8rHfA9MWcsOWXAd1BJTPwamgt4BStdh8u6YYDvcTvIhjxgTrgTvgvegN9v17hv5h35
0fAdSf3cJx7PHY+n/V/8tP8/glU4qCqG0bxrw3ck+LE/dhM800rWSgy5WPF9dWmpvL2N13vEd2oB
qxA5TQZxfVun+Hg6ugO3bXGGDFKTpDpR6WObrhbfN56YGJ0Owsb0V4jvz5L0+kJ2fKfNpk9fsps9
WJZpkxqyVIPVt1eK7+414v6edIwT7o7Hhu+kls2eZmXzftgna5FdqALC63vAd4jNoKOTMZCMPXgG
68UF03jyaO/4zmYzVIEpafp0Dp7ptvOebVwWRycVhWFlyFNKyiyug9h3XLbRtSW4R5YRGp4tDcGy
hxRzuyBJM/Rul8K/Eb5vPMG3iNSmlnz2nesGaifi1aGZilEpJUJjgnd8erGsB88go5ulLc8gFHaL
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
AAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245858</attachid>
            <date>2015-02-01 21:59:57 -0800</date>
            <delta_ts>2015-02-16 09:33:02 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>18978</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
bnNvbGVDb21tYW5kLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ29uc29sZUNvbW1hbmQuanMKaW5kZXggNDM2YjBkNS4uYTk3N2E0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUNvbW1hbmQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29s
ZUNvbW1hbmQuanMKQEAgLTM5LDE4ICszOSwyOCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1h
bmQucHJvdG90eXBlID0gewogCiAgICAgLy8gUHVibGljCiAKKyAgICBkZWNvcmF0ZU1lc3NhZ2VF
bGVtZW50OiBmdW5jdGlvbihlbGVtZW50KSB7CisgICAgICAgIGlmICh0aGlzLl9lbGVtZW50KQor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7CisKKyAgICAgICAgdGhpcy5fZWxlbWVu
dCA9IGVsZW1lbnQ7CisgICAgICAgIHRoaXMuX2VsZW1lbnQuY29tbWFuZCA9IHRoaXM7CisgICAg
ICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgiY29uc29sZS11c2VyLWNvbW1hbmQiKTsK
KyAgICAgICAgdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoImRhdGEtbGFiZWxwcmVmaXgiLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIklucHV0OiAiKSk7CisKKyAgICAgICAgdGhpcy5fZm9ybWF0
Q29tbWFuZCgpOworICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2Zvcm1h
dHRlZENvbW1hbmQpOworCisgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OworICAgIH0sCisK
ICAgICB0b01lc3NhZ2VFbGVtZW50OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAoIXRo
aXMuX2VsZW1lbnQpIHsKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY29tbWFuZCA9IHRo
aXM7Ci0gICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTmFtZSA9ICJjb25zb2xlLXVzZXIt
Y29tbWFuZCI7Ci0gICAgICAgICAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgiZGF0YS1s
YWJlbHByZWZpeCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW5wdXQ6ICIpKTsKKyAgICAgICAg
aWYgKHRoaXMuX2VsZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKIAot
ICAgICAgICAgICAgdGhpcy5fZm9ybWF0Q29tbWFuZCgpOwotICAgICAgICAgICAgdGhpcy5fZWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLl9mb3JtYXR0ZWRDb21tYW5kKTsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGVjb3JhdGVNZXNz
YWdlRWxlbWVudChlbGVtZW50KTsKICAgICB9LAogCiAgICAgLy8gUHJpdmF0ZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUdyb3Vw
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUdy
b3VwLmpzCmluZGV4IDY4OWIyZTIuLjM0MTlhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVHcm91cC5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlR3JvdXAuanMKQEAgLTU0
LDIxICs1NCwyMyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZSA9IHsKIAog
ICAgIGFkZE1lc3NhZ2U6IGZ1bmN0aW9uKG1zZykKICAgICB7Ci0gICAgICAgIHZhciBlbGVtZW50
ID0gbXNnLnRvTWVzc2FnZUVsZW1lbnQoKTsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBXZWJJ
bnNwZWN0b3IuTG9nQ29udGVudFZpZXcuSXRlbVdyYXBwZXJTdHlsZUNsYXNzTmFtZTsKIAotICAg
ICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAg
ICB3cmFwcGVyLmNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5JdGVtV3Jh
cHBlclN0eWxlQ2xhc3NOYW1lOwotICAgICAgICB3cmFwcGVyLm1lc3NhZ2VFbGVtZW50ID0gd3Jh
cHBlci5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICAgICAgbXNnLmRlY29yYXRlTWVzc2FnZUVs
ZW1lbnQoZWxlbWVudCk7CisKKyAgICAgICAgLy9ARklYTUUKKyAgICAgICAgZWxlbWVudC5tZXNz
YWdlRWxlbWVudCA9IGVsZW1lbnQ7CiAKICAgICAgICAgaWYgKG1zZy50eXBlID09PSBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuU3RhcnRHcm91cCB8fCBtc2cudHlwZSA9
PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXBDb2xs
YXBzZWQpIHsKLSAgICAgICAgICAgIHRoaXMubWVzc2FnZXNFbGVtZW50LnBhcmVudE5vZGUuaW5z
ZXJ0QmVmb3JlKHdyYXBwZXIsIHRoaXMubWVzc2FnZXNFbGVtZW50KTsKKyAgICAgICAgICAgIHRo
aXMubWVzc2FnZXNFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIHRoaXMu
bWVzc2FnZXNFbGVtZW50KTsKICAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0aGlzLl90aXRsZUNsaWNrZWQuYmluZCh0aGlzKSk7CiAgICAgICAgICAgICBlbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX3RpdGxlTW91c2VEb3duLmJp
bmQodGhpcykpOwogICAgICAgICAgICAgdmFyIGdyb3VwRWxlbWVudCA9IGVsZW1lbnQuZW5jbG9z
aW5nTm9kZU9yU2VsZldpdGhDbGFzcygiY29uc29sZS1ncm91cCIpOwogICAgICAgICAgICAgaWYg
KGdyb3VwRWxlbWVudCAmJiBtc2cudHlwZSA9PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXBDb2xsYXBzZWQpCiAgICAgICAgICAgICAgICAgZ3JvdXBF
bGVtZW50LmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpOwogICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIHRoaXMubWVzc2FnZXNFbGVtZW50LmFwcGVuZENoaWxkKHdyYXBwZXIpOworICAgICAg
ICAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgfSwK
IAogICAgIGhhc01lc3NhZ2VzOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZUltcGwuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZUltcGwu
anMKaW5kZXggYjhkZjAzMC4uMzliZGViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VJbXBsLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNzYWdlSW1wbC5q
cwpAQCAtNTgwLDE0ICs1ODAsMTMgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBTdHJpbmcuZm9ybWF0KHBhcmFtZXRlcnNbMF0u
ZGVzY3JpcHRpb24sIHBhcmFtZXRlcnMuc2xpY2UoMSksIGZvcm1hdHRlcnMsIGZvcm1hdHRlZFJl
c3VsdCwgYXBwZW5kKTsKICAgICB9LAogCi0gICAgdG9NZXNzYWdlRWxlbWVudDogZnVuY3Rpb24o
KQorICAgIGRlY29yYXRlTWVzc2FnZUVsZW1lbnQ6IGZ1bmN0aW9uKGVsZW1lbnQpCiAgICAgewog
ICAgICAgICBpZiAodGhpcy5fZWxlbWVudCkKICAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVt
ZW50OwogCi0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CiAgICAgICAgIGVsZW1lbnQubWVzc2FnZSA9IHRoaXM7Ci0gICAgICAgIGVsZW1lbnQuY2xh
c3NOYW1lID0gImNvbnNvbGUtbWVzc2FnZSI7CisgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFk
ZCgiY29uc29sZS1tZXNzYWdlIik7CiAKICAgICAgICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnQ7
CiAKQEAgLTYyNSw2ICs2MjQsMTYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBlbGVtZW50OwogICAgIH0sCiAKKyAgICB0b01l
c3NhZ2VFbGVtZW50OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fZWxlbWVu
dCkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OworCisgICAgICAgIHZhciBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisKKyAgICAgICAgcmV0dXJuIHRo
aXMuZGVjb3JhdGVNZXNzYWdlRWxlbWVudChlbGVtZW50KTsKKyAgICB9LAorCiAgICAgX3BvcHVs
YXRlU3RhY2tUcmFjZVRyZWVFbGVtZW50OiBmdW5jdGlvbihwYXJlbnRUcmVlRWxlbWVudCkKICAg
ICB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc3RhY2tUcmFjZS5sZW5ndGg7
IGkrKykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTG9nQ29udGVudFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuY3NzCmluZGV4IDIyM2M1YWYuLjUxMzEwNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0Nv
bnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Mb2dDb250ZW50Vmlldy5jc3MKQEAgLTM0LDE3ICszNCwyNCBAQAogCiAgICAgd29yZC13
cmFwOiBicmVhay13b3JkOwogCi0gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7Ci0g
ICAgZm9udC1zaXplOiAxMXB4OworICAgIGZvbnQtZmFtaWx5OiAtd2Via2l0LXN5c3RlbS1mb250
LCBzYW5zLXNlcmlmOworICAgIGZvbnQtc2l6ZTogMTJweDsKIAogICAgIG1pbi1oZWlnaHQ6IDEw
MCU7CiB9CiAKKy5jb25zb2xlLXVzZXItY29tbWFuZCwKKy5jb25zb2xlLXVzZXItY29tbWFuZC1y
ZXN1bHQsCisuY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0IHsKKyAgICBmb250LWZhbWlseTogTWVu
bG8sIG1vbm9zcGFjZTsKKyAgICBmb250LXNpemU6IDExcHg7Cit9CisKIC5jb25zb2xlLW1lc3Nh
Z2VzID4gOmZpcnN0LWNoaWxkIHsKICAgICBtYXJnaW4tdG9wOiBhdXRvOwogfQogCi0uY29uc29s
ZS1pdGVtIHsKKy5jb25zb2xlLW1lc3NhZ2UgewogICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBy
Z2IoMjQwLCAyNDAsIDI0MCk7CiB9CiAKQEAgLTUyLDE2ICs1OSw3IEBACiAgICAgYm9yZGVyLXRv
cDogbm9uZTsKIH0KIAotLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCB7Ci0gICAgYmFja2dyb3VuZC1j
b2xvcjogaHNsKDIxMCwgMCUsIDk2JSk7Ci19Ci0KLS5jb25zb2xlLW1lc3NhZ2VzOmZvY3VzIC5j
b25zb2xlLWl0ZW0uc2VsZWN0ZWQgewotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMTAsIDk4
JSwgOTYlKTsKLX0KLQotLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCAuY29uc29sZS11c2VyLWNvbW1h
bmQ6OmFmdGVyLAotLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCAuY29uc29sZS1tZXNzYWdlOjphZnRl
ciB7CisuY29uc29sZS1pdGVtLnNlbGVjdGVkOjphZnRlciB7CiAgICAgcG9zaXRpb246IGFic29s
dXRlOwogICAgIGRpc3BsYXk6IGJsb2NrOwogICAgIGNvbnRlbnQ6ICIiOwpAQCAtNzIsOCArNzAs
NyBAQAogICAgIHdpZHRoOiAycHg7CiB9CiAKLS5jb25zb2xlLW1lc3NhZ2VzOmZvY3VzIC5jb25z
b2xlLWl0ZW0uc2VsZWN0ZWQgLmNvbnNvbGUtdXNlci1jb21tYW5kOjphZnRlciwKLS5jb25zb2xl
LW1lc3NhZ2VzOmZvY3VzIC5jb25zb2xlLWl0ZW0uc2VsZWN0ZWQgLmNvbnNvbGUtbWVzc2FnZTo6
YWZ0ZXIgeworLmNvbnNvbGUtbWVzc2FnZXM6Zm9jdXMgLmNvbnNvbGUtaXRlbS5zZWxlY3RlZDo6
YWZ0ZXIgewogICAgIGJhY2tncm91bmQ6IGhzbCgyMTAsIDEwMCUsIDQ5JSk7CiB9CiAKQEAgLTgy
LDcgKzc5LDggQEAKIH0KIAogLmNvbnNvbGUtdXNlci1jb21tYW5kLXJlc3VsdC5jb25zb2xlLWxv
Zy1sZXZlbDo6YmVmb3JlIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vSW1hZ2VzL1Vz
ZXJJbnB1dFJlc3VsdC5zdmcpOworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvVXNlcklucHV0
UmVzdWx0LnN2Zyk7CisgICAgbWFyZ2luLXRvcDogMXB4OyAvKiBhbGlnbiB3aXRoIDExcHggTWVu
bG8gKi8KIH0KIAogLmNvbnNvbGUtbWVzc2FnZSwgLmNvbnNvbGUtdXNlci1jb21tYW5kIHsKQEAg
LTkxLDIwICs4OSwxOSBAQAogICAgIG1pbi1oZWlnaHQ6IDE2cHg7CiB9CiAKLS5jb25zb2xlLW1l
c3NhZ2U6OmJlZm9yZSwgLmNvbnNvbGUtdXNlci1jb21tYW5kOjpiZWZvcmUsIC5qYXZhc2NyaXB0
LXByb21wdDo6YmVmb3JlLCAuY29uc29sZS1ncm91cC10aXRsZTo6YmVmb3JlIHsKKy5jb25zb2xl
LWl0ZW06OmJlZm9yZSB7CisgICAgY29udGVudDogIiAiOworCiAgICAgcG9zaXRpb246IGFic29s
dXRlOwotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIGNvbnRlbnQ6ICIiOwogICAgIGxlZnQ6IDRw
eDsKLSAgICB0b3A6IDhweDsKICAgICB3aWR0aDogMTBweDsKLSAgICBoZWlnaHQ6IDEwcHg7Ci0g
ICAgbWFyZ2luLXRvcDogLTVweDsKKworICAgIG1hcmdpbi10b3A6IDFweDsgLyogYWxpZ24gd2l0
aCAxMXB4IE1lbmxvICovCiB9CiAKIC5jb25zb2xlLW1lc3NhZ2UgLmJ1YmJsZSB7CiAgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOwotICAgIGhlaWdodDogMTRweDsKKyAgICBoZWlnaHQ6IDE1cHg7
CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOCwgMTUxLCAxODkpOwogICAgIHZlcnRpY2Fs
LWFsaWduOiBtaWRkbGU7CiAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKQEAgLTE2Miw4ICsxNTks
MTQgQEAKICAgICBib3JkZXItdG9wOiAzcHggZGFzaGVkIHJnYigyNDAsIDI0MCwgMjQwKTsKIH0K
IAotLmNvbnNvbGUtZXJyb3ItbGV2ZWwgLmNvbnNvbGUtbWVzc2FnZS10ZXh0LCAuY29uc29sZS1l
cnJvci1sZXZlbCAuc2VjdGlvbiAuaGVhZGVyIC50aXRsZSB7Ci0gICAgY29sb3I6IHJlZCAhaW1w
b3J0YW50OworLmNvbnNvbGUtZXJyb3ItbGV2ZWwgeworICAgIGJhY2tncm91bmQtY29sb3I6IGhz
bCgwLCAxMDAlLCA5NiUpOworICAgIGJvcmRlci1jb2xvcjogaHNsKDAsIDEwMCUsIDkyJSk7Cit9
CisKKy5jb25zb2xlLWVycm9yLWxldmVsIC5jb25zb2xlLW1lc3NhZ2UtdGV4dCwKKy5jb25zb2xl
LWVycm9yLWxldmVsIC5zZWN0aW9uIC5oZWFkZXIgLnRpdGxlIHsKKyAgICBjb2xvcjogaHNsKDAs
IDc1JSwgNTAlKTsKIH0KIAogLmNvbnNvbGUtZGVidWctbGV2ZWwgLmNvbnNvbGUtbWVzc2FnZS10
ZXh0IHsKQEAgLTE3NSwxMyArMTc4LDIwIEBACiB9CiAKIC5jb25zb2xlLWVycm9yLWxldmVsOjpi
ZWZvcmUgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9JbWFnZXMvRXJyb3Iuc3ZnKTsK
LSAgICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggMTBweDsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1h
Z2VzL0Vycm9yLnN2Zyk7Cit9CisKKy5jb25zb2xlLXdhcm5pbmctbGV2ZWwgeworICAgIGJhY2tn
cm91bmQtY29sb3I6IGhzbCg1MCwgMTAwJSwgOTQlKTsKKyAgICBib3JkZXItY29sb3I6IGhzbCg1
MCwgMTAwJSwgODYlKTsKK30KKworLmNvbnNvbGUtd2FybmluZy1sZXZlbCAuY29uc29sZS1tZXNz
YWdlLXRleHQgeworICAgIGNvbG9yOiBoc2woMzAsIDkwJSwgMzUlKTsKIH0KIAogLmNvbnNvbGUt
d2FybmluZy1sZXZlbDo6YmVmb3JlIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vSW1h
Z2VzL1dhcm5pbmcuc3ZnKTsKLSAgICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggMTBweDsKKyAgICBj
b250ZW50OiB1cmwoLi4vSW1hZ2VzL1dhcm5pbmcuc3ZnKTsKIH0KIAogLmNvbnNvbGUtdXNlci1j
b21tYW5kIC5jb25zb2xlLW1lc3NhZ2UgewpAQCAtMTkwLDcgKzIwMCw4IEBACiB9CiAKIC5jb25z
b2xlLXVzZXItY29tbWFuZDo6YmVmb3JlIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4v
SW1hZ2VzL1VzZXJJbnB1dFByb21wdFByZXZpb3VzLnN2Zyk7CisgICAgY29udGVudDogdXJsKC4u
L0ltYWdlcy9Vc2VySW5wdXRQcm9tcHRQcmV2aW91cy5zdmcpOworICAgIG1hcmdpbi10b3A6IDFw
eDsgLyogYWxpZ24gd2l0aCAxMXB4IE1lbmxvICovCiB9CiAKIC5jb25zb2xlLXVzZXItY29tbWFu
ZCA+IC5jb25zb2xlLW1lc3NhZ2UtdGV4dCB7CkBAIC0yMTMsNyArMjI0LDcgQEAKIH0KIAogLmNv
bnNvbGUtZ3JvdXAtbWVzc2FnZXMgLnNlY3Rpb24gewotICAgIG1hcmdpbjogMCAwIDAgMTJweCAh
aW1wb3J0YW50OworICAgIG1hcmdpbjogMCAwIDAgMTJweDsKIH0KIAogLmNvbnNvbGUtZ3JvdXAt
bWVzc2FnZXMgLnNlY3Rpb24gLmhlYWRlciB7CkBAIC0yMjQsMTQgKzIzNSwxNCBAQAogfQogCiAu
Y29uc29sZS1ncm91cC1tZXNzYWdlcyAuc2VjdGlvbiAuaGVhZGVyOjpiZWZvcmUgewotICAgIHRv
cDogMnB4OworICAgIHRvcDogM3B4OwogICAgIGxlZnQ6IDFweDsKIH0KIAogLmNvbnNvbGUtZ3Jv
dXAtbWVzc2FnZXMgLnNlY3Rpb24gLmhlYWRlciAudGl0bGUgewogICAgIGNvbG9yOiBibGFjazsK
ICAgICBmb250LXdlaWdodDogbm9ybWFsOwotICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CisgICAg
bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogQEZJWE1FOiBtYXkgY2F1c2UgaW5jb25zaXN0ZW5jaWVz
IGluIGxpbmUtaGVpZ2h0cyBvZiBtb25vc3BhY2UgYW5kIG5vbi1tb25vc3BhY2UgdGV4dCAqLwog
fQogCiAuY29uc29sZS1ncm91cC1tZXNzYWdlcyAuc2VjdGlvbiAucHJvcGVydGllcyBsaSAuaW5m
byB7CkBAIC0yNTAsOCArMjYxLDkgQEAKIH0KIAogLmNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMgLm91
dGxpbmUtZGlzY2xvc3VyZSwgLmNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMgLm91dGxpbmUtZGlzY2xv
c3VyZSBvbCB7Ci0gICAgZm9udC1zaXplOiBpbmhlcml0OwotICAgIGxpbmUtaGVpZ2h0OiAxMnB4
OworICAgIC8qIEBudmFzaWx5ZXY6IFRoaXMgY2F1c2VzIGZvbnQtc2l6ZSBpbmNvbnNpc3RlbmNp
ZXMgaW4gdGhlIGNvbnNvbGUsIG5vdCBzdXJlIHdoeSBpdCdzIGhlcmUuICovCisgICAgLypmb250
LXNpemU6IGluaGVyaXQ7Ki8KKyAgICAvKmxpbmUtaGVpZ2h0OiAxM3B4OyovCiB9CiAKIC5jb25z
b2xlLWdyb3VwLW1lc3NhZ2VzIC5vdXRsaW5lLWRpc2Nsb3N1cmUuc2luZ2xlLW5vZGUgbGkgewpA
QCAtMzAxLDcgKzMxMyw3IEBACiAuY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0LCAuY29uc29sZS1m
b3JtYXR0ZWQtbm9kZSwgLmNvbnNvbGUtZm9ybWF0dGVkLWVycm9yLCAuY29uc29sZS1mb3JtYXR0
ZWQtbWFwLCAuY29uc29sZS1mb3JtYXR0ZWQtc2V0LCAuY29uc29sZS1mb3JtYXR0ZWQtd2Vha21h
cCB7CiAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
LSAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsK
ICAgICBjb2xvcjogYmxhY2s7CiB9CiAKQEAgLTM5MiwxMCArNDA0LDYgQEAKICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB3aGl0ZTsKIH0KIAotLm91dGxpbmUtZGlzY2xvc3VyZSB7Ci0gICAgZm9udC1z
aXplOiAxMXB4OwotfQotCiAub3V0bGluZS1kaXNjbG9zdXJlID4gb2wgewogICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKICAgICBwYWRkaW5nOiAycHggNnB4ICFpbXBvcnRhbnQ7CkBAIC00MTMsOCAr
NDIxLDggQEAKIAogLm91dGxpbmUtZGlzY2xvc3VyZSBsaSB7CiAgICAgcGFkZGluZzogMCAwIDAg
MTRweDsKLSAgICBtYXJnaW4tdG9wOiAxcHg7Ci0gICAgbWFyZ2luLWJvdHRvbTogMXB4OworICAg
IG1hcmdpbi10b3A6IDA7CisgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgIG1hcmdpbi1sZWZ0
OiAtMnB4OwogICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKIH0KQEAgLTQzOSw3ICs0NDcsNyBA
QAogICAgIHdpZHRoOiA4cHg7CiAgICAgaGVpZ2h0OiA4cHg7CiAKLSAgICBtYXJnaW4tdG9wOiAy
cHg7CisgICAgbWFyZ2luLXRvcDogNHB4OwogICAgIHBhZGRpbmctcmlnaHQ6IDJweDsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9n
Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Mb2dDb250ZW50Vmlldy5qcwppbmRleCAwYzE5ZTIzLi41Y2QwNDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qcwpAQCAtMjcwLDcgKzI3MCw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmll
dy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgaWYgKG9ubHlTZWxlY3RlZCkgewogICAgICAgICAg
ICAgbWVzc2FnZXMgPSB0aGlzLl9hbGxNZXNzYWdlcygpLmZpbHRlcihmdW5jdGlvbihtZXNzYWdl
KSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3Qu
Y29udGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05h
bWUpOworICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlLmNsYXNzTGlzdC5jb250YWlucyhX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfQogCkBAIC00NTYsOSArNDU2LDEwIEBAIFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBfdXBkYXRlTWVzc2FnZXNTZWxl
Y3Rpb246IGZ1bmN0aW9uKG1lc3NhZ2UsIG11bHRpcGxlU2VsZWN0aW9uLCByYW5nZVNlbGVjdGlv
bikKICAgICB7CisgICAgICAgIGNvbnNvbGUuaW5mbygnX3VwZGF0ZU1lc3NhZ2VzU2VsZWN0aW9u
JywgbWVzc2FnZSk7CiAgICAgICAgIHZhciBhbHJlYWR5U2VsZWN0ZWRNZXNzYWdlID0gdGhpcy5f
c2VsZWN0ZWRNZXNzYWdlcy5jb250YWlucyhtZXNzYWdlKTsKICAgICAgICAgaWYgKGFscmVhZHlT
ZWxlY3RlZE1lc3NhZ2UgJiYgdGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5sZW5ndGggJiYgbXVsdGlw
bGVTZWxlY3Rpb24pIHsKLSAgICAgICAgICAgIG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3Qu
cmVtb3ZlKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1l
KTsKKyAgICAgICAgICAgIG1lc3NhZ2UuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9z
ZWxlY3RlZE1lc3NhZ2VzLnJlbW92ZShtZXNzYWdlKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpAQCAtNDgyLDE4ICs0ODMsMTggQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICAgICAgZm9yICh2YXIgaSA9IHN0YXJ0SW5kZXg7IGkg
PD0gZW5kSW5kZXg7ICsraSkgewogICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlSW5SYW5nZSA9
IG1lc3NhZ2VzW2ldOwotICAgICAgICAgICAgICAgIGlmIChpID49IG5ld1JhbmdlWzBdICYmIGkg
PD0gbmV3UmFuZ2VbMV0gJiYgIW1lc3NhZ2VJblJhbmdlLnBhcmVudE5vZGUuY2xhc3NMaXN0LmNv
bnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1l
KSkgewotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSW5SYW5nZS5wYXJlbnROb2RlLmNsYXNz
TGlzdC5hZGQoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05h
bWUpOworICAgICAgICAgICAgICAgIGlmIChpID49IG5ld1JhbmdlWzBdICYmIGkgPD0gbmV3UmFu
Z2VbMV0gJiYgIW1lc3NhZ2VJblJhbmdlLmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3Iu
TG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZUluUmFuZ2UuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuTG9nQ29udGVu
dFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMu
X3NlbGVjdGVkTWVzc2FnZXMucHVzaChtZXNzYWdlSW5SYW5nZSk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChpIDwgbmV3UmFuZ2VbMF0gfHwgaSA+IG5ld1JhbmdlWzFdICYmIG1lc3NhZ2VJ
blJhbmdlLnBhcmVudE5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKSkgewotICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlSW5SYW5nZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoaSA8IG5ld1JhbmdlWzBdIHx8IGkgPiBuZXdSYW5nZVsxXSAmJiBtZXNzYWdlSW5S
YW5nZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVj
dGVkU3R5bGVDbGFzc05hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJblJhbmdl
LmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5
bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZE1lc3NhZ2Vz
LnJlbW92ZShtZXNzYWdlSW5SYW5nZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25SYW5nZSA9IG5ld1JhbmdlOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgbWVzc2FnZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5hZGQo
V2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOworICAg
ICAgICAgICAgbWVzc2FnZS5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmll
dy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWVz
c2FnZXMucHVzaChtZXNzYWdlKTsKICAgICAgICAgfQogCkBAIC01MzUsNyArNTM2LDggQEAgV2Vi
SW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9pc01lc3NhZ2VW
aXNpYmxlOiBmdW5jdGlvbihtZXNzYWdlKQogICAgIHsKLSAgICAgICAgdmFyIG5vZGUgPSBtZXNz
YWdlLnBhcmVudE5vZGU7CisgICAgICAgIHZhciBub2RlID0gbWVzc2FnZTsKKyAgICAgICAgY29u
c29sZS5pbmZvKCdfaXNNZXNzYWdlVmlzaWJsZScsIG5vZGUpOwogCiAgICAgICAgIGlmIChub2Rl
LmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuRmlsdGVyZWRP
dXRTdHlsZUNsYXNzTmFtZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01NTcsMTMg
KzU1OSwxMyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogCiAg
ICAgX2lzTWVzc2FnZVNlbGVjdGVkOiBmdW5jdGlvbihtZXNzYWdlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICByZXR1cm4g
bWVzc2FnZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNl
bGVjdGVkU3R5bGVDbGFzc05hbWUpOwogICAgIH0sCiAKICAgICBfY2xlYXJNZXNzYWdlc1NlbGVj
dGlvbjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5m
b3JFYWNoKGZ1bmN0aW9uKG1lc3NhZ2UpIHsKLSAgICAgICAgICAgIG1lc3NhZ2UucGFyZW50Tm9k
ZS5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0
eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIG1lc3NhZ2UuY2xhc3NMaXN0LnJlbW92ZShXZWJJ
bnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAg
IH0pOwogICAgICAgICB0aGlzLl9zZWxlY3RlZE1lc3NhZ2VzID0gW107CiAgICAgICAgIGRlbGV0
ZSB0aGlzLl9yZWZlcmVuY2VNZXNzYWdlRm9yUmFuZ2VTZWxlY3Rpb247CkBAIC01NzYsNyArNTc4
LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
dmFyIG1lc3NhZ2VzID0gdGhpcy5fdmlzaWJsZU1lc3NhZ2VzKCk7CiAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBtZXNz
YWdlID0gbWVzc2FnZXNbaV07Ci0gICAgICAgICAgICBtZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NM
aXN0LmFkZChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFt
ZSk7CisgICAgICAgICAgICBtZXNzYWdlLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkxvZ0Nv
bnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgdGhpcy5fc2Vs
ZWN0ZWRNZXNzYWdlcy5wdXNoKG1lc3NhZ2UpOwogICAgICAgICB9CiAgICAgfSwKQEAgLTU4OSw3
ICs1OTEsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAg
IF91bmZpbHRlcmVkTWVzc2FnZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0
aGlzLl9hbGxNZXNzYWdlcygpLmZpbHRlcihmdW5jdGlvbihtZXNzYWdlKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gIW1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVj
dG9yLkxvZ0NvbnRlbnRWaWV3LkZpbHRlcmVkT3V0U3R5bGVDbGFzc05hbWUpOworICAgICAgICAg
ICAgcmV0dXJuICFtZXNzYWdlLmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29u
dGVudFZpZXcuRmlsdGVyZWRPdXRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIH0pOwogICAgIH0s
CiAKQEAgLTYwMSw3ICs2MDMsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90
eXBlID0gewogICAgICAgICAgICAgcmV0dXJuIHVuZmlsdGVyZWRNZXNzYWdlczsKIAogICAgICAg
ICByZXR1cm4gdW5maWx0ZXJlZE1lc3NhZ2VzLmZpbHRlcihmdW5jdGlvbihtZXNzYWdlKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gIW1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMo
V2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LkZpbHRlcmVkT3V0QnlTZWFyY2hTdHlsZUNsYXNz
TmFtZSk7CisgICAgICAgICAgICByZXR1cm4gIW1lc3NhZ2UuY2xhc3NMaXN0LmNvbnRhaW5zKFdl
Ykluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5GaWx0ZXJlZE91dEJ5U2VhcmNoU3R5bGVDbGFzc05h
bWUpOwogICAgICAgICB9KTsKICAgICB9LAogCkBAIC02NTMsNyArNjU1LDcgQEAgV2ViSW5zcGVj
dG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgIHZhciBjbGFzc0xpc3QgPSBtZXNzYWdlLnBhcmVudE5v
ZGUuY2xhc3NMaXN0OworICAgICAgICAgICAgdmFyIGNsYXNzTGlzdCA9IG1lc3NhZ2UuY2xhc3NM
aXN0OwogICAgICAgICAgICAgaWYgKHZpc2libGUpCiAgICAgICAgICAgICAgICAgY2xhc3NMaXN0
LnJlbW92ZShXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuRmlsdGVyZWRPdXRTdHlsZUNsYXNz
TmFtZSk7CiAgICAgICAgICAgICBlbHNlIHsKQEAgLTc1OSw3ICs3NjEsNyBAQCBXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBjdXJyZW50TWVz
c2FnZSA9IHRoaXMuX3NlbGVjdGVkTWVzc2FnZXNbMF07CiAgICAgICAgIGlmIChjdXJyZW50TWVz
c2FnZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbnNvbGUtZ3JvdXAtdGl0bGUiKSkKLSAgICAgICAg
ICAgIGN1cnJlbnRNZXNzYWdlLnBhcmVudE5vZGUucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKCJj
b2xsYXBzZWQiKTsKKyAgICAgICAgICAgIGN1cnJlbnRNZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NM
aXN0LmFkZCgiY29sbGFwc2VkIik7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgdmFyIG91
dGxpbmVUaXRsZSA9IGN1cnJlbnRNZXNzYWdlLnF1ZXJ5U2VsZWN0b3IoIm9sLm91dGxpbmUtZGlz
Y2xvc3VyZSA+IGxpLnBhcmVudCIpOwogICAgICAgICAgICAgaWYgKG91dGxpbmVUaXRsZSkgewpA
QCAtNzgyLDcgKzc4NCw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgdmFyIGN1cnJlbnRNZXNzYWdlID0gdGhpcy5fc2VsZWN0ZWRNZXNzYWdl
c1swXTsKICAgICAgICAgaWYgKGN1cnJlbnRNZXNzYWdlLmNsYXNzTGlzdC5jb250YWlucygiY29u
c29sZS1ncm91cC10aXRsZSIpKQotICAgICAgICAgICAgY3VycmVudE1lc3NhZ2UucGFyZW50Tm9k
ZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5yZW1vdmUoImNvbGxhcHNlZCIpOworICAgICAgICAgICAg
Y3VycmVudE1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJjb2xsYXBzZWQiKTsK
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICB2YXIgb3V0bGluZVRpdGxlID0gY3VycmVudE1l
c3NhZ2UucXVlcnlTZWxlY3Rvcigib2wub3V0bGluZS1kaXNjbG9zdXJlID4gbGkucGFyZW50Iik7
CiAgICAgICAgICAgICBpZiAob3V0bGluZVRpdGxlKSB7CkBAIC04ODYsNyArODg4LDcgQEAgV2Vi
SW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICgh
aXNFbXB0eU9iamVjdChtYXRjaFJhbmdlcykpCiAgICAgICAgICAgICAgICAgdGhpcy5faGlnaGxp
Z2h0UmFuZ2VzKG1lc3NhZ2UsIG1hdGNoUmFuZ2VzKTsKIAotICAgICAgICAgICAgdmFyIGNsYXNz
TGlzdCA9IG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3Q7CisgICAgICAgICAgICB2YXIgY2xh
c3NMaXN0ID0gbWVzc2FnZS5jbGFzc0xpc3Q7CiAgICAgICAgICAgICBpZiAoIWlzRW1wdHlPYmpl
Y3QobWF0Y2hSYW5nZXMpIHx8IG1lc3NhZ2UuY29tbWFuZCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rv
ci5Db25zb2xlQ29tbWFuZCB8fCBtZXNzYWdlLm1lc3NhZ2UgaW5zdGFuY2VvZiBXZWJJbnNwZWN0
b3IuQ29uc29sZUNvbW1hbmRSZXN1bHQpCiAgICAgICAgICAgICAgICAgY2xhc3NMaXN0LnJlbW92
ZShXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuRmlsdGVyZWRPdXRCeVNlYXJjaFN0eWxlQ2xh
c3NOYW1lKTsKICAgICAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlY3Rpb24uY3NzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VjdGlvbi5jc3MKaW5kZXggMjk5ZmMwNS4uZmRkNGRk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U2VjdGlvbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU2VjdGlvbi5jc3MKQEAgLTM2LDIyICszNiwyMiBAQAogICAgIGJhY2tncm91bmQtY2xpcDog
cGFkZGluZzsKIH0KIAotLnNlY3Rpb24gLmhlYWRlcjo6YmVmb3JlIHsKLSAgICBwb3NpdGlvbjog
YWJzb2x1dGU7Ci0gICAgdG9wOiA1cHg7Ci0gICAgbGVmdDogN3B4OwotCisuc2VjdGlvbiAuaGVh
ZGVyIC50aXRsZTo6YmVmb3JlIHsKICAgICB3aWR0aDogOHB4OwogICAgIGhlaWdodDogOHB4Owog
CisgICAgbWFyZ2luLXJpZ2h0OiA0cHg7CisgICAgbWFyZ2luLWxlZnQ6IC04cHg7CisKICAgICBi
YWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWNhbnZhcyhkaXNjbG9zdXJlLXRyaWFuZ2xlLXRpbnkt
Y2xvc2VkLW5vcm1hbCk7CiAgICAgYmFja2dyb3VuZC1zaXplOiA4cHggOHB4OwogICAgIGJhY2tn
cm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAKLSAgICBjb250ZW50OiAiIjsKKyAgICBjb250ZW50
OiAiICI7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogfQogCi0uc2VjdGlvbi5leHBhbmRl
ZCAuaGVhZGVyOjpiZWZvcmUgeworLnNlY3Rpb24uZXhwYW5kZWQgLmhlYWRlciAudGl0bGU6OmJl
Zm9yZSB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jYW52YXMoZGlzY2xvc3VyZS10
cmlhbmdsZS10aW55LW9wZW4tbm9ybWFsKTsKIH0KIApAQCAtNTksNyArNTksNyBAQAogICAgIGZv
bnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgIHdoaXRl
LXNwYWNlOiBub3JtYWw7Ci0gICAgbGluZS1oZWlnaHQ6IDE4cHg7CisgICAgbGluZS1oZWlnaHQ6
IDE4cHg7IC8qIEBudmFzaWx5ZXY6IE5vdCBzdXJlIHdoeSBpdCBpcyBoZXJlLiAqLwogfQogCiAu
c2VjdGlvbiAuaGVhZGVyIC50aXRsZS5ibGFuay10aXRsZSB7CkBAIC0xNDAsNyArMTQwLDcgQEAK
ICAgICB3aWR0aDogOHB4OwogICAgIGhlaWdodDogOHB4OwogCi0gICAgbWFyZ2luLXRvcDogM3B4
OworICAgIG1hcmdpbi10b3A6IDJweDsKICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7CiB9CiAK
</data>
<flag name="commit-queue"
          id="270772"
          type_id="3"
          status="-"
          setter="nvasilyev"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246616</attachid>
            <date>2015-02-14 21:05:27 -0800</date>
            <delta_ts>2015-02-16 18:37:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>26695</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDFlMTE1OTQuLjM4YmRmOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDE1LTAyLTE0ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFR3ZWFr
IHRoZSBzdHlsZXMgb24gdGhlIENvbnNvbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MDU4MAorCisgICAgICAgICAgICAtIFVzZSBub24tbW9ub3Nw
YWNlIChkZWZhdWx0IHNhbnMtc2VyaWYpIGZvbnQgZm9yIGNvbnNvbGUgbWVzc2FnZXMsIGJ1dCBr
ZWVwIHVzaW5nIG1vbm9zcGFjZSBmb250CisgICAgICAgICAgICAgIGZvciBvYmplY3RzLCBmdW5j
dGlvbnMsIGFuZCBhbnl0aGluZyBlbHNlIHRoYXQgcHJlc3VtYWJseSBjb2RlLgorICAgICAgICAg
ICAgLSBEaXNwbGF5IGFsbCBleHBhbmRhYmxlIG9iamVjdHMgb24gYSBzZXBhcmF0ZSByb3cuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL0NvbnNvbGVDb21tYW5kLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bnNvbGVDb21tYW5kLnByb3RvdHlwZS5kZWNvcmF0ZU1lc3NhZ2VFbGVtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZC5wcm90b3R5cGUudG9NZXNzYWdlRWxlbWVudCk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlR3JvdXAuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZS5hZGRNZXNzYWdlKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNzYWdlSW1wbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLl9mb3JtYXQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUuX2lzRXhwYW5k
YWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlw
ZS5fZm9ybWF0UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZUltcGwucHJvdG90eXBlLmFwcGVuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1l
c3NhZ2VJbXBsLnByb3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5kZWNvcmF0ZU1l
c3NhZ2VFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwu
cHJvdG90eXBlLnRvTWVzc2FnZUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlSW1wbC5wcm90b3R5cGUuX2Zvcm1hdFBhcmFtZXRlckFzU3RyaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzczoKKyAg
ICAgICAgKC5jb25zb2xlLW1lc3NhZ2VzKToKKyAgICAgICAgKC5jb25zb2xlLWZvcm1hdHRlZC1v
YmplY3QpOgorICAgICAgICAoLmV4cGFuZGFibGUuc291cmNlLWNvZGUpOgorICAgICAgICAoLmNv
bnNvbGUtbWVzc2FnZSk6CisgICAgICAgICguY29uc29sZS1pdGVtLnNlbGVjdGVkOjphZnRlcik6
CisgICAgICAgICguY29uc29sZS1tZXNzYWdlczpmb2N1cyAuY29uc29sZS1pdGVtLnNlbGVjdGVk
OjphZnRlcik6CisgICAgICAgICguY29uc29sZS11c2VyLWNvbW1hbmQtcmVzdWx0LmNvbnNvbGUt
bG9nLWxldmVsOjpiZWZvcmUpOgorICAgICAgICAoLmNvbnNvbGUtaXRlbTo6YmVmb3JlKToKKyAg
ICAgICAgKC5jb25zb2xlLW1lc3NhZ2UgLmJ1YmJsZSk6CisgICAgICAgICguY29uc29sZS1lcnJv
ci1sZXZlbCk6CisgICAgICAgICguY29uc29sZS1lcnJvci1sZXZlbCAuc2VjdGlvbiAuaGVhZGVy
IC50aXRsZSk6CisgICAgICAgICguY29uc29sZS1lcnJvci1sZXZlbDo6YmVmb3JlKToKKyAgICAg
ICAgKC5jb25zb2xlLXdhcm5pbmctbGV2ZWwpOgorICAgICAgICAoLmNvbnNvbGUtd2FybmluZy1s
ZXZlbCAuY29uc29sZS1tZXNzYWdlLXRleHQpOgorICAgICAgICAoLmNvbnNvbGUtd2FybmluZy1s
ZXZlbDo6YmVmb3JlKToKKyAgICAgICAgKC5jb25zb2xlLXVzZXItY29tbWFuZDo6YmVmb3JlKToK
KyAgICAgICAgKC5jb25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5zZWN0aW9uKToKKyAgICAgICAgKC5j
b25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5zZWN0aW9uIC5oZWFkZXI6OmJlZm9yZSk6CisgICAgICAg
ICguY29uc29sZS1ncm91cC1tZXNzYWdlcyAuc2VjdGlvbiAuaGVhZGVyIC50aXRsZSk6CisgICAg
ICAgICguY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0LCAuY29uc29sZS1mb3JtYXR0ZWQtbm9kZSwg
LmNvbnNvbGUtZm9ybWF0dGVkLWVycm9yLCAuY29uc29sZS1mb3JtYXR0ZWQtbWFwLCAuY29uc29s
ZS1mb3JtYXR0ZWQtc2V0LCAuY29uc29sZS1mb3JtYXR0ZWQtd2Vha21hcCk6CisgICAgICAgICgu
b3V0bGluZS1kaXNjbG9zdXJlIGxpKToKKyAgICAgICAgKC5vdXRsaW5lLWRpc2Nsb3N1cmUgbGku
cGFyZW50OjpiZWZvcmUpOgorICAgICAgICAoLmNvbnNvbGUtaXRlbSk6IERlbGV0ZWQuCisgICAg
ICAgICguY29uc29sZS1pdGVtLnNlbGVjdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xl
LW1lc3NhZ2VzOmZvY3VzIC5jb25zb2xlLWl0ZW0uc2VsZWN0ZWQpOiBEZWxldGVkLgorICAgICAg
ICAoLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCAuY29uc29sZS1tZXNzYWdlOjphZnRlcik6IERlbGV0
ZWQuCisgICAgICAgICguY29uc29sZS1tZXNzYWdlczpmb2N1cyAuY29uc29sZS1pdGVtLnNlbGVj
dGVkIC5kYXRhLWdyaWQgdHIuc2VsZWN0ZWQpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUt
bWVzc2FnZXM6Zm9jdXMgLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCAuY29uc29sZS1tZXNzYWdlOjph
ZnRlcik6IERlbGV0ZWQuCisgICAgICAgICguY29uc29sZS1tZXNzYWdlLCAuY29uc29sZS11c2Vy
LWNvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtbWVzc2FnZTo6YmVmb3JlLCAu
Y29uc29sZS11c2VyLWNvbW1hbmQ6OmJlZm9yZSwgLmphdmFzY3JpcHQtcHJvbXB0OjpiZWZvcmUs
IC5jb25zb2xlLWdyb3VwLXRpdGxlOjpiZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNv
bGUtZ3JvdXApOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtZGVidWctbGV2ZWwgLmNvbnNv
bGUtbWVzc2FnZS10ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xlLWRlYnVnLWxldmVs
OjpiZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMgLnNl
Y3Rpb24gLmhlYWRlcik6IERlbGV0ZWQuCisgICAgICAgICguY29uc29sZS1ncm91cC1tZXNzYWdl
cyAub3V0bGluZS1kaXNjbG9zdXJlKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xlLWdyb3Vw
LW1lc3NhZ2VzIC5vdXRsaW5lLWRpc2Nsb3N1cmUgPiBvbCk6IERlbGV0ZWQuCisgICAgICAgICgu
b3V0bGluZS1kaXNjbG9zdXJlIGxpLmVsZW1lbnRzLWRyYWctb3ZlciAuc2VsZWN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKC5vdXRsaW5lLWRpc2Nsb3N1cmUgb2w6Zm9jdXMgbGkuc2VsZWN0ZWQg
LnNlbGVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICgub3V0bGluZS1kaXNjbG9zdXJlID4gb2wp
OiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl91cGRh
dGVNZXNzYWdlc1NlbGVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZp
ZXcucHJvdG90eXBlLl9pc01lc3NhZ2VWaXNpYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5M
b2dDb250ZW50Vmlldy5wcm90b3R5cGUuX2lzTWVzc2FnZVNlbGVjdGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3NlbGVjdEFsbE1lc3NhZ2VzKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX3VuZmlsdGVy
ZWRNZXNzYWdlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90
eXBlLl92aXNpYmxlTWVzc2FnZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRW
aWV3LnByb3RvdHlwZS5fZmlsdGVyTWVzc2FnZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fbGVmdEFycm93V2FzUHJlc3NlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl9wZXJmb3JtU2VhcmNoKToKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NlY3Rpb24uY3NzOgorICAgICAgICAoLnNlY3Rp
b24gLmhlYWRlciAudGl0bGU6OmJlZm9yZSk6CisgICAgICAgICguc2VjdGlvbi5leHBhbmRlZCAu
aGVhZGVyIC50aXRsZTo6YmVmb3JlKToKKyAgICAgICAgKC5zZWN0aW9uIC5oZWFkZXIgLnRpdGxl
LCAuZXZlbnQtYmFyIC5oZWFkZXIgLnRpdGxlKToKKyAgICAgICAgKC5wcm9wZXJ0aWVzLXRyZWUg
bGkucGFyZW50OjpiZWZvcmUpOgorICAgICAgICAoLnNlY3Rpb24gLmhlYWRlcjo6YmVmb3JlKTog
RGVsZXRlZC4KKyAgICAgICAgKC5zZWN0aW9uLmV4cGFuZGVkIC5oZWFkZXI6OmJlZm9yZSk6IERl
bGV0ZWQuCisKIDIwMTUtMDEtMjkgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFUzY6IEltcHJvdmVkIENvbnNvbGUgRm9ybWF0
IGZvciBTZXQgYW5kIE1hcCBPYmplY3RzIChsaWtlIEFycmF5cykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVDb21tYW5kLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUNvbW1hbmQu
anMKaW5kZXggNDM2YjBkNS4uYTk3N2E0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUNvbW1hbmQuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUNvbW1hbmQuanMKQEAgLTM5
LDE4ICszOSwyOCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmQucHJvdG90eXBlID0gewog
CiAgICAgLy8gUHVibGljCiAKKyAgICBkZWNvcmF0ZU1lc3NhZ2VFbGVtZW50OiBmdW5jdGlvbihl
bGVtZW50KSB7CisgICAgICAgIGlmICh0aGlzLl9lbGVtZW50KQorICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX2VsZW1lbnQ7CisKKyAgICAgICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnQ7CisgICAg
ICAgIHRoaXMuX2VsZW1lbnQuY29tbWFuZCA9IHRoaXM7CisgICAgICAgIHRoaXMuX2VsZW1lbnQu
Y2xhc3NMaXN0LmFkZCgiY29uc29sZS11c2VyLWNvbW1hbmQiKTsKKyAgICAgICAgdGhpcy5fZWxl
bWVudC5zZXRBdHRyaWJ1dGUoImRhdGEtbGFiZWxwcmVmaXgiLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIklucHV0OiAiKSk7CisKKyAgICAgICAgdGhpcy5fZm9ybWF0Q29tbWFuZCgpOworICAgICAg
ICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2Zvcm1hdHRlZENvbW1hbmQpOworCisg
ICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OworICAgIH0sCisKICAgICB0b01lc3NhZ2VFbGVt
ZW50OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2VsZW1lbnQpIHsKLSAg
ICAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
LSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY29tbWFuZCA9IHRoaXM7Ci0gICAgICAgICAgICB0
aGlzLl9lbGVtZW50LmNsYXNzTmFtZSA9ICJjb25zb2xlLXVzZXItY29tbWFuZCI7Ci0gICAgICAg
ICAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgiZGF0YS1sYWJlbHByZWZpeCIsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiSW5wdXQ6ICIpKTsKKyAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnQp
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKIAotICAgICAgICAgICAgdGhpcy5f
Zm9ybWF0Q29tbWFuZCgpOwotICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLl9mb3JtYXR0ZWRDb21tYW5kKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhpcy5f
ZWxlbWVudDsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGVjb3JhdGVNZXNzYWdlRWxlbWVudChlbGVtZW50
KTsKICAgICB9LAogCiAgICAgLy8gUHJpdmF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUdyb3VwLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUdyb3VwLmpzCmluZGV4IDY4OWIy
ZTIuLjM0MTlhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NvbnNvbGVHcm91cC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db25zb2xlR3JvdXAuanMKQEAgLTU0LDIxICs1NCwyMyBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZSA9IHsKIAogICAgIGFkZE1lc3NhZ2U6IGZ1
bmN0aW9uKG1zZykKICAgICB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gbXNnLnRvTWVzc2FnZUVs
ZW1lbnQoKTsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuTG9nQ29udGVu
dFZpZXcuSXRlbVdyYXBwZXJTdHlsZUNsYXNzTmFtZTsKIAotICAgICAgICB2YXIgd3JhcHBlciA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB3cmFwcGVyLmNsYXNzTmFt
ZSA9IFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5JdGVtV3JhcHBlclN0eWxlQ2xhc3NOYW1l
OwotICAgICAgICB3cmFwcGVyLm1lc3NhZ2VFbGVtZW50ID0gd3JhcHBlci5hcHBlbmRDaGlsZChl
bGVtZW50KTsKKyAgICAgICAgbXNnLmRlY29yYXRlTWVzc2FnZUVsZW1lbnQoZWxlbWVudCk7CisK
KyAgICAgICAgLy9ARklYTUUKKyAgICAgICAgZWxlbWVudC5tZXNzYWdlRWxlbWVudCA9IGVsZW1l
bnQ7CiAKICAgICAgICAgaWYgKG1zZy50eXBlID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3Nh
Z2UuTWVzc2FnZVR5cGUuU3RhcnRHcm91cCB8fCBtc2cudHlwZSA9PT0gV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXBDb2xsYXBzZWQpIHsKLSAgICAgICAg
ICAgIHRoaXMubWVzc2FnZXNFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdyYXBwZXIs
IHRoaXMubWVzc2FnZXNFbGVtZW50KTsKKyAgICAgICAgICAgIHRoaXMubWVzc2FnZXNFbGVtZW50
LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIHRoaXMubWVzc2FnZXNFbGVtZW50KTsK
ICAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90aXRs
ZUNsaWNrZWQuYmluZCh0aGlzKSk7CiAgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlZG93biIsIHRoaXMuX3RpdGxlTW91c2VEb3duLmJpbmQodGhpcykpOwogICAgICAg
ICAgICAgdmFyIGdyb3VwRWxlbWVudCA9IGVsZW1lbnQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhD
bGFzcygiY29uc29sZS1ncm91cCIpOwogICAgICAgICAgICAgaWYgKGdyb3VwRWxlbWVudCAmJiBt
c2cudHlwZSA9PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlN0YXJ0
R3JvdXBDb2xsYXBzZWQpCiAgICAgICAgICAgICAgICAgZ3JvdXBFbGVtZW50LmNsYXNzTGlzdC5h
ZGQoImNvbGxhcHNlZCIpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHRoaXMubWVzc2Fn
ZXNFbGVtZW50LmFwcGVuZENoaWxkKHdyYXBwZXIpOworICAgICAgICAgICAgdGhpcy5tZXNzYWdl
c0VsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgfSwKIAogICAgIGhhc01lc3NhZ2Vz
OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZUltcGwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZUltcGwuanMKaW5kZXggYjhkZjAzMC4u
N2NlYTIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29uc29sZU1lc3NhZ2VJbXBsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNzYWdlSW1wbC5qcwpAQCAtMjI1LDcgKzIyNSw2
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0gewogICAgICAg
ICAvLyBUaGVyZSBjYW4gYmUgc3RyaW5nIGxvZyBhbmQgc3RyaW5nIGV2YWwgcmVzdWx0LiBXZSBk
aXN0aW5ndWlzaCBiZXR3ZWVuIHRoZW0gYmFzZWQgb24gbWVzc2FnZSB0eXBlLgogICAgICAgICB2
YXIgc2hvdWxkRm9ybWF0TWVzc2FnZSA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QudHlwZShw
YXJhbWV0ZXJzWzBdKSA9PT0gInN0cmluZyIgJiYgdGhpcy50eXBlICE9PSBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuUmVzdWx0OwogCi0gICAgICAgIC8vIE11bHRpcGxl
IHBhcmFtZXRlcnMgd2l0aCB0aGUgZmlyc3QgYmVpbmcgYSBmb3JtYXQgc3RyaW5nLiBTYXZlIHVu
dXNlZCBzdWJzdGl0dXRpb25zLgogICAgICAgICBpZiAoc2hvdWxkRm9ybWF0TWVzc2FnZSkgewog
ICAgICAgICAgICAgLy8gTXVsdGlwbGUgcGFyYW1ldGVycyB3aXRoIHRoZSBmaXJzdCBiZWluZyBh
IGZvcm1hdCBzdHJpbmcuIFNhdmUgdW51c2VkIHN1YnN0aXR1dGlvbnMuCiAgICAgICAgICAgICB2
YXIgcmVzdWx0ID0gdGhpcy5fZm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZyhwYXJhbWV0ZXJz
LCBmb3JtYXR0ZWRSZXN1bHQpOwpAQCAtMjM3LDE2ICsyMzYsMzEgQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFNpbmdsZSBwYXJhbWV0
ZXIsIG9yIHVudXNlZCBzdWJzdGl0dXRpb25zIGZyb20gYWJvdmUuCiAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgLy8gSW5s
aW5lIHN0cmluZ3Mgd2hlbiBmb3JtYXR0aW5nLgotICAgICAgICAgICAgaWYgKHNob3VsZEZvcm1h
dE1lc3NhZ2UgJiYgcGFyYW1ldGVyc1tpXS50eXBlID09PSAic3RyaW5nIikKLSAgICAgICAgICAg
ICAgICBmb3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
cGFyYW1ldGVyc1tpXS5kZXNjcmlwdGlvbikpOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgaWYgKHNob3VsZEZvcm1hdE1lc3NhZ2UgJiYgcGFyYW1ldGVyc1tpXS50eXBlID09PSAic3Ry
aW5nIikgeworICAgICAgICAgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpOworICAgICAgICAgICAgICAgIHNwYW4uY2xhc3NMaXN0LmFkZCgidHlwZS1zdHJp
bmciKTsKKyAgICAgICAgICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gcGFyYW1ldGVyc1tpXS5k
ZXNjcmlwdGlvbjsKKyAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hpbGQo
c3Bhbik7CisgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1
bHQuYXBwZW5kQ2hpbGQodGhpcy5fZm9ybWF0UGFyYW1ldGVyKHBhcmFtZXRlcnNbaV0sIGZhbHNl
LCB0cnVlKSk7Ci0gICAgICAgICAgICBpZiAoaSA8IHBhcmFtZXRlcnMubGVuZ3RoIC0gMSkKKwor
ICAgICAgICAgICAgaWYgKGkgPCBwYXJhbWV0ZXJzLmxlbmd0aCAtIDEgJiYgIXRoaXMuX2lzRXhw
YW5kYWJsZShwYXJhbWV0ZXJzW2ldKSkKICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKSk7CisKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gZm9ybWF0dGVkUmVzdWx0OwogICAgIH0sCiAKKyAgICBfaXNFeHBhbmRh
YmxlOiBmdW5jdGlvbihyZW1vdGVPYmplY3QpIHsKKyAgICAgICAgaWYgKCFyZW1vdGVPYmplY3Qp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKHJlbW90ZU9iamVjdC5o
YXNDaGlsZHJlbiAmJiByZW1vdGVPYmplY3QucHJldmlldyAmJiByZW1vdGVPYmplY3QucHJldmll
dy5sb3NzbGVzcykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4g
cmVtb3RlT2JqZWN0Lmhhc0NoaWxkcmVuOworICAgIH0sCisKICAgICBfZm9ybWF0UGFyYW1ldGVy
OiBmdW5jdGlvbihvdXRwdXQsIGZvcmNlT2JqZWN0Rm9ybWF0LCBpbmNsdWRlUHJldmlldykKICAg
ICB7CiAgICAgICAgIHZhciB0eXBlOwpAQCAtMjY1LDYgKzI3OSwxMCBAQCBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgc3BhbiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgc3Bhbi5jbGFzc05hbWUgPSAi
Y29uc29sZS1mb3JtYXR0ZWQtIiArIHR5cGUgKyAiIHNvdXJjZS1jb2RlIjsKKworICAgICAgICBp
ZiAodGhpcy5faXNFeHBhbmRhYmxlKG91dHB1dCkpCisgICAgICAgICAgICBzcGFuLmNsYXNzTGlz
dC5hZGQoImV4cGFuZGFibGUiKTsKKwogICAgICAgICBmb3JtYXR0ZXIuY2FsbCh0aGlzLCBvdXRw
dXQsIHNwYW4sIGluY2x1ZGVQcmV2aWV3KTsKICAgICAgICAgcmV0dXJuIHNwYW47CiAgICAgfSwK
QEAgLTU3MSw3ICs1ODksMTAgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodG9BcHBl
bmQpOwogICAgICAgICAgICAgICAgICAgICB0b0FwcGVuZCA9IHdyYXBwZXI7CiAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIGEuYXBwZW5kQ2hpbGQodG9BcHBlbmQpOworICAgICAg
ICAgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAg
ICAgICAgICAgICAgIHNwYW4uY2xhc3NOYW1lID0gInR5cGUtc3RyaW5nIjsKKyAgICAgICAgICAg
ICAgICBzcGFuLmFwcGVuZENoaWxkKHRvQXBwZW5kKTsKKyAgICAgICAgICAgICAgICBhLmFwcGVu
ZENoaWxkKHNwYW4pOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAg
ICAgIH0KQEAgLTU4MCwxNCArNjAxLDEzIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gU3RyaW5nLmZvcm1hdChwYXJhbWV0ZXJz
WzBdLmRlc2NyaXB0aW9uLCBwYXJhbWV0ZXJzLnNsaWNlKDEpLCBmb3JtYXR0ZXJzLCBmb3JtYXR0
ZWRSZXN1bHQsIGFwcGVuZCk7CiAgICAgfSwKIAotICAgIHRvTWVzc2FnZUVsZW1lbnQ6IGZ1bmN0
aW9uKCkKKyAgICBkZWNvcmF0ZU1lc3NhZ2VFbGVtZW50OiBmdW5jdGlvbihlbGVtZW50KQogICAg
IHsKICAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5f
ZWxlbWVudDsKIAotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogICAgICAgICBlbGVtZW50Lm1lc3NhZ2UgPSB0aGlzOwotICAgICAgICBlbGVtZW50
LmNsYXNzTmFtZSA9ICJjb25zb2xlLW1lc3NhZ2UiOworICAgICAgICBlbGVtZW50LmNsYXNzTGlz
dC5hZGQoImNvbnNvbGUtbWVzc2FnZSIpOwogCiAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVt
ZW50OwogCkBAIC02MjUsNiArNjQ1LDE2IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgICB9LAogCisgICAg
dG9NZXNzYWdlRWxlbWVudDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Vs
ZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKKworICAgICAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworCisgICAgICAgIHJldHVy
biB0aGlzLmRlY29yYXRlTWVzc2FnZUVsZW1lbnQoZWxlbWVudCk7CisgICAgfSwKKwogICAgIF9w
b3B1bGF0ZVN0YWNrVHJhY2VUcmVlRWxlbWVudDogZnVuY3Rpb24ocGFyZW50VHJlZUVsZW1lbnQp
CiAgICAgewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3N0YWNrVHJhY2UubGVu
Z3RoOyBpKyspIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzcwppbmRleCAyMjNjNWFmLi40YTNlMDJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9M
b2dDb250ZW50Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvTG9nQ29udGVudFZpZXcuY3NzCkBAIC0zNCwxNyArMzQsMjggQEAKIAogICAgIHdv
cmQtd3JhcDogYnJlYWstd29yZDsKIAorICAgIGZvbnQtZmFtaWx5OiAtd2Via2l0LXN5c3RlbS1m
b250LCBzYW5zLXNlcmlmOworICAgIGZvbnQtc2l6ZTogMTJweDsKKworICAgIG1pbi1oZWlnaHQ6
IDEwMCU7Cit9CisKKy5jb25zb2xlLXVzZXItY29tbWFuZCwKKy5jb25zb2xlLXVzZXItY29tbWFu
ZC1yZXN1bHQsCisuY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0IHsKICAgICBmb250LWZhbWlseTog
TWVubG8sIG1vbm9zcGFjZTsKICAgICBmb250LXNpemU6IDExcHg7Cit9CiAKLSAgICBtaW4taGVp
Z2h0OiAxMDAlOworLmV4cGFuZGFibGUuc291cmNlLWNvZGUgeworICAgIGRpc3BsYXk6IGJsb2Nr
OwogfQogCiAuY29uc29sZS1tZXNzYWdlcyA+IDpmaXJzdC1jaGlsZCB7CiAgICAgbWFyZ2luLXRv
cDogYXV0bzsKIH0KIAotLmNvbnNvbGUtaXRlbSB7CisuY29uc29sZS1tZXNzYWdlIHsKICAgICBi
b3JkZXItdG9wOiAxcHggc29saWQgcmdiKDI0MCwgMjQwLCAyNDApOwogfQogCkBAIC01MiwxNiAr
NjMsNyBAQAogICAgIGJvcmRlci10b3A6IG5vbmU7CiB9CiAKLS5jb25zb2xlLWl0ZW0uc2VsZWN0
ZWQgewotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMTAsIDAlLCA5NiUpOwotfQotCi0uY29u
c29sZS1tZXNzYWdlczpmb2N1cyAuY29uc29sZS1pdGVtLnNlbGVjdGVkIHsKLSAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBoc2woMjEwLCA5OCUsIDk2JSk7Ci19Ci0KLS5jb25zb2xlLWl0ZW0uc2VsZWN0
ZWQgLmNvbnNvbGUtdXNlci1jb21tYW5kOjphZnRlciwKLS5jb25zb2xlLWl0ZW0uc2VsZWN0ZWQg
LmNvbnNvbGUtbWVzc2FnZTo6YWZ0ZXIgeworLmNvbnNvbGUtaXRlbS5zZWxlY3RlZDo6YWZ0ZXIg
ewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICBkaXNwbGF5OiBibG9jazsKICAgICBjb250
ZW50OiAiIjsKQEAgLTcyLDggKzc0LDcgQEAKICAgICB3aWR0aDogMnB4OwogfQogCi0uY29uc29s
ZS1tZXNzYWdlczpmb2N1cyAuY29uc29sZS1pdGVtLnNlbGVjdGVkIC5jb25zb2xlLXVzZXItY29t
bWFuZDo6YWZ0ZXIsCi0uY29uc29sZS1tZXNzYWdlczpmb2N1cyAuY29uc29sZS1pdGVtLnNlbGVj
dGVkIC5jb25zb2xlLW1lc3NhZ2U6OmFmdGVyIHsKKy5jb25zb2xlLW1lc3NhZ2VzOmZvY3VzIC5j
b25zb2xlLWl0ZW0uc2VsZWN0ZWQ6OmFmdGVyIHsKICAgICBiYWNrZ3JvdW5kOiBoc2woMjEwLCAx
MDAlLCA0OSUpOwogfQogCkBAIC04Miw3ICs4Myw4IEBACiB9CiAKIC5jb25zb2xlLXVzZXItY29t
bWFuZC1yZXN1bHQuY29uc29sZS1sb2ctbGV2ZWw6OmJlZm9yZSB7Ci0gICAgYmFja2dyb3VuZC1p
bWFnZTogdXJsKC4uL0ltYWdlcy9Vc2VySW5wdXRSZXN1bHQuc3ZnKTsKKyAgICBjb250ZW50OiB1
cmwoLi4vSW1hZ2VzL1VzZXJJbnB1dFJlc3VsdC5zdmcpOworICAgIG1hcmdpbi10b3A6IDFweDsg
LyogYWxpZ24gd2l0aCAxMXB4IE1lbmxvICovCiB9CiAKIC5jb25zb2xlLW1lc3NhZ2UsIC5jb25z
b2xlLXVzZXItY29tbWFuZCB7CkBAIC05MSwyMCArOTMsMTcgQEAKICAgICBtaW4taGVpZ2h0OiAx
NnB4OwogfQogCi0uY29uc29sZS1tZXNzYWdlOjpiZWZvcmUsIC5jb25zb2xlLXVzZXItY29tbWFu
ZDo6YmVmb3JlLCAuamF2YXNjcmlwdC1wcm9tcHQ6OmJlZm9yZSwgLmNvbnNvbGUtZ3JvdXAtdGl0
bGU6OmJlZm9yZSB7CisuY29uc29sZS1pdGVtOjpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICIgIjsK
KwogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICBjb250
ZW50OiAiIjsKICAgICBsZWZ0OiA0cHg7Ci0gICAgdG9wOiA4cHg7CiAgICAgd2lkdGg6IDEwcHg7
Ci0gICAgaGVpZ2h0OiAxMHB4OwotICAgIG1hcmdpbi10b3A6IC01cHg7CiB9CiAKIC5jb25zb2xl
LW1lc3NhZ2UgLmJ1YmJsZSB7CiAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgIGhlaWdo
dDogMTRweDsKKyAgICBoZWlnaHQ6IDE1cHg7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEy
OCwgMTUxLCAxODkpOwogICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgd2hpdGUtc3Bh
Y2U6IG5vd3JhcDsKQEAgLTE2Miw4ICsxNjEsMTQgQEAKICAgICBib3JkZXItdG9wOiAzcHggZGFz
aGVkIHJnYigyNDAsIDI0MCwgMjQwKTsKIH0KIAotLmNvbnNvbGUtZXJyb3ItbGV2ZWwgLmNvbnNv
bGUtbWVzc2FnZS10ZXh0LCAuY29uc29sZS1lcnJvci1sZXZlbCAuc2VjdGlvbiAuaGVhZGVyIC50
aXRsZSB7Ci0gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50OworLmNvbnNvbGUtZXJyb3ItbGV2ZWwg
eworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAxMDAlLCA5NiUpOworICAgIGJvcmRlci1j
b2xvcjogaHNsKDAsIDEwMCUsIDkyJSk7Cit9CisKKy5jb25zb2xlLWVycm9yLWxldmVsIC5jb25z
b2xlLW1lc3NhZ2UtdGV4dCwKKy5jb25zb2xlLWVycm9yLWxldmVsIC5zZWN0aW9uIC5oZWFkZXIg
LnRpdGxlIHsKKyAgICBjb2xvcjogaHNsKDAsIDc1JSwgNTAlKTsKIH0KIAogLmNvbnNvbGUtZGVi
dWctbGV2ZWwgLmNvbnNvbGUtbWVzc2FnZS10ZXh0IHsKQEAgLTE3NSwxMyArMTgwLDIwIEBACiB9
CiAKIC5jb25zb2xlLWVycm9yLWxldmVsOjpiZWZvcmUgewotICAgIGJhY2tncm91bmQtaW1hZ2U6
IHVybCguLi9JbWFnZXMvRXJyb3Iuc3ZnKTsKLSAgICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggMTBw
eDsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0Vycm9yLnN2Zyk7Cit9CisKKy5jb25zb2xl
LXdhcm5pbmctbGV2ZWwgeworICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCg1MCwgMTAwJSwgOTQl
KTsKKyAgICBib3JkZXItY29sb3I6IGhzbCg1MCwgMTAwJSwgODYlKTsKK30KKworLmNvbnNvbGUt
d2FybmluZy1sZXZlbCAuY29uc29sZS1tZXNzYWdlLXRleHQgeworICAgIGNvbG9yOiBoc2woMzAs
IDkwJSwgMzUlKTsKIH0KIAogLmNvbnNvbGUtd2FybmluZy1sZXZlbDo6YmVmb3JlIHsKLSAgICBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vSW1hZ2VzL1dhcm5pbmcuc3ZnKTsKLSAgICBiYWNrZ3Jv
dW5kLXNpemU6IDEwcHggMTBweDsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1dhcm5pbmcu
c3ZnKTsKIH0KIAogLmNvbnNvbGUtdXNlci1jb21tYW5kIC5jb25zb2xlLW1lc3NhZ2UgewpAQCAt
MTkwLDcgKzIwMiw4IEBACiB9CiAKIC5jb25zb2xlLXVzZXItY29tbWFuZDo6YmVmb3JlIHsKLSAg
ICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vSW1hZ2VzL1VzZXJJbnB1dFByb21wdFByZXZpb3Vz
LnN2Zyk7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9Vc2VySW5wdXRQcm9tcHRQcmV2aW91
cy5zdmcpOworICAgIG1hcmdpbi10b3A6IDFweDsgLyogYWxpZ24gd2l0aCAxMXB4IE1lbmxvICov
CiB9CiAKIC5jb25zb2xlLXVzZXItY29tbWFuZCA+IC5jb25zb2xlLW1lc3NhZ2UtdGV4dCB7CkBA
IC0yMTMsNyArMjI2LDcgQEAKIH0KIAogLmNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMgLnNlY3Rpb24g
ewotICAgIG1hcmdpbjogMCAwIDAgMTJweCAhaW1wb3J0YW50OworICAgIG1hcmdpbjogMCAwIDAg
MTJweDsKIH0KIAogLmNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMgLnNlY3Rpb24gLmhlYWRlciB7CkBA
IC0yMjQsMTQgKzIzNywxNCBAQAogfQogCiAuY29uc29sZS1ncm91cC1tZXNzYWdlcyAuc2VjdGlv
biAuaGVhZGVyOjpiZWZvcmUgewotICAgIHRvcDogMnB4OworICAgIHRvcDogM3B4OwogICAgIGxl
ZnQ6IDFweDsKIH0KIAogLmNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMgLnNlY3Rpb24gLmhlYWRlciAu
dGl0bGUgewogICAgIGNvbG9yOiBibGFjazsKICAgICBmb250LXdlaWdodDogbm9ybWFsOwotICAg
IGxpbmUtaGVpZ2h0OiBub3JtYWw7CisgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogQEZJWE1F
OiBtYXkgY2F1c2UgaW5jb25zaXN0ZW5jaWVzIGluIGxpbmUtaGVpZ2h0cyBvZiBtb25vc3BhY2Ug
YW5kIG5vbi1tb25vc3BhY2UgdGV4dCAqLwogfQogCiAuY29uc29sZS1ncm91cC1tZXNzYWdlcyAu
c2VjdGlvbiAucHJvcGVydGllcyBsaSAuaW5mbyB7CkBAIC0yNDksMTEgKzI2Miw2IEBACiAgICAg
cGFkZGluZzogMCAwIDAgMTJweCAhaW1wb3J0YW50OwogfQogCi0uY29uc29sZS1ncm91cC1tZXNz
YWdlcyAub3V0bGluZS1kaXNjbG9zdXJlLCAuY29uc29sZS1ncm91cC1tZXNzYWdlcyAub3V0bGlu
ZS1kaXNjbG9zdXJlIG9sIHsKLSAgICBmb250LXNpemU6IGluaGVyaXQ7Ci0gICAgbGluZS1oZWln
aHQ6IDEycHg7Ci19Ci0KIC5jb25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5vdXRsaW5lLWRpc2Nsb3N1
cmUuc2luZ2xlLW5vZGUgbGkgewogICAgIHBhZGRpbmctbGVmdDogMnB4OwogfQpAQCAtMzAxLDcg
KzMwOSw3IEBACiAuY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0LCAuY29uc29sZS1mb3JtYXR0ZWQt
bm9kZSwgLmNvbnNvbGUtZm9ybWF0dGVkLWVycm9yLCAuY29uc29sZS1mb3JtYXR0ZWQtbWFwLCAu
Y29uc29sZS1mb3JtYXR0ZWQtc2V0LCAuY29uc29sZS1mb3JtYXR0ZWQtd2Vha21hcCB7CiAgICAg
cG9zaXRpb246IHJlbGF0aXZlOwogICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICB2ZXJ0
aWNhbC1hbGlnbjogdG9wOworICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsKICAgICBjb2xv
cjogYmxhY2s7CiB9CiAKQEAgLTM5MiwxMCArNDAwLDYgQEAKICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiB3aGl0ZTsKIH0KIAotLm91dGxpbmUtZGlzY2xvc3VyZSB7Ci0gICAgZm9udC1zaXplOiAxMXB4
OwotfQotCiAub3V0bGluZS1kaXNjbG9zdXJlID4gb2wgewogICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKICAgICBwYWRkaW5nOiAycHggNnB4ICFpbXBvcnRhbnQ7CkBAIC00MTMsOCArNDE3LDggQEAK
IAogLm91dGxpbmUtZGlzY2xvc3VyZSBsaSB7CiAgICAgcGFkZGluZzogMCAwIDAgMTRweDsKLSAg
ICBtYXJnaW4tdG9wOiAxcHg7Ci0gICAgbWFyZ2luLWJvdHRvbTogMXB4OworICAgIG1hcmdpbi10
b3A6IDA7CisgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgIG1hcmdpbi1sZWZ0OiAtMnB4Owog
ICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKIH0KQEAgLTQzOSw3ICs0NDMsNyBAQAogICAgIHdp
ZHRoOiA4cHg7CiAgICAgaGVpZ2h0OiA4cHg7CiAKLSAgICBtYXJnaW4tdG9wOiAycHg7CisgICAg
bWFyZ2luLXRvcDogNHB4OwogICAgIHBhZGRpbmctcmlnaHQ6IDJweDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZp
ZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qcwppbmRleCAwYzE5ZTIzLi44ZTM5ZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5q
cwpAQCAtMjcwLDcgKzI3MCw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5
cGUgPSB7CiAKICAgICAgICAgaWYgKG9ubHlTZWxlY3RlZCkgewogICAgICAgICAgICAgbWVzc2Fn
ZXMgPSB0aGlzLl9hbGxNZXNzYWdlcygpLmZpbHRlcihmdW5jdGlvbihtZXNzYWdlKSB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMo
V2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOworICAg
ICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlLmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfQogCkBAIC00NTgsNyArNDU4LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBhbHJlYWR5U2VsZWN0ZWRN
ZXNzYWdlID0gdGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5jb250YWlucyhtZXNzYWdlKTsKICAgICAg
ICAgaWYgKGFscmVhZHlTZWxlY3RlZE1lc3NhZ2UgJiYgdGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5s
ZW5ndGggJiYgbXVsdGlwbGVTZWxlY3Rpb24pIHsKLSAgICAgICAgICAgIG1lc3NhZ2UucGFyZW50
Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3Rl
ZFN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIG1lc3NhZ2UuY2xhc3NMaXN0LnJlbW92ZShX
ZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAg
ICAgICAgICB0aGlzLl9zZWxlY3RlZE1lc3NhZ2VzLnJlbW92ZShtZXNzYWdlKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNDgyLDE4ICs0ODIsMTggQEAgV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgICAgICAgICAgZm9yICh2YXIgaSA9
IHN0YXJ0SW5kZXg7IGkgPD0gZW5kSW5kZXg7ICsraSkgewogICAgICAgICAgICAgICAgIHZhciBt
ZXNzYWdlSW5SYW5nZSA9IG1lc3NhZ2VzW2ldOwotICAgICAgICAgICAgICAgIGlmIChpID49IG5l
d1JhbmdlWzBdICYmIGkgPD0gbmV3UmFuZ2VbMV0gJiYgIW1lc3NhZ2VJblJhbmdlLnBhcmVudE5v
ZGUuY2xhc3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3Rl
ZFN0eWxlQ2xhc3NOYW1lKSkgewotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSW5SYW5nZS5w
YXJlbnROb2RlLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVj
dGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgICAgIGlmIChpID49IG5ld1JhbmdlWzBd
ICYmIGkgPD0gbmV3UmFuZ2VbMV0gJiYgIW1lc3NhZ2VJblJhbmdlLmNsYXNzTGlzdC5jb250YWlu
cyhXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSkpIHsK
KyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUluUmFuZ2UuY2xhc3NMaXN0LmFkZChXZWJJbnNw
ZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMucHVzaChtZXNzYWdlSW5SYW5nZSk7Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpIDwgbmV3UmFuZ2VbMF0gfHwgaSA+IG5ld1Jhbmdl
WzFdICYmIG1lc3NhZ2VJblJhbmdlLnBhcmVudE5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKFdlYklu
c3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKSkgewotICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlSW5SYW5nZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5yZW1vdmUo
V2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA8IG5ld1JhbmdlWzBdIHx8IGkgPiBuZXdSYW5nZVsx
XSAmJiBtZXNzYWdlSW5SYW5nZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0Nv
bnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpKSB7CisgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2VJblJhbmdlLmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRW
aWV3LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgICAgICAgICB0aGlzLl9z
ZWxlY3RlZE1lc3NhZ2VzLnJlbW92ZShtZXNzYWdlSW5SYW5nZSk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25SYW5nZSA9IG5l
d1JhbmdlOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbWVzc2FnZS5wYXJlbnROb2Rl
LmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVD
bGFzc05hbWUpOworICAgICAgICAgICAgbWVzc2FnZS5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgICAgIHRo
aXMuX3NlbGVjdGVkTWVzc2FnZXMucHVzaChtZXNzYWdlKTsKICAgICAgICAgfQogCkBAIC01MzUs
NyArNTM1LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKIAog
ICAgIF9pc01lc3NhZ2VWaXNpYmxlOiBmdW5jdGlvbihtZXNzYWdlKQogICAgIHsKLSAgICAgICAg
dmFyIG5vZGUgPSBtZXNzYWdlLnBhcmVudE5vZGU7CisgICAgICAgIHZhciBub2RlID0gbWVzc2Fn
ZTsKIAogICAgICAgICBpZiAobm9kZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkxv
Z0NvbnRlbnRWaWV3LkZpbHRlcmVkT3V0U3R5bGVDbGFzc05hbWUpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtNTU3LDEzICs1NTcsMTMgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRW
aWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9pc01lc3NhZ2VTZWxlY3RlZDogZnVuY3Rpb24obWVz
c2FnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBtZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NMaXN0
LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NO
YW1lKTsKKyAgICAgICAgcmV0dXJuIG1lc3NhZ2UuY2xhc3NMaXN0LmNvbnRhaW5zKFdlYkluc3Bl
Y3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKICAgICB9LAogCiAg
ICAgX2NsZWFyTWVzc2FnZXNTZWxlY3Rpb246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRo
aXMuX3NlbGVjdGVkTWVzc2FnZXMuZm9yRWFjaChmdW5jdGlvbihtZXNzYWdlKSB7Ci0gICAgICAg
ICAgICBtZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICBtZXNzYWdl
LmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5
bGVDbGFzc05hbWUpOwogICAgICAgICB9KTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRNZXNzYWdl
cyA9IFtdOwogICAgICAgICBkZWxldGUgdGhpcy5fcmVmZXJlbmNlTWVzc2FnZUZvclJhbmdlU2Vs
ZWN0aW9uOwpAQCAtNTc2LDcgKzU3Niw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBtZXNzYWdlcyA9IHRoaXMuX3Zpc2libGVNZXNzYWdl
cygpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKSB7
CiAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IG1lc3NhZ2VzW2ldOwotICAgICAgICAgICAgbWVz
c2FnZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3
LlNlbGVjdGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgbWVzc2FnZS5jbGFzc0xpc3Qu
YWRkKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsK
ICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMucHVzaChtZXNzYWdlKTsKICAgICAg
ICAgfQogICAgIH0sCkBAIC01ODksNyArNTg5LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRW
aWV3LnByb3RvdHlwZSA9IHsKICAgICBfdW5maWx0ZXJlZE1lc3NhZ2VzOiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICByZXR1cm4gdGhpcy5fYWxsTWVzc2FnZXMoKS5maWx0ZXIoZnVuY3Rpb24o
bWVzc2FnZSkgewotICAgICAgICAgICAgcmV0dXJuICFtZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NM
aXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5GaWx0ZXJlZE91dFN0eWxl
Q2xhc3NOYW1lKTsKKyAgICAgICAgICAgIHJldHVybiAhbWVzc2FnZS5jbGFzc0xpc3QuY29udGFp
bnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LkZpbHRlcmVkT3V0U3R5bGVDbGFzc05hbWUp
OwogICAgICAgICB9KTsKICAgICB9LAogCkBAIC02MDEsNyArNjAxLDcgQEAgV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybiB1bmZpbHRl
cmVkTWVzc2FnZXM7CiAKICAgICAgICAgcmV0dXJuIHVuZmlsdGVyZWRNZXNzYWdlcy5maWx0ZXIo
ZnVuY3Rpb24obWVzc2FnZSkgewotICAgICAgICAgICAgcmV0dXJuICFtZXNzYWdlLnBhcmVudE5v
ZGUuY2xhc3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5GaWx0ZXJl
ZE91dEJ5U2VhcmNoU3R5bGVDbGFzc05hbWUpOworICAgICAgICAgICAgcmV0dXJuICFtZXNzYWdl
LmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuRmlsdGVyZWRP
dXRCeVNlYXJjaFN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgfSk7CiAgICAgfSwKIApAQCAtNjUz
LDcgKzY1Myw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICB2YXIgY2xhc3NM
aXN0ID0gbWVzc2FnZS5wYXJlbnROb2RlLmNsYXNzTGlzdDsKKyAgICAgICAgICAgIHZhciBjbGFz
c0xpc3QgPSBtZXNzYWdlLmNsYXNzTGlzdDsKICAgICAgICAgICAgIGlmICh2aXNpYmxlKQogICAg
ICAgICAgICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3
LkZpbHRlcmVkT3V0U3R5bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgZWxzZSB7CkBAIC03NTks
NyArNzU5LDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKIAog
ICAgICAgICB2YXIgY3VycmVudE1lc3NhZ2UgPSB0aGlzLl9zZWxlY3RlZE1lc3NhZ2VzWzBdOwog
ICAgICAgICBpZiAoY3VycmVudE1lc3NhZ2UuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb25zb2xlLWdy
b3VwLXRpdGxlIikpCi0gICAgICAgICAgICBjdXJyZW50TWVzc2FnZS5wYXJlbnROb2RlLnBhcmVu
dE5vZGUuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIik7CisgICAgICAgICAgICBjdXJyZW50TWVz
c2FnZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpOwogICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgIHZhciBvdXRsaW5lVGl0bGUgPSBjdXJyZW50TWVzc2FnZS5xdWVyeVNl
bGVjdG9yKCJvbC5vdXRsaW5lLWRpc2Nsb3N1cmUgPiBsaS5wYXJlbnQiKTsKICAgICAgICAgICAg
IGlmIChvdXRsaW5lVGl0bGUpIHsKQEAgLTc4Miw3ICs3ODIsNyBAQCBXZWJJbnNwZWN0b3IuTG9n
Q29udGVudFZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBjdXJyZW50TWVzc2FnZSA9
IHRoaXMuX3NlbGVjdGVkTWVzc2FnZXNbMF07CiAgICAgICAgIGlmIChjdXJyZW50TWVzc2FnZS5j
bGFzc0xpc3QuY29udGFpbnMoImNvbnNvbGUtZ3JvdXAtdGl0bGUiKSkKLSAgICAgICAgICAgIGN1
cnJlbnRNZXNzYWdlLnBhcmVudE5vZGUucGFyZW50Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJjb2xs
YXBzZWQiKTsKKyAgICAgICAgICAgIGN1cnJlbnRNZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NMaXN0
LnJlbW92ZSgiY29sbGFwc2VkIik7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgdmFyIG91
dGxpbmVUaXRsZSA9IGN1cnJlbnRNZXNzYWdlLnF1ZXJ5U2VsZWN0b3IoIm9sLm91dGxpbmUtZGlz
Y2xvc3VyZSA+IGxpLnBhcmVudCIpOwogICAgICAgICAgICAgaWYgKG91dGxpbmVUaXRsZSkgewpA
QCAtODg2LDcgKzg4Niw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBpZiAoIWlzRW1wdHlPYmplY3QobWF0Y2hSYW5nZXMpKQogICAgICAg
ICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFJhbmdlcyhtZXNzYWdlLCBtYXRjaFJhbmdlcyk7CiAK
LSAgICAgICAgICAgIHZhciBjbGFzc0xpc3QgPSBtZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NMaXN0
OworICAgICAgICAgICAgdmFyIGNsYXNzTGlzdCA9IG1lc3NhZ2UuY2xhc3NMaXN0OwogICAgICAg
ICAgICAgaWYgKCFpc0VtcHR5T2JqZWN0KG1hdGNoUmFuZ2VzKSB8fCBtZXNzYWdlLmNvbW1hbmQg
aW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmQgfHwgbWVzc2FnZS5tZXNzYWdl
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0KQogICAgICAgICAg
ICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LkZpbHRl
cmVkT3V0QnlTZWFyY2hTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICBlbHNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TZWN0aW9uLmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlY3Rpb24uY3Nz
CmluZGV4IDI5OWZjMDUuLmZkZDRkZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlY3Rpb24uY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlY3Rpb24uY3NzCkBAIC0zNiwyMiArMzYsMjIgQEAK
ICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmc7CiB9CiAKLS5zZWN0aW9uIC5oZWFkZXI6OmJl
Zm9yZSB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogNXB4OwotICAgIGxlZnQ6
IDdweDsKLQorLnNlY3Rpb24gLmhlYWRlciAudGl0bGU6OmJlZm9yZSB7CiAgICAgd2lkdGg6IDhw
eDsKICAgICBoZWlnaHQ6IDhweDsKIAorICAgIG1hcmdpbi1yaWdodDogNHB4OworICAgIG1hcmdp
bi1sZWZ0OiAtOHB4OworCiAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1jYW52YXMoZGlz
Y2xvc3VyZS10cmlhbmdsZS10aW55LWNsb3NlZC1ub3JtYWwpOwogICAgIGJhY2tncm91bmQtc2l6
ZTogOHB4IDhweDsKICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogCi0gICAgY29u
dGVudDogIiI7CisgICAgY29udGVudDogIiAiOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
IH0KIAotLnNlY3Rpb24uZXhwYW5kZWQgLmhlYWRlcjo6YmVmb3JlIHsKKy5zZWN0aW9uLmV4cGFu
ZGVkIC5oZWFkZXIgLnRpdGxlOjpiZWZvcmUgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJr
aXQtY2FudmFzKGRpc2Nsb3N1cmUtdHJpYW5nbGUtdGlueS1vcGVuLW5vcm1hbCk7CiB9CiAKQEAg
LTU5LDcgKzU5LDcgQEAKICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgIHdvcmQtd3JhcDog
YnJlYWstd29yZDsKICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwotICAgIGxpbmUtaGVpZ2h0OiAx
OHB4OworICAgIGxpbmUtaGVpZ2h0OiAxOHB4OyAvKiBAbnZhc2lseWV2OiBOb3Qgc3VyZSB3aHkg
aXQgaXMgaGVyZS4gKi8KIH0KIAogLnNlY3Rpb24gLmhlYWRlciAudGl0bGUuYmxhbmstdGl0bGUg
ewpAQCAtMTQwLDcgKzE0MCw3IEBACiAgICAgd2lkdGg6IDhweDsKICAgICBoZWlnaHQ6IDhweDsK
IAotICAgIG1hcmdpbi10b3A6IDNweDsKKyAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgcGFkZGlu
Zy1yaWdodDogMnB4OwogfQogCg==
</data>
<flag name="review"
          id="271559"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="271560"
          type_id="3"
          status="-"
          setter="nvasilyev"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246714</attachid>
            <date>2015-02-16 18:37:50 -0800</date>
            <delta_ts>2015-02-16 20:20:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>28830</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDFlMTE1OTQuLmRmYzBmOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDE1LTAyLTE2ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFR3ZWFr
IHRoZSBzdHlsZXMgb24gdGhlIENvbnNvbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MDU4MAorCisgICAgICAgICAgICAtIFVzZSBub24tbW9ub3Nw
YWNlIChkZWZhdWx0IHNhbnMtc2VyaWYpIGZvbnQgZm9yIGNvbnNvbGUgbWVzc2FnZXMsIGJ1dCBr
ZWVwIHVzaW5nIG1vbm9zcGFjZSBmb250CisgICAgICAgICAgICAgIGZvciBvYmplY3RzLCBmdW5j
dGlvbnMsIGFuZCBhbnl0aGluZyBlbHNlIHRoYXQgcHJlc3VtYWJseSBjb2RlLgorICAgICAgICAg
ICAgLSBEaXNwbGF5IGFsbCBleHBhbmRhYmxlIG9iamVjdHMgb24gYSBzZXBhcmF0ZSByb3cuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL0NvbnNvbGVDb21tYW5kLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bnNvbGVDb21tYW5kLnByb3RvdHlwZS5kZWNvcmF0ZU1lc3NhZ2VFbGVtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZC5wcm90b3R5cGUudG9NZXNzYWdlRWxlbWVudCk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlR3JvdXAuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZS5hZGRNZXNzYWdlKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNzYWdlSW1wbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLl9mb3JtYXQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUuX2lzRXhwYW5k
YWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlw
ZS5fZm9ybWF0UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZUltcGwucHJvdG90eXBlLmFwcGVuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1l
c3NhZ2VJbXBsLnByb3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5kZWNvcmF0ZU1l
c3NhZ2VFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwu
cHJvdG90eXBlLnRvTWVzc2FnZUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlSW1wbC5wcm90b3R5cGUuX2Zvcm1hdFBhcmFtZXRlckFzU3RyaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzczoKKyAg
ICAgICAgKC5jb25zb2xlLW1lc3NhZ2VzKToKKyAgICAgICAgKC5jb25zb2xlLWZvcm1hdHRlZC1v
YmplY3QpOgorICAgICAgICAoLmV4cGFuZGFibGUuc291cmNlLWNvZGUpOgorICAgICAgICAoLmNv
bnNvbGUtbWVzc2FnZSk6CisgICAgICAgICguY29uc29sZS1pdGVtLnNlbGVjdGVkOjphZnRlcik6
CisgICAgICAgICguY29uc29sZS1tZXNzYWdlczpmb2N1cyAuY29uc29sZS1pdGVtLnNlbGVjdGVk
OjphZnRlcik6CisgICAgICAgICguY29uc29sZS11c2VyLWNvbW1hbmQtcmVzdWx0LmNvbnNvbGUt
bG9nLWxldmVsOjpiZWZvcmUpOgorICAgICAgICAoLmNvbnNvbGUtaXRlbTo6YmVmb3JlKToKKyAg
ICAgICAgKC5jb25zb2xlLW1lc3NhZ2UgLmJ1YmJsZSk6CisgICAgICAgICguY29uc29sZS1lcnJv
ci1sZXZlbCk6CisgICAgICAgICguY29uc29sZS1lcnJvci1sZXZlbCAuc2VjdGlvbiAuaGVhZGVy
IC50aXRsZSk6CisgICAgICAgICguY29uc29sZS1lcnJvci1sZXZlbDo6YmVmb3JlKToKKyAgICAg
ICAgKC5jb25zb2xlLXdhcm5pbmctbGV2ZWwpOgorICAgICAgICAoLmNvbnNvbGUtd2FybmluZy1s
ZXZlbCAuY29uc29sZS1tZXNzYWdlLXRleHQpOgorICAgICAgICAoLmNvbnNvbGUtd2FybmluZy1s
ZXZlbDo6YmVmb3JlKToKKyAgICAgICAgKC5jb25zb2xlLXVzZXItY29tbWFuZDo6YmVmb3JlKToK
KyAgICAgICAgKC5jb25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5zZWN0aW9uKToKKyAgICAgICAgKC5j
b25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5zZWN0aW9uIC5oZWFkZXI6OmJlZm9yZSk6CisgICAgICAg
ICguY29uc29sZS1ncm91cC1tZXNzYWdlcyAuc2VjdGlvbiAuaGVhZGVyIC50aXRsZSk6CisgICAg
ICAgICguY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0LCAuY29uc29sZS1mb3JtYXR0ZWQtbm9kZSwg
LmNvbnNvbGUtZm9ybWF0dGVkLWVycm9yLCAuY29uc29sZS1mb3JtYXR0ZWQtbWFwLCAuY29uc29s
ZS1mb3JtYXR0ZWQtc2V0LCAuY29uc29sZS1mb3JtYXR0ZWQtd2Vha21hcCk6CisgICAgICAgICgu
b3V0bGluZS1kaXNjbG9zdXJlIGxpKToKKyAgICAgICAgKC5vdXRsaW5lLWRpc2Nsb3N1cmUgbGku
cGFyZW50OjpiZWZvcmUpOgorICAgICAgICAoLmNvbnNvbGUtaXRlbSk6IERlbGV0ZWQuCisgICAg
ICAgICguY29uc29sZS1pdGVtLnNlbGVjdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xl
LW1lc3NhZ2VzOmZvY3VzIC5jb25zb2xlLWl0ZW0uc2VsZWN0ZWQpOiBEZWxldGVkLgorICAgICAg
ICAoLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCAuY29uc29sZS1tZXNzYWdlOjphZnRlcik6IERlbGV0
ZWQuCisgICAgICAgICguY29uc29sZS1tZXNzYWdlczpmb2N1cyAuY29uc29sZS1pdGVtLnNlbGVj
dGVkIC5kYXRhLWdyaWQgdHIuc2VsZWN0ZWQpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUt
bWVzc2FnZXM6Zm9jdXMgLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCAuY29uc29sZS1tZXNzYWdlOjph
ZnRlcik6IERlbGV0ZWQuCisgICAgICAgICguY29uc29sZS1tZXNzYWdlLCAuY29uc29sZS11c2Vy
LWNvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtbWVzc2FnZTo6YmVmb3JlLCAu
Y29uc29sZS11c2VyLWNvbW1hbmQ6OmJlZm9yZSwgLmphdmFzY3JpcHQtcHJvbXB0OjpiZWZvcmUs
IC5jb25zb2xlLWdyb3VwLXRpdGxlOjpiZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNv
bGUtZ3JvdXApOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtZGVidWctbGV2ZWwgLmNvbnNv
bGUtbWVzc2FnZS10ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xlLWRlYnVnLWxldmVs
OjpiZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAoLmNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMgLnNl
Y3Rpb24gLmhlYWRlcik6IERlbGV0ZWQuCisgICAgICAgICguY29uc29sZS1ncm91cC1tZXNzYWdl
cyAub3V0bGluZS1kaXNjbG9zdXJlKTogRGVsZXRlZC4KKyAgICAgICAgKC5jb25zb2xlLWdyb3Vw
LW1lc3NhZ2VzIC5vdXRsaW5lLWRpc2Nsb3N1cmUgPiBvbCk6IERlbGV0ZWQuCisgICAgICAgICgu
b3V0bGluZS1kaXNjbG9zdXJlIGxpLmVsZW1lbnRzLWRyYWctb3ZlciAuc2VsZWN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKC5vdXRsaW5lLWRpc2Nsb3N1cmUgb2w6Zm9jdXMgbGkuc2VsZWN0ZWQg
LnNlbGVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICgub3V0bGluZS1kaXNjbG9zdXJlID4gb2wp
OiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl9tb3Vz
ZW1vdmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5f
dXBkYXRlTWVzc2FnZXNTZWxlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5faXNNZXNzYWdlVmlzaWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl9pc01lc3NhZ2VTZWxlY3RlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl9zZWxlY3RBbGxNZXNzYWdl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlLl91bmZp
bHRlcmVkTWVzc2FnZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5fdmlzaWJsZU1lc3NhZ2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50Vmlldy5wcm90b3R5cGUuX2ZpbHRlck1lc3NhZ2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUuX2xlZnRBcnJvd1dhc1ByZXNzZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fcHJvcGVydGllc1NlY3Rp
b25EaWRVcGRhdGVDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmll
dy5wcm90b3R5cGUuX3BlcmZvcm1TZWFyY2gpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvU2VjdGlvbi5jc3M6CisgICAgICAgICguc2VjdGlvbiAuaGVhZGVyIC50aXRsZTo6YmVmb3Jl
KToKKyAgICAgICAgKC5zZWN0aW9uLmV4cGFuZGVkIC5oZWFkZXIgLnRpdGxlOjpiZWZvcmUpOgor
ICAgICAgICAoLnNlY3Rpb24gLmhlYWRlciAudGl0bGUsIC5ldmVudC1iYXIgLmhlYWRlciAudGl0
bGUpOgorICAgICAgICAoLnByb3BlcnRpZXMtdHJlZSBsaS5wYXJlbnQ6OmJlZm9yZSk6CisgICAg
ICAgICguc2VjdGlvbiAuaGVhZGVyOjpiZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAoLnNlY3Rp
b24uZXhwYW5kZWQgLmhlYWRlcjo6YmVmb3JlKTogRGVsZXRlZC4KKwogMjAxNS0wMS0yOSAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEVTNjogSW1wcm92ZWQgQ29uc29sZSBGb3JtYXQgZm9yIFNldCBhbmQgTWFwIE9iamVjdHMg
KGxpa2UgQXJyYXlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ29uc29sZUNvbW1hbmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db25zb2xlQ29tbWFuZC5qcwppbmRleCA0MzZiMGQ1Li5hOTc3YTQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b25zb2xlQ29tbWFuZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db25zb2xlQ29tbWFuZC5qcwpAQCAtMzksMTggKzM5LDI4IEBAIFdlYkluc3BlY3Rv
ci5Db25zb2xlQ29tbWFuZC5wcm90b3R5cGUgPSB7CiAKICAgICAvLyBQdWJsaWMKIAorICAgIGRl
Y29yYXRlTWVzc2FnZUVsZW1lbnQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKKyAgICAgICAgaWYgKHRo
aXMuX2VsZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKKworICAgICAg
ICB0aGlzLl9lbGVtZW50ID0gZWxlbWVudDsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5jb21tYW5k
ID0gdGhpczsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJjb25zb2xlLXVz
ZXItY29tbWFuZCIpOworICAgICAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgiZGF0YS1s
YWJlbHByZWZpeCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW5wdXQ6ICIpKTsKKworICAgICAg
ICB0aGlzLl9mb3JtYXRDb21tYW5kKCk7CisgICAgICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fZm9ybWF0dGVkQ29tbWFuZCk7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1l
bnQ7CisgICAgfSwKKwogICAgIHRvTWVzc2FnZUVsZW1lbnQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0g
ICAgICAgIGlmICghdGhpcy5fZWxlbWVudCkgewotICAgICAgICAgICAgdGhpcy5fZWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAgdGhpcy5fZWxlbWVu
dC5jb21tYW5kID0gdGhpczsKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NOYW1lID0g
ImNvbnNvbGUtdXNlci1jb21tYW5kIjsKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0
cmlidXRlKCJkYXRhLWxhYmVscHJlZml4IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbnB1dDog
IikpOworICAgICAgICBpZiAodGhpcy5fZWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9lbGVtZW50OwogCi0gICAgICAgICAgICB0aGlzLl9mb3JtYXRDb21tYW5kKCk7Ci0gICAgICAg
ICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2Zvcm1hdHRlZENvbW1hbmQpOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OworICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICByZXR1cm4gdGhp
cy5kZWNvcmF0ZU1lc3NhZ2VFbGVtZW50KGVsZW1lbnQpOwogICAgIH0sCiAKICAgICAvLyBQcml2
YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db25zb2xlR3JvdXAuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db25zb2xlR3JvdXAuanMKaW5kZXggNjg5YjJlMi4uOWFhZWRhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZUdyb3VwLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVH
cm91cC5qcwpAQCAtNTQsMjEgKzU0LDIwIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlR3JvdXAucHJv
dG90eXBlID0gewogCiAgICAgYWRkTWVzc2FnZTogZnVuY3Rpb24obXNnKQogICAgIHsKLSAgICAg
ICAgdmFyIGVsZW1lbnQgPSBtc2cudG9NZXNzYWdlRWxlbWVudCgpOworICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBlbGVtZW50LmNs
YXNzTmFtZSA9IFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5JdGVtV3JhcHBlclN0eWxlQ2xh
c3NOYW1lOwogCi0gICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci0gICAgICAgIHdyYXBwZXIuY2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLkxvZ0NvbnRl
bnRWaWV3Lkl0ZW1XcmFwcGVyU3R5bGVDbGFzc05hbWU7Ci0gICAgICAgIHdyYXBwZXIubWVzc2Fn
ZUVsZW1lbnQgPSB3cmFwcGVyLmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgICAgICBtc2cuZGVj
b3JhdGVNZXNzYWdlRWxlbWVudChlbGVtZW50KTsKIAogICAgICAgICBpZiAobXNnLnR5cGUgPT09
IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5TdGFydEdyb3VwIHx8IG1z
Zy50eXBlID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuU3RhcnRH
cm91cENvbGxhcHNlZCkgewotICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQucGFyZW50
Tm9kZS5pbnNlcnRCZWZvcmUod3JhcHBlciwgdGhpcy5tZXNzYWdlc0VsZW1lbnQpOworICAgICAg
ICAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVu
dCwgdGhpcy5tZXNzYWdlc0VsZW1lbnQpOwogICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIHRoaXMuX3RpdGxlQ2xpY2tlZC5iaW5kKHRoaXMpKTsKICAgICAgICAg
ICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fdGl0bGVNb3Vz
ZURvd24uYmluZCh0aGlzKSk7CiAgICAgICAgICAgICB2YXIgZ3JvdXBFbGVtZW50ID0gZWxlbWVu
dC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJjb25zb2xlLWdyb3VwIik7CiAgICAgICAg
ICAgICBpZiAoZ3JvdXBFbGVtZW50ICYmIG1zZy50eXBlID09PSBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZVR5cGUuU3RhcnRHcm91cENvbGxhcHNlZCkKICAgICAgICAgICAgICAg
ICBncm91cEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIik7CiAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuYXBwZW5kQ2hpbGQod3JhcHBlcik7
CisgICAgICAgICAgICB0aGlzLm1lc3NhZ2VzRWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50KTsK
ICAgICB9LAogCiAgICAgaGFzTWVzc2FnZXM6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNzYWdlSW1wbC5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNz
YWdlSW1wbC5qcwppbmRleCBiOGRmMDMwLi43Y2VhMjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZUltcGwuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3Nh
Z2VJbXBsLmpzCkBAIC0yMjUsNyArMjI1LDYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
SW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFRoZXJlIGNhbiBiZSBzdHJpbmcgbG9nIGFu
ZCBzdHJpbmcgZXZhbCByZXN1bHQuIFdlIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlbSBiYXNlZCBv
biBtZXNzYWdlIHR5cGUuCiAgICAgICAgIHZhciBzaG91bGRGb3JtYXRNZXNzYWdlID0gV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC50eXBlKHBhcmFtZXRlcnNbMF0pID09PSAic3RyaW5nIiAmJiB0
aGlzLnR5cGUgIT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5SZXN1
bHQ7CiAKLSAgICAgICAgLy8gTXVsdGlwbGUgcGFyYW1ldGVycyB3aXRoIHRoZSBmaXJzdCBiZWlu
ZyBhIGZvcm1hdCBzdHJpbmcuIFNhdmUgdW51c2VkIHN1YnN0aXR1dGlvbnMuCiAgICAgICAgIGlm
IChzaG91bGRGb3JtYXRNZXNzYWdlKSB7CiAgICAgICAgICAgICAvLyBNdWx0aXBsZSBwYXJhbWV0
ZXJzIHdpdGggdGhlIGZpcnN0IGJlaW5nIGEgZm9ybWF0IHN0cmluZy4gU2F2ZSB1bnVzZWQgc3Vi
c3RpdHV0aW9ucy4KICAgICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9mb3JtYXRXaXRoU3Vi
c3RpdHV0aW9uU3RyaW5nKHBhcmFtZXRlcnMsIGZvcm1hdHRlZFJlc3VsdCk7CkBAIC0yMzcsMTYg
KzIzNiwzMSBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgLy8gU2luZ2xlIHBhcmFtZXRlciwgb3IgdW51c2VkIHN1YnN0aXR1dGlvbnMgZnJv
bSBhYm92ZS4KICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLmxlbmd0aDsg
KytpKSB7CiAgICAgICAgICAgICAvLyBJbmxpbmUgc3RyaW5ncyB3aGVuIGZvcm1hdHRpbmcuCi0g
ICAgICAgICAgICBpZiAoc2hvdWxkRm9ybWF0TWVzc2FnZSAmJiBwYXJhbWV0ZXJzW2ldLnR5cGUg
PT09ICJzdHJpbmciKQotICAgICAgICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShwYXJhbWV0ZXJzW2ldLmRlc2NyaXB0aW9uKSk7Ci0g
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAoc2hvdWxkRm9ybWF0TWVzc2FnZSAmJiBw
YXJhbWV0ZXJzW2ldLnR5cGUgPT09ICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgdmFyIHNw
YW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAgICAgICAgc3Bh
bi5jbGFzc0xpc3QuYWRkKCJ0eXBlLXN0cmluZyIpOworICAgICAgICAgICAgICAgIHNwYW4udGV4
dENvbnRlbnQgPSBwYXJhbWV0ZXJzW2ldLmRlc2NyaXB0aW9uOworICAgICAgICAgICAgICAgIGZv
cm1hdHRlZFJlc3VsdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5hcHBlbmRDaGlsZCh0aGlzLl9mb3JtYXRQYXJh
bWV0ZXIocGFyYW1ldGVyc1tpXSwgZmFsc2UsIHRydWUpKTsKLSAgICAgICAgICAgIGlmIChpIDwg
cGFyYW1ldGVycy5sZW5ndGggLSAxKQorCisgICAgICAgICAgICBpZiAoaSA8IHBhcmFtZXRlcnMu
bGVuZ3RoIC0gMSAmJiAhdGhpcy5faXNFeHBhbmRhYmxlKHBhcmFtZXRlcnNbaV0pKQogICAgICAg
ICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgiICIpKTsKKwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXN1bHQ7
CiAgICAgfSwKIAorICAgIF9pc0V4cGFuZGFibGU6IGZ1bmN0aW9uKHJlbW90ZU9iamVjdCkgewor
ICAgICAgICBpZiAoIXJlbW90ZU9iamVjdCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICBpZiAocmVtb3RlT2JqZWN0Lmhhc0NoaWxkcmVuICYmIHJlbW90ZU9iamVjdC5wcmV2
aWV3ICYmIHJlbW90ZU9iamVjdC5wcmV2aWV3Lmxvc3NsZXNzKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIHJldHVybiByZW1vdGVPYmplY3QuaGFzQ2hpbGRyZW47CisgICAg
fSwKKwogICAgIF9mb3JtYXRQYXJhbWV0ZXI6IGZ1bmN0aW9uKG91dHB1dCwgZm9yY2VPYmplY3RG
b3JtYXQsIGluY2x1ZGVQcmV2aWV3KQogICAgIHsKICAgICAgICAgdmFyIHR5cGU7CkBAIC0yNjUs
NiArMjc5LDEwIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0g
ewogCiAgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwog
ICAgICAgICBzcGFuLmNsYXNzTmFtZSA9ICJjb25zb2xlLWZvcm1hdHRlZC0iICsgdHlwZSArICIg
c291cmNlLWNvZGUiOworCisgICAgICAgIGlmICh0aGlzLl9pc0V4cGFuZGFibGUob3V0cHV0KSkK
KyAgICAgICAgICAgIHNwYW4uY2xhc3NMaXN0LmFkZCgiZXhwYW5kYWJsZSIpOworCiAgICAgICAg
IGZvcm1hdHRlci5jYWxsKHRoaXMsIG91dHB1dCwgc3BhbiwgaW5jbHVkZVByZXZpZXcpOwogICAg
ICAgICByZXR1cm4gc3BhbjsKICAgICB9LApAQCAtNTcxLDcgKzU4OSwxMCBAQCBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAg
d3JhcHBlci5hcHBlbmRDaGlsZCh0b0FwcGVuZCk7CiAgICAgICAgICAgICAgICAgICAgIHRvQXBw
ZW5kID0gd3JhcHBlcjsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYS5hcHBl
bmRDaGlsZCh0b0FwcGVuZCk7CisgICAgICAgICAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAgICAgICAgc3Bhbi5jbGFzc05hbWUgPSAi
dHlwZS1zdHJpbmciOworICAgICAgICAgICAgICAgIHNwYW4uYXBwZW5kQ2hpbGQodG9BcHBlbmQp
OworICAgICAgICAgICAgICAgIGEuYXBwZW5kQ2hpbGQoc3Bhbik7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICByZXR1cm4gYTsKICAgICAgICAgfQpAQCAtNTgwLDE0ICs2MDEsMTMgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVy
biBTdHJpbmcuZm9ybWF0KHBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24sIHBhcmFtZXRlcnMuc2xp
Y2UoMSksIGZvcm1hdHRlcnMsIGZvcm1hdHRlZFJlc3VsdCwgYXBwZW5kKTsKICAgICB9LAogCi0g
ICAgdG9NZXNzYWdlRWxlbWVudDogZnVuY3Rpb24oKQorICAgIGRlY29yYXRlTWVzc2FnZUVsZW1l
bnQ6IGZ1bmN0aW9uKGVsZW1lbnQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fZWxlbWVudCkK
ICAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50OwogCi0gICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgIGVsZW1lbnQubWVzc2Fn
ZSA9IHRoaXM7Ci0gICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImNvbnNvbGUtbWVzc2FnZSI7
CisgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiY29uc29sZS1tZXNzYWdlIik7CiAKICAg
ICAgICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnQ7CiAKQEAgLTYyNSw2ICs2NDUsMTYgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVy
biBlbGVtZW50OwogICAgIH0sCiAKKyAgICB0b01lc3NhZ2VFbGVtZW50OiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICBpZiAodGhpcy5fZWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9lbGVtZW50OworCisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuZGVjb3JhdGVNZXNzYWdlRWxlbWVudChl
bGVtZW50KTsKKyAgICB9LAorCiAgICAgX3BvcHVsYXRlU3RhY2tUcmFjZVRyZWVFbGVtZW50OiBm
dW5jdGlvbihwYXJlbnRUcmVlRWxlbWVudCkKICAgICB7CiAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdGhpcy5fc3RhY2tUcmFjZS5sZW5ndGg7IGkrKykgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuY3NzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcu
Y3NzCmluZGV4IDIyM2M1YWYuLjRhM2UwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5jc3MKQEAg
LTM0LDE3ICszNCwyOCBAQAogCiAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogCisgICAgZm9u
dC1mYW1pbHk6IC13ZWJraXQtc3lzdGVtLWZvbnQsIHNhbnMtc2VyaWY7CisgICAgZm9udC1zaXpl
OiAxMnB4OworCisgICAgbWluLWhlaWdodDogMTAwJTsKK30KKworLmNvbnNvbGUtdXNlci1jb21t
YW5kLAorLmNvbnNvbGUtdXNlci1jb21tYW5kLXJlc3VsdCwKKy5jb25zb2xlLWZvcm1hdHRlZC1v
YmplY3QgewogICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgbW9ub3NwYWNlOwogICAgIGZvbnQtc2l6
ZTogMTFweDsKK30KIAotICAgIG1pbi1oZWlnaHQ6IDEwMCU7CisuZXhwYW5kYWJsZS5zb3VyY2Ut
Y29kZSB7CisgICAgZGlzcGxheTogYmxvY2s7CiB9CiAKIC5jb25zb2xlLW1lc3NhZ2VzID4gOmZp
cnN0LWNoaWxkIHsKICAgICBtYXJnaW4tdG9wOiBhdXRvOwogfQogCi0uY29uc29sZS1pdGVtIHsK
Ky5jb25zb2xlLW1lc3NhZ2UgewogICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2IoMjQwLCAy
NDAsIDI0MCk7CiB9CiAKQEAgLTUyLDE2ICs2Myw3IEBACiAgICAgYm9yZGVyLXRvcDogbm9uZTsK
IH0KIAotLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogaHNs
KDIxMCwgMCUsIDk2JSk7Ci19Ci0KLS5jb25zb2xlLW1lc3NhZ2VzOmZvY3VzIC5jb25zb2xlLWl0
ZW0uc2VsZWN0ZWQgewotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMTAsIDk4JSwgOTYlKTsK
LX0KLQotLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCAuY29uc29sZS11c2VyLWNvbW1hbmQ6OmFmdGVy
LAotLmNvbnNvbGUtaXRlbS5zZWxlY3RlZCAuY29uc29sZS1tZXNzYWdlOjphZnRlciB7CisuY29u
c29sZS1pdGVtLnNlbGVjdGVkOjphZnRlciB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAg
IGRpc3BsYXk6IGJsb2NrOwogICAgIGNvbnRlbnQ6ICIiOwpAQCAtNzIsOCArNzQsNyBAQAogICAg
IHdpZHRoOiAycHg7CiB9CiAKLS5jb25zb2xlLW1lc3NhZ2VzOmZvY3VzIC5jb25zb2xlLWl0ZW0u
c2VsZWN0ZWQgLmNvbnNvbGUtdXNlci1jb21tYW5kOjphZnRlciwKLS5jb25zb2xlLW1lc3NhZ2Vz
OmZvY3VzIC5jb25zb2xlLWl0ZW0uc2VsZWN0ZWQgLmNvbnNvbGUtbWVzc2FnZTo6YWZ0ZXIgewor
LmNvbnNvbGUtbWVzc2FnZXM6Zm9jdXMgLmNvbnNvbGUtaXRlbS5zZWxlY3RlZDo6YWZ0ZXIgewog
ICAgIGJhY2tncm91bmQ6IGhzbCgyMTAsIDEwMCUsIDQ5JSk7CiB9CiAKQEAgLTgyLDcgKzgzLDgg
QEAKIH0KIAogLmNvbnNvbGUtdXNlci1jb21tYW5kLXJlc3VsdC5jb25zb2xlLWxvZy1sZXZlbDo6
YmVmb3JlIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vSW1hZ2VzL1VzZXJJbnB1dFJl
c3VsdC5zdmcpOworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvVXNlcklucHV0UmVzdWx0LnN2
Zyk7CisgICAgbWFyZ2luLXRvcDogMXB4OyAvKiBhbGlnbiB3aXRoIDExcHggTWVubG8gKi8KIH0K
IAogLmNvbnNvbGUtbWVzc2FnZSwgLmNvbnNvbGUtdXNlci1jb21tYW5kIHsKQEAgLTkxLDIwICs5
MywxNyBAQAogICAgIG1pbi1oZWlnaHQ6IDE2cHg7CiB9CiAKLS5jb25zb2xlLW1lc3NhZ2U6OmJl
Zm9yZSwgLmNvbnNvbGUtdXNlci1jb21tYW5kOjpiZWZvcmUsIC5qYXZhc2NyaXB0LXByb21wdDo6
YmVmb3JlLCAuY29uc29sZS1ncm91cC10aXRsZTo6YmVmb3JlIHsKKy5jb25zb2xlLWl0ZW06OmJl
Zm9yZSB7CisgICAgY29udGVudDogIiAiOworCiAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAg
IGRpc3BsYXk6IGJsb2NrOwotICAgIGNvbnRlbnQ6ICIiOwogICAgIGxlZnQ6IDRweDsKLSAgICB0
b3A6IDhweDsKICAgICB3aWR0aDogMTBweDsKLSAgICBoZWlnaHQ6IDEwcHg7Ci0gICAgbWFyZ2lu
LXRvcDogLTVweDsKIH0KIAogLmNvbnNvbGUtbWVzc2FnZSAuYnViYmxlIHsKICAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7Ci0gICAgaGVpZ2h0OiAxNHB4OworICAgIGhlaWdodDogMTVweDsKICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI4LCAxNTEsIDE4OSk7CiAgICAgdmVydGljYWwtYWxp
Z246IG1pZGRsZTsKICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwpAQCAtMTYyLDggKzE2MSwxNCBA
QAogICAgIGJvcmRlci10b3A6IDNweCBkYXNoZWQgcmdiKDI0MCwgMjQwLCAyNDApOwogfQogCi0u
Y29uc29sZS1lcnJvci1sZXZlbCAuY29uc29sZS1tZXNzYWdlLXRleHQsIC5jb25zb2xlLWVycm9y
LWxldmVsIC5zZWN0aW9uIC5oZWFkZXIgLnRpdGxlIHsKLSAgICBjb2xvcjogcmVkICFpbXBvcnRh
bnQ7CisuY29uc29sZS1lcnJvci1sZXZlbCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAs
IDEwMCUsIDk2JSk7CisgICAgYm9yZGVyLWNvbG9yOiBoc2woMCwgMTAwJSwgOTIlKTsKK30KKwor
LmNvbnNvbGUtZXJyb3ItbGV2ZWwgLmNvbnNvbGUtbWVzc2FnZS10ZXh0LAorLmNvbnNvbGUtZXJy
b3ItbGV2ZWwgLnNlY3Rpb24gLmhlYWRlciAudGl0bGUgeworICAgIGNvbG9yOiBoc2woMCwgNzUl
LCA1MCUpOwogfQogCiAuY29uc29sZS1kZWJ1Zy1sZXZlbCAuY29uc29sZS1tZXNzYWdlLXRleHQg
ewpAQCAtMTc1LDEzICsxODAsMjAgQEAKIH0KIAogLmNvbnNvbGUtZXJyb3ItbGV2ZWw6OmJlZm9y
ZSB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL0ltYWdlcy9FcnJvci5zdmcpOwotICAg
IGJhY2tncm91bmQtc2l6ZTogMTBweCAxMHB4OworICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMv
RXJyb3Iuc3ZnKTsKK30KKworLmNvbnNvbGUtd2FybmluZy1sZXZlbCB7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogaHNsKDUwLCAxMDAlLCA5NCUpOworICAgIGJvcmRlci1jb2xvcjogaHNsKDUwLCAx
MDAlLCA4NiUpOworfQorCisuY29uc29sZS13YXJuaW5nLWxldmVsIC5jb25zb2xlLW1lc3NhZ2Ut
dGV4dCB7CisgICAgY29sb3I6IGhzbCgzMCwgOTAlLCAzNSUpOwogfQogCiAuY29uc29sZS13YXJu
aW5nLWxldmVsOjpiZWZvcmUgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9JbWFnZXMv
V2FybmluZy5zdmcpOwotICAgIGJhY2tncm91bmQtc2l6ZTogMTBweCAxMHB4OworICAgIGNvbnRl
bnQ6IHVybCguLi9JbWFnZXMvV2FybmluZy5zdmcpOwogfQogCiAuY29uc29sZS11c2VyLWNvbW1h
bmQgLmNvbnNvbGUtbWVzc2FnZSB7CkBAIC0xOTAsNyArMjAyLDggQEAKIH0KIAogLmNvbnNvbGUt
dXNlci1jb21tYW5kOjpiZWZvcmUgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9JbWFn
ZXMvVXNlcklucHV0UHJvbXB0UHJldmlvdXMuc3ZnKTsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1h
Z2VzL1VzZXJJbnB1dFByb21wdFByZXZpb3VzLnN2Zyk7CisgICAgbWFyZ2luLXRvcDogMXB4OyAv
KiBhbGlnbiB3aXRoIDExcHggTWVubG8gKi8KIH0KIAogLmNvbnNvbGUtdXNlci1jb21tYW5kID4g
LmNvbnNvbGUtbWVzc2FnZS10ZXh0IHsKQEAgLTIxMyw3ICsyMjYsNyBAQAogfQogCiAuY29uc29s
ZS1ncm91cC1tZXNzYWdlcyAuc2VjdGlvbiB7Ci0gICAgbWFyZ2luOiAwIDAgMCAxMnB4ICFpbXBv
cnRhbnQ7CisgICAgbWFyZ2luOiAwIDAgMCAxMnB4OwogfQogCiAuY29uc29sZS1ncm91cC1tZXNz
YWdlcyAuc2VjdGlvbiAuaGVhZGVyIHsKQEAgLTIyNCwxNCArMjM3LDE0IEBACiB9CiAKIC5jb25z
b2xlLWdyb3VwLW1lc3NhZ2VzIC5zZWN0aW9uIC5oZWFkZXI6OmJlZm9yZSB7Ci0gICAgdG9wOiAy
cHg7CisgICAgdG9wOiAzcHg7CiAgICAgbGVmdDogMXB4OwogfQogCiAuY29uc29sZS1ncm91cC1t
ZXNzYWdlcyAuc2VjdGlvbiAuaGVhZGVyIC50aXRsZSB7CiAgICAgY29sb3I6IGJsYWNrOwogICAg
IGZvbnQtd2VpZ2h0OiBub3JtYWw7Ci0gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKKyAgICBsaW5l
LWhlaWdodDogbm9ybWFsOyAvKiBARklYTUU6IG1heSBjYXVzZSBpbmNvbnNpc3RlbmNpZXMgaW4g
bGluZS1oZWlnaHRzIG9mIG1vbm9zcGFjZSBhbmQgbm9uLW1vbm9zcGFjZSB0ZXh0ICovCiB9CiAK
IC5jb25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5zZWN0aW9uIC5wcm9wZXJ0aWVzIGxpIC5pbmZvIHsK
QEAgLTI0OSwxMSArMjYyLDYgQEAKICAgICBwYWRkaW5nOiAwIDAgMCAxMnB4ICFpbXBvcnRhbnQ7
CiB9CiAKLS5jb25zb2xlLWdyb3VwLW1lc3NhZ2VzIC5vdXRsaW5lLWRpc2Nsb3N1cmUsIC5jb25z
b2xlLWdyb3VwLW1lc3NhZ2VzIC5vdXRsaW5lLWRpc2Nsb3N1cmUgb2wgewotICAgIGZvbnQtc2l6
ZTogaW5oZXJpdDsKLSAgICBsaW5lLWhlaWdodDogMTJweDsKLX0KLQogLmNvbnNvbGUtZ3JvdXAt
bWVzc2FnZXMgLm91dGxpbmUtZGlzY2xvc3VyZS5zaW5nbGUtbm9kZSBsaSB7CiAgICAgcGFkZGlu
Zy1sZWZ0OiAycHg7CiB9CkBAIC0zMDEsNyArMzA5LDcgQEAKIC5jb25zb2xlLWZvcm1hdHRlZC1v
YmplY3QsIC5jb25zb2xlLWZvcm1hdHRlZC1ub2RlLCAuY29uc29sZS1mb3JtYXR0ZWQtZXJyb3Is
IC5jb25zb2xlLWZvcm1hdHRlZC1tYXAsIC5jb25zb2xlLWZvcm1hdHRlZC1zZXQsIC5jb25zb2xl
LWZvcm1hdHRlZC13ZWFrbWFwIHsKICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOwotICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgdmVydGljYWwt
YWxpZ246IGJhc2VsaW5lOwogICAgIGNvbG9yOiBibGFjazsKIH0KIApAQCAtMzkyLDEwICs0MDAs
NiBAQAogICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogfQogCi0ub3V0bGluZS1kaXNjbG9z
dXJlIHsKLSAgICBmb250LXNpemU6IDExcHg7Ci19Ci0KIC5vdXRsaW5lLWRpc2Nsb3N1cmUgPiBv
bCB7CiAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgIHBhZGRpbmc6IDJweCA2cHggIWltcG9y
dGFudDsKQEAgLTQxMyw4ICs0MTcsOCBAQAogCiAub3V0bGluZS1kaXNjbG9zdXJlIGxpIHsKICAg
ICBwYWRkaW5nOiAwIDAgMCAxNHB4OwotICAgIG1hcmdpbi10b3A6IDFweDsKLSAgICBtYXJnaW4t
Ym90dG9tOiAxcHg7CisgICAgbWFyZ2luLXRvcDogMDsKKyAgICBtYXJnaW4tYm90dG9tOiAycHg7
CiAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7CiAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogfQpA
QCAtNDM5LDcgKzQ0Myw3IEBACiAgICAgd2lkdGg6IDhweDsKICAgICBoZWlnaHQ6IDhweDsKIAot
ICAgIG1hcmdpbi10b3A6IDJweDsKKyAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgcGFkZGluZy1y
aWdodDogMnB4OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCmluZGV4IDBjMTllMjMuLjE5NTU1
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0xvZ0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCkBAIC0yNzAsNyArMjcwLDcgQEAgV2ViSW5zcGVj
dG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAob25seVNlbGVj
dGVkKSB7CiAgICAgICAgICAgICBtZXNzYWdlcyA9IHRoaXMuX2FsbE1lc3NhZ2VzKCkuZmlsdGVy
KGZ1bmN0aW9uKG1lc3NhZ2UpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZS5wYXJl
bnROb2RlLmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2Vs
ZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UuY2xh
c3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxl
Q2xhc3NOYW1lKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKQEAgLTM5Miw4ICszOTIs
OSBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICBz
ZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7CiAKICAgICAgICAgaWYgKCF0aGlzLl9tb3VzZU1v
dmVJc1Jvd1NlbGVjdGlvbikKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU1lc3NhZ2VzU2VsZWN0
aW9uKHRoaXMuX21vdXNlRG93bldyYXBwZXIubWVzc2FnZUVsZW1lbnQsIHRoaXMuX21vdXNlRG93
bkNvbW1hbmRLZXksIHRoaXMuX21vdXNlRG93blNoaWZ0S2V5KTsKLSAgICAgICAgdGhpcy5fdXBk
YXRlTWVzc2FnZXNTZWxlY3Rpb24od3JhcHBlci5tZXNzYWdlRWxlbWVudCwgZmFsc2UsIHRydWUp
OworICAgICAgICAgICAgdGhpcy5fdXBkYXRlTWVzc2FnZXNTZWxlY3Rpb24odGhpcy5fbW91c2VE
b3duV3JhcHBlciwgdGhpcy5fbW91c2VEb3duQ29tbWFuZEtleSwgdGhpcy5fbW91c2VEb3duU2hp
ZnRLZXkpOworCisgICAgICAgIHRoaXMuX3VwZGF0ZU1lc3NhZ2VzU2VsZWN0aW9uKHdyYXBwZXIs
IGZhbHNlLCB0cnVlKTsKIAogICAgICAgICB0aGlzLl9tb3VzZU1vdmVJc1Jvd1NlbGVjdGlvbiA9
IHRydWU7CiAKQEAgLTQxMiwxMCArNDEzLDkgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHdyYXBwZXIgJiYgKHNlbGVjdGlvbi5pc0NvbGxh
cHNlZCB8fCBldmVudC5zaGlmdEtleSkpIHsKICAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVB
bGxSYW5nZXMoKTsKIAotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSB3cmFwcGVyLm1lc3NhZ2VF
bGVtZW50OwotICAgICAgICAgICAgaWYgKHRoaXMuX3RhcmdldEluTWVzc2FnZUNhbkJlU2VsZWN0
ZWQoZXZlbnQudGFyZ2V0LCBtZXNzYWdlKSkgeworICAgICAgICAgICAgaWYgKHRoaXMuX3Rhcmdl
dEluTWVzc2FnZUNhbkJlU2VsZWN0ZWQoZXZlbnQudGFyZ2V0LCB3cmFwcGVyKSkgewogICAgICAg
ICAgICAgICAgIHZhciBzYW1lV3JhcHBlciA9IHdyYXBwZXIgPT09IHRoaXMuX21vdXNlRG93bldy
YXBwZXI7Ci0gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTWVzc2FnZXNTZWxlY3Rpb24obWVz
c2FnZSwgc2FtZVdyYXBwZXIgPyB0aGlzLl9tb3VzZURvd25Db21tYW5kS2V5IDogZmFsc2UsIHNh
bWVXcmFwcGVyID8gdGhpcy5fbW91c2VEb3duU2hpZnRLZXkgOiB0cnVlKTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl91cGRhdGVNZXNzYWdlc1NlbGVjdGlvbih3cmFwcGVyLCBzYW1lV3JhcHBlciA/
IHRoaXMuX21vdXNlRG93bkNvbW1hbmRLZXkgOiBmYWxzZSwgc2FtZVdyYXBwZXIgPyB0aGlzLl9t
b3VzZURvd25TaGlmdEtleSA6IHRydWUpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ug
aWYgKCFzZWxlY3Rpb24uaXNDb2xsYXBzZWQpIHsKICAgICAgICAgICAgIC8vIFRoZXJlIGlzIGEg
dGV4dCBzZWxlY3Rpb24sIGNsZWFyIHRoZSByb3cgc2VsZWN0aW9uLgpAQCAtNDU4LDcgKzQ1OCw3
IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICB2YXIgYWxyZWFkeVNlbGVjdGVkTWVzc2FnZSA9IHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMu
Y29udGFpbnMobWVzc2FnZSk7CiAgICAgICAgIGlmIChhbHJlYWR5U2VsZWN0ZWRNZXNzYWdlICYm
IHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMubGVuZ3RoICYmIG11bHRpcGxlU2VsZWN0aW9uKSB7Ci0g
ICAgICAgICAgICBtZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICBt
ZXNzYWdlLmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVj
dGVkU3R5bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5y
ZW1vdmUobWVzc2FnZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTQ4Miwx
OCArNDgyLDE4IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAK
ICAgICAgICAgICAgIGZvciAodmFyIGkgPSBzdGFydEluZGV4OyBpIDw9IGVuZEluZGV4OyArK2kp
IHsKICAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZUluUmFuZ2UgPSBtZXNzYWdlc1tpXTsKLSAg
ICAgICAgICAgICAgICBpZiAoaSA+PSBuZXdSYW5nZVswXSAmJiBpIDw9IG5ld1JhbmdlWzFdICYm
ICFtZXNzYWdlSW5SYW5nZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZUluUmFuZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKFdlYkluc3Bl
Y3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAg
ICAgICBpZiAoaSA+PSBuZXdSYW5nZVswXSAmJiBpIDw9IG5ld1JhbmdlWzFdICYmICFtZXNzYWdl
SW5SYW5nZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNl
bGVjdGVkU3R5bGVDbGFzc05hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJblJh
bmdlLmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5
bGVDbGFzc05hbWUpOwogICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZE1lc3NhZ2Vz
LnB1c2gobWVzc2FnZUluUmFuZ2UpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA8IG5l
d1JhbmdlWzBdIHx8IGkgPiBuZXdSYW5nZVsxXSAmJiBtZXNzYWdlSW5SYW5nZS5wYXJlbnROb2Rl
LmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRT
dHlsZUNsYXNzTmFtZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUluUmFuZ2UucGFy
ZW50Tm9kZS5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxl
Y3RlZFN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPCBuZXdS
YW5nZVswXSB8fCBpID4gbmV3UmFuZ2VbMV0gJiYgbWVzc2FnZUluUmFuZ2UuY2xhc3NMaXN0LmNv
bnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1l
KSkgeworICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSW5SYW5nZS5jbGFzc0xpc3QucmVtb3Zl
KFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKICAg
ICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRNZXNzYWdlcy5yZW1vdmUobWVzc2FnZUlu
UmFuZ2UpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
dGhpcy5fc2VsZWN0aW9uUmFuZ2UgPSBuZXdSYW5nZTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5Mb2dD
b250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIG1lc3NhZ2Uu
Y2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHlsZUNs
YXNzTmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZE1lc3NhZ2VzLnB1c2gobWVzc2Fn
ZSk7CiAgICAgICAgIH0KIApAQCAtNTM1LDcgKzUzNSw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBfaXNNZXNzYWdlVmlzaWJsZTogZnVuY3Rpb24o
bWVzc2FnZSkKICAgICB7Ci0gICAgICAgIHZhciBub2RlID0gbWVzc2FnZS5wYXJlbnROb2RlOwor
ICAgICAgICB2YXIgbm9kZSA9IG1lc3NhZ2U7CiAKICAgICAgICAgaWYgKG5vZGUuY2xhc3NMaXN0
LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5GaWx0ZXJlZE91dFN0eWxlQ2xh
c3NOYW1lKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTU1NywxMyArNTU3LDEzIEBA
IFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBfaXNNZXNz
YWdlU2VsZWN0ZWQ6IGZ1bmN0aW9uKG1lc3NhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gbWVz
c2FnZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29udGVu
dFZpZXcuU2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgIHJldHVybiBtZXNzYWdlLmNs
YXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcuU2VsZWN0ZWRTdHls
ZUNsYXNzTmFtZSk7CiAgICAgfSwKIAogICAgIF9jbGVhck1lc3NhZ2VzU2VsZWN0aW9uOiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9zZWxlY3RlZE1lc3NhZ2VzLmZvckVhY2goZnVu
Y3Rpb24obWVzc2FnZSkgewotICAgICAgICAgICAgbWVzc2FnZS5wYXJlbnROb2RlLmNsYXNzTGlz
dC5yZW1vdmUoV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LlNlbGVjdGVkU3R5bGVDbGFzc05h
bWUpOworICAgICAgICAgICAgbWVzc2FnZS5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5M
b2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgfSk7CiAgICAg
ICAgIHRoaXMuX3NlbGVjdGVkTWVzc2FnZXMgPSBbXTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3Jl
ZmVyZW5jZU1lc3NhZ2VGb3JSYW5nZVNlbGVjdGlvbjsKQEAgLTU3Niw3ICs1NzYsNyBAQCBXZWJJ
bnNwZWN0b3IuTG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgbWVzc2Fn
ZXMgPSB0aGlzLl92aXNpYmxlTWVzc2FnZXMoKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBtZXNzYWdlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBtZXNz
YWdlc1tpXTsKLSAgICAgICAgICAgIG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKFdl
Ykluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5TZWxlY3RlZFN0eWxlQ2xhc3NOYW1lKTsKKyAgICAg
ICAgICAgIG1lc3NhZ2UuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
U2VsZWN0ZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZE1lc3Nh
Z2VzLnB1c2gobWVzc2FnZSk7CiAgICAgICAgIH0KICAgICB9LApAQCAtNTg5LDcgKzU4OSw3IEBA
IFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgX3VuZmlsdGVy
ZWRNZXNzYWdlczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2FsbE1l
c3NhZ2VzKCkuZmlsdGVyKGZ1bmN0aW9uKG1lc3NhZ2UpIHsKLSAgICAgICAgICAgIHJldHVybiAh
bWVzc2FnZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0b3IuTG9nQ29u
dGVudFZpZXcuRmlsdGVyZWRPdXRTdHlsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICByZXR1cm4g
IW1lc3NhZ2UuY2xhc3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5G
aWx0ZXJlZE91dFN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgfSk7CiAgICAgfSwKIApAQCAtNjAx
LDcgKzYwMSw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICByZXR1cm4gdW5maWx0ZXJlZE1lc3NhZ2VzOwogCiAgICAgICAgIHJldHVybiB1
bmZpbHRlcmVkTWVzc2FnZXMuZmlsdGVyKGZ1bmN0aW9uKG1lc3NhZ2UpIHsKLSAgICAgICAgICAg
IHJldHVybiAhbWVzc2FnZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5jb250YWlucyhXZWJJbnNwZWN0
b3IuTG9nQ29udGVudFZpZXcuRmlsdGVyZWRPdXRCeVNlYXJjaFN0eWxlQ2xhc3NOYW1lKTsKKyAg
ICAgICAgICAgIHJldHVybiAhbWVzc2FnZS5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3LkZpbHRlcmVkT3V0QnlTZWFyY2hTdHlsZUNsYXNzTmFtZSk7CiAgICAg
ICAgIH0pOwogICAgIH0sCiAKQEAgLTY1Myw3ICs2NTMsNyBAQCBXZWJJbnNwZWN0b3IuTG9nQ29u
dGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgdmFyIGNsYXNzTGlzdCA9IG1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xp
c3Q7CisgICAgICAgICAgICB2YXIgY2xhc3NMaXN0ID0gbWVzc2FnZS5jbGFzc0xpc3Q7CiAgICAg
ICAgICAgICBpZiAodmlzaWJsZSkKICAgICAgICAgICAgICAgICBjbGFzc0xpc3QucmVtb3ZlKFdl
Ykluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5GaWx0ZXJlZE91dFN0eWxlQ2xhc3NOYW1lKTsKICAg
ICAgICAgICAgIGVsc2UgewpAQCAtNzU5LDcgKzc1OSw3IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250
ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIGN1cnJlbnRNZXNzYWdlID0gdGhp
cy5fc2VsZWN0ZWRNZXNzYWdlc1swXTsKICAgICAgICAgaWYgKGN1cnJlbnRNZXNzYWdlLmNsYXNz
TGlzdC5jb250YWlucygiY29uc29sZS1ncm91cC10aXRsZSIpKQotICAgICAgICAgICAgY3VycmVu
dE1lc3NhZ2UucGFyZW50Tm9kZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIp
OworICAgICAgICAgICAgY3VycmVudE1lc3NhZ2UucGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKCJj
b2xsYXBzZWQiKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICB2YXIgb3V0bGluZVRpdGxl
ID0gY3VycmVudE1lc3NhZ2UucXVlcnlTZWxlY3Rvcigib2wub3V0bGluZS1kaXNjbG9zdXJlID4g
bGkucGFyZW50Iik7CiAgICAgICAgICAgICBpZiAob3V0bGluZVRpdGxlKSB7CkBAIC03ODIsNyAr
NzgyLDcgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICB2YXIgY3VycmVudE1lc3NhZ2UgPSB0aGlzLl9zZWxlY3RlZE1lc3NhZ2VzWzBdOwogICAg
ICAgICBpZiAoY3VycmVudE1lc3NhZ2UuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb25zb2xlLWdyb3Vw
LXRpdGxlIikpCi0gICAgICAgICAgICBjdXJyZW50TWVzc2FnZS5wYXJlbnROb2RlLnBhcmVudE5v
ZGUuY2xhc3NMaXN0LnJlbW92ZSgiY29sbGFwc2VkIik7CisgICAgICAgICAgICBjdXJyZW50TWVz
c2FnZS5wYXJlbnROb2RlLmNsYXNzTGlzdC5yZW1vdmUoImNvbGxhcHNlZCIpOwogICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgIHZhciBvdXRsaW5lVGl0bGUgPSBjdXJyZW50TWVzc2FnZS5xdWVy
eVNlbGVjdG9yKCJvbC5vdXRsaW5lLWRpc2Nsb3N1cmUgPiBsaS5wYXJlbnQiKTsKICAgICAgICAg
ICAgIGlmIChvdXRsaW5lVGl0bGUpIHsKQEAgLTgxMyw3ICs4MTMsNyBAQCBXZWJJbnNwZWN0b3Iu
TG9nQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgc2VjdGlvbiA9IGV2ZW50
LnRhcmdldDsKICAgICAgICAgc2VjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5TZWN0aW9uLkV2ZW50LlZpc2libGVDb250ZW50RGlkQ2hhbmdlLCB0aGlzLl9wcm9wZXJ0aWVz
U2VjdGlvbkRpZFVwZGF0ZUNvbnRlbnQsIHRoaXMpOwogCi0gICAgICAgIHZhciBtZXNzYWdlID0g
c2VjdGlvbi5lbGVtZW50LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoV2ViSW5zcGVjdG9y
LkxvZ0NvbnRlbnRWaWV3Lkl0ZW1XcmFwcGVyU3R5bGVDbGFzc05hbWUpLm1lc3NhZ2VFbGVtZW50
OworICAgICAgICB2YXIgbWVzc2FnZSA9IHNlY3Rpb24uZWxlbWVudC5lbmNsb3NpbmdOb2RlT3JT
ZWxmV2l0aENsYXNzKFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmlldy5JdGVtV3JhcHBlclN0eWxl
Q2xhc3NOYW1lKTsKICAgICAgICAgaWYgKCF0aGlzLl9pc01lc3NhZ2VTZWxlY3RlZChtZXNzYWdl
KSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtODg2LDcgKzg4Niw3IEBAIFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAoIWlzRW1wdHlP
YmplY3QobWF0Y2hSYW5nZXMpKQogICAgICAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFJhbmdl
cyhtZXNzYWdlLCBtYXRjaFJhbmdlcyk7CiAKLSAgICAgICAgICAgIHZhciBjbGFzc0xpc3QgPSBt
ZXNzYWdlLnBhcmVudE5vZGUuY2xhc3NMaXN0OworICAgICAgICAgICAgdmFyIGNsYXNzTGlzdCA9
IG1lc3NhZ2UuY2xhc3NMaXN0OwogICAgICAgICAgICAgaWYgKCFpc0VtcHR5T2JqZWN0KG1hdGNo
UmFuZ2VzKSB8fCBtZXNzYWdlLmNvbW1hbmQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ29uc29s
ZUNvbW1hbmQgfHwgbWVzc2FnZS5tZXNzYWdlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnNv
bGVDb21tYW5kUmVzdWx0KQogICAgICAgICAgICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoV2ViSW5z
cGVjdG9yLkxvZ0NvbnRlbnRWaWV3LkZpbHRlcmVkT3V0QnlTZWFyY2hTdHlsZUNsYXNzTmFtZSk7
CiAgICAgICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9TZWN0aW9uLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NlY3Rpb24uY3NzCmluZGV4IDI5OWZjMDUuLmZkZjI2ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlY3Rpb24u
Y3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlY3Rp
b24uY3NzCkBAIC0zNiwyMiArMzYsMjIgQEAKICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmc7
CiB9CiAKLS5zZWN0aW9uIC5oZWFkZXI6OmJlZm9yZSB7Ci0gICAgcG9zaXRpb246IGFic29sdXRl
OwotICAgIHRvcDogNXB4OwotICAgIGxlZnQ6IDdweDsKLQorLnNlY3Rpb24gLmhlYWRlciAudGl0
bGU6OmJlZm9yZSB7CiAgICAgd2lkdGg6IDhweDsKICAgICBoZWlnaHQ6IDhweDsKIAorICAgIG1h
cmdpbi1yaWdodDogNHB4OworICAgIG1hcmdpbi1sZWZ0OiAtOHB4OworCiAgICAgYmFja2dyb3Vu
ZC1pbWFnZTogLXdlYmtpdC1jYW52YXMoZGlzY2xvc3VyZS10cmlhbmdsZS10aW55LWNsb3NlZC1u
b3JtYWwpOwogICAgIGJhY2tncm91bmQtc2l6ZTogOHB4IDhweDsKICAgICBiYWNrZ3JvdW5kLXJl
cGVhdDogbm8tcmVwZWF0OwogCi0gICAgY29udGVudDogIiI7CisgICAgY29udGVudDogIiAiOwor
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIH0KIAotLnNlY3Rpb24uZXhwYW5kZWQgLmhlYWRl
cjo6YmVmb3JlIHsKKy5zZWN0aW9uLmV4cGFuZGVkIC5oZWFkZXIgLnRpdGxlOjpiZWZvcmUgewog
ICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtY2FudmFzKGRpc2Nsb3N1cmUtdHJpYW5nbGUt
dGlueS1vcGVuLW5vcm1hbCk7CiB9CiAKQEAgLTU5LDcgKzU5LDcgQEAKICAgICBmb250LXdlaWdo
dDogbm9ybWFsOwogICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICB3aGl0ZS1zcGFjZTog
bm9ybWFsOwotICAgIGxpbmUtaGVpZ2h0OiAxOHB4OworICAgIGxpbmUtaGVpZ2h0OiAxOHB4OyAv
KiBARklYTUU6IERvbid0IGhhcmRjb2RlIGxpbmUtaGVpZ2h0LiAqLwogfQogCiAuc2VjdGlvbiAu
aGVhZGVyIC50aXRsZS5ibGFuay10aXRsZSB7CkBAIC0xNDAsNyArMTQwLDcgQEAKICAgICB3aWR0
aDogOHB4OwogICAgIGhlaWdodDogOHB4OwogCi0gICAgbWFyZ2luLXRvcDogM3B4OworICAgIG1h
cmdpbi10b3A6IDJweDsKICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>