DashboardMyTickets
10.0.1
10.0.x
Perl-Services.de
http://www.perl-services.de
Ein Dashboardwidget, das alle Tickets eines Agenten anzeigt
A dashboard widget that shows all tickets of an agent.
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPG90b2JvX2NvbmZpZyB2ZXJz
aW9uPSIyLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxTZXR0aW5nIE5hbWU9IkRhc2hib2Fy
ZEJhY2tlbmQjIyMwMDkwLURhc2hib2FyZE15VGlja2V0cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIx
Ij4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5QYXJhbWV0ZXJzIGZvciB0
aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlICJNeSBvcGVuIFRpY2tldCIgb3ZlcnZpZXcgb2Yg
dGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hv
d24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8g
dGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQi
IGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhl
IHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhl
IGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi48L0Rlc2NyaXB0aW9uPgogICAg
ICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RGFzaGJvYXJkPC9OYXZpZ2F0
aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8
SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkRhc2hib2FyZDo6TXlUaWNr
ZXRzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+TXkgVGlja2V0czwv
SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkFsbCBteSB0aWNr
ZXRzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBdHRyaWJ1dGVzIj48L0l0ZW0+
CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkZpbHRlciI+T3BlbjwvSXRlbT4KICAgICAgICAg
ICAgICAgIDxJdGVtIEtleT0iVGltZSI+QWdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0g
S2V5PSJMaW1pdCI+MjU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlcm1pc3Np
b24iPnJ3PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+Q29udGVudExh
cmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+PC9JdGVtPgogICAg
ICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAg
PEl0ZW0gS2V5PSJDYWNoZVRUTExvY2FsIj4wLjU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRl
bSBLZXk9IkRlZmF1bHRDb2x1bW5zIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KCQkJPERl
ZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0g
RGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5
cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEF2YWlsYWJsZTwvSXRl
bT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBW
YWx1ZT0iMiIgVHJhbnNsYXRhYmxlPSIxIj4yIC0gRW5hYmxlZCBieSBkZWZhdWx0PC9JdGVtPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgICAg
ICAgICA8SXRlbSBLZXk9IkFnZSIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAg
ICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAg
ICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDdXN0b21lcklEIiBTZWxlY3RlZElEPSIx
Ij48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJOYW1l
IiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtl
eT0iQ3VzdG9tZXJVc2VySUQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAg
ICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lIiBTZWxlY3RlZElEPSIx
Ij48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblNv
bHV0aW9uVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAg
ICA8SXRlbSBLZXk9IkVzY2FsYXRpb25UaW1lIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAg
ICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblVwZGF0ZVRpbWUiIFNlbGVj
dGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaWNr
ZXROdW1iZXIiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAg
PEl0ZW0gS2V5PSJMb2NrIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxJdGVtIEtleT0iT3duZXIiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAg
ICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZW5kaW5nVGltZSIgU2VsZWN0ZWRJRD0iMSI+PC9J
dGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlF1ZXVlIiBTZWxlY3RlZElE
PSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUmVzcG9uc2li
bGUiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0g
S2V5PSJQcmlvcml0eSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAg
ICAgICA8SXRlbSBLZXk9IlNlcnZpY2UiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAg
ICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTdGF0ZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgog
ICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNMQSIgU2VsZWN0ZWRJRD0iMSI+PC9J
dGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBTZWxlY3RlZElE
PSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSIgU2Vs
ZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAg
ICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTWFuZGF0b3J5Ij4wPC9J
dGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4K
ICAgIDxTZXR0aW5nIE5hbWU9IkRhc2hib2FyZE15VGlja2V0czo6U2hvd0Nsb3NlZFRpY2tldHMi
IFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJs
ZT0iMSI+U2hvdyB0YWIgd2l0aCBjbG9zZWQgdGlja2V0cyBpbiBEYXNoYm9hcmQgd2lkZ2V0Ljwv
RGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTwvTmF2aWdhdGlvbj4KICAgICAg
ICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+
CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KPC9vdG9ib19jb25maWc+Cg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9kZV9EYXNoYm9hcmRNeVRpY2tldHMucG0gLSB0cmFuc2xh
dGlvbiBmaWxlCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBX
QVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9y
IGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhp
cyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpw
YWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRlX0Rhc2hib2FyZE15VGlja2V0czsKCnVzZSBzdHJp
Y3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAg
JFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTXkgVGlja2V0cyd9ID0gJ01laW5lIFRpY2tldHMnOwog
ICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3BlbiB0aWNrZXRzJ30gPSAnT2ZmZW5lIFRpY2tl
dHMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtaW5kZXIgdGlja2V0cyd9ID0gJ0Vy
aW5uZXJ1bmdzdGlja2V0cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZW5kaW5nIHRp
Y2tldHMnfSA9ICdXYXJ0ZW50aWNrZXRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05l
dyB0aWNrZXRzJ30gPSAnTmV1ZSBUaWNrZXRzJzsKfQoKMTsKCg==
IyAtLQojIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIFBlcmwtU2VydmljZXMuZGUsIGh0dHA6Ly9w
ZXJsLXNlcnZpY2VzLmRlCiMgQmFzZWQgb24gS2VybmVsL091dHB1dC9IVE1ML0Rhc2hib2FyZC9U
aWNrZXREYXNoYm9hcmRNeVRpY2tldHMucG0gY29weXJpZ2h0IChjKSAyMDE0LTIwMTggTWF3b2gg
R21iSAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFO
VFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNl
bnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmls
ZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2Fn
ZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RGFzaGJvYXJkOjpNeVRpY2tldHM7Cgp1c2Ugc3RyaWN0
Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFs
bCk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1h
bmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0g
QF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHsl
UGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IG5lZWRlZCBwYXJh
bWV0ZXJzCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoQ29uZmlnIE5hbWUgVXNlcklEKSkgewogICAg
ICAgIGRpZSAiR290IG5vICROZWVkZWQhIiBpZiAoICEkU2VsZi0+eyROZWVkZWR9ICk7CiAgICB9
CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpP
TS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgbXkgJFJlbW92ZUZp
bHRlcnMgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUmVtb3ZlRmlsdGVycycg
KSB8fCAkUGFyYW17UmVtb3ZlRmlsdGVyc30gfHwgMDsKCiAgICAjIGdldCBzb3J0aW5nIHBhcmFt
cwogICAgZm9yIG15ICRJdGVtIChxdyhTb3J0QnkgT3JkZXJCeSkpIHsKICAgICAgICAkU2VsZi0+
eyRJdGVtfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRJdGVtICkgfHwgJFBh
cmFteyRJdGVtfTsKICAgIH0KCiAgICAjIEdldCBhZGQgZmlsdGVycyBwYXJhbS4KICAgICRTZWxm
LT57QWRkRmlsdGVyc30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWRkRmls
dGVycycgKSB8fCAkUGFyYW17QWRkRmlsdGVyc30gfHwgMDsKICAgICRTZWxmLT57VGFiQWN0aW9u
fSAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVGFiQWN0aW9uJyApICB8fCAk
UGFyYW17VGFiQWN0aW9ufSAgfHwgMDsKCiAgICAjIEdldCBwcmV2aW91cyBzb3J0aW5nIGNvbHVt
bi4KICAgICRTZWxmLT57U29ydGluZ0NvbHVtbn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQ
YXJhbSA9PiAnU29ydGluZ0NvbHVtbicgKSB8fCAkUGFyYW17U29ydGluZ0NvbHVtbn07CgogICAg
IyBzZXQgZmlsdGVyIHNldHRpbmdzCiAgICBmb3IgbXkgJEl0ZW0gKHF3KENvbHVtbkZpbHRlciBH
ZXRDb2x1bW5GaWx0ZXIgR2V0Q29sdW1uRmlsdGVyU2VsZWN0KSkgewogICAgICAgICRTZWxmLT57
JEl0ZW19ID0gJFBhcmFteyRJdGVtfTsKICAgIH0KCiAgICAjIHNhdmUgY29sdW1uIGZpbHRlcnMK
ICAgICRTZWxmLT57UHJlZktleUNvbHVtbkZpbHRlcnN9ICAgICAgICAgPSAnVXNlckRhc2hib2Fy
ZFRpY2tldE15VGlja2V0c0NvbHVtbkZpbHRlcnMnIC4gJFNlbGYtPntOYW1lfTsKICAgICRTZWxm
LT57UHJlZktleUNvbHVtbkZpbHRlcnNSZWFsS2V5c30gPSAnVXNlckRhc2hib2FyZFRpY2tldE15
VGlja2V0c0NvbHVtbkZpbHRlcnNSZWFsS2V5cycgLiAkU2VsZi0+e05hbWV9OwoKICAgICMgZ2V0
IG5lZWRlZCBvYmplY3RzCiAgICBteSAkSlNPTk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpTeXN0ZW06OkpTT04nKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpP
TS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFVzZXJPYmplY3QgICA9ICRLZXJuZWw6
Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgaWYgKCRSZW1vdmVGaWx0ZXJz
KSB7CiAgICAgICAgJFVzZXJPYmplY3QtPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICBVc2Vy
SUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVm
S2V5Q29sdW1uRmlsdGVyc30sCiAgICAgICAgICAgIFZhbHVlICA9PiAnJywKICAgICAgICApOwog
ICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgVXNlcklEID0+
ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgS2V5ICAgID0+ICRTZWxmLT57UHJlZktleUNv
bHVtbkZpbHRlcnNSZWFsS2V5c30sCiAgICAgICAgICAgIFZhbHVlICA9PiAnJywKICAgICAgICAp
OwogICAgfQoKICAgICMganVzdCBpbiBjYXNlIG5ldyBmaWx0ZXIgdmFsdWVzIGFycml2ZQogICAg
ZWxzaWYgKAogICAgICAgIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0dldENvbHVtbkZpbHRl
cn0gKQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0dldENvbHVtbkZpbHRl
clNlbGVjdH0gKQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0NvbHVtbkZp
bHRlcn0gKQogICAgICAgICkKICAgIHsKCiAgICAgICAgaWYgKCAhJENvbmZpZ09iamVjdC0+R2V0
KCdEZW1vU3lzdGVtJykgKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyBm
aWx0ZXIgcHJlZmVyZW5jZXMgZm9yIHRoaXMgd2lkZ2V0CiAgICAgICAgICAgIG15ICVQcmVmZXJl
bmNlcyA9ICRVc2VyT2JqZWN0LT5HZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJ
RCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb2x1
bW5QcmVmVmFsdWVzOwogICAgICAgICAgICBpZiAoICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVm
S2V5Q29sdW1uRmlsdGVyc30gfSApIHsKICAgICAgICAgICAgICAgICRDb2x1bW5QcmVmVmFsdWVz
ID0gJEpTT05PYmplY3QtPkRlY29kZSgKICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRQcmVm
ZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30gfSwKICAgICAgICAgICAgICAg
ICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFBSRUZWQUxVRVM6CiAgICAgICAgICAgIGZv
ciBteSAkQ29sdW1uICggc29ydCBrZXlzICV7ICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0
fSB9ICkgewogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVj
dH0tPnskQ29sdW1ufSBlcSAnRGVsZXRlRmlsdGVyJyApIHsKICAgICAgICAgICAgICAgICAgICBk
ZWxldGUgJENvbHVtblByZWZWYWx1ZXMtPnskQ29sdW1ufTsKICAgICAgICAgICAgICAgICAgICBu
ZXh0IFBSRUZWQUxVRVM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkQ29sdW1u
UHJlZlZhbHVlcy0+eyRDb2x1bW59ID0gJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9LT57
JENvbHVtbn07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVm
ZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAg
ICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30sCiAgICAg
ICAgICAgICAgICBWYWx1ZSAgPT4gJEpTT05PYmplY3QtPkVuY29kZSggRGF0YSA9PiAkQ29sdW1u
UHJlZlZhbHVlcyApLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzYXZlIHJlYWwga2V5
J3MgbmFtZQogICAgICAgICAgICBteSAkQ29sdW1uUHJlZlJlYWxLZXlzVmFsdWVzOwogICAgICAg
ICAgICBpZiAoICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc1JlYWxL
ZXlzfSB9ICkgewogICAgICAgICAgICAgICAgJENvbHVtblByZWZSZWFsS2V5c1ZhbHVlcyA9ICRK
U09OT2JqZWN0LT5EZWNvZGUoCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiAkUHJlZmVyZW5j
ZXN7ICRTZWxmLT57UHJlZktleUNvbHVtbkZpbHRlcnNSZWFsS2V5c30gfSwKICAgICAgICAgICAg
ICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgUkVBTEtFWVZBTFVFUzoKICAgICAgICAg
ICAgZm9yIG15ICRDb2x1bW4gKCBzb3J0IGtleXMgJXsgJFNlbGYtPntDb2x1bW5GaWx0ZXJ9IH0g
KSB7CiAgICAgICAgICAgICAgICBuZXh0IFJFQUxLRVlWQUxVRVMgaWYgISRDb2x1bW47CgogICAg
ICAgICAgICAgICAgbXkgJERlbGV0ZUZpbHRlciA9IDA7CiAgICAgICAgICAgICAgICBpZiAoIElz
QXJyYXlSZWZXaXRoRGF0YSggJFNlbGYtPntDb2x1bW5GaWx0ZXJ9LT57JENvbHVtbn0gKSApIHsK
ICAgICAgICAgICAgICAgICAgICBpZiAoIGdyZXAgeyAkXyBlcSAnRGVsZXRlRmlsdGVyJyB9IEB7
ICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59IH0gKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICREZWxldGVGaWx0ZXIgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggSXNIYXNoUmVmV2l0aERhdGEoICRTZWxm
LT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59ICkgKSB7CgogICAgICAgICAgICAgICAgICAgIGlm
ICgKICAgICAgICAgICAgICAgICAgICAgICAgZ3JlcCB7ICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+
eyRDb2x1bW59LT57JF99IGVxICdEZWxldGVGaWx0ZXInIH0KICAgICAgICAgICAgICAgICAgICAg
ICAga2V5cyAleyAkU2VsZi0+e0NvbHVtbkZpbHRlcn0tPnskQ29sdW1ufSB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICREZWxldGVGaWx0ZXIgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJERlbGV0ZUZpbHRlcikgewogICAgICAgICAgICAg
ICAgICAgIGRlbGV0ZSAkQ29sdW1uUHJlZlJlYWxLZXlzVmFsdWVzLT57JENvbHVtbn07CiAgICAg
ICAgICAgICAgICAgICAgZGVsZXRlICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59Owog
ICAgICAgICAgICAgICAgICAgIG5leHQgUkVBTEtFWVZBTFVFUzsKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICRDb2x1bW5QcmVmUmVhbEtleXNWYWx1ZXMtPnskQ29sdW1ufSA9ICRT
ZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59OwogICAgICAgICAgICB9CiAgICAgICAgICAg
ICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAk
U2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5
Q29sdW1uRmlsdGVyc1JlYWxLZXlzfSwKICAgICAgICAgICAgICAgIFZhbHVlICA9PiAkSlNPTk9i
amVjdC0+RW5jb2RlKCBEYXRhID0+ICRDb2x1bW5QcmVmUmVhbEtleXNWYWx1ZXMgKSwKICAgICAg
ICAgICAgKTsKCiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgdGhlIHVzZXIgaGFzIGZp
bHRlciBwcmVmZXJlbmNlcyBmb3IgdGhpcyB3aWRnZXQKICAgIG15ICVQcmVmZXJlbmNlcyA9ICRV
c2VyT2JqZWN0LT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2Vy
SUR9LAogICAgKTsKCiAgICAjIGdldCBjb2x1bW4gbmFtZXMgZnJvbSBQcmVmZXJlbmNlcwogICAg
bXkgJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyczsKICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2Vs
Zi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzfSB9ICkgewogICAgICAgICRQcmVmZXJlbmNlc0NvbHVt
bkZpbHRlcnMgPSAkSlNPTk9iamVjdC0+RGVjb2RlKAogICAgICAgICAgICBEYXRhID0+ICRQcmVm
ZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30gfSwKICAgICAgICApOwogICAg
fQoKICAgIGlmICgkUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzKSB7CiAgICAgICAgJFNlbGYtPntH
ZXRDb2x1bW5GaWx0ZXJTZWxlY3R9ID0gJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyczsKICAgICAg
ICBteSBAQ29sdW1uRmlsdGVycyA9IGtleXMgJXskUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzfTsg
ICAgIyMgbm8gY3JpdGljCiAgICAgICAgZm9yIG15ICRGaWVsZCAoQENvbHVtbkZpbHRlcnMpIHsK
ICAgICAgICAgICAgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJ9LT57ICRGaWVsZCAuICRTZWxmLT57
TmFtZX0gfSA9ICRQcmVmZXJlbmNlc0NvbHVtbkZpbHRlcnMtPnskRmllbGR9OwogICAgICAgIH0K
ICAgIH0KCiAgICAjIGdldCBjb2x1bW4gcmVhbCBuYW1lcyBmcm9tIFByZWZlcmVuY2VzCiAgICBt
eSAkUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzUmVhbEtleXM7CiAgICBpZiAoICRQcmVmZXJlbmNl
c3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc1JlYWxLZXlzfSB9ICkgewogICAgICAgICRQ
cmVmZXJlbmNlc0NvbHVtbkZpbHRlcnNSZWFsS2V5cyA9ICRKU09OT2JqZWN0LT5EZWNvZGUoCiAg
ICAgICAgICAgIERhdGEgPT4gJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0
ZXJzUmVhbEtleXN9IH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoJFByZWZlcmVuY2VzQ29s
dW1uRmlsdGVyc1JlYWxLZXlzKSB7CiAgICAgICAgbXkgQENvbHVtbkZpbHRlcnNSZWFsID0ga2V5
cyAleyRQcmVmZXJlbmNlc0NvbHVtbkZpbHRlcnNSZWFsS2V5c307ICAgICMjIG5vIGNyaXRpYwog
ICAgICAgIGZvciBteSAkRmllbGQgKEBDb2x1bW5GaWx0ZXJzUmVhbCkgewogICAgICAgICAgICAk
U2VsZi0+e0NvbHVtbkZpbHRlcn0tPnskRmllbGR9ID0gJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVy
c1JlYWxLZXlzLT57JEZpZWxkfTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY3VycmVudCBm
aWx0ZXIKICAgIG15ICROYW1lICAgICAgICAgICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdl
dFBhcmFtKCBQYXJhbSA9PiAnTmFtZScgKSB8fCAnJzsKICAgIG15ICRQcmVmZXJlbmNlc0tleSAg
ICAgICAgICAgPSAnVXNlckRhc2hib2FyZFRpY2tldE15VGlja2V0c0ZpbHRlcicgLiAkU2VsZi0+
e05hbWV9OwogICAgbXkgJEFkZGl0aW9uYWxQcmVmZXJlbmNlc0tleSA9ICdVc2VyRGFzaGJvYXJk
VGlja2V0TXlUaWNrZXRzQWRkaXRpb25hbEZpbHRlcicgLiAkU2VsZi0+e05hbWV9OwogICAgaWYg
KCAkU2VsZi0+e05hbWV9IGVxICROYW1lICkgewogICAgICAgICRTZWxmLT57RmlsdGVyfSAgICAg
ICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRmlsdGVyJyApICAgICAg
ICAgICB8fCAnJzsKICAgICAgICAkU2VsZi0+e0FkZGl0aW9uYWxGaWx0ZXJ9ID0gJFBhcmFtT2Jq
ZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZGl0aW9uYWxGaWx0ZXInICkgfHwgJyc7CiAgICB9
CgogICAgIyBSZW1lbWJlciB0aGUgc2VsZWN0ZWQgZmlsdGVyIGluIHRoZSBzZXNzaW9uLgogICAg
aWYgKCAkU2VsZi0+e0ZpbHRlcn0gKSB7CgogICAgICAgICMgdXBkYXRlIHNlc3Npb24KICAgICAg
ICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRl
U2Vzc2lvbklEKAogICAgICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAog
ICAgICAgICAgICBLZXkgICAgICAgPT4gJFByZWZlcmVuY2VzS2V5LAogICAgICAgICAgICBWYWx1
ZSAgICAgPT4gJFNlbGYtPntGaWx0ZXJ9LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHBy
ZWZlcmVuY2VzCiAgICAgICAgaWYgKCAhJENvbmZpZ09iamVjdC0+R2V0KCdEZW1vU3lzdGVtJykg
KSB7CiAgICAgICAgICAgICRVc2VyT2JqZWN0LT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAg
ICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBLZXkgICAgPT4g
JFByZWZlcmVuY2VzS2V5LAogICAgICAgICAgICAgICAgVmFsdWUgID0+ICRTZWxmLT57RmlsdGVy
fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2Vs
Zi0+e0ZpbHRlcn0gPSAkU2VsZi0+eyRQcmVmZXJlbmNlc0tleX0gfHwgJFNlbGYtPntDb25maWd9
LT57RmlsdGVyfSB8fCAnQWxsJzsKICAgIH0KCiAgICAjIFRoZSBhZGRpdGlvbmFsIGZpbHRlciBh
cmUgYXQgdGhlIG1vbWVudCBvbmx5IHJlbGV2YW50IGZvciB0aGUgY3VzdG9tZXIgdXNlciBpbmZv
cm1hdGlvbiBjZW50ZXIuCiAgICBpZiAoICRTZWxmLT57QWN0aW9ufSBlcSAnQWdlbnRDdXN0b21l
clVzZXJJbmZvcm1hdGlvbkNlbnRlcicgKSB7CgogICAgICAgICMgUmVtZW1iZXIgdGhlIHNlbGVj
dGVkIGZpbHRlciBpbiB0aGUgc2Vzc2lvbi4KICAgICAgICBpZiAoICRTZWxmLT57QWRkaXRpb25h
bEZpbHRlcn0gKSB7CgogICAgICAgICAgICAjIHVwZGF0ZSBzZXNzaW9uCiAgICAgICAgICAgICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5VcGRhdGVTZXNz
aW9uSUQoCiAgICAgICAgICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAog
ICAgICAgICAgICAgICAgS2V5ICAgICAgID0+ICRBZGRpdGlvbmFsUHJlZmVyZW5jZXNLZXksCiAg
ICAgICAgICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntBZGRpdGlvbmFsRmlsdGVyfSwKICAg
ICAgICAgICAgKTsKCiAgICAgICAgICAgICMgdXBkYXRlIHByZWZlcmVuY2VzCiAgICAgICAgICAg
IGlmICggISRDb25maWdPYmplY3QtPkdldCgnRGVtb1N5c3RlbScpICkgewogICAgICAgICAgICAg
ICAgJFVzZXJPYmplY3QtPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICAgICAgICAgIFVzZXJJ
RCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgID0+ICRBZGRp
dGlvbmFsUHJlZmVyZW5jZXNLZXksCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgID0+ICRTZWxm
LT57QWRkaXRpb25hbEZpbHRlcn0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAg
ICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+e0FkZGl0aW9uYWxGaWx0
ZXJ9CiAgICAgICAgICAgICAgICA9ICRTZWxmLT57JEFkZGl0aW9uYWxQcmVmZXJlbmNlc0tleX0g
fHwgJFNlbGYtPntDb25maWd9LT57QWRkaXRpb25hbEZpbHRlcn0gfHwgJ0Fzc2lnbmVkVG9DdXN0
b21lclVzZXInOwogICAgICAgIH0KICAgIH0KCiAgICAkU2VsZi0+e1ByZWZLZXlTaG93bn0gICA9
ICdVc2VyRGFzaGJvYXJkUHJlZicgLiAkU2VsZi0+e05hbWV9IC4gJy1TaG93bic7CiAgICAkU2Vs
Zi0+e1ByZWZLZXlDb2x1bW5zfSA9ICdVc2VyRGFzaGJvYXJkUHJlZicgLiAkU2VsZi0+e05hbWV9
IC4gJy1Db2x1bW5zJzsKICAgICRTZWxmLT57UGFnZVNob3dufSAgICAgID0gJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT57ICRTZWxmLT57UHJlZktleVNo
b3dufSB9CiAgICAgICAgfHwgJFNlbGYtPntDb25maWd9LT57TGltaXR9OwogICAgJFNlbGYtPntT
dGFydEhpdH0gPSBpbnQoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdGFydEhp
dCcgKSB8fCAxICk7CgogICAgIyBkZWZpbmUgZmlsdGVyYWJsZSBjb2x1bW5zCiAgICAkU2VsZi0+
e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9ID0gewogICAgICAgICdPd25lcicgICAgICAgICAgPT4g
MSwKICAgICAgICAnUmVzcG9uc2libGUnICAgID0+IDEsCiAgICAgICAgJ0N1c3RvbWVySUQnICAg
ICA9PiAxLAogICAgICAgICdDdXN0b21lclVzZXJJRCcgPT4gMSwKICAgICAgICAnU3RhdGUnICAg
ICAgICAgID0+IDEsCiAgICAgICAgJ1F1ZXVlJyAgICAgICAgICA9PiAxLAogICAgICAgICdQcmlv
cml0eScgICAgICAgPT4gMSwKICAgICAgICAnVHlwZScgICAgICAgICAgID0+IDEsCiAgICAgICAg
J0xvY2snICAgICAgICAgICA9PiAxLAogICAgICAgICdTZXJ2aWNlJyAgICAgICAgPT4gMSwKICAg
ICAgICAnU0xBJyAgICAgICAgICAgID0+IDEsCiAgICB9OwoKICAgICMgaGFzaCB3aXRoIGFsbCB2
YWxpZCBzb3J0YWJsZSBjb2x1bW5zICh0YWtlbiBmcm9tIFRpY2tldFNlYXJjaCkKICAgICMgU29y
dEJ5ICA9PiAnQWdlJywgICAjIENyZWF0ZWR8T3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxT
dGF0ZXxUaWNrZXROdW1iZXJ8UXVldWUKICAgICMgfFByaW9yaXR5fFR5cGV8TG9ja3xUaXRsZXxT
ZXJ2aWNlfFNMQXxDaGFuZ2VkfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAjIHwgRXNj
YWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRp
b25UaW1lCiAgICAkU2VsZi0+e1ZhbGlkU29ydGFibGVDb2x1bW5zfSA9IHsKICAgICAgICAnQWdl
JyAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnQ3JlYXRlZCcgICAgICAgICAgICAg
ICAgPT4gMSwKICAgICAgICAnT3duZXInICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAn
UmVzcG9uc2libGUnICAgICAgICAgICAgPT4gMSwKICAgICAgICAnQ3VzdG9tZXJJRCcgICAgICAg
ICAgICAgPT4gMSwKICAgICAgICAnU3RhdGUnICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAg
ICAnVGlja2V0TnVtYmVyJyAgICAgICAgICAgPT4gMSwKICAgICAgICAnUXVldWUnICAgICAgICAg
ICAgICAgICAgPT4gMSwKICAgICAgICAnUHJpb3JpdHknICAgICAgICAgICAgICAgPT4gMSwKICAg
ICAgICAnVHlwZScgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnTG9jaycgICAgICAg
ICAgICAgICAgICAgPT4gMSwKICAgICAgICAnVGl0bGUnICAgICAgICAgICAgICAgICAgPT4gMSwK
ICAgICAgICAnU2VydmljZScgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnQ2hhbmdlZCcg
ICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnU0xBJyAgICAgICAgICAgICAgICAgICAgPT4g
MSwKICAgICAgICAnUGVuZGluZ1RpbWUnICAgICAgICAgICAgPT4gMSwKICAgICAgICAnRXNjYWxh
dGlvblRpbWUnICAgICAgICAgPT4gMSwKICAgICAgICAnRXNjYWxhdGlvblVwZGF0ZVRpbWUnICAg
PT4gMSwKICAgICAgICAnRXNjYWxhdGlvblJlc3BvbnNlVGltZScgPT4gMSwKICAgICAgICAnRXNj
YWxhdGlvblNvbHV0aW9uVGltZScgPT4gMSwKICAgIH07CgogICAgIyByZW1vdmUgQ3VzdG9tZXJJ
RCBpZiBDdXN0b21lciBJbmZvcm1hdGlvbiBDZW50ZXIKICAgIGlmICggJFNlbGYtPntBY3Rpb259
IGVxICdBZ2VudEN1c3RvbWVySW5mb3JtYXRpb25DZW50ZXInICkgewogICAgICAgIGRlbGV0ZSAk
U2VsZi0+e0NvbHVtbkZpbHRlcn0tPntDdXN0b21lcklEfTsKICAgICAgICBkZWxldGUgJFNlbGYt
PntHZXRDb2x1bW5GaWx0ZXJ9LT57Q3VzdG9tZXJJRH07CiAgICAgICAgZGVsZXRlICRTZWxmLT57
R2V0Q29sdW1uRmlsdGVyU2VsZWN0fS0+e0N1c3RvbWVySUR9OwogICAgICAgIGRlbGV0ZSAkU2Vs
Zi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57Q3VzdG9tZXJJRH07CiAgICAgICAgZGVsZXRl
ICRTZWxmLT57VmFsaWRTb3J0YWJsZUNvbHVtbnN9LT57Q3VzdG9tZXJJRH07CiAgICB9CiAgICBl
bHNpZiAoCiAgICAgICAgJFNlbGYtPntBY3Rpb259IGVxICdBZ2VudEN1c3RvbWVyVXNlckluZm9y
bWF0aW9uQ2VudGVyJwogICAgICAgICYmICRTZWxmLT57QWRkaXRpb25hbEZpbHRlcn0gZXEgJ0Fz
c2lnbmVkVG9DdXN0b21lclVzZXInCiAgICAgICAgKQogICAgewoKICAgICAgICBmb3IgbXkgJERl
bGV0ZUNvbHVtbkZpbHRlciAocXcoQ3VzdG9tZXJVc2VyTG9naW4gQ3VzdG9tZXJVc2VyTG9naW5S
YXcpKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkU2VsZi0+e0NvbHVtbkZpbHRlcn0tPnskRGVsZXRl
Q29sdW1uRmlsdGVyfTsKICAgICAgICAgICAgZGVsZXRlICRTZWxmLT57R2V0Q29sdW1uRmlsdGVy
fS0+eyREZWxldGVDb2x1bW5GaWx0ZXJ9OwogICAgICAgIH0KICAgICAgICBkZWxldGUgJFNlbGYt
PntHZXRDb2x1bW5GaWx0ZXJ9LT57Q3VzdG9tZXJVc2VySUR9OwogICAgICAgIGRlbGV0ZSAkU2Vs
Zi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0tPntDdXN0b21lclVzZXJJRH07CiAgICAgICAgZGVs
ZXRlICRTZWxmLT57VmFsaWRGaWx0ZXJhYmxlQ29sdW1uc30tPntDdXN0b21lclVzZXJJRH07CiAg
ICB9CgogICAgJFNlbGYtPntVc2VUaWNrZXRTZXJ2aWNlfSA9ICRDb25maWdPYmplY3QtPkdldCgn
VGlja2V0OjpTZXJ2aWNlJykgfHwgMDsKCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0lzUHJv
Y2Vzc1dpZGdldH0gKSB7CgogICAgICAgICMgZ2V0IHByb2Nlc3MgbWFuYWdlbWVudCBjb25maWd1
cmF0aW9uCiAgICAgICAgJFNlbGYtPntQcm9jZXNzTWFuYWdlbWVudFByb2Nlc3NJRH0KICAgICAg
ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1Byb2Nlc3M6
OkR5bmFtaWNGaWVsZFByb2Nlc3NNYW5hZ2VtZW50UHJvY2Vzc0lEJyk7CiAgICAgICAgJFNlbGYt
PntQcm9jZXNzTWFuYWdlbWVudEFjdGl2aXR5SUR9CiAgICAgICAgICAgID0gJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdQcm9jZXNzOjpEeW5hbWljRmllbGRQcm9jZXNz
TWFuYWdlbWVudEFjdGl2aXR5SUQnKTsKCiAgICAgICAgIyBnZXQgdGhlIGxpc3Qgb2YgcHJvY2Vz
c2VzIGluIHRoZSBzeXN0ZW0KICAgICAgICBteSAkUHJvY2Vzc0xpc3RIYXNoID0gJEtlcm5lbDo6
T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlByb2Nlc3NNYW5hZ2VtZW50OjpQcm9jZXNzJyktPlBy
b2Nlc3NMaXN0KAogICAgICAgICAgICBQcm9jZXNzU3RhdGUgPT4gWyAnQWN0aXZlJywgJ0ZhZGVB
d2F5JywgJ0luYWN0aXZlJyBdLAogICAgICAgICAgICBJbnRlcmZhY2UgICAgPT4gJ2FsbCcsCiAg
ICAgICAgICAgIFNpbGVudCAgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgdXNlIG9u
bHkgdGhlIHByb2Nlc3MgRW50aXR5SURzCiAgICAgICAgQHsgJFNlbGYtPntQcm9jZXNzTGlzdH0g
fSA9IHNvcnQga2V5cyAleyRQcm9jZXNzTGlzdEhhc2h9OwogICAgfQoKICAgIHJldHVybiAkU2Vs
ZjsKfQoKc3ViIFByZWZlcmVuY2VzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87Cgog
ICAgIyBjb25maWd1cmUgY29sdW1ucwogICAgbXkgQENvbHVtbnNFbmFibGVkOwogICAgbXkgQENv
bHVtbnNBdmFpbGFibGU7CiAgICBteSBAQ29sdW1uc0F2YWlsYWJsZU5vdEVuYWJsZWQ7CgogICAg
IyBjaGVjayBmb3IgZGVmYXVsdCBzZXR0aW5ncwogICAgaWYgKAogICAgICAgICRTZWxmLT57Q29u
ZmlnfS0+e0RlZmF1bHRDb2x1bW5zfQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCAkU2Vs
Zi0+e0NvbmZpZ30tPntEZWZhdWx0Q29sdW1uc30gKQogICAgICAgICkKICAgIHsKICAgICAgICBA
Q29sdW1uc0F2YWlsYWJsZSA9IGdyZXAgeyAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0Q29sdW1u
c30tPnskX30gfQogICAgICAgICAgICBrZXlzICV7ICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRD
b2x1bW5zfSB9OwogICAgICAgIEBDb2x1bW5zRW5hYmxlZCA9IGdyZXAgeyAkU2VsZi0+e0NvbmZp
Z30tPntEZWZhdWx0Q29sdW1uc30tPnskX30gZXEgJzInIH0KICAgICAgICAgICAgc29ydCB7ICRT
ZWxmLT5fRGVmYXVsdENvbHVtblNvcnQoKSB9IGtleXMgJXsgJFNlbGYtPntDb25maWd9LT57RGVm
YXVsdENvbHVtbnN9IH07CiAgICB9CgogICAgIyBjaGVjayBpZiB0aGUgdXNlciBoYXMgZmlsdGVy
IHByZWZlcmVuY2VzIGZvciB0aGlzIHdpZGdldAogICAgbXkgJVByZWZlcmVuY2VzID0gJEtlcm5l
bDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0UHJlZmVyZW5jZXMoCiAgICAg
ICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgSlNPTiBvYmpl
Y3QKICAgIG15ICRKU09OT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06
OkpTT04nKTsKCiAgICAjIGlmIHByZWZlcmVuY2Ugc2V0dGluZ3MgYXJlIGF2YWlsYWJsZSwgdGFr
ZSB0aGVtCiAgICBpZiAoICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uc30gfSAp
IHsKCiAgICAgICAgbXkgJENvbHVtbnNFbmFibGVkID0gJEpTT05PYmplY3QtPkRlY29kZSgKICAg
ICAgICAgICAgRGF0YSA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6
TGF5b3V0JyktPnsgJFNlbGYtPntQcmVmS2V5Q29sdW1uc30gfSwKICAgICAgICApOwoKICAgICAg
ICBAQ29sdW1uc0VuYWJsZWQgPSBncmVwIHsgJENvbHVtbnNFbmFibGVkLT57Q29sdW1uc30tPnsk
X30gPT0gMSB9CiAgICAgICAgICAgIGtleXMgJXsgJENvbHVtbnNFbmFibGVkLT57Q29sdW1uc30g
fTsKCiAgICAgICAgaWYgKCAkQ29sdW1uc0VuYWJsZWQtPntPcmRlcn0gJiYgQHsgJENvbHVtbnNF
bmFibGVkLT57T3JkZXJ9IH0gKSB7CiAgICAgICAgICAgIEBDb2x1bW5zRW5hYmxlZCA9IEB7ICRD
b2x1bW5zRW5hYmxlZC0+e09yZGVyfSB9OwogICAgICAgIH0KCiAgICAgICAgIyByZW1vdmUgZHVw
bGljYXRlIGNvbHVtbnMKICAgICAgICBteSAlVW5pcXVlQ29sdW1uczsKICAgICAgICBteSBAQ29s
dW1uc0VuYWJsZWRBdXg7CgogICAgICAgIGZvciBteSAkQ29sdW1uIChAQ29sdW1uc0VuYWJsZWQp
IHsKICAgICAgICAgICAgaWYgKCAhJFVuaXF1ZUNvbHVtbnN7JENvbHVtbn0gKSB7CiAgICAgICAg
ICAgICAgICBwdXNoIEBDb2x1bW5zRW5hYmxlZEF1eCwgJENvbHVtbjsKICAgICAgICAgICAgfQog
ICAgICAgICAgICAkVW5pcXVlQ29sdW1uc3skQ29sdW1ufSA9IDE7CiAgICAgICAgfQoKICAgICAg
ICAjIHNldCBmaWx0ZXJlZCBjb2x1bW4gbGlzdAogICAgICAgIEBDb2x1bW5zRW5hYmxlZCA9IEBD
b2x1bW5zRW5hYmxlZEF1eDsKICAgIH0KCiAgICBteSAlQ29sdW1uczsKICAgIGZvciBteSAkQ29s
dW1uTmFtZSAoIHNvcnQgeyAkYSBjbXAgJGIgfSBAQ29sdW1uc0F2YWlsYWJsZSApIHsKICAgICAg
ICAkQ29sdW1uc3tDb2x1bW5zfS0+eyRDb2x1bW5OYW1lfSA9ICggZ3JlcCB7ICRDb2x1bW5OYW1l
IGVxICRfIH0gQENvbHVtbnNFbmFibGVkICkgPyAxIDogMDsKICAgICAgICBpZiAoICFncmVwIHsg
JF8gZXEgJENvbHVtbk5hbWUgfSBAQ29sdW1uc0VuYWJsZWQgKSB7CiAgICAgICAgICAgIHB1c2gg
QENvbHVtbnNBdmFpbGFibGVOb3RFbmFibGVkLCAkQ29sdW1uTmFtZTsKICAgICAgICB9CiAgICB9
CgogICAgIyByZW1vdmUgQ3VzdG9tZXJJRCBpZiBDdXN0b21lciBJbmZvcm1hdGlvbiBDZW50ZXIK
ICAgIGlmICggJFNlbGYtPntBY3Rpb259IGVxICdBZ2VudEN1c3RvbWVySW5mb3JtYXRpb25DZW50
ZXInICkgewogICAgICAgIGRlbGV0ZSAkQ29sdW1uc3tDb2x1bW5zfS0+e0N1c3RvbWVySUR9Owog
ICAgICAgIEBDb2x1bW5zRW5hYmxlZCAgICAgICAgICAgICA9IGdyZXAgeyAkXyBuZSAnQ3VzdG9t
ZXJJRCcgfSBAQ29sdW1uc0VuYWJsZWQ7CiAgICAgICAgQENvbHVtbnNBdmFpbGFibGVOb3RFbmFi
bGVkID0gZ3JlcCB7ICRfIG5lICdDdXN0b21lcklEJyB9IEBDb2x1bW5zQXZhaWxhYmxlTm90RW5h
YmxlZDsKICAgIH0KCiAgICBteSBAUGFyYW1zID0gKAogICAgICAgIHsKICAgICAgICAgICAgRGVz
YyAgPT4gVHJhbnNsYXRhYmxlKCdTaG93biBUaWNrZXRzJyksCiAgICAgICAgICAgIE5hbWUgID0+
ICRTZWxmLT57UHJlZktleVNob3dufSwKICAgICAgICAgICAgQmxvY2sgPT4gJ09wdGlvbicsCiAg
ICAgICAgICAgIERhdGEgID0+IHsKICAgICAgICAgICAgICAgIDUgID0+ICcgNScsCiAgICAgICAg
ICAgICAgICAxMCA9PiAnMTAnLAogICAgICAgICAgICAgICAgMTUgPT4gJzE1JywKICAgICAgICAg
ICAgICAgIDIwID0+ICcyMCcsCiAgICAgICAgICAgICAgICAyNSA9PiAnMjUnLAogICAgICAgICAg
ICAgICAgNTAgPT4gJzUwJywKICAgICAgICAgICAgICAgIDc1ID0+ICc3NScsCiAgICAgICAgICAg
IH0sCiAgICAgICAgICAgIFNlbGVjdGVkSUQgID0+ICRTZWxmLT57UGFnZVNob3dufSwKICAgICAg
ICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAg
RGVzYyAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1Nob3duIENvbHVtbnMnKSwKICAgICAg
ICAgICAgTmFtZSAgICAgICAgICAgICA9PiAkU2VsZi0+e1ByZWZLZXlDb2x1bW5zfSwKICAgICAg
ICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnQWxsb2NhdGlvbkxpc3QnLAogICAgICAgICAgICBD
b2x1bW5zICAgICAgICAgID0+ICRKU09OT2JqZWN0LT5FbmNvZGUoIERhdGEgPT4gXCVDb2x1bW5z
ICksCiAgICAgICAgICAgIENvbHVtbnNFbmFibGVkICAgPT4gJEpTT05PYmplY3QtPkVuY29kZSgg
RGF0YSA9PiBcQENvbHVtbnNFbmFibGVkICksCiAgICAgICAgICAgIENvbHVtbnNBdmFpbGFibGUg
PT4gJEpTT05PYmplY3QtPkVuY29kZSggRGF0YSA9PiBcQENvbHVtbnNBdmFpbGFibGVOb3RFbmFi
bGVkICksCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMSwKICAgICAgICB9LAogICAg
KTsKCiAgICByZXR1cm4gQFBhcmFtczsKfQoKc3ViIENvbmZpZyB7CiAgICBteSAoICRTZWxmLCAl
UGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgaWYgZnJvbnRlbmQgbW9kdWxlIG9mIGxpbmsgaXMg
dXNlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntMaW5rfSAmJiAkU2VsZi0+e0NvbmZpZ30t
PntMaW5rfSA9fiAvQWN0aW9uPSguKz8pKFsmO10uKz98KSQvICkgewogICAgICAgIG15ICRBY3Rp
b24gPSAkMTsKICAgICAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycp
LT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259ICkgewogICAgICAgICAgICAkU2Vs
Zi0+e0NvbmZpZ30tPntMaW5rfSA9ICcnOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gKAog
ICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAoKICAgICAgICAjIERvbid0IGNhY2hlIHRoaXMg
Z2xvYmFsbHkgYXMgaXQgY29udGFpbnMgSlMgdGhhdCBpcyBub3QgaW5zaWRlIG9mIHRoZSBIVE1M
LgogICAgICAgIENhY2hlVFRMID0+IHVuZGVmLAogICAgICAgIENhY2hlS2V5ID0+IHVuZGVmLAog
ICAgKTsKfQoKc3ViIEZpbHRlckNvbnRlbnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBA
XzsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtGaWx0ZXJDb2x1bW59OwoKICAgIG15ICRUaWNrZXRJ
RHM7CiAgICBteSAkSGVhZGVyQ29sdW1uID0gJFBhcmFte0ZpbHRlckNvbHVtbn07CiAgICBteSBA
T3JpZ2luYWxWaWV3YWJsZVRpY2tldHM7CgogICAgaWYgKAogICAgICAgICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnT25seVZhbHVlc09uVGlja2V0JykKICAgICAgICB8
fCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lcklEJwogICAgICAgIHx8ICRIZWFkZXJDb2x1bW4g
ZXEgJ0N1c3RvbWVyVXNlcklEJwogICAgICAgICkKICAgIHsKICAgICAgICBteSAlU2VhcmNoUGFy
YW1zICAgICAgICA9ICRTZWxmLT5fU2VhcmNoUGFyYW1zR2V0KCVQYXJhbSk7CiAgICAgICAgbXkg
JVRpY2tldFNlYXJjaCAgICAgICAgPSAleyAkU2VhcmNoUGFyYW1ze1RpY2tldFNlYXJjaH0gfTsK
ICAgICAgICBteSAlVGlja2V0U2VhcmNoU3VtbWFyeSA9ICV7ICRTZWFyY2hQYXJhbXN7VGlja2V0
U2VhcmNoU3VtbWFyeX0gfTsKCiAgICAgICAgIyBhZGQgcHJvY2VzcyBtYW5hZ2VtZW50IHNlYXJj
aCB0ZXJtcwogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSAp
IHsKICAgICAgICAgICAgJFRpY2tldFNlYXJjaHsgJ0R5bmFtaWNGaWVsZF8nIC4gJFNlbGYtPntQ
cm9jZXNzTWFuYWdlbWVudFByb2Nlc3NJRH0gfSA9IHsKICAgICAgICAgICAgICAgIExpa2UgPT4g
JFNlbGYtPntQcm9jZXNzTGlzdH0sCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAj
IEFkZCB0aGUgYWRkaXRpb25hbCBmaWx0ZXIgdG8gdGhlIHRpY2tldCBzZWFyY2ggcGFyYW0uCiAg
ICAgICAgaWYgKCAkU2VsZi0+e0FkZGl0aW9uYWxGaWx0ZXJ9ICkgewogICAgICAgICAgICAlVGlj
a2V0U2VhcmNoID0gKAogICAgICAgICAgICAgICAgJVRpY2tldFNlYXJjaCwKICAgICAgICAgICAg
ICAgICV7ICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyAkU2VsZi0+e0FkZGl0aW9uYWxGaWx0ZXJ9IH0g
fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTZWxmLT57Q29uZmln
fS0+e0lzUHJvY2Vzc1dpZGdldH0gfHwgSXNBcnJheVJlZldpdGhEYXRhKCAkU2VsZi0+e1Byb2Nl
c3NMaXN0fSApICkgewogICAgICAgICAgICBAT3JpZ2luYWxWaWV3YWJsZVRpY2tldHMgPSAkS2Vy
bmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldFNlYXJjaCgKICAg
ICAgICAgICAgICAgICVUaWNrZXRTZWFyY2gsCiAgICAgICAgICAgICAgICAleyAkVGlja2V0U2Vh
cmNoU3VtbWFyeXsgJFNlbGYtPntGaWx0ZXJ9IH0gfSwKICAgICAgICAgICAgICAgIFJlc3VsdCA9
PiAnQVJSQVknLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRIZWFk
ZXJDb2x1bW4gPX4gbS9eRHluYW1pY0ZpZWxkXy8gJiYgIWRlZmluZWQgJFNlbGYtPntEeW5hbWlj
RmllbGR9ICkgewoKICAgICAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2Ny
ZWVuCiAgICAgICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2Vy
bmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAg
ICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgICAgIE9iamVjdFR5cGUgPT4gWydUaWNrZXQn
XSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNvbHVtbiB2YWx1ZXMgZm9yIHRvIGJ1aWxk
IHRoZSBmaWx0ZXJzIGxhdGVyCiAgICBteSAkQ29sdW1uVmFsdWVzID0gJFNlbGYtPl9HZXRDb2x1
bW5WYWx1ZXMoCiAgICAgICAgT3JpZ2luYWxUaWNrZXRJRHMgPT4gXEBPcmlnaW5hbFZpZXdhYmxl
VGlja2V0cywKICAgICAgICBIZWFkZXJDb2x1bW4gICAgICA9PiAkSGVhZGVyQ29sdW1uLAogICAg
KTsKCiAgICAjIG1ha2Ugc3VyZSB0aGF0IGV2ZW4gYSB2YWx1ZSBvZiAwIGlzIHBhc3NlZCBhcyBh
IFNlbGVjdGVkIHZhbHVlLCBlLmcuIFVuY2hlY2tlZCB2YWx1ZSBvZiBhCiAgICAjIGNoZWNrLWJv
eCBkeW5hbWljIGZpZWxkLgogICAgbXkgJFNlbGVjdGVkVmFsdWUgPSBkZWZpbmVkICRTZWxmLT57
R2V0Q29sdW1uRmlsdGVyfS0+eyAkSGVhZGVyQ29sdW1uIC4gJFNlbGYtPntOYW1lfSB9CiAgICAg
ICAgPyAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0tPnsgJEhlYWRlckNvbHVtbiAuICRTZWxmLT57
TmFtZX0gfQogICAgICAgIDogJyc7CgogICAgbXkgJExhYmVsQ29sdW1uID0gJEhlYWRlckNvbHVt
bjsKICAgIGlmICggJExhYmVsQ29sdW1uID1+IG17IFxBIER5bmFtaWNGaWVsZF8gfXhtcyApIHsK
CiAgICAgICAgbXkgJER5bmFtaWNGaWVsZENvbmZpZzsKICAgICAgICAkTGFiZWxDb2x1bW4gPX4g
c3tcQSBEeW5hbWljRmllbGRfIH17fXhtczsKCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAg
IGZvciBteSAkREZDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAg
ICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCRERkNvbmZpZyk7
CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICRERkNvbmZpZy0+e05hbWV9IG5lICRM
YWJlbENvbHVtbjsKCiAgICAgICAgICAgICREeW5hbWljRmllbGRDb25maWcgPSAkREZDb25maWc7
CiAgICAgICAgICAgIGxhc3QgRFlOQU1JQ0ZJRUxEOwogICAgICAgIH0KICAgICAgICBpZiAoIElz
SGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpICkgewogICAgICAgICAgICAkTGFi
ZWxDb2x1bW4gPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9OwogICAgICAgIH0KICAgIH0K
CiAgICAjIHZhcmlhYmxlIHRvIHNhdmUgdGhlIGZpbHRlcidzIEhUTUwgY29kZQogICAgbXkgJENv
bHVtbkZpbHRlckpTT04gPSAkU2VsZi0+X0NvbHVtbkZpbHRlckpTT04oCiAgICAgICAgQ29sdW1u
TmFtZSAgICA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJExhYmVs
Q29sdW1uLAogICAgICAgIENvbHVtblZhbHVlcyAgPT4gJENvbHVtblZhbHVlcy0+eyRIZWFkZXJD
b2x1bW59LAogICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFNlbGVjdGVkVmFsdWUsCiAgICAgICAg
RGFzaGJvYXJkTmFtZSA9PiAkU2VsZi0+e05hbWV9LAogICAgKTsKCiAgICByZXR1cm4gJENvbHVt
bkZpbHRlckpTT047Cgp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87
CgogICAgbXkgJVNlYXJjaFBhcmFtcyAgICAgICAgPSAkU2VsZi0+X1NlYXJjaFBhcmFtc0dldCgl
UGFyYW0pOwogICAgbXkgQENvbHVtbnMgICAgICAgICAgICAgPSBAeyAkU2VhcmNoUGFyYW1ze0Nv
bHVtbnN9IH07CiAgICBteSAlVGlja2V0U2VhcmNoICAgICAgICA9ICV7ICRTZWFyY2hQYXJhbXN7
VGlja2V0U2VhcmNofSB9OwogICAgbXkgJVRpY2tldFNlYXJjaFN1bW1hcnkgPSAleyAkU2VhcmNo
UGFyYW1ze1RpY2tldFNlYXJjaFN1bW1hcnl9IH07CgogICAgIyBBZGQgdGhlIGFkZGl0aW9uYWwg
ZmlsdGVyIHRvIHRoZSB0aWNrZXQgc2VhcmNoIHBhcmFtLgogICAgaWYgKCAkU2VsZi0+e0FkZGl0
aW9uYWxGaWx0ZXJ9ICkgewogICAgICAgICVUaWNrZXRTZWFyY2ggPSAoCiAgICAgICAgICAgICVU
aWNrZXRTZWFyY2gsCiAgICAgICAgICAgICV7ICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyAkU2VsZi0+
e0FkZGl0aW9uYWxGaWx0ZXJ9IH0gfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRDYWNoZUtl
eSA9IGpvaW4gJy0nLCAkU2VsZi0+e05hbWV9LCAkU2VsZi0+e0FjdGlvbn0sICRTZWxmLT57UGFn
ZVNob3dufSwgJFNlbGYtPntTdGFydEhpdH0sICRTZWxmLT57VXNlcklEfTsKICAgIG15ICRDYWNo
ZUNvbHVtbnMgPSBqb2luKAogICAgICAgICcsJywKICAgICAgICBtYXAgeyAkXyAuICc9PicgLiAk
U2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0tPnskX30gfSBzb3J0IGtleXMgJXsgJFNlbGYt
PntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9IH0KICAgICk7CiAgICAkQ2FjaGVLZXkgLj0gJy0nIC4g
JENhY2hlQ29sdW1ucyBpZiAkQ2FjaGVDb2x1bW5zOwoKICAgICMgSWYgU29ydEJ5IHBhcmFtZXRl
ciBpcyBub3QgZGVmaW5lZCwgc2V0IHRvIHZhbHVlIGZyb20gJVRpY2tldFNlYXJjaCwgb3RoZXJ3
aXNlIHNldCB0byBkZWZhdWx0IHZhbHVlICdBZ2UnLgogICAgaWYgKCAhZGVmaW5lZCAkU2VsZi0+
e1NvcnRCeX0gKSB7CiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXRTZWFyY2h7U29ydEJ5fSAm
JiAkU2VsZi0+e1ZhbGlkU29ydGFibGVDb2x1bW5zfS0+eyAkVGlja2V0U2VhcmNoe1NvcnRCeX0g
fSApIHsKICAgICAgICAgICAgJFNlbGYtPntTb3J0Qnl9ID0gJFRpY2tldFNlYXJjaHtTb3J0Qnl9
OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPntTb3J0Qnl9ID0g
J0FnZSc7CiAgICAgICAgfQogICAgfQoKICAgICRDYWNoZUtleSAuPSAnLScgLiAkU2VsZi0+e1Nv
cnRCeX0gaWYgZGVmaW5lZCAkU2VsZi0+e1NvcnRCeX07CgogICAgIyBTZXQgT3JkZXJCeSBwYXJh
bWV0ZXIgdG8gdGhlIHNlYXJjaC4KICAgIG15ICRJc0NhY2hlRm9yVXNlID0gMDsKICAgIGlmICgg
JFNlbGYtPntPcmRlckJ5fSApIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57QWRk
RmlsdGVyc30KICAgICAgICAgICAgfHwgJFNlbGYtPntUYWJBY3Rpb259CiAgICAgICAgICAgIHx8
ICFkZWZpbmVkICRTZWxmLT57U29ydGluZ0NvbHVtbn0KICAgICAgICAgICAgfHwgJFNlbGYtPntT
b3J0aW5nQ29sdW1ufSBuZSAkU2VsZi0+e1NvcnRCeX0KICAgICAgICAgICAgKQogICAgICAgIHsK
ICAgICAgICAgICAgJFRpY2tldFNlYXJjaHtPcmRlckJ5fSA9ICRTZWxmLT57T3JkZXJCeX07CiAg
ICAgICAgICAgICRJc0NhY2hlRm9yVXNlID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gPSAkU2VsZi0+e09yZGVyQnl9IGVxICdV
cCcgPyAnRG93bicgOiAnVXAnOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNldCBvcmRlciBmb3Ig
YmxvY2tzLgogICAgJFRpY2tldFNlYXJjaHtPcmRlckJ5fSA9ICRUaWNrZXRTZWFyY2h7T3JkZXJC
eX0gfHwgJ0Rvd24nOwoKICAgICMgU2V0IHByZXZpb3VzIHNvcnRpbmcgY29sdW1uIHBhcmFtZXRl
ciBmb3IgYWxsIGNvbHVtbnMuCiAgICAkUGFyYW17U29ydGluZ0NvbHVtbn0gPSAkU2VsZi0+e1Nv
cnRCeX07CgogICAgJENhY2hlS2V5IC49ICctJyAuICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gaWYg
ZGVmaW5lZCAkVGlja2V0U2VhcmNoe09yZGVyQnl9OwoKICAgICMgQ3VzdG9tZXJJbmZvcm1hdGlv
bkNlbnRlciBzaG93cyBkYXRhIHBlciBDdXN0b21lcklECiAgICBpZiAoICRQYXJhbXtDdXN0b21l
cklEfSApIHsKICAgICAgICAkQ2FjaGVLZXkgLj0gJy0nIC4gJFBhcmFte0N1c3RvbWVySUR9Owog
ICAgfQoKICAgICMgQ3VzdG9tZXJVc2VySW5mb3JtYXRpb25DZW50ZXIgc2hvd3MgZGF0YSBwZXIg
Q3VzdG9tZXJVc2VySUQKICAgIGlmICggJFBhcmFte0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAg
ICAkQ2FjaGVLZXkgLj0gJy0nIC4gJFBhcmFte0N1c3RvbWVyVXNlcklEfTsKICAgIH0KCiAgICAj
IEFkZCB0aGUgYWRkaXRpb25hbCBmaWx0ZXIgYWx3YXlzIHRvIHRoZSBjYWNoZSBrZXksIGlmIGEg
YWRkaXRpb25hbCBmaWx0ZXIgZXhpc3RzLgogICAgaWYgKCAkU2VsZi0+e0FkZGl0aW9uYWxGaWx0
ZXJ9ICkgewogICAgICAgICRDYWNoZUtleSAuPSAnLScgLiAkU2VsZi0+e0FkZGl0aW9uYWxGaWx0
ZXJ9OwogICAgfQoKICAgICMgZ2V0IGNhY2hlIG9iamVjdAogICAgbXkgJENhY2hlT2JqZWN0ID0g
JEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CgogICAgIyBjaGVjayBj
YWNoZQogICAgbXkgJFRpY2tldElEcyA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgIFR5cGUg
PT4gJ0Rhc2hib2FyZCcsCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXkgLiAnLScgLiAkU2VsZi0+
e0ZpbHRlcn0gLiAnLUxpc3QnLAogICAgKTsKCiAgICAjIGZpbmQgYW5kIHNob3cgdGlja2V0IGxp
c3QKICAgIG15ICRDYWNoZVVzZWQgPSAxOwoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15
ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0
Jyk7CgogICAgaWYgKCAhJFRpY2tldElEcyApIHsKCiAgICAgICAgIyBxdW90ZSBhbGwgQ3VzdG9t
ZXJJRHMKICAgICAgICBpZiAoICRUaWNrZXRTZWFyY2h7Q3VzdG9tZXJJRH0gKSB7CiAgICAgICAg
ICAgICRUaWNrZXRTZWFyY2h7Q3VzdG9tZXJJRH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6
OlN5c3RlbTo6REInKS0+UXVlcnlTdHJpbmdFc2NhcGUoCiAgICAgICAgICAgICAgICBRdWVyeVN0
cmluZyA9PiAkVGlja2V0U2VhcmNoe0N1c3RvbWVySUR9LAogICAgICAgICAgICApOwogICAgICAg
IH0KCiAgICAgICAgIyBhZGQgc29ydCBieSBwYXJhbWV0ZXIgdG8gdGhlIHNlYXJjaAogICAgICAg
IGlmICggIWRlZmluZWQgJFRpY2tldFNlYXJjaHtTb3J0Qnl9IHx8ICEkU2VsZi0+e1ZhbGlkU29y
dGFibGVDb2x1bW5zfS0+eyAkVGlja2V0U2VhcmNoe1NvcnRCeX0gfSApIHsKICAgICAgICAgICAg
aWYgKCAkU2VsZi0+e1NvcnRCeX0gJiYgJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnsg
JFNlbGYtPntTb3J0Qnl9IH0gKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0U2VhcmNoe1NvcnRC
eX0gPSAkU2VsZi0+e1NvcnRCeX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICAgICAkVGlja2V0U2VhcmNoe1NvcnRCeX0gPSAnQWdlJzsKICAgICAgICAgICAg
fQogICAgICAgIH0KCiAgICAgICAgJENhY2hlVXNlZCA9ICRJc0NhY2hlRm9yVXNlID8gMSA6IDA7
CgogICAgICAgICMgYWRkIHByb2Nlc3MgbWFuYWdlbWVudCBzZWFyY2ggdGVybXMKICAgICAgICBp
ZiAoICRTZWxmLT57Q29uZmlnfS0+e0lzUHJvY2Vzc1dpZGdldH0gKSB7CiAgICAgICAgICAgICRU
aWNrZXRTZWFyY2h7ICdEeW5hbWljRmllbGRfJyAuICRTZWxmLT57UHJvY2Vzc01hbmFnZW1lbnRQ
cm9jZXNzSUR9IH0gPSB7CiAgICAgICAgICAgICAgICBMaWtlID0+ICRTZWxmLT57UHJvY2Vzc0xp
c3R9LAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgbXkgQFRpY2tldElEc0FycmF5
OwogICAgICAgIGlmICggISRTZWxmLT57Q29uZmlnfS0+e0lzUHJvY2Vzc1dpZGdldH0gfHwgSXNB
cnJheVJlZldpdGhEYXRhKCAkU2VsZi0+e1Byb2Nlc3NMaXN0fSApICkgewoKICAgICAgICAgICAg
IyBDb3B5IG9yaWdpbmFsIGNvbHVtbiBmaWx0ZXIuCiAgICAgICAgICAgIG15ICVDb2x1bW5GaWx0
ZXIgPSAleyAkU2VsZi0+e0NvbHVtbkZpbHRlcn0gfHwge30gfTsKCiAgICAgICAgICAgICMgQ2hh
bmdlIGZpbHRlciBuYW1lIGFjY29yZGluZ2x5LgogICAgICAgICAgICBteSAkRmlsdGVyOwogICAg
ICAgICAgICBpZiAoICRTZWxmLT57RmlsdGVyfSBlcSAnTXlRdWV1ZXMnICkgewogICAgICAgICAg
ICAgICAgJEZpbHRlciA9ICdRdWV1ZUlEcyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxz
aWYgKCAkU2VsZi0+e0ZpbHRlcn0gZXEgJ015U2VydmljZXMnICkgewogICAgICAgICAgICAgICAg
JEZpbHRlciA9ICdTZXJ2aWNlSURzJzsKCiAgICAgICAgICAgICAgICBpZiAoICRDb2x1bW5GaWx0
ZXJ7UXVldWVJRHN9ICkgewogICAgICAgICAgICAgICAgICAgICRUaWNrZXRTZWFyY2hTdW1tYXJ5
eyAkU2VsZi0+e0ZpbHRlcn0gfS0+e1F1ZXVlSURzfSA9ICRDb2x1bW5GaWx0ZXJ7UXVldWVJRHN9
OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFNl
bGYtPntGaWx0ZXJ9IGVxICdSZXNwb25zaWJsZScgKSB7CiAgICAgICAgICAgICAgICAkRmlsdGVy
ID0gJ1Jlc3BvbnNpYmxlSURzJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRT
ZWxmLT57RmlsdGVyfSBlcSAnTG9ja2VkJyApIHsKICAgICAgICAgICAgICAgICRGaWx0ZXIgPSAn
TG9ja0lEcyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgSGFuZGxlIGNhc2VzIGZvciBm
aWx0ZXIgY29sdW1ucyB0byBwcmVzZXJ2ZSBmaWx0ZXIgdmFsdWUgaW4gb3RoZXIgdGFiIGFjdGlv
bnMuCiAgICAgICAgICAgIGlmICggJENvbHVtbkZpbHRlcntMb2NrSURzfSApIHsKICAgICAgICAg
ICAgICAgICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyAkU2VsZi0+e0ZpbHRlcn0gfS0+e0xvY2tJRHN9
ID0gJENvbHVtbkZpbHRlcntMb2NrSURzfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNp
ZiAoICRDb2x1bW5GaWx0ZXJ7T3duZXJJRHN9ICkgewogICAgICAgICAgICAgICAgJFRpY2tldFNl
YXJjaFN1bW1hcnl7ICRTZWxmLT57RmlsdGVyfSB9LT57T3duZXJJRHN9ID0gJENvbHVtbkZpbHRl
cntPd25lcklEc307CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgRmlsdGVyIGlzIHVzZWQg
YW5kIGlzIG5vdCBpbiB1c2VyIHByZWZlcmVkIHZhbHVlcywgc2hvdyBubyByZXN1bHRzLgogICAg
ICAgICAgICAjIFNlZSBidWcjMTI4MDggKCBodHRwczovL2J1Z3Mub3Rycy5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyODA4ICkuCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRGaWx0ZXIK
ICAgICAgICAgICAgICAgICYmIElzQXJyYXlSZWZXaXRoRGF0YSggJFRpY2tldFNlYXJjaFN1bW1h
cnl7ICRTZWxmLT57RmlsdGVyfSB9LT57JEZpbHRlcn0gKQogICAgICAgICAgICAgICAgJiYgSXNB
cnJheVJlZldpdGhEYXRhKCAkQ29sdW1uRmlsdGVyeyRGaWx0ZXJ9ICkKICAgICAgICAgICAgICAg
ICYmICFncmVwIHsgJENvbHVtbkZpbHRlcnskRmlsdGVyfS0+WzBdID09ICRfIH0gQHsgJFRpY2tl
dFNlYXJjaFN1bW1hcnl7ICRTZWxmLT57RmlsdGVyfSB9LT57JEZpbHRlcn0gfQogICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBAVGlja2V0SURzQXJyYXkgPSAo
KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBFeGVjdXRlIHNlYXJjaC4KICAgICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICAgICBAVGlja2V0SURzQXJyYXkgPSAkVGlja2V0T2JqZWN0
LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAg
ICAgICAgICAgICAgICAgICAgJVRpY2tldFNlYXJjaCwKICAgICAgICAgICAgICAgICAgICAleyAk
VGlja2V0U2VhcmNoU3VtbWFyeXsgJFNlbGYtPntGaWx0ZXJ9IH0gfSwKICAgICAgICAgICAgICAg
ICAgICAlQ29sdW1uRmlsdGVyLAogICAgICAgICAgICAgICAgICAgIExpbWl0ID0+ICRTZWxmLT57
UGFnZVNob3dufSArICRTZWxmLT57U3RhcnRIaXR9IC0gMSwKICAgICAgICAgICAgICAgICk7CiAg
ICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJFRpY2tldElEcyA9IFxAVGlja2V0SURzQXJy
YXk7CiAgICB9CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJFN1bW1hcnkgPSAkQ2FjaGVPYmpl
Y3QtPkdldCgKICAgICAgICBUeXBlID0+ICdEYXNoYm9hcmQnLAogICAgICAgIEtleSAgPT4gJENh
Y2hlS2V5IC4gJy1TdW1tYXJ5JywKICAgICk7CgogICAgIyBJZiBubyBjYWNoZSBvciBuZXcgbGlz
dCByZXN1bHQsIGRvIGNvdW50IGxvb2t1cC4KICAgIGlmICggISRTdW1tYXJ5IHx8ICEkQ2FjaGVV
c2VkICkgewoKICAgICAgICAjIERlZmluZSB0aGUgc3VtbWFyeSB0eXBlcyBmb3Igd2hpY2ggbm8g
Y291bnQgaXMgbmVlZGVkLCBiZWNhdXNlIHdlIGhhdmUgbm8gb3V0cHV0LgogICAgICAgIG15ICVM
b29rdXBOb0NvdW50U3VtbWFyeVR5cGUgPSAoCiAgICAgICAgICAgIEFzc2lnbmVkVG9DdXN0b21l
clVzZXIgICAgPT4gMSwKICAgICAgICAgICAgQWNjZXNzaWJsZUZvckN1c3RvbWVyVXNlciA9PiAx
LAogICAgICAgICk7CgogICAgICAgIFRZUEU6CiAgICAgICAgZm9yIG15ICRUeXBlICggc29ydCBr
ZXlzICVUaWNrZXRTZWFyY2hTdW1tYXJ5ICkgewogICAgICAgICAgICBuZXh0IFRZUEUgaWYgJExv
b2t1cE5vQ291bnRTdW1tYXJ5VHlwZXskVHlwZX07CiAgICAgICAgICAgIG5leHQgVFlQRSBpZiAh
JFRpY2tldFNlYXJjaFN1bW1hcnl7JFR5cGV9OwoKICAgICAgICAgICAgIyBDb3B5IG9yaWdpbmFs
IGNvbHVtbiBmaWx0ZXIuCiAgICAgICAgICAgIG15ICVDb2x1bW5GaWx0ZXIgPSAleyAkU2VsZi0+
e0NvbHVtbkZpbHRlcn0gfHwge30gfTsKCiAgICAgICAgICAgICMgTG9vcCB0aHJvdWdoIGFsbCBj
b2x1bW4gZmlsdGVyIGVsZW1lbnRzLgogICAgICAgICAgICBmb3IgbXkgJEVsZW1lbnQgKCBzb3J0
IGtleXMgJUNvbHVtbkZpbHRlciApIHsKCiAgICAgICAgICAgICAgICAjIFZlcmlmeSBpZiBjdXJy
ZW50IGNvbHVtbiBmaWx0ZXIgZWxlbWVudCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIHRpY2tl
dCBzZWFyY2gKICAgICAgICAgICAgICAgICMgICBzdW1tYXJ5LCB0byBkZWxldGUgaXQgZnJvbSB0
aGUgY29sdW1uIGZpbHRlciBoYXNoLgogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0FkZGl0
aW9uYWxGaWx0ZXJ9ICYmICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyAkU2VsZi0+e0FkZGl0aW9uYWxG
aWx0ZXJ9IH0tPnskRWxlbWVudH0gKSB7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRDb2x1
bW5GaWx0ZXJ7JEVsZW1lbnR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg
ICAgICAgICAjIGFkZCBwcm9jZXNzIG1hbmFnZW1lbnQgc2VhcmNoIHRlcm1zCiAgICAgICAgICAg
IGlmICggJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSApIHsKICAgICAgICAgICAg
ICAgICRUaWNrZXRTZWFyY2h7ICdEeW5hbWljRmllbGRfJyAuICRTZWxmLT57UHJvY2Vzc01hbmFn
ZW1lbnRQcm9jZXNzSUR9IH0gPSB7CiAgICAgICAgICAgICAgICAgICAgTGlrZSA9PiAkU2VsZi0+
e1Byb2Nlc3NMaXN0fSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICRTdW1tYXJ5LT57JFR5cGV9ID0gMDsKCiAgICAgICAgICAgIGlmICggISRTZWxmLT57Q29u
ZmlnfS0+e0lzUHJvY2Vzc1dpZGdldH0gfHwgSXNBcnJheVJlZldpdGhEYXRhKCAkU2VsZi0+e1By
b2Nlc3NMaXN0fSApICkgewoKICAgICAgICAgICAgICAgICMgQ2hhbmdlIGZpbHRlciBuYW1lIGFj
Y29yZGluZ2x5LgogICAgICAgICAgICAgICAgbXkgJEZpbHRlcjsKICAgICAgICAgICAgICAgIGlm
ICggJFR5cGUgZXEgJ015UXVldWVzJyApIHsKICAgICAgICAgICAgICAgICAgICAkRmlsdGVyID0g
J1F1ZXVlSURzJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJFR5
cGUgZXEgJ015U2VydmljZXMnICkgewogICAgICAgICAgICAgICAgICAgICRGaWx0ZXIgPSAnU2Vy
dmljZUlEcyc7CgogICAgICAgICAgICAgICAgICAgIGlmICggJENvbHVtbkZpbHRlcntRdWV1ZUlE
c30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyRUeXBl
fS0+e1F1ZXVlSURzfSA9ICRDb2x1bW5GaWx0ZXJ7UXVldWVJRHN9OwogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJFR5cGUgZXEg
J1Jlc3BvbnNpYmxlJyApIHsKICAgICAgICAgICAgICAgICAgICAkRmlsdGVyID0gJ1Jlc3BvbnNp
YmxlSURzJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJFR5cGUg
ZXEgJ015TG9ja3MnICkgewogICAgICAgICAgICAgICAgICAgICRGaWx0ZXIgPSAnTG9ja0lEcyc7
CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBIYW5kbGUgY2FzZXMgZm9yIGZp
bHRlciBjb2x1bW5zIHRvIHByZXNlcnZlIGZpbHRlciB2YWx1ZSBpbiBvdGhlciB0YWIgYWN0aW9u
cy4KICAgICAgICAgICAgICAgIGlmICggJENvbHVtbkZpbHRlcntMb2NrSURzfSApIHsKICAgICAg
ICAgICAgICAgICAgICAkVGlja2V0U2VhcmNoU3VtbWFyeXskVHlwZX0tPntMb2NrSURzfSA9ICRD
b2x1bW5GaWx0ZXJ7TG9ja0lEc307CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBl
bHNpZiAoICRDb2x1bW5GaWx0ZXJ7T3duZXJJRHN9ICkgewogICAgICAgICAgICAgICAgICAgICRU
aWNrZXRTZWFyY2hTdW1tYXJ5eyAkU2VsZi0+e0ZpbHRlcn0gfS0+e093bmVySURzfSA9ICRDb2x1
bW5GaWx0ZXJ7T3duZXJJRHN9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMg
RmlsdGVyIGlzIHVzZWQgYW5kIGlzIG5vdCBpbiB1c2VyIHByZWZlcmVkIHZhbHVlcywgc2hvdyBu
byByZXN1bHRzLgogICAgICAgICAgICAgICAgIyBTZWUgYnVnIzEyODA4ICggaHR0cHM6Ly9idWdz
Lm90cnMub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwOCApLgogICAgICAgICAgICAgICAgaWYgKAog
ICAgICAgICAgICAgICAgICAgICRGaWx0ZXIKICAgICAgICAgICAgICAgICAgICAmJiBJc0FycmF5
UmVmV2l0aERhdGEoICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyRUeXBlfS0+eyRGaWx0ZXJ9ICkKICAg
ICAgICAgICAgICAgICAgICAmJiBJc0FycmF5UmVmV2l0aERhdGEoICRDb2x1bW5GaWx0ZXJ7JEZp
bHRlcn0gKQogICAgICAgICAgICAgICAgICAgICYmICFncmVwIHsgJENvbHVtbkZpbHRlcnskRmls
dGVyfS0+WzBdID09ICRfIH0gQHsgJFRpY2tldFNlYXJjaFN1bW1hcnl7JFR5cGV9LT57JEZpbHRl
cn0gfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAkU3VtbWFyeS0+eyRUeXBlfSA9IDA7CiAgICAgICAgICAgICAgICB9CgogICAgICAg
ICAgICAgICAgIyBFeGVjdXRlIHNlYXJjaC4KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgICAgICAgICRTdW1tYXJ5LT57JFR5cGV9ID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2Vh
cmNoKAogICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICAg
ICAgICAgICAgICAgICAgJVRpY2tldFNlYXJjaCwKICAgICAgICAgICAgICAgICAgICAgICAgJXsg
JFRpY2tldFNlYXJjaFN1bW1hcnl7JFR5cGV9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICVD
b2x1bW5GaWx0ZXIsCiAgICAgICAgICAgICAgICAgICAgKSB8fCAwOwogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGNhY2hlCiAgICBpZiAo
ICEkQ2FjaGVVc2VkICYmICRTZWxmLT57Q29uZmlnfS0+e0NhY2hlVFRMTG9jYWx9ICkgewogICAg
ICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAnRGFzaGJvYXJkJywK
ICAgICAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5IC4gJy1TdW1tYXJ5JywKICAgICAgICAgICAg
VmFsdWUgPT4gJFN1bW1hcnksCiAgICAgICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q29uZmlnfS0+
e0NhY2hlVFRMTG9jYWx9ICogNjAsCiAgICAgICAgKTsKICAgICAgICAkQ2FjaGVPYmplY3QtPlNl
dCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0Rhc2hib2FyZCcsCiAgICAgICAgICAgIEtleSAgID0+
ICRDYWNoZUtleSAuICctJyAuICRTZWxmLT57RmlsdGVyfSAuICctTGlzdCcsCiAgICAgICAgICAg
IFZhbHVlID0+ICRUaWNrZXRJRHMsCiAgICAgICAgICAgIFRUTCAgID0+ICRTZWxmLT57Q29uZmln
fS0+e0NhY2hlVFRMTG9jYWx9ICogNjAsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFNldCB0aGUg
Y3NzIGNsYXNzIGZvciB0aGUgc2VsZWN0ZWQgZmlsdGVyIGFuZCBhZGRpdGlvbmFsIGZpbHRlci4K
ICAgICRTdW1tYXJ5LT57ICRTZWxmLT57RmlsdGVyfSAuICc6OlNlbGVjdGVkJyB9ID0gJ1NlbGVj
dGVkJzsKICAgIGlmICggJFNlbGYtPntBZGRpdGlvbmFsRmlsdGVyfSApIHsKICAgICAgICAkU3Vt
bWFyeS0+eyAkU2VsZi0+e0FkZGl0aW9uYWxGaWx0ZXJ9IC4gJzo6U2VsZWN0ZWQnIH0gPSAnU2Vs
ZWN0ZWQnOwogICAgfQoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdL
ZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgZmlsdGVyIHRpY2tldCBj
b3VudHMKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRM
YXJnZVRpY2tldEdlbmVyaWNGaWx0ZXInLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAl
UGFyYW0sCiAgICAgICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAogICAgICAgICAgICBOYW1l
ID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICV7JFN1bW1hcnl9LAogICAgICAgIH0sCiAg
ICApOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNv
bmZpZycpOwoKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdEYXNoYm9hcmRNeVRpY2tldHM6
OlNob3dDbG9zZWRUaWNrZXRzJykgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAg
ICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNGaWx0ZXJDbG9zZWQn
LAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAg
ICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAogICAgICAgICAgICAgICAgTmFtZSA9PiAkU2Vs
Zi0+e05hbWV9LAogICAgICAgICAgICAgICAgJXskU3VtbWFyeX0sCiAgICAgICAgICAgIH0sCiAg
ICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgb25seSBBc3NpZ25lZFRvQ3VzdG9tZXJVc2VyIGlm
IHdlIGhhdmUgdGhlIGZpbHRlcgogICAgaWYgKCAkVGlja2V0U2VhcmNoU3VtbWFyeXtBc3NpZ25l
ZFRvQ3VzdG9tZXJVc2VyfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAg
ICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlckFzc2lnbmVkVG9D
dXN0b21lclVzZXInLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJh
bSwKICAgICAgICAgICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAogICAgICAgICAgICAgICAg
TmFtZSA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgJXskU3VtbWFyeX0sCiAgICAg
ICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgb25seSBsb2NrZWQgaWYgd2Ug
aGF2ZSB0aGUgZmlsdGVyCiAgICBpZiAoICRUaWNrZXRTZWFyY2hTdW1tYXJ5e0FjY2Vzc2libGVG
b3JDdXN0b21lclVzZXJ9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAg
ICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyQWNjZXNzaWJsZUZv
ckN1c3RvbWVyVXNlcicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBh
cmFtLAogICAgICAgICAgICAgICAgJXsgJFNlbGYtPntDb25maWd9IH0sCiAgICAgICAgICAgICAg
ICBOYW1lID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAleyRTdW1tYXJ5fSwKICAg
ICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBhbHNvIHdhdGNoZXIgaWYg
ZmVhdHVyZSBpcyBlbmFibGVkIGFuZCB0aGVyZSBpcyBhIHdhdGNoZXIgZmlsdGVyCiAgICBpZiAo
ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpXYXRjaGVyJykgJiYgJFRpY2tldFNlYXJjaFN1
bW1hcnl7V2F0Y2hlcn0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAg
ICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNGaWx0ZXJXYXRjaGVyJywKICAg
ICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAg
ICAleyAkU2VsZi0+e0NvbmZpZ30gfSwKICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlbGYtPntO
YW1lfSwKICAgICAgICAgICAgICAgICV7JFN1bW1hcnl9LAogICAgICAgICAgICB9LAogICAgICAg
ICk7CiAgICB9CgogICAgIyBzaG93IGFsc28gcmVzcG9uc2libGUgaWYgZmVhdHVyZSBpcyBlbmFi
bGVkIGFuZCB0aGVyZSBpcyBhIHJlc3BvbnNpYmxlIGZpbHRlcgogICAgaWYgKCAkQ29uZmlnT2Jq
ZWN0LT5HZXQoJ1RpY2tldDo6UmVzcG9uc2libGUnKSAmJiAkVGlja2V0U2VhcmNoU3VtbWFyeXtS
ZXNwb25zaWJsZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAg
IE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNGaWx0ZXJSZXNwb25zaWJsZScsCiAg
ICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAg
ICAgJXsgJFNlbGYtPntDb25maWd9IH0sCiAgICAgICAgICAgICAgICBOYW1lID0+ICRTZWxmLT57
TmFtZX0sCiAgICAgICAgICAgICAgICAleyRTdW1tYXJ5fSwKICAgICAgICAgICAgfSwKICAgICAg
ICApOwogICAgfQoKICAgICMgc2hvdyBvbmx5IG15IHF1ZXVlcyBpZiB3ZSBoYXZlIHRoZSBmaWx0
ZXIKICAgIGlmICggJFRpY2tldFNlYXJjaFN1bW1hcnl7TXlRdWV1ZXN9ICkgewogICAgICAgICRM
YXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNr
ZXRHZW5lcmljRmlsdGVyTXlRdWV1ZXMnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAg
ICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAogICAg
ICAgICAgICAgICAgTmFtZSA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgJXskU3Vt
bWFyeX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgb25seSBt
eSBzZXJ2aWNlcyBpZiB3ZSBoYXZlIHRoZSBmaWx0ZXIKICAgIGlmICggJFRpY2tldFNlYXJjaFN1
bW1hcnl7TXlTZXJ2aWNlc30gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAg
ICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNGaWx0ZXJNeVNlcnZpY2Vz
JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAg
ICAgICAgICAleyAkU2VsZi0+e0NvbmZpZ30gfSwKICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNl
bGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICV7JFN1bW1hcnl9LAogICAgICAgICAgICB9LAog
ICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IG9ubHkgbG9ja2VkIGlmIHdlIGhhdmUgdGhlIGZp
bHRlcgogICAgaWYgKCAkVGlja2V0U2VhcmNoU3VtbWFyeXtMb2NrZWR9ICkgewogICAgICAgICRM
YXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNr
ZXRHZW5lcmljRmlsdGVyTG9ja2VkJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAg
ICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAleyAkU2VsZi0+e0NvbmZpZ30gfSwKICAgICAg
ICAgICAgICAgIE5hbWUgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICV7JFN1bW1h
cnl9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBhZGQgcGFnZSBuYXYg
YmFyCiAgICBteSAkVG90YWwgPSAkU3VtbWFyeS0+eyAkU2VsZi0+e0ZpbHRlcn0gfSB8fCAwOwoK
ICAgIG15ICVHZXRDb2x1bW5GaWx0ZXIgPSAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0gPyAleyAk
U2VsZi0+e0dldENvbHVtbkZpbHRlcn0gfSA6ICgpOwoKICAgIG15ICRDb2x1bW5GaWx0ZXJMaW5r
ID0gJyc7CiAgICBDT0xVTU5OQU1FOgogICAgZm9yIG15ICRDb2x1bW5OYW1lICggc29ydCBrZXlz
ICVHZXRDb2x1bW5GaWx0ZXIgKSB7CiAgICAgICAgbmV4dCBDT0xVTU5OQU1FIGlmICEkQ29sdW1u
TmFtZTsKICAgICAgICBuZXh0IENPTFVNTk5BTUUgaWYgISRHZXRDb2x1bW5GaWx0ZXJ7JENvbHVt
bk5hbWV9OwogICAgICAgICRDb2x1bW5GaWx0ZXJMaW5rCiAgICAgICAgICAgIC49ICc7JyAuICRM
YXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJ0NvbHVtbkZpbHRlcicgLiAkQ29sdW1u
TmFtZSApCiAgICAgICAgICAgIC4gJz0nIC4gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCggVGV4
dCA9PiAkR2V0Q29sdW1uRmlsdGVyeyRDb2x1bW5OYW1lfSApCiAgICB9CgogICAgbXkgJExpbmtQ
YWdlID0KICAgICAgICAnU3ViYWN0aW9uPUVsZW1lbnQ7TmFtZT0nIC4gJFNlbGYtPntOYW1lfQog
ICAgICAgIC4gJztGaWx0ZXI9JyAuICRTZWxmLT57RmlsdGVyfQogICAgICAgIC4gJztBZGRpdGlv
bmFsRmlsdGVyPScgLiAoICRTZWxmLT57QWRkaXRpb25hbEZpbHRlcn0gfHwgJycgKQogICAgICAg
IC4gJztTb3J0Qnk9JyAuICAgICAgICAgICAoICRTZWxmLT57U29ydEJ5fSAgICAgICAgICAgfHwg
JycgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAgICAgICAgICAoICRUaWNrZXRTZWFyY2h7T3Jk
ZXJCeX0gICAgfHwgJycgKQogICAgICAgIC4gJENvbHVtbkZpbHRlckxpbmsKICAgICAgICAuICc7
JzsKCiAgICBpZiAoICRQYXJhbXtDdXN0b21lcklEfSApIHsKICAgICAgICAkTGlua1BhZ2UgLj0g
IkN1c3RvbWVySUQ9JFBhcmFte0N1c3RvbWVySUR9OyI7CiAgICB9CiAgICBpZiAoICRQYXJhbXtD
dXN0b21lclVzZXJJRH0gKSB7CiAgICAgICAgJExpbmtQYWdlIC49ICJDdXN0b21lclVzZXJJRD0k
UGFyYW17Q3VzdG9tZXJVc2VySUR9OyI7CiAgICB9CgogICAgbXkgJVBhZ2VOYXYgPSAkTGF5b3V0
T2JqZWN0LT5QYWdlTmF2QmFyKAogICAgICAgIFN0YXJ0SGl0ICAgID0+ICRTZWxmLT57U3RhcnRI
aXR9LAogICAgICAgIFBhZ2VTaG93biAgID0+ICRTZWxmLT57UGFnZVNob3dufSwKICAgICAgICBB
bGxIaXRzICAgICA9PiAkVG90YWwgfHwgMSwKICAgICAgICBBY3Rpb24gICAgICA9PiAnQWN0aW9u
PScgLiAkTGF5b3V0T2JqZWN0LT57QWN0aW9ufSwKICAgICAgICBMaW5rICAgICAgICA9PiAkTGlu
a1BhZ2UsCiAgICAgICAgQUpBWFJlcGxhY2UgPT4gJ0Rhc2hib2FyZCcgLiAkU2VsZi0+e05hbWV9
LAogICAgICAgIElEUHJlZml4ICAgID0+ICdEYXNoYm9hcmQnIC4gJFNlbGYtPntOYW1lfSwKICAg
ICAgICBBSkFYICAgICAgICA9PiAkUGFyYW17QUpBWH0sCiAgICApOwogICAgJExheW91dE9iamVj
dC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRl
ck5hdkJhcicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICV7ICRTZWxmLT57Q29uZmln
fSB9LAogICAgICAgICAgICBOYW1lID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICVQYWdl
TmF2LAogICAgICAgIH0sCiAgICApOwoKICAgICMgc2hvdyB0YWJsZSBoZWFkZXIKICAgICRMYXlv
dXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVy
aWNIZWFkZXInLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgZGVmaW5lIHdoaWNo
IG1ldGEgaXRlbXMgd2lsbCBiZSBzaG93bgogICAgbXkgQE1ldGFJdGVtcyA9ICRMYXlvdXRPYmpl
Y3QtPlRpY2tldE1ldGFJdGVtc0NvdW50KCk7CgogICAgIyByZW1vdmUgKC0pIGZyb20gbmFtZSBm
b3IgSlMgY29uZmlnCiAgICBteSAkV2lkZ2V0TmFtZSA9ICRTZWxmLT57TmFtZX07CiAgICAkV2lk
Z2V0TmFtZSA9fiBzey19e31nOwoKICAgICMgc2hvdyBub24tbGFiZWxlZCB0YWJsZSBoZWFkZXJz
CiAgICBteSAkQ1NTID0gJyc7CgogICAgIyBTZW5kIGRhdGEgdG8gSlMgZm9yIGluaXQgY29udGFp
bmVyLgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdJbml0
Q29udGFpbmVyRGFzaGJvYXJkJyAuICRTZWxmLT57TmFtZX0sCiAgICAgICAgVmFsdWUgPT4gewog
ICAgICAgICAgICBTb3J0QnkgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICdBZ2UnLAogICAgICAgICAg
ICBPcmRlckJ5ID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgfSwKICAgICk7Cgog
ICAgZm9yIG15ICRJdGVtIChATWV0YUl0ZW1zKSB7CiAgICAgICAgJENTUyA9ICcnOwogICAgICAg
IG15ICRUaXRsZSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgk
SXRlbSk7CgogICAgICAgICMgc2V0IHRpdGxlIGRlc2NyaXB0aW9uCiAgICAgICAgaWYgKCAkU2Vs
Zi0+e1NvcnRCeX0gJiYgJFNlbGYtPntTb3J0Qnl9IGVxICRJdGVtICkgewogICAgICAgICAgICBt
eSAkVGl0bGVEZXNjID0gJyc7CiAgICAgICAgICAgIGlmICggJFRpY2tldFNlYXJjaHtPcmRlckJ5
fSBlcSAnRG93bicgKSB7CiAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydERlc2NlbmRpbmdM
YXJnZSc7CiAgICAgICAgICAgICAgICAkVGl0bGVEZXNjID0gVHJhbnNsYXRhYmxlKCdzb3J0ZWQg
ZGVzY2VuZGluZycpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgICAgJENTUyAuPSAnIFNvcnRBc2NlbmRpbmdMYXJnZSc7CiAgICAgICAgICAgICAgICAkVGl0
bGVEZXNjID0gVHJhbnNsYXRhYmxlKCdzb3J0ZWQgYXNjZW5kaW5nJyk7CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICRUaXRsZURlc2MgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9
LT5UcmFuc2xhdGUoJFRpdGxlRGVzYyk7CiAgICAgICAgICAgICRUaXRsZSAuPSAnLCAnIC4gJFRp
dGxlRGVzYzsKICAgICAgICB9CgogICAgICAgICMgYWRkIHN1cnJvdW5kaW5nIGNvbnRhaW5lcgog
ICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdHZW5lcmFs
T3ZlcnZpZXdIZWFkZXInLAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2so
CiAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJNZXRh
JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAg
ID0+ICRDU1MsCiAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRJdGVtLAogICAg
ICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgIH0sCiAg
ICAgICAgKTsKCiAgICAgICAgaWYgKCAkSXRlbSBlcSAnTmV3IEFydGljbGUnICkgewoKICAgICAg
ICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250
ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YUVtcHR5JywKICAgICAgICAgICAgICAgIERh
dGEgPT4gewogICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJEl0ZW0sCiAg
ICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsK
CiAgICAgICAgICAgICMgc2VuZCBkYXRhIHRvIEpTCiAgICAgICAgICAgICRMYXlvdXRPYmplY3Qt
PkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgIEtleSAgID0+ICdIZWFkZXJNZXRhJyAuICRXaWRn
ZXROYW1lLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgIE5h
bWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICBPcmRl
ckJ5ICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAg
ICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkSXRlbSwKICAgICAgICAgICAgICAgICAgICBTb3J0aW5n
Q29sdW1uICAgID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAg
ICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJNZXRhTGluaycs
CiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAg
ICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAg
ICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5
fSwKICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRJdGVtLAogICAgICAg
ICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZW5kIGRhdGEgdG8gSlMK
ICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnSGVhZGVyQ29s
dW1uJyAuICRXaWRnZXROYW1lLAogICAgICAgIFZhbHVlID0+IFxAQ29sdW1ucwogICAgKTsKCiAg
ICAjIHNob3cgYWxsIG5lZWRlZCBoZWFkZXJzCiAgICBIRUFERVJDT0xVTU46CiAgICBmb3IgbXkg
JEhlYWRlckNvbHVtbiAoQENvbHVtbnMpIHsKCiAgICAgICAgIyBza2lwIEN1c3RvbWVySUQgaWYg
Q3VzdG9tZXIgSW5mb3JtYXRpb24gQ2VudGVyCiAgICAgICAgaWYgKCAkU2VsZi0+e0FjdGlvbn0g
ZXEgJ0FnZW50Q3VzdG9tZXJJbmZvcm1hdGlvbkNlbnRlcicgJiYgJEhlYWRlckNvbHVtbiBlcSAn
Q3VzdG9tZXJJRCcgKSB7CiAgICAgICAgICAgIG5leHQgSEVBREVSQ09MVU1OOwogICAgICAgIH0K
CiAgICAgICAgaWYgKCAkSGVhZGVyQ29sdW1uICF+IG17XEEgRHluYW1pY0ZpZWxkX314bXMgKSB7
CgogICAgICAgICAgICAkQ1NTID0gJyc7CiAgICAgICAgICAgIG15ICRUaXRsZSA9ICRMYXlvdXRP
YmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkSGVhZGVyQ29sdW1uKTsKCiAgICAg
ICAgICAgICMgU2V0IHRpdGxlIGRlc2NyaXB0aW9uLgogICAgICAgICAgICBpZiAoICRTZWxmLT57
U29ydEJ5fSAmJiAkU2VsZi0+e1NvcnRCeX0gZXEgJEhlYWRlckNvbHVtbiApIHsKICAgICAgICAg
ICAgICAgIG15ICRUaXRsZURlc2MgPSAnJzsKICAgICAgICAgICAgICAgIGlmICggJFRpY2tldFNl
YXJjaHtPcmRlckJ5fSBlcSAnRG93bicgKSB7CiAgICAgICAgICAgICAgICAgICAgJENTUyAuPSAn
IFNvcnREZXNjZW5kaW5nTGFyZ2UnOwogICAgICAgICAgICAgICAgICAgICRUaXRsZURlc2MgPSBU
cmFuc2xhdGFibGUoJ3NvcnRlZCBkZXNjZW5kaW5nJyk7CiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydEFzY2Vu
ZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgICAgICAkVGl0bGVEZXNjID0gVHJhbnNsYXRhYmxl
KCdzb3J0ZWQgYXNjZW5kaW5nJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
JFRpdGxlRGVzYyA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgk
VGl0bGVEZXNjKTsKICAgICAgICAgICAgICAgICRUaXRsZSAuPSAnLCAnIC4gJFRpdGxlRGVzYzsK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyB0cmFuc2xhdGUgdGhlIGNvbHVtbiBuYW1lIHRv
IHdyaXRlIGl0IGluIHRoZSBjdXJyZW50IGxhbmd1YWdlCiAgICAgICAgICAgIG15ICRUcmFuc2xh
dGVkV29yZDsKICAgICAgICAgICAgaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdFc2NhbGF0aW9uVGlt
ZScgKSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0T2JqZWN0LT57
TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1NlcnZpY2UgVGltZScpOwogICAgICAgICAgICB9
CiAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnRXNjYWxhdGlvblJlc3BvbnNl
VGltZScgKSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0T2JqZWN0
LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0ZpcnN0IFJlc3BvbnNlIFRpbWUnKTsKICAg
ICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0VzY2FsYXRp
b25Tb2x1dGlvblRpbWUnICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExh
eW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdTb2x1dGlvbiBUaW1lJyk7
CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdFc2Nh
bGF0aW9uVXBkYXRlVGltZScgKSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAk
TGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1VwZGF0ZSBUaW1lJyk7
CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdQZW5k
aW5nVGltZScgKSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0T2Jq
ZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1BlbmRpbmcgdGlsbCcpOwogICAgICAg
ICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnQ3VzdG9tZXJDb21w
YW55TmFtZScgKSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0T2Jq
ZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0N1c3RvbWVyIE5hbWUnKTsKICAgICAg
ICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQn
ICkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xh
bmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDdXN0b21lciBJRCcpOwogICAgICAgICAgICB9CiAg
ICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnQ3VzdG9tZXJOYW1lJyApIHsKICAg
ICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9i
amVjdH0tPlRyYW5zbGF0ZSgnQ3VzdG9tZXIgVXNlciBOYW1lJyk7CiAgICAgICAgICAgIH0KICAg
ICAgICAgICAgZWxzaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lclVzZXJJRCcgKSB7CiAg
ICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VP
YmplY3R9LT5UcmFuc2xhdGUoJ0N1c3RvbWVyIFVzZXIgSUQnKTsKICAgICAgICAgICAgfQogICAg
ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRP
YmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkSGVhZGVyQ29sdW1uKTsKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgc3Vycm91bmRpbmcgY29udGFpbmVyCiAgICAgICAg
ICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnR2VuZXJh
bE92ZXJ2aWV3SGVhZGVyJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVj
dC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5l
cmljSGVhZGVyVGlja2V0SGVhZGVyJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAg
ICAgICAgICk7CgogICAgICAgICAgICBpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ1RpY2tldE51bWJl
cicgKSB7CgogICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAg
ICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAn
VGlja2V0TnVtYmVyQ29sdW1uJyAuICRXaWRnZXROYW1lLAogICAgICAgICAgICAgICAgICAgIFZh
bHVlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICA9PiAkU2VsZi0+
e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgID0+ICRUaWNrZXRT
ZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRpbmdDb2x1bW4gPT4g
JFBhcmFte1NvcnRpbmdDb2x1bW59LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICAgICApOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAg
ICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJUaWNrZXRO
dW1iZXJDb2x1bW4nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAg
ICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIENTUyA9PiAkQ1NTIHx8
ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICA9PiAkU2VsZi0+e05hbWV9LAogICAg
ICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IEhFQURFUkNPTFVNTjsK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJEZpbHRlclRpdGxlICAgICA9ICRUcmFuc2xh
dGVkV29yZDsKICAgICAgICAgICAgbXkgJEZpbHRlclRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgn
ZmlsdGVyIG5vdCBhY3RpdmUnKTsKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0dldENvbHVtbkZp
bHRlclNlbGVjdH0gJiYgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9LT57JEhlYWRlckNv
bHVtbn0gKSB7CiAgICAgICAgICAgICAgICAkQ1NTIC49ICcgRmlsdGVyQWN0aXZlJzsKICAgICAg
ICAgICAgICAgICRGaWx0ZXJUaXRsZURlc2MgPSBUcmFuc2xhdGFibGUoJ2ZpbHRlciBhY3RpdmUn
KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkRmlsdGVyVGl0bGVEZXNjID0gJExheW91dE9i
amVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRGaWx0ZXJUaXRsZURlc2MpOwogICAg
ICAgICAgICAkRmlsdGVyVGl0bGUgLj0gJywgJyAuICRGaWx0ZXJUaXRsZURlc2M7CgogICAgICAg
ICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRl
bnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4nLAogICAgICAgICAgICAgICAgRGF0YSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJEhlYWRlckNv
bHVtbiAgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIEhlYWRlck5hbWVUcmFuc2xhdGVkID0+
ICRUcmFuc2xhdGVkV29yZCB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgIENT
UyAgICAgICAgICAgICAgICAgID0+ICRDU1MgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHZlcmlmeSBpZiBjb2x1bW4gaXMg
ZmlsdGVyYWJsZSBhbmQgc29ydGFibGUKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAg
JFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnskSGVhZGVyQ29sdW1ufQogICAgICAgICAg
ICAgICAgJiYgJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyRIZWFkZXJDb2x1bW59
CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICBteSAkQ3Nz
OwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRIZWFkZXJDb2x1bW4g
ZXEgJ0N1c3RvbWVySUQnCiAgICAgICAgICAgICAgICAgICAgfHwgJEhlYWRlckNvbHVtbiBlcSAn
UmVzcG9uc2libGUnCiAgICAgICAgICAgICAgICAgICAgfHwgJEhlYWRlckNvbHVtbiBlcSAnT3du
ZXInCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICRDc3MgPSAnSGlkZGVuJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICAjIHZhcmlhYmxlIHRvIHNhdmUgdGhlIGZpbHRlcidzIEhUTUwgY29kZQogICAgICAgICAgICAg
ICAgbXkgJENvbHVtbkZpbHRlckhUTUwgPSAkU2VsZi0+X0luaXRpYWxDb2x1bW5GaWx0ZXIoCiAg
ICAgICAgICAgICAgICAgICAgQ29sdW1uTmFtZSA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgICAg
ICAgICAgICAgIENzcyAgICAgICAgPT4gJENzcywKICAgICAgICAgICAgICAgICk7CgogICAgICAg
ICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3Qt
PkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAnQ29sdW1uRmlsdGVyU29y
dCcgLiAkSGVhZGVyQ29sdW1uIC4gJFdpZGdldE5hbWUsCiAgICAgICAgICAgICAgICAgICAgVmFs
dWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRIZWFk
ZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNl
bGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAk
U2VsZi0+e1NvcnRCeX0gfHwgJ0FnZScsCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkg
ICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAg
ICAgU29ydGluZ0NvbHVtbiAgICA9PiAkUGFyYW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAgICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9i
amVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlj
a2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmsnLAogICAgICAgICAgICAgICAgICAgIERh
dGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAg
ICAgICAgIEhlYWRlckNvbHVtbk5hbWUgICAgID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAg
ICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgICAgID0+ICRDU1MsCiAgICAgICAgICAgICAg
ICAgICAgICAgIEhlYWRlck5hbWVUcmFuc2xhdGVkID0+ICRUcmFuc2xhdGVkV29yZCB8fCAkSGVh
ZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBDb2x1bW5GaWx0ZXJTdHJnICAgICA9
PiAkQ29sdW1uRmlsdGVySFRNTCwKICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAg
ICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAg
ICAgU29ydEJ5ICAgICAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICdBZ2UnLAogICAg
ICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9
LAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUs
CiAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlclRpdGxlICAgICAgICAgID0+ICRGaWx0ZXJU
aXRsZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAg
ICAgICAgICBpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQnICkgewoKICAgICAgICAg
ICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRP
YmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0N1c3Rv
bWVySURBdXRvY29tcGxldGUnLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVyeURlbGF5ICAgICAgICAgID0+IDEwMCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE1heFJlc3VsdHNEaXNwbGF5ZWQgPT4gMjAsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBNaW5RdWVyeUxlbmd0aCAgICAgID0+IDIsCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAg
ICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9
PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21l
cklEU2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAg
ICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGVsc2lmICgg
JEhlYWRlckNvbHVtbiBlcSAnUmVzcG9uc2libGUnIHx8ICRIZWFkZXJDb2x1bW4gZXEgJ093bmVy
JyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAg
ICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAg
IEtleSAgID0+ICdVc2VyQXV0b2NvbXBsZXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgVmFs
dWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVlcnlEZWxheSAgICAgICAgICA9
PiAxMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhSZXN1bHRzRGlzcGxheWVkID0+
IDIwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWluUXVlcnlMZW5ndGggICAgICA9PiAy
LAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAg
ICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAg
ICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJM
aW5rVXNlclNlYXJjaCcsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAg
ICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgIyB2ZXJpZnkgaWYgY29sdW1uIGlzIGp1c3QgZmlsdGVyYWJsZQogICAgICAgICAgICBl
bHNpZiAoICRTZWxmLT57VmFsaWRGaWx0ZXJhYmxlQ29sdW1uc30tPnskSGVhZGVyQ29sdW1ufSAp
IHsKCiAgICAgICAgICAgICAgICBteSAkQ3NzOwogICAgICAgICAgICAgICAgaWYgKCAkSGVhZGVy
Q29sdW1uIGVxICdDdXN0b21lclVzZXJJRCcgKSB7CiAgICAgICAgICAgICAgICAgICAgJENzcyA9
ICdIaWRkZW4nOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgdmFyaWFibGUg
dG8gc2F2ZSB0aGUgZmlsdGVyJ3MgSFRNTCBjb2RlCiAgICAgICAgICAgICAgICBteSAkQ29sdW1u
RmlsdGVySFRNTCA9ICRTZWxmLT5fSW5pdGlhbENvbHVtbkZpbHRlcigKICAgICAgICAgICAgICAg
ICAgICBDb2x1bW5OYW1lID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgQ3Nz
ICAgICAgICA9PiAkQ3NzLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNl
bmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAog
ICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJEhlYWRlckNvbHVt
biAuICRXaWRnZXROYW1lLAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAg
ICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAg
ICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8
ICdBZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRUaWNr
ZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAg
ICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAg
ICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRl
cicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4g
JEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgQ1NTICAgICAgICAgICAgICAg
ICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQg
PT4gJFRyYW5zbGF0ZWRXb3JkIHx8ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAg
ICAgIENvbHVtbkZpbHRlclN0cmcgICAgID0+ICRDb2x1bW5GaWx0ZXJIVE1MLAogICAgICAgICAg
ICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAg
ICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgIEZpbHRlclRpdGxlICAgICAgICAgID0+ICRGaWx0ZXJUaXRsZSwK
ICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAg
ICBpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVyVXNlcklEJyApIHsKCiAgICAgICAgICAg
ICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2Jq
ZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDdXN0b21l
clVzZXJBdXRvY29tcGxldGUnLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVyeURlbGF5ICAgICAgICAgID0+IDEwMCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE1heFJlc3VsdHNEaXNwbGF5ZWQgPT4gMjAsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBNaW5RdWVyeUxlbmd0aCAgICAgID0+IDIsCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAg
ICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9
PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21l
clVzZXJTZWFyY2gnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAg
ICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICMgdmVyaWZ5IGlmIGNvbHVtbiBpcyBqdXN0IHNvcnRhYmxlCiAgICAgICAgICAgIGVsc2lm
ICggJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnskSGVhZGVyQ29sdW1ufSApIHsKCiAg
ICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgJExheW91dE9i
amVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5Tb3J0
YWJsZScgLiAkSGVhZGVyQ29sdW1uIC4gJFdpZGdldE5hbWUsCiAgICAgICAgICAgICAgICAgICAg
VmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRI
ZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4g
JFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9
PiAkU2VsZi0+e1NvcnRCeX0gfHwgJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAg
ICAgT3JkZXJCeSAgICAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAg
ICAgICAgICAgICAgICBTb3J0aW5nQ29sdW1uICAgID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwK
ICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAg
ICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250
ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uTGluaycsCiAgICAgICAgICAgICAgICAg
ICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAg
ICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJEhlYWRlckNvbHVtbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgQ1NTICAgICAgICAgICAgICAgICAgPT4gJENTUywKICAgICAgICAg
ICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRXb3JkIHx8
ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAg
ICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFNv
cnRCeSAgICAgICAgICAgICAgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAkSGVhZGVyQ29sdW1uLAog
ICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05h
bWV9LAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0
bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAg
IH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9j
aygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmlj
SGVhZGVyQ29sdW1uRW1wdHknLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAg
ICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlck5h
bWVUcmFuc2xhdGVkID0+ICRUcmFuc2xhdGVkV29yZCB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAg
ICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkSGVhZGVyQ29sdW1uLAog
ICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgICAgICA9PiAkQ1NTLAogICAg
ICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAg
ICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAg
ICB9CgogICAgICAgICMgRHluYW1pYyBmaWVsZHMKICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
bXkgJER5bmFtaWNGaWVsZENvbmZpZzsKICAgICAgICAgICAgbXkgJERGQ29sdW1uID0gJEhlYWRl
ckNvbHVtbjsKICAgICAgICAgICAgJERGQ29sdW1uID1+IHMvRHluYW1pY0ZpZWxkXy8vZzsKICAg
ICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICBmb3IgbXkgJERGQ29uZmlnICggQHsg
JFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNG
SUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJERGQ29uZmlnKTsKICAgICAgICAgICAgICAgIG5l
eHQgRFlOQU1JQ0ZJRUxEIGlmICRERkNvbmZpZy0+e05hbWV9IG5lICRERkNvbHVtbjsKCiAgICAg
ICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnID0gJERGQ29uZmlnOwogICAgICAgICAgICAg
ICAgbGFzdCBEWU5BTUlDRklFTEQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbmV4dCBIRUFE
RVJDT0xVTU4gaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAg
ICAgICAgICAgbXkgJExhYmVsID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfTsKCiAgICAg
ICAgICAgIG15ICRUcmFuc2xhdGVkTGFiZWwgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmpl
Y3R9LT5UcmFuc2xhdGUoJExhYmVsKTsKCiAgICAgICAgICAgIG15ICREeW5hbWljRmllbGROYW1l
ID0gJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAg
ICAgICAgbXkgJENTUyAgICAgICAgICAgICA9ICcnOwogICAgICAgICAgICBteSAkRmlsdGVyVGl0
bGUgICAgID0gJExhYmVsOwogICAgICAgICAgICBteSAkRmlsdGVyVGl0bGVEZXNjID0gVHJhbnNs
YXRhYmxlKCdmaWx0ZXIgbm90IGFjdGl2ZScpOwogICAgICAgICAgICBpZiAoICRTZWxmLT57R2V0
Q29sdW1uRmlsdGVyU2VsZWN0fSAmJiBkZWZpbmVkICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2Vs
ZWN0fS0+eyREeW5hbWljRmllbGROYW1lfSApIHsKICAgICAgICAgICAgICAgICRDU1MgLj0gJ0Zp
bHRlckFjdGl2ZSAnOwogICAgICAgICAgICAgICAgJEZpbHRlclRpdGxlRGVzYyA9IFRyYW5zbGF0
YWJsZSgnZmlsdGVyIGFjdGl2ZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRGaWx0ZXJU
aXRsZURlc2MgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEZp
bHRlclRpdGxlRGVzYyk7CiAgICAgICAgICAgICRGaWx0ZXJUaXRsZSAuPSAnLCAnIC4gJEZpbHRl
clRpdGxlRGVzYzsKCiAgICAgICAgICAgICMgZ2V0IGZpZWxkIHNvcnRhYmxlIGNvbmRpdGlvbgog
ICAgICAgICAgICBteSAkSXNTb3J0YWJsZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lz
dGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAg
ICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAg
ICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNTb3J0YWJsZScsCiAgICAgICAgICAgICk7Cgog
ICAgICAgICAgICAjIHNldCB0aXRsZQogICAgICAgICAgICBteSAkVGl0bGUgPSAkTGFiZWw7Cgog
ICAgICAgICAgICAjIGFkZCBzdXJyb3VuZGluZyBjb250YWluZXIKICAgICAgICAgICAgJExheW91
dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdHZW5lcmFsT3ZlcnZpZXdI
ZWFkZXInLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygK
ICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJU
aWNrZXRIZWFkZXInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsK
CiAgICAgICAgICAgIGlmICgkSXNTb3J0YWJsZSkgewogICAgICAgICAgICAgICAgbXkgJFRpdGxl
RGVzYyA9ICcnOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRTZWxm
LT57U29ydEJ5fQogICAgICAgICAgICAgICAgICAgICYmICggJFNlbGYtPntTb3J0Qnl9IGVxICgg
J0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9ICkgKQogICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAo
ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0gZXEgJ0Rvd24nICkgewogICAgICAgICAgICAgICAgICAg
ICAgICAkQ1NTIC49ICcgU29ydERlc2NlbmRpbmdMYXJnZSc7CiAgICAgICAgICAgICAgICAgICAg
ICAgICRUaXRsZURlc2MgPSBUcmFuc2xhdGFibGUoJ3NvcnRlZCBkZXNjZW5kaW5nJyk7CiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICAgICAkQ1NTIC49ICcgU29ydEFzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAg
ICAgICAgICAgJFRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnc29ydGVkIGFzY2VuZGluZycpOwog
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9ICRM
YXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkVGl0bGVEZXNjKTsKICAg
ICAgICAgICAgICAgICAgICAkVGl0bGUgLj0gJywgJyAuICRUaXRsZURlc2M7CiAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAg
ICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbics
CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhl
YWRlckNvbHVtbk5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUgfHwgJycsCiAgICAgICAgICAgICAg
ICAgICAgICAgIENTUyA9PiAkQ1NTIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAg
ICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgdGhlIGR5bmFtaWMgZmll
bGQgaXMgc29ydGFibGUgYW5kIGZpbHRlcmFibGUgKHNvcnRhYmxlIGNoZWNrIHdhcyBtYWRlIGJl
Zm9yZSkKICAgICAgICAgICAgICAgIGlmICggJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5z
fS0+eyREeW5hbWljRmllbGROYW1lfSApIHsKCiAgICAgICAgICAgICAgICAgICAgIyB2YXJpYWJs
ZSB0byBzYXZlIHRoZSBmaWx0ZXIncyBIVE1MIGNvZGUKICAgICAgICAgICAgICAgICAgICBteSAk
Q29sdW1uRmlsdGVySFRNTCA9ICRTZWxmLT5fSW5pdGlhbENvbHVtbkZpbHRlcigKICAgICAgICAg
ICAgICAgICAgICAgICAgQ29sdW1uTmFtZSA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgTGFiZWwgICAgICA9PiAkTGFiZWwsCiAgICAgICAgICAgICAgICAgICAg
KTsKCiAgICAgICAgICAgICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAg
ICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIEtl
eSAgID0+ICdDb2x1bW5GaWx0ZXJTb3J0JyAuICREeW5hbWljRmllbGROYW1lIC4gJFdpZGdldE5h
bWUsCiAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgID0+ICRTZWxmLT57U29y
dEJ5fSB8fCAnQWdlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAg
ICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNvcnRpbmdDb2x1bW4gICAgPT4gJFBhcmFte1NvcnRpbmdDb2x1bW59LAogICAgICAgICAgICAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAg
ICMgb3V0cHV0IHNvcnRhYmxlIGFuZCBmaWx0ZXJhYmxlIGR5bmFtaWMgZmllbGQKICAgICAgICAg
ICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAg
TmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmsn
LAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5h
bWUgICAgID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q1NTICAgICAgICAgICAgICAgICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEhlYWRlck5hbWVUcmFuc2xhdGVkID0+ICRUcmFuc2xhdGVkTGFiZWwgfHwgJER5bmFtaWNGaWVs
ZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2x1bW5GaWx0ZXJTdHJnICAgICA9
PiAkQ29sdW1uRmlsdGVySFRNTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkg
ICAgICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJ0Fn
ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAk
U2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAg
ICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyVGl0bGUg
ICAgICAgICAgPT4gJEZpbHRlclRpdGxlLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBv
dGhlcndpc2UgdGhlIGR5bmFtaWMgZmllbGQgaXMgb25seSBzb3J0YWJsZSAoc29ydGFibGUgY2hl
Y2sgd2FzIG1hZGUgYmVmb3JlKQogICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAg
ICAgICAgICMgc2VuZCBkYXRhIHRvIEpTCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVj
dC0+QWRkSlNEYXRhKAogICAgICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAnQ29sdW1uU29y
dGFibGUnIC4gJER5bmFtaWNGaWVsZE5hbWUgLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29s
dW1uTmFtZSA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICREeW5hbWljRmll
bGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAk
VGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydGlu
Z0NvbHVtbiAgICA9PiAkUGFyYW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBvdXRw
dXQgc29ydGFibGUgZHluYW1pYyBmaWVsZAogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmpl
Y3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VU
aWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgIERh
dGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJER5bmFtaWNGaWVsZE5hbWUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgICAgICA9PiAkQ1NT
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRy
YW5zbGF0ZWRMYWJlbCB8fCAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICA9PiAkU2VsZi0+
e1NvcnRCeX0gfHwgJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOYW1lICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRmlsdGVyVGl0bGUgICAgICAgICAgPT4gJEZpbHRlclRpdGxlLAogICAg
ICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaWYgdGhlIGR5bmFtaWMgZmllbGQg
d2FzIG5vdCBzb3J0YWJsZSAoY2hlY2sgd2FzIG1hZGUgYW5kIGZhaWwgYmVmb3JlKQogICAgICAg
ICAgICAjIGl0IG1pZ2h0IGJlIGZpbHRlcmFibGUKICAgICAgICAgICAgZWxzaWYgKCAkU2VsZi0+
e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57JER5bmFtaWNGaWVsZE5hbWV9ICkgewoKICAgICAg
ICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUg
PT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4nLAogICAgICAgICAgICAg
ICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1l
ID0+ICREeW5hbWljRmllbGROYW1lIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBDU1Mg
ICAgICAgICAgICAgID0+ICRDU1MgICAgICAgICAgICAgIHx8ICcnLAogICAgICAgICAgICAgICAg
ICAgICAgICBUaXRsZSAgICAgICAgICAgID0+ICRUaXRsZSwKICAgICAgICAgICAgICAgICAgICB9
LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHZhcmlhYmxlIHRvIHNhdmUg
dGhlIGZpbHRlcidzIEhUTUwgY29kZQogICAgICAgICAgICAgICAgbXkgJENvbHVtbkZpbHRlckhU
TUwgPSAkU2VsZi0+X0luaXRpYWxDb2x1bW5GaWx0ZXIoCiAgICAgICAgICAgICAgICAgICAgQ29s
dW1uTmFtZSA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICBMYWJlbCAg
ICAgID0+ICRMYWJlbCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzZW5k
IGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAg
ICAgICAgICAgICAgICAgICBLZXkgICA9PiAnQ29sdW1uRmlsdGVyJyAuICREeW5hbWljRmllbGRO
YW1lIC4gJFdpZGdldE5hbWUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAg
ICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICREeW5hbWljRmllbGROYW1lLAog
ICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0s
CiAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0
Qnl9IHx8ICdBZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+
ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAg
ICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBvdXRwdXQgZmlsdGVyYWJsZSAobm90IHNvcnRh
YmxlKSBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygK
ICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVh
ZGVyQ29sdW1uRmlsdGVyJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1
bW5OYW1lICAgICA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg
Q1NTICAgICAgICAgICAgICAgICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgSGVh
ZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRMYWJlbCB8fCAkRHluYW1pY0ZpZWxkTmFt
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29sdW1uRmlsdGVyU3RyZyAgICAgPT4gJENvbHVt
bkZpbHRlckhUTUwsCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAg
ID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAg
ICAgICAgID0+ICRUaXRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyVGl0bGUgICAg
ICAgICAgPT4gJEZpbHRlclRpdGxlLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG90aGVyd2lzZSB0aGUgZmllbGQg
aXMgbm90IGZpbHRlcmFibGUgYW5kIG5vdCBzb3J0YWJsZQogICAgICAgICAgICBlbHNlIHsKCiAg
ICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBO
YW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uJywKICAgICAgICAg
ICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1u
TmFtZSA9PiAkRHluYW1pY0ZpZWxkTmFtZSB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAg
Q1NTID0+ICRDU1MgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAg
ICk7CgogICAgICAgICAgICAgICAgIyBvdXRwdXQgcGxhaW4gZHluYW1pYyBmaWVsZCBoZWFkZXIg
KG5vdCBmaWx0ZXJhYmxlLCBub3Qgc29ydGFibGUpCiAgICAgICAgICAgICAgICAkTGF5b3V0T2Jq
ZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNr
ZXRHZW5lcmljSGVhZGVyQ29sdW1uRW1wdHknLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4g
ewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAg
IEhlYWRlck5hbWVUcmFuc2xhdGVkID0+ICRUcmFuc2xhdGVkTGFiZWwgfHwgJER5bmFtaWNGaWVs
ZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgICAgID0+ICRE
eW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAg
ICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAg
ICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAg
ICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IHRpY2tldHMKICAgIG15ICRD
b3VudCA9IDA7CiAgICBUSUNLRVRJRDoKICAgIGZvciBteSAkVGlja2V0SUQgKCBAeyRUaWNrZXRJ
RHN9ICkgewogICAgICAgICRDb3VudCsrOwogICAgICAgIG5leHQgVElDS0VUSUQgaWYgJENvdW50
IDwgJFNlbGYtPntTdGFydEhpdH07CiAgICAgICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3Qt
PlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAg
ICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBEeW5h
bWljRmllbGRzID0+IDAsCiAgICAgICAgICAgIFNpbGVudCAgICAgICAgPT4gMQogICAgICAgICk7
CgogICAgICAgIG5leHQgVElDS0VUSUQgaWYgISVUaWNrZXQ7CgogICAgICAgICMgc2V0IGEgZGVm
YXVsdCB0aXRsZSBpZiB0aWNrZXQgaGFzIG5vIHRpdGxlCiAgICAgICAgaWYgKCAhJFRpY2tldHtU
aXRsZX0gKSB7CiAgICAgICAgICAgICRUaWNrZXR7VGl0bGV9ID0gJExheW91dE9iamVjdC0+e0xh
bmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgJ1RoaXMgdGlja2V0IGhh
cyBubyB0aXRsZSBvciBzdWJqZWN0JwogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAg
bXkgJFdob2xlVGl0bGUgPSAkVGlja2V0e1RpdGxlfSB8fCAnJzsKICAgICAgICAkVGlja2V0e1Rp
dGxlfSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFN1YmplY3RDbGVhbigKICAgICAgICAgICAgVGlj
a2V0TnVtYmVyID0+ICRUaWNrZXR7VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgU3ViamVjdCAg
ICAgID0+ICRUaWNrZXR7VGl0bGV9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGh1bWFu
IGFnZQogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57VGltZX0gbmUgJ0FnZScgKSB7CiAg
ICAgICAgICAgICRUaWNrZXR7VGltZX0gPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAg
ICAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICA9PiAkVGlja2V0eyAkU2VsZi0+e0NvbmZp
Z30tPntUaW1lfSB9LAogICAgICAgICAgICAgICAgVGltZVNob3dBbHdheXNMb25nID0+IDEsCiAg
ICAgICAgICAgICAgICBTcGFjZSAgICAgICAgICAgICAgPT4gJyAnLAogICAgICAgICAgICApOwog
ICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFRpY2tldHtUaW1lfSA9ICRMYXlv
dXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICAgICAgQWdlICAgPT4gJFRpY2tldHsg
JFNlbGYtPntDb25maWd9LT57VGltZX0gfSwKICAgICAgICAgICAgICAgIFNwYWNlID0+ICcgJywK
ICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2hvdyB0aWNrZXQKICAgICAgICAk
TGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlj
a2V0R2VuZXJpY1JvdycsCiAgICAgICAgICAgIERhdGEgPT4gXCVUaWNrZXQsCiAgICAgICAgKTsK
CiAgICAgICAgIyBzaG93IHRpY2tldCBmbGFncwogICAgICAgIG15IEBUaWNrZXRNZXRhSXRlbXMg
PSAkTGF5b3V0T2JqZWN0LT5UaWNrZXRNZXRhSXRlbXMoCiAgICAgICAgICAgIFRpY2tldCA9PiBc
JVRpY2tldCwKICAgICAgICApOwogICAgICAgIGZvciBteSAkSXRlbSAoQFRpY2tldE1ldGFJdGVt
cykgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBO
YW1lID0+ICdHZW5lcmFsT3ZlcnZpZXdSb3cnLAogICAgICAgICAgICApOwogICAgICAgICAgICAk
TGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJn
ZVRpY2tldEdlbmVyaWNSb3dNZXRhJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAg
ICAgICAgICk7CiAgICAgICAgICAgIGlmICgkSXRlbSkgewogICAgICAgICAgICAgICAgJExheW91
dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdl
VGlja2V0R2VuZXJpY1Jvd01ldGFJbWFnZScsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiAk
SXRlbSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAg
ICMgc2F2ZSBjb2x1bW4gY29udGVudAogICAgICAgIG15ICREYXRhVmFsdWU7CgogICAgICAgICMg
Z2V0IG5lZWRlZCBvYmplY3RzCiAgICAgICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpP
TS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CiAgICAgICAg
bXkgJFVzZXJPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNl
cicpOwogICAgICAgIAogICAgICAgIG15ICVDdXN0b21lckluZm87CgogICAgICAgICMgc2hvdyBh
bGwgbmVlZGVkIGNvbHVtbnMKICAgICAgICBDT0xVTU46CiAgICAgICAgZm9yIG15ICRDb2x1bW4g
KEBDb2x1bW5zKSB7CgogICAgICAgICAgICAjIHNraXAgQ3VzdG9tZXJJRCBpZiBDdXN0b21lciBJ
bmZvcm1hdGlvbiBDZW50ZXIKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0FjdGlvbn0gZXEgJ0Fn
ZW50Q3VzdG9tZXJJbmZvcm1hdGlvbkNlbnRlcicgJiYgJENvbHVtbiBlcSAnQ3VzdG9tZXJJRCcg
KSB7CiAgICAgICAgICAgICAgICBuZXh0IENPTFVNTjsKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgaWYgKCAkQ29sdW1uICF+IG17XEEgRHluYW1pY0ZpZWxkX314bXMgKSB7CgogICAgICAgICAg
ICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAn
R2VuZXJhbE92ZXJ2aWV3Um93JywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAk
TGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50
TGFyZ2VUaWNrZXRHZW5lcmljVGlja2V0Q29sdW1uJywKICAgICAgICAgICAgICAgICAgICBEYXRh
ID0+IHt9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkQmxvY2tUeXBl
ID0gJyc7CiAgICAgICAgICAgICAgICBteSAkQ1NTQ2xhc3MgID0gJyc7CgogICAgICAgICAgICAg
ICAgaWYgKCAkQ29sdW1uIGVxICdUaWNrZXROdW1iZXInICkgewogICAgICAgICAgICAgICAgICAg
ICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdD
b250ZW50TGFyZ2VUaWNrZXRHZW5lcmljVGlja2V0TnVtYmVyJywKICAgICAgICAgICAgICAgICAg
ICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlVGlja2V0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFRpY2tldHtUaXRsZX0sCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAg
ICAgICBuZXh0IENPTFVNTjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lm
ICggJENvbHVtbiBlcSAnRXNjYWxhdGlvblRpbWUnICkgewogICAgICAgICAgICAgICAgICAgIG15
ICVFc2NhbGF0aW9uRGF0YTsKICAgICAgICAgICAgICAgICAgICAkRXNjYWxhdGlvbkRhdGF7RXNj
YWxhdGlvblRpbWV9ICAgICAgICAgICAgPSAkVGlja2V0e0VzY2FsYXRpb25UaW1lfTsKICAgICAg
ICAgICAgICAgICAgICAkRXNjYWxhdGlvbkRhdGF7RXNjYWxhdGlvbkRlc3RpbmF0aW9uRGF0ZX0g
PSAkVGlja2V0e0VzY2FsYXRpb25EZXN0aW5hdGlvbkRhdGV9OwoKICAgICAgICAgICAgICAgICAg
ICAkRXNjYWxhdGlvbkRhdGF7RXNjYWxhdGlvblRpbWVIdW1hbn0gPSAkTGF5b3V0T2JqZWN0LT5D
dXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgID0+
ICRFc2NhbGF0aW9uRGF0YXtFc2NhbGF0aW9uVGltZX0sCiAgICAgICAgICAgICAgICAgICAgICAg
IFRpbWVTaG93QWx3YXlzTG9uZyA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICBTcGFjZSAg
ICAgICAgICAgICAgPT4gJyAnLAogICAgICAgICAgICAgICAgICAgICkgfHwgJy0nOwogICAgICAg
ICAgICAgICAgICAgICRFc2NhbGF0aW9uRGF0YXtFc2NhbGF0aW9uVGltZVdvcmtpbmdUaW1lfSA9
ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICAgICAgICAgICAgICBBZ2Ug
ICAgICAgICAgICAgICAgPT4gJEVzY2FsYXRpb25EYXRhe0VzY2FsYXRpb25UaW1lV29ya2luZ1Rp
bWV9LAogICAgICAgICAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAg
ICAgICAgICAgICAgICAgICAgICAgU3BhY2UgICAgICAgICAgICAgID0+ICcgJywKICAgICAgICAg
ICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0e0Vz
Y2FsYXRpb25UaW1lfSAmJiAkVGlja2V0e0VzY2FsYXRpb25UaW1lfSA8IDYwICogNjAgKiAxICkg
ewogICAgICAgICAgICAgICAgICAgICAgICAkRXNjYWxhdGlvbkRhdGF7RXNjYWxhdGlvbkNsYXNz
fSA9ICdXYXJuaW5nJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
JExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0Nv
bnRlbnRMYXJnZVRpY2tldEdlbmVyaWNFc2NhbGF0aW9uVGltZScsCiAgICAgICAgICAgICAgICAg
ICAgICAgIERhdGEgPT4geyVFc2NhbGF0aW9uRGF0YX0sCiAgICAgICAgICAgICAgICAgICAgKTsK
ICAgICAgICAgICAgICAgICAgICBuZXh0IENPTFVNTjsKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnQWdlJyApIHsKICAgICAgICAgICAgICAgICAg
ICAkRGF0YVZhbHVlID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgICAg
ICAgICAgICAgIEFnZSAgID0+ICRUaWNrZXR7QWdlfSwKICAgICAgICAgICAgICAgICAgICAgICAg
U3BhY2UgPT4gJyAnLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ0VzY2FsYXRpb25Tb2x1dGlvblRpbWUn
ICkgewogICAgICAgICAgICAgICAgICAgICRCbG9ja1R5cGUgPSAnRXNjYWxhdGlvbic7CiAgICAg
ICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAog
ICAgICAgICAgICAgICAgICAgICAgICBBZ2UgPT4gJFRpY2tldHtTb2x1dGlvblRpbWV9IHx8IDAs
CiAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVTaG93QWx3YXlzTG9uZyA9PiAxLAogICAgICAg
ICAgICAgICAgICAgICAgICBTcGFjZSAgICAgICAgICAgICAgPT4gJyAnLAogICAgICAgICAgICAg
ICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXR7U29sdXRp
b25UaW1lfSAmJiAkVGlja2V0e1NvbHV0aW9uVGltZX0gPCA2MCAqIDYwICogMSApIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgJENTU0NsYXNzID0gJ1dhcm5pbmcnOwogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBl
cSAnRXNjYWxhdGlvblJlc3BvbnNlVGltZScgKSB7CiAgICAgICAgICAgICAgICAgICAgJEJsb2Nr
VHlwZSA9ICdFc2NhbGF0aW9uJzsKICAgICAgICAgICAgICAgICAgICAkRGF0YVZhbHVlID0gJExh
eW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA9PiAk
VGlja2V0e0ZpcnN0UmVzcG9uc2VUaW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAgICAgICBU
aW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgU3BhY2UgICAg
ICAgICAgICAgID0+ICcgJywKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAg
ICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZCAkVGlja2V0e0ZpcnN0UmVz
cG9uc2VUaW1lfQogICAgICAgICAgICAgICAgICAgICAgICAmJiAkVGlja2V0e0ZpcnN0UmVzcG9u
c2VUaW1lfSA8IDYwICogNjAgKiAxCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDU1NDbGFzcyA9ICdXYXJuaW5n
JzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICBlbHNpZiAoICRDb2x1bW4gZXEgJ0VzY2FsYXRpb25VcGRhdGVUaW1lJyApIHsKICAgICAgICAg
ICAgICAgICAgICAkQmxvY2tUeXBlID0gJ0VzY2FsYXRpb24nOwogICAgICAgICAgICAgICAgICAg
ICREYXRhVmFsdWUgPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAg
ICAgICAgICAgQWdlID0+ICRUaWNrZXR7VXBkYXRlVGltZX0gfHwgMCwKICAgICAgICAgICAgICAg
ICAgICAgICAgVGltZVNob3dBbHdheXNMb25nID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAg
IFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAg
ICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldHtVcGRhdGVUaW1lfSAmJiAkVGlja2V0
e1VwZGF0ZVRpbWV9IDwgNjAgKiA2MCAqIDEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRD
U1NDbGFzcyA9ICdXYXJuaW5nJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ1BlbmRpbmdUaW1lJyApIHsK
ICAgICAgICAgICAgICAgICAgICAkQmxvY2tUeXBlID0gJ0VzY2FsYXRpb24nOwogICAgICAgICAg
ICAgICAgICAgICREYXRhVmFsdWUgPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAg
ICAgICAgICAgICAgICAgICAgQWdlICAgPT4gJFRpY2tldHsnVW50aWxUaW1lJ30sCiAgICAgICAg
ICAgICAgICAgICAgICAgIFNwYWNlID0+ICcgJywKICAgICAgICAgICAgICAgICAgICApOwogICAg
ICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0e1VudGlsVGltZX0gJiYgJFRpY2tl
dHtVbnRpbFRpbWV9IDwgLTEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDU1NDbGFzcyA9
ICdXYXJuaW5nJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ093bmVyJyApIHsKCiAgICAgICAgICAgICAg
ICAgICAgIyBnZXQgb3duZXIgaW5mbwogICAgICAgICAgICAgICAgICAgIG15ICVPd25lckluZm8g
PSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJ
RCA9PiAkVGlja2V0e093bmVySUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAg
ICAgICAgICAgJERhdGFWYWx1ZSA9ICRPd25lckluZm97J1VzZXJGdWxsbmFtZSd9OwogICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdSZXNwb25zaWJs
ZScgKSB7CgogICAgICAgICAgICAgICAgICAgICMgZ2V0IHJlc3BvbnNpYmxlIGluZm8KICAgICAg
ICAgICAgICAgICAgICBteSAlUmVzcG9uc2libGVJbmZvID0gJFVzZXJPYmplY3QtPkdldFVzZXJE
YXRhKAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFRpY2tldHtSZXNwb25zaWJs
ZUlEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICREYXRhVmFs
dWUgPSAkUmVzcG9uc2libGVJbmZveydVc2VyRnVsbG5hbWUnfTsKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIGVsc2lmICgKICAgICAgICAgICAgICAgICAgICAkQ29sdW1uIGVxICdT
dGF0ZScKICAgICAgICAgICAgICAgICAgICB8fCAkQ29sdW1uIGVxICdMb2NrJwogICAgICAgICAg
ICAgICAgICAgIHx8ICRDb2x1bW4gZXEgJ1ByaW9yaXR5JwogICAgICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkQmxvY2tUeXBlID0gJ1RyYW5z
bGF0YWJsZSc7CiAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRUaWNrZXR7JENvbHVt
bn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEg
J0NyZWF0ZWQnIHx8ICRDb2x1bW4gZXEgJ0NoYW5nZWQnICkgewogICAgICAgICAgICAgICAgICAg
ICRCbG9ja1R5cGUgPSAnVGltZSc7CiAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9ICRU
aWNrZXR7JENvbHVtbn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAo
ICRDb2x1bW4gZXEgJ0N1c3RvbWVyTmFtZScgKSB7CgogICAgICAgICAgICAgICAgICAgICMgZ2V0
IGN1c3RvbWVyIG5hbWUKICAgICAgICAgICAgICAgICAgICBteSAkQ3VzdG9tZXJOYW1lOwogICAg
ICAgICAgICAgICAgICAgIGlmICggJFRpY2tldHtDdXN0b21lclVzZXJJRH0gKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICRDdXN0b21lck5hbWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6
OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyktPkN1c3RvbWVyTmFtZSgKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgJERhdGFWYWx1ZSA9ICRDdXN0b21lck5hbWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ0N1c3RvbWVyQ29tcGFueU5hbWUnICkgewogICAg
ICAgICAgICAgICAgICAgIG15ICVDdXN0b21lckNvbXBhbnlEYXRhOwogICAgICAgICAgICAgICAg
ICAgIGlmICggJFRpY2tldHtDdXN0b21lcklEfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAg
JUN1c3RvbWVyQ29tcGFueURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6
Q3VzdG9tZXJDb21wYW55JyktPkN1c3RvbWVyQ29tcGFueUdldCgKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEN1c3RvbWVySUQgPT4gJFRpY2tldHtDdXN0b21lcklEfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
JERhdGFWYWx1ZSA9ICRDdXN0b21lckNvbXBhbnlEYXRhe0N1c3RvbWVyQ29tcGFueU5hbWV9Owog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCBzdWJzdHIoICRDb2x1bW4s
IDAsIDggKSBlcSAnQ3VzdG9tZXInICkgewoKICAgICAgICAgICAgICAgICAgICBpZiAoICRUaWNr
ZXR7Q3VzdG9tZXJVc2VySUR9ICYmICElQ3VzdG9tZXJJbmZvICkgewogICAgICAgICAgICAgICAg
ICAgICAgICAlQ3VzdG9tZXJJbmZvID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06
OkN1c3RvbWVyVXNlcicpLT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVXNlciA9PiAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSwKICAgICAgICAgICAgICAg
ICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJERh
dGFWYWx1ZSA9ICRDdXN0b21lckluZm97JENvbHVtbn07CiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YVZhbHVlID0gJFRpY2tl
dHskQ29sdW1ufTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRDb2x1
bW4gZXEgJ1RpdGxlJyApIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9j
aygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAiQ29udGVudExhcmdlVGlja2V0VGl0
bGUiLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRpdGxlID0+ICIkRGF0YVZhbHVlICIgfHwgJycsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXaG9sZVRpdGxlID0+ICRXaG9sZVRpdGxlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ2xhc3MgICAgICA9PiAkQ1NTQ2xhc3MgfHwgJycsCiAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9j
aygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAiQ29udGVudExhcmdlVGlja2V0R2Vu
ZXJpY0NvbHVtbiRCbG9ja1R5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyaWNWYWx1ZSA9PiAkRGF0YVZhbHVlIHx8
ICctJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAkQ1NTQ2xh
c3MgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAg
ICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CgogICAgICAgICAgICAjIER5bmFt
aWMgZmllbGRzCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgbXkgJER5bmFtaWNG
aWVsZENvbmZpZzsKICAgICAgICAgICAgICAgIG15ICRERkNvbHVtbiA9ICRDb2x1bW47CiAgICAg
ICAgICAgICAgICAkREZDb2x1bW4gPX4gcy9EeW5hbWljRmllbGRfLy9nOwogICAgICAgICAgICAg
ICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICAgICAgZm9yIG15ICRERkNvbmZpZyAoIEB7ICRT
ZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1J
Q0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkREZDb25maWcpOwogICAgICAgICAgICAgICAg
ICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICRERkNvbmZpZy0+e05hbWV9IG5lICRERkNvbHVtbjsK
CiAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZyA9ICRERkNvbmZpZzsKICAg
ICAgICAgICAgICAgICAgICBsYXN0IERZTkFNSUNGSUVMRDsKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIG5leHQgQ09MVU1OIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0Zp
ZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICAgICAjIGdldCBmaWVsZCB2YWx1ZQogICAgICAgICAg
ICAgICAgbXkgJFZhbHVlID0gJEJhY2tlbmRPYmplY3QtPlZhbHVlR2V0KAogICAgICAgICAgICAg
ICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAg
ICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAg
ICAgICApOwoKICAgICAgICAgICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkQmFja2VuZE9iamVjdC0+
RGlzcGxheVZhbHVlUmVuZGVyKAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZp
ZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAg
ICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWVNYXhDaGFycyAgICAg
ID0+IDIwLAogICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0
T2JqZWN0LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0
LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRH
ZW5lcmljRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAg
ICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlU3RyZy0+e1ZhbHVlfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICRWYWx1
ZVN0cmctPntMaW5rfSApIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9j
aygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2Vu
ZXJpY0R5bmFtaWNGaWVsZExpbmsnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgICAgICAgICA9
PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUg
ICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMaW5rICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFZhbHVlU3Ry
Zy0+e0xpbmt9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZp
Zy0+e05hbWV9ID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAg
ICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHlu
YW1pY0ZpZWxkUGxhaW4nLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAg
ICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgfQoKICAgIH0KCiAgICAjIHNob3cgIm5vbmUi
IGlmIG5vIHRpY2tldCBpcyBhdmFpbGFibGUKICAgIGlmICggISRUaWNrZXRJRHMgfHwgIUB7JFRp
Y2tldElEc30gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5h
bWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNOb25lJywKICAgICAgICAgICAgRGF0YSA9
PiB7fSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgZm9yIHJlZnJlc2ggdGltZQogICAg
bXkgJFJlZnJlc2ggPSAnJzsKICAgIGlmICggJFNlbGYtPntVc2VyUmVmcmVzaFRpbWV9ICkgewog
ICAgICAgICRSZWZyZXNoID0gNjAgKiAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX07CgogICAgICAg
ICMgc2VuZCBkYXRhIHRvIEpTCiAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAg
ICAgICAgICBLZXkgICA9PiAnV2lkZ2V0UmVmcmVzaCcgLiAkV2lkZ2V0TmFtZSwKICAgICAgICAg
ICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJFNlbGYtPntO
YW1lfSwKICAgICAgICAgICAgICAgIE5hbWVIVE1MICAgICAgID0+ICRXaWRnZXROYW1lLAogICAg
ICAgICAgICAgICAgUmVmcmVzaFRpbWUgICAgPT4gJFJlZnJlc2gsCiAgICAgICAgICAgICAgICBD
dXN0b21lcklEICAgICA9PiAkUGFyYW17Q3VzdG9tZXJJRH0sCiAgICAgICAgICAgICAgICBDdXN0
b21lclVzZXJJRCA9PiAkUGFyYW17Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICAgICB9LAogICAg
ICAgICk7CiAgICB9CgogICAgIyBjaGVjayBmb3IgYWN0aXZlIGZpbHRlcnMgYW5kIGFkZCBhICdy
ZW1vdmUgZmlsdGVycycgYnV0dG9uIHRvIHRoZSB3aWRnZXQgaGVhZGVyCiAgICBteSAkRmlsdGVy
QWN0aXZlID0gMDsKICAgIGlmICggJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9ICYmIElz
SGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0gKSApIHsKICAg
ICAgICAkRmlsdGVyQWN0aXZlID0gMTsKICAgIH0KCiAgICAjIHNlbmQgZGF0YSB0byBKUwogICAg
JExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdXaWRnZXRDb250YWlu
ZXInIC4gJFdpZGdldE5hbWUsCiAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICBOYW1lICAg
ICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICBDdXN0b21lcklEICAgICA9PiAk
UGFyYW17Q3VzdG9tZXJJRH0sCiAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICRQYXJhbXtD
dXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgIEZpbHRlckFjdGl2ZSAgID0+ICRGaWx0ZXJBY3Rp
dmUsCiAgICAgICAgICAgIFNvcnRCeSAgICAgICAgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAnQWdl
JywKICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwK
ICAgICAgICAgICAgU29ydGluZ0NvbHVtbiAgPT4gJFBhcmFte1NvcnRpbmdDb2x1bW59LAogICAg
ICAgIH0sCiAgICApOwoKICAgIG15ICRDb250ZW50ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAog
ICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnREYXNoYm9hcmRNeVRpY2tldHMnLAogICAgICAg
IERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAogICAg
ICAgICAgICBOYW1lID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICV7JFN1bW1hcnl9LAog
ICAgICAgICAgICBGaWx0ZXJWYWx1ZSAgICAgID0+ICRTZWxmLT57RmlsdGVyfSwKICAgICAgICAg
ICAgQWRkaXRpb25hbEZpbHRlciA9PiAkU2VsZi0+e0FkZGl0aW9uYWxGaWx0ZXJ9LAogICAgICAg
ICAgICBDdXN0b21lcklEICAgICAgID0+ICRTZWxmLT57Q3VzdG9tZXJJRH0sCiAgICAgICAgICAg
IEN1c3RvbWVyVXNlcklEICAgPT4gJFNlbGYtPntDdXN0b21lclVzZXJJRH0sCiAgICAgICAgfSwK
ICAgICAgICBBSkFYID0+ICRQYXJhbXtBSkFYfSwKICAgICk7CgogICAgcmV0dXJuICRDb250ZW50
Owp9CgpzdWIgX0luaXRpYWxDb2x1bW5GaWx0ZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkg
PSBAXzsKCiAgICByZXR1cm4gaWYgISRQYXJhbXtDb2x1bW5OYW1lfTsKICAgIHJldHVybiBpZiAh
JFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyAkUGFyYW17Q29sdW1uTmFtZX0gfTsK
CiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6
T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICRMYWJlbCA9
ICRQYXJhbXtMYWJlbH0gfHwgJFBhcmFte0NvbHVtbk5hbWV9OwogICAgJExhYmVsID0gJExheW91
dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRMYWJlbCk7CgogICAgIyBzZXQg
Zml4ZWQgdmFsdWVzCiAgICBteSAkRGF0YSA9IFsKICAgICAgICB7CiAgICAgICAgICAgIEtleSAg
ID0+ICcnLAogICAgICAgICAgICBWYWx1ZSA9PiB1YyAkTGFiZWwsCiAgICAgICAgfSwKICAgIF07
CgogICAgIyBkZWZpbmUgaWYgY29sdW1uIGZpbHRlciB2YWx1ZXMgc2hvdWxkIGJlIHRyYW5zbGF0
YWJsZQogICAgbXkgJFRyYW5zbGF0aW9uT3B0aW9uID0gMDsKCiAgICBpZiAoCiAgICAgICAgJFBh
cmFte0NvbHVtbk5hbWV9IGVxICdTdGF0ZScKICAgICAgICB8fCAkUGFyYW17Q29sdW1uTmFtZX0g
ZXEgJ0xvY2snCiAgICAgICAgfHwgJFBhcmFte0NvbHVtbk5hbWV9IGVxICdQcmlvcml0eScKICAg
ICAgICApCiAgICB7CiAgICAgICAgJFRyYW5zbGF0aW9uT3B0aW9uID0gMTsKICAgIH0KCiAgICBt
eSAkQ2xhc3MgPSAnQ29sdW1uRmlsdGVyJzsKICAgIGlmICggJFBhcmFte0Nzc30gKSB7CiAgICAg
ICAgJENsYXNzIC49ICcgJyAuICRQYXJhbXtDc3N9OwogICAgfQoKICAgICMgYnVpbGQgc2VsZWN0
IEhUTUwKICAgIG15ICRDb2x1bW5GaWx0ZXJIVE1MID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxl
Y3Rpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ0NvbHVtbkZpbHRlcicgLiAkUGFyYW17Q29s
dW1uTmFtZX0gLiAkU2VsZi0+e05hbWV9LAogICAgICAgIERhdGEgICAgICAgID0+ICREYXRhLAog
ICAgICAgIENsYXNzICAgICAgID0+ICRDbGFzcywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAkVHJh
bnNsYXRpb25PcHRpb24sCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJycsCiAgICApOwogICAgcmV0
dXJuICRDb2x1bW5GaWx0ZXJIVE1MOwp9CgpzdWIgX0dldENvbHVtblZhbHVlcyB7CiAgICBteSAo
ICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpZiAhSXNTdHJpbmdXaXRoRGF0YSgg
JFBhcmFte0hlYWRlckNvbHVtbn0gKTsKCiAgICBteSAkSGVhZGVyQ29sdW1uID0gJFBhcmFte0hl
YWRlckNvbHVtbn07CiAgICBteSAlQ29sdW1uRmlsdGVyVmFsdWVzOwogICAgbXkgJFRpY2tldElE
czsKCiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte09yaWdpbmFsVGlja2V0SURz
fSApICkgewogICAgICAgICRUaWNrZXRJRHMgPSAkUGFyYW17T3JpZ2luYWxUaWNrZXRJRHN9Owog
ICAgfQoKICAgIGlmICggJEhlYWRlckNvbHVtbiAhfiBtL15EeW5hbWljRmllbGRfLyApIHsKICAg
ICAgICBteSAkRnVuY3Rpb25OYW1lID0gJEhlYWRlckNvbHVtbiAuICdGaWx0ZXJWYWx1ZXNHZXQn
OwogICAgICAgIGlmICggJEhlYWRlckNvbHVtbiBlcSAnQ3VzdG9tZXJJRCcgKSB7CiAgICAgICAg
ICAgICRGdW5jdGlvbk5hbWUgPSAnQ3VzdG9tZXJGaWx0ZXJWYWx1ZXNHZXQnOwogICAgICAgIH0K
CiAgICAgICAgJENvbHVtbkZpbHRlclZhbHVlc3skSGVhZGVyQ29sdW1ufSA9ICRLZXJuZWw6Ok9N
LT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkNvbHVtbkZpbHRlcicpLT4kRnVuY3Rpb25O
YW1lKAogICAgICAgICAgICBUaWNrZXRJRHMgICAgPT4gJFRpY2tldElEcywKICAgICAgICAgICAg
SGVhZGVyQ29sdW1uID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9
PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIERZ
TkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxm
LT57RHluYW1pY0ZpZWxkfSB9ICkgewoKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYg
IUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgbXkg
JEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1l
fTsKCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICRGaWVsZE5hbWUgbmUgJEhlYWRl
ckNvbHVtbjsKCiAgICAgICAgICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QK
ICAgICAgICAgICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6
OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgICAgICAgICBteSAkSXNGaWx0
cmFibGUgPSAkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICBEeW5h
bWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEJl
aGF2aW9yICAgICAgICAgICA9PiAnSXNGaWx0cmFibGUnLAogICAgICAgICAgICApOwoKICAgICAg
ICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRJc0ZpbHRyYWJsZTsKCiAgICAgICAgICAgICRT
ZWxmLT57VmFsaWRGaWx0ZXJhYmxlQ29sdW1uc30tPnskSGVhZGVyQ29sdW1ufSA9ICRJc0ZpbHRy
YWJsZTsKICAgICAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoJFRpY2tldElEcykgKSB7
CgogICAgICAgICAgICAgICAgIyBnZXQgdGhlIGhpc3RvcmljYWwgdmFsdWVzIGZvciB0aGUgZmll
bGQKICAgICAgICAgICAgICAgICRDb2x1bW5GaWx0ZXJWYWx1ZXN7JEhlYWRlckNvbHVtbn0gPSAk
QmFja2VuZE9iamVjdC0+Q29sdW1uRmlsdGVyVmFsdWVzR2V0KAogICAgICAgICAgICAgICAgICAg
IER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAg
ICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91
dHB1dDo6SFRNTDo6TGF5b3V0JyksCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SURzICAgICAg
ICAgID0+ICRUaWNrZXRJRHMsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAg
ICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICMgZ2V0IFBvc3NpYmxlVmFsdWVzCiAgICAg
ICAgICAgICAgICAkQ29sdW1uRmlsdGVyVmFsdWVzeyRIZWFkZXJDb2x1bW59ID0gJEJhY2tlbmRP
YmplY3QtPlBvc3NpYmxlVmFsdWVzR2V0KAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVs
ZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgKTsKICAgICAg
ICAgICAgfQogICAgICAgICAgICBsYXN0IERZTkFNSUNGSUVMRDsKICAgICAgICB9CiAgICB9Cgog
ICAgcmV0dXJuIFwlQ29sdW1uRmlsdGVyVmFsdWVzOwp9CgojID1vdmVyCgojID1oZWFkMiBfQ29s
dW1uRmlsdGVySlNPTigpCgojICAgICBjcmVhdGVzIGEgSlNPTiBzZWxlY3QgZmlsdGVyIGZvciBj
b2x1bW4gaGVhZGVyCgojICAgICBteSAkQ29sdW1uRmlsdGVySlNPTiA9ICRUaWNrZXRPdmVydmll
d1NtYWxsT2JqZWN0LT5fQ29sdW1uRmlsdGVySlNPTigKIyAgICAgICAgIENvbHVtbk5hbWUgPT4g
J1F1ZXVlJywKIyAgICAgICAgIExhYmVsICAgICAgPT4gJ1F1ZXVlJywKIyAgICAgICAgIENvbHVt
blZhbHVlcyA9PiB7CiMgICAgICAgICAgICAgMSA9PiAnUG9zdE1hc3RlcicsCiMgICAgICAgICAg
ICAgMiA9PiAnSnVuaycsCiMgICAgICAgICB9LAojICAgICAgICAgU2VsZWN0ZWRWYWx1ZSAnMScs
CiMgICAgICk7CgojID1jdXQKCnN1YiBfQ29sdW1uRmlsdGVySlNPTiB7CiAgICBteSAoICRTZWxm
LCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpZiAhJFBhcmFte0NvbHVtbk5hbWV9OwogICAg
cmV0dXJuIGlmICEkU2VsZi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57ICRQYXJhbXtDb2x1
bW5OYW1lfSB9OwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3Qg
PSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAg
bXkgJExhYmVsID0gJFBhcmFte0xhYmVsfTsKICAgICRMYWJlbCA9fiBzeyBcQSBEeW5hbWljRmll
bGRfIH17fWd4bXM7CiAgICAkTGFiZWwgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9
LT5UcmFuc2xhdGUoJExhYmVsKTsKCiAgICAjIHNldCBmaXhlZCB2YWx1ZXMKICAgIG15ICREYXRh
ID0gWwogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ0RlbGV0ZUZpbHRlcicsCiAgICAg
ICAgICAgIFZhbHVlID0+IHVjICRMYWJlbCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAg
ICAgS2V5ICAgICAgPT4gJy0nLAogICAgICAgICAgICBWYWx1ZSAgICA9PiAnLScsCiAgICAgICAg
ICAgIERpc2FibGVkID0+IDEsCiAgICAgICAgfSwKICAgIF07CgogICAgaWYgKCAkUGFyYW17Q29s
dW1uVmFsdWVzfSAmJiByZWYgJFBhcmFte0NvbHVtblZhbHVlc30gZXEgJ0hBU0gnICkgewoKICAg
ICAgICBteSAlVmFsdWVzID0gJXsgJFBhcmFte0NvbHVtblZhbHVlc30gfTsKCiAgICAgICAgIyBz
ZXQgcG9zc2libGUgdmFsdWVzCiAgICAgICAgZm9yIG15ICRWYWx1ZUtleSAoIHNvcnQgeyBsYyAk
VmFsdWVzeyRhfSBjbXAgbGMgJFZhbHVlc3skYn0gfSBrZXlzICVWYWx1ZXMgKSB7CiAgICAgICAg
ICAgIHB1c2ggQHskRGF0YX0sIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICRWYWx1ZUtleSwK
ICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZXN7JFZhbHVlS2V5fQogICAgICAgICAgICB9
OwogICAgICAgIH0KICAgIH0KCiAgICAjIGRlZmluZSBpZiBjb2x1bW4gZmlsdGVyIHZhbHVlcyBz
aG91bGQgYmUgdHJhbnNsYXRhYmxlCiAgICBteSAkVHJhbnNsYXRpb25PcHRpb24gPSAwOwoKICAg
IGlmICgKICAgICAgICAkUGFyYW17Q29sdW1uTmFtZX0gZXEgJ1N0YXRlJwogICAgICAgIHx8ICRQ
YXJhbXtDb2x1bW5OYW1lfSBlcSAnTG9jaycKICAgICAgICB8fCAkUGFyYW17Q29sdW1uTmFtZX0g
ZXEgJ1ByaW9yaXR5JwogICAgICAgICkKICAgIHsKICAgICAgICAkVHJhbnNsYXRpb25PcHRpb24g
PSAxOwogICAgfQoKICAgICMgYnVpbGQgc2VsZWN0IEhUTUwKICAgIG15ICRKU09OID0gJExheW91
dE9iamVjdC0+QnVpbGRTZWxlY3Rpb25KU09OKAogICAgICAgIFsKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJFBhcmFte0NvbHVt
bk5hbWV9IC4gJFBhcmFte0Rhc2hib2FyZE5hbWV9LAogICAgICAgICAgICAgICAgRGF0YSAgICAg
ICAgID0+ICREYXRhLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdDb2x1bW5GaWx0
ZXInLAogICAgICAgICAgICAgICAgU29ydCAgICAgICAgID0+ICdBbHBoYW51bWVyaWNLZXknLAog
ICAgICAgICAgICAgICAgVHJlZVZpZXcgICAgID0+IDEsCiAgICAgICAgICAgICAgICBTZWxlY3Rl
ZElEICAgPT4gJFBhcmFte1NlbGVjdGVkVmFsdWV9LAogICAgICAgICAgICAgICAgVHJhbnNsYXRp
b24gID0+ICRUcmFuc2xhdGlvbk9wdGlvbiwKICAgICAgICAgICAgICAgIEF1dG9Db21wbGV0ZSA9
PiAnb2ZmJywKICAgICAgICAgICAgfSwKICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gJEpT
T047Cn0KCnN1YiBfU2VhcmNoUGFyYW1zR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0g
QF87CgogICAgIyBnZXQgYWxsIHNlYXJjaCBiYXNlIGF0dHJpYnV0ZXMKICAgIG15ICVUaWNrZXRT
ZWFyY2g7CiAgICBteSAlRHluYW1pY0ZpZWxkc1BhcmFtZXRlcnM7CiAgICBteSBAUGFyYW1zID0g
c3BsaXQgLzsvLCAkU2VsZi0+e0NvbmZpZ30tPntBdHRyaWJ1dGVzfTsKCiAgICAjIHJlYWQgdXNl
ciBwcmVmZXJlbmNlcyBhbmQgY29uZmlnIHRvIGdldCBjb2x1bW5zIHRoYXQKICAgICMgc2hvdWxk
IGJlIHNob3duIGluIHRoZSBkYXNoYm9hcmQgd2lkZ2V0ICh0aGUgcHJlZmVyZW5jZXMKICAgICMg
aGF2ZSBwcmVjZWRlbmNlKQogICAgbXkgJVByZWZlcmVuY2VzID0gJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0UHJlZmVyZW5jZXMoCiAgICAgICAgVXNlcklEID0+
ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgY29sdW1uIG5hbWVzIGZyb20gUHJl
ZmVyZW5jZXMKICAgIG15ICRQcmVmZXJlbmNlc0NvbHVtbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6U3lzdGVtOjpKU09OJyktPkRlY29kZSgKICAgICAgICBEYXRhID0+ICRQcmVmZXJlbmNl
c3sgJFNlbGYtPntQcmVmS2V5Q29sdW1uc30gfSwKICAgICk7CgogICAgIyBjaGVjayBmb3IgZGVm
YXVsdCBzZXR0aW5ncwogICAgbXkgQENvbHVtbnM7CiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+
e0RlZmF1bHRDb2x1bW5zfSAmJiBJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntDb25maWd9LT57
RGVmYXVsdENvbHVtbnN9ICkgKSB7CiAgICAgICAgQENvbHVtbnMgPSBncmVwIHsgJFNlbGYtPntD
b25maWd9LT57RGVmYXVsdENvbHVtbnN9LT57JF99IGVxICcyJyB9CiAgICAgICAgICAgIHNvcnQg
eyAkU2VsZi0+X0RlZmF1bHRDb2x1bW5Tb3J0KCkgfSBrZXlzICV7ICRTZWxmLT57Q29uZmlnfS0+
e0RlZmF1bHRDb2x1bW5zfSB9OwogICAgfQogICAgaWYgKCRQcmVmZXJlbmNlc0NvbHVtbikgewog
ICAgICAgIGlmICggJFByZWZlcmVuY2VzQ29sdW1uLT57Q29sdW1uc30gJiYgJXsgJFByZWZlcmVu
Y2VzQ29sdW1uLT57Q29sdW1uc30gfSApIHsKICAgICAgICAgICAgQENvbHVtbnMgPSBncmVwIHsK
ICAgICAgICAgICAgICAgIGRlZmluZWQgJFByZWZlcmVuY2VzQ29sdW1uLT57Q29sdW1uc30tPnsk
X30KICAgICAgICAgICAgICAgICAgICAmJiAkUHJlZmVyZW5jZXNDb2x1bW4tPntDb2x1bW5zfS0+
eyRffSBlcSAnMScKICAgICAgICAgICAgfSBzb3J0IHsgJFNlbGYtPl9EZWZhdWx0Q29sdW1uU29y
dCgpIH0ga2V5cyAleyAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0Q29sdW1uc30gfTsKICAgICAg
ICB9CiAgICAgICAgaWYgKCAkUHJlZmVyZW5jZXNDb2x1bW4tPntPcmRlcn0gJiYgQHsgJFByZWZl
cmVuY2VzQ29sdW1uLT57T3JkZXJ9IH0gKSB7CiAgICAgICAgICAgIEBDb2x1bW5zID0gQHsgJFBy
ZWZlcmVuY2VzQ29sdW1uLT57T3JkZXJ9IH07CiAgICAgICAgfQoKICAgICAgICAjIHJlbW92ZSBk
dXBsaWNhdGUgY29sdW1ucwogICAgICAgIG15ICVVbmlxdWVDb2x1bW5zOwogICAgICAgIG15IEBD
b2x1bW5zRW5hYmxlZEF1eDsKCiAgICAgICAgZm9yIG15ICRDb2x1bW4gKEBDb2x1bW5zKSB7CiAg
ICAgICAgICAgIGlmICggISRVbmlxdWVDb2x1bW5zeyRDb2x1bW59ICkgewogICAgICAgICAgICAg
ICAgcHVzaCBAQ29sdW1uc0VuYWJsZWRBdXgsICRDb2x1bW47CiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgJFVuaXF1ZUNvbHVtbnN7JENvbHVtbn0gPSAxOwogICAgICAgIH0KCiAgICAgICAgIyBz
ZXQgZmlsdGVyZWQgY29sdW1uIGxpc3QKICAgICAgICBAQ29sdW1ucyA9IEBDb2x1bW5zRW5hYmxl
ZEF1eDsKICAgIH0KCiAgICAjIGFsd2F5cyBzZXQgVGlja2V0TnVtYmVyCiAgICBpZiAoICFncmVw
IHsgJF8gZXEgJ1RpY2tldE51bWJlcicgfSBAQ29sdW1ucyApIHsKICAgICAgICB1bnNoaWZ0IEBD
b2x1bW5zLCAnVGlja2V0TnVtYmVyJzsKICAgIH0KCiAgICAjIGFsc28gYWx3YXlzIHNldCBQcm9j
ZXNzSUQgYW5kIEFjdGl2aXR5SUQgKGZvciBwcm9jZXNzIHdpZGdldHMpCiAgICBpZiAoICRTZWxm
LT57Q29uZmlnfS0+e0lzUHJvY2Vzc1dpZGdldH0gKSB7CgogICAgICAgIG15IEBBbHdheXNDb2x1
bW5zID0gKAogICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkU2VsZi0+e1Byb2Nlc3NNYW5h
Z2VtZW50UHJvY2Vzc0lEfSwKICAgICAgICAgICAgJ0R5bmFtaWNGaWVsZF8nIC4gJFNlbGYtPntQ
cm9jZXNzTWFuYWdlbWVudEFjdGl2aXR5SUR9LAogICAgICAgICk7CiAgICAgICAgbXkgJFJlc29y
dDsKICAgICAgICBmb3IgbXkgJEFsd2F5c0NvbHVtbiAoQEFsd2F5c0NvbHVtbnMpIHsKICAgICAg
ICAgICAgaWYgKCAhZ3JlcCB7ICRfIGVxICRBbHdheXNDb2x1bW4gfSBAQ29sdW1ucyApIHsKICAg
ICAgICAgICAgICAgIHB1c2ggQENvbHVtbnMsICRBbHdheXNDb2x1bW47CiAgICAgICAgICAgICAg
ICAkUmVzb3J0ID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoJFJlc29y
dCkgewogICAgICAgICAgICBAQ29sdW1ucyA9IHNvcnQgeyAkU2VsZi0+X0RlZmF1bHRDb2x1bW5T
b3J0KCkgfSBAQ29sdW1uczsKICAgICAgICB9CiAgICB9CgogICAgewoKICAgICAgICAjIGxvb3Ag
dGhyb3VnaCBhbGwgdGhlIGR5bmFtaWMgZmllbGRzIHRvIGdldCB0aGUgb25lcyB0aGF0IHNob3Vs
ZCBiZSBzaG93bgogICAgICAgIERZTkFNSUNGSUVMRE5BTUU6CiAgICAgICAgZm9yIG15ICREeW5h
bWljRmllbGROYW1lIChAQ29sdW1ucykgewoKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTERO
QU1FIGlmICREeW5hbWljRmllbGROYW1lICF+IG17IER5bmFtaWNGaWVsZF8gfXhtczsKCiAgICAg
ICAgICAgICMgcmVtb3ZlIGR5bmFtaWMgZmllbGQgcHJlZml4CiAgICAgICAgICAgIG15ICRGaWVs
ZE5hbWUgPSAkRHluYW1pY0ZpZWxkTmFtZTsKICAgICAgICAgICAgJEZpZWxkTmFtZSA9fiBzL0R5
bmFtaWNGaWVsZF8vL2dpOwogICAgICAgICAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0t
PnskRmllbGROYW1lfSA9IDE7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHRoZSBkeW5hbWlj
IGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9ICRLZXJu
ZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxk
TGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+
IFsnVGlja2V0J10sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntEeW5hbWljRmllbGRG
aWx0ZXJ9IHx8IHt9LAogICAgKTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2Jq
ZWN0CiAgICBteSAkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lz
dGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIGdldCBmaWx0ZXJhYmxlIER5bmFt
aWMgZmllbGRzCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRz
IGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmll
bGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZ
TkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7Cgog
ICAgICAgIG15ICRJc0ZpbHRyYWJsZSA9ICRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAg
ICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAg
ICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNGaWx0cmFibGUnLAogICAgICAgICk7Cgog
ICAgICAgICMgaWYgdGhlIGR5bmFtaWMgZmllbGQgaXMgZmlsdGVyYWJsZSBhZGQgaXQgdG8gdGhl
IFZhbGlkRmlsdGVyYWJsZUNvbHVtbnMgaGFzaAogICAgICAgIGlmICgkSXNGaWx0cmFibGUpIHsK
ICAgICAgICAgICAgJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyAnRHluYW1pY0Zp
ZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9IDE7CiAgICAgICAgfQogICAg
fQoKICAgICMgZ2V0IHNvcnRhYmxlIER5bmFtaWMgZmllbGRzCiAgICAjIGN5Y2xlIHRyb3VnaCB0
aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJ
RUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNG
aWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERh
dGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgIG15ICRJc1NvcnRhYmxlID0gJEJhY2tl
bmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4g
JER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJ
c1NvcnRhYmxlJywKICAgICAgICApOwoKICAgICAgICAjIGlmIHRoZSBkeW5hbWljIGZpZWxkIGlz
IHNvcnRhYmxlIGFkZCBpdCB0byB0aGUgVmFsaWRTb3J0YWJsZUNvbHVtbnMgaGFzaAogICAgICAg
IGlmICgkSXNTb3J0YWJsZSkgewogICAgICAgICAgICAkU2VsZi0+e1ZhbGlkU29ydGFibGVDb2x1
bW5zfS0+eyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9
IDE7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHF1ZXVlIG9iamVjdAogICAgbXkgJFF1ZXVl
T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyk7CgogICAg
U1RSSU5HOgogICAgZm9yIG15ICRTdHJpbmcgKEBQYXJhbXMpIHsKICAgICAgICBuZXh0IFNUUklO
RyBpZiAhJFN0cmluZzsKICAgICAgICBteSAoICRLZXksICRWYWx1ZSApID0gc3BsaXQgLz0vLCAk
U3RyaW5nOwoKICAgICAgICBpZiAoICRLZXkgZXEgJ0N1c3RvbWVySUQnICkgewogICAgICAgICAg
ICAkS2V5ID0gIkN1c3RvbWVySURSYXciOwogICAgICAgIH0KCiAgICAgICAgIyBwdXNoIEFSUkFZ
UkVGIGF0dHJpYnV0ZXMgZGlyZWN0bHkgaW4gYW4gQVJSQVlSRUYKICAgICAgICBpZiAoCiAgICAg
ICAgICAgICRLZXkKICAgICAgICAgICAgPX4gL14oU3RhdGVUeXBlfFN0YXRlVHlwZUlEc3xRdWV1
ZXN8UXVldWVJRHN8VHlwZXN8VHlwZUlEc3xTdGF0ZXN8U3RhdGVJRHN8UHJpb3JpdGllc3xQcmlv
cml0eUlEc3xTZXJ2aWNlc3xTZXJ2aWNlSURzfFNMQXN8U0xBSURzfExvY2tzfExvY2tJRHN8T3du
ZXJJRHN8UmVzcG9uc2libGVJRHN8V2F0Y2hVc2VySURzfEFyY2hpdmVGbGFnc3xDcmVhdGVkVXNl
cklEc3xDcmVhdGVkVHlwZXN8Q3JlYXRlZFR5cGVJRHN8Q3JlYXRlZFByaW9yaXRpZXN8Q3JlYXRl
ZFByaW9yaXR5SURzfENyZWF0ZWRTdGF0ZXN8Q3JlYXRlZFN0YXRlSURzfENyZWF0ZWRRdWV1ZXN8
Q3JlYXRlZFF1ZXVlSURzKSQvCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIGlm
ICggJFZhbHVlID1+IG17LH1zbXggKSB7CiAgICAgICAgICAgICAgICBwdXNoIEB7ICRUaWNrZXRT
ZWFyY2h7JEtleX0gfSwgc3BsaXQoIC8sLywgJFZhbHVlICk7CiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBwdXNoIEB7ICRUaWNrZXRTZWFyY2h7JEtleX0g
fSwgJFZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIHBh
cmFtZXRlciBpcyBhIGR5bmFtaWMgZmllbGQgYW5kIGNhcHR1cmUgZHluYW1pYyBmaWVsZCBuYW1l
ICh3aXRoIER5bmFtaWNGaWVsZF8pCiAgICAgICAgIyBpbiAkMSBhbmQgdGhlIE9wZXJhdG9yIGlu
ICQyCiAgICAgICAgIyBwb3NzaWJsZSBEeW5hbWljIEZpZWxkcyBvcHRpb25zIGluY2x1ZGU6CiAg
ICAgICAgIyAgIER5bmFtaWNGaWVsZF9OYW1lWF9FcXVhbHM9MTIzOwogICAgICAgICMgICBEeW5h
bWljRmllbGRfTmFtZVhfTGlrZT12YWx1ZSo7CiAgICAgICAgIyAgIER5bmFtaWNGaWVsZF9OYW1l
WF9HcmVhdGVyVGhhbj0yMDAxLTAxLTAxIDAxOjAxOjAxOwogICAgICAgICMgICBEeW5hbWljRmll
bGRfTmFtZVhfR3JlYXRlclRoYW5FcXVhbHM9MjAwMS0wMS0wMSAwMTowMTowMTsKICAgICAgICAj
ICAgRHluYW1pY0ZpZWxkX05hbWVYX1NtYWxsZXJUaGFuPTIwMDItMDItMDIgMDI6MDI6MDI7CiAg
ICAgICAgIyAgIER5bmFtaWNGaWVsZF9OYW1lWF9TbWFsbGVyVGhhbkVxdWFscz0yMDAyLTAyLTAy
IDAyOjAyOjAyOwogICAgICAgIGVsc2lmICggJEtleSA9fiBte1xBIChEeW5hbWljRmllbGRfLis/
KSBfICguKz8pIFx6fXN4bSApIHsKCiAgICAgICAgICAgICMgcHJldmVudCBhZGRpbmcgUHJvY2Vz
c01hbmFnZW1lbnQgc2VhcmNoIHBhcmFtZXRlcnMgKGZvciBQcm9jZXNzV2lkZ2V0KQogICAgICAg
ICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0lzUHJvY2Vzc1dpZGdldH0gKSB7CiAgICAgICAg
ICAgICAgICBuZXh0IFNUUklORyBpZiAkMiBlcSAkU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50UHJv
Y2Vzc0lEfTsKICAgICAgICAgICAgICAgIG5leHQgU1RSSU5HIGlmICQyIGVxICRTZWxmLT57UHJv
Y2Vzc01hbmFnZW1lbnRBY3Rpdml0eUlEfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVz
aCBAeyAkRHluYW1pY0ZpZWxkc1BhcmFtZXRlcnN7JDF9LT57JDJ9IH0sICRWYWx1ZTsKICAgICAg
ICB9CgogICAgICAgIGVsc2lmICggIWRlZmluZWQgJFRpY2tldFNlYXJjaHskS2V5fSApIHsKCiAg
ICAgICAgICAgICMgY2hhbmdlIHNvcnQgYnksIGlmIG5lZWRlZAogICAgICAgICAgICBpZiAoCiAg
ICAgICAgICAgICAgICAkS2V5IGVxICdTb3J0QnknCiAgICAgICAgICAgICAgICAmJiAkU2VsZi0+
e1NvcnRCeX0KICAgICAgICAgICAgICAgICYmICRTZWxmLT57VmFsaWRTb3J0YWJsZUNvbHVtbnN9
LT57ICRTZWxmLT57U29ydEJ5fSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICRWYWx1ZSA9ICRTZWxmLT57U29ydEJ5fTsKICAgICAgICAgICAgfQogICAg
ICAgICAgICBlbHNpZiAoICRLZXkgZXEgJ1NvcnRCeScgJiYgISRTZWxmLT57VmFsaWRTb3J0YWJs
ZUNvbHVtbnN9LT57JFZhbHVlfSApIHsKICAgICAgICAgICAgICAgICRWYWx1ZSA9ICdBZ2UnOwog
ICAgICAgICAgICB9CiAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7JEtleX0gPSAkVmFsdWU7CiAg
ICAgICAgfQogICAgICAgIGVsc2lmICggIXJlZiAkVGlja2V0U2VhcmNoeyRLZXl9ICkgewogICAg
ICAgICAgICBteSAkVmFsdWVUbXAgPSAkVGlja2V0U2VhcmNoeyRLZXl9OwogICAgICAgICAgICAk
VGlja2V0U2VhcmNoeyRLZXl9ID0gWyRWYWx1ZVRtcF07CiAgICAgICAgICAgIHB1c2ggQHsgJFRp
Y2tldFNlYXJjaHskS2V5fSB9LCAkVmFsdWU7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAg
ICAgICAgICBwdXNoIEB7ICRUaWNrZXRTZWFyY2h7JEtleX0gfSwgJFZhbHVlOwogICAgICAgIH0K
ICAgIH0KICAgICVUaWNrZXRTZWFyY2ggPSAoCiAgICAgICAgJVRpY2tldFNlYXJjaCwKICAgICAg
ICAlRHluYW1pY0ZpZWxkc1BhcmFtZXRlcnMsCiAgICAgICAgUGVybWlzc2lvbiA9PiAkU2VsZi0+
e0NvbmZpZ30tPntQZXJtaXNzaW9ufSB8fCAncm8nLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+
e1VzZXJJRH0sCiAgICApOwoKICAgICMgQ3VzdG9tZXJJbmZvcm1hdGlvbkNlbnRlciBzaG93cyBk
YXRhIHBlciBDdXN0b21lcklECiAgICBpZiAoICRQYXJhbXtDdXN0b21lcklEfSApIHsKICAgICAg
ICAkVGlja2V0U2VhcmNoe0N1c3RvbWVySURSYXd9ID0gJFBhcmFte0N1c3RvbWVySUR9OwogICAg
fQoKICAgICMgZGVmaW5lIGZpbHRlciBhdHRyaWJ1dGVzCiAgICBteSBATXlRdWV1ZXMgPSAkUXVl
dWVPYmplY3QtPkdldEFsbEN1c3RvbVF1ZXVlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntV
c2VySUR9LAogICAgKTsKICAgIGlmICggIUBNeVF1ZXVlcyApIHsKICAgICAgICBATXlRdWV1ZXMg
PSAoOTk5Xzk5OSk7CiAgICB9CgogICAgIyBnZXQgYWxsIHF1ZXVlcyB0aGUgYWdlbnQgaXMgYWxs
b3dlZCB0byBzZWUgKGZvciBteSBzZXJ2aWNlcykKICAgIG15ICVWaWV3YWJsZVF1ZXVlcyA9ICRR
dWV1ZU9iamVjdC0+R2V0QWxsUXVldWVzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJ
RH0sCiAgICAgICAgVHlwZSAgID0+ICdybycsCiAgICApOwogICAgbXkgQFZpZXdhYmxlUXVldWVJ
RHMgPSBzb3J0IGtleXMgJVZpZXdhYmxlUXVldWVzOwogICAgaWYgKCAhQFZpZXdhYmxlUXVldWVJ
RHMgKSB7CiAgICAgICAgQFZpZXdhYmxlUXVldWVJRHMgPSAoOTk5Xzk5OSk7CiAgICB9CgogICAg
IyBnZXQgdGhlIGN1c3RvbSBzZXJ2aWNlcyBmcm9tIGFnZW50IHByZWZlcmVuY2VzCiAgICAjIHNl
dCB0aGUgc2VydmljZSBpZHMgdG8gYW4gYXJyYXkgb2Ygbm9uIGV4aXN0aW5nIHNlcnZpY2UgaWRz
ICgwKQogICAgbXkgQE15U2VydmljZUlEcyA9ICgwKTsKICAgIGlmICggJFNlbGYtPntVc2VUaWNr
ZXRTZXJ2aWNlfSApIHsKICAgICAgICBATXlTZXJ2aWNlSURzID0gJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpTeXN0ZW06OlNlcnZpY2UnKS0+R2V0QWxsQ3VzdG9tU2VydmljZXMoCiAgICAgICAg
ICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAh
ZGVmaW5lZCAkTXlTZXJ2aWNlSURzWzBdICkgewogICAgICAgICAgICBATXlTZXJ2aWNlSURzID0g
KDApOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlTG9ja0xpc3QgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OlN5c3RlbTo6TG9jaycpLT5Mb2NrTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNl
bGYtPntVc2VySUR9LAogICAgKTsKICAgIG15ICVMb2NrTmFtZTJJRCA9IHJldmVyc2UgJUxvY2tM
aXN0OwoKICAgIG15ICVUaWNrZXRTZWFyY2hTdW1tYXJ5ID0gKAogICAgICAgIE5ldyA9PiB7CiAg
ICAgICAgICAgIE93bmVySURzICA9PiBbICRTZWxmLT57VXNlcklEfSwgXSwKICAgICAgICAgICAg
U3RhdGVUeXBlID0+IFsgJ25ldycsIF0sCiAgICAgICAgICAgIExvY2tJRHMgICA9PiAkVGlja2V0
U2VhcmNoe0xvY2tJRHN9IC8vIHVuZGVmLAogICAgICAgIH0sCiAgICAgICAgT3BlbiA9PiB7CiAg
ICAgICAgICAgIE93bmVySURzICA9PiBbICRTZWxmLT57VXNlcklEfSwgXSwKICAgICAgICAgICAg
U3RhdGVUeXBlID0+IFsgJ29wZW4nLCBdLAogICAgICAgICAgICBMb2NrSURzICAgPT4gJFRpY2tl
dFNlYXJjaHtMb2NrSURzfSAvLyB1bmRlZiwKICAgICAgICB9LAogICAgICAgIFJlbWluZGVyID0+
IHsKICAgICAgICAgICAgT3duZXJJRHMgID0+IFsgJFNlbGYtPntVc2VySUR9LCBdLAogICAgICAg
ICAgICBTdGF0ZVR5cGUgPT4gWyAncGVuZGluZyByZW1pbmRlcicsIF0sCiAgICAgICAgICAgIExv
Y2tJRHMgICA9PiAkVGlja2V0U2VhcmNoe0xvY2tJRHN9IC8vIHVuZGVmLAogICAgICAgIH0sCiAg
ICAgICAgUGVuZGluZyA9PiB7CiAgICAgICAgICAgIE93bmVySURzICA9PiBbICRTZWxmLT57VXNl
cklEfSwgXSwKICAgICAgICAgICAgU3RhdGVUeXBlID0+IFsgJ3BlbmRpbmcgYXV0bycsIF0sCiAg
ICAgICAgICAgIExvY2tJRHMgICA9PiAkVGlja2V0U2VhcmNoe0xvY2tJRHN9IC8vIHVuZGVmLAog
ICAgICAgIH0sCiAgICApOwoKICAgIG15ICRDb25maWdPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9N
LT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkU2hvd0Nsb3NlZFRpY2tldHMgPSAkQ29u
ZmlnT2JqZWN0LT5HZXQoJ0Rhc2hib2FyZE15VGlja2V0czo6U2hvd0Nsb3NlZFRpY2tldHMnKTsK
ICAgIGlmICggJFNob3dDbG9zZWRUaWNrZXRzICkgewogICAgICAgICRUaWNrZXRTZWFyY2hTdW1t
YXJ5e0Nsb3NlZH0gPSB7CiAgICAgICAgICAgIE93bmVySURzICA9PiBbICRTZWxmLT57VXNlcklE
fSwgXSwKICAgICAgICAgICAgU3RhdGVUeXBlID0+IFsgJ2Nsb3NlZCcsIF0sCiAgICAgICAgICAg
IExvY2tJRHMgICA9PiAkVGlja2V0U2VhcmNoe0xvY2tJRHN9IC8vIHVuZGVmLAogICAgICAgIH07
CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0FjdGlvbn0gZXEgJ0FnZW50Q3VzdG9tZXJVc2VySW5m
b3JtYXRpb25DZW50ZXInICkgewoKICAgICAgICAjIEFkZCBmaWx0ZXJzIGZvciBhc3NpZ2VuZCBh
bmQgYWNjZXNzaWJsZSB0aWNrZXRzIGZvciB0aGUgY3VzdG9tZXIgdXNlciBpbmZvcm1hdGlvbiBj
ZW50ZXIgYXMgYQogICAgICAgICMgICBhZGRpdGlvbmFsIGZpbHRlciB0b2dldGhlciB3aXRoIHRo
ZSBvdGhlciBmaWx0ZXJzLiBPbmUgb2YgdGhlbSBtdXN0IGJlIGFsd2F5cyBhY3RpdmUuCiAgICAg
ICAgJVRpY2tldFNlYXJjaFN1bW1hcnkgPSAoCiAgICAgICAgICAgIEFzc2lnbmVkVG9DdXN0b21l
clVzZXIgPT4gewogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VyTG9naW5SYXcgPT4gJFBhcmFt
e0N1c3RvbWVyVXNlcklEfSAvLyB1bmRlZiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQWNj
ZXNzaWJsZUZvckN1c3RvbWVyVXNlciA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJJ
RCA9PiAkUGFyYW17Q3VzdG9tZXJVc2VySUR9IC8vIHVuZGVmLAogICAgICAgICAgICB9LAogICAg
ICAgICAgICAlVGlja2V0U2VhcmNoU3VtbWFyeSwKICAgICAgICApOwogICAgfQoKICAgIGlmICgg
ZGVmaW5lZCAkVGlja2V0U2VhcmNoe0xvY2tJRHN9IHx8IGRlZmluZWQgJFRpY2tldFNlYXJjaHtM
b2Nrc30gKSB7CiAgICAgICAgZGVsZXRlICRUaWNrZXRTZWFyY2hTdW1tYXJ5e0xvY2tlZH07CiAg
ICB9CgogICAgaWYgKCBkZWZpbmVkICRUaWNrZXRTZWFyY2h7V2F0Y2hVc2VySURzfSApIHsKICAg
ICAgICBkZWxldGUgJFRpY2tldFNlYXJjaFN1bW1hcnl7V2F0Y2hlcn07CiAgICB9CgogICAgaWYg
KCBkZWZpbmVkICRUaWNrZXRTZWFyY2h7UmVzcG9uc2libGVJRHN9ICkgewogICAgICAgIGRlbGV0
ZSAkVGlja2V0U2VhcmNoU3VtbWFyeXtSZXNwb25zaWJsZX07CiAgICB9CgogICAgaWYgKCBkZWZp
bmVkICRUaWNrZXRTZWFyY2h7UXVldWVJRHN9IHx8IGRlZmluZWQgJFRpY2tldFNlYXJjaHtRdWV1
ZXN9ICkgewogICAgICAgIGRlbGV0ZSAkVGlja2V0U2VhcmNoU3VtbWFyeXtNeVF1ZXVlc307CiAg
ICAgICAgZGVsZXRlICRUaWNrZXRTZWFyY2hTdW1tYXJ5e015U2VydmljZXN9LT57UXVldWVJRHN9
OwogICAgfQoKICAgIGlmICggISRTZWxmLT57VXNlVGlja2V0U2VydmljZX0gKSB7CiAgICAgICAg
ZGVsZXRlICRUaWNrZXRTZWFyY2hTdW1tYXJ5e015U2VydmljZXN9OwogICAgfQoKICAgIHJldHVy
biAoCiAgICAgICAgQ29sdW1ucyAgICAgICAgICAgICA9PiBcQENvbHVtbnMsCiAgICAgICAgVGlj
a2V0U2VhcmNoICAgICAgICA9PiBcJVRpY2tldFNlYXJjaCwKICAgICAgICBUaWNrZXRTZWFyY2hT
dW1tYXJ5ID0+IFwlVGlja2V0U2VhcmNoU3VtbWFyeSwKICAgICk7Cn0KCnN1YiBfRGVmYXVsdENv
bHVtblNvcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRGVmYXVs
dENvbHVtbnMgPSAoCiAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICA9PiAxMDAsCiAgICAg
ICAgQWdlICAgICAgICAgICAgICAgICAgICA9PiAxMTAsCiAgICAgICAgQ2hhbmdlZCAgICAgICAg
ICAgICAgICA9PiAxMTEsCiAgICAgICAgUGVuZGluZ1RpbWUgICAgICAgICAgICA9PiAxMTIsCiAg
ICAgICAgRXNjYWxhdGlvblRpbWUgICAgICAgICA9PiAxMTMsCiAgICAgICAgRXNjYWxhdGlvblNv
bHV0aW9uVGltZSA9PiAxMTQsCiAgICAgICAgRXNjYWxhdGlvblJlc3BvbnNlVGltZSA9PiAxMTUs
CiAgICAgICAgRXNjYWxhdGlvblVwZGF0ZVRpbWUgICA9PiAxMTYsCiAgICAgICAgVGl0bGUgICAg
ICAgICAgICAgICAgICA9PiAxMjAsCiAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICA9PiAx
MzAsCiAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICA9PiAxNDAsCiAgICAgICAgUXVldWUg
ICAgICAgICAgICAgICAgICA9PiAxNTAsCiAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICA9
PiAxNjAsCiAgICAgICAgUmVzcG9uc2libGUgICAgICAgICAgICA9PiAxNjEsCiAgICAgICAgQ3Vz
dG9tZXJJRCAgICAgICAgICAgICA9PiAxNzAsCiAgICAgICAgQ3VzdG9tZXJOYW1lICAgICAgICAg
ICA9PiAxNzEsCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgICAgICAgICA9PiAxNzIsCiAgICAgICAg
VHlwZSAgICAgICAgICAgICAgICAgICA9PiAxODAsCiAgICAgICAgU2VydmljZSAgICAgICAgICAg
ICAgICA9PiAxOTEsCiAgICAgICAgU0xBICAgICAgICAgICAgICAgICAgICA9PiAxOTIsCiAgICAg
ICAgUHJpb3JpdHkgICAgICAgICAgICAgICA9PiAxOTMsCiAgICApOwoKICAgICMgc2V0IGRlZmF1
bHQgb3JkZXIgb2YgUHJvY2Vzc01hbmFnZW1lbnQgY29sdW1ucyAoZm9yIHByb2Nlc3Mgd2lkZ2V0
cykKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSApIHsKICAgICAg
ICAkRGVmYXVsdENvbHVtbnN7IkR5bmFtaWNGaWVsZF8kU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50
UHJvY2Vzc0lEfSJ9ICA9IDEwMTsKICAgICAgICAkRGVmYXVsdENvbHVtbnN7IkR5bmFtaWNGaWVs
ZF8kU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50QWN0aXZpdHlJRH0ifSA9IDEwMjsKICAgIH0KCiAg
ICAjIGR5bmFtaWMgZmllbGRzIGNhbiBub3QgYmUgb24gdGhlIERlZmF1bHRDb2x1bW5zIHNvcnRp
bmcgaGFzaAogICAgIyB3aGVuIGNvbXBhcmluZyAyIGR5bmFtaWMgZmllbGRzIHNvcnRpbmcgbXVz
dCBiZSBhbHBoYWJldGljYWwKICAgIGlmICggISREZWZhdWx0Q29sdW1uc3skYX0gJiYgISREZWZh
dWx0Q29sdW1uc3skYn0gKSB7CiAgICAgICAgcmV0dXJuICRhIGNtcCAkYjsKICAgIH0KCiAgICAj
IHdoZW4gYSBkeW5hbWljIGZpZWxkIGlzIGNvbXBhcmVkIHRvIGEgdGlja2V0IGF0dHJpYnV0ZSBp
dCBtdXN0IGJlIGhpZ2hlcgogICAgZWxzaWYgKCAhJERlZmF1bHRDb2x1bW5zeyRhfSApIHsKICAg
ICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIHdoZW4gYSB0aWNrZXQgYXR0cmlidXRlIGlzIGNv
bXBhcmVkIHRvIGEgZHluYW1pYyBmaWVsZCBpdCBtdXN0IGJlIGxvd2VyCiAgICBlbHNpZiAoICEk
RGVmYXVsdENvbHVtbnN7JGJ9ICkgewogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICAjIG90
aGVyd2lzZSBkbyBhIG51bWVyaWNhbCBjb21wYXJpc29uIHdpdGggdGhlIHRpY2tldCBhdHRyaWJ1
dGVzCiAgICByZXR1cm4gJERlZmF1bHRDb2x1bW5zeyRhfSA8PT4gJERlZmF1bHRDb2x1bW5zeyRi
fTsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoYykgMjAxOC0gUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDovL3Blcmwt
c2VydmljZXMuZGUKIyBCYXNlZCBvbiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5k
YXJkL0FnZW50RGFzaGJvYXJkVGlja2V0TXlUaWNrZXRzRGFzaGxldC50dCBjb3B5cmlnaHQgKGMp
IDIwMTQtMjAxOCBNYXdvaCBHbWJICiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJT
T0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxl
IENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90
IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwu
dHh0LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmlj
RmlsdGVyIikgJV0KPHVsIGNsYXNzPSJUYWIgQWN0aW9ucyI+CiAgICA8bGkgY2xhc3M9IlslIERh
dGEuaXRlbSgiTmV3OjpTZWxlY3RlZCIpIHwgaHRtbCAlXSI+PGEgaHJlZj0iIyIgaWQ9IkRhc2hi
b2FyZFslIERhdGEuTmFtZSB8IGh0bWwgJV1OZXciIGRhdGEtZmlsdGVyPSJOZXciPlslIFRyYW5z
bGF0ZSgiTmV3IHRpY2tldHMiKSB8IGh0bWwgJV0gKFslIERhdGEuTmV3IHwgaHRtbCAlXSk8L2E+
PC9saT4KICAgIDxsaSBjbGFzcz0iWyUgRGF0YS5pdGVtKCJPcGVuOjpTZWxlY3RlZCIpIHwgaHRt
bCAlXSI+PGEgaHJlZj0iIyIgaWQ9IkRhc2hib2FyZFslIERhdGEuTmFtZSB8IGh0bWwgJV1PcGVu
IiBkYXRhLWZpbHRlcj0iT3BlbiI+WyUgVHJhbnNsYXRlKCJPcGVuIHRpY2tldHMiKSB8IGh0bWwg
JV0gKFslIERhdGEuT3BlbiB8IGh0bWwgJV0pPC9hPjwvbGk+CiAgICA8bGkgY2xhc3M9IlslIERh
dGEuaXRlbSgiUmVtaW5kZXI6OlNlbGVjdGVkIikgfCBodG1sICVdIj48YSBocmVmPSIjIiBpZD0i
RGFzaGJvYXJkWyUgRGF0YS5OYW1lIHwgaHRtbCAlXVJlbWluZGVyIiBkYXRhLWZpbHRlcj0iUmVt
aW5kZXIiPlslIFRyYW5zbGF0ZSgiUmVtaW5kZXIgdGlja2V0cyIpIHwgaHRtbCAlXSAoWyUgRGF0
YS5SZW1pbmRlciB8IGh0bWwgJV0pPC9hPjwvbGk+CiAgICA8bGkgY2xhc3M9IlslIERhdGEuaXRl
bSgiUGVuZGluZzo6U2VsZWN0ZWQiKSB8IGh0bWwgJV0iPjxhIGhyZWY9IiMiIGlkPSJEYXNoYm9h
cmRbJSBEYXRhLk5hbWUgfCBodG1sICVdUGVuZGluZyIgZGF0YS1maWx0ZXI9IlBlbmRpbmciPlsl
IFRyYW5zbGF0ZSgiUGVuZGluZyB0aWNrZXRzIikgfCBodG1sICVdIChbJSBEYXRhLlBlbmRpbmcg
fCBodG1sICVdKTwvYT48L2xpPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNr
ZXRHZW5lcmljRmlsdGVyQ2xvc2VkIikgJV0KICAgIDxsaSBjbGFzcz0iWyUgRGF0YS5pdGVtKCJD
bG9zZWQ6OlNlbGVjdGVkIikgfCBodG1sICVdIj48YSBocmVmPSIjIiBpZD0iRGFzaGJvYXJkWyUg
RGF0YS5OYW1lIHwgaHRtbCAlXUNsb3NlZCIgZGF0YS1maWx0ZXI9IkNsb3NlZCI+WyUgVHJhbnNs
YXRlKCJDbG9zZWQgdGlja2V0cyIpIHwgaHRtbCAlXSAoWyUgRGF0YS5DbG9zZWQgfCBodG1sICVd
KTwvYT48L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0Zp
bHRlckNsb3NlZCIpICVdCjwvdWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRp
Y2tldEdlbmVyaWNGaWx0ZXJOYXZCYXIiKSAlXQo8c3BhbiBjbGFzcz0iUGFnaW5hdGlvbiI+CiAg
ICBbJSBEYXRhLlNpdGVOYXZCYXIgJV0KPC9zcGFuPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVu
dExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlck5hdkJhciIpICVdClslIFJlbmRlckJsb2NrRW5kKCJD
b250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyIikgJV0KCiM8IS0tIFRoaXMgZm9ybSB3aWxs
IG5vdCBiZSBzdWJtaXR0ZWQsIHdlIG5lZWQgaXQgZm9yIHRoZSBBSkFYIGNhbGxzLiAtLT4KPGZv
cm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9
Im11bHRpcGFydC9mb3JtLWRhdGEiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ3Vz
dG9tZXJJRCIgdmFsdWU9IlslIERhdGEuQ3VzdG9tZXJJRCB8IGh0bWwgJV0iLz4KICAgIDxpbnB1
dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkZpbHRlclslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGlkPSJG
aWx0ZXJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5GaWx0ZXJWYWx1ZSB8
IGh0bWwgJV0iIC8+CiAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgPHRoZWFk
PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyIikg
JV0KICAgICAgICAgICAgPHRyPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiR2VuZXJhbE92ZXJ2aWV3
SGVhZGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVy
aWNIZWFkZXJNZXRhIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iRGFzaGJvYXJkSGVh
ZGVyIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRM
YXJnZVRpY2tldEdlbmVyaWNIZWFkZXJNZXRhTGluayIpICVdCiAgICAgICAgICAgICAgICAgICAg
PGEgaWQ9IlslIERhdGEuSGVhZGVyQ29sdW1uTmFtZSB8IGh0bWwgJV1PdmVydmlld0NvbnRyb2xb
JSBEYXRhLk5hbWUgfCBodG1sICVdIiBuYW1lPSJbJSBEYXRhLkhlYWRlckNvbHVtbk5hbWUgfCBo
dG1sICVdT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaHJlZj0iIyIgdGl0
bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIiA+PC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29u
dGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlck1ldGFMaW5rIikgJV0KWyUgUmVuZGVyQmxvY2tT
dGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlck1ldGFFbXB0eSIpICVdCiAgICAg
ICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLkhlYWRlckNvbHVt
bk5hbWUpIHwgaHRtbCAlXSI+PC9zcGFuPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdl
VGlja2V0R2VuZXJpY0hlYWRlck1ldGFFbXB0eSIpICVdCgogICAgICAgICAgICAgICAgPC90aD4K
WyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJNZXRhIikg
JV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJU
aWNrZXRIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRH
ZW5lcmljSGVhZGVyVGlja2V0TnVtYmVyQ29sdW1uIikgJV0KICAgICAgICAgICAgICAgIDx0aCBj
bGFzcz0iRGFzaGJvYXJkSGVhZGVyIFRpY2tldE51bWJlciBbJSBEYXRhLkNTUyB8IGh0bWwgJV0i
IGRhdGEtY29sdW1uPSJUaWNrZXROdW1iZXIiPgogICAgICAgICAgICAgICAgICAgIDxhIGlkPSJU
aWNrZXROdW1iZXJPdmVydmlld0NvbnRyb2xbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBuYW1lPSJU
aWNrZXROdW1iZXJPdmVydmlld0NvbnRyb2xbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBocmVmPSIj
IiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iID5bJSBDb25maWcoIlRpY2tldDo6SG9v
ayIpICVdPC9hPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRl
bnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJUaWNrZXROdW1iZXJDb2x1bW4iKSAlXQoKWyUgUmVu
ZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbiIpICVd
CiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkRhc2hib2FyZEhlYWRlciBbJSBEYXRhLkhlYWRl
ckNvbHVtbk5hbWUgfCBodG1sICVdIFslIERhdGEuQ1NTIHwgaHRtbCAlXSIgZGF0YS1jb2x1bW49
IlslIERhdGEuSGVhZGVyQ29sdW1uTmFtZSB8IGh0bWwgJV0iPgoKWyUgUmVuZGVyQmxvY2tTdGFy
dCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmsiKSAlXQog
ICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJDb2x1bW5TZXR0aW5nc1RyaWdn
ZXIiIHRpdGxlPSJbJSBEYXRhLkZpbHRlclRpdGxlIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAg
ICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1maWx0ZXIiPjwvaT4KICAgICAgICAgICAgICAgICAg
ICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29sdW1uU2V0dGluZ3NDb250
YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb2x1bW5TZXR0aW5n
c0JveCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNvbHVtbkZpbHRlclN0
cmcgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRl
ckNvbHVtbkZpbHRlckxpbmtDdXN0b21lcklEU2VhcmNoIikgJV0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iQ3VzdG9tZXJJREF1dG9Db21wbGV0
ZSIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VU
aWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyTGlua0N1c3RvbWVySURTZWFyY2giKSAlXQoK
WyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVt
bkZpbHRlckxpbmtVc2VyU2VhcmNoIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxp
bnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iVXNlckF1dG9Db21wbGV0ZSIgYXV0b2NvbXBsZXRlPSJv
ZmYiIC8+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVy
Q29sdW1uRmlsdGVyTGlua1VzZXJTZWFyY2giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGEgaHJlZj0iIyIgY2xhc3M9IkRlbGV0ZUZpbHRlciBIaWRkZW4iPjxpIGNsYXNzPSJmYSBm
YS10cmFzaC1vIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGEgaWQ9IlslIERhdGEu
SGVhZGVyQ29sdW1uTmFtZSB8IGh0bWwgJV1PdmVydmlld0NvbnRyb2xbJSBEYXRhLk5hbWUgfCBo
dG1sICVdIiBuYW1lPSJbJSBEYXRhLkhlYWRlckNvbHVtbk5hbWUgfCBodG1sICVdT3ZlcnZpZXdD
b250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaHJlZj0iIyIgdGl0bGU9IlslIERhdGEuVGl0
bGUgfCBodG1sICVdIiA+WyUgRGF0YS5IZWFkZXJOYW1lVHJhbnNsYXRlZCB8IGh0bWwgJV08L2E+
CgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVt
bkZpbHRlckxpbmsiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0
R2VuZXJpY0hlYWRlckNvbHVtbkxpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgIDxhIGlkPSJb
JSBEYXRhLkhlYWRlckNvbHVtbk5hbWUgfCBodG1sICVdT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5O
YW1lIHwgaHRtbCAlXSIgbmFtZT0iWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXU92
ZXJ2aWV3Q29udHJvbFslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGhyZWY9IiMiIHRpdGxlPSJbJSBE
YXRhLlRpdGxlIHwgaHRtbCAlXSIgPlslIERhdGEuSGVhZGVyTmFtZVRyYW5zbGF0ZWQgfCBodG1s
ICVdPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRl
ckNvbHVtbkxpbmsiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0
R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJl
Zj0iIyIgY2xhc3M9IkNvbHVtblNldHRpbmdzVHJpZ2dlciIgdGl0bGU9IlslIERhdGEuRmlsdGVy
VGl0bGUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZh
LWZpbHRlciI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJDb2x1bW5TZXR0aW5nc0NvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9IkNvbHVtblNldHRpbmdzQm94Ij4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFslIERhdGEuQ29sdW1uRmlsdGVyU3RyZyAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0
KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyTGlua0N1c3RvbWVy
VXNlclNlYXJjaCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0i
dGV4dCIgY2xhc3M9IkN1c3RvbWVyVXNlckF1dG9Db21wbGV0ZSIgYXV0b2NvbXBsZXRlPSJvZmYi
IC8+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29s
dW1uRmlsdGVyTGlua0N1c3RvbWVyVXNlclNlYXJjaCIpICVdCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iRGVsZXRlRmlsdGVyIEhpZGRlbiI+PGkgY2xhc3M9
ImZhIGZhLXRyYXNoLW8iPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog
ICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNz
PSJHcmF5IiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iID5bJSBEYXRhLkhlYWRlck5h
bWVUcmFuc2xhdGVkIHwgaHRtbCAlXTwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRM
YXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXIiKSAlXQoKWyUgUmVuZGVyQmxvY2tT
dGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkVtcHR5IikgJV0KICAg
ICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iR3JheSIgdGl0bGU9IlslIERhdGEuVGl0bGUg
fCBodG1sICVdIiA+WyUgRGF0YS5IZWFkZXJOYW1lVHJhbnNsYXRlZCAlXTwvc3Bhbj4KWyUgUmVu
ZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5FbXB0eSIp
ICVdCiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdl
VGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbiIpICVdClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50
TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyVGlja2V0SGVhZGVyIikgJV0KClslIFJlbmRlckJsb2Nr
RW5kKCJHZW5lcmFsT3ZlcnZpZXdIZWFkZXIiKSAlXQoKICAgICAgICAgICAgPC90cj4KClslIFJl
bmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyIikgJV0KICAgICAg
ICA8L3RoZWFkPgoKICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRM
YXJnZVRpY2tldEdlbmVyaWNSb3ciKSAlXQogICAgICAgICAgICA8dHIgY2xhc3M9Ik1hc3RlckFj
dGlvbiI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJHZW5lcmFsT3ZlcnZpZXdSb3ciKSAlXQoKWyUg
UmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY1Jvd01ldGEiKSAlXQog
ICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJbJSBEYXRhLkNsYXNzVGFibGUgfCBodG1sICVdIEZs
YWdzIiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuVGl0bGUpIHwgaHRtbCAlXSI+ClslIFJlbmRl
ckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNSb3dNZXRhSW1hZ2UiKSAlXQog
ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlslIERhdGEuQ2xhc3MgfCBodG1sICVdIFNt
YWxsIiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuVGl0bGUpIHwgaHRtbCAlXSI+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJbJSBEYXRhLkNsYXNzU3BhbiB8IGh0bWwgJV0i
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXN0YXIiPjwvaT4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1zdGFyIj48L2k+CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+WyUgVHJhbnNsYXRlKERhdGEuVGl0bGUpIHwg
aHRtbCAlXTwvZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAg
ICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVy
aWNSb3dNZXRhSW1hZ2UiKSAlXQogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tF
bmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNSb3dNZXRhIikgJV0KCiMgICAgICAgICAgICA8
dGQgY2xhc3M9IlcxMHBjIj4KIyAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2Vs
aW5rIikgJV1BY3Rpb249QWdlbnRUaWNrZXRab29tO1RpY2tldElEPVslIERhdGEuVGlja2V0SUQg
JV0iIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSIgY2xhc3M9IkFzQmxvY2sgTWFzdGVy
QWN0aW9uTGluayI+WyUgRGF0YS5UaWNrZXROdW1iZXIgJV08L2E+CiMgICAgICAgICAgICA8L3Rk
PgojICAgICAgICAgICAgPHRkIGNsYXNzPSJXNTBwYyI+CiMgICAgICAgICAgICAgICAgPGRpdiB0
aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPlslIERhdGEuVGl0bGUgfCB0cnVuY2F0ZSg3
MCkgfCBodG1sICVdPC9kaXY+CiMgICAgICAgICAgICA8L3RkPgojICAgICAgICAgICAgPHRkPlsl
IERhdGEuVGltZSB8IGh0bWwgJV08L3RkPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExh
cmdlVGlja2V0R2VuZXJpY1RpY2tldENvbHVtbiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNv
bnRlbnRMYXJnZVRpY2tldEdlbmVyaWNUaWNrZXROdW1iZXIiKSAlXQogICAgICAgICAgICAgICAg
PHRkPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFj
dGlvbj1BZ2VudFRpY2tldFpvb207VGlja2V0SUQ9WyUgRGF0YS5UaWNrZXRJRCAlXSIgdGl0bGU9
IlslIERhdGEuVGl0bGUgfCBodG1sICVdIiBjbGFzcz0iQXNCbG9jayBNYXN0ZXJBY3Rpb25MaW5r
Ij5bJSBEYXRhLlRpY2tldE51bWJlciAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJl
bmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljVGlja2V0TnVtYmVyIikgJV0K
WyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0VzY2FsYXRpb25U
aW1lIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRp
dGxlPSJbJSBUcmFuc2xhdGUoIlNlcnZpY2UgVGltZSIpIHwgaHRtbCAlXTogWyUgRGF0YS5Fc2Nh
bGF0aW9uVGltZVdvcmtpbmdUaW1lIHwgaHRtbCAlXSAtIFslIERhdGEuRXNjYWxhdGlvbkRlc3Rp
bmF0aW9uRGF0ZSB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXSIgY2xhc3M9IlslIERhdGEuRXNj
YWxhdGlvbkNsYXNzIHwgaHRtbCAlXSI+WyUgRGF0YS5Fc2NhbGF0aW9uVGltZUh1bWFuIHwgaHRt
bCAlXTxici8+WyUgRGF0YS5VcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlIHwgTG9jYWxpemUoIlRp
bWVTaG9ydCIpICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0Vu
ZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0VzY2FsYXRpb25UaW1lIikgJV0KWyUgUmVuZGVy
QmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtbiIpICVdCiAgICAgICAg
ICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5HZW5l
cmljVmFsdWUgfCBodG1sICVdIj5bJSBEYXRhLkdlbmVyaWNWYWx1ZSB8IHRydW5jYXRlKDc4KSB8
IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJD
b250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgi
Q29udGVudExhcmdlVGlja2V0VGl0bGUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAg
ICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuV2hvbGVUaXRsZSB8IGh0bWwgJV0iPlsl
IERhdGEuVGl0bGUgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5k
ZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0VGl0bGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0
YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uVHJhbnNsYXRhYmxlIikgJV0KICAg
ICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBUcmFu
c2xhdGUoRGF0YS5HZW5lcmljVmFsdWUpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuR2Vu
ZXJpY1ZhbHVlKSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRl
ckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uVHJhbnNsYXRhYmxlIikg
JV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtblRp
bWUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0
bGU9IlslIERhdGEuR2VuZXJpY1ZhbHVlIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpIHwgaHRtbCAl
XSI+WyUgRGF0YS5HZW5lcmljVmFsdWUgfCBMb2NhbGl6ZSgiVGltZVNob3J0IikgJV08L2Rpdj4K
ICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNr
ZXRHZW5lcmljQ29sdW1uVGltZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJn
ZVRpY2tldEdlbmVyaWNDb2x1bW5Fc2NhbGF0aW9uIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4K
ICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLkdlbmVyaWNWYWx1ZSB8IGh0
bWwgJV0iIGNsYXNzPSJbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXSI+WyUgRGF0YS5HZW5lcmljVmFs
dWUgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0Vu
ZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtbkVzY2FsYXRpb24iKSAlXQpbJSBSZW5k
ZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY1RpY2tldENvbHVtbiIpICVdCgpb
JSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxk
IikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxl
PSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRM
YXJnZVRpY2tldEdlbmVyaWNEeW5hbWljRmllbGRMaW5rIikgJV0KICAgICAgICAgICAgICAgICAg
ICAgICAgPGEgaHJlZj0iWyUgRGF0YS5MaW5rIHwgSW50ZXJwb2xhdGUgJV0iICB0YXJnZXQ9Il9i
bGFuayIgY2xhc3M9IkR5bmFtaWNGaWVsZExpbmsiPlslIERhdGEuVmFsdWUgJV08L2E+ClslIFJl
bmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkTGluayIp
ICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNEeW5hbWlj
RmllbGRQbGFpbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFsdWUgJV0K
WyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNEeW5hbWljRmllbGRQ
bGFpbiIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3Rk
PgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0R5bmFtaWNGaWVs
ZCIpICVdCgpbJSBSZW5kZXJCbG9ja0VuZCgiR2VuZXJhbE92ZXJ2aWV3Um93IikgJV0KCiAgICAg
ICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmlj
Um93IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY05v
bmUiKSAlXQogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkF1dG9D
b2xzcGFuIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm5vbmUiKSB8IGh0bWwg
JV0KICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2Nr
RW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljTm9uZSIpICVdCiAgICAgICAgPC90Ym9keT4K
ICAgIDwvdGFibGU+CjwvZm9ybT4KCg==
PXBvZAoKPWhlYWQxIE5hbWUKCkRhc2hib2FyZE15VGlja2V0cwoKPWhlYWQxIERlc2NyaXB0aW9u
CgpUaGlzIHBhY2thZ2VzIHByb3ZpZGVzIGRhc2hib2FyZCBtb2R1bGUgdGhhdCBzaG93cyBvbmx5
IG15IHRpY2tldHMuClRoaXMgaXMgYSBmb3JrIG9mIEw8TXlUaWNrZXRzRGFzaGxldHxodHRwczov
L2dpdGh1Yi5jb20vZnJlbmV0aWNmL015VGlja2V0c0Rhc2hsZXQ+CgoKPWhlYWQxIFByZXJlcXVp
c2l0ZXMKCj1vdmVyCgo9aXRlbSAqIE9UUlMgNi4wCgo9YmFjawoKPWhlYWQxIEluc3RhbGxhdGlv
bgoKRG93bmxvYWQgdGhlIHBhY2thZ2UgYW5kIGluc3RhbGwgaXQgdmlhIGFkbWluIGludGVyZmFj
ZSAtPiBwYWNrYWdlIG1hbmFnZXIuCgo9aGVhZDEgQ29uZmlndXJhdGlvbgoKPW92ZXIKCj1pdGVt
ICogQ29uZmlndXJlIGl0IHZpYSBhZG1pbiBpbnRlcmZhY2UgLT4gU3lzQ29uZmlnCgo9aXRlbSAq
IFRpY2tldCAtPiBGcm9udGVuZDo6QWdlbnQ6OkRhc2hib2FyZCAtPiBEYXNoYm9hcmRCYWNrZW5k
IyMjMDA5MC1EYXNoYm9hcmRNeVRpY2tldHMKCj1pdGVtICogQnkgZGVmYXVsdCB0aGUgbW9kdWxl
IGlzIGVuYWJsZWQuCgo9YmFjawoKPWhlYWQxIFNvdXJjZSBDb2RlCgpGb3JrIG1lIG9uIGdpdGh1
YiBMPGh0dHBzOi8vZ2l0aHViLmNvbS9yZW5lZWIvRGFzaGJvYXJkTXlUaWNrZXRzPgoKPWhlYWQx
IExpY2Vuc2UKClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZ
LiBGb3IgZGV0YWlscywgc2VlIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2Ug
aW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2Vl
IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KCj1jdXQKCg==
2020-12-10 12:33:13otobo-1