<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>27206</bug_id>
          
          <creation_ts>2014-10-31 13:16:25 +0000</creation_ts>
          <short_desc>decode</short_desc>
          <delta_ts>2014-10-31 13:16:25 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>LogValidator</product>
          <component>logprocess.pl</component>
          <version>unspecified</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows NT</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="u">ulfbilling18</reporter>
          <assigned_to name="Olivier Thereaux">ot</assigned_to>
          
          
          <qa_contact name="qa-dev tracking">www-validator-cvs</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>114316</commentid>
    <comment_count>0</comment_count>
      <attachid>1529</attachid>
    <who name="u">ulfbilling18</who>
    <bug_when>2014-10-31 13:16:25 +0000</bug_when>
    <thetext>Created attachment 1529
decode

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>1529</attachid>
            <date>2014-10-31 13:16:25 +0000</date>
            <delta_ts>2014-10-31 13:16:25 +0000</delta_ts>
            <desc>decode</desc>
            <filename>file_27206.txt</filename>
            <type>text/plain</type>
            <size>58951</size>
            <attacher name="u">ulfbilling18</attacher>
            
              <data encoding="base64">LyohIG1tanMgLSAxLjcuMCAtIHYxLjcuMC0wLWcxYWJmNTQwIC0gMjAxNC0wNS0zMCAqLw0KdmFy
IE1NQXBwU3RvcmUsIE1NQmFubmVyLCBNTUJyYW5kLCBNTUJyaWRnZU9iamVjdCwgTU1DYWNoZWRW
aWRlbywgTU1DYWxlbmRhciwgTU1Db21tYW5kLCBNTURldmljZSwgTU1JbmxpbmVWaWRlbywgTU1J
bnRlcnN0aXRpYWwsIE1NSlMsIE1NSlNVdGlscywgTU1MaXN0ZW5lck1hbmFnZXIsIE1NTWVkaWEs
IE1NTm90aWZpY2F0aW9uLCBNTVBhc3Nib29rLCBNTVNES0ludGVyZmFjZSwgTU1Tb2NpYWwsIE1N
U3BlZWNoa2l0LCBNUkFJRCwgX3JlZiwgX3JlZjEsIF9yZWYxMCwgX3JlZjExLCBfcmVmMTIsIF9y
ZWYyLCBfcmVmMywgX3JlZjQsIF9yZWY1LCBfcmVmNiwgX3JlZjcsIF9yZWY4LCBfcmVmOSwgX19o
YXNQcm9wID0ge30uaGFzT3duUHJvcGVydHksDQogICAgX19leHRlbmRzID0gZnVuY3Rpb24oY2hp
bGQsIHBhcmVudCkgew0KICAgICAgICBmdW5jdGlvbiBjdG9yKCkgew0KICAgICAgICAgICAgdGhp
cy5jb25zdHJ1Y3RvciA9IGNoaWxkDQogICAgICAgIH0NCiAgICAgICAgZm9yICh2YXIga2V5IGlu
IHBhcmVudCkgX19oYXNQcm9wLmNhbGwocGFyZW50LCBrZXkpICYmIChjaGlsZFtrZXldID0gcGFy
ZW50W2tleV0pOw0KICAgICAgICByZXR1cm4gY3Rvci5wcm90b3R5cGUgPSBwYXJlbnQucHJvdG90
eXBlLCBjaGlsZC5wcm90b3R5cGUgPSBuZXcgY3RvciwgY2hpbGQuX19zdXBlcl9fID0gcGFyZW50
LnByb3RvdHlwZSwgY2hpbGQNCiAgICB9Ow0KU3RyaW5nLnByb3RvdHlwZS50cmltID0gZnVuY3Rp
b24oKSB7DQogICAgcmV0dXJuIHRoaXMucmVwbGFjZShSZWdFeHAoIl5cXHMrfFxccyskIiwgImci
KSwgIiIpDQp9LCBTdHJpbmcucHJvdG90eXBlLnRpdGxlQ2FzZSA9IGZ1bmN0aW9uKCkgew0KICAg
IHJldHVybiB0aGlzLnJlcGxhY2UoUmVnRXhwKCJcXHdcXFMqIiwgImciKSwgZnVuY3Rpb24oc3Ry
KSB7DQogICAgICAgIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkuY29uY2F0KHN0
ci5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKSkNCiAgICB9KQ0KfSwgInVuZGVmaW5lZCIgPT0gdHlw
ZW9mIE1NSlMgJiYgKE1NSlNVdGlscyA9IGZ1bmN0aW9uKCkgew0KICAgIGZ1bmN0aW9uIE1NSlNV
dGlscygpIHt9DQogICAgcmV0dXJuIE1NSlNVdGlscy5pb3NfdmVyc2lvbiA9IG51bGwsIE1NSlNV
dGlscy5wbGF0Zm9ybSA9IG51bGwsIE1NSlNVdGlscy5zZGtfdmVyc2lvbiA9IG51bGwsIE1NSlNV
dGlscy5wYXJhbXMgPSBudWxsLCBNTUpTVXRpbHMuaXNCcmlkZ2VFbmFibGVkID0gZnVuY3Rpb24o
KSB7DQogICAgICAgIHJldHVybiAidW5rbm93biIgIT09IE1NRGV2aWNlLnJlYWR5U3RhdGUgPyAh
MCA6ICExDQogICAgfSwgTU1KU1V0aWxzLmlzUHJlNDYgPSBmdW5jdGlvbihhKSB7DQogICAgICAg
IHJldHVybiB0aGlzLmlzQnJpZGdlRW5hYmxlZCgpID09PSAhMCA/ICExIDogbnVsbCA9PSBhID8g
ITAgOiB0aGlzLnVuZGVyVmVyc2lvbihhLCAiNC42LjAiKQ0KICAgIH0sIE1NSlNVdGlscy51bmRl
clZlcnNpb24gPSBmdW5jdGlvbih2ZXJzaW9uU3RyaW5nLCBtaW5WZXJzaW9uKSB7DQogICAgICAg
IHZhciBpLCByZXMsIHJlc3VsdCwgdjEsIHYyOw0KICAgICAgICBpZiAobnVsbCA9PSB2ZXJzaW9u
U3RyaW5nKSByZXR1cm4gITE7DQogICAgICAgIGZvciAodjEgPSB2ZXJzaW9uU3RyaW5nLnNwbGl0
KCIuIiksIHYyID0gbWluVmVyc2lvbi5zcGxpdCgiLiIpLCBpID0gMCwgcmVzdWx0ID0gMDsgaSA8
IE1hdGgubWluKHYxLmxlbmd0aCwgdjIubGVuZ3RoKTspIHsNCiAgICAgICAgICAgIGlmIChyZXMg
PSB2MVtpXSAtIHYyW2ldLCAwICE9PSByZXMpIHsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSBy
ZXM7DQogICAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGkr
Kw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAwID4gcmVzdWx0DQogICAgfSwgTU1KU1V0aWxz
LmlzVmVyc2lvbiA9IGZ1bmN0aW9uKHZlcnNpb25TdHJpbmcpIHsNCiAgICAgICAgdmFyIGksIHJl
cywgcmVzdWx0LCB2MSwgdjI7DQogICAgICAgIGlmIChudWxsID09IHZlcnNpb25TdHJpbmcpIHJl
dHVybiAhMTsNCiAgICAgICAgZm9yICh2MSA9IHZlcnNpb25TdHJpbmcuc3BsaXQoIi4iKSwgdjIg
PSB0aGlzLnNka1ZlcnNpb24oKS5zcGxpdCgiLiIpLCBpID0gMCwgcmVzdWx0ID0gMDsgaSA8IE1h
dGgubWluKHYxLmxlbmd0aCwgdjIubGVuZ3RoKTspIHsNCiAgICAgICAgICAgIGlmIChyZXMgPSB2
MVtpXSAtIHYyW2ldLCAwICE9PSByZXMpIHsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXM7
DQogICAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGkrKw0K
ICAgICAgICB9DQogICAgICAgIHJldHVybiAwID09PSByZXN1bHQNCiAgICB9LCBNTUpTVXRpbHMu
aXNJT1MgPSBmdW5jdGlvbigpIHsNCiAgICAgICAgcmV0dXJuICJpb3MiID09PSB0aGlzLmdldFBs
YXRmb3JtKCkNCiAgICB9LCBNTUpTVXRpbHMuaXNXaW5kb3dzID0gZnVuY3Rpb24oKSB7DQogICAg
ICAgIHJldHVybiAid2luZG93cyIgPT09IHRoaXMuZ2V0UGxhdGZvcm0oKQ0KICAgIH0sIE1NSlNV
dGlscy5pc0JsYWNrQmVycnkgPSBmdW5jdGlvbigpIHsNCiAgICAgICAgcmV0dXJuICJibGFja2Jl
cnJ5IiA9PT0gdGhpcy5nZXRQbGF0Zm9ybSgpDQogICAgfSwgTU1KU1V0aWxzLmlzQW5kcm9pZCA9
IGZ1bmN0aW9uKCkgew0KICAgICAgICByZXR1cm4gImFuZHJvaWQiID09PSB0aGlzLmdldFBsYXRm
b3JtKCkNCiAgICB9LCBNTUpTVXRpbHMuZ2V0UGxhdGZvcm0gPSBmdW5jdGlvbigpIHsNCiAgICAg
ICAgcmV0dXJuIG51bGwgIT0gdGhpcy5wbGF0Zm9ybSA/IHRoaXMucGxhdGZvcm0gOiAodGhpcy5w
bGF0Zm9ybSA9IG51bGwgIT0gbmF2aWdhdG9yLnBsYXRmb3JtLm1hdGNoKC8oQW5kcm9pZCkvKSA/
ICJhbmRyb2lkIiA6IG51bGwgIT0gbmF2aWdhdG9yLnBsYXRmb3JtLm1hdGNoKC9eKGlQYWR8aVBv
ZHxpUGhvbmUpLykgPyAiaW9zIiA6ICJhbmRyb2lkIiwgdGhpcy5wbGF0Zm9ybSkNCiAgICB9LCBN
TUpTVXRpbHMuc2RrVmVyc2lvbiA9IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgbW1pc2RrLCBw
YXJhbXM7DQogICAgICAgIHJldHVybiBudWxsICE9IHRoaXMuc2RrX3ZlcnNpb24gPyB0aGlzLnNk
a192ZXJzaW9uIDogbnVsbCAhPSBNTUpTLnNka1ZlcnNpb24gPyAodGhpcy5zZGtfdmVyaXNvbiA9
IE1NSlMuc2RrVmVyc2lvbiwgdGhpcy5zZGtfdmVyc2lvbikgOiAocGFyYW1zID0gdGhpcy5nZXRQ
YXJhbXMoKSwgbnVsbCAhPSBwYXJhbXMuc2RrdmVyc2lvbiA/IChtbWlzZGsgPSBwYXJhbXMuc2Rr
dmVyc2lvbi5zcGxpdCgiLSIpLCB0aGlzLnNka192ZXJzaW9uID0gbW1pc2RrWzBdLCB0aGlzLnNk
a192ZXJzaW9uKSA6IG51bGwpDQogICAgfSwgTU1KU1V0aWxzLnNpbXVsYXRlUmVkaXJlY3QgPSBm
dW5jdGlvbih1cmwpIHsNCiAgICAgICAgdmFyIGV2ZW50RmlyZSwgbGlua1RhZzsNCiAgICAgICAg
cmV0dXJuIGxpbmtUYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksIGxpbmtUYWcuaWQg
PSAibW1fc2ltdWxhdGVMaW5rIiwgbGlua1RhZy5zZXRBdHRyaWJ1dGUoImhyZWYiLCB1cmwpLCBs
aW5rVGFnLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAib3BhY2l0eTowIiksIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQobGlua1RhZyksIGV2ZW50RmlyZSA9IGZ1bmN0aW9uKGVsLCBldHlwZSkgew0K
ICAgICAgICAgICAgdmFyIGV2T2JqOw0KICAgICAgICAgICAgcmV0dXJuIGVsLmZpcmVFdmVudCA/
IGVsLmZpcmVFdmVudCgib24iICsgZXR5cGUpIDogKGV2T2JqID0gZG9jdW1lbnQuY3JlYXRlRXZl
bnQoIkV2ZW50cyIpLCBldk9iai5pbml0RXZlbnQoZXR5cGUsICEwLCAhMSksIGVsLmRpc3BhdGNo
RXZlbnQoZXZPYmopKQ0KICAgICAgICB9LCB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsN
CiAgICAgICAgICAgIHZhciBlbGVtZW50Ow0KICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQgPSBs
aW5rVGFnLCBldmVudEZpcmUobGlua1RhZywgImNsaWNrIikNCiAgICAgICAgfSwgMSkNCiAgICB9
LCBNTUpTVXRpbHMubW9kRHVyYXRpb24gPSBmdW5jdGlvbihkdXJhdGlvbikgew0KICAgICAgICBy
ZXR1cm4gdGhpcy5pc0FuZHJvaWQoKSAmJiAxMDAgPiBkdXJhdGlvbiA/IDFlMyAqIGR1cmF0aW9u
IDogZHVyYXRpb24NCiAgICB9LCBNTUpTVXRpbHMuZ2V0UGFyYW1zID0gZnVuY3Rpb24oKSB7DQog
ICAgICAgIHZhciBuLCBuYW1lLCBwYWlyLCBwYXJhbXMsIHFzLCB2YWx1ZSwgX2ksIF9sZW4sIF9y
ZWYsIF9yZWYxOw0KICAgICAgICBpZiAobnVsbCAhPSB0aGlzLnBhcmFtcykgcmV0dXJuIHRoaXMu
cGFyYW1zOw0KICAgICAgICBpZiAocGFyYW1zID0ge30sIHFzID0gd2luZG93LmxvY2F0aW9uLnNl
YXJjaC5zdWJzdHJpbmcoMSksIHFzLmxlbmd0aCkNCiAgICAgICAgICAgIGZvciAoX3JlZiA9IGZ1
bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIHZhciBfaiwgX2xlbiwgX3JlZiwgX3Jlc3VsdHM7
DQogICAgICAgICAgICAgICAgZm9yIChfcmVmID0gcXMuc3BsaXQoIiYiKSwgX3Jlc3VsdHMgPSBb
XSwgX2ogPSAwLCBfbGVuID0gX3JlZi5sZW5ndGg7IF9sZW4gPiBfajsgX2orKykgcGFpciA9IF9y
ZWZbX2pdLCBfcmVzdWx0cy5wdXNoKHBhaXIuc3BsaXQoIj0iKSk7DQogICAgICAgICAgICAgICAg
cmV0dXJuIF9yZXN1bHRzDQogICAgICAgICAgICB9KCksIF9pID0gMCwgX2xlbiA9IF9yZWYubGVu
Z3RoOyBfbGVuID4gX2k7IF9pKyspIF9yZWYxID0gX3JlZltfaV0sIG5hbWUgPSBfcmVmMVswXSwg
dmFsdWUgPSBfcmVmMVsxXSwgbiA9IG5hbWUucmVwbGFjZSgibW1fIiwgIiIpLCBudWxsICE9IHZh
bHVlICYmIChwYXJhbXNbbl0gPSB2YWx1ZSk7DQogICAgICAgIHJldHVybiB0aGlzLnBhcmFtcyA9
IHBhcmFtcywgdGhpcy5wYXJhbXMNCiAgICB9LCBNTUpTVXRpbHMuY29uc29sZUxvZyA9IGZ1bmN0
aW9uKF9tc2csIF91c2VBbGVydCkgew0KICAgICAgICByZXR1cm4gbnVsbCA9PSBfdXNlQWxlcnQg
JiYgKF91c2VBbGVydCA9ICExKSwgTU1KUy5ldmVudFRyYWNraW5nLnB1c2goX21zZyksIHRoaXMu
aXNBbmRyb2lkKCkgPyBudWxsICE9IHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxv
ZyhfbXNnKSA6IHRoaXMuaXNXaW5kb3dzKCkgPyB3aW5kb3cuZXh0ZXJuYWwubm90aWZ5KF9tc2cp
IDogKG51bGwgIT0gd2luZG93LmNvbnNvbGUgJiYgd2luZG93LmNvbnNvbGUubG9nKF9tc2cpLCBf
dXNlQWxlcnQgJiYgYWxlcnQoX21zZykpLCAhMQ0KICAgIH0sIE1NSlNVdGlscy5pT1NWZXJzaW9u
ID0gZnVuY3Rpb24oKSB7DQogICAgICAgIHZhciBfdjsNCiAgICAgICAgcmV0dXJuIHRoaXMuaW9z
X3ZlcnNpb24gPyB0aGlzLmlvc192ZXJzaW9uIDogKF92ID0gbmF2aWdhdG9yLmFwcFZlcnNpb24u
c3BsaXQoIiBPUyAiKVsxXSwgX3YgPSBfdi5zcGxpdCgiICIpWzBdLnRyaW0oKS5zcGxpdCgiXyIp
LCBfdi5zcGxpY2UoMSwgMCwgIi4iKSwgdGhpcy5pb3NfdmVyc2lvbiA9IHBhcnNlRmxvYXQoX3Yu
am9pbigiIikpKQ0KICAgIH0sIE1NSlNVdGlscy5nZXRMb2NhdGlvbiA9IGZ1bmN0aW9uKGZ1bmMs
IGVycm9yKSB7DQogICAgICAgIHJldHVybiBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gPyBuYXZpZ2F0
b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmMsIGVycm9yLCB7DQogICAgICAg
ICAgICAgICAgZW5hYmxlSGlnaEFjY3VyYWN5OiAhMA0KICAgICAgICAgICAgfSkgOiBlcnJvcih7
DQogICAgICAgICAgICAgICAgY29kZTogOTkNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1KU1V0
aWxzLmxpc3RlbkZvckJyb3dzZXJSZWFkeSA9IGZ1bmN0aW9uKGZ1bmMpIHsNCiAgICAgICAgcmV0
dXJuIHRoaXMuaXNXaW5kb3dzKCkgPyBkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRl
Y2hhbmdlIiwgZnVuYykgOiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9h
ZGVkIiwgZnVuYywgITEpDQogICAgfSwgTU1KU1V0aWxzLnBvc3RFdmVudCA9IGZ1bmN0aW9uKGV2
ZW50KSB7DQogICAgICAgIHZhciBldk9iajsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0
ZUV2ZW50ID8gKGV2T2JqID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IiksIGV2T2JqLmlu
aXRFdmVudChldmVudCwgITAsICEwKSwgd2luZG93LmRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZP
YmopKSA6IGRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0IHx8IHRoaXMuaXNXaW5kb3dzKCkgPyBk
b2N1bWVudC5ib2R5LmZpcmVFdmVudCgib24iICsgZXZlbnQpIDogdm9pZCAwDQogICAgfSwgTU1K
U1V0aWxzLm9mZnNldCA9IGZ1bmN0aW9uKF9lbCkgew0KICAgICAgICB2YXIgY29vcmRzLCBwX2Nv
b3JkczsNCiAgICAgICAgcmV0dXJuIGNvb3JkcyA9IFtfZWwub2Zmc2V0TGVmdCwgX2VsLm9mZnNl
dFRvcF0sIG51bGwgIT0gX2VsLm9mZnNldFBhcmVudCAmJiAocF9jb29yZHMgPSB0aGlzLm9mZnNl
dChfZWwub2Zmc2V0UGFyZW50KSwgY29vcmRzWzBdICs9IHBfY29vcmRzWzBdLCBjb29yZHNbMV0g
Kz0gcF9jb29yZHNbMV0pLCBjb29yZHMNCiAgICB9LCBNTUpTVXRpbHMNCn0oKSwgTU1KUyA9IGZ1
bmN0aW9uKCkgew0KICAgIGZ1bmN0aW9uIE1NSlMoKSB7fQ0KICAgIHJldHVybiBNTUpTLlZFUlNJ
T04gPSAiMS4zIiwgTU1KUy5jb21tYW5kUXVldWUgPSBbXSwgTU1KUy5hbmRyb2lkSW50ZXJmYWNl
ID0gd2luZG93WyJpbnRlcmZhY2UiXSwgTU1KUy51dGlscyA9IE1NSlNVdGlscywgTU1KUy5zZGtS
ZWFkeSA9ICExLCBNTUpTLmV4ZWN1dGluZ0NvbW1hbmQgPSAhMSwgTU1KUy5leGVjdXRpbmdDb21t
YW5kRGVsYXkgPSAwLCBNTUpTLnBhcmFtcyA9IG51bGwsIE1NSlMucGxhdGZvcm0gPSBudWxsLCBN
TUpTLmNhbGxiYWNrcyA9IHt9LCBNTUpTLmxpc3RlbmVycyA9IHt9LCBNTUpTLnNka1ZlcnNpb24g
PSBudWxsLCBNTUpTLm9wZW5DYWxsZWQgPSAhMSwgTU1KUy5UWVBFX1NUUklORyA9ICJzdHJpbmci
LCBNTUpTLlRZUEVfT0JKRUNUID0gdHlwZW9mW10sIE1NSlMuVFlQRV9GVU5DVElPTiA9ICJmdW5j
dGlvbiIsIE1NSlMuVFlQRV9OVU1CRVIgPSAibnVtYmVyIiwgTU1KUy5UWVBFX1VOREVGSU5FRCA9
ICJ1bmRlZmluZWQiLCBNTUpTLmV2ZW50VHJhY2tpbmcgPSBbXSwgTU1KUy5zZXRFeGVjdXRpbmdD
b21tYW5kID0gZnVuY3Rpb24oX2V4ZWN1dGluZywgX3RpbWUpIHsNCiAgICAgICAgcmV0dXJuIG51
bGwgPT0gX3RpbWUgJiYgKF90aW1lID0gMWU0KSwgdGhpcy5sb2dDYWxsc3RhY2soKSwgdGhpcy5l
eGVjdXRpbmdDb21tYW5kID0gX2V4ZWN1dGluZw0KICAgIH0sIE1NSlMubG9nQ2FsbHN0YWNrID0g
ZnVuY3Rpb24oKSB7DQogICAgICAgIHZhciBjYWxsc3RhY2ssIGN1cnJlbnRGdW5jdGlvbiwgZm4s
IGZuYW1lOw0KICAgICAgICBmb3IgKGNhbGxzdGFjayA9IFtdLCBjdXJyZW50RnVuY3Rpb24gPSBh
cmd1bWVudHMuY2FsbGVlLmNhbGxlcjsgY3VycmVudEZ1bmN0aW9uOykgZm4gPSBjdXJyZW50RnVu
Y3Rpb24udG9TdHJpbmcoKSwgZm5hbWUgPSBmbi5zdWJzdHJpbmcoZm4uaW5kZXhPZigiZnVuY3Rp
b24iKSArIDgsIGZuLmluZGV4T2YoIiIpKSB8fCAiYW5vbnltb3VzIiwgY2FsbHN0YWNrLnB1c2go
Zm5hbWUpLCBjdXJyZW50RnVuY3Rpb24gPSBjdXJyZW50RnVuY3Rpb24uY2FsbGVyOw0KICAgICAg
ICByZXR1cm4gTU1KUy51dGlscy5jb25zb2xlTG9nKGNhbGxzdGFjaykNCiAgICB9LCBNTUpTLmRl
YnVnID0gZnVuY3Rpb24oKSB7DQogICAgICAgIHZhciB0b0xvZzsNCiAgICAgICAgcmV0dXJuIHRv
TG9nID0gdGhpcy5ldmVudFRyYWNraW5nLmpvaW4oIlxuIiksIGNvbnNvbGUubG9nKHRvTG9nKSwg
ITANCiAgICB9LCBNTUpTLnNldFNES1ZlcnNpb24gPSBmdW5jdGlvbih2ZXJzaW9uKSB7DQogICAg
ICAgIHJldHVybiB0aGlzLnNka1ZlcnNpb24gPSB2ZXJzaW9uDQogICAgfSwgTU1KUy5tbXNka09w
ZW5GdW5jdGlvbiA9IG51bGwsIE1NSlMuc2hvdWxkT3Blbldhc0NhbGxlZCA9ICExLCBNTUpTLnNl
dHVwT3ZlcmxheSA9IGZ1bmN0aW9uKHVybCwgcGFyYW1zKSB7DQogICAgICAgIHJldHVybiBudWxs
ID09IHBhcmFtcyAmJiAocGFyYW1zID0ge30pLCB0aGlzLm9wZW4odXJsLCBwYXJhbXMsICExKQ0K
ICAgIH0sIE1NSlMub3BlbiA9IGZ1bmN0aW9uKHVybCwgcGFyYW1zLCBhdXRvRXhwYW5kKSB7DQog
ICAgICAgIHJldHVybiBudWxsID09IHBhcmFtcyAmJiAocGFyYW1zID0ge30pLCBudWxsID09IGF1
dG9FeHBhbmQgJiYgKGF1dG9FeHBhbmQgPSAhMCksIG1yYWlkLnNldEV4cGFuZFByb3BlcnRpZXMo
cGFyYW1zKSwgbXJhaWQuZXhwYW5kKHVybCkNCiAgICB9LCBNTUpTLmNsb3NlID0gZnVuY3Rpb24o
ZHVyYXRpb24pIHsNCiAgICAgICAgdmFyIG1vZER1cmF0aW9uOw0KICAgICAgICByZXR1cm4gbnVs
bCA9PSBkdXJhdGlvbiAmJiAoZHVyYXRpb24gPSAwKSwgbW9kRHVyYXRpb24gPSBmdW5jdGlvbihk
dXJhdGlvbikgew0KICAgICAgICAgICAgcmV0dXJuIDEwMCA+IGR1cmF0aW9uID8gMWUzICogZHVy
YXRpb24gOiBkdXJhdGlvbg0KICAgICAgICB9LCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KICAg
ICAgICAgICAgcmV0dXJuIE1NSlMuaW50ZXJzdGl0aWFsLmNsb3NlKCkNCiAgICAgICAgfSwgbW9k
RHVyYXRpb24oZHVyYXRpb24pKQ0KICAgIH0sIE1NSlMub3BlbkV4dGVybmFsID0gZnVuY3Rpb24o
dXJsKSB7DQogICAgICAgIHJldHVybiB0aGlzLnV0aWxzLmlzQnJpZGdlRW5hYmxlZCgpID8gTU1E
ZXZpY2Uub3BlblVybCh1cmwpIDogd2luZG93LmxvY2F0aW9uID0gdGhpcy51dGlscy5pc0lPUygp
ID8gIm1tYnJvd3Nlcjo6Ly8iICsgdXJsIDogIm1tYnJvd3NlcjovLyIgKyB1cmwNCiAgICB9LCBN
TUpTLnJlbW92ZUV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudCkgew0KICAgICAgICByZXR1
cm4gZGVsZXRlIHRoaXMubGlzdGVuZXJzW2V2ZW50XQ0KICAgIH0sIE1NSlMuYWRkRXZlbnRMaXN0
ZW5lciA9IGZ1bmN0aW9uKGV2ZW50LCBsaXN0ZW5lcikgew0KICAgICAgICByZXR1cm4gdGhpcy5s
aXN0ZW5lcnNbZXZlbnRdID0gbGlzdGVuZXINCiAgICB9LCBNTUpTLmVucXVldWVDb21tYW5kID0g
ZnVuY3Rpb24oY29tbWFuZCkgew0KICAgICAgICByZXR1cm4gdGhpcy5jb21tYW5kUXVldWUucHVz
aChjb21tYW5kKSwgdGhpcy51dGlscy5jb25zb2xlTG9nKCJjb21tYW5kUXVldWUgIiArIE1NSlMu
Y29tbWFuZFF1ZXVlKQ0KICAgIH0sIE1NSlMuY2FsbGJhY2sgPSBmdW5jdGlvbihyZXNwb25zZSkg
ew0KICAgICAgICB2YXIga2xhc3MsIGtsYXNzRnVuY3Rpb24sIG1ldGhvZCwgcmVzcG9uc2VfZGF0
YSwgcmVzdWx0Ow0KICAgICAgICByZXR1cm4gcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0LCBtZXRo
b2QgPSByZXNwb25zZS5jYWxsLCByZXNwb25zZV9kYXRhID0gcmVzcG9uc2UucmVzcG9uc2UsIGts
YXNzID0gcmVzcG9uc2VbImNsYXNzIl0sIGtsYXNzRnVuY3Rpb24gPSB3aW5kb3dba2xhc3NdLCB0
eXBlb2Yga2xhc3NGdW5jdGlvbiA9PT0gdGhpcy5UWVBFX0ZVTkNUSU9OID8ga2xhc3NGdW5jdGlv
bihtZXRob2QsIHJlc3BvbnNlX2RhdGEsIHJlc3VsdCkgOiB2b2lkIDANCiAgICB9LCBNTUpTDQp9
KCksIE1NU0RLSW50ZXJmYWNlID0gZnVuY3Rpb24oKSB7DQogICAgZnVuY3Rpb24gTU1TREtJbnRl
cmZhY2UoKSB7DQogICAgICAgIHRoaXMuc3RhdGUgPSAibG9hZGluZyIsIHRoaXMuaXNSZWFkeSA9
ICExLCB0aGlzLmFkUHJvcGVydGllcyA9IHZvaWQgMCwgdGhpcy52aWV3YWJsZSA9ICExLCB0aGlz
LnBsYWNlbWVudFR5cGUgPSAidW5rbm93biIsIHRoaXMuYWRTaXplID0ge30sIHRoaXMuZGVmYXVs
dFBvc2l0aW9uID0gdm9pZCAwLCB0aGlzLnV0aWxzID0gTU1KUy51dGlscywgdGhpcy5zcGVlY2hS
ZXN1bHRzID0gbnVsbCwgdGhpcy5zcGVlY2hTdGF0dXMgPSAidW5rbm93biIsIHRoaXMuc3BlZWNo
QXVkaW9MZXZlbCA9IDAsIHRoaXMuc3BlZWNoQmFja2dyb3VuZEF1ZGlvTGV2ZWwgPSAwLCB0aGlz
LmF1ZGlvUG9zaXRpb24gPSAwLCB0aGlzLm1pY3JvcGhvbmVTdGF0ZSA9ICJyZWFkeSIsIHRoaXMu
bWljcm9waG9uZUF1ZGlvTGV2ZWwgPSAwDQogICAgfQ0KICAgIHJldHVybiBNTVNES0ludGVyZmFj
ZS5wcm90b3R5cGUuc2V0QWRTaXplID0gZnVuY3Rpb24oX3Byb3BlcnRpZXMpIHsNCiAgICAgICAg
cmV0dXJuIHRoaXMudXRpbHMuY29uc29sZUxvZygibW0uY29mZmVlIE1NU0RLSW50ZXJmYWNlIHNl
dEFkU2l6ZSBfcHJvcGVydGllcz0iICsgSlNPTi5zdHJpbmdpZnkoX3Byb3BlcnRpZXMpKSwgdGhp
cy51dGlscy5jb25zb2xlTG9nKCJtbS5jb2ZmZWUgTU1TREtJbnRlcmZhY2Ugc2V0QWRTaXplIGdl
dFN0YXRlPSIgKyB0aGlzLnN0YXRlKSwgdGhpcy5hZFNpemUgPyB0aGlzLmFkU2l6ZS5oZWlnaHQg
IT09IF9wcm9wZXJ0aWVzLmhlaWdodCB8fCB0aGlzLmFkU2l6ZS53aWR0aCAhPT0gX3Byb3BlcnRp
ZXMud2lkdGggPyAodGhpcy5hZFNpemUgPSBfcHJvcGVydGllcywgTU1KUy5saXN0ZW5lck1hbmFn
ZXIuZmlyZUV2ZW50Q2FsbGJhY2tzKCJzaXplQ2hhbmdlIiwgX3Byb3BlcnRpZXMud2lkdGgsIF9w
cm9wZXJ0aWVzLmhlaWdodCkpIDogdm9pZCAwIDogdGhpcy5hZFNpemUgPSBfcHJvcGVydGllcw0K
ICAgIH0sIE1NU0RLSW50ZXJmYWNlLnByb3RvdHlwZS5zZXRBZFByb3BlcnRpZXMgPSBmdW5jdGlv
bihfYWRQcm9wZXJ0aWVzKSB7DQogICAgICAgIHJldHVybiB0aGlzLnV0aWxzLmNvbnNvbGVMb2co
InNldEFkUHJvcGVydGllczogIiArIEpTT04uc3RyaW5naWZ5KF9hZFByb3BlcnRpZXMpKSwgdGhp
cy5hZFByb3BlcnRpZXMgPSBfYWRQcm9wZXJ0aWVzLCBudWxsICE9IHRoaXMuYWRQcm9wZXJ0aWVz
ICYmIChudWxsICE9IHRoaXMuYWRQcm9wZXJ0aWVzLmFkICYmICh0aGlzLmFkU2l6ZSA9IHRoaXMu
YWRQcm9wZXJ0aWVzLmFkLCB0aGlzLmRlZmF1bHRQb3NpdGlvbiA9IEpTT04ucGFyc2UoSlNPTi5z
dHJpbmdpZnkodGhpcy5hZFByb3BlcnRpZXMuYWQpKSksIG51bGwgIT0gdGhpcy5hZFByb3BlcnRp
ZXMuZGV2aWNlICYmIE1NSlMuZGV2aWNlLnNldEluZm8odGhpcy5hZFByb3BlcnRpZXMuZGV2aWNl
KSwgbnVsbCAhPSB0aGlzLmFkUHJvcGVydGllcy5zdXBwb3J0cykgPyB0aGlzLnN1cHBvcnRQcm9w
ZXJ0aWVzID0gdGhpcy5hZFByb3BlcnRpZXMuc3VwcG9ydHMgOiB2b2lkIDANCiAgICB9LCBNTVNE
S0ludGVyZmFjZS5wcm90b3R5cGUuc2V0UGxhY2VtZW50VHlwZSA9IGZ1bmN0aW9uKHBsYWNlbWVu
dFR5cGUpIHsNCiAgICAgICAgdGhpcy5wbGFjZW1lbnRUeXBlID0gcGxhY2VtZW50VHlwZQ0KICAg
IH0sIE1NU0RLSW50ZXJmYWNlLnByb3RvdHlwZS5zZXRTdGF0ZSA9IGZ1bmN0aW9uKF9zdGF0ZSkg
ew0KICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSAhPT0gX3N0YXRlID8gKHRoaXMudXRpbHMuY29u
c29sZUxvZygnTVJBSUQgc3RhdGUgY2hhbmdlIGZyb20gIicgKyB0aGlzLnN0YXRlICsgJyIgdG8g
IicgKyBfc3RhdGUgKyAnIicpLCB0aGlzLnN0YXRlID0gX3N0YXRlLCBNTUpTLmxpc3RlbmVyTWFu
YWdlci5maXJlRXZlbnRDYWxsYmFja3MoInN0YXRlQ2hhbmdlIiwgX3N0YXRlKSkgOiB2b2lkIDAN
CiAgICB9LCBNTVNES0ludGVyZmFjZS5wcm90b3R5cGUuc2V0Vmlld2FibGUgPSBmdW5jdGlvbihf
dmlzaWJsZSkgew0KICAgICAgICByZXR1cm4gdGhpcy52aWV3YWJsZSAhPT0gX3Zpc2libGUgPyAo
dGhpcy51dGlscy5jb25zb2xlTG9nKCJNUkFJRCB2aWV3YWJsZSBjaGFuZ2U6IHZpc2libGUgPSAi
ICsgX3Zpc2libGUpLCB0aGlzLnZpZXdhYmxlID0gX3Zpc2libGUsIE1NSlMubGlzdGVuZXJNYW5h
Z2VyLmZpcmVFdmVudENhbGxiYWNrcygidmlld2FibGVDaGFuZ2UiLCBfdmlzaWJsZSkpIDogdm9p
ZCAwDQogICAgfSwgTU1TREtJbnRlcmZhY2UucHJvdG90eXBlLnJlYWR5ID0gZnVuY3Rpb24oKSB7
DQogICAgICAgIHJldHVybiAibG9hZGluZyIgIT09IHRoaXMuc3RhdGUgJiYgdGhpcy5pc1JlYWR5
ID09PSAhMSA/ICh0aGlzLnV0aWxzLmNvbnNvbGVMb2coIk1SQUlEIHJlYWR5LiIpLCB0aGlzLnV0
aWxzLnBvc3RFdmVudCgic2RrcmVhZHkiKSwgdGhpcy5pc1JlYWR5ID0gITAsIE1NSlMubGlzdGVu
ZXJNYW5hZ2VyLmZpcmVFdmVudENhbGxiYWNrcygicmVhZHkiKSkgOiB2b2lkIDANCiAgICB9LCBN
TVNES0ludGVyZmFjZS5wcm90b3R5cGUuZXJyb3IgPSBmdW5jdGlvbihtZXNzYWdlLCBhY3Rpb24p
IHsNCiAgICAgICAgcmV0dXJuIE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENhbGxiYWNr
cygiZXJyb3IiLCBtZXNzYWdlLCBhY3Rpb24pDQogICAgfSwgTU1TREtJbnRlcmZhY2UucHJvdG90
eXBlLnZvaWNlU3RhdGVDaGFuZ2UgPSBmdW5jdGlvbihfc3RhdHVzKSB7DQogICAgICAgIHJldHVy
biB0aGlzLnNwZWVjaFN0YXR1cyA9IF9zdGF0dXMsIE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVF
dmVudENhbGxiYWNrcygidm9pY2VTdGF0ZUNoYW5nZSIsIF9zdGF0dXMpDQogICAgfSwgTU1TREtJ
bnRlcmZhY2UucHJvdG90eXBlLmF1ZGlvTGV2ZWxDaGFuZ2UgPSBmdW5jdGlvbihfYXVkaW9MZXZl
bCkgew0KICAgICAgICByZXR1cm4gdGhpcy5zcGVlY2hBdWRpb0xldmVsID0gX2F1ZGlvTGV2ZWws
IE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENhbGxiYWNrcygiYXVkaW9MZXZlbENoYW5n
ZSIsIF9hdWRpb0xldmVsKQ0KICAgIH0sIE1NU0RLSW50ZXJmYWNlLnByb3RvdHlwZS5yZWNvZ25p
dGlvblJlc3VsdCA9IGZ1bmN0aW9uKF9yZXN1bHRzKSB7DQogICAgICAgIHJldHVybiB0aGlzLnNw
ZWVjaFJlc3VsdHMgPSBfcmVzdWx0cywgTU1KUy5saXN0ZW5lck1hbmFnZXIuZmlyZUV2ZW50Q2Fs
bGJhY2tzKCJyZWNvZ25pdGlvblJlc3VsdCIsIF9yZXN1bHRzKQ0KICAgIH0sIE1NU0RLSW50ZXJm
YWNlLnByb3RvdHlwZS52b2ljZUVycm9yID0gZnVuY3Rpb24oX2Vycm9yKSB7DQogICAgICAgIHJl
dHVybiBNTUpTLmxpc3RlbmVyTWFuYWdlci5maXJlRXZlbnRDYWxsYmFja3MoInZvaWNlRXJyb3Ii
LCBfZXJyb3IpDQogICAgfSwgTU1TREtJbnRlcmZhY2UucHJvdG90eXBlLmJhY2tncm91bmRBdWRp
b0xldmVsID0gZnVuY3Rpb24oX2JhY2tncm91bmRBdWRpb0xldmVsKSB7DQogICAgICAgIHJldHVy
biB0aGlzLnNwZWVjaEJhY2tncm91bmRBdWRpb0xldmVsID0gX2JhY2tncm91bmRBdWRpb0xldmVs
LCBNTUpTLmxpc3RlbmVyTWFuYWdlci5maXJlRXZlbnRDYWxsYmFja3MoImJhY2tncm91bmRBdWRp
b0xldmVsIiwgX2JhY2tncm91bmRBdWRpb0xldmVsKQ0KICAgIH0sIE1NU0RLSW50ZXJmYWNlLnBy
b3RvdHlwZS5hdWRpb0NhY2hlZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICByZXR1cm4gTU1KUy5s
aXN0ZW5lck1hbmFnZXIuZmlyZUV2ZW50Q2FsbGJhY2tzKCJhdWRpb0NhY2hlZCIpDQogICAgfSwg
TU1TREtJbnRlcmZhY2UucHJvdG90eXBlLmF1ZGlvU3RhcnRlZCA9IGZ1bmN0aW9uKCkgew0KICAg
ICAgICByZXR1cm4gTU1KUy5saXN0ZW5lck1hbmFnZXIuZmlyZUV2ZW50Q2FsbGJhY2tzKCJhdWRp
b1N0YXJ0ZWQiKQ0KICAgIH0sIE1NU0RLSW50ZXJmYWNlLnByb3RvdHlwZS5hdWRpb1Bvc2l0aW9u
Q2hhbmdlID0gZnVuY3Rpb24oX3Bvc2l0aW9uKSB7DQogICAgICAgIHJldHVybiB0aGlzLmF1ZGlv
UG9zaXRpb24gPSBfcG9zaXRpb24sIE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENhbGxi
YWNrcygiYXVkaW9Qb3NpdGlvbkNoYW5nZSIsIF9wb3NpdGlvbikNCiAgICB9LCBNTVNES0ludGVy
ZmFjZS5wcm90b3R5cGUuYXVkaW9Db21wbGV0ZWQgPSBmdW5jdGlvbigpIHsNCiAgICAgICAgcmV0
dXJuIE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENhbGxiYWNrcygiYXVkaW9Db21wbGV0
ZWQiKQ0KICAgIH0sIE1NU0RLSW50ZXJmYWNlLnByb3RvdHlwZS5jdXN0b21Wb2ljZVdvcmRzQWRk
ZWQgPSBmdW5jdGlvbigpIHsNCiAgICAgICAgcmV0dXJuIE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZp
cmVFdmVudENhbGxiYWNrcygiY3VzdG9tVm9pY2VXb3Jkc0FkZGVkIikNCiAgICB9LCBNTVNES0lu
dGVyZmFjZS5wcm90b3R5cGUuY3VzdG9tVm9pY2VXb3Jkc0RlbGV0ZWQgPSBmdW5jdGlvbigpIHsN
CiAgICAgICAgcmV0dXJuIE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENhbGxiYWNrcygi
Y3VzdG9tVm9pY2VXb3Jkc0RlbGV0ZWQiKQ0KICAgIH0sIE1NU0RLSW50ZXJmYWNlLnByb3RvdHlw
ZS5taWNyb3Bob25lU3RhdGVDaGFuZ2UgPSBmdW5jdGlvbihfbXBTdGF0ZSkgew0KICAgICAgICBy
ZXR1cm4gdGhpcy5taWNyb3Bob25lU3RhdGUgPSBfbXBTdGF0ZSwgTU1KUy5saXN0ZW5lck1hbmFn
ZXIuZmlyZUV2ZW50Q2FsbGJhY2tzKCJtaWNyb3Bob25lU3RhdGVDaGFuZ2UiLCBfbXBTdGF0ZSkN
CiAgICB9LCBNTVNES0ludGVyZmFjZS5wcm90b3R5cGUubWljcm9waG9uZUF1ZGlvTGV2ZWxDaGFu
Z2UgPSBmdW5jdGlvbihfbXBhdWRpb0xldmVsKSB7DQogICAgICAgIHJldHVybiB0aGlzLm1pY3Jv
cGhvbmVBdWRpb0xldmVsID0gX21wYXVkaW9MZXZlbCwgTU1KUy5saXN0ZW5lck1hbmFnZXIuZmly
ZUV2ZW50Q2FsbGJhY2tzKCJtaWNyb3Bob25lQXVkaW9MZXZlbENoYW5nZSIsIF9tcGF1ZGlvTGV2
ZWwpDQogICAgfSwgTU1TREtJbnRlcmZhY2UNCn0oKSwgTU1MaXN0ZW5lck1hbmFnZXIgPSBmdW5j
dGlvbigpIHsNCiAgICBmdW5jdGlvbiBNTUxpc3RlbmVyTWFuYWdlcigpIHsNCiAgICAgICAgdGhp
cy5saXN0ZW5lcnMgPSB7fSwgdGhpcy51dGlscyA9IE1NSlMudXRpbHMNCiAgICB9DQogICAgcmV0
dXJuIE1NTGlzdGVuZXJNYW5hZ2VyLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyID0gZnVu
Y3Rpb24oZXZlbnQsIGxpc3RlbmVyKSB7DQogICAgICAgIHZhciBpbmRleDsNCiAgICAgICAgcmV0
dXJuIG51bGwgIT0gdGhpcy5saXN0ZW5lcnNbZXZlbnRdID8gbnVsbCAhPSBsaXN0ZW5lciA/IChp
bmRleCA9IHRoaXMubGlzdGVuZXJzW2V2ZW50XS5pbmRleE9mKGxpc3RlbmVyKSwgMCA+IGluZGV4
ID8gKHRoaXMudXRpbHMuY29uc29sZUxvZygiTGlzdG5lciBub3QgZm91bmQhIiksICExKSA6ICh0
aGlzLnV0aWxzLmNvbnNvbGVMb2coIiciICsgZXZlbnQgKyAiJyBmb3VuZCBsaXN0ZW5lcjogIiAr
IGxpc3RlbmVyKSwgdGhpcy5saXN0ZW5lcnNbZXZlbnRdLnNwbGljZShpbmRleCwgMSksIHRoaXMu
dXRpbHMuY29uc29sZUxvZygiJyIgKyBldmVudCArICInIGxpc3RlbmVyczogIiArIHRoaXMubGlz
dGVuZXJzW2V2ZW50XSkpKSA6IGRlbGV0ZSB0aGlzLmxpc3RlbmVyc1tldmVudF0gOiB2b2lkIDAN
CiAgICB9LCBNTUxpc3RlbmVyTWFuYWdlci5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1
bmN0aW9uKGV2ZW50LCBsaXN0ZW5lcikgew0KICAgICAgICByZXR1cm4gbnVsbCA9PSB0aGlzLmxp
c3RlbmVyc1tldmVudF0gJiYgKHRoaXMubGlzdGVuZXJzW2V2ZW50XSA9IFtdKSwgdGhpcy51dGls
cy5jb25zb2xlTG9nKCInIiArIGV2ZW50ICsgIicgYWRkZWQgbGlzdGVuZXI6ICIgKyBsaXN0ZW5l
ciksIHRoaXMubGlzdGVuZXJzW2V2ZW50XS5wdXNoKGxpc3RlbmVyKSwgdGhpcy51dGlscy5jb25z
b2xlTG9nKCInIiArIGV2ZW50ICsgIicgbGlzdGVuZXJzOiAiICsgdGhpcy5saXN0ZW5lcnNbZXZl
bnRdKQ0KICAgIH0sIE1NTGlzdGVuZXJNYW5hZ2VyLnByb3RvdHlwZS5maXJlRXZlbnRDYWxsYmFj
a3MgPSBmdW5jdGlvbihldmVudE5hbWUsIHBhcmFtZXRlciwgYWN0aW9uKSB7DQogICAgICAgIHZh
ciBjYWxsYmFjaywgX2ksIF9sZW4sIF9yZWY7DQogICAgICAgIGlmICh0aGlzLnV0aWxzLmNvbnNv
bGVMb2coImV2ZW50IGNhbGxiYWNrOiAiICsgZXZlbnROYW1lKSwgbnVsbCAhPSB0aGlzLmxpc3Rl
bmVyc1tldmVudE5hbWVdKQ0KICAgICAgICAgICAgZm9yIChfcmVmID0gdGhpcy5saXN0ZW5lcnNb
ZXZlbnROYW1lXSwgX2kgPSAwLCBfbGVuID0gX3JlZi5sZW5ndGg7IF9sZW4gPiBfaTsgX2krKykg
Y2FsbGJhY2sgPSBfcmVmW19pXSwgbnVsbCAhPSBwYXJhbWV0ZXIgPyBudWxsICE9IGFjdGlvbiA/
IGNhbGxiYWNrKHBhcmFtZXRlciwgYWN0aW9uKSA6IGNhbGxiYWNrKHBhcmFtZXRlcikgOiBjYWxs
YmFjaygpDQogICAgfSwgTU1MaXN0ZW5lck1hbmFnZXINCn0oKSwgTU1Db21tYW5kID0gZnVuY3Rp
b24oKSB7DQogICAgZnVuY3Rpb24gTU1Db21tYW5kKGNvbW1hbmQsIHBhcmFtcykgew0KICAgICAg
ICB2YXIgZnVuYywgZnVuY3Rpb25OYW1lLCBuYW1lLCBxdWVyeV9hcmdzLCB0aW1lc3RhbXAsIHVy
bDsNCiAgICAgICAgaWYgKHRoaXMudXRpbHMgPSBNTUpTLnV0aWxzLCB0aGlzLnBsYXRmb3JtID0g
dGhpcy51dGlscy5nZXRQbGF0Zm9ybSgpLCB0aGlzLmNvbW1hbmQgPSBjb21tYW5kLCB1cmwgPSAi
bW1zZGs6Ly8iICsgY29tbWFuZCArICIvIiwgbnVsbCAhPSBwYXJhbXMpIHsNCiAgICAgICAgICAg
IHF1ZXJ5X2FyZ3MgPSBbXSwgdGltZXN0YW1wID0gKG5ldyBEYXRlKS5nZXRUaW1lKCksIGZ1bmMg
PSBwYXJhbXMuY2FsbGJhY2ssIGZ1bmN0aW9uTmFtZSA9IHRoaXMuY29tbWFuZC5yZXBsYWNlKCIu
IiwgIl8iKSArICJfIiArIHRpbWVzdGFtcCwgTU1KUy51dGlscy5jb25zb2xlTG9nKCJjb21tYW5k
OiAiICsgY29tbWFuZCArICJDYWxsYmFjayBmdW5jdGlvbjogIiArIGZ1bmMpLCBNTUpTLnV0aWxz
LmNvbnNvbGVMb2coImNvbW1hbmQ6ICIgKyBjb21tYW5kICsgIiBwYXJhbXMgIiArIEpTT04uc3Ry
aW5naWZ5KHBhcmFtcykpLCBNTUpTLnV0aWxzLmNvbnNvbGVMb2coIkNhbGxiYWNrIGZ1bmN0aW9u
OiAiICsgdHlwZW9mIGZ1bmMpLCB0eXBlb2YgZnVuYyA9PT0gTU1KUy5UWVBFX1NUUklORyA/IHdp
bmRvdy5NTUpTLmNhbGxiYWNrc1tmdW5jdGlvbk5hbWVdID0gZnVuY3Rpb24ocmVzcG9uc2UpIHsN
CiAgICAgICAgICAgICAgICB2YXIgYUZ1bmMsIGNvbnRleHQsIGksIG5hbWVzcGFjZXM7DQogICAg
ICAgICAgICAgICAgZm9yIChNTUpTLnV0aWxzLmNvbnNvbGVMb2coImV4ZWN1dGluZyBzdHJpbmcg
ZnVuY3Rpb24gY2FsbGJhY2s6ICIgKyBmdW5jdGlvbk5hbWUpLCBudWxsICE9IHJlc3BvbnNlICYm
IChyZXNwb25zZS5kYXRhID0gcmVzcG9uc2UucmVzcG9uc2UpLCBuYW1lc3BhY2VzID0gZnVuYy5z
cGxpdCgiLiIpLCBhRnVuYyA9IG5hbWVzcGFjZXMucG9wKCksIGkgPSAwLCBjb250ZXh0ID0gd2lu
ZG93OyBpIDwgbmFtZXNwYWNlcy5sZW5ndGg7KSBNTUpTLnV0aWxzLmNvbnNvbGVMb2coIm5hbWVz
cGFjZTogIiArIG5hbWVzcGFjZXNbaV0pLCBjb250ZXh0ID0gY29udGV4dFtuYW1lc3BhY2VzW2ld
XSwgaSsrOw0KICAgICAgICAgICAgICAgIHJldHVybiBNTUpTLnV0aWxzLmNvbnNvbGVMb2coImFG
dW5jOiAiICsgYUZ1bmMpLCBNTUpTLnV0aWxzLmNvbnNvbGVMb2coImNvbnRleHQ6ICIgKyBjb250
ZXh0KSwgY29udGV4dFthRnVuY10ocmVzcG9uc2UpLCBNTUpTLnNldEV4ZWN1dGluZ0NvbW1hbmQo
ITEpDQogICAgICAgICAgICB9IDogdHlwZW9mIGZ1bmMgPT09IE1NSlMuVFlQRV9GVU5DVElPTiA/
IHdpbmRvdy5NTUpTLmNhbGxiYWNrc1tmdW5jdGlvbk5hbWVdID0gZnVuY3Rpb24ocmVzcG9uc2Up
IHsNCiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbCAhPSByZXNwb25zZSAmJiAocmVzcG9uc2Uu
ZGF0YSA9IHJlc3BvbnNlLnJlc3BvbnNlLCByZXNwb25zZS5yZXN1bHQgPSBwYXJzZUludChyZXNw
b25zZS5yZXN1bHQpKSwgZnVuYyhyZXNwb25zZSksIE1NSlMuc2V0RXhlY3V0aW5nQ29tbWFuZCgh
MSkNCiAgICAgICAgICAgIH0gOiB0eXBlb2YgZnVuYyA9PT0gTU1KUy5UWVBFX1VOREVGSU5FRCAm
JiAod2luZG93Lk1NSlMuY2FsbGJhY2tzW2Z1bmN0aW9uTmFtZV0gPSBmdW5jdGlvbigpIHsNCiAg
ICAgICAgICAgICAgICByZXR1cm4gTU1KUy51dGlscy5jb25zb2xlTG9nKCJleGVjdXRpbmcgdW5k
ZWZpbmVkIGNhbGxiYWNrOiAiICsgZnVuY3Rpb25OYW1lKSwgTU1KUy51dGlscy5jb25zb2xlTG9n
KCJubyBjYWxsYmFjayB3YXMgc3BlY2lmaWVkIiksIE1NSlMuc2V0RXhlY3V0aW5nQ29tbWFuZCgh
MSkNCiAgICAgICAgICAgIH0pLCBwYXJhbXMuY2FsbGJhY2sgPSAiTU1KUy5jYWxsYmFja3MuIiAr
IGZ1bmN0aW9uTmFtZSwgdGhpcy5jYWxsYmFjayA9IHBhcmFtcy5jYWxsYmFjazsNCiAgICAgICAg
ICAgIGZvciAobmFtZSBpbiBwYXJhbXMpIHR5cGVvZiBuYW1lID09PSBNTUpTLlRZUEVfU1RSSU5H
ICYmIHZvaWQgMCAhPT0gcGFyYW1zW25hbWVdICYmIG51bGwgIT09IHBhcmFtc1tuYW1lXSAmJiBx
dWVyeV9hcmdzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgIj0iICsgZW5jb2RlVVJJ
Q29tcG9uZW50KHBhcmFtc1tuYW1lXSkpOw0KICAgICAgICAgICAgcXVlcnlfYXJncy5sZW5ndGgg
PiAwICYmICh1cmwgKz0gIj8iICsgcXVlcnlfYXJncy5qb2luKCImIikpDQogICAgICAgIH0NCiAg
ICAgICAgTU1KUy51dGlscy5jb25zb2xlTG9nKHVybCksIHRoaXMudXJsID0gdXJsDQogICAgfQ0K
ICAgIHJldHVybiBNTUNvbW1hbmQudXJsID0gbnVsbCwgTU1Db21tYW5kLnBsYXRmb3JtID0gbnVs
bCwgTU1Db21tYW5kLmNvbW1hbmQgPSBudWxsLCBNTUNvbW1hbmQuY2FsbGJhY2sgPSBudWxsLCBN
TUNvbW1hbmQucHJvdG90eXBlLnBlcmZvcm0gPSBmdW5jdGlvbigpIHsNCiAgICAgICAgdmFyIGlm
cmFtZTsNCiAgICAgICAgcmV0dXJuIHRoaXMudXRpbHMuY29uc29sZUxvZygicGVyZm9ybSBwbGF0
Zm9ybTogICIgKyB0aGlzLnBsYXRmb3JtKSwgdGhpcy51dGlscy5jb25zb2xlTG9nKCJjdXJyZW50
IHdpbmRvdy5sb2NhdGlvbjogICIgKyB3aW5kb3cubG9jYXRpb24pLCBNTUpTLmV4ZWN1dGluZ0Nv
bW1hbmQgPSAhMCwgdGhpcy51dGlscy5jb25zb2xlTG9nKCJ3aW5kb3cubG9jYXRpb246ICAiICsg
dGhpcy51cmwpLCB0aGlzLnV0aWxzLmNvbnNvbGVMb2coIlNldHRpbmcgZXhlY3V0aW5nQ29tbWFu
ZCA9IHRydWU6ICAiKSwgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSUZSQU1FIiks
IGlmcmFtZS5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMudXJsKSwgZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LmFwcGVuZENoaWxkKGlmcmFtZSksIGlmcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KGlmcmFtZSksIGlmcmFtZSA9IG51bGwNCiAgICB9LCBNTUNvbW1hbmQNCn0oKSwgTU1CcmlkZ2VP
YmplY3QgPSBmdW5jdGlvbigpIHsNCiAgICBmdW5jdGlvbiBNTUJyaWRnZU9iamVjdCgpIHsNCiAg
ICAgICAgdmFyIG07DQogICAgICAgIHRoaXMudXRpbHMgPSBNTUpTLnV0aWxzLCBtID0gdGhpcy5j
b25zdHJ1Y3Rvci50b1N0cmluZygpLm1hdGNoKC9eXHMqZnVuY3Rpb25ccysoW15cc1woXSspLyks
IG0gJiYgKHRoaXMuY2xhc3NOYW1lID0gbVsxXSkNCiAgICB9DQogICAgcmV0dXJuIE1NQnJpZGdl
T2JqZWN0LmNsYXNzTmFtZSA9IG51bGwsIE1NQnJpZGdlT2JqZWN0LnByb3RvdHlwZS5lbnF1ZXVl
ID0gZnVuY3Rpb24obWV0aG9kLCBwYXJhbXMpIHsNCiAgICAgICAgcmV0dXJuIE1NSlMuZW5xdWV1
ZUNvbW1hbmQobmV3IE1NQ29tbWFuZCh0aGlzLmNsYXNzTmFtZSArICIuIiArIG1ldGhvZCwgcGFy
YW1zKSksICEwDQogICAgfSwgTU1CcmlkZ2VPYmplY3QNCn0oKSwgTU1EZXZpY2UgPSBmdW5jdGlv
bihfc3VwZXIpIHsNCiAgICBmdW5jdGlvbiBNTURldmljZSgpIHsNCiAgICAgICAgcmV0dXJuIF9y
ZWYgPSBNTURldmljZS5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcywgYXJndW1lbnRz
KQ0KICAgIH0NCiAgICByZXR1cm4gX19leHRlbmRzKE1NRGV2aWNlLCBfc3VwZXIpLCBNTURldmlj
ZS5sb2FkU3RhdGUgPSAic3RhbmRieSIsIE1NRGV2aWNlLmxvYWRUaW1lb3V0ID0gMCwgTU1EZXZp
Y2UuY29ubmVjdGlvbiA9IG51bGwsIE1NRGV2aWNlLnByb3RvdHlwZS5zZXROZXR3b3JrQ29ubmVj
dGlvbiA9IGZ1bmN0aW9uKG5ldHdvcmspIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlv
biA9IG5ldHdvcmsNCiAgICB9LCBNTURldmljZS5wcm90b3R5cGUuc2V0SW5mbyA9IGZ1bmN0aW9u
KGluZm8pIHsNCiAgICAgICAgdmFyIGV2dCwga2V5LCB2YWx1ZTsNCiAgICAgICAgZm9yIChrZXkg
aW4gaW5mbykgdmFsdWUgPSBpbmZvW2tleV0sIHRoaXNba2V5XSA9IHZhbHVlOw0KICAgICAgICBy
ZXR1cm4gTU1EZXZpY2UubG9hZFN0YXRlID0gImxvYWRlZCIsIHRoaXMudXRpbHMuaXNXaW5kb3dz
KCkgfHwgKGV2dCA9ICJkZXZpY2VMb2FkZWQiLCB0aGlzLnV0aWxzLnBvc3RFdmVudChldnQpLCBl
dnQgPSAiZGV2aWNlbG9hZGVkIiwgdGhpcy51dGlscy5wb3N0RXZlbnQoZXZ0KSksICEwDQogICAg
fSwgTU1EZXZpY2UucHJvdG90eXBlLmdldEluZm8gPSBmdW5jdGlvbihjYWxsYmFjaykgew0KICAg
ICAgICByZXR1cm4gTU1EZXZpY2UubG9hZFN0YXRlID0gImxvYWRpbmciLCB0aGlzLmVucXVldWUo
ImdldEluZm8iLCB7DQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAgICAg
ICAgICB9KQ0KICAgIH0sIE1NRGV2aWNlLnByb3RvdHlwZS5zZXRNTURJRCA9IGZ1bmN0aW9uKG1t
ZGlkLCBjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJzZXRNTURJRCIs
IHsNCiAgICAgICAgICAgICAgICBtbWRpZDogbW1kaWQsDQogICAgICAgICAgICAgICAgY2FsbGJh
Y2s6IGNhbGxiYWNrDQogICAgICAgICAgICB9KQ0KICAgIH0sIE1NRGV2aWNlLnByb3RvdHlwZS5n
ZXRBdmFpbGFibGVTY2hlbWVzID0gZnVuY3Rpb24oY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJu
IHRoaXMuZW5xdWV1ZSgiZ2V0QXZhaWxhYmxlU2NoZW1lcyIsIHsNCiAgICAgICAgICAgICAgICBj
YWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1EZXZpY2UucHJvdG90
eXBlLmlzU2NoZW1lQXZhaWxhYmxlID0gZnVuY3Rpb24oc2NoZW1lLCBjYWxsYmFjaykgew0KICAg
ICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJpc1NjaGVtZUF2YWlsYWJsZSIsIHsNCiAgICAgICAg
ICAgICAgICBzY2hlbWU6IHNjaGVtZSwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJh
Y2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1EZXZpY2UucHJvdG90eXBlLmdldEF2YWlsYWJs
ZVNjaGVtZXMgPSBmdW5jdGlvbihjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1
ZXVlKCJnZXRBdmFpbGFibGVTY2hlbWVzIiwgew0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBj
YWxsYmFjaw0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTURldmljZS5wcm90b3R5cGUuZ2V0T3Jp
ZW50YXRpb24gPSBmdW5jdGlvbihjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1
ZXVlKCJnZXRPcmllbnRhdGlvbiIsIHsNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJh
Y2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1EZXZpY2UucHJvdG90eXBlLmdldExvY2F0aW9u
ID0gZnVuY3Rpb24oY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgiZ2V0
TG9jYXRpb24iLCB7DQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAgICAg
ICAgICB9KQ0KICAgIH0sIE1NRGV2aWNlLnByb3RvdHlwZS5zaG93TWFwID0gZnVuY3Rpb24obG9j
YXRpb24sIGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUoInNob3dNYXAi
LCB7DQogICAgICAgICAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uLA0KICAgICAgICAgICAgICAg
IGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTURldmljZS5wcm90
b3R5cGUuY2FsbCA9IGZ1bmN0aW9uKG51bWJlciwgZGlhbCwgY2FsbGJhY2spIHsNCiAgICAgICAg
cmV0dXJuIHRoaXMuZW5xdWV1ZSgiY2FsbCIsIHsNCiAgICAgICAgICAgICAgICBudW1iZXI6IG51
bWJlciwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2ssDQogICAgICAgICAgICAg
ICAgZGlhbDogZGlhbA0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTURldmljZS5wcm90b3R5cGUu
b3BlblVybCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMu
ZW5xdWV1ZSgib3BlblVybCIsIHsNCiAgICAgICAgICAgICAgICB1cmw6IHVybCwNCiAgICAgICAg
ICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1EZXZp
Y2UucHJvdG90eXBlLm9wZW5BcHBTdG9yZSA9IGZ1bmN0aW9uKGFwcElkLCBjYWxsYmFjaykgew0K
ICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJvcGVuQXBwU3RvcmUiLCB7DQogICAgICAgICAg
ICAgICAgYXBwSWQ6IGFwcElkLA0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0K
ICAgICAgICAgICAgfSkNCiAgICB9LCBNTURldmljZS5wcm90b3R5cGUuY29tcG9zZVNNUyA9IGZ1
bmN0aW9uKG51bWJlciwgbWVzc2FnZSwgY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMu
Y29tcG9zZVNtcyhudW1iZXIsIG1lc3NhZ2UsIGNhbGxiYWNrKQ0KICAgIH0sIE1NRGV2aWNlLnBy
b3RvdHlwZS5jb21wb3NlU21zID0gZnVuY3Rpb24obnVtYmVyLCBtZXNzYWdlLCBjYWxsYmFjaykg
ew0KICAgICAgICByZXR1cm4gdGhpcy51dGlscy5pc0lPUygpID8gdGhpcy5lbnF1ZXVlKCJjb21w
b3NlU21zIiwgew0KICAgICAgICAgICAgICAgIG51bWJlcjogbnVtYmVyLA0KICAgICAgICAgICAg
ICAgIG1lc3NhZ2U6IG1lc3NhZ2UsDQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNr
DQogICAgICAgICAgICB9KSA6IHRoaXMuZW5xdWV1ZSgiY29tcG9zZVNtcyIsIHsNCiAgICAgICAg
ICAgICAgICBudW1iZXI6IG51bWJlciwNCiAgICAgICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdl
LA0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAgICAgfSkNCiAg
ICB9LCBNTURldmljZS5wcm90b3R5cGUuY29tcG9zZUVtYWlsID0gZnVuY3Rpb24ocmVjaXBpZW50
LCBzdWJqZWN0LCBtZXNzYWdlLCBjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy51dGls
cy5pc0lPUygpID8gdGhpcy5vcGVuVXJsKCJtYWlsdG86P3RvPSIgKyBlbmNvZGVVUklDb21wb25l
bnQocmVjaXBpZW50KSArICImc3ViamVjdD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHN1YmplY3Qp
ICsgIiZib2R5PSIgKyBlbmNvZGVVUklDb21wb25lbnQobWVzc2FnZSksIGNhbGxiYWNrKSA6IHRo
aXMuZW5xdWV1ZSgiY29tcG9zZUVtYWlsIiwgew0KICAgICAgICAgICAgICAgIHJlY2lwaWVudDog
cmVjaXBpZW50LA0KICAgICAgICAgICAgICAgIHN1YmplY3Q6IHN1YmplY3QsDQogICAgICAgICAg
ICAgICAgbWVzc2FnZTogbWVzc2FnZSwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJh
Y2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1EZXZpY2UucHJvdG90eXBlLmdldENvbXBhc3NI
ZWFkaW5nID0gZnVuY3Rpb24oY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1
ZSgiZ2V0Q29tcGFzc0hlYWRpbmciLCB7DQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxi
YWNrDQogICAgICAgICAgICB9KQ0KICAgIH0sIE1NRGV2aWNlLnByb3RvdHlwZS5nZXRCYXJvbWV0
ZXIgPSBmdW5jdGlvbihjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJn
ZXRCYXJvbWV0ZXIiLCB7DQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAg
ICAgICAgICB9KQ0KICAgIH0sIE1NRGV2aWNlLnByb3RvdHlwZS5lbmFibGVIYXJkd2FyZUFjY2Vs
ZXJhdGlvbiA9IGZ1bmN0aW9uKGVuYWJsZWQsIGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0
aGlzLmVucXVldWUoImVuYWJsZUhhcmR3YXJlQWNjZWxlcmF0aW9uIiwgew0KICAgICAgICAgICAg
ICAgIGVuYWJsZWQ6IGVuYWJsZWQsDQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNr
DQogICAgICAgICAgICB9KQ0KICAgIH0sIE1NRGV2aWNlDQp9KE1NQnJpZGdlT2JqZWN0KSwgTU1N
ZWRpYSA9IGZ1bmN0aW9uKF9zdXBlcikgew0KICAgIGZ1bmN0aW9uIE1NTWVkaWEoKSB7DQogICAg
ICAgIHJldHVybiBfcmVmMSA9IE1NTWVkaWEuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRo
aXMsIGFyZ3VtZW50cykNCiAgICB9DQogICAgcmV0dXJuIF9fZXh0ZW5kcyhNTU1lZGlhLCBfc3Vw
ZXIpLCBNTU1lZGlhLnByb3RvdHlwZS5vcGVuRnJvbnRDYW1lcmEgPSBmdW5jdGlvbihjb25zdHJh
aW5XaWR0aCwgY29uc3RyYWluSGVpZ2h0LCBjb250ZW50TW9kZSwgY2FsbGJhY2spIHsNCiAgICAg
ICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgiZ2V0UGljdHVyZSIsIHsNCiAgICAgICAgICAgICAgICBz
b3VyY2VUeXBlOiAiQ2FtZXJhIiwNCiAgICAgICAgICAgICAgICBjb25zdHJhaW5XaWR0aDogY29u
c3RyYWluV2lkdGgsDQogICAgICAgICAgICAgICAgY29uc3RyYWluSGVpZ2h0OiBjb25zdHJhaW5I
ZWlnaHQsDQogICAgICAgICAgICAgICAgY29udGVudE1vZGU6IGNvbnRlbnRNb2RlLA0KICAgICAg
ICAgICAgICAgIGZyb250OiAhMCwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sN
CiAgICAgICAgICAgIH0pDQogICAgfSwgTU1NZWRpYS5wcm90b3R5cGUub3BlblJlYXJDYW1lcmEg
PSBmdW5jdGlvbihjb25zdHJhaW5XaWR0aCwgY29uc3RyYWluSGVpZ2h0LCBjb250ZW50TW9kZSwg
Y2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgiZ2V0UGljdHVyZSIsIHsN
CiAgICAgICAgICAgICAgICBzb3VyY2VUeXBlOiAiQ2FtZXJhIiwNCiAgICAgICAgICAgICAgICBj
b25zdHJhaW5XaWR0aDogY29uc3RyYWluV2lkdGgsDQogICAgICAgICAgICAgICAgY29uc3RyYWlu
SGVpZ2h0OiBjb25zdHJhaW5IZWlnaHQsDQogICAgICAgICAgICAgICAgY29udGVudE1vZGU6IGNv
bnRlbnRNb2RlLA0KICAgICAgICAgICAgICAgIGZyb250OiAhMSwNCiAgICAgICAgICAgICAgICBj
YWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1NZWRpYS5wcm90b3R5
cGUuZ2V0UGljdHVyZSA9IGZ1bmN0aW9uKHNvdXJjZVR5cGUsIGNvbnN0cmFpbldpZHRoLCBjb25z
dHJhaW5IZWlnaHQsIGNvbnRlbnRNb2RlLCBjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhp
cy5lbnF1ZXVlKCJnZXRQaWN0dXJlIiwgew0KICAgICAgICAgICAgICAgIHNvdXJjZVR5cGU6IHNv
dXJjZVR5cGUsDQogICAgICAgICAgICAgICAgY29uc3RyYWluV2lkdGg6IGNvbnN0cmFpbldpZHRo
LA0KICAgICAgICAgICAgICAgIGNvbnN0cmFpbkhlaWdodDogY29uc3RyYWluSGVpZ2h0LA0KICAg
ICAgICAgICAgICAgIGNvbnRlbnRNb2RlOiBjb250ZW50TW9kZSwNCiAgICAgICAgICAgICAgICBj
YWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1NZWRpYS5wcm90b3R5
cGUud3JpdGVUb1Bob3RvTGlicmFyeSA9IGZ1bmN0aW9uKHBhdGgsIHRpdGxlLCBkZXNjcmlwdGlv
biwgY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgid3JpdGVUb1Bob3Rv
TGlicmFyeSIsIHsNCiAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLA0KICAgICAgICAgICAgICAg
IHRpdGxlOiB0aXRsZSwNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24s
DQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAgICAgICAgICB9KQ0KICAg
IH0sIE1NTWVkaWEucHJvdG90eXBlLmlzU291cmNlVHlwZUF2YWlsYWJsZSA9IGZ1bmN0aW9uKHNv
dXJjZVR5cGUsIGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUoImlzU291
cmNlVHlwZUF2YWlsYWJsZSIsIHsNCiAgICAgICAgICAgICAgICBzb3VyY2VUeXBlOiBzb3VyY2VU
eXBlLA0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAgICAgfSkN
CiAgICB9LCBNTU1lZGlhLnByb3RvdHlwZS5hdmFpbGFibGVTb3VyY2VUeXBlcyA9IGZ1bmN0aW9u
KGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUoImF2YWlsYWJsZVNvdXJj
ZVR5cGVzIiwgew0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAg
ICAgfSkNCiAgICB9LCBNTU1lZGlhLnByb3RvdHlwZS5wbGF5VmlkZW8gPSBmdW5jdGlvbihwYXRo
LCBjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJwbGF5VmlkZW8iLCB7
DQogICAgICAgICAgICAgICAgcGF0aDogcGF0aCwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazog
Y2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1NZWRpYS5wcm90b3R5cGUuZ2V0RGV2
aWNlVm9sdW1lID0gZnVuY3Rpb24oY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZW5x
dWV1ZSgiZ2V0RGV2aWNlVm9sdW1lIiwgew0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxs
YmFjaw0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTU1lZGlhDQp9KE1NQnJpZGdlT2JqZWN0KSwg
TU1DYWxlbmRhciA9IGZ1bmN0aW9uKF9zdXBlcikgew0KICAgIGZ1bmN0aW9uIE1NQ2FsZW5kYXIo
KSB7DQogICAgICAgIHJldHVybiBfcmVmMiA9IE1NQ2FsZW5kYXIuX19zdXBlcl9fLmNvbnN0cnVj
dG9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykNCiAgICB9DQogICAgcmV0dXJuIF9fZXh0ZW5kcyhN
TUNhbGVuZGFyLCBfc3VwZXIpLCBNTUNhbGVuZGFyLnByb3RvdHlwZS5hZGRFdmVudCA9IGZ1bmN0
aW9uKHBhcmFtZXRlcnMsIGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUo
ImFkZEV2ZW50Iiwgew0KICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IEpTT04uc3RyaW5naWZ5
KHBhcmFtZXRlcnMpLA0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAg
ICAgICAgfSkNCiAgICB9LCBNTUNhbGVuZGFyDQp9KE1NQnJpZGdlT2JqZWN0KSwgTU1CYW5uZXIg
PSBmdW5jdGlvbihfc3VwZXIpIHsNCiAgICBmdW5jdGlvbiBNTUJhbm5lcigpIHsNCiAgICAgICAg
cmV0dXJuIF9yZWYzID0gTU1CYW5uZXIuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMs
IGFyZ3VtZW50cykNCiAgICB9DQogICAgcmV0dXJuIF9fZXh0ZW5kcyhNTUJhbm5lciwgX3N1cGVy
KSwgTU1CYW5uZXIucHJvdG90eXBlLnJlc2l6ZSA9IGZ1bmN0aW9uKHBhcmFtZXRlcnMsIGNhbGxi
YWNrKSB7DQogICAgICAgIHJldHVybiBwYXJhbWV0ZXJzLmNhbGxiYWNrID0gY2FsbGJhY2ssIHRo
aXMuZW5xdWV1ZSgicmVzaXplIiwgcGFyYW1ldGVycykNCiAgICB9LCBNTUJhbm5lcg0KfShNTUJy
aWRnZU9iamVjdCksIE1NTm90aWZpY2F0aW9uID0gZnVuY3Rpb24oX3N1cGVyKSB7DQogICAgZnVu
Y3Rpb24gTU1Ob3RpZmljYXRpb24oKSB7DQogICAgICAgIHJldHVybiBfcmVmNCA9IE1NTm90aWZp
Y2F0aW9uLl9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLCBhcmd1bWVudHMpDQogICAg
fQ0KICAgIHJldHVybiBfX2V4dGVuZHMoTU1Ob3RpZmljYXRpb24sIF9zdXBlciksIE1NTm90aWZp
Y2F0aW9uLnByb3RvdHlwZS5hbGVydCA9IGZ1bmN0aW9uKHRpdGxlLCBtZXNzYWdlLCBjYW5jZWxC
dXR0b24sIGJ1dHRvbnMsIGNhbGxiYWNrKSB7DQogICAgICAgIHZhciBwYXJhbXM7DQogICAgICAg
IHJldHVybiBwYXJhbXMgPSB7DQogICAgICAgICAgICB0aXRsZTogdGl0bGUsDQogICAgICAgICAg
ICBtZXNzYWdlOiBtZXNzYWdlLA0KICAgICAgICAgICAgY2FuY2VsQnV0dG9uOiBjYW5jZWxCdXR0
b24sDQogICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgfSwgbnVsbCAhPSBi
dXR0b25zICYmICIiICE9PSBidXR0b25zICYmIG51bGwgIT09IGJ1dHRvbnMgJiYgKHBhcmFtcy5i
dXR0b25zID0gYnV0dG9ucyksIHRoaXMuZW5xdWV1ZSgiYWxlcnQiLCBwYXJhbXMpDQogICAgfSwg
TU1Ob3RpZmljYXRpb24ucHJvdG90eXBlLnZpYnJhdGUgPSBmdW5jdGlvbihkdXJhdGlvbiwgY2Fs
bGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgidmlicmF0ZSIsIHsNCiAgICAg
ICAgICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sDQogICAgICAgICAgICAgICAgY2FsbGJhY2s6
IGNhbGxiYWNrDQogICAgICAgICAgICB9KQ0KICAgIH0sIE1NTm90aWZpY2F0aW9uDQp9KE1NQnJp
ZGdlT2JqZWN0KSwgTU1JbmxpbmVWaWRlbyA9IGZ1bmN0aW9uKF9zdXBlcikgew0KICAgIGZ1bmN0
aW9uIE1NSW5saW5lVmlkZW8oKSB7DQogICAgICAgIHJldHVybiBfcmVmNSA9IE1NSW5saW5lVmlk
ZW8uX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykNCiAgICB9DQog
ICAgcmV0dXJuIF9fZXh0ZW5kcyhNTUlubGluZVZpZGVvLCBfc3VwZXIpLCBNTUlubGluZVZpZGVv
LnByb3RvdHlwZS51cGRhdGVWaWRlb1NlZWtUaW1lID0gZnVuY3Rpb24oY3VycmVudFNlZWtUaW1l
KSB7DQogICAgICAgIHJldHVybiBudWxsICE9IHRoaXMudGltaW5nQ2FsbGJhY2sgPyB0aGlzLnRp
bWluZ0NhbGxiYWNrKGN1cnJlbnRTZWVrVGltZSkgOiB2b2lkIDANCiAgICB9LCBNTUlubGluZVZp
ZGVvLnByb3RvdHlwZS5zZXRUaW1pbmdDYWxsYmFjayA9IGZ1bmN0aW9uKF90aW1pbmdDYWxsYmFj
aykgew0KICAgICAgICByZXR1cm4gdGhpcy50aW1pbmdDYWxsYmFjayA9IF90aW1pbmdDYWxsYmFj
aw0KICAgIH0sIE1NSW5saW5lVmlkZW8ucHJvdG90eXBlLnBsYXlWaWRlbyA9IGZ1bmN0aW9uKGNh
bGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUoInBsYXlWaWRlbyIsIHsNCiAg
ICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwg
TU1JbmxpbmVWaWRlby5wcm90b3R5cGUuc3RvcFZpZGVvID0gZnVuY3Rpb24oY2FsbGJhY2spIHsN
CiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgic3RvcFZpZGVvIiwgew0KICAgICAgICAgICAg
ICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTUlubGluZVZp
ZGVvLnByb3RvdHlwZS5wYXVzZVZpZGVvID0gZnVuY3Rpb24oY2FsbGJhY2spIHsNCiAgICAgICAg
cmV0dXJuIHRoaXMuZW5xdWV1ZSgicGF1c2VWaWRlbyIsIHsNCiAgICAgICAgICAgICAgICBjYWxs
YmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1JbmxpbmVWaWRlby5wcm90
b3R5cGUucmVzdW1lVmlkZW8gPSBmdW5jdGlvbihjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4g
dGhpcy5lbnF1ZXVlKCJyZXN1bWVWaWRlbyIsIHsNCiAgICAgICAgICAgICAgICBjYWxsYmFjazog
Y2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1JbmxpbmVWaWRlby5wcm90b3R5cGUu
cmVtb3ZlVmlkZW8gPSBmdW5jdGlvbihjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5l
bnF1ZXVlKCJyZW1vdmVWaWRlbyIsIHsNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJh
Y2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1JbmxpbmVWaWRlby5wcm90b3R5cGUuc2V0U3Ry
ZWFtVmlkZW9Tb3VyY2UgPSBmdW5jdGlvbihzdHJlYW1WaWRlb1VSSSwgY2FsbGJhY2spIHsNCiAg
ICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgic2V0U3RyZWFtVmlkZW9Tb3VyY2UiLCB7DQogICAg
ICAgICAgICAgICAgc3RyZWFtVmlkZW9VUkk6IHN0cmVhbVZpZGVvVVJJLA0KICAgICAgICAgICAg
ICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTUlubGluZVZp
ZGVvLnByb3RvdHlwZS5hZGp1c3RWaWRlbyA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7DQogICAgICAg
IHJldHVybiB0aGlzLmFkanVzdFZpZGVvV2l0aElkKCJpbmxpbmVWaWRlbyIsIGNhbGxiYWNrKQ0K
ICAgIH0sIE1NSW5saW5lVmlkZW8ucHJvdG90eXBlLmFkanVzdFZpZGVvV2l0aElkID0gZnVuY3Rp
b24oZGl2SWQsIGNhbGxiYWNrKSB7DQogICAgICAgIHZhciBmcmFtZSwgdmlkZW9FbDsNCiAgICAg
ICAgcmV0dXJuIHZpZGVvRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZJZCksIG51bGwg
IT0gdmlkZW9FbCA/IChmcmFtZSA9IHRoaXMuY2FsY3VsYXRlRGl2UG9zaXRpb24oZGl2SWQpLCBm
cmFtZS5jYWxsYmFjayA9IGNhbGxiYWNrLCB0aGlzLmVucXVldWUoImFkanVzdFZpZGVvIiwgZnJh
bWUpKSA6IGNhbGxiYWNrKHsNCiAgICAgICAgICAgICAgICByZXN1bHQ6IDAsDQogICAgICAgICAg
ICAgICAgcmVzcG9uc2U6ICJEaXYgSWQgbm90IGZvdW5kIiwNCiAgICAgICAgICAgICAgICAiY2xh
c3MiOiAiTU1JbmxpbmVWaWRlbyIsDQogICAgICAgICAgICAgICAgY2FsbDogImluc2VydFZpZGVv
Ig0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTUlubGluZVZpZGVvLnByb3RvdHlwZS5pbnNlcnRW
aWRlb1dpdGhJZCA9IGZ1bmN0aW9uKGRpdklkLCB0aW1pbmdDYWxsYmFjaywgY2FsbGJhY2spIHsN
CiAgICAgICAgdmFyIGF1dG9QbGF5LCBib2R5SGVpZ2h0LCBib2R5V2lkdGgsIGNhY2hlZFZpZGVv
SUQsIGNhY2hlZFZpZGVvVVJJLCBmcmFtZSwgaGVpZ2h0LCBzaG93Q29udHJvbHMsIHN0cmVhbVZp
ZGVvVVJJLCB0b3VjaENhbGxiYWNrLCB2aWRlb0VsLCB3aWR0aCwgeCwgeTsNCiAgICAgICAgcmV0
dXJuIHZpZGVvRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZJZCksIG51bGwgIT0gdmlk
ZW9FbCA/IChmcmFtZSA9IHRoaXMuY2FsY3VsYXRlRGl2UG9zaXRpb24oZGl2SWQpLCBudWxsICE9
IHRpbWluZ0NhbGxiYWNrICYmIHRoaXMuc2V0VGltaW5nQ2FsbGJhY2sodGltaW5nQ2FsbGJhY2sp
LCB4ID0gZnJhbWUueCwgeSA9IGZyYW1lLnksIHdpZHRoID0gZnJhbWUud2lkdGgsIGhlaWdodCA9
IGZyYW1lLmhlaWdodCwgYm9keVdpZHRoID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCwgYm9k
eUhlaWdodCA9IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0LCBjYWNoZWRWaWRlb1VSSSA9IHZp
ZGVvRWwuZ2V0QXR0cmlidXRlKCJjYWNoZWRWaWRlb1VSSSIpLCBjYWNoZWRWaWRlb0lEID0gdmlk
ZW9FbC5nZXRBdHRyaWJ1dGUoImNhY2hlZFZpZGVvSUQiKSwgdG91Y2hDYWxsYmFjayA9IHZpZGVv
RWwuZ2V0QXR0cmlidXRlKCJvblRvdWNoIiksIHN0cmVhbVZpZGVvVVJJID0gdmlkZW9FbC5nZXRB
dHRyaWJ1dGUoInN0cmVhbVZpZGVvVVJJIiksIGF1dG9QbGF5ID0gdmlkZW9FbC5nZXRBdHRyaWJ1
dGUoImF1dG9QbGF5IiksIHNob3dDb250cm9scyA9IHZpZGVvRWwuZ2V0QXR0cmlidXRlKCJzaG93
Q29udHJvbHMiKSwgY2FjaGVkVmlkZW9VUkkgfHwgc3RyZWFtVmlkZW9VUkkgPyB0aGlzLmVucXVl
dWUoImluc2VydFZpZGVvIiwgew0KICAgICAgICAgICAgICAgICAgICB4OiB4LA0KICAgICAgICAg
ICAgICAgICAgICB5OiB5LA0KICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGgsDQogICAg
ICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LA0KICAgICAgICAgICAgICAgICAgICBib2R5
V2lkdGg6IGJvZHlXaWR0aCwNCiAgICAgICAgICAgICAgICAgICAgYm9keUhlaWdodDogYm9keUhl
aWdodCwNCiAgICAgICAgICAgICAgICAgICAgY2FjaGVkVmlkZW9VUkk6IGNhY2hlZFZpZGVvVVJJ
LA0KICAgICAgICAgICAgICAgICAgICBzdHJlYW1WaWRlb1VSSTogc3RyZWFtVmlkZW9VUkksDQog
ICAgICAgICAgICAgICAgICAgIHRvdWNoQ2FsbGJhY2s6IHRvdWNoQ2FsbGJhY2ssDQogICAgICAg
ICAgICAgICAgICAgIGNhY2hlZFZpZGVvSUQ6IGNhY2hlZFZpZGVvSUQsDQogICAgICAgICAgICAg
ICAgICAgIGF1dG9QbGF5OiBhdXRvUGxheSwNCiAgICAgICAgICAgICAgICAgICAgc2hvd0NvbnRy
b2xzOiBzaG93Q29udHJvbHMsDQogICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFj
aw0KICAgICAgICAgICAgICAgIH0pIDogY2FsbGJhY2soew0KICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQ6IDAsDQogICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiAiY2FjaGVkVmlkZW9VUkkg
b3Igc3RyZWFtVmlkZW9VUkkgbm90IGZvdW5kIiwNCiAgICAgICAgICAgICAgICAgICAgImNsYXNz
IjogIk1NSW5saW5lVmlkZW8iLA0KICAgICAgICAgICAgICAgICAgICBjYWxsOiAiaW5zZXJ0Vmlk
ZW8iDQogICAgICAgICAgICAgICAgfSkpIDogY2FsbGJhY2soew0KICAgICAgICAgICAgICAgIHJl
c3VsdDogMCwNCiAgICAgICAgICAgICAgICByZXNwb25zZTogIkRpdiBJZCBub3QgZm91bmQiLA0K
ICAgICAgICAgICAgICAgICJjbGFzcyI6ICJNTUlubGluZVZpZGVvIiwNCiAgICAgICAgICAgICAg
ICBjYWxsOiAiaW5zZXJ0VmlkZW8iDQogICAgICAgICAgICB9KQ0KICAgIH0sIE1NSW5saW5lVmlk
ZW8ucHJvdG90eXBlLmluc2VydFZpZGVvID0gZnVuY3Rpb24odGltaW5nQ2FsbGJhY2ssIGNhbGxi
YWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmluc2VydFZpZGVvV2l0aElkKCJpbmxpbmVWaWRl
byIsIHRpbWluZ0NhbGxiYWNrLCBjYWxsYmFjaykNCiAgICB9LCBNTUlubGluZVZpZGVvLnByb3Rv
dHlwZS5jYWxjdWxhdGVEaXZQb3NpdGlvbiA9IGZ1bmN0aW9uKGRpdklkKSB7DQogICAgICAgIHZh
ciBkaXZFbCwgaGVpZ2h0LCBwb3NpdGlvbiwgd2lkdGgsIHgsIHk7DQogICAgICAgIHJldHVybiBk
aXZFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdklkKSwgcG9zaXRpb24gPSB0aGlzLnV0
aWxzLm9mZnNldChkaXZFbCksIHggPSBwb3NpdGlvblswXSwgeSA9IHBvc2l0aW9uWzFdLCB3aWR0
aCA9IGRpdkVsLm9mZnNldFdpZHRoLCBoZWlnaHQgPSBkaXZFbC5vZmZzZXRIZWlnaHQsIHsNCiAg
ICAgICAgICAgIHg6IHgsDQogICAgICAgICAgICB5OiB5LA0KICAgICAgICAgICAgd2lkdGg6IHdp
ZHRoLA0KICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQNCiAgICAgICAgfQ0KICAgIH0sIE1NSW5s
aW5lVmlkZW8NCn0oTU1CcmlkZ2VPYmplY3QpLCBNTUNhY2hlZFZpZGVvID0gZnVuY3Rpb24oX3N1
cGVyKSB7DQogICAgZnVuY3Rpb24gTU1DYWNoZWRWaWRlbygpIHsNCiAgICAgICAgcmV0dXJuIF9y
ZWY2ID0gTU1DYWNoZWRWaWRlby5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcywgYXJn
dW1lbnRzKQ0KICAgIH0NCiAgICByZXR1cm4gX19leHRlbmRzKE1NQ2FjaGVkVmlkZW8sIF9zdXBl
ciksIE1NQ2FjaGVkVmlkZW8udGltaW5nQ2FsbGJhY2sgPSBudWxsLCBNTUNhY2hlZFZpZGVvLmVy
cm9yQ2FsbGJhY2sgPSBudWxsLCBNTUNhY2hlZFZpZGVvLnByb3RvdHlwZS51cGRhdGVWaWRlb1Nl
ZWtUaW1lID0gZnVuY3Rpb24oY3VycmVudFNlZWtUaW1lKSB7DQogICAgICAgIHJldHVybiBudWxs
ICE9IHRoaXMudGltaW5nQ2FsbGJhY2sgPyB0aGlzLnRpbWluZ0NhbGxiYWNrKGN1cnJlbnRTZWVr
VGltZSkgOiB2b2lkIDANCiAgICB9LCBNTUNhY2hlZFZpZGVvLnByb3RvdHlwZS5zZXRUaW1pbmdD
YWxsYmFjayA9IGZ1bmN0aW9uKHRpbWluZ0NhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlz
LnRpbWluZ0NhbGxiYWNrID0gdGltaW5nQ2FsbGJhY2sNCiAgICB9LCBNTUNhY2hlZFZpZGVvLnBy
b3RvdHlwZS5zZXRFcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7DQogICAgICAgIHJldHVybiBudWxs
ICE9IHRoaXMuZXJyb3JDYWxsYmFjayA/IHRoaXMuZXJyb3JDYWxsYmFjayhlcnJvcikgOiB2b2lk
IDANCiAgICB9LCBNTUNhY2hlZFZpZGVvLnByb3RvdHlwZS5zZXRFcnJvckNhbGxiYWNrID0gZnVu
Y3Rpb24oZXJyb3JDYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lcnJvckNhbGxiYWNr
ID0gZXJyb3JDYWxsYmFjaw0KICAgIH0sIE1NQ2FjaGVkVmlkZW8ucHJvdG90eXBlLnJlc3RhcnRW
aWRlbyA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUo
InJlc3RhcnRWaWRlbyIsIHsNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAg
ICAgICAgICAgIH0pDQogICAgfSwgTU1DYWNoZWRWaWRlby5wcm90b3R5cGUuZW5kVmlkZW8gPSBm
dW5jdGlvbihjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJlbmRWaWRl
byIsIHsNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0p
DQogICAgfSwgTU1DYWNoZWRWaWRlby5wcm90b3R5cGUucGF1c2VWaWRlbyA9IGZ1bmN0aW9uKGNh
bGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUoInBhdXNlVmlkZW8iLCB7DQog
ICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAgICAgICAgICB9KQ0KICAgIH0s
IE1NQ2FjaGVkVmlkZW8ucHJvdG90eXBlLnBsYXlWaWRlbyA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7
DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUoInBsYXlWaWRlbyIsIHsNCiAgICAgICAgICAg
ICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1DYWNoZWRW
aWRlby5wcm90b3R5cGUuYXZhaWxhYmxlQ2FjaGVkVmlkZW9zID0gZnVuY3Rpb24oY2FsbGJhY2sp
IHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgiYXZhaWxhYmxlQ2FjaGVkVmlkZW9zIiwg
ew0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAgICAgfSkNCiAg
ICB9LCBNTUNhY2hlZFZpZGVvLnByb3RvdHlwZS5wbGF5Q2FjaGVkVmlkZW8gPSBmdW5jdGlvbih2
aWRlb0lkLCBjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJwbGF5Q2Fj
aGVkVmlkZW8iLCB7DQogICAgICAgICAgICAgICAgdmlkZW9JZDogdmlkZW9JZCwNCiAgICAgICAg
ICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1DYWNo
ZWRWaWRlby5wcm90b3R5cGUuY2FjaGVWaWRlbyA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsN
CiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgiY2FjaGVWaWRlbyIsIHsNCiAgICAgICAgICAg
ICAgICB1cmw6IHVybCwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAg
ICAgICAgIH0pDQogICAgfSwgTU1DYWNoZWRWaWRlby5wcm90b3R5cGUudmlkZW9JZEV4aXN0cyA9
IGZ1bmN0aW9uKHZpZGVvSWQsIGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVl
dWUoInZpZGVvSWRFeGlzdHMiLCB7DQogICAgICAgICAgICAgICAgdmlkZW9JZDogdmlkZW9JZCwN
CiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAg
fSwgTU1DYWNoZWRWaWRlbw0KfShNTUJyaWRnZU9iamVjdCksIE1NSW50ZXJzdGl0aWFsID0gZnVu
Y3Rpb24oX3N1cGVyKSB7DQogICAgZnVuY3Rpb24gTU1JbnRlcnN0aXRpYWwoKSB7DQogICAgICAg
IHJldHVybiBfcmVmNyA9IE1NSW50ZXJzdGl0aWFsLl9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBs
eSh0aGlzLCBhcmd1bWVudHMpDQogICAgfQ0KICAgIHJldHVybiBfX2V4dGVuZHMoTU1JbnRlcnN0
aXRpYWwsIF9zdXBlciksIE1NSW50ZXJzdGl0aWFsLmFuaW1hdGlvblR5cGVzID0gew0KICAgICAg
ICBpb3M6IFsiY3VybCIsICJmbGlwIiwgImRpc3NvbHZlIiwgInNsaWRldXAiLCAibm9uZSJdLA0K
ICAgICAgICBhbmRyb2lkOiBbInNsaWRldXAiLCAic2xpZGVkb3duIiwgImV4cGxvZGUiLCAibm9u
ZSJdLA0KICAgICAgICB3aW5kb3dzOiBbInNsaWRldXAiLCAic2xpZGVkb3duIiwgImV4cGxvZGUi
LCAibm9uZSJdDQogICAgfSwgTU1JbnRlcnN0aXRpYWwucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rp
b24oY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgiY2xvc2UiLCB7DQog
ICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAgICAgICAgICB9KQ0KICAgIH0s
IE1NSW50ZXJzdGl0aWFsLnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykg
ew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJvcGVuIiwgew0KICAgICAgICAgICAgICAg
IHVybDogdXJsLA0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAg
ICAgfSkNCiAgICB9LCBNTUludGVyc3RpdGlhbC5wcm90b3R5cGUudXNlQ3VzdG9tQ2xvc2UgPSBm
dW5jdGlvbih1c2VDdXN0b21DbG9zZSwgY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMu
ZW5xdWV1ZSgidXNlQ3VzdG9tQ2xvc2UiLCB7DQogICAgICAgICAgICAgICAgdXNlQ3VzdG9tQ2xv
c2U6IHVzZUN1c3RvbUNsb3NlLA0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0K
ICAgICAgICAgICAgfSkNCiAgICB9LCBNTUludGVyc3RpdGlhbC5wcm90b3R5cGUuc2V0T3JpZW50
YXRpb24gPSBmdW5jdGlvbihwcm9wZXJ0aWVzLCBjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4g
cHJvcGVydGllcy5jYWxsYmFjayA9IGNhbGxiYWNrLCB0aGlzLmVucXVldWUoInNldE9yaWVudGF0
aW9uIiwgcHJvcGVydGllcykNCiAgICB9LCBNTUludGVyc3RpdGlhbC5wcm90b3R5cGUuZXhwYW5k
VG9FeHRlcm5hbEJyb3dzZXIgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7DQogICAgICAgIHJl
dHVybiB0aGlzLmVucXVldWUoImV4cGFuZFRvRXh0ZXJuYWxCcm93c2VyIiwgew0KICAgICAgICAg
ICAgICAgIHVybDogdXJsLA0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAg
ICAgICAgICAgfSkNCiAgICB9LCBNTUludGVyc3RpdGlhbC5wcm90b3R5cGUuZXhwYW5kV2l0aFBy
b3BlcnRpZXMgPSBmdW5jdGlvbih1cmwsIHByb3BlcnRpZXMsIGNhbGxiYWNrKSB7DQogICAgICAg
IHZhciBrZXksIHBhcmFtcywgdHJhbnNpdGlvblR5cGUsIHZhbHVlOw0KICAgICAgICBpZiAocGFy
YW1zID0gew0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAgICAg
fSwgbnVsbCAhPSB1cmwgJiYgKHBhcmFtcy51cmwgPSB1cmwpLCBNTUpTLnV0aWxzLmNvbnNvbGVM
b2coImV4cGFuZFdpdGhQcm9wZXJ0aWVzIHByb3BlcnRpZXMgIiArIEpTT04uc3RyaW5naWZ5KHBy
b3BlcnRpZXMpKSwgbnVsbCAhPSBwcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgZm9yIChrZXkgaW4g
cHJvcGVydGllcykgX19oYXNQcm9wLmNhbGwocHJvcGVydGllcywga2V5KSAmJiAodmFsdWUgPSBw
cm9wZXJ0aWVzW2tleV0sICJ0cmFuc2l0aW9uIiA9PT0ga2V5ID8gKHRyYW5zaXRpb25UeXBlID0g
dmFsdWUsIHBhcmFtc1trZXldID0gdHJhbnNpdGlvblR5cGUpIDogcGFyYW1zW2tleV0gPSB2YWx1
ZSk7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUoImV4cGFuZFdpdGhQcm9wZXJ0aWVzIiwg
cGFyYW1zKQ0KICAgIH0sIE1NSW50ZXJzdGl0aWFsDQp9KE1NQnJpZGdlT2JqZWN0KSwgTU1CcmFu
ZCA9IGZ1bmN0aW9uKF9zdXBlcikgew0KICAgIGZ1bmN0aW9uIE1NQnJhbmQoKSB7DQogICAgICAg
IHJldHVybiBfcmVmOCA9IE1NQnJhbmQuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMs
IGFyZ3VtZW50cykNCiAgICB9DQogICAgcmV0dXJuIF9fZXh0ZW5kcyhNTUJyYW5kLCBfc3VwZXIp
LCBNTUJyYW5kLnByb3RvdHlwZS5nZXRJbmZvID0gZnVuY3Rpb24oY2FsbGJhY2spIHsNCiAgICAg
ICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgiZ2V0SW5mbyIsIHsNCiAgICAgICAgICAgICAgICBjYWxs
YmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1CcmFuZA0KfShNTUJyaWRn
ZU9iamVjdCksIE1NQXBwU3RvcmUgPSBmdW5jdGlvbihfc3VwZXIpIHsNCiAgICBmdW5jdGlvbiBN
TUFwcFN0b3JlKCkgew0KICAgICAgICByZXR1cm4gX3JlZjkgPSBNTUFwcFN0b3JlLl9fc3VwZXJf
Xy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLCBhcmd1bWVudHMpDQogICAgfQ0KICAgIHJldHVybiBf
X2V4dGVuZHMoTU1BcHBTdG9yZSwgX3N1cGVyKSwgTU1BcHBTdG9yZS5wcm90b3R5cGUubG9hZEFw
cCA9IGZ1bmN0aW9uKGFwcElkLCBjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1
ZXVlKCJsb2FkQXBwIiwgew0KICAgICAgICAgICAgICAgIGFwcElkOiBhcHBJZCwNCiAgICAgICAg
ICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1BcHBT
dG9yZQ0KfShNTUJyaWRnZU9iamVjdCksIE1NUGFzc2Jvb2sgPSBmdW5jdGlvbihfc3VwZXIpIHsN
CiAgICBmdW5jdGlvbiBNTVBhc3Nib29rKCkgew0KICAgICAgICByZXR1cm4gX3JlZjEwID0gTU1Q
YXNzYm9vay5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKQ0KICAg
IH0NCiAgICByZXR1cm4gX19leHRlbmRzKE1NUGFzc2Jvb2ssIF9zdXBlciksIE1NUGFzc2Jvb2su
cHJvdG90eXBlLmlzUGFzc2Jvb2tBdmFpbGFibGUgPSBmdW5jdGlvbihjYWxsYmFjaykgew0KICAg
ICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJpc1Bhc3Nib29rQXZhaWxhYmxlIiwgew0KICAgICAg
ICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTVBh
c3Nib29rLnByb3RvdHlwZS5hZGRQYXNzRnJvbVVSTCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2sp
IHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgiYWRkUGFzc0Zyb21VUkwiLCB7DQogICAg
ICAgICAgICAgICAgdXJsOiB1cmwsDQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNr
DQogICAgICAgICAgICB9KQ0KICAgIH0sIE1NUGFzc2Jvb2sucHJvdG90eXBlLmlzUGFzc0luc3Rh
bGxlZCA9IGZ1bmN0aW9uKHVybCwgaWRlbnRpZmllciwgc2VyaWFsLCBjYWxsYmFjaykgew0KICAg
ICAgICByZXR1cm4gbnVsbCAhPSB1cmwgPyB0aGlzLmVucXVldWUoImlzUGFzc0luc3RhbGxlZCIs
IHsNCiAgICAgICAgICAgICAgICB1cmw6IHVybCwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazog
Y2FsbGJhY2sNCiAgICAgICAgICAgIH0pIDogdGhpcy5lbnF1ZXVlKCJpc1Bhc3NJbnN0YWxsZWQi
LCB7DQogICAgICAgICAgICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllciwNCiAgICAgICAgICAg
ICAgICBzZXJpYWw6IHNlcmlhbCwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sN
CiAgICAgICAgICAgIH0pDQogICAgfSwgTU1QYXNzYm9vay5wcm90b3R5cGUuaXNQYXNzVVJMSW5z
dGFsbGVkID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5p
c1Bhc3NJbnN0YWxsZWQodXJsLCBudWxsLCBudWxsLCBjYWxsYmFjaykNCiAgICB9LCBNTVBhc3Ni
b29rLnByb3RvdHlwZS5pc1Bhc3NJZGVudGlmaWVySW5zdGFsbGVkID0gZnVuY3Rpb24oaWRlbnRp
Zmllciwgc2VyaWFsLCBjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5pc1Bhc3NJbnN0
YWxsZWQobnVsbCwgaWRlbnRpZmllciwgc2VyaWFsLCBjYWxsYmFjaykNCiAgICB9LCBNTVBhc3Ni
b29rDQp9KE1NQnJpZGdlT2JqZWN0KSwgTU1Tb2NpYWwgPSBmdW5jdGlvbihfc3VwZXIpIHsNCiAg
ICBmdW5jdGlvbiBNTVNvY2lhbCgpIHsNCiAgICAgICAgcmV0dXJuIF9yZWYxMSA9IE1NU29jaWFs
Ll9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLCBhcmd1bWVudHMpDQogICAgfQ0KICAg
IHJldHVybiBfX2V4dGVuZHMoTU1Tb2NpYWwsIF9zdXBlciksIE1NU29jaWFsLnByb3RvdHlwZS50
d2VldCA9IGZ1bmN0aW9uKG1lc3NhZ2UsIGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlz
LmVucXVldWUoInR3ZWV0Iiwgew0KICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsDQog
ICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAgICAgICAgICB9KQ0KICAgIH0s
IE1NU29jaWFsLnByb3RvdHlwZS50d2VldFdpdGhDb250ZW50ID0gZnVuY3Rpb24obWVzc2FnZSwg
dXJscywgaW1hZ2VzLCBjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJ0
d2VldCIsIHsNCiAgICAgICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLA0KICAgICAgICAgICAg
ICAgIHVybHM6IHVybHMuam9pbigiLCIpLA0KICAgICAgICAgICAgICAgIGltYWdlczogaW1hZ2Vz
LmpvaW4oIiwiKSwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAg
ICAgIH0pDQogICAgfSwgTU1Tb2NpYWwucHJvdG90eXBlLmZhY2Vib29rUG9zdCA9IGZ1bmN0aW9u
KG1lc3NhZ2UsIGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUoImZhY2Vi
b29rUG9zdCIsIHsNCiAgICAgICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLA0KICAgICAgICAg
ICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTVNvY2lh
bC5wcm90b3R5cGUuZmFjZWJvb2tQb3N0V2l0aENvbnRlbnQgPSBmdW5jdGlvbihtZXNzYWdlLCB1
cmxzLCBpbWFnZXMsIGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUoImZh
Y2Vib29rUG9zdCIsIHsNCiAgICAgICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLA0KICAgICAg
ICAgICAgICAgIHVybHM6IHVybHMuam9pbigiLCIpLA0KICAgICAgICAgICAgICAgIGltYWdlczog
aW1hZ2VzLmpvaW4oIiwiKSwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAg
ICAgICAgICAgIH0pDQogICAgfSwgTU1Tb2NpYWwucHJvdG90eXBlLmF1dGhlbnRpY2F0ZWRTZXJ2
aWNlcyA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUo
ImF1dGhlbnRpY2F0ZWRTZXJ2aWNlcyIsIHsNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2Fs
bGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1Tb2NpYWwNCn0oTU1CcmlkZ2VPYmplY3Qp
LCBNTVNwZWVjaGtpdCA9IGZ1bmN0aW9uKF9zdXBlcikgew0KICAgIGZ1bmN0aW9uIE1NU3BlZWNo
a2l0KCkgew0KICAgICAgICByZXR1cm4gX3JlZjEyID0gTU1TcGVlY2hraXQuX19zdXBlcl9fLmNv
bnN0cnVjdG9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykNCiAgICB9DQogICAgcmV0dXJuIF9fZXh0
ZW5kcyhNTVNwZWVjaGtpdCwgX3N1cGVyKSwgTU1TcGVlY2hraXQucHJvdG90eXBlLnN0YXJ0UmVj
b3JkaW5nID0gZnVuY3Rpb24obGFuZ3VhZ2UsIHJlY29nbml6ZXIsIGVuZE9mU3BlZWNoLCBjYWxs
YmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJzdGFydFJlY29yZGluZyIsIHsN
CiAgICAgICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2UsDQogICAgICAgICAgICAgICAgcmVj
b2duaXplcjogcmVjb2duaXplciwNCiAgICAgICAgICAgICAgICBlbmRPZlNwZWVjaDogZW5kT2ZT
cGVlY2gsDQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAgICAgICAgICB9
KQ0KICAgIH0sIE1NU3BlZWNoa2l0LnByb3RvdHlwZS5lbmRSZWNvcmRpbmcgPSBmdW5jdGlvbihj
YWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJlbmRSZWNvcmRpbmciLCB7
DQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAgICAgICAgICB9KQ0KICAg
IH0sIE1NU3BlZWNoa2l0LnByb3RvdHlwZS5zYW1wbGVCYWNrZ3JvdW5kQXVkaW9MZXZlbCA9IGZ1
bmN0aW9uKGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVybiB0aGlzLmVucXVldWUoInNhbXBsZUJh
Y2tncm91bmRBdWRpb0xldmVsIiwgew0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFj
aw0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTVNwZWVjaGtpdC5wcm90b3R5cGUudGV4dFRvU3Bl
ZWNoID0gZnVuY3Rpb24obGFuZ3VhZ2UsIHRleHQsIGNhbGxiYWNrKSB7DQogICAgICAgIHJldHVy
biB0aGlzLmVucXVldWUoInRleHRUb1NwZWVjaCIsIHsNCiAgICAgICAgICAgICAgICBsYW5ndWFn
ZTogbGFuZ3VhZ2UsDQogICAgICAgICAgICAgICAgdGV4dDogdGV4dCwNCiAgICAgICAgICAgICAg
ICBjYWxsYmFjazogY2FsbGJhY2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1TcGVlY2hraXQu
cHJvdG90eXBlLnJlbGVhc2VWb2ljZSA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7DQogICAgICAgIHJl
dHVybiBNTUpTLnNkay5zcGVlY2hSZXN1bHRzID0gW10sIE1NSlMuc2RrLnNwZWVjaEF1ZGlvTGV2
ZWwgPSAwLCBNTUpTLnNkay5zcGVlY2hCYWNrZ3JvdW5kQXVkaW9MZXZlbCA9IDAsIE1NSlMuc2Rr
LnNwZWVjaFN0YXR1cyA9ICJSZWxlYXNlZCIsIHRoaXMuZW5xdWV1ZSgicmVsZWFzZVZvaWNlIiwg
ew0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaw0KICAgICAgICAgICAgfSkNCiAg
ICB9LCBNTVNwZWVjaGtpdC5wcm90b3R5cGUuY2FjaGVBdWRpbyA9IGZ1bmN0aW9uKHVybCwgY2Fs
bGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuZW5xdWV1ZSgiY2FjaGVBdWRpbyIsIHsNCiAg
ICAgICAgICAgICAgICB1cmw6IHVybCwNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJh
Y2sNCiAgICAgICAgICAgIH0pDQogICAgfSwgTU1TcGVlY2hraXQucHJvdG90eXBlLnBsYXlBdWRp
byA9IGZ1bmN0aW9uKHVybCwgcHJvcGVydGllcywgY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJu
IHByb3BlcnRpZXMudXJsID0gdXJsLCBwcm9wZXJ0aWVzLmNhbGxiYWNrID0gY2FsbGJhY2ssIHRo
aXMuZW5xdWV1ZSgicGxheUF1ZGlvIiwgcHJvcGVydGllcykNCiAgICB9LCBNTVNwZWVjaGtpdC5w
cm90b3R5cGUuc3RvcEF1ZGlvID0gZnVuY3Rpb24oY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJu
IHRoaXMuZW5xdWV1ZSgic3RvcEF1ZGlvIiwgew0KICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBj
YWxsYmFjaw0KICAgICAgICAgICAgfSkNCiAgICB9LCBNTVNwZWVjaGtpdC5wcm90b3R5cGUuYWRk
Q3VzdG9tVm9pY2VXb3JkcyA9IGZ1bmN0aW9uKHdvcmRzLCBjYWxsYmFjaykgew0KICAgICAgICBy
ZXR1cm4gdGhpcy5lbnF1ZXVlKCJhZGRDdXN0b21Wb2ljZVdvcmRzIiwgew0KICAgICAgICAgICAg
ICAgIHdvcmRzOiB3b3JkcywNCiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2sNCiAg
ICAgICAgICAgIH0pDQogICAgfSwgTU1TcGVlY2hraXQucHJvdG90eXBlLmRlbGV0ZUN1c3RvbVZv
aWNlV29yZHMgPSBmdW5jdGlvbih3b3JkcywgY2FsbGJhY2spIHsNCiAgICAgICAgcmV0dXJuIHRo
aXMuZW5xdWV1ZSgiZGVsZXRlQ3VzdG9tVm9pY2VXb3JkcyIsIHsNCiAgICAgICAgICAgICAgICB3
b3Jkczogd29yZHMsDQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAgICAg
ICAgICB9KQ0KICAgIH0sIE1NU3BlZWNoa2l0LnByb3RvdHlwZS5nZXRTZXNzaW9uSWQgPSBmdW5j
dGlvbihjYWxsYmFjaykgew0KICAgICAgICByZXR1cm4gdGhpcy5lbnF1ZXVlKCJnZXRTZXNzaW9u
SWQiLCB7DQogICAgICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrDQogICAgICAgICAgICB9
KQ0KICAgIH0sIE1NU3BlZWNoa2l0LnByb3RvdHlwZS5nZXRSZWNvZ25pdGlvblJlc3VsdHMgPSBm
dW5jdGlvbigpIHsNCiAgICAgICAgcmV0dXJuIE1NSlMuc2RrLnNwZWVjaFJlc3VsdHMNCiAgICB9
LCBNTVNwZWVjaGtpdC5wcm90b3R5cGUuZ2V0QmFja2dyb3VuZE5vaXNlTGV2ZWwgPSBmdW5jdGlv
bigpIHsNCiAgICAgICAgcmV0dXJuIE1NSlMuc2RrLnNwZWVjaEJhY2tncm91bmRBdWRpb0xldmVs
DQogICAgfSwgTU1TcGVlY2hraXQucHJvdG90eXBlLmdldEF1ZGlvTGV2ZWwgPSBmdW5jdGlvbigp
IHsNCiAgICAgICAgcmV0dXJuIE1NSlMuc2RrLnNwZWVjaEF1ZGlvTGV2ZWwNCiAgICB9LCBNTVNw
ZWVjaGtpdC5wcm90b3R5cGUuZ2V0Vm9pY2VTdGF0ZSA9IGZ1bmN0aW9uKCkgew0KICAgICAgICBy
ZXR1cm4gTU1KUy5zZGsuc3BlZWNoU3RhdHVzDQogICAgfSwgTU1TcGVlY2hraXQucHJvdG90eXBl
LmdldEF1ZGlvUG9zaXRpb24gPSBmdW5jdGlvbigpIHsNCiAgICAgICAgcmV0dXJuIE1NSlMuc2Rr
LmF1ZGlvUG9zaXRpb24NCiAgICB9LCBNTVNwZWVjaGtpdA0KfShNTUJyaWRnZU9iamVjdCksIE1S
QUlEID0gZnVuY3Rpb24oX3N1cGVyKSB7DQogICAgZnVuY3Rpb24gTVJBSUQoKSB7DQogICAgICAg
IHRoaXMuc2RrID0gTU1KUy5zZGssIHRoaXMudXRpbHMgPSBNTUpTLnV0aWxzLCB0aGlzLnByb3Bl
cnRpZXMgPSB7DQogICAgICAgICAgICB3aWR0aDogbnVsbCwNCiAgICAgICAgICAgIGhlaWdodDog
bnVsbCwNCiAgICAgICAgICAgIHVzZUN1c3RvbUNsb3NlOiAhMSwNCiAgICAgICAgICAgIGlzTW9k
YWw6ICEwDQogICAgICAgIH0sIHRoaXMub3JpZW50YXRpb25Qcm9wZXJ0aWVzID0gew0KICAgICAg
ICAgICAgYWxsb3dPcmllbnRhdGlvbkNoYW5nZTogITAsDQogICAgICAgICAgICBmb3JjZU9yaWVu
dGF0aW9uOiAibm9uZSINCiAgICAgICAgfSwgdGhpcy5yZXNpemVQcm9wZXJ0aWVzID0gew0KICAg
ICAgICAgICAgd2lkdGg6IG51bGwsDQogICAgICAgICAgICBoZWlnaHQ6IG51bGwsDQogICAgICAg
ICAgICBjdXN0b21DbG9zZVBvc2l0aW9uOiAidG9wLXJpZ2h0IiwNCiAgICAgICAgICAgIG9mZnNl
dFg6IDAsDQogICAgICAgICAgICBvZmZzZXRZOiAwLA0KICAgICAgICAgICAgYWxsb3dPZmZzY3Jl
ZW46ICEwDQogICAgICAgIH0sIHRoaXMuYXVkaW9Qcm9wZXJ0aWVzID0gew0KICAgICAgICAgICAg
bG9vcDogITEsDQogICAgICAgICAgICBjb250cm9sczogITENCiAgICAgICAgfQ0KICAgIH0NCiAg
ICByZXR1cm4gX19leHRlbmRzKE1SQUlELCBfc3VwZXIpLCBNUkFJRC5wcm90b3R5cGUuZ2V0QWRT
aXplID0gZnVuY3Rpb24oKSB7DQogICAgICAgIHJldHVybiBudWxsICE9IHRoaXMuc2RrLmFkU2l6
ZSAmJiAodGhpcy51dGlscy5jb25zb2xlTG9nKCJNUkFJRCBnZXRBZFNpemUgIiArIEpTT04uc3Ry
aW5naWZ5KHRoaXMuc2RrLmFkU2l6ZSkpLCB0aGlzLnNkay5hZFNpemUuaGVpZ2h0ID4gMCAmJiB0
aGlzLnNkay5hZFNpemUud2lkdGggPiAwKSA/IHRoaXMuc2RrLmFkU2l6ZSA6IG51bGwNCiAgICB9
LCBNUkFJRC5wcm90b3R5cGUuY2FsbGJhY2tNYW5hZ2VyID0gZnVuY3Rpb24ocmVzcG9uc2UpIHsN
CiAgICAgICAgdmFyIGtsYXNzLCBtZXRob2QsIHJlc3BvbnNlX2RhdGEsIHJlc3VsdDsNCiAgICAg
ICAgcmV0dXJuIHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdCwgbWV0aG9kID0gcmVzcG9uc2UuY2Fs
bCwgcmVzcG9uc2VfZGF0YSA9IHJlc3BvbnNlLnJlc3BvbnNlLCBrbGFzcyA9IHJlc3BvbnNlWyJj
bGFzcyJdLCB0aGlzDQogICAgfSwgTVJBSUQucHJvdG90eXBlLmdldFZlcnNpb24gPSBmdW5jdGlv
bigpIHsNCiAgICAgICAgcmV0dXJuICIyLjAiDQogICAgfSwgTVJBSUQucHJvdG90eXBlLmNsb3Nl
ID0gZnVuY3Rpb24oKSB7DQogICAgICAgIHJldHVybiBNTUpTLmludGVyc3RpdGlhbC5jbG9zZShm
dW5jdGlvbihyZXNwb25zZSkgew0KICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdCA8
IDEgPyBNTUpTLmxpc3RlbmVyTWFuYWdlci5maXJlRXZlbnRDYWxsYmFja3MoImVycm9yIiwgIkNs
b3NlIGZhaWxlZCIsICJjbG9zZSIpIDogdm9pZCAwDQogICAgICAgIH0pDQogICAgfSwgTVJBSUQu
cHJvdG90eXBlLmV4cGFuZCA9IGZ1bmN0aW9uKF91cmwpIHsNCiAgICAgICAgdmFyIGssIG1heFNp
emUsIHByb3BzLCB2LCBfcmVmMTM7DQogICAgICAgIHRoaXMudXRpbHMuY29uc29sZUxvZygibXJh
aWQuZXhwYW5kIGNhbGxlZCB3aXRoIHByb3BlcnRpZXM6ICIgKyBKU09OLnN0cmluZ2lmeSh0aGlz
LmdldEV4cGFuZFByb3BlcnRpZXMoKSkpLCB0aGlzLnV0aWxzLmNvbnNvbGVMb2coIm1yYWlkLmV4
cGFuZCB1cmw6ICIgKyBfdXJsKSwgcHJvcHMgPSB0aGlzLmdldEV4cGFuZFByb3BlcnRpZXMoKSwg
bWF4U2l6ZSA9IHRoaXMuZ2V0TWF4U2l6ZSgpLCBudWxsICE9IHByb3BzICYmIG51bGwgIT0gbWF4
U2l6ZSAmJiBwcm9wcy5oZWlnaHQgPT09IG1heFNpemUuaGVpZ2h0ICYmIHByb3BzLndpZHRoID09
PSBtYXhTaXplLndpZHRoICYmIChwcm9wcy5oZWlnaHQgPSB2b2lkIDAsIHByb3BzLndpZHRoID0g
dm9pZCAwKSwgX3JlZjEzID0gdGhpcy5vcmllbnRhdGlvblByb3BlcnRpZXM7DQogICAgICAgIGZv
ciAoayBpbiBfcmVmMTMpIHYgPSBfcmVmMTNba10sIHByb3BzW2tdID0gdjsNCiAgICAgICAgcmV0
dXJuIE1NSlMuaW50ZXJzdGl0aWFsLmV4cGFuZFdpdGhQcm9wZXJ0aWVzKF91cmwsIHByb3BzLCBm
dW5jdGlvbihyZXNwb25zZSkgew0KICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdCA8
IDEgPyBNTUpTLmxpc3RlbmVyTWFuYWdlci5maXJlRXZlbnRDYWxsYmFja3MoImVycm9yIiwgIkV4
cGFuZCBmYWlsZWQiLCAiZXhwYW5kIikgOiB2b2lkIDANCiAgICAgICAgfSkNCiAgICB9LCBNUkFJ
RC5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uKF91cmwpIHsNCiAgICAgICAgcmV0dXJuIE1NSlMu
aW50ZXJzdGl0aWFsLm9wZW4oX3VybCwgZnVuY3Rpb24ocmVzcG9uc2UpIHsNCiAgICAgICAgICAg
IHJldHVybiByZXNwb25zZS5yZXN1bHQgPCAxID8gTU1KUy5saXN0ZW5lck1hbmFnZXIuZmlyZUV2
ZW50Q2FsbGJhY2tzKCJlcnJvciIsICJPcGVuIGZhaWxlZCB0byBvcGVuIGV4dGVybmFsIHVybCIs
ICJvcGVuIikgOiB2b2lkIDANCiAgICAgICAgfSkNCiAgICB9LCBNUkFJRC5wcm90b3R5cGUuZ2V0
RXhwYW5kUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgbWF4U2l6ZTsNCiAg
ICAgICAgcmV0dXJuIG1heFNpemUgPSB0aGlzLmdldE1heFNpemUoKSwgbnVsbCAhPSBtYXhTaXpl
ID8gKChudWxsID09PSB0aGlzLnByb3BlcnRpZXMuaGVpZ2h0IHx8IHZvaWQgMCA9PT0gdGhpcy5w
cm9wZXJ0aWVzLmhlaWdodCkgJiYgKHRoaXMucHJvcGVydGllcy5oZWlnaHQgPSBtYXhTaXplLmhl
aWdodCksIChudWxsID09PSB0aGlzLnByb3BlcnRpZXMud2lkdGggfHwgdm9pZCAwID09PSB0aGlz
LnByb3BlcnRpZXMud2lkdGgpICYmICh0aGlzLnByb3BlcnRpZXMud2lkdGggPSBtYXhTaXplLndp
ZHRoKSwgdGhpcy5wcm9wZXJ0aWVzKSA6IE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENh
bGxiYWNrcygiZXJyb3IiLCAiZ2V0RXhwYW5kUHJvcGVydGllcyBmYWlsZWQiLCAiZ2V0RXhwYW5k
UHJvcGVydGllcyIpDQogICAgfSwgTVJBSUQucHJvdG90eXBlLnNldEV4cGFuZFByb3BlcnRpZXMg
PSBmdW5jdGlvbihfcHJvcGVydGllcykgew0KICAgICAgICByZXR1cm4gdGhpcy51dGlscy5jb25z
b2xlTG9nKCJzZXRFeHBhbmRQcm9wZXJ0aWVzOiAiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9w
ZXJ0aWVzKSksIHRoaXMucHJvcGVydGllcyA9IF9wcm9wZXJ0aWVzDQogICAgfSwgTVJBSUQucHJv
dG90eXBlLmdldFBsYWNlbWVudFR5cGUgPSBmdW5jdGlvbigpIHsNCiAgICAgICAgcmV0dXJuIHRo
aXMuc2RrLnBsYWNlbWVudFR5cGUNCiAgICB9LCBNUkFJRC5wcm90b3R5cGUuZ2V0U3RhdGUgPSBm
dW5jdGlvbigpIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuc2RrLnN0YXRlDQogICAgfSwgTVJBSUQu
cHJvdG90eXBlLnVzZUN1c3RvbUNsb3NlID0gZnVuY3Rpb24oX2N1c3RvbUNsb3NlKSB7DQogICAg
ICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMudXNlQ3VzdG9tQ2xvc2UgPSBfY3VzdG9tQ2xvc2Us
IHRoaXMudXRpbHMuY29uc29sZUxvZygiVXNlIEN1c3RvbSBDbG9zZSB3YXMgY2FsbGVkOiAiICsg
X2N1c3RvbUNsb3NlKSwgTU1KUy5pbnRlcnN0aXRpYWwudXNlQ3VzdG9tQ2xvc2UoX2N1c3RvbUNs
b3NlLCBmdW5jdGlvbihyZXNwb25zZSkgew0KICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJl
c3VsdCA8IDEgPyBNTUpTLmxpc3RlbmVyTWFuYWdlci5maXJlRXZlbnRDYWxsYmFja3MoImVycm9y
IiwgIlVzZSBjdXN0b20gY2xvc2UgZmFpbGVkIHRvIHNldCIsICJ1c2VDdXN0b21DbG9zZSIpIDog
dm9pZCAwDQogICAgICAgIH0pDQogICAgfSwgTVJBSUQucHJvdG90eXBlLmlzVmlld2FibGUgPSBm
dW5jdGlvbigpIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuc2RrLnZpZXdhYmxlDQogICAgfSwgTVJB
SUQucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudCwgbGlzdGVu
ZXIpIHsNCiAgICAgICAgcmV0dXJuIE1NSlMubGlzdGVuZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlz
dGVuZXIoZXZlbnQsIGxpc3RlbmVyKQ0KICAgIH0sIE1SQUlELnByb3RvdHlwZS5hZGRFdmVudExp
c3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGxpc3RlbmVyKSB7DQogICAgICAgIHJldHVybiBNTUpT
Lmxpc3RlbmVyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBsaXN0ZW5lcikNCiAgICB9
LCBNUkFJRC5wcm90b3R5cGUuZmlyZUV2ZW50Q2FsbGJhY2tzID0gZnVuY3Rpb24oZXZlbnROYW1l
LCBwYXJhbWV0ZXIsIGFjdGlvbikgew0KICAgICAgICByZXR1cm4gTU1KUy5saXN0ZW5lck1hbmFn
ZXIuZmlyZUV2ZW50Q2FsbGJhY2tzKGV2ZW50TmFtZSwgcGFyYW1ldGVyLCBhY3Rpb24pDQogICAg
fSwgTVJBSUQucHJvdG90eXBlLnJlc2l6ZSA9IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgY2Fs
bGVkcmVzaXplUHJvcGVydGllcywgbWF4U2l6ZTsNCiAgICAgICAgcmV0dXJuIG1heFNpemUgPSB0
aGlzLmdldE1heFNpemUoKSwgY2FsbGVkcmVzaXplUHJvcGVydGllcyA9IHRoaXMuZ2V0UmVzaXpl
UHJvcGVydGllcygpLCBjYWxsZWRyZXNpemVQcm9wZXJ0aWVzLmFsbG93T2Zmc2NyZWVuID09PSAh
MSAmJiAoY2FsbGVkcmVzaXplUHJvcGVydGllcy53aWR0aCA+IG1heFNpemUud2lkdGggfHwgY2Fs
bGVkcmVzaXplUHJvcGVydGllcy5oZWlnaHQgPiBtYXhTaXplLmhlaWdodCkgPyB2b2lkIHRoaXMu
ZmlyZUV2ZW50Q2FsbGJhY2tzKCJlcnJvciIsICJSZXNpemUgaXMgdW5zdXBwb3J0ZWQgaW4gdGhp
cyBhcHBsaWNhdGlvbi4iLCAicmVzaXplIikgOiAoTU1KUy5iYW5uZXIucmVzaXplKGNhbGxlZHJl
c2l6ZVByb3BlcnRpZXMsIGZ1bmN0aW9uKHJlc3BvbnNlKSB7DQogICAgICAgICAgICAgICAgICAg
IHJldHVybiByZXNwb25zZS5yZXN1bHQgPCAxID8gbXJhaWQuZmlyZUV2ZW50Q2FsbGJhY2tzKCJl
cnJvciIsICJSZXNpemUgaXMgdW5zdXBwb3J0ZWQgaW4gdGhpcyBhcHBsaWNhdGlvbi4iLCAicmVz
aXplIikgOiB2b2lkIDANCiAgICAgICAgICAgICAgICB9KSwgbnVsbCkNCiAgICB9LCBNUkFJRC5w
cm90b3R5cGUuZ2V0UmVzaXplUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIg
YWRTaXplOw0KICAgICAgICByZXR1cm4gYWRTaXplID0gdGhpcy5nZXRBZFNpemUoKSwgbnVsbCAh
PSBhZFNpemUgPyAoTU1KUy51dGlscy5jb25zb2xlTG9nKCJBZCBTaXplIHdhcyBmb3VuZCIpLCBu
dWxsID09PSB0aGlzLnJlc2l6ZVByb3BlcnRpZXMuaGVpZ2h0ICYmICh0aGlzLnJlc2l6ZVByb3Bl
cnRpZXMuaGVpZ2h0ID0gYWRTaXplLmhlaWdodCksIG51bGwgPT09IHRoaXMucmVzaXplUHJvcGVy
dGllcy53aWR0aCAmJiAodGhpcy5yZXNpemVQcm9wZXJ0aWVzLndpZHRoID0gYWRTaXplLndpZHRo
KSwgdGhpcy5yZXNpemVQcm9wZXJ0aWVzKSA6IChNTUpTLnV0aWxzLmNvbnNvbGVMb2coImdldFJl
c2l6ZVByb3BlcnRpZXMgZmFpbGVkIiksIE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENh
bGxiYWNrcygiZXJyb3IiLCAiUmVzaXplIGlzIHVuc3VwcG9ydGVkIGluIHRoaXMgYXBwbGljYXRp
b24uIiwgInJlc2l6ZSIpKQ0KICAgIH0sIE1SQUlELnByb3RvdHlwZS5zZXRSZXNpemVQcm9wZXJ0
aWVzID0gZnVuY3Rpb24oX3Byb3BlcnRpZXMpIHsNCiAgICAgICAgcmV0dXJuIHRoaXMucmVzaXpl
UHJvcGVydGllcyA9IF9wcm9wZXJ0aWVzDQogICAgfSwgTVJBSUQucHJvdG90eXBlLmdldEN1cnJl
bnRQb3NpdGlvbiA9IGZ1bmN0aW9uKCkgew0KICAgICAgICByZXR1cm4gdGhpcy5zZGsuYWRTaXpl
DQogICAgfSwgTVJBSUQucHJvdG90eXBlLmdldE1heFNpemUgPSBmdW5jdGlvbigpIHsNCiAgICAg
ICAgcmV0dXJuIG51bGwgIT0gdGhpcy5zZGsuYWRQcm9wZXJ0aWVzLm1heFNpemUgPyB7DQogICAg
ICAgICAgICBoZWlnaHQ6IHRoaXMuc2RrLmFkUHJvcGVydGllcy5tYXhTaXplLmhlaWdodCwNCiAg
ICAgICAgICAgIHdpZHRoOiB0aGlzLnNkay5hZFByb3BlcnRpZXMubWF4U2l6ZS53aWR0aA0KICAg
ICAgICB9IDogKE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENhbGxiYWNrcygiZXJyb3Ii
LCAiZ2V0UmVzaXplUHJvcGVydGllcyBmYWlsZWQiLCAiZ2V0UmVzaXplUHJvcGVydGllcyIpLCBu
dWxsKQ0KICAgIH0sIE1SQUlELnByb3RvdHlwZS5nZXREZWZhdWx0UG9zaXRpb24gPSBmdW5jdGlv
bigpIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuc2RrLmRlZmF1bHRQb3NpdGlvbg0KICAgIH0sIE1S
QUlELnByb3RvdHlwZS5nZXRTY3JlZW5TaXplID0gZnVuY3Rpb24oKSB7DQogICAgICAgIHJldHVy
biBNTUpTLnV0aWxzLmNvbnNvbGVMb2coImdldFNjcmVlblNpemU6ICIgKyB0aGlzLnNkay5hZFBy
b3BlcnRpZXMuc2NyZWVuKSwgbnVsbCAhPSB0aGlzLnNkay5hZFByb3BlcnRpZXMuc2NyZWVuID8g
dGhpcy5zZGsuYWRQcm9wZXJ0aWVzLnNjcmVlbiA6ICh0aGlzLmZpcmVFdmVudENhbGxiYWNrcygi
ZXJyb3IiLCAiU2NyZWVuIHNpemUgaXMgdW5hdmFpbGFibGUiLCAiZ2V0U2NyZWVuU2l6ZSIpLCBu
dWxsKQ0KICAgIH0sIE1SQUlELnByb3RvdHlwZS5zdXBwb3J0cyA9IGZ1bmN0aW9uKGZlYXR1cmUp
IHsNCiAgICAgICAgcmV0dXJuIG51bGwgIT0gZmVhdHVyZSA/IHRoaXMuc2RrLnN1cHBvcnRQcm9w
ZXJ0aWVzW2ZlYXR1cmVdIDogdGhpcy5zZGsuc3VwcG9ydFByb3BlcnRpZXMNCiAgICB9LCBNUkFJ
RC5wcm90b3R5cGUuc3RvcmVQaWN0dXJlID0gZnVuY3Rpb24oVVJJKSB7DQogICAgICAgIHJldHVy
biBNTUpTLm1lZGlhLndyaXRlVG9QaG90b0xpYnJhcnkoVVJJLCAiIiwgIiIsIGZ1bmN0aW9uKHJl
c3BvbnNlKSB7DQogICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0IDwgMSA/IE1NSlMu
bGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENhbGxiYWNrcygiZXJyb3IiLCAiRXJyb3Igc3Rvcmlu
ZyBwaWN0dXJlIiwgInN0b3JlUGljdHVyZSIpIDogdm9pZCAwDQogICAgICAgIH0pDQogICAgfSwg
TVJBSUQucHJvdG90eXBlLmNyZWF0ZUNhbGVuZGFyRXZlbnQgPSBmdW5jdGlvbihwYXJhbWV0ZXJz
KSB7DQogICAgICAgIHJldHVybiBNTUpTLmNhbGVuZGFyLmFkZEV2ZW50KHBhcmFtZXRlcnMsIGZ1
bmN0aW9uKHJlc3BvbnNlKSB7DQogICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0IDwg
MSA/IE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENhbGxiYWNrcygiZXJyb3IiLCAiRXJy
b3IgYWRkaW5nIGNhbGVuZGFyIGV2ZW50IiwgImNyZWF0ZUNhbGVuZGFyRXZlbnQiKSA6IHZvaWQg
MA0KICAgICAgICB9KQ0KICAgIH0sIE1SQUlELnByb3RvdHlwZS5wbGF5VmlkZW8gPSBmdW5jdGlv
bihVUkkpIHsNCiAgICAgICAgcmV0dXJuIE1NSlMubWVkaWEucGxheVZpZGVvKFVSSSwgZnVuY3Rp
b24ocmVzcG9uc2UpIHsNCiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHQgPCAxID8g
TU1KUy5saXN0ZW5lck1hbmFnZXIuZmlyZUV2ZW50Q2FsbGJhY2tzKCJlcnJvciIsICJFcnJvciBw
bGF5aW5nIHZpZGVvIiwgInBsYXlWaWRlbyIpIDogdm9pZCAwDQogICAgICAgIH0pDQogICAgfSwg
TVJBSUQucHJvdG90eXBlLmdldE9yaWVudGF0aW9uUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkgew0K
ICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvblByb3BlcnRpZXMNCiAgICB9LCBNUkFJRC5w
cm90b3R5cGUuc2V0T3JpZW50YXRpb25Qcm9wZXJ0aWVzID0gZnVuY3Rpb24ocHJvcGVydGllcykg
ew0KICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvblByb3BlcnRpZXMgPSBwcm9wZXJ0aWVz
LCAiZXhwYW5kZWQiID09PSB0aGlzLmdldFN0YXRlKCkgJiYgImlubGluZSIgPT09IHRoaXMuZ2V0
UGxhY2VtZW50VHlwZSgpIHx8ICJpbnRlcnN0aXRpYWwiID09PSB0aGlzLmdldFBsYWNlbWVudFR5
cGUoKSA/IE1NSlMuaW50ZXJzdGl0aWFsLnNldE9yaWVudGF0aW9uKHRoaXMub3JpZW50YXRpb25Q
cm9wZXJ0aWVzLCAibXJhaWQuY2FsbGJhY2tNYW5hZ2VyIikgOiB2b2lkIDANCiAgICB9LCBNUkFJ
RC5wcm90b3R5cGUuc3RhcnRSZWNvcmRpbmcgPSBmdW5jdGlvbihsYW5ndWFnZUNvZGUpIHsNCiAg
ICAgICAgcmV0dXJuIE1NSlMuc3BlZWNoa2l0LnN0YXJ0UmVjb3JkaW5nKGxhbmd1YWdlQ29kZSwg
ImRpY3RhdGlvbiIsICJzaG9ydCIsIGZ1bmN0aW9uKHJlc3BvbnNlKSB7DQogICAgICAgICAgICBy
ZXR1cm4gcmVzcG9uc2UucmVzdWx0IDwgMSA/IE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVu
dENhbGxiYWNrcygidm9pY2VFcnJvciIsICJTdGFydCByZWNvcmRpbmcgZmFpbGVkIiwgInN0YXJ0
UmVjb3JkaW5nIikgOiB2b2lkIDANCiAgICAgICAgfSkNCiAgICB9LCBNUkFJRC5wcm90b3R5cGUu
ZW5kUmVjb3JkaW5nID0gZnVuY3Rpb24oKSB7DQogICAgICAgIHJldHVybiBNTUpTLnNwZWVjaGtp
dC5lbmRSZWNvcmRpbmcoZnVuY3Rpb24ocmVzcG9uc2UpIHsNCiAgICAgICAgICAgIHJldHVybiBy
ZXNwb25zZS5yZXN1bHQgPCAxID8gTU1KUy5saXN0ZW5lck1hbmFnZXIuZmlyZUV2ZW50Q2FsbGJh
Y2tzKCJ2b2ljZUVycm9yIiwgIkVuZCByZWNvcmRpbmcgZmFpbGVkIiwgImVuZFJlY29yZGluZyIp
IDogdm9pZCAwDQogICAgICAgIH0pDQogICAgfSwgTVJBSUQucHJvdG90eXBlLnRleHRUb1NwZWVj
aCA9IGZ1bmN0aW9uKHRleHQsIGxhbmd1YWdlQ29kZSkgew0KICAgICAgICByZXR1cm4gTU1KUy5z
cGVlY2hraXQudGV4dFRvU3BlZWNoKGxhbmd1YWdlQ29kZSwgdGV4dCwgZnVuY3Rpb24ocmVzcG9u
c2UpIHsNCiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHQgPCAxID8gTU1KUy5saXN0
ZW5lck1hbmFnZXIuZmlyZUV2ZW50Q2FsbGJhY2tzKCJ2b2ljZUVycm9yIiwgIlRleHQgdG8gU3Bl
ZWNoIGZhaWxlZCIsICJ0ZXh0VG9TcGVlY2giKSA6IHZvaWQgMA0KICAgICAgICB9KQ0KICAgIH0s
IE1SQUlELnByb3RvdHlwZS5wbGF5QXVkaW8gPSBmdW5jdGlvbih1cmwsIG9wdGlvbnMpIHsNCiAg
ICAgICAgcmV0dXJuIG51bGwgIT0gb3B0aW9ucyAmJiAob3B0aW9ucy5sb29wID0gdGhpcy5hdWRp
b1Byb3BlcnRpZXMubG9vcCwgb3B0aW9ucy5jb250cm9scyA9IHRoaXMuYXVkaW9Qcm9wZXJ0aWVz
LmNvbnRyb2xzKSwgTU1KUy5zcGVlY2hraXQucGxheUF1ZGlvKHVybCwgdGhpcy5hdWRpb1Byb3Bl
cnRpZXMsIGZ1bmN0aW9uKHJlc3BvbnNlKSB7DQogICAgICAgICAgICByZXR1cm4gcmVzcG9uc2Uu
cmVzdWx0IDwgMSA/IE1NSlMubGlzdGVuZXJNYW5hZ2VyLmZpcmVFdmVudENhbGxiYWNrcygidm9p
Y2VFcnJvciIsICJQbGF5aW5nIGF1ZGlvIGZhaWxlZCIsICJwbGF5QXVkaW8iKSA6IHZvaWQgMA0K
ICAgICAgICB9KQ0KICAgIH0sIE1SQUlELnByb3RvdHlwZS5zdG9wQXVkaW8gPSBmdW5jdGlvbigp
IHsNCiAgICAgICAgcmV0dXJuIE1NSlMuc3BlZWNoa2l0LnN0b3BBdWRpbyhmdW5jdGlvbihyZXNw
b25zZSkgew0KICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdCA8IDEgPyBNTUpTLmxp
c3RlbmVyTWFuYWdlci5maXJlRXZlbnRDYWxsYmFja3MoInZvaWNlRXJyb3IiLCAiU3RvcCBwbGF5
aW5nIGF1ZGlvIGZhaWxlZCIsICJzdG9wQXVkaW8iKSA6IHZvaWQgMA0KICAgICAgICB9KQ0KICAg
IH0sIE1SQUlELnByb3RvdHlwZS5jYWNoZUF1ZGlvID0gZnVuY3Rpb24odXJsKSB7DQogICAgICAg
IHJldHVybiBNTUpTLnNwZWVjaGtpdC5jYWNoZUF1ZGlvKHVybCwgZnVuY3Rpb24ocmVzcG9uc2Up
IHsNCiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHQgPCAxID8gTU1KUy5saXN0ZW5l
ck1hbmFnZXIuZmlyZUV2ZW50Q2FsbGJhY2tzKCJ2b2ljZUVycm9yIiwgIkF1ZGlvIGNhY2hpbmcg
ZmFpbGVkIiwgImNhY2hlQXVkaW8iKSA6IHZvaWQgMA0KICAgICAgICB9KQ0KICAgIH0sIE1SQUlE
LnByb3RvdHlwZS5zYW1wbGVCYWNrZ3JvdW5kQXVkaW9MZXZlbCA9IGZ1bmN0aW9uKCkgew0KICAg
ICAgICByZXR1cm4gTU1KUy5zcGVlY2hraXQuc2FtcGxlQmFja2dyb3VuZEF1ZGlvTGV2ZWwoZnVu
Y3Rpb24ocmVzcG9uc2UpIHsNCiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHQgPCAx
ID8gTU1KUy5saXN0ZW5lck1hbmFnZXIuZmlyZUV2ZW50Q2FsbGJhY2tzKCJ2b2ljZUVycm9yIiwg
IlNhbXBsaW5nIG9mIGJhY2tncm91bmQgYXVkaW8gZmFpbGVkIiwgInNhbXBsZUJhY2tncm91bmRB
dWRpb0xldmVsIikgOiB2b2lkIDANCiAgICAgICAgfSkNCiAgICB9LCBNUkFJRC5wcm90b3R5cGUu
cmVsZWFzZVZvaWNlID0gZnVuY3Rpb24oKSB7DQogICAgICAgIHJldHVybiBNTUpTLnNwZWVjaGtp
dC5yZWxlYXNlVm9pY2UoZnVuY3Rpb24oKSB7fSkNCiAgICB9LCBNUkFJRC5wcm90b3R5cGUuYWRk
Q3VzdG9tVm9pY2VXb3JkcyA9IGZ1bmN0aW9uKHdvcmRzKSB7DQogICAgICAgIHJldHVybiBNTUpT
LnNwZWVjaGtpdC5hZGRDdXN0b21Wb2ljZVdvcmRzKHdvcmRzLCBmdW5jdGlvbihyZXNwb25zZSkg
ew0KICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdCA8IDEgPyBNTUpTLmxpc3RlbmVy
TWFuYWdlci5maXJlRXZlbnRDYWxsYmFja3MoInZvaWNlRXJyb3IiLCAiQWRkaW5nIGN1c3RvbSB3
b3JkcyBmYWlsZWQiLCAiYWRkQ3VzdG9tVm9pY2VXb3JkcyIpIDogdm9pZCAwDQogICAgICAgIH0p
DQogICAgfSwgTVJBSUQucHJvdG90eXBlLmRlbGV0ZUN1c3RvbVZvaWNlV29yZHMgPSBmdW5jdGlv
bih3b3Jkcykgew0KICAgICAgICByZXR1cm4gTU1KUy5zcGVlY2hraXQuZGVsZXRlQ3VzdG9tVm9p
Y2VXb3Jkcyh3b3JkcywgZnVuY3Rpb24ocmVzcG9uc2UpIHsNCiAgICAgICAgICAgIHJldHVybiBy
ZXNwb25zZS5yZXN1bHQgPCAxID8gTU1KUy5saXN0ZW5lck1hbmFnZXIuZmlyZUV2ZW50Q2FsbGJh
Y2tzKCJ2b2ljZUVycm9yIiwgIkRlbGV0aW5nIGN1c3RvbSB3b3JkcyBmYWlsZWQiLCAiZGVsZXRl
Q3VzdG9tVm9pY2VXb3JkcyIpIDogdm9pZCAwDQogICAgICAgIH0pDQogICAgfSwgTVJBSUQucHJv
dG90eXBlLmdldFJlY29nbml0aW9uUmVzdWx0cyA9IGZ1bmN0aW9uKCkgew0KICAgICAgICByZXR1
cm4gTU1KUy5zcGVlY2hraXQuZ2V0UmVjb2duaXRpb25SZXN1bHRzKCkNCiAgICB9LCBNUkFJRC5w
cm90b3R5cGUuZ2V0QXVkaW9MZXZlbCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICByZXR1cm4gTU1K
Uy5zcGVlY2hraXQuZ2V0QXVkaW9MZXZlbCgpDQogICAgfSwgTVJBSUQucHJvdG90eXBlLmdldFZv
aWNlU3RhdGUgPSBmdW5jdGlvbigpIHsNCiAgICAgICAgcmV0dXJuIE1NSlMuc3BlZWNoa2l0Lmdl
dFZvaWNlU3RhdGUoKQ0KICAgIH0sIE1SQUlELnByb3RvdHlwZS5nZXRBdWRpb1Bvc2l0aW9uID0g
ZnVuY3Rpb24oKSB7DQogICAgICAgIHJldHVybiBNTUpTLnNwZWVjaGtpdC5nZXRBdWRpb1Bvc2l0
aW9uKCkNCiAgICB9LCBNUkFJRA0KfShNTUJyaWRnZU9iamVjdCksIGZ1bmN0aW9uKCkgew0KICAg
IHJldHVybiB0eXBlb2YgTU1KUy5zZGsgPT09IE1NSlMuVFlQRV9VTkRFRklORUQgJiYgKE1NSlMu
c2RrID0gbmV3IE1NU0RLSW50ZXJmYWNlKSwgdHlwZW9mIE1NSlMuZGV2aWNlID09PSBNTUpTLlRZ
UEVfVU5ERUZJTkVEICYmIChNTUpTLmRldmljZSA9IG5ldyBNTURldmljZSksIHR5cGVvZiBNTUpT
Lm1lZGlhID09PSBNTUpTLlRZUEVfVU5ERUZJTkVEICYmIChNTUpTLm1lZGlhID0gbmV3IE1NTWVk
aWEpLCB0eXBlb2YgTU1KUy5ub3RpZmljYXRpb24gPT09IE1NSlMuVFlQRV9VTkRFRklORUQgJiYg
KE1NSlMubm90aWZpY2F0aW9uID0gbmV3IE1NTm90aWZpY2F0aW9uKSwgdHlwZW9mIE1NSlMuaW50
ZXJzdGl0aWFsID09PSBNTUpTLlRZUEVfVU5ERUZJTkVEICYmIChNTUpTLmludGVyc3RpdGlhbCA9
IG5ldyBNTUludGVyc3RpdGlhbCksIHR5cGVvZiBNTUpTLmNhY2hlZFZpZGVvID09PSBNTUpTLlRZ
UEVfVU5ERUZJTkVEICYmIChNTUpTLmNhY2hlZFZpZGVvID0gbmV3IE1NQ2FjaGVkVmlkZW8pLCB0
eXBlb2YgTU1KUy5icmFuZCA9PT0gTU1KUy5UWVBFX1VOREVGSU5FRCAmJiAoTU1KUy5icmFuZCA9
IG5ldyBNTUJyYW5kKSwgdHlwZW9mIE1NSlMuaW5saW5lVmlkZW8gPT09IE1NSlMuVFlQRV9VTkRF
RklORUQgJiYgKE1NSlMuaW5saW5lVmlkZW8gPSBuZXcgTU1JbmxpbmVWaWRlbyksIHR5cGVvZiBN
TUpTLnNvY2lhbCA9PT0gTU1KUy5UWVBFX1VOREVGSU5FRCAmJiAoTU1KUy5zb2NpYWwgPSBuZXcg
TU1Tb2NpYWwpLCB0eXBlb2YgTU1KUy5wYXNzYm9vayA9PT0gTU1KUy5UWVBFX1VOREVGSU5FRCAm
JiAoTU1KUy5wYXNzYm9vayA9IG5ldyBNTVBhc3Nib29rKSwgdHlwZW9mIE1NSlMuY2FsZW5kYXIg
PT09IE1NSlMuVFlQRV9VTkRFRklORUQgJiYgKE1NSlMuY2FsZW5kYXIgPSBuZXcgTU1DYWxlbmRh
ciksIHR5cGVvZiBNTUpTLmJhbm5lciA9PT0gTU1KUy5UWVBFX1VOREVGSU5FRCAmJiAoTU1KUy5i
YW5uZXIgPSBuZXcgTU1CYW5uZXIpLCB0eXBlb2YgTU1KUy5hcHBzdG9yZSA9PT0gTU1KUy5UWVBF
X1VOREVGSU5FRCAmJiAoTU1KUy5hcHBzdG9yZSA9IG5ldyBNTUFwcFN0b3JlKSwgTU1KUy5hcHBT
dG9yZSA9IE1NSlMuYXBwc3RvcmUsIHR5cGVvZiBNTUpTLmxpc3RlbmVyTWFuYWdlciA9PT0gTU1K
Uy5UWVBFX1VOREVGSU5FRCAmJiAoTU1KUy5saXN0ZW5lck1hbmFnZXIgPSBuZXcgTU1MaXN0ZW5l
ck1hbmFnZXIpLCB0eXBlb2YgTU1KUy5zcGVlY2hraXQgPT09IE1NSlMuVFlQRV9VTkRFRklORUQg
JiYgKE1NSlMuc3BlZWNoa2l0ID0gbmV3IE1NU3BlZWNoa2l0KSwgdHlwZW9mIHdpbmRvdy5NTVNE
SyA9PT0gTU1KUy5UWVBFX1VOREVGSU5FRCAmJiAod2luZG93Lk1NU0RLID0gTU1KUyksIHR5cGVv
ZiBNTVNESy5zZGsgPT09IE1NSlMuVFlQRV9VTkRFRklORUQgJiYgKE1NU0RLLnNkayA9IE1NSlMu
c2RrKSwgdHlwZW9mIE1NU0RLLmRldmljZSA9PT0gTU1KUy5UWVBFX1VOREVGSU5FRCAmJiAoTU1T
REsuZGV2aWNlID0gTU1KUy5kZXZpY2UpLCB0eXBlb2YgTU1TREsubWVkaWEgPT09IE1NSlMuVFlQ
RV9VTkRFRklORUQgJiYgKE1NU0RLLm1lZGlhID0gTU1KUy5tZWRpYSksIHR5cGVvZiBNTVNESy5u
b3RpZmljYXRpb24gPT09IE1NSlMuVFlQRV9VTkRFRklORUQgJiYgKE1NU0RLLm5vdGlmaWNhdGlv
biA9IE1NSlMubm90aWZpY2F0aW9uKSwgdHlwZW9mIE1NU0RLLmludGVyc3RpdGlhbCA9PT0gTU1K
Uy5UWVBFX1VOREVGSU5FRCAmJiAoTU1TREsuaW50ZXJzdGl0aWFsID0gTU1KUy5pbnRlcnN0aXRp
YWwpLCB0eXBlb2YgTU1KUy5jYWNoZWRWaWRlbyA9PT0gTU1KUy5UWVBFX1VOREVGSU5FRCAmJiAo
TU1TREsuY2FjaGVkVmlkZW8gPSBNTUpTLmNhY2hlZFZpZGVvKSwgdHlwZW9mIE1NU0RLLmJyYW5k
ID09PSBNTUpTLlRZUEVfVU5ERUZJTkVEICYmIChNTVNESy5icmFuZCA9IE1NSlMuYnJhbmQpLCB0
eXBlb2YgTU1TREsuaW5saW5lVmlkZW8gPT09IE1NSlMuVFlQRV9VTkRFRklORUQgJiYgKE1NU0RL
LmlubGluZVZpZGVvID0gTU1KUy5pbmxpbmVWaWRlbyksIHR5cGVvZiBNTVNESy5zb2NpYWwgPT09
IE1NSlMuVFlQRV9VTkRFRklORUQgJiYgKE1NU0RLLnNvY2lhbCA9IE1NSlMuc29jaWFsKSwgdHlw
ZW9mIE1NU0RLLnBhc3Nib29rID09PSBNTUpTLlRZUEVfVU5ERUZJTkVEICYmIChNTVNESy5wYXNz
Ym9vayA9IE1NSlMucGFzc2Jvb2spLCB0eXBlb2YgTU1TREsuY2FsZW5kYXIgPT09IE1NSlMuVFlQ
RV9VTkRFRklORUQgJiYgKE1NU0RLLmNhbGVuZGFyID0gTU1KUy5jYWxlbmRhciksIHR5cGVvZiBN
TVNESy5iYW5uZXIgPT09IE1NSlMuVFlQRV9VTkRFRklORUQgJiYgKE1NU0RLLmJhbm5lciA9IE1N
SlMuYmFubmVyKSwgdHlwZW9mIE1NU0RLLmFwcHN0b3JlID09PSBNTUpTLlRZUEVfVU5ERUZJTkVE
ICYmIChNTVNESy5hcHBzdG9yZSA9IE1NSlMuYXBwc3RvcmUpLCBNTVNESy5hcHBTdG9yZSA9IE1N
SlMuYXBwc3RvcmUsIHR5cGVvZiBNTVNESy5zcGVlY2hraXQgPT09IE1NSlMuVFlQRV9VTkRFRklO
RUQgJiYgKE1NU0RLLnNwZWVjaGtpdCA9IE1NSlMuc3BlZWNoa2l0KSwgdHlwZW9mIHdpbmRvdy5t
cmFpZCA9PT0gTU1KUy5UWVBFX1VOREVGSU5FRCAmJiAod2luZG93Lm1yYWlkID0gbmV3IE1SQUlE
KSwgdHlwZW9mIHdpbmRvdy5NTSA9PT0gTU1KUy5UWVBFX1VOREVGSU5FRCA/IHdpbmRvdy5NTSA9
IE1NSlMgOiB2b2lkIDANCn0oKSwgTU1KUy51dGlscy5saXN0ZW5Gb3JCcm93c2VyUmVhZHkoZnVu
Y3Rpb24oKSB7DQogICAgICAgIHZhciB0aW1lcjsNCiAgICAgICAgcmV0dXJuIHRpbWVyID0gc2V0
SW50ZXJ2YWwoZnVuY3Rpb24oKSB7DQogICAgICAgICAgICB2YXIgY29tbWFuZCwgZTsNCiAgICAg
ICAgICAgIGlmICgibG9hZGluZyIgIT09IE1NSlMuc2RrLnN0YXRlICYmIE1NSlMuZXhlY3V0aW5n
Q29tbWFuZCA9PT0gITEgJiYgTU1KUy5jb21tYW5kUXVldWUubGVuZ3RoID4gMCAmJiAwID09PSBN
TUpTLmV4ZWN1dGluZ0NvbW1hbmREZWxheSkgew0KICAgICAgICAgICAgICAgIGNvbW1hbmQgPSBN
TUpTLmNvbW1hbmRRdWV1ZS5zaGlmdCgpLCBNTUpTLnV0aWxzLmNvbnNvbGVMb2coInJ1bm5pbmcg
Y29tbWFuZDogIiArIGNvbW1hbmQudXJsKTsNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gY29tbWFuZC5wZXJmb3JtKCkNCiAgICAgICAgICAgICAgICB9
IGNhdGNoIChfZXJyb3IpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGUgPSBfZXJyb3Is
IE1NSlMudXRpbHMuY29uc29sZUxvZygiRmFpbGVkIHRvIHJ1biBjb21tYW5kOiAiICsgZS5tZXNz
YWdlYWxlcnQpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9LCAx
KQ0KICAgIH0oKSkpOw==
</data>

          </attachment>
      

    </bug>

</bugzilla>