<?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>86209</bug_id>
          
          <creation_ts>2012-05-11 06:37:51 -0700</creation_ts>
          <short_desc>Web Inspector: remove old heap snapshot serialization schema</short_desc>
          <delta_ts>2012-05-11 08:45:38 -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>0</everconfirmed>
          <reporter name="Alexei Filippov">alph</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <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>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>621576</commentid>
    <comment_count>0</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-05-11 06:37:51 -0700</bug_when>
    <thetext>Remove code that supports separate nodes and edges serialization schema as it is no longer used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621598</commentid>
    <comment_count>1</comment_count>
      <attachid>141408</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-05-11 06:52:05 -0700</bug_when>
    <thetext>Created attachment 141408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621669</commentid>
    <comment_count>2</comment_count>
      <attachid>141408</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 08:45:33 -0700</bug_when>
    <thetext>Comment on attachment 141408
Patch

Clearing flags on attachment: 141408

Committed r116771: &lt;http://trac.webkit.org/changeset/116771&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621670</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 08:45:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141408</attachid>
            <date>2012-05-11 06:52:05 -0700</date>
            <delta_ts>2012-05-11 08:45:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86209-20120511175203.patch</filename>
            <type>text/plain</type>
            <size>42087</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ1ZmJhYWMxZGVlNjY0
ZmEwNDhjOTU4MTIzMDI1YzFiZmRhZWQwMS4uMjFkZDE5ZWM2OTQ5NjkyMmZiZWYzMjkwOGRjYWVk
Mzc2YjI1OTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA1LTExICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBSZW1vdmUgc3VwcG9ydCBvZiBjb21iaW5lZCBub2RlcyBhbmQgZWRnZXMgc2VyaWFsaXph
dGlvbiBzY2hlbWEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NjIwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90Tm9kZS5wcm90b3R5cGUuZ2V0IF9ub2Rlcyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Tm9kZS5wcm90b3R5cGUuX2VkZ2VJbmRleGVzU3Rh
cnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLl9l
ZGdlSW5kZXhlc0VuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBlLl9pbml0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBlLl9idWlsZFJldGFpbmVycyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZS5fYmZzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBlLl9idWlsZEFnZ3JlZ2F0
ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUuX2NhbGN1
bGF0ZUNsYXNzZXNSZXRhaW5lZFNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdC5wcm90b3R5cGUuX2J1aWxkRG9taW5hdGVkTm9kZXMpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvSGVhcFNuYXBzaG90TG9hZGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBTbmFwc2hvdExvYWRlci5wcm90b3R5cGUucHVzaEpTT05DaHVuayk6CisKIDIwMTItMDUt
MTEgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBDYW4ndCB0eXBlIHNwYWNlcyBpbiAiT3ZlcnJpZGUgVXNlciBBZ2VudCIg
ZmllbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25h
cHNob3QuanMKaW5kZXggMGIxYzljNTFmYjRhZTZjY2UwZTRjZDNiN2M4YjY3MmEwNTlkNDY4Mi4u
MzYwMTU5NjdiYjc1NzdiYjYzM2Y1OGM0MTNmMWVlMmEzYTIxMTI2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKQEAgLTU1NSwx
OSArNTU1LDE5IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2RlLnByb3RvdHlwZSA9IHsK
IAogICAgIGdldCBfbm9kZXMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NuYXBzaG90
Ll9vbmx5Tm9kZXM7CisgICAgICAgIHJldHVybiB0aGlzLl9zbmFwc2hvdC5fbm9kZXM7CiAgICAg
fSwKIAogICAgIF9lZGdlSW5kZXhlc1N0YXJ0OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fc25hcHNob3QuX29ubHlOb2Rlc1t0aGlzLm5vZGVJbmRleCArIHRoaXMuX3Nu
YXBzaG90Ll9maXJzdEVkZ2VJbmRleE9mZnNldF07CisgICAgICAgIHJldHVybiB0aGlzLl9zbmFw
c2hvdC5fbm9kZXNbdGhpcy5ub2RlSW5kZXggKyB0aGlzLl9zbmFwc2hvdC5fZmlyc3RFZGdlSW5k
ZXhPZmZzZXRdOwogICAgIH0sCiAKICAgICBfZWRnZUluZGV4ZXNFbmQ6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIHZhciBuZXh0Tm9kZUluZGV4ID0gdGhpcy5fbmV4dE5vZGVJbmRleDsKLSAg
ICAgICAgaWYgKG5leHROb2RlSW5kZXggPCB0aGlzLl9zbmFwc2hvdC5fb25seU5vZGVzLmxlbmd0
aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9zbmFwc2hvdC5fb25seU5vZGVzW25leHROb2Rl
SW5kZXggKyB0aGlzLl9zbmFwc2hvdC5fZmlyc3RFZGdlSW5kZXhPZmZzZXRdCisgICAgICAgIGlm
IChuZXh0Tm9kZUluZGV4IDwgdGhpcy5fc25hcHNob3QuX25vZGVzLmxlbmd0aCkKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9zbmFwc2hvdC5fbm9kZXNbbmV4dE5vZGVJbmRleCArIHRoaXMuX3Nu
YXBzaG90Ll9maXJzdEVkZ2VJbmRleE9mZnNldF0KICAgICAgICAgcmV0dXJuIHRoaXMuX3NuYXBz
aG90Ll9jb250YWlubWVudEVkZ2VzLmxlbmd0aDsKICAgICB9LAogCkBAIC02MjksOCArNjI5LDcg
QEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdCA9IGZ1bmN0aW9uKHByb2ZpbGUpCiB7CiAgICAg
dGhpcy51aWQgPSBwcm9maWxlLnNuYXBzaG90LnVpZDsKICAgICB0aGlzLl9ub2RlcyA9IHByb2Zp
bGUubm9kZXM7Ci0gICAgdGhpcy5fb25seU5vZGVzID0gcHJvZmlsZS5vbmx5Tm9kZXM7Ci0gICAg
dGhpcy5fY29udGFpbm1lbnRFZGdlcyA9IHByb2ZpbGUuY29udGFpbm1lbnRFZGdlczsKKyAgICB0
aGlzLl9jb250YWlubWVudEVkZ2VzID0gcHJvZmlsZS5lZGdlczsKICAgICAvKiogQHR5cGV7SGVh
cFNuYXBzaG90TWV0YWluZm99ICovCiAgICAgdGhpcy5fbWV0YU5vZGUgPSBwcm9maWxlLnNuYXBz
aG90Lm1ldGE7CiAgICAgdGhpcy5fc3RyaW5ncyA9IHByb2ZpbGUuc3RyaW5nczsKQEAgLTY3NCw4
NiArNjczLDQ1IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBlID0gewogICAg
IF9pbml0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgbWV0YSA9IHRoaXMuX21ldGFO
b2RlOwotICAgICAgICBpZiAobWV0YS5zZXBhcmF0ZV9lZGdlcykgewotICAgICAgICAgICAgdGhp
cy5fcm9vdE5vZGVJbmRleCA9IDA7Ci0KLSAgICAgICAgICAgIHRoaXMuX25vZGVUeXBlT2Zmc2V0
ID0gbWV0YS5ub2RlX2ZpZWxkcy5pbmRleE9mKCJ0eXBlIik7Ci0gICAgICAgICAgICB0aGlzLl9u
b2RlTmFtZU9mZnNldCA9IG1ldGEubm9kZV9maWVsZHMuaW5kZXhPZigibmFtZSIpOwotICAgICAg
ICAgICAgdGhpcy5fbm9kZUlkT2Zmc2V0ID0gbWV0YS5ub2RlX2ZpZWxkcy5pbmRleE9mKCJpZCIp
OwotICAgICAgICAgICAgdGhpcy5fbm9kZVNlbGZTaXplT2Zmc2V0ID0gbWV0YS5ub2RlX2ZpZWxk
cy5pbmRleE9mKCJzZWxmX3NpemUiKTsKLSAgICAgICAgICAgIHRoaXMuX25vZGVSZXRhaW5lZFNp
emVPZmZzZXQgPSBtZXRhLm5vZGVfZmllbGRzLmluZGV4T2YoInJldGFpbmVkX3NpemUiKTsKLSAg
ICAgICAgICAgIHRoaXMuX2RvbWluYXRvck9mZnNldCA9IG1ldGEubm9kZV9maWVsZHMuaW5kZXhP
ZigiZG9taW5hdG9yIik7Ci0gICAgICAgICAgICB0aGlzLl9maXJzdEVkZ2VJbmRleE9mZnNldCA9
IG1ldGEubm9kZV9maWVsZHMuaW5kZXhPZigiZWRnZXNfaW5kZXgiKTsKLSAgICAgICAgICAgIHRo
aXMuX25vZGVGaWVsZENvdW50ID0gbWV0YS5ub2RlX2ZpZWxkcy5sZW5ndGg7Ci0KLSAgICAgICAg
ICAgIHRoaXMuX25vZGVUeXBlcyA9IG1ldGEubm9kZV90eXBlc1t0aGlzLl9ub2RlVHlwZU9mZnNl
dF07Ci0gICAgICAgICAgICB0aGlzLl9ub2RlSGlkZGVuVHlwZSA9IHRoaXMuX25vZGVUeXBlcy5p
bmRleE9mKCJoaWRkZW4iKTsKLSAgICAgICAgICAgIHRoaXMuX25vZGVPYmplY3RUeXBlID0gdGhp
cy5fbm9kZVR5cGVzLmluZGV4T2YoIm9iamVjdCIpOwotICAgICAgICAgICAgdGhpcy5fbm9kZU5h
dGl2ZVR5cGUgPSB0aGlzLl9ub2RlVHlwZXMuaW5kZXhPZigibmF0aXZlIik7Ci0gICAgICAgICAg
ICB0aGlzLl9ub2RlQ29kZVR5cGUgPSB0aGlzLl9ub2RlVHlwZXMuaW5kZXhPZigiY29kZSIpOwot
ICAgICAgICAgICAgdGhpcy5fbm9kZVN5bnRoZXRpY1R5cGUgPSB0aGlzLl9ub2RlVHlwZXMuaW5k
ZXhPZigic3ludGhldGljIik7Ci0KLSAgICAgICAgICAgIHRoaXMuX2VkZ2VGaWVsZHNDb3VudCA9
IG1ldGEuZWRnZV9maWVsZHMubGVuZ3RoOwotICAgICAgICAgICAgdGhpcy5fZWRnZVR5cGVPZmZz
ZXQgPSBtZXRhLmVkZ2VfZmllbGRzLmluZGV4T2YoInR5cGUiKTsKLSAgICAgICAgICAgIHRoaXMu
X2VkZ2VOYW1lT2Zmc2V0ID0gbWV0YS5lZGdlX2ZpZWxkcy5pbmRleE9mKCJuYW1lX29yX2luZGV4
Iik7Ci0gICAgICAgICAgICB0aGlzLl9lZGdlVG9Ob2RlT2Zmc2V0ID0gbWV0YS5lZGdlX2ZpZWxk
cy5pbmRleE9mKCJ0b19ub2RlIik7Ci0KLSAgICAgICAgICAgIHRoaXMuX2VkZ2VUeXBlcyA9IG1l
dGEuZWRnZV90eXBlc1t0aGlzLl9lZGdlVHlwZU9mZnNldF07Ci0gICAgICAgICAgICB0aGlzLl9l
ZGdlVHlwZXMucHVzaCgiaW52aXNpYmxlIik7Ci0gICAgICAgICAgICB0aGlzLl9lZGdlRWxlbWVu
dFR5cGUgPSB0aGlzLl9lZGdlVHlwZXMuaW5kZXhPZigiZWxlbWVudCIpOwotICAgICAgICAgICAg
dGhpcy5fZWRnZUhpZGRlblR5cGUgPSB0aGlzLl9lZGdlVHlwZXMuaW5kZXhPZigiaGlkZGVuIik7
Ci0gICAgICAgICAgICB0aGlzLl9lZGdlSW50ZXJuYWxUeXBlID0gdGhpcy5fZWRnZVR5cGVzLmlu
ZGV4T2YoImludGVybmFsIik7Ci0gICAgICAgICAgICB0aGlzLl9lZGdlU2hvcnRjdXRUeXBlID0g
dGhpcy5fZWRnZVR5cGVzLmluZGV4T2YoInNob3J0Y3V0Iik7Ci0gICAgICAgICAgICB0aGlzLl9l
ZGdlV2Vha1R5cGUgPSB0aGlzLl9lZGdlVHlwZXMuaW5kZXhPZigid2VhayIpOwotICAgICAgICAg
ICAgdGhpcy5fZWRnZUludmlzaWJsZVR5cGUgPSB0aGlzLl9lZGdlVHlwZXMuaW5kZXhPZigiaW52
aXNpYmxlIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLl9yb290Tm9kZUlu
ZGV4ID0gMTsgLy8gRmlyc3QgY2VsbCBjb250YWluZWQgbWV0YWRhdGEsIG5vdyB3ZSBzaG91bGQg
c2tpcCBpdC4KLSAgICAgICAgICAgIHRoaXMuX25vZGVUeXBlT2Zmc2V0ID0gbWV0YS5maWVsZHMu
aW5kZXhPZigidHlwZSIpOwotICAgICAgICAgICAgdGhpcy5fbm9kZU5hbWVPZmZzZXQgPSBtZXRh
LmZpZWxkcy5pbmRleE9mKCJuYW1lIik7Ci0gICAgICAgICAgICB0aGlzLl9ub2RlSWRPZmZzZXQg
PSBtZXRhLmZpZWxkcy5pbmRleE9mKCJpZCIpOwotICAgICAgICAgICAgdGhpcy5fbm9kZVNlbGZT
aXplT2Zmc2V0ID0gbWV0YS5maWVsZHMuaW5kZXhPZigic2VsZl9zaXplIik7Ci0gICAgICAgICAg
ICB0aGlzLl9ub2RlUmV0YWluZWRTaXplT2Zmc2V0ID0gbWV0YS5maWVsZHMuaW5kZXhPZigicmV0
YWluZWRfc2l6ZSIpOwotICAgICAgICAgICAgdGhpcy5fZG9taW5hdG9yT2Zmc2V0ID0gbWV0YS5m
aWVsZHMuaW5kZXhPZigiZG9taW5hdG9yIik7Ci0gICAgICAgICAgICB0aGlzLl9lZGdlc0NvdW50
T2Zmc2V0ID0gbWV0YS5maWVsZHMuaW5kZXhPZigiY2hpbGRyZW5fY291bnQiKTsKLSAgICAgICAg
ICAgIC8vIEFmdGVyIHNwbGl0dGluZyBub2RlcyBhbmQgZWRnZXMgd2Ugc3RvcmUgZmlyc3QgZWRn
ZSBpbmRleCBpbiB0aGUgZmllbGQKLSAgICAgICAgICAgIC8vIHdoZXJlIGVkZ2VzIGNvdW50IGlz
IHN0b3JlZCBpbiB0aGUgcmF3IHNuYXBzaG90LiBIZXJlIHdlIGNyZWF0ZSBhbiBhbGlhcwotICAg
ICAgICAgICAgLy8gZm9yIHRoZSBmaWVsZC4KLSAgICAgICAgICAgIHRoaXMuX2ZpcnN0RWRnZUlu
ZGV4T2Zmc2V0ID0gdGhpcy5fZWRnZXNDb3VudE9mZnNldDsKLSAgICAgICAgICAgIHRoaXMuX2Zp
cnN0RWRnZU9mZnNldCA9IG1ldGEuZmllbGRzLmluZGV4T2YoImNoaWxkcmVuIik7Ci0gICAgICAg
ICAgICB0aGlzLl9ub2RlRmllbGRDb3VudCA9IHRoaXMuX2ZpcnN0RWRnZU9mZnNldDsKLSAgICAg
ICAgICAgIHRoaXMuX25vZGVUeXBlcyA9IG1ldGEudHlwZXNbdGhpcy5fbm9kZVR5cGVPZmZzZXRd
OwotICAgICAgICAgICAgdGhpcy5fbm9kZUhpZGRlblR5cGUgPSB0aGlzLl9ub2RlVHlwZXMuaW5k
ZXhPZigiaGlkZGVuIik7Ci0gICAgICAgICAgICB0aGlzLl9ub2RlT2JqZWN0VHlwZSA9IHRoaXMu
X25vZGVUeXBlcy5pbmRleE9mKCJvYmplY3QiKTsKLSAgICAgICAgICAgIHRoaXMuX25vZGVOYXRp
dmVUeXBlID0gdGhpcy5fbm9kZVR5cGVzLmluZGV4T2YoIm5hdGl2ZSIpOwotICAgICAgICAgICAg
dGhpcy5fbm9kZUNvZGVUeXBlID0gdGhpcy5fbm9kZVR5cGVzLmluZGV4T2YoImNvZGUiKTsKLSAg
ICAgICAgICAgIHRoaXMuX25vZGVTeW50aGV0aWNUeXBlID0gdGhpcy5fbm9kZVR5cGVzLmluZGV4
T2YoInN5bnRoZXRpYyIpOwotICAgICAgICAgICAgdmFyIGVkZ2VzTWV0YSA9IG1ldGEudHlwZXNb
dGhpcy5fZmlyc3RFZGdlT2Zmc2V0XTsKLSAgICAgICAgICAgIHRoaXMuX2VkZ2VGaWVsZHNDb3Vu
dCA9IGVkZ2VzTWV0YS5maWVsZHMubGVuZ3RoOwotICAgICAgICAgICAgdGhpcy5fZWRnZVR5cGVP
ZmZzZXQgPSBlZGdlc01ldGEuZmllbGRzLmluZGV4T2YoInR5cGUiKTsKLSAgICAgICAgICAgIHRo
aXMuX2VkZ2VOYW1lT2Zmc2V0ID0gZWRnZXNNZXRhLmZpZWxkcy5pbmRleE9mKCJuYW1lX29yX2lu
ZGV4Iik7Ci0gICAgICAgICAgICB0aGlzLl9lZGdlVG9Ob2RlT2Zmc2V0ID0gZWRnZXNNZXRhLmZp
ZWxkcy5pbmRleE9mKCJ0b19ub2RlIik7Ci0gICAgICAgICAgICB0aGlzLl9lZGdlVHlwZXMgPSBl
ZGdlc01ldGEudHlwZXNbdGhpcy5fZWRnZVR5cGVPZmZzZXRdOwotICAgICAgICAgICAgdGhpcy5f
ZWRnZUVsZW1lbnRUeXBlID0gdGhpcy5fZWRnZVR5cGVzLmluZGV4T2YoImVsZW1lbnQiKTsKLSAg
ICAgICAgICAgIHRoaXMuX2VkZ2VIaWRkZW5UeXBlID0gdGhpcy5fZWRnZVR5cGVzLmluZGV4T2Yo
ImhpZGRlbiIpOwotICAgICAgICAgICAgdGhpcy5fZWRnZUludGVybmFsVHlwZSA9IHRoaXMuX2Vk
Z2VUeXBlcy5pbmRleE9mKCJpbnRlcm5hbCIpOwotICAgICAgICAgICAgdGhpcy5fZWRnZVNob3J0
Y3V0VHlwZSA9IHRoaXMuX2VkZ2VUeXBlcy5pbmRleE9mKCJzaG9ydGN1dCIpOwotICAgICAgICAg
ICAgdGhpcy5fZWRnZVdlYWtUeXBlID0gdGhpcy5fZWRnZVR5cGVzLmluZGV4T2YoIndlYWsiKTsK
LSAgICAgICAgICAgIHRoaXMuX2VkZ2VJbnZpc2libGVUeXBlID0gdGhpcy5fZWRnZVR5cGVzLmxl
bmd0aDsKLSAgICAgICAgICAgIHRoaXMuX2VkZ2VUeXBlcy5wdXNoKCJpbnZpc2libGUiKTsKLSAg
ICAgICAgfQorICAgICAgICB0aGlzLl9yb290Tm9kZUluZGV4ID0gMDsKKworICAgICAgICB0aGlz
Ll9ub2RlVHlwZU9mZnNldCA9IG1ldGEubm9kZV9maWVsZHMuaW5kZXhPZigidHlwZSIpOworICAg
ICAgICB0aGlzLl9ub2RlTmFtZU9mZnNldCA9IG1ldGEubm9kZV9maWVsZHMuaW5kZXhPZigibmFt
ZSIpOworICAgICAgICB0aGlzLl9ub2RlSWRPZmZzZXQgPSBtZXRhLm5vZGVfZmllbGRzLmluZGV4
T2YoImlkIik7CisgICAgICAgIHRoaXMuX25vZGVTZWxmU2l6ZU9mZnNldCA9IG1ldGEubm9kZV9m
aWVsZHMuaW5kZXhPZigic2VsZl9zaXplIik7CisgICAgICAgIHRoaXMuX25vZGVSZXRhaW5lZFNp
emVPZmZzZXQgPSBtZXRhLm5vZGVfZmllbGRzLmluZGV4T2YoInJldGFpbmVkX3NpemUiKTsKKyAg
ICAgICAgdGhpcy5fZG9taW5hdG9yT2Zmc2V0ID0gbWV0YS5ub2RlX2ZpZWxkcy5pbmRleE9mKCJk
b21pbmF0b3IiKTsKKyAgICAgICAgdGhpcy5fZmlyc3RFZGdlSW5kZXhPZmZzZXQgPSBtZXRhLm5v
ZGVfZmllbGRzLmluZGV4T2YoImVkZ2VzX2luZGV4Iik7CisgICAgICAgIHRoaXMuX25vZGVGaWVs
ZENvdW50ID0gbWV0YS5ub2RlX2ZpZWxkcy5sZW5ndGg7CisKKyAgICAgICAgdGhpcy5fbm9kZVR5
cGVzID0gbWV0YS5ub2RlX3R5cGVzW3RoaXMuX25vZGVUeXBlT2Zmc2V0XTsKKyAgICAgICAgdGhp
cy5fbm9kZUhpZGRlblR5cGUgPSB0aGlzLl9ub2RlVHlwZXMuaW5kZXhPZigiaGlkZGVuIik7Cisg
ICAgICAgIHRoaXMuX25vZGVPYmplY3RUeXBlID0gdGhpcy5fbm9kZVR5cGVzLmluZGV4T2YoIm9i
amVjdCIpOworICAgICAgICB0aGlzLl9ub2RlTmF0aXZlVHlwZSA9IHRoaXMuX25vZGVUeXBlcy5p
bmRleE9mKCJuYXRpdmUiKTsKKyAgICAgICAgdGhpcy5fbm9kZUNvZGVUeXBlID0gdGhpcy5fbm9k
ZVR5cGVzLmluZGV4T2YoImNvZGUiKTsKKyAgICAgICAgdGhpcy5fbm9kZVN5bnRoZXRpY1R5cGUg
PSB0aGlzLl9ub2RlVHlwZXMuaW5kZXhPZigic3ludGhldGljIik7CisKKyAgICAgICAgdGhpcy5f
ZWRnZUZpZWxkc0NvdW50ID0gbWV0YS5lZGdlX2ZpZWxkcy5sZW5ndGg7CisgICAgICAgIHRoaXMu
X2VkZ2VUeXBlT2Zmc2V0ID0gbWV0YS5lZGdlX2ZpZWxkcy5pbmRleE9mKCJ0eXBlIik7CisgICAg
ICAgIHRoaXMuX2VkZ2VOYW1lT2Zmc2V0ID0gbWV0YS5lZGdlX2ZpZWxkcy5pbmRleE9mKCJuYW1l
X29yX2luZGV4Iik7CisgICAgICAgIHRoaXMuX2VkZ2VUb05vZGVPZmZzZXQgPSBtZXRhLmVkZ2Vf
ZmllbGRzLmluZGV4T2YoInRvX25vZGUiKTsKKworICAgICAgICB0aGlzLl9lZGdlVHlwZXMgPSBt
ZXRhLmVkZ2VfdHlwZXNbdGhpcy5fZWRnZVR5cGVPZmZzZXRdOworICAgICAgICB0aGlzLl9lZGdl
VHlwZXMucHVzaCgiaW52aXNpYmxlIik7CisgICAgICAgIHRoaXMuX2VkZ2VFbGVtZW50VHlwZSA9
IHRoaXMuX2VkZ2VUeXBlcy5pbmRleE9mKCJlbGVtZW50Iik7CisgICAgICAgIHRoaXMuX2VkZ2VI
aWRkZW5UeXBlID0gdGhpcy5fZWRnZVR5cGVzLmluZGV4T2YoImhpZGRlbiIpOworICAgICAgICB0
aGlzLl9lZGdlSW50ZXJuYWxUeXBlID0gdGhpcy5fZWRnZVR5cGVzLmluZGV4T2YoImludGVybmFs
Iik7CisgICAgICAgIHRoaXMuX2VkZ2VTaG9ydGN1dFR5cGUgPSB0aGlzLl9lZGdlVHlwZXMuaW5k
ZXhPZigic2hvcnRjdXQiKTsKKyAgICAgICAgdGhpcy5fZWRnZVdlYWtUeXBlID0gdGhpcy5fZWRn
ZVR5cGVzLmluZGV4T2YoIndlYWsiKTsKKyAgICAgICAgdGhpcy5fZWRnZUludmlzaWJsZVR5cGUg
PSB0aGlzLl9lZGdlVHlwZXMuaW5kZXhPZigiaW52aXNpYmxlIik7CiAKICAgICAgICAgdGhpcy5f
bm9kZUZsYWdzID0geyAvLyBiaXQgZmxhZ3MKICAgICAgICAgICAgIGNhbkJlUXVlcmllZDogMSwK
ICAgICAgICAgICAgIGRldGFjaGVkRE9NVHJlZU5vZGU6IDIsCiAgICAgICAgIH07CiAKLSAgICAg
ICAgaWYgKG1ldGEuc2VwYXJhdGVfZWRnZXMpIHsKLSAgICAgICAgICAgIHRoaXMubm9kZUNvdW50
ID0gdGhpcy5fb25seU5vZGVzLmxlbmd0aCAvIHRoaXMuX25vZGVGaWVsZENvdW50OwotICAgICAg
ICAgICAgdGhpcy5fZWRnZUNvdW50ID0gdGhpcy5fY29udGFpbm1lbnRFZGdlcy5sZW5ndGggLyB0
aGlzLl9lZGdlRmllbGRzQ291bnQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlz
Ll9zcGxpdE5vZGVzQW5kQ29udGFpbm1lbnRFZGdlcygpOwotICAgICAgICAgICAgdGhpcy5fcm9v
dE5vZGVJbmRleCA9IDA7Ci0gICAgICAgIH0KKyAgICAgICAgdGhpcy5ub2RlQ291bnQgPSB0aGlz
Ll9ub2Rlcy5sZW5ndGggLyB0aGlzLl9ub2RlRmllbGRDb3VudDsKKyAgICAgICAgdGhpcy5fZWRn
ZUNvdW50ID0gdGhpcy5fY29udGFpbm1lbnRFZGdlcy5sZW5ndGggLyB0aGlzLl9lZGdlRmllbGRz
Q291bnQ7CiAKICAgICAgICAgdGhpcy5fbWFya0ludmlzaWJsZUVkZ2VzKCk7CiAgICAgICAgIHRo
aXMuX2J1aWxkUmV0YWluZXJzKCk7CkBAIC03NjMsODYgKzcyMSw2IEBAIFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3QucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9jYWxjdWxhdGVPYmplY3RU
b1dpbmRvd0Rpc3RhbmNlKCk7CiAgICAgfSwKIAotICAgIF9zcGxpdE5vZGVzQW5kQ29udGFpbm1l
bnRFZGdlczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgLy8gRXN0aW1hdGUgbnVtYmVyIG9m
IG5vZGVzLgotICAgICAgICB2YXIgdG90YWxFZGdlQ291bnQgPSAwOwotICAgICAgICB2YXIgdG90
YWxOb2RlQ291bnQgPSAwOwotICAgICAgICBmb3IgKHZhciBpbmRleCA9IHRoaXMuX3Jvb3ROb2Rl
SW5kZXg7IGluZGV4IDwgdGhpcy5fbm9kZXMubGVuZ3RoOyApIHsKLSAgICAgICAgICAgICsrdG90
YWxOb2RlQ291bnQ7Ci0gICAgICAgICAgICB2YXIgZWRnZXNDb3VudCA9IHRoaXMuX25vZGVzW2lu
ZGV4ICsgdGhpcy5fZWRnZXNDb3VudE9mZnNldF07Ci0gICAgICAgICAgICB0b3RhbEVkZ2VDb3Vu
dCArPSBlZGdlc0NvdW50OwotICAgICAgICAgICAgaW5kZXggKz0gdGhpcy5fZmlyc3RFZGdlT2Zm
c2V0ICsgZWRnZXNDb3VudCAqIHRoaXMuX2VkZ2VGaWVsZHNDb3VudDsKLSAgICAgICAgfQotICAg
ICAgICB0aGlzLm5vZGVDb3VudCA9IHRvdGFsTm9kZUNvdW50OwotICAgICAgICB0aGlzLl9lZGdl
Q291bnQgPSB0b3RhbEVkZ2VDb3VudDsKLSAgICAgICAgdGhpcy5fY3JlYXRlT25seU5vZGVzQXJy
YXkoKTsKLSAgICAgICAgdGhpcy5fY3JlYXRlQ29udGFpbm1lbnRFZGdlc0FycmF5KCk7Ci0gICAg
ICAgIGRlbGV0ZSB0aGlzLl9ub2RlczsKLSAgICB9LAotCi0gICAgX2NyZWF0ZU9ubHlOb2Rlc0Fy
cmF5OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICAvLyBDb3B5IG5vZGVzIHRvIHRoZWlyIG93
biBhcnJheS4KLSAgICAgICAgdGhpcy5fb25seU5vZGVzID0gbmV3IFVpbnQzMkFycmF5KHRoaXMu
bm9kZUNvdW50ICogdGhpcy5fbm9kZUZpZWxkQ291bnQpOwotICAgICAgICB2YXIgZHN0SW5kZXgg
PSAwOwotICAgICAgICB2YXIgc3JjSW5kZXggPSB0aGlzLl9yb290Tm9kZUluZGV4OwotICAgICAg
ICB3aGlsZSAoc3JjSW5kZXggPCB0aGlzLl9ub2Rlcy5sZW5ndGgpIHsKLSAgICAgICAgICAgIHZh
ciBzcmNOb2RlVHlwZUluZGV4ID0gc3JjSW5kZXggKyB0aGlzLl9ub2RlVHlwZU9mZnNldDsKLSAg
ICAgICAgICAgIHZhciBjdXJyZW50RHN0SW5kZXggPSBkc3RJbmRleDsKLSAgICAgICAgICAgIHZh
ciBlZGdlc0NvdW50ID0gdGhpcy5fbm9kZXNbc3JjSW5kZXggKyB0aGlzLl9lZGdlc0NvdW50T2Zm
c2V0XTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fbm9kZUZpZWxkQ291
bnQ7IGkrKykKLSAgICAgICAgICAgICAgICB0aGlzLl9vbmx5Tm9kZXNbZHN0SW5kZXgrK10gPSB0
aGlzLl9ub2Rlc1tzcmNJbmRleCsrXTsKLSAgICAgICAgICAgIC8vIFdyaXRlIG5ldyBub2RlIGlu
ZGV4IGludG8gdGhlIHR5cGUgZmllbGQuCi0gICAgICAgICAgICB0aGlzLl9ub2Rlc1tzcmNOb2Rl
VHlwZUluZGV4XSA9IGN1cnJlbnREc3RJbmRleDsKLSAgICAgICAgICAgIHNyY0luZGV4ICs9IGVk
Z2VzQ291bnQgKiB0aGlzLl9lZGdlRmllbGRzQ291bnQ7Ci0gICAgICAgIH0KLSAgICAgICAgLy8g
VHJhbnNsYXRlIGRvbWluYXRvciBpbmRleGVzLgotICAgICAgICBmb3IgKHZhciBkb21pbmF0b3JT
bG90SW5kZXggPSB0aGlzLl9kb21pbmF0b3JPZmZzZXQ7IGRvbWluYXRvclNsb3RJbmRleCA8IHRo
aXMuX29ubHlOb2Rlcy5sZW5ndGg7IGRvbWluYXRvclNsb3RJbmRleCArPSB0aGlzLl9ub2RlRmll
bGRDb3VudCkgewotICAgICAgICAgICAgdmFyIGRvbWluYXRvckluZGV4ID0gdGhpcy5fb25seU5v
ZGVzW2RvbWluYXRvclNsb3RJbmRleF07Ci0gICAgICAgICAgICB0aGlzLl9vbmx5Tm9kZXNbZG9t
aW5hdG9yU2xvdEluZGV4XSA9IHRoaXMuX25vZGVzW2RvbWluYXRvckluZGV4ICsgdGhpcy5fbm9k
ZVR5cGVPZmZzZXRdOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9jcmVhdGVDb250YWlubWVu
dEVkZ2VzQXJyYXk6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIC8vIENvcHkgZWRnZXMgdG8g
dGhlaXIgb3duIGFycmF5LgotICAgICAgICB2YXIgY29udGFpbm1lbnRFZGdlcyA9IHRoaXMuX2Nv
bnRhaW5tZW50RWRnZXMgPSBuZXcgVWludDMyQXJyYXkodGhpcy5fZWRnZUNvdW50ICogdGhpcy5f
ZWRnZUZpZWxkc0NvdW50KTsKLQotICAgICAgICAvLyBQZWxvYWQgZmllbGRzIGludG8gbG9jYWwg
dmFyaWFibGVzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCi0gICAgICAgIHZhciBub2RlcyA9IHRo
aXMuX25vZGVzOwotICAgICAgICB2YXIgb25seU5vZGVzID0gdGhpcy5fb25seU5vZGVzOwotICAg
ICAgICB2YXIgZmlyc3RFZGdlSW5kZXhPZmZzZXQgPSB0aGlzLl9maXJzdEVkZ2VJbmRleE9mZnNl
dDsKLSAgICAgICAgdmFyIGVkZ2VGaWVsZHNDb3VudCA9IHRoaXMuX2VkZ2VGaWVsZHNDb3VudDsK
LSAgICAgICAgdmFyIGVkZ2VUb05vZGVPZmZzZXQgPSB0aGlzLl9lZGdlVG9Ob2RlT2Zmc2V0Owot
ICAgICAgICB2YXIgZWRnZXNDb3VudE9mZnNldCA9IHRoaXMuX2VkZ2VzQ291bnRPZmZzZXQ7Ci0g
ICAgICAgIHZhciBub2RlVHlwZU9mZnNldCA9IHRoaXMuX25vZGVUeXBlT2Zmc2V0OwotICAgICAg
ICB2YXIgZmlyc3RFZGdlT2Zmc2V0ID0gdGhpcy5fZmlyc3RFZGdlT2Zmc2V0OwotCi0gICAgICAg
IHZhciBlZGdlQXJyYXlJbmRleCA9IDA7Ci0gICAgICAgIHZhciBzcmNJbmRleCA9IHRoaXMuX3Jv
b3ROb2RlSW5kZXg7Ci0gICAgICAgIHdoaWxlIChzcmNJbmRleCA8IG5vZGVzLmxlbmd0aCkgewot
ICAgICAgICAgICAgdmFyIHNyY05vZGVOZXdJbmRleCA9IG5vZGVzW3NyY0luZGV4ICsgbm9kZVR5
cGVPZmZzZXRdOwotICAgICAgICAgICAgLy8gU2V0IGluZGV4IG9mIGZpcnN0IG91dGdvaW5nIGVn
ZGUgaW4gdGhlIF9jb250YWlubWVudEVkZ2VzIGFycmF5LgotICAgICAgICAgICAgb25seU5vZGVz
W3NyY05vZGVOZXdJbmRleCArIGZpcnN0RWRnZUluZGV4T2Zmc2V0XSA9IGVkZ2VBcnJheUluZGV4
OwotCi0gICAgICAgICAgICAvLyBOb3cgY29weSBhbGwgZWRnZSBpbmZvcm1hdGlvbi4KLSAgICAg
ICAgICAgIHZhciBlZGdlc0NvdW50ID0gbm9kZXNbc3JjSW5kZXggKyBlZGdlc0NvdW50T2Zmc2V0
XTsKLSAgICAgICAgICAgIHNyY0luZGV4ICs9IGZpcnN0RWRnZU9mZnNldDsKLSAgICAgICAgICAg
IHZhciBuZXh0Tm9kZUluZGV4ID0gc3JjSW5kZXggKyBlZGdlc0NvdW50ICogZWRnZUZpZWxkc0Nv
dW50OwotICAgICAgICAgICAgd2hpbGUgKHNyY0luZGV4IDwgbmV4dE5vZGVJbmRleCkgewotICAg
ICAgICAgICAgICAgIGNvbnRhaW5tZW50RWRnZXNbZWRnZUFycmF5SW5kZXhdID0gbm9kZXNbc3Jj
SW5kZXhdOwotICAgICAgICAgICAgICAgIC8vIFRyYW5zbGF0ZSBkZXN0aW5hdGlvbiBub2RlIGlu
ZGV4ZXMgZm9yIHRoZSBjb3BpZWQgZWRnZXMuCi0gICAgICAgICAgICAgICAgaWYgKGVkZ2VBcnJh
eUluZGV4ICUgZWRnZUZpZWxkc0NvdW50ID09PSBlZGdlVG9Ob2RlT2Zmc2V0KSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHZhciB0b05vZGVJbmRleCA9IGNvbnRhaW5tZW50RWRnZXNbZWRnZUFycmF5
SW5kZXhdOwotICAgICAgICAgICAgICAgICAgICBjb250YWlubWVudEVkZ2VzW2VkZ2VBcnJheUlu
ZGV4XSA9IG5vZGVzW3RvTm9kZUluZGV4ICsgbm9kZVR5cGVPZmZzZXRdOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICArK2VkZ2VBcnJheUluZGV4OwotICAgICAgICAgICAgICAg
ICsrc3JjSW5kZXg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9LAotCiAgICAgX2J1
aWxkUmV0YWluZXJzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgcmV0YWluaW5nTm9k
ZXMgPSB0aGlzLl9yZXRhaW5pbmdOb2RlcyA9IG5ldyBVaW50MzJBcnJheSh0aGlzLl9lZGdlQ291
bnQpOwpAQCAtODU1LDcgKzczMyw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90
eXBlID0gewogICAgICAgICB2YXIgZWRnZUZpZWxkc0NvdW50ID0gdGhpcy5fZWRnZUZpZWxkc0Nv
dW50OwogICAgICAgICB2YXIgbm9kZUZpZWxkQ291bnQgPSB0aGlzLl9ub2RlRmllbGRDb3VudDsK
ICAgICAgICAgdmFyIGVkZ2VUb05vZGVPZmZzZXQgPSB0aGlzLl9lZGdlVG9Ob2RlT2Zmc2V0Owot
ICAgICAgICB2YXIgb25seU5vZGVzID0gdGhpcy5fb25seU5vZGVzOworICAgICAgICB2YXIgbm9k
ZXMgPSB0aGlzLl9ub2RlczsKICAgICAgICAgdmFyIGZpcnN0RWRnZUluZGV4T2Zmc2V0ID0gdGhp
cy5fZmlyc3RFZGdlSW5kZXhPZmZzZXQ7CiAKICAgICAgICAgZm9yICh2YXIgdG9Ob2RlRmllbGRJ
bmRleCA9IGVkZ2VUb05vZGVPZmZzZXQsIGwgPSBjb250YWlubWVudEVkZ2VzLmxlbmd0aDsgdG9O
b2RlRmllbGRJbmRleCA8IGw7IHRvTm9kZUZpZWxkSW5kZXggKz0gZWRnZUZpZWxkc0NvdW50KSB7
CkBAIC04NzMsMTMgKzc1MSwxMyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgZmlyc3RSZXRhaW5lckluZGV4W3RoaXMubm9kZUNvdW50XSA9IHJldGFp
bmluZ05vZGVzLmxlbmd0aDsKIAogICAgICAgICB2YXIgc3JjTm9kZUluZGV4ID0gMDsKLSAgICAg
ICAgdmFyIG5leHROb2RlRmlyc3RFZGdlSW5kZXggPSBvbmx5Tm9kZXNbZmlyc3RFZGdlSW5kZXhP
ZmZzZXRdOwotICAgICAgICB2YXIgb25seU5vZGVzTGVuZ3RoID0gb25seU5vZGVzLmxlbmd0aDsK
LSAgICAgICAgd2hpbGUgKHNyY05vZGVJbmRleCA8IG9ubHlOb2Rlc0xlbmd0aCkgeworICAgICAg
ICB2YXIgbmV4dE5vZGVGaXJzdEVkZ2VJbmRleCA9IG5vZGVzW2ZpcnN0RWRnZUluZGV4T2Zmc2V0
XTsKKyAgICAgICAgdmFyIG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoOworICAgICAgICB3aGls
ZSAoc3JjTm9kZUluZGV4IDwgbm9kZXNMZW5ndGgpIHsKICAgICAgICAgICAgIHZhciBmaXJzdEVk
Z2VJbmRleCA9IG5leHROb2RlRmlyc3RFZGdlSW5kZXg7CiAgICAgICAgICAgICB2YXIgbmV4dE5v
ZGVJbmRleCA9IHNyY05vZGVJbmRleCArIG5vZGVGaWVsZENvdW50OwotICAgICAgICAgICAgbmV4
dE5vZGVGaXJzdEVkZ2VJbmRleCA9IG5leHROb2RlSW5kZXggPCBvbmx5Tm9kZXNMZW5ndGgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBvbmx5Tm9kZXNbbmV4dE5vZGVJbmRl
eCArIGZpcnN0RWRnZUluZGV4T2Zmc2V0XQorICAgICAgICAgICAgbmV4dE5vZGVGaXJzdEVkZ2VJ
bmRleCA9IG5leHROb2RlSW5kZXggPCBub2Rlc0xlbmd0aAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA/IG5vZGVzW25leHROb2RlSW5kZXggKyBmaXJzdEVkZ2VJbmRleE9mZnNl
dF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250YWlubWVudEVkZ2Vz
Lmxlbmd0aDsKICAgICAgICAgICAgIGZvciAodmFyIGVkZ2VJbmRleCA9IGZpcnN0RWRnZUluZGV4
OyBlZGdlSW5kZXggPCBuZXh0Tm9kZUZpcnN0RWRnZUluZGV4OyBlZGdlSW5kZXggKz0gZWRnZUZp
ZWxkc0NvdW50KSB7CiAgICAgICAgICAgICAgICAgdmFyIHRvTm9kZUluZGV4ID0gY29udGFpbm1l
bnRFZGdlc1tlZGdlSW5kZXggKyBlZGdlVG9Ob2RlT2Zmc2V0XTsKQEAgLTEwNDgsNyArOTI2LDcg
QEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBm
aXJzdEVkZ2VJbmRleE9mZnNldCA9IHRoaXMuX2ZpcnN0RWRnZUluZGV4T2Zmc2V0OwogICAgICAg
ICB2YXIgZWRnZVRvTm9kZU9mZnNldCA9IHRoaXMuX2VkZ2VUb05vZGVPZmZzZXQ7CiAgICAgICAg
IHZhciBkaXN0YW5jZXNUb1dpbmRvdyA9IHRoaXMuX2Rpc3RhbmNlc1RvV2luZG93OwotICAgICAg
ICB2YXIgb25seU5vZGVzID0gdGhpcy5fb25seU5vZGVzOworICAgICAgICB2YXIgbm9kZXMgPSB0
aGlzLl9ub2RlczsKIAogICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgICB3aGlsZSAoaW5k
ZXggPCBsaXN0Lmxlbmd0aCkgewpAQCAtMTA1OSw5ICs5MzcsOSBAQCBXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHZhciBk
aXN0YW5jZSA9IGRpc3RhbmNlc1RvV2luZG93W25vZGVJbmRleF0gKyAxOwogCi0gICAgICAgICAg
ICB2YXIgZmlyc3RFZGdlSW5kZXggPSBvbmx5Tm9kZXNbbm9kZUluZGV4ICsgZmlyc3RFZGdlSW5k
ZXhPZmZzZXRdOwotICAgICAgICAgICAgdmFyIGVkZ2VzRW5kID0gbm9kZUluZGV4IDwgb25seU5v
ZGVzLmxlbmd0aAotICAgICAgICAgICAgICAgICAgICAgICAgID8gb25seU5vZGVzW25vZGVJbmRl
eCArIG5vZGVGaWVsZENvdW50ICsgZmlyc3RFZGdlSW5kZXhPZmZzZXRdCisgICAgICAgICAgICB2
YXIgZmlyc3RFZGdlSW5kZXggPSBub2Rlc1tub2RlSW5kZXggKyBmaXJzdEVkZ2VJbmRleE9mZnNl
dF07CisgICAgICAgICAgICB2YXIgZWRnZXNFbmQgPSBub2RlSW5kZXggPCBub2Rlcy5sZW5ndGgK
KyAgICAgICAgICAgICAgICAgICAgICAgICA/IG5vZGVzW25vZGVJbmRleCArIG5vZGVGaWVsZENv
dW50ICsgZmlyc3RFZGdlSW5kZXhPZmZzZXRdCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBj
b250YWlubWVudEVkZ2VzLmxlbmd0aDsKICAgICAgICAgICAgIGZvciAodmFyIGVkZ2VUb05vZGVJ
bmRleCA9IGZpcnN0RWRnZUluZGV4ICsgZWRnZVRvTm9kZU9mZnNldDsgZWRnZVRvTm9kZUluZGV4
IDwgZWRnZXNFbmQ7IGVkZ2VUb05vZGVJbmRleCArPSBlZGdlRmllbGRzQ291bnQpIHsKICAgICAg
ICAgICAgICAgICB2YXIgY2hpbGROb2RlSW5kZXggPSBjb250YWlubWVudEVkZ2VzW2VkZ2VUb05v
ZGVJbmRleF07CkBAIC0xMDc5LDggKzk1Nyw4IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3Qu
cHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGFnZ3JlZ2F0ZXMgPSB7fTsKICAgICAg
ICAgdmFyIGFnZ3JlZ2F0ZXNCeUNsYXNzTmFtZSA9IHt9OwotICAgICAgICB2YXIgb25seU5vZGVz
ID0gdGhpcy5fb25seU5vZGVzOwotICAgICAgICB2YXIgb25seU5vZGVzTGVuZ3RoID0gb25seU5v
ZGVzLmxlbmd0aDsKKyAgICAgICAgdmFyIG5vZGVzID0gdGhpcy5fbm9kZXM7CisgICAgICAgIHZh
ciBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aDsKICAgICAgICAgdmFyIG5vZGVOYXRpdmVUeXBl
ID0gdGhpcy5fbm9kZU5hdGl2ZVR5cGU7CiAgICAgICAgIHZhciBub2RlRmllbGRzQ291bnQgPSB0
aGlzLl9ub2RlRmllbGRDb3VudDsKICAgICAgICAgdmFyIHNlbGZTaXplT2Zmc2V0ID0gdGhpcy5f
bm9kZVNlbGZTaXplT2Zmc2V0OwpAQCAtMTA4OCwxMiArOTY2LDEyIEBAIFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3QucHJvdG90eXBlID0gewogICAgICAgICB2YXIgbm9kZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90Tm9kZSh0aGlzLCB0aGlzLl9yb290Tm9kZUluZGV4KTsKICAgICAg
ICAgdmFyIGRpc3RhbmNlc1RvV2luZG93ID0gdGhpcy5fZGlzdGFuY2VzVG9XaW5kb3c7CiAKLSAg
ICAgICAgZm9yICh2YXIgbm9kZUluZGV4ID0gdGhpcy5fcm9vdE5vZGVJbmRleDsgbm9kZUluZGV4
IDwgb25seU5vZGVzTGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkc0NvdW50KSB7CisgICAg
ICAgIGZvciAodmFyIG5vZGVJbmRleCA9IHRoaXMuX3Jvb3ROb2RlSW5kZXg7IG5vZGVJbmRleCA8
IG5vZGVzTGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkc0NvdW50KSB7CiAgICAgICAgICAg
ICBub2RlLm5vZGVJbmRleCA9IG5vZGVJbmRleDsKLSAgICAgICAgICAgIHZhciBzZWxmU2l6ZSA9
IG9ubHlOb2Rlc1tub2RlSW5kZXggKyBzZWxmU2l6ZU9mZnNldF07CisgICAgICAgICAgICB2YXIg
c2VsZlNpemUgPSBub2Rlc1tub2RlSW5kZXggKyBzZWxmU2l6ZU9mZnNldF07CiAgICAgICAgICAg
ICBpZiAoZmlsdGVyICYmICFmaWx0ZXIobm9kZSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgICAgICBpZiAoIXNlbGZTaXplICYmIG9ubHlOb2Rlc1tub2RlSW5kZXggKyBub2Rl
VHlwZU9mZnNldF0gIT09IG5vZGVOYXRpdmVUeXBlKQorICAgICAgICAgICAgaWYgKCFzZWxmU2l6
ZSAmJiBub2Rlc1tub2RlSW5kZXggKyBub2RlVHlwZU9mZnNldF0gIT09IG5vZGVOYXRpdmVUeXBl
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgdmFyIGNsYXNzSW5kZXgg
PSBub2RlLmNsYXNzSW5kZXg7CiAgICAgICAgICAgICBpZiAoIShjbGFzc0luZGV4IGluIGFnZ3Jl
Z2F0ZXMpKSB7CkBAIC0xMTM3LDcgKzEwMTUsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5vZGVUeXBlT2Zmc2V0ID0gdGhpcy5fbm9kZVR5
cGVPZmZzZXQ7CiAgICAgICAgIHZhciBub2RlTmF0aXZlVHlwZSA9IHRoaXMuX25vZGVOYXRpdmVU
eXBlOwogICAgICAgICB2YXIgZG9taW5hdGVkTm9kZXMgPSB0aGlzLl9kb21pbmF0ZWROb2RlczsK
LSAgICAgICAgdmFyIG9ubHlOb2RlcyA9IHRoaXMuX29ubHlOb2RlczsKKyAgICAgICAgdmFyIG5v
ZGVzID0gdGhpcy5fbm9kZXM7CiAgICAgICAgIHZhciBmaXJzdERvbWluYXRlZE5vZGVJbmRleCA9
IHRoaXMuX2ZpcnN0RG9taW5hdGVkTm9kZUluZGV4OwogCiAgICAgICAgIHdoaWxlIChsaXN0Lmxl
bmd0aCkgewpAQCAtMTE1MSw3ICsxMDI5LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5w
cm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIGlmICghc2VlbiAmJgogICAgICAgICAgICAgICAg
ICghZmlsdGVyIHx8IGZpbHRlcihub2RlKSkgJiYKLSAgICAgICAgICAgICAgICAobm9kZS5zZWxm
U2l6ZSB8fCBvbmx5Tm9kZXNbbm9kZUluZGV4ICsgbm9kZVR5cGVPZmZzZXRdID09PSBub2RlTmF0
aXZlVHlwZSkKKyAgICAgICAgICAgICAgICAobm9kZS5zZWxmU2l6ZSB8fCBub2Rlc1tub2RlSW5k
ZXggKyBub2RlVHlwZU9mZnNldF0gPT09IG5vZGVOYXRpdmVUeXBlKQogICAgICAgICAgICAgICAg
KSB7CiAgICAgICAgICAgICAgICAgYWdncmVnYXRlc1tjbGFzc0luZGV4XS5tYXhSZXQgKz0gbm9k
ZS5yZXRhaW5lZFNpemU7CiAgICAgICAgICAgICAgICAgaWYgKGRvbWluYXRlZEluZGV4RnJvbSAh
PT0gZG9taW5hdGVkSW5kZXhUbykgewpAQCAtMTE5OCw4ICsxMDc2LDggQEAgV2ViSW5zcGVjdG9y
LkhlYXBTbmFwc2hvdC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgLy8gQ291bnQgdGhlIG51bWJl
ciBvZiBkb21pbmF0ZWQgbm9kZXMgZm9yIGVhY2ggbm9kZS4gU2tpcCB0aGUgcm9vdCAobm9kZSBh
dAogICAgICAgICAvLyBpbmRleCAwKSBhcyBpdCBpcyB0aGUgb25seSBub2RlIHRoYXQgZG9taW5h
dGVzIGl0c2VsZi4KLSAgICAgICAgZm9yICh2YXIgbm9kZUluZGV4ID0gdGhpcy5fbm9kZUZpZWxk
Q291bnQ7IG5vZGVJbmRleCA8IHRoaXMuX29ubHlOb2Rlcy5sZW5ndGg7IG5vZGVJbmRleCArPSB0
aGlzLl9ub2RlRmllbGRDb3VudCkgewotICAgICAgICAgICAgdmFyIGRvbWluYXRvckluZGV4ID0g
dGhpcy5fb25seU5vZGVzW25vZGVJbmRleCArIHRoaXMuX2RvbWluYXRvck9mZnNldF07CisgICAg
ICAgIGZvciAodmFyIG5vZGVJbmRleCA9IHRoaXMuX25vZGVGaWVsZENvdW50OyBub2RlSW5kZXgg
PCB0aGlzLl9ub2Rlcy5sZW5ndGg7IG5vZGVJbmRleCArPSB0aGlzLl9ub2RlRmllbGRDb3VudCkg
eworICAgICAgICAgICAgdmFyIGRvbWluYXRvckluZGV4ID0gdGhpcy5fbm9kZXNbbm9kZUluZGV4
ICsgdGhpcy5fZG9taW5hdG9yT2Zmc2V0XTsKICAgICAgICAgICAgIGlmIChkb21pbmF0b3JJbmRl
eCAlIHRoaXMuX25vZGVGaWVsZENvdW50KQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiV3JvbmcgZG9taW5hdG9ySW5kZXggIiArIGRvbWluYXRvckluZGV4ICsgIiBub2RlSW5kZXgg
PSAiICsgbm9kZUluZGV4ICsgIiBub2RlQ291bnQgPSAiICsgdGhpcy5ub2RlQ291bnQpOwogICAg
ICAgICAgICAgKytpbmRleEFycmF5W2RvbWluYXRvckluZGV4IC8gdGhpcy5fbm9kZUZpZWxkQ291
bnRdOwpAQCAtMTIxNSw4ICsxMDkzLDggQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGluZGV4QXJyYXlbdGhpcy5ub2RlQ291bnRdID0gZG9taW5hdGVk
Tm9kZXMubGVuZ3RoOwogICAgICAgICAvLyBGaWxsIHVwIHRoZSBkb21pbmF0ZWROb2RlcyBhcnJh
eSB3aXRoIGluZGV4ZXMgb2YgZG9taW5hdGVkIG5vZGVzLiBTa2lwIHRoZSByb290IChub2RlIGF0
CiAgICAgICAgIC8vIGluZGV4IDApIGFzIGl0IGlzIHRoZSBvbmx5IG5vZGUgdGhhdCBkb21pbmF0
ZXMgaXRzZWxmLgotICAgICAgICBmb3IgKHZhciBub2RlSW5kZXggPSB0aGlzLl9ub2RlRmllbGRD
b3VudDsgbm9kZUluZGV4IDwgdGhpcy5fb25seU5vZGVzLmxlbmd0aDsgbm9kZUluZGV4ICs9IHRo
aXMuX25vZGVGaWVsZENvdW50KSB7Ci0gICAgICAgICAgICB2YXIgZG9taW5hdG9ySW5kZXggPSB0
aGlzLl9vbmx5Tm9kZXNbbm9kZUluZGV4ICsgdGhpcy5fZG9taW5hdG9yT2Zmc2V0XTsKKyAgICAg
ICAgZm9yICh2YXIgbm9kZUluZGV4ID0gdGhpcy5fbm9kZUZpZWxkQ291bnQ7IG5vZGVJbmRleCA8
IHRoaXMuX25vZGVzLmxlbmd0aDsgbm9kZUluZGV4ICs9IHRoaXMuX25vZGVGaWVsZENvdW50KSB7
CisgICAgICAgICAgICB2YXIgZG9taW5hdG9ySW5kZXggPSB0aGlzLl9ub2Rlc1tub2RlSW5kZXgg
KyB0aGlzLl9kb21pbmF0b3JPZmZzZXRdOwogICAgICAgICAgICAgaWYgKGRvbWluYXRvckluZGV4
ICUgdGhpcy5fbm9kZUZpZWxkQ291bnQpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJXcm9uZyBkb21pbmF0b3JJbmRleCAiICsgZG9taW5hdG9ySW5kZXgpOwogICAgICAgICAgICAg
dmFyIGRvbWluYXRvclBvcyA9IGRvbWluYXRvckluZGV4IC8gdGhpcy5fbm9kZUZpZWxkQ291bnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFw
c2hvdExvYWRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNu
YXBzaG90TG9hZGVyLmpzCmluZGV4IDg5Y2U0YjI1ODI1NmM4YzQyMWVhMTFlZjlkOWMyODBkOWVi
YTUzMmMuLmMzYmE0Njc3Y2M1NTJmODUyZmViZjc3ZjYwNjI0MGRiNzBiZDdlY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90TG9hZGVy
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90
TG9hZGVyLmpzCkBAIC0xNDcsMjYgKzE0Nyw5IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RM
b2FkZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKGJyYWNrZXRJbmRleCA9PT0gLTEp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdGhpcy5fanNvbiA9IHRoaXMu
X2pzb24uc2xpY2UoYnJhY2tldEluZGV4ICsgMSk7Ci0gICAgICAgICAgICBpZiAodGhpcy5fc25h
cHNob3Quc25hcHNob3QubWV0YSkgewotICAgICAgICAgICAgICAgIHZhciBub2RlX2ZpZWxkc19j
b3VudCA9IHRoaXMuX3NuYXBzaG90LnNuYXBzaG90Lm1ldGEubm9kZV9maWVsZHMubGVuZ3RoOwot
ICAgICAgICAgICAgICAgIHZhciBub2Rlc19sZW5ndGggPSB0aGlzLl9zbmFwc2hvdC5zbmFwc2hv
dC5ub2RlX2NvdW50ICogbm9kZV9maWVsZHNfY291bnQ7Ci0gICAgICAgICAgICAgICAgdGhpcy5f
YXJyYXkgPSBuZXcgV2ViSW5zcGVjdG9yLlVpbnQzMkFycmF5KG5vZGVzX2xlbmd0aCk7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5fc25hcHNob3Quc25hcHNob3QubWV0YS5zZXBhcmF0ZV9lZGdlcyA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGUgPSAicGFyc2Utbm9kZXMiOwotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZSA9ICJwYXJzZS1u
b2Rlcy1tZXRhLWluZm8iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5wdXNoSlNP
TkNodW5rKCIiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2Ug
InBhcnNlLW5vZGVzLW1ldGEtaW5mbyI6IHsKLSAgICAgICAgICAgIHZhciBjbG9zaW5nQnJhY2tl
dEluZGV4ID0gdGhpcy5fZmluZEJhbGFuY2VkQ3VybHlCcmFja2V0cygpOwotICAgICAgICAgICAg
aWYgKGNsb3NpbmdCcmFja2V0SW5kZXggPT09IC0xKQotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIHRoaXMuX3NuYXBzaG90LnNuYXBzaG90Lm1ldGEgPSBKU09OLnBhcnNlKHRo
aXMuX2pzb24uc2xpY2UoMCwgY2xvc2luZ0JyYWNrZXRJbmRleCkpOwotICAgICAgICAgICAgdGhp
cy5fanNvbiA9IHRoaXMuX2pzb24uc2xpY2UoY2xvc2luZ0JyYWNrZXRJbmRleCk7Ci0gICAgICAg
ICAgICB0aGlzLl9hcnJheSA9IG5ldyBXZWJJbnNwZWN0b3IuVWludDMyQXJyYXkoKTsKLSAgICAg
ICAgICAgIHRoaXMuX2FycmF5LnB1c2goMCk7CisgICAgICAgICAgICB2YXIgbm9kZV9maWVsZHNf
Y291bnQgPSB0aGlzLl9zbmFwc2hvdC5zbmFwc2hvdC5tZXRhLm5vZGVfZmllbGRzLmxlbmd0aDsK
KyAgICAgICAgICAgIHZhciBub2Rlc19sZW5ndGggPSB0aGlzLl9zbmFwc2hvdC5zbmFwc2hvdC5u
b2RlX2NvdW50ICogbm9kZV9maWVsZHNfY291bnQ7CisgICAgICAgICAgICB0aGlzLl9hcnJheSA9
IG5ldyBXZWJJbnNwZWN0b3IuVWludDMyQXJyYXkobm9kZXNfbGVuZ3RoKTsKICAgICAgICAgICAg
IHRoaXMuX3N0YXRlID0gInBhcnNlLW5vZGVzIjsKICAgICAgICAgICAgIHRoaXMucHVzaEpTT05D
aHVuaygiIik7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE3NCwxMyArMTU3LDggQEAgV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdExvYWRlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGNhc2UgInBh
cnNlLW5vZGVzIjogewogICAgICAgICAgICAgaWYgKHRoaXMuX3BhcnNlVWludEFycmF5KCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKHRoaXMuX3NuYXBzaG90LnNu
YXBzaG90Lm1ldGEuc2VwYXJhdGVfZWRnZXMpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9zbmFw
c2hvdC5vbmx5Tm9kZXMgPSB0aGlzLl9hcnJheS5hcnJheTsKLSAgICAgICAgICAgICAgICB0aGlz
Ll9zdGF0ZSA9ICJmaW5kLWVkZ2VzIjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5fc25hcHNob3Qubm9kZXMgPSB0aGlzLl9hcnJheS5hcnJheTsKLSAgICAgICAg
ICAgICAgICB0aGlzLl9zdGF0ZSA9ICJmaW5kLXN0cmluZ3MiOwotICAgICAgICAgICAgfQorICAg
ICAgICAgICAgdGhpcy5fc25hcHNob3Qubm9kZXMgPSB0aGlzLl9hcnJheS5hcnJheTsKKyAgICAg
ICAgICAgIHRoaXMuX3N0YXRlID0gImZpbmQtZWRnZXMiOwogICAgICAgICAgICAgdGhpcy5fYXJy
YXkgPSBudWxsOwogICAgICAgICAgICAgdGhpcy5wdXNoSlNPTkNodW5rKCIiKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMjA0LDcgKzE4Miw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RM
b2FkZXIucHJvdG90eXBlID0gewogICAgICAgICBjYXNlICJwYXJzZS1lZGdlcyI6IHsKICAgICAg
ICAgICAgIGlmICh0aGlzLl9wYXJzZVVpbnRBcnJheSgpKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIHRoaXMuX3NuYXBzaG90LmNvbnRhaW5tZW50RWRnZXMgPSB0aGlzLl9h
cnJheS5hcnJheTsKKyAgICAgICAgICAgIHRoaXMuX3NuYXBzaG90LmVkZ2VzID0gdGhpcy5fYXJy
YXkuYXJyYXk7CiAgICAgICAgICAgICB0aGlzLl9hcnJheSA9IG51bGw7CiAgICAgICAgICAgICB0
aGlzLl9zdGF0ZSA9ICJmaW5kLXN0cmluZ3MiOwogICAgICAgICAgICAgdGhpcy5wdXNoSlNPTkNo
dW5rKCIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAxOTdjNWFlOWI2YjFiYTM0ZGViMTE4MGYzNzU1MzI5NTkzZDJiZDgw
Li42MGNjZmE1MThhMTNhMmMxMzI4ZWExYTZlNzkzM2MwZTk4OTc5MjM5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTItMDUtMTEgIEFsZXhlaSBGaWxpcHBvdiAgPGFsZXhlaWZAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBzdXBwb3J0IG9mIGNvbWJpbmVk
IG5vZGVzIGFuZCBlZGdlcyBzZXJpYWxpemF0aW9uIHNjaGVtYS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MjA5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtbG9hZGVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9IZWFwU25hcHNo
b3RUZXN0Lkluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9ja09iamVjdCk6CisgICAg
ICAgIChpbml0aWFsaXplX0hlYXBTbmFwc2hvdFRlc3QuSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFw
U25hcHNob3RNb2NrUmF3KToKKyAgICAgICAgKGluaXRpYWxpemVfSGVhcFNuYXBzaG90VGVzdC5J
bnNwZWN0b3JUZXN0Ll9wb3N0cHJvY2Vzc0hlYXBTbmFwc2hvdE1vY2spOgorICAgICAgICAoaW5p
dGlhbGl6ZV9IZWFwU25hcHNob3RUZXN0Lkluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90
TW9ja1dpdGhET00pOgorICAgICAgICAoaW5pdGlhbGl6ZV9IZWFwU25hcHNob3RUZXN0Lik6Cisg
ICAgICAgIChpbml0aWFsaXplX0hlYXBTbmFwc2hvdFRlc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90Lmh0bWw6CisKIDIwMTItMDUtMTEgIERvbWluaWsgUsO2
dHRzY2hlcyAgPGRvbWluaWsucm90dHNjaGVzQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtE
UlRdIElucHV0IEF0dHJpYnV0ZSBQbGFjZWhvbGRlciBSZWZUZXN0cyBmYWlsaW5nCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1leHBl
Y3RlZC50eHQKaW5kZXggNGViZDMyNTcxY2Y1ODFlNGI3MjZiNjg5ZTljN2U4OTBiOGRkZjQ4OC4u
ZDNkZTU2ODE2MGNiN2ZhNGE2OTIxN2Q1YmI1ZTlmMjE3NGU4YjBkNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWV4cGVjdGVk
LnR4dApAQCAtMTMsOCArMTMsNiBAQCBSdW5uaW5nOiBoZWFwU25hcHNob3ROb2RlQW5kRWRnZVRl
c3QKIAogUnVubmluZzogaGVhcFNuYXBzaG90U2ltcGxlVGVzdAogCi1SdW5uaW5nOiB0ZXN0Tm9k
ZXNBbmRFZGdlc1NlcGFyYXRpb25JbkhlYXBTbmFwc2hvdAotCiBSdW5uaW5nOiBoZWFwU25hcHNo
b3RSZXRhaW5lcnNUZXN0CiAKIFJ1bm5pbmc6IGhlYXBTbmFwc2hvdEFnZ3JlZ2F0ZXNUZXN0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1s
b2FkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtbG9hZGVyLWV4cGVjdGVkLnR4dAppbmRleCBlODc0NzZhZDM2MmNhYTU0M2Q4YTdk
ZDFhY2ZkNDdlM2IxNzVlMjE0Li4yMzBhMzk3NTIxYTVhZjVjZmMzOWE3ZDI0ZTQxNzYxMWUxOWMz
NmFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC1sb2FkZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci1leHBlY3RlZC50eHQKQEAgLTMsNSArMywzIEBAIFRo
aXMgdGVzdCBjaGVja3MgSGVhcFNuYXBzaG90cyBsb2FkZXIuCiAKIFJ1bm5pbmc6IGhlYXBTbmFw
c2hvdExvYWRlclRlc3QKIAotUnVubmluZzogaGVhcFNuYXBzaG90U2VwYXJhdGVFZGdlc0xvYWRl
clRlc3QKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtbG9hZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC1sb2FkZXIuaHRtbAppbmRleCBmNzk1MTkwYmVkYzU4NTEzMjE5NDFkZTQ0ZjUx
Zjc3Nzg0YzM1MjFkLi5mZDgzZTgwNjFjMWM2ZDhkNjY1NDM0ZDg0OTZmNGZmYjc5NTYzODIyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1s
b2FkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC1sb2FkZXIuaHRtbApAQCAtMjEsMjggKzIxLDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHNvdXJjZVN0cmluZ2lmaWVkLmxlbmd0aDsgaSA8
IGw7IGkgKz0gcGFydFNpemUpCiAgICAgICAgICAgICAgICAgbG9hZGVyLnB1c2hKU09OQ2h1bmso
c291cmNlU3RyaW5naWZpZWQuc2xpY2UoaSwgaSArIHBhcnRTaXplKSk7CiAgICAgICAgICAgICB2
YXIgcmVzdWx0ID0gbG9hZGVyLmZpbmlzaExvYWRpbmcoKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0U25hcHNob3RFcXVhbHMobmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3Qo
SW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3RNb2NrKCkpLCByZXN1bHQpOwotICAgICAg
ICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hv
dFNlcGFyYXRlRWRnZXNMb2FkZXJUZXN0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZh
ciBzb3VyY2UgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdFNwbGl0Tm9kZXNFZGdl
c01vY2tSYXcoKTsKLSAgICAgICAgICAgIHZhciBzb3VyY2VTdHJpbmdpZmllZCA9IEpTT04uc3Ry
aW5naWZ5KHNvdXJjZSk7Ci0gICAgICAgICAgICB2YXIgcGFydFNpemUgPSBzb3VyY2VTdHJpbmdp
ZmllZC5sZW5ndGggPj4gMzsKLSAgICAgICAgICAgIHZhciBsb2FkZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdExvYWRlcigpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwg
PSBzb3VyY2VTdHJpbmdpZmllZC5sZW5ndGg7IGkgPCBsOyBpICs9IHBhcnRTaXplKQotICAgICAg
ICAgICAgICAgIGxvYWRlci5wdXNoSlNPTkNodW5rKHNvdXJjZVN0cmluZ2lmaWVkLnNsaWNlKGks
IGkgKyBwYXJ0U2l6ZSkpOwotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGxvYWRlci5maW5pc2hM
b2FkaW5nKCk7Ci0gICAgICAgICAgICAvLyBQYXRjaCBpdCBhIGJpdCB0byBtYWtlIGl0IGlkZW50
aWNhbCB0byB0aGUgc3BlY2ltZW4uCi0gICAgICAgICAgICByZXN1bHQuX29ubHlOb2RlcyA9IG5l
dyBVaW50MzJBcnJheShyZXN1bHQuX29ubHlOb2Rlcyk7CisgICAgICAgICAgICByZXN1bHQuX25v
ZGVzID0gbmV3IFVpbnQzMkFycmF5KHJlc3VsdC5fbm9kZXMpOwogICAgICAgICAgICAgcmVzdWx0
Ll9jb250YWlubWVudEVkZ2VzID0gbmV3IFVpbnQzMkFycmF5KHJlc3VsdC5fY29udGFpbm1lbnRF
ZGdlcyk7Ci0gICAgICAgICAgICB2YXIgc3BlY2ltZW4gPSBuZXcgV2ViSW5zcGVjdG9yLkhlYXBT
bmFwc2hvdChJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdE1vY2soKSk7Ci0gICAgICAg
ICAgICBkZWxldGUgcmVzdWx0Ll9tZXRhTm9kZTsKLSAgICAgICAgICAgIGRlbGV0ZSBzcGVjaW1l
bi5fbWV0YU5vZGU7Ci0gICAgICAgICAgICBkZWxldGUgc3BlY2ltZW4uX2VkZ2VzQ291bnRPZmZz
ZXQ7Ci0gICAgICAgICAgICBkZWxldGUgc3BlY2ltZW4uX2ZpcnN0RWRnZU9mZnNldDsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0U25hcHNob3RFcXVhbHMoc3BlY2ltZW4sIHJlc3Vs
dCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFNuYXBzaG90RXF1YWxzKG5ldyBX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90KEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90
TW9jaygpKSwgcmVzdWx0KTsKICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgfQogICAgIF0p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LXRlc3QuanMKaW5kZXggMjY4ZjRhZWM4ZGU4OGJmOGRkMDczZTYxOGYzYjIzMzE3YTJmOGE4OS4u
Zjc0OWQyMWZlZWZkZDg2MTAwZDZjZDZlZjNkNzVmMjBmOWVjYWU3YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcworKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzCkBAIC0y
OCw3ICsyOCw3IEBAIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9ja09iamVjdCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgLy8gICAgICAgYlx2ICAgIC8KICAgICAgICAgLy8gICAgICAg
ICBCICg2KSAtYmQtIEQgKDEyKQogICAgICAgICAvLwotICAgICAgICBfb25seU5vZGVzOiBbCisg
ICAgICAgIF9ub2RlczogWwogICAgICAgICAgICAgMCwgMCwgMCwKICAgICAgICAgICAgIDEsIDEs
IDYsCiAgICAgICAgICAgICAxLCAyLCAxMiwKQEAgLTQ2LDM3ICs0NiwxOCBAQCBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdE1vY2tPYmplY3QgPSBmdW5jdGlvbigpCiAKIEluc3BlY3Rv
clRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9ja1JhdyA9IGZ1bmN0aW9uKCkKIHsKLSAgICByZXR1
cm4gewotICAgICAgICBzbmFwc2hvdDoge30sCi0gICAgICAgIG5vZGVzOiBbCi0gICAgICAgICAg
ICB7IGZpZWxkczogWyJ0eXBlIiwgIm5hbWUiLCAiaWQiLCAic2VsZl9zaXplIiwgInJldGFpbmVk
X3NpemUiLCAiZG9taW5hdG9yIiwgImNoaWxkcmVuX2NvdW50IiwgImNoaWxkcmVuIl0sCi0gICAg
ICAgICAgICAgIHR5cGVzOiBbWyJoaWRkZW4iLCAib2JqZWN0Il0sICIiLCAiIiwgIiIsICIiLCAi
IiwgIiIsIHsgZmllbGRzOiBbInR5cGUiLCAibmFtZV9vcl9pbmRleCIsICJ0b19ub2RlIl0sIHR5
cGVzOiBbWyJlbGVtZW50IiwgInByb3BlcnR5Il0sICIiLCAiIl0gfV0gfSwKLSAgICAgICAgICAg
IC8vIEVmZmVjdGl2ZWx5IHRoZSBzYW1lIGdyYXBoIGFzIGluIGNyZWF0ZUhlYXBTbmFwc2hvdE1v
Y2tPYmplY3QsCi0gICAgICAgICAgICAvLyBidXQgaGF2aW5nIGZ1bGwgc2V0IG9mIGZpZWxkcy4K
LSAgICAgICAgICAgIC8vIAotICAgICAgICAgICAgLy8gQSB0cmlwbGUgaW4gcGFyZW50aGVzZXMg
aW5kaWNhdGVzIG5vZGUgaW5kZXgsIHNlbGYgc2l6ZSBhbmQKLSAgICAgICAgICAgIC8vIHJldGFp
bmVkIHNpemUuCi0gICAgICAgICAgICAvLyAKLSAgICAgICAgICAgIC8vICAgICAgICAgIC0tLSBB
ICgxNCwyLDIpIC0tYWMtIEMgKDQwLDQsMTApIC1jZS0gRSg1Nyw2LDYpCi0gICAgICAgICAgICAv
LyAgICAgICAgIC8gICAgfCAgICAgICAgICAgICAgICAvCi0gICAgICAgICAgICAvLyAgIiIgKDEs
MCwyMCkgMSAgICAgICAtLWJjLS0tLS0KLSAgICAgICAgICAgIC8vICAgICAgICAgXCAgICB2ICAg
ICAgLwotICAgICAgICAgICAgLy8gICAgICAgICAgLS0tIEIgKDI3LDMsOCkgLS1iZC0gRCAoNTAs
NSw1KQotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIDAsIDAsIDEsIDAsIDIwLCAgMSwgMiwg
MSwgIDYsIDE0LCAxLCAgNywgMjcsCi0gICAgICAgICAgICAxLCAxLCAyLCAyLCAgMiwgIDEsIDIs
IDAsICAxLCAyNywgMSwgIDgsIDQwLAotICAgICAgICAgICAgMSwgMiwgMywgMywgIDgsICAxLCAy
LCAxLCAgOSwgNDAsIDEsIDEwLCA1MCwKLSAgICAgICAgICAgIDEsIDMsIDQsIDQsIDEwLCAgMSwg
MSwgMSwgMTEsIDU3LAotICAgICAgICAgICAgMSwgNCwgNSwgNSwgIDUsIDI3LCAwLAotICAgICAg
ICAgICAgMSwgNSwgNiwgNiwgIDYsIDQwLCAwXSwKLSAgICAgICAgc3RyaW5nczogWyIiLCAiQSIs
ICJCIiwgIkMiLCAiRCIsICJFIiwgImEiLCAiYiIsICJhYyIsICJiYyIsICJiZCIsICJjZSJdCi0g
ICAgfTsKLX07Ci0KLUluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90U3BsaXROb2Rlc0Vk
Z2VzTW9ja1JhdyA9IGZ1bmN0aW9uKCkKLXsKLSAgICAvLyBSZXR1cm4gdGhlIHNhbWUgc25hcHNo
b3QgYXMgYWJvdmUgYnV0IGhhdmluZyB0aGUgbm9kZXMgYW5kIGVkZ2VzCi0gICAgLy8gc2VwYXJh
dGVkLgorICAgIC8vIEVmZmVjdGl2ZWx5IHRoZSBzYW1lIGdyYXBoIGFzIGluIGNyZWF0ZUhlYXBT
bmFwc2hvdE1vY2tPYmplY3QsCisgICAgLy8gYnV0IGhhdmluZyBmdWxsIHNldCBvZiBmaWVsZHMu
CisgICAgLy8KKyAgICAvLyBBIHRyaXBsZSBpbiBwYXJlbnRoZXNlcyBpbmRpY2F0ZXMgbm9kZSBp
bmRleCwgc2VsZiBzaXplIGFuZAorICAgIC8vIHJldGFpbmVkIHNpemUuCisgICAgLy8KKyAgICAv
LyAgICAgICAgICAtLS0gQSAoMTQsMiwyKSAtLWFjLSBDICg0MCw0LDEwKSAtY2UtIEUoNTcsNiw2
KQorICAgIC8vICAgICAgICAgLyAgICB8ICAgICAgICAgICAgICAgIC8KKyAgICAvLyAgIiIgKDEs
MCwyMCkgMSAgICAgICAtLWJjLS0tLS0KKyAgICAvLyAgICAgICAgIFwgICAgdiAgICAgIC8KKyAg
ICAvLyAgICAgICAgICAtLS0gQiAoMjcsMyw4KSAtLWJkLSBEICg1MCw1LDUpCisgICAgLy8KICAg
ICByZXR1cm4gewogICAgICAgICBzbmFwc2hvdDogewogICAgICAgICAgICAgbWV0YTogewpAQCAt
MTA1LDExICs4Niw4IEBAIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90U3BsaXROb2Rl
c0VkZ2VzTW9ja1JhdyA9IGZ1bmN0aW9uKCkKIAogSW5zcGVjdG9yVGVzdC5fcG9zdHByb2Nlc3NI
ZWFwU25hcHNob3RNb2NrID0gZnVuY3Rpb24obW9jaykKIHsKLSAgICBtb2NrLnNuYXBzaG90Lm1l
dGEgPSBtb2NrLm5vZGVzWzBdOwotICAgIG1vY2subm9kZXNbMF0gPSAwOwotICAgIHZhciB0ZW1w
Tm9kZXMgPSBuZXcgSW50MzJBcnJheSgxMDAwKTsKLSAgICB0ZW1wTm9kZXMuc2V0KG1vY2subm9k
ZXMpOwotICAgIG1vY2subm9kZXMgPSB0ZW1wTm9kZXMuc3ViYXJyYXkoMCwgbW9jay5ub2Rlcy5s
ZW5ndGgpOworICAgIG1vY2subm9kZXMgPSBuZXcgSW50MzJBcnJheShtb2NrLm5vZGVzKTsKKyAg
ICBtb2NrLmVkZ2VzID0gbmV3IEludDMyQXJyYXkobW9jay5lZGdlcyk7CiAgICAgcmV0dXJuIG1v
Y2s7CiB9OwogCkBAIC0xMjEsMzUgKzk5LDUwIEBAIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNu
YXBzaG90TW9jayA9IGZ1bmN0aW9uKCkKIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90
TW9ja1dpdGhET00gPSBmdW5jdGlvbigpCiB7CiAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuX3Bv
c3Rwcm9jZXNzSGVhcFNuYXBzaG90TW9jayh7Ci0gICAgICAgIHNuYXBzaG90OiB7fSwKKyAgICAg
ICAgc25hcHNob3Q6IHsKKyAgICAgICAgICAgIG1ldGE6IHsKKyAgICAgICAgICAgICAgICBub2Rl
X2ZpZWxkczogWyJ0eXBlIiwgIm5hbWUiLCAiaWQiLCAiZWRnZXNfaW5kZXgiXSwKKyAgICAgICAg
ICAgICAgICBub2RlX3R5cGVzOiBbWyJoaWRkZW4iLCAib2JqZWN0Il0sICIiLCAiIiwgIiJdLAor
ICAgICAgICAgICAgICAgIGVkZ2VfZmllbGRzOiBbInR5cGUiLCAibmFtZV9vcl9pbmRleCIsICJ0
b19ub2RlIl0sCisgICAgICAgICAgICAgICAgZWRnZV90eXBlczogW1siZWxlbWVudCIsICJoaWRk
ZW4iLCAiaW50ZXJuYWwiXSwgIiIsICIiXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG5v
ZGVfY291bnQ6IDEzLAorICAgICAgICAgICAgZWRnZV9jb3VudDogMTMKKyAgICAgICAgfSwKICAg
ICAgICAgbm9kZXM6IFsKLSAgICAgICAgICAgIHsgZmllbGRzOiBbInR5cGUiLCAibmFtZSIsICJp
ZCIsICJjaGlsZHJlbl9jb3VudCIsICJjaGlsZHJlbiJdLAotICAgICAgICAgICAgICB0eXBlczog
W1siaGlkZGVuIiwgIm9iamVjdCJdLCAiIiwgIiIsICIiLCB7IGZpZWxkczogWyJ0eXBlIiwgIm5h
bWVfb3JfaW5kZXgiLCAidG9fbm9kZSJdLCB0eXBlczogW1siZWxlbWVudCIsICJoaWRkZW4iLCAi
aW50ZXJuYWwiXSwgIiIsICIiXSB9XSB9LAogICAgICAgICAgICAgLy8gQSB0cmVlIHdpdGggV2lu
ZG93IG9iamVjdHMuCiAgICAgICAgICAgICAvLwogICAgICAgICAgICAgLy8gICAgfC0tLS0tPldp
bmRvdy0tLT5BCi0gICAgICAgICAgICAvLyAgICB8ICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
ICAgIC8vICAgIHwgICAgICAgICAgICAgXAogICAgICAgICAgICAgLy8gICAgfC0tLS0tPldpbmRv
dy0tLT5CLS0tPkMKICAgICAgICAgICAgIC8vICAgIHwgICAgICAgIHwgICAgIFwKICAgICAgICAg
ICAgIC8vICAocm9vdCkgICBoaWRkZW4gICAtLS0+RC0taW50ZXJuYWwgLyAibmF0aXZlIi0tPk4K
ICAgICAgICAgICAgIC8vICAgIHwgICAgICAgICBcICAgICAgICAgfAogICAgICAgICAgICAgLy8g
ICAgfC0tLS0tPkUgICBIICAgICBpbnRlcm5hbAogICAgICAgICAgICAgLy8gICAgfCAgICAgICAg
ICAgICAgICAgICB2Ci0gICAgICAgICAgICAvLyAgICB8LS0tLS0+Ri0tLT5HLS0tLS0tPk0KKyAg
ICAgICAgICAgIC8vICAgIHwtLS0tLT5GLS0tPkcgICAgICAgTQogICAgICAgICAgICAgLy8KLSAg
ICAgICAgICAgIC8qIChyb290KSAqLyAgICAwLCAgMCwgIDEsIDQsIDAsICAxLCAxNywgMCwgMiwg
MjcsIDAsIDMsIDQwLCAwLCA0LCA0NCwKLSAgICAgICAgICAgIC8qIFdpbmRvdyAqLyAgICAxLCAx
MSwgIDIsIDIsIDAsICAxLCA1MSwgMCwgMiwgNTUsCi0gICAgICAgICAgICAvKiBXaW5kb3cgKi8g
ICAgMSwgMTEsICAzLCAzLCAwLCAgMSwgNTUsIDAsIDIsIDYyLCAxLCAzLCA3MiwKLSAgICAgICAg
ICAgIC8qIEUgKi8gICAgICAgICAxLCAgNSwgIDQsIDAsCi0gICAgICAgICAgICAvKiBGICovICAg
ICAgICAgMSwgIDYsICA1LCAxLCAwLCAgMSwgNzYsCi0gICAgICAgICAgICAvKiBBICovICAgICAg
ICAgMSwgIDEsICA2LCAwLAotICAgICAgICAgICAgLyogQiAqLyAgICAgICAgIDEsICAyLCAgNywg
MSwgMCwgIDEsIDgwLAotICAgICAgICAgICAgLyogRCAqLyAgICAgICAgIDEsICA0LCAgOCwgMiwg
MiwgMTIsIDg0LCAyLCAxLCA4OCwKLSAgICAgICAgICAgIC8qIEggKi8gICAgICAgICAxLCAgOCwg
IDksIDAsCi0gICAgICAgICAgICAvKiBHICovICAgICAgICAgMSwgIDcsIDEwLCAwLAotICAgICAg
ICAgICAgLyogQyAqLyAgICAgICAgIDEsICAzLCAxMSwgMCwKLSAgICAgICAgICAgIC8qIE4gKi8g
ICAgICAgICAxLCAxMCwgMTIsIDAsCi0gICAgICAgICAgICAvKiBNICovICAgICAgICAgMSwgIDks
IDEzLCAwCisgICAgICAgICAgICAvKiAocm9vdCkgKi8gICAgMCwgIDAsICAxLCAgMCwKKyAgICAg
ICAgICAgIC8qIFdpbmRvdyAqLyAgICAxLCAxMSwgIDIsIDEyLAorICAgICAgICAgICAgLyogV2lu
ZG93ICovICAgIDEsIDExLCAgMywgMTgsCisgICAgICAgICAgICAvKiBFICovICAgICAgICAgMSwg
IDUsICA0LCAyNywKKyAgICAgICAgICAgIC8qIEYgKi8gICAgICAgICAxLCAgNiwgIDUsIDI3LAor
ICAgICAgICAgICAgLyogQSAqLyAgICAgICAgIDEsICAxLCAgNiwgMzAsCisgICAgICAgICAgICAv
KiBCICovICAgICAgICAgMSwgIDIsICA3LCAzMCwKKyAgICAgICAgICAgIC8qIEQgKi8gICAgICAg
ICAxLCAgNCwgIDgsIDMzLAorICAgICAgICAgICAgLyogSCAqLyAgICAgICAgIDEsICA4LCAgOSwg
MzksCisgICAgICAgICAgICAvKiBHICovICAgICAgICAgMSwgIDcsIDEwLCAzOSwKKyAgICAgICAg
ICAgIC8qIEMgKi8gICAgICAgICAxLCAgMywgMTEsIDM5LAorICAgICAgICAgICAgLyogTiAqLyAg
ICAgICAgIDEsIDEwLCAxMiwgMzksCisgICAgICAgICAgICAvKiBNICovICAgICAgICAgMSwgIDks
IDEzLCAzOQorICAgICAgICAgICAgXSwKKyAgICAgICAgZWRnZXM6IFsKKyAgICAgICAgICAgIC8q
IGZyb20gKHJvb3QpICovICAwLCAgMSwgIDQsIDAsIDIsICA4LCAwLCAzLCAxMiwgMCwgNCwgMTYs
CisgICAgICAgICAgICAvKiBmcm9tIFdpbmRvdyAqLyAgMCwgIDEsIDIwLCAwLCAyLCAyNCwKKyAg
ICAgICAgICAgIC8qIGZyb20gV2luZG93ICovICAwLCAgMSwgMjQsIDAsIDIsIDI4LCAxLCAzLCAz
MiwKKyAgICAgICAgICAgIC8qIGZyb20gRiAqLyAgICAgICAwLCAgMSwgMzYsCisgICAgICAgICAg
ICAvKiBmcm9tIEIgKi8gICAgICAgMCwgIDEsIDQwLAorICAgICAgICAgICAgLyogZnJvbSBEICov
ICAgICAgIDIsIDEyLCA0NCwgMiwgMSwgNDgKICAgICAgICAgICAgIF0sCiAgICAgICAgIHN0cmlu
Z3M6IFsiIiwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJGIiwgIkciLCAiSCIsICJNIiwgIk4i
LCAiV2luZG93IiwgIm5hdGl2ZSJdCiAgICAgfSk7CkBAIC0zODUsNTAgKzM3OCw1NyBAQCBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdCA9IGZ1bmN0aW9uKGluc3RhbmNlQ291bnQsIGZp
cnN0SWQpCiAgICAgLy8gCiAgICAgLy8gSW5zdGFuY2VzIG9mIEEgaGF2ZSAxMiBieXRlcyBzaXpl
LCBpbnN0YW5jZXMgb2YgQiBoYXMgMTYgYnl0ZXMgc2l6ZS4KICAgICB2YXIgc2l6ZU9mQSA9IDEy
OwotICAgIHZhciBzaXplT2ZCID0gMTY7ICAKKyAgICB2YXIgc2l6ZU9mQiA9IDE2OworICAgIHZh
ciBub2RlcyA9IFtdOworICAgIHZhciBlZGdlcyA9IFtdOworCisgICAgZnVuY3Rpb24gYWRkRWRn
ZSh0eXBlLCBuYW1lT3JJbmRleCwgdG9Ob2RlKSB7CisgICAgICB2YXIgZWRnZUluZGV4ID0gZWRn
ZXMubGVuZ3RoOworICAgICAgZWRnZXMucHVzaCh0eXBlLCBuYW1lT3JJbmRleCwgdG9Ob2RlKTsK
KyAgICAgIHJldHVybiBlZGdlSW5kZXg7CisgICAgfQogCi0gICAgZnVuY3Rpb24gZ2VuZXJhdGVO
b2RlcygpCi0gICAgewotICAgICAgICB2YXIgbm9kZXMgPSBbbnVsbF07Ci0gICAgICAgIC8vIFB1
c2ggdGhlICdtZXRhLXJvb3QnIG5vZGUuCi0gICAgICAgIG5vZGVzLnB1c2goMCwgMCwgMSwgMCwg
KHNpemVPZkEgKyBzaXplT2ZCKSAqIGluc3RhbmNlQ291bnQsIDEsIDEsIDQsIDEsIG51bGwpOwot
ICAgICAgICAvLyBQdXNoIGluc3RhbmNlcyBvZiBBIGFuZCBCLgotICAgICAgICB2YXIgaW5kZXhl
c09mQiA9IFtdOwotICAgICAgICB2YXIgbmV4dElkID0gZmlyc3RJZCB8fCA1OwotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGluc3RhbmNlQ291bnQ7ICsraSkgewotICAgICAgICAgICAgdmFy
IGluZGV4T2ZBID0gbm9kZXMubGVuZ3RoOwotICAgICAgICAgICAgbm9kZXMucHVzaCgzLCAxLCBu
ZXh0SWQrKywgc2l6ZU9mQSwgc2l6ZU9mQSwgbnVsbCwgMSwgMiwgMywgaW5kZXhPZkEpOwotICAg
ICAgICAgICAgdmFyIGluZGV4T2ZCID0gbm9kZXMubGVuZ3RoOwotICAgICAgICAgICAgLy8gU2V0
IGRvbWluYXRvciBvZiBBLgotICAgICAgICAgICAgbm9kZXNbaW5kZXhPZkEgKyA1XSA9IGluZGV4
T2ZCOwotICAgICAgICAgICAgbm9kZXMucHVzaCgzLCAyLCBuZXh0SWQrKywgc2l6ZU9mQiwgc2l6
ZU9mQiArIHNpemVPZkEsIG51bGwsIDEsIDIsIDMsIGluZGV4T2ZBKTsKLSAgICAgICAgICAgIGlu
ZGV4ZXNPZkIucHVzaChpbmRleE9mQik7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGluZGV4T2ZH
Q1Jvb3RzID0gbm9kZXMubGVuZ3RoOwotICAgICAgICBub2Rlcy5wdXNoKDMsIDQsIDMsIDAsIChz
aXplT2ZBICsgc2l6ZU9mQikgKiBpbnN0YW5jZUNvdW50LCAxLCBpbnN0YW5jZUNvdW50KTsKLSAg
ICAgICAgLy8gU2V0IGRvbWluYXRvciBvZiBCLgotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGluc3RhbmNlQ291bnQ7ICsraSkgewotICAgICAgICAgICAgbm9kZXNbaW5kZXhlc09mQltpXSAr
IDVdID0gaW5kZXhPZkdDUm9vdHM7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gU2V0IChHQyByb290
cykgYXMgY2hpbGQgb2YgbWV0YS1yb290LgotICAgICAgICBub2Rlc1sxMF0gPSBpbmRleE9mR0NS
b290czsKLSAgICAgICAgLy8gUHVzaCBpbnN0YW5jZXMgb2YgQiBhcyBjaGlsZHJlbiBvZiBHQyBy
b290cy4KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnN0YW5jZUNvdW50OyArK2kpIHsK
LSAgICAgICAgICAgIG5vZGVzLnB1c2goMSwgaSArIDEsIGluZGV4ZXNPZkJbaV0pOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBub2RlczsKKyAgICBub2Rlcy5wdXNoKDAsIDAsIDEsIDAsIChz
aXplT2ZBICsgc2l6ZU9mQikgKiBpbnN0YW5jZUNvdW50LCAwLCBhZGRFZGdlKDQsIDEsIG51bGwp
KTsKKyAgICAvLyBQdXNoIGluc3RhbmNlcyBvZiBBIGFuZCBCLgorICAgIHZhciBpbmRleGVzT2ZC
ID0gW107CisgICAgdmFyIG5leHRJZCA9IGZpcnN0SWQgfHwgNTsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGluc3RhbmNlQ291bnQ7ICsraSkgeworICAgICAgICB2YXIgaW5kZXhPZkEgPSBub2Rl
cy5sZW5ndGg7CisgICAgICAgIG5vZGVzLnB1c2goMywgMSwgbmV4dElkKyssIHNpemVPZkEsIHNp
emVPZkEsIG51bGwsIGFkZEVkZ2UoMiwgMywgaW5kZXhPZkEpKTsKKyAgICAgICAgdmFyIGluZGV4
T2ZCID0gbm9kZXMubGVuZ3RoOworICAgICAgICAvLyBTZXQgZG9taW5hdG9yIG9mIEEuCisgICAg
ICAgIG5vZGVzW2luZGV4T2ZBICsgNV0gPSBpbmRleE9mQjsKKyAgICAgICAgbm9kZXMucHVzaCgz
LCAyLCBuZXh0SWQrKywgc2l6ZU9mQiwgc2l6ZU9mQiArIHNpemVPZkEsIG51bGwsIGFkZEVkZ2Uo
MiwgMywgaW5kZXhPZkEpKTsKKyAgICAgICAgaW5kZXhlc09mQi5wdXNoKGluZGV4T2ZCKTsKKyAg
ICB9CisgICAgdmFyIGluZGV4T2ZHQ1Jvb3RzID0gbm9kZXMubGVuZ3RoOworICAgIG5vZGVzLnB1
c2goMywgNCwgMywgMCwgKHNpemVPZkEgKyBzaXplT2ZCKSAqIGluc3RhbmNlQ291bnQsIDAsIGVk
Z2VzLmxlbmd0aCk7CisgICAgLy8gU2V0IGRvbWluYXRvciBvZiBCLgorICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgaW5zdGFuY2VDb3VudDsgKytpKSB7CisgICAgICAgIG5vZGVzW2luZGV4ZXNPZkJb
aV0gKyA1XSA9IGluZGV4T2ZHQ1Jvb3RzOworICAgIH0KKyAgICAvLyBTZXQgKEdDIHJvb3RzKSBh
cyBjaGlsZCBvZiBtZXRhLXJvb3QuCisgICAgZWRnZXNbMl0gPSBpbmRleE9mR0NSb290czsKKyAg
ICAvLyBQdXNoIGluc3RhbmNlcyBvZiBCIGFzIGNoaWxkcmVuIG9mIEdDIHJvb3RzLgorICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgaW5zdGFuY2VDb3VudDsgKytpKSB7CisgICAgICAgIGFkZEVkZ2Uo
MSwgaSArIDEsIGluZGV4ZXNPZkJbaV0pOwogICAgIH0KIAogICAgIHZhciByZXN1bHQgPSB7Ci0g
ICAgICAgICJzbmFwc2hvdCI6IHt9LAotICAgICAgICAibm9kZXMiOiBnZW5lcmF0ZU5vZGVzKCks
CisgICAgICAgICJzbmFwc2hvdCI6IHsKKyAgICAgICAgICAgICJtZXRhIjogeworICAgICAgICAg
ICAgICAgICJub2RlX2ZpZWxkcyI6IFsidHlwZSIsIm5hbWUiLCJpZCIsInNlbGZfc2l6ZSIsInJl
dGFpbmVkX3NpemUiLCJkb21pbmF0b3IiLCJlZGdlc19pbmRleCJdLAorICAgICAgICAgICAgICAg
ICJub2RlX3R5cGVzIjogW1siaGlkZGVuIiwiYXJyYXkiLCJzdHJpbmciLCJvYmplY3QiLCJjb2Rl
IiwiY2xvc3VyZSIsInJlZ2V4cCIsIm51bWJlciIsIm5hdGl2ZSJdLCJzdHJpbmciLCJudW1iZXIi
LCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSwKKyAgICAgICAgICAgICAgICAi
ZWRnZV9maWVsZHMiOiBbInR5cGUiLCJuYW1lX29yX2luZGV4IiwidG9fbm9kZSJdLAorICAgICAg
ICAgICAgICAgICJlZGdlX3R5cGVzIjogW1siY29udGV4dCIsImVsZW1lbnQiLCJwcm9wZXJ0eSIs
ImludGVybmFsIiwiaGlkZGVuIiwic2hvcnRjdXQiXSwic3RyaW5nX29yX251bWJlciIsIm5vZGUi
XQorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAibm9kZXMiOiBub2RlcywKKyAg
ICAgICAgImVkZ2VzIjogZWRnZXMsCiAgICAgICAgICJzdHJpbmdzIjogWyIiLCAiQSIsICJCIiwg
ImEiLCAiKEdDIHJvb3RzKSJdCiAgICAgfTsKLSAgICByZXN1bHQubm9kZXNbMF0gPSB7Ci0gICAg
ICAgICJmaWVsZHMiOlsidHlwZSIsIm5hbWUiLCJpZCIsInNlbGZfc2l6ZSIsInJldGFpbmVkX3Np
emUiLCJkb21pbmF0b3IiLCJjaGlsZHJlbl9jb3VudCIsImNoaWxkcmVuIl0sCi0gICAgICAgICJ0
eXBlcyI6W1siaGlkZGVuIiwiYXJyYXkiLCJzdHJpbmciLCJvYmplY3QiLCJjb2RlIiwiY2xvc3Vy
ZSIsInJlZ2V4cCIsIm51bWJlciIsIm5hdGl2ZSJdLCJzdHJpbmciLCJudW1iZXIiLCJudW1iZXIi
LCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLHsKLSAgICAgICAgICAgICJmaWVsZHMiOlsidHlw
ZSIsIm5hbWVfb3JfaW5kZXgiLCJ0b19ub2RlIl0sCi0gICAgICAgICAgICAidHlwZXMiOltbImNv
bnRleHQiLCJlbGVtZW50IiwicHJvcGVydHkiLCJpbnRlcm5hbCIsImhpZGRlbiIsInNob3J0Y3V0
Il0sInN0cmluZ19vcl9udW1iZXIiLCJub2RlIl19XX07CisgICAgcmVzdWx0LnNuYXBzaG90Lm5v
ZGVfY291bnQgPSByZXN1bHQubm9kZXMubGVuZ3RoIC8gcmVzdWx0LnNuYXBzaG90Lm1ldGEubm9k
ZV9maWVsZHMubGVuZ3RoOworICAgIHJlc3VsdC5zbmFwc2hvdC5lZGdlX2NvdW50ID0gcmVzdWx0
LmVkZ2VzLmxlbmd0aCAvIHJlc3VsdC5zbmFwc2hvdC5tZXRhLmVkZ2VfZmllbGRzLmxlbmd0aDsK
ICAgICByZXR1cm4gcmVzdWx0OwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90Lmh0bWwKaW5kZXggYWY3NDFhMGU2OWZjMmI3ZTRlNzljOTcw
NDAzODM5MjVkNmE5MDUyMy4uNDRiMjkzZGRiZmEyNjMxNmM4MTQzMGQ0ZGUwZGJkY2UwYmY0MDU0
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hv
dC5odG1sCkBAIC05NSw1MiArOTUsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIG5l
eHQoKTsKICAgICAgICAgfSwKIAotICAgICAgICBmdW5jdGlvbiB0ZXN0Tm9kZXNBbmRFZGdlc1Nl
cGFyYXRpb25JbkhlYXBTbmFwc2hvdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIg
c25hcHNob3QgPSBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdChJbnNwZWN0b3JUZXN0LmNy
ZWF0ZUhlYXBTbmFwc2hvdE1vY2soKSk7Ci0gICAgICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZU5l
d0luZGV4KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgY29waWVkTm9kZUlu
ZGV4ID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBub2Rlc0l0ZXIgPSB0aGlzLl9hbGxO
b2Rlczsgbm9kZXNJdGVyLmhhc05leHQoKTsgbm9kZXNJdGVyLm5leHQoKSwgY29waWVkTm9kZUlu
ZGV4ICs9IHRoaXMuX25vZGVGaWVsZENvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBv
cmlnaW5hbE5vZGUgPSBub2Rlc0l0ZXIubm9kZTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGNv
cGllZE5vZGUgPSB0aGlzLl9vbmx5Tm9kZXNbY29waWVkTm9kZUluZGV4XTsKLQotICAgICAgICAg
ICAgICAgICAgICBpZiAob3JpZ2luYWxOb2RlLmlkICE9PSB0aGlzLl9vbmx5Tm9kZXNbY29waWVk
Tm9kZUluZGV4ICsgdGhpcy5fbm9kZUlkT2Zmc2V0XSkKLSAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiSWQgbWlzbWF0Y2g6ICIgKyBvcmlnaW5hbE5vZGUuaWQpOwotCi0g
ICAgICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbE5vZGUuX3R5cGUoKSAhPT0gdGhpcy5fb25s
eU5vZGVzW2NvcGllZE5vZGVJbmRleCArIHRoaXMuX25vZGVUeXBlT2Zmc2V0XSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTm9kZSB0eXBlIG1pc21hdGNoOiAiICsg
b3JpZ2luYWxOb2RlLmlkKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBWYWxpZGF0ZSBjb250
YWlubWVudCBlZGdlcy4KLSAgICAgICAgICAgICAgICAgICAgdmFyIGZpcnN0RWRnZUluZGV4ID0g
dGhpcy5fb25seU5vZGVzW2NvcGllZE5vZGVJbmRleCArIHRoaXMuX2VkZ2VzQ291bnRPZmZzZXRd
OwotICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dE5vZGVJbmRleCA9IGNvcGllZE5vZGVJbmRl
eCArIHRoaXMuX25vZGVGaWVsZENvdW50OwotICAgICAgICAgICAgICAgICAgICB2YXIgbGFzdEVk
Z2VJbmRleCA9IChuZXh0Tm9kZUluZGV4IDwgdGhpcy5fb25seU5vZGVzLmxlbmd0aCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl9vbmx5Tm9kZXNbbmV4dE5v
ZGVJbmRleCArIHRoaXMuX2VkZ2VzQ291bnRPZmZzZXRdCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDogdGhpcy5fY29udGFpbm1lbnRFZGdlcy5sZW5ndGg7Ci0KLSAgICAg
ICAgICAgICAgICAgICAgaWYgKG9yaWdpbmFsTm9kZS5lZGdlc0NvdW50ICE9PSAobGFzdEVkZ2VJ
bmRleCAtIGZpcnN0RWRnZUluZGV4KSAvIHRoaXMuX2VkZ2VGaWVsZHNDb3VudCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRWRnZXMgY291bnQgbWlzbWF0Y2g6ICIg
KyBvcmlnaW5hbE5vZGUuaWQpOwotCi0gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGVkZ2VJ
dGVyID0gb3JpZ2luYWxOb2RlLmVkZ2VzLCBjb3BpZWRFZGdlSW5kZXggPSBmaXJzdEVkZ2VJbmRl
eDsgZWRnZUl0ZXIuaGFzTmV4dCgpOyBlZGdlSXRlci5uZXh0KCksIGNvcGllZEVkZ2VJbmRleCAr
PSB0aGlzLl9lZGdlRmllbGRzQ291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChl
ZGdlSXRlci5lZGdlLl90eXBlKCkgIT09IHRoaXMuX2NvbnRhaW5tZW50RWRnZXNbY29waWVkRWRn
ZUluZGV4ICsgdGhpcy5fZWRnZVR5cGVPZmZzZXRdKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiRWRnZSB0eXBlIG1pc21hdGNoOiAiICsgZWRnZUl0ZXIuZWRn
ZS50eXBlKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRvTm9kZUluZGV4ID0gdGhp
cy5fY29udGFpbm1lbnRFZGdlc1tjb3BpZWRFZGdlSW5kZXggKyB0aGlzLl9lZGdlVG9Ob2RlT2Zm
c2V0XTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlZGdlSXRlci5lZGdlLm5vZGUuaWQg
IT09IHRoaXMuX29ubHlOb2Rlc1t0b05vZGVJbmRleCArIHRoaXMuX25vZGVJZE9mZnNldF0pCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFZGdlIHRvIG5vZGUg
aWQgbWlzbWF0Y2g6ICIgKyBlZGdlSXRlci5lZGdlLm5vZGUuaWQpOwotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgICAgICB2YWxpZGF0ZU5ld0luZGV4LmNhbGwoc25hcHNob3QpOwotICAg
ICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KGUpOwotICAgICAgICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLQogICAgICAgICBmdW5jdGlvbiBoZWFwU25h
cHNob3RSZXRhaW5lcnNUZXN0KG5leHQpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBzbmFw
c2hvdCA9IG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90KEluc3BlY3RvclRlc3QuY3JlYXRl
SGVhcFNuYXBzaG90TW9jaygpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>