<?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>217031</bug_id>
          
          <creation_ts>2020-09-27 01:36:20 -0700</creation_ts>
          <short_desc>Web Inspector: add checkbox to local override popover to allow it to skip the network</short_desc>
          <delta_ts>2020-09-28 20:50:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=217032</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>207446</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1692330</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-27 01:36:20 -0700</bug_when>
    <thetext>now that we have `Network.interceptRequestWithResponse`, we should be able to allow existing response overrides to skip the network if so desired</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692332</commentid>
    <comment_count>1</comment_count>
      <attachid>409822</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-27 01:42:16 -0700</bug_when>
    <thetext>Created attachment 409822
Patch

this could probably have some special UI treatment (i.e. maybe use `StepOver.svg` inside a box for &quot;skip network&quot; and then have up/down arrows inside a box for request/response), but i imagine that much of that will only really be needed once a UI exists for request interception</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692333</commentid>
    <comment_count>2</comment_count>
      <attachid>409822</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-27 01:44:39 -0700</bug_when>
    <thetext>Comment on attachment 409822
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/NetworkManager.js:939
&gt; +        if (window.InspectorTest) {
&gt; +            // FIXME: &lt;https://webkit.org/b/217032&gt; Web Inspector: add UI for request interception
&gt; +            this.dispatchEventToListeners(WI.NetworkManager.Event.RequestIntercepted, {target, requestId, request});
&gt; +            return;
&gt; +        }

I am planning on migrating all of the request interception tests to use `WI.LocalResourceOverride` in bug 217032.  I didn&apos;t do that in this patch because that&apos;s likely going to be a more involved effort and `Network.interceptRequestWithResponse` uses the same data as the existing `Network.interceptWithResponse`, so there&apos;s very little new here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692575</commentid>
    <comment_count>3</comment_count>
      <attachid>409822</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-28 09:56:36 -0700</bug_when>
    <thetext>Comment on attachment 409822
Patch

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

r=me, looks good overall.

I prefer &apos;WI.LocalResourceOverride.Type.InterceptRequest&apos; to InterceptRequestWithResponse. I don&apos;t think the &apos;WithResponse&apos; adds anything.

Also, please investigate mac-wk2 EWS failure.

&gt; Source/WebInspectorUI/UserInterface/Controllers/NetworkManager.js:961
&gt; +            base64Encoded: revision.base64Encoded,

Nit: !! would make it more clear this is a bool.

&gt; Source/WebInspectorUI/UserInterface/Controllers/NetworkManager.js:1479
&gt; +        if (localResourceOverride.disabled)

Soo nice.

&gt; Source/WebInspectorUI/UserInterface/Models/LocalResourceOverride.js:75
&gt; +        // COMPATIBILITY (iOS 13.4): Network.interceptWithRequest/Network.interceptRequestWithResponse did not exist yet.

Have you tested this patch when inspecting iOS 13.4?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692773</commentid>
    <comment_count>4</comment_count>
      <attachid>409822</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-28 18:31:42 -0700</bug_when>
    <thetext>Comment on attachment 409822
Patch

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

(In reply to Brian Burg from comment #3)
&gt; I prefer &apos;WI.LocalResourceOverride.Type.InterceptRequest&apos; to InterceptRequestWithResponse. I don&apos;t think the &apos;WithResponse&apos; adds anything.
So actually, there&apos;s a difference between `InterceptRequest` (which I plan to add in bug 217032) and `InterceptRequestWithResponse`.  The former is/(will be) used to replace the request part of network activity matching the URL with the data as configured in the UI using `Network.interceptWithRequest`.  The latter is specifically about intercepting requests matching the URL, stopping them, and then simulating a response with the data as configured in the UI using `Network.interceptRequestWithResponse`, thereby &quot;skipping&quot; the network entirely (i.e. nothing leaves the computer, the server doesn&apos;t know about it, etc.).  This patch only adds support for the latter, as there are very few changes that need to be made to the UI (or really any of the frontend logic) because it uses the same data as `Network.interceptWithResponse` meaning that it can share the same UI as response overrides.

I&apos;ll rename this to `WI.LocalResourceOverride.InterceptType.ResponseSkippingNetwork` for clarity :)

&gt; Also, please investigate mac-wk2 EWS failure.
this was me forgetting to update `WI.LocalResourceOverride.create` in LayoutTests 🤦‍♂️

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/LocalResourceOverride.js:75
&gt;&gt; +        // COMPATIBILITY (iOS 13.4): Network.interceptWithRequest/Network.interceptRequestWithResponse did not exist yet.
&gt; 
&gt; Have you tested this patch when inspecting iOS 13.4?

Kinda?  This is actually a compatibility for inspecting macOS too if the user has a local override and then updates Safari.  I didn&apos;t directly test inspecting iOS13.4 but I had an existing local override before I wrote this patch that was &quot;upgraded&quot; without issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692774</commentid>
    <comment_count>5</comment_count>
      <attachid>409939</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-28 18:32:00 -0700</bug_when>
    <thetext>Created attachment 409939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692812</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-28 20:49:37 -0700</bug_when>
    <thetext>Committed r267723: &lt;https://trac.webkit.org/changeset/267723&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409939.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692813</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-28 20:50:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/69730820&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409822</attachid>
            <date>2020-09-27 01:42:16 -0700</date>
            <delta_ts>2020-09-28 18:32:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217031-20200927014215.patch</filename>
            <type>text/plain</type>
            <size>37873</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDg0MDg0MDhiMmQwZGY0YzNjYjNjNDZkZGM4NWYy
ODVhN2NiYzczZWMuLmFlOGEwYWE1NmM3YTRkNDE3MzVhOTIxMDFhYWQxNGE4Y2IxYmE2MTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTA5LTI2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgY2hlY2tib3ggdG8gbG9jYWwgb3ZlcnJpZGUgcG9wb3ZlciB0byBhbGxvdyBpdCB0byBza2lw
IHRoZSBuZXR3b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTcwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0xvY2FsUmVzb3VyY2VPdmVycmlkZS5qczoKKyAg
ICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSk6CisgICAgICAgIChXSS5Mb2NhbFJlc291
cmNlT3ZlcnJpZGUuY3JlYXRlKToKKyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5m
cm9tSlNPTik6CisgICAgICAgIChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUucHJvdG90eXBlLnRv
SlNPTik6CisgICAgICAgIChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUucHJvdG90eXBlLmdldCB0
eXBlKTogQWRkZWQuCisgICAgICAgIChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUucHJvdG90eXBl
LnNhdmVJZGVudGl0eVRvQ29va2llKToKKyAgICAgICAgSW50cm9kdWNlIGEgYFdJLkxvY2FsUmVz
b3VyY2VPdmVycmlkZS5UeXBlYCB0aGF0IGlzIHVzZWQgd2hlbiBoYW5kbGluZyByZXF1ZXN0L3Jl
c3BvbnNlCisgICAgICAgIGludGVyY2VwdGlvbnMgdG8gZGV0ZXJtaW5lZCB0aGUgYE5ldHdvcmtg
IGNvbW1hbmQgZm9yIGNvbnRpbnVpbmcuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIuc3Vw
cG9ydHNPdmVycmlkaW5nUmVxdWVzdHNXaXRoUmVzcG9uc2VzKTogQWRkZWQuCisgICAgICAgIChX
SS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRpbmdSZXNwb25zZXMpOiBBZGRlZC4KKyAg
ICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5pbml0aWFsaXplVGFyZ2V0KToKKyAg
ICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5hZGRMb2NhbFJlc291cmNlT3ZlcnJp
ZGUpOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLnJlbW92ZUxvY2FsUmVz
b3VyY2VPdmVycmlkZSk6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUucmVx
dWVzdEludGVyY2VwdGVkKToKKyAgICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5y
ZXNwb25zZUludGVyY2VwdGVkKToKKyAgICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlw
ZS5fY29tbWFuZEFyZ3VtZW50c0ZvckludGVyY2VwdGlvbik6CisgICAgICAgIChXSS5OZXR3b3Jr
TWFuYWdlci5wcm90b3R5cGUuX2FkZEludGVyY2VwdGlvbik6IEFkZGVkLgorICAgICAgICAoV0ku
TmV0d29ya01hbmFnZXIucHJvdG90eXBlLl9yZW1vdmVJbnRlcmNlcHRpb24pOiBBZGRlZC4KKyAg
ICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5faGFuZGxlUmVzb3VyY2VPdmVycmlk
ZURpc2FibGVkQ2hhbmdlZCk6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0xv
Y2FsUmVzb3VyY2VPdmVycmlkZXMpOiBEZWxldGVkLgorICAgICAgICBBZGQgbG9naWMgZm9yIGBO
ZXR3b3JrLmludGVyY2VwdFJlcXVlc3RXaXRoUmVzcG9uc2VgIGluIGBOZXR3b3JrLnJlcXVlc3RJ
bnRlcmNlcHRlZGAuCisgICAgICAgIERyaXZlLWJ5OiByZWZhY3RvciBjb21tb24gbG9naWMgaW50
byBtZW1iZXIgZnVuY3Rpb25zLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Mb2Nh
bFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyLmpzOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92
ZXJyaWRlUG9wb3Zlci5wcm90b3R5cGUuZ2V0IHNlcmlhbGl6ZWREYXRhKToKKyAgICAgICAgKFdJ
LkxvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIucHJvdG90eXBlLnNob3cpOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5jc3M6Cisg
ICAgICAgICgucG9wb3ZlciAubG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtcG9wb3Zlci1jb250ZW50
IC5hZGQtaGVhZGVyICsgLnJlZmVyZW5jZS1wYWdlLWxpbmstY29udGFpbmVyKTogQWRkZWQuCisg
ICAgICAgICgucG9wb3ZlciAubG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtcG9wb3Zlci1jb250ZW50
IC5vcHRpb25zIHRkKTogQWRkZWQuCisgICAgICAgICgucG9wb3ZlciAubG9jYWwtcmVzb3VyY2Ut
b3ZlcnJpZGUtcG9wb3Zlci1jb250ZW50IC5yZWZlcmVuY2UtcGFnZS1saW5rLWNvbnRhaW5lcik6
IERlbGV0ZWQuCisgICAgICAgIEFkZCBhbiAiT3B0aW9ucyIgcm93IGNvbnRhaW5pbmcgYSAiWyBd
IFNraXAgTmV0d29yayIgY2hlY2tib3ggZm9yIGNvbnRyb2xsaW5nIHdoZXRoZXIKKyAgICAgICAg
YE5ldHdvcmsuaW50ZXJjZXB0V2l0aFJlc3BvbnNlYCBvciBgTmV0d29yay5pbnRlcmNlcHRSZXF1
ZXN0V2l0aFJlc3BvbnNlYCBpcyB1c2VkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2Rl
bHMvUmVzb3VyY2UuanM6CisgICAgICAgIChXSS5SZXNvdXJjZS5wcm90b3R5cGUuYXN5bmMgY3Jl
YXRlTG9jYWxSZXNvdXJjZU92ZXJyaWRlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0NvbnRleHRNZW51VXRpbGl0aWVzLmpzOgorICAgICAgICAoV0kuYXBwZW5kQ29udGV4dE1lbnVJ
dGVtc0ZvclNvdXJjZUNvZGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRm9udFJl
c291cmNlQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5Gb250UmVzb3VyY2VDb250ZW50Vmll
dy5wcm90b3R5cGUuY29udGVudEF2YWlsYWJsZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9JbWFnZVJlc291cmNlQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5JbWFnZVJlc291
cmNlQ29udGVudFZpZXcucHJvdG90eXBlLmNvbnRlbnRBdmFpbGFibGUpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQuanM6Cisg
ICAgICAgIChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudC5wcm90b3R5cGUud2ls
bERpc21pc3NQb3BvdmVyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL09wZW5SZXNv
dXJjZURpYWxvZy5qczoKKyAgICAgICAgKFdJLk9wZW5SZXNvdXJjZURpYWxvZy5wcm90b3R5cGUu
X2FkZExvY2FsUmVzb3VyY2VPdmVycmlkZXMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvUmVzb3VyY2VDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLlJlc291cmNlQ29udGVudFZp
ZXcpOgorICAgICAgICAoV0kuUmVzb3VyY2VDb250ZW50Vmlldy5wcm90b3R5cGUuY2xvc2VkKToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBh
bmVsLmpzOgorICAgICAgICAoV0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwpOgorICAg
ICAgICAoV0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLl93aWxsRGlz
bWlzc0xvY2FsT3ZlcnJpZGVQb3BvdmVyKToKKyAgICAgICAgKFdJLlNvdXJjZXNOYXZpZ2F0aW9u
U2lkZWJhclBhbmVsLnByb3RvdHlwZS5fYWRkTG9jYWxPdmVycmlkZSk6CisgICAgICAgIChXSS5T
b3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlbW92ZVJlc291cmNlT3Zl
cnJpZGUpOgorICAgICAgICAoV0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90
eXBlLl9wb3B1bGF0ZUNyZWF0ZVJlc291cmNlQ29udGV4dE1lbnUpOgorICAgICAgICBSZW5hbWUg
YHN1cHBvcnRzTG9jYWxSZXNvdXJjZU92ZXJyaWRlc2AgdG8gYHN1cHBvcnRzT3ZlcnJpZGluZ1Jl
c3BvbnNlc2AgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanM6CisKIDIwMjAtMDktMjUgIE5pa2l0YSBWYXNpbHlldiAgPG52
YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5jYXVnaHQgRXhjZXB0aW9uOiBUeXBlRXJy
b3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGhpcy5saXN0SXRlbUVsZW1l
bnQuY2xhc3NMaXN0JykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6
YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGRjZjRh
ZjcyMzQ2ZDA5NWI4OGU1Zjg4MzNmOWQzN2VmMjNiMjRjZjIuLjNjMTljNjFmOWVkMjlhNmQ3ZjNk
YmIyOTFjNDg4YTc0N2U4ZTEyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9M
b2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpA
QCAtMTIwNiw2ICsxMjA2LDggQEAgbG9jYWxpemVkU3RyaW5nc1siU2l0ZS1zcGVjaWZpYyBIYWNr
cyJdID0gIlNpdGUtc3BlY2lmaWMgSGFja3MiOwogbG9jYWxpemVkU3RyaW5nc1siU2l6ZSJdID0g
IlNpemUiOwogbG9jYWxpemVkU3RyaW5nc1siU2l6ZSBvZiBjdXJyZW50IG9iamVjdCBwbHVzIGFs
bCBvYmplY3RzIGl0IGtlZXBzIGFsaXZlIl0gPSAiU2l6ZSBvZiBjdXJyZW50IG9iamVjdCBwbHVz
IGFsbCBvYmplY3RzIGl0IGtlZXBzIGFsaXZlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNpemVzIl0g
PSAiU2l6ZXMiOworLyogTGFiZWwgZm9yIGNoZWNrYm94IHRoYXQgY29udHJvbHMgd2hldGhlciB0
aGUgbG9jYWwgb3ZlcnJpZGUgd2lsbCBhY3R1YWxseSBwZXJmb3JtIGEgbmV0d29yayByZXF1ZXN0
IG9yIHNraXAgaXQgdG8gaW1tZWRpYXRlbHkgc2VydmUgdGhlIHJlc3BvbnNlLiAqLworbG9jYWxp
emVkU3RyaW5nc1siU2tpcCBOZXR3b3JrIEAgTG9jYWwgT3ZlcnJpZGUgUG9wb3ZlciBPcHRpb25z
Il0gPSAiU2tpcCBOZXR3b3JrIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNuYXBzaG90ICVkIl0gPSAi
U25hcHNob3QgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siU25hcHNob3QgJWQgXHUyMDE0ICVzIl0g
PSAiU25hcHNob3QgJWQgXHUyMDE0ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNuYXBzaG90IENv
bXBhcmlzb24gKCVkIGFuZCAlZCkiXSA9ICJTbmFwc2hvdCBDb21wYXJpc29uICglZCBhbmQgJWQp
IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanMKaW5kZXggZDI3ZjAyY2FmMDI4ODMz
MzZjMDExZTE1M2ZjMTI3YTlmYWQyMTg2Yy4uNzRhN2Q0YzgxOGM4YjBmZGNmMjVlNWZkNjliNzU0
OWQwYzVhZDcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanMKQEAgLTU3LDcg
KzU3LDcgQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogCiAgICAgICAgIFdJLkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV0kuRnJhbWUu
RXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVGcmFtZU1haW5SZXNvdXJj
ZURpZENoYW5nZSwgdGhpcyk7CiAKLSAgICAgICAgaWYgKE5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRz
TG9jYWxSZXNvdXJjZU92ZXJyaWRlcygpKSB7CisgICAgICAgIGlmIChOZXR3b3JrTWFuYWdlci5z
dXBwb3J0c092ZXJyaWRpbmdSZXNwb25zZXMoKSkgewogICAgICAgICAgICAgV0kuUmVzb3VyY2Uu
YWRkRXZlbnRMaXN0ZW5lcihXSS5Tb3VyY2VDb2RlLkV2ZW50LkNvbnRlbnREaWRDaGFuZ2UsIHRo
aXMuX2hhbmRsZVJlc291cmNlQ29udGVudERpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgICAgICBX
SS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuYWRkRXZlbnRMaXN0ZW5lcihXSS5Mb2NhbFJlc291cmNl
T3ZlcnJpZGUuRXZlbnQuRGlzYWJsZWRDaGFuZ2VkLCB0aGlzLl9oYW5kbGVSZXNvdXJjZU92ZXJy
aWRlRGlzYWJsZWRDaGFuZ2VkLCB0aGlzKTsKIApAQCAtNjgsNiArNjgsMTkgQEAgV0kuTmV0d29y
a01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICAgICAgICAgIGZvciAobGV0IHNlcmlhbGl6ZWRMb2NhbFJlc291cmNlT3ZlcnJpZGUgb2Ygc2Vy
aWFsaXplZExvY2FsUmVzb3VyY2VPdmVycmlkZXMpIHsKICAgICAgICAgICAgICAgICAgICAgbGV0
IGxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5mcm9tSlNP
TihzZXJpYWxpemVkTG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKIAorICAgICAgICAgICAgICAgICAg
ICBsZXQgc3VwcG9ydGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobG9j
YWxSZXNvdXJjZU92ZXJyaWRlLnR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBXSS5M
b2NhbFJlc291cmNlT3ZlcnJpZGUuVHlwZS5JbnRlcmNlcHRSZXF1ZXN0V2l0aFJlc3BvbnNlOgor
ICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkID0gV0kuTmV0d29ya01hbmFnZXIuc3Vw
cG9ydHNPdmVycmlkaW5nUmVxdWVzdHNXaXRoUmVzcG9uc2VzKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIFdJLkxvY2FsUmVzb3Vy
Y2VPdmVycmlkZS5UeXBlLkludGVyY2VwdFJlc3BvbnNlOgorICAgICAgICAgICAgICAgICAgICAg
ICAgc3VwcG9ydGVkID0gV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNPdmVycmlkaW5nUmVzcG9u
c2VzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXN1cHBvcnRlZCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IG51
bGw7CiAgICAgICAgICAgICAgICAgICAgIFdJLm9iamVjdFN0b3Jlcy5sb2NhbFJlc291cmNlT3Zl
cnJpZGVzLmFzc29jaWF0ZU9iamVjdChsb2NhbFJlc291cmNlT3ZlcnJpZGUsIGtleSwgc2VyaWFs
aXplZExvY2FsUmVzb3VyY2VPdmVycmlkZSk7CiAKQEAgLTk3LDkgKzExMCwxNiBAQCBXSS5OZXR3
b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgICAgICAmJiBJbnNwZWN0b3JCYWNrZW5kLmhhc0NvbW1hbmQoIk5ldHdvcmsuZ2V0U2VyaWFs
aXplZENlcnRpZmljYXRlIik7CiAgICAgfQogCi0gICAgc3RhdGljIHN1cHBvcnRzTG9jYWxSZXNv
dXJjZU92ZXJyaWRlcygpCisgICAgc3RhdGljIHN1cHBvcnRzT3ZlcnJpZGluZ1JlcXVlc3RzV2l0
aFJlc3BvbnNlcygpCiAgICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXND
b21tYW5kKCJOZXR3b3JrLnNldEludGVyY2VwdGlvbkVuYWJsZWQiKTsKKyAgICAgICAgLy8gQ09N
UEFUSUJJTElUWSAoaU9TIDEzLjQpOiBOZXR3b3JrLmludGVyY2VwdFJlcXVlc3RXaXRoUmVzcG9u
c2UgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhh
c0NvbW1hbmQoIk5ldHdvcmsuaW50ZXJjZXB0UmVxdWVzdFdpdGhSZXNwb25zZSIpOworICAgIH0K
KworICAgIHN0YXRpYyBzdXBwb3J0c092ZXJyaWRpbmdSZXNwb25zZXMoKQorICAgIHsKKyAgICAg
ICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjApOiBOZXR3b3JrLmludGVyY2VwdFdpdGhSZXNw
b25zZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQu
aGFzQ29tbWFuZCgiTmV0d29yay5pbnRlcmNlcHRXaXRoUmVzcG9uc2UiKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgc3VwcG9ydHNCb290c3RyYXBTY3JpcHQoKQpAQCAtMTYxLDE0ICsxODEsOCBAQCBX
SS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuc2V0SW50ZXJjZXB0aW9u
RW5hYmxlZCh0aGlzLl9pbnRlcmNlcHRpb25FbmFibGVkKTsKIAogICAgICAgICAgICAgICAgIGZv
ciAobGV0IGxvY2FsUmVzb3VyY2VPdmVycmlkZSBvZiB0aGlzLl9sb2NhbFJlc291cmNlT3ZlcnJp
ZGVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmRp
c2FibGVkKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LmFk
ZEludGVyY2VwdGlvbi5pbnZva2UoewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDog
bG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGFnZTogSW5zcGVjdG9yQmFja2VuZC5FbnVtLk5ldHdvcmsuTmV0d29ya1N0YWdlLlJlc3BvbnNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmU6IGxvY2FsUmVzb3Vy
Y2VPdmVycmlkZS5pc0Nhc2VTZW5zaXRpdmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
aXNSZWdleDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmlzUmVnZXgsCi0gICAgICAgICAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBp
ZiAoIWxvY2FsUmVzb3VyY2VPdmVycmlkZS5kaXNhYmxlZCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX2FkZEludGVyY2VwdGlvbihsb2NhbFJlc291cmNlT3ZlcnJpZGUsIHRhcmdldCk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0zNjQsMjAg
KzM3OCw4IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgaWYgKCF0aGlzLl9yZXN0b3JpbmdMb2NhbFJlc291cmNlT3Zl
cnJpZGVzKQogICAgICAgICAgICAgV0kub2JqZWN0U3RvcmVzLmxvY2FsUmVzb3VyY2VPdmVycmlk
ZXMucHV0T2JqZWN0KGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CiAKLSAgICAgICAgaWYgKCFsb2Nh
bFJlc291cmNlT3ZlcnJpZGUuZGlzYWJsZWQpIHsKLSAgICAgICAgICAgIGxldCBjb21tYW5kQXJn
dW1lbnRzID0gewotICAgICAgICAgICAgICAgIHVybDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVy
bCwKLSAgICAgICAgICAgICAgICBjYXNlU2Vuc2l0aXZlOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUu
aXNDYXNlU2Vuc2l0aXZlLAotICAgICAgICAgICAgICAgIGlzUmVnZXg6IGxvY2FsUmVzb3VyY2VP
dmVycmlkZS5pc1JlZ2V4LAotICAgICAgICAgICAgICAgIHN0YWdlOiBJbnNwZWN0b3JCYWNrZW5k
LkVudW0uTmV0d29yay5OZXR3b3JrU3RhZ2UuUmVzcG9uc2UsCi0gICAgICAgICAgICB9OwotCi0g
ICAgICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMCk6IE5ldHdvcmsuYWRkSW50ZXJj
ZXB0aW9uIGRpZCBub3QgZXhpc3QuCi0gICAgICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0ku
dGFyZ2V0cykgewotICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiTmV0d29y
ay5hZGRJbnRlcmNlcHRpb24iKSkKLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Lk5ldHdvcmtB
Z2VudC5hZGRJbnRlcmNlcHRpb24uaW52b2tlKGNvbW1hbmRBcmd1bWVudHMpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9CisgICAgICAgIGlmICghbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmRpc2Fi
bGVkKQorICAgICAgICAgICAgdGhpcy5fYWRkSW50ZXJjZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVy
cmlkZSk7CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuTmV0d29y
a01hbmFnZXIuRXZlbnQuTG9jYWxSZXNvdXJjZU92ZXJyaWRlQWRkZWQsIHtsb2NhbFJlc291cmNl
T3ZlcnJpZGV9KTsKICAgICB9CkBAIC0zOTcsMjAgKzM5OSw4IEBAIFdJLk5ldHdvcmtNYW5hZ2Vy
ID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKCF0
aGlzLl9yZXN0b3JpbmdMb2NhbFJlc291cmNlT3ZlcnJpZGVzKQogICAgICAgICAgICAgV0kub2Jq
ZWN0U3RvcmVzLmxvY2FsUmVzb3VyY2VPdmVycmlkZXMuZGVsZXRlT2JqZWN0KGxvY2FsUmVzb3Vy
Y2VPdmVycmlkZSk7CiAKLSAgICAgICAgaWYgKCFsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJs
ZWQpIHsKLSAgICAgICAgICAgIGxldCBjb21tYW5kQXJndW1lbnRzID0gewotICAgICAgICAgICAg
ICAgIHVybDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVybCwKLSAgICAgICAgICAgICAgICBjYXNl
U2Vuc2l0aXZlOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUuaXNDYXNlU2Vuc2l0aXZlLAotICAgICAg
ICAgICAgICAgIGlzUmVnZXg6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS5pc1JlZ2V4LAotICAgICAg
ICAgICAgICAgIHN0YWdlOiBJbnNwZWN0b3JCYWNrZW5kLkVudW0uTmV0d29yay5OZXR3b3JrU3Rh
Z2UuUmVzcG9uc2UsCi0gICAgICAgICAgICB9OwotCi0gICAgICAgICAgICAvLyBDT01QQVRJQklM
SVRZIChpT1MgMTMuMCk6IE5ldHdvcmsucmVtb3ZlSW50ZXJjZXB0aW9uIGRpZCBub3QgZXhpc3Qu
Ci0gICAgICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgewotICAgICAgICAg
ICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiTmV0d29yay5yZW1vdmVJbnRlcmNlcHRpb24i
KSkKLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Lk5ldHdvcmtBZ2VudC5yZW1vdmVJbnRlcmNl
cHRpb24uaW52b2tlKGNvbW1hbmRBcmd1bWVudHMpOwotICAgICAgICAgICAgfQotICAgICAgICB9
CisgICAgICAgIGlmICghbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmRpc2FibGVkKQorICAgICAgICAg
ICAgdGhpcy5fcmVtb3ZlSW50ZXJjZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CiAKICAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuTmV0d29ya01hbmFnZXIuRXZl
bnQuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUmVtb3ZlZCwge2xvY2FsUmVzb3VyY2VPdmVycmlkZX0p
OwogICAgIH0KQEAgLTk0Miw4ICs5MzIsMzggQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBO
ZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgcmVxdWVzdEludGVyY2VwdGVk
KHRhcmdldCwgcmVxdWVzdElkLCByZXF1ZXN0KQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IGFk
ZCByZXF1ZXN0IGludGVyY2VwdGlvbiBzdXBwb3J0IHRvIHRoZSBmcm9udGVuZC4KLSAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuTmV0d29ya01hbmFnZXIuRXZlbnQuUmVx
dWVzdEludGVyY2VwdGVkLCB7dGFyZ2V0LCByZXF1ZXN0SWQsIHJlcXVlc3R9KTsKKyAgICAgICAg
aWYgKHdpbmRvdy5JbnNwZWN0b3JUZXN0KSB7CisgICAgICAgICAgICAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzIxNzAzMj4gV2ViIEluc3BlY3RvcjogYWRkIFVJIGZvciByZXF1ZXN0
IGludGVyY2VwdGlvbgorICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V0kuTmV0d29ya01hbmFnZXIuRXZlbnQuUmVxdWVzdEludGVyY2VwdGVkLCB7dGFyZ2V0LCByZXF1
ZXN0SWQsIHJlcXVlc3R9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGxldCB1cmwgPSBXSS51cmxXaXRob3V0RnJhZ21lbnQocmVxdWVzdC51cmwpOworICAgICAg
ICBsZXQgbG9jYWxSZXNvdXJjZU92ZXJyaWRlID0gdGhpcy5sb2NhbFJlc291cmNlT3ZlcnJpZGVG
b3JVUkwodXJsKTsKKyAgICAgICAgaWYgKCFsb2NhbFJlc291cmNlT3ZlcnJpZGUgfHwgbG9jYWxS
ZXNvdXJjZU92ZXJyaWRlLmRpc2FibGVkKSB7CisgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0Fn
ZW50LmludGVyY2VwdENvbnRpbnVlLmludm9rZSh7CisgICAgICAgICAgICAgICAgcmVxdWVzdElk
LAorICAgICAgICAgICAgICAgIHN0YWdlOiBJbnNwZWN0b3JCYWNrZW5kLkVudW0uTmV0d29yay5O
ZXR3b3JrU3RhZ2UuUmVxdWVzdCwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQobG9jYWxSZXNvdXJjZU92ZXJy
aWRlLnR5cGUgPT09IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5UeXBlLkludGVyY2VwdFJlcXVl
c3RXaXRoUmVzcG9uc2UsIGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CisKKyAgICAgICAgbGV0IGxv
Y2FsUmVzb3VyY2UgPSBsb2NhbFJlc291cmNlT3ZlcnJpZGUubG9jYWxSZXNvdXJjZTsKKyAgICAg
ICAgbGV0IHJldmlzaW9uID0gbG9jYWxSZXNvdXJjZS5jdXJyZW50UmV2aXNpb247CisKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQocmV2aXNpb24ubWltZVR5cGUgPT09IGxvY2FsUmVzb3VyY2UubWlt
ZVR5cGUpOworCisgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuaW50ZXJjZXB0UmVxdWVzdFdp
dGhSZXNwb25zZS5pbnZva2UoeworICAgICAgICAgICAgcmVxdWVzdElkLAorICAgICAgICAgICAg
Y29udGVudDogcmV2aXNpb24uY29udGVudCwKKyAgICAgICAgICAgIGJhc2U2NEVuY29kZWQ6IHJl
dmlzaW9uLmJhc2U2NEVuY29kZWQsCisgICAgICAgICAgICBtaW1lVHlwZTogcmV2aXNpb24ubWlt
ZVR5cGUsCisgICAgICAgICAgICBzdGF0dXM6ICFpc05hTihsb2NhbFJlc291cmNlLnN0YXR1c0Nv
ZGUpID8gbG9jYWxSZXNvdXJjZS5zdGF0dXNDb2RlIDogMjAwLAorICAgICAgICAgICAgc3RhdHVz
VGV4dDogbG9jYWxSZXNvdXJjZS5zdGF0dXNUZXh0ID8/IFdJLkhUVFBVdGlsaXRpZXMuc3RhdHVz
VGV4dEZvclN0YXR1c0NvZGUoMjAwKSwKKyAgICAgICAgICAgIGhlYWRlcnM6IGxvY2FsUmVzb3Vy
Y2UucmVzcG9uc2VIZWFkZXJzID8/IHt9LAorICAgICAgICB9KTsKICAgICB9CiAKICAgICByZXNw
b25zZUludGVyY2VwdGVkKHRhcmdldCwgcmVxdWVzdElkLCByZXNwb25zZSkKQEAgLTk1OCw2ICs5
NzgsOCBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMg
V0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBjb25z
b2xlLmFzc2VydChsb2NhbFJlc291cmNlT3ZlcnJpZGUudHlwZSA9PT0gV0kuTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlLlR5cGUuSW50ZXJjZXB0UmVzcG9uc2UsIGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7
CisKICAgICAgICAgbGV0IGxvY2FsUmVzb3VyY2UgPSBsb2NhbFJlc291cmNlT3ZlcnJpZGUubG9j
YWxSZXNvdXJjZTsKICAgICAgICAgbGV0IHJldmlzaW9uID0gbG9jYWxSZXNvdXJjZS5jdXJyZW50
UmV2aXNpb247CiAKQEAgLTEyODAsNiArMTMwMiw0NyBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNs
YXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJlc291cmNlcy5w
dXNoKHJlc291cmNlKTsKICAgICB9CiAKKyAgICBfY29tbWFuZEFyZ3VtZW50c0ZvckludGVyY2Vw
dGlvbihsb2NhbFJlc291cmNlT3ZlcnJpZGUpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2Vy
dChsb2NhbFJlc291cmNlT3ZlcnJpZGUgaW5zdGFuY2VvZiBXSS5Mb2NhbFJlc291cmNlT3ZlcnJp
ZGUsIGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CisKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgIHVybDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLnVybCwKKyAgICAgICAgICAgIHN0YWdlOiBs
b2NhbFJlc291cmNlT3ZlcnJpZGUudHlwZSA9PT0gV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLlR5
cGUuSW50ZXJjZXB0UmVzcG9uc2UgPyBJbnNwZWN0b3JCYWNrZW5kLkVudW0uTmV0d29yay5OZXR3
b3JrU3RhZ2UuUmVzcG9uc2UgOiBJbnNwZWN0b3JCYWNrZW5kLkVudW0uTmV0d29yay5OZXR3b3Jr
U3RhZ2UuUmVxdWVzdCwKKyAgICAgICAgICAgIGNhc2VTZW5zaXRpdmU6IGxvY2FsUmVzb3VyY2VP
dmVycmlkZS5pc0Nhc2VTZW5zaXRpdmUsCisgICAgICAgICAgICBpc1JlZ2V4OiBsb2NhbFJlc291
cmNlT3ZlcnJpZGUuaXNSZWdleCwKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBfYWRkSW50ZXJj
ZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVycmlkZSwgc3BlY2lmaWNUYXJnZXQpCisgICAgeworICAg
ICAgICBjb25zb2xlLmFzc2VydChsb2NhbFJlc291cmNlT3ZlcnJpZGUgaW5zdGFuY2VvZiBXSS5M
b2NhbFJlc291cmNlT3ZlcnJpZGUsIGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KCFsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJsZWQsIGxvY2FsUmVzb3Vy
Y2VPdmVycmlkZSk7CisKKyAgICAgICAgbGV0IHRhcmdldHMgPSBzcGVjaWZpY1RhcmdldCA/IFtz
cGVjaWZpY1RhcmdldF0gOiBXSS50YXJnZXRzOworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2Yg
dGFyZ2V0cykgeworICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjApOiBOZXR3
b3JrLmFkZEludGVyY2VwdGlvbiBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgICAgIGlmICgh
dGFyZ2V0Lmhhc0NvbW1hbmQoIk5ldHdvcmsuYWRkSW50ZXJjZXB0aW9uIikpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuYWRkSW50
ZXJjZXB0aW9uLmludm9rZSh0aGlzLl9jb21tYW5kQXJndW1lbnRzRm9ySW50ZXJjZXB0aW9uKGxv
Y2FsUmVzb3VyY2VPdmVycmlkZSkpOworICAgICAgICB9CisgICAgfQorCisgICAgX3JlbW92ZUlu
dGVyY2VwdGlvbihsb2NhbFJlc291cmNlT3ZlcnJpZGUsIHNwZWNpZmljVGFyZ2V0KQorICAgIHsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQobG9jYWxSZXNvdXJjZU92ZXJyaWRlIGluc3RhbmNlb2Yg
V0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLCBsb2NhbFJlc291cmNlT3ZlcnJpZGUpOworCisgICAg
ICAgIGxldCB0YXJnZXRzID0gc3BlY2lmaWNUYXJnZXQgPyBbc3BlY2lmaWNUYXJnZXRdIDogV0ku
dGFyZ2V0czsKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIHRhcmdldHMpIHsKKyAgICAgICAg
ICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4wKTogTmV0d29yay5yZW1vdmVJbnRlcmNlcHRp
b24gZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgICAgICBpZiAoIXRhcmdldC5oYXNDb21tYW5k
KCJOZXR3b3JrLnJlbW92ZUludGVyY2VwdGlvbiIpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LnJlbW92ZUludGVyY2VwdGlvbi5p
bnZva2UodGhpcy5fY29tbWFuZEFyZ3VtZW50c0ZvckludGVyY2VwdGlvbihsb2NhbFJlc291cmNl
T3ZlcnJpZGUpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIF9kaXNwYXRjaEZyYW1lV2FzQWRk
ZWRFdmVudChmcmFtZSkKICAgICB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdJLk5ldHdvcmtNYW5hZ2VyLkV2ZW50LkZyYW1lV2FzQWRkZWQsIHtmcmFtZX0pOwpAQCAt
MTQwOCwyNyArMTQ3MSwxNSBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5h
Z2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBfaGFuZGxlUmVzb3VyY2VPdmVycmlkZURpc2Fi
bGVkQ2hhbmdlZChldmVudCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KFdJLk5ldHdv
cmtNYW5hZ2VyLnN1cHBvcnRzTG9jYWxSZXNvdXJjZU92ZXJyaWRlcygpKTsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNPdmVycmlkaW5nUmVzcG9uc2Vz
KCkpOwogCiAgICAgICAgIGxldCBsb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBldmVudC50YXJnZXQ7
CiAgICAgICAgIFdJLm9iamVjdFN0b3Jlcy5sb2NhbFJlc291cmNlT3ZlcnJpZGVzLnB1dE9iamVj
dChsb2NhbFJlc291cmNlT3ZlcnJpZGUpOwogCi0gICAgICAgIGxldCBjb21tYW5kQXJndW1lbnRz
ID0gewotICAgICAgICAgICAgdXJsOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLAotICAgICAg
ICAgICAgY2FzZVNlbnNpdGl2ZTogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmlzQ2FzZVNlbnNpdGl2
ZSwKLSAgICAgICAgICAgIGlzUmVnZXg6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS5pc1JlZ2V4LAot
ICAgICAgICAgICAgc3RhZ2U6IEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3JrLk5ldHdvcmtT
dGFnZS5SZXNwb25zZSwKLSAgICAgICAgfTsKLQotICAgICAgICAvLyBDT01QQVRJQklMSVRZIChp
T1MgMTMuMCk6IE5ldHdvcmsuYWRkSW50ZXJjZXB0aW9uIC8gTmV0d29yay5yZW1vdmVJbnRlcmNl
cHRpb24gZGlkIG5vdCBleGlzdC4KLSAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdl
dHMpIHsKLSAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzRG9tYWluKCJOZXR3b3JrIikpIHsKLSAg
ICAgICAgICAgICAgICBpZiAobG9jYWxSZXNvdXJjZU92ZXJyaWRlLmRpc2FibGVkKQotICAgICAg
ICAgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LnJlbW92ZUludGVyY2VwdGlvbi5pbnZv
a2UoY29tbWFuZEFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LmFkZEludGVyY2VwdGlvbi5pbnZva2UoY29tbWFu
ZEFyZ3VtZW50cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGxvY2Fs
UmVzb3VyY2VPdmVycmlkZS5kaXNhYmxlZCkKKyAgICAgICAgICAgIHRoaXMuX3JlbW92ZUludGVy
Y2VwdGlvbihsb2NhbFJlc291cmNlT3ZlcnJpZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0aGlzLl9hZGRJbnRlcmNlcHRpb24obG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKICAgICB9CiAK
ICAgICBfaGFuZGxlQm9vdHN0cmFwU2NyaXB0Q29udGVudERpZENoYW5nZShldmVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Mb2NhbFJl
c291cmNlT3ZlcnJpZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmpzCmluZGV4IGEwMzhkMmE5YTkzNjcxNzk4MmU3
M2QxOTkzZGU1Yjg0NDQxZWVhYmUuLmQ1ZmNmODIwNDM0Nzg5MjJiNmYwZjRmZmYxOTNiN2I5MjMw
NTAyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9Mb2NhbFJlc291cmNlT3ZlcnJpZGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0xvY2FsUmVzb3VyY2VPdmVycmlkZS5qcwpAQCAtMjUsMTcg
KzI1LDE5IEBACiAKIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IGNsYXNzIExvY2FsUmVzb3Vy
Y2VPdmVycmlkZSBleHRlbmRzIFdJLk9iamVjdAogewotICAgIGNvbnN0cnVjdG9yKGxvY2FsUmVz
b3VyY2UsIHtpc0Nhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGRpc2FibGVkfSA9IHt9KQorICAgIGNv
bnN0cnVjdG9yKHR5cGUsIGxvY2FsUmVzb3VyY2UsIHtpc0Nhc2VTZW5zaXRpdmUsIGlzUmVnZXgs
IGRpc2FibGVkfSA9IHt9KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobG9jYWxSZXNv
dXJjZSBpbnN0YW5jZW9mIFdJLkxvY2FsUmVzb3VyY2UpOwotICAgICAgICBjb25zb2xlLmFzc2Vy
dChsb2NhbFJlc291cmNlLmlzTG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQobG9jYWxSZXNvdXJjZS51cmwpOwotICAgICAgICBjb25zb2xlLmFzc2VydChpc0Nh
c2VTZW5zaXRpdmUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgaXNDYXNlU2Vuc2l0aXZlID09PSAi
Ym9vbGVhbiIpOwotICAgICAgICBjb25zb2xlLmFzc2VydChpc1JlZ2V4ID09PSB1bmRlZmluZWQg
fHwgdHlwZW9mIGlzUmVnZXggPT09ICJib29sZWFuIik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGRpc2FibGVkID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGRpc2FibGVkID09PSAiYm9vbGVhbiIp
OworICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFsdWVzKFdJLkxvY2FsUmVzb3VyY2VP
dmVycmlkZS5UeXBlKS5pbmNsdWRlcyh0eXBlKSwgdHlwZSk7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGxvY2FsUmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5Mb2NhbFJlc291cmNlLCBsb2NhbFJlc291
cmNlKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQobG9jYWxSZXNvdXJjZS5pc0xvY2FsUmVzb3Vy
Y2VPdmVycmlkZSwgbG9jYWxSZXNvdXJjZSk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxvY2Fs
UmVzb3VyY2UudXJsLCBsb2NhbFJlc291cmNlKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoaXND
YXNlU2Vuc2l0aXZlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGlzQ2FzZVNlbnNpdGl2ZSA9PT0g
ImJvb2xlYW4iLCBpc0Nhc2VTZW5zaXRpdmUpOworICAgICAgICBjb25zb2xlLmFzc2VydChpc1Jl
Z2V4ID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGlzUmVnZXggPT09ICJib29sZWFuIiwgaXNSZWdl
eCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRpc2FibGVkID09PSB1bmRlZmluZWQgfHwgdHlw
ZW9mIGRpc2FibGVkID09PSAiYm9vbGVhbiIsIGRpc2FibGVkKTsKIAogICAgICAgICBzdXBlcigp
OwogCisgICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOwogICAgICAgICB0aGlzLl9sb2NhbFJlc291
cmNlID0gbG9jYWxSZXNvdXJjZTsKICAgICAgICAgdGhpcy5faXNDYXNlU2Vuc2l0aXZlID0gaXND
YXNlU2Vuc2l0aXZlICE9PSB1bmRlZmluZWQgPyBpc0Nhc2VTZW5zaXRpdmUgOiB0cnVlOwogICAg
ICAgICB0aGlzLl9pc1JlZ2V4ID0gaXNSZWdleCAhPT0gdW5kZWZpbmVkID8gaXNSZWdleCA6IGZh
bHNlOwpAQCAtNDQsNyArNDYsNyBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBjbGFzcyBM
b2NhbFJlc291cmNlT3ZlcnJpZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIC8vIFN0YXRpYwog
Ci0gICAgc3RhdGljIGNyZWF0ZSh7dXJsLCBtaW1lVHlwZSwgY29udGVudCwgYmFzZTY0RW5jb2Rl
ZCwgc3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwgaGVhZGVycywgaXNDYXNlU2Vuc2l0aXZlLCBpc1Jl
Z2V4LCBkaXNhYmxlZH0pCisgICAgc3RhdGljIGNyZWF0ZSh0eXBlLCB7dXJsLCBtaW1lVHlwZSwg
Y29udGVudCwgYmFzZTY0RW5jb2RlZCwgc3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwgaGVhZGVycywg
aXNDYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBkaXNhYmxlZH0pCiAgICAgewogICAgICAgICBsZXQg
bG9jYWxSZXNvdXJjZSA9IG5ldyBXSS5Mb2NhbFJlc291cmNlKHsKICAgICAgICAgICAgIHJlcXVl
c3Q6IHsKQEAgLTYxLDIwICs2MywyNiBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBjbGFz
cyBMb2NhbFJlc291cmNlT3ZlcnJpZGUgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIGlz
TG9jYWxSZXNvdXJjZU92ZXJyaWRlOiB0cnVlLAogICAgICAgICB9KTsKIAotICAgICAgICByZXR1
cm4gbmV3IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZShsb2NhbFJlc291cmNlLCB7aXNDYXNlU2Vu
c2l0aXZlLCBpc1JlZ2V4LCBkaXNhYmxlZH0pOworICAgICAgICByZXR1cm4gbmV3IFdJLkxvY2Fs
UmVzb3VyY2VPdmVycmlkZSh0eXBlLCBsb2NhbFJlc291cmNlLCB7aXNDYXNlU2Vuc2l0aXZlLCBp
c1JlZ2V4LCBkaXNhYmxlZH0pOwogICAgIH0KIAogICAgIC8vIEltcG9ydCAvIEV4cG9ydAogCiAg
ICAgc3RhdGljIGZyb21KU09OKGpzb24pCiAgICAgewotICAgICAgICBsZXQge2xvY2FsUmVzb3Vy
Y2UsIGlzQ2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgZGlzYWJsZWR9ID0ganNvbjsKLSAgICAgICAg
cmV0dXJuIG5ldyBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUoV0kuTG9jYWxSZXNvdXJjZS5mcm9t
SlNPTihsb2NhbFJlc291cmNlKSwge2lzQ2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgZGlzYWJsZWR9
KTsKKyAgICAgICAgbGV0IHt0eXBlLCBsb2NhbFJlc291cmNlLCBpc0Nhc2VTZW5zaXRpdmUsIGlz
UmVnZXgsIGRpc2FibGVkfSA9IGpzb247CisKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9T
IDEzLjQpOiBOZXR3b3JrLmludGVyY2VwdFdpdGhSZXF1ZXN0L05ldHdvcmsuaW50ZXJjZXB0UmVx
dWVzdFdpdGhSZXNwb25zZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgaWYgKCEoInR5cGUi
IGluIGpzb24pKQorICAgICAgICAgICAgdHlwZSA9IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5U
eXBlLlJlc3BvbnNlOworCisgICAgICAgIHJldHVybiBuZXcgV0kuTG9jYWxSZXNvdXJjZU92ZXJy
aWRlKHR5cGUsIFdJLkxvY2FsUmVzb3VyY2UuZnJvbUpTT04obG9jYWxSZXNvdXJjZSksIHtpc0Nh
c2VTZW5zaXRpdmUsIGlzUmVnZXgsIGRpc2FibGVkfSk7CiAgICAgfQogCiAgICAgdG9KU09OKGtl
eSkKICAgICB7CiAgICAgICAgIGxldCBqc29uID0geworICAgICAgICAgICAgdHlwZTogdGhpcy5f
dHlwZSwKICAgICAgICAgICAgIGxvY2FsUmVzb3VyY2U6IHRoaXMuX2xvY2FsUmVzb3VyY2UudG9K
U09OKGtleSksCiAgICAgICAgICAgICBpc0Nhc2VTZW5zaXRpdmU6IHRoaXMuX2lzQ2FzZVNlbnNp
dGl2ZSwKICAgICAgICAgICAgIGlzUmVnZXg6IHRoaXMuX2lzUmVnZXgsCkBAIC04OSw2ICs5Nyw3
IEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlk
ZSBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgLy8gUHVibGljCiAKKyAgICBnZXQgdHlwZSgpIHsg
cmV0dXJuIHRoaXMuX3R5cGU7IH0KICAgICBnZXQgdXJsKCkgeyByZXR1cm4gdGhpcy5fbG9jYWxS
ZXNvdXJjZS51cmw7IH0KICAgICBnZXQgbG9jYWxSZXNvdXJjZSgpIHsgcmV0dXJuIHRoaXMuX2xv
Y2FsUmVzb3VyY2U7IH0KICAgICBnZXQgaXNDYXNlU2Vuc2l0aXZlKCkgeyByZXR1cm4gdGhpcy5f
aXNDYXNlU2Vuc2l0aXZlOyB9CkBAIC0xMjYsNiArMTM1LDcgQEAgV0kuTG9jYWxSZXNvdXJjZU92
ZXJyaWRlID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlIGV4dGVuZHMgV0kuT2JqZWN0CiAK
ICAgICBzYXZlSWRlbnRpdHlUb0Nvb2tpZShjb29raWUpCiAgICAgeworICAgICAgICBjb29raWVb
ImxvY2FsLXJlc291cmNlLW92ZXJyaWRlLXR5cGUiXSA9IHRoaXMuX3R5cGU7CiAgICAgICAgIGNv
b2tpZVsibG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtdXJsIl0gPSB0aGlzLl9sb2NhbFJlc291cmNl
LnVybDsKICAgICAgICAgY29va2llWyJsb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1pcy1jYXNlLXNl
bnNpdGl2ZSJdID0gdGhpcy5faXNDYXNlU2Vuc2l0aXZlOwogICAgICAgICBjb29raWVbImxvY2Fs
LXJlc291cmNlLW92ZXJyaWRlLWlzLXJlZ2V4Il0gPSB0aGlzLl9pc1JlZ2V4OwpAQCAtMTM1LDYg
KzE0NSwxMSBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBjbGFzcyBMb2NhbFJlc291cmNl
T3ZlcnJpZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAogV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLlR5
cGVJZGVudGlmaWVyID0gImxvY2FsLXJlc291cmNlLW92ZXJyaWRlIjsKIAorV0kuTG9jYWxSZXNv
dXJjZU92ZXJyaWRlLlR5cGUgPSB7CisgICAgSW50ZXJjZXB0UmVxdWVzdFdpdGhSZXNwb25zZTog
ImludGVyY2VwdC1yZXF1ZXN0LXdpdGgtcmVzcG9uc2UiLAorICAgIEludGVyY2VwdFJlc3BvbnNl
OiAiaW50ZXJjZXB0LXJlc3BvbnNlIiwKK307CisKIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5F
dmVudCA9IHsKICAgICBEaXNhYmxlZENoYW5nZWQ6ICJsb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1k
aXNhYmxlZC1zdGF0ZS1kaWQtY2hhbmdlIiwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2UuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2UuanMKaW5kZXggYmQxZjgwNDMy
NjBjZDA5M2ZkZTdkNGQ2MzM5NjA0OWU3NDk0NWRjZC4uYmY5MTQyZjUzMWFkMjlkOWFmNWMwZDM3
YWUwNWJmNzM2MDA5MzBjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qcwpAQCAtMTA2NSwxMSArMTA2NSwxMSBAQCBX
SS5SZXNvdXJjZSA9IGNsYXNzIFJlc291cmNlIGV4dGVuZHMgV0kuU291cmNlQ29kZQogICAgIGFz
eW5jIGNyZWF0ZUxvY2FsUmVzb3VyY2VPdmVycmlkZSh7aW5pdGlhbE1JTUVUeXBlLCBpbml0aWFs
QmFzZTY0RW5jb2RlZCwgaW5pdGlhbENvbnRlbnR9ID0ge30pCiAgICAgewogICAgICAgICBjb25z
b2xlLmFzc2VydCghdGhpcy5pc0xvY2FsUmVzb3VyY2VPdmVycmlkZSk7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzTG9jYWxSZXNvdXJjZU92ZXJyaWRl
cygpKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNP
dmVycmlkaW5nUmVzcG9uc2VzKCkpOwogCiAgICAgICAgIGxldCB7cmF3Q29udGVudCwgcmF3QmFz
ZTY0RW5jb2RlZH0gPSBhd2FpdCB0aGlzLnJlcXVlc3RDb250ZW50KCk7CiAKLSAgICAgICAgcmV0
dXJuIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5jcmVhdGUoeworICAgICAgICByZXR1cm4gV0ku
TG9jYWxSZXNvdXJjZU92ZXJyaWRlLmNyZWF0ZShXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuVHlw
ZS5JbnRlcmNlcHRSZXNwb25zZSwgewogICAgICAgICAgICAgdXJsOiB0aGlzLnVybCwKICAgICAg
ICAgICAgIG1pbWVUeXBlOiBpbml0aWFsTUlNRVR5cGUgIT09IHVuZGVmaW5lZCA/IGluaXRpYWxN
SU1FVHlwZSA6IHRoaXMubWltZVR5cGUsCiAgICAgICAgICAgICBjb250ZW50OiBpbml0aWFsQ29u
dGVudCAhPT0gdW5kZWZpbmVkID8gaW5pdGlhbENvbnRlbnQgOiByYXdDb250ZW50LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1l
bnVVdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZXh0TWVudVV0aWxpdGllcy5qcwppbmRleCAzNjM5Y2RkOWEyODNiMDcxOTcxMTY0ZWY5
NDU3OGQ0NjFhYmIwZmNkLi5iZmQyM2Q2MjJlZWZmYzdlODRhYzQ4OWE4NmRhOTcyY2M2YzRmYjVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b250ZXh0TWVudVV0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qcwpAQCAtNzMsNyArNzMsNyBAQCBX
SS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yU291cmNlQ29kZSA9IGZ1bmN0aW9uKGNvbnRleHRN
ZW51LCBzb3VyY2VDb2RlT3JMb2NhdAogICAgIGlmIChjb250ZXh0TWVudS5fX2RvbUJyZWFrcG9p
bnRJdGVtc0FkZGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWNvbnRleHRNZW51Ll9f
bG9jYWxPdmVycmlkZUl0ZW1zQWRkZWQgJiYgV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNMb2Nh
bFJlc291cmNlT3ZlcnJpZGVzKCkpIHsKKyAgICBpZiAoIWNvbnRleHRNZW51Ll9fbG9jYWxPdmVy
cmlkZUl0ZW1zQWRkZWQgJiYgV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNPdmVycmlkaW5nUmVz
cG9uc2VzKCkpIHsKICAgICAgICAgY29udGV4dE1lbnUuX19sb2NhbE92ZXJyaWRlSXRlbXNBZGRl
ZCA9IHRydWU7CiAKICAgICAgICAgaWYgKFdJLm5ldHdvcmtNYW5hZ2VyLmNhbkJlT3ZlcnJpZGRl
bihzb3VyY2VDb2RlKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRm9udFJlc291cmNlQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Gb250UmVzb3VyY2VDb250ZW50Vmlldy5qcwpp
bmRleCBkNmNiMGMyZjI2MzE0ODA1ZThlYmUyMDIyMzM2NTk5NzkwM2MzZWFhLi5kMDkzMDZhNzA5
NmFkYzljNDE2ODJiNzdmNmM4YjlkMTI3NzhiNjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Gb250UmVzb3VyY2VDb250ZW50Vmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Gb250UmVzb3Vy
Y2VDb250ZW50Vmlldy5qcwpAQCAtNjUsNyArNjUsNyBAQCBXSS5Gb250UmVzb3VyY2VDb250ZW50
VmlldyA9IGNsYXNzIEZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuUmVzb3VyY2VD
bwogCiAgICAgICAgIHRoaXMuX3VwZGF0ZVByZXZpZXdFbGVtZW50KCk7CiAKLSAgICAgICAgaWYg
KFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzTG9jYWxSZXNvdXJjZU92ZXJyaWRlcygpKSB7Cisg
ICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRpbmdSZXNwb25zZXMo
KSkgewogICAgICAgICAgICAgbGV0IGRyb3Bab25lVmlldyA9IG5ldyBXSS5Ecm9wWm9uZVZpZXco
dGhpcyk7CiAgICAgICAgICAgICBkcm9wWm9uZVZpZXcudGFyZ2V0RWxlbWVudCA9IHRoaXMuX3By
ZXZpZXdDb250YWluZXI7CiAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcoZHJvcFpvbmVWaWV3
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0ltYWdlUmVzb3VyY2VDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0ltYWdlUmVzb3VyY2VDb250ZW50Vmlldy5qcwppbmRleCAzZmI5MThm
NDFkMWEyNjdkOTJkMjcyZDQwMjhhZDg3OTBmNTBmYjcxLi4wNjJhODhlMjYyYjBkYTMwNDM4ZTM3
YmRjOTMzMjg3ZGE3MjRiZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9JbWFnZVJlc291cmNlQ29udGVudFZpZXcuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW1hZ2VSZXNvdXJjZUNvbnRlbnRW
aWV3LmpzCkBAIC04Nyw3ICs4Nyw3IEBAIFdJLkltYWdlUmVzb3VyY2VDb250ZW50VmlldyA9IGNs
YXNzIEltYWdlUmVzb3VyY2VDb250ZW50VmlldyBleHRlbmRzIFdJLlJlc291cmNlCiAgICAgICAg
ICAgICB0aGlzLl9kcmFnZ2luZ0ludGVybmFsSW1hZ2VFbGVtZW50ID0gZmFsc2U7CiAgICAgICAg
IH0pOwogCi0gICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0xvY2FsUmVzb3Vy
Y2VPdmVycmlkZXMoKSAmJiAhdGhpcy5fZGlzYWJsZURyb3Bab25lKSB7CisgICAgICAgIGlmIChX
SS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRpbmdSZXNwb25zZXMoKSAmJiAhdGhpcy5f
ZGlzYWJsZURyb3Bab25lKSB7CiAgICAgICAgICAgICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJ
LkRyb3Bab25lVmlldyh0aGlzKTsKICAgICAgICAgICAgIGRyb3Bab25lVmlldy50YXJnZXRFbGVt
ZW50ID0gaW1hZ2VDb250YWluZXI7CiAgICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcoZHJvcFpv
bmVWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIuY3NzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5j
c3MKaW5kZXggY2Y2MDNkNjU1NTJiOWRkNjVlZTEyZmM0NTg4YzZjNDZmMWMwNGI5OC4uMTlhMjJm
OWY0ZTI5ODNjMWI0M2Q0MjQ5ZTg1YjcyODYxNjI2OWY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9w
b3Zlci5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5jc3MKQEAgLTk4LDEwICs5OCwxNCBAQAogICAg
IG1hcmdpbi10b3A6IDhweDsKIH0KIAotLnBvcG92ZXIgLmxvY2FsLXJlc291cmNlLW92ZXJyaWRl
LXBvcG92ZXItY29udGVudCAucmVmZXJlbmNlLXBhZ2UtbGluay1jb250YWluZXIgeworLnBvcG92
ZXIgLmxvY2FsLXJlc291cmNlLW92ZXJyaWRlLXBvcG92ZXItY29udGVudCAuYWRkLWhlYWRlciAr
IC5yZWZlcmVuY2UtcGFnZS1saW5rLWNvbnRhaW5lciB7CiAgICAgbWFyZ2luLXRvcDogNnB4Owog
fQogCisucG9wb3ZlciAubG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtcG9wb3Zlci1jb250ZW50IC5v
cHRpb25zIHRkIHsKKyAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOworfQorCiBib2R5W2Rpcj1s
dHJdIC5wb3BvdmVyIC5sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1wb3BvdmVyLWNvbnRlbnQgLnJl
ZmVyZW5jZS1wYWdlLWxpbmstY29udGFpbmVyIHsKICAgICBmbG9hdDogcmlnaHQ7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJl
c291cmNlT3ZlcnJpZGVQb3BvdmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5qcwppbmRleCA4NDM1OTVm
NjI1MDdlNmNjYTFmYTgzNDY3ODJkMjM1ODAwZTMzMmE4Li4wZDYxOWRhNDA5MzM2YTYzZGM5MzBi
Y2ZhMmVhNzUzZDRkMGMyNTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVy
cmlkZVBvcG92ZXIuanMKQEAgLTkxLDYgKzkxLDcgQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRl
UG9wb3ZlciA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIgZXh0ZW5kcyBXSS4K
ICAgICAgICAgfQogCiAgICAgICAgIGxldCBkYXRhID0geworICAgICAgICAgICAgdHlwZTogdGhp
cy5fc2tpcE5ldHdvcmtDaGVja2JveD8uY2hlY2tlZCA/IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlk
ZS5UeXBlLkludGVyY2VwdFJlcXVlc3RXaXRoUmVzcG9uc2UgOiBXSS5Mb2NhbFJlc291cmNlT3Zl
cnJpZGUuVHlwZS5JbnRlcmNlcHRSZXNwb25zZSwKICAgICAgICAgICAgIHVybCwKICAgICAgICAg
ICAgIG1pbWVUeXBlLAogICAgICAgICAgICAgc3RhdHVzQ29kZSwKQEAgLTI5MSw3ICsyOTIsMjkg
QEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3ZlciA9IGNsYXNzIExvY2FsUmVzb3VyY2VP
dmVycmlkZVBvcG92ZXIgZXh0ZW5kcyBXSS4KICAgICAgICAgICAgIHRoaXMuX2hlYWRlcnNEYXRh
R3JpZC5zdGFydEVkaXRpbmdOb2RlKG5ld05vZGUpOwogICAgICAgICB9KTsKIAotICAgICAgICBo
ZWFkZXJzRGF0YS5hcHBlbmRDaGlsZChXSS5jcmVhdGVSZWZlcmVuY2VQYWdlTGluaygibG9jYWwt
b3ZlcnJpZGVzIiwgImNvbmZpZ3VyaW5nLWxvY2FsLW92ZXJyaWRlcyIpKTsKKyAgICAgICAgaWYg
KFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzT3ZlcnJpZGluZ1JlcXVlc3RzV2l0aFJlc3BvbnNl
cygpKSB7CisgICAgICAgICAgICBsZXQgb3B0aW9uc1JvdyA9IHRhYmxlLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIikpOworICAgICAgICAgICAgb3B0aW9uc1Jvdy5jbGFz
c05hbWUgPSAib3B0aW9ucyI7CisKKyAgICAgICAgICAgIGxldCBvcHRpb25zSGVhZGVyID0gb3B0
aW9uc1Jvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpKTsKKworICAg
ICAgICAgICAgbGV0IG9wdGlvbnNMYWJlbCA9IG9wdGlvbnNIZWFkZXIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKSk7CisgICAgICAgICAgICBvcHRpb25zTGFiZWwu
dGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiT3B0aW9ucyIpOworCisgICAgICAgICAgICBsZXQg
b3B0aW9uc0RhdGEgPSBvcHRpb25zUm93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInRkIikpOworCisgICAgICAgICAgICBsZXQgc2tpcE5ldHdvcmtMYWJlbCA9IG9wdGlvbnNE
YXRhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIikpOworICAgICAg
ICAgICAgc2tpcE5ldHdvcmtMYWJlbC5jbGFzc05hbWUgPSAic2tpcC1uZXR3b3JrIjsKKworICAg
ICAgICAgICAgdGhpcy5fc2tpcE5ldHdvcmtDaGVja2JveCA9IHNraXBOZXR3b3JrTGFiZWwuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSk7CisgICAgICAgICAgICB0
aGlzLl9za2lwTmV0d29ya0NoZWNrYm94LnR5cGUgPSAiY2hlY2tib3giOworICAgICAgICAgICAg
dGhpcy5fc2tpcE5ldHdvcmtDaGVja2JveC5jaGVja2VkID0gbG9jYWxSZXNvdXJjZU92ZXJyaWRl
Py50eXBlID09PSBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuVHlwZS5JbnRlcmNlcHRSZXF1ZXN0
V2l0aFJlc3BvbnNlOworCisgICAgICAgICAgICBza2lwTmV0d29ya0xhYmVsLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFdJLlVJU3RyaW5nKCJTa2lwIE5ldHdvcmsiLCAiU2tp
cCBOZXR3b3JrIEAgTG9jYWwgT3ZlcnJpZGUgUG9wb3ZlciBPcHRpb25zIiwgIkxhYmVsIGZvciBj
aGVja2JveCB0aGF0IGNvbnRyb2xzIHdoZXRoZXIgdGhlIGxvY2FsIG92ZXJyaWRlIHdpbGwgYWN0
dWFsbHkgcGVyZm9ybSBhIG5ldHdvcmsgcmVxdWVzdCBvciBza2lwIGl0IHRvIGltbWVkaWF0ZWx5
IHNlcnZlIHRoZSByZXNwb25zZS4iKSkpOworCisgICAgICAgICAgICBvcHRpb25zRGF0YS5hcHBl
bmRDaGlsZChXSS5jcmVhdGVSZWZlcmVuY2VQYWdlTGluaygibG9jYWwtb3ZlcnJpZGVzIiwgImNv
bmZpZ3VyaW5nLWxvY2FsLW92ZXJyaWRlcyIpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBoZWFkZXJzRGF0YS5hcHBlbmRDaGlsZChXSS5jcmVhdGVSZWZlcmVuY2VQYWdlTGluaygibG9j
YWwtb3ZlcnJpZGVzIiwgImNvbmZpZ3VyaW5nLWxvY2FsLW92ZXJyaWRlcyIpKTsKIAogICAgICAg
ICBsZXQgaW5jcmVtZW50U3RhdHVzQ29kZSA9ICgpID0+IHsKICAgICAgICAgICAgIGxldCB4ID0g
cGFyc2VJbnQodGhpcy5fc3RhdHVzQ29kZUNvZGVNaXJyb3IuZ2V0VmFsdWUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291
cmNlT3ZlcnJpZGVUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50LmpzCmluZGV4IDU3
MDA5YmU2YjBlZGY5ZTFlZmY2ZWFkZjhiMDZkYTY2MGY4NzMyMzcuLjU0NDRjYWZiYWExZjg3YWI0
NzVjMWViNGQ0ZTRlOWM3OGQ2NGU5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50Lmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVz
b3VyY2VPdmVycmlkZVRyZWVFbGVtZW50LmpzCkBAIC0xMzEsNyArMTMxLDcgQEAgV0kuTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGVU
cmVlRWxlbWVudCBleHQKICAgICAgICAgaWYgKCFzZXJpYWxpemVkRGF0YSkKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBsZXQge3VybCwgaXNDYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBt
aW1lVHlwZSwgc3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwgaGVhZGVyc30gPSBzZXJpYWxpemVkRGF0
YTsKKyAgICAgICAgbGV0IHt0eXBlLCB1cmwsIGlzQ2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgbWlt
ZVR5cGUsIHN0YXR1c0NvZGUsIHN0YXR1c1RleHQsIGhlYWRlcnN9ID0gc2VyaWFsaXplZERhdGE7
CiAKICAgICAgICAgLy8gRG8gbm90IGNvbmZsaWN0IHdpdGggYW4gZXhpc3Rpbmcgb3ZlcnJpZGUg
dW5sZXNzIHdlIGFyZSBtb2RpZnlpbmcgb3Vyc2VsdmVzLgogICAgICAgICBsZXQgZXhpc3RpbmdP
dmVycmlkZSA9IFdJLm5ldHdvcmtNYW5hZ2VyLmxvY2FsUmVzb3VyY2VPdmVycmlkZUZvclVSTCh1
cmwpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVt
ZW50ID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQgZXh0CiAgICAgICAg
IGxldCB3YXNTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWQ7CiAKICAgICAgICAgbGV0IHJldmlzaW9u
ID0gdGhpcy5fbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmxvY2FsUmVzb3VyY2UuY3VycmVudFJldmlz
aW9uOwotICAgICAgICBsZXQgbmV3TG9jYWxSZXNvdXJjZU92ZXJyaWRlID0gV0kuTG9jYWxSZXNv
dXJjZU92ZXJyaWRlLmNyZWF0ZSh7CisgICAgICAgIGxldCBuZXdMb2NhbFJlc291cmNlT3ZlcnJp
ZGUgPSBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuY3JlYXRlKHR5cGUsIHsKICAgICAgICAgICAg
IHVybCwKICAgICAgICAgICAgIGlzQ2FzZVNlbnNpdGl2ZSwKICAgICAgICAgICAgIGlzUmVnZXgs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9P
cGVuUmVzb3VyY2VEaWFsb2cuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9PcGVuUmVzb3VyY2VEaWFsb2cuanMKaW5kZXggMDY1NDUyYzZjOGFkNDIxZWE2ZWU4
YjA2YTEwYTRiM2RjZGIxOWRiMS4uNTg3YTIwOWYwYzUwNGViZjg2ZjdhZmNmZGQ4NjFhNjVlNmRk
MDAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvT3BlblJlc291cmNlRGlhbG9nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL09wZW5SZXNvdXJjZURpYWxvZy5qcwpAQCAtMzkwLDcgKzM5MCw3IEBA
IFdJLk9wZW5SZXNvdXJjZURpYWxvZyA9IGNsYXNzIE9wZW5SZXNvdXJjZURpYWxvZyBleHRlbmRz
IFdJLkRpYWxvZwogCiAgICAgX2FkZExvY2FsUmVzb3VyY2VPdmVycmlkZXMoKQogICAgIHsKLSAg
ICAgICAgaWYgKCFXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0xvY2FsUmVzb3VyY2VPdmVycmlk
ZXMoKSkKKyAgICAgICAgaWYgKCFXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRpbmdS
ZXNwb25zZXMoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBjb25zdCBzdXBwcmVz
c0ZpbHRlclVwZGF0ZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb250ZW50Vmlldy5qcwppbmRl
eCA5ODk3ZWY0MWQzZTRjZWZmZTdlOGFmMWRmMjFiNGNiY2E2Njk5OTNmLi40NTY1NDlhNmEyYTVl
NmY3ODNlYmU4NTFlNWRjMDBiODY0ODQ2ZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbnRlbnRWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlQ29udGVudFZp
ZXcuanMKQEAgLTYwLDcgKzYwLDcgQEAgV0kuUmVzb3VyY2VDb250ZW50VmlldyA9IGNsYXNzIFJl
c291cmNlQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgIHRoaXMu
X3Nob3dpbmdMb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBmYWxzZTsKIAotICAgICAgICBpZiAoV0ku
TmV0d29ya01hbmFnZXIuc3VwcG9ydHNMb2NhbFJlc291cmNlT3ZlcnJpZGVzKCkpIHsKKyAgICAg
ICAgaWYgKFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzT3ZlcnJpZGluZ1Jlc3BvbnNlcygpKSB7
CiAgICAgICAgICAgICBpZiAocmVzb3VyY2UuaXNMb2NhbFJlc291cmNlT3ZlcnJpZGUpIHsKICAg
ICAgICAgICAgICAgICB0aGlzLl9zaG93aW5nTG9jYWxSZXNvdXJjZU92ZXJyaWRlID0gdHJ1ZTsK
IApAQCAtMTkxLDcgKzE5MSw3IEBAIFdJLlJlc291cmNlQ29udGVudFZpZXcgPSBjbGFzcyBSZXNv
dXJjZUNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICB7CiAgICAgICAgIHN1
cGVyLmNsb3NlZCgpOwogCi0gICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0xv
Y2FsUmVzb3VyY2VPdmVycmlkZXMoKSkKKyAgICAgICAgaWYgKFdJLk5ldHdvcmtNYW5hZ2VyLnN1
cHBvcnRzT3ZlcnJpZGluZ1Jlc3BvbnNlcygpKQogICAgICAgICAgICAgV0kubmV0d29ya01hbmFn
ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKIAogICAgICAgICBpZiAo
IXRoaXMubWFuYWdlc093bklzc3VlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRp
b25TaWRlYmFyUGFuZWwuanMKaW5kZXggZjNiZDQ0YmY3YWZiYWY2MWJiYTE0ZTljZDVmNTJmYjY0
YmU5Y2M1MS4uN2NkY2Q0OGRmZGM1YWFjYmZmZjA4MmQ3NWY2OWNhYWRlZDY2YWNmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05h
dmlnYXRpb25TaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKQEAgLTI2MCw3
ICsyNjAsNyBAQCBXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJj
ZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgVwogICAgICAgICB0aGlzLl9yZXNvdXJj
ZXNUcmVlT3V0bGluZS5pbmNsdWRlU291cmNlTWFwUmVzb3VyY2VDaGlsZHJlbiA9IHRydWU7CiAg
ICAgICAgIHJlc291cmNlc0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLl9yZXNvdXJjZXNUcmVl
T3V0bGluZS5lbGVtZW50KTsKIAotICAgICAgICBpZiAoV0kuTmV0d29ya01hbmFnZXIuc3VwcG9y
dHNMb2NhbFJlc291cmNlT3ZlcnJpZGVzKCkgfHwgV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNC
b290c3RyYXBTY3JpcHQoKSB8fCBXSS5DU1NNYW5hZ2VyLnN1cHBvcnRzSW5zcGVjdG9yU3R5bGVT
aGVldCgpKSB7CisgICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRp
bmdSZXNwb25zZXMoKSB8fCBXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0Jvb3RzdHJhcFNjcmlw
dCgpIHx8IFdJLkNTU01hbmFnZXIuc3VwcG9ydHNJbnNwZWN0b3JTdHlsZVNoZWV0KCkpIHsKICAg
ICAgICAgICAgIGxldCBjcmVhdGVSZXNvdXJjZU5hdmlnYXRpb25CYXIgPSBuZXcgV0kuTmF2aWdh
dGlvbkJhcjsKIAogICAgICAgICAgICAgbGV0IGNyZWF0ZVJlc291cmNlQnV0dG9uTmF2aWdhdGlv
bkl0ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImNyZWF0ZS1yZXNvdXJjZSIsIFdJ
LlVJU3RyaW5nKCJDcmVhdGUgUmVzb3VyY2UiKSwgIkltYWdlcy9QbHVzMTUuc3ZnIiwgMTUsIDE1
KTsKQEAgLTMwMCw3ICszMDAsNyBAQCBXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCA9
IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgVwogICAgICAgICAg
ICAgV0kubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5OZXR3b3JrTWFuYWdlci5F
dmVudC5Cb290c3RyYXBTY3JpcHREZXN0cm95ZWQsIHRoaXMuX2hhbmRsZUJvb3RzdHJhcFNjcmlw
dERlc3Ryb3llZCwgdGhpcyk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoV0kuTmV0d29ya01h
bmFnZXIuc3VwcG9ydHNMb2NhbFJlc291cmNlT3ZlcnJpZGVzKCkpIHsKKyAgICAgICAgaWYgKFdJ
Lk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzT3ZlcnJpZGluZ1Jlc3BvbnNlcygpKSB7CiAgICAgICAg
ICAgICBXSS5uZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLk5ldHdvcmtNYW5hZ2Vy
LkV2ZW50LkxvY2FsUmVzb3VyY2VPdmVycmlkZUFkZGVkLCB0aGlzLl9oYW5kbGVMb2NhbFJlc291
cmNlT3ZlcnJpZGVBZGRlZCwgdGhpcyk7CiAgICAgICAgICAgICBXSS5uZXR3b3JrTWFuYWdlci5h
ZGRFdmVudExpc3RlbmVyKFdJLk5ldHdvcmtNYW5hZ2VyLkV2ZW50LkxvY2FsUmVzb3VyY2VPdmVy
cmlkZVJlbW92ZWQsIHRoaXMuX2hhbmRsZUxvY2FsUmVzb3VyY2VPdmVycmlkZVJlbW92ZWQsIHRo
aXMpOwogICAgICAgICB9CkBAIC0zODMsNyArMzgzLDcgQEAgV0kuU291cmNlc05hdmlnYXRpb25T
aWRlYmFyUGFuZWwgPSBjbGFzcyBTb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCBleHRlbmRz
IFcKICAgICAgICAgICAgICAgICB0aGlzLl9hZGRMb2NhbE92ZXJyaWRlKGJvb3RzdHJhcFNjcmlw
dCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNM
b2NhbFJlc291cmNlT3ZlcnJpZGVzKCkpIHsKKyAgICAgICAgaWYgKFdJLk5ldHdvcmtNYW5hZ2Vy
LnN1cHBvcnRzT3ZlcnJpZGluZ1Jlc3BvbnNlcygpKSB7CiAgICAgICAgICAgICBmb3IgKGxldCBs
b2NhbFJlc291cmNlT3ZlcnJpZGUgb2YgV0kubmV0d29ya01hbmFnZXIubG9jYWxSZXNvdXJjZU92
ZXJyaWRlcykKICAgICAgICAgICAgICAgICB0aGlzLl9hZGRMb2NhbE92ZXJyaWRlKGxvY2FsUmVz
b3VyY2VPdmVycmlkZSk7CiAgICAgICAgIH0KQEAgLTc5OCw3ICs3OTgsNyBAQCBXSS5Tb3VyY2Vz
TmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBh
bmVsIGV4dGVuZHMgVwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAg
bGV0IHt1cmwsIGlzQ2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgbWltZVR5cGUsIHN0YXR1c0NvZGUs
IHN0YXR1c1RleHQsIGhlYWRlcnN9ID0gc2VyaWFsaXplZERhdGE7CisgICAgICAgIGxldCB7dHlw
ZSwgdXJsLCBpc0Nhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIG1pbWVUeXBlLCBzdGF0dXNDb2RlLCBz
dGF0dXNUZXh0LCBoZWFkZXJzfSA9IHNlcmlhbGl6ZWREYXRhOwogCiAgICAgICAgIC8vIERvIG5v
dCBjb25mbGljdCB3aXRoIGFuIGV4aXN0aW5nIG92ZXJyaWRlLgogICAgICAgICBsZXQgZXhpc3Rp
bmdPdmVycmlkZSA9IFdJLm5ldHdvcmtNYW5hZ2VyLmxvY2FsUmVzb3VyY2VPdmVycmlkZUZvclVS
TCh1cmwpOwpAQCAtODA3LDcgKzgwNyw3IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBh
bmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZU92
ZXJyaWRlID0gV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmNyZWF0ZSh7CisgICAgICAgIGxldCBs
b2NhbFJlc291cmNlT3ZlcnJpZGUgPSBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuY3JlYXRlKHR5
cGUsIHsKICAgICAgICAgICAgIHVybCwKICAgICAgICAgICAgIGlzQ2FzZVNlbnNpdGl2ZSwKICAg
ICAgICAgICAgIGlzUmVnZXgsCkBAIC0xNDIyLDcgKzE0MjIsNyBAQCBXSS5Tb3VyY2VzTmF2aWdh
dGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4
dGVuZHMgVwogCiAgICAgX2FkZExvY2FsT3ZlcnJpZGUobG9jYWxPdmVycmlkZSkKICAgICB7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzQm9vdHN0cmFw
U2NyaXB0KCkgfHwgV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNMb2NhbFJlc291cmNlT3ZlcnJp
ZGVzKCkpOworICAgICAgICBjb25zb2xlLmFzc2VydChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0
c0Jvb3RzdHJhcFNjcmlwdCgpIHx8IFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzT3ZlcnJpZGlu
Z1Jlc3BvbnNlcygpKTsKIAogICAgICAgICBpZiAodGhpcy5fbG9jYWxPdmVycmlkZXNUcmVlT3V0
bGluZS5maW5kVHJlZUVsZW1lbnQobG9jYWxPdmVycmlkZSkpCiAgICAgICAgICAgICByZXR1cm47
CkBAIC0xNDQ2LDcgKzE0NDYsNyBAQCBXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCA9
IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgVwogCiAgICAgX3Jl
bW92ZVJlc291cmNlT3ZlcnJpZGUobG9jYWxPdmVycmlkZSkKICAgICB7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzQm9vdHN0cmFwU2NyaXB0KCkgfHwg
V0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNMb2NhbFJlc291cmNlT3ZlcnJpZGVzKCkpOworICAg
ICAgICBjb25zb2xlLmFzc2VydChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0Jvb3RzdHJhcFNj
cmlwdCgpIHx8IFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzT3ZlcnJpZGluZ1Jlc3BvbnNlcygp
KTsKIAogICAgICAgICBsZXQgcmVzb3VyY2VUcmVlRWxlbWVudCA9IHRoaXMuX2xvY2FsT3ZlcnJp
ZGVzVHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KGxvY2FsT3ZlcnJpZGUpOwogICAgICAgICBp
ZiAoIXJlc291cmNlVHJlZUVsZW1lbnQpCkBAIC0yMDMzLDcgKzIwMzMsNyBAQCBXSS5Tb3VyY2Vz
TmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBh
bmVsIGV4dGVuZHMgVwogCiAgICAgX3BvcHVsYXRlQ3JlYXRlUmVzb3VyY2VDb250ZXh0TWVudShj
b250ZXh0TWVudSkKICAgICB7Ci0gICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0
c0xvY2FsUmVzb3VyY2VPdmVycmlkZXMoKSkgeworICAgICAgICBpZiAoV0kuTmV0d29ya01hbmFn
ZXIuc3VwcG9ydHNPdmVycmlkaW5nUmVzcG9uc2VzKCkpIHsKICAgICAgICAgICAgIGNvbnRleHRN
ZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkxvY2FsIE92ZXJyaWRlXHUyMDI2IiksICgpID0+
IHsKICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2xvY2FsT3ZlcnJpZGVzVHJlZU91dGxpbmUu
Y2hpbGRyZW4ubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2NhbE92ZXJyaWRl
c1Jvdy5zaG93RW1wdHlNZXNzYWdlKCk7Cg==
</data>
<flag name="review"
          id="425641"
          type_id="1"
          status="+"
          setter="bburg"
    />
    <flag name="commit-queue"
          id="425642"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409939</attachid>
            <date>2020-09-28 18:32:00 -0700</date>
            <delta_ts>2020-09-28 20:49:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>217031.diff</filename>
            <type>text/plain</type>
            <size>42819</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NTViM2VmYTYwYjMuLjJiOTYwZGFiM2VkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIwLTA5LTI4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBhZGQgY2hlY2tib3ggdG8gbG9jYWwgb3ZlcnJpZGUgcG9wb3ZlciB0
byBhbGxvdyBpdCB0byBza2lwIHRoZSBuZXR3b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBCcmlh
biBCdXJnLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1y
ZXNvdXJjZS1vdmVycmlkZS1iYXNpYy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUtbWFpbi1yZXNvdXJjZS5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbG9jYWwtcmVzb3VyY2Utb3Zl
cnJpZGUtc2NyaXB0LXRhZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2UtaW5zcGVjdG9yLW92ZXJyaWRlLmh0bWw6CisgICAgICAg
IEFkZCBleHBlY3RlZCBwYXJhbWV0ZXIgZm9yIGBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuY3Jl
YXRlYCBjYWxscy4KKwogMjAyMC0wOS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIHZpc2liaWxpdHljaGFuZ2U6aGlkZGVuIGRvZXNuJ3QgZmlyZSBkdXJpbmcg
cGFnZSBuYXZpZ2F0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1iYXNpYy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlk
ZS1iYXNpYy5odG1sCmluZGV4IDBjZTBjNGIwOTdiNi4uNWY0N2U0MzBiNDI4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNl
LW92ZXJyaWRlLWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1iYXNpYy5odG1sCkBAIC00NSw3ICs0
NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIGxldCBsb2NhbFJlc291cmNl
T3ZlcnJpZGVzID0gW107CiAgICAgICAgICAgICAgICAgZm9yIChsZXQgb3ZlcnJpZGUgb2Ygb3Zl
cnJpZGVzKSB7CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDcmVhdGlu
ZyBMb2NhbCBSZXNvdXJjZSBPdmVycmlkZSBmb3I6ICIgKyBvdmVycmlkZS51cmwpOwotICAgICAg
ICAgICAgICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZU92ZXJyaWRlID0gV0kuTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlLmNyZWF0ZShvdmVycmlkZSk7CisgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
bFJlc291cmNlT3ZlcnJpZGUgPSBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuY3JlYXRlKFdJLkxv
Y2FsUmVzb3VyY2VPdmVycmlkZS5JbnRlcmNlcHRUeXBlLlJlc3BvbnNlLCBvdmVycmlkZSk7CiAg
ICAgICAgICAgICAgICAgICAgIFdJLm5ldHdvcmtNYW5hZ2VyLmFkZExvY2FsUmVzb3VyY2VPdmVy
cmlkZShsb2NhbFJlc291cmNlT3ZlcnJpZGUpOwogICAgICAgICAgICAgICAgICAgICBsb2NhbFJl
c291cmNlT3ZlcnJpZGVzLnB1c2gobG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKICAgICAgICAgICAg
ICAgICB9CkBAIC0yODIsNyArMjgyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6
ICJMb2NhbFJlc291cmNlT3ZlcnJpZGUuVVJMLkZyYWdtZW50IiwKICAgICAgICAgZGVzY3JpcHRp
b246ICJMb2NhbFJlc291cmNlT3ZlcnJpZGUgY3JlYXRpb24gc3RyaXBzIGEgZnJhZ21lbnQiLAog
ICAgICAgICBhc3luYyB0ZXN0KCkgewotICAgICAgICAgICAgbGV0IGxvY2FsUmVzb3VyY2VPdmVy
cmlkZSA9IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5jcmVhdGUoeworICAgICAgICAgICAgbGV0
IGxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5jcmVhdGUo
V0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLkludGVyY2VwdFR5cGUuUmVzcG9uc2UsIHsKICAgICAg
ICAgICAgICAgICB1cmw6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2VzL292ZXJyaWRlLnR4dCN0ZXN0IiwKICAgICAgICAgICAgICAgICBtaW1lVHlwZTog
InRleHQvcGxhaW4iLAogICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICJPVkVSUklEREVOIFRFWFQi
LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9s
b2NhbC1yZXNvdXJjZS1vdmVycmlkZS1tYWluLXJlc291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLW1haW4t
cmVzb3VyY2UuaHRtbAppbmRleCAyZGMxYWE4NmZiODMuLjg2OWVhY2E5ZTA3YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJj
ZS1vdmVycmlkZS1tYWluLXJlc291cmNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1tYWluLXJlc291cmNl
Lmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6ICJM
b2NhbFJlc291cmNlT3ZlcnJpZGUuTWFpblJlc291cmNlIiwKICAgICAgICAgZGVzY3JpcHRpb246
ICJNYWluIHJlc291cmNlIHVzZXMgb3ZlcnJpZGUgY29udGVudCBvbiBuZXh0IHBhZ2UgbG9hZCIs
CiAgICAgICAgIGFzeW5jIHRlc3QoKSB7Ci0gICAgICAgICAgICBXSS5uZXR3b3JrTWFuYWdlci5h
ZGRMb2NhbFJlc291cmNlT3ZlcnJpZGUoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmNyZWF0ZSh7
CisgICAgICAgICAgICBXSS5uZXR3b3JrTWFuYWdlci5hZGRMb2NhbFJlc291cmNlT3ZlcnJpZGUo
V0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmNyZWF0ZShXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUu
SW50ZXJjZXB0VHlwZS5SZXNwb25zZSwgewogICAgICAgICAgICAgICAgIHVybDogImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1t
YWluLXJlc291cmNlLmh0bWwiLAogICAgICAgICAgICAgICAgIG1pbWVUeXBlOiAidGV4dC9odG1s
IiwKICAgICAgICAgICAgICAgICBjb250ZW50OiBgPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9gK2BzY3JpcHQ+
PC9oZWFkPjxib2R5PjxwPk92ZXJyaWRkZW4gcGFnZSBjb250ZW50PC9wPjxzY3JpcHQ+YWxlcnQo
IlJFUExBQ0VEIEhUTUwgQ09OVEVOVCIpOyBUZXN0UGFnZS5jb21wbGV0ZVRlc3QoKTs8L2ArYHNj
cmlwdD48L2JvZHk+PC9odG1sPmAsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLXNjcmlwdC10YWcuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbG9jYWwtcmVzb3Vy
Y2Utb3ZlcnJpZGUtc2NyaXB0LXRhZy5odG1sCmluZGV4IDExYTkzNjJmYzY3MC4uM2Y2YTc4YTMx
MjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLXNjcmlwdC10YWcuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2xvY2FsLXJlc291cmNlLW92ZXJyaWRlLXNj
cmlwdC10YWcuaHRtbApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
bmFtZTogIkxvY2FsUmVzb3VyY2VPdmVycmlkZS5TY3JpcHQuVGFnIiwKICAgICAgICAgZGVzY3Jp
cHRpb246ICI8c2NyaXB0PiBsb2FkIHVzZXMgb3ZlcnJpZGUgY29udGVudCBvbiBuZXh0IHBhZ2Ug
bG9hZCIsCiAgICAgICAgIGFzeW5jIHRlc3QoKSB7Ci0gICAgICAgICAgICBXSS5uZXR3b3JrTWFu
YWdlci5hZGRMb2NhbFJlc291cmNlT3ZlcnJpZGUoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmNy
ZWF0ZSh7CisgICAgICAgICAgICBXSS5uZXR3b3JrTWFuYWdlci5hZGRMb2NhbFJlc291cmNlT3Zl
cnJpZGUoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmNyZWF0ZShXSS5Mb2NhbFJlc291cmNlT3Zl
cnJpZGUuSW50ZXJjZXB0VHlwZS5SZXNwb25zZSwgewogICAgICAgICAgICAgICAgIHVybDogImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvb3ZlcnJpZGUu
anMiLAogICAgICAgICAgICAgICAgIG1pbWVUeXBlOiAidGV4dC9qYXZhc2NyaXB0IiwKICAgICAg
ICAgICAgICAgICBjb250ZW50OiBgYWxlcnQoIk9WRVJSSURERU4gb3ZlcnJpZGUuanMgVEVYVCIp
OyBUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiT3ZlcnJpZGVDb250ZW50RGlkTG9h
ZCIpO2AsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLWluc3BlY3Rvci1vdmVycmlkZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1pbnNwZWN0
b3Itb3ZlcnJpZGUuaHRtbAppbmRleCA3YTQwZWE4ODYwZTMuLjg2YTE1ZTQzMTcyMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1pbnNwZWN0b3Itb3ZlcnJpZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLWluc3BlY3Rvci1vdmVycmlk
ZS5odG1sCkBAIC00Miw3ICs0Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICByZXNwb25z
ZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuSW5zcGVjdG9yT3ZlcnJpZGUsCiAg
ICAgICAgIHN0YXR1c0NvZGU6IDk4NywKICAgICAgICAgYXN5bmMgc2V0dXAoKSB7Ci0gICAgICAg
ICAgICBXSS5uZXR3b3JrTWFuYWdlci5hZGRMb2NhbFJlc291cmNlT3ZlcnJpZGUoV0kuTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlLmNyZWF0ZSh7CisgICAgICAgICAgICBXSS5uZXR3b3JrTWFuYWdlci5h
ZGRMb2NhbFJlc291cmNlT3ZlcnJpZGUoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmNyZWF0ZShX
SS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuSW50ZXJjZXB0VHlwZS5SZXNwb25zZSwgewogICAgICAg
ICAgICAgICAgIHVybDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZXMvb3ZlcnJpZGUudHh0IiwKICAgICAgICAgICAgICAgICBtaW1lVHlwZTogInRleHQv
cGxhaW4iLAogICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICJPdmVycmlkZGVuIFRleHQiLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggODQwODQwOGIyZDBkLi5hN2I3MDUzYjVlYWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTA5LTI4ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQg
Y2hlY2tib3ggdG8gbG9jYWwgb3ZlcnJpZGUgcG9wb3ZlciB0byBhbGxvdyBpdCB0byBza2lwIHRo
ZSBuZXR3b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTcwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Nb2RlbHMvTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmpzOgorICAgICAgICAo
V0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlKToKKyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVy
cmlkZS5jcmVhdGUpOgorICAgICAgICAoV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmZyb21KU09O
KToKKyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5wcm90b3R5cGUudG9KU09OKToK
KyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5wcm90b3R5cGUuZ2V0IHR5cGUpOiBB
ZGRlZC4KKyAgICAgICAgKFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5wcm90b3R5cGUuc2F2ZUlk
ZW50aXR5VG9Db29raWUpOgorICAgICAgICBJbnRyb2R1Y2UgYSBgV0kuTG9jYWxSZXNvdXJjZU92
ZXJyaWRlLlR5cGVgIHRoYXQgaXMgdXNlZCB3aGVuIGhhbmRsaW5nIHJlcXVlc3QvcmVzcG9uc2UK
KyAgICAgICAgaW50ZXJjZXB0aW9ucyB0byBkZXRlcm1pbmVkIHRoZSBgTmV0d29ya2AgY29tbWFu
ZCBmb3IgY29udGludWluZy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
TmV0d29ya01hbmFnZXIuanM6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092
ZXJyaWRpbmdSZXF1ZXN0c1dpdGhSZXNwb25zZXMpOiBBZGRlZC4KKyAgICAgICAgKFdJLk5ldHdv
cmtNYW5hZ2VyLnN1cHBvcnRzT3ZlcnJpZGluZ1Jlc3BvbnNlcyk6IEFkZGVkLgorICAgICAgICAo
V0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLmluaXRpYWxpemVUYXJnZXQpOgorICAgICAgICAo
V0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLmFkZExvY2FsUmVzb3VyY2VPdmVycmlkZSk6Cisg
ICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUucmVtb3ZlTG9jYWxSZXNvdXJjZU92
ZXJyaWRlKToKKyAgICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5yZXF1ZXN0SW50
ZXJjZXB0ZWQpOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLnJlc3BvbnNl
SW50ZXJjZXB0ZWQpOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLl9jb21t
YW5kQXJndW1lbnRzRm9ySW50ZXJjZXB0aW9uKToKKyAgICAgICAgKFdJLk5ldHdvcmtNYW5hZ2Vy
LnByb3RvdHlwZS5fYWRkSW50ZXJjZXB0aW9uKTogQWRkZWQuCisgICAgICAgIChXSS5OZXR3b3Jr
TWFuYWdlci5wcm90b3R5cGUuX3JlbW92ZUludGVyY2VwdGlvbik6IEFkZGVkLgorICAgICAgICAo
V0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVSZXNvdXJjZU92ZXJyaWRlRGlzYWJs
ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzTG9jYWxSZXNv
dXJjZU92ZXJyaWRlcyk6IERlbGV0ZWQuCisgICAgICAgIEFkZCBsb2dpYyBmb3IgYE5ldHdvcmsu
aW50ZXJjZXB0UmVxdWVzdFdpdGhSZXNwb25zZWAgaW4gYE5ldHdvcmsucmVxdWVzdEludGVyY2Vw
dGVkYC4KKyAgICAgICAgRHJpdmUtYnk6IHJlZmFjdG9yIGNvbW1vbiBsb2dpYyBpbnRvIG1lbWJl
ciBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3Vy
Y2VPdmVycmlkZVBvcG92ZXIuanM6CisgICAgICAgIChXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVQ
b3BvdmVyLnByb3RvdHlwZS5nZXQgc2VyaWFsaXplZERhdGEpOgorICAgICAgICAoV0kuTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyLmNzczoKKyAgICAgICAg
KC5wb3BvdmVyIC5sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1wb3BvdmVyLWNvbnRlbnQgLmFkZC1o
ZWFkZXIgKyAucmVmZXJlbmNlLXBhZ2UtbGluay1jb250YWluZXIpOiBBZGRlZC4KKyAgICAgICAg
KC5wb3BvdmVyIC5sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1wb3BvdmVyLWNvbnRlbnQgLm9wdGlv
bnMgdGQpOiBBZGRlZC4KKyAgICAgICAgKC5wb3BvdmVyIC5sb2NhbC1yZXNvdXJjZS1vdmVycmlk
ZS1wb3BvdmVyLWNvbnRlbnQgLnJlZmVyZW5jZS1wYWdlLWxpbmstY29udGFpbmVyKTogRGVsZXRl
ZC4KKyAgICAgICAgQWRkIGFuICJPcHRpb25zIiByb3cgY29udGFpbmluZyBhICJbIF0gU2tpcCBO
ZXR3b3JrIiBjaGVja2JveCBmb3IgY29udHJvbGxpbmcgd2hldGhlcgorICAgICAgICBgTmV0d29y
ay5pbnRlcmNlcHRXaXRoUmVzcG9uc2VgIG9yIGBOZXR3b3JrLmludGVyY2VwdFJlcXVlc3RXaXRo
UmVzcG9uc2VgIGlzIHVzZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9SZXNv
dXJjZS5qczoKKyAgICAgICAgKFdJLlJlc291cmNlLnByb3RvdHlwZS5hc3luYyBjcmVhdGVMb2Nh
bFJlc291cmNlT3ZlcnJpZGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4
dE1lbnVVdGlsaXRpZXMuanM6CisgICAgICAgIChXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9y
U291cmNlQ29kZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Gb250UmVzb3VyY2VD
b250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3LnByb3Rv
dHlwZS5jb250ZW50QXZhaWxhYmxlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0lt
YWdlUmVzb3VyY2VDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLkltYWdlUmVzb3VyY2VDb250
ZW50Vmlldy5wcm90b3R5cGUuY29udGVudEF2YWlsYWJsZSk6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9Mb2NhbFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudC5qczoKKyAgICAgICAg
KFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50LnByb3RvdHlwZS53aWxsRGlzbWlz
c1BvcG92ZXIpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvT3BlblJlc291cmNlRGlh
bG9nLmpzOgorICAgICAgICAoV0kuT3BlblJlc291cmNlRGlhbG9nLnByb3RvdHlwZS5fYWRkTG9j
YWxSZXNvdXJjZU92ZXJyaWRlcyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNv
dXJjZUNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuUmVzb3VyY2VDb250ZW50Vmlldyk6Cisg
ICAgICAgIChXSS5SZXNvdXJjZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5jbG9zZWQpOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanM6
CisgICAgICAgIChXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCk6CisgICAgICAgIChX
SS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3dpbGxEaXNtaXNzTG9j
YWxPdmVycmlkZVBvcG92ZXIpOgorICAgICAgICAoV0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFy
UGFuZWwucHJvdG90eXBlLl9hZGRMb2NhbE92ZXJyaWRlKToKKyAgICAgICAgKFdJLlNvdXJjZXNO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcmVtb3ZlUmVzb3VyY2VPdmVycmlkZSk6
CisgICAgICAgIChXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3Bv
cHVsYXRlQ3JlYXRlUmVzb3VyY2VDb250ZXh0TWVudSk6CisgICAgICAgIFJlbmFtZSBgc3VwcG9y
dHNMb2NhbFJlc291cmNlT3ZlcnJpZGVzYCB0byBgc3VwcG9ydHNPdmVycmlkaW5nUmVzcG9uc2Vz
YCBmb3IgY2xhcml0eS4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qczoKKwogMjAyMC0wOS0yNSAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbmNhdWdodCBFeGNlcHRpb246IFR5cGVFcnJvcjogbnVs
bCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0aGlzLmxpc3RJdGVtRWxlbWVudC5jbGFz
c0xpc3QnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggZGNmNGFmNzIzNDZk
Li4zYzE5YzYxZjllZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6
YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtMTIw
Niw2ICsxMjA2LDggQEAgbG9jYWxpemVkU3RyaW5nc1siU2l0ZS1zcGVjaWZpYyBIYWNrcyJdID0g
IlNpdGUtc3BlY2lmaWMgSGFja3MiOwogbG9jYWxpemVkU3RyaW5nc1siU2l6ZSJdID0gIlNpemUi
OwogbG9jYWxpemVkU3RyaW5nc1siU2l6ZSBvZiBjdXJyZW50IG9iamVjdCBwbHVzIGFsbCBvYmpl
Y3RzIGl0IGtlZXBzIGFsaXZlIl0gPSAiU2l6ZSBvZiBjdXJyZW50IG9iamVjdCBwbHVzIGFsbCBv
YmplY3RzIGl0IGtlZXBzIGFsaXZlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNpemVzIl0gPSAiU2l6
ZXMiOworLyogTGFiZWwgZm9yIGNoZWNrYm94IHRoYXQgY29udHJvbHMgd2hldGhlciB0aGUgbG9j
YWwgb3ZlcnJpZGUgd2lsbCBhY3R1YWxseSBwZXJmb3JtIGEgbmV0d29yayByZXF1ZXN0IG9yIHNr
aXAgaXQgdG8gaW1tZWRpYXRlbHkgc2VydmUgdGhlIHJlc3BvbnNlLiAqLworbG9jYWxpemVkU3Ry
aW5nc1siU2tpcCBOZXR3b3JrIEAgTG9jYWwgT3ZlcnJpZGUgUG9wb3ZlciBPcHRpb25zIl0gPSAi
U2tpcCBOZXR3b3JrIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNuYXBzaG90ICVkIl0gPSAiU25hcHNo
b3QgJWQiOwogbG9jYWxpemVkU3RyaW5nc1siU25hcHNob3QgJWQgXHUyMDE0ICVzIl0gPSAiU25h
cHNob3QgJWQgXHUyMDE0ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNuYXBzaG90IENvbXBhcmlz
b24gKCVkIGFuZCAlZCkiXSA9ICJTbmFwc2hvdCBDb21wYXJpc29uICglZCBhbmQgJWQpIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanMKaW5kZXggZDI3ZjAyY2FmMDI4Li4xOTZiNDY4
NzdiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL05ldHdvcmtNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL05ldHdvcmtNYW5hZ2VyLmpzCkBAIC01Nyw3ICs1Nyw3
IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5P
YmplY3QKIAogICAgICAgICBXSS5GcmFtZS5hZGRFdmVudExpc3RlbmVyKFdJLkZyYW1lLkV2ZW50
Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcy5faGFuZGxlRnJhbWVNYWluUmVzb3VyY2VEaWRD
aGFuZ2UsIHRoaXMpOwogCi0gICAgICAgIGlmIChOZXR3b3JrTWFuYWdlci5zdXBwb3J0c0xvY2Fs
UmVzb3VyY2VPdmVycmlkZXMoKSkgeworICAgICAgICBpZiAoTmV0d29ya01hbmFnZXIuc3VwcG9y
dHNPdmVycmlkaW5nUmVzcG9uc2VzKCkpIHsKICAgICAgICAgICAgIFdJLlJlc291cmNlLmFkZEV2
ZW50TGlzdGVuZXIoV0kuU291cmNlQ29kZS5FdmVudC5Db250ZW50RGlkQ2hhbmdlLCB0aGlzLl9o
YW5kbGVSZXNvdXJjZUNvbnRlbnREaWRDaGFuZ2UsIHRoaXMpOwogICAgICAgICAgICAgV0kuTG9j
YWxSZXNvdXJjZU92ZXJyaWRlLmFkZEV2ZW50TGlzdGVuZXIoV0kuTG9jYWxSZXNvdXJjZU92ZXJy
aWRlLkV2ZW50LkRpc2FibGVkQ2hhbmdlZCwgdGhpcy5faGFuZGxlUmVzb3VyY2VPdmVycmlkZURp
c2FibGVkQ2hhbmdlZCwgdGhpcyk7CiAKQEAgLTY4LDYgKzY4LDE5IEBAIFdJLk5ldHdvcmtNYW5h
Z2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAg
ICAgICBmb3IgKGxldCBzZXJpYWxpemVkTG9jYWxSZXNvdXJjZU92ZXJyaWRlIG9mIHNlcmlhbGl6
ZWRMb2NhbFJlc291cmNlT3ZlcnJpZGVzKSB7CiAgICAgICAgICAgICAgICAgICAgIGxldCBsb2Nh
bFJlc291cmNlT3ZlcnJpZGUgPSBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuZnJvbUpTT04oc2Vy
aWFsaXplZExvY2FsUmVzb3VyY2VPdmVycmlkZSk7CiAKKyAgICAgICAgICAgICAgICAgICAgbGV0
IHN1cHBvcnRlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGxvY2FsUmVz
b3VyY2VPdmVycmlkZS50eXBlKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgV0kuTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlLkludGVyY2VwdFR5cGUuUmVzcG9uc2U6CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdXBwb3J0ZWQgPSBXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRpbmdS
ZXNwb25zZXMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLkludGVyY2VwdFR5cGUuUmVz
cG9uc2VTa2lwcGluZ05ldHdvcms6CisgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQg
PSBXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRpbmdSZXF1ZXN0c1dpdGhSZXNwb25z
ZXMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghc3VwcG9ydGVkKQorICAgICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CisKICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gbnVs
bDsKICAgICAgICAgICAgICAgICAgICAgV0kub2JqZWN0U3RvcmVzLmxvY2FsUmVzb3VyY2VPdmVy
cmlkZXMuYXNzb2NpYXRlT2JqZWN0KGxvY2FsUmVzb3VyY2VPdmVycmlkZSwga2V5LCBzZXJpYWxp
emVkTG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKIApAQCAtOTcsOSArMTEwLDE2IEBAIFdJLk5ldHdv
cmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAg
ICAgICAgICYmIEluc3BlY3RvckJhY2tlbmQuaGFzQ29tbWFuZCgiTmV0d29yay5nZXRTZXJpYWxp
emVkQ2VydGlmaWNhdGUiKTsKICAgICB9CiAKLSAgICBzdGF0aWMgc3VwcG9ydHNMb2NhbFJlc291
cmNlT3ZlcnJpZGVzKCkKKyAgICBzdGF0aWMgc3VwcG9ydHNPdmVycmlkaW5nUmVxdWVzdHNXaXRo
UmVzcG9uc2VzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0Nv
bW1hbmQoIk5ldHdvcmsuc2V0SW50ZXJjZXB0aW9uRW5hYmxlZCIpOworICAgICAgICAvLyBDT01Q
QVRJQklMSVRZIChpT1MgMTMuNCk6IE5ldHdvcmsuaW50ZXJjZXB0UmVxdWVzdFdpdGhSZXNwb25z
ZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFz
Q29tbWFuZCgiTmV0d29yay5pbnRlcmNlcHRSZXF1ZXN0V2l0aFJlc3BvbnNlIik7CisgICAgfQor
CisgICAgc3RhdGljIHN1cHBvcnRzT3ZlcnJpZGluZ1Jlc3BvbnNlcygpCisgICAgeworICAgICAg
ICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMCk6IE5ldHdvcmsuaW50ZXJjZXB0V2l0aFJlc3Bv
bnNlIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5o
YXNDb21tYW5kKCJOZXR3b3JrLmludGVyY2VwdFdpdGhSZXNwb25zZSIpOwogICAgIH0KIAogICAg
IHN0YXRpYyBzdXBwb3J0c0Jvb3RzdHJhcFNjcmlwdCgpCkBAIC0xNjEsMTQgKzE4MSw4IEBAIFdJ
Lk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Lk5ldHdvcmtBZ2VudC5zZXRJbnRlcmNlcHRpb25F
bmFibGVkKHRoaXMuX2ludGVyY2VwdGlvbkVuYWJsZWQpOwogCiAgICAgICAgICAgICAgICAgZm9y
IChsZXQgbG9jYWxSZXNvdXJjZU92ZXJyaWRlIG9mIHRoaXMuX2xvY2FsUmVzb3VyY2VPdmVycmlk
ZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlz
YWJsZWQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuYWRk
SW50ZXJjZXB0aW9uLmludm9rZSh7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBs
b2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YWdlOiBJbnNwZWN0b3JCYWNrZW5kLkVudW0uTmV0d29yay5OZXR3b3JrU3RhZ2UuUmVzcG9uc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZVNlbnNpdGl2ZTogbG9jYWxSZXNvdXJj
ZU92ZXJyaWRlLmlzQ2FzZVNlbnNpdGl2ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
c1JlZ2V4OiBsb2NhbFJlc291cmNlT3ZlcnJpZGUuaXNSZWdleCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm
ICghbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmRpc2FibGVkKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fYWRkSW50ZXJjZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVycmlkZSwgdGFyZ2V0KTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTM2NCwyMCAr
Mzc4LDggQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogICAgICAgICBpZiAoIXRoaXMuX3Jlc3RvcmluZ0xvY2FsUmVzb3VyY2VPdmVy
cmlkZXMpCiAgICAgICAgICAgICBXSS5vYmplY3RTdG9yZXMubG9jYWxSZXNvdXJjZU92ZXJyaWRl
cy5wdXRPYmplY3QobG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKIAotICAgICAgICBpZiAoIWxvY2Fs
UmVzb3VyY2VPdmVycmlkZS5kaXNhYmxlZCkgewotICAgICAgICAgICAgbGV0IGNvbW1hbmRBcmd1
bWVudHMgPSB7Ci0gICAgICAgICAgICAgICAgdXJsOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJs
LAotICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmU6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS5p
c0Nhc2VTZW5zaXRpdmUsCi0gICAgICAgICAgICAgICAgaXNSZWdleDogbG9jYWxSZXNvdXJjZU92
ZXJyaWRlLmlzUmVnZXgsCi0gICAgICAgICAgICAgICAgc3RhZ2U6IEluc3BlY3RvckJhY2tlbmQu
RW51bS5OZXR3b3JrLk5ldHdvcmtTdGFnZS5SZXNwb25zZSwKLSAgICAgICAgICAgIH07Ci0KLSAg
ICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMy4wKTogTmV0d29yay5hZGRJbnRlcmNl
cHRpb24gZGlkIG5vdCBleGlzdC4KLSAgICAgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50
YXJnZXRzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJOZXR3b3Jr
LmFkZEludGVyY2VwdGlvbiIpKQotICAgICAgICAgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0Fn
ZW50LmFkZEludGVyY2VwdGlvbi5pbnZva2UoY29tbWFuZEFyZ3VtZW50cyk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKCFsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJs
ZWQpCisgICAgICAgICAgICB0aGlzLl9hZGRJbnRlcmNlcHRpb24obG9jYWxSZXNvdXJjZU92ZXJy
aWRlKTsKIAogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5OZXR3b3Jr
TWFuYWdlci5FdmVudC5Mb2NhbFJlc291cmNlT3ZlcnJpZGVBZGRlZCwge2xvY2FsUmVzb3VyY2VP
dmVycmlkZX0pOwogICAgIH0KQEAgLTM5NywyMCArMzk5LDggQEAgV0kuTmV0d29ya01hbmFnZXIg
PSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBpZiAoIXRo
aXMuX3Jlc3RvcmluZ0xvY2FsUmVzb3VyY2VPdmVycmlkZXMpCiAgICAgICAgICAgICBXSS5vYmpl
Y3RTdG9yZXMubG9jYWxSZXNvdXJjZU92ZXJyaWRlcy5kZWxldGVPYmplY3QobG9jYWxSZXNvdXJj
ZU92ZXJyaWRlKTsKIAotICAgICAgICBpZiAoIWxvY2FsUmVzb3VyY2VPdmVycmlkZS5kaXNhYmxl
ZCkgewotICAgICAgICAgICAgbGV0IGNvbW1hbmRBcmd1bWVudHMgPSB7Ci0gICAgICAgICAgICAg
ICAgdXJsOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLAotICAgICAgICAgICAgICAgIGNhc2VT
ZW5zaXRpdmU6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS5pc0Nhc2VTZW5zaXRpdmUsCi0gICAgICAg
ICAgICAgICAgaXNSZWdleDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmlzUmVnZXgsCi0gICAgICAg
ICAgICAgICAgc3RhZ2U6IEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3JrLk5ldHdvcmtTdGFn
ZS5SZXNwb25zZSwKLSAgICAgICAgICAgIH07Ci0KLSAgICAgICAgICAgIC8vIENPTVBBVElCSUxJ
VFkgKGlPUyAxMy4wKTogTmV0d29yay5yZW1vdmVJbnRlcmNlcHRpb24gZGlkIG5vdCBleGlzdC4K
LSAgICAgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJOZXR3b3JrLnJlbW92ZUludGVyY2VwdGlvbiIp
KQotICAgICAgICAgICAgICAgICAgICB0YXJnZXQuTmV0d29ya0FnZW50LnJlbW92ZUludGVyY2Vw
dGlvbi5pbnZva2UoY29tbWFuZEFyZ3VtZW50cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
KyAgICAgICAgaWYgKCFsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJsZWQpCisgICAgICAgICAg
ICB0aGlzLl9yZW1vdmVJbnRlcmNlcHRpb24obG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKIAogICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5OZXR3b3JrTWFuYWdlci5FdmVu
dC5Mb2NhbFJlc291cmNlT3ZlcnJpZGVSZW1vdmVkLCB7bG9jYWxSZXNvdXJjZU92ZXJyaWRlfSk7
CiAgICAgfQpAQCAtOTQyLDggKzkzMiwzOCBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5l
dHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICByZXF1ZXN0SW50ZXJjZXB0ZWQo
dGFyZ2V0LCByZXF1ZXN0SWQsIHJlcXVlc3QpCiAgICAgewotICAgICAgICAvLyBGSVhNRTogYWRk
IHJlcXVlc3QgaW50ZXJjZXB0aW9uIHN1cHBvcnQgdG8gdGhlIGZyb250ZW5kLgotICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5OZXR3b3JrTWFuYWdlci5FdmVudC5SZXF1
ZXN0SW50ZXJjZXB0ZWQsIHt0YXJnZXQsIHJlcXVlc3RJZCwgcmVxdWVzdH0pOworICAgICAgICBp
ZiAod2luZG93Lkluc3BlY3RvclRlc3QpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMjE3MDMyPiBXZWIgSW5zcGVjdG9yOiBhZGQgVUkgZm9yIHJlcXVlc3Qg
aW50ZXJjZXB0aW9uCisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
SS5OZXR3b3JrTWFuYWdlci5FdmVudC5SZXF1ZXN0SW50ZXJjZXB0ZWQsIHt0YXJnZXQsIHJlcXVl
c3RJZCwgcmVxdWVzdH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgbGV0IHVybCA9IFdJLnVybFdpdGhvdXRGcmFnbWVudChyZXF1ZXN0LnVybCk7CisgICAgICAg
IGxldCBsb2NhbFJlc291cmNlT3ZlcnJpZGUgPSB0aGlzLmxvY2FsUmVzb3VyY2VPdmVycmlkZUZv
clVSTCh1cmwpOworICAgICAgICBpZiAoIWxvY2FsUmVzb3VyY2VPdmVycmlkZSB8fCBsb2NhbFJl
c291cmNlT3ZlcnJpZGUuZGlzYWJsZWQpIHsKKyAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdl
bnQuaW50ZXJjZXB0Q29udGludWUuaW52b2tlKHsKKyAgICAgICAgICAgICAgICByZXF1ZXN0SWQs
CisgICAgICAgICAgICAgICAgc3RhZ2U6IEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3JrLk5l
dHdvcmtTdGFnZS5SZXF1ZXN0LAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBjb25zb2xlLmFzc2VydChsb2NhbFJlc291cmNlT3ZlcnJp
ZGUudHlwZSA9PT0gV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLkludGVyY2VwdFR5cGUuUmVzcG9u
c2VTa2lwcGluZ05ldHdvcmssIGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CisKKyAgICAgICAgbGV0
IGxvY2FsUmVzb3VyY2UgPSBsb2NhbFJlc291cmNlT3ZlcnJpZGUubG9jYWxSZXNvdXJjZTsKKyAg
ICAgICAgbGV0IHJldmlzaW9uID0gbG9jYWxSZXNvdXJjZS5jdXJyZW50UmV2aXNpb247CisKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQocmV2aXNpb24ubWltZVR5cGUgPT09IGxvY2FsUmVzb3VyY2Uu
bWltZVR5cGUpOworCisgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuaW50ZXJjZXB0UmVxdWVz
dFdpdGhSZXNwb25zZS5pbnZva2UoeworICAgICAgICAgICAgcmVxdWVzdElkLAorICAgICAgICAg
ICAgY29udGVudDogcmV2aXNpb24uY29udGVudCwKKyAgICAgICAgICAgIGJhc2U2NEVuY29kZWQ6
ICEhcmV2aXNpb24uYmFzZTY0RW5jb2RlZCwKKyAgICAgICAgICAgIG1pbWVUeXBlOiByZXZpc2lv
bi5taW1lVHlwZSwKKyAgICAgICAgICAgIHN0YXR1czogIWlzTmFOKGxvY2FsUmVzb3VyY2Uuc3Rh
dHVzQ29kZSkgPyBsb2NhbFJlc291cmNlLnN0YXR1c0NvZGUgOiAyMDAsCisgICAgICAgICAgICBz
dGF0dXNUZXh0OiBsb2NhbFJlc291cmNlLnN0YXR1c1RleHQgPz8gV0kuSFRUUFV0aWxpdGllcy5z
dGF0dXNUZXh0Rm9yU3RhdHVzQ29kZSgyMDApLAorICAgICAgICAgICAgaGVhZGVyczogbG9jYWxS
ZXNvdXJjZS5yZXNwb25zZUhlYWRlcnMgPz8ge30sCisgICAgICAgIH0pOwogICAgIH0KIAogICAg
IHJlc3BvbnNlSW50ZXJjZXB0ZWQodGFyZ2V0LCByZXF1ZXN0SWQsIHJlc3BvbnNlKQpAQCAtOTU4
LDYgKzk3OCw4IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGxvY2FsUmVzb3VyY2VPdmVycmlkZS50eXBlID09PSBXSS5Mb2NhbFJl
c291cmNlT3ZlcnJpZGUuSW50ZXJjZXB0VHlwZS5SZXNwb25zZSwgbG9jYWxSZXNvdXJjZU92ZXJy
aWRlKTsKKwogICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZSA9IGxvY2FsUmVzb3VyY2VPdmVycmlk
ZS5sb2NhbFJlc291cmNlOwogICAgICAgICBsZXQgcmV2aXNpb24gPSBsb2NhbFJlc291cmNlLmN1
cnJlbnRSZXZpc2lvbjsKIApAQCAtMTI4MCw2ICsxMzAyLDQ3IEBAIFdJLk5ldHdvcmtNYW5hZ2Vy
ID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgcmVzb3Vy
Y2VzLnB1c2gocmVzb3VyY2UpOwogICAgIH0KIAorICAgIF9jb21tYW5kQXJndW1lbnRzRm9ySW50
ZXJjZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVycmlkZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGxvY2FsUmVzb3VyY2VPdmVycmlkZSBpbnN0YW5jZW9mIFdJLkxvY2FsUmVzb3VyY2VP
dmVycmlkZSwgbG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKKworICAgICAgICByZXR1cm4geworICAg
ICAgICAgICAgdXJsOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUudXJsLAorICAgICAgICAgICAgc3Rh
Z2U6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS50eXBlID09PSBXSS5Mb2NhbFJlc291cmNlT3ZlcnJp
ZGUuSW50ZXJjZXB0VHlwZS5SZXNwb25zZSA/IEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3Jr
Lk5ldHdvcmtTdGFnZS5SZXNwb25zZSA6IEluc3BlY3RvckJhY2tlbmQuRW51bS5OZXR3b3JrLk5l
dHdvcmtTdGFnZS5SZXF1ZXN0LAorICAgICAgICAgICAgY2FzZVNlbnNpdGl2ZTogbG9jYWxSZXNv
dXJjZU92ZXJyaWRlLmlzQ2FzZVNlbnNpdGl2ZSwKKyAgICAgICAgICAgIGlzUmVnZXg6IGxvY2Fs
UmVzb3VyY2VPdmVycmlkZS5pc1JlZ2V4LAorICAgICAgICB9OworICAgIH0KKworICAgIF9hZGRJ
bnRlcmNlcHRpb24obG9jYWxSZXNvdXJjZU92ZXJyaWRlLCBzcGVjaWZpY1RhcmdldCkKKyAgICB7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxvY2FsUmVzb3VyY2VPdmVycmlkZSBpbnN0YW5jZW9m
IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSwgbG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQoIWxvY2FsUmVzb3VyY2VPdmVycmlkZS5kaXNhYmxlZCwgbG9jYWxS
ZXNvdXJjZU92ZXJyaWRlKTsKKworICAgICAgICBsZXQgdGFyZ2V0cyA9IHNwZWNpZmljVGFyZ2V0
ID8gW3NwZWNpZmljVGFyZ2V0XSA6IFdJLnRhcmdldHM7CisgICAgICAgIGZvciAobGV0IHRhcmdl
dCBvZiB0YXJnZXRzKSB7CisgICAgICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTMuMCk6
IE5ldHdvcmsuYWRkSW50ZXJjZXB0aW9uIGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICAgICAg
aWYgKCF0YXJnZXQuaGFzQ29tbWFuZCgiTmV0d29yay5hZGRJbnRlcmNlcHRpb24iKSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgdGFyZ2V0Lk5ldHdvcmtBZ2VudC5h
ZGRJbnRlcmNlcHRpb24uaW52b2tlKHRoaXMuX2NvbW1hbmRBcmd1bWVudHNGb3JJbnRlcmNlcHRp
b24obG9jYWxSZXNvdXJjZU92ZXJyaWRlKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfcmVt
b3ZlSW50ZXJjZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVycmlkZSwgc3BlY2lmaWNUYXJnZXQpCisg
ICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChsb2NhbFJlc291cmNlT3ZlcnJpZGUgaW5zdGFu
Y2VvZiBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUsIGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CisK
KyAgICAgICAgbGV0IHRhcmdldHMgPSBzcGVjaWZpY1RhcmdldCA/IFtzcGVjaWZpY1RhcmdldF0g
OiBXSS50YXJnZXRzOworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgdGFyZ2V0cykgeworICAg
ICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEzLjApOiBOZXR3b3JrLnJlbW92ZUludGVy
Y2VwdGlvbiBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgICAgIGlmICghdGFyZ2V0Lmhhc0Nv
bW1hbmQoIk5ldHdvcmsucmVtb3ZlSW50ZXJjZXB0aW9uIikpCisgICAgICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQucmVtb3ZlSW50ZXJjZXB0
aW9uLmludm9rZSh0aGlzLl9jb21tYW5kQXJndW1lbnRzRm9ySW50ZXJjZXB0aW9uKGxvY2FsUmVz
b3VyY2VPdmVycmlkZSkpOworICAgICAgICB9CisgICAgfQorCiAgICAgX2Rpc3BhdGNoRnJhbWVX
YXNBZGRlZEV2ZW50KGZyYW1lKQogICAgIHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV0kuTmV0d29ya01hbmFnZXIuRXZlbnQuRnJhbWVXYXNBZGRlZCwge2ZyYW1lfSk7
CkBAIC0xNDA4LDI3ICsxNDcxLDE1IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29y
a01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIF9oYW5kbGVSZXNvdXJjZU92ZXJyaWRl
RGlzYWJsZWRDaGFuZ2VkKGV2ZW50KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoV0ku
TmV0d29ya01hbmFnZXIuc3VwcG9ydHNMb2NhbFJlc291cmNlT3ZlcnJpZGVzKCkpOworICAgICAg
ICBjb25zb2xlLmFzc2VydChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRpbmdSZXNw
b25zZXMoKSk7CiAKICAgICAgICAgbGV0IGxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IGV2ZW50LnRh
cmdldDsKICAgICAgICAgV0kub2JqZWN0U3RvcmVzLmxvY2FsUmVzb3VyY2VPdmVycmlkZXMucHV0
T2JqZWN0KGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CiAKLSAgICAgICAgbGV0IGNvbW1hbmRBcmd1
bWVudHMgPSB7Ci0gICAgICAgICAgICB1cmw6IGxvY2FsUmVzb3VyY2VPdmVycmlkZS51cmwsCi0g
ICAgICAgICAgICBjYXNlU2Vuc2l0aXZlOiBsb2NhbFJlc291cmNlT3ZlcnJpZGUuaXNDYXNlU2Vu
c2l0aXZlLAotICAgICAgICAgICAgaXNSZWdleDogbG9jYWxSZXNvdXJjZU92ZXJyaWRlLmlzUmVn
ZXgsCi0gICAgICAgICAgICBzdGFnZTogSW5zcGVjdG9yQmFja2VuZC5FbnVtLk5ldHdvcmsuTmV0
d29ya1N0YWdlLlJlc3BvbnNlLAotICAgICAgICB9OwotCi0gICAgICAgIC8vIENPTVBBVElCSUxJ
VFkgKGlPUyAxMy4wKTogTmV0d29yay5hZGRJbnRlcmNlcHRpb24gLyBOZXR3b3JrLnJlbW92ZUlu
dGVyY2VwdGlvbiBkaWQgbm90IGV4aXN0LgotICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0ku
dGFyZ2V0cykgewotICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNEb21haW4oIk5ldHdvcmsiKSkg
ewotICAgICAgICAgICAgICAgIGlmIChsb2NhbFJlc291cmNlT3ZlcnJpZGUuZGlzYWJsZWQpCi0g
ICAgICAgICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQucmVtb3ZlSW50ZXJjZXB0aW9u
Lmludm9rZShjb21tYW5kQXJndW1lbnRzKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgIHRhcmdldC5OZXR3b3JrQWdlbnQuYWRkSW50ZXJjZXB0aW9uLmludm9rZShj
b21tYW5kQXJndW1lbnRzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBpZiAo
bG9jYWxSZXNvdXJjZU92ZXJyaWRlLmRpc2FibGVkKQorICAgICAgICAgICAgdGhpcy5fcmVtb3Zl
SW50ZXJjZXB0aW9uKGxvY2FsUmVzb3VyY2VPdmVycmlkZSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRoaXMuX2FkZEludGVyY2VwdGlvbihsb2NhbFJlc291cmNlT3ZlcnJpZGUpOwogICAg
IH0KIAogICAgIF9oYW5kbGVCb290c3RyYXBTY3JpcHRDb250ZW50RGlkQ2hhbmdlKGV2ZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0xv
Y2FsUmVzb3VyY2VPdmVycmlkZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9Mb2NhbFJlc291cmNlT3ZlcnJpZGUuanMKaW5kZXggYTAzOGQyYTlhOTM2Li5l
ZjcyOWNkYzJkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9Mb2NhbFJlc291cmNlT3ZlcnJpZGUuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0xvY2FsUmVzb3VyY2VPdmVycmlkZS5qcwpAQCAt
MjUsMTcgKzI1LDE5IEBACiAKIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IGNsYXNzIExvY2Fs
UmVzb3VyY2VPdmVycmlkZSBleHRlbmRzIFdJLk9iamVjdAogewotICAgIGNvbnN0cnVjdG9yKGxv
Y2FsUmVzb3VyY2UsIHtpc0Nhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGRpc2FibGVkfSA9IHt9KQor
ICAgIGNvbnN0cnVjdG9yKHR5cGUsIGxvY2FsUmVzb3VyY2UsIHtpc0Nhc2VTZW5zaXRpdmUsIGlz
UmVnZXgsIGRpc2FibGVkfSA9IHt9KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQobG9j
YWxSZXNvdXJjZSBpbnN0YW5jZW9mIFdJLkxvY2FsUmVzb3VyY2UpOwotICAgICAgICBjb25zb2xl
LmFzc2VydChsb2NhbFJlc291cmNlLmlzTG9jYWxSZXNvdXJjZU92ZXJyaWRlKTsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQobG9jYWxSZXNvdXJjZS51cmwpOwotICAgICAgICBjb25zb2xlLmFzc2Vy
dChpc0Nhc2VTZW5zaXRpdmUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgaXNDYXNlU2Vuc2l0aXZl
ID09PSAiYm9vbGVhbiIpOwotICAgICAgICBjb25zb2xlLmFzc2VydChpc1JlZ2V4ID09PSB1bmRl
ZmluZWQgfHwgdHlwZW9mIGlzUmVnZXggPT09ICJib29sZWFuIik7Ci0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGRpc2FibGVkID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGRpc2FibGVkID09PSAiYm9v
bGVhbiIpOworICAgICAgICBjb25zb2xlLmFzc2VydChPYmplY3QudmFsdWVzKFdJLkxvY2FsUmVz
b3VyY2VPdmVycmlkZS5JbnRlcmNlcHRUeXBlKS5pbmNsdWRlcyh0eXBlKSwgdHlwZSk7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGxvY2FsUmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5Mb2NhbFJlc291
cmNlLCBsb2NhbFJlc291cmNlKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQobG9jYWxSZXNvdXJj
ZS5pc0xvY2FsUmVzb3VyY2VPdmVycmlkZSwgbG9jYWxSZXNvdXJjZSk7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGxvY2FsUmVzb3VyY2UudXJsLCBsb2NhbFJlc291cmNlKTsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoaXNDYXNlU2Vuc2l0aXZlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGlzQ2Fz
ZVNlbnNpdGl2ZSA9PT0gImJvb2xlYW4iLCBpc0Nhc2VTZW5zaXRpdmUpOworICAgICAgICBjb25z
b2xlLmFzc2VydChpc1JlZ2V4ID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGlzUmVnZXggPT09ICJi
b29sZWFuIiwgaXNSZWdleCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRpc2FibGVkID09PSB1
bmRlZmluZWQgfHwgdHlwZW9mIGRpc2FibGVkID09PSAiYm9vbGVhbiIsIGRpc2FibGVkKTsKIAog
ICAgICAgICBzdXBlcigpOwogCisgICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOwogICAgICAgICB0
aGlzLl9sb2NhbFJlc291cmNlID0gbG9jYWxSZXNvdXJjZTsKICAgICAgICAgdGhpcy5faXNDYXNl
U2Vuc2l0aXZlID0gaXNDYXNlU2Vuc2l0aXZlICE9PSB1bmRlZmluZWQgPyBpc0Nhc2VTZW5zaXRp
dmUgOiB0cnVlOwogICAgICAgICB0aGlzLl9pc1JlZ2V4ID0gaXNSZWdleCAhPT0gdW5kZWZpbmVk
ID8gaXNSZWdleCA6IGZhbHNlOwpAQCAtNDQsNyArNDYsNyBAQCBXSS5Mb2NhbFJlc291cmNlT3Zl
cnJpZGUgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAog
ICAgIC8vIFN0YXRpYwogCi0gICAgc3RhdGljIGNyZWF0ZSh7dXJsLCBtaW1lVHlwZSwgY29udGVu
dCwgYmFzZTY0RW5jb2RlZCwgc3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwgaGVhZGVycywgaXNDYXNl
U2Vuc2l0aXZlLCBpc1JlZ2V4LCBkaXNhYmxlZH0pCisgICAgc3RhdGljIGNyZWF0ZSh0eXBlLCB7
dXJsLCBtaW1lVHlwZSwgY29udGVudCwgYmFzZTY0RW5jb2RlZCwgc3RhdHVzQ29kZSwgc3RhdHVz
VGV4dCwgaGVhZGVycywgaXNDYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBkaXNhYmxlZH0pCiAgICAg
ewogICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZSA9IG5ldyBXSS5Mb2NhbFJlc291cmNlKHsKICAg
ICAgICAgICAgIHJlcXVlc3Q6IHsKQEAgLTYxLDIwICs2MywyNSBAQCBXSS5Mb2NhbFJlc291cmNl
T3ZlcnJpZGUgPSBjbGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGUgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgICAgIGlzTG9jYWxSZXNvdXJjZU92ZXJyaWRlOiB0cnVlLAogICAgICAgICB9KTsK
IAotICAgICAgICByZXR1cm4gbmV3IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZShsb2NhbFJlc291
cmNlLCB7aXNDYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBkaXNhYmxlZH0pOworICAgICAgICByZXR1
cm4gbmV3IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSh0eXBlLCBsb2NhbFJlc291cmNlLCB7aXND
YXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBkaXNhYmxlZH0pOwogICAgIH0KIAogICAgIC8vIEltcG9y
dCAvIEV4cG9ydAogCiAgICAgc3RhdGljIGZyb21KU09OKGpzb24pCiAgICAgewotICAgICAgICBs
ZXQge2xvY2FsUmVzb3VyY2UsIGlzQ2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgZGlzYWJsZWR9ID0g
anNvbjsKLSAgICAgICAgcmV0dXJuIG5ldyBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUoV0kuTG9j
YWxSZXNvdXJjZS5mcm9tSlNPTihsb2NhbFJlc291cmNlKSwge2lzQ2FzZVNlbnNpdGl2ZSwgaXNS
ZWdleCwgZGlzYWJsZWR9KTsKKyAgICAgICAgbGV0IHt0eXBlLCBsb2NhbFJlc291cmNlLCBpc0Nh
c2VTZW5zaXRpdmUsIGlzUmVnZXgsIGRpc2FibGVkfSA9IGpzb247CisKKyAgICAgICAgLy8gQ09N
UEFUSUJJTElUWSAoaU9TIDEzLjQpOiBOZXR3b3JrLmludGVyY2VwdFdpdGhSZXF1ZXN0L05ldHdv
cmsuaW50ZXJjZXB0UmVxdWVzdFdpdGhSZXNwb25zZSBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAg
ICAgdHlwZSA/Pz0gV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLkludGVyY2VwdFR5cGUuUmVzcG9u
c2U7CisKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUodHlwZSwg
V0kuTG9jYWxSZXNvdXJjZS5mcm9tSlNPTihsb2NhbFJlc291cmNlKSwge2lzQ2FzZVNlbnNpdGl2
ZSwgaXNSZWdleCwgZGlzYWJsZWR9KTsKICAgICB9CiAKICAgICB0b0pTT04oa2V5KQogICAgIHsK
ICAgICAgICAgbGV0IGpzb24gPSB7CisgICAgICAgICAgICB0eXBlOiB0aGlzLl90eXBlLAogICAg
ICAgICAgICAgbG9jYWxSZXNvdXJjZTogdGhpcy5fbG9jYWxSZXNvdXJjZS50b0pTT04oa2V5KSwK
ICAgICAgICAgICAgIGlzQ2FzZVNlbnNpdGl2ZTogdGhpcy5faXNDYXNlU2Vuc2l0aXZlLAogICAg
ICAgICAgICAgaXNSZWdleDogdGhpcy5faXNSZWdleCwKQEAgLTg5LDYgKzk2LDcgQEAgV0kuTG9j
YWxSZXNvdXJjZU92ZXJyaWRlID0gY2xhc3MgTG9jYWxSZXNvdXJjZU92ZXJyaWRlIGV4dGVuZHMg
V0kuT2JqZWN0CiAKICAgICAvLyBQdWJsaWMKIAorICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhp
cy5fdHlwZTsgfQogICAgIGdldCB1cmwoKSB7IHJldHVybiB0aGlzLl9sb2NhbFJlc291cmNlLnVy
bDsgfQogICAgIGdldCBsb2NhbFJlc291cmNlKCkgeyByZXR1cm4gdGhpcy5fbG9jYWxSZXNvdXJj
ZTsgfQogICAgIGdldCBpc0Nhc2VTZW5zaXRpdmUoKSB7IHJldHVybiB0aGlzLl9pc0Nhc2VTZW5z
aXRpdmU7IH0KQEAgLTEyNiw2ICsxMzQsNyBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBj
bGFzcyBMb2NhbFJlc291cmNlT3ZlcnJpZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIHNhdmVJ
ZGVudGl0eVRvQ29va2llKGNvb2tpZSkKICAgICB7CisgICAgICAgIGNvb2tpZVsibG9jYWwtcmVz
b3VyY2Utb3ZlcnJpZGUtdHlwZSJdID0gdGhpcy5fdHlwZTsKICAgICAgICAgY29va2llWyJsb2Nh
bC1yZXNvdXJjZS1vdmVycmlkZS11cmwiXSA9IHRoaXMuX2xvY2FsUmVzb3VyY2UudXJsOwogICAg
ICAgICBjb29raWVbImxvY2FsLXJlc291cmNlLW92ZXJyaWRlLWlzLWNhc2Utc2Vuc2l0aXZlIl0g
PSB0aGlzLl9pc0Nhc2VTZW5zaXRpdmU7CiAgICAgICAgIGNvb2tpZVsibG9jYWwtcmVzb3VyY2Ut
b3ZlcnJpZGUtaXMtcmVnZXgiXSA9IHRoaXMuX2lzUmVnZXg7CkBAIC0xMzUsNiArMTQ0LDExIEBA
IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZSA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZSBl
eHRlbmRzIFdJLk9iamVjdAogCiBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuVHlwZUlkZW50aWZp
ZXIgPSAibG9jYWwtcmVzb3VyY2Utb3ZlcnJpZGUiOwogCitXSS5Mb2NhbFJlc291cmNlT3ZlcnJp
ZGUuSW50ZXJjZXB0VHlwZSA9IHsKKyAgICBSZXNwb25zZTogInJlc3BvbnNlIiwKKyAgICBSZXNw
b25zZVNraXBwaW5nTmV0d29yazogInJlc3BvbnNlLXNraXBwaW5nLW5ldHdvcmsiLAorfTsKKwog
V0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLkV2ZW50ID0gewogICAgIERpc2FibGVkQ2hhbmdlZDog
ImxvY2FsLXJlc291cmNlLW92ZXJyaWRlLWRpc2FibGVkLXN0YXRlLWRpZC1jaGFuZ2UiLAogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9S
ZXNvdXJjZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9S
ZXNvdXJjZS5qcwppbmRleCBiZDFmODA0MzI2MGMuLjgxZTQ4OGM3NDc1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5q
cwpAQCAtMTA2NSwxMSArMTA2NSwxMSBAQCBXSS5SZXNvdXJjZSA9IGNsYXNzIFJlc291cmNlIGV4
dGVuZHMgV0kuU291cmNlQ29kZQogICAgIGFzeW5jIGNyZWF0ZUxvY2FsUmVzb3VyY2VPdmVycmlk
ZSh7aW5pdGlhbE1JTUVUeXBlLCBpbml0aWFsQmFzZTY0RW5jb2RlZCwgaW5pdGlhbENvbnRlbnR9
ID0ge30pCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5pc0xvY2FsUmVzb3Vy
Y2VPdmVycmlkZSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KFdJLk5ldHdvcmtNYW5hZ2VyLnN1
cHBvcnRzTG9jYWxSZXNvdXJjZU92ZXJyaWRlcygpKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
V0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNPdmVycmlkaW5nUmVzcG9uc2VzKCkpOwogCiAgICAg
ICAgIGxldCB7cmF3Q29udGVudCwgcmF3QmFzZTY0RW5jb2RlZH0gPSBhd2FpdCB0aGlzLnJlcXVl
c3RDb250ZW50KCk7CiAKLSAgICAgICAgcmV0dXJuIFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5j
cmVhdGUoeworICAgICAgICByZXR1cm4gV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLmNyZWF0ZShX
SS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuSW50ZXJjZXB0VHlwZS5SZXNwb25zZSwgewogICAgICAg
ICAgICAgdXJsOiB0aGlzLnVybCwKICAgICAgICAgICAgIG1pbWVUeXBlOiBpbml0aWFsTUlNRVR5
cGUgIT09IHVuZGVmaW5lZCA/IGluaXRpYWxNSU1FVHlwZSA6IHRoaXMubWltZVR5cGUsCiAgICAg
ICAgICAgICBjb250ZW50OiBpbml0aWFsQ29udGVudCAhPT0gdW5kZWZpbmVkID8gaW5pdGlhbENv
bnRlbnQgOiByYXdDb250ZW50LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qcwppbmRl
eCAzNjM5Y2RkOWEyODMuLmJmZDIzZDYyMmVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGls
aXRpZXMuanMKQEAgLTczLDcgKzczLDcgQEAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvclNv
dXJjZUNvZGUgPSBmdW5jdGlvbihjb250ZXh0TWVudSwgc291cmNlQ29kZU9yTG9jYXQKICAgICBp
ZiAoY29udGV4dE1lbnUuX19kb21CcmVha3BvaW50SXRlbXNBZGRlZCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKCFjb250ZXh0TWVudS5fX2xvY2FsT3ZlcnJpZGVJdGVtc0FkZGVkICYmIFdJ
Lk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzTG9jYWxSZXNvdXJjZU92ZXJyaWRlcygpKSB7CisgICAg
aWYgKCFjb250ZXh0TWVudS5fX2xvY2FsT3ZlcnJpZGVJdGVtc0FkZGVkICYmIFdJLk5ldHdvcmtN
YW5hZ2VyLnN1cHBvcnRzT3ZlcnJpZGluZ1Jlc3BvbnNlcygpKSB7CiAgICAgICAgIGNvbnRleHRN
ZW51Ll9fbG9jYWxPdmVycmlkZUl0ZW1zQWRkZWQgPSB0cnVlOwogCiAgICAgICAgIGlmIChXSS5u
ZXR3b3JrTWFuYWdlci5jYW5CZU92ZXJyaWRkZW4oc291cmNlQ29kZSkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZvbnRSZXNvdXJjZUNv
bnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Rm9udFJlc291cmNlQ29udGVudFZpZXcuanMKaW5kZXggZDZjYjBjMmYyNjMxLi5kMDkzMDZhNzA5
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0ZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0ZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3LmpzCkBAIC02NSw3ICs2
NSw3IEBAIFdJLkZvbnRSZXNvdXJjZUNvbnRlbnRWaWV3ID0gY2xhc3MgRm9udFJlc291cmNlQ29u
dGVudFZpZXcgZXh0ZW5kcyBXSS5SZXNvdXJjZUNvCiAKICAgICAgICAgdGhpcy5fdXBkYXRlUHJl
dmlld0VsZW1lbnQoKTsKIAotICAgICAgICBpZiAoV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNM
b2NhbFJlc291cmNlT3ZlcnJpZGVzKCkpIHsKKyAgICAgICAgaWYgKFdJLk5ldHdvcmtNYW5hZ2Vy
LnN1cHBvcnRzT3ZlcnJpZGluZ1Jlc3BvbnNlcygpKSB7CiAgICAgICAgICAgICBsZXQgZHJvcFpv
bmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlzKTsKICAgICAgICAgICAgIGRyb3Bab25l
Vmlldy50YXJnZXRFbGVtZW50ID0gdGhpcy5fcHJldmlld0NvbnRhaW5lcjsKICAgICAgICAgICAg
IHRoaXMuYWRkU3Vidmlldyhkcm9wWm9uZVZpZXcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW1hZ2VSZXNvdXJjZUNvbnRlbnRWaWV3Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW1hZ2VSZXNvdXJj
ZUNvbnRlbnRWaWV3LmpzCmluZGV4IDNmYjkxOGY0MWQxYS4uMDYyYTg4ZTI2MmIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbWFnZVJlc291
cmNlQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvSW1hZ2VSZXNvdXJjZUNvbnRlbnRWaWV3LmpzCkBAIC04Nyw3ICs4Nyw3IEBAIFdJ
LkltYWdlUmVzb3VyY2VDb250ZW50VmlldyA9IGNsYXNzIEltYWdlUmVzb3VyY2VDb250ZW50Vmll
dyBleHRlbmRzIFdJLlJlc291cmNlCiAgICAgICAgICAgICB0aGlzLl9kcmFnZ2luZ0ludGVybmFs
SW1hZ2VFbGVtZW50ID0gZmFsc2U7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGlmIChXSS5OZXR3
b3JrTWFuYWdlci5zdXBwb3J0c0xvY2FsUmVzb3VyY2VPdmVycmlkZXMoKSAmJiAhdGhpcy5fZGlz
YWJsZURyb3Bab25lKSB7CisgICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092
ZXJyaWRpbmdSZXNwb25zZXMoKSAmJiAhdGhpcy5fZGlzYWJsZURyb3Bab25lKSB7CiAgICAgICAg
ICAgICBsZXQgZHJvcFpvbmVWaWV3ID0gbmV3IFdJLkRyb3Bab25lVmlldyh0aGlzKTsKICAgICAg
ICAgICAgIGRyb3Bab25lVmlldy50YXJnZXRFbGVtZW50ID0gaW1hZ2VDb250YWluZXI7CiAgICAg
ICAgICAgICB0aGlzLmFkZFN1YnZpZXcoZHJvcFpvbmVWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlk
ZVBvcG92ZXIuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5jc3MKaW5kZXggY2Y2MDNkNjU1NTJiLi4xOWEy
MmY5ZjRlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIuY3NzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92
ZXIuY3NzCkBAIC05OCwxMCArOTgsMTQgQEAKICAgICBtYXJnaW4tdG9wOiA4cHg7CiB9CiAKLS5w
b3BvdmVyIC5sb2NhbC1yZXNvdXJjZS1vdmVycmlkZS1wb3BvdmVyLWNvbnRlbnQgLnJlZmVyZW5j
ZS1wYWdlLWxpbmstY29udGFpbmVyIHsKKy5wb3BvdmVyIC5sb2NhbC1yZXNvdXJjZS1vdmVycmlk
ZS1wb3BvdmVyLWNvbnRlbnQgLmFkZC1oZWFkZXIgKyAucmVmZXJlbmNlLXBhZ2UtbGluay1jb250
YWluZXIgewogICAgIG1hcmdpbi10b3A6IDZweDsKIH0KIAorLnBvcG92ZXIgLmxvY2FsLXJlc291
cmNlLW92ZXJyaWRlLXBvcG92ZXItY29udGVudCAub3B0aW9ucyB0ZCB7CisgICAgdmVydGljYWwt
YWxpZ246IGJvdHRvbTsKK30KKwogYm9keVtkaXI9bHRyXSAucG9wb3ZlciAubG9jYWwtcmVzb3Vy
Y2Utb3ZlcnJpZGUtcG9wb3Zlci1jb250ZW50IC5yZWZlcmVuY2UtcGFnZS1saW5rLWNvbnRhaW5l
ciB7CiAgICAgZmxvYXQ6IHJpZ2h0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVzb3VyY2VP
dmVycmlkZVBvcG92ZXIuanMKaW5kZXggODQzNTk1ZjYyNTA3Li42MDU3YTYzMjE4YTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xvY2FsUmVz
b3VyY2VPdmVycmlkZVBvcG92ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlUG9wb3Zlci5qcwpAQCAtOTEsNiAr
OTEsNyBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVQb3BvdmVyID0gY2xhc3MgTG9jYWxSZXNv
dXJjZU92ZXJyaWRlUG9wb3ZlciBleHRlbmRzIFdJLgogICAgICAgICB9CiAKICAgICAgICAgbGV0
IGRhdGEgPSB7CisgICAgICAgICAgICB0eXBlOiB0aGlzLl9za2lwTmV0d29ya0NoZWNrYm94Py5j
aGVja2VkID8gV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlLkludGVyY2VwdFR5cGUuUmVzcG9uc2VT
a2lwcGluZ05ldHdvcmsgOiBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuSW50ZXJjZXB0VHlwZS5S
ZXNwb25zZSwKICAgICAgICAgICAgIHVybCwKICAgICAgICAgICAgIG1pbWVUeXBlLAogICAgICAg
ICAgICAgc3RhdHVzQ29kZSwKQEAgLTI5MSw3ICsyOTIsMjkgQEAgV0kuTG9jYWxSZXNvdXJjZU92
ZXJyaWRlUG9wb3ZlciA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVBvcG92ZXIgZXh0ZW5k
cyBXSS4KICAgICAgICAgICAgIHRoaXMuX2hlYWRlcnNEYXRhR3JpZC5zdGFydEVkaXRpbmdOb2Rl
KG5ld05vZGUpOwogICAgICAgICB9KTsKIAotICAgICAgICBoZWFkZXJzRGF0YS5hcHBlbmRDaGls
ZChXSS5jcmVhdGVSZWZlcmVuY2VQYWdlTGluaygibG9jYWwtb3ZlcnJpZGVzIiwgImNvbmZpZ3Vy
aW5nLWxvY2FsLW92ZXJyaWRlcyIpKTsKKyAgICAgICAgaWYgKFdJLk5ldHdvcmtNYW5hZ2VyLnN1
cHBvcnRzT3ZlcnJpZGluZ1JlcXVlc3RzV2l0aFJlc3BvbnNlcygpKSB7CisgICAgICAgICAgICBs
ZXQgb3B0aW9uc1JvdyA9IHRhYmxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InRyIikpOworICAgICAgICAgICAgb3B0aW9uc1Jvdy5jbGFzc05hbWUgPSAib3B0aW9ucyI7CisK
KyAgICAgICAgICAgIGxldCBvcHRpb25zSGVhZGVyID0gb3B0aW9uc1Jvdy5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpKTsKKworICAgICAgICAgICAgbGV0IG9wdGlvbnNM
YWJlbCA9IG9wdGlvbnNIZWFkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
bGFiZWwiKSk7CisgICAgICAgICAgICBvcHRpb25zTGFiZWwudGV4dENvbnRlbnQgPSBXSS5VSVN0
cmluZygiT3B0aW9ucyIpOworCisgICAgICAgICAgICBsZXQgb3B0aW9uc0RhdGEgPSBvcHRpb25z
Um93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIikpOworCisgICAgICAg
ICAgICBsZXQgc2tpcE5ldHdvcmtMYWJlbCA9IG9wdGlvbnNEYXRhLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIikpOworICAgICAgICAgICAgc2tpcE5ldHdvcmtMYWJl
bC5jbGFzc05hbWUgPSAic2tpcC1uZXR3b3JrIjsKKworICAgICAgICAgICAgdGhpcy5fc2tpcE5l
dHdvcmtDaGVja2JveCA9IHNraXBOZXR3b3JrTGFiZWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaW5wdXQiKSk7CisgICAgICAgICAgICB0aGlzLl9za2lwTmV0d29ya0NoZWNr
Ym94LnR5cGUgPSAiY2hlY2tib3giOworICAgICAgICAgICAgdGhpcy5fc2tpcE5ldHdvcmtDaGVj
a2JveC5jaGVja2VkID0gbG9jYWxSZXNvdXJjZU92ZXJyaWRlPy50eXBlID09PSBXSS5Mb2NhbFJl
c291cmNlT3ZlcnJpZGUuSW50ZXJjZXB0VHlwZS5SZXNwb25zZVNraXBwaW5nTmV0d29yazsKKwor
ICAgICAgICAgICAgc2tpcE5ldHdvcmtMYWJlbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShXSS5VSVN0cmluZygiU2tpcCBOZXR3b3JrIiwgIlNraXAgTmV0d29yayBAIExvY2Fs
IE92ZXJyaWRlIFBvcG92ZXIgT3B0aW9ucyIsICJMYWJlbCBmb3IgY2hlY2tib3ggdGhhdCBjb250
cm9scyB3aGV0aGVyIHRoZSBsb2NhbCBvdmVycmlkZSB3aWxsIGFjdHVhbGx5IHBlcmZvcm0gYSBu
ZXR3b3JrIHJlcXVlc3Qgb3Igc2tpcCBpdCB0byBpbW1lZGlhdGVseSBzZXJ2ZSB0aGUgcmVzcG9u
c2UuIikpKTsKKworICAgICAgICAgICAgb3B0aW9uc0RhdGEuYXBwZW5kQ2hpbGQoV0kuY3JlYXRl
UmVmZXJlbmNlUGFnZUxpbmsoImxvY2FsLW92ZXJyaWRlcyIsICJjb25maWd1cmluZy1sb2NhbC1v
dmVycmlkZXMiKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgaGVhZGVyc0RhdGEuYXBw
ZW5kQ2hpbGQoV0kuY3JlYXRlUmVmZXJlbmNlUGFnZUxpbmsoImxvY2FsLW92ZXJyaWRlcyIsICJj
b25maWd1cmluZy1sb2NhbC1vdmVycmlkZXMiKSk7CiAKICAgICAgICAgbGV0IGluY3JlbWVudFN0
YXR1c0NvZGUgPSAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgeCA9IHBhcnNlSW50KHRoaXMuX3N0
YXR1c0NvZGVDb2RlTWlycm9yLmdldFZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVs
ZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Mb2Nh
bFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudC5qcwppbmRleCA1NzAwOWJlNmIwZWQuLjU0NDRj
YWZiYWExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJl
ZUVsZW1lbnQuanMKQEAgLTEzMSw3ICsxMzEsNyBAQCBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGVU
cmVlRWxlbWVudCA9IGNsYXNzIExvY2FsUmVzb3VyY2VPdmVycmlkZVRyZWVFbGVtZW50IGV4dAog
ICAgICAgICBpZiAoIXNlcmlhbGl6ZWREYXRhKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIGxldCB7dXJsLCBpc0Nhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIG1pbWVUeXBlLCBzdGF0dXND
b2RlLCBzdGF0dXNUZXh0LCBoZWFkZXJzfSA9IHNlcmlhbGl6ZWREYXRhOworICAgICAgICBsZXQg
e3R5cGUsIHVybCwgaXNDYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBtaW1lVHlwZSwgc3RhdHVzQ29k
ZSwgc3RhdHVzVGV4dCwgaGVhZGVyc30gPSBzZXJpYWxpemVkRGF0YTsKIAogICAgICAgICAvLyBE
byBub3QgY29uZmxpY3Qgd2l0aCBhbiBleGlzdGluZyBvdmVycmlkZSB1bmxlc3Mgd2UgYXJlIG1v
ZGlmeWluZyBvdXJzZWx2ZXMuCiAgICAgICAgIGxldCBleGlzdGluZ092ZXJyaWRlID0gV0kubmV0
d29ya01hbmFnZXIubG9jYWxSZXNvdXJjZU92ZXJyaWRlRm9yVVJMKHVybCk7CkBAIC0xNDMsNyAr
MTQzLDcgQEAgV0kuTG9jYWxSZXNvdXJjZU92ZXJyaWRlVHJlZUVsZW1lbnQgPSBjbGFzcyBMb2Nh
bFJlc291cmNlT3ZlcnJpZGVUcmVlRWxlbWVudCBleHQKICAgICAgICAgbGV0IHdhc1NlbGVjdGVk
ID0gdGhpcy5zZWxlY3RlZDsKIAogICAgICAgICBsZXQgcmV2aXNpb24gPSB0aGlzLl9sb2NhbFJl
c291cmNlT3ZlcnJpZGUubG9jYWxSZXNvdXJjZS5jdXJyZW50UmV2aXNpb247Ci0gICAgICAgIGxl
dCBuZXdMb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBXSS5Mb2NhbFJlc291cmNlT3ZlcnJpZGUuY3Jl
YXRlKHsKKyAgICAgICAgbGV0IG5ld0xvY2FsUmVzb3VyY2VPdmVycmlkZSA9IFdJLkxvY2FsUmVz
b3VyY2VPdmVycmlkZS5jcmVhdGUodHlwZSwgewogICAgICAgICAgICAgdXJsLAogICAgICAgICAg
ICAgaXNDYXNlU2Vuc2l0aXZlLAogICAgICAgICAgICAgaXNSZWdleCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL09wZW5SZXNvdXJjZURpYWxv
Zy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL09wZW5SZXNv
dXJjZURpYWxvZy5qcwppbmRleCAwNjU0NTJjNmM4YWQuLjU4N2EyMDlmMGM1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT3BlblJlc291cmNl
RGlhbG9nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L09wZW5SZXNvdXJjZURpYWxvZy5qcwpAQCAtMzkwLDcgKzM5MCw3IEBAIFdJLk9wZW5SZXNvdXJj
ZURpYWxvZyA9IGNsYXNzIE9wZW5SZXNvdXJjZURpYWxvZyBleHRlbmRzIFdJLkRpYWxvZwogCiAg
ICAgX2FkZExvY2FsUmVzb3VyY2VPdmVycmlkZXMoKQogICAgIHsKLSAgICAgICAgaWYgKCFXSS5O
ZXR3b3JrTWFuYWdlci5zdXBwb3J0c0xvY2FsUmVzb3VyY2VPdmVycmlkZXMoKSkKKyAgICAgICAg
aWYgKCFXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRpbmdSZXNwb25zZXMoKSkKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBjb25zdCBzdXBwcmVzc0ZpbHRlclVwZGF0ZSA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9SZXNvdXJjZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUmVzb3VyY2VDb250ZW50Vmlldy5qcwppbmRleCA5ODk3ZWY0MWQzZTQu
LjQ1NjU0OWE2YTJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvUmVzb3VyY2VDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZUNvbnRlbnRWaWV3LmpzCkBAIC02MCw3
ICs2MCw3IEBAIFdJLlJlc291cmNlQ29udGVudFZpZXcgPSBjbGFzcyBSZXNvdXJjZUNvbnRlbnRW
aWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKIAogICAgICAgICB0aGlzLl9zaG93aW5nTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlID0gZmFsc2U7CiAKLSAgICAgICAgaWYgKFdJLk5ldHdvcmtNYW5hZ2Vy
LnN1cHBvcnRzTG9jYWxSZXNvdXJjZU92ZXJyaWRlcygpKSB7CisgICAgICAgIGlmIChXSS5OZXR3
b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRpbmdSZXNwb25zZXMoKSkgewogICAgICAgICAgICAg
aWYgKHJlc291cmNlLmlzTG9jYWxSZXNvdXJjZU92ZXJyaWRlKSB7CiAgICAgICAgICAgICAgICAg
dGhpcy5fc2hvd2luZ0xvY2FsUmVzb3VyY2VPdmVycmlkZSA9IHRydWU7CiAKQEAgLTE5MSw3ICsx
OTEsNyBAQCBXSS5SZXNvdXJjZUNvbnRlbnRWaWV3ID0gY2xhc3MgUmVzb3VyY2VDb250ZW50Vmll
dyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgewogICAgICAgICBzdXBlci5jbG9zZWQoKTsK
IAotICAgICAgICBpZiAoV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNMb2NhbFJlc291cmNlT3Zl
cnJpZGVzKCkpCisgICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092ZXJyaWRp
bmdSZXNwb25zZXMoKSkKICAgICAgICAgICAgIFdJLm5ldHdvcmtNYW5hZ2VyLnJlbW92ZUV2ZW50
TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAKICAgICAgICAgaWYgKCF0aGlzLm1hbmFnZXNP
d25Jc3N1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVs
LmpzCmluZGV4IGYzYmQ0NGJmN2FmYi4uN2NkY2Q0OGRmZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGVi
YXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpAQCAtMjYwLDcgKzI2MCw3IEBAIFdJ
LlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25T
aWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAgICAgICAgIHRoaXMuX3Jlc291cmNlc1RyZWVPdXRsaW5l
LmluY2x1ZGVTb3VyY2VNYXBSZXNvdXJjZUNoaWxkcmVuID0gdHJ1ZTsKICAgICAgICAgcmVzb3Vy
Y2VzQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX3Jlc291cmNlc1RyZWVPdXRsaW5lLmVsZW1l
bnQpOwogCi0gICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0xvY2FsUmVzb3Vy
Y2VPdmVycmlkZXMoKSB8fCBXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0Jvb3RzdHJhcFNjcmlw
dCgpIHx8IFdJLkNTU01hbmFnZXIuc3VwcG9ydHNJbnNwZWN0b3JTdHlsZVNoZWV0KCkpIHsKKyAg
ICAgICAgaWYgKFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzT3ZlcnJpZGluZ1Jlc3BvbnNlcygp
IHx8IFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzQm9vdHN0cmFwU2NyaXB0KCkgfHwgV0kuQ1NT
TWFuYWdlci5zdXBwb3J0c0luc3BlY3RvclN0eWxlU2hlZXQoKSkgewogICAgICAgICAgICAgbGV0
IGNyZWF0ZVJlc291cmNlTmF2aWdhdGlvbkJhciA9IG5ldyBXSS5OYXZpZ2F0aW9uQmFyOwogCiAg
ICAgICAgICAgICBsZXQgY3JlYXRlUmVzb3VyY2VCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IG5ldyBX
SS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiY3JlYXRlLXJlc291cmNlIiwgV0kuVUlTdHJpbmcoIkNy
ZWF0ZSBSZXNvdXJjZSIpLCAiSW1hZ2VzL1BsdXMxNS5zdmciLCAxNSwgMTUpOwpAQCAtMzAwLDcg
KzMwMCw3IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgU291cmNl
c05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAgICAgICAgICAgICBXSS5uZXR3b3Jr
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLk5ldHdvcmtNYW5hZ2VyLkV2ZW50LkJvb3RzdHJh
cFNjcmlwdERlc3Ryb3llZCwgdGhpcy5faGFuZGxlQm9vdHN0cmFwU2NyaXB0RGVzdHJveWVkLCB0
aGlzKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0
c0xvY2FsUmVzb3VyY2VPdmVycmlkZXMoKSkgeworICAgICAgICBpZiAoV0kuTmV0d29ya01hbmFn
ZXIuc3VwcG9ydHNPdmVycmlkaW5nUmVzcG9uc2VzKCkpIHsKICAgICAgICAgICAgIFdJLm5ldHdv
cmtNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuTmV0d29ya01hbmFnZXIuRXZlbnQuTG9jYWxS
ZXNvdXJjZU92ZXJyaWRlQWRkZWQsIHRoaXMuX2hhbmRsZUxvY2FsUmVzb3VyY2VPdmVycmlkZUFk
ZGVkLCB0aGlzKTsKICAgICAgICAgICAgIFdJLm5ldHdvcmtNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuTmV0d29ya01hbmFnZXIuRXZlbnQuTG9jYWxSZXNvdXJjZU92ZXJyaWRlUmVtb3ZlZCwg
dGhpcy5faGFuZGxlTG9jYWxSZXNvdXJjZU92ZXJyaWRlUmVtb3ZlZCwgdGhpcyk7CiAgICAgICAg
IH0KQEAgLTM4Myw3ICszODMsNyBAQCBXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCA9
IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgVwogICAgICAgICAg
ICAgICAgIHRoaXMuX2FkZExvY2FsT3ZlcnJpZGUoYm9vdHN0cmFwU2NyaXB0KTsKICAgICAgICAg
fQogCi0gICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0xvY2FsUmVzb3VyY2VP
dmVycmlkZXMoKSkgeworICAgICAgICBpZiAoV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNPdmVy
cmlkaW5nUmVzcG9uc2VzKCkpIHsKICAgICAgICAgICAgIGZvciAobGV0IGxvY2FsUmVzb3VyY2VP
dmVycmlkZSBvZiBXSS5uZXR3b3JrTWFuYWdlci5sb2NhbFJlc291cmNlT3ZlcnJpZGVzKQogICAg
ICAgICAgICAgICAgIHRoaXMuX2FkZExvY2FsT3ZlcnJpZGUobG9jYWxSZXNvdXJjZU92ZXJyaWRl
KTsKICAgICAgICAgfQpAQCAtNzk4LDcgKzc5OCw3IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBX
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBsZXQge3VybCwgaXND
YXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBtaW1lVHlwZSwgc3RhdHVzQ29kZSwgc3RhdHVzVGV4dCwg
aGVhZGVyc30gPSBzZXJpYWxpemVkRGF0YTsKKyAgICAgICAgbGV0IHt0eXBlLCB1cmwsIGlzQ2Fz
ZVNlbnNpdGl2ZSwgaXNSZWdleCwgbWltZVR5cGUsIHN0YXR1c0NvZGUsIHN0YXR1c1RleHQsIGhl
YWRlcnN9ID0gc2VyaWFsaXplZERhdGE7CiAKICAgICAgICAgLy8gRG8gbm90IGNvbmZsaWN0IHdp
dGggYW4gZXhpc3Rpbmcgb3ZlcnJpZGUuCiAgICAgICAgIGxldCBleGlzdGluZ092ZXJyaWRlID0g
V0kubmV0d29ya01hbmFnZXIubG9jYWxSZXNvdXJjZU92ZXJyaWRlRm9yVVJMKHVybCk7CkBAIC04
MDcsNyArODA3LDcgQEAgV0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFzcyBT
b3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCBleHRlbmRzIFcKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCi0gICAgICAgIGxldCBsb2NhbFJlc291cmNlT3ZlcnJpZGUgPSBXSS5M
b2NhbFJlc291cmNlT3ZlcnJpZGUuY3JlYXRlKHsKKyAgICAgICAgbGV0IGxvY2FsUmVzb3VyY2VP
dmVycmlkZSA9IFdJLkxvY2FsUmVzb3VyY2VPdmVycmlkZS5jcmVhdGUodHlwZSwgewogICAgICAg
ICAgICAgdXJsLAogICAgICAgICAgICAgaXNDYXNlU2Vuc2l0aXZlLAogICAgICAgICAgICAgaXNS
ZWdleCwKQEAgLTE0MjIsNyArMTQyMiw3IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBh
bmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAKICAg
ICBfYWRkTG9jYWxPdmVycmlkZShsb2NhbE92ZXJyaWRlKQogICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNCb290c3RyYXBTY3JpcHQoKSB8fCBX
SS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c0xvY2FsUmVzb3VyY2VPdmVycmlkZXMoKSk7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzQm9vdHN0cmFwU2Ny
aXB0KCkgfHwgV0kuTmV0d29ya01hbmFnZXIuc3VwcG9ydHNPdmVycmlkaW5nUmVzcG9uc2VzKCkp
OwogCiAgICAgICAgIGlmICh0aGlzLl9sb2NhbE92ZXJyaWRlc1RyZWVPdXRsaW5lLmZpbmRUcmVl
RWxlbWVudChsb2NhbE92ZXJyaWRlKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE0NDYsNyAr
MTQ0Niw3IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgU291cmNl
c05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAKICAgICBfcmVtb3ZlUmVzb3VyY2VP
dmVycmlkZShsb2NhbE92ZXJyaWRlKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoV0ku
TmV0d29ya01hbmFnZXIuc3VwcG9ydHNCb290c3RyYXBTY3JpcHQoKSB8fCBXSS5OZXR3b3JrTWFu
YWdlci5zdXBwb3J0c0xvY2FsUmVzb3VyY2VPdmVycmlkZXMoKSk7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzQm9vdHN0cmFwU2NyaXB0KCkgfHwgV0ku
TmV0d29ya01hbmFnZXIuc3VwcG9ydHNPdmVycmlkaW5nUmVzcG9uc2VzKCkpOwogCiAgICAgICAg
IGxldCByZXNvdXJjZVRyZWVFbGVtZW50ID0gdGhpcy5fbG9jYWxPdmVycmlkZXNUcmVlT3V0bGlu
ZS5maW5kVHJlZUVsZW1lbnQobG9jYWxPdmVycmlkZSk7CiAgICAgICAgIGlmICghcmVzb3VyY2VU
cmVlRWxlbWVudCkKQEAgLTIwMzMsNyArMjAzMyw3IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBX
CiAKICAgICBfcG9wdWxhdGVDcmVhdGVSZXNvdXJjZUNvbnRleHRNZW51KGNvbnRleHRNZW51KQog
ICAgIHsKLSAgICAgICAgaWYgKFdJLk5ldHdvcmtNYW5hZ2VyLnN1cHBvcnRzTG9jYWxSZXNvdXJj
ZU92ZXJyaWRlcygpKSB7CisgICAgICAgIGlmIChXSS5OZXR3b3JrTWFuYWdlci5zdXBwb3J0c092
ZXJyaWRpbmdSZXNwb25zZXMoKSkgewogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRl
bShXSS5VSVN0cmluZygiTG9jYWwgT3ZlcnJpZGVcdTIwMjYiKSwgKCkgPT4gewogICAgICAgICAg
ICAgICAgIGlmICghdGhpcy5fbG9jYWxPdmVycmlkZXNUcmVlT3V0bGluZS5jaGlsZHJlbi5sZW5n
dGgpCiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvY2FsT3ZlcnJpZGVzUm93LnNob3dFbXB0
eU1lc3NhZ2UoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>