<?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>144110</bug_id>
          
          <creation_ts>2015-04-23 12:04:54 -0700</creation_ts>
          <short_desc>Web Inspector: Make showing a content view work in the tab world</short_desc>
          <delta_ts>2015-04-25 18:36:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1087914</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-23 12:04:54 -0700</bug_when>
    <thetext>Move content view showing out of ResourceSidebarPanel and make it global and know how to show tabs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087918</commentid>
    <comment_count>1</comment_count>
      <attachid>251464</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-23 12:10:06 -0700</bug_when>
    <thetext>Created attachment 251464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087985</commentid>
    <comment_count>2</comment_count>
      <attachid>251464</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-23 13:58:31 -0700</bug_when>
    <thetext>Comment on attachment 251464
Patch

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

r=me! Nice

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:28
&gt; -    constructor()
&gt; +    constructor(contentBrowser)

The call to &quot;new WebInspector.DebuggerSidebarPanel&quot; should pass the contentBrowser. I assume that should be in Main.js and was just missed in this patch.

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:193
&gt;      showDefaultContentView()
&gt;      {
&gt; -        WebInspector.resourceSidebarPanel.showDefaultContentView();
&gt; +        var currentTreeElement = this._contentTreeOutline.children[0];
&gt; +        while (currentTreeElement &amp;&amp; !currentTreeElement.root) {
&gt; +            if (currentTreeElement instanceof WebInspector.ResourceTreeElement || currentTreeElement instanceof WebInspector.ScriptTreeElement) {
&gt; +                currentTreeElement.revealAndSelect();
&gt; +                return;
&gt; +            }
&gt; +
&gt; +            currentTreeElement = currentTreeElement.traverseNextTreeElement(false, null, true);
&gt; +        }
&gt;      }

What should this show in the case that there is no tree element? Maybe then blank is fine, but perhaps it would be nice to have something.

E.g. a JSContext inspector with no scripts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088080</commentid>
    <comment_count>3</comment_count>
      <attachid>251464</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-23 16:07:39 -0700</bug_when>
    <thetext>Comment on attachment 251464
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:28
&gt;&gt; +    constructor(contentBrowser)
&gt; 
&gt; The call to &quot;new WebInspector.DebuggerSidebarPanel&quot; should pass the contentBrowser. I assume that should be in Main.js and was just missed in this patch.

It is in DebuggerTabContentView. I added it locally but it wasn&apos;t in this patch. My patch sets are bleeding together in spots like this.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:193
&gt;&gt;      }
&gt; 
&gt; What should this show in the case that there is no tree element? Maybe then blank is fine, but perhaps it would be nice to have something.
&gt; 
&gt; E.g. a JSContext inspector with no scripts.

I think blank is fine for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088650</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-25 18:36:19 -0700</bug_when>
    <thetext>r183322 – r183342

http://trac.webkit.org/log/?revs=183322-183342</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251464</attachid>
            <date>2015-04-23 12:10:06 -0700</date>
            <delta_ts>2015-04-23 13:58:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144110-20150423120902.patch</filename>
            <type>text/plain</type>
            <size>59438</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAx
Y2I3OWMyYmJlZDAyMWM5MTE0NTBlOTYwZmFmNjUyMmQzZWMzNzU5Li5iMjFhY2E5MzUwZDhjMWEx
OWUyYWRhNmY2Nzc1MmNkOTk4MTU2MmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAxNS0wNC0yMyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTWFrZSBzaG93aW5nIGEgY29udGVudCB2aWV3
IHdvcmsgaW4gdGhlIHRhYiB3b3JsZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ0MTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5sb2FkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmhpZGVTcGxpdENvbnNv
bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnNob3dTb3VyY2VDb2RlTG9jYXRpb24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLnNob3dPcmlnaW5hbFVuZm9ybWF0dGVkU291cmNlQ29kZUxvY2F0
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zaG93T3JpZ2luYWxPckZvcm1hdHRlZFNvdXJj
ZUNvZGVMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iuc2hvd09yaWdpbmFsT3JGb3Jt
YXR0ZWRTb3VyY2VDb2RlVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zaG93UmVz
b3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kZWJ1Z2dlclRvZ2dsZUJyZWFr
cG9pbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kZWJ1Z2dlclBhdXNlUmVzdW1lVG9nZ2xl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kZWJ1Z2dlclN0ZXBPdmVyKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlclN0ZXBJbnRvKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kZWJ1
Z2dlclN0ZXBPdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9mb2N1c0NoYW5nZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLl9tb3VzZVdhc0NsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLl9kcmFnT3Zlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX2NhcHR1cmVEaWRTdGFydCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuX2RlYnVnZ2VyRGlkUGF1c2UpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLl9kZWJ1Z2dlckRpZFJlc3VtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX2Zy
YW1lV2FzQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl91bmRvY2spOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLl91cGRhdGVEb2NrTmF2aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL01vZGVscy9CcmVha3BvaW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnQucHJvdG90eXBlLmFwcGVuZENvbnRleHRNZW51SXRlbXMucmV2ZWFsT3JpZ2luYWxT
b3VyY2VDb2RlTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQucHJv
dG90eXBlLmFwcGVuZENvbnRleHRNZW51SXRlbXMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanM6CisgICAgICAgIChJbnNwZWN0b3JGcm9u
dGVuZEFQSS5zaG93TWFpblJlc291cmNlRm9yRnJhbWUpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLnRva2VuVHJh
Y2tpbmdDb250cm9sbGVySGlnaGxpZ2h0ZWRSYW5nZVdhc0NsaWNrZWQpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5fZ29Ub1Jl
Z2lvbkZsb3dBcnJvd1dhc0NsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXB1dGVk
U3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9nb1RvQ29udGVudEZsb3dBcnJvd1dhc0NsaWNr
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29udGVudEJyb3dzZXIucHJvdG90eXBlLnVwZGF0ZUhpZXJhcmNoaWNh
bFBhdGhGb3JDdXJyZW50Q29udGVudFZpZXcpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVDb250ZW50Vmlldy5wcm90b3R5cGUucmVzdG9yZUZy
b21Db29raWUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZURhdGFHcmlk
Tm9kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRGF0YUdyaWROb2RlLnByb3Rv
dHlwZS5fZ29Ub0Fycm93V2FzQ2xpY2tlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clNpZGViYXJQYW5lbC5wcm90b3R5cGUuc2hvd0RlZmF1bHRDb250ZW50Vmlldyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9hZGRUcmVlRWxl
bWVudEZvclNvdXJjZUNvZGVUb0NvbnRlbnRUcmVlT3V0bGluZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl90cmVlRWxlbWVudFNlbGVjdGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUu
X2FkZElzc3VlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5w
cm90b3R5cGUuX2hhbmRsZUlzc3VlQWRkZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvTGF5ZXJUcmVlRGF0YUdyaWROb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxheWVy
VHJlZURhdGFHcmlkTm9kZS5wcm90b3R5cGUuX2dvVG9BcnJvd1dhc0NsaWNrZWQpOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3RyZWVFbGVtZW50U2Vs
ZWN0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTmF2aWdhdGlvblNpZGViYXJQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnBy
b3RvdHlwZS5nZXQgY29udGVudEJyb3dzZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmln
YXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLnNldCBjb250ZW50QnJvd3Nlcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3VwZGF0ZUZp
bHRlcik6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtUaW1lbGluZVZpZXcucHJvdG90eXBl
Ll90cmVlRWxlbWVudFNlbGVjdGVkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL09i
amVjdFRyZWVCYXNlVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0
VHJlZUJhc2VUcmVlRWxlbWVudC5wcm90b3R5cGUuX2FwcGVuZE1lbnVzSXRlbXNGb3JPYmplY3Qp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFRyZWVCYXNlVHJlZUVsZW1lbnQpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuT3ZlcnZpZXdUaW1lbGluZVZpZXcucHJvdG90eXBlLl90cmVlRWxl
bWVudFNlbGVjdGVkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlRGV0
YWlsc1NpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZURldGFp
bHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9nb1RvUmVxdWVzdERhdGFDbGlja2VkKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUuc2hvd0RlZmF1bHRDb250ZW50Vmll
dyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwucHJvdG90eXBl
Ll9tYWluRnJhbWVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5fbWFpbkZyYW1lTWFpblJlc291cmNlRGlkQ2hhbmdlLmRlbGF5
ZWRXb3JrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90
b3R5cGUuX21haW5GcmFtZU1haW5SZXNvdXJjZURpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwucHJvdG90eXBlLl90cmVlRWxlbWVudFNlbGVjdGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUu
X3N0b3JhZ2VDbGVhcmVkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNl
VGltZWxpbmVEYXRhR3JpZE5vZGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VU
aW1lbGluZURhdGFHcmlkTm9kZS5wcm90b3R5cGUuX2dvVG9SZXNvdXJjZSk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0VGltZWxpbmVWaWV3LnByb3RvdHlwZS5fdHJlZUVsZW1lbnRTZWxlY3Rl
ZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUu
dG9rZW5UcmFja2luZ0NvbnRyb2xsZXJIaWdobGlnaHRlZFJhbmdlV2FzQ2xpY2tlZCk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZURhdGFHcmlkLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lRGF0YUdyaWQucHJvdG90eXBlLl9wb3BvdmVyQ2FsbFN0YWNr
VHJlZUVsZW1lbnRTZWxlY3RlZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UaW1l
bGluZVNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVNpZGVi
YXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVTaWRlYmFyUGFuZWwucHJv
dG90eXBlLnNob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5l
bC5zaG93VGltZWxpbmVWaWV3Rm9yVGltZWxpbmUpOgorCiAyMDE1LTA0LTIyICBUaW1vdGh5IEhh
dGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBNYWtl
IGRlYnVnZ2VyIGtleWJvYXJkIHNob3J0Y3V0cyBnbG9iYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCBlMDI1Yjk3NzM3YzU2OTRi
Y2QyOGI2YTAxMmUwN2EwYmZlZDA3NjIxLi45ZmFkMjdiMDY4NDQ4ODM3NDk3NWZiZGZkMzIxNTUz
N2VmYWE1YjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QmFzZS9NYWluLmpzCkBAIC0xMjgsNiArMTI4LDcgQEAgV2ViSW5zcGVjdG9yLmxvYWRlZCA9IGZ1
bmN0aW9uKCkKICAgICB0aGlzLmRvbVRyZWVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lkluc3BlY3RNb2RlU3RhdGVDaGFuZ2VkLCB0aGlz
Ll9pbnNwZWN0TW9kZVN0YXRlQ2hhbmdlZCwgdGhpcyk7CiAgICAgdGhpcy5kb21UcmVlTWFuYWdl
ci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5FdmVudC5ET01O
b2RlV2FzSW5zcGVjdGVkLCB0aGlzLl9kb21Ob2RlV2FzSW5zcGVjdGVkLCB0aGlzKTsKICAgICB0
aGlzLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZy
YW1lUmVzb3VyY2VNYW5hZ2VyLkV2ZW50Lk1haW5GcmFtZURpZENoYW5nZSwgdGhpcy5fbWFpbkZy
YW1lRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICB0aGlzLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyLkV2ZW50LkZyYW1l
V2FzQWRkZWQsIHRoaXMuX2ZyYW1lV2FzQWRkZWQsIHRoaXMpOwogCiAgICAgV2ViSW5zcGVjdG9y
LkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZyYW1lLkV2ZW50Lk1haW5SZXNv
dXJjZURpZENoYW5nZSwgdGhpcy5fbWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzKTsKIApAQCAt
NTQ3LDcgKzU0OCw3IEBAIFdlYkluc3BlY3Rvci5vcGVuVVJMID0gZnVuY3Rpb24odXJsLCBmcmFt
ZSwgYWx3YXlzT3BlbkV4dGVybmFsbHksIGxpbmVOdW1iZXIpCiAgICAgdmFyIHJlc291cmNlID0g
ZnJhbWUudXJsID09PSB1cmwgPyBmcmFtZS5tYWluUmVzb3VyY2UgOiBmcmFtZS5yZXNvdXJjZUZv
clVSTCh1cmwsIHNlYXJjaENoaWxkRnJhbWVzKTsKICAgICBpZiAocmVzb3VyY2UpIHsKICAgICAg
ICAgdmFyIHBvc2l0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlUG9zaXRpb24obGlu
ZU51bWJlciwgMCk7Ci0gICAgICAgIHRoaXMucmVzb3VyY2VTaWRlYmFyUGFuZWwuc2hvd1NvdXJj
ZUNvZGUocmVzb3VyY2UsIHBvc2l0aW9uKTsKKyAgICAgICAgdGhpcy5zaG93U291cmNlQ29kZShy
ZXNvdXJjZSwgcG9zaXRpb24pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03MzIsNiAr
NzMzLDEzNyBAQCBXZWJJbnNwZWN0b3IudG9nZ2xlRGV0YWlsc1NpZGViYXIgPSBmdW5jdGlvbihl
dmVudCkKICAgICB0aGlzLmRldGFpbHNTaWRlYmFyLmNvbGxhcHNlZCA9IGZhbHNlOwogfTsKIAor
V2ViSW5zcGVjdG9yLnRhYkNvbnRlbnRWaWV3Q2xhc3NGb3JSZXByZXNlbnRlZE9iamVjdCA9IGZ1
bmN0aW9uKHJlcHJlc2VudGVkT2JqZWN0KQoreworICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBp
bnN0YW5jZW9mIFdlYkluc3BlY3Rvci5ET01Ob2RlKQorICAgICAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVGFiQ29udGVudFZpZXc7CisKKyAgICBpZiAocmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmcpCisgICAgICAgIHJldHVy
biBXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50VmlldzsKKworICAgIC8vIFdlIG9ubHkg
c3VwcG9ydCBvbmUgY29uc29sZSB0YWIgcmlnaHQgbm93LiBTbyB0aGlzIGlzbid0IGFuIGluc3Rh
bmNlb2YgY2hlY2suCisgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0ID09PSB0aGlzLl9jb25zb2xl
UmVwcmVzZW50ZWRPYmplY3QpCisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ29uc29sZVRh
YkNvbnRlbnRWaWV3OworCisgICAgaWYgKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1
c2VkKSB7CisgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5TY3JpcHQpCisgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkRlYnVnZ2VyVGFi
Q29udGVudFZpZXc7CisKKyAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2Yg
V2ViSW5zcGVjdG9yLlJlc291cmNlICYmIChyZXByZXNlbnRlZE9iamVjdC50eXBlID09PSBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5Eb2N1bWVudCB8fCByZXByZXNlbnRlZE9iamVjdC50eXBl
ID09PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5TY3JpcHQpKQorICAgICAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclRhYkNvbnRlbnRWaWV3OworICAgIH0KKworICAgIGlm
IChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5GcmFtZSB8fCByZXBy
ZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZSB8fCByZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHQpCisgICAgICAgIHJldHVy
biBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzVGFiQ29udGVudFZpZXc7CisKKyAgICAvLyBGSVhNRTog
TW92ZSBDb250ZW50IEZsb3dzIHRvIHRoZSBFbGVtZW50cyB0YWI/CisgICAgaWYgKHJlcHJlc2Vu
dGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkNvbnRlbnRGbG93KQorICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLlJlc291cmNlc1RhYkNvbnRlbnRWaWV3OworCisgICAgLy8gRklY
TUU6IE1vdmUgdGhlc2UgdG8gYSBTdG9yYWdlIHRhYi4KKyAgICBpZiAocmVwcmVzZW50ZWRPYmpl
Y3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU9iamVjdCB8fCByZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Db29raWVTdG9yYWdlT2JqZWN0IHx8Cisg
ICAgICAgIHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRhdGFiYXNl
VGFibGVPYmplY3QgfHwgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
RGF0YWJhc2VPYmplY3QgfHwKKyAgICAgICAgcmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lIHx8IHJlcHJlc2VudGVkT2JqZWN0IGlu
c3RhbmNlb2YgV2ViSW5zcGVjdG9yLkluZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlIHx8CisgICAg
ICAgIHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkluZGV4ZWREYXRh
YmFzZU9iamVjdFN0b3JlSW5kZXgpCisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VzVGFiQ29udGVudFZpZXc7CisKKyAgICByZXR1cm4gbnVsbDsKK307CisKK1dlYkluc3BlY3Rv
ci50YWJDb250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rpb24ocmVwcmVzZW50
ZWRPYmplY3QpCit7CisgICAgdmFyIHRhYkNvbnRlbnRWaWV3ID0gdGhpcy50YWJCcm93c2VyLmJl
c3RUYWJDb250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0KTsK
KyAgICBpZiAodGFiQ29udGVudFZpZXcpCisgICAgICAgIHJldHVybiB0YWJDb250ZW50VmlldzsK
KworICAgIHZhciB0YWJDb250ZW50Vmlld0NsYXNzID0gdGhpcy50YWJDb250ZW50Vmlld0NsYXNz
Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpOworICAgIGlmICghdGFiQ29u
dGVudFZpZXdDbGFzcykgeworICAgICAgICBjb25zb2xlLmVycm9yKCJVbmtub3duIHJlcHJlc2Vu
dGVkT2JqZWN0LCBjb3VsZG4ndCBjcmVhdGUgVGFiQ29udGVudFZpZXcuIiwgcmVwcmVzZW50ZWRP
YmplY3QpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICB0YWJDb250ZW50Vmll
dyA9IG5ldyB0YWJDb250ZW50Vmlld0NsYXNzOworCisgICAgdGhpcy50YWJCcm93c2VyLnNob3dU
YWJGb3JDb250ZW50Vmlldyh0YWJDb250ZW50Vmlldyk7CisKKyAgICByZXR1cm4gdGFiQ29udGVu
dFZpZXc7Cit9OworCitXZWJJbnNwZWN0b3Iuc2hvd1JlcHJlc2VudGVkT2JqZWN0ID0gZnVuY3Rp
b24ocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tpZSkKK3sKKyAgICB2YXIgdGFiQ29udGVudFZpZXcg
PSB0aGlzLnRhYkNvbnRlbnRWaWV3Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmpl
Y3QpOworICAgIGNvbnNvbGUuYXNzZXJ0KHRhYkNvbnRlbnRWaWV3KTsKKyAgICBpZiAoIXRhYkNv
bnRlbnRWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICB0aGlzLnRhYkJyb3dzZXIuc2hvd1Rh
YkZvckNvbnRlbnRWaWV3KHRhYkNvbnRlbnRWaWV3KTsKKworICAgIHRhYkNvbnRlbnRWaWV3LnNo
b3dSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCwgY29va2llKTsKK307CisKK1dl
Ykluc3BlY3Rvci5zaG93TWFpbkZyYW1lRE9NVHJlZSA9IGZ1bmN0aW9uKG5vZGVUb1NlbGVjdCkK
K3sKKyAgICB0aGlzLnNob3dSZXByZXNlbnRlZE9iamVjdChub2RlVG9TZWxlY3QpOworfTsKKwor
V2ViSW5zcGVjdG9yLnNob3dDb250ZW50Rmxvd0RPTVRyZWUgPSBmdW5jdGlvbihjb250ZW50Rmxv
dywgbm9kZVRvU2VsZWN0KQoreworICAgIHRoaXMuc2hvd1JlcHJlc2VudGVkT2JqZWN0KGNvbnRl
bnRGbG93LCB7bm9kZVRvU2VsZWN0fSk7Cit9OworCitXZWJJbnNwZWN0b3Iuc2hvd1NvdXJjZUNv
ZGVGb3JGcmFtZSA9IGZ1bmN0aW9uKGZyYW1lSWRlbnRpZmllcikKK3sKKyAgICB2YXIgZnJhbWUg
PSBXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIuZnJhbWVGb3JJZGVudGlmaWVyKGZy
YW1lSWRlbnRpZmllcik7CisgICAgaWYgKCFmcmFtZSkgeworICAgICAgICB0aGlzLl9mcmFtZUlk
ZW50aWZpZXJUb1Nob3dTb3VyY2VDb2RlV2hlbkF2YWlsYWJsZSA9IGZyYW1lSWRlbnRpZmllcjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRoaXMuX2ZyYW1lSWRlbnRpZmllclRvU2hv
d1NvdXJjZUNvZGVXaGVuQXZhaWxhYmxlID0gdW5kZWZpbmVkOworCisgICAgdGhpcy5zaG93UmVw
cmVzZW50ZWRPYmplY3QoZnJhbWUpOworfTsKKworV2ViSW5zcGVjdG9yLnNob3dTb3VyY2VDb2Rl
ID0gZnVuY3Rpb24oc291cmNlQ29kZSwgcG9zaXRpb25Ub1JldmVhbCwgdGV4dFJhbmdlVG9TZWxl
Y3QsIGZvcmNlVW5mb3JtYXR0ZWQpCit7CisgICAgY29uc29sZS5hc3NlcnQoIXBvc2l0aW9uVG9S
ZXZlYWwgfHwgcG9zaXRpb25Ub1JldmVhbCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Tb3VyY2VD
b2RlUG9zaXRpb24sIHBvc2l0aW9uVG9SZXZlYWwpOworICAgIHZhciByZXByZXNlbnRlZE9iamVj
dCA9IHNvdXJjZUNvZGU7CisKKyAgICBpZiAocmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuU2NyaXB0KSB7CisgICAgICAgIC8vIEEgc2NyaXB0IHJlcHJlc2VudGVkIGJ5
IGEgcmVzb3VyY2Ugc2hvdWxkIGFsd2F5cyBzaG93IHRoZSByZXNvdXJjZS4KKyAgICAgICAgcmVw
cmVzZW50ZWRPYmplY3QgPSByZXByZXNlbnRlZE9iamVjdC5yZXNvdXJjZSB8fCByZXByZXNlbnRl
ZE9iamVjdDsKKyAgICB9CisKKyAgICB2YXIgY29va2llID0gcG9zaXRpb25Ub1JldmVhbCA/IHts
aW5lTnVtYmVyOiBwb3NpdGlvblRvUmV2ZWFsLmxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogcG9z
aXRpb25Ub1JldmVhbC5jb2x1bW5OdW1iZXJ9IDoge307CisgICAgdGhpcy5zaG93UmVwcmVzZW50
ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QsIGNvb2tpZSk7Cit9OworCitXZWJJbnNwZWN0b3Iu
c2hvd1NvdXJjZUNvZGVMb2NhdGlvbiA9IGZ1bmN0aW9uKHNvdXJjZUNvZGVMb2NhdGlvbikKK3sK
KyAgICB0aGlzLnNob3dTb3VyY2VDb2RlKHNvdXJjZUNvZGVMb2NhdGlvbi5kaXNwbGF5U291cmNl
Q29kZSwgc291cmNlQ29kZUxvY2F0aW9uLmRpc3BsYXlQb3NpdGlvbigpKTsKK307CisKK1dlYklu
c3BlY3Rvci5zaG93T3JpZ2luYWxVbmZvcm1hdHRlZFNvdXJjZUNvZGVMb2NhdGlvbiA9IGZ1bmN0
aW9uKHNvdXJjZUNvZGVMb2NhdGlvbikKK3sKKyAgICB0aGlzLnNob3dTb3VyY2VDb2RlKHNvdXJj
ZUNvZGVMb2NhdGlvbi5zb3VyY2VDb2RlLCBzb3VyY2VDb2RlTG9jYXRpb24ucG9zaXRpb24oKSwg
dW5kZWZpbmVkLCB0cnVlKTsKK307CisKK1dlYkluc3BlY3Rvci5zaG93T3JpZ2luYWxPckZvcm1h
dHRlZFNvdXJjZUNvZGVMb2NhdGlvbiA9IGZ1bmN0aW9uKHNvdXJjZUNvZGVMb2NhdGlvbikKK3sK
KyAgICB0aGlzLnNob3dTb3VyY2VDb2RlKHNvdXJjZUNvZGVMb2NhdGlvbi5zb3VyY2VDb2RlLCBz
b3VyY2VDb2RlTG9jYXRpb24uZm9ybWF0dGVkUG9zaXRpb24oKSk7Cit9OworCitXZWJJbnNwZWN0
b3Iuc2hvd09yaWdpbmFsT3JGb3JtYXR0ZWRTb3VyY2VDb2RlVGV4dFJhbmdlID0gZnVuY3Rpb24o
c291cmNlQ29kZVRleHRSYW5nZSkKK3sKKyAgICB2YXIgdGV4dFJhbmdlVG9TZWxlY3QgPSBzb3Vy
Y2VDb2RlVGV4dFJhbmdlLmZvcm1hdHRlZFRleHRSYW5nZTsKKyAgICB0aGlzLnNob3dTb3VyY2VD
b2RlKHNvdXJjZUNvZGVUZXh0UmFuZ2Uuc291cmNlQ29kZSwgdGV4dFJhbmdlVG9TZWxlY3Quc3Rh
cnRQb3NpdGlvbigpLCB0ZXh0UmFuZ2VUb1NlbGVjdCk7Cit9OworCitXZWJJbnNwZWN0b3Iuc2hv
d1Jlc291cmNlUmVxdWVzdCA9IGZ1bmN0aW9uKHJlc291cmNlKQoreworICAgIHRoaXMuc2hvd1Jl
cHJlc2VudGVkT2JqZWN0KHJlc291cmNlLCB7W1dlYkluc3BlY3Rvci5SZXNvdXJjZUNsdXN0ZXJD
b250ZW50Vmlldy5Db250ZW50Vmlld0lkZW50aWZpZXJDb29raWVLZXldOiBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VDbHVzdGVyQ29udGVudFZpZXcuUmVxdWVzdElkZW50aWZpZXJ9KTsKK307CisKIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlclRvZ2dsZUJyZWFrcG9pbnRzID0gZnVuY3Rpb24oZXZlbnQpCiB7
CiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5icmVha3BvaW50c0VuYWJsZWQgPSAh
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5icmVha3BvaW50c0VuYWJsZWQ7CkBAIC04MzMs
NiArOTY1LDE4IEBAIFdlYkluc3BlY3Rvci5fZGVidWdnZXJEaWRSZXN1bWUgPSBmdW5jdGlvbihl
dmVudCkKICAgICB0aGlzLmRhc2hib2FyZENvbnRhaW5lci5jbG9zZURhc2hib2FyZFZpZXdGb3JS
ZXByZXNlbnRlZE9iamVjdCh0aGlzLmRhc2hib2FyZE1hbmFnZXIuZGFzaGJvYXJkcy5kZWJ1Z2dl
cik7CiB9OwogCitXZWJJbnNwZWN0b3IuX2ZyYW1lV2FzQWRkZWQgPSBmdW5jdGlvbihldmVudCkK
K3sKKyAgICBpZiAoIXRoaXMuX2ZyYW1lSWRlbnRpZmllclRvU2hvd1NvdXJjZUNvZGVXaGVuQXZh
aWxhYmxlKQorICAgICAgICByZXR1cm47CisKKyAgICB2YXIgZnJhbWUgPSBldmVudC5kYXRhLmZy
YW1lOworICAgIGlmIChmcmFtZS5pZCAhPT0gdGhpcy5fZnJhbWVJZGVudGlmaWVyVG9TaG93U291
cmNlQ29kZVdoZW5BdmFpbGFibGUpCisgICAgICAgIHJldHVybjsKKworICAgIHRoaXMuc2hvd1Nv
dXJjZUNvZGVGb3JGcmFtZShmcmFtZS5pZCk7Cit9OworCiBXZWJJbnNwZWN0b3IuX21haW5GcmFt
ZURpZENoYW5nZSA9IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIHRoaXMudXBkYXRlV2luZG93VGl0
bGUoKTsKQEAgLTE2OTYsOSArMTg0MCw5IEBAIFdlYkluc3BlY3Rvci5jcmVhdGVTb3VyY2VDb2Rl
TG9jYXRpb25MaW5rID0gZnVuY3Rpb24oc291cmNlQ29kZUxvY2F0aW9uLCBkb250RmxvCiAgICAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAKICAgICAgICAgaWYgKGV2ZW50Lm1ldGFLZXkp
Ci0gICAgICAgICAgICB0aGlzLnJlc291cmNlU2lkZWJhclBhbmVsLnNob3dPcmlnaW5hbFVuZm9y
bWF0dGVkU291cmNlQ29kZUxvY2F0aW9uKHNvdXJjZUNvZGVMb2NhdGlvbik7CisgICAgICAgICAg
ICB0aGlzLnNob3dPcmlnaW5hbFVuZm9ybWF0dGVkU291cmNlQ29kZUxvY2F0aW9uKHNvdXJjZUNv
ZGVMb2NhdGlvbik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMucmVzb3VyY2VTaWRl
YmFyUGFuZWwuc2hvd1NvdXJjZUNvZGVMb2NhdGlvbihzb3VyY2VDb2RlTG9jYXRpb24pOworICAg
ICAgICAgICAgdGhpcy5zaG93U291cmNlQ29kZUxvY2F0aW9uKHNvdXJjZUNvZGVMb2NhdGlvbik7
CiAgICAgfQogCiAgICAgdmFyIGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
YSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0JyZWFrcG9pbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvQnJlYWtwb2ludC5qcwppbmRleCAyODIxYTcwZjBmYjRjODI1MzAxMTU1MDM3MmQ4OTM1
ZjMwY2YwNDE0Li5jYmUxMmIyM2NkNGY1ZDIwMWIyNmUyOGYzMmFiZDY5MjgzNzdmNTMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQnJlYWtw
b2ludC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
QnJlYWtwb2ludC5qcwpAQCAtMjQxLDcgKzI0MSw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50
ID0gY2xhc3MgQnJlYWtwb2ludCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgICAg
ICBmdW5jdGlvbiByZXZlYWxPcmlnaW5hbFNvdXJjZUNvZGVMb2NhdGlvbigpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVNpZGViYXJQYW5lbC5zaG93T3JpZ2lu
YWxPckZvcm1hdHRlZFNvdXJjZUNvZGVMb2NhdGlvbih0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24p
OworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dPcmlnaW5hbE9yRm9ybWF0dGVkU291cmNl
Q29kZUxvY2F0aW9uKHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbik7CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5pc0JyZWFrcG9pbnRFZGl0YWJs
ZSh0aGlzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKaW5kZXggYzRj
NjY5NjUyZjFkMjBiNDAxYzM5ODIyMDdjYTI4NTJmNTRhMzlhMi4uNTI3Nzc3YWRiZmM5MzQ3MmEy
ZWViYmM2ZjJlN2VlOTE3ZTg1MTM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRl
bmRBUEkuanMKQEAgLTkyLDggKzkyLDcgQEAgSW5zcGVjdG9yRnJvbnRlbmRBUEkgPSB7CiAgICAg
c2hvd01haW5SZXNvdXJjZUZvckZyYW1lOiBmdW5jdGlvbihmcmFtZUlkZW50aWZpZXIpCiAgICAg
ewogICAgICAgICBXZWJJbnNwZWN0b3IuaWdub3JlTGFzdENvbnRlbnRDb29raWUgPSB0cnVlOwot
ICAgICAgICBXZWJJbnNwZWN0b3IubmF2aWdhdGlvblNpZGViYXIuc2VsZWN0ZWRTaWRlYmFyUGFu
ZWwgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VTaWRlYmFyUGFuZWw7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVNpZGViYXJQYW5lbC5zaG93U291cmNlQ29kZUZvckZyYW1lKGZyYW1lSWRl
bnRpZmllciwgdHJ1ZSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5zaG93U291cmNlQ29kZUZvckZy
YW1lKGZyYW1lSWRlbnRpZmllciwgdHJ1ZSk7CiAgICAgfSwKIAogICAgIGNvbnRleHRNZW51SXRl
bVNlbGVjdGVkOiBmdW5jdGlvbihpZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJh
dGlvblRleHRFZGl0b3IuanMKaW5kZXggNzAzYzk1YmMwNTljYzI3MjFhM2I1NWIzMDg0Y2Q4YzRm
YTA2ODI1MS4uZDNlMmI2ZDAwYjA2YjI4YTg2NjU4ZTE2MDFhZDk0NTFkZWQxYjQ3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvblRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKQEAgLTk5Myw3
ICs5OTMsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBj
bGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvcgogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlU2lkZWJhclBhbmVsLnNob3dTb3Vy
Y2VDb2RlTG9jYXRpb24oc291cmNlQ29kZUxvY2F0aW9uKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LnNob3dTb3VyY2VDb2RlTG9jYXRpb24oc291cmNlQ29kZUxvY2F0aW9uKTsKICAgICB9CiAKICAg
ICB0b2tlblRyYWNraW5nQ29udHJvbGxlck5ld0hpZ2hsaWdodENhbmRpZGF0ZSh0b2tlblRyYWNr
aW5nQ29udHJvbGxlciwgY2FuZGlkYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbXB1dGVkU3R5bGVEZXRh
aWxzUGFuZWwuanMKaW5kZXggZTEwNjE4NmQ1YWYzZTMwNDNmNjZhYjdmN2EzNDUyODU4ZmQ4ZmFj
Yi4uMDg1ODVjYzdjZjVmYjZkYmMxOTNjYmFlMDk2MWI2ZDdhOTU2ODk4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29tcHV0ZWRTdHlsZURl
dGFpbHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db21wdXRlZFN0eWxlRGV0YWlsc1BhbmVsLmpzCkBAIC0yMDQsMTIgKzIwNCwxMiBAQCBX
ZWJJbnNwZWN0b3IuQ29tcHV0ZWRTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIENvbXB1dGVkU3R5
bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcwogCiAgICAgX2dvVG9SZWdpb25GbG93QXJyb3dXYXNDbGlj
a2VkKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVNpZGViYXJQYW5lbC5z
aG93Q29udGVudEZsb3dET01UcmVlKHRoaXMuX3JlZ2lvbkZsb3cpOworICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2hvd0NvbnRlbnRGbG93RE9NVHJlZSh0aGlzLl9yZWdpb25GbG93KTsKICAgICB9CiAK
ICAgICBfZ29Ub0NvbnRlbnRGbG93QXJyb3dXYXNDbGlja2VkKCkKICAgICB7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVNpZGViYXJQYW5lbC5zaG93Q29udGVudEZsb3dET01UcmVlKHRo
aXMuX2NvbnRlbnRGbG93LCB0aGlzLm5vZGVTdHlsZXMubm9kZSwgdHJ1ZSk7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5zaG93Q29udGVudEZsb3dET01UcmVlKHRoaXMuX2NvbnRlbnRGbG93LCB0aGlz
Lm5vZGVTdHlsZXMubm9kZSwgdHJ1ZSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5q
cwppbmRleCAxMWI5ZDMzMjg3ZDkzYmQ2YmNkOGZjZGIzYTY3NjBjYjViYjJlMTlhLi43MjEwMTY4
MGQwYTYxMmNmMjM3ZjVkYTA3MTExYmViNGY4OGMyODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5q
cwpAQCAtMTg3LDYgKzE4NywxMiBAQCBXZWJJbnNwZWN0b3IuQ29udGVudEJyb3dzZXIucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudFZpZXdDb250YWluZXIuY29udGVu
dFZpZXdGb3JSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCwgb25seUV4aXN0aW5n
LCBleHRyYUFyZ3VtZW50cyk7CiAgICAgfSwKIAorICAgIHVwZGF0ZUhpZXJhcmNoaWNhbFBhdGhG
b3JDdXJyZW50Q29udGVudFZpZXc6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBjdXJy
ZW50Q29udGVudFZpZXcgPSB0aGlzLmN1cnJlbnRDb250ZW50VmlldzsKKyAgICAgICAgdGhpcy5f
dXBkYXRlSGllcmFyY2hpY2FsUGF0aE5hdmlnYXRpb25JdGVtKGN1cnJlbnRDb250ZW50VmlldyA/
IGN1cnJlbnRDb250ZW50Vmlldy5yZXByZXNlbnRlZE9iamVjdCA6IG51bGwpOworICAgIH0sCisK
ICAgICBjYW5Hb0JhY2s6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBjdXJyZW50Q29u
dGVudFZpZXcgPSB0aGlzLmN1cnJlbnRDb250ZW50VmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3LmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKaW5kZXgg
OGNjZTI3NzVlNTEyY2FlMmU0NDlmZWRjZDgxODk1ZjQyMGQwODM0Zi4uZjIzNzM1NjcwMWU4ZTc1
MjVjYzNmNWQxYTY2NTBiYThkYTVmN2E2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKQEAgLTMxLDcgKzMx
LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3ID0gZnVuY3Rpb24ocmVwcmVzZW50ZWRPYmpl
Y3QsIGV4dHJhQXJndW1lbnRzKQogICAgICAgICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9i
amVjdCk7CiAKICAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5z
cGVjdG9yLkZyYW1lKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuRnJhbWVD
b250ZW50VmlldyhyZXByZXNlbnRlZE9iamVjdCwgZXh0cmFBcmd1bWVudHMpOworICAgICAgICAg
ICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDbHVzdGVyQ29udGVudFZpZXcocmVw
cmVzZW50ZWRPYmplY3QubWFpblJlc291cmNlLCBleHRyYUFyZ3VtZW50cyk7CiAKICAgICAgICAg
aWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlKQog
ICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDbHVzdGVyQ29udGVu
dFZpZXcocmVwcmVzZW50ZWRPYmplY3QsIGV4dHJhQXJndW1lbnRzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50Vmll
dy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVD
b250ZW50Vmlldy5qcwppbmRleCAzNDQ5NzNjMWZjOGU2YTE5MzVhZTcxNzc0MzIyYjI0ZWJlNzY5
OTI4Li40NmNmMWM3Y2Q3MWQ1ODUwNGM1Y2Q3ZmM3ZmYzYTA0NjNlNjg4ODAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlQ29udGVu
dFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZUNvbnRlbnRWaWV3LmpzCkBAIC0xMzksNiArMTM5LDE4IEBAIFdlYkluc3BlY3Rvci5E
T01UcmVlQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gcGF0aENvbXBv
bmVudHM7CiAgICAgfSwKIAorICAgIHJlc3RvcmVGcm9tQ29va2llOiBmdW5jdGlvbihjb29raWUp
CisgICAgeworICAgICAgICBpZiAoIWNvb2tpZSB8fCAhY29va2llLm5vZGVUb1NlbGVjdCkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLnNlbGVjdEFuZFJldmVhbERPTU5vZGUo
Y29va2llLm5vZGVUb1NlbGVjdCk7CisKKyAgICAgICAgLy8gQmVjYXVzZSBub2RlVG9TZWxlY3Qg
aXMgZXBoZW1lcmFsLCB3ZSBkb24ndCB3YW50IHRvIGtlZXAKKyAgICAgICAgLy8gaXQgYXJvdW5k
IGluIHRoZSBiYWNrLWZvcndhcmQgaGlzdG9yeSBlbnRyaWVzLgorICAgICAgICBjb29raWUubm9k
ZVRvU2VsZWN0ID0gdW5kZWZpbmVkOworICAgIH0sCisKICAgICBzZWxlY3RBbmRSZXZlYWxET01O
b2RlOiBmdW5jdGlvbihkb21Ob2RlLCBwcmV2ZW50Rm9jdXNDaGFuZ2UpCiAgICAgewogICAgICAg
ICB0aGlzLl9kb21UcmVlT3V0bGluZS5zZWxlY3RET01Ob2RlKGRvbU5vZGUsICFwcmV2ZW50Rm9j
dXNDaGFuZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRE9NVHJlZURhdGFHcmlkTm9kZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVEYXRhR3JpZE5vZGUuanMKaW5kZXggNjgzYTRhZWRi
ZDUzMmY1Zjk1MzgyZTExYjYwNTJhNWM0ZTVlZTQyZC4uYTEzNzVjOTJjYWIyYTkwMThiNmVkNmYw
MGMyODgxZGU2NTNmMWE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRE9NVHJlZURhdGFHcmlkTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRGF0YUdyaWROb2RlLmpzCkBAIC04
Myw2ICs4Myw2IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9
IHsKIAogICAgIF9nb1RvQXJyb3dXYXNDbGlja2VkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICBXZWJJbnNwZWN0b3IucmVzb3VyY2VTaWRlYmFyUGFuZWwuc2hvd01haW5GcmFtZURPTVRyZWUo
dGhpcy5fZG9tTm9kZSwgdHJ1ZSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5zaG93TWFpbkZyYW1l
RE9NVHJlZSh0aGlzLl9kb21Ob2RlLCB0cnVlKTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dl
clNpZGViYXJQYW5lbC5qcwppbmRleCBjOWIyMWFkNDkyNjU0NTgxZjI1OTU5ZTcwYjE0YjJjNTNl
YzJhY2Y4Li41Y2VhMDI3YmQzOTVlZjcxZTg0ZTFlMGM5YjcxZGU2NTY0MTY1YzhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNp
ZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcwpAQCAtMjUsMTAgKzI1LDEyIEBACiAKIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVs
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk5hdmlnYXRpb25TaWRlYmFyUGFuZWwKIHsKLSAgICBjb25z
dHJ1Y3RvcigpCisgICAgY29uc3RydWN0b3IoY29udGVudEJyb3dzZXIpCiAgICAgewogICAgICAg
ICBzdXBlcigiZGVidWdnZXIiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRlYnVnZ2VyIiksIHRy
dWUpOwogCisgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIgPSBjb250ZW50QnJvd3NlcjsKKwog
ICAgICAgICBXZWJJbnNwZWN0b3IuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9tYWluUmVzb3VyY2VDaGFu
Z2VkLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkZyYW1lLkV2ZW50LlJlc291cmNlV2FzQWRkZWQsIHRoaXMuX3Jlc291cmNl
QWRkZWQsIHRoaXMpOwogCkBAIC0xNzksNyArMTgxLDE1IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5z
cGVjCiAKICAgICBzaG93RGVmYXVsdENvbnRlbnRWaWV3KCkKICAgICB7Ci0gICAgICAgIFdlYklu
c3BlY3Rvci5yZXNvdXJjZVNpZGViYXJQYW5lbC5zaG93RGVmYXVsdENvbnRlbnRWaWV3KCk7Cisg
ICAgICAgIHZhciBjdXJyZW50VHJlZUVsZW1lbnQgPSB0aGlzLl9jb250ZW50VHJlZU91dGxpbmUu
Y2hpbGRyZW5bMF07CisgICAgICAgIHdoaWxlIChjdXJyZW50VHJlZUVsZW1lbnQgJiYgIWN1cnJl
bnRUcmVlRWxlbWVudC5yb290KSB7CisgICAgICAgICAgICBpZiAoY3VycmVudFRyZWVFbGVtZW50
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgfHwgY3VycmVudFRy
ZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNjcmlwdFRyZWVFbGVtZW50KSB7Cisg
ICAgICAgICAgICAgICAgY3VycmVudFRyZWVFbGVtZW50LnJldmVhbEFuZFNlbGVjdCgpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY3VycmVu
dFRyZWVFbGVtZW50ID0gY3VycmVudFRyZWVFbGVtZW50LnRyYXZlcnNlTmV4dFRyZWVFbGVtZW50
KGZhbHNlLCBudWxsLCB0cnVlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHRyZWVFbGVtZW50
Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVzZW50ZWRPYmplY3QpCkBAIC0zMDYsNiArMzE2LDEx
IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lk
ZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQg
PSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFRyZWVFbGVtZW50KHNvdXJjZUNvZGUpOwogICAgICAg
ICB9CiAKKyAgICAgICAgaWYgKCF0cmVlRWxlbWVudCkgeworICAgICAgICAgICAgY29uc29sZS5l
cnJvcigiVW5rbm93biBzb3VyY2VDb2RlIGluc3RhbmNlIiwgc291cmNlQ29kZSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIXRyZWVFbGVtZW50LnBhcmVu
dCkgewogICAgICAgICAgICAgdHJlZUVsZW1lbnQuaGFzQ2hpbGRyZW4gPSBmYWxzZTsKICAgICAg
ICAgICAgIHRyZWVFbGVtZW50LmV4cGFuZCgpOwpAQCAtNTc4LDcgKzU5Myw3IEBAIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4
dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIGlmICh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYklu
c3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2Vi
SW5zcGVjdG9yLlNjcmlwdFRyZWVFbGVtZW50KSB7CiAgICAgICAgICAgICBkZXNlbGVjdENhbGxT
dGFja0NvbnRlbnRUcmVlRWxlbWVudHMuY2FsbCh0aGlzKTsKICAgICAgICAgICAgIGRlc2VsZWN0
UGF1c2VSZWFzb25Db250ZW50VHJlZUVsZW1lbnRzLmNhbGwodGhpcyk7Ci0gICAgICAgICAgICBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VTaWRlYmFyUGFuZWwuc2hvd1NvdXJjZUNvZGUodHJlZUVsZW1l
bnQucmVwcmVzZW50ZWRPYmplY3QpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dTb3Vy
Y2VDb2RlKHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC01ODksMTQgKzYwNCwxNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYklu
c3BlYwogCiAgICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gdHJlZUVsZW1lbnQuY2FsbEZyYW1l
OwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJh
bWUgPSBjYWxsRnJhbWU7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VTaWRlYmFy
UGFuZWwuc2hvd1NvdXJjZUNvZGVMb2NhdGlvbihjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9u
KTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93U291cmNlQ29kZUxvY2F0aW9uKGNhbGxG
cmFtZS5zb3VyY2VDb2RlTG9jYXRpb24pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLklzc3Vl
VHJlZUVsZW1lbnQpIHsKICAgICAgICAgICAgIGRlc2VsZWN0Q2FsbFN0YWNrQ29udGVudFRyZWVF
bGVtZW50cy5jYWxsKHRoaXMpOwogICAgICAgICAgICAgZGVzZWxlY3RQYXVzZVJlYXNvbkNvbnRl
bnRUcmVlRWxlbWVudHMuY2FsbCh0aGlzKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNv
dXJjZVNpZGViYXJQYW5lbC5zaG93U291cmNlQ29kZUxvY2F0aW9uKHRyZWVFbGVtZW50Lmlzc3Vl
TWVzc2FnZS5zb3VyY2VDb2RlTG9jYXRpb24pOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNo
b3dTb3VyY2VDb2RlTG9jYXRpb24odHJlZUVsZW1lbnQuaXNzdWVNZXNzYWdlLnNvdXJjZUNvZGVM
b2NhdGlvbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNjEzLDcgKzYy
OCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2Vy
U2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAKICAgICAgICAgdmFyIGJyZWFrcG9pbnQg
PSB0cmVlRWxlbWVudC5icmVha3BvaW50OwogICAgICAgICBpZiAodHJlZUVsZW1lbnQudHJlZU91
dGxpbmUgPT09IHRoaXMuX3BhdXNlUmVhc29uVHJlZU91dGxpbmUpIHsKLSAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVNpZGViYXJQYW5lbC5zaG93U291cmNlQ29kZUxvY2F0aW9uKGJy
ZWFrcG9pbnQuc291cmNlQ29kZUxvY2F0aW9uKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5z
aG93U291cmNlQ29kZUxvY2F0aW9uKGJyZWFrcG9pbnQuc291cmNlQ29kZUxvY2F0aW9uKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC02MjQsNyArNjM5LDcgQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0gY2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwg
ZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgaWYgKCEodHJlZUVsZW1lbnQucGFyZW50LnJlcHJl
c2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGUpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVNpZGViYXJQYW5l
bC5zaG93U291cmNlQ29kZUxvY2F0aW9uKGJyZWFrcG9pbnQuc291cmNlQ29kZUxvY2F0aW9uKTsK
KyAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dTb3VyY2VDb2RlTG9jYXRpb24oYnJlYWtwb2ludC5z
b3VyY2VDb2RlTG9jYXRpb24pOwogICAgIH0KIAogICAgIF9jb21wYXJlVG9wTGV2ZWxUcmVlRWxl
bWVudHMoYSwgYikKQEAgLTc2MSw2ICs3NzYsOSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRl
YmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwog
ICAgIF9hZGRJc3N1ZShpc3N1ZU1lc3NhZ2UpCiAgICAgewogICAgICAgICB2YXIgcGFyZW50VHJl
ZUVsZW1lbnQgPSB0aGlzLl9hZGRUcmVlRWxlbWVudEZvclNvdXJjZUNvZGVUb0NvbnRlbnRUcmVl
T3V0bGluZShpc3N1ZU1lc3NhZ2Uuc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGUpOworICAg
ICAgICBpZiAoIXBhcmVudFRyZWVFbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisK
ICAgICAgICAgdmFyIGlzc3VlVHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLklzc3VlVHJl
ZUVsZW1lbnQoaXNzdWVNZXNzYWdlKTsKIAogICAgICAgICBwYXJlbnRUcmVlRWxlbWVudC5pbnNl
cnRDaGlsZChpc3N1ZVRyZWVFbGVtZW50LCBpbnNlcnRpb25JbmRleEZvck9iamVjdEluTGlzdFNv
cnRlZEJ5RnVuY3Rpb24oaXNzdWVUcmVlRWxlbWVudCwgcGFyZW50VHJlZUVsZW1lbnQuY2hpbGRy
ZW4sIHRoaXMuX2NvbXBhcmVEZWJ1Z2dlclRyZWVFbGVtZW50cykpOwpAQCAtNzc1LDcgKzc5Myw3
IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lk
ZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIHZhciBpc3N1ZSA9IGV2ZW50LmRh
dGEuaXNzdWU7CiAKICAgICAgICAgLy8gV2Ugb25seSB3YW50IHRvIHNob3cgaXNzdWVzIG9yaWdp
bmF0aW5nIGZyb20gSmF2YVNjcmlwdCBzb3VyY2UgY29kZS4KLSAgICAgICAgaWYgKCFpc3N1ZS5s
aW5lTnVtYmVyIHx8IChpc3N1ZS5zb3VyY2UgIT09ICJqYXZhc2NyaXB0IiAmJiBpc3N1ZS5zb3Vy
Y2UgIT09ICJjb25zb2xlLWFwaSIpKQorICAgICAgICBpZiAoIWlzc3VlLnNvdXJjZUNvZGVMb2Nh
dGlvbiB8fCAhaXNzdWUuc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGUgfHwgKGlzc3VlLnNv
dXJjZSAhPT0gImphdmFzY3JpcHQiICYmIGlzc3VlLnNvdXJjZSAhPT0gImNvbnNvbGUtYXBpIikp
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5fYWRkSXNzdWUoaXNzdWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5
ZXJUcmVlRGF0YUdyaWROb2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvTGF5ZXJUcmVlRGF0YUdyaWROb2RlLmpzCmluZGV4IDE1MWE1YTM4ODc1N2VmMGNj
OWIzZmNkYzAzMzdmMTJkN2UzY2UzODEuLjlmZWYwOTU1ZjNiOWI3ODZhZTBlYmE2MWZiZWQzMTM2
OTJmODBjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0xheWVyVHJlZURhdGFHcmlkTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllclRyZWVEYXRhR3JpZE5vZGUuanMKQEAgLTE2Miw3
ICsxNjIsNyBAQCBXZWJJbnNwZWN0b3IuTGF5ZXJUcmVlRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9
IHsKICAgICBfZ29Ub0Fycm93V2FzQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
dmFyIGRvbU5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIubm9kZUZvcklkKHRoaXMu
X2xheWVyLm5vZGVJZCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVNpZGViYXJQYW5l
bC5zaG93TWFpbkZyYW1lRE9NVHJlZShkb21Ob2RlLCB0cnVlKTsKKyAgICAgICAgV2ViSW5zcGVj
dG9yLnNob3dNYWluRnJhbWVET01UcmVlKGRvbU5vZGUsIHRydWUpOwogICAgIH0KIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91
dFRpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0xheW91dFRpbWVsaW5lVmlldy5qcwppbmRleCBhZWQyNmI0MjliNTZlN2MyZjJlMTIwZWQ5
NzU1Y2IxNjcwMDI2OTYyLi5lZTkxNDk0NTY5MTI0OTI5MmI3Y2EyZTU5ZjAzOTdhM2EzMWU5OGY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9M
YXlvdXRUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzCkBAIC0yMzMsNyArMjMzLDcgQEAgV2Vi
SW5zcGVjdG9yLkxheW91dFRpbWVsaW5lVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VTaWRlYmFy
UGFuZWwuc2hvd09yaWdpbmFsT3JGb3JtYXR0ZWRTb3VyY2VDb2RlTG9jYXRpb24odHJlZUVsZW1l
bnQucmVjb3JkLnNvdXJjZUNvZGVMb2NhdGlvbik7CisgICAgICAgIFdlYkluc3BlY3Rvci5zaG93
T3JpZ2luYWxPckZvcm1hdHRlZFNvdXJjZUNvZGVMb2NhdGlvbih0cmVlRWxlbWVudC5yZWNvcmQu
c291cmNlQ29kZUxvY2F0aW9uKTsKICAgICAgICAgdGhpcy5fdXBkYXRlVHJlZUVsZW1lbnRXaXRo
Q2xvc2VCdXR0b24odHJlZUVsZW1lbnQpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25TaWRlYmFyUGFuZWwu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9u
U2lkZWJhclBhbmVsLmpzCmluZGV4IDdkM2YyNWUwZDk4ZjA4YTI3ZGNiNDhlNzQwOTExYjQ1NmM1
ZTllMjQuLjJiNTFjOWVjZjMzY2M4N2M1YWUzZDdiOWYxMzcxOTNhY2FkMGJjMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05hdmlnYXRpb25T
aWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpAQCAtNzYsNiArNzYsMTYgQEAgV2ViSW5z
cGVjdG9yLk5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFzcyBOYXZpZ2F0aW9uU2lkZWJhclBh
bmVsIGV4dGVuZHMgV2ViSW4KIAogICAgIC8vIFB1YmxpYwogCisgICAgZ2V0IGNvbnRlbnRCcm93
c2VyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50QnJvd3NlcjsKKyAgICB9
CisKKyAgICBzZXQgY29udGVudEJyb3dzZXIoY29udGVudEJyb3dzZXIpCisgICAgeworICAgICAg
ICB0aGlzLl9jb250ZW50QnJvd3NlciA9IGNvbnRlbnRCcm93c2VyIHx8IG51bGw7CisgICAgfQor
CiAgICAgZ2V0IGNvbnRlbnRUcmVlT3V0bGluZUVsZW1lbnQoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHRoaXMuX2NvbnRlbnRUcmVlT3V0bGluZS5lbGVtZW50OwpAQCAtNDc3LDggKzQ4Nyw5IEBA
IFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgTmF2aWdhdGlvblNp
ZGViYXJQYW5lbCBleHRlbmRzIFdlYkluCiAgICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRPdmVy
Zmxvd1NoYWRvd1Zpc2liaWxpdHkoKTsKIAogICAgICAgICAvLyBGaWx0ZXIgbWF5IGhhdmUgaGlk
ZGVuIHRoZSBzZWxlY3RlZCByZXNvdXJjZSBpbiB0aGUgdGltZWxpbmUgdmlldywgd2hpY2ggc2hv
dWxkIG5vdyBub3RpZnkgaXRzIGxpc3RlbmVycy4KKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMg
YSBsYXllcmluZyB2aW9sYXRpb24uIFRoaXMgc2hvdWxkIGF0IGxlYXN0IGJlIGluIFRpbWVsaW5l
U2lkZWJhclBhbmVsLgogICAgICAgICBpZiAoc2VsZWN0ZWRUcmVlRWxlbWVudCAmJiBzZWxlY3Rl
ZFRyZWVFbGVtZW50LmhpZGRlbiAhPT0gc2VsZWN0aW9uV2FzSGlkZGVuKSB7Ci0gICAgICAgICAg
ICB2YXIgY3VycmVudENvbnRlbnRWaWV3ID0gV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLmN1
cnJlbnRDb250ZW50VmlldzsKKyAgICAgICAgICAgIHZhciBjdXJyZW50Q29udGVudFZpZXcgPSB0
aGlzLmNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50VmlldzsKICAgICAgICAgICAgIGlmIChj
dXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRp
bmdDb250ZW50VmlldyAmJiB0eXBlb2YgY3VycmVudENvbnRlbnRWaWV3LmN1cnJlbnRUaW1lbGlu
ZVZpZXcuZmlsdGVyVXBkYXRlZCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAgICAgICBjdXJy
ZW50Q29udGVudFZpZXcuY3VycmVudFRpbWVsaW5lVmlldy5maWx0ZXJVcGRhdGVkKCk7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3LmpzCmluZGV4IGIxZmIxNmFhMTBjZTYy
MTQ1ZDAxMTdmOGJlZDllODMyYTdmNDliMTYuLjhlMmRhOTc3MzNlYzc1MzNmYjM3ZGI3MzU2NjMy
NzQ1MTIwYjZlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lVmlldy5qcwpAQCAtMjE4LDcg
KzIxOCw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrVGltZWxpbmVWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2Vv
ZiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCB8fCB0cmVlRWxlbWVudCBpbnN0YW5j
ZW9mIFdlYkluc3BlY3Rvci5TY3JpcHRUcmVlRWxlbWVudCkgewotICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLnJlc291cmNlU2lkZWJhclBhbmVsLnNob3dTb3VyY2VDb2RlKHRyZWVFbGVtZW50LnJl
cHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93U291cmNlQ29k
ZSh0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCk7CiAgICAgICAgICAgICB0aGlzLl91cGRh
dGVUcmVlRWxlbWVudFdpdGhDbG9zZUJ1dHRvbih0cmVlRWxlbWVudCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL09iamVjdFRyZWVCYXNlVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9PYmplY3RUcmVlQmFzZVRyZWVFbGVtZW50
LmpzCmluZGV4IDdkMTE4MjU4MjMwOTBlNTNjOTNiZTE4OWVmMTFlZDEyZTE2ZWE0YTYuLjZkNTkx
MzJjMmNiMTdkODg3MzEzMWY0MmExMTVmMTI4YjliYjBlNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL09iamVjdFRyZWVCYXNlVHJlZUVsZW1l
bnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT2Jq
ZWN0VHJlZUJhc2VUcmVlRWxlbWVudC5qcwpAQCAtMjI0LDcgKzIyNCw3IEBAIFdlYkluc3BlY3Rv
ci5PYmplY3RUcmVlQmFzZVRyZWVFbGVtZW50ID0gY2xhc3MgT2JqZWN0VHJlZUJhc2VUcmVlRWxl
bWVudCBleHRlbmRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgc291cmNlQ29kZUxvY2F0aW9uID0gc291cmNlQ29kZS5j
cmVhdGVTb3VyY2VDb2RlTG9jYXRpb24obG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24uY29s
dW1uTnVtYmVyIHx8IDApOwotICAgICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnJl
c291cmNlU2lkZWJhclBhbmVsLnNob3dTb3VyY2VDb2RlTG9jYXRpb24oc291cmNlQ29kZUxvY2F0
aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93U291cmNlQ29k
ZUxvY2F0aW9uKHNvdXJjZUNvZGVMb2NhdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9PdmVydmlld1RpbWVs
aW5lVmlldy5qcwppbmRleCAxZTFiNjg3YTc0MDgyYzMwMTM4M2I1MjJmMDBmYTliNGFkZDA0Y2Fj
Li5lMDRmOWMzZDZmZmEwOGM0NDBjNjIwZWFjY2M4MzZhNzhjNzNlMTdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9PdmVydmlld1RpbWVsaW5l
Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9P
dmVydmlld1RpbWVsaW5lVmlldy5qcwpAQCAtMzQwLDcgKzM0MCw3IEBAIFdlYkluc3BlY3Rvci5P
dmVydmlld1RpbWVsaW5lVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgaWYgKHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZUVsZW1lbnQgfHwgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2NyaXB0
VHJlZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVNpZGViYXJQ
YW5lbC5zaG93U291cmNlQ29kZSh0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCk7CisgICAg
ICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd1NvdXJjZUNvZGUodHJlZUVsZW1lbnQucmVwcmVzZW50
ZWRPYmplY3QpOwogICAgICAgICAgICAgdGhpcy5fdXBkYXRlVHJlZUVsZW1lbnRXaXRoQ2xvc2VC
dXR0b24odHJlZUVsZW1lbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0z
NTYsNyArMzU2LDcgQEAgV2ViSW5zcGVjdG9yLk92ZXJ2aWV3VGltZWxpbmVWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVNpZGViYXJQYW5lbC5zaG93T3JpZ2luYWxPckZvcm1hdHRlZFNvdXJjZUNv
ZGVMb2NhdGlvbih0cmVlRWxlbWVudC5zb3VyY2VDb2RlVGltZWxpbmUuc291cmNlQ29kZUxvY2F0
aW9uKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dPcmlnaW5hbE9yRm9ybWF0dGVkU291cmNl
Q29kZUxvY2F0aW9uKHRyZWVFbGVtZW50LnNvdXJjZUNvZGVUaW1lbGluZS5zb3VyY2VDb2RlTG9j
YXRpb24pOwogICAgICAgICB0aGlzLl91cGRhdGVUcmVlRWxlbWVudFdpdGhDbG9zZUJ1dHRvbih0
cmVlRWxlbWVudCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VEZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VEZXRhaWxzU2lk
ZWJhclBhbmVsLmpzCmluZGV4IGU3MTljMDcxNDAzMjU0MWIxNDc5NTVmODA0MmNlMGMxYWU1NWRl
ZDIuLjE3MTk5ODNmNzZmOGFlNmMzNjU5MDRkNjhhYzUxN2NhYTM2NmViYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlRGV0YWls
c1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9SZXNvdXJjZURldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTM5OCw3ICszOTgsNyBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgUmVzb3Vy
Y2VEZXRhaWxzU2lkZWJhclBhbmVsIGV4dAogCiAgICAgX2dvVG9SZXF1ZXN0RGF0YUNsaWNrZWQo
KQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlU2lkZWJhclBhbmVsLnNob3dS
ZXNvdXJjZVJlcXVlc3QodGhpcy5fcmVzb3VyY2UpOworICAgICAgICBXZWJJbnNwZWN0b3Iuc2hv
d1Jlc291cmNlUmVxdWVzdCh0aGlzLl9yZXNvdXJjZSk7CiAgICAgfQogCiAgICAgX3JlZnJlc2hS
ZXF1ZXN0RGF0YVNlY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcwppbmRl
eCBlZTY4NjlkYTgyZGEyM2UxYmFjZmZkYjdiODNhNGY5MGQ1MTMyOTA5Li4zNjJkYzkzNjUyNGRl
ZTk1NDExMTJmZTg5MWU2YWFmN2U3ODEzYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQ
YW5lbC5qcwpAQCAtMjUsMTAgKzI1LDEyIEBACiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGVi
YXJQYW5lbCA9IGNsYXNzIFJlc291cmNlU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjdG9y
Lk5hdmlnYXRpb25TaWRlYmFyUGFuZWwKIHsKLSAgICBjb25zdHJ1Y3RvcigpCisgICAgY29uc3Ry
dWN0b3IoY29udGVudEJyb3dzZXIpCiAgICAgewogICAgICAgICBzdXBlcigicmVzb3VyY2UiLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlc291cmNlcyIpLCB0cnVlLCB0cnVlKTsKIAorICAgICAg
ICB0aGlzLmNvbnRlbnRCcm93c2VyID0gY29udGVudEJyb3dzZXI7CisKICAgICAgICAgdmFyIHNl
YXJjaEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgc2Vh
cmNoRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzZWFyY2gtYmFyIik7CiAgICAgICAgIHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZChzZWFyY2hFbGVtZW50KTsKQEAgLTc5LDkgKzgxLDYgQEAgV2ViSW5z
cGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsID0gY2xhc3MgUmVzb3VyY2VTaWRlYmFyUGFuZWwg
ZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLkV2ZW50LkZyYW1lTWFuaWZlc3RSZW1vdmVkLCB0aGlzLl9mcmFtZU1hbmlmZXN0UmVtb3Zl
ZCwgdGhpcyk7CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyLkV2ZW50Lk1h
aW5GcmFtZURpZENoYW5nZSwgdGhpcy5fbWFpbkZyYW1lRGlkQ2hhbmdlLCB0aGlzKTsKLSAgICAg
ICAgV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyLkV2ZW50LkZyYW1lV2FzQWRkZWQsIHRoaXMu
X2ZyYW1lV2FzQWRkZWQsIHRoaXMpOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5FdmVudC5E
T01Ob2RlV2FzSW5zcGVjdGVkLCB0aGlzLl9kb21Ob2RlV2FzSW5zcGVjdGVkLCB0aGlzKTsKIAog
ICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgdGhpcy5fc2NyaXB0
V2FzQWRkZWQsIHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRz
Q2xlYXJlZCwgdGhpcy5fc2NyaXB0c0NsZWFyZWQsIHRoaXMpOwpAQCAtMTA1LDcgKzEwNCw3IEBA
IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbCA9IGNsYXNzIFJlc291cmNlU2lkZWJh
clBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgc2hvd0RlZmF1bHRDb250ZW50VmlldygpCiAg
ICAgewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLm1haW5G
cmFtZSkgewotICAgICAgICAgICAgdGhpcy5zaG93TWFpbkZyYW1lKCk7CisgICAgICAgICAgICB0
aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0KFdl
Ykluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5tYWluRnJhbWUpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKQEAgLTExOSwxMjkgKzExOCwxNSBAQCBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VTaWRlYmFyUGFuZWwgPSBjbGFzcyBSZXNvdXJjZVNpZGViYXJQYW5lbCBleHRlbmRz
IFdlYkluc3BlYwogICAgICAgICByZXR1cm4gdGhpcy5fc2VhcmNoQ29udGVudFRyZWVPdXRsaW5l
OwogICAgIH0KIAotICAgIHNob3dNYWluRnJhbWUobm9kZVRvU2VsZWN0LCBwcmV2ZW50Rm9jdXND
aGFuZ2UpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuY29udGVudEJyb3dzZXIuc2hvd0Nv
bnRlbnRWaWV3Rm9yUmVwcmVzZW50ZWRPYmplY3QoV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VN
YW5hZ2VyLm1haW5GcmFtZSk7Ci0gICAgfQotCi0gICAgc2hvd01haW5GcmFtZURPTVRyZWUobm9k
ZVRvU2VsZWN0LCBwcmV2ZW50Rm9jdXNDaGFuZ2UpCi0gICAgewotICAgICAgICB2YXIgY29udGVu
dFZpZXcgPSBXZWJJbnNwZWN0b3IuY29udGVudEJyb3dzZXIuY29udGVudFZpZXdGb3JSZXByZXNl
bnRlZE9iamVjdChXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lKTsK
LSAgICAgICAgY29udGVudFZpZXcuc2hvd0RPTVRyZWUobm9kZVRvU2VsZWN0LCBwcmV2ZW50Rm9j
dXNDaGFuZ2UpOwotICAgICAgICBXZWJJbnNwZWN0b3IuY29udGVudEJyb3dzZXIuc2hvd0NvbnRl
bnRWaWV3KGNvbnRlbnRWaWV3KTsKLSAgICB9Ci0KLSAgICBzaG93TWFpbkZyYW1lU291cmNlQ29k
ZSgpCi0gICAgewotICAgICAgICB2YXIgY29udGVudFZpZXcgPSBXZWJJbnNwZWN0b3IuY29udGVu
dEJyb3dzZXIuY29udGVudFZpZXdGb3JSZXByZXNlbnRlZE9iamVjdChXZWJJbnNwZWN0b3IuZnJh
bWVSZXNvdXJjZU1hbmFnZXIubWFpbkZyYW1lKTsKLSAgICAgICAgY29udGVudFZpZXcuc2hvd1Nv
dXJjZUNvZGUoKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLnNob3dDb250
ZW50Vmlldyhjb250ZW50Vmlldyk7Ci0gICAgfQotCi0gICAgc2hvd0NvbnRlbnRGbG93RE9NVHJl
ZShjb250ZW50Rmxvdywgbm9kZVRvU2VsZWN0LCBwcmV2ZW50Rm9jdXNDaGFuZ2UpCi0gICAgewot
ICAgICAgICB2YXIgY29udGVudFZpZXcgPSBXZWJJbnNwZWN0b3IuY29udGVudEJyb3dzZXIuY29u
dGVudFZpZXdGb3JSZXByZXNlbnRlZE9iamVjdChjb250ZW50Rmxvdyk7Ci0gICAgICAgIGlmIChu
b2RlVG9TZWxlY3QpCi0gICAgICAgICAgICBjb250ZW50Vmlldy5zZWxlY3RBbmRSZXZlYWxET01O
b2RlKG5vZGVUb1NlbGVjdCwgcHJldmVudEZvY3VzQ2hhbmdlKTsKLSAgICAgICAgV2ViSW5zcGVj
dG9yLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyhjb250ZW50Vmlldyk7Ci0gICAgfQot
Ci0gICAgc2hvd1NvdXJjZUNvZGVGb3JGcmFtZShmcmFtZUlkZW50aWZpZXIsIHJldmVhbEFuZFNl
bGVjdFRyZWVFbGVtZW50KQotICAgIHsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2ZyYW1lSWRlbnRp
ZmllclRvU2hvd1NvdXJjZUNvZGVXaGVuQXZhaWxhYmxlOwotCi0gICAgICAgIC8vIFdlIGNhbid0
IHNob3cgYW55dGhpbmcgdW50aWwgd2UgaGF2ZSB0aGUgbWFpbiBmcmFtZSBpbiB0aGUgc2lkZWJh
ci4KLSAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBwYXRoIGNvbXBvbmVudHMgaW4gdGhlIG5hdmln
YXRpb24gYmFyIHdvdWxkIGJlIG1pc3NpbmcuCi0gICAgICAgIHZhciBmcmFtZSA9IFdlYkluc3Bl
Y3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5mcmFtZUZvcklkZW50aWZpZXIoZnJhbWVJZGVudGlm
aWVyKTsKLSAgICAgICAgaWYgKCFmcmFtZSB8fCAhdGhpcy5fbWFpbkZyYW1lVHJlZUVsZW1lbnQp
IHsKLSAgICAgICAgICAgIHRoaXMuX2ZyYW1lSWRlbnRpZmllclRvU2hvd1NvdXJjZUNvZGVXaGVu
QXZhaWxhYmxlID0gZnJhbWVJZGVudGlmaWVyOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdmFyIGNvbnRlbnRWaWV3ID0gV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93
c2VyLmNvbnRlbnRWaWV3Rm9yUmVwcmVzZW50ZWRPYmplY3QoZnJhbWUpOwotICAgICAgICBjb25z
b2xlLmFzc2VydChjb250ZW50Vmlldyk7Ci0gICAgICAgIGlmICghY29udGVudFZpZXcpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY29udGVudFZpZXcuc2hvd1NvdXJjZUNvZGUoKTsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlldyhjb250
ZW50Vmlldyk7Ci0KLSAgICAgICAgaWYgKHJldmVhbEFuZFNlbGVjdFRyZWVFbGVtZW50KQotICAg
ICAgICAgICAgdGhpcy50cmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0KGZyYW1lKS5yZXZl
YWxBbmRTZWxlY3QodHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7Ci0gICAgfQotCi0gICAgc2hvd1Nv
dXJjZUNvZGUoc291cmNlQ29kZSwgcG9zaXRpb25Ub1JldmVhbCwgdGV4dFJhbmdlVG9TZWxlY3Qs
IGZvcmNlVW5mb3JtYXR0ZWQpCi0gICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghcG9zaXRp
b25Ub1JldmVhbCB8fCBwb3NpdGlvblRvUmV2ZWFsIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNv
dXJjZUNvZGVQb3NpdGlvbiwgcG9zaXRpb25Ub1JldmVhbCk7Ci0gICAgICAgIHZhciByZXByZXNl
bnRlZE9iamVjdCA9IHNvdXJjZUNvZGU7Ci0KLSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNjcmlwdCkgewotICAgICAgICAgICAgLy8gQSBzY3Jp
cHQgcmVwcmVzZW50ZWQgYnkgYSByZXNvdXJjZSBzaG91bGQgYWx3YXlzIHNob3cgdGhlIHJlc291
cmNlLgotICAgICAgICAgICAgcmVwcmVzZW50ZWRPYmplY3QgPSByZXByZXNlbnRlZE9iamVjdC5y
ZXNvdXJjZSB8fCByZXByZXNlbnRlZE9iamVjdDsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEEg
bWFpbiByZXNvdXJjZSBpcyBhbHdheXMgcmVwcmVzZW50ZWQgYnkgaXRzIHBhcmVudCBmcmFtZS4K
LSAgICAgICAgaWYgKHJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJl
c291cmNlICYmIHJlcHJlc2VudGVkT2JqZWN0LmlzTWFpblJlc291cmNlKCkpCi0gICAgICAgICAg
ICByZXByZXNlbnRlZE9iamVjdCA9IHJlcHJlc2VudGVkT2JqZWN0LnBhcmVudEZyYW1lOwotCi0g
ICAgICAgIHZhciBjb29raWUgPSBwb3NpdGlvblRvUmV2ZWFsID8ge2xpbmVOdW1iZXI6IHBvc2l0
aW9uVG9SZXZlYWwubGluZU51bWJlciwgY29sdW1uTnVtYmVyOiBwb3NpdGlvblRvUmV2ZWFsLmNv
bHVtbk51bWJlcn0gOiB7fTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLnNo
b3dDb250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0LCBjb29r
aWUpOwotICAgIH0KLQotICAgIHNob3dTb3VyY2VDb2RlTG9jYXRpb24oc291cmNlQ29kZUxvY2F0
aW9uKQotICAgIHsKLSAgICAgICAgdGhpcy5zaG93U291cmNlQ29kZShzb3VyY2VDb2RlTG9jYXRp
b24uZGlzcGxheVNvdXJjZUNvZGUsIHNvdXJjZUNvZGVMb2NhdGlvbi5kaXNwbGF5UG9zaXRpb24o
KSk7Ci0gICAgfQotCi0gICAgc2hvd09yaWdpbmFsVW5mb3JtYXR0ZWRTb3VyY2VDb2RlTG9jYXRp
b24oc291cmNlQ29kZUxvY2F0aW9uKQotICAgIHsKLSAgICAgICAgdGhpcy5zaG93U291cmNlQ29k
ZShzb3VyY2VDb2RlTG9jYXRpb24uc291cmNlQ29kZSwgc291cmNlQ29kZUxvY2F0aW9uLnBvc2l0
aW9uKCksIHVuZGVmaW5lZCwgdHJ1ZSk7Ci0gICAgfQotCi0gICAgc2hvd09yaWdpbmFsT3JGb3Jt
YXR0ZWRTb3VyY2VDb2RlTG9jYXRpb24oc291cmNlQ29kZUxvY2F0aW9uKQotICAgIHsKLSAgICAg
ICAgdGhpcy5zaG93U291cmNlQ29kZShzb3VyY2VDb2RlTG9jYXRpb24uc291cmNlQ29kZSwgc291
cmNlQ29kZUxvY2F0aW9uLmZvcm1hdHRlZFBvc2l0aW9uKCkpOwotICAgIH0KLQotICAgIHNob3dT
b3VyY2VDb2RlVGV4dFJhbmdlKHNvdXJjZUNvZGVUZXh0UmFuZ2UpCi0gICAgewotICAgICAgICB2
YXIgdGV4dFJhbmdlVG9TZWxlY3QgPSBzb3VyY2VDb2RlVGV4dFJhbmdlLmRpc3BsYXlUZXh0UmFu
Z2U7Ci0gICAgICAgIHRoaXMuc2hvd1NvdXJjZUNvZGUoc291cmNlQ29kZVRleHRSYW5nZS5kaXNw
bGF5U291cmNlQ29kZSwgdGV4dFJhbmdlVG9TZWxlY3Quc3RhcnRQb3NpdGlvbigpLCB0ZXh0UmFu
Z2VUb1NlbGVjdCk7Ci0gICAgfQotCi0gICAgc2hvd09yaWdpbmFsT3JGb3JtYXR0ZWRTb3VyY2VD
b2RlVGV4dFJhbmdlKHNvdXJjZUNvZGVUZXh0UmFuZ2UpCi0gICAgewotICAgICAgICB2YXIgdGV4
dFJhbmdlVG9TZWxlY3QgPSBzb3VyY2VDb2RlVGV4dFJhbmdlLmZvcm1hdHRlZFRleHRSYW5nZTsK
LSAgICAgICAgdGhpcy5zaG93U291cmNlQ29kZShzb3VyY2VDb2RlVGV4dFJhbmdlLnNvdXJjZUNv
ZGUsIHRleHRSYW5nZVRvU2VsZWN0LnN0YXJ0UG9zaXRpb24oKSwgdGV4dFJhbmdlVG9TZWxlY3Qp
OwotICAgIH0KLQotICAgIHNob3dSZXNvdXJjZShyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXdGb3JSZXByZXNlbnRlZE9i
amVjdChyZXNvdXJjZS5pc01haW5SZXNvdXJjZSgpID8gcmVzb3VyY2UucGFyZW50RnJhbWUgOiBy
ZXNvdXJjZSk7Ci0gICAgfQotCi0gICAgc2hvd1Jlc291cmNlUmVxdWVzdChyZXNvdXJjZSkKLSAg
ICB7Ci0gICAgICAgIHZhciBjb250ZW50VmlldyA9IFdlYkluc3BlY3Rvci5jb250ZW50QnJvd3Nl
ci5jb250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0KHJlc291cmNlLmlzTWFpblJlc291cmNl
KCkgPyByZXNvdXJjZS5wYXJlbnRGcmFtZSA6IHJlc291cmNlKTsKLQotICAgICAgICBpZiAoY29u
dGVudFZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRnJhbWVDb250ZW50VmlldykKLSAgICAg
ICAgICAgIHZhciByZXNvdXJjZUNvbnRlbnRWaWV3ID0gY29udGVudFZpZXcuc2hvd1Jlc291cmNl
KCk7Ci0gICAgICAgIGVsc2UgaWYgKGNvbnRlbnRWaWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9y
LlJlc291cmNlQ2x1c3RlckNvbnRlbnRWaWV3KQotICAgICAgICAgICAgdmFyIHJlc291cmNlQ29u
dGVudFZpZXcgPSBjb250ZW50VmlldzsKLQotICAgICAgICBjb25zb2xlLmFzc2VydChyZXNvdXJj
ZUNvbnRlbnRWaWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlQ2x1c3RlckNvbnRl
bnRWaWV3KTsKLSAgICAgICAgaWYgKCEocmVzb3VyY2VDb250ZW50VmlldyBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZUNsdXN0ZXJDb250ZW50VmlldykpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgcmVzb3VyY2VDb250ZW50Vmlldy5zaG93UmVxdWVzdCgpOwotCi0gICAg
ICAgIFdlYkluc3BlY3Rvci5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXcoY29udGVudFZp
ZXcpOwotICAgIH0KLQogICAgIHRyZWVFbGVtZW50Rm9yUmVwcmVzZW50ZWRPYmplY3QocmVwcmVz
ZW50ZWRPYmplY3QpCiAgICAgewogICAgICAgICAvLyBBIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBp
cyBuZWVkZWQgZm9yIHRoaXMgc2luY2UgdGhlIGZyYW1lcyBhcmUgcG9wdWxhdGVkIGxhemlseS4K
IAorICAgICAgICBpZiAoIXRoaXMuX21haW5GcmFtZVRyZWVFbGVtZW50ICYmIChyZXByZXNlbnRl
ZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZSB8fCByZXByZXNlbnRlZE9i
amVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5GcmFtZSkpIHsKKyAgICAgICAgICAgIC8vIEFs
bCByZXNvdXJjZXMgYXJlIHVuZGVyIHRoZSBtYWluIGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHJldHVy
biBlYXJseSBpZiB3ZSBkb24ndCBoYXZlIHRoZSBtYWluIGZyYW1lIHlldC4KKyAgICAgICAgICAg
IHJldHVybiBudWxsOworICAgICAgICB9CisKICAgICAgICAgLy8gVGhlIEZyYW1lIGlzIHVzZWQg
YXMgdGhlIHJlcHJlc2VudGVkT2JqZWN0IGluc3RlYWQgb2YgdGhlIG1haW4gcmVzb3VyY2UgaW4g
b3VyIHRyZWUuCiAgICAgICAgIGlmIChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYklu
c3BlY3Rvci5SZXNvdXJjZSAmJiByZXByZXNlbnRlZE9iamVjdC5wYXJlbnRGcmFtZSAmJiByZXBy
ZXNlbnRlZE9iamVjdC5wYXJlbnRGcmFtZS5tYWluUmVzb3VyY2UgPT09IHJlcHJlc2VudGVkT2Jq
ZWN0KQogICAgICAgICAgICAgcmVwcmVzZW50ZWRPYmplY3QgPSByZXByZXNlbnRlZE9iamVjdC5w
YXJlbnRGcmFtZTsKQEAgLTU5MiwxNCArNDc3LDE5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNp
ZGViYXJQYW5lbCA9IGNsYXNzIFJlc291cmNlU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVj
CiAgICAgICAgICAgICB0aGlzLl9tYWluRnJhbWVUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0
b3IuRnJhbWVUcmVlRWxlbWVudChuZXdGcmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9yZXNvdXJj
ZXNDb250ZW50VHJlZU91dGxpbmUuaW5zZXJ0Q2hpbGQodGhpcy5fbWFpbkZyYW1lVHJlZUVsZW1l
bnQsIDApOwogCi0gICAgICAgICAgICAvLyBTZWxlY3QgYnkgZGVmYXVsdC4gQWxsb3cgb25zZWxl
Y3QgaWYgd2UgYXJlbid0IHNob3dpbmcgYSBjb250ZW50IHZpZXcuCi0gICAgICAgICAgICBpZiAo
IXRoaXMuX3Jlc291cmNlc0NvbnRlbnRUcmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50KQot
ICAgICAgICAgICAgICAgIHRoaXMuX21haW5GcmFtZVRyZWVFbGVtZW50LnJldmVhbEFuZFNlbGVj
dCh0cnVlLCBmYWxzZSwgISFXZWJJbnNwZWN0b3IuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRl
bnRWaWV3KTsKLQotICAgICAgICAgICAgaWYgKHRoaXMuX2ZyYW1lSWRlbnRpZmllclRvU2hvd1Nv
dXJjZUNvZGVXaGVuQXZhaWxhYmxlKQotICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NvdXJjZUNv
ZGVGb3JGcmFtZSh0aGlzLl9mcmFtZUlkZW50aWZpZXJUb1Nob3dTb3VyY2VDb2RlV2hlbkF2YWls
YWJsZSwgdHJ1ZSk7CisgICAgICAgICAgICAvLyBTZWxlY3QgYSB0cmVlIGVsZW1lbnQgYnkgZGVm
YXVsdC4gQWxsb3cgb25zZWxlY3QgaWYgd2UgYXJlbid0IHNob3dpbmcgYSBjb250ZW50IHZpZXcu
CisgICAgICAgICAgICBpZiAoIXRoaXMuX3Jlc291cmNlc0NvbnRlbnRUcmVlT3V0bGluZS5zZWxl
Y3RlZFRyZWVFbGVtZW50KSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRDb250ZW50Vmll
dyA9IHRoaXMuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3OworICAgICAgICAgICAg
ICAgIHZhciB0cmVlRWxlbWVudCA9IGN1cnJlbnRDb250ZW50VmlldyA/IHRoaXMudHJlZUVsZW1l
bnRGb3JSZXByZXNlbnRlZE9iamVjdChjdXJyZW50Q29udGVudFZpZXcucmVwcmVzZW50ZWRPYmpl
Y3QpIDogbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAoIXRyZWVFbGVtZW50KQorICAgICAgICAg
ICAgICAgICAgICB0cmVlRWxlbWVudCA9IHRoaXMuX21haW5GcmFtZVRyZWVFbGVtZW50OworICAg
ICAgICAgICAgICAgIHRyZWVFbGVtZW50LnJldmVhbEFuZFNlbGVjdCh0cnVlLCBmYWxzZSwgISFj
dXJyZW50Q29udGVudFZpZXcsIHRydWUpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAg
ICAgICAgLy8gVGhlIG5hdmlnYXRpb24gcGF0aCBuZWVkcyB1cGRhdGUgd2hlbiB0aGUgbWFpbiBm
cmFtZSBjaGFuZ2VzLCBzaW5jZSBhbGwgcmVzb3VyY2VzIGFyZSB1bmRlciB0aGUgbWFpbiBmcmFt
ZS4KKyAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci51cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9y
Q3VycmVudENvbnRlbnRWaWV3KCk7CisKICAgICAgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IHRo
ZSBmaXJzdCB0aW1lIHRoZSBtYWluIGZyYW1lIGNoYW5nZXMuCiAgICAgICAgIGlmICghdGhpcy5f
d2FpdGluZ0ZvckluaXRpYWxNYWluRnJhbWUpCiAgICAgICAgICAgICByZXR1cm47CkBAIC02MDgs
NyArNDk4LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsID0gY2xhc3MgUmVz
b3VyY2VTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgaWYgKCFuZXdGcmFt
ZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBkZWxldGUgdGhpcy5fd2FpdGluZ0Zv
ckluaXRpYWxNYWluRnJhbWU7CisgICAgICAgIHRoaXMuX3dhaXRpbmdGb3JJbml0aWFsTWFpbkZy
YW1lID0gZmFsc2U7CiAKICAgICAgICAgLy8gT25seSBpZiB0aGUgbGFzdCBwYWdlIHNlYXJjaGVk
IGlzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IHBhZ2UuCiAgICAgICAgIGlmICh0aGlzLl9sYXN0
U2VhcmNoZWRQYWdlU2V0dGluZy52YWx1ZSAhPT0gbmV3RnJhbWUudXJsLmhhc2gpCkBAIC02MjEs
MTYgKzUxMSwxMyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwgPSBjbGFzcyBS
ZXNvdXJjZVNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgIF9tYWluRnJhbWVNYWlu
UmVzb3VyY2VEaWRDaGFuZ2UoZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgd2FzU2hvd2luZ1Jl
c291cmNlU2lkZWJhciA9IHRoaXMuc2VsZWN0ZWQ7Ci0gICAgICAgIHZhciBjdXJyZW50Q29udGVu
dFZpZXcgPSBXZWJJbnNwZWN0b3IuY29udGVudEJyb3dzZXIuY3VycmVudENvbnRlbnRWaWV3Owor
ICAgICAgICB2YXIgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jb250ZW50QnJvd3Nlci5jdXJy
ZW50Q29udGVudFZpZXc7CiAgICAgICAgIHZhciB3YXNTaG93aW5nUmVzb3VyY2VDb250ZW50Vmll
dyA9IGN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNv
bnRlbnRWaWV3CiAgICAgICAgICAgICB8fCBjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VDbHVzdGVyQ29udGVudFZpZXcKICAgICAgICAgICAgIHx8IGN1
cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5GcmFtZUNvbnRlbnRWaWV3
CiAgICAgICAgICAgICB8fCBjdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0
b3IuU2NyaXB0Q29udGVudFZpZXc7CiAKLSAgICAgICAgLy8gQ2xvc2UgYWxsIHJlc291cmNlIGFu
ZCBmcmFtZSBjb250ZW50IHZpZXdzIHNpbmNlIHRoZSBtYWluIGZyYW1lIGhhcyBuYXZpZ2F0ZWQg
YW5kIGFsbCByZXNvdXJjZXMgYXJlIGNsZWFyZWQuCi0gICAgICAgIFdlYkluc3BlY3Rvci5jb250
ZW50QnJvd3Nlci5jb250ZW50Vmlld0NvbnRhaW5lci5jbG9zZUFsbENvbnRlbnRWaWV3c09mUHJv
dG90eXBlKFdlYkluc3BlY3Rvci5SZXNvdXJjZUNsdXN0ZXJDb250ZW50Vmlldyk7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5jb250ZW50QnJvd3Nlci5jb250ZW50Vmlld0NvbnRhaW5lci5jbG9zZUFs
bENvbnRlbnRWaWV3c09mUHJvdG90eXBlKFdlYkluc3BlY3Rvci5GcmFtZUNvbnRlbnRWaWV3KTsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLmNvbnRlbnRWaWV3Q29udGFpbmVy
LmNsb3NlQWxsQ29udGVudFZpZXdzT2ZQcm90b3R5cGUoV2ViSW5zcGVjdG9yLlNjcmlwdENvbnRl
bnRWaWV3KTsKKyAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5jb250ZW50Vmlld0NvbnRhaW5l
ci5jbG9zZUFsbENvbnRlbnRWaWV3cygpOwogCiAgICAgICAgIC8vIEJyZWFrIG91dCBvZiBzZWFy
Y2ggdHJlZSBvdXRsaW5lIGlmIHRoZXJlIHdhcyBhbiBhY3RpdmUgc2VhcmNoLgogICAgICAgICB0
aGlzLl9zaG93UmVzb3VyY2VzQ29udGVudFRyZWVPdXRsaW5lKCk7CkBAIC02MzksMTMgKzUyNiw3
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbCA9IGNsYXNzIFJlc291cmNlU2lk
ZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIHsKICAgICAgICAgICAgIC8vIFNo
b3cgdGhlIG1haW4gZnJhbWUgc2luY2UgdGhlcmUgaXMgbm8gY29udGVudCB2aWV3IHNob3dpbmcg
b3Igd2Ugd2VyZSBzaG93aW5nIGEgcmVzb3VyY2UgYmVmb3JlLgogICAgICAgICAgICAgLy8gQ29v
a2llIHJlc3RvcmF0aW9uIHdpbGwgYXR0ZW1wdCB0byByZS1zZWxlY3QgdGhlIHJlc291cmNlIHdl
IHdlcmUgc2hvd2luZy4KLSAgICAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93
c2VyLmN1cnJlbnRDb250ZW50VmlldyB8fCB3YXNTaG93aW5nUmVzb3VyY2VDb250ZW50Vmlldykg
ewotICAgICAgICAgICAgICAgIC8vIElmIHdlIHdlcmUgc2hvd2luZyBhIHJlc291cmNlIGluc2lk
ZSBvZiB0aGUgUmVzb3VyY2VTaWRlYmFyLCB3ZSBzaG91bGQKLSAgICAgICAgICAgICAgICAvLyBy
ZS1zaG93IHRoZSByZXNvdXJjZSBpbnNpZGUgb2YgdGhlIHJlc291cmNlIHNpZGViYXIuIEl0IGlz
IHBvc3NpYmxlIHRoYXQKLSAgICAgICAgICAgICAgICAvLyB0aGUgc2lkZWJhciBwYW5lbCBjb3Vs
ZCBoYXZlIHN3aXRjaGVkIHRvIGFub3RoZXIgdmlldyBpbiB0aGUgYmFjay1mb3J3YXJkIGxpc3Qu
Ci0gICAgICAgICAgICAgICAgaWYgKHdhc1Nob3dpbmdSZXNvdXJjZVNpZGViYXIpCi0gICAgICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5uYXZpZ2F0aW9uU2lkZWJhci5zZWxlY3RlZFNpZGVi
YXJQYW5lbCA9IHRoaXM7Ci0KKyAgICAgICAgICAgIGlmICghdGhpcy5jb250ZW50QnJvd3Nlci5j
dXJyZW50Q29udGVudFZpZXcgfHwgd2FzU2hvd2luZ1Jlc291cmNlQ29udGVudFZpZXcpIHsKICAg
ICAgICAgICAgICAgICAvLyBOT1RFOiBUaGlzIHNlbGVjdGlvbiwgZHVyaW5nIHByb3Zpc2lvbmFs
IGxvYWRpbmcsIHdvbid0IGJlIHNhdmVkLCBzbyBpdCBpcwogICAgICAgICAgICAgICAgIC8vIHNh
ZmUgdG8gZG8gYW5kIG5vdC1jbG9iYmVyIGNvb2tpZSByZXN0b3JhdGlvbi4KICAgICAgICAgICAg
ICAgICB0aGlzLl9tYWluRnJhbWVUcmVlRWxlbWVudC5yZXZlYWxBbmRTZWxlY3QodHJ1ZSwgZmFs
c2UpOwpAQCAtNjU3LDE4ICs1MzgsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFu
ZWwgPSBjbGFzcyBSZXNvdXJjZVNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgICAg
ICBzZXRUaW1lb3V0KGRlbGF5ZWRXb3JrLmJpbmQodGhpcyksIDApOwogICAgIH0KIAotICAgIF9m
cmFtZVdhc0FkZGVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9mcmFtZUlkZW50
aWZpZXJUb1Nob3dTb3VyY2VDb2RlV2hlbkF2YWlsYWJsZSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICB2YXIgZnJhbWUgPSBldmVudC5kYXRhLmZyYW1lOwotICAgICAgICBpZiAoZnJh
bWUuaWQgIT09IHRoaXMuX2ZyYW1lSWRlbnRpZmllclRvU2hvd1NvdXJjZUNvZGVXaGVuQXZhaWxh
YmxlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuc2hvd1NvdXJjZUNvZGVG
b3JGcmFtZShmcmFtZS5pZCwgdHJ1ZSk7Ci0gICAgfQotCiAgICAgX3NjcmlwdFdhc0FkZGVkKGV2
ZW50KQogICAgIHsKICAgICAgICAgdmFyIHNjcmlwdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwpAQCAt
Nzc2LDcgKzY0NSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbCA9IGNsYXNz
IFJlc291cmNlU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICB0cmVl
RWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5EYXRhYmFzZVRyZWVFbGVtZW50IHx8IHRy
ZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRy
ZWVFbGVtZW50IHx8CiAgICAgICAgICAgICB0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5Db250ZW50Rmxvd1RyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2Vi
SW5zcGVjdG9yLkluZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlVHJlZUVsZW1lbnQgfHwKICAgICAg
ICAgICAgIHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkluZGV4ZWREYXRhYmFz
ZU9iamVjdFN0b3JlSW5kZXhUcmVlRWxlbWVudCkgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0KHRyZWVF
bGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93
UmVwcmVzZW50ZWRPYmplY3QodHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTc4NSwxNCArNjU0LDkgQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlU2lkZWJhclBhbmVsID0gY2xhc3MgUmVzb3VyY2VTaWRlYmFyUGFuZWwgZXh0
ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAodHJlZUVs
ZW1lbnQucmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRE9NU2VhcmNo
TWF0Y2hPYmplY3QpCi0gICAgICAgICAgICB0aGlzLnNob3dNYWluRnJhbWVET01UcmVlKHRyZWVF
bGVtZW50LnJlcHJlc2VudGVkT2JqZWN0LmRvbU5vZGUsIHRydWUpOworICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLnNob3dNYWluRnJhbWVET01UcmVlKHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2Jq
ZWN0LmRvbU5vZGUsIHRydWUpOwogICAgICAgICBlbHNlIGlmICh0cmVlRWxlbWVudC5yZXByZXNl
bnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlU2VhcmNoTWF0Y2hP
YmplY3QpCi0gICAgICAgICAgICB0aGlzLnNob3dPcmlnaW5hbE9yRm9ybWF0dGVkU291cmNlQ29k
ZVRleHRSYW5nZSh0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdC5zb3VyY2VDb2RlVGV4dFJh
bmdlKTsKLSAgICB9Ci0KLSAgICBfZG9tTm9kZVdhc0luc3BlY3RlZChldmVudCkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuc2hvd01haW5GcmFtZURPTVRyZWUoZXZlbnQuZGF0YS5ub2RlKTsKKyAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5zaG93T3JpZ2luYWxPckZvcm1hdHRlZFNvdXJjZUNvZGVUZXh0
UmFuZ2UodHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Quc291cmNlQ29kZVRleHRSYW5nZSk7
CiAgICAgfQogCiAgICAgX2RvbVN0b3JhZ2VPYmplY3RXYXNBZGRlZChldmVudCkKQEAgLTkyOCwx
MSArNzkyLDExIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbCA9IGNsYXNzIFJl
c291cmNlU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgX3N0b3JhZ2VDbGVhcmVk
KGV2ZW50KQogICAgIHsKICAgICAgICAgLy8gQ2xvc2UgYWxsIERPTSBhbmQgY29va2llIHN0b3Jh
Z2UgY29udGVudCB2aWV3cyBzaW5jZSB0aGUgbWFpbiBmcmFtZSBoYXMgbmF2aWdhdGVkIGFuZCBh
bGwgc3RvcmFnZXMgYXJlIGNsZWFyZWQuCi0gICAgICAgIFdlYkluc3BlY3Rvci5jb250ZW50QnJv
d3Nlci5jb250ZW50Vmlld0NvbnRhaW5lci5jbG9zZUFsbENvbnRlbnRWaWV3c09mUHJvdG90eXBl
KFdlYkluc3BlY3Rvci5Db29raWVTdG9yYWdlQ29udGVudFZpZXcpOwotICAgICAgICBXZWJJbnNw
ZWN0b3IuY29udGVudEJyb3dzZXIuY29udGVudFZpZXdDb250YWluZXIuY2xvc2VBbGxDb250ZW50
Vmlld3NPZlByb3RvdHlwZShXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3KTsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLmNvbnRlbnRWaWV3Q29udGFpbmVyLmNs
b3NlQWxsQ29udGVudFZpZXdzT2ZQcm90b3R5cGUoV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVD
b250ZW50Vmlldyk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jb250ZW50QnJvd3Nlci5jb250ZW50
Vmlld0NvbnRhaW5lci5jbG9zZUFsbENvbnRlbnRWaWV3c09mUHJvdG90eXBlKFdlYkluc3BlY3Rv
ci5EYXRhYmFzZUNvbnRlbnRWaWV3KTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93
c2VyLmNvbnRlbnRWaWV3Q29udGFpbmVyLmNsb3NlQWxsQ29udGVudFZpZXdzT2ZQcm90b3R5cGUo
V2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3KTsKKyAgICAgICAg
dGhpcy5jb250ZW50QnJvd3Nlci5jb250ZW50Vmlld0NvbnRhaW5lci5jbG9zZUFsbENvbnRlbnRW
aWV3c09mUHJvdG90eXBlKFdlYkluc3BlY3Rvci5Db29raWVTdG9yYWdlQ29udGVudFZpZXcpOwor
ICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLmNvbnRlbnRWaWV3Q29udGFpbmVyLmNsb3NlQWxs
Q29udGVudFZpZXdzT2ZQcm90b3R5cGUoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50Vmll
dyk7CisgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIuY29udGVudFZpZXdDb250YWluZXIuY2xv
c2VBbGxDb250ZW50Vmlld3NPZlByb3RvdHlwZShXZWJJbnNwZWN0b3IuRGF0YWJhc2VUYWJsZUNv
bnRlbnRWaWV3KTsKKyAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5jb250ZW50Vmlld0NvbnRh
aW5lci5jbG9zZUFsbENvbnRlbnRWaWV3c09mUHJvdG90eXBlKFdlYkluc3BlY3Rvci5EYXRhYmFz
ZUNvbnRlbnRWaWV3KTsKKyAgICAgICAgdGhpcy5jb250ZW50QnJvd3Nlci5jb250ZW50Vmlld0Nv
bnRhaW5lci5jbG9zZUFsbENvbnRlbnRWaWV3c09mUHJvdG90eXBlKFdlYkluc3BlY3Rvci5BcHBs
aWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldyk7CiAKICAgICAgICAgaWYgKHRoaXMuX2xvY2Fs
U3RvcmFnZVJvb3RUcmVlRWxlbWVudCAmJiB0aGlzLl9sb2NhbFN0b3JhZ2VSb290VHJlZUVsZW1l
bnQucGFyZW50KQogICAgICAgICAgICAgdGhpcy5fbG9jYWxTdG9yYWdlUm9vdFRyZWVFbGVtZW50
LnBhcmVudC5yZW1vdmVDaGlsZCh0aGlzLl9sb2NhbFN0b3JhZ2VSb290VHJlZUVsZW1lbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVz
b3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKaW5kZXggODM5
MzM1NzFmYjNkNTA4NzExZjViNGY2N2EzYjY4MjFkZjEyOWQzNy4uNDc5OGVhNDY2ZTg3OWFlZGZj
ZjAxYWI4YWYwOTdlYzY2MzA1YzViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZS5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVs
aW5lRGF0YUdyaWROb2RlLmpzCkBAIC0xODIsNyArMTgyLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewogCiAgICAgX2dvVG9SZXNvdXJj
ZTogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VT
aWRlYmFyUGFuZWwuc2hvd1NvdXJjZUNvZGUodGhpcy5fcmVzb3VyY2UpOworICAgICAgICBXZWJJ
bnNwZWN0b3Iuc2hvd1NvdXJjZUNvZGUodGhpcy5fcmVzb3VyY2UpOwogICAgIH0sCiAKICAgICBf
dGltZWxpbmVSZWNvcmRVcGRhdGVkOiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdFRpbWVsaW5lVmlldy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdFRpbWVs
aW5lVmlldy5qcwppbmRleCBhNDdlYWYxMzY5Y2U4ZWVkNjY0MzU0YzFmOGNiMjYwNGUwNzZlODM5
Li42NzViYTBhN2U0ZDAwODFiMTA5ZDZiZTNmN2MzZWMxODFjNDk1Yzg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRUaW1lbGluZVZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2Ny
aXB0VGltZWxpbmVWaWV3LmpzCkBAIC0yNzYsNyArMjc2LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dFRpbWVsaW5lVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VTaWRlYmFyUGFuZWwuc2hvd09yaWdp
bmFsT3JGb3JtYXR0ZWRTb3VyY2VDb2RlTG9jYXRpb24oc291cmNlQ29kZUxvY2F0aW9uKTsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLnNob3dPcmlnaW5hbE9yRm9ybWF0dGVkU291cmNlQ29kZUxvY2F0
aW9uKHNvdXJjZUNvZGVMb2NhdGlvbik7CiAgICAgICAgIHRoaXMuX3VwZGF0ZVRyZWVFbGVtZW50
V2l0aENsb3NlQnV0dG9uKHRyZWVFbGVtZW50KTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRv
ci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNv
ZGVUZXh0RWRpdG9yLmpzCmluZGV4IGZiZjY2NGRiYzczOTBhZWI2Y2EwNWQyOWU4MTQ0ZjE3Nzc1
Y2MxZmUuLjIzOGI5MGQxNDZkNTJkZWVlMzMxOTdmMzg1ZGQyOTZhZjM0YzBiNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNvZGVU
ZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzCkBAIC0xMzI1LDkgKzEzMjUsOSBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IgPSBjbGFzcyBTb3VyY2VDb2RlVGV4dEVkaXRvciBl
eHRlbmRzIFdlYkluc3BlYwogCiAgICAgICAgIHZhciBzb3VyY2VDb2RlTG9jYXRpb24gPSB0aGlz
Ll9zb3VyY2VDb2RlTG9jYXRpb25Gb3JFZGl0b3JQb3NpdGlvbih0aGlzLnRva2VuVHJhY2tpbmdD
b250cm9sbGVyLmNhbmRpZGF0ZS5ob3ZlcmVkVG9rZW5SYW5nZS5zdGFydCk7CiAgICAgICAgIGlm
ICh0aGlzLnNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU291cmNlTWFwUmVzb3Vy
Y2UpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VTaWRlYmFyUGFuZWwuc2hvd09y
aWdpbmFsT3JGb3JtYXR0ZWRTb3VyY2VDb2RlTG9jYXRpb24oc291cmNlQ29kZUxvY2F0aW9uKTsK
KyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93T3JpZ2luYWxPckZvcm1hdHRlZFNvdXJjZUNv
ZGVMb2NhdGlvbihzb3VyY2VDb2RlTG9jYXRpb24pOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBXZWJJbnNwZWN0b3IucmVzb3VyY2VTaWRlYmFyUGFuZWwuc2hvd1NvdXJjZUNvZGVMb2NhdGlv
bihzb3VyY2VDb2RlTG9jYXRpb24pOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dTb3Vy
Y2VDb2RlTG9jYXRpb24oc291cmNlQ29kZUxvY2F0aW9uKTsKICAgICB9CiAKICAgICB0b2tlblRy
YWNraW5nQ29udHJvbGxlck5ld0hpZ2hsaWdodENhbmRpZGF0ZSh0b2tlblRyYWNraW5nQ29udHJv
bGxlciwgY2FuZGlkYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVGltZWxpbmVEYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lRGF0YUdyaWQuanMKaW5kZXggMGRiYzM3ZWM3
N2IwNTRhYWVhNjkwYTU3MDQzYjViYmEwODkxYTkxOS4uOGZiNmYyNjA1ZjczMTc1YTBhZmM0MDZm
MThkMzMxYTBmMzE5NDg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVGltZWxpbmVEYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZURhdGFHcmlkLmpzCkBAIC00ODcsNiAr
NDg3LDYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGF0YUdyaWQucHJvdG90eXBlID0gewogICAg
ICAgICBpZiAoIWNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb24pCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlU2lkZWJhclBhbmVsLnNob3dTb3Vy
Y2VDb2RlTG9jYXRpb24oY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbik7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5zaG93U291cmNlQ29kZUxvY2F0aW9uKGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9j
YXRpb24pOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lU2lkZWJhclBhbmVsLmpzCmluZGV4
IGZlMTY3NmVlYTYyN2FiOWFlODc2ODE5OTM1M2Q1NmJlZWJiZWYzMDAuLjE4OTEzYzQzZjEyNzQz
YTY1YmFjOTI5ZjVmNWUzYjg4OGQ3MDY3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lU2lkZWJhclBhbmVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lU2lkZWJhclBh
bmVsLmpzCkBAIC0yNSwxMCArMjUsMTIgQEAKIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lU2lkZWJh
clBhbmVsID0gY2xhc3MgVGltZWxpbmVTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
TmF2aWdhdGlvblNpZGViYXJQYW5lbAogewotICAgIGNvbnN0cnVjdG9yKCkKKyAgICBjb25zdHJ1
Y3Rvcihjb250ZW50QnJvd3NlcikKICAgICB7CiAgICAgICAgIHN1cGVyKCJ0aW1lbGluZSIsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiVGltZWxpbmVzIikpOwogCisgICAgICAgIHRoaXMuY29udGVu
dEJyb3dzZXIgPSBjb250ZW50QnJvd3NlcjsKKwogICAgICAgICB0aGlzLl90aW1lbGluZUV2ZW50
c1RpdGxlQmFyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAg
ICB0aGlzLl90aW1lbGluZUV2ZW50c1RpdGxlQmFyRWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYklu
c3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbC5UaXRsZUJhclN0eWxlQ2xhc3MpOwogICAgICAg
ICB0aGlzLl90aW1lbGluZUV2ZW50c1RpdGxlQmFyRWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYklu
c3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbC5UaW1lbGluZUV2ZW50c1RpdGxlQmFyU3R5bGVD
bGFzcyk7CkBAIC0xMjAsNyArMTIyLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lU2lkZWJhclBh
bmVsID0gY2xhc3MgVGltZWxpbmVTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAg
ICAgV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU1hbmFnZXIuRXZlbnQuUmVjb3JkaW5nQ3JlYXRlZCwgdGhpcy5fcmVjb3Jk
aW5nQ3JlYXRlZCwgdGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNYW5hZ2VyLkV2ZW50LlJlY29y
ZGluZ0xvYWRlZCwgdGhpcy5fcmVjb3JkaW5nTG9hZGVkLCB0aGlzKTsKIAotICAgICAgICBXZWJJ
bnNwZWN0b3IuY29udGVudEJyb3dzZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29u
dGVudEJyb3dzZXIuRXZlbnQuQ3VycmVudENvbnRlbnRWaWV3RGlkQ2hhbmdlLCB0aGlzLl9jb250
ZW50QnJvd3NlckN1cnJlbnRDb250ZW50Vmlld0RpZENoYW5nZSwgdGhpcyk7CisgICAgICAgIHRo
aXMuY29udGVudEJyb3dzZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudEJy
b3dzZXIuRXZlbnQuQ3VycmVudENvbnRlbnRWaWV3RGlkQ2hhbmdlLCB0aGlzLl9jb250ZW50QnJv
d3NlckN1cnJlbnRDb250ZW50Vmlld0RpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgIFdlYkluc3Bl
Y3Rvci50aW1lbGluZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxp
bmVNYW5hZ2VyLkV2ZW50LkNhcHR1cmluZ1N0YXJ0ZWQsIHRoaXMuX2NhcHR1cmluZ1N0YXJ0ZWQs
IHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5FdmVudC5DYXB0dXJpbmdTdG9wcGVk
LCB0aGlzLl9jYXB0dXJpbmdTdG9wcGVkLCB0aGlzKTsKICAgICB9CkBAIC0xMzIsNyArMTM0LDcg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lU2lkZWJhclBhbmVsID0gY2xhc3MgVGltZWxpbmVTaWRl
YmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgc3VwZXIuc2hvd24oKTsKIAogICAg
ICAgICBpZiAodGhpcy5fZGlzcGxheWVkQ29udGVudFZpZXcpCi0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX2Rpc3BsYXllZENvbnRl
bnRWaWV3KTsKKyAgICAgICAgICAgIHRoaXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3
KHRoaXMuX2Rpc3BsYXllZENvbnRlbnRWaWV3KTsKICAgICB9CiAKICAgICBzaG93RGVmYXVsdENv
bnRlbnRWaWV3KCkKQEAgLTIzNiw3ICsyMzgsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVTaWRl
YmFyUGFuZWwgPSBjbGFzcyBUaW1lbGluZVNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwog
ICAgICAgICAgICAgdGhpcy5fdGltZWxpbmVzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVu
dC5kZXNlbGVjdCgpOwogCiAgICAgICAgIHRoaXMuX2Rpc3BsYXllZENvbnRlbnRWaWV3LnNob3dP
dmVydmlld1RpbWVsaW5lVmlldygpOwotICAgICAgICBXZWJJbnNwZWN0b3IuY29udGVudEJyb3dz
ZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX2Rpc3BsYXllZENvbnRlbnRWaWV3KTsKKyAgICAgICAg
dGhpcy5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fZGlzcGxheWVkQ29udGVu
dFZpZXcpOwogICAgIH0KIAogICAgIHNob3dUaW1lbGluZVZpZXdGb3JUaW1lbGluZSh0aW1lbGlu
ZSkKQEAgLTI4MSw3ICsyODMsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVTaWRlYmFyUGFuZWwg
PSBjbGFzcyBUaW1lbGluZVNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgIHsKICAg
ICAgICAgY29uc29sZS5hc3NlcnQoY29va2llKTsKIAotICAgICAgICBjb29raWVbV2ViSW5zcGVj
dG9yLlRpbWVsaW5lU2lkZWJhclBhbmVsLlNob3dpbmdUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRW
aWV3Q29va2llS2V5XSA9IFdlYkluc3BlY3Rvci5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVu
dFZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmll
dzsKKyAgICAgICAgY29va2llW1dlYkluc3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbC5TaG93
aW5nVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlld0Nvb2tpZUtleV0gPSB0aGlzLmNvbnRlbnRC
cm93c2VyLmN1cnJlbnRDb250ZW50VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVJlY29yZGluZ0NvbnRlbnRWaWV3OwogCiAgICAgICAgIHZhciBzZWxlY3RlZFRyZWVFbGVtZW50
ID0gdGhpcy5fdGltZWxpbmVzVHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudDsKICAgICAg
ICAgaWYgKHNlbGVjdGVkVHJlZUVsZW1lbnQpCkBAIC0zNTMsMTIgKzM1NSwxMiBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVTaWRlYmFyUGFuZWwgPSBjbGFzcyBUaW1lbGluZVNpZGViYXJQYW5lbCBl
eHRlbmRzIFdlYkluc3BlYwogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9kaXNwbGF5ZWRS
ZWNvcmRpbmcudGltZWxpbmVzLmdldCh0aW1lbGluZS50eXBlKSA9PT0gdGltZWxpbmUsIHRpbWVs
aW5lKTsKIAogICAgICAgICB0aGlzLl9kaXNwbGF5ZWRDb250ZW50Vmlldy5zaG93VGltZWxpbmVW
aWV3Rm9yVGltZWxpbmUodGltZWxpbmUpOwotICAgICAgICBXZWJJbnNwZWN0b3IuY29udGVudEJy
b3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX2Rpc3BsYXllZENvbnRlbnRWaWV3KTsKKyAgICAg
ICAgdGhpcy5jb250ZW50QnJvd3Nlci5zaG93Q29udGVudFZpZXcodGhpcy5fZGlzcGxheWVkQ29u
dGVudFZpZXcpOwogICAgIH0KIAogICAgIF9jb250ZW50QnJvd3NlckN1cnJlbnRDb250ZW50Vmll
d0RpZENoYW5nZShldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBkaWRTaG93VGltZWxpbmVSZWNv
cmRpbmdDb250ZW50VmlldyA9IFdlYkluc3BlY3Rvci5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29u
dGVudFZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50
VmlldzsKKyAgICAgICAgdmFyIGRpZFNob3dUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0g
dGhpcy5jb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXcgaW5zdGFuY2VvZiBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldzsKICAgICAgICAgdGhpcy5lbGVtZW50
LmNsYXNzTGlzdC50b2dnbGUoV2ViSW5zcGVjdG9yLlRpbWVsaW5lU2lkZWJhclBhbmVsLlRpbWVs
aW5lUmVjb3JkaW5nQ29udGVudFZpZXdTaG93aW5nU3R5bGVDbGFzcywgZGlkU2hvd1RpbWVsaW5l
UmVjb3JkaW5nQ29udGVudFZpZXcpOwogICAgIH0KIApAQCAtNDIwLDkgKzQyMiw5IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZVNpZGViYXJQYW5lbCA9IGNsYXNzIFRpbWVsaW5lU2lkZWJhclBhbmVs
IGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIGZvciAodmFyIHRpbWVsaW5lIG9mIHJlY29yZGlu
Zy50aW1lbGluZXMudmFsdWVzKCkpCiAgICAgICAgICAgICB0aGlzLl90aW1lbGluZUFkZGVkKHRp
bWVsaW5lKTsKIAotICAgICAgICB0aGlzLl9kaXNwbGF5ZWRDb250ZW50VmlldyA9IFdlYkluc3Bl
Y3Rvci5jb250ZW50QnJvd3Nlci5jb250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2JqZWN0KHRoaXMu
X2Rpc3BsYXllZFJlY29yZGluZywgZmFsc2UsIHt0aW1lbGluZVNpZGViYXJQYW5lbDogdGhpc30p
OworICAgICAgICB0aGlzLl9kaXNwbGF5ZWRDb250ZW50VmlldyA9IHRoaXMuY29udGVudEJyb3dz
ZXIuY29udGVudFZpZXdGb3JSZXByZXNlbnRlZE9iamVjdCh0aGlzLl9kaXNwbGF5ZWRSZWNvcmRp
bmcsIGZhbHNlLCB7dGltZWxpbmVTaWRlYmFyUGFuZWw6IHRoaXN9KTsKICAgICAgICAgaWYgKHRo
aXMuc2VsZWN0ZWQpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29udGVudEJyb3dzZXIuc2hv
d0NvbnRlbnRWaWV3KHRoaXMuX2Rpc3BsYXllZENvbnRlbnRWaWV3KTsKKyAgICAgICAgICAgIHRo
aXMuY29udGVudEJyb3dzZXIuc2hvd0NvbnRlbnRWaWV3KHRoaXMuX2Rpc3BsYXllZENvbnRlbnRW
aWV3KTsKICAgICB9CiAKICAgICBfcmVjb3JkaW5nTG9hZGVkKGV2ZW50KQo=
</data>
<flag name="review"
          id="276249"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="276250"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>