<?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>150729</bug_id>
          
          <creation_ts>2015-10-30 13:05:17 -0700</creation_ts>
          <short_desc>Web Inspector: Convert remaining ContentViews to View base class</short_desc>
          <delta_ts>2015-11-05 16:04:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>149186</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Baker">mattbaker</reporter>
          <assigned_to name="Matt Baker">mattbaker</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1137935</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-10-30 13:05:17 -0700</bug_when>
    <thetext>* SUMMARY
Convert remaining ContentViews to View base class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137937</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-10-30 13:06:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/23337412&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139481</commentid>
    <comment_count>2</comment_count>
      <attachid>264825</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-11-04 16:34:53 -0800</bug_when>
    <thetext>Created attachment 264825
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139692</commentid>
    <comment_count>3</comment_count>
      <attachid>264825</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-11-05 11:45:40 -0800</bug_when>
    <thetext>Comment on attachment 264825
[Patch] Proposed Fix

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

r- because you missed a few addSubview cases.

It would have been nice to review the database / apache changes separately, since the rest was mechanical.

&gt; Source/WebInspectorUI/UserInterface/Views/DatabaseContentView.js:95
&gt; +        this.prompt.updateLayout();

ConsolePrompt should be a subview.

&gt; Source/WebInspectorUI/UserInterface/Views/DatabaseContentView.js:98
&gt; +        for (let resultElement of results) {

What the heck is this old crap... :) we should be adding DataGrid as a subview and remove this whole function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139718</commentid>
    <comment_count>4</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-11-05 13:11:03 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 264825 [details]
&gt; [Patch] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=264825&amp;action=review
&gt; 
&gt; r- because you missed a few addSubview cases.
&gt; 
&gt; It would have been nice to review the database / apache changes separately,
&gt; since the rest was mechanical.

Noted. I suspected as much during refactoring, and will remove from the follow up.

&gt; &gt; Source/WebInspectorUI/UserInterface/Views/DatabaseContentView.js:95
&gt; &gt; +        this.prompt.updateLayout();
&gt; 
&gt; ConsolePrompt should be a subview.

The only other view using ConsolePrompt is the QuickConsole, which adds it as a subview. In this case, the prompt element is wrapped in another DOM element, which is why it can&apos;t be added directly as a subview.

A possible solution is to extend ConsolePrompt, creating DatabaseConsolePrompt. It would be slightly awkward swapping out View.prototype._element with the wrapper element from the derived class, but it would work:

class DatabaseConsolePrompt extends ConsolePrompt
{
    constructor(delegate, mimeType)
    {
        super(delegate, mimeType);

        let wrapperElement = document.createElement(&quot;div&quot;);
        wrapperElement.__view = this;
        wrapperElement.classList.add(&quot;database-query-prompt&quot;);
        wrapperElement.appendChild(this.element);

        delete this.element.__view;
        this._element = wrapperElement;
    }
};

We could support wrapper elements directly in the View base class with the following protected method:

class View
{
    // Protected

    insertRootElement(element)
    {
        console.assert(!this._element.parentNode);

        let oldRootElement = this._element;
        oldRootElement.__view = undefined;

        element.appendChild(oldRootElement);
        element.__view = this.
        this._element = element;
    }
};

Then:

class DatabaseConsolePrompt extends ConsolePrompt
{
    constructor(delegate, mimeType)
    {
        super(delegate, mimeType);

        let wrapperElement = document.createElement(&quot;div&quot;);
        wrapperElement.classList.add(&quot;database-query-prompt&quot;);

        this.insertRootElement(wrapperElement);
    }
};

&gt; &gt; Source/WebInspectorUI/UserInterface/Views/DatabaseContentView.js:98
&gt; &gt; +        for (let resultElement of results) {
&gt; 
&gt; What the heck is this old crap... :) we should be adding DataGrid as a
&gt; subview and remove this whole function.

I&apos;ll look into it. Not sure how this is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139724</commentid>
    <comment_count>5</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-11-05 13:23:59 -0800</bug_when>
    <thetext>Actually, wrapping the View&apos;s DOM element from a derived class will be problematic. Superclasses between View and the most derived class would be operating on a different DOM element than the one they expect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139735</commentid>
    <comment_count>6</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-11-05 13:37:36 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 264825 [details]
&gt; &gt; [Patch] Proposed Fix
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=264825&amp;action=review
&gt; &gt; 
&gt; &gt; r- because you missed a few addSubview cases.
&gt; &gt; 
&gt; &gt; It would have been nice to review the database / apache changes separately,
&gt; &gt; since the rest was mechanical.
&gt; 
&gt; Noted. I suspected as much during refactoring, and will remove from the
&gt; follow up.
&gt; 
&gt; &gt; &gt; Source/WebInspectorUI/UserInterface/Views/DatabaseContentView.js:95
&gt; &gt; &gt; +        this.prompt.updateLayout();
&gt; &gt; 
&gt; &gt; ConsolePrompt should be a subview.
&gt; 
&gt; The only other view using ConsolePrompt is the QuickConsole, which adds it
&gt; as a subview. In this case, the prompt element is wrapped in another DOM
&gt; element, which is why it can&apos;t be added directly as a subview.
&gt; 
&gt; A possible solution is to extend ConsolePrompt, creating
&gt; DatabaseConsolePrompt. It would be slightly awkward swapping out
&gt; View.prototype._element with the wrapper element from the derived class, but
&gt; it would work:
&gt; 
&gt; class DatabaseConsolePrompt extends ConsolePrompt
&gt; {
&gt;     constructor(delegate, mimeType)
&gt;     {
&gt;         super(delegate, mimeType);
&gt; 
&gt;         let wrapperElement = document.createElement(&quot;div&quot;);
&gt;         wrapperElement.__view = this;
&gt;         wrapperElement.classList.add(&quot;database-query-prompt&quot;);
&gt;         wrapperElement.appendChild(this.element);
&gt; 
&gt;         delete this.element.__view;
&gt;         this._element = wrapperElement;
&gt;     }
&gt; };
&gt; 
&gt; We could support wrapper elements directly in the View base class with the
&gt; following protected method:
&gt; 

Uh, that sounds complicated. Can we just straighten out the Database DOM tree, possibly in a followup patch if it will delay this much longer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139782</commentid>
    <comment_count>7</comment_count>
      <attachid>264890</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-11-05 14:56:44 -0800</bug_when>
    <thetext>Created attachment 264890
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139795</commentid>
    <comment_count>8</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-11-05 15:11:23 -0800</bug_when>
    <thetext>DatabaseContentView is being refactored under https://bugs.webkit.org/show_bug.cgi?id=150959.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139806</commentid>
    <comment_count>9</comment_count>
      <attachid>264890</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-11-05 15:15:51 -0800</bug_when>
    <thetext>Comment on attachment 264890
[Patch] Proposed Fix

r=me, nice work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139817</commentid>
    <comment_count>10</comment_count>
      <attachid>264890</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-05 16:04:54 -0800</bug_when>
    <thetext>Comment on attachment 264890
[Patch] Proposed Fix

Clearing flags on attachment: 264890

Committed r192086: &lt;http://trac.webkit.org/changeset/192086&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139818</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-05 16:04:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264825</attachid>
            <date>2015-11-04 16:34:53 -0800</date>
            <delta_ts>2015-11-05 14:56:41 -0800</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-150729-20151104163355.patch</filename>
            <type>text/plain</type>
            <size>37995</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA5
M2YzMTM1MWNkMWUyYmUyNDE2NDc0MTljOTZjYzYzNTU5NTBkZGU3Li5lMGVkYzMzYjI1M2I3MzQx
YWMxMzVmNDc4ZTliNTg3ZThhMGM5ZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NiBAQAorMjAxNS0xMS0wNCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29udmVydCByZW1haW5pbmcgQ29udGVudFZpZXdz
IHRvIFZpZXcgYmFzZSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUwNzI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gcmV1c2UgVmlldyBmZWF0dXJlcyBpbiBDb250ZW50
Vmlld3M6IHJlbW92ZWQgdXBkYXRlTGF5b3V0IGFuZAorICAgICAgICBlbGVtZW50IGdldHRlcnMs
IGFuZCBtYWRlIHVzZSBvZiBWaWV3LnByb3RvdHlwZS5hZGRTdWJ2aWV3IGFuZCByZW1vdmVTdWJ2
aWV3CisgICAgICAgIHdoZXJlIGFwcHJvcHJpYXRlLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5zdGF0dXNDaGFuZ2Vk
Q2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZUNv
bnRlbnRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVD
b250ZW50Vmlldy5wcm90b3R5cGUuX21heWJlVXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5wcm90b3R5cGUuX3VwZGF0ZVN0YXR1
cyk6CisgICAgICAgIFRoaXMgY2xhc3MgY29udGFpbmVkIG1ldGhvZHMgdXBkYXRlU3RhdHVzIGFu
ZCBfdXBkYXRlU3RhdHVzLiBUbyBhdm9pZCBjb25mdXNpb24sCisgICAgICAgIHRoZSBvcmlnaW5h
bCBfdXBkYXRlU3RhdHVzIHdhcyByZWxvY2F0ZWQgdG8gdGhlIGNvbnN0cnVjdG9yIGJvZHkgYXMg
YSBjYWxsYmFjaworICAgICAgICBmdW5jdGlvbiBhbmQgcmVuYW1lZCBzdGF0dXNDaGFuZ2VkQ2Fs
bGJhY2suCisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVu
dFZpZXcucHJvdG90eXBlLl91cGRhdGVDYWxsYmFjayk6CisgICAgICAgIENsZWFuZWQgdXAgdW51
c2VkIHZhcmlhYmxlcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJh
bWVDb250ZW50Vmlldy5wcm90b3R5cGUuX2NyZWF0ZURhdGFHcmlkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5wcm90b3R5cGUuX21hcmtE
aXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIFJlbW92ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZVN0YXR1cyk6
IERlbGV0ZWQuCisgICAgICAgIFJlbmFtZWQgdG8gX3VwZGF0ZVN0YXR1cywgbWFkZSBwcml2YXRl
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3
LnByb3RvdHlwZS5fdXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgTWVyZ2VkIGludG8gX21heWJl
VXBkYXRlLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRl
bnRWaWV3LnByb3RvdHlwZS5fZGVsZXRlQnV0dG9uQ2xpY2tlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcucHJvdG90eXBl
Ll9kZWxldGVDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIENsZWFuZWQgdXAgZGVhZCBjb2Rl
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DbHVzdGVyQ29udGVudFZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2x1c3RlckNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5DbHVzdGVyQ29udGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERl
bGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0Nvb2tpZVN0b3JhZ2VDb250
ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVTdG9yYWdlQ29udGVudFZp
ZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5wcm90
b3R5cGUuX3VwZGF0ZS5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llU3Rv
cmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5fdXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db29raWVTdG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWJ1aWxkVGFibGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5wcm90b3R5cGUuX2Rl
bGV0ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVTdG9yYWdlQ29udGVu
dFZpZXcucHJvdG90eXBlLl9yZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZS51cGRhdGUuY2FsbGJhY2sp
OiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3JhZ2VDb250ZW50Vmll
dy5wcm90b3R5cGUudXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgUmVuYW1lZCB0byBfdXBkYXRl
LCBtYWRlIHByaXZhdGUuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llU3RvcmFnZUNvbnRl
bnRWaWV3LnByb3RvdHlwZS51cGRhdGVMYXlvdXQpOiBEZWxldGVkLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9ET01TdG9yYWdlQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01TdG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0ZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlQ29udGVudFZpZXcuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVDb250ZW50Vmlldy5wcm90b3R5cGUudXBkYXRl
TGF5b3V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFiYXNl
Q29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2VDb250ZW50Vmll
dy5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZUNvbnRl
bnRWaWV3LnByb3RvdHlwZS51cGRhdGVMYXlvdXQpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvRGF0YWJhc2VUYWJsZUNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRhdGFiYXNlVGFibGVDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGF0YWJhc2VUYWJsZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5fcXVlcnlGaW5pc2hlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2VUYWJsZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5f
cXVlcnlFcnJvcik6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Gb250UmVzb3VyY2VD
b250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb250UmVzb3VyY2VDb250ZW50
Vmlldy5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb250UmVzb3Vy
Y2VDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRm9udFJlc291cmNlQ29udGVu
dFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkluZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZp
ZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkluZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29u
dGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0ZWQuCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Mb2dDb250ZW50Vmlldy5wcm90b3R5cGUudXBkYXRlTGF5b3V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtHcmlkQ29udGVudFZpZXcuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0dyaWRDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmV0d29ya0dyaWRDb250ZW50Vmlldy5wcm90b3R5cGUubmVlZHNMYXlvdXQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtHcmlkQ29udGVudFZpZXcucHJvdG90eXBlLmxh
eW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0dyaWRDb250ZW50Vmlldy5wcm90
b3R5cGUudXBkYXRlTGF5b3V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL1NjcmlwdENvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdENv
bnRlbnRWaWV3LnByb3RvdHlwZS5fY29udGVudFdpbGxQb3B1bGF0ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0Q29udGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0
ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UZXh0Q29udGVudFZpZXcuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dENvbnRlbnRWaWV3KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXh0Q29udGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0ZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3Iu
cHJvdG90eXBlLmxheW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90
b3R5cGUuZ2V0IGVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3IucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlLmxheW91dCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90
b3R5cGUuX2N1cnJlbnRDb250ZW50Vmlld0RpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5cGUudXBkYXRlTGF5b3V0KTog
RGVsZXRlZC4KKwogMjAxNS0xMS0wNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlYkluc3BlY3Rvci5Db2xvciBzaG91bGQg
c3VwcG9ydCAjcmdiYSBhbmQgI3JyZ2diYmFhIHN5bnRheApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29u
dGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9B
cHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcwppbmRleCAwMTg2ZGMzNWRkNzBiODU5
ZTA0YzUzZGQ1ODFjN2RiZDNhOGEzNWEzLi44ZDgyZmM1ZDkyN2Y5MWY4MGFkMjU5NjdiN2UxYzk1
ZTYwNmY2YjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVD
b250ZW50Vmlldy5qcwpAQCAtMzMsMTggKzMzLDI3IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlv
bkNhY2hlRnJhbWVDb250ZW50VmlldyA9IGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRl
CiAKICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImFwcGxpY2F0aW9uLWNhY2hl
LWZyYW1lIiwgInRhYmxlIik7CiAKLSAgICAgICAgdGhpcy5fZnJhbWUgPSByZXByZXNlbnRlZE9i
amVjdC5mcmFtZTsKLQogICAgICAgICB0aGlzLl9lbXB0eVZpZXcgPSBXZWJJbnNwZWN0b3IuY3Jl
YXRlTWVzc2FnZVRleHRWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm8gQXBwbGljYXRpb24g
Q2FjaGUgaW5mb3JtYXRpb24gYXZhaWxhYmxlIiksIGZhbHNlKTsKICAgICAgICAgdGhpcy5fZW1w
dHlWaWV3LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpOwogICAgICAgICB0aGlzLmVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fZW1wdHlWaWV3KTsKIAotICAgICAgICB0aGlzLl9tYXJrRGlydHkoKTsK
KyAgICAgICAgdGhpcy5fdmlld0RpcnR5ID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fcmVzb3VyY2Vz
ID0gbnVsbDsKKworICAgICAgICB0aGlzLl91cGRhdGVTdGF0dXMocmVwcmVzZW50ZWRPYmplY3Qu
c3RhdHVzKTsKKworICAgICAgICBmdW5jdGlvbiBzdGF0dXNDaGFuZ2VkQ2FsbGJhY2soZXZlbnQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGxldCBmcmFtZU1hbmlmZXN0ID0gZXZlbnQuZGF0YS5m
cmFtZU1hbmlmZXN0OworICAgICAgICAgICAgaWYgKGZyYW1lTWFuaWZlc3QgIT09IHRoaXMucmVw
cmVzZW50ZWRPYmplY3QpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBj
b25zb2xlLmFzc2VydChmcmFtZU1hbmlmZXN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkFwcGxp
Y2F0aW9uQ2FjaGVGcmFtZSk7CiAKLSAgICAgICAgdmFyIHN0YXR1cyA9IHJlcHJlc2VudGVkT2Jq
ZWN0LnN0YXR1czsKLSAgICAgICAgdGhpcy51cGRhdGVTdGF0dXMoc3RhdHVzKTsKKyAgICAgICAg
ICAgIHRoaXMuX3VwZGF0ZVN0YXR1cyhmcmFtZU1hbmlmZXN0LnN0YXR1cyk7CisgICAgICAgIH0K
IAotICAgICAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25DYWNoZU1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuRXZlbnQuRnJhbWVN
YW5pZmVzdFN0YXR1c0NoYW5nZWQsIHRoaXMuX3VwZGF0ZVN0YXR1cywgdGhpcyk7CisgICAgICAg
IFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5FdmVudC5GcmFtZU1hbmlmZXN0U3Rh
dHVzQ2hhbmdlZCwgc3RhdHVzQ2hhbmdlZENhbGxiYWNrLmJpbmQodGhpcyksIHRoaXMpOwogICAg
IH0KIAogICAgIHNob3duKCkKQEAgLTc3LDU1ICs4NiwzMiBAQCBXZWJJbnNwZWN0b3IuQXBwbGlj
YXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcgPSBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlRnJhbWVD
b250ZQogICAgICAgICByZXR1cm4gW3RoaXMuX2RhdGFHcmlkLnNjcm9sbENvbnRhaW5lcl07CiAg
ICAgfQogCisgICAgLy8gUHJpdmF0ZQorCiAgICAgX21heWJlVXBkYXRlKCkKICAgICB7CiAgICAg
ICAgIGlmICghdGhpcy52aXNpYmxlIHx8ICF0aGlzLl92aWV3RGlydHkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgdGhpcy5fdXBkYXRlKCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5h
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5yZXF1ZXN0QXBwbGljYXRpb25DYWNoZSh0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LmZyYW1lLCB0aGlzLl91cGRhdGVDYWxsYmFjay5iaW5kKHRoaXMpKTsKICAg
ICAgICAgdGhpcy5fdmlld0RpcnR5ID0gZmFsc2U7CiAgICAgfQogCi0gICAgX21hcmtEaXJ0eSgp
Ci0gICAgewotICAgICAgICB0aGlzLl92aWV3RGlydHkgPSB0cnVlOwotICAgIH0KLQotICAgIF91
cGRhdGVTdGF0dXMoZXZlbnQpCi0gICAgewotICAgICAgICB2YXIgZnJhbWVNYW5pZmVzdCA9IGV2
ZW50LmRhdGEuZnJhbWVNYW5pZmVzdDsKLSAgICAgICAgaWYgKGZyYW1lTWFuaWZlc3QgIT09IHRo
aXMucmVwcmVzZW50ZWRPYmplY3QpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY29u
c29sZS5hc3NlcnQoZnJhbWVNYW5pZmVzdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5BcHBsaWNh
dGlvbkNhY2hlRnJhbWUpOwotCi0gICAgICAgIHRoaXMudXBkYXRlU3RhdHVzKGZyYW1lTWFuaWZl
c3Quc3RhdHVzKTsKLSAgICB9Ci0KLSAgICB1cGRhdGVTdGF0dXMoc3RhdHVzKQorICAgIF91cGRh
dGVTdGF0dXMoc3RhdHVzKQogICAgIHsKICAgICAgICAgdmFyIG9sZFN0YXR1cyA9IHRoaXMuX3N0
YXR1czsKICAgICAgICAgdGhpcy5fc3RhdHVzID0gc3RhdHVzOwogCiAgICAgICAgIGlmICh0aGlz
LnZpc2libGUgJiYgdGhpcy5fc3RhdHVzID09PSBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIuU3RhdHVzLklkbGUgJiYgKG9sZFN0YXR1cyA9PT0gV2ViSW5zcGVjdG9yLkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLlN0YXR1cy5VcGRhdGVSZWFkeSB8fCAhdGhpcy5fcmVzb3VyY2Vz
KSkKLSAgICAgICAgICAgIHRoaXMuX21hcmtEaXJ0eSgpOworICAgICAgICAgICAgdGhpcy5fdmll
d0RpcnR5ID0gdHJ1ZTsKIAogICAgICAgICB0aGlzLl9tYXliZVVwZGF0ZSgpOwogICAgIH0KIAot
ICAgIF91cGRhdGUoKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLnJlcXVlc3RBcHBsaWNhdGlvbkNhY2hlKHRoaXMuX2ZyYW1lLCB0aGlzLl91cGRh
dGVDYWxsYmFjay5iaW5kKHRoaXMpKTsKLSAgICB9Ci0KICAgICBfdXBkYXRlQ2FsbGJhY2soYXBw
bGljYXRpb25DYWNoZSkKICAgICB7CiAgICAgICAgIGlmICghYXBwbGljYXRpb25DYWNoZSB8fCAh
YXBwbGljYXRpb25DYWNoZS5tYW5pZmVzdFVSTCkgewotICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X21hbmlmZXN0OwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2NyZWF0aW9uVGltZTsKLSAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzLl91cGRhdGVUaW1lOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X3NpemU7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fcmVzb3VyY2VzOworICAgICAgICAgICAg
dGhpcy5fcmVzb3VyY2VzID0gbnVsbDsKIAogICAgICAgICAgICAgdGhpcy5fZW1wdHlWaWV3LmNs
YXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogCkBAIC0xMzQsMTEgKzEyMCw2IEBAIFdlYkluc3Bl
Y3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50VmlldyA9IGNsYXNzIEFwcGxpY2F0aW9u
Q2FjaGVGcmFtZUNvbnRlCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAg
ICAvLyBGSVhNRTogYXJlIHRoZXNlIHZhcmlhYmxlcyBuZWVkZWQgYW55d2hlcmUgZWxzZT8KLSAg
ICAgICAgdGhpcy5fbWFuaWZlc3QgPSBhcHBsaWNhdGlvbkNhY2hlLm1hbmlmZXN0VVJMOwotICAg
ICAgICB0aGlzLl9jcmVhdGlvblRpbWUgPSBhcHBsaWNhdGlvbkNhY2hlLmNyZWF0aW9uVGltZTsK
LSAgICAgICAgdGhpcy5fdXBkYXRlVGltZSA9IGFwcGxpY2F0aW9uQ2FjaGUudXBkYXRlVGltZTsK
LSAgICAgICAgdGhpcy5fc2l6ZSA9IGFwcGxpY2F0aW9uQ2FjaGUuc2l6ZTsKICAgICAgICAgdGhp
cy5fcmVzb3VyY2VzID0gYXBwbGljYXRpb25DYWNoZS5yZXNvdXJjZXM7CiAKICAgICAgICAgaWYg
KCF0aGlzLl9kYXRhR3JpZCkKQEAgLTE0Niw2ICsxMjcsMTAgQEAgV2ViSW5zcGVjdG9yLkFwcGxp
Y2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3ID0gY2xhc3MgQXBwbGljYXRpb25DYWNoZUZyYW1l
Q29udGUKIAogICAgICAgICB0aGlzLl9wb3B1bGF0ZURhdGFHcmlkKCk7CiAgICAgICAgIHRoaXMu
X2RhdGFHcmlkLmF1dG9TaXplQ29sdW1ucygyMCwgODApOworCisgICAgICAgIC8vIEZJWE1FOiB1
c2UgVmlldy5wcm90b3R5cGUudmlzaWJsZSBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNTA3
NDE+IGlzIGZpeGVkLgorICAgICAgICAvLyBBbHRlcm5hdGl2ZWx5IHdlIGNvdWxkIGNyZWF0ZSBh
IE1lc3NhZ2VUZXh0VmlldyBjbGFzcyBhbmQgdXNlIFZpZXcucHJvdG90eXBlLnJlcGxhY2VTdWJ2
aWV3LAorICAgICAgICAvLyBidXQgaXQgbWF5IGJlIG1vcmUgZWZmaWNpZW50IHRvIGtlZXAgdGhl
IHZpZXdzIGluIHRoZSBET00gYW5kIGp1c3QgY2hhbmdlIHZpc2liaWxpdHkuCiAgICAgICAgIHRo
aXMuX2RhdGFHcmlkLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7CiAKICAgICAg
ICAgdGhpcy5fZW1wdHlWaWV3LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpOwpAQCAtMTcxLDcgKzE1
Niw3IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50VmlldyA9IGNs
YXNzIEFwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlCiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnNv
cnRDb2x1bW5JZGVudGlmaWVyID0gInVybCI7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnNvcnRP
cmRlciA9IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5Tb3J0T3JkZXIuQXNjZW5kaW5nOwogCi0gICAg
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kYXRhR3JpZC5lbGVtZW50KTsKKyAg
ICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2RhdGFHcmlkKTsKICAgICAgICAgdGhpcy5fZGF0
YUdyaWQudXBkYXRlTGF5b3V0KCk7CiAgICAgfQogCkBAIC0yMTEsMjAgKzE5Niw0IEBAIFdlYklu
c3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50VmlldyA9IGNsYXNzIEFwcGxpY2F0
aW9uQ2FjaGVGcmFtZUNvbnRlCiAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hcHBlbmRDaGls
ZChub2RlKTsKICAgICAgICAgfQogICAgIH0KLQotICAgIF9kZWxldGVCdXR0b25DbGlja2VkKGV2
ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCB8fCAhdGhpcy5fZGF0YUdy
aWQuc2VsZWN0ZWROb2RlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIEZJWE1F
OiBEZWxldGUgQnV0dG9uIHNlbWFudGljcyBhcmUgbm90IHlldCBkZWZpbmVkLiAoRGVsZXRlIGEg
c2luZ2xlLCBvciBhbGw/KQotICAgICAgICB0aGlzLl9kZWxldGVDYWxsYmFjayh0aGlzLl9kYXRh
R3JpZC5zZWxlY3RlZE5vZGUpOwotICAgIH0KLQotICAgIF9kZWxldGVDYWxsYmFjayhub2RlKQot
ICAgIHsKLSAgICAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBkZWxldGUgYSBzaW5nbGUgKHNlbGVj
dGVkKSByZXNvdXJjZSBvciBhbGwgcmVzb3VyY2VzPwotICAgICAgICAvLyBJbnNwZWN0b3JCYWNr
ZW5kLmRlbGV0ZUNhY2hlZFJlc291cmNlKC4uLikKLSAgICAgICAgLy8gdGhpcy5fdXBkYXRlKCk7
Ci0gICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NsdXN0ZXJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NsdXN0ZXJDb250ZW50Vmlldy5qcwppbmRleCAwNDEzNTkxNjI5
OTU3MTYxOGRlNTk2MWE5NTIzYmM3MWIyMjRjOTA5Li4zNGI4YmZiNWI2MmU1MDk5YzI5MjA4Zjlk
M2MzMzdjYzJkOTFiMGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DbHVzdGVyQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2x1c3RlckNvbnRlbnRWaWV3LmpzCkBAIC0zMyw3
ICszMyw3IEBAIFdlYkluc3BlY3Rvci5DbHVzdGVyQ29udGVudFZpZXcgPSBjbGFzcyBDbHVzdGVy
Q29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAKICAgICAgICAgdGhpcy5fY29udGVu
dFZpZXdDb250YWluZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3Q29udGFpbmVyOwog
ICAgICAgICB0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5Db250ZW50Vmlld0NvbnRhaW5lci5FdmVudC5DdXJyZW50Q29udGVudFZpZXdEaWRD
aGFuZ2UsIHRoaXMuX2N1cnJlbnRDb250ZW50Vmlld0RpZENoYW5nZSwgdGhpcyk7Ci0gICAgICAg
IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5lci5lbGVt
ZW50KTsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVy
KTsKIAogICAgICAgICBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9uUGF0aENvbXBvbmVudHNEaWRD
aGFuZ2UsIHRoaXMuX2NvbnRlbnRWaWV3U2VsZWN0aW9uUGF0aENvbXBvbmVudERpZENoYW5nZSwg
dGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TdXBwbGVtZW50YWxSZXByZXNlbnRlZE9i
amVjdHNEaWRDaGFuZ2UsIHRoaXMuX2NvbnRlbnRWaWV3U3VwcGxlbWVudGFsUmVwcmVzZW50ZWRP
YmplY3RzRGlkQ2hhbmdlLCB0aGlzKTsKQEAgLTYwLDExICs2MCw2IEBAIFdlYkluc3BlY3Rvci5D
bHVzdGVyQ29udGVudFZpZXcgPSBjbGFzcyBDbHVzdGVyQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHVwZGF0ZUxheW91
dCgpCi0gICAgewotICAgICAgICB0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5lci51cGRhdGVMYXlv
dXQoKTsKLSAgICB9Ci0KICAgICBzaG93bigpCiAgICAgewogICAgICAgICB0aGlzLl9jb250ZW50
Vmlld0NvbnRhaW5lci5zaG93bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3LmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3RvcmFnZUNvbnRlbnRW
aWV3LmpzCmluZGV4IGQxZGUyNjg0ZGRhZjgwNzhlYTM3NjA1N2RlYzEyZjgzMjZjZTBlMjcuLmU4
NWE4NTdmNjZhMTY5ZTNjZWVjNTkxNjQ3MzFlMDY3NWUxOGE2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nvb2tpZVN0b3JhZ2VDb250ZW50
Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b29raWVTdG9yYWdlQ29udGVudFZpZXcuanMKQEAgLTM0LDcgKzM0LDcgQEAgV2ViSW5zcGVjdG9y
LkNvb2tpZVN0b3JhZ2VDb250ZW50VmlldyA9IGNsYXNzIENvb2tpZVN0b3JhZ2VDb250ZW50Vmll
dyBleHRlbmRzIFcKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0g
bmV3IFdlYkluc3BlY3Rvci5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiY29va2llLXN0b3JhZ2UtcmVm
cmVzaCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9hZEZ1
bGwuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25J
dGVtLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2
ZW50LkNsaWNrZWQsIHRoaXMuX3JlZnJlc2hCdXR0b25DbGlja2VkLCB0aGlzKTsKIAotICAgICAg
ICB0aGlzLnVwZGF0ZSgpOworICAgICAgICB0aGlzLl91cGRhdGUoKTsKICAgICB9CiAKICAgICAv
LyBTdGF0aWMKQEAgLTY0LDI2ICs2NCw2IEBAIFdlYkluc3BlY3Rvci5Db29raWVTdG9yYWdlQ29u
dGVudFZpZXcgPSBjbGFzcyBDb29raWVTdG9yYWdlQ29udGVudFZpZXcgZXh0ZW5kcyBXCiAgICAg
ICAgIHJldHVybiBbdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtXTsKICAgICB9CiAK
LSAgICB1cGRhdGUoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIGNv
b2tpZXMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgICAgIHRoaXMuX2Nvb2tpZXMgPSB0aGlzLl9maWx0ZXJDb29r
aWVzKGNvb2tpZXMpOwotICAgICAgICAgICAgdGhpcy5fcmVidWlsZFRhYmxlKCk7Ci0gICAgICAg
IH0KLQotICAgICAgICBQYWdlQWdlbnQuZ2V0Q29va2llcyhjYWxsYmFjay5iaW5kKHRoaXMpKTsK
LSAgICB9Ci0KLSAgICB1cGRhdGVMYXlvdXQoKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2Rh
dGFHcmlkKQotICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlTGF5b3V0KCk7Ci0gICAg
fQotCiAgICAgc2F2ZVRvQ29va2llKGNvb2tpZSkKICAgICB7CiAgICAgICAgIGNvb2tpZS50eXBl
ID0gV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3Q29va2llVHlwZS5Db29raWVTdG9yYWdlOwpAQCAt
OTksNiArNzksMjAgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3JhZ2VDb250ZW50VmlldyA9IGNs
YXNzIENvb2tpZVN0b3JhZ2VDb250ZW50VmlldyBleHRlbmRzIFcKIAogICAgIC8vIFByaXZhdGUK
IAorICAgIF91cGRhdGUoKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3Is
IGNvb2tpZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHRoaXMuX2Nvb2tpZXMgPSB0aGlzLl9maWx0ZXJD
b29raWVzKGNvb2tpZXMpOworICAgICAgICAgICAgdGhpcy5fcmVidWlsZFRhYmxlKCk7CisgICAg
ICAgIH0KKworICAgICAgICBQYWdlQWdlbnQuZ2V0Q29va2llcyhjYWxsYmFjay5iaW5kKHRoaXMp
KTsKKyAgICB9CisKICAgICBfcmVidWlsZFRhYmxlKCkKICAgICB7CiAgICAgICAgIC8vIEZJWE1F
OiBJZiB0aGVyZSBhcmUgbm8gY29va2llcywgZG8gd2Ugd2FudCB0byBzaG93IGFuIGVtcHR5IGRh
dGFncmlkLCBvciBkbyBzb21ldGhpbmcgbGlrZSB0aGUgb2xkCkBAIC0xNDQsNyArMTM4LDcgQEAg
V2ViSW5zcGVjdG9yLkNvb2tpZVN0b3JhZ2VDb250ZW50VmlldyA9IGNsYXNzIENvb2tpZVN0b3Jh
Z2VDb250ZW50VmlldyBleHRlbmRzIFcKICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkID0gbmV3
IFdlYkluc3BlY3Rvci5EYXRhR3JpZChjb2x1bW5zLCBudWxsLCB0aGlzLl9kZWxldGVDYWxsYmFj
ay5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LlNvcnRDaGFuZ2VkLCB0aGlzLl9zb3J0RGF0
YUdyaWQsIHRoaXMpOwogCi0gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fZGF0YUdyaWQuZWxlbWVudCk7CisgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5f
ZGF0YUdyaWQpOwogICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlTGF5b3V0KCk7CiAg
ICAgICAgIH0KIApAQCAtMjU4LDEyICsyNTIsMTIgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3Jh
Z2VDb250ZW50VmlldyA9IGNsYXNzIENvb2tpZVN0b3JhZ2VDb250ZW50VmlldyBleHRlbmRzIFcK
ICAgICAgICAgdmFyIGNvb2tpZVVSTCA9IChjb29raWUuc2VjdXJlID8gImh0dHBzOi8vIiA6ICJo
dHRwOi8vIikgKyBjb29raWUuZG9tYWluICsgY29va2llLnBhdGg7CiAgICAgICAgIFBhZ2VBZ2Vu
dC5kZWxldGVDb29raWUoY29va2llLm5hbWUsIGNvb2tpZVVSTCk7CiAKLSAgICAgICAgdGhpcy51
cGRhdGUoKTsKKyAgICAgICAgdGhpcy5fdXBkYXRlKCk7CiAgICAgfQogCiAgICAgX3JlZnJlc2hC
dXR0b25DbGlja2VkKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy51cGRhdGUoKTsKKyAgICAg
ICAgdGhpcy5fdXBkYXRlKCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NU3RvcmFnZUNvbnRl
bnRWaWV3LmpzCmluZGV4IGQyZGM5OGIwMTBiNWM4M2E5NGNiMGM1MWI0NjgzZTQ4MDgwMGM4OGEu
LjkyZjNkNzE1MmQ2OWRmZDRjODZmMzg3YmIwYTAzYzU3NmUyZjBjNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVN0b3JhZ2VDb250ZW50
Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9E
T01TdG9yYWdlQ29udGVudFZpZXcuanMKQEAgLTQ2LDcgKzQ2LDcgQEAgV2ViSW5zcGVjdG9yLkRP
TVN0b3JhZ2VDb250ZW50VmlldyA9IGNsYXNzIERPTVN0b3JhZ2VDb250ZW50VmlldyBleHRlbmRz
IFdlYkluc3AKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuc29ydENvbHVtbklkZW50aWZpZXIgPSAi
a2V5IjsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRGF0YUdyaWQuRXZlbnQuU29ydENoYW5nZWQsIHRoaXMuX3NvcnREYXRhR3JpZCwgdGhpcyk7
CiAKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RhdGFHcmlkLmVsZW1l
bnQpOworICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fZGF0YUdyaWQpOwogCiAgICAgICAg
IHRoaXMuX3BvcHVsYXRlKCk7CiAgICAgfQpAQCAtMTEyLDEyICsxMTIsNiBAQCBXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3ID0gY2xhc3MgRE9NU3RvcmFnZUNvbnRlbnRWaWV3IGV4
dGVuZHMgV2ViSW5zcAogICAgICAgICB0aGlzLl9zb3J0RGF0YUdyaWQoKTsKICAgICB9CiAKLSAg
ICB1cGRhdGVMYXlvdXQoKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2RhdGFHcmlkKQotICAg
ICAgICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlTGF5b3V0KCk7Ci0gICAgfQotCiAgICAgZ2V0
IHNjcm9sbGFibGVFbGVtZW50cygpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2RhdGFHcmlk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzCmluZGV4IDE0MzJlZmFlZWYwZjgxYjBiYWVi
NjM5NWE3YzBlZGJmOTQ2NTQ5MjcuLmFkZDM3YjI0Mzk3ZmI2NThjNDUyZGYwZGZjOTNjMTZmYWEx
ZjZkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0RPTVRyZWVDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlQ29udGVudFZpZXcuanMKQEAgLTgxLDExICs4MSw2IEBA
IFdlYkluc3BlY3Rvci5ET01UcmVlQ29udGVudFZpZXcgPSBjbGFzcyBET01UcmVlQ29udGVudFZp
ZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAgICAgICAgIHJldHVybiBbdGhpcy5lbGVtZW50XTsK
ICAgICB9CiAKLSAgICB1cGRhdGVMYXlvdXQoKQotICAgIHsKLSAgICAgICAgdGhpcy5fZG9tVHJl
ZU91dGxpbmUudXBkYXRlU2VsZWN0aW9uKCk7Ci0gICAgfQotCiAgICAgc2hvd24oKQogICAgIHsK
ICAgICAgICAgdGhpcy5fZG9tVHJlZU91dGxpbmUuc2V0VmlzaWJsZSh0cnVlLCBXZWJJbnNwZWN0
b3IuaXNDb25zb2xlRm9jdXNlZCgpKTsKQEAgLTI4NCw2ICsyNzksMTMgQEAgV2ViSW5zcGVjdG9y
LkRPTVRyZWVDb250ZW50VmlldyA9IGNsYXNzIERPTVRyZWVDb250ZW50VmlldyBleHRlbmRzIFdl
Ykluc3BlY3Rvci4KICAgICAgICAgdGhpcy5fcmV2ZWFsU2VhcmNoUmVzdWx0KHRoaXMuX2N1cnJl
bnRTZWFyY2hSZXN1bHRJbmRleCwgY2hhbmdlRm9jdXMpOwogICAgIH0KIAorICAgIC8vIFByb3Rl
Y3RlZAorCisgICAgbGF5b3V0KCkKKyAgICB7CisgICAgICAgIHRoaXMuX2RvbVRyZWVPdXRsaW5l
LnVwZGF0ZVNlbGVjdGlvbigpOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAogICAgIF9yZXZl
YWxTZWFyY2hSZXN1bHQoaW5kZXgsIGNoYW5nZUZvY3VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YWJhc2VDb250ZW50Vmlldy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFiYXNlQ29udGVu
dFZpZXcuanMKaW5kZXggZDAzODEyNDA3NWIwMTg3ZDgxYjcxNmViYmI0ZDkyZmVlNzMwM2JhOS4u
M2ZiYmNkZmZhNzRhNmZmMDc1N2E4ZDdkNDA1OTRlYTQ3OWY2MWU4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YWJhc2VDb250ZW50Vmll
dy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRh
YmFzZUNvbnRlbnRWaWV3LmpzCkBAIC01MCwxOCArNTAsNiBAQCBXZWJJbnNwZWN0b3IuRGF0YWJh
c2VDb250ZW50VmlldyA9IGNsYXNzIERhdGFiYXNlQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNw
ZWN0bwogICAgICAgICB0aGlzLnByb21wdC5zaG93bigpOwogICAgIH0KIAotICAgIHVwZGF0ZUxh
eW91dCgpCi0gICAgewotICAgICAgICB0aGlzLnByb21wdC51cGRhdGVMYXlvdXQoKTsKLQotICAg
ICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuZGF0YWJh
c2UtcXVlcnktcmVzdWx0Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0cy5s
ZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHJlc3VsdEVsZW1lbnQgPSByZXN1bHRzW2ld
OwotICAgICAgICAgICAgaWYgKHJlc3VsdEVsZW1lbnQuZGF0YUdyaWQpCi0gICAgICAgICAgICAg
ICAgcmVzdWx0RWxlbWVudC5kYXRhR3JpZC51cGRhdGVMYXlvdXQoKTsKLSAgICAgICAgfQotICAg
IH0KLQogICAgIHNhdmVUb0Nvb2tpZShjb29raWUpCiAgICAgewogICAgICAgICBjb29raWUudHlw
ZSA9IFdlYkluc3BlY3Rvci5Db250ZW50Vmlld0Nvb2tpZVR5cGUuRGF0YWJhc2U7CkBAIC0xMDAs
NiArODgsMTkgQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlQ29udGVudFZpZXcgPSBjbGFzcyBEYXRh
YmFzZUNvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG8KICAgICAgICAgdGhpcy5kYXRhYmFz
ZS5leGVjdXRlU1FMKHF1ZXJ5LCB0aGlzLl9xdWVyeUZpbmlzaGVkLmJpbmQodGhpcywgcXVlcnkp
LCB0aGlzLl9xdWVyeUVycm9yLmJpbmQodGhpcywgcXVlcnkpKTsKICAgICB9CiAKKyAgICAvLyBQ
cm90ZWN0ZWQKKworICAgIGxheW91dCgpCisgICAgeworICAgICAgICB0aGlzLnByb21wdC51cGRh
dGVMYXlvdXQoKTsKKworICAgICAgICBsZXQgcmVzdWx0cyA9IHRoaXMuZWxlbWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIuZGF0YWJhc2UtcXVlcnktcmVzdWx0Iik7CisgICAgICAgIGZvciAobGV0IHJl
c3VsdEVsZW1lbnQgb2YgcmVzdWx0cykgeworICAgICAgICAgICAgaWYgKHJlc3VsdEVsZW1lbnQu
ZGF0YUdyaWQpCisgICAgICAgICAgICAgICAgcmVzdWx0RWxlbWVudC5kYXRhR3JpZC51cGRhdGVM
YXlvdXQoKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAogICAgIF9tZXNz
YWdlc0NsaWNrZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRGF0YWJhc2VUYWJsZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YWJhc2VUYWJsZUNvbnRlbnRWaWV3LmpzCmlu
ZGV4IGM1ZTk0NjdlOTRmNzE4ZWUxM2E4ZTU2YTc5NmQwZTA0MTQ2YzM3NDAuLjk2MjYyOTI2MmI0
ODM0ZDYxMTk1OTYyMjA5Y2M3YTMxYTMwMDQ0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFiYXNlVGFibGVDb250ZW50Vmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhYmFzZVRh
YmxlQ29udGVudFZpZXcuanMKQEAgLTMzLDYgKzMzLDcgQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNl
VGFibGVDb250ZW50VmlldyA9IGNsYXNzIERhdGFiYXNlVGFibGVDb250ZW50VmlldyBleHRlbmRz
IFcKIAogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBuZXcgV2Vi
SW5zcGVjdG9yLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJkYXRhYmFzZS10YWJsZS1yZWZyZXNoIiwg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZWZyZXNoIiksICJJbWFnZXMvUmVsb2FkRnVsbC5zdmci
LCAxMywgMTMpOwogICAgICAgICB0aGlzLl9yZWZyZXNoQnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xp
Y2tlZCwgdGhpcy5fcmVmcmVzaEJ1dHRvbkNsaWNrZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9t
ZXNzYWdlVGV4dFZpZXdFbGVtZW50ID0gbnVsbDsKIAogICAgICAgICB0aGlzLnVwZGF0ZSgpOwog
ICAgIH0KQEAgLTgyLDI3ICs4Myw0MCBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2VUYWJsZUNvbnRl
bnRWaWV3ID0gY2xhc3MgRGF0YWJhc2VUYWJsZUNvbnRlbnRWaWV3IGV4dGVuZHMgVwogICAgICAg
ICAvLyBJdCB3b3VsZCBiZSBuaWNlIHRvIGRvIGJldHRlciB0aGFuIGNyZWF0aW5nIGEgbmV3IGRh
dGEgZ3JpZCBlYWNoIHRpbWUgdGhlIHRhYmxlIGlzIHVwZGF0ZWQsIGJ1dCB0aGUgdGFibGUgdXBk
YXRpbmcKICAgICAgICAgLy8gZG9lc24ndCBoYXBwZW4gdmVyeSBmcmVxdWVudGx5LiBBZGRpdGlv
bmFsbHksIHVzaW5nIERhdGFHcmlkJ3MgY3JlYXRlU29ydGFibGVEYXRhR3JpZCBtYWtlcyBvdXIg
Y29kZSBtdWNoIGNsZWFuZXIgYW5kIGl0IGtub3dzCiAgICAgICAgIC8vIGhvdyB0byBzb3J0IGFy
Yml0cmFyeSBjb2x1bW5zLgotICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsK
KyAgICAgICAgaWYgKHRoaXMuX2RhdGFHcmlkKSB7CisgICAgICAgICAgICB0aGlzLnJlbW92ZVN1
YnZpZXcodGhpcy5fZGF0YUdyaWQpOworICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSBudWxs
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX21lc3NhZ2VUZXh0Vmlld0VsZW1lbnQp
CisgICAgICAgICAgICB0aGlzLl9tZXNzYWdlVGV4dFZpZXdFbGVtZW50LnJlbW92ZSgpOwogCi0g
ICAgICAgIHRoaXMuX2RhdGFHcmlkID0gV2ViSW5zcGVjdG9yLkRhdGFHcmlkLmNyZWF0ZVNvcnRh
YmxlRGF0YUdyaWQoY29sdW1uTmFtZXMsIHZhbHVlcyk7Ci0gICAgICAgIGlmICghdGhpcy5fZGF0
YUdyaWQgfHwgIXRoaXMuX2RhdGFHcmlkLmVsZW1lbnQpIHsKLSAgICAgICAgICAgIHRoaXMuX2Rh
dGFHcmlkID0gdW5kZWZpbmVkOworICAgICAgICBpZiAoY29sdW1uTmFtZXMubGVuZ3RoKSB7Cisg
ICAgICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5jcmVhdGVT
b3J0YWJsZURhdGFHcmlkKGNvbHVtbk5hbWVzLCB2YWx1ZXMpOwogCi0gICAgICAgICAgICAvLyBJ
ZiB0aGUgRGF0YUdyaWQgaXMgZW1wdHksIHRoZW4gd2Ugd2VyZSByZXR1cm5lZCBhIHRhYmxlIHdp
dGggbm8gY29sdW1ucy4gVGhpcyBjYW4gaGFwcGVuIHdoZW4gYSB0YWJsZSBoYXMKLSAgICAgICAg
ICAgIC8vIG5vIGRhdGEsIHRoZSBTRUxFQ1QgcXVlcnkgb25seSByZXR1cm5zIGNvbHVtbiBuYW1l
cyB3aGVuIHRoZXJlIGlzIGRhdGEuCi0gICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hp
bGRyZW4oKTsKLSAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0
b3IuY3JlYXRlTWVzc2FnZVRleHRWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhlIOKAnCVz
4oCdXG50YWJsZSBpcyBlbXB0eS4iKS5mb3JtYXQodGhpcy5yZXByZXNlbnRlZE9iamVjdC5uYW1l
KSwgZmFsc2UpKTsKKyAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9kYXRhR3JpZCk7
CisgICAgICAgICAgICB0aGlzLnVwZGF0ZUxheW91dCgpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RhdGFH
cmlkLmVsZW1lbnQpOwotICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVMYXlvdXQoKTsKKyAg
ICAgICAgLy8gV2Ugd2VyZSByZXR1cm5lZCBhIHRhYmxlIHdpdGggbm8gY29sdW1ucy4gVGhpcyBj
YW4gaGFwcGVuIHdoZW4gYSB0YWJsZSBoYXMKKyAgICAgICAgLy8gbm8gZGF0YSwgdGhlIFNFTEVD
VCBxdWVyeSBvbmx5IHJldHVybnMgY29sdW1uIG5hbWVzIHdoZW4gdGhlcmUgaXMgZGF0YS4KKyAg
ICAgICAgdGhpcy5fbWVzc2FnZVRleHRWaWV3RWxlbWVudCA9IFdlYkluc3BlY3Rvci5jcmVhdGVN
ZXNzYWdlVGV4dFZpZXcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUaGUg4oCcJXPigJ1cbnRhYmxl
IGlzIGVtcHR5LiIpLmZvcm1hdCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5hbWUpLCBmYWxzZSk7
CisgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9tZXNzYWdlVGV4dFZpZXdF
bGVtZW50KTsKICAgICB9CiAKICAgICBfcXVlcnlFcnJvcihlcnJvcikKICAgICB7Ci0gICAgICAg
IHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYXBw
ZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmNyZWF0ZU1lc3NhZ2VUZXh0VmlldyhXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkFuIGVycm9yIG9jY3VyZWQgdHJ5aW5nIHRvXG5yZWFkIHRoZSDigJwlc+KAnSB0
YWJsZS4iKS5mb3JtYXQodGhpcy5yZXByZXNlbnRlZE9iamVjdC5uYW1lKSwgdHJ1ZSkpOworICAg
ICAgICBpZiAodGhpcy5fZGF0YUdyaWQpIHsKKyAgICAgICAgICAgIHRoaXMucmVtb3ZlU3Vidmll
dyh0aGlzLl9kYXRhR3JpZCk7CisgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IG51bGw7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5fbWVzc2FnZVRleHRWaWV3RWxlbWVudCkKKyAg
ICAgICAgICAgIHRoaXMuX21lc3NhZ2VUZXh0Vmlld0VsZW1lbnQucmVtb3ZlKCk7CisKKyAgICAg
ICAgdGhpcy5fbWVzc2FnZVRleHRWaWV3RWxlbWVudCA9IFdlYkluc3BlY3Rvci5jcmVhdGVNZXNz
YWdlVGV4dFZpZXcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJBbiBlcnJvciBvY2N1cmVkIHRyeWlu
ZyB0b1xucmVhZCB0aGUg4oCcJXPigJ0gdGFibGUuIikuZm9ybWF0KHRoaXMucmVwcmVzZW50ZWRP
YmplY3QubmFtZSksIHRydWUpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fbWVzc2FnZVRleHRWaWV3RWxlbWVudCk7CiAgICAgfQogCiAgICAgX3JlZnJlc2hCdXR0b25D
bGlja2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0ZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRm9udFJlc291cmNlQ29udGVudFZpZXcuanMKaW5kZXggOTVj
Y2I3ZjAxMjAxNTIzNzlkZTc3OGJmMGE1NjMzZDI4MjBjNDk3MS4uMmU1NmEwOTBiNzdkNWI2ZjEy
Y2VlZjE4ZjM5MTc1NzUwMWU0ODgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRm9udFJlc291cmNlQ29udGVudFZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRm9udFJlc291cmNlQ29udGVu
dFZpZXcuanMKQEAgLTExMiwxMSArMTEyLDYgQEAgV2ViSW5zcGVjdG9yLkZvbnRSZXNvdXJjZUNv
bnRlbnRWaWV3ID0gY2xhc3MgRm9udFJlc291cmNlQ29udGVudFZpZXcgZXh0ZW5kcyBXZWIKICAg
ICAgICAgdGhpcy5zaXplVG9GaXQoKTsKICAgICB9CiAKLSAgICB1cGRhdGVMYXlvdXQoKQotICAg
IHsKLSAgICAgICAgdGhpcy5zaXplVG9GaXQoKTsKLSAgICB9Ci0KICAgICBzaG93bigpCiAgICAg
ewogICAgICAgICAvLyBBZGQgdGhlIHN0eWxlIGVsZW1lbnQgc2luY2UgaXQgaXMgcmVtb3ZlZCB3
aGVuIGhpZGRlbi4KQEAgLTE0MCw2ICsxMzUsMTMgQEAgV2ViSW5zcGVjdG9yLkZvbnRSZXNvdXJj
ZUNvbnRlbnRWaWV3ID0gY2xhc3MgRm9udFJlc291cmNlQ29udGVudFZpZXcgZXh0ZW5kcyBXZWIK
ICAgICAgICAgaWYgKHRoaXMuX2ZvbnRPYmplY3RVUkwpCiAgICAgICAgICAgICBVUkwucmV2b2tl
T2JqZWN0VVJMKHRoaXMuX2ZvbnRPYmplY3RVUkwpOwogICAgIH0KKworICAgIC8vIFByb3RlY3Rl
ZAorCisgICAgbGF5b3V0KCkKKyAgICB7CisgICAgICAgIHRoaXMuc2l6ZVRvRml0KCk7CisgICAg
fQogfQogCiBXZWJJbnNwZWN0b3IuRm9udFJlc291cmNlQ29udGVudFZpZXcuX3VuaXF1ZUZvbnRJ
ZGVudGlmaWVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmRleGVkRGF0YWJhc2VP
YmplY3RTdG9yZUNvbnRlbnRWaWV3LmpzCmluZGV4IDBlYTlhMGJkZTY4ODM4ZDVjOGJjMGI4YzYy
MjdhYjc5MjQ0MjU4NTEuLmFjODYwNTQxYmI1NmMwMTNmMzAyZThhNjk4NjBiOGQyNTI0MDYzZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lu
ZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVD
b250ZW50Vmlldy5qcwpAQCAtNjksNyArNjksNyBAQCBXZWJJbnNwZWN0b3IuSW5kZXhlZERhdGFi
YXNlT2JqZWN0U3RvcmVDb250ZW50VmlldyA9IGNsYXNzIEluZGV4ZWREYXRhYmFzZU9iamVjdAog
CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkID0gbmV3IFdlYkluc3BlY3Rvci5EYXRhR3JpZChjb2x1
bW5JbmZvKTsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuc2Nyb2xsQ29udGFpbmVyLmFkZEV2ZW50
TGlzdGVuZXIoInNjcm9sbCIsIHRoaXMuX2RhdGFHcmlkU2Nyb2xsZWQuYmluZCh0aGlzKSk7Ci0g
ICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kYXRhR3JpZC5lbGVtZW50KTsK
KyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2RhdGFHcmlkKTsKIAogICAgICAgICB0aGlz
Ll9lbnRyaWVzID0gW107CiAKQEAgLTEwMCwxMSArMTAwLDYgQEAgV2ViSW5zcGVjdG9yLkluZGV4
ZWREYXRhYmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcgPSBjbGFzcyBJbmRleGVkRGF0YWJhc2VP
YmplY3QKICAgICAgICAgY29va2llLm9iamVjdFN0b3JlSW5kZXhOYW1lID0gdGhpcy5fb2JqZWN0
U3RvcmVJbmRleCAmJiB0aGlzLl9vYmplY3RTdG9yZUluZGV4Lm5hbWU7CiAgICAgfQogCi0gICAg
dXBkYXRlTGF5b3V0KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2RhdGFHcmlkLnVwZGF0ZUxheW91
dCgpOwotICAgIH0KLQogICAgIC8vIFByaXZhdGUKIAogICAgIF9yZXNldCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmll
dy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRl
bnRWaWV3LmpzCmluZGV4IDM5NTc3YjU0NGE0YTA0ZjVmZjMyYTJhMTlkODM5YjY5YjY4ZTg5MjQu
LmRkODVkMmYzZTcyYjkzNWFiZDY4YjdhZGUwNTY2YThmNWU3ZDA4MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3Lmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRl
bnRWaWV3LmpzCkBAIC0xMDcsMTMgKzEwNyw2IEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50Vmll
dyA9IGNsYXNzIExvZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAg
ICAgICAgIHJldHVybiB0aGlzLl9sb2dWaWV3Q29udHJvbGxlcjsKICAgICB9CiAKLSAgICB1cGRh
dGVMYXlvdXQoKQotICAgIHsKLSAgICAgICAgc3VwZXIudXBkYXRlTGF5b3V0KCk7Ci0KLSAgICAg
ICAgdGhpcy5fc2Nyb2xsRWxlbWVudEhlaWdodCA9IHRoaXMubWVzc2FnZXNFbGVtZW50LmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDsKLSAgICB9Ci0KICAgICBnZXQgc2Nyb2xsYWJsZUVs
ZW1lbnRzKCkKICAgICB7CiAgICAgICAgIHJldHVybiBbdGhpcy5lbGVtZW50XTsKQEAgLTI1Myw2
ICsyNDYsMTMgQEAgV2ViSW5zcGVjdG9yLkxvZ0NvbnRlbnRWaWV3ID0gY2xhc3MgTG9nQ29udGVu
dFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFYKICAgICAgICAgICAgIHRoaXMucHJv
bXB0LmZvY3VzKCk7CiAgICAgfQogCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBsYXlvdXQoKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fc2Nyb2xsRWxlbWVudEhlaWdodCA9IHRoaXMubWVzc2FnZXNF
bGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDsKKyAgICB9CisKICAgICAvLyBQ
cml2YXRlCiAKICAgICBfZm9ybWF0TWVzc2FnZXNBc0RhdGEob25seVNlbGVjdGVkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya0dy
aWRDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL05ldHdvcmtHcmlkQ29udGVudFZpZXcuanMKaW5kZXggZjNkNjcyZjcyMTlmNDcxZmRkODg2
Mjc1YjJiNjc5YzJmOWY0OThhMi4uYTM0ZWQzNTc0Mzc0MGFkMWRlMTZlMDljMjU4NWM3ODg5YjJk
ZjM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvTmV0d29ya0dyaWRDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrR3JpZENvbnRlbnRWaWV3LmpzCkBAIC04Niw3ICs4
Niw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrR3JpZENvbnRlbnRWaWV3ID0gY2xhc3MgTmV0d29y
a0dyaWRDb250ZW50VmlldyBleHRlbmRzIFdlYkluCiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnNv
cnRPcmRlciA9IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5Tb3J0T3JkZXIuQXNjZW5kaW5nOwogCiAg
ICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJuZXR3b3JrLWdyaWQiKTsKLSAgICAg
ICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RhdGFHcmlkLmVsZW1lbnQpOworICAg
ICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fZGF0YUdyaWQpOwogCiAgICAgICAgIHZhciBuZXR3
b3JrVGltZWxpbmUgPSBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLnBlcnNpc3RlbnROZXR3
b3JrVGltZWxpbmU7CiAgICAgICAgIG5ldHdvcmtUaW1lbGluZS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5UaW1lbGluZS5FdmVudC5SZWNvcmRBZGRlZCwgdGhpcy5fbmV0d29ya1RpbWVs
aW5lUmVjb3JkQWRkZWQsIHRoaXMpOwpAQCAtMTM2LDI3ICsxMzYsMTIgQEAgV2ViSW5zcGVjdG9y
Lk5ldHdvcmtHcmlkQ29udGVudFZpZXcgPSBjbGFzcyBOZXR3b3JrR3JpZENvbnRlbnRWaWV3IGV4
dGVuZHMgV2ViSW4KICAgICAgICAgdGhpcy5fZGF0YUdyaWQuY2xvc2VkKCk7CiAgICAgfQogCi0g
ICAgdXBkYXRlTGF5b3V0KCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9zY2hlZHVsZWRMYXlv
dXRVcGRhdGVJZGVudGlmaWVyKSB7Ci0gICAgICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0
aGlzLl9zY2hlZHVsZWRMYXlvdXRVcGRhdGVJZGVudGlmaWVyKTsKLSAgICAgICAgICAgIGRlbGV0
ZSB0aGlzLl9zY2hlZHVsZWRMYXlvdXRVcGRhdGVJZGVudGlmaWVyOwotICAgICAgICB9Ci0KLSAg
ICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlTGF5b3V0KCk7Ci0KLSAgICAgICAgdGhpcy5fcHJv
Y2Vzc1BlbmRpbmdSZWNvcmRzKCk7Ci0gICAgfQotCiAgICAgbmVlZHNMYXlvdXQoKQogICAgIHsK
ICAgICAgICAgaWYgKCF0aGlzLl9uZXR3b3JrU2lkZWJhclBhbmVsLnZpc2libGUpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKHRoaXMuX3NjaGVkdWxlZExheW91dFVwZGF0ZUlk
ZW50aWZpZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fc2NoZWR1bGVk
TGF5b3V0VXBkYXRlSWRlbnRpZmllciA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0
ZUxheW91dC5iaW5kKHRoaXMpKTsKKyAgICAgICAgc3VwZXIubmVlZHNMYXlvdXQoKTsKICAgICB9
CiAKICAgICByZXNldCgpCkBAIC0xNjUsNiArMTUwLDEzIEBAIFdlYkluc3BlY3Rvci5OZXR3b3Jr
R3JpZENvbnRlbnRWaWV3ID0gY2xhc3MgTmV0d29ya0dyaWRDb250ZW50VmlldyBleHRlbmRzIFdl
YkluCiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnJlc2V0KCk7CiAgICAgfQogCisgICAgLy8gUHJv
dGVjdGVkCisKKyAgICBsYXlvdXQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJvY2Vzc1BlbmRp
bmdSZWNvcmRzKCk7CisgICAgfQorCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX3Byb2Nlc3NQZW5k
aW5nUmVjb3JkcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TY3JpcHRDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdENvbnRlbnRWaWV3LmpzCmluZGV4IDQwOGVjNWNkYzI3
ZjlkZWEwMGYzZWEyMzRmYjc2YWJhYWNjNDkyZGQuLjFmN2IxZmYyNmE0ZWVmMjBhMDNmOGNmNjBk
YWJmYzgzNTViNGM2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1NjcmlwdENvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdENvbnRlbnRWaWV3LmpzCkBAIC0xODQsMTEg
KzE4NCw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRDb250ZW50VmlldyA9IGNsYXNzIFNjcmlwdENv
bnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvCiAgICAgICAgIHRoaXMuX3RleHRFZGl0
b3IucmV2ZWFsTmV4dFNlYXJjaFJlc3VsdChjaGFuZ2VGb2N1cyk7CiAgICAgfQogCi0gICAgdXBk
YXRlTGF5b3V0KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3RleHRFZGl0b3IudXBkYXRlTGF5b3V0
KCk7Ci0gICAgfQotCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX2NvbnRlbnRXaWxsUG9wdWxhdGUo
ZXZlbnQpCkBAIC0yMDEsNyArMTk2LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdENvbnRlbnRWaWV3
ID0gY2xhc3MgU2NyaXB0Q29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ28KICAgICAg
ICAgICAgIHRoaXMuX3RleHRFZGl0b3IucmVhZE9ubHkgPSBmYWxzZTsKIAogICAgICAgICB0aGlz
LmVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX3RleHRFZGl0b3IuZWxlbWVudCk7CisgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0
aGlzLl90ZXh0RWRpdG9yKTsKICAgICB9CiAKICAgICBfY29udGVudERpZFBvcHVsYXRlKGV2ZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VGV4dENvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGV4dENvbnRlbnRWaWV3LmpzCmluZGV4IDQxYzk5OTIyOTYyNDAyMzU0NzRiZjMwNjc1
NmFhMGQ3NDA4ZDhiYTcuLmQzYTVlNTkyMzc5NTNmYzMwZTlhMDYyMmY4NzVmZjBiMmY3NWFmYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Rl
eHRDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UZXh0Q29udGVudFZpZXcuanMKQEAgLTM1LDcgKzM1LDcgQEAgV2ViSW5zcGVjdG9y
LlRleHRDb250ZW50VmlldyA9IGNsYXNzIFRleHRDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5Db250ZW4KICAgICAgICAgdGhpcy5fdGV4dEVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yLkV2ZW50Lk51bWJlck9mU2VhcmNoUmVzdWx0c0RpZENoYW5n
ZSwgdGhpcy5fbnVtYmVyT2ZTZWFyY2hSZXN1bHRzRGlkQ2hhbmdlLCB0aGlzKTsKICAgICAgICAg
dGhpcy5fdGV4dEVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
LkV2ZW50LkZvcm1hdHRpbmdEaWRDaGFuZ2UsIHRoaXMuX3RleHRFZGl0b3JGb3JtYXR0aW5nRGlk
Q2hhbmdlLCB0aGlzKTsKIAotICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
dGV4dEVkaXRvci5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX3RleHRF
ZGl0b3IpOwogCiAgICAgICAgIHRoaXMuX3RleHRFZGl0b3IucmVhZE9ubHkgPSB0cnVlOwogICAg
ICAgICB0aGlzLl90ZXh0RWRpdG9yLm1pbWVUeXBlID0gbWltZVR5cGU7CkBAIC0xNDcsMTEgKzE0
Nyw2IEBAIFdlYkluc3BlY3Rvci5UZXh0Q29udGVudFZpZXcgPSBjbGFzcyBUZXh0Q29udGVudFZp
ZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVuCiAgICAgICAgIHRoaXMuX3RleHRFZGl0b3Iu
cmV2ZWFsTmV4dFNlYXJjaFJlc3VsdChjaGFuZ2VGb2N1cyk7CiAgICAgfQogCi0gICAgdXBkYXRl
TGF5b3V0KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3RleHRFZGl0b3IudXBkYXRlTGF5b3V0KCk7
Ci0gICAgfQotCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX3RvZ2dsZVByZXR0eVByaW50KGV2ZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1RleHRFZGl0b3IuanMKaW5kZXggZWFiMDFiM2FkODBkZGNkMGMwMjJjOWRmNzAzM2QxNDc4ZmNl
MThmZi4uNGM3MThmNTc2YzNmNjc0N2Y0Y2VkNDU0NjJkZDU1MzhiZDY2ZWU5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRp
dG9yLmpzCkBAIC0yMywxNCArMjMsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuVGV4dEVkaXRvciA9IGNsYXNzIFRleHRFZGl0b3Ig
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3IuVGV4dEVkaXRvciA9IGNs
YXNzIFRleHRFZGl0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogewogICAgIGNvbnN0cnVj
dG9yKGVsZW1lbnQsIG1pbWVUeXBlLCBkZWxlZ2F0ZSkKICAgICB7Ci0gICAgICAgIHN1cGVyKCk7
CisgICAgICAgIHN1cGVyKGVsZW1lbnQpOwogCi0gICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVt
ZW50IHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB0aGlzLl9lbGVt
ZW50LmNsYXNzTGlzdC5hZGQoInRleHQtZWRpdG9yIiwgV2ViSW5zcGVjdG9yLlN5bnRheEhpZ2hs
aWdodGVkU3R5bGVDbGFzc05hbWUpOworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFk
ZCgidGV4dC1lZGl0b3IiLCBXZWJJbnNwZWN0b3IuU3ludGF4SGlnaGxpZ2h0ZWRTdHlsZUNsYXNz
TmFtZSk7CiAKICAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDkxMjA+
IFdlYiBJbnNwZWN0b3I6IFByZWZlcmVuY2VzIGZvciBUZXh0IEVkaXRvciBiZWhhdmlvcgogICAg
ICAgICB0aGlzLl9jb2RlTWlycm9yID0gQ29kZU1pcnJvcih0aGlzLmVsZW1lbnQsIHsKQEAgLTcy
LDExICs3MSw2IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yID0gY2xhc3MgVGV4dEVkaXRvciBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgIC8vIFB1YmxpYwogCi0gICAgZ2V0IGVs
ZW1lbnQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7Ci0gICAgfQotCiAg
ICAgZ2V0IHZpc2libGUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7CkBA
IC01MDUsMTUgKzQ5OSw2IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yID0gY2xhc3MgVGV4dEVk
aXRvciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fY29kZU1pcnJv
ci5vcGVyYXRpb24ocmV2ZWFsQW5kSGlnaGxpZ2h0TGluZS5iaW5kKHRoaXMpKTsKICAgICB9CiAK
LSAgICB1cGRhdGVMYXlvdXQoZm9yY2UpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE0NjI1Nj4gV2ViIEluc3BlY3RvcjogTmVzdGVkIENvbnRlbnRCcm93
c2VycyAvIENvbnRlbnRWaWV3Q29udGFpbmVycyBjYXVzZSB0b28gbWFueSBDb250ZW50VmlldyB1
cGRhdGVzCi0gICAgICAgIC8vIElkZWFsbHkgd2Ugd291bGQgbm90IGdldCBhbiB1cGRhdGVMYXlv
dXQgY2FsbCBpZiB3ZSBhcmUgbm90IHZpc2libGUuIFdlIHNob3VsZCByZXN0cnVjdHVyZSBDb250
ZW50VmlldwotICAgICAgICAvLyBzaG93L2hpZGUgcmVzdG9yYXRpb24gdG8gcmVkdWNlIGR1cGxp
Y2F0ZWQgd29yayBhbmQgc29sdmUgdGhpcyBpbiB0aGUgcHJvY2Vzcy4KLSAgICAgICAgaWYgKHRo
aXMuX3Zpc2libGUpCi0gICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnJlZnJlc2goKTsKLSAg
ICB9Ci0KICAgICBzaG93bigpCiAgICAgewogICAgICAgICB0aGlzLl92aXNpYmxlID0gdHJ1ZTsK
QEAgLTcyNCw2ICs3MDksMTcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IgPSBjbGFzcyBUZXh0
RWRpdG9yIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgLy8gUHJvdGVjdGVkCiAK
KyAgICBsYXlvdXQoKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5v
cmcvYi8xNDYyNTY+IFdlYiBJbnNwZWN0b3I6IE5lc3RlZCBDb250ZW50QnJvd3NlcnMgLyBDb250
ZW50Vmlld0NvbnRhaW5lcnMgY2F1c2UgdG9vIG1hbnkgQ29udGVudFZpZXcgdXBkYXRlcworICAg
ICAgICAvLyBJZGVhbGx5IHdlIHdvdWxkIG5vdCBnZXQgYW4gdXBkYXRlTGF5b3V0IGNhbGwgaWYg
d2UgYXJlIG5vdCB2aXNpYmxlLiBXZSBzaG91bGQgcmVzdHJ1Y3R1cmUgQ29udGVudFZpZXcKKyAg
ICAgICAgLy8gc2hvdy9oaWRlIHJlc3RvcmF0aW9uIHRvIHJlZHVjZSBkdXBsaWNhdGVkIHdvcmsg
YW5kIHNvbHZlIHRoaXMgaW4gdGhlIHByb2Nlc3MuCisKKyAgICAgICAgLy8gRklYTUU6IHZpc2li
bGUgY2hlY2sgY2FuIGJlIHJlbW92ZWQgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTUwNzQx
PiBpcyBmaXhlZC4KKyAgICAgICAgaWYgKHRoaXMuX3Zpc2libGUpCisgICAgICAgICAgICB0aGlz
Ll9jb2RlTWlycm9yLnJlZnJlc2goKTsKKyAgICB9CisKICAgICBwcmV0dHlQcmludChwcmV0dHkp
CiAgICAgewogICAgICAgICBmdW5jdGlvbiBwcmV0dHlQcmludEFuZFVwZGF0ZUVkaXRvcigpCkBA
IC05MzcsNyArOTMzLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IgPSBjbGFzcyBUZXh0RWRp
dG9yIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICB2YXIgY29vcmRpbmF0ZXMg
PSB0aGlzLl9jb2RlTWlycm9yLmN1cnNvckNvb3Jkcyh0cnVlLCAicGFnZSIpOwogCiAgICAgICAg
IC8vIEFkanVzdCB0aGUgY29vcmRpbmF0ZXMgdG8gYmUgYmFzZWQgaW4gdGhlIHRleHQgZWRpdG9y
J3Mgc3BhY2UuCi0gICAgICAgIHZhciB0ZXh0RWRpdG9yUmVjdCA9IHRoaXMuX2VsZW1lbnQuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIGxldCB0ZXh0RWRpdG9yUmVjdCA9IHRoaXMu
ZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgY29vcmRpbmF0ZXMudG9w
IC09IHRleHRFZGl0b3JSZWN0LnRvcDsKICAgICAgICAgY29vcmRpbmF0ZXMubGVmdCAtPSB0ZXh0
RWRpdG9yUmVjdC5sZWZ0OwogCkBAIC05NDUsNyArOTQxLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3IgPSBjbGFzcyBUZXh0RWRpdG9yIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAg
ICAgICB0aGlzLl9ib3VuY3lIaWdobGlnaHRFbGVtZW50LnRleHRDb250ZW50ID0gdGV4dENvbnRl
bnQ7CiAgICAgICAgIHRoaXMuX2JvdW5jeUhpZ2hsaWdodEVsZW1lbnQuc3R5bGUudG9wID0gY29v
cmRpbmF0ZXMudG9wICsgInB4IjsKICAgICAgICAgdGhpcy5fYm91bmN5SGlnaGxpZ2h0RWxlbWVu
dC5zdHlsZS5sZWZ0ID0gY29vcmRpbmF0ZXMubGVmdCArICJweCI7Ci0gICAgICAgIHRoaXMuX2Vs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fYm91bmN5SGlnaGxpZ2h0RWxlbWVudCk7CisgICAgICAg
IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9ib3VuY3lIaWdobGlnaHRFbGVtZW50KTsK
IAogICAgICAgICBmdW5jdGlvbiBhbmltYXRpb25FbmRlZCgpCiAgICAgICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVj
b3JkaW5nQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmpzCmluZGV4IDc1OTdiYzgxNTI1
ZWU5NDhkNTFhMTM2NzVmZjdkODUzZDM2MzQ1MTkuLmYzODUxMTA0MzY0NGQ4ZGMzNDBmYzQ1MTUw
ZTVhMWZlYjNiMmEyZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250
ZW50Vmlldy5qcwpAQCAtNDYsMTEgKzQ2LDEzIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29y
ZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyBlCiAg
ICAgICAgIHRoaXMuX3JlbmRlcmluZ0ZyYW1lVGltZWxpbmVPdmVydmlldy5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3LkV2ZW50LlJlY29yZFNlbGVjdGVkLCB0
aGlzLl9yZWNvcmRTZWxlY3RlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fY3VycmVudFRpbWVs
aW5lT3ZlcnZpZXcgPSB0aGlzLl9saW5lYXJUaW1lbGluZU92ZXJ2aWV3OworCisgICAgICAgIC8v
IEZJWE1FOiB1c2UgVmlldy5wcm90b3R5cGUuYWRkU3VidmlldyBvbmNlIDxodHRwczovL3dlYmtp
dC5vcmcvYi8xNDkxOTA+IGlzIGZpeGVkLgogICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fY3VycmVudFRpbWVsaW5lT3ZlcnZpZXcuZWxlbWVudCk7CiAKICAgICAgICAgdGhp
cy5fY29udGVudFZpZXdDb250YWluZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3Q29u
dGFpbmVyOwogICAgICAgICB0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5lci5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5Db250ZW50Vmlld0NvbnRhaW5lci5FdmVudC5DdXJyZW50Q29udGVu
dFZpZXdEaWRDaGFuZ2UsIHRoaXMuX2N1cnJlbnRDb250ZW50Vmlld0RpZENoYW5nZSwgdGhpcyk7
Ci0gICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jb250ZW50Vmlld0NvbnRh
aW5lci5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2NvbnRlbnRWaWV3
Q29udGFpbmVyKTsKIAogICAgICAgICB0aGlzLl9jbGVhclRpbWVsaW5lTmF2aWdhdGlvbkl0ZW0g
PSBuZXcgV2ViSW5zcGVjdG9yLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJjbGVhci10aW1lbGluZSIs
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xlYXIgVGltZWxpbmUiKSwgIkltYWdlcy9OYXZpZ2F0
aW9uSXRlbVRyYXNoLnN2ZyIsIDE1LCAxNSk7CiAgICAgICAgIHRoaXMuX2NsZWFyVGltZWxpbmVO
YXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CdXR0b25OYXZpZ2F0
aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9jbGVhclRpbWVsaW5lLCB0aGlzKTsKQEAgLTIx
MCwxMiArMjEyLDYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcg
PSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGUKICAgICAgICAgdGhpcy5fY29u
dGVudFZpZXdDb250YWluZXIuZ29Gb3J3YXJkKCk7CiAgICAgfQogCi0gICAgdXBkYXRlTGF5b3V0
KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2N1cnJlbnRUaW1lbGluZU92ZXJ2aWV3LnVwZGF0ZUxh
eW91dEZvclJlc2l6ZSgpOwotICAgICAgICB0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5lci51cGRh
dGVMYXlvdXQoKTsKLSAgICB9Ci0KICAgICBzYXZlVG9Db29raWUoY29va2llKQogICAgIHsKICAg
ICAgICAgY29va2llLnR5cGUgPSBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXdDb29raWVUeXBlLlRp
bWVsaW5lczsKQEAgLTMyNCw2ICszMjAsMTMgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3Jk
aW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGUKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBsYXlv
dXQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fY3VycmVudFRpbWVsaW5lT3ZlcnZpZXcudXBkYXRl
TGF5b3V0Rm9yUmVzaXplKCk7CisgICAgfQorCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX2N1cnJl
bnRDb250ZW50Vmlld0RpZENoYW5nZShldmVudCkKQEAgLTMzOCw2ICszNDEsNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lUmVjb3Jk
aW5nQ29udGVudFZpZXcgZQogICAgICAgICBpZiAobmV3VGltZWxpbmVPdmVydmlldyAhPT0gdGhp
cy5fY3VycmVudFRpbWVsaW5lT3ZlcnZpZXcpIHsKICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRU
aW1lbGluZU92ZXJ2aWV3LmhpZGRlbigpOwogCisgICAgICAgICAgICAvLyBGSVhNRTogdXNlIFZp
ZXcucHJvdG90eXBlLnJlcGxhY2VTdWJ2aWV3IG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0
OTE5MD4gaXMgZml4ZWQuCiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuaW5zZXJ0QmVmb3JlKG5l
d1RpbWVsaW5lT3ZlcnZpZXcuZWxlbWVudCwgdGhpcy5fY3VycmVudFRpbWVsaW5lT3ZlcnZpZXcu
ZWxlbWVudCk7CiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fY3Vy
cmVudFRpbWVsaW5lT3ZlcnZpZXcuZWxlbWVudCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264890</attachid>
            <date>2015-11-05 14:56:44 -0800</date>
            <delta_ts>2015-11-05 16:04:54 -0800</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-150729-20151105145545.patch</filename>
            <type>text/plain</type>
            <size>29116</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAx
ODhiZjdmNmJmOWZjYTY2MDM2NzM0OTdlYzdhYWRiODNkM2Y4OGJkLi5iMmUwNWZjZGJhZjk4YWUx
ZTQyMWQ3YjZhZjJhZjM2ZDFlMWM1MjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAxNS0xMS0wNSAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ29udmVydCByZW1haW5pbmcgQ29udGVudFZpZXdz
IHRvIFZpZXcgYmFzZSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUwNzI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVmYWN0b3IgY29udGVudCB2aWV3cyB0byByZXVzZSBWaWV3IGZlYXR1cmVz
OiByZW1vdmUgdXBkYXRlTGF5b3V0IGFuZAorICAgICAgICBlbGVtZW50IGdldHRlcnMsIGFuZCB1
c2UgVmlldy5wcm90b3R5cGUuYWRkU3VidmlldyBhbmQgcmVtb3ZlU3VidmlldworICAgICAgICB3
aGVyZSBhcHByb3ByaWF0ZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQXBwbGlj
YXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBw
bGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcucHJvdG90eXBlLl9jcmVhdGVEYXRhR3JpZCk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DbHVzdGVyQ29udGVudFZpZXcuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ2x1c3RlckNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5DbHVzdGVyQ29udGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0
ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db29raWVTdG9yYWdlQ29udGVudFZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5fcmVidWlsZFRhYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVTdG9y
YWdlQ29udGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0ZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9ET01TdG9yYWdlQ29udGVudFZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0
ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlQ29udGVudFZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlv
dXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVDb250ZW50Vmlldy5wcm90b3R5cGUu
dXBkYXRlTGF5b3V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0Rh
dGFiYXNlVGFibGVDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFz
ZVRhYmxlQ29udGVudFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVD
b250ZW50Vmlldy5wcm90b3R5cGUuX3F1ZXJ5RmluaXNoZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRhdGFiYXNlVGFibGVDb250ZW50Vmlldy5wcm90b3R5cGUuX3F1ZXJ5RXJyb3IpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRm9udFJlc291cmNlQ29udGVudFZpZXcuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRm9udFJlc291cmNlQ29udGVudFZpZXcucHJvdG90eXBlLmxh
eW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRm9udFJlc291cmNlQ29udGVudFZpZXcpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3LnByb3RvdHlwZS51
cGRhdGVMYXlvdXQpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvSW5k
ZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3LnByb3RvdHlw
ZS51cGRhdGVMYXlvdXQpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
TG9nQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLmxheW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZpZXcu
cHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9OZXR3b3JrR3JpZENvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5ldHdvcmtHcmlkQ29udGVudFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtH
cmlkQ29udGVudFZpZXcucHJvdG90eXBlLm5lZWRzTGF5b3V0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrR3JpZENvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk5ldHdvcmtHcmlkQ29udGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91
dCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9PdmVydmlld1RpbWVs
aW5lVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PdmVydmlld1RpbWVsaW5lVmlldyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuT3ZlcnZpZXdUaW1lbGluZVZpZXcucHJvdG90eXBlLmxh
eW91dCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRDb250
ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRDb250ZW50Vmlldy5wcm90
b3R5cGUuX2NvbnRlbnRXaWxsUG9wdWxhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dENvbnRlbnRWaWV3LnByb3RvdHlwZS51cGRhdGVMYXlvdXQpOiBEZWxldGVkLgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvVGV4dENvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dENvbnRl
bnRWaWV3LnByb3RvdHlwZS51cGRhdGVMYXlvdXQpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5sYXlv
dXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLmdldCBlbGVt
ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlw
ZS51cGRhdGVMYXlvdXQpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
VGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlLl9jdXJyZW50
Q29udGVudFZpZXdEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVj
b3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlLnVwZGF0ZUxheW91dCk6IERlbGV0ZWQuCisKIDIw
MTUtMTEtMDUgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogUHJldHR5IHByaW50IGZhbHNlbHkgdHJpZ2dlcnMgb24gc29tZSBK
UyB0aGF0IHdhc24ndCBtaW5pZmllZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BcHBsaWNhdGlvbkNh
Y2hlRnJhbWVDb250ZW50Vmlldy5qcwppbmRleCAwMTg2ZGMzNWRkNzBiODU5ZTA0YzUzZGQ1ODFj
N2RiZDNhOGEzNWEzLi41YTgyZDVmY2M3Y2ZjMjQ1Yjg2ZGE4MGY4ODY4NzlmY2JjMWVjMjJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BcHBs
aWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5q
cwpAQCAtMTcxLDcgKzE3MSw3IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVD
b250ZW50VmlldyA9IGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlCiAgICAgICAgIHRo
aXMuX2RhdGFHcmlkLnNvcnRDb2x1bW5JZGVudGlmaWVyID0gInVybCI7CiAgICAgICAgIHRoaXMu
X2RhdGFHcmlkLnNvcnRPcmRlciA9IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5Tb3J0T3JkZXIuQXNj
ZW5kaW5nOwogCi0gICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kYXRhR3Jp
ZC5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2RhdGFHcmlkKTsKICAg
ICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlTGF5b3V0KCk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DbHVzdGVyQ29udGVu
dFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DbHVz
dGVyQ29udGVudFZpZXcuanMKaW5kZXggMDQxMzU5MTYyOTk1NzE2MThkZTU5NjFhOTUyM2JjNzFi
MjI0YzkwOS4uMzRiOGJmYjViNjJlNTA5OWMyOTIwOGY5ZDNjMzM3Y2MyZDkxYjBkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2x1c3RlckNv
bnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NsdXN0ZXJDb250ZW50Vmlldy5qcwpAQCAtMzMsNyArMzMsNyBAQCBXZWJJbnNwZWN0b3Iu
Q2x1c3RlckNvbnRlbnRWaWV3ID0gY2xhc3MgQ2x1c3RlckNvbnRlbnRWaWV3IGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLgogCiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyID0gbmV3IFdl
Ykluc3BlY3Rvci5Db250ZW50Vmlld0NvbnRhaW5lcjsKICAgICAgICAgdGhpcy5fY29udGVudFZp
ZXdDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudFZpZXdDb250
YWluZXIuRXZlbnQuQ3VycmVudENvbnRlbnRWaWV3RGlkQ2hhbmdlLCB0aGlzLl9jdXJyZW50Q29u
dGVudFZpZXdEaWRDaGFuZ2UsIHRoaXMpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fY29udGVudFZpZXdDb250YWluZXIuZWxlbWVudCk7CisgICAgICAgIHRoaXMuYWRk
U3Vidmlldyh0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5lcik7CiAKICAgICAgICAgV2ViSW5zcGVj
dG9yLkNvbnRlbnRWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3
LkV2ZW50LlNlbGVjdGlvblBhdGhDb21wb25lbnRzRGlkQ2hhbmdlLCB0aGlzLl9jb250ZW50Vmll
d1NlbGVjdGlvblBhdGhDb21wb25lbnREaWRDaGFuZ2UsIHRoaXMpOwogICAgICAgICBXZWJJbnNw
ZWN0b3IuQ29udGVudFZpZXcuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudFZp
ZXcuRXZlbnQuU3VwcGxlbWVudGFsUmVwcmVzZW50ZWRPYmplY3RzRGlkQ2hhbmdlLCB0aGlzLl9j
b250ZW50Vmlld1N1cHBsZW1lbnRhbFJlcHJlc2VudGVkT2JqZWN0c0RpZENoYW5nZSwgdGhpcyk7
CkBAIC02MCwxMSArNjAsNiBAQCBXZWJJbnNwZWN0b3IuQ2x1c3RlckNvbnRlbnRWaWV3ID0gY2xh
c3MgQ2x1c3RlckNvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLgogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKLSAgICB1cGRhdGVMYXlvdXQoKQotICAgIHsKLSAgICAgICAgdGhp
cy5fY29udGVudFZpZXdDb250YWluZXIudXBkYXRlTGF5b3V0KCk7Ci0gICAgfQotCiAgICAgc2hv
d24oKQogICAgIHsKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdDb250YWluZXIuc2hvd24oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nv
b2tpZVN0b3JhZ2VDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0Nvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5qcwppbmRleCBkMWRlMjY4NGRk
YWY4MDc4ZWEzNzYwNTdkZWMxMmY4MzI2Y2UwZTI3Li4wZGJiNWJiMzVjZTM3MjlmYzBkNjk5N2Zi
ZTFkMTlmMjZmNTkwNjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Db29raWVTdG9yYWdlQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3
LmpzCkBAIC03OCwxMiArNzgsNiBAQCBXZWJJbnNwZWN0b3IuQ29va2llU3RvcmFnZUNvbnRlbnRW
aWV3ID0gY2xhc3MgQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3IGV4dGVuZHMgVwogICAgICAgICBQ
YWdlQWdlbnQuZ2V0Q29va2llcyhjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9CiAKLSAgICB1
cGRhdGVMYXlvdXQoKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2RhdGFHcmlkKQotICAgICAg
ICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlTGF5b3V0KCk7Ci0gICAgfQotCiAgICAgc2F2ZVRv
Q29va2llKGNvb2tpZSkKICAgICB7CiAgICAgICAgIGNvb2tpZS50eXBlID0gV2ViSW5zcGVjdG9y
LkNvbnRlbnRWaWV3Q29va2llVHlwZS5Db29raWVTdG9yYWdlOwpAQCAtMTQ0LDcgKzEzOCw3IEBA
IFdlYkluc3BlY3Rvci5Db29raWVTdG9yYWdlQ29udGVudFZpZXcgPSBjbGFzcyBDb29raWVTdG9y
YWdlQ29udGVudFZpZXcgZXh0ZW5kcyBXCiAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IG5l
dyBXZWJJbnNwZWN0b3IuRGF0YUdyaWQoY29sdW1ucywgbnVsbCwgdGhpcy5fZGVsZXRlQ2FsbGJh
Y2suYmluZCh0aGlzKSk7CiAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5Tb3J0Q2hhbmdlZCwgdGhpcy5fc29ydERh
dGFHcmlkLCB0aGlzKTsKIAotICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRo
aXMuX2RhdGFHcmlkLmVsZW1lbnQpOworICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMu
X2RhdGFHcmlkKTsKICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnVwZGF0ZUxheW91dCgpOwog
ICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qcwppbmRleCBkMmRj
OThiMDEwYjVjODNhOTRjYjBjNTFiNDY4M2U0ODA4MDBjODhhLi45MmYzZDcxNTJkNjlkZmQ0Yzg2
ZjM4N2JiMGEwM2M1NzZlMmYwYzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9ET01TdG9yYWdlQ29udGVudFZpZXcuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NU3RvcmFnZUNvbnRlbnRWaWV3
LmpzCkBAIC00Niw3ICs0Niw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcg
PSBjbGFzcyBET01TdG9yYWdlQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwCiAgICAgICAgIHRo
aXMuX2RhdGFHcmlkLnNvcnRDb2x1bW5JZGVudGlmaWVyID0gImtleSI7CiAgICAgICAgIHRoaXMu
X2RhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LlNv
cnRDaGFuZ2VkLCB0aGlzLl9zb3J0RGF0YUdyaWQsIHRoaXMpOwogCi0gICAgICAgIHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kYXRhR3JpZC5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5h
ZGRTdWJ2aWV3KHRoaXMuX2RhdGFHcmlkKTsKIAogICAgICAgICB0aGlzLl9wb3B1bGF0ZSgpOwog
ICAgIH0KQEAgLTExMiwxMiArMTEyLDYgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50
VmlldyA9IGNsYXNzIERPTVN0b3JhZ2VDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3AKICAgICAg
ICAgdGhpcy5fc29ydERhdGFHcmlkKCk7CiAgICAgfQogCi0gICAgdXBkYXRlTGF5b3V0KCkKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl9kYXRhR3JpZCkKLSAgICAgICAgICAgIHRoaXMuX2RhdGFH
cmlkLnVwZGF0ZUxheW91dCgpOwotICAgIH0KLQogICAgIGdldCBzY3JvbGxhYmxlRWxlbWVudHMo
KQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9kYXRhR3JpZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50Vmlldy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250
ZW50Vmlldy5qcwppbmRleCAxNDMyZWZhZWVmMGY4MWIwYmFlYjYzOTVhN2MwZWRiZjk0NjU0OTI3
Li5hZGQzN2IyNDM5N2ZiNjU4YzQ1MmRmMGRmYzkzYzE2ZmFhMWY2ZGIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlQ29udGVudFZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9N
VHJlZUNvbnRlbnRWaWV3LmpzCkBAIC04MSwxMSArODEsNiBAQCBXZWJJbnNwZWN0b3IuRE9NVHJl
ZUNvbnRlbnRWaWV3ID0gY2xhc3MgRE9NVHJlZUNvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVj
dG9yLgogICAgICAgICByZXR1cm4gW3RoaXMuZWxlbWVudF07CiAgICAgfQogCi0gICAgdXBkYXRl
TGF5b3V0KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2RvbVRyZWVPdXRsaW5lLnVwZGF0ZVNlbGVj
dGlvbigpOwotICAgIH0KLQogICAgIHNob3duKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2RvbVRy
ZWVPdXRsaW5lLnNldFZpc2libGUodHJ1ZSwgV2ViSW5zcGVjdG9yLmlzQ29uc29sZUZvY3VzZWQo
KSk7CkBAIC0yODQsNiArMjc5LDEzIEBAIFdlYkluc3BlY3Rvci5ET01UcmVlQ29udGVudFZpZXcg
PSBjbGFzcyBET01UcmVlQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAgICAgICAg
IHRoaXMuX3JldmVhbFNlYXJjaFJlc3VsdCh0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXgs
IGNoYW5nZUZvY3VzKTsKICAgICB9CiAKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGxheW91dCgp
CisgICAgeworICAgICAgICB0aGlzLl9kb21UcmVlT3V0bGluZS51cGRhdGVTZWxlY3Rpb24oKTsK
KyAgICB9CisKICAgICAvLyBQcml2YXRlCiAKICAgICBfcmV2ZWFsU2VhcmNoUmVzdWx0KGluZGV4
LCBjaGFuZ2VGb2N1cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RhdGFiYXNlVGFibGVDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RhdGFiYXNlVGFibGVDb250ZW50Vmlldy5qcwpp
bmRleCBjNWU5NDY3ZTk0ZjcxOGVlMTNhOGU1NmE3OTZkMGUwNDE0NmMzNzQwLi45NjI2MjkyNjJi
NDgzNGQ2MTE5NTk2MjIwOWNjN2EzMWEzMDA0NGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhYmFzZVRhYmxlQ29udGVudFZpZXcuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YWJhc2VU
YWJsZUNvbnRlbnRWaWV3LmpzCkBAIC0zMyw2ICszMyw3IEBAIFdlYkluc3BlY3Rvci5EYXRhYmFz
ZVRhYmxlQ29udGVudFZpZXcgPSBjbGFzcyBEYXRhYmFzZVRhYmxlQ29udGVudFZpZXcgZXh0ZW5k
cyBXCiAKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdl
Ykluc3BlY3Rvci5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiZGF0YWJhc2UtdGFibGUtcmVmcmVzaCIs
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVmcmVzaCIpLCAiSW1hZ2VzL1JlbG9hZEZ1bGwuc3Zn
IiwgMTMsIDEzKTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNs
aWNrZWQsIHRoaXMuX3JlZnJlc2hCdXR0b25DbGlja2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5f
bWVzc2FnZVRleHRWaWV3RWxlbWVudCA9IG51bGw7CiAKICAgICAgICAgdGhpcy51cGRhdGUoKTsK
ICAgICB9CkBAIC04MiwyNyArODMsNDAgQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVDb250
ZW50VmlldyA9IGNsYXNzIERhdGFiYXNlVGFibGVDb250ZW50VmlldyBleHRlbmRzIFcKICAgICAg
ICAgLy8gSXQgd291bGQgYmUgbmljZSB0byBkbyBiZXR0ZXIgdGhhbiBjcmVhdGluZyBhIG5ldyBk
YXRhIGdyaWQgZWFjaCB0aW1lIHRoZSB0YWJsZSBpcyB1cGRhdGVkLCBidXQgdGhlIHRhYmxlIHVw
ZGF0aW5nCiAgICAgICAgIC8vIGRvZXNuJ3QgaGFwcGVuIHZlcnkgZnJlcXVlbnRseS4gQWRkaXRp
b25hbGx5LCB1c2luZyBEYXRhR3JpZCdzIGNyZWF0ZVNvcnRhYmxlRGF0YUdyaWQgbWFrZXMgb3Vy
IGNvZGUgbXVjaCBjbGVhbmVyIGFuZCBpdCBrbm93cwogICAgICAgICAvLyBob3cgdG8gc29ydCBh
cmJpdHJhcnkgY29sdW1ucy4KLSAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7
CisgICAgICAgIGlmICh0aGlzLl9kYXRhR3JpZCkgeworICAgICAgICAgICAgdGhpcy5yZW1vdmVT
dWJ2aWV3KHRoaXMuX2RhdGFHcmlkKTsKKyAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkID0gbnVs
bDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0aGlzLl9tZXNzYWdlVGV4dFZpZXdFbGVtZW50
KQorICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVRleHRWaWV3RWxlbWVudC5yZW1vdmUoKTsKIAot
ICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5jcmVhdGVTb3J0
YWJsZURhdGFHcmlkKGNvbHVtbk5hbWVzLCB2YWx1ZXMpOwotICAgICAgICBpZiAoIXRoaXMuX2Rh
dGFHcmlkIHx8ICF0aGlzLl9kYXRhR3JpZC5lbGVtZW50KSB7Ci0gICAgICAgICAgICB0aGlzLl9k
YXRhR3JpZCA9IHVuZGVmaW5lZDsKKyAgICAgICAgaWYgKGNvbHVtbk5hbWVzLmxlbmd0aCkgewor
ICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuY3JlYXRl
U29ydGFibGVEYXRhR3JpZChjb2x1bW5OYW1lcywgdmFsdWVzKTsKIAotICAgICAgICAgICAgLy8g
SWYgdGhlIERhdGFHcmlkIGlzIGVtcHR5LCB0aGVuIHdlIHdlcmUgcmV0dXJuZWQgYSB0YWJsZSB3
aXRoIG5vIGNvbHVtbnMuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgdGFibGUgaGFzCi0gICAgICAg
ICAgICAvLyBubyBkYXRhLCB0aGUgU0VMRUNUIHF1ZXJ5IG9ubHkgcmV0dXJucyBjb2x1bW4gbmFt
ZXMgd2hlbiB0aGVyZSBpcyBkYXRhLgotICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNo
aWxkcmVuKCk7Ci0gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVj
dG9yLmNyZWF0ZU1lc3NhZ2VUZXh0VmlldyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRoZSDigJwl
c+KAnVxudGFibGUgaXMgZW1wdHkuIikuZm9ybWF0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QubmFt
ZSksIGZhbHNlKSk7CisgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fZGF0YUdyaWQp
OworICAgICAgICAgICAgdGhpcy51cGRhdGVMYXlvdXQoKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kYXRh
R3JpZC5lbGVtZW50KTsKLSAgICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlTGF5b3V0KCk7Cisg
ICAgICAgIC8vIFdlIHdlcmUgcmV0dXJuZWQgYSB0YWJsZSB3aXRoIG5vIGNvbHVtbnMuIFRoaXMg
Y2FuIGhhcHBlbiB3aGVuIGEgdGFibGUgaGFzCisgICAgICAgIC8vIG5vIGRhdGEsIHRoZSBTRUxF
Q1QgcXVlcnkgb25seSByZXR1cm5zIGNvbHVtbiBuYW1lcyB3aGVuIHRoZXJlIGlzIGRhdGEuCisg
ICAgICAgIHRoaXMuX21lc3NhZ2VUZXh0Vmlld0VsZW1lbnQgPSBXZWJJbnNwZWN0b3IuY3JlYXRl
TWVzc2FnZVRleHRWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhlIOKAnCVz4oCdXG50YWJs
ZSBpcyBlbXB0eS4iKS5mb3JtYXQodGhpcy5yZXByZXNlbnRlZE9iamVjdC5uYW1lKSwgZmFsc2Up
OworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbWVzc2FnZVRleHRWaWV3
RWxlbWVudCk7CiAgICAgfQogCiAgICAgX3F1ZXJ5RXJyb3IoZXJyb3IpCiAgICAgewotICAgICAg
ICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFw
cGVuZENoaWxkKFdlYkluc3BlY3Rvci5jcmVhdGVNZXNzYWdlVGV4dFZpZXcoV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJBbiBlcnJvciBvY2N1cmVkIHRyeWluZyB0b1xucmVhZCB0aGUg4oCcJXPigJ0g
dGFibGUuIikuZm9ybWF0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QubmFtZSksIHRydWUpKTsKKyAg
ICAgICAgaWYgKHRoaXMuX2RhdGFHcmlkKSB7CisgICAgICAgICAgICB0aGlzLnJlbW92ZVN1YnZp
ZXcodGhpcy5fZGF0YUdyaWQpOworICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSBudWxsOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX21lc3NhZ2VUZXh0Vmlld0VsZW1lbnQpCisg
ICAgICAgICAgICB0aGlzLl9tZXNzYWdlVGV4dFZpZXdFbGVtZW50LnJlbW92ZSgpOworCisgICAg
ICAgIHRoaXMuX21lc3NhZ2VUZXh0Vmlld0VsZW1lbnQgPSBXZWJJbnNwZWN0b3IuY3JlYXRlTWVz
c2FnZVRleHRWaWV3KFdlYkluc3BlY3Rvci5VSVN0cmluZygiQW4gZXJyb3Igb2NjdXJlZCB0cnlp
bmcgdG9cbnJlYWQgdGhlIOKAnCVz4oCdIHRhYmxlLiIpLmZvcm1hdCh0aGlzLnJlcHJlc2VudGVk
T2JqZWN0Lm5hbWUpLCB0cnVlKTsKKyAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRo
aXMuX21lc3NhZ2VUZXh0Vmlld0VsZW1lbnQpOwogICAgIH0KIAogICAgIF9yZWZyZXNoQnV0dG9u
Q2xpY2tlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Gb250UmVzb3VyY2VDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3LmpzCmluZGV4IDk1
Y2NiN2YwMTIwMTUyMzc5ZGU3NzhiZjBhNTYzM2QyODIwYzQ5NzEuLjJlNTZhMDkwYjc3ZDViNmYx
MmNlZWYxOGYzOTE3NTc1MDFlNDg4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbnRSZXNvdXJjZUNvbnRl
bnRWaWV3LmpzCkBAIC0xMTIsMTEgKzExMiw2IEBAIFdlYkluc3BlY3Rvci5Gb250UmVzb3VyY2VD
b250ZW50VmlldyA9IGNsYXNzIEZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3IGV4dGVuZHMgV2ViCiAg
ICAgICAgIHRoaXMuc2l6ZVRvRml0KCk7CiAgICAgfQogCi0gICAgdXBkYXRlTGF5b3V0KCkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuc2l6ZVRvRml0KCk7Ci0gICAgfQotCiAgICAgc2hvd24oKQogICAg
IHsKICAgICAgICAgLy8gQWRkIHRoZSBzdHlsZSBlbGVtZW50IHNpbmNlIGl0IGlzIHJlbW92ZWQg
d2hlbiBoaWRkZW4uCkBAIC0xNDAsNiArMTM1LDEzIEBAIFdlYkluc3BlY3Rvci5Gb250UmVzb3Vy
Y2VDb250ZW50VmlldyA9IGNsYXNzIEZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3IGV4dGVuZHMgV2Vi
CiAgICAgICAgIGlmICh0aGlzLl9mb250T2JqZWN0VVJMKQogICAgICAgICAgICAgVVJMLnJldm9r
ZU9iamVjdFVSTCh0aGlzLl9mb250T2JqZWN0VVJMKTsKICAgICB9CisKKyAgICAvLyBQcm90ZWN0
ZWQKKworICAgIGxheW91dCgpCisgICAgeworICAgICAgICB0aGlzLnNpemVUb0ZpdCgpOworICAg
IH0KIH0KIAogV2ViSW5zcGVjdG9yLkZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3Ll91bmlxdWVGb250
SWRlbnRpZmllciA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5kZXhlZERhdGFiYXNl
T2JqZWN0U3RvcmVDb250ZW50Vmlldy5qcwppbmRleCAwZWE5YTBiZGU2ODgzOGQ1YzhiYzBiOGM2
MjI3YWI3OTI0NDI1ODUxLi5hYzg2MDU0MWJiNTZjMDEzZjMwMmU4YTY5ODYwYjhkMjUyNDA2M2Zm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9J
bmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3Jl
Q29udGVudFZpZXcuanMKQEAgLTY5LDcgKzY5LDcgQEAgV2ViSW5zcGVjdG9yLkluZGV4ZWREYXRh
YmFzZU9iamVjdFN0b3JlQ29udGVudFZpZXcgPSBjbGFzcyBJbmRleGVkRGF0YWJhc2VPYmplY3QK
IAogICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IG5ldyBXZWJJbnNwZWN0b3IuRGF0YUdyaWQoY29s
dW1uSW5mbyk7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnNjcm9sbENvbnRhaW5lci5hZGRFdmVu
dExpc3RlbmVyKCJzY3JvbGwiLCB0aGlzLl9kYXRhR3JpZFNjcm9sbGVkLmJpbmQodGhpcykpOwot
ICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZGF0YUdyaWQuZWxlbWVudCk7
CisgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9kYXRhR3JpZCk7CiAKICAgICAgICAgdGhp
cy5fZW50cmllcyA9IFtdOwogCkBAIC0xMDAsMTEgKzEwMCw2IEBAIFdlYkluc3BlY3Rvci5JbmRl
eGVkRGF0YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3ID0gY2xhc3MgSW5kZXhlZERhdGFiYXNl
T2JqZWN0CiAgICAgICAgIGNvb2tpZS5vYmplY3RTdG9yZUluZGV4TmFtZSA9IHRoaXMuX29iamVj
dFN0b3JlSW5kZXggJiYgdGhpcy5fb2JqZWN0U3RvcmVJbmRleC5uYW1lOwogICAgIH0KIAotICAg
IHVwZGF0ZUxheW91dCgpCi0gICAgewotICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVMYXlv
dXQoKTsKLSAgICB9Ci0KICAgICAvLyBQcml2YXRlCiAKICAgICBfcmVzZXQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZp
ZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qcwppbmRleCAzOTU3N2I1NDRhNGEwNGY1ZmYzMmEyYTE5ZDgzOWI2OWI2OGU4OTI0
Li5kZDg1ZDJmM2U3MmI5MzVhYmQ2OGI3YWRlMDU2NmE4ZjVlN2QwODFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250
ZW50Vmlldy5qcwpAQCAtMTA3LDEzICsxMDcsNiBAQCBXZWJJbnNwZWN0b3IuTG9nQ29udGVudFZp
ZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50Vgog
ICAgICAgICByZXR1cm4gdGhpcy5fbG9nVmlld0NvbnRyb2xsZXI7CiAgICAgfQogCi0gICAgdXBk
YXRlTGF5b3V0KCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnVwZGF0ZUxheW91dCgpOwotCi0gICAg
ICAgIHRoaXMuX3Njcm9sbEVsZW1lbnRIZWlnaHQgPSB0aGlzLm1lc3NhZ2VzRWxlbWVudC5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7Ci0gICAgfQotCiAgICAgZ2V0IHNjcm9sbGFibGVF
bGVtZW50cygpCiAgICAgewogICAgICAgICByZXR1cm4gW3RoaXMuZWxlbWVudF07CkBAIC0yNTMs
NiArMjQ2LDEzIEBAIFdlYkluc3BlY3Rvci5Mb2dDb250ZW50VmlldyA9IGNsYXNzIExvZ0NvbnRl
bnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWCiAgICAgICAgICAgICB0aGlzLnBy
b21wdC5mb2N1cygpOwogICAgIH0KIAorICAgIC8vIFByb3RlY3RlZAorCisgICAgbGF5b3V0KCkK
KyAgICB7CisgICAgICAgIHRoaXMuX3Njcm9sbEVsZW1lbnRIZWlnaHQgPSB0aGlzLm1lc3NhZ2Vz
RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7CisgICAgfQorCiAgICAgLy8g
UHJpdmF0ZQogCiAgICAgX2Zvcm1hdE1lc3NhZ2VzQXNEYXRhKG9ubHlTZWxlY3RlZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtH
cmlkQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9OZXR3b3JrR3JpZENvbnRlbnRWaWV3LmpzCmluZGV4IGYzZDY3MmY3MjE5ZjQ3MWZkZDg4
NjI3NWIyYjY3OWMyZjlmNDk4YTIuLmEzNGVkMzU3NDM3NDBhZDFkZTE2ZTA5YzI1ODVjNzg4OWIy
ZGYzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL05ldHdvcmtHcmlkQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya0dyaWRDb250ZW50Vmlldy5qcwpAQCAtODYsNyAr
ODYsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0dyaWRDb250ZW50VmlldyA9IGNsYXNzIE5ldHdv
cmtHcmlkQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbgogICAgICAgICB0aGlzLl9kYXRhR3JpZC5z
b3J0T3JkZXIgPSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuU29ydE9yZGVyLkFzY2VuZGluZzsKIAog
ICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibmV0d29yay1ncmlkIik7Ci0gICAg
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kYXRhR3JpZC5lbGVtZW50KTsKKyAg
ICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2RhdGFHcmlkKTsKIAogICAgICAgICB2YXIgbmV0
d29ya1RpbWVsaW5lID0gV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5wZXJzaXN0ZW50TmV0
d29ya1RpbWVsaW5lOwogICAgICAgICBuZXR3b3JrVGltZWxpbmUuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuVGltZWxpbmUuRXZlbnQuUmVjb3JkQWRkZWQsIHRoaXMuX25ldHdvcmtUaW1l
bGluZVJlY29yZEFkZGVkLCB0aGlzKTsKQEAgLTEzNiwyNyArMTM2LDEyIEBAIFdlYkluc3BlY3Rv
ci5OZXR3b3JrR3JpZENvbnRlbnRWaWV3ID0gY2xhc3MgTmV0d29ya0dyaWRDb250ZW50VmlldyBl
eHRlbmRzIFdlYkluCiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmNsb3NlZCgpOwogICAgIH0KIAot
ICAgIHVwZGF0ZUxheW91dCgpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fc2NoZWR1bGVkTGF5
b3V0VXBkYXRlSWRlbnRpZmllcikgewotICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUo
dGhpcy5fc2NoZWR1bGVkTGF5b3V0VXBkYXRlSWRlbnRpZmllcik7Ci0gICAgICAgICAgICBkZWxl
dGUgdGhpcy5fc2NoZWR1bGVkTGF5b3V0VXBkYXRlSWRlbnRpZmllcjsKLSAgICAgICAgfQotCi0g
ICAgICAgIHRoaXMuX2RhdGFHcmlkLnVwZGF0ZUxheW91dCgpOwotCi0gICAgICAgIHRoaXMuX3By
b2Nlc3NQZW5kaW5nUmVjb3JkcygpOwotICAgIH0KLQogICAgIG5lZWRzTGF5b3V0KCkKICAgICB7
CiAgICAgICAgIGlmICghdGhpcy5fbmV0d29ya1NpZGViYXJQYW5lbC52aXNpYmxlKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICh0aGlzLl9zY2hlZHVsZWRMYXlvdXRVcGRhdGVJ
ZGVudGlmaWVyKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3NjaGVkdWxl
ZExheW91dFVwZGF0ZUlkZW50aWZpZXIgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy51cGRh
dGVMYXlvdXQuYmluZCh0aGlzKSk7CisgICAgICAgIHN1cGVyLm5lZWRzTGF5b3V0KCk7CiAgICAg
fQogCiAgICAgcmVzZXQoKQpAQCAtMTY1LDYgKzE1MCwxMyBAQCBXZWJJbnNwZWN0b3IuTmV0d29y
a0dyaWRDb250ZW50VmlldyA9IGNsYXNzIE5ldHdvcmtHcmlkQ29udGVudFZpZXcgZXh0ZW5kcyBX
ZWJJbgogICAgICAgICB0aGlzLl9kYXRhR3JpZC5yZXNldCgpOwogICAgIH0KIAorICAgIC8vIFBy
b3RlY3RlZAorCisgICAgbGF5b3V0KCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2Nlc3NQZW5k
aW5nUmVjb3JkcygpOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAogICAgIF9wcm9jZXNzUGVu
ZGluZ1JlY29yZHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9PdmVydmlld1RpbWVsaW5lVmlldy5qcwppbmRleCBlZGZk
NDRiMzUxMTFkYmNiZjgyMTUyZWI5MzM4MTE4MGNlN2NjMTQ0Li5hNmU2ZWMzZDEwNzllNDYyZWEx
Mzk2YTkzMTg1ZDBiZTBmZGE1NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9PdmVydmlld1RpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9PdmVydmlld1RpbWVsaW5lVmlldy5q
cwpAQCAtNDEsOCArNDEsNyBAQCBXZWJJbnNwZWN0b3IuT3ZlcnZpZXdUaW1lbGluZVZpZXcgPSBj
bGFzcyBPdmVydmlld1RpbWVsaW5lVmlldyBleHRlbmRzIFdlYkluc3BlYwogCiAgICAgICAgIHRo
aXMuX3RpbWVsaW5lUnVsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUnVsZXI7CiAgICAg
ICAgIHRoaXMuX3RpbWVsaW5lUnVsZXIuYWxsb3dzQ2xpcHBlZExhYmVscyA9IHRydWU7Ci0gICAg
ICAgIC8vIEZJWE1FOiBjaGFuZ2UgdG8gYHRoaXMuYWRkU3Vidmlldyh0aGlzLl90aW1lbGluZVJ1
bGVyKWAgb25jZSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTUwNzAzPiBpcyBmaXhlZC4KLSAgICAg
ICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3RpbWVsaW5lUnVsZXIuZWxlbWVudCk7
CisgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl90aW1lbGluZVJ1bGVyKTsKIAogICAgICAg
ICB0aGlzLl9jdXJyZW50VGltZU1hcmtlciA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVNYXJr
ZXIoMCwgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFya2VyLlR5cGUuQ3VycmVudFRpbWUpOwogICAg
ICAgICB0aGlzLl90aW1lbGluZVJ1bGVyLmFkZE1hcmtlcih0aGlzLl9jdXJyZW50VGltZU1hcmtl
cik7CkBAIC0xODIsOSArMTgxLDYgQEAgV2ViSW5zcGVjdG9yLk92ZXJ2aWV3VGltZWxpbmVWaWV3
ID0gY2xhc3MgT3ZlcnZpZXdUaW1lbGluZVZpZXcgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIC8vIEZJWE1FOiByZW1vdmUgb25jZSA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTUwNzAzPiBpcyBmaXhlZC4KLSAgICAgICAgdGhpcy5fdGltZWxpbmVS
dWxlci51cGRhdGVMYXlvdXQoKTsKLQogICAgICAgICB0aGlzLl9wcm9jZXNzUGVuZGluZ1JlcHJl
c2VudGVkT2JqZWN0cygpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRDb250ZW50Vmlldy5qcwppbmRl
eCA0MDhlYzVjZGMyN2Y5ZGVhMDBmM2VhMjM0ZmI3NmFiYWFjYzQ5MmRkLi4xZjdiMWZmMjZhNGVl
ZjIwYTAzZjhjZjYwZGFiZmM4MzU1YjRjNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRDb250ZW50Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRDb250ZW50Vmlldy5q
cwpAQCAtMTg0LDExICsxODQsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0Q29udGVudFZpZXcgPSBj
bGFzcyBTY3JpcHRDb250ZW50VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5DbwogICAgICAgICB0
aGlzLl90ZXh0RWRpdG9yLnJldmVhbE5leHRTZWFyY2hSZXN1bHQoY2hhbmdlRm9jdXMpOwogICAg
IH0KIAotICAgIHVwZGF0ZUxheW91dCgpCi0gICAgewotICAgICAgICB0aGlzLl90ZXh0RWRpdG9y
LnVwZGF0ZUxheW91dCgpOwotICAgIH0KLQogICAgIC8vIFByaXZhdGUKIAogICAgIF9jb250ZW50
V2lsbFBvcHVsYXRlKGV2ZW50KQpAQCAtMjAxLDcgKzE5Niw3IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRDb250ZW50VmlldyA9IGNsYXNzIFNjcmlwdENvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVj
dG9yLkNvCiAgICAgICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnJlYWRPbmx5ID0gZmFsc2U7CiAK
ICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLl90ZXh0RWRpdG9yLmVsZW1lbnQpOworICAgICAgICB0aGlz
LmFkZFN1YnZpZXcodGhpcy5fdGV4dEVkaXRvcik7CiAgICAgfQogCiAgICAgX2NvbnRlbnREaWRQ
b3B1bGF0ZShldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1RleHRDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RleHRDb250ZW50Vmlldy5qcwppbmRleCA0MWM5OTkyMjk2MjQw
MjM1NDc0YmYzMDY3NTZhYTBkNzQwOGQ4YmE3Li5kM2E1ZTU5MjM3OTUzZmMzMGU5YTA2MjJmODc1
ZmYwYjJmNzVhZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9UZXh0Q29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVGV4dENvbnRlbnRWaWV3LmpzCkBAIC0zNSw3ICszNSw3IEBA
IFdlYkluc3BlY3Rvci5UZXh0Q29udGVudFZpZXcgPSBjbGFzcyBUZXh0Q29udGVudFZpZXcgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVuCiAgICAgICAgIHRoaXMuX3RleHRFZGl0b3IuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5FdmVudC5OdW1iZXJPZlNlYXJjaFJl
c3VsdHNEaWRDaGFuZ2UsIHRoaXMuX251bWJlck9mU2VhcmNoUmVzdWx0c0RpZENoYW5nZSwgdGhp
cyk7CiAgICAgICAgIHRoaXMuX3RleHRFZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvci5FdmVudC5Gb3JtYXR0aW5nRGlkQ2hhbmdlLCB0aGlzLl90ZXh0RWRpdG9y
Rm9ybWF0dGluZ0RpZENoYW5nZSwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVu
ZENoaWxkKHRoaXMuX3RleHRFZGl0b3IuZWxlbWVudCk7CisgICAgICAgIHRoaXMuYWRkU3Vidmll
dyh0aGlzLl90ZXh0RWRpdG9yKTsKIAogICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnJlYWRPbmx5
ID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fdGV4dEVkaXRvci5taW1lVHlwZSA9IG1pbWVUeXBlOwpA
QCAtMTQ3LDExICsxNDcsNiBAQCBXZWJJbnNwZWN0b3IuVGV4dENvbnRlbnRWaWV3ID0gY2xhc3Mg
VGV4dENvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbgogICAgICAgICB0aGlz
Ll90ZXh0RWRpdG9yLnJldmVhbE5leHRTZWFyY2hSZXN1bHQoY2hhbmdlRm9jdXMpOwogICAgIH0K
IAotICAgIHVwZGF0ZUxheW91dCgpCi0gICAgewotICAgICAgICB0aGlzLl90ZXh0RWRpdG9yLnVw
ZGF0ZUxheW91dCgpOwotICAgIH0KLQogICAgIC8vIFByaXZhdGUKIAogICAgIF90b2dnbGVQcmV0
dHlQcmludChldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzCmluZGV4IGVhYjAxYjNhZDgwZGRjZDBjMDIyYzlk
ZjcwMzNkMTQ3OGZjZTE4ZmYuLjRjNzE4ZjU3NmMzZjY3NDdmNGNlZDQ1NDYyZGQ1NTM4YmQ2NmVl
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1RleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGV4dEVkaXRvci5qcwpAQCAtMjMsMTQgKzIzLDEzIEBACiAgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IgPSBjbGFz
cyBUZXh0RWRpdG9yIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3IgPSBjbGFzcyBUZXh0RWRpdG9yIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKIHsK
ICAgICBjb25zdHJ1Y3RvcihlbGVtZW50LCBtaW1lVHlwZSwgZGVsZWdhdGUpCiAgICAgewotICAg
ICAgICBzdXBlcigpOworICAgICAgICBzdXBlcihlbGVtZW50KTsKIAotICAgICAgICB0aGlzLl9l
bGVtZW50ID0gZWxlbWVudCB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAg
ICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0ZXh0LWVkaXRvciIsIFdlYkluc3BlY3Rv
ci5TeW50YXhIaWdobGlnaHRlZFN0eWxlQ2xhc3NOYW1lKTsKKyAgICAgICAgdGhpcy5lbGVtZW50
LmNsYXNzTGlzdC5hZGQoInRleHQtZWRpdG9yIiwgV2ViSW5zcGVjdG9yLlN5bnRheEhpZ2hsaWdo
dGVkU3R5bGVDbGFzc05hbWUpOwogCiAgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTQ5MTIwPiBXZWIgSW5zcGVjdG9yOiBQcmVmZXJlbmNlcyBmb3IgVGV4dCBFZGl0b3Ig
YmVoYXZpb3IKICAgICAgICAgdGhpcy5fY29kZU1pcnJvciA9IENvZGVNaXJyb3IodGhpcy5lbGVt
ZW50LCB7CkBAIC03MiwxMSArNzEsNiBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvciA9IGNsYXNz
IFRleHRFZGl0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICAvLyBQdWJsaWMK
IAotICAgIGdldCBlbGVtZW50KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50
OwotICAgIH0KLQogICAgIGdldCB2aXNpYmxlKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlz
Ll92aXNpYmxlOwpAQCAtNTA1LDE1ICs0OTksNiBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvciA9
IGNsYXNzIFRleHRFZGl0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRo
aXMuX2NvZGVNaXJyb3Iub3BlcmF0aW9uKHJldmVhbEFuZEhpZ2hsaWdodExpbmUuYmluZCh0aGlz
KSk7CiAgICAgfQogCi0gICAgdXBkYXRlTGF5b3V0KGZvcmNlKQotICAgIHsKLSAgICAgICAgLy8g
RklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDYyNTY+IFdlYiBJbnNwZWN0b3I6IE5lc3Rl
ZCBDb250ZW50QnJvd3NlcnMgLyBDb250ZW50Vmlld0NvbnRhaW5lcnMgY2F1c2UgdG9vIG1hbnkg
Q29udGVudFZpZXcgdXBkYXRlcwotICAgICAgICAvLyBJZGVhbGx5IHdlIHdvdWxkIG5vdCBnZXQg
YW4gdXBkYXRlTGF5b3V0IGNhbGwgaWYgd2UgYXJlIG5vdCB2aXNpYmxlLiBXZSBzaG91bGQgcmVz
dHJ1Y3R1cmUgQ29udGVudFZpZXcKLSAgICAgICAgLy8gc2hvdy9oaWRlIHJlc3RvcmF0aW9uIHRv
IHJlZHVjZSBkdXBsaWNhdGVkIHdvcmsgYW5kIHNvbHZlIHRoaXMgaW4gdGhlIHByb2Nlc3MuCi0g
ICAgICAgIGlmICh0aGlzLl92aXNpYmxlKQotICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5y
ZWZyZXNoKCk7Ci0gICAgfQotCiAgICAgc2hvd24oKQogICAgIHsKICAgICAgICAgdGhpcy5fdmlz
aWJsZSA9IHRydWU7CkBAIC03MjQsNiArNzA5LDE3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
ID0gY2xhc3MgVGV4dEVkaXRvciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgIC8v
IFByb3RlY3RlZAogCisgICAgbGF5b3V0KCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTQ2MjU2PiBXZWIgSW5zcGVjdG9yOiBOZXN0ZWQgQ29udGVudEJy
b3dzZXJzIC8gQ29udGVudFZpZXdDb250YWluZXJzIGNhdXNlIHRvbyBtYW55IENvbnRlbnRWaWV3
IHVwZGF0ZXMKKyAgICAgICAgLy8gSWRlYWxseSB3ZSB3b3VsZCBub3QgZ2V0IGFuIHVwZGF0ZUxh
eW91dCBjYWxsIGlmIHdlIGFyZSBub3QgdmlzaWJsZS4gV2Ugc2hvdWxkIHJlc3RydWN0dXJlIENv
bnRlbnRWaWV3CisgICAgICAgIC8vIHNob3cvaGlkZSByZXN0b3JhdGlvbiB0byByZWR1Y2UgZHVw
bGljYXRlZCB3b3JrIGFuZCBzb2x2ZSB0aGlzIGluIHRoZSBwcm9jZXNzLgorCisgICAgICAgIC8v
IEZJWE1FOiB2aXNpYmxlIGNoZWNrIGNhbiBiZSByZW1vdmVkIG9uY2UgPGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzE1MDc0MT4gaXMgZml4ZWQuCisgICAgICAgIGlmICh0aGlzLl92aXNpYmxlKQorICAg
ICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5yZWZyZXNoKCk7CisgICAgfQorCiAgICAgcHJldHR5
UHJpbnQocHJldHR5KQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gcHJldHR5UHJpbnRBbmRVcGRh
dGVFZGl0b3IoKQpAQCAtOTM3LDcgKzkzMyw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yID0g
Y2xhc3MgVGV4dEVkaXRvciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdmFy
IGNvb3JkaW5hdGVzID0gdGhpcy5fY29kZU1pcnJvci5jdXJzb3JDb29yZHModHJ1ZSwgInBhZ2Ui
KTsKIAogICAgICAgICAvLyBBZGp1c3QgdGhlIGNvb3JkaW5hdGVzIHRvIGJlIGJhc2VkIGluIHRo
ZSB0ZXh0IGVkaXRvcidzIHNwYWNlLgotICAgICAgICB2YXIgdGV4dEVkaXRvclJlY3QgPSB0aGlz
Ll9lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBsZXQgdGV4dEVkaXRv
clJlY3QgPSB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgIGNv
b3JkaW5hdGVzLnRvcCAtPSB0ZXh0RWRpdG9yUmVjdC50b3A7CiAgICAgICAgIGNvb3JkaW5hdGVz
LmxlZnQgLT0gdGV4dEVkaXRvclJlY3QubGVmdDsKIApAQCAtOTQ1LDcgKzk0MSw3IEBAIFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yID0gY2xhc3MgVGV4dEVkaXRvciBleHRlbmRzIFdlYkluc3BlY3Rv
ci5PYmplY3QKICAgICAgICAgdGhpcy5fYm91bmN5SGlnaGxpZ2h0RWxlbWVudC50ZXh0Q29udGVu
dCA9IHRleHRDb250ZW50OwogICAgICAgICB0aGlzLl9ib3VuY3lIaWdobGlnaHRFbGVtZW50LnN0
eWxlLnRvcCA9IGNvb3JkaW5hdGVzLnRvcCArICJweCI7CiAgICAgICAgIHRoaXMuX2JvdW5jeUhp
Z2hsaWdodEVsZW1lbnQuc3R5bGUubGVmdCA9IGNvb3JkaW5hdGVzLmxlZnQgKyAicHgiOwotICAg
ICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2JvdW5jeUhpZ2hsaWdodEVsZW1l
bnQpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fYm91bmN5SGlnaGxp
Z2h0RWxlbWVudCk7CiAKICAgICAgICAgZnVuY3Rpb24gYW5pbWF0aW9uRW5kZWQoKQogICAgICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5qcwppbmRl
eCA3NTk3YmM4MTUyNWVlOTQ4ZDUxYTEzNjc1ZmY3ZDg1M2QzNjM0NTE5Li5mMzg1MTEwNDM2NDRk
OGRjMzQwZmM0NTE1MGU1YTFmZWIzYjJhMmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3Lmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5l
UmVjb3JkaW5nQ29udGVudFZpZXcuanMKQEAgLTQ2LDExICs0NiwxMyBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nQ29u
dGVudFZpZXcgZQogICAgICAgICB0aGlzLl9yZW5kZXJpbmdGcmFtZVRpbWVsaW5lT3ZlcnZpZXcu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlldy5FdmVudC5SZWNv
cmRTZWxlY3RlZCwgdGhpcy5fcmVjb3JkU2VsZWN0ZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMu
X2N1cnJlbnRUaW1lbGluZU92ZXJ2aWV3ID0gdGhpcy5fbGluZWFyVGltZWxpbmVPdmVydmlldzsK
KworICAgICAgICAvLyBGSVhNRTogdXNlIFZpZXcucHJvdG90eXBlLmFkZFN1YnZpZXcgb25jZSA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQ5MTkwPiBpcyBmaXhlZC4KICAgICAgICAgdGhpcy5lbGVt
ZW50LmFwcGVuZENoaWxkKHRoaXMuX2N1cnJlbnRUaW1lbGluZU92ZXJ2aWV3LmVsZW1lbnQpOwog
CiAgICAgICAgIHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyID0gbmV3IFdlYkluc3BlY3Rvci5D
b250ZW50Vmlld0NvbnRhaW5lcjsKICAgICAgICAgdGhpcy5fY29udGVudFZpZXdDb250YWluZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudFZpZXdDb250YWluZXIuRXZlbnQu
Q3VycmVudENvbnRlbnRWaWV3RGlkQ2hhbmdlLCB0aGlzLl9jdXJyZW50Q29udGVudFZpZXdEaWRD
aGFuZ2UsIHRoaXMpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY29u
dGVudFZpZXdDb250YWluZXIuZWxlbWVudCk7CisgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlz
Ll9jb250ZW50Vmlld0NvbnRhaW5lcik7CiAKICAgICAgICAgdGhpcy5fY2xlYXJUaW1lbGluZU5h
dmlnYXRpb25JdGVtID0gbmV3IFdlYkluc3BlY3Rvci5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiY2xl
YXItdGltZWxpbmUiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIFRpbWVsaW5lIiksICJJ
bWFnZXMvTmF2aWdhdGlvbkl0ZW1UcmFzaC5zdmciLCAxNSwgMTUpOwogICAgICAgICB0aGlzLl9j
bGVhclRpbWVsaW5lTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fY2xlYXJUaW1lbGluZSwg
dGhpcyk7CkBAIC0yMTAsMTIgKzIxMiw2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZGlu
Z0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyBlCiAgICAg
ICAgIHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyLmdvRm9yd2FyZCgpOwogICAgIH0KIAotICAg
IHVwZGF0ZUxheW91dCgpCi0gICAgewotICAgICAgICB0aGlzLl9jdXJyZW50VGltZWxpbmVPdmVy
dmlldy51cGRhdGVMYXlvdXRGb3JSZXNpemUoKTsKLSAgICAgICAgdGhpcy5fY29udGVudFZpZXdD
b250YWluZXIudXBkYXRlTGF5b3V0KCk7Ci0gICAgfQotCiAgICAgc2F2ZVRvQ29va2llKGNvb2tp
ZSkKICAgICB7CiAgICAgICAgIGNvb2tpZS50eXBlID0gV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3
Q29va2llVHlwZS5UaW1lbGluZXM7CkBAIC0zMjQsNiArMzIwLDEzIEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250
ZW50VmlldyBlCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIC8vIFByb3RlY3Rl
ZAorCisgICAgbGF5b3V0KCkKKyAgICB7CisgICAgICAgIHRoaXMuX2N1cnJlbnRUaW1lbGluZU92
ZXJ2aWV3LnVwZGF0ZUxheW91dEZvclJlc2l6ZSgpOworICAgIH0KKwogICAgIC8vIFByaXZhdGUK
IAogICAgIF9jdXJyZW50Q29udGVudFZpZXdEaWRDaGFuZ2UoZXZlbnQpCkBAIC0zMzgsNiArMzQx
LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBU
aW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGUKICAgICAgICAgaWYgKG5ld1RpbWVsaW5lT3Zl
cnZpZXcgIT09IHRoaXMuX2N1cnJlbnRUaW1lbGluZU92ZXJ2aWV3KSB7CiAgICAgICAgICAgICB0
aGlzLl9jdXJyZW50VGltZWxpbmVPdmVydmlldy5oaWRkZW4oKTsKIAorICAgICAgICAgICAgLy8g
RklYTUU6IHVzZSBWaWV3LnByb3RvdHlwZS5yZXBsYWNlU3VidmlldyBvbmNlIDxodHRwczovL3dl
YmtpdC5vcmcvYi8xNDkxOTA+IGlzIGZpeGVkLgogICAgICAgICAgICAgdGhpcy5lbGVtZW50Lmlu
c2VydEJlZm9yZShuZXdUaW1lbGluZU92ZXJ2aWV3LmVsZW1lbnQsIHRoaXMuX2N1cnJlbnRUaW1l
bGluZU92ZXJ2aWV3LmVsZW1lbnQpOwogICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNo
aWxkKHRoaXMuX2N1cnJlbnRUaW1lbGluZU92ZXJ2aWV3LmVsZW1lbnQpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>