This is a multi-part message in MIME format.
--Multipart_Mon__15_Oct_2001_16:03:10_+0200_08211980
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
J'ai développé une version différente de celle présente dans la version 1.0.6.
Lorsqu'on a plus de 50 mots-clés, une fenêtre permet de cocher les mots-clés voulus pour l'article.
Si cela peut vous aider??
J'envoie les deux fichiers concernés en attachement.
Le fichier articles.php3 a été modifié aux lignes :
- 1161 a 1187 ajout de code pour la gestion du retour de la page xarticles_mots_cles.php3
- 1199 a 1267 annulation de l'ancien code sur la $recherche de mot-cle
- 1413 a 1426 modification en cas de nombre mots-cles > 50
- 1440 a 1438 ajout de ligne pour cas nombre mots-cles < 50
Le fichier xarticles_mots_cles.php3 permet l'affichage et la gestion des mots-cles.
Seb
--Multipart_Mon__15_Oct_2001_16:03:10_+0200_08211980
Content-Type: application/octet-stream;
name="articles.php3"
Content-Disposition: attachment;
filename="articles.php3"
Content-Transfer-Encoding: base64
PD8KCmluY2x1ZGUgKCJpbmMucGhwMyIpOwppbmNsdWRlICgiaW5jX21vdHMucGhwMyIpOwppbmNs
dWRlICgiaW5jX2xvZ29zLnBocDMiKTsKaW5jbHVkZSAoImluY19pbmRleC5waHAzIik7CgoKJGFy
dGljbGVzX3N1cnRpdHJlID0gbGlyZV9tZXRhKCJhcnRpY2xlc19zdXJ0aXRyZSIpOwokYXJ0aWNs
ZXNfc291c3RpdHJlID0gbGlyZV9tZXRhKCJhcnRpY2xlc19zb3VzdGl0cmUiKTsKJGFydGljbGVz
X2Rlc2NyaXB0aWYgPSBsaXJlX21ldGEoImFydGljbGVzX2Rlc2NyaXB0aWYiKTsKJGFydGljbGVz
X2NoYXBlYXUgPSBsaXJlX21ldGEoImFydGljbGVzX2NoYXBlYXUiKTsKJGFydGljbGVzX3BzID0g
bGlyZV9tZXRhKCJhcnRpY2xlc19wcyIpOwokYXJ0aWNsZXNfcmVkYWMgPSBsaXJlX21ldGEoImFy
dGljbGVzX3JlZGFjIik7CiRhcnRpY2xlc19tb3RzID0gbGlyZV9tZXRhKCJhcnRpY2xlc19tb3Rz
Iik7CiRmb3J1bXNfcHVibGljcyA9IGxpcmVfbWV0YSgiZm9ydW1zX3B1YmxpY3MiKTsKCiRyZXF1
ZXRlX2ZpY2hpZXIgPSAiYXJ0aWNsZXMucGhwMz9pZF9hcnRpY2xlPSRpZF9hcnRpY2xlIjsKCgpm
dW5jdGlvbiBjYWxjdWxlcl9hdXRldXJzKCRyZXN1bHQpIHsKCWdsb2JhbCAkbGVzX2F1dGV1cnM7
CgkKCWdsb2JhbCAka19ub207CglnbG9iYWwgJGtfZW1haWw7CglnbG9iYWwgJGtfdXJsX3NpdGU7
CglnbG9iYWwgJGtfc3RhdHV0OwoJZ2xvYmFsICRrX25vbWJyZV9hcnRpY2xlczsKCQkKCXdoaWxl
ICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHsKCQkkaWRfYXV0ZXVyID0gJHJv
d1swXTsKCQkka19ub21bJGlkX2F1dGV1cl0gPSBzdHJpcHNsYXNoZXMoJHJvd1sxXSk7CgkJJGtf
ZW1haWxbJGlkX2F1dGV1cl0gPSAkcm93WzNdOwoJCSRrX3VybF9zaXRlWyRpZF9hdXRldXJdID0g
JHJvd1s1XTsKCQkka19zdGF0dXRbJGlkX2F1dGV1cl0gPSAkcm93WzhdOwoJCSRrX25vbWJyZV9h
cnRpY2xlc1skaWRfYXV0ZXVyXT0kcm93WyJjb21wdGV1ciJdOwoKCQkkbGVzX2F1dGV1cnMuPSIs
JGlkX2F1dGV1ciI7Cgl9Cn0KCgpmdW5jdGlvbiBhZmZpY2hlcl9hdXRldXJzKCRjbGFzc2VtZW50
KSB7CglnbG9iYWwgJGNvbm5lY3Rfc3RhdHV0OwoJZ2xvYmFsICRpZm9uZDsKCWdsb2JhbCAkbGVz
X2F1dGV1cnM7CglnbG9iYWwgJGtfbm9tOwoJZ2xvYmFsICRrX2VtYWlsOwoJZ2xvYmFsICRrX3Vy
bF9zaXRlOwoJZ2xvYmFsICRrX3N0YXR1dDsKCWdsb2JhbCAka19ub21icmVfYXJ0aWNsZXM7CgoJ
Z2xvYmFsICRmbGFnX2VkaXRhYmxlOwoJZ2xvYmFsICRjb25uZWN0X2lkX2F1dGV1cjsKCWdsb2Jh
bCAkb3B0aW9uczsKCWdsb2JhbCAkaWRfYXJ0aWNsZTsKCWdsb2JhbCAkY291bGV1cl9mb25jZWU7
CglnbG9iYWwgJGNvdWxldXJfY2xhaXJlOwoJCglpZiAoJGNsYXNzZW1lbnQ9PSJhdXRldXJzIikg
JGF1dGV1cnMgPSAka19ub207CgllbHNlaWYgKCRjbGFzc2VtZW50PT0ic3RhdHV0IikgJGF1dGV1
cnMgPSAka19zdGF0dXQ7CgllbHNlaWYgKCRjbGFzc2VtZW50PT0iYXJ0aWNsZXMiKSAkYXV0ZXVy
cyA9ICRrX25vbWJyZV9hcnRpY2xlczsKCWVsc2VpZiAoJGNsYXNzZW1lbnQ9PSJlbWFpbCIpICRh
dXRldXJzID0gJGtfZW1haWw7CgllbHNlaWYgKCRjbGFzc2VtZW50PT0idXJsX3NpdGUiKSAkYXV0
ZXVycyA9ICRrX3VybF9zaXRlOwoJZWxzZSAkYXV0ZXVycyA9ICRrX25vbTsKCQoJaWYgKCRjbGFz
c2VtZW50ID09ICJhcnRpY2xlcyIpIGFyc29ydCgkYXV0ZXVycyk7CgllbHNlIGFzb3J0KCRhdXRl
dXJzKTsKCQoJZm9yIChyZXNldCgkYXV0ZXVycyk7ICRpbmRleCA9IGtleSgkYXV0ZXVycyk7IG5l
eHQoJGF1dGV1cnMpKSB7CgkJJGlkX2F1dGV1ciA9ICRpbmRleDsKCQkkbm9tID0gJGtfbm9tWyRp
bmRleF07CgkJJGVtYWlsID0gJGtfZW1haWxbJGluZGV4XTsKCQkkdXJsX3NpdGUgPSAka191cmxf
c2l0ZVskaW5kZXhdOwoJCSRzdGF0dXQgPSAka19zdGF0dXRbJGluZGV4XTsKCQkkbm9tYnJlX2Fy
dGljbGVzPSRrX25vbWJyZV9hcnRpY2xlc1skaW5kZXhdOwoKCQlpZiAoJGlmb25kPT0wKXsKCQkJ
JGlmb25kPTE7CgkJCSRjb3VsZXVyPSIjRkZGRkZGIjsKCQl9ZWxzZXsKCQkJJGlmb25kPTA7CgkJ
CSRjb3VsZXVyPSIkY291bGV1cl9jbGFpcmUiOwoJCX0JCQkJCgoJCWVjaG8gIjxUUiBXSURUSD1c
IjEwMCVcIj4iOwoKCQllY2hvICI8VEQgQkdDT0xPUj0nJGNvdWxldXInIFdJRFRIPTIzPiI7CgoJ
CWlmICgkbm9tYnJlX2FydGljbGVzID4gMCBPUiAkY29ubmVjdF9zdGF0dXQgPT0gJzBtaW5pcmV6
bycpIHsKCQkJZWNobyAiPEEgSFJFRj0nYXV0ZXVyc19lZGl0LnBocDM/aWRfYXV0ZXVyPSRpZF9h
dXRldXImcmVkaXJlY3Q9Ii5yYXd1cmxlbmNvZGUoImFydGljbGVzLnBocDM/aWRfYXJ0aWNsZT0k
aWRfYXJ0aWNsZSIpLiInPiI7CgkJfQoJCXN3aXRjaCAoJHN0YXR1dCkgewoJCWNhc2UgIjBtaW5p
cmV6byI6CgkJCWVjaG8gIjxpbWcgc3JjPSdJTUcyL2JvbmhvbW1lLW5vaXIuZ2lmJyBhbHQ9J0Fk
bWluJyB3aWR0aD0nMjMnIGhlaWdodD0nMTInIGJvcmRlcj0nMCc+IjsKCQkJYnJlYWs7CQkJCQkK
CQljYXNlICIycmVkYWMiOgoJCWNhc2UgIjFjb21pdGUiOgoJCQllY2hvICI8aW1nIHNyYz0nSU1H
Mi9ib25ob21tZS1ibGV1LmdpZicgYWx0PSdBZG1pbicgd2lkdGg9JzIzJyBoZWlnaHQ9JzEyJyBi
b3JkZXI9JzAnPiI7CgkJCWJyZWFrOwkJCQkJCgkJY2FzZSAiNXBvdWJlbGxlIjoKCQkJZWNobyAi
PGltZyBzcmM9J0lNRzIvYm9uaG9tbWUtcm91Z2UuZ2lmJyBhbHQ9J0FkbWluJyB3aWR0aD0nMjMn
IGhlaWdodD0nMTInIGJvcmRlcj0nMCc+IjsKCQkJYnJlYWs7CQkJCQkKCQljYXNlICJub3V2ZWF1
IjoKCQkJZWNobyAiJm5ic3A7IjsKCQkJYnJlYWs7CgkJZGVmYXVsdDoKCQkJZWNobyAiJm5ic3A7
IjsKCQl9CgkJaWYgKCRub21icmVfYXJ0aWNsZXM+MCBPUiAkY29ubmVjdF9zdGF0dXQ9PSIwbWlu
aXJlem8iKSB7CgkJCWVjaG8gIjwvQT4iOwoJCX0KCQkKCQllY2hvICI8L1REPiI7CgoJCWVjaG8g
IjxURCBCR0NPTE9SPSckY291bGV1cic+IjsKCQllY2hvICI8Rk9OVCBGQUNFPSdWZXJkYW5hLEFy
aWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpFPTI+IjsKCQlpZiAoJG5vbWJyZV9hcnRpY2xl
cz4wIE9SICRjb25uZWN0X3N0YXR1dD09IjBtaW5pcmV6byIpewoJCQllY2hvICI8QSBIUkVGPSdh
dXRldXJzX2VkaXQucGhwMz9pZF9hdXRldXI9JGlkX2F1dGV1ciZyZWRpcmVjdD0iLnJhd3VybGVu
Y29kZSgiYXJ0aWNsZXMucGhwMz9pZF9hcnRpY2xlPSRpZF9hcnRpY2xlIikuIic+JG5vbTwvQT4i
OwoJCX1lbHNlIGVjaG8gIiRub20iOwoJCWVjaG8gIjwvRk9OVD4iOwoJCWVjaG8gIjwvVEQ+IjsK
CgkJZWNobyAiPFREIEJHQ09MT1I9JyRjb3VsZXVyJz4iOwoJCWVjaG8gIjxGT05UIEZBQ0U9J1Zl
cmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnIFNJWkU9Mj4iOwoJCWlmIChzdHJsZW4o
JGVtYWlsKT4zKSBlY2hvICI8QSBIUkVGPSdtYWlsdG86JGVtYWlsJz5lbWFpbDwvQT4iOwoJCWVs
c2UgZWNobyAiJm5ic3A7IjsKCQllY2hvICI8L0ZPTlQ+IjsKCQllY2hvICI8L1REPiI7CgoJCWVj
aG8gIjxURCBCR0NPTE9SPSckY291bGV1cic+IjsKCQllY2hvICI8Rk9OVCBGQUNFPSdWZXJkYW5h
LEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpFPTI+IjsKCQlpZiAoc3RybGVuKCR1cmxf
c2l0ZSk+MykgZWNobyAiPEEgSFJFRj0nJHVybF9zaXRlJz5zaXRlPC9BPiI7CgkJZWxzZSBlY2hv
ICImbmJzcDsiOwoJCWVjaG8gIjwvRk9OVD4iOwoJCWVjaG8gIjwvVEQ+IjsKCgoJCWVjaG8gIjxU
RCBCR0NPTE9SPSckY291bGV1cicgQUxJR049J3JpZ2h0Jz4iOwoJCWVjaG8gIjxGT05UIEZBQ0U9
J1ZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnIFNJWkU9Mj4iOwoJCWlmICgkbm9t
YnJlX2FydGljbGVzPjEpCWVjaG8gIiRub21icmVfYXJ0aWNsZXMgYXJ0aWNsZXMiOwoJCWVsc2Vp
Zigkbm9tYnJlX2FydGljbGVzPT0xKQllY2hvICIkbm9tYnJlX2FydGljbGVzIGFydGljbGUiOwoJ
CWVsc2UgZWNobyAiJm5ic3A7IjsKCQllY2hvICI8L0ZPTlQ+IjsKCQllY2hvICI8L1REPiI7CgoJ
CWVjaG8gIjxURCBCR0NPTE9SPSckY291bGV1cicgYWxpZ249J3JpZ2h0Jz4iOwoJCWVjaG8gIjxG
T05UIEZBQ0U9J1ZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnIFNJWkU9MT4iOwoJ
CWlmICgkZmxhZ19lZGl0YWJsZSBBTkQgKCRjb25uZWN0X2lkX2F1dGV1ciAhPSAkaWRfYXV0ZXVy
IE9SICRjb25uZWN0X3N0YXR1dCA9PSAnMG1pbmlyZXpvJykgQU5EICRvcHRpb25zID09ICdhdmFu
Y2VlcycpIHsKCQkJZWNobyAiIDxBIEhSRUY9J2FydGljbGVzLnBocDM/aWRfYXJ0aWNsZT0kaWRf
YXJ0aWNsZSZzdXBwX2F1dGV1cj0kaWRfYXV0ZXVyJz5SZXRpcmVyIGwnYXV0ZXVyPC9BPiI7CgkJ
fQoJCWVsc2UgZWNobyAiJm5ic3A7IjsKCQllY2hvICI8L0ZPTlQ+IjsKCQllY2hvICI8L1REPiI7
CgoJCWVjaG8gIjwvVFI+XG4iOwoJfQp9CgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBEZXRlcm1pbmVyIGxlcyBkcm9pdHMgZCdlZGl0
aW9uCi8vCgokcXVlcnkgPSAiU0VMRUNUIHN0YXR1dCwgdGl0cmUgRlJPTSBzcGlwX2FydGljbGVz
IFdIRVJFIGlkX2FydGljbGU9JGlkX2FydGljbGUiOwokcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1
ZXJ5KTsKaWYgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgewoJJHN0YXR1dF9h
cnRpY2xlID0gJHJvd1swXTsKCSR0aXRyZV9hcnRpY2xlID0gJHJvd1sxXTsKfQplbHNlIHsKCSRz
dGF0dXRfYXJ0aWNsZSA9ICcnOwp9CgokcXVlcnkgPSAiU0VMRUNUICogRlJPTSBzcGlwX2F1dGV1
cnNfYXJ0aWNsZXMgV0hFUkUgaWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSBBTkQgaWRfYXV0ZXVyPSRj
b25uZWN0X2lkX2F1dGV1ciI7CiRyZXN1bHRfYXV0ZXVyID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsK
CiRmbGFnX2F1dGV1ciA9IChteXNxbF9udW1fcm93cygkcmVzdWx0X2F1dGV1cikgPiAwKTsKJGZs
YWdfZWRpdGFibGUgPSAoJGNvbm5lY3Rfc3RhdHV0ID09ICcwbWluaXJlem8nIE9SICgkZmxhZ19h
dXRldXIgPiAwIEFORCAoJHN0YXR1dF9hcnRpY2xlID09ICdwcmVwYScgT1IgJHN0YXR1dF9hcnRp
Y2xlID09ICdwcm9wJyBPUiAkdGl0cmVfYXJ0aWNsZSA9PSAnTm91dmVsIGFydGljbGUnKSkpOwoK
Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwov
LyBBcHBsaXF1ZXIgbGVzIG1vZGlmaWNhdGlvbnMKLy8KCgokc3VpdmlfZWRpdG8gPSBsaXJlX21l
dGEoInN1aXZpX2VkaXRvIik7CgppZiAoJHN0YXR1dF9ub3V2KSB7Cgkkb2sgPSBmYWxzZTsKCWlm
ICgkY29ubmVjdF9zdGF0dXQgPT0gJzBtaW5pcmV6bycpICRvayA9IHRydWU7CglpZiAoJGZsYWdf
YXV0ZXVyKSB7CgkJaWYgKCgkc3RhdHV0X25vdXYgPT0gJ3Byb3AnIE9SICRzdGF0dXRfbm91diA9
PSAncHJlcGEnKSBBTkQgKCRzdGF0dXRfYW5jaWVuID09ICdwcm9wJyBPUiAkc3RhdHV0X2FuY2ll
biA9PSAncHJlcGEnKSkKCQkJJG9rID0gdHJ1ZTsKCX0KCWlmICgkb2spIHsKCQkkcXVlcnkgPSAi
VVBEQVRFIHNwaXBfYXJ0aWNsZXMgU0VUIHN0YXR1dD0nJHN0YXR1dF9ub3V2JyBXSEVSRSBpZF9h
cnRpY2xlPSRpZF9hcnRpY2xlIjsKCQkkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsKCQls
ZXNfYWN0aXZlcygpOwoKCQlpZiAoJHN0YXR1dF9ub3V2ID09ICdwdWJsaWUnIEFORCAkc3RhdHV0
X25vdXYgIT0gJHN0YXR1dF9hbmNpZW4pIHsKCQkJJHF1ZXJ5ID0gIlVQREFURSBzcGlwX2FydGlj
bGVzIFNFVCBkYXRlPU5PVygpIFdIRVJFIGlkX2FydGljbGU9JGlkX2FydGljbGUiOwoJCQkkcmVz
dWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsKCQkJaWYgKGxpcmVfbWV0YSgnYWN0aXZlcl9tb3Rl
dXInKSA9PSAnb3VpJykgewoJCQkJaW5kZXhlcl9hcnRpY2xlKCRpZF9hcnRpY2xlKTsKCQkJfQoJ
CX0KCQlpZiAoJHN1aXZpX2VkaXRvID09ICdvdWknKSB7CgkJCWlmICgkc3RhdHV0X25vdXYgPT0g
J3B1YmxpZScgQU5EICRzdGF0dXRfYW5jaWVuICE9ICRzdGF0dXRfbm91diBBTkQgJHN0YXR1dF9h
bmNpZW4gPT0gJHN0YXR1dF9hcnRpY2xlKSB7CgkJCQllbnZveWVyX21haWxfcHVibGljYXRpb24o
JGlkX2FydGljbGUpOwoJCQl9CgkJCWlmICgkc3RhdHV0X25vdXYgPT0gInByb3AiIEFORCAkc3Rh
dHV0X25vdXYgIT0gJHN0YXR1dF9hbmNpZW4gQU5EICRzdGF0dXRfYW5jaWVuID09ICRzdGF0dXRf
YXJ0aWNsZSkgewoJCQkJZW52b3llcl9tYWlsX3Byb3Bvc2l0aW9uKCRpZF9hcnRpY2xlKTsKCQkJ
fQoJCX0KCQkkc3RhdHV0X2FydGljbGUgPSAkc3RhdHV0X25vdXY7CgkJJGZsYWdfZWRpdGFibGUg
PSAoJGNvbm5lY3Rfc3RhdHV0ID09ICcwbWluaXJlem8nIE9SIChteXNxbF9udW1fcm93cygkcmVz
dWx0X2F1dGV1cikgPiAwIEFORCAkc3RhdHV0X2FydGljbGUgPT0gJ3ByZXBhJykpOwoJfQp9CgoK
aWYgKCRqb3VyICYmICRmbGFnX2VkaXRhYmxlKSB7CgkkcXVlcnkgPSAiVVBEQVRFIHNwaXBfYXJ0
aWNsZXMgU0VUIGRhdGU9JyRhbm5lZS0kbW9pcy0kam91cicgV0hFUkUgaWRfYXJ0aWNsZT0kaWRf
YXJ0aWNsZSI7CgkkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsKfQoKCmlmICgkam91cl9y
ZWRhYyAmJiAkZmxhZ19lZGl0YWJsZSkgewoJaWYgKCRhbm5lZV9yZWRhYyA8IDEwMDEpICRhbm5l
ZV9yZWRhYyArPSA5MDAwOwoJCglpZiAoJGF2ZWNfcmVkYWM9PSJub24iKXsKCQkkYW5uZWVfcmVk
YWMgPSAnMDAwMCc7CgkJJG1vaXNfcmVkYWMgPSAnMDAnOwoJCSRqb3VyX3JlZGFjID0gJzAwJzsK
CX0KCgkkcXVlcnkgPSAiVVBEQVRFIHNwaXBfYXJ0aWNsZXMgU0VUIGRhdGVfcmVkYWM9JyRhbm5l
ZV9yZWRhYy0kbW9pc19yZWRhYy0kam91cl9yZWRhYycgV0hFUkUgaWRfYXJ0aWNsZT0kaWRfYXJ0
aWNsZSI7CgkkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsKfQoKLy8gcmV1bml0IGxlcyB0
ZXh0ZXMgZGVjb3VwZXMgcGFyY2UgcXVlIHRyb3AgbG9uZ3MKJG5iX3RleHRlID0gMDsKd2hpbGUg
KCRuYl90ZXh0ZSArKyA8IDEwMCl7CQkvLyAxMDAgcG91ciBldml0ZXIgdW5lIGltcHJvYmFibGUg
Ym91Y2xlIGluZmluaWUKCSR2YXJuYW1lID0gInRleHRlJG5iX3RleHRlIjsKCSR0ZXh0ZV9wbHVz
ID0gJCR2YXJuYW1lOwkvLyBkb3VibGUgJCBwb3VyIG9idGVuaXIgJHRleHRlMSwgJHRleHRlMi4u
LgoJaWYgKCR0ZXh0ZV9wbHVzKXsKCQkkdGV4dGVfcGx1cyA9IGVyZWdfcmVwbGFjZSgiPFAgU1BJ
UD5cbiokIiwiXG5cbiIsJHRleHRlX3BsdXMpOwoJCSR0ZXh0ZV9ham91dCAuPSAkdGV4dGVfcGx1
czsKCX1lbHNlCgkJYnJlYWs7Cn0KJHRleHRlID0gJHRleHRlX2Fqb3V0IC4gJHRleHRlOwoKaWYg
KCR0aXRyZSAmJiAhJGFqb3V0X2ZvcnVtICYmICRmbGFnX2VkaXRhYmxlKSB7Cgkkc3VydGl0cmUg
PSBhZGRzbGFzaGVzKCRzdXJ0aXRyZSk7CgkkdGl0cmUgPSBhZGRzbGFzaGVzKCR0aXRyZSk7Cgkk
c291c3RpdHJlID0gYWRkc2xhc2hlcygkc291c3RpdHJlKTsKCSRkZXNjcmlwdGlmID0gYWRkc2xh
c2hlcygkZGVzY3JpcHRpZik7CgkkY2hhcG8gPSBhZGRzbGFzaGVzKCRjaGFwbyk7CgkkdGV4dGUg
PSBhZGRzbGFzaGVzKCR0ZXh0ZSk7CgkkcHMgPSBhZGRzbGFzaGVzKCRwcyk7CgkkcXVlcnkgPSAi
VVBEQVRFIHNwaXBfYXJ0aWNsZXMgU0VUIHN1cnRpdHJlPVwiJHN1cnRpdHJlXCIsIHRpdHJlPVwi
JHRpdHJlXCIsIHNvdXN0aXRyZT1cIiRzb3VzdGl0cmVcIiwgaWRfcnVicmlxdWU9XCIkaWRfcnVi
cmlxdWVcIiwgZGVzY3JpcHRpZj1cIiRkZXNjcmlwdGlmXCIsIGNoYXBvPVwiJGNoYXBvXCIsIHRl
eHRlPVwiJHRleHRlXCIsIHBzPVwiJHBzXCIsIHN0YXR1dD1cIiRzdGF0dXRcIiBXSEVSRSBpZF9h
cnRpY2xlPSRpZF9hcnRpY2xlIjsKCSRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoJbGVz
X2FjdGl2ZXMoKTsKCWlmICgkc3RhdHV0X2FydGljbGUgPT0gJ3B1YmxpZScpIHsKCQlpZiAobGly
ZV9tZXRhKCdhY3RpdmVyX21vdGV1cicpID09ICdvdWknKSB7CgkJCWluZGV4ZXJfYXJ0aWNsZSgk
aWRfYXJ0aWNsZSk7CgkJfQoJfQp9CgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIERldGVybWluZXIgbGVzIGRyb2l0cyBkJ2VkaXRpb24K
Ly8KCiRxdWVyeSA9ICJTRUxFQ1Qgc3RhdHV0LCB0aXRyZSBGUk9NIHNwaXBfYXJ0aWNsZXMgV0hF
UkUgaWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSI7CiRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkp
OwppZiAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpKSB7Cgkkc3RhdHV0X2FydGlj
bGUgPSAkcm93WzBdOwoJJHRpdHJlX2FydGljbGUgPSAkcm93WzFdOwp9CmVsc2UgewoJJHN0YXR1
dF9hcnRpY2xlID0gJyc7Cn0KCgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwovLyBBZmZpY2hhZ2UgZGUgbGEgY29sb25uZSBkZSBnYXVjaGUK
Ly8KCmRlYnV0X3BhZ2UoIiZsYXF1bzsgJHRpdHJlX2FydGljbGUgJnJhcXVvOyIpOwpkZWJ1dF9n
YXVjaGUoKTsKCmRlYnV0X2JvaXRlX2luZm8oKTsKCmVjaG8gIjxDRU5URVI+IjsKCmlmICgkc3Rh
dHV0X2FydGljbGUgPT0gInB1YmxpZSIpIHsKCSRwb3N0X2RhdGVzID0gbGlyZV9tZXRhKCJwb3N0
X2RhdGVzIik7CgkKCWlmICgkcG9zdF9kYXRlcyA9PSAibm9uIikgewoJCSRxdWVyeSA9ICJTRUxF
Q1QgKiBGUk9NIHNwaXBfYXJ0aWNsZXMgV0hFUkUgaWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSBBTkQg
ZGF0ZTxOT1coKSI7CgkJJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSk7CgkJaWYgKG15c3Fs
X251bV9yb3dzKCRyZXN1bHQpID4gMCkgewoJCQllY2hvICI8QSBIUkVGPScuLi9zcGlwX3JlZGly
ZWN0LnBocDM/aWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSZyZWNhbGN1bD1vdWknPjxpbWcgc3JjPSdJ
TUcyL3ZvaXJlbmxpZ25lLmdpZicgYWx0PSd2b2lyIGVuIGxpZ25lJyB3aWR0aD0nNDgnIGhlaWdo
dD0nNDgnIGJvcmRlcj0nMCcgYWxpZ249J3JpZ2h0Jz48L0E+IjsKCQl9Cgl9CgllbHNlIHsKCQll
Y2hvICI8QSBIUkVGPScuLi9zcGlwX3JlZGlyZWN0LnBocDM/aWRfYXJ0aWNsZT0kaWRfYXJ0aWNs
ZSZyZWNhbGN1bD1vdWknPjxpbWcgc3JjPSdJTUcyL3ZvaXJlbmxpZ25lLmdpZicgYWx0PSd2b2ly
IGVuIGxpZ25lJyB3aWR0aD0nNDgnIGhlaWdodD0nNDgnIGJvcmRlcj0nMCcgYWxpZ249J3JpZ2h0
Jz48L0E+IjsKCX0KfQoKZWNobyAiPEZPTlQgRkFDRT0nVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2Es
c2Fucy1zZXJpZicgU0laRT0xPjxCPkFSVElDTEUgTlVNRVJPIDo8L0I+PC9GT05UPiI7CmVjaG8g
IjxCUj48Rk9OVCBGQUNFPSdWZXJkYW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpF
PTY+PEI+JGlkX2FydGljbGU8L0I+PC9GT05UPiI7CmVjaG8gIjwvQ0VOVEVSPiI7CgpmaW5fYm9p
dGVfaW5mbygpOwoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwovLyBMb2dvcyBkZSBsJ2FydGljbGUKLy8KCiRhcnRvbiA9ICJhcnRvbiRpZF9h
cnRpY2xlIjsKJGFydG9mZiA9ICJhcnRvZmYkaWRfYXJ0aWNsZSI7CiRhcnRvbl9vayA9IGdldF9p
bWFnZSgkYXJ0b24pOwppZiAoJGFydG9uX29rKSAkYXJ0b2ZmX29rID0gZ2V0X2ltYWdlKCRhcnRv
ZmYpOwoKaWYgKCRjb25uZWN0X3N0YXR1dCA9PSAnMG1pbmlyZXpvJyBBTkQgKCRvcHRpb25zID09
ICdhdmFuY2VlcycgT1IgJGFydG9uX29rKSBBTkQgdGVzdGVyX3VwbG9hZCgpKSB7CgoJZGVidXRf
Ym9pdGVfaW5mbygpOwoKCWFmZmljaGVyX2JvaXRlX2xvZ28oJGFydG9uLCAiTE9HTyBERSBMJ0FS
VElDTEUiLmFmZl9haWRlKCJsb2dvYXJ0IikpOwoJZWNobyAiZXNzYWkiOwoKCWlmICgoJG9wdGlv
bnMgPT0gJ2F2YW5jZWVzJyBBTkQgJGFydG9uX29rKSBPUiAkYXJ0b2ZmX29rKSB7CgkJZWNobyAi
PFA+IjsKCQlhZmZpY2hlcl9ib2l0ZV9sb2dvKCRhcnRvZmYsICJMT0dPIFBPVVIgU1VSVk9MIik7
Cgl9CgoJZmluX2JvaXRlX2luZm8oKTsKfQoKCgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIFN1aXZpIGZvcnVtcyBwdWJsaWNzCi8vCgpp
ZiAoJGZvcnVtc19wdWJsaWNzIT0ibm9uIiBBTkQgJGNvbm5lY3Rfc3RhdHV0ID09ICcwbWluaXJl
em8nIEFORCAkb3B0aW9ucyA9PSAnYXZhbmNlZXMnIEFORCAkc3RhdHV0X2FydGljbGUgPT0gInB1
YmxpZSIpIHsKCWRlYnV0X2JvaXRlX2luZm8oKTsKCWVjaG8gIjxDRU5URVI+PEZPTlQgRkFDRT0n
VmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZicgU0laRT0yIENPTE9SPScjMzMzMzMz
Jz48Qj4iOwoJZWNobyAiPEEgSFJFRj0nYXJ0aWNsZXNfZm9ydW0ucGhwMz9pZF9hcnRpY2xlPSRp
ZF9hcnRpY2xlJz5HJmVhY3V0ZTtyZXIgbGUgZm9ydW0gcHVibGljPC9BPiI7CgllY2hvICI8L0I+
PC9GT05UPjwvQ0VOVEVSPiI7CgllY2hvICI8Rk9OVCBGQUNFPSdWZXJkYW5hLEFyaWFsLEhlbHZl
dGljYSxzYW5zLXNlcmlmJyBTSVpFPTI+IjsKCgoKCWVjaG8gIjwvZm9udD4iOwoJZmluX2JvaXRl
X2luZm8oKTsKCn0KCgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwovLyBQZXRpdGlvbnMKLy8KCgppZiAoJHBldGl0aW9uKXsKCWlmICgkcGV0
aXRpb249PSJvbiIpewoJCWlmICghJGVtYWlsX3VuaXF1ZSkgJGVtYWlsX3VuaXF1ZT0ibm9uIjsK
CQlpZiAoISRzaXRlX29ibGkpICRzaXRlX29ibGk9Im5vbiI7CgkJaWYgKCEkc2l0ZV91bmlxdWUp
ICRzaXRlX3VuaXF1ZT0ibm9uIjsKCQlpZiAoISRtZXNzYWdlKSAkbWVzc2FnZT0ibm9uIjsKCQkK
CQkkdGV4dGVfcGV0aXRpb24gPSBhZGRzbGFzaGVzKCR0ZXh0ZV9wZXRpdGlvbik7CgkJCgkJJHF1
ZXJ5X3BldCA9ICJVUERBVEUgc3BpcF9wZXRpdGlvbnMgU0VUIGVtYWlsX3VuaXF1ZT0nJGVtYWls
X3VuaXF1ZScsIHNpdGVfb2JsaT0nJHNpdGVfb2JsaScsIHNpdGVfdW5pcXVlPSckc2l0ZV91bmlx
dWUnLCBtZXNzYWdlPSckbWVzc2FnZScsIHRleHRlPVwiJHRleHRlX3BldGl0aW9uXCIgV0hFUkUg
aWRfYXJ0aWNsZT0nJGlkX2FydGljbGUnIjsKCQkkcmVzdWx0X3BldCA9IG15c3FsX3F1ZXJ5KCRx
dWVyeV9wZXQpOwoKCQkkcXVlcnlfcGV0ID0gIklOU0VSVCBJTlRPIHNwaXBfcGV0aXRpb25zIChp
ZF9hcnRpY2xlLGVtYWlsX3VuaXF1ZSxzaXRlX29ibGksc2l0ZV91bmlxdWUsbWVzc2FnZSx0ZXh0
ZSkgVkFMVUVTICgnJGlkX2FydGljbGUnLCdvdWknLCdub24nLCdub24nLCdvdWknLCcnKSI7CgkJ
JHJlc3VsdF9wZXQgPSBteXNxbF9xdWVyeSgkcXVlcnlfcGV0KTsKCX0KCWlmICgkcGV0aXRpb249
PSJvZmYiKXsKCQkkcXVlcnlfcGV0PSJERUxFVEUgRlJPTSBzcGlwX3BldGl0aW9ucyBXSEVSRSBp
ZF9hcnRpY2xlPSRpZF9hcnRpY2xlIjsKCQkkcmVzdWx0X3BldD1teXNxbF9xdWVyeSgkcXVlcnlf
cGV0KTsKCX0KCn0KCgoKJHF1ZXJ5X3BldGl0aW9uPSJTRUxFQ1QgKiBGUk9NIHNwaXBfcGV0aXRp
b25zIFdIRVJFIGlkX2FydGljbGU9JGlkX2FydGljbGUiOwokcmVzdWx0X3BldGl0aW9uPW15c3Fs
X3F1ZXJ5KCRxdWVyeV9wZXRpdGlvbik7CmlmIChteXNxbF9udW1fcm93cygkcmVzdWx0X3BldGl0
aW9uKT4wKSAkcGV0aXRpb249dHJ1ZTsKZWxzZSAkcGV0aXRpb249ZmFsc2U7CgppZiAoJGNvbm5l
Y3Rfc3RhdHV0ID09ICcwbWluaXJlem8nIEFORCAoJG9wdGlvbnMgPT0gJ2F2YW5jZWVzJyBPUiAk
cGV0aXRpb249PXRydWUpKSB7CgoJd2hpbGUoJHJvdz1teXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0
X3BldGl0aW9uKSl7CgkJJGlkX3J1YnJpcXVlPSRyb3dbMF07CgkJJGVtYWlsX3VuaXF1ZT0kcm93
WzFdOwoJCSRzaXRlX29ibGk9JHJvd1syXTsKCQkkc2l0ZV91bmlxdWU9JHJvd1szXTsKCQkkbWVz
c2FnZT0kcm93WzRdOwoJCSR0ZXh0ZV9wZXRpdGlvbj1zdHJpcHNsYXNoZXMoJHJvd1s1XSk7CgkJ
Cgl9CgoKCWVjaG8gIlxuPEZPUk0gQUNUSU9OPSdhcnRpY2xlcy5waHAzJyBNRVRIT0Q9J3Bvc3Qn
PiI7CgllY2hvICJcbjxJTlBVVCBUWVBFPSdoaWRkZW4nIE5BTUU9J2lkX2FydGljbGUnIFZBTFVF
PSckaWRfYXJ0aWNsZSc+IjsKCglkZWJ1dF9ib2l0ZV9pbmZvKCk7CgllY2hvICI8Q0VOVEVSPjxU
QUJMRSBXSURUSD0xMDAlIENFTExQQURESU5HPTIgQk9SREVSPTEgQ0xBU1M9J2hhdXRldXInPjxU
Uj48VEQgV0lEVEg9MTAwJSBBTElHTj0nY2VudGVyJyBCR0NPTE9SPScjRkZDQzY2Jz48Rk9OVCBG
QUNFPSdWZXJkYW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpFPTIgQ09MT1I9JyMz
MzMzMzMnPjxCPiI7CgllY2hvICJQJkVhY3V0ZTtUSVRJT04iOwoJZWNobyAiPC9CPjwvRk9OVD48
L1REPjwvVFI+PC9UQUJMRT48L0NFTlRFUj4iOwoJZWNobyAiPEZPTlQgRkFDRT0nVmVyZGFuYSxB
cmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZicgU0laRT0yPiI7CgkKCWlmICgkcGV0aXRpb24pewoJ
CWVjaG8gIjxQPjxpbnB1dCB0eXBlPSdyYWRpbycgbmFtZT0ncGV0aXRpb24nIHZhbHVlPSdvbicg
aWQ9J3BldGl0aW9ub24nIGNoZWNrZWQ+IjsKCQllY2hvICI8Qj48bGFiZWwgZm9yPSdwZXRpdGlv
bm9uJz5DZXQgYXJ0aWNsZSBlc3QgdW5lIHAmZWFjdXRlO3RpdGlvbjwvbGFiZWw+PC9CPiI7CgoJ
CWVjaG8gIjxGT05UIFNJWkU9MT4iOwoJCWlmICgkZW1haWxfdW5pcXVlPT0ib3VpIikKCQkJZWNo
byAiPEJSPjxpbnB1dCB0eXBlPSdjaGVja2JveCcgbmFtZT0nZW1haWxfdW5pcXVlJyB2YWx1ZT0n
b3VpJyBpZD0nZW1haWx1bmlxdWUnIGNoZWNrZWQ+IjsKCQllbHNlCgkJCWVjaG8gIjxCUj48aW5w
dXQgdHlwZT0nY2hlY2tib3gnIG5hbWU9J2VtYWlsX3VuaXF1ZScgdmFsdWU9J291aScgaWQ9J2Vt
YWlsdW5pcXVlJz4iOwoJCWVjaG8gIiA8bGFiZWwgZm9yPSdlbWFpbHVuaXF1ZSc+dW5lIHNldWxl
IHNpZ25hdHVyZSBwYXIgYWRyZXNzZSBlbWFpbDwvbGFiZWw+IjsKCQlpZiAoJHNpdGVfb2JsaT09
Im91aSIpCgkJCWVjaG8gIjxCUj48aW5wdXQgdHlwZT0nY2hlY2tib3gnIG5hbWU9J3NpdGVfb2Js
aScgdmFsdWU9J291aScgaWQ9J3NpdGVvYmxpJyBjaGVja2VkPiI7CgkJZWxzZQoJCQllY2hvICI8
QlI+PGlucHV0IHR5cGU9J2NoZWNrYm94JyBuYW1lPSdzaXRlX29ibGknIHZhbHVlPSdvdWknIGlk
PSdzaXRlb2JsaSc+IjsKCQllY2hvICIgPGxhYmVsIGZvcj0nc2l0ZW9ibGknPmluZGlxdWVyIG9i
bGlnYXRvaXJlbWVudCB1biBzaXRlIFdlYjwvbGFiZWw+IjsKCQlpZiAoJHNpdGVfdW5pcXVlPT0i
b3VpIikKCQkJZWNobyAiPEJSPjxpbnB1dCB0eXBlPSdjaGVja2JveCcgbmFtZT0nc2l0ZV91bmlx
dWUnIHZhbHVlPSdvdWknIGlkPSdzaXRldW5pcXVlJyBjaGVja2VkPiI7CgkJZWxzZQoJCQllY2hv
ICI8QlI+PGlucHV0IHR5cGU9J2NoZWNrYm94JyBuYW1lPSdzaXRlX3VuaXF1ZScgdmFsdWU9J291
aScgaWQ9J3NpdGV1bmlxdWUnPiI7CgkJZWNobyAiIDxsYWJlbCBmb3I9J3NpdGV1bmlxdWUnPnVu
ZSBzZXVsZSBzaWduYXR1cmUgcGFyIHNpdGUgV2ViPC9sYWJlbD4iOwoJCWlmICgkbWVzc2FnZT09
Im91aSIpCgkJCWVjaG8gIjxCUj48aW5wdXQgdHlwZT0nY2hlY2tib3gnIG5hbWU9J21lc3NhZ2Un
IHZhbHVlPSdvdWknIGlkPSdtZXNzYWdlJyBjaGVja2VkPiI7CgkJZWxzZQoJCQllY2hvICI8QlI+
PGlucHV0IHR5cGU9J2NoZWNrYm94JyBuYW1lPSdtZXNzYWdlJyB2YWx1ZT0nb3VpJyBpZD0nbWVz
c2FnZSc+IjsKCQllY2hvICIgPGxhYmVsIGZvcj0nbWVzc2FnZSc+cG9zc2liaWxpdCZlYWN1dGU7
IGQnZW52b3llciB1biBtZXNzYWdlPC9sYWJlbD4iOwoJCQoJCWVjaG8gIjxQPkRlc2NyaXB0aWYg
ZGUgY2V0dGUgcCZlYWN1dGU7dGl0aW9uJm5ic3A7OjwvQlI+IjsKCQllY2hvICI8VEVYVEFSRUEg
TkFNRT0ndGV4dGVfcGV0aXRpb24nIENMQVNTPSdmb3JtbCcgUk9XUz0nNCcgQ09MUz0nMTAnPiI7
CgkJZWNobyAkdGV4dGVfcGV0aXRpb247CgkJZWNobyAiPC9URVhUQVJFQT48UD5cbiI7CgkJCgkJ
CgkJCgkJCgkJZWNobyAiPC9GT05UPiI7CgoJfWVsc2V7CgkJZWNobyAiPFA+PGlucHV0IHR5cGU9
J3JhZGlvJyBuYW1lPSdwZXRpdGlvbicgdmFsdWU9J29uJyBpZD0ncGV0aXRpb25vbic+IjsKCQll
Y2hvICI8bGFiZWwgZm9yPSdwZXRpdGlvbm9uJz5DZXQgYXJ0aWNsZSBlc3QgdW5lIHAmZWFjdXRl
O3RpdGlvbjwvbGFiZWw+IjsKCX0KCWlmICghJHBldGl0aW9uKXsKCQllY2hvICI8UD48aW5wdXQg
dHlwZT0ncmFkaW8nIG5hbWU9J3BldGl0aW9uJyB2YWx1ZT0nb2ZmJyBpZD0ncGV0aXRpb25vZmYn
IGNoZWNrZWQ+IjsKCQllY2hvICI8Qj48bGFiZWwgZm9yPSdwZXRpdGlvbm9mZic+Q2V0IGFydGlj
bGUgbmUgcHJvcG9zZSBwYXMgZGUgcCZlYWN1dGU7dGl0aW9uPC9sYWJlbD48L0I+IjsKCX1lbHNl
ewoJCWVjaG8gIjxQPjxpbnB1dCB0eXBlPSdyYWRpbycgbmFtZT0ncGV0aXRpb24nIHZhbHVlPSdv
ZmYnIGlkPSdwZXRpdGlvbm9mZic+IjsKCQllY2hvICI8bGFiZWwgZm9yPSdwZXRpdGlvbm9mZic+
Q2V0IGFydGljbGUgbmUgcHJvcG9zZSBwYXMgZGUgcCZlYWN1dGU7dGl0aW9uPC9sYWJlbD4iOwoJ
fQoJCgkJZWNobyAiPFAgYWxpZ249J3JpZ2h0Jz48SU5QVVQgVFlQRT0nc3VibWl0JyBOQU1FPSdD
aGFuZ2VyJyBDTEFTUz0nZm9uZG8nIFZBTFVFPSdDaGFuZ2VyJz4iOwoJCgllY2hvICI8L0ZPTlQ+
IjsKCWZpbl9ib2l0ZV9pbmZvKCk7CgllY2hvICI8L0ZPUk0+IjsKCQp9CgoKCi8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBBY2NlcHRlciBm
b3J1bXMuLi4KLy8KCiRmb3J1bXNfcHVibGljcyA9IGxpcmVfbWV0YSgiZm9ydW1zX3B1YmxpY3Mi
KTsKCmlmICgkY29ubmVjdF9zdGF0dXQgPT0gJzBtaW5pcmV6bycgQU5EICRvcHRpb25zID09ICdh
dmFuY2VlcycgQU5EICRmb3J1bXNfcHVibGljcyAhPSAibm9uIikgewoKCWlmICgkY2hhbmdlX2Fj
Y2VwdGVyX2ZvcnVtKXsKCQkkcXVlcnlfcGV0PSJVUERBVEUgc3BpcF9hcnRpY2xlcyBTRVQgYWNj
ZXB0ZXJfZm9ydW09JyRjaGFuZ2VfYWNjZXB0ZXJfZm9ydW0nIFdIRVJFIGlkX2FydGljbGU9JyRp
ZF9hcnRpY2xlJyI7CQoJCSRyZXN1bHRfcGV0PW15c3FsX3F1ZXJ5KCRxdWVyeV9wZXQpOwoJCQoJ
fQoKCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIHNwaXBfYXJ0aWNsZXMgV0hFUkUgaWRfYXJ0aWNs
ZT0nJGlkX2FydGljbGUnIjsKCSRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoKCWlmICgk
cm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHsKCQkkYWNjZXB0ZXJfZm9ydW09JHJv
d1siYWNjZXB0ZXJfZm9ydW0iXTsKCX0KCgllY2hvICJcbjxGT1JNIEFDVElPTj0nYXJ0aWNsZXMu
cGhwMycgTUVUSE9EPSdnZXQnPiI7CgllY2hvICJcbjxJTlBVVCBUWVBFPSdoaWRkZW4nIE5BTUU9
J2lkX2FydGljbGUnIFZBTFVFPSckaWRfYXJ0aWNsZSc+IjsKCglkZWJ1dF9ib2l0ZV9pbmZvKCk7
CgllY2hvICI8Q0VOVEVSPjxUQUJMRSBXSURUSD0xMDAlIENFTExQQURESU5HPTIgQk9SREVSPTEg
Q0xBU1M9J2hhdXRldXInPjxUUj48VEQgV0lEVEg9MTAwJSBBTElHTj0nY2VudGVyJyBCR0NPTE9S
PScjRkZDQzY2Jz48Rk9OVCBGQUNFPSdWZXJkYW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlm
JyBTSVpFPTIgQ09MT1I9JyMzMzMzMzMnPjxCPiI7CgllY2hvICJGT1JVTSBQT1VSIENFVCBBUlRJ
Q0xFIjsKCWVjaG8gIjwvQj48L0ZPTlQ+PC9URD48L1RSPjwvVEFCTEU+PC9DRU5URVI+IjsKCWVj
aG8gIjxGT05UIEZBQ0U9J1ZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnIFNJWkU9
Mj4iOwoKCglpZiAoJGFjY2VwdGVyX2ZvcnVtIT0ibm9uIil7CgkJZWNobyAiPFA+PGlucHV0IHR5
cGU9J3JhZGlvJyBuYW1lPSdjaGFuZ2VfYWNjZXB0ZXJfZm9ydW0nIHZhbHVlPSdvdWknIGlkPSdh
Y2NlcHRlcmZvcnVtJyBjaGVja2VkPiI7CgkJZWNobyAiPEI+PGxhYmVsIGZvcj0nYWNjZXB0ZXJm
b3J1bSc+QXJ0aWNsZSBhdmVjIGZvcnVtIChmb25jdGlvbm5lbWVudCBub3JtYWwpPC9sYWJlbD48
L0I+IjsKCQllY2hvICI8UD48aW5wdXQgdHlwZT0ncmFkaW8nIG5hbWU9J2NoYW5nZV9hY2NlcHRl
cl9mb3J1bScgdmFsdWU9J25vbicgaWQ9J3JlZnVzZXJmb3J1bSc+IjsKCQllY2hvICI8bGFiZWwg
Zm9yPSdyZWZ1c2VyZm9ydW0nPk5lIHBhcyBhZmZpY2hlciBkZSBmb3J1bSBwb3VyIGNldCBhcnRp
Y2xlLjwvbGFiZWw+IjsKCX1lbHNlewoJCWVjaG8gIjxQPjxpbnB1dCB0eXBlPSdyYWRpbycgbmFt
ZT0nY2hhbmdlX2FjY2VwdGVyX2ZvcnVtJyB2YWx1ZT0nb3VpJyBpZD0nYWNjZXB0ZXJmb3J1bSc+
IjsKCQllY2hvICI8bGFiZWwgZm9yPSdhY2NlcHRlcmZvcnVtJz5BcnRpY2xlIGF2ZWMgZm9ydW0g
KGZvbmN0aW9ubmVtZW50IG5vcm1hbCk8L2xhYmVsPiI7CgkJZWNobyAiPFA+PGlucHV0IHR5cGU9
J3JhZGlvJyBuYW1lPSdjaGFuZ2VfYWNjZXB0ZXJfZm9ydW0nIHZhbHVlPSdub24nIGlkPSdyZWZ1
c2VyZm9ydW0nIGNoZWNrZWQ+IjsKCQllY2hvICI8Qj48bGFiZWwgZm9yPSdyZWZ1c2VyZm9ydW0n
Pk5lIHBhcyBhZmZpY2hlciBkZSBmb3J1bSBwb3VyIGNldCBhcnRpY2xlLjwvbGFiZWw+PC9CPiI7
Cgl9CgllY2hvICI8UCBhbGlnbj0ncmlnaHQnPjxJTlBVVCBUWVBFPSdzdWJtaXQnIE5BTUU9J0No
YW5nZXInIENMQVNTPSdmb25kbycgVkFMVUU9J0NoYW5nZXInPiI7CgoJZmluX2JvaXRlX2luZm8o
KTsKCWVjaG8gIjwvRk9STT4iOwoKfQoKCgpkZWJ1dF9kcm9pdGUoKTsKCgoKLy8gQWZmaWNoZXIg
bGEgaGllcmFyY2hpZSAocmVjdXJyZW5jZSkKZnVuY3Rpb24gcGFyZW50KCRjb2xsZWN0aW9uKXsK
CWdsb2JhbCAkcGFyZW50czsKCWdsb2JhbCAkY29sbDsKCSRwYXJlbnRzPWVyZWdfcmVwbGFjZSgi
KH4rKSIsIlxcMX4iLCRwYXJlbnRzKTsKCWlmICgkY29sbGVjdGlvbiE9MCl7CQoJCSRxdWVyeTI9
IlNFTEVDVCAqIEZST00gc3BpcF9ydWJyaXF1ZXMgV0hFUkUgaWRfcnVicmlxdWU9XCIkY29sbGVj
dGlvblwiIjsKCQkkcmVzdWx0Mj1teXNxbF9xdWVyeSgkcXVlcnkyKTsKCgkJd2hpbGUoJHJvdz1t
eXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0MikpewoJCQkkaWRfcnVicmlxdWU9JHJvd1swXTsKCQkJ
JGlkX3BhcmVudD0kcm93WzFdOwoJCQkkdGl0cmU9c3RyaXBzbGFzaGVzKCRyb3dbMl0pOwoJCQkK
CQkJaWYgKCRpZF9ydWJyaXF1ZT09JGNvbGwpewkJCQoJCQkJJHBhcmVudHM9In4gPElNRyBTUkM9
J0lNRzIvdHJpYW5nbGUtYmFzLmdpZicgV0lEVEg9MTYgSEVJR0hUPTE0PiA8Rk9OVCBTSVpFPTMg
RkFDRT0nVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZic+PEI+JHRpdHJlPC9CPjwv
Rk9OVD48QlI+XG4kcGFyZW50cyI7CQkKCQkJfWVsc2V7CgkJCQkkcGFyZW50cz0ifiA8SU1HIFNS
Qz0nSU1HMi90cmlhbmdsZS1iYXMuZ2lmJyBXSURUSD0xNiBIRUlHSFQ9MTQ+IDxGT05UIFNJWkU9
MiBGQUNFPSdWZXJkYW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJz48Qj48QSBIUkVGPSdu
YXZpZ3Vlci5waHAzP2NvbGw9JGlkX3J1YnJpcXVlJz4kdGl0cmU8L0E+PC9CPjwvRk9OVD48QlI+
XG4kcGFyZW50cyI7CQkKCQkJfQoJCX0KCXBhcmVudCgkaWRfcGFyZW50KTsKCX0KfQoKZnVuY3Rp
b24gbXlTZWwoJHZhcmF1dCwkdmFyaWFibGUpewoJJHJldG91cj0gIiBWQUxVRT1cIiR2YXJhdXRc
IiI7CgoJaWYgKCR2YXJpYWJsZT09JHZhcmF1dCl7CgkJJHJldG91ci49ICIgU0VMRUNURUQiOwoJ
fQoJcmV0dXJuICRyZXRvdXI7Cn0KCgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIExpcmUgbCdhcnRpY2xlCi8vCgokcXVlcnkgPSAiU0VM
RUNUICogRlJPTSBzcGlwX2FydGljbGVzIFdIRVJFIGlkX2FydGljbGU9JyRpZF9hcnRpY2xlJyBP
UkRFUiBCWSB0aXRyZSI7CiRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoKaWYgKCRyb3cg
PSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgewoJJGlkX2FydGljbGUgPSAkcm93WzBdOwoJ
JHN1cnRpdHJlID0gc3RyaXBzbGFzaGVzKCRyb3dbMV0pOwoJJHRpdHJlID0gc3RyaXBzbGFzaGVz
KCRyb3dbMl0pOwoJJHNvdXN0aXRyZSA9IHN0cmlwc2xhc2hlcygkcm93WzNdKTsKCSRpZF9ydWJy
aXF1ZSA9ICRyb3dbNF07CgkkZGVzY3JpcHRpZiA9IHN0cmlwc2xhc2hlcygkcm93WzVdKTsKCSRj
aGFwbyA9IHN0cmlwc2xhc2hlcygkcm93WzZdKTsKCSR0ZXh0ZSA9IHN0cmlwc2xhc2hlcygkcm93
WzddKTsKCSRwcyA9IHN0cmlwc2xhc2hlcygkcm93WzhdKTsKCSRkYXRlID0gJHJvd1s5XTsKCSRz
dGF0dXRfYXJ0aWNsZSA9ICRyb3dbMTBdOwoJJG1haiA9ICRyb3dbIm1haiJdOwoJJGRhdGVfcmVk
YWMgPSAkcm93WyJkYXRlX3JlZGFjIl07CgkkdmlzaXRlcz0kcm93WyJ2aXNpdGVzIl07Cn0KCgoK
aWYgKGVyZWcoIihbMC05XXs0fSktKFswLTldezJ9KS0oWzAtOV17Mn0pIiwgJGRhdGVfcmVkYWMs
ICRyZWdzKSkgewogICAgICAgICRtb2lzX3JlZGFjID0gJHJlZ3NbMl07CiAgICAgICAgJGpvdXJf
cmVkYWMgPSAkcmVnc1szXTsKICAgICAgICAkYW5uZWVfcmVkYWMgPSAkcmVnc1sxXTsKICAgICAg
ICBpZiAoJGFubmVlX3JlZGFjID4gNDAwMCkgJGFubmVlX3JlZGFjIC09IDkwMDA7Cn0KCmlmIChl
cmVnKCIoWzAtOV17NH0pLShbMC05XXsyfSktKFswLTldezJ9KSIsICRkYXRlLCAkcmVncykpIHsK
ICAgICAgICAkbW9pcyA9ICRyZWdzWzJdOwogICAgICAgICRqb3VyID0gJHJlZ3NbM107CiAgICAg
ICAgJGFubmVlID0gJHJlZ3NbMV07Cn0KCgplY2hvICI8VEFCTEUgV0lEVEg9MTAwJSBDRUxMUEFE
RElORz0wIENFTExTUEFDSU5HPTAgQk9SREVSPTA+PFRSPjxURCBXSURUSD1cIjEwMCVcIj4iOwpl
Y2hvICI8Rk9OVCBGQUNFPSdHZW9yZ2lhLEdhcmFtb25kLFRpbWVzLHNlcmlmJz4iOwoKCi8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBBZmZp
Y2hlciBsYSBoaWVyYXJjaGllCi8vCgpwYXJlbnQoJGlkX3J1YnJpcXVlKTsKJHBhcmVudHM9In4g
PElNRyBTUkM9J0lNRzIvdHJpYW5nbGUtYmFzLmdpZicgV0lEVEg9MTYgSEVJR0hUPTE0PiA8QSBI
UkVGPSduYXZpZ3Vlci5waHAzP2NvbGw9MCc+PEI+UkFDSU5FIERVIFNJVEU8L0I+PC9BPiAiLmFm
Zl9haWRlKCJydWJoaWVyIikuIjxCUj4iLiRwYXJlbnRzOwoKJHBhcmVudHM9ZXJlZ19yZXBsYWNl
KCJ+IiwiJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IiwkcGFyZW50cyk7CiRw
YXJlbnRzPWVyZWdfcmVwbGFjZSgiJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
ICIsIiIsJHBhcmVudHMpOwplY2hvICIkcGFyZW50cyI7CmVjaG8gIjwvVEQ+PC9UUj48L1RBQkxF
PiI7CgplY2hvICI8UD4iOwoKCmZ1bmN0aW9uIG15X3NlbCgkbnVtLCR0ZXgsJGNvbXApewoJaWYg
KCRudW09PSRjb21wKXsKCQllY2hvICI8T1BUSU9OIFZBTFVFPSckbnVtJyBTRUxFQ1RFRD4kdGV4
XG4iOwoJfWVsc2V7CgkJZWNobyAiPE9QVElPTiBWQUxVRT0nJG51bSc+JHRleFxuIjsKCX0KCn0K
CmZ1bmN0aW9uIGFmZmljaGVyX21vaXMoJG1vaXMpewoJbXlfc2VsKCIwMSIsImphbnZpZXIiLCRt
b2lzKTsKCW15X3NlbCgiMDIiLCJmJmVhY3V0ZTt2cmllciIsJG1vaXMpOwoJbXlfc2VsKCIwMyIs
Im1hcnMiLCRtb2lzKTsKCW15X3NlbCgiMDQiLCJhdnJpbCIsJG1vaXMpOwoJbXlfc2VsKCIwNSIs
Im1haSIsJG1vaXMpOwoJbXlfc2VsKCIwNiIsImp1aW4iLCRtb2lzKTsKCW15X3NlbCgiMDciLCJq
dWlsbGV0IiwkbW9pcyk7CglteV9zZWwoIjA4IiwiYW8mdWNpcmM7dCIsJG1vaXMpOwoJbXlfc2Vs
KCIwOSIsInNlcHRlbWJyZSIsJG1vaXMpOwoJbXlfc2VsKCIxMCIsIm9jdG9icmUiLCRtb2lzKTsK
CW15X3NlbCgiMTEiLCJub3ZlbWJyZSIsJG1vaXMpOwoJbXlfc2VsKCIxMiIsImQmZWFjdXRlO2Nl
bWJyZSIsJG1vaXMpOwp9CgpmdW5jdGlvbiBhZmZpY2hlcl9hbm5lZSgkYW5uZWUpewoJaWYoJGFu
bmVlPDE5OTYpewoJCWVjaG8gIjxPUFRJT04gVkFMVUU9JyRhbm5lZScgU0VMRUNURUQ+JGFubmVl
XG4iOwoJfQoJZm9yKCRpPTE5OTY7JGk8ZGF0ZShZKSsyOyRpKyspewoJCW15X3NlbCgkaSwkaSwk
YW5uZWUpOwoJfQp9CgpmdW5jdGlvbiBhZmZpY2hlcl9qb3VyKCRqb3VyKXsKCWZvcigkaT0xOyRp
PDMyOyRpKyspewoJCWlmICgkaTwxMCl7JGFmZj0iJm5ic3A7Ii4kaTt9ZWxzZXskYWZmPSRpO30K
CQlteV9zZWwoJGksJGFmZiwkam91cik7Cgl9Cn0KCgoKZWNobyAiPFRBQkxFIENFTExQQURESU5H
PTE4IENFTExTUEFDSU5HPTAgQk9SREVSPTE+PFRSPjxURCBCR0NPTE9SPScjRkZGRkZGJyBBTElH
Tj0nY2VudGVyJz4iOwplY2hvICI8Q0VOVEVSPiI7CmVjaG8gIjxUQUJMRSBXSURUSD0xMDAlIENF
TExQQURESU5HPTAgQ0VMTFNQQUNJTkc9MCBCT1JERVI9MD4iOwplY2hvICI8VFI+IjsKCgovLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gVGl0
cmUsIHN1cnRpdHJlLCBzb3VzLXRpdHJlCi8vCmVjaG8gIjxURD4iOwoKaWYgKCRzdGF0dXRfYXJ0
aWNsZT09J3B1YmxpZScpIHsKCWVjaG8gIjxpbWcgc3JjPSdJTUcyL3B1Y2UtdmVydGUuZ2lmJyBh
bHQ9J1gnIHdpZHRoPScxMycgaGVpZ2h0PScxNCcgYm9yZGVyPScwJyBBTElHTj0nbGVmdCc+IjsK
fQplbHNlIGlmICgkc3RhdHV0X2FydGljbGU9PSdwcmVwYScpIHsKCWVjaG8gIjxpbWcgc3JjPSdJ
TUcyL3B1Y2UtYmxhbmNoZS5naWYnIGFsdD0nWCcgd2lkdGg9JzEzJyBoZWlnaHQ9JzE0JyBib3Jk
ZXI9JzAnIEFMSUdOPSdsZWZ0Jz4iOwp9CmVsc2UgaWYgKCRzdGF0dXRfYXJ0aWNsZT09J3Byb3An
KSB7CgllY2hvICI8aW1nIHNyYz0nSU1HMi9wdWNlLW9yYW5nZS5naWYnIGFsdD0nWCcgd2lkdGg9
JzEzJyBoZWlnaHQ9JzE0JyBib3JkZXI9JzAnIEFMSUdOPSdsZWZ0Jz4iOwp9CmVsc2UgaWYgKCRz
dGF0dXRfYXJ0aWNsZSA9PSAncmVmdXNlJykgewoJZWNobyAiPGltZyBzcmM9J0lNRzIvcHVjZS1y
b3VnZS5naWYnIGFsdD0nWCcgd2lkdGg9JzEzJyBoZWlnaHQ9JzE0JyBib3JkZXI9JzAnIEFMSUdO
PSdsZWZ0Jz4iOwp9CmVsc2UgaWYgKCRzdGF0dXRfYXJ0aWNsZSA9PSAncG91YmVsbGUnKSB7Cgll
Y2hvICI8aW1nIHNyYz0nSU1HMi9wdWNlLXBvdWJlbGxlLmdpZicgYWx0PSdYJyB3aWR0aD0nMTMn
IGhlaWdodD0nMTQnIGJvcmRlcj0nMCcgQUxJR049J2xlZnQnPiI7Cn0KCmVjaG8gIjwvVEQ+PFRE
IFdJRFRIPTEwMCUgYWxpZ249J2NlbnRlcic+IjsKCgppZiAoc3RybGVuKCRzdXJ0aXRyZSkgPiAx
KSB7CgllY2hvICI8Rk9OVCBGQUNFPSdhcmlhbCxoZWx2ZXRpY2EnIFNJWkU9Mz48Qj4iOwoJZWNo
byBwcm9wcmUoJHN1cnRpdHJlKTsKCWVjaG8gIjwvQj48L0ZPTlQ+PEJSPlxuIjsKfQoKZWNobyAi
PEZPTlQgRkFDRT0nVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZicgU0laRT00PjxC
PiI7CmVjaG8gbWFqdXNjdWxlcyhwcm9wcmUoJHRpdHJlKSk7CmVjaG8gIjwvQj48L0ZPTlQ+PEJS
PlxuIjsKCmlmIChzdHJsZW4oJHNvdXN0aXRyZSkgPiAxKSB7CgllY2hvICI8Rk9OVCBGQUNFPSdh
cmlhbCxoZWx2ZXRpY2EnIFNJWkU9Mz48Qj4iOwoJZWNobyBwcm9wcmUoJHNvdXN0aXRyZSk7Cgll
Y2hvICI8L0I+PC9GT05UPjxCUj5cbiI7Cn0KZWNobyAiPC9URD4iOwoKCi8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBCb3V0b24gJ21vZGlm
aWVyIGwnYXJ0aWNsZScKLy8KCmVjaG8gIjxURCBhbGlnbj0ncmlnaHQnPiI7CmlmICgkZmxhZ19l
ZGl0YWJsZSkgewoJZWNobyAiPFAgYWxpZ249cmlnaHQ+IjsKLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIGRlYnV0IG1vZGlmaWNhdGlvbiBw
b3VyIGwnYWZmaWNoYWdlIGRlIGxhIHBhZ2UgYXJ0aWNsZXNfZWRpdDIucGhwMyBsb3JzICRpZF9y
dWI9MTAKLy8KCi8vYW5jaWVuIGNvZGUJZWNobyAiPEEgSFJFRj0nYXJ0aWNsZXNfZWRpdC5waHAz
P2lkX2FydGljbGU9JGlkX2FydGljbGUnIG9uTW91c2VPdmVyPVwibW9kaWZpZXJfYXJ0aWNsZS5z
cmM9J0lNRzIvbW9kaWZpZXItYXJ0aWNsZS1vbi5naWYnXCIgb25Nb3VzZU91dD1cIm1vZGlmaWVy
X2FydGljbGUuc3JjPSdJTUcyL21vZGlmaWVyLWFydGljbGUtb2ZmLmdpZidcIj48aW1nIHNyYz0n
SU1HMi9tb2RpZmllci1hcnRpY2xlLW9mZi5naWYnIGFsdD0nTW9kaWZpZXIgY2V0IGFydGljbGUn
IHdpZHRoPSc1MScgaGVpZ2h0PSc1MycgYm9yZGVyPScwJyBuYW1lPSdtb2RpZmllcl9hcnRpY2xl
Jz48L0E+IjsKCgoJZWNobyAiPEEgSFJFRj0nYXJ0aWNsZXNfZWRpdCI7CglpZiAoJGlkX3J1YnJp
cXVlID09IDEwKSB7CgkJZWNobyAiMiI7Cgl9CgllY2hvICIucGhwMz9pZF9hcnRpY2xlPSRpZF9h
cnRpY2xlJyBvbk1vdXNlT3Zlcj1cIm1vZGlmaWVyX2FydGljbGUuc3JjPSdJTUcyL21vZGlmaWVy
LWFydGljbGUtb24uZ2lmJ1wiIG9uTW91c2VPdXQ9XCJtb2RpZmllcl9hcnRpY2xlLnNyYz0nSU1H
Mi9tb2RpZmllci1hcnRpY2xlLW9mZi5naWYnXCI+PGltZyBzcmM9J0lNRzIvbW9kaWZpZXItYXJ0
aWNsZS1vZmYuZ2lmJyBhbHQ9J01vZGlmaWVyIGNldCBhcnRpY2xlJyB3aWR0aD0nNTEnIGhlaWdo
dD0nNTMnIGJvcmRlcj0nMCcgbmFtZT0nbW9kaWZpZXJfYXJ0aWNsZSc+PC9BPiI7CgovLwovLyBm
aW4gbW9kaWZpY2F0aW9uIHBvdXIgZGV0b3VyIGR1IGxpZW4KLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwp9CgplY2hvICI8L1REPjwvVFI+PC9U
QUJMRT4iOwoKZWNobyAiPFAgYWxpZ249bGVmdD4iOwplY2hvICI8Rk9OVCBGQUNFPSdHZW9yZ2lh
LEdhcmFtb25kLFRpbWVzLHNlcmlmJz4iOwoKCmlmIChzdHJsZW4oJGRlc2NyaXB0aWYpID4gMSkg
ewoJZWNobyAiPERJViBhbGlnbj0nbGVmdCc+IjsKCWRlYnV0X2JvaXRlX2luZm8oKTsKCgllY2hv
ICI8aW1nIHNyYz0nSU1HMi9kZXNjcmlwdGlmLmdpZicgYWx0PSdERVNDUklQVElGJyB3aWR0aD0n
NTknIGhlaWdodD0nMTInIGJvcmRlcj0nMCc+PEJSPiI7CgllY2hvICI8Rk9OVCBTSVpFPTMgRkFD
RT0nVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZic+IjsKCWVjaG8gcHJvcHJlKCRk
ZXNjcmlwdGlmKTsKCWVjaG8gIiZuYnNwOyAiOwoJZWNobyAiPC9GT05UPiI7CglmaW5fYm9pdGVf
aW5mbygpOwoJZWNobyAiPFA+IjsKfQoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBBZmZpY2hhZ2UgZGF0ZSByZWRhYyBldCBkYXRlIHB1
YmxpCi8vCgppZiAoJGZsYWdfZWRpdGFibGUgQU5EICgkb3B0aW9ucyA9PSAnYXZhbmNlZXMnIE9S
ICRzdGF0dXRfYXJ0aWNsZSA9PSAncHVibGllJykpIHsKCWRlYnV0X2NhZHJlX3JlbGllZigpOwoK
CWVjaG8gIjxGT1JNIEFDVElPTj0nYXJ0aWNsZXMucGhwMycgTUVUSE9EPSdHRVQnPiI7CgllY2hv
ICI8SU5QVVQgVFlQRT0naGlkZGVuJyBOQU1FPSdpZF9hcnRpY2xlJyBWQUxVRT0nJGlkX2FydGlj
bGUnPiI7CgllY2hvICI8SU5QVVQgTkFNRT0nb3B0aW9ucycgVFlQRT1IaWRkZW4gVkFMVUU9XCIk
b3B0aW9uc1wiPiI7CgoJaWYgKCRzdGF0dXRfYXJ0aWNsZSA9PSAncHVibGllJykgewkKCQllY2hv
ICI8VEFCTEUgQ0VMTFBBRERJTkc9NSBDRUxMU1BBQ0lORz0wIEJPUkRFUj0wIFdJRFRIPTEwMCUg
QkFDS0dST1VORD0nSU1HMi9yaWVuLmdpZic+IjsKCQllY2hvICI8VFI+PFREIEJHQ09MT1I9JyRj
b3VsZXVyX2ZvbmNlZScgQ09MU1BBTj0yPjxGT05UIFNJWkU9MiBDT0xPUj0nI0ZGRkZGRic+PEI+
REFURSBERSBQVUJMSUNBVElPTiBFTiBMSUdORSA6IjsKCQlhaWRlKCJhcnRkYXRlIik7CgkJZWNo
byAiPC9CPjwvRk9OVD48L1RSPiI7CgkJZWNobyAiPFRSPjxURCBBTElHTj0nY2VudGVyJyBCR0NP
TE9SPScjRkZGRkZGJz4iOwoJCWVjaG8gIjxTRUxFQ1QgTkFNRT0nam91cicgU0laRT0xIENMQVNT
PSdmb25kbCc+IjsKCQlhZmZpY2hlcl9qb3VyKCRqb3VyKTsKCQllY2hvICI8L1NFTEVDVD4gIjsK
CQllY2hvICI8U0VMRUNUIE5BTUU9J21vaXMnIFNJWkU9MSBDTEFTUz0nZm9uZGwnPiI7CgkJYWZm
aWNoZXJfbW9pcygkbW9pcyk7CgkJZWNobyAiPC9TRUxFQ1Q+ICI7CgkJZWNobyAiPFNFTEVDVCBO
QU1FPSdhbm5lZScgU0laRT0xIENMQVNTPSdmb25kbCc+IjsKCQlhZmZpY2hlcl9hbm5lZSgkYW5u
ZWUpOwoJCWVjaG8gIjwvU0VMRUNUPiI7CiAJCQoJCWVjaG8gIjwvVEQ+PFREIEFMSUdOPSdyaWdo
dCcgQkdDT0xPUj0nI0ZGRkZGRic+IjsKCQllY2hvICI8SU5QVVQgVFlQRT0nc3VibWl0JyBOQU1F
PSdDaGFuZ2VyJyBDTEFTUz0nZm9uZG8nIFZBTFVFPSdDaGFuZ2VyJz4iOwoJCWVjaG8gIjwvVEQ+
PC9UUj48L1RBQkxFPiI7Cgl9CgllbHNlIHsKCQllY2hvICI8VEFCTEUgQ0VMTFBBRERJTkc9NSBD
RUxMU1BBQ0lORz0wIEJPUkRFUj0wIFdJRFRIPTEwMCUgQkFDS0dST1VORD0nSU1HMi9yaWVuLmdp
Zic+IjsKCQllY2hvICI8VFI+PFREIEJHQ09MT1I9JyRjb3VsZXVyX2ZvbmNlZSc+PEZPTlQgU0la
RT0yIENPTE9SPScjRkZGRkZGJz48Qj5EQVRFIERFIENSRUFUSU9OIERFIEwnQVJUSUNMRSI7CgkJ
ZWNobyAiIDo8L0I+PC9GT05UPjwvVFI+IjsKCgkJZWNobyAiPFRSPjxURCBBTElHTj0nY2VudGVy
JyBCR0NPTE9SPScjRkZGRkZGJz4iOwoJCWVjaG8gIjxCPiI7CgkJZWNobyBhZmZkYXRlKCRkYXRl
KTsKCQlhaWRlKCJhcnRkYXRlIik7CgkJZWNobyAiPC9URD48L1RSPjwvVEFCTEU+IjsKCQoJfQoJ
CgkKCWlmICgoJG9wdGlvbnMgPT0gJ2F2YW5jZWVzJyBBTkQgJGFydGljbGVzX3JlZGFjICE9ICJu
b24iKSBPUiAoIiRhbm5lZV9yZWRhYy0kbW9pc19yZWRhYy0kam91cl9yZWRhYyIgIT0gIjAwMDAt
MDAtMDAiKSkgewoJCWVjaG8gIjxQPjxUQUJMRSBDRUxMUEFERElORz01IENFTExTUEFDSU5HPTAg
Qk9SREVSPTAgV0lEVEg9MTAwJSBCQUNLR1JPVU5EPSdJTUcyL3JpZW4uZ2lmJz4iOwoJCWVjaG8g
IjxUUj48VEQgQkdDT0xPUj0nI0U0RTRFNCcgQ09MU1BBTj0yPjxGT05UIFNJWkU9MiBDT0xPUj0n
IzAwMDAwMCc+PEI+REFURSBERSBQVUJMSUNBVElPTiBBTlQmRWFjdXRlO1JJRVVSRSA6PC9CPjwv
Rk9OVD48L1RSPiI7CgoJCWVjaG8gIjxUUj48VEQgQUxJR049J2xlZnQnIEJHQ09MT1I9JyNGRkZG
RkYnPiI7CgkJaWYgKCIkYW5uZWVfcmVkYWMtJG1vaXNfcmVkYWMtJGpvdXJfcmVkYWMiID09ICIw
MDAwLTAwLTAwIikgewoJCQllY2hvICI8SU5QVVQgVFlQRT0ncmFkaW8nIE5BTUU9J2F2ZWNfcmVk
YWMnIFZBTFVFPSdub24nIGlkPSdvbicgY2hlY2tlZD4gIDxCPjxsYWJlbCBmb3I9J29uJz5OZSBw
YXMgYWZmaWNoZXIgZGUgZGF0ZSBkZSBwdWJsaWNhdGlvbiBhbnQmZWFjdXRlO3JpZXVyZS48L2xh
YmVsPjwvQj4iOwoJCQllY2hvICI8QlI+PElOUFVUIFRZUEU9J3JhZGlvJyBOQU1FPSdhdmVjX3Jl
ZGFjJyBWQUxVRT0nb3VpJyBpZD0nb2ZmJz4iOwoJCQllY2hvICIgPGxhYmVsIGZvcj0nb2ZmJz5B
ZmZpY2hlciBsYSBkYXRlIGRlIHB1YmxpY2F0aW9uIGFudCZlYWN1dGU7cmlldXJlLjwvbGFiZWw+
ICI7CgkJCQoJCQllY2hvICI8SU5QVVQgVFlQRT0naGlkZGVuJyBOQU1FPSdqb3VyX3JlZGFjJyBW
QUxVRT1cIjFcIj4iOwoJCQllY2hvICI8SU5QVVQgVFlQRT0naGlkZGVuJyBOQU1FPSdtb2lzX3Jl
ZGFjJyBWQUxVRT1cIjFcIj4iOwoJCQllY2hvICI8SU5QVVQgVFlQRT0naGlkZGVuJyBOQU1FPSdh
bm5lZV9yZWRhYycgVkFMVUU9XCIwXCI+IjsKCQl9CgkJZWxzZXsKCQkJZWNobyAiPElOUFVUIFRZ
UEU9J3JhZGlvJyBOQU1FPSdhdmVjX3JlZGFjJyBWQUxVRT0nbm9uJyBpZD0nb24nPiAgPGxhYmVs
IGZvcj0nb24nPk5lIHBhcyBhZmZpY2hlciBkZSBkYXRlIGRlIHB1YmxpY2F0aW9uIGFudCZlYWN1
dGU7cmlldXJlLjwvbGFiZWw+IjsKCQkJZWNobyAiPEJSPjxJTlBVVCBUWVBFPSdyYWRpbycgTkFN
RT0nYXZlY19yZWRhYycgVkFMVUU9J291aScgaWQ9J29mZicgY2hlY2tlZD4iOwoJCQllY2hvICIg
PEI+PGxhYmVsIGZvcj0nb2ZmJz5BZmZpY2hlciA6PC9sYWJlbD48L0I+ICI7CgkJCQoJCQllY2hv
ICI8U0VMRUNUIE5BTUU9J2pvdXJfcmVkYWMnIFNJWkU9MSBDTEFTUz0nZm9uZGwnPiI7CgkJCWFm
ZmljaGVyX2pvdXIoJGpvdXJfcmVkYWMpOwoJCQllY2hvICI8L1NFTEVDVD4gJm5ic3A7IjsKCQkJ
ZWNobyAiPFNFTEVDVCBOQU1FPSdtb2lzX3JlZGFjJyBTSVpFPTEgQ0xBU1M9J2ZvbmRsJz4iOwoJ
CQlhZmZpY2hlcl9tb2lzKCRtb2lzX3JlZGFjKTsKCQkJZWNobyAiPC9TRUxFQ1Q+ICZuYnNwOyI7
CgkJCWVjaG8gIjxJTlBVVCBUWVBFPSd0ZXh0JyBOQU1FPSdhbm5lZV9yZWRhYycgQ0xBU1M9J2Zv
bmRsJyBWQUxVRT1cIiRhbm5lZV9yZWRhY1wiIFNJWkU9JzUnPiI7CgkJfQoJCWVjaG8gIjwvVEQ+
PFREIEFMSUdOPSdyaWdodCcgQkdDT0xPUj0nI0ZGRkZGRic+IjsKCQllY2hvICI8SU5QVVQgVFlQ
RT0nc3VibWl0JyBOQU1FPSdDaGFuZ2VyJyBDTEFTUz0nZm9uZG8nIFZBTFVFPSdDaGFuZ2VyJz4i
OwoJCWFpZGUoImFydGRhdGVfcmVkYWMiKTsKCQllY2hvICI8L1REPjwvVFI+PC9UQUJMRT4iOwoJ
Cgl9CgoJZWNobyAiPC9GT1JNPiI7CglmaW5fY2FkcmVfcmVsaWVmKCk7Cn0KCmlmICghJGZsYWdf
ZWRpdGFibGUgQU5EICRzdGF0dXRfYXJ0aWNsZSA9PSAncHVibGllJykgewoJZWNobyAiPENFTlRF
Uj4iLmFmZmRhdGUoJGRhdGUpLiI8L0NFTlRFUj48UD4iOwp9CgoKCi8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyAnQXJ0aWNsZSBwcm9wb3Nl
IHBvdXIgbGEgcHVibGljYXRpb24nCi8vCgppZiAoJHN0YXR1dF9hcnRpY2xlID09ICdwcm9wJykg
ewoJZWNobyAiPFA+PEZPTlQgRkFDRT0nVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJp
ZicgU0laRT0zIENPTE9SPSdyZWQnPjxCPkFydGljbGUgcHJvcG9zJmVhY3V0ZTsgcG91ciBsYSBw
dWJsaWNhdGlvbi4gTidoJmVhY3V0ZTtzaXRleiBwYXMgJmFncmF2ZTsgZG9ubmVyIHZvdHJlIGF2
aXMgZ3ImYWNpcmM7Y2UgYXUgZm9ydW0gYXR0YWNoJmVhY3V0ZTsgJmFncmF2ZTsgY2UgYXJ0aWNs
ZSAoZW4gYmFzIGRlIHBhZ2UpLjwvQj48L0ZPTlQ+PC9QPiI7Cn0KCgovLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gTGlzdGUgZGVzIGF1dGV1
cnMgZGUgbCdhcnRpY2xlCi8vCgpkZWJ1dF9jYWRyZV9yZWxpZWYoKTsKCmVjaG8gIjxUQUJMRSBC
T1JERVI9MCBDRUxMU1BBQ0lORz0wIENFTExQQURESU5HPTMgV0lEVEg9MTAwJSBCQUNLR1JPVU5E
PScnPjxUUj48VEQgQkdDT0xPUj0nI0VFRUVDQyc+IjsKCmVjaG8gIjxGT05UIFNJWkU9MiBGQUNF
PSdHZW9yZ2lhLEdhcmFtb25kLFRpbWVzLHNlcmlmJz48Qj5MRVMgQVVURVVSUzwvQj48L0ZPTlQ+
IjsKYWlkZSgiYXJ0YXV0ZXVycyIpOwplY2hvICI8L1RBQkxFPiI7CgoKLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIFJlY2hlcmNoZSBkJ2F1
dGV1cgovLwoKaWYgKCRjaGVyY2hlX2F1dGV1cikgewoJZWNobyAiPFAgQUxJR049J2xlZnQnPiI7
CgkkcXVlcnkgPSAiU0VMRUNUIGlkX2F1dGV1ciwgbm9tIEZST00gc3BpcF9hdXRldXJzIjsKCSRy
ZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoJdW5zZXQoJHRhYmxlX2F1dGV1cnMpOwoJdW5z
ZXQoJHRhYmxlX2lkcyk7Cgl3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQp
KSB7CgkJJHRhYmxlX2F1dGV1cnNbXSA9ICRyb3dbMV07CgkJJHRhYmxlX2lkc1tdID0gJHJvd1sw
XTsKCX0KCSRyZXN1bHRhdCA9IG1vdHNfcmVzc2VtYmxhbnRzKCRjaGVyY2hlX2F1dGV1ciwgJHRh
YmxlX2F1dGV1cnMsICR0YWJsZV9pZHMpOwoJZGVidXRfYm9pdGVfaW5mbygpOwoJaWYgKCEkcmVz
dWx0YXQpIHsKCQllY2hvICI8Qj5BdWN1biByJmVhY3V0ZTtzdWx0YXQgcG91ciBcIiRjaGVyY2hl
X2F1dGV1clwiLjwvQj48QlI+IjsKCX0KCWlmIChjb3VudCgkcmVzdWx0YXQpID09IDEpIHsKCQkk
YWpvdXRfYXV0ZXVyID0gJ291aSc7CgkJbGlzdCgsICRub3V2X2F1dGV1cikgPSBlYWNoKCRyZXN1
bHRhdCk7CgkJZWNobyAiPEI+TCdhdXRldXIgc3VpdmFudCBhICZlYWN1dGU7dCZlYWN1dGU7IGFq
b3V0JmVhY3V0ZTsgJmFncmF2ZTsgbCdhcnRpY2xlIDo8L0I+PEJSPiI7CgkJJHF1ZXJ5ID0gIlNF
TEVDVCAqIEZST00gc3BpcF9hdXRldXJzIFdIRVJFIGlkX2F1dGV1cj0kbm91dl9hdXRldXIiOwoJ
CSRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoJCWVjaG8gIjxVTD4iOwoJCXdoaWxlICgk
cm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHsKCQkJJGlkX2F1dGV1ciA9ICRyb3db
J2lkX2F1dGV1ciddOwoJCQkkbm9tX2F1dGV1ciA9IHN0cmlwc2xhc2hlcygkcm93Wydub20nXSk7
CgkJCSRlbWFpbF9hdXRldXIgPSBzdHJpcHNsYXNoZXMoJHJvd1snZW1haWwnXSk7CgkJCSRiaW9f
YXV0ZXVyID0gc3RyaXBzbGFzaGVzKCRyb3dbJ2JpbyddKTsKCgkJCWVjaG8gIjxMST48Rk9OVCBG
QUNFPSdWZXJkYW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpFPTI+PEI+PEZPTlQg
U0laRT0zPiRub21fYXV0ZXVyPC9GT05UPjwvQj4iOwoJCQllY2hvICI8L0ZPTlQ+XG4iOwoJCX0K
CQllY2hvICI8L1VMPiI7Cgl9CgllbHNlIGlmIChjb3VudCgkcmVzdWx0YXQpIDwgMTYpIHsKCQly
ZXNldCgkcmVzdWx0YXQpOwoJCXVuc2V0KCRsZXNfYXV0ZXVycyk7CgkJd2hpbGUgKGxpc3QoLCAk
aWRfYXV0ZXVyKSA9IGVhY2goJHJlc3VsdGF0KSkgJGxlc19hdXRldXJzW10gPSAkaWRfYXV0ZXVy
OwoJCWlmICgkbGVzX2F1dGV1cnMpIHsKCQkJJGxlc19hdXRldXJzID0gam9pbignLCcsICRsZXNf
YXV0ZXVycyk7CgkJCWVjaG8gIjxCPlBsdXNpZXVycyBhdXRldXJzIHRyb3V2JmVhY3V0ZTtzIHBv
dXIgXCIkY2hlcmNoZV9hdXRldXJcIjo8L0I+PEJSPiI7CgkJCSRxdWVyeSA9ICJTRUxFQ1QgKiBG
Uk9NIHNwaXBfYXV0ZXVycyBXSEVSRSBpZF9hdXRldXIgSU4gKCRsZXNfYXV0ZXVycykgT1JERVIg
Qlkgbm9tIjsKCQkJJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSk7CgkJCWVjaG8gIjxVTD4i
OwoJCQl3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpKSB7CgkJCQkkaWRf
YXV0ZXVyID0gJHJvd1snaWRfYXV0ZXVyJ107CgkJCQkkbm9tX2F1dGV1ciA9IHN0cmlwc2xhc2hl
cygkcm93Wydub20nXSk7CgkJCQkkZW1haWxfYXV0ZXVyID0gc3RyaXBzbGFzaGVzKCRyb3dbJ2Vt
YWlsJ10pOwoJCQkJJGJpb19hdXRldXIgPSBzdHJpcHNsYXNoZXMoJHJvd1snYmlvJ10pOwoJCgkJ
CQllY2hvICI8TEk+PEZPTlQgRkFDRT0nVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJp
ZicgU0laRT0yPjxCPjxGT05UIFNJWkU9Mz4kbm9tX2F1dGV1cjwvRk9OVD48L0I+IjsKCQkJCgkJ
CQlpZiAoJGVtYWlsX2F1dGV1cikgZWNobyAiICgkZW1haWxfYXV0ZXVyKSI7CgkJCQllY2hvICIg
fCA8QSBIUkVGPVwiYXJ0aWNsZXMucGhwMz9pZF9hcnRpY2xlPSRpZF9hcnRpY2xlJmFqb3V0X2F1
dGV1cj1vdWkmbm91dl9hdXRldXI9JGlkX2F1dGV1clwiPkFqb3V0ZXIgY2V0IGF1dGV1cjwvQT4i
OwoJCQkKCQkJCWlmICh0cmltKCRiaW9fYXV0ZXVyKSkgewoJCQkJCWVjaG8gIjxCUj48Rk9OVCBT
SVpFPTE+Ii5wcm9wcmUoY291cGVyKCRiaW9fYXV0ZXVyLCAxMDApKS4iPC9GT05UPlxuIjsKCQkJ
CX0KCQkJCWVjaG8gIjwvRk9OVD48cD5cbiI7CgkJCX0KCQkJZWNobyAiPC9VTD4iOwoJCX0KCX0K
CWVsc2UgewoJCWVjaG8gIjxCPlRyb3AgZGUgciZlYWN1dGU7c3VsdGF0cyBwb3VyIFwiJGNoZXJj
aGVfYXV0ZXVyXCIgOyB2ZXVpbGxleiBhZmZpbmVyIGxhIHJlY2hlcmNoZS48L0I+PEJSPiI7Cgl9
CglmaW5fYm9pdGVfaW5mbygpOwoJZWNobyAiPFA+IjsKCn0KCgoKLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEFwcGxpcXVlciBsZXMgbW9k
aWZpY2F0aW9ucyBzdXIgbGVzIGF1dGV1cnMgCi8vCgppZiAoJGFqb3V0X2F1dGV1ciAmJiAkZmxh
Z19lZGl0YWJsZSkgewoJaWYgKCRub3V2X2F1dGV1ciA+IDApIHsKCQkkcXVlcnk9IkRFTEVURSBG
Uk9NIHNwaXBfYXV0ZXVyc19hcnRpY2xlcyBXSEVSRSBpZF9hdXRldXI9JyRub3V2X2F1dGV1cicg
QU5EIGlkX2FydGljbGU9JyRpZF9hcnRpY2xlJyI7CgkJJHJlc3VsdD1teXNxbF9xdWVyeSgkcXVl
cnkpOwoJCSRxdWVyeT0iSU5TRVJUIElOVE8gc3BpcF9hdXRldXJzX2FydGljbGVzIChpZF9hdXRl
dXIsaWRfYXJ0aWNsZSkgVkFMVUVTICgnJG5vdXZfYXV0ZXVyJywnJGlkX2FydGljbGUnKSI7CgkJ
JHJlc3VsdD1teXNxbF9xdWVyeSgkcXVlcnkpOwoJfQp9CgppZiAoJHN1cHBfYXV0ZXVyICYmICRm
bGFnX2VkaXRhYmxlKSB7CgkkcXVlcnk9IkRFTEVURSBGUk9NIHNwaXBfYXV0ZXVyc19hcnRpY2xl
cyBXSEVSRSBpZF9hdXRldXI9JyRzdXBwX2F1dGV1cicgQU5EIGlkX2FydGljbGU9JyRpZF9hcnRp
Y2xlJyI7CgkkcmVzdWx0PW15c3FsX3F1ZXJ5KCRxdWVyeSk7Cgp9CgoKCnVuc2V0KCRsZXNfYXV0
ZXVycyk7CgokcXVlcnkgPSAiU0VMRUNUICogRlJPTSBzcGlwX2F1dGV1cnMgQVMgYXV0ZXVycywg
c3BpcF9hdXRldXJzX2FydGljbGVzIEFTIGxpZW4gV0hFUkUgYXV0ZXVycy5pZF9hdXRldXI9bGll
bi5pZF9hdXRldXIgQU5EIGxpZW4uaWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSBHUk9VUCBCWSBhdXRl
dXJzLmlkX2F1dGV1ciI7CiRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoKd2hpbGUgKCRy
b3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgewoJJGlkX2F1dGV1ciA9ICRyb3dbMF07
Cgkka19ub21bJGlkX2F1dGV1cl0gPSBzdHJpcHNsYXNoZXMoJHJvd1sxXSk7Cgkka19lbWFpbFsk
aWRfYXV0ZXVyXSA9ICRyb3dbM107Cgkka191cmxfc2l0ZVskaWRfYXV0ZXVyXSA9ICRyb3dbNV07
Cgkka19zdGF0dXRbJGlkX2F1dGV1cl0gPSAkcm93WzhdOwoJJGtfbm9tYnJlX2FydGljbGVzWyRp
ZF9hdXRldXJdPSRyb3dbImNvbXB0ZXVyIl07CgoJJGxlc19hdXRldXJzLj0iLCRpZF9hdXRldXIi
OwoKCglpZiAoJGNvbm5lY3Rfc3RhdHV0PT0iMG1pbmlyZXpvIikgJGFmZl9hcnRpY2xlcz0icHJl
cGEscHJvcCxwdWJsaWUscmVmdXNlIjsKCWVsc2UgJGFmZl9hcnRpY2xlcz0icHJvcCxwdWJsaWUi
OwoJCgkkcXVlcnkyID0gIlNFTEVDVCAqLCBDT1VOVChhcnRpY2xlcy5pZF9hcnRpY2xlKSBBUyBj
b21wdGV1ciBGUk9NIHNwaXBfYXV0ZXVycyBBUyBhdXRldXJzLCBzcGlwX2F1dGV1cnNfYXJ0aWNs
ZXMgQVMgbGllbiwgc3BpcF9hcnRpY2xlcyBBUyBhcnRpY2xlcyBXSEVSRSBhdXRldXJzLmlkX2F1
dGV1cj1saWVuLmlkX2F1dGV1ciBBTkQgbGllbi5pZF9hdXRldXI9JGlkX2F1dGV1ciBBTkQgYXJ0
aWNsZXMuaWRfYXJ0aWNsZT1saWVuLmlkX2FydGljbGUgQU5EIEZJTkRfSU5fU0VUKGFydGljbGVz
LnN0YXR1dCwnJGFmZl9hcnRpY2xlcycpIEdST1VQIEJZIGF1dGV1cnMuaWRfYXV0ZXVyIjsKCWNh
bGN1bGVyX2F1dGV1cnMobXlzcWxfcXVlcnkoJHF1ZXJ5MikpOwoKfQoKaWYgKGNvdW50KCRrX25v
bSk+MCl7CgllY2hvICI8VEFCTEUgQk9SREVSPTAgQ0VMTFNQQUNJTkc9MCBDRUxMUEFERElORz0z
IFdJRFRIPTEwMCUgQkFDS0dST1VORD0nJz4iOwoJYWZmaWNoZXJfYXV0ZXVycygiYXJ0aWNsZXMi
KTsKCWVjaG8gIjwvVEFCTEU+IjsKfQoKCi8qCmlmIChteXNxbF9udW1fcm93cygkcmVzdWx0KSA+
IDApIHsKCi8vCWVjaG8gIjxUQUJMRSBDRUxMUEFERElORz0yIENFTExTUEFDSU5HPTAgQk9SREVS
PTAgV0lEVEg9XCIxMDAlXCI+IjsKCWVjaG8gIjxVTD4iOwoJCgkkaWZvbmQ9MDsKCQoJd2hpbGUg
KCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgewoJCSRpZF9hdXRldXIgPSAkcm93
WzBdOwoJCSRub21fYXV0ZXVyID0gc3RyaXBzbGFzaGVzKCRyb3dbMV0pOwoJCSRiaW9fYXV0ZXVy
ID0gc3RyaXBzbGFzaGVzKCRyb3dbMl0pOwoJCSRlbWFpbF9hdXRldXIgPSB0cmltKCRyb3dbM10p
OwoJCSRub21fc2l0ZV9hdXRldXIgPSB0cmltKHN0cmlwc2xhc2hlcygkcm93WzRdKSk7CgkJJHVy
bF9zaXRlX2F1dGV1ciA9ICRyb3dbNV07CgkJJHN0YXR1dF9hdXRldXIgPSAkcm93WzhdOwoJCgkJ
JHN0YXR1dF9hdXRldXIgPSBlcmVnX3JlcGxhY2UoIjBtaW5pcmV6byIsICJBZG1pbmlzdHJhdGV1
ciIsICRzdGF0dXRfYXV0ZXVyKTsKCQkkc3RhdHV0X2F1dGV1ciA9IGVyZWdfcmVwbGFjZSgiMWNv
bWl0ZSIsICJSJmVhY3V0ZTtkYWN0ZXVyIiwgJHN0YXR1dF9hdXRldXIpOwoJCSRzdGF0dXRfYXV0
ZXVyID0gZXJlZ19yZXBsYWNlKCIycmVkYWMiLCAiTm91dmVhdSByJmVhY3V0ZTtkYWN0ZXVyIiwg
JHN0YXR1dF9hdXRldXIpOwoJCSRzdGF0dXRfYXV0ZXVyID0gZXJlZ19yZXBsYWNlKCI1cG91YmVs
bGUiLCAiRWZmYWMmZWFjdXRlOyIsICRzdGF0dXRfYXV0ZXVyKTsKCQoJCgkJZWNobyAiPExJPjxC
PjxGT05UIEZBQ0U9J0dlb3JnaWEsR2FyYW1vbmQsVGltZXMsc2VyaWYnIFNJWkU9Mz4kbm9tX2F1
dGV1cjwvRk9OVD48L0I+IjsKCQoJCWlmICgkZW1haWxfYXV0ZXVyIE9SICRub21fc2l0ZV9hdXRl
dXIpIHsKCQkJZWNobyAiIDxGT05UIFNJWkU9Mj4oIjsKCQkJaWYgKCRlbWFpbF9hdXRldXIpIHsK
CQkJCWVjaG8gIjxBIEhSRUY9J21haWx0bzokZW1haWxfYXV0ZXVyJz5lLW1haWw8L0E+IjsKCQkJ
CWlmICgkbm9tX3NpdGVfYXV0ZXVyKSBlY2hvICIsICI7CgkJCX0KCQkJaWYgKCRub21fc2l0ZV9h
dXRldXIpIGVjaG8gIjxBIEhSRUY9JyR1cmxfc2l0ZV9hdXRldXInPnNpdGU8L0E+IjsKCQkJZWNo
byAiKTwvRk9OVD4iOwoJCX0KCQlpZiAoJGNvbm5lY3Rfc3RhdHV0ID09ICcwbWluaXJlem8nKSB7
CgkJCWVjaG8gIiB8IDxGT05UIFNJWkU9Mj48QSBIUkVGPSdhdXRldXJzX2VkaXQucGhwMz9pZF9h
dXRldXI9JGlkX2F1dGV1cic+TW9kaWZpZXIgbGEgZmljaGU8L0E+PC9GT05UPiI7CgkJfQoJCWlm
ICgkZmxhZ19lZGl0YWJsZSBBTkQgKCRjb25uZWN0X2lkX2F1dGV1ciAhPSAkaWRfYXV0ZXVyIE9S
ICRjb25uZWN0X3N0YXR1dCA9PSAnMG1pbmlyZXpvJykgQU5EICRvcHRpb25zID09ICdhdmFuY2Vl
cycpIHsKCQkJZWNobyAiIHwgPEZPTlQgU0laRT0yPjxBIEhSRUY9J2FydGljbGVzLnBocDM/aWRf
YXJ0aWNsZT0kaWRfYXJ0aWNsZSZzdXBwX2F1dGV1cj0kaWRfYXV0ZXVyJz5SZXRpcmVyIGwnYXV0
ZXVyPC9BPjwvRk9OVD4iOwoJCX0KCQlpZiAoc3RybGVuKCRiaW9fYXV0ZXVyKSA+IDEpIHsKCQkJ
ZWNobyAiPEJSPjxGT05UIFNJWkU9MT4kYmlvX2F1dGV1cjwvRk9OVD5cbiI7CgkJfQoJCWVjaG8g
IjxQPiI7CgkKCQkkbGVzX2F1dGV1cnNbXSA9ICRpZF9hdXRldXI7CgkKCX0KLy8JZWNobyAiPC9U
QUJMRT4iOwoJZWNobyAiPC9VTD4iOwoJCn0KKi8KCiRsZXNfYXV0ZXVycz1zdWJzdHIoJGxlc19h
dXRldXJzLDEsc3RybGVuKCRsZXNfYXV0ZXVycykpOwoKCi8vaWYgKCRsZXNfYXV0ZXVycykgJGxl
c19hdXRldXJzID0gam9pbigkbGVzX2F1dGV1cnMsICIsIik7CgoKCi8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBBam91dGVyIHVuIGF1dGV1
cgovLwoKaWYgKCRmbGFnX2VkaXRhYmxlIEFORCAkb3B0aW9ucyA9PSAnYXZhbmNlZXMnKSB7CgkK
CSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIHNwaXBfYXV0ZXVycyBXSEVSRSAiOwoJaWYgKCRsZXNf
YXV0ZXVycykgJHF1ZXJ5IC49ICJpZF9hdXRldXIgTk9UIElOICgkbGVzX2F1dGV1cnMpIEFORCAi
OwoJJHF1ZXJ5IC49ICJzdGF0dXQ8Pic1cG91YmVsbGUnIEFORCBzdGF0dXQ8Pidub3V2ZWF1JyBP
UkRFUiBCWSBzdGF0dXQsIG5vbSI7CgkkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsKCglp
ZiAobXlzcWxfbnVtX3Jvd3MoJHJlc3VsdCkgPiAwKSB7CgoJCWVjaG8gIjxQPiI7CgkJZWNobyAi
PEZPUk0gQUNUSU9OPSdhcnRpY2xlcy5waHAzJyBNRVRIT0Q9J3Bvc3QnPiI7CgkJZWNobyAiPERJ
ViBhbGlnbj1sZWZ0PjxGT05UIEZBQ0U9J1ZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2Vy
aWYnIFNJWkU9Mj48Qj5BSk9VVEVSIFVOIEFVVEVVUiA6ICZuYnNwOyA8L0I+PC9GT05UPlxuIjsK
CQllY2hvICI8SU5QVVQgTkFNRT0nb3B0aW9ucycgVFlQRT1IaWRkZW4gVkFMVUU9XCIkb3B0aW9u
c1wiPiI7CgkJZWNobyAiPElOUFVUIFRZUEU9J0hpZGRlbicgTkFNRT0naWRfYXJ0aWNsZScgVkFM
VUU9XCIkaWRfYXJ0aWNsZVwiPiI7CgoJCWlmIChteXNxbF9udW1fcm93cygkcmVzdWx0KSA+IDUw
IEFORCAkZmxhZ19tb3RzX3Jlc3NlbWJsYW50cykgewoJCQllY2hvICI8SU5QVVQgVFlQRT0ndGV4
dCcgTkFNRT0nY2hlcmNoZV9hdXRldXInIENMQVNTPSdmb25kbCcgVkFMVUU9JycgU0laRT0nMjAn
PiI7CgkJCWVjaG8gIjxJTlBVVCBUWVBFPSdzdWJtaXQnIE5BTUU9J0NoZXJjaGVyJyBWQUxVRT0n
Q2hlcmNoZXInIENMQVNTPSdmb25kbyc+IjsKCQl9CgkJZWxzZSB7CgkJCWVjaG8gIjxJTlBVVCBU
WVBFPSdIaWRkZW4nIE5BTUU9J2Fqb3V0X2F1dGV1cicgVkFMVUU9J291aSc+IjsKCQkJZWNobyAi
PFNFTEVDVCBOQU1FPSdub3V2X2F1dGV1cicgU0laRT0nMScgU1RZTEU9J1dJRFRIPTE1MCcgQ0xB
U1M9J2ZvbmRsJz4iOwoJCQkkZ3JvdXAgPSBmYWxzZTsKCQkJJGdyb3VwMiA9IGZhbHNlOwoJCgkJ
CXdoaWxlKCRyb3c9bXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHsKCQkJCSRpZF9hdXRldXIg
PSAkcm93WzBdOwoJCQkJJG5vbSA9IHN0cmlwc2xhc2hlcygkcm93WzFdKTsKCQkJCSRlbWFpbCA9
ICRyb3dbM107CgkJCQkkc3RhdHV0ID0gJHJvd1s4XTsKCQoJCQkJJHN0YXR1dD1lcmVnX3JlcGxh
Y2UoIjBtaW5pcmV6byIsICJBZG1pbmlzdHJhdGV1ciIsICRzdGF0dXQpOwoJCQkJJHN0YXR1dD1l
cmVnX3JlcGxhY2UoIjFjb21pdGUiLCAiUiZlYWN1dGU7ZGFjdGV1ciIsICRzdGF0dXQpOwoJCQkJ
JHN0YXR1dD1lcmVnX3JlcGxhY2UoIjJyZWRhYyIsICJSJmVhY3V0ZTtkYWN0ZXVyIiwgJHN0YXR1
dCk7CgkJCQkkc3RhdHV0PWVyZWdfcmVwbGFjZSgiNXBvdWJlbGxlIiwgIkVmZmFjJmVhY3V0ZTsi
LCAkc3RhdHV0KTsKCQoJCQkJJHByZW1pZXJlID0gc3RydG91cHBlcihzdWJzdHIodHJpbSgkbm9t
KSwgMCwgMSkpOwoJCgkJCQlpZiAoJGNvbm5lY3Rfc3RhdHV0ICE9ICcwbWluaXJlem8nKSB7CgkJ
CQkJaWYgKCRwID0gc3RycG9zKCRlbWFpbCwgJ0AnKSkgJGVtYWlsID0gc3Vic3RyKCRlbWFpbCwg
MCwgJHApLidALi4uJzsKCQkJCX0KCQoJCQkJaWYgKCRzdGF0dXQgIT0gJHN0YXR1dF9vbGQpIHsK
CQkJCQllY2hvICJcbjxPUFRJT04gVkFMVUU9XCJ4XCI+IjsKCQkJCQllY2hvICJcbjxPUFRJT04g
VkFMVUU9XCJ4XCI+ICRzdGF0dXQiLidzJzsKCQkJCX0KCQkJCgkJCQlpZiAoJHByZW1pZXJlICE9
ICRwcmVtaWVyZV9vbGQgQU5EICgkc3RhdHV0ICE9ICdBZG1pbmlzdHJhdGV1cicgT1IgISRwcmVt
aWVyZV9vbGQpKSB7CgkJCQkJZWNobyAiXG48T1BUSU9OIFZBTFVFPVwieFwiPiI7CgkJCQl9CgkK
CQkJCSR0ZXh0ZV9vcHRpb24gPSBjb3VwZXIoIiRub20gKCRlbWFpbCkgIiwgNDApOwoJCQkJZWNo
byAiXG48T1BUSU9OIFZBTFVFPVwiJGlkX2F1dGV1clwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyR0ZXh0ZV9vcHRpb24iOwoJCQkJJHN0YXR1dF9vbGQgPSAkc3RhdHV0OwoJCQkJJHByZW1pZXJl
X29sZCA9ICRwcmVtaWVyZTsKCQkJfQoJCQkKCQkJZWNobyAiPC9TRUxFQ1Q+IjsKCQkJZWNobyAi
PElOUFVUIFRZUEU9J3N1Ym1pdCcgTkFNRT0nQWpvdXRlcicgVkFMVUU9J0Fqb3V0ZXInIENMQVNT
PSdmb25kbyc+IjsKCQl9CgkJZWNobyAiPC9GT1JNPiI7Cgl9Cgp9CgpmaW5fY2FkcmVfcmVsaWVm
KCk7CgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwovLyBMaXN0ZSBkZXMgbW90cy1jbGVzIGRlIGwnYXJ0aWNsZQovLwoKCiRxdWVyeSA9ICJT
RUxFQ1QgaWRfbW90LCB0aXRyZSBGUk9NIHNwaXBfbW90cyBXSEVSRSB0aXRyZTw+J2thd2F4JyI7
CiRub21icmVfbW90cyA9IG15c3FsX251bV9yb3dzKG15c3FsX3F1ZXJ5KCRxdWVyeSkpOwoJCmlm
ICgkb3B0aW9ucyA9PSAnYXZhbmNlZXMnIEFORCAkYXJ0aWNsZXNfbW90cyAhPSAibm9uIiBBTkQg
JG5vbWJyZV9tb3RzID4gMCkgewoKCWRlYnV0X2NhZHJlX3JlbGllZigpOwoKCWVjaG8gIjxUQUJM
RSBCT1JERVI9MCBDRUxMU1BBQ0lORz0wIENFTExQQURESU5HPTMgV0lEVEg9MTAwJSBCQUNLR1JP
VU5EPScnPjxUUj48VEQgQkdDT0xPUj0nI0VFRUVDQyc+IjsKCWVjaG8gIjxGT05UIFNJWkU9MiBG
QUNFPSdHZW9yZ2lhLEdhcmFtb25kLFRpbWVzLHNlcmlmJz48Qj5NT1RTLUNMJkVhY3V0ZTtTPC9C
PjwvRk9OVD4iOwoJYWlkZSgiYXJ0bW90cyIpOwoJZWNobyAiPC9UQUJMRT4iOwoKCi8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBham91dCBk
ZSBkZXYgcG91ciBsZSByZXRvdXIgZGUgbGEgcGFnZSB4YXJ0aWNsZXNfbW90c19jbGVzLnBocDMK
Ly8KCgkvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KCS8vIFJldG91ciBwYWdlIHhhcnRpY2xlc19tb3RzX2NsZXMucGhwMyBhdmVjIHJlY2hlcmNo
ZSBldCBlbnJlZ2lzdHJlbWVudCBkZXMgbW90cy1jbGVzCgkvLwoJaWYgKCRjaG9peF9tb3RzX2Ns
ZXMpIHsKCQkkcXVlcnkgPSAiREVMRVRFIEZST00gc3BpcF9tb3RzX2FydGljbGVzIFdIRVJFIGlk
X2FydGljbGUgPSAkaWRfYXJ0aWNsZSI7CgkJJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSk7
CgoJCSRxdWVyeSA9ICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBzcGlwX21vdHMgV0hFUkUgdGl0cmU8
PidrYXdheCciOwoJCSRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoJCSRyb3cgPSBteXNx
bF9mZXRjaF9yb3coJHJlc3VsdCk7CgkJaWYgKCRyb3dbMF0gIT0gMCkgewoJCQlmb3IgKCRpID0g
MDsgJGkgPCAoJHJvd1swXSArIDEpOyAkaSsrKSB7CgkJCQlpZiAoJGNoZWNrYm94WyRpXSkgewoJ
CQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyBzcGlwX21vdHNfYXJ0aWNsZXMgKGlkX21vdCxpZF9h
cnRpY2xlKSBWQUxVRVMgKCckY2hlY2tib3hbJGldJywnJGlkX2FydGljbGUnKSI7CgkJCQkJJHJl
c3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSk7CgkJCQl9CgkJCX0KCQl9Cgl9CgovLwovLyBmaW4g
ZGUgbCdham91dAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwovLyBhbm51bGF0aW9uIGRlIGxhIHBhcnRpZSBjb25jZXJuYW50ICRjaGVyY2hlX21vdAovLwoJ
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgkv
LyBSZWNoZXJjaGUgZGUgbW90LWNsZQoJLy8KCi8vCWlmICgkY2hlcmNoZV9tb3QpIHsKLy8JCWVj
aG8gIjxQIEFMSUdOPSdsZWZ0Jz4iOwovLwkJJHF1ZXJ5ID0gIlNFTEVDVCBpZF9tb3QsIHRpdHJl
IEZST00gc3BpcF9tb3RzIFdIRVJFIHRpdHJlPD4na2F3YXgnIjsKLy8JCSRyZXN1bHQgPSBteXNx
bF9xdWVyeSgkcXVlcnkpOwovLwkJdW5zZXQoJHRhYmxlX21vdHMpOwovLwkJdW5zZXQoJHRhYmxl
X2lkcyk7Ci8vCQl3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpKSB7Ci8v
CQkJJHRhYmxlX21vdHNbXSA9ICRyb3dbMV07Ci8vCQkJJHRhYmxlX2lkc1tdID0gJHJvd1swXTsK
Ly8JCX0KLy8JCSRyZXN1bHRhdCA9IG1vdHNfcmVzc2VtYmxhbnRzKCRjaGVyY2hlX21vdCwgJHRh
YmxlX21vdHMsICR0YWJsZV9pZHMpOwovLwkJZGVidXRfYm9pdGVfaW5mbygpOwovLwkJaWYgKCEk
cmVzdWx0YXQpIHsKLy8JCQllY2hvICI8Qj5BdWN1biByJmVhY3V0ZTtzdWx0YXQgcG91ciBcIiRj
aGVyY2hlX21vdFwiLjwvQj48QlI+IjsKLy8JCX0KLy8JCWVsc2UgaWYgKGNvdW50KCRyZXN1bHRh
dCkgPT0gMSkgewovLwkJCSRham91dF9tb3QgPSAnb3VpJzsKLy8JCQlsaXN0KCwgJG5vdXZfbW90
KSA9IGVhY2goJHJlc3VsdGF0KTsKLy8JCQllY2hvICI8Qj5MZSBtb3QtY2wmZWFjdXRlOyBzdWl2
YW50IGEgJmVhY3V0ZTt0JmVhY3V0ZTsgYWpvdXQmZWFjdXRlOyAmYWdyYXZlOyBsJ2FydGljbGUg
OjwvQj48QlI+IjsKLy8JCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSBzcGlwX21vdHMgV0hFUkUg
aWRfbW90PSRub3V2X21vdCI7Ci8vCQkJJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSk7Ci8v
CQkJZWNobyAiPFVMPiI7Ci8vCQkJd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVz
dWx0KSkgewovLwkJCQkkaWRfbW90ID0gJHJvd1snaWRfbW90J107Ci8vCQkJCSR0aXRyZV9tb3Qg
PSBzdHJpcHNsYXNoZXMoJHJvd1sndGl0cmUnXSk7Ci8vCQkJCSR0eXBlX21vdCA9IHN0cmlwc2xh
c2hlcygkcm93Wyd0eXBlJ10pOwovLwkJCQkkZGVzY3JpcHRpZl9tb3QgPSBzdHJpcHNsYXNoZXMo
JHJvd1snZGVzY3JpcHRpZiddKTsKCQkJCi8vCQkJCWVjaG8gIjxMST48Rk9OVCBGQUNFPSdWZXJk
YW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpFPTI+PEI+PEZPTlQgU0laRT0zPiR0
aXRyZV9tb3Q8L0ZPTlQ+PC9CPiI7Ci8vCQkJCWVjaG8gIjwvRk9OVD5cbiI7Ci8vCQkJfQovLwkJ
CWVjaG8gIjwvVUw+IjsKLy8JCX0KLy8JCWVsc2UgaWYgKGNvdW50KCRyZXN1bHRhdCkgPCAxNikg
ewovLwkJCXJlc2V0KCRyZXN1bHRhdCk7Ci8vCQkJdW5zZXQoJGxlc19tb3RzKTsKLy8JCQl3aGls
ZSAobGlzdCgsICRpZF9tb3QpID0gZWFjaCgkcmVzdWx0YXQpKSAkbGVzX21vdHNbXSA9ICRpZF9t
b3Q7Ci8vCQkJaWYgKCRsZXNfbW90cykgewovLwkJCQkkbGVzX21vdHMgPSBqb2luKCcsJywgJGxl
c19tb3RzKTsKLy8JCQkJZWNobyAiPEI+UGx1c2lldXJzIG1vdHMtY2wmZWFjdXRlO3MgdHJvdXYm
ZWFjdXRlO3MgcG91ciBcIiRjaGVyY2hlX21vdFwiOjwvQj48QlI+IjsKLy8JCQkJJHF1ZXJ5ID0g
IlNFTEVDVCAqIEZST00gc3BpcF9tb3RzIFdIRVJFIGlkX21vdCBJTiAoJGxlc19tb3RzKSBPUkRF
UiBCWSB0aXRyZSI7Ci8vCQkJCSRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwovLwkJCQll
Y2hvICI8VUw+IjsKLy8JCQkJd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0
KSkgewovLwkJCQkJJGlkX21vdCA9ICRyb3dbJ2lkX21vdCddOwovLwkJCQkJJHRpdHJlX21vdCA9
IHN0cmlwc2xhc2hlcygkcm93Wyd0aXRyZSddKTsKLy8JCQkJCSR0eXBlX21vdCA9IHN0cmlwc2xh
c2hlcygkcm93Wyd0eXBlJ10pOwovLwkJCQkJJGRlc2NyaXB0aWZfbW90ID0gc3RyaXBzbGFzaGVz
KCRyb3dbJ2Rlc2NyaXB0aWYnXSk7CgkJCQkKLy8JCQkJCWVjaG8gIjxMST48Rk9OVCBGQUNFPSdW
ZXJkYW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpFPTI+PEI+PEZPTlQgU0laRT0z
PiR0aXRyZV9tb3Q8L0ZPTlQ+PC9CPiI7CgkJCQkKLy8JCQkJCWlmICgkdHlwZV9tb3QpIGVjaG8g
IiAoJHR5cGVfbW90KSI7Ci8vCQkJCQllY2hvICIgfCA8QSBIUkVGPVwiYXJ0aWNsZXMucGhwMz9p
ZF9hcnRpY2xlPSRpZF9hcnRpY2xlJmFqb3V0X21vdD1vdWkmbm91dl9tb3Q9JGlkX21vdFwiPkFq
b3V0ZXIgY2UgbW90PC9BPiI7CgkJCQkKLy8JCQkJCWlmIChzdHJsZW4oJGRlc2NyaXB0aWZfbW90
KSA+IDEpIHsKLy8JCQkJCQllY2hvICI8QlI+PEZPTlQgU0laRT0xPiIucHJvcHJlKGNvdXBlcigk
ZGVzY3JpcHRpZl9tb3QsIDEwMCkpLiI8L0ZPTlQ+XG4iOwovLwkJCQkJfQovLwkJCQkJZWNobyAi
PC9GT05UPjxwPlxuIjsKLy8JCQkJfQovLwkJCQllY2hvICI8L1VMPiI7Ci8vCQkJfQovLwkJfQov
LwkJZWxzZSB7Ci8vCQkJZWNobyAiPEI+VHJvcCBkZSByJmVhY3V0ZTtzdWx0YXRzIHBvdXIgXCIk
Y2hlcmNoZV9tb3RcIiA7IHZldWlsbGV6IGFmZmluZXIgbGEgcmVjaGVyY2hlLjxCUj4iOwovLwkJ
fQovLwkJZmluX2JvaXRlX2luZm8oKTsKLy8JCWVjaG8gIjxQPiI7Ci8vCX0KCi8vCi8vIGZpbiBk
ZSBsYSBwYXJ0aWUgYW5udWxlZQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwoKCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwoJLy8gQXBwbGlxdWVyIGxlcyBtb2RpZmljYXRpb25zIHN1ciBsZXMgbW90
cy1jbGVzCgkvLwoKCWlmICgkYWpvdXRfbW90ICYmICRmbGFnX2VkaXRhYmxlKSB7CgkJaWYgKCRu
b3V2X21vdCAhPSAwKSB7CgkJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIHNwaXBfbW90c19hcnRp
Y2xlcyBXSEVSRSBpZF9tb3Q9JG5vdXZfbW90IEFORCBpZF9hcnRpY2xlPSRpZF9hcnRpY2xlIjsK
CQkJJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSk7CgkJCWlmICghbXlzcWxfbnVtX3Jvd3Mo
JHJlc3VsdCkpIHsKCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyBzcGlwX21vdHNfYXJ0aWNsZXMg
KGlkX21vdCxpZF9hcnRpY2xlKSBWQUxVRVMgKCckbm91dl9tb3QnLCckaWRfYXJ0aWNsZScpIjsK
CQkJCSRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoJCQl9CgkJfQoJfQoKCWlmICgkc3Vw
cF9tb3QgJiYgJGZsYWdfZWRpdGFibGUpIHsKCQkkcXVlcnk9IkRFTEVURSBGUk9NIHNwaXBfbW90
c19hcnRpY2xlcyBXSEVSRSBpZF9tb3Q9JyRzdXBwX21vdCcgQU5EIGlkX2FydGljbGU9JyRpZF9h
cnRpY2xlJyI7CgkJJHJlc3VsdD1teXNxbF9xdWVyeSgkcXVlcnkpOwoJfQoKCgkkcXVlcnkgPSAi
U0VMRUNUIERJU1RJTkNUIHR5cGUgRlJPTSBzcGlwX21vdHMiOwoJJHJlc3VsdCA9IG15c3FsX3F1
ZXJ5KCRxdWVyeSk7CgkkcGx1c2lldXJzX3R5cGVzID0gKG15c3FsX251bV9yb3dzKCRyZXN1bHQp
ID4gMSk7CgovLwllY2hvICI8VUw+IjsKCgl1bnNldCgkbGVzX21vdHMpOwoKCSRxdWVyeSA9ICJT
RUxFQ1Qgc3BpcF9tb3RzLiogRlJPTSBzcGlwX21vdHMsIHNwaXBfbW90c19hcnRpY2xlcyBBUyBs
aWVuIFdIRVJFIGxpZW4uaWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSBBTkQgc3BpcF9tb3RzLmlkX21v
dD1saWVuLmlkX21vdCBPUkRFUiBCWSBzcGlwX21vdHMudHlwZSwgc3BpcF9tb3RzLnRpdHJlIjsK
CSRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoJCgllY2hvICI8VEFCTEUgQk9SREVSPTAg
Q0VMTFNQQUNJTkc9MCBDRUxMUEFERElORz0zIFdJRFRIPTEwMCUgQkFDS0dST1VORD0nJz4iOwoK
CSRpZm9uZD0wOwoJCgl3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpKSB7
CgoJCSRpZF9tb3QgPSAkcm93WydpZF9tb3QnXTsKCQkkdGl0cmVfbW90ID0gc3RyaXBzbGFzaGVz
KCRyb3dbJ3RpdHJlJ10pOwoJCSR0eXBlX21vdCA9IHN0cmlwc2xhc2hlcygkcm93Wyd0eXBlJ10p
OwoJCSRkZXNjcmlwdGlmX21vdCA9IHN0cmlwc2xhc2hlcygkcm93WydkZXNjcmlwdGlmJ10pOwoK
CQkkcXVlcnkyID0gIlNFTEVDVCBsaWVuLiogRlJPTSBzcGlwX21vdHNfYXJ0aWNsZXMgQVMgbGll
biwgc3BpcF9hcnRpY2xlcyBBUyBhcnRpY2xlICBXSEVSRSBsaWVuLmlkX21vdD0nJGlkX21vdCcg
QU5EIGFydGljbGUuaWRfYXJ0aWNsZT1saWVuLmlkX2FydGljbGUgQU5EIGFydGljbGUuc3RhdHV0
PD4ncG91YmVsbGUnIEFORCBhcnRpY2xlLnN0YXR1dDw+J3JlZnVzZSciOwoJCSRyZXN1bHQyID0g
bXlzcWxfcXVlcnkoJHF1ZXJ5Mik7CgkJJG5vbWJyZV9tb3RzPW15c3FsX251bV9yb3dzKCRyZXN1
bHQyKTsJCQkKCgoJCWlmICgkaWZvbmQ9PTApewoJCQkkaWZvbmQ9MTsKCQkJJGNvdWxldXI9IiNG
RkZGRkYiOwoJCX1lbHNlewoJCQkkaWZvbmQ9MDsKCQkJJGNvdWxldXI9IiNFREYzRkUiOwoJCX0J
CQkJCgoJCSR1cmwgPSAibW90c19lZGl0LnBocDM/aWRfbW90PSRpZF9tb3QmcmVkaXJlY3Q9Ii5y
YXd1cmxlbmNvZGUoImFydGljbGVzLnBocDM/aWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSZvcHRpb25z
PSRvcHRpb25zIik7CgoJCWVjaG8gIjxUUiBXSURUSD1cIjEwMCVcIj4iOwoJCWVjaG8gIjxURCBC
R0NPTE9SPSckY291bGV1cic+IjsKCQlpZiAoJG5vbWJyZV9tb3RzPjAgT1IgJGNvbm5lY3Rfc3Rh
dHV0ID09IjBtaW5pcmV6byIpewoJCQllY2hvICI8QSBIUkVGPSckdXJsJz48aW1nIHNyYz0nSU1H
Mi9wZXRpdGUtY2xlLmdpZicgYWx0PSdYJyB3aWR0aD0nMjMnIGhlaWdodD0nMTInIGJvcmRlcj0n
MCc+PC9BPiI7CgkJfWVsc2V7CgkJCWVjaG8gIjxpbWcgc3JjPSdJTUcyL3BldGl0ZS1jbGUuZ2lm
JyBhbHQ9J1gnIHdpZHRoPScyMycgaGVpZ2h0PScxMicgYm9yZGVyPScwJz4iOwoJCX0KCQllY2hv
ICI8L1REPiI7CgkJZWNobyAiPFREIEJHQ09MT1I9JyRjb3VsZXVyJz48Rk9OVCBGQUNFPSdWZXJk
YW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpFPTI+IjsKCgkJaWYgKCRub21icmVf
bW90cz4wIE9SICRjb25uZWN0X3N0YXR1dCA9PSIwbWluaXJlem8iKXsKCQkJZWNobyAiPEEgSFJF
Rj0nJHVybCc+JHRpdHJlX21vdDwvQT4iOwoJCX1lbHNlewoJCQllY2hvICIkdGl0cmVfbW90IjsK
CQl9CgkJZWNobyAiPC9GT05UPjwvVEQ+IjsKCgkJZWNobyAiPFREIFdJRFRIPTEwMCBBTElHTj0n
cmlnaHQnIEJHQ09MT1I9JyRjb3VsZXVyJyBBTElHTj0ncmlnaHQnPiI7CgkJZWNobyAiPEZPTlQg
RkFDRT0nVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZicgU0laRT0yPiI7CgkJZWNo
byAiJHR5cGVfbW90IjsKCQllY2hvICI8L0ZPTlQ+IjsKCQllY2hvICI8L1REPiI7CgoKCQllY2hv
ICI8VEQgV0lEVEg9MTAwIEFMSUdOPSdyaWdodCcgQkdDT0xPUj0nJGNvdWxldXInIEFMSUdOPSdy
aWdodCc+IjsKCQllY2hvICI8Rk9OVCBGQUNFPSdWZXJkYW5hLEFyaWFsLEhlbHZldGljYSxzYW5z
LXNlcmlmJyBTSVpFPTI+IjsKCgkJaWYgKCRub21icmVfbW90cz09IjEiKXsKCQkJZWNobyAiJG5v
bWJyZV9tb3RzIGFydGljbGUiOwoJCX1lbHNlewoJCQllY2hvICIkbm9tYnJlX21vdHMgYXJ0aWNs
ZXMiOwoJCX0KCQllY2hvICI8L0ZPTlQ+IjsKCQllY2hvICI8L1REPiI7CgkJaWYgKCRmbGFnX2Vk
aXRhYmxlKXsKCQkJZWNobyAiPFREIFdJRFRIPTE1MCBCR0NPTE9SPSckY291bGV1cicgQUxJR049
J3JpZ2h0Jz4iOwoJCQllY2hvICI8Rk9OVCBGQUNFPSdWZXJkYW5hLEFyaWFsLEhlbHZldGljYSxz
YW5zLXNlcmlmJyBTSVpFPTE+PEEgSFJFRj1cImFydGljbGVzLnBocDM/aWRfYXJ0aWNsZT0kaWRf
YXJ0aWNsZSZzdXBwX21vdD0kaWRfbW90Jm9wdGlvbnM9JG9wdGlvbnNcIj5SZXRpcmVyIGNlIG1v
dDwvQT48L0ZPTlQ+IjsKCQkJZWNobyAiPC9URD4iOwoJCX0KCQllY2hvICI8L1RSPlxuIjsKCi8q
CgkJZWNobyAiPExJPjxCPjxGT05UIEZBQ0U9J0dlb3JnaWEsR2FyYW1vbmQsVGltZXMsc2VyaWYn
IFNJWkU9Mz4kdGl0cmVfbW90PC9GT05UPjwvQj4iOwoJCgkJaWYgKCRwbHVzaWV1cnNfdHlwZXMg
JiYgJHR5cGVfbW90KQoJCQllY2hvICIgPEZPTlQgU0laRT0yPigkdHlwZV9tb3QpPC9GT05UPiI7
CgkJaWYgKCRjb25uZWN0X3N0YXR1dCA9PSAnMG1pbmlyZXpvJykgewoJCQkkdXJsID0gIm1vdHNf
ZWRpdC5waHAzP2lkX21vdD0kaWRfbW90JnJlZGlyZWN0PSIucmF3dXJsZW5jb2RlKCJhcnRpY2xl
cy5waHAzP2lkX2FydGljbGU9JGlkX2FydGljbGUmb3B0aW9ucz0kb3B0aW9ucyIpOwoJCQllY2hv
ICIgfCA8Rk9OVCBTSVpFPTI+PEEgSFJFRj1cIiR1cmxcIj5Nb2RpZmllciBjZSBtb3Q8L0E+PC9G
T05UPiI7CgkJfQoJCWlmICgkZmxhZ19lZGl0YWJsZSkKCQkJZWNobyAiIHwgPEZPTlQgU0laRT0y
PjxBIEhSRUY9XCJhcnRpY2xlcy5waHAzP2lkX2FydGljbGU9JGlkX2FydGljbGUmc3VwcF9tb3Q9
JGlkX21vdCZvcHRpb25zPSRvcHRpb25zXCI+UmV0aXJlciBjZSBtb3Q8L0E+PC9GT05UPiI7CgkK
CQlpZiAoc3RybGVuKCRkZXNjcmlwdGlmX21vdCkgPiAxKSB7CgkJCWVjaG8gIjxCUj48Rk9OVCBG
QUNFPSdWZXJkYW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpFPTE+Ii5wcm9wcmUo
Y291cGVyKCRkZXNjcmlwdGlmX21vdCwgMTAwKSkuIjwvRk9OVD5cbiI7CgkJfQoJCWVjaG8gIjxQ
PlxuIjsKKi8JCgkJJGxlc19tb3RzW10gPSAkaWRfbW90OwoJfQoJZWNobyAiPC9UQUJMRT4iOwoK
CWlmICgkbGVzX21vdHMpICRsZXNfbW90cyA9IGpvaW4oJGxlc19tb3RzLCAiLCIpOwoKLy8JZWNo
byAiPC9VTD4iOwoKCWlmICgkZmxhZ19lZGl0YWJsZSkgewoJCSRxdWVyeSA9ICJTRUxFQ1QgKiBG
Uk9NIHNwaXBfbW90cyAiOwoJCSRxdWVyeS49ICIgV0hFUkUgdGl0cmU8PidrYXdheCciOwoJCWlm
ICgkbGVzX21vdHMpICRxdWVyeSAuPSAiIEFORCBpZF9tb3QgTk9UIElOICgkbGVzX21vdHMpICI7
CgkJJHF1ZXJ5IC49ICJPUkRFUiBCWSB0eXBlLCB0aXRyZSI7CgkJJHJlc3VsdCA9IG15c3FsX3F1
ZXJ5KCRxdWVyeSk7CgoJCWlmIChteXNxbF9udW1fcm93cygkcmVzdWx0KSA+IDApIHsKCgkJCWVj
aG8gIjxQPiI7Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi8vIGRldmVsb3BwZW1lbnQgZGVzIG1vdHMgY2xlcwovLwovLyBhbmNp
ZW4gY29kZQkJCWVjaG8gIjxGT1JNIEFDVElPTj0nYXJ0aWNsZXMucGhwMycgTUVUSE9EPSdwb3N0
Jz4iOwovLyBhbmNpZW4gY29kZQkJCWVjaG8gIjxJTlBVVCBUWVBFPSdIaWRkZW4nIE5BTUU9J2lk
X2FydGljbGUnIFZBTFVFPVwiJGlkX2FydGljbGVcIj4iOwovLyBhbmNpZW4gY29kZQkJCWVjaG8g
IjxGT05UIEZBQ0U9J1ZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnIFNJWkU9Mj48
Qj5BSk9VVEVSIFVOIE1PVC1DTCZFYWN1dGU7IDogJm5ic3A7IDwvQj48L0ZPTlQ+XG4iOwoKLy8g
YW5jaWVuIGNvZGUJCQlpZiAobXlzcWxfbnVtX3Jvd3MoJHJlc3VsdCkgPiA1MCBBTkQgJGZsYWdf
bW90c19yZXNzZW1ibGFudHMpIHsKLy8gYW5jaWVuIGNvZGUJCQkJZWNobyAiPElOUFVUIFRZUEU9
J3RleHQnIE5BTUU9J2NoZXJjaGVfbW90JyBDTEFTUz0nZm9uZGwnIFZBTFVFPScnIFNJWkU9JzIw
Jz4iOwovLyBhbmNpZW4gY29kZQkJCQllY2hvICI8SU5QVVQgVFlQRT0nc3VibWl0JyBOQU1FPSdD
aGVyY2hlcicgVkFMVUU9J0NoZXJjaGVyJyBDTEFTUz0nZm9uZG8nPiI7Ci8vIGFuY2llbiBjb2Rl
CQkJCWVjaG8gIjwvRk9STT4iOwovLyBhbmNpZW4gY29kZQkJCX0KLy8gYW5jaWVuIGNvZGUJCQll
bHNlIHsKCgkJCWlmIChteXNxbF9udW1fcm93cygkcmVzdWx0KSA+IDUwIEFORCAkZmxhZ19tb3Rz
X3Jlc3NlbWJsYW50cykgewoJCQkJZWNobyAiPEZPUk0gQUNUSU9OPSd4YXJ0aWNsZXNfbW90c19j
bGVzLnBocDMnIE1FVEhPRD0ncG9zdCc+IjsKCQkJCWVjaG8gIjxJTlBVVCBUWVBFPSdIaWRkZW4n
IE5BTUU9J2lkX2FydGljbGUnIFZBTFVFPVwiJGlkX2FydGljbGVcIj4iOwoJCQkJZWNobyAiPEZP
TlQgRkFDRT0nVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZicgU0laRT0yPjxCPkFK
T1VURVIgVU4gTU9ULUNMJkVhY3V0ZTsgOiAmbmJzcDsgPC9CPjwvRk9OVD5cbiI7CgkJCQllY2hv
ICI8SU5QVVQgVFlQRT0nc3VibWl0JyBOQU1FPSdkZXZfbW90c19jbGVzJyBWQUxVRT0nQ2hvaXNp
ciBkZXMgbW90cy1jbCZlYWN1dGU7cycgQ0xBU1M9J2ZvbmRvJz4iOwoJCQkJZWNobyAiPC9GT1JN
PiI7CgovLwovLyBmaW4gZGUgZGV2ZWxvcHBlbWVudAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgkJCX0KCQkJZWxzZSB7CgovLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci8vIGRlYnV0IGRlIGwnYWpvdXQgZGUgZGV2ZWxvcHBlbWVudAovLwoJCQkJZWNobyAiPEZPUk0g
QUNUSU9OPSdhcnRpY2xlcy5waHAzJyBNRVRIT0Q9J3Bvc3QnPiI7CgkJCQllY2hvICI8SU5QVVQg
VFlQRT0nSGlkZGVuJyBOQU1FPSdpZF9hcnRpY2xlJyBWQUxVRT1cIiRpZF9hcnRpY2xlXCI+IjsK
CQkJCWVjaG8gIjxGT05UIEZBQ0U9J1ZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYn
IFNJWkU9Mj48Qj5BSk9VVEVSIFVOIE1PVC1DTCZFYWN1dGU7IDogJm5ic3A7IDwvQj48L0ZPTlQ+
XG4iOwovLwovLyBmaW4gZGUgbCdham91dCBwb3VyIGxlIGRldmVsb3BwZW1lbnQKLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoJCQkJ
ZWNobyAiPElOUFVUIFRZUEU9J0hpZGRlbicgTkFNRT0nYWpvdXRfbW90JyBWQUxVRT0nb3VpJz4i
OwoKCQkJCWVjaG8gIjxTRUxFQ1QgTkFNRT0nbm91dl9tb3QnIFNJWkU9JzEnIENMQVNTPSdmb25k
bCc+IjsKCgkJCQkkYW5jaWVuX3R5cGUgPSAnJzsKCQkJCXdoaWxlKCRyb3cgPSBteXNxbF9mZXRj
aF9hcnJheSgkcmVzdWx0KSkgewoJCQkJCSRpZF9tb3QgPSAkcm93WydpZF9tb3QnXTsKCQkJCQkk
dGl0cmVfbW90ID0gc3RyaXBzbGFzaGVzKCRyb3dbJ3RpdHJlJ10pOwoJCQkJCSR0eXBlX21vdCA9
IHN0cmlwc2xhc2hlcygkcm93Wyd0eXBlJ10pOwoJCQkJCSRkZXNjcmlwdGlmX21vdCA9IHN0cmlw
c2xhc2hlcygkcm93WydkZXNjcmlwdGlmJ10pOwoKCQkJCQlpZiAoJHR5cGVfbW90ICE9ICRhbmNp
ZW5fdHlwZSkgewoJCQkJCQkkbGFiZWwgPSBodG1sc3BlY2lhbGNoYXJzKHN0cnRvdXBwZXIoJHR5
cGVfbW90KSk7CgkJCQkJCWVjaG8gIjxPUFRJT04gVkFMVUU9J3gnPiI7CgkJCQkJCWVjaG8gIlxu
PE9QVElPTiBWQUxVRT0neCc+JGxhYmVsIjsKCQkJCQkJJGFuY2llbl90eXBlID0gJHR5cGVfbW90
OwoJCQkJCX0KCQkJCQkkdGV4dGVfb3B0aW9uID0gaHRtbHNwZWNpYWxjaGFycyhjb3VwZXIoJHRp
dHJlX21vdCwgNTApKTsKCQkJCQllY2hvICJcbjxPUFRJT04gVkFMVUU9XCIkaWRfbW90XCI+IjsK
CQkJCQlpZiAoJHR5cGVfbW90KSBlY2hvICImbmJzcDsmbmJzcDsmbmJzcDsiOwoJCQkJCWVjaG8g
JHRleHRlX29wdGlvbjsKCQkJCX0KCgkJCQllY2hvICI8L1NFTEVDVD4iOwoJCQkJZWNobyAiICZu
YnNwOyA8SU5QVVQgVFlQRT0nc3VibWl0JyBOQU1FPSdDaG9pc2lyJyBWQUxVRT0nQ2hvaXNpcicg
Q0xBU1M9J2ZvbmRvJz4iOwoJCQkJZWNobyAiPC9GT1JNPiI7CgkJCX0KCQl9Cgl9CgkKCWZpbl9j
YWRyZV9yZWxpZWYoKTsKCWVjaG8gIiZuYnNwOzxQPiI7Cn0KCgoKLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIE1vZGlmaWVyIGxlIHN0YXR1
dCBkZSBsJ2FydGljbGUKLy8KCgo/Pgo8U0NSSVBUIExBTkdVQUdFPSJKYXZhU2NyaXB0Ij4KPCEt
LSBCZWdpbm5pbmcgb2YgSmF2YVNjcmlwdCAtCmZ1bmN0aW9uIGNoYW5nZV9ib3V0b24oc2VsT2Jq
KXsKCgl2YXIgc2VsZWN0aW9uPXNlbE9iai5vcHRpb25zW3NlbE9iai5zZWxlY3RlZEluZGV4XS52
YWx1ZTsKCglpZiAoc2VsZWN0aW9uPT0icHVibGllIil7CgkJZG9jdW1lbnQuc3RhdHV0LnNyYz0i
SU1HMi9wdWNlLXZlcnRlLmdpZiI7Cgl9CglpZiAoc2VsZWN0aW9uPT0icHJlcGEiKXsKCQlkb2N1
bWVudC5zdGF0dXQuc3JjPSJJTUcyL3B1Y2UtYmxhbmNoZS5naWYiOwoJfQoJaWYgKHNlbGVjdGlv
bj09InByb3AiKXsKCQlkb2N1bWVudC5zdGF0dXQuc3JjPSJJTUcyL3B1Y2Utb3JhbmdlLmdpZiI7
Cgl9CglpZiAoc2VsZWN0aW9uPT0icmVmdXNlIil7CgkJZG9jdW1lbnQuc3RhdHV0LnNyYz0iSU1H
Mi9wdWNlLXJvdWdlLmdpZiI7Cgl9CglpZiAoc2VsZWN0aW9uPT0icG91YmVsbGUiKXsKCQlkb2N1
bWVudC5zdGF0dXQuc3JjPSJJTUcyL3B1Y2UtcG91YmVsbGUuZ2lmIjsKCX0KfQoKLy8gLSBFbmQg
b2YgSmF2YVNjcmlwdCAtIC0tPgo8L1NDUklQVD4KPD8KCmlmICgkY29ubmVjdF9zdGF0dXQgPT0g
JzBtaW5pcmV6bycpIHsKCWRlYnV0X2NhZHJlX3JlbGllZigpOwoJZWNobyAiPENFTlRFUj4iOwoJ
ZWNobyAiPEZPUk0gQUNUSU9OPSdhcnRpY2xlcy5waHAzJyBNRVRIT0Q9J2dldCc+IjsKCQoJZWNo
byAiPElOUFVUIE5BTUU9J29wdGlvbnMnIFRZUEU9SGlkZGVuIFZBTFVFPVwiJG9wdGlvbnNcIj4i
OwoJZWNobyAiPElOUFVUIFRZUEU9J0hpZGRlbicgTkFNRT0nc3RhdHV0X2FuY2llbicgVkFMVUU9
XCIkc3RhdHV0X2FydGljbGVcIj4iOwoJZWNobyAiPElOUFVUIFRZUEU9J0hpZGRlbicgTkFNRT0n
aWRfYXJ0aWNsZScgVkFMVUU9XCIkaWRfYXJ0aWNsZVwiPiI7CgoJZWNobyAiPEI+Q2V0IGFydGlj
bGUgZXN0IDo8L0I+ICI7CgoJZWNobyAiPFNFTEVDVCBOQU1FPSdzdGF0dXRfbm91dicgU0laRT0n
MScgQ0xBU1M9J2ZvbmRsJyBvbkNoYW5nZT0nY2hhbmdlX2JvdXRvbih0aGlzKSc+IjsKCgllY2hv
ICI8T1BUSU9OIiAuIG15U2VsKCJwcmVwYSIsICRzdGF0dXRfYXJ0aWNsZSkgLiI+ZW4gY291cnMg
ZGUgciZlYWN1dGU7ZGFjdGlvblxuIjsKCWVjaG8gIjxPUFRJT04iIC4gbXlTZWwoInByb3AiLCAk
c3RhdHV0X2FydGljbGUpIC4gIj5wcm9wb3MmZWFjdXRlOyAmYWdyYXZlOyBsJyZlYWN1dGU7dmFs
dWF0aW9uXG4iOwoJZWNobyAiPE9QVElPTiIgLiBteVNlbCgicHVibGllIiwgJHN0YXR1dF9hcnRp
Y2xlKSAuICI+cHVibGkmZWFjdXRlOyBlbiBsaWduZVxuIjsKCWVjaG8gIjxPUFRJT04iIC4gbXlT
ZWwoInBvdWJlbGxlIiwgJHN0YXR1dF9hcnRpY2xlKSAuICI+JmFncmF2ZTsgbGEgcG91YmVsbGVc
biI7CgllY2hvICI8T1BUSU9OIiAuIG15U2VsKCJyZWZ1c2UiLCAkc3RhdHV0X2FydGljbGUpIC4g
Ij5yZWZ1cyZlYWN1dGU7XG4iOwoKCWVjaG8gIjwvU0VMRUNUPiI7CgoJZWNobyAiIFxuIjsKCglp
ZiAoJHN0YXR1dF9hcnRpY2xlPT0ncHVibGllJykgewoJCWVjaG8gIjxpbWcgc3JjPSdJTUcyL3B1
Y2UtdmVydGUuZ2lmJyBhbHQ9J1gnIHdpZHRoPScxMycgaGVpZ2h0PScxNCcgYm9yZGVyPScwJyBO
QU1FPSdzdGF0dXQnPiI7Cgl9CgllbHNlIGlmICgkc3RhdHV0X2FydGljbGU9PSdwcmVwYScpIHsK
CQllY2hvICI8aW1nIHNyYz0nSU1HMi9wdWNlLWJsYW5jaGUuZ2lmJyBhbHQ9J1gnIHdpZHRoPScx
MycgaGVpZ2h0PScxNCcgYm9yZGVyPScwJyBOQU1FPSdzdGF0dXQnPiI7Cgl9CgllbHNlIGlmICgk
c3RhdHV0X2FydGljbGU9PSdwcm9wJykgewoJCWVjaG8gIjxpbWcgc3JjPSdJTUcyL3B1Y2Utb3Jh
bmdlLmdpZicgYWx0PSdYJyB3aWR0aD0nMTMnIGhlaWdodD0nMTQnIGJvcmRlcj0nMCcgTkFNRT0n
c3RhdHV0Jz4iOwoJfQoJZWxzZSBpZiAoJHN0YXR1dF9hcnRpY2xlID09ICdyZWZ1c2UnKSB7CgkJ
ZWNobyAiPGltZyBzcmM9J0lNRzIvcHVjZS1yb3VnZS5naWYnIGFsdD0nWCcgd2lkdGg9JzEzJyBo
ZWlnaHQ9JzE0JyBib3JkZXI9JzAnIE5BTUU9J3N0YXR1dCc+IjsKCX0KCWVsc2UgaWYgKCRzdGF0
dXRfYXJ0aWNsZSA9PSAncG91YmVsbGUnKSB7CgkJZWNobyAiPGltZyBzcmM9J0lNRzIvcHVjZS1w
b3ViZWxsZS5naWYnIGFsdD0nWCcgd2lkdGg9JzEzJyBoZWlnaHQ9JzE0JyBib3JkZXI9JzAnIE5B
TUU9J3N0YXR1dCc+IjsKCX0KCWVjaG8gIiBcbiI7CgoJZWNobyAiPElOUFVUIFRZUEU9J3N1Ym1p
dCcgTkFNRT0nTW9kaWZpZXInIFZBTFVFPSdNb2RpZmllcicgQ0xBU1M9J2ZvbmRvJz4iOwoJYWlk
ZSgiYXJ0c3RhdHV0Iik7CgllY2hvICI8L0ZPUk0+IjsKCWVjaG8gIjwvQ0VOVEVSPiI7CglmaW5f
Y2FkcmVfcmVsaWVmKCk7Cn0KCgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCi8vIENvcnBzIGRlIGwnYXJ0aWNsZQovLwoKZWNobyAiPERJViBh
bGlnbj1qdXN0aWZ5PiI7CgplY2hvICI8UCBhbGlnbj1qdXN0aWZ5PjxCPiI7CmVjaG8ganVzdGlm
aWVyKHByb3ByZSgkY2hhcG8pKTsKZWNobyAiPC9CPiI7CgplY2hvICI8UCBhbGlnbj1qdXN0aWZ5
PiI7CmVjaG8ganVzdGlmaWVyKHByb3ByZSgkdGV4dGUpKTsKCmlmICgkcHMpIHsKCWVjaG8gIjxG
T05UIFNJWkU9Mj48UCBhbGlnbj1qdXN0aWZ5PjxCPlAuUy48L0I+ICI7CgllY2hvIGp1c3RpZmll
cihwcm9wcmUoJHBzKSk7CgllY2hvICI8L0ZPTlQ+IjsKfQoKCmlmICgkbGVzX25vdGVzKSB7Cgll
Y2hvICI8Rk9OVCBTSVpFPTI+PFAgYWxpZ249anVzdGlmeT4iOwoJZWNobyBwcm9wcmUoJGxlc19u
b3Rlcyk7CgllY2hvICI8L0ZPTlQ+IjsKfQoKCmVjaG8gIjxESVYgYWxpZ249cmlnaHQ+IjsKCgoK
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8v
IEJvdXRvbiAibW9kaWZpZXIgY2V0IGFydGljbGUiCi8vCgppZiAoJGZsYWdfZWRpdGFibGUpIHsK
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8v
IGRlYnV0IG1vZGlmaWNhdGlvbiBwb3VyIGwnYWZmaWNoYWdlIGRlIGxhIHBhZ2UgYXJ0aWNsZXNf
ZWRpdDIucGhwMyBsb3JzICRpZF9ydWI9MTAKLy8KCi8vYW5jaWVuIGNvZGUJZWNobyAiPEEgSFJF
Rj0nYXJ0aWNsZXNfZWRpdC5waHAzP2lkX2FydGljbGU9JGlkX2FydGljbGUnIG9uTW91c2VPdmVy
PVwibW9kaWZpZXJfYXJ0aWNsZTIuc3JjPSdJTUcyL21vZGlmaWVyLWFydGljbGUtb24uZ2lmJ1wi
IG9uTW91c2VPdXQ9XCJtb2RpZmllcl9hcnRpY2xlMi5zcmM9J0lNRzIvbW9kaWZpZXItYXJ0aWNs
ZS1vZmYuZ2lmJ1wiPjxpbWcgc3JjPSdJTUcyL21vZGlmaWVyLWFydGljbGUtb2ZmLmdpZicgYWx0
PSdNb2RpZmllciBjZXQgYXJ0aWNsZScgd2lkdGg9JzUxJyBoZWlnaHQ9JzUzJyBib3JkZXI9JzAn
IG5hbWU9J21vZGlmaWVyX2FydGljbGUyJz48L0E+IjsKCgoJZWNobyAiPEEgSFJFRj0nYXJ0aWNs
ZXNfZWRpdCI7CglpZiAoJGlkX3J1YnJpcXVlID09IDEwKSB7CgkJZWNobyAiMiI7Cgl9CgllY2hv
ICIucGhwMz9pZF9hcnRpY2xlPSRpZF9hcnRpY2xlJyBvbk1vdXNlT3Zlcj1cIm1vZGlmaWVyX2Fy
dGljbGUyLnNyYz0nSU1HMi9tb2RpZmllci1hcnRpY2xlLW9uLmdpZidcIiBvbk1vdXNlT3V0PVwi
bW9kaWZpZXJfYXJ0aWNsZTIuc3JjPSdJTUcyL21vZGlmaWVyLWFydGljbGUtb2ZmLmdpZidcIj48
aW1nIHNyYz0nSU1HMi9tb2RpZmllci1hcnRpY2xlLW9mZi5naWYnIGFsdD0nTW9kaWZpZXIgY2V0
IGFydGljbGUnIHdpZHRoPSc1MScgaGVpZ2h0PSc1MycgYm9yZGVyPScwJyBuYW1lPSdtb2RpZmll
cl9hcnRpY2xlMic+PC9BPiI7CgovLwovLyBmaW4gbW9kaWZpY2F0aW9uIHBvdXIgZGV0b3VyIGR1
IGxpZW4KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwoKLy8JYm91dG9uKCJNb2RpZmllciBjZXQgYXJ0aWNsZSIsICJhcnRpY2xlc19lZGl0LnBo
cDM/aWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSIpOwp9CgoKZWNobyAiPERJViBBTElHTj1sZWZ0PiI7
CgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwovLyAiRGVtYW5kZXIgbGEgcHVibGljYXRpb24iCi8vCgppZiAoJGZsYWdfYXV0ZXVyIEFORCAk
c3RhdHV0X2FydGljbGUgPT0gJ3ByZXBhJykgewoJZWNobyAiPFA+IjsKCWRlYnV0X2NhZHJlX3Jl
bGllZigpOwoJZWNobyAiPEI+TG9yc3F1ZSB2b3RyZSBhcnRpY2xlIGVzdCB0ZXJtaW4mZWFjdXRl
Oywgdm91cyBwb3V2ZXogcHJvcG9zZXIgc2EgcHVibGljYXRpb24uPC9CPiI7CglhaWRlKCJhcnRw
cm9wIik7Cglib3V0b24oIkRlbWFuZGVyIGxhIHB1YmxpY2F0aW9uIGRlIGNldCBhcnRpY2xlIiwg
ImFydGljbGVzLnBocDM/aWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSZzdGF0dXRfbm91dj1wcm9wJnN0
YXR1dF9hbmNpZW49cHJlcGEiKTsKCWZpbl9jYWRyZV9yZWxpZWYoKTsKfQoKCmVjaG8gIjwvVEQ+
PC9UUj48L1RBQkxFPiI7CgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCi8vIEZvcnVtcwovLwoKZWNobyAiPEJSPjxCUj4iOwoKJGZvcnVtX3Jl
dG91ciA9IHVybGVuY29kZSgiYXJ0aWNsZXMucGhwMz9pZF9hcnRpY2xlPSRpZF9hcnRpY2xlIik7
CgplY2hvICI8UCBhbGlnbj0ncmlnaHQnPiI7CmVjaG8gIjxBIEhSRUY9J2ZvcnVtX2Vudm9pLnBo
cDM/c3RhdHV0PXByaXZlJmFkcmVzc2VfcmV0b3VyPSIuJGZvcnVtX3JldG91ci4iJmlkX2FydGlj
bGU9JGlkX2FydGljbGUmdGl0cmVfbWVzc2FnZT0iLnVybGVuY29kZSgkdGl0cmUpLiInIG9uTW91
c2VPdmVyPVwibWVzc2FnZS5zcmM9J0lNRzIvbWVzc2FnZS1vbi5naWYnXCIgb25Nb3VzZU91dD1c
Im1lc3NhZ2Uuc3JjPSdJTUcyL21lc3NhZ2Utb2ZmLmdpZidcIj4iOwplY2hvICI8aW1nIHNyYz0n
SU1HMi9tZXNzYWdlLW9mZi5naWYnIGFsdD0nUG9zdGVyIHVuIG1lc3NhZ2UnIHdpZHRoPSc1MScg
aGVpZ2h0PSc1MicgYm9yZGVyPScwJyBuYW1lPSdtZXNzYWdlJz48L0E+IjsKZWNobyAiPFAgYWxp
Z249J2xlZnQnPiI7CgoKJHF1ZXJ5X2ZvcnVtID0gIlNFTEVDVCAqIEZST00gc3BpcF9mb3J1bSBX
SEVSRSBzdGF0dXQ9J3ByaXZlJyBBTkQgaWRfYXJ0aWNsZT0nJGlkX2FydGljbGUnIEFORCBpZF9w
YXJlbnQ9MCBPUkRFUiBCWSBkYXRlX2hldXJlIERFU0MgTElNSVQgMCwyMCI7CiRyZXN1bHRfZm9y
dW0gPSBteXNxbF9xdWVyeSgkcXVlcnlfZm9ydW0pOwphZmZpY2hlcl9mb3J1bSgkcmVzdWx0X2Zv
cnVtLCAkZm9ydW1fcmV0b3VyKTsKCQoKZWNobyAiPC9GT05UPiI7CgoKZmluX3BhZ2UoKTsKCj8+
Cgo=
--Multipart_Mon__15_Oct_2001_16:03:10_+0200_08211980
Content-Type: application/octet-stream;
name="xarticles_mots_cles.php3"
Content-Disposition: attachment;
filename="xarticles_mots_cles.php3"
Content-Transfer-Encoding: base64
PD8KCmluY2x1ZGUgKCJpbmMucGhwMyIpOwppbmNsdWRlICgiaW5jX21vdHMucGhwMyIpOwppbmNs
dWRlICgiaW5jX2xvZ29zLnBocDMiKTsKaW5jbHVkZSAoImluY19pbmRleC5waHAzIik7CgoKJGFy
dGljbGVzX3N1cnRpdHJlID0gbGlyZV9tZXRhKCJhcnRpY2xlc19zdXJ0aXRyZSIpOwokYXJ0aWNs
ZXNfc291c3RpdHJlID0gbGlyZV9tZXRhKCJhcnRpY2xlc19zb3VzdGl0cmUiKTsKJGFydGljbGVz
X2Rlc2NyaXB0aWYgPSBsaXJlX21ldGEoImFydGljbGVzX2Rlc2NyaXB0aWYiKTsKJGFydGljbGVz
X2NoYXBlYXUgPSBsaXJlX21ldGEoImFydGljbGVzX2NoYXBlYXUiKTsKJGFydGljbGVzX3BzID0g
bGlyZV9tZXRhKCJhcnRpY2xlc19wcyIpOwokYXJ0aWNsZXNfcmVkYWMgPSBsaXJlX21ldGEoImFy
dGljbGVzX3JlZGFjIik7CiRhcnRpY2xlc19tb3RzID0gbGlyZV9tZXRhKCJhcnRpY2xlc19tb3Rz
Iik7CiRmb3J1bXNfcHVibGljcyA9IGxpcmVfbWV0YSgiZm9ydW1zX3B1YmxpY3MiKTsKCiRyZXF1
ZXRlX2ZpY2hpZXIgPSAiYXJ0aWNsZXMucGhwMz9pZF9hcnRpY2xlPSRpZF9hcnRpY2xlIjsKCgpm
dW5jdGlvbiBjYWxjdWxlcl9hdXRldXJzKCRyZXN1bHQpIHsKCWdsb2JhbCAkbGVzX2F1dGV1cnM7
CgkKCWdsb2JhbCAka19ub207CglnbG9iYWwgJGtfZW1haWw7CglnbG9iYWwgJGtfdXJsX3NpdGU7
CglnbG9iYWwgJGtfc3RhdHV0OwoJZ2xvYmFsICRrX25vbWJyZV9hcnRpY2xlczsKCQkKCXdoaWxl
ICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHsKCQkkaWRfYXV0ZXVyID0gJHJv
d1swXTsKCQkka19ub21bJGlkX2F1dGV1cl0gPSBzdHJpcHNsYXNoZXMoJHJvd1sxXSk7CgkJJGtf
ZW1haWxbJGlkX2F1dGV1cl0gPSAkcm93WzNdOwoJCSRrX3VybF9zaXRlWyRpZF9hdXRldXJdID0g
JHJvd1s1XTsKCQkka19zdGF0dXRbJGlkX2F1dGV1cl0gPSAkcm93WzhdOwoJCSRrX25vbWJyZV9h
cnRpY2xlc1skaWRfYXV0ZXVyXT0kcm93WyJjb21wdGV1ciJdOwoKCQkkbGVzX2F1dGV1cnMuPSIs
JGlkX2F1dGV1ciI7Cgl9Cn0KCgpmdW5jdGlvbiBhZmZpY2hlcl9hdXRldXJzKCRjbGFzc2VtZW50
KSB7CglnbG9iYWwgJGNvbm5lY3Rfc3RhdHV0OwoJZ2xvYmFsICRpZm9uZDsKCWdsb2JhbCAkbGVz
X2F1dGV1cnM7CglnbG9iYWwgJGtfbm9tOwoJZ2xvYmFsICRrX2VtYWlsOwoJZ2xvYmFsICRrX3Vy
bF9zaXRlOwoJZ2xvYmFsICRrX3N0YXR1dDsKCWdsb2JhbCAka19ub21icmVfYXJ0aWNsZXM7CgoJ
Z2xvYmFsICRmbGFnX2VkaXRhYmxlOwoJZ2xvYmFsICRjb25uZWN0X2lkX2F1dGV1cjsKCWdsb2Jh
bCAkb3B0aW9uczsKCWdsb2JhbCAkaWRfYXJ0aWNsZTsKCWdsb2JhbCAkY291bGV1cl9mb25jZWU7
CglnbG9iYWwgJGNvdWxldXJfY2xhaXJlOwoJCglpZiAoJGNsYXNzZW1lbnQ9PSJhdXRldXJzIikg
JGF1dGV1cnMgPSAka19ub207CgllbHNlaWYgKCRjbGFzc2VtZW50PT0ic3RhdHV0IikgJGF1dGV1
cnMgPSAka19zdGF0dXQ7CgllbHNlaWYgKCRjbGFzc2VtZW50PT0iYXJ0aWNsZXMiKSAkYXV0ZXVy
cyA9ICRrX25vbWJyZV9hcnRpY2xlczsKCWVsc2VpZiAoJGNsYXNzZW1lbnQ9PSJlbWFpbCIpICRh
dXRldXJzID0gJGtfZW1haWw7CgllbHNlaWYgKCRjbGFzc2VtZW50PT0idXJsX3NpdGUiKSAkYXV0
ZXVycyA9ICRrX3VybF9zaXRlOwoJZWxzZSAkYXV0ZXVycyA9ICRrX25vbTsKCQoJaWYgKCRjbGFz
c2VtZW50ID09ICJhcnRpY2xlcyIpIGFyc29ydCgkYXV0ZXVycyk7CgllbHNlIGFzb3J0KCRhdXRl
dXJzKTsKCQoJZm9yIChyZXNldCgkYXV0ZXVycyk7ICRpbmRleCA9IGtleSgkYXV0ZXVycyk7IG5l
eHQoJGF1dGV1cnMpKSB7CgkJJGlkX2F1dGV1ciA9ICRpbmRleDsKCQkkbm9tID0gJGtfbm9tWyRp
bmRleF07CgkJJGVtYWlsID0gJGtfZW1haWxbJGluZGV4XTsKCQkkdXJsX3NpdGUgPSAka191cmxf
c2l0ZVskaW5kZXhdOwoJCSRzdGF0dXQgPSAka19zdGF0dXRbJGluZGV4XTsKCQkkbm9tYnJlX2Fy
dGljbGVzPSRrX25vbWJyZV9hcnRpY2xlc1skaW5kZXhdOwoKCQlpZiAoJGlmb25kPT0wKXsKCQkJ
JGlmb25kPTE7CgkJCSRjb3VsZXVyPSIjRkZGRkZGIjsKCQl9ZWxzZXsKCQkJJGlmb25kPTA7CgkJ
CSRjb3VsZXVyPSIkY291bGV1cl9jbGFpcmUiOwoJCX0JCQkJCgoJCWVjaG8gIjxUUiBXSURUSD1c
IjEwMCVcIj4iOwoKCQllY2hvICI8VEQgQkdDT0xPUj0nJGNvdWxldXInIFdJRFRIPTIzPiI7CgoJ
CWlmICgkbm9tYnJlX2FydGljbGVzID4gMCBPUiAkY29ubmVjdF9zdGF0dXQgPT0gJzBtaW5pcmV6
bycpIHsKCQkJZWNobyAiPEEgSFJFRj0nYXV0ZXVyc19lZGl0LnBocDM/aWRfYXV0ZXVyPSRpZF9h
dXRldXImcmVkaXJlY3Q9Ii5yYXd1cmxlbmNvZGUoImFydGljbGVzLnBocDM/aWRfYXJ0aWNsZT0k
aWRfYXJ0aWNsZSIpLiInPiI7CgkJfQoJCXN3aXRjaCAoJHN0YXR1dCkgewoJCWNhc2UgIjBtaW5p
cmV6byI6CgkJCWVjaG8gIjxpbWcgc3JjPSdJTUcyL2JvbmhvbW1lLW5vaXIuZ2lmJyBhbHQ9J0Fk
bWluJyB3aWR0aD0nMjMnIGhlaWdodD0nMTInIGJvcmRlcj0nMCc+IjsKCQkJYnJlYWs7CQkJCQkK
CQljYXNlICIycmVkYWMiOgoJCWNhc2UgIjFjb21pdGUiOgoJCQllY2hvICI8aW1nIHNyYz0nSU1H
Mi9ib25ob21tZS1ibGV1LmdpZicgYWx0PSdBZG1pbicgd2lkdGg9JzIzJyBoZWlnaHQ9JzEyJyBi
b3JkZXI9JzAnPiI7CgkJCWJyZWFrOwkJCQkJCgkJY2FzZSAiNXBvdWJlbGxlIjoKCQkJZWNobyAi
PGltZyBzcmM9J0lNRzIvYm9uaG9tbWUtcm91Z2UuZ2lmJyBhbHQ9J0FkbWluJyB3aWR0aD0nMjMn
IGhlaWdodD0nMTInIGJvcmRlcj0nMCc+IjsKCQkJYnJlYWs7CQkJCQkKCQljYXNlICJub3V2ZWF1
IjoKCQkJZWNobyAiJm5ic3A7IjsKCQkJYnJlYWs7CgkJZGVmYXVsdDoKCQkJZWNobyAiJm5ic3A7
IjsKCQl9CgkJaWYgKCRub21icmVfYXJ0aWNsZXM+MCBPUiAkY29ubmVjdF9zdGF0dXQ9PSIwbWlu
aXJlem8iKSB7CgkJCWVjaG8gIjwvQT4iOwoJCX0KCQkKCQllY2hvICI8L1REPiI7CgoJCWVjaG8g
IjxURCBCR0NPTE9SPSckY291bGV1cic+IjsKCQllY2hvICI8Rk9OVCBGQUNFPSdWZXJkYW5hLEFy
aWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpFPTI+IjsKCQlpZiAoJG5vbWJyZV9hcnRpY2xl
cz4wIE9SICRjb25uZWN0X3N0YXR1dD09IjBtaW5pcmV6byIpewoJCQllY2hvICI8QSBIUkVGPSdh
dXRldXJzX2VkaXQucGhwMz9pZF9hdXRldXI9JGlkX2F1dGV1ciZyZWRpcmVjdD0iLnJhd3VybGVu
Y29kZSgiYXJ0aWNsZXMucGhwMz9pZF9hcnRpY2xlPSRpZF9hcnRpY2xlIikuIic+JG5vbTwvQT4i
OwoJCX1lbHNlIGVjaG8gIiRub20iOwoJCWVjaG8gIjwvRk9OVD4iOwoJCWVjaG8gIjwvVEQ+IjsK
CgkJZWNobyAiPFREIEJHQ09MT1I9JyRjb3VsZXVyJz4iOwoJCWVjaG8gIjxGT05UIEZBQ0U9J1Zl
cmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnIFNJWkU9Mj4iOwoJCWlmIChzdHJsZW4o
JGVtYWlsKT4zKSBlY2hvICI8QSBIUkVGPSdtYWlsdG86JGVtYWlsJz5lbWFpbDwvQT4iOwoJCWVs
c2UgZWNobyAiJm5ic3A7IjsKCQllY2hvICI8L0ZPTlQ+IjsKCQllY2hvICI8L1REPiI7CgoJCWVj
aG8gIjxURCBCR0NPTE9SPSckY291bGV1cic+IjsKCQllY2hvICI8Rk9OVCBGQUNFPSdWZXJkYW5h
LEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJyBTSVpFPTI+IjsKCQlpZiAoc3RybGVuKCR1cmxf
c2l0ZSk+MykgZWNobyAiPEEgSFJFRj0nJHVybF9zaXRlJz5zaXRlPC9BPiI7CgkJZWxzZSBlY2hv
ICImbmJzcDsiOwoJCWVjaG8gIjwvRk9OVD4iOwoJCWVjaG8gIjwvVEQ+IjsKCgoJCWVjaG8gIjxU
RCBCR0NPTE9SPSckY291bGV1cicgQUxJR049J3JpZ2h0Jz4iOwoJCWVjaG8gIjxGT05UIEZBQ0U9
J1ZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnIFNJWkU9Mj4iOwoJCWlmICgkbm9t
YnJlX2FydGljbGVzPjEpCWVjaG8gIiRub21icmVfYXJ0aWNsZXMgYXJ0aWNsZXMiOwoJCWVsc2Vp
Zigkbm9tYnJlX2FydGljbGVzPT0xKQllY2hvICIkbm9tYnJlX2FydGljbGVzIGFydGljbGUiOwoJ
CWVsc2UgZWNobyAiJm5ic3A7IjsKCQllY2hvICI8L0ZPTlQ+IjsKCQllY2hvICI8L1REPiI7CgoJ
CWVjaG8gIjxURCBCR0NPTE9SPSckY291bGV1cicgYWxpZ249J3JpZ2h0Jz4iOwoJCWVjaG8gIjxG
T05UIEZBQ0U9J1ZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnIFNJWkU9MT4iOwoJ
CWlmICgkZmxhZ19lZGl0YWJsZSBBTkQgKCRjb25uZWN0X2lkX2F1dGV1ciAhPSAkaWRfYXV0ZXVy
IE9SICRjb25uZWN0X3N0YXR1dCA9PSAnMG1pbmlyZXpvJykgQU5EICRvcHRpb25zID09ICdhdmFu
Y2VlcycpIHsKCQkJZWNobyAiIDxBIEhSRUY9J2FydGljbGVzLnBocDM/aWRfYXJ0aWNsZT0kaWRf
YXJ0aWNsZSZzdXBwX2F1dGV1cj0kaWRfYXV0ZXVyJz5SZXRpcmVyIGwnYXV0ZXVyPC9BPiI7CgkJ
fQoJCWVsc2UgZWNobyAiJm5ic3A7IjsKCQllY2hvICI8L0ZPTlQ+IjsKCQllY2hvICI8L1REPiI7
CgoJCWVjaG8gIjwvVFI+XG4iOwoJfQp9CgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBEZXRlcm1pbmVyIGxlcyBkcm9pdHMgZCdlZGl0
aW9uCi8vCgokcXVlcnkgPSAiU0VMRUNUIHN0YXR1dCwgdGl0cmUgRlJPTSBzcGlwX2FydGljbGVz
IFdIRVJFIGlkX2FydGljbGU9JGlkX2FydGljbGUiOwokcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1
ZXJ5KTsKaWYgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgewoJJHN0YXR1dF9h
cnRpY2xlID0gJHJvd1swXTsKCSR0aXRyZV9hcnRpY2xlID0gJHJvd1sxXTsKfQplbHNlIHsKCSRz
dGF0dXRfYXJ0aWNsZSA9ICcnOwp9CgokcXVlcnkgPSAiU0VMRUNUICogRlJPTSBzcGlwX2F1dGV1
cnNfYXJ0aWNsZXMgV0hFUkUgaWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSBBTkQgaWRfYXV0ZXVyPSRj
b25uZWN0X2lkX2F1dGV1ciI7CiRyZXN1bHRfYXV0ZXVyID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsK
CiRmbGFnX2F1dGV1ciA9IChteXNxbF9udW1fcm93cygkcmVzdWx0X2F1dGV1cikgPiAwKTsKJGZs
YWdfZWRpdGFibGUgPSAoJGNvbm5lY3Rfc3RhdHV0ID09ICcwbWluaXJlem8nIE9SICgkZmxhZ19h
dXRldXIgPiAwIEFORCAoJHN0YXR1dF9hcnRpY2xlID09ICdwcmVwYScgT1IgJHN0YXR1dF9hcnRp
Y2xlID09ICdwcm9wJyBPUiAkdGl0cmVfYXJ0aWNsZSA9PSAnTm91dmVsIGFydGljbGUnKSkpOwoK
Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwov
LyBBcHBsaXF1ZXIgbGVzIG1vZGlmaWNhdGlvbnMKLy8KCgokc3VpdmlfZWRpdG8gPSBsaXJlX21l
dGEoInN1aXZpX2VkaXRvIik7CgppZiAoJHN0YXR1dF9ub3V2KSB7Cgkkb2sgPSBmYWxzZTsKCWlm
ICgkY29ubmVjdF9zdGF0dXQgPT0gJzBtaW5pcmV6bycpICRvayA9IHRydWU7CglpZiAoJGZsYWdf
YXV0ZXVyKSB7CgkJaWYgKCgkc3RhdHV0X25vdXYgPT0gJ3Byb3AnIE9SICRzdGF0dXRfbm91diA9
PSAncHJlcGEnKSBBTkQgKCRzdGF0dXRfYW5jaWVuID09ICdwcm9wJyBPUiAkc3RhdHV0X2FuY2ll
biA9PSAncHJlcGEnKSkKCQkJJG9rID0gdHJ1ZTsKCX0KCWlmICgkb2spIHsKCQkkcXVlcnkgPSAi
VVBEQVRFIHNwaXBfYXJ0aWNsZXMgU0VUIHN0YXR1dD0nJHN0YXR1dF9ub3V2JyBXSEVSRSBpZF9h
cnRpY2xlPSRpZF9hcnRpY2xlIjsKCQkkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsKCQls
ZXNfYWN0aXZlcygpOwoKCQlpZiAoJHN0YXR1dF9ub3V2ID09ICdwdWJsaWUnIEFORCAkc3RhdHV0
X25vdXYgIT0gJHN0YXR1dF9hbmNpZW4pIHsKCQkJJHF1ZXJ5ID0gIlVQREFURSBzcGlwX2FydGlj
bGVzIFNFVCBkYXRlPU5PVygpIFdIRVJFIGlkX2FydGljbGU9JGlkX2FydGljbGUiOwoJCQkkcmVz
dWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsKCQkJaWYgKGxpcmVfbWV0YSgnYWN0aXZlcl9tb3Rl
dXInKSA9PSAnb3VpJykgewoJCQkJaW5kZXhlcl9hcnRpY2xlKCRpZF9hcnRpY2xlKTsKCQkJfQoJ
CX0KCQlpZiAoJHN1aXZpX2VkaXRvID09ICdvdWknKSB7CgkJCWlmICgkc3RhdHV0X25vdXYgPT0g
J3B1YmxpZScgQU5EICRzdGF0dXRfYW5jaWVuICE9ICRzdGF0dXRfbm91diBBTkQgJHN0YXR1dF9h
bmNpZW4gPT0gJHN0YXR1dF9hcnRpY2xlKSB7CgkJCQllbnZveWVyX21haWxfcHVibGljYXRpb24o
JGlkX2FydGljbGUpOwoJCQl9CgkJCWlmICgkc3RhdHV0X25vdXYgPT0gInByb3AiIEFORCAkc3Rh
dHV0X25vdXYgIT0gJHN0YXR1dF9hbmNpZW4gQU5EICRzdGF0dXRfYW5jaWVuID09ICRzdGF0dXRf
YXJ0aWNsZSkgewoJCQkJZW52b3llcl9tYWlsX3Byb3Bvc2l0aW9uKCRpZF9hcnRpY2xlKTsKCQkJ
fQoJCX0KCQkkc3RhdHV0X2FydGljbGUgPSAkc3RhdHV0X25vdXY7CgkJJGZsYWdfZWRpdGFibGUg
PSAoJGNvbm5lY3Rfc3RhdHV0ID09ICcwbWluaXJlem8nIE9SIChteXNxbF9udW1fcm93cygkcmVz
dWx0X2F1dGV1cikgPiAwIEFORCAkc3RhdHV0X2FydGljbGUgPT0gJ3ByZXBhJykpOwoJfQp9CgoK
aWYgKCRqb3VyICYmICRmbGFnX2VkaXRhYmxlKSB7CgkkcXVlcnkgPSAiVVBEQVRFIHNwaXBfYXJ0
aWNsZXMgU0VUIGRhdGU9JyRhbm5lZS0kbW9pcy0kam91cicgV0hFUkUgaWRfYXJ0aWNsZT0kaWRf
YXJ0aWNsZSI7CgkkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsKfQoKCmlmICgkam91cl9y
ZWRhYyAmJiAkZmxhZ19lZGl0YWJsZSkgewoJaWYgKCRhbm5lZV9yZWRhYyA8IDEwMDEpICRhbm5l
ZV9yZWRhYyArPSA5MDAwOwoJCglpZiAoJGF2ZWNfcmVkYWM9PSJub24iKXsKCQkkYW5uZWVfcmVk
YWMgPSAnMDAwMCc7CgkJJG1vaXNfcmVkYWMgPSAnMDAnOwoJCSRqb3VyX3JlZGFjID0gJzAwJzsK
CX0KCgkkcXVlcnkgPSAiVVBEQVRFIHNwaXBfYXJ0aWNsZXMgU0VUIGRhdGVfcmVkYWM9JyRhbm5l
ZV9yZWRhYy0kbW9pc19yZWRhYy0kam91cl9yZWRhYycgV0hFUkUgaWRfYXJ0aWNsZT0kaWRfYXJ0
aWNsZSI7CgkkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsKfQoKLy8gcmV1bml0IGxlcyB0
ZXh0ZXMgZGVjb3VwZXMgcGFyY2UgcXVlIHRyb3AgbG9uZ3MKJG5iX3RleHRlID0gMDsKd2hpbGUg
KCRuYl90ZXh0ZSArKyA8IDEwMCl7CQkvLyAxMDAgcG91ciBldml0ZXIgdW5lIGltcHJvYmFibGUg
Ym91Y2xlIGluZmluaWUKCSR2YXJuYW1lID0gInRleHRlJG5iX3RleHRlIjsKCSR0ZXh0ZV9wbHVz
ID0gJCR2YXJuYW1lOwkvLyBkb3VibGUgJCBwb3VyIG9idGVuaXIgJHRleHRlMSwgJHRleHRlMi4u
LgoJaWYgKCR0ZXh0ZV9wbHVzKXsKCQkkdGV4dGVfcGx1cyA9IGVyZWdfcmVwbGFjZSgiPFAgU1BJ
UD5cbiokIiwiXG5cbiIsJHRleHRlX3BsdXMpOwoJCSR0ZXh0ZV9ham91dCAuPSAkdGV4dGVfcGx1
czsKCX1lbHNlCgkJYnJlYWs7Cn0KJHRleHRlID0gJHRleHRlX2Fqb3V0IC4gJHRleHRlOwoKaWYg
KCR0aXRyZSAmJiAhJGFqb3V0X2ZvcnVtICYmICRmbGFnX2VkaXRhYmxlKSB7Cgkkc3VydGl0cmUg
PSBhZGRzbGFzaGVzKCRzdXJ0aXRyZSk7CgkkdGl0cmUgPSBhZGRzbGFzaGVzKCR0aXRyZSk7Cgkk
c291c3RpdHJlID0gYWRkc2xhc2hlcygkc291c3RpdHJlKTsKCSRkZXNjcmlwdGlmID0gYWRkc2xh
c2hlcygkZGVzY3JpcHRpZik7CgkkY2hhcG8gPSBhZGRzbGFzaGVzKCRjaGFwbyk7CgkkdGV4dGUg
PSBhZGRzbGFzaGVzKCR0ZXh0ZSk7CgkkcHMgPSBhZGRzbGFzaGVzKCRwcyk7CgkkcXVlcnkgPSAi
VVBEQVRFIHNwaXBfYXJ0aWNsZXMgU0VUIHN1cnRpdHJlPVwiJHN1cnRpdHJlXCIsIHRpdHJlPVwi
JHRpdHJlXCIsIHNvdXN0aXRyZT1cIiRzb3VzdGl0cmVcIiwgaWRfcnVicmlxdWU9XCIkaWRfcnVi
cmlxdWVcIiwgZGVzY3JpcHRpZj1cIiRkZXNjcmlwdGlmXCIsIGNoYXBvPVwiJGNoYXBvXCIsIHRl
eHRlPVwiJHRleHRlXCIsIHBzPVwiJHBzXCIsIHN0YXR1dD1cIiRzdGF0dXRcIiBXSEVSRSBpZF9h
cnRpY2xlPSRpZF9hcnRpY2xlIjsKCSRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoJbGVz
X2FjdGl2ZXMoKTsKCWlmICgkc3RhdHV0X2FydGljbGUgPT0gJ3B1YmxpZScpIHsKCQlpZiAobGly
ZV9tZXRhKCdhY3RpdmVyX21vdGV1cicpID09ICdvdWknKSB7CgkJCWluZGV4ZXJfYXJ0aWNsZSgk
aWRfYXJ0aWNsZSk7CgkJfQoJfQp9CgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIERldGVybWluZXIgbGVzIGRyb2l0cyBkJ2VkaXRpb24K
Ly8KCiRxdWVyeSA9ICJTRUxFQ1Qgc3RhdHV0LCB0aXRyZSBGUk9NIHNwaXBfYXJ0aWNsZXMgV0hF
UkUgaWRfYXJ0aWNsZT0kaWRfYXJ0aWNsZSI7CiRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkp
OwppZiAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpKSB7Cgkkc3RhdHV0X2FydGlj
bGUgPSAkcm93WzBdOwoJJHRpdHJlX2FydGljbGUgPSAkcm93WzFdOwp9CmVsc2UgewoJJHN0YXR1
dF9hcnRpY2xlID0gJyc7Cn0KCgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwovLyBBZmZpY2hhZ2UgZGUgbGEgY29sb25uZSBkZSBnYXVjaGUK
Ly8KCmRlYnV0X3BhZ2UoIiZsYXF1bzsgJHRpdHJlX2FydGljbGUgJnJhcXVvOyIpOwpkZWJ1dF9n
YXVjaGUoKTsKCmRlYnV0X2JvaXRlX2luZm8oKTsKCmVjaG8gIjxDRU5URVI+IjsKCmVjaG8gIjxG
T05UIEZBQ0U9J1ZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnIFNJWkU9MT48Qj5B
UlRJQ0xFIE5VTUVSTyA6PC9CPjwvRk9OVD4iOwplY2hvICI8QlI+PEZPTlQgRkFDRT0nVmVyZGFu
YSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZicgU0laRT02PjxCPiRpZF9hcnRpY2xlPC9CPjwv
Rk9OVD4iOwplY2hvICI8L0NFTlRFUj4iOwoKZmluX2JvaXRlX2luZm8oKTsKCgovLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gQWNjZXB0ZXIg
Zm9ydW1zLi4uCi8vCgoKZGVidXRfZHJvaXRlKCk7CgoKLy8gQWZmaWNoZXIgbGEgaGllcmFyY2hp
ZSAocmVjdXJyZW5jZSkKZnVuY3Rpb24gcGFyZW50KCRjb2xsZWN0aW9uKXsKCWdsb2JhbCAkcGFy
ZW50czsKCWdsb2JhbCAkY29sbDsKCSRwYXJlbnRzPWVyZWdfcmVwbGFjZSgiKH4rKSIsIlxcMX4i
LCRwYXJlbnRzKTsKCWlmICgkY29sbGVjdGlvbiE9MCl7CQoJCSRxdWVyeTI9IlNFTEVDVCAqIEZS
T00gc3BpcF9ydWJyaXF1ZXMgV0hFUkUgaWRfcnVicmlxdWU9XCIkY29sbGVjdGlvblwiIjsKCQkk
cmVzdWx0Mj1teXNxbF9xdWVyeSgkcXVlcnkyKTsKCgkJd2hpbGUoJHJvdz1teXNxbF9mZXRjaF9h
cnJheSgkcmVzdWx0MikpewoJCQkkaWRfcnVicmlxdWU9JHJvd1swXTsKCQkJJGlkX3BhcmVudD0k
cm93WzFdOwoJCQkkdGl0cmU9c3RyaXBzbGFzaGVzKCRyb3dbMl0pOwoJCQkKCQkJaWYgKCRpZF9y
dWJyaXF1ZT09JGNvbGwpewkJCQoJCQkJJHBhcmVudHM9In4gPElNRyBTUkM9J0lNRzIvdHJpYW5n
bGUtYmFzLmdpZicgV0lEVEg9MTYgSEVJR0hUPTE0PiA8Rk9OVCBTSVpFPTMgRkFDRT0nVmVyZGFu
YSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZic+PEI+JHRpdHJlPC9CPjwvRk9OVD48QlI+XG4k
cGFyZW50cyI7CQkKCQkJfWVsc2V7CgkJCQkkcGFyZW50cz0ifiA8SU1HIFNSQz0nSU1HMi90cmlh
bmdsZS1iYXMuZ2lmJyBXSURUSD0xNiBIRUlHSFQ9MTQ+IDxGT05UIFNJWkU9MiBGQUNFPSdWZXJk
YW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJz48Qj48QSBIUkVGPSduYXZpZ3Vlci5waHAz
P2NvbGw9JGlkX3J1YnJpcXVlJz4kdGl0cmU8L0E+PC9CPjwvRk9OVD48QlI+XG4kcGFyZW50cyI7
CQkKCQkJfQoJCX0KCXBhcmVudCgkaWRfcGFyZW50KTsKCX0KfQoKCi8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBMaXJlIGwnYXJ0aWNsZQov
LwoKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gc3BpcF9hcnRpY2xlcyBXSEVSRSBpZF9hcnRpY2xl
PSckaWRfYXJ0aWNsZScgT1JERVIgQlkgdGl0cmUiOwokcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1
ZXJ5KTsKCmlmICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHsKCSRpZF9hcnRp
Y2xlID0gJHJvd1swXTsKCSRpZF9ydWJyaXF1ZSA9ICRyb3dbNF07Cn0KCmVjaG8gIjxUQUJMRSBX
SURUSD0xMDAlIENFTExQQURESU5HPTAgQ0VMTFNQQUNJTkc9MCBCT1JERVI9MD48VFI+PFREIFdJ
RFRIPVwiMTAwJVwiPiI7CmVjaG8gIjxGT05UIEZBQ0U9J0dlb3JnaWEsR2FyYW1vbmQsVGltZXMs
c2VyaWYnPiI7CgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCi8vIEFmZmljaGVyIGxhIGhpZXJhcmNoaWUKLy8KCnBhcmVudCgkaWRfcnVicmlx
dWUpOwokcGFyZW50cz0ifiA8SU1HIFNSQz0nSU1HMi90cmlhbmdsZS1iYXMuZ2lmJyBXSURUSD0x
NiBIRUlHSFQ9MTQ+IDxBIEhSRUY9J25hdmlndWVyLnBocDM/Y29sbD0wJz48Qj5SQUNJTkUgRFUg
U0lURTwvQj48L0E+ICIuYWZmX2FpZGUoInJ1YmhpZXIiKS4iPEJSPiIuJHBhcmVudHM7CgokcGFy
ZW50cz1lcmVnX3JlcGxhY2UoIn4iLCImbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsiLCRwYXJlbnRzKTsKJHBhcmVudHM9ZXJlZ19yZXBsYWNlKCImbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgIiwiIiwkcGFyZW50cyk7CmVjaG8gIiRwYXJlbnRzIjsKZWNobyAi
PC9URD48L1RSPjwvVEFCTEU+IjsKCgplY2hvICI8VEFCTEUgQ0VMTFBBRERJTkc9MTggQ0VMTFNQ
QUNJTkc9MCBCT1JERVI9MT48VFI+PFREIEJHQ09MT1I9JyNGRkZGRkYnIEFMSUdOPSdjZW50ZXIn
PiI7CmVjaG8gIjxDRU5URVI+IjsKCmVjaG8gIjxUQUJMRSBDRUxMUEFERElORz0zIENFTExTUEFD
SU5HPTAgQk9SREVSPTAgV0lEVEg9MTAwJT4iOwplY2hvICI8VFI+PFREIEJHQ09MT1I9JyNFRUVF
Q0MnPiI7CmVjaG8gIjxGT05UIFNJWkU9MiBGQUNFPSdHZW9yZ2lhLEdhcmFtb25kLFRpbWVzLHNl
cmlmJz48Qj5NT1RTLUNMJkVhY3V0ZTtTPC9CPjwvRk9OVD4iOwphaWRlKCJhcnRtb3RzIik7CmVj
aG8gIjwvVEQ+PC9UUj48L1RBQkxFPiI7CgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBMaXN0ZSBkZXMgbW90cy1jbGVzIGRlIGwnYXJ0
aWNsZQovLwoKJHF1ZXJ5ID0gIlNFTEVDVCBpZF9tb3QsIHRpdHJlIEZST00gc3BpcF9tb3RzIFdI
RVJFIHRpdHJlPD4na2F3YXgnIjsKJG5vbWJyZV9tb3RzID0gbXlzcWxfbnVtX3Jvd3MobXlzcWxf
cXVlcnkoJHF1ZXJ5KSk7CgkKaWYgKCRub21icmVfbW90cyA+IDApIHsKCglkZWJ1dF9jYWRyZV9y
ZWxpZWYoKTsKCgl1bnNldCgkbGVzX21vdHMpOwoJJHF1ZXJ5ID0gIlNFTEVDVCBzcGlwX21vdHMu
KiBGUk9NIHNwaXBfbW90cywgc3BpcF9tb3RzX2FydGljbGVzIEFTIGxpZW4gV0hFUkUgbGllbi5p
ZF9hcnRpY2xlPSRpZF9hcnRpY2xlIEFORCBzcGlwX21vdHMuaWRfbW90PWxpZW4uaWRfbW90IE9S
REVSIEJZIHNwaXBfbW90cy50eXBlLCBzcGlwX21vdHMudGl0cmUiOwoJJHJlc3VsdCA9IG15c3Fs
X3F1ZXJ5KCRxdWVyeSk7CgkkaW1jID0gMDsKCXdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJy
YXkoJHJlc3VsdCkpIHsKCgkJJGxlc19tb3RzWyRpbWNdID0gJHJvd1snaWRfbW90J107CgkJJGlt
YysrOwoJCSRpbWNtYXggPSAkaW1jOwoJfQoKCglpZiAoJGZsYWdfZWRpdGFibGUpIHsKCQkkcXVl
cnkgPSAiU0VMRUNUICogRlJPTSBzcGlwX21vdHMgV0hFUkUgdGl0cmU8PidrYXdheCcgT1JERVIg
QlkgdHlwZSwgdGl0cmUiOwoJCSRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpOwoKCQlpZiAo
bXlzcWxfbnVtX3Jvd3MoJHJlc3VsdCkgPiAwKSB7CgoJCQllY2hvICI8Rk9STSBBQ1RJT049J2Fy
dGljbGVzLnBocDMnIE1FVEhPRD0ncG9zdCc+IjsKCQkJZWNobyAiPElOUFVUIFRZUEU9J0hpZGRl
bicgTkFNRT0naWRfYXJ0aWNsZScgVkFMVUU9XCIkaWRfYXJ0aWNsZVwiPiI7CgoJCQkkYW5jaWVu
X3R5cGUgPSAnJzsKCgkJCWVjaG8gIjxUQUJMRSBDRUxMUEFERElORz0nMCcgQ0VMTFNQQUNJTkc9
JzAnIEJPUkRFUj0nMCcgV0lEVEg9JzEwMCUnPiI7CgkJCWVjaG8gIjxUUj48VEQgV0lEVEg9JzE1
Jz48L1REPjxURD48L1REPjwvVFI+IjsKCQkJd2hpbGUoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5
KCRyZXN1bHQpKSB7CgkJCQkkaWRfbW90ID0gJHJvd1snaWRfbW90J107CgkJCQkkdGl0cmVfbW90
ID0gc3RyaXBzbGFzaGVzKCRyb3dbJ3RpdHJlJ10pOwoJCQkJJHR5cGVfbW90ID0gc3RyaXBzbGFz
aGVzKCRyb3dbJ3R5cGUnXSk7CgoJCQkJaWYgKCR0eXBlX21vdCAhPSAkYW5jaWVuX3R5cGUpIHsK
CQkJCQllY2hvICI8VFI+PFREIENPTFNQQU49JzInPiI7CgkJCQkJJGxhYmVsID0gaHRtbHNwZWNp
YWxjaGFycyhzdHJ0b3VwcGVyKCR0eXBlX21vdCkpOwoJCQkJCWVjaG8gJGxhYmVsOwoJCQkJCSRh
bmNpZW5fdHlwZSA9ICR0eXBlX21vdDsKCQkJCQllY2hvICI8L1REPiI7CgkJCQl9CgkJCQllY2hv
ICI8VFI+PFREPjwvVEQ+PFREPiI7CgkJCQkkdGV4dGVfb3B0aW9uID0gaHRtbHNwZWNpYWxjaGFy
cyhjb3VwZXIoJHRpdHJlX21vdCwgNTApKTsKCQkJCWVjaG8gIjxJTlBVVCBUWVBFPSdjaGVja2Jv
eCcgTkFNRT0nY2hlY2tib3hbJGldJyBWQUxVRT1cIiRpZF9tb3RcIiI7CgkJCQlmb3IgKCRpbWMg
PSAwOyAkaW1jIDwgJGltY21heDsgJGltYysrKSB7CgkJCQkJaWYgKCRsZXNfbW90c1skaW1jXSA9
PSAkaWRfbW90KSBlY2hvICIgQ0hFQ0tFRCI7CgkJCQl9CgkJCQllY2hvICI+IjsKCQkJCWlmICgk
dHlwZV9tb3QpIGVjaG8gIiZuYnNwOyZuYnNwOyZuYnNwOyIuJHRleHRlX29wdGlvbjsKCQkJCWVj
aG8gIjwvVEQ+PC9UUj4iOwoKCQkJfQoJCQllY2hvICI8VFI+PFREIEFMSUdOPSdyaWdodCcgQ09M
U1BBTj0nMic+IjsKCQkJZWNobyAiPElOUFVUIFRZUEU9J3N1Ym1pdCcgTkFNRT0nY2hvaXhfbW90
c19jbGVzJyBWQUxVRT0nQ2hvaXNpcicgQ0xBU1M9J2ZvbmRvJz4iOwoJCQllY2hvICI8L1REPjwv
VFI+IjsKCQkJZWNobyAiPC9GT1JNPiI7CgoJCQllY2hvICI8L1RBQkxFPiI7CgkJfQoJfQoJCgll
Y2hvICI8UD4iOwoJZmluX2NhZHJlX3JlbGllZigpOwp9CgplY2hvICI8L1REPjwvVFI+PC9UQUJM
RT4iOwoKZmluX3BhZ2UoKTsKCj8+Cgo=
--Multipart_Mon__15_Oct_2001_16:03:10_+0200_08211980--