Re: master: Make DOCUMENTATION strip markup from SBCL definitions

Stas Boukarev <[email protected]> Tue, 30 Jun 2026 18:14:12 +0300
Newsgroups gmane.lisp.steel-bank.cvs,gmane.lisp.steel-bank.devel
Message-ID <CAF63=12bqskHX=c-cHJjts6RL4q3+1C-4AuWWMfAbdzN08B0Dw@mail.gmail.com>
T25lIGZhY3RvcjogZG9pbmcgaXQgYmVmb3JlIHNhdmluZyB0aGUgY29yZSB3b3VsZCBzYXZlIGJ5
dGVzLgpDYW4gd3JpdGUgb3V0IGFsbCB0aGUgZG9jc3RyaW5ncyBpbiBtYWtlLXRhcmdldC0yLCBi
ZWZvcmUgc3RyaXBwaW5nCnRoZW0uIChPciByZW1vdmluZywgd2hpY2ggaXMgZG9uZSB3aXRob3V0
ICMrc2ItZG9jKQpBbHNvIG1lYW5zIG5vdCBsdWdnaW5nIGFyb3VuZCB0aGUgc3RyaXBwaW5nIGNv
ZGUgaW4gdGhlIGZpbmFsIGltYWdlLAptb3JlIGJ5dGVzIHNhdmVkLgoKT24gVHVlLCBKdW4gMzAs
IDIwMjYgYXQgNjowOOKAr1BNIG1lbGlzZ2wgdmlhIFNiY2wtY29tbWl0cwo8c2JjbC1jb21taXRz
QGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4gd3JvdGU6Cj4KPiBUaGUgYnJhbmNoICJtYXN0ZXIiIGhh
cyBiZWVuIHVwZGF0ZWQgaW4gU0JDTDoKPiAgICAgICAgdmlhICAyNzYyMWIwMWNhMzllNTA5MzBm
NjhkMjljNjk2NjQwMGY0Mjc0MTAzIChjb21taXQpCj4gICAgICAgZnJvbSAgMzMzNWMyYjE1MDkw
NjMwYjE5ZWIwYWFhZjU1OTYzNjExODJiNWEwOSAoY29tbWl0KQo+Cj4gLSBMb2cgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
PiBjb21taXQgMjc2MjFiMDFjYTM5ZTUwOTMwZjY4ZDI5YzY5NjY0MDBmNDI3NDEwMwo+IEF1dGhv
cjogR2Fib3IgTWVsaXMgPG1lZ2FAcmV0ZXMuaHU+Cj4gRGF0ZTogICBUdWUgSnVuIDMwIDE0OjEz
OjA2IDIwMjYgKzAyMDAKPgo+ICAgICBNYWtlIERPQ1VNRU5UQVRJT04gc3RyaXAgbWFya3VwIGZy
b20gU0JDTCBkZWZpbml0aW9ucwo+Cj4gICAgIC4uLiBhbmQgbm9ybWFsaXplIHRoZSBpbmRlbnRh
dGlvbiBvZiB0aGVpciBkb2NzdHJpbmdzLCB0b28uCj4KPiAgICAgRG9pbmcgdGhpcyBsYXppbHkg
aW4gRE9DVU1FTlRBVElPTiBhbGxvd3MgaW50ZXJhY3RpdmUgd29yayBvbgo+ICAgICBkb2NzdHJp
bmdzIChlLmcuIGNoYW5nZSBhIGRvY3N0cmluZywgcmVjb21waWxlIGl0cyBkZWZpbml0aW9uLAo+
ICAgICBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uIGZyb20gdGhlIGltYWdlKS4gSSBkb24ndCB0aGlu
ayB0aGUgb3ZlcmhlYWQgaW4KPiAgICAgRE9DVU1FTlRBVElPTiBpcyBhIGZhY3Rvci4KPiAtLS0K
PiAgY29udHJpYi9zYi1tYW51YWwvZG9jc3RyaW5nLmxpc3AgfCAgNTMgLS0tLS0tLS0tCj4gIGNv
bnRyaWIvc2ItbWFudWFsL21hcmtkb3duLmxpc3AgIHwgIDE3IC0tLQo+ICBjb250cmliL3NiLW1h
bnVhbC9wYWNrYWdlLmxpc3AgICB8ICAgNSArLQo+ICBjb250cmliL3NiLW1hbnVhbC90ZXhpbmZv
Lmxpc3AgICB8ICA0NSArKystLS0tCj4gIHNyYy9wY2wvZG9jdW1lbnRhdGlvbi5saXNwICAgICAg
IHwgMjQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICA1IGZpbGVz
IGNoYW5nZWQsIDI3MyBpbnNlcnRpb25zKCspLCA5NCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1n
aXQgYS9jb250cmliL3NiLW1hbnVhbC9kb2NzdHJpbmcubGlzcCBiL2NvbnRyaWIvc2ItbWFudWFs
L2RvY3N0cmluZy5saXNwCj4gaW5kZXggNDU1YTM4YjUzLi4zZGM4ZTEzYzEgMTAwNjQ0Cj4gLS0t
IGEvY29udHJpYi9zYi1tYW51YWwvZG9jc3RyaW5nLmxpc3AKPiArKysgYi9jb250cmliL3NiLW1h
bnVhbC9kb2NzdHJpbmcubGlzcAo+IEBAIC0xLDU4ICsxLDUgQEAKPiAgKGluLXBhY2thZ2UgOnNi
LW1hbnVhbCkKPgo+IC07OzsgQmVmb3JlIHByb2Nlc3NpbmcgTWFya2Rvd24sIHRoZSBkb2NzdHJp
bmcgaW5kZW50YXRpb24gaXMKPiAtOzs7IG5vcm1hbGl6ZWQgYnkgc3RyaXBwaW5nIHRoZSBsb25n
ZXN0IHJ1biBvZiBsZWFkaW5nIHNwYWNlcyBjb21tb24KPiAtOzs7IHRvIGFsbCBub24tYmxhbmsg
bGluZXMgZXhjZXB0IHRoZSBmaXJzdC4gVGhpcyBpcyBjb21wYXRpYmxlIHdpdGgKPiAtOzs7IFBB
WCAoc2VlIFBBWDo6QE1BUktET1dOLVNVUFBPUlQpLgo+IC0oZGVmdW4gcmVpbmRlbnQtZG9jc3Ry
aW5nIChkb2NzdHJpbmcpCj4gLSAgKGxldCAoKGluZGVudGF0aW9uIChkb2NzdHJpbmctaW5kZW50
YXRpb24gZG9jc3RyaW5nKSkpCj4gLSAgICAoc3RyaXAtZG9jc3RyaW5nLWluZGVudCBkb2NzdHJp
bmcgaW5kZW50YXRpb24gdCkpKQo+IC0KPiAtCj4gLTs7OzsgVXRpbGl0aWVzIGxpZnRlZCBmcm9t
IERSZWYgYW5kIE1HTC1QQVgKPiAtCj4gLTs7OyBSZXR1cm4gdGhlIG1pbmltdW0gbnVtYmVyIG9m
IGxlYWRpbmcgc3BhY2VzIGluIG5vbi1ibGFuayBsaW5lcwo+IC07OzsgYWZ0ZXIgdGhlIGZpcnN0
Lgo+IC0oZGVmdW4gZG9jc3RyaW5nLWluZGVudGF0aW9uIChkb2NzdHJpbmcgJmtleSAoZmlyc3Qt
bGluZS1zcGVjaWFsLXAgdCkpCj4gLSAgKGxldCAoKG4tbWluLWluZGVudGF0aW9uIG5pbCkpCj4g
LSAgICAod2l0aC1pbnB1dC1mcm9tLXN0cmluZyAocyBkb2NzdHJpbmcpCj4gLSAgICAgIChsb29w
IGZvciBpIHVwZnJvbSAwCj4gLSAgICAgICAgICAgIGZvciBsaW5lID0gKHJlYWQtbGluZSBzIG5p
bCBuaWwpCj4gLSAgICAgICAgICAgIHdoaWxlIGxpbmUKPiAtICAgICAgICAgICAgZG8gKHdoZW4g
KGFuZCAob3IgKG5vdCBmaXJzdC1saW5lLXNwZWNpYWwtcCkgKHBsdXNwIGkpKQo+IC0gICAgICAg
ICAgICAgICAgICAgICAgICAgIChub3QgKGJsYW5rcCBsaW5lKSkpCj4gLSAgICAgICAgICAgICAg
ICAgKHdoZW4gKG9yIChudWxsIG4tbWluLWluZGVudGF0aW9uKQo+IC0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAoPCAobi1sZWFkaW5nLXNwYWNlcyBsaW5lKSBuLW1pbi1pbmRlbnRhdGlvbikp
Cj4gLSAgICAgICAgICAgICAgICAgICAoc2V0cSBuLW1pbi1pbmRlbnRhdGlvbiAobi1sZWFkaW5n
LXNwYWNlcyBsaW5lKSkpKSkpCj4gLSAgICAob3Igbi1taW4taW5kZW50YXRpb24gMCkpKQo+IC0K
PiAtKGRlZnVuIG4tbGVhZGluZy1zcGFjZXMgKGxpbmUpCj4gLSAgKGxldCAoKG4gMCkpCj4gLSAg
ICAobG9vcCBmb3IgaSBiZWxvdyAobGVuZ3RoIGxpbmUpCj4gLSAgICAgICAgICB3aGlsZSAoY2hh
cj0gKGFyZWYgbGluZSBpKSAjXFNwYWNlKQo+IC0gICAgICAgICAgZG8gKGluY2YgbikpCj4gLSAg
ICBuKSkKPiAtCj4gLShkZWZ1biBzdWJzZXEqIChzZXEgc3RhcnQpCj4gLSAgKHN1YnNlcSBzZXEg
KG1pbiAobGVuZ3RoIHNlcSkgc3RhcnQpKSkKPiAtCj4gLShkZWZ1biBzdHJpcC1kb2NzdHJpbmct
aW5kZW50IChkb2NzdHJpbmcgaW5kZW50YXRpb24gZmlyc3QtbGluZS1zcGVjaWFsLXApCj4gLSAg
KHdpdGgtb3V0cHV0LXRvLXN0cmluZyAob3V0KQo+IC0gICAgKHdpdGgtaW5wdXQtZnJvbS1zdHJp
bmcgKHMgZG9jc3RyaW5nKQo+IC0gICAgICAobG9vcCBmb3IgaSB1cGZyb20gMAo+IC0gICAgICAg
ICAgICBkbyAobXVsdGlwbGUtdmFsdWUtYmluZCAobGluZSBtaXNzaW5nLW5ld2xpbmUtcCkKPiAt
ICAgICAgICAgICAgICAgICAgIChyZWFkLWxpbmUgcyBuaWwgbmlsKQo+IC0gICAgICAgICAgICAg
ICAgICh1bmxlc3MgbGluZQo+IC0gICAgICAgICAgICAgICAgICAgKHJldHVybikpCj4gLSAgICAg
ICAgICAgICAgICAgKHdyaXRlLXN0cmluZyAoaWYgKGFuZCBmaXJzdC1saW5lLXNwZWNpYWwtcAo+
IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHplcm9wIGkpKQo+IC0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUKPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc3Vic2VxKiBsaW5lIGluZGVudGF0aW9uKSkKPiAtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG91dCkKPiAtICAgICAgICAgICAgICAgICAodW5sZXNz
IG1pc3NpbmctbmV3bGluZS1wCj4gLSAgICAgICAgICAgICAgICAgICAodGVycHJpIG91dCkpKSkp
KSkKPiAtCj4gLQo+ICA7Ozs7IERldGVybWluaW5nIHRoZSBwYWNrYWdlIGZvciBwYXJzaW5nIGRv
Y3N0cmluZ3MKPiAgOzs7Owo+ICA7Ozs7IFRoZSBwYWNrYWdlIGZvciBwYXJzaW5nIGlzIHRoZSBw
YWNrYWdlIHRoYXQgd2FzIGluIGVmZmVjdCB3aGVuCj4gZGlmZiAtLWdpdCBhL2NvbnRyaWIvc2It
bWFudWFsL21hcmtkb3duLmxpc3AgYi9jb250cmliL3NiLW1hbnVhbC9tYXJrZG93bi5saXNwCj4g
aW5kZXggOWU4NTA1ZmUyLi4wY2ExNzk5MWUgMTAwNjQ0Cj4gLS0tIGEvY29udHJpYi9zYi1tYW51
YWwvbWFya2Rvd24ubGlzcAo+ICsrKyBiL2NvbnRyaWIvc2ItbWFudWFsL21hcmtkb3duLmxpc3AK
PiBAQCAtMTk0LDIzICsxOTQsNiBAQAo+ICAgICAgICAgICh0Cj4gICAgICAgICAgIChjb25zIChj
YXIgbGlzdCkgKGZsYXR0ZW4gKGNkciBsaXN0KSkpKSkpCj4KPiAtKGRlZnVuIHdoaXRlc3BhY2Vw
IChjaGFyKQo+IC0gIChmaW5kIGNoYXIgIygjXHRhYiAjXHNwYWNlICNccGFnZSAjXG5ld2xpbmUg
I1xyZXR1cm4pKSkKPiAtCj4gLTs7OyBTcGxpdCBTVFJJTkcgaW50byBhIHZlY3RvciBvZiBsaW5l
cy4KPiAtKGRlZnVuIHN0cmluZy1saW5lcyAoc3RyaW5nKQo+IC0gIChjb2VyY2UgKHdpdGgtaW5w
dXQtZnJvbS1zdHJpbmcgKHMgc3RyaW5nKQo+IC0gICAgICAgICAgICAobG9vcCBmb3IgbGluZSA9
IChyZWFkLWxpbmUgcyBuaWwgbmlsKQo+IC0gICAgICAgICAgICAgICB3aGlsZSBsaW5lIGNvbGxl
Y3QgbGluZSkpCj4gLSAgICAgICAgICAndmVjdG9yKSkKPiAtCj4gLTs7OyBQb3NpdGlvbiBvZiB0
aGUgZmlyc3Qgbm9uLVNQQUNFIGNoYXJhY3RlciBpbiBMSU5FLgo+IC0oZGVmdW4gaW5kZW50YXRp
b24gKGxpbmUpCj4gLSAgKHBvc2l0aW9uLWlmLW5vdCAobGFtYmRhIChjKSAoY2hhcj0gYyAjXFNw
YWNlKSkgbGluZSkpCj4gLQo+IC0oZGVmdW4gYmxhbmtwIChsaW5lKQo+IC0gIChudWxsIChpbmRl
bnRhdGlvbiBsaW5lKSkpCj4gLQo+ICAoZGVmdW4gZmxhdHRlbi10by1zdHJpbmcgKGxpc3QpCj4g
ICAgKGZvcm1hdCBuaWwgIn57fkF+Xi1+fSIgKGZsYXR0ZW4gbGlzdCkpKQo+Cj4gZGlmZiAtLWdp
dCBhL2NvbnRyaWIvc2ItbWFudWFsL3BhY2thZ2UubGlzcCBiL2NvbnRyaWIvc2ItbWFudWFsL3Bh
Y2thZ2UubGlzcAo+IGluZGV4IDAyYTdmYWRjMC4uMjU1NThlMDgzIDEwMDY0NAo+IC0tLSBhL2Nv
bnRyaWIvc2ItbWFudWFsL3BhY2thZ2UubGlzcAo+ICsrKyBiL2NvbnRyaWIvc2ItbWFudWFsL3Bh
Y2thZ2UubGlzcAo+IEBAIC0yLDQgKzIsNyBAQAo+ICAgIChoYW5kbGVyLWJpbmQgKChzYi1pbnQ6
cGFja2FnZS1hdC12YXJpYW5jZSAjJ211ZmZsZS13YXJuaW5nKSkKPiAgICAgIChkZWZwYWNrYWdl
IDpzYi1tYW51YWwKPiAgICAgICAgKDp1c2UgOmNsIDpzYi1hbGllbikKPiAtICAgICAgKDpleHBv
cnQgIzp1c2UtcGF4KSkpKQo+ICsgICAgICAoOmV4cG9ydCAjOnVzZS1wYXgpCj4gKyAgICAgICg6
aW1wb3J0LWZyb20gIzpzYi1wY2wKPiArICAgICAgICM6c3RyaW5nLWxpbmVzICM6d2hpdGVzcGFj
ZXAgIzppbmRlbnRhdGlvbiAjOmJsYW5rcAo+ICsgICAgICAgIzpyZWluZGVudC1kb2NzdHJpbmcp
KSkpCj4gZGlmZiAtLWdpdCBhL2NvbnRyaWIvc2ItbWFudWFsL3RleGluZm8ubGlzcCBiL2NvbnRy
aWIvc2ItbWFudWFsL3RleGluZm8ubGlzcAo+IGluZGV4IGJhMTAxYzYxZS4uN2JhYmM0NmYwIDEw
MDY0NAo+IC0tLSBhL2NvbnRyaWIvc2ItbWFudWFsL3RleGluZm8ubGlzcAo+ICsrKyBiL2NvbnRy
aWIvc2ItbWFudWFsL3RleGluZm8ubGlzcAo+IEBAIC0xMCwyOCArMTAsMjkgQEAKPiAgICAgIChs
YW1iZGEtbGlzdCogbmFtZSBsb2NhdGl2ZS10eXBlKSkpCj4KPiAgKGRlZnVuICVkb2NzdHJpbmcg
KHhyZWYpCj4gLSAgKHZhbHVlcyAobGV0ICgobmFtZSAoeHJlZi1uYW1lIHhyZWYpKQo+IC0gICAg
ICAgICAgICAgICAgKGxvY2F0aXZlLXR5cGUgKHhyZWYtbG9jYXRpdmUtdHlwZSB4cmVmKSkpCj4g
LSAgICAgICAgICAgIChjYXNlIGxvY2F0aXZlLXR5cGUKPiAtICAgICAgICAgICAgICAoKGZ1bmN0
aW9uIHZhcmlhYmxlIGRlY2xhcmF0aW9uKQo+IC0gICAgICAgICAgICAgICAoZG9jdW1lbnRhdGlv
biBuYW1lIGxvY2F0aXZlLXR5cGUpKQo+IC0gICAgICAgICAgICAgICgoZ2VuZXJpYy1mdW5jdGlv
bikKPiAtICAgICAgICAgICAgICAgKGRvY3VtZW50YXRpb24gbmFtZSAnZnVuY3Rpb24pKQo+IC0g
ICAgICAgICAgICAgICgodHlwZSBjbGFzcyBzdHJ1Y3R1cmUgY29uZGl0aW9uKQo+IC0gICAgICAg
ICAgICAgICAoZG9jdW1lbnRhdGlvbiBuYW1lICd0eXBlKSkKPiAtICAgICAgICAgICAgICAodAo+
IC0gICAgICAgICAgICAgICAoY29uZCAoKGVxIGxvY2F0aXZlLXR5cGUgKGR1bW15ICdtYWNybykp
Cj4gLSAgICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnRhdGlvbiAobWFjcm8tZnVuY3Rpb24g
bmFtZSkgdCkpCj4gLSAgICAgICAgICAgICAgICAgICAgICgoZXEgbG9jYXRpdmUtdHlwZSAoZHVt
bXkgJ3NldGYtZnVuY3Rpb24pKQo+IC0gICAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50YXRp
b24gKGZkZWZpbml0aW9uIG5hbWUpIHQpKQo+IC0gICAgICAgICAgICAgICAgICAgICAoKGVxIGxv
Y2F0aXZlLXR5cGUgKGR1bW15ICdzZXRmLWdlbmVyaWMtZnVuY3Rpb24pKQo+IC0gICAgICAgICAg
ICAgICAgICAgICAgKGRvY3VtZW50YXRpb24gKGZkZWZpbml0aW9uIG5hbWUpIHQpKQo+IC0gICAg
ICAgICAgICAgICAgICAgICAodAo+IC0gICAgICAgICAgICAgICAgICAgICAgKGFzc2VydCBuaWwg
KCkgIlVuZXhwZWN0ZWQgbG9jYXRpdmUgdHlwZSBpbiB+Uy4iCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHhyZWYpKSkpKSkKPiAtICAgICAgICAgIDs7IFRvIGJlIGNvbXBhdGlibGUg
d2l0aCBQQVg6OkBQQUNLQUdFLUFORC1SRUFEVEFCTEUsIHdlCj4gLSAgICAgICAgICA7OyBhbHdh
eXMgcmV0dXJuIGEgbm9uLU5JTCBwYWNrYWdlLgo+IC0gICAgICAgICAgKGRvY3N0cmluZy1wYWNr
YWdlIHhyZWYpKSkKPiArICAobGV0ICgoc2ItcGNsOjoqbm9ybWFsaXplLXNiY2wtZG9jc3RyaW5n
cyogbmlsKSkKPiArICAgICh2YWx1ZXMgKGxldCAoKG5hbWUgKHhyZWYtbmFtZSB4cmVmKSkKPiAr
ICAgICAgICAgICAgICAgICAgKGxvY2F0aXZlLXR5cGUgKHhyZWYtbG9jYXRpdmUtdHlwZSB4cmVm
KSkpCj4gKyAgICAgICAgICAgICAgKGNhc2UgbG9jYXRpdmUtdHlwZQo+ICsgICAgICAgICAgICAg
ICAgKChmdW5jdGlvbiB2YXJpYWJsZSBkZWNsYXJhdGlvbikKPiArICAgICAgICAgICAgICAgICAo
ZG9jdW1lbnRhdGlvbiBuYW1lIGxvY2F0aXZlLXR5cGUpKQo+ICsgICAgICAgICAgICAgICAgKChn
ZW5lcmljLWZ1bmN0aW9uKQo+ICsgICAgICAgICAgICAgICAgIChkb2N1bWVudGF0aW9uIG5hbWUg
J2Z1bmN0aW9uKSkKPiArICAgICAgICAgICAgICAgICgodHlwZSBjbGFzcyBzdHJ1Y3R1cmUgY29u
ZGl0aW9uKQo+ICsgICAgICAgICAgICAgICAgIChkb2N1bWVudGF0aW9uIG5hbWUgJ3R5cGUpKQo+
ICsgICAgICAgICAgICAgICAgKHQKPiArICAgICAgICAgICAgICAgICAoY29uZCAoKGVxIGxvY2F0
aXZlLXR5cGUgKGR1bW15ICdtYWNybykpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1
bWVudGF0aW9uIChtYWNyby1mdW5jdGlvbiBuYW1lKSB0KSkKPiArICAgICAgICAgICAgICAgICAg
ICAgICAoKGVxIGxvY2F0aXZlLXR5cGUgKGR1bW15ICdzZXRmLWZ1bmN0aW9uKSkKPiArICAgICAg
ICAgICAgICAgICAgICAgICAgKGRvY3VtZW50YXRpb24gKGZkZWZpbml0aW9uIG5hbWUpIHQpKQo+
ICsgICAgICAgICAgICAgICAgICAgICAgICgoZXEgbG9jYXRpdmUtdHlwZSAoZHVtbXkgJ3NldGYt
Z2VuZXJpYy1mdW5jdGlvbikpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1bWVudGF0
aW9uIChmZGVmaW5pdGlvbiBuYW1lKSB0KSkKPiArICAgICAgICAgICAgICAgICAgICAgICAodAo+
ICsgICAgICAgICAgICAgICAgICAgICAgICAoYXNzZXJ0IG5pbCAoKSAiVW5leHBlY3RlZCBsb2Nh
dGl2ZSB0eXBlIGluIH5TLiIKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4cmVm
KSkpKSkpCj4gKyAgICAgICAgICAgIDs7IFRvIGJlIGNvbXBhdGlibGUgd2l0aCBQQVg6OkBQQUNL
QUdFLUFORC1SRUFEVEFCTEUsIHdlCj4gKyAgICAgICAgICAgIDs7IGFsd2F5cyByZXR1cm4gYSBu
b24tTklMIHBhY2thZ2UuCj4gKyAgICAgICAgICAgIChkb2NzdHJpbmctcGFja2FnZSB4cmVmKSkp
KQo+Cj4gIChkZWZ1biBsYW1iZGEtbGlzdCogKG5hbWUga2luZCkKPiAgICAoY2FzZSBraW5kCj4g
ZGlmZiAtLWdpdCBhL3NyYy9wY2wvZG9jdW1lbnRhdGlvbi5saXNwIGIvc3JjL3BjbC9kb2N1bWVu
dGF0aW9uLmxpc3AKPiBpbmRleCAzYmRlYmJjZjEuLjE1ZDljOTM1NyAxMDA2NDQKPiAtLS0gYS9z
cmMvcGNsL2RvY3VtZW50YXRpb24ubGlzcAo+ICsrKyBiL3NyYy9wY2wvZG9jdW1lbnRhdGlvbi5s
aXNwCj4gQEAgLTIxNiw3ICsyMTYsNDUgQEAKPiAgICAgICAgICAgICAgICAgICh0Cj4gICAgICAg
ICAgICAgICAgICAgeCkpKQo+ICAgICAgICAgIChkb2N1bWVudGF0aW9uIChjYWxsLW5leHQtbWV0
aG9kKSkpCj4gLSAgICAobWF5YmUtYWRkLWRlcHJlY2F0aW9uLW5vdGUgbmFtZXNwYWNlIG5hbWUg
ZG9jdW1lbnRhdGlvbikpKQo+ICsgICAgKG1heWJlLWFkZC1kZXByZWNhdGlvbi1ub3RlIG5hbWVz
cGFjZSBuYW1lCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vcm1hbGl6ZS1z
YmNsLWRvY3N0cmluZyB4IG5hbWUgZG9jLXR5cGUKPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50YXRpb24pKSkpCj4gKwo+
ICsoZGVmdmFyICpub3JtYWxpemUtc2JjbC1kb2NzdHJpbmdzKiB0KQo+ICsKPiArKGRlZnVuIG5v
cm1hbGl6ZS1zYmNsLWRvY3N0cmluZyAob2JqZWN0IG5hbWUgZG9jLXR5cGUgZG9jc3RyaW5nKQo+
ICsgIChpZiAoYW5kICpub3JtYWxpemUtc2JjbC1kb2NzdHJpbmdzKgo+ICsgICAgICAgICAgIGRv
Y3N0cmluZwo+ICsgICAgICAgICAgIChzYmNsLWRlZmluaXRpb24tbmFtZS1wIG9iamVjdCBuYW1l
IGRvYy10eXBlKSkKPiArICAgICAgKHN0cmluZy1yaWdodC10cmltICcoI1xOZXdsaW5lKSAobWFy
a2Rvd24tdG8tcGxhaW4tdGV4dAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAocmVpbmRlbnQtZG9jc3RyaW5nIGRvY3N0cmluZykpKQo+ICsgICAgICBkb2NzdHJpbmcp
KQo+ICsKPiArKGRlZnVuIG5vbi1zZXRmLW5hbWUgKG5hbWUpCj4gKyAgKGlmIChhbmQgKGNvbnNw
IG5hbWUpCj4gKyAgICAgICAgICAgKGVxIChmaXJzdCBuYW1lKSAnc2V0ZikKPiArICAgICAgICAg
ICAoY29uc3AgKGNkciBuYW1lKSkpCj4gKyAgICAgIChzZWNvbmQgbmFtZSkKPiArICAgICAgbmFt
ZSkpCj4gKwo+ICsoZGVmdW4gc2JjbC1wYWNrYWdlLW5hbWUtcCAobmFtZSkKPiArICAod2hlbiAo
c3RyaW5ncCBuYW1lKQo+ICsgICAgKG9yIChzdHJpbmc9IG5hbWUgIkNPTU1PTi1MSVNQIikKPiAr
ICAgICAgICAoYW5kICg+PSAobGVuZ3RoIG5hbWUpIDMpCj4gKyAgICAgICAgICAgICAoc3RyaW5n
PSBuYW1lICJTQi0iIDplbmQxIDMpKSkpKQo+ICsKPiArKGRlZnVuIHNiY2wtZGVmaW5pdGlvbi1u
YW1lLXAgKG9iamVjdCBuYW1lIGRvYy10eXBlKQo+ICsgIChhbmQgKG1lbWJlciBkb2MtdHlwZSAn
KHQgY29tcGlsZXItbWFjcm8gZnVuY3Rpb24gbWV0aG9kLWNvbWJpbmF0aW9uIHNldGYKPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUgdHlwZSB2YXJpYWJsZSBkZWNsYXJhdGlv
bikpCj4gKyAgICAgICAoaWYgKGFuZCAocGFja2FnZXAgb2JqZWN0KSAoZXEgZG9jLXR5cGUgdCkp
Cj4gKyAgICAgICAgICAgKHNiY2wtcGFja2FnZS1uYW1lLXAgKHBhY2thZ2UtbmFtZSBuYW1lKSkK
PiArICAgICAgICAgICAobGV0ICgobmFtZSAobm9uLXNldGYtbmFtZSBuYW1lKSkpCj4gKyAgICAg
ICAgICAgICAoaWYgKG51bGwgbmFtZSkKPiArICAgICAgICAgICAgICAgICAobnVsbCBvYmplY3Qp
Cj4gKyAgICAgICAgICAgICAgICAgKHdoZW4gKHN5bWJvbHAgbmFtZSkKPiArICAgICAgICAgICAg
ICAgICAgIChsZXQgKChwYWNrYWdlIChzeW1ib2wtcGFja2FnZSBuYW1lKSkpCj4gKyAgICAgICAg
ICAgICAgICAgICAgICh3aGVuIHBhY2thZ2UKPiArICAgICAgICAgICAgICAgICAgICAgICAoc2Jj
bC1wYWNrYWdlLW5hbWUtcCAocGFja2FnZS1uYW1lIHBhY2thZ2UpKSkpKSkpKSkpCj4KPiAgOzs7
IGZ1bmN0aW9ucywgbWFjcm9zLCBhbmQgc3BlY2lhbCBmb3Jtcwo+Cj4gQEAgLTQ2NywzICs1MDUs
MjEwIEBAIGNvbXBhcmlzb24uIikKPgo+ICAoZG9saXN0IChhcmdzIChwcm9nMSAqIWRvY3N0cmlu
Z3MqIChtYWt1bmJvdW5kICcqIWRvY3N0cmluZ3MqKSkpCj4gICAgKGFwcGx5ICMnKHNldGYgZG9j
dW1lbnRhdGlvbikgYXJncykpCj4gKwo+ICs7Ozs7IE1hcmtkb3duIHRvIHBsYWluIHRleHQgYWxv
bmcgdGhlIGxpbmVzIG9mIFNCLU1BTlVBTDo6TUFSS0RPV04tVE8tVEVYSU5GTwo+ICsKPiArKGRl
ZnVuIG1hcmtkb3duLXRvLXBsYWluLXRleHQgKHN0cmluZykKPiArICAobWFya2Rvd24tbGluZXMt
dG8tcGxhaW4tdGV4dCAoc3RyaW5nLWxpbmVzIHN0cmluZykgMCkpCj4gKwo+ICsoZGVmdW4gbWFy
a2Rvd24tbGluZXMtdG8tcGxhaW4tdGV4dCAobGluZXMgYmFzZS1pbmRlbnQpCj4gKyAgKHdpdGgt
b3V0cHV0LXRvLXN0cmluZyAob3V0KQo+ICsgICAgKGxldCAoKGJ1ZiBuaWwpKQo+ICsgICAgICAo
bGFiZWxzICgoZmx1c2ggKCkKPiArICAgICAgICAgICAgICAgICAod3JpdGUtbWQtcGFyYWdyYXBo
IGJ1ZiBvdXQpCj4gKyAgICAgICAgICAgICAgICAgKHNldHEgYnVmIG5pbCkpKQo+ICsgICAgICAg
IChsb29wIGZvciBsIGJlbG93IChsZW5ndGggbGluZXMpCj4gKyAgICAgICAgICAgICAgZm9yIGxp
bmUgPSAoc3ZyZWYgbGluZXMgbCkKPiArICAgICAgICAgICAgICBkbyAobGV0ICgobiAod3JpdGUt
bWQtYmxvY2sgbGluZXMgbCBiYXNlLWluZGVudCBvdXQgIydmbHVzaCkpKQo+ICsgICAgICAgICAg
ICAgICAgICAgKGlmIG4KPiArICAgICAgICAgICAgICAgICAgICAgICAoaW5jZiBsICgxLSBuKSkK
PiArICAgICAgICAgICAgICAgICAgICAgICAocHVzaCBsaW5lIGJ1ZikpKSkKPiArICAgICAgICAo
Zmx1c2gpKSkpKQo+ICsKPiArKGRlZnVuIHN0cmluZy1saW5lcyAoc3RyaW5nKQo+ICsgIChjb2Vy
Y2UgKHdpdGgtaW5wdXQtZnJvbS1zdHJpbmcgKHMgc3RyaW5nKQo+ICsgICAgICAgICAgICAobG9v
cCBmb3IgbGluZSA9IChyZWFkLWxpbmUgcyBuaWwgbmlsKQo+ICsgICAgICAgICAgICAgICAgICB3
aGlsZSBsaW5lIGNvbGxlY3QgbGluZSkpCj4gKyAgICAgICAgICAndmVjdG9yKSkKPiArCj4gKyhk
ZWZ1biB3aGl0ZXNwYWNlcCAoY2hhcikKPiArICAoZmluZCBjaGFyICMoI1xUYWIgI1xTcGFjZSAj
XFBhZ2UgI1xOZXdsaW5lICNcUmV0dXJuKSkpCj4gKwo+ICsoZGVmdW4gaW5kZW50YXRpb24gKGxp
bmUpCj4gKyAgKHBvc2l0aW9uLWlmLW5vdCAjJ3doaXRlc3BhY2VwIGxpbmUpKQo+ICsKPiArKGRl
ZnVuIGJsYW5rcCAobGluZSkKPiArICAobnVsbCAoaW5kZW50YXRpb24gbGluZSkpKQo+ICsKPiAr
KGRlZnVuIHdyaXRlLW1kLXBhcmFncmFwaCAocmV2ZXJzZWQtbGluZXMgb3V0KQo+ICsgICh3aGVu
IHJldmVyc2VkLWxpbmVzCj4gKyAgICAobGV0KiAoKHN0ciAoZm9ybWF0IG5pbCAifnt+QX5efiV+
fSIgKHJldmVyc2UgcmV2ZXJzZWQtbGluZXMpKSkKPiArICAgICAgICAgICAobGVuIChsZW5ndGgg
c3RyKSkKPiArICAgICAgICAgICAoYm91bmQgdCkpCj4gKyAgICAgIChsb29wIGZvciBpIGJlbG93
IGxlbgo+ICsgICAgICAgICAgICBmb3IgYyA9IChjaGFyIHN0ciBpKQo+ICsgICAgICAgICAgICBk
byAoY29uZAo+ICsgICAgICAgICAgICAgICAgICgoYW5kIGJvdW5kIChjaGFyPSBjICNcXCkpCj4g
KyAgICAgICAgICAgICAgICAgICh3aGVuIChhbmQgKDwgKDErIGkpIGxlbikKPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY2hhcj0gKGNoYXIgc3RyICgxKyBpKSkgI1xcKSkKPiArICAg
ICAgICAgICAgICAgICAgICAoaW5jZiBpKSkKPiArICAgICAgICAgICAgICAgICAgKHNldGYgYm91
bmQgbmlsKSkKPiArICAgICAgICAgICAgICAgICAoKGNoYXI9IGMgI1xgKQo+ICsgICAgICAgICAg
ICAgICAgICAoaW5jZiBpKQo+ICsgICAgICAgICAgICAgICAgICAobG9vcCByZXBlYXQgMgo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoPCBpIGxlbikKPiArICAgICAgICAgICAgICAg
ICAgICAgICAgd2hpbGUgKGNoYXI9IChjaGFyIHN0ciBpKSAjXFwpCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRvIChpbmNmIGkpKQo+ICsgICAgICAgICAgICAgICAgICAobG9vcCB3aGlsZSAo
PCBpIGxlbikKPiArICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNoYXIvPSAoY2hhciBz
dHIgaSkgI1xgKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBkbyAod3JpdGUtY2hhciAoY2hh
ciBzdHIgaSkgb3V0KQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5jZiBpKSkKPiAr
ICAgICAgICAgICAgICAgICAgKHNldHEgYm91bmQgbmlsKSkKPiArICAgICAgICAgICAgICAgICAo
dAo+ICsgICAgICAgICAgICAgICAgICAod3JpdGUtY2hhciBjIG91dCkKPiArICAgICAgICAgICAg
ICAgICAgKHNldHEgYm91bmQgKHdoaXRlc3BhY2VwIGMpKSkpKQo+ICsgICAgICAodGVycHJpIG91
dCkpKSkKPiArCj4gKyhkZWZ1biB3cml0ZS1tZC1ibG9jayAobGluZXMgaW5kZXggYmFzZS1pbmRl
bnQgb3V0IGZsdXNoLWZuKQo+ICsgIChvciAod3JpdGUtbWQtZmVuY2VkLWNvZGUgbGluZXMgaW5k
ZXggYmFzZS1pbmRlbnQgb3V0IGZsdXNoLWZuKQo+ICsgICAgICAod3JpdGUtbWQtaW5kZW50ZWQt
Y29kZSBsaW5lcyBpbmRleCBiYXNlLWluZGVudCBvdXQgZmx1c2gtZm4pCj4gKyAgICAgICh3cml0
ZS1tZC1ibG9ja3F1b3RlIGxpbmVzIGluZGV4IGJhc2UtaW5kZW50IG91dCBmbHVzaC1mbikKPiAr
ICAgICAgKHdyaXRlLW1kLW1hcmtkb3duLWl0ZW1pemUgbGluZXMgaW5kZXggYmFzZS1pbmRlbnQg
b3V0IGZsdXNoLWZuKSkpCj4gKwo+ICsoZGVmdW4gd3JpdGUtbWQtZmVuY2VkLWNvZGUgKGxpbmVz
IHN0YXJ0IGJhc2UtaW5kZW50IG91dCBmbHVzaC1mbikKPiArICAoZGVjbGFyZSAoaWdub3JlIGJh
c2UtaW5kZW50KSkKPiArICAobGV0KiAoKGxpbmUgKHN2cmVmIGxpbmVzIHN0YXJ0KSkKPiArICAg
ICAgICAgKGkgKGluZGVudGF0aW9uIGxpbmUpKSkKPiArICAgICh3aGVuIChhbmQgaSAoPj0gKGxl
bmd0aCBsaW5lKSAoKyBpIDMpKQo+ICsgICAgICAgICAgICAgICAoc3RyaW5nPSBsaW5lICJgYGAi
IDpzdGFydDEgaSA6ZW5kMSAoKyBpIDMpKSkKPiArICAgICAgKGZ1bmNhbGwgZmx1c2gtZm4pCj4g
KyAgICAgIChsb29wIGZvciBsIGZyb20gKDErIHN0YXJ0KSBiZWxvdyAobGVuZ3RoIGxpbmVzKQo+
ICsgICAgICAgICAgICBmb3IgbGluZSA9IChzdnJlZiBsaW5lcyBsKQo+ICsgICAgICAgICAgICBm
b3IgaW5kID0gKGluZGVudGF0aW9uIGxpbmUpCj4gKyAgICAgICAgICAgIGlmIChhbmQgaW5kICg+
PSAobGVuZ3RoIGxpbmUpICgrIGluZCAzKSkKPiArICAgICAgICAgICAgICAgICAgICAoc3RyaW5n
PSBsaW5lICJgYGAiIDpzdGFydDEgaW5kIDplbmQxICgrIGluZCAzKSkpCj4gKyAgICAgICAgICAg
ICAgZG8gKHJldHVybiAoLSAoMSsgbCkgc3RhcnQpKQo+ICsgICAgICAgICAgICBlbHNlIGRvICh3
cml0ZS1saW5lIGxpbmUgb3V0KQo+ICsgICAgICAgICAgICBmaW5hbGx5IChyZXR1cm4gKC0gbCBz
dGFydCkpKSkpKQo+ICsKPiArKGRlZnVuIHdyaXRlLW1kLWluZGVudGVkLWNvZGUgKGxpbmVzIHN0
YXJ0IGJhc2UtaW5kZW50IG91dCBmbHVzaC1mbikKPiArICAod2hlbiAob3IgKHplcm9wIHN0YXJ0
KQo+ICsgICAgICAgICAgICAoYmxhbmtwIChzdnJlZiBsaW5lcyAoMS0gc3RhcnQpKSkpCj4gKyAg
ICAobGV0ICgoaSAoaW5kZW50YXRpb24gKHN2cmVmIGxpbmVzIHN0YXJ0KSkpKQo+ICsgICAgICAo
d2hlbiAoYW5kIGkgKD49IGkgKCsgYmFzZS1pbmRlbnQgNCkpKQo+ICsgICAgICAgIChmdW5jYWxs
IGZsdXNoLWZuKQo+ICsgICAgICAgIChsb29wIGZvciBsIGZyb20gc3RhcnQgYmVsb3cgKGxlbmd0
aCBsaW5lcykKPiArICAgICAgICAgICAgICBmb3IgbGluZSA9IChzdnJlZiBsaW5lcyBsKQo+ICsg
ICAgICAgICAgICAgIGZvciBpbmQgPSAoaW5kZW50YXRpb24gbGluZSkKPiArICAgICAgICAgICAg
ICB3aGlsZSAob3IgKG51bGwgaW5kKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAoPj0gaW5k
ICgrIGJhc2UtaW5kZW50IDQpKSkKPiArICAgICAgICAgICAgICBkbyAod3JpdGUtbGluZSBsaW5l
IG91dCkKPiArICAgICAgICAgICAgICBmaW5hbGx5IChyZXR1cm4gKC0gbCBzdGFydCkpKSkpKSkK
PiArCj4gKyhkZWZ1biB3cml0ZS1tZC1ibG9ja3F1b3RlIChsaW5lcyBzdGFydCBiYXNlLWluZGVu
dCBvdXQgZmx1c2gtZm4pCj4gKyAgKHdoZW4gKG9yICh6ZXJvcCBzdGFydCkKPiArICAgICAgICAg
ICAgKGJsYW5rcCAoc3ZyZWYgbGluZXMgKDEtIHN0YXJ0KSkpKQo+ICsgICAgKGxldCAoKGkgKGlu
ZGVudGF0aW9uIChzdnJlZiBsaW5lcyBzdGFydCkpKSkKPiArICAgICAgKHdoZW4gKGFuZCBpICg8
PSBpICgrIGJhc2UtaW5kZW50IDMpKQo+ICsgICAgICAgICAgICAgICAgIChjaGFyPSAoY2hhciAo
c3ZyZWYgbGluZXMgc3RhcnQpIGkpICNcPikpCj4gKyAgICAgICAgKGZ1bmNhbGwgZmx1c2gtZm4p
Cj4gKyAgICAgICAgKGxldCAoc3RyaXBwZWQgcHJlZml4ZXMpCj4gKyAgICAgICAgICAobG9vcCBm
b3IgbCBmcm9tIHN0YXJ0IGJlbG93IChsZW5ndGggbGluZXMpCj4gKyAgICAgICAgICAgICAgICBm
b3IgbGluZSA9IChzdnJlZiBsaW5lcyBsKQo+ICsgICAgICAgICAgICAgICAgZm9yIGluZCA9IChp
bmRlbnRhdGlvbiBsaW5lKQo+ICsgICAgICAgICAgICAgICAgd2hpbGUgKGFuZCBpbmQgKDw9IGlu
ZCAoKyBiYXNlLWluZGVudCAzKSkKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXI9
IChjaGFyIGxpbmUgaW5kKSAjXD4pKQo+ICsgICAgICAgICAgICAgICAgZG8gKGxldCAoKGMtc3Rh
cnQgKGlmIChhbmQgKDwgKDErIGluZCkgKGxlbmd0aCBsaW5lKSkKPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyPSAoY2hhciBsaW5lICgxKyBpbmQpKSAj
XFNwYWNlKSkKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBpbmQg
MikgKDErIGluZCkpKSkKPiArICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKHN1YnNlcSBsaW5l
IGMtc3RhcnQpIHN0cmlwcGVkKQo+ICsgICAgICAgICAgICAgICAgICAgICAocHVzaCAoc3Vic2Vx
IGxpbmUgMCBjLXN0YXJ0KSBwcmVmaXhlcykpKQo+ICsgICAgICAgICAgKGxldCAoKGlubmVyICht
YXJrZG93bi1saW5lcy10by1wbGFpbi10ZXh0Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIChj
b2VyY2UgKG5yZXZlcnNlIHN0cmlwcGVkKSAndmVjdG9yKSAwKSkpCj4gKyAgICAgICAgICAgIChs
b29wIGZvciBwcmVmaXggaW4gKG5yZXZlcnNlIHByZWZpeGVzKQo+ICsgICAgICAgICAgICAgICAg
ICBmb3IgbGluZSBhY3Jvc3MgKHN0cmluZy1saW5lcyBpbm5lcikKPiArICAgICAgICAgICAgICAg
ICAgZG8gKHdyaXRlLXN0cmluZyBwcmVmaXggb3V0KQo+ICsgICAgICAgICAgICAgICAgICAgICAo
d3JpdGUtbGluZSBsaW5lIG91dCkpKQo+ICsgICAgICAgICAgKGxlbmd0aCBwcmVmaXhlcykpKSkp
KQo+ICsKPiArKGRlZnVuIG1heWJlLWl0ZW1pemUtb2Zmc2V0IChsaW5lKQo+ICsgIChsZXQgKChp
IChpbmRlbnRhdGlvbiBsaW5lKSkpCj4gKyAgICAod2hlbiAoYW5kIGkgKDwgKDErIGkpIChsZW5n
dGggbGluZSkpCj4gKyAgICAgICAgICAgICAgIChmaW5kIChjaGFyIGxpbmUgaSkgIi0qIikKPiAr
ICAgICAgICAgICAgICAgKGNoYXI9IChjaGFyIGxpbmUgKDErIGkpKSAjXFNwYWNlKSkKPiArICAg
ICAgaSkpKQo+ICsKPiArKGRlZnVuIHdyaXRlLW1kLW1hcmtkb3duLWl0ZW1pemUgKGxpbmVzIHN0
YXJ0IGJhc2UtaW5kZW50IG91dCBmbHVzaC1mbikKPiArICAod2hlbiAoZXFsIChtYXliZS1pdGVt
aXplLW9mZnNldCAoc3ZyZWYgbGluZXMgc3RhcnQpKSBiYXNlLWluZGVudCkKPiArICAgIChmdW5j
YWxsIGZsdXNoLWZuKQo+ICsgICAgKGxldCAoKGNoaWxkICgrIGJhc2UtaW5kZW50IDQpKQo+ICsg
ICAgICAgICAgKGJ1ZiBuaWwpKQo+ICsgICAgICAobGFiZWxzICgoZmx1c2ggKCkKPiArICAgICAg
ICAgICAgICAgICAod3JpdGUtbWQtcGFyYWdyYXBoIGJ1ZiBvdXQpCj4gKyAgICAgICAgICAgICAg
ICAgKHNldHEgYnVmIG5pbCkpKQo+ICsgICAgICAgIChsb29wIGZvciBsIGZyb20gc3RhcnQgYmVs
b3cgKGxlbmd0aCBsaW5lcykKPiArICAgICAgICAgICAgICBmb3IgbGluZSA9IChzdnJlZiBsaW5l
cyBsKQo+ICsgICAgICAgICAgICAgIGZvciBpbmQgPSAoaW5kZW50YXRpb24gbGluZSkKPiArICAg
ICAgICAgICAgICBkbyAoY29uZCAoKGJsYW5rcCBsaW5lKQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAoZmx1c2gpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICh3cml0ZS1saW5lIGxpbmUg
b3V0KSkKPiArICAgICAgICAgICAgICAgICAgICAgICAoKGVxbCAobWF5YmUtaXRlbWl6ZS1vZmZz
ZXQgbGluZSkgYmFzZS1pbmRlbnQpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIChmbHVzaCkK
PiArICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggbGluZSBidWYpKQo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICgoPj0gaW5kIGNoaWxkKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAo
bGV0ICgobiAod3JpdGUtbWQtYmxvY2sgbGluZXMgbCBjaGlsZCBvdXQgIydmbHVzaCkpKQo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBuCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChpbmNmIGwgKDEtIG4pKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
cHVzaCBsaW5lIGJ1ZikpKSkKPiArICAgICAgICAgICAgICAgICAgICAgICAoKD4gaW5kIGJhc2Ut
aW5kZW50KQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAocHVzaCBsaW5lIGJ1ZikpCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgKHQKPiArICAgICAgICAgICAgICAgICAgICAgICAgKGxvb3At
ZmluaXNoKSkpCj4gKyAgICAgICAgICAgICAgZmluYWxseSAoZmx1c2gpCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAocmV0dXJuICgtIGwgc3RhcnQpKSkpKSkpCj4gKwo+ICsKPiArOzs7IE5vcm1h
bGl6ZSBkb2NzdHJpbmcgaW5kZW50YXRpb24gYnkgc3RyaXBwaW5nIHRoZSBsb25nZXN0IHJ1biBv
Zgo+ICs7OzsgbGVhZGluZyBzcGFjZXMgY29tbW9uIHRvIGFsbCBub24tYmxhbmsgbGluZXMgZXhj
ZXB0IHRoZSBmaXJzdC4KPiArKGRlZnVuIHJlaW5kZW50LWRvY3N0cmluZyAoZG9jc3RyaW5nKQo+
ICsgIChsZXQgKChpbmRlbnRhdGlvbiAoZG9jc3RyaW5nLWluZGVudGF0aW9uIGRvY3N0cmluZykp
KQo+ICsgICAgKHN0cmlwLWRvY3N0cmluZy1pbmRlbnQgZG9jc3RyaW5nIGluZGVudGF0aW9uIHQp
KSkKPiArCj4gKzs7OyBSZXR1cm4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGxlYWRpbmcgc3BhY2Vz
IGluIG5vbi1ibGFuayBsaW5lcwo+ICs7OzsgYWZ0ZXIgdGhlIGZpcnN0Lgo+ICsoZGVmdW4gZG9j
c3RyaW5nLWluZGVudGF0aW9uIChkb2NzdHJpbmcgJmtleSAoZmlyc3QtbGluZS1zcGVjaWFsLXAg
dCkpCj4gKyAgKGxldCAoKG4tbWluLWluZGVudGF0aW9uIG5pbCkpCj4gKyAgICAod2l0aC1pbnB1
dC1mcm9tLXN0cmluZyAocyBkb2NzdHJpbmcpCj4gKyAgICAgIChsb29wIGZvciBpIHVwZnJvbSAw
Cj4gKyAgICAgICAgICAgIGZvciBsaW5lID0gKHJlYWQtbGluZSBzIG5pbCBuaWwpCj4gKyAgICAg
ICAgICAgIHdoaWxlIGxpbmUKPiArICAgICAgICAgICAgZG8gKHdoZW4gKGFuZCAob3IgKG5vdCBm
aXJzdC1saW5lLXNwZWNpYWwtcCkgKHBsdXNwIGkpKQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgIChub3QgKGJsYW5rcCBsaW5lKSkpCj4gKyAgICAgICAgICAgICAgICAgKHdoZW4gKG9yIChu
dWxsIG4tbWluLWluZGVudGF0aW9uKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAoPCAo
bi1sZWFkaW5nLXNwYWNlcyBsaW5lKSBuLW1pbi1pbmRlbnRhdGlvbikpCj4gKyAgICAgICAgICAg
ICAgICAgICAoc2V0cSBuLW1pbi1pbmRlbnRhdGlvbiAobi1sZWFkaW5nLXNwYWNlcyBsaW5lKSkp
KSkpCj4gKyAgICAob3Igbi1taW4taW5kZW50YXRpb24gMCkpKQo+ICsKPiArKGRlZnVuIG4tbGVh
ZGluZy1zcGFjZXMgKGxpbmUpCj4gKyAgKGxldCAoKG4gMCkpCj4gKyAgICAobG9vcCBmb3IgaSBi
ZWxvdyAobGVuZ3RoIGxpbmUpCj4gKyAgICAgICAgICB3aGlsZSAoY2hhcj0gKGFyZWYgbGluZSBp
KSAjXFNwYWNlKQo+ICsgICAgICAgICAgZG8gKGluY2YgbikpCj4gKyAgICBuKSkKPiArCj4gKyhk
ZWZ1biBzdHJpcC1kb2NzdHJpbmctaW5kZW50IChkb2NzdHJpbmcgaW5kZW50YXRpb24gZmlyc3Qt
bGluZS1zcGVjaWFsLXApCj4gKyAgKHdpdGgtb3V0cHV0LXRvLXN0cmluZyAob3V0KQo+ICsgICAg
KHdpdGgtaW5wdXQtZnJvbS1zdHJpbmcgKHMgZG9jc3RyaW5nKQo+ICsgICAgICAobG9vcCBmb3Ig
aSB1cGZyb20gMAo+ICsgICAgICAgICAgICBkbyAobXVsdGlwbGUtdmFsdWUtYmluZCAobGluZSBt
aXNzaW5nLW5ld2xpbmUtcCkKPiArICAgICAgICAgICAgICAgICAgIChyZWFkLWxpbmUgcyBuaWwg
bmlsKQo+ICsgICAgICAgICAgICAgICAgICh1bmxlc3MgbGluZQo+ICsgICAgICAgICAgICAgICAg
ICAgKHJldHVybikpCj4gKyAgICAgICAgICAgICAgICAgKHdyaXRlLXN0cmluZyAoaWYgKGFuZCBm
aXJzdC1saW5lLXNwZWNpYWwtcAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHplcm9wIGkpKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp
bmUKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic2VxIGxpbmUgKG1p
biAobGVuZ3RoIGxpbmUpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5kZW50YXRpb24pKSkKPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG91dCkKPiArICAgICAgICAgICAgICAgICAodW5sZXNzIG1pc3NpbmctbmV3bGluZS1w
Cj4gKyAgICAgICAgICAgICAgICAgICAodGVycHJpIG91dCkpKSkpKSkKPgo+IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCj4KPgo+IGhvb2tzL3Bvc3QtcmVjZWl2ZQo+IC0tCj4gU0JDTAo+Cj4KPiBfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IFNiY2wtY29tbWl0cyBtYWls
aW5nIGxpc3QKPiBTYmNsLWNvbW1pdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cj4gaHR0cHM6Ly9s
aXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vc2JjbC1jb21taXRzCgoKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KU2JjbC1jb21taXRzIG1h
aWxpbmcgbGlzdApTYmNsLWNvbW1pdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlz
dHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL3NiY2wtY29tbWl0cwo=