<?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>200594</bug_id>
          
          <creation_ts>2019-08-09 15:42:52 -0700</creation_ts>
          <short_desc>Web Inspector: Better organize manager / observer API groups</short_desc>
          <delta_ts>2019-08-12 11:50: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>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1560083</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-09 15:42:52 -0700</bug_when>
    <thetext>Better organize manager / observer API groups

This moves us a bit closer to our preferred grouping:

    class FooManager extends WI.Object
    {
        constructor()

        // Agent
        
            domains

        // Target
        
            initializeTarget

        // Static
        
            supportsFooBar

        // Public
        
            add
            remove

        // FooObserver
        
            callbacks

        // Private
        
            internal API
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560085</commentid>
    <comment_count>1</comment_count>
      <attachid>375970</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-09 15:44:38 -0700</bug_when>
    <thetext>Created attachment 375970
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560093</commentid>
    <comment_count>2</comment_count>
      <attachid>375970</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-09 15:50:45 -0700</bug_when>
    <thetext>Comment on attachment 375970
[PATCH] Proposed Fix

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

r=me, 1000% YES

&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:570
&gt; -    reset()
&gt; +    globalObjectCleared()

I&apos;ve never been happier with a change in all my life 😍

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:382
&gt; +    // ConsoleObserver

What about `// ScriptProfilerObserver`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560486</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-12 11:42:19 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:382
&gt; &gt; +    // ConsoleObserver
&gt; 
&gt; What about `// ScriptProfilerObserver`?

Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560493</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-12 11:49:08 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/248536/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560495</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-12 11:50:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/54219068&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375970</attachid>
            <date>2019-08-09 15:44:38 -0700</date>
            <delta_ts>2019-08-09 15:50:45 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>cleanup-1.patch</filename>
            <type>text/plain</type>
            <size>30566</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGUwNGFhYWNmODFmLi40Mzg3MTZkYTQwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMDgtMDkgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBCZXR0ZXIgb3JnYW5pemUgbWFuYWdlciAvIG9ic2VydmVyIEFQSSBncm91cHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDU5NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanM6CisgICAgICAgIChXSS5EZWJ1Z2dlck1hbmFn
ZXIucHJvdG90eXBlLmdsb2JhbE9iamVjdENsZWFyZWQpOgorICAgICAgICAoV0kuRGVidWdnZXJN
YW5hZ2VyLnByb3RvdHlwZS5yZXNldCk6IERlbGV0ZWQuCisgICAgICAgIFJlbmFtZWQuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0RlYnVnZ2VyT2JzZXJ2ZXIuanM6CisgICAg
ICAgIChXSS5EZWJ1Z2dlck9ic2VydmVyLnByb3RvdHlwZS5nbG9iYWxPYmplY3RDbGVhcmVkKToK
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ1NTTWFuYWdlci5qczoKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Db25zb2xlTWFuYWdlci5qczoKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanM6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01TdG9yYWdlTWFuYWdlci5qczoKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0xheWVyVHJlZU1hbmFnZXIuanM6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RhcmdldE1hbmFnZXIuanM6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9Xb3JrZXJNYW5hZ2VyLmpzOgorCiAyMDE5LTA4LTA5
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBTb3VyY2VzOiBpbmNyZWFzZSB0aGUgdmVydGljYWwgc3BhY2UgYWxsb2NhdGVkIHRvIHRo
ZSBjYWxsIHN0YWNrIHdoZW4gcGF1c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DU1NNYW5hZ2VyLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ1NTTWFuYWdlci5qcwppbmRleCAw
ODdkOWQ3N2JjMi4uZDhmM2RkZmNiMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NTU01hbmFnZXIuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ1NTTWFuYWdlci5qcwpAQCAt
NDAxLDEwICs0MDEsMzAgQEAgV0kuQ1NTTWFuYWdlciA9IGNsYXNzIENTU01hbmFnZXIgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5tZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZCgpOwogICAg
IH0KIAorICAgIGdldCBtb2RpZmllZFN0eWxlcygpCisgICAgeworICAgICAgICByZXR1cm4gQXJy
YXkuZnJvbSh0aGlzLl9tb2RpZmllZFN0eWxlcy52YWx1ZXMoKSk7CisgICAgfQorCisgICAgYWRk
TW9kaWZpZWRTdHlsZShzdHlsZSkKKyAgICB7CisgICAgICAgIHRoaXMuX21vZGlmaWVkU3R5bGVz
LnNldChzdHlsZS5zdHJpbmdJZCwgc3R5bGUpOworICAgIH0KKworICAgIGdldE1vZGlmaWVkU3R5
bGUoc3R5bGUpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fbW9kaWZpZWRTdHlsZXMuZ2V0
KHN0eWxlLnN0cmluZ0lkKTsKKyAgICB9CisKKyAgICByZW1vdmVNb2RpZmllZFN0eWxlKHN0eWxl
KQorICAgIHsKKyAgICAgICAgdGhpcy5fbW9kaWZpZWRTdHlsZXMuZGVsZXRlKHN0eWxlLnN0cmlu
Z0lkKTsKKyAgICB9CisKKyAgICAvLyBQYWdlT2JzZXJ2ZXIKKwogICAgIGRlZmF1bHRBcHBlYXJh
bmNlRGlkQ2hhbmdlKHByb3RvY29sTmFtZSkKICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9t
IFdJLlBhZ2VPYnNlcnZlci4KLQogICAgICAgICBsZXQgYXBwZWFyYW5jZSA9IG51bGw7CiAKICAg
ICAgICAgc3dpdGNoIChwcm90b2NvbE5hbWUpIHsKQEAgLTQyOCwzOSArNDQ4LDE2IEBAIFdJLkNT
U01hbmFnZXIgPSBjbGFzcyBDU1NNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNTU01hbmFnZXIuRXZlbnQuRGVmYXVsdEFw
cGVhcmFuY2VEaWRDaGFuZ2UsIHthcHBlYXJhbmNlfSk7CiAgICAgfQogCi0gICAgZ2V0IG1vZGlm
aWVkU3R5bGVzKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX21vZGlm
aWVkU3R5bGVzLnZhbHVlcygpKTsKLSAgICB9Ci0KLSAgICBhZGRNb2RpZmllZFN0eWxlKHN0eWxl
KQotICAgIHsKLSAgICAgICAgdGhpcy5fbW9kaWZpZWRTdHlsZXMuc2V0KHN0eWxlLnN0cmluZ0lk
LCBzdHlsZSk7Ci0gICAgfQotCi0gICAgZ2V0TW9kaWZpZWRTdHlsZShzdHlsZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9tb2RpZmllZFN0eWxlcy5nZXQoc3R5bGUuc3RyaW5nSWQpOwot
ICAgIH0KLQotICAgIHJlbW92ZU1vZGlmaWVkU3R5bGUoc3R5bGUpCi0gICAgewotICAgICAgICB0
aGlzLl9tb2RpZmllZFN0eWxlcy5kZWxldGUoc3R5bGUuc3RyaW5nSWQpOwotICAgIH0KLQotICAg
IC8vIFByb3RlY3RlZAorICAgIC8vIENTU09ic2VydmVyCiAKICAgICBtZWRpYVF1ZXJ5UmVzdWx0
Q2hhbmdlZCgpCiAgICAgewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5DU1NPYnNlcnZlci4K
LQogICAgICAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5fbm9kZVN0eWxlc01hcCkKICAgICAgICAg
ICAgIHRoaXMuX25vZGVTdHlsZXNNYXBba2V5XS5tZWRpYVF1ZXJ5UmVzdWx0RGlkQ2hhbmdlKCk7
CiAgICAgfQogCiAgICAgc3R5bGVTaGVldENoYW5nZWQoc3R5bGVTaGVldElkZW50aWZpZXIpCiAg
ICAgewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5DU1NPYnNlcnZlci4KICAgICAgICAgdmFy
IHN0eWxlU2hlZXQgPSB0aGlzLnN0eWxlU2hlZXRGb3JJZGVudGlmaWVyKHN0eWxlU2hlZXRJZGVu
dGlmaWVyKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoc3R5bGVTaGVldCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZh
c01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9DYW52YXNNYW5hZ2VyLmpzCmluZGV4IGZkMjYxM2QwN2ViLi4zOGI5ZjA4MmU3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
Q2FudmFzTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCkBAIC0xNTIsMTAgKzE1MiwxMCBAQCBXSS5D
YW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQudmFs
dWUgPSBjb3VudDsKICAgICB9CiAKKyAgICAvLyBDYW52YXNPYnNlcnZlcgorCiAgICAgY2FudmFz
QWRkZWQoY2FudmFzUGF5bG9hZCkKICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLkNh
bnZhc09ic2VydmVyLgotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9jYW52YXNJZGVu
dGlmaWVyTWFwLmhhcyhjYW52YXNQYXlsb2FkLmNhbnZhc0lkKSwgYENhbnZhcyBhbHJlYWR5IGV4
aXN0cyB3aXRoIGlkICR7Y2FudmFzUGF5bG9hZC5jYW52YXNJZH0uYCk7CiAKICAgICAgICAgbGV0
IGNhbnZhcyA9IFdJLkNhbnZhcy5mcm9tUGF5bG9hZChjYW52YXNQYXlsb2FkKTsKQEAgLTE2Niw4
ICsxNjYsNiBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogCiAgICAgY2FudmFzUmVtb3ZlZChjYW52YXNJZGVudGlmaWVyKQogICAgIHsK
LSAgICAgICAgLy8gQ2FsbGVkIGZyb20gV0kuQ2FudmFzT2JzZXJ2ZXIuCi0KICAgICAgICAgbGV0
IGNhbnZhcyA9IHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAudGFrZShjYW52YXNJZGVudGlmaWVy
KTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY2FudmFzKTsKICAgICAgICAgaWYgKCFjYW52YXMp
CkBAIC0xNzgsOCArMTc2LDYgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFn
ZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGNhbnZhc01lbW9yeUNoYW5nZWQoY2FudmFzSWRl
bnRpZmllciwgbWVtb3J5Q29zdCkKICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLkNh
bnZhc09ic2VydmVyLgotCiAgICAgICAgIGxldCBjYW52YXMgPSB0aGlzLl9jYW52YXNJZGVudGlm
aWVyTWFwLmdldChjYW52YXNJZGVudGlmaWVyKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY2Fu
dmFzKTsKICAgICAgICAgaWYgKCFjYW52YXMpCkBAIC0xOTAsOCArMTg2LDYgQEAgV0kuQ2FudmFz
TWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGNz
c0NhbnZhc0NsaWVudE5vZGVzQ2hhbmdlZChjYW52YXNJZGVudGlmaWVyKQogICAgIHsKLSAgICAg
ICAgLy8gQ2FsbGVkIGZyb20gV0kuQ2FudmFzT2JzZXJ2ZXIuCi0KICAgICAgICAgbGV0IGNhbnZh
cyA9IHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuZ2V0KGNhbnZhc0lkZW50aWZpZXIpOwogICAg
ICAgICBjb25zb2xlLmFzc2VydChjYW52YXMpOwogICAgICAgICBpZiAoIWNhbnZhcykKQEAgLTIw
Miw4ICsxOTYsNiBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRl
bmRzIFdJLk9iamVjdAogCiAgICAgcmVjb3JkaW5nU3RhcnRlZChjYW52YXNJZGVudGlmaWVyLCBp
bml0aWF0b3IpCiAgICAgewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5DYW52YXNPYnNlcnZl
ci4KLQogICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5fY2FudmFzSWRlbnRpZmllck1hcC5nZXQo
Y2FudmFzSWRlbnRpZmllcik7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNhbnZhcyk7CiAgICAg
ICAgIGlmICghY2FudmFzKQpAQCAtMjE0LDggKzIwNiw2IEBAIFdJLkNhbnZhc01hbmFnZXIgPSBj
bGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICByZWNvcmRpbmdQcm9n
cmVzcyhjYW52YXNJZGVudGlmaWVyLCBmcmFtZXNQYXlsb2FkLCBidWZmZXJVc2VkKQogICAgIHsK
LSAgICAgICAgLy8gQ2FsbGVkIGZyb20gV0kuQ2FudmFzT2JzZXJ2ZXIuCi0KICAgICAgICAgbGV0
IGNhbnZhcyA9IHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuZ2V0KGNhbnZhc0lkZW50aWZpZXIp
OwogICAgICAgICBjb25zb2xlLmFzc2VydChjYW52YXMpOwogICAgICAgICBpZiAoIWNhbnZhcykK
QEAgLTIyNiw4ICsyMTYsNiBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdl
ciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgcmVjb3JkaW5nRmluaXNoZWQoY2FudmFzSWRlbnRp
ZmllciwgcmVjb3JkaW5nUGF5bG9hZCkKICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJ
LkNhbnZhc09ic2VydmVyLgotCiAgICAgICAgIGxldCBjYW52YXMgPSB0aGlzLl9jYW52YXNJZGVu
dGlmaWVyTWFwLmdldChjYW52YXNJZGVudGlmaWVyKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQo
Y2FudmFzKTsKICAgICAgICAgaWYgKCFjYW52YXMpCkBAIC0yMzgsOCArMjI2LDYgQEAgV0kuQ2Fu
dmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAg
IGV4dGVuc2lvbkVuYWJsZWQoY2FudmFzSWRlbnRpZmllciwgZXh0ZW5zaW9uKQogICAgIHsKLSAg
ICAgICAgLy8gQ2FsbGVkIGZyb20gV0kuQ2FudmFzT2JzZXJ2ZXIuCi0KICAgICAgICAgbGV0IGNh
bnZhcyA9IHRoaXMuX2NhbnZhc0lkZW50aWZpZXJNYXAuZ2V0KGNhbnZhc0lkZW50aWZpZXIpOwog
ICAgICAgICBjb25zb2xlLmFzc2VydChjYW52YXMpOwogICAgICAgICBpZiAoIWNhbnZhcykKQEAg
LTI1MCw4ICsyMzYsNiBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogCiAgICAgcHJvZ3JhbUNyZWF0ZWQoY2FudmFzSWRlbnRpZmllciwg
cHJvZ3JhbUlkZW50aWZpZXIpCiAgICAgewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5DYW52
YXNPYnNlcnZlci4KLQogICAgICAgICBsZXQgY2FudmFzID0gdGhpcy5fY2FudmFzSWRlbnRpZmll
ck1hcC5nZXQoY2FudmFzSWRlbnRpZmllcik7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNhbnZh
cyk7CiAgICAgICAgIGlmICghY2FudmFzKQpAQCAtMjY3LDggKzI1MSw2IEBAIFdJLkNhbnZhc01h
bmFnZXIgPSBjbGFzcyBDYW52YXNNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBwcm9n
cmFtRGVsZXRlZChwcm9ncmFtSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBm
cm9tIFdJLkNhbnZhc09ic2VydmVyLgotCiAgICAgICAgIGxldCBwcm9ncmFtID0gdGhpcy5fc2hh
ZGVyUHJvZ3JhbUlkZW50aWZpZXJNYXAudGFrZShwcm9ncmFtSWRlbnRpZmllcik7CiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHByb2dyYW0pOwogICAgICAgICBpZiAoIXByb2dyYW0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Db25z
b2xlTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0NvbnNvbGVNYW5hZ2VyLmpzCmluZGV4IGMyZGFhMzA4NmEwLi4wMTBkMjQ4NmJkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvQ29uc29sZU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvQ29uc29sZU1hbmFnZXIuanMKQEAgLTg1LDEwICs4NSwxMCBAQCBX
SS5Db25zb2xlTWFuYWdlciA9IGNsYXNzIENvbnNvbGVNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIHRoaXMuX3JlbW90ZU9iamVjdHNUb1JlbGVhc2UuYWRkKHJlbW90ZU9iamVjdCk7
CiAgICAgfQogCisgICAgLy8gQ29uc29sZU9ic2VydmVyCisKICAgICBtZXNzYWdlV2FzQWRkZWQo
dGFyZ2V0LCBzb3VyY2UsIGxldmVsLCB0ZXh0LCB0eXBlLCB1cmwsIGxpbmUsIGNvbHVtbiwgcmVw
ZWF0Q291bnQsIHBhcmFtZXRlcnMsIHN0YWNrVHJhY2UsIHJlcXVlc3RJZCkKICAgICB7Ci0gICAg
ICAgIC8vIENhbGxlZCBmcm9tIFdJLkNvbnNvbGVPYnNlcnZlci4KLQogICAgICAgICAvLyBGSVhN
RTogR2V0IGEgcmVxdWVzdCBmcm9tIHJlcXVlc3QgSUQuCiAKICAgICAgICAgaWYgKHBhcmFtZXRl
cnMpCkBAIC0xMDgsOCArMTA4LDYgQEAgV0kuQ29uc29sZU1hbmFnZXIgPSBjbGFzcyBDb25zb2xl
TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgbWVzc2FnZXNDbGVhcmVkKCkKICAgICB7
Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLkNvbnNvbGVPYnNlcnZlci4KLQogICAgICAgICBp
ZiAodGhpcy5fcmVtb3RlT2JqZWN0c1RvUmVsZWFzZSkgewogICAgICAgICAgICAgZm9yIChsZXQg
cmVtb3RlT2JqZWN0IG9mIHRoaXMuX3JlbW90ZU9iamVjdHNUb1JlbGVhc2UpCiAgICAgICAgICAg
ICAgICAgcmVtb3RlT2JqZWN0LnJlbGVhc2UoKTsKQEAgLTEzNCwyNSArMTMyLDggQEAgV0kuQ29u
c29sZU1hbmFnZXIgPSBjbGFzcyBDb25zb2xlTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICB9CiAgICAgfQogCi0gICAgX2RlbGF5ZWRNZXNzYWdlc0NsZWFyZWQoKQotICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMuX2lzTmV3UGFnZU9yUmVsb2FkKSB7Ci0gICAgICAgICAgICB0aGlzLl9p
c05ld1BhZ2VPclJlbG9hZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBpZiAoIVdJLnNldHRpbmdz
LmNsZWFyTG9nT25OYXZpZ2F0ZS52YWx1ZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICB0aGlzLl9pc3N1ZXMgPSBbXTsKLQotICAgICAgICAvLyBBIGNvbnNv
bGUuY2xlYXIoKSBvciBjb21tYW5kIGxpbmUgY2xlYXIoKSBoYXBwZW5lZC4KLSAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ29uc29sZU1hbmFnZXIuRXZlbnQuQ2xlYXJl
ZCk7Ci0gICAgfQotCiAgICAgbWVzc2FnZVJlcGVhdENvdW50VXBkYXRlZChjb3VudCkKICAgICB7
Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLkNvbnNvbGVPYnNlcnZlci4KLQogICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db25zb2xlTWFuYWdlci5FdmVudC5QcmV2
aW91c01lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQsIHtjb3VudH0pOwogICAgIH0KIApAQCAtMTg4
LDYgKzE2OSwyMSBAQCBXSS5Db25zb2xlTWFuYWdlciA9IGNsYXNzIENvbnNvbGVNYW5hZ2VyIGV4
dGVuZHMgV0kuT2JqZWN0CiAKICAgICAvLyBQcml2YXRlCiAKKyAgICBfZGVsYXllZE1lc3NhZ2Vz
Q2xlYXJlZCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5faXNOZXdQYWdlT3JSZWxvYWQpIHsK
KyAgICAgICAgICAgIHRoaXMuX2lzTmV3UGFnZU9yUmVsb2FkID0gZmFsc2U7CisKKyAgICAgICAg
ICAgIGlmICghV0kuc2V0dGluZ3MuY2xlYXJMb2dPbk5hdmlnYXRlLnZhbHVlKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2lzc3VlcyA9IFtdOwor
CisgICAgICAgIC8vIEEgY29uc29sZS5jbGVhcigpIG9yIGNvbW1hbmQgbGluZSBjbGVhcigpIGhh
cHBlbmVkLgorICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5Db25zb2xl
TWFuYWdlci5FdmVudC5DbGVhcmVkKTsKKyAgICB9CisKICAgICBfbWFpblJlc291cmNlRGlkQ2hh
bmdlKGV2ZW50KQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoZXZlbnQudGFyZ2V0IGlu
c3RhbmNlb2YgV0kuRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKaW5kZXggOTM3OGU3
ZTk5ZTQuLmI5NzQ2MWRlYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKQEAgLTE0NSwx
MCArMTQ1LDEwIEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgICAgIHRoaXMuX2Rpc3BhdGNoV2hlbkRvY3VtZW50QXZhaWxhYmxlKERPTUFn
ZW50LnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZC5iaW5kKERPTUFnZW50LCBwYXRoKSwgY2FsbGJh
Y2spOwogICAgIH0KIAorICAgIC8vIERPTU9ic2VydmVyCisKICAgICBkaWRBZGRFdmVudExpc3Rl
bmVyKG5vZGVJZCkKICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLkRPTU9ic2VydmVy
LgotCiAgICAgICAgIGxldCBub2RlID0gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKICAgICAg
ICAgaWYgKCFub2RlKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTU4LDggKzE1OCw2IEBAIFdJ
LkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICB3
aWxsUmVtb3ZlRXZlbnRMaXN0ZW5lcihub2RlSWQpCiAgICAgewotICAgICAgICAvLyBDYWxsZWQg
ZnJvbSBXSS5ET01PYnNlcnZlci4KLQogICAgICAgICBsZXQgbm9kZSA9IHRoaXMuX2lkVG9ET01O
b2RlW25vZGVJZF07CiAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTE2OSw4ICsxNjcsNiBAQCBXSS5ET01NYW5hZ2VyID0gY2xhc3MgRE9NTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogCiAgICAgZGlkRmlyZUV2ZW50KG5vZGVJZCwgZXZlbnROYW1lLCB0aW1lc3Rh
bXAsIGRhdGEpCiAgICAgewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5ET01PYnNlcnZlci4K
LQogICAgICAgICBsZXQgbm9kZSA9IHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07CiAgICAgICAg
IGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE4MCw4ICsxNzYsNiBAQCBXSS5E
T01NYW5hZ2VyID0gY2xhc3MgRE9NTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgcG93
ZXJFZmZpY2llbnRQbGF5YmFja1N0YXRlQ2hhbmdlZChub2RlSWQsIHRpbWVzdGFtcCwgaXNQb3dl
ckVmZmljaWVudCkKICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLkRPTU9ic2VydmVy
LgotCiAgICAgICAgIGxldCBub2RlID0gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKICAgICAg
ICAgaWYgKCFub2RlKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NU3RvcmFnZU1hbmFnZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01T
dG9yYWdlTWFuYWdlci5qcwppbmRleCA4NDM0MGZhNWE3NS4uZTU3NDY2ZDhjNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTVN0
b3JhZ2VNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0RPTVN0b3JhZ2VNYW5hZ2VyLmpzCkBAIC0xNDAsMTAgKzE0MCwxMCBAQCBX
SS5ET01TdG9yYWdlTWFuYWdlciA9IGNsYXNzIERPTVN0b3JhZ2VNYW5hZ2VyIGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgICAgICAgICBkb21TdG9yYWdlLml0ZW1VcGRhdGVkKGtleSwgb2xkVmFsdWUs
IHZhbHVlKTsKICAgICB9CiAKKyAgICAvLyBJbnNwZWN0b3JPYnNlcnZlcgorCiAgICAgaW5zcGVj
dERPTVN0b3JhZ2UoaWQpCiAgICAgewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5JbnNwZWN0
b3JPYnNlcnZlci4KLQogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9lbmFibGVkKTsKIAog
ICAgICAgICB2YXIgZG9tU3RvcmFnZSA9IHRoaXMuX2RvbVN0b3JhZ2VGb3JJZGVudGlmaWVyKGlk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcwppbmRleCBmNTYwZDJmNmE3NC4u
ZDkzYThlZWFkM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKQEAgLTU0
OCwxMiArNTQ4LDEwIEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdl
ciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICByZXR1cm4gdGhpcy5fbmV4dEJyZWFrcG9pbnRB
Y3Rpb25JZGVudGlmaWVyKys7CiAgICAgfQogCi0gICAgLy8gUHJvdGVjdGVkIChDYWxsZWQgZnJv
bSBXSS5EZWJ1Z2dlck9ic2VydmVyKQorICAgIC8vIERlYnVnZ2VyT2JzZXJ2ZXIKIAogICAgIGJy
ZWFrcG9pbnRSZXNvbHZlZCh0YXJnZXQsIGJyZWFrcG9pbnRJZGVudGlmaWVyLCBsb2NhdGlvbikK
ICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLkRlYnVnZ2VyT2JzZXJ2ZXIuCi0KICAg
ICAgICAgbGV0IGJyZWFrcG9pbnQgPSB0aGlzLl9icmVha3BvaW50SWRNYXAuZ2V0KGJyZWFrcG9p
bnRJZGVudGlmaWVyKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoYnJlYWtwb2ludCk7CiAgICAg
ICAgIGlmICghYnJlYWtwb2ludCkKQEAgLTU2OSwxMCArNTY3LDggQEAgV0kuRGVidWdnZXJNYW5h
Z2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGJy
ZWFrcG9pbnQucmVzb2x2ZWQgPSB0cnVlOwogICAgIH0KIAotICAgIHJlc2V0KCkKKyAgICBnbG9i
YWxPYmplY3RDbGVhcmVkKCkKICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLkRlYnVn
Z2VyT2JzZXJ2ZXIuCi0KICAgICAgICAgbGV0IHdhc1BhdXNlZCA9IHRoaXMucGF1c2VkOwogCiAg
ICAgICAgIFdJLlNjcmlwdC5yZXNldFVuaXF1ZURpc3BsYXlOYW1lTnVtYmVycygpOwpAQCAtNjAw
LDggKzU5Niw2IEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogCiAgICAgZGVidWdnZXJEaWRQYXVzZSh0YXJnZXQsIGNhbGxGcmFt
ZXNQYXlsb2FkLCByZWFzb24sIGRhdGEsIGFzeW5jU3RhY2tUcmFjZVBheWxvYWQpCiAgICAgewot
ICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5EZWJ1Z2dlck9ic2VydmVyLgotCiAgICAgICAgIGlm
ICh0aGlzLl9kZWxheWVkUmVzdW1lVGltZW91dCkgewogICAgICAgICAgICAgY2xlYXJUaW1lb3V0
KHRoaXMuX2RlbGF5ZWRSZXN1bWVUaW1lb3V0KTsKICAgICAgICAgICAgIHRoaXMuX2RlbGF5ZWRS
ZXN1bWVUaW1lb3V0ID0gdW5kZWZpbmVkOwpAQCAtNjc0LDggKzY2OCw2IEBAIFdJLkRlYnVnZ2Vy
TWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAg
ZGVidWdnZXJEaWRSZXN1bWUodGFyZ2V0KQogICAgIHsKLSAgICAgICAgLy8gQ2FsbGVkIGZyb20g
V0kuRGVidWdnZXJPYnNlcnZlci4KLQogICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTAp
OiBEZWJ1Z2dlci5yZXN1bWVkIGV2ZW50IHdhcyBhbWJpZ3VvdXMuIFdoZW4gc3RlcHBpbmcKICAg
ICAgICAgLy8gd2Ugd291bGQgcmVjZWl2ZSBhIERlYnVnZ2VyLnJlc3VtZWQgYW5kIHdlIHdvdWxk
IG5vdCBrbm93IGlmIGl0IHJlYWxseSBtZWFudAogICAgICAgICAvLyB0aGUgYmFja2VuZCByZXN1
bWVkIG9yIHdvdWxkIHBhdXNlIGFnYWluIGR1ZSB0byBhIHN0ZXAuIExlZ2FjeSBiYWNrZW5kcyB3
YWl0CkBAIC02OTIsMTUgKzY4NCwxMSBAQCBXSS5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1
Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIHBsYXlCcmVha3BvaW50QWN0aW9u
U291bmQoYnJlYWtwb2ludEFjdGlvbklkZW50aWZpZXIpCiAgICAgewotICAgICAgICAvLyBDYWxs
ZWQgZnJvbSBXSS5EZWJ1Z2dlck9ic2VydmVyLgotCiAgICAgICAgIEluc3BlY3RvckZyb250ZW5k
SG9zdC5iZWVwKCk7CiAgICAgfQogCiAgICAgc2NyaXB0RGlkUGFyc2UodGFyZ2V0LCBzY3JpcHRJ
ZGVudGlmaWVyLCB1cmwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVt
biwgaXNNb2R1bGUsIGlzQ29udGVudFNjcmlwdCwgc291cmNlVVJMLCBzb3VyY2VNYXBVUkwpCiAg
ICAgewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5EZWJ1Z2dlck9ic2VydmVyLgotCiAgICAg
ICAgIC8vIERvbid0IGFkZCB0aGUgc2NyaXB0IGFnYWluIGlmIGl0IGlzIGFscmVhZHkga25vd24u
CiAgICAgICAgIGxldCB0YXJnZXREYXRhID0gdGhpcy5kYXRhRm9yVGFyZ2V0KHRhcmdldCk7CiAg
ICAgICAgIGxldCBleGlzdGluZ1NjcmlwdCA9IHRhcmdldERhdGEuc2NyaXB0Rm9ySWRlbnRpZmll
cihzY3JpcHRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0xheWVyVHJlZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9MYXllclRyZWVNYW5hZ2VyLmpz
CmluZGV4IDE3ZTFhZDU5YTdhLi5kNzc0MDdiOWE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvTGF5ZXJUcmVlTWFuYWdlci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9MYXll
clRyZWVNYW5hZ2VyLmpzCkBAIC05MCw2ICs5MCw4IEBAIFdJLkxheWVyVHJlZU1hbmFnZXIgPSBj
bGFzcyBMYXllclRyZWVNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIH0pOwogICAg
IH0KIAorICAgIC8vIExheWVyVHJlZU9ic2VydmVyCisKICAgICBsYXllclRyZWVEaWRDaGFuZ2Uo
KQogICAgIHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuTGF5ZXJU
cmVlTWFuYWdlci5FdmVudC5MYXllclRyZWVEaWRDaGFuZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9OZXR3
b3JrTWFuYWdlci5qcwppbmRleCA2YzAwNDJkN2EwZi4uMDkzMDU1ZGY0YTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL05ldHdvcmtN
YW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL05ldHdvcmtNYW5hZ2VyLmpzCkBAIC0xNjgsMTAgKzE2OCw4MCBAQCBXSS5OZXR3b3Jr
TWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAg
IGxvYWRBbmRQYXJzZVNvdXJjZU1hcCgpOwogICAgIH0KIAorICAgIGxvY2FsUmVzb3VyY2VGb3JV
UkwodXJsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsUmVzb3VyY2VzTWFwLmdl
dCh1cmwpOworICAgIH0KKworICAgIHJlc291cmNlRm9yVVJMKHVybCkKKyAgICB7CisgICAgICAg
IGlmICghdGhpcy5fbWFpbkZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAg
ICAgaWYgKHRoaXMuX21haW5GcmFtZS5tYWluUmVzb3VyY2UudXJsID09PSB1cmwpCisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fbWFpbkZyYW1lLm1haW5SZXNvdXJjZTsKKworICAgICAgICByZXR1
cm4gdGhpcy5fbWFpbkZyYW1lLnJlc291cmNlRm9yVVJMKHVybCwgdHJ1ZSk7CisgICAgfQorCisg
ICAgYWRvcHRPcnBoYW5lZFJlc291cmNlc0ZvclRhcmdldCh0YXJnZXQpCisgICAgeworICAgICAg
ICBsZXQgcmVzb3VyY2VzID0gdGhpcy5fb3JwaGFuZWRSZXNvdXJjZXMudGFrZSh0YXJnZXQuaWRl
bnRpZmllcik7CisgICAgICAgIGlmICghcmVzb3VyY2VzKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGZvciAobGV0IHJlc291cmNlIG9mIHJlc291cmNlcykKKyAgICAgICAgICAgIHRh
cmdldC5hZG9wdFJlc291cmNlKHJlc291cmNlKTsKKyAgICB9CisKKyAgICBwcm9jZXNzSEFSKHtq
c29uLCBlcnJvcn0pCisgICAgeworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIFdJ
Lk5ldHdvcmtNYW5hZ2VyLnN5bnRoZXNpemVJbXBvcnRFcnJvcihlcnJvcik7CisgICAgICAgICAg
ICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0eXBlb2YganNvbiAhPT0g
Im9iamVjdCIgfHwganNvbiA9PT0gbnVsbCkgeworICAgICAgICAgICAgV0kuTmV0d29ya01hbmFn
ZXIuc3ludGhlc2l6ZUltcG9ydEVycm9yKFdJLlVJU3RyaW5nKCJpbnZhbGlkIEpTT04iKSk7Cisg
ICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0eXBlb2Yg
anNvbi5sb2cgIT09ICJvYmplY3QiIHx8IHR5cGVvZiBqc29uLmxvZy52ZXJzaW9uICE9PSAic3Ry
aW5nIikgeworICAgICAgICAgICAgV0kuTmV0d29ya01hbmFnZXIuc3ludGhlc2l6ZUltcG9ydEVy
cm9yKFdJLlVJU3RyaW5nKCJpbnZhbGlkIEhBUiIpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxs
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGpzb24ubG9nLnZlcnNpb24gIT09ICIxLjIiKSB7
CisgICAgICAgICAgICBXSS5OZXR3b3JrTWFuYWdlci5zeW50aGVzaXplSW1wb3J0RXJyb3IoV0ku
VUlTdHJpbmcoInVuc3VwcG9ydGVkIEhBUiB2ZXJzaW9uIikpOworICAgICAgICAgICAgcmV0dXJu
IG51bGw7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoanNvbi5sb2cu
ZW50cmllcykgfHwgIUFycmF5LmlzQXJyYXkoanNvbi5sb2cucGFnZXMpIHx8ICFqc29uLmxvZy5w
YWdlc1swXSB8fCAhanNvbi5sb2cucGFnZXNbMF0uc3RhcnRlZERhdGVUaW1lKSB7CisgICAgICAg
ICAgICBXSS5OZXR3b3JrTWFuYWdlci5zeW50aGVzaXplSW1wb3J0RXJyb3IoV0kuVUlTdHJpbmco
ImludmFsaWQgSEFSIikpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKwor
ICAgICAgICBsZXQgbWFpblJlc291cmNlU2VudFdhbGx0aW1lID0gV0kuSEFSQnVpbGRlci5kYXRl
RnJvbUhBUkRhdGUoanNvbi5sb2cucGFnZXNbMF0uc3RhcnRlZERhdGVUaW1lKSAvIDEwMDA7Cisg
ICAgICAgIGlmIChpc05hTihtYWluUmVzb3VyY2VTZW50V2FsbHRpbWUpKSB7CisgICAgICAgICAg
ICBXSS5OZXR3b3JrTWFuYWdlci5zeW50aGVzaXplSW1wb3J0RXJyb3IoV0kuVUlTdHJpbmcoImlu
dmFsaWQgSEFSIikpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAg
ICAgICBsZXQgbG9jYWxSZXNvdXJjZXMgPSBbXTsKKworICAgICAgICBmb3IgKGxldCBlbnRyeSBv
ZiBqc29uLmxvZy5lbnRyaWVzKSB7CisgICAgICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZSA9IFdJ
LkxvY2FsUmVzb3VyY2UuZnJvbUhBUkVudHJ5KGVudHJ5LCBtYWluUmVzb3VyY2VTZW50V2FsbHRp
bWUpOworICAgICAgICAgICAgdGhpcy5fbG9jYWxSZXNvdXJjZXNNYXAuc2V0KGxvY2FsUmVzb3Vy
Y2UudXJsLCBsb2NhbFJlc291cmNlKTsKKyAgICAgICAgICAgIGxvY2FsUmVzb3VyY2VzLnB1c2go
bG9jYWxSZXNvdXJjZSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbG9jYWxSZXNvdXJj
ZXM7CisgICAgfQorCisgICAgLy8gUGFnZU9ic2VydmVyCisKICAgICBmcmFtZURpZE5hdmlnYXRl
KGZyYW1lUGF5bG9hZCkKICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLlBhZ2VPYnNl
cnZlci4KLQogICAgICAgICAvLyBJZ25vcmUgdGhpcyB3aGlsZSB3YWl0aW5nIGZvciB0aGUgd2hv
bGUgZnJhbWUvcmVzb3VyY2UgdHJlZS4KICAgICAgICAgaWYgKHRoaXMuX3dhaXRpbmdGb3JNYWlu
RnJhbWVSZXNvdXJjZVRyZWVQYXlsb2FkKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjQ0LDgg
KzMxNCw2IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5k
cyBXSS5PYmplY3QKIAogICAgIGZyYW1lRGlkRGV0YWNoKGZyYW1lSWQpCiAgICAgewotICAgICAg
ICAvLyBDYWxsZWQgZnJvbSBXSS5QYWdlT2JzZXJ2ZXIuCi0KICAgICAgICAgLy8gSWdub3JlIHRo
aXMgd2hpbGUgd2FpdGluZyBmb3IgdGhlIHdob2xlIGZyYW1lL3Jlc291cmNlIHRyZWUuCiAgICAg
ICAgIGlmICh0aGlzLl93YWl0aW5nRm9yTWFpbkZyYW1lUmVzb3VyY2VUcmVlUGF5bG9hZCkKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTI3MiwxMCArMzQwLDEwIEBAIFdJLk5ldHdvcmtNYW5hZ2Vy
ID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHRo
aXMuX21haW5GcmFtZURpZENoYW5nZShvbGRNYWluRnJhbWUpOwogICAgIH0KIAorICAgIC8vIE5l
dHdvcmtPYnNlcnZlcgorCiAgICAgcmVzb3VyY2VSZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWRl
bnRpZmllciwgZnJhbWVJZGVudGlmaWVyLCBsb2FkZXJJZGVudGlmaWVyLCByZXF1ZXN0LCB0eXBl
LCByZWRpcmVjdFJlc3BvbnNlLCB0aW1lc3RhbXAsIHdhbGx0aW1lLCBpbml0aWF0b3IsIHRhcmdl
dElkKQogICAgIHsKLSAgICAgICAgLy8gQ2FsbGVkIGZyb20gV0kuTmV0d29ya09ic2VydmVyLgot
CiAgICAgICAgIC8vIElnbm9yZSB0aGlzIHdoaWxlIHdhaXRpbmcgZm9yIHRoZSB3aG9sZSBmcmFt
ZS9yZXNvdXJjZSB0cmVlLgogICAgICAgICBpZiAodGhpcy5fd2FpdGluZ0Zvck1haW5GcmFtZVJl
c291cmNlVHJlZVBheWxvYWQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC00MTcsOCArNDg1LDYg
QEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9i
amVjdAogCiAgICAgbWFya1Jlc291cmNlUmVxdWVzdEFzU2VydmVkRnJvbU1lbW9yeUNhY2hlKHJl
cXVlc3RJZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgLy8gQ2FsbGVkIGZyb20gV0kuTmV0d29y
a09ic2VydmVyLgotCiAgICAgICAgIC8vIElnbm9yZSB0aGlzIHdoaWxlIHdhaXRpbmcgZm9yIHRo
ZSB3aG9sZSBmcmFtZS9yZXNvdXJjZSB0cmVlLgogICAgICAgICBpZiAodGhpcy5fd2FpdGluZ0Zv
ck1haW5GcmFtZVJlc291cmNlVHJlZVBheWxvYWQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC00
MzYsOCArNTAyLDYgQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogCiAgICAgcmVzb3VyY2VSZXF1ZXN0V2FzU2VydmVkRnJvbU1lbW9y
eUNhY2hlKHJlcXVlc3RJZGVudGlmaWVyLCBmcmFtZUlkZW50aWZpZXIsIGxvYWRlcklkZW50aWZp
ZXIsIGNhY2hlZFJlc291cmNlUGF5bG9hZCwgdGltZXN0YW1wLCBpbml0aWF0b3IpCiAgICAgewot
ICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5OZXR3b3JrT2JzZXJ2ZXIuCi0KICAgICAgICAgLy8g
SWdub3JlIHRoaXMgd2hpbGUgd2FpdGluZyBmb3IgdGhlIHdob2xlIGZyYW1lL3Jlc291cmNlIHRy
ZWUuCiAgICAgICAgIGlmICh0aGlzLl93YWl0aW5nRm9yTWFpbkZyYW1lUmVzb3VyY2VUcmVlUGF5
bG9hZCkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTQ3NSw4ICs1MzksNiBAQCBXSS5OZXR3b3Jr
TWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBy
ZXNvdXJjZVJlcXVlc3REaWRSZWNlaXZlUmVzcG9uc2UocmVxdWVzdElkZW50aWZpZXIsIGZyYW1l
SWRlbnRpZmllciwgbG9hZGVySWRlbnRpZmllciwgdHlwZSwgcmVzcG9uc2UsIHRpbWVzdGFtcCkK
ICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLk5ldHdvcmtPYnNlcnZlci4KLQogICAg
ICAgICAvLyBJZ25vcmUgdGhpcyB3aGlsZSB3YWl0aW5nIGZvciB0aGUgd2hvbGUgZnJhbWUvcmVz
b3VyY2UgdHJlZS4KICAgICAgICAgaWYgKHRoaXMuX3dhaXRpbmdGb3JNYWluRnJhbWVSZXNvdXJj
ZVRyZWVQYXlsb2FkKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTI1LDggKzU4Nyw2IEBAIFdJ
Lk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QK
IAogICAgIHJlc291cmNlUmVxdWVzdERpZFJlY2VpdmVEYXRhKHJlcXVlc3RJZGVudGlmaWVyLCBk
YXRhTGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgdGltZXN0YW1wKQogICAgIHsKLSAgICAgICAg
Ly8gQ2FsbGVkIGZyb20gV0kuTmV0d29ya09ic2VydmVyLgotCiAgICAgICAgIC8vIElnbm9yZSB0
aGlzIHdoaWxlIHdhaXRpbmcgZm9yIHRoZSB3aG9sZSBmcmFtZS9yZXNvdXJjZSB0cmVlLgogICAg
ICAgICBpZiAodGhpcy5fd2FpdGluZ0Zvck1haW5GcmFtZVJlc291cmNlVHJlZVBheWxvYWQpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC01NDgsOCArNjA4LDYgQEAgV0kuTmV0d29ya01hbmFnZXIg
PSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgcmVzb3VyY2VS
ZXF1ZXN0RGlkRmluaXNoTG9hZGluZyhyZXF1ZXN0SWRlbnRpZmllciwgdGltZXN0YW1wLCBzb3Vy
Y2VNYXBVUkwsIG1ldHJpY3MpCiAgICAgewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5OZXR3
b3JrT2JzZXJ2ZXIuCi0KICAgICAgICAgLy8gSWdub3JlIHRoaXMgd2hpbGUgd2FpdGluZyBmb3Ig
dGhlIHdob2xlIGZyYW1lL3Jlc291cmNlIHRyZWUuCiAgICAgICAgIGlmICh0aGlzLl93YWl0aW5n
Rm9yTWFpbkZyYW1lUmVzb3VyY2VUcmVlUGF5bG9hZCkKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTU3NSw4ICs2MzMsNiBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2Vy
IGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICByZXNvdXJjZVJlcXVlc3REaWRGYWlsTG9hZGluZyhy
ZXF1ZXN0SWRlbnRpZmllciwgY2FuY2VsZWQsIHRpbWVzdGFtcCwgZXJyb3JUZXh0KQogICAgIHsK
LSAgICAgICAgLy8gQ2FsbGVkIGZyb20gV0kuTmV0d29ya09ic2VydmVyLgotCiAgICAgICAgIC8v
IElnbm9yZSB0aGlzIHdoaWxlIHdhaXRpbmcgZm9yIHRoZSB3aG9sZSBmcmFtZS9yZXNvdXJjZSB0
cmVlLgogICAgICAgICBpZiAodGhpcy5fd2FpdGluZ0Zvck1haW5GcmFtZVJlc291cmNlVHJlZVBh
eWxvYWQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01OTcsMTAgKzY1MywxMCBAQCBXSS5OZXR3
b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgIHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJNYXAuZGVsZXRlKHJlcXVlc3RJZGVu
dGlmaWVyKTsKICAgICB9CiAKKyAgICAvLyBSdW50aW1lT2JzZXJ2ZXIKKwogICAgIGV4ZWN1dGlv
bkNvbnRleHRDcmVhdGVkKGNvbnRleHRQYXlsb2FkKQogICAgIHsKLSAgICAgICAgLy8gQ2FsbGVk
IGZyb20gV0kuUnVudGltZU9ic2VydmVyLgotCiAgICAgICAgIGxldCBmcmFtZSA9IHRoaXMuZnJh
bWVGb3JJZGVudGlmaWVyKGNvbnRleHRQYXlsb2FkLmZyYW1lSWQpOwogICAgICAgICBjb25zb2xl
LmFzc2VydChmcmFtZSk7CiAgICAgICAgIGlmICghZnJhbWUpCkBAIC02MTIsNzYgKzY2OCw2IEBA
IFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmpl
Y3QKICAgICAgICAgZnJhbWUuYWRkRXhlY3V0aW9uQ29udGV4dChleGVjdXRpb25Db250ZXh0KTsK
ICAgICB9CiAKLSAgICBsb2NhbFJlc291cmNlRm9yVVJMKHVybCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9sb2NhbFJlc291cmNlc01hcC5nZXQodXJsKTsKLSAgICB9Ci0KLSAgICByZXNv
dXJjZUZvclVSTCh1cmwpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX21haW5GcmFtZSkKLSAg
ICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIGlmICh0aGlzLl9tYWluRnJhbWUubWFp
blJlc291cmNlLnVybCA9PT0gdXJsKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21haW5GcmFt
ZS5tYWluUmVzb3VyY2U7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX21haW5GcmFtZS5yZXNvdXJj
ZUZvclVSTCh1cmwsIHRydWUpOwotICAgIH0KLQotICAgIGFkb3B0T3JwaGFuZWRSZXNvdXJjZXNG
b3JUYXJnZXQodGFyZ2V0KQotICAgIHsKLSAgICAgICAgbGV0IHJlc291cmNlcyA9IHRoaXMuX29y
cGhhbmVkUmVzb3VyY2VzLnRha2UodGFyZ2V0LmlkZW50aWZpZXIpOwotICAgICAgICBpZiAoIXJl
c291cmNlcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBmb3IgKGxldCByZXNvdXJj
ZSBvZiByZXNvdXJjZXMpCi0gICAgICAgICAgICB0YXJnZXQuYWRvcHRSZXNvdXJjZShyZXNvdXJj
ZSk7Ci0gICAgfQotCi0gICAgcHJvY2Vzc0hBUih7anNvbiwgZXJyb3J9KQotICAgIHsKLSAgICAg
ICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICBXSS5OZXR3b3JrTWFuYWdlci5zeW50aGVzaXpl
SW1wb3J0RXJyb3IoZXJyb3IpOwotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAodHlwZW9mIGpzb24gIT09ICJvYmplY3QiIHx8IGpzb24gPT09IG51bGwp
IHsKLSAgICAgICAgICAgIFdJLk5ldHdvcmtNYW5hZ2VyLnN5bnRoZXNpemVJbXBvcnRFcnJvcihX
SS5VSVN0cmluZygiaW52YWxpZCBKU09OIikpOwotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0g
ICAgICAgIH0KLQotICAgICAgICBpZiAodHlwZW9mIGpzb24ubG9nICE9PSAib2JqZWN0IiB8fCB0
eXBlb2YganNvbi5sb2cudmVyc2lvbiAhPT0gInN0cmluZyIpIHsKLSAgICAgICAgICAgIFdJLk5l
dHdvcmtNYW5hZ2VyLnN5bnRoZXNpemVJbXBvcnRFcnJvcihXSS5VSVN0cmluZygiaW52YWxpZCBI
QVIiKSk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIGlm
IChqc29uLmxvZy52ZXJzaW9uICE9PSAiMS4yIikgewotICAgICAgICAgICAgV0kuTmV0d29ya01h
bmFnZXIuc3ludGhlc2l6ZUltcG9ydEVycm9yKFdJLlVJU3RyaW5nKCJ1bnN1cHBvcnRlZCBIQVIg
dmVyc2lvbiIpKTsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKCFBcnJheS5pc0FycmF5KGpzb24ubG9nLmVudHJpZXMpIHx8ICFBcnJheS5pc0FycmF5
KGpzb24ubG9nLnBhZ2VzKSB8fCAhanNvbi5sb2cucGFnZXNbMF0gfHwgIWpzb24ubG9nLnBhZ2Vz
WzBdLnN0YXJ0ZWREYXRlVGltZSkgewotICAgICAgICAgICAgV0kuTmV0d29ya01hbmFnZXIuc3lu
dGhlc2l6ZUltcG9ydEVycm9yKFdJLlVJU3RyaW5nKCJpbnZhbGlkIEhBUiIpKTsKLSAgICAgICAg
ICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IG1haW5SZXNvdXJjZVNl
bnRXYWxsdGltZSA9IFdJLkhBUkJ1aWxkZXIuZGF0ZUZyb21IQVJEYXRlKGpzb24ubG9nLnBhZ2Vz
WzBdLnN0YXJ0ZWREYXRlVGltZSkgLyAxMDAwOwotICAgICAgICBpZiAoaXNOYU4obWFpblJlc291
cmNlU2VudFdhbGx0aW1lKSkgewotICAgICAgICAgICAgV0kuTmV0d29ya01hbmFnZXIuc3ludGhl
c2l6ZUltcG9ydEVycm9yKFdJLlVJU3RyaW5nKCJpbnZhbGlkIEhBUiIpKTsKLSAgICAgICAgICAg
IHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGxvY2FsUmVzb3VyY2VzID0g
W107Ci0KLSAgICAgICAgZm9yIChsZXQgZW50cnkgb2YganNvbi5sb2cuZW50cmllcykgewotICAg
ICAgICAgICAgbGV0IGxvY2FsUmVzb3VyY2UgPSBXSS5Mb2NhbFJlc291cmNlLmZyb21IQVJFbnRy
eShlbnRyeSwgbWFpblJlc291cmNlU2VudFdhbGx0aW1lKTsKLSAgICAgICAgICAgIHRoaXMuX2xv
Y2FsUmVzb3VyY2VzTWFwLnNldChsb2NhbFJlc291cmNlLnVybCwgbG9jYWxSZXNvdXJjZSk7Ci0g
ICAgICAgICAgICBsb2NhbFJlc291cmNlcy5wdXNoKGxvY2FsUmVzb3VyY2UpOwotICAgICAgICB9
Ci0KLSAgICAgICAgcmV0dXJuIGxvY2FsUmVzb3VyY2VzOwotICAgIH0KLQogICAgIC8vIFByaXZh
dGUKIAogICAgIF9hZGROZXdSZXNvdXJjZVRvRnJhbWVPclRhcmdldCh1cmwsIGZyYW1lSWRlbnRp
ZmllciwgcmVzb3VyY2VPcHRpb25zID0ge30sIGZyYW1lT3B0aW9ucyA9IHt9KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGFyZ2V0
TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL1RhcmdldE1hbmFnZXIuanMKaW5kZXggNTkxZDc0ZGIwYTcuLmE5ZmE0ZGUwZTgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9U
YXJnZXRNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL1RhcmdldE1hbmFnZXIuanMKQEAgLTYyLDEwICs2Miw1NiBAQCBXSS5UYXJn
ZXRNYW5hZ2VyID0gY2xhc3MgVGFyZ2V0TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICByZXR1cm4gbnVsbDsKICAgICB9CiAKKyAgICBhZGRUYXJnZXQodGFyZ2V0KQorICAgIHsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQodGFyZ2V0KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRo
aXMuX3RhcmdldHMuaGFzKHRhcmdldC5pZGVudGlmaWVyKSk7CisKKyAgICAgICAgdGhpcy5fY2Fj
aGVkVGFyZ2V0c0xpc3QgPSBudWxsOworICAgICAgICB0aGlzLl90YXJnZXRzLnNldCh0YXJnZXQu
aWRlbnRpZmllciwgdGFyZ2V0KTsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXSS5UYXJnZXRNYW5hZ2VyLkV2ZW50LlRhcmdldEFkZGVkLCB7dGFyZ2V0fSk7CisgICAg
fQorCisgICAgcmVtb3ZlVGFyZ2V0KHRhcmdldCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHRhcmdldCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRhcmdldCAhPT0gV0kubWFpblRh
cmdldCk7CisKKyAgICAgICAgdGhpcy5fY2FjaGVkVGFyZ2V0c0xpc3QgPSBudWxsOworICAgICAg
ICB0aGlzLl90YXJnZXRzLmRlbGV0ZSh0YXJnZXQuaWRlbnRpZmllcik7CisKKyAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVGFyZ2V0TWFuYWdlci5FdmVudC5UYXJnZXRS
ZW1vdmVkLCB7dGFyZ2V0fSk7CisgICAgfQorCisgICAgY3JlYXRlTXVsdGlwbGV4aW5nQmFja2Vu
ZFRhcmdldCh0YXJnZXRJbmZvKQorICAgIHsKKyAgICAgICAgbGV0IHRhcmdldCA9IG5ldyBXSS5N
dWx0aXBsZXhpbmdCYWNrZW5kVGFyZ2V0OworICAgICAgICB0YXJnZXQuaW5pdGlhbGl6ZSgpOwor
CisgICAgICAgIFdJLmluaXRpYWxpemVCYWNrZW5kVGFyZ2V0KHRhcmdldCk7CisKKyAgICAgICAg
Ly8gQWRkIHRoZSB0YXJnZXQgd2l0aG91dCBkaXNwYXRjaGluZyBhbiBldmVudC4KKyAgICAgICAg
dGhpcy5fdGFyZ2V0cy5zZXQodGFyZ2V0LmlkZW50aWZpZXIsIHRhcmdldCk7CisgICAgfQorCisg
ICAgY3JlYXRlRGlyZWN0QmFja2VuZFRhcmdldCgpCisgICAgeworICAgICAgICBsZXQgdGFyZ2V0
ID0gbmV3IFdJLkRpcmVjdEJhY2tlbmRUYXJnZXQ7CisgICAgICAgIHRhcmdldC5pbml0aWFsaXpl
KCk7CisKKyAgICAgICAgV0kuaW5pdGlhbGl6ZUJhY2tlbmRUYXJnZXQodGFyZ2V0KTsKKworICAg
ICAgICBpZiAoV0kuc2hhcmVkQXBwLmRlYnVnZ2FibGVUeXBlID09PSBXSS5EZWJ1Z2dhYmxlVHlw
ZS5XZWIpCisgICAgICAgICAgICBXSS5pbml0aWFsaXplUGFnZVRhcmdldCh0YXJnZXQpOworCisg
ICAgICAgIHRoaXMuYWRkVGFyZ2V0KHRhcmdldCk7CisgICAgfQorCisgICAgLy8gVGFyZ2V0T2Jz
ZXJ2ZXIKKwogICAgIHRhcmdldENyZWF0ZWQodGFyZ2V0SW5mbykKICAgICB7Ci0gICAgICAgIC8v
IENhbGxlZCBmcm9tIFdJLlRhcmdldE9ic2VydmVyLgotCiAgICAgICAgIC8vIEZJWE1FOiBFbGlt
aW5hdGUgdGhpcyBvbmNlIHRoZSBsb2NhbCBpbnNwZWN0b3IgaXMgY29uZmlndXJlZCB0byB1c2UK
ICAgICAgICAgLy8gdGhlIE11bHRpcGxleGluZyBjb2RlIHBhdGguIFRoZW4gd2UgY2FuIHBlcmZv
cm0gdGhpcyBpbW1lZGlhdGVseQogICAgICAgICAvLyBpbiBgV0kubG9hZGVkYCBpZiBhIFRhcmdl
dEFnZW50IGV4aXN0cy4KQEAgLTgyLDggKzEyOCw2IEBAIFdJLlRhcmdldE1hbmFnZXIgPSBjbGFz
cyBUYXJnZXRNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICB0YXJnZXREZXN0cm95ZWQo
dGFyZ2V0SWQpCiAgICAgewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5UYXJnZXRPYnNlcnZl
ci4KLQogICAgICAgICBsZXQgdGFyZ2V0ID0gdGhpcy5fdGFyZ2V0cy5nZXQodGFyZ2V0SWQpOwog
ICAgICAgICB0aGlzLl9jaGVja0FuZEhhbmRsZVBhZ2VUYXJnZXRUZXJtaW5hdGlvbih0YXJnZXQp
OwogICAgICAgICB0aGlzLnJlbW92ZVRhcmdldCh0YXJnZXQpOwpAQCAtOTEsOCArMTM1LDYgQEAg
V0kuVGFyZ2V0TWFuYWdlciA9IGNsYXNzIFRhcmdldE1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QK
IAogICAgIGRpc3BhdGNoTWVzc2FnZUZyb21UYXJnZXQodGFyZ2V0SWQsIG1lc3NhZ2UpCiAgICAg
ewotICAgICAgICAvLyBDYWxsZWQgZnJvbSBXSS5UYXJnZXRPYnNlcnZlci4KLQogICAgICAgICBs
ZXQgdGFyZ2V0ID0gdGhpcy5fdGFyZ2V0cy5nZXQodGFyZ2V0SWQpOwogICAgICAgICBjb25zb2xl
LmFzc2VydCh0YXJnZXQpOwogICAgICAgICBpZiAoIXRhcmdldCkKQEAgLTEwMSw1MiArMTQzLDYg
QEAgV0kuVGFyZ2V0TWFuYWdlciA9IGNsYXNzIFRhcmdldE1hbmFnZXIgZXh0ZW5kcyBXSS5PYmpl
Y3QKICAgICAgICAgdGFyZ2V0LmNvbm5lY3Rpb24uZGlzcGF0Y2gobWVzc2FnZSk7CiAgICAgfQog
Ci0gICAgYWRkVGFyZ2V0KHRhcmdldCkKLSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRh
cmdldCk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl90YXJnZXRzLmhhcyh0YXJnZXQu
aWRlbnRpZmllcikpOwotCi0gICAgICAgIHRoaXMuX2NhY2hlZFRhcmdldHNMaXN0ID0gbnVsbDsK
LSAgICAgICAgdGhpcy5fdGFyZ2V0cy5zZXQodGFyZ2V0LmlkZW50aWZpZXIsIHRhcmdldCk7Ci0K
LSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVGFyZ2V0TWFuYWdlci5F
dmVudC5UYXJnZXRBZGRlZCwge3RhcmdldH0pOwotICAgIH0KLQotICAgIHJlbW92ZVRhcmdldCh0
YXJnZXQpCi0gICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0YXJnZXQpOwotICAgICAgICBj
b25zb2xlLmFzc2VydCh0YXJnZXQgIT09IFdJLm1haW5UYXJnZXQpOwotCi0gICAgICAgIHRoaXMu
X2NhY2hlZFRhcmdldHNMaXN0ID0gbnVsbDsKLSAgICAgICAgdGhpcy5fdGFyZ2V0cy5kZWxldGUo
dGFyZ2V0LmlkZW50aWZpZXIpOwotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3ZlZCwge3RhcmdldH0pOwotICAg
IH0KLQotICAgIGNyZWF0ZU11bHRpcGxleGluZ0JhY2tlbmRUYXJnZXQodGFyZ2V0SW5mbykKLSAg
ICB7Ci0gICAgICAgIGxldCB0YXJnZXQgPSBuZXcgV0kuTXVsdGlwbGV4aW5nQmFja2VuZFRhcmdl
dDsKLSAgICAgICAgdGFyZ2V0LmluaXRpYWxpemUoKTsKLQotICAgICAgICBXSS5pbml0aWFsaXpl
QmFja2VuZFRhcmdldCh0YXJnZXQpOwotCi0gICAgICAgIC8vIEFkZCB0aGUgdGFyZ2V0IHdpdGhv
dXQgZGlzcGF0Y2hpbmcgYW4gZXZlbnQuCi0gICAgICAgIHRoaXMuX3RhcmdldHMuc2V0KHRhcmdl
dC5pZGVudGlmaWVyLCB0YXJnZXQpOwotICAgIH0KLQotICAgIGNyZWF0ZURpcmVjdEJhY2tlbmRU
YXJnZXQoKQotICAgIHsKLSAgICAgICAgbGV0IHRhcmdldCA9IG5ldyBXSS5EaXJlY3RCYWNrZW5k
VGFyZ2V0OwotICAgICAgICB0YXJnZXQuaW5pdGlhbGl6ZSgpOwotCi0gICAgICAgIFdJLmluaXRp
YWxpemVCYWNrZW5kVGFyZ2V0KHRhcmdldCk7Ci0KLSAgICAgICAgaWYgKFdJLnNoYXJlZEFwcC5k
ZWJ1Z2dhYmxlVHlwZSA9PT0gV0kuRGVidWdnYWJsZVR5cGUuV2ViKQotICAgICAgICAgICAgV0ku
aW5pdGlhbGl6ZVBhZ2VUYXJnZXQodGFyZ2V0KTsKLQotICAgICAgICB0aGlzLmFkZFRhcmdldCh0
YXJnZXQpOwotICAgIH0KLQogICAgIC8vIFByaXZhdGUKIAogICAgIF9jcmVhdGVUYXJnZXQodGFy
Z2V0SW5mbywgY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwpp
bmRleCA4NDhiNmVhMWVlOC4uYmUzOWIzNThhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGlu
ZU1hbmFnZXIuanMKQEAgLTM3OSw2ICszNzksOCBAQCBXSS5UaW1lbGluZU1hbmFnZXIgPSBjbGFz
cyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgcmV0dXJuIHRoaXMu
X3NjcmlwdFByb2ZpbGVyUmVjb3JkcyAhPT0gbnVsbDsKICAgICB9CiAKKyAgICAvLyBDb25zb2xl
T2JzZXJ2ZXIKKwogICAgIGhlYXBTbmFwc2hvdEFkZGVkKHRpbWVzdGFtcCwgc25hcHNob3QpCiAg
ICAgewogICAgICAgICBpZiAoIXRoaXMuX2VuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Xb3JrZXJNYW5hZ2VyLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV29ya2VyTWFu
YWdlci5qcwppbmRleCA0N2MwMjBhMzA4Yy4uYjAxNGNkOWE5OGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dvcmtlck1hbmFnZXIu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
V29ya2VyTWFuYWdlci5qcwpAQCAtNDAsMTIgKzQwLDEwIEBAIFdJLldvcmtlck1hbmFnZXIgPSBj
bGFzcyBXb3JrZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB0YXJnZXQu
V29ya2VyQWdlbnQuZW5hYmxlKCk7CiAgICAgfQogCi0gICAgLy8gUHVibGljCisgICAgLy8gV29y
a2VyT2JzZXJ2ZXIKIAogICAgIHdvcmtlckNyZWF0ZWQod29ya2VySWQsIHVybCkKICAgICB7Ci0g
ICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLldvcmtlck9ic2VydmVyLgotCiAgICAgICAgIGxldCBj
b25uZWN0aW9uID0gbmV3IEluc3BlY3RvckJhY2tlbmQuV29ya2VyQ29ubmVjdGlvbih3b3JrZXJJ
ZCk7CiAgICAgICAgIGxldCB3b3JrZXJUYXJnZXQgPSBuZXcgV0kuV29ya2VyVGFyZ2V0KHdvcmtl
cklkLCB1cmwsIGNvbm5lY3Rpb24pOwogICAgICAgICB3b3JrZXJUYXJnZXQuaW5pdGlhbGl6ZSgp
OwpAQCAtNjEsOCArNTksNiBAQCBXSS5Xb3JrZXJNYW5hZ2VyID0gY2xhc3MgV29ya2VyTWFuYWdl
ciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgd29ya2VyVGVybWluYXRlZCh3b3JrZXJJZCkKICAg
ICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLldvcmtlck9ic2VydmVyLgotCiAgICAgICAg
IGxldCBjb25uZWN0aW9uID0gdGhpcy5fY29ubmVjdGlvbnMudGFrZSh3b3JrZXJJZCk7CiAKICAg
ICAgICAgV0kudGFyZ2V0TWFuYWdlci5yZW1vdmVUYXJnZXQoY29ubmVjdGlvbi50YXJnZXQpOwpA
QCAtNzAsOCArNjYsNiBAQCBXSS5Xb3JrZXJNYW5hZ2VyID0gY2xhc3MgV29ya2VyTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogCiAgICAgZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlcih3b3JrZXJJ
ZCwgbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIC8vIENhbGxlZCBmcm9tIFdJLldvcmtlck9ic2Vy
dmVyLgotCiAgICAgICAgIGxldCBjb25uZWN0aW9uID0gdGhpcy5fY29ubmVjdGlvbnMuZ2V0KHdv
cmtlcklkKTsKIAogICAgICAgICBjb25zb2xlLmFzc2VydChjb25uZWN0aW9uKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0RlYnVnZ2Vy
T2JzZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9EZWJ1Z2dlck9ic2VydmVyLmpzCmluZGV4IDdmNGY0N2QyOTUzLi5mMTNhZjZkZGYxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRGVi
dWdnZXJPYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9EZWJ1Z2dlck9ic2VydmVyLmpzCkBAIC0zNCw3ICszNCw3IEBAIFdJLkRlYnVn
Z2VyT2JzZXJ2ZXIgPSBjbGFzcyBEZWJ1Z2dlck9ic2VydmVyCiAKICAgICBnbG9iYWxPYmplY3RD
bGVhcmVkKCkKICAgICB7Ci0gICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXNldCgpOworICAg
ICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuZ2xvYmFsT2JqZWN0Q2xlYXJlZCgpOwogICAgIH0KIAog
ICAgIHNjcmlwdFBhcnNlZChzY3JpcHRJZCwgdXJsLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBl
bmRMaW5lLCBlbmRDb2x1bW4sIGlzQ29udGVudFNjcmlwdCwgc291cmNlVVJMLCBzb3VyY2VNYXBV
UkwsIGlzTW9kdWxlKQo=
</data>
<flag name="review"
          id="391747"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
      

    </bug>

</bugzilla>