SF.net SVN: phpwiki:[11109] trunk

carstenklapp--- via phpwiki-checkins <[email protected]> Sat, 15 Feb 2025 05:18:08 +0000
Newsgroups gmane.comp.web.wiki.phpwiki.checkins
Message-ID <[email protected]>
UmV2aXNpb246IDExMTA5CiAgICAgICAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvcGhwd2lr
aS9jb2RlLzExMTA5CkF1dGhvcjogICBjYXJzdGVua2xhcHAKRGF0ZTogICAgIDIwMjUtMDItMTUg
MDU6MTg6MDggKzAwMDAgKFNhdCwgMTUgRmViIDIwMjUpCkxvZyBNZXNzYWdlOgotLS0tLS0tLS0t
LQpCdWdmaXhlcyBhbmQgaW1wcm92ZW1lbnRzIHRvIGxvYWRpbmcvc2F2aW5nIHBhZ2VzIGFzIGZp
bGVzLiBzZWUgUmVsZWFzZU5vdGVzLgoKTW9kaWZpZWQgUGF0aHM6Ci0tLS0tLS0tLS0tLS0tCiAg
ICB0cnVuay9saWIvUGFnZVBlcm0ucGhwCiAgICB0cnVuay9saWIvbG9hZHNhdmUucGhwCiAgICB0
cnVuay9saWIvbWFpbi5waHAKICAgIHRydW5rL2xpYi9taW1lbGliLnBocAogICAgdHJ1bmsvbGli
L3BsdWdpbi9QYWdlRHVtcC5waHAKICAgIHRydW5rL2xpYi9wbHVnaW4vV2lraUZvcm0ucGhwCiAg
ICB0cnVuay9wZ3NyYy9SZWxlYXNlTm90ZXMKCk1vZGlmaWVkOiB0cnVuay9saWIvUGFnZVBlcm0u
cGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHRydW5rL2xpYi9QYWdlUGVybS5waHAJMjAyNS0wMi0xNCAyMzoy
MjozNyBVVEMgKHJldiAxMTEwOCkKKysrIHRydW5rL2xpYi9QYWdlUGVybS5waHAJMjAyNS0wMi0x
NSAwNToxODowOCBVVEMgKHJldiAxMTEwOSkKQEAgLTE5NCw2ICsxOTQsNyBAQAogICAgICAgICBj
YXNlICd6aXBodG1sJzoKICAgICAgICAgY2FzZSAnZHVtcGh0bWwnOgogICAgICAgICBjYXNlICdk
dW1wc2VyaWFsJzoKKyAgICAgICAgY2FzZSAnZHVtcHN2bic6CiAgICAgICAgICAgICByZXR1cm4g
J2R1bXAnOwogCiAgICAgICAgIC8vIGludmVudCBhIG5ldyBhY2Nlc3MtcGVybSBtYXNzZWRpdD8g
b3Igc3dpdGNoIGJhY2sgdG8gY2hhbmdlLCBvciBrZWVwIGl0IGF0IGVkaXQ/CgpNb2RpZmllZDog
dHJ1bmsvbGliL2xvYWRzYXZlLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9saWIvbG9hZHNhdmUu
cGhwCTIwMjUtMDItMTQgMjM6MjI6MzcgVVRDIChyZXYgMTExMDgpCisrKyB0cnVuay9saWIvbG9h
ZHNhdmUucGhwCTIwMjUtMDItMTUgMDU6MTg6MDggVVRDIChyZXYgMTExMDkpCkBAIC0xMjAsNyAr
MTIwLDcgQEAKIAogLyoqCiAgKiBGb3IgcmVmZXJlbmNlIHNlZToKLSAqIGh0dHA6Ly93d3cubmFj
cy51Y2kuZWR1L2luZGl2L2Vob29kL01JTUUvMjA0NS9yZmMyMDQ1Lmh0bWwKKyAqIGh0dHBzOi8v
d3d3LmlldGYub3JnL3JmYy9yZmMyMDQ1LnR4dAogICogaHR0cDovL3d3dy5mYXFzLm9yZy9yZmNz
L3JmYzIwNDUuaHRtbAogICogKFJGQyAxNTIxIGhhcyBiZWVuIHN1cGVyY2VlZGVkIGJ5IFJGQyAy
MDQ1ICYgb3RoZXJzKS4KICAqCkBAIC0xMjgsOSArMTI4LDEwIEBACiAvKgogICogQHBhcmFtIFdp
a2lEQl9QYWdlICRwYWdlCiAgKiBAcGFyYW0gaW50ICRudmVyc2lvbnMKKyAqIEBwYXJhbSBib29s
ICRmb3Jzdm4KICAqIEByZXR1cm4gc3RyaW5nCiAgKi8KLWZ1bmN0aW9uIE1haWxpZnlQYWdlKCRw
YWdlLCAkbnZlcnNpb25zID0gMSkKK2Z1bmN0aW9uIE1haWxpZnlQYWdlKCRwYWdlLCAkbnZlcnNp
b25zID0gMSwgJGZvcnN2biA9IGZhbHNlKQogewogICAgICRjdXJyZW50ID0gJHBhZ2UtPmdldEN1
cnJlbnRSZXZpc2lvbihmYWxzZSk7CiAgICAgJGhlYWQgPSAnJzsKQEAgLTE0Niw3ICsxNDcsMjAg
QEAKICAgICAgICAgLy8gcmVxdWlyZXMgYSBkZXN0aW5hdGlvbiBmaWVsZC4KICAgICAgICAgJGhl
YWQgLj0gIlRvOiAkZnJvbSAoUGhwV2lraSlcclxuIjsKICAgICB9Ci0gICAgJGhlYWQgLj0gIkRh
dGU6ICIgLiBSZmMyODIyRGF0ZVRpbWUoJGN1cnJlbnQtPmdldCgnbXRpbWUnKSkgLiAiXHJcbiI7
CisgICAgaWYgKCEkZm9yc3ZuKSB7CisgICAgICAgIC8vIG5vcm1hbCBkdW1wcyB1c2UgZGF0ZSBt
b2RpZmllZAorICAgICAgICAkaGVhZCAuPSAiRGF0ZTogIiAuIFJmYzI4MjJEYXRlVGltZSgkY3Vy
cmVudC0+Z2V0KCdtdGltZScpKSAuICJcclxuIjsKKyAgICB9IGVsc2UgeworICAgICAgICAkdXNl
X3BhZ2VfY3JlYXRpb25kYXRlX2luc3RlYWQgPSAwOworICAgICAgICBpZiAoJHVzZV9wYWdlX2Ny
ZWF0aW9uZGF0ZV9pbnN0ZWFkKSB7CisgICAgICAgICAgICAkaGVhZCAuPSAiRGF0ZTogIiAuIFJm
YzI4MjJEYXRlVGltZSgkcGFnZS0+Z2V0KCdkYXRlJykpIC4gIlxyXG4iOworICAgICAgICAgICAg
Ly8gZm9yIHNwZWNpYWwgcGFnZWR1bXBzIHdoZXJlIHlvdSBkb24ndCB3YW50IHRvIGNoYW5nZSB0
aGUgZGF0ZQorICAgICAgICAgICAgLy8gIGluIGR1bXBlZCBwZ3NyYywgdXNlIGNyZWF0aW9uIGRh
dGUKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIG5vcm1hbCBkdW1wcyB1c2UgZGF0
ZSBtb2RpZmllZAorICAgICAgICAgICAgJGhlYWQgLj0gIkRhdGU6ICIgLiBSZmMyODIyRGF0ZVRp
bWUoJGN1cnJlbnQtPmdldCgnbXRpbWUnKSkgLiAiXHJcbiI7CisgICAgICAgIH0KKyAgICB9CiAg
ICAgJGhlYWQgLj0gc3ByaW50ZigKICAgICAgICAgIk1pbWUtVmVyc2lvbjogMS4wIChQcm9kdWNl
ZCBieSBQaHBXaWtpICVzKVxyXG4iLAogICAgICAgICBQSFBXSUtJX1ZFUlNJT04KQEAgLTE1NSw3
ICsxNjksNyBAQAogICAgICRpdGVyID0gJHBhZ2UtPmdldEFsbFJldmlzaW9ucygpOwogICAgICRw
YXJ0cyA9IGFycmF5KCk7CiAgICAgd2hpbGUgKCRyZXZpc2lvbiA9ICRpdGVyLT5uZXh0KCkpIHsK
LSAgICAgICAgJHBhcnRzW10gPSBNaW1laWZ5UGFnZVJldmlzaW9uKCRwYWdlLCAkcmV2aXNpb24p
OworICAgICAgICAkcGFydHNbXSA9IE1pbWVpZnlQYWdlUmV2aXNpb24oJHBhZ2UsICRyZXZpc2lv
biwgJGZvcnN2bik7CiAgICAgICAgIGlmICgkbnZlcnNpb25zID4gMCAmJiBjb3VudCgkcGFydHMp
ID49ICRudmVyc2lvbnMpIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xOTIs
NyArMjA2LDcgQEAKICAgICAgICAgZ2xvYmFsICRyZXF1ZXN0OwogICAgICAgICAkYWN0aW9uID0g
JHJlcXVlc3QtPmdldEFyZygnYWN0aW9uJyk7CiAgICAgfQotICAgIGlmICgkYWN0aW9uICE9ICdk
dW1wc2VyaWFsJykgeyAvLyB6aXAsIHppcGh0bWwsIGR1bXBodG1sCisgICAgaWYgKCgkYWN0aW9u
ICE9ICdkdW1wc2VyaWFsJykgJiYgKCRhY3Rpb24gIT0gJ2R1bXBzdm4nKSkgeyAvLyB6aXAsIHpp
cGh0bWwsIGR1bXBodG1sCiAgICAgICAgIC8vIEZvciBldmVyeSAlMkYgd2Ugd2lsbCBuZWVkIHRv
IG1rZGlyIC1wIGRpcm5hbWUoJHBhZ2VuYW1lKQogICAgICAgICAkZW5jID0gcHJlZ19yZXBsYWNl
KCcvJTJGLycsICcvJywgJGVuYyk7CiAgICAgfQpAQCAtMjk2LDcgKzMxMCw3IEBACiAKICAgICAk
RXJyb3JNYW5hZ2VyLT5wb3BFcnJvckhhbmRsZXIoKTsKIAotICAgIGhlYWRlcignQ29udGVudC1U
cmFuc2Zlci1FbmNvZGluZzogYmluYXJ5Jyk7CisgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IGFw
cGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpOwogICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlv
bjogYXR0YWNobWVudDsgZmlsZW5hbWU9IicuJHppcG5hbWUuJyInKTsKICAgICBoZWFkZXIoJ0Nv
bnRlbnQtTGVuZ3RoOiAnLmZpbGVzaXplKCR0bXBmaWxlbmFtZSkpOwogCkBAIC0zMDgsNiArMzIy
LDEyOSBAQAogLyoqCiAgKiBAcGFyYW0gV2lraVJlcXVlc3QgJHJlcXVlc3QKICAqLworZnVuY3Rp
b24gRHVtcFNWTlRvRGlyKCYkcmVxdWVzdCkgLy90aGlzIGlzIG1vc3RseSBhIGNvcHkgb2YgRHVt
cFRvRGlyCit7CisgICAgJGRpcmVjdG9yeSA9ICRyZXF1ZXN0LT5nZXRBcmcoJ2RpcmVjdG9yeScp
OworICAgIGlmIChlbXB0eSgkZGlyZWN0b3J5KSkgeworICAgICAgICAkZGlyZWN0b3J5ID0gREVG
QVVMVF9EVU1QX0RJUjsKKyAgICB9CisgICAgaWYgKGVtcHR5KCRkaXJlY3RvcnkpKSB7CisgICAg
ICAgICRodG1sID0gSFRNTDo6cCgKKyAgICAgICAgICAgIGFycmF5KCdjbGFzcycgPT4gJ2Vycm9y
JyksCisgICAgICAgICAgICBfKCJZb3UgbXVzdCBzcGVjaWZ5IGEgZGlyZWN0b3J5IHRvIGR1bXAg
dG8iKQorICAgICAgICApOworICAgICAgICBTdGFydExvYWREdW1wKCRyZXF1ZXN0LCBfKCJEdW1w
aW5nIFBhZ2VzIGZvciBkZXZlbG9wZXIiKSwgJGh0bWwpOworICAgICAgICBFbmRMb2FkRHVtcCgk
cmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBzZWUgaWYgd2UgY2Fu
IGFjY2VzcyB0aGUgZGlyZWN0b3J5IHRoZSB1c2VyIHdhbnRzIHVzIHRvIHVzZQorICAgIGlmICgh
ZmlsZV9leGlzdHMoJGRpcmVjdG9yeSkpIHsKKyAgICAgICAgaWYgKCFta2Rpcl9wKCRkaXJlY3Rv
cnksIDA3NTUpKSB7CisgICAgICAgICAgICAkaHRtbCA9IEhUTUw6OnAoCisgICAgICAgICAgICAg
ICAgYXJyYXkoJ2NsYXNzJyA9PiAnZXJyb3InKSwKKyAgICAgICAgICAgICAgICBmbXQoIkNhbm5v
dCBjcmVhdGUgZGlyZWN0b3J5IOKAnCVz4oCdIiwgJGRpcmVjdG9yeSkKKyAgICAgICAgICAgICk7
CisgICAgICAgICAgICBTdGFydExvYWREdW1wKCRyZXF1ZXN0LCBfKCJEdW1waW5nIFBhZ2VzIGZv
ciBkZXZlbG9wZXIiKSwgJGh0bWwpOworICAgICAgICAgICAgRW5kTG9hZER1bXAoJHJlcXVlc3Qp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGh0
bWwgPSBIVE1MOjpwKGZtdCgKKyAgICAgICAgICAgICAgICAiQ3JlYXRlZCBkaXJlY3Rvcnkg4oCc
JXPigJ0gZm9yIHRoZSBwYWdlIGR1bXAuLi4iLAorICAgICAgICAgICAgICAgICRkaXJlY3RvcnkK
KyAgICAgICAgICAgICkpOworICAgICAgICB9CisgICAgfSBlbHNlaWYgKCFpc193cml0YWJsZSgk
ZGlyZWN0b3J5KSkgeworICAgICAgICAkaHRtbCA9IEhUTUw6OnAoCisgICAgICAgICAgICBhcnJh
eSgnY2xhc3MnID0+ICdlcnJvcicpLAorICAgICAgICAgICAgZm10KAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJDYW5ub3QgdXNlIGRpcmVjdG9yeSDigJwlc+KAnSwgaXQgaXMgbm90IHdy
aXRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGlyZWN0b3J5CisgICAgICAg
ICAgICAgICAgICAgICAgICApCisgICAgICAgICk7CisgICAgICAgIFN0YXJ0TG9hZER1bXAoJHJl
cXVlc3QsIF8oIkR1bXBEdW1waW5nIFBhZ2VzIGZvciBTVk4iKSwgJGh0bWwpOworICAgICAgICBF
bmRMb2FkRHVtcCgkcmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAg
ICAgICAkaHRtbCA9IEhUTUw6OnAoZm10KCJVc2luZyBkaXJlY3Rvcnkg4oCcJXPigJ0iLCAkZGly
ZWN0b3J5KSk7CisgICAgfQorCisgICAgU3RhcnRMb2FkRHVtcCgkcmVxdWVzdCwgXygiRHVtcGlu
ZyBQYWdlcyBmb3IgU1ZOIiksICRodG1sKTsKKworICAgICRkYmkgPSYgJHJlcXVlc3QtPl9kYmk7
CisgICAgJHRoaXNwYWdlID0gJHJlcXVlc3QtPmdldEFyZygncGFnZW5hbWUnKTsgLy8gZm9yICJS
ZXR1cm4gdG8gLi4uIgorICAgIGlmICgkZXhjbHVkZSA9ICRyZXF1ZXN0LT5nZXRBcmcoJ2V4Y2x1
ZGUnKSkgeyAvLyBleGNsdWRlIHdoaWNoIHBhZ2VuYW1lcworICAgICAgICAkZXhjbHVkZUxpc3Qg
PSBleHBsb2RlUGFnZUxpc3QoJGV4Y2x1ZGUpOworICAgIH0gZWxzZSB7CisgICAgICAgICRleGNs
dWRlTGlzdCA9IGFycmF5KCk7CisgICAgfQorICAgICRpbmNsdWRlX2VtcHR5ID0gZmFsc2U7Cisg
ICAgaWYgKCRyZXF1ZXN0LT5nZXRBcmcoJ2luY2x1ZGUnKSA9PSAnZW1wdHknKSB7CisgICAgICAg
ICRpbmNsdWRlX2VtcHR5ID0gdHJ1ZTsKKyAgICB9CisgICAgaWYgKCRwYWdlcyA9ICRyZXF1ZXN0
LT5nZXRBcmcoJ3BhZ2VzJykpIHsgLy8gd2hpY2ggcGFnZW5hbWVzCisgICAgICAgIGlmICgkcGFn
ZXMgPT0gJ1tdJykgeyAvLyBjdXJyZW50IHBhZ2UKKyAgICAgICAgICAgICRwYWdlcyA9ICR0aGlz
cGFnZTsKKyAgICAgICAgfQorICAgICAgICAkcGFnZV9pdGVyID0gbmV3IFdpa2lEQl9BcnJheV9Q
YWdlSXRlcmF0b3IoZXhwbG9kZVBhZ2VMaXN0KCRwYWdlcykpOworICAgIH0gZWxzZSB7CisgICAg
ICAgICRwYWdlX2l0ZXIgPSAkZGJpLT5nZXRBbGxQYWdlcygkaW5jbHVkZV9lbXB0eSwgZmFsc2Us
IGZhbHNlLCAkZXhjbHVkZUxpc3QpOworICAgIH0KKworICAgICRyZXF1ZXN0X2FyZ3MgPSAkcmVx
dWVzdC0+YXJnczsKKyAgICAkdGltZW91dCA9ICghJHJlcXVlc3QtPmdldEFyZygnc3RhcnRfZGVi
dWcnKSkgPyAzMCA6IDI0MDsKKworICAgIHdoaWxlICgkcGFnZSA9ICRwYWdlX2l0ZXItPm5leHQo
KSkgeworICAgICAgICAkcmVxdWVzdC0+YXJncyA9ICRyZXF1ZXN0X2FyZ3M7IC8vIHNvbWUgcGx1
Z2lucyBtaWdodCBjaGFuZ2UgdGhlbSAoZXNwLiBvbiBQT1NUKQorICAgICAgICBsb25nZXJfdGlt
ZW91dCgkdGltZW91dCk7IC8vIFJlc2V0IHdhdGNoZG9nCisKKyAgICAgICAgJHBhZ2VuYW1lID0g
JHBhZ2UtPmdldE5hbWUoKTsKKyAgICAgICAgUHJpbnRYTUwoSFRNTDo6YnIoKSwgJHBhZ2VuYW1l
LCAnIC4uLiAnKTsKKyAgICAgICAgZmx1c2goKTsKKworICAgICAgICBpZiAoaW5fYXJyYXkoJHBh
Z2VuYW1lLCAkZXhjbHVkZUxpc3QpKSB7CisgICAgICAgICAgICBQcmludFhNTChfKCJTa2lwcGVk
IikpOworICAgICAgICAgICAgZmx1c2goKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisgICAgICAgIC8vJGZpbGVuYW1lID0gRmlsZW5hbWVGb3JQYWdlKCRwYWdlbmFtZSwgJ2R1
bXBzdm4nKTsvL3doeSBkb2Vzbid0IHRoaXMgd29ya3p6egorICAgICAgICAkZmlsZW5hbWUgPSBy
YXd1cmxlbmNvZGUoJHBhZ2VuYW1lKTsvL3RoaXMgd29ya3MKKyAgICAgICAgJG1zZyA9IEhUTUwo
KTsKKyAgICAgICAgaWYgKCRwYWdlLT5nZXROYW1lKCkgIT0gJGZpbGVuYW1lKSB7CisgICAgICAg
ICAgICAkbXNnLT5wdXNoQ29udGVudCgKKyAgICAgICAgICAgICAgICBIVE1MOjpzbWFsbChmbXQo
InNhdmVkIGFzICVzIiwgJGZpbGVuYW1lKSksCisgICAgICAgICAgICAgICAgIiAuLi4gIgorICAg
ICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkcmVxdWVzdC0+Z2V0QXJnKCdp
bmNsdWRlJykgPT0gJ2FsbCcpIHsKKyAgICAgICAgICAgICRkYXRhID0gTWFpbGlmeVBhZ2UoJHBh
Z2UsIDAsIHRydWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGRhdGEgPSBNYWls
aWZ5UGFnZSgkcGFnZSwgMSwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISgkZmQg
PSBmb3BlbigkZGlyZWN0b3J5IC4gIi8iIC4gJGZpbGVuYW1lLCAid2IiKSkpIHsKKyAgICAgICAg
ICAgICRtc2ctPnB1c2hDb250ZW50KEhUTUw6OnN0cm9uZyhmbXQoCisgICAgICAgICAgICAgICAg
ImNvdWxkbid0IG9wZW4gZmlsZSDigJwlc+KAnSBmb3Igd3JpdGluZyIsCisgICAgICAgICAgICAg
ICAgIiRkaXJlY3RvcnkvJGZpbGVuYW1lIgorICAgICAgICAgICAgKSkpOworICAgICAgICAgICAg
JHJlcXVlc3QtPmZpbmlzaCgkbXNnKTsKKyAgICAgICAgfQorCisgICAgICAgICRudW0gPSBmd3Jp
dGUoJGZkLCAkZGF0YSwgc3RybGVuKCRkYXRhKSk7CisgICAgICAgICRtc2ctPnB1c2hDb250ZW50
KEhUTUw6OnNtYWxsKGZtdCgiJXMgYnl0ZXMgd3JpdHRlbiIsICRudW0pKSk7CisgICAgICAgIFBy
aW50WE1MKCRtc2cpOworICAgICAgICBmbHVzaCgpOworICAgICAgICBhc3NlcnQoJG51bSA9PSBz
dHJsZW4oJGRhdGEpKTsKKyAgICAgICAgZmNsb3NlKCRmZCk7CisgICAgfQorCisgICAgRW5kTG9h
ZER1bXAoJHJlcXVlc3QpOworfQorCisvKioKKyAqIEBwYXJhbSBXaWtpUmVxdWVzdCAkcmVxdWVz
dAorICovCiBmdW5jdGlvbiBEdW1wVG9EaXIoJiRyZXF1ZXN0KQogewogICAgICRkaXJlY3Rvcnkg
PSAkcmVxdWVzdC0+Z2V0QXJnKCdkaXJlY3RvcnknKTsKQEAgLTM5Myw3ICs1MzAsOCBAQAogICAg
ICAgICAgICAgZmx1c2goKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAg
ICAgICRmaWxlbmFtZSA9IEZpbGVuYW1lRm9yUGFnZSgkcGFnZW5hbWUpOworICAgICAgICAvLyRm
aWxlbmFtZSA9IEZpbGVuYW1lRm9yUGFnZSgkcGFnZW5hbWUsICdkdW1wc2VyaWFsJyk7Ly93aHkg
ZG9lc24ndCB0aGlzIHdvcmt6enoKKyAgICAgICAgJGZpbGVuYW1lID0gcmF3dXJsZW5jb2RlKCRw
YWdlbmFtZSk7Ly90aGlzIHdvcmtzCiAgICAgICAgICRtc2cgPSBIVE1MKCk7CiAgICAgICAgIGlm
ICgkcGFnZS0+Z2V0TmFtZSgpICE9ICRmaWxlbmFtZSkgewogICAgICAgICAgICAgJG1zZy0+cHVz
aENvbnRlbnQoCkBAIC05MTMsNyArMTA1MSw3IEBACiAKICAgICAgICAgJEVycm9yTWFuYWdlci0+
cG9wRXJyb3JIYW5kbGVyKCk7CiAKLSAgICAgICAgaGVhZGVyKCdDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiBiaW5hcnknKTsKKyAgICAgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0
aW9uL29jdGV0LXN0cmVhbSIpOwogICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246
IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSInLiR6aXBuYW1lLiciJyk7CiAgICAgICAgIGhlYWRlcign
Q29udGVudC1MZW5ndGg6ICcuZmlsZXNpemUoJHRtcGZpbGVuYW1lKSk7CiAKQEAgLTk2Miw3ICsx
MTAwLDcgQEAKIAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwogLy8KLS8vICBGdW5jdGlvbnMgZm9yIHJlc3RvcmluZy4KKy8v
ICBGdW5jdGlvbnMgZm9yIHJlc3RvcmluZyB0byBkYXRhYmFzZS4gVGhpcyBpcyByZWFsbHkgaGFj
a2lzaAogLy8KIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KIApAQCAtOTc2LDkgKzExMTQsMTMgQEAKICAgICAgICAgUHJpbnRY
TUwoSFRNTDo6cChIVE1MOjpzdHJvbmcoXygiRW1wdHkgcGFnZW5hbWUhIikpKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CisgICAgLy9wcmludF9yKCR2ZXJzaW9uZGF0YSk7CiAKKyAgICBpZiAo
ZW1wdHkoJHZlcnNpb25kYXRhWydhdXRob3InXSkpIHsKKyAgICAgLy8gICAkdmVyc2lvbmRhdGFb
J2F1dGhvciddID0gQURNSU5fVVNFUjsgLy91c2UgYWRtaW4KKyAgICB9CiAgICAgaWYgKGVtcHR5
KCR2ZXJzaW9uZGF0YVsnYXV0aG9yX2lkJ10pKSB7Ci0gICAgICAgICR2ZXJzaW9uZGF0YVsnYXV0
aG9yX2lkJ10gPSAkdmVyc2lvbmRhdGFbJ2F1dGhvciddOworICAgICAgICAkdmVyc2lvbmRhdGFb
J2F1dGhvcl9pZCddID0gQURNSU5fVVNFUjsgLy91c2UgYWRtaW4KICAgICB9CiAKICAgICAvLyBy
ZW1vdmUgaW52YWxpZCBiYWNrZW5kIHNwZWNpZmljIGNoYXJzLiB1dGY4IGlzc3VlcyBtb3N0bHkK
QEAgLTk5Myw2ICsxMTM1LDEwIEBACiAgICAgaWYgKCRwYWdlbmFtZSA9PSBfXygiSW50ZXJXaWtp
TWFwIikpIHsKICAgICAgICAgJGNvbnRlbnQgPSBfdHJ5aW5zZXJ0SW50ZXJXaWtpTWFwKCRjb250
ZW50KTsKICAgICB9CisgICAgLy8gZWNobyAiPHByZT4iOworICAgIC8vIGVjaG8gIm1ldGFkYXRh
ICRwYWdlZGF0YSBmb3VuZCBpbiBwZ3NyYyBpczpcbiI7CisgICAgLy8gcHJpbnRfcigkcGFnZWRh
dGEpOworICAgIC8vIGVjaG8gIjwvcHJlPiI7CiAKICAgICAkZGJpID0mICRyZXF1ZXN0LT5fZGJp
OwogICAgICRwYWdlID0gJGRiaS0+Z2V0UGFnZSgkcGFnZW5hbWUpOwpAQCAtMTAzMSwxMyArMTE3
Nyw2IEBACiAgICAgICAgICAgICByZXR1cm47IC8vZWFybHkgcmV0dXJuCiAgICAgICAgIH0KICAg
ICB9Ci0gICAgaWYgKCEkc2tpcCkgewotICAgICAgICBmb3JlYWNoICgkcGFnZWRhdGEgYXMgJGtl
eSA9PiAkdmFsdWUpIHsKLSAgICAgICAgICAgIGlmICghZW1wdHkoJHZhbHVlKSkgewotICAgICAg
ICAgICAgICAgICRwYWdlLT5zZXQoJGtleSwgJHZhbHVlKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgIH0KIAogICAgICRtZXNnID0gSFRNTDo6c3BhbigpOwogICAgIGlmICgkc291cmNl
KSB7CkBAIC0xMDQ4LDkgKzExODcsOCBAQAogICAgICAgICAkY3VycmVudCA9ICRwYWdlLT5nZXRD
dXJyZW50UmV2aXNpb24oKTsKICAgICB9CiAgICAgaWYgKCRjdXJyZW50LT5nZXRWZXJzaW9uKCkg
PT0gMCkgewotICAgICAgICAkdmVyc2lvbmRhdGFbJ2F1dGhvciddID0gQURNSU5fVVNFUjsKLSAg
ICAgICAgJHZlcnNpb25kYXRhWydhdXRob3JfaWQnXSA9IEFETUlOX1VTRVI7CiAgICAgICAgICRt
ZXNnLT5wdXNoQ29udGVudCgnIC0gJywgXygiTmV3IHBhZ2UiKSk7CisgICAgICAgICRpc25ld3Bh
Z2UgPSB0cnVlOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICgoISRjdXJyZW50LT5oYXNEZWZh
dWx0Q29udGVudHMoKSkKICAgICAgICAgICAgICYmICgkY3VycmVudC0+Z2V0UGFja2VkQ29udGVu
dCgpICE9ICRjb250ZW50KQpAQCAtMTA2MSwxMCArMTE5OSw2IEBACiAgICAgICAgICAgICAgICAg
ICAgIGZtdCgiaGFzIGVkaXQgY29uZmxpY3RzIC0gb3ZlcndyaXRpbmcgYW55d2F5IikKICAgICAg
ICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICRza2lwID0gZmFsc2U7Ci0gICAgICAgICAg
ICAgICAgaWYgKHN1YnN0cl9jb3VudCgkc291cmNlLCAncGdzcmMnKSkgewotICAgICAgICAgICAg
ICAgICAgICAkdmVyc2lvbmRhdGFbJ2F1dGhvciddID0gQURNSU5fVVNFUjsKLSAgICAgICAgICAg
ICAgICAgICAgLy8gYnV0IGxlYXZlIGF1dGhvcmlkIGFzIHVzZXJpZCB3aG8gbG9hZGVkIHRoZSBm
aWxlCi0gICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICBpZiAoaXNzZXQoJGVkaXRbJ2tlZXBfb2xkJ10pKSB7CiAgICAgICAgICAgICAgICAgICAg
ICRtZXNnLT5wdXNoQ29udGVudCgnICcsIGZtdCgia2VlcCBvbGQiKSk7CkBAIC0xMDg4LDkgKzEy
MjIsOSBAQAogICAgIH0KIAogICAgIGlmICghJHNraXApIHsKKyAgICAgICAgLy8gU0FWRSBUSEUg
REFUQSBJTlRPIFRIRSBEQVRBQkFTRQogICAgICAgICAvLyBpbiBjYXNlIG9mIGZhaWx1cmVzIHBy
aW50IHRoZSBjdWxwcml0OgogICAgICAgICBQcmludFhNTChIVE1MOjpzcGFuKFdpa2lMaW5rKCRw
YWdlbmFtZSkpKTsKLSAgICAgICAgZmx1c2goKTsKICAgICAgICAgJG5ldyA9ICRwYWdlLT5zYXZl
KCRjb250ZW50LCBXSUtJREJfRk9SQ0VfQ1JFQVRFLCAkdmVyc2lvbmRhdGEpOwogICAgICAgICAk
ZGJpLT50b3VjaCgpOwogICAgICAgICAkbWVzZy0+cHVzaENvbnRlbnQoJyAnLCBmbXQoCkBAIC0x
MDk3LDYgKzEyMzEsODQgQEAKICAgICAgICAgICAgICItIHNhdmVkIHRvIGRhdGFiYXNlIGFzIHZl
cnNpb24gJWQiLAogICAgICAgICAgICAgJG5ldy0+Z2V0VmVyc2lvbigpCiAgICAgICAgICkpOwor
ICAgICAgICAvL3VwZGF0ZSBtZXRhZGF0YSBvZiBwYWdlOiBsb2NrZWQsIGRhdGUsIGhpdHMgaWYg
bmV3IHBhZ2UKKyAgICAgICAgLy8kbWVzZy0+cHVzaENvbnRlbnQoIiAoYWxzbyBzZXR0aW5nIG1l
dGFkYXRhKSIpOworICAgICAgICAvLyRtZXNnLT5wdXNoQ29udGVudCgiIERFQlVHOiAoXCRpc25l
d3BhZ2U9JGlzbmV3cGFnZSkiKTsKKworICAgICAgICAvLyBzZXQgaGl0cworICAgICAgICBpZiAo
JGlzbmV3cGFnZSkgeyAvL2Rvbid0IGxvYWQgaGl0cyBmcm9tIHBnc3JjIGlmIHBhZ2UgZXhpc3Rz
IGluIGRhdGFiYXNlLCBvbmx5IGlmIG5ldworICAgICAgICAgICAgaWYgKGlzc2V0KCRwYWdlZGF0
YVsnaGl0cyddKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvL3Nhbml0aXplIGhp
dHMuCisgICAgICAgICAgICAgICAgJHBhZ2VkYXRhWydoaXRzJ10gPSBpbnR2YWwoJHBhZ2VkYXRh
WydoaXRzJ10pOworICAgICAgICAgICAgICAgICRtZXNnLT5wdXNoQ29udGVudCgiLCBMb2FkaW5n
IGhpdHM9Ii4kcGFnZWRhdGFbJ2hpdHMnXSk7CisgICAgICAgICAgICAgICAgJHBhZ2UtPnNldCgn
aGl0cycsICRwYWdlZGF0YVsnaGl0cyddKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChpc3NldCgkcGFnZWRhdGFbJ3Blcm0nXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgLy90b2RvOiBzYW5pdGl6ZSBhY2w/CisgICAgICAgICAgICAgICAgJG1lc2ctPnB1c2hDb250
ZW50KCIsIExvYWRpbmcgYWNsPSIuJHBhZ2VkYXRhWydwZXJtJ10pOworICAgICAgICAgICAgICAg
ICRwYWdlLT5zZXQoJ3Blcm0nLCAkcGFnZWRhdGFbJ3Blcm0nXSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoaXNzZXQoJHBhZ2VkYXRhWydoaXRzJ10p
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICRtZXNnLT5wdXNoQ29udGVudCgiLCBO
b3Qgb3ZlcndyaXRpbmcgaGl0cyIpOworICAgICAgICAgICAgICAgIC8vdW5zZXQoJHBhZ2VkYXRh
WydoaXRzJ10pOy8va2VlcCBoaXRzIGZyb20gbG9hZGluZyBvdmVyIGV4aXN0aW5nIHBhZ2UKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc3NldCgkcGFnZWRhdGFbJ3Blcm0nXSkpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJG1lc2ctPnB1c2hDb250ZW50KCIsIE5vdCBv
dmVyd3JpdGluZyBhY2wiKTsKKyAgICAgICAgICAgICAgICAvL3Vuc2V0KCRwYWdlZGF0YVsncGVy
bSddKTsvL2tlZXAgYWNsIGZyb20gbG9hZGluZyBvdmVyIGV4aXN0aW5nIHBhZ2UKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHNldCBwYWdlIGxvY2tlZAorICAgICAgICAv
LyBob3cgdG8gZ2V0IGN1cnJlbnQgcGFnZSBsb2NrIHN0YXR1cz8/IHRvIGN1c3RvbWlzZSBtZXNz
YWdlcyBtb3JlCisgICAgICAgIGlmICgkcGFnZWRhdGFbJ2xvY2tlZCddKSB7CisgICAgICAgICAg
ICAkbWVzZy0+cHVzaENvbnRlbnQoIiwgTE9DS0lORyIpOworICAgICAgICAgICAgJHBhZ2UtPnNl
dCgnbG9ja2VkJywgJHBhZ2VkYXRhWydsb2NrZWQnXSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBkZWZpbmUgKCdBTExPV19QR1NSQ19UT19VTkxPQ0tfUEFHRVMnICwwKTsvL2RlYnVn
Z2luZyBhbmQgc2VjdXJpdHkKKyAgICAgICAgICAgIGlmIChkZWZpbmVkKCdBTExPV19QR1NSQ19U
T19VTkxPQ0tfUEFHRVMnKSAmJiBBTExPV19QR1NSQ19UT19VTkxPQ0tfUEFHRVMpIHsKKyAgICAg
ICAgICAgICAgICAkbWVzZy0+cHVzaENvbnRlbnQoIiwgVU5MT0NLSU5HIik7CisgICAgICAgICAg
ICAgICAgJHBhZ2UtPnNldCgnbG9ja2VkJywgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICBpZiAoJGlzbmV3cGFnZSkgeworICAgICAgICAgICAgICAgICAgICAk
bWVzZy0+cHVzaENvbnRlbnQoIiwgdW5sb2NrZWQiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICAkbWVzZy0+cHVzaENvbnRlbnQoIiwgSWdub3JpbmcgVU5M
T0NLRUQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy91bnNldCgkcGFn
ZWRhdGFbJ2xvY2tlZCddKTsvL2tlZXAgbG9ja2VkIGZyb20gbG9hZGluZyBvdmVyIGV4aXN0aW5n
IHBhZ2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHNldCBwYWdlIGNy
ZWF0aW9uIGRhdGUKKyAgICAgICAgJHBhZ2UtPnNldCgnZGF0ZScsICRwYWdlZGF0YVsnZGF0ZSdd
KTsKKy8vICAgICAgICB1bnNldCgkcGFnZWRhdGFbJ2RhdGUnXSk7CisKKyAgICAgICAgLy8gc2V0
IHBhZ2Ugb3duZXIKKyAgICAgICAgaWYgKCRwYWdlZGF0YVsnb3duZXInXSkgeworICAgICAgICAg
ICAgJHBhZ2UtPnNldCgnb3duZXInLCAkcGFnZWRhdGFbJ293bmVyJ10pOworICAgICAgICB9Cisv
LyAgICAgICAgdW5zZXQoJHBhZ2VkYXRhWydvd25lciddKTsKKworICAgICAgICAvLyBpZiB3ZSB3
YW50IHRvIGxvYWQgb3RoZXIgZmllbGRzIGluIHRoZSBmdXR1cmUgZnJvbQorICAgICAgICAvLyBN
SU1FIGZpbGUsIGhlcmUgaXMgd2hlcmUgd2UgZG8gaXQ6CisgICAgICAgIC8vCisgICAgICAgIC8v
IGNvbW1lbnQgb3V0IHRoZSBiZWxvdyB0byBkaXNjYXJkIHJlbWFpbmluZyBkYXRhIGZyb20gbG9h
ZGVkIGZpbGUgZm9yIHNlY3VyaXR5LgorICAgICAgICAvLyBsb2FkaW5nIHJlbWFpbmluZyBkYXRh
OgorICAgICAgICAvLyBpZiAoJHM9c2l6ZW9mKCRwYWdlZGF0YSkpIHsKKyAgICAgICAgLy8gICAg
IGVjaG8gIjxwcmU+JHMgZXh0cmEgcGFnZWRhdGEgZW50cmllcyBmb3VuZCBpbiBsb2FkZWQgZmls
ZTpcbiI7CisgICAgICAgIC8vICAgICBwcmludF9yKCRwYWdlZGF0YSk7Ly90aGlzIGZvcm1hdHRp
bmcgaXMgZmluZSwgbm9ybWFsIHVzZXJzIHdpbGwgbmV2ZXIgZ2V0IGhlcmUKKyAgICAgICAgLy8g
ICAgIGVjaG8gIjwvcHJlPiI7CisgICAgICAgIC8vICAgICBmb3JlYWNoICgkcGFnZWRhdGEgYXMg
JGtleSA9PiAkdmFsdWUpIHsKKyAgICAgICAgLy8gICAgICAgICAkbWVzZy0+cHVzaENvbnRlbnQo
Iiwgc2V0dGluZyAnJGtleSc9JyR2YWx1ZSciKTsKKyAgICAgICAgLy8gICAgICAgICAkcGFnZS0+
c2V0KCRrZXksICR2YWx1ZSk7CisgICAgICAgIC8vICAgICB9CisgICAgCisgICAgICAgIC8vIH0K
KwogICAgICAgICAkbWVzZy0+cHVzaENvbnRlbnQoSFRNTDo6YnIoKSk7CiAgICAgfQogICAgIGlm
ICgkbmVlZHNfbWVyZ2UpIHsKQEAgLTExOTUsNyArMTQwNyw3IEBACiAgICAgICAgICAgICAgICAg
ICAgICdtZXRob2QnID0+ICdwb3N0JyksCiAgICAgICAgICAgICAgICAgSGlkZGVuSW5wdXRzKCRy
ZXF1ZXN0LT5nZXRBcmdzKCksIGZhbHNlLCBhcnJheSgndmVyaWZ5JykpLAogICAgICAgICAgICAg
ICAgIEhpZGRlbklucHV0cyhhcnJheSgndmVyaWZ5JyA9PiAxKSksCi0gICAgICAgICAgICAgICAg
QnV0dG9uKCdzdWJtaXQ6dmVyaWZ5JywgXygiWWVzIiksICdidXR0b24nKSwKKyAgICAgICAgICAg
ICAgICBCdXR0b24oJ3N1Ym1pdDp2ZXJpZnknLCBfKCJSZXZlcnQiKSwgJ2J1dHRvbicpLAogICAg
ICAgICAgICAgICAgIEhUTUw6OnJhdygnJm5ic3A7JyksCiAgICAgICAgICAgICAgICAgQnV0dG9u
KCdzdWJtaXQ6Y2FuY2VsJywgXygiQ2FuY2VsIiksICdidXR0b24nKQogICAgICAgICAgICAgKQoK
TW9kaWZpZWQ6IHRydW5rL2xpYi9tYWluLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9saWIvbWFp
bi5waHAJMjAyNS0wMi0xNCAyMzoyMjozNyBVVEMgKHJldiAxMTEwOCkKKysrIHRydW5rL2xpYi9t
YWluLnBocAkyMDI1LTAyLTE1IDA1OjE4OjA4IFVUQyAocmV2IDExMTA5KQpAQCAtNTk1LDYgKzU5
NSw3IEBACiAgICAgICAgICAgICAgICAgJ2RpZmYnID0+IF8oImRpZmYgdGhpcyBwYWdlIiksCiAg
ICAgICAgICAgICAgICAgJ2R1bXBodG1sJyA9PiBfKCJkdW1wIEhUTUwgcGFnZXMiKSwKICAgICAg
ICAgICAgICAgICAnZHVtcHNlcmlhbCcgPT4gXygiZHVtcCBzZXJpYWwgcGFnZXMiKSwKKyAgICAg
ICAgICAgICAgICAnZHVtcHN2bicgPT4gXygiZHVtcCBwYWdlcyBmb3Igc3ZuIiksCiAgICAgICAg
ICAgICAgICAgJ2VkaXQnID0+IF8oImVkaXQgdGhpcyBwYWdlIiksCiAgICAgICAgICAgICAgICAg
J3JlbmFtZScgPT4gXygicmVuYW1lIHRoaXMgcGFnZSIpLAogICAgICAgICAgICAgICAgICdyZXZl
cnQnID0+IF8oInJldmVydCB0byBhIHByZXZpb3VzIHZlcnNpb24gb2YgdGhpcyBwYWdlIiksCkBA
IC02NDAsNiArNjQxLDcgQEAKICAgICAgICAgICAgICAgICAnZGlmZicgPT4gXygiRGlmZmluZyBw
YWdlcyIpLAogICAgICAgICAgICAgICAgICdkdW1waHRtbCcgPT4gXygiRHVtcGluZyBIVE1MIHBh
Z2VzIiksCiAgICAgICAgICAgICAgICAgJ2R1bXBzZXJpYWwnID0+IF8oIkR1bXBpbmcgc2VyaWFs
IHBhZ2VzIiksCisgICAgICAgICAgICAgICAgJ2R1bXBzdm4nID0+IF8oImR1bXAgcGFnZXMgZm9y
IHN2biIpLAogICAgICAgICAgICAgICAgICdlZGl0JyA9PiBfKCJFZGl0aW5nIHBhZ2VzIiksCiAg
ICAgICAgICAgICAgICAgJ3JldmVydCcgPT4gXygiUmV2ZXJ0aW5nIHRvIGEgcHJldmlvdXMgdmVy
c2lvbiBvZiBwYWdlcyIpLAogICAgICAgICAgICAgICAgICdjcmVhdGUnID0+IF8oIkNyZWF0aW5n
IHBhZ2VzIiksCkBAIC0xMzg1LDYgKzEzODcsMTIgQEAKICAgICAgICAgZWNobyAiUGhwV2lraSAi
IC4gUEhQV0lLSV9WRVJTSU9OIC4gIlxuIjsKICAgICB9CiAKKyAgICBwdWJsaWMgZnVuY3Rpb24g
YWN0aW9uX2R1bXBzdm4oKQorICAgIHsKKyAgICAgICAgaW5jbHVkZV9vbmNlICdsaWIvbG9hZHNh
dmUucGhwJzsKKyAgICAgICAgRHVtcFNWTlRvRGlyKCR0aGlzKTsKKyAgICB9CisKICAgICBwdWJs
aWMgZnVuY3Rpb24gYWN0aW9uX2R1bXBzZXJpYWwoKQogICAgIHsKICAgICAgICAgaW5jbHVkZV9v
bmNlICdsaWIvbG9hZHNhdmUucGhwJzsKCk1vZGlmaWVkOiB0cnVuay9saWIvbWltZWxpYi5waHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gdHJ1bmsvbGliL21pbWVsaWIucGhwCTIwMjUtMDItMTQgMjM6MjI6Mzcg
VVRDIChyZXYgMTExMDgpCisrKyB0cnVuay9saWIvbWltZWxpYi5waHAJMjAyNS0wMi0xNSAwNTox
ODowOCBVVEMgKHJldiAxMTEwOSkKQEAgLTEyOSwxMCArMTI5LDExIEBACiAvKioKICAqIEBwYXJh
bSBXaWtpREJfUGFnZSAkcGFnZQogICogQHBhcmFtIFdpa2lEQl9QYWdlUmV2aXNpb24gJHJldmlz
aW9uCisgKiBAcGFyYW0gYm9vbCAkZm9yc3ZuCiAgKiBAcmV0dXJuIHN0cmluZwogICovCiAKLWZ1
bmN0aW9uIE1pbWVpZnlQYWdlUmV2aXNpb24oJiRwYWdlLCAmJHJldmlzaW9uKQorZnVuY3Rpb24g
TWltZWlmeVBhZ2VSZXZpc2lvbigmJHBhZ2UsICYkcmV2aXNpb24sICRmb3Jzdm4pCiB7CiAgICAg
Ly8gJHdpa2lkYiA9JiAkcmV2aXNpb24tPl93aWtpZGI7CiAgICAgLy8gJHBhZ2UgPSAkd2lraWRi
LT5nZXRQYWdlKCRyZXZpc2lvbi0+Z2V0TmFtZSgpKTsKQEAgLTE1Myw2ICsxNTQsOSBAQAogICAg
IGlmIChFTkFCTEVfRVhURVJOQUxfUEFHRVMgJiYgJHBhZ2UtPmdldCgnZXh0ZXJuYWwnKSkgewog
ICAgICAgICAkcGFyYW1zWydmbGFncyddID0gKCRwYXJhbXNbJ2ZsYWdzJ10gPyAkcGFyYW1zWydm
bGFncyddIC4gJyxFWFRFUk5BTF9QQUdFJyA6ICdFWFRFUk5BTF9QQUdFJyk7CiAgICAgfQorICAg
IGlmICgkcGFyYW1zWydmbGFncyddID09ICcnKSB7CisgICAgICAgIHVuc2V0KCRwYXJhbXNbJ2Zs
YWdzJ10pOworICAgIH0KICAgICBpZiAoJHJldmlzaW9uLT5nZXQoJ2F1dGhvcl9pZCcpKSB7CiAg
ICAgICAgICRwYXJhbXNbJ2F1dGhvcl9pZCddID0gJHJldmlzaW9uLT5nZXQoJ2F1dGhvcl9pZCcp
OwogICAgIH0KQEAgLTE3MCw3ICsxNzQsNDAgQEAKICAgICAgICAgJHBhcmFtc1snYWNsJ10gPSAk
YWNsLT5hc0FjbExpbmVzKCk7CiAgICAgICAgIC8vVE9ETzogY29udmVydCB0byBtdWx0aXBsZSBs
aW5lcz8gYWNsLXZpZXcgPT4gZ3JvdXBzLC4uLjsgYWNsLWVkaXQgPT4gZ3JvdXBzLC4uLgogICAg
IH0KKyAgICBpZiAoJGZvcnN2bikKKyAgICB7CisgICAgICAgIC8vIFN0cmlwIG91dCBhbGwgdGhp
cyBqdW5rOgorICAgICAgICAvLyB2ZXJzaW9uPTc0OworICAgICAgICAvLyBsYXN0bW9kaWZpZWQ9
MTA0MTU2MTU1MjsKKyAgICAgICAgLy8gYXV0aG9yX2lkPTEyNy4wLjAuMTsKKyAgICAgICAgLy8g
aGl0cz0xNDYKKyAgICAgICAgLy8gb3duZXIKKyAgICAgICAgLy8gYWNsCisgICAgICAgIC8vIHN1
bW1hcnkKKyAgICAgICAgJGtpbGxtZSA9IGFycmF5KAorICAgICAgICAgICAgLy8iYXV0aG9yIiwK
KyAgICAgICAgICAgICJ2ZXJzaW9uIiwKKyAgICAgICAgICAgICJsYXN0bW9kaWZpZWQiLAorICAg
ICAgICAgICAgImF1dGhvcl9pZCIsCisgICAgICAgICAgICAiaGl0cyIsCisgICAgICAgICAgICAi
b3duZXIiLAorICAgICAgICAgIC8vICAiYWNsIiwKKyAgICAgICAgICAgICJzdW1tYXJ5IgorICAg
ICAgICApOworICAgICAgICBmb3JlYWNoICgka2lsbG1lIGFzICRwYXR0ZXJuKQorICAgICAgICB7
CisgICAgICAgICAgICB1bnNldCgkcGFyYW1zWyRwYXR0ZXJuXSk7CisgICAgICAgIH0KKyAgICAg
ICAgLy9BZGQgaW4gc3RhbmRhcmQgc3R1ZmYgZm9yIGR1bXBpbmcKKyAgICAgICAgJHBhcmFtc1sn
YXV0aG9yJ10gPSBfKCJUaGUgUGhwV2lraSBUZWFtIik7CisgICAgfQogCisgICAgaWYgKFNUUklD
VF9NQUlMQUJMRV9QQUdFRFVNUFMpIHsKKyAgICAgICAgJHBhcmFtc1snY2hhcnNldCddID0gJ1VT
LUFTQ0lJJzsgLy9raW5kIG9mIGEga2x1ZGdlIHRvIGFzc3VtZSB3aXRob3V0IG1hc3NhZ2luZyB0
ZXh0PworICAgIH0gZWxzZSB7CisgICAgICAgICRwYXJhbXNbJ2NoYXJzZXQnXSA9ICdVVEYtOCc7
IC8va2luZCBvZiBhIGtsdWRnZSB0byBhc3N1bWUgd2l0aG91dCBjaGVja2luZz8KKyAgICB9CisK
ICAgICAvLyBOb24tVVMtQVNDSUkgaXMgbm90IGFsbG93ZWQgaW4gTWltZSBoZWFkZXJzIChhdCBs
ZWFzdCBub3Qgd2l0aG91dAogICAgIC8vIHNwZWNpYWwgaGFuZGxpbmcpIC0tLSBzbyB3ZSB1cmxl
bmNvZGUgYWxsIHBhcmFtZXRlciB2YWx1ZXMuCiAgICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAka2V5
ID0+ICR2YWwpIHsKCk1vZGlmaWVkOiB0cnVuay9saWIvcGx1Z2luL1BhZ2VEdW1wLnBocAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSB0cnVuay9saWIvcGx1Z2luL1BhZ2VEdW1wLnBocAkyMDI1LTAyLTE0IDIzOjIy
OjM3IFVUQyAocmV2IDExMTA4KQorKysgdHJ1bmsvbGliL3BsdWdpbi9QYWdlRHVtcC5waHAJMjAy
NS0wMi0xNSAwNToxODowOCBVVEMgKHJldiAxMTEwOSkKQEAgLTEsNiArMSw2IEBACiA8P3BocAog
LyoqCi0gKiBDb3B5cmlnaHQgwqkgMjAwMyAkVGhlUGhwV2lraVByb2dyYW1taW5nVGVhbQorICog
Q29weXJpZ2h0IMKpIDIwMDMtMjAyNSAkVGhlUGhwV2lraVByb2dyYW1taW5nVGVhbQogICoKICAq
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFBocFdpa2kuCiAgKgpAQCAtOTQsNyArOTQsOCBAQAogCiAg
ICAgICAgICRwID0gJGRiaS0+Z2V0UGFnZSgkcGFnZSk7CiAgICAgICAgIGluY2x1ZGVfb25jZSAn
bGliL2xvYWRzYXZlLnBocCc7Ci0gICAgICAgICRtYWlsaWZpZWQgPSBNYWlsaWZ5UGFnZSgkcCwg
KCRmb3JtYXQgPT0gJ2JhY2t1cCcpID8gOTkgOiAxKTsKKyAgICAgICAgLy8gd2UgbGV0IE1haWxp
ZnlQYWdlIGhhbmRsZSBmb3Jzdm4gZm9ybWF0IG5vdyBpbnN0ZWFkIG9mIHRyeWluZyB0byBzdHJp
cCBpdCBvdXQgbGF0ZXIKKyAgICAgICAgJG1haWxpZmllZCA9IE1haWxpZnlQYWdlKCRwLCAoJGZv
cm1hdCA9PSAnYmFja3VwJykgPyA5OSA6IDEsICgkZm9ybWF0ID09ICdmb3Jzdm4nKSkgOwogCiAg
ICAgICAgIC8vIGZpeHVwX2hlYWRlcnMgbWFzc2FnZXMgdGhlIHBhZ2UgZHVtcCBoZWFkZXJzIGRl
cGVuZGluZyBvbgogICAgICAgICAvLyB0aGUgJ2Zvcm1hdCcgYXJndW1lbnQsICdub3JtYWwnKGRl
ZmF1bHQpIG9yICdmb3Jzdm4nLgpAQCAtMTA0LDkgKzEwNSw4IEBACiAKICAgICAgICAgJHRoaXMt
PnBhZ2VuYW1lID0gJHBhZ2U7CiAgICAgICAgICR0aGlzLT5nZW5lcmF0ZU1lc3NhZ2VJZCgkbWFp
bGlmaWVkKTsKLSAgICAgICAgaWYgKCRmb3JtYXQgPT0gJ2ZvcnN2bicpIHsKLSAgICAgICAgICAg
ICR0aGlzLT5maXh1cF9oZWFkZXJzX2ZvcnN2bigkbWFpbGlmaWVkKTsKLSAgICAgICAgfSBlbHNl
IHsgLy8gYmFja3VwIG9yIG5vcm1hbAorICAgICAgICBpZiAoJGZvcm1hdCAhPSAnZm9yc3ZuJykg
eworICAgICAgICAgICAgLy8gZm9ybWF0IGlzIGJhY2t1cCBvciBub3JtYWwKICAgICAgICAgICAg
ICR0aGlzLT5maXh1cF9oZWFkZXJzKCRtYWlsaWZpZWQpOwogICAgICAgICB9CiAKQEAgLTExNCwy
MyArMTE0LDIxIEBACiAgICAgICAgICAgICAvLyBUT0RPOiB3ZSBuZWVkIGEgd2F5IHRvIGhvb2sg
aW50byB0aGUgZ2VuZXJhdGVkIGhlYWRlcnMsIHRvIG92ZXJyaWRlCiAgICAgICAgICAgICAvLyBD
b250ZW50LVR5cGUsIFNldC1Db29raWUsIENhY2hlLWNvbnRyb2wsIC4uLgogICAgICAgICAgICAg
JHJlcXVlc3QtPmRpc2NhcmRPdXRwdXQoKTsgLy8gSGlqYWNrIHRoZSBodHRwIHJlcXVlc3QgZnJv
bSBQaHBXaWtpLgotICAgICAgICAgICAgb2JfZW5kX2NsZWFuKCk7IC8vIGNsZWFuIHVwIGFmdGVy
IGhpamFja2luZyAkcmVxdWVzdAorICAgICAgICAgICAgLy8gY2xlYW4gdXAgYWZ0ZXIgaGlqYWNr
aW5nICRyZXF1ZXN0LAorICAgICAgICAgICAgLy8gYnV0IHRoaXMgY2F1c2VzIGZpbGVzIG5vdCB0
byBkb3dubG9hZCByaWdodCBhd2F5IHdpdGhvdXQgY2xpY2tpbmcgcmVzdW1lIGluIGJyb3dzZXIK
KyAgICAgICAgICAgIC8vb2JfZW5kX2NsZWFuKCk7CiAgICAgICAgICAgICAvL3doaWxlIChAb2Jf
ZW5kX2ZsdXNoKCkpOyAvL2RlYnVnZ2luZwotICAgICAgICAgICAgJGZpbGVuYW1lID0gRmlsZW5h
bWVGb3JQYWdlKCRwYWdlKTsKKyAgICAgICAgICAgIC8vd2luZG93cyBmb3JtYXRzIGZpbGVuYW1l
cyBvbiBpdHMgb3duIGV2ZW4gaWYgdGhleSBhcmUgdXJsZW5jb2RlZAorICAgICAgICAgICAgJGZp
bGVuYW1lID0gRmlsZW5hbWVGb3JQYWdlKCRwYWdlLCAkZm9ybWF0KTsKKyAgICAgICAgICAgIGhl
YWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsKICAgICAgICAg
ICAgIGhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9XCIi
CiAgICAgICAgICAgICAgICAgLiAkZmlsZW5hbWUgLiAiXCIiKTsKICAgICAgICAgICAgIC8vIFdl
IGdlbmVyYXRlIDMgQ29udGVudC1UeXBlIGhlYWRlcnMhIGZpcnN0IGluIGxvYWRzYXZlLAogICAg
ICAgICAgICAgLy8gdGhlbiBoZXJlIGFuZCB0aGUgbWltaWZpZWQgc3RyaW5nICRtYWlsaWZpZWQg
YWxzbyBoYXMgaXQhCiAgICAgICAgICAgICAvLyBUaGlzIG9uZSBpcyBjb3JyZWN0IGFuZCBvdmVy
d3JpdGVzIHRoZSBvdGhlcnMuCi0gICAgICAgICAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtOyBuYW1lPVwiIgotICAgICAgICAgICAgICAgIC4gJGZpbGVu
YW1lIC4gIlwiOyBjaGFyc2V0PVwiIiAuICdVVEYtOCcKLSAgICAgICAgICAgICAgICAuICJcIiIp
OwogICAgICAgICAgICAgJHJlcXVlc3QtPmNoZWNrVmFsaWRhdG9ycygpOwotICAgICAgICAgICAg
Ly8gbGV0ICRyZXF1ZXN0IHByb3ZpZGUgbGFzdCBtb2RpZmllZCAmIGV0YWcKLSAgICAgICAgICAg
IGhlYWRlcigiQ29udGVudC1JZDogPCIgLiAkdGhpcy0+TWVzc2FnZUlkIC4gIj4iKTsKICAgICAg
ICAgICAgIC8vIGJlIG5pY2UgdG8gaHR0cCBrZWVwYWxpdmV+cwogICAgICAgICAgICAgaGVhZGVy
KCJDb250ZW50LUxlbmd0aDogIiAuIHN0cmxlbigkbWFpbGlmaWVkKSk7Ci0KICAgICAgICAgICAg
IC8vIEhlcmUgY29tZXMgb3VyIHByZXBhcmVkIG1pbWUgZmlsZQogICAgICAgICAgICAgZWNobyAk
bWFpbGlmaWVkOwogICAgICAgICAgICAgZXhpdCgpOyAvLyBub3JldHVybiEgcGhwIGV4aXRzLgpA
QCAtMTM3LDcgKzEzNSw3IEBACiAgICAgICAgIH0KICAgICAgICAgLy8gV2UgYXJlIGRpc3BsYWlu
ZyBpbmxpbmUgcHJldmlldyBpbiBhIFdpa2lQYWdlLCBzbyB3cmFwIHRoZQogICAgICAgICAvLyB0
ZXh0IGlmIGl0IGlzIHRvbyBsb25nLS11bmxlc3MgcXVvdGVkLXByaW50YWJsZSAoVE9ETykuCi0g
ICAgICAgICRtYWlsaWZpZWQgPSB3b3Jkd3JhcCgkbWFpbGlmaWVkLCA3MCk7CisgICAgICAgICRt
YWlsaWZpZWQgPSB3b3Jkd3JhcCgkbWFpbGlmaWVkLCA3OCk7CiAKICAgICAgICAgJGRsc3ZuID0g
QnV0dG9uKAogICAgICAgICAgICAgYXJyYXkoIC8vJ3BhZ2UnID0+ICRwYWdlLApAQCAtMTQ0LDcg
KzE0Miw3IEBACiAgICAgICAgICAgICAgICAgJ2FjdGlvbicgPT4gJHRoaXMtPmdldE5hbWUoKSwK
ICAgICAgICAgICAgICAgICAnZm9ybWF0JyA9PiAnZm9yc3ZuJywKICAgICAgICAgICAgICAgICAn
ZG93bmxvYWQnID0+IHRydWUpLAotICAgICAgICAgICAgXygiRG93bmxvYWQgZm9yIFN1YnZlcnNp
b24iKSwKKyAgICAgICAgICAgIF8oIkRvd25sb2FkIGFzIGRldmVsb3BlciBmb3JtYXQiKSwKICAg
ICAgICAgICAgICRwYWdlCiAgICAgICAgICk7CiAgICAgICAgICRkbCA9IEJ1dHRvbigKQEAgLTE3
Myw3ICsxNzEsNyBAQAogICAgICAgICB9CiAKICAgICAgICAgaWYgKCRmb3JtYXQgPT0gJ2ZvcnN2
bicpIHsKLSAgICAgICAgICAgICRkZXNjID0gXygiKGZvcm1hdHRlZCBmb3IgUGhwV2lraSBkZXZl
bG9wZXJzIGFzIHBnc3JjIHRlbXBsYXRlLCBub3QgZm9yIGJhY2tpbmcgdXApIik7CisgICAgICAg
ICAgICAkZGVzYyA9IF8oIihmb3JtYXR0ZWQgZm9yIFBocFdpa2kgZGV2ZWxvcGVycy90cmFuc2xh
dG9ycyBhcyBwZ3NyYyB0ZW1wbGF0ZSwgbm90IGZvciBiYWNraW5nIHVwKSIpOwogICAgICAgICAg
ICAgJGFsdHByZXZpZXdidXR0b25zID0gSFRNTCgKICAgICAgICAgICAgICAgICBCdXR0b24oCiAg
ICAgICAgICAgICAgICAgICAgIGFycmF5KCdhY3Rpb24nID0+ICR0aGlzLT5nZXROYW1lKCkpLApA
QCAtMzAyLDM4ICszMDAsNCBAQAogCiAgICAgICAgICRtYWlsaWZpZWQgPSBpbXBsb2RlKCJcbiIs
IGFycmF5X3ZhbHVlcygkcmV0dXJuKSk7CiAgICAgfQotCi0gICAgcHVibGljIGZ1bmN0aW9uIGZp
eHVwX2hlYWRlcnNfZm9yc3ZuKCYkbWFpbGlmaWVkKQotICAgIHsKLSAgICAgICAgJGFycmF5ID0g
ZXhwbG9kZSgiXG4iLCAkbWFpbGlmaWVkKTsKLQotICAgICAgICAvLyBNYXNzYWdlIGhlYWRlcnMg
dG8gcHJlcGFyZSBmb3IgZGV2ZWxvcGVyIGNoZWNraW4gdG8gU3VidmVyc2lvbi4KLSAgICAgICAg
LyoKLSAgICAgICAgICAgIFN0cmlwIG91dCBhbGwgdGhpcyBqdW5rOgotICAgICAgICAgICAgYXV0
aG9yPU1lTWU7Ci0gICAgICAgICAgICB2ZXJzaW9uPTc0OwotICAgICAgICAgICAgbGFzdG1vZGlm
aWVkPTEwNDE1NjE1NTI7Ci0gICAgICAgICAgICBhdXRob3JfaWQ9MTI3LjAuMC4xOwotICAgICAg
ICAgICAgaGl0cz0xNDY7Ci0gICAgICAgICovCi0gICAgICAgICRraWxsbWUgPSBhcnJheSgiYXV0
aG9yIiwgInZlcnNpb24iLCAibGFzdG1vZGlmaWVkIiwKLSAgICAgICAgICAgICJhdXRob3JfaWQi
LCAiaGl0cyIsICJvd25lciIsICJhY2wiKTsKLSAgICAgICAgLy8gVWx0cmFOYXN0eSwgZml4bWU6
Ci0gICAgICAgIGZvcmVhY2ggKCRraWxsbWUgYXMgJHBhdHRlcm4pIHsKLSAgICAgICAgICAgICRh
cnJheSA9IHByZWdfcmVwbGFjZSgKLSAgICAgICAgICAgICAgICAiL15cc1xzJHBhdHRlcm5cPS4q
Oy8iLAotICAgICAgICAgICAgICAgIC8qJHJlcGxhY2VtZW50ID0qLwotICAgICAgICAgICAgICAg
ICJ6enpqdW5rIiwKLSAgICAgICAgICAgICAgICAkYXJyYXkKLSAgICAgICAgICAgICk7Ci0gICAg
ICAgIH0KLSAgICAgICAgLy8gcmVtb3ZlIGRlbGV0ZWQgdmFsdWVzIGZyb20gYXJyYXkKLSAgICAg
ICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJGFycmF5KTsgJGkrKykgewotICAgICAgICAgICAg
aWYgKHRyaW0oJGFycmF5WyRpXSkgIT0gInp6emp1bmsiKSB7IC8vbmFzdHksIGZpeG1lCi0gICAg
ICAgICAgICAgICAgJHJldHVybltdID0gJGFycmF5WyRpXTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotCi0gICAgICAgICRtYWlsaWZpZWQgPSBpbXBsb2RlKCJcbiIsICRyZXR1cm4pOwotICAg
IH0KIH0KCk1vZGlmaWVkOiB0cnVuay9saWIvcGx1Z2luL1dpa2lGb3JtLnBocAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSB0cnVuay9saWIvcGx1Z2luL1dpa2lGb3JtLnBocAkyMDI1LTAyLTE0IDIzOjIyOjM3IFVU
QyAocmV2IDExMTA4KQorKysgdHJ1bmsvbGliL3BsdWdpbi9XaWtpRm9ybS5waHAJMjAyNS0wMi0x
NSAwNToxODowOCBVVEMgKHJldiAxMTEwOSkKQEAgLTkxLDYgKzkxLDE3IEBACiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICRjbGFzcyA9ICd3aWtpYWRtaW4nOwogICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnZHVtcHN2bic6CisgICAgICAgICAgICAg
ICAgJGlucHV0WyduYW1lJ10gPSAnZGlyZWN0b3J5JzsKKyAgICAgICAgICAgICAgICAkaW5wdXRb
J3JlcXVpcmVkJ10gPSAncmVxdWlyZWQnOworICAgICAgICAgICAgICAgIGlmICghJGRlZmF1bHQp
IHsKKyAgICAgICAgICAgICAgICAgICAgJGlucHV0Wyd2YWx1ZSddID0gREVGQVVMVF9EVU1QX0RJ
UjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCEkYnV0dG9udGV4dCkg
eworICAgICAgICAgICAgICAgICAgICAkYnV0dG9udGV4dCA9IF8oIkR1bXAgUGFnZXMgZm9yIGRl
dmVsb3BlciIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkY2xhc3MgPSAn
d2lraWFkbWluJzsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgJ2R1
bXBodG1sJzoKICAgICAgICAgICAgICAgICAkaW5wdXRbJ25hbWUnXSA9ICdkaXJlY3RvcnknOwog
ICAgICAgICAgICAgICAgICRpbnB1dFsncmVxdWlyZWQnXSA9ICdyZXF1aXJlZCc7CgpNb2RpZmll
ZDogdHJ1bmsvcGdzcmMvUmVsZWFzZU5vdGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL3Bnc3JjL1Jl
bGVhc2VOb3RlcwkyMDI1LTAyLTE0IDIzOjIyOjM3IFVUQyAocmV2IDExMTA4KQorKysgdHJ1bmsv
cGdzcmMvUmVsZWFzZU5vdGVzCTIwMjUtMDItMTUgMDU6MTg6MDggVVRDIChyZXYgMTExMDkpCkBA
IC0xLDQgKzEsNCBAQAotRGF0ZTogRnJpLCAxNCBGZWIgMjAyNSAyMzowOTowOCArMDAwMAorRGF0
ZTogU2F0LCAxNSBGZWIgMjAyNSAwNDo1ODoyMCArMDAwMAogTWltZS1WZXJzaW9uOiAxLjAgKFBy
b2R1Y2VkIGJ5IFBocFdpa2kgMS42LjUpCiBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtcGhw
d2lraTsKICAgcGFnZW5hbWU9UmVsZWFzZU5vdGVzOwpAQCAtMjksMTEgKzI5LDI2IEBACiAqIEFk
ZGVkIDQwNCBlcnJvciB0byB+SHR0cENsaWVudC5waHAgd2hpY2ggaXMgZGlzcGxheWVkIG5vdyBp
bgogICB+UGhvdG9BbGJ1bVBsdWdpbi4gUmVtb3ZlZCB1cmwgb2YgZGVmdW5jdCBleGFtcGxlIHdl
YnNpdGUgdGhhdCBicm9rZQogICBQaHBXaWtpTWFudWFsLgotKiAqKkltcG9ydGFudCBidWdmaXgg
Zm9yIFBIUDguMyBhbmQgbmV3ZXI6KiogRml4ZWQgZ2FyYmxlZCBwYWdlcyBkdWUgdG8KLSAgZGVw
cmVjaWF0ZWQgZXJyb3JzLiBBbHNvIHRyeSBoYXJkZXIgdG8gc3VwcHJlc3MgZGVwcmVjaWF0ZWQg
ZXJyb3JzIG9uIGFsbAotICBQSFAgdmVyc2lvbnMuIFNldCAjI0RFQlVHPTIjIyBpbiAjI2NvbmZp
Zy5pbmkjIyB0byB2aWV3IGRlcHJlY2lhdGVkIGVycm9ycywKLSAgYW5kICMjREVCVUc9MSMjIGZv
ciBiYXNpYyBlcnJvcnMuIEFkZGVkIGhvb2tzIGZvciBjc3MgZm9ybWF0dGluZyBvZgorKiAqKklt
cG9ydGFudCBidWdmaXggZm9yIFBIUDguMyBhbmQgbmV3ZXI6KiogRml4ZWQgZ2FyYmxlZCBkaXNw
bGF5IG9mIHBhZ2VzCisgIGR1ZSB0byBkZXByZWNpYXRlZCBlcnJvcnMuIEFsc28gdHJ5IGhhcmRl
ciB0byBzdXBwcmVzcyBkZXByZWNpYXRlZCBlcnJvcnMgb24KKyAgYWxsIFBIUCB2ZXJzaW9ucy4g
U2V0ICMjREVCVUc9MiMjIGluICMjY29uZmlnLmluaSMjIHRvIHZpZXcgZGVwcmVjaWF0ZWQKKyAg
ZXJyb3JzLCBhbmQgIyNERUJVRz0xIyMgZm9yIGJhc2ljIGVycm9ycy4gQWRkZWQgaG9va3MgZm9y
IGNzcyBmb3JtYXR0aW5nIG9mCiAgIGRlcHJlY2lhdGVkIGVycm9ycy4KKyogSW1wcm92ZW1lbnRz
IGFuZCBidWdmaXhlcyB0byBsb2FkaW5nIGFuZCBzYXZpbmcgcGFnZXMgdG8gZmlsZWR1bXBzOgor
ICAtIGZpeGVkIGRvd25sb2FkIG9mIGluZGl2aWR1YWwgZHVtcCBmaWxlcyBzdGFsbGluZyBpbiBj
aHJvbWUgKG11c3QgYWx3YXlzCisgICAgY2xpY2sgcmVzdW1lKS4KKyAgLSBmaXhlZCBwYWdlIGxv
Y2sgc3RhdHVzIG5vdCBhbHdheXMgbG9hZGluZywgZXNwZWNpYWxseSBmb3IgdmlyZ2luIHdpa2ku
CisgIC0gU2VjdXJpdHk6IFByZXZlbnRlZCB1bmxvY2tpbmcgZXhpc3RpbmcgcGFnZSB3aGVuIGxv
YWRpbmcgZHVtcGVkIGZpbGUKKyAgICB3aXRob3V0IGxvY2sgZmxhZy4KKyAgLSBTZWN1cml0eTog
UGFnZSBoaXRzIGFuZCBhY2wgYXJlIG9ubHkgbG9hZGVkIHdoZW4gcGFnZSBkb2Vzbid0IGV4aXN0
IGluCisgICAgZGF0YWJhc2UuIFRvIGRvIGEgY29tcGxldGUgcmVzdG9yZSBvZiBhIHBhZ2UsIGRl
bGV0ZSBpdCBmaXJzdC4KKyAgLSBGaXhlZCBwYWdlIG1ldGFkYXRhIGNoYW5nZXMgaW5jb3JyZWN0
bHkgYmVpbmcgYXBwbGllZCB0byBkYXRhYmFzZSB3aGVuCisgICAgYXR0ZW1wdGluZyB0byBsb2Fk
IGEgZmlsZSBhbmQgaXQgd2FzIHNraXBwZWQuCisgIC0gV2hlbiBhIGZpbGUgaXMgbG9hZGVkIHRo
ZSBzdGF0dXMgbm93IHJlcG9ydHMgdGhlIGxvYWRlZCBwYWdlIGxvY2sgc3RhdHVzLgorICAtIFJl
bW92ZWQgaW52YWxpZCBodHRwIGhlYWRlcnMuCisgIC0gQWRkZWQgZHVtcHN2biBhY3Rpb24sIG1h
aW5seSBmb3IgZGV2ZWxvcGVycyBhbmQgdHJhbnNsYXRvcnMgb2YgcGdzcmMgZmlsZXMuCisgIC0g
Rml4ZWQgZmlsZW5hbWVzIHNvbWV0aW1lcyBub3QgYmVpbmcgdXJsZW5jb2RlZCBwcm9wZXJseS4K
KyAgLSBJbXByb3ZlZCBmaWx0ZXJpbmcgb2YgdW5rbm93biBwYWdlIG1ldGFkYXRhIGJlaW5nIGxv
YWRlZCBpbnRvIGRhdGFiYXNlLgogCiA9PSAxLjYuNCAyMDI0LTAzLTEzIE1hcmMtRXRpZW5uZSBW
YXJnZW5hdSwgQ2hyaXN0b2YgTWVlcndhbGQgPT0KIAoKVGhpcyB3YXMgc2VudCBieSB0aGUgU291
cmNlRm9yZ2UubmV0IGNvbGxhYm9yYXRpdmUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0sIHRoZSB3b3Js
ZCdzIGxhcmdlc3QgT3BlbiBTb3VyY2UgZGV2ZWxvcG1lbnQgc2l0ZS4KCgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGhwd2lraS1jaGVja2lucyBtYWls
aW5nIGxpc3QKcGhwd2lraS1jaGVja2luc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9s
aXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vcGhwd2lraS1jaGVja2lucwo=