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

milde--- via Docutils-checkins <[email protected]> Fri, 27 Mar 2026 08:40:56 +0000
Newsgroups gmane.text.docutils.cvs
Message-ID <[email protected]>
UmV2aXNpb246IDEwMzAyCiAgICAgICAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvZG9jdXRp
bHMvY29kZS8xMDMwMgpBdXRob3I6ICAgbWlsZGUKRGF0ZTogICAgIDIwMjYtMDMtMjcgMDg6NDA6
NTYgKzAwMDAgKEZyaSwgMjcgTWFyIDIwMjYpCkxvZyBNZXNzYWdlOgotLS0tLS0tLS0tLQpJbXBy
b3ZlIGhhbmRsaW5nIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2UgbmFtZXMuCgpTZXBhcmF0ZSByZWdp
c3RyYXRpb24gb2YgcmVmZXJlbmNlIG5hbWVzIGFuZCBpZHMuCklmIGxlZ2FjeV9pZHNfIGlzIEZh
bHNlLCBgbm90ZV9pbXBsaWNpdF90YXJnZXQoKWAgZG9lcyBub3QgZ2VuZXJhdGUKYW4gaWRlbnRp
Zmllci4gIFRoaXMgYWxsb3dzIGFuIGV4cGxpY2l0IHRhcmdldCB0byB1c2UgdGhlIG1hdGNoaW5n
CmlkZW50aWZpZXIgaW4gY2FzZSBvZiBhIG5hbWUgY29uZmxpY3QuCgpBZGQgdGVzdCBjYXNlIGZv
ciB0aGUgbmV3IGJlaGF2aW91ci4KCk1vZGlmaWVkIFBhdGhzOgotLS0tLS0tLS0tLS0tLQogICAg
dHJ1bmsvZG9jdXRpbHMvSElTVE9SWS5yc3QKICAgIHRydW5rL2RvY3V0aWxzL1JFTEVBU0UtTk9U
RVMucnN0CiAgICB0cnVuay9kb2N1dGlscy9kb2N1dGlscy9ub2Rlcy5weQogICAgdHJ1bmsvZG9j
dXRpbHMvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9taXNjLnB5CiAgICB0cnVuay9k
b2N1dGlscy9kb2N1dGlscy90cmFuc2Zvcm1zL3JlZmVyZW5jZXMucHkKICAgIHRydW5rL2RvY3V0
aWxzL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfaHlwZXJsaW5rcy5weQoKTW9kaWZpZWQ6IHRy
dW5rL2RvY3V0aWxzL0hJU1RPUlkucnN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL2RvY3V0aWxzL0hJ
U1RPUlkucnN0CTIwMjYtMDMtMjYgMTM6NTI6MjcgVVRDIChyZXYgMTAzMDEpCisrKyB0cnVuay9k
b2N1dGlscy9ISVNUT1JZLnJzdAkyMDI2LTAzLTI3IDA4OjQwOjU2IFVUQyAocmV2IDEwMzAyKQpA
QCAtMjgsNiArMjgsMTYgQEAKICAgICA8dGFyZ2V0PiBlbGVtZW50cyB3aGVuIHRlc3RpbmcgZm9y
IGEgPHRyYW5zaXRpb24+IGF0IHRoZSBiZWdpbiBvciBlbmQKICAgICBvZiBhIDxzZWN0aW9uPiBv
ciB0aGUgPGRvY3VtZW50Pi4KIAorICAtIElmIGxlZ2FjeV9pZHNfIGlzIEZhbHNlLCBgbm90ZV9p
bXBsaWNpdF90YXJnZXQoKWAgZG9lcyBub3QgZ2VuZXJhdGUKKyAgICBhbiBJRC4gVGhpcyBhbGxv
d3MgYW4gZXhwbGljaXQgdGFyZ2V0IHRvIHVzZSB0aGUgbWF0Y2hpbmcgSUQgaW4gY2FzZQorICAg
IG9mIGEgbmFtZSBjb25mbGljdC4KKworICAgIC0gVGhlIG5ldyBpbnRlcm5hbCBhdHRyaWJ1dGUg
YGRvY3VtZW50Lm5hbWVzYCBtYXBzIHJlZmVyZW5jZSBuYW1lcyB0bworICAgICAgdGhlIHJlZmVy
ZW5jZWQgZWxlbWVudHMgKG9yIGBgTm9uZWBgIGlmIHRoZSBuYW1lIGlzIGEgZHVwbGljYXRlKS4K
KyAgICAtIE5ldyBtZXRob2QgYGRvY3VtZW50Lm5vdGVfbmFtZXMoKWAuCisgICAgLSBgZG9jdW1l
bnQuc2V0X2lkKClgIGFsc28gdXBkYXRlcyB0aGUgYGRvY3VtZW50Lm5hbWVpZHNgIG1hcC4KKyAg
ICAtIGBkb2N1bWVudC5zZXRfZHVwbGljYXRlX25hbWUoKWAgcmVwbGFjZXMgYHNldF9kdXBsaWNh
dGVfbmFtZV9pZCgpYC4KKwogKiBkb2N1dGlscy9wYXJzZXJzL3JzdC9fX2luaXRfXy5weQogCiAg
IC0gTmV3IGNvbmZpZ3VyYXRpb24gc2V0dGluZyBgbGVnYWN5X2lkc2BfLgoKTW9kaWZpZWQ6IHRy
dW5rL2RvY3V0aWxzL1JFTEVBU0UtTk9URVMucnN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL2RvY3V0
aWxzL1JFTEVBU0UtTk9URVMucnN0CTIwMjYtMDMtMjYgMTM6NTI6MjcgVVRDIChyZXYgMTAzMDEp
CisrKyB0cnVuay9kb2N1dGlscy9SRUxFQVNFLU5PVEVTLnJzdAkyMDI2LTAzLTI3IDA4OjQwOjU2
IFVUQyAocmV2IDEwMzAyKQpAQCAtMTgzLDYgKzE4Myw5IEBACiAgIGB3cml0ZXJzLmxhdGV4MmUu
TGFUZVhUcmFuc2xhdG9yLnZpc2l0X2RvY2luZm9faXRlbSgpYAogICAoaWdub3JlZCBzaW5jZSBE
b2N1dGlsc8KgMC4yMikgaW4gRG9jdXRpbHPCoDAuMjQuCiAKKyogUmVtb3ZlIGBub2Rlcy5zZXRf
bmFtZV9pZF9tYXAoKWAgaW4gRG9jdXRpbHPCoDEuMAorICAobm90IHVzZWQgc2luY2UgRG9jdXRp
bHPCoDAuMjMpLgorCiAqIFJlbW92ZSBgcGFyc2Vycy5yc3QuZGlyZWN0aXZlcy5DU1ZUYWJsZS5I
ZWFkZXJEaWFsZWN0YAogICBpbiBEb2N1dGlsc8KgMS4wLgogCkBAIC0zMTEsOSArMzE0LDIxIEBA
CiBDb25maWd1cmF0aW9uIGNoYW5nZXMKICAgLSBOZXcgc2V0dGluZyBgbGVnYWN5X2lkc2BfLgog
CitOZXcgb2JqZWN0cworICBgbm9kZXMuZG9jdW1lbnQubmFtZXNgOgorICAgIEludGVybmFsIGF0
dHJpYnV0ZSBtYXBwaW5nIGByZWZlcmVuY2UgbmFtZXNgXyB0byB0aGUKKyAgICByZWZlcmVuY2Vk
IGVsZW1lbnRzIChvciBgYE5vbmVgYCBpZiB0aGUgbmFtZSBpcyBhIGR1cGxpY2F0ZSkuCisgIGBu
b2Rlcy5kb2N1bWVudC5ub3RlX25hbWVzKClgOgorICAgIFJlZ2lzdGVyIGFuIGVsZW1lbnQncyBu
YW1lcywgY2hlY2sgZm9yIGR1cGxpY2F0ZXMuCisgIGBub2Rlcy5kb2N1bWVudC5zZXRfZHVwbGlj
YXRlX25hbWUoKWAKKyAgICBDYWxsZWQgYnkgYG5vZGVzLmRvY3VtZW50Lm5vdGVfbmFtZXMoKWAg
dG8gaGFuZGxlIGR1cGxpY2F0ZSBuYW1lcy4KKyAgICBQcm92aXNpb25hbC4KKwogUmVtb3ZlZCBv
YmplY3RzCiAgIGBwYXJzZXJzLnJzdC5kaXJlY3RpdmVzLnRhYmxlcy5DU1ZUYWJsZS5jaGVja19y
ZXF1aXJlbWVudHMoKWAKICAgICAgbm90IHJlcXVpcmVkIHdpdGggUHl0aG9uwqAzLgorICBgbm9k
ZXMuZG9jdW1lbnQuc2V0X2R1cGxpY2F0ZV9uYW1lX2lkKClgCisgICAgIGludGVybmFsIG1ldGhv
ZCwgcmVwbGFjZWQgYnkgYG5vZGVzLmRvY3VtZW50LnNldF9kdXBsaWNhdGVfbmFtZSgpYC4KIAog
CiBSZWxlYXNlIDAuMjIuNCAoMjAyNS0xMi0xOCkKQEAgLTE1ODEsNiArMTU5Niw3IEBACiAuLiBf
RG9jdXRpbHMgWE1MOiBkb2NzL3JlZi9kb2N0cmVlLmh0bWwKIC4uIF8iY29sd2lkdGgiIGF0dHJp
YnV0ZTogZG9jcy9yZWYvZG9jdHJlZS5odG1sI2NvbHdpZHRoCiAuLiBfPGRvY3Rlc3RfYmxvY2s+
OiBkb2NzL3JlZi9kb2N0cmVlLmh0bWwjZG9jdGVzdC1ibG9jaworLi4gX3JlZmVyZW5jZSBuYW1l
czogIGRvY3MvcmVmL2RvY3RyZWUuaHRtbCNyZWZlcmVuY2UtbmFtZXMKIC4uIF88dGFyZ2V0Pjog
ZG9jcy9yZWYvZG9jdHJlZS5odG1sI3RhcmdldAogCiAuLiBfImNsYXNzIjogZG9jcy9yZWYvcnN0
L2RpcmVjdGl2ZXMuaHRtbCNjbGFzcwoKTW9kaWZpZWQ6IHRydW5rL2RvY3V0aWxzL2RvY3V0aWxz
L25vZGVzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL2RvY3V0aWxzL2RvY3V0aWxzL25vZGVzLnB5
CTIwMjYtMDMtMjYgMTM6NTI6MjcgVVRDIChyZXYgMTAzMDEpCisrKyB0cnVuay9kb2N1dGlscy9k
b2N1dGlscy9ub2Rlcy5weQkyMDI2LTAzLTI3IDA4OjQwOjU2IFVUQyAocmV2IDEwMzAyKQpAQCAt
MTg5MCw2ICsxODkwLDEyIEBACiAgICAgICAgIHNlbGYucmVmaWRzOiBkaWN0W3N0ciwgbGlzdFtF
bGVtZW50XV0gPSB7fQogICAgICAgICAiIiIoSW5jb21wbGV0ZSkgTWFwcGluZyBvZiBpZHMgdG8g
bGlzdHMgb2YgcmVmZXJlbmNpbmcgbm9kZXMuIiIiCiAKKyAgICAgICAgc2VsZi5uYW1lczogZGlj
dFtzdHIsIEVsZW1lbnR8Tm9uZV0gPSB7fQorICAgICAgICAiIiJNYXBwaW5nIG9mIG5hbWVzIHRv
IG5vZGVzIChvciBgYE5vbmVgYCBpZiBuYW1lIGlzIGEgZHVwbGljYXRlKS4iIiIKKworICAgICAg
ICBzZWxmLmlkczogZGljdFtzdHIsIEVsZW1lbnRdID0ge30KKyAgICAgICAgIiIiTWFwcGluZyBv
ZiBpZHMgdG8gbm9kZXMuIiIiCisKICAgICAgICAgc2VsZi5uYW1laWRzOiBkaWN0W3N0ciwgc3Ry
XSA9IHt9CiAgICAgICAgICIiIk1hcHBpbmcgb2YgbmFtZXMgdG8gdW5pcXVlIGlkJ3MuIiIiCiAK
QEAgLTE4OTcsOSArMTkwMyw2IEBACiAgICAgICAgICIiIk1hcHBpbmcgb2YgbmFtZXMgdG8gaHlw
ZXJsaW5rIHR5cGUuIFRydWU6IGV4cGxpY2l0LCBGYWxzZTogaW1wbGljaXQuCiAgICAgICAgICIi
IgogCi0gICAgICAgIHNlbGYuaWRzOiBkaWN0W3N0ciwgRWxlbWVudF0gPSB7fQotICAgICAgICAi
IiJNYXBwaW5nIG9mIGlkcyB0byBub2Rlcy4iIiIKLQogICAgICAgICBzZWxmLmZvb3Rub3RlX3Jl
ZnM6IGRpY3Rbc3RyLCBsaXN0W2Zvb3Rub3RlX3JlZmVyZW5jZV1dID0ge30KICAgICAgICAgIiIi
TWFwcGluZyBvZiBmb290bm90ZSBsYWJlbHMgdG8gbGlzdHMgb2YgZm9vdG5vdGVfcmVmZXJlbmNl
IG5vZGVzLiIiIgogCkBAIC0xOTczLDE5ICsxOTc2LDM1IEBACiAgICAgICAgICAgICAgICBtc2du
b2RlOiBFbGVtZW50IHwgTm9uZSA9IE5vbmUsCiAgICAgICAgICAgICAgICBzdWdnZXN0ZWRfcHJl
Zml4OiBzdHIgPSAnJywKICAgICAgICAgICAgICAgICkgLT4gc3RyOgotICAgICAgICBpZiBub2Rl
WydpZHMnXToKLSAgICAgICAgICAgICMgcmVnaXN0ZXIgYW5kIGNoZWNrIGZvciBkdXBsaWNhdGVz
Ci0gICAgICAgICAgICBmb3IgaWQgaW4gbm9kZVsnaWRzJ106Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5pZHMuc2V0ZGVmYXVsdChpZCwgbm9kZSkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLmlkc1tp
ZF0gaXMgbm90IG5vZGU6Ci0gICAgICAgICAgICAgICAgICAgIG1zZyA9IHNlbGYucmVwb3J0ZXIu
ZXJyb3IoZidEdXBsaWNhdGUgSUQ6ICJ7aWR9IiB1c2VkIGJ5ICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmJ3tzZWxmLmlkc1tpZF0uc3RhcnR0YWcoKX0g
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYnYW5kIHtu
b2RlLnN0YXJ0dGFnKCl9JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBiYXNlX25vZGU9bm9kZSkKLSAgICAgICAgICAgICAgICAgICAgaWYgbXNnbm9kZSBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIG1zZ25vZGUgKz0gbXNnCi0gICAg
ICAgICAgICByZXR1cm4gaWQKLSAgICAgICAgIyBnZW5lcmF0ZSBhbmQgc2V0IGlkCisgICAgICAg
ICIiIgorICAgICAgICBDaGVjay9zZXQgaWRlbnRpZmllcnMgb2YgZWxlbWVudCBgbm9kZWAuIFJl
dHVybiBsYXN0IGlkZW50aWZpZXIuCisKKyAgICAgICAgQ2hlY2sgYG5vZGVgcyBpZGVudGlmaWVy
cyBmb3IgZHVwbGljYXRlcywKKyAgICAgICAgY3JlYXRlIGEgbmV3IGlkZW50aWZpZXIgaWYgdGhl
cmUgYXJlIG5vbmUuCisgICAgICAgIFVwZGF0ZSBgZG9jdW1lbnQuaWRzYCBhbmQgYGRvY3VtZW50
Lm5hbWVpZHNgLgorCisgICAgICAgIFByb3Zpc2lvbmFsLgorICAgICAgICAiIiIKKyAgICAgICAg
aWYgbm90IG5vZGVbJ2lkcyddOgorICAgICAgICAgICAgbm9kZVsnaWRzJ10uYXBwZW5kKHNlbGYu
Y3JlYXRlX2lkKG5vZGUsIHN1Z2dlc3RlZF9wcmVmaXgpKQorICAgICAgICAjIHJlZ2lzdGVyIGFu
ZCBjaGVjayBmb3IgZHVwbGljYXRlcworICAgICAgICBmb3IgaWQgaW4gbm9kZVsnaWRzJ106Cisg
ICAgICAgICAgICBzZWxmLmlkcy5zZXRkZWZhdWx0KGlkLCBub2RlKQorICAgICAgICAgICAgaWYg
c2VsZi5pZHNbaWRdIGlzIG5vdCBub2RlOgorICAgICAgICAgICAgICAgIG1zZyA9IHNlbGYucmVw
b3J0ZXIuZXJyb3IoZidEdXBsaWNhdGUgSUQ6ICJ7aWR9IiB1c2VkIGJ5ICcKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYne3NlbGYuaWRzW2lkXS5zdGFydHRhZygp
fSAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmJ2FuZCB7bm9k
ZS5zdGFydHRhZygpfScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYXNlX25vZGU9bm9kZSkKKyAgICAgICAgICAgICAgICBpZiBtc2dub2RlIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgICAgICBtc2dub2RlICs9IG1zZworICAgICAgICBmb3IgbmFtZSBp
biBub2RlWyduYW1lcyddOgorICAgICAgICAgICAgc2VsZi5uYW1laWRzW25hbWVdID0gaWQKKyAg
ICAgICAgcmV0dXJuIGlkCisKKyAgICBkZWYgY3JlYXRlX2lkKHNlbGYsIG5vZGU6IEVsZW1lbnQs
IHN1Z2dlc3RlZF9wcmVmaXg6IHN0ciA9ICcnKSAtPiBzdHI6CisgICAgICAgICMgSW50ZXJuYWwg
YXV4aWxpYXJ5IG1ldGhvZCBmb3Igc2V0X2lkKCk6CisgICAgICAgICMgZ2VuZXJhdGUgYW5kIHJl
dHVybiBhIHN1aXRhYmxlIGlkZW50aWZpZXIgZm9yIGBub2RlYC4KKyAgICAgICAgIyBTZWUgYWxz
byBtYWtlX2lkKCkKICAgICAgICAgaWRfcHJlZml4ID0gc2VsZi5zZXR0aW5ncy5pZF9wcmVmaXgK
ICAgICAgICAgYXV0b19pZF9wcmVmaXggPSBzZWxmLnNldHRpbmdzLmF1dG9faWRfcHJlZml4CiAg
ICAgICAgIGJhc2VfaWQgPSAnJwpAQCAtMjAwNCw2ICsyMDIzLDggQEAKICAgICAgICAgICAgICAg
ICAjIGRpc2FtYmlndWF0ZSBuYW1lLWRlcml2ZWQgSUQKICAgICAgICAgICAgICAgICAjIFRPRE86
IHJlbW92ZSBzZWNvbmQgY29uZGl0aW9uIGFmdGVyIGFubm91bmNpbmcgY2hhbmdlCiAgICAgICAg
ICAgICAgICAgcHJlZml4ID0gaWQgKyAnLScKKyAgICAgICAgICAgIGVsaWYgbm9kZVsnZHVwbmFt
ZXMnXSBhbmQgbWFrZV9pZChub2RlWydkdXBuYW1lcyddWzBdKToKKyAgICAgICAgICAgICAgICBw
cmVmaXggPSBtYWtlX2lkKG5vZGVbJ2R1cG5hbWVzJ11bMF0pICsgJy0nCiAgICAgICAgICAgICBl
bHNlOgogICAgICAgICAgICAgICAgIHByZWZpeCA9IGlkX3ByZWZpeCArIGF1dG9faWRfcHJlZml4
CiAgICAgICAgICAgICAgICAgaWYgcHJlZml4LmVuZHN3aXRoKCclJyk6CkBAIC0yMDE0LDggKzIw
MzUsNiBAQAogICAgICAgICAgICAgICAgIGlkID0gZid7cHJlZml4fXtzZWxmLmlkX2NvdW50ZXJb
cHJlZml4XX0nCiAgICAgICAgICAgICAgICAgaWYgaWQgbm90IGluIHNlbGYuaWRzOgogICAgICAg
ICAgICAgICAgICAgICBicmVhawotICAgICAgICBub2RlWydpZHMnXS5hcHBlbmQoaWQpCi0gICAg
ICAgIHNlbGYuaWRzW2lkXSA9IG5vZGUKICAgICAgICAgcmV0dXJuIGlkCiAKICAgICBkZWYgc2V0
X25hbWVfaWRfbWFwKHNlbGYsCkBAIC0yMDI0LDM2ICsyMDQzLDU0IEBACiAgICAgICAgICAgICAg
ICAgICAgICAgICBtc2dub2RlOiBFbGVtZW50IHwgTm9uZSA9IE5vbmUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBleHBsaWNpdDogYm9vbCA9IEZhbHNlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgKSAtPiBOb25lOgorICAgICAgICAiIiJEZXByZWNhdGVkLiBXaWxsIGJlIHJlbW92ZWQgaW4g
RG9jdXRpbHMgMS4wLiIiIgorICAgICAgICB3YXJuaW5ncy53YXJuKCdub2Rlcy5kb2N1bWVudC5z
ZXRfbmFtZV9pZF9tYXAoKSB3aWxsIGJlIHJlbW92ZWQnCisgICAgICAgICAgICAgICAgICAgICAg
JyBpbiBEb2N1dGlscyAxLjAuJywgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCisg
ICAgICAgIHNlbGYubm90ZV9uYW1lcyhub2RlLCBtc2dub2RlLCBleHBsaWNpdCkKKyAgICAgICAg
Zm9yIG5hbWUgaW4gbm9kZVsnbmFtZXMnXToKKyAgICAgICAgICAgIHNlbGYubmFtZWlkc1tuYW1l
XSA9IGlkCisKKyAgICBkZWYgc2V0X2R1cGxpY2F0ZV9uYW1lKHNlbGYsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBub2RlOiBFbGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZTogc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnbm9kZTogRWxlbWVudCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxpY2l0OiBib29sLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKSAtPiBOb25lOgogICAgICAgICAiIiIKLSAgICAgICAgVXBkYXRlIHRo
ZSBuYW1lL2lkIG1hcHBpbmdzLgorICAgICAgICBIYW5kbGUgbmFtZSBjb25mbGljdHMgYWNjb3Jk
aW5nIHRvIHRoZSBgclNUIHNwZWNpZmljYXRpb25gX18uCiAKLSAgICAgICAgYHNlbGYubmFtZWlk
c2AgbWFwcyBuYW1lcyB0byBJRHMuIFRoZSB2YWx1ZSBgYE5vbmVgYCBpbmRpY2F0ZXMKLSAgICAg
ICAgdGhhdCB0aGUgbmFtZSBpcyBhICJkdXBuYW1lIiAoaS5lLiB0aGVyZSBhcmUgYWxyZWFkeSBh
dCBsZWFzdAotICAgICAgICB0d28gdGFyZ2V0cyB3aXRoIHRoZSBzYW1lIG5hbWUgYW5kIHR5cGUp
LgorICAgICAgICBDYWxsZWQgYnkgYHNlbGYubm90ZV9uYW1lcygpYCB3aGVuIHRoZSByZWZlcmVu
Y2UgbmFtZSBgbmFtZWAKKyAgICAgICAgb2YgdGhlIGVsZW1lbnQgYG5vZGVgIGlzIGFscmVhZHkg
cmVnaXN0ZXJlZCBpbiBgc2VsZi5uYW1lc2AuCiAKLSAgICAgICAgYHNlbGYubmFtZXR5cGVzYCBt
YXBzIG5hbWVzIHRvIGJvb2xlYW5zIHJlcHJlc2VudGluZwotICAgICAgICBoeXBlcmxpbmsgdGFy
Z2V0IHR5cGUgKFRydWU9PWV4cGxpY2l0LCBGYWxzZT09aW1wbGljaXQpLgorICAgICAgICBgc2Vs
Zi5uYW1lc2AgbWFwcyBuYW1lcyB0byBlbGVtZW50cy4gIFRoZSB2YWx1ZSBgYE5vbmVgYCBpbmRp
Y2F0ZXMKKyAgICAgICAgdGhhdCB0aGUgbmFtZSBpcyBhICJkdXBuYW1lIiAoaS5lLiB0aGUgZG9j
dW1lbnQgY29udGFpbnMgdHdvIG9yCisgICAgICAgIG1vcmUgZWxlbWVudHMgd2l0aCB0aGUgc2Ft
ZSBuYW1lIGFuZCB0YXJnZXQgdHlwZSkuCiAKLSAgICAgICAgVGhlIGZvbGxvd2luZyBzdGF0ZSB0
cmFuc2l0aW9uIHRhYmxlIHNob3dzIGhvdyBgc2VsZi5uYW1laWRzYCBpdGVtcwotICAgICAgICAo
ImlkIikgYW5kIGBzZWxmLm5hbWV0eXBlc2AgaXRlbXMgKCJ0eXBlIikgY2hhbmdlIHdpdGggbmV3
IGlucHV0Ci0gICAgICAgIChhIGNhbGwgdG8gdGhpcyBtZXRob2QpLCBhbmQgd2hhdCBhY3Rpb25z
IGFyZSBwZXJmb3JtZWQ6CisgICAgICAgIGBzZWxmLm5hbWV0eXBlc2AgbWFwcyBuYW1lcyB0byBi
b29sZWFucyByZXByZXNlbnRpbmcgdGhlIHRhcmdldCB0eXBlCisgICAgICAgIChUcnVlID0gImV4
cGxpY2l0IiwgRmFsc2UgPSAiaW1wbGljaXQiKS4KIAotICAgICAgICA9PT09PT09PSAgPT09PSAg
PT09PT09PT0gID09PT0gID09PT09PT09ICA9PT09PT09PSA9PT09PT09ICA9PT09PT0KLSAgICAg
ICAgIElucHV0ICAgICAgT2xkIFN0YXRlICAgICAgTmV3IFN0YXRlICAgICAgICAgICAgQWN0aW9u
ICAgICAgTm90ZXMKLSAgICAgICAgLS0tLS0tLS0gIC0tLS0tLS0tLS0tLS0tICAtLS0tLS0tLS0t
LS0tLSAgLS0tLS0tLS0tLS0tLS0tLSAgLS0tLS0tCi0gICAgICAgIHR5cGUgICAgICBpZCAgICB0
eXBlICAgICAgaWQgICAgdHlwZSAgICAgIGR1cG5hbWUgIHJlcG9ydAotICAgICAgICA9PT09PT09
PSAgPT09PSAgPT09PT09PT0gID09PT0gID09PT09PT09ICA9PT09PT09PSA9PT09PT09ICA9PT09
PT0KLSAgICAgICAgZXhwbGljaXQgICAgICAgICAgICAgICAgICBuZXcgICBleHBsaWNpdAotICAg
ICAgICBpbXBsaWNpdCAgICAgICAgICAgICAgICAgIG5ldyAgIGltcGxpY2l0Ci0gICAgICAgIGV4
cGxpY2l0ICBvbGQgICBleHBsaWNpdCAgTm9uZSAgZXhwbGljaXQgIG5ldyxvbGQgIFdBUk5JTkcg
IFsjZXhdXwotICAgICAgICBpbXBsaWNpdCAgb2xkICAgZXhwbGljaXQgIG9sZCAgIGV4cGxpY2l0
ICBuZXcgICAgICBJTkZPICAgICBbI2V4XV8KLSAgICAgICAgZXhwbGljaXQgIG9sZCAgIGltcGxp
Y2l0ICBuZXcgICBleHBsaWNpdCAgb2xkICAgICAgSU5GTyAgICAgWyNleF1fCi0gICAgICAgIGlt
cGxpY2l0ICBvbGQgICBpbXBsaWNpdCAgTm9uZSAgaW1wbGljaXQgIG5ldyxvbGQgIElORk8gICAg
IFsjZXhdXwotICAgICAgICBleHBsaWNpdCAgTm9uZSAgZXhwbGljaXQgIE5vbmUgIGV4cGxpY2l0
ICBuZXcgICAgICBXQVJOSU5HCi0gICAgICAgIGltcGxpY2l0ICBOb25lICBleHBsaWNpdCAgTm9u
ZSAgZXhwbGljaXQgIG5ldyAgICAgIElORk8KKyAgICAgICAgVGhlIGZvbGxvd2luZyBzdGF0ZSB0
cmFuc2l0aW9uIHRhYmxlIHNob3dzIGhvdyB0aGUgdmFsdWVzCisgICAgICAgIG9mIGBzZWxmLm5h
bWVzYCAoIm5hbWUiKSBhbmQgYHNlbGYubmFtZXR5cGVzYCAoInR5cGUiKSBpdGVtcworICAgICAg
ICB3aXRoIGtleSBgbmFtZWAgY2hhbmdlIGFuZCB3aGljaCBhY3Rpb25zIGFyZSBwZXJmb3JtZWQu
CisKKyAgICAgICAgIk9sZCIgaXMgdGhlIGVsZW1lbnQgd2l0aCBjb25mbGljdGluZyByZWZlcmVu
Y2UgbmFtZSwKKyAgICAgICAgIm5ldyIgaXMgdGhlIGVsZW1lbnQgc3BlY2lmaWVkIGJ5IHRoZSBh
cmd1bWVudCBgbm9kZWAuCisgICAgICAgIFRoZSAiSW5wdXQgdHlwZSIgaXMgc3BlY2lmaWVkIGJ5
IHRoZSBhcmd1bWVudCBgZXhwbGljaXRgLgorCisgICAgICAgID09PT09PT09ICA9PT09ICA9PT09
PT09PSAgPT09PSAgPT09PT09PT0gID09PT09PT09PT09PT09PSAgPT09PT09PQorICAgICAgICBJ
bnB1dCAgICAgT2xkIFN0YXRlICAgICAgIE5ldyBTdGF0ZSAgICAgICBBY3Rpb24KKyAgICAgICAg
LS0tLS0tLS0gIC0tLS0tLS0tLS0tLS0tICAtLS0tLS0tLS0tLS0tLSAgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgIHR5cGUgICAgICBuYW1lICB0eXBlICAgICAgbmFtZSAgdHlwZSAg
ICAgIGludmFsaWRhdGUgWyNdXyAgcmVwb3J0CisgICAgICAgID09PT09PT09ICA9PT09ICA9PT09
PT09PSAgPT09PSAgPT09PT09PT0gID09PT09PT09PT09PT09PSAgPT09PT09PQorICAgICAgICBl
eHBsaWNpdCAgb2xkICAgZXhwbGljaXQgIE5vbmUgIGV4cGxpY2l0ICBuZXcsb2xkIFsjZXhdXyAg
IFdBUk5JTkcKKyAgICAgICAgaW1wbGljaXQgIG9sZCAgIGV4cGxpY2l0ICBvbGQgICBleHBsaWNp
dCAgbmV3ICAgICAgICAgICAgICBJTkZPCisgICAgICAgIGV4cGxpY2l0ICBvbGQgICBpbXBsaWNp
dCAgbmV3ICAgZXhwbGljaXQgIG9sZCAgICAgICAgICAgICAgSU5GTworICAgICAgICBpbXBsaWNp
dCAgb2xkICAgaW1wbGljaXQgIE5vbmUgIGltcGxpY2l0ICBuZXcsb2xkIFsjZXhdXyAgIElORk8K
KyAgICAgICAgZXhwbGljaXQgIE5vbmUgIGV4cGxpY2l0ICBOb25lICBleHBsaWNpdCAgbmV3ICAg
ICAgICAgICAgICBXQVJOSU5HCisgICAgICAgIGltcGxpY2l0ICBOb25lICBleHBsaWNpdCAgTm9u
ZSAgZXhwbGljaXQgIG5ldyAgICAgICAgICAgICAgSU5GTwogICAgICAgICBleHBsaWNpdCAgTm9u
ZSAgaW1wbGljaXQgIG5ldyAgIGV4cGxpY2l0Ci0gICAgICAgIGltcGxpY2l0ICBOb25lICBpbXBs
aWNpdCAgTm9uZSAgaW1wbGljaXQgIG5ldyAgICAgIElORk8KLSAgICAgICAgPT09PT09PT0gID09
PT0gID09PT09PT09ICA9PT09ICA9PT09PT09PSAgPT09PT09PT0gPT09PT09PSAgPT09PT09Cisg
ICAgICAgIGltcGxpY2l0ICBOb25lICBpbXBsaWNpdCAgTm9uZSAgaW1wbGljaXQgIG5ldyAgICAg
ICAgICAgICAgSU5GTworICAgICAgICA9PT09PT09PSAgPT09PSAgPT09PT09PT0gID09PT0gID09
PT09PT09ICA9PT09PT09PT09PT09PT0gID09PT09PT0KIAogICAgICAgICAuLiBbI10gV2hlbiAi
aW52YWxpZGF0aW5nIiBhbiBlbGVtZW50LCBgbmFtZWAgaXMgdHJhbnNmZXJyZWQgZnJvbQogICAg
ICAgICAgICB0aGUgZWxlbWVudCdzICJuYW1lIiBhdHRyaWJ1dGUgdG8gaXRzICJkdXBuYW1lcyIg
YXR0cmlidXRlLgpAQCAtMjA2NCwzMiArMjEwMSwxNSBAQAogICAgICAgICBfXyBodHRwczovL2Rv
Y3V0aWxzLnNvdXJjZWZvcmdlLmlvL2RvY3MvcmVmL3JzdC9yZXN0cnVjdHVyZWR0ZXh0Lmh0bWwK
ICAgICAgICAgICAgI2ltcGxpY2l0LWh5cGVybGluay10YXJnZXRzCiAKLSAgICAgICAgUHJvdmlz
aW9uYWwuIFRoZXJlIHdpbGwgYmUgY2hhbmdlcyB0byBwcmVmZXIgZXhwbGljaXQgcmVmZXJlbmNl
IG5hbWVzCi0gICAgICAgIGFzIGJhc2UgZm9yIGFuIGVsZW1lbnQncyBJRC4KKyAgICAgICAgUHJv
dmlzaW9uYWwuCiAgICAgICAgICIiIgotICAgICAgICBmb3IgbmFtZSBpbiB0dXBsZShub2RlWydu
YW1lcyddKToKLSAgICAgICAgICAgIGlmIG5hbWUgaW4gc2VsZi5uYW1laWRzOgotICAgICAgICAg
ICAgICAgIHNlbGYuc2V0X2R1cGxpY2F0ZV9uYW1lX2lkKG5vZGUsIGlkLCBuYW1lLCBtc2dub2Rl
LCBleHBsaWNpdCkKLSAgICAgICAgICAgICAgICAjIGF0dGVudGlvbjogbW9kaWZpZXMgbm9kZVsn
bmFtZXMnXQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLm5hbWVpZHNb
bmFtZV0gPSBpZAotICAgICAgICAgICAgICAgIHNlbGYubmFtZXR5cGVzW25hbWVdID0gZXhwbGlj
aXQKLQotICAgIGRlZiBzZXRfZHVwbGljYXRlX25hbWVfaWQoc2VsZiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5vZGU6IEVsZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZDogc3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogc3RyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnbm9kZTogRWxlbWVudCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4cGxpY2l0OiBib29sLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKSAtPiBOb25lOgotICAgICAgICBvbGRfaWQgPSBzZWxmLm5hbWVpZHNbbmFt
ZV0gICMgTm9uZSBpZiBuYW1lIGlzIG9ubHkgZHVwbmFtZQorICAgICAgICBvbGRfbm9kZSA9IHNl
bGYubmFtZXNbbmFtZV0gICMgTm9uZSBpZiBuYW1lIGlzIG9ubHkgZHVwbmFtZQogICAgICAgICBv
bGRfZXhwbGljaXQgPSBzZWxmLm5hbWV0eXBlc1tuYW1lXQotICAgICAgICBvbGRfbm9kZSA9IHNl
bGYuaWRzLmdldChvbGRfaWQpCiAgICAgICAgIGxldmVsID0gMCAgIyBzeXN0ZW0gbWVzc2FnZSBs
ZXZlbDogMS1pbmZvLCAyLXdhcm5pbmcKIAogICAgICAgICBzZWxmLm5hbWV0eXBlc1tuYW1lXSA9
IG9sZF9leHBsaWNpdCBvciBleHBsaWNpdAogCi0gICAgICAgIGlmIG9sZF9pZCBpcyBub3QgTm9u
ZSBhbmQgKAorICAgICAgICBpZiBvbGRfbm9kZSBpcyBub3QgTm9uZSBhbmQgKAogICAgICAgICAg
ICAgJ3JlZm5hbWUnIGluIG5vZGUgYW5kIG5vZGVbJ3JlZm5hbWUnXSA9PSBvbGRfbm9kZS5nZXQo
J3JlZm5hbWUnKQogICAgICAgICAgICAgb3IgJ3JlZnVyaScgaW4gbm9kZSBhbmQgbm9kZVsncmVm
dXJpJ10gPT0gb2xkX25vZGUuZ2V0KCdyZWZ1cmknKQogICAgICAgICAgICAgKToKQEAgLTIxMDMs
MTIgKzIxMjMsMTMgQEAKICAgICAgICAgICAgICAgICBsZXZlbCA9IDIKICAgICAgICAgICAgICAg
ICBzID0gZidEdXBsaWNhdGUgZXhwbGljaXQgdGFyZ2V0IG5hbWU6ICJ7bmFtZX0iLicKICAgICAg
ICAgICAgICAgICBkdXBuYW1lKG5vZGUsIG5hbWUpCi0gICAgICAgICAgICAgICAgaWYgb2xkX2lk
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGlmIG9sZF9ub2RlIGlzIG5vdCBOb25lOgog
ICAgICAgICAgICAgICAgICAgICBkdXBuYW1lKG9sZF9ub2RlLCBuYW1lKQorICAgICAgICAgICAg
ICAgICAgICBzZWxmLm5hbWVzW25hbWVdID0gTm9uZQogICAgICAgICAgICAgICAgICAgICBzZWxm
Lm5hbWVpZHNbbmFtZV0gPSBOb25lCiAgICAgICAgICAgICBlbHNlOiAgIyBuZXcgZXhwbGljaXQs
IG9sZCBpbXBsaWNpdCAtPiBvdmVycmlkZQotICAgICAgICAgICAgICAgIHNlbGYubmFtZWlkc1tu
YW1lXSA9IGlkCi0gICAgICAgICAgICAgICAgaWYgb2xkX2lkIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgICAgIHNlbGYubmFtZXNbbmFtZV0gPSBub2RlCisgICAgICAgICAgICAgICAgaWYgb2xk
X25vZGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIGxldmVsID0gMQogICAgICAg
ICAgICAgICAgICAgICBzID0gZidUYXJnZXQgbmFtZSBvdmVycmlkZXMgaW1wbGljaXQgdGFyZ2V0
IG5hbWUgIntuYW1lfSIuJwogICAgICAgICAgICAgICAgICAgICBkdXBuYW1lKG9sZF9ub2RlLCBu
YW1lKQpAQCAtMjExNiwxNSArMjEzNywxNyBAQAogICAgICAgICAgICAgbGV2ZWwgPSAxCiAgICAg
ICAgICAgICBzID0gZidEdXBsaWNhdGUgaW1wbGljaXQgdGFyZ2V0IG5hbWU6ICJ7bmFtZX0iLicK
ICAgICAgICAgICAgIGR1cG5hbWUobm9kZSwgbmFtZSkKLSAgICAgICAgICAgIGlmIG9sZF9pZCBp
cyBub3QgTm9uZSBhbmQgbm90IG9sZF9leHBsaWNpdDoKKyAgICAgICAgICAgIGlmIG9sZF9ub2Rl
IGlzIG5vdCBOb25lIGFuZCBub3Qgb2xkX2V4cGxpY2l0OgogICAgICAgICAgICAgICAgIGR1cG5h
bWUob2xkX25vZGUsIG5hbWUpCisgICAgICAgICAgICAgICAgc2VsZi5uYW1lc1tuYW1lXSA9IE5v
bmUKICAgICAgICAgICAgICAgICBzZWxmLm5hbWVpZHNbbmFtZV0gPSBOb25lCi0KKyAgICAgICAg
ICAgICAgICBzZWxmLnNldF9pZChvbGRfbm9kZSkgICMgc2V0IGlkIHRvIGdldCBydW5uaW5nIG51
bWJlcnMgcmlnaHQKICAgICAgICAgaWYgbGV2ZWw6Ci0gICAgICAgICAgICBiYWNrcmVmcyA9IFtp
ZF0KICAgICAgICAgICAgICMgZG9uJ3QgYWRkIGJhY2tyZWYgaWQgZm9yIGVtcHR5IHRhcmdldHMg
KG5vdCBzaG93biBpbiBvdXRwdXQpCiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIHRh
cmdldCkgYW5kICdyZWZ1cmknIGluIG5vZGU6CiAgICAgICAgICAgICAgICAgYmFja3JlZnMgPSBb
XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBiYWNrcmVmcyA9IFtzZWxmLnNl
dF9pZChub2RlKV0KICAgICAgICAgICAgIG1zZyA9IHNlbGYucmVwb3J0ZXIuc3lzdGVtX21lc3Nh
Z2UobGV2ZWwsIHMsIGJhY2tyZWZzPWJhY2tyZWZzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBiYXNlX25vZGU9bm9kZSkKICAgICAgICAgICAgICMgdHJ5
IGFwcGVuZGluZyBuZWFyIHRvIHRoZSBwcm9ibGVtOgpAQCAtMjEzMSwyMiArMjE1NCw0MSBAQAog
ICAgICAgICAgICAgaWYgbXNnbm9kZSBpcyBub3QgTm9uZSBhbmQgJ0JvZHknIGluIHJlcHIobXNn
bm9kZS5jb250ZW50X21vZGVsKToKICAgICAgICAgICAgICAgICBtc2dub2RlICs9IG1zZwogCisg
ICAgZGVmIG5vdGVfbmFtZXMoc2VsZiwKKyAgICAgICAgICAgICAgICAgICBub2RlOiBFbGVtZW50
LAorICAgICAgICAgICAgICAgICAgIG1zZ25vZGU6IEVsZW1lbnR8Tm9uZSA9IE5vbmUsCisgICAg
ICAgICAgICAgICAgICAgZXhwbGljaXQ6IGJvb2wgPSBGYWxzZSwKKyAgICAgICAgICAgICAgICAg
ICApIC0+IE5vbmU6CisgICAgICAgICIiIgorICAgICAgICBSZWdpc3RlciB0aGUgcmVmZXJlbmNl
IG5hbWVzIG9mIHRoZSBlbGVtZW50IGBub2RlYC4KKworICAgICAgICBVcGRhdGUgYHNlbGYubmFt
ZXNgIGFuZCBgc2VsZi5uYW1ldHlwZXNgCisgICAgICAgIGZvciBlYWNoIG5hbWUgaW4gdGhlICJu
YW1lcyIgYXR0cmlidXRlIG9mIGBub2RlYC4KKyAgICAgICAgSW4gY2FzZSBvZiBuYW1lIGNvbmZs
aWN0cywgY2FsbCBgc2VsZi5zZXRfZHVwbGljYXRlX25hbWUoKWAuCisgICAgICAgICIiIgorICAg
ICAgICBmb3IgbmFtZSBpbiB0dXBsZShub2RlWyduYW1lcyddKToKKyAgICAgICAgICAgIGlmIG5h
bWUgaW4gc2VsZi5uYW1lcyBhbmQgc2VsZi5uYW1lc1tuYW1lXSAhPSBub2RlOgorICAgICAgICAg
ICAgICAgIHNlbGYuc2V0X2R1cGxpY2F0ZV9uYW1lKG5vZGUsIG5hbWUsIG1zZ25vZGUsIGV4cGxp
Y2l0KQorICAgICAgICAgICAgICAgICMgYXR0ZW50aW9uOiBtb2RpZmllcyBub2RlWyduYW1lcydd
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYubmFtZXNbbmFtZV0gPSBu
b2RlCisgICAgICAgICAgICAgICAgc2VsZi5uYW1ldHlwZXMuc2V0ZGVmYXVsdChuYW1lLCBleHBs
aWNpdCkKKwogICAgIGRlZiBoYXNfbmFtZShzZWxmLCBuYW1lOiBzdHIpIC0+IGJvb2w6Ci0gICAg
ICAgIHJldHVybiBuYW1lIGluIHNlbGYubmFtZWlkcworICAgICAgICAjIFRPRE86IGRlcHJlY2F0
ZT8gKHVzZSBgYG5hbWUgaW4gZG9jdW1lbnQubmFtZXNgYCkKKyAgICAgICAgcmV0dXJuIG5hbWUg
aW4gc2VsZi5uYW1lcwogCiAgICAgIyAibm90ZSIgaGVyZSBpcyBhbiBpbXBlcmF0aXZlIHZlcmI6
ICJ0YWtlIG5vdGUgb2YiLgotICAgIGRlZiBub3RlX2ltcGxpY2l0X3RhcmdldCgKLSAgICAgICAg
ICAgIHNlbGYsIHRhcmdldDogRWxlbWVudCwgbXNnbm9kZTogRWxlbWVudCB8IE5vbmUgPSBOb25l
KSAtPiBOb25lOgotICAgICAgICAjIFRPRE86IFBvc3Rwb25lIElEIGNyZWF0aW9uIGFuZCByZWdp
c3RlciByZWZlcmVuY2UgbmFtZSBpbnN0ZWFkIG9mIElEPwotICAgICAgICBpZCA9IHNlbGYuc2V0
X2lkKHRhcmdldCwgbXNnbm9kZSkKLSAgICAgICAgc2VsZi5zZXRfbmFtZV9pZF9tYXAodGFyZ2V0
LCBpZCwgbXNnbm9kZSwgZXhwbGljaXQ9RmFsc2UpCisgICAgZGVmIG5vdGVfaW1wbGljaXRfdGFy
Z2V0KHNlbGYsIHRhcmdldDogRWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXNnbm9kZTogRWxlbWVudHxOb25lID0gTm9uZSkgLT4gTm9uZToKKyAgICAgICAgc2VsZi5ub3Rl
X25hbWVzKHRhcmdldCwgbXNnbm9kZSwgZXhwbGljaXQ9RmFsc2UpCisgICAgICAgIGlmIGdldGF0
dHIoc2VsZi5zZXR0aW5ncywgImxlZ2FjeV9pZHMiLCBUcnVlKToKKyAgICAgICAgICAgIHNlbGYu
c2V0X2lkKHRhcmdldCwgbXNnbm9kZSkKIAotICAgIGRlZiBub3RlX2V4cGxpY2l0X3RhcmdldCgK
LSAgICAgICAgICAgIHNlbGYsIHRhcmdldDogRWxlbWVudCwgbXNnbm9kZTogRWxlbWVudCB8IE5v
bmUgPSBOb25lKSAtPiBOb25lOgotICAgICAgICAjIFRPRE86IGlmIHRoZSBpZCBtYXRjaGluZyB0
aGUgbmFtZSBpcyBhcHBsaWVkIHRvIGFuIGltcGxpY2lkIHRhcmdldCwKLSAgICAgICAgIyB0cmFu
c2ZlciBpdCB0byB0aGlzIHRhcmdldCBhbmQgcHV0IGEgImRpc2FtYmlndWF0ZWQiIGlkIG9uIHRo
ZSBvdGhlci4KLSAgICAgICAgaWQgPSBzZWxmLnNldF9pZCh0YXJnZXQsIG1zZ25vZGUpCi0gICAg
ICAgIHNlbGYuc2V0X25hbWVfaWRfbWFwKHRhcmdldCwgaWQsIG1zZ25vZGUsIGV4cGxpY2l0PVRy
dWUpCisgICAgZGVmIG5vdGVfZXhwbGljaXRfdGFyZ2V0KHNlbGYsIHRhcmdldDogRWxlbWVudCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnbm9kZTogRWxlbWVudHxOb25lID0gTm9u
ZSkgLT4gTm9uZToKKyAgICAgICAgc2VsZi5ub3RlX25hbWVzKHRhcmdldCwgbXNnbm9kZSwgZXhw
bGljaXQ9VHJ1ZSkKKyAgICAgICAgc2VsZi5zZXRfaWQodGFyZ2V0LCBtc2dub2RlKQogCiAgICAg
ZGVmIG5vdGVfcmVmbmFtZShzZWxmLCBub2RlOiBFbGVtZW50KSAtPiBOb25lOgogICAgICAgICBz
ZWxmLnJlZm5hbWVzLnNldGRlZmF1bHQobm9kZVsncmVmbmFtZSddLCBbXSkuYXBwZW5kKG5vZGUp
CgpNb2RpZmllZDogdHJ1bmsvZG9jdXRpbHMvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZl
cy9taXNjLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL2RvY3V0aWxzL2RvY3V0aWxzL3BhcnNlcnMv
cnN0L2RpcmVjdGl2ZXMvbWlzYy5weQkyMDI2LTAzLTI2IDEzOjUyOjI3IFVUQyAocmV2IDEwMzAx
KQorKysgdHJ1bmsvZG9jdXRpbHMvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9taXNj
LnB5CTIwMjYtMDMtMjcgMDg6NDA6NTYgVVRDIChyZXYgMTAzMDIpCkBAIC0yMzMsNiArMjMzLDcg
QEAKICAgICAgICAgc2V0dGluZ3MuX3NvdXJjZSA9IHNlbGYub3B0aW9uc1snc291cmNlJ10KICAg
ICAgICAgZG9jdW1lbnQgPSB1dGlscy5uZXdfZG9jdW1lbnQoc2V0dGluZ3MuX3NvdXJjZSwgc2V0
dGluZ3MpCiAgICAgICAgIGRvY3VtZW50LmluY2x1ZGVfbG9nID0gc2VsZi5zdGF0ZS5kb2N1bWVu
dC5pbmNsdWRlX2xvZworICAgICAgICBkb2N1bWVudC5uYW1lcyA9IHNlbGYuc3RhdGUuZG9jdW1l
bnQubmFtZXMKICAgICAgICAgZG9jdW1lbnQuaWRzID0gc2VsZi5zdGF0ZS5kb2N1bWVudC5pZHMK
ICAgICAgICAgZG9jdW1lbnQubmFtZWlkcyA9IHNlbGYuc3RhdGUuZG9jdW1lbnQubmFtZWlkcwog
ICAgICAgICBkb2N1bWVudC5uYW1ldHlwZXMgPSBzZWxmLnN0YXRlLmRvY3VtZW50Lm5hbWV0eXBl
cwoKTW9kaWZpZWQ6IHRydW5rL2RvY3V0aWxzL2RvY3V0aWxzL3RyYW5zZm9ybXMvcmVmZXJlbmNl
cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9kb2N1dGlscy9kb2N1dGlscy90cmFuc2Zvcm1zL3Jl
ZmVyZW5jZXMucHkJMjAyNi0wMy0yNiAxMzo1MjoyNyBVVEMgKHJldiAxMDMwMSkKKysrIHRydW5r
L2RvY3V0aWxzL2RvY3V0aWxzL3RyYW5zZm9ybXMvcmVmZXJlbmNlcy5weQkyMDI2LTAzLTI3IDA4
OjQwOjU2IFVUQyAocmV2IDEwMzAyKQpAQCAtOTQwLDggKzk0MCw4IEBACiAgICAgICAgIGlmIG5v
ZGUucmVzb2x2ZWQgb3Igbm90IG5vZGUuaGFzYXR0cigncmVmbmFtZScpOgogICAgICAgICAgICAg
cmV0dXJuCiAgICAgICAgIHJlZm5hbWUgPSBub2RlWydyZWZuYW1lJ10KLSAgICAgICAgaWQgPSBz
ZWxmLmRvY3VtZW50Lm5hbWVpZHMuZ2V0KHJlZm5hbWUpCi0gICAgICAgIGlmIGlkIGlzIG5vdCBO
b25lOgorICAgICAgICBpZCA9IHNlbGYuZG9jdW1lbnQubmFtZWlkcy5nZXQocmVmbmFtZSwgJycp
CisgICAgICAgIGlmIGlkOgogICAgICAgICAgICAgIyB0YXJnZXQgZm91bmQsIHNldCByZWZpZAog
ICAgICAgICAgICAgZGVsIG5vZGVbJ3JlZm5hbWUnXQogICAgICAgICAgICAgbm9kZVsncmVmaWQn
XSA9IGlkCkBAIC05NDksMTEgKzk0OSwxMiBAQAogICAgICAgICAgICAgbm9kZS5yZXNvbHZlZCA9
IFRydWUKICAgICAgICAgICAgIHJldHVybgogICAgICAgICAjIEFwcGx5IGNvbXBvbmVudC1zcGVj
aWZpYyByZXNvbHZpbmcgZnVuY3Rpb25zIChjZi4gVHJhbnNmb3JtU3BlYyk6CisgICAgICAgICMg
KHdpbGwgYmUgcmVtb3ZlZCBpbiBEb2N1dGlscyAxLjApCiAgICAgICAgIGZvciByZXNvbHZlcl9m
dW5jdGlvbiBpbiBzZWxmLnVua25vd25fcmVmZXJlbmNlX3Jlc29sdmVyczoKICAgICAgICAgICAg
IGlmIHJlc29sdmVyX2Z1bmN0aW9uKG5vZGUpOgogICAgICAgICAgICAgICAgIHJldHVybgogICAg
ICAgICAjIFJlcG9ydCB1bnJlc29sdmVkIHJlZmVyZW5jZXM6Ci0gICAgICAgIGlmIHJlZm5hbWUg
aW4gc2VsZi5kb2N1bWVudC5uYW1laWRzOgorICAgICAgICBpZiBpZCBpcyBOb25lOgogICAgICAg
ICAgICAgbXNnID0gc2VsZi5kb2N1bWVudC5yZXBvcnRlci5lcnJvcigKICAgICAgICAgICAgICAg
ICAnRHVwbGljYXRlIHRhcmdldCBuYW1lLCBjYW5ub3QgYmUgdXNlZCBhcyBhIHVuaXF1ZSAnCiAg
ICAgICAgICAgICAgICAgZidyZWZlcmVuY2U6ICJ7cmVmbmFtZX0iLicsIGJhc2Vfbm9kZT1ub2Rl
KQoKTW9kaWZpZWQ6IHRydW5rL2RvY3V0aWxzL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfaHlw
ZXJsaW5rcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9kb2N1dGlscy90ZXN0L3Rlc3RfdHJhbnNm
b3Jtcy90ZXN0X2h5cGVybGlua3MucHkJMjAyNi0wMy0yNiAxMzo1MjoyNyBVVEMgKHJldiAxMDMw
MSkKKysrIHRydW5rL2RvY3V0aWxzL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfaHlwZXJsaW5r
cy5weQkyMDI2LTAzLTI3IDA4OjQwOjU2IFVUQyAocmV2IDEwMzAyKQpAQCAtMjksMTkgKzI5LDI1
IEBACiBjbGFzcyBUcmFuc2Zvcm1UZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgbWF4
RGlmZiA9IE5vbmUKIAorICAgIHRyYW5zZm9ybXMgPSAoUHJvcGFnYXRlVGFyZ2V0cywgQW5vbnlt
b3VzSHlwZXJsaW5rcywgSW5kaXJlY3RIeXBlcmxpbmtzLAorICAgICAgICAgICAgICAgICAgRXh0
ZXJuYWxUYXJnZXRzLCBJbnRlcm5hbFRhcmdldHMsIERhbmdsaW5nUmVmZXJlbmNlcywKKyAgICAg
ICAgICAgICAgICAgIFRlc3RNZXNzYWdlcykKKwogICAgIGRlZiB0ZXN0X3RyYW5zZm9ybXMoc2Vs
Zik6CiAgICAgICAgIHBhcnNlciA9IFBhcnNlcigpCi0gICAgICAgIHNldHRpbmdzID0gZ2V0X2Rl
ZmF1bHRfc2V0dGluZ3MoUGFyc2VyKQotICAgICAgICBzZXR0aW5ncy53YXJuaW5nX3N0cmVhbSA9
ICcnCi0gICAgICAgIGZvciBuYW1lLCAodHJhbnNmb3JtcywgY2FzZXMpIGluIHRvdGVzdC5pdGVt
cygpOgorICAgICAgICBkZWZhdWx0X3NldHRpbmdzID0gZ2V0X2RlZmF1bHRfc2V0dGluZ3MoUGFy
c2VyKQorICAgICAgICBkZWZhdWx0X3NldHRpbmdzLndhcm5pbmdfc3RyZWFtID0gJycKKyAgICAg
ICAgZm9yIG5hbWUsIChzZXR0aW5nc19vdmVycmlkZXMsIGNhc2VzKSBpbiB0b3Rlc3QuaXRlbXMo
KToKKyAgICAgICAgICAgIHNldHRpbmdzID0gZGVmYXVsdF9zZXR0aW5ncy5jb3B5KCkKKyAgICAg
ICAgICAgIGZvciBrLCB2IGluIHNldHRpbmdzX292ZXJyaWRlcy5pdGVtcygpOgorICAgICAgICAg
ICAgICAgIHNldGF0dHIoc2V0dGluZ3MsIGssIHYpCiAgICAgICAgICAgICBmb3IgY2FzZW51bSwg
KGNhc2VfaW5wdXQsIGNhc2VfZXhwZWN0ZWQpIGluIGVudW1lcmF0ZShjYXNlcyk6CiAgICAgICAg
ICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoaWQ9Zid0b3Rlc3Rbe25hbWUhcn1dW3tjYXNlbnVt
fV0nKToKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQgPSBuZXdfZG9jdW1lbnQoJ3Rlc3Qg
ZGF0YScsIHNldHRpbmdzLmNvcHkoKSkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQgPSBu
ZXdfZG9jdW1lbnQoJ3Rlc3QgZGF0YScsIHNldHRpbmdzKQogICAgICAgICAgICAgICAgICAgICBw
YXJzZXIucGFyc2UoY2FzZV9pbnB1dCwgZG9jdW1lbnQpCiAgICAgICAgICAgICAgICAgICAgICMg
RG9uJ3QgZG8gYSBgYHBvcHVsYXRlX2Zyb21fY29tcG9uZW50cygpYGAgYmVjYXVzZSB0aGF0CiAg
ICAgICAgICAgICAgICAgICAgICMgd291bGQgZW5hYmxlIHRoZSBUcmFuc2Zvcm1lcidzIGRlZmF1
bHQgdHJhbnNmb3Jtcy4KLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQudHJhbnNmb3JtZXIu
YWRkX3RyYW5zZm9ybXModHJhbnNmb3JtcykKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
dHJhbnNmb3JtZXIuYWRkX3RyYW5zZm9ybShUZXN0TWVzc2FnZXMpCisgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LnRyYW5zZm9ybWVyLmFkZF90cmFuc2Zvcm1zKHNlbGYudHJhbnNmb3JtcykK
ICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQudHJhbnNmb3JtZXIuYXBwbHlfdHJhbnNmb3Jt
cygpCiAgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IGRvY3VtZW50LnBmb3JtYXQoKQogICAg
ICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhc2VfZXhwZWN0ZWQsIG91dHB1dCkK
QEAgLTUyLDkgKzU4LDcgQEAKICMgRXhoYXVzdGl2ZSBsaXN0aW5nIG9mIGh5cGVybGluayB2YXJp
YXRpb25zOiBldmVyeSBjb21iaW5hdGlvbiBvZgogIyB0YXJnZXQvcmVmZXJlbmNlLCBkaXJlY3Qv
aW5kaXJlY3QsIGludGVybmFsL2V4dGVybmFsLCBhbmQgbmFtZWQvYW5vbnltb3VzLAogIyBwbHVz
IGVtYmVkZGVkIFVSSXMuCi10b3Rlc3RbJ2V4aGF1c3RpdmVfaHlwZXJsaW5rcyddID0gKChQcm9w
YWdhdGVUYXJnZXRzLCBBbm9ueW1vdXNIeXBlcmxpbmtzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSW5kaXJlY3RIeXBlcmxpbmtzLCBFeHRlcm5hbFRhcmdldHMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcm5hbFRhcmdldHMsIERhbmdsaW5n
UmVmZXJlbmNlcyksIFsKK3RvdGVzdFsnZXhoYXVzdGl2ZV9oeXBlcmxpbmtzJ10gPSAoe30sIFsK
IFsiIiJcCiBkaXJlY3RfIGV4dGVybmFsCiAKQEAgLTU3NSw5ICs1NzksNyBAQAogIiIiXSwKIF0p
CiAKLXRvdGVzdFsnaHlwZXJsaW5rcyddID0gKChQcm9wYWdhdGVUYXJnZXRzLCBBbm9ueW1vdXNI
eXBlcmxpbmtzLAotICAgICAgICAgICAgICAgICAgICAgICAgIEluZGlyZWN0SHlwZXJsaW5rcywg
RXh0ZXJuYWxUYXJnZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmFsVGFyZ2V0
cywgRGFuZ2xpbmdSZWZlcmVuY2VzKSwgWwordG90ZXN0WydoeXBlcmxpbmtzIGxlZ2FjeSddID0g
KHsnbGVnYWN5X2lkcyc6IFRydWV9LCBbCiBbIiIiXAogLi4gX2ludGVybmFsIGh5cGVybGluazoK
IApAQCAtMTA5OCw2ICsxMTAwLDQyIEBACiAiIiJdLAogXSkKIAordG90ZXN0WydoeXBlcmxpbmtz
J10gPSAoeydsZWdhY3lfaWRzJzogRmFsc2V9LCBbCitbIiIiXAorZm9vCistLS0KIAorV2l0aCBs
ZWdhY3lfaWRzID0gRmFsc2UsIGFuIGV4cGxpY2l0IHRhcmdldCBfYGZvb2AgdGFrZXMgb3ZlciB0
aGUKK3JlZmVyZW5jZSBuYW1lIGFuZCBpZGVudGlmaWVyIG9mIGEgaG9tb255bW91cyBpbXBsaWNp
dCB0YXJnZXQuCisKK1RoZSByZWZlcmVuY2UgZm9vXyBwb2ludHMgdG8gdGhlIGV4cGxpY2l0IHRh
cmdldC4KK1JlZmVyZW5jaW5nIGZyb20gYW4gZXh0ZXJuYWwgZG9jdW1lbnQgY2FuIGJlIGRvbmUK
K3VzaW5nIHRoZSBtYXRjaGluZyBmcmFnbWVudCBpZGVudGlmaWVyICIjZm9vIi4KKyIiIiwKKyIi
IlwKKzxkb2N1bWVudCBzb3VyY2U9InRlc3QgZGF0YSI+CisgICAgPHNlY3Rpb24gZHVwbmFtZXM9
ImZvbyI+CisgICAgICAgIDx0aXRsZT4KKyAgICAgICAgICAgIGZvbworICAgICAgICA8c3lzdGVt
X21lc3NhZ2UgYmFja3JlZnM9ImZvbyIgbGV2ZWw9IjEiIGxpbmU9IjUiIHNvdXJjZT0idGVzdCBk
YXRhIiB0eXBlPSJJTkZPIj4KKyAgICAgICAgICAgIDxwYXJhZ3JhcGg+CisgICAgICAgICAgICAg
ICAgVGFyZ2V0IG5hbWUgb3ZlcnJpZGVzIGltcGxpY2l0IHRhcmdldCBuYW1lICJmb28iLgorICAg
ICAgICA8cGFyYWdyYXBoPgorICAgICAgICAgICAgV2l0aCBsZWdhY3lfaWRzID0gRmFsc2UsIGFu
IGV4cGxpY2l0IHRhcmdldCBcblwKKyAgICAgICAgICAgIDx0YXJnZXQgaWRzPSJmb28iIG5hbWVz
PSJmb28iPgorICAgICAgICAgICAgICAgIGZvbworICAgICAgICAgICAgIHRha2VzIG92ZXIgdGhl
CisgICAgICAgICAgICByZWZlcmVuY2UgbmFtZSBhbmQgaWRlbnRpZmllciBvZiBhIGhvbW9ueW1v
dXMgaW1wbGljaXQgdGFyZ2V0LgorICAgICAgICA8cGFyYWdyYXBoPgorICAgICAgICAgICAgVGhl
IHJlZmVyZW5jZSBcblwKKyAgICAgICAgICAgIDxyZWZlcmVuY2UgbmFtZT0iZm9vIiByZWZpZD0i
Zm9vIj4KKyAgICAgICAgICAgICAgICBmb28KKyAgICAgICAgICAgICBwb2ludHMgdG8gdGhlIGV4
cGxpY2l0IHRhcmdldC4KKyAgICAgICAgICAgIFJlZmVyZW5jaW5nIGZyb20gYW4gZXh0ZXJuYWwg
ZG9jdW1lbnQgY2FuIGJlIGRvbmUKKyAgICAgICAgICAgIHVzaW5nIHRoZSBtYXRjaGluZyBmcmFn
bWVudCBpZGVudGlmaWVyICIjZm9vIi4KKyIiIl0sCitdKQorCisKIGlmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6CiAgICAgdW5pdHRlc3QubWFpbigpCgpUaGlzIHdhcyBzZW50IGJ5IHRoZSBTb3Vy
Y2VGb3JnZS5uZXQgY29sbGFib3JhdGl2ZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSwgdGhlIHdvcmxk
J3MgbGFyZ2VzdCBPcGVuIFNvdXJjZSBkZXZlbG9wbWVudCBzaXRlLgoKCgpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEb2N1dGlscy1jaGVja2lucyBtYWls
aW5nIGxpc3QKRG9jdXRpbHMtY2hlY2tpbnNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8v
bGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2RvY3V0aWxzLWNoZWNraW5zCg==