<?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>46612</bug_id>
          
          <creation_ts>2010-09-27 01:29:26 -0700</creation_ts>
          <short_desc>Web Inspector: Merge AbstractTimelinePanel into ResourcesPanel.</short_desc>
          <delta_ts>2010-09-27 09:00:06 -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 (Deprecated)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>285367</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-27 01:29:26 -0700</bug_when>
    <thetext>I am refactoring resources panel and would like to merge abstract one back in since it is not use anywhere else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285371</commentid>
    <comment_count>1</comment_count>
      <attachid>68887</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-27 01:43:16 -0700</bug_when>
    <thetext>Created attachment 68887
[PATCH] Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285487</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-27 09:00:06 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	D	WebCore/inspector/front-end/AbstractTimelinePanel.js
	M	WebCore/ChangeLog
	M	WebCore/WebCore.gypi
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/inspector/front-end/ResourceCategory.js
	M	WebCore/inspector/front-end/ResourcesPanel.js
	M	WebCore/inspector/front-end/WebKit.qrc
	M	WebCore/inspector/front-end/inspector.html
Committed r68394</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68887</attachid>
            <date>2010-09-27 01:43:16 -0700</date>
            <delta_ts>2010-09-27 07:11:12 -0700</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>merge_timeline</filename>
            <type>text/plain</type>
            <size>42499</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjU0OWYwNS4uN2QyYzk2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAxMC0wOS0yNyAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBNZXJnZSBBYnN0cmFjdFRpbWVsaW5l
UGFuZWwgaW50byBSZXNvdXJjZXNQYW5lbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ2NjEyCisKKyAgICAgICAgSSBhbSByZWZhY3RvcmluZyByZXNv
dXJjZXMgcGFuZWwgYW5kIHdvdWxkIGxpa2UgdG8gbWVyZ2UgYWJzdHJhY3QKKyAgICAgICAgb25l
IGJhY2sgaW4gc2luY2UgaXQgaXMgbm90IHVzZSBhbnl3aGVyZSBlbHNlLgorCisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDYXRlZ29yeS5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUNhdGVnb3J5KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZUNhdGVnb3J5LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2Vz
UGFuZWwucHJvdG90eXBlLmdldCBpdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VzUGFuZWwucHJvdG90eXBlLmNyZWF0ZUludGVyZmFjZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLmNyZWF0ZUZpbHRlclBhbmVsLmNyZWF0ZUZpbHRl
ckVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlw
ZS5jcmVhdGVGaWx0ZXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlLnNob3dDYXRlZ29yeSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VzUGFuZWwucHJvdG90eXBlLmhpZGVDYXRlZ29yeSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLmZpbHRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLl91cGRhdGVGaWx0ZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fdXBkYXRlRGl2aWRlcnNMYWJlbEJhclBv
c2l0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUu
Z2V0IG5lZWRzUmVmcmVzaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwu
cHJvdG90eXBlLnNldCBuZWVkc1JlZnJlc2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlc1BhbmVsLnByb3RvdHlwZS5yZWZyZXNoSWZOZWVkZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5pbnZhbGlkYXRlQWxsSXRlbXMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5nZXQgY2FsY3VsYXRvcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLnNldCBjYWxj
dWxhdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUu
YWRkSXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBl
LnJlbW92ZUl0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3Rv
dHlwZS5yZWZyZXNoSXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwu
cHJvdG90eXBlLnJldmVhbEFuZFNlbGVjdEl0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlc1BhbmVsLnByb3RvdHlwZS5zb3J0SXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5hZGp1c3RTY3JvbGxQb3NpdGlvbik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLmFkZEV2ZW50RGl2aWRlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLmhpZGVFdmVu
dERpdmlkZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5
cGUuc2hvd0V2ZW50RGl2aWRlcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1Bh
bmVsLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5l
bC5wcm90b3R5cGUucmVmcmVzaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5l
bC5wcm90b3R5cGUudXBkYXRlR3JhcGhEaXZpZGVyc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUudXBkYXRlTWFpblZpZXdXaWR0aCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VCYXNlQ2FsY3VsYXRvcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VCYXNlQ2FsY3VsYXRvci5wcm90b3R5cGUuY29tcHV0ZVN1bW1h
cnlWYWx1ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlQmFzZUNhbGN1bGF0b3Iu
cHJvdG90eXBlLmNvbXB1dGVCYXJHcmFwaFBlcmNlbnRhZ2VzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZUJhc2VDYWxjdWxhdG9yLnByb3RvdHlwZS5jb21wdXRlQmFyR3JhcGhMYWJl
bHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlQmFzZUNhbGN1bGF0b3IucHJvdG90
eXBlLmdldCBib3VuZGFyeVNwYW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlQmFz
ZUNhbGN1bGF0b3IucHJvdG90eXBlLnVwZGF0ZUJvdW5kYXJpZXMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlQmFzZUNhbGN1bGF0b3IucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZUJhc2VDYWxjdWxhdG9yLnByb3RvdHlwZS5fdmFsdWUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlQmFzZUNhbGN1bGF0b3IucHJvdG90eXBlLmZv
cm1hdFZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWVDYWxjdWxhdG9y
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyYW5zZmVyU2l6ZUNhbGN1bGF0b3Ip
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorCiAyMDEwLTA5LTI3ICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGlyayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA3Y2Y1MGFhLi43MzI5NzJjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDIyNCw3ICs0MjI0
LDYgQEAKICAgICAgICAgJ3dlYmluc3BlY3Rvcl9maWxlcyc6IFsKIAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwnLAotICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRDYXRlZ29yaWVzLmpzJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0Rm9ybWF0dGVycy5qcycsCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1NWM4ZDcyLi43YzY1YzEyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTUyNTQwLDEwICs1MjU0MCw2IEBACiAJCQkJTmFt
ZT0iZnJvbnQtZW5kIg0KIAkJCQk+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGluc3BlY3Rvclxmcm9udC1lbmRcQWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzIg0KLQkJCQkJPg0K
LQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rv
clxmcm9udC1lbmRcQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcyINCiAJCQkJCT4NCiAJCQkJ
PC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BYnN0cmFj
dFRpbWVsaW5lUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWJzdHJhY3RU
aW1lbGluZVBhbmVsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODdlZjg2Li4w
MDAwMDAwCi0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BYnN0cmFjdFRpbWVsaW5l
UGFuZWwuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1MjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDA5IEFudGhvbnkgUmljYXVkIDxyaWtAd2Via2l0Lm9yZz4KLSAq
IENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwot
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdlYklu
c3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbihuYW1lKQotewotICAgIFdl
Ykluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsIG5hbWUpOwotICAgIHRoaXMuX2l0ZW1zID0gW107
Ci0gICAgdGhpcy5fc3RhbGVJdGVtcyA9IFtdOwotfQotCi1XZWJJbnNwZWN0b3IuQWJzdHJhY3RU
aW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKLSAgICBnZXQgY2F0ZWdvcmllcygpCi0gICAgewot
ICAgICAgICAvLyBTaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkgdGhlIGNvbmNyZXRlIHN1YmNsYXNz
ZXMuCi0gICAgICAgIHJldHVybiB7fTsKLSAgICB9LAotCi0gICAgcG9wdWxhdGVTaWRlYmFyOiBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICAvLyBTaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkgdGhl
IGNvbmNyZXRlIHN1YmNsYXNzZXMuCi0gICAgfSwKLQotICAgIGNyZWF0ZUl0ZW1UcmVlRWxlbWVu
dDogZnVuY3Rpb24oaXRlbSkKLSAgICB7Ci0gICAgICAgIC8vIFNob3VsZCBiZSBpbXBsZW1lbnRl
ZCBieSB0aGUgY29uY3JldGUgc3ViY2xhc3Nlcy4KLSAgICB9LAotCi0gICAgY3JlYXRlSXRlbUdy
YXBoOiBmdW5jdGlvbihpdGVtKQotICAgIHsKLSAgICAgICAgLy8gU2hvdWxkIGJlIGltcGxlbWVu
dGVkIGJ5IHRoZSBjb25jcmV0ZSBzdWJjbGFzc2VzLgotICAgIH0sCi0KLSAgICBnZXQgaXRlbXMo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zOwotICAgIH0sCi0KLSAgICBjcmVh
dGVJbnRlcmZhY2U6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuY29udGFpbmVyRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB0aGlzLmNvbnRh
aW5lckVsZW1lbnQuaWQgPSAicmVzb3VyY2VzLWNvbnRhaW5lciI7Ci0gICAgICAgIHRoaXMuY29u
dGFpbmVyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB0aGlzLl91cGRhdGVEaXZp
ZGVyc0xhYmVsQmFyUG9zaXRpb24uYmluZCh0aGlzKSwgZmFsc2UpOwotICAgICAgICB0aGlzLmVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXJFbGVtZW50KTsKLQotICAgICAgICB0aGlz
LmNyZWF0ZVNpZGViYXIodGhpcy5jb250YWluZXJFbGVtZW50LCB0aGlzLmVsZW1lbnQpOwotICAg
ICAgICB0aGlzLnNpZGViYXJFbGVtZW50LmlkID0gInJlc291cmNlcy1zaWRlYmFyIjsKLSAgICAg
ICAgdGhpcy5wb3B1bGF0ZVNpZGViYXIoKTsKLQotICAgICAgICB0aGlzLl9jb250YWluZXJDb250
ZW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB0aGlz
Ll9jb250YWluZXJDb250ZW50RWxlbWVudC5pZCA9ICJyZXNvdXJjZXMtY29udGFpbmVyLWNvbnRl
bnQiOwotICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY29u
dGFpbmVyQ29udGVudEVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuc3VtbWFyeUJhciA9IG5ldyBX
ZWJJbnNwZWN0b3IuU3VtbWFyeUJhcih0aGlzLmNhdGVnb3JpZXMpOwotICAgICAgICB0aGlzLnN1
bW1hcnlCYXIuZWxlbWVudC5pZCA9ICJyZXNvdXJjZXMtc3VtbWFyeSI7Ci0gICAgICAgIHRoaXMu
X2NvbnRhaW5lckNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc3VtbWFyeUJhci5lbGVt
ZW50KTsKLQotICAgICAgICB0aGlzLl90aW1lbGluZUdyaWQgPSBuZXcgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lR3JpZCgpOwotICAgICAgICB0aGlzLl9jb250YWluZXJDb250ZW50RWxlbWVudC5hcHBl
bmRDaGlsZCh0aGlzLl90aW1lbGluZUdyaWQuZWxlbWVudCk7Ci0gICAgICAgIHRoaXMuaXRlbXNH
cmFwaHNFbGVtZW50ID0gdGhpcy5fdGltZWxpbmVHcmlkLml0ZW1zR3JhcGhzRWxlbWVudDsKLSAg
ICB9LAotCi0gICAgY3JlYXRlRmlsdGVyUGFuZWw6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAg
IHRoaXMuZmlsdGVyQmFyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwot
ICAgICAgICB0aGlzLmZpbHRlckJhckVsZW1lbnQuaWQgPSAicmVzb3VyY2VzLWZpbHRlciI7Ci0g
ICAgICAgIHRoaXMuZmlsdGVyQmFyRWxlbWVudC5jbGFzc05hbWUgPSAic2NvcGUtYmFyIjsKLSAg
ICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZmlsdGVyQmFyRWxlbWVudCk7Ci0K
LSAgICAgICAgZnVuY3Rpb24gY3JlYXRlRmlsdGVyRWxlbWVudChjYXRlZ29yeSkKLSAgICAgICAg
ewotICAgICAgICAgICAgaWYgKGNhdGVnb3J5ID09PSAiYWxsIikKLSAgICAgICAgICAgICAgICB2
YXIgbGFiZWwgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFsbCIpOwotICAgICAgICAgICAgZWxz
ZSBpZiAodGhpcy5jYXRlZ29yaWVzW2NhdGVnb3J5XSkKLSAgICAgICAgICAgICAgICB2YXIgbGFi
ZWwgPSB0aGlzLmNhdGVnb3JpZXNbY2F0ZWdvcnldLnRpdGxlOwotCi0gICAgICAgICAgICB2YXIg
Y2F0ZWdvcnlFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKLSAgICAgICAg
ICAgIGNhdGVnb3J5RWxlbWVudC5jYXRlZ29yeSA9IGNhdGVnb3J5OwotICAgICAgICAgICAgY2F0
ZWdvcnlFbGVtZW50LmFkZFN0eWxlQ2xhc3MoY2F0ZWdvcnkpOwotICAgICAgICAgICAgY2F0ZWdv
cnlFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxhYmVsKSk7Ci0g
ICAgICAgICAgICBjYXRlZ29yeUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll91cGRhdGVGaWx0ZXIuYmluZCh0aGlzKSwgZmFsc2UpOwotICAgICAgICAgICAgdGhpcy5maWx0
ZXJCYXJFbGVtZW50LmFwcGVuZENoaWxkKGNhdGVnb3J5RWxlbWVudCk7Ci0KLSAgICAgICAgICAg
IHJldHVybiBjYXRlZ29yeUVsZW1lbnQ7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLmZpbHRl
ckFsbEVsZW1lbnQgPSBjcmVhdGVGaWx0ZXJFbGVtZW50LmNhbGwodGhpcywgImFsbCIpOwotCi0g
ICAgICAgIC8vIEFkZCBhIGRpdmlkZXIKLSAgICAgICAgdmFyIGRpdmlkZXJFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIGRpdmlkZXJFbGVtZW50LmFkZFN0
eWxlQ2xhc3MoImRpdmlkZXIiKTsKLSAgICAgICAgdGhpcy5maWx0ZXJCYXJFbGVtZW50LmFwcGVu
ZENoaWxkKGRpdmlkZXJFbGVtZW50KTsKLQotICAgICAgICBmb3IgKHZhciBjYXRlZ29yeSBpbiB0
aGlzLmNhdGVnb3JpZXMpCi0gICAgICAgICAgICBjcmVhdGVGaWx0ZXJFbGVtZW50LmNhbGwodGhp
cywgY2F0ZWdvcnkpOwotICAgIH0sCi0KLSAgICBzaG93Q2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVn
b3J5KQotICAgIHsKLSAgICAgICAgdmFyIGZpbHRlckNsYXNzID0gImZpbHRlci0iICsgY2F0ZWdv
cnkudG9Mb3dlckNhc2UoKTsKLSAgICAgICAgdGhpcy5pdGVtc0dyYXBoc0VsZW1lbnQuYWRkU3R5
bGVDbGFzcyhmaWx0ZXJDbGFzcyk7Ci0gICAgICAgIHRoaXMuaXRlbXNUcmVlRWxlbWVudC5jaGls
ZHJlbkxpc3RFbGVtZW50LmFkZFN0eWxlQ2xhc3MoZmlsdGVyQ2xhc3MpOwotICAgIH0sCi0KLSAg
ICBoaWRlQ2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KQotICAgIHsKLSAgICAgICAgdmFyIGZp
bHRlckNsYXNzID0gImZpbHRlci0iICsgY2F0ZWdvcnkudG9Mb3dlckNhc2UoKTsKLSAgICAgICAg
dGhpcy5pdGVtc0dyYXBoc0VsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcyhmaWx0ZXJDbGFzcyk7Ci0g
ICAgICAgIHRoaXMuaXRlbXNUcmVlRWxlbWVudC5jaGlsZHJlbkxpc3RFbGVtZW50LnJlbW92ZVN0
eWxlQ2xhc3MoZmlsdGVyQ2xhc3MpOwotICAgIH0sCi0KLSAgICBmaWx0ZXI6IGZ1bmN0aW9uKHRh
cmdldCwgc2VsZWN0TXVsdGlwbGUpCi0gICAgewotICAgICAgICBmdW5jdGlvbiB1bnNlbGVjdEFs
bCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5maWx0
ZXJCYXJFbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICB2
YXIgY2hpbGQgPSB0aGlzLmZpbHRlckJhckVsZW1lbnQuY2hpbGROb2Rlc1tpXTsKLSAgICAgICAg
ICAgICAgICBpZiAoIWNoaWxkLmNhdGVnb3J5KQotICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKLQotICAgICAgICAgICAgICAgIGNoaWxkLnJlbW92ZVN0eWxlQ2xhc3MoInNlbGVjdGVkIik7
Ci0gICAgICAgICAgICAgICAgdGhpcy5oaWRlQ2F0ZWdvcnkoY2hpbGQuY2F0ZWdvcnkpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRhcmdldCA9PT0gdGhpcy5maWx0
ZXJBbGxFbGVtZW50KSB7Ci0gICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc1N0eWxlQ2xhc3MoInNl
bGVjdGVkIikpIHsKLSAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCB1bnNlbGVjdCBBbGwsIHNv
IHdlIGJyZWFrIGVhcmx5IGhlcmUKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIC8vIElmIEFsbCB3YXNuJ3Qgc2VsZWN0ZWQsIGFuZCBub3cgaXMs
IHVuc2VsZWN0IGV2ZXJ5dGhpbmcgZWxzZS4KLSAgICAgICAgICAgIHVuc2VsZWN0QWxsLmNhbGwo
dGhpcyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBTb21ldGhpbmcgb3RoZXIg
dGhhbiBBbGwgaXMgYmVpbmcgc2VsZWN0ZWQsIHNvIHdlIHdhbnQgdG8gdW5zZWxlY3QgQWxsLgot
ICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVyQWxsRWxlbWVudC5oYXNTdHlsZUNsYXNzKCJzZWxl
Y3RlZCIpKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJBbGxFbGVtZW50LnJlbW92ZVN0
eWxlQ2xhc3MoInNlbGVjdGVkIik7Ci0gICAgICAgICAgICAgICAgdGhpcy5oaWRlQ2F0ZWdvcnko
ImFsbCIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFzZWxlY3RN
dWx0aXBsZSkgewotICAgICAgICAgICAgLy8gSWYgbXVsdGlwbGUgc2VsZWN0aW9uIGlzIG9mZiwg
d2Ugd2FudCB0byB1bnNlbGVjdCBldmVyeXRoaW5nIGVsc2UKLSAgICAgICAgICAgIC8vIGFuZCBq
dXN0IHNlbGVjdCBvdXJzZWx2ZXMuCi0gICAgICAgICAgICB1bnNlbGVjdEFsbC5jYWxsKHRoaXMp
OwotCi0gICAgICAgICAgICB0YXJnZXQuYWRkU3R5bGVDbGFzcygic2VsZWN0ZWQiKTsKLSAgICAg
ICAgICAgIHRoaXMuc2hvd0NhdGVnb3J5KHRhcmdldC5jYXRlZ29yeSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodGFyZ2V0Lmhhc1N0eWxlQ2xhc3MoInNl
bGVjdGVkIikpIHsKLSAgICAgICAgICAgIC8vIElmIHNlbGVjdE11bHRpcGxlIGlzIHR1cm5lZCBv
biwgYW5kIHdlIHdlcmUgc2VsZWN0ZWQsIHdlIGp1c3QKLSAgICAgICAgICAgIC8vIHdhbnQgdG8g
dW5zZWxlY3Qgb3Vyc2VsdmVzLgotICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZVN0eWxlQ2xhc3Mo
InNlbGVjdGVkIik7Ci0gICAgICAgICAgICB0aGlzLmhpZGVDYXRlZ29yeSh0YXJnZXQuY2F0ZWdv
cnkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gSWYgc2VsZWN0TXVsdGlwbGUg
aXMgdHVybmVkIG9uLCBhbmQgd2Ugd2VyZW4ndCBzZWxlY3RlZCwgd2UganVzdAotICAgICAgICAg
ICAgLy8gd2FudCB0byBzZWxlY3Qgb3Vyc2VsdmVzLgotICAgICAgICAgICAgdGFyZ2V0LmFkZFN0
eWxlQ2xhc3MoInNlbGVjdGVkIik7Ci0gICAgICAgICAgICB0aGlzLnNob3dDYXRlZ29yeSh0YXJn
ZXQuY2F0ZWdvcnkpOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF91cGRhdGVGaWx0ZXI6IGZ1
bmN0aW9uKGUpCi0gICAgewotICAgICAgICB2YXIgaXNNYWMgPSBXZWJJbnNwZWN0b3IuaXNNYWMo
KTsKLSAgICAgICAgdmFyIHNlbGVjdE11bHRpcGxlID0gZmFsc2U7Ci0gICAgICAgIGlmIChpc01h
YyAmJiBlLm1ldGFLZXkgJiYgIWUuY3RybEtleSAmJiAhZS5hbHRLZXkgJiYgIWUuc2hpZnRLZXkp
Ci0gICAgICAgICAgICBzZWxlY3RNdWx0aXBsZSA9IHRydWU7Ci0gICAgICAgIGlmICghaXNNYWMg
JiYgZS5jdHJsS2V5ICYmICFlLm1ldGFLZXkgJiYgIWUuYWx0S2V5ICYmICFlLnNoaWZ0S2V5KQot
ICAgICAgICAgICAgc2VsZWN0TXVsdGlwbGUgPSB0cnVlOwotCi0gICAgICAgIHRoaXMuZmlsdGVy
KGUudGFyZ2V0LCBzZWxlY3RNdWx0aXBsZSk7Ci0KLSAgICAgICAgLy8gV2hlbiB3ZSBhcmUgdXBk
YXRpbmcgb3VyIGZpbHRlcmluZywgc2Nyb2xsIHRvIHRoZSB0b3Agc28gd2UgZG9uJ3QgZW5kIHVw
Ci0gICAgICAgIC8vIGluIGJsYW5rIGdyYXBoIHVuZGVyIGFsbCB0aGUgcmVzb3VyY2VzLgotICAg
ICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wID0gMDsKLQotICAgICAgICB2YXIg
c2VhcmNoRmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoIik7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5kb1BlcmZvcm1TZWFyY2goc2VhcmNoRmllbGQudmFsdWUsIFdlYkluc3Bl
Y3Rvci5zaG9ydFNlYXJjaFdhc0ZvcmNlZEJ5S2V5RXZlbnQsIGZhbHNlLCB0cnVlKTsKLSAgICB9
LAotCi0gICAgdXBkYXRlR3JhcGhEaXZpZGVyc0lmTmVlZGVkOiBmdW5jdGlvbihmb3JjZSkKLSAg
ICB7Ci0gICAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7Ci0gICAgICAgICAgICB0aGlzLm5lZWRz
UmVmcmVzaCA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHRoaXMuX3RpbWVsaW5lR3JpZC51cGRhdGVEaXZpZGVycyhmb3JjZSwgdGhp
cy5jYWxjdWxhdG9yKTsKLSAgICB9LAotCi0gICAgX3VwZGF0ZURpdmlkZXJzTGFiZWxCYXJQb3Np
dGlvbjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5j
b250YWluZXJFbGVtZW50LnNjcm9sbFRvcDsKLSAgICAgICAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0g
dGhpcy5zdW1tYXJ5QmFyLmVsZW1lbnQub2Zmc2V0SGVpZ2h0OwotICAgICAgICBjb25zdCBkaXZp
ZGVyc1RvcCA9IChzY3JvbGxUb3AgPCBvZmZzZXRIZWlnaHQgPyBvZmZzZXRIZWlnaHQgOiBzY3Jv
bGxUb3ApOwotICAgICAgICB0aGlzLl90aW1lbGluZUdyaWQuc2V0U2Nyb2xsQW5kRGl2aWRlclRv
cChzY3JvbGxUb3AsIGRpdmlkZXJzVG9wKTsKLSAgICB9LAotCi0gICAgZ2V0IG5lZWRzUmVmcmVz
aCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbmVlZHNSZWZyZXNoOwotICAgIH0sCi0K
LSAgICBzZXQgbmVlZHNSZWZyZXNoKHgpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fbmVlZHNS
ZWZyZXNoID09PSB4KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX25lZWRz
UmVmcmVzaCA9IHg7Ci0KLSAgICAgICAgaWYgKHgpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLnZp
c2libGUgJiYgISgiX3JlZnJlc2hUaW1lb3V0IiBpbiB0aGlzKSkKLSAgICAgICAgICAgICAgICB0
aGlzLl9yZWZyZXNoVGltZW91dCA9IHNldFRpbWVvdXQodGhpcy5yZWZyZXNoLmJpbmQodGhpcyks
IDUwMCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoIl9yZWZyZXNoVGltZW91
dCIgaW4gdGhpcykgewotICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9yZWZyZXNo
VGltZW91dCk7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3JlZnJlc2hUaW1lb3V0Owot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSwKLQotICAgIHJlZnJlc2hJZk5lZWRlZDog
ZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMubmVlZHNSZWZyZXNoKQotICAgICAg
ICAgICAgdGhpcy5yZWZyZXNoKCk7Ci0gICAgfSwKLQotICAgIHNob3c6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMp
OwotCi0gICAgICAgIHRoaXMuX3VwZGF0ZURpdmlkZXJzTGFiZWxCYXJQb3NpdGlvbigpOwotICAg
ICAgICB0aGlzLnJlZnJlc2hJZk5lZWRlZCgpOwotICAgIH0sCi0KLSAgICByZXNpemU6IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUucmVzaXpl
LmNhbGwodGhpcyk7Ci0KLSAgICAgICAgdGhpcy51cGRhdGVHcmFwaERpdmlkZXJzSWZOZWVkZWQo
KTsKLSAgICB9LAotCi0gICAgdXBkYXRlTWFpblZpZXdXaWR0aDogZnVuY3Rpb24od2lkdGgpCi0g
ICAgewotICAgICAgICB0aGlzLl9jb250YWluZXJDb250ZW50RWxlbWVudC5zdHlsZS5sZWZ0ID0g
d2lkdGggKyAicHgiOwotICAgICAgICB0aGlzLnJlc2l6ZSgpOwotICAgIH0sCi0KLSAgICBpbnZh
bGlkYXRlQWxsSXRlbXM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3N0YWxlSXRl
bXMgPSB0aGlzLl9pdGVtcy5zbGljZSgpOwotICAgIH0sCi0KLSAgICByZWZyZXNoOiBmdW5jdGlv
bigpCi0gICAgewotICAgICAgICB0aGlzLm5lZWRzUmVmcmVzaCA9IGZhbHNlOwotCi0gICAgICAg
IHZhciBzdGFsZUl0ZW1zTGVuZ3RoID0gdGhpcy5fc3RhbGVJdGVtcy5sZW5ndGg7Ci0KLSAgICAg
ICAgdmFyIGJvdW5kYXJpZXNDaGFuZ2VkID0gZmFsc2U7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBzdGFsZUl0ZW1zTGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBpdGVtID0g
dGhpcy5fc3RhbGVJdGVtc1tpXTsKLSAgICAgICAgICAgIGlmICghaXRlbS5faXRlbXNUcmVlRWxl
bWVudCkgewotICAgICAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgdGltZWxpbmUgdHJlZSBlbGVt
ZW50IGFuZCBncmFwaC4KLSAgICAgICAgICAgICAgICBpdGVtLl9pdGVtc1RyZWVFbGVtZW50ID0g
dGhpcy5jcmVhdGVJdGVtVHJlZUVsZW1lbnQoaXRlbSk7Ci0gICAgICAgICAgICAgICAgaXRlbS5f
aXRlbXNUcmVlRWxlbWVudC5faXRlbUdyYXBoID0gdGhpcy5jcmVhdGVJdGVtR3JhcGgoaXRlbSk7
Ci0KLSAgICAgICAgICAgICAgICB0aGlzLml0ZW1zVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQoaXRl
bS5faXRlbXNUcmVlRWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5pdGVtc0dyYXBoc0Vs
ZW1lbnQuYXBwZW5kQ2hpbGQoaXRlbS5faXRlbXNUcmVlRWxlbWVudC5faXRlbUdyYXBoLmdyYXBo
RWxlbWVudCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChpdGVtLl9pdGVtc1Ry
ZWVFbGVtZW50LnJlZnJlc2gpCi0gICAgICAgICAgICAgICAgaXRlbS5faXRlbXNUcmVlRWxlbWVu
dC5yZWZyZXNoKCk7Ci0KLSAgICAgICAgICAgIGlmICh0aGlzLmNhbGN1bGF0b3IudXBkYXRlQm91
bmRhcmllcyhpdGVtKSkKLSAgICAgICAgICAgICAgICBib3VuZGFyaWVzQ2hhbmdlZCA9IHRydWU7
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYm91bmRhcmllc0NoYW5nZWQpIHsKLSAgICAgICAg
ICAgIC8vIFRoZSBib3VuZGFyaWVzIGNoYW5nZWQsIHNvIGFsbCBpdGVtIGdyYXBocyBhcmUgc3Rh
bGUuCi0gICAgICAgICAgICB0aGlzLl9zdGFsZUl0ZW1zID0gdGhpcy5faXRlbXMuc2xpY2UoKTsK
LSAgICAgICAgICAgIHN0YWxlSXRlbXNMZW5ndGggPSB0aGlzLl9zdGFsZUl0ZW1zLmxlbmd0aDsK
LSAgICAgICAgfQotCi0KLSAgICAgICAgY29uc3QgaXNCYXJPcGFxdWVBdExlZnQgPSB0aGlzLnNp
ZGViYXJUcmVlLnNlbGVjdGVkVHJlZUVsZW1lbnQgJiYgdGhpcy5zaWRlYmFyVHJlZS5zZWxlY3Rl
ZFRyZWVFbGVtZW50LmlzQmFyT3BhcXVlQXRMZWZ0OwotICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHN0YWxlSXRlbXNMZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX3N0YWxlSXRlbXNb
aV0uX2l0ZW1zVHJlZUVsZW1lbnQuX2l0ZW1HcmFwaC5yZWZyZXNoKHRoaXMuY2FsY3VsYXRvciwg
aXNCYXJPcGFxdWVBdExlZnQpOwotCi0gICAgICAgIHRoaXMuX3N0YWxlSXRlbXMgPSBbXTsKLQot
ICAgICAgICB0aGlzLnVwZGF0ZUdyYXBoRGl2aWRlcnNJZk5lZWRlZCgpOwotICAgIH0sCi0KLSAg
ICByZXNldDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50
LnNjcm9sbFRvcCA9IDA7Ci0KLSAgICAgICAgaWYgKHRoaXMuX2NhbGN1bGF0b3IpCi0gICAgICAg
ICAgICB0aGlzLl9jYWxjdWxhdG9yLnJlc2V0KCk7Ci0KLSAgICAgICAgaWYgKHRoaXMuX2l0ZW1z
KSB7Ci0gICAgICAgICAgICB2YXIgaXRlbXNMZW5ndGggPSB0aGlzLl9pdGVtcy5sZW5ndGg7Ci0g
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zTGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuX2l0ZW1zW2ldOwotICAgICAgICAgICAgICAgIGRl
bGV0ZSBpdGVtLl9pdGVtc1RyZWVFbGVtZW50OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0K
LSAgICAgICAgdGhpcy5faXRlbXMgPSBbXTsKLSAgICAgICAgdGhpcy5fc3RhbGVJdGVtcyA9IFtd
OwotCi0gICAgICAgIHRoaXMuaXRlbXNUcmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAg
ICAgICB0aGlzLml0ZW1zR3JhcGhzRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotCi0gICAgICAg
IHRoaXMudXBkYXRlR3JhcGhEaXZpZGVyc0lmTmVlZGVkKHRydWUpOwotICAgIH0sCi0KLSAgICBn
ZXQgY2FsY3VsYXRvcigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY2FsY3VsYXRvcjsK
LSAgICB9LAotCi0gICAgc2V0IGNhbGN1bGF0b3IoeCkKLSAgICB7Ci0gICAgICAgIGlmICgheCB8
fCB0aGlzLl9jYWxjdWxhdG9yID09PSB4KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IHRoaXMuX2NhbGN1bGF0b3IgPSB4OwotICAgICAgICB0aGlzLl9jYWxjdWxhdG9yLnJlc2V0KCk7
Ci0KLSAgICAgICAgdGhpcy5fc3RhbGVJdGVtcyA9IHRoaXMuX2l0ZW1zLnNsaWNlKCk7Ci0gICAg
ICAgIHRoaXMucmVmcmVzaCgpOwotICAgIH0sCi0KLSAgICBhZGRJdGVtOiBmdW5jdGlvbihpdGVt
KQotICAgIHsKLSAgICAgICAgdGhpcy5faXRlbXMucHVzaChpdGVtKTsKLSAgICAgICAgdGhpcy5y
ZWZyZXNoSXRlbShpdGVtKTsKLSAgICB9LAotCi0gICAgcmVtb3ZlSXRlbTogZnVuY3Rpb24oaXRl
bSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2l0ZW1zLnJlbW92ZShpdGVtLCB0cnVlKTsKLQotICAg
ICAgICBpZiAoaXRlbS5faXRlbXNUcmVlRWxlbWVudCkgewotICAgICAgICAgICAgdGhpcy5pdGVt
c1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKGl0ZW0uX2l0ZW1zVHJlZUVsZW1lbnQpOwotICAgICAg
ICAgICAgdGhpcy5pdGVtc0dyYXBoc0VsZW1lbnQucmVtb3ZlQ2hpbGQoaXRlbS5faXRlbXNUcmVl
RWxlbWVudC5faXRlbUdyYXBoLmdyYXBoRWxlbWVudCk7Ci0gICAgICAgIH0KLQotICAgICAgICBk
ZWxldGUgaXRlbS5faXRlbXNUcmVlRWxlbWVudDsKLSAgICAgICAgdGhpcy5hZGp1c3RTY3JvbGxQ
b3NpdGlvbigpOwotICAgIH0sCi0KLSAgICByZWZyZXNoSXRlbTogZnVuY3Rpb24oaXRlbSkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuX3N0YWxlSXRlbXMucHVzaChpdGVtKTsKLSAgICAgICAgdGhpcy5u
ZWVkc1JlZnJlc2ggPSB0cnVlOwotICAgIH0sCi0KLSAgICByZXZlYWxBbmRTZWxlY3RJdGVtOiBm
dW5jdGlvbihpdGVtKQotICAgIHsKLSAgICAgICAgaWYgKGl0ZW0uX2l0ZW1zVHJlZUVsZW1lbnQp
IHsKLSAgICAgICAgICAgIGl0ZW0uX2l0ZW1zVHJlZUVsZW1lbnQucmV2ZWFsKCk7Ci0gICAgICAg
ICAgICBpdGVtLl9pdGVtc1RyZWVFbGVtZW50LnNlbGVjdCh0cnVlKTsKLSAgICAgICAgfQotICAg
IH0sCi0KLSAgICBzb3J0SXRlbXM6IGZ1bmN0aW9uKHNvcnRpbmdGdW5jdGlvbikKLSAgICB7Ci0g
ICAgICAgIHZhciBzb3J0ZWRFbGVtZW50cyA9IFtdLmNvbmNhdCh0aGlzLml0ZW1zVHJlZUVsZW1l
bnQuY2hpbGRyZW4pOwotICAgICAgICBzb3J0ZWRFbGVtZW50cy5zb3J0KHNvcnRpbmdGdW5jdGlv
bik7Ci0KLSAgICAgICAgdmFyIHNvcnRlZEVsZW1lbnRzTGVuZ3RoID0gc29ydGVkRWxlbWVudHMu
bGVuZ3RoOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZEVsZW1lbnRzTGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHNvcnRlZEVsZW1lbnRzW2ld
OwotICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50ID09PSB0aGlzLml0ZW1zVHJlZUVsZW1lbnQu
Y2hpbGRyZW5baV0pCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIHZh
ciB3YXNTZWxlY3RlZCA9IHRyZWVFbGVtZW50LnNlbGVjdGVkOwotICAgICAgICAgICAgdGhpcy5p
dGVtc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKLSAgICAgICAgICAgIHRo
aXMuaXRlbXNUcmVlRWxlbWVudC5pbnNlcnRDaGlsZCh0cmVlRWxlbWVudCwgaSk7Ci0gICAgICAg
ICAgICBpZiAod2FzU2VsZWN0ZWQpCi0gICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuc2VsZWN0
KHRydWUpOwotCi0gICAgICAgICAgICB2YXIgZ3JhcGhFbGVtZW50ID0gdHJlZUVsZW1lbnQuX2l0
ZW1HcmFwaC5ncmFwaEVsZW1lbnQ7Ci0gICAgICAgICAgICB0aGlzLml0ZW1zR3JhcGhzRWxlbWVu
dC5pbnNlcnRCZWZvcmUoZ3JhcGhFbGVtZW50LCB0aGlzLml0ZW1zR3JhcGhzRWxlbWVudC5jaGls
ZHJlbltpXSk7Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgYWRqdXN0U2Nyb2xsUG9zaXRpb246
IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIC8vIFByZXZlbnQgdGhlIGNvbnRhaW5lciBmcm9t
IGJlaW5nIHNjcm9sbGVkIG9mZiB0aGUgZW5kLgotICAgICAgICBpZiAoKHRoaXMuY29udGFpbmVy
RWxlbWVudC5zY3JvbGxUb3AgKyB0aGlzLmNvbnRhaW5lckVsZW1lbnQub2Zmc2V0SGVpZ2h0KSA+
IHRoaXMuc2lkZWJhckVsZW1lbnQub2Zmc2V0SGVpZ2h0KQotICAgICAgICAgICAgdGhpcy5jb250
YWluZXJFbGVtZW50LnNjcm9sbFRvcCA9ICh0aGlzLnNpZGViYXJFbGVtZW50Lm9mZnNldEhlaWdo
dCAtIHRoaXMuY29udGFpbmVyRWxlbWVudC5vZmZzZXRIZWlnaHQpOwotICAgIH0sCi0KLSAgICBh
ZGRFdmVudERpdmlkZXI6IGZ1bmN0aW9uKGRpdmlkZXIpCi0gICAgewotICAgICAgICB0aGlzLl90
aW1lbGluZUdyaWQuYWRkRXZlbnREaXZpZGVyKGRpdmlkZXIpOwotICAgIH0sCi0KLSAgICBoaWRl
RXZlbnREaXZpZGVyczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fdGltZWxpbmVH
cmlkLmhpZGVFdmVudERpdmlkZXJzKCk7Ci0gICAgfSwKLQotICAgIHNob3dFdmVudERpdmlkZXJz
OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl90aW1lbGluZUdyaWQuc2hvd0V2ZW50
RGl2aWRlcnMoKTsKLSAgICB9Ci19Ci0KLVdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGU7Ci0K
LVdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lQ2FsY3VsYXRvciA9IGZ1bmN0aW9uKCkKLXsK
LX0KLQotV2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVDYWxjdWxhdG9yLnByb3RvdHlwZSA9
IHsKLSAgICBjb21wdXRlU3VtbWFyeVZhbHVlczogZnVuY3Rpb24oaXRlbXMpCi0gICAgewotICAg
ICAgICB2YXIgdG90YWwgPSAwOwotICAgICAgICB2YXIgY2F0ZWdvcnlWYWx1ZXMgPSB7fTsKLQot
ICAgICAgICB2YXIgaXRlbXNMZW5ndGggPSBpdGVtcy5sZW5ndGg7Ci0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgaXRlbXNMZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGl0ZW0gPSBp
dGVtc1tpXTsKLSAgICAgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuX3ZhbHVlKGl0ZW0pOwotICAg
ICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gInVuZGVmaW5lZCIpCi0gICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoIShpdGVtLmNhdGVnb3J5Lm5hbWUgaW4gY2F0
ZWdvcnlWYWx1ZXMpKQotICAgICAgICAgICAgICAgIGNhdGVnb3J5VmFsdWVzW2l0ZW0uY2F0ZWdv
cnkubmFtZV0gPSAwOwotICAgICAgICAgICAgY2F0ZWdvcnlWYWx1ZXNbaXRlbS5jYXRlZ29yeS5u
YW1lXSArPSB2YWx1ZTsKLSAgICAgICAgICAgIHRvdGFsICs9IHZhbHVlOwotICAgICAgICB9Ci0K
LSAgICAgICAgcmV0dXJuIHtjYXRlZ29yeVZhbHVlczogY2F0ZWdvcnlWYWx1ZXMsIHRvdGFsOiB0
b3RhbH07Ci0gICAgfSwKLQotICAgIGNvbXB1dGVCYXJHcmFwaFBlcmNlbnRhZ2VzOiBmdW5jdGlv
bihpdGVtKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHtzdGFydDogMCwgbWlkZGxlOiAwLCBlbmQ6
ICh0aGlzLl92YWx1ZShpdGVtKSAvIHRoaXMuYm91bmRhcnlTcGFuKSAqIDEwMH07Ci0gICAgfSwK
LQotICAgIGNvbXB1dGVCYXJHcmFwaExhYmVsczogZnVuY3Rpb24oaXRlbSkKLSAgICB7Ci0gICAg
ICAgIGNvbnN0IGxhYmVsID0gdGhpcy5mb3JtYXRWYWx1ZSh0aGlzLl92YWx1ZShpdGVtKSk7Ci0g
ICAgICAgIHJldHVybiB7bGVmdDogbGFiZWwsIHJpZ2h0OiBsYWJlbCwgdG9vbHRpcDogbGFiZWx9
OwotICAgIH0sCi0KLSAgICBnZXQgYm91bmRhcnlTcGFuKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLm1heGltdW1Cb3VuZGFyeSAtIHRoaXMubWluaW11bUJvdW5kYXJ5OwotICAgIH0sCi0K
LSAgICB1cGRhdGVCb3VuZGFyaWVzOiBmdW5jdGlvbihpdGVtKQotICAgIHsKLSAgICAgICAgdGhp
cy5taW5pbXVtQm91bmRhcnkgPSAwOwotCi0gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuX3ZhbHVl
KGl0ZW0pOwotICAgICAgICBpZiAodHlwZW9mIHRoaXMubWF4aW11bUJvdW5kYXJ5ID09PSAidW5k
ZWZpbmVkIiB8fCB2YWx1ZSA+IHRoaXMubWF4aW11bUJvdW5kYXJ5KSB7Ci0gICAgICAgICAgICB0
aGlzLm1heGltdW1Cb3VuZGFyeSA9IHZhbHVlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KLSAgICByZXNldDogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgZGVsZXRlIHRoaXMubWluaW11bUJvdW5kYXJ5OwotICAg
ICAgICBkZWxldGUgdGhpcy5tYXhpbXVtQm91bmRhcnk7Ci0gICAgfSwKLQotICAgIF92YWx1ZTog
ZnVuY3Rpb24oaXRlbSkKLSAgICB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0sCi0KLSAgICBm
b3JtYXRWYWx1ZTogZnVuY3Rpb24odmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gdmFsdWUu
dG9TdHJpbmcoKTsKLSAgICB9Ci19Ci0KLVdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lQ2F0
ZWdvcnkgPSBmdW5jdGlvbihuYW1lLCB0aXRsZSwgY29sb3IpCi17Ci0gICAgdGhpcy5uYW1lID0g
bmFtZTsKLSAgICB0aGlzLnRpdGxlID0gdGl0bGU7Ci0gICAgdGhpcy5jb2xvciA9IGNvbG9yOwot
fQotCi1XZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZUNhdGVnb3J5LnByb3RvdHlwZSA9IHsK
LSAgICB0b1N0cmluZzogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudGl0
bGU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlQ2F0ZWdvcnkuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VD
YXRlZ29yeS5qcwppbmRleCA2ZTk0MjY1Li44NGYyY2Y5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDYXRlZ29yeS5qcworKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDYXRlZ29yeS5qcwpAQCAtMjgsMTIgKzI4LDE5IEBACiAK
IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNhdGVnb3J5ID0gZnVuY3Rpb24obmFtZSwgdGl0bGUsIGNv
bG9yKQogewotICAgIFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lQ2F0ZWdvcnkuY2FsbCh0
aGlzLCBuYW1lLCB0aXRsZSwgY29sb3IpOworICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgdGhp
cy50aXRsZSA9IHRpdGxlOworICAgIHRoaXMuY29sb3IgPSBjb2xvcjsKICAgICB0aGlzLnJlc291
cmNlcyA9IFtdOwogfQogCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDYXRlZ29yeS5wcm90b3R5cGUg
PSB7CiAKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMudGl0bGU7CisgICAgfSwKKwogICAgIGFkZFJlc291cmNlOiBmdW5jdGlvbihyZXNvdXJjZSkK
ICAgICB7CiAgICAgICAgIHZhciBhID0gcmVzb3VyY2U7CkBAIC02MSw1ICs2OCwzIEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZUNhdGVnb3J5LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5yZXNv
dXJjZXMgPSBbXTsKICAgICB9CiB9Ci0KLVdlYkluc3BlY3Rvci5SZXNvdXJjZUNhdGVnb3J5LnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZUNhdGVnb3J5
LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZXNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5l
bC5qcwppbmRleCBmMzI5YjFhLi5hYTAyMWZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC0yOSw3ICsyOSwxMCBAQAogCiBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VzUGFuZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLkFic3Ry
YWN0VGltZWxpbmVQYW5lbC5jYWxsKHRoaXMsICJyZXNvdXJjZXMiKTsKKyAgICBXZWJJbnNwZWN0
b3IuUGFuZWwuY2FsbCh0aGlzLCAicmVzb3VyY2VzIik7CisKKyAgICB0aGlzLl9pdGVtcyA9IFtd
OworICAgIHRoaXMuX3N0YWxlSXRlbXMgPSBbXTsKIAogICAgIHRoaXMuX2NyZWF0ZVBhbmVsRW5h
YmxlcigpOwogCkBAIC04Miw2ICs4NSwyOTkgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuICh0aGlzLml0ZW1zR3JhcGhzRWxlbWVudC5o
YXNTdHlsZUNsYXNzKCJmaWx0ZXItYWxsIikgfHwgdGhpcy5pdGVtc0dyYXBoc0VsZW1lbnQuaGFz
U3R5bGVDbGFzcygiZmlsdGVyLSIgKyBjYXRlZ29yeU5hbWUudG9Mb3dlckNhc2UoKSkpOwogICAg
IH0sCiAKKyAgICBnZXQgaXRlbXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1z
OworICAgIH0sCisKKyAgICBjcmVhdGVJbnRlcmZhY2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHRoaXMuY29udGFpbmVyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OworICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuaWQgPSAicmVzb3VyY2VzLWNvbnRhaW5l
ciI7CisgICAgICAgIHRoaXMuY29udGFpbmVyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3Jv
bGwiLCB0aGlzLl91cGRhdGVEaXZpZGVyc0xhYmVsQmFyUG9zaXRpb24uYmluZCh0aGlzKSwgZmFs
c2UpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXJFbGVt
ZW50KTsKKworICAgICAgICB0aGlzLmNyZWF0ZVNpZGViYXIodGhpcy5jb250YWluZXJFbGVtZW50
LCB0aGlzLmVsZW1lbnQpOworICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LmlkID0gInJlc291
cmNlcy1zaWRlYmFyIjsKKyAgICAgICAgdGhpcy5wb3B1bGF0ZVNpZGViYXIoKTsKKworICAgICAg
ICB0aGlzLl9jb250YWluZXJDb250ZW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgICAgICB0aGlzLl9jb250YWluZXJDb250ZW50RWxlbWVudC5pZCA9ICJyZXNv
dXJjZXMtY29udGFpbmVyLWNvbnRlbnQiOworICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fY29udGFpbmVyQ29udGVudEVsZW1lbnQpOworCisgICAgICAgIHRo
aXMuc3VtbWFyeUJhciA9IG5ldyBXZWJJbnNwZWN0b3IuU3VtbWFyeUJhcih0aGlzLmNhdGVnb3Jp
ZXMpOworICAgICAgICB0aGlzLnN1bW1hcnlCYXIuZWxlbWVudC5pZCA9ICJyZXNvdXJjZXMtc3Vt
bWFyeSI7CisgICAgICAgIHRoaXMuX2NvbnRhaW5lckNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuc3VtbWFyeUJhci5lbGVtZW50KTsKKworICAgICAgICB0aGlzLl90aW1lbGluZUdyaWQg
PSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lR3JpZCgpOworICAgICAgICB0aGlzLl9jb250YWlu
ZXJDb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl90aW1lbGluZUdyaWQuZWxlbWVudCk7
CisgICAgICAgIHRoaXMuaXRlbXNHcmFwaHNFbGVtZW50ID0gdGhpcy5fdGltZWxpbmVHcmlkLml0
ZW1zR3JhcGhzRWxlbWVudDsKKyAgICB9LAorCisgICAgY3JlYXRlRmlsdGVyUGFuZWw6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuZmlsdGVyQmFyRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICB0aGlzLmZpbHRlckJhckVsZW1lbnQuaWQgPSAi
cmVzb3VyY2VzLWZpbHRlciI7CisgICAgICAgIHRoaXMuZmlsdGVyQmFyRWxlbWVudC5jbGFzc05h
bWUgPSAic2NvcGUtYmFyIjsKKyAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
ZmlsdGVyQmFyRWxlbWVudCk7CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlRmlsdGVyRWxlbWVu
dChjYXRlZ29yeSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGNhdGVnb3J5ID09PSAiYWxs
IikKKyAgICAgICAgICAgICAgICB2YXIgbGFiZWwgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFs
bCIpOworICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5jYXRlZ29yaWVzW2NhdGVnb3J5XSkKKyAg
ICAgICAgICAgICAgICB2YXIgbGFiZWwgPSB0aGlzLmNhdGVnb3JpZXNbY2F0ZWdvcnldLnRpdGxl
OworCisgICAgICAgICAgICB2YXIgY2F0ZWdvcnlFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgibGkiKTsKKyAgICAgICAgICAgIGNhdGVnb3J5RWxlbWVudC5jYXRlZ29yeSA9IGNhdGVn
b3J5OworICAgICAgICAgICAgY2F0ZWdvcnlFbGVtZW50LmFkZFN0eWxlQ2xhc3MoY2F0ZWdvcnkp
OworICAgICAgICAgICAgY2F0ZWdvcnlFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKGxhYmVsKSk7CisgICAgICAgICAgICBjYXRlZ29yeUVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCB0aGlzLl91cGRhdGVGaWx0ZXIuYmluZCh0aGlzKSwgZmFsc2UpOwor
ICAgICAgICAgICAgdGhpcy5maWx0ZXJCYXJFbGVtZW50LmFwcGVuZENoaWxkKGNhdGVnb3J5RWxl
bWVudCk7CisKKyAgICAgICAgICAgIHJldHVybiBjYXRlZ29yeUVsZW1lbnQ7CisgICAgICAgIH0K
KworICAgICAgICB0aGlzLmZpbHRlckFsbEVsZW1lbnQgPSBjcmVhdGVGaWx0ZXJFbGVtZW50LmNh
bGwodGhpcywgImFsbCIpOworCisgICAgICAgIC8vIEFkZCBhIGRpdmlkZXIKKyAgICAgICAgdmFy
IGRpdmlkZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAg
IGRpdmlkZXJFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImRpdmlkZXIiKTsKKyAgICAgICAgdGhpcy5m
aWx0ZXJCYXJFbGVtZW50LmFwcGVuZENoaWxkKGRpdmlkZXJFbGVtZW50KTsKKworICAgICAgICBm
b3IgKHZhciBjYXRlZ29yeSBpbiB0aGlzLmNhdGVnb3JpZXMpCisgICAgICAgICAgICBjcmVhdGVG
aWx0ZXJFbGVtZW50LmNhbGwodGhpcywgY2F0ZWdvcnkpOworICAgIH0sCisKKyAgICBzaG93Q2F0
ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KQorICAgIHsKKyAgICAgICAgdmFyIGZpbHRlckNsYXNz
ID0gImZpbHRlci0iICsgY2F0ZWdvcnkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgdGhpcy5pdGVt
c0dyYXBoc0VsZW1lbnQuYWRkU3R5bGVDbGFzcyhmaWx0ZXJDbGFzcyk7CisgICAgICAgIHRoaXMu
aXRlbXNUcmVlRWxlbWVudC5jaGlsZHJlbkxpc3RFbGVtZW50LmFkZFN0eWxlQ2xhc3MoZmlsdGVy
Q2xhc3MpOworICAgIH0sCisKKyAgICBoaWRlQ2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KQor
ICAgIHsKKyAgICAgICAgdmFyIGZpbHRlckNsYXNzID0gImZpbHRlci0iICsgY2F0ZWdvcnkudG9M
b3dlckNhc2UoKTsKKyAgICAgICAgdGhpcy5pdGVtc0dyYXBoc0VsZW1lbnQucmVtb3ZlU3R5bGVD
bGFzcyhmaWx0ZXJDbGFzcyk7CisgICAgICAgIHRoaXMuaXRlbXNUcmVlRWxlbWVudC5jaGlsZHJl
bkxpc3RFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoZmlsdGVyQ2xhc3MpOworICAgIH0sCisKKyAg
ICBmaWx0ZXI6IGZ1bmN0aW9uKHRhcmdldCwgc2VsZWN0TXVsdGlwbGUpCisgICAgeworICAgICAg
ICBmdW5jdGlvbiB1bnNlbGVjdEFsbCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGhpcy5maWx0ZXJCYXJFbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgICAgICB2YXIgY2hpbGQgPSB0aGlzLmZpbHRlckJhckVsZW1lbnQuY2hp
bGROb2Rlc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLmNhdGVnb3J5KQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGNoaWxkLnJlbW92ZVN0
eWxlQ2xhc3MoInNlbGVjdGVkIik7CisgICAgICAgICAgICAgICAgdGhpcy5oaWRlQ2F0ZWdvcnko
Y2hpbGQuY2F0ZWdvcnkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYg
KHRhcmdldCA9PT0gdGhpcy5maWx0ZXJBbGxFbGVtZW50KSB7CisgICAgICAgICAgICBpZiAodGFy
Z2V0Lmhhc1N0eWxlQ2xhc3MoInNlbGVjdGVkIikpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBj
YW4ndCB1bnNlbGVjdCBBbGwsIHNvIHdlIGJyZWFrIGVhcmx5IGhlcmUKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIElmIEFsbCB3YXNuJ3Qg
c2VsZWN0ZWQsIGFuZCBub3cgaXMsIHVuc2VsZWN0IGV2ZXJ5dGhpbmcgZWxzZS4KKyAgICAgICAg
ICAgIHVuc2VsZWN0QWxsLmNhbGwodGhpcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAvLyBTb21ldGhpbmcgb3RoZXIgdGhhbiBBbGwgaXMgYmVpbmcgc2VsZWN0ZWQsIHNvIHdlIHdh
bnQgdG8gdW5zZWxlY3QgQWxsLgorICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVyQWxsRWxlbWVu
dC5oYXNTdHlsZUNsYXNzKCJzZWxlY3RlZCIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5maWx0
ZXJBbGxFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInNlbGVjdGVkIik7CisgICAgICAgICAgICAg
ICAgdGhpcy5oaWRlQ2F0ZWdvcnkoImFsbCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
KyAgICAgICAgaWYgKCFzZWxlY3RNdWx0aXBsZSkgeworICAgICAgICAgICAgLy8gSWYgbXVsdGlw
bGUgc2VsZWN0aW9uIGlzIG9mZiwgd2Ugd2FudCB0byB1bnNlbGVjdCBldmVyeXRoaW5nIGVsc2UK
KyAgICAgICAgICAgIC8vIGFuZCBqdXN0IHNlbGVjdCBvdXJzZWx2ZXMuCisgICAgICAgICAgICB1
bnNlbGVjdEFsbC5jYWxsKHRoaXMpOworCisgICAgICAgICAgICB0YXJnZXQuYWRkU3R5bGVDbGFz
cygic2VsZWN0ZWQiKTsKKyAgICAgICAgICAgIHRoaXMuc2hvd0NhdGVnb3J5KHRhcmdldC5jYXRl
Z29yeSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodGFy
Z2V0Lmhhc1N0eWxlQ2xhc3MoInNlbGVjdGVkIikpIHsKKyAgICAgICAgICAgIC8vIElmIHNlbGVj
dE11bHRpcGxlIGlzIHR1cm5lZCBvbiwgYW5kIHdlIHdlcmUgc2VsZWN0ZWQsIHdlIGp1c3QKKyAg
ICAgICAgICAgIC8vIHdhbnQgdG8gdW5zZWxlY3Qgb3Vyc2VsdmVzLgorICAgICAgICAgICAgdGFy
Z2V0LnJlbW92ZVN0eWxlQ2xhc3MoInNlbGVjdGVkIik7CisgICAgICAgICAgICB0aGlzLmhpZGVD
YXRlZ29yeSh0YXJnZXQuY2F0ZWdvcnkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
Ly8gSWYgc2VsZWN0TXVsdGlwbGUgaXMgdHVybmVkIG9uLCBhbmQgd2Ugd2VyZW4ndCBzZWxlY3Rl
ZCwgd2UganVzdAorICAgICAgICAgICAgLy8gd2FudCB0byBzZWxlY3Qgb3Vyc2VsdmVzLgorICAg
ICAgICAgICAgdGFyZ2V0LmFkZFN0eWxlQ2xhc3MoInNlbGVjdGVkIik7CisgICAgICAgICAgICB0
aGlzLnNob3dDYXRlZ29yeSh0YXJnZXQuY2F0ZWdvcnkpOworICAgICAgICB9CisgICAgfSwKKwor
ICAgIF91cGRhdGVGaWx0ZXI6IGZ1bmN0aW9uKGUpCisgICAgeworICAgICAgICB2YXIgaXNNYWMg
PSBXZWJJbnNwZWN0b3IuaXNNYWMoKTsKKyAgICAgICAgdmFyIHNlbGVjdE11bHRpcGxlID0gZmFs
c2U7CisgICAgICAgIGlmIChpc01hYyAmJiBlLm1ldGFLZXkgJiYgIWUuY3RybEtleSAmJiAhZS5h
bHRLZXkgJiYgIWUuc2hpZnRLZXkpCisgICAgICAgICAgICBzZWxlY3RNdWx0aXBsZSA9IHRydWU7
CisgICAgICAgIGlmICghaXNNYWMgJiYgZS5jdHJsS2V5ICYmICFlLm1ldGFLZXkgJiYgIWUuYWx0
S2V5ICYmICFlLnNoaWZ0S2V5KQorICAgICAgICAgICAgc2VsZWN0TXVsdGlwbGUgPSB0cnVlOwor
CisgICAgICAgIHRoaXMuZmlsdGVyKGUudGFyZ2V0LCBzZWxlY3RNdWx0aXBsZSk7CisKKyAgICAg
ICAgLy8gV2hlbiB3ZSBhcmUgdXBkYXRpbmcgb3VyIGZpbHRlcmluZywgc2Nyb2xsIHRvIHRoZSB0
b3Agc28gd2UgZG9uJ3QgZW5kIHVwCisgICAgICAgIC8vIGluIGJsYW5rIGdyYXBoIHVuZGVyIGFs
bCB0aGUgcmVzb3VyY2VzLgorICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9w
ID0gMDsKKworICAgICAgICB2YXIgc2VhcmNoRmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic2VhcmNoIik7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb1BlcmZvcm1TZWFyY2goc2VhcmNo
RmllbGQudmFsdWUsIFdlYkluc3BlY3Rvci5zaG9ydFNlYXJjaFdhc0ZvcmNlZEJ5S2V5RXZlbnQs
IGZhbHNlLCB0cnVlKTsKKyAgICB9LAorCisgICAgX3VwZGF0ZURpdmlkZXJzTGFiZWxCYXJQb3Np
dGlvbjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5j
b250YWluZXJFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0g
dGhpcy5zdW1tYXJ5QmFyLmVsZW1lbnQub2Zmc2V0SGVpZ2h0OworICAgICAgICBjb25zdCBkaXZp
ZGVyc1RvcCA9IChzY3JvbGxUb3AgPCBvZmZzZXRIZWlnaHQgPyBvZmZzZXRIZWlnaHQgOiBzY3Jv
bGxUb3ApOworICAgICAgICB0aGlzLl90aW1lbGluZUdyaWQuc2V0U2Nyb2xsQW5kRGl2aWRlclRv
cChzY3JvbGxUb3AsIGRpdmlkZXJzVG9wKTsKKyAgICB9LAorCisgICAgZ2V0IG5lZWRzUmVmcmVz
aCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fbmVlZHNSZWZyZXNoOworICAgIH0sCisK
KyAgICBzZXQgbmVlZHNSZWZyZXNoKHgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fbmVlZHNS
ZWZyZXNoID09PSB4KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX25lZWRz
UmVmcmVzaCA9IHg7CisKKyAgICAgICAgaWYgKHgpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLnZp
c2libGUgJiYgISgiX3JlZnJlc2hUaW1lb3V0IiBpbiB0aGlzKSkKKyAgICAgICAgICAgICAgICB0
aGlzLl9yZWZyZXNoVGltZW91dCA9IHNldFRpbWVvdXQodGhpcy5yZWZyZXNoLmJpbmQodGhpcyks
IDUwMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIl9yZWZyZXNoVGltZW91
dCIgaW4gdGhpcykgeworICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9yZWZyZXNo
VGltZW91dCk7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3JlZnJlc2hUaW1lb3V0Owor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKworICAgIHJlZnJlc2hJZk5lZWRlZDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMubmVlZHNSZWZyZXNoKQorICAgICAg
ICAgICAgdGhpcy5yZWZyZXNoKCk7CisgICAgfSwKKworICAgIHJlc2l6ZTogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5yZXNpemUuY2FsbCh0
aGlzKTsKKworICAgICAgICB0aGlzLnVwZGF0ZUdyYXBoRGl2aWRlcnNJZk5lZWRlZCgpOworICAg
IH0sCisKKyAgICBpbnZhbGlkYXRlQWxsSXRlbXM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IHRoaXMuX3N0YWxlSXRlbXMgPSB0aGlzLl9pdGVtcy5zbGljZSgpOworICAgIH0sCisKKyAgICBn
ZXQgY2FsY3VsYXRvcigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY2FsY3VsYXRvcjsK
KyAgICB9LAorCisgICAgc2V0IGNhbGN1bGF0b3IoeCkKKyAgICB7CisgICAgICAgIGlmICgheCB8
fCB0aGlzLl9jYWxjdWxhdG9yID09PSB4KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHRoaXMuX2NhbGN1bGF0b3IgPSB4OworICAgICAgICB0aGlzLl9jYWxjdWxhdG9yLnJlc2V0KCk7
CisKKyAgICAgICAgdGhpcy5fc3RhbGVJdGVtcyA9IHRoaXMuX2l0ZW1zLnNsaWNlKCk7CisgICAg
ICAgIHRoaXMucmVmcmVzaCgpOworICAgIH0sCisKKyAgICBhZGRJdGVtOiBmdW5jdGlvbihpdGVt
KQorICAgIHsKKyAgICAgICAgdGhpcy5faXRlbXMucHVzaChpdGVtKTsKKyAgICAgICAgdGhpcy5y
ZWZyZXNoSXRlbShpdGVtKTsKKyAgICB9LAorCisgICAgcmVtb3ZlSXRlbTogZnVuY3Rpb24oaXRl
bSkKKyAgICB7CisgICAgICAgIHRoaXMuX2l0ZW1zLnJlbW92ZShpdGVtLCB0cnVlKTsKKworICAg
ICAgICBpZiAoaXRlbS5faXRlbXNUcmVlRWxlbWVudCkgeworICAgICAgICAgICAgdGhpcy5pdGVt
c1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKGl0ZW0uX2l0ZW1zVHJlZUVsZW1lbnQpOworICAgICAg
ICAgICAgdGhpcy5pdGVtc0dyYXBoc0VsZW1lbnQucmVtb3ZlQ2hpbGQoaXRlbS5faXRlbXNUcmVl
RWxlbWVudC5faXRlbUdyYXBoLmdyYXBoRWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBk
ZWxldGUgaXRlbS5faXRlbXNUcmVlRWxlbWVudDsKKyAgICAgICAgdGhpcy5hZGp1c3RTY3JvbGxQ
b3NpdGlvbigpOworICAgIH0sCisKKyAgICByZWZyZXNoSXRlbTogZnVuY3Rpb24oaXRlbSkKKyAg
ICB7CisgICAgICAgIHRoaXMuX3N0YWxlSXRlbXMucHVzaChpdGVtKTsKKyAgICAgICAgdGhpcy5u
ZWVkc1JlZnJlc2ggPSB0cnVlOworICAgIH0sCisKKyAgICByZXZlYWxBbmRTZWxlY3RJdGVtOiBm
dW5jdGlvbihpdGVtKQorICAgIHsKKyAgICAgICAgaWYgKGl0ZW0uX2l0ZW1zVHJlZUVsZW1lbnQp
IHsKKyAgICAgICAgICAgIGl0ZW0uX2l0ZW1zVHJlZUVsZW1lbnQucmV2ZWFsKCk7CisgICAgICAg
ICAgICBpdGVtLl9pdGVtc1RyZWVFbGVtZW50LnNlbGVjdCh0cnVlKTsKKyAgICAgICAgfQorICAg
IH0sCisKKyAgICBzb3J0SXRlbXM6IGZ1bmN0aW9uKHNvcnRpbmdGdW5jdGlvbikKKyAgICB7Cisg
ICAgICAgIHZhciBzb3J0ZWRFbGVtZW50cyA9IFtdLmNvbmNhdCh0aGlzLml0ZW1zVHJlZUVsZW1l
bnQuY2hpbGRyZW4pOworICAgICAgICBzb3J0ZWRFbGVtZW50cy5zb3J0KHNvcnRpbmdGdW5jdGlv
bik7CisKKyAgICAgICAgdmFyIHNvcnRlZEVsZW1lbnRzTGVuZ3RoID0gc29ydGVkRWxlbWVudHMu
bGVuZ3RoOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZEVsZW1lbnRzTGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHNvcnRlZEVsZW1lbnRzW2ld
OworICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50ID09PSB0aGlzLml0ZW1zVHJlZUVsZW1lbnQu
Y2hpbGRyZW5baV0pCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIHZh
ciB3YXNTZWxlY3RlZCA9IHRyZWVFbGVtZW50LnNlbGVjdGVkOworICAgICAgICAgICAgdGhpcy5p
dGVtc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxkKHRyZWVFbGVtZW50KTsKKyAgICAgICAgICAgIHRo
aXMuaXRlbXNUcmVlRWxlbWVudC5pbnNlcnRDaGlsZCh0cmVlRWxlbWVudCwgaSk7CisgICAgICAg
ICAgICBpZiAod2FzU2VsZWN0ZWQpCisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuc2VsZWN0
KHRydWUpOworCisgICAgICAgICAgICB2YXIgZ3JhcGhFbGVtZW50ID0gdHJlZUVsZW1lbnQuX2l0
ZW1HcmFwaC5ncmFwaEVsZW1lbnQ7CisgICAgICAgICAgICB0aGlzLml0ZW1zR3JhcGhzRWxlbWVu
dC5pbnNlcnRCZWZvcmUoZ3JhcGhFbGVtZW50LCB0aGlzLml0ZW1zR3JhcGhzRWxlbWVudC5jaGls
ZHJlbltpXSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgYWRqdXN0U2Nyb2xsUG9zaXRpb246
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIC8vIFByZXZlbnQgdGhlIGNvbnRhaW5lciBmcm9t
IGJlaW5nIHNjcm9sbGVkIG9mZiB0aGUgZW5kLgorICAgICAgICBpZiAoKHRoaXMuY29udGFpbmVy
RWxlbWVudC5zY3JvbGxUb3AgKyB0aGlzLmNvbnRhaW5lckVsZW1lbnQub2Zmc2V0SGVpZ2h0KSA+
IHRoaXMuc2lkZWJhckVsZW1lbnQub2Zmc2V0SGVpZ2h0KQorICAgICAgICAgICAgdGhpcy5jb250
YWluZXJFbGVtZW50LnNjcm9sbFRvcCA9ICh0aGlzLnNpZGViYXJFbGVtZW50Lm9mZnNldEhlaWdo
dCAtIHRoaXMuY29udGFpbmVyRWxlbWVudC5vZmZzZXRIZWlnaHQpOworICAgIH0sCisKKyAgICBh
ZGRFdmVudERpdmlkZXI6IGZ1bmN0aW9uKGRpdmlkZXIpCisgICAgeworICAgICAgICB0aGlzLl90
aW1lbGluZUdyaWQuYWRkRXZlbnREaXZpZGVyKGRpdmlkZXIpOworICAgIH0sCisKKyAgICBoaWRl
RXZlbnREaXZpZGVyczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fdGltZWxpbmVH
cmlkLmhpZGVFdmVudERpdmlkZXJzKCk7CisgICAgfSwKKworICAgIHNob3dFdmVudERpdmlkZXJz
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl90aW1lbGluZUdyaWQuc2hvd0V2ZW50
RGl2aWRlcnMoKTsKKyAgICB9LAorCiAgICAgcG9wdWxhdGVTaWRlYmFyOiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICB0aGlzLnRpbWVHcmFwaEl0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLlNpZGVi
YXJUcmVlRWxlbWVudCgicmVzb3VyY2VzLXRpbWUtZ3JhcGgtc2lkZWJhci1pdGVtIiwgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJUaW1lIikpOwpAQCAtMjIzLDcgKzUxOSwxMCBAQCBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgc2hvdzogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVQYW5lbC5wcm90b3R5
cGUuc2hvdy5jYWxsKHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LnNob3cuY2FsbCh0aGlzKTsKKworICAgICAgICB0aGlzLl91cGRhdGVEaXZpZGVyc0xhYmVsQmFy
UG9zaXRpb24oKTsKKyAgICAgICAgdGhpcy5yZWZyZXNoSWZOZWVkZWQoKTsKIAogICAgICAgICB2
YXIgdmlzaWJsZVZpZXcgPSB0aGlzLnZpc2libGVWaWV3OwogICAgICAgICBpZiAodGhpcy52aXNp
YmxlUmVzb3VyY2UpIHsKQEAgLTMyOSw3ICs2MjgsNDQgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIHJlZnJlc2g6IGZ1bmN0aW9uKCkKICAgICB7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lUGFuZWwucHJvdG90eXBlLnJlZnJl
c2guY2FsbCh0aGlzKTsKKyAgICAgICAgdGhpcy5uZWVkc1JlZnJlc2ggPSBmYWxzZTsKKworICAg
ICAgICB2YXIgc3RhbGVJdGVtc0xlbmd0aCA9IHRoaXMuX3N0YWxlSXRlbXMubGVuZ3RoOworCisg
ICAgICAgIHZhciBib3VuZGFyaWVzQ2hhbmdlZCA9IGZhbHNlOworCisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgc3RhbGVJdGVtc0xlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgaXRl
bSA9IHRoaXMuX3N0YWxlSXRlbXNbaV07CisgICAgICAgICAgICBpZiAoIWl0ZW0uX2l0ZW1zVHJl
ZUVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIHRpbWVsaW5lIHRyZWUg
ZWxlbWVudCBhbmQgZ3JhcGguCisgICAgICAgICAgICAgICAgaXRlbS5faXRlbXNUcmVlRWxlbWVu
dCA9IHRoaXMuY3JlYXRlSXRlbVRyZWVFbGVtZW50KGl0ZW0pOworICAgICAgICAgICAgICAgIGl0
ZW0uX2l0ZW1zVHJlZUVsZW1lbnQuX2l0ZW1HcmFwaCA9IHRoaXMuY3JlYXRlSXRlbUdyYXBoKGl0
ZW0pOworCisgICAgICAgICAgICAgICAgdGhpcy5pdGVtc1RyZWVFbGVtZW50LmFwcGVuZENoaWxk
KGl0ZW0uX2l0ZW1zVHJlZUVsZW1lbnQpOworICAgICAgICAgICAgICAgIHRoaXMuaXRlbXNHcmFw
aHNFbGVtZW50LmFwcGVuZENoaWxkKGl0ZW0uX2l0ZW1zVHJlZUVsZW1lbnQuX2l0ZW1HcmFwaC5n
cmFwaEVsZW1lbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaXRlbS5faXRl
bXNUcmVlRWxlbWVudC5yZWZyZXNoKQorICAgICAgICAgICAgICAgIGl0ZW0uX2l0ZW1zVHJlZUVs
ZW1lbnQucmVmcmVzaCgpOworCisgICAgICAgICAgICBpZiAodGhpcy5jYWxjdWxhdG9yLnVwZGF0
ZUJvdW5kYXJpZXMoaXRlbSkpCisgICAgICAgICAgICAgICAgYm91bmRhcmllc0NoYW5nZWQgPSB0
cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGJvdW5kYXJpZXNDaGFuZ2VkKSB7CisgICAg
ICAgICAgICAvLyBUaGUgYm91bmRhcmllcyBjaGFuZ2VkLCBzbyBhbGwgaXRlbSBncmFwaHMgYXJl
IHN0YWxlLgorICAgICAgICAgICAgdGhpcy5fc3RhbGVJdGVtcyA9IHRoaXMuX2l0ZW1zLnNsaWNl
KCk7CisgICAgICAgICAgICBzdGFsZUl0ZW1zTGVuZ3RoID0gdGhpcy5fc3RhbGVJdGVtcy5sZW5n
dGg7CisgICAgICAgIH0KKworCisgICAgICAgIGNvbnN0IGlzQmFyT3BhcXVlQXRMZWZ0ID0gdGhp
cy5zaWRlYmFyVHJlZS5zZWxlY3RlZFRyZWVFbGVtZW50ICYmIHRoaXMuc2lkZWJhclRyZWUuc2Vs
ZWN0ZWRUcmVlRWxlbWVudC5pc0Jhck9wYXF1ZUF0TGVmdDsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBzdGFsZUl0ZW1zTGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9zdGFsZUl0
ZW1zW2ldLl9pdGVtc1RyZWVFbGVtZW50Ll9pdGVtR3JhcGgucmVmcmVzaCh0aGlzLmNhbGN1bGF0
b3IsIGlzQmFyT3BhcXVlQXRMZWZ0KTsKKworICAgICAgICB0aGlzLl9zdGFsZUl0ZW1zID0gW107
CisKKyAgICAgICAgdGhpcy51cGRhdGVHcmFwaERpdmlkZXJzSWZOZWVkZWQoKTsKIAogICAgICAg
ICB0aGlzLl9zb3J0UmVzb3VyY2VzSWZOZWVkZWQoKTsKICAgICAgICAgdGhpcy5fdXBkYXRlU3Vt
bWFyeUdyYXBoKCk7CkBAIC0zNzMsNyArNzA5LDI4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBX
ZWJJbnNwZWN0b3IuQWJzdHJhY3RUaW1lbGluZVBhbmVsLnByb3RvdHlwZS5yZXNldC5jYWxsKHRo
aXMpOworICAgICAgICAvLyBCZWdpbiByZXNldCB0aW1lbGluZQorICAgICAgICB0aGlzLmNvbnRh
aW5lckVsZW1lbnQuc2Nyb2xsVG9wID0gMDsKKworICAgICAgICBpZiAodGhpcy5fY2FsY3VsYXRv
cikKKyAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0b3IucmVzZXQoKTsKKworICAgICAgICBpZiAo
dGhpcy5faXRlbXMpIHsKKyAgICAgICAgICAgIHZhciBpdGVtc0xlbmd0aCA9IHRoaXMuX2l0ZW1z
Lmxlbmd0aDsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXNMZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5faXRlbXNbaV07CisgICAgICAg
ICAgICAgICAgZGVsZXRlIGl0ZW0uX2l0ZW1zVHJlZUVsZW1lbnQ7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICB0aGlzLl9pdGVtcyA9IFtdOworICAgICAgICB0aGlzLl9zdGFs
ZUl0ZW1zID0gW107CisKKyAgICAgICAgdGhpcy5pdGVtc1RyZWVFbGVtZW50LnJlbW92ZUNoaWxk
cmVuKCk7CisgICAgICAgIHRoaXMuaXRlbXNHcmFwaHNFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7
CisKKyAgICAgICAgdGhpcy51cGRhdGVHcmFwaERpdmlkZXJzSWZOZWVkZWQodHJ1ZSk7CisgICAg
ICAgIC8vIEVuZCByZXNldCB0aW1lbGluZS4KICAgICAgICAgCiAgICAgICAgIHRoaXMubWFpblJl
c291cmNlTG9hZFRpbWUgPSAtMTsKICAgICAgICAgdGhpcy5tYWluUmVzb3VyY2VET01Db250ZW50
VGltZSA9IC0xOwpAQCAtNTg1LDcgKzk0MiwxMiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlID0gewogCiAgICAgdXBkYXRlR3JhcGhEaXZpZGVyc0lmTmVlZGVkOiBmdW5j
dGlvbihmb3JjZSkKICAgICB7Ci0gICAgICAgIHZhciBwcm9jZWVkID0gV2ViSW5zcGVjdG9yLkFi
c3RyYWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGUudXBkYXRlR3JhcGhEaXZpZGVyc0lmTmVlZGVk
LmNhbGwodGhpcywgZm9yY2UpOworICAgICAgICB2YXIgcHJvY2VlZCA9IHRydWU7CisgICAgICAg
IGlmICghdGhpcy52aXNpYmxlKSB7CisgICAgICAgICAgICB0aGlzLm5lZWRzUmVmcmVzaCA9IHRy
dWU7CisgICAgICAgICAgICBwcm9jZWVkID0gZmFsc2U7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgcHJvY2VlZCA9IHRoaXMuX3RpbWVsaW5lR3JpZC51cGRhdGVEaXZpZGVycyhmb3JjZSwg
dGhpcy5jYWxjdWxhdG9yKTsKICAgICAgICAgCiAgICAgICAgIGlmICghcHJvY2VlZCkKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTczOSw4ICsxMTAxLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB1cGRhdGVNYWluVmlld1dpZHRoOiBmdW5jdGlvbih3
aWR0aCkKICAgICB7CiAgICAgICAgIHRoaXMudmlld3NDb250YWluZXJFbGVtZW50LnN0eWxlLmxl
ZnQgPSB3aWR0aCArICJweCI7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxp
bmVQYW5lbC5wcm90b3R5cGUudXBkYXRlTWFpblZpZXdXaWR0aC5jYWxsKHRoaXMsIHdpZHRoKTsK
KyAgICAgICAgdGhpcy5fY29udGFpbmVyQ29udGVudEVsZW1lbnQuc3R5bGUubGVmdCA9IHdpZHRo
ICsgInB4IjsKICAgICAgICAgdGhpcy5yZXNpemUoKTsKICAgICB9LAogCkBAIC05MTgsMTYgKzEy
NzksODYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB9
CiB9CiAKLVdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX19wcm90b19fID0g
V2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVQYW5lbC5wcm90b3R5cGU7CitXZWJJbnNwZWN0
b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5QYW5l
bC5wcm90b3R5cGU7CiAKIFdlYkluc3BlY3Rvci5nZXRSZXNvdXJjZUNvbnRlbnQgPSBmdW5jdGlv
bihpZGVudGlmaWVyLCBjYWxsYmFjaykKIHsKICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFJlc291
cmNlQ29udGVudChpZGVudGlmaWVyLCBjYWxsYmFjayk7CiB9CiAKK1dlYkluc3BlY3Rvci5SZXNv
dXJjZUJhc2VDYWxjdWxhdG9yID0gZnVuY3Rpb24oKQoreworfQorCitXZWJJbnNwZWN0b3IuUmVz
b3VyY2VCYXNlQ2FsY3VsYXRvci5wcm90b3R5cGUgPSB7CisgICAgY29tcHV0ZVN1bW1hcnlWYWx1
ZXM6IGZ1bmN0aW9uKGl0ZW1zKQorICAgIHsKKyAgICAgICAgdmFyIHRvdGFsID0gMDsKKyAgICAg
ICAgdmFyIGNhdGVnb3J5VmFsdWVzID0ge307CisKKyAgICAgICAgdmFyIGl0ZW1zTGVuZ3RoID0g
aXRlbXMubGVuZ3RoOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zTGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07CisgICAgICAgICAgICB2YXIg
dmFsdWUgPSB0aGlzLl92YWx1ZShpdGVtKTsKKyAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUg
PT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
aWYgKCEoaXRlbS5jYXRlZ29yeS5uYW1lIGluIGNhdGVnb3J5VmFsdWVzKSkKKyAgICAgICAgICAg
ICAgICBjYXRlZ29yeVZhbHVlc1tpdGVtLmNhdGVnb3J5Lm5hbWVdID0gMDsKKyAgICAgICAgICAg
IGNhdGVnb3J5VmFsdWVzW2l0ZW0uY2F0ZWdvcnkubmFtZV0gKz0gdmFsdWU7CisgICAgICAgICAg
ICB0b3RhbCArPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB7Y2F0ZWdvcnlW
YWx1ZXM6IGNhdGVnb3J5VmFsdWVzLCB0b3RhbDogdG90YWx9OworICAgIH0sCisKKyAgICBjb21w
dXRlQmFyR3JhcGhQZXJjZW50YWdlczogZnVuY3Rpb24oaXRlbSkKKyAgICB7CisgICAgICAgIHJl
dHVybiB7c3RhcnQ6IDAsIG1pZGRsZTogMCwgZW5kOiAodGhpcy5fdmFsdWUoaXRlbSkgLyB0aGlz
LmJvdW5kYXJ5U3BhbikgKiAxMDB9OworICAgIH0sCisKKyAgICBjb21wdXRlQmFyR3JhcGhMYWJl
bHM6IGZ1bmN0aW9uKGl0ZW0pCisgICAgeworICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZm9y
bWF0VmFsdWUodGhpcy5fdmFsdWUoaXRlbSkpOworICAgICAgICByZXR1cm4ge2xlZnQ6IGxhYmVs
LCByaWdodDogbGFiZWwsIHRvb2x0aXA6IGxhYmVsfTsKKyAgICB9LAorCisgICAgZ2V0IGJvdW5k
YXJ5U3BhbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5tYXhpbXVtQm91bmRhcnkgLSB0
aGlzLm1pbmltdW1Cb3VuZGFyeTsKKyAgICB9LAorCisgICAgdXBkYXRlQm91bmRhcmllczogZnVu
Y3Rpb24oaXRlbSkKKyAgICB7CisgICAgICAgIHRoaXMubWluaW11bUJvdW5kYXJ5ID0gMDsKKwor
ICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLl92YWx1ZShpdGVtKTsKKyAgICAgICAgaWYgKHR5cGVv
ZiB0aGlzLm1heGltdW1Cb3VuZGFyeSA9PT0gInVuZGVmaW5lZCIgfHwgdmFsdWUgPiB0aGlzLm1h
eGltdW1Cb3VuZGFyeSkgeworICAgICAgICAgICAgdGhpcy5tYXhpbXVtQm91bmRhcnkgPSB2YWx1
ZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9LAorCisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGRl
bGV0ZSB0aGlzLm1pbmltdW1Cb3VuZGFyeTsKKyAgICAgICAgZGVsZXRlIHRoaXMubWF4aW11bUJv
dW5kYXJ5OworICAgIH0sCisKKyAgICBfdmFsdWU6IGZ1bmN0aW9uKGl0ZW0pCisgICAgeworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9LAorCisgICAgZm9ybWF0VmFsdWU6IGZ1bmN0aW9uKHZhbHVl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7CisgICAgfQorfQorCiBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1lQ2FsY3VsYXRvciA9IGZ1bmN0aW9uKHN0YXJ0QXRaZXJv
KQogewotICAgIFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lQ2FsY3VsYXRvci5jYWxsKHRo
aXMpOworICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZUJhc2VDYWxjdWxhdG9yLmNhbGwodGhpcyk7
CiAgICAgdGhpcy5zdGFydEF0WmVybyA9IHN0YXJ0QXRaZXJvOwogfQogCkBAIC0xMDkyLDcgKzE1
MjMsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1lQ2FsY3VsYXRvci5wcm90b3R5cGUgPSB7
CiAgICAgfQogfQogCi1XZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1lQ2FsY3VsYXRvci5wcm90b3R5
cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVDYWxjdWxhdG9yLnBy
b3RvdHlwZTsKK1dlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWVDYWxjdWxhdG9yLnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2VCYXNlQ2FsY3VsYXRvci5wcm90b3R5cGU7
CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyYW5zZmVyVGltZUNhbGN1bGF0b3IgPSBmdW5jdGlv
bigpCiB7CkBAIC0xMTM5LDcgKzE1NzAsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmFuc2Zl
ckR1cmF0aW9uQ2FsY3VsYXRvci5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdAogCiBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmFuc2ZlclNpemVDYWxjdWxhdG9yID0gZnVuY3Rpb24oKQog
ewotICAgIFdlYkluc3BlY3Rvci5BYnN0cmFjdFRpbWVsaW5lQ2FsY3VsYXRvci5jYWxsKHRoaXMp
OworICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZUJhc2VDYWxjdWxhdG9yLmNhbGwodGhpcyk7CiB9
CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyYW5zZmVyU2l6ZUNhbGN1bGF0b3IucHJvdG90eXBl
ID0gewpAQCAtMTE4Niw3ICsxNjE3LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJhbnNmZXJT
aXplQ2FsY3VsYXRvci5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCi1XZWJJbnNwZWN0b3IuUmVz
b3VyY2VUcmFuc2ZlclNpemVDYWxjdWxhdG9yLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuQWJzdHJhY3RUaW1lbGluZUNhbGN1bGF0b3IucHJvdG90eXBlOworV2ViSW5zcGVjdG9y
LlJlc291cmNlVHJhbnNmZXJTaXplQ2FsY3VsYXRvci5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLlJlc291cmNlQmFzZUNhbGN1bGF0b3IucHJvdG90eXBlOwogCiBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VTaWRlYmFyVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihyZXNvdXJjZSkKIHsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXggYzIyMmYwZS4uODU5M2MyYSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTEsNyArMSw2IEBACiA8
IURPQ1RZUEUgUkNDPjxSQ0MgdmVyc2lvbj0iMS4wIj4KIDxxcmVzb3VyY2UgcHJlZml4PSIvd2Vi
a2l0L2luc3BlY3RvciI+CiAgICAgPGZpbGU+aW5zcGVjdG9yLmh0bWw8L2ZpbGU+Ci0gICAgPGZp
bGU+QWJzdHJhY3RUaW1lbGluZVBhbmVsLmpzPC9maWxlPgogICAgIDxmaWxlPkFwcGxpY2F0aW9u
Q2FjaGVJdGVtc1ZpZXcuanM8L2ZpbGU+CiAgICAgPGZpbGU+QXVkaXRDYXRlZ29yaWVzLmpzPC9m
aWxlPgogICAgIDxmaWxlPkF1ZGl0Rm9ybWF0dGVycy5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCAwNTM2ZWU2Li4zYmFmNTAyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC01OCw3ICs1OCw2
IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29u
c29sZVZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9IlBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJUaW1lbGluZUdyaWQuanMiPjwvc2NyaXB0PiAgICAKLSAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJBYnN0cmFjdFRpbWVsaW5lUGFuZWwuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlJlc291cmNlLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJSZXNv
dXJjZUNhdGVnb3J5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJEYXRhYmFzZS5qcyI+PC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="58475"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>