<?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>191566</bug_id>
          
          <creation_ts>2018-11-12 15:01:25 -0800</creation_ts>
          <short_desc>Web Inspector: add drag+drop for importing Audits and Recordings</short_desc>
          <delta_ts>2018-11-14 14:03:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>190754</dependson>
          <blocked>175485</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1477748</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-11-12 15:01:25 -0800</bug_when>
    <thetext>We already allow users to import Audits and Recordings, so we should make it even easier by allowing drag and drop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477749</commentid>
    <comment_count>1</comment_count>
      <attachid>354597</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-11-12 15:12:37 -0800</bug_when>
    <thetext>Created attachment 354597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478256</commentid>
    <comment_count>2</comment_count>
      <attachid>354597</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-11-13 17:55:19 -0800</bug_when>
    <thetext>Comment on attachment 354597
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/FileUtilities.js:26
&gt; +WI.FileUtilities = class FileUtilities {

I don&apos;t really like this, but I don&apos;t have a good argument against it. The file is already named `FileUtilities` and the methods &quot;saveDataToFile&quot; was clear to me. You can keep it but I&apos;d like to get an idea of when we would want a collection class like this.

&gt; Source/WebInspectorUI/UserInterface/Base/FileUtilities.js:85
&gt; +    static getText(file, callback)

How do we not have tests for these? Maybe thats okay, we can get to it later.

&gt; Source/WebInspectorUI/UserInterface/Views/AuditTabContentView.js:126
&gt; +        WI.FileUtilities.getText(event.dataTransfer.files[0], (data, filename) =&gt; {

What if someone drops multiple files? We seem to only get the first.

&gt; Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.js:254
&gt; +    _handleImportButtonNavigationItemClicked(event) {

Style: brace on newline.

&gt; Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.js:257
&gt; +        WI.FileUtilities.import((data, filename) =&gt; {
&gt; +            WI.auditManager.processImportedFile(data, filename);
&gt; +        });

r- the CanvasOverview should not tell the audit manager to import.

Seems this should just be `WI.canvasManager.processImportedFile(...)`.

&gt; Source/WebInspectorUI/UserInterface/Views/CanvasSidebarPanel.js:50
&gt; +        let importButtonNavigationItem = new WI.ButtonNavigationItem(&quot;audit-import&quot;, WI.UIString(&quot;Import&quot;), &quot;Images/Import.svg&quot;, 15, 15);

CanvasSidebar with &quot;audit-import&quot; on the button navigation item? Seems wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478356</commentid>
    <comment_count>3</comment_count>
      <attachid>354597</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-11-14 00:56:09 -0800</bug_when>
    <thetext>Comment on attachment 354597
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/FileUtilities.js:26
&gt;&gt; +WI.FileUtilities = class FileUtilities {
&gt; 
&gt; I don&apos;t really like this, but I don&apos;t have a good argument against it. The file is already named `FileUtilities` and the methods &quot;saveDataToFile&quot; was clear to me. You can keep it but I&apos;d like to get an idea of when we would want a collection class like this.

I personally find all these &quot;random&quot; functions attached to `WI` to be very confusing, not so much as to what they do, but where I&apos;d find them (e.g. which file).  An example of why this is nice would be to look at Utilities.js, where you have to do a string search for a prototype function because no editor is smart enough to figure out that the additions we add are defined in this file.  Adding `WI.FileUtilities` makes it explicitly clear which file to look in for this (it also matches `WI.ImageUtilities`).

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.js:257
&gt;&gt; +        });
&gt; 
&gt; r- the CanvasOverview should not tell the audit manager to import.
&gt; 
&gt; Seems this should just be `WI.canvasManager.processImportedFile(...)`.

copypasta :P

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/CanvasSidebarPanel.js:50
&gt;&gt; +        let importButtonNavigationItem = new WI.ButtonNavigationItem(&quot;audit-import&quot;, WI.UIString(&quot;Import&quot;), &quot;Images/Import.svg&quot;, 15, 15);
&gt; 
&gt; CanvasSidebar with &quot;audit-import&quot; on the button navigation item? Seems wrong.

copypasta :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478363</commentid>
    <comment_count>4</comment_count>
      <attachid>354783</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-11-14 01:36:04 -0800</bug_when>
    <thetext>Created attachment 354783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478590</commentid>
    <comment_count>5</comment_count>
      <attachid>354783</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-11-14 13:28:49 -0800</bug_when>
    <thetext>Comment on attachment 354783
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478610</commentid>
    <comment_count>6</comment_count>
      <attachid>354783</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-14 14:01:12 -0800</bug_when>
    <thetext>Comment on attachment 354783
Patch

Clearing flags on attachment: 354783

Committed r238198: &lt;https://trac.webkit.org/changeset/238198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478611</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-14 14:01:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478615</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-14 14:03:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/46074573&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354597</attachid>
            <date>2018-11-12 15:12:37 -0800</date>
            <delta_ts>2018-11-14 01:36:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>191566.diff</filename>
            <type>text/plain</type>
            <size>31334</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDkwOTIxYWE4ODI1Li40MzUyZGE4OTYzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTgtMTEtMTIgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFk
ZCBkcmFnK2Ryb3AgZm9yIGltcG9ydGluZyBBdWRpdHMgYW5kIFJlY29yZGluZ3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTU2NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlb3JnYW5pemUgdGhlIGZp
bGUgbG9hZGluZyBsb2dpYyBmb3IgdGhlIEF1ZGl0IGFuZCBDYW52YXMgdGFicy9tYW5hZ2Vycy4g
QWRkICJkcm9wIiBldmVudAorICAgICAgICBoYW5kbGVycyB0byB0aGUgdGFicyB0aGF0IGFkZCBh
bmQgc2hvdyB0aGUgY29ycmVzcG9uZGluZyBvYmplY3QgZm9yIHRoZSBpbXBvcnRlZCBkYXRhLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzOgor
ICAgICAgICAoV0kuQXVkaXRUYWJDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5BdWRpdFRhYkNv
bnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlRHJhZ092ZXIpOiBBZGRlZC4KKyAgICAgICAgKFdJ
LkF1ZGl0VGFiQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVEcm9wKTogQWRkZWQuCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qczoKKyAgICAg
ICAgKFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLkNhbnZhc1RhYkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5fYWRkQ2FudmFzKToKKyAgICAgICAgKFdJLkNhbnZhc1RhYkNvbnRl
bnRWaWV3LnByb3RvdHlwZS5fcmVjb3JkaW5nSW1wb3J0ZWRPclN0b3BwZWQpOgorICAgICAgICAo
V0kuQ2FudmFzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVEcmFnT3Zlcik6IEFkZGVk
LgorICAgICAgICAoV0kuQ2FudmFzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVEcm9w
KTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0F1ZGl0TWFu
YWdlci5qczoKKyAgICAgICAgKFdJLkF1ZGl0TWFuYWdlci5wcm90b3R5cGUuYXN5bmMgcHJvY2Vz
c0ltcG9ydGVkRmlsZSk6IEFkZGVkLgorICAgICAgICAoV0kuQXVkaXRNYW5hZ2VyLnByb3RvdHlw
ZS5leHBvcnQpOgorICAgICAgICAoV0kuQXVkaXRNYW5hZ2VyLnByb3RvdHlwZS5pbXBvcnQpOiBE
ZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdl
ci5qczoKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnByb2Nlc3NJbXBvcnRl
ZEZpbGUpOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmltcG9y
dFJlY29yZGluZyk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0F1
ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLkF1ZGl0TmF2aWdhdGlv
blNpZGViYXJQYW5lbCk6CisgICAgICAgIChXSS5BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwu
cHJvdG90eXBlLnNob3dEZWZhdWx0Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuQXVkaXROYXZp
Z2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW1DbGlja2VkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGVi
YXJQYW5lbC5qczoKKyAgICAgICAgKFdJLkNhbnZhc1NpZGViYXJQYW5lbCk6CisgICAgICAgIChX
SS5DYW52YXNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0
aW9uSXRlbUNsaWNrZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc1NpZGViYXJQYW5lbC5w
cm90b3R5cGUuX3JlY29yZGluZ0NoYW5nZWQpOgorICAgICAgICAoV0kuQ2FudmFzU2lkZWJhclBh
bmVsLnByb3RvdHlwZS5fdXBkYXRlUmVjb3JkTmF2aWdhdGlvbkl0ZW0pOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzOgorICAgICAg
ICAoV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5DYW52YXNPdmVy
dmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0
ZW1DbGlja2VkKTogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvRmlsZVV0
aWxpdGllcy5qczoKKyAgICAgICAgKFdJLkZpbGVVdGlsaXRpZXMuc2F2ZSk6IEFkZGVkLgorICAg
ICAgICAoV0kuRmlsZVV0aWxpdGllcy5pbXBvcnQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkZpbGVV
dGlsaXRpZXMuZ2V0VGV4dCk6IEFkZGVkLgorICAgICAgICAoV0kuc2F2ZURhdGFUb0ZpbGUpOiBE
ZWxldGVkLgorICAgICAgICAoV0kubG9hZERhdGFGcm9tRmlsZSk6IERlbGV0ZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChXSS5fY29udGV4dE1lbnVS
ZXF1ZXN0ZWQpOgorICAgICAgICAoV0kuX3NhdmUpOgorICAgICAgICAoV0kuX3NhdmVBcyk6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qczoKKyAg
ICAgICAgKFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JTb3VyY2VDb2RlKToKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuTG9n
Q29udGVudFZpZXcucHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUYWJsZUNvbnRlbnRWaWV3LmpzOgorICAgICAg
ICAoV0kuTmV0d29ya1RhYmxlQ29udGVudFZpZXcucHJvdG90eXBlLl9leHBvcnRIQVIpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuanM6CisgICAg
ICAgIChXSS5SZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5cGUuX2V4cG9ydFJlY29yZGluZyk6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFy
YXRpb25TZWN0aW9uLmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0
aW9uU2VjdGlvbi5wcm90b3R5cGUuX3NhdmUpOgorICAgICAgICBNb3ZlIGZpbGUgcmVsYXRlZCBm
dW5jdGlvbnMgaW50byBhIHN0YXRpYyBjbGFzcyBjb250YWluZXIuCisKIDIwMTgtMTEtMTEgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IE5ldHdvcms6IGFkZCBidXR0b24gdG8gc2hvdyBzeXN0ZW0gY2VydGlmaWNhdGUgZGlhbG9nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0ZpbGVV
dGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0Zp
bGVVdGlsaXRpZXMuanMKaW5kZXggZDYzN2NjMDVjZDYuLjc1MWRkZDdlYzAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0ZpbGVVdGlsaXRpZXMu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9GaWxlVXRp
bGl0aWVzLmpzCkBAIC0yMyw2NSArMjMsNzEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi1XSS5zYXZlRGF0YVRvRmlsZSA9IGZ1bmN0aW9uKHNhdmVEYXRhLCBm
b3JjZVNhdmVBcykKLXsKLSAgICBjb25zb2xlLmFzc2VydChzYXZlRGF0YSk7Ci0gICAgaWYgKCFz
YXZlRGF0YSkKLSAgICAgICAgcmV0dXJuOworV0kuRmlsZVV0aWxpdGllcyA9IGNsYXNzIEZpbGVV
dGlsaXRpZXMgeworICAgIHN0YXRpYyBzYXZlKHNhdmVEYXRhLCBmb3JjZVNhdmVBcykKKyAgICB7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNhdmVEYXRhKTsKKyAgICAgICAgaWYgKCFzYXZlRGF0
YSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgIGlmICh0eXBlb2Ygc2F2ZURhdGEuY3VzdG9t
U2F2ZUhhbmRsZXIgPT09ICJmdW5jdGlvbiIpIHsKLSAgICAgICAgc2F2ZURhdGEuY3VzdG9tU2F2
ZUhhbmRsZXIoZm9yY2VTYXZlQXMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY29u
c29sZS5hc3NlcnQoc2F2ZURhdGEuY29udGVudCk7Ci0gICAgaWYgKCFzYXZlRGF0YS5jb250ZW50
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBsZXQgdXJsID0gc2F2ZURhdGEudXJsIHx8ICIiOwot
ICAgIGxldCBzdWdnZXN0ZWROYW1lID0gcGFyc2VVUkwodXJsKS5sYXN0UGF0aENvbXBvbmVudDsK
LSAgICBpZiAoIXN1Z2dlc3RlZE5hbWUpIHsKLSAgICAgICAgc3VnZ2VzdGVkTmFtZSA9IFdJLlVJ
U3RyaW5nKCJVbnRpdGxlZCIpOwotICAgICAgICBsZXQgZGF0YVVSTFR5cGVNYXRjaCA9IC9eZGF0
YTooW147XSspLy5leGVjKHVybCk7Ci0gICAgICAgIGlmIChkYXRhVVJMVHlwZU1hdGNoKSB7Ci0g
ICAgICAgICAgICBsZXQgZmlsZUV4dGVuc2lvbiA9IFdJLmZpbGVFeHRlbnNpb25Gb3JNSU1FVHlw
ZShkYXRhVVJMVHlwZU1hdGNoWzFdKTsKLSAgICAgICAgICAgIGlmIChmaWxlRXh0ZW5zaW9uKQot
ICAgICAgICAgICAgICAgIHN1Z2dlc3RlZE5hbWUgKz0gIi4iICsgZmlsZUV4dGVuc2lvbjsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIGlmICh0eXBlb2Ygc2F2ZURhdGEuY29udGVudCA9PT0gInN0
cmluZyIpIHsKLSAgICAgICAgY29uc3QgYmFzZTY0RW5jb2RlZCA9IHNhdmVEYXRhLmJhc2U2NEVu
Y29kZWQgfHwgZmFsc2U7Ci0gICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5zYXZlKHN1Z2dl
c3RlZE5hbWUsIHNhdmVEYXRhLmNvbnRlbnQsIGJhc2U2NEVuY29kZWQsIGZvcmNlU2F2ZUFzIHx8
IHNhdmVEYXRhLmZvcmNlU2F2ZUFzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGxl
dCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXI7Ci0gICAgZmlsZVJlYWRlci5yZWFkQXNEYXRh
VVJMKHNhdmVEYXRhLmNvbnRlbnQpOwotICAgIGZpbGVSZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZGVuZCIsICgpID0+IHsKLSAgICAgICAgbGV0IGRhdGFVUkxDb21wb25lbnRzID0gcGFyc2VE
YXRhVVJMKGZpbGVSZWFkZXIucmVzdWx0KTsKLQotICAgICAgICBjb25zdCBiYXNlNjRFbmNvZGVk
ID0gdHJ1ZTsKLSAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNhdmUoc3VnZ2VzdGVkTmFt
ZSwgZGF0YVVSTENvbXBvbmVudHMuZGF0YSwgYmFzZTY0RW5jb2RlZCwgZm9yY2VTYXZlQXMgfHwg
c2F2ZURhdGEuZm9yY2VTYXZlQXMpOwotICAgIH0pOwotfTsKLQotV0kubG9hZERhdGFGcm9tRmls
ZSA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotewotICAgIGxldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwotICAgIGlucHV0RWxlbWVudC50eXBlID0gImZpbGUi
OwotICAgIGlucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAoZXZlbnQpID0+
IHsKLSAgICAgICAgaWYgKCFpbnB1dEVsZW1lbnQuZmlsZXMubGVuZ3RoKSB7Ci0gICAgICAgICAg
ICBjYWxsYmFjayhudWxsKTsKKyAgICAgICAgaWYgKHR5cGVvZiBzYXZlRGF0YS5jdXN0b21TYXZl
SGFuZGxlciA9PT0gImZ1bmN0aW9uIikgeworICAgICAgICAgICAgc2F2ZURhdGEuY3VzdG9tU2F2
ZUhhbmRsZXIoZm9yY2VTYXZlQXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgbGV0IGZpbGUgPSBpbnB1dEVsZW1lbnQuZmlsZXNbMF07CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHNhdmVEYXRhLmNvbnRlbnQpOworICAgICAgICBpZiAoIXNhdmVEYXRhLmNvbnRl
bnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IHVybCA9IHNhdmVEYXRhLnVy
bCB8fCAiIjsKKyAgICAgICAgbGV0IHN1Z2dlc3RlZE5hbWUgPSBwYXJzZVVSTCh1cmwpLmxhc3RQ
YXRoQ29tcG9uZW50OworICAgICAgICBpZiAoIXN1Z2dlc3RlZE5hbWUpIHsKKyAgICAgICAgICAg
IHN1Z2dlc3RlZE5hbWUgPSBXSS5VSVN0cmluZygiVW50aXRsZWQiKTsKKyAgICAgICAgICAgIGxl
dCBkYXRhVVJMVHlwZU1hdGNoID0gL15kYXRhOihbXjtdKykvLmV4ZWModXJsKTsKKyAgICAgICAg
ICAgIGlmIChkYXRhVVJMVHlwZU1hdGNoKSB7CisgICAgICAgICAgICAgICAgbGV0IGZpbGVFeHRl
bnNpb24gPSBXSS5maWxlRXh0ZW5zaW9uRm9yTUlNRVR5cGUoZGF0YVVSTFR5cGVNYXRjaFsxXSk7
CisgICAgICAgICAgICAgICAgaWYgKGZpbGVFeHRlbnNpb24pCisgICAgICAgICAgICAgICAgICAg
IHN1Z2dlc3RlZE5hbWUgKz0gIi4iICsgZmlsZUV4dGVuc2lvbjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIGlmICh0eXBlb2Ygc2F2ZURhdGEuY29udGVudCA9PT0gInN0cmlu
ZyIpIHsKKyAgICAgICAgICAgIGNvbnN0IGJhc2U2NEVuY29kZWQgPSBzYXZlRGF0YS5iYXNlNjRF
bmNvZGVkIHx8IGZhbHNlOworICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNhdmUo
c3VnZ2VzdGVkTmFtZSwgc2F2ZURhdGEuY29udGVudCwgYmFzZTY0RW5jb2RlZCwgZm9yY2VTYXZl
QXMgfHwgc2F2ZURhdGEuZm9yY2VTYXZlQXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgbGV0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcjsKKyAgICAgICAg
ZmlsZVJlYWRlci5yZWFkQXNEYXRhVVJMKHNhdmVEYXRhLmNvbnRlbnQpOworICAgICAgICBmaWxl
UmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLCAoKSA9PiB7CisgICAgICAgICAgICBs
ZXQgZGF0YVVSTENvbXBvbmVudHMgPSBwYXJzZURhdGFVUkwoZmlsZVJlYWRlci5yZXN1bHQpOwor
CisgICAgICAgICAgICBjb25zdCBiYXNlNjRFbmNvZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIElu
c3BlY3RvckZyb250ZW5kSG9zdC5zYXZlKHN1Z2dlc3RlZE5hbWUsIGRhdGFVUkxDb21wb25lbnRz
LmRhdGEsIGJhc2U2NEVuY29kZWQsIGZvcmNlU2F2ZUFzIHx8IHNhdmVEYXRhLmZvcmNlU2F2ZUFz
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIGltcG9ydChjYWxsYmFjaykKKyAg
ICB7CisgICAgICAgIGxldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bnB1dCIpOworICAgICAgICBpbnB1dEVsZW1lbnQudHlwZSA9ICJmaWxlIjsKKyAgICAgICAgaW5w
dXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIChldmVudCkgPT4geworICAgICAg
ICAgICAgaWYgKCFpbnB1dEVsZW1lbnQuZmlsZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAg
Y2FsbGJhY2sobnVsbCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLmdldFRleHQoaW5wdXRFbGVtZW50LmZpbGVz
WzBdLCBjYWxsYmFjayk7CisgICAgICAgIH0pOworICAgICAgICBpbnB1dEVsZW1lbnQuY2xpY2so
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZ2V0VGV4dChmaWxlLCBjYWxsYmFjaykKKyAgICB7CiAg
ICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcjsKICAgICAgICAgcmVhZGVyLmFkZEV2
ZW50TGlzdGVuZXIoImxvYWRlbmQiLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgIGNhbGxiYWNr
KHJlYWRlci5yZXN1bHQsIGZpbGUubmFtZSk7CiAgICAgICAgIH0pOwogICAgICAgICByZWFkZXIu
cmVhZEFzVGV4dChmaWxlKTsKLSAgICB9KTsKLSAgICBpbnB1dEVsZW1lbnQuY2xpY2soKTsKKyAg
ICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9N
YWluLmpzCmluZGV4IGQ1MTk0ZTU5OWQyLi4xMDNhODUyY2JkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMTUyMiw3ICsxNTIy
LDcgQEAgV0kuX2NvbnRleHRNZW51UmVxdWVzdGVkID0gZnVuY3Rpb24oZXZlbnQpCiAKICAgICAg
ICAgcHJvdG9jb2xTdWJNZW51LmFwcGVuZEl0ZW0oV0kudW5sb2NhbGl6ZWRTdHJpbmcoIkV4cG9y
dCBUcmFjZVx1MjAyNiIpLCAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBmb3JjZVNhdmVBcyA9
IHRydWU7Ci0gICAgICAgICAgICBXSS5zYXZlRGF0YVRvRmlsZShJbnNwZWN0b3JCYWNrZW5kLmFj
dGl2ZVRyYWNlci50cmFjZS5zYXZlRGF0YSwgZm9yY2VTYXZlQXMpOworICAgICAgICAgICAgV0ku
RmlsZVV0aWxpdGllcy5zYXZlKEluc3BlY3RvckJhY2tlbmQuYWN0aXZlVHJhY2VyLnRyYWNlLnNh
dmVEYXRhLCBmb3JjZVNhdmVBcyk7CiAgICAgICAgIH0sICFpc0NhcHR1cmluZ1RyYWZmaWMpOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbnN0IG9ubHlFeGlzdGluZyA9IHRydWU7CkBAIC0xOTg5
LDcgKzE5ODksNyBAQCBXSS5fc2F2ZSA9IGZ1bmN0aW9uKGV2ZW50KQogICAgIGlmICghY29udGVu
dFZpZXcgfHwgIWNvbnRlbnRWaWV3LnN1cHBvcnRzU2F2ZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgV0kuc2F2ZURhdGFUb0ZpbGUoY29udGVudFZpZXcuc2F2ZURhdGEpOworICAgIFdJLkZpbGVV
dGlsaXRpZXMuc2F2ZShjb250ZW50Vmlldy5zYXZlRGF0YSk7CiB9OwogCiBXSS5fc2F2ZUFzID0g
ZnVuY3Rpb24oZXZlbnQpCkBAIC0xOTk4LDcgKzE5OTgsNyBAQCBXSS5fc2F2ZUFzID0gZnVuY3Rp
b24oZXZlbnQpCiAgICAgaWYgKCFjb250ZW50VmlldyB8fCAhY29udGVudFZpZXcuc3VwcG9ydHNT
YXZlKQogICAgICAgICByZXR1cm47CiAKLSAgICBXSS5zYXZlRGF0YVRvRmlsZShjb250ZW50Vmll
dy5zYXZlRGF0YSwgdHJ1ZSk7CisgICAgV0kuRmlsZVV0aWxpdGllcy5zYXZlKGNvbnRlbnRWaWV3
LnNhdmVEYXRhLCB0cnVlKTsKIH07CiAKIFdJLl9jbGVhciA9IGZ1bmN0aW9uKGV2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
QXVkaXRNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpzCmluZGV4IGRmNzNiNTczMjI5Li5kOGU0YjFiNzNlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvQXVkaXRNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcwpAQCAtOTMsMzUgKzkzLDM1IEBAIFdJLkF1
ZGl0TWFuYWdlciA9IGNsYXNzIEF1ZGl0TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICB0aGlzLl9ydW5uaW5nU3RhdGUgPSBXSS5BdWRpdE1hbmFnZXIuUnVubmluZ1N0YXRlLlN0b3Bw
aW5nOwogICAgIH0KIAotICAgIGltcG9ydCgpCisgICAgYXN5bmMgcHJvY2Vzc0ltcG9ydGVkRmls
ZShkYXRhLCBmaWxlbmFtZSkKICAgICB7Ci0gICAgICAgIFdJLmxvYWREYXRhRnJvbUZpbGUoYXN5
bmMgKGRhdGEsIGZpbGVuYW1lKSA9PiB7Ci0gICAgICAgICAgICBpZiAoIWRhdGEpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgICAgIGxldCBwYXlsb2FkID0gbnVsbDsKLSAgICAgICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgICAgICAgcGF5bG9hZCA9IEpTT04ucGFyc2UoZGF0YSk7Ci0gICAgICAgICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAgV0kuQXVkaXRNYW5hZ2VyLnN5bnRoZXNpemVF
cnJvcihlKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9CisgICAgICAg
IGxldCBwYXlsb2FkID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHBheWxvYWQg
PSBKU09OLnBhcnNlKGRhdGEpOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICBX
SS5BdWRpdE1hbmFnZXIuc3ludGhlc2l6ZUVycm9yKGUpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CiAKLSAgICAgICAgICAgIGxldCBvYmplY3QgPSBhd2FpdCBXSS5BdWRpdFRlc3RH
cm91cC5mcm9tUGF5bG9hZChwYXlsb2FkKSB8fCBhd2FpdCBXSS5BdWRpdFRlc3RDYXNlLmZyb21Q
YXlsb2FkKHBheWxvYWQpOworICAgICAgICBsZXQgb2JqZWN0ID0gYXdhaXQgV0kuQXVkaXRUZXN0
R3JvdXAuZnJvbVBheWxvYWQocGF5bG9hZCkgfHwgYXdhaXQgV0kuQXVkaXRUZXN0Q2FzZS5mcm9t
UGF5bG9hZChwYXlsb2FkKTsKKyAgICAgICAgaWYgKCFvYmplY3QpIHsKKyAgICAgICAgICAgIG9i
amVjdCA9IGF3YWl0IFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0LmZyb21QYXlsb2FkKHBheWxvYWQp
IHx8IGF3YWl0IFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQuZnJvbVBheWxvYWQocGF5bG9hZCk7CiAg
ICAgICAgICAgICBpZiAoIW9iamVjdCkgewotICAgICAgICAgICAgICAgIG9iamVjdCA9IGF3YWl0
IFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0LmZyb21QYXlsb2FkKHBheWxvYWQpIHx8IGF3YWl0IFdJ
LkF1ZGl0VGVzdENhc2VSZXN1bHQuZnJvbVBheWxvYWQocGF5bG9hZCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFvYmplY3QpIHsKLSAgICAgICAgICAgICAgICAgICAgV0kuQXVkaXRNYW5hZ2VyLnN5
bnRoZXNpemVFcnJvcihXSS5VSVN0cmluZygiaW52YWxpZCBKU09OLiIpKTsKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBXSS5B
dWRpdE1hbmFnZXIuc3ludGhlc2l6ZUVycm9yKFdJLlVJU3RyaW5nKCJpbnZhbGlkIEpTT04uIikp
OworICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KKyAgICAgICAgfQogCi0g
ICAgICAgICAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0QmFzZSkgewotICAg
ICAgICAgICAgICAgIHRoaXMuX2FkZFRlc3Qob2JqZWN0KTsKLSAgICAgICAgICAgICAgICBXSS5v
YmplY3RTdG9yZXMuYXVkaXRzLmFkZE9iamVjdChvYmplY3QpOwotICAgICAgICAgICAgfSBlbHNl
IGlmIChvYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RSZXN1bHRCYXNlKQotICAgICAgICAg
ICAgICAgIHRoaXMuX2FkZFJlc3VsdChvYmplY3QpOwotICAgICAgICB9KTsKKyAgICAgICAgaWYg
KG9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEJhc2UpIHsKKyAgICAgICAgICAgIHRoaXMu
X2FkZFRlc3Qob2JqZWN0KTsKKyAgICAgICAgICAgIFdJLm9iamVjdFN0b3Jlcy5hdWRpdHMuYWRk
T2JqZWN0KG9iamVjdCk7CisgICAgICAgIH0gZWxzZSBpZiAob2JqZWN0IGluc3RhbmNlb2YgV0ku
QXVkaXRUZXN0UmVzdWx0QmFzZSkKKyAgICAgICAgICAgIHRoaXMuX2FkZFJlc3VsdChvYmplY3Qp
OworCisgICAgICAgIFdJLnNob3dSZXByZXNlbnRlZE9iamVjdChvYmplY3QpOwogICAgIH0KIAog
ICAgIGV4cG9ydChvYmplY3QpCkBAIC0xMzQsNyArMTM0LDcgQEAgV0kuQXVkaXRNYW5hZ2VyID0g
Y2xhc3MgQXVkaXRNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgbGV0IHVybCA9
ICJ3ZWItaW5zcGVjdG9yOi8vLyIgKyBlbmNvZGVVUkkoZmlsZW5hbWUpICsgIi5qc29uIjsKIAot
ICAgICAgICBXSS5zYXZlRGF0YVRvRmlsZSh7CisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMuc2F2
ZSh7CiAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lm
eShvYmplY3QpLAogICAgICAgICAgICAgZm9yY2VTYXZlQXM6IHRydWUsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5h
Z2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
Q2FudmFzTWFuYWdlci5qcwppbmRleCBmZTU4ZjkxZjJiMS4uYjJlMjZhMWRmZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZh
c01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwpAQCAtNjcsMzUgKzY3LDMzIEBAIFdJLkNhbnZhc01h
bmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJl
dHVybiBBcnJheS5mcm9tKHRoaXMuX3NoYWRlclByb2dyYW1JZGVudGlmaWVyTWFwLnZhbHVlcygp
KTsKICAgICB9CiAKLSAgICBpbXBvcnRSZWNvcmRpbmcoKQorICAgIHByb2Nlc3NJbXBvcnRlZEZp
bGUoZGF0YSwgZmlsZW5hbWUpCiAgICAgewotICAgICAgICBXSS5sb2FkRGF0YUZyb21GaWxlKChk
YXRhLCBmaWxlbmFtZSkgPT4gewotICAgICAgICAgICAgaWYgKCFkYXRhKQotICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgICAgICBsZXQgcGF5bG9hZCA9IG51bGw7Ci0gICAgICAgICAgICB0cnkgewotICAgICAg
ICAgICAgICAgIHBheWxvYWQgPSBKU09OLnBhcnNlKGRhdGEpOwotICAgICAgICAgICAgfSBjYXRj
aCAoZSkgewotICAgICAgICAgICAgICAgIFdJLlJlY29yZGluZy5zeW50aGVzaXplRXJyb3IoZSk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQorICAgICAgICBsZXQgcGF5
bG9hZCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYXlsb2FkID0gSlNPTi5w
YXJzZShkYXRhKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgV0kuUmVjb3Jk
aW5nLnN5bnRoZXNpemVFcnJvcihlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
Ci0gICAgICAgICAgICBsZXQgcmVjb3JkaW5nID0gV0kuUmVjb3JkaW5nLmZyb21QYXlsb2FkKHBh
eWxvYWQpOwotICAgICAgICAgICAgaWYgKCFyZWNvcmRpbmcpIHsKLSAgICAgICAgICAgICAgICBX
SS5SZWNvcmRpbmcuc3ludGhlc2l6ZUVycm9yKFdJLlVJU3RyaW5nKCJ1bnN1cHBvcnRlZCB2ZXJz
aW9uLiIpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9CisgICAgICAg
IGxldCByZWNvcmRpbmcgPSBXSS5SZWNvcmRpbmcuZnJvbVBheWxvYWQocGF5bG9hZCk7CisgICAg
ICAgIGlmICghcmVjb3JkaW5nKSB7CisgICAgICAgICAgICBXSS5SZWNvcmRpbmcuc3ludGhlc2l6
ZUVycm9yKFdJLlVJU3RyaW5nKCJ1bnN1cHBvcnRlZCB2ZXJzaW9uLiIpKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQogCi0gICAgICAgICAgICBsZXQgZXh0ZW5zaW9uU3RhcnQgPSBm
aWxlbmFtZS5sYXN0SW5kZXhPZigiLiIpOwotICAgICAgICAgICAgaWYgKGV4dGVuc2lvblN0YXJ0
ICE9PSAtMSkKLSAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnN1YnN0cmluZygw
LCBleHRlbnNpb25TdGFydCk7Ci0gICAgICAgICAgICByZWNvcmRpbmcuY3JlYXRlRGlzcGxheU5h
bWUoZmlsZW5hbWUpOworICAgICAgICBsZXQgZXh0ZW5zaW9uU3RhcnQgPSBmaWxlbmFtZS5sYXN0
SW5kZXhPZigiLiIpOworICAgICAgICBpZiAoZXh0ZW5zaW9uU3RhcnQgIT09IC0xKQorICAgICAg
ICAgICAgZmlsZW5hbWUgPSBmaWxlbmFtZS5zdWJzdHJpbmcoMCwgZXh0ZW5zaW9uU3RhcnQpOwor
ICAgICAgICByZWNvcmRpbmcuY3JlYXRlRGlzcGxheU5hbWUoZmlsZW5hbWUpOwogCi0gICAgICAg
ICAgICB0aGlzLl9pbXBvcnRlZFJlY29yZGluZ3MuYWRkKHJlY29yZGluZyk7CisgICAgICAgIHRo
aXMuX2ltcG9ydGVkUmVjb3JkaW5ncy5hZGQocmVjb3JkaW5nKTsKIAotICAgICAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRp
bmdJbXBvcnRlZCwge3JlY29yZGluZ30pOwotICAgICAgICB9KTsKKyAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdJbXBv
cnRlZCwge3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyOiB0cnVlfSk7CiAgICAgfQogCiAgICAg
c2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KGVuYWJsZWQsIGNvdW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXROYXZp
Z2F0aW9uU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCmluZGV4IDU3NmJmYjc2NTU0
Li40OTA5NGI2ZDYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQ
YW5lbC5qcwpAQCAtNDEsOSArNDEsNyBAQCBXSS5BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwg
PSBjbGFzcyBBdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYQogCiAgICAg
ICAgIGxldCBpbXBvcnROYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRl
bSgiaW1wb3J0LWF1ZGl0IiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0ltcG9ydC5z
dmciLCAxNSwgMTUpOwogICAgICAgICBpbXBvcnROYXZpZ2F0aW9uSXRlbS5idXR0b25TdHlsZSA9
IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4dDsKLSAgICAgICAgaW1w
b3J0TmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRl
bS5FdmVudC5DbGlja2VkLCAoKSA9PiB7Ci0gICAgICAgICAgICBXSS5hdWRpdE1hbmFnZXIuaW1w
b3J0KCk7Ci0gICAgICAgIH0pOworICAgICAgICBpbXBvcnROYXZpZ2F0aW9uSXRlbS5hZGRFdmVu
dExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hh
bmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CiAKICAgICAgICAg
bGV0IGltcG9ydEhlbHBFbGVtZW50ID0gV0kuY3JlYXRlTmF2aWdhdGlvbkl0ZW1IZWxwKFdJLlVJ
U3RyaW5nKCJQcmVzcyAlcyB0byBpbXBvcnQgYSB0ZXN0IG9yIHJlc3VsdCBmaWxlIiksIGltcG9y
dE5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgY29udGVudFBsYWNlaG9sZGVyLmFwcGVuZENoaWxk
KGltcG9ydEhlbHBFbGVtZW50KTsKQEAgLTE5NSw2ICsxOTMsOCBAQCBXSS5BdWRpdE5hdmlnYXRp
b25TaWRlYmFyUGFuZWwgPSBjbGFzcyBBdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5k
cyBXSS5OYQogCiAgICAgX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZChl
dmVudCkKICAgICB7Ci0gICAgICAgIFdJLmF1ZGl0TWFuYWdlci5pbXBvcnQoKTsKKyAgICAgICAg
V0kuRmlsZVV0aWxpdGllcy5pbXBvcnQoKGRhdGEsIGZpbGVuYW1lKSA9PiB7CisgICAgICAgICAg
ICBXSS5hdWRpdE1hbmFnZXIucHJvY2Vzc0ltcG9ydGVkRmlsZShkYXRhLCBmaWxlbmFtZSk7Cisg
ICAgICAgIH0pOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRUYWJDb250ZW50Vmlldy5qcwppbmRl
eCA4ZjU0YjE3MzEzZS4uY2Q4NWU1OGIxOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VGFiQ29udGVudFZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRUYWJDb250ZW50Vmll
dy5qcwpAQCAtMzIsNiArMzIsOSBAQCBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3ID0gY2xhc3MgQXVk
aXRUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGFiQwogICAgICAgICB0
aGlzLl9zdGFydFN0b3BTaG9ydGN1dCA9IG5ldyBXSS5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdJ
LktleWJvYXJkU2hvcnRjdXQuS2V5LlNwYWNlLCB0aGlzLl9oYW5kbGVTcGFjZS5iaW5kKHRoaXMp
KTsKICAgICAgICAgdGhpcy5fc3RhcnRTdG9wU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVm
YXVsdCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zdGFydFN0b3BTaG9ydGN1dC5kaXNhYmxlZCA9
IHRydWU7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVy
IiwgdGhpcy5faGFuZGxlRHJhZ092ZXIuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgdGhpcy5faGFuZGxlRHJvcC5iaW5kKHRoaXMpKTsK
ICAgICB9CiAKICAgICAvLyBTdGF0aWMKQEAgLTEwOCw2ICsxMTEsMjYgQEAgV0kuQXVkaXRUYWJD
b250ZW50VmlldyA9IGNsYXNzIEF1ZGl0VGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50
QnJvd3NlclRhYkMKIAogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgIH0KKwor
ICAgIF9oYW5kbGVEcmFnT3ZlcihldmVudCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC5kYXRh
VHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoIkZpbGVzIikpCisgICAgICAgICAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOworICAgIH0KKworICAgIF9oYW5kbGVEcm9wKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgaWYgKCFldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMgfHwgIWV2ZW50LmRhdGFUcmFuc2Zl
ci5maWxlcy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgV0kuRmlsZVV0
aWxpdGllcy5nZXRUZXh0KGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXSwgKGRhdGEsIGZpbGVu
YW1lKSA9PiB7CisgICAgICAgICAgICBXSS5hdWRpdE1hbmFnZXIucHJvY2Vzc0ltcG9ydGVkRmls
ZShkYXRhLCBmaWxlbmFtZSk7CisKKyAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5jbGVh
ckRhdGEoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
KyAgICB9CiB9OwogCiBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3LlR5cGUgPSAiYXVkaXQiOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFz
T3ZlcnZpZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKaW5kZXggMmE3NTBjMTIwMjQu
LjZmNWZlOGUyOWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcu
anMKQEAgLTM2LDcgKzM2LDYgQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNz
IENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKIAogICAgICAgICBs
ZXQgaW1wb3J0TmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImlt
cG9ydC1yZWNvcmRpbmciLCBXSS5VSVN0cmluZygiSW1wb3J0IiksICJJbWFnZXMvSW1wb3J0LnN2
ZyIsIDE1LCAxNSk7CiAgICAgICAgIGltcG9ydE5hdmlnYXRpb25JdGVtLmJ1dHRvblN0eWxlID0g
V0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRUZXh0OwotICAgICAgICBpbXBv
cnROYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVt
LkV2ZW50LkNsaWNrZWQsICgpID0+IHsgV0kuY2FudmFzTWFuYWdlci5pbXBvcnRSZWNvcmRpbmco
KTsgfSk7CiAKICAgICAgICAgbGV0IGltcG9ydEhlbHBFbGVtZW50ID0gV0kuY3JlYXRlTmF2aWdh
dGlvbkl0ZW1IZWxwKFdJLlVJU3RyaW5nKCJQcmVzcyAlcyB0byBsb2FkIGEgcmVjb3JkaW5nIGZy
b20gZmlsZS4iKSwgaW1wb3J0TmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICBjb250ZW50UGxhY2Vo
b2xkZXIuYXBwZW5kQ2hpbGQoaW1wb3J0SGVscEVsZW1lbnQpOwpAQCAtNjYsNyArNjUsNiBAQCBX
SS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50
VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0
aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiaW1wb3J0LXJlY29yZGluZyIs
IFdJLlVJU3RyaW5nKCJJbXBvcnQiKSwgIkltYWdlcy9JbXBvcnQuc3ZnIiwgMTUsIDE1KTsKICAg
ICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9vbFRpcCA9IFdJLlVJU3Ry
aW5nKCJJbXBvcnQgcmVjb3JkaW5nIGZyb20gZmlsZSIpOwogICAgICAgICB0aGlzLl9pbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVt
LlN0eWxlLkltYWdlQW5kVGV4dDsKLSAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlj
a2VkLCAoKSA9PiB7IFdJLmNhbnZhc01hbmFnZXIuaW1wb3J0UmVjb3JkaW5nKCk7IH0pOwogCiAg
ICAgICAgIHRoaXMuX3JlZnJlc2hCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25O
YXZpZ2F0aW9uSXRlbSgicmVmcmVzaC1hbGwiLCBXSS5VSVN0cmluZygiUmVmcmVzaCBhbGwiKSwg
IkltYWdlcy9SZWxvYWRGdWxsLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3JlZnJlc2hC
dXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gZmFsc2U7CkBAIC03Niw2ICs3NCw5IEBAIFdJ
LkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgICAgIHRoaXMuX3Nob3dHcmlkQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uYWN0aXZhdGVkID0gISFXSS5zZXR0aW5ncy5zaG93SW1hZ2VHcmlkLnZhbHVlOwog
ICAgICAgICB0aGlzLl9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSBmYWxz
ZTsKICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExp
c3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX3Nob3dH
cmlkQnV0dG9uQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgaW1wb3J0TmF2aWdhdGlvbkl0ZW0u
YWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0
aGlzLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQsIHRoaXMpOworICAg
ICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJ
LkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1
dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CiAgICAgfQogCiAgICAgLy8gUHVibGlj
CkBAIC0yNDksNCArMjUwLDEwIEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgPSBjbGFz
cyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAgICAgewogICAg
ICAgICB0aGlzLl9yZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnRJbnB1dEVsZW1lbnQudmFs
dWUgPSBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQudmFs
dWU7CiAgICAgfQorCisgICAgX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tl
ZChldmVudCkgeworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLmltcG9ydCgoZGF0YSwgZmlsZW5h
bWUpID0+IHsKKyAgICAgICAgICAgIFdJLmF1ZGl0TWFuYWdlci5wcm9jZXNzSW1wb3J0ZWRGaWxl
KGRhdGEsIGZpbGVuYW1lKTsKKyAgICAgICAgfSk7CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5l
bC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1Np
ZGViYXJQYW5lbC5qcwppbmRleCA4MmU1YzliYjJjMC4uZDg1OWYyNThmNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNTaWRlYmFyUGFuZWwuanMKQEAgLTQwLDkgKzQwLDE5IEBAIFdJLkNhbnZhc1NpZGViYXJQ
YW5lbCA9IGNsYXNzIENhbnZhc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRl
YmFyUGFuCiAgICAgICAgIGNvbnN0IGFsdFRvb2xUaXAgPSBXSS5VSVN0cmluZygiU3RvcCByZWNv
cmRpbmcgY2FudmFzIGFjdGlvbnMiKTsKICAgICAgICAgdGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBuZXcgV0kuVG9nZ2xlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlY29yZC1zdGFy
dC1zdG9wIiwgdG9vbFRpcCwgYWx0VG9vbFRpcCwgIkltYWdlcy9SZWNvcmQuc3ZnIiwgIkltYWdl
cy9TdG9wLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3JlY29yZEJ1dHRvbk5hdmlnYXRp
b25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uYnV0dG9uU3R5bGUgPSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFn
ZUFuZFRleHQ7CisgICAgICAgIHRoaXMuX3JlY29yZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmxhYmVs
ID0gV0kuVUlTdHJpbmcoIlN0YXJ0Iik7CiAgICAgICAgIHRoaXMuX3JlY29yZEJ1dHRvbk5hdmln
YXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQu
Q2xpY2tlZCwgdGhpcy5fdG9nZ2xlUmVjb3JkaW5nLCB0aGlzKTsKICAgICAgICAgdGhpcy5fbmF2
aWdhdGlvbkJhci5hZGROYXZpZ2F0aW9uSXRlbSh0aGlzLl9yZWNvcmRCdXR0b25OYXZpZ2F0aW9u
SXRlbSk7CiAKKyAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkJhci5hZGROYXZpZ2F0aW9uSXRlbShu
ZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtKTsKKworICAgICAgICBsZXQgaW1wb3J0QnV0dG9u
TmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImF1ZGl0LWltcG9y
dCIsIFdJLlVJU3RyaW5nKCJJbXBvcnQiKSwgIkltYWdlcy9JbXBvcnQuc3ZnIiwgMTUsIDE1KTsK
KyAgICAgICAgaW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYnV0dG9uU3R5bGUgPSBXSS5CdXR0
b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFnZUFuZFRleHQ7CisgICAgICAgIGltcG9ydEJ1dHRv
bk5hdmlnYXRpb25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmlnYXRpb25JdGVtLlZp
c2liaWxpdHlQcmlvcml0eS5Mb3c7CisgICAgICAgIGltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVt
LmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwg
dGhpcy5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkLCB0aGlzKTsKKyAg
ICAgICAgdGhpcy5fbmF2aWdhdGlvbkJhci5hZGROYXZpZ2F0aW9uSXRlbShpbXBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbSk7CisKICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX25hdmlnYXRp
b25CYXIpOwogCiAgICAgICAgIGNvbnN0IHN1cHByZXNzRmlsdGVyaW5nID0gdHJ1ZTsKQEAgLTI5
Nyw2ICszMDcsMTMgQEAgV0kuQ2FudmFzU2lkZWJhclBhbmVsID0gY2xhc3MgQ2FudmFzU2lkZWJh
clBhbmVsIGV4dGVuZHMgV0kuTmF2aWdhdGlvblNpZGViYXJQYW4KICAgICAgICAgfQogICAgIH0K
IAorICAgIF9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQoZXZlbnQpCisg
ICAgeworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLmltcG9ydCgoZGF0YSwgZmlsZW5hbWUpID0+
IHsKKyAgICAgICAgICAgIFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0ltcG9ydGVkRmlsZShkYXRh
LCBmaWxlbmFtZSk7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIF90cmVlT3V0bGluZVNlbGVj
dGlvbkRpZENoYW5nZShldmVudCkKICAgICB7CiAgICAgICAgIGxldCB0cmVlRWxlbWVudCA9IGV2
ZW50LmRhdGEuc2VsZWN0ZWRFbGVtZW50OwpAQCAtMzU5LDE0ICszNzYsMTQgQEAgV0kuQ2FudmFz
U2lkZWJhclBhbmVsID0gY2xhc3MgQ2FudmFzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuTmF2aWdh
dGlvblNpZGViYXJQYW4KICAgICB7CiAgICAgICAgIHRoaXMuX3JlY29yZGluZ1RyZWVPdXRsaW5l
LnJlbW92ZUNoaWxkcmVuKCk7CiAKLSAgICAgICAgaWYgKCF0aGlzLl9yZWNvcmRpbmcpIHsKLSAg
ICAgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmdQcm9jZXNzaW5nT3B0aW9uc0NvbnRhaW5lcikg
ewotICAgICAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZ1Byb2Nlc3NpbmdPcHRpb25zQ29udGFp
bmVyLnJlbW92ZSgpOwotICAgICAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZ1Byb2Nlc3NpbmdP
cHRpb25zQ29udGFpbmVyID0gbnVsbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZ1Byb2Nlc3NpbmdPcHRpb25zQ29udGFpbmVy
KSB7CisgICAgICAgICAgICB0aGlzLl9yZWNvcmRpbmdQcm9jZXNzaW5nT3B0aW9uc0NvbnRhaW5l
ci5yZW1vdmUoKTsKKyAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZ1Byb2Nlc3NpbmdPcHRpb25z
Q29udGFpbmVyID0gbnVsbDsKICAgICAgICAgfQogCisgICAgICAgIGlmICghdGhpcy5fcmVjb3Jk
aW5nKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGlmICghdGhpcy5fcmVjb3JkaW5n
LnJlYWR5KSB7CiAgICAgICAgICAgICBpZiAoIXRoaXMuX3JlY29yZGluZy5wcm9jZXNzaW5nKQog
ICAgICAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZy5zdGFydFByb2Nlc3NpbmcoKTsKQEAgLTQ1
Miw2ICs0NjksNyBAQCBXSS5DYW52YXNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDYW52YXNTaWRlYmFy
UGFuZWwgZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhclBhbgogICAgICAgICB9CiAKICAgICAg
ICAgdGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9nZ2xlZCA9IHRoaXMuX2NhbnZh
cy5yZWNvcmRpbmdBY3RpdmU7CisgICAgICAgIHRoaXMuX3JlY29yZEJ1dHRvbk5hdmlnYXRpb25J
dGVtLmxhYmVsID0gdGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9nZ2xlZCA/IFdJ
LlVJU3RyaW5nKCJTdG9wIikgOiBXSS5VSVN0cmluZygiU3RhcnQiKTsKICAgICB9CiAKICAgICBf
dXBkYXRlUmVjb3JkaW5nU2NvcGVCYXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5q
cwppbmRleCA5Mjc1ZTcyYTEyMS4uYmU4Y2Y1M2ZhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNv
bnRlbnRWaWV3LmpzCkBAIC01NSw2ICs1NSw5IEBAIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3ID0g
Y2xhc3MgQ2FudmFzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhCiAg
ICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQgPSBuZXcgV0kuS2V5Ym9hcmRT
aG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0LCBXSS5LZXlib2FyZFNo
b3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0aGlzKSk7CiAgICAgICAg
IHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuaW1wbGljaXRseVByZXZlbnRzRGVmYXVs
dCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFtZVNob3J0Y3V0LmRpc2Fi
bGVkID0gdHJ1ZTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJh
Z292ZXIiLCB0aGlzLl9oYW5kbGVEcmFnT3Zlci5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5l
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCB0aGlzLl9oYW5kbGVEcm9wLmJpbmQodGhp
cykpOwogICAgIH0KIAogICAgIHN0YXRpYyB0YWJJbmZvKCkKQEAgLTE4MCw4ICsxODMsMTIgQEAg
V0kuQ2FudmFzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNUYWJDb250ZW50VmlldyBleHRl
bmRzIFdJLkNvbnRlbnRCcm93c2VyVGEKICAgICAgICAgdGhpcy5fb3ZlcnZpZXdUcmVlRWxlbWVu
dC5hcHBlbmRDaGlsZChuZXcgV0kuQ2FudmFzVHJlZUVsZW1lbnQoY2FudmFzKSk7CiAgICAgICAg
IHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uYWRkKGNhbnZhcyk7CiAKKyAgICAgICAgY29uc3Qgb3B0
aW9ucyA9IHsKKyAgICAgICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGluZzogdHJ1ZSwKKyAgICAg
ICAgfTsKKwogICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2FudmFzLnJlY29yZGluZ0Nv
bGxlY3Rpb24pCi0gICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCB7c3Vw
cHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlfSk7CisgICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRp
bmcocmVjb3JkaW5nLCBvcHRpb25zKTsKICAgICB9CiAKICAgICBfcmVtb3ZlQ2FudmFzKGNhbnZh
cykKQEAgLTI1MSw5ICsyNTgsMTMgQEAgV0kuQ2FudmFzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBD
YW52YXNUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGEKICAgICAgICAg
aWYgKCFyZWNvcmRpbmcpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fYWRk
UmVjb3JkaW5nKHJlY29yZGluZywgewotICAgICAgICAgICAgc3VwcHJlc3NTaG93UmVjb3JkaW5n
OiAhaW5pdGlhdGVkQnlVc2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudFJlcHJlc2Vu
dGVkT2JqZWN0cy5zb21lKChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpLAotICAgICAgICB9KTsKKyAgICAgICAgbGV0IG9wdGlv
bnMgPSB7fTsKKworICAgICAgICAvLyBBbHdheXMgc2hvdyBpbXBvcnRlZCByZWNvcmRpbmdzLgor
ICAgICAgICBpZiAocmVjb3JkaW5nLnNvdXJjZSkKKyAgICAgICAgICAgIG9wdGlvbnMuc3VwcHJl
c3NTaG93UmVjb3JkaW5nID0gIWluaXRpYXRlZEJ5VXNlciB8fCB0aGlzLmNvbnRlbnRCcm93c2Vy
LmN1cnJlbnRSZXByZXNlbnRlZE9iamVjdHMuc29tZSgocmVwcmVzZW50ZWRPYmplY3QpID0+IHJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nKTsKKworICAgICAgICB0aGlz
Ll9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKICAgICB9CiAKICAgICBfaGFuZGxl
U3BhY2UoZXZlbnQpCkBAIC0yNzcsNiArMjg4LDI2IEBAIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3
ID0gY2xhc3MgQ2FudmFzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRh
CiAKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICB9CisKKyAgICBfaGFuZGxl
RHJhZ092ZXIoZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyLnR5
cGVzLmluY2x1ZGVzKCJGaWxlcyIpKQorICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQo
KTsKKyAgICB9CisKKyAgICBfaGFuZGxlRHJvcChldmVudCkKKyAgICB7CisgICAgICAgIGlmICgh
ZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzIHx8ICFldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVu
Z3RoKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMuZ2V0
VGV4dChldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF0sIChkYXRhLCBmaWxlbmFtZSkgPT4gewor
ICAgICAgICAgICAgV0kuY2FudmFzTWFuYWdlci5wcm9jZXNzSW1wb3J0ZWRGaWxlKGRhdGEsIGZp
bGVuYW1lKTsKKworICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmNsZWFyRGF0YSgpOwor
ICAgICAgICB9KTsKKworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0KIH07
CiAKIFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LlR5cGUgPSAiY2FudmFzIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRp
bGl0aWVzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29u
dGV4dE1lbnVVdGlsaXRpZXMuanMKaW5kZXggZDM2NmE3NmExYTIuLmRlYzNjZDljMzdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0
TWVudVV0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qcwpAQCAtNTUsNyArNTUsNyBAQCBXSS5hcHBl
bmRDb250ZXh0TWVudUl0ZW1zRm9yU291cmNlQ29kZSA9IGZ1bmN0aW9uKGNvbnRleHRNZW51LCBz
b3VyY2VDb2RlT3JMb2NhdAogICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmco
IlNhdmUgRmlsZSIpLCAoKSA9PiB7CiAgICAgICAgIHNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQo
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGZvcmNlU2F2ZUFzID0gdHJ1ZTsKLSAg
ICAgICAgICAgIFdJLnNhdmVEYXRhVG9GaWxlKHsKKyAgICAgICAgICAgIFdJLkZpbGVVdGlsaXRp
ZXMuc2F2ZSh7CiAgICAgICAgICAgICAgICAgdXJsOiBzb3VyY2VDb2RlLnVybCB8fCAiIiwKICAg
ICAgICAgICAgICAgICBjb250ZW50OiBzb3VyY2VDb2RlLmNvbnRlbnQKICAgICAgICAgICAgIH0s
IGZvcmNlU2F2ZUFzKTsKQEAgLTIzOCw3ICsyMzgsNyBAQCBXSS5hcHBlbmRDb250ZXh0TWVudUl0
ZW1zRm9yRE9NTm9kZSA9IGZ1bmN0aW9uKGNvbnRleHRNZW51LCBkb21Ob2RlLCBvcHRpb25zID0g
ewogICAgICAgICAgICAgICAgICAgICBOdW1iZXIuemVyb1BhZChkYXRlLmdldFNlY29uZHMoKSwg
MiksCiAgICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBX
SS5VSVN0cmluZygiU2NyZWVuIFNob3QgJXMtJXMtJXMgYXQgJXMuJXMuJXMiKS5mb3JtYXQoLi4u
dmFsdWVzKTsKLSAgICAgICAgICAgICAgICBXSS5zYXZlRGF0YVRvRmlsZSh7CisgICAgICAgICAg
ICAgICAgV0kuRmlsZVV0aWxpdGllcy5zYXZlKHsKICAgICAgICAgICAgICAgICAgICAgdXJsOiBl
bmNvZGVVUkkoYHdlYi1pbnNwZWN0b3I6Ly8vJHtmaWxlbmFtZX0ucG5nYCksCiAgICAgICAgICAg
ICAgICAgICAgIGNvbnRlbnQ6IHBhcnNlRGF0YVVSTChkYXRhVVJMKS5kYXRhLAogICAgICAgICAg
ICAgICAgICAgICBiYXNlNjRFbmNvZGVkOiB0cnVlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9nQ29udGVudFZpZXcuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcwppbmRl
eCA2NDgwODE4NjEyZC4uMWNhY2E1YzRkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCkBAIC00
NzIsNyArNDcyLDcgQEAgV0kuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0
ZW0oV0kuVUlTdHJpbmcoIlNhdmUgU2VsZWN0ZWQiKSwgKCkgPT4gewogICAgICAgICAgICAgICAg
IGNvbnN0IGZvcmNlU2F2ZUFzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBXSS5zYXZlRGF0YVRv
RmlsZSh7CisgICAgICAgICAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5zYXZlKHsKICAgICAgICAg
ICAgICAgICAgICAgdXJsOiAid2ViLWluc3BlY3RvcjovLy9Db25zb2xlLnR4dCIsCiAgICAgICAg
ICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX2Zvcm1hdE1lc3NhZ2VzQXNEYXRhKHRydWUpLAog
ICAgICAgICAgICAgICAgIH0sIGZvcmNlU2F2ZUFzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUYWJsZUNvbnRlbnRWaWV3Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RhYmxl
Q29udGVudFZpZXcuanMKaW5kZXggOGQ5ZGNiZTUzYWYuLmMxZTYzNzYzOGZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGFibGVD
b250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9OZXR3b3JrVGFibGVDb250ZW50Vmlldy5qcwpAQCAtMTg3MCw3ICsxODcwLDcgQEAgV0ku
TmV0d29ya1RhYmxlQ29udGVudFZpZXcgPSBjbGFzcyBOZXR3b3JrVGFibGVDb250ZW50VmlldyBl
eHRlbmRzIFdJLkNvbnRlbnRWaWUKICAgICAgICAgICAgIGxldCBtYWluRnJhbWUgPSBXSS5uZXR3
b3JrTWFuYWdlci5tYWluRnJhbWU7CiAgICAgICAgICAgICBsZXQgYXJjaGl2ZU5hbWUgPSBtYWlu
RnJhbWUubWFpblJlc291cmNlLnVybENvbXBvbmVudHMuaG9zdCB8fCBtYWluRnJhbWUubWFpblJl
c291cmNlLmRpc3BsYXlOYW1lIHx8ICJBcmNoaXZlIjsKICAgICAgICAgICAgIGxldCB1cmwgPSAi
d2ViLWluc3BlY3RvcjovLy8iICsgZW5jb2RlVVJJKGFyY2hpdmVOYW1lKSArICIuaGFyIjsKLSAg
ICAgICAgICAgIFdJLnNhdmVEYXRhVG9GaWxlKHsKKyAgICAgICAgICAgIFdJLkZpbGVVdGlsaXRp
ZXMuc2F2ZSh7CiAgICAgICAgICAgICAgICAgdXJsLAogICAgICAgICAgICAgICAgIGNvbnRlbnQ6
IEpTT04uc3RyaW5naWZ5KGhhciwgbnVsbCwgMiksCiAgICAgICAgICAgICAgICAgZm9yY2VTYXZl
QXM6IHRydWUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmpzCmluZGV4IDYxOThkNTEy
NzFjLi41OTYyNDJkNDc2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuanMKQEAg
LTE4Myw3ICsxODMsNyBAQCBXSS5SZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFJlY29yZGlu
Z0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgbGV0IGZpbGVuYW1l
ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5kaXNwbGF5TmFtZTsKICAgICAgICAgbGV0IHVybCA9
ICJ3ZWItaW5zcGVjdG9yOi8vLyIgKyBlbmNvZGVVUkkoZmlsZW5hbWUpICsgIi5qc29uIjsKIAot
ICAgICAgICBXSS5zYXZlRGF0YVRvRmlsZSh7CisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMuc2F2
ZSh7CiAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lm
eSh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnRvSlNPTigpKSwKICAgICAgICAgICAgIGZvcmNlU2F2
ZUFzOiB0cnVlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVE
ZWNsYXJhdGlvblNlY3Rpb24uanMKaW5kZXggZjkwNDFjZjU4OTEuLjEyMGY3ZmFjOGVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRz
aGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24uanMKQEAgLTQ1Niw3ICs0NTYsNyBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFy
YXRpb25TZWN0aW9uID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uUwogICAg
ICAgICAgICAgdXJsID0gc291cmNlQ29kZS51cmw7CiAKICAgICAgICAgY29uc3Qgc2F2ZUFzID0g
ZXZlbnQuc2hpZnRLZXk7Ci0gICAgICAgIFdJLnNhdmVEYXRhVG9GaWxlKHt1cmw6IHVybCwgY29u
dGVudDogc291cmNlQ29kZS5jb250ZW50fSwgc2F2ZUFzKTsKKyAgICAgICAgV0kuRmlsZVV0aWxp
dGllcy5zYXZlKHt1cmw6IHVybCwgY29udGVudDogc291cmNlQ29kZS5jb250ZW50fSwgc2F2ZUFz
KTsKICAgICB9CiAKICAgICBfaGFuZGxlTW91c2VEb3duKGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354783</attachid>
            <date>2018-11-14 01:36:04 -0800</date>
            <delta_ts>2018-11-14 14:01:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191566-20181114013603.patch</filename>
            <type>text/plain</type>
            <size>34583</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGM0MTk4YWU2NGU1ODRjNWM0MmEwNzczMGJiZmNk
ZmI3ZDIxMWM2ZjQuLjA4NmFiMmYwNjM3N2Y4ODNmNTgwMGIzMDVmZjBiMjgyMzgwYjUyZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE4LTExLTE0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgZHJhZytkcm9wIGZvciBpbXBvcnRpbmcgQXVkaXRzIGFuZCBSZWNvcmRpbmdzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1NjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW9yZ2FuaXplIHRoZSBm
aWxlIGxvYWRpbmcgbG9naWMgZm9yIHRoZSBBdWRpdCBhbmQgQ2FudmFzIHRhYnMvbWFuYWdlcnMu
IEFkZCAiZHJvcCIgZXZlbnQKKyAgICAgICAgaGFuZGxlcnMgdG8gdGhlIHRhYnMgdGhhdCBhZGQg
YW5kIHNob3cgdGhlIGNvcnJlc3BvbmRpbmcgb2JqZWN0IGZvciB0aGUgaW1wb3J0ZWQgZGF0YS4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRUYWJDb250ZW50Vmlldy5qczoK
KyAgICAgICAgKFdJLkF1ZGl0VGFiQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuQXVkaXRUYWJD
b250ZW50Vmlldy5wcm90b3R5cGUuX2hhbmRsZURyYWdPdmVyKTogQWRkZWQuCisgICAgICAgIChX
SS5BdWRpdFRhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlRHJvcCk6IEFkZGVkLgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzVGFiQ29udGVudFZpZXcuanM6CisgICAg
ICAgIChXSS5DYW52YXNUYWJDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5DYW52YXNUYWJDb250
ZW50Vmlldy5wcm90b3R5cGUuX2FkZENhbnZhcyk6CisgICAgICAgIChXSS5DYW52YXNUYWJDb250
ZW50Vmlldy5wcm90b3R5cGUuX3JlY29yZGluZ0ltcG9ydGVkT3JTdG9wcGVkKToKKyAgICAgICAg
KFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlRHJhZ092ZXIpOiBBZGRl
ZC4KKyAgICAgICAgKFdJLkNhbnZhc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5faGFuZGxlRHJv
cCk6IEFkZGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BdWRpdE1h
bmFnZXIuanM6CisgICAgICAgIChXSS5BdWRpdE1hbmFnZXIucHJvdG90eXBlLmFzeW5jIHByb2Nl
c3NKU09OKTogQWRkZWQuCisgICAgICAgIChXSS5BdWRpdE1hbmFnZXIucHJvdG90eXBlLmV4cG9y
dCk6CisgICAgICAgIChXSS5BdWRpdE1hbmFnZXIucHJvdG90eXBlLmltcG9ydCk6IERlbGV0ZWQu
CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgor
ICAgICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUucHJvY2Vzc0pTT04pOiBBZGRlZC4K
KyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmltcG9ydFJlY29yZGluZyk6IERl
bGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0TmF2aWdhdGlvblNp
ZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLkF1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbCk6
CisgICAgICAgIChXSS5BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLnNob3dE
ZWZhdWx0Q29udGVudFZpZXcpOgorICAgICAgICAoV0kuQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBh
bmVsLnByb3RvdHlwZS5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkKToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQYW5lbC5qczoKKyAg
ICAgICAgKFdJLkNhbnZhc1NpZGViYXJQYW5lbCk6CisgICAgICAgIChXSS5DYW52YXNTaWRlYmFy
UGFuZWwucHJvdG90eXBlLl9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQp
OiBBZGRlZC4KKyAgICAgICAgKFdJLkNhbnZhc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlY29y
ZGluZ0NoYW5nZWQpOgorICAgICAgICAoV0kuQ2FudmFzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5f
dXBkYXRlUmVjb3JkTmF2aWdhdGlvbkl0ZW0pOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuQ2FudmFzT3Zl
cnZpZXdDb250ZW50Vmlldyk6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
LnByb3RvdHlwZS5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkKTogQWRk
ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvRmlsZVV0aWxpdGllcy5qczoKKyAg
ICAgICAgKFdJLkZpbGVVdGlsaXRpZXMuc2F2ZSk6IEFkZGVkLgorICAgICAgICAoV0kuRmlsZVV0
aWxpdGllcy5pbXBvcnRUZXh0KTogQWRkZWQuCisgICAgICAgIChXSS5GaWxlVXRpbGl0aWVzLmlt
cG9ydEpTT04pOiBBZGRlZC4KKyAgICAgICAgKFdJLkZpbGVVdGlsaXRpZXMuYXN5bmMgcmVhZFRl
eHQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkZpbGVVdGlsaXRpZXMuYXN5bmMgcmVhZEpTT04pOiBB
ZGRlZC4KKyAgICAgICAgKFdJLnNhdmVEYXRhVG9GaWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdJ
LmxvYWREYXRhRnJvbUZpbGUpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFz
ZS9NYWluLmpzOgorICAgICAgICAoV0kuX2NvbnRleHRNZW51UmVxdWVzdGVkKToKKyAgICAgICAg
KFdJLl9zYXZlKToKKyAgICAgICAgKFdJLl9zYXZlQXMpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanM6CisgICAgICAgIChXSS5hcHBlbmRDb250
ZXh0TWVudUl0ZW1zRm9yU291cmNlQ29kZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9Mb2dDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkxvZ0NvbnRlbnRWaWV3LnByb3RvdHlw
ZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9OZXR3b3JrVGFibGVDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLk5ldHdvcmtUYWJsZUNv
bnRlbnRWaWV3LnByb3RvdHlwZS5fZXhwb3J0SEFSKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1JlY29yZGluZ0NvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuUmVjb3JkaW5nQ29u
dGVudFZpZXcucHJvdG90eXBlLl9leHBvcnRSZWNvcmRpbmcpOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qczoKKyAg
ICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBl
Ll9zYXZlKToKKyAgICAgICAgTW92ZSBmaWxlIHJlbGF0ZWQgZnVuY3Rpb25zIGludG8gYSBzdGF0
aWMgY2xhc3MgY29udGFpbmVyLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzOgorCiAyMDE4LTExLTEyICBEZXZpbiBSb3Vzc28gIDxkcm91c3Nv
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrOiBzaG93IHNlY3Vy
ZSBjZXJ0aWZpY2F0ZSBkZXRhaWxzIHBlci1yZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcwppbmRleCAyMjRlZmNhNWQ1YWVjNGU1NDYwY2Q3N2EzYjhlM2ViYzg2MTBjNDI1Li44
ODQ4MjBjYzY4OGViOGRhZTBlYThjMjcwZDZmYWE0MjY2OTg3NWQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMKQEAgLTQ3NCw3ICs0NzQsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJJ
bWFnZSBTaXplIl0gPSAiSW1hZ2UgU2l6ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXMiXSA9
ICJJbWFnZXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1tZWRpYXRlIFBhdXNlIFJlcXVlc3RlZCJd
ID0gIkltbWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0
Il0gPSAiSW1wb3J0IjsKLWxvY2FsaXplZFN0cmluZ3NbIkltcG9ydCByZWNvcmRpbmcgZnJvbSBm
aWxlIl0gPSAiSW1wb3J0IHJlY29yZGluZyBmcm9tIGZpbGUiOwogbG9jYWxpemVkU3RyaW5nc1si
SW1wb3J0ZWQiXSA9ICJJbXBvcnRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCBSZWNv
cmRpbmdzIl0gPSAiSW1wb3J0ZWQgUmVjb3JkaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbmNv
bXBsZXRlIl0gPSAiSW5jb21wbGV0ZSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9CYXNlL0ZpbGVVdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0ZpbGVVdGlsaXRpZXMuanMKaW5kZXggZDYzN2NjMDVj
ZDZlYzk5NjU2MGZiYWE2ZDBhMjYwYTkwNTdmMjIzMS4uZThkZWFhZjYxZDk5OTNhNzIyMTUxMmY3
YzJlNDEyODU0Y2U0N2VlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9GaWxlVXRpbGl0aWVzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0Jhc2UvRmlsZVV0aWxpdGllcy5qcwpAQCAtMjMsNjUgKzIzLDEyMCBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdJLnNhdmVEYXRh
VG9GaWxlID0gZnVuY3Rpb24oc2F2ZURhdGEsIGZvcmNlU2F2ZUFzKQotewotICAgIGNvbnNvbGUu
YXNzZXJ0KHNhdmVEYXRhKTsKLSAgICBpZiAoIXNhdmVEYXRhKQotICAgICAgICByZXR1cm47CitX
SS5GaWxlVXRpbGl0aWVzID0gY2xhc3MgRmlsZVV0aWxpdGllcyB7CisgICAgc3RhdGljIHNhdmUo
c2F2ZURhdGEsIGZvcmNlU2F2ZUFzKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoc2F2
ZURhdGEpOworICAgICAgICBpZiAoIXNhdmVEYXRhKQorICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKHR5cGVvZiBzYXZlRGF0YS5jdXN0b21TYXZlSGFuZGxlciA9PT0gImZ1bmN0aW9uIikg
ewotICAgICAgICBzYXZlRGF0YS5jdXN0b21TYXZlSGFuZGxlcihmb3JjZVNhdmVBcyk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb25zb2xlLmFzc2VydChzYXZlRGF0YS5jb250ZW50
KTsKLSAgICBpZiAoIXNhdmVEYXRhLmNvbnRlbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGxl
dCB1cmwgPSBzYXZlRGF0YS51cmwgfHwgIiI7Ci0gICAgbGV0IHN1Z2dlc3RlZE5hbWUgPSBwYXJz
ZVVSTCh1cmwpLmxhc3RQYXRoQ29tcG9uZW50OwotICAgIGlmICghc3VnZ2VzdGVkTmFtZSkgewot
ICAgICAgICBzdWdnZXN0ZWROYW1lID0gV0kuVUlTdHJpbmcoIlVudGl0bGVkIik7Ci0gICAgICAg
IGxldCBkYXRhVVJMVHlwZU1hdGNoID0gL15kYXRhOihbXjtdKykvLmV4ZWModXJsKTsKLSAgICAg
ICAgaWYgKGRhdGFVUkxUeXBlTWF0Y2gpIHsKLSAgICAgICAgICAgIGxldCBmaWxlRXh0ZW5zaW9u
ID0gV0kuZmlsZUV4dGVuc2lvbkZvck1JTUVUeXBlKGRhdGFVUkxUeXBlTWF0Y2hbMV0pOwotICAg
ICAgICAgICAgaWYgKGZpbGVFeHRlbnNpb24pCi0gICAgICAgICAgICAgICAgc3VnZ2VzdGVkTmFt
ZSArPSAiLiIgKyBmaWxlRXh0ZW5zaW9uOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHR5
cGVvZiBzYXZlRGF0YS5jb250ZW50ID09PSAic3RyaW5nIikgewotICAgICAgICBjb25zdCBiYXNl
NjRFbmNvZGVkID0gc2F2ZURhdGEuYmFzZTY0RW5jb2RlZCB8fCBmYWxzZTsKLSAgICAgICAgSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LnNhdmUoc3VnZ2VzdGVkTmFtZSwgc2F2ZURhdGEuY29udGVudCwg
YmFzZTY0RW5jb2RlZCwgZm9yY2VTYXZlQXMgfHwgc2F2ZURhdGEuZm9yY2VTYXZlQXMpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbGV0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRl
cjsKLSAgICBmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwoc2F2ZURhdGEuY29udGVudCk7Ci0gICAg
ZmlsZVJlYWRlci5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIiwgKCkgPT4gewotICAgICAgICBs
ZXQgZGF0YVVSTENvbXBvbmVudHMgPSBwYXJzZURhdGFVUkwoZmlsZVJlYWRlci5yZXN1bHQpOwot
Ci0gICAgICAgIGNvbnN0IGJhc2U2NEVuY29kZWQgPSB0cnVlOwotICAgICAgICBJbnNwZWN0b3JG
cm9udGVuZEhvc3Quc2F2ZShzdWdnZXN0ZWROYW1lLCBkYXRhVVJMQ29tcG9uZW50cy5kYXRhLCBi
YXNlNjRFbmNvZGVkLCBmb3JjZVNhdmVBcyB8fCBzYXZlRGF0YS5mb3JjZVNhdmVBcyk7Ci0gICAg
fSk7Ci19OwotCi1XSS5sb2FkRGF0YUZyb21GaWxlID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0g
ICAgbGV0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Ci0g
ICAgaW5wdXRFbGVtZW50LnR5cGUgPSAiZmlsZSI7Ci0gICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImNoYW5nZSIsIChldmVudCkgPT4gewotICAgICAgICBpZiAoIWlucHV0RWxlbWVu
dC5maWxlcy5sZW5ndGgpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOworICAgICAgICBp
ZiAodHlwZW9mIHNhdmVEYXRhLmN1c3RvbVNhdmVIYW5kbGVyID09PSAiZnVuY3Rpb24iKSB7Cisg
ICAgICAgICAgICBzYXZlRGF0YS5jdXN0b21TYXZlSGFuZGxlcihmb3JjZVNhdmVBcyk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBsZXQgZmlsZSA9IGlucHV0RWxl
bWVudC5maWxlc1swXTsKLSAgICAgICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyOwotICAg
ICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsIChldmVudCkgPT4gewotICAg
ICAgICAgICAgY2FsbGJhY2socmVhZGVyLnJlc3VsdCwgZmlsZS5uYW1lKTsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoc2F2ZURhdGEuY29udGVudCk7CisgICAgICAgIGlmICghc2F2ZURhdGEuY29u
dGVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgdXJsID0gc2F2ZURhdGEu
dXJsIHx8ICIiOworICAgICAgICBsZXQgc3VnZ2VzdGVkTmFtZSA9IHBhcnNlVVJMKHVybCkubGFz
dFBhdGhDb21wb25lbnQ7CisgICAgICAgIGlmICghc3VnZ2VzdGVkTmFtZSkgeworICAgICAgICAg
ICAgc3VnZ2VzdGVkTmFtZSA9IFdJLlVJU3RyaW5nKCJVbnRpdGxlZCIpOworICAgICAgICAgICAg
bGV0IGRhdGFVUkxUeXBlTWF0Y2ggPSAvXmRhdGE6KFteO10rKS8uZXhlYyh1cmwpOworICAgICAg
ICAgICAgaWYgKGRhdGFVUkxUeXBlTWF0Y2gpIHsKKyAgICAgICAgICAgICAgICBsZXQgZmlsZUV4
dGVuc2lvbiA9IFdJLmZpbGVFeHRlbnNpb25Gb3JNSU1FVHlwZShkYXRhVVJMVHlwZU1hdGNoWzFd
KTsKKyAgICAgICAgICAgICAgICBpZiAoZmlsZUV4dGVuc2lvbikKKyAgICAgICAgICAgICAgICAg
ICAgc3VnZ2VzdGVkTmFtZSArPSAiLiIgKyBmaWxlRXh0ZW5zaW9uOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHR5cGVvZiBzYXZlRGF0YS5jb250ZW50ID09PSAic3Ry
aW5nIikgeworICAgICAgICAgICAgY29uc3QgYmFzZTY0RW5jb2RlZCA9IHNhdmVEYXRhLmJhc2U2
NEVuY29kZWQgfHwgZmFsc2U7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Quc2F2
ZShzdWdnZXN0ZWROYW1lLCBzYXZlRGF0YS5jb250ZW50LCBiYXNlNjRFbmNvZGVkLCBmb3JjZVNh
dmVBcyB8fCBzYXZlRGF0YS5mb3JjZVNhdmVBcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBsZXQgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyOworICAgICAg
ICBmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwoc2F2ZURhdGEuY29udGVudCk7CisgICAgICAgIGZp
bGVSZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsICgpID0+IHsKKyAgICAgICAgICAg
IGxldCBkYXRhVVJMQ29tcG9uZW50cyA9IHBhcnNlRGF0YVVSTChmaWxlUmVhZGVyLnJlc3VsdCk7
CisKKyAgICAgICAgICAgIGNvbnN0IGJhc2U2NEVuY29kZWQgPSB0cnVlOworICAgICAgICAgICAg
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNhdmUoc3VnZ2VzdGVkTmFtZSwgZGF0YVVSTENvbXBvbmVu
dHMuZGF0YSwgYmFzZTY0RW5jb2RlZCwgZm9yY2VTYXZlQXMgfHwgc2F2ZURhdGEuZm9yY2VTYXZl
QXMpOwogICAgICAgICB9KTsKLSAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7Ci0gICAg
fSk7Ci0gICAgaW5wdXRFbGVtZW50LmNsaWNrKCk7CisgICAgfQorCisgICAgc3RhdGljIGltcG9y
dFRleHQoY2FsbGJhY2spCisgICAgeworICAgICAgICBsZXQgaW5wdXRFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAgaW5wdXRFbGVtZW50LnR5cGUgPSAi
ZmlsZSI7CisgICAgICAgIGlucHV0RWxlbWVudC5tdWx0aXBsZSA9IHRydWU7CisgICAgICAgIGlu
cHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAoZXZlbnQpID0+IHsKKyAgICAg
ICAgICAgIFdJLkZpbGVVdGlsaXRpZXMucmVhZFRleHQoaW5wdXRFbGVtZW50LmZpbGVzLCBjYWxs
YmFjayk7CisgICAgICAgIH0pOworICAgICAgICBpbnB1dEVsZW1lbnQuY2xpY2soKTsKKyAgICB9
CisKKyAgICBzdGF0aWMgaW1wb3J0SlNPTihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGxldCBp
bnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgICAgICBp
bnB1dEVsZW1lbnQudHlwZSA9ICJmaWxlIjsKKyAgICAgICAgaW5wdXRFbGVtZW50Lm11bHRpcGxl
ID0gdHJ1ZTsKKyAgICAgICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIs
IChldmVudCkgPT4geworICAgICAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihpbnB1
dEVsZW1lbnQuZmlsZXMsIGNhbGxiYWNrKTsKKyAgICAgICAgfSk7CisgICAgICAgIGlucHV0RWxl
bWVudC5jbGljaygpOworICAgIH0KKworICAgIHN0YXRpYyBhc3luYyByZWFkVGV4dChmaWxlT3JM
aXN0LCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZpbGVPckxpc3Qg
aW5zdGFuY2VvZiBGaWxlIHx8IGZpbGVPckxpc3QgaW5zdGFuY2VvZiBGaWxlTGlzdCk7CisKKyAg
ICAgICAgbGV0IGZpbGVzID0gW107CisgICAgICAgIGlmIChmaWxlT3JMaXN0IGluc3RhbmNlb2Yg
RmlsZSkKKyAgICAgICAgICAgIGZpbGVzLnB1c2goZmlsZU9yTGlzdCk7CisgICAgICAgIGVsc2Ug
aWYgKGZpbGVPckxpc3QgaW5zdGFuY2VvZiBGaWxlTGlzdCkKKyAgICAgICAgICAgIGZpbGVzID0g
QXJyYXkuZnJvbShmaWxlT3JMaXN0KTsKKworICAgICAgICBmb3IgKGxldCBmaWxlIG9mIGZpbGVz
KSB7CisgICAgICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXI7CisgICAgICAgICAg
ICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTsKKworICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHsK
KyAgICAgICAgICAgICAgICBmaWxlbmFtZTogZmlsZS5uYW1lLAorICAgICAgICAgICAgfTsKKwor
ICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHJlYWRlci5hZGRFdmVudExp
c3RlbmVyKCJsb2FkZW5kIiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQudGV4dCA9IHJlYWRlci5yZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNv
bHZlKGV2ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAg
IHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIHJlamVjdCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0
LmVycm9yID0gZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IHByb21pc2UgPSBj
YWxsYmFjayhyZXN1bHQpOworICAgICAgICAgICAgaWYgKHByb21pc2UpCisgICAgICAgICAgICAg
ICAgYXdhaXQgcHJvbWlzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBhc3luYyBy
ZWFkSlNPTihmaWxlT3JMaXN0LCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHJldHVybiBXSS5G
aWxlVXRpbGl0aWVzLnJlYWRUZXh0KGZpbGVPckxpc3QsIChyZXN1bHQpID0+IHsKKyAgICAgICAg
ICAgIGlmIChyZXN1bHQudGV4dCAmJiAhcmVzdWx0LmVycm9yKSB7CisgICAgICAgICAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lmpzb24gPSBKU09OLnBhcnNlKHJlc3Vs
dC50ZXh0KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdC5lcnJvciA9IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgfSk7CisgICAg
fQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFp
bi5qcwppbmRleCBkNTE5NGU1OTlkMjY1YTU1NTcwZjY5N2E0ZmU5NGQyMjQ4MTYwMmU0Li4xMDNh
ODUyY2JkNzMzYjc1NGM3NmFhYmU0OWI0NTMxZjlmNmI3NTI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC0xNTIyLDcgKzE1MjIs
NyBAQCBXSS5fY29udGV4dE1lbnVSZXF1ZXN0ZWQgPSBmdW5jdGlvbihldmVudCkKIAogICAgICAg
ICBwcm90b2NvbFN1Yk1lbnUuYXBwZW5kSXRlbShXSS51bmxvY2FsaXplZFN0cmluZygiRXhwb3J0
IFRyYWNlXHUyMDI2IiksICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGZvcmNlU2F2ZUFzID0g
dHJ1ZTsKLSAgICAgICAgICAgIFdJLnNhdmVEYXRhVG9GaWxlKEluc3BlY3RvckJhY2tlbmQuYWN0
aXZlVHJhY2VyLnRyYWNlLnNhdmVEYXRhLCBmb3JjZVNhdmVBcyk7CisgICAgICAgICAgICBXSS5G
aWxlVXRpbGl0aWVzLnNhdmUoSW5zcGVjdG9yQmFja2VuZC5hY3RpdmVUcmFjZXIudHJhY2Uuc2F2
ZURhdGEsIGZvcmNlU2F2ZUFzKTsKICAgICAgICAgfSwgIWlzQ2FwdHVyaW5nVHJhZmZpYyk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgY29uc3Qgb25seUV4aXN0aW5nID0gdHJ1ZTsKQEAgLTE5ODks
NyArMTk4OSw3IEBAIFdJLl9zYXZlID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgaWYgKCFjb250ZW50
VmlldyB8fCAhY29udGVudFZpZXcuc3VwcG9ydHNTYXZlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBXSS5zYXZlRGF0YVRvRmlsZShjb250ZW50Vmlldy5zYXZlRGF0YSk7CisgICAgV0kuRmlsZVV0
aWxpdGllcy5zYXZlKGNvbnRlbnRWaWV3LnNhdmVEYXRhKTsKIH07CiAKIFdJLl9zYXZlQXMgPSBm
dW5jdGlvbihldmVudCkKQEAgLTE5OTgsNyArMTk5OCw3IEBAIFdJLl9zYXZlQXMgPSBmdW5jdGlv
bihldmVudCkKICAgICBpZiAoIWNvbnRlbnRWaWV3IHx8ICFjb250ZW50Vmlldy5zdXBwb3J0c1Nh
dmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdJLnNhdmVEYXRhVG9GaWxlKGNvbnRlbnRWaWV3
LnNhdmVEYXRhLCB0cnVlKTsKKyAgICBXSS5GaWxlVXRpbGl0aWVzLnNhdmUoY29udGVudFZpZXcu
c2F2ZURhdGEsIHRydWUpOwogfTsKIAogV0kuX2NsZWFyID0gZnVuY3Rpb24oZXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9B
dWRpdE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9BdWRpdE1hbmFnZXIuanMKaW5kZXggZGY3M2I1NzMyMjk1OTMxYjMyZjNkMTU3YWQz
YjE3MDE3ODg4YzhkMy4uZDc0Nzg2OGM4NGRhM2U4Y2UzZDAxYzVkNDIzODhlN2U3NzU1NGMyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvQXVkaXRNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcwpAQCAtOTMsMzUgKzkzLDI5IEBAIFdJLkF1
ZGl0TWFuYWdlciA9IGNsYXNzIEF1ZGl0TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICB0aGlzLl9ydW5uaW5nU3RhdGUgPSBXSS5BdWRpdE1hbmFnZXIuUnVubmluZ1N0YXRlLlN0b3Bw
aW5nOwogICAgIH0KIAotICAgIGltcG9ydCgpCisgICAgYXN5bmMgcHJvY2Vzc0pTT04oe2pzb24s
IGVycm9yfSkKICAgICB7Ci0gICAgICAgIFdJLmxvYWREYXRhRnJvbUZpbGUoYXN5bmMgKGRhdGEs
IGZpbGVuYW1lKSA9PiB7Ci0gICAgICAgICAgICBpZiAoIWRhdGEpCi0gICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIFdJLkF1ZGl0TWFuYWdl
ci5zeW50aGVzaXplRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CiAKLSAgICAgICAgICAgIGxldCBwYXlsb2FkID0gbnVsbDsKLSAgICAgICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgICAgICAgcGF5bG9hZCA9IEpTT04ucGFyc2UoZGF0YSk7Ci0gICAgICAgICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAgV0kuQXVkaXRNYW5hZ2VyLnN5bnRoZXNpemVF
cnJvcihlKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGxldCBvYmplY3QgPSBhd2FpdCBXSS5BdWRpdFRlc3RHcm91cC5mcm9tUGF5bG9hZChw
YXlsb2FkKSB8fCBhd2FpdCBXSS5BdWRpdFRlc3RDYXNlLmZyb21QYXlsb2FkKHBheWxvYWQpOwor
ICAgICAgICBsZXQgb2JqZWN0ID0gYXdhaXQgV0kuQXVkaXRUZXN0R3JvdXAuZnJvbVBheWxvYWQo
anNvbikgfHwgYXdhaXQgV0kuQXVkaXRUZXN0Q2FzZS5mcm9tUGF5bG9hZChqc29uKTsKKyAgICAg
ICAgaWYgKCFvYmplY3QpIHsKKyAgICAgICAgICAgIG9iamVjdCA9IGF3YWl0IFdJLkF1ZGl0VGVz
dEdyb3VwUmVzdWx0LmZyb21QYXlsb2FkKGpzb24pIHx8IGF3YWl0IFdJLkF1ZGl0VGVzdENhc2VS
ZXN1bHQuZnJvbVBheWxvYWQoanNvbik7CiAgICAgICAgICAgICBpZiAoIW9iamVjdCkgewotICAg
ICAgICAgICAgICAgIG9iamVjdCA9IGF3YWl0IFdJLkF1ZGl0VGVzdEdyb3VwUmVzdWx0LmZyb21Q
YXlsb2FkKHBheWxvYWQpIHx8IGF3YWl0IFdJLkF1ZGl0VGVzdENhc2VSZXN1bHQuZnJvbVBheWxv
YWQocGF5bG9hZCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFvYmplY3QpIHsKLSAgICAgICAgICAg
ICAgICAgICAgV0kuQXVkaXRNYW5hZ2VyLnN5bnRoZXNpemVFcnJvcihXSS5VSVN0cmluZygiaW52
YWxpZCBKU09OLiIpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBXSS5BdWRpdE1hbmFnZXIuc3ludGhlc2l6ZUVycm9yKFdJ
LlVJU3RyaW5nKCJpbnZhbGlkIEpTT04uIikpOworICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KKyAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAob2JqZWN0IGluc3RhbmNl
b2YgV0kuQXVkaXRUZXN0QmFzZSkgewotICAgICAgICAgICAgICAgIHRoaXMuX2FkZFRlc3Qob2Jq
ZWN0KTsKLSAgICAgICAgICAgICAgICBXSS5vYmplY3RTdG9yZXMuYXVkaXRzLmFkZE9iamVjdChv
YmplY3QpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRp
dFRlc3RSZXN1bHRCYXNlKQotICAgICAgICAgICAgICAgIHRoaXMuX2FkZFJlc3VsdChvYmplY3Qp
OwotICAgICAgICB9KTsKKyAgICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVz
dEJhc2UpIHsKKyAgICAgICAgICAgIHRoaXMuX2FkZFRlc3Qob2JqZWN0KTsKKyAgICAgICAgICAg
IFdJLm9iamVjdFN0b3Jlcy5hdWRpdHMuYWRkT2JqZWN0KG9iamVjdCk7CisgICAgICAgIH0gZWxz
ZSBpZiAob2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0UmVzdWx0QmFzZSkKKyAgICAgICAg
ICAgIHRoaXMuX2FkZFJlc3VsdChvYmplY3QpOworCisgICAgICAgIFdJLnNob3dSZXByZXNlbnRl
ZE9iamVjdChvYmplY3QpOwogICAgIH0KIAogICAgIGV4cG9ydChvYmplY3QpCkBAIC0xMzQsNyAr
MTI4LDcgQEAgV0kuQXVkaXRNYW5hZ2VyID0gY2xhc3MgQXVkaXRNYW5hZ2VyIGV4dGVuZHMgV0ku
T2JqZWN0CiAKICAgICAgICAgbGV0IHVybCA9ICJ3ZWItaW5zcGVjdG9yOi8vLyIgKyBlbmNvZGVV
UkkoZmlsZW5hbWUpICsgIi5qc29uIjsKIAotICAgICAgICBXSS5zYXZlRGF0YVRvRmlsZSh7Cisg
ICAgICAgIFdJLkZpbGVVdGlsaXRpZXMuc2F2ZSh7CiAgICAgICAgICAgICB1cmwsCiAgICAgICAg
ICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeShvYmplY3QpLAogICAgICAgICAgICAgZm9yY2VT
YXZlQXM6IHRydWUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwppbmRleCBmZTU4Zjkx
ZjJiMTUxODU5MjY4NzcxNjUwYzA2YjE3MWFlYzkzNWZiLi4zMTc4MTVkMzA5ZmMwNmFiZDA5NzM1
MjE2NzliY2E3M2UzNjMzZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKQEAg
LTY3LDM1ICs2NywyNyBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zaGFkZXJQ
cm9ncmFtSWRlbnRpZmllck1hcC52YWx1ZXMoKSk7CiAgICAgfQogCi0gICAgaW1wb3J0UmVjb3Jk
aW5nKCkKKyAgICBwcm9jZXNzSlNPTih7ZmlsZW5hbWUsIGpzb24sIGVycm9yfSkKICAgICB7Ci0g
ICAgICAgIFdJLmxvYWREYXRhRnJvbUZpbGUoKGRhdGEsIGZpbGVuYW1lKSA9PiB7Ci0gICAgICAg
ICAgICBpZiAoIWRhdGEpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoZXJy
b3IpIHsKKyAgICAgICAgICAgIFdJLlJlY29yZGluZy5zeW50aGVzaXplRXJyb3IoZXJyb3IpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICAgICAgICAgIGxldCBwYXlsb2Fk
ID0gbnVsbDsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgcGF5bG9hZCA9IEpT
T04ucGFyc2UoZGF0YSk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAg
ICAgV0kuUmVjb3JkaW5nLnN5bnRoZXNpemVFcnJvcihlKTsKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICB9CisgICAgICAgIGxldCByZWNvcmRpbmcgPSBXSS5SZWNvcmRpbmcu
ZnJvbVBheWxvYWQoanNvbik7CisgICAgICAgIGlmICghcmVjb3JkaW5nKSB7CisgICAgICAgICAg
ICBXSS5SZWNvcmRpbmcuc3ludGhlc2l6ZUVycm9yKFdJLlVJU3RyaW5nKCJ1bnN1cHBvcnRlZCB2
ZXJzaW9uLiIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgICAgICAg
ICBsZXQgcmVjb3JkaW5nID0gV0kuUmVjb3JkaW5nLmZyb21QYXlsb2FkKHBheWxvYWQpOwotICAg
ICAgICAgICAgaWYgKCFyZWNvcmRpbmcpIHsKLSAgICAgICAgICAgICAgICBXSS5SZWNvcmRpbmcu
c3ludGhlc2l6ZUVycm9yKFdJLlVJU3RyaW5nKCJ1bnN1cHBvcnRlZCB2ZXJzaW9uLiIpKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9CisgICAgICAgIGxldCBleHRlbnNp
b25TdGFydCA9IGZpbGVuYW1lLmxhc3RJbmRleE9mKCIuIik7CisgICAgICAgIGlmIChleHRlbnNp
b25TdGFydCAhPT0gLTEpCisgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnN1YnN0cmlu
ZygwLCBleHRlbnNpb25TdGFydCk7CisgICAgICAgIHJlY29yZGluZy5jcmVhdGVEaXNwbGF5TmFt
ZShmaWxlbmFtZSk7CiAKLSAgICAgICAgICAgIGxldCBleHRlbnNpb25TdGFydCA9IGZpbGVuYW1l
Lmxhc3RJbmRleE9mKCIuIik7Ci0gICAgICAgICAgICBpZiAoZXh0ZW5zaW9uU3RhcnQgIT09IC0x
KQotICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUuc3Vic3RyaW5nKDAsIGV4dGVu
c2lvblN0YXJ0KTsKLSAgICAgICAgICAgIHJlY29yZGluZy5jcmVhdGVEaXNwbGF5TmFtZShmaWxl
bmFtZSk7CisgICAgICAgIHRoaXMuX2ltcG9ydGVkUmVjb3JkaW5ncy5hZGQocmVjb3JkaW5nKTsK
IAotICAgICAgICAgICAgdGhpcy5faW1wb3J0ZWRSZWNvcmRpbmdzLmFkZChyZWNvcmRpbmcpOwot
Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5h
Z2VyLkV2ZW50LlJlY29yZGluZ0ltcG9ydGVkLCB7cmVjb3JkaW5nfSk7Ci0gICAgICAgIH0pOwor
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2
ZW50LlJlY29yZGluZ0ltcG9ydGVkLCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXI6IHRydWV9
KTsKICAgICB9CiAKICAgICBzZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQoZW5hYmxl
ZCwgY291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMK
aW5kZXggNTc2YmZiNzY1NTRlNmIzZmZlNzVkOWU3NTdhM2FiMGYyZDcxMGEzYy4uNTY1OGRhN2Nm
OGNmZmVlNTJkNzQ0YWZiMGQ4MDRkYWIzMmMxZmNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0
TmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpAQCAtNDEsOSArNDEsNyBAQCBXSS5BdWRpdE5hdmln
YXRpb25TaWRlYmFyUGFuZWwgPSBjbGFzcyBBdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0
ZW5kcyBXSS5OYQogCiAgICAgICAgIGxldCBpbXBvcnROYXZpZ2F0aW9uSXRlbSA9IG5ldyBXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbSgiaW1wb3J0LWF1ZGl0IiwgV0kuVUlTdHJpbmcoIkltcG9ydCIp
LCAiSW1hZ2VzL0ltcG9ydC5zdmciLCAxNSwgMTUpOwogICAgICAgICBpbXBvcnROYXZpZ2F0aW9u
SXRlbS5idXR0b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5k
VGV4dDsKLSAgICAgICAgaW1wb3J0TmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5C
dXR0b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCAoKSA9PiB7Ci0gICAgICAgICAgICBX
SS5hdWRpdE1hbmFnZXIuaW1wb3J0KCk7Ci0gICAgICAgIH0pOworICAgICAgICBpbXBvcnROYXZp
Z2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50
LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwg
dGhpcyk7CiAKICAgICAgICAgbGV0IGltcG9ydEhlbHBFbGVtZW50ID0gV0kuY3JlYXRlTmF2aWdh
dGlvbkl0ZW1IZWxwKFdJLlVJU3RyaW5nKCJQcmVzcyAlcyB0byBpbXBvcnQgYSB0ZXN0IG9yIHJl
c3VsdCBmaWxlIiksIGltcG9ydE5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgY29udGVudFBsYWNl
aG9sZGVyLmFwcGVuZENoaWxkKGltcG9ydEhlbHBFbGVtZW50KTsKQEAgLTE5NSw2ICsxOTMsNiBA
QCBXSS5BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFzcyBBdWRpdE5hdmlnYXRpb25T
aWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYQogCiAgICAgX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtQ2xpY2tlZChldmVudCkKICAgICB7Ci0gICAgICAgIFdJLmF1ZGl0TWFuYWdlci5p
bXBvcnQoKTsKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5pbXBvcnRKU09OKChyZXN1bHQpID0+
IFdJLmF1ZGl0TWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKICAgICB9CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRUYWJD
b250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0F1ZGl0VGFiQ29udGVudFZpZXcuanMKaW5kZXggOGY1NGIxNzMxM2UxMTllZWVmZDFmN2QyNGE1
NDY3ZjNjMDM0ODU1Ni4uOGM0MjI2ODIzYzE0YTQ2Nzg4Nzc1Yjg1ZWM2Y2NkYmYzMzMzZGFjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVk
aXRUYWJDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzCkBAIC0zMiw2ICszMiw5IEBAIFdJLkF1
ZGl0VGFiQ29udGVudFZpZXcgPSBjbGFzcyBBdWRpdFRhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29udGVudEJyb3dzZXJUYWJDCiAgICAgICAgIHRoaXMuX3N0YXJ0U3RvcFNob3J0Y3V0ID0gbmV3
IFdJLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuU3BhY2Us
IHRoaXMuX2hhbmRsZVNwYWNlLmJpbmQodGhpcykpOwogICAgICAgICB0aGlzLl9zdGFydFN0b3BT
aG9ydGN1dC5pbXBsaWNpdGx5UHJldmVudHNEZWZhdWx0ID0gZmFsc2U7CiAgICAgICAgIHRoaXMu
X3N0YXJ0U3RvcFNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICB0aGlzLmVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCB0aGlzLl9oYW5kbGVEcmFnT3Zlci5iaW5k
KHRoaXMpKTsKKyAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCB0
aGlzLl9oYW5kbGVEcm9wLmJpbmQodGhpcykpOwogICAgIH0KIAogICAgIC8vIFN0YXRpYwpAQCAt
MTA4LDYgKzExMSwyNSBAQCBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3ID0gY2xhc3MgQXVkaXRUYWJD
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGFiQwogCiAgICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfQorCisgICAgX2hhbmRsZURyYWdPdmVyKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcy5pbmNsdWRlcygiRmls
ZXMiKSkKKyAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgfQorCisgICAg
X2hhbmRsZURyb3AoZXZlbnQpCisgICAgeworICAgICAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2Zl
ci5maWxlcyB8fCAhZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworCisgICAgICAgIFdJ
LkZpbGVVdGlsaXRpZXMucmVhZEpTT04oZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLCAocmVzdWx0
KSA9PiBXSS5hdWRpdE1hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSkKKyAgICAgICAgLnRoZW4o
KCkgPT4geworICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmNsZWFyRGF0YSgpOworICAg
ICAgICB9KTsKKyAgICB9CiB9OwogCiBXSS5BdWRpdFRhYkNvbnRlbnRWaWV3LlR5cGUgPSAiYXVk
aXQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKaW5kZXggMmE3
NTBjMTIwMjRhMDllNzc1ZDhmMzE1M2ZlOGQxZDU2YWE0M2U0MC4uZDQ2NGVkY2Q5ZmE2M2RjYjgy
MzlhZTc3N2MwZThjNzZhMTJlOTQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0Nv
bnRlbnRWaWV3LmpzCkBAIC0zNiw3ICszNiw2IEBAIFdJLkNhbnZhc092ZXJ2aWV3Q29udGVudFZp
ZXcgPSBjbGFzcyBDYW52YXNPdmVydmlld0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29sbGVjCiAK
ICAgICAgICAgbGV0IGltcG9ydE5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRp
b25JdGVtKCJpbXBvcnQtcmVjb3JkaW5nIiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2Vz
L0ltcG9ydC5zdmciLCAxNSwgMTUpOwogICAgICAgICBpbXBvcnROYXZpZ2F0aW9uSXRlbS5idXR0
b25TdHlsZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4dDsKLSAg
ICAgICAgaW1wb3J0TmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZp
Z2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCAoKSA9PiB7IFdJLmNhbnZhc01hbmFnZXIuaW1wb3J0
UmVjb3JkaW5nKCk7IH0pOwogCiAgICAgICAgIGxldCBpbXBvcnRIZWxwRWxlbWVudCA9IFdJLmNy
ZWF0ZU5hdmlnYXRpb25JdGVtSGVscChXSS5VSVN0cmluZygiUHJlc3MgJXMgdG8gbG9hZCBhIHJl
Y29yZGluZyBmcm9tIGZpbGUuIiksIGltcG9ydE5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgY29u
dGVudFBsYWNlaG9sZGVyLmFwcGVuZENoaWxkKGltcG9ydEhlbHBFbGVtZW50KTsKQEAgLTY0LDkg
KzYzLDggQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2
aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAgfQogCiAgICAgICAgIHRo
aXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25J
dGVtKCJpbXBvcnQtcmVjb3JkaW5nIiwgV0kuVUlTdHJpbmcoIkltcG9ydCIpLCAiSW1hZ2VzL0lt
cG9ydC5zdmciLCAxNSwgMTUpOwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9u
SXRlbS50b29sVGlwID0gV0kuVUlTdHJpbmcoIkltcG9ydCByZWNvcmRpbmcgZnJvbSBmaWxlIik7
CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnRvb2xUaXAgPSBXSS5V
SVN0cmluZygiSW1wb3J0Iik7CiAgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25J
dGVtLmJ1dHRvblN0eWxlID0gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRU
ZXh0OwotICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExp
c3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsICgpID0+IHsgV0ku
Y2FudmFzTWFuYWdlci5pbXBvcnRSZWNvcmRpbmcoKTsgfSk7CiAKICAgICAgICAgdGhpcy5fcmVm
cmVzaEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJy
ZWZyZXNoLWFsbCIsIFdJLlVJU3RyaW5nKCJSZWZyZXNoIGFsbCIpLCAiSW1hZ2VzL1JlbG9hZEZ1
bGwuc3ZnIiwgMTMsIDEzKTsKICAgICAgICAgdGhpcy5fcmVmcmVzaEJ1dHRvbk5hdmlnYXRpb25J
dGVtLmVuYWJsZWQgPSBmYWxzZTsKQEAgLTc2LDYgKzc0LDkgQEAgV0kuQ2FudmFzT3ZlcnZpZXdD
b250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b2xsZWMKICAgICAgICAgdGhpcy5fc2hvd0dyaWRCdXR0b25OYXZpZ2F0aW9uSXRlbS5hY3RpdmF0
ZWQgPSAhIVdJLnNldHRpbmdzLnNob3dJbWFnZUdyaWQudmFsdWU7CiAgICAgICAgIHRoaXMuX3No
b3dHcmlkQnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZhbHNlOwogICAgICAgICB0aGlz
Ll9zaG93R3JpZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fc2hvd0dyaWRCdXR0b25DbGlja2Vk
LCB0aGlzKTsKKworICAgICAgICBpbXBvcnROYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVy
KFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2hhbmRsZUltcG9y
dEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX2ltcG9y
dEJ1dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0
ZW1DbGlja2VkLCB0aGlzKTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTI0OSw0ICsyNTAs
OSBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdD
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAgIHsKICAgICAgICAgdGhpcy5fcmVjb3Jk
aW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50SW5wdXRFbGVtZW50LnZhbHVlID0gV0kuc2V0dGluZ3Mu
Y2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50LnZhbHVlOwogICAgIH0KKworICAg
IF9oYW5kbGVJbXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQoZXZlbnQpCisgICAgewor
ICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLmltcG9ydEpTT04oKHJlc3VsdCkgPT4gV0kuY2FudmFz
TWFuYWdlci5wcm9jZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lkZWJhclBhbmVs
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzU2lk
ZWJhclBhbmVsLmpzCmluZGV4IDgyZTVjOWJiMmMwMTIzZTMzZTEyMzE2OGJiNTcxNTkyZTU0Mzlm
NWUuLmU4MGI0OWE2NDk1ZmMyYjc1YzVkYjNkNjczMGFkOTE2NzQ2MGY5OTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1NpZGViYXJQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNTaWRlYmFyUGFuZWwuanMKQEAgLTQwLDkgKzQwLDE5IEBAIFdJLkNhbnZhc1NpZGViYXJQ
YW5lbCA9IGNsYXNzIENhbnZhc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRl
YmFyUGFuCiAgICAgICAgIGNvbnN0IGFsdFRvb2xUaXAgPSBXSS5VSVN0cmluZygiU3RvcCByZWNv
cmRpbmcgY2FudmFzIGFjdGlvbnMiKTsKICAgICAgICAgdGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBuZXcgV0kuVG9nZ2xlQnV0dG9uTmF2aWdhdGlvbkl0ZW0oInJlY29yZC1zdGFy
dC1zdG9wIiwgdG9vbFRpcCwgYWx0VG9vbFRpcCwgIkltYWdlcy9SZWNvcmQuc3ZnIiwgIkltYWdl
cy9TdG9wLnN2ZyIsIDEzLCAxMyk7CiAgICAgICAgIHRoaXMuX3JlY29yZEJ1dHRvbk5hdmlnYXRp
b25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uYnV0dG9uU3R5bGUgPSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFn
ZUFuZFRleHQ7CisgICAgICAgIHRoaXMuX3JlY29yZEJ1dHRvbk5hdmlnYXRpb25JdGVtLmxhYmVs
ID0gV0kuVUlTdHJpbmcoIlN0YXJ0Iik7CiAgICAgICAgIHRoaXMuX3JlY29yZEJ1dHRvbk5hdmln
YXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQu
Q2xpY2tlZCwgdGhpcy5fdG9nZ2xlUmVjb3JkaW5nLCB0aGlzKTsKICAgICAgICAgdGhpcy5fbmF2
aWdhdGlvbkJhci5hZGROYXZpZ2F0aW9uSXRlbSh0aGlzLl9yZWNvcmRCdXR0b25OYXZpZ2F0aW9u
SXRlbSk7CiAKKyAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkJhci5hZGROYXZpZ2F0aW9uSXRlbShu
ZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtKTsKKworICAgICAgICBsZXQgaW1wb3J0QnV0dG9u
TmF2aWdhdGlvbkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImltcG9ydC1yZWNv
cmRpbmciLCBXSS5VSVN0cmluZygiSW1wb3J0IiksICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1LCAx
NSk7CisgICAgICAgIGltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmJ1dHRvblN0eWxlID0gV0ku
QnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRUZXh0OworICAgICAgICBpbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9uSXRl
bS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OworICAgICAgICBpbXBvcnRCdXR0b25OYXZpZ2F0aW9u
SXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50LkNsaWNr
ZWQsIHRoaXMuX2hhbmRsZUltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhpcyk7
CisgICAgICAgIHRoaXMuX25hdmlnYXRpb25CYXIuYWRkTmF2aWdhdGlvbkl0ZW0oaW1wb3J0QnV0
dG9uTmF2aWdhdGlvbkl0ZW0pOworCiAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9uYXZp
Z2F0aW9uQmFyKTsKIAogICAgICAgICBjb25zdCBzdXBwcmVzc0ZpbHRlcmluZyA9IHRydWU7CkBA
IC0yOTcsNiArMzA3LDExIEBAIFdJLkNhbnZhc1NpZGViYXJQYW5lbCA9IGNsYXNzIENhbnZhc1Np
ZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRlYmFyUGFuCiAgICAgICAgIH0KICAg
ICB9CiAKKyAgICBfaGFuZGxlSW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkKGV2ZW50
KQorICAgIHsKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5pbXBvcnRKU09OKChyZXN1bHQpID0+
IFdJLmNhbnZhc01hbmFnZXIucHJvY2Vzc0pTT04ocmVzdWx0KSk7CisgICAgfQorCiAgICAgX3Ry
ZWVPdXRsaW5lU2VsZWN0aW9uRGlkQ2hhbmdlKGV2ZW50KQogICAgIHsKICAgICAgICAgbGV0IHRy
ZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5zZWxlY3RlZEVsZW1lbnQ7CkBAIC0zNTksMTQgKzM3NCwx
NCBAQCBXSS5DYW52YXNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDYW52YXNTaWRlYmFyUGFuZWwgZXh0
ZW5kcyBXSS5OYXZpZ2F0aW9uU2lkZWJhclBhbgogICAgIHsKICAgICAgICAgdGhpcy5fcmVjb3Jk
aW5nVHJlZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKIAotICAgICAgICBpZiAoIXRoaXMuX3Jl
Y29yZGluZykgewotICAgICAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZ1Byb2Nlc3NpbmdPcHRp
b25zQ29udGFpbmVyKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fcmVjb3JkaW5nUHJvY2Vzc2lu
Z09wdGlvbnNDb250YWluZXIucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fcmVjb3Jk
aW5nUHJvY2Vzc2luZ09wdGlvbnNDb250YWluZXIgPSBudWxsOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAodGhpcy5fcmVjb3JkaW5nUHJvY2Vzc2luZ09w
dGlvbnNDb250YWluZXIpIHsKKyAgICAgICAgICAgIHRoaXMuX3JlY29yZGluZ1Byb2Nlc3NpbmdP
cHRpb25zQ29udGFpbmVyLnJlbW92ZSgpOworICAgICAgICAgICAgdGhpcy5fcmVjb3JkaW5nUHJv
Y2Vzc2luZ09wdGlvbnNDb250YWluZXIgPSBudWxsOwogICAgICAgICB9CiAKKyAgICAgICAgaWYg
KCF0aGlzLl9yZWNvcmRpbmcpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgaWYgKCF0
aGlzLl9yZWNvcmRpbmcucmVhZHkpIHsKICAgICAgICAgICAgIGlmICghdGhpcy5fcmVjb3JkaW5n
LnByb2Nlc3NpbmcpCiAgICAgICAgICAgICAgICAgdGhpcy5fcmVjb3JkaW5nLnN0YXJ0UHJvY2Vz
c2luZygpOwpAQCAtNDUyLDYgKzQ2Nyw3IEBAIFdJLkNhbnZhc1NpZGViYXJQYW5lbCA9IGNsYXNz
IENhbnZhc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLk5hdmlnYXRpb25TaWRlYmFyUGFuCiAgICAg
ICAgIH0KIAogICAgICAgICB0aGlzLl9yZWNvcmRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b2dnbGVk
ID0gdGhpcy5fY2FudmFzLnJlY29yZGluZ0FjdGl2ZTsKKyAgICAgICAgdGhpcy5fcmVjb3JkQnV0
dG9uTmF2aWdhdGlvbkl0ZW0ubGFiZWwgPSB0aGlzLl9yZWNvcmRCdXR0b25OYXZpZ2F0aW9uSXRl
bS50b2dnbGVkID8gV0kuVUlTdHJpbmcoIlN0b3AiKSA6IFdJLlVJU3RyaW5nKCJTdGFydCIpOwog
ICAgIH0KIAogICAgIF91cGRhdGVSZWNvcmRpbmdTY29wZUJhcigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUYWJDb250ZW50Vmll
dy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1Rh
YkNvbnRlbnRWaWV3LmpzCmluZGV4IDkyNzVlNzJhMTIxNDY1YTM2MmNmYzY3NjkwNjdmZDI2YjJm
MjRlMTUuLjhlZGI1YTY2YmE4NmU2MjI5ZGFmZTZhNmUzZWFiM2VkMWMzMTkxZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RhYkNv
bnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc1RhYkNvbnRlbnRWaWV3LmpzCkBAIC01NSw2ICs1NSw5IEBAIFdJLkNhbnZhc1Rh
YkNvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250
ZW50QnJvd3NlclRhCiAgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQgPSBu
ZXcgV0kuS2V5Ym9hcmRTaG9ydGN1dChXSS5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVyLlNoaWZ0
LCBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5TcGFjZSwgdGhpcy5faGFuZGxlU3BhY2UuYmluZCh0
aGlzKSk7CiAgICAgICAgIHRoaXMuX3JlY29yZFNpbmdsZUZyYW1lU2hvcnRjdXQuaW1wbGljaXRs
eVByZXZlbnRzRGVmYXVsdCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9yZWNvcmRTaW5nbGVGcmFt
ZVNob3J0Y3V0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiZHJhZ292ZXIiLCB0aGlzLl9oYW5kbGVEcmFnT3Zlci5iaW5kKHRoaXMpKTsK
KyAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCB0aGlzLl9oYW5k
bGVEcm9wLmJpbmQodGhpcykpOwogICAgIH0KIAogICAgIHN0YXRpYyB0YWJJbmZvKCkKQEAgLTE4
MCw4ICsxODMsMTIgQEAgV0kuQ2FudmFzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBDYW52YXNUYWJD
b250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93c2VyVGEKICAgICAgICAgdGhpcy5fb3Zl
cnZpZXdUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChuZXcgV0kuQ2FudmFzVHJlZUVsZW1lbnQoY2Fu
dmFzKSk7CiAgICAgICAgIHRoaXMuX2NhbnZhc0NvbGxlY3Rpb24uYWRkKGNhbnZhcyk7CiAKKyAg
ICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHN1cHByZXNzU2hvd1JlY29yZGlu
ZzogdHJ1ZSwKKyAgICAgICAgfTsKKwogICAgICAgICBmb3IgKGxldCByZWNvcmRpbmcgb2YgY2Fu
dmFzLnJlY29yZGluZ0NvbGxlY3Rpb24pCi0gICAgICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmco
cmVjb3JkaW5nLCB7c3VwcHJlc3NTaG93UmVjb3JkaW5nOiB0cnVlfSk7CisgICAgICAgICAgICB0
aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKICAgICB9CiAKICAgICBfcmVt
b3ZlQ2FudmFzKGNhbnZhcykKQEAgLTI1MSw5ICsyNTgsMTMgQEAgV0kuQ2FudmFzVGFiQ29udGVu
dFZpZXcgPSBjbGFzcyBDYW52YXNUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRCcm93
c2VyVGEKICAgICAgICAgaWYgKCFyZWNvcmRpbmcpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgdGhpcy5fYWRkUmVjb3JkaW5nKHJlY29yZGluZywgewotICAgICAgICAgICAgc3VwcHJl
c3NTaG93UmVjb3JkaW5nOiAhaW5pdGlhdGVkQnlVc2VyIHx8IHRoaXMuY29udGVudEJyb3dzZXIu
Y3VycmVudFJlcHJlc2VudGVkT2JqZWN0cy5zb21lKChyZXByZXNlbnRlZE9iamVjdCkgPT4gcmVw
cmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXSS5SZWNvcmRpbmcpLAotICAgICAgICB9KTsKKyAg
ICAgICAgbGV0IG9wdGlvbnMgPSB7fTsKKworICAgICAgICAvLyBBbHdheXMgc2hvdyBpbXBvcnRl
ZCByZWNvcmRpbmdzLgorICAgICAgICBpZiAocmVjb3JkaW5nLnNvdXJjZSkKKyAgICAgICAgICAg
IG9wdGlvbnMuc3VwcHJlc3NTaG93UmVjb3JkaW5nID0gIWluaXRpYXRlZEJ5VXNlciB8fCB0aGlz
LmNvbnRlbnRCcm93c2VyLmN1cnJlbnRSZXByZXNlbnRlZE9iamVjdHMuc29tZSgocmVwcmVzZW50
ZWRPYmplY3QpID0+IHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuUmVjb3JkaW5nKTsK
KworICAgICAgICB0aGlzLl9hZGRSZWNvcmRpbmcocmVjb3JkaW5nLCBvcHRpb25zKTsKICAgICB9
CiAKICAgICBfaGFuZGxlU3BhY2UoZXZlbnQpCkBAIC0yNzcsNiArMjg4LDI1IEBAIFdJLkNhbnZh
c1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b250ZW50QnJvd3NlclRhCiAKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICB9
CisKKyAgICBfaGFuZGxlRHJhZ092ZXIoZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQu
ZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKCJGaWxlcyIpKQorICAgICAgICAgICAgZXZlbnQu
cHJldmVudERlZmF1bHQoKTsKKyAgICB9CisKKyAgICBfaGFuZGxlRHJvcChldmVudCkKKyAgICB7
CisgICAgICAgIGlmICghZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzIHx8ICFldmVudC5kYXRhVHJh
bnNmZXIuZmlsZXMubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7CisKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5yZWFkSlNPTihl
dmVudC5kYXRhVHJhbnNmZXIuZmlsZXMsIChyZXN1bHQpID0+IFdJLmNhbnZhc01hbmFnZXIucHJv
Y2Vzc0pTT04ocmVzdWx0KSkKKyAgICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAgICAgZXZl
bnQuZGF0YVRyYW5zZmVyLmNsZWFyRGF0YSgpOworICAgICAgICB9KTsKKyAgICB9CiB9OwogCiBX
SS5DYW52YXNUYWJDb250ZW50Vmlldy5UeXBlID0gImNhbnZhcyI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGll
cy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRN
ZW51VXRpbGl0aWVzLmpzCmluZGV4IGQzNjZhNzZhMWEyMTdhYWI1OWUyMGEyNjFhYjFiMDIwYTYz
MzhkZTAuLmRlYzNjZDljMzdlYWRhOGRkNDIyODRmNWQ3NzRhMWU0YjliMGI4MDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51
VXRpbGl0aWVzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzCkBAIC01NSw3ICs1NSw3IEBAIFdJLmFwcGVuZENv
bnRleHRNZW51SXRlbXNGb3JTb3VyY2VDb2RlID0gZnVuY3Rpb24oY29udGV4dE1lbnUsIHNvdXJj
ZUNvZGVPckxvY2F0CiAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiU2F2
ZSBGaWxlIiksICgpID0+IHsKICAgICAgICAgc291cmNlQ29kZS5yZXF1ZXN0Q29udGVudCgpLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgY29uc3QgZm9yY2VTYXZlQXMgPSB0cnVlOwotICAgICAg
ICAgICAgV0kuc2F2ZURhdGFUb0ZpbGUoeworICAgICAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5z
YXZlKHsKICAgICAgICAgICAgICAgICB1cmw6IHNvdXJjZUNvZGUudXJsIHx8ICIiLAogICAgICAg
ICAgICAgICAgIGNvbnRlbnQ6IHNvdXJjZUNvZGUuY29udGVudAogICAgICAgICAgICAgfSwgZm9y
Y2VTYXZlQXMpOwpAQCAtMjM4LDcgKzIzOCw3IEBAIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNG
b3JET01Ob2RlID0gZnVuY3Rpb24oY29udGV4dE1lbnUsIGRvbU5vZGUsIG9wdGlvbnMgPSB7CiAg
ICAgICAgICAgICAgICAgICAgIE51bWJlci56ZXJvUGFkKGRhdGUuZ2V0U2Vjb25kcygpLCAyKSwK
ICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgIGxldCBmaWxlbmFtZSA9IFdJLlVJ
U3RyaW5nKCJTY3JlZW4gU2hvdCAlcy0lcy0lcyBhdCAlcy4lcy4lcyIpLmZvcm1hdCguLi52YWx1
ZXMpOwotICAgICAgICAgICAgICAgIFdJLnNhdmVEYXRhVG9GaWxlKHsKKyAgICAgICAgICAgICAg
ICBXSS5GaWxlVXRpbGl0aWVzLnNhdmUoewogICAgICAgICAgICAgICAgICAgICB1cmw6IGVuY29k
ZVVSSShgd2ViLWluc3BlY3RvcjovLy8ke2ZpbGVuYW1lfS5wbmdgKSwKICAgICAgICAgICAgICAg
ICAgICAgY29udGVudDogcGFyc2VEYXRhVVJMKGRhdGFVUkwpLmRhdGEsCiAgICAgICAgICAgICAg
ICAgICAgIGJhc2U2NEVuY29kZWQ6IHRydWUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2dDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCmluZGV4IDY0
ODA4MTg2MTJkNjM4YWFmM2M5Y2YyZDM4ODQ3ZTQwMzU4ZDY3MWIuLjFjYWNhNWM0ZDMwYmY5ZDE1
MzMxMDUxMWUzZjU2NDk5NTAzYWNlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvZ0NvbnRlbnRWaWV3LmpzCkBAIC00NzIs
NyArNDcyLDcgQEAgV0kuTG9nQ29udGVudFZpZXcgPSBjbGFzcyBMb2dDb250ZW50VmlldyBleHRl
bmRzIFdJLkNvbnRlbnRWaWV3CiAKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0o
V0kuVUlTdHJpbmcoIlNhdmUgU2VsZWN0ZWQiKSwgKCkgPT4gewogICAgICAgICAgICAgICAgIGNv
bnN0IGZvcmNlU2F2ZUFzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBXSS5zYXZlRGF0YVRvRmls
ZSh7CisgICAgICAgICAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5zYXZlKHsKICAgICAgICAgICAg
ICAgICAgICAgdXJsOiAid2ViLWluc3BlY3RvcjovLy9Db25zb2xlLnR4dCIsCiAgICAgICAgICAg
ICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX2Zvcm1hdE1lc3NhZ2VzQXNEYXRhKHRydWUpLAogICAg
ICAgICAgICAgICAgIH0sIGZvcmNlU2F2ZUFzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUYWJsZUNvbnRlbnRWaWV3LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RhYmxlQ29u
dGVudFZpZXcuanMKaW5kZXggOGQ5ZGNiZTUzYWY1NjE5Yjg5M2VlMzk0NTI2YzNlZmQ3ZDE1MjU1
YS4uYzFlNjM3NjM4ZmI1NGRjYzc1ZTFhYTg1NWM1ZGU5NTk5NmY0OTkyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RhYmxlQ29u
dGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvTmV0d29ya1RhYmxlQ29udGVudFZpZXcuanMKQEAgLTE4NzAsNyArMTg3MCw3IEBAIFdJLk5l
dHdvcmtUYWJsZUNvbnRlbnRWaWV3ID0gY2xhc3MgTmV0d29ya1RhYmxlQ29udGVudFZpZXcgZXh0
ZW5kcyBXSS5Db250ZW50VmllCiAgICAgICAgICAgICBsZXQgbWFpbkZyYW1lID0gV0kubmV0d29y
a01hbmFnZXIubWFpbkZyYW1lOwogICAgICAgICAgICAgbGV0IGFyY2hpdmVOYW1lID0gbWFpbkZy
YW1lLm1haW5SZXNvdXJjZS51cmxDb21wb25lbnRzLmhvc3QgfHwgbWFpbkZyYW1lLm1haW5SZXNv
dXJjZS5kaXNwbGF5TmFtZSB8fCAiQXJjaGl2ZSI7CiAgICAgICAgICAgICBsZXQgdXJsID0gIndl
Yi1pbnNwZWN0b3I6Ly8vIiArIGVuY29kZVVSSShhcmNoaXZlTmFtZSkgKyAiLmhhciI7Ci0gICAg
ICAgICAgICBXSS5zYXZlRGF0YVRvRmlsZSh7CisgICAgICAgICAgICBXSS5GaWxlVXRpbGl0aWVz
LnNhdmUoewogICAgICAgICAgICAgICAgIHVybCwKICAgICAgICAgICAgICAgICBjb250ZW50OiBK
U09OLnN0cmluZ2lmeShoYXIsIG51bGwsIDIpLAogICAgICAgICAgICAgICAgIGZvcmNlU2F2ZUFz
OiB0cnVlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVjb3JkaW5nQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5qcwppbmRleCA2MTk4ZDUxMjcx
Yzk4MWI0NDIxOGZiN2ZmYWUwNmQ4ZTAyMzYzMzU4Li41OTYyNDJkNDc2NjNhOTU3YjE4YjFmMTEw
NTA2NmE2ZmFiMTgxZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZWNvcmRpbmdDb250ZW50Vmlldy5qcwpAQCAt
MTgzLDcgKzE4Myw3IEBAIFdJLlJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgUmVjb3JkaW5n
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICBsZXQgZmlsZW5hbWUg
PSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmRpc3BsYXlOYW1lOwogICAgICAgICBsZXQgdXJsID0g
IndlYi1pbnNwZWN0b3I6Ly8vIiArIGVuY29kZVVSSShmaWxlbmFtZSkgKyAiLmpzb24iOwogCi0g
ICAgICAgIFdJLnNhdmVEYXRhVG9GaWxlKHsKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5zYXZl
KHsKICAgICAgICAgICAgIHVybCwKICAgICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5
KHRoaXMucmVwcmVzZW50ZWRPYmplY3QudG9KU09OKCkpLAogICAgICAgICAgICAgZm9yY2VTYXZl
QXM6IHRydWUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURl
Y2xhcmF0aW9uU2VjdGlvbi5qcwppbmRleCBmOTA0MWNmNTg5MTQ2YjhmNDdhMzY1M2ZmNTEwNmEw
MDllMWM3OTE3Li4xMjBmN2ZhYzhlZDFiZDNiNjRiNmEyMDNmZTllOTc4OGUwMDJlM2Q3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRz
aGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24uanMKQEAgLTQ1Niw3ICs0NTYsNyBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFy
YXRpb25TZWN0aW9uID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uUwogICAg
ICAgICAgICAgdXJsID0gc291cmNlQ29kZS51cmw7CiAKICAgICAgICAgY29uc3Qgc2F2ZUFzID0g
ZXZlbnQuc2hpZnRLZXk7Ci0gICAgICAgIFdJLnNhdmVEYXRhVG9GaWxlKHt1cmw6IHVybCwgY29u
dGVudDogc291cmNlQ29kZS5jb250ZW50fSwgc2F2ZUFzKTsKKyAgICAgICAgV0kuRmlsZVV0aWxp
dGllcy5zYXZlKHt1cmw6IHVybCwgY29udGVudDogc291cmNlQ29kZS5jb250ZW50fSwgc2F2ZUFz
KTsKICAgICB9CiAKICAgICBfaGFuZGxlTW91c2VEb3duKGV2ZW50KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>