<?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>148067</bug_id>
          
          <creation_ts>2015-08-16 10:07:56 -0700</creation_ts>
          <short_desc>Web Inspector: TreeOutline should just dispatch events via WebInspector.Object</short_desc>
          <delta_ts>2015-12-01 17:38:00 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="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>1118037</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-08-16 10:07:56 -0700</bug_when>
    <thetext>* SUMMARY
TreeOutline should just dispatch events via WebInspector.Object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118038</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-08-16 10:08:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/22301243&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144682</commentid>
    <comment_count>2</comment_count>
      <attachid>266222</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-11-29 00:53:42 -0800</bug_when>
    <thetext>Created attachment 266222
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144958</commentid>
    <comment_count>3</comment_count>
      <attachid>266222</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-11-30 14:58:47 -0800</bug_when>
    <thetext>Comment on attachment 266222
[Patch] Proposed Fix

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

r=me, would like Tim to comment on event names though.

Please rename these events and related code:

s/SelectedElementChanged/SelectionChanged/
s/ElementHiddenChanged/ElementVisibilityChanged/

&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:142
&gt; +        if (this.treeOutline)

Do we ever need this check? We assume it exists in some calls to dispatchEventToListeners(), but not others. This one seems to be a more paranoid check than was there before, while others are neutral.

&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:1018
&gt; +            if (this.onselect)

What is this for? I thought we removed onselect

&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutlineDataGridSynchronizer.js:-52
&gt; -        // FIXME: This is a hack. TreeOutline should just dispatch events via WebInspector.Object.

Good riddance!

&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutlineDataGridSynchronizer.js:208
&gt; +    _treeElementSelected(event)

This should match the new event name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145111</commentid>
    <comment_count>4</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-11-30 20:13:28 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 266222 [details]
&gt; [Patch] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=266222&amp;action=review
&gt; 
&gt; r=me, would like Tim to comment on event names though.
&gt; 
&gt; Please rename these events and related code:
&gt; 
&gt; s/SelectedElementChanged/SelectionChanged/
&gt; s/ElementHiddenChanged/ElementVisibilityChanged/
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:142
&gt; &gt; +        if (this.treeOutline)
&gt; 
&gt; Do we ever need this check? We assume it exists in some calls to
&gt; dispatchEventToListeners(), but not others. This one seems to be a more
&gt; paranoid check than was there before, while others are neutral.

I&apos;ll take a look and see if it is ever null.

&gt; &gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:1018
&gt; &gt; +            if (this.onselect)
&gt; 
&gt; What is this for? I thought we removed onselect

This is calling TreeElement.onselect. DOMTreeElement still overrides this, oncollapse, and other methods.

&gt; &gt; Source/WebInspectorUI/UserInterface/Views/TreeOutlineDataGridSynchronizer.js:-52
&gt; &gt; -        // FIXME: This is a hack. TreeOutline should just dispatch events via WebInspector.Object.
&gt; 
&gt; Good riddance!
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/TreeOutlineDataGridSynchronizer.js:208
&gt; &gt; +    _treeElementSelected(event)
&gt; 
&gt; This should match the new event name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145365</commentid>
    <comment_count>5</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-12-01 13:30:50 -0800</bug_when>
    <thetext>I suggested some better event names on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145374</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-12-01 13:49:34 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; I suggested some better event names on IRC.

Are we happy with the following?

ElementAdded
ElementDidChange
ElementRemoved
ElementDisclosureDidChange
ElementVisibilityDidChange
SelectionDidChange</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145410</commentid>
    <comment_count>7</comment_count>
      <attachid>266222</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-12-01 14:51:23 -0800</bug_when>
    <thetext>Comment on attachment 266222
[Patch] Proposed Fix

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

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:142
&gt;&gt;&gt; +        if (this.treeOutline)
&gt;&gt; 
&gt;&gt; Do we ever need this check? We assume it exists in some calls to dispatchEventToListeners(), but not others. This one seems to be a more paranoid check than was there before, while others are neutral.
&gt; 
&gt; I&apos;ll take a look and see if it is ever null.

These checks are needed. Many operations in TreeOutline that dispatch events are also bound to TreeElement, which may be in a detached state. I missed a few checks in the TreeOutline.prototype.remove* family of methods which I&apos;ll add.

I think we should reconsider TreeOutline&apos;s design at some point. BindingTreeOutline methods to another class to achieve reuse makes the code harder to follow. Instead, TreeOutline should have a public getter for an invisible root that always exists:

let tree = new WebInspector.TreeOutline;
tree.root.appendChild(childElement);

If having to get the root is too verbose, TreeOutline could encapsulate the invisible root and forward operations to it:

TreeOutline.prototype.appendChild = function(child) {
    this.root.appendChild(child);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145440</commentid>
    <comment_count>8</comment_count>
      <attachid>266406</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-12-01 16:10:59 -0800</bug_when>
    <thetext>Created attachment 266406
[Patch] Proposed Fix

Left r? since a bunch of names have changed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145458</commentid>
    <comment_count>9</comment_count>
      <attachid>266406</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-12-01 16:53:10 -0800</bug_when>
    <thetext>Comment on attachment 266406
[Patch] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:864
&gt; +        // Set this before onpopulate. Since onpopulate can add elements and dispatch an ElementAdded event,

We should rename onpopulate, to sound more like a subclass able method than an event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145484</commentid>
    <comment_count>10</comment_count>
      <attachid>266406</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-01 17:37:57 -0800</bug_when>
    <thetext>Comment on attachment 266406
[Patch] Proposed Fix

Clearing flags on attachment: 266406

Committed r192936: &lt;http://trac.webkit.org/changeset/192936&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145486</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-01 17:38:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266222</attachid>
            <date>2015-11-29 00:53:42 -0800</date>
            <delta_ts>2015-12-01 16:10:56 -0800</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-148067-20151129005328.patch</filename>
            <type>text/plain</type>
            <size>48150</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAy
ZjNmYTZmMDJjN2I0YmEyOWM0YzBmNzM3ZGEyNWU5YWIzZGFlNjkyLi44NTk4MTY4NjM4NjI0YmU0
OGYwZTU5YmU0YTExY2UxNjlhMDFkMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTIgQEAKKzIwMTUtMTEtMjkgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRyZWVPdXRsaW5lIHNob3VsZCBqdXN0IGRpc3Bh
dGNoIGV2ZW50cyB2aWEgV2ViSW5zcGVjdG9yLk9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJlZU91dGxpbmUgbm93IGRpc3BhdGNoZXMgbW9z
dCBldmVudHMgdmlhIFdlYkluc3BlY3Rvci5PYmplY3QuIFRoZSBvbnNlbGVjdCBhbmQKKyAgICAg
ICAgb25kZXNlbGVjdCBjYWxsYmFja3MgYXJlIHJlcGxhY2VkIGJ5IGEgU2VsZWN0ZWRFbGVtZW50
Q2hhbmdlZCBldmVudCwgd2hpY2ggaW5jbHVkZXMKKyAgICAgICAgYm90aCB0aGUgc2VsZWN0ZWQg
YW5kIGRlc2VsZWN0ZWQgZWxlbWVudHMgaW4gaXRzIGV2ZW50IGRhdGEuIFRoZSBvbmV4cGFuZCBh
bmQgb25jb2xsYXBzZQorICAgICAgICBjYWxsYmFja3MgYXJlIHJlcGxhY2VkIGJ5IGFuIEVsZW1l
bnRFeHBhbmRlZENoYW5nZWQgZXZlbnQuIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIHRoZQorICAg
ICAgICBiZWhhdmlvciBvZiBvbmhpZGRlbiwgd2hpY2ggaGFkIG5vIGNvcnJlc3BvbmRpbmcgb252
aXNpYmxlIGNhbGxiYWNrLgorCisgICAgICAgIEFsYXMsIFRpbWVsaW5lVmlldyBhbmQgVHJlZU91
dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplciBkZXBlbmRlZCBvbiB0aGUgb3JkZXIgaW4gd2hpY2gK
KyAgICAgICAgVHJlZU91dGxpbmUub25zZWxlY3QgY2FsbGJhY2tzIHdlcmUgY2hhaW5lZCB0b2dl
dGhlci4gVGhlIHN5bmNocm9uaXplciBhZGRlZCBpdHMKKyAgICAgICAgY2FsbGJhY2sgYWZ0ZXIg
dGhlIHRpbWVsaW5lIHZpZXcsIHdoaWNoIGVuc3VyZWQgdGhhdCB0aGUgdHJlZSBhbmQgZ3JpZCB3
ZXJlIGluIHN5bmMKKyAgICAgICAgYmVmb3JlIHRoZSB2aWV3IGhhbmRsZWQgb25zZWxlY3QgYW5k
IGRpc3BhdGNoZWQgYSBTZWxlY3Rpb25QYXRoQ29tcG9uZW50c0RpZENoYW5nZS4KKyAgICAgICAg
VGhlIGNoYW5nZSBub3RpZmljYXRpb24gY2F1c2VzIHRoZSB2aWV3J3MgcGF0aCBjb21wb25lbnRz
IHRvIGJlIHJlYWQsIGFuZCB0aW1lbGluZQorICAgICAgICB2aWV3cyBuZWVkIHRoZSBncmlkIHNl
bGVjdGlvbiB0byBiZSBpbiBhIHZhbGlkIHN0YXRlIHRvIGJ1aWxkIHBhdGggY29tcG9uZW50cy4K
KworICAgICAgICBUaGlzIGlzIGFkZHJlc3NlZCBieSBoYXZpbmcgdGltZWxpbmUgdmlld3MgZGlz
cGF0Y2ggU2VsZWN0aW9uUGF0aENvbXBvbmVudHNEaWRDaGFuZ2UKKyAgICAgICAgZXZlbnRzIHdo
ZW4gdGhlIGdyaWQgc2VsZWN0aW9uIGNoYW5nZXMsIGluc3RlYWQgb2YgdGhlIHRyZWUgc2VsZWN0
aW9uLiBUaGUgY2hhbmdlCisgICAgICAgIHJlcXVpcmVkIHRoYXQgdGhlIHN5bmNocm9uaXplciBu
byBsb25nZXIgc3VwcHJlc3Mgbm90aWZpY2F0aW9ucyB3aGVuIHNlbGVjdGluZyBncmlkIG5vZGVz
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl90cmVlRWxlbWVu
dFNlbGVjdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5w
cm90b3R5cGUuX3VwZGF0ZVBhdXNlUmVhc29uU2VjdGlvbik6CisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUuY3JlYXRlQ29udGVudFRyZWVP
dXRsaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnBy
b3RvdHlwZS5fdHJlZUVsZW1lbnRBZGRlZE9yQ2hhbmdlZCk6CisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL05ldHdvcmtHcmlkQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya0dyaWRDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0
d29ya0dyaWRDb250ZW50Vmlldy5wcm90b3R5cGUuX3RyZWVFbGVtZW50U2VsZWN0ZWQpOgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwucHJvdG90eXBlLl90cmVlRWxlbWVudFNlbGVj
dGVkKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2NvcGVDaGFpbkRldGFpbHNT
aWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNT
aWRlYmFyUGFuZWwucHJvdG90eXBlLl9nZW5lcmF0ZUNhbGxGcmFtZXNTZWN0aW9uKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY29wZUNoYWluRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUu
X2dlbmVyYXRlV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRBZGRl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwu
cHJvdG90eXBlLl90cmVlRWxlbWVudEV4cGFuZGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9vYmplY3RUcmVl
RXhwYW5kSGFuZGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NvcGVDaGFp
bkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9vYmplY3RUcmVlQ29sbGFwc2VIYW5kbGVy
KTogRGVsZXRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoU2lkZWJh
clBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaFNpZGViYXJQYW5lbCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fdHJlZUVs
ZW1lbnRTZWxlY3RlZCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1N0b3JhZ2VT
aWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZVNpZGViYXJQYW5l
bCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZVNpZGViYXJQYW5lbC5fdHJlZUVsZW1l
bnRTZWxlY3RlZCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lRGF0
YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVEYXRhR3JpZC5wcm90b3R5
cGUuX2NyZWF0ZVBvcG92ZXJDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZURhdGFHcmlkLnByb3RvdHlwZS5fcG9wb3ZlckNhbGxTdGFja1RyZWVFbGVtZW50U2VsZWN0ZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGF0YUdyaWQpOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9yZWNvcmRpbmdzVHJlZUVsZW1lbnRTZWxl
Y3RlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVTaWRlYmFyUGFuZWwucHJvdG90
eXBlLl90aW1lbGluZXNUcmVlRWxlbWVudFNlbGVjdGVkKToKKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvVGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3LnByb3RvdHlwZS5f
c2VsZWN0ZWRFbGVtZW50Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVW
aWV3LnByb3RvdHlwZS50cmVlRWxlbWVudFNlbGVjdGVkKToKKyAgICAgICAgRG9uJ3QgZGlzcGF0
Y2ggU2VsZWN0aW9uUGF0aENvbXBvbmVudHNEaWRDaGFuZ2UuIFRpbWVsaW5lIHZpZXdzIGFscmVh
ZHkgZG8gdGhpcworICAgICAgICBpbiByZXNwb25zZSB0byBncmlkIHNlbGVjdGlvbiBldmVudHMu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLnByb3RvdHlwZS5hcHBlbmRDaGlsZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUucHJvdG90eXBlLmluc2VydENoaWxkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGRBdElu
ZGV4KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5wcm90b3R5cGUucmVtb3Zl
Q2hpbGRyZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLnByb3RvdHlwZS5y
ZW1vdmVDaGlsZHJlblJlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxp
bmUucHJvdG90eXBlLl90cmVlRWxlbWVudERpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVHJlZUVsZW1lbnQucHJvdG90eXBlLnNldCBoaWRkZW4pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRyZWVFbGVtZW50LnByb3RvdHlwZS5jb2xsYXBzZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVHJlZUVsZW1lbnQucHJvdG90eXBlLmV4cGFuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VHJlZUVsZW1lbnQucHJvdG90eXBlLnNlbGVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJl
ZUVsZW1lbnQucHJvdG90eXBlLmRlc2VsZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UcmVl
RWxlbWVudC5wcm90b3R5cGUuZ2V0IGNoaWxkcmVuTGlzdEVsZW1lbnQpOiBEZWxldGVkLgorICAg
ICAgICBSZW1vdmVkIGRlYWQgY29kZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
VHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRT
ZWxlY3RlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNo
cm9uaXplci5wcm90b3R5cGUuX3RyZWVFbGVtZW50QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIucHJvdG90eXBlLl90cmVlRWxlbWVu
dFJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lRGF0YUdyaWRTeW5j
aHJvbml6ZXIucHJvdG90eXBlLl90cmVlRWxlbWVudEV4cGFuZGVkQ2hhbmdlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5wcm90b3R5cGUu
X3RyZWVFbGVtZW50SGlkZGVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91
dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci50cmVlT3V0bGluZS5vbmFkZCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci50cmVl
T3V0bGluZS5vbnJlbW92ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91
dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci50cmVlT3V0bGluZS5vbmV4cGFuZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci50
cmVlT3V0bGluZS5vbmNvbGxhcHNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLnRyZWVPdXRsaW5lLm9uaGlkZGVuKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25p
emVyLnRyZWVPdXRsaW5lLm9uc2VsZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRF
eHBhbmRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRh
R3JpZFN5bmNocm9uaXplci5wcm90b3R5cGUuX3RyZWVFbGVtZW50Q29sbGFwc2VkKTogRGVsZXRl
ZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVDb21tYVNlcGFy
YXRlZEtleXdvcmRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVD
b21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRT
ZWxlY3RlZCk6CisKIDIwMTUtMTEtMjggIERldmluIFJvdXNzbyAgPGRjcm91c3NvK3dlYmtpdEBn
bWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3R5bGVzIHNpZGViYXIgcGxhY2Vo
b2xkZXIgaXMgbWlzYWxpZ25lZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcwppbmRl
eCA3NGE1NmNmMjI3MWI3Zjc1OGVmMzcyMzEzNjg2OTg4MDIwOTk4ZWM1Li5kNmFkYTQ4MzIzNGYw
OGVmZjg1NDU4MzJmM2NkZTNjNjgwNTM4NzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQ
YW5lbC5qcwpAQCAtMTEzLDcgKzExMyw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQ
YW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAg
ICAgIHRoaXMuZmlsdGVyQmFyLmFkZEZpbHRlckJhckJ1dHRvbigiZGVidWdnZXItc2hvdy1yZXNv
dXJjZXMtd2l0aC1pc3N1ZXMtb25seSIsIHNob3dSZXNvdXJjZXNXaXRoSXNzdWVzT25seUZpbHRl
ckZ1bmN0aW9uLCB0cnVlLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgb25seSByZXNvdXJj
ZXMgd2l0aCBpc3N1ZXMuIiksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyByZXNvdXJjZXMg
d2l0aCBhbmQgd2l0aG91dCBpc3N1ZXMuIiksICJJbWFnZXMvRXJyb3JzLnN2ZyIsIDE1LCAxNSk7
CiAKICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNDb250ZW50VHJlZU91dGxpbmUgPSB0aGlzLmNv
bnRlbnRUcmVlT3V0bGluZTsKLSAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNDb250ZW50VHJlZU91
dGxpbmUub25zZWxlY3QgPSB0aGlzLl90cmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhpcyk7Cisg
ICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzQ29udGVudFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGVkRWxlbWVudENoYW5nZWQs
IHRoaXMuX3RyZWVFbGVtZW50U2VsZWN0ZWQsIHRoaXMpOwogICAgICAgICB0aGlzLl9icmVha3Bv
aW50c0NvbnRlbnRUcmVlT3V0bGluZS5vbmRlbGV0ZSA9IHRoaXMuX2JyZWFrcG9pbnRUcmVlT3V0
bGluZURlbGV0ZVRyZWVFbGVtZW50LmJpbmQodGhpcyk7CiAgICAgICAgIHRoaXMuX2JyZWFrcG9p
bnRzQ29udGVudFRyZWVPdXRsaW5lLm9uY29udGV4dG1lbnUgPSB0aGlzLl9icmVha3BvaW50VHJl
ZU91dGxpbmVDb250ZXh0TWVudVRyZWVFbGVtZW50LmJpbmQodGhpcyk7CiAKQEAgLTEzMCw3ICsx
MzAsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dl
clNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICB0aGlzLmNvbnRlbnRFbGVt
ZW50LmFwcGVuZENoaWxkKGJyZWFrcG9pbnRzU2VjdGlvbi5lbGVtZW50KTsKIAogICAgICAgICB0
aGlzLl9jYWxsU3RhY2tDb250ZW50VHJlZU91dGxpbmUgPSB0aGlzLmNyZWF0ZUNvbnRlbnRUcmVl
T3V0bGluZSh0cnVlLCB0cnVlKTsKLSAgICAgICAgdGhpcy5fY2FsbFN0YWNrQ29udGVudFRyZWVP
dXRsaW5lLm9uc2VsZWN0ID0gdGhpcy5fdHJlZUVsZW1lbnRTZWxlY3RlZC5iaW5kKHRoaXMpOwor
ICAgICAgICB0aGlzLl9jYWxsU3RhY2tDb250ZW50VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0ZWRFbGVtZW50Q2hhbmdlZCwg
dGhpcy5fdHJlZUVsZW1lbnRTZWxlY3RlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fY2FsbFN0
YWNrUm93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdyhXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIk5vIENhbGwgRnJhbWVzIikpOwogICAgICAgICB0aGlzLl9jYWxsU3RhY2tSb3cu
c2hvd0VtcHR5TWVzc2FnZSgpOwpAQCAtNjA3LDcgKzYwNyw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV2Vi
SW5zcGVjCiAgICAgICAgIGNvbnRleHRNZW51LnNob3coKTsKICAgICB9CiAKLSAgICBfdHJlZUVs
ZW1lbnRTZWxlY3RlZCh0cmVlRWxlbWVudCwgc2VsZWN0ZWRCeVVzZXIpCisgICAgX3RyZWVFbGVt
ZW50U2VsZWN0ZWQoZXZlbnQpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBkZXNlbGVjdENhbGxT
dGFja0NvbnRlbnRUcmVlRWxlbWVudHMoKQogICAgICAgICB7CkBAIC02MzMsNiArNjMzLDEwIEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJh
clBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRUcmVlRWxl
bWVudC5kZXNlbGVjdCgpOwogICAgICAgICB9CiAKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0g
ZXZlbnQuZGF0YS5zZWxlY3RlZEVsZW1lbnQ7CisgICAgICAgIGlmICghdHJlZUVsZW1lbnQpCisg
ICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgaWYgKHRyZWVFbGVtZW50IGluc3RhbmNlb2Yg
V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgfHwgdHJlZUVsZW1lbnQgaW5zdGFuY2Vv
ZiBXZWJJbnNwZWN0b3IuU2NyaXB0VHJlZUVsZW1lbnQpIHsKICAgICAgICAgICAgIGRlc2VsZWN0
Q2FsbFN0YWNrQ29udGVudFRyZWVFbGVtZW50cy5jYWxsKHRoaXMpOwogICAgICAgICAgICAgZGVz
ZWxlY3RQYXVzZVJlYXNvbkNvbnRlbnRUcmVlRWxlbWVudHMuY2FsbCh0aGlzKTsKQEAgLTc0MCw3
ICs3NDQsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1
Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICAgICAgaWYgKHBhdXNl
RGF0YSAmJiBwYXVzZURhdGEuYnJlYWtwb2ludElkKSB7CiAgICAgICAgICAgICAgICAgdmFyIGJy
ZWFrcG9pbnQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmJyZWFrcG9pbnRGb3JJZGVu
dGlmaWVyKHBhdXNlRGF0YS5icmVha3BvaW50SWQpOwogICAgICAgICAgICAgICAgIHZhciBicmVh
a3BvaW50VHJlZU91dGxpbmUgPSB0aGlzLmNyZWF0ZUNvbnRlbnRUcmVlT3V0bGluZSh0cnVlLCB0
cnVlKTsKLSAgICAgICAgICAgICAgICBicmVha3BvaW50VHJlZU91dGxpbmUub25zZWxlY3QgPSB0
aGlzLl90cmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhpcyk7CisgICAgICAgICAgICAgICAgYnJl
YWtwb2ludFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRs
aW5lLkV2ZW50LlNlbGVjdGVkRWxlbWVudENoYW5nZWQsIHRoaXMuX3RyZWVFbGVtZW50U2VsZWN0
ZWQsIHRoaXMpOworCiAgICAgICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRUcmVlRWxlbWVudCA9
IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50KGJyZWFrcG9pbnQsIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5QYXVzZWRCcmVha3BvaW50SWNvblN0eWxlQ2xh
c3NOYW1lLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRyaWdnZXJlZCBCcmVha3BvaW50IikpOwog
ICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50RGV0YWlsc1NlY3Rpb24gPSBuZXcgV2ViSW5z
cGVjdG9yLkRldGFpbHNTZWN0aW9uUm93OwogICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRUcmVl
T3V0bGluZS5hcHBlbmRDaGlsZChicmVha3BvaW50VHJlZUVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmF2aWdhdGlvblNpZGVi
YXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05h
dmlnYXRpb25TaWRlYmFyUGFuZWwuanMKaW5kZXggOGFlODNiOWIyZmYxZDRmNzNjMWE4MjQ5ZjI2
ZmI1NTFjNDA4MjNjYS4uMDkyOWMxN2M2ZGQyYTZhODAxZTgxMDIzYjAxZjRmNWQzMDZlMDkyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmF2
aWdhdGlvblNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCkBAIC0xNjYsMTAgKzE2Niw5
IEBAIFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgTmF2aWdhdGlv
blNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluCiAgICAgICAgIGNvbnRlbnRUcmVlT3V0bGluZS5h
bGxvd3NSZXBlYXRTZWxlY3Rpb24gPSB0cnVlOwogCiAgICAgICAgIGlmICghc3VwcHJlc3NGaWx0
ZXJpbmcpIHsKLSAgICAgICAgICAgIGNvbnRlbnRUcmVlT3V0bGluZS5vbmFkZCA9IHRoaXMuX3Ry
ZWVFbGVtZW50QWRkZWRPckNoYW5nZWQuYmluZCh0aGlzKTsKLSAgICAgICAgICAgIGNvbnRlbnRU
cmVlT3V0bGluZS5vbmNoYW5nZSA9IHRoaXMuX3RyZWVFbGVtZW50QWRkZWRPckNoYW5nZWQuYmlu
ZCh0aGlzKTsKLSAgICAgICAgICAgIGNvbnRlbnRUcmVlT3V0bGluZS5vbmV4cGFuZCA9IHRoaXMu
X3RyZWVFbGVtZW50RXhwYW5kZWRPckNvbGxhcHNlZC5iaW5kKHRoaXMpOwotICAgICAgICAgICAg
Y29udGVudFRyZWVPdXRsaW5lLm9uY29sbGFwc2UgPSB0aGlzLl90cmVlRWxlbWVudEV4cGFuZGVk
T3JDb2xsYXBzZWQuYmluZCh0aGlzKTsKKyAgICAgICAgICAgIGNvbnRlbnRUcmVlT3V0bGluZS5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50QWRk
ZWQsIHRoaXMuX3RyZWVFbGVtZW50QWRkZWRPckNoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAg
Y29udGVudFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRs
aW5lLkV2ZW50LkVsZW1lbnRDaGFuZ2VkLCB0aGlzLl90cmVlRWxlbWVudEFkZGVkT3JDaGFuZ2Vk
LCB0aGlzKTsKKyAgICAgICAgICAgIGNvbnRlbnRUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50RXhwYW5kZWRDaGFuZ2VkLCB0
aGlzLl90cmVlRWxlbWVudEV4cGFuZGVkQ2hhbmdlZCwgdGhpcyk7CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAoZG9udEhpZGVCeURlZmF1bHQpCkBAIC01NTYsMTQgKzU1NSwxNSBAQCBXZWJJbnNw
ZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIE5hdmlnYXRpb25TaWRlYmFyUGFu
ZWwgZXh0ZW5kcyBXZWJJbgogICAgICAgICB9CiAgICAgfQogCi0gICAgX3RyZWVFbGVtZW50QWRk
ZWRPckNoYW5nZWQodHJlZUVsZW1lbnQpCisgICAgX3RyZWVFbGVtZW50QWRkZWRPckNoYW5nZWQo
ZXZlbnQpCiAgICAgewogICAgICAgICAvLyBEb24ndCBwb3B1bGF0ZSBpZiB3ZSBkb24ndCBoYXZl
IGFueSBhY3RpdmUgZmlsdGVycy4KICAgICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIHBvcHVsYXRl
IHdoZW4gYSBmaWx0ZXIgbmVlZHMgdG8gcmV2ZWFsLgogICAgICAgICB2YXIgZG9udFBvcHVsYXRl
ID0gIXRoaXMuX2ZpbHRlckJhci5oYXNBY3RpdmVGaWx0ZXJzKCkgJiYgIXRoaXMuc2hvdWxkRmls
dGVyUG9wdWxhdGUoKTsKIAogICAgICAgICAvLyBBcHBseSB0aGUgZmlsdGVycyB0byB0aGUgdHJl
ZSBlbGVtZW50IGFuZCBpdHMgZGVzY2VuZGFudHMuCi0gICAgICAgIHZhciBjdXJyZW50VHJlZUVs
ZW1lbnQgPSB0cmVlRWxlbWVudDsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0
YS5lbGVtZW50OworICAgICAgICBsZXQgY3VycmVudFRyZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQ7
CiAgICAgICAgIHdoaWxlIChjdXJyZW50VHJlZUVsZW1lbnQgJiYgIWN1cnJlbnRUcmVlRWxlbWVu
dC5yb290KSB7CiAgICAgICAgICAgICBjb25zdCBjdXJyZW50VHJlZUVsZW1lbnRXYXNIaWRkZW4g
PSBjdXJyZW50VHJlZUVsZW1lbnQuaGlkZGVuOwogICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRl
cnNUb1RyZWVFbGVtZW50KGN1cnJlbnRUcmVlRWxlbWVudCk7CkBAIC01ODIsNyArNTgyLDcgQEAg
V2ViSW5zcGVjdG9yLk5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFzcyBOYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsIGV4dGVuZHMgV2ViSW4KICAgICAgICAgdGhpcy50cmVlRWxlbWVudEFkZGVkT3JD
aGFuZ2VkKHRyZWVFbGVtZW50KTsKICAgICB9CiAKLSAgICBfdHJlZUVsZW1lbnRFeHBhbmRlZE9y
Q29sbGFwc2VkKHRyZWVFbGVtZW50KQorICAgIF90cmVlRWxlbWVudEV4cGFuZGVkQ2hhbmdlZChl
dmVudCkKICAgICB7CiAgICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRPdmVyZmxvd1NoYWRvd1Zp
c2liaWxpdHkoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9OZXR3b3JrR3JpZENvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya0dyaWRDb250ZW50Vmlldy5qcwpp
bmRleCBhMzRlZDM1NzQzNzQwYWQxZGUxNmUwOWMyNTg1Yzc4ODliMmRmMzhhLi42NmVmNzhkNmI4
NDhiYjhjM2NmM2MyZjI0ZjRkZjk0Y2NjN2I2MTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrR3JpZENvbnRlbnRWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtHcmlk
Q29udGVudFZpZXcuanMKQEAgLTM1LDcgKzM1LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtHcmlk
Q29udGVudFZpZXcgPSBjbGFzcyBOZXR3b3JrR3JpZENvbnRlbnRWaWV3IGV4dGVuZHMgV2ViSW4K
ICAgICAgICAgdGhpcy5fbmV0d29ya1NpZGViYXJQYW5lbCA9IGV4dHJhQXJndW1lbnRzLm5ldHdv
cmtTaWRlYmFyUGFuZWw7CiAKICAgICAgICAgdGhpcy5fY29udGVudFRyZWVPdXRsaW5lID0gdGhp
cy5fbmV0d29ya1NpZGViYXJQYW5lbC5jb250ZW50VHJlZU91dGxpbmU7Ci0gICAgICAgIHRoaXMu
X2NvbnRlbnRUcmVlT3V0bGluZS5vbnNlbGVjdCA9IHRoaXMuX3RyZWVFbGVtZW50U2VsZWN0ZWQu
YmluZCh0aGlzKTsKKyAgICAgICAgdGhpcy5fY29udGVudFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGVkRWxlbWVudENoYW5n
ZWQsIHRoaXMuX3RyZWVFbGVtZW50U2VsZWN0ZWQsIHRoaXMpOwogCiAgICAgICAgIHZhciBjb2x1
bW5zID0ge2RvbWFpbjoge30sIHR5cGU6IHt9LCBtZXRob2Q6IHt9LCBzY2hlbWU6IHt9LCBzdGF0
dXNDb2RlOiB7fSwgY2FjaGVkOiB7fSwgc2l6ZToge30sIHRyYW5zZmVyU2l6ZToge30sIHJlcXVl
c3RTZW50OiB7fSwgbGF0ZW5jeToge30sIGR1cmF0aW9uOiB7fX07CiAKQEAgLTIwMiwxMyArMjAy
LDE0IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrR3JpZENvbnRlbnRWaWV3ID0gY2xhc3MgTmV0d29y
a0dyaWRDb250ZW50VmlldyBleHRlbmRzIFdlYkluCiAgICAgICAgIGRhdGFHcmlkTm9kZS5yZXZl
YWxBbmRTZWxlY3QoKTsKICAgICB9CiAKLSAgICBfdHJlZUVsZW1lbnRTZWxlY3RlZCh0cmVlRWxl
bWVudCwgc2VsZWN0ZWRCeVVzZXIpCisgICAgX3RyZWVFbGVtZW50U2VsZWN0ZWQoZXZlbnQpCiAg
ICAgewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
Q29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9uUGF0aENvbXBvbmVudHNEaWRDaGFuZ2UpOwogCiAg
ICAgICAgIGlmICghdGhpcy5fbmV0d29ya1NpZGViYXJQYW5lbC5jYW5TaG93RGlmZmVyZW50Q29u
dGVudFZpZXcoKSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBsZXQgdHJlZUVsZW1l
bnQgPSBldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudDsKICAgICAgICAgaWYgKHRyZWVFbGVtZW50
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQpIHsKICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5zaG93UmVwcmVzZW50ZWRPYmplY3QodHJlZUVsZW1lbnQucmVwcmVz
ZW50ZWRPYmplY3QpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGVi
YXJQYW5lbC5qcwppbmRleCA1NmU3MzEyMjZjNmQ1NWE2MDg1MTYxOGYzNjFjM2M1NmM4OWIxMDhl
Li41ODc3ZDM4ZjI1MWVkMDU5YzBjZGI5NTczNzc3YmNjMWEyODZlNWQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9S
ZXNvdXJjZVNpZGViYXJQYW5lbC5qcwpAQCAtNjIsNyArNjIsNyBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VTaWRlYmFyUGFuZWwgPSBjbGFzcyBSZXNvdXJjZVNpZGViYXJQYW5lbCBleHRlbmRzIFdl
Ykluc3BlYwogCiAgICAgICAgIFdlYkluc3BlY3Rvci5ub3RpZmljYXRpb25zLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLk5vdGlmaWNhdGlvbi5FeHRyYURvbWFpbnNBY3RpdmF0ZWQsIHRo
aXMuX2V4dHJhRG9tYWluc0FjdGl2YXRlZCwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5jb250ZW50
VHJlZU91dGxpbmUub25zZWxlY3QgPSB0aGlzLl90cmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhp
cyk7CisgICAgICAgIHRoaXMuY29udGVudFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGVkRWxlbWVudENoYW5nZWQsIHRoaXMu
X3RyZWVFbGVtZW50U2VsZWN0ZWQsIHRoaXMpOwogICAgICAgICB0aGlzLmNvbnRlbnRUcmVlT3V0
bGluZS5pbmNsdWRlU291cmNlTWFwUmVzb3VyY2VDaGlsZHJlbiA9IHRydWU7CiAKICAgICAgICAg
aWYgKFdlYkluc3BlY3Rvci5kZWJ1Z2dhYmxlVHlwZSA9PT0gV2ViSW5zcGVjdG9yLkRlYnVnZ2Fi
bGVUeXBlLkphdmFTY3JpcHQpCkBAIC0zMzMsOSArMzMzLDEwIEBAIFdlYkluc3BlY3Rvci5SZXNv
dXJjZVNpZGViYXJQYW5lbCA9IGNsYXNzIFJlc291cmNlU2lkZWJhclBhbmVsIGV4dGVuZHMgV2Vi
SW5zcGVjCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBfdHJlZUVsZW1lbnRTZWxlY3RlZCh0cmVl
RWxlbWVudCwgc2VsZWN0ZWRCeVVzZXIpCisgICAgX3RyZWVFbGVtZW50U2VsZWN0ZWQoZXZlbnQp
CiAgICAgewotICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
Rm9sZGVyVHJlZUVsZW1lbnQpCisgICAgICAgIGxldCB0cmVlRWxlbWVudCA9IGV2ZW50LmRhdGEu
c2VsZWN0ZWRFbGVtZW50OworICAgICAgICBpZiAoIXRyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkZvbGRlclRyZWVFbGVtZW50KQogICAgICAgICAgICAg
cmV0dXJuOwogCiAgICAgICAgIGlmICh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9TY29wZUNoYWluRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Njb3BlQ2hhaW5EZXRhaWxz
U2lkZWJhclBhbmVsLmpzCmluZGV4IGM2ZWQ5MDJmNDY5Nzg1NThkMDg2ZjJlZDg3ZDM2ZTc2ZmY3
Nzg3ZDIuLjI3N2ZlYjRlNTU0YTM2NTBhN2MzZjJiNTU3NjJjY2IwOTRlMmIxNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Njb3BlQ2hhaW5E
ZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Njb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC0yMjEsOSAr
MjIxLDggQEAgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsID0gY2xh
c3MgU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwKICAgICAgICAgICAgICAgICBvYmplY3RU
cmVlLmFwcGVuZEV4dHJhUHJvcGVydHlEZXNjcmlwdG9yKGV4dHJhUHJvcGVydHlEZXNjcmlwdG9y
KTsKIAogICAgICAgICAgICAgbGV0IHRyZWVPdXRsaW5lID0gb2JqZWN0VHJlZS50cmVlT3V0bGlu
ZTsKLSAgICAgICAgICAgIHRyZWVPdXRsaW5lLm9uYWRkID0gdGhpcy5fb2JqZWN0VHJlZUFkZEhh
bmRsZXIuYmluZCh0aGlzLCBkZXRhaWxzU2VjdGlvbklkZW50aWZpZXIpOwotICAgICAgICAgICAg
dHJlZU91dGxpbmUub25leHBhbmQgPSB0aGlzLl9vYmplY3RUcmVlRXhwYW5kSGFuZGxlci5iaW5k
KHRoaXMsIGRldGFpbHNTZWN0aW9uSWRlbnRpZmllcik7Ci0gICAgICAgICAgICB0cmVlT3V0bGlu
ZS5vbmNvbGxhcHNlID0gdGhpcy5fb2JqZWN0VHJlZUNvbGxhcHNlSGFuZGxlci5iaW5kKHRoaXMs
IGRldGFpbHNTZWN0aW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICB0cmVlT3V0bGluZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50QWRkZWQs
IHRoaXMuX3RyZWVFbGVtZW50QWRkZWQuYmluZCh0aGlzLCBkZXRhaWxzU2VjdGlvbklkZW50aWZp
ZXIpLCB0aGlzKTsKKyAgICAgICAgICAgIHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRFeHBhbmRlZENoYW5nZWQsIHRoaXMu
X3RyZWVFbGVtZW50RXhwYW5kZWRDaGFuZ2VkLmJpbmQodGhpcywgZGV0YWlsc1NlY3Rpb25JZGVu
dGlmaWVyKSwgdGhpcyk7CiAKICAgICAgICAgICAgIGxldCBkZXRhaWxzU2VjdGlvbiA9IG5ldyBX
ZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb24oZGV0YWlsc1NlY3Rpb25JZGVudGlmaWVyLCB0aXRs
ZSwgbnVsbCwgbnVsbCwgY29sbGFwc2VkQnlEZWZhdWx0KTsKICAgICAgICAgICAgIGRldGFpbHNT
ZWN0aW9uLmdyb3Vwc1swXS5yb3dzID0gW25ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Q
cm9wZXJ0aWVzUm93KG9iamVjdFRyZWUpXTsKQEAgLTI1NCw5ICsyNTMsOCBAQCBXZWJJbnNwZWN0
b3IuU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBTY29wZUNoYWluRGV0YWls
c1NpZGViYXJQYW5lbAogCiAgICAgICAgIGxldCB0cmVlT3V0bGluZSA9IG9iamVjdFRyZWUudHJl
ZU91dGxpbmU7CiAgICAgICAgIGNvbnN0IHdhdGNoRXhwcmVzc2lvblNlY3Rpb25JZGVudGlmaWVy
ID0gIndhdGNoLWV4cHJlc3Npb25zIjsKLSAgICAgICAgdHJlZU91dGxpbmUub25hZGQgPSB0aGlz
Ll9vYmplY3RUcmVlQWRkSGFuZGxlci5iaW5kKHRoaXMsIHdhdGNoRXhwcmVzc2lvblNlY3Rpb25J
ZGVudGlmaWVyKTsKLSAgICAgICAgdHJlZU91dGxpbmUub25leHBhbmQgPSB0aGlzLl9vYmplY3RU
cmVlRXhwYW5kSGFuZGxlci5iaW5kKHRoaXMsIHdhdGNoRXhwcmVzc2lvblNlY3Rpb25JZGVudGlm
aWVyKTsKLSAgICAgICAgdHJlZU91dGxpbmUub25jb2xsYXBzZSA9IHRoaXMuX29iamVjdFRyZWVD
b2xsYXBzZUhhbmRsZXIuYmluZCh0aGlzLCB3YXRjaEV4cHJlc3Npb25TZWN0aW9uSWRlbnRpZmll
cik7CisgICAgICAgIHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRy
ZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRBZGRlZCwgdGhpcy5fdHJlZUVsZW1lbnRBZGRlZC5iaW5k
KHRoaXMsIHdhdGNoRXhwcmVzc2lvblNlY3Rpb25JZGVudGlmaWVyKSwgdGhpcyk7CisgICAgICAg
IHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2
ZW50LkVsZW1lbnRFeHBhbmRlZENoYW5nZWQsIHRoaXMuX3RyZWVFbGVtZW50RXhwYW5kZWRDaGFu
Z2VkLmJpbmQodGhpcywgd2F0Y2hFeHByZXNzaW9uU2VjdGlvbklkZW50aWZpZXIpLCB0aGlzKTsK
ICAgICAgICAgdHJlZU91dGxpbmUub2JqZWN0VHJlZUVsZW1lbnRBZGRDb250ZXh0TWVudUl0ZW1z
ID0gdGhpcy5fb2JqZWN0VHJlZUVsZW1lbnRBZGRDb250ZXh0TWVudUl0ZW1zLmJpbmQodGhpcyk7
CiAKICAgICAgICAgbGV0IHByb21pc2VzID0gW107CkBAIC00MjIsOCArNDIwLDkgQEAgV2ViSW5z
cGVjdG9yLlNjb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgU2NvcGVDaGFpbkRl
dGFpbHNTaWRlYmFyUGFuZWwKICAgICAgICAgcmV0dXJuIGlkZW50aWZpZXIgKyAiLSIgKyBwcm9w
ZXJ0eVBhdGguZnVsbFBhdGg7CiAgICAgfQogCi0gICAgX29iamVjdFRyZWVBZGRIYW5kbGVyKGlk
ZW50aWZpZXIsIHRyZWVFbGVtZW50KQorICAgIF90cmVlRWxlbWVudEFkZGVkKGlkZW50aWZpZXIs
IGV2ZW50KQogICAgIHsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5lbGVt
ZW50OwogICAgICAgICBsZXQgcHJvcGVydHlQYXRoSWRlbnRpZmllciA9IHRoaXMuX3Byb3BlcnR5
UGF0aElkZW50aWZpZXJGb3JUcmVlRWxlbWVudChpZGVudGlmaWVyLCB0cmVlRWxlbWVudCk7CiAg
ICAgICAgIGlmICghcHJvcGVydHlQYXRoSWRlbnRpZmllcikKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTQzMiwyMiArNDMxLDE3IEBAIFdlYkluc3BlY3Rvci5TY29wZUNoYWluRGV0YWlsc1NpZGVi
YXJQYW5lbCA9IGNsYXNzIFNjb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsCiAgICAgICAgICAg
ICB0cmVlRWxlbWVudC5leHBhbmQoKTsKICAgICB9CiAKLSAgICBfb2JqZWN0VHJlZUV4cGFuZEhh
bmRsZXIoaWRlbnRpZmllciwgdHJlZUVsZW1lbnQpCisgICAgX3RyZWVFbGVtZW50RXhwYW5kZWRD
aGFuZ2VkKGlkZW50aWZpZXIsIGV2ZW50KQogICAgIHsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50
ID0gZXZlbnQuZGF0YS5lbGVtZW50OwogICAgICAgICBsZXQgcHJvcGVydHlQYXRoSWRlbnRpZmll
ciA9IHRoaXMuX3Byb3BlcnR5UGF0aElkZW50aWZpZXJGb3JUcmVlRWxlbWVudChpZGVudGlmaWVy
LCB0cmVlRWxlbWVudCk7CiAgICAgICAgIGlmICghcHJvcGVydHlQYXRoSWRlbnRpZmllcikKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbkRldGFp
bHNTaWRlYmFyUGFuZWwuX2F1dG9FeHBhbmRQcm9wZXJ0aWVzLmFkZChwcm9wZXJ0eVBhdGhJZGVu
dGlmaWVyKTsKLSAgICB9Ci0KLSAgICBfb2JqZWN0VHJlZUNvbGxhcHNlSGFuZGxlcihpZGVudGlm
aWVyLCB0cmVlRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIGxldCBwcm9wZXJ0eVBhdGhJZGVudGlm
aWVyID0gdGhpcy5fcHJvcGVydHlQYXRoSWRlbnRpZmllckZvclRyZWVFbGVtZW50KGlkZW50aWZp
ZXIsIHRyZWVFbGVtZW50KTsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eVBhdGhJZGVudGlmaWVyKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5TY29wZUNoYWluRGV0
YWlsc1NpZGViYXJQYW5lbC5fYXV0b0V4cGFuZFByb3BlcnRpZXMuZGVsZXRlKHByb3BlcnR5UGF0
aElkZW50aWZpZXIpOworICAgICAgICBpZiAodHJlZUVsZW1lbnQuZXhwYW5kZWQpCisgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwuX2F1dG9FeHBh
bmRQcm9wZXJ0aWVzLmFkZChwcm9wZXJ0eVBhdGhJZGVudGlmaWVyKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLl9h
dXRvRXhwYW5kUHJvcGVydGllcy5kZWxldGUocHJvcGVydHlQYXRoSWRlbnRpZmllcik7CiAgICAg
fQogCiAgICAgX3VwZGF0ZVdhdGNoRXhwcmVzc2lvbnNOYXZpZ2F0aW9uQmFyKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaFNpZGVi
YXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nl
YXJjaFNpZGViYXJQYW5lbC5qcwppbmRleCA0MGZhZWJjMDU5MmQwMzI4M2I4YWVhNzAwNDQ0ODhl
MDE4Njc2NTNiLi4yMGMxMWU3MDVkMmRjNzRkNTI4MWI0OWYzZTZmYWZkMGMzNjgzYTA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hT
aWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU2VhcmNoU2lkZWJhclBhbmVsLmpzCkBAIC01Miw3ICs1Miw3IEBAIFdlYkluc3BlY3Rv
ci5TZWFyY2hTaWRlYmFyUGFuZWwgPSBjbGFzcyBTZWFyY2hTaWRlYmFyUGFuZWwgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuCiAKICAgICAgICAgV2ViSW5zcGVjdG9yLkZyYW1lLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkZyYW1lLkV2ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcy5f
bWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzKTsKIAotICAgICAgICB0aGlzLmNvbnRlbnRUcmVl
T3V0bGluZS5vbnNlbGVjdCA9IHRoaXMuX3RyZWVFbGVtZW50U2VsZWN0ZWQuYmluZCh0aGlzKTsK
KyAgICAgICAgdGhpcy5jb250ZW50VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0ZWRFbGVtZW50Q2hhbmdlZCwgdGhpcy5fdHJl
ZUVsZW1lbnRTZWxlY3RlZCwgdGhpcyk7CiAgICAgfQogCiAgICAgLy8gUHVibGljCkBAIC0zNDYs
OSArMzQ2LDEwIEBAIFdlYkluc3BlY3Rvci5TZWFyY2hTaWRlYmFyUGFuZWwgPSBjbGFzcyBTZWFy
Y2hTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAgICAgICAgICAgICB0aGlzLmZv
Y3VzU2VhcmNoRmllbGQoKTsKICAgICB9CiAKLSAgICBfdHJlZUVsZW1lbnRTZWxlY3RlZCh0cmVl
RWxlbWVudCwgc2VsZWN0ZWRCeVVzZXIpCisgICAgX3RyZWVFbGVtZW50U2VsZWN0ZWQoZXZlbnQp
CiAgICAgewotICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
Rm9sZGVyVHJlZUVsZW1lbnQpCisgICAgICAgIGxldCB0cmVlRWxlbWVudCA9IGV2ZW50LmRhdGEu
c2VsZWN0ZWRFbGVtZW50OworICAgICAgICBpZiAoIXRyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkZvbGRlclRyZWVFbGVtZW50KQogICAgICAgICAgICAg
cmV0dXJuOwogCiAgICAgICAgIGlmICh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLlNjcmlwdFRyZWVFbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9TdG9yYWdlU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3RvcmFnZVNpZGViYXJQYW5lbC5qcwpp
bmRleCA2MDM2OThkYmVhOTliMjkwODdiYzk5N2Q4ZDI5Y2I0NDU0NjUxYTg0Li5hNjE4YTNmOTEz
YWY5OTU3MzExYWY5MDlmZmUyMzU1YzcwNjMzNWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TdG9yYWdlU2lkZWJhclBhbmVsLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1N0b3JhZ2VTaWRlYmFy
UGFuZWwuanMKQEAgLTg2LDcgKzg2LDcgQEAgV2ViSW5zcGVjdG9yLlN0b3JhZ2VTaWRlYmFyUGFu
ZWwgPSBjbGFzcyBTdG9yYWdlU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjdG8KICAgICAg
ICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLkV2ZW50LkZyYW1lTWFuaWZlc3RB
ZGRlZCwgdGhpcy5fZnJhbWVNYW5pZmVzdEFkZGVkLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVj
dG9yLmFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLkV2ZW50LkZyYW1lTWFuaWZlc3RSZW1vdmVkLCB0aGlz
Ll9mcmFtZU1hbmlmZXN0UmVtb3ZlZCwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5jb250ZW50VHJl
ZU91dGxpbmUub25zZWxlY3QgPSB0aGlzLl90cmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhpcyk7
CisgICAgICAgIHRoaXMuY29udGVudFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGVkRWxlbWVudENoYW5nZWQsIHRoaXMuX3Ry
ZWVFbGVtZW50U2VsZWN0ZWQsIHRoaXMpOwogCiAgICAgICAgIGZvciAodmFyIGRvbVN0b3JhZ2VP
YmplY3Qgb2YgV2ViSW5zcGVjdG9yLnN0b3JhZ2VNYW5hZ2VyLmRvbVN0b3JhZ2VPYmplY3RzKQog
ICAgICAgICAgICAgdGhpcy5fYWRkRE9NU3RvcmFnZU9iamVjdChkb21TdG9yYWdlT2JqZWN0KTsK
QEAgLTE2MSw4ICsxNjEsMTIgQEAgV2ViSW5zcGVjdG9yLlN0b3JhZ2VTaWRlYmFyUGFuZWwgPSBj
bGFzcyBTdG9yYWdlU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjdG8KIAogICAgIC8vIFBy
aXZhdGUKIAotICAgIF90cmVlRWxlbWVudFNlbGVjdGVkKHRyZWVFbGVtZW50LCBzZWxlY3RlZEJ5
VXNlcikKKyAgICBfdHJlZUVsZW1lbnRTZWxlY3RlZChldmVudCkKICAgICB7CisgICAgICAgIGxl
dCB0cmVlRWxlbWVudCA9IGV2ZW50LmRhdGEuc2VsZWN0ZWRFbGVtZW50OworICAgICAgICBpZiAo
IXRyZWVFbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGlmICh0cmVlRWxl
bWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Gb2xkZXJUcmVlRWxlbWVudCB8fCB0cmVlRWxl
bWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5EYXRhYmFzZUhvc3RUcmVlRWxlbWVudCB8fAog
ICAgICAgICAgICAgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSW5kZXhlZERh
dGFiYXNlSG9zdFRyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLkluZGV4ZWREYXRhYmFzZVRyZWVFbGVtZW50CiAgICAgICAgICAgICB8fCB0cmVlRWxlbWVu
dCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTWFuaWZlc3RUcmVlRWxl
bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1RpbWVsaW5lRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9UaW1lbGluZURhdGFHcmlkLmpzCmluZGV4IDA4ZDg0ZTlhOTQzNWYxMjI2MTc4
ZmRkZjkwYjc3OWM3YmU1NjBiYzkuLmY5MDAwM2IwODIxMTJjMmRkYjZiYjNlZDQ4ZDkyYmVkZGUx
NzI3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1RpbWVsaW5lRGF0YUdyaWQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVGltZWxpbmVEYXRhR3JpZC5qcwpAQCAtNDUzLDcgKzQ1Myw3IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZURhdGFHcmlkID0gY2xhc3MgVGltZWxpbmVEYXRhR3JpZCBleHRl
bmRzIFdlYkluc3BlY3Rvci5EYXRhCiAgICAgICAgICAgICB2YXIgY29udGVudEVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJvbCIpOwogICAgICAgICAgICAgY29udGVudEVsZW1lbnQu
Y2xhc3NMaXN0LmFkZCgidGltZWxpbmUtZGF0YS1ncmlkLXRyZWUtb3V0bGluZSIpOwogICAgICAg
ICAgICAgdGhpcy5fcG9wb3ZlckNhbGxTdGFja1RyZWVPdXRsaW5lID0gbmV3IFdlYkluc3BlY3Rv
ci5UcmVlT3V0bGluZShjb250ZW50RWxlbWVudCk7Ci0gICAgICAgICAgICB0aGlzLl9wb3BvdmVy
Q2FsbFN0YWNrVHJlZU91dGxpbmUub25zZWxlY3QgPSB0aGlzLl9wb3BvdmVyQ2FsbFN0YWNrVHJl
ZUVsZW1lbnRTZWxlY3RlZC5iaW5kKHRoaXMpOworICAgICAgICAgICAgdGhpcy5fcG9wb3ZlckNh
bGxTdGFja1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRs
aW5lLkV2ZW50LlNlbGVjdGVkRWxlbWVudENoYW5nZWQsIHRoaXMuX3BvcG92ZXJDYWxsU3RhY2tU
cmVlRWxlbWVudFNlbGVjdGVkLCB0aGlzKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICB0
aGlzLl9wb3BvdmVyQ2FsbFN0YWNrVHJlZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKIApAQCAt
NDY5LDggKzQ2OSwxMiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVEYXRhR3JpZCA9IGNsYXNzIFRp
bWVsaW5lRGF0YUdyaWQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuRGF0YQogICAgICAgICByZXR1cm4g
Y29udGVudDsKICAgICB9CiAKLSAgICBfcG9wb3ZlckNhbGxTdGFja1RyZWVFbGVtZW50U2VsZWN0
ZWQodHJlZUVsZW1lbnQsIHNlbGVjdGVkQnlVc2VyKQorICAgIF9wb3BvdmVyQ2FsbFN0YWNrVHJl
ZUVsZW1lbnRTZWxlY3RlZChldmVudCkKICAgICB7CisgICAgICAgIGxldCB0cmVlRWxlbWVudCA9
IGV2ZW50LmRhdGEuc2VsZWN0ZWRFbGVtZW50OworICAgICAgICBpZiAoIXRyZWVFbGVtZW50KQor
ICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIHRoaXMuX3BvcG92ZXIuZGlzbWlzcygpOwog
CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLkNhbGxGcmFtZVRyZWVFbGVtZW50LCAiVHJlZUVsZW1lbnRzIGluIFRpbWVsaW5lRGF0YUdy
aWQgcG9wb3ZlciBzaG91bGQgYWx3YXlzIGJlIENhbGxGcmFtZVRyZWVFbGVtZW50cyIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxp
bmVTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9UaW1lbGluZVNpZGViYXJQYW5lbC5qcwppbmRleCBlOTA2YjgxZjQwN2YzZGIxZDk2Yjc4
YjQ5ZmY3NjY3MmQ5YTc3ZDQ3Li43YTc1YjE0YWVlYzY2OTIyMjQ4MzM2NGI2YzA3NzU0YjM0ZTgx
YjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9UaW1lbGluZVNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVNpZGViYXJQYW5lbC5qcwpAQCAtNjIsMTMgKzYyLDEz
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbCA9IGNsYXNzIFRpbWVsaW5lU2lk
ZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIHRoaXMuX3JlY29yZGluZ3NUcmVl
T3V0bGluZSA9IHRoaXMuY3JlYXRlQ29udGVudFRyZWVPdXRsaW5lKHRydWUsIHRydWUpOwogICAg
ICAgICB0aGlzLl9yZWNvcmRpbmdzVHJlZU91dGxpbmUuZWxlbWVudC5jbGFzc0xpc3QuYWRkKFdl
Ykluc3BlY3Rvci5OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLkhpZGVEaXNjbG9zdXJlQnV0dG9uc1N0
eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgdGhpcy5fcmVjb3JkaW5nc1RyZWVPdXRsaW5lLmVsZW1l
bnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5Db250
ZW50VHJlZU91dGxpbmVFbGVtZW50SGlkZGVuU3R5bGVDbGFzc05hbWUpOwotICAgICAgICB0aGlz
Ll9yZWNvcmRpbmdzVHJlZU91dGxpbmUub25zZWxlY3QgPSB0aGlzLl9yZWNvcmRpbmdzVHJlZUVs
ZW1lbnRTZWxlY3RlZC5iaW5kKHRoaXMpOworICAgICAgICB0aGlzLl9yZWNvcmRpbmdzVHJlZU91
dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuU2Vs
ZWN0ZWRFbGVtZW50Q2hhbmdlZCwgdGhpcy5fcmVjb3JkaW5nc1RyZWVFbGVtZW50U2VsZWN0ZWQs
IHRoaXMpOwogICAgICAgICB0aGlzLl90aW1lbGluZXNDb250ZW50Q29udGFpbmVyRWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl9yZWNvcmRpbmdzVHJlZU91dGxpbmUuZWxlbWVudCk7CiAKICAgICAg
ICAgLy8gTWFpbnRhaW4gYSB0cmVlIG91dGxpbmUgd2l0aCB0cmVlIGVsZW1lbnRzIGZvciBlYWNo
IHRpbWVsaW5lIG9mIHRoZSBzZWxlY3RlZCByZWNvcmRpbmcuCiAgICAgICAgIHRoaXMuX3RpbWVs
aW5lc1RyZWVPdXRsaW5lID0gdGhpcy5jcmVhdGVDb250ZW50VHJlZU91dGxpbmUodHJ1ZSwgdHJ1
ZSk7CiAgICAgICAgIHRoaXMuX3RpbWVsaW5lc1RyZWVPdXRsaW5lLmVsZW1lbnQuY2xhc3NMaXN0
LmFkZChXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5IaWRlRGlzY2xvc3VyZUJ1
dHRvbnNTdHlsZUNsYXNzTmFtZSk7Ci0gICAgICAgIHRoaXMuX3RpbWVsaW5lc1RyZWVPdXRsaW5l
Lm9uc2VsZWN0ID0gdGhpcy5fdGltZWxpbmVzVHJlZUVsZW1lbnRTZWxlY3RlZC5iaW5kKHRoaXMp
OworICAgICAgICB0aGlzLl90aW1lbGluZXNUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3RlZEVsZW1lbnRDaGFuZ2VkLCB0aGlz
Ll90aW1lbGluZXNUcmVlRWxlbWVudFNlbGVjdGVkLCB0aGlzKTsKICAgICAgICAgdGhpcy5fdGlt
ZWxpbmVzQ29udGVudENvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdGltZWxpbmVz
VHJlZU91dGxpbmUuZWxlbWVudCk7CiAKICAgICAgICAgdGhpcy5fdGltZWxpbmVUcmVlRWxlbWVu
dE1hcCA9IG5ldyBNYXA7CkBAIC01ODAsOCArNTgwLDEyIEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVNpZGViYXJQYW5lbCA9IGNsYXNzIFRpbWVsaW5lU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5z
cGVjCiAgICAgICAgICAgICB0aGlzLnNob3dUaW1lbGluZU92ZXJ2aWV3KCk7CiAgICAgfQogCi0g
ICAgX3JlY29yZGluZ3NUcmVlRWxlbWVudFNlbGVjdGVkKHRyZWVFbGVtZW50LCBzZWxlY3RlZEJ5
VXNlcikKKyAgICBfcmVjb3JkaW5nc1RyZWVFbGVtZW50U2VsZWN0ZWQoZXZlbnQpCiAgICAgewor
ICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudDsKKyAg
ICAgICAgaWYgKCF0cmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBj
b25zb2xlLmFzc2VydCh0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVJlY29yZGluZyk7CiAKICAgICAgICAgdGhpcy5fcmVjb3JkaW5n
U2VsZWN0ZWQodHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpOwpAQCAtNTkzLDE3ICs1OTcs
MjIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lU2lkZWJhclBhbmVsID0gY2xhc3MgVGltZWxpbmVT
aWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hG
cmFtZVNlbGVjdGlvbkNoYXJ0KCk7CiAgICAgfQogCi0gICAgX3RpbWVsaW5lc1RyZWVFbGVtZW50
U2VsZWN0ZWQodHJlZUVsZW1lbnQsIHNlbGVjdGVkQnlVc2VyKQorICAgIF90aW1lbGluZXNUcmVl
RWxlbWVudFNlbGVjdGVkKGV2ZW50KQogICAgIHsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0g
ZXZlbnQuZGF0YS5zZWxlY3RlZEVsZW1lbnQ7CisgICAgICAgIGlmICghdHJlZUVsZW1lbnQpCisg
ICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fdGltZWxp
bmVUcmVlRWxlbWVudE1hcC5nZXQodHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpID09PSB0
cmVlRWxlbWVudCwgdHJlZUVsZW1lbnQpOwogCiAgICAgICAgIC8vIElmIG5vdCBzZWxlY3RlZCBi
eSB1c2VyLCB0aGVuIHRoaXMgc2VsZWN0aW9uIG1lcmVseSBzeW5jZWQgdGhlIHRyZWUgZWxlbWVu
dCB3aXRoIHRoZSBjb250ZW50IHZpZXcncyBjb250ZW50cy4KKyAgICAgICAgbGV0IHNlbGVjdGVk
QnlVc2VyID0gZXZlbnQuZGF0YS5zZWxlY3RlZEJ5VXNlcjsKICAgICAgICAgaWYgKCFzZWxlY3Rl
ZEJ5VXNlcikgewogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fZGlzcGxheWVkQ29u
dGVudFZpZXcuY3VycmVudFRpbWVsaW5lVmlldy5yZXByZXNlbnRlZE9iamVjdCA9PT0gdHJlZUVs
ZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKLSAgICAgICAgdmFyIHRpbWVsaW5lID0gdHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7
CisgICAgICAgIGxldCB0aW1lbGluZSA9IHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0Owog
ICAgICAgICBjb25zb2xlLmFzc2VydCh0aW1lbGluZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5U
aW1lbGluZSwgdGltZWxpbmUpOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9kaXNwbGF5
ZWRSZWNvcmRpbmcudGltZWxpbmVzLmdldCh0aW1lbGluZS50eXBlKSA9PT0gdGltZWxpbmUsIHRp
bWVsaW5lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVGltZWxpbmVWaWV3LmpzCmluZGV4IGY1NTY2MjIwYTgyZThkZDljYjgyNDE4
MjExN2FlZTMyODhkMmViYjkuLmEwZWI5N2IzMGFjZTIxY2JmZjg5MWE1Y2UyNTc4Y2NjZjI2OGVj
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1RpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UaW1lbGluZVZpZXcuanMKQEAgLTM5LDggKzM5LDcgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lVmlldyA9IGNsYXNzIFRpbWVsaW5lVmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250
ZW50VmlldwogICAgICAgICB0aGlzLl90aW1lbGluZVNpZGViYXJQYW5lbCA9IGV4dHJhQXJndW1l
bnRzLnRpbWVsaW5lU2lkZWJhclBhbmVsOwogCiAgICAgICAgIHRoaXMuX2NvbnRlbnRUcmVlT3V0
bGluZSA9IHRoaXMuX3RpbWVsaW5lU2lkZWJhclBhbmVsLmNyZWF0ZUNvbnRlbnRUcmVlT3V0bGlu
ZSgpOwotICAgICAgICB0aGlzLl9jb250ZW50VHJlZU91dGxpbmUub25zZWxlY3QgPSB0aGlzLnRy
ZWVFbGVtZW50U2VsZWN0ZWQuYmluZCh0aGlzKTsKLSAgICAgICAgdGhpcy5fY29udGVudFRyZWVP
dXRsaW5lLm9uZGVzZWxlY3QgPSB0aGlzLnRyZWVFbGVtZW50RGVzZWxlY3RlZC5iaW5kKHRoaXMp
OworICAgICAgICB0aGlzLl9jb250ZW50VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0ZWRFbGVtZW50Q2hhbmdlZCwgdGhpcy5f
c2VsZWN0ZWRFbGVtZW50Q2hhbmdlZCwgdGhpcyk7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRUcmVl
T3V0bGluZS5fX2NhblNob3dDb250ZW50Vmlld0ZvclRyZWVFbGVtZW50ID0gdGhpcy5jYW5TaG93
Q29udGVudFZpZXdGb3JUcmVlRWxlbWVudC5iaW5kKHRoaXMpOwogCiAgICAgICAgIHRoaXMuZWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJ0aW1lbGluZS12aWV3Iik7CkBAIC0yMjksOCArMjI4LDYgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldyA9IGNsYXNzIFRpbWVsaW5lVmlldyBleHRlbmRzIFdl
Ykluc3BlY3Rvci5Db250ZW50VmlldwogICAgIHsKICAgICAgICAgLy8gSW1wbGVtZW50ZWQgYnkg
c3ViLWNsYXNzZXMgaWYgbmVlZGVkLgogCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rpb25QYXRoQ29tcG9u
ZW50c0RpZENoYW5nZSk7Ci0KICAgICAgICAgaWYgKCF0aGlzLl90aW1lbGluZVNpZGViYXJQYW5l
bC5jYW5TaG93RGlmZmVyZW50Q29udGVudFZpZXcoKSkKICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtMjM5LDQgKzIzNiwxNSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3ID0gY2xhc3MgVGlt
ZWxpbmVWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3CiAKICAgICAgICAgdGhp
cy5zaG93Q29udGVudFZpZXdGb3JUcmVlRWxlbWVudCh0cmVlRWxlbWVudCk7CiAgICAgfQorCisg
ICAgLy8gUHJpdmF0ZQorCisgICAgX3NlbGVjdGVkRWxlbWVudENoYW5nZWQoZXZlbnQpCisgICAg
eworICAgICAgICBpZiAoZXZlbnQuZGF0YS5kZXNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAgICAg
IHRoaXMudHJlZUVsZW1lbnREZXNlbGVjdGVkKGV2ZW50LmRhdGEuZGVzZWxlY3RlZEVsZW1lbnQp
OworCisgICAgICAgIGlmIChldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAgICAg
IHRoaXMudHJlZUVsZW1lbnRTZWxlY3RlZChldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudCwgZXZl
bnQuZGF0YS5zZWxlY3RlZEJ5VXNlcik7CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKaW5kZXgg
NzljN2IxZTg1Y2U0YTdjOWRjYTBlMjc3MzhmODg0MmJkODI3NmZjOC4uNjU1YTQ4NTRhMDFkMmEx
YmRiMTJjYzhkYTdjMmVjZWIzNGNjYzdkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKQEAgLTg5LDggKzg5
LDggQEAgV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbkxpc3ROb2Rl
KQogICAgICAgICAgICAgY2hpbGQuX2F0dGFjaCgpOwogCi0gICAgICAgIGlmICh0aGlzLnRyZWVP
dXRsaW5lLm9uYWRkKQotICAgICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5vbmFkZChjaGlsZCk7
CisgICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lKQorICAgICAgICAgICAgdGhpcy50cmVlT3V0
bGluZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2
ZW50LkVsZW1lbnRBZGRlZCwge2VsZW1lbnQ6IGNoaWxkfSk7CiAKICAgICAgICAgaWYgKGlzRmly
c3RDaGlsZCAmJiB0aGlzLmV4cGFuZGVkKQogICAgICAgICAgICAgdGhpcy5leHBhbmQoKTsKQEAg
LTEzOSw4ICsxMzksOCBAQCBXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUgPSBjbGFzcyBUcmVlT3V0
bGluZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgaWYgKHRoaXMuX2NoaWxk
cmVuTGlzdE5vZGUpCiAgICAgICAgICAgICBjaGlsZC5fYXR0YWNoKCk7CiAKLSAgICAgICAgaWYg
KHRoaXMudHJlZU91dGxpbmUub25hZGQpCi0gICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLm9u
YWRkKGNoaWxkKTsKKyAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUpCisgICAgICAgICAgICB0
aGlzLnRyZWVPdXRsaW5lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVHJl
ZU91dGxpbmUuRXZlbnQuRWxlbWVudEFkZGVkLCB7ZWxlbWVudDogY2hpbGR9KTsKIAogICAgICAg
ICBpZiAoaXNGaXJzdENoaWxkICYmIHRoaXMuZXhwYW5kZWQpCiAgICAgICAgICAgICB0aGlzLmV4
cGFuZCgpOwpAQCAtMTgxLDggKzE4MSw3IEBAIFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZSA9IGNs
YXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICBjaGls
ZC5uZXh0U2libGluZyA9IG51bGw7CiAgICAgICAgIGNoaWxkLnByZXZpb3VzU2libGluZyA9IG51
bGw7CiAKLSAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUgJiYgdGhpcy50cmVlT3V0bGluZS5v
bnJlbW92ZSkKLSAgICAgICAgICAgIHRoaXMudHJlZU91dGxpbmUub25yZW1vdmUoY2hpbGQpOwor
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVHJlZU91
dGxpbmUuRXZlbnQuRWxlbWVudFJlbW92ZWQsIHtlbGVtZW50OiBjaGlsZH0pOwogICAgIH0KIAog
ICAgIHJlbW92ZUNoaWxkKGNoaWxkLCBzdXBwcmVzc09uRGVzZWxlY3QsIHN1cHByZXNzU2VsZWN0
U2libGluZykKQEAgLTIyNCw4ICsyMjMsNyBAQCBXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUgPSBj
bGFzcyBUcmVlT3V0bGluZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgICAg
IGNoaWxkLm5leHRTaWJsaW5nID0gbnVsbDsKICAgICAgICAgICAgIGNoaWxkLnByZXZpb3VzU2li
bGluZyA9IG51bGw7CiAKLSAgICAgICAgICAgIGlmICh0cmVlT3V0bGluZSAmJiB0cmVlT3V0bGlu
ZS5vbnJlbW92ZSkKLSAgICAgICAgICAgICAgICB0cmVlT3V0bGluZS5vbnJlbW92ZShjaGlsZCk7
CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
VHJlZU91dGxpbmUuRXZlbnQuRWxlbWVudFJlbW92ZWQsIHtlbGVtZW50OiBjaGlsZH0pOwogICAg
ICAgICB9CiAKICAgICAgICAgdGhpcy5jaGlsZHJlbiA9IFtdOwpAQCAtMjU4LDggKzI1Niw3IEBA
IFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLk9iamVjdAogICAgICAgICAgICAgY2hpbGQubmV4dFNpYmxpbmcgPSBudWxsOwog
ICAgICAgICAgICAgY2hpbGQucHJldmlvdXNTaWJsaW5nID0gbnVsbDsKIAotICAgICAgICAgICAg
aWYgKHRyZWVPdXRsaW5lICYmIHRyZWVPdXRsaW5lLm9ucmVtb3ZlKQotICAgICAgICAgICAgICAg
IHRyZWVPdXRsaW5lLm9ucmVtb3ZlKGNoaWxkKTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50UmVt
b3ZlZCwge2VsZW1lbnQ6IGNoaWxkfSk7CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLmNoaWxk
cmVuID0gW107CkBAIC0zNzEsOCArMzY4LDcgQEAgV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lID0g
Y2xhc3MgVHJlZU91dGxpbmUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlm
ICh0cmVlRWxlbWVudC50cmVlT3V0bGluZSAhPT0gdGhpcykKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBpZiAodGhpcy5vbmNoYW5nZSkKLSAgICAgICAgICAgIHRoaXMub25jaGFuZ2Uo
dHJlZUVsZW1lbnQpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuRWxlbWVudENoYW5nZWQsIHtlbGVtZW50OiB0cmVl
RWxlbWVudH0pOwogICAgIH0KIAogICAgIHRyZWVFbGVtZW50RnJvbU5vZGUobm9kZSkKQEAgLTUx
OSw2ICs1MTUsMTUgQEAgV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lID0gY2xhc3MgVHJlZU91dGxp
bmUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgfQogfTsKIAorV2ViSW5zcGVjdG9y
LlRyZWVPdXRsaW5lLkV2ZW50ID0geworICAgIEVsZW1lbnRBZGRlZDogU3ltYm9sKCJlbGVtZW50
LWFkZGVkIiksCisgICAgRWxlbWVudENoYW5nZWQ6IFN5bWJvbCgiZWxlbWVudC1jaGFuZ2VkIiks
CisgICAgRWxlbWVudFJlbW92ZWQ6IFN5bWJvbCgiZWxlbWVudC1yZW1vdmVkIiksCisgICAgRWxl
bWVudEV4cGFuZGVkQ2hhbmdlZDogU3ltYm9sKCJlbGVtZW50LWV4cGFuZGVkLWNoYW5nZWQiKSwK
KyAgICBFbGVtZW50SGlkZGVuQ2hhbmdlZDogU3ltYm9sKCJlbGVtZW50LWhpZGRlbi1jaGFuZ2Vk
IiksCisgICAgU2VsZWN0ZWRFbGVtZW50Q2hhbmdlZDogU3ltYm9sKCJzZWxlY3RlZC1lbGVtZW50
LWNoYW5nZWQiKQorfTsKKwogV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLl9rbm93blRyZWVFbGVt
ZW50TmV4dElkZW50aWZpZXIgPSAxOwogCiBXZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnQgPSBjbGFz
cyBUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKQEAgLTU4MSwxMSArNTg2
LDYgQEAgV2ViSW5zcGVjdG9yLlRyZWVFbGVtZW50ID0gY2xhc3MgVHJlZUVsZW1lbnQgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl9saXN0SXRlbU5vZGU7
CiAgICAgfQogCi0gICAgZ2V0IGNoaWxkcmVuTGlzdEVsZW1lbnQoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX2NoaWxkcmVuTGlzdE5vZGU7Ci0gICAgfQotCiAgICAgZ2V0IHRpdGxlKCkK
ICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl90aXRsZTsKQEAgLTY3MSw4ICs2NzEsOCBAQCBX
ZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnQgPSBjbGFzcyBUcmVlRWxlbWVudCBleHRlbmRzIFdlYklu
c3BlY3Rvci5PYmplY3QKICAgICAgICAgICAgICAgICB0aGlzLl9jaGlsZHJlbkxpc3ROb2RlLmNs
YXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMu
dHJlZU91dGxpbmUgJiYgdGhpcy50cmVlT3V0bGluZS5vbmhpZGRlbikKLSAgICAgICAgICAgIHRo
aXMudHJlZU91dGxpbmUub25oaWRkZW4odGhpcywgeCk7CisgICAgICAgIGlmICh0aGlzLnRyZWVP
dXRsaW5lKQorICAgICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRIaWRkZW5DaGFuZ2Vk
LCB7ZWxlbWVudDogdGhpc30pOwogICAgIH0KIAogICAgIGdldCBzaG91bGRSZWZyZXNoQ2hpbGRy
ZW4oKQpAQCAtODQyLDggKzg0Miw4IEBAIFdlYkluc3BlY3Rvci5UcmVlRWxlbWVudCA9IGNsYXNz
IFRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICBpZiAodGhp
cy5vbmNvbGxhcHNlKQogICAgICAgICAgICAgdGhpcy5vbmNvbGxhcHNlKHRoaXMpOwogCi0gICAg
ICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lICYmIHRoaXMudHJlZU91dGxpbmUub25jb2xsYXBzZSkK
LSAgICAgICAgICAgIHRoaXMudHJlZU91dGxpbmUub25jb2xsYXBzZSh0aGlzKTsKKyAgICAgICAg
aWYgKHRoaXMudHJlZU91dGxpbmUpCisgICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuRWxlbWVu
dEV4cGFuZGVkQ2hhbmdlZCwge2VsZW1lbnQ6IHRoaXN9KTsKICAgICB9CiAKICAgICBjb2xsYXBz
ZVJlY3Vyc2l2ZWx5KCkKQEAgLTg2MSw5ICs4NjEsOSBAQCBXZWJJbnNwZWN0b3IuVHJlZUVsZW1l
bnQgPSBjbGFzcyBUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAg
ICAgaWYgKHRoaXMuZXhwYW5kZWQgJiYgIXRoaXMuX3Nob3VsZFJlZnJlc2hDaGlsZHJlbiAmJiB0
aGlzLl9jaGlsZHJlbkxpc3ROb2RlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8v
IFNldCB0aGlzIGJlZm9yZSBvbnBvcHVsYXRlLiBTaW5jZSBvbnBvcHVsYXRlIGNhbiBhZGQgZWxl
bWVudHMgYW5kIGNhbGwgb25hZGQsIHRoaXMgbWFrZXMKLSAgICAgICAgLy8gc3VyZSB0aGUgZXhw
YW5kZWQgZmxhZyBpcyB0cnVlIGJlZm9yZSBjYWxsaW5nIHRob3NlIGZ1bmN0aW9ucy4gVGhpcyBw
cmV2ZW50cyB0aGUgcG9zc2liaWxpdHkKLSAgICAgICAgLy8gb2YgYW4gaW5maW5pdGUgbG9vcCBp
ZiBvbnBvcHVsYXRlIG9yIG9uYWRkIHdlcmUgdG8gY2FsbCBleHBhbmQuCisgICAgICAgIC8vIFNl
dCB0aGlzIGJlZm9yZSBvbnBvcHVsYXRlLiBTaW5jZSBvbnBvcHVsYXRlIGNhbiBhZGQgZWxlbWVu
dHMgYW5kIGRpc3BhdGNoIGFuIEVsZW1lbnRBZGRlZCBldmVudCwKKyAgICAgICAgLy8gdGhpcyBt
YWtlcyBzdXJlIHRoZSBleHBhbmRlZCBmbGFnIGlzIHRydWUgYmVmb3JlIGNhbGxpbmcgdGhvc2Ug
ZnVuY3Rpb25zLiBUaGlzIHByZXZlbnRzIHRoZQorICAgICAgICAvLyBwb3NzaWJpbGl0eSBvZiBh
biBpbmZpbml0ZSBsb29wIGlmIG9ucG9wdWxhdGUgb3IgYW4gZXZlbnQgaGFuZGxlciB3ZXJlIHRv
IGNhbGwgZXhwYW5kLgogCiAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlOwogICAgICAgICBp
ZiAodGhpcy50cmVlT3V0bGluZSkKQEAgLTkwNCw4ICs5MDQsOCBAQCBXZWJJbnNwZWN0b3IuVHJl
ZUVsZW1lbnQgPSBjbGFzcyBUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QK
ICAgICAgICAgaWYgKHRoaXMub25leHBhbmQpCiAgICAgICAgICAgICB0aGlzLm9uZXhwYW5kKHRo
aXMpOwogCi0gICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lICYmIHRoaXMudHJlZU91dGxpbmUu
b25leHBhbmQpCi0gICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLm9uZXhwYW5kKHRoaXMpOwor
ICAgICAgICBpZiAodGhpcy50cmVlT3V0bGluZSkKKyAgICAgICAgICAgIHRoaXMudHJlZU91dGxp
bmUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5FdmVu
dC5FbGVtZW50RXhwYW5kZWRDaGFuZ2VkLCB7ZWxlbWVudDogdGhpc30pOwogICAgIH0KIAogICAg
IGV4cGFuZFJlY3Vyc2l2ZWx5KG1heERlcHRoKQpAQCAtOTk2LDYgKzk5NiwxMyBAQCBXZWJJbnNw
ZWN0b3IuVHJlZUVsZW1lbnQgPSBjbGFzcyBUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rv
ci5PYmplY3QKIAogICAgICAgICB0cmVlT3V0bGluZS5wcm9jZXNzaW5nU2VsZWN0aW9uQ2hhbmdl
ID0gdHJ1ZTsKIAorICAgICAgICAvLyBQcmV2ZW50IGRpc3BhdGNoaW5nIGEgU2VsZWN0ZWRFbGVt
ZW50Q2hhbmdlZCBldmVudHMgZm9yIHRoZSBkZXNlbGVjdGVkIGVsZW1lbnQsCisgICAgICAgIC8v
IGlmIGFuIGV2ZW50IHdpbGwgYmUgZGlzcGF0Y2hlZCBmb3IgdGhlIHNlbGVjdGVkIGVsZW1lbnQu
IFRoZSBldmVudCBkYXRhIGluY2x1ZGVzCisgICAgICAgIC8vIGJvdGggdGhlIHNlbGVjdGVkIGFu
ZCBkZXNlbGVjdGVkIGVsZW1lbnRzLgorICAgICAgICBpZiAoIXN1cHByZXNzT25TZWxlY3QpCisg
ICAgICAgICAgICBzdXBwcmVzc09uRGVzZWxlY3QgPSB0cnVlOworCisgICAgICAgIGxldCBkZXNl
bGVjdGVkRWxlbWVudCA9IHRyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQ7CiAgICAgICAg
IGlmICghdGhpcy5zZWxlY3RlZCkgewogICAgICAgICAgICAgaWYgKHRyZWVPdXRsaW5lLnNlbGVj
dGVkVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICAgICAgdHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVl
RWxlbWVudC5kZXNlbGVjdChzdXBwcmVzc09uRGVzZWxlY3QpOwpAQCAtMTAwNywxMSArMTAxNCwx
MiBAQCBXZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnQgPSBjbGFzcyBUcmVlRWxlbWVudCBleHRlbmRz
IFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUu
Y2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICh0aGlz
Lm9uc2VsZWN0ICYmICFzdXBwcmVzc09uU2VsZWN0KQotICAgICAgICAgICAgdGhpcy5vbnNlbGVj
dCh0aGlzLCBzZWxlY3RlZEJ5VXNlcik7CisgICAgICAgIGlmICghc3VwcHJlc3NPblNlbGVjdCkg
eworICAgICAgICAgICAgaWYgKHRoaXMub25zZWxlY3QpCisgICAgICAgICAgICAgICAgdGhpcy5v
bnNlbGVjdCh0aGlzLCBzZWxlY3RlZEJ5VXNlcik7CiAKLSAgICAgICAgaWYgKHRyZWVPdXRsaW5l
Lm9uc2VsZWN0ICYmICFzdXBwcmVzc09uU2VsZWN0KQotICAgICAgICAgICAgdHJlZU91dGxpbmUu
b25zZWxlY3QodGhpcywgc2VsZWN0ZWRCeVVzZXIpOworICAgICAgICAgICAgdGhpcy50cmVlT3V0
bGluZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2
ZW50LlNlbGVjdGVkRWxlbWVudENoYW5nZWQsIHtzZWxlY3RlZEVsZW1lbnQ6IHRoaXMsIGRlc2Vs
ZWN0ZWRFbGVtZW50LCBzZWxlY3RlZEJ5VXNlcn0pOworICAgICAgICB9CiAKICAgICAgICAgdHJl
ZU91dGxpbmUucHJvY2Vzc2luZ1NlbGVjdGlvbkNoYW5nZSA9IGZhbHNlOwogICAgIH0KQEAgLTEw
MzMsMTEgKzEwNDEsMTIgQEAgV2ViSW5zcGVjdG9yLlRyZWVFbGVtZW50ID0gY2xhc3MgVHJlZUVs
ZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLl9saXN0
SXRlbU5vZGUpCiAgICAgICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUuY2xhc3NMaXN0LnJlbW92
ZSgic2VsZWN0ZWQiKTsKIAotICAgICAgICBpZiAodGhpcy5vbmRlc2VsZWN0ICYmICFzdXBwcmVz
c09uRGVzZWxlY3QpCi0gICAgICAgICAgICB0aGlzLm9uZGVzZWxlY3QodGhpcyk7CisgICAgICAg
IGlmICghc3VwcHJlc3NPbkRlc2VsZWN0KSB7CisgICAgICAgICAgICBpZiAodGhpcy5vbmRlc2Vs
ZWN0KQorICAgICAgICAgICAgICAgIHRoaXMub25kZXNlbGVjdCh0aGlzKTsKIAotICAgICAgICBp
ZiAodGhpcy50cmVlT3V0bGluZS5vbmRlc2VsZWN0ICYmICFzdXBwcmVzc09uRGVzZWxlY3QpCi0g
ICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLm9uZGVzZWxlY3QodGhpcyk7CisgICAgICAgICAg
ICB0aGlzLnRyZWVPdXRsaW5lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
VHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0ZWRFbGVtZW50Q2hhbmdlZCwge2Rlc2VsZWN0ZWRFbGVt
ZW50OiB0aGlzfSk7CisgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVl
T3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5qcwppbmRl
eCAxZGQ2MmIzZTAxYWMzMDM2MTkzYTAyMGE4MjE3MWM3ZTMzN2Y0NWU0Li42ZDRjOTdiZjM1MmUw
YjdhOTFkYWEyM2ZiY2UxNWI4MTVkZjA3NGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVy
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVP
dXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIuanMKQEAgLTQ5LDQ5ICs0OSwxMSBAQCBXZWJJbnNw
ZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplciA9IGNsYXNzIFRyZWVPdXRsaW5l
RGF0YUdyaWRTeW5jaHJvbgogICAgICAgICB0aGlzLl90cmVlT3V0bGluZS5lbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImZvY3VzIiwgdGhpcy5fdHJlZU91dGxpbmVHYWluZWRGb2N1cy5iaW5kKHRo
aXMpKTsKICAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUuZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJibHVyIiwgdGhpcy5fdHJlZU91dGxpbmVMb3N0Rm9jdXMuYmluZCh0aGlzKSk7CiAKLSAgICAg
ICAgLy8gRklYTUU6IFRoaXMgaXMgYSBoYWNrLiBUcmVlT3V0bGluZSBzaG91bGQganVzdCBkaXNw
YXRjaCBldmVudHMgdmlhIFdlYkluc3BlY3Rvci5PYmplY3QuCi0gICAgICAgIHZhciBleGlzdGlu
Z09uQWRkID0gdHJlZU91dGxpbmUub25hZGQ7Ci0gICAgICAgIHZhciBleGlzdGluZ09uUmVtb3Zl
ID0gdHJlZU91dGxpbmUub25yZW1vdmU7Ci0gICAgICAgIHZhciBleGlzdGluZ09uRXhwYW5kID0g
dHJlZU91dGxpbmUub25leHBhbmQ7Ci0gICAgICAgIHZhciBleGlzdGluZ09uQ29sbGFwc2UgPSB0
cmVlT3V0bGluZS5vbmNvbGxhcHNlOwotICAgICAgICB2YXIgZXhpc3RpbmdPbkhpZGRlbiA9IHRy
ZWVPdXRsaW5lLm9uaGlkZGVuOwotICAgICAgICB2YXIgZXhpc3RpbmdPblNlbGVjdCA9IHRyZWVP
dXRsaW5lLm9uc2VsZWN0OwotCi0gICAgICAgIHRyZWVPdXRsaW5lLm9uYWRkID0gZnVuY3Rpb24o
ZWxlbWVudCkgewotICAgICAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnRBZGRlZChlbGVtZW50KTsK
LSAgICAgICAgICAgIGlmIChleGlzdGluZ09uQWRkKQotICAgICAgICAgICAgICAgIGV4aXN0aW5n
T25BZGQuY2FsbCh0cmVlT3V0bGluZSwgZWxlbWVudCk7Ci0gICAgICAgIH0uYmluZCh0aGlzKTsK
LQotICAgICAgICB0cmVlT3V0bGluZS5vbnJlbW92ZSA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKLSAg
ICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50UmVtb3ZlZChlbGVtZW50KTsKLSAgICAgICAgICAg
IGlmIChleGlzdGluZ09uUmVtb3ZlKQotICAgICAgICAgICAgICAgIGV4aXN0aW5nT25SZW1vdmUu
Y2FsbCh0cmVlT3V0bGluZSwgZWxlbWVudCk7Ci0gICAgICAgIH0uYmluZCh0aGlzKTsKLQotICAg
ICAgICB0cmVlT3V0bGluZS5vbmV4cGFuZCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKLSAgICAgICAg
ICAgIHRoaXMuX3RyZWVFbGVtZW50RXhwYW5kZWQoZWxlbWVudCk7Ci0gICAgICAgICAgICBpZiAo
ZXhpc3RpbmdPbkV4cGFuZCkKLSAgICAgICAgICAgICAgICBleGlzdGluZ09uRXhwYW5kLmNhbGwo
dHJlZU91dGxpbmUsIGVsZW1lbnQpOwotICAgICAgICB9LmJpbmQodGhpcyk7Ci0KLSAgICAgICAg
dHJlZU91dGxpbmUub25jb2xsYXBzZSA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKLSAgICAgICAgICAg
IHRoaXMuX3RyZWVFbGVtZW50Q29sbGFwc2VkKGVsZW1lbnQpOwotICAgICAgICAgICAgaWYgKGV4
aXN0aW5nT25Db2xsYXBzZSkKLSAgICAgICAgICAgICAgICBleGlzdGluZ09uQ29sbGFwc2UuY2Fs
bCh0cmVlT3V0bGluZSwgZWxlbWVudCk7Ci0gICAgICAgIH0uYmluZCh0aGlzKTsKLQotICAgICAg
ICB0cmVlT3V0bGluZS5vbmhpZGRlbiA9IGZ1bmN0aW9uKGVsZW1lbnQsIGhpZGRlbikgewotICAg
ICAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnRIaWRkZW5DaGFuZ2VkKGVsZW1lbnQsIGhpZGRlbik7
Ci0gICAgICAgICAgICBpZiAoZXhpc3RpbmdPbkhpZGRlbikKLSAgICAgICAgICAgICAgICBleGlz
dGluZ09uSGlkZGVuLmNhbGwodHJlZU91dGxpbmUsIGVsZW1lbnQsIGhpZGRlbik7Ci0gICAgICAg
IH0uYmluZCh0aGlzKTsKLQotICAgICAgICB0cmVlT3V0bGluZS5vbnNlbGVjdCA9IGZ1bmN0aW9u
KGVsZW1lbnQsIHNlbGVjdGVkQnlVc2VyKSB7Ci0gICAgICAgICAgICB0aGlzLl90cmVlRWxlbWVu
dFNlbGVjdGVkKGVsZW1lbnQsIHNlbGVjdGVkQnlVc2VyKTsKLSAgICAgICAgICAgIGlmIChleGlz
dGluZ09uU2VsZWN0KQotICAgICAgICAgICAgICAgIGV4aXN0aW5nT25TZWxlY3QuY2FsbCh0cmVl
T3V0bGluZSwgZWxlbWVudCwgc2VsZWN0ZWRCeVVzZXIpOwotICAgICAgICB9LmJpbmQodGhpcyk7
CisgICAgICAgIHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVP
dXRsaW5lLkV2ZW50LkVsZW1lbnRBZGRlZCwgdGhpcy5fdHJlZUVsZW1lbnRBZGRlZCwgdGhpcyk7
CisgICAgICAgIHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVP
dXRsaW5lLkV2ZW50LkVsZW1lbnRSZW1vdmVkLCB0aGlzLl90cmVlRWxlbWVudFJlbW92ZWQsIHRo
aXMpOworICAgICAgICB0cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5U
cmVlT3V0bGluZS5FdmVudC5FbGVtZW50RXhwYW5kZWRDaGFuZ2VkLCB0aGlzLl90cmVlRWxlbWVu
dEV4cGFuZGVkQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRIaWRkZW5DaGFuZ2Vk
LCB0aGlzLl90cmVlRWxlbWVudEhpZGRlbkNoYW5nZWQsIHRoaXMpOworICAgICAgICB0cmVlT3V0
bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5FdmVudC5TZWxl
Y3RlZEVsZW1lbnRDaGFuZ2VkLCB0aGlzLl90cmVlRWxlbWVudFNlbGVjdGVkLCB0aGlzKTsKICAg
ICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTI0MywyNyArMjA1LDM2IEBAIFdlYkluc3BlY3Rvci5U
cmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyID0gY2xhc3MgVHJlZU91dGxpbmVEYXRhR3Jp
ZFN5bmNocm9uCiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92
ZSgiZm9yY2UtZm9jdXMiKTsKICAgICB9CiAKLSAgICBfdHJlZUVsZW1lbnRTZWxlY3RlZCh0cmVl
RWxlbWVudCwgc2VsZWN0ZWRCeVVzZXIpCisgICAgX3RyZWVFbGVtZW50U2VsZWN0ZWQoZXZlbnQp
CiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgdmFyIGRhdGFHcmlkTm9kZSA9IHRyZWVFbGVtZW50Ll9fZGF0YUdyaWROb2Rl
OworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudCB8
fCBldmVudC5kYXRhLmRlc2VsZWN0ZWRFbGVtZW50OworICAgICAgICBjb25zb2xlLmFzc2VydCh0
cmVlRWxlbWVudCk7CisgICAgICAgIGlmICghdHJlZUVsZW1lbnQpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgbGV0IGRhdGFHcmlkTm9kZSA9IHRyZWVFbGVtZW50Ll9fZGF0YUdyaWRO
b2RlOwogICAgICAgICBjb25zb2xlLmFzc2VydChkYXRhR3JpZE5vZGUpOwogCi0gICAgICAgIGRh
dGFHcmlkTm9kZS5zZWxlY3QodHJ1ZSk7CisgICAgICAgIGlmIChldmVudC5kYXRhLnNlbGVjdGVk
RWxlbWVudCkKKyAgICAgICAgICAgIGRhdGFHcmlkTm9kZS5zZWxlY3QoKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgZGF0YUdyaWROb2RlLmRlc2VsZWN0KCk7CiAgICAgfQogCi0gICAgX3Ry
ZWVFbGVtZW50QWRkZWQodHJlZUVsZW1lbnQpCisgICAgX3RyZWVFbGVtZW50QWRkZWQoZXZlbnQp
CiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgdmFyIGRhdGFHcmlkTm9kZSA9IHRoaXMuZGF0YUdyaWROb2RlRm9yVHJlZUVs
ZW1lbnQodHJlZUVsZW1lbnQpOworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRh
LmVsZW1lbnQ7CisgICAgICAgIGxldCBkYXRhR3JpZE5vZGUgPSB0aGlzLmRhdGFHcmlkTm9kZUZv
clRyZWVFbGVtZW50KHRyZWVFbGVtZW50KTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoZGF0YUdy
aWROb2RlKTsKIAogICAgICAgICB2YXIgcGFyZW50RGF0YUdyaWROb2RlID0gdHJlZUVsZW1lbnQu
cGFyZW50Ll9fZGF0YUdyaWROb2RlOwotICAgICAgICBjb25zb2xlLmFzc2VydChkYXRhR3JpZE5v
ZGUpOworICAgICAgICBjb25zb2xlLmFzc2VydChwYXJlbnREYXRhR3JpZE5vZGUpOwogCiAgICAg
ICAgIHZhciBjaGlsZEluZGV4ID0gdHJlZUVsZW1lbnQucGFyZW50LmNoaWxkcmVuLmluZGV4T2Yo
dHJlZUVsZW1lbnQpOwogICAgICAgICBjb25zb2xlLmFzc2VydChjaGlsZEluZGV4ICE9PSAtMSk7
CkBAIC0yNzEsNTAgKzI0Miw0MyBAQCBXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5
bmNocm9uaXplciA9IGNsYXNzIFRyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbgogICAgICAgICBw
YXJlbnREYXRhR3JpZE5vZGUuaW5zZXJ0Q2hpbGQoZGF0YUdyaWROb2RlLCBjaGlsZEluZGV4KTsK
ICAgICB9CiAKLSAgICBfdHJlZUVsZW1lbnRSZW1vdmVkKHRyZWVFbGVtZW50KQorICAgIF90cmVl
RWxlbWVudFJlbW92ZWQoZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIGRhdGFHcmlkTm9kZSA9IHRyZWVF
bGVtZW50Ll9fZGF0YUdyaWROb2RlOworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5k
YXRhLmVsZW1lbnQ7CisgICAgICAgIGxldCBkYXRhR3JpZE5vZGUgPSB0cmVlRWxlbWVudC5fX2Rh
dGFHcmlkTm9kZTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoZGF0YUdyaWROb2RlKTsKIAogICAg
ICAgICBpZiAoZGF0YUdyaWROb2RlLnBhcmVudCkKICAgICAgICAgICAgIGRhdGFHcmlkTm9kZS5w
YXJlbnQucmVtb3ZlQ2hpbGQoZGF0YUdyaWROb2RlKTsKICAgICB9CiAKLSAgICBfdHJlZUVsZW1l
bnRFeHBhbmRlZCh0cmVlRWxlbWVudCkKKyAgICBfdHJlZUVsZW1lbnRFeHBhbmRlZENoYW5nZWQo
ZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgdmFyIGRhdGFHcmlkTm9kZSA9IHRyZWVFbGVtZW50Ll9fZGF0YUdy
aWROb2RlOworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLmVsZW1lbnQ7Cisg
ICAgICAgIGxldCBkYXRhR3JpZE5vZGUgPSB0cmVlRWxlbWVudC5fX2RhdGFHcmlkTm9kZTsKICAg
ICAgICAgY29uc29sZS5hc3NlcnQoZGF0YUdyaWROb2RlKTsKIAotICAgICAgICBpZiAoIWRhdGFH
cmlkTm9kZS5leHBhbmRlZCkKKyAgICAgICAgaWYgKHRyZWVFbGVtZW50LmV4cGFuZGVkKQogICAg
ICAgICAgICAgZGF0YUdyaWROb2RlLmV4cGFuZCgpOwotICAgIH0KLQotICAgIF90cmVlRWxlbWVu
dENvbGxhcHNlZCh0cmVlRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fZW5hYmxl
ZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgZGF0YUdyaWROb2RlID0gdHJl
ZUVsZW1lbnQuX19kYXRhR3JpZE5vZGU7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRhdGFHcmlk
Tm9kZSk7Ci0KLSAgICAgICAgaWYgKGRhdGFHcmlkTm9kZS5leHBhbmRlZCkKKyAgICAgICAgZWxz
ZQogICAgICAgICAgICAgZGF0YUdyaWROb2RlLmNvbGxhcHNlKCk7CiAgICAgfQogCi0gICAgX3Ry
ZWVFbGVtZW50SGlkZGVuQ2hhbmdlZCh0cmVlRWxlbWVudCwgaGlkZGVuKQorICAgIF90cmVlRWxl
bWVudEhpZGRlbkNoYW5nZWQoZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2VuYWJs
ZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIGRhdGFHcmlkTm9kZSA9IHRy
ZWVFbGVtZW50Ll9fZGF0YUdyaWROb2RlOworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVu
dC5kYXRhLmVsZW1lbnQ7CisgICAgICAgIGxldCBkYXRhR3JpZE5vZGUgPSB0cmVlRWxlbWVudC5f
X2RhdGFHcmlkTm9kZTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoZGF0YUdyaWROb2RlKTsKIAot
ICAgICAgICBkYXRhR3JpZE5vZGUuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCBo
aWRkZW4pOworICAgICAgICBkYXRhR3JpZE5vZGUuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJo
aWRkZW4iLCB0cmVlRWxlbWVudC5oaWRkZW4pOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2Vw
YXJhdGVkS2V5d29yZEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLmpzCmluZGV4
IDA2ODQ5NjRlOGRhNjEwYWNmYWFkY2Q0OWMxNWU4ZDE1OGE5MTRjMTQuLjYwYTc1MzE1MTYyNTIw
NmM5OTExMTE3ZGFlNTBmMzU1NDNkOTk3ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3Jk
RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLmpzCkBAIC0zOCw3ICszOCw3
IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvciA9
IGNsYXNzIFZpc3VhbFN0eWxlQ29tbWFTZXBhCiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQu
YXBwZW5kQ2hpbGQobGlzdEVsZW1lbnQpOwogCiAgICAgICAgIHRoaXMuX2NvbW1hU2VwYXJhdGVk
S2V5d29yZHMgPSBuZXcgV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lKGxpc3RFbGVtZW50KTsKLSAg
ICAgICAgdGhpcy5fY29tbWFTZXBhcmF0ZWRLZXl3b3Jkcy5vbnNlbGVjdCA9IHRoaXMuX3RyZWVF
bGVtZW50U2VsZWN0ZWQuYmluZCh0aGlzKTsKKyAgICAgICAgdGhpcy5fY29tbWFTZXBhcmF0ZWRL
ZXl3b3Jkcy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5FdmVudC5T
ZWxlY3RlZEVsZW1lbnRDaGFuZ2VkLCB0aGlzLl90cmVlRWxlbWVudFNlbGVjdGVkLCB0aGlzKTsK
IAogICAgICAgICBsZXQgY29udHJvbENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogICAgICAgICBjb250cm9sQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInZpc3VhbC1z
dHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1jb250cm9scyIpOwpAQCAtMTg1LDEwICsxODUs
MTQgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9y
ID0gY2xhc3MgVmlzdWFsU3R5bGVDb21tYVNlcGEKICAgICAgICAgICAgIHRoaXMuX3JlbW92ZVNl
bGVjdGVkQ29tbWFTZXBhcmF0ZWRLZXl3b3JkKCk7CiAgICAgfQogCi0gICAgX3RyZWVFbGVtZW50
U2VsZWN0ZWQoaXRlbSwgc2VsZWN0ZWRCeVVzZXIpCisgICAgX3RyZWVFbGVtZW50U2VsZWN0ZWQo
ZXZlbnQpCiAgICAgeworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLnNlbGVj
dGVkRWxlbWVudDsKKyAgICAgICAgaWYgKCF0cmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVy
bjsKKwogICAgICAgICB0aGlzLl9yZW1vdmVFbXB0eUNvbW1hU2VwYXJhdGVkS2V5d29yZHMoKTsK
LSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLkV2ZW50LlRyZWVJdGVtU2VsZWN0ZWQs
IHt0ZXh0OiBpdGVtLm1haW5UaXRsZX0pOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0
b3IuRXZlbnQuVHJlZUl0ZW1TZWxlY3RlZCwge3RleHQ6IHRyZWVFbGVtZW50Lm1haW5UaXRsZX0p
OwogICAgIH0KIAogICAgIF90cmVlRWxlbWVudElzRW1wdHkoaXRlbSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266406</attachid>
            <date>2015-12-01 16:10:59 -0800</date>
            <delta_ts>2015-12-01 17:37:57 -0800</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-148067-20151201161036.patch</filename>
            <type>text/plain</type>
            <size>52401</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBj
NjQwYzg0NjQ3OWZmN2M0MmI4NTk4NDc3MzAwOGFkODdlZjI0MDljLi44YmJkYzQ5MTc0YzI3YTdh
ODdjNGM5YjYzZDZjYzg5NDlkZTRlMDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTggQEAKKzIwMTUtMTItMDEgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRyZWVPdXRsaW5lIHNob3VsZCBqdXN0IGRpc3Bh
dGNoIGV2ZW50cyB2aWEgV2ViSW5zcGVjdG9yLk9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJlZU91dGxpbmUgbm93IGRpc3BhdGNoZXMgbW9z
dCBldmVudHMgdmlhIFdlYkluc3BlY3Rvci5PYmplY3QuIFRoZSBvbnNlbGVjdCBhbmQKKyAgICAg
ICAgb25kZXNlbGVjdCBjYWxsYmFja3MgYXJlIHJlcGxhY2VkIGJ5IGEgU2VsZWN0aW9uRGlkQ2hh
bmdlIGV2ZW50LCB3aGljaCBpbmNsdWRlcworICAgICAgICBib3RoIHRoZSBzZWxlY3RlZCBhbmQg
ZGVzZWxlY3RlZCBlbGVtZW50cyBpbiBpdHMgZXZlbnQgZGF0YS4gVGhlIG9uZXhwYW5kIGFuZCBv
bmNvbGxhcHNlCisgICAgICAgIGNhbGxiYWNrcyBhcmUgcmVwbGFjZWQgYnkgYW4gRWxlbWVudERp
c2Nsb3N1cmVEaWRDaGFuZ2UgZXZlbnQuIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIHRoZQorICAg
ICAgICBiZWhhdmlvciBvZiBvbmhpZGRlbiwgd2hpY2ggaGFkIG5vIGNvcnJlc3BvbmRpbmcgb252
aXNpYmxlIGNhbGxiYWNrLgorCisgICAgICAgIEFsYXMsIFRpbWVsaW5lVmlldyBhbmQgVHJlZU91
dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplciBkZXBlbmRlZCBvbiB0aGUgb3JkZXIgaW4gd2hpY2gK
KyAgICAgICAgVHJlZU91dGxpbmUub25zZWxlY3QgY2FsbGJhY2tzIHdlcmUgY2hhaW5lZCB0b2dl
dGhlci4gVGhlIHN5bmNocm9uaXplciBhZGRlZCBpdHMKKyAgICAgICAgY2FsbGJhY2sgYWZ0ZXIg
dGhlIHRpbWVsaW5lIHZpZXcsIHdoaWNoIGVuc3VyZWQgdGhhdCB0aGUgdHJlZSBhbmQgZ3JpZCB3
ZXJlIGluIHN5bmMKKyAgICAgICAgYmVmb3JlIHRoZSB2aWV3IGhhbmRsZWQgb25zZWxlY3QgYW5k
IGRpc3BhdGNoZWQgYSBTZWxlY3Rpb25QYXRoQ29tcG9uZW50c0RpZENoYW5nZS4KKyAgICAgICAg
VGhlIGNoYW5nZSBub3RpZmljYXRpb24gY2F1c2VzIHRoZSB2aWV3J3MgcGF0aCBjb21wb25lbnRz
IHRvIGJlIHJlYWQsIGFuZCB0aW1lbGluZQorICAgICAgICB2aWV3cyBuZWVkIHRoZSBncmlkIHNl
bGVjdGlvbiB0byBiZSBpbiBhIHZhbGlkIHN0YXRlIHRvIGJ1aWxkIHBhdGggY29tcG9uZW50cy4K
KworICAgICAgICBUaGlzIGlzIGFkZHJlc3NlZCBieSBoYXZpbmcgdGltZWxpbmUgdmlld3MgZGlz
cGF0Y2ggU2VsZWN0aW9uUGF0aENvbXBvbmVudHNEaWRDaGFuZ2UKKyAgICAgICAgZXZlbnRzIHdo
ZW4gdGhlIGdyaWQgc2VsZWN0aW9uIGNoYW5nZXMsIGluc3RlYWQgb2YgdGhlIHRyZWUgc2VsZWN0
aW9uLiBUaGUgY2hhbmdlCisgICAgICAgIHJlcXVpcmVkIHRoYXQgdGhlIHN5bmNocm9uaXplciBu
byBsb25nZXIgc3VwcHJlc3Mgbm90aWZpY2F0aW9ucyB3aGVuIHNlbGVjdGluZyBncmlkIG5vZGVz
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl90cmVlU2VsZWN0
aW9uRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5l
bC5wcm90b3R5cGUuX3VwZGF0ZVBhdXNlUmVhc29uU2VjdGlvbik6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUuY3JlYXRlQ29udGVudFRy
ZWVPdXRsaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uU2lkZWJhclBhbmVs
LnByb3RvdHlwZS5fdHJlZUVsZW1lbnRBZGRlZE9yQ2hhbmdlZCk6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtHcmlkQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmV0d29ya0dyaWRDb250ZW50Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TmV0d29ya0dyaWRDb250ZW50Vmlldy5wcm90b3R5cGUuX3RyZWVTZWxlY3Rpb25EaWRDaGFuZ2Up
OgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwucHJvdG90eXBlLl90cmVlU2VsZWN0
aW9uRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5l
bC5wcm90b3R5cGUuX3RyZWVFbGVtZW50U2VsZWN0ZWQpOiBEZWxldGVkLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9TY29wZUNoYWluRGV0YWlsc1NpZGViYXJQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY29wZUNoYWluRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5
cGUuX2dlbmVyYXRlQ2FsbEZyYW1lc1NlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
b3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fZ2VuZXJhdGVXYXRjaEV4cHJl
c3Npb25zU2VjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNT
aWRlYmFyUGFuZWwucHJvdG90eXBlLl90cmVlRWxlbWVudEFkZGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY29wZUNoYWluRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3RyZWVFbGVt
ZW50RGlzY2xvc3VyZURpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NvcGVDaGFp
bkRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9vYmplY3RUcmVlRXhwYW5kSGFuZGxlcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFy
UGFuZWwucHJvdG90eXBlLl9vYmplY3RUcmVlQ29sbGFwc2VIYW5kbGVyKTogRGVsZXRlZC4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoU2lkZWJhclBhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaFNpZGViYXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2VhcmNoU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fdHJlZVNlbGVjdGlvbkRpZENoYW5n
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoU2lkZWJhclBhbmVsLnByb3RvdHlwZS5f
dHJlZUVsZW1lbnRTZWxlY3RlZCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1N0b3JhZ2VTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3Rv
cmFnZVNpZGViYXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZVNpZGViYXJQ
YW5lbC5fdHJlZVNlbGVjdGlvbkRpZENoYW5nZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1RpbWVsaW5lRGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxp
bmVEYXRhR3JpZC5wcm90b3R5cGUuX2NyZWF0ZVBvcG92ZXJDb250ZW50KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZURhdGFHcmlkLnByb3RvdHlwZS5fcG9wb3ZlckNhbGxTdGFja1Ry
ZWVTZWxlY3Rpb25EaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGF0
YUdyaWQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVNpZGViYXJQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9yZWNv
cmRpbmdzVHJlZVNlbGVjdGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVTaWRlYmFyUGFuZWwucHJvdG90eXBlLl90aW1lbGluZXNUcmVlU2VsZWN0aW9uRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbC5wcm90b3R5
cGUuX3RpbWVsaW5lc1RyZWVFbGVtZW50U2VsZWN0ZWQpOiBEZWxldGVkLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVZpZXcucHJv
dG90eXBlLl90cmVlU2VsZWN0aW9uRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVZpZXcucHJvdG90eXBlLnRyZWVFbGVtZW50U2VsZWN0ZWQpOgorICAgICAgICBEb24n
dCBkaXNwYXRjaCBTZWxlY3Rpb25QYXRoQ29tcG9uZW50c0RpZENoYW5nZS4gVGltZWxpbmUgdmll
d3MgYWxyZWFkeSBkbyB0aGlzCisgICAgICAgIGluIHJlc3BvbnNlIHRvIGdyaWQgc2VsZWN0aW9u
IGV2ZW50cy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUucHJvdG90eXBlLmFwcGVuZENoaWxk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5wcm90b3R5cGUuaW5zZXJ0Q2hp
bGQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLnByb3RvdHlwZS5yZW1vdmVD
aGlsZEF0SW5kZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLnByb3RvdHlw
ZS5yZW1vdmVDaGlsZHJlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUucHJv
dG90eXBlLnJlbW92ZUNoaWxkcmVuUmVjdXJzaXZlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
cmVlT3V0bGluZS5wcm90b3R5cGUuX3RyZWVFbGVtZW50RGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UcmVlRWxlbWVudC5wcm90b3R5cGUuc2V0IGhpZGRlbik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnQucHJvdG90eXBlLmNvbGxhcHNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UcmVlRWxlbWVudC5wcm90b3R5cGUuZXhwYW5kKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UcmVlRWxlbWVudC5wcm90b3R5cGUuc2VsZWN0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UcmVlRWxlbWVudC5wcm90b3R5cGUuZGVzZWxlY3QpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgY2hpbGRyZW5MaXN0RWxlbWVudCk6IERlbGV0
ZWQuCisgICAgICAgIFJlbW92ZWQgZGVhZCBjb2RlLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIucHJvdG90eXBlLl90cmVl
U2VsZWN0aW9uRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZURh
dGFHcmlkU3luY2hyb25pemVyLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRBZGRlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5wcm90b3R5cGUu
X3RyZWVFbGVtZW50UmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVE
YXRhR3JpZFN5bmNocm9uaXplci5wcm90b3R5cGUuX3RyZWVFbGVtZW50RGlzY2xvc3VyZURpZENo
YW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9u
aXplci5wcm90b3R5cGUuX3RyZWVFbGVtZW50VmlzaWJpbGl0eURpZENoYW5nZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci50cmVlT3V0bGlu
ZS5vbmFkZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRh
R3JpZFN5bmNocm9uaXplci50cmVlT3V0bGluZS5vbnJlbW92ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci50cmVlT3V0bGlu
ZS5vbmV4cGFuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVE
YXRhR3JpZFN5bmNocm9uaXplci50cmVlT3V0bGluZS5vbmNvbGxhcHNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLnRyZWVP
dXRsaW5lLm9uaGlkZGVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UcmVlT3V0
bGluZURhdGFHcmlkU3luY2hyb25pemVyLnRyZWVPdXRsaW5lLm9uc2VsZWN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyLnBy
b3RvdHlwZS5fdHJlZUVsZW1lbnRTZWxlY3RlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5wcm90b3R5cGUuX3RyZWVFbGVt
ZW50RXhwYW5kZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5l
RGF0YUdyaWRTeW5jaHJvbml6ZXIucHJvdG90eXBlLl90cmVlRWxlbWVudENvbGxhcHNlZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9u
aXplci5wcm90b3R5cGUuX3RyZWVFbGVtZW50SGlkZGVuQ2hhbmdlZCk6IERlbGV0ZWQuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3
b3JkRWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29tbWFTZXBh
cmF0ZWRLZXl3b3JkRWRpdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNv
bW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5wcm90b3R5cGUuX3RyZWVTZWxlY3Rpb25EaWRDaGFu
Z2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3
b3JkRWRpdG9yLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRTZWxlY3RlZCk6IERlbGV0ZWQuCisKIDIw
MTUtMTItMDEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBUaW1lc3RhbXAgaW4gVG9vbHRpcCBvZiBFdmVudCBNYXJrZXJzIGlz
IGluY29ycmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcwppbmRleCAyYjNmMDA3
OTUzMDU4MTNhYjFiMDQ5YmVhYTQzZGMzN2E0NDgyMjY3Li41YzA5Y2VmYzAzNTVlYzE4NGY3NmRm
YWNjYzJjOTUxZDQ5ODFiNThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcwpA
QCAtMTEzLDcgKzExMyw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNs
YXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIHRoaXMu
ZmlsdGVyQmFyLmFkZEZpbHRlckJhckJ1dHRvbigiZGVidWdnZXItc2hvdy1yZXNvdXJjZXMtd2l0
aC1pc3N1ZXMtb25seSIsIHNob3dSZXNvdXJjZXNXaXRoSXNzdWVzT25seUZpbHRlckZ1bmN0aW9u
LCB0cnVlLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgb25seSByZXNvdXJjZXMgd2l0aCBp
c3N1ZXMuIiksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyByZXNvdXJjZXMgd2l0aCBhbmQg
d2l0aG91dCBpc3N1ZXMuIiksICJJbWFnZXMvRXJyb3JzLnN2ZyIsIDE1LCAxNSk7CiAKICAgICAg
ICAgdGhpcy5fYnJlYWtwb2ludHNDb250ZW50VHJlZU91dGxpbmUgPSB0aGlzLmNvbnRlbnRUcmVl
T3V0bGluZTsKLSAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNDb250ZW50VHJlZU91dGxpbmUub25z
ZWxlY3QgPSB0aGlzLl90cmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhpcyk7CisgICAgICAgIHRo
aXMuX2JyZWFrcG9pbnRzQ29udGVudFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5fdHJlZVNl
bGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzQ29udGVu
dFRyZWVPdXRsaW5lLm9uZGVsZXRlID0gdGhpcy5fYnJlYWtwb2ludFRyZWVPdXRsaW5lRGVsZXRl
VHJlZUVsZW1lbnQuYmluZCh0aGlzKTsKICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNDb250ZW50
VHJlZU91dGxpbmUub25jb250ZXh0bWVudSA9IHRoaXMuX2JyZWFrcG9pbnRUcmVlT3V0bGluZUNv
bnRleHRNZW51VHJlZUVsZW1lbnQuYmluZCh0aGlzKTsKIApAQCAtMTMwLDcgKzEzMCw3IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBh
bmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQoYnJlYWtwb2ludHNTZWN0aW9uLmVsZW1lbnQpOwogCiAgICAgICAgIHRoaXMuX2NhbGxT
dGFja0NvbnRlbnRUcmVlT3V0bGluZSA9IHRoaXMuY3JlYXRlQ29udGVudFRyZWVPdXRsaW5lKHRy
dWUsIHRydWUpOwotICAgICAgICB0aGlzLl9jYWxsU3RhY2tDb250ZW50VHJlZU91dGxpbmUub25z
ZWxlY3QgPSB0aGlzLl90cmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhpcyk7CisgICAgICAgIHRo
aXMuX2NhbGxTdGFja0NvbnRlbnRUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMuX3RyZWVTZWxl
Y3Rpb25EaWRDaGFuZ2UsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX2NhbGxTdGFja1JvdyA9IG5l
dyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJO
byBDYWxsIEZyYW1lcyIpKTsKICAgICAgICAgdGhpcy5fY2FsbFN0YWNrUm93LnNob3dFbXB0eU1l
c3NhZ2UoKTsKQEAgLTU5OCw3ICs1OTgsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFy
UGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGVsZXRl
IEJyZWFrcG9pbnRzIiksIHJlbW92ZUFsbFJlc291cmNlQnJlYWtwb2ludHMpOwogICAgIH0KIAot
ICAgIF90cmVlRWxlbWVudFNlbGVjdGVkKHRyZWVFbGVtZW50LCBzZWxlY3RlZEJ5VXNlcikKKyAg
ICBfdHJlZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKICAgICB7CiAgICAgICAgIGZ1bmN0aW9u
IGRlc2VsZWN0Q2FsbFN0YWNrQ29udGVudFRyZWVFbGVtZW50cygpCiAgICAgICAgIHsKQEAgLTYy
NCw2ICs2MjQsMTAgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0gY2xhc3Mg
RGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgICAgICAgICBz
ZWxlY3RlZFRyZWVFbGVtZW50LmRlc2VsZWN0KCk7CiAgICAgICAgIH0KIAorICAgICAgICBsZXQg
dHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudDsKKyAgICAgICAgaWYgKCF0
cmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAodHJlZUVsZW1l
bnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCB8fCB0cmVlRWxl
bWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHRUcmVlRWxlbWVudCkgewogICAgICAg
ICAgICAgZGVzZWxlY3RDYWxsU3RhY2tDb250ZW50VHJlZUVsZW1lbnRzLmNhbGwodGhpcyk7CiAg
ICAgICAgICAgICBkZXNlbGVjdFBhdXNlUmVhc29uQ29udGVudFRyZWVFbGVtZW50cy5jYWxsKHRo
aXMpOwpAQCAtNzMxLDcgKzczNSw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5l
bCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAg
ICAgICBpZiAocGF1c2VEYXRhICYmIHBhdXNlRGF0YS5icmVha3BvaW50SWQpIHsKICAgICAgICAg
ICAgICAgICB2YXIgYnJlYWtwb2ludCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYnJl
YWtwb2ludEZvcklkZW50aWZpZXIocGF1c2VEYXRhLmJyZWFrcG9pbnRJZCk7CiAgICAgICAgICAg
ICAgICAgdmFyIGJyZWFrcG9pbnRUcmVlT3V0bGluZSA9IHRoaXMuY3JlYXRlQ29udGVudFRyZWVP
dXRsaW5lKHRydWUsIHRydWUpOwotICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRUcmVlT3V0bGlu
ZS5vbnNlbGVjdCA9IHRoaXMuX3RyZWVFbGVtZW50U2VsZWN0ZWQuYmluZCh0aGlzKTsKKyAgICAg
ICAgICAgICAgICBicmVha3BvaW50VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl90cmVlU2Vs
ZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKKwogICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50
VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudChicmVh
a3BvaW50LCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwuUGF1c2VkQnJlYWtwb2lu
dEljb25TdHlsZUNsYXNzTmFtZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUcmlnZ2VyZWQgQnJl
YWtwb2ludCIpKTsKICAgICAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludERldGFpbHNTZWN0aW9u
ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKICAgICAgICAgICAgICAgICBi
cmVha3BvaW50VHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQoYnJlYWtwb2ludFRyZWVFbGVtZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05h
dmlnYXRpb25TaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCmluZGV4IDhhZTgzYjliMmZmMWQ0
ZjczYzFhODI0OWYyNmZiNTUxYzQwODIzY2EuLjk1OTFhOTYzMzdkY2JhMDhmMWViYjJmM2I2OGI0
OGRmOWUzZmFiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpAQCAt
MTY2LDEwICsxNjYsOSBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNs
YXNzIE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbgogICAgICAgICBjb250ZW50
VHJlZU91dGxpbmUuYWxsb3dzUmVwZWF0U2VsZWN0aW9uID0gdHJ1ZTsKIAogICAgICAgICBpZiAo
IXN1cHByZXNzRmlsdGVyaW5nKSB7Ci0gICAgICAgICAgICBjb250ZW50VHJlZU91dGxpbmUub25h
ZGQgPSB0aGlzLl90cmVlRWxlbWVudEFkZGVkT3JDaGFuZ2VkLmJpbmQodGhpcyk7Ci0gICAgICAg
ICAgICBjb250ZW50VHJlZU91dGxpbmUub25jaGFuZ2UgPSB0aGlzLl90cmVlRWxlbWVudEFkZGVk
T3JDaGFuZ2VkLmJpbmQodGhpcyk7Ci0gICAgICAgICAgICBjb250ZW50VHJlZU91dGxpbmUub25l
eHBhbmQgPSB0aGlzLl90cmVlRWxlbWVudEV4cGFuZGVkT3JDb2xsYXBzZWQuYmluZCh0aGlzKTsK
LSAgICAgICAgICAgIGNvbnRlbnRUcmVlT3V0bGluZS5vbmNvbGxhcHNlID0gdGhpcy5fdHJlZUVs
ZW1lbnRFeHBhbmRlZE9yQ29sbGFwc2VkLmJpbmQodGhpcyk7CisgICAgICAgICAgICBjb250ZW50
VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZl
bnQuRWxlbWVudEFkZGVkLCB0aGlzLl90cmVlRWxlbWVudEFkZGVkT3JDaGFuZ2VkLCB0aGlzKTsK
KyAgICAgICAgICAgIGNvbnRlbnRUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50RGlkQ2hhbmdlLCB0aGlzLl90cmVlRWxlbWVu
dEFkZGVkT3JDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIGNvbnRlbnRUcmVlT3V0bGluZS5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50RGlz
Y2xvc3VyZURpZENoYW5nZWQsIHRoaXMuX3RyZWVFbGVtZW50RGlzY2xvc3VyZURpZENoYW5nZSwg
dGhpcyk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoZG9udEhpZGVCeURlZmF1bHQpCkBAIC01
NTYsMTQgKzU1NSwxNSBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNs
YXNzIE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbgogICAgICAgICB9CiAgICAg
fQogCi0gICAgX3RyZWVFbGVtZW50QWRkZWRPckNoYW5nZWQodHJlZUVsZW1lbnQpCisgICAgX3Ry
ZWVFbGVtZW50QWRkZWRPckNoYW5nZWQoZXZlbnQpCiAgICAgewogICAgICAgICAvLyBEb24ndCBw
b3B1bGF0ZSBpZiB3ZSBkb24ndCBoYXZlIGFueSBhY3RpdmUgZmlsdGVycy4KICAgICAgICAgLy8g
V2Ugb25seSBuZWVkIHRvIHBvcHVsYXRlIHdoZW4gYSBmaWx0ZXIgbmVlZHMgdG8gcmV2ZWFsLgog
ICAgICAgICB2YXIgZG9udFBvcHVsYXRlID0gIXRoaXMuX2ZpbHRlckJhci5oYXNBY3RpdmVGaWx0
ZXJzKCkgJiYgIXRoaXMuc2hvdWxkRmlsdGVyUG9wdWxhdGUoKTsKIAogICAgICAgICAvLyBBcHBs
eSB0aGUgZmlsdGVycyB0byB0aGUgdHJlZSBlbGVtZW50IGFuZCBpdHMgZGVzY2VuZGFudHMuCi0g
ICAgICAgIHZhciBjdXJyZW50VHJlZUVsZW1lbnQgPSB0cmVlRWxlbWVudDsKKyAgICAgICAgbGV0
IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5lbGVtZW50OworICAgICAgICBsZXQgY3VycmVudFRy
ZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQ7CiAgICAgICAgIHdoaWxlIChjdXJyZW50VHJlZUVsZW1l
bnQgJiYgIWN1cnJlbnRUcmVlRWxlbWVudC5yb290KSB7CiAgICAgICAgICAgICBjb25zdCBjdXJy
ZW50VHJlZUVsZW1lbnRXYXNIaWRkZW4gPSBjdXJyZW50VHJlZUVsZW1lbnQuaGlkZGVuOwogICAg
ICAgICAgICAgdGhpcy5hcHBseUZpbHRlcnNUb1RyZWVFbGVtZW50KGN1cnJlbnRUcmVlRWxlbWVu
dCk7CkBAIC01ODIsNyArNTgyLDcgQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRpb25TaWRlYmFyUGFu
ZWwgPSBjbGFzcyBOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW4KICAgICAgICAg
dGhpcy50cmVlRWxlbWVudEFkZGVkT3JDaGFuZ2VkKHRyZWVFbGVtZW50KTsKICAgICB9CiAKLSAg
ICBfdHJlZUVsZW1lbnRFeHBhbmRlZE9yQ29sbGFwc2VkKHRyZWVFbGVtZW50KQorICAgIF90cmVl
RWxlbWVudERpc2Nsb3N1cmVEaWRDaGFuZ2UoZXZlbnQpCiAgICAgewogICAgICAgICB0aGlzLl91
cGRhdGVDb250ZW50T3ZlcmZsb3dTaGFkb3dWaXNpYmlsaXR5KCk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya0dyaWRD
b250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L05ldHdvcmtHcmlkQ29udGVudFZpZXcuanMKaW5kZXggYTM0ZWQzNTc0Mzc0MGFkMWRlMTZlMDlj
MjU4NWM3ODg5YjJkZjM4YS4uMDhmZmI4ZjIzMjNjYmU2MDNkNjI4MzNjYmQ1OTg2MjBlYzk0NTBl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TmV0d29ya0dyaWRDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9OZXR3b3JrR3JpZENvbnRlbnRWaWV3LmpzCkBAIC0zNSw3ICszNSw3
IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrR3JpZENvbnRlbnRWaWV3ID0gY2xhc3MgTmV0d29ya0dy
aWRDb250ZW50VmlldyBleHRlbmRzIFdlYkluCiAgICAgICAgIHRoaXMuX25ldHdvcmtTaWRlYmFy
UGFuZWwgPSBleHRyYUFyZ3VtZW50cy5uZXR3b3JrU2lkZWJhclBhbmVsOwogCiAgICAgICAgIHRo
aXMuX2NvbnRlbnRUcmVlT3V0bGluZSA9IHRoaXMuX25ldHdvcmtTaWRlYmFyUGFuZWwuY29udGVu
dFRyZWVPdXRsaW5lOwotICAgICAgICB0aGlzLl9jb250ZW50VHJlZU91dGxpbmUub25zZWxlY3Qg
PSB0aGlzLl90cmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhpcyk7CisgICAgICAgIHRoaXMuX2Nv
bnRlbnRUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0bGlu
ZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMuX3RyZWVTZWxlY3Rpb25EaWRDaGFuZ2Us
IHRoaXMpOwogCiAgICAgICAgIHZhciBjb2x1bW5zID0ge2RvbWFpbjoge30sIHR5cGU6IHt9LCBt
ZXRob2Q6IHt9LCBzY2hlbWU6IHt9LCBzdGF0dXNDb2RlOiB7fSwgY2FjaGVkOiB7fSwgc2l6ZTog
e30sIHRyYW5zZmVyU2l6ZToge30sIHJlcXVlc3RTZW50OiB7fSwgbGF0ZW5jeToge30sIGR1cmF0
aW9uOiB7fX07CiAKQEAgLTIwMiwxMyArMjAyLDE0IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrR3Jp
ZENvbnRlbnRWaWV3ID0gY2xhc3MgTmV0d29ya0dyaWRDb250ZW50VmlldyBleHRlbmRzIFdlYklu
CiAgICAgICAgIGRhdGFHcmlkTm9kZS5yZXZlYWxBbmRTZWxlY3QoKTsKICAgICB9CiAKLSAgICBf
dHJlZUVsZW1lbnRTZWxlY3RlZCh0cmVlRWxlbWVudCwgc2VsZWN0ZWRCeVVzZXIpCisgICAgX3Ry
ZWVTZWxlY3Rpb25EaWRDaGFuZ2UoZXZlbnQpCiAgICAgewogICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9u
UGF0aENvbXBvbmVudHNEaWRDaGFuZ2UpOwogCiAgICAgICAgIGlmICghdGhpcy5fbmV0d29ya1Np
ZGViYXJQYW5lbC5jYW5TaG93RGlmZmVyZW50Q29udGVudFZpZXcoKSkKICAgICAgICAgICAgIHJl
dHVybjsKIAorICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLnNlbGVjdGVkRWxl
bWVudDsKICAgICAgICAgaWYgKHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJl
c291cmNlVHJlZUVsZW1lbnQpIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93UmVwcmVz
ZW50ZWRPYmplY3QodHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpOwogICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcwppbmRleCA1NmU3MzEyMjZj
NmQ1NWE2MDg1MTYxOGYzNjFjM2M1NmM4OWIxMDhlLi4wNzM1MTU3NTM4OGQxYjlkODQxZGM2Nzk3
MTUxZmQ1ZDYwNjU5Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcwpAQCAt
NjIsNyArNjIsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwgPSBjbGFzcyBS
ZXNvdXJjZVNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogCiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5ub3RpZmljYXRpb25zLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLk5vdGlmaWNh
dGlvbi5FeHRyYURvbWFpbnNBY3RpdmF0ZWQsIHRoaXMuX2V4dHJhRG9tYWluc0FjdGl2YXRlZCwg
dGhpcyk7CiAKLSAgICAgICAgdGhpcy5jb250ZW50VHJlZU91dGxpbmUub25zZWxlY3QgPSB0aGlz
Ll90cmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhpcyk7CisgICAgICAgIHRoaXMuY29udGVudFRy
ZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50
LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5fdHJlZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7
CiAgICAgICAgIHRoaXMuY29udGVudFRyZWVPdXRsaW5lLmluY2x1ZGVTb3VyY2VNYXBSZXNvdXJj
ZUNoaWxkcmVuID0gdHJ1ZTsKIAogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2FibGVU
eXBlID09PSBXZWJJbnNwZWN0b3IuRGVidWdnYWJsZVR5cGUuSmF2YVNjcmlwdCkKQEAgLTMzMyw5
ICszMzMsMTAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsID0gY2xhc3MgUmVz
b3VyY2VTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgfQogICAgIH0KIAot
ICAgIF90cmVlRWxlbWVudFNlbGVjdGVkKHRyZWVFbGVtZW50LCBzZWxlY3RlZEJ5VXNlcikKKyAg
ICBfdHJlZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKICAgICB7Ci0gICAgICAgIGlmICh0cmVl
RWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Gb2xkZXJUcmVlRWxlbWVudCkKKyAgICAg
ICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5zZWxlY3RlZEVsZW1lbnQ7CisgICAgICAg
IGlmICghdHJlZUVsZW1lbnQgfHwgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
Rm9sZGVyVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKHRy
ZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Njb3Bl
Q2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKaW5kZXggYzZl
ZDkwMmY0Njk3ODU1OGQwODZmMmVkODdkMzZlNzZmZjc3ODdkMi4uNzQ4M2IzMjJiZWNlMmVmNDhi
ZTI0NThmMjY2ZmFhYzRkYWNlYmVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NvcGVDaGFpbkRl
dGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTIyMSw5ICsyMjEsOCBAQCBXZWJJbnNwZWN0b3IuU2Nv
cGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBTY29wZUNoYWluRGV0YWlsc1NpZGVi
YXJQYW5lbAogICAgICAgICAgICAgICAgIG9iamVjdFRyZWUuYXBwZW5kRXh0cmFQcm9wZXJ0eURl
c2NyaXB0b3IoZXh0cmFQcm9wZXJ0eURlc2NyaXB0b3IpOwogCiAgICAgICAgICAgICBsZXQgdHJl
ZU91dGxpbmUgPSBvYmplY3RUcmVlLnRyZWVPdXRsaW5lOwotICAgICAgICAgICAgdHJlZU91dGxp
bmUub25hZGQgPSB0aGlzLl9vYmplY3RUcmVlQWRkSGFuZGxlci5iaW5kKHRoaXMsIGRldGFpbHNT
ZWN0aW9uSWRlbnRpZmllcik7Ci0gICAgICAgICAgICB0cmVlT3V0bGluZS5vbmV4cGFuZCA9IHRo
aXMuX29iamVjdFRyZWVFeHBhbmRIYW5kbGVyLmJpbmQodGhpcywgZGV0YWlsc1NlY3Rpb25JZGVu
dGlmaWVyKTsKLSAgICAgICAgICAgIHRyZWVPdXRsaW5lLm9uY29sbGFwc2UgPSB0aGlzLl9vYmpl
Y3RUcmVlQ29sbGFwc2VIYW5kbGVyLmJpbmQodGhpcywgZGV0YWlsc1NlY3Rpb25JZGVudGlmaWVy
KTsKKyAgICAgICAgICAgIHRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlRyZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRBZGRlZCwgdGhpcy5fdHJlZUVsZW1lbnRBZGRlZC5i
aW5kKHRoaXMsIGRldGFpbHNTZWN0aW9uSWRlbnRpZmllciksIHRoaXMpOworICAgICAgICAgICAg
dHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZl
bnQuRWxlbWVudERpc2Nsb3N1cmVEaWRDaGFuZ2VkLCB0aGlzLl90cmVlRWxlbWVudERpc2Nsb3N1
cmVEaWRDaGFuZ2UuYmluZCh0aGlzLCBkZXRhaWxzU2VjdGlvbklkZW50aWZpZXIpLCB0aGlzKTsK
IAogICAgICAgICAgICAgbGV0IGRldGFpbHNTZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5EZXRh
aWxzU2VjdGlvbihkZXRhaWxzU2VjdGlvbklkZW50aWZpZXIsIHRpdGxlLCBudWxsLCBudWxsLCBj
b2xsYXBzZWRCeURlZmF1bHQpOwogICAgICAgICAgICAgZGV0YWlsc1NlY3Rpb24uZ3JvdXBzWzBd
LnJvd3MgPSBbbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblByb3BlcnRpZXNSb3cob2Jq
ZWN0VHJlZSldOwpAQCAtMjU0LDkgKzI1Myw4IEBAIFdlYkluc3BlY3Rvci5TY29wZUNoYWluRGV0
YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIFNjb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsCiAK
ICAgICAgICAgbGV0IHRyZWVPdXRsaW5lID0gb2JqZWN0VHJlZS50cmVlT3V0bGluZTsKICAgICAg
ICAgY29uc3Qgd2F0Y2hFeHByZXNzaW9uU2VjdGlvbklkZW50aWZpZXIgPSAid2F0Y2gtZXhwcmVz
c2lvbnMiOwotICAgICAgICB0cmVlT3V0bGluZS5vbmFkZCA9IHRoaXMuX29iamVjdFRyZWVBZGRI
YW5kbGVyLmJpbmQodGhpcywgd2F0Y2hFeHByZXNzaW9uU2VjdGlvbklkZW50aWZpZXIpOwotICAg
ICAgICB0cmVlT3V0bGluZS5vbmV4cGFuZCA9IHRoaXMuX29iamVjdFRyZWVFeHBhbmRIYW5kbGVy
LmJpbmQodGhpcywgd2F0Y2hFeHByZXNzaW9uU2VjdGlvbklkZW50aWZpZXIpOwotICAgICAgICB0
cmVlT3V0bGluZS5vbmNvbGxhcHNlID0gdGhpcy5fb2JqZWN0VHJlZUNvbGxhcHNlSGFuZGxlci5i
aW5kKHRoaXMsIHdhdGNoRXhwcmVzc2lvblNlY3Rpb25JZGVudGlmaWVyKTsKKyAgICAgICAgdHJl
ZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQu
RWxlbWVudEFkZGVkLCB0aGlzLl90cmVlRWxlbWVudEFkZGVkLmJpbmQodGhpcywgd2F0Y2hFeHBy
ZXNzaW9uU2VjdGlvbklkZW50aWZpZXIpLCB0aGlzKTsKKyAgICAgICAgdHJlZU91dGxpbmUuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuRWxlbWVudERpc2Ns
b3N1cmVEaWRDaGFuZ2VkLCB0aGlzLl90cmVlRWxlbWVudERpc2Nsb3N1cmVEaWRDaGFuZ2UuYmlu
ZCh0aGlzLCB3YXRjaEV4cHJlc3Npb25TZWN0aW9uSWRlbnRpZmllciksIHRoaXMpOwogICAgICAg
ICB0cmVlT3V0bGluZS5vYmplY3RUcmVlRWxlbWVudEFkZENvbnRleHRNZW51SXRlbXMgPSB0aGlz
Ll9vYmplY3RUcmVlRWxlbWVudEFkZENvbnRleHRNZW51SXRlbXMuYmluZCh0aGlzKTsKIAogICAg
ICAgICBsZXQgcHJvbWlzZXMgPSBbXTsKQEAgLTQyMiw4ICs0MjAsOSBAQCBXZWJJbnNwZWN0b3Iu
U2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBTY29wZUNoYWluRGV0YWlsc1Np
ZGViYXJQYW5lbAogICAgICAgICByZXR1cm4gaWRlbnRpZmllciArICItIiArIHByb3BlcnR5UGF0
aC5mdWxsUGF0aDsKICAgICB9CiAKLSAgICBfb2JqZWN0VHJlZUFkZEhhbmRsZXIoaWRlbnRpZmll
ciwgdHJlZUVsZW1lbnQpCisgICAgX3RyZWVFbGVtZW50QWRkZWQoaWRlbnRpZmllciwgZXZlbnQp
CiAgICAgeworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLmVsZW1lbnQ7CiAg
ICAgICAgIGxldCBwcm9wZXJ0eVBhdGhJZGVudGlmaWVyID0gdGhpcy5fcHJvcGVydHlQYXRoSWRl
bnRpZmllckZvclRyZWVFbGVtZW50KGlkZW50aWZpZXIsIHRyZWVFbGVtZW50KTsKICAgICAgICAg
aWYgKCFwcm9wZXJ0eVBhdGhJZGVudGlmaWVyKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDMy
LDIyICs0MzEsMTcgQEAgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVs
ID0gY2xhc3MgU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwKICAgICAgICAgICAgIHRyZWVF
bGVtZW50LmV4cGFuZCgpOwogICAgIH0KIAotICAgIF9vYmplY3RUcmVlRXhwYW5kSGFuZGxlcihp
ZGVudGlmaWVyLCB0cmVlRWxlbWVudCkKKyAgICBfdHJlZUVsZW1lbnREaXNjbG9zdXJlRGlkQ2hh
bmdlKGlkZW50aWZpZXIsIGV2ZW50KQogICAgIHsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0g
ZXZlbnQuZGF0YS5lbGVtZW50OwogICAgICAgICBsZXQgcHJvcGVydHlQYXRoSWRlbnRpZmllciA9
IHRoaXMuX3Byb3BlcnR5UGF0aElkZW50aWZpZXJGb3JUcmVlRWxlbWVudChpZGVudGlmaWVyLCB0
cmVlRWxlbWVudCk7CiAgICAgICAgIGlmICghcHJvcGVydHlQYXRoSWRlbnRpZmllcikKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNT
aWRlYmFyUGFuZWwuX2F1dG9FeHBhbmRQcm9wZXJ0aWVzLmFkZChwcm9wZXJ0eVBhdGhJZGVudGlm
aWVyKTsKLSAgICB9Ci0KLSAgICBfb2JqZWN0VHJlZUNvbGxhcHNlSGFuZGxlcihpZGVudGlmaWVy
LCB0cmVlRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIGxldCBwcm9wZXJ0eVBhdGhJZGVudGlmaWVy
ID0gdGhpcy5fcHJvcGVydHlQYXRoSWRlbnRpZmllckZvclRyZWVFbGVtZW50KGlkZW50aWZpZXIs
IHRyZWVFbGVtZW50KTsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eVBhdGhJZGVudGlmaWVyKQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5TY29wZUNoYWluRGV0YWls
c1NpZGViYXJQYW5lbC5fYXV0b0V4cGFuZFByb3BlcnRpZXMuZGVsZXRlKHByb3BlcnR5UGF0aElk
ZW50aWZpZXIpOworICAgICAgICBpZiAodHJlZUVsZW1lbnQuZXhwYW5kZWQpCisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuU2NvcGVDaGFpbkRldGFpbHNTaWRlYmFyUGFuZWwuX2F1dG9FeHBhbmRQ
cm9wZXJ0aWVzLmFkZChwcm9wZXJ0eVBhdGhJZGVudGlmaWVyKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLlNjb3BlQ2hhaW5EZXRhaWxzU2lkZWJhclBhbmVsLl9hdXRv
RXhwYW5kUHJvcGVydGllcy5kZWxldGUocHJvcGVydHlQYXRoSWRlbnRpZmllcik7CiAgICAgfQog
CiAgICAgX3VwZGF0ZVdhdGNoRXhwcmVzc2lvbnNOYXZpZ2F0aW9uQmFyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaFNpZGViYXJQ
YW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJj
aFNpZGViYXJQYW5lbC5qcwppbmRleCA0MGZhZWJjMDU5MmQwMzI4M2I4YWVhNzAwNDQ0ODhlMDE4
Njc2NTNiLi44MWM4NTg4NjFjZmFkMzAwNDdiZmEzZjA5ZjAzNTgzYTFkYmQ4Yjg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hTaWRl
YmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU2VhcmNoU2lkZWJhclBhbmVsLmpzCkBAIC01Miw3ICs1Miw3IEBAIFdlYkluc3BlY3Rvci5T
ZWFyY2hTaWRlYmFyUGFuZWwgPSBjbGFzcyBTZWFyY2hTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuCiAKICAgICAgICAgV2ViSW5zcGVjdG9yLkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkZyYW1lLkV2ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcy5fbWFp
blJlc291cmNlRGlkQ2hhbmdlLCB0aGlzKTsKIAotICAgICAgICB0aGlzLmNvbnRlbnRUcmVlT3V0
bGluZS5vbnNlbGVjdCA9IHRoaXMuX3RyZWVFbGVtZW50U2VsZWN0ZWQuYmluZCh0aGlzKTsKKyAg
ICAgICAgdGhpcy5jb250ZW50VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl90cmVlU2VsZWN0
aW9uRGlkQ2hhbmdlLCB0aGlzKTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTM0Niw5ICsz
NDYsMTAgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaFNpZGViYXJQYW5lbCA9IGNsYXNzIFNlYXJjaFNp
ZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlY3Rvci4KICAgICAgICAgICAgIHRoaXMuZm9jdXNT
ZWFyY2hGaWVsZCgpOwogICAgIH0KIAotICAgIF90cmVlRWxlbWVudFNlbGVjdGVkKHRyZWVFbGVt
ZW50LCBzZWxlY3RlZEJ5VXNlcikKKyAgICBfdHJlZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkK
ICAgICB7Ci0gICAgICAgIGlmICh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5G
b2xkZXJUcmVlRWxlbWVudCkKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5z
ZWxlY3RlZEVsZW1lbnQ7CisgICAgICAgIGlmICghdHJlZUVsZW1lbnQgfHwgdHJlZUVsZW1lbnQg
aW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRm9sZGVyVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgaWYgKHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9y
LlJlc291cmNlVHJlZUVsZW1lbnQgfHwgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0
b3IuU2NyaXB0VHJlZUVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1N0b3JhZ2VTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TdG9yYWdlU2lkZWJhclBhbmVsLmpzCmlu
ZGV4IDYwMzY5OGRiZWE5OWIyOTA4N2JjOTk3ZDhkMjljYjQ0NTQ2NTFhODQuLmY3OWJhNDIwMTlh
YzhkNjk4MTU0YTRiODgyNjY4YTg1MThhN2Y5MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1N0b3JhZ2VTaWRlYmFyUGFuZWwuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3RvcmFnZVNpZGViYXJQ
YW5lbC5qcwpAQCAtODYsNyArODYsNyBAQCBXZWJJbnNwZWN0b3IuU3RvcmFnZVNpZGViYXJQYW5l
bCA9IGNsYXNzIFN0b3JhZ2VTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAg
ICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25DYWNoZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuRXZlbnQuRnJhbWVNYW5pZmVzdEFk
ZGVkLCB0aGlzLl9mcmFtZU1hbmlmZXN0QWRkZWQsIHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0
b3IuYXBwbGljYXRpb25DYWNoZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
QXBwbGljYXRpb25DYWNoZU1hbmFnZXIuRXZlbnQuRnJhbWVNYW5pZmVzdFJlbW92ZWQsIHRoaXMu
X2ZyYW1lTWFuaWZlc3RSZW1vdmVkLCB0aGlzKTsKIAotICAgICAgICB0aGlzLmNvbnRlbnRUcmVl
T3V0bGluZS5vbnNlbGVjdCA9IHRoaXMuX3RyZWVFbGVtZW50U2VsZWN0ZWQuYmluZCh0aGlzKTsK
KyAgICAgICAgdGhpcy5jb250ZW50VHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl90cmVlU2Vs
ZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKIAogICAgICAgICBmb3IgKHZhciBkb21TdG9yYWdlT2Jq
ZWN0IG9mIFdlYkluc3BlY3Rvci5zdG9yYWdlTWFuYWdlci5kb21TdG9yYWdlT2JqZWN0cykKICAg
ICAgICAgICAgIHRoaXMuX2FkZERPTVN0b3JhZ2VPYmplY3QoZG9tU3RvcmFnZU9iamVjdCk7CkBA
IC0xNjEsOCArMTYxLDEyIEBAIFdlYkluc3BlY3Rvci5TdG9yYWdlU2lkZWJhclBhbmVsID0gY2xh
c3MgU3RvcmFnZVNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlY3RvCiAKICAgICAvLyBQcml2
YXRlCiAKLSAgICBfdHJlZUVsZW1lbnRTZWxlY3RlZCh0cmVlRWxlbWVudCwgc2VsZWN0ZWRCeVVz
ZXIpCisgICAgX3RyZWVTZWxlY3Rpb25EaWRDaGFuZ2UoZXZlbnQpCiAgICAgeworICAgICAgICBs
ZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudDsKKyAgICAgICAgaWYg
KCF0cmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAodHJlZUVs
ZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRm9sZGVyVHJlZUVsZW1lbnQgfHwgdHJlZUVs
ZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRGF0YWJhc2VIb3N0VHJlZUVsZW1lbnQgfHwK
ICAgICAgICAgICAgIHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkluZGV4ZWRE
YXRhYmFzZUhvc3RUcmVlRWxlbWVudCB8fCB0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5JbmRleGVkRGF0YWJhc2VUcmVlRWxlbWVudAogICAgICAgICAgICAgfHwgdHJlZUVsZW1l
bnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1hbmlmZXN0VHJlZUVs
ZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9UaW1lbGluZURhdGFHcmlkLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVGltZWxpbmVEYXRhR3JpZC5qcwppbmRleCAwOGQ4NGU5YTk0MzVmMTIyNjE3
OGZkZGY5MGI3NzljN2JlNTYwYmM5Li5mZDQ5ZTFiZTE1MzZlNjU0NWM4NDE3MzIxNmM1M2Y5OTIy
OWRmMWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9UaW1lbGluZURhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lRGF0YUdyaWQuanMKQEAgLTQ1Myw3ICs0NTMsNyBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVEYXRhR3JpZCA9IGNsYXNzIFRpbWVsaW5lRGF0YUdyaWQgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuRGF0YQogICAgICAgICAgICAgdmFyIGNvbnRlbnRFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKICAgICAgICAgICAgIGNvbnRlbnRFbGVtZW50
LmNsYXNzTGlzdC5hZGQoInRpbWVsaW5lLWRhdGEtZ3JpZC10cmVlLW91dGxpbmUiKTsKICAgICAg
ICAgICAgIHRoaXMuX3BvcG92ZXJDYWxsU3RhY2tUcmVlT3V0bGluZSA9IG5ldyBXZWJJbnNwZWN0
b3IuVHJlZU91dGxpbmUoY29udGVudEVsZW1lbnQpOwotICAgICAgICAgICAgdGhpcy5fcG9wb3Zl
ckNhbGxTdGFja1RyZWVPdXRsaW5lLm9uc2VsZWN0ID0gdGhpcy5fcG9wb3ZlckNhbGxTdGFja1Ry
ZWVFbGVtZW50U2VsZWN0ZWQuYmluZCh0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJD
YWxsU3RhY2tUcmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0
bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMuX3BvcG92ZXJDYWxsU3RhY2tUcmVl
U2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICB0
aGlzLl9wb3BvdmVyQ2FsbFN0YWNrVHJlZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKIApAQCAt
NDY5LDggKzQ2OSwxMiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVEYXRhR3JpZCA9IGNsYXNzIFRp
bWVsaW5lRGF0YUdyaWQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuRGF0YQogICAgICAgICByZXR1cm4g
Y29udGVudDsKICAgICB9CiAKLSAgICBfcG9wb3ZlckNhbGxTdGFja1RyZWVFbGVtZW50U2VsZWN0
ZWQodHJlZUVsZW1lbnQsIHNlbGVjdGVkQnlVc2VyKQorICAgIF9wb3BvdmVyQ2FsbFN0YWNrVHJl
ZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKICAgICB7CisgICAgICAgIGxldCB0cmVlRWxlbWVu
dCA9IGV2ZW50LmRhdGEuc2VsZWN0ZWRFbGVtZW50OworICAgICAgICBpZiAoIXRyZWVFbGVtZW50
KQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIHRoaXMuX3BvcG92ZXIuZGlzbWlzcygp
OwogCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5z
cGVjdG9yLkNhbGxGcmFtZVRyZWVFbGVtZW50LCAiVHJlZUVsZW1lbnRzIGluIFRpbWVsaW5lRGF0
YUdyaWQgcG9wb3ZlciBzaG91bGQgYWx3YXlzIGJlIENhbGxGcmFtZVRyZWVFbGVtZW50cyIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGlt
ZWxpbmVTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UaW1lbGluZVNpZGViYXJQYW5lbC5qcwppbmRleCA1MGM4NjQ5Yjg3YjQ2NDY5Yzk1
MGE1MjllN2MxMTYwMzE2MWI4ODlhLi5lMzQ0YTFlZjVjYjZiODYxNmY1Yzc4ZmVjNjkyZjAxNWVm
ZWU5ZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9UaW1lbGluZVNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVNpZGViYXJQYW5lbC5qcwpAQCAtNjIsMTMgKzYy
LDEzIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbCA9IGNsYXNzIFRpbWVsaW5l
U2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIHRoaXMuX3JlY29yZGluZ3NU
cmVlT3V0bGluZSA9IHRoaXMuY3JlYXRlQ29udGVudFRyZWVPdXRsaW5lKHRydWUsIHRydWUpOwog
ICAgICAgICB0aGlzLl9yZWNvcmRpbmdzVHJlZU91dGxpbmUuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLkhpZGVEaXNjbG9zdXJlQnV0dG9u
c1N0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgdGhpcy5fcmVjb3JkaW5nc1RyZWVPdXRsaW5lLmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5D
b250ZW50VHJlZU91dGxpbmVFbGVtZW50SGlkZGVuU3R5bGVDbGFzc05hbWUpOwotICAgICAgICB0
aGlzLl9yZWNvcmRpbmdzVHJlZU91dGxpbmUub25zZWxlY3QgPSB0aGlzLl9yZWNvcmRpbmdzVHJl
ZUVsZW1lbnRTZWxlY3RlZC5iaW5kKHRoaXMpOworICAgICAgICB0aGlzLl9yZWNvcmRpbmdzVHJl
ZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQu
U2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9yZWNvcmRpbmdzVHJlZVNlbGVjdGlvbkRpZENoYW5n
ZSwgdGhpcyk7CiAgICAgICAgIHRoaXMuX3RpbWVsaW5lc0NvbnRlbnRDb250YWluZXJFbGVtZW50
LmFwcGVuZENoaWxkKHRoaXMuX3JlY29yZGluZ3NUcmVlT3V0bGluZS5lbGVtZW50KTsKIAogICAg
ICAgICAvLyBNYWludGFpbiBhIHRyZWUgb3V0bGluZSB3aXRoIHRyZWUgZWxlbWVudHMgZm9yIGVh
Y2ggdGltZWxpbmUgb2YgdGhlIHNlbGVjdGVkIHJlY29yZGluZy4KICAgICAgICAgdGhpcy5fdGlt
ZWxpbmVzVHJlZU91dGxpbmUgPSB0aGlzLmNyZWF0ZUNvbnRlbnRUcmVlT3V0bGluZSh0cnVlLCB0
cnVlKTsKICAgICAgICAgdGhpcy5fdGltZWxpbmVzVHJlZU91dGxpbmUuZWxlbWVudC5jbGFzc0xp
c3QuYWRkKFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLkhpZGVEaXNjbG9zdXJl
QnV0dG9uc1N0eWxlQ2xhc3NOYW1lKTsKLSAgICAgICAgdGhpcy5fdGltZWxpbmVzVHJlZU91dGxp
bmUub25zZWxlY3QgPSB0aGlzLl90aW1lbGluZXNUcmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhp
cyk7CisgICAgICAgIHRoaXMuX3RpbWVsaW5lc1RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5f
dGltZWxpbmVzVHJlZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgIHRoaXMuX3Rp
bWVsaW5lc0NvbnRlbnRDb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3RpbWVsaW5l
c1RyZWVPdXRsaW5lLmVsZW1lbnQpOwogCiAgICAgICAgIHRoaXMuX3RpbWVsaW5lVHJlZUVsZW1l
bnRNYXAgPSBuZXcgTWFwOwpAQCAtNjE0LDggKzYxNCwxMiBAQCBXZWJJbnNwZWN0b3IuVGltZWxp
bmVTaWRlYmFyUGFuZWwgPSBjbGFzcyBUaW1lbGluZVNpZGViYXJQYW5lbCBleHRlbmRzIFdlYklu
c3BlYwogICAgICAgICAgICAgdGhpcy5zaG93VGltZWxpbmVPdmVydmlldygpOwogICAgIH0KIAot
ICAgIF9yZWNvcmRpbmdzVHJlZUVsZW1lbnRTZWxlY3RlZCh0cmVlRWxlbWVudCwgc2VsZWN0ZWRC
eVVzZXIpCisgICAgX3JlY29yZGluZ3NUcmVlU2VsZWN0aW9uRGlkQ2hhbmdlKGV2ZW50KQogICAg
IHsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5zZWxlY3RlZEVsZW1lbnQ7
CisgICAgICAgIGlmICghdHJlZUVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAg
ICAgY29uc29sZS5hc3NlcnQodHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmcpOwogCiAgICAgICAgIHRoaXMuX3JlY29y
ZGluZ1NlbGVjdGVkKHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKQEAgLTYyNywxNyAr
NjMxLDIyIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbCA9IGNsYXNzIFRpbWVs
aW5lU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICB0aGlzLl9yZWZy
ZXNoRnJhbWVTZWxlY3Rpb25DaGFydCgpOwogICAgIH0KIAotICAgIF90aW1lbGluZXNUcmVlRWxl
bWVudFNlbGVjdGVkKHRyZWVFbGVtZW50LCBzZWxlY3RlZEJ5VXNlcikKKyAgICBfdGltZWxpbmVz
VHJlZVNlbGVjdGlvbkRpZENoYW5nZShldmVudCkKICAgICB7CisgICAgICAgIGxldCB0cmVlRWxl
bWVudCA9IGV2ZW50LmRhdGEuc2VsZWN0ZWRFbGVtZW50OworICAgICAgICBpZiAoIXRyZWVFbGVt
ZW50KQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
X3RpbWVsaW5lVHJlZUVsZW1lbnRNYXAuZ2V0KHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0
KSA9PT0gdHJlZUVsZW1lbnQsIHRyZWVFbGVtZW50KTsKIAogICAgICAgICAvLyBJZiBub3Qgc2Vs
ZWN0ZWQgYnkgdXNlciwgdGhlbiB0aGlzIHNlbGVjdGlvbiBtZXJlbHkgc3luY2VkIHRoZSB0cmVl
IGVsZW1lbnQgd2l0aCB0aGUgY29udGVudCB2aWV3J3MgY29udGVudHMuCisgICAgICAgIGxldCBz
ZWxlY3RlZEJ5VXNlciA9IGV2ZW50LmRhdGEuc2VsZWN0ZWRCeVVzZXI7CiAgICAgICAgIGlmICgh
c2VsZWN0ZWRCeVVzZXIpIHsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2Rpc3Bs
YXllZENvbnRlbnRWaWV3LmN1cnJlbnRUaW1lbGluZVZpZXcucmVwcmVzZW50ZWRPYmplY3QgPT09
IHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCi0gICAgICAgIHZhciB0aW1lbGluZSA9IHRyZWVFbGVtZW50LnJlcHJlc2VudGVk
T2JqZWN0OworICAgICAgICBsZXQgdGltZWxpbmUgPSB0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9i
amVjdDsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGltZWxpbmUgaW5zdGFuY2VvZiBXZWJJbnNw
ZWN0b3IuVGltZWxpbmUsIHRpbWVsaW5lKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5f
ZGlzcGxheWVkUmVjb3JkaW5nLnRpbWVsaW5lcy5nZXQodGltZWxpbmUudHlwZSkgPT09IHRpbWVs
aW5lLCB0aW1lbGluZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVmlldy5qcwppbmRleCBmNTU2NjIyMGE4MmU4ZGQ5
Y2I4MjQxODIxMTdhZWUzMjg4ZDJlYmI5Li4yMDViZDQ3YjNhZjdiNjk2NGFhZTM3ODQ2YWI0NjZj
ZTliMzk0YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVGltZWxpbmVWaWV3LmpzCkBAIC0zOSw4ICszOSw3IEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVZpZXcgPSBjbGFzcyBUaW1lbGluZVZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fdGltZWxpbmVTaWRlYmFyUGFuZWwgPSBleHRy
YUFyZ3VtZW50cy50aW1lbGluZVNpZGViYXJQYW5lbDsKIAogICAgICAgICB0aGlzLl9jb250ZW50
VHJlZU91dGxpbmUgPSB0aGlzLl90aW1lbGluZVNpZGViYXJQYW5lbC5jcmVhdGVDb250ZW50VHJl
ZU91dGxpbmUoKTsKLSAgICAgICAgdGhpcy5fY29udGVudFRyZWVPdXRsaW5lLm9uc2VsZWN0ID0g
dGhpcy50cmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhpcyk7Ci0gICAgICAgIHRoaXMuX2NvbnRl
bnRUcmVlT3V0bGluZS5vbmRlc2VsZWN0ID0gdGhpcy50cmVlRWxlbWVudERlc2VsZWN0ZWQuYmlu
ZCh0aGlzKTsKKyAgICAgICAgdGhpcy5fY29udGVudFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhp
cy5fdHJlZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgIHRoaXMuX2NvbnRlbnRU
cmVlT3V0bGluZS5fX2NhblNob3dDb250ZW50Vmlld0ZvclRyZWVFbGVtZW50ID0gdGhpcy5jYW5T
aG93Q29udGVudFZpZXdGb3JUcmVlRWxlbWVudC5iaW5kKHRoaXMpOwogCiAgICAgICAgIHRoaXMu
ZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0aW1lbGluZS12aWV3Iik7CkBAIC0yMjksOCArMjI4LDYg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldyA9IGNsYXNzIFRpbWVsaW5lVmlldyBleHRlbmRz
IFdlYkluc3BlY3Rvci5Db250ZW50VmlldwogICAgIHsKICAgICAgICAgLy8gSW1wbGVtZW50ZWQg
Ynkgc3ViLWNsYXNzZXMgaWYgbmVlZGVkLgogCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rpb25QYXRoQ29t
cG9uZW50c0RpZENoYW5nZSk7Ci0KICAgICAgICAgaWYgKCF0aGlzLl90aW1lbGluZVNpZGViYXJQ
YW5lbC5jYW5TaG93RGlmZmVyZW50Q29udGVudFZpZXcoKSkKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMjM5LDQgKzIzNiwxNSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3ID0gY2xhc3Mg
VGltZWxpbmVWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3CiAKICAgICAgICAg
dGhpcy5zaG93Q29udGVudFZpZXdGb3JUcmVlRWxlbWVudCh0cmVlRWxlbWVudCk7CiAgICAgfQor
CisgICAgLy8gUHJpdmF0ZQorCisgICAgX3RyZWVTZWxlY3Rpb25EaWRDaGFuZ2UoZXZlbnQpCisg
ICAgeworICAgICAgICBpZiAoZXZlbnQuZGF0YS5kZXNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAg
ICAgIHRoaXMudHJlZUVsZW1lbnREZXNlbGVjdGVkKGV2ZW50LmRhdGEuZGVzZWxlY3RlZEVsZW1l
bnQpOworCisgICAgICAgIGlmIChldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAg
ICAgIHRoaXMudHJlZUVsZW1lbnRTZWxlY3RlZChldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudCwg
ZXZlbnQuZGF0YS5zZWxlY3RlZEJ5VXNlcik7CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKaW5k
ZXggNzljN2IxZTg1Y2U0YTdjOWRjYTBlMjc3MzhmODg0MmJkODI3NmZjOC4uYjE1OGUxNTY3NmY3
OTVkNjc2ZTNmZDFlNGY1ZGEwMjZmMjllYjVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKQEAgLTg5LDgg
Kzg5LDggQEAgV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbkxpc3RO
b2RlKQogICAgICAgICAgICAgY2hpbGQuX2F0dGFjaCgpOwogCi0gICAgICAgIGlmICh0aGlzLnRy
ZWVPdXRsaW5lLm9uYWRkKQotICAgICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5vbmFkZChjaGls
ZCk7CisgICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lKQorICAgICAgICAgICAgdGhpcy50cmVl
T3V0bGluZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5l
LkV2ZW50LkVsZW1lbnRBZGRlZCwge2VsZW1lbnQ6IGNoaWxkfSk7CiAKICAgICAgICAgaWYgKGlz
Rmlyc3RDaGlsZCAmJiB0aGlzLmV4cGFuZGVkKQogICAgICAgICAgICAgdGhpcy5leHBhbmQoKTsK
QEAgLTEzOSw4ICsxMzksOCBAQCBXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUgPSBjbGFzcyBUcmVl
T3V0bGluZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgaWYgKHRoaXMuX2No
aWxkcmVuTGlzdE5vZGUpCiAgICAgICAgICAgICBjaGlsZC5fYXR0YWNoKCk7CiAKLSAgICAgICAg
aWYgKHRoaXMudHJlZU91dGxpbmUub25hZGQpCi0gICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5l
Lm9uYWRkKGNoaWxkKTsKKyAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUpCisgICAgICAgICAg
ICB0aGlzLnRyZWVPdXRsaW5lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
VHJlZU91dGxpbmUuRXZlbnQuRWxlbWVudEFkZGVkLCB7ZWxlbWVudDogY2hpbGR9KTsKIAogICAg
ICAgICBpZiAoaXNGaXJzdENoaWxkICYmIHRoaXMuZXhwYW5kZWQpCiAgICAgICAgICAgICB0aGlz
LmV4cGFuZCgpOwpAQCAtMTUyLDEwICsxNTIsMTAgQEAgV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5l
ID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAg
IGlmIChjaGlsZEluZGV4IDwgMCB8fCBjaGlsZEluZGV4ID49IHRoaXMuY2hpbGRyZW4ubGVuZ3Ro
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhciBjaGlsZCA9IHRoaXMuY2hpbGRy
ZW5bY2hpbGRJbmRleF07CisgICAgICAgIGxldCBjaGlsZCA9IHRoaXMuY2hpbGRyZW5bY2hpbGRJ
bmRleF07CiAgICAgICAgIHRoaXMuY2hpbGRyZW4uc3BsaWNlKGNoaWxkSW5kZXgsIDEpOwogCi0g
ICAgICAgIHZhciBwYXJlbnQgPSBjaGlsZC5wYXJlbnQ7CisgICAgICAgIGxldCBwYXJlbnQgPSBj
aGlsZC5wYXJlbnQ7CiAgICAgICAgIGlmIChjaGlsZC5kZXNlbGVjdChzdXBwcmVzc09uRGVzZWxl
Y3QpKSB7CiAgICAgICAgICAgICBpZiAoY2hpbGQucHJldmlvdXNTaWJsaW5nICYmICFzdXBwcmVz
c1NlbGVjdFNpYmxpbmcpCiAgICAgICAgICAgICAgICAgY2hpbGQucHJldmlvdXNTaWJsaW5nLnNl
bGVjdCh0cnVlLCBmYWxzZSk7CkBAIC0xNzAsOSArMTcwLDEwIEBAIFdlYkluc3BlY3Rvci5UcmVl
T3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAog
ICAgICAgICBpZiAoY2hpbGQubmV4dFNpYmxpbmcpCiAgICAgICAgICAgICBjaGlsZC5uZXh0U2li
bGluZy5wcmV2aW91c1NpYmxpbmcgPSBjaGlsZC5wcmV2aW91c1NpYmxpbmc7CiAKLSAgICAgICAg
aWYgKGNoaWxkLnRyZWVPdXRsaW5lKSB7Ci0gICAgICAgICAgICBjaGlsZC50cmVlT3V0bGluZS5f
Zm9yZ2V0VHJlZUVsZW1lbnQoY2hpbGQpOwotICAgICAgICAgICAgY2hpbGQudHJlZU91dGxpbmUu
X2ZvcmdldENoaWxkcmVuUmVjdXJzaXZlKGNoaWxkKTsKKyAgICAgICAgbGV0IHRyZWVPdXRsaW5l
ID0gY2hpbGQudHJlZU91dGxpbmU7CisgICAgICAgIGlmICh0cmVlT3V0bGluZSkgeworICAgICAg
ICAgICAgdHJlZU91dGxpbmUuX2ZvcmdldFRyZWVFbGVtZW50KGNoaWxkKTsKKyAgICAgICAgICAg
IHRyZWVPdXRsaW5lLl9mb3JnZXRDaGlsZHJlblJlY3Vyc2l2ZShjaGlsZCk7CiAgICAgICAgIH0K
IAogICAgICAgICBjaGlsZC5fZGV0YWNoKCk7CkBAIC0xODEsOCArMTgyLDggQEAgV2ViSW5zcGVj
dG9yLlRyZWVPdXRsaW5lID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAgICAgICAgIGNoaWxkLm5leHRTaWJsaW5nID0gbnVsbDsKICAgICAgICAgY2hpbGQu
cHJldmlvdXNTaWJsaW5nID0gbnVsbDsKIAotICAgICAgICBpZiAodGhpcy50cmVlT3V0bGluZSAm
JiB0aGlzLnRyZWVPdXRsaW5lLm9ucmVtb3ZlKQotICAgICAgICAgICAgdGhpcy50cmVlT3V0bGlu
ZS5vbnJlbW92ZShjaGlsZCk7CisgICAgICAgIGlmICh0cmVlT3V0bGluZSkKKyAgICAgICAgICAg
IHRyZWVPdXRsaW5lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVHJlZU91
dGxpbmUuRXZlbnQuRWxlbWVudFJlbW92ZWQsIHtlbGVtZW50OiBjaGlsZH0pOwogICAgIH0KIAog
ICAgIHJlbW92ZUNoaWxkKGNoaWxkLCBzdXBwcmVzc09uRGVzZWxlY3QsIHN1cHByZXNzU2VsZWN0
U2libGluZykKQEAgLTIwNywxNSArMjA4LDEzIEBAIFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZSA9
IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgcmVt
b3ZlQ2hpbGRyZW4oc3VwcHJlc3NPbkRlc2VsZWN0KQogICAgIHsKLSAgICAgICAgdmFyIHRyZWVP
dXRsaW5lID0gdGhpcy50cmVlT3V0bGluZTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBjaGlsZCA9IHRo
aXMuY2hpbGRyZW5baV07CisgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4p
IHsKICAgICAgICAgICAgIGNoaWxkLmRlc2VsZWN0KHN1cHByZXNzT25EZXNlbGVjdCk7CiAKLSAg
ICAgICAgICAgIGlmIChjaGlsZC50cmVlT3V0bGluZSkgewotICAgICAgICAgICAgICAgIGNoaWxk
LnRyZWVPdXRsaW5lLl9mb3JnZXRUcmVlRWxlbWVudChjaGlsZCk7Ci0gICAgICAgICAgICAgICAg
Y2hpbGQudHJlZU91dGxpbmUuX2ZvcmdldENoaWxkcmVuUmVjdXJzaXZlKGNoaWxkKTsKKyAgICAg
ICAgICAgIGxldCB0cmVlT3V0bGluZSA9IGNoaWxkLnRyZWVPdXRsaW5lOworICAgICAgICAgICAg
aWYgKHRyZWVPdXRsaW5lKSB7CisgICAgICAgICAgICAgICAgdHJlZU91dGxpbmUuX2ZvcmdldFRy
ZWVFbGVtZW50KGNoaWxkKTsKKyAgICAgICAgICAgICAgICB0cmVlT3V0bGluZS5fZm9yZ2V0Q2hp
bGRyZW5SZWN1cnNpdmUoY2hpbGQpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjaGls
ZC5fZGV0YWNoKCk7CkBAIC0yMjQsOCArMjIzLDggQEAgV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5l
ID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAg
ICAgICBjaGlsZC5uZXh0U2libGluZyA9IG51bGw7CiAgICAgICAgICAgICBjaGlsZC5wcmV2aW91
c1NpYmxpbmcgPSBudWxsOwogCi0gICAgICAgICAgICBpZiAodHJlZU91dGxpbmUgJiYgdHJlZU91
dGxpbmUub25yZW1vdmUpCi0gICAgICAgICAgICAgICAgdHJlZU91dGxpbmUub25yZW1vdmUoY2hp
bGQpOworICAgICAgICAgICAgaWYgKHRyZWVPdXRsaW5lKQorICAgICAgICAgICAgICAgIHRyZWVP
dXRsaW5lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUu
RXZlbnQuRWxlbWVudFJlbW92ZWQsIHtlbGVtZW50OiBjaGlsZH0pOwogICAgICAgICB9CiAKICAg
ICAgICAgdGhpcy5jaGlsZHJlbiA9IFtdOwpAQCAtMjMzLDIzICsyMzIsMjEgQEAgV2ViSW5zcGVj
dG9yLlRyZWVPdXRsaW5lID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAKICAgICByZW1vdmVDaGlsZHJlblJlY3Vyc2l2ZShzdXBwcmVzc09uRGVzZWxlY3Qp
CiAgICAgewotICAgICAgICB2YXIgY2hpbGRyZW5Ub1JlbW92ZSA9IHRoaXMuY2hpbGRyZW47Ci0K
LSAgICAgICAgdmFyIHRyZWVPdXRsaW5lID0gdGhpcy50cmVlT3V0bGluZTsKLQotICAgICAgICB2
YXIgY2hpbGQgPSB0aGlzLmNoaWxkcmVuWzBdOworICAgICAgICBsZXQgY2hpbGRyZW5Ub1JlbW92
ZSA9IHRoaXMuY2hpbGRyZW47CisgICAgICAgIGxldCBjaGlsZCA9IHRoaXMuY2hpbGRyZW5bMF07
CiAgICAgICAgIHdoaWxlIChjaGlsZCkgewogICAgICAgICAgICAgaWYgKGNoaWxkLmNoaWxkcmVu
Lmxlbmd0aCkKICAgICAgICAgICAgICAgICBjaGlsZHJlblRvUmVtb3ZlID0gY2hpbGRyZW5Ub1Jl
bW92ZS5jb25jYXQoY2hpbGQuY2hpbGRyZW4pOwogICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC50
cmF2ZXJzZU5leHRUcmVlRWxlbWVudChmYWxzZSwgdGhpcywgdHJ1ZSk7CiAgICAgICAgIH0KIAot
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuVG9SZW1vdmUubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgZm9yIChsZXQgY2hpbGQgb2YgY2hpbGRyZW5Ub1JlbW92ZSkgewogICAgICAg
ICAgICAgY2hpbGQgPSBjaGlsZHJlblRvUmVtb3ZlW2ldOwogICAgICAgICAgICAgY2hpbGQuZGVz
ZWxlY3Qoc3VwcHJlc3NPbkRlc2VsZWN0KTsKIAotICAgICAgICAgICAgaWYgKGNoaWxkLnRyZWVP
dXRsaW5lKQotICAgICAgICAgICAgICAgIGNoaWxkLnRyZWVPdXRsaW5lLl9mb3JnZXRUcmVlRWxl
bWVudChjaGlsZCk7CisgICAgICAgICAgICBsZXQgdHJlZU91dGxpbmUgPSBjaGlsZC50cmVlT3V0
bGluZTsKKyAgICAgICAgICAgIGlmICh0cmVlT3V0bGluZSkKKyAgICAgICAgICAgICAgICB0cmVl
T3V0bGluZS5fZm9yZ2V0VHJlZUVsZW1lbnQoY2hpbGQpOwogCiAgICAgICAgICAgICBjaGlsZC5f
ZGV0YWNoKCk7CiAgICAgICAgICAgICBjaGlsZC5jaGlsZHJlbiA9IFtdOwpAQCAtMjU4LDggKzI1
NSw4IEBAIFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICAgICAgY2hpbGQubmV4dFNpYmxpbmcgPSBu
dWxsOwogICAgICAgICAgICAgY2hpbGQucHJldmlvdXNTaWJsaW5nID0gbnVsbDsKIAotICAgICAg
ICAgICAgaWYgKHRyZWVPdXRsaW5lICYmIHRyZWVPdXRsaW5lLm9ucmVtb3ZlKQotICAgICAgICAg
ICAgICAgIHRyZWVPdXRsaW5lLm9ucmVtb3ZlKGNoaWxkKTsKKyAgICAgICAgICAgIGlmICh0cmVl
T3V0bGluZSkKKyAgICAgICAgICAgICAgICB0cmVlT3V0bGluZS5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLlRyZWVPdXRsaW5lLkV2ZW50LkVsZW1lbnRSZW1vdmVkLCB7ZWxl
bWVudDogY2hpbGR9KTsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuY2hpbGRyZW4gPSBbXTsK
QEAgLTM3MSw4ICszNjgsNyBAQCBXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUgPSBjbGFzcyBUcmVl
T3V0bGluZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgaWYgKHRyZWVFbGVt
ZW50LnRyZWVPdXRsaW5lICE9PSB0aGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IGlmICh0aGlzLm9uY2hhbmdlKQotICAgICAgICAgICAgdGhpcy5vbmNoYW5nZSh0cmVlRWxlbWVu
dCk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5U
cmVlT3V0bGluZS5FdmVudC5FbGVtZW50RGlkQ2hhbmdlLCB7ZWxlbWVudDogdHJlZUVsZW1lbnR9
KTsKICAgICB9CiAKICAgICB0cmVlRWxlbWVudEZyb21Ob2RlKG5vZGUpCkBAIC01MTksNiArNTE1
LDE1IEBAIFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgIH0KIH07CiAKK1dlYkluc3BlY3Rvci5UcmVlT3V0
bGluZS5FdmVudCA9IHsKKyAgICBFbGVtZW50QWRkZWQ6IFN5bWJvbCgiZWxlbWVudC1hZGRlZCIp
LAorICAgIEVsZW1lbnREaWRDaGFuZ2U6IFN5bWJvbCgiZWxlbWVudC1kaWQtY2hhbmdlIiksCisg
ICAgRWxlbWVudFJlbW92ZWQ6IFN5bWJvbCgiZWxlbWVudC1yZW1vdmVkIiksCisgICAgRWxlbWVu
dERpc2Nsb3N1cmVEaWRDaGFuZ2VkOiBTeW1ib2woImVsZW1lbnQtZGlzY2xvc3VyZS1kaWQtY2hh
bmdlIiksCisgICAgRWxlbWVudFZpc2liaWxpdHlEaWRDaGFuZ2U6IFN5bWJvbCgiZWxlbWVudC12
aXNiaWxpdHktZGlkLWNoYW5nZSIpLAorICAgIFNlbGVjdGlvbkRpZENoYW5nZTogU3ltYm9sKCJz
ZWxlY3Rpb24tZGlkLWNoYW5nZSIpCit9OworCiBXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuX2tu
b3duVHJlZUVsZW1lbnROZXh0SWRlbnRpZmllciA9IDE7CiAKIFdlYkluc3BlY3Rvci5UcmVlRWxl
bWVudCA9IGNsYXNzIFRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdApAQCAt
NTgxLDExICs1ODYsNiBAQCBXZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnQgPSBjbGFzcyBUcmVlRWxl
bWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgcmV0dXJuIHRoaXMuX2xp
c3RJdGVtTm9kZTsKICAgICB9CiAKLSAgICBnZXQgY2hpbGRyZW5MaXN0RWxlbWVudCgpCi0gICAg
ewotICAgICAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW5MaXN0Tm9kZTsKLSAgICB9Ci0KICAgICBn
ZXQgdGl0bGUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlOwpAQCAtNjcxLDgg
KzY3MSw4IEBAIFdlYkluc3BlY3Rvci5UcmVlRWxlbWVudCA9IGNsYXNzIFRyZWVFbGVtZW50IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICAgICAgICAgIHRoaXMuX2NoaWxkcmVu
TGlzdE5vZGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAodGhpcy50cmVlT3V0bGluZSAmJiB0aGlzLnRyZWVPdXRsaW5lLm9uaGlkZGVuKQotICAg
ICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5vbmhpZGRlbih0aGlzLCB4KTsKKyAgICAgICAgaWYg
KHRoaXMudHJlZU91dGxpbmUpCisgICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuRWxlbWVudFZp
c2liaWxpdHlEaWRDaGFuZ2UsIHtlbGVtZW50OiB0aGlzfSk7CiAgICAgfQogCiAgICAgZ2V0IHNo
b3VsZFJlZnJlc2hDaGlsZHJlbigpCkBAIC04NDIsOCArODQyLDggQEAgV2ViSW5zcGVjdG9yLlRy
ZWVFbGVtZW50ID0gY2xhc3MgVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0
CiAgICAgICAgIGlmICh0aGlzLm9uY29sbGFwc2UpCiAgICAgICAgICAgICB0aGlzLm9uY29sbGFw
c2UodGhpcyk7CiAKLSAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUgJiYgdGhpcy50cmVlT3V0
bGluZS5vbmNvbGxhcHNlKQotICAgICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5vbmNvbGxhcHNl
KHRoaXMpOworICAgICAgICBpZiAodGhpcy50cmVlT3V0bGluZSkKKyAgICAgICAgICAgIHRoaXMu
dHJlZU91dGxpbmUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5UcmVlT3V0
bGluZS5FdmVudC5FbGVtZW50RGlzY2xvc3VyZURpZENoYW5nZWQsIHtlbGVtZW50OiB0aGlzfSk7
CiAgICAgfQogCiAgICAgY29sbGFwc2VSZWN1cnNpdmVseSgpCkBAIC04NjEsOSArODYxLDkgQEAg
V2ViSW5zcGVjdG9yLlRyZWVFbGVtZW50ID0gY2xhc3MgVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLmV4cGFuZGVkICYmICF0aGlzLl9zaG91
bGRSZWZyZXNoQ2hpbGRyZW4gJiYgdGhpcy5fY2hpbGRyZW5MaXN0Tm9kZSkKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICAvLyBTZXQgdGhpcyBiZWZvcmUgb25wb3B1bGF0ZS4gU2luY2Ug
b25wb3B1bGF0ZSBjYW4gYWRkIGVsZW1lbnRzIGFuZCBjYWxsIG9uYWRkLCB0aGlzIG1ha2VzCi0g
ICAgICAgIC8vIHN1cmUgdGhlIGV4cGFuZGVkIGZsYWcgaXMgdHJ1ZSBiZWZvcmUgY2FsbGluZyB0
aG9zZSBmdW5jdGlvbnMuIFRoaXMgcHJldmVudHMgdGhlIHBvc3NpYmlsaXR5Ci0gICAgICAgIC8v
IG9mIGFuIGluZmluaXRlIGxvb3AgaWYgb25wb3B1bGF0ZSBvciBvbmFkZCB3ZXJlIHRvIGNhbGwg
ZXhwYW5kLgorICAgICAgICAvLyBTZXQgdGhpcyBiZWZvcmUgb25wb3B1bGF0ZS4gU2luY2Ugb25w
b3B1bGF0ZSBjYW4gYWRkIGVsZW1lbnRzIGFuZCBkaXNwYXRjaCBhbiBFbGVtZW50QWRkZWQgZXZl
bnQsCisgICAgICAgIC8vIHRoaXMgbWFrZXMgc3VyZSB0aGUgZXhwYW5kZWQgZmxhZyBpcyB0cnVl
IGJlZm9yZSBjYWxsaW5nIHRob3NlIGZ1bmN0aW9ucy4gVGhpcyBwcmV2ZW50cyB0aGUKKyAgICAg
ICAgLy8gcG9zc2liaWxpdHkgb2YgYW4gaW5maW5pdGUgbG9vcCBpZiBvbnBvcHVsYXRlIG9yIGFu
IGV2ZW50IGhhbmRsZXIgd2VyZSB0byBjYWxsIGV4cGFuZC4KIAogICAgICAgICB0aGlzLmV4cGFu
ZGVkID0gdHJ1ZTsKICAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUpCkBAIC05MDQsOCArOTA0
LDggQEAgV2ViSW5zcGVjdG9yLlRyZWVFbGVtZW50ID0gY2xhc3MgVHJlZUVsZW1lbnQgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLm9uZXhwYW5kKQogICAgICAg
ICAgICAgdGhpcy5vbmV4cGFuZCh0aGlzKTsKIAotICAgICAgICBpZiAodGhpcy50cmVlT3V0bGlu
ZSAmJiB0aGlzLnRyZWVPdXRsaW5lLm9uZXhwYW5kKQotICAgICAgICAgICAgdGhpcy50cmVlT3V0
bGluZS5vbmV4cGFuZCh0aGlzKTsKKyAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUpCisgICAg
ICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuRWxlbWVudERpc2Nsb3N1cmVEaWRDaGFuZ2VkLCB7ZWxl
bWVudDogdGhpc30pOwogICAgIH0KIAogICAgIGV4cGFuZFJlY3Vyc2l2ZWx5KG1heERlcHRoKQpA
QCAtOTkwLDEyICs5OTAsMTkgQEAgV2ViSW5zcGVjdG9yLlRyZWVFbGVtZW50ID0gY2xhc3MgVHJl
ZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgICAgICB0aGlzLnRy
ZWVPdXRsaW5lLl9jaGlsZHJlbkxpc3ROb2RlLmZvY3VzKCk7CiAKICAgICAgICAgLy8gRm9jdXNp
bmcgb24gYW5vdGhlciBub2RlIG1heSBkZXRhY2ggInRoaXMiIGZyb20gdHJlZS4KLSAgICAgICAg
dmFyIHRyZWVPdXRsaW5lID0gdGhpcy50cmVlT3V0bGluZTsKKyAgICAgICAgbGV0IHRyZWVPdXRs
aW5lID0gdGhpcy50cmVlT3V0bGluZTsKICAgICAgICAgaWYgKCF0cmVlT3V0bGluZSkKICAgICAg
ICAgICAgIHJldHVybjsKIAogICAgICAgICB0cmVlT3V0bGluZS5wcm9jZXNzaW5nU2VsZWN0aW9u
Q2hhbmdlID0gdHJ1ZTsKIAorICAgICAgICAvLyBQcmV2ZW50IGRpc3BhdGNoaW5nIGEgU2VsZWN0
aW9uRGlkQ2hhbmdlIGV2ZW50IGZvciB0aGUgZGVzZWxlY3RlZCBlbGVtZW50IGlmCisgICAgICAg
IC8vIGl0IHdpbGwgYmUgZGlzcGF0Y2hlZCBmb3IgdGhlIHNlbGVjdGVkIGVsZW1lbnQuIFRoZSBl
dmVudCBkYXRhIGluY2x1ZGVzIGJvdGgKKyAgICAgICAgLy8gdGhlIHNlbGVjdGVkIGFuZCBkZXNl
bGVjdGVkIGVsZW1lbnRzLCBzbyBvbmUgZXZlbnQgaXMuCisgICAgICAgIGlmICghc3VwcHJlc3NP
blNlbGVjdCkKKyAgICAgICAgICAgIHN1cHByZXNzT25EZXNlbGVjdCA9IHRydWU7CisKKyAgICAg
ICAgbGV0IGRlc2VsZWN0ZWRFbGVtZW50ID0gdHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVu
dDsKICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkKSB7CiAgICAgICAgICAgICBpZiAodHJlZU91
dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudCkKICAgICAgICAgICAgICAgICB0cmVlT3V0bGluZS5z
ZWxlY3RlZFRyZWVFbGVtZW50LmRlc2VsZWN0KHN1cHByZXNzT25EZXNlbGVjdCk7CkBAIC0xMDA3
LDExICsxMDE0LDEyIEBAIFdlYkluc3BlY3Rvci5UcmVlRWxlbWVudCA9IGNsYXNzIFRyZWVFbGVt
ZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICAgICAgICAgIHRoaXMuX2xp
c3RJdGVtTm9kZS5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOwogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKHRoaXMub25zZWxlY3QgJiYgIXN1cHByZXNzT25TZWxlY3QpCi0gICAgICAgICAgICB0
aGlzLm9uc2VsZWN0KHRoaXMsIHNlbGVjdGVkQnlVc2VyKTsKKyAgICAgICAgaWYgKCFzdXBwcmVz
c09uU2VsZWN0KSB7CisgICAgICAgICAgICBpZiAodGhpcy5vbnNlbGVjdCkKKyAgICAgICAgICAg
ICAgICB0aGlzLm9uc2VsZWN0KHRoaXMsIHNlbGVjdGVkQnlVc2VyKTsKIAotICAgICAgICBpZiAo
dHJlZU91dGxpbmUub25zZWxlY3QgJiYgIXN1cHByZXNzT25TZWxlY3QpCi0gICAgICAgICAgICB0
cmVlT3V0bGluZS5vbnNlbGVjdCh0aGlzLCBzZWxlY3RlZEJ5VXNlcik7CisgICAgICAgICAgICB0
cmVlT3V0bGluZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRyZWVPdXRs
aW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwge3NlbGVjdGVkRWxlbWVudDogdGhpcywgZGVz
ZWxlY3RlZEVsZW1lbnQsIHNlbGVjdGVkQnlVc2VyfSk7CisgICAgICAgIH0KIAogICAgICAgICB0
cmVlT3V0bGluZS5wcm9jZXNzaW5nU2VsZWN0aW9uQ2hhbmdlID0gZmFsc2U7CiAgICAgfQpAQCAt
MTAzMywxMSArMTA0MSwxMiBAQCBXZWJJbnNwZWN0b3IuVHJlZUVsZW1lbnQgPSBjbGFzcyBUcmVl
RWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgaWYgKHRoaXMuX2xp
c3RJdGVtTm9kZSkKICAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QucmVt
b3ZlKCJzZWxlY3RlZCIpOwogCi0gICAgICAgIGlmICh0aGlzLm9uZGVzZWxlY3QgJiYgIXN1cHBy
ZXNzT25EZXNlbGVjdCkKLSAgICAgICAgICAgIHRoaXMub25kZXNlbGVjdCh0aGlzKTsKKyAgICAg
ICAgaWYgKCFzdXBwcmVzc09uRGVzZWxlY3QpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLm9uZGVz
ZWxlY3QpCisgICAgICAgICAgICAgICAgdGhpcy5vbmRlc2VsZWN0KHRoaXMpOwogCi0gICAgICAg
IGlmICh0aGlzLnRyZWVPdXRsaW5lLm9uZGVzZWxlY3QgJiYgIXN1cHByZXNzT25EZXNlbGVjdCkK
LSAgICAgICAgICAgIHRoaXMudHJlZU91dGxpbmUub25kZXNlbGVjdCh0aGlzKTsKKyAgICAgICAg
ICAgIHRoaXMudHJlZU91dGxpbmUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHtkZXNlbGVjdGVkRWxlbWVu
dDogdGhpc30pOworICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91
dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIuanMKaW5kZXgg
MWRkNjJiM2UwMWFjMzAzNjE5M2EwMjBhODIxNzFjN2UzMzdmNDVlNC4uYzhjY2FiNjZmMmFjY2Fk
N2I0NjAyNDQ1MzYwMzIwNTY1Yzg0OGJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlT3V0
bGluZURhdGFHcmlkU3luY2hyb25pemVyLmpzCkBAIC00OSw0OSArNDksMTEgQEAgV2ViSW5zcGVj
dG9yLlRyZWVPdXRsaW5lRGF0YUdyaWRTeW5jaHJvbml6ZXIgPSBjbGFzcyBUcmVlT3V0bGluZURh
dGFHcmlkU3luY2hyb24KICAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUuZWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJmb2N1cyIsIHRoaXMuX3RyZWVPdXRsaW5lR2FpbmVkRm9jdXMuYmluZCh0aGlz
KSk7CiAgICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Ymx1ciIsIHRoaXMuX3RyZWVPdXRsaW5lTG9zdEZvY3VzLmJpbmQodGhpcykpOwogCi0gICAgICAg
IC8vIEZJWE1FOiBUaGlzIGlzIGEgaGFjay4gVHJlZU91dGxpbmUgc2hvdWxkIGp1c3QgZGlzcGF0
Y2ggZXZlbnRzIHZpYSBXZWJJbnNwZWN0b3IuT2JqZWN0LgotICAgICAgICB2YXIgZXhpc3RpbmdP
bkFkZCA9IHRyZWVPdXRsaW5lLm9uYWRkOwotICAgICAgICB2YXIgZXhpc3RpbmdPblJlbW92ZSA9
IHRyZWVPdXRsaW5lLm9ucmVtb3ZlOwotICAgICAgICB2YXIgZXhpc3RpbmdPbkV4cGFuZCA9IHRy
ZWVPdXRsaW5lLm9uZXhwYW5kOwotICAgICAgICB2YXIgZXhpc3RpbmdPbkNvbGxhcHNlID0gdHJl
ZU91dGxpbmUub25jb2xsYXBzZTsKLSAgICAgICAgdmFyIGV4aXN0aW5nT25IaWRkZW4gPSB0cmVl
T3V0bGluZS5vbmhpZGRlbjsKLSAgICAgICAgdmFyIGV4aXN0aW5nT25TZWxlY3QgPSB0cmVlT3V0
bGluZS5vbnNlbGVjdDsKLQotICAgICAgICB0cmVlT3V0bGluZS5vbmFkZCA9IGZ1bmN0aW9uKGVs
ZW1lbnQpIHsKLSAgICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50QWRkZWQoZWxlbWVudCk7Ci0g
ICAgICAgICAgICBpZiAoZXhpc3RpbmdPbkFkZCkKLSAgICAgICAgICAgICAgICBleGlzdGluZ09u
QWRkLmNhbGwodHJlZU91dGxpbmUsIGVsZW1lbnQpOwotICAgICAgICB9LmJpbmQodGhpcyk7Ci0K
LSAgICAgICAgdHJlZU91dGxpbmUub25yZW1vdmUgPSBmdW5jdGlvbihlbGVtZW50KSB7Ci0gICAg
ICAgICAgICB0aGlzLl90cmVlRWxlbWVudFJlbW92ZWQoZWxlbWVudCk7Ci0gICAgICAgICAgICBp
ZiAoZXhpc3RpbmdPblJlbW92ZSkKLSAgICAgICAgICAgICAgICBleGlzdGluZ09uUmVtb3ZlLmNh
bGwodHJlZU91dGxpbmUsIGVsZW1lbnQpOwotICAgICAgICB9LmJpbmQodGhpcyk7Ci0KLSAgICAg
ICAgdHJlZU91dGxpbmUub25leHBhbmQgPSBmdW5jdGlvbihlbGVtZW50KSB7Ci0gICAgICAgICAg
ICB0aGlzLl90cmVlRWxlbWVudEV4cGFuZGVkKGVsZW1lbnQpOwotICAgICAgICAgICAgaWYgKGV4
aXN0aW5nT25FeHBhbmQpCi0gICAgICAgICAgICAgICAgZXhpc3RpbmdPbkV4cGFuZC5jYWxsKHRy
ZWVPdXRsaW5lLCBlbGVtZW50KTsKLSAgICAgICAgfS5iaW5kKHRoaXMpOwotCi0gICAgICAgIHRy
ZWVPdXRsaW5lLm9uY29sbGFwc2UgPSBmdW5jdGlvbihlbGVtZW50KSB7Ci0gICAgICAgICAgICB0
aGlzLl90cmVlRWxlbWVudENvbGxhcHNlZChlbGVtZW50KTsKLSAgICAgICAgICAgIGlmIChleGlz
dGluZ09uQ29sbGFwc2UpCi0gICAgICAgICAgICAgICAgZXhpc3RpbmdPbkNvbGxhcHNlLmNhbGwo
dHJlZU91dGxpbmUsIGVsZW1lbnQpOwotICAgICAgICB9LmJpbmQodGhpcyk7Ci0KLSAgICAgICAg
dHJlZU91dGxpbmUub25oaWRkZW4gPSBmdW5jdGlvbihlbGVtZW50LCBoaWRkZW4pIHsKLSAgICAg
ICAgICAgIHRoaXMuX3RyZWVFbGVtZW50SGlkZGVuQ2hhbmdlZChlbGVtZW50LCBoaWRkZW4pOwot
ICAgICAgICAgICAgaWYgKGV4aXN0aW5nT25IaWRkZW4pCi0gICAgICAgICAgICAgICAgZXhpc3Rp
bmdPbkhpZGRlbi5jYWxsKHRyZWVPdXRsaW5lLCBlbGVtZW50LCBoaWRkZW4pOwotICAgICAgICB9
LmJpbmQodGhpcyk7Ci0KLSAgICAgICAgdHJlZU91dGxpbmUub25zZWxlY3QgPSBmdW5jdGlvbihl
bGVtZW50LCBzZWxlY3RlZEJ5VXNlcikgewotICAgICAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnRT
ZWxlY3RlZChlbGVtZW50LCBzZWxlY3RlZEJ5VXNlcik7Ci0gICAgICAgICAgICBpZiAoZXhpc3Rp
bmdPblNlbGVjdCkKLSAgICAgICAgICAgICAgICBleGlzdGluZ09uU2VsZWN0LmNhbGwodHJlZU91
dGxpbmUsIGVsZW1lbnQsIHNlbGVjdGVkQnlVc2VyKTsKLSAgICAgICAgfS5iaW5kKHRoaXMpOwor
ICAgICAgICB0cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0
bGluZS5FdmVudC5FbGVtZW50QWRkZWQsIHRoaXMuX3RyZWVFbGVtZW50QWRkZWQsIHRoaXMpOwor
ICAgICAgICB0cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0
bGluZS5FdmVudC5FbGVtZW50UmVtb3ZlZCwgdGhpcy5fdHJlZUVsZW1lbnRSZW1vdmVkLCB0aGlz
KTsKKyAgICAgICAgdHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJl
ZU91dGxpbmUuRXZlbnQuRWxlbWVudERpc2Nsb3N1cmVEaWRDaGFuZ2VkLCB0aGlzLl90cmVlRWxl
bWVudERpc2Nsb3N1cmVEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICB0cmVlT3V0bGluZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZS5FdmVudC5FbGVtZW50VmlzaWJp
bGl0eURpZENoYW5nZSwgdGhpcy5fdHJlZUVsZW1lbnRWaXNpYmlsaXR5RGlkQ2hhbmdlLCB0aGlz
KTsKKyAgICAgICAgdHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVHJl
ZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl90cmVlU2VsZWN0aW9uRGlk
Q2hhbmdlLCB0aGlzKTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTI0MywyNyArMjA1LDM2
IEBAIFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZURhdGFHcmlkU3luY2hyb25pemVyID0gY2xhc3Mg
VHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uCiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmVsZW1l
bnQuY2xhc3NMaXN0LnJlbW92ZSgiZm9yY2UtZm9jdXMiKTsKICAgICB9CiAKLSAgICBfdHJlZUVs
ZW1lbnRTZWxlY3RlZCh0cmVlRWxlbWVudCwgc2VsZWN0ZWRCeVVzZXIpCisgICAgX3RyZWVTZWxl
Y3Rpb25EaWRDaGFuZ2UoZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIGRhdGFHcmlkTm9kZSA9IHRyZWVF
bGVtZW50Ll9fZGF0YUdyaWROb2RlOworICAgICAgICBsZXQgdHJlZUVsZW1lbnQgPSBldmVudC5k
YXRhLnNlbGVjdGVkRWxlbWVudCB8fCBldmVudC5kYXRhLmRlc2VsZWN0ZWRFbGVtZW50OworICAg
ICAgICBjb25zb2xlLmFzc2VydCh0cmVlRWxlbWVudCk7CisgICAgICAgIGlmICghdHJlZUVsZW1l
bnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IGRhdGFHcmlkTm9kZSA9IHRy
ZWVFbGVtZW50Ll9fZGF0YUdyaWROb2RlOwogICAgICAgICBjb25zb2xlLmFzc2VydChkYXRhR3Jp
ZE5vZGUpOwogCi0gICAgICAgIGRhdGFHcmlkTm9kZS5zZWxlY3QodHJ1ZSk7CisgICAgICAgIGlm
IChldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudCkKKyAgICAgICAgICAgIGRhdGFHcmlkTm9kZS5z
ZWxlY3QoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGF0YUdyaWROb2RlLmRlc2VsZWN0
KCk7CiAgICAgfQogCi0gICAgX3RyZWVFbGVtZW50QWRkZWQodHJlZUVsZW1lbnQpCisgICAgX3Ry
ZWVFbGVtZW50QWRkZWQoZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIGRhdGFHcmlkTm9kZSA9IHRoaXMu
ZGF0YUdyaWROb2RlRm9yVHJlZUVsZW1lbnQodHJlZUVsZW1lbnQpOworICAgICAgICBsZXQgdHJl
ZUVsZW1lbnQgPSBldmVudC5kYXRhLmVsZW1lbnQ7CisgICAgICAgIGxldCBkYXRhR3JpZE5vZGUg
PSB0aGlzLmRhdGFHcmlkTm9kZUZvclRyZWVFbGVtZW50KHRyZWVFbGVtZW50KTsKICAgICAgICAg
Y29uc29sZS5hc3NlcnQoZGF0YUdyaWROb2RlKTsKIAogICAgICAgICB2YXIgcGFyZW50RGF0YUdy
aWROb2RlID0gdHJlZUVsZW1lbnQucGFyZW50Ll9fZGF0YUdyaWROb2RlOwotICAgICAgICBjb25z
b2xlLmFzc2VydChkYXRhR3JpZE5vZGUpOworICAgICAgICBjb25zb2xlLmFzc2VydChwYXJlbnRE
YXRhR3JpZE5vZGUpOwogCiAgICAgICAgIHZhciBjaGlsZEluZGV4ID0gdHJlZUVsZW1lbnQucGFy
ZW50LmNoaWxkcmVuLmluZGV4T2YodHJlZUVsZW1lbnQpOwogICAgICAgICBjb25zb2xlLmFzc2Vy
dChjaGlsZEluZGV4ICE9PSAtMSk7CkBAIC0yNzEsNTAgKzI0Miw0MyBAQCBXZWJJbnNwZWN0b3Iu
VHJlZU91dGxpbmVEYXRhR3JpZFN5bmNocm9uaXplciA9IGNsYXNzIFRyZWVPdXRsaW5lRGF0YUdy
aWRTeW5jaHJvbgogICAgICAgICBwYXJlbnREYXRhR3JpZE5vZGUuaW5zZXJ0Q2hpbGQoZGF0YUdy
aWROb2RlLCBjaGlsZEluZGV4KTsKICAgICB9CiAKLSAgICBfdHJlZUVsZW1lbnRSZW1vdmVkKHRy
ZWVFbGVtZW50KQorICAgIF90cmVlRWxlbWVudFJlbW92ZWQoZXZlbnQpCiAgICAgewogICAgICAg
ICBpZiAoIXRoaXMuX2VuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFy
IGRhdGFHcmlkTm9kZSA9IHRyZWVFbGVtZW50Ll9fZGF0YUdyaWROb2RlOworICAgICAgICBsZXQg
dHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLmVsZW1lbnQ7CisgICAgICAgIGxldCBkYXRhR3JpZE5v
ZGUgPSB0cmVlRWxlbWVudC5fX2RhdGFHcmlkTm9kZTsKICAgICAgICAgY29uc29sZS5hc3NlcnQo
ZGF0YUdyaWROb2RlKTsKIAogICAgICAgICBpZiAoZGF0YUdyaWROb2RlLnBhcmVudCkKICAgICAg
ICAgICAgIGRhdGFHcmlkTm9kZS5wYXJlbnQucmVtb3ZlQ2hpbGQoZGF0YUdyaWROb2RlKTsKICAg
ICB9CiAKLSAgICBfdHJlZUVsZW1lbnRFeHBhbmRlZCh0cmVlRWxlbWVudCkKKyAgICBfdHJlZUVs
ZW1lbnREaXNjbG9zdXJlRGlkQ2hhbmdlKGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKCF0aGlz
Ll9lbmFibGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhciBkYXRhR3JpZE5v
ZGUgPSB0cmVlRWxlbWVudC5fX2RhdGFHcmlkTm9kZTsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50
ID0gZXZlbnQuZGF0YS5lbGVtZW50OworICAgICAgICBsZXQgZGF0YUdyaWROb2RlID0gdHJlZUVs
ZW1lbnQuX19kYXRhR3JpZE5vZGU7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRhdGFHcmlkTm9k
ZSk7CiAKLSAgICAgICAgaWYgKCFkYXRhR3JpZE5vZGUuZXhwYW5kZWQpCisgICAgICAgIGlmICh0
cmVlRWxlbWVudC5leHBhbmRlZCkKICAgICAgICAgICAgIGRhdGFHcmlkTm9kZS5leHBhbmQoKTsK
LSAgICB9Ci0KLSAgICBfdHJlZUVsZW1lbnRDb2xsYXBzZWQodHJlZUVsZW1lbnQpCi0gICAgewot
ICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgdmFyIGRhdGFHcmlkTm9kZSA9IHRyZWVFbGVtZW50Ll9fZGF0YUdyaWROb2RlOwotICAgICAg
ICBjb25zb2xlLmFzc2VydChkYXRhR3JpZE5vZGUpOwotCi0gICAgICAgIGlmIChkYXRhR3JpZE5v
ZGUuZXhwYW5kZWQpCisgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRhdGFHcmlkTm9kZS5jb2xs
YXBzZSgpOwogICAgIH0KIAotICAgIF90cmVlRWxlbWVudEhpZGRlbkNoYW5nZWQodHJlZUVsZW1l
bnQsIGhpZGRlbikKKyAgICBfdHJlZUVsZW1lbnRWaXNpYmlsaXR5RGlkQ2hhbmdlKGV2ZW50KQog
ICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIHZhciBkYXRhR3JpZE5vZGUgPSB0cmVlRWxlbWVudC5fX2RhdGFHcmlkTm9kZTsK
KyAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5lbGVtZW50OworICAgICAgICBs
ZXQgZGF0YUdyaWROb2RlID0gdHJlZUVsZW1lbnQuX19kYXRhR3JpZE5vZGU7CiAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGRhdGFHcmlkTm9kZSk7CiAKLSAgICAgICAgZGF0YUdyaWROb2RlLmVsZW1l
bnQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwgaGlkZGVuKTsKKyAgICAgICAgZGF0YUdyaWRO
b2RlLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwgdHJlZUVsZW1lbnQuaGlkZGVu
KTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1h
U2VwYXJhdGVkS2V5d29yZEVkaXRvci5qcwppbmRleCAwNjg0OTY0ZThkYTYxMGFjZmFhZGNkNDlj
MTVlOGQxNThhOTE0YzE0Li5jZGFlYzUyYTc5N2VmYWYzMmMxZDA3NWFlOTZhMTBiYzc2Njk0OTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9W
aXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVk
S2V5d29yZEVkaXRvci5qcwpAQCAtMzgsNyArMzgsNyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IgPSBjbGFzcyBWaXN1YWxTdHlsZUNvbW1hU2Vw
YQogICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKGxpc3RFbGVtZW50KTsK
IAogICAgICAgICB0aGlzLl9jb21tYVNlcGFyYXRlZEtleXdvcmRzID0gbmV3IFdlYkluc3BlY3Rv
ci5UcmVlT3V0bGluZShsaXN0RWxlbWVudCk7Ci0gICAgICAgIHRoaXMuX2NvbW1hU2VwYXJhdGVk
S2V5d29yZHMub25zZWxlY3QgPSB0aGlzLl90cmVlRWxlbWVudFNlbGVjdGVkLmJpbmQodGhpcyk7
CisgICAgICAgIHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl90
cmVlU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKIAogICAgICAgICBsZXQgY29udHJvbENvbnRh
aW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBjb250cm9sQ29u
dGFpbmVyLmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29y
ZC1jb250cm9scyIpOwpAQCAtMTg1LDEwICsxODUsMTQgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0
eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yID0gY2xhc3MgVmlzdWFsU3R5bGVDb21tYVNl
cGEKICAgICAgICAgICAgIHRoaXMuX3JlbW92ZVNlbGVjdGVkQ29tbWFTZXBhcmF0ZWRLZXl3b3Jk
KCk7CiAgICAgfQogCi0gICAgX3RyZWVFbGVtZW50U2VsZWN0ZWQoaXRlbSwgc2VsZWN0ZWRCeVVz
ZXIpCisgICAgX3RyZWVTZWxlY3Rpb25EaWRDaGFuZ2UoZXZlbnQpCiAgICAgeworICAgICAgICBs
ZXQgdHJlZUVsZW1lbnQgPSBldmVudC5kYXRhLnNlbGVjdGVkRWxlbWVudDsKKyAgICAgICAgaWYg
KCF0cmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICB0aGlzLl9yZW1v
dmVFbXB0eUNvbW1hU2VwYXJhdGVkS2V5d29yZHMoKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3
b3JkRWRpdG9yLkV2ZW50LlRyZWVJdGVtU2VsZWN0ZWQsIHt0ZXh0OiBpdGVtLm1haW5UaXRsZX0p
OworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuRXZlbnQuVHJlZUl0ZW1TZWxlY3Rl
ZCwge3RleHQ6IHRyZWVFbGVtZW50Lm1haW5UaXRsZX0pOwogICAgIH0KIAogICAgIF90cmVlRWxl
bWVudElzRW1wdHkoaXRlbSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>