Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save joejulian/4eb921f706ee48f8abd49482605b6bd9 to your computer and use it in GitHub Desktop.
Save joejulian/4eb921f706ee48f8abd49482605b6bd9 to your computer and use it in GitHub Desktop.
I2NvbXBkZWYga29udm95CgpfX2tvbnZveV9iYXNoX3NvdXJjZSgpIHsKCWFsaWFzIHNob3B0PSc6
JwoJYWxpYXMgX2V4cGFuZD1fYmFzaF9leHBhbmQKCWFsaWFzIF9jb21wbGV0ZT1fYmFzaF9jb21w
CgllbXVsYXRlIC1MIHNoCglzZXRvcHQga3NoZ2xvYiBub3NoZ2xvYiBicmFjZWV4cGFuZAoJc291
cmNlICIkQCIKfQpfX2tvbnZveV90eXBlKCkgewoJIyAtdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHpz
aAoJaWYgWyAiJDEiID09ICItdCIgXTsgdGhlbgoJCXNoaWZ0CgkJIyBmYWtlIEJhc2ggNCB0byBk
aXNhYmxlICJjb21wbGV0ZSAtbyBub3NwYWNlIi4gSW5zdGVhZAoJCSMgImNvbXBvcHQgKy1vIG5v
c3BhY2UiIGlzIHVzZWQgaW4gdGhlIGNvZGUgdG8gdG9nZ2xlIHRyYWlsaW5nCgkJIyBzcGFjZXMu
IFdlIGRvbid0IHN1cHBvcnQgdGhhdCwgYnV0IGxlYXZlIHRyYWlsaW5nIHNwYWNlcyBvbgoJCSMg
YWxsIHRoZSB0aW1lCgkJaWYgWyAiJDEiID0gIl9fa29udm95X2NvbXBvcHQiIF07IHRoZW4KCQkJ
ZWNobyBidWlsdGluCgkJCXJldHVybiAwCgkJZmkKCWZpCgl0eXBlICIkQCIKfQpfX2tvbnZveV9j
b21wZ2VuKCkgewoJbG9jYWwgY29tcGxldGlvbnMgdwoJY29tcGxldGlvbnM9KCAkKGNvbXBnZW4g
IiRAIikgKSB8fCByZXR1cm4gJD8KCSMgZmlsdGVyIGJ5IGdpdmVuIHdvcmQgYXMgcHJlZml4Cgl3
aGlsZSBbWyAiJDEiID0gLSogJiYgIiQxIiAhPSAtLSBdXTsgZG8KCQlzaGlmdAoJCXNoaWZ0Cglk
b25lCglpZiBbWyAiJDEiID09IC0tIF1dOyB0aGVuCgkJc2hpZnQKCWZpCglmb3IgdyBpbiAiJHtj
b21wbGV0aW9uc1tAXX0iOyBkbwoJCWlmIFtbICIke3d9IiA9ICIkMSIqIF1dOyB0aGVuCgkJCWVj
aG8gIiR7d30iCgkJZmkKCWRvbmUKfQpfX2tvbnZveV9jb21wb3B0KCkgewoJdHJ1ZSAjIGRvbid0
IGRvIGFueXRoaW5nLiBOb3Qgc3VwcG9ydGVkIGJ5IGJhc2hjb21waW5pdCBpbiB6c2gKfQpfX2tv
bnZveV9sdHJpbV9jb2xvbl9jb21wbGV0aW9ucygpCnsKCWlmIFtbICIkMSIgPT0gKjoqICYmICIk
Q09NUF9XT1JEQlJFQUtTIiA9PSAqOiogXV07IHRoZW4KCQkjIFJlbW92ZSBjb2xvbi13b3JkIHBy
ZWZpeCBmcm9tIENPTVBSRVBMWSBpdGVtcwoJCWxvY2FsIGNvbG9uX3dvcmQ9JHsxJSR7MSMjKjp9
fQoJCWxvY2FsIGk9JHsjQ09NUFJFUExZWypdfQoJCXdoaWxlIFtbICQoKC0taSkpIC1nZSAwIF1d
OyBkbwoJCQlDT01QUkVQTFlbJGldPSR7Q09NUFJFUExZWyRpXSMiJGNvbG9uX3dvcmQifQoJCWRv
bmUKCWZpCn0KX19rb252b3lfZ2V0X2NvbXBfd29yZHNfYnlfcmVmKCkgewoJY3VyPSIke0NPTVBf
V09SRFNbQ09NUF9DV09SRF19IgoJcHJldj0iJHtDT01QX1dPUkRTWyR7Q09NUF9DV09SRH0tMV19
IgoJd29yZHM9KCIke0NPTVBfV09SRFNbQF19IikKCWN3b3JkPSgiJHtDT01QX0NXT1JEW0BdfSIp
Cn0KX19rb252b3lfZmlsZWRpcigpIHsKCWxvY2FsIFJFVCBPTERfSUZTIHcgcXcKCV9fa29udm95
X2RlYnVnICJfZmlsZWRpciAkQCBjdXI9JGN1ciIKCWlmIFtbICIkMSIgPSBcfiogXV07IHRoZW4K
CQkjIHNvbWVob3cgZG9lcyBub3Qgd29yay4gTWF5YmUsIHpzaCBkb2VzIG5vdCBjYWxsIHRoaXMg
YXQgYWxsCgkJZXZhbCBlY2hvICIkMSIKCQlyZXR1cm4gMAoJZmkKCU9MRF9JRlM9IiRJRlMiCglJ
RlM9JCdcbicKCWlmIFsgIiQxIiA9ICItZCIgXTsgdGhlbgoJCXNoaWZ0CgkJUkVUPSggJChjb21w
Z2VuIC1kKSApCgllbHNlCgkJUkVUPSggJChjb21wZ2VuIC1mKSApCglmaQoJSUZTPSIkT0xEX0lG
UyIKCUlGUz0iLCIgX19rb252b3lfZGVidWcgIlJFVD0ke1JFVFtAXX0gbGVuPSR7I1JFVFtAXX0i
Cglmb3IgdyBpbiAke1JFVFtAXX07IGRvCgkJaWYgW1sgISAiJHt3fSIgPSAiJHtjdXJ9IiogXV07
IHRoZW4KCQkJY29udGludWUKCQlmaQoJCWlmIGV2YWwgIltbIFwiXCR7d31cIiA9ICouJDEgfHwg
LWQgXCJcJHt3fVwiIF1dIjsgdGhlbgoJCQlxdz0iJChfX2tvbnZveV9xdW90ZSAiJHt3fSIpIgoJ
CQlpZiBbIC1kICIke3d9IiBdOyB0aGVuCgkJCQlDT01QUkVQTFkrPSgiJHtxd30vIikKCQkJZWxz
ZQoJCQkJQ09NUFJFUExZKz0oIiR7cXd9IikKCQkJZmkKCQlmaQoJZG9uZQp9Cl9fa29udm95X3F1
b3RlKCkgewogICAgaWYgW1sgJDEgPT0gXCcqIHx8ICQxID09IFwiKiBdXTsgdGhlbgogICAgICAg
ICMgTGVhdmUgb3V0IGZpcnN0IGNoYXJhY3RlcgogICAgICAgIHByaW50ZiAlcSAiJHsxOjF9Igog
ICAgZWxzZQoJcHJpbnRmICVxICIkMSIKICAgIGZpCn0KYXV0b2xvYWQgLVUgK1ggYmFzaGNvbXBp
bml0ICYmIGJhc2hjb21waW5pdAojIHVzZSB3b3JkIGJvdW5kYXJ5IHBhdHRlcm5zIGZvciBCU0Qg
b3IgR05VIHNlZApMV09SRD0nW1s6PDpdXScKUldPUkQ9J1tbOj46XV0nCmlmIHNlZCAtLWhlbHAg
Mj4mMSB8IGdyZXAgLXEgR05VOyB0aGVuCglMV09SRD0nXDwnCglSV09SRD0nXD4nCmZpCl9fa29u
dm95X2NvbnZlcnRfYmFzaF90b196c2goKSB7CglzZWQgXAoJLWUgJ3MvZGVjbGFyZSAtRi93aGVu
Y2UgLXcvJyBcCgktZSAncy9fZ2V0X2NvbXBfd29yZHNfYnlfcmVmICJcJEAiL19nZXRfY29tcF93
b3Jkc19ieV9yZWYgIlwkKiIvJyBcCgktZSAncy9sb2NhbCBcKFthLXpBLVowLTlfXSpcKT0vbG9j
YWwgXDE7IFwxPS8nIFwKCS1lICdzL2ZsYWdzKz0oIlwoLS0uKlwpPSIpL2ZsYWdzKz0oIlwxIik7
IHR3b193b3JkX2ZsYWdzKz0oIlwxIikvJyBcCgktZSAncy9tdXN0X2hhdmVfb25lX2ZsYWcrPSgi
XCgtLS4qXCk9IikvbXVzdF9oYXZlX29uZV9mbGFnKz0oIlwxIikvJyBcCgktZSAicy8ke0xXT1JE
fV9maWxlZGlyJHtSV09SRH0vX19rb252b3lfZmlsZWRpci9nIiBcCgktZSAicy8ke0xXT1JEfV9n
ZXRfY29tcF93b3Jkc19ieV9yZWYke1JXT1JEfS9fX2tvbnZveV9nZXRfY29tcF93b3Jkc19ieV9y
ZWYvZyIgXAoJLWUgInMvJHtMV09SRH1fX2x0cmltX2NvbG9uX2NvbXBsZXRpb25zJHtSV09SRH0v
X19rb252b3lfbHRyaW1fY29sb25fY29tcGxldGlvbnMvZyIgXAoJLWUgInMvJHtMV09SRH1jb21w
Z2VuJHtSV09SRH0vX19rb252b3lfY29tcGdlbi9nIiBcCgktZSAicy8ke0xXT1JEfWNvbXBvcHQk
e1JXT1JEfS9fX2tvbnZveV9jb21wb3B0L2ciIFwKCS1lICJzLyR7TFdPUkR9ZGVjbGFyZSR7UldP
UkR9L2J1aWx0aW4gZGVjbGFyZS9nIiBcCgktZSAicy9cXFwkKHR5cGUke1JXT1JEfS9cJChfX2tv
bnZveV90eXBlL2ciIFwKCTw8J0JBU0hfQ09NUExFVElPTl9FT0YnCiMgYmFzaCBjb21wbGV0aW9u
IGZvciBrb252b3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIHNoZWxsLXNjcmlw
dCAtKi0KCl9fa29udm95X2RlYnVnKCkKewogICAgaWYgW1sgLW4gJHtCQVNIX0NPTVBfREVCVUdf
RklMRX0gXV07IHRoZW4KICAgICAgICBlY2hvICIkKiIgPj4gIiR7QkFTSF9DT01QX0RFQlVHX0ZJ
TEV9IgogICAgZmkKfQoKIyBIb21lYnJldyBvbiBNYWNzIGhhdmUgdmVyc2lvbiAxLjMgb2YgYmFz
aC1jb21wbGV0aW9uIHdoaWNoIGRvZXNuJ3QgaW5jbHVkZQojIF9pbml0X2NvbXBsZXRpb24uIFRo
aXMgaXMgYSB2ZXJ5IG1pbmltYWwgdmVyc2lvbiBvZiB0aGF0IGZ1bmN0aW9uLgpfX2tvbnZveV9p
bml0X2NvbXBsZXRpb24oKQp7CiAgICBDT01QUkVQTFk9KCkKICAgIF9nZXRfY29tcF93b3Jkc19i
eV9yZWYgIiRAIiBjdXIgcHJldiB3b3JkcyBjd29yZAp9CgpfX2tvbnZveV9pbmRleF9vZl93b3Jk
KCkKewogICAgbG9jYWwgdyB3b3JkPSQxCiAgICBzaGlmdAogICAgaW5kZXg9MAogICAgZm9yIHcg
aW4gIiRAIjsgZG8KICAgICAgICBbWyAkdyA9ICIkd29yZCIgXV0gJiYgcmV0dXJuCiAgICAgICAg
aW5kZXg9JCgoaW5kZXgrMSkpCiAgICBkb25lCiAgICBpbmRleD0tMQp9CgpfX2tvbnZveV9jb250
YWluc193b3JkKCkKewogICAgbG9jYWwgdyB3b3JkPSQxOyBzaGlmdAogICAgZm9yIHcgaW4gIiRA
IjsgZG8KICAgICAgICBbWyAkdyA9ICIkd29yZCIgXV0gJiYgcmV0dXJuCiAgICBkb25lCiAgICBy
ZXR1cm4gMQp9CgpfX2tvbnZveV9oYW5kbGVfcmVwbHkoKQp7CiAgICBfX2tvbnZveV9kZWJ1ZyAi
JHtGVU5DTkFNRVswXX0iCiAgICBsb2NhbCBjb21wCiAgICBjYXNlICRjdXIgaW4KICAgICAgICAt
KikKICAgICAgICAgICAgaWYgW1sgJCh0eXBlIC10IGNvbXBvcHQpID0gImJ1aWx0aW4iIF1dOyB0
aGVuCiAgICAgICAgICAgICAgICBjb21wb3B0IC1vIG5vc3BhY2UKICAgICAgICAgICAgZmkKICAg
ICAgICAgICAgbG9jYWwgYWxsZmxhZ3MKICAgICAgICAgICAgaWYgWyAkeyNtdXN0X2hhdmVfb25l
X2ZsYWdbQF19IC1uZSAwIF07IHRoZW4KICAgICAgICAgICAgICAgIGFsbGZsYWdzPSgiJHttdXN0
X2hhdmVfb25lX2ZsYWdbQF19IikKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgYWxs
ZmxhZ3M9KCIke2ZsYWdzWypdfSAke3R3b193b3JkX2ZsYWdzWypdfSIpCiAgICAgICAgICAgIGZp
CiAgICAgICAgICAgIHdoaWxlIElGUz0nJyByZWFkIC1yIGNvbXA7IGRvCiAgICAgICAgICAgICAg
ICBDT01QUkVQTFkrPSgiJGNvbXAiKQogICAgICAgICAgICBkb25lIDwgPChjb21wZ2VuIC1XICIk
e2FsbGZsYWdzWypdfSIgLS0gIiRjdXIiKQogICAgICAgICAgICBpZiBbWyAkKHR5cGUgLXQgY29t
cG9wdCkgPSAiYnVpbHRpbiIgXV07IHRoZW4KICAgICAgICAgICAgICAgIFtbICIke0NPTVBSRVBM
WVswXX0iID09ICo9IF1dIHx8IGNvbXBvcHQgK28gbm9zcGFjZQogICAgICAgICAgICBmaQoKICAg
ICAgICAgICAgIyBjb21wbGV0ZSBhZnRlciAtLWZsYWc9YWJjCiAgICAgICAgICAgIGlmIFtbICRj
dXIgPT0gKj0qIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBpZiBbWyAkKHR5cGUgLXQgY29tcG9w
dCkgPSAiYnVpbHRpbiIgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBjb21wb3B0ICtvIG5v
c3BhY2UKICAgICAgICAgICAgICAgIGZpCgogICAgICAgICAgICAgICAgbG9jYWwgaW5kZXggZmxh
ZwogICAgICAgICAgICAgICAgZmxhZz0iJHtjdXIlPSp9IgogICAgICAgICAgICAgICAgX19rb252
b3lfaW5kZXhfb2Zfd29yZCAiJHtmbGFnfSIgIiR7ZmxhZ3Nfd2l0aF9jb21wbGV0aW9uW0BdfSIK
ICAgICAgICAgICAgICAgIENPTVBSRVBMWT0oKQogICAgICAgICAgICAgICAgaWYgW1sgJHtpbmRl
eH0gLWdlIDAgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBQUkVGSVg9IiIKICAgICAgICAg
ICAgICAgICAgICBjdXI9IiR7Y3VyIyo9fSIKICAgICAgICAgICAgICAgICAgICAke2ZsYWdzX2Nv
bXBsZXRpb25bJHtpbmRleH1dfQogICAgICAgICAgICAgICAgICAgIGlmIFsgLW4gIiR7WlNIX1ZF
UlNJT059IiBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgICMgenNoIGNvbXBsZXRpb24g
bmVlZHMgLS1mbGFnPSBwcmVmaXgKICAgICAgICAgICAgICAgICAgICAgICAgZXZhbCAiQ09NUFJF
UExZPSggXCJcJHtDT01QUkVQTFlbQF0vIy8ke2ZsYWd9PX1cIiApIgogICAgICAgICAgICAgICAg
ICAgIGZpCiAgICAgICAgICAgICAgICBmaQogICAgICAgICAgICBmaQogICAgICAgICAgICByZXR1
cm4gMDsKICAgICAgICAgICAgOzsKICAgIGVzYWMKCiAgICAjIGNoZWNrIGlmIHdlIGFyZSBoYW5k
bGluZyBhIGZsYWcgd2l0aCBzcGVjaWFsIHdvcmsgaGFuZGxpbmcKICAgIGxvY2FsIGluZGV4CiAg
ICBfX2tvbnZveV9pbmRleF9vZl93b3JkICIke3ByZXZ9IiAiJHtmbGFnc193aXRoX2NvbXBsZXRp
b25bQF19IgogICAgaWYgW1sgJHtpbmRleH0gLWdlIDAgXV07IHRoZW4KICAgICAgICAke2ZsYWdz
X2NvbXBsZXRpb25bJHtpbmRleH1dfQogICAgICAgIHJldHVybgogICAgZmkKCiAgICAjIHdlIGFy
ZSBwYXJzaW5nIGEgZmxhZyBhbmQgZG9uJ3QgaGF2ZSBhIHNwZWNpYWwgaGFuZGxlciwgbm8gY29t
cGxldGlvbgogICAgaWYgW1sgJHtjdXJ9ICE9ICIke3dvcmRzW2N3b3JkXX0iIF1dOyB0aGVuCiAg
ICAgICAgcmV0dXJuCiAgICBmaQoKICAgIGxvY2FsIGNvbXBsZXRpb25zCiAgICBjb21wbGV0aW9u
cz0oIiR7Y29tbWFuZHNbQF19IikKICAgIGlmIFtbICR7I211c3RfaGF2ZV9vbmVfbm91bltAXX0g
LW5lIDAgXV07IHRoZW4KICAgICAgICBjb21wbGV0aW9ucz0oIiR7bXVzdF9oYXZlX29uZV9ub3Vu
W0BdfSIpCiAgICBmaQogICAgaWYgW1sgJHsjbXVzdF9oYXZlX29uZV9mbGFnW0BdfSAtbmUgMCBd
XTsgdGhlbgogICAgICAgIGNvbXBsZXRpb25zKz0oIiR7bXVzdF9oYXZlX29uZV9mbGFnW0BdfSIp
CiAgICBmaQogICAgd2hpbGUgSUZTPScnIHJlYWQgLXIgY29tcDsgZG8KICAgICAgICBDT01QUkVQ
TFkrPSgiJGNvbXAiKQogICAgZG9uZSA8IDwoY29tcGdlbiAtVyAiJHtjb21wbGV0aW9uc1sqXX0i
IC0tICIkY3VyIikKCiAgICBpZiBbWyAkeyNDT01QUkVQTFlbQF19IC1lcSAwICYmICR7I25vdW5f
YWxpYXNlc1tAXX0gLWd0IDAgJiYgJHsjbXVzdF9oYXZlX29uZV9ub3VuW0BdfSAtbmUgMCBdXTsg
dGhlbgogICAgICAgIHdoaWxlIElGUz0nJyByZWFkIC1yIGNvbXA7IGRvCiAgICAgICAgICAgIENP
TVBSRVBMWSs9KCIkY29tcCIpCiAgICAgICAgZG9uZSA8IDwoY29tcGdlbiAtVyAiJHtub3VuX2Fs
aWFzZXNbKl19IiAtLSAiJGN1ciIpCiAgICBmaQoKICAgIGlmIFtbICR7I0NPTVBSRVBMWVtAXX0g
LWVxIDAgXV07IHRoZW4KCQlpZiBkZWNsYXJlIC1GIF9fa29udm95X2N1c3RvbV9mdW5jID4vZGV2
L251bGw7IHRoZW4KCQkJIyB0cnkgY29tbWFuZCBuYW1lIHF1YWxpZmllZCBjdXN0b20gZnVuYwoJ
CQlfX2tvbnZveV9jdXN0b21fZnVuYwoJCWVsc2UKCQkJIyBvdGhlcndpc2UgZmFsbCBiYWNrIHRv
IHVucXVhbGlmaWVkIGZvciBjb21wYXRpYmlsaXR5CgkJCWRlY2xhcmUgLUYgX19jdXN0b21fZnVu
YyA+L2Rldi9udWxsICYmIF9fY3VzdG9tX2Z1bmMKCQlmaQogICAgZmkKCiAgICAjIGF2YWlsYWJs
ZSBpbiBiYXNoLWNvbXBsZXRpb24gPj0gMiwgbm90IGFsd2F5cyBwcmVzZW50IG9uIG1hY09TCiAg
ICBpZiBkZWNsYXJlIC1GIF9fbHRyaW1fY29sb25fY29tcGxldGlvbnMgPi9kZXYvbnVsbDsgdGhl
bgogICAgICAgIF9fbHRyaW1fY29sb25fY29tcGxldGlvbnMgIiRjdXIiCiAgICBmaQoKICAgICMg
SWYgdGhlcmUgaXMgb25seSAxIGNvbXBsZXRpb24gYW5kIGl0IGlzIGEgZmxhZyB3aXRoIGFuID0g
aXQgd2lsbCBiZSBjb21wbGV0ZWQKICAgICMgYnV0IHdlIGRvbid0IHdhbnQgYSBzcGFjZSBhZnRl
ciB0aGUgPQogICAgaWYgW1sgIiR7I0NPTVBSRVBMWVtAXX0iIC1lcSAiMSIgXV0gJiYgW1sgJCh0
eXBlIC10IGNvbXBvcHQpID0gImJ1aWx0aW4iIF1dICYmIFtbICIke0NPTVBSRVBMWVswXX0iID09
IC0tKj0gXV07IHRoZW4KICAgICAgIGNvbXBvcHQgLW8gbm9zcGFjZQogICAgZmkKfQoKIyBUaGUg
YXJndW1lbnRzIHNob3VsZCBiZSBpbiB0aGUgZm9ybSAiZXh0MXxleHQyfGV4dG4iCl9fa29udm95
X2hhbmRsZV9maWxlbmFtZV9leHRlbnNpb25fZmxhZygpCnsKICAgIGxvY2FsIGV4dD0iJDEiCiAg
ICBfZmlsZWRpciAiQCgke2V4dH0pIgp9CgpfX2tvbnZveV9oYW5kbGVfc3ViZGlyc19pbl9kaXJf
ZmxhZygpCnsKICAgIGxvY2FsIGRpcj0iJDEiCiAgICBwdXNoZCAiJHtkaXJ9IiA+L2Rldi9udWxs
IDI+JjEgJiYgX2ZpbGVkaXIgLWQgJiYgcG9wZCA+L2Rldi9udWxsIDI+JjEgfHwgcmV0dXJuCn0K
Cl9fa29udm95X2hhbmRsZV9mbGFnKCkKewogICAgX19rb252b3lfZGVidWcgIiR7RlVOQ05BTUVb
MF19OiBjIGlzICRjIHdvcmRzW2NdIGlzICR7d29yZHNbY119IgoKICAgICMgaWYgYSBjb21tYW5k
IHJlcXVpcmVkIGEgZmxhZywgYW5kIHdlIGZvdW5kIGl0LCB1bnNldCBtdXN0X2hhdmVfb25lX2Zs
YWcoKQogICAgbG9jYWwgZmxhZ25hbWU9JHt3b3Jkc1tjXX0KICAgIGxvY2FsIGZsYWd2YWx1ZQog
ICAgIyBpZiB0aGUgd29yZCBjb250YWluZWQgYW4gPQogICAgaWYgW1sgJHt3b3Jkc1tjXX0gPT0g
KiI9IiogXV07IHRoZW4KICAgICAgICBmbGFndmFsdWU9JHtmbGFnbmFtZSMqPX0gIyB0YWtlIGlu
IGFzIGZsYWd2YWx1ZSBhZnRlciB0aGUgPQogICAgICAgIGZsYWduYW1lPSR7ZmxhZ25hbWUlPSp9
ICMgc3RyaXAgZXZlcnl0aGluZyBhZnRlciB0aGUgPQogICAgICAgIGZsYWduYW1lPSIke2ZsYWdu
YW1lfT0iICMgYnV0IHB1dCB0aGUgPSBiYWNrCiAgICBmaQogICAgX19rb252b3lfZGVidWcgIiR7
RlVOQ05BTUVbMF19OiBsb29raW5nIGZvciAke2ZsYWduYW1lfSIKICAgIGlmIF9fa29udm95X2Nv
bnRhaW5zX3dvcmQgIiR7ZmxhZ25hbWV9IiAiJHttdXN0X2hhdmVfb25lX2ZsYWdbQF19IjsgdGhl
bgogICAgICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgZmkKCiAgICAjIGlmIHlvdSBzZXQg
YSBmbGFnIHdoaWNoIG9ubHkgYXBwbGllcyB0byB0aGlzIGNvbW1hbmQsIGRvbid0IHNob3cgc3Vi
Y29tbWFuZHMKICAgIGlmIF9fa29udm95X2NvbnRhaW5zX3dvcmQgIiR7ZmxhZ25hbWV9IiAiJHts
b2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzW0BdfSI7IHRoZW4KICAgICAgY29tbWFuZHM9KCkKICAg
IGZpCgogICAgIyBrZWVwIGZsYWcgdmFsdWUgd2l0aCBmbGFnbmFtZSBhcyBmbGFnaGFzaAogICAg
IyBmbGFnaGFzaCB2YXJpYWJsZSBpcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aGljaCBpcyBvbmx5
IHN1cHBvcnRlZCBpbiBiYXNoID4gMy4KICAgIGlmIFtbIC16ICIke0JBU0hfVkVSU0lPTn0iIHx8
ICIke0JBU0hfVkVSU0lORk9bMF19IiAtZ3QgMyBdXTsgdGhlbgogICAgICAgIGlmIFsgLW4gIiR7
ZmxhZ3ZhbHVlfSIgXSA7IHRoZW4KICAgICAgICAgICAgZmxhZ2hhc2hbJHtmbGFnbmFtZX1dPSR7
ZmxhZ3ZhbHVlfQogICAgICAgIGVsaWYgWyAtbiAiJHt3b3Jkc1sgJCgoYysxKSkgXX0iIF0gOyB0
aGVuCiAgICAgICAgICAgIGZsYWdoYXNoWyR7ZmxhZ25hbWV9XT0ke3dvcmRzWyAkKChjKzEpKSBd
fQogICAgICAgIGVsc2UKICAgICAgICAgICAgZmxhZ2hhc2hbJHtmbGFnbmFtZX1dPSJ0cnVlIiAj
IHBhZCAidHJ1ZSIgZm9yIGJvb2wgZmxhZwogICAgICAgIGZpCiAgICBmaQoKICAgICMgc2tpcCB0
aGUgYXJndW1lbnQgdG8gYSB0d28gd29yZCBmbGFnCiAgICBpZiBbWyAke3dvcmRzW2NdfSAhPSAq
Ij0iKiBdXSAmJiBfX2tvbnZveV9jb250YWluc193b3JkICIke3dvcmRzW2NdfSIgIiR7dHdvX3dv
cmRfZmxhZ3NbQF19IjsgdGhlbgoJCQkgIF9fa29udm95X2RlYnVnICIke0ZVTkNOQU1FWzBdfTog
Zm91bmQgYSBmbGFnICR7d29yZHNbY119LCBza2lwIHRoZSBuZXh0IGFyZ3VtZW50IgogICAgICAg
IGM9JCgoYysxKSkKICAgICAgICAjIGlmIHdlIGFyZSBsb29raW5nIGZvciBhIGZsYWdzIHZhbHVl
LCBkb24ndCBzaG93IGNvbW1hbmRzCiAgICAgICAgaWYgW1sgJGMgLWVxICRjd29yZCBdXTsgdGhl
bgogICAgICAgICAgICBjb21tYW5kcz0oKQogICAgICAgIGZpCiAgICBmaQoKICAgIGM9JCgoYysx
KSkKCn0KCl9fa29udm95X2hhbmRsZV9ub3VuKCkKewogICAgX19rb252b3lfZGVidWcgIiR7RlVO
Q05BTUVbMF19OiBjIGlzICRjIHdvcmRzW2NdIGlzICR7d29yZHNbY119IgoKICAgIGlmIF9fa29u
dm95X2NvbnRhaW5zX3dvcmQgIiR7d29yZHNbY119IiAiJHttdXN0X2hhdmVfb25lX25vdW5bQF19
IjsgdGhlbgogICAgICAgIG11c3RfaGF2ZV9vbmVfbm91bj0oKQogICAgZWxpZiBfX2tvbnZveV9j
b250YWluc193b3JkICIke3dvcmRzW2NdfSIgIiR7bm91bl9hbGlhc2VzW0BdfSI7IHRoZW4KICAg
ICAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIGZpCgogICAgbm91bnMrPSgiJHt3b3Jkc1tj
XX0iKQogICAgYz0kKChjKzEpKQp9CgpfX2tvbnZveV9oYW5kbGVfY29tbWFuZCgpCnsKICAgIF9f
a29udm95X2RlYnVnICIke0ZVTkNOQU1FWzBdfTogYyBpcyAkYyB3b3Jkc1tjXSBpcyAke3dvcmRz
W2NdfSIKCiAgICBsb2NhbCBuZXh0X2NvbW1hbmQKICAgIGlmIFtbIC1uICR7bGFzdF9jb21tYW5k
fSBdXTsgdGhlbgogICAgICAgIG5leHRfY29tbWFuZD0iXyR7bGFzdF9jb21tYW5kfV8ke3dvcmRz
W2NdLy86L19ffSIKICAgIGVsc2UKICAgICAgICBpZiBbWyAkYyAtZXEgMCBdXTsgdGhlbgogICAg
ICAgICAgICBuZXh0X2NvbW1hbmQ9Il9rb252b3lfcm9vdF9jb21tYW5kIgogICAgICAgIGVsc2UK
ICAgICAgICAgICAgbmV4dF9jb21tYW5kPSJfJHt3b3Jkc1tjXS8vOi9fX30iCiAgICAgICAgZmkK
ICAgIGZpCiAgICBjPSQoKGMrMSkpCiAgICBfX2tvbnZveV9kZWJ1ZyAiJHtGVU5DTkFNRVswXX06
IGxvb2tpbmcgZm9yICR7bmV4dF9jb21tYW5kfSIKICAgIGRlY2xhcmUgLUYgIiRuZXh0X2NvbW1h
bmQiID4vZGV2L251bGwgJiYgJG5leHRfY29tbWFuZAp9CgpfX2tvbnZveV9oYW5kbGVfd29yZCgp
CnsKICAgIGlmIFtbICRjIC1nZSAkY3dvcmQgXV07IHRoZW4KICAgICAgICBfX2tvbnZveV9oYW5k
bGVfcmVwbHkKICAgICAgICByZXR1cm4KICAgIGZpCiAgICBfX2tvbnZveV9kZWJ1ZyAiJHtGVU5D
TkFNRVswXX06IGMgaXMgJGMgd29yZHNbY10gaXMgJHt3b3Jkc1tjXX0iCiAgICBpZiBbWyAiJHt3
b3Jkc1tjXX0iID09IC0qIF1dOyB0aGVuCiAgICAgICAgX19rb252b3lfaGFuZGxlX2ZsYWcKICAg
IGVsaWYgX19rb252b3lfY29udGFpbnNfd29yZCAiJHt3b3Jkc1tjXX0iICIke2NvbW1hbmRzW0Bd
fSI7IHRoZW4KICAgICAgICBfX2tvbnZveV9oYW5kbGVfY29tbWFuZAogICAgZWxpZiBbWyAkYyAt
ZXEgMCBdXTsgdGhlbgogICAgICAgIF9fa29udm95X2hhbmRsZV9jb21tYW5kCiAgICBlbGlmIF9f
a29udm95X2NvbnRhaW5zX3dvcmQgIiR7d29yZHNbY119IiAiJHtjb21tYW5kX2FsaWFzZXNbQF19
IjsgdGhlbgogICAgICAgICMgYWxpYXNoYXNoIHZhcmlhYmxlIGlzIGFuIGFzc29jaWF0aXZlIGFy
cmF5IHdoaWNoIGlzIG9ubHkgc3VwcG9ydGVkIGluIGJhc2ggPiAzLgogICAgICAgIGlmIFtbIC16
ICIke0JBU0hfVkVSU0lPTn0iIHx8ICIke0JBU0hfVkVSU0lORk9bMF19IiAtZ3QgMyBdXTsgdGhl
bgogICAgICAgICAgICB3b3Jkc1tjXT0ke2FsaWFzaGFzaFske3dvcmRzW2NdfV19CiAgICAgICAg
ICAgIF9fa29udm95X2hhbmRsZV9jb21tYW5kCiAgICAgICAgZWxzZQogICAgICAgICAgICBfX2tv
bnZveV9oYW5kbGVfbm91bgogICAgICAgIGZpCiAgICBlbHNlCiAgICAgICAgX19rb252b3lfaGFu
ZGxlX25vdW4KICAgIGZpCiAgICBfX2tvbnZveV9oYW5kbGVfd29yZAp9Cgpfa29udm95X2FwcGx5
X2t1YmVjb25maWcoKQp7CiAgICBsYXN0X2NvbW1hbmQ9ImtvbnZveV9hcHBseV9rdWJlY29uZmln
IgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNvbW1hbmRzPSgpCgogICAgZmxhZ3M9KCkK
ICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAg
ICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCiAgICBm
bGFncys9KCItLWZvcmNlLW92ZXJ3cml0ZSIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdz
Kz0oIi0tZm9yY2Utb3ZlcndyaXRlIikKICAgIGZsYWdzKz0oIi0tdmVyYm9zZSIpCiAgICBsb2Nh
bF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tdmVyYm9zZSIpCgogICAgbXVzdF9oYXZlX29uZV9m
bGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpf
a29udm95X2FwcGx5KCkKewogICAgbGFzdF9jb21tYW5kPSJrb252b3lfYXBwbHkiCgogICAgY29t
bWFuZF9hbGlhc2VzPSgpCgogICAgY29tbWFuZHM9KCkKICAgIGNvbW1hbmRzKz0oImt1YmVjb25m
aWciKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxfbm9ucGVy
c2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBmbGFnc19j
b21wbGV0aW9uPSgpCgoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29u
ZV9ub3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9jaGVja19hZGRvbnMoKQp7
CiAgICBsYXN0X2NvbW1hbmQ9ImtvbnZveV9jaGVja19hZGRvbnMiCgogICAgY29tbWFuZF9hbGlh
c2VzPSgpCgogICAgY29tbWFuZHM9KCkKCiAgICBmbGFncz0oKQogICAgdHdvX3dvcmRfZmxhZ3M9
KCkKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkKICAgIGZsYWdzX3dpdGhfY29tcGxl
dGlvbj0oKQogICAgZmxhZ3NfY29tcGxldGlvbj0oKQoKICAgIGZsYWdzKz0oIi0tdmVyYm9zZSIp
CiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tdmVyYm9zZSIpCgogICAgbXVzdF9o
YXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxpYXNl
cz0oKQp9Cgpfa29udm95X2NoZWNrX2t1YmVybmV0ZXMoKQp7CiAgICBsYXN0X2NvbW1hbmQ9Imtv
bnZveV9jaGVja19rdWJlcm5ldGVzIgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNvbW1h
bmRzPSgpCgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25w
ZXJzaXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdz
X2NvbXBsZXRpb249KCkKCiAgICBmbGFncys9KCItLXZlcmJvc2UiKQogICAgbG9jYWxfbm9ucGVy
c2lzdGVudF9mbGFncys9KCItLXZlcmJvc2UiKQoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQog
ICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9j
aGVja19ub2RlcygpCnsKICAgIGxhc3RfY29tbWFuZD0ia29udm95X2NoZWNrX25vZGVzIgoKICAg
IGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNvbW1hbmRzPSgpCgogICAgZmxhZ3M9KCkKICAgIHR3
b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFn
c193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCiAgICBmbGFncys9
KCItLXZlcmJvc2UiKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLXZlcmJvc2Ui
KQoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAg
ICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9jaGVja19wcmVmbGlnaHQoKQp7CiAgICBsYXN0
X2NvbW1hbmQ9ImtvbnZveV9jaGVja19wcmVmbGlnaHQiCgogICAgY29tbWFuZF9hbGlhc2VzPSgp
CgogICAgY29tbWFuZHM9KCkKCiAgICBmbGFncz0oKQogICAgdHdvX3dvcmRfZmxhZ3M9KCkKICAg
IGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkKICAgIGZsYWdzX3dpdGhfY29tcGxldGlvbj0o
KQogICAgZmxhZ3NfY29tcGxldGlvbj0oKQoKICAgIGZsYWdzKz0oIi0tdmVyYm9zZSIpCiAgICBs
b2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tdmVyYm9zZSIpCgogICAgbXVzdF9oYXZlX29u
ZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9
Cgpfa29udm95X2NoZWNrKCkKewogICAgbGFzdF9jb21tYW5kPSJrb252b3lfY2hlY2siCgogICAg
Y29tbWFuZF9hbGlhc2VzPSgpCgogICAgY29tbWFuZHM9KCkKICAgIGNvbW1hbmRzKz0oImFkZG9u
cyIpCiAgICBjb21tYW5kcys9KCJrdWJlcm5ldGVzIikKICAgIGNvbW1hbmRzKz0oIm5vZGVzIikK
ICAgIGNvbW1hbmRzKz0oInByZWZsaWdodCIpCgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2Zs
YWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2Nv
bXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCiAgICBmbGFncys9KCItLXdpdGhv
dXQtYWRkb25zIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS13aXRob3V0LWFk
ZG9ucyIpCgogICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49
KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2NvbXBsZXRpb24oKQp7CiAgICBsYXN0
X2NvbW1hbmQ9ImtvbnZveV9jb21wbGV0aW9uIgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAg
IGNvbW1hbmRzPSgpCgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2Nh
bF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAg
IGZsYWdzX2NvbXBsZXRpb249KCkKCiAgICBmbGFncys9KCItLWhlbHAiKQogICAgZmxhZ3MrPSgi
LWgiKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLWhlbHAiKQoKICAgIG11c3Rf
aGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBtdXN0X2hhdmVf
b25lX25vdW4rPSgiYmFzaCIpCiAgICBtdXN0X2hhdmVfb25lX25vdW4rPSgienNoIikKICAgIG5v
dW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2NvbmZpZ19pbWFnZXNfbGlzdCgpCnsKICAgIGxhc3Rf
Y29tbWFuZD0ia29udm95X2NvbmZpZ19pbWFnZXNfbGlzdCIKCiAgICBjb21tYW5kX2FsaWFzZXM9
KCkKCiAgICBjb21tYW5kcz0oKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQog
ICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9u
PSgpCiAgICBmbGFnc19jb21wbGV0aW9uPSgpCgogICAgZmxhZ3MrPSgiLS1vdXRwdXQ9IikKICAg
IHR3b193b3JkX2ZsYWdzKz0oIi0tb3V0cHV0IikKICAgIHR3b193b3JkX2ZsYWdzKz0oIi1vIikK
ICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1vdXRwdXQ9IikKCiAgICBtdXN0X2hh
dmVfb25lX2ZsYWc9KCkKICAgIG11c3RfaGF2ZV9vbmVfbm91bj0oKQogICAgbm91bl9hbGlhc2Vz
PSgpCn0KCl9rb252b3lfY29uZmlnX2ltYWdlc19sb2FkKCkKewogICAgbGFzdF9jb21tYW5kPSJr
b252b3lfY29uZmlnX2ltYWdlc19sb2FkIgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNv
bW1hbmRzPSgpCgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9u
b25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZs
YWdzX2NvbXBsZXRpb249KCkKCgogICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hh
dmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2NvbmZpZ19pbWFn
ZXNfcHVsbCgpCnsKICAgIGxhc3RfY29tbWFuZD0ia29udm95X2NvbmZpZ19pbWFnZXNfcHVsbCIK
CiAgICBjb21tYW5kX2FsaWFzZXM9KCkKCiAgICBjb21tYW5kcz0oKQoKICAgIGZsYWdzPSgpCiAg
ICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncz0oKQogICAg
ZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBmbGFnc19jb21wbGV0aW9uPSgpCgoKICAgIG11
c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2Fs
aWFzZXM9KCkKfQoKX2tvbnZveV9jb25maWdfaW1hZ2VzX3NhdmUoKQp7CiAgICBsYXN0X2NvbW1h
bmQ9ImtvbnZveV9jb25maWdfaW1hZ2VzX3NhdmUiCgogICAgY29tbWFuZF9hbGlhc2VzPSgpCgog
ICAgY29tbWFuZHM9KCkKCiAgICBmbGFncz0oKQogICAgdHdvX3dvcmRfZmxhZ3M9KCkKICAgIGxv
Y2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkKICAgIGZsYWdzX3dpdGhfY29tcGxldGlvbj0oKQog
ICAgZmxhZ3NfY29tcGxldGlvbj0oKQoKCiAgICBtdXN0X2hhdmVfb25lX2ZsYWc9KCkKICAgIG11
c3RfaGF2ZV9vbmVfbm91bj0oKQogICAgbm91bl9hbGlhc2VzPSgpCn0KCl9rb252b3lfY29uZmln
X2ltYWdlc19zZWVkKCkKewogICAgbGFzdF9jb21tYW5kPSJrb252b3lfY29uZmlnX2ltYWdlc19z
ZWVkIgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNvbW1hbmRzPSgpCgogICAgZmxhZ3M9
KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgp
CiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCgog
ICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5v
dW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2NvbmZpZ19pbWFnZXMoKQp7CiAgICBsYXN0X2NvbW1h
bmQ9ImtvbnZveV9jb25maWdfaW1hZ2VzIgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNv
bW1hbmRzPSgpCiAgICBjb21tYW5kcys9KCJsaXN0IikKICAgIGNvbW1hbmRzKz0oImxvYWQiKQog
ICAgY29tbWFuZHMrPSgicHVsbCIpCiAgICBjb21tYW5kcys9KCJzYXZlIikKICAgIGNvbW1hbmRz
Kz0oInNlZWQiKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxf
bm9ucGVyc2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBm
bGFnc19jb21wbGV0aW9uPSgpCgoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9o
YXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9jb25maWcoKQp7
CiAgICBsYXN0X2NvbW1hbmQ9ImtvbnZveV9jb25maWciCgogICAgY29tbWFuZF9hbGlhc2VzPSgp
CgogICAgY29tbWFuZHM9KCkKICAgIGNvbW1hbmRzKz0oImltYWdlcyIpCgogICAgZmxhZ3M9KCkK
ICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAg
ICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCgogICAg
bXVzdF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5f
YWxpYXNlcz0oKQp9Cgpfa29udm95X2NvcmRvbl9ub2RlcG9vbCgpCnsKICAgIGxhc3RfY29tbWFu
ZD0ia29udm95X2NvcmRvbl9ub2RlcG9vbCIKCiAgICBjb21tYW5kX2FsaWFzZXM9KCkKCiAgICBj
b21tYW5kcz0oKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxf
bm9ucGVyc2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBm
bGFnc19jb21wbGV0aW9uPSgpCgogICAgZmxhZ3MrPSgiLS15ZXMiKQogICAgZmxhZ3MrPSgiLXki
KQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLXllcyIpCgogICAgbXVzdF9oYXZl
X29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0o
KQp9Cgpfa29udm95X2NvcmRvbigpCnsKICAgIGxhc3RfY29tbWFuZD0ia29udm95X2NvcmRvbiIK
CiAgICBjb21tYW5kX2FsaWFzZXM9KCkKCiAgICBjb21tYW5kcz0oKQogICAgY29tbWFuZHMrPSgi
bm9kZXBvb2wiKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxf
bm9ucGVyc2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBm
bGFnc19jb21wbGV0aW9uPSgpCgoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9o
YXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9jcmVhdGVfbm9k
ZXBvb2woKQp7CiAgICBsYXN0X2NvbW1hbmQ9ImtvbnZveV9jcmVhdGVfbm9kZXBvb2wiCgogICAg
Y29tbWFuZF9hbGlhc2VzPSgpCgogICAgY29tbWFuZHM9KCkKCiAgICBmbGFncz0oKQogICAgdHdv
X3dvcmRfZmxhZ3M9KCkKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkKICAgIGZsYWdz
X3dpdGhfY29tcGxldGlvbj0oKQogICAgZmxhZ3NfY29tcGxldGlvbj0oKQoKICAgIGZsYWdzKz0o
Ii0tZnJvbT0iKQogICAgdHdvX3dvcmRfZmxhZ3MrPSgiLS1mcm9tIikKICAgIGxvY2FsX25vbnBl
cnNpc3RlbnRfZmxhZ3MrPSgiLS1mcm9tPSIpCgogICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAg
ICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2Ny
ZWF0ZSgpCnsKICAgIGxhc3RfY29tbWFuZD0ia29udm95X2NyZWF0ZSIKCiAgICBjb21tYW5kX2Fs
aWFzZXM9KCkKCiAgICBjb21tYW5kcz0oKQogICAgY29tbWFuZHMrPSgibm9kZXBvb2wiKQoKICAg
IGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9m
bGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBmbGFnc19jb21wbGV0aW9u
PSgpCgoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgp
CiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9kZXBsb3lfYWRkb25zKCkKewogICAgbGFz
dF9jb21tYW5kPSJrb252b3lfZGVwbG95X2FkZG9ucyIKCiAgICBjb21tYW5kX2FsaWFzZXM9KCkK
CiAgICBjb21tYW5kcz0oKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAg
bG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgp
CiAgICBmbGFnc19jb21wbGV0aW9uPSgpCgogICAgZmxhZ3MrPSgiLS1za2lwLXN0YXRlLXVwbG9h
ZCIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tc2tpcC1zdGF0ZS11cGxvYWQi
KQogICAgZmxhZ3MrPSgiLS12ZXJib3NlIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3Mr
PSgiLS12ZXJib3NlIikKICAgIGZsYWdzKz0oIi0teWVzIikKICAgIGZsYWdzKz0oIi15IikKICAg
IGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS15ZXMiKQoKICAgIG11c3RfaGF2ZV9vbmVf
ZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoK
X2tvbnZveV9kZXBsb3lfY29udGFpbmVyLW5ldHdvcmtpbmcoKQp7CiAgICBsYXN0X2NvbW1hbmQ9
ImtvbnZveV9kZXBsb3lfY29udGFpbmVyLW5ldHdvcmtpbmciCgogICAgY29tbWFuZF9hbGlhc2Vz
PSgpCgogICAgY29tbWFuZHM9KCkKCiAgICBmbGFncz0oKQogICAgdHdvX3dvcmRfZmxhZ3M9KCkK
ICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkKICAgIGZsYWdzX3dpdGhfY29tcGxldGlv
bj0oKQogICAgZmxhZ3NfY29tcGxldGlvbj0oKQoKICAgIGZsYWdzKz0oIi0tdmVyYm9zZSIpCiAg
ICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tdmVyYm9zZSIpCiAgICBmbGFncys9KCIt
LXdpdGgtY2hlY2tzIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS13aXRoLWNo
ZWNrcyIpCiAgICBmbGFncys9KCItLXllcyIpCiAgICBmbGFncys9KCIteSIpCiAgICBsb2NhbF9u
b25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0teWVzIikKCiAgICBtdXN0X2hhdmVfb25lX2ZsYWc9KCkK
ICAgIG11c3RfaGF2ZV9vbmVfbm91bj0oKQogICAgbm91bl9hbGlhc2VzPSgpCn0KCl9rb252b3lf
ZGVwbG95X2t1YmVybmV0ZXMoKQp7CiAgICBsYXN0X2NvbW1hbmQ9ImtvbnZveV9kZXBsb3lfa3Vi
ZXJuZXRlcyIKCiAgICBjb21tYW5kX2FsaWFzZXM9KCkKCiAgICBjb21tYW5kcz0oKQoKICAgIGZs
YWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFn
cz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBmbGFnc19jb21wbGV0aW9uPSgp
CgogICAgZmxhZ3MrPSgiLS1mb3JjZS11cGdyYWRlIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRf
ZmxhZ3MrPSgiLS1mb3JjZS11cGdyYWRlIikKICAgIGZsYWdzKz0oIi0tbWF4LXBhcmFsbGVsLW5v
ZGVzPSIpCiAgICB0d29fd29yZF9mbGFncys9KCItLW1heC1wYXJhbGxlbC1ub2RlcyIpCiAgICBs
b2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tbWF4LXBhcmFsbGVsLW5vZGVzPSIpCiAgICBm
bGFncys9KCItLXNraXAtc3RhdGUtdXBsb2FkIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxh
Z3MrPSgiLS1za2lwLXN0YXRlLXVwbG9hZCIpCiAgICBmbGFncys9KCItLXRhcmdldC1ub2RlLXBv
b2xzPSIpCiAgICB0d29fd29yZF9mbGFncys9KCItLXRhcmdldC1ub2RlLXBvb2xzIikKICAgIGxv
Y2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS10YXJnZXQtbm9kZS1wb29scz0iKQogICAgZmxh
Z3MrPSgiLS11cGdyYWRlIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS11cGdy
YWRlIikKICAgIGZsYWdzKz0oIi0tdmVyYm9zZSIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2Zs
YWdzKz0oIi0tdmVyYm9zZSIpCiAgICBmbGFncys9KCItLXdpdGgtY2hlY2tzIikKICAgIGxvY2Fs
X25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS13aXRoLWNoZWNrcyIpCiAgICBmbGFncys9KCItLXdp
dGhvdXQtZHJhaW5pbmciKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLXdpdGhv
dXQtZHJhaW5pbmciKQogICAgZmxhZ3MrPSgiLS15ZXMiKQogICAgZmxhZ3MrPSgiLXkiKQogICAg
bG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLXllcyIpCgogICAgbXVzdF9oYXZlX29uZV9m
bGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpf
a29udm95X2RlcGxveSgpCnsKICAgIGxhc3RfY29tbWFuZD0ia29udm95X2RlcGxveSIKCiAgICBj
b21tYW5kX2FsaWFzZXM9KCkKCiAgICBjb21tYW5kcz0oKQogICAgY29tbWFuZHMrPSgiYWRkb25z
IikKICAgIGNvbW1hbmRzKz0oImNvbnRhaW5lci1uZXR3b3JraW5nIikKICAgIGNvbW1hbmRzKz0o
Imt1YmVybmV0ZXMiKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9j
YWxfbm9ucGVyc2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAg
ICBmbGFnc19jb21wbGV0aW9uPSgpCgogICAgZmxhZ3MrPSgiLS1mb3JjZS11cGdyYWRlIikKICAg
IGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1mb3JjZS11cGdyYWRlIikKICAgIGZsYWdz
Kz0oIi0tbWF4LXBhcmFsbGVsLW5vZGVzPSIpCiAgICB0d29fd29yZF9mbGFncys9KCItLW1heC1w
YXJhbGxlbC1ub2RlcyIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tbWF4LXBh
cmFsbGVsLW5vZGVzPSIpCiAgICBmbGFncys9KCItLXNraXAtc3RhdGUtdXBsb2FkIikKICAgIGxv
Y2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1za2lwLXN0YXRlLXVwbG9hZCIpCiAgICBmbGFn
cys9KCItLXRhcmdldC1ub2RlLXBvb2xzPSIpCiAgICB0d29fd29yZF9mbGFncys9KCItLXRhcmdl
dC1ub2RlLXBvb2xzIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS10YXJnZXQt
bm9kZS1wb29scz0iKQogICAgZmxhZ3MrPSgiLS11cGdyYWRlIikKICAgIGxvY2FsX25vbnBlcnNp
c3RlbnRfZmxhZ3MrPSgiLS11cGdyYWRlIikKICAgIGZsYWdzKz0oIi0tdmVyYm9zZSIpCiAgICBs
b2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tdmVyYm9zZSIpCiAgICBmbGFncys9KCItLXdp
dGgtY2hlY2tzIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS13aXRoLWNoZWNr
cyIpCiAgICBmbGFncys9KCItLXdpdGhvdXQtYWRkb25zIikKICAgIGxvY2FsX25vbnBlcnNpc3Rl
bnRfZmxhZ3MrPSgiLS13aXRob3V0LWFkZG9ucyIpCiAgICBmbGFncys9KCItLXdpdGhvdXQtZHJh
aW5pbmciKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLXdpdGhvdXQtZHJhaW5p
bmciKQogICAgZmxhZ3MrPSgiLS15ZXMiKQogICAgZmxhZ3MrPSgiLXkiKQogICAgbG9jYWxfbm9u
cGVyc2lzdGVudF9mbGFncys9KCItLXllcyIpCgogICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAg
ICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2Rp
YWdub3NlKCkKewogICAgbGFzdF9jb21tYW5kPSJrb252b3lfZGlhZ25vc2UiCgogICAgY29tbWFu
ZF9hbGlhc2VzPSgpCgogICAgY29tbWFuZHM9KCkKCiAgICBmbGFncz0oKQogICAgdHdvX3dvcmRf
ZmxhZ3M9KCkKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkKICAgIGZsYWdzX3dpdGhf
Y29tcGxldGlvbj0oKQogICAgZmxhZ3NfY29tcGxldGlvbj0oKQoKICAgIGZsYWdzKz0oIi0taW5j
bHVkZS1zZWNyZXRzIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1pbmNsdWRl
LXNlY3JldHMiKQogICAgZmxhZ3MrPSgiLS1sb2dzLWFsbC1uYW1lc3BhY2VzIikKICAgIGxvY2Fs
X25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1sb2dzLWFsbC1uYW1lc3BhY2VzIikKICAgIGZsYWdz
Kz0oIi0tbG9ncy1uYW1lc3BhY2VzPSIpCiAgICB0d29fd29yZF9mbGFncys9KCItLWxvZ3MtbmFt
ZXNwYWNlcyIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tbG9ncy1uYW1lc3Bh
Y2VzPSIpCiAgICBmbGFncys9KCItLW91dHB1dD0iKQogICAgdHdvX3dvcmRfZmxhZ3MrPSgiLS1v
dXRwdXQiKQogICAgdHdvX3dvcmRfZmxhZ3MrPSgiLW8iKQogICAgbG9jYWxfbm9ucGVyc2lzdGVu
dF9mbGFncys9KCItLW91dHB1dD0iKQogICAgZmxhZ3MrPSgiLS1zaW5jZT0iKQogICAgdHdvX3dv
cmRfZmxhZ3MrPSgiLS1zaW5jZSIpCiAgICB0d29fd29yZF9mbGFncys9KCItcyIpCiAgICBsb2Nh
bF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tc2luY2U9IikKICAgIGZsYWdzKz0oIi0teWVzIikK
ICAgIGZsYWdzKz0oIi15IikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS15ZXMi
KQoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAg
ICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9kb3duKCkKewogICAgbGFzdF9jb21tYW5kPSJr
b252b3lfZG93biIKCiAgICBjb21tYW5kX2FsaWFzZXM9KCkKCiAgICBjb21tYW5kcz0oKQoKICAg
IGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9m
bGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBmbGFnc19jb21wbGV0aW9u
PSgpCgogICAgZmxhZ3MrPSgiLS1wcm92aXNpb25lcj0iKQogICAgdHdvX3dvcmRfZmxhZ3MrPSgi
LS1wcm92aXNpb25lciIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tcHJvdmlz
aW9uZXI9IikKICAgIGZsYWdzKz0oIi0tc2tpcC1jbGVhbi1rdWJlcm5ldGVzIikKICAgIGxvY2Fs
X25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1za2lwLWNsZWFuLWt1YmVybmV0ZXMiKQogICAgZmxh
Z3MrPSgiLS12ZXJib3NlIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS12ZXJi
b3NlIikKICAgIGZsYWdzKz0oIi0teWVzIikKICAgIGZsYWdzKz0oIi15IikKICAgIGxvY2FsX25v
bnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS15ZXMiKQoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQog
ICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9k
cmFpbl9ub2RlcG9vbCgpCnsKICAgIGxhc3RfY29tbWFuZD0ia29udm95X2RyYWluX25vZGVwb29s
IgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNvbW1hbmRzPSgpCgogICAgZmxhZ3M9KCkK
ICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAg
ICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCiAgICBm
bGFncys9KCItLXRpbWVvdXQ9IikKICAgIHR3b193b3JkX2ZsYWdzKz0oIi0tdGltZW91dCIpCiAg
ICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tdGltZW91dD0iKQogICAgZmxhZ3MrPSgi
LS15ZXMiKQogICAgZmxhZ3MrPSgiLXkiKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9
KCItLXllcyIpCgogICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25v
dW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2RyYWluKCkKewogICAgbGFzdF9j
b21tYW5kPSJrb252b3lfZHJhaW4iCgogICAgY29tbWFuZF9hbGlhc2VzPSgpCgogICAgY29tbWFu
ZHM9KCkKICAgIGNvbW1hbmRzKz0oIm5vZGVwb29sIikKCiAgICBmbGFncz0oKQogICAgdHdvX3dv
cmRfZmxhZ3M9KCkKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkKICAgIGZsYWdzX3dp
dGhfY29tcGxldGlvbj0oKQogICAgZmxhZ3NfY29tcGxldGlvbj0oKQoKCiAgICBtdXN0X2hhdmVf
b25lX2ZsYWc9KCkKICAgIG11c3RfaGF2ZV9vbmVfbm91bj0oKQogICAgbm91bl9hbGlhc2VzPSgp
Cn0KCl9rb252b3lfZ2VuZXJhdGVfY2x1c3Rlci1hZG1pbi1zZXJ2aWNlYWNjb3VudCgpCnsKICAg
IGxhc3RfY29tbWFuZD0ia29udm95X2dlbmVyYXRlX2NsdXN0ZXItYWRtaW4tc2VydmljZWFjY291
bnQiCgogICAgY29tbWFuZF9hbGlhc2VzPSgpCgogICAgY29tbWFuZHM9KCkKCiAgICBmbGFncz0o
KQogICAgdHdvX3dvcmRfZmxhZ3M9KCkKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkK
ICAgIGZsYWdzX3dpdGhfY29tcGxldGlvbj0oKQogICAgZmxhZ3NfY29tcGxldGlvbj0oKQoKCiAg
ICBtdXN0X2hhdmVfb25lX2ZsYWc9KCkKICAgIG11c3RfaGF2ZV9vbmVfbm91bj0oKQogICAgbm91
bl9hbGlhc2VzPSgpCn0KCl9rb252b3lfZ2VuZXJhdGUoKQp7CiAgICBsYXN0X2NvbW1hbmQ9Imtv
bnZveV9nZW5lcmF0ZSIKCiAgICBjb21tYW5kX2FsaWFzZXM9KCkKCiAgICBjb21tYW5kcz0oKQog
ICAgY29tbWFuZHMrPSgiY2x1c3Rlci1hZG1pbi1zZXJ2aWNlYWNjb3VudCIpCgogICAgZmxhZ3M9
KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgp
CiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCiAg
ICBmbGFncys9KCItLXZlcmJvc2UiKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCIt
LXZlcmJvc2UiKQoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9u
b3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9nZXRfbm9kZXBvb2xzKCkKewog
ICAgbGFzdF9jb21tYW5kPSJrb252b3lfZ2V0X25vZGVwb29scyIKCiAgICBjb21tYW5kX2FsaWFz
ZXM9KCkKCiAgICBjb21tYW5kcz0oKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0o
KQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0
aW9uPSgpCiAgICBmbGFnc19jb21wbGV0aW9uPSgpCgoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0o
KQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZv
eV9nZXRfb3BzLXBvcnRhbCgpCnsKICAgIGxhc3RfY29tbWFuZD0ia29udm95X2dldF9vcHMtcG9y
dGFsIgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNvbW1hbmRzPSgpCgogICAgZmxhZ3M9
KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgp
CiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCgog
ICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5v
dW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2dldCgpCnsKICAgIGxhc3RfY29tbWFuZD0ia29udm95
X2dldCIKCiAgICBjb21tYW5kX2FsaWFzZXM9KCkKCiAgICBjb21tYW5kcz0oKQogICAgY29tbWFu
ZHMrPSgibm9kZXBvb2xzIikKICAgIGNvbW1hbmRzKz0oIm9wcy1wb3J0YWwiKQoKICAgIGZsYWdz
PSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncz0o
KQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBmbGFnc19jb21wbGV0aW9uPSgpCgoK
ICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBu
b3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9pbWFnZV9saXN0KCkKewogICAgbGFzdF9jb21tYW5k
PSJrb252b3lfaW1hZ2VfbGlzdCIKCiAgICBjb21tYW5kX2FsaWFzZXM9KCkKCiAgICBjb21tYW5k
cz0oKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxfbm9ucGVy
c2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBmbGFnc19j
b21wbGV0aW9uPSgpCgogICAgZmxhZ3MrPSgiLS1hbGxvdy11bm9mZmljaWFsLXJlbGVhc2VzIikK
ICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1hbGxvdy11bm9mZmljaWFsLXJlbGVh
c2VzIikKICAgIGZsYWdzKz0oIi0tZG9ja2VyLXJlZ2lzdHJ5LXBhc3N3b3JkPSIpCiAgICB0d29f
d29yZF9mbGFncys9KCItLWRvY2tlci1yZWdpc3RyeS1wYXNzd29yZCIpCiAgICBsb2NhbF9ub25w
ZXJzaXN0ZW50X2ZsYWdzKz0oIi0tZG9ja2VyLXJlZ2lzdHJ5LXBhc3N3b3JkPSIpCiAgICBmbGFn
cys9KCItLWRvY2tlci1yZWdpc3RyeS1yZXBvc2l0b3J5PSIpCiAgICB0d29fd29yZF9mbGFncys9
KCItLWRvY2tlci1yZWdpc3RyeS1yZXBvc2l0b3J5IikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRf
ZmxhZ3MrPSgiLS1kb2NrZXItcmVnaXN0cnktcmVwb3NpdG9yeT0iKQogICAgZmxhZ3MrPSgiLS1k
b2NrZXItcmVnaXN0cnktc2tpcC12ZXJpZnkiKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFn
cys9KCItLWRvY2tlci1yZWdpc3RyeS1za2lwLXZlcmlmeSIpCiAgICBmbGFncys9KCItLWRvY2tl
ci1yZWdpc3RyeS11cmw9IikKICAgIHR3b193b3JkX2ZsYWdzKz0oIi0tZG9ja2VyLXJlZ2lzdHJ5
LXVybCIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tZG9ja2VyLXJlZ2lzdHJ5
LXVybD0iKQogICAgZmxhZ3MrPSgiLS1kb2NrZXItcmVnaXN0cnktdXNlcm5hbWU9IikKICAgIHR3
b193b3JkX2ZsYWdzKz0oIi0tZG9ja2VyLXJlZ2lzdHJ5LXVzZXJuYW1lIikKICAgIGxvY2FsX25v
bnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1kb2NrZXItcmVnaXN0cnktdXNlcm5hbWU9IikKICAgIGZs
YWdzKz0oIi0tdmVyYm9zZSIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tdmVy
Ym9zZSIpCgogICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49
KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2ltYWdlX3VwZ3JhZGUoKQp7CiAgICBs
YXN0X2NvbW1hbmQ9ImtvbnZveV9pbWFnZV91cGdyYWRlIgoKICAgIGNvbW1hbmRfYWxpYXNlcz0o
KQoKICAgIGNvbW1hbmRzPSgpCgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAg
ICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249
KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCiAgICBmbGFncys9KCItLWFsbG93LXVub2ZmaWNp
YWwtcmVsZWFzZXMiKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLWFsbG93LXVu
b2ZmaWNpYWwtcmVsZWFzZXMiKQogICAgZmxhZ3MrPSgiLS1kb2NrZXItcmVnaXN0cnktcGFzc3dv
cmQ9IikKICAgIHR3b193b3JkX2ZsYWdzKz0oIi0tZG9ja2VyLXJlZ2lzdHJ5LXBhc3N3b3JkIikK
ICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1kb2NrZXItcmVnaXN0cnktcGFzc3dv
cmQ9IikKICAgIGZsYWdzKz0oIi0tZG9ja2VyLXJlZ2lzdHJ5LXJlcG9zaXRvcnk9IikKICAgIHR3
b193b3JkX2ZsYWdzKz0oIi0tZG9ja2VyLXJlZ2lzdHJ5LXJlcG9zaXRvcnkiKQogICAgbG9jYWxf
bm9ucGVyc2lzdGVudF9mbGFncys9KCItLWRvY2tlci1yZWdpc3RyeS1yZXBvc2l0b3J5PSIpCiAg
ICBmbGFncys9KCItLWRvY2tlci1yZWdpc3RyeS1za2lwLXZlcmlmeSIpCiAgICBsb2NhbF9ub25w
ZXJzaXN0ZW50X2ZsYWdzKz0oIi0tZG9ja2VyLXJlZ2lzdHJ5LXNraXAtdmVyaWZ5IikKICAgIGZs
YWdzKz0oIi0tZG9ja2VyLXJlZ2lzdHJ5LXVybD0iKQogICAgdHdvX3dvcmRfZmxhZ3MrPSgiLS1k
b2NrZXItcmVnaXN0cnktdXJsIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1k
b2NrZXItcmVnaXN0cnktdXJsPSIpCiAgICBmbGFncys9KCItLWRvY2tlci1yZWdpc3RyeS11c2Vy
bmFtZT0iKQogICAgdHdvX3dvcmRfZmxhZ3MrPSgiLS1kb2NrZXItcmVnaXN0cnktdXNlcm5hbWUi
KQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLWRvY2tlci1yZWdpc3RyeS11c2Vy
bmFtZT0iKQogICAgZmxhZ3MrPSgiLS12ZXJib3NlIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRf
ZmxhZ3MrPSgiLS12ZXJib3NlIikKICAgIGZsYWdzKz0oIi0tdmVyc2lvbj0iKQogICAgdHdvX3dv
cmRfZmxhZ3MrPSgiLS12ZXJzaW9uIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgi
LS12ZXJzaW9uPSIpCgogICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25l
X25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2ltYWdlKCkKewogICAgbGFz
dF9jb21tYW5kPSJrb252b3lfaW1hZ2UiCgogICAgY29tbWFuZF9hbGlhc2VzPSgpCgogICAgY29t
bWFuZHM9KCkKICAgIGNvbW1hbmRzKz0oImxpc3QiKQogICAgY29tbWFuZHMrPSgidXBncmFkZSIp
CgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0
ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBs
ZXRpb249KCkKCgogICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25v
dW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X2luaXQoKQp7CiAgICBsYXN0X2Nv
bW1hbmQ9ImtvbnZveV9pbml0IgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNvbW1hbmRz
PSgpCgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJz
aXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2Nv
bXBsZXRpb249KCkKCiAgICBmbGFncys9KCItLWFkZG9ucy1yZXBvc2l0b3JpZXM9IikKICAgIHR3
b193b3JkX2ZsYWdzKz0oIi0tYWRkb25zLXJlcG9zaXRvcmllcyIpCiAgICBsb2NhbF9ub25wZXJz
aXN0ZW50X2ZsYWdzKz0oIi0tYWRkb25zLXJlcG9zaXRvcmllcz0iKQogICAgZmxhZ3MrPSgiLS1j
bHVzdGVyLW5hbWU9IikKICAgIHR3b193b3JkX2ZsYWdzKz0oIi0tY2x1c3Rlci1uYW1lIikKICAg
IGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1jbHVzdGVyLW5hbWU9IikKICAgIGZsYWdz
Kz0oIi0tcHJvdmlzaW9uZXI9IikKICAgIHR3b193b3JkX2ZsYWdzKz0oIi0tcHJvdmlzaW9uZXIi
KQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLXByb3Zpc2lvbmVyPSIpCiAgICBm
bGFncys9KCItLXZlcmJvc2UiKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLXZl
cmJvc2UiKQoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3Vu
PSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9wcm92aXNpb24oKQp7CiAgICBsYXN0
X2NvbW1hbmQ9ImtvbnZveV9wcm92aXNpb24iCgogICAgY29tbWFuZF9hbGlhc2VzPSgpCgogICAg
Y29tbWFuZHM9KCkKCiAgICBmbGFncz0oKQogICAgdHdvX3dvcmRfZmxhZ3M9KCkKICAgIGxvY2Fs
X25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkKICAgIGZsYWdzX3dpdGhfY29tcGxldGlvbj0oKQogICAg
ZmxhZ3NfY29tcGxldGlvbj0oKQoKICAgIGZsYWdzKz0oIi0tYWRkb25zLXJlcG9zaXRvcmllcz0i
KQogICAgdHdvX3dvcmRfZmxhZ3MrPSgiLS1hZGRvbnMtcmVwb3NpdG9yaWVzIikKICAgIGxvY2Fs
X25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1hZGRvbnMtcmVwb3NpdG9yaWVzPSIpCiAgICBmbGFn
cys9KCItLWNsdXN0ZXItbmFtZT0iKQogICAgdHdvX3dvcmRfZmxhZ3MrPSgiLS1jbHVzdGVyLW5h
bWUiKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLWNsdXN0ZXItbmFtZT0iKQog
ICAgZmxhZ3MrPSgiLS1mb3JjZS1yZWR1Y2UtY29udHJvbC1wbGFuZSIpCiAgICBsb2NhbF9ub25w
ZXJzaXN0ZW50X2ZsYWdzKz0oIi0tZm9yY2UtcmVkdWNlLWNvbnRyb2wtcGxhbmUiKQogICAgZmxh
Z3MrPSgiLS1wbGFuLW9ubHkiKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLXBs
YW4tb25seSIpCiAgICBmbGFncys9KCItLXByb3Zpc2lvbmVyPSIpCiAgICB0d29fd29yZF9mbGFn
cys9KCItLXByb3Zpc2lvbmVyIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1w
cm92aXNpb25lcj0iKQogICAgZmxhZ3MrPSgiLS1za2lwLXN0YXRlLXVwbG9hZCIpCiAgICBsb2Nh
bF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tc2tpcC1zdGF0ZS11cGxvYWQiKQogICAgZmxhZ3Mr
PSgiLS12ZXJib3NlIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS12ZXJib3Nl
IikKICAgIGZsYWdzKz0oIi0teWVzIikKICAgIGZsYWdzKz0oIi15IikKICAgIGxvY2FsX25vbnBl
cnNpc3RlbnRfZmxhZ3MrPSgiLS15ZXMiKQoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAg
bXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9wdWxs
KCkKewogICAgbGFzdF9jb21tYW5kPSJrb252b3lfcHVsbCIKCiAgICBjb21tYW5kX2FsaWFzZXM9
KCkKCiAgICBjb21tYW5kcz0oKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQog
ICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9u
PSgpCiAgICBmbGFnc19jb21wbGV0aW9uPSgpCgogICAgZmxhZ3MrPSgiLS1jbHVzdGVyLW5hbWU9
IikKICAgIHR3b193b3JkX2ZsYWdzKz0oIi0tY2x1c3Rlci1uYW1lIikKICAgIGxvY2FsX25vbnBl
cnNpc3RlbnRfZmxhZ3MrPSgiLS1jbHVzdGVyLW5hbWU9IikKICAgIGZsYWdzKz0oIi0tdmVyYm9z
ZSIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tdmVyYm9zZSIpCgogICAgbXVz
dF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxp
YXNlcz0oKQp9Cgpfa29udm95X3B1c2goKQp7CiAgICBsYXN0X2NvbW1hbmQ9ImtvbnZveV9wdXNo
IgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNvbW1hbmRzPSgpCgogICAgZmxhZ3M9KCkK
ICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAg
ICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCiAgICBm
bGFncys9KCItLWNsb3VkLXByb3ZpZGVyLWFjY291bnQtbmFtZT0iKQogICAgdHdvX3dvcmRfZmxh
Z3MrPSgiLS1jbG91ZC1wcm92aWRlci1hY2NvdW50LW5hbWUiKQogICAgbG9jYWxfbm9ucGVyc2lz
dGVudF9mbGFncys9KCItLWNsb3VkLXByb3ZpZGVyLWFjY291bnQtbmFtZT0iKQogICAgZmxhZ3Mr
PSgiLS1mb3JjZSIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tZm9yY2UiKQog
ICAgZmxhZ3MrPSgiLS12ZXJib3NlIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgi
LS12ZXJib3NlIikKCiAgICBtdXN0X2hhdmVfb25lX2ZsYWc9KCkKICAgIG11c3RfaGF2ZV9vbmVf
bm91bj0oKQogICAgbm91bl9hbGlhc2VzPSgpCn0KCl9rb252b3lfcmVzZXQoKQp7CiAgICBsYXN0
X2NvbW1hbmQ9ImtvbnZveV9yZXNldCIKCiAgICBjb21tYW5kX2FsaWFzZXM9KCkKCiAgICBjb21t
YW5kcz0oKQoKICAgIGZsYWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxfbm9u
cGVyc2lzdGVudF9mbGFncz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBmbGFn
c19jb21wbGV0aW9uPSgpCgogICAgZmxhZ3MrPSgiLS12ZXJib3NlIikKICAgIGxvY2FsX25vbnBl
cnNpc3RlbnRfZmxhZ3MrPSgiLS12ZXJib3NlIikKICAgIGZsYWdzKz0oIi0teWVzIikKICAgIGZs
YWdzKz0oIi15IikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS15ZXMiKQoKICAg
IG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBub3Vu
X2FsaWFzZXM9KCkKfQoKX2tvbnZveV9zY2FsZV9ub2RlcG9vbCgpCnsKICAgIGxhc3RfY29tbWFu
ZD0ia29udm95X3NjYWxlX25vZGVwb29sIgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNv
bW1hbmRzPSgpCgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9u
b25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZs
YWdzX2NvbXBsZXRpb249KCkKCiAgICBmbGFncys9KCItLWNvdW50PSIpCiAgICB0d29fd29yZF9m
bGFncys9KCItLWNvdW50IikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1jb3Vu
dD0iKQoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgp
CiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV9zY2FsZSgpCnsKICAgIGxhc3RfY29tbWFu
ZD0ia29udm95X3NjYWxlIgoKICAgIGNvbW1hbmRfYWxpYXNlcz0oKQoKICAgIGNvbW1hbmRzPSgp
CiAgICBjb21tYW5kcys9KCJub2RlcG9vbCIpCgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2Zs
YWdzPSgpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2Nv
bXBsZXRpb249KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCgogICAgbXVzdF9oYXZlX29uZV9m
bGFnPSgpCiAgICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpf
a29udm95X3VuY29yZG9uX25vZGVwb29sKCkKewogICAgbGFzdF9jb21tYW5kPSJrb252b3lfdW5j
b3Jkb25fbm9kZXBvb2wiCgogICAgY29tbWFuZF9hbGlhc2VzPSgpCgogICAgY29tbWFuZHM9KCkK
CiAgICBmbGFncz0oKQogICAgdHdvX3dvcmRfZmxhZ3M9KCkKICAgIGxvY2FsX25vbnBlcnNpc3Rl
bnRfZmxhZ3M9KCkKICAgIGZsYWdzX3dpdGhfY29tcGxldGlvbj0oKQogICAgZmxhZ3NfY29tcGxl
dGlvbj0oKQoKICAgIGZsYWdzKz0oIi0teWVzIikKICAgIGZsYWdzKz0oIi15IikKICAgIGxvY2Fs
X25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS15ZXMiKQoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0o
KQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZv
eV91bmNvcmRvbigpCnsKICAgIGxhc3RfY29tbWFuZD0ia29udm95X3VuY29yZG9uIgoKICAgIGNv
bW1hbmRfYWxpYXNlcz0oKQoKICAgIGNvbW1hbmRzPSgpCiAgICBjb21tYW5kcys9KCJub2RlcG9v
bCIpCgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAgICBsb2NhbF9ub25wZXJz
aXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249KCkKICAgIGZsYWdzX2Nv
bXBsZXRpb249KCkKCgogICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAgICBtdXN0X2hhdmVfb25l
X25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X3VwKCkKewogICAgbGFzdF9j
b21tYW5kPSJrb252b3lfdXAiCgogICAgY29tbWFuZF9hbGlhc2VzPSgpCgogICAgY29tbWFuZHM9
KCkKCiAgICBmbGFncz0oKQogICAgdHdvX3dvcmRfZmxhZ3M9KCkKICAgIGxvY2FsX25vbnBlcnNp
c3RlbnRfZmxhZ3M9KCkKICAgIGZsYWdzX3dpdGhfY29tcGxldGlvbj0oKQogICAgZmxhZ3NfY29t
cGxldGlvbj0oKQoKICAgIGZsYWdzKz0oIi0tYWRkb25zLXJlcG9zaXRvcmllcz0iKQogICAgdHdv
X3dvcmRfZmxhZ3MrPSgiLS1hZGRvbnMtcmVwb3NpdG9yaWVzIikKICAgIGxvY2FsX25vbnBlcnNp
c3RlbnRfZmxhZ3MrPSgiLS1hZGRvbnMtcmVwb3NpdG9yaWVzPSIpCiAgICBmbGFncys9KCItLWNs
dXN0ZXItbmFtZT0iKQogICAgdHdvX3dvcmRfZmxhZ3MrPSgiLS1jbHVzdGVyLW5hbWUiKQogICAg
bG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLWNsdXN0ZXItbmFtZT0iKQogICAgZmxhZ3Mr
PSgiLS1mb3JjZS1yZWR1Y2UtY29udHJvbC1wbGFuZSIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50
X2ZsYWdzKz0oIi0tZm9yY2UtcmVkdWNlLWNvbnRyb2wtcGxhbmUiKQogICAgZmxhZ3MrPSgiLS1m
b3JjZS11cGdyYWRlIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1mb3JjZS11
cGdyYWRlIikKICAgIGZsYWdzKz0oIi0tbWF4LXBhcmFsbGVsLW5vZGVzPSIpCiAgICB0d29fd29y
ZF9mbGFncys9KCItLW1heC1wYXJhbGxlbC1ub2RlcyIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50
X2ZsYWdzKz0oIi0tbWF4LXBhcmFsbGVsLW5vZGVzPSIpCiAgICBmbGFncys9KCItLXByb3Zpc2lv
bmVyPSIpCiAgICB0d29fd29yZF9mbGFncys9KCItLXByb3Zpc2lvbmVyIikKICAgIGxvY2FsX25v
bnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS1wcm92aXNpb25lcj0iKQogICAgZmxhZ3MrPSgiLS1za2lw
LXN0YXRlLXVwbG9hZCIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tc2tpcC1z
dGF0ZS11cGxvYWQiKQogICAgZmxhZ3MrPSgiLS10YXJnZXQtbm9kZS1wb29scz0iKQogICAgdHdv
X3dvcmRfZmxhZ3MrPSgiLS10YXJnZXQtbm9kZS1wb29scyIpCiAgICBsb2NhbF9ub25wZXJzaXN0
ZW50X2ZsYWdzKz0oIi0tdGFyZ2V0LW5vZGUtcG9vbHM9IikKICAgIGZsYWdzKz0oIi0tdXBncmFk
ZSIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0tdXBncmFkZSIpCiAgICBmbGFn
cys9KCItLXZlcmJvc2UiKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLXZlcmJv
c2UiKQogICAgZmxhZ3MrPSgiLS13aXRoLWNoZWNrcyIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50
X2ZsYWdzKz0oIi0td2l0aC1jaGVja3MiKQogICAgZmxhZ3MrPSgiLS13aXRob3V0LWFkZG9ucyIp
CiAgICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzKz0oIi0td2l0aG91dC1hZGRvbnMiKQogICAg
ZmxhZ3MrPSgiLS13aXRob3V0LWRyYWluaW5nIikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxh
Z3MrPSgiLS13aXRob3V0LWRyYWluaW5nIikKICAgIGZsYWdzKz0oIi0teWVzIikKICAgIGZsYWdz
Kz0oIi15IikKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3MrPSgiLS15ZXMiKQoKICAgIG11
c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2Fs
aWFzZXM9KCkKfQoKX2tvbnZveV92ZXJzaW9uKCkKewogICAgbGFzdF9jb21tYW5kPSJrb252b3lf
dmVyc2lvbiIKCiAgICBjb21tYW5kX2FsaWFzZXM9KCkKCiAgICBjb21tYW5kcz0oKQoKICAgIGZs
YWdzPSgpCiAgICB0d29fd29yZF9mbGFncz0oKQogICAgbG9jYWxfbm9ucGVyc2lzdGVudF9mbGFn
cz0oKQogICAgZmxhZ3Nfd2l0aF9jb21wbGV0aW9uPSgpCiAgICBmbGFnc19jb21wbGV0aW9uPSgp
CgoKICAgIG11c3RfaGF2ZV9vbmVfZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAg
ICBub3VuX2FsaWFzZXM9KCkKfQoKX2tvbnZveV92aWV3X3NlcnZpY2VhY2NvdW50LWt1YmVjb25m
aWcoKQp7CiAgICBsYXN0X2NvbW1hbmQ9ImtvbnZveV92aWV3X3NlcnZpY2VhY2NvdW50LWt1YmVj
b25maWciCgogICAgY29tbWFuZF9hbGlhc2VzPSgpCgogICAgY29tbWFuZHM9KCkKCiAgICBmbGFn
cz0oKQogICAgdHdvX3dvcmRfZmxhZ3M9KCkKICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9
KCkKICAgIGZsYWdzX3dpdGhfY29tcGxldGlvbj0oKQogICAgZmxhZ3NfY29tcGxldGlvbj0oKQoK
ICAgIGZsYWdzKz0oIi0tbmFtZXNwYWNlPSIpCiAgICB0d29fd29yZF9mbGFncys9KCItLW5hbWVz
cGFjZSIpCiAgICB0d29fd29yZF9mbGFncys9KCItbiIpCiAgICBsb2NhbF9ub25wZXJzaXN0ZW50
X2ZsYWdzKz0oIi0tbmFtZXNwYWNlPSIpCiAgICBmbGFncys9KCItLXZlcmJvc2UiKQogICAgbG9j
YWxfbm9ucGVyc2lzdGVudF9mbGFncys9KCItLXZlcmJvc2UiKQoKICAgIG11c3RfaGF2ZV9vbmVf
ZmxhZz0oKQogICAgbXVzdF9oYXZlX29uZV9ub3VuPSgpCiAgICBub3VuX2FsaWFzZXM9KCkKfQoK
X2tvbnZveV92aWV3KCkKewogICAgbGFzdF9jb21tYW5kPSJrb252b3lfdmlldyIKCiAgICBjb21t
YW5kX2FsaWFzZXM9KCkKCiAgICBjb21tYW5kcz0oKQogICAgY29tbWFuZHMrPSgic2VydmljZWFj
Y291bnQta3ViZWNvbmZpZyIpCgogICAgZmxhZ3M9KCkKICAgIHR3b193b3JkX2ZsYWdzPSgpCiAg
ICBsb2NhbF9ub25wZXJzaXN0ZW50X2ZsYWdzPSgpCiAgICBmbGFnc193aXRoX2NvbXBsZXRpb249
KCkKICAgIGZsYWdzX2NvbXBsZXRpb249KCkKCgogICAgbXVzdF9oYXZlX29uZV9mbGFnPSgpCiAg
ICBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIG5vdW5fYWxpYXNlcz0oKQp9Cgpfa29udm95X3Jv
b3RfY29tbWFuZCgpCnsKICAgIGxhc3RfY29tbWFuZD0ia29udm95IgoKICAgIGNvbW1hbmRfYWxp
YXNlcz0oKQoKICAgIGNvbW1hbmRzPSgpCiAgICBjb21tYW5kcys9KCJhcHBseSIpCiAgICBjb21t
YW5kcys9KCJjaGVjayIpCiAgICBjb21tYW5kcys9KCJjb21wbGV0aW9uIikKICAgIGNvbW1hbmRz
Kz0oImNvbmZpZyIpCiAgICBjb21tYW5kcys9KCJjb3Jkb24iKQogICAgY29tbWFuZHMrPSgiY3Jl
YXRlIikKICAgIGNvbW1hbmRzKz0oImRlcGxveSIpCiAgICBjb21tYW5kcys9KCJkaWFnbm9zZSIp
CiAgICBjb21tYW5kcys9KCJkb3duIikKICAgIGNvbW1hbmRzKz0oImRyYWluIikKICAgIGNvbW1h
bmRzKz0oImdlbmVyYXRlIikKICAgIGNvbW1hbmRzKz0oImdldCIpCiAgICBjb21tYW5kcys9KCJp
bWFnZSIpCiAgICBjb21tYW5kcys9KCJpbml0IikKICAgIGNvbW1hbmRzKz0oInByb3Zpc2lvbiIp
CiAgICBjb21tYW5kcys9KCJwdWxsIikKICAgIGNvbW1hbmRzKz0oInB1c2giKQogICAgY29tbWFu
ZHMrPSgicmVzZXQiKQogICAgY29tbWFuZHMrPSgic2NhbGUiKQogICAgY29tbWFuZHMrPSgidW5j
b3Jkb24iKQogICAgY29tbWFuZHMrPSgidXAiKQogICAgY29tbWFuZHMrPSgidmVyc2lvbiIpCiAg
ICBjb21tYW5kcys9KCJ2aWV3IikKCiAgICBmbGFncz0oKQogICAgdHdvX3dvcmRfZmxhZ3M9KCkK
ICAgIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkKICAgIGZsYWdzX3dpdGhfY29tcGxldGlv
bj0oKQogICAgZmxhZ3NfY29tcGxldGlvbj0oKQoKCiAgICBtdXN0X2hhdmVfb25lX2ZsYWc9KCkK
ICAgIG11c3RfaGF2ZV9vbmVfbm91bj0oKQogICAgbm91bl9hbGlhc2VzPSgpCn0KCl9fc3RhcnRf
a29udm95KCkKewogICAgbG9jYWwgY3VyIHByZXYgd29yZHMgY3dvcmQKICAgIGRlY2xhcmUgLUEg
ZmxhZ2hhc2ggMj4vZGV2L251bGwgfHwgOgogICAgZGVjbGFyZSAtQSBhbGlhc2hhc2ggMj4vZGV2
L251bGwgfHwgOgogICAgaWYgZGVjbGFyZSAtRiBfaW5pdF9jb21wbGV0aW9uID4vZGV2L251bGwg
Mj4mMTsgdGhlbgogICAgICAgIF9pbml0X2NvbXBsZXRpb24gLXMgfHwgcmV0dXJuCiAgICBlbHNl
CiAgICAgICAgX19rb252b3lfaW5pdF9jb21wbGV0aW9uIC1uICI9IiB8fCByZXR1cm4KICAgIGZp
CgogICAgbG9jYWwgYz0wCiAgICBsb2NhbCBmbGFncz0oKQogICAgbG9jYWwgdHdvX3dvcmRfZmxh
Z3M9KCkKICAgIGxvY2FsIGxvY2FsX25vbnBlcnNpc3RlbnRfZmxhZ3M9KCkKICAgIGxvY2FsIGZs
YWdzX3dpdGhfY29tcGxldGlvbj0oKQogICAgbG9jYWwgZmxhZ3NfY29tcGxldGlvbj0oKQogICAg
bG9jYWwgY29tbWFuZHM9KCJrb252b3kiKQogICAgbG9jYWwgbXVzdF9oYXZlX29uZV9mbGFnPSgp
CiAgICBsb2NhbCBtdXN0X2hhdmVfb25lX25vdW49KCkKICAgIGxvY2FsIGxhc3RfY29tbWFuZAog
ICAgbG9jYWwgbm91bnM9KCkKCiAgICBfX2tvbnZveV9oYW5kbGVfd29yZAp9CgppZiBbWyAkKHR5
cGUgLXQgY29tcG9wdCkgPSAiYnVpbHRpbiIgXV07IHRoZW4KICAgIGNvbXBsZXRlIC1vIGRlZmF1
bHQgLUYgX19zdGFydF9rb252b3kga29udm95CmVsc2UKICAgIGNvbXBsZXRlIC1vIGRlZmF1bHQg
LW8gbm9zcGFjZSAtRiBfX3N0YXJ0X2tvbnZveSBrb252b3kKZmkKCiMgZXg6IHRzPTQgc3c9NCBl
dCBmaWxldHlwZT1zaAoKQkFTSF9DT01QTEVUSU9OX0VPRgp9Cl9fa29udm95X2Jhc2hfc291cmNl
IDwoX19rb252b3lfY29udmVydF9iYXNoX3RvX3pzaCkKX2NvbXBsZXRlIGtvbnZveSAyPi9kZXYv
bnVsbAo=
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment