[Feature-3452] Schema diff tool with Table, View, Materialized View, Functions and Procedures

Akshay Joshi <[email protected]> Fri, 20 Dec 2019 18:59:37 +0530
Newsgroups gmane.comp.db.postgresql.pgadmin.devel
Message-ID <CANxoLDciD0Cdc0WbMZWhM=zr8q4iwUfWtBUiam0gaD-N7x2pgw@mail.gmail.com>
--000000000000fc4016059a22ab61
Content-Type: multipart/alternative; boundary="000000000000fc4014059a22ab5f"

--000000000000fc4014059a22ab5f
Content-Type: text/plain; charset="UTF-8"

Hi Hackers,

Attached is the implementation of the new feature Schema Diff Tool.
Initial work(backend code to compare the objects) has been done by me and
then most of the task has been completed by *Khushboo Vashi. *Sending the
patch on behalf of her*.*

Currently, this tool only supports Tables, Views, Materialized Views,
Functions and Procedures node.

Please review and test it thoroughly. Suggestions are welcome to improve
the tool.

-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*

--000000000000fc4014059a22ab5f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi Hackers,=C2=A0<div><br></div><div>Attached is the imple=
mentation of the new feature Schema Diff Tool. Initial=C2=A0work(backend co=
de to compare the objects) has been done by me and then most of the task ha=
s been completed by <b>Khushboo Vashi. </b>Sending the patch on behalf of h=
er<b>.</b></div><div><b><br></b></div><div>Currently, this tool only suppor=
ts Tables, Views, Materialized=C2=A0Views, Functions=C2=A0and Procedures no=
de.</div><div><br></div><div>Please review and test it thoroughly. Suggesti=
ons are=C2=A0welcome to improve the tool.</div><div><div><br></div>-- <br><=
div dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signature=
"><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr"><div dir=3D"=
ltr"><div dir=3D"ltr"><div><font color=3D"#3333FF"><b><span style=3D"color:=
rgb(0,0,0);font-family:arial,sans-serif;font-size:13px;border-collapse:coll=
apse">Thanks &amp; Regards</span></b></font></div><div><font color=3D"#3333=
FF"><b><span style=3D"color:rgb(0,0,0);font-family:arial,sans-serif;font-si=
ze:13px;border-collapse:collapse">Akshay Joshi</span></b></font></div><div>=
<font color=3D"#3333FF"><b><span style=3D"color:rgb(0,0,0);font-family:aria=
l,sans-serif;font-size:13px;border-collapse:collapse">Sr. Software Architec=
t<br></span></b></font></div><div><span style=3D"border-collapse:collapse">=
<font color=3D"#000000" face=3D"arial, sans-serif"><b>EnterpriseDB Software=
 India Private Limited</b></font><br></span></div><div><b style=3D"color:rg=
b(51,51,255)"><span style=3D"color:rgb(0,0,0);font-family:arial,sans-serif;=
font-size:13px;border-collapse:collapse">Mobile: +91 976-788-8246</span></b=
><br></div></div></div></div></div></div></div></div></div></div></div>

--000000000000fc4014059a22ab5f--
--000000000000fc4016059a22ab61
Content-Type: application/octet-stream; name="RM_3452.patch"
Content-Disposition: attachment; filename="RM_3452.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_k4e6u3dj0>
X-Attachment-Id: f_k4e6u3dj0

ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL19f
aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19p
bml0X18ucHkKaW5kZXggYTgxM2Y3YTdjLi4yOGNhYjgzM2UgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk
bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL19faW5pdF9fLnB5CisrKyBiL3dlYi9w
Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL19faW5pdF9fLnB5CkBAIC0yOCw2
ICsyOCw3IEBAIGZyb20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgZGIsIFNlcnZlciwgU2VydmVyR3Jv
dXAsIFVzZXIKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZy
b20gcGdhZG1pbi51dGlscy5tYXN0ZXJfcGFzc3dvcmQgaW1wb3J0IGdldF9jcnlwdF9rZXkKIGZy
b20gcGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1wb3J0IENyeXB0S2V5TWlzc2luZworZnJvbSBw
Z2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLm5vZGVfcmVnaXN0cnkgaW1wb3J0IFNjaGVtYURpZmZS
ZWdpc3RyeQogZnJvbSBwc3ljb3BnMiBpbXBvcnQgRXJyb3IgYXMgcHN5Y29wZzJfRXJyb3IsIE9w
ZXJhdGlvbmFsRXJyb3IKIAogCkBAIC0xNjI3LDQgKzE2MjgsNSBAQCBjbGFzcyBTZXJ2ZXJOb2Rl
KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICkKIAogCitTY2hlbWFEaWZmUmVnaXN0cnkoJ3Nl
cnZlcicsIFNlcnZlck5vZGUpCiBTZXJ2ZXJOb2RlLnJlZ2lzdGVyX25vZGVfdmlldyhibHVlcHJp
bnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy
cy9kYXRhYmFzZXMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91
cHMvc2VydmVycy9kYXRhYmFzZXMvX19pbml0X18ucHkKaW5kZXggYzRjYjcxYTExLi40OTMyYTc5
NzEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz
L2RhdGFiYXNlcy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n
cm91cHMvc2VydmVycy9kYXRhYmFzZXMvX19pbml0X18ucHkKQEAgLTMwLDYgKzMwLDggQEAgZnJv
bSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgXAogICAgIG1h
a2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCB1bmF1
dGhvcml6ZWQKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZy
b20gcGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMucXVlcnlfaGlzdG9yeSBpbXBvcnQgUXVl
cnlIaXN0b3J5CisKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5ub2RlX3JlZ2lzdHJ5
IGltcG9ydCBTY2hlbWFEaWZmUmVnaXN0cnkKIGZyb20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgU2Vy
dmVyCiAKIApAQCAtMTExMSw0ICsxMTEzLDUgQEAgY2xhc3MgRGF0YWJhc2VWaWV3KFBHQ2hpbGRO
b2RlVmlldyk6CiAgICAgICAgICkKIAogCitTY2hlbWFEaWZmUmVnaXN0cnkoJ2RhdGFiYXNlJywg
RGF0YWJhc2VWaWV3KQogRGF0YWJhc2VWaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQp
CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k
YXRhYmFzZXMvc2NoZW1hcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy
X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL19faW5pdF9fLnB5CmluZGV4IDcyYzJk
ZjVhOS4uN2QwYjg5NjBmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n
cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdh
ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9fX2lu
aXRfXy5weQpAQCAtMjMsNiArMjMsNyBAQCBmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBv
cnQgUEdDaGlsZE5vZGVWaWV3CiBmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9q
c29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwKICAgICBtYWtlX3Jlc3BvbnNl
IGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUsIGJhZF9yZXF1ZXN0CiBmcm9tIHBnYWRtaW4udXRpbHMu
ZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYu
bm9kZV9yZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlmZlJlZ2lzdHJ5CiAKICIiIgogICAgIFRoaXMg
bW9kdWxlIGlzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHR3byBub2RlcwpAQCAtMTAyMyw1
ICsxMDI0LDYgQEAgSXQgbWF5IGhhdmUgYmVlbiByZW1vdmVkIGJ5IGFub3RoZXIgdXNlci4KICAg
ICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9U1FMLnN0cmlwKCJcbiIpKQogCiAK
K1NjaGVtYURpZmZSZWdpc3RyeSgnc2NoZW1hJywgU2NoZW1hVmlldykKIFNjaGVtYVZpZXcucmVn
aXN0ZXJfbm9kZV92aWV3KHNjaGVtYV9ibHVlcHJpbnQpCiBDYXRhbG9nVmlldy5yZWdpc3Rlcl9u
b2RlX3ZpZXcoY2F0YWxvZ19ibHVlcHJpbnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93
c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL19f
aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0
YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy9fX2luaXRfXy5weQppbmRleCBkZDYwNjQ1NzMuLmZh
YzE4NGZkNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl
cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy9fX2luaXRfXy5weQorKysgYi93ZWIv
cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9j
b2xsYXRpb25zL19faW5pdF9fLnB5CkBAIC0yNSw2ICsyNSw4IEBAIGZyb20gcGdhZG1pbi51dGls
cy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwg
XAogICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgZ29uZQogZnJvbSBwZ2FkbWlu
LnV0aWxzLmNvbXBpbGVfdGVtcGxhdGVfbmFtZSBpbXBvcnQgY29tcGlsZV90ZW1wbGF0ZV9wYXRo
CiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9tIHBnYWRt
aW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9yZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlmZlJlZ2lz
dHJ5Citmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYuY29tcGFyZSBpbXBvcnQgU2NoZW1h
RGlmZk9iamVjdENvbXBhcmUKIAogIyBJZiB3ZSBhcmUgaW4gUHl0aG9uMwogaWYgbm90IElTX1BZ
MjoKQEAgLTkyLDcgKzk0LDcgQEAgY2xhc3MgQ29sbGF0aW9uTW9kdWxlKFNjaGVtYUNoaWxkTW9k
dWxlKToKIGJsdWVwcmludCA9IENvbGxhdGlvbk1vZHVsZShfX25hbWVfXykKIAogCi1jbGFzcyBD
b2xsYXRpb25WaWV3KFBHQ2hpbGROb2RlVmlldyk6CitjbGFzcyBDb2xsYXRpb25WaWV3KFBHQ2hp
bGROb2RlVmlldywgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUpOgogICAgICIiIgogICAgIFRoaXMg
Y2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgcm91dGVzIGZvciBDb2xsYXRpb24g
bm9kZQogCkBAIC0xNDQsNiArMTQ2LDEwIEBAIGNsYXNzIENvbGxhdGlvblZpZXcoUEdDaGlsZE5v
ZGVWaWV3KToKICAgICAqIGRlcGVuZGVudChnaWQsIHNpZCwgZGlkLCBzY2lkKToKICAgICAgIC0g
VGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIGRlcGVuZGVudCBsaXN0IHRvIHNob3cgaXQgaW4g
ZGVwZW5kZW50CiAgICAgICAgIHBhbmUgZm9yIHRoZSBzZWxlY3RlZCBDb2xsYXRpb24gbm9kZS4K
KworICAgICogY29tcGFyZSgqKmt3YXJncyk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBj
b21wYXJlIHRoZSBjb2xsYXRpb24gbm9kZXMgZnJvbSB0d28gZGlmZmVyZW50CisgICAgICAgIHNj
aGVtYXMuCiAgICAgIiIiCiAKICAgICBub2RlX3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBlCkBA
IC0xNzIsNyArMTc4LDggQEAgY2xhc3MgQ29sbGF0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpOgog
ICAgICAgICAnZGVwZW5kZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCiAgICAgICAg
ICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwKICAgICAgICAgJ2dldF9jb2xs
YXRpb25zJzogW3snZ2V0JzogJ2dldF9jb2xsYXRpb24nfSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsnZ2V0JzogJ2dldF9jb2xsYXRpb24nfV0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsnZ2V0JzogJ2dldF9jb2xsYXRpb24nfV0sCisgICAgICAgICdjb21wYXJlJzogW3snZ2V0
JzogJ2NvbXBhcmUnfSwgeydnZXQnOiAnY29tcGFyZSd9XQogICAgIH0pCiAKICAgICBkZWYgY2hl
Y2tfcHJlY29uZGl0aW9uKGYpOgpAQCAtMzE4LDIzICszMjUsMzYgQEAgY2xhc3MgQ29sbGF0aW9u
VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgSlNPTiBvZiBzZWxlY3RlZCBjb2xs
YXRpb24gbm9kZQogICAgICAgICAiIiIKIAorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuX2Zl
dGNoX3Byb3BlcnRpZXMoc2NpZCwgY29pZCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg
ICAgICAgIHJldHVybiByZXMKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAg
ICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQor
CisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0aWVzKHNlbGYsIHNjaWQsIGNvaWQpOgorICAgICAgICAi
IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBmZXRjaCB0aGUgcHJvcGVydGllcyBmb3IgdGhlIHNw
ZWNpZmllZCBvYmplY3QuCisKKyAgICAgICAgOnBhcmFtIHNjaWQ6IFNjaGVtYSBJRAorICAgICAg
ICA6cGFyYW0gY29pZDogQ29sbGF0aW9uIElECisgICAgICAgICIiIgorCiAgICAgICAgIFNRTCA9
IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCddKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c2NpZCwgY29pZD1jb2lkKQogICAgICAgICBz
dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQogCiAgICAgICAgIGlmIG5v
dCBzdGF0dXM6Ci0gICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y
bXNnPXJlcykKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9y
KGVycm9ybXNnPXJlcykKIAogICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6Ci0gICAg
ICAgICAgICByZXR1cm4gZ29uZSgKLSAgICAgICAgICAgICAgICBnZXR0ZXh0KCJDb3VsZCBub3Qg
ZmluZCB0aGUgY29sbGF0aW9uIG9iamVjdCBpbiB0aGUgZGF0YWJhc2UuIikKLSAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgZ29uZShnZXR0ZXh0KCJDb3VsZCBub3QgZmlu
ZCB0aGUgY29sbGF0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJvYmplY3QgaW4gdGhlIGRhdGFiYXNlLiIpKQogCi0gICAgICAgIHJldHVybiBhamF4X3Jlc3Bv
bnNlKAotICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ11bMF0sCi0gICAgICAgICAgICBz
dGF0dXM9MjAwCi0gICAgICAgICkKKyAgICAgICAgcmV0dXJuIFRydWUsIHJlc1sncm93cyddWzBd
CiAKICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGdldF9jb2xsYXRpb24oc2VsZiwg
Z2lkLCBzaWQsIGRpZCwgc2NpZCwgY29pZD1Ob25lKToKQEAgLTc0OCw1ICs3NjgsMzAgQEAgY2xh
c3MgQ29sbGF0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgc3RhdHVzPTIw
MAogICAgICAgICApCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGZldGNoX29i
amVjdHNfdG9fY29tcGFyZShzZWxmLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAg
ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGxpc3Qgb2YgYWxsIHRoZSBjb2xsYXRp
b25zIGZvcgorICAgICAgICBzcGVjaWZpZWQgc2NoZW1hIGlkLgorCisgICAgICAgIDpwYXJhbSBz
aWQ6IFNlcnZlciBJZAorICAgICAgICA6cGFyYW0gZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICA6
cGFyYW0gc2NpZDogU2NoZW1hIElkCisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIiIgorICAg
ICAgICByZXMgPSBkaWN0KCkKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu
KFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ25vZGVzLnNxbCddKSwgc2NpZD1zY2lkKQorICAgICAgICBzdGF0dXMsIHJzZXQgPSBz
ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg
ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisg
ICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgc3RhdHVzLCBkYXRh
ID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhzY2lkLCByb3dbJ29pZCddKQorICAgICAgICAgICAg
aWYgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJlc1tyb3dbJ25hbWUnXV0gPSBkYXRhCisKKyAg
ICAgICAgcmV0dXJuIHJlcworCiAKIENvbGxhdGlvblZpZXcucmVnaXN0ZXJfbm9kZV92aWV3KGJs
dWVwcmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z
ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1p
bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5z
L19faW5pdF9fLnB5CmluZGV4IDIwZTQ3Nzk4Ni4uNmZkY2FjZTg0IDEwMDY0NAotLS0gYS93ZWIv
cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9k
b21haW5zL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw
cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvX19pbml0X18ucHkKQEAgLTI3LDYg
KzI3LDggQEAgZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25z
ZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCBcCiAgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jl
c3BvbnNlLCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuY29tcGlsZV90ZW1wbGF0ZV9uYW1lIGlt
cG9ydCBjb21waWxlX3RlbXBsYXRlX3BhdGgKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1w
b3J0IGdldF9kcml2ZXIKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5ub2RlX3JlZ2lz
dHJ5IGltcG9ydCBTY2hlbWFEaWZmUmVnaXN0cnkKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFf
ZGlmZi5jb21wYXJlIGltcG9ydCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZQogCiAjIElmIHdlIGFy
ZSBpbiBQeXRob24zCiBpZiBub3QgSVNfUFkyOgpAQCAtNzksNyArODEsNyBAQCBjbGFzcyBEb21h
aW5Nb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgogYmx1ZXByaW50ID0gRG9tYWluTW9kdWxlKF9f
bmFtZV9fKQogCiAKLWNsYXNzIERvbWFpblZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJl
YWRlcik6CitjbGFzcyBEb21haW5WaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIs
IFNjaGVtYURpZmZPYmplY3RDb21wYXJlKToKICAgICAiIiIKICAgICBjbGFzcyBEb21haW5WaWV3
CiAKQEAgLTEzOCw2ICsxNDAsMTAgQEAgY2xhc3MgRG9tYWluVmlldyhQR0NoaWxkTm9kZVZpZXcs
IERhdGFUeXBlUmVhZGVyKToKIAogICAgICogdHlwZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5p
ZD1Ob25lKToKICAgICAgIC0gUmV0dXJucyBEYXRhIFR5cGVzLgorCisgICAgKiBjb21wYXJlKCoq
a3dhcmdzKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNvbXBhcmUgdGhlIGRvbWFpbiBu
b2RlcyBmcm9tIHR3byBkaWZmZXJlbnQKKyAgICAgICAgc2NoZW1hcy4KICAgICAiIiIKIAogICAg
IG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKQEAgLTE2OSw3ICsxNzUsOCBAQCBjbGFz
cyBEb21haW5WaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAgICAn
Z2V0X2NvbGxhdGlvbnMnOiBbCiAgICAgICAgICAgICB7J2dldCc6ICdnZXRfY29sbGF0aW9ucyd9
LAogICAgICAgICAgICAgeydnZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfQotICAgICAgICBdCisgICAg
ICAgIF0sCisgICAgICAgICdjb21wYXJlJzogW3snZ2V0JzogJ2NvbXBhcmUnfSwgeydnZXQnOiAn
Y29tcGFyZSd9XQogICAgIH0pCiAKICAgICBkZWYgdmFsaWRhdGVfcmVxdWVzdChmKToKQEAgLTM2
OSwxNSArMzc2LDMxIEBAIGNsYXNzIERvbWFpblZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlw
ZVJlYWRlcik6CiAgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKICAgICAgICAgICAgIGRvaWQ6
IERvbWFpbiBJZAogICAgICAgICAiIiIKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLl9mZXRj
aF9wcm9wZXJ0aWVzKGRpZCwgc2NpZCwgZG9pZCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg
ICAgICAgICAgIHJldHVybiByZXMKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAg
ICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAg
KQogCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0aWVzKHNlbGYsIGRpZCwgc2NpZCwgZG9pZCk6Cisg
ICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmVjdGggdGhlIHBy
b3BlcnRpZXMgb2Ygc3BlY2lmaWVkIG9iamVjdC4KKyAgICAgICAgOnBhcmFtIGRpZDoKKyAgICAg
ICAgOnBhcmFtIHNjaWQ6CisgICAgICAgIDpwYXJhbSBkb2lkOgorICAgICAgICA6cmV0dXJuOgor
ICAgICAgICAiIiIKICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm
LnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNjaWQ9c2NpZCwgZG9pZD1kb2lkKQogICAgICAgICBzdGF0dXMsIHJlcyA9IHNl
bGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQogICAgICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAg
ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCiAK
ICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgotICAgICAgICAgICAgcmV0dXJuIGdv
bmUoZ2V0dGV4dCgiIiIKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgZ29uZShnZXR0ZXh0KCIi
IgogQ291bGQgbm90IGZpbmQgdGhlIGRvbWFpbiBpbiB0aGUgZGF0YWJhc2UuCiBJdCBtYXkgaGF2
ZSBiZWVuIHJlbW92ZWQgYnkgYW5vdGhlciB1c2VyIG9yIG1vdmVkIHRvIGFub3RoZXIgc2NoZW1h
LgogIiIiKSkKQEAgLTM5Myw3ICs0MTYsNyBAQCBJdCBtYXkgaGF2ZSBiZWVuIHJlbW92ZWQgYnkg
YW5vdGhlciB1c2VyIG9yIG1vdmVkIHRvIGFub3RoZXIgc2NoZW1hLgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZG9pZD1kb2lkKQogICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u
bi5leGVjdXRlX2RpY3QoU1FMKQogICAgICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAg
cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCiAKICAgICAg
ICAgZGF0YVsnY29uc3RyYWludHMnXSA9IHJlc1sncm93cyddCiAKQEAgLTQwNiwxMCArNDI5LDcg
QEAgSXQgbWF5IGhhdmUgYmVlbiByZW1vdmVkIGJ5IGFub3RoZXIgdXNlciBvciBtb3ZlZCB0byBh
bm90aGVyIHNjaGVtYS4KICAgICAgICAgaWYgZG9pZCA8PSBzZWxmLm1hbmFnZXIuZGJfaW5mb1tk
aWRdWydkYXRsYXN0c3lzb2lkJ106CiAgICAgICAgICAgICBkYXRhWydzeXNkb21haW4nXSA9IFRy
dWUKIAotICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKLSAgICAgICAgICAgIHJlc3BvbnNl
PWRhdGEsCi0gICAgICAgICAgICBzdGF0dXM9MjAwCi0gICAgICAgICkKKyAgICAgICAgcmV0dXJu
IFRydWUsIGRhdGEKIAogICAgIGRlZiBfcGFyc2VfdHlwZShzZWxmLCBiYXNldHlwZSk6CiAgICAg
ICAgICIiIgpAQCAtNjY0LDcgKzY4NCw3IEBAIEFORCByZWxraW5kICE9ICdjJykpIiIiCiAgICAg
ICAgICkKIAogICAgIEBjaGVja19wcmVjb25kaXRpb24KLSAgICBkZWYgc3FsKHNlbGYsIGdpZCwg
c2lkLCBkaWQsIHNjaWQsIGRvaWQ9Tm9uZSk6CisgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwg
ZGlkLCBzY2lkLCBkb2lkPU5vbmUsIHJldHVybl9hamF4X3Jlc3BvbnNlPVRydWUpOgogICAgICAg
ICAiIiIKICAgICAgICAgUmV0dXJucyB0aGUgU1FMIGZvciB0aGUgRG9tYWluIG9iamVjdC4KIApA
QCAtNjc0LDYgKzY5NCw3IEBAIEFORCByZWxraW5kICE9ICdjJykpIiIiCiAgICAgICAgICAgICBk
aWQ6IERhdGFiYXNlIElkCiAgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKICAgICAgICAgICAg
IGRvaWQ6IERvbWFpbiBJZAorICAgICAgICAgICAgcmV0dXJuX2FqYXhfcmVzcG9uc2U6CiAgICAg
ICAgICIiIgogCiAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50
ZW1wbGF0ZV9wYXRoLApAQCAtNzE2LDYgKzczNyw5IEBAIEFORCByZWxraW5kICE9ICdjJykpIiIi
CiAiIiIuZm9ybWF0KHNlbGYucXRJZGVudChzZWxmLmNvbm4sIGRhdGFbJ2Jhc2Vuc3AnXSwgZGF0
YVsnbmFtZSddKSkKICAgICAgICAgU1FMID0gc3FsX2hlYWRlciArIFNRTAogCisgICAgICAgIGlm
IG5vdCByZXR1cm5fYWpheF9yZXNwb25zZToKKyAgICAgICAgICAgIHJldHVybiBTUUwuc3RyaXAo
J1xuJykKKwogICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNwb25zZT1TUUwuc3RyaXAo
J1xuJykpCiAKICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCkBAIC04NDYsNSArODcwLDQwIEBAIEFO
RCByZWxraW5kICE9ICdjJykpIiIiCiAgICAgICAgICAgICBzdGF0dXM9MjAwCiAgICAgICAgICkK
IAorICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZmV0Y2hfb2JqZWN0c190b19jb21w
YXJlKHNlbGYsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVu
Y3Rpb24gd2lsbCBmZXRjaCB0aGUgbGlzdCBvZiBhbGwgdGhlIGRvbWFpbnMgZm9yCisgICAgICAg
IHNwZWNpZmllZCBzY2hlbWEgaWQuCisKKyAgICAgICAgOnBhcmFtIHNpZDogU2VydmVyIElkCisg
ICAgICAgIDpwYXJhbSBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgIDpwYXJhbSBzY2lkOiBTY2hl
bWEgSWQKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IGRpY3Qo
KQorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVf
cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9kZS5zcWwn
XSksIHNjaWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVf
MmRhcnJheShTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4g
aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBmb3Igcm93IGlu
IHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuX2ZldGNoX3By
b3BlcnRpZXMoZGlkLCBzY2lkLCByb3dbJ29pZCddKQorCisgICAgICAgICAgICBpZiBzdGF0dXM6
CisgICAgICAgICAgICAgICAgaWYgJ2NvbnN0cmFpbnRzJyBpbiBkYXRhIGFuZCBsZW4oZGF0YVsn
Y29uc3RyYWludHMnXSkgPiAwOgorICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBkYXRh
Wydjb25zdHJhaW50cyddOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBSZW1vdmUga2V5cyB0
aGF0IHNob3VsZCBub3QgYmUgdGhlIHBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICMgb2Yg
Y29tcGFyaXNpb24uCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAnY29ub2lkJyBpbiBpdGVt
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ucG9wKCdjb25vaWQnKQorICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgJ25zcG5hbWUnIGluIGl0ZW06CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaXRlbS5wb3AoJ25zcG5hbWUnKQorCisgICAgICAgICAgICAgICAgcmVzW3Jv
d1snbmFtZSddXSA9IGRhdGEKKworICAgICAgICByZXR1cm4gcmVzCisKIAogRG9tYWluVmlldy5y
ZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv
d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1w
bGF0ZXMvZG9tYWlucy9zcWwvOS4yX3BsdXMvZ2V0X2NvbnN0cmFpbnRzLnNxbCBiL3dlYi9wZ2Fk
bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFp
bnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMl9wbHVzL2dldF9jb25zdHJhaW50cy5zcWwKaW5k
ZXggZGY5NTZiZjlhLi42NzZjNWE2ZTIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv
c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVz
L2RvbWFpbnMvc3FsLzkuMl9wbHVzL2dldF9jb25zdHJhaW50cy5zcWwKKysrIGIvd2ViL3BnYWRt
aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlu
cy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4yX3BsdXMvZ2V0X2NvbnN0cmFpbnRzLnNxbApAQCAt
OCw3ICs4LDcgQEAgSk9JTgogSk9JTgogICAgIHBnX25hbWVzcGFjZSBubCBPTiBubC5vaWQ9dHlw
bmFtZXNwYWNlCiBMRUZUIE9VVEVSIEpPSU4KLSAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRl
cy5vYmpvaWQ9dC5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfY29uc3RyYWludCc6OnJlZ2NsYXNz
KQorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBBTkQgZGVzLmNs
YXNzb2lkPSdwZ19jb25zdHJhaW50Jzo6cmVnY2xhc3MpCiBXSEVSRQogICAgIGNvbnR5cGUgPSAn
YycgQU5EIGNvbnR5cGlkID0gIHt7ZG9pZH19OjpvaWQKIE9SREVSIEJZCmRpZmYgLS1naXQgYS93
ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h
cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC9kZWZhdWx0L2dldF9jb25zdHJhaW50cy5z
cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv
c2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC9kZWZhdWx0L2dldF9jb25zdHJh
aW50cy5zcWwKaW5kZXggODk3ZmIyNDc3Li5iOTlmODU1YTggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk
bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFp
bnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsL2RlZmF1bHQvZ2V0X2NvbnN0cmFpbnRzLnNxbAorKysg
Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No
ZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC9kZWZhdWx0L2dldF9jb25zdHJhaW50
cy5zcWwKQEAgLTgsNyArOCw3IEBAIEpPSU4KIEpPSU4KICAgICBwZ19uYW1lc3BhY2UgbmwgT04g
bmwub2lkPXR5cG5hbWVzcGFjZQogTEVGVCBPVVRFUiBKT0lOCi0gICAgcGdfZGVzY3JpcHRpb24g
ZGVzIE9OIChkZXMub2Jqb2lkPXQub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX2NvbnN0cmFpbnQn
OjpyZWdjbGFzcykKKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9Yy5vaWQg
QU5EIGRlcy5jbGFzc29pZD0ncGdfY29uc3RyYWludCc6OnJlZ2NsYXNzKQogV0hFUkUKICAgICBj
b250eXBlID0gJ2MnCiAgICAgQU5EIGNvbnR5cGlkID0gIHt7ZG9pZH19OjpvaWQKZGlmZiAtLWdp
dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z
Y2hlbWFzL2ZvcmVpZ25fdGFibGVzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z
ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvX19p
bml0X18ucHkKaW5kZXggNzU3MDJhNTU3Li4xYmU3NmM5MDYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk
bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp
Z25fdGFibGVzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy
b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL19faW5pdF9fLnB5
CkBAIC0zMiw2ICszMiw4IEBAIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pz
b25fcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgXAogICAgIG1ha2VfcmVzcG9uc2Ug
YXMgYWpheF9yZXNwb25zZSwgZ29uZQogZnJvbSBwZ2FkbWluLnV0aWxzLmNvbXBpbGVfdGVtcGxh
dGVfbmFtZSBpbXBvcnQgY29tcGlsZV90ZW1wbGF0ZV9wYXRoCiBmcm9tIHBnYWRtaW4udXRpbHMu
ZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYu
bm9kZV9yZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlmZlJlZ2lzdHJ5Citmcm9tIHBnYWRtaW4udG9v
bHMuc2NoZW1hX2RpZmYuY29tcGFyZSBpbXBvcnQgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUKIAog
IyBJZiB3ZSBhcmUgaW4gUHl0aG9uMwogaWYgbm90IElTX1BZMjoKQEAgLTkzLDcgKzk1LDggQEAg
Y2xhc3MgRm9yZWlnblRhYmxlTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKIGJsdWVwcmludCA9
IEZvcmVpZ25UYWJsZU1vZHVsZShfX25hbWVfXykKIAogCi1jbGFzcyBGb3JlaWduVGFibGVWaWV3
KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgorY2xhc3MgRm9yZWlnblRhYmxlVmll
dyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyLAorICAgICAgICAgICAgICAgICAgICAg
ICBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgIiIiCiAgICAgY2xhc3MgRm9yZWlnblRh
YmxlVmlldyhQR0NoaWxkTm9kZVZpZXcpCiAKQEAgLTE3NCw2ICsxNzcsOSBAQCBjbGFzcyBGb3Jl
aWduVGFibGVWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAgICogZGVs
ZXRlX3NxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkKToKICAgICAgIC0gUmV0dXJucyBzcWwg
Zm9yIFNjcmlwdAogCisgICAgKiBjb21wYXJlKCoqa3dhcmdzKToKKyAgICAgIC0gVGhpcyBmdW5j
dGlvbiB3aWxsIGNvbXBhcmUgdGhlIGZvcmVpZ24gdGFibGUgbm9kZXMgZnJvbSB0d28gZGlmZmVy
ZW50CisgICAgICAgIHNjaGVtYXMuCiAgICAgIiIiCiAKICAgICBub2RlX3R5cGUgPSBibHVlcHJp
bnQubm9kZV90eXBlCkBAIC0yMTMsNyArMjE5LDggQEAgY2xhc3MgRm9yZWlnblRhYmxlVmlldyhQ
R0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgJ3NlbGVjdF9zcWwnOiBb
eydnZXQnOiAnc2VsZWN0X3NxbCd9XSwKICAgICAgICAgJ2luc2VydF9zcWwnOiBbeydnZXQnOiAn
aW5zZXJ0X3NxbCd9XSwKICAgICAgICAgJ3VwZGF0ZV9zcWwnOiBbeydnZXQnOiAndXBkYXRlX3Nx
bCd9XSwKLSAgICAgICAgJ2RlbGV0ZV9zcWwnOiBbeydnZXQnOiAnZGVsZXRlX3NxbCd9XQorICAg
ICAgICAnZGVsZXRlX3NxbCc6IFt7J2dldCc6ICdkZWxldGVfc3FsJ31dLAorICAgICAgICAnY29t
cGFyZSc6IFt7J2dldCc6ICdjb21wYXJlJ30sIHsnZ2V0JzogJ2NvbXBhcmUnfV0KICAgICB9KQog
CiAgICAgZGVmIHZhbGlkYXRlX3JlcXVlc3QoZik6CkBAIC00NDcsMTEgKzQ1NCw5IEBAIGNsYXNz
IEZvcmVpZ25UYWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAg
ICAgICAgICBzY2lkOiBTY2hlbWEgSWQKICAgICAgICAgICAgIGZvaWQ6IEZvcmVpZ24gVGFibGUg
SWQKICAgICAgICAgIiIiCi0gICAgICAgIGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGdp
ZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQpCi0gICAgICAgIGlmIGRhdGEgaXMgRmFsc2U6Ci0gICAg
ICAgICAgICByZXR1cm4gZ29uZSgKLSAgICAgICAgICAgICAgICBnZXR0ZXh0KCJDb3VsZCBub3Qg
ZmluZCB0aGUgZm9yZWlnbiB0YWJsZSBvbiB0aGUgc2VydmVyLiIpCi0gICAgICAgICAgICApCisg
ICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoZ2lkLCBzaWQsIGRp
ZCwgc2NpZCwgZm9pZCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy
biBkYXRhCiAKICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCiAgICAgICAgICAgICByZXNw
b25zZT1kYXRhLApAQCAtODE0LDExICs4MTksMTAgQEAgY2xhc3MgRm9yZWlnblRhYmxlVmlldyhQ
R0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgICAgIHNjaWQ6IFNjaGVt
YSBJZAogICAgICAgICAgICAgZm9pZDogRm9yZWlnbiBUYWJsZSBJZAogICAgICAgICAiIiIKLSAg
ICAgICAgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwg
Zm9pZCwgaW5oZXJpdHM9VHJ1ZSkKLSAgICAgICAgaWYgZGF0YSBpcyBGYWxzZToKLSAgICAgICAg
ICAgIHJldHVybiBnb25lKAotICAgICAgICAgICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBmaW5k
IHRoZSBmb3JlaWduIHRhYmxlIG9uIHRoZSBzZXJ2ZXIuIikKLSAgICAgICAgICAgICkKKyAgICAg
ICAgc3RhdHVzLCBkYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhnaWQsIHNpZCwgZGlkLCBz
Y2lkLCBmb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluaGVyaXRzPVRydWUpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1
cm4gZGF0YQogCiAgICAgICAgIGNvbF9kYXRhID0gW10KICAgICAgICAgZm9yIGMgaW4gZGF0YVsn
Y29sdW1ucyddOgpAQCAtODkxLDEyICs4OTUsMTAgQEAgY2xhc3MgRm9yZWlnblRhYmxlVmlldyhQ
R0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgICAgIGZvaWQ6IEZvcmVp
Z24gVGFibGUgSWQKICAgICAgICAgIiIiCiAgICAgICAgIGlmIGZvaWQgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBvbGRfZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoZ2lkLCBzaWQsIGRp
ZCwgc2NpZCwgZm9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbmhlcml0cz1UcnVlKQotICAgICAgICAgICAgaWYgb2xkX2RhdGEgaXMgRmFsc2U6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUoCi0gICAgICAgICAgICAgICAgICAgIGdldHRleHQo
IkNvdWxkIG5vdCBmaW5kIHRoZSBmb3JlaWduIHRhYmxlIG9uIHRoZSBzZXJ2ZXIuIikKLSAgICAg
ICAgICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIG9sZF9kYXRhID0gc2VsZi5fZmV0Y2hf
cHJvcGVydGllcyhnaWQsIHNpZCwgZGlkLCBzY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9pZCwgaW5oZXJpdHM9VHJ1ZSkKKyAgICAg
ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIG9sZF9kYXRhCiAK
ICAgICAgICAgICAgICMgUHJlcGFyZSBkaWN0IG9mIGNvbHVtbnMgd2l0aCBrZXkgPSBjb2x1bW4n
cyBhdHRudW0KICAgICAgICAgICAgICMgV2lsbCB1c2UgdGhpcyBpbiB0aGUgdXBkYXRlIHRlbXBs
YXRlIHdoZW4gYW55IGNvbHVtbiBpcwpAQCAtMTA1MSwxMCArMTA1MywxMCBAQCBjbGFzcyBGb3Jl
aWduVGFibGVWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkLCBmb2lkPWZvaWQpCiAgICAgICAgIHN0YXR1
cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgIGlmIG5vdCBzdGF0
dXM6Ci0gICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl
cykKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y
bXNnPXJlcykKIAogICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6Ci0gICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgRmFsc2UKIAogICAgICAg
ICBkYXRhID0gcmVzWydyb3dzJ11bMF0KIApAQCAtMTA2NCw3ICsxMDY2LDcgQEAgY2xhc3MgRm9y
ZWlnblRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb2lkPWZvaWQpCiAgICAgICAgICAgICBzdGF0dXMs
IGFjbHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQogICAgICAgICAgICAgaWYgbm90
IHN0YXR1czoKLSAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy
cm9ybXNnPWFjbHJlcykKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3Nl
cnZlcl9lcnJvcihlcnJvcm1zZz1hY2xyZXMpCiAKICAgICAgICAgICAgICMgR2V0IEZvcm1hdHRl
ZCBQcml2aWxlZ2VzCiAgICAgICAgICAgICBkYXRhLnVwZGF0ZShzZWxmLl9mb3JtYXRfcHJvYWNs
X2Zyb21fZGIoYWNscmVzWydyb3dzJ10pKQpAQCAtMTA4Miw3ICsxMDg0LDcgQEAgY2xhc3MgRm9y
ZWlnblRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X2NvbnN0cmFpbnRzLnNxbCddKSwg
Zm9pZD1mb2lkKQogICAgICAgICBzdGF0dXMsIGNvbnMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0
KFNRTCkKICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJldHVybiBpbnRlcm5h
bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9Y29ucykKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwg
aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPWNvbnMpCiAKICAgICAgICAgaWYgY29ucyBh
bmQgJ3Jvd3MnIGluIGNvbnM6CiAgICAgICAgICAgICBkYXRhWydjb25zdHJhaW50cyddID0gY29u
c1sncm93cyddCkBAIC0xMDkxLDcgKzEwOTMsNyBAQCBjbGFzcyBGb3JlaWduVGFibGVWaWV3KFBH
Q2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdnZXRfY29sdW1ucy5zcWwnXSksIGZvaWQ9Zm9pZCkKICAgICAgICAg
c3RhdHVzLCBjb2xzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgIGlmIG5v
dCBzdGF0dXM6Ci0gICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y
bXNnPWNvbHMpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3NlcnZlcl9lcnJv
cihlcnJvcm1zZz1jb2xzKQogCiAgICAgICAgICMgVGhlIExlbmd0aCBhbmQgdGhlIHByZWNpc2lv
biBvZiB0aGUgRGF0YXR5cGUgc2hvdWxkIGJlIHNlcGFyYXRlZC4KICAgICAgICAgIyBUaGUgRm9y
bWF0IHdlIGdldHRpbmcgZnJvbSBkYXRhYmFzZSBpczogbnVtZXJpYygxLDEpCkBAIC0xMTI4LDEy
ICsxMTMwLDEyIEBAIGNsYXNzIEZvcmVpZ25UYWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRh
VHlwZVJlYWRlcik6CiAgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl
Y3V0ZV9kaWN0KFNRTCkKIAogICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcihl
cnJvcm1zZz1yZXMpCiAKICAgICAgICAgICAgICAgICBpZiAnaW5oZXJpdHMnIGluIHJlc1sncm93
cyddWzBdOgogICAgICAgICAgICAgICAgICAgICBkYXRhWydpbmhlcml0cyddID0gcmVzWydyb3dz
J11bMF1bJ2luaGVyaXRzJ10KIAotICAgICAgICByZXR1cm4gZGF0YQorICAgICAgICByZXR1cm4g
VHJ1ZSwgZGF0YQogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBjb252ZXJ0X3ByZWNpc2lv
bl90b19pbnQodHlwbGVuKToKQEAgLTEyMjIsMTEgKzEyMjQsOSBAQCBjbGFzcyBGb3JlaWduVGFi
bGVWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAgICBSZXR1cm5z
OgogICAgICAgICAgICAgU0VMRUNUIFNjcmlwdCBzcWwgZm9yIHRoZSBvYmplY3QKICAgICAgICAg
IiIiCi0gICAgICAgIGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQs
IHNjaWQsIGZvaWQpCi0gICAgICAgIGlmIGRhdGEgaXMgRmFsc2U6Ci0gICAgICAgICAgICByZXR1
cm4gZ29uZSgKLSAgICAgICAgICAgICAgICBnZXR0ZXh0KCJDb3VsZCBub3QgZmluZCB0aGUgZm9y
ZWlnbiB0YWJsZSBvbiB0aGUgc2VydmVyLiIpCi0gICAgICAgICAgICApCisgICAgICAgIHN0YXR1
cywgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9p
ZCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBkYXRhCiAKICAg
ICAgICAgY29sdW1ucyA9IFtdCiAgICAgICAgIGZvciBjIGluIGRhdGFbJ2NvbHVtbnMnXToKQEAg
LTEyNTksMTEgKzEyNTksOSBAQCBjbGFzcyBGb3JlaWduVGFibGVWaWV3KFBHQ2hpbGROb2RlVmll
dywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICAgSU5TRVJU
IFNjcmlwdCBzcWwgZm9yIHRoZSBvYmplY3QKICAgICAgICAgIiIiCi0gICAgICAgIGRhdGEgPSBz
ZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQpCi0gICAgICAg
IGlmIGRhdGEgaXMgRmFsc2U6Ci0gICAgICAgICAgICByZXR1cm4gZ29uZSgKLSAgICAgICAgICAg
ICAgICBnZXR0ZXh0KCJDb3VsZCBub3QgZmluZCB0aGUgZm9yZWlnbiB0YWJsZSBvbiB0aGUgc2Vy
dmVyLiIpCi0gICAgICAgICAgICApCisgICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuX2ZldGNo
X3Byb3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZCkKKyAgICAgICAgaWYgbm90IHN0
YXR1czoKKyAgICAgICAgICAgIHJldHVybiBkYXRhCiAKICAgICAgICAgY29sdW1ucyA9IFtdCiAg
ICAgICAgIHZhbHVlcyA9IFtdCkBAIC0xMzAxLDExICsxMjk5LDkgQEAgY2xhc3MgRm9yZWlnblRh
YmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgUmV0dXJu
czoKICAgICAgICAgICAgIFVQREFURSBTY3JpcHQgc3FsIGZvciB0aGUgb2JqZWN0CiAgICAgICAg
ICIiIgotICAgICAgICBkYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhnaWQsIHNpZCwgZGlk
LCBzY2lkLCBmb2lkKQotICAgICAgICBpZiBkYXRhIGlzIEZhbHNlOgotICAgICAgICAgICAgcmV0
dXJuIGdvbmUoCi0gICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIGZv
cmVpZ24gdGFibGUgb24gdGhlIHNlcnZlci4iKQotICAgICAgICAgICAgKQorICAgICAgICBzdGF0
dXMsIGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZv
aWQpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gZGF0YQogCiAg
ICAgICAgIGNvbHVtbnMgPSBbXQogCkBAIC0xMzQ2LDExICsxMzQyLDkgQEAgY2xhc3MgRm9yZWln
blRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgUmV0
dXJuczoKICAgICAgICAgICAgIERFTEVURSBTY3JpcHQgc3FsIGZvciB0aGUgb2JqZWN0CiAgICAg
ICAgICIiIgotICAgICAgICBkYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhnaWQsIHNpZCwg
ZGlkLCBzY2lkLCBmb2lkKQotICAgICAgICBpZiBkYXRhIGlzIEZhbHNlOgotICAgICAgICAgICAg
cmV0dXJuIGdvbmUoCi0gICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhl
IGZvcmVpZ24gdGFibGUgb24gdGhlIHNlcnZlci4iKQotICAgICAgICAgICAgKQorICAgICAgICBz
dGF0dXMsIGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQs
IGZvaWQpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gZGF0YQog
CiAgICAgICAgIHNxbCA9IHUiREVMRVRFIEZST00gezB9XG5cdFdIRVJFIDxjb25kaXRpb24+OyIu
Zm9ybWF0KAogICAgICAgICAgICAgc2VsZi5xdElkZW50KHNlbGYuY29ubiwgZGF0YVsnYmFzZW5z
cCddLCBkYXRhWyduYW1lJ10pCkBAIC0xMzU4LDUgKzEzNTIsMzcgQEAgY2xhc3MgRm9yZWlnblRh
YmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKIAogICAgICAgICByZXR1
cm4gYWpheF9yZXNwb25zZShyZXNwb25zZT1zcWwpCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u
CisgICAgZGVmIGZldGNoX29iamVjdHNfdG9fY29tcGFyZShzZWxmLCBzaWQsIGRpZCwgc2NpZCk6
CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGxpc3Qg
b2YgYWxsIHRoZSBmb3JlaWduIHRhYmxlcyBmb3IKKyAgICAgICAgc3BlY2lmaWVkIHNjaGVtYSBp
ZC4KKworICAgICAgICA6cGFyYW0gc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgOnBhcmFtIGRpZDog
RGF0YWJhc2UgSWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICA6cmV0
dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gZGljdCgpCisgICAgICAgIFNRTCA9IHJl
bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub2RlLnNxbCddKSwgc2NpZD1zY2lkKQorICAg
ICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAg
ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy
b3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAg
ICAgICAgICAgc3RhdHVzLCBkYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcygwLCBzaWQsIGRp
ZCwgc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcm93WydvaWQnXSkKKyAgICAgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAgICAgICAgICBp
ZiAnY29uc3RyYWludHMnIGluIGRhdGEgYW5kIGRhdGFbJ2NvbnN0cmFpbnRzJ10gaXMgbm90IE5v
bmUgXAorICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGxlbihkYXRhWydjb25zdHJhaW50cydd
KSA+IDA6CisgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIGRhdGFbJ2NvbnN0cmFpbnRz
J106CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAnY29ub2lkJyBpbiBpdGVtOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ucG9wKCdjb25vaWQnKQorCisgICAgICAgICAgICAg
ICAgcmVzW3Jvd1snbmFtZSddXSA9IGRhdGEKKworICAgICAgICByZXR1cm4gcmVzCisKIAogRm9y
ZWlnblRhYmxlVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEv
d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt
YXMvZnRzX2NvbmZpZ3VyYXRpb25zL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z
ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25z
L19faW5pdF9fLnB5CmluZGV4IDRhYTZjYzJiNC4uNGU2NTk2MWRlIDEwMDY0NAotLS0gYS93ZWIv
cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m
dHNfY29uZmlndXJhdGlvbnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z
ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25z
L19faW5pdF9fLnB5CkBAIC0yNCw2ICsyNCw4IEBAIGZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQg
SVNfUFkyCiBmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNl
LCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwKICAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVz
cG9uc2UsIGdvbmUKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIK
K2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5ub2RlX3JlZ2lzdHJ5IGltcG9ydCBTY2hl
bWFEaWZmUmVnaXN0cnkKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5jb21wYXJlIGlt
cG9ydCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZQogCiAjIElmIHdlIGFyZSBpbiBQeXRob24zCiBp
ZiBub3QgSVNfUFkyOgpAQCAtOTMsNyArOTUsNyBAQCBjbGFzcyBGdHNDb25maWd1cmF0aW9uTW9k
dWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKIGJsdWVwcmludCA9IEZ0c0NvbmZpZ3VyYXRpb25Nb2R1
bGUoX19uYW1lX18pCiAKIAotY2xhc3MgRnRzQ29uZmlndXJhdGlvblZpZXcoUEdDaGlsZE5vZGVW
aWV3KToKK2NsYXNzIEZ0c0NvbmZpZ3VyYXRpb25WaWV3KFBHQ2hpbGROb2RlVmlldywgU2NoZW1h
RGlmZk9iamVjdENvbXBhcmUpOgogICAgICIiIgogICAgIGNsYXNzIEZ0c0NvbmZpZ3VyYXRpb25W
aWV3KFBHQ2hpbGROb2RlVmlldykKIApAQCAtMTY3LDYgKzE2OSw5IEBAIGNsYXNzIEZ0c0NvbmZp
Z3VyYXRpb25WaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgKiBkZXBlbmRlbmNpZXMoc2VsZiwg
Z2lkLCBzaWQsIGRpZCwgc2NpZCwgY2ZnaWQpOgogICAgICAgLSBUaGlzIGZ1bmN0aW9uIGdldCB0
aGUgZGVwZW5kZW5jaWVzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZSBmb3Igbm9kZS4KIAorICAg
ICogY29tcGFyZSgqKmt3YXJncyk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBjb21wYXJl
IHRoZSBmdHMgY29uZmlndXJhdGlvbiBub2RlcyBmcm9tIHR3bworICAgICAgICBkaWZmZXJlbnQg
c2NoZW1hcy4KICAgICAiIiIKIAogICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUK
QEAgLTIwMiw2ICsyMDcsNyBAQCBjbGFzcyBGdHNDb25maWd1cmF0aW9uVmlldyhQR0NoaWxkTm9k
ZVZpZXcpOgogICAgICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdjb3B5Q29uZmlnJ31dLAog
ICAgICAgICAndG9rZW5zJzogW3snZ2V0JzogJ3Rva2Vucyd9LCB7J2dldCc6ICd0b2tlbnMnfV0s
CiAgICAgICAgICdkaWN0aW9uYXJpZXMnOiBbe30sIHsnZ2V0JzogJ2RpY3Rpb25hcmllcyd9XSwK
KyAgICAgICAgJ2NvbXBhcmUnOiBbeydnZXQnOiAnY29tcGFyZSd9LCB7J2dldCc6ICdjb21wYXJl
J31dCiAgICAgfSkKIAogICAgIGRlZiBfaW5pdF8oc2VsZiwgKiprd2FyZ3MpOgpAQCAtMzQzLDcg
KzM0OSwyMiBAQCBjbGFzcyBGdHNDb25maWd1cmF0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpOgog
ICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCiAgICAgICAgICAgICBjZmdpZDogZnRzIENvbmZp
Z3VyYXRpb24gaWQKICAgICAgICAgIiIiCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5fZmV0
Y2hfcHJvcGVydGllcyhzY2lkLCBjZmdpZCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg
ICAgICAgIHJldHVybiByZXMKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAg
ICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQog
CisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0aWVzKHNlbGYsIHNjaWQsIGNmZ2lkKToKKyAgICAgICAg
IiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBmZXRjaCBwcm9wZXJ0eSBvZiBz
cGVjaWZpZWQgb2JqZWN0LgorICAgICAgICA6cGFyYW0gc2NpZDoKKyAgICAgICAgOnBhcmFtIGNm
Z2lkOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKICAgICAgICAgc3FsID0gcmVuZGVy
X3RlbXBsYXRlKAogICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3By
b3BlcnRpZXMuc3FsJ10pLAogICAgICAgICAgICAgc2NpZD1zY2lkLApAQCAtMzUyLDEwICszNzMs
MTAgQEAgY2xhc3MgRnRzQ29uZmlndXJhdGlvblZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAg
ICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKIAogICAgICAgICBp
ZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl
cnJvcm1zZz1yZXMpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3NlcnZlcl9l
cnJvcihlcnJvcm1zZz1yZXMpCiAKICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgot
ICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGdvbmUo
CiAgICAgICAgICAgICAgICAgXygKICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBmaW5k
IHRoZSBGVFMgQ29uZmlndXJhdGlvbiBub2RlIGluIHRoZSAiCiAgICAgICAgICAgICAgICAgICAg
ICJkYXRhYmFzZSBub2RlLiIpCkBAIC0zNzAsMTQgKzM5MSwxMSBAQCBjbGFzcyBGdHNDb25maWd1
cmF0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxm
LmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKIAogICAgICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAg
ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkK
IAogICAgICAgICByZXNbJ3Jvd3MnXVswXVsndG9rZW5zJ10gPSByc2V0Wydyb3dzJ10KIAotICAg
ICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKLSAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93
cyddWzBdLAotICAgICAgICAgICAgc3RhdHVzPTIwMAotICAgICAgICApCisgICAgICAgIHJldHVy
biBUcnVlLCByZXNbJ3Jvd3MnXVswXQogCiAgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRl
ZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CkBAIC05MjcsNSArOTQ1LDMwIEBA
IGNsYXNzIEZ0c0NvbmZpZ3VyYXRpb25WaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAg
ICBzdGF0dXM9MjAwCiAgICAgICAgICkKIAorICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBk
ZWYgZmV0Y2hfb2JqZWN0c190b19jb21wYXJlKHNlbGYsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgbGlzdCBvZiBhbGwg
dGhlIGZ0cyBjb25maWd1cmF0aW9ucyBmb3IKKyAgICAgICAgc3BlY2lmaWVkIHNjaGVtYSBpZC4K
KworICAgICAgICA6cGFyYW0gc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgOnBhcmFtIGRpZDogRGF0
YWJhc2UgSWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICA6cmV0dXJu
OgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gZGljdCgpCisgICAgICAgIFNRTCA9IHJlbmRl
cl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdub2Rlcy5zcWwnXSksIHNjaWQ9c2NpZCkKKyAgICAg
ICAgc3RhdHVzLCBmdHNfY2ZnID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAg
ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy
cm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBmb3Igcm93IGluIGZ0c19jZmdbJ3Jvd3MnXToK
KyAgICAgICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoc2NpZCwg
cm93WydvaWQnXSkKKyAgICAgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXNb
cm93WyduYW1lJ11dID0gZGF0YQorCisgICAgICAgIHJldHVybiByZXMKKwogCiBGdHNDb25maWd1
cmF0aW9uVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2Vi
L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv
ZnRzX2RpY3Rpb25hcmllcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy
X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvX19pbml0
X18ucHkKaW5kZXggZjY5ZjNhZjdmLi4zNTg4ODJjZGIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu
L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0
aW9uYXJpZXMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv
dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy9fX2luaXRfXy5w
eQpAQCAtMjQsNiArMjQsOCBAQCBmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IElTX1BZMgogZnJv
bSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgaW50ZXJuYWxf
c2VydmVyX2Vycm9yLCBcCiAgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBnb25l
CiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9tIHBnYWRt
aW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9yZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlmZlJlZ2lz
dHJ5Citmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYuY29tcGFyZSBpbXBvcnQgU2NoZW1h
RGlmZk9iamVjdENvbXBhcmUKIAogIyBJZiB3ZSBhcmUgaW4gUHl0aG9uMwogaWYgbm90IElTX1BZ
MjoKQEAgLTkxLDcgKzkzLDcgQEAgY2xhc3MgRnRzRGljdGlvbmFyeU1vZHVsZShTY2hlbWFDaGls
ZE1vZHVsZSk6CiBibHVlcHJpbnQgPSBGdHNEaWN0aW9uYXJ5TW9kdWxlKF9fbmFtZV9fKQogCiAK
LWNsYXNzIEZ0c0RpY3Rpb25hcnlWaWV3KFBHQ2hpbGROb2RlVmlldyk6CitjbGFzcyBGdHNEaWN0
aW9uYXJ5VmlldyhQR0NoaWxkTm9kZVZpZXcsIFNjaGVtYURpZmZPYmplY3RDb21wYXJlKToKICAg
ICAiIiIKICAgICBjbGFzcyBGdHNEaWN0aW9uYXJ5VmlldyhQR0NoaWxkTm9kZVZpZXcpCiAKQEAg
LTE1OSw2ICsxNjEsOSBAQCBjbGFzcyBGdHNEaWN0aW9uYXJ5VmlldyhQR0NoaWxkTm9kZVZpZXcp
OgogICAgICogZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRjaWQpOgog
ICAgICAgLSBUaGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW5jaWVzIGFuZCByZXR1cm4gYWph
eCByZXNwb25zZSBmb3Igbm9kZS4KIAorICAgICogY29tcGFyZSgqKmt3YXJncyk6CisgICAgICAt
IFRoaXMgZnVuY3Rpb24gd2lsbCBjb21wYXJlIHRoZSBmdHMgZGljdGlvbmFyaWVzIG5vZGVzIGZy
b20gdHdvCisgICAgICAgIGRpZmZlcmVudCBzY2hlbWFzLgogICAgICIiIgogCiAgICAgbm9kZV90
eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQpAQCAtMTg5LDcgKzE5NCw3IEBAIGNsYXNzIEZ0c0Rp
Y3Rpb25hcnlWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICdkZXBlbmRlbmN5JzogW3sn
Z2V0JzogJ2RlcGVuZGVuY2llcyd9XSwKICAgICAgICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdk
ZXBlbmRlbnRzJ31dLAogICAgICAgICAnZmV0Y2hfdGVtcGxhdGVzJzogW3snZ2V0JzogJ2ZldGNo
X3RlbXBsYXRlcyd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnZ2V0JzogJ2ZldGNo
X3RlbXBsYXRlcyd9XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdmZXRj
aF90ZW1wbGF0ZXMnfV0KICAgICB9KQogCiAgICAgZGVmIF9pbml0XyhzZWxmLCAqKmt3YXJncyk6
CkBAIC0zNTMsNyArMzU4LDIzIEBAIGNsYXNzIEZ0c0RpY3Rpb25hcnlWaWV3KFBHQ2hpbGROb2Rl
Vmlldyk6CiAgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKICAgICAgICAgICAgIGRjaWQ6IGZ0
cyBkaWN0aW9uYXJ5IGlkCiAgICAgICAgICIiIgorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu
X2ZldGNoX3Byb3BlcnRpZXMoc2NpZCwgZGNpZCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg
ICAgICAgICAgIHJldHVybiByZXMKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAg
ICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAg
KQorCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0aWVzKHNlbGYsIHNjaWQsIGRjaWQpOgorICAgICAg
ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZldGNoIHRoZSBwcm9wZXJ0
aWVzIG9mIHNwZWNpZmllZCBvYmplY3QuCiAKKyAgICAgICAgOnBhcmFtIHNjaWQ6CisgICAgICAg
IDpwYXJhbSBkY2lkOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKICAgICAgICAgc3Fs
ID0gcmVuZGVyX3RlbXBsYXRlKAogICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVf
cGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAogICAgICAgICAgICAgc2NpZD1zY2lkLApAQCAtMzYy
LDEwICszODMsMTAgQEAgY2xhc3MgRnRzRGljdGlvbmFyeVZpZXcoUEdDaGlsZE5vZGVWaWV3KToK
ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKIAogICAg
ICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l
cnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3Nl
cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCiAKICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9
PSAwOgotICAgICAgICAgICAgcmV0dXJuIGdvbmUoXygKKyAgICAgICAgICAgIHJldHVybiBGYWxz
ZSwgZ29uZShfKAogICAgICAgICAgICAgICAgICJDb3VsZCBub3QgZmluZCB0aGUgRlRTIERpY3Rp
b25hcnkgbm9kZSBpbiB0aGUgZGF0YWJhc2Ugbm9kZS4iCiAgICAgICAgICAgICApKQogCkBAIC0z
ODIsMTAgKzQwMyw3IEBAIGNsYXNzIEZ0c0RpY3Rpb25hcnlWaWV3KFBHQ2hpbGROb2RlVmlldyk6
CiAgICAgICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ29wdGlvbnMnXQogICAgICAgICAgICAg
KQogCi0gICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAotICAgICAgICAgICAgcmVzcG9uc2U9
cmVzWydyb3dzJ11bMF0sCi0gICAgICAgICAgICBzdGF0dXM9MjAwCi0gICAgICAgICkKKyAgICAg
ICAgcmV0dXJuIFRydWUsIHJlc1sncm93cyddWzBdCiAKICAgICBAY2hlY2tfcHJlY29uZGl0aW9u
CiAgICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKQEAgLTg1NCw1ICs4
NzIsMzAgQEAgY2xhc3MgRnRzRGljdGlvbmFyeVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAg
ICAgICAgIHN0YXR1cz0yMDAKICAgICAgICAgKQogCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor
ICAgIGRlZiBmZXRjaF9vYmplY3RzX3RvX2NvbXBhcmUoc2VsZiwgc2lkLCBkaWQsIHNjaWQpOgor
ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBsaXN0IG9m
IGFsbCB0aGUgZnRzIGRpY3Rpb25hcmllcyBmb3IKKyAgICAgICAgc3BlY2lmaWVkIHNjaGVtYSBp
ZC4KKworICAgICAgICA6cGFyYW0gc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgOnBhcmFtIGRpZDog
RGF0YWJhc2UgSWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICA6cmV0
dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gZGljdCgpCisgICAgICAgIFNRTCA9IHJl
bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub2Rlcy5zcWwnXSksIHNjaWQ9c2NpZCkKKyAg
ICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAg
ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy
cm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAg
ICAgICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoc2NpZCwgcm93
WydvaWQnXSkKKyAgICAgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXNbcm93
WyduYW1lJ11dID0gZGF0YQorCisgICAgICAgIHJldHVybiByZXMKKwogCiBGdHNEaWN0aW9uYXJ5
Vmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt
aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3Bh
cnNlcnMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy
dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2Vycy9fX2luaXRfXy5weQppbmRleCAzODRh
ZTYyZTguLjA5YTQ0NTcyMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf
Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlcnMvX19pbml0X18ucHkK
KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz
L3NjaGVtYXMvZnRzX3BhcnNlcnMvX19pbml0X18ucHkKQEAgLTI0LDYgKzI0LDggQEAgZnJvbSBw
Z2FkbWluLnV0aWxzIGltcG9ydCBJU19QWTIKIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9y
dCBtYWtlX2pzb25fcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgXAogICAgIG1ha2Vf
cmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgZ29uZQogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZl
ciBpbXBvcnQgZ2V0X2RyaXZlcgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLm5vZGVf
cmVnaXN0cnkgaW1wb3J0IFNjaGVtYURpZmZSZWdpc3RyeQorZnJvbSBwZ2FkbWluLnRvb2xzLnNj
aGVtYV9kaWZmLmNvbXBhcmUgaW1wb3J0IFNjaGVtYURpZmZPYmplY3RDb21wYXJlCiAKICMgSWYg
d2UgYXJlIGluIFB5dGhvbjMKIGlmIG5vdCBJU19QWTI6CkBAIC04NCw3ICs4Niw3IEBAIGNsYXNz
IEZ0c1BhcnNlck1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CiBibHVlcHJpbnQgPSBGdHNQYXJz
ZXJNb2R1bGUoX19uYW1lX18pCiAKIAotY2xhc3MgRnRzUGFyc2VyVmlldyhQR0NoaWxkTm9kZVZp
ZXcpOgorY2xhc3MgRnRzUGFyc2VyVmlldyhQR0NoaWxkTm9kZVZpZXcsIFNjaGVtYURpZmZPYmpl
Y3RDb21wYXJlKToKICAgICAiIiIKICAgICBjbGFzcyBGdHNQYXJzZXJWaWV3KFBHQ2hpbGROb2Rl
VmlldykKIApAQCAtMTYxLDYgKzE2Myw5IEBAIGNsYXNzIEZ0c1BhcnNlclZpZXcoUEdDaGlsZE5v
ZGVWaWV3KToKICAgICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVuY2llcyBhbmQg
cmV0dXJuIGFqYXggcmVzcG9uc2UgZm9yCiAgICAgICAgIEZUUyBQYXJzZXIgbm9kZS4KIAorICAg
ICogY29tcGFyZSgqKmt3YXJncyk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBjb21wYXJl
IHRoZSBmdHMgcGFyc2VyIG5vZGVzIGZyb20gdHdvCisgICAgICAgIGRpZmZlcmVudCBzY2hlbWFz
LgogICAgICIiIgogCiAgICAgbm9kZV90eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQpAQCAtMTk4
LDcgKzIwMyw3IEBAIGNsYXNzIEZ0c1BhcnNlclZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAg
ICAgJ2xleHR5cGVfZnVuY3Rpb25zJzogW3snZ2V0JzogJ2xleHR5cGVfZnVuY3Rpb25zJ30sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdsZXh0eXBlX2Z1bmN0aW9ucyd9
XSwKICAgICAgICAgJ2hlYWRsaW5lX2Z1bmN0aW9ucyc6IFt7J2dldCc6ICdoZWFkbGluZV9mdW5j
dGlvbnMnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdoZWFkbGlu
ZV9mdW5jdGlvbnMnfV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydnZXQnOiAn
aGVhZGxpbmVfZnVuY3Rpb25zJ31dCiAgICAgfSkKIAogICAgIGRlZiBfaW5pdF8oc2VsZiwgKipr
d2FyZ3MpOgpAQCAtMzAzLDYgKzMwOCwzMiBAQCBjbGFzcyBGdHNQYXJzZXJWaWV3KFBHQ2hpbGRO
b2RlVmlldyk6CiAKICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIHByb3BlcnRpZXMo
c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgcGlkKToKKyAgICAgICAgIiIiCisKKyAgICAgICAg
OnBhcmFtIGdpZDoKKyAgICAgICAgOnBhcmFtIHNpZDoKKyAgICAgICAgOnBhcmFtIGRpZDoKKyAg
ICAgICAgOnBhcmFtIHNjaWQ6CisgICAgICAgIDpwYXJhbSBwaWQ6CisgICAgICAgIDpyZXR1cm46
CisgICAgICAgICIiIgorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuX2ZldGNoX3Byb3BlcnRp
ZXMoc2NpZCwgcGlkKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJu
IHJlcworCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9u
c2U9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBkZWYgX2Zl
dGNoX3Byb3BlcnRpZXMoc2VsZiwgc2NpZCwgcGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo
aXMgZnVuY3Rpb24gaXMgdXNlZCB0byBmZXRjaCB0aGUgcHJvcGVydGllcyBvZiBzcGVjaWZpZWQg
b2JqZWN0LgorCisgICAgICAgIDpwYXJhbSBzY2lkOgorICAgICAgICA6cGFyYW0gcGlkOgorICAg
ICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRl
KAogICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMu
c3FsJ10pLAogICAgICAgICAgICAgc2NpZD1zY2lkLApAQCAtMzExLDE2ICszNDIsMTMgQEAgY2xh
c3MgRnRzUGFyc2VyVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICBzdGF0dXMsIHJlcyA9
IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQogCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6Ci0g
ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAg
ICAgICAgICAgIHJldHVybiBGYWxzZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl
cykKIAogICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6Ci0gICAgICAgICAgICByZXR1
cm4gZ29uZSgKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgZ29uZSgKICAgICAgICAgICAgICAg
ICBfKCJDb3VsZCBub3QgZmluZCB0aGUgRlRTIFBhcnNlciBub2RlIGluIHRoZSBkYXRhYmFzZSBu
b2RlLiIpKQogCi0gICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAotICAgICAgICAgICAgcmVz
cG9uc2U9cmVzWydyb3dzJ11bMF0sCi0gICAgICAgICAgICBzdGF0dXM9MjAwCi0gICAgICAgICkK
KyAgICAgICAgcmV0dXJuIFRydWUsIHJlc1sncm93cyddWzBdCiAKICAgICBAY2hlY2tfcHJlY29u
ZGl0aW9uCiAgICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKQEAgLTg2
Miw1ICs4OTAsMzAgQEAgY2xhc3MgRnRzUGFyc2VyVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAg
ICAgICAgICAgc3RhdHVzPTIwMAogICAgICAgICApCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u
CisgICAgZGVmIGZldGNoX29iamVjdHNfdG9fY29tcGFyZShzZWxmLCBzaWQsIGRpZCwgc2NpZCk6
CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGxpc3Qg
b2YgYWxsIHRoZSBmdHMgcGFyc2VycyBmb3IKKyAgICAgICAgc3BlY2lmaWVkIHNjaGVtYSBpZC4K
KworICAgICAgICA6cGFyYW0gc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgOnBhcmFtIGRpZDogRGF0
YWJhc2UgSWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICA6cmV0dXJu
OgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gZGljdCgpCisgICAgICAgIFNRTCA9IHJlbmRl
cl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdub2Rlcy5zcWwnXSksIHNjaWQ9c2NpZCkKKyAgICAg
ICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAg
IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y
KGVycm9ybXNnPXJlcykKKworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAg
ICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoc2NpZCwgcm93Wydv
aWQnXSkKKyAgICAgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXNbcm93Wydu
YW1lJ11dID0gZGF0YQorCisgICAgICAgIHJldHVybiByZXMKKwogCiBGdHNQYXJzZXJWaWV3LnJl
Z2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93
c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz
L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv
ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy9fX2luaXRfXy5weQppbmRleCA4ZTk1MmQ5
MTIuLjZiNzYyN2RiMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv
dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy9fX2luaXRfXy5weQor
KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv
c2NoZW1hcy9mdHNfdGVtcGxhdGVzL19faW5pdF9fLnB5CkBAIC0yNCw2ICsyNCw4IEBAIGZyb20g
cGdhZG1pbi51dGlscyBpbXBvcnQgSVNfUFkyCiBmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBv
cnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwKICAgICBtYWtl
X3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKIGZyb20gcGdhZG1pbi51dGlscy5kcml2
ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5ub2Rl
X3JlZ2lzdHJ5IGltcG9ydCBTY2hlbWFEaWZmUmVnaXN0cnkKK2Zyb20gcGdhZG1pbi50b29scy5z
Y2hlbWFfZGlmZi5jb21wYXJlIGltcG9ydCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZQogCiAjIElm
IHdlIGFyZSBpbiBQeXRob24zCiBpZiBub3QgSVNfUFkyOgpAQCAtOTAsNyArOTIsNyBAQCBjbGFz
cyBGdHNUZW1wbGF0ZU1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CiBibHVlcHJpbnQgPSBGdHNU
ZW1wbGF0ZU1vZHVsZShfX25hbWVfXykKIAogCi1jbGFzcyBGdHNUZW1wbGF0ZVZpZXcoUEdDaGls
ZE5vZGVWaWV3KToKK2NsYXNzIEZ0c1RlbXBsYXRlVmlldyhQR0NoaWxkTm9kZVZpZXcsIFNjaGVt
YURpZmZPYmplY3RDb21wYXJlKToKICAgICAiIiIKICAgICBjbGFzcyBGdHNUZW1wbGF0ZVZpZXco
UEdDaGlsZE5vZGVWaWV3KQogCkBAIC0xNTQsNiArMTU2LDkgQEAgY2xhc3MgRnRzVGVtcGxhdGVW
aWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBl
bmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUKICAgICAgIEZUUyBUZW1w
bGF0ZSBub2RlLgogCisgICAgKiBjb21wYXJlKCoqa3dhcmdzKToKKyAgICAgIC0gVGhpcyBmdW5j
dGlvbiB3aWxsIGNvbXBhcmUgdGhlIGZ0cyB0ZW1wbGF0ZSBub2RlcyBmcm9tIHR3bworICAgICAg
ICBkaWZmZXJlbnQgc2NoZW1hcy4KICAgICAiIiIKIAogICAgIG5vZGVfdHlwZSA9IGJsdWVwcmlu
dC5ub2RlX3R5cGUKQEAgLTE4NCw3ICsxODksNyBAQCBjbGFzcyBGdHNUZW1wbGF0ZVZpZXcoUEdD
aGlsZE5vZGVWaWV3KToKICAgICAgICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5j
aWVzJ31dLAogICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCiAg
ICAgICAgICdnZXRfbGV4aXplJzogW3snZ2V0JzogJ2dldF9sZXhpemUnfSwgeydnZXQnOiAnZ2V0
X2xleGl6ZSd9XSwKLSAgICAgICAgJ2dldF9pbml0JzogW3snZ2V0JzogJ2dldF9pbml0J30sIHsn
Z2V0JzogJ2dldF9pbml0J31dLAorICAgICAgICAnZ2V0X2luaXQnOiBbeydnZXQnOiAnZ2V0X2lu
aXQnfSwgeydnZXQnOiAnZ2V0X2luaXQnfV0KICAgICB9KQogCiAgICAgZGVmIF9pbml0XyhzZWxm
LCAqKmt3YXJncyk6CkBAIC0yODEsMjUgKzI4Niw0NyBAQCBjbGFzcyBGdHNUZW1wbGF0ZVZpZXco
UEdDaGlsZE5vZGVWaWV3KToKIAogICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgcHJv
cGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKwor
ICAgICAgICA6cGFyYW0gZ2lkOgorICAgICAgICA6cGFyYW0gc2lkOgorICAgICAgICA6cGFyYW0g
ZGlkOgorICAgICAgICA6cGFyYW0gc2NpZDoKKyAgICAgICAgOnBhcmFtIHRpZDoKKyAgICAgICAg
OnJldHVybjoKKyAgICAgICAgIiIiCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5fZmV0Y2hf
cHJvcGVydGllcyhzY2lkLCB0aWQpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg
ICByZXR1cm4gcmVzCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAg
ICByZXNwb25zZT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAg
IGRlZiBfZmV0Y2hfcHJvcGVydGllcyhzZWxmLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAg
ICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZldGNoIHRoZSBwcm9wZXJ0aWVzIG9mIHNw
ZWNpZmllZCBvYmplY3QuCisKKyAgICAgICAgOnBhcmFtIHNjaWQ6CisgICAgICAgIDpwYXJhbSBw
aWQ6CisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIiIgogICAgICAgICBzcWwgPSByZW5kZXJf
dGVtcGxhdGUoCiAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJv
cGVydGllcy5zcWwnXSksCiAgICAgICAgICAgICBzY2lkPXNjaWQsCiAgICAgICAgICAgICB0aWQ9
dGlkCiAgICAgICAgICkKICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9k
aWN0KHNxbCkKLQogICAgICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgcmV0dXJuIGlu
dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgICAgICByZXR1cm4gRmFs
c2UsIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCiAKICAgICAgICAgaWYgbGVu
KHJlc1sncm93cyddKSA9PSAwOgotICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAg
ICByZXR1cm4gRmFsc2UsIGdvbmUoCiAgICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90
IGZpbmQgdGhlIHJlcXVlc3RlZCBGVFMgdGVtcGxhdGUuIikKICAgICAgICAgICAgICkKIAotICAg
ICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKLSAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93
cyddWzBdLAotICAgICAgICAgICAgc3RhdHVzPTIwMAotICAgICAgICApCisgICAgICAgIHJldHVy
biBUcnVlLCByZXNbJ3Jvd3MnXVswXQogCiAgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRl
ZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CkBAIC03MzQsNSArNzYxLDMwIEBA
IGNsYXNzIEZ0c1RlbXBsYXRlVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgc3Rh
dHVzPTIwMAogICAgICAgICApCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGZl
dGNoX29iamVjdHNfdG9fY29tcGFyZShzZWxmLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIi
IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGxpc3Qgb2YgYWxsIHRoZSBm
dHMgdGVtcGxhdGVzIGZvcgorICAgICAgICBzcGVjaWZpZWQgc2NoZW1hIGlkLgorCisgICAgICAg
IDpwYXJhbSBzaWQ6IFNlcnZlciBJZAorICAgICAgICA6cGFyYW0gZGlkOiBEYXRhYmFzZSBJZAor
ICAgICAgICA6cGFyYW0gc2NpZDogU2NoZW1hIElkCisgICAgICAgIDpyZXR1cm46CisgICAgICAg
ICIiIgorICAgICAgICByZXMgPSBkaWN0KCkKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl
KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ25vZGVzLnNxbCddKSwgc2NpZD1zY2lkKQorICAgICAgICBzdGF0dXMs
IHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgaWYgbm90IHN0
YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9
cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgc3Rh
dHVzLCBkYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhzY2lkLCByb3dbJ29pZCddKQorICAg
ICAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJlc1tyb3dbJ25hbWUnXV0gPSBk
YXRhCisKKyAgICAgICAgcmV0dXJuIHJlcworCiAKIEZ0c1RlbXBsYXRlVmlldy5yZWdpc3Rlcl9u
b2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2
ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL19faW5pdF9fLnB5
IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj
aGVtYXMvZnVuY3Rpb25zL19faW5pdF9fLnB5CmluZGV4IGE2NmUyMjE1ZC4uZWYyZGRhNGYxIDEw
MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh
YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv
d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL19f
aW5pdF9fLnB5CkBAIC0yMSw3ICsyMSw3IEBAIGZyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1w
bGF0ZSwgbWFrZV9yZXNwb25zZSwgcmVxdWVzdCwganNvbmlmeSwgXAogICAgIGN1cnJlbnRfYXBw
CiBmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKIGZyb20gcGdhZG1pbi5icm93c2Vy
LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51dGlscyBpbXBvcnQgXAot
ICAgIFNjaGVtYUNoaWxkTW9kdWxlLCBEYXRhVHlwZVJlYWRlcgorICAgIFNjaGVtYUNoaWxkTW9k
dWxlLCBEYXRhVHlwZVJlYWRlciwgZ2V0X3NjaGVtYQogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy
dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy51dGlscyBpbXBvcnQgXAogICAgIHBhcnNlX3Nl
Y19sYWJlbHNfZnJvbV9kYiwgcGFyc2VfdmFyaWFibGVzX2Zyb21fZGIKIGZyb20gcGdhZG1pbi5i
cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy51dGlscyBpbXBvcnQgcGFyc2VfcHJpdl9mcm9t
X2RiLCBcCkBAIC0zMCw4ICszMCwxMCBAQCBmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBv
cnQgUEdDaGlsZE5vZGVWaWV3CiBmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9q
c29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwKICAgICBtYWtlX3Jlc3BvbnNl
IGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0
IGdldF9kcml2ZXIKLQogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9t
IHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9yZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlm
ZlJlZ2lzdHJ5Citmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYubW9kZWwgaW1wb3J0IFNj
aGVtYURpZmZNb2RlbAorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLmNvbXBhcmUgaW1w
b3J0IFNjaGVtYURpZmZPYmplY3RDb21wYXJlCiAKIAogY2xhc3MgRnVuY3Rpb25Nb2R1bGUoU2No
ZW1hQ2hpbGRNb2R1bGUpOgpAQCAtMTE1LDcgKzExNyw3IEBAIGNsYXNzIEZ1bmN0aW9uTW9kdWxl
KFNjaGVtYUNoaWxkTW9kdWxlKToKIGJsdWVwcmludCA9IEZ1bmN0aW9uTW9kdWxlKF9fbmFtZV9f
KQogCiAKLWNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVy
KToKK2NsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBT
Y2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgIiIiCiAgICAgY2xhc3MgRnVuY3Rpb25WaWV3
KFBHQ2hpbGROb2RlVmlldykKIApAQCAtMTc3LDYgKzE3OSwxMCBAQCBjbGFzcyBGdW5jdGlvblZp
ZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAKICAgICAqIGV4ZWNfc3FsKGdp
ZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQpOgogICAgICAgLSBSZXR1cm5zIHNxbCBmb3IgU2NyaXB0
CisKKyAgICAqIGNvbXBhcmUoKiprd2FyZ3MpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwg
Y29tcGFyZSB0aGUgZnVuY3Rpb24gbm9kZXMgZnJvbSB0d28KKyAgICAgICAgZGlmZmVyZW50IHNj
aGVtYXMuCiAgICAgIiIiCiAKICAgICBub2RlX3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBlCkBA
IC0yMTMsNiArMjE5LDkgQEAgY2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0
YVR5cGVSZWFkZXIpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnZ2V0Jzog
J2dldF9zdXBwb3J0X2Z1bmN0aW9ucyd9XQogICAgIH0pCiAKKyAgICBrZXlzX3RvX2lnbm9yZSA9
IFsnb2lkJywgJ3Byb293bmVyJywgJ3R5cG5zcCcsICd4bWluJywgJ3Byb2tpbmQnLAorICAgICAg
ICAgICAgICAgICAgICAgICdwcm9pc2FnZycsICdwcm9uYW1lc3BhY2UnLCAncHJvYXJnZGVmYXVs
dHMnXQorCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHJlcXVpcmVkX2FyZ3Moc2VsZik6CiAgICAg
ICAgICIiIgpAQCAtNzg5LDcgKzc5OCw3IEBAIGNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9k
ZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgKQogCiAgICAgQGNoZWNrX3ByZWNvbmRp
dGlvbgotICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25l
KToKKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQ9Tm9uZSwg
b25seV9zcWw9RmFsc2UpOgogICAgICAgICAiIiIKICAgICAgICAgRHJvcCB0aGUgRnVuY3Rpb24u
CiAKQEAgLTg0MCw2ICs4NDksOCBAQCBjbGFzcyBGdW5jdGlvblZpZXcoUEdDaGlsZE5vZGVWaWV3
LCBEYXRhVHlwZVJlYWRlcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmNfYXJncz1yZXNbJ3Jvd3MnXVswXVsnZnVuY19hcmdzJ10sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5zcG5hbWU9cmVzWydyb3dzJ11bMF1bJ25zcG5hbWUnXSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzY2FkZT1jYXNjYWRlKQor
ICAgICAgICAgICAgICAgIGlmIG9ubHlfc3FsOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
U1FMCiAgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs
YXIoU1FMKQogICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQpAQCAtOTE0LDcg
KzkyNSw4IEBAIGNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVh
ZGVyKToKICAgICAgICAgICAgICkKIAogICAgIEBjaGVja19wcmVjb25kaXRpb24KLSAgICBkZWYg
c3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQ9Tm9uZSk6CisgICAgZGVmIHNxbChz
ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUsIGRpZmZfc2NoZW1hPU5vbmUsCisg
ICAgICAgICAgICBqc29uX3Jlc3A9VHJ1ZSk6CiAgICAgICAgICIiIgogICAgICAgICBSZXR1cm5z
IHRoZSBTUUwgZm9yIHRoZSBGdW5jdGlvbiBvYmplY3QuCiAKQEAgLTk4OCw2ICsxMDAwLDggQEAg
Y2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAg
ICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf
c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKIAorICAgICAgICAgICAgaWYgZGlmZl9zY2hlbWE6
CisgICAgICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ25zcG5hbWUnXSA9IGRpZmZfc2NoZW1h
CiAgICAgICAgICAgICBuYW1lX3dpdGhfZGVmYXVsdF9hcmdzID0gc2VsZi5xdElkZW50KAogICAg
ICAgICAgICAgICAgIHNlbGYuY29ubiwKICAgICAgICAgICAgICAgICByZXNbJ3Jvd3MnXVswXVsn
bnNwbmFtZSddLApAQCAtMTAzOSw2ICsxMDUzLDEwIEBAIGNsYXNzIEZ1bmN0aW9uVmlldyhQR0No
aWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y
ZXMpCiAKKyAgICAgICAgICAgIGlmIGRpZmZfc2NoZW1hOgorICAgICAgICAgICAgICAgIHJlc1sn
cm93cyddWzBdWyduc3BuYW1lJ10gPSBkaWZmX3NjaGVtYQorICAgICAgICAgICAgICAgIHJlc3Bf
ZGF0YVsncHJvbmFtZXNwYWNlJ10gPSBkaWZmX3NjaGVtYQorCiAgICAgICAgICAgICBuYW1lX3dp
dGhfZGVmYXVsdF9hcmdzID0gc2VsZi5xdElkZW50KAogICAgICAgICAgICAgICAgIHNlbGYuY29u
biwKICAgICAgICAgICAgICAgICByZXNbJ3Jvd3MnXVswXVsnbnNwbmFtZSddLApAQCAtMTA3MCw2
ICsxMDg4LDkgQEAgY2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVS
ZWFkZXIpOgogICAgICAgICAgICAgICAgcmVzcF9kYXRhWydwcm9uYW1lJ10pLAogICAgICAgICAg
ICByZXNwX2RhdGFbJ3Byb2FyZ3R5cGVuYW1lcyddLmxzdHJpcCgnKCcpLnJzdHJpcCgnKScpKQog
CisgICAgICAgIGlmIG5vdCBqc29uX3Jlc3A6CisgICAgICAgICAgICByZXR1cm4gcmUuc3ViKCdc
bnsyLH0nLCAnXG5cbicsIGZ1bmNfZGVmKQorCiAgICAgICAgIFNRTCA9IHNxbF9oZWFkZXIgKyBm
dW5jX2RlZgogICAgICAgICBTUUwgPSByZS5zdWIoJ1xuezIsfScsICdcblxuJywgU1FMKQogCkBA
IC0xNTk2LDcgKzE2MTcsNjYgQEAgY2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2RlVmlldywg
RGF0YVR5cGVSZWFkZXIpOgogICAgICAgICAgICAgc3RhdHVzPTIwMAogICAgICAgICApCiAKKyAg
ICBkZWYgZ2V0X3NxbF9mcm9tX2RpZmYoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgb2lkLCBk
YXRhPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZfc2NoZW1hPU5vbmUsIGRy
b3Bfc3FsPUZhbHNlKToKKyAgICAgICAgc3FsID0gJycKKyAgICAgICAgaWYgZGF0YToKKyAgICAg
ICAgICAgIGlmIGRpZmZfc2NoZW1hOgorICAgICAgICAgICAgICAgIGRhdGFbJ3NjaGVtYSddID0g
ZGlmZl9zY2hlbWEKKyAgICAgICAgICAgIHN0YXR1cywgc3FsID0gc2VsZi5fZ2V0X3NxbChnaWQs
IHNpZCwgZGlkLCBzY2lkLCBkYXRhLCBvaWQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBp
ZiBkcm9wX3NxbDoKKyAgICAgICAgICAgICAgICBzcWwgPSBzZWxmLmRlbGV0ZShnaWQ9Z2lkLCBz
aWQ9c2lkLCBkaWQ9ZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9
c2NpZCwgZm5pZD1vaWQsIG9ubHlfc3FsPVRydWUpCisgICAgICAgICAgICBlbGlmIGRpZmZfc2No
ZW1hOgorICAgICAgICAgICAgICAgIHNxbCA9IHNlbGYuc3FsKGdpZD1naWQsIHNpZD1zaWQsIGRp
ZD1kaWQsIHNjaWQ9c2NpZCwgZm5pZD1vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlmZl9zY2hlbWE9ZGlmZl9zY2hlbWEsIGpzb25fcmVzcD1GYWxzZSkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgc3FsID0gc2VsZi5zcWwoZ2lkPWdpZCwgc2lkPXNpZCwg
ZGlkPWRpZCwgc2NpZD1zY2lkLCBmbmlkPW9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBqc29uX3Jlc3A9RmFsc2UpCisgICAgICAgIHJldHVybiBzcWwKKworICAgIEBjaGVja19w
cmVjb25kaXRpb24KKyAgICBkZWYgZmV0Y2hfb2JqZWN0c190b19jb21wYXJlKHNlbGYsIHNpZCwg
ZGlkLCBzY2lkLCBvaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u
IHdpbGwgZmV0Y2ggdGhlIGxpc3Qgb2YgYWxsIHRoZSBmdW5jdGlvbnMgZm9yCisgICAgICAgIHNw
ZWNpZmllZCBzY2hlbWEgaWQuCisKKyAgICAgICAgOnBhcmFtIHNpZDogU2VydmVyIElkCisgICAg
ICAgIDpwYXJhbSBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgIDpwYXJhbSBzY2lkOiBTY2hlbWEg
SWQKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IGRpY3QoKQor
ICAgICAgICBzZXJ2ZXJfdHlwZSA9IHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZQorICAgICAgICBz
ZXJ2ZXJfdmVyc2lvbiA9IHNlbGYubWFuYWdlci5zdmVyc2lvbgorCisgICAgICAgIGlmIHNlcnZl
cl90eXBlID09ICdwZycgYW5kIHNlbGYuYmx1ZXByaW50Lm1pbl92ZXIgaXMgbm90IE5vbmUgYW5k
IFwKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA8IHNlbGYuYmx1ZXByaW50Lm1pbl92
ZXI6CisgICAgICAgICAgICByZXR1cm4gcmVzCisgICAgICAgIGlmIHNlcnZlcl90eXBlID09ICdw
cGFzJyBhbmQgc2VsZi5ibHVlcHJpbnQubWluX3BwYXN2ZXIgaXMgbm90IE5vbmUgXAorICAgICAg
ICAgICAgICAgIGFuZCBzZXJ2ZXJfdmVyc2lvbiA8IHNlbGYuYmx1ZXByaW50Lm1pbl9wcGFzdmVy
OgorICAgICAgICAgICAgcmV0dXJuIHJlcworCisgICAgICAgIGlmIG5vdCBvaWQ6CisgICAgICAg
ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYuc3FsX3RlbXBsYXRlX3Bh
dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub2RlLnNx
bCddKSwgc2NpZD1zY2lkKQorICAgICAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4
ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg
ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg
ICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgICAgICBkYXRhID0g
c2VsZi5fZmV0Y2hfcHJvcGVydGllcygwLCBzaWQsIGRpZCwgc2NpZCwgcm93WydvaWQnXSkKKyAg
ICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGRhdGEsIGRpY3QpOgorICAgICAgICAgICAgICAg
ICAgICByZXNbcm93WyduYW1lJ11dID0gZGF0YQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoMCwgc2lkLCBkaWQsIHNjaWQsIG9pZCkKKyAg
ICAgICAgICAgIHJlcyA9IGRhdGEKKworICAgICAgICByZXR1cm4gcmVzCisKIAorU2NoZW1hRGlm
ZlJlZ2lzdHJ5KCdmdW5jdGlvbicsIEZ1bmN0aW9uVmlldykKIEZ1bmN0aW9uVmlldy5yZWdpc3Rl
cl9ub2RlX3ZpZXcoYmx1ZXByaW50KQogCiAKQEAgLTE2OTcsNiArMTc3Nyw3IEBAIGNsYXNzIFBy
b2NlZHVyZVZpZXcoRnVuY3Rpb25WaWV3KToKICAgICAgICAgICAgICAgICAncHJvc3JjJ10KIAog
CitTY2hlbWFEaWZmUmVnaXN0cnkoJ3Byb2NlZHVyZScsIFByb2NlZHVyZVZpZXcpCiBQcm9jZWR1
cmVWaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhwcm9jZWR1cmVfYmx1ZXByaW50KQogCiAKQEAgLTE3
OTUsNCArMTg3Niw1IEBAIGNsYXNzIFRyaWdnZXJGdW5jdGlvblZpZXcoRnVuY3Rpb25WaWV3KToK
ICAgICAgICAgICAgICAgICAncHJvc3JjJ10KIAogCitTY2hlbWFEaWZmUmVnaXN0cnkoJ3RyaWdn
ZXJfZnVuY3Rpb24nLCBUcmlnZ2VyRnVuY3Rpb25WaWV3KQogVHJpZ2dlckZ1bmN0aW9uVmlldy5y
ZWdpc3Rlcl9ub2RlX3ZpZXcodHJpZ2dlcl9mdW5jdGlvbl9ibHVlcHJpbnQpCmRpZmYgLS1naXQg
YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No
ZW1hcy9wYWNrYWdlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy
b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL19faW5pdF9fLnB5CmluZGV4
IDcwZjk5ZTkxZS4uNGMwYTVhMzgyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl
cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy9fX2luaXRfXy5w
eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz
ZXMvc2NoZW1hcy9wYWNrYWdlcy9fX2luaXRfXy5weQpAQCAtMjcsNiArMjcsOCBAQCBmcm9tIHBn
YWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBcCiAgICAgbWFrZV9y
ZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwKICAgICBw
cmVjb25kaXRpb25fcmVxdWlyZWQsIGdvbmUKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1w
b3J0IGdldF9kcml2ZXIKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5ub2RlX3JlZ2lz
dHJ5IGltcG9ydCBTY2hlbWFEaWZmUmVnaXN0cnkKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFf
ZGlmZi5jb21wYXJlIGltcG9ydCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZQogCiAjIElmIHdlIGFy
ZSBpbiBQeXRob24zCiBpZiBub3QgSVNfUFkyOgpAQCAtODMsNyArODUsNyBAQCBjbGFzcyBQYWNr
YWdlTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKIGJsdWVwcmludCA9IFBhY2thZ2VNb2R1bGUo
X19uYW1lX18pCiAKIAotY2xhc3MgUGFja2FnZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKK2NsYXNz
IFBhY2thZ2VWaWV3KFBHQ2hpbGROb2RlVmlldywgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUpOgog
ICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKIAogICAgIHBhcmVudF9pZHMgPSBb
CkBAIC0xMTEsNiArMTEzLDggQEAgY2xhc3MgUGFja2FnZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToK
ICAgICAgICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdkZXBlbmRlbnRzJ31dCiAgICAgfSkKIAor
ICAgIGtleXNfdG9faWdub3JlID0gWydvaWQnLCAnc2NoZW1hJywgJ3htaW4nXQorCiAgICAgZGVm
IGNoZWNrX3ByZWNvbmRpdGlvbihhY3Rpb249Tm9uZSk6CiAgICAgICAgICIiIgogICAgICAgICBU
aGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tz
CkBAIC0yOTcsMTYgKzMwMSwzMiBAQCBjbGFzcyBQYWNrYWdlVmlldyhQR0NoaWxkTm9kZVZpZXcp
OgogCiAgICAgICAgIFJldHVybnM6CiAKKyAgICAgICAgIiIiCisgICAgICAgIHN0YXR1cywgcmVz
ID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhzY2lkLCBwa2dpZCkKKyAgICAgICAgaWYgbm90IHN0
YXR1czoKKyAgICAgICAgICAgIHJldHVybiByZXMKKworICAgICAgICByZXR1cm4gYWpheF9yZXNw
b25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAK
KyAgICAgICAgKQorCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0aWVzKHNlbGYsIHNjaWQsIHBrZ2lk
KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBmZXRjaCB0
aGUgcHJvcGVydGllcyBvZiBzcGVjaWZpZWQgb2JqZWN0LgorICAgICAgICA6cGFyYW0gc2NpZDoK
KyAgICAgICAgOnBhcmFtIHBrZ2lkOgorICAgICAgICA6cmV0dXJuOgogICAgICAgICAiIiIKICAg
ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs
ICdwcm9wZXJ0aWVzLnNxbCddKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9
c2NpZCwgcGtnaWQ9cGtnaWQpCiAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1
dGVfZGljdChTUUwpCiAKICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJldHVy
biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAgIGlm
IGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKLSAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlLCBnb25lKAogICAgICAgICAgICAgICAgIGVycm9ybXNnPV8oIkNv
dWxkIG5vdCBmaW5kIHRoZSBwYWNrYWdlIGluIHRoZSBkYXRhYmFzZS4iKQogICAgICAgICAgICAg
KQogCkBAIC0zMjEsMTYgKzM0MSwxMyBAQCBjbGFzcyBQYWNrYWdlVmlldyhQR0NoaWxkTm9kZVZp
ZXcpOgogICAgICAgICBzdGF0dXMsIHJzZXQxID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp
CiAKICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z
ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldDEpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGlu
dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0MSkKIAogICAgICAgICBmb3Igcm93IGlu
IHJzZXQxWydyb3dzJ106CiAgICAgICAgICAgICBwcml2ID0gcGFyc2VfcHJpdl9mcm9tX2RiKHJv
dykKICAgICAgICAgICAgIHJlc1sncm93cyddWzBdLnNldGRlZmF1bHQocm93WydkZWZ0eXBlJ10s
IFtdKS5hcHBlbmQocHJpdikKIAotICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKLSAgICAg
ICAgICAgIHJlc3BvbnNlPXJlc1sncm93cyddWzBdLAotICAgICAgICAgICAgc3RhdHVzPTIwMAot
ICAgICAgICApCisgICAgICAgIHJldHVybiBUcnVlLCByZXNbJ3Jvd3MnXVswXQogCiAgICAgQGNo
ZWNrX3ByZWNvbmRpdGlvbihhY3Rpb249ImNyZWF0ZSIpCiAgICAgZGVmIGNyZWF0ZShzZWxmLCBn
aWQsIHNpZCwgZGlkLCBzY2lkKToKQEAgLTM5Niw3ICs0MTMsNyBAQCBjbGFzcyBQYWNrYWdlVmll
dyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICApCiAKICAgICBAY2hlY2tfcHJlY29uZGl0aW9u
KGFjdGlvbj0nZGVsZXRlJykKLSAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj
aWQsIHBrZ2lkPU5vbmUpOgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2Np
ZCwgcGtnaWQ9Tm9uZSwgb25seV9zcWw9RmFsc2UpOgogICAgICAgICAiIiIKICAgICAgICAgVGhp
cyBmdW5jdGlvbiB3aWxsIGRyb3AgdGhlIG9iamVjdAogCkBAIC00NTMsNiArNDcwLDkgQEAgY2xh
c3MgUGFja2FnZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YT1yZXNbJ3Jvd3MnXVswXSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2FzY2FkZT1jYXNjYWRlKQogCisgICAgICAgICAgICAgICAgaWYg
b25seV9zcWw6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTUUwKKwogICAgICAgICAgICAg
ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKICAgICAgICAg
ICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu
YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKQEAgLTU1Miw3ICs1NzIsOCBAQCBjbGFzcyBQ
YWNrYWdlVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgc3RhdHVzPTIwMAogICAg
ICAgICApCiAKLSAgICBkZWYgZ2V0U1FMKHNlbGYsIGdpZCwgc2lkLCBkaWQsIGRhdGEsIHNjaWQs
IHBrZ2lkPU5vbmUsIHNxbHRhYj1GYWxzZSk6CisgICAgZGVmIGdldFNRTChzZWxmLCBnaWQsIHNp
ZCwgZGlkLCBkYXRhLCBzY2lkLCBwa2dpZD1Ob25lLCBzcWx0YWI9RmFsc2UsCisgICAgICAgICAg
ICAgICBkaWZmX3NjaGVtYT1Ob25lKToKICAgICAgICAgIiIiCiAgICAgICAgIFRoaXMgZnVuY3Rp
b24gd2lsbCBnZW5lcmF0ZSBzcWwgZnJvbSBtb2RlbCBkYXRhLgogCkBAIC02MjEsNiArNjQyLDkg
QEAgY2xhc3MgUGFja2FnZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICBp
ZiBhcmcgbm90IGluIGRhdGE6CiAgICAgICAgICAgICAgICAgICAgIGRhdGFbYXJnXSA9IG9sZF9k
YXRhW2FyZ10KIAorICAgICAgICAgICAgaWYgZGlmZl9zY2hlbWE6CisgICAgICAgICAgICAgICAg
ZGF0YVsnc2NoZW1hJ10gPSBkaWZmX3NjaGVtYQorCiAgICAgICAgICAgICBTUUwgPSByZW5kZXJf
dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3VwZGF0ZS5zcWwnXSksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2Rh
dGEsIGNvbm49c2VsZi5jb25uKQogICAgICAgICAgICAgcmV0dXJuIFNRTCwgZGF0YVsnbmFtZSdd
IGlmICduYW1lJyBpbiBkYXRhIGVsc2Ugb2xkX2RhdGFbJ25hbWUnXQpAQCAtNjM1LDcgKzY1OSw4
IEBAIGNsYXNzIFBhY2thZ2VWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICByZXR1
cm4gU1FMLCBkYXRhWyduYW1lJ10KIAogICAgIEBjaGVja19wcmVjb25kaXRpb24oYWN0aW9uPSJz
cWwiKQotICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgcGtnaWQpOgorICAg
IGRlZiBzcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgcGtnaWQsIGRpZmZfc2NoZW1hPU5v
bmUsCisgICAgICAgICAgICBqc29uX3Jlc3A9VHJ1ZSk6CiAgICAgICAgICIiIgogICAgICAgICBU
aGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIGZvciBzcWwgcGFuZWwKIApAQCAtNjQ1LDYg
KzY3MCw4IEBAIGNsYXNzIFBhY2thZ2VWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAg
ICBkaWQ6IERhdGFiYXNlIElECiAgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKICAgICAgICAg
ICAgIHBrZ2lkOiBQYWNrYWdlIElECisgICAgICAgICAgICBkaWZmX3NjaGVtYTogIFNjaGVtYSBk
aWZmIHRhcmdldCBzY2hlbWEgbmFtZQorICAgICAgICAgICAganNvbl9yZXNwOiBqc29uIHJlc3Bv
bnNlIG9yIHBsYWluIHRleHQgcmVzcG9uc2UKICAgICAgICAgIiIiCiAgICAgICAgIHRyeToKICAg
ICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgKQEAgLTY3NiwxMyArNzAzLDE4IEBAIGNs
YXNzIFBhY2thZ2VWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICAgICAgcmVzWydy
b3dzJ11bMF0uc2V0ZGVmYXVsdChyb3dbJ2RlZnR5cGUnXSwgW10pLmFwcGVuZChwcml2KQogCiAg
ICAgICAgICAgICByZXN1bHQgPSByZXNbJ3Jvd3MnXVswXQotICAgICAgICAgICAgc3FsLCBuYW1l
ID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRpZCwgcmVzdWx0LCBzY2lkLCBwa2dpZCwgVHJ1ZSkK
KyAgICAgICAgICAgIHNxbCwgbmFtZSA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkaWQsIHJlc3Vs
dCwgc2NpZCwgcGtnaWQsIFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWZmX3NjaGVtYSkKICAgICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0
byBlcnJvcgogICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3FsLCAoc3RyLCB1bmljb2Rl
KSk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHNxbAogCiAgICAgICAgICAgICBzcWwgPSBzcWwu
c3RyaXAoJ1xuJykuc3RyaXAoJyAnKQogCisgICAgICAgICAgICAjIFJldHVybiBzcWwgZm9yIHNj
aGVtYSBkaWZmCisgICAgICAgICAgICBpZiBub3QganNvbl9yZXNwOgorICAgICAgICAgICAgICAg
IHJldHVybiBzcWwKKwogICAgICAgICAgICAgc3FsX2hlYWRlciA9IHUiLS0gUGFja2FnZToge31c
blxuLS0gIi5mb3JtYXQoCiAgICAgICAgICAgICAgICAgc2VsZi5xdElkZW50KHNlbGYuY29ubiwg
c2VsZi5zY2hlbWEsIHJlc3VsdFsnbmFtZSddKQogICAgICAgICAgICAgKQpAQCAtNzU2LDUgKzc4
OCw1NCBAQCBjbGFzcyBQYWNrYWdlVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogCiAgICAgICAgIHJl
dHVybiBzcWxbc3RhcnQ6ZW5kXS5zdHJpcCgiXG4iKQogCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv
bihhY3Rpb249ImZldGNoX29iamVjdHNfdG9fY29tcGFyZSIpCisgICAgZGVmIGZldGNoX29iamVj
dHNfdG9fY29tcGFyZShzZWxmLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAg
ICBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGxpc3Qgb2YgYWxsIHRoZSBwYWNrYWdlcyBm
b3IKKyAgICAgICAgc3BlY2lmaWVkIHNjaGVtYSBpZC4KKworICAgICAgICA6cGFyYW0gc2lkOiBT
ZXJ2ZXIgSWQKKyAgICAgICAgOnBhcmFtIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgOnBhcmFt
IHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAgICAg
cmVzID0gZGljdCgpCisgICAgICAgIGlmIHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZSAhPSAncHBh
cyc6CisgICAgICAgICAgICByZXR1cm4gcmVzCisKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs
YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ25vZGVzLnNxbCddKSwgc2NpZD1zY2lkKQorICAgICAgICBzdGF0
dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgaWYgbm90
IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt
c2c9cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAg
c3RhdHVzLCBkYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhzY2lkLCByb3dbJ29pZCddKQor
ICAgICAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJlc1tyb3dbJ25hbWUnXV0g
PSBkYXRhCisKKyAgICAgICAgcmV0dXJuIHJlcworCisgICAgZGVmIGdldF9zcWxfZnJvbV9kaWZm
KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIG9pZCwgZGF0YT1Ob25lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaWZmX3NjaGVtYT1Ob25lLCBkcm9wX3NxbD1GYWxzZSk6CisgICAgICAg
IHNxbCA9ICcnCisgICAgICAgIGlmIGRhdGE6CisgICAgICAgICAgICBpZiBkaWZmX3NjaGVtYToK
KyAgICAgICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IGRpZmZfc2NoZW1hCisgICAgICAgICAg
ICBzdGF0dXMsIHNxbCA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkaWQsIGRhdGEsIHNjaWQsIG9p
ZCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGRyb3Bfc3FsOgorICAgICAgICAgICAg
ICAgIHNxbCA9IHNlbGYuZGVsZXRlKGdpZD1naWQsIHNpZD1zaWQsIGRpZD1kaWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkLCBwa2dpZD1vaWQsIG9ubHlfc3Fs
PVRydWUpCisKKyAgICAgICAgICAgIGVsaWYgZGlmZl9zY2hlbWE6CisgICAgICAgICAgICAgICAg
c3FsID0gc2VsZi5zcWwoZ2lkPWdpZCwgc2lkPXNpZCwgZGlkPWRpZCwgc2NpZD1zY2lkLCBwa2dp
ZD1vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZl9zY2hlbWE9ZGlmZl9z
Y2hlbWEsIGpzb25fcmVzcD1GYWxzZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgc3FsID0gc2VsZi5zcWwoZ2lkPWdpZCwgc2lkPXNpZCwgZGlkPWRpZCwgc2NpZD1zY2lkLCBw
a2dpZD1vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbl9yZXNwPUZhbHNl
KQorICAgICAgICByZXR1cm4gc3FsCisKIAorU2NoZW1hRGlmZlJlZ2lzdHJ5KCdwYWNrYWdlJywg
UGFja2FnZVZpZXcpCiBQYWNrYWdlVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpk
aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0
YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvZWRiZnVuY3MvX19pbml0X18ucHkgYi93ZWIvcGdhZG1p
bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdl
cy9lZGJmdW5jcy9fX2luaXRfXy5weQppbmRleCA0ODA5YmU4NWIuLmY5Nzk5NDQ2OCAxMDA2NDQK
LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz
L3NjaGVtYXMvcGFja2FnZXMvZWRiZnVuY3MvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4v
YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMv
ZWRiZnVuY3MvX19pbml0X18ucHkKQEAgLTE2MSw2ICsxNjEsOCBAQCBjbGFzcyBFZGJGdW5jVmll
dyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAqIGRlcGVuZGVuY2llcyhn
aWQsIHNpZCwgZGlkLCBzY2lkLCBwa2dpZCwgZWRiZm5pZCk6CiAgICAgICAtIFJldHVybnMgdGhl
IGRlcGVuZGVuY2llcyBmb3IgdGhlIEZ1bmN0aW9ucyBvYmplY3QuCiAKKyAgICAqIGNvbXBhcmUo
Kiprd2FyZ3MpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgY29tcGFyZSB0aGUgbm9kZXMg
ZnJvbSB0d28gZGlmZmVyZW50IHNjaGVtYXMuCiAgICAgIiIiCiAKICAgICBub2RlX3R5cGUgPSBi
bHVlcHJpbnQubm9kZV90eXBlCkBAIC0xODQsNyArMTg2LDggQEAgY2xhc3MgRWRiRnVuY1ZpZXco
UEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAgICAgICdub2Rlcyc6IFt7J2dl
dCc6ICdub2Rlcyd9LCB7J2dldCc6ICdub2Rlcyd9XSwKICAgICAgICAgJ3NxbCc6IFt7J2dldCc6
ICdzcWwnfV0sCiAgICAgICAgICdkZXBlbmRlbmN5JzogW3snZ2V0JzogJ2RlcGVuZGVuY2llcyd9
XSwKLSAgICAgICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdkZXBlbmRlbnRzJ31dCisgICAgICAg
ICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAgJ2NvbXBhcmUn
OiBbeydnZXQnOiAnY29tcGFyZSd9LCB7J2dldCc6ICdjb21wYXJlJ31dCiAgICAgfSkKIAogICAg
IGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93
c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy9lZGJ2
YXJzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl
cnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvZWRidmFycy9fX2luaXRfXy5weQppbmRleCBk
ZGNlMTlhNjUuLmU4MjY2MGRkZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2
ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvZWRidmFycy9fX2lu
aXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k
YXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy9lZGJ2YXJzL19faW5pdF9fLnB5CkBAIC0xMzcsNiAr
MTM3LDggQEAgY2xhc3MgRWRiVmFyVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVy
KToKICAgICAqIHNxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBwa2dpZCwgdmFyaWQpOgogICAgICAg
LSBSZXR1cm5zIHRoZSBTUUwgZm9yIHRoZSBGdW5jdGlvbnMgb2JqZWN0LgogCisgICAgKiBjb21w
YXJlKCoqa3dhcmdzKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNvbXBhcmUgdGhlIG5v
ZGVzIGZyb20gdHdvIGRpZmZlcmVudCBzY2hlbWFzLgogICAgICIiIgogCiAgICAgbm9kZV90eXBl
ID0gYmx1ZXByaW50Lm5vZGVfdHlwZQpAQCAtMTU4LDcgKzE2MCw4IEBAIGNsYXNzIEVkYlZhclZp
ZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAgICAgICAgICB7J2dldCc6
ICdsaXN0J30KICAgICAgICAgXSwKICAgICAgICAgJ25vZGVzJzogW3snZ2V0JzogJ25vZGVzJ30s
IHsnZ2V0JzogJ25vZGVzJ31dLAotICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XQorICAg
ICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ2NvbXBhcmUnOiBbeydnZXQn
OiAnY29tcGFyZSd9LCB7J2dldCc6ICdjb21wYXJlJ31dCiAgICAgfSkKIAogICAgIGRlZiBjaGVj
a19wcmVjb25kaXRpb24oZik6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl
cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvX19pbml0X18ucHkg
Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No
ZW1hcy9zZXF1ZW5jZXMvX19pbml0X18ucHkKaW5kZXggZWZmM2Q5ZTg1Li4zZGJlNzQyMmUgMTAw
NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi
YXNlcy9zY2hlbWFzL3NlcXVlbmNlcy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93
c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvX19p
bml0X18ucHkKQEAgLTI0LDYgKzI0LDkgQEAgZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0
IG1ha2VfanNvbl9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCBcCiBmcm9tIHBnYWRt
aW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdf
REVGQVVMVF9EUklWRVIKIGZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgSVNfUFkyCitmcm9tIHBn
YWRtaW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9yZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlmZlJl
Z2lzdHJ5Citmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYuY29tcGFyZSBpbXBvcnQgU2No
ZW1hRGlmZk9iamVjdENvbXBhcmUKKwogIyBJZiB3ZSBhcmUgaW4gUHl0aG9uMwogaWYgbm90IElT
X1BZMjoKICAgICB1bmljb2RlID0gc3RyCkBAIC04OCw3ICs5MSw3IEBAIGNsYXNzIFNlcXVlbmNl
TW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKIGJsdWVwcmludCA9IFNlcXVlbmNlTW9kdWxlKF9f
bmFtZV9fKQogCiAKLWNsYXNzIFNlcXVlbmNlVmlldyhQR0NoaWxkTm9kZVZpZXcpOgorY2xhc3Mg
U2VxdWVuY2VWaWV3KFBHQ2hpbGROb2RlVmlldywgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUpOgog
ICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKIAogICAgIHBhcmVudF9pZHMgPSBb
CkBAIC0yNzMsNiArMjc2LDIzIEBAIGNsYXNzIFNlcXVlbmNlVmlldyhQR0NoaWxkTm9kZVZpZXcp
OgogICAgICAgICBSZXR1cm5zOgogCiAgICAgICAgICIiIgorICAgICAgICBzdGF0dXMsIHJlcyA9
IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoc2NpZCwgc2VpZCkKKyAgICAgICAgaWYgbm90IHN0YXR1
czoKKyAgICAgICAgICAgIHJldHVybiByZXMKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25z
ZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAg
ICAgICAgKQorCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0aWVzKHNlbGYsIHNjaWQsIHNlaWQpOgor
ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZldGNoIHRoZSBw
cm9wZXJ0aWVzIG9mIHRoZSBzcGVjaWZpZWQgb2JqZWN0LgorICAgICAgICA6cGFyYW0gc2NpZDoK
KyAgICAgICAgOnBhcmFtIHNlaWQ6CisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIiIgorCiAg
ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgKICAgICAgICAgICAgICIvIi5qb2luKFtzZWxm
LnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKICAgICAgICAgICAgIHNjaWQ9c2Np
ZCwgc2VpZD1zZWlkCkBAIC0yODAsMTAgKzMwMCwxMSBAQCBjbGFzcyBTZXF1ZW5jZVZpZXcoUEdD
aGlsZE5vZGVWaWV3KToKICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9k
aWN0KFNRTCkKIAogICAgICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgcmV0dXJuIGlu
dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgICAgICByZXR1cm4gRmFs
c2UsIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCiAKICAgICAgICAgaWYgbGVu
KHJlc1sncm93cyddKSA9PSAwOgotICAgICAgICAgICAgcmV0dXJuIGdvbmUoXygiQ291bGQgbm90
IGZpbmQgdGhlIHNlcXVlbmNlIGluIHRoZSBkYXRhYmFzZS4iKSkKKyAgICAgICAgICAgIHJldHVy
biBGYWxzZSwgZ29uZSgKKyAgICAgICAgICAgICAgICBfKCJDb3VsZCBub3QgZmluZCB0aGUgc2Vx
dWVuY2UgaW4gdGhlIGRhdGFiYXNlLiIpKQogCiAgICAgICAgIGZvciByb3cgaW4gcmVzWydyb3dz
J106CiAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCkBAIC0yOTIsNyArMzEzLDcg
QEAgY2xhc3MgU2VxdWVuY2VWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICApCiAg
ICAgICAgICAgICBzdGF0dXMsIHJzZXQxID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAg
ICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h
bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldDEpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldDEpCiAKICAgICAgICAgICAg
IHJvd1snY3VycmVudF92YWx1ZSddID0gcnNldDFbJ3Jvd3MnXVswXVsnbGFzdF92YWx1ZSddCiAg
ICAgICAgICAgICByb3dbJ21pbmltdW0nXSA9IHJzZXQxWydyb3dzJ11bMF1bJ21pbl92YWx1ZSdd
CkBAIC0zMTksNyArMzQwLDcgQEAgY2xhc3MgU2VxdWVuY2VWaWV3KFBHQ2hpbGROb2RlVmlldyk6
CiAgICAgICAgICkKICAgICAgICAgc3RhdHVzLCBkYXRhY2xyZXMgPSBzZWxmLmNvbm4uZXhlY3V0
ZV9kaWN0KFNRTCkKICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJldHVybiBp
bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAgIGZvciBy
b3cgaW4gZGF0YWNscmVzWydyb3dzJ106CiAgICAgICAgICAgICBwcml2ID0gcGFyc2VfcHJpdl9m
cm9tX2RiKHJvdykKQEAgLTMyOCwxMCArMzQ5LDcgQEAgY2xhc3MgU2VxdWVuY2VWaWV3KFBHQ2hp
bGROb2RlVmlldyk6CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJlc1sncm93
cyddWzBdW3Jvd1snZGVmdHlwZSddXSA9IFtwcml2XQogCi0gICAgICAgIHJldHVybiBhamF4X3Jl
c3BvbnNlKAotICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ11bMF0sCi0gICAgICAgICAg
ICBzdGF0dXM9MjAwCi0gICAgICAgICkKKyAgICAgICAgcmV0dXJuIFRydWUsIHJlc1sncm93cydd
WzBdCiAKICAgICBAY2hlY2tfcHJlY29uZGl0aW9uKGFjdGlvbj0iY3JlYXRlIikKICAgICBkZWYg
Y3JlYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgpAQCAtODY5LDUgKzg4NywzMCBAQCBj
bGFzcyBTZXF1ZW5jZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIHN0YXR1cz0y
MDAKICAgICAgICAgKQogCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbihhY3Rpb249ImZldGNoX29i
amVjdHNfdG9fY29tcGFyZSIpCisgICAgZGVmIGZldGNoX29iamVjdHNfdG9fY29tcGFyZShzZWxm
LCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdp
bGwgZmV0Y2ggdGhlIGxpc3Qgb2YgYWxsIHRoZSBzZXF1ZW5jZXMgZm9yCisgICAgICAgIHNwZWNp
ZmllZCBzY2hlbWEgaWQuCisKKyAgICAgICAgOnBhcmFtIHNpZDogU2VydmVyIElkCisgICAgICAg
IDpwYXJhbSBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgIDpwYXJhbSBzY2lkOiBTY2hlbWEgSWQK
KyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IGRpY3QoKQorICAg
ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9kZXMuc3FsJ10pLCBz
Y2lkPXNjaWQpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJy
YXkoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVy
bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgZm9yIHJvdyBpbiByc2V0
Wydyb3dzJ106CisgICAgICAgICAgICBzdGF0dXMsIGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0
aWVzKHNjaWQsIHJvd1snb2lkJ10pCisgICAgICAgICAgICBpZiBzdGF0dXM6CisgICAgICAgICAg
ICAgICAgcmVzW3Jvd1snbmFtZSddXSA9IGRhdGEKKworICAgICAgICByZXR1cm4gcmVzCisKIAog
U2VxdWVuY2VWaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQpCmRpZmYgLS1naXQgYS93
ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h
cy9zeW5vbnltcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw
cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3N5bm9ueW1zL19faW5pdF9fLnB5CmluZGV4IDdm
M2M2ODBkNy4uMTQ1Y2NmNjliIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl
cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnltcy9fX2luaXRfXy5weQor
KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv
c2NoZW1hcy9zeW5vbnltcy9fX2luaXRfXy5weQpAQCAtMjQsNiArMjQsOCBAQCBmcm9tIHBnYWRt
aW4udXRpbHMuYWpheCBpbXBvcnQgcHJlY29uZGl0aW9uX3JlcXVpcmVkCiBmcm9tIHBnYWRtaW4u
dXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVG
QVVMVF9EUklWRVIKIGZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgSVNfUFkyCitmcm9tIHBnYWRt
aW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9yZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlmZlJlZ2lz
dHJ5Citmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYuY29tcGFyZSBpbXBvcnQgU2NoZW1h
RGlmZk9iamVjdENvbXBhcmUKIAogIyBJZiB3ZSBhcmUgaW4gUHl0aG9uMwogaWYgbm90IElTX1BZ
MjoKQEAgLTkxLDcgKzkzLDcgQEAgY2xhc3MgU3lub255bU1vZHVsZShTY2hlbWFDaGlsZE1vZHVs
ZSk6CiBibHVlcHJpbnQgPSBTeW5vbnltTW9kdWxlKF9fbmFtZV9fKQogCiAKLWNsYXNzIFN5bm9u
eW1WaWV3KFBHQ2hpbGROb2RlVmlldyk6CitjbGFzcyBTeW5vbnltVmlldyhQR0NoaWxkTm9kZVZp
ZXcsIFNjaGVtYURpZmZPYmplY3RDb21wYXJlKToKICAgICAiIiIKICAgICBUaGlzIGNsYXNzIGlz
IHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHJvdXRlcyBmb3IgU3lub255bSBub2RlCiAKQEAg
LTE0Myw2ICsxNDUsMTAgQEAgY2xhc3MgU3lub255bVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAg
ICAqIGRlcGVuZGVudChnaWQsIHNpZCwgZGlkLCBzY2lkKToKICAgICAgIC0gVGhpcyBmdW5jdGlv
biB3aWxsIGdlbmVyYXRlIGRlcGVuZGVudCBsaXN0IHRvIHNob3cgaXQgaW4gZGVwZW5kZW50CiAg
ICAgICAgIHBhbmUgZm9yIHRoZSBzZWxlY3RlZCBTeW5vbnltIG5vZGUuCisKKyAgICAqIGNvbXBh
cmUoKiprd2FyZ3MpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgY29tcGFyZSB0aGUgc3lu
b255bXMgbm9kZXMgZnJvbSB0d28KKyAgICAgICAgZGlmZmVyZW50IHNjaGVtYXMuCiAgICAgIiIi
CiAKICAgICBub2RlX3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBlCkBAIC0zODUsMjYgKzM5MSwz
NiBAQCBjbGFzcyBTeW5vbnltVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICBSZXR1cm5z
OgogICAgICAgICAgICAgSlNPTiBvZiBzZWxlY3RlZCBzeW5vbnltIG5vZGUKICAgICAgICAgIiIi
CisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhzY2lkLCBzeWlk
KQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIHJlcwogCisgICAg
ICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9cmVzLAorICAg
ICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBkZWYgX2ZldGNoX3Byb3BlcnRp
ZXMoc2VsZiwgc2NpZCwgc3lpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u
IGlzIHVzZWQgdG8gZmV0Y2ggdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QK
KyAgICAgICAgOnBhcmFtIHNjaWQ6CisgICAgICAgIDpwYXJhbSBzeWlkOgorICAgICAgICA6cmV0
dXJuOgorICAgICAgICAiIiIKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgU1FMID0gcmVuZGVy
X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCddKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQsIHN5aWQ9c3lpZCkKICAgICAgICAg
ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCi0KICAgICAgICAg
ICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl
cl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBpbnRl
cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCi0gICAgICAgICAgICBpZiBsZW4ocmVz
Wydyb3dzJ10pID4gMDoKLSAgICAgICAgICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKLSAg
ICAgICAgICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ11bMF0sCi0gICAgICAgICAgICAg
ICAgICAgIHN0YXR1cz0yMDAKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93
cyddKSA9PSAwOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSwgZ29uZSgKICAgICAgICAg
ICAgICAgICAgICAgZ2V0dGV4dCgnVGhlIHNwZWNpZmllZCBzeW5vbnltIGNvdWxkIG5vdCBiZSBm
b3VuZC4nKQogICAgICAgICAgICAgICAgICkKIAorICAgICAgICAgICAgcmV0dXJuIFRydWUsIHJl
c1sncm93cyddWzBdCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAg
IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQogCkBAIC03MDcs
NSArNzIzLDMzIEBAIGNsYXNzIFN5bm9ueW1WaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAg
ICAgICBzdGF0dXM9MjAwCiAgICAgICAgICkKIAorICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg
ICBkZWYgZmV0Y2hfb2JqZWN0c190b19jb21wYXJlKHNlbGYsIHNpZCwgZGlkLCBzY2lkKToKKyAg
ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgbGlzdCBvZiBh
bGwgdGhlIHN5bm9ueW1zIGZvcgorICAgICAgICBzcGVjaWZpZWQgc2NoZW1hIGlkLgorCisgICAg
ICAgIDpwYXJhbSBzaWQ6IFNlcnZlciBJZAorICAgICAgICA6cGFyYW0gZGlkOiBEYXRhYmFzZSBJ
ZAorICAgICAgICA6cGFyYW0gc2NpZDogU2NoZW1hIElkCisgICAgICAgIDpyZXR1cm46CisgICAg
ICAgICIiIgorICAgICAgICByZXMgPSBkaWN0KCkKKyAgICAgICAgaWYgc2VsZi5tYW5hZ2VyLnNl
cnZlcl90eXBlICE9ICdwcGFzJzoKKyAgICAgICAgICAgIHJldHVybiByZXMKKworICAgICAgICBT
UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcy5zcWwnXSksIHNj
aWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJh
eShTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu
YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBmb3Igcm93IGluIHJzZXRb
J3Jvd3MnXToKKyAgICAgICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRp
ZXMoc2NpZCwgcm93WyduYW1lJ10pCisgICAgICAgICAgICBpZiBzdGF0dXM6CisgICAgICAgICAg
ICAgICAgcmVzW3Jvd1snbmFtZSddXSA9IGRhdGEKKworICAgICAgICByZXR1cm4gcmVzCisKIAog
U3lub255bVZpZXcucmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dl
Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz
L3RhYmxlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z
ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5weQppbmRleCAzZmVmNmUw
MjUuLjE0ZTEzZWQyZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv
dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL19faW5pdF9fLnB5CisrKyBiL3dl
Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz
L3RhYmxlcy9fX2luaXRfXy5weQpAQCAtMTEsOSArMTEsMTEgQEAKIAogaW1wb3J0IHNpbXBsZWpz
b24gYXMganNvbgogaW1wb3J0IHJlCitpbXBvcnQgY29weQoraW1wb3J0IHJhbmRvbQogCiBpbXBv
cnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMgYXMgZGF0
YWJhc2UKLWZyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0ZSwgcmVxdWVzdCwganNvbmlm
eSwgdXJsX2ZvcgorZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCByZXF1ZXN0LCBq
c29uaWZ5LCB1cmxfZm9yLCBjdXJyZW50X2FwcAogZnJvbSBmbGFza19iYWJlbGV4IGltcG9ydCBn
ZXR0ZXh0CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh
c2VzLnNjaGVtYXMudXRpbHMgXAogICAgIGltcG9ydCBTY2hlbWFDaGlsZE1vZHVsZSwgRGF0YVR5
cGVSZWFkZXIsIFZhY3V1bVNldHRpbmdzCkBAIC0yMiw4ICsyNCwxNSBAQCBmcm9tIHBnYWRtaW4u
dXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJy
b3IsIFwKICAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKIGZyb20gLnV0
aWxzIGltcG9ydCBCYXNlVGFibGVWaWV3CiBmcm9tIHBnYWRtaW4udXRpbHMucHJlZmVyZW5jZXMg
aW1wb3J0IFByZWZlcmVuY2VzCitmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9y
ZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlmZlJlZ2lzdHJ5Citmcm9tIHBnYWRtaW4udG9vbHMuc2No
ZW1hX2RpZmYuZGlyZWN0b3J5X2NvbXBhcmUgaW1wb3J0IGNvbXBhcmVfZGljdGlvbmFyaWVzLFwK
KyAgICBkaXJlY3RvcnlfZGlmZgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLm1vZGVs
IGltcG9ydCBTY2hlbWFEaWZmTW9kZWwKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0
IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgogZnJvbSBw
Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRh
Ymxlcy5cCiAgICAgY29uc3RyYWludHMuZm9yZWlnbl9rZXkgaW1wb3J0IHV0aWxzIGFzIGZrZXlf
dXRpbHMKK2Zyb20gLnNjaGVtYV9kaWZmX3V0aWxzIGltcG9ydCBTY2hlbWFEaWZmVGFibGVDb21w
YXJlCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz
LnNjaGVtYXMudGFibGVzLlwKICAgICBjb2x1bW5zIGltcG9ydCB1dGlscyBhcyBjb2x1bW5fdXRp
bHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu
c2NoZW1hcy50YWJsZXMuXApAQCAtMTMyLDcgKzE0MSw4IEBAIGNsYXNzIFRhYmxlTW9kdWxlKFNj
aGVtYUNoaWxkTW9kdWxlKToKIGJsdWVwcmludCA9IFRhYmxlTW9kdWxlKF9fbmFtZV9fKQogCiAK
LWNsYXNzIFRhYmxlVmlldyhCYXNlVGFibGVWaWV3LCBEYXRhVHlwZVJlYWRlciwgVmFjdXVtU2V0
dGluZ3MpOgorY2xhc3MgVGFibGVWaWV3KEJhc2VUYWJsZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBW
YWN1dW1TZXR0aW5ncywKKyAgICAgICAgICAgICAgICBTY2hlbWFEaWZmVGFibGVDb21wYXJlKToK
ICAgICAiIiIKICAgICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHJv
dXRlcyBmb3IgVGFibGUgbm9kZQogCkBAIC0yMjksNiArMjM5LDEwIEBAIGNsYXNzIFRhYmxlVmll
dyhCYXNlVGFibGVWaWV3LCBEYXRhVHlwZVJlYWRlciwgVmFjdXVtU2V0dGluZ3MpOgogCiAgICAg
KiBkZWxldGVfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQpOgogICAgICAgLSBSZXR1cm5z
IHNxbCBmb3IgU2NyaXB0CisKKyAgICAqIGNvbXBhcmUoKiprd2FyZ3MpOgorICAgICAgLSBUaGlz
IGZ1bmN0aW9uIHdpbGwgY29tcGFyZSB0aGUgdGFibGUgbm9kZXMgZnJvbSB0d28KKyAgICAgICAg
ZGlmZmVyZW50IHNjaGVtYXMuCiAiIiIKIAogICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2Rl
X3R5cGUKQEAgLTI3Nyw3ICsyOTEsOCBAQCBjbGFzcyBUYWJsZVZpZXcoQmFzZVRhYmxlVmlldywg
RGF0YVR5cGVSZWFkZXIsIFZhY3V1bVNldHRpbmdzKToKICAgICAgICAgJ2luc2VydF9zcWwnOiBb
eydnZXQnOiAnaW5zZXJ0X3NxbCd9XSwKICAgICAgICAgJ3VwZGF0ZV9zcWwnOiBbeydnZXQnOiAn
dXBkYXRlX3NxbCd9XSwKICAgICAgICAgJ2RlbGV0ZV9zcWwnOiBbeydnZXQnOiAnZGVsZXRlX3Nx
bCd9XSwKLSAgICAgICAgJ2NvdW50X3Jvd3MnOiBbeydnZXQnOiAnY291bnRfcm93cyd9XQorICAg
ICAgICAnY291bnRfcm93cyc6IFt7J2dldCc6ICdjb3VudF9yb3dzJ31dLAorICAgICAgICAnY29t
cGFyZSc6IFt7J2dldCc6ICdjb21wYXJlJ30sIHsnZ2V0JzogJ2NvbXBhcmUnfV0KICAgICB9KQog
CiAgICAgQEJhc2VUYWJsZVZpZXcuY2hlY2tfcHJlY29uZGl0aW9uCkBAIC00NjQsOSArNDc5LDkg
QEAgY2xhc3MgVGFibGVWaWV3KEJhc2VUYWJsZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBWYWN1dW1T
ZXR0aW5ncyk6CiAgICAgICAgICAgLSBzZXR0aW5nCiAgICAgICAgIHZhbHVlcwogICAgICAgICAi
IiIKLSAgICAgICAgcmVzID0gc2VsZi5nZXRfdmFjdXVtX3RhYmxlX3NldHRpbmdzKHNlbGYuY29u
bikKKyAgICAgICAgcmVzID0gc2VsZi5nZXRfdmFjdXVtX3RhYmxlX3NldHRpbmdzKHNlbGYuY29u
biwgc2lkKQogICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKLSAgICAgICAgICAgIHJlc3Bv
bnNlPXJlc1sncm93cyddLAorICAgICAgICAgICAgcmVzcG9uc2U9cmVzLAogICAgICAgICAgICAg
c3RhdHVzPTIwMAogICAgICAgICApCiAKQEAgLTQ4MCw5ICs0OTUsOSBAQCBjbGFzcyBUYWJsZVZp
ZXcoQmFzZVRhYmxlVmlldywgRGF0YVR5cGVSZWFkZXIsIFZhY3V1bVNldHRpbmdzKToKICAgICAg
ICAgICAtIHNldHRpbmcKICAgICAgICAgdmFsdWVzCiAgICAgICAgICIiIgotICAgICAgICByZXMg
PSBzZWxmLmdldF92YWN1dW1fdG9hc3Rfc2V0dGluZ3Moc2VsZi5jb25uKQorICAgICAgICByZXMg
PSBzZWxmLmdldF92YWN1dW1fdG9hc3Rfc2V0dGluZ3Moc2VsZi5jb25uLCBzaWQpCiAgICAgICAg
IHJldHVybiBhamF4X3Jlc3BvbnNlKAotICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10s
CisgICAgICAgICAgICByZXNwb25zZT1yZXMsCiAgICAgICAgICAgICBzdGF0dXM9MjAwCiAgICAg
ICAgICkKIApAQCAtNTgyLDcgKzU5NywyMiBAQCBjbGFzcyBUYWJsZVZpZXcoQmFzZVRhYmxlVmll
dywgRGF0YVR5cGVSZWFkZXIsIFZhY3V1bVNldHRpbmdzKToKICAgICAgICAgUmV0dXJuczoKICAg
ICAgICAgICAgIEpTT04gb2Ygc2VsZWN0ZWQgdGFibGUgbm9kZQogICAgICAgICAiIiIKKyAgICAg
ICAgc3RhdHVzLCByZXMgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGRpZCwgc2NpZCwgdGlkKQor
ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIHJlcwogCisgICAgICAg
IHJldHVybiBzdXBlcihUYWJsZVZpZXcsIHNlbGYpLnByb3BlcnRpZXMoCisgICAgICAgICAgICBn
aWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIHJlcworICAgICAgICApCisKKyAgICBkZWYgX2ZldGNo
X3Byb3BlcnRpZXMoc2VsZiwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAg
VGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZldGNoIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzcGVj
aWZpZWQgb2JqZWN0CisgICAgICAgIDpwYXJhbSBkaWQ6CisgICAgICAgIDpwYXJhbSBzY2lkOgor
ICAgICAgICA6cGFyYW0gdGlkOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKICAgICAg
ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAogICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGFi
bGVfdGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAogICAgICAgICAgICAgZGlkPWRp
ZCwgc2NpZD1zY2lkLCB0aWQ9dGlkLApAQCAtNTkwLDEwICs2MjAsMTEgQEAgY2xhc3MgVGFibGVW
aWV3KEJhc2VUYWJsZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAg
ICAgICkKICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkK
ICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2
ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBpbnRlcm5h
bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3Mn
XSkgPT0gMDoKLSAgICAgICAgICAgIHJldHVybiBnb25lKGdldHRleHQoIlRoZSBzcGVjaWZpZWQg
dGFibGUgY291bGQgbm90IGJlIGZvdW5kLiIpKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBn
b25lKAorICAgICAgICAgICAgICAgIGdldHRleHQoIlRoZSBzcGVjaWZpZWQgdGFibGUgY291bGQg
bm90IGJlIGZvdW5kLiIpKQogCiAgICAgICAgICMgV2Ugd2lsbCBjaGVjayB0aGUgdGhyZXNob2xk
IHNldCBieSB1c2VyIGJlZm9yZSBleGVjdXRpbmcKICAgICAgICAgIyB0aGUgcXVlcnkgYmVjYXVz
ZSB0aGF0IGNhbiBjYXVzZSBwZXJmb3JtYW5jZSBpc3N1ZXMKQEAgLTYyMCw3ICs2NTEsNyBAQCBj
bGFzcyBUYWJsZVZpZXcoQmFzZVRhYmxlVmlldywgRGF0YVR5cGVSZWFkZXIsIFZhY3V1bVNldHRp
bmdzKToKICAgICAgICAgICAgIHN0YXR1cywgY291bnQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs
YXIoU1FMKQogCiAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgICAgIHJl
dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9Y291bnQpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9Y291bnQpCiAK
ICAgICAgICAgICAgIHJlc1sncm93cyddWzBdWydyb3dzX2NudCddID0gY291bnQKIApAQCAtNjI4
LDkgKzY1OSw3IEBAIGNsYXNzIFRhYmxlVmlldyhCYXNlVGFibGVWaWV3LCBEYXRhVHlwZVJlYWRl
ciwgVmFjdXVtU2V0dGluZ3MpOgogICAgICAgICBlbGlmIG5vdCBlc3RpbWF0ZWRfcm93X2NvdW50
OgogICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ3Jvd3NfY250J10gPSBlc3RpbWF0ZWRfcm93
X2NvdW50CiAKLSAgICAgICAgcmV0dXJuIHN1cGVyKFRhYmxlVmlldywgc2VsZikucHJvcGVydGll
cygKLSAgICAgICAgICAgIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgcmVzCi0gICAgICAgICkK
KyAgICAgICAgcmV0dXJuIFRydWUsIHJlcwogCiAgICAgQEJhc2VUYWJsZVZpZXcuY2hlY2tfcHJl
Y29uZGl0aW9uCiAgICAgZGVmIHR5cGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZD1O
b25lLCBjbGlkPU5vbmUpOgpAQCAtMTE2OCw2ICsxMTk3LDcyIEBAIGNsYXNzIFRhYmxlVmlldyhC
YXNlVGFibGVWaWV3LCBEYXRhVHlwZVJlYWRlciwgVmFjdXVtU2V0dGluZ3MpOgogICAgICAgICAi
IiIKICAgICAgICAgcmV0dXJuIEJhc2VUYWJsZVZpZXcucmVzZXRfc3RhdGlzdGljcyhzZWxmLCBz
Y2lkLCB0aWQpCiAKKyAgICBAQmFzZVRhYmxlVmlldy5jaGVja19wcmVjb25kaXRpb24KKyAgICBk
ZWYgZ2V0X3NxbF9mcm9tX3RhYmxlX2RpZmYoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAiIiIK
KyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBzcWwgb24gdGhlIGJhc2lzIHRoZSBk
aWZmZXJlbmNlIG9mIDIgdGFibGVzCisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gZGljdCgp
CisgICAgICAgIHJlcyA9IE5vbmUKKyAgICAgICAgc2lkID0ga3dhcmdzWydzaWQnXQorICAgICAg
ICBkaWQgPSBrd2FyZ3NbJ2RpZCddCisgICAgICAgIHNjaWQgPSBrd2FyZ3NbJ3NjaWQnXQorICAg
ICAgICB0aWQgPSBrd2FyZ3NbJ3RpZCddCisgICAgICAgIGRpZmZfZGF0YSA9IGt3YXJnc1snZGlm
Zl9kYXRhJ10gaWYgJ2RpZmZfZGF0YScgaW4ga3dhcmdzIGVsc2UgTm9uZQorICAgICAgICBqc29u
X3Jlc3AgPSBrd2FyZ3NbJ2pzb25fcmVzcCddIGlmICdqc29uX3Jlc3AnIGluIGt3YXJncyBlbHNl
IFRydWUKKyAgICAgICAgZGlmZl9zY2hlbWEgPSBrd2FyZ3NbJ2RpZmZfc2NoZW1hJ10gaWYgJ2Rp
ZmZfc2NoZW1hJyBpbiBrd2FyZ3MgZWxzZVwKKyAgICAgICAgICAgIE5vbmUKKyAgICAgICAgc2No
ZW1hX2RpZmZfdGFibGUgPSBrd2FyZ3NbJ3NjaGVtYV9kaWZmX3RhYmxlJ10gaWZcCisgICAgICAg
ICAgICAnc2NoZW1hX2RpZmZfdGFibGUnIGluIGt3YXJncyBlbHNlIE5vbmUKKworICAgICAgICBp
ZiBkaWZmX2RhdGE6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fZmV0Y2hfc3FsKGRpZCwgc2Np
ZCwgdGlkLCBkaWZmX2RhdGEsIGpzb25fcmVzcCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IG1haW5fc3FsID0gW10KKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAg
ICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRhYmxlX3RlbXBsYXRlX3BhdGgsICdwcm9wZXJ0
aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICBkaWQ9ZGlkLCBzY2lkPXNjaWQsIHRpZD10aWQs
CisgICAgICAgICAgICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGlj
dChTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVy
biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICBpZiBs
ZW4ocmVzWydyb3dzJ10pID09IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUoZ2V0dGV4
dCgiVGhlIHNwZWNpZmllZCB0YWJsZSBjb3VsZCBub3QgYmUgZm91bmQuIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKSkKKworICAgICAgICAgICAgaWYgc3RhdHVzOgorICAg
ICAgICAgICAgICAgIGRhdGEgPSByZXNbJ3Jvd3MnXVswXQorICAgICAgICAgICAgICAgICMgZGF0
YSA9IHN1cGVyKFRhYmxlVmlldywgc2VsZikucHJvcGVydGllcygKKyAgICAgICAgICAgICAgICAj
ICAgICAwLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCByZXMsIEZhbHNlCisgICAgICAgICAgICAgICAg
IyApCisKKyAgICAgICAgICAgIGlmIGRpZmZfc2NoZW1hOgorICAgICAgICAgICAgICAgIGRhdGFb
J3NjaGVtYSddID0gZGlmZl9zY2hlbWEKKworICAgICAgICAgICAgaWYgc2NoZW1hX2RpZmZfdGFi
bGU6CisgICAgICAgICAgICAgICAgZGF0YVsnb3JpZ19uYW1lJ10gPSBkYXRhWyduYW1lJ10KKyAg
ICAgICAgICAgICAgICBkYXRhWyduYW1lJ10gPSAnc2NoZW1hX2RpZmZfdGVtcF97MH0nLmZvcm1h
dCgKKyAgICAgICAgICAgICAgICAgICAgcmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCisKKyAg
ICAgICAgICAgICAgICBzcWwsIHBhcnRpdGlvbl9zcWwgPSBCYXNlVGFibGVWaWV3LmdldF9yZXZl
cnNlX2VuZ2luZWVyZWRfc3FsKAorICAgICAgICAgICAgICAgICAgICBzZWxmLCBkaWQsIHNjaWQs
IHRpZCwgbWFpbl9zcWwsIGRhdGEsIGpzb25fcmVzcCwKKyAgICAgICAgICAgICAgICAgICAgZGlm
Zl9wYXJ0aXRpb25fc3FsPVRydWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IHNxbCwgcGFydGl0aW9uX3NxbCA9IEJhc2VUYWJsZVZpZXcuZ2V0X3JldmVyc2VfZW5naW5lZXJl
ZF9zcWwoCisgICAgICAgICAgICAgICAgICAgIHNlbGYsIGRpZCwgc2NpZCwgdGlkLCBtYWluX3Nx
bCwgZGF0YSwganNvbl9yZXNwKQorCisgICAgICAgICAgICBpZiBzY2hlbWFfZGlmZl90YWJsZToK
KyAgICAgICAgICAgICAgICAjIElmIHBhcnRpdGlvbiB0YWJsZXMgaGF2ZSBkaWZmZXJlbnQgcGFy
dGl0aW9ucworICAgICAgICAgICAgICAgIHNxbCArPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAg
ICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRhYmxlX3RlbXBsYXRlX3BhdGgsICdzY2hlbWFf
ZGlmZi5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uLCBkYXRhPWRh
dGEsIHBhcnRpdGlvbl9zcWw9cGFydGl0aW9uX3NxbAorICAgICAgICAgICAgICAgICkKKworICAg
ICAgICAgICAgcmV0dXJuIHNxbAorCiAgICAgQEJhc2VUYWJsZVZpZXcuY2hlY2tfcHJlY29uZGl0
aW9uCiAgICAgZGVmIG1zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkPU5vbmUpOgog
ICAgICAgICAiIiIKQEAgLTExODEsNyArMTI3Niw3IEBAIGNsYXNzIFRhYmxlVmlldyhCYXNlVGFi
bGVWaWV3LCBEYXRhVHlwZVJlYWRlciwgVmFjdXVtU2V0dGluZ3MpOgogICAgICAgICAgICB0aWQ6
IFRhYmxlIElECiAgICAgICAgICIiIgogICAgICAgICBkYXRhID0gZGljdCgpCi0gICAgICAgIHJl
cyA9IE5vbmUKKyAgICAgICAgU1FMID0gJycKICAgICAgICAgZm9yIGssIHYgaW4gcmVxdWVzdC5h
cmdzLml0ZW1zKCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgIyBjb21tZW50
cyBzaG91bGQgYmUgdGFrZW4gYXMgaXMgYmVjYXVzZSBpZiB1c2VyIGVudGVycyBhCkBAIC0xMTkz
LDYgKzEyODgsMTEgQEAgY2xhc3MgVGFibGVWaWV3KEJhc2VUYWJsZVZpZXcsIERhdGFUeXBlUmVh
ZGVyLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5
cGVFcnJvciwgS2V5RXJyb3IpOgogICAgICAgICAgICAgICAgIGRhdGFba10gPSB2CiAKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2ZldGNoX3NxbChkaWQsIHNjaWQsIHRpZCwgZGF0YSkKKworICAgIGRl
ZiBfZmV0Y2hfc3FsKHNlbGYsIGRpZCwgc2NpZCwgdGlkLCBkYXRhLCBqc29uX3Jlc3A9VHJ1ZSk6
CisgICAgICAgIHJlcyA9IE5vbmUKKwogICAgICAgICBpZiB0aWQgaXMgbm90IE5vbmU6CiAgICAg
ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCiAgICAgICAgICAgICAgICAgIi8iLmpvaW4o
W3NlbGYudGFibGVfdGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLApAQCAtMTIwMSwx
MyArMTMwMSwxOCBAQCBjbGFzcyBUYWJsZVZpZXcoQmFzZVRhYmxlVmlldywgRGF0YVR5cGVSZWFk
ZXIsIFZhY3V1bVNldHRpbmdzKToKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHN0YXR1cywg
cmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgICAgICBpZiBub3Qgc3Rh
dHVzOgotICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt
c2c9cmVzKQorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy
b3Jtc2c9U1FMKQogCiAgICAgICAgIFNRTCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChkaWQsIHNjaWQs
IHRpZCwgZGF0YSwgcmVzKQogICAgICAgICBTUUwgPSByZS5zdWIoJ1xuezIsfScsICdcblxuJywg
U1FMKQogICAgICAgICBTUUwgPSBTUUwuc3RyaXAoJ1xuJykKKworICAgICAgICBpZiBub3QganNv
bl9yZXNwOgorICAgICAgICAgICAgcmV0dXJuIFNRTAorCiAgICAgICAgIGlmIFNRTCA9PSAnJzoK
ICAgICAgICAgICAgIFNRTCA9ICItLW1vZGlmaWVkIFNRTCIKKwogICAgICAgICByZXR1cm4gbWFr
ZV9qc29uX3Jlc3BvbnNlKAogICAgICAgICAgICAgZGF0YT1TUUwsCiAgICAgICAgICAgICBzdGF0
dXM9MjAwCkBAIC0xNDE5LDcgKzE1MjQsNyBAQCBjbGFzcyBUYWJsZVZpZXcoQmFzZVRhYmxlVmll
dywgRGF0YVR5cGVSZWFkZXIsIFZhY3V1bVNldHRpbmdzKToKICAgICAgICAgcmV0dXJuIGFqYXhf
cmVzcG9uc2UocmVzcG9uc2U9c3FsKQogCiAgICAgQEJhc2VUYWJsZVZpZXcuY2hlY2tfcHJlY29u
ZGl0aW9uCi0gICAgZGVmIGRlbGV0ZV9zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlk
KToKKyAgICBkZWYgZGVsZXRlX3NxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGpz
b25fcmVzcD1UcnVlKToKICAgICAgICAgIiIiCiAgICAgICAgIERFTEVURSBzY3JpcHQgc3FsIGZv
ciB0aGUgb2JqZWN0CiAKQEAgLTE0NDgsNiArMTU1Myw5IEBAIGNsYXNzIFRhYmxlVmlldyhCYXNl
VGFibGVWaWV3LCBEYXRhVHlwZVJlYWRlciwgVmFjdXVtU2V0dGluZ3MpOgogICAgICAgICAgICAg
c2VsZi5xdElkZW50KHNlbGYuY29ubiwgZGF0YVsnc2NoZW1hJ10sIGRhdGFbJ25hbWUnXSkKICAg
ICAgICAgKQogCisgICAgICAgIGlmIG5vdCBqc29uX3Jlc3A6CisgICAgICAgICAgICByZXR1cm4g
c3FsCisKICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9c3FsKQogCiAgICAg
QEJhc2VUYWJsZVZpZXcuY2hlY2tfcHJlY29uZGl0aW9uCkBAIC0xNTAyLDUgKzE2MTAsNjAgQEAg
Y2xhc3MgVGFibGVWaWV3KEJhc2VUYWJsZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBWYWN1dW1TZXR0
aW5ncyk6CiAgICAgICAgICAgICBkYXRhPXsndG90YWxfcm93cyc6IGNvdW50fQogICAgICAgICAp
CiAKKyAgICBkZWYgZ2V0X2RlbGV0ZV9zcWwoc2VsZiwgcmVzKToKKyAgICAgICAgc2VsZi5jbWQg
PSAnZGVsZXRlJworICAgICAgICBzcWwgPSBzdXBlcihUYWJsZVZpZXcsIHNlbGYpLmdldF9kZWxl
dGVfc3FsKHJlcykKKyAgICAgICAgc2VsZi5jbWQgPSBOb25lCisgICAgICAgIHJldHVybiBzcWwK
KworICAgIEBCYXNlVGFibGVWaWV3LmNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBmZXRjaF90
YWJsZXMoc2VsZiwgc2lkLCBkaWQsIHNjaWQsIHRpZD1Ob25lLCBrZXlzX3RvX3JlbW92ZT1Ob25l
KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgbGlz
dCBvZiBhbGwgdGhlIHRhYmxlcworICAgICAgICBhbmQgd2lsbCBiZSB1c2VkIGJ5IHNjaGVtYSBk
aWZmLgorCisgICAgICAgIDpwYXJhbSBzaWQ6IFNlcnZlciBJZAorICAgICAgICA6cGFyYW0gZGlk
OiBEYXRhYmFzZSBJZAorICAgICAgICA6cGFyYW0gc2NpZDogU2NoZW1hIElkCisgICAgICAgIDpw
YXJhbSB0aWQ6IFRhYmxlIElkCisgICAgICAgIDpwYXJhbSBrZXlzX3RvX3JlbW92ZTogVGFibGUg
Y29sdW1ucyB0byBiZSByZW1vdmVkIGZyb20gdGhlIGRhdGFzZXQKKyAgICAgICAgOnJldHVybjog
VGFibGUgZGF0YXNldAorICAgICAgICAiIiIKKyAgICAgICAgaWYgdGlkOgorICAgICAgICAgICAg
c3RhdHVzLCBkYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhkaWQsIHNjaWQsIHRpZCkKKwor
ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBjdXJyZW50X2FwcC5s
b2dnZXIuZXJyb3IoZGF0YSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAg
ICAgICAgZGF0YSA9IHN1cGVyKFRhYmxlVmlldywgc2VsZikucHJvcGVydGllcygKKyAgICAgICAg
ICAgICAgICAwLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBkYXRhLCBGYWxzZQorICAgICAgICAgICAg
KQorICAgICAgICAgICAgc2VsZi5yZW1vdmVfa2V5c19mb3JfY29tcGFyaXNpb24oZGF0YSwga2V5
c190b19yZW1vdmUpCisgICAgICAgICAgICByZXR1cm4gZGF0YQorCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICByZXMgPSBkaWN0KCkKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0
ZSgiLyIuam9pbihbc2VsZi50YWJsZV90ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9kZXMuc3FsJ10pLCBzY2lkPXNjaWQpCisgICAg
ICAgICAgICBzdGF0dXMsIHRhYmxlcyA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQor
ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBjdXJyZW50X2FwcC5s
b2dnZXIuZXJyb3IodGFibGVzKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ICAgICAgICBmb3Igcm93IGluIHRhYmxlc1sncm93cyddOgorICAgICAgICAgICAgICAgIHN0YXR1
cywgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoZGlkLCBzY2lkLCByb3dbJ29pZCddKQor
CisgICAgICAgICAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICBkYXRhID0g
c3VwZXIoVGFibGVWaWV3LCBzZWxmKS5wcm9wZXJ0aWVzKAorICAgICAgICAgICAgICAgICAgICAg
ICAgMCwgc2lkLCBkaWQsIHNjaWQsIHJvd1snb2lkJ10sIGRhdGEsIEZhbHNlCisgICAgICAgICAg
ICAgICAgICAgICkKKworICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbW92ZV9rZXlzX2Zvcl9j
b21wYXJpc2lvbihkYXRhLCBrZXlzX3RvX3JlbW92ZSkKKyAgICAgICAgICAgICAgICAgICAgcmVz
W3Jvd1snbmFtZSddXSA9IGRhdGEKKworICAgICAgICAgICAgcmV0dXJuIHJlcworCiAKK1NjaGVt
YURpZmZSZWdpc3RyeSgndGFibGUnLCBUYWJsZVZpZXcpCiBUYWJsZVZpZXcucmVnaXN0ZXJfbm9k
ZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy
X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL19faW5pdF9f
LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz
L3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvX19pbml0X18ucHkKaW5kZXggYzBjNDBlNDE3Li4zMzQ2
YWY4ZDggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2
ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL19faW5pdF9fLnB5CisrKyBiL3dl
Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz
L3RhYmxlcy9jb2x1bW5zL19faW5pdF9fLnB5CkBAIC0yOSw2ICsyOSw3IEBAIGZyb20gcGdhZG1p
bi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZyb20gY29uZmlnIGltcG9ydCBQR19E
RUZBVUxUX0RSSVZFUgogZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBJU19QWTIKIGZyb20gcGdh
ZG1pbi51dGlscy5hamF4IGltcG9ydCBDb2xQYXJhbXNKU09ORGVjb2RlcgorCiAjIElmIHdlIGFy
ZSBpbiBQeXRob24zCiBpZiBub3QgSVNfUFkyOgogICAgIHVuaWNvZGUgPSBzdHIKZGlmZiAtLWdp
dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z
Y2hlbWFzL3RhYmxlcy9jb21wb3VuZF90cmlnZ2Vycy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWlu
L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j
b21wb3VuZF90cmlnZ2Vycy9fX2luaXRfXy5weQppbmRleCA2MTE5ZmYxMzguLjgzZDg3YmQ1YSAx
MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0
YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbXBvdW5kX3RyaWdnZXJzL19faW5pdF9fLnB5CisrKyBi
L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl
bWFzL3RhYmxlcy9jb21wb3VuZF90cmlnZ2Vycy9fX2luaXRfXy5weQpAQCAtMjYsNiArMjYsMTAg
QEAgZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z
Y2hlbWFzLnV0aWxzIFwKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2
ZXIKIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgogZnJvbSBwZ2FkbWluLnV0
aWxzIGltcG9ydCBJU19QWTIKK2Zyb20gcGdhZG1pbi51dGlscy5jb21waWxlX3RlbXBsYXRlX25h
bWUgaW1wb3J0IGNvbXBpbGVfdGVtcGxhdGVfcGF0aAorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVt
YV9kaWZmLm5vZGVfcmVnaXN0cnkgaW1wb3J0IFNjaGVtYURpZmZSZWdpc3RyeQorZnJvbSBwZ2Fk
bWluLnRvb2xzLnNjaGVtYV9kaWZmLmNvbXBhcmUgaW1wb3J0IFNjaGVtYURpZmZPYmplY3RDb21w
YXJlCisKICMgSWYgd2UgYXJlIGluIFB5dGhvbjMKIGlmIG5vdCBJU19QWTI6CiAgICAgdW5pY29k
ZSA9IHN0cgpAQCAtMTU1LDcgKzE1OSw3IEBAIGNsYXNzIENvbXBvdW5kVHJpZ2dlck1vZHVsZShD
b2xsZWN0aW9uTm9kZU1vZHVsZSk6CiBibHVlcHJpbnQgPSBDb21wb3VuZFRyaWdnZXJNb2R1bGUo
X19uYW1lX18pCiAKIAotY2xhc3MgQ29tcG91bmRUcmlnZ2VyVmlldyhQR0NoaWxkTm9kZVZpZXcp
OgorY2xhc3MgQ29tcG91bmRUcmlnZ2VyVmlldyhQR0NoaWxkTm9kZVZpZXcsIFNjaGVtYURpZmZP
YmplY3RDb21wYXJlKToKICAgICAiIiIKICAgICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZv
ciBnZW5lcmF0aW5nIHJvdXRlcyBmb3IgQ29tcG91bmQgVHJpZ2dlciBub2RlCiAKQEAgLTI0NSw2
ICsyNDksMTAgQEAgY2xhc3MgQ29tcG91bmRUcmlnZ2VyVmlldyhQR0NoaWxkTm9kZVZpZXcpOgog
ICAgICAgICAnZW5hYmxlJzogW3sncHV0JzogJ2VuYWJsZV9kaXNhYmxlX3RyaWdnZXInfV0KICAg
ICB9KQogCisgICAgIyBTY2hlbWEgRGlmZjogS2V5cyB0byBpZ25vcmUgd2hpbGUgY29tcGFyaW5n
CisgICAga2V5c190b19pZ25vcmUgPSBbJ29pZCcsICd4bWluJywgJ25zcG5hbWUnLCAndGZ1bmN0
aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAndGdyZWxpZCcsICd0Z2ZvaWQnXQorCiAgICAg
ZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKICAgICAgICAgIiIiCiAgICAgICAgIFRoaXMgZnVu
Y3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKQEAgLTI2
Nyw2ICsyNzUsMTIgQEAgY2xhc3MgQ29tcG91bmRUcmlnZ2VyVmlldyhQR0NoaWxkTm9kZVZpZXcp
OgogICAgICAgICAgICAgXVsnZGF0bGFzdHN5c29pZCddIGlmIHNlbGYubWFuYWdlci5kYl9pbmZv
IGlzIG5vdCBOb25lIGFuZCBcCiAgICAgICAgICAgICAgICAga3dhcmdzWydkaWQnXSBpbiBzZWxm
Lm1hbmFnZXIuZGJfaW5mbyBlbHNlIDAKIAorICAgICAgICAgICAgc2VsZi50YWJsZV90ZW1wbGF0
ZV9wYXRoID0gY29tcGlsZV90ZW1wbGF0ZV9wYXRoKAorICAgICAgICAgICAgICAgICd0YWJsZXMv
c3FsJywKKyAgICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUsCisgICAgICAg
ICAgICAgICAgc2VsZi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgICAgICkKKwogICAgICAgICAg
ICAgIyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cwogICAgICAgICAg
ICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2NvbXBvdW5kX3RyaWdnZXJzL3NxbC97MH0vI3sxfSMn
LmZvcm1hdCgKICAgICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUsIHNlbGYu
bWFuYWdlci52ZXJzaW9uKQpAQCAtNDE3LDYgKzQzMSwxOCBAQCBjbGFzcyBDb21wb3VuZFRyaWdn
ZXJWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICBKU09OIG9mIHNlbGVjdGVkIGNv
bXBvdW5kIHRyaWdnZXIgbm9kZQogICAgICAgICAiIiIKIAorICAgICAgICBkYXRhID0gc2VsZi5f
ZmV0Y2hfcHJvcGVydGllcyh0aWQsIHRyaWQpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg
ICAgICAgICAgIHJldHVybiBkYXRhCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisg
ICAgICAgICAgICByZXNwb25zZT1kYXRhLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAg
ICApCisKKyAgICBkZWYgX2ZldGNoX3Byb3BlcnRpZXMoc2VsZiwgdGlkLCB0cmlkKToKKwogICAg
ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcy5zcWwn
XSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9dGlkLCB0cmlkPXRyaWQsCkBA
IC00NDAsMTAgKzQ2Niw3IEBAIGNsYXNzIENvbXBvdW5kVHJpZ2dlclZpZXcoUEdDaGlsZE5vZGVW
aWV3KToKIAogICAgICAgICBkYXRhID0gdHJpZ2dlcl9kZWZpbml0aW9uKGRhdGEpCiAKLSAgICAg
ICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCi0gICAgICAgICAgICByZXNwb25zZT1kYXRhLAotICAg
ICAgICAgICAgc3RhdHVzPTIwMAotICAgICAgICApCisgICAgICAgIHJldHVybiBUcnVlLCBkYXRh
CiAKICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNp
ZCwgZGlkLCBzY2lkLCB0aWQpOgpAQCAtNTE5LDcgKzU0Miw3IEBAIGNsYXNzIENvbXBvdW5kVHJp
Z2dlclZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z
ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQogCiAgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgot
ICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCB0cmlkPU5vbmUp
OgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCB0cmlkPU5v
bmUsIG9ubHlfc3FsPUZhbHNlKToKICAgICAgICAgIiIiCiAgICAgICAgIFRoaXMgZnVuY3Rpb24g
d2lsbCB1cGRhdGVzIGV4aXN0aW5nIHRoZSBjb21wb3VuZCB0cmlnZ2VyIG9iamVjdAogCkBAIC01
NzksNiArNjAyLDkgQEAgY2xhc3MgQ29tcG91bmRUcmlnZ2VyVmlldyhQR0NoaWxkTm9kZVZpZXcp
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uPXNlbGYuY29ubiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzY2FkZT1jYXNjYWRlCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBp
ZiBvbmx5X3NxbDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNRTAorCiAgICAgICAgICAg
ICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQogICAgICAg
ICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRl
cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQpAQCAtODQ2LDUgKzg3MiwxMDkgQEAgY2xh
c3MgQ29tcG91bmRUcmlnZ2VyVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgc3Rh
dHVzPTIwMAogICAgICAgICApCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGdl
dF9zcWxfZnJvbV9kaWZmKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgb2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBkYXRhPU5vbmUsIGRpZmZfc2NoZW1hPU5vbmUsIGRyb3Bf
c3FsPUZhbHNlKToKKyAgICAgICAgaWYgZGF0YToKKyAgICAgICAgICAgIHNxbCwgbmFtZSA9IHNl
bGYuZ2V0X3NxbChzY2lkLCB0aWQsIG9pZCwgZGF0YSkKKyAgICAgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKHNxbCwgKHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwK
KyAgICAgICAgICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBpZiBkcm9wX3NxbDoKKyAgICAgICAgICAgICAgICBTUUwgPSBzZWxm
LmRlbGV0ZShnaWQ9Z2lkLCBzaWQ9c2lkLCBkaWQ9ZGlkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNjaWQ9c2NpZCwgdGlkPXRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0cmlkPW9pZCwgb25seV9zcWw9VHJ1ZSkKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs
YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRpZD10aWQsIHRyaWQ9b2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKKworICAgICAgICAgICAgICAg
IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICAg
ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl
cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93
cyddKSA9PSAwOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ29uZShnZXR0ZXh0KCIiIkNv
dWxkIG5vdCBmaW5kIHRoZSBjb21wb3VuZAorICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlciBp
biB0aGUgdGFibGUuIiIiKSkKKworICAgICAgICAgICAgICAgIGRhdGEgPSBkaWN0KHJlc1sncm93
cyddWzBdKQorICAgICAgICAgICAgICAgICMgQWRkaW5nIHBhcmVudCBpbnRvIGRhdGEgZGljdCwK
KyAgICAgICAgICAgICAgICAjIHdpbGwgYmUgdXNpbmcgaXQgd2hpbGUgY3JlYXRpbmcgc3FsCisg
ICAgICAgICAgICAgICAgZGF0YVsnc2NoZW1hJ10gPSBzZWxmLnNjaGVtYQorICAgICAgICAgICAg
ICAgIGRhdGFbJ3RhYmxlJ10gPSBzZWxmLnRhYmxlCisKKyAgICAgICAgICAgICAgICBpZiBsZW4o
ZGF0YVsndGdhdHRyJ10pID49IDE6CisgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMgPSAnLCAn
LmpvaW4oZGF0YVsndGdhdHRyJ10uc3BsaXQoJyAnKSkKKyAgICAgICAgICAgICAgICAgICAgZGF0
YVsnY29sdW1ucyddID0gc2VsZi5fY29sdW1uX2RldGFpbHModGlkLCBjb2x1bW5zKQorCisgICAg
ICAgICAgICAgICAgZGF0YSA9IHNlbGYuX3RyaWdnZXJfZGVmaW5pdGlvbihkYXRhKQorCisgICAg
ICAgICAgICAgICAgaWYgZGlmZl9zY2hlbWE6CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ3Nj
aGVtYSddID0gZGlmZl9zY2hlbWEKKworICAgICAgICAgICAgICAgIFNRTCwgbmFtZSA9IHNlbGYu
Z2V0X3NxbChzY2lkLCB0aWQsIE5vbmUsIGRhdGEpCisKKyAgICAgICAgICAgICAgICBzcWxfaGVh
ZGVyID0gdSItLSBDb21wb3VuZCBUcmlnZ2VyOiB7MH1cblxuLS0gIi5mb3JtYXQoCisgICAgICAg
ICAgICAgICAgICAgIGRhdGFbJ25hbWUnXSkKKworICAgICAgICAgICAgICAgIHNxbF9oZWFkZXIg
Kz0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUu
c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisKKyAgICAgICAgICAgICAgICBTUUwgPSBzcWxfaGVh
ZGVyICsgJ1xuXG4nICsgU1FMLnN0cmlwKCdcbicpCisKKyAgICAgICAgICAgICAgICAjIElmIGNv
bXBvdW5kIHRyaWdnZXIgaXMgZGlzYmFsZWQgdGhlbiBhZGQgc3FsCisgICAgICAgICAgICAgICAg
IyBjb2RlIGZvciB0aGUgc2FtZQorICAgICAgICAgICAgICAgIGlmIG5vdCBkYXRhWydpc19lbmFi
bGVfdHJpZ2dlciddOgorICAgICAgICAgICAgICAgICAgICBTUUwgKz0gJ1xuXG4nCisgICAgICAg
ICAgICAgICAgICAgIFNRTCArPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oWworICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgJ2VuYWJsZV9kaXNhYmxlX3RyaWdnZXIuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29ubikKKworICAgICAgICByZXR1cm4gU1FMCisKKyAg
ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGZldGNoX29iamVjdHNfdG9fY29tcGFyZShz
ZWxmLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBvaWQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlnbm9yZV9rZXlzPUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo
aXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgbGlzdCBvZiBhbGwgdGhlIHRyaWdnZXJzIGZvcgor
ICAgICAgICBzcGVjaWZpZWQgc2NoZW1hIGlkLgorCisgICAgICAgIDpwYXJhbSBzaWQ6IFNlcnZl
ciBJZAorICAgICAgICA6cGFyYW0gZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICA6cGFyYW0gc2Np
ZDogU2NoZW1hIElkCisgICAgICAgIDpwYXJhbSB0aWQ6IFRhYmxlIElkCisgICAgICAgIDpyZXR1
cm46CisgICAgICAgICIiIgorICAgICAgICByZXMgPSBkaWN0KCkKKworICAgICAgICBpZiBvaWQ6
CisgICAgICAgICAgICBzdGF0dXMsIGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKHRpZCwg
b2lkKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBjdXJyZW50
X2FwcC5sb2dnZXIuZXJyb3IoZGF0YSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgICAgIHJlcyA9IGRhdGEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIFNRTCA9IHJl
bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9kZXMuc3FsJ10pLCB0aWQ9dGlkKQor
ICAgICAgICAgICAgc3RhdHVzLCB0cmlnZ2VycyA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXko
U1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBjdXJyZW50
X2FwcC5sb2dnZXIuZXJyb3IodHJpZ2dlcnMpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisKKyAgICAgICAgICAgIGZvciByb3cgaW4gdHJpZ2dlcnNbJ3Jvd3MnXToKKyAgICAgICAgICAg
ICAgICBzdGF0dXMsIGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKHRpZCwgcm93WydvaWQn
XSkKKyAgICAgICAgICAgICAgICBpZiBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIGlmIGln
bm9yZV9rZXlzOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGtleSBpbiBzZWxmLmtleXNf
dG9faWdub3JlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGtleSBpbiBkYXRhOgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWwgZGF0YVtrZXldCisgICAgICAgICAg
ICAgICAgICAgIHJlc1tyb3dbJ25hbWUnXV0gPSBkYXRhCisKKyAgICAgICAgcmV0dXJuIHJlcwor
CiAKK1NjaGVtYURpZmZSZWdpc3RyeSgnY29tcG91bmRfdHJpZ2dlcicsIENvbXBvdW5kVHJpZ2dl
clZpZXcsICd0YWJsZScpCiBDb21wb3VuZFRyaWdnZXJWaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhi
bHVlcHJpbnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv
c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3Ry
YWludC91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz
L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3V0
aWxzLnB5CmluZGV4IDQ3YmFlZTliMy4uMDQyMzdkNjQ1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p
bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv
Y29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC91dGlscy5weQorKysgYi93ZWIvcGdhZG1pbi9i
cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u
c3RyYWludHMvaW5kZXhfY29uc3RyYWludC91dGlscy5weQpAQCAtMTUyLDcgKzE1Miw4IEBAIGRl
ZiBnZXRfaW5kZXhfY29uc3RyYWludF9zcWwoY29ubiwgZGlkLCB0aWQsIGRhdGEsIHRlbXBsYXRl
X3BhdGg9Tm9uZSk6CiAKICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRfc3FsLCBuYW1lID0g
Z2V0X3NxbChjb25uLCBjLCBkaWQsIHRpZCwgY3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY1snb2lkJ10pCi0gICAgICAgICAgICAgICAgICAg
IHNxbC5hcHBlbmQobW9kaWZpZWRfc3FsLnN0cmlwKCdcbicpKQorICAgICAgICAgICAgICAgICAg
ICBpZiBtb2RpZmllZF9zcWw6CisgICAgICAgICAgICAgICAgICAgICAgICBzcWwuYXBwZW5kKG1v
ZGlmaWVkX3NxbC5zdHJpcCgnXG4nKSkKIAogICAgICAgICAgICAgaWYgJ2FkZGVkJyBpbiBjb25z
dHJhaW50OgogICAgICAgICAgICAgICAgIGZvciBjIGluIGNvbnN0cmFpbnRbJ2FkZGVkJ106CkBA
IC0xODMsNiArMTg0LDcgQEAgZGVmIGdldF9zcWwoY29ubiwgZGF0YSwgZGlkLCB0aWQsIGN0eXBl
LCBjaWQ9Tm9uZSwgdGVtcGxhdGVfcGF0aD1Ob25lKToKICAgICA6cmV0dXJuOgogICAgICIiIgog
ICAgIG5hbWUgPSBkYXRhWyduYW1lJ10gaWYgJ25hbWUnIGluIGRhdGEgZWxzZSBOb25lCisgICAg
c3FsID0gTm9uZQogICAgIGlmIGNpZCBpcyBub3QgTm9uZToKICAgICAgICAgc3FsID0gcmVuZGVy
X3RlbXBsYXRlKCIvIi5qb2luKFt0ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWQ9ZGlkLCB0aWQ9dGlkLCBjaWQ9Y2lkLApk
aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0
YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9i
cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5k
ZXhlcy9fX2luaXRfXy5weQppbmRleCA3ZjE5ZTk1M2EuLjZjZGU2MDg0MyAxMDA2NDQKLS0tIGEv
d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt
YXMvdGFibGVzL2luZGV4ZXMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z
ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvX19p
bml0X18ucHkKQEAgLTEzLDcgKzEzLDcgQEAgaW1wb3J0IHNpbXBsZWpzb24gYXMganNvbgogZnJv
bSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCiAKIGltcG9ydCBwZ2FkbWluLmJyb3dzZXIuc2VydmVy
X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcyBhcyBkYXRhYmFzZQotZnJvbSBmbGFzayBpbXBvcnQg
cmVuZGVyX3RlbXBsYXRlLCByZXF1ZXN0LCBqc29uaWZ5Citmcm9tIGZsYXNrIGltcG9ydCByZW5k
ZXJfdGVtcGxhdGUsIHJlcXVlc3QsIGpzb25pZnksIGN1cnJlbnRfYXBwCiBmcm9tIGZsYXNrX2Jh
YmVsZXggaW1wb3J0IGdldHRleHQKIGZyb20gcGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24gaW1w
b3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv
dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLlwKQEAgLTI1LDggKzI1LDE0IEBA
IGZyb20gcGdhZG1pbi51dGlscy5jb21waWxlX3RlbXBsYXRlX25hbWUgaW1wb3J0IGNvbXBpbGVf
dGVtcGxhdGVfcGF0aAogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZl
cgogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCiBmcm9tIHBnYWRtaW4udXRp
bHMgaW1wb3J0IElTX1BZMgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLm5vZGVfcmVn
aXN0cnkgaW1wb3J0IFNjaGVtYURpZmZSZWdpc3RyeQorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVt
YV9kaWZmLmRpcmVjdG9yeV9jb21wYXJlIGltcG9ydCBjb21wYXJlX2RpY3Rpb25hcmllcyxcCisg
ICAgZGlyZWN0b3J5X2RpZmYKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5tb2RlbCBp
bXBvcnQgU2NoZW1hRGlmZk1vZGVsCitmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYuY29t
cGFyZSBpbXBvcnQgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUKIGZyb20gcGdhZG1pbi5icm93c2Vy
LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy4gXAogICAgIHRhYmxlcy5p
bmRleGVzIGltcG9ydCB1dGlscyBhcyBpbmRleF91dGlscworCiAjIElmIHdlIGFyZSBpbiBQeXRo
b24zCiBpZiBub3QgSVNfUFkyOgogICAgIHVuaWNvZGUgPSBzdHIKQEAgLTEzNSw3ICsxNDEsNyBA
QCBjbGFzcyBJbmRleGVzTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKIGJsdWVwcmludCA9
IEluZGV4ZXNNb2R1bGUoX19uYW1lX18pCiAKIAotY2xhc3MgSW5kZXhlc1ZpZXcoUEdDaGlsZE5v
ZGVWaWV3KToKK2NsYXNzIEluZGV4ZXNWaWV3KFBHQ2hpbGROb2RlVmlldywgU2NoZW1hRGlmZk9i
amVjdENvbXBhcmUpOgogICAgICIiIgogICAgIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9y
IGdlbmVyYXRpbmcgcm91dGVzIGZvciBJbmRleCBub2RlCiAKQEAgLTIyNyw2ICsyMzMsMTEgQEAg
Y2xhc3MgSW5kZXhlc1ZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICAgICAg
ICAgICB7J2dldCc6ICdnZXRfb3BfY2xhc3MnfV0KICAgICB9KQogCisgICAgIyBTY2hlbWEgRGlm
ZjogS2V5cyB0byBpZ25vcmUgd2hpbGUgY29tcGFyaW5nCisgICAga2V5c190b19pZ25vcmUgPSBb
J29pZCcsICdyZWxvd25lcicsICdzY2hlbWEnLAorICAgICAgICAgICAgICAgICAgICAgICdpbmRy
ZWxpZCcsICduc3BuYW1lJworICAgICAgICAgICAgICAgICAgICAgIF0KKwogICAgIGRlZiBjaGVj
a19wcmVjb25kaXRpb24oZik6CiAgICAgICAgICIiIgogICAgICAgICBUaGlzIGZ1bmN0aW9uIHdp
bGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCkBAIC0yNDgsNiArMjU5
LDEyIEBAIGNsYXNzIEluZGV4ZXNWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICBd
WydkYXRsYXN0c3lzb2lkJ10gaWYgc2VsZi5tYW5hZ2VyLmRiX2luZm8gaXMgbm90IE5vbmUgYW5k
IFwKICAgICAgICAgICAgICAgICBrd2FyZ3NbJ2RpZCddIGluIHNlbGYubWFuYWdlci5kYl9pbmZv
IGVsc2UgMAogCisgICAgICAgICAgICBzZWxmLnRhYmxlX3RlbXBsYXRlX3BhdGggPSBjb21waWxl
X3RlbXBsYXRlX3BhdGgoCisgICAgICAgICAgICAgICAgJ3RhYmxlcy9zcWwnLAorICAgICAgICAg
ICAgICAgIHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZSwKKyAgICAgICAgICAgICAgICBzZWxmLm1h
bmFnZXIudmVyc2lvbgorICAgICAgICAgICAgKQorCiAgICAgICAgICAgICAjIHdlIHdpbGwgc2V0
IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCiAgICAgICAgICAgICBzZWxmLnRlbXBsYXRl
X3BhdGggPSBjb21waWxlX3RlbXBsYXRlX3BhdGgoCiAgICAgICAgICAgICAgICAgJ2luZGV4ZXMv
c3FsLycsCkBAIC00ODUsMTkgKzUwMiwzNSBAQCBjbGFzcyBJbmRleGVzVmlldyhQR0NoaWxkTm9k
ZVZpZXcpOgogICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICAgSlNPTiBvZiBzZWxlY3RlZCBz
Y2hlbWEgbm9kZQogICAgICAgICAiIiIKKyAgICAgICAgc3RhdHVzLCBkYXRhID0gc2VsZi5fZmV0
Y2hfcHJvcGVydGllcyhkaWQsIHRpZCwgaWR4KQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg
ICAgICAgICAgcmV0dXJuIGRhdGEKIAorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAg
ICAgICAgICAgIHJlc3BvbnNlPWRhdGEsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg
ICkKKworICAgIGRlZiBfZmV0Y2hfcHJvcGVydGllcyhzZWxmLCBkaWQsIHRpZCwgaWR4KToKKyAg
ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBmZXRjaCB0aGUgcHJv
cGVydGllcyBvZiBzcGVjaWZpZWQgb2JqZWN0LgorICAgICAgICA6cGFyYW0gZGlkOgorICAgICAg
ICA6cGFyYW0gdGlkOgorICAgICAgICA6cGFyYW0gaWR4OgorICAgICAgICA6cmV0dXJuOgorICAg
ICAgICAiIiIKICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAogICAgICAgICAgICAgIi8i
LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAogICAgICAgICAg
ICAgZGlkPWRpZCwgdGlkPXRpZCwgaWR4PWlkeCwgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxhc3Rz
eXNvaWQKICAgICAgICAgKQogCiAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1
dGVfZGljdChTUUwpCi0KICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJldHVy
biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAgIGlm
IGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKLSAgICAgICAgICAgIHJldHVybiBnb25lKGdldHRleHQo
IiIiQ291bGQgbm90IGZpbmQgdGhlIGluZGV4IGluIHRoZSB0YWJsZS4iIiIpKQorICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlLCBnb25lKAorICAgICAgICAgICAgICAgIGdldHRleHQoIiIiQ291bGQg
bm90IGZpbmQgdGhlIGluZGV4IGluIHRoZSB0YWJsZS4iIiIpKQogCiAgICAgICAgICMgTWFraW5n
IGNvcHkgb2Ygb3V0cHV0IGZvciBmdXR1cmUgdXNlCiAgICAgICAgIGRhdGEgPSBkaWN0KHJlc1sn
cm93cyddWzBdKQpAQCAtNTA5LDEwICs1NDIsNyBAQCBjbGFzcyBJbmRleGVzVmlldyhQR0NoaWxk
Tm9kZVZpZXcpOgogICAgICAgICBpZiBzZWxmLm1hbmFnZXIudmVyc2lvbiA+PSAxMTAwMDA6CiAg
ICAgICAgICAgICBkYXRhID0gaW5kZXhfdXRpbHMuZ2V0X2luY2x1ZGVfZGV0YWlscyhzZWxmLmNv
bm4sIGlkeCwgZGF0YSkKIAotICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKLSAgICAgICAg
ICAgIHJlc3BvbnNlPWRhdGEsCi0gICAgICAgICAgICBzdGF0dXM9MjAwCi0gICAgICAgICkKKyAg
ICAgICAgcmV0dXJuIFRydWUsIGRhdGEKIAogICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBk
ZWYgY3JlYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CkBAIC02MjAsNyArNjUw
LDggQEAgY2xhc3MgSW5kZXhlc1ZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIHJl
dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQogCiAgICAgQGNoZWNr
X3ByZWNvbmRpdGlvbgotICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwg
dGlkLCBpZHg9Tm9uZSk6CisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk
LCB0aWQsIGlkeD1Ob25lLAorICAgICAgICAgICAgICAgb25seV9zcWw9RmFsc2UpOgogICAgICAg
ICAiIiIKICAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZXMgZXhpc3RpbmcgdGhlIHNj
aGVtYSBvYmplY3QKIApAQCAtNjc2LDYgKzcwNyw5IEBAIGNsYXNzIEluZGV4ZXNWaWV3KFBHQ2hp
bGROb2RlVmlldyk6CiAgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRl
X3BhdGgsICdkZWxldGUuc3FsJ10pLAogICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIGNv
bm49c2VsZi5jb25uLCBjYXNjYWRlPWNhc2NhZGUKICAgICAgICAgICAgICAgICApCisKKyAgICAg
ICAgICAgICAgICBpZiBvbmx5X3NxbDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNRTAog
ICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNR
TCkKICAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKQEAgLTc5Miw2ICs4MjYs
MzIgQEAgY2xhc3MgSW5kZXhlc1ZpZXcoUEdDaGlsZE5vZGVWaWV3KToKIAogICAgICAgICByZXR1
cm4gYWpheF9yZXNwb25zZShyZXNwb25zZT1TUUwpCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u
CisgICAgZGVmIGdldF9zcWxfZnJvbV9pbmRleF9kaWZmKHNlbGYsIHNpZCwgZGlkLCBzY2lkLCB0
aWQsIGlkeCwgZGF0YT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZm
X3NjaGVtYT1Ob25lLCBkcm9wX3JlcT1GYWxzZSk6CisKKyAgICAgICAgdG1wX2lkeCA9IGlkeAor
ICAgICAgICBzY2hlbWEgPSAnJworICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgc2NoZW1h
ID0gc2VsZi5zY2hlbWEKKyAgICAgICAgZWxpZiBkaWZmX3NjaGVtYToKKyAgICAgICAgICAgIHNj
aGVtYSA9IGRpZmZfc2NoZW1hCisKKyAgICAgICAgc3FsID0gaW5kZXhfdXRpbHMuZ2V0X3JldmVy
c2VfZW5naW5lZXJlZF9zcWwoCisgICAgICAgICAgICBzZWxmLmNvbm4sIHNjaGVtYSwKKyAgICAg
ICAgICAgIHNlbGYudGFibGUsIGRpZCwgdGlkLCBpZHgsCisgICAgICAgICAgICBzZWxmLmRhdGxh
c3RzeXNvaWQsCisgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPU5vbmUsIHdpdGhfaGVhZGVyPUZh
bHNlKQorCisgICAgICAgIGRyb3Bfc3FsID0gJycKKyAgICAgICAgaWYgZHJvcF9yZXE6CisgICAg
ICAgICAgICBkcm9wX3NxbCA9ICdcbicgKyByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAg
ICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSksCisgICAgICAg
ICAgICAgICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAgKQorCisgICAg
ICAgIHJldHVybiBkcm9wX3NxbCArICdcblxuJyArIHNxbAorCiAgICAgQGNoZWNrX3ByZWNvbmRp
dGlvbgogICAgIGRlZiBkZXBlbmRlbnRzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwg
aWR4KToKICAgICAgICAgIiIiCkBAIC05MTQsNSArOTc0LDEyOSBAQCBjbGFzcyBJbmRleGVzVmll
dyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgc3RhdHVzPTIwMAogICAgICAgICApCiAK
KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGZldGNoX29iamVjdHNfdG9fY29tcGFy
ZShzZWxmLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBvaWQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlnbm9yZV9rZXlzPUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAg
IFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgbGlzdCBvZiBhbGwgdGhlIGluZGV4ZXMgZm9y
CisgICAgICAgIHNwZWNpZmllZCBzY2hlbWEgaWQuCisKKyAgICAgICAgOnBhcmFtIHNpZDogU2Vy
dmVyIElkCisgICAgICAgIDpwYXJhbSBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgIDpwYXJhbSBz
Y2lkOiBTY2hlbWEgSWQKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisKKyAgICAgICAg
cmVzID0gZGljdCgpCisKKyAgICAgICAgaWYgbm90IG9pZDoKKyAgICAgICAgICAgIFNRTCA9IHJl
bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9kZXMuc3FsJ10pLCB0aWQ9dGlkKQor
ICAgICAgICAgICAgc3RhdHVzLCBpbmRleGVzID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShT
UUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIGN1cnJlbnRf
YXBwLmxvZ2dlci5lcnJvcihpbmRleGVzKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQor
CisgICAgICAgICAgICBmb3Igcm93IGluIGluZGV4ZXNbJ3Jvd3MnXToKKyAgICAgICAgICAgICAg
ICBzdGF0dXMsIGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGRpZCwgdGlkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93WydvaWQn
XSkKKyAgICAgICAgICAgICAgICBpZiBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIGlmIGln
bm9yZV9rZXlzOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGtleSBpbiBzZWxmLmtleXNf
dG9faWdub3JlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGtleSBpbiBkYXRhOgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWwgZGF0YVtrZXldCisgICAgICAgICAg
ICAgICAgICAgIHJlc1tyb3dbJ25hbWUnXV0gPSBkYXRhCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBzdGF0dXMsIGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGRpZCwgdGlkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvaWQpCisgICAg
ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dl
ci5lcnJvcihkYXRhKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
cmVzID0gZGF0YQorCisgICAgICAgIHJldHVybiByZXMKKworICAgIGRlZiBkZGxfY29tcGFyZShz
ZWxmLCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg
Y29tcGFyZSBpbmRleCBwcm9wZXJ0aWVzIGFuZAorICAgICAgICAgcmV0dXJuIHRoZSBkaWZmZXJl
bmNlIG9mIFNRTAorICAgICAgICAiIiIKKworICAgICAgICBzcmNfc2lkID0ga3dhcmdzLmdldCgn
c291cmNlX3NpZCcpCisgICAgICAgIHNyY19kaWQgPSBrd2FyZ3MuZ2V0KCdzb3VyY2VfZGlkJykK
KyAgICAgICAgc3JjX3NjaWQgPSBrd2FyZ3MuZ2V0KCdzb3VyY2Vfc2NpZCcpCisgICAgICAgIHNy
Y190aWQgPSBrd2FyZ3MuZ2V0KCdzb3VyY2VfdGlkJykKKyAgICAgICAgc3JjX29pZCA9IGt3YXJn
cy5nZXQoJ3NvdXJjZV9vaWQnKQorICAgICAgICB0YXJfc2lkID0ga3dhcmdzLmdldCgndGFyZ2V0
X3NpZCcpCisgICAgICAgIHRhcl9kaWQgPSBrd2FyZ3MuZ2V0KCd0YXJnZXRfZGlkJykKKyAgICAg
ICAgdGFyX3NjaWQgPSBrd2FyZ3MuZ2V0KCd0YXJnZXRfc2NpZCcpCisgICAgICAgIHRhcl90aWQg
PSBrd2FyZ3MuZ2V0KCd0YXJnZXRfdGlkJykKKyAgICAgICAgdGFyX29pZCA9IGt3YXJncy5nZXQo
J3RhcmdldF9vaWQnKQorICAgICAgICBjb21wX3N0YXR1cyA9IGt3YXJncy5nZXQoJ2NvbXBfc3Rh
dHVzJykKKworICAgICAgICBzb3VyY2UgPSAnJworICAgICAgICB0YXJnZXQgPSAnJworICAgICAg
ICBkaWZmID0gJycKKworICAgICAgICBzdGF0dXMsIHRhcmdldF9zY2hlbWEgPSBzZWxmLmdldF9z
Y2hlbWEodGFyX3NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRhcl9kaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0YXJfc2NpZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu
dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz10YXJnZXRfc2NoZW1hKQorCisgICAgICAgIGlm
IGNvbXBfc3RhdHVzID09IFNjaGVtYURpZmZNb2RlbC5DT01QQVJJU09OX1NUQVRVU1snc291cmNl
X29ubHknXToKKyAgICAgICAgICAgIGRpZmYgPSBzZWxmLmdldF9zcWxfZnJvbV9pbmRleF9kaWZm
KHNpZD1zcmNfc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlkPXNyY19kaWQsIHNjaWQ9c3JjX3NjaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9c3JjX3RpZCwgaWR4PXNyY19vaWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmX3NjaGVtYT10
YXJnZXRfc2NoZW1hKQorCisgICAgICAgIGVsaWYgY29tcF9zdGF0dXMgPT0gU2NoZW1hRGlmZk1v
ZGVsLkNPTVBBUklTT05fU1RBVFVTWyd0YXJnZXRfb25seSddOgorICAgICAgICAgICAgZGlmZiA9
IHNlbGYuZGVsZXRlKGdpZD0xLCBzaWQ9dGFyX3NpZCwgZGlkPXRhcl9kaWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2NpZD10YXJfc2NpZCwgdGlkPXRhcl90aWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWR4PXRhcl9vaWQsIG9ubHlfc3FsPVRydWUpCisKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHNvdXJjZSA9IHNlbGYuZmV0Y2hfb2JqZWN0c190b19j
b21wYXJlKHNpZD1zcmNfc2lkLCBkaWQ9c3JjX2RpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c3JjX3NjaWQsIHRpZD1zcmNfdGlkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2lkPXNy
Y19vaWQpCisgICAgICAgICAgICB0YXJnZXQgPSBzZWxmLmZldGNoX29iamVjdHNfdG9fY29tcGFy
ZShzaWQ9dGFyX3NpZCwgZGlkPXRhcl9kaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzY2lkPXRhcl9zY2lkLCB0aWQ9dGFyX3RpZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9pZD10YXJfb2lk
KQorCisgICAgICAgICAgICBpZiBub3QgKHNvdXJjZSBvciB0YXJnZXQpOgorICAgICAgICAgICAg
ICAgIHJldHVybiBOb25lCisKKyAgICAgICAgICAgIGRpZmZfZGljdCA9IGRpcmVjdG9yeV9kaWZm
KAorICAgICAgICAgICAgICAgIHNvdXJjZSwgdGFyZ2V0LCBpZ25vcmVfa2V5cz1zZWxmLmtleXNf
dG9faWdub3JlLAorICAgICAgICAgICAgICAgIGRpZmZlcmVuY2U9e30KKyAgICAgICAgICAgICkK
KworICAgICAgICAgICAgcmVxdWlyZWRfY3JlYXRlX2tleXMgPSBbJ2NvbHVtbnMnXQorICAgICAg
ICAgICAgY3JlYXRlX3JlcSA9IEZhbHNlCisKKyAgICAgICAgICAgIGZvciBrZXkgaW4gcmVxdWly
ZWRfY3JlYXRlX2tleXM6CisgICAgICAgICAgICAgICAgaWYga2V5IGluIGRpZmZfZGljdDoKKyAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlX3JlcSA9IFRydWUKKworICAgICAgICAgICAgaWYgY3Jl
YXRlX3JlcToKKyAgICAgICAgICAgICAgICBkaWZmID0gc2VsZi5nZXRfc3FsX2Zyb21faW5kZXhf
ZGlmZihzaWQ9c3JjX3NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaWQ9c3JjX2RpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzY2lkPXNyY19zY2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD1zcmNfdGlkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeD1zcmNfb2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZf
c2NoZW1hPXRhcmdldF9zY2hlbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZHJvcF9yZXE9VHJ1ZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgZGlmZiA9IHNlbGYuZ2V0X3NxbF9mcm9tX2luZGV4X2RpZmYoc2lkPXRhcl9z
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkPXRhcl9kaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2NpZD10YXJfc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aWQ9dGFyX3RpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHg9dGFyX29pZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRpZmZfZGljdCkKKwor
ICAgICAgICByZXR1cm4gZGlmZgorCiAKK1NjaGVtYURpZmZSZWdpc3RyeSgnaW5kZXgnLCBJbmRl
eGVzVmlldywgJ3RhYmxlJykKIEluZGV4ZXNWaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhibHVlcHJp
bnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy
cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy91dGlscy5weSBiL3dlYi9wZ2FkbWlu
L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9p
bmRleGVzL3V0aWxzLnB5CmluZGV4IDQ0NTM0YWM2ZS4uZWI5MDAxZjBhIDEwMDY0NAotLS0gYS93
ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h
cy90YWJsZXMvaW5kZXhlcy91dGlscy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl
cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy91dGlscy5w
eQpAQCAtMjYsNyArMjYsNyBAQCBkZWYgZ2V0X3RlbXBsYXRlX3BhdGgoZik6CiAgICAgZGVmIHdy
YXAoKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHRo
ZSBjb25uZWN0aW9uIG9iamVjdAogICAgICAgICBjb25uX29iaiA9IGFyZ3NbMF0KLSAgICAgICAg
aWYgJ3RlbXBsYXRlX3BhdGgnIG5vdCBpbiBrd2FyZ3M6CisgICAgICAgIGlmICd0ZW1wbGF0ZV9w
YXRoJyBub3QgaW4ga3dhcmdzIG9yIGt3YXJnc1sndGVtcGxhdGVfcGF0aCddIGlzIE5vbmU6CiAg
ICAgICAgICAgICBrd2FyZ3NbJ3RlbXBsYXRlX3BhdGgnXSA9IFwKICAgICAgICAgICAgICAgICAn
aW5kZXhlcy9zcWwvI3swfSMnLmZvcm1hdChjb25uX29iai5tYW5hZ2VyLnZlcnNpb24pCiAKQEAg
LTIyOSw3ICsyMjksNyBAQCBkZWYgZ2V0X3NxbChjb25uLCBkYXRhLCBkaWQsIHRpZCwgaWR4LCBk
YXRsYXN0c3lzb2lkLAogQGdldF90ZW1wbGF0ZV9wYXRoCiBkZWYgZ2V0X3JldmVyc2VfZW5naW5l
ZXJlZF9zcWwoY29ubiwgc2NoZW1hLCB0YWJsZSwgZGlkLCB0aWQsIGlkeCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkYXRsYXN0c3lzb2lkLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlbXBsYXRlX3BhdGg9Tm9uZSk6CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVtcGxhdGVfcGF0aD1Ob25lLCB3aXRoX2hlYWRlcj1UcnVlKToKICAgICAiIiIKICAg
ICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHJldmVyc2UgZW5naW5lZXJlZCBzcWwgZm9yIHNw
ZWNpZmllZCB0cmlnZ2VyLgogCkBAIC0yNDAsNiArMjQwLDggQEAgZGVmIGdldF9yZXZlcnNlX2Vu
Z2luZWVyZWRfc3FsKGNvbm4sIHNjaGVtYSwgdGFibGUsIGRpZCwgdGlkLCBpZHgsCiAgICAgOnBh
cmFtIGlkeDogSW5kZXggSUQKICAgICA6cGFyYW0gZGF0bGFzdHN5c29pZDoKICAgICA6cGFyYW0g
dGVtcGxhdGVfcGF0aDogT3B0aW9uYWwgdGVtcGxhdGUgcGF0aAorICAgIDpwYXJhbSB3aXRoX2hl
YWRlcjogT3B0aW9uYWwgcGFyYW1ldGVyIHRvIGRlY2lkZSB3aGV0aGVyIHRoZSBTUUwgd2lsbCBi
ZQorICAgICByZXR1cm5lZCB3aXRoIGhlYWRlciBvciBub3QKICAgICA6cmV0dXJuOgogICAgICIi
IgogICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbdGVtcGxhdGVfcGF0aCwgJ3By
b3BlcnRpZXMuc3FsJ10pLApAQCAtMjY3LDExICsyNjksMTIgQEAgZGVmIGdldF9yZXZlcnNlX2Vu
Z2luZWVyZWRfc3FsKGNvbm4sIHNjaGVtYSwgdGFibGUsIGRpZCwgdGlkLCBpZHgsCiAKICAgICBT
UUwsIG5hbWUgPSBnZXRfc3FsKGNvbm4sIGRhdGEsIGRpZCwgdGlkLCBOb25lLCBkYXRsYXN0c3lz
b2lkKQogCi0gICAgc3FsX2hlYWRlciA9IHUiLS0gSW5kZXg6IHswfVxuXG4tLSAiLmZvcm1hdChk
YXRhWyduYW1lJ10pCisgICAgaWYgd2l0aF9oZWFkZXI6CisgICAgICAgIHNxbF9oZWFkZXIgPSB1
Ii0tIEluZGV4OiB7MH1cblxuLS0gIi5mb3JtYXQoZGF0YVsnbmFtZSddKQogCi0gICAgc3FsX2hl
YWRlciArPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3RlbXBsYXRlX3BhdGgsICdkZWxldGUu
c3FsJ10pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29u
bj1jb25uKQorICAgICAgICBzcWxfaGVhZGVyICs9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb
dGVtcGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1jb25uKQogCi0gICAgU1FMID0gc3FsX2hlYWRl
ciArICdcblxuJyArIFNRTAorICAgICAgICBTUUwgPSBzcWxfaGVhZGVyICsgJ1xuXG4nICsgU1FM
CiAKICAgICByZXR1cm4gU1FMCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl
cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcGFydGl0aW9ucy9fX2lu
aXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi
YXNlcy9zY2hlbWFzL3RhYmxlcy9wYXJ0aXRpb25zL19faW5pdF9fLnB5CmluZGV4IGFhNjY5NGEz
OS4uNDQzOGM4OWRmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91
cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcGFydGl0aW9ucy9fX2luaXRfXy5w
eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz
ZXMvc2NoZW1hcy90YWJsZXMvcGFydGl0aW9ucy9fX2luaXRfXy5weQpAQCAtMjQsNiArMjQsMTEg
QEAgZnJvbSBwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVN
b2R1bGUKIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2Us
IHByZWNvbmRpdGlvbl9yZXF1aXJlZAogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJ
VkVSCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE1vZHVsZQorZnJv
bSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLm5vZGVfcmVnaXN0cnkgaW1wb3J0IFNjaGVtYURp
ZmZSZWdpc3RyeQorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLmRpcmVjdG9yeV9jb21w
YXJlIGltcG9ydCBjb21wYXJlX2RpY3Rpb25hcmllcyxcCisgICAgZGlyZWN0b3J5X2RpZmYKK2Zy
b20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5tb2RlbCBpbXBvcnQgU2NoZW1hRGlmZk1vZGVs
Citmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYuY29tcGFyZSBpbXBvcnQgU2NoZW1hRGlm
Zk9iamVjdENvbXBhcmUKIAogCiBkZWYgYmFja2VuZF9zdXBwb3J0ZWQobW9kdWxlLCBtYW5hZ2Vy
LCAqKmt3YXJncyk6CkBAIC0xNTIsNyArMTU3LDggQEAgY2xhc3MgUGFydGl0aW9uc01vZHVsZShD
b2xsZWN0aW9uTm9kZU1vZHVsZSk6CiBibHVlcHJpbnQgPSBQYXJ0aXRpb25zTW9kdWxlKF9fbmFt
ZV9fKQogCiAKLWNsYXNzIFBhcnRpdGlvbnNWaWV3KEJhc2VUYWJsZVZpZXcsIERhdGFUeXBlUmVh
ZGVyLCBWYWN1dW1TZXR0aW5ncyk6CitjbGFzcyBQYXJ0aXRpb25zVmlldyhCYXNlVGFibGVWaWV3
LCBEYXRhVHlwZVJlYWRlciwgVmFjdXVtU2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICBT
Y2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgIiIiCiAgICAgVGhpcyBjbGFzcyBpcyByZXNw
b25zaWJsZSBmb3IgZ2VuZXJhdGluZyByb3V0ZXMgZm9yIFBhcnRpdGlvbiBub2RlCiAKQEAgLTIw
MCw2ICsyMDYsMTAgQEAgY2xhc3MgUGFydGl0aW9uc1ZpZXcoQmFzZVRhYmxlVmlldywgRGF0YVR5
cGVSZWFkZXIsIFZhY3V1bVNldHRpbmdzKToKIAogICAgIH0pCiAKKyAgICAjIFNjaGVtYSBEaWZm
OiBLZXlzIHRvIGlnbm9yZSB3aGlsZSBjb21wYXJpbmcKKyAgICBrZXlzX3RvX2lnbm9yZSA9IFsn
b2lkJywgJ3NjaGVtYScsICd2YWN1dW1fdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAgICd2
YWN1dW1fdG9hc3QnLCAnZWRpdF90eXBlcyddCisKICAgICBkZWYgY2hpbGRyZW4oc2VsZiwgKipr
d2FyZ3MpOgogICAgICAgICAiIiJCdWlsZCBhIGxpc3Qgb2YgdHJlZXZpZXcgbm9kZXMgZnJvbSB0
aGUgY2hpbGQgbm9kZXMuIiIiCiAKQEAgLTM2Nyw2ICszNzcsNjMgQEAgY2xhc3MgUGFydGl0aW9u
c1ZpZXcoQmFzZVRhYmxlVmlldywgRGF0YVR5cGVSZWFkZXIsIFZhY3V1bVNldHRpbmdzKToKICAg
ICAgICAgcmV0dXJuIHN1cGVyKFBhcnRpdGlvbnNWaWV3LCBzZWxmKS5wcm9wZXJ0aWVzKAogICAg
ICAgICAgICAgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgcHRpZCwgcmVzKQogCisgICAgQEJhc2VUYWJs
ZVZpZXcuY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGZldGNoX29iamVjdHNfdG9fY29tcGFy
ZShzZWxmLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBwdGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAg
ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBsaXN0IG9mIGFsbCB0aGUgdGFibGVz
IGZvcgorICAgICAgICBzcGVjaWZpZWQgc2NoZW1hIGlkLgorCisgICAgICAgIDpwYXJhbSBzaWQ6
IFNlcnZlciBJZAorICAgICAgICA6cGFyYW0gZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICA6cGFy
YW0gc2NpZDogU2NoZW1hIElkCisgICAgICAgIDpwYXJhbSB0aWQ6IFRhYmxlIElkCisgICAgICAg
IDpwYXJhbSBwdGlmOiBQYXJ0aXRpb24gdGFibGUgSWQKKyAgICAgICAgOnJldHVybjoKKyAgICAg
ICAgIiIiCisgICAgICAgIHJlcyA9IHt9CisKKyAgICAgICAgaWYgcHRpZDoKKyAgICAgICAgICAg
IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5wYXJ0aXRpb25fdGVtcGxhdGVf
cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3Bl
cnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZD1kaWQs
IHNjaWQ9c2NpZCwgdGlkPXRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dGlkPXB0aWQsIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkKQorICAgICAgICAgICAg
c3RhdHVzLCByZXN1bHQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAg
IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmVycm9y
KHJlc3VsdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAgICAgcmVz
ID0gc3VwZXIoUGFydGl0aW9uc1ZpZXcsIHNlbGYpLnByb3BlcnRpZXMoCisgICAgICAgICAgICAg
ICAgMCwgc2lkLCBkaWQsIHNjaWQsIHB0aWQsIHJlc3VsdCkKKworICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2lu
KFtzZWxmLnBhcnRpdGlvbl90ZW1wbGF0ZV9wYXRoLCAnbm9kZXMuc3FsJ10pLAorICAgICAgICAg
ICAgICAgIHNjaWQ9c2NpZCwgdGlkPXRpZAorICAgICAgICAgICAgKQorICAgICAgICAgICAgc3Rh
dHVzLCBwYXJ0aXRpb25zID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAg
ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5l
cnJvcihwYXJ0aXRpb25zKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAg
ICAgICBmb3Igcm93IGluIHBhcnRpdGlvbnNbJ3Jvd3MnXToKKyAgICAgICAgICAgICAgICBTUUwg
PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYucGFydGl0aW9uX3RlbXBsYXRlX3BhdGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVy
dGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZD1k
aWQsIHNjaWQ9c2NpZCwgdGlkPXRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHRpZD1yb3dbJ29pZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKKyAgICAgICAgICAgICAgICBz
dGF0dXMsIHJlc3VsdCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgICAg
ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudF9hcHAubG9n
Z2VyLmVycm9yKHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAg
ICAgICAgICAgICAgICBkYXRhID0gc3VwZXIoUGFydGl0aW9uc1ZpZXcsIHNlbGYpLnByb3BlcnRp
ZXMoCisgICAgICAgICAgICAgICAgICAgIDAsIHNpZCwgZGlkLCBzY2lkLCByb3dbJ29pZCddLCBy
ZXN1bHQsIEZhbHNlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHJlc1tyb3db
J25hbWUnXV0gPSBkYXRhCisKKyAgICAgICAgICAgIHJldHVybiByZXMKKwogICAgIEBCYXNlVGFi
bGVWaWV3LmNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBzaWQsIGRp
ZCwgc2NpZCwgdGlkLCBwdGlkKToKICAgICAgICAgIiIiCkBAIC00MDAsNiArNDY3LDYyIEBAIGNs
YXNzIFBhcnRpdGlvbnNWaWV3KEJhc2VUYWJsZVZpZXcsIERhdGFUeXBlUmVhZGVyLCBWYWN1dW1T
ZXR0aW5ncyk6CiAgICAgICAgIHJldHVybiBCYXNlVGFibGVWaWV3LmdldF9yZXZlcnNlX2VuZ2lu
ZWVyZWRfc3FsKHNlbGYsIGRpZCwgc2NpZCwgcHRpZCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbl9zcWwsIGRhdGEpCiAKKyAgICBA
QmFzZVRhYmxlVmlldy5jaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3NxbF9mcm9tX2Rp
ZmYoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3
aWxsIGNyZWF0ZSBzcWwgb24gdGhlIGJhc2lzIHRoZSBkaWZmZXJlbmNlIG9mIDIgdGFibGVzCisg
ICAgICAgICIiIgorICAgICAgICBkYXRhID0gZGljdCgpCisgICAgICAgIHJlcyA9IE5vbmUKKyAg
ICAgICAgc2lkID0ga3dhcmdzWydzaWQnXQorICAgICAgICBkaWQgPSBrd2FyZ3NbJ2RpZCddCisg
ICAgICAgIHNjaWQgPSBrd2FyZ3NbJ3NjaWQnXQorICAgICAgICB0aWQgPSBrd2FyZ3NbJ3RpZCdd
CisgICAgICAgIHB0aWQgPSBrd2FyZ3NbJ3B0aWQnXQorICAgICAgICBkaWZmX2RhdGEgPSBrd2Fy
Z3NbJ2RpZmZfZGF0YSddIGlmICdkaWZmX2RhdGEnIGluIGt3YXJncyBlbHNlIE5vbmUKKyAgICAg
ICAganNvbl9yZXNwID0ga3dhcmdzWydqc29uX3Jlc3AnXSBpZiAnanNvbl9yZXNwJyBpbiBrd2Fy
Z3MgZWxzZSBUcnVlCisgICAgICAgIGRpZmZfc2NoZW1hID0ga3dhcmdzWydkaWZmX3NjaGVtYSdd
IGlmICdkaWZmX3NjaGVtYScgaW4ga3dhcmdzIGVsc2VcCisgICAgICAgICAgICBOb25lCisKKyAg
ICAgICAgaWYgZGlmZl9kYXRhOgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIv
Ii5qb2luKFtzZWxmLnBhcnRpdGlvbl90ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkPWRpZCwgc2NpZD1zY2lkLCB0aWQ9dGlkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0aWQ9cHRpZCwgZGF0bGFzdHN5c29pZD1z
ZWxmLmRhdGxhc3RzeXNvaWQpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l
eGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg
ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAg
ICAgICAgU1FMLCBuYW1lID0gc2VsZi5nZXRfc3FsKGRpZCwgc2NpZCwgcHRpZCwgZGlmZl9kYXRh
LCByZXMpCisgICAgICAgICAgICBTUUwgPSByZS5zdWIoJ1xuezIsfScsICdcblxuJywgU1FMKQor
ICAgICAgICAgICAgU1FMID0gU1FMLnN0cmlwKCdcbicpCisgICAgICAgICAgICByZXR1cm4gU1FM
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtYWluX3NxbCA9IFtdCisKKyAgICAgICAgICAg
IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5wYXJ0aXRpb25fdGVtcGxhdGVf
cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3Bl
cnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZD1kaWQs
IHNjaWQ9c2NpZCwgdGlkPXRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dGlkPXB0aWQsIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkKQorICAgICAgICAgICAg
c3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgIGlm
IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv
cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoK
KyAgICAgICAgICAgICAgICByZXR1cm4gZ29uZShnZXR0ZXh0KAorICAgICAgICAgICAgICAgICAg
ICAiVGhlIHNwZWNpZmllZCBwYXJ0aXRpb25lZCB0YWJsZSBjb3VsZCBub3QgYmUgZm91bmQuIikp
CisKKyAgICAgICAgICAgIGRhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICAgICBpZiBk
aWZmX3NjaGVtYToKKyAgICAgICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IGRpZmZfc2NoZW1h
CisgICAgICAgICAgICAgICAgZGF0YVsncGFyZW50X3NjaGVtYSddID0gZGlmZl9zY2hlbWEKKwor
ICAgICAgICAgICAgcmV0dXJuIEJhc2VUYWJsZVZpZXcuZ2V0X3JldmVyc2VfZW5naW5lZXJlZF9z
cWwoc2VsZiwgZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2NpZCwgcHRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fc3FsLCBkYXRhLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFs
c2UpCisKICAgICBAQmFzZVRhYmxlVmlldy5jaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgZGV0
YWNoKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgcHRpZCk6CiAgICAgICAgICIiIgpA
QCAtNjAxLDcgKzcyNCw3IEBAIGNsYXNzIFBhcnRpdGlvbnNWaWV3KEJhc2VUYWJsZVZpZXcsIERh
dGFUeXBlUmVhZGVyLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAgICByZXR1cm4gaW50ZXJu
YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKIAogICAgIEBCYXNlVGFibGVWaWV3LmNo
ZWNrX3ByZWNvbmRpdGlvbgotICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2Np
ZCwgdGlkLCBwdGlkPU5vbmUpOgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg
c2NpZCwgdGlkLCBwdGlkPU5vbmUsIG9ubHlfc3FsPUZhbHNlKToKICAgICAgICAgIiIiCiAgICAg
ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgdGhlIHRhYmxlIG9iamVjdAogCkBAIC02NTYs
NSArNzc5LDYxIEBAIGNsYXNzIFBhcnRpdGlvbnNWaWV3KEJhc2VUYWJsZVZpZXcsIERhdGFUeXBl
UmVhZGVyLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK
ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp
KQogCisgICAgZGVmIGRkbF9jb21wYXJlKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisg
ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBjb21wYXJlIGluZGV4IHByb3BlcnRpZXMgYW5kCisg
ICAgICAgIHJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiBTUUwKKyAgICAgICAgIiIiCisKKyAgICAg
ICAgc3JjX3NpZCA9IGt3YXJncy5nZXQoJ3NvdXJjZV9zaWQnKQorICAgICAgICBzcmNfZGlkID0g
a3dhcmdzLmdldCgnc291cmNlX2RpZCcpCisgICAgICAgIHNyY19zY2lkID0ga3dhcmdzLmdldCgn
c291cmNlX3NjaWQnKQorICAgICAgICBzcmNfdGlkID0ga3dhcmdzLmdldCgnc291cmNlX3RpZCcp
CisgICAgICAgIHNyY19vaWQgPSBrd2FyZ3MuZ2V0KCdzb3VyY2Vfb2lkJykKKyAgICAgICAgdGFy
X3NpZCA9IGt3YXJncy5nZXQoJ3RhcmdldF9zaWQnKQorICAgICAgICB0YXJfZGlkID0ga3dhcmdz
LmdldCgndGFyZ2V0X2RpZCcpCisgICAgICAgIHRhcl9zY2lkID0ga3dhcmdzLmdldCgndGFyZ2V0
X3NjaWQnKQorICAgICAgICB0YXJfdGlkID0ga3dhcmdzLmdldCgndGFyZ2V0X3RpZCcpCisgICAg
ICAgIHRhcl9vaWQgPSBrd2FyZ3MuZ2V0KCd0YXJnZXRfb2lkJykKKyAgICAgICAgY29tcF9zdGF0
dXMgPSBrd2FyZ3MuZ2V0KCdjb21wX3N0YXR1cycpCisKKyAgICAgICAgc291cmNlID0gJycKKyAg
ICAgICAgdGFyZ2V0ID0gJycKKyAgICAgICAgZGlmZiA9ICcnCisKKyAgICAgICAgc3RhdHVzLCB0
YXJnZXRfc2NoZW1hID0gc2VsZi5nZXRfc2NoZW1hX2Zvcl9zY2hlbWFfZGlmZih0YXJfc2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRhcl9kaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGFyX3NjaWQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIGlmIG5v
dCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y
bXNnPXRhcmdldF9zY2hlbWEpCisKKyAgICAgICAgaWYgY29tcF9zdGF0dXMgPT0gU2NoZW1hRGlm
Zk1vZGVsLkNPTVBBUklTT05fU1RBVFVTWydzb3VyY2Vfb25seSddOgorICAgICAgICAgICAgZGlm
ZiA9IHNlbGYuZ2V0X3NxbF9mcm9tX2RpZmYoc2lkPXNyY19zaWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWQ9c3JjX2RpZCwgc2NpZD1zcmNfc2NpZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD1zcmNfdGlkLCBwdGlk
PXNyY19vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZm
X3NjaGVtYT10YXJnZXRfc2NoZW1hKQorCisgICAgICAgIGVsaWYgY29tcF9zdGF0dXMgPT0gU2No
ZW1hRGlmZk1vZGVsLkNPTVBBUklTT05fU1RBVFVTWyd0YXJnZXRfb25seSddOgorICAgICAgICAg
ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnBhcnRpdGlvbl90ZW1wbGF0
ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJv
cGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkPWRp
ZCwgc2NpZD1zY2lkLCB0aWQ9dGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB0aWQ9cHRpZCwgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQpCisgICAgICAgICAg
ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgICAg
ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYu
dGFibGVfdGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAg
IGRpZD10YXJfZGlkLCBzY2lkPXRhcl9zY2lkLCB0aWQ9dGFyX29pZCwKKyAgICAgICAgICAgICAg
ICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZAorICAgICAgICAgICAgKQorICAgICAg
ICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAg
ICAgIGlmIHN0YXR1czoKKyAgICAgICAgICAgICAgICBzZWxmLmNtZCA9ICdkZWxldGUnCisgICAg
ICAgICAgICAgICAgZGlmZiA9IHN1cGVyKFBhcnRpdGlvbnNWaWV3LCBzZWxmKS5nZXRfZGVsZXRl
X3NxbChyZXMpCisgICAgICAgICAgICAgICAgc2VsZi5jbWQgPSBOb25lCisKKyAgICAgICAgcmV0
dXJuIGRpZmYKKwogCitTY2hlbWFEaWZmUmVnaXN0cnkoJ3BhcnRpdGlvbicsIFBhcnRpdGlvbnNW
aWV3LCAndGFibGUnKQogUGFydGl0aW9uc1ZpZXcucmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVwcmlu
dCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz
L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWlu
L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9y
dWxlcy9fX2luaXRfXy5weQppbmRleCAwNzA4NzVlOGYuLjQ3OWVkZjc4ZSAxMDA2NDQKLS0tIGEv
d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt
YXMvdGFibGVzL3J1bGVzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy
dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy9fX2luaXRf
Xy5weQpAQCAtMTMsNyArMTMsOCBAQCBpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uCiBmcm9tIGZ1
bmN0b29scyBpbXBvcnQgd3JhcHMKIAogaW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv
dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMgYXMgc2NoZW1hcwotZnJvbSBmbGFzayBpbXBv
cnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29uaWZ5Citmcm9t
IGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxhdGUsIG1ha2VfcmVzcG9uc2UsIHJlcXVlc3QsIGpz
b25pZnksXAorICAgIGN1cnJlbnRfYXBwCiBmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRl
eHQKIGZyb20gcGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2Rl
TW9kdWxlCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh
c2VzLnNjaGVtYXMudXRpbHMgaW1wb3J0IFwKQEAgLTIzLDcgKzI0LDExIEBAIGZyb20gcGdhZG1p
bi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9l
cnJvciwgXAogICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgZ29uZQogZnJvbSBw
Z2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgogZnJvbSBjb25maWcgaW1wb3J0
IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIHBnYWRtaW4udXRpbHMuY29tcGlsZV90ZW1wbGF0ZV9u
YW1lIGltcG9ydCBjb21waWxlX3RlbXBsYXRlX3BhdGgKIGZyb20gcGdhZG1pbi51dGlscyBpbXBv
cnQgSVNfUFkyCitmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9yZWdpc3RyeSBp
bXBvcnQgU2NoZW1hRGlmZlJlZ2lzdHJ5Citmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYu
Y29tcGFyZSBpbXBvcnQgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUKKwogIyBJZiB3ZSBhcmUgaW4g
UHl0aG9uMwogaWYgbm90IElTX1BZMjoKICAgICB1bmljb2RlID0gc3RyCkBAIC0xMzQsNyArMTM5
LDcgQEAgY2xhc3MgUnVsZU1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CiBibHVlcHJpbnQg
PSBSdWxlTW9kdWxlKF9fbmFtZV9fKQogCiAKLWNsYXNzIFJ1bGVWaWV3KFBHQ2hpbGROb2RlVmll
dyk6CitjbGFzcyBSdWxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIFNjaGVtYURpZmZPYmplY3RDb21w
YXJlKToKICAgICAiIiIKICAgICBUaGlzIGlzIGEgY2xhc3MgZm9yIHJ1bGUgbm9kZSB3aGljaCBp
bmhlcml0cyB0aGUKICAgICBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGZyb20gUEdDaGlsZE5vZGVW
aWV3IGNsYXNzIGFuZCBkZWZpbmUKQEAgLTE3OCw2ICsxODMsOSBAQCBjbGFzcyBSdWxlVmlldyhQ
R0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAnY29uZmlncyc6IFt7J2dldCc6ICdjb25maWdzJ31d
CiAgICAgfSkKIAorICAgICMgU2NoZW1hIERpZmY6IEtleXMgdG8gaWdub3JlIHdoaWxlIGNvbXBh
cmluZworICAgIGtleXNfdG9faWdub3JlID0gWydvaWQnLCAnc2NoZW1hJywgJ2RlZmluaXRpb24n
XQorCiAgICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKICAgICAgICAgIiIiCiAgICAgICAg
IFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVj
ayB0aGUKQEAgLTE5Nyw2ICsyMDUsMTIgQEAgY2xhc3MgUnVsZVZpZXcoUEdDaGlsZE5vZGVWaWV3
KToKICAgICAgICAgICAgIF1bJ2RhdGxhc3RzeXNvaWQnXSBpZiBzZWxmLm1hbmFnZXIuZGJfaW5m
byBpcyBub3QgTm9uZSBhbmQgXAogICAgICAgICAgICAgICAgIGt3YXJnc1snZGlkJ10gaW4gc2Vs
Zi5tYW5hZ2VyLmRiX2luZm8gZWxzZSAwCiAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgg
PSAncnVsZXMvc3FsJworICAgICAgICAgICAgc2VsZi50YWJsZV90ZW1wbGF0ZV9wYXRoID0gY29t
cGlsZV90ZW1wbGF0ZV9wYXRoKAorICAgICAgICAgICAgICAgICd0YWJsZXMvc3FsJywKKyAgICAg
ICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUsCisgICAgICAgICAgICAgICAgc2Vs
Zi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgICAgICkKKwogICAgICAgICAgICAgcmV0dXJuIGYo
KmFyZ3MsICoqa3dhcmdzKQogCiAgICAgICAgIHJldHVybiB3cmFwCkBAIC0yNzgsNiArMjkyLDIx
IEBAIGNsYXNzIFJ1bGVWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICIiIgogICAgICAg
ICBGZXRjaCB0aGUgcHJvcGVydGllcyBvZiBhbiBpbmRpdmlkdWFsIHJ1bGUgYW5kIHJlbmRlciBp
biBwcm9wZXJ0aWVzIHRhYgogCisgICAgICAgICIiIgorICAgICAgICBzdGF0dXMsIGRhdGEgPSBz
ZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKHJpZCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg
ICAgICAgIHJldHVybiBkYXRhCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAg
ICAgICAgICByZXNwb25zZT1kYXRhLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAp
CisKKyAgICBkZWYgX2ZldGNoX3Byb3BlcnRpZXMoc2VsZiwgcmlkKToKKyAgICAgICAgIiIiCisg
ICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBmZXRjaCB0aGUgcHJvcGVydGllcyBvZiB0
aGUgc3BlY2lmaWVkIG9iamVjdAorICAgICAgICA6cGFyYW0gcmlkOgorICAgICAgICA6cmV0dXJu
OgogICAgICAgICAiIiIKICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAog
ICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10KQEAgLTI4
NSwxNSArMzE0LDEzIEBAIGNsYXNzIFJ1bGVWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAg
IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAKICAgICAgICAgaWYg
bm90IHN0YXR1czoKLSAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy
b3Jtc2c9cmVzKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJy
b3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKLSAg
ICAgICAgICAgIHJldHVybiBnb25lKGdldHRleHQoIiIiQ291bGQgbm90IGZpbmQgdGhlIHJ1bGUg
aW4gdGhlIHRhYmxlLiIiIikpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGdvbmUoCisgICAg
ICAgICAgICAgICAgZ2V0dGV4dCgiIiJDb3VsZCBub3QgZmluZCB0aGUgcnVsZSBpbiB0aGUgdGFi
bGUuIiIiKSkKIAotICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKLSAgICAgICAgICAgIHJl
c3BvbnNlPXBhcnNlX3J1bGVfZGVmaW5pdGlvbihyZXMpLAotICAgICAgICAgICAgc3RhdHVzPTIw
MAotICAgICAgICApCisgICAgICAgIHJldHVybiBUcnVlLCBwYXJzZV9ydWxlX2RlZmluaXRpb24o
cmVzKQogCiAgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lk
LCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKQEAgLTM2OSw3ICszOTYsNyBAQCBjbGFzcyBSdWxlVmll
dyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l
cnJvcihlcnJvcm1zZz1zdHIoZSkpCiAKICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCi0gICAgZGVm
IGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIHJpZD1Ob25lKToKKyAgICBk
ZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgcmlkPU5vbmUsIG9ubHlf
c3FsPUZhbHNlKToKICAgICAgICAgIiIiCiAgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9w
IGEgcnVsZSBvYmplY3QKICAgICAgICAgIiIiCkBAIC00MTIsNiArNDM5LDggQEAgY2xhc3MgUnVs
ZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICAgICAgbnNwbmFtZT1yc2V0
Wyduc3BuYW1lJ10sCiAgICAgICAgICAgICAgICAgICAgIGNhc2NhZGU9Y2FzY2FkZQogICAgICAg
ICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBpZiBvbmx5X3NxbDoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIFNRTAogICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u
LmV4ZWN1dGVfc2NhbGFyKFNRTCkKICAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl
cykKQEAgLTQ4OSw2ICs1MTgsNDQgQEAgY2xhc3MgUnVsZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToK
ICAgICAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwgZGF0
YT1kYXRhKQogICAgICAgICByZXR1cm4gU1FMLCBkYXRhWyduYW1lJ10gaWYgJ25hbWUnIGluIGRh
dGEgZWxzZSBvbGRfZGF0YVsnbmFtZSddCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg
ZGVmIGdldF9zcWxfZnJvbV9kaWZmKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgb2lk
LCBkYXRhPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZfc2NoZW1hPU5vbmUs
IGRyb3Bfc3FsPUZhbHNlKToKKworICAgICAgICBpZiBkcm9wX3NxbDoKKyAgICAgICAgICAgIFNR
TCA9IHNlbGYuZGVsZXRlKGdpZD1naWQsIHNpZD1zaWQsIGRpZD1kaWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzY2lkPXNjaWQsIHRpZD10aWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByaWQ9b2lkLCBvbmx5X3NxbD1UcnVlKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgIFtz
ZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwgcmlkPW9pZCkKKyAgICAgICAg
ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAg
ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf
ZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAw
OgorICAgICAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgICAgICAgICBnZXR0
ZXh0KCIiIkNvdWxkIG5vdCBmaW5kIHRoZSBydWxlIGluIHRoZSB0YWJsZS4iIiIpCisgICAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgcmVzX2RhdGEgPSBwYXJzZV9ydWxlX2RlZmluaXRpb24o
cmVzKQorCisgICAgICAgICAgICBTUUwgPSAnJworCisgICAgICAgICAgICBpZiBkYXRhOgorICAg
ICAgICAgICAgICAgIG9sZF9kYXRhID0gcmVzX2RhdGEKKyAgICAgICAgICAgICAgICBTUUwgPSBy
ZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBs
YXRlX3BhdGgsICd1cGRhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEs
IG9fZGF0YT1vbGRfZGF0YQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgaWYgZGlmZl9zY2hlbWE6CisgICAgICAgICAgICAgICAgICAgIHJlc19k
YXRhWydzY2hlbWEnXSA9IGRpZmZfc2NoZW1hCisKKyAgICAgICAgICAgICAgICBTUUwgPSByZW5k
ZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRl
X3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXJlc19kYXRh
LCBkaXNwbGF5X2NvbW1lbnRzPVRydWUpCisKKyAgICAgICAgcmV0dXJuIFNRTAorCiAgICAgQGNo
ZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBkZXBlbmRlbnRzKHNlbGYsIGdpZCwgc2lkLCBkaWQs
IHNjaWQsIHRpZCwgcmlkKToKICAgICAgICAgIiIiCkBAIC01MjcsNSArNTk0LDQ3IEBAIGNsYXNz
IFJ1bGVWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICBzdGF0dXM9MjAwCiAgICAg
ICAgICkKIAorICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZmV0Y2hfb2JqZWN0c190
b19jb21wYXJlKHNlbGYsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIG9pZD1Ob25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlX2tleXM9RmFsc2UpOgorICAgICAgICAiIiIK
KyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBsaXN0IG9mIGFsbCB0aGUgcnVs
ZXMgZm9yCisgICAgICAgIHNwZWNpZmllZCBzY2hlbWEgaWQuCisKKyAgICAgICAgOnBhcmFtIHNp
ZDogU2VydmVyIElkCisgICAgICAgIDpwYXJhbSBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgIDpw
YXJhbSBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgOnBhcmFtIHRpZDogVGFibGUgSWQKKyAgICAg
ICAgOnJldHVybjoKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVzID0ge30KKyAgICAgICAgaWYg
b2lkOgorICAgICAgICAgICAgc3RhdHVzLCBkYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhv
aWQpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIGN1cnJlbnRf
YXBwLmxvZ2dlci5lcnJvcihkYXRhKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisg
ICAgICAgICAgICByZXMgPSBkYXRhCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBTUUwgPSBy
ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vZGVzLnNxbCddKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9dGlkKQorICAgICAgICAgICAgc3RhdHVzLCBy
dWxlcyA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgaWYgbm90
IHN0YXR1czoKKyAgICAgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXJyb3IocnVsZXMp
CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGZvciByb3cgaW4g
cnVsZXNbJ3Jvd3MnXToKKyAgICAgICAgICAgICAgICBzdGF0dXMsIGRhdGEgPSBzZWxmLl9mZXRj
aF9wcm9wZXJ0aWVzKHJvd1snb2lkJ10pCisgICAgICAgICAgICAgICAgaWYgc3RhdHVzOgorICAg
ICAgICAgICAgICAgICAgICBpZiBpZ25vcmVfa2V5czoKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZvciBrZXkgaW4gc2VsZi5rZXlzX3RvX2lnbm9yZToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiBrZXkgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVs
IGRhdGFba2V5XQorICAgICAgICAgICAgICAgICAgICByZXNbcm93WyduYW1lJ11dID0gZGF0YQor
ICAgICAgICByZXR1cm4gcmVzCisKIAorU2NoZW1hRGlmZlJlZ2lzdHJ5KCdydWxlJywgUnVsZVZp
ZXcsICd0YWJsZScpCiBSdWxlVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZm
IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh
c2VzL3NjaGVtYXMvdGFibGVzL3NjaGVtYV9kaWZmX3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJv
d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3NjaGVt
YV9kaWZmX3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uN2E5
Y2ZmNmZhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv
dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3NjaGVtYV9kaWZmX3V0aWxzLnB5
CkBAIC0wLDAgKzEsNTA3IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ
b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTksIFRoZSBwZ0Fk
bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0
aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisiIiIgSW1wbGVt
ZW50cyBVdGlsaXR5IGNsYXNzIGZvciBUYWJsZSBhbmQgUGFydGl0aW9uZWQgVGFibGUuICIiIgor
CitpbXBvcnQgY29weQorCitmcm9tIGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxhdGUKK2Zyb20g
cGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9y
dCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLmRpcmVj
dG9yeV9jb21wYXJlIGltcG9ydCBjb21wYXJlX2RpY3Rpb25hcmllcyxcCisgICAgZGlyZWN0b3J5
X2RpZmYKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5tb2RlbCBpbXBvcnQgU2NoZW1h
RGlmZk1vZGVsCitmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYuY29tcGFyZSBpbXBvcnQg
U2NoZW1hRGlmZk9iamVjdENvbXBhcmUKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5u
b2RlX3JlZ2lzdHJ5IGltcG9ydCBTY2hlbWFEaWZmUmVnaXN0cnkKKworCitjbGFzcyBTY2hlbWFE
aWZmVGFibGVDb21wYXJlKFNjaGVtYURpZmZPYmplY3RDb21wYXJlKToKKworICAgIGtleXNfdG9f
aWdub3JlID0gWydvaWQnLCAnc2NoZW1hJywgJ3ZhY3V1bV90YWJsZScsCisgICAgICAgICAgICAg
ICAgICAgICAgJ3ZhY3V1bV90b2FzdCcsICdlZGl0X3R5cGVzJywgJ2F0dG51bScsICdjb2xfdHlw
ZScsCisgICAgICAgICAgICAgICAgICAgICAgJ3JlZmVyZW5jZXMnLCAncmVsdHVwbGVzJywgJ3Jv
d3NfY250J10KKworICAgIGtleXNfdG9faWdub3JlX2RkbF9jb21wID0gWydvaWQnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdzY2hlbWEnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdjb2x1bW5zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRp
dF90eXBlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW1hcnlfa2V5JywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhjbHVkZV9jb25zdHJhaW50JywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hlY2tfY29uc3RyYWludCcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvcmVpZ25fa2V5JywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAncmVsdHVwbGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAncm93c19jbnQnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorCisgICAga2V5
c190b19yZW1vdmUgPSB7CisgICAgICAgICdjb2x1bW5zJzogWydyZWxuYW1lJywgJ25zcG5hbWUn
LCAncGFyZW50X3RibCcsICdhdHRyZWxpZCcsICdhZHJlbGlkJ10sCisgICAgICAgICdwcmltYXJ5
X2tleSc6IFsnb2lkJ10sCisgICAgICAgICd1bmlxdWVfY29uc3RyYWludCc6IFsnb2lkJ10sCisg
ICAgICAgICdjaGVja19jb25zdHJhaW50JzogWydvaWQnLCAnbnNwbmFtZSddLAorICAgICAgICAn
Zm9yZWlnbl9rZXknOiBbJ29pZCcsICdma25zcCcsICdjb25mcmVsaWQnXSwKKyAgICAgICAgJ2V4
Y2x1ZGVfY29uc3RyYWludCc6IFsnb2lkJ10sCisgICAgICAgICdwYXJ0aXRpb25zJzogWydvaWQn
XSwKKyAgICB9CisKKyAgICBrZXlzX3RvX3JlbW92ZV9kZGxfY29tcCA9IHsKKyAgICAgICAgJ2Nv
bHVtbnMnOiBbJ3JlbG5hbWUnLCAnbnNwbmFtZScsICdwYXJlbnRfdGJsJywgJ2F0dHJlbGlkJywg
J2FkcmVsaWQnXSwKKyAgICAgICAgJ2NoZWNrX2NvbnN0cmFpbnQnOiBbJ25zcG5hbWUnXSwKKyAg
ICAgICAgJ2ZvcmVpZ25fa2V5JzogWydma25zcCcsICdjb25mcmVsaWQnXQorICAgIH0KKworICAg
IGRlZiBjb21wYXJlKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg
ZnVuY3Rpb24gaXMgdXNlZCB0byBjb21wYXJlIGFsbCB0aGUgdGFibGUgb2JqZWN0cworICAgICAg
ICBmcm9tIHR3byBkaWZmZXJlbnQgc2NoZW1hcy4KKworICAgICAgICA6cmV0dXJuOiBDb21wYXJp
c29uIERpY3Rpb25hcnkKKyAgICAgICAgIiIiCisgICAgICAgIHNyY19zaWQgPSBrd2FyZ3MuZ2V0
KCdzb3VyY2Vfc2lkJykKKyAgICAgICAgc3JjX2RpZCA9IGt3YXJncy5nZXQoJ3NvdXJjZV9kaWQn
KQorICAgICAgICBzcmNfc2NpZCA9IGt3YXJncy5nZXQoJ3NvdXJjZV9zY2lkJykKKyAgICAgICAg
dGFyX3NpZCA9IGt3YXJncy5nZXQoJ3RhcmdldF9zaWQnKQorICAgICAgICB0YXJfZGlkID0ga3dh
cmdzLmdldCgndGFyZ2V0X2RpZCcpCisgICAgICAgIHRhcl9zY2lkID0ga3dhcmdzLmdldCgndGFy
Z2V0X3NjaWQnKQorICAgICAgICBzdWJfbW9kdWxlcyA9IFsnaW5kZXgnLCAncnVsZScsICd0cmln
Z2VyJ10KKworICAgICAgICBzb3VyY2VfdGFibGVzID0gc2VsZi5mZXRjaF90YWJsZXMoc2lkPXNy
Y19zaWQsIGRpZD1zcmNfZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2NpZD1zcmNfc2NpZCkKKworICAgICAgICB0YXJnZXRfdGFibGVzID0gc2VsZi5mZXRj
aF90YWJsZXMoc2lkPXRhcl9zaWQsIGRpZD10YXJfZGlkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2NpZD10YXJfc2NpZCkKKworICAgICAgICBpZiBzZWxmLm1h
bmFnZXIudmVyc2lvbiA+PSAxMjAwMDA6CisgICAgICAgICAgICBzdWJfbW9kdWxlcy5hcHBlbmQo
J2NvbXBvdW5kX3RyaWdnZXInKQorCisgICAgICAgICMgSWYgYm90aCB0aGUgZGljdCBoYXZlIG5v
IGl0ZW1zIHRoZW4gcmV0dXJuIE5vbmUuCisgICAgICAgIGlmIG5vdCAoc291cmNlX3RhYmxlcyBv
ciB0YXJnZXRfdGFibGVzKSBvciAoCisgICAgICAgICAgICAgICAgbGVuKHNvdXJjZV90YWJsZXMp
IDw9IDAgYW5kIGxlbih0YXJnZXRfdGFibGVzKSA8PSAwKToKKyAgICAgICAgICAgIHJldHVybiBO
b25lCisKKyAgICAgICAgc3JjX3NlcnZlcl90eXBlLCB0YXJfc2VydmVyX3R5cGUgPSBzZWxmLmdl
dF9zZXJ2ZXJfdHlwZShzcmNfc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcl9zaWQpCisgICAgICAgIGZvciBtb2R1
bGUgaW4gc3ViX21vZHVsZXM6CisKKyAgICAgICAgICAgIG1vZHVsZV92aWV3ID0gU2NoZW1hRGlm
ZlJlZ2lzdHJ5LmdldF9ub2RlX3ZpZXcoCisgICAgICAgICAgICAgICAgbW9kdWxlKQorCisgICAg
ICAgICAgICAjIEdldCBzdWIgbW9kdWxlIGRhdGEgZm9yIHNvdXJjZSB0YWJsZXMKKyAgICAgICAg
ICAgIGlmIG1vZHVsZV92aWV3LmJsdWVwcmludC5zZXJ2ZXJfdHlwZSBpcyBOb25lIG9yIFwKKyAg
ICAgICAgICAgICAgICAgICAgc3JjX3NlcnZlcl90eXBlIGluIG1vZHVsZV92aWV3LmJsdWVwcmlu
dC5zZXJ2ZXJfdHlwZToKKyAgICAgICAgICAgICAgICBmb3Iga2V5LCB2YWwgaW4gc291cmNlX3Rh
Ymxlcy5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBtb2R1bGVfdmlldy5m
ZXRjaF9vYmplY3RzX3RvX2NvbXBhcmUoCisgICAgICAgICAgICAgICAgICAgICAgICBzaWQ9c3Jj
X3NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpZD1zcmNfZGlkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgc2NpZD1zcmNfc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpZD12
YWxbJ29pZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgb2lkPU5vbmUsCisgICAgICAgICAg
ICAgICAgICAgICAgICBpZ25vcmVfa2V5cz1UcnVlCisgICAgICAgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICAgICAgICAgc291cmNlX3RhYmxlc1trZXldW21vZHVsZV0gPSBzb3VyY2UKKwor
ICAgICAgICAgICAgIyBHZXQgc3ViIG1vZHVsZSBkYXRhIGZvciB0YXJnZXQgdGFibGVzCisgICAg
ICAgICAgICBpZiBtb2R1bGVfdmlldy5ibHVlcHJpbnQuc2VydmVyX3R5cGUgaXMgTm9uZSBvciBc
CisgICAgICAgICAgICAgICAgICAgIHRhcl9zZXJ2ZXJfdHlwZSBpbiBtb2R1bGVfdmlldy5ibHVl
cHJpbnQuc2VydmVyX3R5cGU6CisgICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsIGluIHRhcmdl
dF90YWJsZXMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbW9kdWxlX3Zp
ZXcuZmV0Y2hfb2JqZWN0c190b19jb21wYXJlKAorICAgICAgICAgICAgICAgICAgICAgICAgc2lk
PXRhcl9zaWQsCisgICAgICAgICAgICAgICAgICAgICAgICBkaWQ9dGFyX2RpZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNjaWQ9dGFyX3NjaWQsCisgICAgICAgICAgICAgICAgICAgICAgICB0
aWQ9dmFsWydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9pZD1Ob25lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgaWdub3JlX2tleXM9VHJ1ZQorICAgICAgICAgICAgICAgICAgICAp
CisgICAgICAgICAgICAgICAgICAgIHRhcmdldF90YWJsZXNba2V5XVttb2R1bGVdID0gdGFyZ2V0
CisKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVfZGljdGlvbmFyaWVzKHNvdXJjZV90YWJsZXMsIHRh
cmdldF90YWJsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5v
ZGVfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXBy
aW50LkNPTExFQ1RJT05fTEFCRUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmtleXNfdG9faWdub3JlKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRf
c2VydmVyX3R5cGUoc3JjX2lkLCB0YXJfaWQpOgorICAgICAgICAiIiJHZXQgc2VydmVyIHR5cGVz
IG9mIHNvdXJjZSBhbmQgdGFyZ2V0IHNlcnZlcnMuIiIiCisgICAgICAgIGRyaXZlciA9IGdldF9k
cml2ZXIoUEdfREVGQVVMVF9EUklWRVIpCisgICAgICAgIHNyY19tYW5hZ2VyID0gZHJpdmVyLmNv
bm5lY3Rpb25fbWFuYWdlcihzcmNfaWQpCisgICAgICAgIHRhcl9tYW5hZ2VyID0gZHJpdmVyLmNv
bm5lY3Rpb25fbWFuYWdlcih0YXJfaWQpCisKKyAgICAgICAgcmV0dXJuIHNyY19tYW5hZ2VyLnNl
cnZlcl90eXBlLCB0YXJfbWFuYWdlci5zZXJ2ZXJfdHlwZQorCisgICAgZGVmIGRkbF9jb21wYXJl
KHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2ls
bCBjb21wYXJlIHByb3BlcnRpZXMgb2YgMiB0YWJsZXMgYW5kCisgICAgICAgIHJldHVybiB0aGUg
c291cmNlIERETCwgdGFyZ2V0IERETCBhbmQgRGlmZmVyZW5jZSBvZiB0aGVtLgorICAgICAgICAi
IiIKKworICAgICAgICBzcmNfc2lkID0ga3dhcmdzLmdldCgnc291cmNlX3NpZCcpCisgICAgICAg
IHNyY19kaWQgPSBrd2FyZ3MuZ2V0KCdzb3VyY2VfZGlkJykKKyAgICAgICAgc3JjX3NjaWQgPSBr
d2FyZ3MuZ2V0KCdzb3VyY2Vfc2NpZCcpCisgICAgICAgIHNyY19vaWQgPSBrd2FyZ3MuZ2V0KCdz
b3VyY2Vfb2lkJykKKyAgICAgICAgdGFyX3NpZCA9IGt3YXJncy5nZXQoJ3RhcmdldF9zaWQnKQor
ICAgICAgICB0YXJfZGlkID0ga3dhcmdzLmdldCgndGFyZ2V0X2RpZCcpCisgICAgICAgIHRhcl9z
Y2lkID0ga3dhcmdzLmdldCgndGFyZ2V0X3NjaWQnKQorICAgICAgICB0YXJfb2lkID0ga3dhcmdz
LmdldCgndGFyZ2V0X29pZCcpCisgICAgICAgIGNvbXBfc3RhdHVzID0ga3dhcmdzLmdldCgnY29t
cF9zdGF0dXMnKQorICAgICAgICBnZW5lcmF0ZV9zY3JpcHQgPSBGYWxzZQorCisgICAgICAgIGlm
ICdnZW5lcmF0ZV9zY3JpcHQnIGluIGt3YXJncyBhbmQga3dhcmdzWydnZW5lcmF0ZV9zY3JpcHQn
XToKKyAgICAgICAgICAgIGdlbmVyYXRlX3NjcmlwdCA9IFRydWUKKworICAgICAgICBzb3VyY2Ug
PSAnJworICAgICAgICB0YXJnZXQgPSAnJworICAgICAgICBkaWZmID0gJycKKyAgICAgICAgaWdu
b3JlX3N1Yl9tb2R1bGVzID0gWydjb2x1bW4nLCAnY29uc3RyYWludHMnXQorCisgICAgICAgIHNy
Y19zZXJ2ZXJfdHlwZSwgdGFyX3NlcnZlcl90eXBlID0gc2VsZi5nZXRfc2VydmVyX3R5cGUoc3Jj
X3NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0YXJfc2lkKQorCisgICAgICAgIHN0YXR1cywgdGFyZ2V0X3NjaGVtYSA9
IHNlbGYuZ2V0X3NjaGVtYSh0YXJfc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGFyX2RpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRhcl9zY2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg
ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9dGFyZ2V0X3NjaGVtYSkK
KworICAgICAgICBpZiBjb21wX3N0YXR1cyA9PSBTY2hlbWFEaWZmTW9kZWwuQ09NUEFSSVNPTl9T
VEFUVVNbJ3NvdXJjZV9vbmx5J106CisgICAgICAgICAgICBpZiBub3QgZ2VuZXJhdGVfc2NyaXB0
OgorICAgICAgICAgICAgICAgIHNvdXJjZSA9IHNlbGYuZ2V0X3NxbF9mcm9tX3RhYmxlX2RpZmYo
c2lkPXNyY19zaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWQ9c3JjX2RpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c3JjX3NjaWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9c3JjX29pZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb25fcmVzcD1G
YWxzZSkKKyAgICAgICAgICAgIGRpZmYgPSBzZWxmLmdldF9zcWxfZnJvbV90YWJsZV9kaWZmKHNp
ZD1zcmNfc2lkLCBkaWQ9c3JjX2RpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNjaWQ9c3JjX3NjaWQsIHRpZD1zcmNfb2lkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZl9zY2hlbWE9dGFyZ2V0X3Nj
aGVtYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpz
b25fcmVzcD1GYWxzZSkKKworICAgICAgICBlbGlmIGNvbXBfc3RhdHVzID09IFNjaGVtYURpZmZN
b2RlbC5DT01QQVJJU09OX1NUQVRVU1sndGFyZ2V0X29ubHknXToKKyAgICAgICAgICAgIGlmIG5v
dCBnZW5lcmF0ZV9zY3JpcHQ6CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gc2VsZi5nZXRfc3Fs
X2Zyb21fdGFibGVfZGlmZihzaWQ9dGFyX3NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZD10YXJfZGlkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NpZD10YXJfc2NpZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10
YXJfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAganNvbl9yZXNwPUZhbHNlKQorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl
KAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRhYmxlX3RlbXBsYXRlX3BhdGgsICdw
cm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICBkaWQ9dGFyX2RpZCwgc2NpZD10YXJf
c2NpZCwgdGlkPXRhcl9vaWQsCisgICAgICAgICAgICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLmRh
dGxhc3RzeXNvaWQKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2Vs
Zi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgICAgIGlmIHN0YXR1czoKKyAgICAg
ICAgICAgICAgICBkaWZmID0gc2VsZi5nZXRfZGVsZXRlX3NxbChyZXMpCisKKyAgICAgICAgZWxp
ZiBjb21wX3N0YXR1cyA9PSBTY2hlbWFEaWZmTW9kZWwuQ09NUEFSSVNPTl9TVEFUVVNbJ2RpZmZl
cmVudCddOgorICAgICAgICAgICAgc291cmNlID0gc2VsZi5mZXRjaF90YWJsZXMoCisgICAgICAg
ICAgICAgICAgc2lkPXNyY19zaWQsIGRpZD1zcmNfZGlkLAorICAgICAgICAgICAgICAgIHNjaWQ9
c3JjX3NjaWQsIHRpZD1zcmNfb2lkLAorICAgICAgICAgICAgICAgIGtleXNfdG9fcmVtb3ZlPXNl
bGYua2V5c190b19yZW1vdmVfZGRsX2NvbXAKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHRh
cmdldCA9IHNlbGYuZmV0Y2hfdGFibGVzKAorICAgICAgICAgICAgICAgIHNpZD10YXJfc2lkLCBk
aWQ9dGFyX2RpZCwKKyAgICAgICAgICAgICAgICBzY2lkPXRhcl9zY2lkLCB0aWQ9dGFyX29pZCwK
KyAgICAgICAgICAgICAgICBrZXlzX3RvX3JlbW92ZT1zZWxmLmtleXNfdG9fcmVtb3ZlX2RkbF9j
b21wCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgIGlmIHNlbGYubWFuYWdlci52ZXJzaW9u
IDwgMTAwMDAwOgorICAgICAgICAgICAgICAgIGlnbm9yZV9zdWJfbW9kdWxlcy5hcHBlbmQoJ3Bh
cnRpdGlvbicpCisKKyAgICAgICAgICAgIGlmIHNlbGYubWFuYWdlci52ZXJzaW9uIDwgMTIwMDAw
OgorICAgICAgICAgICAgICAgIGlnbm9yZV9zdWJfbW9kdWxlcy5hcHBlbmQoJ2NvbXBvdW5kX3Ry
aWdnZXInKQorCisgICAgICAgICAgICAjIEluIGNhc2Ugb2YgZXJyb3IgcmV0dXJuIE5vbmUKKyAg
ICAgICAgICAgIGlmIG5vdCAoc291cmNlIG9yIHRhcmdldCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIE5vbmUKKworICAgICAgICAgICAgZGlmZl9kaWN0ID0gZGlyZWN0b3J5X2RpZmYoCisgICAg
ICAgICAgICAgICAgc291cmNlLCB0YXJnZXQsIGlnbm9yZV9rZXlzPXNlbGYua2V5c190b19pZ25v
cmVfZGRsX2NvbXAsCisgICAgICAgICAgICAgICAgZGlmZmVyZW5jZT17fQorICAgICAgICAgICAg
KQorCisgICAgICAgICAgICAjIENvbHVtbiBjb21wYXJpc29uCisgICAgICAgICAgICBjb2xfZGlm
ZiA9IHNlbGYudGFibGVfY29sX2RkbF9jb21wKHNvdXJjZSwgdGFyZ2V0KQorICAgICAgICAgICAg
ZGlmZl9kaWN0LnVwZGF0ZShjb2xfZGlmZikKKworICAgICAgICAgICAgIyBDb25zdHJhaW50IGNv
bXBhcmlzb24KKyAgICAgICAgICAgIHBrX2RpZmYgPSBzZWxmLmNvbnN0cmFpbnRfZGRsX2NvbXAo
c291cmNlLCB0YXJnZXQpCisgICAgICAgICAgICBkaWZmX2RpY3QudXBkYXRlKHBrX2RpZmYpCisK
KyAgICAgICAgICAgIGRpZmZfZGljdFsncmVsYWNsJ10gPSBzZWxmLnBhcmNlX2FjbChzb3VyY2Us
IHRhcmdldCkKKworICAgICAgICAgICAgaWYgbm90IGdlbmVyYXRlX3NjcmlwdDoKKyAgICAgICAg
ICAgICAgICBzb3VyY2UgPSBzZWxmLmdldF9zcWxfZnJvbV90YWJsZV9kaWZmKHNpZD1zcmNfc2lk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkPXNyY19kaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzY2lkPXNyY19zY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXNyY19vaWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uX3Jlc3A9RmFsc2UpCisgICAg
ICAgICAgICAgICAgdGFyZ2V0ID0gc2VsZi5nZXRfc3FsX2Zyb21fdGFibGVfZGlmZihzaWQ9dGFy
X3NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpZD10YXJfZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2NpZD10YXJfc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10YXJfb2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbl9yZXNwPUZhbHNlKQor
ICAgICAgICAgICAgZGlmZiA9IHNlbGYuZ2V0X3NxbF9mcm9tX3RhYmxlX2RpZmYoc2lkPXRhcl9z
aWQsIGRpZD10YXJfZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2NpZD10YXJfc2NpZCwgdGlkPXRhcl9vaWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmX2RhdGE9ZGlmZl9kaWN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbl9yZXNwPUZhbHNl
KQorCisgICAgICAgICAgICBmb3IgbW9kdWxlIGluIHNlbGYuYmx1ZXByaW50LnN1Ym1vZHVsZXM6
CisgICAgICAgICAgICAgICAgaWYgbW9kdWxlLk5PREVfVFlQRSBub3QgaW4gaWdub3JlX3N1Yl9t
b2R1bGVzOgorICAgICAgICAgICAgICAgICAgICBtb2R1bGVfdmlldyA9IFNjaGVtYURpZmZSZWdp
c3RyeS5nZXRfbm9kZV92aWV3KAorICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlLk5PREVf
VFlQRSkKKworICAgICAgICAgICAgICAgICAgICBpZiBtb2R1bGVfdmlldy5ibHVlcHJpbnQuc2Vy
dmVyX3R5cGUgYW5kICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfc2VydmVyX3R5
cGUgbm90IGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlX3ZpZXcuYmx1ZXBy
aW50LnNlcnZlcl90eXBlIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcl9zZXJ2
ZXJfdHlwZSBub3QgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVfdmlldy5i
bHVlcHJpbnQuc2VydmVyX3R5cGUKKyAgICAgICAgICAgICAgICAgICAgKToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICAgICAgaWYgbW9kdWxlX3Zp
ZXcuYmx1ZXByaW50LnNlcnZlcl90eXBlIGFuZCAoCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHNyY19zZXJ2ZXJfdHlwZSBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1
bGVfdmlldy5ibHVlcHJpbnQuc2VydmVyX3R5cGUgYW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRhcl9zZXJ2ZXJfdHlwZSBub3QgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kdWxlX3ZpZXcuYmx1ZXByaW50LnNlcnZlcl90eXBlKSBvciAoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3JjX3NlcnZlcl90eXBlIG5vdCBpbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZHVsZV92aWV3LmJsdWVwcmludC5zZXJ2ZXJfdHlwZSBhbmQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0YXJfc2VydmVyX3R5cGUgaW4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtb2R1bGVfdmlldy5ibHVlcHJpbnQuc2VydmVyX3R5cGUpCisgICAgICAgICAg
ICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IG1vZHVsZV92aWV3LmNvbXBhcmUoCisgICAgICAgICAgICAg
ICAgICAgICAgICBzb3VyY2Vfc2lkPXNyY19zaWQsIHNvdXJjZV9kaWQ9c3JjX2RpZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zY2lkPXNyY19zY2lkLCBzb3VyY2VfdGlkPXNyY19v
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfc2lkPXRhcl9zaWQsIHRhcmdldF9k
aWQ9dGFyX2RpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9zY2lkPXRhcl9zY2lk
LCB0YXJnZXRfdGlkPXRhcl9vaWQKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
ICAgICAgICBpZiByZXN1bHQgYW5kIG1vZHVsZS5OT0RFX1RZUEUgIT0gJ3BhcnRpdGlvbic6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjaGlsZF9kaWZmID0gJycKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciByZXMgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IHJlc1snc3RhdHVzJ10gPT0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U2NoZW1hRGlmZk1vZGVsLkNPTVBBUklTT05fU1RBVFVTWworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdkaWZmZXJlbnQnXToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc291cmNlX29pZCA9IHJlc1snc291cmNlX29pZCddCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRhcmdldF9vaWQgPSByZXNbJ3RhcmdldF9vaWQnXQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNvdXJjZV9vaWQgPSByZXNbJ29pZCddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRhcmdldF9vaWQgPSByZXNbJ29pZCddCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiByZXNbJ3N0YXR1cyddICE9IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNjaGVtYURpZmZNb2RlbC5DT01QQVJJU09OX1NUQVRVU1sKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnaWRlbnRpY2FsJ106CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoaWxkX2RpZmYgPSBtb2R1bGVfdmlldy5kZGxfY29tcGFyZSgKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zaWQ9c3JjX3NpZCwgc291cmNlX2Rp
ZD1zcmNfZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3Nj
aWQ9c3JjX3NjaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vf
b2lkPXNvdXJjZV9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3Vy
Y2VfdGlkPXNyY19vaWQsIHRhcmdldF9zaWQ9dGFyX3NpZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRhcmdldF9kaWQ9dGFyX2RpZCwgdGFyZ2V0X3NjaWQ9dGFyX3NjaWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfdGlkPXRhcl9vaWQs
IHRhcmdldF9vaWQ9dGFyZ2V0X29pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbXBfc3RhdHVzPXJlc1snc3RhdHVzJ10KKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNoaWxkX2RpZmY6
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmICs9IGNoaWxkX2RpZmYK
KyAgICAgICAgICAgICAgICAgICAgZWxpZiByZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgICAg
ICAjIEZvciBwYXJ0aXRpb24gbW9kdWxlCisgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlj
YWwgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX29ubHkgPSBGYWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X29ubHkgPSBGYWxzZQorICAgICAgICAgICAg
ICAgICAgICAgICAgZGlmZmVyZW50ID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciByZXMgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlc1snc3Rh
dHVzJ10gPT0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NoZW1hRGlm
Zk1vZGVsLkNPTVBBUklTT05fU1RBVFVTWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdpZGVudGljYWwnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWRlbnRpY2FsID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgcmVzWydz
dGF0dXMnXSA9PSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY2hlbWFE
aWZmTW9kZWwuQ09NUEFSSVNPTl9TVEFUVVNbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3NvdXJjZV9vbmx5J106CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZV9vbmx5ID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYg
cmVzWydzdGF0dXMnXSA9PSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
Y2hlbWFEaWZmTW9kZWwuQ09NUEFSSVNPTl9TVEFUVVNbCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3RhcmdldF9vbmx5J106CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRhcmdldF9vbmx5ID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZlcmVudCA9IFRydWUK
KworICAgICAgICAgICAgICAgICAgICAgICAgaWYgaWRlbnRpY2FsOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgKHNvdXJjZV9v
bmx5IG9yIHRhcmdldF9vbmx5KSBhbmQgbm90IGRpZmZlcmVudDoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmb3IgcmVzIGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc291cmNlX29pZCA9IHJlc1snb2lkJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGFyZ2V0X29pZCA9IHJlc1snb2lkJ10KKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGlsZF9kaWZmID0gbW9kdWxlX3ZpZXcuZGRsX2NvbXBhcmUoCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc2lkPXNyY19zaWQsIHNvdXJjZV9kaWQ9
c3JjX2RpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zY2lk
PXNyY19zY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX29p
ZD1zb3VyY2Vfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNl
X3RpZD1zcmNfb2lkLCB0YXJnZXRfc2lkPXRhcl9zaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0YXJnZXRfZGlkPXRhcl9kaWQsIHRhcmdldF9zY2lkPXRhcl9zY2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3RpZD10YXJfb2lkLCB0
YXJnZXRfb2lkPXRhcmdldF9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb21wX3N0YXR1cz1yZXNbJ3N0YXR1cyddCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBkZGxfY29tcGFyZToK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmYgKz0gY2hpbGRfZGlmZgor
ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWZmID0gc2VsZi5nZXRfc3FsX2Zyb21fdGFibGVfZGlmZigKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2lkPXNyY19zaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpZD1zcmNfZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2lkPXNy
Y19zY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9c3JjX29pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZl9zY2hlbWE9dGFyZ2V0X3NjaGVtYSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbl9yZXNwPUZhbHNlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfZGlmZl90YWJsZT1UcnVlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc291cmNl
ID0gc2VsZi5nZXRfc3FsX2Zyb21fdGFibGVfZGlmZihzaWQ9c3JjX3NpZCwgZGlkPXNyY19kaWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9
c3JjX3NjaWQsIHRpZD1zcmNfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBqc29uX3Jlc3A9RmFsc2UpCisgICAgICAgICAgICB0YXJnZXQgPSBz
ZWxmLmdldF9zcWxfZnJvbV90YWJsZV9kaWZmKHNpZD10YXJfc2lkLCBkaWQ9dGFyX2RpZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NpZD10YXJf
c2NpZCwgdGlkPXRhcl9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGpzb25fcmVzcD1GYWxzZSkKKworICAgICAgICByZXR1cm4geydzb3VyY2Vf
ZGRsJzogc291cmNlLAorICAgICAgICAgICAgICAgICd0YXJnZXRfZGRsJzogdGFyZ2V0LAorICAg
ICAgICAgICAgICAgICdkaWZmX2RkbCc6IGRpZmYKKyAgICAgICAgICAgICAgICB9CisKKyAgICBA
c3RhdGljbWV0aG9kCisgICAgZGVmIHRhYmxlX2NvbF9kZGxfY29tcChzb3VyY2UsIHRhcmdldCk6
CisgICAgICAgICIiIgorICAgICAgICBUYWJsZSBDb2x1bW4gY29tcGFyaXNvbgorICAgICAgICA6
cGFyYW0gc291cmNlOiBTb3VyY2UgY29sdW1ucworICAgICAgICA6cGFyYW0gdGFyZ2V0OiBUYXJn
ZXQgY29sdW1ucworICAgICAgICA6cmV0dXJuOiBEaWZmZXJlbmNlIG9mIHRoZSBjb2x1bW5zCisg
ICAgICAgICIiIgorICAgICAgICBzb3VyY2VfY29scyA9IHNvdXJjZVsnY29sdW1ucyddCisgICAg
ICAgIHRhcmdldF9jb2xzID0gY29weS5kZWVwY29weSh0YXJnZXRbJ2NvbHVtbnMnXSkKKyAgICAg
ICAgYWRkZWQgPSBbXQorICAgICAgICB1cGRhdGVkID0gW10KKyAgICAgICAgZGlmZmVyZW50ID0g
eydjb2x1bW5zJzoge319CisKKyAgICAgICAgZm9yIHNvdXJjZSBpbiBzb3VyY2VfY29sczoKKyAg
ICAgICAgICAgIGlmICduYW1lJyBpbiBzb3VyY2U6CisgICAgICAgICAgICAgICAgaWYgdHlwZSh0
YXJnZXRfY29scykgaXMgbGlzdCBhbmQgbGVuKAorICAgICAgICAgICAgICAgICAgICAgICAgdGFy
Z2V0X2NvbHMpID4gMDoKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gTm9uZQorICAgICAgICAg
ICAgICAgICAgICBmb3IgaXRlbSBpbiB0YXJnZXRfY29sczoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIGl0ZW1bJ25hbWUnXSA9PSBzb3VyY2VbJ25hbWUnXToKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0bXAgPSBjb3B5LmRlZXBjb3B5KGl0ZW0pCisgICAgICAgICAgICAgICAgICAg
IGlmIHRtcCBhbmQgc291cmNlICE9IHRtcDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcF91
cGRhdGVkID0gY29weS5kZWVwY29weShzb3VyY2UpCisgICAgICAgICAgICAgICAgICAgICAgICAj
IFByZXNlcnZlIHRoZSBjb2x1bW4gbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICB0bXBf
dXBkYXRlZFsnYXR0bnVtJ10gPSB0bXBbJ2F0dG51bSddCisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiBpdGVtWyd0eXBuYW1lJ10gbm90IGluIHRtcF91cGRhdGVkWydlZGl0X3R5cGVzJ106Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wX3VwZGF0ZWRbJ2NvbF90eXBlX2NvbnZlcnNp
b24nXSA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkLmFwcGVuZCh0bXBf
dXBkYXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jb2xzLnJlbW92ZSh0bXAp
CisgICAgICAgICAgICAgICAgICAgIGVsaWYgdG1wIGFuZCBzb3VyY2UgPT0gdG1wOgorICAgICAg
ICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NvbHMucmVtb3ZlKHRtcCkKKyAgICAgICAgICAgICAg
ICAgICAgZWxpZiB0bXAgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZGVkLmFw
cGVuZChzb3VyY2UpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
YWRkZWQuYXBwZW5kKHNvdXJjZSkKKyAgICAgICAgICAgIGRpZmZlcmVudFsnY29sdW1ucyddWydh
ZGRlZCddID0gYWRkZWQKKyAgICAgICAgICAgIGRpZmZlcmVudFsnY29sdW1ucyddWydjaGFuZ2Vk
J10gPSB1cGRhdGVkCisKKyAgICAgICAgaWYgdGFyZ2V0X2NvbHMgYW5kIGxlbih0YXJnZXRfY29s
cykgPiAwOgorICAgICAgICAgICAgZGlmZmVyZW50Wydjb2x1bW5zJ11bJ2RlbGV0ZWQnXSA9IHRh
cmdldF9jb2xzCisKKyAgICAgICAgcmV0dXJuIGRpZmZlcmVudAorCisgICAgQHN0YXRpY21ldGhv
ZAorICAgIGRlZiBjb25zdHJhaW50X2RkbF9jb21wKHNvdXJjZV90YWJsZSwgdGFyZ2V0X3RhYmxl
KToKKyAgICAgICAgIiIiCisgICAgICAgIFRhYmxlIENvbnN0cmFpbnQgRERMIGNvbXBhcmlzb24K
KyAgICAgICAgOnBhcmFtIHNvdXJjZTogU291cmNlIFRhYmxlCisgICAgICAgIDpwYXJhbSB0YXJn
ZXQ6IFRhcmdldCBUYWJsZQorICAgICAgICA6cmV0dXJuOiBEaWZmZXJlbmNlIG9mIGNvbnN0cmFp
bnRzCisgICAgICAgICIiIgorICAgICAgICBkaWZmZXJlbnQgPSB7fQorICAgICAgICBub25fZWRp
dGFibGVfa2V5cyA9IHt9CisKKyAgICAgICAgbm9uX2VkaXRhYmxlX2tleXMgPSB7J3ByaW1hcnlf
a2V5JzogWydjb2xfY291bnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2NvbmRlZmVycmFibGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2NvbmRlZmZlcmVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdjb2x1bW5zJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdjaGVja19jb25zdHJhaW50JzogWydjb25zcmMnXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2V4Y2x1ZGVfY29uc3RyYWludCc6IFsnYW1uYW1lJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5kY29uc3RyYWludCcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbHVt
bnMnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgZm9yIGNvbnN0
cmFpbnQgaW4gWydwcmltYXJ5X2tleScsICdjaGVja19jb25zdHJhaW50JywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdleGNsdWRlX2NvbnN0cmFpbnQnXToKKyAgICAgICAgICAgIHNvdXJj
ZV9jb2xzID0gc291cmNlX3RhYmxlW2NvbnN0cmFpbnRdIGlmIFwKKyAgICAgICAgICAgICAgICBj
b25zdHJhaW50IGluIHNvdXJjZV90YWJsZSBlbHNlIFtdCisgICAgICAgICAgICB0YXJnZXRfY29s
cyA9IGNvcHkuZGVlcGNvcHkodGFyZ2V0X3RhYmxlW2NvbnN0cmFpbnRdKSBpZlwKKyAgICAgICAg
ICAgICAgICBjb25zdHJhaW50IGluIHRhcmdldF90YWJsZSBlbHNlIFtdCisgICAgICAgICAgICBh
ZGRlZCA9IFtdCisgICAgICAgICAgICB1cGRhdGVkID0gW10KKyAgICAgICAgICAgIGRlbGV0ZWQg
PSBbXQorCisgICAgICAgICAgICBkaWZmZXJlbnRbY29uc3RyYWludF0gPSB7fQorICAgICAgICAg
ICAgZm9yIHNvdXJjZSBpbiBzb3VyY2VfY29sczoKKyAgICAgICAgICAgICAgICBpZiAnbmFtZScg
aW4gc291cmNlOgorICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKHRhcmdldF9jb2xzKSBpcyBs
aXN0IGFuZCBsZW4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NvbHMpID4g
MDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcF9zcmMgPSBjb3B5LmRlZXBjb3B5KHNvdXJj
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcF9zcmMucG9wKCdvaWQnKQorICAgICAgICAg
ICAgICAgICAgICAgICAgdG1wX3RhciA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRt
cCA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHRhcmdldF9jb2xz
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGl0ZW1bJ25hbWUnXSA9PSBzb3VyY2Vb
J25hbWUnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wX3RhciA9IGNvcHku
ZGVlcGNvcHkoaXRlbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gY29w
eS5kZWVwY29weShpdGVtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBfdGFy
LnBvcCgnb2lkJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRtcF90YXIgYW5kIHRtcF9z
cmMgIT0gdG1wX3RhcjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBfdXBkYXRlZCA9
IGNvcHkuZGVlcGNvcHkoc291cmNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBr
ZXkgaW4gbm9uX2VkaXRhYmxlX2tleXNbY29uc3RyYWludF06CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIGtleSBpbiB0bXBfdXBkYXRlZCBhbmQgXAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRtcF91cGRhdGVkW2tleV0gIT0gdG1wX3RhcltrZXld
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkZWQuYXBwZW5kKHNvdXJj
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZWQuYXBwZW5kKHRt
cF91cGRhdGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wX3VwZGF0
ZWQgPSBOb25lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRtcF91cGRhdGVkOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0bXBfdXBkYXRlZFsnb2lkJ10gPSB0bXBfdGFyWydvaWQnXQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkLmFwcGVuZCh0bXBfdXBkYXRlZCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY29scy5yZW1vdmUodG1wKQorICAg
ICAgICAgICAgICAgICAgICAgICAgZWxpZiB0bXBfdGFyIGFuZCB0bXBfc3JjID09IHRtcF90YXI6
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NvbHMucmVtb3ZlKHRtcCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGVsaWYgdG1wX3RhciBpcyBOb25lOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFkZGVkLmFwcGVuZChzb3VyY2UpCisgICAgICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRlZC5hcHBlbmQoc291cmNlKQorICAg
ICAgICAgICAgICAgIGRpZmZlcmVudFtjb25zdHJhaW50XVsnYWRkZWQnXSA9IGFkZGVkCisgICAg
ICAgICAgICAgICAgZGlmZmVyZW50W2NvbnN0cmFpbnRdWydjaGFuZ2VkJ10gPSB1cGRhdGVkCisg
ICAgICAgICAgICAgICAgZGlmZmVyZW50W2NvbnN0cmFpbnRdWydkZWxldGVkJ10gPSBkZWxldGVk
CisKKyAgICAgICAgICAgIGlmIHRhcmdldF9jb2xzIGFuZCBsZW4odGFyZ2V0X2NvbHMpID4gMDoK
KyAgICAgICAgICAgICAgICBkaWZmZXJlbnRbY29uc3RyYWludF1bJ2RlbGV0ZWQnXSA9IHRhcmdl
dF9jb2xzCisKKyAgICAgICAgcmV0dXJuIGRpZmZlcmVudAorCisgICAgZGVmIHJlbW92ZV9rZXlz
X2Zvcl9jb21wYXJpc2lvbihzZWxmLCBkYXRhLCBrZXlzPU5vbmUpOgorICAgICAgICAiIiIKKyAg
ICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJlbW92ZSBzcGVjaWZpYyBrZXlzIGZyb20g
ZGF0YQorICAgICAgICAiIiIKKworICAgICAgICBrZXlzX3RvX3JlbW92ZSA9IGtleXMgaWYga2V5
cyBlbHNlIHNlbGYua2V5c190b19yZW1vdmUKKworICAgICAgICBmb3IgcF9rZXksIHBfdmFsIGlu
IGtleXNfdG9fcmVtb3ZlLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBwX2tleSBpbiBkYXRhIGFu
ZCBkYXRhW3Bfa2V5XSBpcyBub3QgTm9uZSBcCisgICAgICAgICAgICAgICAgICAgIGFuZCBsZW4o
ZGF0YVtwX2tleV0pID4gMDoKKyAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBkYXRhW3Bfa2V5
XToKKyAgICAgICAgICAgICAgICAgICAgIyBSZW1vdmUga2V5cyB0aGF0IHNob3VsZCBub3QgYmUg
dGhlIHBhcnQgb2YgY29tcGFyaXNpb24uCisgICAgICAgICAgICAgICAgICAgIGZvciBrZXkgaW4g
cF92YWw6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBrZXkgaW4gaXRlbToKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpdGVtLnBvcChrZXkpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p
bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv
dGVtcGxhdGVzL2NvbHVtbnMvc3FsLzEwX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jy
b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w
bGF0ZXMvY29sdW1ucy9zcWwvMTBfcGx1cy9jcmVhdGUuc3FsCmluZGV4IDM2ZWI3ZmY4ZS4uYzE4
OWE3NDg4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy
dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsLzEwX3Bs
dXMvY3JlYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy
dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsLzEwX3Bs
dXMvY3JlYXRlLnNxbApAQCAtMjEsNyArMjEsNyBAQCBDQUNIRSB7e2RhdGEuc2VxY2FjaGV8aW50
fX0geyUgZW5kaWYgJX0KIHslIGVuZGlmICV9eyUgZW5kaWYgJX07CiAKIHsjIyMgIEFkZCBjb21t
ZW50cyAjIyN9Ci17JSBpZiBkYXRhIGFuZCBkYXRhLmRlc2NyaXB0aW9uICV9Cit7JSBpZiBkYXRh
IGFuZCBkYXRhLmRlc2NyaXB0aW9uIGFuZCBkYXRhLmRlc2NyaXB0aW9uICE9IE5vbmUgJX0KIENP
TU1FTlQgT04gQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBk
YXRhLm5hbWUpfX0KICAgICBJUyB7e2RhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsfX07CiAKZGlm
ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi
YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1ucy9zcWwvMTBfcGx1cy91cGRhdGUu
c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz
L3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW5zL3NxbC8xMF9wbHVzL3VwZGF0ZS5zcWwK
aW5kZXggNGI5NDNkZWZiLi40ZThiOTgyZmQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz
ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0
ZXMvY29sdW1ucy9zcWwvMTBfcGx1cy91cGRhdGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz
ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0
ZXMvY29sdW1ucy9zcWwvMTBfcGx1cy91cGRhdGUuc3FsCkBAIC0xMCw4ICsxMCwxNCBAQCBBTFRF
UiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQogeyUgZW5k
aWYgJX0KIHsjIyMgIEFsdGVyIGNvbHVtbiB0eXBlIGFuZCBjb2xsYXRpb24gIyMjfQogeyUgaWYg
KGRhdGEuY2x0eXBlIGFuZCBkYXRhLmNsdHlwZSAhPSBvX2RhdGEuY2x0eXBlKSBvciAoZGF0YS5h
dHRsZW4gaXMgZGVmaW5lZCBhbmQgZGF0YS5hdHRsZW4gIT0gb19kYXRhLmF0dGxlbikgb3IgKGRh
dGEuYXR0cHJlY2lzaW9uIGlzIGRlZmluZWQgYW5kIGRhdGEuYXR0cHJlY2lzaW9uICE9IG9fZGF0
YS5hdHRwcmVjaXNpb24pIG9yIChkYXRhLmNvbGxzcGNuYW1lIGFuZCBkYXRhLmNvbGxzcGNuYW1l
ICE9IG9fZGF0YS5jb2xsc3BjbmFtZSklfQotQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0
YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KLSAgICBBTFRFUiBDT0xVTU4geyUgaWYgZGF0YS5uYW1l
ICV9e3tjb25ufHF0VHlwZUlkZW50KGRhdGEubmFtZSl9fXslIGVsc2UgJX17e2Nvbm58cXRUeXBl
SWRlbnQob19kYXRhLm5hbWUpfX17JSBlbmRpZiAlfSBUWVBFIHt7IEdFVF9UWVBFLlVQREFURV9U
WVBFX1NRTChjb25uLCBkYXRhLCBvX2RhdGEpIH19eyUgaWYgZGF0YS5jb2xsc3BjbmFtZSBhbmQg
ZGF0YS5jb2xsc3BjbmFtZSAhPSBvX2RhdGEuY29sbHNwY25hbWUgJX0KK3slIGlmIGRhdGEuY29s
X3R5cGVfY29udmVyc2lvbiBpcyBkZWZpbmVkIGFuZCBkYXRhLmNvbF90eXBlX2NvbnZlcnNpb24g
PT0gRmFsc2UgJX0KKy0tIFdBUk5JTkc6CistLSBUaGUgU1FMIHN0YXRlbWVudCBiZWxvdyB3b3Vs
ZCBub3JtYWxseSBiZSB1c2VkIHRvIGFsdGVyIHRoZSBkYXRhdHlwZSBmb3IgdGhlIHt7b19kYXRh
Lm5hbWV9fSBjb2x1bW4sIGhvd2V2ZXIsCistLSB0aGUgY3VycmVudCBkYXRhdHlwZSBjYW5ub3Qg
YmUgY2FzdCB0byB0aGUgdGFyZ2V0IGRhdGF0eXBlIHNvIHRoaXMgY29udmVyc2lvbiBjYW5ub3Qg
YmUgbWFkZSBhdXRvbWF0aWNhbGx5LgorCit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb2xfdHlw
ZV9jb252ZXJzaW9uIGlzIGRlZmluZWQgYW5kIGRhdGEuY29sX3R5cGVfY29udmVyc2lvbiA9PSBG
YWxzZSAlfSAtLSB7JSBlbmRpZiAlfUFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2No
ZW1hLCBkYXRhLnRhYmxlKX19Cit7JSBpZiBkYXRhLmNvbF90eXBlX2NvbnZlcnNpb24gaXMgZGVm
aW5lZCBhbmQgZGF0YS5jb2xfdHlwZV9jb252ZXJzaW9uID09IEZhbHNlICV9IC0tIHslIGVuZGlm
ICV9ICAgIEFMVEVSIENPTFVNTiB7JSBpZiBkYXRhLm5hbWUgJX17e2Nvbm58cXRUeXBlSWRlbnQo
ZGF0YS5uYW1lKX19eyUgZWxzZSAlfXt7Y29ubnxxdFR5cGVJZGVudChvX2RhdGEubmFtZSl9fXsl
IGVuZGlmICV9IFRZUEUge3sgR0VUX1RZUEUuVVBEQVRFX1RZUEVfU1FMKGNvbm4sIGRhdGEsIG9f
ZGF0YSkgfX17JSBpZiBkYXRhLmNvbGxzcGNuYW1lIGFuZCBkYXRhLmNvbGxzcGNuYW1lICE9IG9f
ZGF0YS5jb2xsc3BjbmFtZSAlfQogIENPTExBVEUge3tkYXRhLmNvbGxzcGNuYW1lfX17JSBlbGlm
IG9fZGF0YS5jb2xsc3BjbmFtZSAlfSBDT0xMQVRFIHt7b19kYXRhLmNvbGxzcGNuYW1lfX17JSBl
bmRpZiAlfTsKIHslIGVuZGlmICV9CiB7IyMjICBBbHRlciBjb2x1bW4gZGVmYXVsdCB2YWx1ZSAj
IyN9CkBAIC05NSw3ICsxMDEsNyBAQCBDT01NRU5UIE9OIENPTFVNTiB7e2Nvbm58cXRJZGVudChk
YXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgb19kYXRhLm5hbWUpfX0KIAogeyUgZW5kaWYgJX0KIHsj
IyMgVXBkYXRlIGNvbHVtbiB2YXJpYWJsZXMgIyMjfQoteyUgaWYgJ2F0dG9wdGlvbnMnIGluIGRh
dGEgYW5kIGRhdGEuYXR0b3B0aW9uc3xsZW5ndGggPiAwICV9Cit7JSBpZiAnYXR0b3B0aW9ucycg
aW4gZGF0YSBhbmQgZGF0YS5hdHRvcHRpb25zIGFuZCBkYXRhLmF0dG9wdGlvbnN8bGVuZ3RoID4g
MCAlfQogeyUgc2V0IHZhcmlhYmxlcyA9IGRhdGEuYXR0b3B0aW9ucyAlfQogeyUgaWYgJ2RlbGV0
ZWQnIGluIHZhcmlhYmxlcyBhbmQgdmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQogQUxU
RVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KZGlmZiAt
LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl
cy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1ucy9zcWwvMTJfcGx1cy9jcmVhdGUuc3Fs
IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj
aGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW5zL3NxbC8xMl9wbHVzL2NyZWF0ZS5zcWwKaW5k
ZXggNzFkZTQzNjU4Li4xOWUyNmYyYzIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv
c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMv
Y29sdW1ucy9zcWwvMTJfcGx1cy9jcmVhdGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv
c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMv
Y29sdW1ucy9zcWwvMTJfcGx1cy9jcmVhdGUuc3FsCkBAIC0yMSw3ICsyMSw3IEBAIENBQ0hFIHt7
ZGF0YS5zZXFjYWNoZXxpbnR9fSB7JSBlbmRpZiAlfQogeyUgZW5kaWYgJX17JSBlbmRpZiAlfXsl
IGlmIGRhdGEuY29sY29uc3R5cGUgPT0gJ2cnIGFuZCBkYXRhLmdlbmV4cHIgYW5kIGRhdGEuZ2Vu
ZXhwciAhPSAnJyAlfSBHRU5FUkFURUQgQUxXQVlTIEFTICh7e2RhdGEuZ2VuZXhwcn19KSBTVE9S
RUR7JSBlbmRpZiAlfTsKIAogeyMjIyAgQWRkIGNvbW1lbnRzICMjI30KLXslIGlmIGRhdGEgYW5k
IGRhdGEuZGVzY3JpcHRpb24gJX0KK3slIGlmIGRhdGEgYW5kIGRhdGEuZGVzY3JpcHRpb24gYW5k
IGRhdGEuZGVzY3JpcHRpb24gIT0gTm9uZSAlfQogQ09NTUVOVCBPTiBDT0xVTU4ge3tjb25ufHF0
SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSl9fQogICAgIElTIHt7ZGF0
YS5kZXNjcmlwdGlvbnxxdExpdGVyYWx9fTsKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv
d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBs
YXRlcy9jb2x1bW5zL3NxbC85LjJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl
ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRl
cy9jb2x1bW5zL3NxbC85LjJfcGx1cy91cGRhdGUuc3FsCmluZGV4IGQyNzczNDQwMS4uZGZiNzU1
NWMxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy
cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsLzkuMl9wbHVz
L3VwZGF0ZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl
cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW5zL3NxbC85LjJfcGx1
cy91cGRhdGUuc3FsCkBAIC02LDYgKzYsMTIgQEAKIHslIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5u
YW1lICE9IG9fZGF0YS5uYW1lICV9CiBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNj
aGVtYSwgZGF0YS50YWJsZSl9fQogICAgIFJFTkFNRSB7e2Nvbm58cXRJZGVudChvX2RhdGEubmFt
ZSl9fSBUTyB7e2Nvbm58cXRJZGVudChkYXRhLm5hbWUpfX07Cit7JSBlbmRpZiAlfQoreyUgaWYg
ZGF0YS5jb2xfdHlwZV9jb252ZXJzaW9uIGlzIGRlZmluZWQgYW5kIGRhdGEuY29sX3R5cGVfY29u
dmVyc2lvbiA9PSBGYWxzZSAlfQorLS0gV0FSTklORzoKKy0tIFRoZSBTUUwgc3RhdGVtZW50IGJl
bG93IHdvdWxkIG5vcm1hbGx5IGJlIHVzZWQgdG8gYWx0ZXIgdGhlIGRhdGF0eXBlIGZvciB0aGUg
e3tvX2RhdGEubmFtZX19IGNvbHVtbiwgaG93ZXZlciwKKy0tIHRoZSBjdXJyZW50IGRhdGF0eXBl
IGNhbm5vdCBiZSBjYXN0IHRvIHRoZSB0YXJnZXQgZGF0YXR5cGUgc28gdGhpcyBjb252ZXJzaW9u
IGNhbm5vdCBiZSBtYWRlIGF1dG9tYXRpY2FsbHkuCisKIHslIGVuZGlmICV9CiB7IyMjICBBbHRl
ciBjb2x1bW4gdHlwZSBhbmQgY29sbGF0aW9uICMjI30KIHslIGlmIChkYXRhLmNsdHlwZSBhbmQg
ZGF0YS5jbHR5cGUgIT0gb19kYXRhLmNsdHlwZSkgb3IgKGRhdGEuYXR0bGVuIGlzIGRlZmluZWQg
YW5kIGRhdGEuYXR0bGVuICE9IG9fZGF0YS5hdHRsZW4pIG9yIChkYXRhLmF0dHByZWNpc2lvbiBp
cyBkZWZpbmVkIGFuZCBkYXRhLmF0dHByZWNpc2lvbiAhPSBvX2RhdGEuYXR0cHJlY2lzaW9uKSBv
ciAoZGF0YS5jb2xsc3BjbmFtZSBhbmQgZGF0YS5jb2xsc3BjbmFtZSAhPSBvX2RhdGEuY29sbHNw
Y25hbWUpJX0KQEAgLTQ1LDcgKzUxLDcgQEAgUExBSU57JSBlbGlmIGRhdGEuYXR0c3RvcmFnZSA9
PSAnbSclfU1BSU57JSBlbGlmIGRhdGEuYXR0c3RvcmFnZSA9PSAnZSclfQogRVhURVJOQUx7JSBl
bGlmIGRhdGEuYXR0c3RvcmFnZSA9PSAneCclfUVYVEVOREVEeyUgZW5kaWYgJX07CiAKIHslIGVu
ZGlmICV9Ci17JSBpZiBkYXRhLmRlc2NyaXB0aW9uIGlzIGRlZmluZWQgJX0KK3slIGlmIGRhdGEu
ZGVzY3JpcHRpb24gaXMgZGVmaW5lZCBhbmQgZGF0YS5kZXNjcmlwdGlvbiAhPSBOb25lICV9CiB7
JSBpZiBkYXRhLm5hbWUgJX0KIENPTU1FTlQgT04gQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEu
c2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUpfX0KIHslIGVsc2UgJX0KQEAgLTU1LDcgKzYx
LDcgQEAgQ09NTUVOVCBPTiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu
dGFibGUsIG9fZGF0YS5uYW1lKX19CiAKIHslIGVuZGlmICV9CiB7IyMjIFVwZGF0ZSBjb2x1bW4g
dmFyaWFibGVzICMjI30KLXslIGlmICdhdHRvcHRpb25zJyBpbiBkYXRhIGFuZCBkYXRhLmF0dG9w
dGlvbnN8bGVuZ3RoID4gMCAlfQoreyUgaWYgJ2F0dG9wdGlvbnMnIGluIGRhdGEgYW5kIGRhdGEu
YXR0b3B0aW9ucyAhPSBOb25lIGFuZCBkYXRhLmF0dG9wdGlvbnN8bGVuZ3RoID4gMCAlfQogeyUg
c2V0IHZhcmlhYmxlcyA9IGRhdGEuYXR0b3B0aW9ucyAlfQogeyUgaWYgJ2RlbGV0ZWQnIGluIHZh
cmlhYmxlcyBhbmQgdmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQogQUxURVIgVEFCTEUg
e3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KZGlmZiAtLWdpdCBhL3dl
Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz
L3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1ucy9zcWwvZGVmYXVsdC9jcmVhdGUuc3FsIGIvd2ViL3Bn
YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi
bGVzL3RlbXBsYXRlcy9jb2x1bW5zL3NxbC9kZWZhdWx0L2NyZWF0ZS5zcWwKaW5kZXggYWZmZDg4
OTA2Li5lZDdmNWYxYzYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy
b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1ucy9z
cWwvZGVmYXVsdC9jcmVhdGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy
b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1ucy9z
cWwvZGVmYXVsdC9jcmVhdGUuc3FsCkBAIC0xMiw3ICsxMiw3IEBAIEFMVEVSIFRBQkxFIHt7Y29u
bnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19CiAKIHslIGVuZGlmICV9CiB7IyMj
ICBBZGQgY29tbWVudHMgIyMjfQoteyUgaWYgZGF0YSBhbmQgZGF0YS5kZXNjcmlwdGlvbiAlfQor
eyUgaWYgZGF0YSBhbmQgZGF0YS5kZXNjcmlwdGlvbiBhbmQgZGF0YS5kZXNjcmlwdGlvbiAhPSBO
b25lICV9CiBDT01NRU5UIE9OIENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0
YS50YWJsZSwgZGF0YS5uYW1lKX19CiAgICAgSVMge3tkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJh
bH19OwogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy
dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsL2RlZmF1
bHQvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz
L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1ucy9zcWwvZGVmYXVsdC91
cGRhdGUuc3FsCmluZGV4IGFjMGFmZThkMS4uM2M2YWUwYTkxIDEwMDY0NAotLS0gYS93ZWIvcGdh
ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs
ZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbAorKysgYi93ZWIvcGdh
ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs
ZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbApAQCAtOSw5ICs5LDE1
IEBAIEFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19
CiAKIHslIGVuZGlmICV9CiB7IyMjICBBbHRlciBjb2x1bW4gdHlwZSBhbmQgY29sbGF0aW9uICMj
I30KLXslIGlmIChkYXRhLmNsdHlwZSBhbmQgZGF0YS5jbHR5cGUgIT0gb19kYXRhLmNsdHlwZSkg
b3IgKGRhdGEuYXR0bGVuIGlzIGRlZmluZWQgYW5kIGRhdGEuYXR0bGVuICE9IG9fZGF0YS5hdHRs
ZW4pIG9yIChkYXRhLmF0dHByZWNpc2lvbiBpcyBkZWZpbmVkIGFuZCBkYXRhLmF0dHByZWNpc2lv
biAhPSBvX2RhdGEuYXR0cHJlY2lzaW9uKSAgb3IgKGRhdGEuY29sbHNwY25hbWUgYW5kIGRhdGEu
Y29sbHNwY25hbWUgIT0gb19kYXRhLmNvbGxzcGNuYW1lKSAlfQotQUxURVIgVEFCTEUge3tjb25u
fHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KLSAgICBBTFRFUiBDT0xVTU4geyUg
aWYgZGF0YS5uYW1lICV9e3tjb25ufHF0VHlwZUlkZW50KGRhdGEubmFtZSl9fXslIGVsc2UgJX17
e2Nvbm58cXRUeXBlSWRlbnQob19kYXRhLm5hbWUpfX17JSBlbmRpZiAlfSBUWVBFIHt7IEdFVF9U
WVBFLlVQREFURV9UWVBFX1NRTChjb25uLCBkYXRhLCBvX2RhdGEpIH19eyUgaWYgZGF0YS5jb2xs
c3BjbmFtZSBhbmQgZGF0YS5jb2xsc3BjbmFtZSAhPSBvX2RhdGEuY29sbHNwY25hbWUgJX0KK3sl
IGlmIChkYXRhLmNsdHlwZSBhbmQgZGF0YS5jbHR5cGUgIT0gb19kYXRhLmNsdHlwZSkgb3IgKGRh
dGEuYXR0bGVuIGlzIGRlZmluZWQgYW5kIGRhdGEuYXR0bGVuICE9IG9fZGF0YS5hdHRsZW4pIG9y
IChkYXRhLmF0dHByZWNpc2lvbiBpcyBkZWZpbmVkIGFuZCBkYXRhLmF0dHByZWNpc2lvbiAhPSBv
X2RhdGEuYXR0cHJlY2lzaW9uKSBvciAoZGF0YS5jb2xsc3BjbmFtZSBhbmQgZGF0YS5jb2xsc3Bj
bmFtZSAhPSBvX2RhdGEuY29sbHNwY25hbWUpJX0KK3slIGlmIGRhdGEuY29sX3R5cGVfY29udmVy
c2lvbiBpcyBkZWZpbmVkIGFuZCBkYXRhLmNvbF90eXBlX2NvbnZlcnNpb24gPT0gRmFsc2UgJX0K
Ky0tIFdBUk5JTkc6CistLSBUaGUgU1FMIHN0YXRlbWVudCBiZWxvdyB3b3VsZCBub3JtYWxseSBi
ZSB1c2VkIHRvIGFsdGVyIHRoZSBkYXRhdHlwZSBmb3IgdGhlIFhYWCBjb2x1bW4sIGhvd2V2ZXIs
CistLSB0aGUgY3VycmVudCBkYXRhdHlwZSBjYW5ub3QgYmUgY2FzdCB0byB0aGUgdGFyZ2V0IGRh
dGF0eXBlIHNvIHRoaXMgY29udmVyc2lvbiBjYW5ub3QgYmUgbWFkZSBhdXRvbWF0aWNhbGx5Lgor
Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb2xfdHlwZV9jb252ZXJzaW9uIGlzIGRlZmluZWQg
YW5kIGRhdGEuY29sX3R5cGVfY29udmVyc2lvbiA9PSBGYWxzZSAlfSAtLSB7JSBlbmRpZiAlfUFM
VEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19Cit7JSBp
ZiBkYXRhLmNvbF90eXBlX2NvbnZlcnNpb24gaXMgZGVmaW5lZCBhbmQgZGF0YS5jb2xfdHlwZV9j
b252ZXJzaW9uID09IEZhbHNlICV9IC0tIHslIGVuZGlmICV9ICAgIEFMVEVSIENPTFVNTiB7JSBp
ZiBkYXRhLm5hbWUgJX17e2Nvbm58cXRUeXBlSWRlbnQoZGF0YS5uYW1lKX19eyUgZWxzZSAlfXt7
Y29ubnxxdFR5cGVJZGVudChvX2RhdGEubmFtZSl9fXslIGVuZGlmICV9IFRZUEUge3sgR0VUX1RZ
UEUuVVBEQVRFX1RZUEVfU1FMKGNvbm4sIGRhdGEsIG9fZGF0YSkgfX17JSBpZiBkYXRhLmNvbGxz
cGNuYW1lIGFuZCBkYXRhLmNvbGxzcGNuYW1lICE9IG9fZGF0YS5jb2xsc3BjbmFtZSAlfQogIENP
TExBVEUge3tkYXRhLmNvbGxzcGNuYW1lfX17JSBlbGlmIG9fZGF0YS5jb2xsc3BjbmFtZSAlfSBD
T0xMQVRFIHt7b19kYXRhLmNvbGxzcGNuYW1lfX17JSBlbmRpZiAlfTsKIHslIGVuZGlmICV9CiB7
IyMjICBBbHRlciBjb2x1bW4gZGVmYXVsdCB2YWx1ZSAjIyN9CkBAIC00Niw3ICs1Miw3IEBAIFBM
QUlOeyUgZWxpZiBkYXRhLmF0dHN0b3JhZ2UgPT0gJ20nJX1NQUlOeyUgZWxpZiBkYXRhLmF0dHN0
b3JhZ2UgPT0gJ2UnJX0KIEVYVEVSTkFMeyUgZWxpZiBkYXRhLmF0dHN0b3JhZ2UgPT0gJ3gnJX1F
WFRFTkRFRHslIGVuZGlmICV9OwogCiB7JSBlbmRpZiAlfQoteyUgaWYgZGF0YS5kZXNjcmlwdGlv
biBpcyBkZWZpbmVkICV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uIGlzIGRlZmluZWQgYW5kIGRh
dGEuZGVzY3JpcHRpb24gIT0gTm9uZSAlfQogeyUgaWYgZGF0YS5uYW1lICV9CiBDT01NRU5UIE9O
IENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1l
KX19CiB7JSBlbHNlICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n
cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3BhcnRpdGlv
bnMvc3FsL3BnLzEwX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy
X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvcGFydGl0
aW9ucy9zcWwvcGcvMTBfcGx1cy9jcmVhdGUuc3FsCmluZGV4IDZkYjU0NTJiNS4uMDFmOWJmYmFi
IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k
YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3BhcnRpdGlvbnMvc3FsL3BnLzEwX3Bs
dXMvY3JlYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy
dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3BhcnRpdGlvbnMvc3FsL3Bn
LzEwX3BsdXMvY3JlYXRlLnNxbApAQCAtMyw2ICszLDcgQEAKIHsjPT09PT09IE1BSU4gVEFCTEUg
VEVNUExBVEUgU1RBUlRTIEhFUkUgPT09PT09I30KIHsjPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSN9CiB7IyMjIENSRUFURSBUQUJMRSBTVEFURU1FTlQgRk9SIHBh
cnRpdGlvbnMgIyMjfQorCiBDUkVBVEUgeyUgaWYgZGF0YS5yZWxwZXJzaXN0ZW5jZSAlfVVOTE9H
R0VEIHslIGVuZGlmICV9VEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFt
ZSl9fXslIGlmIGRhdGEucmVsaXNwYXJ0aXRpb24gaXMgZGVmaW5lZCBhbmQgZGF0YS5yZWxpc3Bh
cnRpdGlvbiAlfSBQQVJUSVRJT04gT0Yge3tjb25ufHF0SWRlbnQoZGF0YS5wYXJlbnRfc2NoZW1h
LCBkYXRhLnBhcnRpdGlvbmVkX3RhYmxlX25hbWUpfX17JSBlbmRpZiAlfQogCiB7IyBNYWNybyB0
byByZW5kZXIgZm9yIGNvbnN0cmFpbnRzICN9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93
c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxh
dGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9zY2hlbWFfZGlmZi5zcWwgYi93ZWIvcGdhZG1pbi9icm93
c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxh
dGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9zY2hlbWFfZGlmZi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwLi5lYmQ0YWU2ZTUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh
ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs
ZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9zY2hlbWFfZGlmZi5zcWwKQEAgLTAsMCAr
MSwxNCBAQAorCisKK0lOU0VSVCBJTlRPIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRh
Lm5hbWUpfX0oCit7JSBpZiBkYXRhLmNvbHVtbnMgYW5kIGRhdGEuY29sdW1uc3xsZW5ndGggPiAw
ICV9Cit7JSBmb3IgYyBpbiBkYXRhLmNvbHVtbnMgJX17e2MubmFtZX19eyUgaWYgbm90IGxvb3Au
bGFzdCAlfSx7JSBlbmRpZiAlfXslIGVuZGZvciAlfXslIGVuZGlmICV9KQorU0VMRUNUIHslIGlm
IGRhdGEuY29sdW1ucyBhbmQgZGF0YS5jb2x1bW5zfGxlbmd0aCA+IDAgJX17JSBmb3IgYyBpbiBk
YXRhLmNvbHVtbnMgJX17e2MubmFtZX19eyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAl
fXslIGVuZGZvciAlfXslIGVuZGlmICV9CisgRlJPTSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVt
YSwgZGF0YS5vcmlnX25hbWUpfX07CisKK0RST1AgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5z
Y2hlbWEsIGRhdGEub3JpZ19uYW1lKX19OworCit7e3BhcnRpdGlvbl9zcWx9fQorCitBTFRFUiBU
QUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19CisgICAgUkVOQU1F
IFRPIHt7Y29ubnxxdElkZW50KGRhdGEub3JpZ19uYW1lKX19OwpkaWZmIC0tZ2l0IGEvd2ViL3Bn
YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi
bGVzL3RyaWdnZXJzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv
dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL19faW5pdF9fLnB5
CmluZGV4IGQ2ZjY4NjdlMC4uOTdkZDAwZjA3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93
c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dl
cnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl
cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL19faW5pdF9fLnB5CkBAIC0x
Myw3ICsxMyw3IEBAIGltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KIGZyb20gZnVuY3Rvb2xzIGlt
cG9ydCB3cmFwcwogCiBpbXBvcnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy
cy5kYXRhYmFzZXMgYXMgZGF0YWJhc2UKLWZyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0
ZSwgcmVxdWVzdCwganNvbmlmeQorZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBy
ZXF1ZXN0LCBqc29uaWZ5LCBjdXJyZW50X2FwcAogZnJvbSBmbGFza19iYWJlbGV4IGltcG9ydCBn
ZXR0ZXh0CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uIGltcG9ydCBDb2xsZWN0aW9u
Tm9kZU1vZHVsZQogZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2Rl
VmlldwpAQCAtMjUsNyArMjUsMTEgQEAgZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw
cy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnV0aWxzIFwKICAgICBpbXBvcnQgdHJpZ2dlcl9k
ZWZpbml0aW9uCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBm
cm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gcGdhZG1pbi51dGlscy5j
b21waWxlX3RlbXBsYXRlX25hbWUgaW1wb3J0IGNvbXBpbGVfdGVtcGxhdGVfcGF0aAogZnJvbSBw
Z2FkbWluLnV0aWxzIGltcG9ydCBJU19QWTIKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlm
Zi5ub2RlX3JlZ2lzdHJ5IGltcG9ydCBTY2hlbWFEaWZmUmVnaXN0cnkKK2Zyb20gcGdhZG1pbi50
b29scy5zY2hlbWFfZGlmZi5jb21wYXJlIGltcG9ydCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZQor
CiAjIElmIHdlIGFyZSBpbiBQeXRob24zCiBpZiBub3QgSVNfUFkyOgogICAgIHVuaWNvZGUgPSBz
dHIKQEAgLTE1MSw3ICsxNTUsNyBAQCBjbGFzcyBUcmlnZ2VyTW9kdWxlKENvbGxlY3Rpb25Ob2Rl
TW9kdWxlKToKIGJsdWVwcmludCA9IFRyaWdnZXJNb2R1bGUoX19uYW1lX18pCiAKIAotY2xhc3Mg
VHJpZ2dlclZpZXcoUEdDaGlsZE5vZGVWaWV3KToKK2NsYXNzIFRyaWdnZXJWaWV3KFBHQ2hpbGRO
b2RlVmlldywgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUpOgogICAgICIiIgogICAgIFRoaXMgY2xh
c3MgaXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgcm91dGVzIGZvciBUcmlnZ2VyIG5vZGUK
IApAQCAtMjQ0LDYgKzI0OCwxMCBAQCBjbGFzcyBUcmlnZ2VyVmlldyhQR0NoaWxkTm9kZVZpZXcp
OgogICAgICAgICAnZW5hYmxlJzogW3sncHV0JzogJ2VuYWJsZV9kaXNhYmxlX3RyaWdnZXInfV0K
ICAgICB9KQogCisgICAgIyBTY2hlbWEgRGlmZjogS2V5cyB0byBpZ25vcmUgd2hpbGUgY29tcGFy
aW5nCisgICAga2V5c190b19pZ25vcmUgPSBbJ29pZCcsICd4bWluJywgJ25zcG5hbWUnLCAndGZ1
bmN0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAndGdyZWxpZCcsICd0Z2ZvaWQnLCAncHJv
c3JjJ10KKwogICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6CiAgICAgICAgICIiIgogICAg
ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwg
Y2hlY2tzCkBAIC0yNjcsNiArMjc1LDExIEBAIGNsYXNzIFRyaWdnZXJWaWV3KFBHQ2hpbGROb2Rl
Vmlldyk6CiAgICAgICAgICAgICAgICAga3dhcmdzWydkaWQnXSBpbiBzZWxmLm1hbmFnZXIuZGJf
aW5mbyBlbHNlIDAKIAogICAgICAgICAgICAgIyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZv
ciBzcWwgc2NyaXB0cworICAgICAgICAgICAgc2VsZi50YWJsZV90ZW1wbGF0ZV9wYXRoID0gY29t
cGlsZV90ZW1wbGF0ZV9wYXRoKAorICAgICAgICAgICAgICAgICd0YWJsZXMvc3FsJywKKyAgICAg
ICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUsCisgICAgICAgICAgICAgICAgc2Vs
Zi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgICAgICkKICAgICAgICAgICAgIHNlbGYudGVtcGxh
dGVfcGF0aCA9ICd0cmlnZ2Vycy9zcWwvezB9LyN7MX0jJy5mb3JtYXQoCiAgICAgICAgICAgICAg
ICAgc2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlLCBzZWxmLm1hbmFnZXIudmVyc2lvbikKICAgICAg
ICAgICAgICMgU3RvcmUgc2VydmVyIHR5cGUKQEAgLTQ1MCw3ICs0NjMsMjIgQEAgY2xhc3MgVHJp
Z2dlclZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgUmV0dXJuczoKICAgICAgICAgICAg
IEpTT04gb2Ygc2VsZWN0ZWQgdHJpZ2dlciBub2RlCiAgICAgICAgICIiIgorICAgICAgICBzdGF0
dXMsIGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKHRpZCwgdHJpZCkKKyAgICAgICAgaWYg
bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBkYXRhCisKKyAgICAgICAgcmV0dXJuIGFq
YXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1kYXRhLAorICAgICAgICAgICAgc3Rh
dHVzPTIwMAorICAgICAgICApCiAKKyAgICBkZWYgX2ZldGNoX3Byb3BlcnRpZXMoc2VsZiwgdGlk
LCB0cmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBm
ZXRjaCB0aGUgcHJvcGVydGllcyBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdAorICAgICAgICA6cGFy
YW0gdGlkOgorICAgICAgICA6cGFyYW0gdHJpZDoKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAg
IiIiCiAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0
ZV9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0
aWVzLnNxbCddKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10aWQsIHRyaWQ9
dHJpZCwKQEAgLTQ1OSwxMCArNDg3LDEwIEBAIGNsYXNzIFRyaWdnZXJWaWV3KFBHQ2hpbGROb2Rl
Vmlldyk6CiAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp
CiAKICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z
ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBpbnRl
cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAgIGlmIGxlbihyZXNbJ3Jv
d3MnXSkgPT0gMDoKLSAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlLCBnb25lKAogICAgICAgICAgICAgICAgIGdldHRleHQoIiIiQ291bGQgbm90IGZpbmQg
dGhlIHRyaWdnZXIgaW4gdGhlIHRhYmxlLiIiIikpCiAKICAgICAgICAgIyBNYWtpbmcgY29weSBv
ZiBvdXRwdXQgZm9yIGZ1dHVyZSB1c2UKQEAgLTQ3MiwxMCArNTAwLDcgQEAgY2xhc3MgVHJpZ2dl
clZpZXcoUEdDaGlsZE5vZGVWaWV3KToKIAogICAgICAgICBkYXRhID0gdHJpZ2dlcl9kZWZpbml0
aW9uKGRhdGEpCiAKLSAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCi0gICAgICAgICAgICBy
ZXNwb25zZT1kYXRhLAotICAgICAgICAgICAgc3RhdHVzPTIwMAotICAgICAgICApCisgICAgICAg
IHJldHVybiBUcnVlLCBkYXRhCiAKICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGNy
ZWF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgpAQCAtNTUyLDcgKzU3Nyw3IEBA
IGNsYXNzIFRyaWdnZXJWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICByZXR1cm4g
aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKIAogICAgIEBjaGVja19wcmVj
b25kaXRpb24KLSAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwg
dHJpZD1Ob25lKToKKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRp
ZCwgdHJpZD1Ob25lLCBvbmx5X3NxbD1GYWxzZSk6CiAgICAgICAgICIiIgogICAgICAgICBUaGlz
IGZ1bmN0aW9uIHdpbGwgdXBkYXRlcyBleGlzdGluZyB0aGUgdHJpZ2dlciBvYmplY3QKIApAQCAt
NjEwLDYgKzYzNSw4IEBAIGNsYXNzIFRyaWdnZXJWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNjYWRlPWNhc2NhZGUKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIGlmIG9ubHlf
c3FsOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gU1FMCiAgICAgICAgICAgICAgICAgc3Rh
dHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQogICAgICAgICAgICAgICAg
IGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2
ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQpAQCAtNzYxLDYgKzc4OCwzNSBAQCBjbGFzcyBUcmlnZ2Vy
VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogCiAgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKHJl
c3BvbnNlPVNRTCkKIAorICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3NxbF9m
cm9tX2RpZmYoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBvaWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGE9Tm9uZSwgZGlmZl9zY2hlbWE9Tm9uZSwgZHJvcF9zcWw9RmFs
c2UpOgorICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgU1FMLCBuYW1lID0gdHJpZ2dlcl91
dGlscy5nZXRfc3FsKHNlbGYuY29ubiwgZGF0YSwgdGlkLCBvaWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LnNo
b3dfc3lzdGVtX29iamVjdHMpCisKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKFNRTCwg
KHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBTUUwKKyAgICAgICAgICAg
IFNRTCA9IFNRTC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBpZiBkcm9wX3NxbDoKKyAgICAgICAgICAgICAgICBTUUwgPSBzZWxmLmRlbGV0ZShnaWQ9
Z2lkLCBzaWQ9c2lkLCBkaWQ9ZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNjaWQ9c2NpZCwgdGlkPXRpZCwgdHJpZD1vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb25seV9zcWw9VHJ1ZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgc2NoZW1hID0gc2VsZi5zY2hlbWEKKyAgICAgICAgICAgICAgICBpZiBkaWZmX3NjaGVtYToK
KyAgICAgICAgICAgICAgICAgICAgc2NoZW1hID0gZGlmZl9zY2hlbWEKKyAgICAgICAgICAgICAg
ICBTUUwgPSB0cmlnZ2VyX3V0aWxzLmdldF9yZXZlcnNlX2VuZ2luZWVyZWRfc3FsKAorICAgICAg
ICAgICAgICAgICAgICBzZWxmLmNvbm4sIHNjaGVtYSwKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi50YWJsZSwgdGlkLCBvaWQsCisgICAgICAgICAgICAgICAgICAgIHNlbGYuZGF0bGFzdHN5c29p
ZCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5ibHVlcHJpbnQuc2hvd19zeXN0ZW1fb2JqZWN0
cywKKyAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD1Ob25lLCB3aXRoX2hlYWRlcj1G
YWxzZSkKKworICAgICAgICByZXR1cm4gU1FMCisKICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAg
ICAgZGVmIGVuYWJsZV9kaXNhYmxlX3RyaWdnZXIoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwg
dGlkLCB0cmlkKToKICAgICAgICAgIiIiCkBAIC04NzUsNSArOTMxLDQ2IEBAIGNsYXNzIFRyaWdn
ZXJWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICBzdGF0dXM9MjAwCiAgICAgICAg
ICkKIAorICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZmV0Y2hfb2JqZWN0c190b19j
b21wYXJlKHNlbGYsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIG9pZD1Ob25lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWdub3JlX2tleXM9RmFsc2UpOgorICAgICAgICAiIiIKKyAg
ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBsaXN0IG9mIGFsbCB0aGUgdHJpZ2dl
cnMgZm9yCisgICAgICAgIHNwZWNpZmllZCBzY2hlbWEgaWQuCisKKyAgICAgICAgOnBhcmFtIHNp
ZDogU2VydmVyIElkCisgICAgICAgIDpwYXJhbSBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgIDpw
YXJhbSBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgOnBhcmFtIHRpZDogVGFibGUgSWQKKyAgICAg
ICAgOnJldHVybjoKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IGRpY3QoKQorCisgICAgICAg
IGlmIG9pZDoKKyAgICAgICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRp
ZXModGlkLCBvaWQpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg
IGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcihkYXRhKQorICAgICAgICAgICAgICAgIHJldHVybiBG
YWxzZQorICAgICAgICAgICAgcmVzID0gZGF0YQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub2Rlcy5zcWwnXSksIHRp
ZD10aWQpCisgICAgICAgICAgICBzdGF0dXMsIHRyaWdnZXJzID0gc2VsZi5jb25uLmV4ZWN1dGVf
MmRhcnJheShTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg
IGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcih0cmlnZ2VycykKKyAgICAgICAgICAgICAgICByZXR1
cm4gRmFsc2UKKworICAgICAgICAgICAgZm9yIHJvdyBpbiB0cmlnZ2Vyc1sncm93cyddOgorICAg
ICAgICAgICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXModGlkLCBy
b3dbJ29pZCddKQorICAgICAgICAgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAgICAgICAgICAg
ICAgaWYgaWdub3JlX2tleXM6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3Iga2V5IGluIHNl
bGYua2V5c190b19pZ25vcmU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYga2V5IGlu
IGRhdGE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbCBkYXRhW2tleV0KKyAg
ICAgICAgICAgICAgICAgICAgcmVzW3Jvd1snbmFtZSddXSA9IGRhdGEKKworICAgICAgICByZXR1
cm4gcmVzCisKIAorU2NoZW1hRGlmZlJlZ2lzdHJ5KCd0cmlnZ2VyJywgVHJpZ2dlclZpZXcsICd0
YWJsZScpCiBUcmlnZ2VyVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0t
Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz
L3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z
ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3V0
aWxzLnB5CmluZGV4IDE2NmQyYTE0Yy4uMjIxZjQ4ZDUyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p
bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv
dHJpZ2dlcnMvdXRpbHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz
L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3V0aWxzLnB5CkBAIC0z
MCw3ICszMCw3IEBAIGRlZiBnZXRfdGVtcGxhdGVfcGF0aChmKToKICAgICBkZWYgd3JhcCgqYXJn
cywgKiprd2FyZ3MpOgogICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgdGhlIGNvbm5l
Y3Rpb24gb2JqZWN0CiAgICAgICAgIGNvbm5fb2JqID0gYXJnc1swXQotICAgICAgICBpZiAndGVt
cGxhdGVfcGF0aCcgbm90IGluIGt3YXJnczoKKyAgICAgICAgaWYgJ3RlbXBsYXRlX3BhdGgnIG5v
dCBpbiBrd2FyZ3Mgb3Iga3dhcmdzWyd0ZW1wbGF0ZV9wYXRoJ10gaXMgTm9uZToKICAgICAgICAg
ICAgIGt3YXJnc1sndGVtcGxhdGVfcGF0aCddID0gJ3RyaWdnZXJzL3NxbC97MH0vI3sxfSMnLmZv
cm1hdCgKICAgICAgICAgICAgICAgICBjb25uX29iai5tYW5hZ2VyLnNlcnZlcl90eXBlLCBjb25u
X29iai5tYW5hZ2VyLnZlcnNpb24pCiAKQEAgLTIwMSw3ICsyMDEsNyBAQCBkZWYgZ2V0X3NxbChj
b25uLCBkYXRhLCB0aWQsIHRyaWQsIGRhdGxhc3RzeXNvaWQsCiBAZ2V0X3RlbXBsYXRlX3BhdGgK
IGRlZiBnZXRfcmV2ZXJzZV9lbmdpbmVlcmVkX3NxbChjb25uLCBzY2hlbWEsIHRhYmxlLCB0aWQs
IHRyaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0bGFzdHN5c29pZCwgc2hv
d19zeXN0ZW1fb2JqZWN0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0
ZV9wYXRoPU5vbmUpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlX3Bh
dGg9Tm9uZSwgd2l0aF9oZWFkZXI9VHJ1ZSk6CiAgICAgIiIiCiAgICAgVGhpcyBmdW5jdGlvbiB3
aWxsIHJldHVybiByZXZlcnNlIGVuZ2luZWVyZWQgc3FsIGZvciBzcGVjaWZpZWQgdHJpZ2dlci4K
IApAQCAtMjEzLDYgKzIxMyw4IEBAIGRlZiBnZXRfcmV2ZXJzZV9lbmdpbmVlcmVkX3NxbChjb25u
LCBzY2hlbWEsIHRhYmxlLCB0aWQsIHRyaWQsCiAgICAgOnBhcmFtIGRhdGxhc3RzeXNvaWQ6CiAg
ICAgOnBhcmFtIHNob3dfc3lzdGVtX29iamVjdHM6IFNob3cgU3lzdGVtIE9iamVjdCB2YWx1ZSBU
cnVlIG9yIEZhbHNlCiAgICAgOnBhcmFtIHRlbXBsYXRlX3BhdGg6IE9wdGlvbmFsIHRlbXBsYXRl
IHBhdGgKKyAgICA6cGFyYW0gd2l0aF9oZWFkZXI6IE9wdGlvbmFsIHBhcmFtZXRlciB0byBkZWNp
ZGUgd2hldGhlciB0aGUgU1FMIHdpbGwgYmUKKyAgICAgcmV0dXJuZWQgd2l0aCBoZWFkZXIgb3Ig
bm90CiAgICAgOnJldHVybjoKICAgICAiIiIKICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i
LmpvaW4oW3RlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKQEAgLTI0MCwxMiArMjQy
LDE1IEBAIGRlZiBnZXRfcmV2ZXJzZV9lbmdpbmVlcmVkX3NxbChjb25uLCBzY2hlbWEsIHRhYmxl
LCB0aWQsIHRyaWQsCiAgICAgU1FMLCBuYW1lID0gZ2V0X3NxbChjb25uLCBkYXRhLCB0aWQsIE5v
bmUsIGRhdGxhc3RzeXNvaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3N5c3RlbV9v
YmplY3RzKQogCi0gICAgc3FsX2hlYWRlciA9IHUiLS0gVHJpZ2dlcjogezB9XG5cbi0tICIuZm9y
bWF0KGRhdGFbJ25hbWUnXSkKKyAgICBpZiB3aXRoX2hlYWRlcjoKKyAgICAgICAgc3FsX2hlYWRl
ciA9IHUiLS0gVHJpZ2dlcjogezB9XG5cbi0tICIuZm9ybWF0KGRhdGFbJ25hbWUnXSkKIAotICAg
IHNxbF9oZWFkZXIgKz0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFt0ZW1wbGF0ZV9wYXRoLCAn
ZGVsZXRlLnNxbCddKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRh
dGEsIGNvbm49Y29ubikKKyAgICAgICAgc3FsX2hlYWRlciArPSByZW5kZXJfdGVtcGxhdGUoIi8i
LmpvaW4oW3RlbXBsYXRlX3BhdGgsICdkZWxldGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIGNvbm49Y29ubikKIAotICAgIFNRTCA9IHNx
bF9oZWFkZXIgKyAnXG5cbicgKyBTUUwuc3RyaXAoJ1xuJykKKyAgICAgICAgU1FMID0gc3FsX2hl
YWRlciArICdcblxuJyArIFNRTC5zdHJpcCgnXG4nKQorICAgIGVsc2U6CisgICAgICAgIFNRTCA9
IFNRTC5zdHJpcCgnXG4nKQogCiAgICAgIyBJZiB0cmlnZ2VyIGlzIGRpc2FibGVkIHRoZW4gYWRk
IHNxbCBjb2RlIGZvciB0aGUgc2FtZQogICAgIGlmIGRhdGFbJ2lzX2VuYWJsZV90cmlnZ2VyJ10g
IT0gJ08nOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl
cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJv
d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3V0aWxz
LnB5CmluZGV4IDE1OTlkMzVlMi4uMzI0N2QyZmM3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i
cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdXRp
bHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0
YWJhc2VzL3NjaGVtYXMvdGFibGVzL3V0aWxzLnB5CkBAIC0xMCw2ICsxMCw3IEBACiAiIiIgSW1w
bGVtZW50cyBVdGlsaXR5IGNsYXNzIGZvciBUYWJsZSBhbmQgUGFydGl0aW9uZWQgVGFibGUuICIi
IgogCiBpbXBvcnQgcmUKK2ltcG9ydCBjb3B5CiBmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMK
IGltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KIGZyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1w
bGF0ZSwganNvbmlmeSwgcmVxdWVzdApAQCAtMTc5LDggKzE4MCwxMCBAQCBjbGFzcyBCYXNlVGFi
bGVWaWV3KFBHQ2hpbGROb2RlVmlldywgQmFzZVBhcnRpdGlvblRhYmxlKToKICAgICAgICAgICAg
ICAgICBkYXRhW3Jvd1snZGVmdHlwZSddXSA9IFtwcml2XQogCiAgICAgICAgICMgV2Ugd2lsbCBh
ZGQgQXV0byB2YWN1dW0gZGVmYXVsdHMgd2l0aCBvdXQgcmVzdWx0IGZvciBncmlkCi0gICAgICAg
IGRhdGFbJ3ZhY3V1bV90YWJsZSddID0gc2VsZi5wYXJzZV92YWN1dW1fZGF0YShzZWxmLmNvbm4s
IGRhdGEsICd0YWJsZScpCi0gICAgICAgIGRhdGFbJ3ZhY3V1bV90b2FzdCddID0gc2VsZi5wYXJz
ZV92YWN1dW1fZGF0YShzZWxmLmNvbm4sIGRhdGEsICd0b2FzdCcpCisgICAgICAgIGRhdGFbJ3Zh
Y3V1bV90YWJsZSddID0gY29weS5kZWVwY29weSgKKyAgICAgICAgICAgIHNlbGYucGFyc2VfdmFj
dXVtX2RhdGEoc2VsZi5jb25uLCBkYXRhLCAndGFibGUnKSkKKyAgICAgICAgZGF0YVsndmFjdXVt
X3RvYXN0J10gPSBjb3B5LmRlZXBjb3B5KAorICAgICAgICAgICAgc2VsZi5wYXJzZV92YWN1dW1f
ZGF0YShzZWxmLmNvbm4sIGRhdGEsICd0b2FzdCcpKQogCiAgICAgICAgICMgRmV0Y2ggY29sdW1u
cyBmb3IgdGhlIHRhYmxlIGxvZ2ljCiAgICAgICAgICMKQEAgLTQwNSw3ICs0MDgsOCBAQCBjbGFz
cyBCYXNlVGFibGVWaWV3KFBHQ2hpbGROb2RlVmlldywgQmFzZVBhcnRpdGlvblRhYmxlKToKICAg
ICAgICAgICAgIHN0YXR1cz0yMDAKICAgICAgICAgKQogCi0gICAgZGVmIGdldF9yZXZlcnNlX2Vu
Z2luZWVyZWRfc3FsKHNlbGYsIGRpZCwgc2NpZCwgdGlkLCBtYWluX3NxbCwgZGF0YSk6CisgICAg
ZGVmIGdldF9yZXZlcnNlX2VuZ2luZWVyZWRfc3FsKHNlbGYsIGRpZCwgc2NpZCwgdGlkLCBtYWlu
X3NxbCwgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbl9yZXNw
PVRydWUsIGRpZmZfcGFydGl0aW9uX3NxbD1GYWxzZSk6CiAgICAgICAgICIiIgogICAgICAgICBU
aGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlcyByZXZlcnNlIGVuZ2luZWVyZWQgc3FsIGZvcgogICAg
ICAgICB0aGUgdGFibGUgb2JqZWN0CkBAIC00MTYsNiArNDIwLDkgQEAgY2xhc3MgQmFzZVRhYmxl
VmlldyhQR0NoaWxkTm9kZVZpZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAgICAgICAgICAgIHRp
ZDogVGFibGUgSUQKICAgICAgICAgICAgbWFpbl9zcWw6IExpc3QgY29udGFpbnMgYWxsIHRoZSBy
ZXZlcnNlZCBlbmdpbmVlcmVkIHNxbAogICAgICAgICAgICBkYXRhOiBUYWJsZSdzIERhdGEKKyAg
ICAgICAgICAganNvbl9yZXNwOiBKc29uIHJlc3BvbnNlIG9yIHBsYWluIFNRTAorICAgICAgICAg
ICBkaWZmX3BhcnRpdGlvbl9zcWw6IEluIFNjaGVtYSBkaWZmLCB0aGUgUGFydGl0aW9uIHNxbCBz
aG91bGQgYmUKKyAgICAgICAgICAgcmV0dXJuIHNlcGFyYXRlbHkgdG8gcGVyZm9ybSBmdXJ0aGVy
IHRhc2sKICAgICAgICAgIiIiCiAgICAgICAgICIiIgogICAgICAgICAjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjCkBAIC00MjcsNiArNDM0LDcgQEAgY2xhc3MgQmFzZVRhYmxl
VmlldyhQR0NoaWxkTm9kZVZpZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAgICAgICAgIHNjaGVt
YSA9IGRhdGFbJ3NjaGVtYSddCiAgICAgICAgIHRhYmxlID0gZGF0YVsnbmFtZSddCiAgICAgICAg
IGlzX3BhcnRpdGlvbmVkID0gJ2lzX3BhcnRpdGlvbmVkJyBpbiBkYXRhIGFuZCBkYXRhWydpc19w
YXJ0aXRpb25lZCddCisgICAgICAgIHNxbF9oZWFkZXIgPSAnJwogCiAgICAgICAgIGRhdGEgPSBz
ZWxmLl9mb3JtYXR0ZXIoZGlkLCBzY2lkLCB0aWQsIGRhdGEpCiAKQEAgLTQ0NCwxOCArNDUyLDIw
IEBAIGNsYXNzIEJhc2VUYWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBCYXNlUGFydGl0aW9uVGFi
bGUpOgogICAgICAgICAgICAgICAgICAgICBjWydjbHR5cGUnXSwgY1snaGFzU3FyQnJhY2tldCdd
ID0gXAogICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uX3V0aWxzLnR5cGVfZm9ybWF0dGVy
KGNbJ2NsdHlwZSddKQogCi0gICAgICAgIHNxbF9oZWFkZXIgPSB1Ii0tIFRhYmxlOiB7MH1cblxu
LS0gIi5mb3JtYXQoCi0gICAgICAgICAgICBzZWxmLnF0SWRlbnQoc2VsZi5jb25uLCBkYXRhWydz
Y2hlbWEnXSwgZGF0YVsnbmFtZSddKSkKKyAgICAgICAgaWYganNvbl9yZXNwOgorICAgICAgICAg
ICAgc3FsX2hlYWRlciA9IHUiLS0gVGFibGU6IHswfVxuXG4tLSAiLmZvcm1hdCgKKyAgICAgICAg
ICAgICAgICBzZWxmLnF0SWRlbnQoc2VsZi5jb25uLCBkYXRhWydzY2hlbWEnXSwgZGF0YVsnbmFt
ZSddKSkKIAotICAgICAgICBzcWxfaGVhZGVyICs9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb
c2VsZi50YWJsZV90ZW1wbGF0ZV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2RlbGV0ZS5zcWwnXSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisgICAgICAgICAgICBz
cWxfaGVhZGVyICs9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50YWJsZV90ZW1wbGF0
ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdkZWxldGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29ubikKIAotICAgICAgICBzcWxfaGVhZGVyID0g
c3FsX2hlYWRlci5zdHJpcCgnXG4nKQotICAgICAgICBzcWxfaGVhZGVyICs9ICdcbicKKyAgICAg
ICAgICAgIHNxbF9oZWFkZXIgPSBzcWxfaGVhZGVyLnN0cmlwKCdcbicpCisgICAgICAgICAgICBz
cWxfaGVhZGVyICs9ICdcbicKIAotICAgICAgICAjIEFkZCBpbnRvIG1haW4gc3FsCi0gICAgICAg
IG1haW5fc3FsLmFwcGVuZChzcWxfaGVhZGVyKQorICAgICAgICAgICAgIyBBZGQgaW50byBtYWlu
IHNxbAorICAgICAgICAgICAgbWFpbl9zcWwuYXBwZW5kKHNxbF9oZWFkZXIpCisgICAgICAgIHBh
cnRpdGlvbl9tYWluX3NxbCA9ICIiCiAKICAgICAgICAgIyBQYXJzZSBwcml2aWxlZ2UgZGF0YQog
ICAgICAgICBpZiAncmVsYWNsJyBpbiBkYXRhOgpAQCAtNDkzLDEyICs1MDMsMTQgQEAgY2xhc3Mg
QmFzZVRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAgICAg
ICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgogICAgICAgICAgICAgaW5kZXhfc3FsID0gaW5k
ZXhfdXRpbHMuZ2V0X3JldmVyc2VfZW5naW5lZXJlZF9zcWwoCiAgICAgICAgICAgICAgICAgc2Vs
Zi5jb25uLCBzY2hlbWEsIHRhYmxlLCBkaWQsIHRpZCwgcm93WydvaWQnXSwKLSAgICAgICAgICAg
ICAgICBzZWxmLmRhdGxhc3RzeXNvaWQpCisgICAgICAgICAgICAgICAgc2VsZi5kYXRsYXN0c3lz
b2lkLAorICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9Tm9uZSwgd2l0aF9oZWFkZXI9anNv
bl9yZXNwKQogICAgICAgICAgICAgaW5kZXhfc3FsID0gdSJcbiIgKyBpbmRleF9zcWwKIAogICAg
ICAgICAgICAgIyBBZGQgaW50byBtYWluIHNxbAogICAgICAgICAgICAgaW5kZXhfc3FsID0gcmUu
c3ViKCdcbnsyLH0nLCAnXG5cbicsIGluZGV4X3NxbCkKLSAgICAgICAgICAgIG1haW5fc3FsLmFw
cGVuZChpbmRleF9zcWwpCisKKyAgICAgICAgICAgIG1haW5fc3FsLmFwcGVuZChpbmRleF9zcWwu
c3RyaXAoJ1xuJykpCiAKICAgICAgICAgIiIiCiAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTUxNCw3ICs1MjYsOCBAQCBjbGFzcyBCYXNlVGFibGVW
aWV3KFBHQ2hpbGROb2RlVmlldywgQmFzZVBhcnRpdGlvblRhYmxlKToKICAgICAgICAgZm9yIHJv
dyBpbiByc2V0Wydyb3dzJ106CiAgICAgICAgICAgICB0cmlnZ2VyX3NxbCA9IHRyaWdnZXJfdXRp
bHMuZ2V0X3JldmVyc2VfZW5naW5lZXJlZF9zcWwoCiAgICAgICAgICAgICAgICAgc2VsZi5jb25u
LCBzY2hlbWEsIHRhYmxlLCB0aWQsIHJvd1snb2lkJ10sCi0gICAgICAgICAgICAgICAgc2VsZi5k
YXRsYXN0c3lzb2lkLCBzZWxmLmJsdWVwcmludC5zaG93X3N5c3RlbV9vYmplY3RzKQorICAgICAg
ICAgICAgICAgIHNlbGYuZGF0bGFzdHN5c29pZCwgc2VsZi5ibHVlcHJpbnQuc2hvd19zeXN0ZW1f
b2JqZWN0cywKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPU5vbmUsIHdpdGhfaGVhZGVy
PWpzb25fcmVzcCkKICAgICAgICAgICAgIHRyaWdnZXJfc3FsID0gdSJcbiIgKyB0cmlnZ2VyX3Nx
bAogCiAgICAgICAgICAgICAjIEFkZCBpbnRvIG1haW4gc3FsCkBAIC01NzEsMTAgKzU4NCwxMyBA
QCBjbGFzcyBCYXNlVGFibGVWaWV3KFBHQ2hpbGROb2RlVmlldywgQmFzZVBhcnRpdGlvblRhYmxl
KToKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGlu
dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCiAKKyAgICAgICAgICAgIGRpc3BsYXlf
Y29tbWVudHMgPSBUcnVlCisgICAgICAgICAgICBpZiBub3QganNvbl9yZXNwOgorICAgICAgICAg
ICAgICAgIGRpc3BsYXlfY29tbWVudHMgPSBGYWxzZQogICAgICAgICAgICAgcmVzX2RhdGEgPSBw
YXJzZV9ydWxlX2RlZmluaXRpb24ocmVzKQogICAgICAgICAgICAgcnVsZXNfc3FsICs9IHJlbmRl
cl90ZW1wbGF0ZSgiLyIuam9pbigKICAgICAgICAgICAgICAgICBbc2VsZi5ydWxlc190ZW1wbGF0
ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwKLSAgICAgICAgICAgICAgICBkYXRhPXJlc19kYXRhLCBk
aXNwbGF5X2NvbW1lbnRzPVRydWUpCisgICAgICAgICAgICAgICAgZGF0YT1yZXNfZGF0YSwgZGlz
cGxheV9jb21tZW50cz1kaXNwbGF5X2NvbW1lbnRzKQogCiAgICAgICAgICAgICAjIEFkZCBpbnRv
IG1haW4gc3FsCiAgICAgICAgICAgICBydWxlc19zcWwgPSByZS5zdWIoJ1xuezIsfScsICdcblxu
JywgcnVsZXNfc3FsKQpAQCAtNTk0LDEzICs2MTAsMTcgQEAgY2xhc3MgQmFzZVRhYmxlVmlldyhQ
R0NoaWxkTm9kZVZpZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAgICAgICAgICAgICAgICAgcmV0
dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQogCiAgICAgICAgICAgICBp
ZiBsZW4ocnNldFsncm93cyddKToKLSAgICAgICAgICAgICAgICBzcWxfaGVhZGVyID0gdSJcbi0t
IFBhcnRpdGlvbnMgU1FMIgorICAgICAgICAgICAgICAgIGlmIGpzb25fcmVzcDoKKyAgICAgICAg
ICAgICAgICAgICAgc3FsX2hlYWRlciA9IHUiXG4tLSBQYXJ0aXRpb25zIFNRTCIKICAgICAgICAg
ICAgICAgICBwYXJ0aXRpb25fc3FsID0gJycKICAgICAgICAgICAgICAgICBmb3Igcm93IGluIHJz
ZXRbJ3Jvd3MnXToKICAgICAgICAgICAgICAgICAgICAgcGFydF9kYXRhID0gZGljdCgpCi0gICAg
ICAgICAgICAgICAgICAgIHBhcnRfZGF0YVsncGFydGl0aW9uZWRfdGFibGVfbmFtZSddID0gdGFi
bGUKLSAgICAgICAgICAgICAgICAgICAgcGFydF9kYXRhWydwYXJlbnRfc2NoZW1hJ10gPSBzY2hl
bWEKLSAgICAgICAgICAgICAgICAgICAgcGFydF9kYXRhWydzY2hlbWEnXSA9IHJvd1snc2NoZW1h
X25hbWUnXQorICAgICAgICAgICAgICAgICAgICBwYXJ0X2RhdGFbJ3BhcnRpdGlvbmVkX3RhYmxl
X25hbWUnXSA9IGRhdGFbJ25hbWUnXQorICAgICAgICAgICAgICAgICAgICBwYXJ0X2RhdGFbJ3Bh
cmVudF9zY2hlbWEnXSA9IGRhdGFbJ3NjaGVtYSddCisgICAgICAgICAgICAgICAgICAgIGlmIG5v
dCBqc29uX3Jlc3A6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0X2RhdGFbJ3NjaGVtYSdd
ID0gZGF0YVsnc2NoZW1hJ10KKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHBhcnRfZGF0YVsnc2NoZW1hJ10gPSByb3dbJ3NjaGVtYV9uYW1lJ10KICAg
ICAgICAgICAgICAgICAgICAgcGFydF9kYXRhWydyZWxpc3BhcnRpdGlvbiddID0gVHJ1ZQogICAg
ICAgICAgICAgICAgICAgICBwYXJ0X2RhdGFbJ25hbWUnXSA9IHJvd1snbmFtZSddCiAgICAgICAg
ICAgICAgICAgICAgIHBhcnRfZGF0YVsncGFydGl0aW9uX3ZhbHVlJ10gPSByb3dbJ3BhcnRpdGlv
bl92YWx1ZSddCkBAIC02MTIsMTMgKzYzMiwxOCBAQCBjbGFzcyBCYXNlVGFibGVWaWV3KFBHQ2hp
bGROb2RlVmlldywgQmFzZVBhcnRpdGlvblRhYmxlKToKICAgICAgICAgICAgICAgICAgICAgICAg
IGRhdGE9cGFydF9kYXRhLCBjb25uPXNlbGYuY29ubikKIAogICAgICAgICAgICAgICAgICMgQWRk
IGludG8gbWFpbiBzcWwKLSAgICAgICAgICAgICAgICBwYXJ0aXRpb25fc3FsID0gcmUuc3ViKCdc
bnsyLH0nLCAnXG5cbicsIHBhcnRpdGlvbl9zcWwpCi0gICAgICAgICAgICAgICAgbWFpbl9zcWwu
YXBwZW5kKAotICAgICAgICAgICAgICAgICAgICBzcWxfaGVhZGVyICsgJ1xuXG4nICsgcGFydGl0
aW9uX3NxbC5zdHJpcCgnXG4nKQotICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBw
YXJ0aXRpb25fc3FsID0gcmUuc3ViKCdcbnsyLH0nLCAnXG5cbicsIHBhcnRpdGlvbl9zcWwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuc3RyaXAoJ1xuJykKKyAgICAg
ICAgICAgICAgICBwYXJ0aXRpb25fbWFpbl9zcWwgPSBwYXJ0aXRpb25fc3FsLnN0cmlwKCdcbicp
CisgICAgICAgICAgICAgICAgaWYgbm90IGRpZmZfcGFydGl0aW9uX3NxbDoKKyAgICAgICAgICAg
ICAgICAgICAgbWFpbl9zcWwuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgc3FsX2hl
YWRlciArICdcblxuJyArIHBhcnRpdGlvbl9tYWluX3NxbAorICAgICAgICAgICAgICAgICAgICAp
CiAKICAgICAgICAgc3FsID0gJ1xuJy5qb2luKG1haW5fc3FsKQogCisgICAgICAgIGlmIG5vdCBq
c29uX3Jlc3A6CisgICAgICAgICAgICByZXR1cm4gc3FsLCBwYXJ0aXRpb25fbWFpbl9zcWwKICAg
ICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9c3FsLnN0cmlwKCdcbicpKQogCiAg
ICAgZGVmIHJlc2V0X3N0YXRpc3RpY3Moc2VsZiwgc2NpZCwgdGlkKToKQEAgLTkwNyw3ICs5MzIs
OCBAQCBjbGFzcyBCYXNlVGFibGVWaWV3KFBHQ2hpbGROb2RlVmlldywgQmFzZVBhcnRpdGlvblRh
YmxlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uPXNlbGYuY29ubikuc3RyaXAo
J1xuJykgKyAnXG5cbicKIAogICAgICAgICAgICAgICAgICMgSWYgcGFydGl0aW9uKHMpIGlzL2Fy
ZSBhZGRlZAotICAgICAgICAgICAgICAgIGlmICdhZGRlZCcgaW4gcGFydGl0aW9uczoKKyAgICAg
ICAgICAgICAgICBpZiAnYWRkZWQnIGluIHBhcnRpdGlvbnMgYW5kICdwYXJ0aXRpb25fc2NoZW1l
JyBpbiBvbGRfZGF0YVwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBvbGRfZGF0YVsncGFy
dGl0aW9uX3NjaGVtZSddICE9ICcnOgogICAgICAgICAgICAgICAgICAgICB0ZW1wX2RhdGEgPSBk
aWN0KCkKICAgICAgICAgICAgICAgICAgICAgdGVtcF9kYXRhWydzY2hlbWEnXSA9IGRhdGFbJ3Nj
aGVtYSddCiAgICAgICAgICAgICAgICAgICAgIHRlbXBfZGF0YVsnbmFtZSddID0gZGF0YVsnbmFt
ZSddCkBAIC0xMTMzLDcgKzExNTksOCBAQCBjbGFzcyBCYXNlVGFibGVWaWV3KFBHQ2hpbGROb2Rl
VmlldywgQmFzZVBhcnRpdGlvblRhYmxlKToKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl
OgogICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIo
ZSkpCiAKLSAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQs
IHJlcyk6CisgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlk
LCByZXMsCisgICAgICAgICAgICAgICAgICAgcmV0dXJuX2FqYXhfcmVzcG9uc2U9VHJ1ZSk6CiAg
ICAgICAgICIiIgogICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVydGll
cyBvZiB0aGUgc2VsZWN0ZWQgdGFibGUgbm9kZS4KIApAQCAtMTE0NSw2ICsxMTcyLDcgQEAgY2xh
c3MgQmFzZVRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAg
ICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKICAgICAgICAgICAgIHRpZDogVGFibGUgSUQKICAg
ICAgICAgICAgIHJlczogVGFibGUvUGFydGl0aW9uIHRhYmxlIHByb3BlcnRpZXMKKyAgICAgICAg
ICAgIHJldHVybl9hamF4X3Jlc3BvbnNlOiBJZiBUcnVlIHRoZW4gcmV0dXJuIHRoZSBhamF4IHJl
c3BvbnNlCiAKICAgICAgICAgUmV0dXJuczoKICAgICAgICAgICAgIEpTT04gb2Ygc2VsZWN0ZWQg
dGFibGUgbm9kZQpAQCAtMTI0Miw2ICsxMjcwLDkgQEAgY2xhc3MgQmFzZVRhYmxlVmlldyhQR0No
aWxkTm9kZVZpZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAKICAgICAgICAgICAgIGRhdGFbJ3Bh
cnRpdGlvbnMnXSA9IHBhcnRpdGlvbnMKIAorICAgICAgICBpZiBub3QgcmV0dXJuX2FqYXhfcmVz
cG9uc2U6CisgICAgICAgICAgICByZXR1cm4gZGF0YQorCiAgICAgICAgIHJldHVybiBhamF4X3Jl
c3BvbnNlKAogICAgICAgICAgICAgcmVzcG9uc2U9ZGF0YSwKICAgICAgICAgICAgIHN0YXR1cz0y
MDAKQEAgLTEzNTksMTggKzEzOTAsNyBAQCBjbGFzcyBCYXNlVGFibGVWaWV3KFBHQ2hpbGROb2Rl
VmlldywgQmFzZVBhcnRpdGlvblRhYmxlKToKICAgICAgICAgICAgIH0KICAgICAgICAgKQogCi0g
ICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIHJlcyk6Ci0gICAg
ICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRoZSB0YWJsZSBvYmpl
Y3QKLQotICAgICAgICAgQXJnczoKLSAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKLSAg
ICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKLSAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAotICAg
ICAgICAgICBzY2lkOiBTY2hlbWEgSUQKLSAgICAgICAgICAgdGlkOiBUYWJsZSBJRAotICAgICAg
ICAiIiIKLQorICAgIGRlZiBnZXRfZGVsZXRlX3NxbChzZWxmLCByZXMpOgogICAgICAgICAjIEJl
bG93IHdpbGwgZGVjaWRlIGlmIGl0J3Mgc2ltcGxlIGRyb3Agb3IgZHJvcCB3aXRoIGNhc2NhZGUg
Y2FsbAogICAgICAgICBpZiBzZWxmLmNtZCA9PSAnZGVsZXRlJzoKICAgICAgICAgICAgICMgVGhp
cyBpcyBhIGNhc2NhZGUgb3BlcmF0aW9uCkBAIC0xMzgwLDExICsxNDAwLDI2IEBAIGNsYXNzIEJh
c2VUYWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBCYXNlUGFydGl0aW9uVGFibGUpOgogCiAgICAg
ICAgIGRhdGEgPSByZXNbJ3Jvd3MnXVswXQogCi0gICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0
ZSgKKyAgICAgICAgcmV0dXJuIHJlbmRlcl90ZW1wbGF0ZSgKICAgICAgICAgICAgICIvIi5qb2lu
KFtzZWxmLnRhYmxlX3RlbXBsYXRlX3BhdGgsICdkZWxldGUuc3FsJ10pLAogICAgICAgICAgICAg
ZGF0YT1kYXRhLCBjYXNjYWRlPWNhc2NhZGUsCiAgICAgICAgICAgICBjb25uPXNlbGYuY29ubgog
ICAgICAgICApCisKKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRp
ZCwgcmVzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUg
dGhlIHRhYmxlIG9iamVjdAorCisgICAgICAgICBBcmdzOgorICAgICAgICAgICBnaWQ6IFNlcnZl
ciBHcm91cCBJRAorICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICBkaWQ6IERh
dGFiYXNlIElECisgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICB0aWQ6IFRh
YmxlIElECisgICAgICAgICIiIgorCisgICAgICAgIFNRTCA9IHNlbGYuZ2V0X2RlbGV0ZV9zcWwo
cmVzKQorCiAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNR
TCkKICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgIHJldHVybiBzdGF0dXMsIHJl
cwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv
ZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy
L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy9fX2luaXRfXy5w
eQppbmRleCBiNTBlNmQ3ZDcuLmIxNzNhNDA1OCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv
d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvX19pbml0
X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0
YWJhc2VzL3NjaGVtYXMvdHlwZXMvX19pbml0X18ucHkKQEAgLTI2LDYgKzI2LDggQEAgZnJvbSBw
Z2FkbWluLnV0aWxzIGltcG9ydCBJU19QWTIKIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9y
dCBtYWtlX2pzb25fcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgXAogICAgIG1ha2Vf
cmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgZ29uZQogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZl
ciBpbXBvcnQgZ2V0X2RyaXZlcgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLm5vZGVf
cmVnaXN0cnkgaW1wb3J0IFNjaGVtYURpZmZSZWdpc3RyeQorZnJvbSBwZ2FkbWluLnRvb2xzLnNj
aGVtYV9kaWZmLmNvbXBhcmUgaW1wb3J0IFNjaGVtYURpZmZPYmplY3RDb21wYXJlCiAKICMgSWYg
d2UgYXJlIGluIFB5dGhvbjMKIGlmIG5vdCBJU19QWTI6CkBAIC05NCw3ICs5Niw3IEBAIGNsYXNz
IFR5cGVNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgogYmx1ZXByaW50ID0gVHlwZU1vZHVsZShf
X25hbWVfXykKIAogCi1jbGFzcyBUeXBlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVh
ZGVyKToKK2NsYXNzIFR5cGVWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIsIFNj
aGVtYURpZmZPYmplY3RDb21wYXJlKToKICAgICAiIiIKICAgICBUaGlzIGNsYXNzIGlzIHJlc3Bv
bnNpYmxlIGZvciBnZW5lcmF0aW5nIHJvdXRlcyBmb3IgVHlwZSBub2RlCiAKQEAgLTE3Myw2ICsx
NzUsMTAgQEAgY2xhc3MgVHlwZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6
CiAgICAgKiBnZXRfZXh0ZXJuYWxfZnVuY3Rpb25zX2xpc3QoZ2lkLCBzaWQsIGRpZCwgc2NpZCwg
dGlkKToKICAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIGV4dGVybmFs
IGZ1bmN0aW9ucwogICAgICAgICBpbiBhamF4IHJlc3BvbnNlCisKKyAgICAqIGNvbXBhcmUoKipr
d2FyZ3MpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgY29tcGFyZSB0aGUgdHlwZSBub2Rl
cyBmcm9tIHR3bworICAgICAgICBkaWZmZXJlbnQgc2NoZW1hcy4KICAgICAiIiIKIAogICAgIG5v
ZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKQEAgLTU1OSw2ICs1NjUsMjIgQEAgY2xhc3Mg
VHlwZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAgICAgIFJldHVy
bnM6CiAgICAgICAgICAgICBKU09OIG9mIHNlbGVjdGVkIHR5cGUgbm9kZQogICAgICAgICAiIiIK
KyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKHNjaWQsIHRpZCkK
KyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiByZXMKKworICAgICAg
ICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAg
ICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0aWVz
KHNlbGYsIHNjaWQsIHRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGlz
IHVzZWQgdG8gZmVjdGggdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBvYmplY3QuCisg
ICAgICAgIDpwYXJhbSBzY2lkOgorICAgICAgICA6cGFyYW0gdGlkOgorICAgICAgICA6cmV0dXJu
OgorICAgICAgICAiIiIKIAogICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCiAgICAgICAg
ICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLApAQCAtNTY5LDEwICs1OTEsMTAgQEAg
Y2xhc3MgVHlwZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAgICAg
ICkKICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKICAg
ICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf
ZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBpbnRlcm5hbF9z
ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkg
PT0gMDoKLSAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgcmV0dXJuIEZhbHNl
LCBnb25lKAogICAgICAgICAgICAgICAgIGdldHRleHQoIiIiQ291bGQgbm90IGZpbmQgdGhlIHR5
cGUgaW4gdGhlIGRhdGFiYXNlLiIiIikpCiAKICAgICAgICAgIyBNYWtpbmcgY29weSBvZiBvdXRw
dXQgZm9yIGZ1dHVyZSB1c2UKQEAgLTU4Myw3ICs2MDUsNyBAQCBjbGFzcyBUeXBlVmlldyhQR0No
aWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNjaWQ9c2NpZCwgdGlkPXRpZCkKICAgICAgICAgc3RhdHVzLCBhY2wgPSBzZWxmLmNvbm4u
ZXhlY3V0ZV9kaWN0KFNRTCkKICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJl
dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9YWNsKQorICAgICAgICAgICAgcmV0
dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9YWNsKQogCiAgICAgICAg
ICMgV2Ugd2lsbCBzZXQgZ2V0IHByaXZpbGVnZXMgZnJvbSBhY2wgc3FsIHNvIHdlIGRvbid0IG5l
ZWQKICAgICAgICAgIyBpdCBmcm9tIHByb3BlcnRpZXMgc3FsCkBAIC01OTksMTAgKzYyMSw3IEBA
IGNsYXNzIFR5cGVWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAg
ICAjIENhbGxpbmcgZnVuY3Rpb24gdG8gY2hlY2sgYW5kIGFkZGl0aW9uYWwgcHJvcGVydGllcyBp
ZiBhdmFpbGFibGUKICAgICAgICAgY29weV9kaWN0LnVwZGF0ZShzZWxmLmFkZGl0aW9uYWxfcHJv
cGVydGllcyhjb3B5X2RpY3QsIHRpZCkpCiAKLSAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2Uo
Ci0gICAgICAgICAgICByZXNwb25zZT1jb3B5X2RpY3QsCi0gICAgICAgICAgICBzdGF0dXM9MjAw
Ci0gICAgICAgICkKKyAgICAgICAgcmV0dXJuIFRydWUsIGNvcHlfZGljdAogCiAgICAgQGNoZWNr
X3ByZWNvbmRpdGlvbgogICAgIGRlZiBnZXRfY29sbGF0aW9ucyhzZWxmLCBnaWQsIHNpZCwgZGlk
LCBzY2lkLCB0aWQ9Tm9uZSk6CkBAIC0xNDI4LDUgKzE0NDcsMzEgQEAgY2xhc3MgVHlwZVZpZXco
UEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAgICAgICAgICBzdGF0dXM9MjAw
CiAgICAgICAgICkKIAorICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZmV0Y2hfb2Jq
ZWN0c190b19jb21wYXJlKHNlbGYsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAg
ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgbGlzdCBvZiBhbGwgdGhlIHR5cGVzIGZv
cgorICAgICAgICBzcGVjaWZpZWQgc2NoZW1hIGlkLgorCisgICAgICAgIDpwYXJhbSBzaWQ6IFNl
cnZlciBJZAorICAgICAgICA6cGFyYW0gZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICA6cGFyYW0g
c2NpZDogU2NoZW1hIElkCisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIiIgorICAgICAgICBy
ZXMgPSBkaWN0KCkKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm
LnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J25vZGVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c2NpZCwg
ZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQpCisgICAgICAgIHN0YXR1cywgcnNldCA9
IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgor
ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisK
KyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICBzdGF0dXMsIGRh
dGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKHNjaWQsIHJvd1snb2lkJ10pCisgICAgICAgICAg
ICBpZiBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmVzW3Jvd1snbmFtZSddXSA9IGRhdGEKKwor
ICAgICAgICByZXR1cm4gcmVzCisKIAogVHlwZVZpZXcucmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVw
cmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2
ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2
ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdXRpbHMucHkKaW5kZXggMTNkYTY2
ZTM1Li5lZTg3ZDk2OTQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy
b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWlu
L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3V0aWxzLnB5
CkBAIC0xNSw2ICsxNSw4IEBAIGZyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0ZQogCiBm
cm9tIHBnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uIGltcG9ydCBDb2xsZWN0aW9uTm9kZU1vZHVs
ZQogZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IGludGVybmFsX3NlcnZlcl9lcnJvcgor
ZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgorZnJvbSBjb25maWcg
aW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCiAKIAogY2xhc3MgU2NoZW1hQ2hpbGRNb2R1bGUoQ29s
bGVjdGlvbk5vZGVNb2R1bGUpOgpAQCAtNDg1LDQ0ICs0ODcsNTAgQEAgY2xhc3MgVmFjdXVtU2V0
dGluZ3M6CiAgICAgICAgICogdHlwZSAtIHRhYmxlL3RvYXN0IHZhY3V1bSB0eXBlCiAKICAgICAi
IiIKKyAgICB2YWN1dW1fc2V0dGluZ3MgPSBkaWN0KCkKIAogICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKICAgICAgICAgcGFzcwogCi0gICAgZGVmIGdldF92YWN1dW1fdGFibGVfc2V0dGluZ3Moc2Vs
ZiwgY29ubik6CisgICAgZGVmIGZldGNoX2RlZmF1bHRfdmFjdXVtX3NldHRpbmdzKHNlbGYsIGNv
bm4sIHNpZCwgc2V0dGluZ190eXBlKToKICAgICAgICAgIiIiCi0gICAgICAgIEZldGNoIHRoZSBk
ZWZhdWx0IHZhbHVlcyBmb3IgYXV0b3ZhY3V1bQotICAgICAgICBmaWVsZHMsIHJldHVybiBhbiBh
cnJheSBvZgotICAgICAgICAgIC0gbGFiZWwKLSAgICAgICAgICAtIG5hbWUKLSAgICAgICAgICAt
IHNldHRpbmcKLSAgICAgICAgdmFsdWVzCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0
byBmZXRjaCBhbmQgY2FjaGVkIHRoZSBkZWZhdWx0IHZhY3V1bSBzZXR0aW5ncworICAgICAgICBm
b3Igc3BlY2lmaWVkIHNlcnZlciBpZC4KKyAgICAgICAgOnBhcmFtIGNvbm46IENvbm5lY3Rpb24g
T2JqZWN0CisgICAgICAgIDpwYXJhbSBzaWQ6ICBTZXJ2ZXIgSUQKKyAgICAgICAgOnBhcmFtIHNl
dHRpbmdfdHlwZTogVHlwZSAodGFibGUgb3IgdG9hc3QpCisgICAgICAgIDpyZXR1cm46CiAgICAg
ICAgICIiIgorICAgICAgICBpZiBzaWQgaW4gVmFjdXVtU2V0dGluZ3MudmFjdXVtX3NldHRpbmdz
OgorICAgICAgICAgICAgaWYgc2V0dGluZ190eXBlIGluIFZhY3V1bVNldHRpbmdzLnZhY3V1bV9z
ZXR0aW5nc1tzaWRdOgorICAgICAgICAgICAgICAgIHJldHVybiBWYWN1dW1TZXR0aW5ncy52YWN1
dW1fc2V0dGluZ3Nbc2lkXVtzZXR0aW5nX3R5cGVdCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBWYWN1dW1TZXR0aW5ncy52YWN1dW1fc2V0dGluZ3Nbc2lkXSA9IGRpY3QoKQogCiAgICAgICAg
ICMgcmV0dXJucyBhbiBhcnJheSBvZiBuYW1lICYgbGFiZWwgdmFsdWVzCiAgICAgICAgIHZhY3V1
bV9maWVsZHMgPSByZW5kZXJfdGVtcGxhdGUoInZhY3V1bV9zZXR0aW5ncy92YWN1dW1fZmllbGRz
Lmpzb24iKQotCiAgICAgICAgIHZhY3V1bV9maWVsZHMgPSBqc29uLmxvYWRzKHZhY3V1bV9maWVs
ZHMpCiAKICAgICAgICAgIyByZXR1cm5zIGFuIGFycmF5IG9mIHNldHRpbmcgJiBuYW1lIHZhbHVl
cwogICAgICAgICB2YWN1dW1fZmllbGRzX2tleXMgPSAiJyIgKyAiJywnIi5qb2luKAotICAgICAg
ICAgICAgdmFjdXVtX2ZpZWxkc1sndGFibGUnXS5rZXlzKCkpICsgIiciCisgICAgICAgICAgICB2
YWN1dW1fZmllbGRzW3NldHRpbmdfdHlwZV0ua2V5cygpKSArICInIgogICAgICAgICBTUUwgPSBy
ZW5kZXJfdGVtcGxhdGUoJ3ZhY3V1bV9zZXR0aW5ncy9zcWwvdmFjdXVtX2RlZmF1bHRzLnNxbCcs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXZhY3V1bV9maWVsZHNfa2V5
cykKLSAgICAgICAgc3RhdHVzLCByZXMgPSBjb25uLmV4ZWN1dGVfZGljdChTUUwpCiAKKyAgICAg
ICAgc3RhdHVzLCByZXMgPSBjb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgIGlmIG5vdCBz
dGF0dXM6CiAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn
PXJlcykKIAogICAgICAgICBmb3Igcm93IGluIHJlc1sncm93cyddOgogICAgICAgICAgICAgcm93
X25hbWUgPSByb3dbJ25hbWUnXQotICAgICAgICAgICAgcm93WyduYW1lJ10gPSB2YWN1dW1fZmll
bGRzWyd0YWJsZSddW3Jvd19uYW1lXVswXQotICAgICAgICAgICAgcm93WydsYWJlbCddID0gdmFj
dXVtX2ZpZWxkc1sndGFibGUnXVtyb3dfbmFtZV1bMV0KLSAgICAgICAgICAgIHJvd1snY29sdW1u
X3R5cGUnXSA9IHZhY3V1bV9maWVsZHNbJ3RhYmxlJ11bcm93X25hbWVdWzJdCisgICAgICAgICAg
ICByb3dbJ25hbWUnXSA9IHZhY3V1bV9maWVsZHNbc2V0dGluZ190eXBlXVtyb3dfbmFtZV1bMF0K
KyAgICAgICAgICAgIHJvd1snbGFiZWwnXSA9IHZhY3V1bV9maWVsZHNbc2V0dGluZ190eXBlXVty
b3dfbmFtZV1bMV0KKyAgICAgICAgICAgIHJvd1snY29sdW1uX3R5cGUnXSA9IHZhY3V1bV9maWVs
ZHNbc2V0dGluZ190eXBlXVtyb3dfbmFtZV1bMl0KIAotICAgICAgICByZXR1cm4gcmVzCisgICAg
ICAgIFZhY3V1bVNldHRpbmdzLnZhY3V1bV9zZXR0aW5nc1tzaWRdW3NldHRpbmdfdHlwZV0gPSBy
ZXNbJ3Jvd3MnXQorICAgICAgICByZXR1cm4gVmFjdXVtU2V0dGluZ3MudmFjdXVtX3NldHRpbmdz
W3NpZF1bc2V0dGluZ190eXBlXQogCi0gICAgZGVmIGdldF92YWN1dW1fdG9hc3Rfc2V0dGluZ3Mo
c2VsZiwgY29ubik6CisgICAgZGVmIGdldF92YWN1dW1fdGFibGVfc2V0dGluZ3Moc2VsZiwgY29u
biwgc2lkKToKICAgICAgICAgIiIiCiAgICAgICAgIEZldGNoIHRoZSBkZWZhdWx0IHZhbHVlcyBm
b3IgYXV0b3ZhY3V1bQogICAgICAgICBmaWVsZHMsIHJldHVybiBhbiBhcnJheSBvZgpAQCAtNTMx
LDI5ICs1MzksMTggQEAgY2xhc3MgVmFjdXVtU2V0dGluZ3M6CiAgICAgICAgICAgLSBzZXR0aW5n
CiAgICAgICAgIHZhbHVlcwogICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZmV0Y2hf
ZGVmYXVsdF92YWN1dW1fc2V0dGluZ3MoY29ubiwgc2lkLCAndGFibGUnKQogCi0gICAgICAgICMg
cmV0dXJucyBhbiBhcnJheSBvZiBuYW1lICYgbGFiZWwgdmFsdWVzCi0gICAgICAgIHZhY3V1bV9m
aWVsZHMgPSByZW5kZXJfdGVtcGxhdGUoInZhY3V1bV9zZXR0aW5ncy92YWN1dW1fZmllbGRzLmpz
b24iKQotCi0gICAgICAgIHZhY3V1bV9maWVsZHMgPSBqc29uLmxvYWRzKHZhY3V1bV9maWVsZHMp
Ci0KLSAgICAgICAgIyByZXR1cm5zIGFuIGFycmF5IG9mIHNldHRpbmcgJiBuYW1lIHZhbHVlcwot
ICAgICAgICB2YWN1dW1fZmllbGRzX2tleXMgPSAiJyIgKyAiJywnIi5qb2luKAotICAgICAgICAg
ICAgdmFjdXVtX2ZpZWxkc1sndG9hc3QnXS5rZXlzKCkpICsgIiciCi0gICAgICAgIFNRTCA9IHJl
bmRlcl90ZW1wbGF0ZSgndmFjdXVtX3NldHRpbmdzL3NxbC92YWN1dW1fZGVmYXVsdHMuc3FsJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9dmFjdXVtX2ZpZWxkc19rZXlz
KQotICAgICAgICBzdGF0dXMsIHJlcyA9IGNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKLQotICAgICAg
ICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv
cihlcnJvcm1zZz1yZXMpCi0KLSAgICAgICAgZm9yIHJvdyBpbiByZXNbJ3Jvd3MnXToKLSAgICAg
ICAgICAgIHJvd19uYW1lID0gcm93WyduYW1lJ10KLSAgICAgICAgICAgIHJvd1snbmFtZSddID0g
dmFjdXVtX2ZpZWxkc1sndG9hc3QnXVtyb3dfbmFtZV1bMF0KLSAgICAgICAgICAgIHJvd1snbGFi
ZWwnXSA9IHZhY3V1bV9maWVsZHNbJ3RvYXN0J11bcm93X25hbWVdWzFdCi0gICAgICAgICAgICBy
b3dbJ2NvbHVtbl90eXBlJ10gPSB2YWN1dW1fZmllbGRzWyd0YWJsZSddW3Jvd19uYW1lXVsyXQot
Ci0gICAgICAgIHJldHVybiByZXMKKyAgICBkZWYgZ2V0X3ZhY3V1bV90b2FzdF9zZXR0aW5ncyhz
ZWxmLCBjb25uLCBzaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgRmV0Y2ggdGhlIGRlZmF1bHQg
dmFsdWVzIGZvciBhdXRvdmFjdXVtCisgICAgICAgIGZpZWxkcywgcmV0dXJuIGFuIGFycmF5IG9m
CisgICAgICAgICAgLSBsYWJlbAorICAgICAgICAgIC0gbmFtZQorICAgICAgICAgIC0gc2V0dGlu
ZworICAgICAgICB2YWx1ZXMKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZldGNo
X2RlZmF1bHRfdmFjdXVtX3NldHRpbmdzKGNvbm4sIHNpZCwgJ3RvYXN0JykKIAogICAgIGRlZiBw
YXJzZV92YWN1dW1fZGF0YShzZWxmLCBjb25uLCByZXN1bHQsIHR5cGUpOgogICAgICAgICAiIiIK
QEAgLTU2Nyw0NyArNTY0LDQ2IEBAIGNsYXNzIFZhY3V1bVNldHRpbmdzOgogICAgICAgICAqIHR5
cGUgLSB0YWJsZS90b2FzdCB2YWN1dW0gdHlwZQogICAgICAgICAiIiIKIAotICAgICAgICAjIHJl
dHVybnMgYW4gYXJyYXkgb2YgbmFtZSAmIGxhYmVsIHZhbHVlcwotICAgICAgICB2YWN1dW1fZmll
bGRzID0gcmVuZGVyX3RlbXBsYXRlKCJ2YWN1dW1fc2V0dGluZ3MvdmFjdXVtX2ZpZWxkcy5qc29u
IikKKyAgICAgICAgdmFjdXVtX3NldHRpbmdzX3RtcCA9IHNlbGYuZmV0Y2hfZGVmYXVsdF92YWN1
dW1fc2V0dGluZ3MoCisgICAgICAgICAgICBjb25uLCBzZWxmLm1hbmFnZXIuc2lkLCB0eXBlKQog
Ci0gICAgICAgIHZhY3V1bV9maWVsZHMgPSBqc29uLmxvYWRzKHZhY3V1bV9maWVsZHMpCisgICAg
ICAgIGZvciByb3cgaW4gdmFjdXVtX3NldHRpbmdzX3RtcDoKKyAgICAgICAgICAgIHJvd19uYW1l
ID0gcm93WyduYW1lJ10KKyAgICAgICAgICAgIGlmIHR5cGUgaXMgJ3RvYXN0JzoKKyAgICAgICAg
ICAgICAgICByb3dfbmFtZSA9ICd0b2FzdF97MH0nLmZvcm1hdChyb3dbJ25hbWUnXSkKKyAgICAg
ICAgICAgIGlmIHJvd19uYW1lIGluIHJlc3VsdCBhbmQgcmVzdWx0W3Jvd19uYW1lXSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICBpZiByb3dbJ2NvbHVtbl90eXBlJ10gPT0gJ251bWJlcic6
CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZmxvYXQocmVzdWx0W3Jvd19uYW1lXSkKKyAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGludChyZXN1
bHRbcm93X25hbWVdKQorICAgICAgICAgICAgICAgIHJvd1sndmFsdWUnXSA9IHZhbHVlCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmICd2YWx1ZScgaW4gcm93OgorICAgICAg
ICAgICAgICAgICAgICByb3cucG9wKCd2YWx1ZScpCiAKLSAgICAgICAgIyByZXR1cm5zIGFuIGFy
cmF5IG9mIHNldHRpbmcgJiBuYW1lIHZhbHVlcwotICAgICAgICB2YWN1dW1fZmllbGRzX2tleXMg
PSAiJyIgKyAiJywnIi5qb2luKAotICAgICAgICAgICAgdmFjdXVtX2ZpZWxkc1t0eXBlXS5rZXlz
KCkpICsgIiciCi0gICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgndmFjdXVtX3NldHRpbmdz
L3NxbC92YWN1dW1fZGVmYXVsdHMuc3FsJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbHVtbnM9dmFjdXVtX2ZpZWxkc19rZXlzKQotICAgICAgICBzdGF0dXMsIHJlcyA9IGNvbm4u
ZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgcmV0dXJuIHZhY3V1bV9zZXR0aW5nc190bXAKIAot
ICAgICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl
cl9lcnJvcihlcnJvcm1zZz1yZXMpCiAKLSAgICAgICAgaWYgdHlwZSBpcyAndGFibGUnOgotICAg
ICAgICAgICAgZm9yIHJvdyBpbiByZXNbJ3Jvd3MnXToKLSAgICAgICAgICAgICAgICByb3dfbmFt
ZSA9IHJvd1snbmFtZSddCi0gICAgICAgICAgICAgICAgcm93WyduYW1lJ10gPSB2YWN1dW1fZmll
bGRzW3R5cGVdW3Jvd19uYW1lXVswXQotICAgICAgICAgICAgICAgIHJvd1snbGFiZWwnXSA9IHZh
Y3V1bV9maWVsZHNbdHlwZV1bcm93X25hbWVdWzFdCi0gICAgICAgICAgICAgICAgcm93Wydjb2x1
bW5fdHlwZSddID0gdmFjdXVtX2ZpZWxkc1t0eXBlXVtyb3dfbmFtZV1bMl0KLSAgICAgICAgICAg
ICAgICBpZiByZXN1bHRbcm93WyduYW1lJ11dIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAg
ICAgICBpZiByb3dbJ2NvbHVtbl90eXBlJ10gPT0gJ251bWJlcic6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IGZsb2F0KHJlc3VsdFtyb3dbJ25hbWUnXV0pCi0gICAgICAgICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGludChyZXN1bHRb
cm93WyduYW1lJ11dKQotICAgICAgICAgICAgICAgICAgICByb3dbJ3ZhbHVlJ10gPSByb3dbJ3Nl
dHRpbmcnXSA9IHZhbHVlCi0KLSAgICAgICAgZWxpZiB0eXBlIGlzICd0b2FzdCc6Ci0gICAgICAg
ICAgICBmb3Igcm93IGluIHJlc1sncm93cyddOgotICAgICAgICAgICAgICAgIHJvd19vbGRfbmFt
ZSA9IHJvd1snbmFtZSddCi0gICAgICAgICAgICAgICAgcm93X25hbWUgPSAndG9hc3RfezB9Jy5m
b3JtYXQoCi0gICAgICAgICAgICAgICAgICAgIHZhY3V1bV9maWVsZHNbdHlwZV1bcm93X29sZF9u
YW1lXVswXSkKLSAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSA9IHZhY3V1bV9maWVsZHNbdHlw
ZV1bcm93X29sZF9uYW1lXVswXQotICAgICAgICAgICAgICAgIHJvd1snbGFiZWwnXSA9IHZhY3V1
bV9maWVsZHNbdHlwZV1bcm93X29sZF9uYW1lXVsxXQotICAgICAgICAgICAgICAgIHJvd1snY29s
dW1uX3R5cGUnXSA9IHZhY3V1bV9maWVsZHNbdHlwZV1bcm93X29sZF9uYW1lXVsyXQotICAgICAg
ICAgICAgICAgIGlmIHJlc3VsdFtyb3dfbmFtZV0gYW5kIHJlc3VsdFtyb3dfbmFtZV0gaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHJvd1snY29sdW1uX3R5cGUnXSA9PSAnbnVt
YmVyJzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZmxvYXQocmVzdWx0W3Jvd19u
YW1lXSkKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAg
IHZhbHVlID0gaW50KHJlc3VsdFtyb3dfbmFtZV0pCi0gICAgICAgICAgICAgICAgICAgIHJvd1sn
dmFsdWUnXSA9IHJvd1snc2V0dGluZyddID0gdmFsdWUKK2RlZiBnZXRfc2NoZW1hKHNpZCwgZGlk
LCBzY2lkKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBzY2hl
bWEgbmFtZS4KKyAgICAiIiIKKworICAgIGRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9E
UklWRVIpCisgICAgbWFuYWdlciA9IGRyaXZlci5jb25uZWN0aW9uX21hbmFnZXIoc2lkKQorICAg
IGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWRpZCkKKworICAgIHZlciA9IG1hbmFnZXIu
dmVyc2lvbgorICAgIHNlcnZlcl90eXBlID0gbWFuYWdlci5zZXJ2ZXJfdHlwZQorCisgICAgIyBG
ZXRjaCBzY2hlbWEgbmFtZQorICAgIHN0YXR1cywgc2NoZW1hX25hbWUgPSBjb25uLmV4ZWN1dGVf
c2NhbGFyKAorICAgICAgICByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oWydzY2hlbWFzJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnezB9LyN7MX0jJy5mb3JtYXQoc2VydmVy
X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZlciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NxbC9nZXRfbmFt
ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICBjb25uPWNvbm4sIHNjaWQ9c2NpZAor
ICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICkKIAotICAgICAgICByZXR1cm4gcmVzWydy
b3dzJ10KKyAgICByZXR1cm4gc3RhdHVzLCBzY2hlbWFfbmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3Bn
YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll
d3MvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy
cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9fX2luaXRfXy5weQppbmRleCA0YmMzNTdjODMuLjM4
N2VlOTY2MCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl
cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRt
aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv
X19pbml0X18ucHkKQEAgLTksNiArOSw3IEBACiAKICIiIkltcGxlbWVudHMgVmlldyBhbmQgTWF0
ZXJpYWxpemVkIFZpZXcgTm9kZSIiIgogCitpbXBvcnQgY29weQogZnJvbSBmdW5jdG9vbHMgaW1w
b3J0IHdyYXBzCiAKIGltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KQEAgLTE4LDEzICsxOSwxNiBA
QCBmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKIGltcG9ydCBwZ2FkbWluLmJyb3dz
ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcyBhcyBkYXRhYmFzZXMKIGZyb20gY29u
ZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy
X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnV0aWxzIGltcG9ydCBcCi0gICAgU2No
ZW1hQ2hpbGRNb2R1bGUsIHBhcnNlX3J1bGVfZGVmaW5pdGlvbiwgVmFjdXVtU2V0dGluZ3MKKyAg
ICBTY2hlbWFDaGlsZE1vZHVsZSwgcGFyc2VfcnVsZV9kZWZpbml0aW9uLCBWYWN1dW1TZXR0aW5n
cywgZ2V0X3NjaGVtYQogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz
LnV0aWxzIGltcG9ydCBwYXJzZV9wcml2X2Zyb21fZGIsIFwKICAgICBwYXJzZV9wcml2X3RvX2Ri
CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3CiBmcm9t
IHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9z
ZXJ2ZXJfZXJyb3IsIFwKICAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUK
IGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gcGdhZG1p
bi50b29scy5zY2hlbWFfZGlmZi5ub2RlX3JlZ2lzdHJ5IGltcG9ydCBTY2hlbWFEaWZmUmVnaXN0
cnkKK2Zyb20gcGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5jb21wYXJlIGltcG9ydCBTY2hlbWFE
aWZmT2JqZWN0Q29tcGFyZQorCiAKICIiIgogICAgIFRoaXMgbW9kdWxlIGlzIHJlc3BvbnNpYmxl
IGZvciBnZW5lcmF0aW5nIHR3byBub2RlcwpAQCAtMTk3LDcgKzIwMSw3IEBAIGRlZiBjaGVja19w
cmVjb25kaXRpb24oZik6CiAgICAgcmV0dXJuIHdyYXAKIAogCi1jbGFzcyBWaWV3Tm9kZShQR0No
aWxkTm9kZVZpZXcsIFZhY3V1bVNldHRpbmdzKToKK2NsYXNzIFZpZXdOb2RlKFBHQ2hpbGROb2Rl
VmlldywgVmFjdXVtU2V0dGluZ3MsIFNjaGVtYURpZmZPYmplY3RDb21wYXJlKToKICAgICAiIiIK
ICAgICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHJvdXRlcyBmb3Ig
dmlldyBub2RlLgogCkBAIC0yNTAsNiArMjU0LDEwIEBAIGNsYXNzIFZpZXdOb2RlKFBHQ2hpbGRO
b2RlVmlldywgVmFjdXVtU2V0dGluZ3MpOgogICAgICogZGVwZW5kZW50KGdpZCwgc2lkLCBkaWQs
IHNjaWQpOgogICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgZGVwZW5kZW50IGxp
c3QgdG8gc2hvdyBpdCBpbiBkZXBlbmRlbnQKICAgICAgICAgcGFuZSBmb3IgdGhlIHNlbGVjdGVk
IHZpZXcgbm9kZS4KKworICAgICogY29tcGFyZSgqKmt3YXJncyk6CisgICAgICAtIFRoaXMgZnVu
Y3Rpb24gd2lsbCBjb21wYXJlIHRoZSB2aWV3IG5vZGVzIGZyb20gdHdvCisgICAgICAgIGRpZmZl
cmVudCBzY2hlbWFzLgogICAgICIiIgogICAgIG5vZGVfdHlwZSA9IHZpZXdfYmx1ZXByaW50Lm5v
ZGVfdHlwZQogCkBAIC0yOTAsNiArMjk4LDggQEAgY2xhc3MgVmlld05vZGUoUEdDaGlsZE5vZGVW
aWV3LCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAgICB7J2dldCc6ICdnZXRfdG9hc3RfdGFi
bGVfdmFjdXVtJ31dCiAgICAgfSkKIAorICAgIGtleXNfdG9faWdub3JlID0gWydvaWQnLCAnc2No
ZW1hJywgJ3htaW4nXQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6
CiAgICAgICAgICIiIgogICAgICAgICBJbml0aWFsaXplIHRoZSB2YXJpYWJsZXMgdXNlZCBieSBt
ZXRob2RzIG9mIFZpZXdOb2RlLgpAQCAtNDAwLDIxICs0MTAsMzcgQEAgY2xhc3MgVmlld05vZGUo
UEdDaGlsZE5vZGVWaWV3LCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgIEZldGNoZXMgdGhlIHBy
b3BlcnRpZXMgb2YgYW4gaW5kaXZpZHVhbCB2aWV3CiAgICAgICAgIGFuZCByZW5kZXIgaW4gdGhl
IHByb3BlcnRpZXMgdGFiCiAgICAgICAgICIiIgorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu
X2ZldGNoX3Byb3BlcnRpZXMoc2NpZCwgdmlkKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg
ICAgICAgICAgcmV0dXJuIHJlcworCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAg
ICAgICAgICAgcmVzcG9uc2U9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAp
CisKKyAgICBkZWYgX2ZldGNoX3Byb3BlcnRpZXMoc2VsZiwgc2NpZCwgdmlkKToKKyAgICAgICAg
IiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBmZXRjaCB0aGUgcHJvcGVydGll
cyBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdAorICAgICAgICA6cGFyYW0gc2NpZDoKKyAgICAgICAg
OnBhcmFtIHZpZDoKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCiAgICAgICAgIFNRTCA9
IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3Bh
dGgsICdzcWwvcHJvcGVydGllcy5zcWwnXQogICAgICAgICApLCB2aWQ9dmlkLCBkYXRsYXN0c3lz
b2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u
ZXhlY3V0ZV9kaWN0KFNRTCkKICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJl
dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgcmV0
dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAg
IGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKLSAgICAgICAgICAgIHJldHVybiBnb25lKGdldHRl
eHQoIiIiQ291bGQgbm90IGZpbmQgdGhlIHZpZXcuIiIiKSkKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZSwgZ29uZShnZXR0ZXh0KCIiIkNvdWxkIG5vdCBmaW5kIHRoZSB2aWV3LiIiIikpCiAKICAg
ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAogICAgICAgICAgICAgW3NlbGYu
dGVtcGxhdGVfcGF0aCwgJ3NxbC9hY2wuc3FsJ10pLCB2aWQ9dmlkKQogICAgICAgICBzdGF0dXMs
IGRhdGFjbHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQogICAgICAgICBpZiBub3Qg
c3RhdHVzOgotICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z
Zz1yZXMpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcihl
cnJvcm1zZz1yZXMpCiAKICAgICAgICAgZm9yIHJvdyBpbiBkYXRhY2xyZXNbJ3Jvd3MnXToKICAg
ICAgICAgICAgIHByaXYgPSBwYXJzZV9wcml2X2Zyb21fZGIocm93KQpAQCAtNDI4LDEwICs0NTQs
NyBAQCBjbGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9kZVZpZXcsIFZhY3V1bVNldHRpbmdzKToKICAg
ICAgICAgIyBtZXJnaW5nIGZvcm1hdGVkIHJlc3VsdCB3aXRoIG1haW4gcmVzdWx0IGFnYWluCiAg
ICAgICAgIHJlc3VsdC51cGRhdGUoZnJtdGRfcmVzbHQpCiAKLSAgICAgICAgcmV0dXJuIGFqYXhf
cmVzcG9uc2UoCi0gICAgICAgICAgICByZXNwb25zZT1yZXN1bHQsCi0gICAgICAgICAgICBzdGF0
dXM9MjAwCi0gICAgICAgICkKKyAgICAgICAgcmV0dXJuIFRydWUsIHJlc3VsdAogCiAgICAgQHN0
YXRpY21ldGhvZAogICAgIGRlZiBmb3JtYXR0ZXIocmVzdWx0KToKQEAgLTU1Niw3ICs1NzksNyBA
QCBjbGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9kZVZpZXcsIFZhY3V1bVNldHRpbmdzKToKICAgICAg
ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQogCiAg
ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgotICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRp
ZCwgc2NpZCwgdmlkPU5vbmUpOgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg
c2NpZCwgdmlkPU5vbmUsIG9ubHlfc3FsPUZhbHNlKToKICAgICAgICAgIiIiCiAgICAgICAgIFRo
aXMgZnVuY3Rpb24gd2lsbCBkcm9wIGEgdmlldyBvYmplY3QKICAgICAgICAgIiIiCkBAIC02MDQs
NiArNjI3LDEwIEBAIGNsYXNzIFZpZXdOb2RlKFBHQ2hpbGROb2RlVmlldywgVmFjdXVtU2V0dGlu
Z3MpOgogICAgICAgICAgICAgICAgICAgICBuc3BuYW1lPXJlc19kYXRhWydyb3dzJ11bMF1bJ3Nj
aGVtYSddLAogICAgICAgICAgICAgICAgICAgICBuYW1lPXJlc19kYXRhWydyb3dzJ11bMF1bJ25h
bWUnXSwgY2FzY2FkZT1jYXNjYWRlCiAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICAg
ICAgaWYgb25seV9zcWw6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTUUwKKwogICAgICAg
ICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKICAg
ICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKQEAgLTg0MCw3ICs4NjcsNyBAQCBj
bGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9kZVZpZXcsIFZhY3V1bVNldHRpbmdzKToKIAogICAgICAg
ICByZXR1cm4gY29sdW1ucwogCi0gICAgZGVmIGdldF9ydWxlX3NxbChzZWxmLCB2aWQpOgorICAg
IGRlZiBnZXRfcnVsZV9zcWwoc2VsZiwgdmlkLCBkaXNwbGF5X2NvbW1lbnRzPVRydWUpOgogICAg
ICAgICAiIiIKICAgICAgICAgR2V0IGFsbCBub24gc3lzdGVtIHJ1bGVzIG9mIHZpZXcgbm9kZSwK
ICAgICAgICAgZ2VuZXJhdGUgdGhlaXIgc3FsIGFuZCByZW5kZXIKQEAgLTg2OSwxMiArODk2LDEy
IEBAIGNsYXNzIFZpZXdOb2RlKFBHQ2hpbGROb2RlVmlldywgVmFjdXVtU2V0dGluZ3MpOgogICAg
ICAgICAgICAgICAgIHJlcyA9IHBhcnNlX3J1bGVfZGVmaW5pdGlvbihyZXMpCiAgICAgICAgICAg
ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAogICAgICAgICAgICAgICAgICAg
ICBbc2VsZi5ydWxlX3RlbXBfcGF0aCwgJ3NxbC9jcmVhdGUuc3FsJ10pLAotICAgICAgICAgICAg
ICAgICAgICBkYXRhPXJlcywgZGlzcGxheV9jb21tZW50cz1UcnVlKQorICAgICAgICAgICAgICAg
ICAgICBkYXRhPXJlcywgZGlzcGxheV9jb21tZW50cz1kaXNwbGF5X2NvbW1lbnRzKQogICAgICAg
ICAgICAgICAgIFNRTF9kYXRhICs9ICdcbicKICAgICAgICAgICAgICAgICBTUUxfZGF0YSArPSBT
UUwKICAgICAgICAgcmV0dXJuIFNRTF9kYXRhCiAKLSAgICBkZWYgZ2V0X2NvbXBvdW5kX3RyaWdn
ZXJfc3FsKHNlbGYsIHZpZCk6CisgICAgZGVmIGdldF9jb21wb3VuZF90cmlnZ2VyX3NxbChzZWxm
LCB2aWQsIGRpc3BsYXlfY29tbWVudHM9VHJ1ZSk6CiAgICAgICAgICIiIgogICAgICAgICBHZXQg
YWxsIGNvbXBvdW5kIHRyaWdnZXIgbm9kZXMgYXNzb2NpYXRlZCB3aXRoIHZpZXcgbm9kZSwKICAg
ICAgICAgZ2VuZXJhdGUgdGhlaXIgc3FsIGFuZCByZW5kZXIgaW50byBzcWwgdGFiCkBAIC05NDUs
MTMgKzk3MiwxMyBAQCBjbGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9kZVZpZXcsIFZhY3V1bVNldHRp
bmdzKToKICAgICAgICAgICAgICAgICAgICAgW3NlbGYuY3RfdHJpZ2dlcl90ZW1wX3BhdGgsCiAg
ICAgICAgICAgICAgICAgICAgICAnc3FsL3swfS8jezF9Iy9jcmVhdGUuc3FsJy5mb3JtYXQoCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlLCBzZWxmLm1h
bmFnZXIudmVyc2lvbildKSwKLSAgICAgICAgICAgICAgICAgICAgZGF0YT1yZXNfcm93cywgZGlz
cGxheV9jb21tZW50cz1UcnVlKQorICAgICAgICAgICAgICAgICAgICBkYXRhPXJlc19yb3dzLCBk
aXNwbGF5X2NvbW1lbnRzPWRpc3BsYXlfY29tbWVudHMpCiAgICAgICAgICAgICAgICAgU1FMX2Rh
dGEgKz0gJ1xuJwogICAgICAgICAgICAgICAgIFNRTF9kYXRhICs9IFNRTAogCiAgICAgICAgIHJl
dHVybiBTUUxfZGF0YQogCi0gICAgZGVmIGdldF90cmlnZ2VyX3NxbChzZWxmLCB2aWQpOgorICAg
IGRlZiBnZXRfdHJpZ2dlcl9zcWwoc2VsZiwgdmlkLCBkaXNwbGF5X2NvbW1lbnRzPVRydWUpOgog
ICAgICAgICAiIiIKICAgICAgICAgR2V0IGFsbCB0cmlnZ2VyIG5vZGVzIGFzc29jaWF0ZWQgd2l0
aCB2aWV3IG5vZGUsCiAgICAgICAgIGdlbmVyYXRlIHRoZWlyIHNxbCBhbmQgcmVuZGVyCkBAIC0x
MDM4LDEzICsxMDY1LDEzIEBAIGNsYXNzIFZpZXdOb2RlKFBHQ2hpbGROb2RlVmlldywgVmFjdXVt
U2V0dGluZ3MpOgogICAgICAgICAgICAgICAgIFtzZWxmLnRyaWdnZXJfdGVtcF9wYXRoLAogICAg
ICAgICAgICAgICAgICAnc3FsL3swfS8jezF9Iy9jcmVhdGUuc3FsJy5mb3JtYXQoCiAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUsIHNlbGYubWFuYWdlci52ZXJz
aW9uKV0pLAotICAgICAgICAgICAgICAgIGRhdGE9cmVzX3Jvd3MsIGRpc3BsYXlfY29tbWVudHM9
VHJ1ZSkKKyAgICAgICAgICAgICAgICBkYXRhPXJlc19yb3dzLCBkaXNwbGF5X2NvbW1lbnRzPWRp
c3BsYXlfY29tbWVudHMpCiAgICAgICAgICAgICBTUUxfZGF0YSArPSAnXG4nCiAgICAgICAgICAg
ICBTUUxfZGF0YSArPSBTUUwKIAogICAgICAgICByZXR1cm4gU1FMX2RhdGEKIAotICAgIGRlZiBn
ZXRfaW5kZXhfc3FsKHNlbGYsIGRpZCwgdmlkKToKKyAgICBkZWYgZ2V0X2luZGV4X3NxbChzZWxm
LCBkaWQsIHZpZCwgZGlzcGxheV9jb21tZW50cz1UcnVlKToKICAgICAgICAgIiIiCiAgICAgICAg
IEdldCBhbGwgaW5kZXggYXNzb2NpYXRlZCB3aXRoIHZpZXcgbm9kZSwKICAgICAgICAgZ2VuZXJh
dGUgdGhlaXIgc3FsIGFuZCByZW5kZXIKQEAgLTEwODQsMTcgKzExMTEsMjMgQEAgY2xhc3MgVmll
d05vZGUoUEdDaGlsZE5vZGVWaWV3LCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAgICBTUUwg
PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCiAgICAgICAgICAgICAgICAgW3NlbGYuaW5kZXhf
dGVtcF9wYXRoLAogICAgICAgICAgICAgICAgICAnc3FsLyN7MH0jL2NyZWF0ZS5zcWwnLmZvcm1h
dChzZWxmLm1hbmFnZXIudmVyc2lvbildKSwKLSAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIGRp
c3BsYXlfY29tbWVudHM9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIGRpc3BsYXlf
Y29tbWVudHM9ZGlzcGxheV9jb21tZW50cykKICAgICAgICAgICAgIFNRTF9kYXRhICs9ICdcbicK
ICAgICAgICAgICAgIFNRTF9kYXRhICs9IFNRTAogICAgICAgICByZXR1cm4gU1FMX2RhdGEKIAog
ICAgIEBjaGVja19wcmVjb25kaXRpb24KLSAgICBkZWYgc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQs
IHNjaWQsIHZpZCk6CisgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQs
IGRpZmZfc2NoZW1hPU5vbmUsCisgICAgICAgICAgICBqc29uX3Jlc3A9VHJ1ZSk6CiAgICAgICAg
ICIiIgogICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIHRvIHJlbmRlciBp
bnRvIHRoZSBzcWwgcGFuZWwKICAgICAgICAgIiIiCiAKKyAgICAgICAgZGlzcGxheV9jb21tZW50
cyA9IFRydWUKKworICAgICAgICBpZiBub3QganNvbl9yZXNwOgorICAgICAgICAgICAgZGlzcGxh
eV9jb21tZW50cyA9IEZhbHNlCisKICAgICAgICAgU1FMX2RhdGEgPSAnJwogICAgICAgICBTUUwg
PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCiAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9w
YXRoLCAnc3FsL3Byb3BlcnRpZXMuc3FsJ10pLApAQCAtMTExMSw2ICsxMTQ0LDkgQEAgY2xhc3Mg
Vmlld05vZGUoUEdDaGlsZE5vZGVWaWV3LCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAgICAp
CiAKICAgICAgICAgcmVzdWx0ID0gcmVzWydyb3dzJ11bMF0KKyAgICAgICAgaWYgZGlmZl9zY2hl
bWE6CisgICAgICAgICAgICByZXN1bHRbJ3NjaGVtYSddID0gZGlmZl9zY2hlbWEKKwogICAgICAg
ICAjIHNlbmRpbmcgcmVzdWx0IHRvIGZvcm10dGVyCiAgICAgICAgIGZybXRkX3Jlc2x0ID0gc2Vs
Zi5mb3JtYXR0ZXIocmVzdWx0KQogCkBAIC0xMTUyLDE4ICsxMTg4LDIwIEBAIGNsYXNzIFZpZXdO
b2RlKFBHQ2hpbGROb2RlVmlldywgVmFjdXVtU2V0dGluZ3MpOgogICAgICAgICAgICAgW3NlbGYu
dGVtcGxhdGVfcGF0aCwgJ3NxbC9jcmVhdGUuc3FsJ10pLAogICAgICAgICAgICAgZGF0YT1yZXN1
bHQsCiAgICAgICAgICAgICBjb25uPXNlbGYuY29ubiwKLSAgICAgICAgICAgIGRpc3BsYXlfY29t
bWVudHM9VHJ1ZQorICAgICAgICAgICAgZGlzcGxheV9jb21tZW50cz1kaXNwbGF5X2NvbW1lbnRz
CiAgICAgICAgICkKICAgICAgICAgU1FMICs9ICJcbiIKICAgICAgICAgU1FMICs9IHJlbmRlcl90
ZW1wbGF0ZSgiLyIuam9pbigKICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwv
Z3JhbnQuc3FsJ10pLCBkYXRhPXJlc3VsdCkKIAogICAgICAgICBTUUxfZGF0YSArPSBTUUwKLSAg
ICAgICAgU1FMX2RhdGEgKz0gc2VsZi5nZXRfcnVsZV9zcWwodmlkKQotICAgICAgICBTUUxfZGF0
YSArPSBzZWxmLmdldF90cmlnZ2VyX3NxbCh2aWQpCi0gICAgICAgIFNRTF9kYXRhICs9IHNlbGYu
Z2V0X2NvbXBvdW5kX3RyaWdnZXJfc3FsKHZpZCkKLSAgICAgICAgU1FMX2RhdGEgKz0gc2VsZi5n
ZXRfaW5kZXhfc3FsKGRpZCwgdmlkKQorICAgICAgICBTUUxfZGF0YSArPSBzZWxmLmdldF9ydWxl
X3NxbCh2aWQsIGRpc3BsYXlfY29tbWVudHMpCisgICAgICAgIFNRTF9kYXRhICs9IHNlbGYuZ2V0
X3RyaWdnZXJfc3FsKHZpZCwgZGlzcGxheV9jb21tZW50cykKKyAgICAgICAgU1FMX2RhdGEgKz0g
c2VsZi5nZXRfY29tcG91bmRfdHJpZ2dlcl9zcWwodmlkLCBkaXNwbGF5X2NvbW1lbnRzKQorICAg
ICAgICBTUUxfZGF0YSArPSBzZWxmLmdldF9pbmRleF9zcWwoZGlkLCB2aWQsIGRpc3BsYXlfY29t
bWVudHMpCiAKKyAgICAgICAgaWYgbm90IGpzb25fcmVzcDoKKyAgICAgICAgICAgIHJldHVybiBT
UUxfZGF0YQogICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNwb25zZT1TUUxfZGF0YSkK
IAogICAgIEBjaGVja19wcmVjb25kaXRpb24KQEAgLTEzNTcsNiArMTM5NSw2MCBAQCBjbGFzcyBW
aWV3Tm9kZShQR0NoaWxkTm9kZVZpZXcsIFZhY3V1bVNldHRpbmdzKToKIAogICAgICAgICByZXR1
cm4gYWpheF9yZXNwb25zZShyZXNwb25zZT1zcWwpCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u
CisgICAgZGVmIGZldGNoX29iamVjdHNfdG9fY29tcGFyZShzZWxmLCBzaWQsIGRpZCwgc2NpZCwg
b2lkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNo
IHRoZSBsaXN0IG9mIGFsbCB0aGUgdmlld3MgZm9yCisgICAgICAgIHNwZWNpZmllZCBzY2hlbWEg
aWQuCisKKyAgICAgICAgOnBhcmFtIHNpZDogU2VydmVyIElkCisgICAgICAgIDpwYXJhbSBkaWQ6
IERhdGFiYXNlIElkCisgICAgICAgIDpwYXJhbSBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgOnJl
dHVybjoKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IGRpY3QoKQorCisgICAgICAgIGlmIG5v
dCBvaWQ6CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu
dGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3NxbC9ub2Rlcy5zcWwnXSksIGRpZD1kaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2NpZD1zY2lkLCBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKKyAg
ICAgICAgICAgIHN0YXR1cywgdmlld3MgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkK
KyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgY3VycmVudF9hcHAu
bG9nZ2VyLmVycm9yKHZpZXdzKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ICAgICAgICBmb3Igcm93IGluIHZpZXdzWydyb3dzJ106CisgICAgICAgICAgICAgICAgc3RhdHVz
LCBkYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhzY2lkLCByb3dbJ29pZCddKQorICAgICAg
ICAgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmVzW3Jvd1snbmFtZSdd
XSA9IGRhdGEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYu
X2ZldGNoX3Byb3BlcnRpZXMoc2NpZCwgb2lkKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK
KyAgICAgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXJyb3IoZGF0YSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHJlcyA9IGRhdGEKKworICAgICAgICBy
ZXR1cm4gcmVzCisKKyAgICBkZWYgZ2V0X3NxbF9mcm9tX2RpZmYoc2VsZiwgZ2lkLCBzaWQsIGRp
ZCwgc2NpZCwgb2lkLCBkYXRhPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZf
c2NoZW1hPU5vbmUsIGRyb3Bfc3FsPUZhbHNlKToKKyAgICAgICAgc3FsID0gJycKKyAgICAgICAg
aWYgZGF0YToKKyAgICAgICAgICAgIGlmIGRpZmZfc2NoZW1hOgorICAgICAgICAgICAgICAgIGRh
dGFbJ3NjaGVtYSddID0gZGlmZl9zY2hlbWEKKyAgICAgICAgICAgIHNxbCwgbmFtZU9yRXJyb3Ig
PSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGlkLCBkYXRhLCBvaWQpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBpZiBkcm9wX3NxbDoKKyAgICAgICAgICAgICAgICBzcWwgPSBzZWxmLmRlbGV0
ZShnaWQ9Z2lkLCBzaWQ9c2lkLCBkaWQ9ZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNjaWQ9c2NpZCwgdmlkPW9pZCwgb25seV9zcWw9VHJ1ZSkKKyAgICAgICAgICAgIGVs
aWYgZGlmZl9zY2hlbWE6CisgICAgICAgICAgICAgICAgc3FsID0gc2VsZi5zcWwoZ2lkPWdpZCwg
c2lkPXNpZCwgZGlkPWRpZCwgc2NpZD1zY2lkLCB2aWQ9b2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZmZfc2NoZW1hPWRpZmZfc2NoZW1hLCBqc29uX3Jlc3A9RmFsc2UpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNxbCA9IHNlbGYuc3FsKGdpZD1naWQs
IHNpZD1zaWQsIGRpZD1kaWQsIHNjaWQ9c2NpZCwgdmlkPW9pZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBqc29uX3Jlc3A9RmFsc2UpCisgICAgICAgIHJldHVybiBzcWwKKwogCiAj
IE92ZXJyaWRlIHRoZSBvcGVyYXRpb25zIGZvciBtYXRlcmlhbGl6ZWQgdmlldwogbXZpZXdfb3Bl
cmF0aW9ucyA9IHsKQEAgLTE2MzEsMTEgKzE3MjMsMTcgQEAgY2xhc3MgTVZpZXdOb2RlKFZpZXdO
b2RlLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgIHJldHVybiBTUUwsIGRhdGFbJ25hbWUnXSBp
ZiAnbmFtZScgaW4gZGF0YSBlbHNlIG9sZF9kYXRhWyduYW1lJ10KIAogICAgIEBjaGVja19wcmVj
b25kaXRpb24KLSAgICBkZWYgc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZpZCk6Cisg
ICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQsIGRpZmZfc2NoZW1hPU5v
bmUsCisgICAgICAgICAgICBqc29uX3Jlc3A9VHJ1ZSk6CiAgICAgICAgICIiIgogICAgICAgICBU
aGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIHRvIHJlbmRlciBpbnRvIHRoZSBzcWwgcGFu
ZWwKICAgICAgICAgIiIiCiAKKyAgICAgICAgZGlzcGxheV9jb21tZW50cyA9IFRydWUKKworICAg
ICAgICBpZiBub3QganNvbl9yZXNwOgorICAgICAgICAgICAgZGlzcGxheV9jb21tZW50cyA9IEZh
bHNlCisKICAgICAgICAgU1FMX2RhdGEgPSAnJwogICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh
dGUoIi8iLmpvaW4oCiAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL3Byb3Bl
cnRpZXMuc3FsJ10pLApAQCAtMTY1NCw2ICsxNzUyLDkgQEAgY2xhc3MgTVZpZXdOb2RlKFZpZXdO
b2RlLCBWYWN1dW1TZXR0aW5ncyk6CiAKICAgICAgICAgcmVzdWx0ID0gcmVzWydyb3dzJ11bMF0K
IAorICAgICAgICBpZiBkaWZmX3NjaGVtYToKKyAgICAgICAgICAgIHJlc3VsdFsnc2NoZW1hJ10g
PSBkaWZmX3NjaGVtYQorCiAgICAgICAgICMgc2VuZGluZyByZXN1bHQgdG8gZm9ybXR0ZXIKICAg
ICAgICAgZnJtdGRfcmVzbHQgPSBzZWxmLmZvcm1hdHRlcihyZXN1bHQpCiAKQEAgLTE3MzIsMTcg
KzE4MzMsMjAgQEAgY2xhc3MgTVZpZXdOb2RlKFZpZXdOb2RlLCBWYWN1dW1TZXR0aW5ncyk6CiAg
ICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2NyZWF0ZS5zcWwnXSksCiAgICAg
ICAgICAgICBkYXRhPXJlc3VsdCwKICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uLAotICAgICAg
ICAgICAgZGlzcGxheV9jb21tZW50cz1UcnVlCisgICAgICAgICAgICBkaXNwbGF5X2NvbW1lbnRz
PWRpc3BsYXlfY29tbWVudHMKICAgICAgICAgKQogICAgICAgICBTUUwgKz0gIlxuIgogICAgICAg
ICBTUUwgKz0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAogICAgICAgICAgICAgW3NlbGYudGVt
cGxhdGVfcGF0aCwgJ3NxbC9ncmFudC5zcWwnXSksIGRhdGE9cmVzdWx0KQogCiAgICAgICAgIFNR
TF9kYXRhICs9IFNRTAotICAgICAgICBTUUxfZGF0YSArPSBzZWxmLmdldF9ydWxlX3NxbCh2aWQp
Ci0gICAgICAgIFNRTF9kYXRhICs9IHNlbGYuZ2V0X3RyaWdnZXJfc3FsKHZpZCkKLSAgICAgICAg
U1FMX2RhdGEgKz0gc2VsZi5nZXRfaW5kZXhfc3FsKGRpZCwgdmlkKQorICAgICAgICBTUUxfZGF0
YSArPSBzZWxmLmdldF9ydWxlX3NxbCh2aWQsIGRpc3BsYXlfY29tbWVudHMpCisgICAgICAgIFNR
TF9kYXRhICs9IHNlbGYuZ2V0X3RyaWdnZXJfc3FsKHZpZCwgZGlzcGxheV9jb21tZW50cykKKyAg
ICAgICAgU1FMX2RhdGEgKz0gc2VsZi5nZXRfaW5kZXhfc3FsKGRpZCwgdmlkLCBkaXNwbGF5X2Nv
bW1lbnRzKQogICAgICAgICBTUUxfZGF0YSA9IFNRTF9kYXRhLnN0cmlwKCdcbicpCisKKyAgICAg
ICAgaWYgbm90IGpzb25fcmVzcDoKKyAgICAgICAgICAgIHJldHVybiBTUUxfZGF0YQogICAgICAg
ICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNwb25zZT1TUUxfZGF0YSkKIAogICAgIEBjaGVja19w
cmVjb25kaXRpb24KQEAgLTE3NTYsOSArMTg2MCw5IEBAIGNsYXNzIE1WaWV3Tm9kZShWaWV3Tm9k
ZSwgVmFjdXVtU2V0dGluZ3MpOgogICAgICAgICB2YWx1ZXMKICAgICAgICAgIiIiCiAKLSAgICAg
ICAgcmVzID0gc2VsZi5nZXRfdmFjdXVtX3RhYmxlX3NldHRpbmdzKHNlbGYuY29ubikKKyAgICAg
ICAgcmVzID0gc2VsZi5nZXRfdmFjdXVtX3RhYmxlX3NldHRpbmdzKHNlbGYuY29ubiwgc2lkKQog
ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKLSAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sn
cm93cyddLAorICAgICAgICAgICAgcmVzcG9uc2U9cmVzLAogICAgICAgICAgICAgc3RhdHVzPTIw
MAogICAgICAgICApCiAKQEAgLTE3NzIsMTAgKzE4NzYsMTAgQEAgY2xhc3MgTVZpZXdOb2RlKFZp
ZXdOb2RlLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgICAgLSBzZXR0aW5nCiAgICAgICAgIHZh
bHVlcwogICAgICAgICAiIiIKLSAgICAgICAgcmVzID0gc2VsZi5nZXRfdmFjdXVtX3RvYXN0X3Nl
dHRpbmdzKHNlbGYuY29ubikKKyAgICAgICAgcmVzID0gc2VsZi5nZXRfdmFjdXVtX3RvYXN0X3Nl
dHRpbmdzKHNlbGYuY29ubiwgc2lkKQogCiAgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAot
ICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICByZXNwb25zZT1y
ZXMsCiAgICAgICAgICAgICBzdGF0dXM9MjAwCiAgICAgICAgICkKIApAQCAtMTc4NSwyMSArMTg4
OSwzOSBAQCBjbGFzcyBNVmlld05vZGUoVmlld05vZGUsIFZhY3V1bVNldHRpbmdzKToKICAgICAg
ICAgRmV0Y2hlcyB0aGUgcHJvcGVydGllcyBvZiBhbiBpbmRpdmlkdWFsIHZpZXcKICAgICAgICAg
YW5kIHJlbmRlciBpbiB0aGUgcHJvcGVydGllcyB0YWIKICAgICAgICAgIiIiCisgICAgICAgIHN0
YXR1cywgcmVzID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhkaWQsIHNjaWQsIHZpZCkKKyAgICAg
ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiByZXMKKworICAgICAgICByZXR1
cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAgICAgICAg
IHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0aWVzKHNlbGYs
IGRpZCwgc2NpZCwgdmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMg
dXNlZCB0byBmZXRjaCB0aGUgcHJvcGVydGllcyBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdAorICAg
ICAgICA6cGFyYW0gZGlkOgorICAgICAgICA6cGFyYW0gc2NpZDoKKyAgICAgICAgOnBhcmFtIHZp
ZDoKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCiAgICAgICAgIFNRTCA9IHJlbmRlcl90
ZW1wbGF0ZSgiLyIuam9pbigKICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwv
cHJvcGVydGllcy5zcWwnXQogICAgICAgICApLCBkaWQ9ZGlkLCB2aWQ9dmlkLCBkYXRsYXN0c3lz
b2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u
ZXhlY3V0ZV9kaWN0KFNRTCkKICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgIHJl
dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgcmV0
dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAg
IGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKLSAgICAgICAgICAgIHJldHVybiBnb25lKGdldHRl
eHQoIiIiQ291bGQgbm90IGZpbmQgdGhlIG1hdGVyaWFsaXplZCB2aWV3LiIiIikpCisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UsIGdvbmUoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgiIiJDb3Vs
ZCBub3QgZmluZCB0aGUgbWF0ZXJpYWxpemVkIHZpZXcuIiIiKSkKIAogICAgICAgICBTUUwgPSBy
ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCiAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRo
LCAnc3FsL2FjbC5zcWwnXSksIHZpZD12aWQpCiAgICAgICAgIHN0YXR1cywgZGF0YWNscmVzID0g
c2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAg
ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK
IAogICAgICAgICBmb3Igcm93IGluIGRhdGFjbHJlc1sncm93cyddOgogICAgICAgICAgICAgcHJp
diA9IHBhcnNlX3ByaXZfZnJvbV9kYihyb3cpCkBAIC0xODE4LDEwICsxOTQwLDcgQEAgY2xhc3Mg
TVZpZXdOb2RlKFZpZXdOb2RlLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAgIHJlc3VsdFsndmFj
dXVtX3RvYXN0J10gPSBzZWxmLnBhcnNlX3ZhY3V1bV9kYXRhKAogICAgICAgICAgICAgc2VsZi5j
b25uLCByZXN1bHQsICd0b2FzdCcpCiAKLSAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCi0g
ICAgICAgICAgICByZXNwb25zZT1yZXN1bHQsCi0gICAgICAgICAgICBzdGF0dXM9MjAwCi0gICAg
ICAgICkKKyAgICAgICAgcmV0dXJuIFRydWUsIHJlc3VsdAogCiAgICAgQGNoZWNrX3ByZWNvbmRp
dGlvbgogICAgIGRlZiByZWZyZXNoX2RhdGEoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlk
KToKQEAgLTE4NzMsNiArMTk5MiwzNCBAQCBjbGFzcyBNVmlld05vZGUoVmlld05vZGUsIFZhY3V1
bVNldHRpbmdzKToKICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oZSkK
ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp
KQogCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBmZXRjaF9vYmplY3RzX3RvX2Nv
bXBhcmUoc2VsZiwgc2lkLCBkaWQsIHNjaWQsIG9pZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAg
ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgbGlzdCBvZiBhbGwgdGhlIG12aWV3cyBm
b3IKKyAgICAgICAgc3BlY2lmaWVkIHNjaGVtYSBpZC4KKworICAgICAgICA6cGFyYW0gc2lkOiBT
ZXJ2ZXIgSWQKKyAgICAgICAgOnBhcmFtIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgOnBhcmFt
IHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAgICAg
cmVzID0gZGljdCgpCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs
Zi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdzcWwvbm9kZXMuc3FsJ10pLCBkaWQ9ZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2NpZD1zY2lkLCBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKKyAgICAgICAg
c3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgIGlm
IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy
cm9ybXNnPXJlcykKKworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAg
ICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoZGlkLCBzY2lkLCByb3db
J29pZCddKQorICAgICAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJlc1tyb3db
J25hbWUnXV0gPSBkYXRhCisKKyAgICAgICAgcmV0dXJuIHJlcworCiAKK1NjaGVtYURpZmZSZWdp
c3RyeSgndmlldycsIFZpZXdOb2RlKQogVmlld05vZGUucmVnaXN0ZXJfbm9kZV92aWV3KHZpZXdf
Ymx1ZXByaW50KQorU2NoZW1hRGlmZlJlZ2lzdHJ5KCdtdmlldycsIE1WaWV3Tm9kZSkKIE1WaWV3
Tm9kZS5yZWdpc3Rlcl9ub2RlX3ZpZXcobXZpZXdfYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2Vi
L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv
dmlld3MvdGVtcGxhdGVzL3ZpZXdzL3BnLzkuMl9wbHVzL3NxbC91cGRhdGUuc3FsIGIvd2ViL3Bn
YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll
d3MvdGVtcGxhdGVzL3ZpZXdzL3BnLzkuMl9wbHVzL3NxbC91cGRhdGUuc3FsCmluZGV4IDM4NjA2
Y2MwYi4uZDQ5ZjdmYjlmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n
cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3MvcGcv
OS4yX3BsdXMvc3FsL3VwZGF0ZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf
Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3Bn
LzkuMl9wbHVzL3NxbC91cGRhdGUuc3FsCkBAIC0xOSw3ICsxOSw3IEBAIEFMVEVSIFRBQkxFIHt7
IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQogeyUgZW5kaWYgJX0KIHsl
IGlmIGRlZiBhbmQgZGVmICE9IG9fZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpICV9CiBDUkVB
VEUgT1IgUkVQTEFDRSBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1l
KSB9fQotICAgIFdJVEggKHNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVy
fGxvd2VyIGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciBlbHNlIG9fZGF0YS5zZWN1cml0eV9iYXJy
aWVyfGRlZmF1bHQoJ2ZhbHNlJywgJ3RydWUnKXxsb3dlciB9fSkKKyAgICBXSVRIIChzZWN1cml0
eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciBpZiBkYXRhLnNlY3VyaXR5
X2JhcnJpZXIgaXMgZGVmaW5lZCBlbHNlIG9fZGF0YS5zZWN1cml0eV9iYXJyaWVyfGRlZmF1bHQo
J2ZhbHNlJywgJ3RydWUnKXxsb3dlciB9fSkKICAgICBBUwogICAgIHt7IGRlZiB9fTsKIHslIGVs
c2UgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2
ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9wZy85LjNfcGx1cy9z
cWwvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz
L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9wZy85LjNfcGx1cy9zcWwv
dXBkYXRlLnNxbAppbmRleCAzODYwNmNjMGIuLmQ0OWY3ZmI5ZiAxMDA2NDQKLS0tIGEvd2ViL3Bn
YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll
d3MvdGVtcGxhdGVzL3ZpZXdzL3BnLzkuM19wbHVzL3NxbC91cGRhdGUuc3FsCisrKyBiL3dlYi9w
Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp
ZXdzL3RlbXBsYXRlcy92aWV3cy9wZy85LjNfcGx1cy9zcWwvdXBkYXRlLnNxbApAQCAtMTksNyAr
MTksNyBAQCBBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFt
ZSkgfX0KIHslIGVuZGlmICV9CiB7JSBpZiBkZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlv
bi5yc3RyaXAoJzsnKSAlfQogQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQo
dmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KLSAgICBXSVRIIChzZWN1cml0eV9iYXJyaWVyPXt7
IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciBpZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgZWxz
ZSBvX2RhdGEuc2VjdXJpdHlfYmFycmllcnxkZWZhdWx0KCdmYWxzZScsICd0cnVlJyl8bG93ZXIg
fX0pCisgICAgV0lUSCAoc2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8
bG93ZXIgaWYgZGF0YS5zZWN1cml0eV9iYXJyaWVyIGlzIGRlZmluZWQgZWxzZSBvX2RhdGEuc2Vj
dXJpdHlfYmFycmllcnxkZWZhdWx0KCdmYWxzZScsICd0cnVlJyl8bG93ZXIgfX0pCiAgICAgQVMK
ICAgICB7eyBkZWYgfX07CiB7JSBlbHNlICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93
c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0
ZXMvdmlld3MvcGcvOS40X3BsdXMvc3FsL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy
L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv
dmlld3MvcGcvOS40X3BsdXMvc3FsL3VwZGF0ZS5zcWwKaW5kZXggNDIzNWY1YzkwLi44MDVjNjU4
ZDEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz
L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9wZy85LjRfcGx1cy9zcWwv
dXBkYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy
cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3MvcGcvOS40X3BsdXMvc3Fs
L3VwZGF0ZS5zcWwKQEAgLTE5LDcgKzE5LDcgQEAgQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50
KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CiB7JSBlbmRpZiAlfQogeyUgaWYgZGVmIGFuZCBk
ZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgJX0KIENSRUFURSBPUiBSRVBMQUNF
IFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Ci0gICAgV0lU
SCAoeyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIG9yIG9fZGF0YS5jaGVja19vcHRpb24pICV9Y2hl
Y2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGVsc2Ug
b19kYXRhLmNoZWNrX29wdGlvbiB9fXt7JywgJyB9fXslIGVuZGlmICV9c2VjdXJpdHlfYmFycmll
cj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgaWYgZGF0YS5zZWN1cml0eV9iYXJyaWVy
IGVsc2Ugb19kYXRhLnNlY3VyaXR5X2JhcnJpZXJ8ZGVmYXVsdCgnZmFsc2UnLCAndHJ1ZScpfGxv
d2VyIH19KQorICAgIFdJVEggKHslIGlmIChkYXRhLmNoZWNrX29wdGlvbiBvciBvX2RhdGEuY2hl
Y2tfb3B0aW9uKSAlfWNoZWNrX29wdGlvbj17eyBkYXRhLmNoZWNrX29wdGlvbiBpZiBkYXRhLmNo
ZWNrX29wdGlvbiBlbHNlIG9fZGF0YS5jaGVja19vcHRpb24gfX17eycsICcgfX17JSBlbmRpZiAl
fXNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyIGlmIGRhdGEu
c2VjdXJpdHlfYmFycmllciBpcyBkZWZpbmVkIGVsc2Ugb19kYXRhLnNlY3VyaXR5X2JhcnJpZXJ8
ZGVmYXVsdCgnZmFsc2UnLCAndHJ1ZScpfGxvd2VyIH19KQogICAgIEFTCiAgICAge3sgZGVmIH19
OwogeyUgZWxzZSAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv
dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3RlbXBsYXRlcy9kYXRhYmFzZXMvY3NzL2RhdGFiYXNlLmNz
cyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90
ZW1wbGF0ZXMvZGF0YWJhc2VzL2Nzcy9kYXRhYmFzZS5jc3MKaW5kZXggZjBiMTJlMzA2Li4wYzlh
ZTEwZGQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2
ZXJzL2RhdGFiYXNlcy90ZW1wbGF0ZXMvZGF0YWJhc2VzL2Nzcy9kYXRhYmFzZS5jc3MKKysrIGIv
d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3RlbXBs
YXRlcy9kYXRhYmFzZXMvY3NzL2RhdGFiYXNlLmNzcwpAQCAtMTEsNCArMTEsOSBAQAogICBiYWNr
Z3JvdW5kLWltYWdlOiB1cmwoJ3t7IHVybF9mb3IoJ05PREUtZGF0YWJhc2Uuc3RhdGljJywgZmls
ZW5hbWU9J2ltZy9kYXRhYmFzZWJhZC5zdmcnKSB9fScpICFpbXBvcnRhbnQ7CiAgIGJvcmRlci1y
YWRpdXM6IDEwcHg7CiAgIGJhY2tncm91bmQtc2l6ZTogMjBweCAhaW1wb3J0YW50OworICBiYWNr
Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICBh
bGlnbi1jb250ZW50OiBjZW50ZXI7CisgIGhlaWdodDogMS4zZW07CisKIH0KZGlmZiAtLWdpdCBh
L3dlYi9wZ2FkbWluL3N0YXRpYy9idW5kbGUvc2xpY2tncmlkLmpzIGIvd2ViL3BnYWRtaW4vc3Rh
dGljL2J1bmRsZS9zbGlja2dyaWQuanMKaW5kZXggNzMxYjQyMDI2Li4yMDY3MGI5ODEgMTAwNjQ0
Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9idW5kbGUvc2xpY2tncmlkLmpzCisrKyBiL3dlYi9w
Z2FkbWluL3N0YXRpYy9idW5kbGUvc2xpY2tncmlkLmpzCkBAIC0xNCw5ICsxNCwxMiBAQCBpbXBv
cnQgJ3NsaWNrZ3JpZC9zbGljay5ncmlkJzsKIGltcG9ydCAnc2xpY2tncmlkL3NsaWNrLmRhdGF2
aWV3JzsKIGltcG9ydCAnc2xpY2tncmlkL3NsaWNrLmVkaXRvcnMnOwogaW1wb3J0ICdzbGlja2dy
aWQvc2xpY2suZm9ybWF0dGVycyc7CitpbXBvcnQgJ3NsaWNrZ3JpZC9zbGljay5ncm91cGl0ZW1t
ZXRhZGF0YXByb3ZpZGVyJzsKIGltcG9ydCAnc2xpY2tncmlkL3BsdWdpbnMvc2xpY2suYXV0b3Rv
b2x0aXBzJzsKIGltcG9ydCAnc2xpY2tncmlkL3BsdWdpbnMvc2xpY2suY2VsbHJhbmdlZGVjb3Jh
dG9yJzsKIGltcG9ydCAnc2xpY2tncmlkL3BsdWdpbnMvc2xpY2suY2VsbHJhbmdlc2VsZWN0b3In
OworaW1wb3J0ICdzbGlja2dyaWQvcGx1Z2lucy9zbGljay5jaGVja2JveHNlbGVjdGNvbHVtbic7
CitpbXBvcnQgJ3NsaWNrZ3JpZC9wbHVnaW5zL3NsaWNrLnJvd3NlbGVjdGlvbm1vZGVsJzsKIGlt
cG9ydCAnc291cmNlcy9zbGlja2dyaWQvY3VzdG9tX2hlYWRlcl9idXR0b25zJzsKIAogZXhwb3J0
IGRlZmF1bHQgd2luZG93LlNsaWNrOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pz
L2JhY2tmb3JtLnBnYWRtaW4uanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFja2Zvcm0ucGdh
ZG1pbi5qcwppbmRleCBlYjA4MjEyODQuLmQ0ZGJiZDlkOSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt
aW4vc3RhdGljL2pzL2JhY2tmb3JtLnBnYWRtaW4uanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGlj
L2pzL2JhY2tmb3JtLnBnYWRtaW4uanMKQEAgLTgxNyw3ICs4MTcsNyBAQCBkZWZpbmUoWwogICAg
IH0sCiAgIH0pOwogCi0gIEJhY2tmb3JtLkFjY29yZGlhbiA9IEJhY2tmb3JtLkRpYWxvZy5leHRl
bmQoeworICBCYWNrZm9ybS5BY2NvcmRpYW4gICA9IEJhY2tmb3JtLkRpYWxvZy5leHRlbmQoewog
ICAgIGNsYXNzTmFtZTogZnVuY3Rpb24oKSB7CiAgICAgICByZXR1cm4gJ3NldC1ncm91cCBwZy1l
bC0xMic7CiAgICAgfSwKQEAgLTIxMjksNyArMjEyOSw5IEBAIGRlZmluZShbCiAKICAgICBmb3Jt
YXR0ZXI6IFNlbGVjdDJGb3JtYXR0ZXIsCiAgICAgdGVtcGxhdGU6IF8udGVtcGxhdGUoWwotICAg
ICAgJzxsYWJlbCBjbGFzcz0iPCU9QmFja2Zvcm0uY29udHJvbExhYmVsQ2xhc3NOYW1lJT4iIGZv
cj0iPCU9Y0lkJT4iPjwlPWxhYmVsJT48L2xhYmVsPicsCisgICAgICAnPCUgaWYobGFiZWwgPT0g
ZmFsc2UpIHt9IGVsc2UgeyU+JywKKyAgICAgICcgIDxsYWJlbCBjbGFzcz0iPCU9QmFja2Zvcm0u
Y29udHJvbExhYmVsQ2xhc3NOYW1lJT4iIGZvcj0iPCU9Y0lkJT4iPjwlPWxhYmVsJT48L2xhYmVs
PicsCisgICAgICAnPCUgfSU+JywKICAgICAgICc8ZGl2IGNsYXNzPSI8JT1CYWNrZm9ybS5jb250
cm9sc0NsYXNzTmFtZSU+Ij4nLAogICAgICAgJyA8c2VsZWN0IGlkPSI8JT1jSWQlPiIgY2xhc3M9
IjwlPUJhY2tmb3JtLmNvbnRyb2xDbGFzc05hbWUlPiA8JT1leHRyYUNsYXNzZXMuam9pbihcJyBc
JyklPiInLAogICAgICAgJyAgbmFtZT0iPCU9bmFtZSU+IiB2YWx1ZT0iPCUtdmFsdWUlPiIgPCU9
ZGlzYWJsZWQgPyAiZGlzYWJsZWQiIDogIiIlPicsCkBAIC0yMTYxLDcgKzIxNjMsNiBAQCBkZWZp
bmUoWwogICAgICAgJzwvZGl2PicsCiAgICAgXS5qb2luKCdcbicpKSwKICAgICByZW5kZXI6IGZ1
bmN0aW9uKCkgewotCiAgICAgICBpZiAodGhpcy4kc2VsICYmIHRoaXMuJHNlbC5zZWxlY3QyICYm
CiAgICAgICAgIHRoaXMuJHNlbC5zZWxlY3QyLmhhc093blByb3BlcnR5KCdkZXN0cm95JykpIHsK
ICAgICAgICAgdGhpcy4kc2VsLnNlbGVjdDIoJ2Rlc3Ryb3knKTsKQEAgLTI0NjUsNyArMjQ2Niw3
IEBAIGRlZmluZShbCiAgICAgICAgIHNlbGYuc3FsQ3RybC5zZXRPcHRpb24oJ2F1dG9DbG9zZUJy
YWNrZXRzJywgc3FsRWRpdFByZWZlcmVuY2VzLmluc2VydF9wYWlyX2JyYWNrZXRzKTsKICAgICAg
ICAgc2VsZi5zcWxDdHJsLnNldE9wdGlvbignbWF0Y2hCcmFja2V0cycsIHNxbEVkaXRQcmVmZXJl
bmNlcy5icmFjZV9tYXRjaGluZyk7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgc2VsZi5zcWxDdHJsLnJlZnJlc2goKTsKKyAgICAgICAgICBpZiAoc2VsZi5zcWxD
dHJsKSBzZWxmLnNxbEN0cmwucmVmcmVzaCgpOwogICAgICAgICB9LCA1MDApOwogICAgICAgfQog
ICAgIH0sCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9yZXNvdXJjZXMvX2Rl
ZmF1bHQudmFyaWFibGVzLnNjc3MgYi93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9yZXNvdXJjZXMv
X2RlZmF1bHQudmFyaWFibGVzLnNjc3MKaW5kZXggZjc2OWU1MGIzLi5lMTNjZjA4YmEgMTAwNjQ0
Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL3Jlc291cmNlcy9fZGVmYXVsdC52YXJpYWJs
ZXMuc2NzcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9yZXNvdXJjZXMvX2RlZmF1bHQu
dmFyaWFibGVzLnNjc3MKQEAgLTI1Niw0ICsyNTYsMTEgQEAgJGxvYWRpbmctYmcgOiByZ2JhKCRi
bGFjaywwLjYpOwogJGxvYWRpbmctZmcgOiAkd2hpdGU7CiAKICRsb2FkZXItaWNvbiA6IHVybCgi
ZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjP3htbCB2ZXJzaW9uPScxLjAnIGVu
Y29kaW5nPSd1dGYtOCc/JTNlJTNjc3ZnIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5z
PSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMzggMzgnIHN0eWxl
PSdlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDM4IDM4OycgeG1sOnNwYWNlPSdwcmVzZXJ2ZScl
M2UlM2NzdHlsZSB0eXBlPSd0ZXh0L2NzcyclM2UgLnN0MCU3YmZpbGw6bm9uZTtzdHJva2U6JTIz
ZWJlZWYzO3N0cm9rZS13aWR0aDoyOyU3ZCAuc3QxJTdiZmlsbDpub25lO3N0cm9rZTolMjMzMjY2
OTA7c3Ryb2tlLXdpZHRoOjI7JTdkICUzYy9zdHlsZSUzZSUzY2clM2UlM2NnIHRyYW5zZm9ybT0n
dHJhbnNsYXRlKDEgMSknJTNlJTNjY2lyY2xlIGNsYXNzPSdzdDAnIGN4PScxOCcgY3k9JzE4JyBy
PScxOCcvJTNlJTNjcGF0aCBjbGFzcz0nc3QxJyBkPSdNMzYsMThjMC05LjktOC4xLTE4LTE4LTE4
ICclM2UlM2NhbmltYXRlVHJhbnNmb3JtIGFjY3VtdWxhdGU9J25vbmUnIGFkZGl0aXZlPSdyZXBs
YWNlJyBhdHRyaWJ1dGVOYW1lPSd0cmFuc2Zvcm0nIGNhbGNNb2RlPSdsaW5lYXInIGR1cj0nMC43
cycgZmlsbD0ncmVtb3ZlJyBmcm9tPScwIDE4IDE4JyByZXBlYXRDb3VudD0naW5kZWZpbml0ZScg
cmVzdGFydD0nYWx3YXlzJyB0bz0nMzYwIDE4IDE4JyB0eXBlPSdyb3RhdGUnJTNlJTNjL2FuaW1h
dGVUcmFuc2Zvcm0lM2UlM2MvcGF0aCUzZSUzYy9nJTNlJTNjL2clM2UlM2Mvc3ZnJTNlICIpICFk
ZWZhdWx0OworCiAkbG9hZGVyLWljb24tc21hbGw6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUz
QyUzRnhtbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSd1dGYtOCclM0YlM0UlM0MhLS0gR2VuZXJh
dG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBW
ZXJzaW9uOiA2LjAwIEJ1aWxkIDApIC0tJTNFJTNDc3ZnIHZlcnNpb249JzEuMScgaWQ9J0xheWVy
XzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMzgg
MzgnIHN0eWxlPSdlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDM4IDM4OycgeG1sOnNwYWNlPSdw
cmVzZXJ2ZSclM0UlM0NzdHlsZSB0eXBlPSd0ZXh0L2NzcyclM0UgLnN0MCU3QmZpbGw6bm9uZTtz
dHJva2U6JTIzRUJFRUYzO3N0cm9rZS13aWR0aDo1OyU3RCAuc3QxJTdCZmlsbDpub25lO3N0cm9r
ZTolMjMzMjY2OTA7c3Ryb2tlLXdpZHRoOjU7JTdEJTBBJTNDL3N0eWxlJTNFJTNDZyUzRSUzQ2cg
dHJhbnNmb3JtPSd0cmFuc2xhdGUoMSAxKSclM0UlM0NjaXJjbGUgY2xhc3M9J3N0MCcgY3g9JzE4
JyBjeT0nMTgnIHI9JzE2Jy8lM0UlM0NwYXRoIGNsYXNzPSdzdDEnIGQ9J00zNCwxOGMwLTguOC03
LjItMTYtMTYtMTYgJyUzRSUzQ2FuaW1hdGVUcmFuc2Zvcm0gYWNjdW11bGF0ZT0nbm9uZScgYWRk
aXRpdmU9J3JlcGxhY2UnIGF0dHJpYnV0ZU5hbWU9J3RyYW5zZm9ybScgY2FsY01vZGU9J2xpbmVh
cicgZHVyPScwLjdzJyBmaWxsPSdyZW1vdmUnIGZyb209JzAgMTggMTgnIHJlcGVhdENvdW50PSdp
bmRlZmluaXRlJyByZXN0YXJ0PSdhbHdheXMnIHRvPSczNjAgMTggMTgnIHR5cGU9J3JvdGF0ZScl
M0UlM0MvYW5pbWF0ZVRyYW5zZm9ybSUzRSUzQy9wYXRoJTNFJTNDL2clM0UlM0MvZyUzRSUzQy9z
dmclM0UlMEEiKSAhZGVmYXVsdDsKKworLyoqKioqKioqKioqKioqKi8KKworJHNjaGVtYWRpZmYt
ZGlmZi1yb3ctY29sb3I6ICNmZmY5YzQ7Ciskc2NoZW1hZGlmZi1zb3VyY2Utcm93LWNvbG9yOiAj
ZmZlYmVlOworJHNjaGVtYWRpZmYtdGFyZ2V0LXJvdy1jb2xvcjogI2ZiZTNiZjsKZGlmZiAtLWdp
dCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9zaG93X3F1ZXJ5X3Rvb2wu
anMgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9zdGF0aWMvanMvc2hvd19xdWVyeV90b29s
LmpzCmluZGV4IGI3YThkMDMzOC4uMjRiNDRmM2UzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90
b29scy9kYXRhZ3JpZC9zdGF0aWMvanMvc2hvd19xdWVyeV90b29sLmpzCisrKyBiL3dlYi9wZ2Fk
bWluL3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9zaG93X3F1ZXJ5X3Rvb2wuanMKQEAgLTExLDYg
KzExLDcgQEAgaW1wb3J0IGdldHRleHQgZnJvbSAnLi4vLi4vLi4vLi4vc3RhdGljL2pzL2dldHRl
eHQnOwogaW1wb3J0IHVybF9mb3IgZnJvbSAnLi4vLi4vLi4vLi4vc3RhdGljL2pzL3VybF9mb3In
OwogaW1wb3J0IHtnZXRUcmVlTm9kZUhpZXJhcmNoeUZyb21JZGVudGlmaWVyfSBmcm9tICcuLi8u
Li8uLi8uLi9zdGF0aWMvanMvdHJlZS9wZ2FkbWluX3RyZWVfbm9kZSc7CiBpbXBvcnQge2dldFBh
bmVsVGl0bGV9IGZyb20gJy4vZGF0YWdyaWRfcGFuZWxfdGl0bGUnOworaW1wb3J0IHtnZXRSYW5k
b21JbnR9IGZyb20gJ3NvdXJjZXMvdXRpbHMnOwogCiBmdW5jdGlvbiBoYXNEYXRhYmFzZUluZm9y
bWF0aW9uKHBhcmVudERhdGEpIHsKICAgcmV0dXJuIHBhcmVudERhdGEuZGF0YWJhc2U7CkBAIC02
NiwzICs2NywyMSBAQCBleHBvcnQgZnVuY3Rpb24gc2hvd1F1ZXJ5VG9vbChkYXRhZ3JpZCwgcGdC
cm93c2VyLCBhbGVydGlmeSwgdXJsLCBhY2lUcmVlSWRlbnRpZgogCiAgIGRhdGFncmlkLmxhdW5j
aF9ncmlkKHRyYW5zSWQsIGdyaWRVcmwsIHRydWUsIHF1ZXJ5VG9vbFRpdGxlLCBzVVJMKTsKIH0K
KworZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlU2NyaXB0KHBhcmVudERhdGEsIGRhdGFncmlkKSB7
CisgIGNvbnN0IHF1ZXJ5VG9vbFRpdGxlID0gYCR7cGFyZW50RGF0YS5kYXRhYmFzZX0vJHtwYXJl
bnREYXRhLnVzZXJ9QCR7cGFyZW50RGF0YS5zZXJ2ZXJ9YDsKKyAgY29uc3QgdHJhbnNJZCA9IGdl
dFJhbmRvbUludCgxLCA5OTk5OTk5KTsKKworICBsZXQgdXJsX2VuZHBvaW50ID0gdXJsX2Zvcign
ZGF0YWdyaWQucGFuZWwnLCB7CisgICAgJ3RyYW5zX2lkJzogdHJhbnNJZCwKKyAgfSk7CisKKyAg
dXJsX2VuZHBvaW50ICs9IGA/aXNfcXVlcnlfdG9vbD0ke3RydWV9YAorICAgICtgJnNnaWQ9JHtw
YXJlbnREYXRhLnNnaWR9YAorICAgICtgJnNpZD0ke3BhcmVudERhdGEuc2lkfWAKKyAgICArYCZz
ZXJ2ZXJfdHlwZT0ke3BhcmVudERhdGEuc3R5cGV9YAorICAgICtgJmRpZD0ke3BhcmVudERhdGEu
ZGlkfWA7CisKKyAgZGF0YWdyaWQubGF1bmNoX2dyaWQodHJhbnNJZCwgdXJsX2VuZHBvaW50LCB0
cnVlLCBxdWVyeVRvb2xUaXRsZSwgJycpOworCit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90
b29scy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvaW5kZXguaHRtbCBiL3dlYi9wZ2FkbWlu
L3Rvb2xzL2RhdGFncmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sCmluZGV4IDc3Zjhm
MzFmMy4uYmE1ZjcxZmMzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90
ZW1wbGF0ZXMvZGF0YWdyaWQvaW5kZXguaHRtbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9kYXRh
Z3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvaW5kZXguaHRtbApAQCAtNDQzLDYgKzQ0MywxMiBAQCBy
ZXF1aXJlKFsnc291cmNlcy9nZW5lcmF0ZWQvYnJvd3Nlcl9ub2RlcycsICdzb3VyY2VzL2dlbmVy
YXRlZC9jb2RlbWlycm9yJywgJ3NvdQogICAgICAgICAgICAge3sgdXJsX3BhcmFtc3xzYWZlfX0s
CiAgICAgICAgICAgICAne3sgbGF5b3V0fHNhZmUgfX0nCiAgICAgICAgICk7CisKKyAgICAgICAg
Ly8gSWYgb3BlbmluZyBmcm9tIHNjaGVtYSBkaWZmLCBzZXQgdGhlIGdlbmVyYXRlZCBzY3JpcHQg
dG8gdGhlIFNRTCBFZGl0b3IKKyAgICAgICAgdmFyIHNjaGVtYV9kZGxfZGlmZiA9ICh3aW5kb3cu
b3BlbmVyICE9PSBudWxsKSA/IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5kZGxfZGlmZiA6IHdpbmRv
dy50b3AucGdBZG1pbi5kZGxfZGlmZjsKKyAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlci5zZXRf
dmFsdWVfdG9fZWRpdG9yKHNjaGVtYV9kZGxfZGlmZik7CisgICAgICAgIGlmICh3aW5kb3cudG9w
ICE9PSBudWxsKSB3aW5kb3cudG9wLnBnQWRtaW4uZGRsX2RpZmYgPSAnJzsKKyAgICAgICAgaWYg
KHdpbmRvdy5vcGVuZXIgIT09IG51bGwpIHdpbmRvdy5vcGVuZXIucGdBZG1pbi5kZGxfZGlmZiA9
ICcnOwogICAgIH0pOwogfSk7CiB7JSBlbmRibG9jayAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt
aW4vdG9vbHMvc2NoZW1hX2RpZmYvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi90b29scy9zY2hl
bWFfZGlmZi9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu
LmFjZDA2YzNmMAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9k
aWZmL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNjEzIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor
IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt
IDIwMTksIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyBy
ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IworCisiIiJBIGJsdWVwcmludCBtb2R1bGUgaW1wbGVtZW50aW5nIHRoZSBzY2hlbWFfZGlmZiBm
cmFtZS4iIiIKK01PRFVMRV9OQU1FID0gJ3NjaGVtYV9kaWZmJworCitpbXBvcnQgc2ltcGxlanNv
biBhcyBqc29uCitpbXBvcnQgcGlja2xlCitpbXBvcnQgcmFuZG9tCisKK2Zyb20gZmxhc2sgaW1w
b3J0IFJlc3BvbnNlLCBzZXNzaW9uLCB1cmxfZm9yLCByZXF1ZXN0Citmcm9tIGZsYXNrIGltcG9y
dCByZW5kZXJfdGVtcGxhdGUsIGN1cnJlbnRfYXBwIGFzIGFwcAorZnJvbSBmbGFza19zZWN1cml0
eSBpbXBvcnQgY3VycmVudF91c2VyLCBsb2dpbl9yZXF1aXJlZAorZnJvbSBmbGFza19iYWJlbGV4
IGltcG9ydCBnZXR0ZXh0Citmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IFBnQWRtaW5Nb2R1bGUK
K2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGJhZF9y
ZXF1ZXN0LCBcCisgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCBnb25lLCBtYWtlX3Jlc3BvbnNl
IGFzIGFqYXhfcmVzcG9uc2UsIFwKKyAgICBub3RfaW1wbGVtZW50ZWQKK2Zyb20gcGdhZG1pbi5t
b2RlbCBpbXBvcnQgU2VydmVyCitmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9y
ZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlmZlJlZ2lzdHJ5Citmcm9tIHBnYWRtaW4udG9vbHMuc2No
ZW1hX2RpZmYubW9kZWwgaW1wb3J0IFNjaGVtYURpZmZNb2RlbAorZnJvbSBjb25maWcgaW1wb3J0
IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRf
ZHJpdmVyCisKKworY2xhc3MgU2NoZW1hRGlmZk1vZHVsZShQZ0FkbWluTW9kdWxlKToKKyAgICAi
IiIKKyAgICBjbGFzcyBTY2hlbWFEaWZmTW9kdWxlKFBnQWRtaW5Nb2R1bGUpCisKKyAgICAgICAg
QSBtb2R1bGUgY2xhc3MgZm9yIFNjaGVtYSBEaWZmIGRlcml2ZWQgZnJvbSBQZ0FkbWluTW9kdWxl
LgorICAgICIiIgorCisgICAgTEFCRUwgPSAiU2NoZW1hIERpZmYiCisKKyAgICBkZWYgZ2V0X293
bl9tZW51aXRlbXMoc2VsZik6CisgICAgICAgIHJldHVybiB7fQorCisgICAgZGVmIGdldF9vd25f
amF2YXNjcmlwdHMoc2VsZik6CisgICAgICAgIHJldHVybiBbeworICAgICAgICAgICAgJ25hbWUn
OiAncGdhZG1pbi5zY2hlbWFfZGlmZicsCisgICAgICAgICAgICAncGF0aCc6IHVybF9mb3IoJ3Nj
aGVtYV9kaWZmLmluZGV4JykgKyAic2NoZW1hX2RpZmYiLAorICAgICAgICAgICAgJ3doZW4nOiBO
b25lCisgICAgICAgIH1dCisKKyAgICBkZWYgZ2V0X3BhbmVscyhzZWxmKToKKyAgICAgICAgcmV0
dXJuIFtdCisKKyAgICBkZWYgZ2V0X2V4cG9zZWRfdXJsX2VuZHBvaW50cyhzZWxmKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBsaXN0OiBVUkwgZW5kcG9pbnRz
IGZvciBTY2hlbWEgRGlmZiBtb2R1bGUKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBbCisg
ICAgICAgICAgICAnc2NoZW1hX2RpZmYuaW5pdGlhbGl6ZScsCisgICAgICAgICAgICAnc2NoZW1h
X2RpZmYucGFuZWwnLAorICAgICAgICAgICAgJ3NjaGVtYV9kaWZmLnNlcnZlcnMnLAorICAgICAg
ICAgICAgJ3NjaGVtYV9kaWZmLmRhdGFiYXNlcycsCisgICAgICAgICAgICAnc2NoZW1hX2RpZmYu
c2NoZW1hcycsCisgICAgICAgICAgICAnc2NoZW1hX2RpZmYuY29tcGFyZScsCisgICAgICAgICAg
ICAnc2NoZW1hX2RpZmYucG9sbCcsCisgICAgICAgICAgICAnc2NoZW1hX2RpZmYuZGRsX2NvbXBh
cmUnLAorICAgICAgICAgICAgJ3NjaGVtYV9kaWZmLmNvbm5lY3Rfc2VydmVyJywKKyAgICAgICAg
ICAgICdzY2hlbWFfZGlmZi5jb25uZWN0X2RhdGFiYXNlJywKKyAgICAgICAgICAgICdzY2hlbWFf
ZGlmZi5nZXRfc2VydmVyJywKKyAgICAgICAgICAgICdzY2hlbWFfZGlmZi5nZW5lcmF0ZV9zY3Jp
cHQnCisgICAgICAgIF0KKworICAgIGRlZiByZWdpc3Rlcl9wcmVmZXJlbmNlcyhzZWxmKToKKyAg
ICAgICAgc2VsZi5wcmVmZXJlbmNlLnJlZ2lzdGVyKAorICAgICAgICAgICAgJ2Rpc3BsYXknLCAn
c2NoZW1hX2RpZmZfbmV3X2Jyb3dzZXJfdGFiJywKKyAgICAgICAgICAgIGdldHRleHQoIk9wZW4g
aW4gbmV3IGJyb3dzZXIgdGFiIiksICdib29sZWFuJywgRmFsc2UsCisgICAgICAgICAgICBjYXRl
Z29yeV9sYWJlbD1nZXR0ZXh0KCdEaXNwbGF5JyksCisgICAgICAgICAgICBoZWxwX3N0cj1nZXR0
ZXh0KCdJZiBzZXQgdG8gVHJ1ZSwgdGhlIFNjaGVtYSBEaWZmICcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3dpbGwgYmUgb3BlbmVkIGluIGEgbmV3IGJyb3dzZXIgdGFiLicpCisgICAg
ICAgICkKKworCitibHVlcHJpbnQgPSBTY2hlbWFEaWZmTW9kdWxlKE1PRFVMRV9OQU1FLCBfX25h
bWVfXywgc3RhdGljX3VybF9wYXRoPScvc3RhdGljJykKKworCitAYmx1ZXByaW50LnJvdXRlKCIv
IikKK0Bsb2dpbl9yZXF1aXJlZAorZGVmIGluZGV4KCk6CisgICAgcmV0dXJuIGJhZF9yZXF1ZXN0
KAorICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KCdUaGlzIFVSTCBjYW5ub3QgYmUgcmVxdWVzdGVk
IGRpcmVjdGx5LicpCisgICAgKQorCisKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9wYW5lbC88
aW50OnRyYW5zX2lkPi88cGF0aDplZGl0b3JfdGl0bGU+JywKKyAgICBtZXRob2RzPVsiR0VUIl0s
CisgICAgZW5kcG9pbnQ9J3BhbmVsJworKQorZGVmIHBhbmVsKHRyYW5zX2lkLCBlZGl0b3JfdGl0
bGUpOgorICAgICIiIgorICAgIFRoaXMgbWV0aG9kIGNhbGxzIGluZGV4Lmh0bWwgdG8gcmVuZGVy
IHRoZSBzY2hlbWEgZGlmZi4KKworICAgIEFyZ3M6CisgICAgICAgIGVkaXRvcl90aXRsZTogVGl0
bGUgb2YgdGhlIGVkaXRvcgorICAgICIiIgorICAgICMgSWYgdGl0bGUgaGFzIHNsYXNoKGVzKSBp
biBpdCB0aGVuIHJlcGxhY2UgaXQKKyAgICBpZiByZXF1ZXN0LmFyZ3MgYW5kIHJlcXVlc3QuYXJn
c1snZnNsYXNoZXMnXSAhPSAnJzoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZnNsYXNoZXNM
aXN0ID0gcmVxdWVzdC5hcmdzWydmc2xhc2hlcyddLnNwbGl0KCcsJykKKyAgICAgICAgICAgIGZv
ciBpZHggaW4gZnNsYXNoZXNMaXN0OgorICAgICAgICAgICAgICAgIGlkeCA9IGludChpZHgpCisg
ICAgICAgICAgICAgICAgZWRpdG9yX3RpdGxlID0gZWRpdG9yX3RpdGxlWzppZHhdICsgJy8nICsg
ZWRpdG9yX3RpdGxlW2lkeDpdCisgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yIGFzIGU6CisgICAg
ICAgICAgICBhcHAubG9nZ2VyLmV4Y2VwdGlvbihlKQorCisgICAgcmV0dXJuIHJlbmRlcl90ZW1w
bGF0ZSgKKyAgICAgICAgInNjaGVtYV9kaWZmL2luZGV4Lmh0bWwiLAorICAgICAgICBfPWdldHRl
eHQsCisgICAgICAgIHRyYW5zX2lkPXRyYW5zX2lkLAorICAgICAgICBlZGl0b3JfdGl0bGU9ZWRp
dG9yX3RpdGxlCisgICAgKQorCisKK0BibHVlcHJpbnQucm91dGUoIi9zY2hlbWFfZGlmZi5qcyIp
CitAbG9naW5fcmVxdWlyZWQKK2RlZiBzY3JpcHQoKToKKyAgICAiIiJyZW5kZXIgdGhlIHJlcXVp
cmVkIGphdmFzY3JpcHQiIiIKKyAgICByZXR1cm4gUmVzcG9uc2UoCisgICAgICAgIHJlc3BvbnNl
PXJlbmRlcl90ZW1wbGF0ZSgic2NoZW1hX2RpZmYvanMvc2NoZW1hX2RpZmYuanMiLCBfPWdldHRl
eHQpLAorICAgICAgICBzdGF0dXM9MjAwLAorICAgICAgICBtaW1ldHlwZT0iYXBwbGljYXRpb24v
amF2YXNjcmlwdCIKKyAgICApCisKKworZGVmIGNoZWNrX3RyYW5zYWN0aW9uX3N0YXR1cyh0cmFu
c19pZCk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNoZWNrIHRoZSB0
cmFuc2FjdGlvbiBpZAorICAgIGlzIGF2YWlsYWJsZSBpbiB0aGUgc2Vzc2lvbiBvYmplY3QuCisK
KyAgICBBcmdzOgorICAgICAgICB0cmFuc19pZDoKKyAgICAiIiIKKworICAgIGlmICdzY2hlbWFE
aWZmJyBub3QgaW4gc2Vzc2lvbjoKKyAgICAgICAgcmV0dXJuIEZhbHNlLCBnZXR0ZXh0KAorICAg
ICAgICAgICAgJ1RyYW5zYWN0aW9uIElEIG5vdCBmb3VuZCBpbiB0aGUgc2Vzc2lvbi4nCisgICAg
ICAgICksIE5vbmUsIE5vbmUKKworICAgIHNjaGVtYV9kaWZmX2RhdGEgPSBzZXNzaW9uWydzY2hl
bWFEaWZmJ10KKworICAgICMgUmV0dXJuIGZyb20gdGhlIGZ1bmN0aW9uIGlmIHRyYW5zYWN0aW9u
IGlkIG5vdCBmb3VuZAorICAgIGlmIHN0cih0cmFuc19pZCkgbm90IGluIHNjaGVtYV9kaWZmX2Rh
dGE6CisgICAgICAgIHJldHVybiBGYWxzZSwgZ2V0dGV4dCgKKyAgICAgICAgICAgICdUcmFuc2Fj
dGlvbiBJRCBub3QgZm91bmQgaW4gdGhlIHNlc3Npb24uJworICAgICAgICApLCBOb25lLCBOb25l
CisKKyAgICAjIEZldGNoIHRoZSBvYmplY3QgZm9yIHRoZSBzcGVjaWZpZWQgdHJhbnNhY3Rpb24g
aWQuCisgICAgIyBVc2UgcGlja2xlLmxvYWRzIGZ1bmN0aW9uIHRvIGdldCB0aGUgbW9kZWwgb2Jq
ZWN0CisgICAgc2Vzc2lvbl9vYmogPSBzY2hlbWFfZGlmZl9kYXRhW3N0cih0cmFuc19pZCldCisg
ICAgZGlmZl9tb2RlbF9vYmogPSBwaWNrbGUubG9hZHMoc2Vzc2lvbl9vYmpbJ2RpZmZfbW9kZWxf
b2JqJ10pCisKKyAgICByZXR1cm4gVHJ1ZSwgTm9uZSwgZGlmZl9tb2RlbF9vYmosIHNlc3Npb25f
b2JqCisKKworZGVmIHVwZGF0ZV9zZXNzaW9uX2RpZmZfdHJhbnNhY3Rpb24odHJhbnNfaWQsIHNl
c3Npb25fb2JqLCBkaWZmX21vZGVsX29iaik6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBp
cyB1c2VkIHRvIHVwZGF0ZSB0aGUgZGlmZiBtb2RlbCBpbnRvIHRoZSBzZXNzaW9uLgorICAgIDpw
YXJhbSB0cmFuc19pZDoKKyAgICA6cGFyYW0gc2Vzc2lvbl9vYmo6CisgICAgOnBhcmFtIGRpZmZf
bW9kZWxfb2JqOgorICAgIDpyZXR1cm46CisgICAgIiIiCisgICAgc2Vzc2lvbl9vYmpbJ2RpZmZf
bW9kZWxfb2JqJ10gPSBwaWNrbGUuZHVtcHMoZGlmZl9tb2RlbF9vYmosIC0xKQorCisgICAgaWYg
J3NjaGVtYURpZmYnIGluIHNlc3Npb246CisgICAgICAgIHNjaGVtYV9kaWZmX2RhdGEgPSBzZXNz
aW9uWydzY2hlbWFEaWZmJ10KKyAgICAgICAgc2NoZW1hX2RpZmZfZGF0YVtzdHIodHJhbnNfaWQp
XSA9IHNlc3Npb25fb2JqCisgICAgICAgIHNlc3Npb25bJ3NjaGVtYURpZmYnXSA9IHNjaGVtYV9k
aWZmX2RhdGEKKworCitAYmx1ZXByaW50LnJvdXRlKAorICAgICcvaW5pdGlhbGl6ZScsCisgICAg
bWV0aG9kcz1bIkdFVCJdLAorICAgIGVuZHBvaW50PSJpbml0aWFsaXplIgorKQorQGxvZ2luX3Jl
cXVpcmVkCitkZWYgaW5pdGlhbGl6ZSgpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2ls
bCBpbml0aWFsaXplIHRoZSBzY2hlbWEgZGlmZiBhbmQgcmV0dXJuIHRoZSBsaXN0CisgICAgb2Yg
YWxsIHRoZSBzZXJ2ZXIncy4KKyAgICAiIiIKKyAgICB0cmFuc19pZCA9IE5vbmUKKyAgICB0cnk6
CisgICAgICAgICMgQ3JlYXRlIGEgdW5pcXVlIGlkIGZvciB0aGUgdHJhbnNhY3Rpb24KKyAgICAg
ICAgdHJhbnNfaWQgPSBzdHIocmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCisKKyAgICAgICAg
aWYgJ3NjaGVtYURpZmYnIG5vdCBpbiBzZXNzaW9uOgorICAgICAgICAgICAgc2NoZW1hX2RpZmZf
ZGF0YSA9IGRpY3QoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2NoZW1hX2RpZmZfZGF0
YSA9IHNlc3Npb25bJ3NjaGVtYURpZmYnXQorCisgICAgICAgICMgVXNlIHBpY2tsZSB0byBzdG9y
ZSB0aGUgU2NoZW1hIERpZmYgTW9kZWwgd2hpY2ggd2lsbCBiZSB1c2VkCisgICAgICAgICMgbGF0
ZXIgYnkgdGhlIGRpZmYgbW9kdWxlLgorICAgICAgICBzY2hlbWFfZGlmZl9kYXRhW3RyYW5zX2lk
XSA9IHsKKyAgICAgICAgICAgICdkaWZmX21vZGVsX29iaic6IHBpY2tsZS5kdW1wcyhTY2hlbWFE
aWZmTW9kZWwoKSwgLTEpCisgICAgICAgIH0KKworICAgICAgICAjIFN0b3JlIHRoZSBzY2hlbWEg
ZGlmZiBkaWN0aW9uYXJ5IGludG8gdGhlIHNlc3Npb24gdmFyaWFibGUKKyAgICAgICAgc2Vzc2lv
blsnc2NoZW1hRGlmZiddID0gc2NoZW1hX2RpZmZfZGF0YQorCisgICAgZXhjZXB0IEV4Y2VwdGlv
biBhcyBlOgorICAgICAgICBhcHAubG9nZ2VyLmV4Y2VwdGlvbihlKQorCisgICAgcmV0dXJuIG1h
a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgZGF0YT17J3NjaGVtYURpZmZUcmFuc0lkJzogdHJh
bnNfaWR9KQorCisKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9zZXJ2ZXJzJywKKyAgICBtZXRo
b2RzPVsiR0VUIl0sCisgICAgZW5kcG9pbnQ9InNlcnZlcnMiCispCitAbG9naW5fcmVxdWlyZWQK
K2RlZiBzZXJ2ZXJzKCk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiB0
aGUgbGlzdCBvZiBzZXJ2ZXJzIGZvciB0aGUgc3BlY2lmaWVkCisgICAgc2VydmVyIGlkLgorICAg
ICIiIgorICAgIHJlcyA9IFtdCisgICAgdHJ5OgorICAgICAgICAiIiJSZXR1cm4gYSBKU09OIGRv
Y3VtZW50IGxpc3RpbmcgdGhlIHNlcnZlciBncm91cHMgZm9yIHRoZSB1c2VyIiIiCisgICAgICAg
IGRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpCisKKyAgICAgICAgZnJvbSBw
Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzIGltcG9ydFwKKyAgICAgICAgICAg
IHNlcnZlcl9pY29uX2FuZF9iYWNrZ3JvdW5kCisKKyAgICAgICAgZm9yIHNlcnZlciBpbiBTZXJ2
ZXIucXVlcnkuZmlsdGVyX2J5KHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkKToKKyAgICAgICAgICAg
IG1hbmFnZXIgPSBkcml2ZXIuY29ubmVjdGlvbl9tYW5hZ2VyKHNlcnZlci5pZCkKKyAgICAgICAg
ICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rpb24oKQorICAgICAgICAgICAgY29ubmVjdGVkID0g
Y29ubi5jb25uZWN0ZWQoKQorCisgICAgICAgICAgICByZXMuYXBwZW5kKHsKKyAgICAgICAgICAg
ICAgICAidmFsdWUiOiBzZXJ2ZXIuaWQsCisgICAgICAgICAgICAgICAgImxhYmVsIjogc2VydmVy
Lm5hbWUsCisgICAgICAgICAgICAgICAgImltYWdlIjogc2VydmVyX2ljb25fYW5kX2JhY2tncm91
bmQoY29ubmVjdGVkLCBtYW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlcnZlciksCisgICAgICAgICAgICAgICAgIl9pZCI6IHNlcnZl
ci5pZCwKKyAgICAgICAgICAgICAgICAiY29ubmVjdGVkIjogY29ubmVjdGVkLAorICAgICAgICAg
ICAgfSkKKworICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgYXBwLmxvZ2dlci5l
eGNlcHRpb24oZSkKKworICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0YT1yZXMpCisK
KworQGJsdWVwcmludC5yb3V0ZSgKKyAgICAnL2dldF9zZXJ2ZXIvPGludDpzaWQ+LzxpbnQ6ZGlk
PicsCisgICAgbWV0aG9kcz1bIkdFVCJdLAorICAgIGVuZHBvaW50PSJnZXRfc2VydmVyIgorKQor
QGxvZ2luX3JlcXVpcmVkCitkZWYgZ2V0X3NlcnZlcihzaWQsIGRpZCk6CisgICAgIiIiCisgICAg
VGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiB0aGUgc2VydmVyIGRldGFpbHMgZm9yIHRoZSBzcGVj
aWZpZWQKKyAgICBzZXJ2ZXIgaWQuCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICAiIiJSZXR1
cm4gYSBKU09OIGRvY3VtZW50IGxpc3RpbmcgdGhlIHNlcnZlciBncm91cHMgZm9yIHRoZSB1c2Vy
IiIiCisgICAgICAgIGRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpCisKKyAg
ICAgICAgc2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0KCkKKyAg
ICAgICAgbWFuYWdlciA9IGRyaXZlci5jb25uZWN0aW9uX21hbmFnZXIoc2lkKQorICAgICAgICBj
b25uID0gbWFuYWdlci5jb25uZWN0aW9uKGRpZD1kaWQpCisgICAgICAgIGNvbm5lY3RlZCA9IGNv
bm4uY29ubmVjdGVkKCkKKworICAgICAgICByZXMgPSB7CisgICAgICAgICAgICAic2lkIjogc2lk
LAorICAgICAgICAgICAgIm5hbWUiOiBzZXJ2ZXIubmFtZSwKKyAgICAgICAgICAgICJ1c2VyIjog
c2VydmVyLnVzZXJuYW1lLAorICAgICAgICAgICAgImdpZCI6IHNlcnZlci5zZXJ2ZXJncm91cF9p
ZCwKKyAgICAgICAgICAgICJ0eXBlIjogbWFuYWdlci5zZXJ2ZXJfdHlwZSwKKyAgICAgICAgICAg
ICJjb25uZWN0ZWQiOiBjb25uZWN0ZWQsCisgICAgICAgICAgICAiZGF0YWJhc2UiOiBjb25uLmRi
CisgICAgICAgIH0KKworICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgYXBwLmxv
Z2dlci5leGNlcHRpb24oZSkKKworICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0YT1y
ZXMpCisKKworQGJsdWVwcmludC5yb3V0ZSgKKyAgICAnL3NlcnZlci9jb25uZWN0LzxpbnQ6c2lk
PicsCisgICAgbWV0aG9kcz1bIlBPU1QiXSwKKyAgICBlbmRwb2ludD0iY29ubmVjdF9zZXJ2ZXIi
CispCitAbG9naW5fcmVxdWlyZWQKK2RlZiBjb25uZWN0X3NlcnZlcihzaWQpOgorICAgIHNlcnZl
ciA9IFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoaWQ9c2lkKS5maXJzdCgpCisgICAgdmlldyA9IFNj
aGVtYURpZmZSZWdpc3RyeS5nZXRfbm9kZV92aWV3KCdzZXJ2ZXInKQorICAgIHJldHVybiB2aWV3
LmNvbm5lY3Qoc2VydmVyLnNlcnZlcmdyb3VwX2lkLCBzaWQpCisKKworQGJsdWVwcmludC5yb3V0
ZSgKKyAgICAnL2RhdGFiYXNlL2Nvbm5lY3QvPGludDpzaWQ+LzxpbnQ6ZGlkPicsCisgICAgbWV0
aG9kcz1bIlBPU1QiXSwKKyAgICBlbmRwb2ludD0iY29ubmVjdF9kYXRhYmFzZSIKKykKK0Bsb2dp
bl9yZXF1aXJlZAorZGVmIGNvbm5lY3RfZGF0YWJhc2Uoc2lkLCBkaWQpOgorICAgIHNlcnZlciA9
IFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoaWQ9c2lkKS5maXJzdCgpCisgICAgdmlldyA9IFNjaGVt
YURpZmZSZWdpc3RyeS5nZXRfbm9kZV92aWV3KCdkYXRhYmFzZScpCisgICAgcmV0dXJuIHZpZXcu
Y29ubmVjdChzZXJ2ZXIuc2VydmVyZ3JvdXBfaWQsIHNpZCwgZGlkKQorCisKK0BibHVlcHJpbnQu
cm91dGUoCisgICAgJy9kYXRhYmFzZXMvPGludDpzaWQ+JywKKyAgICBtZXRob2RzPVsiR0VUIl0s
CisgICAgZW5kcG9pbnQ9ImRhdGFiYXNlcyIKKykKK0Bsb2dpbl9yZXF1aXJlZAorZGVmIGRhdGFi
YXNlcyhzaWQpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIGxp
c3Qgb2YgZGF0YWJhc2VzIGZvciB0aGUgc3BlY2lmaWVkCisgICAgc2VydmVyIGlkLgorICAgICIi
IgorICAgIHJlcyA9IFtdCisgICAgdHJ5OgorICAgICAgICB2aWV3ID0gU2NoZW1hRGlmZlJlZ2lz
dHJ5LmdldF9ub2RlX3ZpZXcoJ2RhdGFiYXNlJykKKworICAgICAgICBzZXJ2ZXIgPSBTZXJ2ZXIu
cXVlcnkuZmlsdGVyX2J5KGlkPXNpZCkuZmlyc3QoKQorICAgICAgICByZXNwb25zZSA9IHZpZXcu
bm9kZXMoZ2lkPXNlcnZlci5zZXJ2ZXJncm91cF9pZCwgc2lkPXNpZCkKKyAgICAgICAgZGF0YWJh
c2VzID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhKVsnZGF0YSddCisgICAgICAgIGZvciBkYiBp
biBkYXRhYmFzZXM6CisgICAgICAgICAgICByZXMuYXBwZW5kKHsKKyAgICAgICAgICAgICAgICAi
dmFsdWUiOiBkYlsnX2lkJ10sCisgICAgICAgICAgICAgICAgImxhYmVsIjogZGJbJ2xhYmVsJ10s
CisgICAgICAgICAgICAgICAgIl9pZCI6IGRiWydfaWQnXSwKKyAgICAgICAgICAgICAgICAiY29u
bmVjdGVkIjogZGJbJ2Nvbm5lY3RlZCddLAorICAgICAgICAgICAgICAgICJhbGxvd0Nvbm4iOiBk
YlsnYWxsb3dDb25uJ10sCisgICAgICAgICAgICAgICAgImltYWdlIjogZGJbJ2ljb24nXSwKKyAg
ICAgICAgICAgICAgICAiY2FuRGlzY29ubiI6IGRiWydjYW5EaXNjb25uJ10KKyAgICAgICAgICAg
IH0pCisKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIGFwcC5sb2dnZXIuZXhj
ZXB0aW9uKGUpCisKKyAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKGRhdGE9cmVzKQorCisK
K0BibHVlcHJpbnQucm91dGUoCisgICAgJy9zY2hlbWFzLzxpbnQ6c2lkPi88aW50OmRpZD4nLAor
ICAgIG1ldGhvZHM9WyJHRVQiXSwKKyAgICBlbmRwb2ludD0ic2NoZW1hcyIKKykKK0Bsb2dpbl9y
ZXF1aXJlZAorZGVmIHNjaGVtYXMoc2lkLCBkaWQpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rp
b24gd2lsbCByZXR1cm4gdGhlIGxpc3Qgb2Ygc2NoZW1hcyBmb3IgdGhlIHNwZWNpZmllZAorICAg
IHNlcnZlciBpZCBhbmQgZGF0YWJhc2UgaWQuCisgICAgIiIiCisgICAgcmVzID0gW10KKyAgICB0
cnk6CisgICAgICAgIHZpZXcgPSBTY2hlbWFEaWZmUmVnaXN0cnkuZ2V0X25vZGVfdmlldygnc2No
ZW1hJykKKyAgICAgICAgc2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZp
cnN0KCkKKyAgICAgICAgcmVzcG9uc2UgPSB2aWV3Lm5vZGVzKGdpZD1zZXJ2ZXIuc2VydmVyZ3Jv
dXBfaWQsIHNpZD1zaWQsIGRpZD1kaWQpCisgICAgICAgIHNjaGVtYXMgPSBqc29uLmxvYWRzKHJl
c3BvbnNlLmRhdGEpWydkYXRhJ10KKyAgICAgICAgZm9yIHNjaCBpbiBzY2hlbWFzOgorICAgICAg
ICAgICAgcmVzLmFwcGVuZCh7CisgICAgICAgICAgICAgICAgInZhbHVlIjogc2NoWydfaWQnXSwK
KyAgICAgICAgICAgICAgICAibGFiZWwiOiBzY2hbJ2xhYmVsJ10sCisgICAgICAgICAgICAgICAg
Il9pZCI6IHNjaFsnX2lkJ10sCisgICAgICAgICAgICAgICAgImltYWdlIjogc2NoWydpY29uJ10s
CisgICAgICAgICAgICB9KQorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgYXBw
LmxvZ2dlci5leGNlcHRpb24oZSkKKworICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0
YT1yZXMpCisKKworQGJsdWVwcmludC5yb3V0ZSgKKyAgICAnL2NvbXBhcmUvPGludDp0cmFuc19p
ZD4vPGludDpzb3VyY2Vfc2lkPi88aW50OnNvdXJjZV9kaWQ+LycKKyAgICAnPGludDpzb3VyY2Vf
c2NpZD4vPGludDp0YXJnZXRfc2lkPi88aW50OnRhcmdldF9kaWQ+LzxpbnQ6dGFyZ2V0X3NjaWQ+
JywKKyAgICBtZXRob2RzPVsiR0VUIl0sCisgICAgZW5kcG9pbnQ9ImNvbXBhcmUiCispCitAbG9n
aW5fcmVxdWlyZWQKK2RlZiBjb21wYXJlKHRyYW5zX2lkLCBzb3VyY2Vfc2lkLCBzb3VyY2VfZGlk
LCBzb3VyY2Vfc2NpZCwKKyAgICAgICAgICAgIHRhcmdldF9zaWQsIHRhcmdldF9kaWQsIHRhcmdl
dF9zY2lkKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgY29tcGFyZSB0aGUgdHdv
IHNjaGVtYXMuCisgICAgIiIiCisgICAgIyBDaGVjayB0aGUgdHJhbnNhY3Rpb24gYW5kIGNvbm5l
Y3Rpb24gc3RhdHVzCisgICAgc3RhdHVzLCBlcnJvcl9tc2csIGRpZmZfbW9kZWxfb2JqLCBzZXNz
aW9uX29iaiA9IFwKKyAgICAgICAgY2hlY2tfdHJhbnNhY3Rpb25fc3RhdHVzKHRyYW5zX2lkKQor
CisgICAgaWYgZXJyb3JfbXNnID09IGdldHRleHQoJ1RyYW5zYWN0aW9uIElEIG5vdCBmb3VuZCBp
biB0aGUgc2Vzc2lvbi4nKToKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZShzdWNj
ZXNzPTAsIGVycm9ybXNnPWVycm9yX21zZywgc3RhdHVzPTQwNCkKKworICAgIGlmIG5vdCBjaGVj
a192ZXJzaW9uX2NvbXBhdGliaWxpdHkoc291cmNlX3NpZCwgdGFyZ2V0X3NpZCk6CisgICAgICAg
IHJldHVybiBub3RfaW1wbGVtZW50ZWQoZXJyb3Jtc2c9Z2V0dGV4dCgiVmVyc2lvbiBtaXNtYXRj
aC4iKSkKKworICAgIGNvbXBhcmlzb25fcmVzdWx0ID0gW10KKworICAgIGRpZmZfbW9kZWxfb2Jq
LnNldF9jb21wYXJpc29uX2luZm8oIkNvbXBhcmluZyBvYmplY3RzLi4uIiwgMCkKKyAgICB1cGRh
dGVfc2Vzc2lvbl9kaWZmX3RyYW5zYWN0aW9uKHRyYW5zX2lkLCBzZXNzaW9uX29iaiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZfbW9kZWxfb2JqKQorCisgICAgdHJ5
OgorICAgICAgICBhbGxfcmVnaXN0ZXJlZF9ub2RlcyA9IFNjaGVtYURpZmZSZWdpc3RyeS5nZXRf
cmVnaXN0ZXJlZF9ub2RlcygpCisgICAgICAgIG5vZGVfcGVyY2VudCA9IHJvdW5kKDEwMCAvIGxl
bihhbGxfcmVnaXN0ZXJlZF9ub2RlcykpCisgICAgICAgIHRvdGFsX3BlcmNlbnQgPSAwCisKKyAg
ICAgICAgZm9yIG5vZGVfbmFtZSwgbm9kZV92aWV3IGluIGFsbF9yZWdpc3RlcmVkX25vZGVzLml0
ZW1zKCk6CisgICAgICAgICAgICB2aWV3ID0gU2NoZW1hRGlmZlJlZ2lzdHJ5LmdldF9ub2RlX3Zp
ZXcobm9kZV9uYW1lKQorICAgICAgICAgICAgaWYgaGFzYXR0cih2aWV3LCAnY29tcGFyZScpOgor
ICAgICAgICAgICAgICAgIG1zZyA9ICJDb21wYXJpbmcgIiArIHZpZXcuYmx1ZXByaW50LkNPTExF
Q1RJT05fTEFCRUwgKyAiIC4uLiIKKyAgICAgICAgICAgICAgICBkaWZmX21vZGVsX29iai5zZXRf
Y29tcGFyaXNvbl9pbmZvKG1zZywgdG90YWxfcGVyY2VudCkKKyAgICAgICAgICAgICAgICAjIFVw
ZGF0ZSB0aGUgbWVzc2FnZSBhbmQgdG90YWwgcGVyY2VudGFnZSBpbiBzZXNzaW9uIG9iamVjdAor
ICAgICAgICAgICAgICAgIHVwZGF0ZV9zZXNzaW9uX2RpZmZfdHJhbnNhY3Rpb24odHJhbnNfaWQs
IHNlc3Npb25fb2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlmZl9tb2RlbF9vYmopCisKKyAgICAgICAgICAgICAgICByZXMgPSB2aWV3LmNvbXBh
cmUoc291cmNlX3NpZD1zb3VyY2Vfc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzb3VyY2VfZGlkPXNvdXJjZV9kaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNvdXJjZV9zY2lkPXNvdXJjZV9zY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0YXJnZXRfc2lkPXRhcmdldF9zaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRhcmdldF9kaWQ9dGFyZ2V0X2RpZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGFyZ2V0X3NjaWQ9dGFyZ2V0X3NjaWQpCisKKyAgICAgICAgICAgICAg
ICBpZiByZXMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGNvbXBhcmlzb25fcmVz
dWx0ID0gY29tcGFyaXNvbl9yZXN1bHQgKyByZXMKKyAgICAgICAgICAgIHRvdGFsX3BlcmNlbnQg
PSB0b3RhbF9wZXJjZW50ICsgbm9kZV9wZXJjZW50CisKKyAgICAgICAgbXNnID0gIlN1Y2Nlc3Nm
dWxseSBjb21wYXJlIHRoZSBzcGVjaWZpZWQgc2NoZW1hcy4iCisgICAgICAgIHRvdGFsX3BlcmNl
bnQgPSAxMDAKKyAgICAgICAgZGlmZl9tb2RlbF9vYmouc2V0X2NvbXBhcmlzb25faW5mbyhtc2cs
IHRvdGFsX3BlcmNlbnQpCisgICAgICAgICMgVXBkYXRlIHRoZSBtZXNzYWdlIGFuZCB0b3RhbCBw
ZXJjZW50YWdlIGRvbmUgaW4gc2Vzc2lvbiBvYmplY3QKKyAgICAgICAgdXBkYXRlX3Nlc3Npb25f
ZGlmZl90cmFuc2FjdGlvbih0cmFuc19pZCwgc2Vzc2lvbl9vYmosIGRpZmZfbW9kZWxfb2JqKQor
CisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICBhcHAubG9nZ2VyLmV4Y2VwdGlv
bihlKQorCisgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZShkYXRhPWNvbXBhcmlzb25fcmVz
dWx0KQorCisKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9wb2xsLzxpbnQ6dHJhbnNfaWQ+Jywg
bWV0aG9kcz1bIkdFVCJdLCBlbmRwb2ludD0icG9sbCIKKykKK0Bsb2dpbl9yZXF1aXJlZAorZGVm
IHBvbGwodHJhbnNfaWQpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBj
aGVjayB0aGUgc2NoZW1hIGNvbXBhcmlzb24gaXMgY29tcGxldGVkIG9yIG5vdC4KKyAgICA6cGFy
YW0gdHJhbnNfaWQ6CisgICAgOnJldHVybjoKKyAgICAiIiIKKworICAgICMgQ2hlY2sgdGhlIHRy
YW5zYWN0aW9uIGFuZCBjb25uZWN0aW9uIHN0YXR1cworICAgIHN0YXR1cywgZXJyb3JfbXNnLCBk
aWZmX21vZGVsX29iaiwgc2Vzc2lvbl9vYmogPSBcCisgICAgICAgIGNoZWNrX3RyYW5zYWN0aW9u
X3N0YXR1cyh0cmFuc19pZCkKKworICAgIGlmIGVycm9yX21zZyA9PSBnZXR0ZXh0KCdUcmFuc2Fj
dGlvbiBJRCBub3QgZm91bmQgaW4gdGhlIHNlc3Npb24uJyk6CisgICAgICAgIHJldHVybiBtYWtl
X2pzb25fcmVzcG9uc2Uoc3VjY2Vzcz0wLCBlcnJvcm1zZz1lcnJvcl9tc2csIHN0YXR1cz00MDQp
CisKKyAgICBtc2csIGRpZmZfcGVyY2VudGFnZSA9IGRpZmZfbW9kZWxfb2JqLmdldF9jb21wYXJp
c29uX2luZm8oKQorCisgICAgaWYgZGlmZl9wZXJjZW50YWdlID09IDEwMDoKKyAgICAgICAgZGlm
Zl9tb2RlbF9vYmouc2V0X2NvbXBhcmlzb25faW5mbygiQ29tcGFyaW5nIG9iamVjdHMuLi4iLCAw
KQorICAgICAgICB1cGRhdGVfc2Vzc2lvbl9kaWZmX3RyYW5zYWN0aW9uKHRyYW5zX2lkLCBzZXNz
aW9uX29iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmX21v
ZGVsX29iaikKKworICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0YT17J2NvbXBhcmVf
bXNnJzogbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RpZmZfcGVy
Y2VudGFnZSc6IGRpZmZfcGVyY2VudGFnZX0pCisKKworQGJsdWVwcmludC5yb3V0ZSgKKyAgICAn
L2dlbmVyYXRlX3NjcmlwdC88aW50OnRyYW5zX2lkPi8nLAorICAgIG1ldGhvZHM9WyJQT1NUIl0s
CisgICAgZW5kcG9pbnQ9ImdlbmVyYXRlX3NjcmlwdCIKKykKK2RlZiBnZW5lcmF0ZV9zY3JpcHQo
dHJhbnNfaWQpOgorICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSB0aGUgc2NyaXB0
cyBmb3IgdGhlIHNlbGVjdGVkIG9iamVjdHMuIiIiCisgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBp
ZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRzKAorICAgICAgICByZXF1ZXN0LmRhdGEsIGVu
Y29kaW5nPSd1dGYtOCcKKyAgICApCisKKyAgICBzdGF0dXMsIGVycm9yX21zZywgZGlmZl9tb2Rl
bF9vYmosIHNlc3Npb25fb2JqID0gXAorICAgICAgICBjaGVja190cmFuc2FjdGlvbl9zdGF0dXMo
dHJhbnNfaWQpCisKKyAgICBpZiBlcnJvcl9tc2cgPT0gZ2V0dGV4dCgnVHJhbnNhY3Rpb24gSUQg
bm90IGZvdW5kIGluIHRoZSBzZXNzaW9uLicpOgorICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl
c3BvbnNlKHN1Y2Nlc3M9MCwgZXJyb3Jtc2c9ZXJyb3JfbXNnLCBzdGF0dXM9NDA0KQorCisgICAg
c291cmNlX3NpZCA9IGludChkYXRhWydzb3VyY2Vfc2lkJ10pCisgICAgc291cmNlX2RpZCA9IGlu
dChkYXRhWydzb3VyY2VfZGlkJ10pCisgICAgc291cmNlX3NjaWQgPSBpbnQoZGF0YVsnc291cmNl
X3NjaWQnXSkKKyAgICB0YXJnZXRfc2lkID0gaW50KGRhdGFbJ3RhcmdldF9zaWQnXSkKKyAgICB0
YXJnZXRfZGlkID0gaW50KGRhdGFbJ3RhcmdldF9kaWQnXSkKKyAgICB0YXJnZXRfc2NpZCA9IGlu
dChkYXRhWyd0YXJnZXRfc2NpZCddKQorICAgIGRpZmZfZGRsID0gJycKKworICAgIGZvciBkIGlu
IGRhdGFbJ3NlbF9yb3dzJ106CisgICAgICAgIG5vZGVfdHlwZSA9IGRbJ25vZGVfdHlwZSddCisg
ICAgICAgIHNvdXJjZV9vaWQgPSBpbnQoZFsnc291cmNlX29pZCddKQorICAgICAgICB0YXJnZXRf
b2lkID0gaW50KGRbJ3RhcmdldF9vaWQnXSkKKyAgICAgICAgY29tcF9zdGF0dXMgPSBkWydjb21w
X3N0YXR1cyddCisKKyAgICAgICAgdmlldyA9IFNjaGVtYURpZmZSZWdpc3RyeS5nZXRfbm9kZV92
aWV3KG5vZGVfdHlwZSkKKyAgICAgICAgaWYgdmlldyBhbmQgaGFzYXR0cih2aWV3LCAnZGRsX2Nv
bXBhcmUnKSBhbmQgXAorICAgICAgICAgICAgICAgIGNvbXBfc3RhdHVzICE9IFNjaGVtYURpZmZN
b2RlbC5DT01QQVJJU09OX1NUQVRVU1snaWRlbnRpY2FsJ106CisgICAgICAgICAgICBzcWwgPSB2
aWV3LmRkbF9jb21wYXJlKHNvdXJjZV9zaWQ9c291cmNlX3NpZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc291cmNlX2RpZD1zb3VyY2VfZGlkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc2NpZD1zb3VyY2Vfc2NpZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3NpZD10YXJnZXRfc2lkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZGlkPXRhcmdldF9kaWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9zY2lkPXRhcmdldF9zY2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfb2lkPXNvdXJjZV9vaWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9vaWQ9dGFyZ2V0X29pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcF9zdGF0dXM9Y29tcF9zdGF0
dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlX3NjcmlwdD1U
cnVlKQorCisgICAgICAgICAgICBkaWZmX2RkbCArPSBzcWxbJ2RpZmZfZGRsJ10KKworICAgIHJl
dHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICBzdGF0dXM9MjAwLAorICAgICAgICByZXNwb25z
ZT17J2RpZmZfZGRsJzogZGlmZl9kZGx9CisgICAgKQorCisKK0BibHVlcHJpbnQucm91dGUoCisg
ICAgJy9kZGxfY29tcGFyZS88aW50OnRyYW5zX2lkPi88aW50OnNvdXJjZV9zaWQ+LzxpbnQ6c291
cmNlX2RpZD4vJworICAgICc8aW50OnNvdXJjZV9zY2lkPi88aW50OnRhcmdldF9zaWQ+LzxpbnQ6
dGFyZ2V0X2RpZD4vPGludDp0YXJnZXRfc2NpZD4vJworICAgICc8aW50OnNvdXJjZV9vaWQ+Lzxp
bnQ6dGFyZ2V0X29pZD4vPG5vZGVfdHlwZT4vPGNvbXBfc3RhdHVzPi8nLAorICAgIG1ldGhvZHM9
WyJHRVQiXSwKKyAgICBlbmRwb2ludD0iZGRsX2NvbXBhcmUiCispCitAbG9naW5fcmVxdWlyZWQK
K2RlZiBkZGxfY29tcGFyZSh0cmFuc19pZCwgc291cmNlX3NpZCwgc291cmNlX2RpZCwgc291cmNl
X3NjaWQsCisgICAgICAgICAgICAgICAgdGFyZ2V0X3NpZCwgdGFyZ2V0X2RpZCwgdGFyZ2V0X3Nj
aWQsIHNvdXJjZV9vaWQsCisgICAgICAgICAgICAgICAgdGFyZ2V0X29pZCwgbm9kZV90eXBlLCBj
b21wX3N0YXR1cyk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNvbXBh
cmUgdGhlIHNwZWNpZmllZCBvYmplY3QgYW5kIHJldHVybiB0aGUKKyAgICBEREwgY29tcGFyaXNv
bi4KKyAgICAiIiIKKyAgICAjIENoZWNrIHRoZSB0cmFuc2FjdGlvbiBhbmQgY29ubmVjdGlvbiBz
dGF0dXMKKyAgICBzdGF0dXMsIGVycm9yX21zZywgZGlmZl9tb2RlbF9vYmosIHNlc3Npb25fb2Jq
ID0gXAorICAgICAgICBjaGVja190cmFuc2FjdGlvbl9zdGF0dXModHJhbnNfaWQpCisKKyAgICBp
ZiBlcnJvcl9tc2cgPT0gZ2V0dGV4dCgnVHJhbnNhY3Rpb24gSUQgbm90IGZvdW5kIGluIHRoZSBz
ZXNzaW9uLicpOgorICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKHN1Y2Nlc3M9MCwg
ZXJyb3Jtc2c9ZXJyb3JfbXNnLCBzdGF0dXM9NDA0KQorCisgICAgc291cmNlX2RkbCA9ICcnCisg
ICAgdGFyZ2V0X2RkbCA9ICcnCisgICAgZGlmZl9kZGwgPSAnJworCisgICAgdmlldyA9IFNjaGVt
YURpZmZSZWdpc3RyeS5nZXRfbm9kZV92aWV3KG5vZGVfdHlwZSkKKyAgICBpZiB2aWV3IGFuZCBo
YXNhdHRyKHZpZXcsICdkZGxfY29tcGFyZScpOgorICAgICAgICBzcWwgPSB2aWV3LmRkbF9jb21w
YXJlKHNvdXJjZV9zaWQ9c291cmNlX3NpZCwgc291cmNlX2RpZD1zb3VyY2VfZGlkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zY2lkPXNvdXJjZV9zY2lkLCB0YXJnZXRf
c2lkPXRhcmdldF9zaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2Rp
ZD10YXJnZXRfZGlkLCB0YXJnZXRfc2NpZD10YXJnZXRfc2NpZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzb3VyY2Vfb2lkPXNvdXJjZV9vaWQsIHRhcmdldF9vaWQ9dGFyZ2V0X29p
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wX3N0YXR1cz1jb21wX3N0YXR1
cykKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICBzdGF0dXM9MjAw
LAorICAgICAgICAgICAgcmVzcG9uc2U9eydzb3VyY2VfZGRsJzogc3FsWydzb3VyY2VfZGRsJ10s
CisgICAgICAgICAgICAgICAgICAgICAgJ3RhcmdldF9kZGwnOiBzcWxbJ3RhcmdldF9kZGwnXSwK
KyAgICAgICAgICAgICAgICAgICAgICAnZGlmZl9kZGwnOiBzcWxbJ2RpZmZfZGRsJ119CisgICAg
ICAgICkKKworICAgIG1zZyA9IGdldHRleHQoJ1NlbGVjdGVkIG9iamVjdCBpcyBub3Qgc3VwcG9y
dGVkIGZvciBEREwgY29tcGFyaXNvbi4nKQorCisgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisg
ICAgICAgIHN0YXR1cz0yMDAsCisgICAgICAgIHJlc3BvbnNlPXsnc291cmNlX2RkbCc6IG1zZywK
KyAgICAgICAgICAgICAgICAgICd0YXJnZXRfZGRsJzogbXNnLAorICAgICAgICAgICAgICAgICAg
J2RpZmZfZGRsJzogbXNnCisgICAgICAgICAgICAgICAgICB9CisgICAgKQorCisKK2RlZiBjaGVj
a192ZXJzaW9uX2NvbXBhdGliaWxpdHkoc2lkLCB0aWQpOgorICAgICIiIkNoZWNrIHRoZSB2ZXJz
aW9uIGNvbXBhdGliaWxpdHkgb2Ygc291cmNlIGFuZCB0YXJnZXQgc2VydmVycy4iIiIKKworICAg
IGRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpCisgICAgc3JjX3NlcnZlciA9
IFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoaWQ9c2lkKS5maXJzdCgpCisgICAgc3JjX21hbmFnZXIg
PSBkcml2ZXIuY29ubmVjdGlvbl9tYW5hZ2VyKHNyY19zZXJ2ZXIuaWQpCisKKyAgICB0YXJfc2Vy
dmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD10aWQpLmZpcnN0KCkKKyAgICB0YXJfbWFu
YWdlciA9IGRyaXZlci5jb25uZWN0aW9uX21hbmFnZXIodGFyX3NlcnZlci5pZCkKKworICAgIHNy
Y19zZXJ2ZXJfdmVyc2lvbiA9IHNyY19tYW5hZ2VyLnZlcnNpb24KKyAgICB0YXJfc2VydmVyX3Zl
cnNpb24gPSB0YXJfbWFuYWdlci52ZXJzaW9uCisKKyAgICBzZXJ2ZXJfdmVyc2lvbnMgPSBbMTIw
MDAwLCAxMTAwMDAsIDEwMDAwMCwgOTA2MDAsIDkwNTAwLCA5MDQwMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgOTAzMDAsIDkwMjAwLCA5MDEwMCwgOTAwMDBdCisKKyAgICBmb3IgdmVyc2lvbiBp
biBzZXJ2ZXJfdmVyc2lvbnM6CisgICAgICAgIGlmIHZlcnNpb24gPiBzcmNfc2VydmVyX3ZlcnNp
b246CisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIHNyY19zZXJ2ZXJfdmVyc2lvbiA9
IHZlcnNpb24KKyAgICAgICAgYnJlYWsKKworICAgIGZvciB2ZXJzaW9uIGluIHNlcnZlcl92ZXJz
aW9uczoKKyAgICAgICAgaWYgdmVyc2lvbiA+IHRhcl9zZXJ2ZXJfdmVyc2lvbjoKKyAgICAgICAg
ICAgIGNvbnRpbnVlCisKKyAgICAgICAgdGFyX3NlcnZlcl92ZXJzaW9uID0gdmVyc2lvbgorICAg
ICAgICBicmVhaworCisgICAgaWYgc3JjX3NlcnZlcl92ZXJzaW9uID09IHRhcl9zZXJ2ZXJfdmVy
c2lvbjoKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBh
L3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL2NvbXBhcmUucHkgYi93ZWIvcGdhZG1pbi90
b29scy9zY2hlbWFfZGlmZi9jb21wYXJlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMC4uNDI0ZTIyOWU4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMv
c2NoZW1hX2RpZmYvY29tcGFyZS5weQpAQCAtMCwwICsxLDIxMiBAQAorIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMp
IDIwMTMgLSAyMDE5LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdh
cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMKKworIiIiIEltcGxlbWVudHMgVXRpbGl0eSBjbGFzcyBmb3IgVGFibGUgYW5kIFBh
cnRpdGlvbmVkIFRhYmxlLiAiIiIKKworaW1wb3J0IGNvcHkKKworZnJvbSBmbGFzayBpbXBvcnQg
cmVuZGVyX3RlbXBsYXRlCitmcm9tIHBnYWRtaW4udXRpbHMuY29tcGlsZV90ZW1wbGF0ZV9uYW1l
IGltcG9ydCBjb21waWxlX3RlbXBsYXRlX3BhdGgKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2ZXIg
aW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgor
ZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLmRpcmVjdG9yeV9jb21wYXJlIGltcG9ydCBj
b21wYXJlX2RpY3Rpb25hcmllcyxcCisgICAgZGlyZWN0b3J5X2RpZmYKK2Zyb20gcGdhZG1pbi50
b29scy5zY2hlbWFfZGlmZi5tb2RlbCBpbXBvcnQgU2NoZW1hRGlmZk1vZGVsCitmcm9tIGFiYyBp
bXBvcnQgYWJzdHJhY3RtZXRob2QKKworCitjbGFzcyBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSgp
OgorCisgICAga2V5c190b19pZ25vcmUgPSBbJ29pZCcsICdzY2hlbWEnXQorCisgICAgQHN0YXRp
Y21ldGhvZAorICAgIGRlZiBnZXRfc2NoZW1hKHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIi
CisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIHNjaGVtYSBuYW1lLgorICAg
ICAgICAiIiIKKworICAgICAgICBkcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVS
KQorICAgICAgICBtYW5hZ2VyID0gZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihzaWQpCisgICAg
ICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWRpZCkKKworICAgICAgICB2ZXIgPSBt
YW5hZ2VyLnZlcnNpb24KKyAgICAgICAgc2VydmVyX3R5cGUgPSBtYW5hZ2VyLnNlcnZlcl90eXBl
CisKKyAgICAgICAgIyBGZXRjaCBzY2hlbWEgbmFtZQorICAgICAgICBzdGF0dXMsIHNjaGVtYV9u
YW1lID0gY29ubi5leGVjdXRlX3NjYWxhcigKKyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgK
KyAgICAgICAgICAgICAgICAiLyIuam9pbihbJ3NjaGVtYXMnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAnezB9LyN7MX0jJy5mb3JtYXQoc2VydmVyX3R5cGUsIHZlciksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICdzcWwvZ2V0X25hbWUuc3FsJ10pLAorICAgICAgICAgICAgICAgIGNv
bm49Y29ubiwgc2NpZD1zY2lkCisgICAgICAgICAgICApCisgICAgICAgICkKKworICAgICAgICBy
ZXR1cm4gc3RhdHVzLCBzY2hlbWFfbmFtZQorCisgICAgZGVmIGNvbXBhcmUoc2VsZiwgKiprd2Fy
Z3MpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNvbXBh
cmUgYWxsIHRoZSBvYmplY3RzCisgICAgICAgIGZyb20gdHdvIGRpZmZlcmVudCBzY2hlbWFzLgor
CisgICAgICAgIDpwYXJhbSBrd2FyZ3M6CisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIiIgor
CisgICAgICAgIHNvdXJjZV9wYXJhbXMgPSB7J3NpZCc6IGt3YXJncy5nZXQoJ3NvdXJjZV9zaWQn
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzoga3dhcmdzLmdldCgnc291cmNlX2Rp
ZCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICdzY2lkJzoga3dhcmdzLmdldCgnc291cmNl
X3NjaWQnKQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICB0YXJnZXRfcGFy
YW1zID0geydzaWQnOiBrd2FyZ3MuZ2V0KCd0YXJnZXRfc2lkJyksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2RpZCc6IGt3YXJncy5nZXQoJ3RhcmdldF9kaWQnKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAnc2NpZCc6IGt3YXJncy5nZXQoJ3RhcmdldF9zY2lkJykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgaWYgJ3NvdXJjZV90aWQnIGluIGt3YXJnczoKKyAg
ICAgICAgICAgIHNvdXJjZV9wYXJhbXNbJ3RpZCddID0ga3dhcmdzWydzb3VyY2VfdGlkJ10KKyAg
ICAgICAgaWYgJ3RhcmdldF90aWQnIGluIGt3YXJnczoKKyAgICAgICAgICAgIHRhcmdldF9wYXJh
bXNbJ3RpZCddID0ga3dhcmdzWyd0YXJnZXRfdGlkJ10KKworICAgICAgICBzb3VyY2UgPSBzZWxm
LmZldGNoX29iamVjdHNfdG9fY29tcGFyZSgqKnNvdXJjZV9wYXJhbXMpCisKKyAgICAgICAgdGFy
Z2V0ID0gc2VsZi5mZXRjaF9vYmplY3RzX3RvX2NvbXBhcmUoKip0YXJnZXRfcGFyYW1zKQorCisg
ICAgICAgICMgSWYgYm90aCB0aGUgZGljdCBoYXZlIG5vIGl0ZW1zIHRoZW4gcmV0dXJuIE5vbmUu
CisgICAgICAgIGlmIG5vdCAoc291cmNlIG9yIHRhcmdldCkgb3IgKAorICAgICAgICAgICAgICAg
IGxlbihzb3VyY2UpIDw9IDAgYW5kIGxlbih0YXJnZXQpIDw9IDApOgorICAgICAgICAgICAgcmV0
dXJuIE5vbmUKKworICAgICAgICByZXR1cm4gY29tcGFyZV9kaWN0aW9uYXJpZXMoc291cmNlLCB0
YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5vZGVfdHlw
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LkNP
TExFQ1RJT05fTEFCRUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LmtleXNfdG9faWdub3JlKQorCisgICAgZGVmIGRkbF9jb21wYXJlKHNlbGYsICoqa3dhcmdzKToK
KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBjb21wYXJlIGluZGV4IHBy
b3BlcnRpZXMgYW5kCisgICAgICAgICByZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgU1FMCisgICAg
ICAgICIiIgorCisgICAgICAgIHNvdXJjZSA9ICcnCisgICAgICAgIHRhcmdldCA9ICcnCisgICAg
ICAgIGRpZmYgPSAnJworICAgICAgICBjb21wX3N0YXR1cyA9IGt3YXJncy5nZXQoJ2NvbXBfc3Rh
dHVzJykKKyAgICAgICAgb25seV9kaWZmID0gRmFsc2UKKyAgICAgICAgZ2VuZXJhdGVfc2NyaXB0
ID0gRmFsc2UKKworICAgICAgICBzb3VyY2VfcGFyYW1zID0geydnaWQnOiAxLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICdzaWQnOiBrd2FyZ3MuZ2V0KCdzb3VyY2Vfc2lkJyksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2RpZCc6IGt3YXJncy5nZXQoJ3NvdXJjZV9kaWQnKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IGt3YXJncy5nZXQoJ3NvdXJjZV9zY2lkJyksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgJ29pZCc6IGt3YXJncy5nZXQoJ3NvdXJjZV9vaWQnKQor
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICB0YXJnZXRfcGFyYW1zID0geydn
aWQnOiAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICdzaWQnOiBrd2FyZ3MuZ2V0KCd0YXJn
ZXRfc2lkJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGt3YXJncy5nZXQoJ3Rh
cmdldF9kaWQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IGt3YXJncy5nZXQo
J3RhcmdldF9zY2lkJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ29pZCc6IGt3YXJncy5n
ZXQoJ3RhcmdldF9vaWQnKQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICBp
ZiAnc291cmNlX3RpZCcgaW4ga3dhcmdzOgorICAgICAgICAgICAgc291cmNlX3BhcmFtc1sndGlk
J10gPSBrd2FyZ3NbJ3NvdXJjZV90aWQnXQorICAgICAgICAgICAgb25seV9kaWZmID0gVHJ1ZQor
ICAgICAgICBpZiAndGFyZ2V0X3RpZCcgaW4ga3dhcmdzOgorICAgICAgICAgICAgdGFyZ2V0X3Bh
cmFtc1sndGlkJ10gPSBrd2FyZ3NbJ3RhcmdldF90aWQnXQorICAgICAgICAgICAgb25seV9kaWZm
ID0gVHJ1ZQorCisgICAgICAgIGlmICdnZW5lcmF0ZV9zY3JpcHQnIGluIGt3YXJncyBhbmQga3dh
cmdzWydnZW5lcmF0ZV9zY3JpcHQnXToKKyAgICAgICAgICAgIGdlbmVyYXRlX3NjcmlwdCA9IFRy
dWUKKworICAgICAgICBzb3VyY2VfcGFyYW1zX2FkdiA9IGNvcHkuZGVlcGNvcHkoc291cmNlX3Bh
cmFtcykKKyAgICAgICAgdGFyZ2V0X3BhcmFtc19hZHYgPSBjb3B5LmRlZXBjb3B5KHRhcmdldF9w
YXJhbXMpCisKKyAgICAgICAgZGVsIHNvdXJjZV9wYXJhbXNfYWR2WydnaWQnXQorICAgICAgICBk
ZWwgdGFyZ2V0X3BhcmFtc19hZHZbJ2dpZCddCisKKyAgICAgICAgc3RhdHVzLCB0YXJnZXRfc2No
ZW1hID0gc2VsZi5nZXRfc2NoZW1hKGt3YXJncy5nZXQoJ3RhcmdldF9zaWQnKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJncy5nZXQoJ3Rhcmdl
dF9kaWQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGt3YXJncy5nZXQoJ3RhcmdldF9zY2lkJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg
IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9dGFyZ2V0X3NjaGVtYSkKKwor
ICAgICAgICBpZiBjb21wX3N0YXR1cyA9PSBTY2hlbWFEaWZmTW9kZWwuQ09NUEFSSVNPTl9TVEFU
VVNbJ3NvdXJjZV9vbmx5J106CisgICAgICAgICAgICBpZiBub3QgZ2VuZXJhdGVfc2NyaXB0Ogor
ICAgICAgICAgICAgICAgIHNvdXJjZSA9IHNlbGYuZ2V0X3NxbF9mcm9tX2RpZmYoKipzb3VyY2Vf
cGFyYW1zKQorICAgICAgICAgICAgc291cmNlX3BhcmFtcy51cGRhdGUoeworICAgICAgICAgICAg
ICAgICdkaWZmX3NjaGVtYSc6IHRhcmdldF9zY2hlbWEKKyAgICAgICAgICAgIH0pCisgICAgICAg
ICAgICBkaWZmID0gc2VsZi5nZXRfc3FsX2Zyb21fZGlmZigqKnNvdXJjZV9wYXJhbXMpCisKKyAg
ICAgICAgZWxpZiBjb21wX3N0YXR1cyA9PSBTY2hlbWFEaWZmTW9kZWwuQ09NUEFSSVNPTl9TVEFU
VVNbJ3RhcmdldF9vbmx5J106CisgICAgICAgICAgICBpZiBub3QgZ2VuZXJhdGVfc2NyaXB0Ogor
ICAgICAgICAgICAgICAgIHRhcmdldCA9IHNlbGYuZ2V0X3NxbF9mcm9tX2RpZmYoKip0YXJnZXRf
cGFyYW1zKQorICAgICAgICAgICAgdGFyZ2V0X3BhcmFtcy51cGRhdGUoCisgICAgICAgICAgICAg
ICAgeydkcm9wX3NxbCc6IFRydWV9KQorICAgICAgICAgICAgZGlmZiA9IHNlbGYuZ2V0X3NxbF9m
cm9tX2RpZmYoKip0YXJnZXRfcGFyYW1zKQorCisgICAgICAgIGVsaWYgY29tcF9zdGF0dXMgPT0g
U2NoZW1hRGlmZk1vZGVsLkNPTVBBUklTT05fU1RBVFVTWydkaWZmZXJlbnQnXToKKyAgICAgICAg
ICAgIHNvdXJjZSA9IHNlbGYuZmV0Y2hfb2JqZWN0c190b19jb21wYXJlKCoqc291cmNlX3BhcmFt
c19hZHYpCisgICAgICAgICAgICB0YXJnZXQgPSBzZWxmLmZldGNoX29iamVjdHNfdG9fY29tcGFy
ZSgqKnRhcmdldF9wYXJhbXNfYWR2KQorCisgICAgICAgICAgICBpZiBub3QgKHNvdXJjZSBvciB0
YXJnZXQpOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgICAgIGRpZmZf
ZGljdCA9IGRpcmVjdG9yeV9kaWZmKHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlnbm9yZV9rZXlzPXNlbGYua2V5c190b19pZ25vcmUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkaWZmZXJlbmNlPXt9CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIGRpZmZfZGljdC51cGRhdGUoc2VsZi5w
YXJjZV9hY2woc291cmNlLCB0YXJnZXQpKQorCisgICAgICAgICAgICBpZiBub3QgZ2VuZXJhdGVf
c2NyaXB0OgorICAgICAgICAgICAgICAgIHNvdXJjZSA9IHNlbGYuZ2V0X3NxbF9mcm9tX2RpZmYo
Kipzb3VyY2VfcGFyYW1zKQorICAgICAgICAgICAgICAgIHRhcmdldCA9IHNlbGYuZ2V0X3NxbF9m
cm9tX2RpZmYoKip0YXJnZXRfcGFyYW1zKQorCisgICAgICAgICAgICB0YXJnZXRfcGFyYW1zLnVw
ZGF0ZSgKKyAgICAgICAgICAgICAgICB7J2RhdGEnOiBkaWZmX2RpY3R9KQorICAgICAgICAgICAg
ZGlmZiA9IHNlbGYuZ2V0X3NxbF9mcm9tX2RpZmYoKip0YXJnZXRfcGFyYW1zKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgc291cmNlID0gc2VsZi5nZXRfc3FsX2Zyb21fZGlmZigqKnNvdXJj
ZV9wYXJhbXMpCisgICAgICAgICAgICB0YXJnZXQgPSBzZWxmLmdldF9zcWxfZnJvbV9kaWZmKCoq
dGFyZ2V0X3BhcmFtcykKKworICAgICAgICBpZiBvbmx5X2RpZmY6CisgICAgICAgICAgICByZXR1
cm4gZGlmZgorCisgICAgICAgIHJldHVybiB7J3NvdXJjZV9kZGwnOiBzb3VyY2UsCisgICAgICAg
ICAgICAgICAgJ3RhcmdldF9kZGwnOiB0YXJnZXQsCisgICAgICAgICAgICAgICAgJ2RpZmZfZGRs
JzogZGlmZgorICAgICAgICAgICAgICAgIH0KKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYg
cGFyY2VfYWNsKHNvdXJjZSwgdGFyZ2V0KToKKyAgICAgICAga2V5ID0gJ2FjbCcKKworICAgICAg
ICBpZiAnZGF0YWNsJyBpbiBzb3VyY2U6CisgICAgICAgICAgICBrZXkgPSAnZGF0YWNsJworICAg
ICAgICBlbGlmICdyZWxhY2wnIGluIHNvdXJjZToKKyAgICAgICAgICAgIGtleSA9ICdyZWxhY2wn
CisKKyAgICAgICAgdG1wX3NvdXJjZSA9IHNvdXJjZVtrZXldIGlmXAorICAgICAgICAgICAga2V5
IGluIHNvdXJjZSBhbmQgc291cmNlW2tleV0gaXMgbm90IE5vbmUgZWxzZSBbXQorICAgICAgICB0
bXBfdGFyZ2V0ID0gY29weS5kZWVwY29weSh0YXJnZXRba2V5XSkgaWZcCisgICAgICAgICAgICBr
ZXkgaW4gdGFyZ2V0IGFuZCB0YXJnZXRba2V5XSBpcyBub3QgTm9uZSBlbHNlIFtdCisKKyAgICAg
ICAgZGlmZiA9IHsnYWRkZWQnOiBbXSwgJ2RlbGV0ZWQnOiBbXX0KKyAgICAgICAgZm9yIGFjbCBp
biB0bXBfc291cmNlOgorICAgICAgICAgICAgaWYgYWNsIGluIHRtcF90YXJnZXQ6CisgICAgICAg
ICAgICAgICAgdG1wX3RhcmdldC5yZW1vdmUoYWNsKQorICAgICAgICAgICAgZWxpZiBhY2wgbm90
IGluIHRtcF90YXJnZXQ6CisgICAgICAgICAgICAgICAgZGlmZlsnYWRkZWQnXS5hcHBlbmQoYWNs
KQorICAgICAgICBkaWZmWydkZWxldGVkJ10gPSB0bXBfdGFyZ2V0CisKKyAgICAgICAgcmV0dXJu
IHtrZXk6IGRpZmZ9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9k
aXJlY3RvcnlfY29tcGFyZS5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL2RpcmVj
dG9yeV9jb21wYXJlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZWVi
NDk1ZDM2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYv
ZGlyZWN0b3J5X2NvbXBhcmUucHkKQEAgLTAsMCArMSwyNzkgQEAKKyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAy
MDEzIC0gMjAxOSwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJl
IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjCisKKyIiIkRpcmVjdG9yeSBjb21wYXJpc29uIiIiCisKK2ltcG9ydCBjb3B5Citmcm9t
IHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYubW9kZWwgaW1wb3J0IFNjaGVtYURpZmZNb2RlbAor
Citjb3VudCA9IDEKKworCitkZWYgY29tcGFyZV9kaWN0aW9uYXJpZXMoc291cmNlX2RpY3QsIHRh
cmdldF9kaWN0LCBub2RlLCBub2RlX2xhYmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgIGln
bm9yZV9rZXlzPU5vbmUpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBjb21wYXJl
IHRoZSB0d28gZGljdGlvbmFyaWVzLgorCisgICAgOnBhcmFtIHNvdXJjZV9kaWN0OiBGaXJzdCBE
aWN0aW9uYXJ5CisgICAgOnBhcmFtIHRhcmdldF9kaWN0OiBTZWNvbmQgRGljdGlvbmFyeQorICAg
IDpwYXJhbSBub2RlOiBub2RlIHR5cGUKKyAgICA6cGFyYW0gaWdub3JlX2tleXM6IExpc3Qgb2Yg
a2V5cyB0aGF0IHdpbGwgYmUgaWdub3JlZCB3aGlsZSBjb21wYXJpbmcKKyAgICA6cmV0dXJuOgor
ICAgICIiIgorCisgICAgZGljdDEgPSBjb3B5LmRlZXBjb3B5KHNvdXJjZV9kaWN0KQorICAgIGRp
Y3QyID0gY29weS5kZWVwY29weSh0YXJnZXRfZGljdCkKKworICAgICMgRmluZCB0aGUgZHVwbGlj
YXRlIGtleXMgaW4gYm90aCB0aGUgZGljdGlvbmFyaWVzCisgICAgZGljdDFfa2V5cyA9IHNldChk
aWN0MS5rZXlzKCkpCisgICAgZGljdDJfa2V5cyA9IHNldChkaWN0Mi5rZXlzKCkpCisgICAgaW50
ZXJzZWN0X2tleXMgPSBkaWN0MV9rZXlzLmludGVyc2VjdGlvbihkaWN0Ml9rZXlzKQorCisgICAg
IyBLZXlzIHRoYXQgYXJlIGF2YWlsYWJsZSBpbiBzb3VyY2UgYW5kIG1pc3NpbmcgaW4gdGFyZ2V0
LgorICAgIHNvdXJjZV9vbmx5ID0gW10KKyAgICBhZGRlZCA9IGRpY3QxX2tleXMgLSBkaWN0Ml9r
ZXlzCisgICAgZ2xvYmFsIGNvdW50CisgICAgZm9yIGl0ZW0gaW4gYWRkZWQ6CisgICAgICAgIHNv
dXJjZV9vbmx5LmFwcGVuZCh7CisgICAgICAgICAgICAnaWQnOiBjb3VudCwKKyAgICAgICAgICAg
ICd0eXBlJzogbm9kZSwKKyAgICAgICAgICAgICdsYWJlbCc6IG5vZGVfbGFiZWwsCisgICAgICAg
ICAgICAndGl0bGUnOiBpdGVtLAorICAgICAgICAgICAgJ29pZCc6IHNvdXJjZV9kaWN0W2l0ZW1d
WydvaWQnXSwKKyAgICAgICAgICAgICdzdGF0dXMnOiBTY2hlbWFEaWZmTW9kZWwuQ09NUEFSSVNP
Tl9TVEFUVVNbJ3NvdXJjZV9vbmx5J10KKyAgICAgICAgfSkKKyAgICAgICAgY291bnQgKz0gMQor
CisgICAgdGFyZ2V0X29ubHkgPSBbXQorICAgICMgS2V5cyB0aGF0IGFyZSBhdmFpbGFibGUgaW4g
dGFyZ2V0IGFuZCBtaXNzaW5nIGluIHNvdXJjZS4KKyAgICByZW1vdmVkID0gZGljdDJfa2V5cyAt
IGRpY3QxX2tleXMKKyAgICBmb3IgaXRlbSBpbiByZW1vdmVkOgorICAgICAgICB0YXJnZXRfb25s
eS5hcHBlbmQoeworICAgICAgICAgICAgJ2lkJzogY291bnQsCisgICAgICAgICAgICAndHlwZSc6
IG5vZGUsCisgICAgICAgICAgICAnbGFiZWwnOiBub2RlX2xhYmVsLAorICAgICAgICAgICAgJ3Rp
dGxlJzogaXRlbSwKKyAgICAgICAgICAgICdvaWQnOiB0YXJnZXRfZGljdFtpdGVtXVsnb2lkJ10s
CisgICAgICAgICAgICAnc3RhdHVzJzogU2NoZW1hRGlmZk1vZGVsLkNPTVBBUklTT05fU1RBVFVT
Wyd0YXJnZXRfb25seSddCisgICAgICAgIH0pCisgICAgICAgIGNvdW50ICs9IDEKKworICAgICMg
Q29tcGFyZSB0aGUgdmFsdWVzIG9mIGR1cGxpY2F0ZXMga2V5cy4KKyAgICBpZGVudGljYWwgPSBb
XQorICAgIGRpZmZlcmVudCA9IFtdCisgICAgZm9yIGtleSBpbiBpbnRlcnNlY3Rfa2V5czoKKyAg
ICAgICAgIyBpZ25vcmUgdGhlIGtleXMgaWYgYXZhaWxhYmxlLgorICAgICAgICBmb3IgaWdfa2V5
IGluIGlnbm9yZV9rZXlzOgorICAgICAgICAgICAgaWYgaWdfa2V5IGluIGRpY3QxW2tleV06Cisg
ICAgICAgICAgICAgICAgZGljdDFba2V5XS5wb3AoaWdfa2V5KQorICAgICAgICAgICAgaWYgaWdf
a2V5IGluIGRpY3QyW2tleV06CisgICAgICAgICAgICAgICAgZGljdDJba2V5XS5wb3AoaWdfa2V5
KQorCisgICAgICAgICMgUmVjdXJzaXZlbHkgQ29tcGFyZSB0aGUgdHdvIGRpY3Rpb25hcnkKKyAg
ICAgICAgaWYgYXJlX2RpY3Rpb25hcmllc19pZGVudGljYWwoZGljdDFba2V5XSwgZGljdDJba2V5
XSwgaWdub3JlX2tleXMpOgorICAgICAgICAgICAgaWRlbnRpY2FsLmFwcGVuZCh7CisgICAgICAg
ICAgICAgICAgJ2lkJzogY291bnQsCisgICAgICAgICAgICAgICAgJ3R5cGUnOiBub2RlLAorICAg
ICAgICAgICAgICAgICdsYWJlbCc6IG5vZGVfbGFiZWwsCisgICAgICAgICAgICAgICAgJ3RpdGxl
Jzoga2V5LAorICAgICAgICAgICAgICAgICdvaWQnOiBzb3VyY2VfZGljdFtrZXldWydvaWQnXSwK
KyAgICAgICAgICAgICAgICAnc291cmNlX29pZCc6IHNvdXJjZV9kaWN0W2tleV1bJ29pZCddLAor
ICAgICAgICAgICAgICAgICd0YXJnZXRfb2lkJzogdGFyZ2V0X2RpY3Rba2V5XVsnb2lkJ10sCisg
ICAgICAgICAgICAgICAgJ3N0YXR1cyc6IFNjaGVtYURpZmZNb2RlbC5DT01QQVJJU09OX1NUQVRV
U1snaWRlbnRpY2FsJ10KKyAgICAgICAgICAgIH0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBkaWZmZXJlbnQuYXBwZW5kKHsKKyAgICAgICAgICAgICAgICAnaWQnOiBjb3VudCwKKyAgICAg
ICAgICAgICAgICAndHlwZSc6IG5vZGUsCisgICAgICAgICAgICAgICAgJ2xhYmVsJzogbm9kZV9s
YWJlbCwKKyAgICAgICAgICAgICAgICAndGl0bGUnOiBrZXksCisgICAgICAgICAgICAgICAgJ29p
ZCc6IHNvdXJjZV9kaWN0W2tleV1bJ29pZCddLAorICAgICAgICAgICAgICAgICdzb3VyY2Vfb2lk
Jzogc291cmNlX2RpY3Rba2V5XVsnb2lkJ10sCisgICAgICAgICAgICAgICAgJ3RhcmdldF9vaWQn
OiB0YXJnZXRfZGljdFtrZXldWydvaWQnXSwKKyAgICAgICAgICAgICAgICAnc3RhdHVzJzogU2No
ZW1hRGlmZk1vZGVsLkNPTVBBUklTT05fU1RBVFVTWydkaWZmZXJlbnQnXQorICAgICAgICAgICAg
fSkKKyAgICAgICAgY291bnQgKz0gMQorCisgICAgcmV0dXJuIHNvdXJjZV9vbmx5ICsgdGFyZ2V0
X29ubHkgKyBkaWZmZXJlbnQgKyBpZGVudGljYWwKKworCitkZWYgYXJlX2xpc3RzX2lkZW50aWNh
bChzb3VyY2VfbGlzdCwgdGFyZ2V0X2xpc3QsIGlnbm9yZV9rZXlzKToKKyAgICAiIiIKKyAgICBU
aGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY29tcGFyZSB0d28gbGlzdC4KKyAgICA6cGFyYW0gc291
cmNlX2xpc3Q6CisgICAgOnBhcmFtIHRhcmdldF9saXN0OgorICAgIDpyZXR1cm46CisgICAgIiIi
CisgICAgaWYgc291cmNlX2xpc3QgaXMgTm9uZSBvciB0YXJnZXRfbGlzdCBpcyBOb25lIG9yIFwK
KyAgICAgICAgICAgIGxlbihzb3VyY2VfbGlzdCkgIT0gbGVuKHRhcmdldF9saXN0KToKKyAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgZWxzZToKKyAgICAgICAgZm9yIGluZGV4IGluIHJhbmdlKGxl
bihzb3VyY2VfbGlzdCkpOgorICAgICAgICAgICAgIyBDaGVjayB0aGUgdHlwZSBvZiB0aGUgdmFs
dWUgaWYgaXQgaXMgYW4gZGljdGlvbmFyeSB0aGVuCisgICAgICAgICAgICAjIGNhbGwgYXJlX2Rp
Y3Rpb25hcmllc19pZGVudGljYWwoKSBmdW5jdGlvbi4KKyAgICAgICAgICAgIGlmIHR5cGUoc291
cmNlX2xpc3RbaW5kZXhdKSBpcyBkaWN0OgorICAgICAgICAgICAgICAgIGlmIG5vdCBhcmVfZGlj
dGlvbmFyaWVzX2lkZW50aWNhbChzb3VyY2VfbGlzdFtpbmRleF0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9saXN0W2luZGV4XSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlX2tl
eXMpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgaWYgc291cmNlX2xpc3RbaW5kZXhdICE9IHRhcmdldF9saXN0W2lu
ZGV4XToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJuIFRydWUK
KworCitkZWYgYXJlX2RpY3Rpb25hcmllc19pZGVudGljYWwoc291cmNlX2RpY3QsIHRhcmdldF9k
aWN0LCBpZ25vcmVfa2V5cyk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRv
IHJlY3Vyc2l2ZWx5IGNvbXBhcmUgdHdvIGRpY3Rpb25hcmllcyB3aXRoCisgICAgc2FtZSBrZXlz
LgorICAgIDpwYXJhbSBzb3VyY2VfZGljdDoKKyAgICA6cGFyYW0gdGFyZ2V0X2RpY3Q6CisgICAg
OnJldHVybjoKKyAgICAiIiIKKworICAgIHNyY19rZXlzID0gc2V0KHNvdXJjZV9kaWN0LmtleXMo
KSkKKyAgICB0YXJfa2V5cyA9IHNldCh0YXJnZXRfZGljdC5rZXlzKCkpCisKKyAgICAjIGlnbm9y
ZSB0aGUga2V5cyBpZiBhdmFpbGFibGUuCisgICAgZm9yIGlnX2tleSBpbiBpZ25vcmVfa2V5czoK
KyAgICAgICAgaWYgaWdfa2V5IGluIHNyY19rZXlzOgorICAgICAgICAgICAgc291cmNlX2RpY3Qu
cG9wKGlnX2tleSkKKyAgICAgICAgaWYgaWdfa2V5IGluIHRhcmdldF9kaWN0OgorICAgICAgICAg
ICAgdGFyZ2V0X2RpY3QucG9wKGlnX2tleSkKKworICAgICMgS2V5cyB0aGF0IGFyZSBhdmFpbGFi
bGUgaW4gc291cmNlIGFuZCBtaXNzaW5nIGluIHRhcmdldC4KKyAgICBzcmNfb25seSA9IHNyY19r
ZXlzIC0gdGFyX2tleXMKKyAgICAjIEtleXMgdGhhdCBhcmUgYXZhaWxhYmxlIGluIHRhcmdldCBh
bmQgbWlzc2luZyBpbiBzb3VyY2UuCisgICAgdGFyX29ubHkgPSB0YXJfa2V5cyAtIHNyY19rZXlz
CisKKyAgICAjIElmIG51bWJlciBvZiBrZXlzIGFyZSBkaWZmZXJlbnQgaW4gc291cmNlIGFuZCB0
YXJnZXQgdGhlbgorICAgICMgcmV0dXJuIEZhbHNlCisgICAgaWYgbGVuKHNyY19vbmx5KSAhPSBs
ZW4odGFyX29ubHkpOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBlbHNlOgorICAgICAgICAj
IElmIG51bWJlciBvZiBrZXlzIGFyZSBzYW1lIGJ1dCBrZXkgaXMgbm90IHByZXNlbnQgaW4gdGFy
Z2V0IHRoZW4KKyAgICAgICAgIyByZXR1cm4gRmFsc2UKKyAgICAgICAgZm9yIGtleSBpbiBzcmNf
b25seToKKyAgICAgICAgICAgIGlmIGtleSBub3QgaW4gdGFyX29ubHk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisKKyAgICBmb3Iga2V5IGluIHNvdXJjZV9kaWN0LmtleXMoKToKKyAg
ICAgICAgaWYgdHlwZShzb3VyY2VfZGljdFtrZXldKSBpcyBkaWN0OgorICAgICAgICAgICAgaWYg
bm90IGFyZV9kaWN0aW9uYXJpZXNfaWRlbnRpY2FsKHNvdXJjZV9kaWN0W2tleV0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2RpY3Rba2V5XSwg
aWdub3JlX2tleXMpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBlbGlm
IHR5cGUoc291cmNlX2RpY3Rba2V5XSkgaXMgbGlzdDoKKyAgICAgICAgICAgIGlmIG5vdCBhcmVf
bGlzdHNfaWRlbnRpY2FsKHNvdXJjZV9kaWN0W2tleV0sIHRhcmdldF9kaWN0W2tleV0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVfa2V5cyk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBzb3Vy
Y2VfZGljdFtrZXldICE9IHRhcmdldF9kaWN0W2tleV06CisgICAgICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisKKyAgICByZXR1cm4gVHJ1ZQorCisKK2RlZiBkaXJlY3RvcnlfZGlmZihzb3VyY2Vf
ZGljdCwgdGFyZ2V0X2RpY3QsIGlnbm9yZV9rZXlzPVtdLCBkaWZmZXJlbmNlPXt9KToKKyAgICAi
IiIKKyAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gcmVjdXJzaXZlbHkgY29tcGFyZSB0d28g
ZGljdGlvbmFyaWVzIGFuZAorICAgIHJldHVybiB0aGUgZGlmZmVyZW5jZS4KKyAgICBUaGUgZGlm
ZmVyZW5jZSBpcyBmcm9tIHNvdXJjZSB0byB0YXJnZXQKKyAgICA6cGFyYW0gc291cmNlX2RpY3Q6
IHNvdXJjZSBkaWN0CisgICAgOnBhcmFtIHRhcmdldF9kaWN0OiB0YXJnZXQgZGljdAorICAgIDpw
YXJhbSBpZ25vcmVfa2V5czogaWdub3JlIGtleXMgdG8gY29tcGFyZQorICAgICIiIgorCisgICAg
c3JjX2tleXMgPSBzZXQoc291cmNlX2RpY3Qua2V5cygpKQorICAgIHRhcl9rZXlzID0gc2V0KHRh
cmdldF9kaWN0LmtleXMoKSkKKworICAgICMgS2V5cyB0aGF0IGFyZSBhdmFpbGFibGUgaW4gc291
cmNlIGFuZCBtaXNzaW5nIGluIHRhcmdldC4KKyAgICBzcmNfb25seSA9IHNyY19rZXlzIC0gdGFy
X2tleXMKKyAgICAjIEtleXMgdGhhdCBhcmUgYXZhaWxhYmxlIGluIHRhcmdldCBhbmQgbWlzc2lu
ZyBpbiBzb3VyY2UuCisgICAgdGFyX29ubHkgPSB0YXJfa2V5cyAtIHNyY19rZXlzCisKKyAgICBm
b3Iga2V5IGluIHNvdXJjZV9kaWN0LmtleXMoKToKKyAgICAgICAgYWRkZWQgPSBbXQorICAgICAg
ICBkZWxldGVkID0gW10KKyAgICAgICAgdXBkYXRlZCA9IFtdCisgICAgICAgIHNvdXJjZSA9IE5v
bmUKKworICAgICAgICAjIGlnbm9yZSB0aGUga2V5cyBpZiBhdmFpbGFibGUuCisgICAgICAgIGlm
IGtleSBpbiBpZ25vcmVfa2V5czoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxpZiBrZXkg
aW4gdGFyX29ubHk6CisgICAgICAgICAgICB0YXJnZXRfb25seVtrZXldID0gdGFyZ2V0X2RpY3Rb
a2V5XQorICAgICAgICAgICAgIyBUYXJnZXQgb25seSB2YWx1ZXMgaW4gZGVsZXRlZCBsaXN0Cisg
ICAgICAgICAgICBkaWZmZXJlbmNlW2tleV1bJ2RlbGV0ZWQnXSA9IHRhcmdldF9kaWN0W2tleV0K
KyAgICAgICAgZWxpZiBrZXkgaW4gc3JjX29ubHk6CisgICAgICAgICAgICAjIFNvdXJjZSBvbmx5
IHZhbHVlcyBpbiB0aGUgbmV3bHkgYWRkZWQgbGlzdAorICAgICAgICAgICAgaWYgdHlwZShzb3Vy
Y2VfZGljdFtrZXldKSBpcyBsaXN0OgorICAgICAgICAgICAgICAgIGRpZmZlcmVuY2Vba2V5XSA9
IHt9CisgICAgICAgICAgICAgICAgZGlmZmVyZW5jZVtrZXldWydhZGRlZCddID0gc291cmNlX2Rp
Y3Rba2V5XQorICAgICAgICBlbGlmIHR5cGUoc291cmNlX2RpY3Rba2V5XSkgaXMgZGljdDoKKyAg
ICAgICAgICAgIGRpcmVjdG9yeV9kaWZmKHNvdXJjZV9kaWN0W2tleV0sIHRhcmdldF9kaWN0W2tl
eV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVfa2V5cywgZGlmZmVyZW5jZSkK
KyAgICAgICAgZWxpZiB0eXBlKHNvdXJjZV9kaWN0W2tleV0pIGlzIGxpc3Q6CisgICAgICAgICAg
ICB0bXBfdGFyZ2V0ID0gTm9uZQorICAgICAgICAgICAgZm9yIGluZGV4IGluIHJhbmdlKGxlbihz
b3VyY2VfZGljdFtrZXldKSk6CisgICAgICAgICAgICAgICAgc291cmNlID0gY29weS5kZWVwY29w
eShzb3VyY2VfZGljdFtrZXldW2luZGV4XSkKKyAgICAgICAgICAgICAgICBpZiB0eXBlKHNvdXJj
ZSkgaXMgbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgIyBUT0RPCisgICAgICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgICAgICAgICBlbGlmIHR5cGUoc291cmNlKSBpcyBkaWN0OgorICAg
ICAgICAgICAgICAgICAgICBpZiAnbmFtZScgaW4gc291cmNlIG9yICdjb2xuYW1lJyBpbiBzb3Vy
Y2U6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKHRhcmdldF9kaWN0W2tleV0pIGlz
IGxpc3QgYW5kIGxlbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2Rp
Y3Rba2V5XSkgPiAwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IE5vbmUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBfdGFyZ2V0ID0gY29weS5kZWVwY29weSh0YXJn
ZXRfZGljdFtrZXldKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHRt
cF90YXJnZXQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScgaW4gaXRlbSBhbmQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtWyduYW1lJ10gPT0gc291cmNl
WyduYW1lJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBvciAoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG5hbWUnIGluIGl0ZW0gYW5kCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVsnY29sbmFtZSddID09
IHNvdXJjZVsnY29sbmFtZSddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBjb3B5LmRlZXBjb3B5KGl0
ZW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdG1wIGFuZCBzb3VyY2UgIT0gdG1w
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkLmFwcGVuZChjb3B5LmRl
ZXBjb3B5KHNvdXJjZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcF90YXJn
ZXQucmVtb3ZlKHRtcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHRtcCBhbmQg
c291cmNlID09IHRtcDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wX3Rhcmdl
dC5yZW1vdmUodG1wKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgdG1wIGlzIE5v
bmU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGVkLmFwcGVuZChzb3VyY2Up
CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFkZGVkLmFwcGVuZChzb3VyY2UpCisgICAgICAgICAgICAgICAgICAgIGRpZmZlcmVuY2Vb
a2V5XSA9IHt9CisgICAgICAgICAgICAgICAgICAgIGRpZmZlcmVuY2Vba2V5XVsnYWRkZWQnXSA9
IGFkZGVkCisgICAgICAgICAgICAgICAgICAgIGRpZmZlcmVuY2Vba2V5XVsnY2hhbmdlZCddID0g
dXBkYXRlZAorICAgICAgICAgICAgICAgIGVsaWYgdGFyZ2V0X2RpY3Rba2V5XSBpcyBOb25lIG9y
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlKHRhcmdldF9kaWN0W2tleV0pIGlzIGxp
c3QgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHRhcmdldF9kaWN0W2tleV0pIDwg
aW5kZXggYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlICE9IHRhcmdldF9kaWN0
W2tleV1baW5kZXhdKToKKyAgICAgICAgICAgICAgICAgICAgZGlmZmVyZW5jZVtrZXldID0gc291
cmNlCisgICAgICAgICAgICAgICAgZWxpZiB0eXBlKHRhcmdldF9kaWN0W2tleV0pIGlzIGxpc3Qg
YW5kXAorICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHRhcmdldF9kaWN0W2tleV0pID4gaW5k
ZXg6CisgICAgICAgICAgICAgICAgICAgIGRpZmZlcmVuY2Vba2V5XSA9IHNvdXJjZQorCisgICAg
ICAgICAgICBpZiB0eXBlKHNvdXJjZSkgaXMgZGljdCBhbmQgdG1wX3RhcmdldCBhbmQga2V5IGlu
IHRtcF90YXJnZXQgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgdG1wX3RhcmdldFtrZXldIGFu
ZCBsZW4odG1wX3RhcmdldFtrZXldKSA+IDA6CisgICAgICAgICAgICAgICAgaWYgdHlwZSh0bXBf
dGFyZ2V0W2tleV0pIGlzIGxpc3QgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUo
dG1wX3RhcmdldFtrZXldWzBdKSBpcyBkaWN0OgorICAgICAgICAgICAgICAgICAgICBkZWxldGVk
ID0gZGVsZXRlZCArIHRtcF90YXJnZXRba2V5XQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgICAgIGRlbGV0ZWQuYXBwZW5kKHtrZXk6IHRtcF90YXJnZXRba2V5XX0pCisg
ICAgICAgICAgICAgICAgZGlmZmVyZW5jZVtrZXldWydkZWxldGVkJ10gPSBkZWxldGVkCisgICAg
ICAgICAgICBlbGlmIHRtcF90YXJnZXQgYW5kIHR5cGUodG1wX3RhcmdldCkgaXMgbGlzdDoKKyAg
ICAgICAgICAgICAgICBkaWZmZXJlbmNlW2tleV1bJ2RlbGV0ZWQnXSA9IHRtcF90YXJnZXQKKwor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc291cmNlX2RpY3Rba2V5XSAhPSB0YXJnZXRf
ZGljdFtrZXldOgorICAgICAgICAgICAgICAgIGRpZmZlcmVuY2Vba2V5XSA9IHNvdXJjZV9kaWN0
W2tleV0KKworICAgIHJldHVybiBkaWZmZXJlbmNlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90
b29scy9zY2hlbWFfZGlmZi9tb2RlbC5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZm
L21vZGVsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNGZhYzIxMDA3
Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvbW9kZWwu
cHkKQEAgLTAsMCArMSw3NiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0g
UG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE5LCBUaGUgcGdB
ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg
dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworCitjbGFzcyBT
Y2hlbWFEaWZmTW9kZWwob2JqZWN0KToKKyAgICAiIiIKKyAgICBTY2hlbWFEaWZmTW9kZWwKKyAg
ICAiIiIKKworICAgIENPTVBBUklTT05fU1RBVFVTID0geworICAgICAgICAnc291cmNlX29ubHkn
OiAnU291cmNlIE9ubHknLAorICAgICAgICAndGFyZ2V0X29ubHknOiAnVGFyZ2V0IE9ubHknLAor
ICAgICAgICAnZGlmZmVyZW50JzogJ0RpZmZlcmVudCcsCisgICAgICAgICdpZGVudGljYWwnOiAn
SWRlbnRpY2FsJworICAgIH0KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Cisg
ICAgICAgICIiIgorICAgICAgICBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhl
IGNsYXNzIGFuZAorICAgICAgICBjcmVhdGUgYSBwcm9wZXIgb2JqZWN0IG5hbWUgd2hpY2ggd2ls
bCBiZSB1c2VkCisgICAgICAgIHRvIGZldGNoIHRoZSBkYXRhIHVzaW5nIG5hbWVzcGFjZSBuYW1l
IGFuZCBvYmplY3QgbmFtZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgKiprd2FyZ3Mg
OiBOIG51bWJlciBvZiBwYXJhbWV0ZXJzCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9jb21w
YXJpc29uX3Jlc3VsdCA9IGRpY3QoKQorICAgICAgICBzZWxmLl9jb21wYXJpc29uX21zZyA9ICdD
b21wYXJpc2lvbiBzdGFydGVkLi4uJworICAgICAgICBzZWxmLl9jb21wYXJpc29uX3BlcmNlbnRh
Z2UgPSAwCisKKyAgICBkZWYgY2xlYXJfZGF0YShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg
IFRoaXMgZnVuY3Rpb24gY2xlYXIgdGhlIG1vZGVsIGRhdGEuCisgICAgICAgICIiIgorICAgICAg
ICBzZWxmLl9jb21wYXJpc29uX3Jlc3VsdC5jbGVhcigpCisKKyAgICBkZWYgc2V0X3Jlc3VsdChz
ZWxmLCBub2RlX25hbWUsIGNvbXBhcmVfcmVzdWx0KToKKyAgICAgICAgIiIiCisgICAgICAgIFRo
aXMgbWV0aG9kIHNldCB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc2lvbiBiYXNlZCBvbiBub2Rl
cy4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2NvbXBhcmlzb25fcmVzdWx0W25vZGVfbmFt
ZV0gPSBjb21wYXJlX3Jlc3VsdAorCisgICAgZGVmIGdldF9yZXN1bHQoc2VsZiwgbm9kZV9uYW1l
PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiB0
aGUgcmVzdWx0IGZvciB0aGUgbm9kZSBpZiBzcGVjaWZpZWQKKyAgICAgICAgZWxzZSByZXR1cm4g
dGhlIGNvbXBsZXRlIHJlc3VsdC4KKyAgICAgICAgOnBhcmFtIG5vZGVfbmFtZTogTmFtZSBvZiB0
aGUgbm9kZSBleDogRGF0YWJhc2UsIFNjaGVtYSwgZXRjLi4KKyAgICAgICAgOnJldHVybjoKKyAg
ICAgICAgIiIiCisKKyAgICAgICAgaWYgbm9kZV9uYW1lIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX2NvbXBhcmlzb25fcmVzdWx0W25vZGVfbmFtZV0KKworICAgICAgICBy
ZXR1cm4gc2VsZi5fY29tcGFyaXNvbl9yZXN1bHQKKworICAgIGRlZiBnZXRfY29tcGFyaXNvbl9p
bmZvKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRv
IGdldCB0aGUgY29tcGFyaXNvbiBpbmZvcm1hdGlvbi4KKyAgICAgICAgOnJldHVybjoKKyAgICAg
ICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9jb21wYXJpc29uX21zZywgc2VsZi5fY29tcGFy
aXNvbl9wZXJjZW50YWdlCisKKyAgICBkZWYgc2V0X2NvbXBhcmlzb25faW5mbyhzZWxmLCBtc2cs
IHBlcmNlbnRhZ2UpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2Vk
IHRvIHNldCB0aGUgY29tcGFyaXNvbiBpbmZvcm1hdGlvbi4KKyAgICAgICAgOnBhcmFtIG1zZzoK
KyAgICAgICAgOnBhcmFtIHBlcmNlbnRhZ2U6CisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIi
IgorICAgICAgICBzZWxmLl9jb21wYXJpc29uX21zZyA9IG1zZworICAgICAgICBzZWxmLl9jb21w
YXJpc29uX3BlcmNlbnRhZ2UgPSBwZXJjZW50YWdlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90
b29scy9zY2hlbWFfZGlmZi9ub2RlX3JlZ2lzdHJ5LnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc2No
ZW1hX2RpZmYvbm9kZV9yZWdpc3RyeS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAuLjllN2UyNTUzMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nj
aGVtYV9kaWZmL25vZGVfcmVnaXN0cnkucHkKQEAgLTAsMCArMSw2MSBAQAorIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg
KEMpIDIwMTMgLSAyMDE5LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29m
dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMKKworCitjbGFzcyBTY2hlbWFEaWZmUmVnaXN0cnkob2JqZWN0KToKKyAgICAi
IiIKKyAgICBTY2hlbWFEaWZmUmVnaXN0cnkKKworICAgIEl0IGlzIG1vcmUgb2YgYSByZWdpc3Ry
eSBmb3IgZGlmZmVyZW50IHR5cGUgb2Ygbm9kZXMgZm9yIHNjaGVtYSBkaWZmLgorICAgICIiIgor
ICAgIF9yZWdpc3RlcmVkX25vZGVzID0gZGljdCgpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
bm9kZV9uYW1lLCBub2RlX3ZpZXcsIHBhcmVudF9ub2RlPSdzY2hlbWEnKToKKyAgICAgICAgaWYg
bm9kZV9uYW1lIG5vdCBpbiBTY2hlbWFEaWZmUmVnaXN0cnkuX3JlZ2lzdGVyZWRfbm9kZXM6Cisg
ICAgICAgICAgICBTY2hlbWFEaWZmUmVnaXN0cnkuX3JlZ2lzdGVyZWRfbm9kZXNbbm9kZV9uYW1l
XSA9IHsKKyAgICAgICAgICAgICAgICAndmlldyc6IG5vZGVfdmlldywKKyAgICAgICAgICAgICAg
ICAncGFyZW50JzogcGFyZW50X25vZGUKKyAgICAgICAgICAgIH0KKworICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBnZXRfcmVnaXN0ZXJlZF9ub2RlcyhjbHMsIG5vZGVfbmFtZT1Ob25lLCBwYXJl
bnRfbm9kZT0nc2NoZW1hJyk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdp
bGwgcmV0dXJuIHRoZSBub2RlJ3MgdmlldyBvYmplY3QgaWYgbm9kZSBuYW1lCisgICAgICAgIGlz
IHNwZWNpZmllZCBvciByZXR1cm4gdGhlIGNvbXBsZXRlIGxpc3Qgb2YgcmVnaXN0ZXJlZCBub2Rl
cy4KKworICAgICAgICA6cGFyYW0gbm9kZV9uYW1lOiBOYW1lIG9mIHRoZSBub2RlIGV4OiBEYXRh
YmFzZSwgU2NoZW1hLCBldGMuLgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAg
ICAgaWYgbm9kZV9uYW1lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgbm9kZV9uYW1lIGlu
IGNscy5fcmVnaXN0ZXJlZF9ub2RlczoKKyAgICAgICAgICAgICAgICByZXR1cm4gY2xzLl9yZWdp
c3RlcmVkX25vZGVzW25vZGVfbmFtZV1bJ3ZpZXcnXQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHJlZ2lzdGVyZWRfbm9kZXMgPSB7fQor
ICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBjbHMuX3JlZ2lzdGVyZWRfbm9kZXMuaXRlbXMoKToK
KyAgICAgICAgICAgIGlmIHZhbHVlWydwYXJlbnQnXSA9PSBwYXJlbnRfbm9kZToKKyAgICAgICAg
ICAgICAgICByZWdpc3RlcmVkX25vZGVzW2tleV0gPSB2YWx1ZVsndmlldyddCisKKyAgICAgICAg
cmV0dXJuIHJlZ2lzdGVyZWRfbm9kZXMKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBnZXRf
bm9kZV92aWV3KGNscywgbm9kZV9uYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVu
Y3Rpb24gd2lsbCByZXR1cm4gdGhlIHZpZXcgb2JqZWN0IGZvciB0aGUgIm5vZGVzIgorICAgICAg
ICBjb21tYW5kIGFzIHBlciB0aGUgc3BlY2lmaWVkIG5vZGUgbmFtZS4KKworICAgICAgICA6cGFy
YW0gbm9kZV9uYW1lOiBOYW1lIG9mIHRoZSBub2RlIGV4OiBEYXRhYmFzZSwgU2NoZW1hLCBldGMu
LgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgY21kID0geyJjbWQiOiAi
bm9kZXMsIGNvbXBhcmUsIGRkbF9jb21wYXJlIn0KKyAgICAgICAgbW9kdWxlID0gU2NoZW1hRGlm
ZlJlZ2lzdHJ5LmdldF9yZWdpc3RlcmVkX25vZGVzKG5vZGVfbmFtZSkKKyAgICAgICAgaWYgbm90
IG1vZHVsZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBtb2R1bGUo
KipjbWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9zdGF0aWMv
Y3NzL3NjaGVtYV9kaWZmLmNzcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3N0YXRp
Yy9jc3Mvc2NoZW1hX2RpZmYuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MC4uYWY5YWUzYTdmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1h
X2RpZmYvc3RhdGljL2Nzcy9zY2hlbWFfZGlmZi5jc3MKQEAgLTAsMCArMSwxODkgQEAKKy5pY29u
LXNjaGVtYS1kaWZmIHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICBhbGlnbi1jb250ZW50
OiBjZW50ZXI7CisgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgIGhlaWdodDogMThweDsKKyAg
d2lkdGg6IDE4cHg7CisgIGJhY2tncm91bmQtc2l6ZTogMjBweCAhaW1wb3J0YW50OworICBiYWNr
Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNlbnRl
cjsKKyAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiBjZW50ZXI7CisgIGJhY2tncm91bmQtaW1hZ2U6
IHVybCgnLi4vaW1nL2NvbXBhcmUuc3ZnJykgIWltcG9ydGFudDsKK30KKworLmljb24tc2NoZW1h
LWRpZmYtd2hpdGUgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIGFsaWduLWNvbnRlbnQ6
IGNlbnRlcjsKKyAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAgaGVpZ2h0OiAxOHB4OworICB3
aWR0aDogMThweDsKKyAgYmFja2dyb3VuZC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7CisgIGJhY2tn
cm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgIGJhY2tncm91bmQtcG9zaXRpb24teDogY2VudGVy
OworICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjsKKyAgYmFja2dyb3VuZC1pbWFnZTog
dXJsKCcuLi9pbWcvY29tcGFyZS13aGl0ZS5zdmcnKSAhaW1wb3J0YW50OworfQorCisuaWNvbi1z
Y3JpcHQgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIGFsaWduLWNvbnRlbnQ6IGNlbnRl
cjsKKyAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAgaGVpZ2h0OiAxOHB4OworICB3aWR0aDog
MThweDsKKyAgYmFja2dyb3VuZC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7CisgIGJhY2tncm91bmQt
cmVwZWF0OiBuby1yZXBlYXQ7CisgIGJhY2tncm91bmQtcG9zaXRpb24teDogY2VudGVyOworICBi
YWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcu
Li9pbWcvc2NyaXB0LnN2ZycpICFpbXBvcnRhbnQ7Cit9CisKKy5yZWFsbHlIaWRkZW4geworICBk
aXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cit9CisKKyNzY2hlbWEtZGlmZi1oZWFkZXIgeworICBt
YXJnaW4tdG9wOiAycHg7Cit9CisKKyNzY2hlbWEtZGlmZi1oZWFkZXIgLmNvbnRyb2wtbGFiZWwg
eworICB3aWR0aDogMTIwcHggIWltcG9ydGFudDsKKyAgcGFkZGluZzogNXB4IDVweCAhaW1wb3J0
YW50OworfQorCisjc2NoZW1hLWRpZmYtZ3JpZCB7CisgIGJhY2tncm91bmQ6IHdoaXRlOworICBv
dXRsaW5lOiAwOworICBmb250LXNpemU6IDlwdDsKKyAgbWFyZ2luLXRvcDogMjhweDsKK30KKwor
LnNsaWNrLWhlYWRlci1jb2x1bW4udWktc3RhdGUtZGVmYXVsdCB7CisgICAgaGVpZ2h0OiAzMnB4
ICFpbXBvcnRhbnQ7Cit9CisKKyNzY2hlbWEtZGlmZi1ncmlkIC5ncmlkLWhlYWRlciBsYWJlbCB7
CisgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIG1hcmdp
bjogYXV0byBhdXRvIGF1dG8gNnB4OworfQorCisuZ3JpZC1oZWFkZXIgLnVpLWljb24geworICBt
YXJnaW46IDRweCA0cHggYXV0byA2cHg7CisgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50
OworICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OworfQorCisuc2xpY2stcm93IC5jZWxsLWFj
dGlvbnMgeworICB0ZXh0LWFsaWduOiBsZWZ0OworfQorCisvKiBTbGljay5FZGl0b3JzLlRleHQs
IFNsaWNrLkVkaXRvcnMuRGF0ZSAqLworI3NjaGVtYS1kaWZmLWdyaWQgLnNsaWNrLWhlYWRlciA+
IGlucHV0LmVkaXRvci10ZXh0IHsKKyAgd2lkdGg6IDEwMCU7CisgIGhlaWdodDogMTAwJTsKKyAg
Ym9yZGVyOiAwOworICBtYXJnaW46IDA7CisgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OworICBv
dXRsaW5lOiAwOworICBwYWRkaW5nOiAwOworfQorCisvKiBTbGljay5FZGl0b3JzLkNoZWNrYm94
ICovCisjc2NoZW1hLWRpZmYtZ3JpZCAuc2xpY2staGVhZGVyID4gaW5wdXQuZWRpdG9yLWNoZWNr
Ym94IHsKKyAgbWFyZ2luOiAwOworICBoZWlnaHQ6IDEwMCU7CisgIHBhZGRpbmc6IDA7CisgIGJv
cmRlcjogMDsKK30KKworLnNsaWNrLXJvdy5zZWxlY3RlZCAuY2VsbC1zZWxlY3Rpb24geworICBi
YWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogc2hvdyBkZWZhdWx0IHNlbGVjdGVkIHJv
dyBiYWNrZ3JvdW5kICovCit9CisKKyNzY2hlbWEtZGlmZi1ncmlkIC5zbGljay1oZWFkZXIgLnVp
LXN0YXRlLWRlZmF1bHQsCisjc2NoZW1hLWRpZmYtZ3JpZCAuc2xpY2staGVhZGVyIC51aS13aWRn
ZXQtY29udGVudC51aS1zdGF0ZS1kZWZhdWx0LAorI3NjaGVtYS1kaWZmLWdyaWQgLnNsaWNrLWhl
YWRlciAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdCB7CisgIGJhY2tncm91bmQ6
IG5vbmU7Cit9CisKKyNzY2hlbWEtZGlmZi1ncmlkIC5zbGljay1oZWFkZXIgLnNsaWNrLWhlYWRl
ci1jb2x1bW4geworICBmb250LXdlaWdodDogYm9sZDsKKyAgZGlzcGxheTogYmxvY2s7Cit9CisK
KworLnNsaWNrLWdyb3VwLXRvZ2dsZS5jb2xsYXBzZWQgeworICB3aWR0aDogMzBweDsKKyAgYmFj
a2dyb3VuZDogdXJsKC4uLy4uLy4uLy4uL3N0YXRpYy9pbWcvY29sbGFwc2VfZXhwYW5kLnN2Zykg
MTBweCAxcHggbm8tcmVwZWF0ICFpbXBvcnRhbnQ7Cit9CisKKy5zbGljay1ncm91cC10b2dnbGUu
ZXhwYW5kZWQgeworICB3aWR0aDogMzBweDsKKyAgYmFja2dyb3VuZDogdXJsKC4uLy4uLy4uLy4u
L3N0YXRpYy9pbWcvY29sbGFwc2VfZXhwYW5kLnN2ZykgLTEwcHggMXB4IG5vLXJlcGVhdCAhaW1w
b3J0YW50OworfQorCisKKy5zbGljay1ncm91cC10b2dnbGUgeworICBtYXJnaW4tcmlnaHQ6IDBw
eCAhaW1wb3J0YW50OworICBoZWlnaHQ6IDExcHggIWltcG9ydGFudDsKK30KKworI3NjaGVtYS1k
aWZmLWRkbC1jb21wIC5iYWRnZSAuY2FyZXQgeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
KyAgICBtYXJnaW4tbGVmdDogMnB4OworICAgIG1hcmdpbi1yaWdodDogNHB4OworICAgIHdpZHRo
OiAwLjdyZW07Cit9CisKKyNzY2hlbWEtZGlmZi1kZGwtY29tcCAuYmFkZ2UgLmNhcmV0OjpiZWZv
cmUgeworICBmb250LWZhbWlseTogIkZvbnRBd2Vzb21lIjsKKyAgY29udGVudDogIlxmMDc4IjsK
KyAgZm9udC1zaXplOiAwLjdyZW07CisgIG1hcmdpbi1sZWZ0OiAwcmVtOworfQorCisjc2NoZW1h
LWRpZmYtZGRsLWNvbXAgLmJhZGdlIHsKKyAgZm9udC1zaXplOiBpbmhlcml0OworICBwYWRkaW5n
OiA3cHg7Cit9CisKKyNzY2hlbWEtZGlmZi1kZGwtY29tcCAuYWNjb3JkaWFuLWdyb3VwIHsKKyAg
cGFkZGluZzogMHB4OworfQorCisjZGRsX2NvbXBfZmV0Y2hpbmdfZGF0YS5wZy1zcC1jb250YWlu
ZXIgeworICBtaW4taGVpZ2h0OiA0NSU7CisgIGJvdHRvbTogMTBweDsKKworICAucGctc3AtY29u
dGVudCB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHdpZHRoOiAxMDAlOworICB9Cit9
CisKKy5kZGwtY29weSB7CisgIHotaW5kZXg6IDEwOworICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
IHJpZ2h0OiAxcHg7CisgIHRvcDogMXB4OworfQorCisjc2NoZW1hLWRpZmYtZ3JpZCAucGctcGFu
ZWwtbWVzc2FnZSB7CisgIGZvbnQtc2l6ZTogMC44NzVyZW07Cit9CisKKworI3NjaGVtYS1kaWZm
LWRkbC1jb21wIC5zcWxfZmllbGRfbGF5b3V0IHsKKyAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFu
dDsKKyAgaGVpZ2h0OiAxMDAlOworfQorCisjc2NoZW1hLWRpZmYtZGRsLWNvbXAgLnNvdXJjZV9k
ZGwsICNzY2hlbWEtZGlmZi1kZGwtY29tcCAudGFyZ2V0X2RkbCwgI3NjaGVtYS1kaWZmLWRkbC1j
b21wIC5kaWZmX2RkbCB7CisgIGhlaWdodDogMzAwcHg7CisgIG92ZXJmbG93OiBoaWRkZW47Cit9
CisKKy50YXJnZXQtYnV0dG9ucyB7CisgIGZsZXgtd3JhcDogd3JhcDsKKyAgbWF4LXdpZHRoOiA0
MCUgIWltcG9ydGFudDsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9k
aWZmL3N0YXRpYy9pbWcvY29tcGFyZS13aGl0ZS5zdmcgYi93ZWIvcGdhZG1pbi90b29scy9zY2hl
bWFfZGlmZi9zdGF0aWMvaW1nL2NvbXBhcmUtd2hpdGUuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMC4uNDdiOTViZTAzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt
aW4vdG9vbHMvc2NoZW1hX2RpZmYvc3RhdGljL2ltZy9jb21wYXJlLXdoaXRlLnN2ZwpAQCAtMCww
ICsxLDE1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBH
ZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIzLjAuMiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4g
U1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSLQ
odC70L7QuV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5r
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKKwkgdmlld0Jv
eD0iMCAwIDI2IDI2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNiAyNjsiIHht
bDpzcGFjZT0icHJlc2VydmUiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKwkuc3Qwe2ZpbGw6
I0ZGRkZGRjt9Cis8L3N0eWxlPgorPHBhdGggY2xhc3M9InN0MCIgZD0iTTIxLjUsMmgtOWMtMS4x
LDAtMiwwLjktMiwydjNoLTZjLTEuMSwwLTIsMC45LTIsMnYxM2MwLDEuMSwwLjksMiwyLDJoOGMx
LjEsMCwyLTAuOSwyLTJ2LTNoN2MxLjEsMCwyLTAuOSwyLTIKKwlWNEMyMy41LDIuOSwyMi42LDIs
MjEuNSwyeiBNMTIuNSwxNC44SDguOWwxLTFjMC4xLTAuMSwwLjEtMC4yLDAuMS0wLjNzMC0wLjIt
MC4xLTAuM2wtMC4zLTAuM2MtMC4xLTAuMS0wLjItMC4xLTAuMy0wLjEKKwljLTAuMSwwLTAuMiww
LTAuMywwLjFsLTIuMywyLjNjLTAuMSwwLjEtMC4xLDAuMi0wLjEsMC4zYzAsMC4xLDAsMC4yLDAu
MSwwLjNMOSwxOC4xYzAuMSwwLjEsMC4yLDAuMSwwLjMsMC4xYzAuMSwwLDAuMiwwLDAuMy0wLjEK
KwlsMC4zLTAuM2MwLjEtMC4xLDAuMS0wLjIsMC4xLTAuM2MwLTAuMSwwLTAuMi0wLjEtMC4zbC0x
LTFoMy42bDAsNS44aC04VjloOEwxMi41LDE0Ljh6IE0yMS41LDkuOGgtMy42bDEtMQorCWMwLjEt
MC4xLDAuMS0wLjIsMC4xLTAuM3MwLTAuMi0wLjEtMC4zbC0wLjMtMC4zYy0wLjEtMC4xLTAuMi0w
LjEtMC4zLTAuMWMtMC4xLDAtMC4yLDAtMC4zLDAuMWwtMi4zLDIuM2MtMC4xLDAuMS0wLjEsMC4y
LTAuMSwwLjMKKwljMCwwLjEsMCwwLjIsMC4xLDAuM2wyLjMsMi4zYzAuMSwwLjEsMC4yLDAuMSww
LjMsMC4xYzAuMSwwLDAuMiwwLDAuMy0wLjFsMC4zLTAuM2MwLjEtMC4xLDAuMS0wLjIsMC4xLTAu
M2MwLTAuMSwwLTAuMi0wLjEtMC4zCisJbC0xLTFoMy42bDAsNS44aC03VjljMC0xLjEtMC45LTIt
Mi0yVjRoOUwyMS41LDkuOHoiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9v
bHMvc2NoZW1hX2RpZmYvc3RhdGljL2ltZy9jb21wYXJlLnN2ZyBiL3dlYi9wZ2FkbWluL3Rvb2xz
L3NjaGVtYV9kaWZmL3N0YXRpYy9pbWcvY29tcGFyZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwLi4xMzY2ZjUwYTUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p
bi90b29scy9zY2hlbWFfZGlmZi9zdGF0aWMvaW1nL2NvbXBhcmUuc3ZnCkBAIC0wLDAgKzEsMTUg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRv
cjogQWRvYmUgSWxsdXN0cmF0b3IgMjMuMC4yLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVy
c2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9ItCh0LvQvtC5
XzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAg
MjYgMjYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI2IDI2OyIgeG1sOnNwYWNl
PSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojMjIyMjIy
O30KKzwvc3R5bGU+Cis8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjEuNSwyaC05Yy0xLjEsMC0yLDAu
OS0yLDJ2M2gtNmMtMS4xLDAtMiwwLjktMiwydjEzYzAsMS4xLDAuOSwyLDIsMmg4YzEuMSwwLDIt
MC45LDItMnYtM2g3YzEuMSwwLDItMC45LDItMgorCVY0QzIzLjUsMi45LDIyLjYsMiwyMS41LDJ6
IE0xMi41LDE0LjhIOC45bDEtMWMwLjEtMC4xLDAuMS0wLjIsMC4xLTAuM3MwLTAuMi0wLjEtMC4z
bC0wLjMtMC4zYy0wLjEtMC4xLTAuMi0wLjEtMC4zLTAuMQorCWMtMC4xLDAtMC4yLDAtMC4zLDAu
MWwtMi4zLDIuM2MtMC4xLDAuMS0wLjEsMC4yLTAuMSwwLjNjMCwwLjEsMCwwLjIsMC4xLDAuM0w5
LDE4LjFjMC4xLDAuMSwwLjIsMC4xLDAuMywwLjFjMC4xLDAsMC4yLDAsMC4zLTAuMQorCWwwLjMt
MC4zYzAuMS0wLjEsMC4xLTAuMiwwLjEtMC4zYzAtMC4xLDAtMC4yLTAuMS0wLjNsLTEtMWgzLjZs
MCw1LjhoLThWOWg4TDEyLjUsMTQuOHogTTIxLjUsOS44aC0zLjZsMS0xCisJYzAuMS0wLjEsMC4x
LTAuMiwwLjEtMC4zczAtMC4yLTAuMS0wLjNsLTAuMy0wLjNjLTAuMS0wLjEtMC4yLTAuMS0wLjMt
MC4xYy0wLjEsMC0wLjIsMC0wLjMsMC4xbC0yLjMsMi4zYy0wLjEsMC4xLTAuMSwwLjItMC4xLDAu
MworCWMwLDAuMSwwLDAuMiwwLjEsMC4zbDIuMywyLjNjMC4xLDAuMSwwLjIsMC4xLDAuMywwLjFj
MC4xLDAsMC4yLDAsMC4zLTAuMWwwLjMtMC4zYzAuMS0wLjEsMC4xLTAuMiwwLjEtMC4zYzAtMC4x
LDAtMC4yLTAuMS0wLjMKKwlsLTEtMWgzLjZsMCw1LjhoLTdWOWMwLTEuMS0wLjktMi0yLTJWNGg5
TDIxLjUsOS44eiIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zY2hl
bWFfZGlmZi9zdGF0aWMvaW1nL3NjcmlwdC5zdmcgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFf
ZGlmZi9zdGF0aWMvaW1nL3NjcmlwdC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwLi40ODhiOTExYzcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9z
Y2hlbWFfZGlmZi9zdGF0aWMvaW1nL3NjcmlwdC5zdmcKQEAgLTAsMCArMSwxOSBAQAorPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJ
bGx1c3RyYXRvciAyMy4wLjIsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAw
IEJ1aWxkIDApICAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCisJIHZpZXdCb3g9IjAgMCA1MCA1MCIgc3R5bGU9
ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTAgNTA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4K
KzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisJLnN0MHtmaWxsOiMyMjIyMjI7fQorPC9zdHlsZT4K
KzxnPgorCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MCwzNVYxMWMwLTMuOS0zLjEtNy03LTdIN2Mt
My45LDAtNywzLjEtNyw3YzAsMy4xLDIuMSw1LjgsNSw2LjdWMzljMCwzLjksMy4xLDcsNyw3aDMx
YzMuOSwwLDctMy4xLDctN3YtNAorCQlINDB6IE00Myw0MmMtMC44LDAtMS44LTEuNC0yLjUtM2g1
QzQ0LjksNDAuNSw0My44LDQyLDQzLDQyeiBNNyw4aDE5LjZDMjYuMiw4LjksMjYsOS45LDI2LDEx
YzAsMSwwLjIsMiwwLjcsM0g3Yy0xLjcsMC0zLTEuMy0zLTMKKwkJUzUuMyw4LDcsOHogTTM2Ljcs
NDJIMTJjLTEuNywwLTMtMS4zLTMtM1YxOGgyNXYtNGgtMWMtMS43LDAtMy0xLjMtMy0zczEuMy0z
LDMtM3MzLDEuMywzLDN2MjhDMzYsNDAsMzYuMiw0MSwzNi43LDQyeiIvPgorCTxyZWN0IHg9IjEz
IiB5PSIyMSIgY2xhc3M9InN0MCIgd2lkdGg9IjQiIGhlaWdodD0iNCIvPgorCTxyZWN0IHg9IjE5
IiB5PSIyMSIgY2xhc3M9InN0MCIgd2lkdGg9IjEzIiBoZWlnaHQ9IjQiLz4KKwk8cmVjdCB4PSIx
MyIgeT0iMjgiIGNsYXNzPSJzdDAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz4KKwk8cmVjdCB4PSIx
OSIgeT0iMjgiIGNsYXNzPSJzdDAiIHdpZHRoPSIxMyIgaGVpZ2h0PSI0Ii8+CisJPHJlY3QgeD0i
MTMiIHk9IjM1IiBjbGFzcz0ic3QwIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+CisJPHJlY3QgeD0i
MTkiIHk9IjM1IiBjbGFzcz0ic3QwIiB3aWR0aD0iMTMiIGhlaWdodD0iNCIvPgorPC9nPgorPC9z
dmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9zdGF0aWMvanMv
c2NoZW1hX2RpZmYuYmFja2Zvcm0uanMgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9z
dGF0aWMvanMvc2NoZW1hX2RpZmYuYmFja2Zvcm0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwLi5hZDIzYzQ5ODEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90
b29scy9zY2hlbWFfZGlmZi9zdGF0aWMvanMvc2NoZW1hX2RpZmYuYmFja2Zvcm0uanMKQEAgLTAs
MCArMSw1MDAgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisv
LworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOSwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg
VGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM
aWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KKworaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JzsKK2ltcG9ydCBCYWNr
Ym9uZSBmcm9tICdiYWNrYm9uZSc7CitpbXBvcnQgQmFja2Zvcm0gZnJvbSAncGdhZG1pbi5iYWNr
Zm9ybSc7CitpbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOworaW1wb3J0IGNs
aXBib2FyZCBmcm9tICdzb3VyY2VzL3NlbGVjdGlvbi9jbGlwYm9hcmQnOworCit2YXIgZm9ybWF0
Tm9kZSA9IGZ1bmN0aW9uIChvcHQpIHsKKyAgaWYgKCFvcHQuaWQpIHsKKyAgICByZXR1cm4gb3B0
LnRleHQ7CisgIH0KKworICB2YXIgb3B0aW1hZ2UgPSAkKG9wdC5lbGVtZW50KS5kYXRhKCdpbWFn
ZScpOworCisgIGlmICghb3B0aW1hZ2UpIHsKKyAgICByZXR1cm4gb3B0LnRleHQ7CisgIH0gZWxz
ZSB7CisgICAgcmV0dXJuICQoJzxzcGFuPjwvc3Bhbj4nKS5hcHBlbmQoCisgICAgICAkKCc8c3Bh
bj48L3NwYW4+JywgeworICAgICAgICBjbGFzczogJ3djVGFiSWNvbiAnICsgb3B0aW1hZ2UsCisg
ICAgICB9KQorICAgICkuYXBwZW5kKCQoJzxzcGFuPjwvc3Bhbj4nKS50ZXh0KG9wdC50ZXh0KSk7
CisgIH0KK307CisKK2xldCBTY2hlbWFEaWZmU3FsQ29udHJvbCA9CisgIEJhY2tmb3JtLlNxbEZp
ZWxkQ29udHJvbC5leHRlbmQoeworICAgIGRlZmF1bHRzOiB7CisgICAgICBsYWJlbDogJycsCisg
ICAgICBleHRyYUNsYXNzZXM6IFtdLCAvLyBBZGQgZGVmYXVsdCBjb250cm9sIGhlaWdodAorICAg
ICAgaGVscE1lc3NhZ2U6IG51bGwsCisgICAgICBtYXhsZW5ndGg6IDQwOTYsCisgICAgICByb3dz
OiB1bmRlZmluZWQsCisgICAgICBjb3B5UmVxdWlyZWQ6IGZhbHNlLAorICAgIH0sCisKKyAgICB0
ZW1wbGF0ZTogXy50ZW1wbGF0ZShbCisgICAgICAnPCUgaWYgKGNvcHlSZXF1aXJlZCkgeyAlPjxi
dXR0b24gY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGRkbC1jb3B5IGQtbm9uZSI+Q29weTwvYnV0
dG9uPiA8JSB9ICU+JywKKyAgICAgICc8ZGl2IGNsYXNzPSJwZ2FkbWluLWNvbnRyb2xzIHBnLWVs
LTkgcGctZWwtMTIgc3FsX2ZpZWxkX2xheW91dCA8JT1leHRyYUNsYXNzZXMuam9pbihcJyBcJykl
PiI+JywKKyAgICAgICcgIDx0ZXh0YXJlYSAnLAorICAgICAgJyAgICBjbGFzcz0iPCU9QmFja2Zv
cm0uY29udHJvbENsYXNzTmFtZSU+ICIgbmFtZT0iPCU9bmFtZSU+IicsCisgICAgICAnICAgIG1h
eGxlbmd0aD0iPCU9bWF4bGVuZ3RoJT4iIHBsYWNlaG9sZGVyPSI8JS1wbGFjZWhvbGRlciU+IiA8
JT1kaXNhYmxlZCA/ICJkaXNhYmxlZCIgOiAiIiU+JywKKyAgICAgICcgICAgcm93cz08JT1yb3dz
JT4nLAorICAgICAgJyAgICA8JT1yZXF1aXJlZCA/ICJyZXF1aXJlZCIgOiAiIiU+PjwlLXZhbHVl
JT48L3RleHRhcmVhPicsCisgICAgICAnICA8JSBpZiAoaGVscE1lc3NhZ2UgJiYgaGVscE1lc3Nh
Z2UubGVuZ3RoKSB7ICU+JywKKyAgICAgICcgICAgPHNwYW4gY2xhc3M9IjwlPUJhY2tmb3JtLmhl
bHBNZXNzYWdlQ2xhc3NOYW1lJT4iPjwlPWhlbHBNZXNzYWdlJT48L3NwYW4+JywKKyAgICAgICcg
IDwlIH0gJT4nLAorICAgICAgJzwvZGl2PicsCisgICAgXS5qb2luKCdcbicpKSwKKyAgICBpbml0
aWFsaXplOiBmdW5jdGlvbigpIHsKKyAgICAgIEJhY2tmb3JtLlRleHRhcmVhQ29udHJvbC5wcm90
b3R5cGUuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgdGhpcy5zcWxD
dHJsID0gbnVsbDsKKworICAgICAgXy5iaW5kQWxsKHRoaXMsICdvbkZvY3VzJywgJ29uQmx1cics
ICdyZWZyZXNoVGV4dEFyZWEnLCAnY29weURhdGEnLCk7CisgICAgfSwKKyAgICByZW5kZXI6IGZ1
bmN0aW9uKCkgeworICAgICAgbGV0IG9iaiA9IEJhY2tmb3JtLlNxbEZpZWxkQ29udHJvbC5wcm90
b3R5cGUucmVuZGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICBpZih0aGlzLiRlbC5m
aW5kKCcuZGRsLWNvcHknKSkgdGhpcy4kZWwuZmluZCgnLmRkbC1jb3B5Jykub24oJ2NsaWNrJywg
dGhpcy5jb3B5RGF0YSk7CisgICAgICByZXR1cm4gb2JqOworICAgIH0sCisgICAgY29weURhdGEo
KSB7CisgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgIGNsaXBib2FyZC5jb3B5
VGV4dFRvQ2xpcGJvYXJkKHRoaXMubW9kZWwuZ2V0KCdkaWZmX2RkbCcpKTsKKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9LAorICAgIG9uRm9jdXM6IGZ1bmN0aW9uKCkgeworICAgICAgbGV0ICRj
dHJsID0gdGhpcy4kZWwuZmluZCgnLnBnYWRtaW4tY29udHJvbHMnKS5maXJzdCgpLAorICAgICAg
ICAkY29weSA9IHRoaXMuJGVsLmZpbmQoJy5kZGwtY29weScpOworICAgICAgaWYgKCEkY3RybC5o
YXNDbGFzcygnZm9jdXNlZCcpKSAkY3RybC5hZGRDbGFzcygnZm9jdXNlZCcpOworICAgICAgaWYg
KCRjb3B5Lmhhc0NsYXNzKCdkLW5vbmUnKSkgJGNvcHkucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpOwor
CisgICAgfSwKKyAgICBvbkJsdXI6IGZ1bmN0aW9uKCkgeworICAgICAgbGV0ICRjb3B5ID0gdGhp
cy4kZWwuZmluZCgnLmRkbC1jb3B5Jyk7CisgICAgICBpZiAoISQoZXZlbnQucmVsYXRlZFRhcmdl
dCkuaGFzQ2xhc3MoJ2RkbC1jb3B5JykpIHsKKyAgICAgICAgaWYgKCEkY29weS5oYXNDbGFzcygn
ZC1ub25lJykpICRjb3B5LmFkZENsYXNzKCdkLW5vbmUnKTsKKyAgICAgICAgdGhpcy4kZWwuZmlu
ZCgnLnBnYWRtaW4tY29udHJvbHMnKS5maXJzdCgpLnJlbW92ZUNsYXNzKCdmb2N1c2VkJyk7Cisg
ICAgICB9CisgICAgfSwKKworICB9KTsKKworbGV0IFNjaGVtYURpZmZTZWxlY3QyQ29udHJvbCA9
CisgIEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLmV4dGVuZCh7CisgICAgZGVmYXVsdHM6IF8uZXh0
ZW5kKEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLnByb3RvdHlwZS5kZWZhdWx0cywgeworICAgICAg
dXJsOiB1bmRlZmluZWQsCisgICAgICB0cmFuc2Zvcm06IHVuZGVmaW5lZCwKKyAgICAgIHVybF93
aXRoX2lkOiBmYWxzZSwKKyAgICAgIHNlbGVjdDI6IHsKKyAgICAgICAgYWxsb3dDbGVhcjogdHJ1
ZSwKKyAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ1NlbGVjdCBhbiBpdGVtLi4uJyksCisg
ICAgICAgIHdpZHRoOiAnc3R5bGUnLAorICAgICAgICB0ZW1wbGF0ZVJlc3VsdDogZm9ybWF0Tm9k
ZSwKKyAgICAgICAgdGVtcGxhdGVTZWxlY3Rpb246IGZvcm1hdE5vZGUsCisgICAgICB9LAorICAg
ICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNvbnRyb2xzIHBnLWVsLXNtLTExIHBnLWVs
LTEyJywKKyAgICB9KSwKKyAgICBjbGFzc05hbWU6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJu
ICdwZ2FkbWluLWNvbnRyb2xzIHBnLWVsLXNtLTQnOworICAgIH0sCisgICAgZXZlbnRzOiB7Cisg
ICAgICAnZm9jdXMgc2VsZWN0JzogJ2NsZWFySW52YWxpZCcsCisgICAgICAna2V5ZG93biA6aW5w
dXQnOiAncHJvY2Vzc1RhYicsCisgICAgICAnc2VsZWN0MjpzZWxlY3QnOiAnb25TZWxlY3QnLAor
ICAgICAgJ3NlbGVjdDI6c2VsZWN0aW5nJzogJ2JlZm9yZVNlbGVjdCcsCisgICAgICAnc2VsZWN0
MjpjbGVhcic6ICdvbkNoYW5nZScsCisgICAgfSwKKyAgICB0ZW1wbGF0ZTogXy50ZW1wbGF0ZShb
CisgICAgICAnPCUgaWYobGFiZWwgPT0gZmFsc2UpIHt9IGVsc2UgeyU+JywKKyAgICAgICcgIDxs
YWJlbCBjbGFzcz0iPCU9QmFja2Zvcm0uY29udHJvbExhYmVsQ2xhc3NOYW1lJT4iPjwlPWxhYmVs
JT48L2xhYmVsPicsCisgICAgICAnPCUgfSU+JywKKyAgICAgICc8ZGl2IGNsYXNzPSI8JT1jb250
cm9sc0NsYXNzTmFtZSU+Ij4nLAorICAgICAgJyA8c2VsZWN0IGNsYXNzPSI8JT1CYWNrZm9ybS5j
b250cm9sQ2xhc3NOYW1lJT4gPCU9ZXh0cmFDbGFzc2VzLmpvaW4oXCcgXCcpJT4iJywKKyAgICAg
ICcgIG5hbWU9IjwlPW5hbWUlPiIgdmFsdWU9IjwlLXZhbHVlJT4iIDwlPWRpc2FibGVkID8gImRp
c2FibGVkIiA6ICIiJT4nLAorICAgICAgJyAgPCU9cmVxdWlyZWQgPyAicmVxdWlyZWQiIDogIiIl
PjwlPSBzZWxlY3QyLm11bHRpcGxlID8gIiBtdWx0aXBsZT4iIDogIj4iICU+JywKKyAgICAgICcg
IDwlPXNlbGVjdDIuZmlyc3RfZW1wdHkgPyAiIDxvcHRpb24+PC9vcHRpb24+IiA6ICIiJT4nLAor
ICAgICAgJyAgPCUgZm9yICh2YXIgaT0wOyBpIDwgb3B0aW9ucy5sZW5ndGg7IGkrKykgeyU+JywK
KyAgICAgICcgICA8JSB2YXIgb3B0aW9uID0gb3B0aW9uc1tpXTsgJT4nLAorICAgICAgJyAgIDxv
cHRpb24gJywKKyAgICAgICcgICAgPCUgaWYgKG9wdGlvbi5pbWFnZSkgeyAlPiBkYXRhLWltYWdl
PTwlPW9wdGlvbi5pbWFnZSU+IDwlfSU+JywKKyAgICAgICcgICAgPCUgaWYgKG9wdGlvbi5jb25u
ZWN0ZWQpIHsgJT4gZGF0YS1jb25uZWN0ZWQ9Y29ubmVjdGVkIDwlfSU+JywKKyAgICAgICcgICAg
dmFsdWU9PCUtIGZvcm1hdHRlci5mcm9tUmF3KG9wdGlvbi52YWx1ZSkgJT4nLAorICAgICAgJyAg
ICA8JSBpZiAob3B0aW9uLnNlbGVjdGVkKSB7JT5zZWxlY3RlZD0ic2VsZWN0ZWQiPCV9IGVsc2Ug
eyU+JywKKyAgICAgICcgICAgPCUgaWYgKCFzZWxlY3QyLm11bHRpcGxlICYmIG9wdGlvbi52YWx1
ZSA9PT0gcmF3VmFsdWUpIHslPnNlbGVjdGVkPSJzZWxlY3RlZCI8JX0lPicsCisgICAgICAnICAg
IDwlIGlmIChzZWxlY3QyLm11bHRpcGxlICYmIHJhd1ZhbHVlICYmIHJhd1ZhbHVlLmluZGV4T2Yo
b3B0aW9uLnZhbHVlKSAhPSAtMSl7JT5zZWxlY3RlZD0ic2VsZWN0ZWQiIGRhdGEtaW5kZXg9InJh
d1ZhbHVlLmluZGV4T2Yob3B0aW9uLnZhbHVlKSI8JX0lPicsCisgICAgICAnICAgIDwlfSU+JywK
KyAgICAgICcgICAgPCU9IGRpc2FibGVkID8gImRpc2FibGVkIiA6ICIiJT4+PCUtb3B0aW9uLmxh
YmVsJT48L29wdGlvbj4nLAorICAgICAgJyAgPCV9JT4nLAorICAgICAgJyA8L3NlbGVjdD4nLAor
ICAgICAgJyA8JSBpZiAoaGVscE1lc3NhZ2UgJiYgaGVscE1lc3NhZ2UubGVuZ3RoKSB7ICU+JywK
KyAgICAgICcgPHNwYW4gY2xhc3M9IjwlPUJhY2tmb3JtLmhlbHBNZXNzYWdlQ2xhc3NOYW1lJT4i
PjwlPWhlbHBNZXNzYWdlJT48L3NwYW4+JywKKyAgICAgICcgPCUgfSAlPicsCisgICAgICAnPC9k
aXY+JywKKyAgICBdLmpvaW4oJ1xuJykpLAorICAgIGJlZm9yZVNlbGVjdDogZnVuY3Rpb24oKSB7
CisgICAgICB2YXIgc2VsVmFsID0gYXJndW1lbnRzWzBdLnBhcmFtcy5hcmdzLmRhdGEuaWQ7CisK
KyAgICAgIGlmKHRoaXMuZmllbGQuZ2V0KCdjb25uZWN0JykgJiYgdGhpcy4kZWwuZmluZCgnb3B0
aW9uW3ZhbHVlPSInK3NlbFZhbCsnIl0nKS5hdHRyKCdkYXRhLWNvbm5lY3RlZCcpICE9PSAnY29u
bmVjdGVkJykgeworICAgICAgICB0aGlzLmZpZWxkLmdldCgnY29ubmVjdCcpLmFwcGx5KHRoaXMs
IFtzZWxWYWwsIHRoaXMuY2hhbmdlSWNvbi5iaW5kKHRoaXMpXSk7CisgICAgICB9IGVsc2Ugewor
ICAgICAgICAkKHRoaXMuJHNlbCkudHJpZ2dlcignY2hhbmdlJyk7CisgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKXsgdGhpcy5vbkNoYW5nZS5hcHBseSh0aGlzKTsgfS5iaW5kKHRoaXMpLCAy
MDApOworICAgICAgfQorICAgIH0sCisgICAgY2hhbmdlSWNvbjogZnVuY3Rpb24oZGF0YSkgewor
ICAgICAgbGV0IHNwYW4gPSB0aGlzLiRlbC5maW5kKCcuc2VsZWN0Mi1zZWxlY3Rpb24gLnNlbGVj
dDItc2VsZWN0aW9uX19yZW5kZXJlZCBzcGFuLndjVGFiSWNvbicpLAorICAgICAgICBzZWxTcGFu
ID0gdGhpcy4kZWwuZmluZCgnb3B0aW9uOnNlbGVjdGVkJyk7CisKKyAgICAgIGlmIChzcGFuLmhh
c0NsYXNzKCdpY29uLXNlcnZlci1ub3QtY29ubmVjdGVkJykpIHsKKyAgICAgICAgbGV0IGljb24g
PSAoZGF0YS5pY29uKSA/IGRhdGEuaWNvbiA6ICdpY29uLXBnJzsKKyAgICAgICAgc3Bhbi5yZW1v
dmVDbGFzcygnaWNvbi1zZXJ2ZXItbm90LWNvbm5lY3RlZCcpOworICAgICAgICBzcGFuLmFkZENs
YXNzKGljb24pOworICAgICAgICBzcGFuLmF0dHIoJ2RhdGEtY29ubmVjdGVkJywgJ2Nvbm5lY3Rl
ZCcpOworCisgICAgICAgIHNlbFNwYW4uZGF0YSgpLmltYWdlID0gaWNvbjsKKyAgICAgICAgc2Vs
U3Bhbi5hdHRyKCdkYXRhLWNvbm5lY3RlZCcsICdjb25uZWN0ZWQnKTsKKworICAgICAgICB0aGlz
Lm9uQ2hhbmdlLmFwcGx5KHRoaXMpOworICAgICAgfQorICAgICAgZWxzZSBpZiAoc3Bhbi5oYXND
bGFzcygnaWNvbi1kYXRhYmFzZS1ub3QtY29ubmVjdGVkJykpIHsKKyAgICAgICAgbGV0IGljb24g
PSAoZGF0YS5pY29uKSA/IGRhdGEuaWNvbiA6ICdwZy1pY29uLWRhdGFiYXNlJzsKKworICAgICAg
ICBzcGFuLnJlbW92ZUNsYXNzKCdpY29uLWRhdGFiYXNlLW5vdC1jb25uZWN0ZWQnKTsKKyAgICAg
ICAgc3Bhbi5hZGRDbGFzcyhpY29uKTsKKyAgICAgICAgc3Bhbi5hdHRyKCdkYXRhLWNvbm5lY3Rl
ZCcsICdjb25uZWN0ZWQnKTsKKworICAgICAgICBzZWxTcGFuLnJlbW92ZUNsYXNzKCdpY29uLWRh
dGFiYXNlLW5vdC1jb25uZWN0ZWQnKTsKKyAgICAgICAgc2VsU3Bhbi5kYXRhKCkuaW1hZ2UgPSBp
Y29uOworICAgICAgICBzZWxTcGFuLmF0dHIoJ2RhdGEtY29ubmVjdGVkJywgJ2Nvbm5lY3RlZCcp
OworCisgICAgICAgIHRoaXMub25DaGFuZ2UuYXBwbHkodGhpcyk7CisgICAgICB9CisgICAgfSwK
KyAgICBvbkNoYW5nZTogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgbW9kZWwgPSB0aGlzLm1vZGVs
LAorICAgICAgICBhdHRyQXJyID0gdGhpcy5maWVsZC5nZXQoJ25hbWUnKS5zcGxpdCgnLicpLAor
ICAgICAgICBuYW1lID0gYXR0ckFyci5zaGlmdCgpLAorICAgICAgICBwYXRoID0gYXR0ckFyci5q
b2luKCcuJyksCisgICAgICAgIHZhbHVlID0gdGhpcy5nZXRWYWx1ZUZyb21ET00oKSwKKyAgICAg
ICAgY2hhbmdlcyA9IHt9LAorICAgICAgICB0aGF0ID0gdGhpczsKKworICAgICAgaWYgKHRoaXMu
bW9kZWwuZXJyb3JNb2RlbCBpbnN0YW5jZW9mIEJhY2tib25lLk1vZGVsKSB7CisgICAgICAgIGlm
IChfLmlzRW1wdHkocGF0aCkpIHsKKyAgICAgICAgICB0aGlzLm1vZGVsLmVycm9yTW9kZWwudW5z
ZXQobmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdmFyIG5lc3RlZEVycm9yID0g
dGhpcy5tb2RlbC5lcnJvck1vZGVsLmdldChuYW1lKTsKKyAgICAgICAgICBpZiAobmVzdGVkRXJy
b3IpIHsKKyAgICAgICAgICAgIHRoaXMua2V5UGF0aFNldHRlcihuZXN0ZWRFcnJvciwgcGF0aCwg
bnVsbCk7CisgICAgICAgICAgICB0aGlzLm1vZGVsLmVycm9yTW9kZWwuc2V0KG5hbWUsIG5lc3Rl
ZEVycm9yKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgY2hhbmdl
c1tuYW1lXSA9IF8uaXNFbXB0eShwYXRoKSA/IHZhbHVlIDogXy5jbG9uZShtb2RlbC5nZXQobmFt
ZSkpIHx8IHt9OworCisgICAgICBpZiAoIV8uaXNFbXB0eShwYXRoKSkgdGhhdC5rZXlQYXRoU2V0
dGVyKGNoYW5nZXNbbmFtZV0sIHBhdGgsIHZhbHVlKTsKKyAgICAgIHRoYXQuc3RvcExpc3Rlbmlu
Zyh0aGF0Lm1vZGVsLCAnY2hhbmdlOicgKyBuYW1lLCB0aGF0LnJlbmRlcik7CisgICAgICBtb2Rl
bC5zZXQoY2hhbmdlcyk7CisgICAgICB0aGF0Lmxpc3RlblRvKHRoYXQubW9kZWwsICdjaGFuZ2U6
JyArIG5hbWUsIHRoYXQucmVuZGVyKTsKKworICAgIH0sCisgICAgcmVuZGVyOiBmdW5jdGlvbigp
IHsKKyAgICAgIC8qCisgICAgICAgKiBJbml0aWFsaXphdGlvbiBmcm9tIHRoZSBvcmlnaW5hbCBj
b250cm9sLgorICAgICAgICovCisgICAgICB0aGlzLmZldGNoRGF0YSgpOworICAgICAgcmV0dXJu
IEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLnByb3RvdHlwZS5yZW5kZXIuYXBwbHkodGhpcywgYXJn
dW1lbnRzKTsKKworICAgIH0sCisgICAgZmV0Y2hEYXRhOiBmdW5jdGlvbigpIHsKKyAgICAgIC8q
CisgICAgICAgKiBXZSdyZSBhYm91dCB0byBmZXRjaCB0aGUgb3B0aW9ucyByZXF1aXJlZCBmb3Ig
dGhpcyBjb250cm9sLgorICAgICAgICovCisgICAgICB2YXIgc2VsZiA9IHRoaXMsCisgICAgICAg
IHVybCA9IHNlbGYuZmllbGQuZ2V0KCd1cmwnKSwKKyAgICAgICAgbSA9IHNlbGYubW9kZWw7CisK
KyAgICAgIHVybCA9IF8uaXNGdW5jdGlvbih1cmwpID8gdXJsLmFwcGx5KG0pIDogdXJsOworCisg
ICAgICBpZiAodXJsICYmIHNlbGYuZmllbGQuZ2V0KCdkZXBzJykpIHsKKyAgICAgICAgdXJsID0g
dXJsLnJlcGxhY2UoJ3NpZCcsIG0uZ2V0KHNlbGYuZmllbGQuZ2V0KCdkZXBzJylbMF0pKTsKKyAg
ICAgIH0KKworICAgICAgLy8gSG1tIC0gd2UgZm91bmQgdGhlIHVybCBvcHRpb24uCisgICAgICAv
LyBUaGF0IG1lYW5zIC0gd2UgbmVlZHMgdG8gZmV0Y2ggdGhlIG9wdGlvbnMgZnJvbSB0aGF0IG5v
ZGUuCisgICAgICBpZiAodXJsKSB7CisgICAgICAgIHZhciBkYXRhOworCisgICAgICAgIG0udHJp
Z2dlcigncGdhZG1pbjp2aWV3OmZldGNoaW5nJywgbSwgc2VsZi5maWVsZCk7CisgICAgICAgICQu
YWpheCh7CisgICAgICAgICAgYXN5bmM6IGZhbHNlLAorICAgICAgICAgIHVybDogdXJsLAorICAg
ICAgICB9KQorICAgICAgICAgIC5kb25lKGZ1bmN0aW9uKHJlcykgeworICAgICAgICAgIC8qCisg
ICAgICAgICAgICogV2Ugd2lsbCBjYWNoZSB0aGlzIGRhdGEgZm9yIHNob3J0IHBlcmlvZCBvZiB0
aW1lIGZvciBhdm9pZGluZworICAgICAgICAgICAqIHNhbWUgY2FsbHMuCisgICAgICAgICAgICov
CisgICAgICAgICAgICBkYXRhID0gcmVzLmRhdGE7CisgICAgICAgICAgfSkKKyAgICAgICAgICAu
ZmFpbChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIG0udHJpZ2dlcigncGdhZG1pbjp2aWV3OmZl
dGNoOmVycm9yJywgbSwgc2VsZi5maWVsZCk7CisgICAgICAgICAgfSk7CisKKyAgICAgICAgbS50
cmlnZ2VyKCdwZ2FkbWluOnZpZXc6ZmV0Y2hlZCcsIG0sIHNlbGYuZmllbGQpOworICAgICAgICAv
LyBUbyBmZXRjaCBvbmx5IG9wdGlvbnMgZnJvbSBjYWNoZSwgd2UgZG8gbm90IG5lZWQgdGltZSBm
cm9tICdhdCcKKyAgICAgICAgLy8gYXR0cmlidXRlIGJ1dCBvbmx5IG9wdGlvbnMuCisgICAgICAg
IC8vCisKKyAgICAgICAgLyoKKyAgICAgICAgICogVHJhbnNmb3JtIHRoZSBkYXRhCisgICAgICAg
ICAqLworICAgICAgICB2YXIgdHJhbnNmb3JtID0gdGhpcy5maWVsZC5nZXQoJ3RyYW5zZm9ybScp
IHx8IHNlbGYuZGVmYXVsdHMudHJhbnNmb3JtOworICAgICAgICBpZiAodHJhbnNmb3JtICYmIF8u
aXNGdW5jdGlvbih0cmFuc2Zvcm0pKSB7CisgICAgICAgICAgLy8gV2Ugd2lsbCB0cmFuc2Zvcm0g
dGhlIGRhdGEgbGF0ZXIsIHdoZW4gcmVuZGVyaW5nLgorICAgICAgICAgIC8vIEl0IHdpbGwgYWxs
b3cgdXMgdG8gZ2VuZXJhdGUgZGlmZmVyZW50IGRhdGEgYmFzZWQgb24gdGhlCisgICAgICAgICAg
Ly8gZGVwZW5kZW5jaWVzLgorICAgICAgICAgIHNlbGYuZmllbGQuc2V0KCdvcHRpb25zJywgdHJh
bnNmb3JtLmJpbmQoc2VsZiwgZGF0YSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHNl
bGYuZmllbGQuc2V0KCdvcHRpb25zJywgZGF0YSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9
LAorICB9KTsKKworCitsZXQgU2NoZW1hRGlmZkhlYWRlclZpZXcgPSBCYWNrZm9ybS5Gb3JtLmV4
dGVuZCh7CisgIGxhYmVsOiAnJywKKyAgY2xhc3NOYW1lOiBmdW5jdGlvbigpIHsKKyAgICByZXR1
cm4gJ3BnLWVsLXNtLTEyIHBnLWVsLW1kLTEyIHBnLWVsLWxnLTEyIHBnLWVsLTEyJzsKKyAgfSwK
KyAgdGFiUGFuZWxDbGFzc05hbWU6IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBCYWNrZm9ybS50
YWJDbGFzc05hbWU7CisgIH0sCisgIHRhYkluZGV4OiAwLAorICBpbml0aWFsaXplOiBmdW5jdGlv
bihvcHRzKSB7CisgICAgdGhpcy5sYWJlbCA9IG9wdHMubGFiZWw7CisgICAgQmFja2Zvcm0uRm9y
bS5wcm90b3R5cGUuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICB9LAorICB0
ZW1wbGF0ZTogXy50ZW1wbGF0ZShgCisgICAgPGRpdiBjbGFzcz0icm93IHBnYWRtaW4tY29udHJv
bC1ncm91cCI+CisgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWxhYmVsIj5TZWxlY3QgU291cmNl
PC9kaXY+CisgICAgICA8ZGl2IGNsYXNzPSJjb2wtNiBzb3VyY2Ugcm93Ij48L2Rpdj4KKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyb3cgcGdhZG1pbi1jb250cm9sLWdyb3VwIj4KKyAgICAg
IDxkaXYgY2xhc3M9ImNvbnRyb2wtbGFiZWwiPlNlbGVjdCBUYXJnZXQ8L2Rpdj4KKyAgICAgIDxk
aXYgY2xhc3M9ImNvbC02IHRhcmdldCByb3ciPjwvZGl2PgorICAgICAgPGRpdiBjbGFzcz0iY29s
LTUgdGFyZ2V0LWJ1dHRvbnMiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbi1idG5zIGQt
ZmxleCI+CisgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBtci1h
dXRvIj48aSBjbGFzcz0iaWNvbi1zY2hlbWEtZGlmZi13aGl0ZSI+PC9pPiZuYnNwO0NvbXBhcmU8
L2J1dHRvbj4KKyAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iZ2VuZXJhdGUtc2NyaXB0IiBjbGFz
cz0iYnRuIGJ0bi1zZWNvbmRhcnkgbXItMSIgZGlzYWJsZWQ+PGkgY2xhc3M9Imljb24tc2NyaXB0
Ij48L2k+Jm5ic3A7R2VuZXJhdGUgU2NyaXB0PC9idXR0b24+CisgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImJ0bi1ncm91cCBtci0xIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4KKyAgICAg
ICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZmlsdGVyIiB0eXBlPSJidXR0b24iIGNsYXNzPSJi
dG4gYnRuLXNtIGJ0bi1zZWNvbmRhcnkiCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0i
IgorICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCisgICAgICAgICAgICAgICAg
ICAgICAgICB0YWJpbmRleD0iMCI+CisgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBm
YS1maWx0ZXIgc3FsLWljb24tbGciIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+Jm5ic3A7RmlsdGVy
CisgICAgICAgICAgICAgICAgPC9idXR0b24+CisgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0i
YnRuLWZpbHRlci1kcm9wZG93biIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4t
c2Vjb25kYXJ5IGRyb3Bkb3duLXRvZ2dsZSBkcm9wZG93bi10b2dnbGUtc3BsaXQiCisgICAgICAg
ICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRy
dWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9
IiIKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgorICAgICAgICAgICAgICAg
ICAgICAgICAgdGFiaW5kZXg9IjAiPgorICAgICAgICAgICAgICAgIDwvYnV0dG9uPmAgKworICAg
ICAgWworICAgICAgICAnPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IGZpbHRlciI+JywKKyAgICAg
ICAgJzxsaT4nLAorICAgICAgICAnPGEgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iIGlkPSJidG4taWRl
bnRpY2FsIiBocmVmPSIjIiB0YWJpbmRleD0iMCI+JywKKyAgICAgICAgJzxpIGNsYXNzPSJpZGVu
dGljYWwgZmEgZmEtY2hlY2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+JywKKyAgICAgICAgJzxz
cGFuPiAnICsgZ2V0dGV4dCgnSWRlbnRpY2FsJykgKyAnIDwvc3Bhbj4nLAorICAgICAgICAnPC9h
PicsCisgICAgICAgICc8L2xpPicsCisgICAgICAgICc8bGk+JywKKyAgICAgICAgJzxhIGNsYXNz
PSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLWRpZmZlcmVudHQiIGhyZWY9IiMiIHRhYmluZGV4PSIw
Ij4nLAorICAgICAgICAnPGkgY2xhc3M9ImRpZmZlcmVudCBmYSBmYS1jaGVjayIgYXJpYS1oaWRk
ZW49InRydWUiPjwvaT4nLAorICAgICAgICAnPHNwYW4+ICcgKyBnZXR0ZXh0KCdEaWZmZXJlbnQn
KSArICcgPC9zcGFuPicsCisgICAgICAgICc8L2E+JywKKyAgICAgICAgJzwvbGk+JywKKyAgICAg
ICAgJzxsaT4nLAorICAgICAgICAnPGEgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iIGlkPSJidG4tc291
cmNlLW9ubHkiIGhyZWY9IiMiIHRhYmluZGV4PSIwIj4nLAorICAgICAgICAnPGkgY2xhc3M9InNv
dXJjZS1vbmx5IGZhIGZhLWNoZWNrIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPicsCisgICAgICAg
ICc8c3Bhbj4gJyArIGdldHRleHQoJ1NvdXJjZSBPbmx5JykgKyAnIDwvc3Bhbj4nLAorICAgICAg
ICAnPC9hPicsCisgICAgICAgICc8L2xpPicsCisgICAgICAgICc8bGk+JywKKyAgICAgICAgJzxh
IGNsYXNzPSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLXRhcmdldC1vbmx5IiBocmVmPSIjIiB0YWJp
bmRleD0iMCI+JywKKyAgICAgICAgJzxpIGNsYXNzPSJ0YXJnZXQtb25seSBmYSBmYS1jaGVjayIg
YXJpYS1oaWRkZW49InRydWUiPjwvaT4nLAorICAgICAgICAnPHNwYW4+ICcgKyBnZXR0ZXh0KCdU
YXJnZXQgT25seScpICsgJyA8L3NwYW4+JywKKyAgICAgICAgJzwvYT4nLAorICAgICAgICAnPC9s
aT4nLAorICAgICAgICAnPC91bD4nLAorICAgICAgICAnPC9kaXY+JywKKyAgICAgICAgJzwvZGl2
PicsCisgICAgICAgICc8L2Rpdj4nLAorICAgICAgICAnPC9kaXY+JywKKyAgICAgIF0uam9pbign
XG4nKQorICApLAorICByZW5kZXI6IGZ1bmN0aW9uKCkgeworICAgIHRoaXMuY2xlYW51cCgpOwor
CisgICAgdmFyIGNvbnRyb2xzID0gdGhpcy5jb250cm9scywKKyAgICAgIG0gPSB0aGlzLm1vZGVs
LAorICAgICAgc2VsZiA9IHRoaXMsCisgICAgICBpZHggPSAodGhpcy50YWJJbmRleCAqIDEwMCk7
CisKKyAgICB0aGlzLiRlbC5lbXB0eSgpOworCisgICAgJCh0aGlzLnRlbXBsYXRlKCkpLmFwcGVu
ZFRvKHRoaXMuJGVsKTsKKworICAgIHRoaXMuZmllbGRzLmVhY2goZnVuY3Rpb24oZikgeworICAg
ICAgdmFyIGNudHIgPSBuZXcoZi5nZXQoJ2NvbnRyb2wnKSkoeworICAgICAgICBmaWVsZDogZiwK
KyAgICAgICAgbW9kZWw6IG0sCisgICAgICAgIGRpYWxvZzogc2VsZiwKKyAgICAgICAgdGFiSW5k
ZXg6IGlkeCwKKyAgICAgIH0pOworCisgICAgICBpZiAoZi5nZXQoJ2dyb3VwJykgJiYgZi5nZXQo
J2dyb3VwJykgPT0gJ3NvdXJjZScpIHsKKyAgICAgICAgc2VsZi4kZWwuZmluZCgnLnNvdXJjZScp
LmFwcGVuZChjbnRyLnJlbmRlcigpLiRlbCk7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAg
ICAgc2VsZi4kZWwuZmluZCgnLnRhcmdldCcpLmFwcGVuZChjbnRyLnJlbmRlcigpLiRlbCk7Cisg
ICAgICB9CisKKyAgICAgIGNvbnRyb2xzLnB1c2goY250cik7CisgICAgfSk7CisKKyAgICByZXR1
cm4gdGhpczsKKyAgfSwKKyAgcmVtb3ZlOiBmdW5jdGlvbihvcHRzKSB7CisgICAgaWYgKG9wdHMg
JiYgb3B0cy5kYXRhKSB7CisgICAgICBpZiAodGhpcy5tb2RlbCkgeworICAgICAgICBpZiAodGhp
cy5tb2RlbC5yZXNldCkgeworICAgICAgICAgIHRoaXMubW9kZWwucmVzZXQoeworICAgICAgICAg
ICAgdmFsaWRhdGU6IGZhbHNlLAorICAgICAgICAgICAgc2lsZW50OiB0cnVlLAorICAgICAgICAg
ICAgc3RvcDogdHJ1ZSwKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLm1v
ZGVsLmNsZWFyKHsKKyAgICAgICAgICB2YWxpZGF0ZTogZmFsc2UsCisgICAgICAgICAgc2lsZW50
OiB0cnVlLAorICAgICAgICAgIHN0b3A6IHRydWUsCisgICAgICAgIH0pOworICAgICAgICBkZWxl
dGUodGhpcy5tb2RlbCk7CisgICAgICB9CisgICAgICBpZiAodGhpcy5lcnJvck1vZGVsKSB7Cisg
ICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcih7CisgICAgICAgICAgdmFsaWRhdGU6IGZhbHNl
LAorICAgICAgICAgIHNpbGVudDogdHJ1ZSwKKyAgICAgICAgICBzdG9wOiB0cnVlLAorICAgICAg
ICB9KTsKKyAgICAgICAgZGVsZXRlKHRoaXMuZXJyb3JNb2RlbCk7CisgICAgICB9CisgICAgfQor
ICAgIHRoaXMuY2xlYW51cCgpOworICAgIEJhY2tmb3JtLkZvcm0ucHJvdG90eXBlLnJlbW92ZS5h
cHBseSh0aGlzLCBhcmd1bWVudHMpOworICB9LAorfSk7CisKK2xldCBTY2hlbWFEaWZmRm9vdGVy
VmlldyA9IEJhY2tmb3JtLkZvcm0uZXh0ZW5kKHsKKyAgY2xhc3NOYW1lOiBmdW5jdGlvbigpIHsK
KyAgICByZXR1cm4gJ3NldC1ncm91cCBwZy1lbC0xMic7CisgIH0sCisgIHRhYlBhbmVsQ2xhc3NO
YW1lOiBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gQmFja2Zvcm0udGFiQ2xhc3NOYW1lOworICB9
LAorICBsZWdlbmRDbGFzczogJ2JhZGdlJywKKyAgY29udGVudENsYXNzOiBCYWNrZm9ybS5hY2Nv
cmRpYW5Db250ZW50Q2xhc3NOYW1lLAorICB0ZW1wbGF0ZTogeworICAgICdjb250ZW50JzogXy50
ZW1wbGF0ZShgCisgICAgICAgPGRpdiBjbGFzcz0icGctZWwtc20tMTIgcm93IDwlPWNvbnRlbnRD
bGFzcyU+Ij4KKyAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBnLWVsLXNtLTQgZGRsLXNv
dXJjZSI+U291cmNlPC9kaXY+CisgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwZy1lbC1z
bS00IGRkbC10YXJnZXQiPlRhcmdldDwvZGl2PgorICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0icGctZWwtc20tNCBkZGwtZGlmZiI+RGlmZmVyZW5jZQorICAgICAgICAgICAgICAgICAgPC9k
aXY+CisgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgYCksCisgIH0sCisg
IGluaXRpYWxpemU6IGZ1bmN0aW9uKG9wdHMpIHsKKyAgICB0aGlzLmxhYmVsID0gb3B0cy5sYWJl
bDsKKyAgICBCYWNrZm9ybS5Gb3JtLnByb3RvdHlwZS5pbml0aWFsaXplLmFwcGx5KHRoaXMsIGFy
Z3VtZW50cyk7CisgIH0sCisgIHJlbmRlcjogZnVuY3Rpb24oKSB7CisgICAgdGhpcy5jbGVhbnVw
KCk7CisKKyAgICBsZXQgbSA9IHRoaXMubW9kZWwsCisgICAgICAkZWwgPSB0aGlzLiRlbCwKKyAg
ICAgIHRtcGwgPSB0aGlzLnRlbXBsYXRlLAorICAgICAgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xz
LAorICAgICAgZGF0YSA9IHsKKyAgICAgICAgJ2NsYXNzTmFtZSc6IF8ucmVzdWx0KHRoaXMsICdj
bGFzc05hbWUnKSwKKyAgICAgICAgJ2xlZ2VuZENsYXNzJzogXy5yZXN1bHQodGhpcywgJ2xlZ2Vu
ZENsYXNzJyksCisgICAgICAgICdjb250ZW50Q2xhc3MnOiBfLnJlc3VsdCh0aGlzLCAnY29udGVu
dENsYXNzJyksCisgICAgICAgICdjb2xsYXBzZSc6IF8ucmVzdWx0KHRoaXMsICdjb2xsYXBzZScp
LAorICAgICAgfSwKKyAgICAgIGlkeCA9ICh0aGlzLnRhYkluZGV4ICogMTAwKTsKKworICAgIHRo
aXMuJGVsLmVtcHR5KCk7CisKKyAgICBsZXQgZWwgPSAkKCh0bXBsWydjb250ZW50J10pKGRhdGEp
KS5hcHBlbmRUbygkZWwpOworCisgICAgdGhpcy5maWVsZHMuZWFjaChmdW5jdGlvbihmKSB7Cisg
ICAgICBsZXQgY250ciA9IG5ldyhmLmdldCgnY29udHJvbCcpKSh7CisgICAgICAgIGZpZWxkOiBm
LAorICAgICAgICBtb2RlbDogbSwKKyAgICAgICAgZGlhbG9nOiBzZWxmLAorICAgICAgICB0YWJJ
bmRleDogaWR4LAorICAgICAgICBuYW1lOiBmLmdldCgnbmFtZScpLAorICAgICAgfSk7CisKKyAg
ICAgIGlmIChmLmdldCgnZ3JvdXAnKSAmJiBmLmdldCgnZ3JvdXAnKSA9PSAnZGRsLXNvdXJjZScp
IHsKKyAgICAgICAgZWwuZmluZCgnLmRkbC1zb3VyY2UnKS5hcHBlbmQoY250ci5yZW5kZXIoKS4k
ZWwpOworICAgICAgfQorICAgICAgZWxzZSBpZiAoZi5nZXQoJ2dyb3VwJykgJiYgZi5nZXQoJ2dy
b3VwJykgPT0gJ2RkbC10YXJnZXQnKSB7CisgICAgICAgIGVsLmZpbmQoJy5kZGwtdGFyZ2V0Jyku
YXBwZW5kKGNudHIucmVuZGVyKCkuJGVsKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAg
ICBlbC5maW5kKCcuZGRsLWRpZmYnKS5hcHBlbmQoY250ci5yZW5kZXIoKS4kZWwpOworICAgICAg
fQorICAgICAgY29udHJvbHMucHVzaChjbnRyKTsKKyAgICB9KTsKKworICAgIGxldCAkZGlmZl9z
YyA9IHRoaXMuJGVsLmZpbmQoJy5zb3VyY2VfZGRsJyksCisgICAgICAkZGlmZl90ciA9IHRoaXMu
JGVsLmZpbmQoJy50YXJnZXRfZGRsJyksCisgICAgICAkZGlmZiA9IHRoaXMuJGVsLmZpbmQoJy5k
aWZmX2RkbCcpLAorICAgICAgZm9vdGVyX2hlaWdodCA9IHRoaXMuJGVsLnBhcmVudCgpLmhlaWdo
dCgpIC0gNTA7CisgICAgJGRpZmZfc2MuaGVpZ2h0KGZvb3Rlcl9oZWlnaHQpOworICAgICRkaWZm
X3NjLmNzcyh7CisgICAgICAnaGVpZ2h0JzogZm9vdGVyX2hlaWdodCArICdweCcsCisgICAgfSk7
CisgICAgJGRpZmZfdHIuaGVpZ2h0KGZvb3Rlcl9oZWlnaHQpOworICAgICRkaWZmX3RyLmNzcyh7
CisgICAgICAnaGVpZ2h0JzogZm9vdGVyX2hlaWdodCArICdweCcsCisgICAgfSk7CisgICAgJGRp
ZmYuaGVpZ2h0KGZvb3Rlcl9oZWlnaHQpOworICAgICRkaWZmLmNzcyh7CisgICAgICAnaGVpZ2h0
JzogZm9vdGVyX2hlaWdodCArICdweCcsCisgICAgfSk7CisKKworICAgIHJldHVybiB0aGlzOwor
ICB9LAorfSk7CitleHBvcnQgeworICBTY2hlbWFEaWZmU2VsZWN0MkNvbnRyb2wsCisgIFNjaGVt
YURpZmZIZWFkZXJWaWV3LAorICBTY2hlbWFEaWZmRm9vdGVyVmlldywKKyAgU2NoZW1hRGlmZlNx
bENvbnRyb2wsCit9OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYv
c3RhdGljL2pzL3NjaGVtYV9kaWZmLmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYv
c3RhdGljL2pzL3NjaGVtYV9kaWZmLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMC4uYTU2NTAxOWJjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2No
ZW1hX2RpZmYvc3RhdGljL2pzL3NjaGVtYV9kaWZmLmpzCkBAIC0wLDAgKzEsMTQ1IEBACisvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAo
QykgMjAxMyAtIDIwMTksIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29m
dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CisKK2RlZmluZSgncGdhZG1pbi5zY2hlbWFkaWZmJywgWworICAnc291cmNlcy9nZXR0ZXh0Jywg
J3NvdXJjZXMvdXJsX2ZvcicsICdqcXVlcnknLCAndW5kZXJzY29yZScsCisgICdzb3VyY2VzL3Bn
YWRtaW4nLCAnc291cmNlcy9jc3JmJywgJ3BnYWRtaW4uYnJvd3Nlci5ub2RlJywKK10sIGZ1bmN0
aW9uKAorICBnZXR0ZXh0LCB1cmxfZm9yLCAkLCBfLCBwZ0FkbWluLCBjc3JmVG9rZW4KKykgewor
CisgIHZhciB3Y0RvY2tlciA9IHdpbmRvdy53Y0RvY2tlciwKKyAgICBwZ0Jyb3dzZXIgPSBwZ0Fk
bWluLkJyb3dzZXI7CisgIC8qIFJldHVybiBiYWNrLCB0aGlzIGhhcyBiZWVuIGNhbGxlZCBtb3Jl
IHRoYW4gb25jZSAqLworICBpZiAocGdCcm93c2VyLlNjaGVtYURpZmYpCisgICAgcmV0dXJuIHBn
QnJvd3Nlci5TY2hlbWFEaWZmOworCisgIC8vIENyZWF0ZSBhbiBPYmplY3QgUmVzdG9yZSBvZiBw
Z0Jyb3dzZXIgY2xhc3MKKyAgcGdCcm93c2VyLlNjaGVtYURpZmYgPSB7CisgICAgaW5pdDogZnVu
Y3Rpb24oKSB7CisgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgIGNzcmZUb2tlbi5zZXRQR0NT
UkZUb2tlbihwZ0FkbWluLmNzcmZfdG9rZW5faGVhZGVyLCBwZ0FkbWluLmNzcmZfdG9rZW4pOwor
CisKKyAgICAgIC8vIERlZmluZSB0aGUgbm9kZXMgb24gd2hpY2ggdGhlIG1lbnVzIHRvIGJlIGFw
cGVhcgorICAgICAgdmFyIG1lbnVzID0gW3sKKyAgICAgICAgbmFtZTogJ3NjaGVtYV9kaWZmJywK
KyAgICAgICAgbW9kdWxlOiB0aGlzLAorICAgICAgICBhcHBsaWVzOiBbJ3Rvb2xzJ10sCisgICAg
ICAgIGNhbGxiYWNrOiAnc2hvd19zY2hlbWFfZGlmZl90b29sJywKKyAgICAgICAgcHJpb3JpdHk6
IDEsCisgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTY2hlbWEgRGlmZicpLAorICAgICAgICBlbmFi
bGU6IHRydWUsCisgICAgICB9XTsKKworICAgICAgcGdCcm93c2VyLmFkZF9tZW51cyhtZW51cyk7
CisKKyAgICAgIC8vIENyZWF0aW5nIGEgbmV3IHBnQnJvd3NlciBmcmFtZSB0byBzaG93IHRoZSBk
YXRhLgorICAgICAgdmFyIHNjaGVtYURpZmZGcmFtZVR5cGUgPSBuZXcgcGdCcm93c2VyLkZyYW1l
KHsKKyAgICAgICAgbmFtZTogJ2ZybV9zY2hlbWFkaWZmJywKKyAgICAgICAgc2hvd1RpdGxlOiB0
cnVlLAorICAgICAgICBpc0Nsb3NlYWJsZTogdHJ1ZSwKKyAgICAgICAgaXNQcml2YXRlOiB0cnVl
LAorICAgICAgICB1cmw6ICdhYm91dDpibGFuaycsCisgICAgICB9KTsKKworICAgICAgbGV0IHNl
bGYgPSB0aGlzOworICAgICAgLyogQ2FjaGUgbWF5IHRha2UgdGltZSB0byBsb2FkIGZvciB0aGUg
Zmlyc3QgdGltZQorICAgICAgICogS2VlcCB0cnlpbmcgdGlsbCBhdmFpbGFibGUKKyAgICAgICAq
LworICAgICAgbGV0IGNhY2hlSW50ZXJ2YWxJZCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgewor
ICAgICAgICBpZihwZ0Jyb3dzZXIucHJlZmVyZW5jZV92ZXJzaW9uKCkgPiAwKSB7CisgICAgICAg
ICAgc2VsZi5wcmVmZXJlbmNlcyA9IHBnQnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVs
ZSgnc2NoZW1hX2RpZmYnKTsKKyAgICAgICAgICBjbGVhckludGVydmFsKGNhY2hlSW50ZXJ2YWxJ
ZCk7CisgICAgICAgIH0KKyAgICAgIH0sMCk7CisKKyAgICAgIHBnQnJvd3Nlci5vblByZWZlcmVu
Y2VzQ2hhbmdlKCdzY2hlbWFfZGlmZicsIGZ1bmN0aW9uKCkgeworICAgICAgICBzZWxmLnByZWZl
cmVuY2VzID0gcGdCcm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzY2hlbWFfZGlm
ZicpOworICAgICAgfSk7CisKKyAgICAgIC8vIExvYWQgdGhlIG5ld2x5IGNyZWF0ZWQgZnJhbWUK
KyAgICAgIHNjaGVtYURpZmZGcmFtZVR5cGUubG9hZChwZ0Jyb3dzZXIuZG9ja2VyKTsKKyAgICAg
IHJldHVybiB0aGlzOworICAgIH0sCisgICAgCisgICAgLy8gQ2FsbGJhY2sgdG8gZHJhdyBzY2hl
bWEgZGlmZiBmb3Igb2JqZWN0cworICAgIHNob3dfc2NoZW1hX2RpZmZfdG9vbDogZnVuY3Rpb24o
KSB7CisgICAgICB2YXIgc2VsZiA9IHRoaXMsCisgICAgICAgIGJhc2VVcmwgPSB1cmxfZm9yKCdz
Y2hlbWFfZGlmZi5pbml0aWFsaXplJywgbnVsbCk7CisKKyAgICAgICQuYWpheCh7CisgICAgICAg
IHVybDogYmFzZVVybCwKKyAgICAgICAgbWV0aG9kOiAnR0VUJywKKyAgICAgICAgZGF0YVR5cGU6
ICdqc29uJywKKyAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKKyAgICAg
IH0pCisgICAgICAgIC5kb25lKGZ1bmN0aW9uKHJlcykgeworICAgICAgICAgIHNlbGYudHJhbnNf
aWQgPSByZXMuZGF0YS5zY2hlbWFEaWZmVHJhbnNJZDsKKyAgICAgICAgICByZXMuZGF0YS5wYW5l
bF90aXRsZSA9ICdTY2hlbWEgRGlmZic7IC8vVE9ETzogU2V0IHRoZSBwYW5lbCB0aXRsZQorICAg
ICAgICAgIC8vIFRPRE86IEZvbGxvd2luZyBmdW5jdGlvbiBpcyB1c2VkIHRvIHRlc3QgdGhlIGZl
dGNoaW5nIG9mIHRoZQorICAgICAgICAgIC8vIGRhdGFiYXNlcyB0aGlzIHNob3VsZCBiZSBtb3Zl
ZCB0byBzZXJ2ZXIgc2VsZWN0aW9uIGV2ZW50IGxhdGVyLgorICAgICAgICAgIHNlbGYubGF1bmNo
X3NjaGVtYV9kaWZmKHJlcy5kYXRhKTsKKyAgICAgICAgfSkKKyAgICAgICAgLmZhaWwoZnVuY3Rp
b24oeGhyKSB7CisgICAgICAgICAgc2VsZi5yYWlzZV9lcnJvcl9vbl9mYWlsKGdldHRleHQoJ1Nj
aGVtYSBEaWZmIGluaXRpYWxpemUgZXJyb3InKSAsIHhocik7CisgICAgICAgIH0pOworICAgIH0s
CisKKyAgICBsYXVuY2hfc2NoZW1hX2RpZmY6IGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgIHZhciBw
YW5lbF90aXRsZSA9IGRhdGEucGFuZWxfdGl0bGUsCisgICAgICAgIHRyYW5zX2lkID0gZGF0YS5z
Y2hlbWFEaWZmVHJhbnNJZCwKKyAgICAgICAgcGFuZWxfdG9vbHRpcCA9ICcnOworCisgICAgICB2
YXIgdXJsX3BhcmFtcyA9IHsKKyAgICAgICAgICAndHJhbnNfaWQnOiB0cmFuc19pZCwKKyAgICAg
ICAgICAnZWRpdG9yX3RpdGxlJzogcGFuZWxfdGl0bGUsCisgICAgICAgIH0sCisgICAgICAgIGJh
c2VVcmwgPSB1cmxfZm9yKCdzY2hlbWFfZGlmZi5wYW5lbCcsIHVybF9wYXJhbXMpOworCisgICAg
ICBpZiAodGhpcy5wcmVmZXJlbmNlcy5zY2hlbWFfZGlmZl9uZXdfYnJvd3Nlcl90YWIpIHsKKyAg
ICAgICAgd2luZG93Lm9wZW4oYmFzZVVybCwgJ19ibGFuaycpOworICAgICAgfSBlbHNlIHsKKwor
ICAgICAgICB2YXIgcHJvcGVydGllc1BhbmVsID0gcGdCcm93c2VyLmRvY2tlci5maW5kUGFuZWxz
KCdwcm9wZXJ0aWVzJyksCisgICAgICAgICAgc2NoZW1hRGlmZlBhbmVsID0gcGdCcm93c2VyLmRv
Y2tlci5hZGRQYW5lbCgnZnJtX3NjaGVtYWRpZmYnLCB3Y0RvY2tlci5ET0NLLlNUQUNLRUQsIHBy
b3BlcnRpZXNQYW5lbFswXSk7CisKKyAgICAgICAgLy8gU2V0IHBhbmVsIHRpdGxlIGFuZCBpY29u
CisgICAgICAgIHNjaGVtYURpZmZQYW5lbC50aXRsZSgnPHNwYW4gdGl0bGU9IicrcGFuZWxfdG9v
bHRpcCsnIj4nK3BhbmVsX3RpdGxlKyc8L3NwYW4+Jyk7CisgICAgICAgIHNjaGVtYURpZmZQYW5l
bC5pY29uKCdpY29uLXNjaGVtYS1kaWZmJyk7CisgICAgICAgIHNjaGVtYURpZmZQYW5lbC5mb2N1
cygpOworCisgICAgICAgIHZhciBvcGVuU2NoZW1hRGlmZlVSTCA9IGZ1bmN0aW9uKGopIHsKKyAg
ICAgICAgICAvLyBhZGQgc3Bpbm5lciBlbGVtZW50CisgICAgICAgICAgJChqKS5kYXRhKCdlbWJl
ZGRlZEZyYW1lJykuJGNvbnRhaW5lci5hcHBlbmQocGdCcm93c2VyLlNjaGVtYURpZmYuc3Bpbm5l
cl9lbCk7CisgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZh
ciBmcmFtZUluaXRpYWxpemVkID0gJChqKS5kYXRhKCdmcmFtZUluaXRpYWxpemVkJyk7CisgICAg
ICAgICAgICBpZiAoZnJhbWVJbml0aWFsaXplZCkgeworICAgICAgICAgICAgICB2YXIgZnJhbWUg
PSAkKGopLmRhdGEoJ2VtYmVkZGVkRnJhbWUnKTsKKyAgICAgICAgICAgICAgaWYgKGZyYW1lKSB7
CisgICAgICAgICAgICAgICAgZnJhbWUub3BlblVSTChiYXNlVXJsKTsKKyAgICAgICAgICAgICAg
ICBmcmFtZS4kY29udGFpbmVyLmZpbmQoJy5wZy1zcC1jb250YWluZXInKS5kZWxheSgxMDAwKS5o
aWRlKDEpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICBvcGVuU2NoZW1hRGlmZlVSTChqKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9LCAx
MDApOworICAgICAgICB9OworCisgICAgICAgIG9wZW5TY2hlbWFEaWZmVVJMKHNjaGVtYURpZmZQ
YW5lbCk7CisgICAgICB9CisKKyAgICB9LAorICB9OworCisgIHJldHVybiBwZ0Jyb3dzZXIuU2No
ZW1hRGlmZjsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYv
c3RhdGljL2pzL3NjaGVtYV9kaWZmX2hvb2suanMgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFf
ZGlmZi9zdGF0aWMvanMvc2NoZW1hX2RpZmZfaG9vay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAuLjM0NjE2Y2YxMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu
L3Rvb2xzL3NjaGVtYV9kaWZmL3N0YXRpYy9qcy9zY2hlbWFfZGlmZl9ob29rLmpzCkBAIC0wLDAg
KzEsNDIgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLwor
Ly8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOSwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh
bQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl
bmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKworZGVmaW5lKFsKKyAgJ3NvdXJjZXMvZ2V0dGV4dCcsICdzb3VyY2Vz
L3VybF9mb3InLCAnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLAorICAnYWxlcnRpZnknLCAnc291cmNl
cy9wZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3NlcicsCisgICdiYWNrYm9uZScsICdwZ2FkbWluLmJh
Y2tncmlkJywgJ2NvZGVtaXJyb3InLCAncGdhZG1pbi5iYWNrZm9ybScsCisgICdwZ2FkbWluLnRv
b2xzLnNjaGVtYV9kaWZmX3VpJywnd2Nkb2NrZXInLCAncGdhZG1pbi5icm93c2VyLmZyYW1lJywK
KyAgJ3BnYWRtaW4uZGF0YWdyaWQnLAorXSwgZnVuY3Rpb24oCisgIGdldHRleHQsIHVybF9mb3Is
ICQsIF8sIEFsZXJ0aWZ5LCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIEJhY2tib25lLCBCYWNrZ3JpZCwK
KyAgQ29kZU1pcnJvciwgQmFja2Zvcm0sIFNjaGVtYURpZmZVSU1vZHVsZQorKSB7CisgIHZhciBw
Z1Rvb2xzID0gcGdBZG1pbi5Ub29scyA9IHBnQWRtaW4uVG9vbHMgfHwge307CisgIHZhciBTY2hl
bWFEaWZmVUkgPSBTY2hlbWFEaWZmVUlNb2R1bGUuZGVmYXVsdDsKKworICAvKiBSZXR1cm4gYmFj
aywgdGhpcyBoYXMgYmVlbiBjYWxsZWQgbW9yZSB0aGFuIG9uY2UgKi8KKyAgaWYgKHBnVG9vbHMu
U2NoZW1hRGlmZkhvb2spCisgICAgcmV0dXJuIHBnVG9vbHMuU2NoZW1hRGlmZkhvb2s7CisKKyAg
cGdUb29scy5TY2hlbWFEaWZmSG9vayA9IHsKKyAgICBsb2FkOiBmdW5jdGlvbih0cmFuc19pZCkg
eworICAgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICQu
YWpheCh7CisgICAgICAgICAgdXJsOiB1cmxfZm9yKCdzY2hlbWFkaWZmLmluZGV4JykgKyAnY2xv
c2UvJyt0cmFuc19pZCwKKyAgICAgICAgICBtZXRob2Q6ICdERUxFVEUnLAorICAgICAgICB9KTsK
KyAgICAgIH07CisKKyAgICAgIGxldCBzY2hlbWFVaSA9IG5ldyBTY2hlbWFEaWZmVUkoJCgnI3Nj
aGVtYS1kaWZmLWNvbnRhaW5lcicpLCB0cmFuc19pZCk7CisgICAgICBzY2hlbWFVaS5yZW5kZXIo
KTsKKyAgICB9LAorICB9OworCisgIHJldHVybiBwZ1Rvb2xzLlNjaGVtYURpZmZIb29rOworfSk7
CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9zdGF0aWMvanMvc2No
ZW1hX2RpZmZfdWkuanMgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9zdGF0aWMvanMv
c2NoZW1hX2RpZmZfdWkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4w
ZTEwZWMwNjMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlm
Zi9zdGF0aWMvanMvc2NoZW1hX2RpZmZfdWkuanMKQEAgLTAsMCArMSw4MzYgQEAKKy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v
CisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAy
MDEzIC0gMjAxOSwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2Fy
ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwor
aW1wb3J0IHVybF9mb3IgZnJvbSAnc291cmNlcy91cmxfZm9yJzsKK2ltcG9ydCAkIGZyb20gJ2px
dWVyeSc7CitpbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOworaW1wb3J0IEFs
ZXJ0aWZ5IGZyb20gJ3BnYWRtaW4uYWxlcnRpZnlqcyc7CitpbXBvcnQgQmFja2JvbmUgZnJvbSAn
YmFja2JvbmUnOworaW1wb3J0IFNsaWNrIGZyb20gJ3NvdXJjZXMvLi4vYnVuZGxlL3NsaWNrZ3Jp
ZCc7CitpbXBvcnQgcGdBZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRtaW4nOworaW1wb3J0IHtzZXRQ
R0NTUkZUb2tlbn0gZnJvbSAnc291cmNlcy9jc3JmJzsKK2ltcG9ydCB7Z2VuZXJhdGVTY3JpcHR9
IGZyb20gJ3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9zaG93X3F1ZXJ5X3Rvb2wnOworaW1wb3J0
ICdwZ2FkbWluLnNxbGVkaXRvcic7CisKK2ltcG9ydCB7U2NoZW1hRGlmZlNlbGVjdDJDb250cm9s
LCBTY2hlbWFEaWZmSGVhZGVyVmlldywKKyAgU2NoZW1hRGlmZkZvb3RlclZpZXcsIFNjaGVtYURp
ZmZTcWxDb250cm9sfSBmcm9tICcuL3NjaGVtYV9kaWZmLmJhY2tmb3JtJzsKKwordmFyIHdjRG9j
a2VyID0gd2luZG93LndjRG9ja2VyOworCitleHBvcnQgZGVmYXVsdCBjbGFzcyBTY2hlbWFEaWZm
VUkgeworICBjb25zdHJ1Y3Rvcihjb250YWluZXIsIHRyYW5zX2lkKSB7CisgICAgdmFyIHNlbGYg
PSB0aGlzOworICAgIHRoaXMuJGNvbnRhaW5lciA9IGNvbnRhaW5lcjsKKyAgICB0aGlzLmhlYWRl
ciA9IG51bGw7CisgICAgdGhpcy50cmFuc19pZCA9IHRyYW5zX2lkOworICAgIHRoaXMuZmlsdGVy
cyA9IFsnSWRlbnRpY2FsJywgJ0RpZmZlcmVudCcsICdTb3VyY2UgT25seScsICdUYXJnZXQgT25s
eSddOworICAgIHRoaXMuc2VsX2ZpbHRlcnMgPSBbJ0lkZW50aWNhbCcsICdEaWZmZXJlbnQnLCAn
U291cmNlIE9ubHknLCAnVGFyZ2V0IE9ubHknXTsKKyAgICB0aGlzLmRhdGFWaWV3ID0gbnVsbDsK
KyAgICB0aGlzLmdyaWQgPSBudWxsLAorICAgIHRoaXMuc2VsZWN0aW9uID0ge307CisKKyAgICB0
aGlzLm1vZGVsID0gbmV3IEJhY2tib25lLk1vZGVsKHsKKyAgICAgIHNvdXJjZV9zaWQ6IHVuZGVm
aW5lZCwKKyAgICAgIHNvdXJjZV9kaWQ6IHVuZGVmaW5lZCwKKyAgICAgIHNvdXJjZV9zY2lkOiB1
bmRlZmluZWQsCisgICAgICB0YXJnZXRfc2lkOiB1bmRlZmluZWQsCisgICAgICB0YXJnZXRfZGlk
OiB1bmRlZmluZWQsCisgICAgICB0YXJnZXRfc2NpZDogdW5kZWZpbmVkLAorICAgICAgc291cmNl
X2RkbDogdW5kZWZpbmVkLAorICAgICAgdGFyZ2V0X2RkbDogdW5kZWZpbmVkLAorICAgICAgZGlm
Zl9kZGw6IHVuZGVmaW5lZCwKKyAgICB9KTsKKworICAgIHNldFBHQ1NSRlRva2VuKHBnQWRtaW4u
Y3NyZl90b2tlbl9oZWFkZXIsIHBnQWRtaW4uY3NyZl90b2tlbik7CisKKyAgICB0aGlzLmRvY2tl
ciA9IG5ldyB3Y0RvY2tlcigKKyAgICAgIHRoaXMuJGNvbnRhaW5lciwgeworICAgICAgICBhbGxv
d0NvbnRleHRNZW51OiBmYWxzZSwKKyAgICAgICAgYWxsb3dDb2xsYXBzZTogZmFsc2UsCisgICAg
ICAgIGxvYWRpbmdDbGFzczogJ3BnLXNwLWljb24nLAorICAgICAgICB0aGVtZVBhdGg6IHVybF9m
b3IoJ3N0YXRpYycsIHsKKyAgICAgICAgICAnZmlsZW5hbWUnOiAnY3NzJywKKyAgICAgICAgfSks
CisgICAgICAgIHRoZW1lOiAnd2ViY2FiaW4ub3ZlcnJpZGVzLmNzcycsCisgICAgICB9CisgICAg
KTsKKworICAgIHRoaXMuaGVhZGVyX3BhbmVsID0gbmV3IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7
CisgICAgICBuYW1lOiAnc2NoZW1hX2RpZmZfaGVhZGVyX3BhbmVsJywKKyAgICAgIHNob3dUaXRs
ZTogZmFsc2UsCisgICAgICBpc0Nsb3NlYWJsZTogZmFsc2UsCisgICAgICBpc1ByaXZhdGU6IHRy
dWUsCisgICAgICBjb250ZW50OiAnPGRpdiBpZD0ic2NoZW1hLWRpZmYtaGVhZGVyIiBjbGFzcz0i
cGctZWwtY29udGFpbmVyIiBlbD0ic20iPjwvZGl2PjxkaXYgaWQ9InNjaGVtYS1kaWZmLWdyaWQi
IGNsYXNzPSJwZy1lbC1jb250YWluZXIiIGVsPSJzbSI+PC9kaXY+JywKKyAgICAgIGVsQ29udGFp
bmVyOiB0cnVlLAorICAgIH0pOworCisgICAgdGhpcy5mb290ZXJfcGFuZWwgPSBuZXcgcGdBZG1p
bi5Ccm93c2VyLlBhbmVsKHsKKyAgICAgIG5hbWU6ICdzY2hlbWFfZGlmZl9mb290ZXJfcGFuZWwn
LAorICAgICAgdGl0bGU6IGdldHRleHQoJ0RETCBDb21wYXJpc29uJyksCisgICAgICBpc0Nsb3Nl
YWJsZTogZmFsc2UsCisgICAgICBpc1ByaXZhdGU6IHRydWUsCisgICAgICBoZWlnaHQ6ICc2MCcs
CisgICAgICBjb250ZW50OiAnPGRpdiBpZD0ic2NoZW1hLWRpZmYtZGRsLWNvbXAiIGNsYXNzPSJw
Zy1lbC1jb250YWluZXIiIGVsPSJzbSI+PC9kaXY+JywKKyAgICB9KTsKKworICAgIHRoaXMuaGVh
ZGVyX3BhbmVsLmxvYWQodGhpcy5kb2NrZXIpOworICAgIHRoaXMuZm9vdGVyX3BhbmVsLmxvYWQo
dGhpcy5kb2NrZXIpOworCisKKyAgICB0aGlzLnBhbmVsX29iaiA9IHRoaXMuZG9ja2VyLmFkZFBh
bmVsKCdzY2hlbWFfZGlmZl9oZWFkZXJfcGFuZWwnLCB3Y0RvY2tlci5ET0NLLlRPUCwge3c6Jzk1
JScsIGg6JzUwJSd9KTsKKyAgICB0aGlzLmZvb3Rlcl9wYW5lbF9vYmogPSB0aGlzLmRvY2tlci5h
ZGRQYW5lbCgnc2NoZW1hX2RpZmZfZm9vdGVyX3BhbmVsJywgd2NEb2NrZXIuRE9DSy5CT1RUT00s
IHRoaXMucGFuZWxfb2JqLCB7dzonOTUlJywgaDonNTAlJ30pOworCisgICAgc2VsZi5mb290ZXJf
cGFuZWxfb2JqLm9uKHdjRG9ja2VyLkVWRU5ULlZJU0lCSUxJVFlfQ0hBTkdFRCwgZnVuY3Rpb24o
KSB7CisgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnJlc2l6ZV9n
cmlkKCk7CisgICAgICB9LmJpbmQoc2VsZiksIDIwMCk7CisgICAgfSk7CisKKyAgICBzZWxmLmZv
b3Rlcl9wYW5lbF9vYmoub24od2NEb2NrZXIuRVZFTlQuUkVTSVpFX0VOREVELCBmdW5jdGlvbigp
IHsKKyAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucmVzaXplX3Bh
bmVscygpOworICAgICAgfS5iaW5kKHNlbGYpLCAyMDApOworICAgIH0pOworCisgIH0KKworCisg
IHJhaXNlX2Vycm9yX29uX2ZhaWwoYWxlcnRfdGl0bGUsIHhocikgeworICAgIHRyeSB7CisgICAg
ICB2YXIgZXJyID0gSlNPTi5wYXJzZSh4aHIucmVzcG9uc2VUZXh0KTsKKyAgICAgIEFsZXJ0aWZ5
LmFsZXJ0KGFsZXJ0X3RpdGxlLCBlcnIuZXJyb3Jtc2cpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgIEFsZXJ0aWZ5LmFsZXJ0KGFsZXJ0X3RpdGxlLCBlLnN0YXR1c1RleHQpOworICAgIH0KKyAg
fQorCisgIHJlc2l6ZV9wYW5lbHMoKSB7CisgICAgbGV0ICRzcmNfZGRsID0gJCgnI3NjaGVtYS1k
aWZmLWRkbC1jb21wIC5zb3VyY2VfZGRsJyksCisgICAgICAkdGFyX2RkbCA9ICQoJyNzY2hlbWEt
ZGlmZi1kZGwtY29tcCAudGFyZ2V0X2RkbCcpLAorICAgICAgJGRpZmZfZGRsID0gJCgnI3NjaGVt
YS1kaWZmLWRkbC1jb21wIC5kaWZmX2RkbCcpLAorICAgICAgZm9vdGVyX2hlaWdodCA9ICQoJyNz
Y2hlbWEtZGlmZi1kZGwtY29tcCcpLmhlaWdodCgpIC0gNTA7CisKKyAgICAkc3JjX2RkbC5oZWln
aHQoZm9vdGVyX2hlaWdodCk7CisgICAgJHNyY19kZGwuY3NzKHsKKyAgICAgICdoZWlnaHQnOiBm
b290ZXJfaGVpZ2h0ICsgJ3B4JywKKyAgICB9KTsKKyAgICAkdGFyX2RkbC5oZWlnaHQoZm9vdGVy
X2hlaWdodCk7CisgICAgJHRhcl9kZGwuY3NzKHsKKyAgICAgICdoZWlnaHQnOiBmb290ZXJfaGVp
Z2h0ICsgJ3B4JywKKyAgICB9KTsKKyAgICAkZGlmZl9kZGwuaGVpZ2h0KGZvb3Rlcl9oZWlnaHQp
OworICAgICRkaWZmX2RkbC5jc3MoeworICAgICAgJ2hlaWdodCc6IGZvb3Rlcl9oZWlnaHQgKyAn
cHgnLAorICAgIH0pOworCisgICAgdGhpcy5yZXNpemVfZ3JpZCgpOworICB9CisKKyAgY29tcGFy
ZV9zY2hlbWFzKCkgeworICAgIHZhciBzZWxmID0gdGhpcywKKyAgICAgIHVybF9wYXJhbXMgPSBz
ZWxmLm1vZGVsLnRvSlNPTigpOworCisgICAgaWYgKHVybF9wYXJhbXNbJ3NvdXJjZV9zaWQnXSA9
PSAnJyB8fCBfLmlzVW5kZWZpbmVkKHVybF9wYXJhbXNbJ3NvdXJjZV9zaWQnXSkgfHwKKyAgICAg
IHVybF9wYXJhbXNbJ3NvdXJjZV9kaWQnXSA9PSAnJyB8fCBfLmlzVW5kZWZpbmVkKHVybF9wYXJh
bXNbJ3NvdXJjZV9kaWQnXSkgfHwKKyAgICAgICB1cmxfcGFyYW1zWydzb3VyY2Vfc2NpZCddID09
ICcnIHx8IF8uaXNVbmRlZmluZWQodXJsX3BhcmFtc1snc291cmNlX3NjaWQnXSkgfHwKKyAgICAg
ICB1cmxfcGFyYW1zWyd0YXJnZXRfc2lkJ10gPT0gJycgfHwgXy5pc1VuZGVmaW5lZCh1cmxfcGFy
YW1zWyd0YXJnZXRfc2lkJ10pIHx8CisgICAgICAgdXJsX3BhcmFtc1sndGFyZ2V0X2RpZCddID09
ICcnIHx8IF8uaXNVbmRlZmluZWQodXJsX3BhcmFtc1sndGFyZ2V0X2RpZCddKSB8fAorICAgICAg
IHVybF9wYXJhbXNbJ3RhcmdldF9zY2lkJ10gPT0gJycgfHwgXy5pc1VuZGVmaW5lZCh1cmxfcGFy
YW1zWyd0YXJnZXRfc2NpZCddKQorICAgICkgeworICAgICAgQWxlcnRpZnkuYWxlcnQoZ2V0dGV4
dCgnU2VsZWN0aW9uIEVycm9yJyksIGdldHRleHQoJ1BsZWFzZSBzZWxlY3Qgc291cmNlIGFuZCB0
YXJnZXQuJykpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHRoaXMuc2VsZWN0
aW9uID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh1cmxfcGFyYW1zKSk7CisKKyAgICB1cmxf
cGFyYW1zWyd0cmFuc19pZCddID0gc2VsZi50cmFuc19pZDsKKworICAgIF8uZWFjaCh1cmxfcGFy
YW1zLCBmdW5jdGlvbihrZXksIHZhbCkgeworICAgICAgdXJsX3BhcmFtc1trZXldID0gcGFyc2VJ
bnQodmFsLCAxMCk7CisgICAgfSk7CisKKyAgICB2YXIgYmFzZVVybCA9IHVybF9mb3IoJ3NjaGVt
YV9kaWZmLmNvbXBhcmUnLCB1cmxfcGFyYW1zKTsKKworICAgIHNlbGYubW9kZWwuc2V0KHsKKyAg
ICAgICdzb3VyY2VfZGRsJzogdW5kZWZpbmVkLAorICAgICAgJ3RhcmdldF9kZGwnOiB1bmRlZmlu
ZWQsCisgICAgICAnZGlmZl9kZGwnOiB1bmRlZmluZWQsCisgICAgfSk7CisKKyAgICBzZWxmLnJl
bmRlcl9ncmlkKFtdKTsKKyAgICBzZWxmLmZvb3Rlci5yZW5kZXIoKTsKKyAgICBzZWxmLnN0YXJ0
RGlmZlBvbGxlcigpOworCisgICAgcmV0dXJuICQuYWpheCh7CisgICAgICB1cmw6IGJhc2VVcmws
CisgICAgICBtZXRob2Q6ICdHRVQnLAorICAgICAgZGF0YVR5cGU6ICdqc29uJywKKyAgICAgIGNv
bnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsCisgICAgfSkKKyAgICAgIC5kb25lKGZ1bmN0
aW9uIChyZXMpIHsKKyAgICAgICAgc2VsZi5zdG9wRGlmZlBvbGxlcigpOworICAgICAgICBzZWxm
LnJlbmRlcl9ncmlkKHJlcy5kYXRhKTsKKyAgICAgIH0pCisgICAgICAuZmFpbChmdW5jdGlvbiAo
eGhyKSB7CisgICAgICAgIHNlbGYucmFpc2VfZXJyb3Jfb25fZmFpbChnZXR0ZXh0KCdTY2hlbWEg
Y29tcGFyZSBlcnJvcicpLCB4aHIpOworICAgICAgICBzZWxmLnN0b3BEaWZmUG9sbGVyKCk7Cisg
ICAgICB9KTsKKyAgfQorCisgIGdlbmVyYXRlX3NjcmlwdCgpIHsKKyAgICB2YXIgc2VsZiA9IHRo
aXMsCisgICAgICBiYXNlU2VydmVyVXJsID0gdXJsX2Zvcignc2NoZW1hX2RpZmYuZ2V0X3NlcnZl
cicsIHsnc2lkJzogc2VsZi5zZWxlY3Rpb25bJ3RhcmdldF9zaWQnXSwKKyAgICAgICAgJ2RpZCc6
IHNlbGYuc2VsZWN0aW9uWyd0YXJnZXRfZGlkJ119KSwKKyAgICAgIHNlbF9yb3dzID0gc2VsZi5n
cmlkID8gc2VsZi5ncmlkLmdldFNlbGVjdGVkUm93cygpIDogW10sCisgICAgICBzZWxfcm93c19k
YXRhID0gW10sCisgICAgICB1cmxfcGFyYW1zID0gc2VsZi5zZWxlY3Rpb24sCisgICAgICBnZW5l
cmF0ZWRfc2NyaXB0ID0gdW5kZWZpbmVkLAorICAgICAgb3Blbl9xdWVyeV90b29sOworCisgICAg
Xy5lYWNoKHVybF9wYXJhbXMsIGZ1bmN0aW9uKGtleSwgdmFsKSB7CisgICAgICB1cmxfcGFyYW1z
W2tleV0gPSBwYXJzZUludCh2YWwsIDEwKTsKKyAgICB9KTsKKworICAgICQoJyNkaWZmX2ZldGNo
aW5nX2RhdGEnKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7CisgICAgJCgnI2RpZmZfZmV0Y2hpbmdf
ZGF0YScpLmZpbmQoJy5zY2hlbWEtZGlmZi1idXN5LXRleHQnKS50ZXh0KCdHZW5lcmF0aW5nIHNj
cmlwdC4uLicpOworCisKKyAgICBvcGVuX3F1ZXJ5X3Rvb2wgPSBmdW5jdGlvbiBnZXRfc2VydmVy
X2RldGFpbHMoKSB7CisgICAgICAkLmFqYXgoeworICAgICAgICB1cmw6IGJhc2VTZXJ2ZXJVcmws
CisgICAgICAgIG1ldGhvZDogJ0dFVCcsCisgICAgICAgIGRhdGFUeXBlOiAnanNvbicsCisgICAg
ICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsCisgICAgICB9KQorICAgICAgICAu
ZG9uZShmdW5jdGlvbiAocmVzKSB7CisgICAgICAgICAgbGV0IGRhdGEgPSByZXMuZGF0YTsKKyAg
ICAgICAgICBsZXQgc2VydmVyX2RhdGEgPSB7fTsKKyAgICAgICAgICBpZiAoZGF0YSkgeworICAg
ICAgICAgICAgc2VydmVyX2RhdGFbJ3NnaWQnXSA9IGRhdGEuZ2lkOworICAgICAgICAgICAgc2Vy
dmVyX2RhdGFbJ3NpZCddID0gZGF0YS5zaWQ7CisgICAgICAgICAgICBzZXJ2ZXJfZGF0YVsnc3R5
cGUnXSA9IGRhdGEudHlwZTsKKyAgICAgICAgICAgIHNlcnZlcl9kYXRhWydzZXJ2ZXInXSA9IGRh
dGEubmFtZTsKKyAgICAgICAgICAgIHNlcnZlcl9kYXRhWyd1c2VyJ10gPSBkYXRhLnVzZXI7Cisg
ICAgICAgICAgICBzZXJ2ZXJfZGF0YVsnZGlkJ10gPSBzZWxmLm1vZGVsLmdldCgndGFyZ2V0X2Rp
ZCcpOworICAgICAgICAgICAgc2VydmVyX2RhdGFbJ2RhdGFiYXNlJ10gPSBkYXRhLmRhdGFiYXNl
OworCisgICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChnZW5lcmF0ZWRfc2NyaXB0KSkKKyAg
ICAgICAgICAgICAgZ2VuZXJhdGVkX3NjcmlwdCA9ICdCRUdJTjsnICsgJ1xuJyArIHNlbGYubW9k
ZWwuZ2V0KCdkaWZmX2RkbCcpICsgJ1xuJyArICdFTkQ7JzsKKworICAgICAgICAgICAgbGV0IHBy
ZWZlcmVuY2VzID0gKHdpbmRvdy5vcGVuZXIgIT09IG51bGwpID8gd2luZG93Lm9wZW5lci5wZ0Fk
bWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ3NjaGVtYV9kaWZmJykgOiB3
aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZSgnc2No
ZW1hX2RpZmYnKTsKKyAgICAgICAgICAgIGlmIChwcmVmZXJlbmNlcy5zY2hlbWFfZGlmZl9uZXdf
YnJvd3Nlcl90YWIpIHsKKyAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wZ0FkbWluLmRkbF9k
aWZmID0gZ2VuZXJhdGVkX3NjcmlwdDsKKyAgICAgICAgICAgICAgZ2VuZXJhdGVTY3JpcHQoc2Vy
dmVyX2RhdGEsIHdpbmRvdy5vcGVuZXIucGdBZG1pbi5EYXRhR3JpZCk7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICB3aW5kb3cudG9wLnBnQWRtaW4uZGRsX2RpZmYgPSBnZW5l
cmF0ZWRfc2NyaXB0OworICAgICAgICAgICAgICBnZW5lcmF0ZVNjcmlwdChzZXJ2ZXJfZGF0YSwg
d2luZG93LnRvcC5wZ0FkbWluLkRhdGFHcmlkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9
CisKKyAgICAgICAgICAkKCcjZGlmZl9mZXRjaGluZ19kYXRhJykuZmluZCgnLnNjaGVtYS1kaWZm
LWJ1c3ktdGV4dCcpLnRleHQoJycpOworICAgICAgICAgICQoJyNkaWZmX2ZldGNoaW5nX2RhdGEn
KS5hZGRDbGFzcygnZC1ub25lJyk7CisKKyAgICAgICAgfSkKKyAgICAgICAgLmZhaWwoZnVuY3Rp
b24gKHhocikgeworICAgICAgICAgIHNlbGYucmFpc2VfZXJyb3Jfb25fZmFpbChnZXR0ZXh0KCdH
ZW5lcmF0ZSBzY3JpcHQgZXJyb3InKSwgeGhyKTsKKyAgICAgICAgICAkKCcjZGlmZl9mZXRjaGlu
Z19kYXRhJykuZmluZCgnLnNjaGVtYS1kaWZmLWJ1c3ktdGV4dCcpLnRleHQoJycpOworICAgICAg
ICAgICQoJyNkaWZmX2ZldGNoaW5nX2RhdGEnKS5hZGRDbGFzcygnZC1ub25lJyk7CisgICAgICAg
IH0pOworICAgIH07CisKKyAgICBpZiAoc2VsX3Jvd3MubGVuZ3RoID4gMCkgeworICAgICAgZm9y
ICh2YXIgcm93ID0gMDsgcm93IDwgc2VsX3Jvd3MubGVuZ3RoOyByb3crKykgeworICAgICAgICBs
ZXQgZGF0YSA9IHNlbGYuZ3JpZC5nZXREYXRhKCkuZ2V0SXRlbShzZWxfcm93c1tyb3ddKTsKKwor
ICAgICAgICBpZiAoZGF0YS50eXBlKSB7CisgICAgICAgICAgbGV0IHRtcF9kYXRhID0geworICAg
ICAgICAgICAgJ25vZGVfdHlwZSc6IGRhdGEudHlwZSwKKyAgICAgICAgICAgICdzb3VyY2Vfb2lk
JzogcGFyc2VJbnQoZGF0YS5vaWQsIDEwKSwKKyAgICAgICAgICAgICd0YXJnZXRfb2lkJzogcGFy
c2VJbnQoZGF0YS5vaWQsIDEwKSwKKyAgICAgICAgICAgICdjb21wX3N0YXR1cyc6IGRhdGEuc3Rh
dHVzLAorICAgICAgICAgIH07CisKKyAgICAgICAgICBpZihkYXRhLnN0YXR1cyAmJiAoZGF0YS5z
dGF0dXMudG9Mb3dlckNhc2UoKSA9PSAnZGlmZmVyZW50JyB8fCBkYXRhLnN0YXR1cy50b0xvd2Vy
Q2FzZSgpID09ICdpZGVudGljYWwnKSkgeworICAgICAgICAgICAgdG1wX2RhdGFbJ3RhcmdldF9v
aWQnXSA9IGRhdGEudGFyZ2V0X29pZDsKKyAgICAgICAgICB9CisgICAgICAgICAgc2VsX3Jvd3Nf
ZGF0YS5wdXNoKHRtcF9kYXRhKTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICB1cmxfcGFy
YW1zWydzZWxfcm93cyddID0gc2VsX3Jvd3NfZGF0YTsKKworICAgICAgbGV0IGJhc2VVcmwgPSB1
cmxfZm9yKCdzY2hlbWFfZGlmZi5nZW5lcmF0ZV9zY3JpcHQnLCB7J3RyYW5zX2lkJzogc2VsZi50
cmFuc19pZH0pOworCisgICAgICAkLmFqYXgoeworICAgICAgICB1cmw6IGJhc2VVcmwsCisgICAg
ICAgIG1ldGhvZDogJ1BPU1QnLAorICAgICAgICBkYXRhVHlwZTogJ2pzb24nLAorICAgICAgICBj
b250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLAorICAgICAgICBkYXRhOiBKU09OLnN0cmlu
Z2lmeSh1cmxfcGFyYW1zKSwKKyAgICAgIH0pCisgICAgICAgIC5kb25lKGZ1bmN0aW9uIChyZXMp
IHsKKyAgICAgICAgICBpZiAocmVzKSB7CisgICAgICAgICAgICBnZW5lcmF0ZWRfc2NyaXB0ID0g
J0JFR0lOOycgKyAnXG4nICsgcmVzLmRpZmZfZGRsICsgJ1xuJyArICdFTkQ7JzsKKyAgICAgICAg
ICB9CisgICAgICAgICAgb3Blbl9xdWVyeV90b29sKCk7CisgICAgICAgIH0pCisgICAgICAgIC5m
YWlsKGZ1bmN0aW9uICh4aHIpIHsKKyAgICAgICAgICBzZWxmLnJhaXNlX2Vycm9yX29uX2ZhaWwo
Z2V0dGV4dCgnR2VuZXJhdGUgc2NyaXB0IGVycm9yJyksIHhocik7CisgICAgICAgICAgJCgnI2Rp
ZmZfZmV0Y2hpbmdfZGF0YScpLmFkZENsYXNzKCdkLW5vbmUnKTsKKyAgICAgICAgfSk7CisgICAg
fSBlbHNlIGlmICghXy5pc1VuZGVmaW5lZChzZWxmLm1vZGVsLmdldCgnZGlmZl9kZGwnKSkpIHsK
KyAgICAgIG9wZW5fcXVlcnlfdG9vbCgpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgIH0K
KworICByZW5kZXJfZ3JpZChkYXRhKSB7CisKKyAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgdmFy
IGdyaWQ7CisKKyAgICBpZiAoc2VsZi5ncmlkKSB7CisgICAgICAvLyBPbmx5IHJlbmRlciB0aGUg
ZGF0YQorICAgICAgc2VsZi5yZW5kZXJfZ3JpZF9kYXRhKGRhdGEpOworICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICAvLyBDaGVja2JveCBDb2x1bW4KKyAgICB2YXIgY2hlY2tib3hTZWxlY3RvciA9
IG5ldyBTbGljay5DaGVja2JveFNlbGVjdENvbHVtbih7CisgICAgICBjc3NDbGFzczogJ3NsaWNr
LWNlbGwtY2hlY2tib3hzZWwnLAorICAgICAgbWluV2lkdGg6IDMwLAorICAgIH0pOworCisgICAg
Ly8gRm9ybWF0IFNjaGVtYSBvYmplY3QgdGl0bGUgd2l0aCBhcHByb3ByaWF0ZSBpY29uCisgICAg
dmFyIGZvcm1hdENvbHVtblRpdGxlID0gZnVuY3Rpb24gKHJvdywgY2VsbCwgdmFsdWUsIGNvbHVt
bkRlZiwgZGF0YUNvbnRleHQpIHsKKyAgICAgIGxldCBpY29uID0gJ2ljb24tJyArIGRhdGFDb250
ZXh0LnR5cGU7CisgICAgICByZXR1cm4gJzxpIGNsYXNzPSJtbC01IHdjVGFiSWNvbiAnKyBpY29u
ICsnIj48L2k+PHNwYW4+JyArIHZhbHVlICsgJzwvc3Bhbj4nOworICAgIH07CisKKyAgICAvLyBH
cmlkIENvbHVtbnMKKyAgICB2YXIgZ3JpZF93aWR0aCA9ICAoc2VsZi5ncmlkX3dpZHRoIC0gNDcp
IC8gMiA7CisgICAgdmFyIGNvbHVtbnMgPSBbCisgICAgICBjaGVja2JveFNlbGVjdG9yLmdldENv
bHVtbkRlZmluaXRpb24oKSwKKyAgICAgIHtpZDogJ3RpdGxlJywgbmFtZTogJ1NjaGVtYSBPYmpl
Y3RzJywgZmllbGQ6ICd0aXRsZScsIG1pbldpZHRoOiBncmlkX3dpZHRoLCBmb3JtYXR0ZXI6IGZv
cm1hdENvbHVtblRpdGxlfSwKKyAgICAgIHtpZDogJ3N0YXR1cycsIG5hbWU6ICdDb21wYXJpc29u
IFJlc3VsdCcsIGZpZWxkOiAnc3RhdHVzJywgbWluV2lkdGg6IGdyaWRfd2lkdGh9LAorICAgICAg
e2lkOiAnbGFiZWwnLCBuYW1lOiAnU2NoZW1hIE9iamVjdHMnLCBmaWVsZDogJ2xhYmVsJywgIHdp
ZHRoOiAwLCBtaW5XaWR0aDogMCwgbWF4V2lkdGg6IDAsCisgICAgICAgIGNzc0NsYXNzOiAncmVh
bGx5SGlkZGVuJywgaGVhZGVyQ3NzQ2xhc3M6ICdyZWFsbHlIaWRkZW4nfSwKKyAgICAgIHtpZDog
J3R5cGUnLCBuYW1lOiAnU2NoZW1hIE9iamVjdHMnLCBmaWVsZDogJ3R5cGUnLCAgd2lkdGg6IDAs
IG1pbldpZHRoOiAwLCBtYXhXaWR0aDogMCwKKyAgICAgICAgY3NzQ2xhc3M6ICdyZWFsbHlIaWRk
ZW4nLCBoZWFkZXJDc3NDbGFzczogJ3JlYWxseUhpZGRlbid9LAorICAgICAge2lkOiAnaWQnLCBu
YW1lOiAnaWQnLCBmaWVsZDogJ2lkJywgd2lkdGg6IDAsIG1pbldpZHRoOiAwLCBtYXhXaWR0aDog
MCwKKyAgICAgICAgY3NzQ2xhc3M6ICdyZWFsbHlIaWRkZW4nLCBoZWFkZXJDc3NDbGFzczogJ3Jl
YWxseUhpZGRlbicgfSwKKworICAgIF07CisKKyAgICAvLyBHcmlkIE9wdGlvbnMKKyAgICB2YXIg
b3B0aW9ucyA9IHsKKyAgICAgIGVuYWJsZUNlbGxOYXZpZ2F0aW9uOiB0cnVlLAorICAgICAgZW5h
YmxlQ29sdW1uUmVvcmRlcjogZmFsc2UsCisgICAgICBlbmFibGVSb3dTZWxlY3Rpb246IHRydWUs
CisgICAgfTsKKworICAgIC8vIEdyb3VwaW5nIGJ5IFNjaGVtYSBPYmplY3QKKyAgICBzZWxmLmdy
b3VwQnlTY2hlbWFPYmplY3QgPSBmdW5jdGlvbigpIHsKKyAgICAgIHNlbGYuZGF0YVZpZXcuc2V0
R3JvdXBpbmcoeworICAgICAgICBnZXR0ZXI6ICd0eXBlJywKKyAgICAgICAgZm9ybWF0dGVyOiBm
dW5jdGlvbiAoZykgeworICAgICAgICAgIGxldCBpY29uID0gJ2ljb24tY29sbC0nICsgZy52YWx1
ZTsKKyAgICAgICAgICByZXR1cm4gJzxpIGNsYXNzPSJ3Y1RhYkljb24gJysgaWNvbiArJyI+PC9p
PjxzcGFuPicgKyBnLnJvd3NbMF0ubGFiZWwgKyAnPC9zcGFuPic7CisgICAgICAgIH0sCisgICAg
ICAgIGFnZ3JlZ2F0ZUNvbGxhcHNlZDogdHJ1ZSwKKyAgICAgICAgbGF6eVRvdGFsc0NhbGN1bGF0
aW9uOiB0cnVlLAorICAgICAgfSk7CisgICAgfTsKKworICAgIHZhciBncm91cEl0ZW1NZXRhZGF0
YVByb3ZpZGVyID0gbmV3IFNsaWNrLkRhdGEuR3JvdXBJdGVtTWV0YWRhdGFQcm92aWRlcih7IGNo
ZWNrYm94U2VsZWN0OiB0cnVlLAorICAgICAgY2hlY2tib3hTZWxlY3RQbHVnaW46IGNoZWNrYm94
U2VsZWN0b3IgfSk7CisKKyAgICAvLyBEYXRhdmlldyBmb3IgZ3JpZAorICAgIHNlbGYuZGF0YVZp
ZXcgPSBuZXcgU2xpY2suRGF0YS5EYXRhVmlldyh7CisgICAgICBncm91cEl0ZW1NZXRhZGF0YVBy
b3ZpZGVyOiBncm91cEl0ZW1NZXRhZGF0YVByb3ZpZGVyLAorICAgICAgaW5saW5lRmlsdGVyczog
ZmFsc2UsCisgICAgfSk7CisKKyAgICAvLyBXaXJlIHVwIG1vZGVsIGV2ZW50cyB0byBkcml2ZSB0
aGUgZ3JpZAorICAgIHNlbGYuZGF0YVZpZXcub25Sb3dDb3VudENoYW5nZWQuc3Vic2NyaWJlKGZ1
bmN0aW9uICgpIHsKKyAgICAgIGdyaWQudXBkYXRlUm93Q291bnQoKTsKKyAgICAgIGdyaWQucmVu
ZGVyKCk7CisgICAgfSk7CisgICAgc2VsZi5kYXRhVmlldy5vblJvd3NDaGFuZ2VkLnN1YnNjcmli
ZShmdW5jdGlvbiAoZSwgYXJncykgeworICAgICAgZ3JpZC5pbnZhbGlkYXRlUm93cyhhcmdzLnJv
d3MpOworICAgICAgZ3JpZC5yZW5kZXIoKTsKKyAgICB9KTsKKworICAgIC8vIENoYW5nZSBSb3cg
Y3NzIG9uIHRoZSBiYXNpcyBvZiBpdGVtIHN0YXR1cworICAgIHNlbGYuZGF0YVZpZXcuZ2V0SXRl
bU1ldGFkYXRhID0gZnVuY3Rpb24ocm93KSB7CisgICAgICB2YXIgaXRlbSA9IHNlbGYuZGF0YVZp
ZXcuZ2V0SXRlbShyb3cpOworICAgICAgaWYgKGl0ZW0uX19ncm91cCkgeworICAgICAgICByZXR1
cm4gZ3JvdXBJdGVtTWV0YWRhdGFQcm92aWRlci5nZXRHcm91cFJvd01ldGFkYXRhKGl0ZW0pOwor
ICAgICAgfQorCisgICAgICBpZihpdGVtLnN0YXR1cyA9PT0gJ0RpZmZlcmVudCcpIHsKKyAgICAg
ICAgcmV0dXJuIHsgY3NzQ2xhc3NlczogJ2RpZmZlcmVudCcgfTsKKyAgICAgIH0gZWxzZSBpZiAo
aXRlbS5zdGF0dXMgPT09ICdTb3VyY2UgT25seScpIHsKKyAgICAgICAgcmV0dXJuIHsgY3NzQ2xh
c3NlczogJ3NvdXJjZScgfTsKKyAgICAgIH0gZWxzZSBpZiAoaXRlbS5zdGF0dXMgPT09ICdUYXJn
ZXQgT25seScpIHsKKyAgICAgICAgcmV0dXJuIHsgY3NzQ2xhc3NlczogJ3RhcmdldCcgfTsKKyAg
ICAgIH0KKworICAgICAgcmV0dXJuIG51bGw7CisgICAgfTsKKworICAgIC8vIEdyaWQgZmlsdGVy
CisgICAgc2VsZi5maWx0ZXIgPSBmdW5jdGlvbiAoaXRlbSkgeworICAgICAgbGV0IHNlbGYgPSB0
aGlzOworICAgICAgaWYgKHNlbGYuc2VsX2ZpbHRlcnMuaW5kZXhPZihpdGVtLnN0YXR1cykgIT09
IC0xKSByZXR1cm4gdHJ1ZTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworCisgICAgbGV0
ICRkYXRhX2dyaWQgPSAkKCcjc2NoZW1hLWRpZmYtZ3JpZCcpOworICAgIGdyaWQgPSB0aGlzLmdy
aWQgPSBuZXcgU2xpY2suR3JpZCgkZGF0YV9ncmlkLCBzZWxmLmRhdGFWaWV3LCBjb2x1bW5zLCBv
cHRpb25zKTsKKyAgICBncmlkLnJlZ2lzdGVyUGx1Z2luKGdyb3VwSXRlbU1ldGFkYXRhUHJvdmlk
ZXIpOworICAgIGdyaWQuc2V0U2VsZWN0aW9uTW9kZWwobmV3IFNsaWNrLlJvd1NlbGVjdGlvbk1v
ZGVsKHtzZWxlY3RBY3RpdmVSb3c6IGZhbHNlfSkpOworICAgIGdyaWQucmVnaXN0ZXJQbHVnaW4o
Y2hlY2tib3hTZWxlY3Rvcik7CisKKyAgICBncmlkLm9uQ2xpY2suc3Vic2NyaWJlKGZ1bmN0aW9u
KGUsIGFyZ3MpIHsKKyAgICAgIGlmIChhcmdzLnJvdykgeworICAgICAgICBkYXRhID0gYXJncy5n
cmlkLmdldERhdGEoKS5nZXRJdGVtKGFyZ3Mucm93KTsKKyAgICAgICAgaWYgKGRhdGEuc3RhdHVz
KSB0aGlzLmRkbENvbXBhcmUoZGF0YSk7CisgICAgICB9CisgICAgfS5iaW5kKHNlbGYpKTsKKwor
ICAgIGdyaWQub25TZWxlY3RlZFJvd3NDaGFuZ2VkLnN1YnNjcmliZShzZWxmLmhhbmRsZV9nZW5l
cmF0ZV9idXR0b24uYmluZChzZWxmKSk7CisKKyAgICBzZWxmLm1vZGVsLm9uKCdjaGFuZ2U6ZGlm
Zl9kZGwnLCBzZWxmLmhhbmRsZV9nZW5lcmF0ZV9idXR0b24uYmluZChzZWxmKSk7CisKKyAgICAk
KCcjc2NoZW1hLWRpZmYtZ3JpZCcpLm9uKCdrZXl1cCcsIGZ1bmN0aW9uKCkgeworICAgICAgaWYg
KChldmVudC5rZXlDb2RlID09IDM4IHx8IGV2ZW50LmtleUNvZGUgPT00MCkgJiYgdGhpcy5ncmlk
LmdldEFjdGl2ZUNlbGwoKS5yb3cpIHsKKyAgICAgICAgZGF0YSA9IHRoaXMuZ3JpZC5nZXREYXRh
KCkuZ2V0SXRlbSh0aGlzLmdyaWQuZ2V0QWN0aXZlQ2VsbCgpLnJvdyk7CisgICAgICAgIHRoaXMu
ZGRsQ29tcGFyZShkYXRhKTsKKyAgICAgIH0KKyAgICB9LmJpbmQoc2VsZikpOworCisgICAgc2Vs
Zi5yZW5kZXJfZ3JpZF9kYXRhKGRhdGEpOworICB9CisKKworCisgIHJlbmRlcl9ncmlkX2RhdGEo
ZGF0YSkgeworICAgIHZhciBzZWxmID0gdGhpczsKKyAgICBzZWxmLmRhdGFWaWV3LmJlZ2luVXBk
YXRlKCk7CisgICAgc2VsZi5kYXRhVmlldy5zZXRJdGVtcyhkYXRhKTsKKyAgICBzZWxmLmRhdGFW
aWV3LnNldEZpbHRlcihzZWxmLmZpbHRlci5iaW5kKHNlbGYpKTsKKyAgICBzZWxmLmdyb3VwQnlT
Y2hlbWFPYmplY3QoKTsKKyAgICBzZWxmLmRhdGFWaWV3LmVuZFVwZGF0ZSgpOworCisgICAgc2Vs
Zi5yZXNpemVfZ3JpZCgpOworICB9CisKKyAgaGFuZGxlX2dlbmVyYXRlX2J1dHRvbigpeworICAg
IGlmICh0aGlzLmdyaWQuZ2V0U2VsZWN0ZWRSb3dzKCkubGVuZ3RoID4gMCB8fCAodGhpcy5tb2Rl
bC5nZXQoJ2RpZmZfZGRsJykgIT0gJycgJiYgIV8uaXNVbmRlZmluZWQodGhpcy5tb2RlbC5nZXQo
J2RpZmZfZGRsJykpKSkgeworICAgICAgdGhpcy5oZWFkZXIuJGVsLmZpbmQoJ2J1dHRvbiNnZW5l
cmF0ZS1zY3JpcHQnKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpOworICAgIH0gZWxzZSB7CisgICAg
ICB0aGlzLmhlYWRlci4kZWwuZmluZCgnYnV0dG9uI2dlbmVyYXRlLXNjcmlwdCcpLmF0dHIoJ2Rp
c2FibGVkJywgdHJ1ZSk7CisgICAgfQorICB9CisKKyAgcmVzaXplX2dyaWQoKSB7CisgICAgbGV0
ICRkYXRhX2dyaWQgPSAkKCcjc2NoZW1hLWRpZmYtZ3JpZCcpLAorICAgICAgZ3JpZF9oZWlnaHQg
PSAodGhpcy5wYW5lbF9vYmouaGVpZ2h0KCkgPiAwKSA/IHRoaXMucGFuZWxfb2JqLmhlaWdodCgp
IC0gMTAwIDogdGhpcy5ncmlkX2hlaWdodCAtIDEwMDsKKworICAgICRkYXRhX2dyaWQuaGVpZ2h0
KGdyaWRfaGVpZ2h0KTsKKyAgICAkZGF0YV9ncmlkLmNzcyh7CisgICAgICAnaGVpZ2h0JzogZ3Jp
ZF9oZWlnaHQgKyAncHgnLAorICAgIH0pOworICAgIGlmICh0aGlzLmdyaWQpIHRoaXMuZ3JpZC5y
ZXNpemVDYW52YXMoKTsKKyAgfQorCisgIGdldENvbXBhcmVTdGF0dXMoKSB7CisgICAgdmFyIHNl
bGYgPSB0aGlzLAorICAgICAgdXJsX3BhcmFtcyA9IHsndHJhbnNfaWQnOiBzZWxmLnRyYW5zX2lk
fSwKKyAgICAgIGJhc2VVcmwgPSB1cmxfZm9yKCdzY2hlbWFfZGlmZi5wb2xsJywgdXJsX3BhcmFt
cyk7CisKKyAgICAkLmFqYXgoeworICAgICAgdXJsOiBiYXNlVXJsLAorICAgICAgbWV0aG9kOiAn
R0VUJywKKyAgICAgIGRhdGFUeXBlOiAnanNvbicsCisgICAgICBjb250ZW50VHlwZTogJ2FwcGxp
Y2F0aW9uL2pzb24nLAorICAgIH0pCisgICAgICAuZG9uZShmdW5jdGlvbiAocmVzKSB7CisgICAg
ICAgIGxldCBtc2cgPSByZXMuZGF0YS5jb21wYXJlX21zZyArIHJlcy5kYXRhLmRpZmZfcGVyY2Vu
dGFnZSArICclIGNvbXBsZXRlZCc7CisgICAgICAgICQoJyNkaWZmX2ZldGNoaW5nX2RhdGEnKS5m
aW5kKCcuc2NoZW1hLWRpZmYtYnVzeS10ZXh0JykudGV4dChtc2cpOworICAgICAgfSkKKyAgICAg
IC5mYWlsKGZ1bmN0aW9uICh4aHIpIHsKKyAgICAgICAgc2VsZi5yYWlzZV9lcnJvcl9vbl9mYWls
KGdldHRleHQoJ1BvbGwgZXJyb3InKSwgeGhyKTsKKyAgICAgICAgc2VsZi5zdG9wRGlmZlBvbGxl
cignZmFpbCcpOworICAgICAgfSk7CisgIH0KKworICBzdGFydERpZmZQb2xsZXIoKSB7CisgICAg
JCgnI2RkbF9jb21wX2ZldGNoaW5nX2RhdGEnKS5hZGRDbGFzcygnZC1ub25lJyk7CisgICAgJCgn
I2RpZmZfZmV0Y2hpbmdfZGF0YScpLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTsKKyAgICAvKiBFeGVj
dXRlIG9uY2UgZm9yIHRoZSBmaXJzdCB0aW1lIGFzIHNldEludGVydmFsIHdpbGwgbm90IGRvICov
CisgICAgdGhpcy5nZXRDb21wYXJlU3RhdHVzKCk7CisgICAgdGhpcy5kaWZmX3BvbGxlcl9pbnRf
aWQgPSBzZXRJbnRlcnZhbCh0aGlzLmdldENvbXBhcmVTdGF0dXMuYmluZCh0aGlzKSwgMTAwMCk7
CisgIH0KKworICBzdG9wRGlmZlBvbGxlcihzdGF0dXMpIHsKKyAgICBjbGVhckludGVydmFsKHRo
aXMuZGlmZl9wb2xsZXJfaW50X2lkKTsKKyAgICAvLyBUaGUgbGFzdCBwb2xsaW5nIGZvciBjb21w
YXJpc29uCisgICAgaWYgKHN0YXR1cyAhPT0gJ2ZhaWwnKSB0aGlzLmdldENvbXBhcmVTdGF0dXMo
KTsKKworICAgICQoJyNkaWZmX2ZldGNoaW5nX2RhdGEnKS5maW5kKCcuc2NoZW1hLWRpZmYtYnVz
eS10ZXh0JykudGV4dCgnJyk7CisgICAgJCgnI2RpZmZfZmV0Y2hpbmdfZGF0YScpLmFkZENsYXNz
KCdkLW5vbmUnKTsKKworICB9CisKKyAgZGRsQ29tcGFyZShkYXRhKSB7CisgICAgdmFyIHNlbGYg
PSB0aGlzLAorICAgICAgbm9kZV90eXBlID0gZGF0YS50eXBlLAorICAgICAgc291cmNlX29pZCA9
IGRhdGEub2lkLAorICAgICAgdGFyZ2V0X29pZCA9IGRhdGEub2lkOworCisgICAgc2VsZi5tb2Rl
bC5zZXQoeworICAgICAgJ3NvdXJjZV9kZGwnOiB1bmRlZmluZWQsCisgICAgICAndGFyZ2V0X2Rk
bCc6IHVuZGVmaW5lZCwKKyAgICAgICdkaWZmX2RkbCc6IHVuZGVmaW5lZCwKKyAgICB9KTsKKwor
ICAgIHZhciB1cmxfcGFyYW1zID0gc2VsZi5zZWxlY3Rpb247CisKKyAgICBpZihkYXRhLnN0YXR1
cyAmJiAoZGF0YS5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PSAnZGlmZmVyZW50JyB8fCBkYXRhLnN0
YXR1cy50b0xvd2VyQ2FzZSgpID09ICdpZGVudGljYWwnKSkgeworICAgICAgdGFyZ2V0X29pZCA9
IGRhdGEudGFyZ2V0X29pZDsKKyAgICB9CisKKyAgICB1cmxfcGFyYW1zWyd0cmFuc19pZCddID0g
c2VsZi50cmFuc19pZDsKKyAgICB1cmxfcGFyYW1zWydzb3VyY2Vfb2lkJ10gPSBzb3VyY2Vfb2lk
OworICAgIHVybF9wYXJhbXNbJ3RhcmdldF9vaWQnXSA9IHRhcmdldF9vaWQ7CisgICAgdXJsX3Bh
cmFtc1snY29tcF9zdGF0dXMnXSA9IGRhdGEuc3RhdHVzOworICAgIHVybF9wYXJhbXNbJ25vZGVf
dHlwZSddID0gbm9kZV90eXBlOworCisgICAgXy5lYWNoKHVybF9wYXJhbXMsIGZ1bmN0aW9uKGtl
eSwgdmFsKSB7CisgICAgICB1cmxfcGFyYW1zW2tleV0gPSBwYXJzZUludCh2YWwsIDEwKTsKKyAg
ICB9KTsKKworICAgICQoJyNkZGxfY29tcF9mZXRjaGluZ19kYXRhJykucmVtb3ZlQ2xhc3MoJ2Qt
bm9uZScpOworCisgICAgdmFyIGJhc2VVcmwgPSB1cmxfZm9yKCdzY2hlbWFfZGlmZi5kZGxfY29t
cGFyZScsIHVybF9wYXJhbXMpOworICAgIHNlbGYubW9kZWwudXJsID0gYmFzZVVybDsKKworICAg
IHNlbGYubW9kZWwuZmV0Y2goeworICAgICAgc3VjY2VzczogZnVuY3Rpb24oKSB7CisgICAgICAg
IHNlbGYuZm9vdGVyLnJlbmRlcigpOworICAgICAgICAkKCcjZGRsX2NvbXBfZmV0Y2hpbmdfZGF0
YScpLmFkZENsYXNzKCdkLW5vbmUnKTsKKyAgICAgIH0sCisgICAgICBlcnJvcjogZnVuY3Rpb24o
KSB7CisgICAgICAgIHNlbGYuZm9vdGVyLnJlbmRlcigpOworICAgICAgICAkKCcjZGRsX2NvbXBf
ZmV0Y2hpbmdfZGF0YScpLmFkZENsYXNzKCdkLW5vbmUnKTsKKyAgICAgIH0sCisgICAgfSk7Cisg
IH0KKworICByZW5kZXIoKSB7CisgICAgbGV0IHNlbGYgPSB0aGlzOworICAgIGxldCBwYW5lbCA9
IHNlbGYuZG9ja2VyLmZpbmRQYW5lbHMoJ3NjaGVtYV9kaWZmX2hlYWRlcl9wYW5lbCcpWzBdOwor
CisgICAgdmFyIGhlYWRlciA9IHBhbmVsLiRjb250YWluZXIuZmluZCgnI3NjaGVtYS1kaWZmLWhl
YWRlcicpOworCisgICAgc2VsZi5oZWFkZXIgID0gbmV3IFNjaGVtYURpZmZIZWFkZXJWaWV3KHsK
KyAgICAgIGVsOiBoZWFkZXIsCisgICAgICBtb2RlbDogdGhpcy5tb2RlbCwKKyAgICAgIGZpZWxk
czogW3sKKyAgICAgICAgbmFtZTogJ3NvdXJjZV9zaWQnLCBsYWJlbDogZmFsc2UsCisgICAgICAg
IGNvbnRyb2w6IFNjaGVtYURpZmZTZWxlY3QyQ29udHJvbCwKKyAgICAgICAgdXJsOiB1cmxfZm9y
KCdzY2hlbWFfZGlmZi5zZXJ2ZXJzJyksCisgICAgICAgIHNlbGVjdDI6IHsKKyAgICAgICAgICBh
bGxvd0NsZWFyOiB0cnVlLAorICAgICAgICAgIHBsYWNlaG9sZGVyOiBnZXR0ZXh0KCdTZWxlY3Qg
c2VydmVyLi4uJyksCisgICAgICAgIH0sCisgICAgICAgIGNvbm5lY3Q6IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgIHNlbGYuY29ubmVjdF9zZXJ2ZXIoYXJndW1lbnRzWzBdLCBhcmd1bWVudHNbMV0p
OworICAgICAgICB9LAorICAgICAgICBncm91cDogJ3NvdXJjZScsCisgICAgICAgIGRpc2FibGVk
OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0sCisgICAg
ICB9LCB7CisgICAgICAgIG5hbWU6ICdzb3VyY2VfZGlkJywKKyAgICAgICAgZ3JvdXA6ICdzb3Vy
Y2UnLAorICAgICAgICBkZXBzOiBbJ3NvdXJjZV9zaWQnXSwKKyAgICAgICAgY29udHJvbDogU2No
ZW1hRGlmZlNlbGVjdDJDb250cm9sLAorICAgICAgICB1cmw6IGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIGlmICh0aGlzLmdldCgnc291cmNlX3NpZCcpKQorICAgICAgICAgICAgcmV0dXJuIHVybF9m
b3IoJ3NjaGVtYV9kaWZmLmRhdGFiYXNlcycsIHsnc2lkJzogdGhpcy5nZXQoJ3NvdXJjZV9zaWQn
KX0pOworICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSwKKyAgICAgICAgc2VsZWN0
MjogeworICAgICAgICAgIGFsbG93Q2xlYXI6IHRydWUsCisgICAgICAgICAgcGxhY2Vob2xkZXI6
IGdldHRleHQoJ1NlbGVjdCBkYXRhYmFzZS4uLicpLAorICAgICAgICB9LAorICAgICAgICBkaXNh
YmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChtLmdldCgn
c291cmNlX3NpZCcpKSAmJiAhXy5pc051bGwobS5nZXQoJ3NvdXJjZV9zaWQnKSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0sCisg
ICAgICAgIGNvbm5lY3Q6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHNlbGYuY29ubmVjdF9kYXRh
YmFzZSh0aGlzLm1vZGVsLmdldCgnc291cmNlX3NpZCcpLCBhcmd1bWVudHNbMF0sIGFyZ3VtZW50
c1sxXSk7CisgICAgICAgIH0sCisgICAgICB9LCB7CisgICAgICAgIG5hbWU6ICdzb3VyY2Vfc2Np
ZCcsCisgICAgICAgIGNvbnRyb2w6IFNjaGVtYURpZmZTZWxlY3QyQ29udHJvbCwKKyAgICAgICAg
Z3JvdXA6ICdzb3VyY2UnLAorICAgICAgICBkZXBzOiBbJ3NvdXJjZV9zaWQnLCAnc291cmNlX2Rp
ZCddLAorICAgICAgICB1cmw6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh0aGlzLmdldCgn
c291cmNlX3NpZCcpICYmIHRoaXMuZ2V0KCdzb3VyY2VfZGlkJykpCisgICAgICAgICAgICByZXR1
cm4gdXJsX2Zvcignc2NoZW1hX2RpZmYuc2NoZW1hcycsIHsnc2lkJzogdGhpcy5nZXQoJ3NvdXJj
ZV9zaWQnKSwgJ2RpZCc6IHRoaXMuZ2V0KCdzb3VyY2VfZGlkJyl9KTsKKyAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0sCisgICAgICAgIHNlbGVjdDI6IHsKKyAgICAgICAgICBhbGxv
d0NsZWFyOiB0cnVlLAorICAgICAgICAgIHBsYWNlaG9sZGVyOiBnZXR0ZXh0KCdTZWxlY3Qgc2No
ZW1hLi4uJyksCisgICAgICAgIH0sCisgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7Cisg
ICAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKG0uZ2V0KCdzb3VyY2VfZGlkJykpICYmICFfLmlz
TnVsbChtLmdldCgnc291cmNlX2RpZCcpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSwKKyAgICAgIH0sIHsKKyAgICAgICAgbmFt
ZTogJ3RhcmdldF9zaWQnLCBsYWJlbDogZmFsc2UsCisgICAgICAgIGNvbnRyb2w6IFNjaGVtYURp
ZmZTZWxlY3QyQ29udHJvbCwKKyAgICAgICAgZ3JvdXA6ICd0YXJnZXQnLAorICAgICAgICB1cmw6
IHVybF9mb3IoJ3NjaGVtYV9kaWZmLnNlcnZlcnMnKSwKKyAgICAgICAgc2VsZWN0MjogeworICAg
ICAgICAgIGFsbG93Q2xlYXI6IHRydWUsCisgICAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQo
J1NlbGVjdCBzZXJ2ZXIuLi4nKSwKKyAgICAgICAgfSwKKyAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSwKKyAgICAgICAgY29u
bmVjdDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgc2VsZi5jb25uZWN0X3NlcnZlcihhcmd1bWVu
dHNbMF0sIGFyZ3VtZW50c1sxXSk7CisgICAgICAgIH0sCisgICAgICB9LCB7CisgICAgICAgIG5h
bWU6ICd0YXJnZXRfZGlkJywKKyAgICAgICAgY29udHJvbDogU2NoZW1hRGlmZlNlbGVjdDJDb250
cm9sLAorICAgICAgICBncm91cDogJ3RhcmdldCcsCisgICAgICAgIGRlcHM6IFsndGFyZ2V0X3Np
ZCddLAorICAgICAgICB1cmw6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh0aGlzLmdldCgn
dGFyZ2V0X3NpZCcpKQorICAgICAgICAgICAgcmV0dXJuIHVybF9mb3IoJ3NjaGVtYV9kaWZmLmRh
dGFiYXNlcycsIHsnc2lkJzogdGhpcy5nZXQoJ3RhcmdldF9zaWQnKX0pOworICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfSwKKyAgICAgICAgc2VsZWN0MjogeworICAgICAgICAgIGFs
bG93Q2xlYXI6IHRydWUsCisgICAgICAgICAgcGxhY2Vob2xkZXI6IGdldHRleHQoJ1NlbGVjdCBk
YXRhYmFzZS4uLicpLAorICAgICAgICB9LAorICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obSkg
eworICAgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChtLmdldCgndGFyZ2V0X3NpZCcpKSAmJiAh
Xy5pc051bGwobS5nZXQoJ3RhcmdldF9zaWQnKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0sCisgICAgICAgIGNvbm5lY3Q6IGZ1
bmN0aW9uKCkgeworICAgICAgICAgIHNlbGYuY29ubmVjdF9kYXRhYmFzZSh0aGlzLm1vZGVsLmdl
dCgndGFyZ2V0X3NpZCcpLCBhcmd1bWVudHNbMF0sIGFyZ3VtZW50c1sxXSk7CisgICAgICAgIH0s
CisgICAgICB9LCB7CisgICAgICAgIG5hbWU6ICd0YXJnZXRfc2NpZCcsCisgICAgICAgIGNvbnRy
b2w6IFNjaGVtYURpZmZTZWxlY3QyQ29udHJvbCwKKyAgICAgICAgZ3JvdXA6ICd0YXJnZXQnLAor
ICAgICAgICBkZXBzOiBbJ3RhcmdldF9zaWQnLCAndGFyZ2V0X2RpZCddLAorICAgICAgICB1cmw6
IGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh0aGlzLmdldCgndGFyZ2V0X3NpZCcpICYmIHRo
aXMuZ2V0KCd0YXJnZXRfZGlkJykpCisgICAgICAgICAgICByZXR1cm4gdXJsX2Zvcignc2NoZW1h
X2RpZmYuc2NoZW1hcycsIHsnc2lkJzogdGhpcy5nZXQoJ3RhcmdldF9zaWQnKSwgJ2RpZCc6IHRo
aXMuZ2V0KCd0YXJnZXRfZGlkJyl9KTsKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0sCisgICAgICAgIHNlbGVjdDI6IHsKKyAgICAgICAgICBhbGxvd0NsZWFyOiB0cnVlLAorICAg
ICAgICAgIHBsYWNlaG9sZGVyOiBnZXR0ZXh0KCdTZWxlY3Qgc2NoZW1hLi4uJyksCisgICAgICAg
IH0sCisgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgaWYgKCFfLmlz
VW5kZWZpbmVkKG0uZ2V0KCd0YXJnZXRfZGlkJykpICYmICFfLmlzTnVsbChtLmdldCgndGFyZ2V0
X2RpZCcpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgfSwKKyAgICAgIH1dLAorICAgIH0pOworCisgICAgc2VsZi5mb290ZXIgID0g
bmV3IFNjaGVtYURpZmZGb290ZXJWaWV3KHsKKyAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLAorICAg
ICAgZmllbGRzOiBbeworICAgICAgICBuYW1lOiAnc291cmNlX2RkbCcsIGxhYmVsOiBmYWxzZSwK
KyAgICAgICAgY29udHJvbDogU2NoZW1hRGlmZlNxbENvbnRyb2wsCisgICAgICAgIGdyb3VwOiAn
ZGRsLXNvdXJjZScsCisgICAgICB9LCB7CisgICAgICAgIG5hbWU6ICd0YXJnZXRfZGRsJywgbGFi
ZWw6IGZhbHNlLAorICAgICAgICBjb250cm9sOiBTY2hlbWFEaWZmU3FsQ29udHJvbCwKKyAgICAg
ICAgZ3JvdXA6ICdkZGwtdGFyZ2V0JywKKyAgICAgIH0sIHsKKyAgICAgICAgbmFtZTogJ2RpZmZf
ZGRsJywgbGFiZWw6IGZhbHNlLAorICAgICAgICBjb250cm9sOiBTY2hlbWFEaWZmU3FsQ29udHJv
bCwKKyAgICAgICAgZ3JvdXA6ICdkZGwtZGlmZicsIGNvcHlSZXF1aXJlZDogdHJ1ZSwKKyAgICAg
IH1dLAorICAgIH0pOworCisgICAgc2VsZi5oZWFkZXIucmVuZGVyKCk7CisKKyAgICBzZWxmLmhl
YWRlci4kZWwuZmluZCgnYnV0dG9uLmJ0bi1wcmltYXJ5Jykub24oJ2NsaWNrJywgc2VsZi5jb21w
YXJlX3NjaGVtYXMuYmluZChzZWxmKSk7CisgICAgc2VsZi5oZWFkZXIuJGVsLmZpbmQoJ2J1dHRv
biNnZW5lcmF0ZS1zY3JpcHQnKS5vbignY2xpY2snLCBzZWxmLmdlbmVyYXRlX3NjcmlwdC5iaW5k
KHNlbGYpKTsKKyAgICBzZWxmLmhlYWRlci4kZWwuZmluZCgndWwuZmlsdGVyIGEuZHJvcGRvd24t
aXRlbScpLm9uKCdjbGljaycsIHNlbGYucmVmcmVzaF9maWx0ZXJzLmJpbmQoc2VsZikpOworCisg
ICAgbGV0IGZvb3Rlcl9wYW5lbCA9IHNlbGYuZG9ja2VyLmZpbmRQYW5lbHMoJ3NjaGVtYV9kaWZm
X2Zvb3Rlcl9wYW5lbCcpWzBdLAorICAgICAgaGVhZGVyX3BhbmVsID0gc2VsZi5kb2NrZXIuZmlu
ZFBhbmVscygnc2NoZW1hX2RpZmZfaGVhZGVyX3BhbmVsJylbMF07CisKKyAgICBmb290ZXJfcGFu
ZWwuJGNvbnRhaW5lci5maW5kKCcjc2NoZW1hLWRpZmYtZGRsLWNvbXAnKS5hcHBlbmQoc2VsZi5m
b290ZXIucmVuZGVyKCkuJGVsKTsKKyAgICBoZWFkZXJfcGFuZWwuJGNvbnRhaW5lci5maW5kKCcj
c2NoZW1hLWRpZmYtZ3JpZCcpLmFwcGVuZChgPGRpdiBjbGFzcz0nb2JqX3Byb3BlcnRpZXMgY29u
dGFpbmVyLWZsdWlkJz4KKyAgICA8ZGl2IGNsYXNzPSdhbGVydCBhbGVydC1pbmZvIHBnLXBhbmVs
LW1lc3NhZ2UnPmAgKyBnZXR0ZXh0KCdTZWxlY3QgdGhlIHNlcnZlciwgZGF0YWJhc2UgYW5kIHNj
aGVtYSBmb3IgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IGFuZCBjbGljayA8Yj5Db21wYXJlPC9iPiB0
byBjb21wYXJlIHRoZW0uJykgKyAnPC9kaXY+PC9kaXY+Jyk7CisKKyAgICBzZWxmLmdyaWRfd2lk
dGggPSAkKCcjc2NoZW1hLWRpZmYtZ3JpZCcpLndpZHRoKCk7CisgICAgc2VsZi5ncmlkX2hlaWdo
dCA9IHRoaXMucGFuZWxfb2JqLmhlaWdodCgpOworICB9CisKKyAgcmVmcmVzaF9maWx0ZXJzKGV2
ZW50KSB7CisgICAgbGV0IHNlbGYgPSB0aGlzOworICAgIF8uZWFjaChzZWxmLmZpbHRlcnMsIGZ1
bmN0aW9uKGZpbHRlcikgeworICAgICAgbGV0IGluZGV4ID0gc2VsZi5zZWxfZmlsdGVycy5pbmRl
eE9mKGZpbHRlcik7CisgICAgICBsZXQgZmlsdGVyX2NsYXNzID0gJy4nICsgZmlsdGVyLnJlcGxh
Y2UoJyAnLCAnLScpLnRvTG93ZXJDYXNlKCk7CisgICAgICBpZiAoJChldmVudC5jdXJyZW50VGFy
Z2V0KS5maW5kKGZpbHRlcl9jbGFzcykubGVuZ3RoID09IDEpIHsKKyAgICAgICAgaWYgKCQoZmls
dGVyX2NsYXNzKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA9PT0gdHJ1ZSkgeworICAg
ICAgICAgICQoZmlsdGVyX2NsYXNzKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsK
KyAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSBzZWxmLnNlbF9maWx0ZXJzLnB1c2goZmlsdGVy
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAkKGZpbHRlcl9jbGFzcykuYWRkQ2xhc3Mo
J3Zpc2liaWxpdHktaGlkZGVuJyk7CisgICAgICAgICAgaWYoaW5kZXggIT09IC0xICkgZGVsZXRl
IHNlbGYuc2VsX2ZpbHRlcnNbaW5kZXhdOworICAgICAgICB9CisgICAgICB9CisgICAgfSk7Cisg
ICAgLy8gUmVmcmVzaCB0aGUgZ3JpZAorICAgIHNlbGYuZGF0YVZpZXcucmVmcmVzaCgpOworICB9
CisKKyAgY29ubmVjdF9kYXRhYmFzZShzZXJ2ZXJfaWQsIGRiX2lkLCBjYWxsYmFjaykgeworICAg
IHZhciB1cmwgPSB1cmxfZm9yKCdzY2hlbWFfZGlmZi5jb25uZWN0X2RhdGFiYXNlJywgeydzaWQn
OiBzZXJ2ZXJfaWQsICdkaWQnOiBkYl9pZH0pOworICAgICQucG9zdCh1cmwpCisgICAgICAuZG9u
ZShmdW5jdGlvbihyZXMpIHsKKyAgICAgICAgaWYgKHJlcy5zdWNjZXNzICYmIHJlcy5kYXRhKSB7
CisgICAgICAgICAgY2FsbGJhY2socmVzLmRhdGEpOworICAgICAgICB9CisgICAgICB9KQorICAg
ICAgLmZhaWwoZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIEZhaWwKKyAgICAgIH0pOworCisgIH0K
KworICBjb25uZWN0X3NlcnZlcihzZXJ2ZXJfaWQsIGNhbGxiYWNrKSB7CisgICAgdmFyICBvbkZh
aWx1cmUgPSBmdW5jdGlvbigKKyAgICAgICAgeGhyLCBzdGF0dXMsIGVycm9yLCBzZXJ2ZXJfaWQs
IGNhbGxiYWNrCisgICAgICApIHsKKyAgICAgICAgQWxlcnRpZnkucGdOb3RpZmllcignZXJyb3In
LCB4aHIsIGVycm9yLCBmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgQWxlcnRpZnkuZGxnU2VydmVyUGFzcygKKyAgICAgICAgICAg
ICAgZ2V0dGV4dCgnQ29ubmVjdCB0byBTZXJ2ZXInKSwKKyAgICAgICAgICAgICAgbXNnLAorICAg
ICAgICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICAgIGNhbGxiYWNrCisgICAgICAgICAg
ICApLnJlc2l6ZVRvKCk7CisgICAgICAgICAgfSwgMTAwKTsKKyAgICAgICAgfSk7CisgICAgICB9
LAorICAgICAgb25TdWNjZXNzID0gZnVuY3Rpb24ocmVzLCBjYWxsYmFjaykgeworICAgICAgICBp
ZiAocmVzICYmIHJlcy5kYXRhKSB7CisgICAgICAgICAgLy8gV2UncmUgbm90IHJlY29ubmVjdGlu
ZworICAgICAgICAgIGNhbGxiYWNrKHJlcy5kYXRhKTsKKyAgICAgICAgfQorICAgICAgfTsKKwor
CisgICAgLy8gQXNrIFBhc3N3b3JkIGFuZCBzZW5kIGl0IGJhY2sgdG8gdGhlIGNvbm5lY3Qgc2Vy
dmVyCisgICAgaWYgKCFBbGVydGlmeS5kbGdTZXJ2ZXJQYXNzKSB7CisgICAgICBBbGVydGlmeS5k
aWFsb2coJ2RsZ1NlcnZlclBhc3MnLCBmdW5jdGlvbiBmYWN0b3J5KCkgeworICAgICAgICByZXR1
cm4geworICAgICAgICAgIG1haW46IGZ1bmN0aW9uKAorICAgICAgICAgICAgdGl0bGUsIG1lc3Nh
Z2UsIHNlcnZlcl9pZCwgc3VjY2Vzc19jYWxsYmFjaywgX29uU3VjY2VzcywgX29uRmFpbHVyZSwg
X29uQ2FuY2VsCisgICAgICAgICAgKSB7CisgICAgICAgICAgICB0aGlzLnNldCgndGl0bGUnLCB0
aXRsZSk7CisgICAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlOworICAgICAgICAgICAg
dGhpcy5zZXJ2ZXJfaWQgPSBzZXJ2ZXJfaWQ7CisgICAgICAgICAgICB0aGlzLnN1Y2Nlc3NfY2Fs
bGJhY2sgPSBzdWNjZXNzX2NhbGxiYWNrOworICAgICAgICAgICAgdGhpcy5vblN1Y2Nlc3MgPSBf
b25TdWNjZXNzIHx8IG9uU3VjY2VzczsKKyAgICAgICAgICAgIHRoaXMub25GYWlsdXJlID0gX29u
RmFpbHVyZSB8fCBvbkZhaWx1cmU7CisgICAgICAgICAgICB0aGlzLm9uQ2FuY2VsID0gX29uQ2Fu
Y2VsIHx8IG9uQ2FuY2VsOworICAgICAgICAgIH0sCisgICAgICAgICAgc2V0dXA6ZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICBidXR0b25zOlt7CisgICAg
ICAgICAgICAgICAgdGV4dDogZ2V0dGV4dCgnQ2FuY2VsJyksIGNsYXNzTmFtZTogJ2J0biBidG4t
c2Vjb25kYXJ5IGZhIGZhLXRpbWVzIHBnLWFsZXJ0aWZ5LWJ1dHRvbicsCisgICAgICAgICAgICAg
ICAga2V5OiAyNywKKyAgICAgICAgICAgICAgfSx7CisgICAgICAgICAgICAgICAgdGV4dDogZ2V0
dGV4dCgnT0snKSwga2V5OiAxMywgY2xhc3NOYW1lOiAnYnRuIGJ0bi1wcmltYXJ5IGZhIGZhLWNo
ZWNrIHBnLWFsZXJ0aWZ5LWJ1dHRvbicsCisgICAgICAgICAgICAgIH1dLAorICAgICAgICAgICAg
ICBmb2N1czoge2VsZW1lbnQ6ICcjcGFzc3dvcmQnLCBzZWxlY3Q6IHRydWV9LAorICAgICAgICAg
ICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICAgICAgbW9kYWw6IDAsIHJlc2l6YWJsZTogZmFs
c2UsIG1heGltaXphYmxlOiBmYWxzZSwgcGlubmFibGU6IGZhbHNlLAorICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgfTsKKyAgICAgICAgICB9LAorICAgICAgICAgIGJ1aWxkOmZ1bmN0aW9u
KCkge30sCisgICAgICAgICAgcHJlcGFyZTpmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRoaXMu
c2V0Q29udGVudCh0aGlzLm1lc3NhZ2UpOworICAgICAgICAgIH0sCisgICAgICAgICAgY2FsbGJh
Y2s6IGZ1bmN0aW9uKGNsb3NlRXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBfb25GYWlsdXJlID0g
dGhpcy5vbkZhaWx1cmUsCisgICAgICAgICAgICAgIF9vblN1Y2Nlc3MgPSB0aGlzLm9uU3VjY2Vz
cywKKyAgICAgICAgICAgICAgX29uQ2FuY2VsID0gdGhpcy5vbkNhbmNlbCwKKyAgICAgICAgICAg
ICAgX3N1Y2Nlc3NfY2FsbGJhY2sgPSB0aGlzLnN1Y2Nlc3NfY2FsbGJhY2s7CisKKyAgICAgICAg
ICAgIGlmIChjbG9zZUV2ZW50LmJ1dHRvbi50ZXh0ID09IGdldHRleHQoJ09LJykpIHsKKworICAg
ICAgICAgICAgICB2YXIgX3VybCA9IHVybF9mb3IoJ3NjaGVtYV9kaWZmLmNvbm5lY3Rfc2VydmVy
JywgeydzaWQnOiB0aGlzLnNlcnZlcl9pZH0pOworCisgICAgICAgICAgICAgICQuYWpheCh7Cisg
ICAgICAgICAgICAgICAgdHlwZTogJ1BPU1QnLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDMw
MDAwLAorICAgICAgICAgICAgICAgIHVybDogX3VybCwKKyAgICAgICAgICAgICAgICBkYXRhOiAk
KCcjZnJtUGFzc3dvcmQnKS5zZXJpYWxpemUoKSwKKyAgICAgICAgICAgICAgfSkKKyAgICAgICAg
ICAgICAgICAuZG9uZShmdW5jdGlvbihyZXMpIHsKKyAgICAgICAgICAgICAgICAgIGlmIChyZXMu
c3VjY2VzcyA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBfb25TdWNjZXNzKHJl
cywgX3N1Y2Nlc3NfY2FsbGJhY2spOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pCisgICAgICAgICAgICAgICAgLmZhaWwoZnVuY3Rpb24oeGhyLCBzdGF0dXMsIGVycm9y
KSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gX29uRmFpbHVyZSgKKyAgICAgICAgICAgICAg
ICAgICAgeGhyLCBzdGF0dXMsIGVycm9yLCB0aGlzLnNlcnZlcl9pZCwgX3N1Y2Nlc3NfY2FsbGJh
Y2sKKyAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICBfb25DYW5jZWwgJiYgdHlwZW9mKF9vbkNhbmNlbCkg
PT0gJ2Z1bmN0aW9uJyAmJgorICAgICAgICAgICAgICAgIF9vbkNhbmNlbCgpOworICAgICAgICAg
ICAgfQorICAgICAgICAgIH0sCisgICAgICAgIH07CisgICAgICB9KTsKKyAgICB9CisKKyAgICB2
YXIgb25DYW5jZWwgPSBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Owor
CisgICAgdmFyIHVybCA9IHVybF9mb3IoJ3NjaGVtYV9kaWZmLmNvbm5lY3Rfc2VydmVyJywgeydz
aWQnOiBzZXJ2ZXJfaWR9KTsKKyAgICAkLnBvc3QodXJsKQorICAgICAgLmRvbmUoZnVuY3Rpb24o
cmVzKSB7CisgICAgICAgIGlmIChyZXMuc3VjY2VzcyA9PSAxKSB7CisgICAgICAgICAgcmV0dXJu
IG9uU3VjY2VzcyhyZXMsIGNhbGxiYWNrKTsKKyAgICAgICAgfQorICAgICAgfSkKKyAgICAgIC5m
YWlsKGZ1bmN0aW9uKHhociwgc3RhdHVzLCBlcnJvcikgeworICAgICAgICByZXR1cm4gb25GYWls
dXJlKAorICAgICAgICAgIHhociwgc3RhdHVzLCBlcnJvciwgc2VydmVyX2lkLCBjYWxsYmFjawor
ICAgICAgICApOworICAgICAgfSk7CisgIH0KK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rv
b2xzL3NjaGVtYV9kaWZmL3N0YXRpYy9zY3NzL19zY2hlbWFfZGlmZi5zY3NzIGIvd2ViL3BnYWRt
aW4vdG9vbHMvc2NoZW1hX2RpZmYvc3RhdGljL3Njc3MvX3NjaGVtYV9kaWZmLnNjc3MKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5mNDFmOWY4YjAKLS0tIC9kZXYvbnVsbAor
KysgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9zdGF0aWMvc2Nzcy9fc2NoZW1hX2Rp
ZmYuc2NzcwpAQCAtMCwwICsxLDgxIEBACisjc2NoZW1hLWRpZmYtY29udGFpbmVyIHsKKyAgcG9z
aXRpb246IGFic29sdXRlOworICBsZWZ0OiAwOworICByaWdodDogMDsKKyAgdG9wOiAwOworICBi
b3R0b206IDA7CisgIHBhZGRpbmctdG9wOiAxMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29s
b3ItZ3JheS1saWdodDsKK30KKworI3NjaGVtYS1kaWZmLWdyaWQgLnNsaWNrLWhlYWRlciAuc2xp
Y2staGVhZGVyLWNvbHVtbnMgeworICBiYWNrZ3JvdW5kOiAkY29sb3ItYmc7CisgIGhlaWdodDog
NDBweDsKKyAgYm9yZGVyLWJvdHRvbTogJHBhbmVsLWJvcmRlcjsKK30KKworI3NjaGVtYS1kaWZm
LWdyaWQgLnNsaWNrLWhlYWRlciAuc2xpY2staGVhZGVyLWNvbHVtbi51aS1zdGF0ZS1kZWZhdWx0
IHsKKyAgcGFkZGluZzogNHB4IDAgM3B4IDZweDsKKyAgYm9yZGVyLWJvdHRvbTogJHBhbmVsLWJv
cmRlcjsKKyAgYm9yZGVyLXJpZ2h0OiAkcGFuZWwtYm9yZGVyOworfQorCisuc2xpY2stcm93Omhv
dmVyIC5zbGljay1jZWxseworICBib3JkZXItdG9wOiAkdGFibGUtaG92ZXItYm9yZGVyOworICBi
b3JkZXItYm90dG9tOiAkdGFibGUtaG92ZXItYm9yZGVyOworICBiYWNrZ3JvdW5kLWNvbG9yOiAk
dGFibGUtaG92ZXItYmctY29sb3I7Cit9CisKKyNzY2hlbWEtZGlmZi1ncmlkIC5zbGljay1oZWFk
ZXIgLnNsaWNrLWhlYWRlci1jb2x1bW4uc2VsZWN0ZWQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAk
Y29sb3ItcHJpbWFyeTsKKyAgY29sb3I6ICRjb2xvci1wcmltYXJ5LWZnOworfQorLnNsaWNrLXJv
dyAuc2xpY2stY2VsbCB7CisgIGJvcmRlci1ib3R0b206ICRwYW5lbC1ib3JkZXI7CisgIGJvcmRl
ci1yaWdodDogJHBhbmVsLWJvcmRlcjsKKyAgei1pbmRleDogMDsKK30KKworI3NjaGVtYS1kaWZm
LWdyaWQgeworICBiYWNrZ3JvdW5kOiBub25lOworICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3It
Z3JheS1saWdodDsKK30KKworI3NjaGVtYS1kaWZmLWdyaWQgLnNsaWNrLXJvdyAuc2xpY2stY2Vs
bC5sMC5yMC5zZWxlY3RlZCB7CisgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5Owor
ICBjb2xvcjogJGNvbG9yLXByaW1hcnktZmc7Cit9CisKKyNzY2hlbWEtZGlmZi1ncmlkIC5zbGlj
ay1yb3cgPiAuc2xpY2stY2VsbDpub3QoLmwwKTpub3QoLnIwKS5zZWxlY3RlZCB7CisgIGJhY2tn
cm91bmQtY29sb3I6ICR0YWJsZS1ob3Zlci1iZy1jb2xvcjsKKyAgYm9yZGVyLXRvcDogJHRhYmxl
LWhvdmVyLWJvcmRlcjsKKyAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWhvdmVyLWJvcmRlcjsKK30K
KworI3NjaGVtYS1kaWZmLWdyaWQgZGl2LnNsaWNrLWhlYWRlci51aS1zdGF0ZS1kZWZhdWx0IHsK
KyAgYmFja2dyb3VuZDogJGNvbG9yLWJnOworICBib3JkZXItYm90dG9tOiBub25lOworICBib3Jk
ZXItcmlnaHQ6IG5vbmU7CisgIGJvcmRlci10b3A6IG5vbmU7Cit9CisKKyNzY2hlbWEtZGlmZi1n
cmlkIC5kaWZmZXJlbnQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2NoZW1hZGlmZi1kaWZmLXJv
dy1jb2xvciAhaW1wb3J0YW50OworfQorI3NjaGVtYS1kaWZmLWdyaWQgLnNvdXJjZSB7CisgIGJh
Y2tncm91bmQtY29sb3I6ICRzY2hlbWFkaWZmLXNvdXJjZS1yb3ctY29sb3IgIWltcG9ydGFudDsK
K30KKyNzY2hlbWEtZGlmZi1ncmlkIC50YXJnZXQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2No
ZW1hZGlmZi10YXJnZXQtcm93LWNvbG9yICFpbXBvcnRhbnQ7Cit9CisKKyNzY2hlbWEtZGlmZi1n
cmlkIC5zbGljay1yb3cuYWN0aXZlIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmct
c2VsZWN0ZWQgIWltcG9ydGFudDsKK30KKworI3NjaGVtYS1kaWZmLWRkbC1jb21wIHsKKyAgaGVp
Z2h0OiAxMDAlOworICBib3R0b206IDEwcHg7CisgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1i
ZyAhaW1wb3J0YW50OworICBvdmVyZmxvdy15OiBoaWRkZW47Cit9CmRpZmYgLS1naXQgYS93ZWIv
cGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZW1wbGF0ZXMvc2NoZW1hX2RpZmYvaW5kZXguaHRt
bCBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3RlbXBsYXRlcy9zY2hlbWFfZGlmZi9p
bmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNjQxYmQ4NmM3
Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvdGVtcGxh
dGVzL3NjaGVtYV9kaWZmL2luZGV4Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAoreyUgZXh0ZW5kcyAi
YmFzZS5odG1sIiAlfQoreyUgYmxvY2sgaW5pdF9zY3JpcHQgJX0KK3RyeSB7CisgIHJlcXVpcmUo
CisgICAgWydzb3VyY2VzL2dlbmVyYXRlZC9zY2hlbWFfZGlmZicsICdzb3VyY2VzL2dlbmVyYXRl
ZC9zbGlja2dyaWQnLCAnc291cmNlcy9nZW5lcmF0ZWQvY29kZW1pcnJvcicsICdzb3VyY2VzL2dl
bmVyYXRlZC9icm93c2VyX25vZGVzJ10sCisgICAgZnVuY3Rpb24ocGdTY2hlbWFEaWZmSG9vaykg
eworICAgICAgdmFyIHBnU2NoZW1hRGlmZkhvb2sgPSBwZ1NjaGVtYURpZmZIb29rIHx8IHBnQWRt
aW4uVG9vbHMuU2NoZW1hRGlmZkhvb2s7CisgICAgICBwZ1NjaGVtYURpZmZIb29rLmxvYWQoe3t0
cmFuc19pZH19KTsKKyAgICB9LAorICAgIGZ1bmN0aW9uKCkgeworICAgICAgY29uc29sZS5sb2co
YXJndW1lbnRzKTsKKyAgICB9KTsKK30gY2F0Y2ggKGVycikgeworICBjb25zb2xlLmxvZyhlcnIp
OworfQoreyUgZW5kYmxvY2sgJX0KK3slIGJsb2NrIGNzc19saW5rICV9Cis8bGluayB0eXBlPSJ0
ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ7eyB1cmxfZm9yKCdicm93c2VyLmJyb3dz
ZXJfY3NzJyl9fSIvPgoreyUgZW5kYmxvY2sgJX0KK3slIGJsb2NrIGJvZHkgJX0KKzxkaXYgaWQ9
InNjaGVtYS1kaWZmLWNvbnRhaW5lciI+CisgICAgPGRpdiBpZD0iZGlmZl9mZXRjaGluZ19kYXRh
IiBjbGFzcz0icGctc3AtY29udGFpbmVyIHNjaGVtYS1kaWZmLWJ1c3ktZmV0Y2hpbmcgZC1ub25l
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0icGctc3AtY29udGVudCI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJyb3ciPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiBwZy1zcC1p
Y29uIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0i
cm93Ij48ZGl2IGNsYXNzPSJjb2wtMTIgcGctc3AtdGV4dCBzY2hlbWEtZGlmZi1idXN5LXRleHQi
PjwvZGl2PjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJk
ZGxfY29tcF9mZXRjaGluZ19kYXRhIiBjbGFzcz0icGctc3AtY29udGFpbmVyIHNjaGVtYS1kaWZm
LWJ1c3ktZmV0Y2hpbmcgZC1ub25lIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icGctc3AtY29udGVu
dCI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgorICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImNvbC0xMiBwZy1zcC1pY29uIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAg
ICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij48ZGl2IGNsYXNzPSJjb2wtMTIgcGctc3AtdGV4dCI+
e3sgXygnQ29tcGFyaW5nIG9iamVjdHMuLi4nKSB9fTwvZGl2PjwvZGl2PgorICAgICAgICA8L2Rp
dj4KKyAgICA8L2Rpdj4KKzwvZGl2PgoreyUgZW5kYmxvY2sgJX0KZGlmZiAtLWdpdCBhL3dlYi9w
Z2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4v
dG9vbHMvc2NoZW1hX2RpZmYvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwLi5lNjlkZTI5YmIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xz
L3NjaGVtYV9kaWZmL3Rlc3RzL3BnLzEwX3BsdXMvc291cmNlLnNxbCBiL3dlYi9wZ2FkbWluL3Rv
b2xzL3NjaGVtYV9kaWZmL3Rlc3RzL3BnLzEwX3BsdXMvc291cmNlLnNxbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjk5NzU3Y2ViMgotLS0gL2Rldi9udWxsCisrKyBiL3dl
Yi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3Rlc3RzL3BnLzEwX3BsdXMvc291cmNlLnNxbApA
QCAtMCwwICsxLDQ0MCBAQAorLS0KKy0tIFBvc3RncmVTUUwgZGF0YWJhc2UgZHVtcAorLS0KKwor
LS0gRHVtcGVkIGZyb20gZGF0YWJhc2UgdmVyc2lvbiAxMC43CistLSBEdW1wZWQgYnkgcGdfZHVt
cCB2ZXJzaW9uIDEyYmV0YTIKKworLS0gU3RhcnRlZCBvbiAyMDE5LTExLTAxIDEyOjU0OjE1IElT
VAorCitTRVQgc3RhdGVtZW50X3RpbWVvdXQgPSAwOworU0VUIGxvY2tfdGltZW91dCA9IDA7CitT
RVQgaWRsZV9pbl90cmFuc2FjdGlvbl9zZXNzaW9uX3RpbWVvdXQgPSAwOworU0VUIGNsaWVudF9l
bmNvZGluZyA9ICdVVEY4JzsKK1NFVCBzdGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3MgPSBvbjsK
K1NFTEVDVCBwZ19jYXRhbG9nLnNldF9jb25maWcoJ3NlYXJjaF9wYXRoJywgJycsIGZhbHNlKTsK
K1NFVCBjaGVja19mdW5jdGlvbl9ib2RpZXMgPSBmYWxzZTsKK1NFVCB4bWxvcHRpb24gPSBjb250
ZW50OworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSB3YXJuaW5nOworU0VUIHJvd19zZWN1cml0
eSA9IG9mZjsKKworLS0KKy0tIFRPQyBlbnRyeSAxNyAoY2xhc3MgMjYxNSBPSUQgMTM5NzcwKQor
LS0gTmFtZTogc291cmNlOyBUeXBlOiBTQ0hFTUE7IFNjaGVtYTogLTsgT3duZXI6IHBvc3RncmVz
CistLQorCitDUkVBVEUgU0NIRU1BIHNvdXJjZTsKKworCitBTFRFUiBTQ0hFTUEgc291cmNlIE9X
TkVSIFRPIHBvc3RncmVzOworCitTRVQgZGVmYXVsdF90YWJsZXNwYWNlID0gJyc7CisKKworQ1JF
QVRFIEVYVEVOU0lPTiBidHJlZV9naXN0CisgICAgU0NIRU1BIHNvdXJjZTsKKworLS0KKy0tIFRP
QyBlbnRyeSAxMjI3MiAoY2xhc3MgMTI1OSBPSUQgMTQ5MjA1KQorLS0gTmFtZTogdGFibGVfZm9y
X3BhcnRpdGlvbjsgVHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMK
Ky0tCisKK0NSRUFURSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX3BhcnRpdGlvbiAoCisgICAgY29s
MSBiaWdpbnQgTk9UIE5VTEwKKykKK1BBUlRJVElPTiBCWSBSQU5HRSAoY29sMSk7CisKKworQUxU
RVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9wYXJ0aXRpb24gT1dORVIgVE8gcG9zdGdyZXM7CisK
Ky0tCistLSBUT0MgZW50cnkgMTIyNzMgKGNsYXNzIDEyNTkgT0lEIDE0OTIwOCkKKy0tIE5hbWU6
IHBhcnQxOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0K
KworQ1JFQVRFIFRBQkxFIHNvdXJjZS5wYXJ0MSAoCisgICAgY29sMSBiaWdpbnQgTk9UIE5VTEwK
Kyk7CitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfcGFydGl0aW9uIEFUVEFDSCBQ
QVJUSVRJT04gc291cmNlLnBhcnQxIEZPUiBWQUxVRVMgRlJPTSAoJzEnKSBUTyAoJzIzJyk7CisK
KworQUxURVIgVEFCTEUgc291cmNlLnBhcnQxIE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0g
VE9DIGVudHJ5IDEyMjc0IChjbGFzcyAxMjU5IE9JRCAxNDkyMTMpCistLSBOYW1lOiB0YWJsZV9m
b3JfcGFydGl0aW9uXzE7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3Rn
cmVzCistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9wYXJ0aXRpb25fMSAoCisg
ICAgY29sMSBiaWdpbnQKKykKK1BBUlRJVElPTiBCWSBSQU5HRSAoY29sMSk7CisKKworQUxURVIg
VEFCTEUgc291cmNlLnRhYmxlX2Zvcl9wYXJ0aXRpb25fMSBPV05FUiBUTyBwb3N0Z3JlczsKKwor
LS0KKy0tIFRPQyBlbnRyeSAxMjI3NSAoY2xhc3MgMTI1OSBPSUQgMTQ5MjE2KQorLS0gTmFtZTog
cGFydDM7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQor
CitDUkVBVEUgVEFCTEUgc291cmNlLnBhcnQzICgKKyAgICBjb2wxIGJpZ2ludAorKTsKK0FMVEVS
IFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zvcl9wYXJ0aXRpb25fMSBBVFRBQ0ggUEFSVElUSU9O
IHNvdXJjZS5wYXJ0MyBGT1IgVkFMVUVTIEZST00gKCcxJykgVE8gKCcxMCcpOworCisKK0FMVEVS
IFRBQkxFIHNvdXJjZS5wYXJ0MyBPV05FUiBUTyBwb3N0Z3JlczsKKworLS0KKy0tIFRPQyBlbnRy
eSAxMjI3NiAoY2xhc3MgMTI1OSBPSUQgMTQ5MjE5KQorLS0gTmFtZTogcGFydDQ7IFR5cGU6IFRB
QkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgVEFCTEUg
c291cmNlLnBhcnQ0ICgKKyAgICBjb2wxIGJpZ2ludAorKTsKK0FMVEVSIFRBQkxFIE9OTFkgc291
cmNlLnRhYmxlX2Zvcl9wYXJ0aXRpb25fMSBBVFRBQ0ggUEFSVElUSU9OIHNvdXJjZS5wYXJ0NCBG
T1IgVkFMVUVTIEZST00gKCcxMScpIFRPICgnMjAnKTsKKworCitBTFRFUiBUQUJMRSBzb3VyY2Uu
cGFydDQgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNTggKGNsYXNz
IDEyNTkgT0lEIDE0ODk2MykKKy0tIE5hbWU6IHRhYmxlX2Zvcl9jb2x1bW47IFR5cGU6IFRBQkxF
OyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgVEFCTEUgc291
cmNlLnRhYmxlX2Zvcl9jb2x1bW4gKAorICAgIGNvbDEgYmlnaW50IE5PVCBOVUxMLAorICAgIGNv
bDIgdGV4dCwKKyAgICBjb2wzIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxl
X2Zvcl9jb2x1bW4gT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNTYg
KGNsYXNzIDEyNTkgT0lEIDE0ODg5NSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9jb25zdHJhaW50czsg
VHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFU
RSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzICgKKyAgICBjb2wxIGludGVnZXIg
Tk9UIE5VTEwsCisgICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJs
ZV9mb3JfY29uc3RyYWludHMgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkg
NjEwNjYgKGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDEyMjU2CistLSBOYW1lOiBU
QUJMRSB0YWJsZV9mb3JfY29uc3RyYWludHM7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogc291cmNl
OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQgT04gVEFCTEUgc291cmNlLnRhYmxlX2Zv
cl9jb25zdHJhaW50cyBJUyAnY29tbWVudHMnOworCisKKy0tCistLSBUT0MgZW50cnkgMTIyNjIg
KGNsYXNzIDEyNTkgT0lEIDE0OTAwNCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9pZGVudGljYWw7IFR5
cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUg
VEFCTEUgc291cmNlLnRhYmxlX2Zvcl9pZGVudGljYWwgKAorICAgIGNvbDEgaW50ZWdlciBOT1Qg
TlVMTCwKKyAgICBjb2wyIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zv
cl9pZGVudGljYWwgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNjAg
KGNsYXNzIDEyNTkgT0lEIDE0ODk3NykKKy0tIE5hbWU6IHRhYmxlX2Zvcl9pbmRleDsgVHlwZTog
VEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBUQUJM
RSBzb3VyY2UudGFibGVfZm9yX2luZGV4ICgKKyAgICBjb2wxIGludGVnZXIgTk9UIE5VTEwsCisg
ICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfaW5kZXgg
T1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNjkgKGNsYXNzIDEyNTkg
T0lEIDE0OTEyOCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9wcmltYXJ5X2tleTsgVHlwZTogVEFCTEU7
IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBUQUJMRSBzb3Vy
Y2UudGFibGVfZm9yX3ByaW1hcnlfa2V5ICgKKyAgICBjb2wxIGludGVnZXIgTk9UIE5VTEwsCisg
ICAgY29sMiB0ZXh0IE5PVCBOVUxMCispOworCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJsZV9m
b3JfcHJpbWFyeV9rZXkgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIy
NjQgKGNsYXNzIDEyNTkgT0lEIDE0OTAyNCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9ydWxlOyBUeXBl
OiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRB
QkxFIHNvdXJjZS50YWJsZV9mb3JfcnVsZSAoCisgICAgY29sMSBiaWdpbnQgTk9UIE5VTEwsCisg
ICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfcnVsZSBP
V05FUiBUTyBwb3N0Z3JlczsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI2NiAoY2xhc3MgMTI1OSBP
SUQgMTQ5MDQ4KQorLS0gTmFtZTogdGFibGVfZm9yX3RyaWdnZXI7IFR5cGU6IFRBQkxFOyBTY2hl
bWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnRh
YmxlX2Zvcl90cmlnZ2VyICgKKyAgICBjb2wxIGJpZ2ludCBOT1QgTlVMTCwKKyAgICBjb2wyIHRl
eHQKKyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl90cmlnZ2VyIE9XTkVSIFRP
IHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5IDU2ODkzIChjbGFzcyAyNjA2IE9JRCAxNDg5
MDQpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWludHMgRXhjbHVzaW9uOyBUeXBlOiBDT05T
VFJBSU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJM
RSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMKKyAgICBBREQgQ09OU1RSQUlOVCAi
RXhjbHVzaW9uIiBFWENMVURFIFVTSU5HIGdpc3QgKGNvbDIgV0lUSCA8PikgV0lUSCAoZmlsbGZh
Y3Rvcj0nMTInKSBXSEVSRSAoKGNvbDEgPiAxKSkgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJS
RUQ7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA2NyAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVu
ZGVuY2llczogNTY4OTMKKy0tIE5hbWU6IENPTlNUUkFJTlQgIkV4Y2x1c2lvbiIgT04gdGFibGVf
Zm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBv
c3RncmVzCistLQorCitDT01NRU5UIE9OIENPTlNUUkFJTlQgIkV4Y2x1c2lvbiIgT04gc291cmNl
LnRhYmxlX2Zvcl9jb25zdHJhaW50cyBJUyAnY29tbWVudHMnOworCisKKy0tCistLSBUT0MgZW50
cnkgNTY4OTEgKGNsYXNzIDI2MDYgT0lEIDE0ODkxMSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9jb25z
dHJhaW50cyBjaGVja19jb247IFR5cGU6IENIRUNLIENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNl
OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfY29u
c3RyYWludHMKKyAgICBBREQgQ09OU1RSQUlOVCBjaGVja19jb24gQ0hFQ0sgKChjb2wxID4gMTAp
KSBOT1QgVkFMSUQ7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA2OCAoY2xhc3MgMCBPSUQgMCkK
Ky0tIERlcGVuZGVuY2llczogNTY4OTEKKy0tIE5hbWU6IENPTlNUUkFJTlQgY2hlY2tfY29uIE9O
IHRhYmxlX2Zvcl9jb25zdHJhaW50czsgVHlwZTogQ09NTUVOVDsgU2NoZW1hOiBzb3VyY2U7IE93
bmVyOiBwb3N0Z3JlcworLS0KKworQ09NTUVOVCBPTiBDT05TVFJBSU5UIGNoZWNrX2NvbiBPTiBz
b3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjb21lbnQnOworCisKKy0tCistLSBUT0Mg
ZW50cnkgNTY4OTkgKGNsYXNzIDI2MDYgT0lEIDE0ODk3MCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9j
b2x1bW4gdGFibGVfZm9yX2NvbHVtbl9wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHNv
dXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJs
ZV9mb3JfY29sdW1uCisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX2NvbHVtbl9wa2V5IFBS
SU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2ODk1IChjbGFzcyAyNjA2
IE9JRCAxNDg5MDIpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWludHMgdGFibGVfZm9yX2Nv
bnN0cmFpbnRzX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjog
cG9zdGdyZXMKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zvcl9jb25zdHJh
aW50cworICAgIEFERCBDT05TVFJBSU5UIHRhYmxlX2Zvcl9jb25zdHJhaW50c19wa2V5IFBSSU1B
UlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTA0IChjbGFzcyAyNjA2IE9J
RCAxNDg5ODQpCistLSBOYW1lOiB0YWJsZV9mb3JfaW5kZXggdGFibGVfZm9yX2luZGV4X3BrZXk7
IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisK
K0FMVEVSIFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zvcl9pbmRleAorICAgIEFERCBDT05TVFJB
SU5UIHRhYmxlX2Zvcl9pbmRleF9wa2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0g
VE9DIGVudHJ5IDU2OTEzIChjbGFzcyAyNjA2IE9JRCAxNDkxMzUpCistLSBOYW1lOiB0YWJsZV9m
b3JfcHJpbWFyeV9rZXkgdGFibGVfZm9yX3ByaW1hcnlfa2V5X3BrZXk7IFR5cGU6IENPTlNUUkFJ
TlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0FMVEVSIFRBQkxFIE9O
TFkgc291cmNlLnRhYmxlX2Zvcl9wcmltYXJ5X2tleQorICAgIEFERCBDT05TVFJBSU5UIHRhYmxl
X2Zvcl9wcmltYXJ5X2tleV9wa2V5IFBSSU1BUlkgS0VZIChjb2wxLCBjb2wyKTsKKworCistLQor
LS0gVE9DIGVudHJ5IDU2OTA5IChjbGFzcyAyNjA2IE9JRCAxNDkwMzEpCistLSBOYW1lOiB0YWJs
ZV9mb3JfcnVsZSB0YWJsZV9mb3JfcnVsZV9wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6
IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50
YWJsZV9mb3JfcnVsZQorICAgIEFERCBDT05TVFJBSU5UIHRhYmxlX2Zvcl9ydWxlX3BrZXkgUFJJ
TUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDcgKGNsYXNzIDI2MDYg
T0lEIDE0OTAxMSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9pZGVudGljYWwgdGFibGVfZm9yX3RhYmxl
X2Zvcl9pZGVudGljYWxfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBzb3VyY2U7IE93
bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05MWSBzb3VyY2UudGFibGVfZm9yX2lk
ZW50aWNhbAorICAgIEFERCBDT05TVFJBSU5UIHRhYmxlX2Zvcl90YWJsZV9mb3JfaWRlbnRpY2Fs
X3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MTEgKGNs
YXNzIDI2MDYgT0lEIDE0OTA1NSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl90cmlnZ2VyIHRhYmxlX2Zv
cl90cmlnZ2VyX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjog
cG9zdGdyZXMKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zvcl90cmlnZ2Vy
CisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX3RyaWdnZXJfcGtleSBQUklNQVJZIEtFWSAo
Y29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njg5NyAoY2xhc3MgMjYwNiBPSUQgMTQ4OTEz
KQorLS0gTmFtZTogdGFibGVfZm9yX2NvbnN0cmFpbnRzIHVuaXF1ZTsgVHlwZTogQ09OU1RSQUlO
VDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05M
WSBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzCisgICAgQUREIENPTlNUUkFJTlQgInVuaXF1
ZSIgVU5JUVVFIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDYxMDY5IChjbGFzcyAwIE9J
RCAwKQorLS0gRGVwZW5kZW5jaWVzOiA1Njg5NworLS0gTmFtZTogQ09OU1RSQUlOVCAidW5pcXVl
IiBPTiB0YWJsZV9mb3JfY29uc3RyYWludHM7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogc291cmNl
OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQgT04gQ09OU1RSQUlOVCAidW5pcXVlIiBP
TiBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjbW50JzsKKworCistLQorLS0gVE9D
IGVudHJ5IDU2OTAwIChjbGFzcyAxMjU5IE9JRCAxNDkwMjMpCistLSBOYW1lOiBpbmRleDE7IFR5
cGU6IElOREVYOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUg
SU5ERVggaW5kZXgxIE9OIHNvdXJjZS50YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRyZWUgKGNvbDIg
dmFyY2hhcl9wYXR0ZXJuX29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1NjkwNSAoY2xhc3Mg
MTI1OSBPSUQgMTQ5MDEyKQorLS0gTmFtZTogaW5kZXhfaWRlbnRpY2FsOyBUeXBlOiBJTkRFWDsg
U2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIElOREVYIGluZGV4
X2lkZW50aWNhbCBPTiBzb3VyY2UudGFibGVfZm9yX2lkZW50aWNhbCBVU0lORyBidHJlZSAoY29s
MiB0ZXh0X3BhdHRlcm5fb3BzKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTAxIChjbGFzcyAx
MjU5IE9JRCAxNDkyMTEpCistLSBOYW1lOiBpbmRleF9zYW1lOyBUeXBlOiBJTkRFWDsgU2NoZW1h
OiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIElOREVYIGluZGV4X3NhbWUg
T04gc291cmNlLnRhYmxlX2Zvcl9pbmRleCBVU0lORyBidHJlZSAoY29sMiB0ZXh0X3BhdHRlcm5f
b3BzKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTAyIChjbGFzcyAxMjU5IE9JRCAxNDkwMjIp
CistLSBOYW1lOiBpbmRleF9zb3VyY2U7IFR5cGU6IElOREVYOyBTY2hlbWE6IHNvdXJjZTsgT3du
ZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgSU5ERVggaW5kZXhfc291cmNlIE9OIHNvdXJjZS50
YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRyZWUgKGNvbDIgdGV4dF9wYXR0ZXJuX29wcyk7CisKKwor
LS0KKy0tIFRPQyBlbnRyeSA2MTA0NCAoY2xhc3MgMjYxOCBPSUQgMTQ5MDMyKQorLS0gTmFtZTog
dGFibGVfZm9yX3J1bGUgcnVsZTE7IFR5cGU6IFJVTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjog
cG9zdGdyZXMKKy0tCisKK0NSRUFURSBSVUxFIHJ1bGUxIEFTCisgICAgT04gVVBEQVRFIFRPIHNv
dXJjZS50YWJsZV9mb3JfcnVsZSBETyBJTlNURUFEIE5PVEhJTkc7CisKKworLS0KKy0tIFRPQyBl
bnRyeSA2MTA3MCAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczogNjEwNDQKKy0tIE5h
bWU6IFJVTEUgcnVsZTEgT04gdGFibGVfZm9yX3J1bGU7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTog
c291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQgT04gUlVMRSBydWxlMSBPTiBz
b3VyY2UudGFibGVfZm9yX3J1bGUgSVMgJ2NvbW1lbnRzJzsKKworCistLQorLS0gVE9DIGVudHJ5
IDYxMDQ1IChjbGFzcyAyNjE4IE9JRCAxNDkwMzMpCistLSBOYW1lOiB0YWJsZV9mb3JfcnVsZSBy
dWxlMjsgVHlwZTogUlVMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKwor
Q1JFQVRFIFJVTEUgcnVsZTIgQVMKKyAgICBPTiBJTlNFUlQgVE8gc291cmNlLnRhYmxlX2Zvcl9y
dWxlIERPIE5PVEhJTkc7CisKKy0tCistLSBUT0MgZW50cnkgMTIyODMgKGNsYXNzIDEyNTkgT0lE
IDM0NzgxOCkKKy0tIE5hbWU6IHRlc3QgdmlldzsgVHlwZTogVklFVzsgU2NoZW1hOiBzb3VyY2U7
IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFZJRVcgc291cmNlLiJ0ZXN0IHZpZXciIEFT
CisgU0VMRUNUIHBnX2NsYXNzLnJlbG5hbWUsCisgICAgcGdfY2xhc3MucmVsbmFtZXNwYWNlLAor
ICAgIHBnX2NsYXNzLnJlbHR5cGUsCisgICAgcGdfY2xhc3MucmVsb2Z0eXBlLAorICAgIHBnX2Ns
YXNzLnJlbG93bmVyLAorICAgIHBnX2NsYXNzLnJlbGFtLAorICAgIHBnX2NsYXNzLnJlbGZpbGVu
b2RlLAorICAgIHBnX2NsYXNzLnJlbHRhYmxlc3BhY2UsCisgICAgcGdfY2xhc3MucmVscGFnZXMs
CisgICAgcGdfY2xhc3MucmVsdHVwbGVzLAorICAgIHBnX2NsYXNzLnJlbGFsbHZpc2libGUsCisg
ICAgcGdfY2xhc3MucmVsdG9hc3RyZWxpZCwKKyAgICBwZ19jbGFzcy5yZWxoYXNpbmRleCwKKyAg
ICBwZ19jbGFzcy5yZWxpc3NoYXJlZCwKKyAgICBwZ19jbGFzcy5yZWxwZXJzaXN0ZW5jZSwKKyAg
ICBwZ19jbGFzcy5yZWxraW5kLAorICAgIHBnX2NsYXNzLnJlbG5hdHRzLAorICAgIHBnX2NsYXNz
LnJlbGNoZWNrcywKKyAgICBwZ19jbGFzcy5yZWxoYXNvaWRzLAorICAgIHBnX2NsYXNzLnJlbGhh
c3BrZXksCisgICAgcGdfY2xhc3MucmVsaGFzcnVsZXMsCisgICAgcGdfY2xhc3MucmVsaGFzdHJp
Z2dlcnMsCisgICAgcGdfY2xhc3MucmVsaGFzc3ViY2xhc3MsCisgICAgcGdfY2xhc3MucmVscm93
c2VjdXJpdHksCisgICAgcGdfY2xhc3MucmVsZm9yY2Vyb3dzZWN1cml0eSwKKyAgICBwZ19jbGFz
cy5yZWxpc3BvcHVsYXRlZCwKKyAgICBwZ19jbGFzcy5yZWxyZXBsaWRlbnQsCisgICAgcGdfY2xh
c3MucmVsaXNwYXJ0aXRpb24sCisgICAgcGdfY2xhc3MucmVsZnJvemVueGlkLAorICAgIHBnX2Ns
YXNzLnJlbG1pbm14aWQsCisgICAgcGdfY2xhc3MucmVsYWNsLAorICAgIHBnX2NsYXNzLnJlbG9w
dGlvbnMsCisgICAgcGdfY2xhc3MucmVscGFydGJvdW5kCisgICBGUk9NIHBnX2NsYXNzCisgTElN
SVQgMTA7CisKKworQUxURVIgVEFCTEUgc291cmNlLiJ0ZXN0IHZpZXciIE9XTkVSIFRPIHBvc3Rn
cmVzOworCistLQorLS0gVE9DIGVudHJ5IDEyMjg2IChjbGFzcyAxMjU5IE9JRCAzNDc4MzIpCist
LSBOYW1lOiB0ZXN0IHZpZXcgZjsgVHlwZTogVklFVzsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBw
b3N0Z3JlcworLS0KKworQ1JFQVRFIFZJRVcgc291cmNlLiJ0ZXN0IHZpZXcgZiIgV0lUSCAoc2Vj
dXJpdHlfYmFycmllcj0nZmFsc2UnKSBBUworIFNFTEVDVCAyOworCisKK0FMVEVSIFRBQkxFIHNv
dXJjZS4idGVzdCB2aWV3IGYiIE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5
IDYxMTExIChjbGFzcyAwIE9JRCAwKQorLS0gRGVwZW5kZW5jaWVzOiAxMjI4NgorLS0gTmFtZTog
VklFVyAidGVzdCB2aWV3IGYiOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6
IHBvc3RncmVzCistLQorCitDT01NRU5UIE9OIFZJRVcgc291cmNlLiJ0ZXN0IHZpZXcgZiIgSVMg
J2Ntbic7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0cy9w
Zy8xMF9wbHVzL3RhcmdldC5zcWwgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0
cy9wZy8xMF9wbHVzL3RhcmdldC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwLi5jMzA0MmFiNjAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zY2hl
bWFfZGlmZi90ZXN0cy9wZy8xMF9wbHVzL3RhcmdldC5zcWwKQEAgLTAsMCArMSw0MjkgQEAKKy0t
CistLSBQb3N0Z3JlU1FMIGRhdGFiYXNlIGR1bXAKKy0tCisKKy0tIER1bXBlZCBmcm9tIGRhdGFi
YXNlIHZlcnNpb24gMTAuNworLS0gRHVtcGVkIGJ5IHBnX2R1bXAgdmVyc2lvbiAxMmJldGEyCisK
Ky0tIFN0YXJ0ZWQgb24gMjAxOS0xMS0wMSAxMjo1NToyMiBJU1QKKworU0VUIHN0YXRlbWVudF90
aW1lb3V0ID0gMDsKK1NFVCBsb2NrX3RpbWVvdXQgPSAwOworU0VUIGlkbGVfaW5fdHJhbnNhY3Rp
b25fc2Vzc2lvbl90aW1lb3V0ID0gMDsKK1NFVCBjbGllbnRfZW5jb2RpbmcgPSAnVVRGOCc7CitT
RVQgc3RhbmRhcmRfY29uZm9ybWluZ19zdHJpbmdzID0gb247CitTRUxFQ1QgcGdfY2F0YWxvZy5z
ZXRfY29uZmlnKCdzZWFyY2hfcGF0aCcsICcnLCBmYWxzZSk7CitTRVQgY2hlY2tfZnVuY3Rpb25f
Ym9kaWVzID0gZmFsc2U7CitTRVQgeG1sb3B0aW9uID0gY29udGVudDsKK1NFVCBjbGllbnRfbWlu
X21lc3NhZ2VzID0gd2FybmluZzsKK1NFVCByb3dfc2VjdXJpdHkgPSBvZmY7CisKKy0tCistLSBU
T0MgZW50cnkgMTggKGNsYXNzIDI2MTUgT0lEIDEzOTc3MSkKKy0tIE5hbWU6IHRhcmdldDsgVHlw
ZTogU0NIRU1BOyBTY2hlbWE6IC07IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFNDSEVN
QSB0YXJnZXQ7CisKK0FMVEVSIFNDSEVNQSB0YXJnZXQgT1dORVIgVE8gcG9zdGdyZXM7CisKK1NF
VCBkZWZhdWx0X3RhYmxlc3BhY2UgPSAnJzsKKworQ1JFQVRFIEVYVEVOU0lPTiBidHJlZV9naXN0
CisgICAgU0NIRU1BIHRhcmdldDsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI1MCAoY2xhc3MgMTI1
OSBPSUQgMTM5OTM4KQorLS0gTmFtZTogTVZpZXc7IFR5cGU6IE1BVEVSSUFMSVpFRCBWSUVXOyBT
Y2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgTUFURVJJQUxJWkVE
IFZJRVcgdGFyZ2V0LiJNVmlldyIgQVMKKyBTRUxFQ1QgJ3Rla3N0Jzo6dGV4dCBBUyB0ZXh0Cisg
IFdJVEggTk8gREFUQTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQuIk1WaWV3IiBPV05FUiBUTyBw
b3N0Z3JlczsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI3NyAoY2xhc3MgMTI1OSBPSUQgMTQ5MjM0
KQorLS0gTmFtZTogdGFibGVfZm9yX3BhcnRpdGlvbl8xOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0
YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9m
b3JfcGFydGl0aW9uXzEgKAorICAgIGNvbDEgYmlnaW50CispCitQQVJUSVRJT04gQlkgUkFOR0Ug
KGNvbDEpOworCisKK0FMVEVSIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfcGFydGl0aW9uXzEgT1dO
RVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNzggKGNsYXNzIDEyNTkgT0lE
IDE0OTIzNykKKy0tIE5hbWU6IHBhcnQzOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93
bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC5wYXJ0MyAoCisgICAgY29s
MSBiaWdpbnQKKyk7CitBTFRFUiBUQUJMRSBPTkxZIHRhcmdldC50YWJsZV9mb3JfcGFydGl0aW9u
XzEgQVRUQUNIIFBBUlRJVElPTiB0YXJnZXQucGFydDMgRk9SIFZBTFVFUyBGUk9NICgnMTMnKSBU
TyAoJzU2Jyk7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LnBhcnQzIE9XTkVSIFRPIHBvc3RncmVz
OworCistLQorLS0gVE9DIGVudHJ5IDEyMjU5IChjbGFzcyAxMjU5IE9JRCAxNDg5NzEpCistLSBO
YW1lOiB0YWJsZV9mb3JfY29sdW1uOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVy
OiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfY29sdW1uICgK
KyAgICBjb2wxIGJpZ2ludCwKKyAgICBjb2wyIGJpZ2ludCwKKyAgICBjb2w0IHRleHQKKyk7CisK
KworQUxURVIgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9jb2x1bW4gT1dORVIgVE8gcG9zdGdyZXM7
CisKKy0tCistLSBUT0MgZW50cnkgMTIyNjggKGNsYXNzIDEyNTkgT0lEIDE0OTA4OSkKKy0tIE5h
bWU6IHRhYmxlX2Zvcl9jb25zdHJhaW50czsgVHlwZTogVEFCTEU7IFNjaGVtYTogdGFyZ2V0OyBP
d25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2NvbnN0
cmFpbnRzICgKKyAgICBjb2wxIGludGVnZXIgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0LAorICAg
IENPTlNUUkFJTlQgY2hlY2tfY29uIENIRUNLICgoY29sMSA+IDMwKSkKKyk7CisKKworQUxURVIg
VEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9jb25zdHJhaW50cyBPV05FUiBUTyBwb3N0Z3JlczsKKwor
LS0KKy0tIFRPQyBlbnRyeSA2MTA2NiAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczog
MTIyNjgKKy0tIE5hbWU6IFRBQkxFIHRhYmxlX2Zvcl9jb25zdHJhaW50czsgVHlwZTogQ09NTUVO
VDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ09NTUVOVCBPTiBUQUJM
RSB0YXJnZXQudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjb21tZW50cyc7CisKKworLS0KKy0t
IFRPQyBlbnRyeSA2MTA2NyAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczogMTIyNjgK
Ky0tIE5hbWU6IENPTlNUUkFJTlQgY2hlY2tfY29uIE9OIHRhYmxlX2Zvcl9jb25zdHJhaW50czsg
VHlwZTogQ09NTUVOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ09N
TUVOVCBPTiBDT05TVFJBSU5UIGNoZWNrX2NvbiBPTiB0YXJnZXQudGFibGVfZm9yX2NvbnN0cmFp
bnRzIElTICdjb21lbnQnOworCisKKy0tCistLSBUT0MgZW50cnkgMTIyNTcgKGNsYXNzIDEyNTkg
T0lEIDE0ODk2MCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9kZWw7IFR5cGU6IFRBQkxFOyBTY2hlbWE6
IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgVEFCTEUgdGFyZ2V0LnRhYmxl
X2Zvcl9kZWwgKAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2RlbCBPV05F
UiBUTyBwb3N0Z3JlczsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI3MSAoY2xhc3MgMTI1OSBPSUQg
MTQ5MTcyKQorLS0gTmFtZTogdGFibGVfZm9yX2ZvcmVpZ25fa2V5OyBUeXBlOiBUQUJMRTsgU2No
ZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50
YWJsZV9mb3JfZm9yZWlnbl9rZXkgKAorICAgIGNvbDEgaW50ZWdlciBOT1QgTlVMTCwKKyAgICBj
b2wyICJjaGFyIiwKKyAgICBjb2wzIGJpZ2ludAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQu
dGFibGVfZm9yX2ZvcmVpZ25fa2V5IE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVu
dHJ5IDEyMjYzIChjbGFzcyAxMjU5IE9JRCAxNDkwMTMpCistLSBOYW1lOiB0YWJsZV9mb3JfaWRl
bnRpY2FsOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0K
KworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfaWRlbnRpY2FsICgKKyAgICBjb2wxIGlu
dGVnZXIgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHRhcmdl
dC50YWJsZV9mb3JfaWRlbnRpY2FsIE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVu
dHJ5IDEyMjYxIChjbGFzcyAxMjU5IE9JRCAxNDg5ODYpCistLSBOYW1lOiB0YWJsZV9mb3JfaW5k
ZXg7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitD
UkVBVEUgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9pbmRleCAoCisgICAgY29sMSBpbnRlZ2VyIE5P
VCBOVUxMLAorICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVf
Zm9yX2luZGV4IE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5IDEyMjcwIChj
bGFzcyAxMjU5IE9JRCAxNDkxNDQpCistLSBOYW1lOiB0YWJsZV9mb3JfcHJpbWFyeV9rZXk7IFR5
cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUg
VEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9wcmltYXJ5X2tleSAoCisgICAgY29sMSBpbnRlZ2VyIE5P
VCBOVUxMLAorICAgIGNvbDIgdGV4dCBOT1QgTlVMTAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJn
ZXQudGFibGVfZm9yX3ByaW1hcnlfa2V5IE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9D
IGVudHJ5IDEyMjY1IChjbGFzcyAxMjU5IE9JRCAxNDkwMzQpCistLSBOYW1lOiB0YWJsZV9mb3Jf
cnVsZTsgVHlwZTogVEFCTEU7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisK
K0NSRUFURSBUQUJMRSB0YXJnZXQudGFibGVfZm9yX3J1bGUgKAorICAgIGNvbDEgYmlnaW50IE5P
VCBOVUxMLAorICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVf
Zm9yX3J1bGUgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNjcgKGNs
YXNzIDEyNTkgT0lEIDE0OTA2NikKKy0tIE5hbWU6IHRhYmxlX2Zvcl90cmlnZ2VyOyBUeXBlOiBU
QUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxF
IHRhcmdldC50YWJsZV9mb3JfdHJpZ2dlciAoCisgICAgY29sMSBiaWdpbnQgTk9UIE5VTEwsCisg
ICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfdHJpZ2dl
ciBPV05FUiBUTyBwb3N0Z3JlczsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTA2IChjbGFzcyAy
NjA2IE9JRCAxNDkwOTcpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWludHMgRXhjbHVzaW9u
OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQor
CitBTFRFUiBUQUJMRSBPTkxZIHRhcmdldC50YWJsZV9mb3JfY29uc3RyYWludHMKKyAgICBBREQg
Q09OU1RSQUlOVCAiRXhjbHVzaW9uIiBFWENMVURFIFVTSU5HIGdpc3QgKGNvbDIgV0lUSCA8Pikg
V0lUSCAoZmlsbGZhY3Rvcj0nMTUnKSBXSEVSRSAoKGNvbDEgPiAxKSkgREVGRVJSQUJMRSBJTklU
SUFMTFkgREVGRVJSRUQ7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA2OCAoY2xhc3MgMCBPSUQg
MCkKKy0tIERlcGVuZGVuY2llczogNTY5MDYKKy0tIE5hbWU6IENPTlNUUkFJTlQgIkV4Y2x1c2lv
biIgT04gdGFibGVfZm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHRhcmdl
dDsgT3duZXI6IHBvc3RncmVzCistLQorCitDT01NRU5UIE9OIENPTlNUUkFJTlQgIkV4Y2x1c2lv
biIgT04gdGFyZ2V0LnRhYmxlX2Zvcl9jb25zdHJhaW50cyBJUyAnY29tbWVudHMnOworCisKKy0t
CistLSBUT0MgZW50cnkgNTY5MTAgKGNsYXNzIDI2MDYgT0lEIDE0OTE3NikKKy0tIE5hbWU6IHRh
YmxlX2Zvcl9mb3JlaWduX2tleSB0YWJsZV9mb3JfZm9yZWlnbl9rZXlfcGtleTsgVHlwZTogQ09O
U1RSQUlOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFC
TEUgT05MWSB0YXJnZXQudGFibGVfZm9yX2ZvcmVpZ25fa2V5CisgICAgQUREIENPTlNUUkFJTlQg
dGFibGVfZm9yX2ZvcmVpZ25fa2V5X3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCist
LSBUT0MgZW50cnkgNTY4OTcgKGNsYXNzIDI2MDYgT0lEIDE0ODk5MykKKy0tIE5hbWU6IHRhYmxl
X2Zvcl9pbmRleCB0YWJsZV9mb3JfaW5kZXhfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1h
OiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05MWSB0YXJnZXQu
dGFibGVfZm9yX2luZGV4CisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX2luZGV4X3BrZXkg
UFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDggKGNsYXNzIDI2
MDYgT0lEIDE0OTE1MSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9wcmltYXJ5X2tleSB0YWJsZV9mb3Jf
cHJpbWFyeV9rZXlfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVy
OiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05MWSB0YXJnZXQudGFibGVfZm9yX3ByaW1h
cnlfa2V5CisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX3ByaW1hcnlfa2V5X3BrZXkgUFJJ
TUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDIgKGNsYXNzIDI2MDYg
T0lEIDE0OTA0MSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9ydWxlIHRhYmxlX2Zvcl9ydWxlX3BrZXk7
IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisK
K0FMVEVSIFRBQkxFIE9OTFkgdGFyZ2V0LnRhYmxlX2Zvcl9ydWxlCisgICAgQUREIENPTlNUUkFJ
TlQgdGFibGVfZm9yX3J1bGVfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRP
QyBlbnRyeSA1NjkwMCAoY2xhc3MgMjYwNiBPSUQgMTQ5MDIwKQorLS0gTmFtZTogdGFibGVfZm9y
X2lkZW50aWNhbCB0YWJsZV9mb3JfdGFibGVfZm9yX2lkZW50aWNhbF9wa2V5OyBUeXBlOiBDT05T
VFJBSU5UOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJM
RSBPTkxZIHRhcmdldC50YWJsZV9mb3JfaWRlbnRpY2FsCisgICAgQUREIENPTlNUUkFJTlQgdGFi
bGVfZm9yX3RhYmxlX2Zvcl9pZGVudGljYWxfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKwor
LS0KKy0tIFRPQyBlbnRyeSA1NjkwNCAoY2xhc3MgMjYwNiBPSUQgMTQ5MDczKQorLS0gTmFtZTog
dGFibGVfZm9yX3RyaWdnZXIgdGFibGVfZm9yX3RyaWdnZXJfcGtleTsgVHlwZTogQ09OU1RSQUlO
VDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05M
WSB0YXJnZXQudGFibGVfZm9yX3RyaWdnZXIKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJsZV9mb3Jf
dHJpZ2dlcl9wa2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2
ODkzIChjbGFzcyAxMjU5IE9JRCAxNDg5OTQpCistLSBOYW1lOiBpbmRleDE7IFR5cGU6IElOREVY
OyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgSU5ERVggaW5k
ZXgxIE9OIHRhcmdldC50YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRyZWUgKGNvbDIgdGV4dF9wYXR0
ZXJuX29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njg5NCAoY2xhc3MgMTI1OSBPSUQgMTQ4
OTk1KQorLS0gTmFtZTogaW5kZXgyOyBUeXBlOiBJTkRFWDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVy
OiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIElOREVYIGluZGV4MiBPTiB0YXJnZXQudGFibGVfZm9y
X2luZGV4IFVTSU5HIGJ0cmVlIChjb2wyIHRleHRfcGF0dGVybl9vcHMpOworCisKKy0tCistLSBU
T0MgZW50cnkgNTY4OTggKGNsYXNzIDEyNTkgT0lEIDE0OTAyMSkKKy0tIE5hbWU6IGluZGV4X2lk
ZW50aWNhbDsgVHlwZTogSU5ERVg7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0t
CisKK0NSRUFURSBJTkRFWCBpbmRleF9pZGVudGljYWwgT04gdGFyZ2V0LnRhYmxlX2Zvcl9pZGVu
dGljYWwgVVNJTkcgYnRyZWUgKGNvbDIgdGV4dF9wYXR0ZXJuX29wcyk7CisKKworLS0KKy0tIFRP
QyBlbnRyeSA1Njg5NSAoY2xhc3MgMTI1OSBPSUQgMTQ5MjEyKQorLS0gTmFtZTogaW5kZXhfc2Ft
ZTsgVHlwZTogSU5ERVg7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NS
RUFURSBJTkRFWCBpbmRleF9zYW1lIE9OIHRhcmdldC50YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRy
ZWUgKGNvbDIgdGV4dF9wYXR0ZXJuX29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njg5MiAo
Y2xhc3MgMTI1OSBPSUQgMTM5OTQ1KQorLS0gTmFtZTogbXZpZXdfaW5kZXg7IFR5cGU6IElOREVY
OyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgSU5ERVggbXZp
ZXdfaW5kZXggT04gdGFyZ2V0LiJNVmlldyIgVVNJTkcgYnRyZWUgKHRleHQgdGV4dF9wYXR0ZXJu
X29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA0NSAoY2xhc3MgMjYxOCBPSUQgMTQ5MDQy
KQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUgcnVsZTE7IFR5cGU6IFJVTEU7IFNjaGVtYTogdGFy
Z2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBSVUxFIHJ1bGUxIEFTCisgICAgT04g
VVBEQVRFIFRPIHRhcmdldC50YWJsZV9mb3JfcnVsZSBETyBJTlNURUFEIE5PVEhJTkc7CisKKwor
LS0KKy0tIFRPQyBlbnRyeSA2MTA2OSAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczog
NjEwNDUKKy0tIE5hbWU6IFJVTEUgcnVsZTEgT04gdGFibGVfZm9yX3J1bGU7IFR5cGU6IENPTU1F
TlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQgT04gUlVM
RSBydWxlMSBPTiB0YXJnZXQudGFibGVfZm9yX3J1bGUgSVMgJ2NvbW1lbnRzJzsKKworCistLQor
LS0gVE9DIGVudHJ5IDYxMDQ2IChjbGFzcyAyNjE4IE9JRCAxNDkwNDMpCistLSBOYW1lOiB0YWJs
ZV9mb3JfcnVsZSBydWxlMjsgVHlwZTogUlVMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0
Z3JlcworLS0KKworQ1JFQVRFIFJVTEUgcnVsZTIgQVMKKyAgICBPTiBVUERBVEUgVE8gdGFyZ2V0
LnRhYmxlX2Zvcl9ydWxlIERPIE5PVEhJTkc7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA0NyAo
Y2xhc3MgMjYxOCBPSUQgMTQ5MDQ0KQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUgcnVsZTM7IFR5
cGU6IFJVTEU7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBS
VUxFIHJ1bGUzIEFTCisgICAgT04gSU5TRVJUIFRPIHRhcmdldC50YWJsZV9mb3JfcnVsZSBETyBO
T1RISU5HOworCisKKy0tCistLSBUT0MgZW50cnkgNjEwNTAgKGNsYXNzIDAgT0lEIDEzOTkzOCkK
Ky0tIERlcGVuZGVuY2llczogMTIyNTAgNjEwNjIKKy0tIE5hbWU6IE1WaWV3OyBUeXBlOiBNQVRF
UklBTElaRUQgVklFVyBEQVRBOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQor
CitSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIHRhcmdldC4iTVZpZXciOworCisKKy0tCistLSBU
T0MgZW50cnkgMTIyODQgKGNsYXNzIDEyNTkgT0lEIDM0NzgyMykKKy0tIE5hbWU6IHRlc3Qgdmll
dzsgVHlwZTogVklFVzsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JF
QVRFIFZJRVcgdGFyZ2V0LiJ0ZXN0IHZpZXciIEFTCisgU0VMRUNUIHBnX2NsYXNzLnJlbG5hbWUs
CisgICAgcGdfY2xhc3MucmVsbmFtZXNwYWNlLAorICAgIHBnX2NsYXNzLnJlbHR5cGUsCisgICAg
cGdfY2xhc3MucmVsb2Z0eXBlLAorICAgIHBnX2NsYXNzLnJlbG93bmVyLAorICAgIHBnX2NsYXNz
LnJlbGFtLAorICAgIHBnX2NsYXNzLnJlbGZpbGVub2RlLAorICAgIHBnX2NsYXNzLnJlbHRhYmxl
c3BhY2UsCisgICAgcGdfY2xhc3MucmVscGFnZXMsCisgICAgcGdfY2xhc3MucmVsdHVwbGVzLAor
ICAgIHBnX2NsYXNzLnJlbGFsbHZpc2libGUsCisgICAgcGdfY2xhc3MucmVsdG9hc3RyZWxpZCwK
KyAgICBwZ19jbGFzcy5yZWxoYXNpbmRleCwKKyAgICBwZ19jbGFzcy5yZWxpc3NoYXJlZCwKKyAg
ICBwZ19jbGFzcy5yZWxwZXJzaXN0ZW5jZSwKKyAgICBwZ19jbGFzcy5yZWxraW5kLAorICAgIHBn
X2NsYXNzLnJlbG5hdHRzLAorICAgIHBnX2NsYXNzLnJlbGNoZWNrcywKKyAgICBwZ19jbGFzcy5y
ZWxoYXNvaWRzLAorICAgIHBnX2NsYXNzLnJlbGhhc3BrZXksCisgICAgcGdfY2xhc3MucmVsaGFz
cnVsZXMsCisgICAgcGdfY2xhc3MucmVsaGFzdHJpZ2dlcnMsCisgICAgcGdfY2xhc3MucmVsaGFz
c3ViY2xhc3MsCisgICAgcGdfY2xhc3MucmVscm93c2VjdXJpdHksCisgICAgcGdfY2xhc3MucmVs
Zm9yY2Vyb3dzZWN1cml0eSwKKyAgICBwZ19jbGFzcy5yZWxpc3BvcHVsYXRlZCwKKyAgICBwZ19j
bGFzcy5yZWxyZXBsaWRlbnQsCisgICAgcGdfY2xhc3MucmVsaXNwYXJ0aXRpb24sCisgICAgcGdf
Y2xhc3MucmVsZnJvemVueGlkLAorICAgIHBnX2NsYXNzLnJlbG1pbm14aWQsCisgICAgcGdfY2xh
c3MucmVsYWNsLAorICAgIHBnX2NsYXNzLnJlbG9wdGlvbnMsCisgICAgcGdfY2xhc3MucmVscGFy
dGJvdW5kCisgICBGUk9NIHBnX2NsYXNzCisgTElNSVQgMTA7CisKKworQUxURVIgVEFCTEUgdGFy
Z2V0LiJ0ZXN0IHZpZXciIE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5IDEy
Mjg1IChjbGFzcyAxMjU5IE9JRCAzNDc4MjgpCistLSBOYW1lOiB0ZXN0IHZpZXcgZjsgVHlwZTog
VklFVzsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFZJRVcg
dGFyZ2V0LiJ0ZXN0IHZpZXcgZiIgV0lUSCAoc2VjdXJpdHlfYmFycmllcj0ndHJ1ZScpIEFTCisg
U0VMRUNUIDI7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LiJ0ZXN0IHZpZXcgZiIgT1dORVIgVE8g
cG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgNjExMDUgKGNsYXNzIDAgT0lEIDApCistLSBE
ZXBlbmRlbmNpZXM6IDEyMjg1CistLSBOYW1lOiBWSUVXICJ0ZXN0IHZpZXcgZiI7IFR5cGU6IENP
TU1FTlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQgT04g
VklFVyB0YXJnZXQuInRlc3QgdmlldyBmIiBJUyAnY21uJzsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk
bWluL3Rvb2xzL3NjaGVtYV9kaWZmL3Rlc3RzL3BnLzEyX3BsdXMvc291cmNlLnNxbCBiL3dlYi9w
Z2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3Rlc3RzL3BnLzEyX3BsdXMvc291cmNlLnNxbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjhlZjg3ZTNiYwotLS0gL2Rldi9udWxs
CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3Rlc3RzL3BnLzEyX3BsdXMvc291
cmNlLnNxbApAQCAtMCwwICsxLDQ0MCBAQAorLS0KKy0tIFBvc3RncmVTUUwgZGF0YWJhc2UgZHVt
cAorLS0KKworLS0gRHVtcGVkIGZyb20gZGF0YWJhc2UgdmVyc2lvbiAxMC43CistLSBEdW1wZWQg
YnkgcGdfZHVtcCB2ZXJzaW9uIDEyYmV0YTIKKworLS0gU3RhcnRlZCBvbiAyMDE5LTExLTAxIDEy
OjU0OjE1IElTVAorCitTRVQgc3RhdGVtZW50X3RpbWVvdXQgPSAwOworU0VUIGxvY2tfdGltZW91
dCA9IDA7CitTRVQgaWRsZV9pbl90cmFuc2FjdGlvbl9zZXNzaW9uX3RpbWVvdXQgPSAwOworU0VU
IGNsaWVudF9lbmNvZGluZyA9ICdVVEY4JzsKK1NFVCBzdGFuZGFyZF9jb25mb3JtaW5nX3N0cmlu
Z3MgPSBvbjsKK1NFTEVDVCBwZ19jYXRhbG9nLnNldF9jb25maWcoJ3NlYXJjaF9wYXRoJywgJycs
IGZhbHNlKTsKK1NFVCBjaGVja19mdW5jdGlvbl9ib2RpZXMgPSBmYWxzZTsKK1NFVCB4bWxvcHRp
b24gPSBjb250ZW50OworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSB3YXJuaW5nOworU0VUIHJv
d19zZWN1cml0eSA9IG9mZjsKKworLS0KKy0tIFRPQyBlbnRyeSAxNyAoY2xhc3MgMjYxNSBPSUQg
MTM5NzcwKQorLS0gTmFtZTogc291cmNlOyBUeXBlOiBTQ0hFTUE7IFNjaGVtYTogLTsgT3duZXI6
IHBvc3RncmVzCistLQorCitDUkVBVEUgU0NIRU1BIHNvdXJjZTsKKworCitBTFRFUiBTQ0hFTUEg
c291cmNlIE9XTkVSIFRPIHBvc3RncmVzOworCitTRVQgZGVmYXVsdF90YWJsZXNwYWNlID0gJyc7
CisKKworQ1JFQVRFIEVYVEVOU0lPTiBidHJlZV9naXN0CisgICAgU0NIRU1BIHNvdXJjZTsKKwor
LS0KKy0tIFRPQyBlbnRyeSAxMjI3MiAoY2xhc3MgMTI1OSBPSUQgMTQ5MjA1KQorLS0gTmFtZTog
dGFibGVfZm9yX3BhcnRpdGlvbjsgVHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjog
cG9zdGdyZXMKKy0tCisKK0NSRUFURSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX3BhcnRpdGlvbiAo
CisgICAgY29sMSBiaWdpbnQgTk9UIE5VTEwKKykKK1BBUlRJVElPTiBCWSBSQU5HRSAoY29sMSk7
CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9wYXJ0aXRpb24gT1dORVIgVE8gcG9z
dGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNzMgKGNsYXNzIDEyNTkgT0lEIDE0OTIwOCkK
Ky0tIE5hbWU6IHBhcnQxOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0
Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHNvdXJjZS5wYXJ0MSAoCisgICAgY29sMSBiaWdpbnQg
Tk9UIE5VTEwKKyk7CitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfcGFydGl0aW9u
IEFUVEFDSCBQQVJUSVRJT04gc291cmNlLnBhcnQxIEZPUiBWQUxVRVMgRlJPTSAoJzEnKSBUTyAo
JzIzJyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnBhcnQxIE9XTkVSIFRPIHBvc3RncmVzOwor
CistLQorLS0gVE9DIGVudHJ5IDEyMjc0IChjbGFzcyAxMjU5IE9JRCAxNDkyMTMpCistLSBOYW1l
OiB0YWJsZV9mb3JfcGFydGl0aW9uXzE7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3du
ZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9wYXJ0aXRp
b25fMSAoCisgICAgY29sMSBiaWdpbnQKKykKK1BBUlRJVElPTiBCWSBSQU5HRSAoY29sMSk7CisK
KworQUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9wYXJ0aXRpb25fMSBPV05FUiBUTyBwb3N0
Z3JlczsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI3NSAoY2xhc3MgMTI1OSBPSUQgMTQ5MjE2KQor
LS0gTmFtZTogcGFydDM7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3Rn
cmVzCistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnBhcnQzICgKKyAgICBjb2wxIGJpZ2ludAor
KTsKK0FMVEVSIFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zvcl9wYXJ0aXRpb25fMSBBVFRBQ0gg
UEFSVElUSU9OIHNvdXJjZS5wYXJ0MyBGT1IgVkFMVUVTIEZST00gKCcxJykgVE8gKCcxMCcpOwor
CisKK0FMVEVSIFRBQkxFIHNvdXJjZS5wYXJ0MyBPV05FUiBUTyBwb3N0Z3JlczsKKworLS0KKy0t
IFRPQyBlbnRyeSAxMjI3NiAoY2xhc3MgMTI1OSBPSUQgMTQ5MjE5KQorLS0gTmFtZTogcGFydDQ7
IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVB
VEUgVEFCTEUgc291cmNlLnBhcnQ0ICgKKyAgICBjb2wxIGJpZ2ludAorKTsKK0FMVEVSIFRBQkxF
IE9OTFkgc291cmNlLnRhYmxlX2Zvcl9wYXJ0aXRpb25fMSBBVFRBQ0ggUEFSVElUSU9OIHNvdXJj
ZS5wYXJ0NCBGT1IgVkFMVUVTIEZST00gKCcxMScpIFRPICgnMjAnKTsKKworCitBTFRFUiBUQUJM
RSBzb3VyY2UucGFydDQgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIy
NTggKGNsYXNzIDEyNTkgT0lEIDE0ODk2MykKKy0tIE5hbWU6IHRhYmxlX2Zvcl9jb2x1bW47IFR5
cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUg
VEFCTEUgc291cmNlLnRhYmxlX2Zvcl9jb2x1bW4gKAorICAgIGNvbDEgYmlnaW50IE5PVCBOVUxM
LAorICAgIGNvbDIgdGV4dCwKKyAgICBjb2wzIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgc291
cmNlLnRhYmxlX2Zvcl9jb2x1bW4gT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50
cnkgMTIyNTYgKGNsYXNzIDEyNTkgT0lEIDE0ODg5NSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9jb25z
dHJhaW50czsgVHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0t
CisKK0NSRUFURSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzICgKKyAgICBjb2wx
IGludGVnZXIgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHNv
dXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBU
T0MgZW50cnkgNjEwNjYgKGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDEyMjU2Cist
LSBOYW1lOiBUQUJMRSB0YWJsZV9mb3JfY29uc3RyYWludHM7IFR5cGU6IENPTU1FTlQ7IFNjaGVt
YTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQgT04gVEFCTEUgc291cmNl
LnRhYmxlX2Zvcl9jb25zdHJhaW50cyBJUyAnY29tbWVudHMnOworCisKKy0tCistLSBUT0MgZW50
cnkgMTIyNjIgKGNsYXNzIDEyNTkgT0lEIDE0OTAwNCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9pZGVu
dGljYWw7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQor
CitDUkVBVEUgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9pZGVudGljYWwgKAorICAgIGNvbDEgaW50
ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgc291cmNl
LnRhYmxlX2Zvcl9pZGVudGljYWwgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50
cnkgMTIyNjAgKGNsYXNzIDEyNTkgT0lEIDE0ODk3NykKKy0tIE5hbWU6IHRhYmxlX2Zvcl9pbmRl
eDsgVHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NS
RUFURSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX2luZGV4ICgKKyAgICBjb2wxIGludGVnZXIgTk9U
IE5VTEwsCisgICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJsZV9m
b3JfaW5kZXggT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNjkgKGNs
YXNzIDEyNTkgT0lEIDE0OTEyOCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9wcmltYXJ5X2tleTsgVHlw
ZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBU
QUJMRSBzb3VyY2UudGFibGVfZm9yX3ByaW1hcnlfa2V5ICgKKyAgICBjb2wxIGludGVnZXIgTk9U
IE5VTEwsCisgICAgY29sMiB0ZXh0IE5PVCBOVUxMCispOworCisKK0FMVEVSIFRBQkxFIHNvdXJj
ZS50YWJsZV9mb3JfcHJpbWFyeV9rZXkgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0Mg
ZW50cnkgMTIyNjQgKGNsYXNzIDEyNTkgT0lEIDE0OTAyNCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9y
dWxlOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKwor
Q1JFQVRFIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfcnVsZSAoCisgICAgY29sMSBiaWdpbnQgTk9U
IE5VTEwsCisgICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJsZV9m
b3JfcnVsZSBPV05FUiBUTyBwb3N0Z3JlczsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI2NiAoY2xh
c3MgMTI1OSBPSUQgMTQ5MDQ4KQorLS0gTmFtZTogdGFibGVfZm9yX3RyaWdnZXI7IFR5cGU6IFRB
QkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgVEFCTEUg
c291cmNlLnRhYmxlX2Zvcl90cmlnZ2VyICgKKyAgICBjb2wxIGJpZ2ludCBOT1QgTlVMTCwKKyAg
ICBjb2wyIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl90cmlnZ2Vy
IE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5IDU2ODkzIChjbGFzcyAyNjA2
IE9JRCAxNDg5MDQpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWludHMgRXhjbHVzaW9uOyBU
eXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitB
TFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMKKyAgICBBREQgQ09O
U1RSQUlOVCAiRXhjbHVzaW9uIiBFWENMVURFIFVTSU5HIGdpc3QgKGNvbDIgV0lUSCA8PikgV0lU
SCAoZmlsbGZhY3Rvcj0nMTInKSBXSEVSRSAoKGNvbDEgPiAxKSkgREVGRVJSQUJMRSBJTklUSUFM
TFkgREVGRVJSRUQ7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA2NyAoY2xhc3MgMCBPSUQgMCkK
Ky0tIERlcGVuZGVuY2llczogNTY4OTMKKy0tIE5hbWU6IENPTlNUUkFJTlQgIkV4Y2x1c2lvbiIg
T04gdGFibGVfZm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHNvdXJjZTsg
T3duZXI6IHBvc3RncmVzCistLQorCitDT01NRU5UIE9OIENPTlNUUkFJTlQgIkV4Y2x1c2lvbiIg
T04gc291cmNlLnRhYmxlX2Zvcl9jb25zdHJhaW50cyBJUyAnY29tbWVudHMnOworCisKKy0tCist
LSBUT0MgZW50cnkgNTY4OTEgKGNsYXNzIDI2MDYgT0lEIDE0ODkxMSkKKy0tIE5hbWU6IHRhYmxl
X2Zvcl9jb25zdHJhaW50cyBjaGVja19jb247IFR5cGU6IENIRUNLIENPTlNUUkFJTlQ7IFNjaGVt
YTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJs
ZV9mb3JfY29uc3RyYWludHMKKyAgICBBREQgQ09OU1RSQUlOVCBjaGVja19jb24gQ0hFQ0sgKChj
b2wxID4gMTApKSBOT1QgVkFMSUQ7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA2OCAoY2xhc3Mg
MCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczogNTY4OTEKKy0tIE5hbWU6IENPTlNUUkFJTlQgY2hl
Y2tfY29uIE9OIHRhYmxlX2Zvcl9jb25zdHJhaW50czsgVHlwZTogQ09NTUVOVDsgU2NoZW1hOiBz
b3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ09NTUVOVCBPTiBDT05TVFJBSU5UIGNoZWNr
X2NvbiBPTiBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjb21lbnQnOworCisKKy0t
CistLSBUT0MgZW50cnkgNTY4OTkgKGNsYXNzIDI2MDYgT0lEIDE0ODk3MCkKKy0tIE5hbWU6IHRh
YmxlX2Zvcl9jb2x1bW4gdGFibGVfZm9yX2NvbHVtbl9wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBT
Y2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNv
dXJjZS50YWJsZV9mb3JfY29sdW1uCisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX2NvbHVt
bl9wa2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2ODk1IChj
bGFzcyAyNjA2IE9JRCAxNDg5MDIpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWludHMgdGFi
bGVfZm9yX2NvbnN0cmFpbnRzX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNl
OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zv
cl9jb25zdHJhaW50cworICAgIEFERCBDT05TVFJBSU5UIHRhYmxlX2Zvcl9jb25zdHJhaW50c19w
a2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTA0IChjbGFz
cyAyNjA2IE9JRCAxNDg5ODQpCistLSBOYW1lOiB0YWJsZV9mb3JfaW5kZXggdGFibGVfZm9yX2lu
ZGV4X3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdy
ZXMKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zvcl9pbmRleAorICAgIEFE
RCBDT05TVFJBSU5UIHRhYmxlX2Zvcl9pbmRleF9wa2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKwor
CistLQorLS0gVE9DIGVudHJ5IDU2OTEzIChjbGFzcyAyNjA2IE9JRCAxNDkxMzUpCistLSBOYW1l
OiB0YWJsZV9mb3JfcHJpbWFyeV9rZXkgdGFibGVfZm9yX3ByaW1hcnlfa2V5X3BrZXk7IFR5cGU6
IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0FMVEVS
IFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zvcl9wcmltYXJ5X2tleQorICAgIEFERCBDT05TVFJB
SU5UIHRhYmxlX2Zvcl9wcmltYXJ5X2tleV9wa2V5IFBSSU1BUlkgS0VZIChjb2wxLCBjb2wyKTsK
KworCistLQorLS0gVE9DIGVudHJ5IDU2OTA5IChjbGFzcyAyNjA2IE9JRCAxNDkwMzEpCistLSBO
YW1lOiB0YWJsZV9mb3JfcnVsZSB0YWJsZV9mb3JfcnVsZV9wa2V5OyBUeXBlOiBDT05TVFJBSU5U
OyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJMRSBPTkxZ
IHNvdXJjZS50YWJsZV9mb3JfcnVsZQorICAgIEFERCBDT05TVFJBSU5UIHRhYmxlX2Zvcl9ydWxl
X3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDcgKGNs
YXNzIDI2MDYgT0lEIDE0OTAxMSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9pZGVudGljYWwgdGFibGVf
Zm9yX3RhYmxlX2Zvcl9pZGVudGljYWxfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBz
b3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05MWSBzb3VyY2UudGFi
bGVfZm9yX2lkZW50aWNhbAorICAgIEFERCBDT05TVFJBSU5UIHRhYmxlX2Zvcl90YWJsZV9mb3Jf
aWRlbnRpY2FsX3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkg
NTY5MTEgKGNsYXNzIDI2MDYgT0lEIDE0OTA1NSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl90cmlnZ2Vy
IHRhYmxlX2Zvcl90cmlnZ2VyX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNl
OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zv
cl90cmlnZ2VyCisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX3RyaWdnZXJfcGtleSBQUklN
QVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njg5NyAoY2xhc3MgMjYwNiBP
SUQgMTQ4OTEzKQorLS0gTmFtZTogdGFibGVfZm9yX2NvbnN0cmFpbnRzIHVuaXF1ZTsgVHlwZTog
Q09OU1RSQUlOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIg
VEFCTEUgT05MWSBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzCisgICAgQUREIENPTlNUUkFJ
TlQgInVuaXF1ZSIgVU5JUVVFIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDYxMDY5IChj
bGFzcyAwIE9JRCAwKQorLS0gRGVwZW5kZW5jaWVzOiA1Njg5NworLS0gTmFtZTogQ09OU1RSQUlO
VCAidW5pcXVlIiBPTiB0YWJsZV9mb3JfY29uc3RyYWludHM7IFR5cGU6IENPTU1FTlQ7IFNjaGVt
YTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQgT04gQ09OU1RSQUlOVCAi
dW5pcXVlIiBPTiBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjbW50JzsKKworCist
LQorLS0gVE9DIGVudHJ5IDU2OTAwIChjbGFzcyAxMjU5IE9JRCAxNDkwMjMpCistLSBOYW1lOiBp
bmRleDE7IFR5cGU6IElOREVYOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQor
CitDUkVBVEUgSU5ERVggaW5kZXgxIE9OIHNvdXJjZS50YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRy
ZWUgKGNvbDIgdmFyY2hhcl9wYXR0ZXJuX29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njkw
NSAoY2xhc3MgMTI1OSBPSUQgMTQ5MDEyKQorLS0gTmFtZTogaW5kZXhfaWRlbnRpY2FsOyBUeXBl
OiBJTkRFWDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIElO
REVYIGluZGV4X2lkZW50aWNhbCBPTiBzb3VyY2UudGFibGVfZm9yX2lkZW50aWNhbCBVU0lORyBi
dHJlZSAoY29sMiB0ZXh0X3BhdHRlcm5fb3BzKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTAx
IChjbGFzcyAxMjU5IE9JRCAxNDkyMTEpCistLSBOYW1lOiBpbmRleF9zYW1lOyBUeXBlOiBJTkRF
WDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIElOREVYIGlu
ZGV4X3NhbWUgT04gc291cmNlLnRhYmxlX2Zvcl9pbmRleCBVU0lORyBidHJlZSAoY29sMiB0ZXh0
X3BhdHRlcm5fb3BzKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTAyIChjbGFzcyAxMjU5IE9J
RCAxNDkwMjIpCistLSBOYW1lOiBpbmRleF9zb3VyY2U7IFR5cGU6IElOREVYOyBTY2hlbWE6IHNv
dXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgSU5ERVggaW5kZXhfc291cmNlIE9O
IHNvdXJjZS50YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRyZWUgKGNvbDIgdGV4dF9wYXR0ZXJuX29w
cyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA0NCAoY2xhc3MgMjYxOCBPSUQgMTQ5MDMyKQor
LS0gTmFtZTogdGFibGVfZm9yX3J1bGUgcnVsZTE7IFR5cGU6IFJVTEU7IFNjaGVtYTogc291cmNl
OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBSVUxFIHJ1bGUxIEFTCisgICAgT04gVVBE
QVRFIFRPIHNvdXJjZS50YWJsZV9mb3JfcnVsZSBETyBJTlNURUFEIE5PVEhJTkc7CisKKworLS0K
Ky0tIFRPQyBlbnRyeSA2MTA3MCAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczogNjEw
NDQKKy0tIE5hbWU6IFJVTEUgcnVsZTEgT04gdGFibGVfZm9yX3J1bGU7IFR5cGU6IENPTU1FTlQ7
IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQgT04gUlVMRSBy
dWxlMSBPTiBzb3VyY2UudGFibGVfZm9yX3J1bGUgSVMgJ2NvbW1lbnRzJzsKKworCistLQorLS0g
VE9DIGVudHJ5IDYxMDQ1IChjbGFzcyAyNjE4IE9JRCAxNDkwMzMpCistLSBOYW1lOiB0YWJsZV9m
b3JfcnVsZSBydWxlMjsgVHlwZTogUlVMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3Jl
cworLS0KKworQ1JFQVRFIFJVTEUgcnVsZTIgQVMKKyAgICBPTiBJTlNFUlQgVE8gc291cmNlLnRh
YmxlX2Zvcl9ydWxlIERPIE5PVEhJTkc7CisKKy0tCistLSBUT0MgZW50cnkgMTIyODMgKGNsYXNz
IDEyNTkgT0lEIDM0NzgxOCkKKy0tIE5hbWU6IHRlc3QgdmlldzsgVHlwZTogVklFVzsgU2NoZW1h
OiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFZJRVcgc291cmNlLiJ0ZXN0
IHZpZXciIEFTCisgU0VMRUNUIHBnX2NsYXNzLnJlbG5hbWUsCisgICAgcGdfY2xhc3MucmVsbmFt
ZXNwYWNlLAorICAgIHBnX2NsYXNzLnJlbHR5cGUsCisgICAgcGdfY2xhc3MucmVsb2Z0eXBlLAor
ICAgIHBnX2NsYXNzLnJlbG93bmVyLAorICAgIHBnX2NsYXNzLnJlbGFtLAorICAgIHBnX2NsYXNz
LnJlbGZpbGVub2RlLAorICAgIHBnX2NsYXNzLnJlbHRhYmxlc3BhY2UsCisgICAgcGdfY2xhc3Mu
cmVscGFnZXMKKyAgIEZST00gcGdfY2xhc3MKKyBMSU1JVCAxMDsKKworCitBTFRFUiBUQUJMRSBz
b3VyY2UuInRlc3QgdmlldyIgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkg
MTIyODYgKGNsYXNzIDEyNTkgT0lEIDM0NzgzMikKKy0tIE5hbWU6IHRlc3QgdmlldyBmOyBUeXBl
OiBWSUVXOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgVklF
VyBzb3VyY2UuInRlc3QgdmlldyBmIiBXSVRIIChzZWN1cml0eV9iYXJyaWVyPSdmYWxzZScpIEFT
CisgU0VMRUNUIDI7CisKKworQUxURVIgVEFCTEUgc291cmNlLiJ0ZXN0IHZpZXcgZiIgT1dORVIg
VE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgNjExMTEgKGNsYXNzIDAgT0lEIDApCist
LSBEZXBlbmRlbmNpZXM6IDEyMjg2CistLSBOYW1lOiBWSUVXICJ0ZXN0IHZpZXcgZiI7IFR5cGU6
IENPTU1FTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQg
T04gVklFVyBzb3VyY2UuInRlc3QgdmlldyBmIiBJUyAnY21uJzsKKworLS0KKy0tIFRPQyBlbnRy
eSAyMjMgKGNsYXNzIDEyNTUgT0lEIDY3MjA2KQorLS0gTmFtZTogZG9kYWpfa2xpamVudGEoY2hh
cmFjdGVyIHZhcnlpbmcsIGNoYXJhY3RlciB2YXJ5aW5nLCBjaGFyYWN0ZXIgdmFyeWluZywgY2hh
cmFjdGVyIHZhcnlpbmcsIGludGVnZXIsIGNoYXJhY3RlciB2YXJ5aW5nLCBjaGFyYWN0ZXIgdmFy
eWluZywgY2hhcmFjdGVyIHZhcnlpbmcsIGJvb2xlYW4sIGJvb2xlYW4sIGNoYXJhY3RlciB2YXJ5
aW5nLCBjaGFyYWN0ZXIgdmFyeWluZywgY2hhcmFjdGVyIHZhcnlpbmcsIGNoYXJhY3RlciB2YXJ5
aW5nLCBudW1lcmljLCBjaGFyYWN0ZXIgdmFyeWluZyk7IFR5cGU6IFBST0NFRFVSRTsgU2NoZW1h
OiBwdWJsaWM7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFBST0NFRFVSRSBzb3VyY2Uu
ZG9kYWpfa2xpamVudGEodl9uYXppdiBjaGFyYWN0ZXIgdmFyeWluZywgdl9vaWIgY2hhcmFjdGVy
IHZhcnlpbmcsIHZfcGR2X2lkIGNoYXJhY3RlciB2YXJ5aW5nLCB2X2FkcmVzYSBjaGFyYWN0ZXIg
dmFyeWluZywgdl9tamVzdG8gaW50ZWdlciwgdl9kcnphdmEgY2hhcmFjdGVyIHZhcnlpbmcsIHZf
dGlwX3Bfc3ViIGNoYXJhY3RlciB2YXJ5aW5nLCB2X3ZsYXNuaWsgY2hhcmFjdGVyIHZhcnlpbmcs
IHZfcGR2IGJvb2xlYW4sIHZfZmlzayBib29sZWFuLCB2X2liYW4gY2hhcmFjdGVyIHZhcnlpbmcs
IHZfa19vc29iYSBjaGFyYWN0ZXIgdmFyeWluZywgdl9lbWFpbCBjaGFyYWN0ZXIgdmFyeWluZywg
dl9icl90ZWwgY2hhcmFjdGVyIHZhcnlpbmcsIHZfcmFkbmFfZ29kIG51bWVyaWMsIHZfc2NoZW1h
IGNoYXJhY3RlciB2YXJ5aW5nKQorICAgIExBTkdVQUdFIHNxbAorICAgIEFTICQkc2VsZWN0IDE7
JCQ7CisKKworQUxURVIgUFJPQ0VEVVJFIHNvdXJjZS5kb2Rhal9rbGlqZW50YSh2X25heml2IGNo
YXJhY3RlciB2YXJ5aW5nLCB2X29pYiBjaGFyYWN0ZXIgdmFyeWluZywgdl9wZHZfaWQgY2hhcmFj
dGVyIHZhcnlpbmcsIHZfYWRyZXNhIGNoYXJhY3RlciB2YXJ5aW5nLCB2X21qZXN0byBpbnRlZ2Vy
LCB2X2RyemF2YSBjaGFyYWN0ZXIgdmFyeWluZywgdl90aXBfcF9zdWIgY2hhcmFjdGVyIHZhcnlp
bmcsIHZfdmxhc25payBjaGFyYWN0ZXIgdmFyeWluZywgdl9wZHYgYm9vbGVhbiwgdl9maXNrIGJv
b2xlYW4sIHZfaWJhbiBjaGFyYWN0ZXIgdmFyeWluZywgdl9rX29zb2JhIGNoYXJhY3RlciB2YXJ5
aW5nLCB2X2VtYWlsIGNoYXJhY3RlciB2YXJ5aW5nLCB2X2JyX3RlbCBjaGFyYWN0ZXIgdmFyeWlu
Zywgdl9yYWRuYV9nb2QgbnVtZXJpYywgdl9zY2hlbWEgY2hhcmFjdGVyIHZhcnlpbmcpIE9XTkVS
IFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5IDIyMCAoY2xhc3MgMTI1NSBPSUQgNjcy
MDUpCistLSBOYW1lOiBwcm9jMShiaWdpbnQpOyBUeXBlOiBQUk9DRURVUkU7IFNjaGVtYTogc291
cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBQUk9DRURVUkUgc291cmNlLnByb2Mx
KGFyZzEgYmlnaW50KQorICAgIExBTkdVQUdFIHNxbAorICAgIEFTICQkc2VsZWN0IDE7JCQ7CisK
KworQUxURVIgUFJPQ0VEVVJFIHNvdXJjZS5wcm9jMShhcmcxIGJpZ2ludCkgT1dORVIgVE8gcG9z
dGdyZXM7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0cy9w
Zy8xMl9wbHVzL3RhcmdldC5zcWwgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0
cy9wZy8xMl9wbHVzL3RhcmdldC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwLi5kNTc4NDE3NDQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zY2hl
bWFfZGlmZi90ZXN0cy9wZy8xMl9wbHVzL3RhcmdldC5zcWwKQEAgLTAsMCArMSw0MTcgQEAKKy0t
CistLSBQb3N0Z3JlU1FMIGRhdGFiYXNlIGR1bXAKKy0tCisKKy0tIER1bXBlZCBmcm9tIGRhdGFi
YXNlIHZlcnNpb24gMTAuNworLS0gRHVtcGVkIGJ5IHBnX2R1bXAgdmVyc2lvbiAxMmJldGEyCisK
Ky0tIFN0YXJ0ZWQgb24gMjAxOS0xMS0wMSAxMjo1NToyMiBJU1QKKworU0VUIHN0YXRlbWVudF90
aW1lb3V0ID0gMDsKK1NFVCBsb2NrX3RpbWVvdXQgPSAwOworU0VUIGlkbGVfaW5fdHJhbnNhY3Rp
b25fc2Vzc2lvbl90aW1lb3V0ID0gMDsKK1NFVCBjbGllbnRfZW5jb2RpbmcgPSAnVVRGOCc7CitT
RVQgc3RhbmRhcmRfY29uZm9ybWluZ19zdHJpbmdzID0gb247CitTRUxFQ1QgcGdfY2F0YWxvZy5z
ZXRfY29uZmlnKCdzZWFyY2hfcGF0aCcsICcnLCBmYWxzZSk7CitTRVQgY2hlY2tfZnVuY3Rpb25f
Ym9kaWVzID0gZmFsc2U7CitTRVQgeG1sb3B0aW9uID0gY29udGVudDsKK1NFVCBjbGllbnRfbWlu
X21lc3NhZ2VzID0gd2FybmluZzsKK1NFVCByb3dfc2VjdXJpdHkgPSBvZmY7CisKKy0tCistLSBU
T0MgZW50cnkgMTggKGNsYXNzIDI2MTUgT0lEIDEzOTc3MSkKKy0tIE5hbWU6IHRhcmdldDsgVHlw
ZTogU0NIRU1BOyBTY2hlbWE6IC07IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFNDSEVN
QSB0YXJnZXQ7CisKK0FMVEVSIFNDSEVNQSB0YXJnZXQgT1dORVIgVE8gcG9zdGdyZXM7CisKK1NF
VCBkZWZhdWx0X3RhYmxlc3BhY2UgPSAnJzsKKworQ1JFQVRFIEVYVEVOU0lPTiBidHJlZV9naXN0
CisgICAgU0NIRU1BIHRhcmdldDsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI1MCAoY2xhc3MgMTI1
OSBPSUQgMTM5OTM4KQorLS0gTmFtZTogTVZpZXc7IFR5cGU6IE1BVEVSSUFMSVpFRCBWSUVXOyBT
Y2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgTUFURVJJQUxJWkVE
IFZJRVcgdGFyZ2V0LiJNVmlldyIgQVMKKyBTRUxFQ1QgJ3Rla3N0Jzo6dGV4dCBBUyB0ZXh0Cisg
IFdJVEggTk8gREFUQTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQuIk1WaWV3IiBPV05FUiBUTyBw
b3N0Z3JlczsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI3NyAoY2xhc3MgMTI1OSBPSUQgMTQ5MjM0
KQorLS0gTmFtZTogdGFibGVfZm9yX3BhcnRpdGlvbl8xOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0
YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9m
b3JfcGFydGl0aW9uXzEgKAorICAgIGNvbDEgYmlnaW50CispCitQQVJUSVRJT04gQlkgUkFOR0Ug
KGNvbDEpOworCisKK0FMVEVSIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfcGFydGl0aW9uXzEgT1dO
RVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNzggKGNsYXNzIDEyNTkgT0lE
IDE0OTIzNykKKy0tIE5hbWU6IHBhcnQzOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93
bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC5wYXJ0MyAoCisgICAgY29s
MSBiaWdpbnQKKyk7CitBTFRFUiBUQUJMRSBPTkxZIHRhcmdldC50YWJsZV9mb3JfcGFydGl0aW9u
XzEgQVRUQUNIIFBBUlRJVElPTiB0YXJnZXQucGFydDMgRk9SIFZBTFVFUyBGUk9NICgnMTMnKSBU
TyAoJzU2Jyk7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LnBhcnQzIE9XTkVSIFRPIHBvc3RncmVz
OworCistLQorLS0gVE9DIGVudHJ5IDEyMjU5IChjbGFzcyAxMjU5IE9JRCAxNDg5NzEpCistLSBO
YW1lOiB0YWJsZV9mb3JfY29sdW1uOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVy
OiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfY29sdW1uICgK
KyAgICBjb2wxIGJpZ2ludCwKKyAgICBjb2wyIGJpZ2ludCwKKyAgICBjb2w0IHRleHQKKyk7CisK
KworQUxURVIgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9jb2x1bW4gT1dORVIgVE8gcG9zdGdyZXM7
CisKKy0tCistLSBUT0MgZW50cnkgMTIyNjggKGNsYXNzIDEyNTkgT0lEIDE0OTA4OSkKKy0tIE5h
bWU6IHRhYmxlX2Zvcl9jb25zdHJhaW50czsgVHlwZTogVEFCTEU7IFNjaGVtYTogdGFyZ2V0OyBP
d25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2NvbnN0
cmFpbnRzICgKKyAgICBjb2wxIGludGVnZXIgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0LAorICAg
IENPTlNUUkFJTlQgY2hlY2tfY29uIENIRUNLICgoY29sMSA+IDMwKSkKKyk7CisKKworQUxURVIg
VEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9jb25zdHJhaW50cyBPV05FUiBUTyBwb3N0Z3JlczsKKwor
LS0KKy0tIFRPQyBlbnRyeSA2MTA2NiAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczog
MTIyNjgKKy0tIE5hbWU6IFRBQkxFIHRhYmxlX2Zvcl9jb25zdHJhaW50czsgVHlwZTogQ09NTUVO
VDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ09NTUVOVCBPTiBUQUJM
RSB0YXJnZXQudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjb21tZW50cyc7CisKKworLS0KKy0t
IFRPQyBlbnRyeSA2MTA2NyAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczogMTIyNjgK
Ky0tIE5hbWU6IENPTlNUUkFJTlQgY2hlY2tfY29uIE9OIHRhYmxlX2Zvcl9jb25zdHJhaW50czsg
VHlwZTogQ09NTUVOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ09N
TUVOVCBPTiBDT05TVFJBSU5UIGNoZWNrX2NvbiBPTiB0YXJnZXQudGFibGVfZm9yX2NvbnN0cmFp
bnRzIElTICdjb21lbnQnOworCisKKy0tCistLSBUT0MgZW50cnkgMTIyNTcgKGNsYXNzIDEyNTkg
T0lEIDE0ODk2MCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9kZWw7IFR5cGU6IFRBQkxFOyBTY2hlbWE6
IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgVEFCTEUgdGFyZ2V0LnRhYmxl
X2Zvcl9kZWwgKAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2RlbCBPV05F
UiBUTyBwb3N0Z3JlczsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI3MSAoY2xhc3MgMTI1OSBPSUQg
MTQ5MTcyKQorLS0gTmFtZTogdGFibGVfZm9yX2ZvcmVpZ25fa2V5OyBUeXBlOiBUQUJMRTsgU2No
ZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50
YWJsZV9mb3JfZm9yZWlnbl9rZXkgKAorICAgIGNvbDEgaW50ZWdlciBOT1QgTlVMTCwKKyAgICBj
b2wyICJjaGFyIiwKKyAgICBjb2wzIGJpZ2ludAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQu
dGFibGVfZm9yX2ZvcmVpZ25fa2V5IE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVu
dHJ5IDEyMjYzIChjbGFzcyAxMjU5IE9JRCAxNDkwMTMpCistLSBOYW1lOiB0YWJsZV9mb3JfaWRl
bnRpY2FsOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0K
KworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfaWRlbnRpY2FsICgKKyAgICBjb2wxIGlu
dGVnZXIgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHRhcmdl
dC50YWJsZV9mb3JfaWRlbnRpY2FsIE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVu
dHJ5IDEyMjYxIChjbGFzcyAxMjU5IE9JRCAxNDg5ODYpCistLSBOYW1lOiB0YWJsZV9mb3JfaW5k
ZXg7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitD
UkVBVEUgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9pbmRleCAoCisgICAgY29sMSBpbnRlZ2VyIE5P
VCBOVUxMLAorICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVf
Zm9yX2luZGV4IE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5IDEyMjcwIChj
bGFzcyAxMjU5IE9JRCAxNDkxNDQpCistLSBOYW1lOiB0YWJsZV9mb3JfcHJpbWFyeV9rZXk7IFR5
cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUg
VEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9wcmltYXJ5X2tleSAoCisgICAgY29sMSBpbnRlZ2VyIE5P
VCBOVUxMLAorICAgIGNvbDIgdGV4dCBOT1QgTlVMTAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJn
ZXQudGFibGVfZm9yX3ByaW1hcnlfa2V5IE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9D
IGVudHJ5IDEyMjY1IChjbGFzcyAxMjU5IE9JRCAxNDkwMzQpCistLSBOYW1lOiB0YWJsZV9mb3Jf
cnVsZTsgVHlwZTogVEFCTEU7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisK
K0NSRUFURSBUQUJMRSB0YXJnZXQudGFibGVfZm9yX3J1bGUgKAorICAgIGNvbDEgYmlnaW50IE5P
VCBOVUxMLAorICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVf
Zm9yX3J1bGUgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNjcgKGNs
YXNzIDEyNTkgT0lEIDE0OTA2NikKKy0tIE5hbWU6IHRhYmxlX2Zvcl90cmlnZ2VyOyBUeXBlOiBU
QUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxF
IHRhcmdldC50YWJsZV9mb3JfdHJpZ2dlciAoCisgICAgY29sMSBiaWdpbnQgTk9UIE5VTEwsCisg
ICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfdHJpZ2dl
ciBPV05FUiBUTyBwb3N0Z3JlczsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTA2IChjbGFzcyAy
NjA2IE9JRCAxNDkwOTcpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWludHMgRXhjbHVzaW9u
OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQor
CitBTFRFUiBUQUJMRSBPTkxZIHRhcmdldC50YWJsZV9mb3JfY29uc3RyYWludHMKKyAgICBBREQg
Q09OU1RSQUlOVCAiRXhjbHVzaW9uIiBFWENMVURFIFVTSU5HIGdpc3QgKGNvbDIgV0lUSCA8Pikg
V0lUSCAoZmlsbGZhY3Rvcj0nMTUnKSBXSEVSRSAoKGNvbDEgPiAxKSkgREVGRVJSQUJMRSBJTklU
SUFMTFkgREVGRVJSRUQ7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA2OCAoY2xhc3MgMCBPSUQg
MCkKKy0tIERlcGVuZGVuY2llczogNTY5MDYKKy0tIE5hbWU6IENPTlNUUkFJTlQgIkV4Y2x1c2lv
biIgT04gdGFibGVfZm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHRhcmdl
dDsgT3duZXI6IHBvc3RncmVzCistLQorCitDT01NRU5UIE9OIENPTlNUUkFJTlQgIkV4Y2x1c2lv
biIgT04gdGFyZ2V0LnRhYmxlX2Zvcl9jb25zdHJhaW50cyBJUyAnY29tbWVudHMnOworCisKKy0t
CistLSBUT0MgZW50cnkgNTY5MTAgKGNsYXNzIDI2MDYgT0lEIDE0OTE3NikKKy0tIE5hbWU6IHRh
YmxlX2Zvcl9mb3JlaWduX2tleSB0YWJsZV9mb3JfZm9yZWlnbl9rZXlfcGtleTsgVHlwZTogQ09O
U1RSQUlOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFC
TEUgT05MWSB0YXJnZXQudGFibGVfZm9yX2ZvcmVpZ25fa2V5CisgICAgQUREIENPTlNUUkFJTlQg
dGFibGVfZm9yX2ZvcmVpZ25fa2V5X3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCist
LSBUT0MgZW50cnkgNTY4OTcgKGNsYXNzIDI2MDYgT0lEIDE0ODk5MykKKy0tIE5hbWU6IHRhYmxl
X2Zvcl9pbmRleCB0YWJsZV9mb3JfaW5kZXhfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1h
OiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05MWSB0YXJnZXQu
dGFibGVfZm9yX2luZGV4CisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX2luZGV4X3BrZXkg
UFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDggKGNsYXNzIDI2
MDYgT0lEIDE0OTE1MSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9wcmltYXJ5X2tleSB0YWJsZV9mb3Jf
cHJpbWFyeV9rZXlfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVy
OiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05MWSB0YXJnZXQudGFibGVfZm9yX3ByaW1h
cnlfa2V5CisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX3ByaW1hcnlfa2V5X3BrZXkgUFJJ
TUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDIgKGNsYXNzIDI2MDYg
T0lEIDE0OTA0MSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9ydWxlIHRhYmxlX2Zvcl9ydWxlX3BrZXk7
IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisK
K0FMVEVSIFRBQkxFIE9OTFkgdGFyZ2V0LnRhYmxlX2Zvcl9ydWxlCisgICAgQUREIENPTlNUUkFJ
TlQgdGFibGVfZm9yX3J1bGVfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRP
QyBlbnRyeSA1NjkwMCAoY2xhc3MgMjYwNiBPSUQgMTQ5MDIwKQorLS0gTmFtZTogdGFibGVfZm9y
X2lkZW50aWNhbCB0YWJsZV9mb3JfdGFibGVfZm9yX2lkZW50aWNhbF9wa2V5OyBUeXBlOiBDT05T
VFJBSU5UOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJM
RSBPTkxZIHRhcmdldC50YWJsZV9mb3JfaWRlbnRpY2FsCisgICAgQUREIENPTlNUUkFJTlQgdGFi
bGVfZm9yX3RhYmxlX2Zvcl9pZGVudGljYWxfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKwor
LS0KKy0tIFRPQyBlbnRyeSA1NjkwNCAoY2xhc3MgMjYwNiBPSUQgMTQ5MDczKQorLS0gTmFtZTog
dGFibGVfZm9yX3RyaWdnZXIgdGFibGVfZm9yX3RyaWdnZXJfcGtleTsgVHlwZTogQ09OU1RSQUlO
VDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05M
WSB0YXJnZXQudGFibGVfZm9yX3RyaWdnZXIKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJsZV9mb3Jf
dHJpZ2dlcl9wa2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2
ODkzIChjbGFzcyAxMjU5IE9JRCAxNDg5OTQpCistLSBOYW1lOiBpbmRleDE7IFR5cGU6IElOREVY
OyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgSU5ERVggaW5k
ZXgxIE9OIHRhcmdldC50YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRyZWUgKGNvbDIgdGV4dF9wYXR0
ZXJuX29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njg5NCAoY2xhc3MgMTI1OSBPSUQgMTQ4
OTk1KQorLS0gTmFtZTogaW5kZXgyOyBUeXBlOiBJTkRFWDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVy
OiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIElOREVYIGluZGV4MiBPTiB0YXJnZXQudGFibGVfZm9y
X2luZGV4IFVTSU5HIGJ0cmVlIChjb2wyIHRleHRfcGF0dGVybl9vcHMpOworCisKKy0tCistLSBU
T0MgZW50cnkgNTY4OTggKGNsYXNzIDEyNTkgT0lEIDE0OTAyMSkKKy0tIE5hbWU6IGluZGV4X2lk
ZW50aWNhbDsgVHlwZTogSU5ERVg7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0t
CisKK0NSRUFURSBJTkRFWCBpbmRleF9pZGVudGljYWwgT04gdGFyZ2V0LnRhYmxlX2Zvcl9pZGVu
dGljYWwgVVNJTkcgYnRyZWUgKGNvbDIgdGV4dF9wYXR0ZXJuX29wcyk7CisKKworLS0KKy0tIFRP
QyBlbnRyeSA1Njg5NSAoY2xhc3MgMTI1OSBPSUQgMTQ5MjEyKQorLS0gTmFtZTogaW5kZXhfc2Ft
ZTsgVHlwZTogSU5ERVg7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NS
RUFURSBJTkRFWCBpbmRleF9zYW1lIE9OIHRhcmdldC50YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRy
ZWUgKGNvbDIgdGV4dF9wYXR0ZXJuX29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njg5MiAo
Y2xhc3MgMTI1OSBPSUQgMTM5OTQ1KQorLS0gTmFtZTogbXZpZXdfaW5kZXg7IFR5cGU6IElOREVY
OyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgSU5ERVggbXZp
ZXdfaW5kZXggT04gdGFyZ2V0LiJNVmlldyIgVVNJTkcgYnRyZWUgKHRleHQgdGV4dF9wYXR0ZXJu
X29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA0NSAoY2xhc3MgMjYxOCBPSUQgMTQ5MDQy
KQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUgcnVsZTE7IFR5cGU6IFJVTEU7IFNjaGVtYTogdGFy
Z2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBSVUxFIHJ1bGUxIEFTCisgICAgT04g
VVBEQVRFIFRPIHRhcmdldC50YWJsZV9mb3JfcnVsZSBETyBJTlNURUFEIE5PVEhJTkc7CisKKwor
LS0KKy0tIFRPQyBlbnRyeSA2MTA2OSAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczog
NjEwNDUKKy0tIE5hbWU6IFJVTEUgcnVsZTEgT04gdGFibGVfZm9yX3J1bGU7IFR5cGU6IENPTU1F
TlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQgT04gUlVM
RSBydWxlMSBPTiB0YXJnZXQudGFibGVfZm9yX3J1bGUgSVMgJ2NvbW1lbnRzJzsKKworCistLQor
LS0gVE9DIGVudHJ5IDYxMDQ2IChjbGFzcyAyNjE4IE9JRCAxNDkwNDMpCistLSBOYW1lOiB0YWJs
ZV9mb3JfcnVsZSBydWxlMjsgVHlwZTogUlVMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0
Z3JlcworLS0KKworQ1JFQVRFIFJVTEUgcnVsZTIgQVMKKyAgICBPTiBVUERBVEUgVE8gdGFyZ2V0
LnRhYmxlX2Zvcl9ydWxlIERPIE5PVEhJTkc7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA0NyAo
Y2xhc3MgMjYxOCBPSUQgMTQ5MDQ0KQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUgcnVsZTM7IFR5
cGU6IFJVTEU7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBS
VUxFIHJ1bGUzIEFTCisgICAgT04gSU5TRVJUIFRPIHRhcmdldC50YWJsZV9mb3JfcnVsZSBETyBO
T1RISU5HOworCisKKy0tCistLSBUT0MgZW50cnkgNjEwNTAgKGNsYXNzIDAgT0lEIDEzOTkzOCkK
Ky0tIERlcGVuZGVuY2llczogMTIyNTAgNjEwNjIKKy0tIE5hbWU6IE1WaWV3OyBUeXBlOiBNQVRF
UklBTElaRUQgVklFVyBEQVRBOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQor
CitSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIHRhcmdldC4iTVZpZXciOworCistLQorLS0gVE9D
IGVudHJ5IDEyMjg0IChjbGFzcyAxMjU5IE9JRCAzNDc4MjMpCistLSBOYW1lOiB0ZXN0IHZpZXc7
IFR5cGU6IFZJRVc7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFU
RSBWSUVXIHRhcmdldC4idGVzdCB2aWV3IiBBUworIFNFTEVDVCBwZ19jbGFzcy5yZWxuYW1lLAor
ICAgIHBnX2NsYXNzLnJlbG5hbWVzcGFjZSwKKyAgICBwZ19jbGFzcy5yZWx0eXBlLAorICAgIHBn
X2NsYXNzLnJlbG9mdHlwZSwKKyAgICBwZ19jbGFzcy5yZWxvd25lciwKKyAgICBwZ19jbGFzcy5y
ZWxhbSwKKyAgICBwZ19jbGFzcy5yZWxmaWxlbm9kZSwKKyAgICBwZ19jbGFzcy5yZWx0YWJsZXNw
YWNlLAorICAgIHBnX2NsYXNzLnJlbHBhZ2VzCisgICBGUk9NIHBnX2NsYXNzCisgTElNSVQgMTA7
CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LiJ0ZXN0IHZpZXciIE9XTkVSIFRPIHBvc3RncmVzOwor
CistLQorLS0gVE9DIGVudHJ5IDEyMjg1IChjbGFzcyAxMjU5IE9JRCAzNDc4MjgpCistLSBOYW1l
OiB0ZXN0IHZpZXcgZjsgVHlwZTogVklFVzsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3Jl
cworLS0KKworQ1JFQVRFIFZJRVcgdGFyZ2V0LiJ0ZXN0IHZpZXcgZiIgV0lUSCAoc2VjdXJpdHlf
YmFycmllcj0ndHJ1ZScpIEFTCisgU0VMRUNUIDI7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LiJ0
ZXN0IHZpZXcgZiIgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgNjExMDUg
KGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDEyMjg1CistLSBOYW1lOiBWSUVXICJ0
ZXN0IHZpZXcgZiI7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdy
ZXMKKy0tCisKK0NPTU1FTlQgT04gVklFVyB0YXJnZXQuInRlc3QgdmlldyBmIiBJUyAnY21uJzsK
KworCistLQorLS0gVE9DIGVudHJ5IDQzNyAoY2xhc3MgMTI1NSBPSUQgMTEyOTA3KQorLS0gTmFt
ZTogZG9kYWpfa2xpamVudGEoY2hhcmFjdGVyIHZhcnlpbmcsIGNoYXJhY3RlciB2YXJ5aW5nLCBj
aGFyYWN0ZXIgdmFyeWluZywgY2hhcmFjdGVyIHZhcnlpbmcsIGludGVnZXIsIGNoYXJhY3RlciB2
YXJ5aW5nLCBjaGFyYWN0ZXIgdmFyeWluZywgY2hhcmFjdGVyIHZhcnlpbmcsIGJvb2xlYW4sIGJv
b2xlYW4sIGNoYXJhY3RlciB2YXJ5aW5nLCBjaGFyYWN0ZXIgdmFyeWluZywgY2hhcmFjdGVyIHZh
cnlpbmcsIGNoYXJhY3RlciB2YXJ5aW5nLCBudW1lcmljLCBjaGFyYWN0ZXIgdmFyeWluZyk7IFR5
cGU6IFBST0NFRFVSRTsgU2NoZW1hOiB0YXJnZXQgc2NoZW1hOyBPd25lcjogcG9zdGdyZXMKKy0t
CisKK0NSRUFURSBQUk9DRURVUkUgdGFyZ2V0LmRvZGFqX2tsaWplbnRhKHZfbmF6aXYgY2hhcmFj
dGVyIHZhcnlpbmcsIHZfb2liIGNoYXJhY3RlciB2YXJ5aW5nLCB2X3Bkdl9pZCBjaGFyYWN0ZXIg
dmFyeWluZywgdl9hZHJlc2EgY2hhcmFjdGVyIHZhcnlpbmcsIHZfbWplc3RvIGludGVnZXIsIHZf
ZHJ6YXZhIGNoYXJhY3RlciB2YXJ5aW5nLCB2X3RpcF9wX3N1YiBjaGFyYWN0ZXIgdmFyeWluZywg
dl92bGFzbmlrIGNoYXJhY3RlciB2YXJ5aW5nLCB2X3BkdiBib29sZWFuLCB2X2Zpc2sgYm9vbGVh
biwgdl9pYmFuIGNoYXJhY3RlciB2YXJ5aW5nLCB2X2tfb3NvYmEgY2hhcmFjdGVyIHZhcnlpbmcs
IHZfZW1haWwgY2hhcmFjdGVyIHZhcnlpbmcsIHZfYnJfdGVsIGNoYXJhY3RlciB2YXJ5aW5nLCB2
X3JhZG5hX2dvZCBudW1lcmljLCB2X3NjaGVtYSBjaGFyYWN0ZXIgdmFyeWluZykKKyAgICBMQU5H
VUFHRSBzcWwKKyAgICBBUyAkJHNlbGVjdCA0OyQkOworCisKK0FMVEVSIFBST0NFRFVSRSB0YXJn
ZXQuZG9kYWpfa2xpamVudGEodl9uYXppdiBjaGFyYWN0ZXIgdmFyeWluZywgdl9vaWIgY2hhcmFj
dGVyIHZhcnlpbmcsIHZfcGR2X2lkIGNoYXJhY3RlciB2YXJ5aW5nLCB2X2FkcmVzYSBjaGFyYWN0
ZXIgdmFyeWluZywgdl9tamVzdG8gaW50ZWdlciwgdl9kcnphdmEgY2hhcmFjdGVyIHZhcnlpbmcs
IHZfdGlwX3Bfc3ViIGNoYXJhY3RlciB2YXJ5aW5nLCB2X3ZsYXNuaWsgY2hhcmFjdGVyIHZhcnlp
bmcsIHZfcGR2IGJvb2xlYW4sIHZfZmlzayBib29sZWFuLCB2X2liYW4gY2hhcmFjdGVyIHZhcnlp
bmcsIHZfa19vc29iYSBjaGFyYWN0ZXIgdmFyeWluZywgdl9lbWFpbCBjaGFyYWN0ZXIgdmFyeWlu
Zywgdl9icl90ZWwgY2hhcmFjdGVyIHZhcnlpbmcsIHZfcmFkbmFfZ29kIG51bWVyaWMsIHZfc2No
ZW1hIGNoYXJhY3RlciB2YXJ5aW5nKSBPV05FUiBUTyBwb3N0Z3JlczsKZGlmZiAtLWdpdCBhL3dl
Yi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3Rlc3RzL3BnLzkuMl9wbHVzL3NvdXJjZS5zcWwg
Yi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0cy9wZy85LjJfcGx1cy9zb3VyY2Uu
c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYWY5MDU0ZWViCi0tLSAv
ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvdGVzdHMvcGcvOS4y
X3BsdXMvc291cmNlLnNxbApAQCAtMCwwICsxLDMxMSBAQAorLS0KKy0tIFBvc3RncmVTUUwgZGF0
YWJhc2UgZHVtcAorLS0KKworLS0gRHVtcGVkIGZyb20gZGF0YWJhc2UgdmVyc2lvbiAxMC43Cist
LSBEdW1wZWQgYnkgcGdfZHVtcCB2ZXJzaW9uIDEyYmV0YTIKKworLS0gU3RhcnRlZCBvbiAyMDE5
LTExLTAxIDEyOjU0OjE1IElTVAorCitTRVQgc3RhdGVtZW50X3RpbWVvdXQgPSAwOworU0VUIGxv
Y2tfdGltZW91dCA9IDA7CitTRVQgY2xpZW50X2VuY29kaW5nID0gJ1VURjgnOworU0VUIHN0YW5k
YXJkX2NvbmZvcm1pbmdfc3RyaW5ncyA9IG9uOworU0VMRUNUIHBnX2NhdGFsb2cuc2V0X2NvbmZp
Zygnc2VhcmNoX3BhdGgnLCAnJywgZmFsc2UpOworU0VUIGNoZWNrX2Z1bmN0aW9uX2JvZGllcyA9
IGZhbHNlOworU0VUIHhtbG9wdGlvbiA9IGNvbnRlbnQ7CitTRVQgY2xpZW50X21pbl9tZXNzYWdl
cyA9IHdhcm5pbmc7CisKKy0tCistLSBUT0MgZW50cnkgMTcgKGNsYXNzIDI2MTUgT0lEIDEzOTc3
MCkKKy0tIE5hbWU6IHNvdXJjZTsgVHlwZTogU0NIRU1BOyBTY2hlbWE6IC07IE93bmVyOiBwb3N0
Z3JlcworLS0KKworQ1JFQVRFIFNDSEVNQSBzb3VyY2U7CisKKworQUxURVIgU0NIRU1BIHNvdXJj
ZSBPV05FUiBUTyBwb3N0Z3JlczsKKworU0VUIGRlZmF1bHRfdGFibGVzcGFjZSA9ICcnOworCisK
K0NSRUFURSBFWFRFTlNJT04gYnRyZWVfZ2lzdAorICAgIFNDSEVNQSBzb3VyY2U7CisKKworLS0K
Ky0tIFRPQyBlbnRyeSAxMjI1OCAoY2xhc3MgMTI1OSBPSUQgMTQ4OTYzKQorLS0gTmFtZTogdGFi
bGVfZm9yX2NvbHVtbjsgVHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdy
ZXMKKy0tCisKK0NSRUFURSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX2NvbHVtbiAoCisgICAgY29s
MSBiaWdpbnQgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0LAorICAgIGNvbDMgdGV4dAorKTsKKwor
CitBTFRFUiBUQUJMRSBzb3VyY2UudGFibGVfZm9yX2NvbHVtbiBPV05FUiBUTyBwb3N0Z3JlczsK
KworLS0KKy0tIFRPQyBlbnRyeSAxMjI1NiAoY2xhc3MgMTI1OSBPSUQgMTQ4ODk1KQorLS0gTmFt
ZTogdGFibGVfZm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93
bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfY29uc3Ry
YWludHMgKAorICAgIGNvbDEgaW50ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQKKyk7CisK
KworQUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9jb25zdHJhaW50cyBPV05FUiBUTyBwb3N0
Z3JlczsKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA2NiAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVu
ZGVuY2llczogMTIyNTYKKy0tIE5hbWU6IFRBQkxFIHRhYmxlX2Zvcl9jb25zdHJhaW50czsgVHlw
ZTogQ09NTUVOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ09NTUVO
VCBPTiBUQUJMRSBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjb21tZW50cyc7CisK
KworLS0KKy0tIFRPQyBlbnRyeSAxMjI2MiAoY2xhc3MgMTI1OSBPSUQgMTQ5MDA0KQorLS0gTmFt
ZTogdGFibGVfZm9yX2lkZW50aWNhbDsgVHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25l
cjogcG9zdGdyZXM7CistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9pZGVudGlj
YWwgKAorICAgIGNvbDEgaW50ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQKKyk7CisKKwor
QUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9pZGVudGljYWwgT1dORVIgVE8gcG9zdGdyZXM7
OworCistLQorLS0gVE9DIGVudHJ5IDEyMjYwIChjbGFzcyAxMjU5IE9JRCAxNDg5NzcpCistLSBO
YW1lOiB0YWJsZV9mb3JfaW5kZXg7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6
IHBvc3RncmVzCistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9pbmRleCAoCisg
ICAgY29sMSBpbnRlZ2VyIE5PVCBOVUxMLAorICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRFUiBU
QUJMRSBzb3VyY2UudGFibGVfZm9yX2luZGV4IE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0g
VE9DIGVudHJ5IDEyMjY5IChjbGFzcyAxMjU5IE9JRCAxNDkxMjgpCistLSBOYW1lOiB0YWJsZV9m
b3JfcHJpbWFyeV9rZXk7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3Rn
cmVzCistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9wcmltYXJ5X2tleSAoCisg
ICAgY29sMSBpbnRlZ2VyIE5PVCBOVUxMLAorICAgIGNvbDIgdGV4dCBOT1QgTlVMTAorKTsKKwor
CitBTFRFUiBUQUJMRSBzb3VyY2UudGFibGVfZm9yX3ByaW1hcnlfa2V5IE9XTkVSIFRPIHBvc3Rn
cmVzOworCistLQorLS0gVE9DIGVudHJ5IDEyMjY0IChjbGFzcyAxMjU5IE9JRCAxNDkwMjQpCist
LSBOYW1lOiB0YWJsZV9mb3JfcnVsZTsgVHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25l
cjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX3J1bGUgKAor
ICAgIGNvbDEgYmlnaW50IE5PVCBOVUxMLAorICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRFUiBU
QUJMRSBzb3VyY2UudGFibGVfZm9yX3J1bGUgT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBU
T0MgZW50cnkgMTIyNjYgKGNsYXNzIDEyNTkgT0lEIDE0OTA0OCkKKy0tIE5hbWU6IHRhYmxlX2Zv
cl90cmlnZ2VyOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3Jlcwor
LS0KKworQ1JFQVRFIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfdHJpZ2dlciAoCisgICAgY29sMSBi
aWdpbnQgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHNvdXJj
ZS50YWJsZV9mb3JfdHJpZ2dlciBPV05FUiBUTyBwb3N0Z3JlczsKKworLS0KKy0tIFRPQyBlbnRy
eSA1Njg5MyAoY2xhc3MgMjYwNiBPSUQgMTQ4OTA0KQorLS0gTmFtZTogdGFibGVfZm9yX2NvbnN0
cmFpbnRzIEV4Y2x1c2lvbjsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVy
OiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05MWSBzb3VyY2UudGFibGVfZm9yX2NvbnN0
cmFpbnRzCisgICAgQUREIENPTlNUUkFJTlQgIkV4Y2x1c2lvbiIgRVhDTFVERSBVU0lORyBnaXN0
IChjb2wyIFdJVEggPD4pIFdJVEggKGZpbGxmYWN0b3I9JzEyJykgV0hFUkUgKChjb2wxID4gMSkp
IERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisKKy0tCistLSBUT0MgZW50cnkgNjEw
NjcgKGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDU2ODkzCistLSBOYW1lOiBDT05T
VFJBSU5UICJFeGNsdXNpb24iIE9OIHRhYmxlX2Zvcl9jb25zdHJhaW50czsgVHlwZTogQ09NTUVO
VDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ09NTUVOVCBPTiBDT05T
VFJBSU5UICJFeGNsdXNpb24iIE9OIHNvdXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMgSVMgJ2Nv
bW1lbnRzJzsKKworCistLQorLS0gVE9DIGVudHJ5IDU2ODkxIChjbGFzcyAyNjA2IE9JRCAxNDg5
MTEpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWludHMgY2hlY2tfY29uOyBUeXBlOiBDSEVD
SyBDT05TVFJBSU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRF
UiBUQUJMRSBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzCisgICAgQUREIENPTlNUUkFJTlQg
Y2hlY2tfY29uIENIRUNLICgoY29sMSA+IDEwKSkgTk9UIFZBTElEOworCisKKy0tCistLSBUT0Mg
ZW50cnkgNjEwNjggKGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDU2ODkxCistLSBO
YW1lOiBDT05TVFJBSU5UIGNoZWNrX2NvbiBPTiB0YWJsZV9mb3JfY29uc3RyYWludHM7IFR5cGU6
IENPTU1FTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQg
T04gQ09OU1RSQUlOVCBjaGVja19jb24gT04gc291cmNlLnRhYmxlX2Zvcl9jb25zdHJhaW50cyBJ
UyAnY29tZW50JzsKKworCistLQorLS0gVE9DIGVudHJ5IDU2ODk5IChjbGFzcyAyNjA2IE9JRCAx
NDg5NzApCistLSBOYW1lOiB0YWJsZV9mb3JfY29sdW1uIHRhYmxlX2Zvcl9jb2x1bW5fcGtleTsg
VHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKwor
QUxURVIgVEFCTEUgT05MWSBzb3VyY2UudGFibGVfZm9yX2NvbHVtbgorICAgIEFERCBDT05TVFJB
SU5UIHRhYmxlX2Zvcl9jb2x1bW5fcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0t
IFRPQyBlbnRyeSA1Njg5NSAoY2xhc3MgMjYwNiBPSUQgMTQ4OTAyKQorLS0gTmFtZTogdGFibGVf
Zm9yX2NvbnN0cmFpbnRzIHRhYmxlX2Zvcl9jb25zdHJhaW50c19wa2V5OyBUeXBlOiBDT05TVFJB
SU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJMRSBP
TkxZIHNvdXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJs
ZV9mb3JfY29uc3RyYWludHNfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRP
QyBlbnRyeSA1NjkwNCAoY2xhc3MgMjYwNiBPSUQgMTQ4OTg0KQorLS0gTmFtZTogdGFibGVfZm9y
X2luZGV4IHRhYmxlX2Zvcl9pbmRleF9wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHNv
dXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJs
ZV9mb3JfaW5kZXgKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJsZV9mb3JfaW5kZXhfcGtleSBQUklN
QVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1NjkxMyAoY2xhc3MgMjYwNiBP
SUQgMTQ5MTM1KQorLS0gTmFtZTogdGFibGVfZm9yX3ByaW1hcnlfa2V5IHRhYmxlX2Zvcl9wcmlt
YXJ5X2tleV9wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBv
c3RncmVzCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfcHJpbWFyeV9r
ZXkKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJsZV9mb3JfcHJpbWFyeV9rZXlfcGtleSBQUklNQVJZ
IEtFWSAoY29sMSwgY29sMik7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1NjkwOSAoY2xhc3MgMjYw
NiBPSUQgMTQ5MDMxKQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUgdGFibGVfZm9yX3J1bGVfcGtl
eTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0K
KworQUxURVIgVEFCTEUgT05MWSBzb3VyY2UudGFibGVfZm9yX3J1bGUKKyAgICBBREQgQ09OU1RS
QUlOVCB0YWJsZV9mb3JfcnVsZV9wa2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0g
VE9DIGVudHJ5IDU2OTA3IChjbGFzcyAyNjA2IE9JRCAxNDkwMTEpCistLSBOYW1lOiB0YWJsZV9m
b3JfaWRlbnRpY2FsIHRhYmxlX2Zvcl90YWJsZV9mb3JfaWRlbnRpY2FsX3BrZXk7IFR5cGU6IENP
TlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXM7CistLQorCitBTFRFUiBU
QUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfaWRlbnRpY2FsCisgICAgQUREIENPTlNUUkFJTlQg
dGFibGVfZm9yX3RhYmxlX2Zvcl9pZGVudGljYWxfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisK
KworLS0KKy0tIFRPQyBlbnRyeSA1NjkxMSAoY2xhc3MgMjYwNiBPSUQgMTQ5MDU1KQorLS0gTmFt
ZTogdGFibGVfZm9yX3RyaWdnZXIgdGFibGVfZm9yX3RyaWdnZXJfcGtleTsgVHlwZTogQ09OU1RS
QUlOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUg
T05MWSBzb3VyY2UudGFibGVfZm9yX3RyaWdnZXIKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJsZV9m
b3JfdHJpZ2dlcl9wa2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5
IDU2ODk3IChjbGFzcyAyNjA2IE9JRCAxNDg5MTMpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3Ry
YWludHMgdW5pcXVlOyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBv
c3RncmVzCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfY29uc3RyYWlu
dHMKKyAgICBBREQgQ09OU1RSQUlOVCAidW5pcXVlIiBVTklRVUUgKGNvbDEpOworCisKKy0tCist
LSBUT0MgZW50cnkgNjEwNjkgKGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDU2ODk3
CistLSBOYW1lOiBDT05TVFJBSU5UICJ1bmlxdWUiIE9OIHRhYmxlX2Zvcl9jb25zdHJhaW50czsg
VHlwZTogQ09NTUVOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ09N
TUVOVCBPTiBDT05TVFJBSU5UICJ1bmlxdWUiIE9OIHNvdXJjZS50YWJsZV9mb3JfY29uc3RyYWlu
dHMgSVMgJ2NtbnQnOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDAgKGNsYXNzIDEyNTkgT0lE
IDE0OTAyMykKKy0tIE5hbWU6IGluZGV4MTsgVHlwZTogSU5ERVg7IFNjaGVtYTogc291cmNlOyBP
d25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBJTkRFWCBpbmRleDEgT04gc291cmNlLnRhYmxl
X2Zvcl9pbmRleCBVU0lORyBidHJlZSAoY29sMiB2YXJjaGFyX3BhdHRlcm5fb3BzKTsKKworCist
LQorLS0gVE9DIGVudHJ5IDU2OTA1IChjbGFzcyAxMjU5IE9JRCAxNDkwMTIpCistLSBOYW1lOiBp
bmRleF9pZGVudGljYWw7IFR5cGU6IElOREVYOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3Rn
cmVzOworLS0KKworQ1JFQVRFIElOREVYIGluZGV4X2lkZW50aWNhbCBPTiBzb3VyY2UudGFibGVf
Zm9yX2lkZW50aWNhbCBVU0lORyBidHJlZSAoY29sMiB0ZXh0X3BhdHRlcm5fb3BzKTsKKworCist
LQorLS0gVE9DIGVudHJ5IDU2OTAxIChjbGFzcyAxMjU5IE9JRCAxNDkyMTEpCistLSBOYW1lOiBp
bmRleF9zYW1lOyBUeXBlOiBJTkRFWDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBwb3N0Z3Jlcwor
LS0KKworQ1JFQVRFIElOREVYIGluZGV4X3NhbWUgT04gc291cmNlLnRhYmxlX2Zvcl9pbmRleCBV
U0lORyBidHJlZSAoY29sMiB0ZXh0X3BhdHRlcm5fb3BzKTsKKworCistLQorLS0gVE9DIGVudHJ5
IDU2OTAyIChjbGFzcyAxMjU5IE9JRCAxNDkwMjIpCistLSBOYW1lOiBpbmRleF9zb3VyY2U7IFR5
cGU6IElOREVYOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUg
SU5ERVggaW5kZXhfc291cmNlIE9OIHNvdXJjZS50YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRyZWUg
KGNvbDIgdGV4dF9wYXR0ZXJuX29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA0NCAoY2xh
c3MgMjYxOCBPSUQgMTQ5MDMyKQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUgcnVsZTE7IFR5cGU6
IFJVTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBSVUxF
IHJ1bGUxIEFTCisgICAgT04gVVBEQVRFIFRPIHNvdXJjZS50YWJsZV9mb3JfcnVsZSBETyBJTlNU
RUFEIE5PVEhJTkc7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA3MCAoY2xhc3MgMCBPSUQgMCkK
Ky0tIERlcGVuZGVuY2llczogNjEwNDQKKy0tIE5hbWU6IFJVTEUgcnVsZTEgT04gdGFibGVfZm9y
X3J1bGU7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogcG9zdGdyZXMKKy0t
CisKK0NPTU1FTlQgT04gUlVMRSBydWxlMSBPTiBzb3VyY2UudGFibGVfZm9yX3J1bGUgSVMgJ2Nv
bW1lbnRzJzsKKworCistLQorLS0gVE9DIGVudHJ5IDYxMDQ1IChjbGFzcyAyNjE4IE9JRCAxNDkw
MzMpCistLSBOYW1lOiB0YWJsZV9mb3JfcnVsZSBydWxlMjsgVHlwZTogUlVMRTsgU2NoZW1hOiBz
b3VyY2U7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFJVTEUgcnVsZTIgQVMKKyAgICBP
TiBJTlNFUlQgVE8gc291cmNlLnRhYmxlX2Zvcl9ydWxlIERPIE5PVEhJTkc7CisKZGlmZiAtLWdp
dCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3Rlc3RzL3BnLzkuMl9wbHVzL3Rhcmdl
dC5zcWwgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0cy9wZy85LjJfcGx1cy90
YXJnZXQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZGRjNGZkYTI4
Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvdGVzdHMv
cGcvOS4yX3BsdXMvdGFyZ2V0LnNxbApAQCAtMCwwICsxLDMzNyBAQAorLS0KKy0tIFBvc3RncmVT
UUwgZGF0YWJhc2UgZHVtcAorLS0KKworLS0gRHVtcGVkIGZyb20gZGF0YWJhc2UgdmVyc2lvbiAx
MC43CistLSBEdW1wZWQgYnkgcGdfZHVtcCB2ZXJzaW9uIDEyYmV0YTIKKworLS0gU3RhcnRlZCBv
biAyMDE5LTExLTAxIDEyOjU1OjIyIElTVAorCitTRVQgc3RhdGVtZW50X3RpbWVvdXQgPSAwOwor
U0VUIGxvY2tfdGltZW91dCA9IDA7CitTRVQgY2xpZW50X2VuY29kaW5nID0gJ1VURjgnOworU0VU
IHN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyA9IG9uOworU0VMRUNUIHBnX2NhdGFsb2cuc2V0
X2NvbmZpZygnc2VhcmNoX3BhdGgnLCAnJywgZmFsc2UpOworU0VUIGNoZWNrX2Z1bmN0aW9uX2Jv
ZGllcyA9IGZhbHNlOworU0VUIHhtbG9wdGlvbiA9IGNvbnRlbnQ7CitTRVQgY2xpZW50X21pbl9t
ZXNzYWdlcyA9IHdhcm5pbmc7CisKKy0tCistLSBUT0MgZW50cnkgMTggKGNsYXNzIDI2MTUgT0lE
IDEzOTc3MSkKKy0tIE5hbWU6IHRhcmdldDsgVHlwZTogU0NIRU1BOyBTY2hlbWE6IC07IE93bmVy
OiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFNDSEVNQSB0YXJnZXQ7CisKKworQUxURVIgU0NIRU1B
IHRhcmdldCBPV05FUiBUTyBwb3N0Z3JlczsKKworU0VUIGRlZmF1bHRfdGFibGVzcGFjZSA9ICcn
OworCitDUkVBVEUgRVhURU5TSU9OIGJ0cmVlX2dpc3QKKyAgICBTQ0hFTUEgdGFyZ2V0OworCist
LQorLS0gVE9DIGVudHJ5IDEyMjUwIChjbGFzcyAxMjU5IE9JRCAxMzk5MzgpCistLSBOYW1lOiBN
VmlldzsgVHlwZTogTUFURVJJQUxJWkVEIFZJRVc7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9z
dGdyZXMKKy0tCisKK0NSRUFURSBNQVRFUklBTElaRUQgVklFVyB0YXJnZXQuIk1WaWV3IiBBUwor
IFNFTEVDVCAndGVrc3QnOjp0ZXh0IEFTIHRleHQKKyAgV0lUSCBOTyBEQVRBOworCisKK0FMVEVS
IFRBQkxFIHRhcmdldC4iTVZpZXciIE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVu
dHJ5IDEyMjU5IChjbGFzcyAxMjU5IE9JRCAxNDg5NzEpCistLSBOYW1lOiB0YWJsZV9mb3JfY29s
dW1uOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKwor
Q1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfY29sdW1uICgKKyAgICBjb2wxIGJpZ2ludCwK
KyAgICBjb2wyIGJpZ2ludCwKKyAgICBjb2w0IHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgdGFy
Z2V0LnRhYmxlX2Zvcl9jb2x1bW4gT1dORVIgVE8gcG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50
cnkgMTIyNjggKGNsYXNzIDEyNTkgT0lEIDE0OTA4OSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9jb25z
dHJhaW50czsgVHlwZTogVEFCTEU7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0t
CisKK0NSRUFURSBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2NvbnN0cmFpbnRzICgKKyAgICBjb2wx
IGludGVnZXIgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0LAorICAgIENPTlNUUkFJTlQgY2hlY2tf
Y29uIENIRUNLICgoY29sMSA+IDMwKSkKKyk7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LnRhYmxl
X2Zvcl9jb25zdHJhaW50cyBPV05FUiBUTyBwb3N0Z3JlczsKKworLS0KKy0tIFRPQyBlbnRyeSA2
MTA2NiAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczogMTIyNjgKKy0tIE5hbWU6IFRB
QkxFIHRhYmxlX2Zvcl9jb25zdHJhaW50czsgVHlwZTogQ09NTUVOVDsgU2NoZW1hOiB0YXJnZXQ7
IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ09NTUVOVCBPTiBUQUJMRSB0YXJnZXQudGFibGVfZm9y
X2NvbnN0cmFpbnRzIElTICdjb21tZW50cyc7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA2NyAo
Y2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczogMTIyNjgKKy0tIE5hbWU6IENPTlNUUkFJ
TlQgY2hlY2tfY29uIE9OIHRhYmxlX2Zvcl9jb25zdHJhaW50czsgVHlwZTogQ09NTUVOVDsgU2No
ZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ09NTUVOVCBPTiBDT05TVFJBSU5U
IGNoZWNrX2NvbiBPTiB0YXJnZXQudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjb21lbnQnOwor
CisKKy0tCistLSBUT0MgZW50cnkgMTIyNTcgKGNsYXNzIDEyNTkgT0lEIDE0ODk2MCkKKy0tIE5h
bWU6IHRhYmxlX2Zvcl9kZWw7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBv
c3RncmVzCistLQorCitDUkVBVEUgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9kZWwgKAorKTsKKwor
CitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2RlbCBPV05FUiBUTyBwb3N0Z3JlczsKKwor
LS0KKy0tIFRPQyBlbnRyeSAxMjI3MSAoY2xhc3MgMTI1OSBPSUQgMTQ5MTcyKQorLS0gTmFtZTog
dGFibGVfZm9yX2ZvcmVpZ25fa2V5OyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVy
OiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfZm9yZWlnbl9r
ZXkgKAorICAgIGNvbDEgaW50ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyICJjaGFyIiwKKyAgICBj
b2wzIGJpZ2ludAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2ZvcmVpZ25f
a2V5IE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5IDEyMjYzIChjbGFzcyAx
MjU5IE9JRCAxNDkwMTMpCistLSBOYW1lOiB0YWJsZV9mb3JfaWRlbnRpY2FsOyBUeXBlOiBUQUJM
RTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRh
cmdldC50YWJsZV9mb3JfaWRlbnRpY2FsICgKKyAgICBjb2wxIGludGVnZXIgTk9UIE5VTEwsCisg
ICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfaWRlbnRp
Y2FsIE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5IDEyMjYxIChjbGFzcyAx
MjU5IE9JRCAxNDg5ODYpCistLSBOYW1lOiB0YWJsZV9mb3JfaW5kZXg7IFR5cGU6IFRBQkxFOyBT
Y2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgVEFCTEUgdGFyZ2V0
LnRhYmxlX2Zvcl9pbmRleCAoCisgICAgY29sMSBpbnRlZ2VyIE5PVCBOVUxMLAorICAgIGNvbDIg
dGV4dAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2luZGV4IE9XTkVSIFRP
IHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5IDEyMjcwIChjbGFzcyAxMjU5IE9JRCAxNDkx
NDQpCistLSBOYW1lOiB0YWJsZV9mb3JfcHJpbWFyeV9rZXk7IFR5cGU6IFRBQkxFOyBTY2hlbWE6
IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgVEFCTEUgdGFyZ2V0LnRhYmxl
X2Zvcl9wcmltYXJ5X2tleSAoCisgICAgY29sMSBpbnRlZ2VyIE5PVCBOVUxMLAorICAgIGNvbDIg
dGV4dCBOT1QgTlVMTAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX3ByaW1h
cnlfa2V5IE9XTkVSIFRPIHBvc3RncmVzOworCistLQorLS0gVE9DIGVudHJ5IDEyMjY1IChjbGFz
cyAxMjU5IE9JRCAxNDkwMzQpCistLSBOYW1lOiB0YWJsZV9mb3JfcnVsZTsgVHlwZTogVEFCTEU7
IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBUQUJMRSB0YXJn
ZXQudGFibGVfZm9yX3J1bGUgKAorICAgIGNvbDEgYmlnaW50IE5PVCBOVUxMLAorICAgIGNvbDIg
dGV4dAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX3J1bGUgT1dORVIgVE8g
cG9zdGdyZXM7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNjcgKGNsYXNzIDEyNTkgT0lEIDE0OTA2
NikKKy0tIE5hbWU6IHRhYmxlX2Zvcl90cmlnZ2VyOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJn
ZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3Jf
dHJpZ2dlciAoCisgICAgY29sMSBiaWdpbnQgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0CispOwor
CisKK0FMVEVSIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfdHJpZ2dlciBPV05FUiBUTyBwb3N0Z3Jl
czsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTA2IChjbGFzcyAyNjA2IE9JRCAxNDkwOTcpCist
LSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWludHMgRXhjbHVzaW9uOyBUeXBlOiBDT05TVFJBSU5U
OyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJMRSBPTkxZ
IHRhcmdldC50YWJsZV9mb3JfY29uc3RyYWludHMKKyAgICBBREQgQ09OU1RSQUlOVCAiRXhjbHVz
aW9uIiBFWENMVURFIFVTSU5HIGdpc3QgKGNvbDIgV0lUSCA8PikgV0lUSCAoZmlsbGZhY3Rvcj0n
MTUnKSBXSEVSRSAoKGNvbDEgPiAxKSkgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisK
KworLS0KKy0tIFRPQyBlbnRyeSA2MTA2OCAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2ll
czogNTY5MDYKKy0tIE5hbWU6IENPTlNUUkFJTlQgIkV4Y2x1c2lvbiIgT04gdGFibGVfZm9yX2Nv
bnN0cmFpbnRzOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVz
CistLQorCitDT01NRU5UIE9OIENPTlNUUkFJTlQgIkV4Y2x1c2lvbiIgT04gdGFyZ2V0LnRhYmxl
X2Zvcl9jb25zdHJhaW50cyBJUyAnY29tbWVudHMnOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5
MTAgKGNsYXNzIDI2MDYgT0lEIDE0OTE3NikKKy0tIE5hbWU6IHRhYmxlX2Zvcl9mb3JlaWduX2tl
eSB0YWJsZV9mb3JfZm9yZWlnbl9rZXlfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiB0
YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05MWSB0YXJnZXQudGFi
bGVfZm9yX2ZvcmVpZ25fa2V5CisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX2ZvcmVpZ25f
a2V5X3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY4OTcg
KGNsYXNzIDI2MDYgT0lEIDE0ODk5MykKKy0tIE5hbWU6IHRhYmxlX2Zvcl9pbmRleCB0YWJsZV9m
b3JfaW5kZXhfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBw
b3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05MWSB0YXJnZXQudGFibGVfZm9yX2luZGV4Cisg
ICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX2luZGV4X3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEp
OworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDggKGNsYXNzIDI2MDYgT0lEIDE0OTE1MSkKKy0t
IE5hbWU6IHRhYmxlX2Zvcl9wcmltYXJ5X2tleSB0YWJsZV9mb3JfcHJpbWFyeV9rZXlfcGtleTsg
VHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKwor
QUxURVIgVEFCTEUgT05MWSB0YXJnZXQudGFibGVfZm9yX3ByaW1hcnlfa2V5CisgICAgQUREIENP
TlNUUkFJTlQgdGFibGVfZm9yX3ByaW1hcnlfa2V5X3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOwor
CisKKy0tCistLSBUT0MgZW50cnkgNTY5MDIgKGNsYXNzIDI2MDYgT0lEIDE0OTA0MSkKKy0tIE5h
bWU6IHRhYmxlX2Zvcl9ydWxlIHRhYmxlX2Zvcl9ydWxlX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7
IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkg
dGFyZ2V0LnRhYmxlX2Zvcl9ydWxlCisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX3J1bGVf
cGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1NjkwMCAoY2xh
c3MgMjYwNiBPSUQgMTQ5MDIwKQorLS0gTmFtZTogdGFibGVfZm9yX2lkZW50aWNhbCB0YWJsZV9m
b3JfdGFibGVfZm9yX2lkZW50aWNhbF9wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHRh
cmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHRhcmdldC50YWJs
ZV9mb3JfaWRlbnRpY2FsCisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX3RhYmxlX2Zvcl9p
ZGVudGljYWxfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1
NjkwNCAoY2xhc3MgMjYwNiBPSUQgMTQ5MDczKQorLS0gTmFtZTogdGFibGVfZm9yX3RyaWdnZXIg
dGFibGVfZm9yX3RyaWdnZXJfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiB0YXJnZXQ7
IE93bmVyOiBwb3N0Z3JlcworLS0KKworQUxURVIgVEFCTEUgT05MWSB0YXJnZXQudGFibGVfZm9y
X3RyaWdnZXIKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJsZV9mb3JfdHJpZ2dlcl9wa2V5IFBSSU1B
UlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2ODkzIChjbGFzcyAxMjU5IE9J
RCAxNDg5OTQpCistLSBOYW1lOiBpbmRleDE7IFR5cGU6IElOREVYOyBTY2hlbWE6IHRhcmdldDsg
T3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgSU5ERVggaW5kZXgxIE9OIHRhcmdldC50YWJs
ZV9mb3JfaW5kZXggVVNJTkcgYnRyZWUgKGNvbDIgdGV4dF9wYXR0ZXJuX29wcyk7CisKKworLS0K
Ky0tIFRPQyBlbnRyeSA1Njg5NCAoY2xhc3MgMTI1OSBPSUQgMTQ4OTk1KQorLS0gTmFtZTogaW5k
ZXgyOyBUeXBlOiBJTkRFWDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKwor
Q1JFQVRFIElOREVYIGluZGV4MiBPTiB0YXJnZXQudGFibGVfZm9yX2luZGV4IFVTSU5HIGJ0cmVl
IChjb2wyIHRleHRfcGF0dGVybl9vcHMpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY4OTggKGNs
YXNzIDEyNTkgT0lEIDE0OTAyMSkKKy0tIE5hbWU6IGluZGV4X2lkZW50aWNhbDsgVHlwZTogSU5E
RVg7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBJTkRFWCBp
bmRleF9pZGVudGljYWwgT04gdGFyZ2V0LnRhYmxlX2Zvcl9pZGVudGljYWwgVVNJTkcgYnRyZWUg
KGNvbDIgdGV4dF9wYXR0ZXJuX29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njg5NSAoY2xh
c3MgMTI1OSBPSUQgMTQ5MjEyKQorLS0gTmFtZTogaW5kZXhfc2FtZTsgVHlwZTogSU5ERVg7IFNj
aGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBJTkRFWCBpbmRleF9z
YW1lIE9OIHRhcmdldC50YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRyZWUgKGNvbDIgdGV4dF9wYXR0
ZXJuX29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njg5MiAoY2xhc3MgMTI1OSBPSUQgMTM5
OTQ1KQorLS0gTmFtZTogbXZpZXdfaW5kZXg7IFR5cGU6IElOREVYOyBTY2hlbWE6IHRhcmdldDsg
T3duZXI6IHBvc3RncmVzCistLQorCitDUkVBVEUgSU5ERVggbXZpZXdfaW5kZXggT04gdGFyZ2V0
LiJNVmlldyIgVVNJTkcgYnRyZWUgKHRleHQgdGV4dF9wYXR0ZXJuX29wcyk7CisKKworLS0KKy0t
IFRPQyBlbnRyeSA2MTA0NSAoY2xhc3MgMjYxOCBPSUQgMTQ5MDQyKQorLS0gTmFtZTogdGFibGVf
Zm9yX3J1bGUgcnVsZTE7IFR5cGU6IFJVTEU7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogcG9zdGdy
ZXMKKy0tCisKK0NSRUFURSBSVUxFIHJ1bGUxIEFTCisgICAgT04gVVBEQVRFIFRPIHRhcmdldC50
YWJsZV9mb3JfcnVsZSBETyBJTlNURUFEIE5PVEhJTkc7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2
MTA2OSAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczogNjEwNDUKKy0tIE5hbWU6IFJV
TEUgcnVsZTEgT04gdGFibGVfZm9yX3J1bGU7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogdGFyZ2V0
OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NPTU1FTlQgT04gUlVMRSBydWxlMSBPTiB0YXJnZXQu
dGFibGVfZm9yX3J1bGUgSVMgJ2NvbW1lbnRzJzsKKworCistLQorLS0gVE9DIGVudHJ5IDYxMDQ2
IChjbGFzcyAyNjE4IE9JRCAxNDkwNDMpCistLSBOYW1lOiB0YWJsZV9mb3JfcnVsZSBydWxlMjsg
VHlwZTogUlVMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBwb3N0Z3JlcworLS0KKworQ1JFQVRF
IFJVTEUgcnVsZTIgQVMKKyAgICBPTiBVUERBVEUgVE8gdGFyZ2V0LnRhYmxlX2Zvcl9ydWxlIERP
IE5PVEhJTkc7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA0NyAoY2xhc3MgMjYxOCBPSUQgMTQ5
MDQ0KQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUgcnVsZTM7IFR5cGU6IFJVTEU7IFNjaGVtYTog
dGFyZ2V0OyBPd25lcjogcG9zdGdyZXMKKy0tCisKK0NSRUFURSBSVUxFIHJ1bGUzIEFTCisgICAg
T04gSU5TRVJUIFRPIHRhcmdldC50YWJsZV9mb3JfcnVsZSBETyBOT1RISU5HOworCisKKy0tCist
LSBUT0MgZW50cnkgNjEwNTAgKGNsYXNzIDAgT0lEIDEzOTkzOCkKKy0tIERlcGVuZGVuY2llczog
MTIyNTAgNjEwNjIKKy0tIE5hbWU6IE1WaWV3OyBUeXBlOiBNQVRFUklBTElaRUQgVklFVyBEQVRB
OyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IHBvc3RncmVzCistLQorCitSRUZSRVNIIE1BVEVSSUFM
SVpFRCBWSUVXIHRhcmdldC4iTVZpZXciOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMv
c2NoZW1hX2RpZmYvdGVzdHMvcHBhcy8xMF9wbHVzL3NvdXJjZS5zcWwgYi93ZWIvcGdhZG1pbi90
b29scy9zY2hlbWFfZGlmZi90ZXN0cy9wcGFzLzEwX3BsdXMvc291cmNlLnNxbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmI2MGRiY2Q1NQotLS0gL2Rldi9udWxsCisrKyBi
L3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3Rlc3RzL3BwYXMvMTBfcGx1cy9zb3VyY2Uu
c3FsCkBAIC0wLDAgKzEsMzc2IEBACistLQorLS0gUG9zdGdyZVNRTCBkYXRhYmFzZSBkdW1wCist
LQorCistLSBEdW1wZWQgZnJvbSBkYXRhYmFzZSB2ZXJzaW9uIDEwLjcKKy0tIER1bXBlZCBieSBw
Z19kdW1wIHZlcnNpb24gMTJiZXRhMgorCistLSBTdGFydGVkIG9uIDIwMTktMTEtMDEgMTI6NTQ6
MTUgSVNUCisKK1NFVCBzdGF0ZW1lbnRfdGltZW91dCA9IDA7CitTRVQgbG9ja190aW1lb3V0ID0g
MDsKK1NFVCBpZGxlX2luX3RyYW5zYWN0aW9uX3Nlc3Npb25fdGltZW91dCA9IDA7CitTRVQgY2xp
ZW50X2VuY29kaW5nID0gJ1VURjgnOworU0VUIHN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyA9
IG9uOworU0VMRUNUIHBnX2NhdGFsb2cuc2V0X2NvbmZpZygnc2VhcmNoX3BhdGgnLCAnJywgZmFs
c2UpOworU0VUIGNoZWNrX2Z1bmN0aW9uX2JvZGllcyA9IGZhbHNlOworU0VUIHhtbG9wdGlvbiA9
IGNvbnRlbnQ7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IHdhcm5pbmc7CitTRVQgcm93X3Nl
Y3VyaXR5ID0gb2ZmOworCistLQorLS0gVE9DIGVudHJ5IDE3IChjbGFzcyAyNjE1IE9JRCAxMzk3
NzApCistLSBOYW1lOiBzb3VyY2U7IFR5cGU6IFNDSEVNQTsgU2NoZW1hOiAtOyBPd25lcjogZW50
ZXJwcmlzZWRiCistLQorCitDUkVBVEUgU0NIRU1BIHNvdXJjZTsKKworCitBTFRFUiBTQ0hFTUEg
c291cmNlIE9XTkVSIFRPIGVudGVycHJpc2VkYjsKKworU0VUIGRlZmF1bHRfdGFibGVzcGFjZSA9
ICcnOworCisKK0NSRUFURSBFWFRFTlNJT04gYnRyZWVfZ2lzdAorICAgIFNDSEVNQSBzb3VyY2U7
CisKKy0tCistLSBUT0MgZW50cnkgMTIyNzIgKGNsYXNzIDEyNTkgT0lEIDE0OTIwNSkKKy0tIE5h
bWU6IHRhYmxlX2Zvcl9wYXJ0aXRpb247IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3du
ZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfcGFy
dGl0aW9uICgKKyAgICBjb2wxIGJpZ2ludCBOT1QgTlVMTAorKQorUEFSVElUSU9OIEJZIFJBTkdF
IChjb2wxKTsKKworCitBTFRFUiBUQUJMRSBzb3VyY2UudGFibGVfZm9yX3BhcnRpdGlvbiBPV05F
UiBUTyBlbnRlcnByaXNlZGI7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNzMgKGNsYXNzIDEyNTkg
T0lEIDE0OTIwOCkKKy0tIE5hbWU6IHBhcnQxOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7
IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBUQUJMRSBzb3VyY2UucGFydDEgKAor
ICAgIGNvbDEgYmlnaW50IE5PVCBOVUxMCispOworQUxURVIgVEFCTEUgT05MWSBzb3VyY2UudGFi
bGVfZm9yX3BhcnRpdGlvbiBBVFRBQ0ggUEFSVElUSU9OIHNvdXJjZS5wYXJ0MSBGT1IgVkFMVUVT
IEZST00gKCcxJykgVE8gKCcyMycpOworCisKK0FMVEVSIFRBQkxFIHNvdXJjZS5wYXJ0MSBPV05F
UiBUTyBlbnRlcnByaXNlZGI7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNzQgKGNsYXNzIDEyNTkg
T0lEIDE0OTIxMykKKy0tIE5hbWU6IHRhYmxlX2Zvcl9wYXJ0aXRpb25fMTsgVHlwZTogVEFCTEU7
IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgVEFCTEUg
c291cmNlLnRhYmxlX2Zvcl9wYXJ0aXRpb25fMSAoCisgICAgY29sMSBiaWdpbnQKKykKK1BBUlRJ
VElPTiBCWSBSQU5HRSAoY29sMSk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9w
YXJ0aXRpb25fMSBPV05FUiBUTyBlbnRlcnByaXNlZGI7CisKKy0tCistLSBUT0MgZW50cnkgMTIy
NzUgKGNsYXNzIDEyNTkgT0lEIDE0OTIxNikKKy0tIE5hbWU6IHBhcnQzOyBUeXBlOiBUQUJMRTsg
U2NoZW1hOiBzb3VyY2U7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBUQUJMRSBz
b3VyY2UucGFydDMgKAorICAgIGNvbDEgYmlnaW50CispOworQUxURVIgVEFCTEUgT05MWSBzb3Vy
Y2UudGFibGVfZm9yX3BhcnRpdGlvbl8xIEFUVEFDSCBQQVJUSVRJT04gc291cmNlLnBhcnQzIEZP
UiBWQUxVRVMgRlJPTSAoJzEnKSBUTyAoJzEwJyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnBh
cnQzIE9XTkVSIFRPIGVudGVycHJpc2VkYjsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI3NiAoY2xh
c3MgMTI1OSBPSUQgMTQ5MjE5KQorLS0gTmFtZTogcGFydDQ7IFR5cGU6IFRBQkxFOyBTY2hlbWE6
IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFRBQkxFIHNvdXJjZS5w
YXJ0NCAoCisgICAgY29sMSBiaWdpbnQKKyk7CitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJs
ZV9mb3JfcGFydGl0aW9uXzEgQVRUQUNIIFBBUlRJVElPTiBzb3VyY2UucGFydDQgRk9SIFZBTFVF
UyBGUk9NICgnMTEnKSBUTyAoJzIwJyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnBhcnQ0IE9X
TkVSIFRPIGVudGVycHJpc2VkYjsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI1OCAoY2xhc3MgMTI1
OSBPSUQgMTQ4OTYzKQorLS0gTmFtZTogdGFibGVfZm9yX2NvbHVtbjsgVHlwZTogVEFCTEU7IFNj
aGVtYTogc291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgVEFCTEUgc291
cmNlLnRhYmxlX2Zvcl9jb2x1bW4gKAorICAgIGNvbDEgYmlnaW50IE5PVCBOVUxMLAorICAgIGNv
bDIgdGV4dCwKKyAgICBjb2wzIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxl
X2Zvcl9jb2x1bW4gT1dORVIgVE8gZW50ZXJwcmlzZWRiOworCistLQorLS0gVE9DIGVudHJ5IDEy
MjU2IChjbGFzcyAxMjU5IE9JRCAxNDg4OTUpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWlu
dHM7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0K
KworQ1JFQVRFIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMgKAorICAgIGNvbDEg
aW50ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgc291
cmNlLnRhYmxlX2Zvcl9jb25zdHJhaW50cyBPV05FUiBUTyBlbnRlcnByaXNlZGI7CisKKy0tCist
LSBUT0MgZW50cnkgNjEwNjYgKGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDEyMjU2
CistLSBOYW1lOiBUQUJMRSB0YWJsZV9mb3JfY29uc3RyYWludHM7IFR5cGU6IENPTU1FTlQ7IFNj
aGVtYTogc291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDT01NRU5UIE9OIFRBQkxF
IHNvdXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMgSVMgJ2NvbW1lbnRzJzsKKworCistLQorLS0g
VE9DIGVudHJ5IDEyMjYyIChjbGFzcyAxMjU5IE9JRCAxNDkwMDQpCistLSBOYW1lOiB0YWJsZV9m
b3JfaWRlbnRpY2FsOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBlbnRlcnBy
aXNlZGIKKy0tCisKK0NSRUFURSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX2lkZW50aWNhbCAoCisg
ICAgY29sMSBpbnRlZ2VyIE5PVCBOVUxMLAorICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRFUiBU
QUJMRSBzb3VyY2UudGFibGVfZm9yX2lkZW50aWNhbCBPV05FUiBUTyBlbnRlcnByaXNlZGI7CisK
Ky0tCistLSBUT0MgZW50cnkgMTIyNjAgKGNsYXNzIDEyNTkgT0lEIDE0ODk3NykKKy0tIE5hbWU6
IHRhYmxlX2Zvcl9pbmRleDsgVHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50
ZXJwcmlzZWRiCistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9pbmRleCAoCisg
ICAgY29sMSBpbnRlZ2VyIE5PVCBOVUxMLAorICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRFUiBU
QUJMRSBzb3VyY2UudGFibGVfZm9yX2luZGV4IE9XTkVSIFRPIGVudGVycHJpc2VkYjsKKworLS0K
Ky0tIFRPQyBlbnRyeSAxMjI2OSAoY2xhc3MgMTI1OSBPSUQgMTQ5MTI4KQorLS0gTmFtZTogdGFi
bGVfZm9yX3ByaW1hcnlfa2V5OyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBl
bnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX3ByaW1hcnlf
a2V5ICgKKyAgICBjb2wxIGludGVnZXIgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0IE5PVCBOVUxM
CispOworCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfcHJpbWFyeV9rZXkgT1dORVIg
VE8gZW50ZXJwcmlzZWRiOworCistLQorLS0gVE9DIGVudHJ5IDEyMjY0IChjbGFzcyAxMjU5IE9J
RCAxNDkwMjQpCistLSBOYW1lOiB0YWJsZV9mb3JfcnVsZTsgVHlwZTogVEFCTEU7IFNjaGVtYTog
c291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnRh
YmxlX2Zvcl9ydWxlICgKKyAgICBjb2wxIGJpZ2ludCBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQK
Kyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9ydWxlIE9XTkVSIFRPIGVudGVy
cHJpc2VkYjsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI2NiAoY2xhc3MgMTI1OSBPSUQgMTQ5MDQ4
KQorLS0gTmFtZTogdGFibGVfZm9yX3RyaWdnZXI7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJj
ZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFRBQkxFIHNvdXJjZS50YWJsZV9m
b3JfdHJpZ2dlciAoCisgICAgY29sMSBiaWdpbnQgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0Cisp
OworCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfdHJpZ2dlciBPV05FUiBUTyBlbnRl
cnByaXNlZGI7CisKKy0tCistLSBUT0MgZW50cnkgNTY4OTMgKGNsYXNzIDI2MDYgT0lEIDE0ODkw
NCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9jb25zdHJhaW50cyBFeGNsdXNpb247IFR5cGU6IENPTlNU
UkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitBTFRFUiBU
QUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMKKyAgICBBREQgQ09OU1RSQUlO
VCAiRXhjbHVzaW9uIiBFWENMVURFIFVTSU5HIGdpc3QgKGNvbDIgV0lUSCA8PikgV0lUSCAoZmls
bGZhY3Rvcj0nMTInKSBXSEVSRSAoKGNvbDEgPiAxKSkgREVGRVJSQUJMRSBJTklUSUFMTFkgREVG
RVJSRUQ7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA2NyAoY2xhc3MgMCBPSUQgMCkKKy0tIERl
cGVuZGVuY2llczogNTY4OTMKKy0tIE5hbWU6IENPTlNUUkFJTlQgIkV4Y2x1c2lvbiIgT04gdGFi
bGVfZm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6
IGVudGVycHJpc2VkYgorLS0KKworQ09NTUVOVCBPTiBDT05TVFJBSU5UICJFeGNsdXNpb24iIE9O
IHNvdXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMgSVMgJ2NvbW1lbnRzJzsKKworCistLQorLS0g
VE9DIGVudHJ5IDU2ODkxIChjbGFzcyAyNjA2IE9JRCAxNDg5MTEpCistLSBOYW1lOiB0YWJsZV9m
b3JfY29uc3RyYWludHMgY2hlY2tfY29uOyBUeXBlOiBDSEVDSyBDT05TVFJBSU5UOyBTY2hlbWE6
IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQUxURVIgVEFCTEUgc291cmNlLnRh
YmxlX2Zvcl9jb25zdHJhaW50cworICAgIEFERCBDT05TVFJBSU5UIGNoZWNrX2NvbiBDSEVDSyAo
KGNvbDEgPiAxMCkpIE5PVCBWQUxJRDsKKworCistLQorLS0gVE9DIGVudHJ5IDYxMDY4IChjbGFz
cyAwIE9JRCAwKQorLS0gRGVwZW5kZW5jaWVzOiA1Njg5MQorLS0gTmFtZTogQ09OU1RSQUlOVCBj
aGVja19jb24gT04gdGFibGVfZm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6
IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ09NTUVOVCBPTiBDT05TVFJBSU5U
IGNoZWNrX2NvbiBPTiBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjb21lbnQnOwor
CisKKy0tCistLSBUT0MgZW50cnkgNTY4OTkgKGNsYXNzIDI2MDYgT0lEIDE0ODk3MCkKKy0tIE5h
bWU6IHRhYmxlX2Zvcl9jb2x1bW4gdGFibGVfZm9yX2NvbHVtbl9wa2V5OyBUeXBlOiBDT05TVFJB
SU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQUxURVIgVEFC
TEUgT05MWSBzb3VyY2UudGFibGVfZm9yX2NvbHVtbgorICAgIEFERCBDT05TVFJBSU5UIHRhYmxl
X2Zvcl9jb2x1bW5fcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRy
eSA1Njg5NSAoY2xhc3MgMjYwNiBPSUQgMTQ4OTAyKQorLS0gTmFtZTogdGFibGVfZm9yX2NvbnN0
cmFpbnRzIHRhYmxlX2Zvcl9jb25zdHJhaW50c19wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hl
bWE6IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQUxURVIgVEFCTEUgT05MWSBz
b3VyY2UudGFibGVfZm9yX2NvbnN0cmFpbnRzCisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9y
X2NvbnN0cmFpbnRzX3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50
cnkgNTY5MDQgKGNsYXNzIDI2MDYgT0lEIDE0ODk4NCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9pbmRl
eCB0YWJsZV9mb3JfaW5kZXhfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBzb3VyY2U7
IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkgc291cmNlLnRhYmxl
X2Zvcl9pbmRleAorICAgIEFERCBDT05TVFJBSU5UIHRhYmxlX2Zvcl9pbmRleF9wa2V5IFBSSU1B
UlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTEzIChjbGFzcyAyNjA2IE9J
RCAxNDkxMzUpCistLSBOYW1lOiB0YWJsZV9mb3JfcHJpbWFyeV9rZXkgdGFibGVfZm9yX3ByaW1h
cnlfa2V5X3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50
ZXJwcmlzZWRiCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfcHJpbWFy
eV9rZXkKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJsZV9mb3JfcHJpbWFyeV9rZXlfcGtleSBQUklN
QVJZIEtFWSAoY29sMSwgY29sMik7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1NjkwOSAoY2xhc3Mg
MjYwNiBPSUQgMTQ5MDMxKQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUgdGFibGVfZm9yX3J1bGVf
cGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBlbnRlcnByaXNl
ZGIKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zvcl9ydWxlCisgICAgQURE
IENPTlNUUkFJTlQgdGFibGVfZm9yX3J1bGVfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKwor
LS0KKy0tIFRPQyBlbnRyeSA1NjkwNyAoY2xhc3MgMjYwNiBPSUQgMTQ5MDExKQorLS0gTmFtZTog
dGFibGVfZm9yX2lkZW50aWNhbCB0YWJsZV9mb3JfdGFibGVfZm9yX2lkZW50aWNhbF9wa2V5OyBU
eXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0K
KworQUxURVIgVEFCTEUgT05MWSBzb3VyY2UudGFibGVfZm9yX2lkZW50aWNhbAorICAgIEFERCBD
T05TVFJBSU5UIHRhYmxlX2Zvcl90YWJsZV9mb3JfaWRlbnRpY2FsX3BrZXkgUFJJTUFSWSBLRVkg
KGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MTEgKGNsYXNzIDI2MDYgT0lEIDE0OTA1
NSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl90cmlnZ2VyIHRhYmxlX2Zvcl90cmlnZ2VyX3BrZXk7IFR5
cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQor
CitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfdHJpZ2dlcgorICAgIEFERCBDT05T
VFJBSU5UIHRhYmxlX2Zvcl90cmlnZ2VyX3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0t
CistLSBUT0MgZW50cnkgNTY4OTcgKGNsYXNzIDI2MDYgT0lEIDE0ODkxMykKKy0tIE5hbWU6IHRh
YmxlX2Zvcl9jb25zdHJhaW50cyB1bmlxdWU7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291
cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50
YWJsZV9mb3JfY29uc3RyYWludHMKKyAgICBBREQgQ09OU1RSQUlOVCAidW5pcXVlIiBVTklRVUUg
KGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNjEwNjkgKGNsYXNzIDAgT0lEIDApCistLSBE
ZXBlbmRlbmNpZXM6IDU2ODk3CistLSBOYW1lOiBDT05TVFJBSU5UICJ1bmlxdWUiIE9OIHRhYmxl
X2Zvcl9jb25zdHJhaW50czsgVHlwZTogQ09NTUVOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBl
bnRlcnByaXNlZGIKKy0tCisKK0NPTU1FTlQgT04gQ09OU1RSQUlOVCAidW5pcXVlIiBPTiBzb3Vy
Y2UudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjbW50JzsKKworCistLQorLS0gVE9DIGVudHJ5
IDU2OTAwIChjbGFzcyAxMjU5IE9JRCAxNDkwMjMpCistLSBOYW1lOiBpbmRleDE7IFR5cGU6IElO
REVYOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIElO
REVYIGluZGV4MSBPTiBzb3VyY2UudGFibGVfZm9yX2luZGV4IFVTSU5HIGJ0cmVlIChjb2wyIHZh
cmNoYXJfcGF0dGVybl9vcHMpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDUgKGNsYXNzIDEy
NTkgT0lEIDE0OTAxMikKKy0tIE5hbWU6IGluZGV4X2lkZW50aWNhbDsgVHlwZTogSU5ERVg7IFNj
aGVtYTogc291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgSU5ERVggaW5k
ZXhfaWRlbnRpY2FsIE9OIHNvdXJjZS50YWJsZV9mb3JfaWRlbnRpY2FsIFVTSU5HIGJ0cmVlIChj
b2wyIHRleHRfcGF0dGVybl9vcHMpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDEgKGNsYXNz
IDEyNTkgT0lEIDE0OTIxMSkKKy0tIE5hbWU6IGluZGV4X3NhbWU7IFR5cGU6IElOREVYOyBTY2hl
bWE6IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIElOREVYIGluZGV4
X3NhbWUgT04gc291cmNlLnRhYmxlX2Zvcl9pbmRleCBVU0lORyBidHJlZSAoY29sMiB0ZXh0X3Bh
dHRlcm5fb3BzKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTAyIChjbGFzcyAxMjU5IE9JRCAx
NDkwMjIpCistLSBOYW1lOiBpbmRleF9zb3VyY2U7IFR5cGU6IElOREVYOyBTY2hlbWE6IHNvdXJj
ZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIElOREVYIGluZGV4X3NvdXJjZSBP
TiBzb3VyY2UudGFibGVfZm9yX2luZGV4IFVTSU5HIGJ0cmVlIChjb2wyIHRleHRfcGF0dGVybl9v
cHMpOworCisKKy0tCistLSBUT0MgZW50cnkgNjEwNDQgKGNsYXNzIDI2MTggT0lEIDE0OTAzMikK
Ky0tIE5hbWU6IHRhYmxlX2Zvcl9ydWxlIHJ1bGUxOyBUeXBlOiBSVUxFOyBTY2hlbWE6IHNvdXJj
ZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFJVTEUgcnVsZTEgQVMKKyAgICBP
TiBVUERBVEUgVE8gc291cmNlLnRhYmxlX2Zvcl9ydWxlIERPIElOU1RFQUQgTk9USElORzsKKwor
CistLQorLS0gVE9DIGVudHJ5IDYxMDcwIChjbGFzcyAwIE9JRCAwKQorLS0gRGVwZW5kZW5jaWVz
OiA2MTA0NAorLS0gTmFtZTogUlVMRSBydWxlMSBPTiB0YWJsZV9mb3JfcnVsZTsgVHlwZTogQ09N
TUVOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0NPTU1FTlQg
T04gUlVMRSBydWxlMSBPTiBzb3VyY2UudGFibGVfZm9yX3J1bGUgSVMgJ2NvbW1lbnRzJzsKKwor
CistLQorLS0gVE9DIGVudHJ5IDYxMDQ1IChjbGFzcyAyNjE4IE9JRCAxNDkwMzMpCistLSBOYW1l
OiB0YWJsZV9mb3JfcnVsZSBydWxlMjsgVHlwZTogUlVMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVy
OiBlbnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBSVUxFIHJ1bGUyIEFTCisgICAgT04gSU5TRVJU
IFRPIHNvdXJjZS50YWJsZV9mb3JfcnVsZSBETyBOT1RISU5HOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn
YWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvdGVzdHMvcHBhcy8xMF9wbHVzL3RhcmdldC5zcWwgYi93
ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0cy9wcGFzLzEwX3BsdXMvdGFyZ2V0LnNx
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjU3ZWYwNWQ2YQotLS0gL2Rl
di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3Rlc3RzL3BwYXMvMTBf
cGx1cy90YXJnZXQuc3FsCkBAIC0wLDAgKzEsMzY0IEBACistLQorLS0gUG9zdGdyZVNRTCBkYXRh
YmFzZSBkdW1wCistLQorCistLSBEdW1wZWQgZnJvbSBkYXRhYmFzZSB2ZXJzaW9uIDEwLjcKKy0t
IER1bXBlZCBieSBwZ19kdW1wIHZlcnNpb24gMTJiZXRhMgorCistLSBTdGFydGVkIG9uIDIwMTkt
MTEtMDEgMTI6NTU6MjIgSVNUCisKK1NFVCBzdGF0ZW1lbnRfdGltZW91dCA9IDA7CitTRVQgbG9j
a190aW1lb3V0ID0gMDsKK1NFVCBpZGxlX2luX3RyYW5zYWN0aW9uX3Nlc3Npb25fdGltZW91dCA9
IDA7CitTRVQgY2xpZW50X2VuY29kaW5nID0gJ1VURjgnOworU0VUIHN0YW5kYXJkX2NvbmZvcm1p
bmdfc3RyaW5ncyA9IG9uOworU0VMRUNUIHBnX2NhdGFsb2cuc2V0X2NvbmZpZygnc2VhcmNoX3Bh
dGgnLCAnJywgZmFsc2UpOworU0VUIGNoZWNrX2Z1bmN0aW9uX2JvZGllcyA9IGZhbHNlOworU0VU
IHhtbG9wdGlvbiA9IGNvbnRlbnQ7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IHdhcm5pbmc7
CitTRVQgcm93X3NlY3VyaXR5ID0gb2ZmOworCistLQorLS0gVE9DIGVudHJ5IDE4IChjbGFzcyAy
NjE1IE9JRCAxMzk3NzEpCistLSBOYW1lOiB0YXJnZXQ7IFR5cGU6IFNDSEVNQTsgU2NoZW1hOiAt
OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgU0NIRU1BIHRhcmdldDsKKworQUxU
RVIgU0NIRU1BIHRhcmdldCBPV05FUiBUTyBlbnRlcnByaXNlZGI7CisKK1NFVCBkZWZhdWx0X3Rh
Ymxlc3BhY2UgPSAnJzsKKworQ1JFQVRFIEVYVEVOU0lPTiBidHJlZV9naXN0CisgICAgU0NIRU1B
IHRhcmdldDsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI1MCAoY2xhc3MgMTI1OSBPSUQgMTM5OTM4
KQorLS0gTmFtZTogTVZpZXc7IFR5cGU6IE1BVEVSSUFMSVpFRCBWSUVXOyBTY2hlbWE6IHRhcmdl
dDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIHRh
cmdldC4iTVZpZXciIEFTCisgU0VMRUNUICd0ZWtzdCc6OnRleHQgQVMgdGV4dAorICBXSVRIIE5P
IERBVEE7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LiJNVmlldyIgT1dORVIgVE8gZW50ZXJwcmlz
ZWRiOworCistLQorLS0gVE9DIGVudHJ5IDEyMjc3IChjbGFzcyAxMjU5IE9JRCAxNDkyMzQpCist
LSBOYW1lOiB0YWJsZV9mb3JfcGFydGl0aW9uXzE7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdl
dDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9m
b3JfcGFydGl0aW9uXzEgKAorICAgIGNvbDEgYmlnaW50CispCitQQVJUSVRJT04gQlkgUkFOR0Ug
KGNvbDEpOworCisKK0FMVEVSIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfcGFydGl0aW9uXzEgT1dO
RVIgVE8gZW50ZXJwcmlzZWRiOworCistLQorLS0gVE9DIGVudHJ5IDEyMjc4IChjbGFzcyAxMjU5
IE9JRCAxNDkyMzcpCistLSBOYW1lOiBwYXJ0MzsgVHlwZTogVEFCTEU7IFNjaGVtYTogdGFyZ2V0
OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgVEFCTEUgdGFyZ2V0LnBhcnQzICgK
KyAgICBjb2wxIGJpZ2ludAorKTsKK0FMVEVSIFRBQkxFIE9OTFkgdGFyZ2V0LnRhYmxlX2Zvcl9w
YXJ0aXRpb25fMSBBVFRBQ0ggUEFSVElUSU9OIHRhcmdldC5wYXJ0MyBGT1IgVkFMVUVTIEZST00g
KCcxMycpIFRPICgnNTYnKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQucGFydDMgT1dORVIgVE8g
ZW50ZXJwcmlzZWRiOworCistLQorLS0gVE9DIGVudHJ5IDEyMjU5IChjbGFzcyAxMjU5IE9JRCAx
NDg5NzEpCistLSBOYW1lOiB0YWJsZV9mb3JfY29sdW1uOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0
YXJnZXQ7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBUQUJMRSB0YXJnZXQudGFi
bGVfZm9yX2NvbHVtbiAoCisgICAgY29sMSBiaWdpbnQsCisgICAgY29sMiBiaWdpbnQsCisgICAg
Y29sNCB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfY29sdW1uIE9X
TkVSIFRPIGVudGVycHJpc2VkYjsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI2OCAoY2xhc3MgMTI1
OSBPSUQgMTQ5MDg5KQorLS0gTmFtZTogdGFibGVfZm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBUQUJM
RTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBUQUJM
RSB0YXJnZXQudGFibGVfZm9yX2NvbnN0cmFpbnRzICgKKyAgICBjb2wxIGludGVnZXIgTk9UIE5V
TEwsCisgICAgY29sMiB0ZXh0LAorICAgIENPTlNUUkFJTlQgY2hlY2tfY29uIENIRUNLICgoY29s
MSA+IDMwKSkKKyk7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9jb25zdHJhaW50
cyBPV05FUiBUTyBlbnRlcnByaXNlZGI7CisKKy0tCistLSBUT0MgZW50cnkgNjEwNjYgKGNsYXNz
IDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDEyMjY4CistLSBOYW1lOiBUQUJMRSB0YWJsZV9m
b3JfY29uc3RyYWludHM7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50
ZXJwcmlzZWRiCistLQorCitDT01NRU5UIE9OIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfY29uc3Ry
YWludHMgSVMgJ2NvbW1lbnRzJzsKKworCistLQorLS0gVE9DIGVudHJ5IDYxMDY3IChjbGFzcyAw
IE9JRCAwKQorLS0gRGVwZW5kZW5jaWVzOiAxMjI2OAorLS0gTmFtZTogQ09OU1RSQUlOVCBjaGVj
a19jb24gT04gdGFibGVfZm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHRh
cmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ09NTUVOVCBPTiBDT05TVFJBSU5UIGNo
ZWNrX2NvbiBPTiB0YXJnZXQudGFibGVfZm9yX2NvbnN0cmFpbnRzIElTICdjb21lbnQnOworCisK
Ky0tCistLSBUT0MgZW50cnkgMTIyNTcgKGNsYXNzIDEyNTkgT0lEIDE0ODk2MCkKKy0tIE5hbWU6
IHRhYmxlX2Zvcl9kZWw7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVy
cHJpc2VkYgorLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfZGVsICgKKyk7CisK
KworQUxURVIgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9kZWwgT1dORVIgVE8gZW50ZXJwcmlzZWRi
OworCistLQorLS0gVE9DIGVudHJ5IDEyMjcxIChjbGFzcyAxMjU5IE9JRCAxNDkxNzIpCistLSBO
YW1lOiB0YWJsZV9mb3JfZm9yZWlnbl9rZXk7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsg
T3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3Jf
Zm9yZWlnbl9rZXkgKAorICAgIGNvbDEgaW50ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyICJjaGFy
IiwKKyAgICBjb2wzIGJpZ2ludAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9y
X2ZvcmVpZ25fa2V5IE9XTkVSIFRPIGVudGVycHJpc2VkYjsKKworLS0KKy0tIFRPQyBlbnRyeSAx
MjI2MyAoY2xhc3MgMTI1OSBPSUQgMTQ5MDEzKQorLS0gTmFtZTogdGFibGVfZm9yX2lkZW50aWNh
bDsgVHlwZTogVEFCTEU7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQor
CitDUkVBVEUgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9pZGVudGljYWwgKAorICAgIGNvbDEgaW50
ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0
LnRhYmxlX2Zvcl9pZGVudGljYWwgT1dORVIgVE8gZW50ZXJwcmlzZWRiOworCistLQorLS0gVE9D
IGVudHJ5IDEyMjYxIChjbGFzcyAxMjU5IE9JRCAxNDg5ODYpCistLSBOYW1lOiB0YWJsZV9mb3Jf
aW5kZXg7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgor
LS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfaW5kZXggKAorICAgIGNvbDEgaW50
ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0
LnRhYmxlX2Zvcl9pbmRleCBPV05FUiBUTyBlbnRlcnByaXNlZGI7CisKKy0tCistLSBUT0MgZW50
cnkgMTIyNzAgKGNsYXNzIDEyNTkgT0lEIDE0OTE0NCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9wcmlt
YXJ5X2tleTsgVHlwZTogVEFCTEU7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRi
CistLQorCitDUkVBVEUgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9wcmltYXJ5X2tleSAoCisgICAg
Y29sMSBpbnRlZ2VyIE5PVCBOVUxMLAorICAgIGNvbDIgdGV4dCBOT1QgTlVMTAorKTsKKworCitB
TFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX3ByaW1hcnlfa2V5IE9XTkVSIFRPIGVudGVycHJp
c2VkYjsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI2NSAoY2xhc3MgMTI1OSBPSUQgMTQ5MDM0KQor
LS0gTmFtZTogdGFibGVfZm9yX3J1bGU7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsgT3du
ZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfcnVs
ZSAoCisgICAgY29sMSBiaWdpbnQgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0CispOworCisKK0FM
VEVSIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfcnVsZSBPV05FUiBUTyBlbnRlcnByaXNlZGI7CisK
Ky0tCistLSBUT0MgZW50cnkgMTIyNjcgKGNsYXNzIDEyNTkgT0lEIDE0OTA2NikKKy0tIE5hbWU6
IHRhYmxlX2Zvcl90cmlnZ2VyOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBl
bnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBUQUJMRSB0YXJnZXQudGFibGVfZm9yX3RyaWdnZXIg
KAorICAgIGNvbDEgYmlnaW50IE5PVCBOVUxMLAorICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRF
UiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX3RyaWdnZXIgT1dORVIgVE8gZW50ZXJwcmlzZWRiOwor
CisKKy0tCistLSBUT0MgZW50cnkgNTY5MDYgKGNsYXNzIDI2MDYgT0lEIDE0OTA5NykKKy0tIE5h
bWU6IHRhYmxlX2Zvcl9jb25zdHJhaW50cyBFeGNsdXNpb247IFR5cGU6IENPTlNUUkFJTlQ7IFNj
aGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitBTFRFUiBUQUJMRSBPTkxZ
IHRhcmdldC50YWJsZV9mb3JfY29uc3RyYWludHMKKyAgICBBREQgQ09OU1RSQUlOVCAiRXhjbHVz
aW9uIiBFWENMVURFIFVTSU5HIGdpc3QgKGNvbDIgV0lUSCA8PikgV0lUSCAoZmlsbGZhY3Rvcj0n
MTUnKSBXSEVSRSAoKGNvbDEgPiAxKSkgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisK
KworLS0KKy0tIFRPQyBlbnRyeSA2MTA2OCAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2ll
czogNTY5MDYKKy0tIE5hbWU6IENPTlNUUkFJTlQgIkV4Y2x1c2lvbiIgT04gdGFibGVfZm9yX2Nv
bnN0cmFpbnRzOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJp
c2VkYgorLS0KKworQ09NTUVOVCBPTiBDT05TVFJBSU5UICJFeGNsdXNpb24iIE9OIHRhcmdldC50
YWJsZV9mb3JfY29uc3RyYWludHMgSVMgJ2NvbW1lbnRzJzsKKworCistLQorLS0gVE9DIGVudHJ5
IDU2OTEwIChjbGFzcyAyNjA2IE9JRCAxNDkxNzYpCistLSBOYW1lOiB0YWJsZV9mb3JfZm9yZWln
bl9rZXkgdGFibGVfZm9yX2ZvcmVpZ25fa2V5X3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVt
YTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHRh
cmdldC50YWJsZV9mb3JfZm9yZWlnbl9rZXkKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJsZV9mb3Jf
Zm9yZWlnbl9rZXlfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRy
eSA1Njg5NyAoY2xhc3MgMjYwNiBPSUQgMTQ4OTkzKQorLS0gTmFtZTogdGFibGVfZm9yX2luZGV4
IHRhYmxlX2Zvcl9pbmRleF9wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHRhcmdldDsg
T3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQUxURVIgVEFCTEUgT05MWSB0YXJnZXQudGFibGVf
Zm9yX2luZGV4CisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX2luZGV4X3BrZXkgUFJJTUFS
WSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDggKGNsYXNzIDI2MDYgT0lE
IDE0OTE1MSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9wcmltYXJ5X2tleSB0YWJsZV9mb3JfcHJpbWFy
eV9rZXlfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBlbnRl
cnByaXNlZGIKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkgdGFyZ2V0LnRhYmxlX2Zvcl9wcmltYXJ5
X2tleQorICAgIEFERCBDT05TVFJBSU5UIHRhYmxlX2Zvcl9wcmltYXJ5X2tleV9wa2V5IFBSSU1B
UlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTAyIChjbGFzcyAyNjA2IE9J
RCAxNDkwNDEpCistLSBOYW1lOiB0YWJsZV9mb3JfcnVsZSB0YWJsZV9mb3JfcnVsZV9wa2V5OyBU
eXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0K
KworQUxURVIgVEFCTEUgT05MWSB0YXJnZXQudGFibGVfZm9yX3J1bGUKKyAgICBBREQgQ09OU1RS
QUlOVCB0YWJsZV9mb3JfcnVsZV9wa2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0g
VE9DIGVudHJ5IDU2OTAwIChjbGFzcyAyNjA2IE9JRCAxNDkwMjApCistLSBOYW1lOiB0YWJsZV9m
b3JfaWRlbnRpY2FsIHRhYmxlX2Zvcl90YWJsZV9mb3JfaWRlbnRpY2FsX3BrZXk7IFR5cGU6IENP
TlNUUkFJTlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitBTFRF
UiBUQUJMRSBPTkxZIHRhcmdldC50YWJsZV9mb3JfaWRlbnRpY2FsCisgICAgQUREIENPTlNUUkFJ
TlQgdGFibGVfZm9yX3RhYmxlX2Zvcl9pZGVudGljYWxfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7
CisKKworLS0KKy0tIFRPQyBlbnRyeSA1NjkwNCAoY2xhc3MgMjYwNiBPSUQgMTQ5MDczKQorLS0g
TmFtZTogdGFibGVfZm9yX3RyaWdnZXIgdGFibGVfZm9yX3RyaWdnZXJfcGtleTsgVHlwZTogQ09O
U1RSQUlOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0FMVEVS
IFRBQkxFIE9OTFkgdGFyZ2V0LnRhYmxlX2Zvcl90cmlnZ2VyCisgICAgQUREIENPTlNUUkFJTlQg
dGFibGVfZm9yX3RyaWdnZXJfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRP
QyBlbnRyeSA1Njg5MyAoY2xhc3MgMTI1OSBPSUQgMTQ4OTk0KQorLS0gTmFtZTogaW5kZXgxOyBU
eXBlOiBJTkRFWDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0NS
RUFURSBJTkRFWCBpbmRleDEgT04gdGFyZ2V0LnRhYmxlX2Zvcl9pbmRleCBVU0lORyBidHJlZSAo
Y29sMiB0ZXh0X3BhdHRlcm5fb3BzKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2ODk0IChjbGFz
cyAxMjU5IE9JRCAxNDg5OTUpCistLSBOYW1lOiBpbmRleDI7IFR5cGU6IElOREVYOyBTY2hlbWE6
IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIElOREVYIGluZGV4MiBP
TiB0YXJnZXQudGFibGVfZm9yX2luZGV4IFVTSU5HIGJ0cmVlIChjb2wyIHRleHRfcGF0dGVybl9v
cHMpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY4OTggKGNsYXNzIDEyNTkgT0lEIDE0OTAyMSkK
Ky0tIE5hbWU6IGluZGV4X2lkZW50aWNhbDsgVHlwZTogSU5ERVg7IFNjaGVtYTogdGFyZ2V0OyBP
d25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgSU5ERVggaW5kZXhfaWRlbnRpY2FsIE9O
IHRhcmdldC50YWJsZV9mb3JfaWRlbnRpY2FsIFVTSU5HIGJ0cmVlIChjb2wyIHRleHRfcGF0dGVy
bl9vcHMpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY4OTUgKGNsYXNzIDEyNTkgT0lEIDE0OTIx
MikKKy0tIE5hbWU6IGluZGV4X3NhbWU7IFR5cGU6IElOREVYOyBTY2hlbWE6IHRhcmdldDsgT3du
ZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIElOREVYIGluZGV4X3NhbWUgT04gdGFyZ2V0
LnRhYmxlX2Zvcl9pbmRleCBVU0lORyBidHJlZSAoY29sMiB0ZXh0X3BhdHRlcm5fb3BzKTsKKwor
CistLQorLS0gVE9DIGVudHJ5IDU2ODkyIChjbGFzcyAxMjU5IE9JRCAxMzk5NDUpCistLSBOYW1l
OiBtdmlld19pbmRleDsgVHlwZTogSU5ERVg7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJw
cmlzZWRiCistLQorCitDUkVBVEUgSU5ERVggbXZpZXdfaW5kZXggT04gdGFyZ2V0LiJNVmlldyIg
VVNJTkcgYnRyZWUgKHRleHQgdGV4dF9wYXR0ZXJuX29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRy
eSA2MTA0NSAoY2xhc3MgMjYxOCBPSUQgMTQ5MDQyKQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUg
cnVsZTE7IFR5cGU6IFJVTEU7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCist
LQorCitDUkVBVEUgUlVMRSBydWxlMSBBUworICAgIE9OIFVQREFURSBUTyB0YXJnZXQudGFibGVf
Zm9yX3J1bGUgRE8gSU5TVEVBRCBOT1RISU5HOworCisKKy0tCistLSBUT0MgZW50cnkgNjEwNjkg
KGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDYxMDQ1CistLSBOYW1lOiBSVUxFIHJ1
bGUxIE9OIHRhYmxlX2Zvcl9ydWxlOyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHRhcmdldDsgT3du
ZXI6IGVudGVycHJpc2VkYgorLS0KKworQ09NTUVOVCBPTiBSVUxFIHJ1bGUxIE9OIHRhcmdldC50
YWJsZV9mb3JfcnVsZSBJUyAnY29tbWVudHMnOworCisKKy0tCistLSBUT0MgZW50cnkgNjEwNDYg
KGNsYXNzIDI2MTggT0lEIDE0OTA0MykKKy0tIE5hbWU6IHRhYmxlX2Zvcl9ydWxlIHJ1bGUyOyBU
eXBlOiBSVUxFOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JF
QVRFIFJVTEUgcnVsZTIgQVMKKyAgICBPTiBVUERBVEUgVE8gdGFyZ2V0LnRhYmxlX2Zvcl9ydWxl
IERPIE5PVEhJTkc7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA0NyAoY2xhc3MgMjYxOCBPSUQg
MTQ5MDQ0KQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUgcnVsZTM7IFR5cGU6IFJVTEU7IFNjaGVt
YTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgUlVMRSBydWxlMyBB
UworICAgIE9OIElOU0VSVCBUTyB0YXJnZXQudGFibGVfZm9yX3J1bGUgRE8gTk9USElORzsKKwor
CistLQorLS0gVE9DIGVudHJ5IDYxMDUwIChjbGFzcyAwIE9JRCAxMzk5MzgpCistLSBEZXBlbmRl
bmNpZXM6IDEyMjUwIDYxMDYyCistLSBOYW1lOiBNVmlldzsgVHlwZTogTUFURVJJQUxJWkVEIFZJ
RVcgREFUQTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK1JFRlJF
U0ggTUFURVJJQUxJWkVEIFZJRVcgdGFyZ2V0LiJNVmlldyI7CmRpZmYgLS1naXQgYS93ZWIvcGdh
ZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0cy9wcGFzLzkuMl9wbHVzL3NvdXJjZS5zcWwgYi93
ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0cy9wcGFzLzkuMl9wbHVzL3NvdXJjZS5z
cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42N2VjMjE2ZDYKLS0tIC9k
ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0cy9wcGFzLzku
Ml9wbHVzL3NvdXJjZS5zcWwKQEAgLTAsMCArMSwzMTEgQEAKKy0tCistLSBQb3N0Z3JlU1FMIGRh
dGFiYXNlIGR1bXAKKy0tCisKKy0tIER1bXBlZCBmcm9tIGRhdGFiYXNlIHZlcnNpb24gMTAuNwor
LS0gRHVtcGVkIGJ5IHBnX2R1bXAgdmVyc2lvbiAxMmJldGEyCisKKy0tIFN0YXJ0ZWQgb24gMjAx
OS0xMS0wMSAxMjo1NDoxNSBJU1QKKworU0VUIHN0YXRlbWVudF90aW1lb3V0ID0gMDsKK1NFVCBs
b2NrX3RpbWVvdXQgPSAwOworU0VUIGNsaWVudF9lbmNvZGluZyA9ICdVVEY4JzsKK1NFVCBzdGFu
ZGFyZF9jb25mb3JtaW5nX3N0cmluZ3MgPSBvbjsKK1NFTEVDVCBwZ19jYXRhbG9nLnNldF9jb25m
aWcoJ3NlYXJjaF9wYXRoJywgJycsIGZhbHNlKTsKK1NFVCBjaGVja19mdW5jdGlvbl9ib2RpZXMg
PSBmYWxzZTsKK1NFVCB4bWxvcHRpb24gPSBjb250ZW50OworU0VUIGNsaWVudF9taW5fbWVzc2Fn
ZXMgPSB3YXJuaW5nOworCistLQorLS0gVE9DIGVudHJ5IDE3IChjbGFzcyAyNjE1IE9JRCAxMzk3
NzApCistLSBOYW1lOiBzb3VyY2U7IFR5cGU6IFNDSEVNQTsgU2NoZW1hOiAtOyBPd25lcjogZW50
ZXJwcmlzZWRiCistLQorCitDUkVBVEUgU0NIRU1BIHNvdXJjZTsKKworCitBTFRFUiBTQ0hFTUEg
c291cmNlIE9XTkVSIFRPIGVudGVycHJpc2VkYjsKKworU0VUIGRlZmF1bHRfdGFibGVzcGFjZSA9
ICcnOworCisKK0NSRUFURSBFWFRFTlNJT04gYnRyZWVfZ2lzdAorICAgIFNDSEVNQSBzb3VyY2U7
CisKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI1OCAoY2xhc3MgMTI1OSBPSUQgMTQ4OTYzKQorLS0g
TmFtZTogdGFibGVfZm9yX2NvbHVtbjsgVHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25l
cjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9jb2x1
bW4gKAorICAgIGNvbDEgYmlnaW50IE5PVCBOVUxMLAorICAgIGNvbDIgdGV4dCwKKyAgICBjb2wz
IHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9jb2x1bW4gT1dORVIg
VE8gZW50ZXJwcmlzZWRiOworCistLQorLS0gVE9DIGVudHJ5IDEyMjU2IChjbGFzcyAxMjU5IE9J
RCAxNDg4OTUpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWludHM7IFR5cGU6IFRBQkxFOyBT
Y2hlbWE6IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFRBQkxFIHNv
dXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMgKAorICAgIGNvbDEgaW50ZWdlciBOT1QgTlVMTCwK
KyAgICBjb2wyIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9jb25z
dHJhaW50cyBPV05FUiBUTyBlbnRlcnByaXNlZGI7CisKKy0tCistLSBUT0MgZW50cnkgNjEwNjYg
KGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDEyMjU2CistLSBOYW1lOiBUQUJMRSB0
YWJsZV9mb3JfY29uc3RyYWludHM7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogc291cmNlOyBPd25l
cjogZW50ZXJwcmlzZWRiCistLQorCitDT01NRU5UIE9OIFRBQkxFIHNvdXJjZS50YWJsZV9mb3Jf
Y29uc3RyYWludHMgSVMgJ2NvbW1lbnRzJzsKKworCistLQorLS0gVE9DIGVudHJ5IDEyMjYyIChj
bGFzcyAxMjU5IE9JRCAxNDkwMDQpCistLSBOYW1lOiB0YWJsZV9mb3JfaWRlbnRpY2FsOyBUeXBl
OiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBlbnRlcnByaXNlZGI7CistLQorCitDUkVB
VEUgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl9pZGVudGljYWwgKAorICAgIGNvbDEgaW50ZWdlciBO
T1QgTlVMTCwKKyAgICBjb2wyIHRleHQKKyk7CisKKworQUxURVIgVEFCTEUgc291cmNlLnRhYmxl
X2Zvcl9pZGVudGljYWwgT1dORVIgVE8gZW50ZXJwcmlzZWRiOzsKKworLS0KKy0tIFRPQyBlbnRy
eSAxMjI2MCAoY2xhc3MgMTI1OSBPSUQgMTQ4OTc3KQorLS0gTmFtZTogdGFibGVfZm9yX2luZGV4
OyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisK
K0NSRUFURSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX2luZGV4ICgKKyAgICBjb2wxIGludGVnZXIg
Tk9UIE5VTEwsCisgICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHNvdXJjZS50YWJs
ZV9mb3JfaW5kZXggT1dORVIgVE8gZW50ZXJwcmlzZWRiOworCistLQorLS0gVE9DIGVudHJ5IDEy
MjY5IChjbGFzcyAxMjU5IE9JRCAxNDkxMjgpCistLSBOYW1lOiB0YWJsZV9mb3JfcHJpbWFyeV9r
ZXk7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0K
KworQ1JFQVRFIFRBQkxFIHNvdXJjZS50YWJsZV9mb3JfcHJpbWFyeV9rZXkgKAorICAgIGNvbDEg
aW50ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQgTk9UIE5VTEwKKyk7CisKKworQUxURVIg
VEFCTEUgc291cmNlLnRhYmxlX2Zvcl9wcmltYXJ5X2tleSBPV05FUiBUTyBlbnRlcnByaXNlZGI7
CisKKy0tCistLSBUT0MgZW50cnkgMTIyNjQgKGNsYXNzIDEyNTkgT0lEIDE0OTAyNCkKKy0tIE5h
bWU6IHRhYmxlX2Zvcl9ydWxlOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBl
bnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBUQUJMRSBzb3VyY2UudGFibGVfZm9yX3J1bGUgKAor
ICAgIGNvbDEgYmlnaW50IE5PVCBOVUxMLAorICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRFUiBU
QUJMRSBzb3VyY2UudGFibGVfZm9yX3J1bGUgT1dORVIgVE8gZW50ZXJwcmlzZWRiOworCistLQor
LS0gVE9DIGVudHJ5IDEyMjY2IChjbGFzcyAxMjU5IE9JRCAxNDkwNDgpCistLSBOYW1lOiB0YWJs
ZV9mb3JfdHJpZ2dlcjsgVHlwZTogVEFCTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50ZXJw
cmlzZWRiCistLQorCitDUkVBVEUgVEFCTEUgc291cmNlLnRhYmxlX2Zvcl90cmlnZ2VyICgKKyAg
ICBjb2wxIGJpZ2ludCBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQKKyk7CisKKworQUxURVIgVEFC
TEUgc291cmNlLnRhYmxlX2Zvcl90cmlnZ2VyIE9XTkVSIFRPIGVudGVycHJpc2VkYjsKKworLS0K
Ky0tIFRPQyBlbnRyeSA1Njg5MyAoY2xhc3MgMjYwNiBPSUQgMTQ4OTA0KQorLS0gTmFtZTogdGFi
bGVfZm9yX2NvbnN0cmFpbnRzIEV4Y2x1c2lvbjsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBz
b3VyY2U7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkgc291cmNl
LnRhYmxlX2Zvcl9jb25zdHJhaW50cworICAgIEFERCBDT05TVFJBSU5UICJFeGNsdXNpb24iIEVY
Q0xVREUgVVNJTkcgZ2lzdCAoY29sMiBXSVRIIDw+KSBXSVRIIChmaWxsZmFjdG9yPScxMicpIFdI
RVJFICgoY29sMSA+IDEpKSBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworCistLQor
LS0gVE9DIGVudHJ5IDYxMDY3IChjbGFzcyAwIE9JRCAwKQorLS0gRGVwZW5kZW5jaWVzOiA1Njg5
MworLS0gTmFtZTogQ09OU1RSQUlOVCAiRXhjbHVzaW9uIiBPTiB0YWJsZV9mb3JfY29uc3RyYWlu
dHM7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCist
LQorCitDT01NRU5UIE9OIENPTlNUUkFJTlQgIkV4Y2x1c2lvbiIgT04gc291cmNlLnRhYmxlX2Zv
cl9jb25zdHJhaW50cyBJUyAnY29tbWVudHMnOworCisKKy0tCistLSBUT0MgZW50cnkgNTY4OTEg
KGNsYXNzIDI2MDYgT0lEIDE0ODkxMSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9jb25zdHJhaW50cyBj
aGVja19jb247IFR5cGU6IENIRUNLIENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjog
ZW50ZXJwcmlzZWRiCistLQorCitBTFRFUiBUQUJMRSBzb3VyY2UudGFibGVfZm9yX2NvbnN0cmFp
bnRzCisgICAgQUREIENPTlNUUkFJTlQgY2hlY2tfY29uIENIRUNLICgoY29sMSA+IDEwKSkgTk9U
IFZBTElEOworCisKKy0tCistLSBUT0MgZW50cnkgNjEwNjggKGNsYXNzIDAgT0lEIDApCistLSBE
ZXBlbmRlbmNpZXM6IDU2ODkxCistLSBOYW1lOiBDT05TVFJBSU5UIGNoZWNrX2NvbiBPTiB0YWJs
ZV9mb3JfY29uc3RyYWludHM7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjog
ZW50ZXJwcmlzZWRiCistLQorCitDT01NRU5UIE9OIENPTlNUUkFJTlQgY2hlY2tfY29uIE9OIHNv
dXJjZS50YWJsZV9mb3JfY29uc3RyYWludHMgSVMgJ2NvbWVudCc7CisKKworLS0KKy0tIFRPQyBl
bnRyeSA1Njg5OSAoY2xhc3MgMjYwNiBPSUQgMTQ4OTcwKQorLS0gTmFtZTogdGFibGVfZm9yX2Nv
bHVtbiB0YWJsZV9mb3JfY29sdW1uX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291
cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50
YWJsZV9mb3JfY29sdW1uCisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX2NvbHVtbl9wa2V5
IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2ODk1IChjbGFzcyAy
NjA2IE9JRCAxNDg5MDIpCistLSBOYW1lOiB0YWJsZV9mb3JfY29uc3RyYWludHMgdGFibGVfZm9y
X2NvbnN0cmFpbnRzX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25l
cjogZW50ZXJwcmlzZWRiCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3Jf
Y29uc3RyYWludHMKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJsZV9mb3JfY29uc3RyYWludHNfcGtl
eSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1NjkwNCAoY2xhc3Mg
MjYwNiBPSUQgMTQ4OTg0KQorLS0gTmFtZTogdGFibGVfZm9yX2luZGV4IHRhYmxlX2Zvcl9pbmRl
eF9wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IGVudGVycHJp
c2VkYgorLS0KKworQUxURVIgVEFCTEUgT05MWSBzb3VyY2UudGFibGVfZm9yX2luZGV4CisgICAg
QUREIENPTlNUUkFJTlQgdGFibGVfZm9yX2luZGV4X3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOwor
CisKKy0tCistLSBUT0MgZW50cnkgNTY5MTMgKGNsYXNzIDI2MDYgT0lEIDE0OTEzNSkKKy0tIE5h
bWU6IHRhYmxlX2Zvcl9wcmltYXJ5X2tleSB0YWJsZV9mb3JfcHJpbWFyeV9rZXlfcGtleTsgVHlw
ZTogQ09OU1RSQUlOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisK
K0FMVEVSIFRBQkxFIE9OTFkgc291cmNlLnRhYmxlX2Zvcl9wcmltYXJ5X2tleQorICAgIEFERCBD
T05TVFJBSU5UIHRhYmxlX2Zvcl9wcmltYXJ5X2tleV9wa2V5IFBSSU1BUlkgS0VZIChjb2wxLCBj
b2wyKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTA5IChjbGFzcyAyNjA2IE9JRCAxNDkwMzEp
CistLSBOYW1lOiB0YWJsZV9mb3JfcnVsZSB0YWJsZV9mb3JfcnVsZV9wa2V5OyBUeXBlOiBDT05T
VFJBSU5UOyBTY2hlbWE6IHNvdXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQUxURVIg
VEFCTEUgT05MWSBzb3VyY2UudGFibGVfZm9yX3J1bGUKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJs
ZV9mb3JfcnVsZV9wa2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5
IDU2OTA3IChjbGFzcyAyNjA2IE9JRCAxNDkwMTEpCistLSBOYW1lOiB0YWJsZV9mb3JfaWRlbnRp
Y2FsIHRhYmxlX2Zvcl90YWJsZV9mb3JfaWRlbnRpY2FsX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7
IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiOworLS0KKworQUxURVIgVEFCTEUg
T05MWSBzb3VyY2UudGFibGVfZm9yX2lkZW50aWNhbAorICAgIEFERCBDT05TVFJBSU5UIHRhYmxl
X2Zvcl90YWJsZV9mb3JfaWRlbnRpY2FsX3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0t
CistLSBUT0MgZW50cnkgNTY5MTEgKGNsYXNzIDI2MDYgT0lEIDE0OTA1NSkKKy0tIE5hbWU6IHRh
YmxlX2Zvcl90cmlnZ2VyIHRhYmxlX2Zvcl90cmlnZ2VyX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7
IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitBTFRFUiBUQUJMRSBP
TkxZIHNvdXJjZS50YWJsZV9mb3JfdHJpZ2dlcgorICAgIEFERCBDT05TVFJBSU5UIHRhYmxlX2Zv
cl90cmlnZ2VyX3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0MgZW50cnkg
NTY4OTcgKGNsYXNzIDI2MDYgT0lEIDE0ODkxMykKKy0tIE5hbWU6IHRhYmxlX2Zvcl9jb25zdHJh
aW50cyB1bmlxdWU7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50
ZXJwcmlzZWRiCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHNvdXJjZS50YWJsZV9mb3JfY29uc3Ry
YWludHMKKyAgICBBREQgQ09OU1RSQUlOVCAidW5pcXVlIiBVTklRVUUgKGNvbDEpOworCisKKy0t
CistLSBUT0MgZW50cnkgNjEwNjkgKGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDU2
ODk3CistLSBOYW1lOiBDT05TVFJBSU5UICJ1bmlxdWUiIE9OIHRhYmxlX2Zvcl9jb25zdHJhaW50
czsgVHlwZTogQ09NTUVOVDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0t
CisKK0NPTU1FTlQgT04gQ09OU1RSQUlOVCAidW5pcXVlIiBPTiBzb3VyY2UudGFibGVfZm9yX2Nv
bnN0cmFpbnRzIElTICdjbW50JzsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTAwIChjbGFzcyAx
MjU5IE9JRCAxNDkwMjMpCistLSBOYW1lOiBpbmRleDE7IFR5cGU6IElOREVYOyBTY2hlbWE6IHNv
dXJjZTsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIElOREVYIGluZGV4MSBPTiBz
b3VyY2UudGFibGVfZm9yX2luZGV4IFVTSU5HIGJ0cmVlIChjb2wyIHZhcmNoYXJfcGF0dGVybl9v
cHMpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDUgKGNsYXNzIDEyNTkgT0lEIDE0OTAxMikK
Ky0tIE5hbWU6IGluZGV4X2lkZW50aWNhbDsgVHlwZTogSU5ERVg7IFNjaGVtYTogc291cmNlOyBP
d25lcjogZW50ZXJwcmlzZWRiOworLS0KKworQ1JFQVRFIElOREVYIGluZGV4X2lkZW50aWNhbCBP
TiBzb3VyY2UudGFibGVfZm9yX2lkZW50aWNhbCBVU0lORyBidHJlZSAoY29sMiB0ZXh0X3BhdHRl
cm5fb3BzKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTAxIChjbGFzcyAxMjU5IE9JRCAxNDky
MTEpCistLSBOYW1lOiBpbmRleF9zYW1lOyBUeXBlOiBJTkRFWDsgU2NoZW1hOiBzb3VyY2U7IE93
bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBJTkRFWCBpbmRleF9zYW1lIE9OIHNvdXJj
ZS50YWJsZV9mb3JfaW5kZXggVVNJTkcgYnRyZWUgKGNvbDIgdGV4dF9wYXR0ZXJuX29wcyk7CisK
KworLS0KKy0tIFRPQyBlbnRyeSA1NjkwMiAoY2xhc3MgMTI1OSBPSUQgMTQ5MDIyKQorLS0gTmFt
ZTogaW5kZXhfc291cmNlOyBUeXBlOiBJTkRFWDsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBlbnRl
cnByaXNlZGIKKy0tCisKK0NSRUFURSBJTkRFWCBpbmRleF9zb3VyY2UgT04gc291cmNlLnRhYmxl
X2Zvcl9pbmRleCBVU0lORyBidHJlZSAoY29sMiB0ZXh0X3BhdHRlcm5fb3BzKTsKKworCistLQor
LS0gVE9DIGVudHJ5IDYxMDQ0IChjbGFzcyAyNjE4IE9JRCAxNDkwMzIpCistLSBOYW1lOiB0YWJs
ZV9mb3JfcnVsZSBydWxlMTsgVHlwZTogUlVMRTsgU2NoZW1hOiBzb3VyY2U7IE93bmVyOiBlbnRl
cnByaXNlZGIKKy0tCisKK0NSRUFURSBSVUxFIHJ1bGUxIEFTCisgICAgT04gVVBEQVRFIFRPIHNv
dXJjZS50YWJsZV9mb3JfcnVsZSBETyBJTlNURUFEIE5PVEhJTkc7CisKKworLS0KKy0tIFRPQyBl
bnRyeSA2MTA3MCAoY2xhc3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczogNjEwNDQKKy0tIE5h
bWU6IFJVTEUgcnVsZTEgT04gdGFibGVfZm9yX3J1bGU7IFR5cGU6IENPTU1FTlQ7IFNjaGVtYTog
c291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDT01NRU5UIE9OIFJVTEUgcnVsZTEg
T04gc291cmNlLnRhYmxlX2Zvcl9ydWxlIElTICdjb21tZW50cyc7CisKKworLS0KKy0tIFRPQyBl
bnRyeSA2MTA0NSAoY2xhc3MgMjYxOCBPSUQgMTQ5MDMzKQorLS0gTmFtZTogdGFibGVfZm9yX3J1
bGUgcnVsZTI7IFR5cGU6IFJVTEU7IFNjaGVtYTogc291cmNlOyBPd25lcjogZW50ZXJwcmlzZWRi
CistLQorCitDUkVBVEUgUlVMRSBydWxlMiBBUworICAgIE9OIElOU0VSVCBUTyBzb3VyY2UudGFi
bGVfZm9yX3J1bGUgRE8gTk9USElORzsKKwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMv
c2NoZW1hX2RpZmYvdGVzdHMvcHBhcy85LjJfcGx1cy90YXJnZXQuc3FsIGIvd2ViL3BnYWRtaW4v
dG9vbHMvc2NoZW1hX2RpZmYvdGVzdHMvcHBhcy85LjJfcGx1cy90YXJnZXQuc3FsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZjY0NzY1MjI0Ci0tLSAvZGV2L251bGwKKysr
IGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvdGVzdHMvcHBhcy85LjJfcGx1cy90YXJn
ZXQuc3FsCkBAIC0wLDAgKzEsMzM3IEBACistLQorLS0gUG9zdGdyZVNRTCBkYXRhYmFzZSBkdW1w
CistLQorCistLSBEdW1wZWQgZnJvbSBkYXRhYmFzZSB2ZXJzaW9uIDEwLjcKKy0tIER1bXBlZCBi
eSBwZ19kdW1wIHZlcnNpb24gMTJiZXRhMgorCistLSBTdGFydGVkIG9uIDIwMTktMTEtMDEgMTI6
NTU6MjIgSVNUCisKK1NFVCBzdGF0ZW1lbnRfdGltZW91dCA9IDA7CitTRVQgbG9ja190aW1lb3V0
ID0gMDsKK1NFVCBjbGllbnRfZW5jb2RpbmcgPSAnVVRGOCc7CitTRVQgc3RhbmRhcmRfY29uZm9y
bWluZ19zdHJpbmdzID0gb247CitTRUxFQ1QgcGdfY2F0YWxvZy5zZXRfY29uZmlnKCdzZWFyY2hf
cGF0aCcsICcnLCBmYWxzZSk7CitTRVQgY2hlY2tfZnVuY3Rpb25fYm9kaWVzID0gZmFsc2U7CitT
RVQgeG1sb3B0aW9uID0gY29udGVudDsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gd2Fybmlu
ZzsKKworLS0KKy0tIFRPQyBlbnRyeSAxOCAoY2xhc3MgMjYxNSBPSUQgMTM5NzcxKQorLS0gTmFt
ZTogdGFyZ2V0OyBUeXBlOiBTQ0hFTUE7IFNjaGVtYTogLTsgT3duZXI6IGVudGVycHJpc2VkYgor
LS0KKworQ1JFQVRFIFNDSEVNQSB0YXJnZXQ7CisKKworQUxURVIgU0NIRU1BIHRhcmdldCBPV05F
UiBUTyBlbnRlcnByaXNlZGI7CisKK1NFVCBkZWZhdWx0X3RhYmxlc3BhY2UgPSAnJzsKKworQ1JF
QVRFIEVYVEVOU0lPTiBidHJlZV9naXN0CisgICAgU0NIRU1BIHRhcmdldDsKKworLS0KKy0tIFRP
QyBlbnRyeSAxMjI1MCAoY2xhc3MgMTI1OSBPSUQgMTM5OTM4KQorLS0gTmFtZTogTVZpZXc7IFR5
cGU6IE1BVEVSSUFMSVpFRCBWSUVXOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2Vk
YgorLS0KKworQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIHRhcmdldC4iTVZpZXciIEFTCisgU0VM
RUNUICd0ZWtzdCc6OnRleHQgQVMgdGV4dAorICBXSVRIIE5PIERBVEE7CisKKworQUxURVIgVEFC
TEUgdGFyZ2V0LiJNVmlldyIgT1dORVIgVE8gZW50ZXJwcmlzZWRiOworCistLQorLS0gVE9DIGVu
dHJ5IDEyMjU5IChjbGFzcyAxMjU5IE9JRCAxNDg5NzEpCistLSBOYW1lOiB0YWJsZV9mb3JfY29s
dW1uOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0t
CisKK0NSRUFURSBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2NvbHVtbiAoCisgICAgY29sMSBiaWdp
bnQsCisgICAgY29sMiBiaWdpbnQsCisgICAgY29sNCB0ZXh0CispOworCisKK0FMVEVSIFRBQkxF
IHRhcmdldC50YWJsZV9mb3JfY29sdW1uIE9XTkVSIFRPIGVudGVycHJpc2VkYjsKKworLS0KKy0t
IFRPQyBlbnRyeSAxMjI2OCAoY2xhc3MgMTI1OSBPSUQgMTQ5MDg5KQorLS0gTmFtZTogdGFibGVf
Zm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBUQUJMRTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBlbnRl
cnByaXNlZGIKKy0tCisKK0NSRUFURSBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2NvbnN0cmFpbnRz
ICgKKyAgICBjb2wxIGludGVnZXIgTk9UIE5VTEwsCisgICAgY29sMiB0ZXh0LAorICAgIENPTlNU
UkFJTlQgY2hlY2tfY29uIENIRUNLICgoY29sMSA+IDMwKSkKKyk7CisKKworQUxURVIgVEFCTEUg
dGFyZ2V0LnRhYmxlX2Zvcl9jb25zdHJhaW50cyBPV05FUiBUTyBlbnRlcnByaXNlZGI7CisKKy0t
CistLSBUT0MgZW50cnkgNjEwNjYgKGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNpZXM6IDEy
MjY4CistLSBOYW1lOiBUQUJMRSB0YWJsZV9mb3JfY29uc3RyYWludHM7IFR5cGU6IENPTU1FTlQ7
IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDT01NRU5UIE9OIFRB
QkxFIHRhcmdldC50YWJsZV9mb3JfY29uc3RyYWludHMgSVMgJ2NvbW1lbnRzJzsKKworCistLQor
LS0gVE9DIGVudHJ5IDYxMDY3IChjbGFzcyAwIE9JRCAwKQorLS0gRGVwZW5kZW5jaWVzOiAxMjI2
OAorLS0gTmFtZTogQ09OU1RSQUlOVCBjaGVja19jb24gT04gdGFibGVfZm9yX2NvbnN0cmFpbnRz
OyBUeXBlOiBDT01NRU5UOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0K
KworQ09NTUVOVCBPTiBDT05TVFJBSU5UIGNoZWNrX2NvbiBPTiB0YXJnZXQudGFibGVfZm9yX2Nv
bnN0cmFpbnRzIElTICdjb21lbnQnOworCisKKy0tCistLSBUT0MgZW50cnkgMTIyNTcgKGNsYXNz
IDEyNTkgT0lEIDE0ODk2MCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9kZWw7IFR5cGU6IFRBQkxFOyBT
Y2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFRBQkxFIHRh
cmdldC50YWJsZV9mb3JfZGVsICgKKyk7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zv
cl9kZWwgT1dORVIgVE8gZW50ZXJwcmlzZWRiOworCistLQorLS0gVE9DIGVudHJ5IDEyMjcxIChj
bGFzcyAxMjU5IE9JRCAxNDkxNzIpCistLSBOYW1lOiB0YWJsZV9mb3JfZm9yZWlnbl9rZXk7IFR5
cGU6IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JF
QVRFIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfZm9yZWlnbl9rZXkgKAorICAgIGNvbDEgaW50ZWdl
ciBOT1QgTlVMTCwKKyAgICBjb2wyICJjaGFyIiwKKyAgICBjb2wzIGJpZ2ludAorKTsKKworCitB
TFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX2ZvcmVpZ25fa2V5IE9XTkVSIFRPIGVudGVycHJp
c2VkYjsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI2MyAoY2xhc3MgMTI1OSBPSUQgMTQ5MDEzKQor
LS0gTmFtZTogdGFibGVfZm9yX2lkZW50aWNhbDsgVHlwZTogVEFCTEU7IFNjaGVtYTogdGFyZ2V0
OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zv
cl9pZGVudGljYWwgKAorICAgIGNvbDEgaW50ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQK
Kyk7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9pZGVudGljYWwgT1dORVIgVE8g
ZW50ZXJwcmlzZWRiOworCistLQorLS0gVE9DIGVudHJ5IDEyMjYxIChjbGFzcyAxMjU5IE9JRCAx
NDg5ODYpCistLSBOYW1lOiB0YWJsZV9mb3JfaW5kZXg7IFR5cGU6IFRBQkxFOyBTY2hlbWE6IHRh
cmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFRBQkxFIHRhcmdldC50YWJs
ZV9mb3JfaW5kZXggKAorICAgIGNvbDEgaW50ZWdlciBOT1QgTlVMTCwKKyAgICBjb2wyIHRleHQK
Kyk7CisKKworQUxURVIgVEFCTEUgdGFyZ2V0LnRhYmxlX2Zvcl9pbmRleCBPV05FUiBUTyBlbnRl
cnByaXNlZGI7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNzAgKGNsYXNzIDEyNTkgT0lEIDE0OTE0
NCkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9wcmltYXJ5X2tleTsgVHlwZTogVEFCTEU7IFNjaGVtYTog
dGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgVEFCTEUgdGFyZ2V0LnRh
YmxlX2Zvcl9wcmltYXJ5X2tleSAoCisgICAgY29sMSBpbnRlZ2VyIE5PVCBOVUxMLAorICAgIGNv
bDIgdGV4dCBOT1QgTlVMTAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX3By
aW1hcnlfa2V5IE9XTkVSIFRPIGVudGVycHJpc2VkYjsKKworLS0KKy0tIFRPQyBlbnRyeSAxMjI2
NSAoY2xhc3MgMTI1OSBPSUQgMTQ5MDM0KQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGU7IFR5cGU6
IFRBQkxFOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRF
IFRBQkxFIHRhcmdldC50YWJsZV9mb3JfcnVsZSAoCisgICAgY29sMSBiaWdpbnQgTk9UIE5VTEws
CisgICAgY29sMiB0ZXh0CispOworCisKK0FMVEVSIFRBQkxFIHRhcmdldC50YWJsZV9mb3JfcnVs
ZSBPV05FUiBUTyBlbnRlcnByaXNlZGI7CisKKy0tCistLSBUT0MgZW50cnkgMTIyNjcgKGNsYXNz
IDEyNTkgT0lEIDE0OTA2NikKKy0tIE5hbWU6IHRhYmxlX2Zvcl90cmlnZ2VyOyBUeXBlOiBUQUJM
RTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBUQUJM
RSB0YXJnZXQudGFibGVfZm9yX3RyaWdnZXIgKAorICAgIGNvbDEgYmlnaW50IE5PVCBOVUxMLAor
ICAgIGNvbDIgdGV4dAorKTsKKworCitBTFRFUiBUQUJMRSB0YXJnZXQudGFibGVfZm9yX3RyaWdn
ZXIgT1dORVIgVE8gZW50ZXJwcmlzZWRiOworCisKKy0tCistLSBUT0MgZW50cnkgNTY5MDYgKGNs
YXNzIDI2MDYgT0lEIDE0OTA5NykKKy0tIE5hbWU6IHRhYmxlX2Zvcl9jb25zdHJhaW50cyBFeGNs
dXNpb247IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlz
ZWRiCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHRhcmdldC50YWJsZV9mb3JfY29uc3RyYWludHMK
KyAgICBBREQgQ09OU1RSQUlOVCAiRXhjbHVzaW9uIiBFWENMVURFIFVTSU5HIGdpc3QgKGNvbDIg
V0lUSCA8PikgV0lUSCAoZmlsbGZhY3Rvcj0nMTUnKSBXSEVSRSAoKGNvbDEgPiAxKSkgREVGRVJS
QUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA2OCAoY2xh
c3MgMCBPSUQgMCkKKy0tIERlcGVuZGVuY2llczogNTY5MDYKKy0tIE5hbWU6IENPTlNUUkFJTlQg
IkV4Y2x1c2lvbiIgT04gdGFibGVfZm9yX2NvbnN0cmFpbnRzOyBUeXBlOiBDT01NRU5UOyBTY2hl
bWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ09NTUVOVCBPTiBDT05TVFJB
SU5UICJFeGNsdXNpb24iIE9OIHRhcmdldC50YWJsZV9mb3JfY29uc3RyYWludHMgSVMgJ2NvbW1l
bnRzJzsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTEwIChjbGFzcyAyNjA2IE9JRCAxNDkxNzYp
CistLSBOYW1lOiB0YWJsZV9mb3JfZm9yZWlnbl9rZXkgdGFibGVfZm9yX2ZvcmVpZ25fa2V5X3Br
ZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRi
CistLQorCitBTFRFUiBUQUJMRSBPTkxZIHRhcmdldC50YWJsZV9mb3JfZm9yZWlnbl9rZXkKKyAg
ICBBREQgQ09OU1RSQUlOVCB0YWJsZV9mb3JfZm9yZWlnbl9rZXlfcGtleSBQUklNQVJZIEtFWSAo
Y29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njg5NyAoY2xhc3MgMjYwNiBPSUQgMTQ4OTkz
KQorLS0gTmFtZTogdGFibGVfZm9yX2luZGV4IHRhYmxlX2Zvcl9pbmRleF9wa2V5OyBUeXBlOiBD
T05TVFJBSU5UOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQUxU
RVIgVEFCTEUgT05MWSB0YXJnZXQudGFibGVfZm9yX2luZGV4CisgICAgQUREIENPTlNUUkFJTlQg
dGFibGVfZm9yX2luZGV4X3BrZXkgUFJJTUFSWSBLRVkgKGNvbDEpOworCisKKy0tCistLSBUT0Mg
ZW50cnkgNTY5MDggKGNsYXNzIDI2MDYgT0lEIDE0OTE1MSkKKy0tIE5hbWU6IHRhYmxlX2Zvcl9w
cmltYXJ5X2tleSB0YWJsZV9mb3JfcHJpbWFyeV9rZXlfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsg
U2NoZW1hOiB0YXJnZXQ7IE93bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0FMVEVSIFRBQkxFIE9O
TFkgdGFyZ2V0LnRhYmxlX2Zvcl9wcmltYXJ5X2tleQorICAgIEFERCBDT05TVFJBSU5UIHRhYmxl
X2Zvcl9wcmltYXJ5X2tleV9wa2V5IFBSSU1BUlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9D
IGVudHJ5IDU2OTAyIChjbGFzcyAyNjA2IE9JRCAxNDkwNDEpCistLSBOYW1lOiB0YWJsZV9mb3Jf
cnVsZSB0YWJsZV9mb3JfcnVsZV9wa2V5OyBUeXBlOiBDT05TVFJBSU5UOyBTY2hlbWE6IHRhcmdl
dDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQUxURVIgVEFCTEUgT05MWSB0YXJnZXQudGFi
bGVfZm9yX3J1bGUKKyAgICBBREQgQ09OU1RSQUlOVCB0YWJsZV9mb3JfcnVsZV9wa2V5IFBSSU1B
UlkgS0VZIChjb2wxKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2OTAwIChjbGFzcyAyNjA2IE9J
RCAxNDkwMjApCistLSBOYW1lOiB0YWJsZV9mb3JfaWRlbnRpY2FsIHRhYmxlX2Zvcl90YWJsZV9m
b3JfaWRlbnRpY2FsX3BrZXk7IFR5cGU6IENPTlNUUkFJTlQ7IFNjaGVtYTogdGFyZ2V0OyBPd25l
cjogZW50ZXJwcmlzZWRiCistLQorCitBTFRFUiBUQUJMRSBPTkxZIHRhcmdldC50YWJsZV9mb3Jf
aWRlbnRpY2FsCisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX3RhYmxlX2Zvcl9pZGVudGlj
YWxfcGtleSBQUklNQVJZIEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1NjkwNCAo
Y2xhc3MgMjYwNiBPSUQgMTQ5MDczKQorLS0gTmFtZTogdGFibGVfZm9yX3RyaWdnZXIgdGFibGVf
Zm9yX3RyaWdnZXJfcGtleTsgVHlwZTogQ09OU1RSQUlOVDsgU2NoZW1hOiB0YXJnZXQ7IE93bmVy
OiBlbnRlcnByaXNlZGIKKy0tCisKK0FMVEVSIFRBQkxFIE9OTFkgdGFyZ2V0LnRhYmxlX2Zvcl90
cmlnZ2VyCisgICAgQUREIENPTlNUUkFJTlQgdGFibGVfZm9yX3RyaWdnZXJfcGtleSBQUklNQVJZ
IEtFWSAoY29sMSk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA1Njg5MyAoY2xhc3MgMTI1OSBPSUQg
MTQ4OTk0KQorLS0gTmFtZTogaW5kZXgxOyBUeXBlOiBJTkRFWDsgU2NoZW1hOiB0YXJnZXQ7IE93
bmVyOiBlbnRlcnByaXNlZGIKKy0tCisKK0NSRUFURSBJTkRFWCBpbmRleDEgT04gdGFyZ2V0LnRh
YmxlX2Zvcl9pbmRleCBVU0lORyBidHJlZSAoY29sMiB0ZXh0X3BhdHRlcm5fb3BzKTsKKworCist
LQorLS0gVE9DIGVudHJ5IDU2ODk0IChjbGFzcyAxMjU5IE9JRCAxNDg5OTUpCistLSBOYW1lOiBp
bmRleDI7IFR5cGU6IElOREVYOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgor
LS0KKworQ1JFQVRFIElOREVYIGluZGV4MiBPTiB0YXJnZXQudGFibGVfZm9yX2luZGV4IFVTSU5H
IGJ0cmVlIChjb2wyIHRleHRfcGF0dGVybl9vcHMpOworCisKKy0tCistLSBUT0MgZW50cnkgNTY4
OTggKGNsYXNzIDEyNTkgT0lEIDE0OTAyMSkKKy0tIE5hbWU6IGluZGV4X2lkZW50aWNhbDsgVHlw
ZTogSU5ERVg7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVB
VEUgSU5ERVggaW5kZXhfaWRlbnRpY2FsIE9OIHRhcmdldC50YWJsZV9mb3JfaWRlbnRpY2FsIFVT
SU5HIGJ0cmVlIChjb2wyIHRleHRfcGF0dGVybl9vcHMpOworCisKKy0tCistLSBUT0MgZW50cnkg
NTY4OTUgKGNsYXNzIDEyNTkgT0lEIDE0OTIxMikKKy0tIE5hbWU6IGluZGV4X3NhbWU7IFR5cGU6
IElOREVYOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRF
IElOREVYIGluZGV4X3NhbWUgT04gdGFyZ2V0LnRhYmxlX2Zvcl9pbmRleCBVU0lORyBidHJlZSAo
Y29sMiB0ZXh0X3BhdHRlcm5fb3BzKTsKKworCistLQorLS0gVE9DIGVudHJ5IDU2ODkyIChjbGFz
cyAxMjU5IE9JRCAxMzk5NDUpCistLSBOYW1lOiBtdmlld19pbmRleDsgVHlwZTogSU5ERVg7IFNj
aGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgSU5ERVggbXZp
ZXdfaW5kZXggT04gdGFyZ2V0LiJNVmlldyIgVVNJTkcgYnRyZWUgKHRleHQgdGV4dF9wYXR0ZXJu
X29wcyk7CisKKworLS0KKy0tIFRPQyBlbnRyeSA2MTA0NSAoY2xhc3MgMjYxOCBPSUQgMTQ5MDQy
KQorLS0gTmFtZTogdGFibGVfZm9yX3J1bGUgcnVsZTE7IFR5cGU6IFJVTEU7IFNjaGVtYTogdGFy
Z2V0OyBPd25lcjogZW50ZXJwcmlzZWRiCistLQorCitDUkVBVEUgUlVMRSBydWxlMSBBUworICAg
IE9OIFVQREFURSBUTyB0YXJnZXQudGFibGVfZm9yX3J1bGUgRE8gSU5TVEVBRCBOT1RISU5HOwor
CisKKy0tCistLSBUT0MgZW50cnkgNjEwNjkgKGNsYXNzIDAgT0lEIDApCistLSBEZXBlbmRlbmNp
ZXM6IDYxMDQ1CistLSBOYW1lOiBSVUxFIHJ1bGUxIE9OIHRhYmxlX2Zvcl9ydWxlOyBUeXBlOiBD
T01NRU5UOyBTY2hlbWE6IHRhcmdldDsgT3duZXI6IGVudGVycHJpc2VkYgorLS0KKworQ09NTUVO
VCBPTiBSVUxFIHJ1bGUxIE9OIHRhcmdldC50YWJsZV9mb3JfcnVsZSBJUyAnY29tbWVudHMnOwor
CisKKy0tCistLSBUT0MgZW50cnkgNjEwNDYgKGNsYXNzIDI2MTggT0lEIDE0OTA0MykKKy0tIE5h
bWU6IHRhYmxlX2Zvcl9ydWxlIHJ1bGUyOyBUeXBlOiBSVUxFOyBTY2hlbWE6IHRhcmdldDsgT3du
ZXI6IGVudGVycHJpc2VkYgorLS0KKworQ1JFQVRFIFJVTEUgcnVsZTIgQVMKKyAgICBPTiBVUERB
VEUgVE8gdGFyZ2V0LnRhYmxlX2Zvcl9ydWxlIERPIE5PVEhJTkc7CisKKworLS0KKy0tIFRPQyBl
bnRyeSA2MTA0NyAoY2xhc3MgMjYxOCBPSUQgMTQ5MDQ0KQorLS0gTmFtZTogdGFibGVfZm9yX3J1
bGUgcnVsZTM7IFR5cGU6IFJVTEU7IFNjaGVtYTogdGFyZ2V0OyBPd25lcjogZW50ZXJwcmlzZWRi
CistLQorCitDUkVBVEUgUlVMRSBydWxlMyBBUworICAgIE9OIElOU0VSVCBUTyB0YXJnZXQudGFi
bGVfZm9yX3J1bGUgRE8gTk9USElORzsKKworCistLQorLS0gVE9DIGVudHJ5IDYxMDUwIChjbGFz
cyAwIE9JRCAxMzk5MzgpCistLSBEZXBlbmRlbmNpZXM6IDEyMjUwIDYxMDYyCistLSBOYW1lOiBN
VmlldzsgVHlwZTogTUFURVJJQUxJWkVEIFZJRVcgREFUQTsgU2NoZW1hOiB0YXJnZXQ7IE93bmVy
OiBlbnRlcnByaXNlZGIKKy0tCisKK1JFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgdGFyZ2V0LiJN
VmlldyI7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0cy90
ZXN0X3NjaGVtYV9kaWZmX2NvbXAucHkgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90
ZXN0cy90ZXN0X3NjaGVtYV9kaWZmX2NvbXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwLi4zZTc5MGJjMDYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29s
cy9zY2hlbWFfZGlmZi90ZXN0cy90ZXN0X3NjaGVtYV9kaWZmX2NvbXAucHkKQEAgLTAsMCArMSwy
MDQgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v
bHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOSwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l
bnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FM
IExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1dWlkCitpbXBvcnQganNv
bgoraW1wb3J0IG9zCitpbXBvcnQgcmFuZG9tCisKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQg
c2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt
cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9k
ZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRp
bHMgYXMgdXRpbHMKK2Zyb20gLnV0aWxzIGltcG9ydCBjcmVhdGVfdGFibGUsIGNyZWF0ZV9zY2hl
bWEsIHJlc3RvcmVfc2NoZW1hCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl
cnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRp
bHMKK2Zyb20gcGdhZG1pbi51dGlscy52ZXJzaW9uZWRfdGVtcGxhdGVfbG9hZGVyIGltcG9ydCBc
CisgICAgZ2V0X3ZlcnNpb25fbWFwcGluZ19kaXJlY3RvcmllcworCisKK2NsYXNzIFNjaGVtYURp
ZmZUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB0
ZXN0IHRoZSBzY2hlbWEgZGlmZi4gIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZl
dGNoaW5nIGRlZmF1bHQgVVJMIGZvciBkYXRhYmFzZSBub2RlLgorICAgICAgICAoJ1NjaGVtYSBk
aWZmIGNvbXBhcmlzb24nLCBkaWN0KAorICAgICAgICAgICAgdXJsPSdzY2hlbWFfZGlmZi9jb21w
YXJlL3swfS97MX0vezJ9L3szfS97NH0vezV9L3s2fScpKQorICAgIF0KKworICAgIGRlZiBzZXRV
cChzZWxmKToKKyAgICAgICAgc2VsZi5zcmNfZGF0YWJhc2UgPSAiZGJfc2NoZW1hX2RpZmZfc3Jj
XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi50YXJfZGF0YWJhc2Ug
PSAiZGJfc2NoZW1hX2RpZmZfdGFyXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKworICAg
ICAgICBzZWxmLnNyY19kYl9pZCA9IHV0aWxzLmNyZWF0ZV9kYXRhYmFzZShzZWxmLnNlcnZlciwg
c2VsZi5zcmNfZGF0YWJhc2UpCisgICAgICAgIHNlbGYudGFyX2RiX2lkID0gdXRpbHMuY3JlYXRl
X2RhdGFiYXNlKHNlbGYuc2VydmVyLCBzZWxmLnRhcl9kYXRhYmFzZSkKKworICAgICAgICBzZWxm
LnNlcnZlciA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyIl0KKyAgICAg
ICAgc2VsZi5zZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZl
cl9pZCJdCisgICAgICAgIHNlbGYubm9kZXMgPSBbJ3RhYmxlJywgJ2Z1bmN0aW9uJywgJ3Byb2Nl
ZHVyZScsICd2aWV3JywgJ212aWV3J10KKyAgICAgICAgc2VsZi5yZXN0b3JlX2JhY2t1cCgpCisK
KyAgICBkZWYgcmVzdG9yZV9iYWNrdXAoc2VsZik6CisgICAgICAgIHNlbGYuc3FsX2ZvbGRlciA9
IHNlbGYuZ2V0X3NxbF9mb2xkZXIoKQorCisgICAgICAgIGlmIHNlbGYuc3FsX2ZvbGRlciBpcyBO
b25lOgorICAgICAgICAgICAgcmFpc2UgRmlsZU5vdEZvdW5kRXJyb3IoJ1NjaGVtYSBkaWZmIGZv
bGRlciBkb2VzIG5vdCBleGlzdHMnKQorCisgICAgICAgIHNyY19zcWxfcGF0aCA9IG9zLnBhdGgu
am9pbihzZWxmLnNxbF9mb2xkZXIsICdzb3VyY2Uuc3FsJykKKyAgICAgICAgdGFyX3NxbF9wYXRo
ID0gb3MucGF0aC5qb2luKHNlbGYuc3FsX2ZvbGRlciwgJ3RhcmdldC5zcWwnKQorCisgICAgICAg
IGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzcmNfc3FsX3BhdGgpOgorICAgICAgICAgICAgcmFpc2Ug
RmlsZU5vdEZvdW5kRXJyb3IoCisgICAgICAgICAgICAgICAgJ3t9IGZpbGUgZG9lcyBub3QgZXhp
c3RzJy5mb3JtYXQoc3JjX3NxbF9wYXRoKSkKKworICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlz
dHModGFyX3NxbF9wYXRoKToKKyAgICAgICAgICAgIHJhaXNlIEZpbGVOb3RGb3VuZEVycm9yKAor
ICAgICAgICAgICAgICAgICd7fSBmaWxlIGRvZXMgbm90IGV4aXN0cycuZm9ybWF0KHRhcl9zcWxf
cGF0aCkpCisKKyAgICAgICAgc2VsZi5zcmNfc2NoZW1hX2lkID0gcmVzdG9yZV9zY2hlbWEoc2Vs
Zi5zZXJ2ZXIsIHNlbGYuc3JjX2RhdGFiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnc291cmNlJywgc3JjX3NxbF9wYXRoKQorICAgICAgICBzZWxmLnRh
cl9zY2hlbWFfaWQgPSByZXN0b3JlX3NjaGVtYShzZWxmLnNlcnZlciwgc2VsZi50YXJfZGF0YWJh
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YXJnZXQn
LCB0YXJfc3FsX3BhdGgpCisKKyAgICBkZWYgZ2V0X3NxbF9mb2xkZXIoc2VsZik6CisgICAgICAg
ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2V0IHRoZSBhcHByb3ByaWF0ZSB0ZXN0
IGZvbGRlciBiYXNlZCBvbgorICAgICAgICBzZXJ2ZXIgdmVyc2lvbiBhbmQgdGhlaXIgZXhpc3Rl
bmNlLgorCisgICAgICAgIDpwYXJhbSBtb2R1bGVfcGF0aDogUGF0aCBvZiB0aGUgbW9kdWxlIHRv
IGJlIHRlc3RlZC4KKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisgICAgICAgICMgSm9p
biB0aGUgYXBwbGljYXRpb24gcGF0aCwgbW9kdWxlIHBhdGggYW5kIHRlc3RzIGZvbGRlcgorICAg
ICAgICB0ZXN0c19mb2xkZXJfcGF0aCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgo
X19maWxlX18pKQorCisgICAgICAgICMgQSBmb2xkZXIgbmFtZSBtYXRjaGluZyB0aGUgU2VydmVy
IFR5cGUgKHBnLCBwcGFzKSB0YWtlcyBwcmlvcml0eSBzbworICAgICAgICAjIGNoZWNrIHdoZXRo
ZXIgdGhhdCBleGlzdHMgb3Igbm90LiBJZiBzbywgdGhhbiBjaGVjayB0aGUgdmVyc2lvbgorICAg
ICAgICAjIGZvbGRlciBpbiBpdCwgZWxzZSBsb29rIGRpcmVjdGx5IGluIHRoZSAndGVzdHMnIGZv
bGRlci4KKyAgICAgICAgYWJzb2x1dGVfcGF0aCA9IG9zLnBhdGguam9pbih0ZXN0c19mb2xkZXJf
cGF0aCwgc2VsZi5zZXJ2ZXJbJ3R5cGUnXSkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3Rz
KGFic29sdXRlX3BhdGgpOgorICAgICAgICAgICAgYWJzb2x1dGVfcGF0aCA9IHRlc3RzX2ZvbGRl
cl9wYXRoCisKKyAgICAgICAgIyBJdGVyYXRlIHRoZSB2ZXJzaW9uIG1hcHBpbmcgZGlyZWN0b3Jp
ZXMuCisgICAgICAgIGZvciB2ZXJzaW9uX21hcHBpbmcgaW4gZ2V0X3ZlcnNpb25fbWFwcGluZ19k
aXJlY3RvcmllcygKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndHlwZSddKToKKyAgICAg
ICAgICAgIGlmIHZlcnNpb25fbWFwcGluZ1snbnVtYmVyJ10gPiBcCisgICAgICAgICAgICAgICAg
ICAgIHNlbGYuc2VydmVyX2luZm9ybWF0aW9uWydzZXJ2ZXJfdmVyc2lvbiddOgorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGNvbXBsZXRlX3BhdGggPSBvcy5wYXRoLmpv
aW4oYWJzb2x1dGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmVyc2lvbl9tYXBwaW5nWyduYW1lJ10pCisKKyAgICAgICAgICAgIGlmIG9zLnBhdGguZXhp
c3RzKGNvbXBsZXRlX3BhdGgpOgorICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0ZV9wYXRo
CisKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBjb21wYXJlKHNlbGYpOgorICAgICAg
ICBjb21wX3VybCA9IHNlbGYudXJsLmZvcm1hdChzZWxmLnRyYW5zX2lkLCBzZWxmLnNlcnZlcl9p
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zcmNfZGJfaWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3JjX3NjaGVtYV9pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFyX2RiX2lkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhcl9zY2hlbWFfaWQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu
Z2V0KGNvbXBfdXJsKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1
c19jb2RlLCAyMDApCisgICAgICAgIHJldHVybiBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVj
b2RlKCd1dGYtOCcpKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlz
IGZ1bmN0aW9uIHdpbGwgdGVzdCB0aGUgc2NoZW1hIGRpZmYuIiIiCisKKyAgICAgICAgcmVzcG9u
c2UgPSBzZWxmLnRlc3Rlci5nZXQoInNjaGVtYV9kaWZmL2luaXRpYWxpemUiKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNw
b25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKyAg
ICAgICAgc2VsZi50cmFuc19pZCA9IHJlc3BvbnNlX2RhdGFbJ2RhdGEnXVsnc2NoZW1hRGlmZlRy
YW5zSWQnXQorCisgICAgICAgIHVybCA9ICdzY2hlbWFfZGlmZi9zZXJ2ZXIvY29ubmVjdC97fScu
Zm9ybWF0KHNlbGYuc2VydmVyX2lkKQorICAgICAgICBkYXRhID0geydwYXNzd29yZCc6IHNlbGYu
c2VydmVyWydkYl9wYXNzd29yZCddfQorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBv
c3QodXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1
bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90
eXBlPSdodG1sL2pzb24nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisg
ICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgICdzY2hlbWFf
ZGlmZi9kYXRhYmFzZS9jb25uZWN0L3swfS97MX0nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBz
ZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICBzZWxmLnNyY19kYl9pZCkpCisgICAgICAg
IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgICdzY2hlbWFfZGlmZi9k
YXRhYmFzZS9jb25uZWN0L3swfS97MX0nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBzZWxmLnNl
cnZlcl9pZCwKKyAgICAgICAgICAgICAgICBzZWxmLnRhcl9kYl9pZCkpCisKKyAgICAgICAgcmVz
cG9uc2VfZGF0YSA9IHNlbGYuY29tcGFyZSgpCisKKyAgICAgICAgZGlmZl9maWxlID0gb3MucGF0
aC5qb2luKHNlbGYuc3FsX2ZvbGRlciwgJ2RpZmZfezB9LnNxbCcuZm9ybWF0KAorICAgICAgICAg
ICAgc3RyKHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5KSkpKQorICAgICAgICBmaWxlX29iaiA9IG9w
ZW4oZGlmZl9maWxlLCAnYScpCisKKyAgICAgICAgZm9yIGRpZmYgaW4gcmVzcG9uc2VfZGF0YVsn
ZGF0YSddOgorICAgICAgICAgICAgaWYgZGlmZlsndHlwZSddIGluIHNlbGYubm9kZXM6CisgICAg
ICAgICAgICAgICAgc3JjX29ial9vaWQgPSB0YXJfb2JqX29pZCA9IE5vbmUKKyAgICAgICAgICAg
ICAgICBpZiBkaWZmWydzdGF0dXMnXSA9PSAnU291cmNlIE9ubHknIG9yXAorICAgICAgICAgICAg
ICAgICAgICAgICAgZGlmZlsnc3RhdHVzJ10gPT0gJ1RhcmdldCBPbmx5JzoKKyAgICAgICAgICAg
ICAgICAgICAgc3JjX29ial9vaWQgPSB0YXJfb2JqX29pZCA9IGRpZmZbJ29pZCddCisgICAgICAg
ICAgICAgICAgZWxpZiBkaWZmWydzdGF0dXMnXSA9PSAnRGlmZmVyZW50JzoKKyAgICAgICAgICAg
ICAgICAgICAgc3JjX29ial9vaWQgPSBkaWZmWydzb3VyY2Vfb2lkJ10KKyAgICAgICAgICAgICAg
ICAgICAgdGFyX29ial9vaWQgPSBkaWZmWyd0YXJnZXRfb2lkJ10KKworICAgICAgICAgICAgICAg
IGlmIHNyY19vYmpfb2lkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICB1cmwgPSAn
c2NoZW1hX2RpZmYvZGRsX2NvbXBhcmUvezB9L3sxfS97Mn0vezN9L3s0fS97NX0vJyBcCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICd7Nn0vezd9L3s4fS97OX0vezEwfS8nLmZvcm1hdChzZWxm
LnRyYW5zX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNyY19kYl9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3JjX3Nj
aGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YXJfZGJfaWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhcl9zY2hl
bWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzcmNfb2JqX29pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRhcl9vYmpfb2lkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZlsndHlwZSddLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZlsn
c3RhdHVzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICkKKworICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy
LmdldCh1cmwpCisKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9u
c2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VfZGF0YSA9
IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAgICAgICAgICAg
ICAgICAgIGZpbGVfb2JqLndyaXRlKHJlc3BvbnNlX2RhdGFbJ2RpZmZfZGRsJ10pCisKKyAgICAg
ICAgZmlsZV9vYmouY2xvc2UoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXN0b3JlX3Nj
aGVtYShzZWxmLnNlcnZlciwgc2VsZi50YXJfZGF0YWJhc2UsICd0YXJnZXQnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlmZl9maWxlKQorCisgICAgICAgICAgICBvcy5yZW1vdmUoZGlm
Zl9maWxlKQorCisgICAgICAgICAgICByZXNwb25zZV9kYXRhID0gc2VsZi5jb21wYXJlKCkKKyAg
ICAgICAgICAgIGZvciBkaWZmIGluIHJlc3BvbnNlX2RhdGFbJ2RhdGEnXToKKyAgICAgICAgICAg
ICAgICBpZiBkaWZmWyd0eXBlJ10gaW4gc2VsZi5ub2RlczoKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoZGlmZlsnc3RhdHVzJ10sICdJZGVudGljYWwnKQorICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBvcy5yZW1vdmUoZGlmZl9maWxlKQor
CisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRyb3Ag
dGhlIGFkZGVkIGRhdGFiYXNlIiIiCisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJf
Y29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3Jk
J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl
cnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuc2VydmVyWydzc2xtb2RlJ10pCisgICAgICAgIHV0aWxzLmRyb3Bf
ZGF0YWJhc2UoY29ubmVjdGlvbiwgc2VsZi5zcmNfZGF0YWJhc2UpCisgICAgICAgIGNvbm5lY3Rp
b24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFt
ZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z
ZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydzc2xtb2RlJ10pCisg
ICAgICAgIHV0aWxzLmRyb3BfZGF0YWJhc2UoY29ubmVjdGlvbiwgc2VsZi50YXJfZGF0YWJhc2Up
CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi90ZXN0cy91dGlscy5w
eSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3Rlc3RzL3V0aWxzLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZWU1MTNlNDkwCi0tLSAvZGV2L251bGwKKysr
IGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvdGVzdHMvdXRpbHMucHkKQEAgLTAsMCAr
MSwxMDMgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwg
VG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOSwgVGhlIHBnQWRtaW4gRGV2ZWxv
cG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl
U1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBzeXMKK2ltcG9ydCB0
cmFjZWJhY2sKKworZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0
X3V0aWxzIGFzIHV0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl
cnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFf
dXRpbHMKKworCitkZWYgcmVzdG9yZV9zY2hlbWEoc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFt
ZSwgc3FsX3BhdGgpOgorICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihk
Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJb
J3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
cnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlcnZlclsncG9ydCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApCisKKyAgICBvbGRfaXNvbGF0aW9uX2xldmVsID0gY29ubmVjdGlvbi5pc29s
YXRpb25fbGV2ZWwKKyAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwoMCkKKyAgICBw
Z19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisKKyAgICBzcWwgPSAnJworICAgIHdpdGgg
b3BlbihzcWxfcGF0aCwgJ3InKSBhcyBjb250ZW50X2ZpbGU6CisgICAgICAgIHNxbCA9IGNvbnRl
bnRfZmlsZS5yZWFkKCkKKyAgICBwZ19jdXJzb3IuZXhlY3V0ZShzcWwpCisgICAgY29ubmVjdGlv
bi5zZXRfaXNvbGF0aW9uX2xldmVsKG9sZF9pc29sYXRpb25fbGV2ZWwpCisgICAgY29ubmVjdGlv
bi5jb21taXQoKQorCisgICAgU1FMID0gIiIiU0VMRUNUCisgICAgbnNwLm9pZAorRlJPTQorICAg
IHBnX25hbWVzcGFjZSBuc3AKKyAgICBXSEVSRSBuc3AubnNwbmFtZSA9ICd7MH0nIiIiLmZvcm1h
dChzY2hlbWFfbmFtZSkKKworICAgIHBnX2N1cnNvci5leGVjdXRlKFNRTCkKKyAgICBzY2hlbWEg
PSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgIHNjaGVtYV9pZCA9IE5vbmUKKyAgICBpZiBzY2hl
bWE6CisgICAgICAgIHNjaGVtYV9pZCA9IHNjaGVtYVswXQorICAgIGNvbm5lY3Rpb24uY2xvc2Uo
KQorICAgIHJldHVybiBzY2hlbWFfaWQKKworCitkZWYgY3JlYXRlX3NjaGVtYShzZXJ2ZXIsIGRi
X25hbWUsIHNjaGVtYV9uYW1lKToKKyAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5l
Y3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VydmVyWydzc2xtb2RlJ10KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKQorICAgIHJldHVybiBzY2hlbWFfdXRpbHMuY3JlYXRlX3NjaGVt
YShjb25uZWN0aW9uLCBzY2hlbWFfbmFtZSkKKworCitkZWYgY3JlYXRlX3RhYmxlKHNlcnZlciwg
ZGJfbmFtZSwgc2NoZW1hX2lkLCB0YWJsZV9uYW1lLCBxdWVyeSk6CisgICAgIiIiCisgICAgVGhp
cyBmdW5jdGlvbiBjcmVhdGVzIGEgdGFibGUgdW5kZXIgcHJvdmlkZWQgc2NoZW1hLgorICAgIDpw
YXJhbSBzZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUgc2VydmVyOiBkaWN0CisgICAg
OnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5hbWUKKyAgICA6dHlwZSBkYl9uYW1lOiBzdHIKKyAg
ICA6cGFyYW0gc2NoZW1hX2lkOiBzY2hlbWEgb2lkCisgICAgOnR5cGUgc2NoZW1hX25hbWU6IGlu
dAorICAgIDpwYXJhbSB0YWJsZV9uYW1lOiB0YWJsZSBuYW1lCisgICAgOnR5cGUgdGFibGVfbmFt
ZTogc3RyCisgICAgOnJldHVybiB0YWJsZV9pZDogdGFibGUgaWQKKyAgICA6cnR5cGU6IGludAor
ICAgICIiIgorICAgIHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25u
ZWN0aW9uKGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydzc2xtb2RlJ10pCisg
ICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25uZWN0aW9uLmlzb2xhdGlvbl9sZXZlbAor
ICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwoMCkKKyAgICAgICAgcGdfY3Vy
c29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZShxdWVy
eSkKKyAgICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9uX2xldmVsKG9sZF9pc29sYXRpb25f
bGV2ZWwpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKyAgICAgICAgIyBHZXQgJ29pZCcg
ZnJvbSBuZXdseSBjcmVhdGVkIHRhYmxlCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJTRUxF
Q1Qgb2lkIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZT0nezB9JyIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIiBBTkQgcmVsbmFtZXNwYWNlID0gezF9Ii5mb3JtYXQodGFibGVfbmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2NoZW1hX2lkKSkKKyAgICAgICAgdGFibGUgPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAg
ICAgICB0YWJsZV9pZCA9ICcnCisgICAgICAgIGlmIHRhYmxlOgorICAgICAgICAgICAgdGFibGVf
aWQgPSB0YWJsZVswXQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJu
IHRhYmxlX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50
X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJhaXNlCmRpZmYgLS1naXQgYS93ZWIvcGdh
ZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvci5qcyBiL3dlYi9wZ2FkbWlu
L3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCmluZGV4IDNlMzU1NGU4ZC4u
YjBiOGU3ZjRiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGlj
L2pzL3NxbGVkaXRvci5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGlj
L2pzL3NxbGVkaXRvci5qcwpAQCAtODQsNiArODQsOCBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9v
bCcsIFsKICAgICAgIHRoaXMuaGFuZGxlci5wcmVmZXJlbmNlcyA9IHRoaXMucHJlZmVyZW5jZXM7
CiAgICAgICB0aGlzLmNvbm5JbnRlcnZhbElkID0gbnVsbDsKICAgICAgIHRoaXMubGF5b3V0ID0g
b3B0cy5sYXlvdXQ7CisgICAgICB0aGlzLnNldF9zZXJ2ZXJfdmVyc2lvbihvcHRzLnNlcnZlcl92
ZXIpOworICAgICAgdGhpcy50cmlnZ2VyKCdwZ2FkbWluLXNxbGVkaXRvcjp2aWV3OmluaXRpYWxp
c2VkJyk7CiAgICAgfSwKIAogICAgIC8vIEJpbmQgYWxsIHRoZSBldmVudHMKQEAgLTIzMTIsNiAr
MjMxNCwxMiBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgfQogICAgICAg
fSwKIAorICAgICAgc2V0X3ZhbHVlX3RvX2VkaXRvcjogZnVuY3Rpb24ocXVlcnkpIHsKKyAgICAg
ICAgaWYgKHRoaXMuZ3JpZFZpZXcgJiYgdGhpcy5ncmlkVmlldy5xdWVyeV90b29sX29iaiAmJiAh
Xy5pc1VuZGVmaW5lZChxdWVyeSkpIHsKKyAgICAgICAgICB0aGlzLmdyaWRWaWV3LnF1ZXJ5X3Rv
b2xfb2JqLnNldFZhbHVlKHF1ZXJ5KTsKKyAgICAgICAgfQorICAgICAgfSwKKwogICAgICAgaW5p
dF9ldmVudHM6IGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgICAg
IC8vIExpc3RlbiB0byB0aGUgZmlsZSBtYW5hZ2VyIGJ1dHRvbiBldmVudHMKZGlmZiAtLWdpdCBh
L3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL3NxbC9kZWZh
dWx0L3ByaW1hcnlfa2V5cy5zcWwgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVtcGxh
dGVzL3NxbGVkaXRvci9zcWwvZGVmYXVsdC9wcmltYXJ5X2tleXMuc3FsCmluZGV4IGE5NmM5Mjhm
Ni4uZDFlMzk4NTc5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVt
cGxhdGVzL3NxbGVkaXRvci9zcWwvZGVmYXVsdC9wcmltYXJ5X2tleXMuc3FsCisrKyBiL3dlYi9w
Z2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL3NxbC9kZWZhdWx0L3By
aW1hcnlfa2V5cy5zcWwKQEAgLTQsNSArNCw1IEBAIFNFTEVDVCBhdC5hdHRuYW1lLCBhdC5hdHRu
dW0sIHR5LnR5cG5hbWUKIEZST00gcGdfYXR0cmlidXRlIGF0IExFRlQgSk9JTiBwZ190eXBlIHR5
IE9OICh0eS5vaWQgPSBhdC5hdHR0eXBpZCkKIFdIRVJFIGF0dHJlbGlkPXt7b2JqX2lkfX06Om9p
ZCBBTkQgYXR0bnVtID0gQU5ZICgKICAgICAoU0VMRUNUIGNvbi5jb25rZXkgRlJPTSBwZ19jbGFz
cyByZWwgTEVGVCBPVVRFUiBKT0lOIHBnX2NvbnN0cmFpbnQgY29uIE9OIGNvbi5jb25yZWxpZD1y
ZWwub2lkCi0gICAgQU5EIGNvbi5jb250eXBlPSdwJyBXSEVSRSByZWwucmVsa2luZCBJTiAoJ3In
LCdzJywndCcpIEFORCByZWwub2lkID0ge3tvYmpfaWR9fTo6b2lkKTo6b2lkW10pCisgICAgQU5E
IGNvbi5jb250eXBlPSdwJyBXSEVSRSByZWwucmVsa2luZCBJTiAoJ3InLCdzJywndCcpIEFORCBy
ZWwub2lkID0gKHt7b2JqX2lkfX0pOjpvaWQpOjpvaWRbXSkKIHslIGVuZGlmICV9CmRpZmYgLS1n
aXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvZ2V0X2NvbHVtbl90eXBlcy5w
eSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9nZXRfY29sdW1uX3R5cGVzLnB5
CmluZGV4IDk5YmNiOWZhOC4uNzRiMmUyZjYwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29s
cy9zcWxlZGl0b3IvdXRpbHMvZ2V0X2NvbHVtbl90eXBlcy5weQorKysgYi93ZWIvcGdhZG1pbi90
b29scy9zcWxlZGl0b3IvdXRpbHMvZ2V0X2NvbHVtbl90eXBlcy5weQpAQCAtMzUsMTIgKzM1LDEz
IEBAIGRlZiBnZXRfY29sdW1uc190eXBlcyhpc19xdWVyeV90b29sLCBjb2x1bW5zX2luZm8sIHRh
YmxlX29pZCwgY29ubiwgaGFzX29pZHMpOgogICAgICAgICBjb2x1bW5fdHlwZXNbY29sWyduYW1l
J11dID0gY29sX3R5cGUKIAogICAgICAgICBpZiBub3QgaXNfcXVlcnlfdG9vbDoKLSAgICAgICAg
ICAgIGNvbF90eXBlWydub3RfbnVsbCddID0gY29sWydub3RfbnVsbCddID0gXAotICAgICAgICAg
ICAgICAgIHJzZXRbJ3Jvd3MnXVtrZXldWydub3RfbnVsbCddCisgICAgICAgICAgICBpZiBrZXkg
aW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIGNvbF90eXBlWydub3RfbnVsbCddID0g
Y29sWydub3RfbnVsbCddID0gXAorICAgICAgICAgICAgICAgICAgICByc2V0Wydyb3dzJ11ba2V5
XVsnbm90X251bGwnXQogCi0gICAgICAgICAgICBjb2xfdHlwZVsnaGFzX2RlZmF1bHRfdmFsJ10g
PSBcCi0gICAgICAgICAgICAgICAgY29sWydoYXNfZGVmYXVsdF92YWwnXSA9IFwKLSAgICAgICAg
ICAgICAgICByc2V0Wydyb3dzJ11ba2V5XVsnaGFzX2RlZmF1bHRfdmFsJ10KKyAgICAgICAgICAg
ICAgICBjb2xfdHlwZVsnaGFzX2RlZmF1bHRfdmFsJ10gPSBcCisgICAgICAgICAgICAgICAgICAg
IGNvbFsnaGFzX2RlZmF1bHRfdmFsJ10gPSBcCisgICAgICAgICAgICAgICAgICAgIHJzZXRbJ3Jv
d3MnXVtrZXldWydoYXNfZGVmYXVsdF92YWwnXQogCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxz
L2NzcmYucHkgYi93ZWIvcGdhZG1pbi91dGlscy9jc3JmLnB5CmluZGV4IGRmZWIzYTZhOS4uMDJj
MmRjMDBmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9jc3JmLnB5CisrKyBiL3dlYi9w
Z2FkbWluL3V0aWxzL2NzcmYucHkKQEAgLTM0LDYgKzM0LDggQEAgY2xhc3MgX1BHQ1NSRlByb3Rl
Y3QoQ1NSRlByb3RlY3QpOgogICAgICAgICAgICAgJ3BnYWRtaW4udG9vbHMuZGF0YWdyaWQucGFu
ZWwnLAogICAgICAgICAgICAgJ3BnYWRtaW4udG9vbHMuZGVidWdnZXIuaW5pdGlhbGl6ZV90YXJn
ZXQnLAogICAgICAgICAgICAgJ3BnYWRtaW4udG9vbHMuZGVidWdnZXIuZGlyZWN0X25ldycsCisg
ICAgICAgICAgICAncGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5wYW5lbCcsCisgICAgICAgICAg
ICAncGdhZG1pbi50b29scy5zY2hlbWFfZGlmZi5kZGxfY29tcGFyZScsCiAgICAgICAgIF0KIAog
ICAgICAgICBmb3IgZXhlbXB0IGluIGV4ZW1wdF92aWV3czoKZGlmZiAtLWdpdCBhL3dlYi93ZWJw
YWNrLmNvbmZpZy5qcyBiL3dlYi93ZWJwYWNrLmNvbmZpZy5qcwppbmRleCBhNjc0OWE1ZWQuLjIz
MDE3MmNmMCAxMDA2NDQKLS0tIGEvd2ViL3dlYnBhY2suY29uZmlnLmpzCisrKyBiL3dlYi93ZWJw
YWNrLmNvbmZpZy5qcwpAQCAtMzU2LDYgKzM1Niw3IEBAIG1vZHVsZS5leHBvcnRzID0gW3sKICAg
ICBzbGlja2dyaWQ6IHNvdXJjZURpciArICcvYnVuZGxlL3NsaWNrZ3JpZC5qcycsCiAgICAgc3Fs
ZWRpdG9yOiAnLi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpz
JywKICAgICBkZWJ1Z2dlcl9kaXJlY3Q6ICcuL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvc3RhdGlj
L2pzL2RpcmVjdC5qcycsCisgICAgc2NoZW1hX2RpZmY6ICcuL3BnYWRtaW4vdG9vbHMvc2NoZW1h
X2RpZmYvc3RhdGljL2pzL3NjaGVtYV9kaWZmX2hvb2suanMnLAogICAgIGZpbGVfdXRpbHM6ICcu
L3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pzL3V0aWxpdHkuanMnLAogICAgICdw
Z2FkbWluLnN0eWxlJzogcGdhZG1pbkNzc1N0eWxlcywKICAgICBwZ2FkbWluOiBwZ2FkbWluU2Nz
c1N0eWxlcywKQEAgLTQ5Miw3ICs0OTMsOCBAQCBtb2R1bGUuZXhwb3J0cyA9IFt7CiAgICAgICAg
ICcscGdhZG1pbi50b29scy5pbXBvcnRfZXhwb3J0JyArCiAgICAgICAgICcscGdhZG1pbi50b29s
cy5kZWJ1Z2dlci5jb250cm9sbGVyJyArCiAgICAgICAgICcscGdhZG1pbi50b29scy5kZWJ1Z2dl
ci5kaXJlY3QnICsKLSAgICAgICAgJyxwZ2FkbWluLm5vZGUucGdhX2pvYicsCisgICAgICAgICcs
cGdhZG1pbi5ub2RlLnBnYV9qb2InICsKKyAgICAgICAgJyxwZ2FkbWluLnRvb2xzLnNjaGVtYV9k
aWZmJywKICAgICAgIH0sCiAgICAgfSwgewogICAgICAgdGVzdDogcmVxdWlyZS5yZXNvbHZlKCdz
bmFwc3ZnJyksCmRpZmYgLS1naXQgYS93ZWIvd2VicGFjay5zaGltLmpzIGIvd2ViL3dlYnBhY2su
c2hpbS5qcwppbmRleCAyZTJiN2VkNDEuLmRhYTRjOGU5OSAxMDA2NDQKLS0tIGEvd2ViL3dlYnBh
Y2suc2hpbS5qcworKysgYi93ZWIvd2VicGFjay5zaGltLmpzCkBAIC0yNzgsNiArMjc4LDggQEAg
dmFyIHdlYnBhY2tTaGltQ29uZmlnID0gewogICAgICdwZ2FkbWluLnRvb2xzLmltcG9ydF9leHBv
cnQnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQv
c3RhdGljL2pzL2ltcG9ydF9leHBvcnQnKSwKICAgICAncGdhZG1pbi50b29scy5tYWludGVuYW5j
ZSc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vdG9vbHMvbWFpbnRlbmFuY2Uvc3Rh
dGljL2pzL21haW50ZW5hbmNlJyksCiAgICAgJ3BnYWRtaW4udG9vbHMucmVzdG9yZSc6IHBhdGgu
am9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vdG9vbHMvcmVzdG9yZS9zdGF0aWMvanMvcmVzdG9y
ZScpLAorICAgICdwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmJzogcGF0aC5qb2luKF9fZGlybmFt
ZSwgJy4vcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9zdGF0aWMvanMvc2NoZW1hX2RpZmYnKSwK
KyAgICAncGdhZG1pbi50b29scy5zY2hlbWFfZGlmZl91aSc6IHBhdGguam9pbihfX2Rpcm5hbWUs
ICcuL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvc3RhdGljL2pzL3NjaGVtYV9kaWZmX3VpJyks
CiAgICAgJ3BnYWRtaW4udG9vbHMudXNlcl9tYW5hZ2VtZW50JzogcGF0aC5qb2luKF9fZGlybmFt
ZSwgJy4vcGdhZG1pbi90b29scy91c2VyX21hbmFnZW1lbnQvc3RhdGljL2pzL3VzZXJfbWFuYWdl
bWVudCcpLAogICAgICdwZ2FkbWluLnVzZXJfbWFuYWdlbWVudC5jdXJyZW50X3VzZXInOiAnL3Vz
ZXJfbWFuYWdlbWVudC9jdXJyZW50X3VzZXInLAogICAgICdzbGljay5wZ2FkbWluLmVkaXRvcnMn
OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzLy4uL3N0YXRpYy9qcy9zbGlj
a2dyaWQvZWRpdG9ycycpLAo=
--000000000000fc4016059a22ab61--