SF.net SVN: docutils:[10356 ] trunk/docutils

milde--- via Docutils-checkins <[email protected]> Fri, 12 Jun 2026 21:49:56 +0000
Newsgroups gmane.text.docutils.cvs
Message-ID <[email protected]>
UmV2aXNpb246IDEwMzU2CiAgICAgICAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvZG9jdXRp
bHMvY29kZS8xMDM1NgpBdXRob3I6ICAgbWlsZGUKRGF0ZTogICAgIDIwMjYtMDYtMTIgMjE6NDk6
NTYgKzAwMDAgKEZyaSwgMTIgSnVuIDIwMjYpCkxvZyBNZXNzYWdlOgotLS0tLS0tLS0tLQpSZW1v
dmUgYGlucHV0X2VuY29kaW5nYCBhdXRvLWRldGVjdGlvbiBjb2RlLgoKV2l0aCBVbmljb2RlIGFu
ZCBVVEYtOCBub3cgYmVlaW5nIHVuaXZlcnNhbGx5IHN1cHBvcnRlZCwKd2Ugd2FudCB0byBrZWVw
IGl0IHNpbXBsZS4KClVzZXJzIHN0aWxsIHJlbHlpbmcgb2YgaW5wdXQtZW5jb2RpbmcgYXV0by1k
ZXRlY3Rpb24gYXJlIHJlZmVycmVkIHRvCnRoZSAiaW5zcGVjdGluZ19jb2RlY3MiIHBhY2thZ2Ug
Zm9yIGEgcmVwbGFjZW1lbnQuCgpodHRwczovL2NvZGViZXJnLm9yZy9taWxkZS9pbnNwZWN0aW5n
LWNvZGVjcwoKTW9kaWZpZWQgUGF0aHM6Ci0tLS0tLS0tLS0tLS0tCiAgICB0cnVuay9kb2N1dGls
cy9ISVNUT1JZLnJzdAogICAgdHJ1bmsvZG9jdXRpbHMvUkVMRUFTRS1OT1RFUy5yc3QKICAgIHRy
dW5rL2RvY3V0aWxzL2RvY3MvdXNlci9jb25maWcucnN0CiAgICB0cnVuay9kb2N1dGlscy9kb2N1
dGlscy9pby5weQogICAgdHJ1bmsvZG9jdXRpbHMvdGVzdC90ZXN0X2lvLnB5CiAgICB0cnVuay9k
b2N1dGlscy90ZXN0L3Rlc3RfcHVibGlzaGVyLnB5CgpSZW1vdmVkIFBhdGhzOgotLS0tLS0tLS0t
LS0tCiAgICB0cnVuay9kb2N1dGlscy90ZXN0L2RhdGEvbGF0aW4xLnJzdAogICAgdHJ1bmsvZG9j
dXRpbHMvdGVzdC9kYXRhL2xhdGluMi5yc3QKICAgIHRydW5rL2RvY3V0aWxzL3Rlc3QvZGF0YS91
dGYtOC1zaWcucnN0CgpNb2RpZmllZDogdHJ1bmsvZG9jdXRpbHMvSElTVE9SWS5yc3QKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gdHJ1bmsvZG9jdXRpbHMvSElTVE9SWS5yc3QJMjAyNi0wNi0xMiAyMTo0OTo0NSBV
VEMgKHJldiAxMDM1NSkKKysrIHRydW5rL2RvY3V0aWxzL0hJU1RPUlkucnN0CTIwMjYtMDYtMTIg
MjE6NDk6NTYgVVRDIChyZXYgMTAzNTYpCkBAIC0zMCw2ICszMCwxMCBAQAogCiAqIGRvY3V0aWxz
L2lvLnB5CiAKKyAgLSBSZW1vdmUgaW5wdXQtZW5jb2RpbmcgImF1dG8tZGV0ZWN0aW9uIjoKKyAg
ICBgSW5wdXQuYnl0ZV9vcmRlcl9tYXJrc2AsIGBJbnB1dC5jb2Rpbmdfc2x1Z2AsCisgICAgYElu
cHV0LnN1Y2Nlc3NmdWxfZW5jb2RpbmdgLCBhbmQKKyAgICBgSW5wdXQuZGV0ZXJtaW5lX2VuY29k
aW5nX2Zyb21fZGF0YSgpYC4KICAgLSBSZW1vdmUgYEJpbmFyeUZpbGVPdXRwdXRgLiBVc2UgYEZp
bGVPdXRwdXRgCiAgICAgKHdvcmtzIHdpdGggYGJ5dGVzYCBzaW5jZSBEb2N1dGlsc8KgMC4yMCku
CiAKCk1vZGlmaWVkOiB0cnVuay9kb2N1dGlscy9SRUxFQVNFLU5PVEVTLnJzdAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSB0cnVuay9kb2N1dGlscy9SRUxFQVNFLU5PVEVTLnJzdAkyMDI2LTA2LTEyIDIxOjQ5OjQ1
IFVUQyAocmV2IDEwMzU1KQorKysgdHJ1bmsvZG9jdXRpbHMvUkVMRUFTRS1OT1RFUy5yc3QJMjAy
Ni0wNi0xMiAyMTo0OTo1NiBVVEMgKHJldiAxMDM1NikKQEAgLTE2Nyw4ICsxNjcsNiBAQAogKiBS
ZW1vdmUgYG5vZGVzLnNldF9uYW1lX2lkX21hcCgpYCBpbiBEb2N1dGlsc8KgMi4wCiAgIChub3Qg
dXNlZCBzaW5jZSBEb2N1dGlsc8KgMC4yMykuCiAKLSogUmVtb3ZlIHRoZSBpbnB1dF9lbmNvZGlu
Z18gYXV0by1kZXRlY3Rpb24gY29kZSBpbiBEb2N1dGlsc8KgMS4wLgotCiAqIFJlbW92ZSB0aGUg
IlRyYW5zZm9ybVNwZWMudW5rbm93bl9yZWZlcmVuY2VfcmVzb2x2ZXJzIiBob29rIGNoYWluCiAg
IGluIERvY3V0aWxzwqAxLjAuICBVc2UgYSB0cmFuc2Zvcm1fLAogICBzZWUgYHRyYW5zZm9ybXMu
cmVmZXJlbmNlcy5DaXRhdGlvblJlZmVyZW5jZXNgIGZvciBhbiBleGFtcGxlLgpAQCAtMjU4LDYg
KzI1NiwxMCBAQAogRG9jdW1lbnQgVHJlZSAvIERvY3V0aWxzIERURDoKICAgLSBEcm9wIHRoZSBg
bmFtZWAgYXR0cmlidXRlIGZyb20gPHJlZmVyZW5jZT4gbm9kZXMuCiAKK0NvbmZpZ3VyYXRpb24g
Y2hhbmdlczoKKyAgLSBgQXV0by1kZXRlY3Rpb25gXyBvZiB0aGUgaW5wdXQgZW5jb2RpbmcgaXMg
bm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAgICBUaGUgaW5wdXRfZW5jb2RpbmdfIHZhbHVlIGBgTm9u
ZWBgIG5vdyBzdGFuZHMgZm9yICJ1dGYtOCIuCisKIENvbW1hbmQgbGluZSBpbnRlcmZhY2U6CiAg
IC0gT3B0aW9uIGBgLW9gYCBzZXRzIHRoZSBgb3V0cHV0IGZpbGUgcGF0aCA8b3V0cHV0X3BhdGhf
PmBfXwogICAgIChzaG9ydGN1dCBmb3IgYGAtLW91dHB1dGBgKS4KQEAgLTI3NCwxMSArMjc2LDIw
IEBACiAgICAgICBVc2UgYGNvcmUucHVibGlzaF9jbWRsaW5lKClgICh3b3JrcyB3aXRoIGBieXRl
c2Agc2luY2UgRG9jdXRpbHMgMC4yMCkuCiAgIGBpby5CaW5hcnlGaWxlT3V0cHV0YAogICAgICAg
VXNlIGBpby5GaWxlT3V0cHV0YCAod29ya3Mgd2l0aCBgYnl0ZXNgIHNpbmNlIERvY3V0aWxzIDAu
MjApLgorICBgaW8uSW5wdXQuYnl0ZV9vcmRlcl9tYXJrc2AKKyAgICAgIC4uCisgIGBpby5JbnB1
dC5jb2Rpbmdfc2x1Z2AKKyAgICAgIC4uCisgIGBpby5JbnB1dC5zdWNjZXNzZnVsX2VuY29kaW5n
YAorICAgICAgLi4KKyAgYGlvLklucHV0LmRldGVybWluZV9lbmNvZGluZ19mcm9tX2RhdGEoKWAK
KyAgICAgIE5vIGxvbmdlciByZXF1aXJlZCBhcyBlbmNvZGluZyBkZXRlY3Rpb24gaXMgZHJvcHBl
ZC4KICAgYG5vZGVzLlRhcmdldGFibGUuaW5kaXJlY3RfcmVmZXJlbmNlX25hbWVgCiAgICAgICBJ
bnRlcm5hbCBhdHRyaWJ1dGUgZm9yIHRoZSBQeXRob24tMi1vbmx5IE1vaW5Nb2luIDw9IDEuOS4K
ICAgYHBhcnNlcnMucmVjb21tb25tYXJrX3dyYXBwZXJgCiAgICAgICBXcmFwcGVyIG1vZHVsZSBm
b3IgdGhlIG5vIGxvbmdlciBtYWludGFpbmVkIDNyZCBwYXJ0eQogICAgICAgcmVjb21tb25tYXJr
XyBwYXJzZXIuCisgICAgICBTZWUgdGhlIHBhcnNlcl8gc2V0dGluZyBkb2N1bWVudGF0aW9uIGZv
ciBhbHRlcm5hdGl2ZXMuCiAgIGBwYXJzZXJzLnJzdC5kaXJlY3RpdmVzLkNTVlRhYmxlLkhlYWRl
ckRpYWxlY3RgCiAgICAgICBkZXByZWNhdGVkIHNpbmNlIERvY3V0aWxzwqAwLjIwLgogICBgcGFy
c2Vycy5yc3QuZGlyZWN0aXZlcy5sZW5ndGhfdW5pdHNgCkBAIC0xNjI5LDYgKzE2NDAsNyBAQAog
Li4gX0xhVGVYIHN5bnRheCBmb3IgbWF0aGVtYXRpY3M6IGRvY3MvcmVmL3JzdC9tYXRoZW1hdGlj
cy5odG1sCiAKIC4uIF9jb25maWd1cmF0aW9uIHNldHRpbmdzOiBkb2NzL3VzZXIvY29uZmlnLmh0
bWwKKy4uIF9hdXRvLWRldGVjdGlvbjogZG9jcy91c2VyL2NvbmZpZy5odG1sI2F1dG8tZGV0ZWN0
CiAuLiBfYXV0b19pZF9wcmVmaXg6IGRvY3MvdXNlci9jb25maWcuaHRtbCNhdXRvLWlkLXByZWZp
eAogLi4gX2RhdGVzdGFtcDogZG9jcy91c2VyL2NvbmZpZy5odG1sI2RhdGVzdGFtcAogLi4gX2Vt
YmVkX2ltYWdlczogZG9jcy91c2VyL2NvbmZpZy5odG1sI2VtYmVkLWltYWdlcwpAQCAtMTY0OSw2
ICsxNjYxLDcgQEAKICAgICBkb2NzL3VzZXIvY29uZmlnLmh0bWwjb2xkLWZvcm1hdC1jb25maWd1
cmF0aW9uLWZpbGVzCiAuLiBfb3V0cHV0OgogLi4gX291dHB1dF9wYXRoOiBkb2NzL3VzZXIvY29u
ZmlnLmh0bWwjb3V0cHV0LXBhdGgKKy4uIF9wYXJzZXI6IGRvY3MvdXNlci9jb25maWcuaHRtbCNw
YXJzZXIKIC4uIF9yZWZlcmVuY2VfbGFiZWw6IGRvY3MvdXNlci9jb25maWcuaHRtbCNyZWZlcmVu
Y2UtbGFiZWwKIC4uIF9yb290X3ByZWZpeDogZG9jcy91c2VyL2NvbmZpZy5odG1sI3Jvb3QtcHJl
Zml4CiAuLiBfc2VsZi1saW5rOiBkb2NzL3VzZXIvY29uZmlnLmh0bWwjc2VjdGlvbi1zZWxmLWxp
bmsKCk1vZGlmaWVkOiB0cnVuay9kb2N1dGlscy9kb2NzL3VzZXIvY29uZmlnLnJzdAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSB0cnVuay9kb2N1dGlscy9kb2NzL3VzZXIvY29uZmlnLnJzdAkyMDI2LTA2LTEyIDIx
OjQ5OjQ1IFVUQyAocmV2IDEwMzU1KQorKysgdHJ1bmsvZG9jdXRpbHMvZG9jcy91c2VyL2NvbmZp
Zy5yc3QJMjAyNi0wNi0xMiAyMTo0OTo1NiBVVEMgKHJldiAxMDM1NikKQEAgLTQyOSw3ICs0Mjks
NyBAQAogCiBUaGUgdGV4dCBlbmNvZGluZyBbI2VuY29kaW5nc11fIGZvciBpbnB1dC4KIAotOkRl
ZmF1bHQ6IHV0Zi04IChjaGFuZ2VkIGZyb20gTm9uZSAoYXV0by1kZXRlY3RfKSBpbiBEb2N1dGls
c8KgMC4yMikuCis6RGVmYXVsdDogdXRmLTggKGNoYW5nZWQgZnJvbSAiYXV0by1kZXRlY3RfIiBp
biBEb2N1dGlsc8KgMC4yMikuCiA6T3B0aW9uOiBgYC0taW5wdXQtZW5jb2RpbmdgYCAoc2hvcnRj
dXQgYGAtaWBgIHJlbW92ZWQgaW4gRG9jdXRpbHPCoDAuMjIpLgogCiAKQEAgLTI1OTcsNDcgKzI1
OTcsMTMgQEAKIElucHV0IEVuY29kaW5nIEF1dG8tRGV0ZWN0aW9uCiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi1VcCB0byBEb2N1dGlscyAwLjIxLCB0aGUgaW5wdXRfZW5jb2Rpbmdf
IGRlZmF1bHQgdmFsdWUgd2FzIGBgTm9uZWBgIGFuZAotdGhlIGFjdHVhbCBpbnB1dCBlbmNvZGlu
ZyBkZXRlY3RlZCBmcm9tIGEgYFVuaWNvZGUgYnl0ZSBvcmRlciBtYXJrYCAoQk9NXykKLW9yIGFu
IGBlbmNvZGluZyBkZWNsYXJhdGlvbmBfIGluIHRoZSBzb3VyY2UuCitVcCB0byBEb2N1dGlsc8Kg
MC4yMywgKmlucHV0IGVuY29kaW5nIGF1dG8tZGV0ZWN0aW9uKiBjb3VsZCBiZSBzZWxlY3RlZAor
d2l0aCBhbiBpbnB1dF9lbmNvZGluZ18gdmFsdWUgYGBOb25lYGAuIFRoZSBhY3R1YWwgaW5wdXQg
ZW5jb2Rpbmcgd2FzCitkZXRlY3RlZCBmcm9tIGEgYFVuaWNvZGUgYnl0ZSBvcmRlciBtYXJrYCAo
Qk9NKSBvciBhbiAiZW5jb2RpbmcKK2RlY2xhcmF0aW9uIiBpbiB0aGUgc291cmNlLiAgVGhpcyBm
ZWF0dXJlIHdhcyByZW1vdmVkIGluIERvY3V0aWxzwqAxLjAuCitTZWUgdGhlIGBpbnNwZWN0aW5n
X2NvZGVjc2BfIHBhY2thZ2UgZm9yIGEgcmVwbGFjZW1lbnQuCiAKLVRoZSBkZWZhdWx0IGlucHV0
IGVuY29kaW5nIGNoYW5nZWQgdG8gInV0Zi04IiBpbiBEb2N1dGlsc8KgMC4yMi4KLUN1cnJlbnRs
eSwgYXV0by1kZXRlY3Rpb24gY2FuIGJlIHNlbGVjdGVkIHdpdGggYW4gaW5wdXRfZW5jb2Rpbmdf
IHZhbHVlCi1gYE5vbmVgYCAocnNwLiBhbiBlbXB0eSBzdHJpbmcgaW4gYSBjb25maWd1cmF0aW9u
IGZpbGUpLgotSG93ZXZlciwgKip0aGlzIGZlYXR1cmUqKiBpcyBkZXByZWNhdGVkIGFuZCAqKndp
bGwgYmUgcmVtb3ZlZCoqIGluCi1Eb2N1dGlsc8KgMS4wLiAgU2VlIHRoZSBgaW5zcGVjdGluZ19j
b2RlY3NgXyBwYWNrYWdlIGZvciBhIHJlcGxhY2VtZW50LgogCi1FbmNvZGluZyBEZWNsYXJhdGlv
bgotfn5+fn5+fn5+fn5+fn5+fn5+fn4KLQotSW5wdXQgZW5jb2RpbmcgYXV0by1kZXRlY3Rpb24g
c2NhbnMgdGhlIHNvdXJjZSBmb3IgYW4KLSplbmNvZGluZyBkZWNsYXJhdGlvbiogaW5zcGlyZWQg
YnkgOlBFUDpgMjYzYDoKLQotQSBjb21tZW50IGxpa2UgOjoKLQotICAuLiB0ZXh0IGVuY29kaW5n
OiA8ZW5jb2RpbmcgbmFtZT4KLQotb24gdGhlIGZpcnN0IG9yIHNlY29uZCBsaW5lIGRlZmluZXMg
YDxlbmNvZGluZyBuYW1lPmAKLWFzIHRoZSBzb3VyY2UncyBpbnB1dCBlbmNvZGluZy4KLQotRXhh
bXBsZXM6ICh1c2luZyBmb3JtYXRzIHJlY29nbml6ZWQgYnkgcG9wdWxhciBlZGl0b3JzKSA6Ogot
Ci0gICAgLi4gLSotIG1vZGU6IHJzdCAtKi0KLSAgICAgICAtKi0gY29kaW5nOiBsYXRpbjEgLSot
Ci0KLW9yOjoKLQotICAgIC4uIHZpbTogc2V0IGZpbGVlbmNvZGluZz1jcDczNyA6Ci0KLU1vcmUg
cHJlY2lzZWx5LCB0aGUgZmlyc3QgYW5kIHNlY29uZCBsaW5lIGFyZSBzZWFyY2hlZCBmb3IgdGhl
IGZvbGxvd2luZwotcmVndWxhciBleHByZXNzaW9uOjoKLQotICAgIGNvZGluZ1s6PV1ccyooWy1c
dy5dKykKLQotVGhlIGZpcnN0IGdyb3VwIG9mIHRoaXMgZXhwcmVzc2lvbiBpcyB0aGVuIGludGVy
cHJldGVkIGFzIGVuY29kaW5nIG5hbWUuCi1JZiB0aGUgZmlyc3QgbGluZSBtYXRjaGVzIHRoZSBz
ZWNvbmQgbGluZSBpcyBpZ25vcmVkLgotCi0KIC4uIFJlZmVyZW5jZXMKIAogLi4gX0RvY3V0aWxz
IERvY3VtZW50IFRyZWU6CkBAIC0yNzM2LDUgKzI3MDIsNCBAQAogLi4gX2NvZGVjczogaHR0cHM6
Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L2NvZGVjcy5odG1sCiAuLiBfc3RhbmRhcmQgZW5j
b2RpbmdzOgogICAgIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9jb2RlY3MuaHRt
bCNzdGFuZGFyZC1lbmNvZGluZ3MKLS4uIF9CT006IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMv
bGlicmFyeS9jb2RlY3MuaHRtbCNjb2RlY3MuQk9NCiAuLiBfaW5zcGVjdGluZ19jb2RlY3M6IGh0
dHBzOi8vY29kZWJlcmcub3JnL21pbGRlL2luc3BlY3RpbmctY29kZWNzCgpNb2RpZmllZDogdHJ1
bmsvZG9jdXRpbHMvZG9jdXRpbHMvaW8ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdHJ1bmsvZG9jdXRpbHMv
ZG9jdXRpbHMvaW8ucHkJMjAyNi0wNi0xMiAyMTo0OTo0NSBVVEMgKHJldiAxMDM1NSkKKysrIHRy
dW5rL2RvY3V0aWxzL2RvY3V0aWxzL2lvLnB5CTIwMjYtMDYtMTIgMjE6NDk6NTYgVVRDIChyZXYg
MTAzNTYpCkBAIC0xNCw3ICsxNCw2IEBACiBpbXBvcnQgY29kZWNzCiBpbXBvcnQgbG9jYWxlCiBp
bXBvcnQgb3MKLWltcG9ydCByZQogaW1wb3J0IHN5cwogaW1wb3J0IHdhcm5pbmdzCiAKQEAgLTk1
LDcgKzk0LDcgQEAKICAgICAgICAgc2VsZiwKICAgICAgICAgc291cmNlOiBzdHIgfCBUZXh0SU8g
fCBub2Rlcy5kb2N1bWVudCB8IE5vbmUgPSBOb25lLAogICAgICAgICBzb3VyY2VfcGF0aDogU3Ry
UGF0aCB8IE5vbmUgPSBOb25lLAotICAgICAgICBlbmNvZGluZzogc3RyIHwgTGl0ZXJhbFsndW5p
Y29kZSddIHwgTm9uZSA9ICd1dGYtOCcsCisgICAgICAgIGVuY29kaW5nOiBzdHIgfCBOb25lID0g
J3V0Zi04JywKICAgICAgICAgZXJyb3JfaGFuZGxlcjogc3RyIHwgTm9uZSA9ICdzdHJpY3QnLAog
ICAgICkgLT4gTm9uZToKICAgICAgICAgc2VsZi5lbmNvZGluZyA9IGVuY29kaW5nCkBAIC0xMTMs
OSArMTEyLDYgQEAKICAgICAgICAgaWYgbm90IHNvdXJjZV9wYXRoOgogICAgICAgICAgICAgc2Vs
Zi5zb3VyY2VfcGF0aCA9IHNlbGYuZGVmYXVsdF9zb3VyY2VfcGF0aAogCi0gICAgICAgIHNlbGYu
c3VjY2Vzc2Z1bF9lbmNvZGluZyA9IE5vbmUKLSAgICAgICAgIiIiVGhlIGVuY29kaW5nIHRoYXQg
c3VjY2Vzc2Z1bGx5IGRlY29kZWQgdGhlIHNvdXJjZSBkYXRhLiIiIgotCiAgICAgZGVmIF9fcmVw
cl9fKHNlbGYpIC0+IHN0cjoKICAgICAgICAgcmV0dXJuICclczogc291cmNlPSVyLCBzb3VyY2Vf
cGF0aD0lcicgJSAoc2VsZi5fX2NsYXNzX18sIHNlbGYuc291cmNlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNvdXJjZV9wYXRoKQpAQCAt
MTI5LDEwMiArMTI1LDExIEBACiAgICAgICAgIERlY29kZSBgZGF0YWAgaWYgcmVxdWlyZWQuCiAK
ICAgICAgICAgUmV0dXJuIFVuaWNvZGUgYHN0cmAgaW5zdGFuY2VzIHVuY2hhbmdlZCAobm90aGlu
ZyB0byBkZWNvZGUpLgotCi0gICAgICAgIElmIGBzZWxmLmVuY29kaW5nYCBpcyBOb25lLCBkZXRl
cm1pbmUgZW5jb2RpbmcgZnJvbSBkYXRhCi0gICAgICAgIG9yIHRyeSBVVEYtOCBhbmQgdGhlIGxv
Y2FsZSdzIHByZWZlcnJlZCBlbmNvZGluZy4KLSAgICAgICAgVGhlIGNsaWVudCBhcHBsaWNhdGlv
biBzaG91bGQgY2FsbCBgYGxvY2FsZS5zZXRsb2NhbGUoKWBgIGF0IHRoZQotICAgICAgICBiZWdp
bm5pbmcgb2YgcHJvY2Vzc2luZzo6Ci0KLSAgICAgICAgICAgIGxvY2FsZS5zZXRsb2NhbGUobG9j
YWxlLkxDX0FMTCwgJycpCi0KLSAgICAgICAgUmFpc2UgVW5pY29kZUVycm9yIGlmIHVuc3VjY2Vz
c2Z1bC4KLQotICAgICAgICBQcm92aXNpb25hbDogZW5jb2RpbmcgZGV0ZWN0aW9uIHdpbGwgYmUg
cmVtb3ZlZCBpbiBEb2N1dGlscyAxLjAuCiAgICAgICAgICIiIgogICAgICAgICBpZiBpc2luc3Rh
bmNlKGRhdGEsIHN0cik6CiAgICAgICAgICAgICByZXR1cm4gZGF0YSAgIyBub3RoaW5nIHRvIGRl
Y29kZQotICAgICAgICBpZiBzZWxmLmVuY29kaW5nOgotICAgICAgICAgICAgIyBXZSBiZWxpZXZl
IHRoZSB1c2VyL2FwcGxpY2F0aW9uIHdoZW4gdGhlIGVuY29kaW5nIGlzCi0gICAgICAgICAgICAj
IGV4cGxpY2l0bHkgZ2l2ZW4uCi0gICAgICAgICAgICBhc3NlcnQgc2VsZi5lbmNvZGluZy5sb3dl
cigpICE9ICd1bmljb2RlJywgKAotICAgICAgICAgICAgICAgICdpbnB1dCBlbmNvZGluZyBpcyAi
dW5pY29kZSIgYnV0IGBkYXRhYCBpcyBubyBgc3RyYCBpbnN0YW5jZScpCi0gICAgICAgICAgICBl
bmNvZGluZ19jYW5kaWRhdGVzID0gW3NlbGYuZW5jb2RpbmddCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6Ci0gICAgICAgICAgICAgICAg
d2FybmluZ3MuZmlsdGVyd2FybmluZ3MoJ2lnbm9yZScsIGNhdGVnb3J5PURlcHJlY2F0aW9uV2Fy
bmluZykKLSAgICAgICAgICAgICAgICBkYXRhX2VuY29kaW5nID0gc2VsZi5kZXRlcm1pbmVfZW5j
b2RpbmdfZnJvbV9kYXRhKGRhdGEpCi0gICAgICAgICAgICBpZiBkYXRhX2VuY29kaW5nOgotICAg
ICAgICAgICAgICAgICMgYGRhdGFgIGRlY2xhcmVzIGl0cyBlbmNvZGluZyB3aXRoICAibWFnaWMg
Y29tbWVudCIgb3IgQk9NLAotICAgICAgICAgICAgICAgIGVuY29kaW5nX2NhbmRpZGF0ZXMgPSBb
ZGF0YV9lbmNvZGluZ10KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBBcHBs
eSBoZXVyaXN0aWNzIGlmIHRoZSBlbmNvZGluZyBpcyBub3Qgc3BlY2lmaWVkLgotICAgICAgICAg
ICAgICAgICMgU3RhcnQgd2l0aCBVVEYtOCwgYmVjYXVzZSB0aGF0IG9ubHkgbWF0Y2hlcwotICAg
ICAgICAgICAgICAgICMgZGF0YSB0aGF0ICpJUyogVVRGLTg6Ci0gICAgICAgICAgICAgICAgZW5j
b2RpbmdfY2FuZGlkYXRlcyA9IFsndXRmLTgnXQotICAgICAgICAgICAgICAgICMgSWYgVVRGLTgg
ZmFpbHMsIGZhbGwgYmFjayB0byB0aGUgbG9jYWxlJ3MgcHJlZmVycmVkIGVuY29kaW5nOgotICAg
ICAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bOjJdID49ICgzLCAxMSk6Ci0gICAgICAg
ICAgICAgICAgICAgIGZhbGxiYWNrID0gbG9jYWxlLmdldGVuY29kaW5nKCkKLSAgICAgICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBmYWxsYmFjayA9IGxvY2FsZS5nZXRwcmVm
ZXJyZWRlbmNvZGluZyhkb19zZXRsb2NhbGU9RmFsc2UpCi0gICAgICAgICAgICAgICAgaWYgZmFs
bGJhY2sgYW5kIGZhbGxiYWNrLmxvd2VyKCkgIT0gJ3V0Zi04JzoKLSAgICAgICAgICAgICAgICAg
ICAgZW5jb2RpbmdfY2FuZGlkYXRlcy5hcHBlbmQoZmFsbGJhY2spCi0gICAgICAgIGlmIG5vdCBz
ZWxmLmVuY29kaW5nIGFuZCBlbmNvZGluZ19jYW5kaWRhdGVzWzBdICE9ICd1dGYtOCc6Ci0gICAg
ICAgICAgICB3YXJuaW5ncy53YXJuKCdJbnB1dCBlbmNvZGluZyBhdXRvLWRldGVjdGlvbiB3aWxs
IGJlIHJlbW92ZWQgYW5kICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBlbmNvZGlu
ZyB2YWx1ZXMgTm9uZSBhbmQgIiIgYmVjb21lIGludmFsaWQgJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAnaW4gRG9jdXRpbHPCoDEuMC4nLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2
ZWw9MikKLSAgICAgICAgZm9yIGVuYyBpbiBlbmNvZGluZ19jYW5kaWRhdGVzOgotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIGRlY29kZWQgPSBzdHIoZGF0YSwgZW5jLCBzZWxmLmVy
cm9yX2hhbmRsZXIpCi0gICAgICAgICAgICAgICAgc2VsZi5zdWNjZXNzZnVsX2VuY29kaW5nID0g
ZW5jCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRlY29kZWQKLSAgICAgICAgICAgIGV4Y2VwdCAo
VW5pY29kZUVycm9yLCBMb29rdXBFcnJvcikgYXMgZXJyOgotICAgICAgICAgICAgICAgICMga2Vl
cCBleGNlcHRpb24gaW5zdGFuY2UgZm9yIHVzZSBvdXRzaWRlIG9mIHRoZSAiZm9yIiBsb29wLgot
ICAgICAgICAgICAgICAgIGVycm9yID0gZXJyCi0gICAgICAgIHJhaXNlIFVuaWNvZGVFcnJvcigK
LSAgICAgICAgICAgICdVbmFibGUgdG8gZGVjb2RlIGlucHV0IGRhdGEuICBUcmllZCB0aGUgZm9s
bG93aW5nIGVuY29kaW5nczogJwotICAgICAgICAgICAgZid7IiwgIi5qb2luKHJlcHIoZW5jKSBm
b3IgZW5jIGluIGVuY29kaW5nX2NhbmRpZGF0ZXMpfS5cbicKLSAgICAgICAgICAgIGYnKHtlcnJv
cl9zdHJpbmcoZXJyb3IpfSknKQorICAgICAgICByZXR1cm4gc3RyKGRhdGEsIHNlbGYuZW5jb2Rp
bmcgb3IgJ3V0Zi04Jywgc2VsZi5lcnJvcl9oYW5kbGVyKQogCi0gICAgY29kaW5nX3NsdWc6IENs
YXNzVmFyW3JlLlBhdHRlcm5bYnl0ZXNdXSA9IHJlLmNvbXBpbGUoCi0gICAgICAgIGJyJ2NvZGlu
Z1s6PV1ccyooWy1cdy5dKyknCi0gICAgKQotICAgICIiIkVuY29kaW5nIGRlY2xhcmF0aW9uIHBh
dHRlcm4uIiIiCi0KLSAgICBieXRlX29yZGVyX21hcmtzOiBDbGFzc1Zhclt0dXBsZVt0dXBsZVti
eXRlcywgc3RyXSwgLi4uXV0gPSAoCi0gICAgICAgIChjb2RlY3MuQk9NX1VURjMyX0JFLCAndXRm
LTMyJyksCi0gICAgICAgIChjb2RlY3MuQk9NX1VURjMyX0xFLCAndXRmLTMyJyksCi0gICAgICAg
IChjb2RlY3MuQk9NX1VURjgsICd1dGYtOC1zaWcnKSwKLSAgICAgICAgKGNvZGVjcy5CT01fVVRG
MTZfQkUsICd1dGYtMTYnKSwKLSAgICAgICAgKGNvZGVjcy5CT01fVVRGMTZfTEUsICd1dGYtMTYn
KSwKLSAgICApCi0gICAgIiIiU2VxdWVuY2Ugb2YgKHN0YXJ0X2J5dGVzLCBlbmNvZGluZykgdHVw
bGVzIGZvciBlbmNvZGluZyBkZXRlY3Rpb24uCi0gICAgVGhlIGZpcnN0IGJ5dGVzIG9mIGlucHV0
IGRhdGEgYXJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgc3RhcnRfYnl0ZXMgc3RyaW5ncy4KLSAgICBB
IG1hdGNoIGluZGljYXRlcyB0aGUgZ2l2ZW4gZW5jb2RpbmcuCi0KLSAgICBJbnRlcm5hbC4gV2ls
bCBiZSByZW1vdmVkIGluIERvY3V0aWxzIDEuMC4KLSAgICAiIiIKLQotICAgIGRlZiBkZXRlcm1p
bmVfZW5jb2RpbmdfZnJvbV9kYXRhKHNlbGYsIGRhdGE6IGJ5dGVzKSAtPiBzdHIgfCBOb25lOgot
ICAgICAgICAiIiIKLSAgICAgICAgVHJ5IHRvIGRldGVybWluZSB0aGUgZW5jb2Rpbmcgb2YgYGRh
dGFgIGJ5IGxvb2tpbmcgKmluKiBgZGF0YWAuCi0gICAgICAgIENoZWNrIGZvciBhIGJ5dGUgb3Jk
ZXIgbWFyayAoQk9NKSBvciBhbiBlbmNvZGluZyBkZWNsYXJhdGlvbi4KLQotICAgICAgICBEZXBy
ZWNhdGVkLiBXaWxsIGJlIHJlbW92ZWQgaW4gRG9jdXRpbHMgMS4wLgotICAgICAgICAiIiIKLSAg
ICAgICAgd2FybmluZ3Mud2FybignZG9jdXRpbHMuaW8uSW5wdXQuZGV0ZXJtaW5lX2VuY29kaW5n
X2Zyb21fZGF0YSgpICcKLSAgICAgICAgICAgICAgICAgICAgICAnd2lsbCBiZSByZW1vdmVkIGlu
IERvY3V0aWxzwqAxLjAuJywKLSAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5p
bmcsIHN0YWNrbGV2ZWw9MikKLSAgICAgICAgIyBjaGVjayBmb3IgYSBieXRlIG9yZGVyIG1hcms6
Ci0gICAgICAgIGZvciBzdGFydF9ieXRlcywgZW5jb2RpbmcgaW4gc2VsZi5ieXRlX29yZGVyX21h
cmtzOgotICAgICAgICAgICAgaWYgZGF0YS5zdGFydHN3aXRoKHN0YXJ0X2J5dGVzKToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZW5jb2RpbmcKLSAgICAgICAgIyBjaGVjayBmb3IgYW4gZW5jb2Rp
bmcgZGVjbGFyYXRpb24gcGF0dGVybiBpbiBmaXJzdCAyIGxpbmVzIG9mIGZpbGU6Ci0gICAgICAg
IGZvciBsaW5lIGluIGRhdGEuc3BsaXRsaW5lcygpWzoyXToKLSAgICAgICAgICAgIG1hdGNoID0g
c2VsZi5jb2Rpbmdfc2x1Zy5zZWFyY2gobGluZSkKLSAgICAgICAgICAgIGlmIG1hdGNoOgotICAg
ICAgICAgICAgICAgIHJldHVybiBtYXRjaC5ncm91cCgxKS5kZWNvZGUoJ2FzY2lpJykKLSAgICAg
ICAgcmV0dXJuIE5vbmUKLQogICAgIGRlZiBpc2F0dHkoc2VsZikgLT4gYm9vbDoKICAgICAgICAg
IiIiUmV0dXJuIFRydWUsIGlmIHRoZSBpbnB1dCBzb3VyY2UgaXMgY29ubmVjdGVkIHRvIGEgVFRZ
IGRldmljZS4iIiIKICAgICAgICAgdHJ5OgoKRGVsZXRlZDogdHJ1bmsvZG9jdXRpbHMvdGVzdC9k
YXRhL2xhdGluMS5yc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdHJ1bmsvZG9jdXRpbHMvdGVzdC9kYXRhL2xh
dGluMS5yc3QJMjAyNi0wNi0xMiAyMTo0OTo0NSBVVEMgKHJldiAxMDM1NSkKKysrIHRydW5rL2Rv
Y3V0aWxzL3Rlc3QvZGF0YS9sYXRpbjEucnN0CTIwMjYtMDYtMTIgMjE6NDk6NTYgVVRDIChyZXYg
MTAzNTYpCkBAIC0xICswLDAgQEAKLUdyXHhGQ1x4REZlCgpEZWxldGVkOiB0cnVuay9kb2N1dGls
cy90ZXN0L2RhdGEvbGF0aW4yLnJzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9kb2N1dGlscy90ZXN0
L2RhdGEvbGF0aW4yLnJzdAkyMDI2LTA2LTEyIDIxOjQ5OjQ1IFVUQyAocmV2IDEwMzU1KQorKysg
dHJ1bmsvZG9jdXRpbHMvdGVzdC9kYXRhL2xhdGluMi5yc3QJMjAyNi0wNi0xMiAyMTo0OTo1NiBV
VEMgKHJldiAxMDM1NikKQEAgLTEsMyArMCwwIEBACi0uLiAtKi0gZW5jb2Rpbmc6IGxhdGluMiAt
Ki0KLQotXHhCOWtvZGEKCkRlbGV0ZWQ6IHRydW5rL2RvY3V0aWxzL3Rlc3QvZGF0YS91dGYtOC1z
aWcucnN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL2RvY3V0aWxzL3Rlc3QvZGF0YS91dGYtOC1zaWcu
cnN0CTIwMjYtMDYtMTIgMjE6NDk6NDUgVVRDIChyZXYgMTAzNTUpCisrKyB0cnVuay9kb2N1dGls
cy90ZXN0L2RhdGEvdXRmLTgtc2lnLnJzdAkyMDI2LTA2LTEyIDIxOjQ5OjU2IFVUQyAocmV2IDEw
MzU2KQpAQCAtMSArMCwwIEBACi3vu79HcsO8w59lCgpNb2RpZmllZDogdHJ1bmsvZG9jdXRpbHMv
dGVzdC90ZXN0X2lvLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL2RvY3V0aWxzL3Rlc3QvdGVzdF9p
by5weQkyMDI2LTA2LTEyIDIxOjQ5OjQ1IFVUQyAocmV2IDEwMzU1KQorKysgdHJ1bmsvZG9jdXRp
bHMvdGVzdC90ZXN0X2lvLnB5CTIwMjYtMDYtMTIgMjE6NDk6NTYgVVRDIChyZXYgMTAzNTYpCkBA
IC0xMTAsNTkgKzExMCwxMyBAQAogCiBjbGFzcyBJbnB1dFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNl
KToKIAotICAgIGRlZiB0ZXN0X2JvbV9oYW5kbGluZyhzZWxmKToKLSAgICAgICAgIyBQcm92aXNp
b25hbDoKLSAgICAgICAgIyBkZWZhdWx0IGlucHV0IGVuY29kaW5nIHdpbGwgY2hhbmdlIHRvIFVU
Ri04IGluIERvY3V0aWxzIDAuMjIKLSAgICAgICAgc291cmNlID0gJ1x1ZmVmZmRhdGFcblx1ZmVm
ZiBibGFoXG4nCi0gICAgICAgIGV4cGVjdGVkID0gJ2RhdGFcblx1ZmVmZiBibGFoXG4nICAjIG9u
bHkgbGVhZGluZyBaV05CU1AgcmVtb3ZlZAotICAgICAgICBpbnB1dF8gPSBkdV9pby5TdHJpbmdJ
bnB1dChzb3VyY2U9c291cmNlLmVuY29kZSgndXRmLTE2LWJlJyksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPU5vbmUpCi0gICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRXYXJuc1JlZ2V4KERlcHJlY2F0aW9uV2FybmluZywgJ2F1dG8tZGV0ZWN0aW9uJyk6Ci0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBpbnB1dF8ucmVhZCgpKQotICAgICAg
ICBpbnB1dF8gPSBkdV9pby5TdHJpbmdJbnB1dChzb3VyY2U9c291cmNlLmVuY29kZSgndXRmLTE2
LWxlJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPU5vbmUp
Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJuc1JlZ2V4KERlcHJlY2F0aW9uV2FybmluZywg
J2F1dG8tZGV0ZWN0aW9uJyk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVk
LCBpbnB1dF8ucmVhZCgpKQotICAgICAgICBpbnB1dF8gPSBkdV9pby5TdHJpbmdJbnB1dChzb3Vy
Y2U9c291cmNlLmVuY29kZSgndXRmLTgnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZW5jb2Rpbmc9Tm9uZSkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFdhcm5zUmVnZXgo
RGVwcmVjYXRpb25XYXJuaW5nLCAnYXV0by1kZXRlY3Rpb24nKToKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGlucHV0Xy5yZWFkKCkpCi0gICAgICAgICMgV2l0aCBgc3Ry
YCBpbnB1dCBhbGwgWldOQlNQcyBhcmUgc3RpbGwgdGhlcmUuCi0gICAgICAgIGlucHV0XyA9IGR1
X2lvLlN0cmluZ0lucHV0KHNvdXJjZT1zb3VyY2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c291cmNlLCBpbnB1dF8ucmVhZCgpKQotCi0gICAgZGVmIHRlc3RfZW5jb2RpbmdfZGVjbGFyYXRp
b24oc2VsZik6Ci0gICAgICAgIGlucHV0XyA9IGR1X2lvLlN0cmluZ0lucHV0KHNvdXJjZT1iIiIi
XAotLi4gLSotIGNvZGluZzogYXNjaWkgLSotCi1kYXRhCi1ibGFoCi0iIiIsIGVuY29kaW5nPU5v
bmUpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJuc1JlZ2V4KERlcHJlY2F0aW9uV2Fybmlu
ZywgJ2F1dG8tZGV0ZWN0aW9uJyk6Ci0gICAgICAgICAgICBkYXRhID0gaW5wdXRfLnJlYWQoKSAg
IyBub3FhOiBGODQxCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2FzY2lpJywgaW5wdXRfLnN1
Y2Nlc3NmdWxfZW5jb2RpbmcpCi0gICAgICAgIGlucHV0XyA9IGR1X2lvLlN0cmluZ0lucHV0KHNv
dXJjZT1iIiIiXAotIyEgcHl0aG9uCi0jIC0qLSBjb2Rpbmc6IGFzY2lpIC0qLQotcHJpbnQoImhl
bGxvIHdvcmxkIikKLSIiIiwgZW5jb2Rpbmc9Tm9uZSkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFdhcm5zUmVnZXgoRGVwcmVjYXRpb25XYXJuaW5nLCAnYXV0by1kZXRlY3Rpb24nKToKLSAgICAg
ICAgICAgIGRhdGEgPSBpbnB1dF8ucmVhZCgpICAjIG5vcWE6IEY4NDEKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnYXNjaWknLCBpbnB1dF8uc3VjY2Vzc2Z1bF9lbmNvZGluZykKLSAgICAgICAg
aW5wdXRfID0gZHVfaW8uU3RyaW5nSW5wdXQoc291cmNlPWIiIiJcCi0jISBweXRob24KLSMgZXh0
cmFuZW91cyBjb21tZW50OyBwcmV2ZW50cyBjb2Rpbmcgc2x1ZyBmcm9tIGJlaW5nIHJlYWQKLSMg
LSotIGNvZGluZzogYXNjaWkgLSotCi1wcmludCgiaGVsbG8gd29ybGQiKQotIiIiKQotICAgICAg
ICBzZWxmLmFzc2VydE5vdEVxdWFsKGlucHV0Xy5zdWNjZXNzZnVsX2VuY29kaW5nLCAnYXNjaWkn
KQotCiAgICAgZGVmIHRlc3RfZGVjb2RlX3VuaWNvZGUoc2VsZik6CiAgICAgICAgICMgV2l0aCB0
aGUgc3BlY2lhbCB2YWx1ZSAidW5pY29kZSIgb3IgIlVuaWNvZGUiOgogICAgICAgICB1bmlpbnB1
dCA9IGR1X2lvLklucHV0KGVuY29kaW5nPSd1bmljb2RlJykKICAgICAgICAgIyBrZWVwIHVuaWNv
ZGUgaW5zdGFuY2VzIGFzLWlzCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2phJywgdW5paW5w
dXQuZGVjb2RlKCdqYScpKQotICAgICAgICAjIHJhaXNlIEFzc2VydGlvbkVycm9yIGlmIGRhdGEg
aXMgbm90IGEgYHN0cmAgaW5zdGFuY2UKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhB
c3NlcnRpb25FcnJvcik6CisgICAgICAgICMgcmFpc2UgZXJyb3IgaWYgZGF0YSBpcyBub3QgYSBg
c3RyYCBpbnN0YW5jZQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKExvb2t1cEVycm9y
KToKICAgICAgICAgICAgIHVuaWlucHV0LmRlY29kZShiJ2phJykKIAogCkBAIC0yNjksNTIgKzIy
MywxMCBAQAogCiBjbGFzcyBGaWxlSW5wdXRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAg
ICAjIHRlc3QgaW5wdXQgZW5jb2RpbmcgYXV0by1kZXRlY3Rpb246Ci0gICAgIwotICAgICMgVXAg
dG8gRG9jdXRpbHMgMC4xOCwgYXV0by1kZXRlY3Rpb24gd2FzIG5vdCB1c2VkIHVuZGVyIFB5dGhv
biAzCi0gICAgIyB1bmxlc3MgcmVhZGluZyBhIGZpbGUgd2l0aCBQeXRob24ncyBkZWZhdWx0IGVu
Y29kaW5nIGZhaWxlZAotCi0gICAgZGVmIHRlc3RfYm9tX3V0Zl84KHNlbGYpOgotICAgICAgICAi
IiJEcm9wIG9wdGlvbmFsIEJPTSBmcm9tIHV0Zi04IGVuY29kZWQgZmlsZXMuCi0gICAgICAgICIi
IgotICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6Ci0gICAgICAgICAgICBp
ZiBTVVBQUkVTU19FTkNPRElOR19XQVJOSU5HOgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLmZp
bHRlcndhcm5pbmdzKCdpZ25vcmUnLCBjYXRlZ29yeT1FbmNvZGluZ1dhcm5pbmcpCi0gICAgICAg
ICAgICBzb3VyY2UgPSBkdV9pby5GaWxlSW5wdXQoc291cmNlX3BhdGg9REFUQV9ST09ULyd1dGYt
OC1zaWcucnN0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGlu
Zz1Ob25lKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0V2FybnNSZWdleChEZXByZWNhdGlvbldh
cm5pbmcsICdhdXRvLWRldGVjdGlvbicpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNv
dXJjZS5yZWFkKCkuc3RhcnRzd2l0aCgnR3LDvMOfZScpKQotCi0gICAgZGVmIHRlc3RfYm9tX3V0
Zl8xNihzZWxmKToKLSAgICAgICAgIiIiRHJvcCBCT00gZnJvbSB1dGYtMTYgZW5jb2RlZCBmaWxl
cywgdXNlIGNvcnJlY3QgZW5jb2RpbmcuCi0gICAgICAgICIiIgotICAgICAgICAjIEFzc2VydCBj
b3JyZWN0IGRlY29kaW5nLCBCT00gaXMgZ29uZS4KLSAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRj
aF93YXJuaW5ncygpOgotICAgICAgICAgICAgaWYgU1VQUFJFU1NfRU5DT0RJTkdfV0FSTklORzoK
LSAgICAgICAgICAgICAgICB3YXJuaW5ncy5maWx0ZXJ3YXJuaW5ncygnaWdub3JlJywgY2F0ZWdv
cnk9RW5jb2RpbmdXYXJuaW5nKQotICAgICAgICAgICAgc291cmNlID0gZHVfaW8uRmlsZUlucHV0
KHNvdXJjZV9wYXRoPURBVEFfUk9PVC8ndXRmLTE2LWxlLXNpZy5yc3QnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPU5vbmUpCi0gICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRXYXJuc1JlZ2V4KERlcHJlY2F0aW9uV2FybmluZywgJ2F1dG8tZGV0ZWN0aW9uJyk6
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc291cmNlLnJlYWQoKS5zdGFydHN3aXRoKCdH
csO8w59lJykpCi0KLSAgICBkZWYgdGVzdF9jb2Rpbmdfc2x1ZyhzZWxmKToKLSAgICAgICAgIiIi
VXNlIHNlbGYtZGVjbGFyZWQgZW5jb2RpbmcuCi0gICAgICAgICIiIgotICAgICAgICB3aXRoIHdh
cm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6Ci0gICAgICAgICAgICBpZiBTVVBQUkVTU19FTkNPRElO
R19XQVJOSU5HOgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLmZpbHRlcndhcm5pbmdzKCdpZ25v
cmUnLCBjYXRlZ29yeT1FbmNvZGluZ1dhcm5pbmcpCi0gICAgICAgICAgICBzb3VyY2UgPSBkdV9p
by5GaWxlSW5wdXQoc291cmNlX3BhdGg9REFUQV9ST09ULydsYXRpbjIucnN0JywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz1Ob25lKQotICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0V2FybnNSZWdleChEZXByZWNhdGlvbldhcm5pbmcsICdhdXRvLWRldGVjdGlv
bicpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNvdXJjZS5yZWFkKCkuZW5kc3dpdGgo
J8Wha29kYVxuJykpCi0KICAgICBkZWYgdGVzdF9mYWxsYmFja191dGY4KHNlbGYpOgotICAgICAg
ICAiIiJUcnkgJ3V0Zi04JywgaWYgZW5jb2RpbmcgaXMgbm90IHNwZWNpZmllZCBpbiB0aGUgc291
cmNlLiIiIgotICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6Ci0gICAgICAg
ICAgICBpZiBTVVBQUkVTU19FTkNPRElOR19XQVJOSU5HOgotICAgICAgICAgICAgICAgIHdhcm5p
bmdzLmZpbHRlcndhcm5pbmdzKCdpZ25vcmUnLCBjYXRlZ29yeT1FbmNvZGluZ1dhcm5pbmcpCi0g
ICAgICAgICAgICBzb3VyY2UgPSBkdV9pby5GaWxlSW5wdXQoc291cmNlX3BhdGg9REFUQV9ST09U
Lyd1dGY4LnJzdCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rp
bmc9Tm9uZSkKKyAgICAgICAgIiIiVXNlICd1dGYtOCcsIGlmIGVuY29kaW5nIGlzIHNwZWNpZmll
ZCBhcyBgYE5vbmVgYC4iIiIKKyAgICAgICAgc291cmNlID0gZHVfaW8uRmlsZUlucHV0KHNvdXJj
ZV9wYXRoPURBVEFfUk9PVC8ndXRmOC5yc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZW5jb2Rpbmc9Tm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnR3LDvMOfZVxu
Jywgc291cmNlLnJlYWQoKSkKIAogICAgIGRlZiB0ZXN0X3JlYWRsaW5lcyhzZWxmKToKCk1vZGlm
aWVkOiB0cnVuay9kb2N1dGlscy90ZXN0L3Rlc3RfcHVibGlzaGVyLnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHRydW5rL2RvY3V0aWxzL3Rlc3QvdGVzdF9wdWJsaXNoZXIucHkJMjAyNi0wNi0xMiAyMTo0OTo0
NSBVVEMgKHJldiAxMDM1NSkKKysrIHRydW5rL2RvY3V0aWxzL3Rlc3QvdGVzdF9wdWJsaXNoZXIu
cHkJMjAyNi0wNi0xMiAyMTo0OTo1NiBVVEMgKHJldiAxMDM1NikKQEAgLTE5NiwxNSArMTk2LDYg
QEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nc19vdmVycmlk
ZXM9c2V0dGluZ3MpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIG91dHB1dCkK
IAotICAgICAgICAjIGVuY29kaW5nIGRlY2xhcmF0aW9uIGluIHNvdXJjZSAodXNlZCBpZiBpbnB1
dF9lbmNvZGluZyBpcyBOb25lKQotICAgICAgICAjIGlucHV0IGVuY29kaW5nIGRldGVjdGlvbiB3
aWxsIGJlIHJlbW92ZWQgaW4gRG9jdXRpbHMgMS4wCi0gICAgICAgIHNvdXJjZSA9ICcuLiBlbmNv
ZGluZzogbGF0aW4xXG5cbkdyw7zDn2UnCi0gICAgICAgIHNldHRpbmdzWydpbnB1dF9lbmNvZGlu
ZyddID0gTm9uZQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0V2FybnNSZWdleChEZXByZWNhdGlv
bldhcm5pbmcsICdhdXRvLWRldGVjdGlvbicpOgotICAgICAgICAgICAgb3V0cHV0ID0gY29yZS5w
dWJsaXNoX3N0cmluZyhzb3VyY2UuZW5jb2RlKCdsYXRpbjEnKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3Nfb3ZlcnJpZGVzPXNldHRpbmdzKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUob3V0cHV0LmVuZHN3aXRoKCdHcsO8w59lXG4nKSkKLQogICAg
IGRlZiB0ZXN0X3B1Ymxpc2hfc3RyaW5nX291dHB1dF9lbmNvZGluZyhzZWxmKToKICAgICAgICAg
c2V0dGluZ3MgPSBzZWxmLnNldHRpbmdzIHwgeydvdXRwdXRfZW5jb2RpbmcnOiAnbGF0aW4xJ30K
ICAgICAgICAgc2V0dGluZ3NbJ291dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVyJ10gPSAncmVw
bGFjZScKClRoaXMgd2FzIHNlbnQgYnkgdGhlIFNvdXJjZUZvcmdlLm5ldCBjb2xsYWJvcmF0aXZl
IGRldmVsb3BtZW50IHBsYXRmb3JtLCB0aGUgd29ybGQncyBsYXJnZXN0IE9wZW4gU291cmNlIGRl
dmVsb3BtZW50IHNpdGUuCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkRvY3V0aWxzLWNoZWNraW5zIG1haWxpbmcgbGlzdApEb2N1dGlscy1jaGVja2lu
c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlz
dHMvbGlzdGluZm8vZG9jdXRpbHMtY2hlY2tpbnMK