From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: =?utf-8?b?T25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+?= To: git-commits@fedoraproject.org Subject: [rpms/rpkg] 1.70-1: Orphaned for 6+ weeks Date: Mon, 10 Aug 2026 21:44:35 GMT Message-ID: <178639827568.1.14067471133653617938.rpms-rpkg-5698c918709a@fedoraproject.org> List-ID: X-Git-Repo: rpms/rpkg X-Git-Branch: 1.70-1 X-Git-Rev: 5698c918709a0cc6da3393022fa92919764db0a5 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcnBrZwpCcmFuY2gg OiAxLjcwLTEKQ29tbWl0IDogNTY5OGM5MTg3MDlhMGNjNmRhMzM5MzAyMmZhOTI5MTk3NjRkYjBh NQpBdXRob3IgOiBPbmTFmWVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4KRGF0ZSAgIDogMjAy My0wNC0yNVQxOTowNjoyNiswMDowMApTdGF0cyAgOiArMS8tMzA1NSBpbiAyNSBmaWxlKHMpClVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvcnBrZy9jLzU2OThjOTE4 NzA5YTBjYzZkYTMzOTMwMjJmYTkyOTE5NzY0ZGIwYTU/YnJhbmNoPTEuNzAtMQoKTG9nOgpPcnBo YW5lZCBmb3IgNisgd2Vla3MKCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25v cmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyOTI1N2UuLjAwMDAwMDAKLS0tIGEv LmdpdGlnbm9yZQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS9ycGtnLTEuMS50YXIu Z3oKLS9ycGtnLTEuMi50YXIuZ3oKLS9ycGtnLTEuMy50YXIuZ3oKLS9ycGtnLTEuNC50YXIuZ3oK LS9ycGtnLTEuNS50YXIuZ3oKLS9ycGtnLTEuNi50YXIuZ3oKLS9ycGtnLTEuNy50YXIuZ3oKLS9y cGtnLTEuOC50YXIuZ3oKLS9ycGtnLTEuOS50YXIuZ3oKLS9ycGtnLTEuMTAudGFyLmd6Ci0vcnBr Zy0xLjExLnRhci5negotL3Jwa2ctMS4xMi50YXIuZ3oKLS9ycGtnLTEuMTMudGFyLmd6Ci0vcnBr Zy0xLjE0LnRhci5negotL3Jwa2ctMS4xNS50YXIuZ3oKLS9ycGtnLTEuMTYudGFyLmd6Ci0vcnBr Zy0xLjE3LnRhci5negotL3Jwa2ctMS4xOC50YXIuZ3oKLS9ycGtnLTEuMTkudGFyLmd6Ci0vcnBr Zy0xLjIwLnRhci5negotL3Jwa2ctMS4yMS50YXIuZ3oKLS9ycGtnLTEuMjQudGFyLmd6Ci0vcnBr Zy0xLjI1LnRhci5negotL3Jwa2ctMS4yNi50YXIuZ3oKLS9ycGtnLTEuMjcudGFyLmd6Ci0vcnBr Zy0xLjI4LnRhci5negotL3Jwa2ctMS4zMC50YXIuZ3oKLS9ycGtnLTEuMzEudGFyLmd6Ci0vcnBr Zy0xLjMyLnRhci5negotL3Jwa2ctMS4zMy50YXIuZ3oKLS9ycGtnLTEuMzQudGFyLmd6Ci0vcnBr Zy0xLjM1LnRhci5negotL3Jwa2ctMS4zNi50YXIuZ3oKLS9ycGtnLTEuMzcudGFyLmd6Ci0vcnBr Zy0xLjM4LnRhci5negotL3Jwa2ctMS4zOS50YXIuZ3oKLS9ycGtnLTEuNDAudGFyLmd6Ci0vcnBr Zy0xLjQxLnRhci5negotL3Jwa2ctMS40Mi50YXIuZ3oKLS9ycGtnLTEuNDMudGFyLmd6Ci0vcnBr Zy0xLjQ0LnRhci5negotL3Jwa2ctMS40NS50YXIuYnoyCi0vcnBrZy0xLjQ1LnRhci5negotL3Jw a2ctMS40Ni50YXIuZ3oKLS9ycGtnLTEuNDcudGFyLmd6Ci0vcnBrZy0xLjQ4LnRhci5negotL3Jw a2ctMS40OS50YXIuZ3oKLS9ycGtnLTEuNTAudGFyLmd6Ci0vcnBrZy0xLjUxLnRhci5negotL3Jw a2ctMS41Mi50YXIuZ3oKLS9ycGtnLTEuNTMudGFyLmd6Ci0vcnBrZy0xLjU0LnRhci5negotL3Jw a2ctMS41NS50YXIuZ3oKLS9ycGtnLTEuNTYudGFyLmd6Ci0vcnBrZy0xLjU3LnRhci5negotL3Jw a2ctMS41OC50YXIuZ3oKLS9ycGtnLTEuNTkudGFyLmd6Ci0vcnBrZy0xLjYwLnRhci5negotL3Jw a2ctMS42MS50YXIuZ3oKLS9ycGtnLTEuNjIudGFyLmd6Ci0vcnBrZy0xLjYzLnRhci5negotL3Jw a2ctMS42NC50YXIuZ3oKLS9ycGtnLTEuNjUudGFyLmd6Ci0vcnBrZy0xLjY2LnRhci5negoKZGlm ZiAtLWdpdCBhLzAwMDEtRG8tbm90LXVzZS1weXRlc3QtcmVsYXRlZC1kZXBlbmRlbmNpZXMtdGVt cG9yYXJpbHkucGF0Y2ggYi8wMDAxLURvLW5vdC11c2UtcHl0ZXN0LXJlbGF0ZWQtZGVwZW5kZW5j aWVzLXRlbXBvcmFyaWx5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGQx MmIwLi4wMDAwMDAwCi0tLSBhLzAwMDEtRG8tbm90LXVzZS1weXRlc3QtcmVsYXRlZC1kZXBlbmRl bmNpZXMtdGVtcG9yYXJpbHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1G cm9tIDUwY2FmNTQ3ZmYyODhkODE0NmVhNWUyNzdhYjdiZmNmN2U4YjA5NWMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBEb21pbmlrIFJ1bWlhbiA8ZHJ1bWlhbkByZWRoYXQuY29tPgot RGF0ZTogVHVlLCAyNCBBdWcgMjAyMSAxNjoyNDo0NyArMDIwMAotU3ViamVjdDogW1BBVENIXSBb UEFUQ0hdIERvIG5vdCB1c2UgcHl0ZXN0LXJlbGF0ZWQgZGVwZW5kZW5jaWVzIHRlbXBvcmFyaWx5 Ci0KLVNpZ25lZC1vZmYtYnk6IERvbWluaWsgUnVtaWFuIDxkcnVtaWFuQHJlZGhhdC5jb20+Ci0t LS0KLSBzZXR1cC5weSB8IDEgLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCi0KLWRp ZmYgLS1naXQgYS9zZXR1cC5weSBiL3NldHVwLnB5Ci1pbmRleCA5YzZkODgxLi41NTdjZjVmIDEw MDc1NQotLS0tIGEvc2V0dXAucHkKLSsrKyBiL3NldHVwLnB5Ci1AQCAtNDksNyArNDksNiBAQCBz ZXR1cCgKLSAgICAgbGljZW5zZT0iR1BMdjIrIiwKLSAgICAgdXJsPSJodHRwczovL3BhZ3VyZS5p by9ycGtnIiwKLSAgICAgcGFja2FnZXM9ZmluZF9wYWNrYWdlcygpLAotLSAgICBzZXR1cF9yZXF1 aXJlcz1bJ3NldHVwdG9vbHNfc2NtJywgJ3B5dGVzdC1ydW5uZXInXSwKLSAgICAgaW5zdGFsbF9y ZXF1aXJlcz1pbnN0YWxsX3JlcXVpcmVzLAotICAgICB0ZXN0c19yZXF1aXJlPXRlc3RzX3JlcXVp cmUsCi0gICAgIGRlcGVuZGVuY3lfbGlua3M9ZGVwX2xpbmtzLAotLS0gCi0yLjMxLjEKLQoKZGlm ZiAtLWdpdCBhLzAwMDItUmVtb3ZlLXB5dGVzdC1jb3ZlcmFnZS1leGVjdXRpb24ucGF0Y2ggYi8w MDAyLVJlbW92ZS1weXRlc3QtY292ZXJhZ2UtZXhlY3V0aW9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBmYmM5Y2I3Li4wMDAwMDAwCi0tLSBhLzAwMDItUmVtb3ZlLXB5dGVz dC1jb3ZlcmFnZS1leGVjdXRpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBA Ci1Gcm9tIDhiZjdjM2IxMzM2NzM4ZWQ1OTM4ZjY3OWZjNGQ0NTBjM2Y4ZjBhNjIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBPbmRyZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPgot RGF0ZTogV2VkLCA3IFNlcCAyMDIyIDAwOjExOjU2ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIFJl bW92ZSBweXRlc3QgY292ZXJhZ2UgZXhlY3V0aW9uCi0KLVNpZ25lZC1vZmYtYnk6IE9uZHJlaiBO b3NlayA8b25vc2VrQHJlZGhhdC5jb20+Ci0tLS0KLSBzZXR1cC5jZmcgfCAxIC0KLSAxIGZpbGUg Y2hhbmdlZCwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvc2V0dXAuY2ZnIGIvc2V0dXAu Y2ZnCi1pbmRleCA1ZTI5YzJmLi40ZmU3M2ZhIDEwMDY0NAotLS0tIGEvc2V0dXAuY2ZnCi0rKysg Yi9zZXR1cC5jZmcKLUBAIC01LDcgKzUsNiBAQCB0ZXN0ID0gcHl0ZXN0Ci0gbWF4LWxpbmUtbGVu Z3RoID0gMTAwCi0gCi0gW3Rvb2w6cHl0ZXN0XQotLWFkZG9wdHMgPSAtLWNvdj1weXJwa2cKLSB0 ZXN0cGF0aHMgPSB0ZXN0cwotIAotIFtlZ2dfaW5mb10KLS0tIAotMi4zNy4yCi0KCmRpZmYgLS1n aXQgYS8wMDAzLVJlbW92ZS1FbnZpcm9ubWVudC1NYXJrZXJzLXN5bnRheC5wYXRjaCBiLzAwMDMt UmVtb3ZlLUVudmlyb25tZW50LU1hcmtlcnMtc3ludGF4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBmNTk2Y2U5Li4wMDAwMDAwCi0tLSBhLzAwMDMtUmVtb3ZlLUVudmlyb25t ZW50LU1hcmtlcnMtc3ludGF4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAot RnJvbSBhYzFjMjk5NWQxN2IxMDZiYmZkMGFiNmM4NGFiMDIyZGE4YjE4ZTNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogT25kcmVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4KLURh dGU6IE1vbiwgNyBGZWIgMjAyMiAwMzowMToxMSArMDEwMAotU3ViamVjdDogW1BBVENIXSBSZW1v dmUgIkVudmlyb25tZW50IE1hcmtlcnMiIHN5bnRheAotCi1TaWduZWQtb2ZmLWJ5OiBPbmRyZWog Tm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPgotLS0tCi0gcmVxdWlyZW1lbnRzL3Rlc3QtcHlwaS50 eHQgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p Ci0KLWRpZmYgLS1naXQgYS9yZXF1aXJlbWVudHMvdGVzdC1weXBpLnR4dCBiL3JlcXVpcmVtZW50 cy90ZXN0LXB5cGkudHh0Ci1pbmRleCA4MzBkOGMzLi5iNzMyZGNiIDEwMDY0NAotLS0tIGEvcmVx dWlyZW1lbnRzL3Rlc3QtcHlwaS50eHQKLSsrKyBiL3JlcXVpcmVtZW50cy90ZXN0LXB5cGkudHh0 Ci1AQCAtMSw1ICsxLDUgQEAKLSBjb3ZlcmFnZQotLW1vY2sgPT0gMS4wLjE7cHl0aG9uX3ZlcnNp b248IjMuMyIKLSttb2NrID09IDEuMC4xCi0gZmxha2U4Ci0gcHl0ZXN0Ci0gcHl0ZXN0LWNvdgot LS0gCi0yLjM0LjEKLQoKZGlmZiAtLWdpdCBhLzAwMDQtUHJvY2Vzcy1zb3VyY2UtVVJMcy13aXRo LWZyYWdtZW50LWluLXByZS1wdXNoLWhvb2sucGF0Y2ggYi8wMDA0LVByb2Nlc3Mtc291cmNlLVVS THMtd2l0aC1mcmFnbWVudC1pbi1wcmUtcHVzaC1ob29rLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBlMjUyMDM4Li4wMDAwMDAwCi0tLSBhLzAwMDQtUHJvY2Vzcy1zb3VyY2Ut VVJMcy13aXRoLWZyYWdtZW50LWluLXByZS1wdXNoLWhvb2sucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw0MiArMCwwIEBACi1Gcm9tIDZkODEzZDQwYWZmOTEzNDViMTcxMzIzNTEyYjNhZTY0MWEx NjhkNDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/THVib209QzM9 QURyPTIwU2VkbD1DMz1BMT1DNT05OT89IDxsc2VkbGFyQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24s IDI3IEZlYiAyMDIzIDA4OjM2OjIwICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFByb2Nlc3Mgc291 cmNlIFVSTHMgd2l0aCBmcmFnbWVudCBpbiBwcmUtcHVzaCBob29rCi1NSU1FLVZlcnNpb246IDEu MAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVNvbWUgZG93bmxvYWQgc2VydmljZXMgZG8gbm90IGhhdmUg dGhlIGFjdHVhbCBmaWxlbmFtZSBpbiB0aGUgVVJMLgotUGFja2FnZXJzIHdvcmsgYXJvdW5kIHRo YXQgYnkgYWRkaW5nIGEgZnJhZ21lbnQgdG8gdGhlIFVSTC4gVGhpcyBpcyB0aGVuCi1pZ25vcmVk IGJ5IGFueSBzZXJ2ZXIsIGJ1dCB0cmlja3MgUlBNIGludG8gZ2V0dGluZyB0aGUgY29ycmVjdCBm aWxlbmFtZS4KLQotRXhhbXBsZToKLQotICAgIFNvdXJjZTA6IGh0dHBzOi8vY3JhdGVzLmlvL2Fw aS92MS9jcmF0ZXMvYWN0aXgvMC4xMy4wL2Rvd25sb2FkIy9hY3RpeC0wLjEzLjAuY3JhdGUKLQot VGhlIGZpbGVuYW1lIGlzIG9idmlvdXNseSBgYWN0aXgtMC4xMy4wLmNyYXRlYCwgYnV0IHJwa2cg d2l0aG91dCB0aGlzCi1wYXRjaCB3aWxsIGNvbWUgdXAgd2l0aCBgZG93bmxvYWRgLgotCi1TaWdu ZWQtb2ZmLWJ5OiBMdWJvbcOtciBTZWRsw6HFmSA8bHNlZGxhckByZWRoYXQuY29tPgotLS0tCi0g cHlycGtnL19faW5pdF9fLnB5IHwgNCArKystCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvcHlycGtnL19faW5pdF9fLnB5IGIv cHlycGtnL19faW5pdF9fLnB5Ci1pbmRleCA2YTBlOWViLi5jNjUwODUxIDEwMDY0NAotLS0tIGEv cHlycGtnL19faW5pdF9fLnB5Ci0rKysgYi9weXJwa2cvX19pbml0X18ucHkKLUBAIC00NDY0LDcg KzQ0NjQsOSBAQCBjbGFzcyBDb21tYW5kcyhvYmplY3QpOgotICAgICAgICAgICAgICAgICAjIGZp bmQgb3V0IHRoZSBmb3JtYXQgb2YgdGhlIHNvdXJjZSBmaWxlIHBhdGguIEZyb20gVVJMIHVzZSBq dXN0IHRoZSBmaWxlIG5hbWUuCi0gICAgICAgICAgICAgICAgICMgV2Ugd2FudCB0byBrZWVwIGhp ZXJhcmNoeSBvZiB0aGUgZmlsZXMgaWYgcG9zc2libGUKLSAgICAgICAgICAgICAgICAgcmVzID0g dXJsbGliLnBhcnNlLnVybHBhcnNlKGZpbGVfbG9jYXRpb24pCi0tICAgICAgICAgICAgICAgIGlm IHJlcy5zY2hlbWUgYW5kIHJlcy5uZXRsb2M6Ci0rICAgICAgICAgICAgICAgIGlmIHJlcy5zY2hl bWUgYW5kIHJlcy5mcmFnbWVudDoKLSsgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9maWxlcy5h cHBlbmQob3MucGF0aC5iYXNlbmFtZShyZXMuZnJhZ21lbnQpKQotKyAgICAgICAgICAgICAgICBl bGlmIHJlcy5zY2hlbWUgYW5kIHJlcy5uZXRsb2M6Ci0gICAgICAgICAgICAgICAgICAgICBzb3Vy Y2VfZmlsZXMuYXBwZW5kKG9zLnBhdGguYmFzZW5hbWUocmVzLnBhdGgpKQotICAgICAgICAgICAg ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgc291cmNlX2ZpbGVzLmFwcGVuZChmaWxl X2xvY2F0aW9uKQotLS0gCi0yLjM5LjIKLQoKZGlmZiAtLWdpdCBhLzAwMDUtY29udGFpbmVyLWJ1 aWxkLXVwZGF0ZS1zaWduaW5nLWludGVudC1oZWxwLWZvci1PU0JTLS5wYXRjaCBiLzAwMDUtY29u dGFpbmVyLWJ1aWxkLXVwZGF0ZS1zaWduaW5nLWludGVudC1oZWxwLWZvci1PU0JTLS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVhZDZhMy4uMDAwMDAwMAotLS0gYS8wMDA1 LWNvbnRhaW5lci1idWlsZC11cGRhdGUtc2lnbmluZy1pbnRlbnQtaGVscC1mb3ItT1NCUy0ucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1Gcm9tIGUzOGNmZTRiNjg4YjYwMGM0 MTFhOTc0NTkyMmI3N2ViYjljMTQxMjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBL ZW4gRHJleWVyIDxrZHJleWVyQHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDI4IEZlYiAyMDIzIDE2 OjE3OjAzIC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNvbnRhaW5lci1idWlsZDogdXBkYXRlIC0t c2lnbmluZy1pbnRlbnQgaGVscCBmb3IgT1NCUyAyCi0KLU9TQlMgMiBsb2dzIHRoZSByZWFjdG9y IGNvbmZpZ3VyYXRpb24gaW4gYSBzbGlnaHRseSBkaWZmZXJlbnQgd2F5LgotVXBkYXRlIHRoZSAt LWhlbHAgdGV4dCBmb3IgLS1zaWduaW5nLWludGVudCB0byBwb2ludCB1c2VycyBhdCB0aGUgbmV3 Ci1sb2NhdGlvbi4KLQotU2lnbmVkLW9mZi1ieTogS2VuIERyZXllciA8a2RyZXllckByZWRoYXQu Y29tPgotLS0tCi0gcHlycGtnL2NsaS5weSB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3B5cnBrZy9jbGkucHkgYi9w eXJwa2cvY2xpLnB5Ci1pbmRleCA0MWM0MzU0Li5jMzY3MmIzIDEwMDY0NAotLS0tIGEvcHlycGtn L2NsaS5weQotKysrIGIvcHlycGtnL2NsaS5weQotQEAgLTE3MjQsNyArMTcyNCw3IEBAIGNsYXNz IGNsaUNsaWVudChvYmplY3QpOgotICAgICAgICAgICAgICIgc2VydmVyLiBJZiB1bnNwZWNpZmll ZCwgdGhlIHNlcnZlciB3aWxsIHVzZSB0aGUgc2lnbmluZyBpbnRlbnQiCi0gICAgICAgICAgICAg IiBvZiB0aGUgY29tcG9zZV9pZHMgeW91IHNwZWNpZnksIG9yIHRoZSBzZXJ2ZXIncyIKLSAgICAg ICAgICAgICAiIGRlZmF1bHRfc2lnbmluZ19pbnRlbnQuIFRvIHZpZXcgdGhlIGZ1bGwgbGlzdCBv ZiBwb3NzaWJsZSIKLS0gICAgICAgICAgICAiIG5hbWVzLCBzZWUgUkVBQ1RPUl9DT05GSUcgaW4g b3JjaGVzdHJhdG9yLmxvZy4iKQotKyAgICAgICAgICAgICIgbmFtZXMsIHNlZSBhdG9taWNfcmVh Y3Rvci5jb25maWcgaW4gb3Nicy1idWlsZC5sb2cuIikKLSAKLSAgICAgICAgIHBhcnNlci5hZGRf YXJndW1lbnQoCi0gICAgICAgICAgICAgJy0tc2tpcC1yZW1vdGUtcnVsZXMtdmFsaWRhdGlvbics Ci0tLSAKLTIuMzkuMgotCgpkaWZmIC0tZ2l0IGEvMDAwNi1Eby1ub3QtZ2VuZXJhdGUtcHJlLXB1 c2gtaG9vay1zY3JpcHQtaW4tc29tZS1jYXNlcy5wYXRjaCBiLzAwMDYtRG8tbm90LWdlbmVyYXRl LXByZS1wdXNoLWhvb2stc2NyaXB0LWluLXNvbWUtY2FzZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDMzNjk5NTkuLjAwMDAwMDAKLS0tIGEvMDAwNi1Eby1ub3QtZ2VuZXJh dGUtcHJlLXB1c2gtaG9vay1zY3JpcHQtaW4tc29tZS1jYXNlcy5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDM3ICswLDAgQEAKLUZyb20gMzBmMTg5NzM2MTM3YTUwZGE0Yjc0MGFjZjc3NWZmNjY3 NWExNWE3MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE9uZHJlaiBOb3NlayA8b25v c2VrQHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDggTWFyIDIwMjMgMTY6Mzk6MTYgKzAxMDAKLVN1 YmplY3Q6IFtQQVRDSF0gRG8gbm90IGdlbmVyYXRlIHByZS1wdXNoIGhvb2sgc2NyaXB0IGluIHNv bWUgY2FzZXMKLQotU29tZSBycGtnIHVzZXJzIGRvbid0IHVzZSBmZWRwa2cgb3Igc2ltaWxhciB0 b29sIGZvciBjbG9uaW5nCi1hbmQgdGhlcmVmb3JlIHRoZXJlIGlzIG5vIHRvb2wgdG8gZXhlY3V0 ZSB0aGUgcHJlLXB1c2gtY2hlY2sKLWZ1bmN0aW9uLiBEbyBub3QgZ2VuZXJhdGUgdGhlIGhvb2sg c2NyaXB0IGluIHRoaXMgY2FzZS4KLQotRml4ZXM6ICM2NjUKLUpJUkE6IFJIRUxDTVAtMTEzOTIK LVNpZ25lZC1vZmYtYnk6IE9uZHJlaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+Ci0tLS0KLSBw eXJwa2cvX19pbml0X18ucHkgfCA3ICsrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRp b25zKCspCi0KLWRpZmYgLS1naXQgYS9weXJwa2cvX19pbml0X18ucHkgYi9weXJwa2cvX19pbml0 X18ucHkKLWluZGV4IGFjZGFkMjIuLjc3NmNiMjEgMTAwNjQ0Ci0tLS0gYS9weXJwa2cvX19pbml0 X18ucHkKLSsrKyBiL3B5cnBrZy9fX2luaXRfXy5weQotQEAgLTE3OTUsNiArMTc5NSwxMyBAQCBj bGFzcyBDb21tYW5kcyhvYmplY3QpOgotICAgICAgICAgZm9yIHBvc3NpYmxlIHVzZXIgbWlzdGFr ZXMuCi0gICAgICAgICAiIiIKLSAgICAgICAgIHRvb2xfbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUo c3lzLmFyZ3ZbMF0pICAjIHJocGtnfGZlZHBrZ3wuLi4KLSsgICAgICAgIGlmIG5vdCB0b29sX25h bWU6Ci0rICAgICAgICAgICAgIyBlbXB0eSBhcmd2IC0gdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5v dCBleGVjdXRlZCBmcm9tIHgtcGtnIHRvb2wKLSsgICAgICAgICAgICAjIGFuZCB0aGVyZWZvcmUg dGhlcmUgaXNuJ3QgYSBwcm9ncmFtIHRoYXQgY2FuIHJ1biBwcmUtcHVzaC1jaGVjay4KLSsgICAg ICAgICAgICAjIEV4YW1wbGU6IHRoZSBDT1BSIHRlYW0gZXhlY3V0ZXMgJ2Nsb25lJyBieSB0aGVp ciBvd24gc2NyaXB0LgotKyAgICAgICAgICAgIHNlbGYubG9nLmRlYnVnKCdQcmUtcHVzaCBob29r IHNjcmlwdCB3YXMgTk9UIGFkZGVkIC0gbWlzc2luZyAnCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3RoZSBwYWNrYWdpbmcgdG9vbCBsaWtlIGZlZHBrZywgcmhwa2csIC4uLicpCi0rICAg ICAgICAgICAgcmV0dXJuCi0gICAgICAgICBob29rX2NvbnRlbnQgPSB0ZXh0d3JhcC5kZWRlbnQo IiIiCi0gICAgICAgICAgICAgIyEvYmluL2Jhc2gKLSAKLS0tIAotMi4zOS4yCi0KCmRpZmYgLS1n aXQgYS8wMDA3LU1vcmUtcm9idXN0LXNwZWMtZmlsZS1wcmVzZW5jZS1jaGVja2luZy5wYXRjaCBi LzAwMDctTW9yZS1yb2J1c3Qtc3BlYy1maWxlLXByZXNlbmNlLWNoZWNraW5nLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWRkZTY0Li4wMDAwMDAwCi0tLSBhLzAwMDctTW9y ZS1yb2J1c3Qtc3BlYy1maWxlLXByZXNlbmNlLWNoZWNraW5nLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjkyICswLDAgQEAKLUZyb20gMTEwODgxMGJkZWZkMGQ4ODA1MTdiMjc0YWNkNmEzYmQw ZDQxNTZlMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE9uZHJlaiBOb3NlayA8b25v c2VrQHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDIxIE1hciAyMDIzIDAyOjQ0OjA0ICswMTAwCi1T dWJqZWN0OiBbUEFUQ0ggMDcvMTJdIE1vcmUgcm9idXN0IHNwZWMgZmlsZSBwcmVzZW5jZSBjaGVj a2luZwotCi1Tb21lIGNvbW1hbmRzICh2ZXJyZWwsIHNvdXJjZXMsIHByZXAsIGltcG9ydCwgLi4u KSBuZWVkIHRvIGNoZWNrCi13aGV0aGVyIHRoZSBkaXN0LWdpdCByZXBvc2l0b3J5IGlzIGluIHRo ZSBjb3JyZWN0IHN0YXRlLiBJdCBtZWFucwotYXQgbGVhc3QgdGhlIHByZXNlbmNlIG9mIHRoZSBz cGVjZmlsZS4KLUluIHRoZSBiZWdpbm5pbmcsIHJwa2cgZGV0ZWN0cyBsYXlvdXRzLiBMYXlvdXRz IGRldGVybWluZSB0aGUgZmlsZQotc3RydWN0dXJlIG9mIHRoZSByZXBvc2l0b3J5LiBGb3IgZXhh bXBsZSwgbW9zdCBjb21tYW5kcyBjYW4ndAotYmUgZXhlY3V0ZWQgZm9yIHRoZSBSZXRpcmVkTGF5 b3V0ICh0aGVyZSBpcyBubyBzcGVjZmlsZSkuCi1XaGVuIHRoZSByZXBvc2l0b3J5IGRpcmVjdG9y eSBleGlzdHMsIHNvbWUgbGF5b3V0IGNhbiBiZSBhbHdheXMKLWRldGVjdGVkLiBUaGVyZWZvcmUg Jy0tcGF0aCcgYXJndW1lbnQgaXMgbm93IGNoZWNrZWQgZm9yCi1hIHZhbGlkIGRpcmVjdG9yeS4K LVRoZSB0aW1lb3V0IGNoYW5nZSBpbiB0aGUgcmVxdWVzdCBmaXhlcyB0aGUgbmV3IGJhbmRpdCdz IGZpbmRpbmcuCi0KLUZpeGVzOiAjNjYzCi1KSVJBOiBSSEVMQ01QLTExMzg3Ci0KLVNpZ25lZC1v ZmYtYnk6IE9uZHJlaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+Ci0tLS0KLSBweXJwa2cvX19p bml0X18ucHkgICAgICAgICAgfCAgOSArKysrLS0tCi0gcHlycGtnL2NsaS5weSAgICAgICAgICAg ICAgIHwgIDggKysrLS0tCi0gcHlycGtnL2xheW91dC9fX2luaXRfXy5weSAgIHwgIDQgKy0tCi0g cHlycGtnL3V0aWxzLnB5ICAgICAgICAgICAgIHwgMTQgKysrKysrKysrKwotIHRlc3RzL2NvbW1h bmRzL3Rlc3RfcHVzaC5weSB8IDU0ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0KLSB0ZXN0cy90ZXN0X2NsaS5weSAgICAgICAgICAgfCAxMiArKysrKystLS0KLSA2IGZpbGVz IGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvcHlycGtnL19faW5pdF9fLnB5IGIvcHlycGtnL19faW5pdF9fLnB5Ci1pbmRleCA3NzZjYjIx Li4wMjhkMTk1IDEwMDY0NAotLS0tIGEvcHlycGtnL19faW5pdF9fLnB5Ci0rKysgYi9weXJwa2cv X19pbml0X18ucHkKLUBAIC05MjMsOSArOTIzLDggQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToK LSAgICAgZGVmIGxvYWRfc3BlYyhzZWxmKToKLSAgICAgICAgICIiIlRoaXMgc2V0cyB0aGUgc3Bl YyBhdHRyaWJ1dGUiIiIKLSAKLS0gICAgICAgIGlmIHNlbGYubGF5b3V0IGlzIE5vbmU6Ci0rICAg ICAgICBpZiBzZWxmLmxheW91dCBpcyBOb25lIG9yIGlzaW5zdGFuY2Uoc2VsZi5sYXlvdXQsIGxh eW91dC5JbmNvbXBsZXRlTGF5b3V0KToKLSAgICAgICAgICAgICByYWlzZSBycGtnRXJyb3IoJ1Nw ZWMgZmlsZSBpcyBub3QgYXZhaWxhYmxlJykKLS0KLSAgICAgICAgIGlmIHNlbGYuaXNfcmV0aXJl ZCgpOgotICAgICAgICAgICAgIHJhaXNlIHJwa2dFcnJvcignVGhpcyBwYWNrYWdlIG9yIG1vZHVs ZSBpcyByZXRpcmVkLiBUaGUgYWN0aW9uIGhhcyBzdG9wcGVkLicpCi0gCi1AQCAtMTE2Niw4ICsx MTY1LDEwIEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6Ci0gCi0gICAgIEBwcm9wZXJ0eQotICAg ICBkZWYgc291cmNlc19maWxlbmFtZShzZWxmKToKLS0gICAgICAgIGlmIHNlbGYubGF5b3V0IGlz IE5vbmU6Ci0tICAgICAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLnBhdGgsICdzb3Vy Y2VzJykKLSsgICAgICAgIGlmIHNlbGYubGF5b3V0IGlzIE5vbmUgb3IgaXNpbnN0YW5jZShzZWxm LmxheW91dCwgbGF5b3V0LkluY29tcGxldGVMYXlvdXQpOgotKyAgICAgICAgICAgIHJhaXNlIHJw a2dFcnJvcignU3BlYyBmaWxlIGlzIG5vdCBhdmFpbGFibGUnKQotKyAgICAgICAgaWYgc2VsZi5p c19yZXRpcmVkKCk6Ci0rICAgICAgICAgICAgcmFpc2UgcnBrZ0Vycm9yKCdUaGlzIHBhY2thZ2Ug b3IgbW9kdWxlIGlzIHJldGlyZWQuIFRoZSBhY3Rpb24gaGFzIHN0b3BwZWQuJykKLSAgICAgICAg IHJldHVybiBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgc2VsZi5wYXRoLCBzZWxmLmxheW91 dC5zb3VyY2VzX2ZpbGVfdGVtcGxhdGUucmVwbGFjZSgiezAucmVwb19uYW1lfSIsIHNlbGYucmVw b19uYW1lKSkKLSAKLWRpZmYgLS1naXQgYS9weXJwa2cvY2xpLnB5IGIvcHlycGtnL2NsaS5weQot aW5kZXggYzM2NzJiMy4uMWJjZjZlNCAxMDA2NDQKLS0tLSBhL3B5cnBrZy9jbGkucHkKLSsrKyBi L3B5cnBrZy9jbGkucHkKLUBAIC0zODYsNyArMzg2LDcgQEAgY2xhc3MgY2xpQ2xpZW50KG9iamVj dCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nUnVuIEtvamkgY29t bWFuZHMgYXMgYSBkaWZmZXJlbnQgdXNlcicpCi0gICAgICAgICAjIExldCB0aGUgdXNlciBkZWZp bmUgYSBwYXRoIHRvIHdvcmsgaW4gcmF0aGVyIHRoYW4gY3dkCi0gICAgICAgICBzZWxmLnBhcnNl ci5hZGRfYXJndW1lbnQoJy0tcGF0aCcsIGRlZmF1bHQ9Tm9uZSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0eXBlPXV0aWxzLnUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdHlwZT11dGlscy52YWxpZGF0ZV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGhlbHA9J0RlZmluZSB0aGUgZGlyZWN0b3J5IHRvIHdvcmsgaW4gJwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoZGVmYXVsdHMgdG8gY3dkKScpCi0gICAg ICAgICAjIFZlcmJvc2l0eQotQEAgLTkxMSw4ICs5MTEsOSBAQCBjbGFzcyBjbGlDbGllbnQob2Jq ZWN0KToKLSAgICAgICAgIGlmICdwYXRoJyBpbiBhcmdzOgotICAgICAgICAgICAgICMgV2l0aG91 dCAicGF0aCIsIHdlIGNhbid0IHJlYWxseSB0ZXN0Li4uCi0gICAgICAgICAgICAgdXJsID0gJyUo cHJvdG9jb2wpczovLyUoaG9zdClzLyUocGF0aClzL2luZm8vcmVmcz9zZXJ2aWNlPWdpdC1yZWNl aXZlLXBhY2snICUgYXJncwotLSAgICAgICAgICAgIHJlc3AgPSByZXF1ZXN0cy5oZWFkKHVybCwg YXV0aD1IVFRQQmFzaWNBdXRoKGFyZ3NbJ3VzZXJuYW1lJ10sCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1sncGFzc3dvcmQnXSkp Ci0rICAgICAgICAgICAgcmVzcCA9IHJlcXVlc3RzLmhlYWQodXJsLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGF1dGg9SFRUUEJhc2ljQXV0aChhcmdzWyd1c2VybmFtZSddLCBh cmdzWydwYXNzd29yZCddKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1l b3V0PTE1KQotICAgICAgICAgICAgIGlmIHJlc3Auc3RhdHVzX2NvZGUgPT0gNDAxOgotICAgICAg ICAgICAgICAgICByZXR1cm4gc2VsZi5vaWRjX2NsaWVudC5yZXBvcnRfdG9rZW5faXNzdWUoKQot IAotQEAgLTIzNjMsNiArMjM2NCw3IEBAIGNsYXNzIGNsaUNsaWVudChvYmplY3QpOgotIAotICAg ICBkZWYgaW1wb3J0X3NycG0oc2VsZik6Ci0gICAgICAgICB1cGxvYWRmaWxlcyA9IHNlbGYuY21k LmltcG9ydF9zcnBtKHNlbGYuYXJncy5zcnBtKQotKyAgICAgICAgc2VsZi5sb2FkX2NtZCgpICAj IHRvIHJlbG9hZCBsYXlvdXRzIC0gYmVjYXVzZSBhIHNwZWNmaWxlIGNvdWxkIGFwcGVhciBkdXJp bmcgaW1wb3J0Ci0gICAgICAgICBpZiB1cGxvYWRmaWxlczoKLSAgICAgICAgICAgICB0cnk6Ci0g ICAgICAgICAgICAgICAgIHNlbGYuY21kLnVwbG9hZCh1cGxvYWRmaWxlcywgcmVwbGFjZT1UcnVl LCBvZmZsaW5lPXNlbGYuYXJncy5vZmZsaW5lKQotZGlmZiAtLWdpdCBhL3B5cnBrZy9sYXlvdXQv X19pbml0X18ucHkgYi9weXJwa2cvbGF5b3V0L19faW5pdF9fLnB5Ci1pbmRleCA3NjJhZjBkLi44 NTBkZGMyIDEwMDY0NAotLS0tIGEvcHlycGtnL2xheW91dC9fX2luaXRfXy5weQotKysrIGIvcHly cGtnL2xheW91dC9fX2luaXRfXy5weQotQEAgLTEyLDggKzEyLDggQEAKLSBmcm9tIHB5cnBrZy5l cnJvcnMgaW1wb3J0IExheW91dEVycm9yCi0gCi0gZnJvbSAuYmFzZSBpbXBvcnQgTWV0YUxheW91 dAotLWZyb20gLmxheW91dHMgaW1wb3J0IChEaXN0R2l0TGF5b3V0LCBJbmNvbXBsZXRlTGF5b3V0 LCAgIyBub3FhOiBGNDAxCi0tICAgICAgICAgICAgICAgICAgICAgIFJldGlyZWRMYXlvdXQsIFNS UE1MYXlvdXQpCi0rZnJvbSAubGF5b3V0cyBpbXBvcnQgKERpc3RHaXRMYXlvdXQsIERpc3RHaXRS ZXN1bHRzRGlyTGF5b3V0LCAgIyBub3FhOiBGNDAxCi0rICAgICAgICAgICAgICAgICAgICAgIElu Y29tcGxldGVMYXlvdXQsIFJldGlyZWRMYXlvdXQsIFNSUE1MYXlvdXQpCi0gCi0gCi0gZGVmIGJ1 aWxkKHBhdGgsIGhpbnQ9Tm9uZSk6Ci1kaWZmIC0tZ2l0IGEvcHlycGtnL3V0aWxzLnB5IGIvcHly cGtnL3V0aWxzLnB5Ci1pbmRleCBjZWI0OTA2Li4zMzM3YmRiIDEwMDY0NAotLS0tIGEvcHlycGtn L3V0aWxzLnB5Ci0rKysgYi9weXJwa2cvdXRpbHMucHkKLUBAIC0yNiwxMSArMjYsMjUgQEAgaWYg c2l4LlBZMzoKLSAgICAgZGVmIHUocyk6Ci0gICAgICAgICByZXR1cm4gcwotIAotKyAgICBkZWYg dmFsaWRhdGVfcGF0aChzKToKLSsgICAgICAgIGFic3BhdGggPSBvcy5wYXRoLmFic3BhdGgocykK LSsgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGFic3BhdGgpOgotKyAgICAgICAgICAgIHJldHVy biBzCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIHJhaXNlIGFyZ3BhcnNlLkFyZ3VtZW50 VHlwZUVycm9yKCdnaXZlbiBwYXRoIFwnezB9XCcgZG9lc25cJ3QgZXhpc3QnLmZvcm1hdChhYnNw YXRoKSkKLSsKLSAgICAgZ2V0Y3dkID0gb3MuZ2V0Y3dkCi0gZWxzZToKLSAgICAgZGVmIHUocyk6 Ci0gICAgICAgICByZXR1cm4gcy5kZWNvZGUoJ3V0Zi04JykKLSAKLSsgICAgZGVmIHZhbGlkYXRl X3BhdGgocyk6Ci0rICAgICAgICBhYnNwYXRoID0gb3MucGF0aC5hYnNwYXRoKHMuZGVjb2RlKCd1 dGYtOCcpKQotKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoYWJzcGF0aCk6Ci0rICAgICAgICAg ICAgcmV0dXJuIHMuZGVjb2RlKCd1dGYtOCcpCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAg IHJhaXNlIGFyZ3BhcnNlLkFyZ3VtZW50VHlwZUVycm9yKCdnaXZlbiBwYXRoIFwnezB9XCcgZG9l c25cJ3QgZXhpc3QnLmZvcm1hdChhYnNwYXRoKSkKLSsKLSAgICAgZ2V0Y3dkID0gb3MuZ2V0Y3dk dQotIAotIAotZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbW1hbmRzL3Rlc3RfcHVzaC5weSBiL3Rlc3Rz L2NvbW1hbmRzL3Rlc3RfcHVzaC5weQotaW5kZXggZWY4MDU3YS4uNzljM2E4YiAxMDA2NDQKLS0t LSBhL3Rlc3RzL2NvbW1hbmRzL3Rlc3RfcHVzaC5weQotKysrIGIvdGVzdHMvY29tbWFuZHMvdGVz dF9wdXNoLnB5Ci1AQCAtMSw5ICsxLDEzIEBACi0gIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KLSAK LSBpbXBvcnQgb3MKLStpbXBvcnQgc3VicHJvY2VzcwotIAotIGltcG9ydCBnaXQKLSAKLStpbXBv cnQgcHlycGtnCi0rZnJvbSBweXJwa2cuc291cmNlcyBpbXBvcnQgU291cmNlc0ZpbGUKLSsKLSBm cm9tIC4gaW1wb3J0IENvbW1hbmRUZXN0Q2FzZQotIAotIFNQRUNGSUxFX1RFTVBMQVRFID0gIiIi TmFtZTogICAgICAgICAgIHRlc3QKLUBAIC0yMiwxMSArMjYsNiBAQCBUZXN0Ci0gJSVpbnN0YWxs Ci0gcm0gLWYgJFJQTV9CVUlMRF9ST09UJSV7X3N5c2NvbmZkaXJ9LyIiIgotIAotLUNMT05FX0NP TkZJRyA9ICcnJwotLSAgICBiei5kZWZhdWx0LWNvbXBvbmVudCAlKG1vZHVsZSlzCi0tICAgIHNl bmRlbWFpbC50byAlKG1vZHVsZSlzLW93bmVyQGZlZG9yYXByb2plY3Qub3JnCi0tJycnCi0tCi0g Ci0gY2xhc3MgQ29tbWFuZFB1c2hUZXN0Q2FzZShDb21tYW5kVGVzdENhc2UpOgotIAotQEAgLTQ1 LDI4ICs0NCwzMCBAQCBjbGFzcyBDb21tYW5kUHVzaFRlc3RDYXNlKENvbW1hbmRUZXN0Q2FzZSk6 Ci0gCi0gICAgICAgICBzZWxmLm1ha2VfbmV3X2dpdChzZWxmLm1vZHVsZSkKLSAKLS0gICAgICAg IGltcG9ydCBweXJwa2cKLS0gICAgICAgIGNtZCA9IHB5cnBrZy5Db21tYW5kcyhzZWxmLnBhdGgs IHNlbGYubG9va2FzaWRlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9v a2FzaWRlaGFzaCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxvb2thc2lk ZV9jZ2ksIHNlbGYuZ2l0YmFzZXVybCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmFub25naXR1cmwsIHNlbGYuYnJhbmNocmUsIHNlbGYua29qaXByb2ZpbGUsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5idWlsZF9jbGllbnQsIHNlbGYudXNlciwgc2Vs Zi5kaXN0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFyZ2V0LCBzZWxm LnF1aWV0KQotLSAgICAgICAgY21kLmNsb25lX2NvbmZpZ19ycG1zID0gQ0xPTkVfQ09ORklHCi0t ICAgICAgICBjbWQuY2xvbmUoc2VsZi5tb2R1bGUsIGFub249VHJ1ZSkKLS0gICAgICAgIGNtZC5w YXRoID0gb3MucGF0aC5qb2luKHNlbGYucGF0aCwgc2VsZi5tb2R1bGUpCi0tICAgICAgICBvcy5j aGRpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCBzZWxmLm1vZHVsZSkpCi0rICAgICAgICBtb2R1 bGVkaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5naXRyb290LCBzZWxmLm1vZHVsZSkKLSsgICAgICAg IHN1YnByb2Nlc3MuY2hlY2tfY2FsbChbJ2dpdCcsICdjbG9uZScsICdmaWxlOi8vJXMnICUgbW9k dWxlZGlyXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLCBz dGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 ZGVycj1zdWJwcm9jZXNzLlBJUEUpCi0rCi0rICAgICAgICBzZWxmLmNsb25lZF9kaXIgPSBvcy5w YXRoLmpvaW4oc2VsZi5wYXRoLCBzZWxmLm1vZHVsZSkKLSsgICAgICAgIHNlbGYuY21kID0gcHly cGtnLkNvbW1hbmRzKHNlbGYuY2xvbmVkX2Rpciwgc2VsZi5sb29rYXNpZGUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxvb2thc2lkZWhhc2gsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxvb2thc2lkZV9jZ2ksIHNlbGYuZ2l0YmFz ZXVybCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYW5vbmdpdHVy bCwgc2VsZi5icmFuY2hyZSwgc2VsZi5rb2ppcHJvZmlsZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuYnVpbGRfY2xpZW50LCBzZWxmLnVzZXIsIHNlbGYuZGlzdCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFyZ2V0LCBzZWxmLnF1 aWV0KQotKyAgICAgICAgb3MuY2hkaXIoc2VsZi5jbG9uZWRfZGlyKQotIAotICAgICAgICAgc3Bl Y19maWxlID0gJ21vZHVsZS5zcGVjJwotICAgICAgICAgd2l0aCBvcGVuKHNwZWNfZmlsZSwgJ3cn KSBhcyBmOgotICAgICAgICAgICAgIGYud3JpdGUoU1BFQ0ZJTEVfVEVNUExBVEUgJSAnJykKLSAK LS0gICAgICAgIGNtZC5yZXBvLmluZGV4LmFkZChbc3BlY19maWxlXSkKLS0gICAgICAgIGNtZC5y ZXBvLmluZGV4LmNvbW1pdCgiYWRkIFNQRUMiKQotKyAgICAgICAgc2VsZi5jbWQucmVwby5pbmRl eC5hZGQoW3NwZWNfZmlsZV0pCi0rICAgICAgICBzZWxmLmNtZC5yZXBvLmluZGV4LmNvbW1pdCgi YWRkIFNQRUMiKQotIAotICAgICAgICAgIyBOb3csIGNoYW5nZSBkaXJlY3RvcnkgdG8gcGFyZW50 IGFuZCB0ZXN0IHRoZSBwdXNoCi0gICAgICAgICBvcy5jaGRpcihzZWxmLnBhdGgpCi0tICAgICAg ICBjbWQucHVzaChub192ZXJpZnk9VHJ1ZSkKLSsgICAgICAgIHNlbGYuY21kLnB1c2gobm9fdmVy aWZ5PVRydWUpCi0gCi0gCi0gY2xhc3MgVGVzdFB1c2hXaXRoUGF0Y2hlcyhDb21tYW5kVGVzdENh c2UpOgotQEAgLTc2LDE4ICs3NywyMCBAQCBjbGFzcyBUZXN0UHVzaFdpdGhQYXRjaGVzKENvbW1h bmRUZXN0Q2FzZSk6Ci0gCi0gICAgICAgICBzZWxmLm1ha2VfbmV3X2dpdChzZWxmLm1vZHVsZSkK LSAKLS0gICAgICAgIGltcG9ydCBweXJwa2cKLS0gICAgICAgIHNlbGYuY21kID0gcHlycGtnLkNv bW1hbmRzKHNlbGYucGF0aCwgc2VsZi5sb29rYXNpZGUsCi0rICAgICAgICBtb2R1bGVkaXIgPSBv cy5wYXRoLmpvaW4oc2VsZi5naXRyb290LCBzZWxmLm1vZHVsZSkKLSsgICAgICAgIHN1YnByb2Nl c3MuY2hlY2tfY2FsbChbJ2dpdCcsICdjbG9uZScsICdmaWxlOi8vJXMnICUgbW9kdWxlZGlyXSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLCBzdGRvdXQ9c3Vi cHJvY2Vzcy5QSVBFLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJw cm9jZXNzLlBJUEUpCi0rCi0rICAgICAgICBzZWxmLmNsb25lZF9kaXIgPSBvcy5wYXRoLmpvaW4o c2VsZi5wYXRoLCBzZWxmLm1vZHVsZSkKLSsgICAgICAgIHNlbGYuY21kID0gcHlycGtnLkNvbW1h bmRzKHNlbGYuY2xvbmVkX2Rpciwgc2VsZi5sb29rYXNpZGUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmxvb2thc2lkZWhhc2gsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmxvb2thc2lkZV9jZ2ksIHNlbGYuZ2l0YmFzZXVybCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYW5vbmdpdHVybCwgc2VsZi5i cmFuY2hyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYua29qaXBy b2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJ1aWxkX2Ns aWVudCwgc2VsZi51c2VyLCBzZWxmLmRpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnRhcmdldCwgc2VsZi5xdWlldCkKLS0gICAgICAgIHNlbGYuY21kLmNsb25l X2NvbmZpZ19ycG1zID0gQ0xPTkVfQ09ORklHCi0tICAgICAgICBzZWxmLmNtZC5jbG9uZShzZWxm Lm1vZHVsZSwgYW5vbj1UcnVlKQotLSAgICAgICAgc2VsZi5jbWQucGF0aCA9IG9zLnBhdGguam9p bihzZWxmLnBhdGgsIHNlbGYubW9kdWxlKQotLSAgICAgICAgb3MuY2hkaXIob3MucGF0aC5qb2lu KHNlbGYucGF0aCwgc2VsZi5tb2R1bGUpKQotKyAgICAgICAgb3MuY2hkaXIoc2VsZi5jbG9uZWRf ZGlyKQotIAotICAgICAgICAgIyBUcmFjayBTUEVDIGFuZCBhLnBhdGNoIGluIGdpdAotICAgICAg ICAgc3BlY19maWxlID0gJ21vZHVsZS5zcGVjJwotQEAgLTEwMyw3ICsxMDYsNiBAQCBQYXRjaDM6 IGQucGF0aAotICAgICAgICAgICAgICAgICBmLndyaXRlKHBhdGNoX2ZpbGUpCi0gCi0gICAgICAg ICAjIFRyYWNrIGMucGF0Y2ggaW4gc291cmNlcwotLSAgICAgICAgZnJvbSBweXJwa2cuc291cmNl cyBpbXBvcnQgU291cmNlc0ZpbGUKLSAgICAgICAgIHNvdXJjZXNfZmlsZSA9IFNvdXJjZXNGaWxl KHNlbGYuY21kLnNvdXJjZXNfZmlsZW5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmNtZC5zb3VyY2VfZW50cnlfdHlwZSkKLSAgICAgICAgIGZpbGVfaGFzaCA9 IHNlbGYuY21kLmxvb2thc2lkZWNhY2hlLmhhc2hfZmlsZSgnYy5wYXRjaCcpCi1kaWZmIC0tZ2l0 IGEvdGVzdHMvdGVzdF9jbGkucHkgYi90ZXN0cy90ZXN0X2NsaS5weQotaW5kZXggZGYwNTNhYS4u ODY4YWQxZiAxMDA2NDQKLS0tLSBhL3Rlc3RzL3Rlc3RfY2xpLnB5Ci0rKysgYi90ZXN0cy90ZXN0 X2NsaS5weQotQEAgLTE4NDEsOSArMTg0MSwxMSBAQCBjbGFzcyBUZXN0TW9ja2J1aWxkKENsaVRl c3RDYXNlKToKLSAgICAgQHBhdGNoKCdweXJwa2cuQ29tbWFuZHMuX2NvbmZpZ19kaXJfYmFzaWMn KQotICAgICBAcGF0Y2goJ3B5cnBrZy5Db21tYW5kcy5fY29uZmlnX2Rpcl9vdGhlcicpCi0gICAg IEBwYXRjaCgnb3MucGF0aC5leGlzdHMnLCByZXR1cm5fdmFsdWU9RmFsc2UpCi0rICAgIEBwYXRj aCgncHlycGtnLnV0aWxzLnZhbGlkYXRlX3BhdGgnKQotICAgICBkZWYgdGVzdF91c2VfbW9ja19j b25maWdfZ290X2Zyb21fa29qaSgKLS0gICAgICAgICAgICBzZWxmLCBleGlzdHMsIGNvbmZpZ19k aXJfb3RoZXIsIGNvbmZpZ19kaXJfYmFzaWMpOgotKyAgICAgICAgICAgIHNlbGYsIHZhbGlkYXRl X3BhdGgsIGV4aXN0cywgY29uZmlnX2Rpcl9vdGhlciwgY29uZmlnX2Rpcl9iYXNpYyk6Ci0gICAg ICAgICBtb2NrX2xheW91dCA9IGxheW91dC5EaXN0R2l0TGF5b3V0KHJvb3RfZGlyPXNlbGYuY2xv bmVkX3JlcG9fcGF0aCkKLSsgICAgICAgIHZhbGlkYXRlX3BhdGgucmV0dXJuX3ZhbHVlID0gc2Vs Zi5jbG9uZWRfcmVwb19wYXRoCi0gICAgICAgICB3aXRoIHBhdGNoKCdweXJwa2cubGF5b3V0LmJ1 aWxkJywgcmV0dXJuX3ZhbHVlPW1vY2tfbGF5b3V0KToKLSAgICAgICAgICAgICBjb25maWdfZGly X2Jhc2ljLnJldHVybl92YWx1ZSA9ICcvcGF0aC90by9jb25maWctZGlyJwotIAotQEAgLTE4NTks OSArMTg2MSwxMSBAQCBjbGFzcyBUZXN0TW9ja2J1aWxkKENsaVRlc3RDYXNlKToKLSAKLSAgICAg QHBhdGNoKCdweXJwa2cuQ29tbWFuZHMuX2NvbmZpZ19kaXJfYmFzaWMnKQotICAgICBAcGF0Y2go J29zLnBhdGguZXhpc3RzJywgcmV0dXJuX3ZhbHVlPUZhbHNlKQotKyAgICBAcGF0Y2goJ3B5cnBr Zy51dGlscy52YWxpZGF0ZV9wYXRoJykKLSAgICAgZGVmIHRlc3RfZmFpbF90b19zdG9yZV9tb2Nr X2NvbmZpZ19pbl9jcmVhdGVkX2NvbmZpZ19kaXIoCi0tICAgICAgICAgICAgc2VsZiwgZXhpc3Rz LCBjb25maWdfZGlyX2Jhc2ljKToKLSsgICAgICAgICAgICBzZWxmLCB2YWxpZGF0ZV9wYXRoLCBl eGlzdHMsIGNvbmZpZ19kaXJfYmFzaWMpOgotICAgICAgICAgY29uZmlnX2Rpcl9iYXNpYy5zaWRl X2VmZmVjdCA9IHJwa2dFcnJvcgotKyAgICAgICAgdmFsaWRhdGVfcGF0aC5yZXR1cm5fdmFsdWUg PSBzZWxmLmNsb25lZF9yZXBvX3BhdGgKLSAKLSAgICAgICAgIGNsaV9jbWQgPSBbJ3Jwa2cnLCAn LS1wYXRoJywgc2VsZi5jbG9uZWRfcmVwb19wYXRoLAotICAgICAgICAgICAgICAgICAgICAnLS1y ZWxlYXNlJywgJ3JoZWwtNycsICdtb2NrYnVpbGQnXQotQEAgLTE4NzAsMTAgKzE4NzQsMTIgQEAg Y2xhc3MgVGVzdE1vY2tidWlsZChDbGlUZXN0Q2FzZSk6Ci0gICAgIEBwYXRjaCgncHlycGtnLkNv bW1hbmRzLl9jb25maWdfZGlyX2Jhc2ljJykKLSAgICAgQHBhdGNoKCdweXJwa2cuQ29tbWFuZHMu X2NvbmZpZ19kaXJfb3RoZXInKQotICAgICBAcGF0Y2goJ29zLnBhdGguZXhpc3RzJywgcmV0dXJu X3ZhbHVlPUZhbHNlKQotKyAgICBAcGF0Y2goJ3B5cnBrZy51dGlscy52YWxpZGF0ZV9wYXRoJykK LSAgICAgZGVmIHRlc3RfZmFpbF90b19wb3B1bGF0ZV9tb2NrX2NvbmZpZygKLS0gICAgICAgICAg ICBzZWxmLCBleGlzdHMsIGNvbmZpZ19kaXJfb3RoZXIsIGNvbmZpZ19kaXJfYmFzaWMpOgotKyAg ICAgICAgICAgIHNlbGYsIHZhbGlkYXRlX3BhdGgsIGV4aXN0cywgY29uZmlnX2Rpcl9vdGhlciwg Y29uZmlnX2Rpcl9iYXNpYyk6Ci0gICAgICAgICBjb25maWdfZGlyX2Jhc2ljLnJldHVybl92YWx1 ZSA9ICcvcGF0aC90by9jb25maWctZGlyJwotICAgICAgICAgY29uZmlnX2Rpcl9vdGhlci5zaWRl X2VmZmVjdCA9IHJwa2dFcnJvcgotKyAgICAgICAgdmFsaWRhdGVfcGF0aC5yZXR1cm5fdmFsdWUg PSBzZWxmLmNsb25lZF9yZXBvX3BhdGgKLSAKLSAgICAgICAgIGNsaV9jbWQgPSBbJ3Jwa2cnLCAn LS1wYXRoJywgc2VsZi5jbG9uZWRfcmVwb19wYXRoLAotICAgICAgICAgICAgICAgICAgICAnLS1y ZWxlYXNlJywgJ3JoZWwtNycsICdtb2NrYnVpbGQnXQotLS0gCi0yLjM5LjIKLQoKZGlmZiAtLWdp dCBhLzAwMDgtVXBkYXRlLXRvLXNwZWMtZmlsZS1wcmVzZW5jZS1jaGVja2luZy5wYXRjaCBiLzAw MDgtVXBkYXRlLXRvLXNwZWMtZmlsZS1wcmVzZW5jZS1jaGVja2luZy5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNzIzNDE1Zi4uMDAwMDAwMAotLS0gYS8wMDA4LVVwZGF0ZS10 by1zcGVjLWZpbGUtcHJlc2VuY2UtY2hlY2tpbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0 MyArMCwwIEBACi1Gcm9tIDc5MWZkMDNiNGRlMTMyNDUwODU4M2FiNTNjODljYzY3NDU5ZGIzNTUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBPbmRyZWogTm9zZWsgPG9ub3Nla0ByZWRo YXQuY29tPgotRGF0ZTogVHVlLCAyMSBNYXIgMjAyMyAxMzo0NDozOCArMDEwMAotU3ViamVjdDog W1BBVENIIDA4LzEyXSBVcGRhdGUgdG8gc3BlYyBmaWxlIHByZXNlbmNlIGNoZWNraW5nCi0KLVVz aW5nIGEgZGlmZmVyZW50IGFwcHJvYWNoIHRvIGNoZWNraW5nIHRoZSBsYXlvdXQuIE9sZGVyIHdh eSBwcmV2ZW50ZWQKLWByZXRpcmVgIGZ1bmN0aW9uIHdvcmtpbmcgY29ycmVjdGx5LiBMYXlvdXRz IGFyZSBkZXRlY3RlZCBhdCB0aGUKLWJlZ2lubmluZyBvZiB0aGUgcnVuIGFuZCB0aGUgcmVzdWx0 IHN0YXlzIHRoZSBzYW1lLCB1bmxpa2UgdGhlIGRpcmVjdAotY2hlY2tpbmcgZmlsZXMgbGlrZSBk ZWFkLnBhY2thZ2UgaW4gZnVuY3Rpb24gYGlzX3JldGlyZWRgLgotCi1GaXhlczogIzY2MwotSklS QTogUkhFTENNUC0xMTM4NwotCi1TaWduZWQtb2ZmLWJ5OiBPbmRyZWogTm9zZWsgPG9ub3Nla0By ZWRoYXQuY29tPgotLS0tCi0gcHlycGtnL19faW5pdF9fLnB5IHwgNCArKy0tCi0gMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3B5 cnBrZy9fX2luaXRfXy5weSBiL3B5cnBrZy9fX2luaXRfXy5weQotaW5kZXggMDI4ZDE5NS4uZThm NDg4NiAxMDA2NDQKLS0tLSBhL3B5cnBrZy9fX2luaXRfXy5weQotKysrIGIvcHlycGtnL19faW5p dF9fLnB5Ci1AQCAtOTI1LDcgKzkyNSw3IEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6Ci0gCi0g ICAgICAgICBpZiBzZWxmLmxheW91dCBpcyBOb25lIG9yIGlzaW5zdGFuY2Uoc2VsZi5sYXlvdXQs IGxheW91dC5JbmNvbXBsZXRlTGF5b3V0KToKLSAgICAgICAgICAgICByYWlzZSBycGtnRXJyb3Io J1NwZWMgZmlsZSBpcyBub3QgYXZhaWxhYmxlJykKLS0gICAgICAgIGlmIHNlbGYuaXNfcmV0aXJl ZCgpOgotKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmxheW91dCwgbGF5b3V0LlJldGlyZWRM YXlvdXQpOgotICAgICAgICAgICAgIHJhaXNlIHJwa2dFcnJvcignVGhpcyBwYWNrYWdlIG9yIG1v ZHVsZSBpcyByZXRpcmVkLiBUaGUgYWN0aW9uIGhhcyBzdG9wcGVkLicpCi0gCi0gICAgICAgICAj IEdldCBhIGxpc3Qgb2YgIi5zcGVjIiBmaWxlcyBpbiB0aGUgcGF0aCB3ZSdyZSBsb29raW5nIGF0 Ci1AQCAtMTE2Nyw3ICsxMTY3LDcgQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToKLSAgICAgZGVm IHNvdXJjZXNfZmlsZW5hbWUoc2VsZik6Ci0gICAgICAgICBpZiBzZWxmLmxheW91dCBpcyBOb25l IG9yIGlzaW5zdGFuY2Uoc2VsZi5sYXlvdXQsIGxheW91dC5JbmNvbXBsZXRlTGF5b3V0KToKLSAg ICAgICAgICAgICByYWlzZSBycGtnRXJyb3IoJ1NwZWMgZmlsZSBpcyBub3QgYXZhaWxhYmxlJykK LS0gICAgICAgIGlmIHNlbGYuaXNfcmV0aXJlZCgpOgotKyAgICAgICAgaWYgaXNpbnN0YW5jZShz ZWxmLmxheW91dCwgbGF5b3V0LlJldGlyZWRMYXlvdXQpOgotICAgICAgICAgICAgIHJhaXNlIHJw a2dFcnJvcignVGhpcyBwYWNrYWdlIG9yIG1vZHVsZSBpcyByZXRpcmVkLiBUaGUgYWN0aW9uIGhh cyBzdG9wcGVkLicpCi0gICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKAotICAgICAgICAgICAg IHNlbGYucGF0aCwgc2VsZi5sYXlvdXQuc291cmNlc19maWxlX3RlbXBsYXRlLnJlcGxhY2UoInsw LnJlcG9fbmFtZX0iLCBzZWxmLnJlcG9fbmFtZSkpCi0tLSAKLTIuMzkuMgotCgpkaWZmIC0tZ2l0 IGEvMDAwOS1BZGQtbW9yZS1pbmZvcm1hdGlvbi1hYm91dC1wcmUtcHVzaC1ob29rLnBhdGNoIGIv MDAwOS1BZGQtbW9yZS1pbmZvcm1hdGlvbi1hYm91dC1wcmUtcHVzaC1ob29rLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MGJhZDI3Li4wMDAwMDAwCi0tLSBhLzAwMDktQWRk LW1vcmUtaW5mb3JtYXRpb24tYWJvdXQtcHJlLXB1c2gtaG9vay5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDQ0ICswLDAgQEAKLUZyb20gMDM5M2RjMzliZjQ1MGNmMjBkZjlkYjYzYmFjMTM1YzA3 OGY2NGExNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9MdWJvbT1D Mz1BRHI9MjBTZWRsPUMzPUExPUM1PTk5Pz0gPGxzZWRsYXJAcmVkaGF0LmNvbT4KLURhdGU6IFR1 ZSwgMjggTWFyIDIwMjMgMDg6NTM6MzAgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwOS8xMl0gQWRk IG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgcHJlLXB1c2ggaG9vawotTUlNRS1WZXJzaW9uOiAxLjAK LUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAotCi1JdCdzIG5vdCBvYnZpb3VzIHRvIG1hbnkgdXNlcnMgd2hlcmUg dGhlIGNoZWNrIGlzIGNvbWluZyBmcm9tLCBhbmQgdGhleQotaGF2ZSB0aGUgcG93ZXIgdG8gZWRp dCB0aGUgc2NyaXB0IG9yIGRlbGV0ZSBpdCBjb21wbGV0ZWx5LiBMZXQncyB0cnkgdG8KLWltcHJv dmUgdGhhdCBhIGJpdC4KLQotU2lnbmVkLW9mZi1ieTogTHVib23DrXIgU2VkbMOhxZkgPGxzZWRs YXJAcmVkaGF0LmNvbT4KLS0tLQotIHB5cnBrZy9fX2luaXRfXy5weSB8IDYgKysrKystCi0gMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0 IGEvcHlycGtnL19faW5pdF9fLnB5IGIvcHlycGtnL19faW5pdF9fLnB5Ci1pbmRleCBlOGY0ODg2 Li43YTNjOWM2IDEwMDY0NAotLS0tIGEvcHlycGtnL19faW5pdF9fLnB5Ci0rKysgYi9weXJwa2cv X19pbml0X18ucHkKLUBAIC0xODA2LDYgKzE4MDYsMTAgQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0 KToKLSAgICAgICAgIGhvb2tfY29udGVudCA9IHRleHR3cmFwLmRlZGVudCgiIiIKLSAgICAgICAg ICAgICAjIS9iaW4vYmFzaAotIAotKyAgICAgICAgICAgICMgVGhpcyBmaWxlIHdhcyBnZW5lcmF0 ZWQgYnkgezB9IHdoZW4gY2xvbmluZyB0aGUgcmVwb3NpdG9yeS4KLSsgICAgICAgICAgICAjIFlv dSBjYW4gZWRpdCBpdCB0byB5b3VyIGxpa2luZyBvciBkZWxldGUgY29tcGxldGVseS4gSXQgd2ls bCBub3QKLSsgICAgICAgICAgICAjIGJlIHJlY3JlYXRlZC4KLSsKLSAgICAgICAgICAgICBfcmVt b3RlPSIkMSIKLSAgICAgICAgICAgICBfdXJsPSIkMiIKLSAKLUBAIC00NDI5LDcgKzQ0MzMsNyBA QCBjbGFzcyBDb21tYW5kcyhvYmplY3QpOgotICAgICAgICAgcmV0dXJuIHNlbGYuX3JlcG9fbmFt ZSwgdmVyc2lvbiwgcmVsZWFzZQotIAotICAgICBkZWYgcHJlX3B1c2hfY2hlY2soc2VsZiwgcmVm KToKLS0gICAgICAgIHNob3dfaGludCA9ICgnSGludDogdGhpcyBjaGVjayAocHJlLXB1c2ggaG9v ayBzY3JpcHQpIGNhbiBiZSBieXBhc3NlZCBieSBhZGRpbmcgJwotKyAgICAgICAgc2hvd19oaW50 ID0gKCdIaW50OiB0aGlzIGNoZWNrICguZ2l0L2hvb2tzL3ByZS1wdXNoIHNjcmlwdCkgY2FuIGJl IGJ5cGFzc2VkIGJ5IGFkZGluZyAnCi0gICAgICAgICAgICAgICAgICAgICAgJ3RoZSBhcmd1bWVu dCBcJy0tbm8tdmVyaWZ5XCcgYXJndW1lbnQgdG8gdGhlIHB1c2ggY29tbWFuZC4nKQotICAgICAg ICAgdHJ5OgotICAgICAgICAgICAgIGNvbW1pdCA9IHNlbGYucmVwby5jb21taXQocmVmKQotLS0g Ci0yLjM5LjIKLQoKZGlmZiAtLWdpdCBhLzAwMTAtcHJlLXB1c2gtY2hlY2staGF2ZS10by11c2Ut c3BlY3Rvb2wtd2l0aC1kZWZpbmUucGF0Y2ggYi8wMDEwLXByZS1wdXNoLWNoZWNrLWhhdmUtdG8t dXNlLXNwZWN0b29sLXdpdGgtZGVmaW5lLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBiZmU3MDk0Li4wMDAwMDAwCi0tLSBhLzAwMTAtcHJlLXB1c2gtY2hlY2staGF2ZS10by11 c2Utc3BlY3Rvb2wtd2l0aC1kZWZpbmUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAs MCBAQAotRnJvbSBkNWJlNTFlZWM5OTEwOGMzODA5NTUxYjYxNTA2NGQwYzVjYmU2MjhhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogT25kcmVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNv bT4KLURhdGU6IFR1ZSwgMjggTWFyIDIwMjMgMTk6NTg6MDYgKzAyMDAKLVN1YmplY3Q6IFtQQVRD SCAxMC8xMl0gYHByZS1wdXNoLWNoZWNrYCBoYXZlIHRvIHVzZSBzcGVjdG9vbCB3aXRoIC0tZGVm aW5lCi0KLVRvIGdldCBhbGwgZGVmaW5lZCBzb3VyY2UgZmlsZXMgYW5kIHBhdGNoZXMgZnJvbSB0 aGUgc3BlY2ZpbGUsCi10aGUgJ3NwZWN0b29sJyB1dGlsaXR5IG5lZWRzICctLWRlZmluZScgYXJn dW1lbnQocykgdG8gc2V0IHNwZWNpZmljCi1wYXRocyBmb3IgdGhlIHJlcG9zaXRvcnkuCi0KLUpJ UkE6IFJIRUxDTVAtMTE0NjYKLUZpeGVzOiAjNjcyCi0KLVNpZ25lZC1vZmYtYnk6IE9uZHJlaiBO b3NlayA8b25vc2VrQHJlZGhhdC5jb20+Ci0tLS0KLSBweXJwa2cvX19pbml0X18ucHkgICAgICAg ICAgICAgICAgICAgIHwgNTcgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCi0gdGVzdHMvY29t bWFuZHMvdGVzdF9wcmVfcHVzaF9jaGVjay5weSB8ICAzICstCi0gMiBmaWxlcyBjaGFuZ2VkLCAz MyBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3B5cnBrZy9f X2luaXRfXy5weSBiL3B5cnBrZy9fX2luaXRfXy5weQotaW5kZXggN2EzYzljNi4uNTg0YzE0MSAx MDA2NDQKLS0tLSBhL3B5cnBrZy9fX2luaXRfXy5weQotKysrIGIvcHlycGtnL19faW5pdF9fLnB5 Ci1AQCAtNDQ0MiwzMCArNDQ0Miw0MSBAQCBjbGFzcyBDb21tYW5kcyhvYmplY3QpOgotICAgICAg ICAgICAgIHN5cy5leGl0KDEpCi0gCi0gICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgY2xvbmVf ZGlyID0gdGVtcGZpbGUubWtkdGVtcChwcmVmaXg9InByZV9wdXNoX2hvb2tfIikKLSsgICAgICAg ICAgICBmb3IgY21kIGluIFsKLSsgICAgICAgICAgICAgICAgKCdnaXQnLCAnY2xvbmUnLCBzZWxm LnBhdGgsIGNsb25lX2RpciksCi0rICAgICAgICAgICAgICAgICgnZ2l0JywgJ2NoZWNrb3V0Jywg cmVmKSwKLSsgICAgICAgICAgICBdOgotKyAgICAgICAgICAgICAgICByZXQsIF8sIF8gPSBzZWxm Ll9ydW5fY29tbWFuZChjbWQsIGN3ZD1jbG9uZV9kaXIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgc3VwcHJlc3MgdW53YW50ZWQgcHJpbnRpbmcgb2Yg Y29tbWFuZCBsaW5lIG1lc3NhZ2VzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybl9zdGRvdXQ9VHJ1ZSwgcmV0dXJuX3N0ZGVycj1UcnVlKQotKyAg ICAgICAgICAgICAgICBpZiByZXQgIT0gMDoKLSsgICAgICAgICAgICAgICAgICAgIHNlbGYubG9n LmVycm9yKCdDb21tYW5kIFwnezB9XCcgZmFpbGVkLiBQdXNoIG9wZXJhdGlvbiAnCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2FzIGNhbmNlbGxlZC4nLmZvcm1hdCgnICcu am9pbihjbWQpKSkKLSsgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nLndhcm5pbmcoc2hvd19o aW50KQotKyAgICAgICAgICAgICAgICAgICAgc3lzLmV4aXQoMikKLSsKLSsgICAgICAgICAgICAj IGdldCBhbGwgc291cmNlIGZpbGVzIGZyb20gdGhlIHNwZWNmaWxlIChpbmNsdWRpbmcgcGF0Y2hl cykKLSAgICAgICAgICAgICAjIEFzc3VtZSwgdGhhdCBzcGVjZmlsZSBuYW1lcyBhcmUgc2FtZSBp biB0aGUgYWN0aXZlIGJyYW5jaAotICAgICAgICAgICAgICMgYW5kIGluIHRoZSBwdXNoZWQgYnJh bmNoIChnaXQgY2hlY2tvdXQgZjM3ICYmIGdpdCBwdXNoIG9yaWdpbiByYXdoaWRlKQotICAgICAg ICAgICAgICMgaW4gdGhpcyBjYXNlICdmMzcnIGlzIGFjdGl2ZSBicmFuY2ggYW5kICdyYXdoaWRl JyBpcyBwdXNoZWQgYnJhbmNoLgotICAgICAgICAgICAgIHNwZWNmaWxlX3BhdGhfYWJzb2x1dGUg PSBvcy5wYXRoLmpvaW4oc2VsZi5sYXlvdXQuc3BlY2Rpciwgc2VsZi5zcGVjKQotICAgICAgICAg ICAgICMgY29udmVydCB0byByZWxhdGl2ZSBwYXRoCi0gICAgICAgICAgICAgc3BlY2ZpbGVfcGF0 aCA9IG9zLnBhdGgucmVscGF0aChzcGVjZmlsZV9wYXRoX2Fic29sdXRlLCBzdGFydD1zZWxmLnBh dGgpCi0tICAgICAgICAgICAgc3BlY19jb250ZW50ID0gc2VsZi5yZXBvLmdpdC5jYXRfZmlsZSgi LXAiLCAiezB9OnsxfSIuZm9ybWF0KHJlZiwgc3BlY2ZpbGVfcGF0aCkpCi0tICAgICAgICBleGNl cHQgRXhjZXB0aW9uOgotLSAgICAgICAgICAgICMgSXQgbWlnaHQgYmUgdGhlIGNhc2Ugb2YgYW4g ZW1wdHkgY29tbWl0Ci0tICAgICAgICAgICAgc2VsZi5sb2cud2FybmluZygnU3BlY2ZpbGUgZG9l c25cJ3QgZXhpc3QuIFB1c2ggb3BlcmF0aW9uIGNvbnRpbnVlcy4nKQotLSAgICAgICAgICAgIHJl dHVybgotLQotLSAgICAgICAgIyBsb2FkIHNwZWNmaWxlIGNvbnRlbnQgZnJvbSBwdXNoZWQgYnJh bmNoIGFuZCBzYXZlIGl0IGludG8gYSB0ZW1wb3JhcnkgZmlsZQotLSAgICAgICAgd2l0aCB0ZW1w ZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUobW9kZT0idysiKSBhcyB0ZW1wb3Jhcnlfc3BlYzoKLS0g ICAgICAgICAgICB0ZW1wb3Jhcnlfc3BlYy53cml0ZShzcGVjX2NvbnRlbnQpCi0tICAgICAgICAg ICAgdGVtcG9yYXJ5X3NwZWMuZmx1c2goKQotLSAgICAgICAgICAgICMgZ2V0IGFsbCBzb3VyY2Ug ZmlsZXMgZnJvbSB0aGUgc3BlY2ZpbGUgKGluY2x1ZGluZyBwYXRjaGVzKQotLSAgICAgICAgICAg IGNtZCA9ICgnc3BlY3Rvb2wnLCAnLWwnLCB0ZW1wb3Jhcnlfc3BlYy5uYW1lKQotLSAgICAgICAg ICAgIHJldCwgc3Rkb3V0LCBfID0gc2VsZi5fcnVuX2NvbW1hbmQoY21kLCByZXR1cm5fdGV4dD1U cnVlLCByZXR1cm5fc3Rkb3V0PVRydWUpCi0rICAgICAgICAgICAgY21kID0gWydzcGVjdG9vbCcs ICctbCcsIG9zLnBhdGguam9pbihjbG9uZV9kaXIsIHNwZWNmaWxlX3BhdGgpXQotKyAgICAgICAg ICAgICMgZXh0cmFjdCBqdXN0ICctLWRlZmluZScgYXJndW1lbnRzIGZyb20gcnBtZGVmaW5lcwot KyAgICAgICAgICAgIGZvciBvcHQsIHZhbCBpbiB6aXAoc2VsZi5ycG1kZWZpbmVzWzA6OjJdLCBz ZWxmLnJwbWRlZmluZXNbMTo6Ml0pOgotKyAgICAgICAgICAgICAgICBpZiBvcHQgPT0gJy0tZGVm aW5lJzoKLSsgICAgICAgICAgICAgICAgICAgIGNtZC5leHRlbmQoKG9wdCwgdmFsKSkKLSsgICAg ICAgICAgICByZXQsIHN0ZG91dCwgXyA9IHNlbGYuX3J1bl9jb21tYW5kKGNtZCwgY3dkPWNsb25l X2RpciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybl90ZXh0PVRydWUsIHJldHVybl9zdGRvdXQ9VHJ1ZSkKLSAgICAgICAgICAgICBpZiByZXQg IT0gMDoKLSAgICAgICAgICAgICAgICAgc2VsZi5sb2cuZXJyb3IoJ0NvbW1hbmQgXCd7MH1cJyBm YWlsZWQuIFB1c2ggb3BlcmF0aW9uICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3dhcyBjYW5jZWxsZWQuJy5mb3JtYXQoJyAnLmpvaW4oY21kKSkpCi0gICAgICAgICAgICAgICAg IHNlbGYubG9nLndhcm5pbmcoc2hvd19oaW50KQotLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgy KQotKyAgICAgICAgICAgICAgICBzeXMuZXhpdCgzKQotKyAgICAgICAgZmluYWxseToKLSsgICAg ICAgICAgICBzZWxmLl9jbGVhbnVwX3RtcF9kaXIoY2xvbmVfZGlyKQotIAotICAgICAgICAgc291 cmNlX2ZpbGVzID0gW10KLSAgICAgICAgICMgZXh0cmFjdCBzb3VyY2UgZmlsZXMgZnJvbSB0aGUg c3BlY3Rvb2wncyBvdXRwdXQKLUBAIC00NDkwLDIyICs0NTAxLDE2IEBAIGNsYXNzIENvbW1hbmRz KG9iamVjdCk6Ci0gICAgICAgICAgICAgc291cmNlc19maWxlX3BhdGhfYWJzb2x1dGUgPSBzZWxm LnNvdXJjZXNfZmlsZW5hbWUKLSAgICAgICAgICAgICAjIGNvbnZlcnQgdG8gcmVsYXRpdmUgcGF0 aAotICAgICAgICAgICAgIHNvdXJjZXNfZmlsZV9wYXRoID0gb3MucGF0aC5yZWxwYXRoKHNvdXJj ZXNfZmlsZV9wYXRoX2Fic29sdXRlLCBzdGFydD1zZWxmLnBhdGgpCi0tICAgICAgICAgICAgc291 cmNlc19maWxlX2NvbnRlbnQgPSBzZWxmLnJlcG8uZ2l0LmNhdF9maWxlKAotLSAgICAgICAgICAg ICAgICAnLXAnLCAnezB9OnsxfScuZm9ybWF0KHJlZiwgc291cmNlc19maWxlX3BhdGgpKQotKwot KyAgICAgICAgICAgICMgcGFyc2UgJ3NvdXJjZXMnIGZpbGVzIGNvbnRlbnQKLSsgICAgICAgICAg ICBzb3VyY2VzZiA9IFNvdXJjZXNGaWxlKHNvdXJjZXNfZmlsZV9wYXRoLCBzZWxmLnNvdXJjZV9l bnRyeV90eXBlKQotKyAgICAgICAgICAgIHNvdXJjZXNmX2VudHJpZXMgPSBzZXQoaXRlbS5maWxl IGZvciBpdGVtIGluIHNvdXJjZXNmLmVudHJpZXMpCi0gICAgICAgICBleGNlcHQgRXhjZXB0aW9u OgotICAgICAgICAgICAgIHNlbGYubG9nLndhcm5pbmcoJ1wnc291cmNlc1wnIGZpbGUgZG9lc25c J3QgZXhpc3QuIFB1c2ggb3BlcmF0aW9uIGNvbnRpbnVlcy4nKQotICAgICAgICAgICAgICMgTk9U RTogY2hlY2sgZG9lc24ndCBmYWlsIHdoZW4gJ3NvdXJjZXMnIGZpbGUgZG9lc24ndCBleGlzdC4g SnVzdCBza2lwcyB0aGUgcmVzdC4KLSAgICAgICAgICAgICAjIGl0IG1pZ2h0IGJlIHRoZSBjYXNl IG9mIHRoZSBwdXNoIHdpdGhvdXQgJ3NvdXJjZXMnID0gcmV0aXJpbmcgdGhlIHJlcG9zaXRvcnkK LSAgICAgICAgICAgICByZXR1cm4KLSAKLS0gICAgICAgICMgbG9hZCAnc291cmNlcycgZmlsZSBj b250ZW50IGZyb20gcHVzaGVkIGJyYW5jaCBhbmQgc2F2ZSBpdCBpbnRvIGEgdGVtcG9yYXJ5IGZp bGUKLS0gICAgICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKG1vZGU9IncrIikg YXMgdGVtcG9yYXJ5X3NvdXJjZXNfZmlsZToKLS0gICAgICAgICAgICB0ZW1wb3Jhcnlfc291cmNl c19maWxlLndyaXRlKHNvdXJjZXNfZmlsZV9jb250ZW50KQotLSAgICAgICAgICAgIHRlbXBvcmFy eV9zb3VyY2VzX2ZpbGUuZmx1c2goKQotLSAgICAgICAgICAgICMgcGFyc2UgJ3NvdXJjZXMnIGZp bGVzIGNvbnRlbnQKLS0gICAgICAgICAgICBzb3VyY2VzZiA9IFNvdXJjZXNGaWxlKHRlbXBvcmFy eV9zb3VyY2VzX2ZpbGUubmFtZSwgc2VsZi5zb3VyY2VfZW50cnlfdHlwZSkKLS0gICAgICAgIHNv dXJjZXNmX2VudHJpZXMgPSBzZXQoaXRlbS5maWxlIGZvciBpdGVtIGluIHNvdXJjZXNmLmVudHJp ZXMpCi0tCi0gICAgICAgICAjIGxpc3Qgb2YgYWxsIGZpbGVzICh0aGVpciByZWxhdGl2ZSBwYXRo cykgaW4gdGhlIGNvbW1pdAotICAgICAgICAgcmVwb19lbnRyaWVzID0gc2V0KGl0ZW0ucGF0aCBm b3IgaXRlbSBpbiBjb21taXQudHJlZS50cmF2ZXJzZSgpIGlmIGl0ZW0udHlwZSAhPSAidHJlZSIp Ci0gCi1AQCAtNDUxOCw3ICs0NTIzLDcgQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vciB0cmFja2VkIGluIGdpdC4gJwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnUHVzaCBvcGVyYXRpb24gd2FzIGNhbmNlbGxlZCcu Zm9ybWF0KHNvdXJjZV9maWxlKSkKLSAgICAgICAgICAgICAgICAgc2VsZi5sb2cud2FybmluZyhz aG93X2hpbnQpCi0tICAgICAgICAgICAgICAgIHN5cy5leGl0KDMpCi0rICAgICAgICAgICAgICAg IHN5cy5leGl0KDQpCi0gCi0gICAgICAgICAjIHZlcmlmeSBhbGwgZmlsZSBlbnRyaWVzIGluICdz b3VyY2VzJyB3ZXJlIHVwbG9hZGVkIHRvIHRoZSBsb29rYXNpZGUgY2FjaGUKLSAgICAgICAgIGZv ciBlbnRyeSBpbiBzb3VyY2VzZi5lbnRyaWVzOgotQEAgLTQ1MzIsNiArNDUzNyw2IEBAIGNsYXNz IENvbW1hbmRzKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgIHNlbGYubG9nLmVycm9yKCdTb3Vy Y2UgZmlsZSAob3IgdGFyYmFsbCkgXCd7fVwnIHdhc25cJ3QgdXBsb2FkZWQgdG8gdGhlIGxvb2th c2lkZSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjYWNoZS4gUHVzaCBvcGVy YXRpb24gd2FzIGNhbmNlbGxlZC4nLmZvcm1hdChmaWxlbmFtZSkpCi0gICAgICAgICAgICAgICAg IHNlbGYubG9nLndhcm5pbmcoc2hvd19oaW50KQotLSAgICAgICAgICAgICAgICBzeXMuZXhpdCg0 KQotKyAgICAgICAgICAgICAgICBzeXMuZXhpdCg1KQotIAotICAgICAgICAgcmV0dXJuIDAgICMg VGhlIHB1c2ggb3BlcmF0aW9uIGNvbnRpbnVlcwotZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbW1hbmRz L3Rlc3RfcHJlX3B1c2hfY2hlY2sucHkgYi90ZXN0cy9jb21tYW5kcy90ZXN0X3ByZV9wdXNoX2No ZWNrLnB5Ci1pbmRleCA1ZTMxNGI5Li5lZTE1MWMxIDEwMDY0NAotLS0tIGEvdGVzdHMvY29tbWFu ZHMvdGVzdF9wcmVfcHVzaF9jaGVjay5weQotKysrIGIvdGVzdHMvY29tbWFuZHMvdGVzdF9wcmVf cHVzaF9jaGVjay5weQotQEAgLTM3LDYgKzM3LDcgQEAgY2xhc3MgVGVzdFByZVB1c2hDaGVjayhD b21tYW5kVGVzdENhc2UpOgotICAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICBzdXBlcihU ZXN0UHJlUHVzaENoZWNrLCBzZWxmKS5zZXRVcCgpCi0gCi0rICAgICAgICBzZWxmLmRpc3QgPSAi cmhlbC04IgotICAgICAgICAgc2VsZi5tYWtlX25ld19naXQoc2VsZi5tb2R1bGUpCi0gCi0gICAg ICAgICBtb2R1bGVkaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5naXRyb290LCBzZWxmLm1vZHVsZSkK LUBAIC04Nyw3ICs4OCw3IEBAIFBhdGNoMzogZC5wYXRjaAotICAgICAgICAgd2l0aCBzZWxmLmFz c2VydFJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGM6Ci0gICAgICAgICAgICAgc2VsZi5jbWQucHJl X3B1c2hfY2hlY2soIkhFQUQiKQotIAotLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleGMuZXhj ZXB0aW9uLmNvZGUsIDMpCi0rICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4Yy5leGNlcHRpb24u Y29kZSwgNCkKLSAgICAgICAgIGxvZ19lcnJvci5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgiU291 cmNlIGZpbGUgJ2IucGF0Y2gnIHdhcyBuZWl0aGVyIGxpc3RlZCBpbiB0aGUgIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICInc291cmNlcycgZmlsZSBub3IgdHJh Y2tlZCBpbiBnaXQuIFB1c2ggb3BlcmF0aW9uICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAid2FzIGNhbmNlbGxlZCIpCi0tLSAKLTIuMzkuMgotCgpkaWZmIC0t Z2l0IGEvMDAxMS1BLUhFQUQtcXVlcnktaW50by1hLWxvb2thc2lkZS1jYWNoZS5wYXRjaCBiLzAw MTEtQS1IRUFELXF1ZXJ5LWludG8tYS1sb29rYXNpZGUtY2FjaGUucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGEzMjgxYjIuLjAwMDAwMDAKLS0tIGEvMDAxMS1BLUhFQUQtcXVl cnktaW50by1hLWxvb2thc2lkZS1jYWNoZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICsw LDAgQEAKLUZyb20gNzdjZDYwOGU1OTZhZjk0ODExYzIyYTE2ZmY1OGEyNjVkOWM3MzgxZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE9uZHJlaiBOb3NlayA8b25vc2VrQHJlZGhhdC5j b20+Ci1EYXRlOiBGcmksIDMxIE1hciAyMDIzIDE0OjA5OjA5ICswMjAwCi1TdWJqZWN0OiBbUEFU Q0ggMTEvMTJdIEEgSEVBRCBxdWVyeSBpbnRvIGEgbG9va2FzaWRlIGNhY2hlCi0KLUEgcXVlcnkg YWJvdXQgd2hldGhlciBzb21lIGZpbGUgaXMgcHJlc2VudCBpbiB0aGUgbG9va2FzaWRlIGNhY2hl IHdhcwotdW5kZXIgYXV0aGVudGljYXRpb24gYW5kIGl0IHByZXZlbnRlZCB1c2luZyBjb21tYW5k IGBwcmUtcHVzaC1jaGVja2AKLWZvciB0aG9zZSB3aXRob3V0IHRoZSAncGFja2FnZXInIHBlcm1p c3Npb24uCi1BZGRlZCBhbm90aGVyIG1ldGhvZCAoYmFzZWQgb24gSFRUUCBIRUFEKSwgdGhhdCBh bGxvd3MgdGhlIHNhbWUgY2hlY2sKLXdpdGhvdXQgYXV0aGVudGljYXRpb24uCi0KLUpJUkE6IFJI RUxDTVAtMTE0ODUKLUZpeGVzOiBodHRwczovL3BhZ3VyZS5pby9mZWRwa2cvaXNzdWUvNTEzCi0K LVNpZ25lZC1vZmYtYnk6IE9uZHJlaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+Ci0tLS0KLSBw eXJwa2cvX19pbml0X18ucHkgIHwgIDIgKy0KLSBweXJwa2cvbG9va2FzaWRlLnB5IHwgMzYgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAzNSBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHlycGtnL19faW5p dF9fLnB5IGIvcHlycGtnL19faW5pdF9fLnB5Ci1pbmRleCA1ODRjMTQxLi4xNTIwM2I3IDEwMDY0 NAotLS0tIGEvcHlycGtnL19faW5pdF9fLnB5Ci0rKysgYi9weXJwa2cvX19pbml0X18ucHkKLUBA IC00NTI5LDcgKzQ1MjksNyBAQCBjbGFzcyBDb21tYW5kcyhvYmplY3QpOgotICAgICAgICAgZm9y IGVudHJ5IGluIHNvdXJjZXNmLmVudHJpZXM6Ci0gICAgICAgICAgICAgZmlsZW5hbWUgPSBlbnRy eS5maWxlCi0gICAgICAgICAgICAgaGFzaCA9IGVudHJ5Lmhhc2gKLS0gICAgICAgICAgICBmaWxl X2V4aXN0c19pbl9sb29rYXNpZGUgPSBzZWxmLmxvb2thc2lkZWNhY2hlLnJlbW90ZV9maWxlX2V4 aXN0cygKLSsgICAgICAgICAgICBmaWxlX2V4aXN0c19pbl9sb29rYXNpZGUgPSBzZWxmLmxvb2th c2lkZWNhY2hlLnJlbW90ZV9maWxlX2V4aXN0c19oZWFkKAotICAgICAgICAgICAgICAgICBzZWxm Lm5zX3JlcG9fbmFtZSBpZiBzZWxmLmxvb2thc2lkZV9uYW1lc3BhY2VkIGVsc2Ugc2VsZi5yZXBv X25hbWUsCi0gICAgICAgICAgICAgICAgIGZpbGVuYW1lLAotICAgICAgICAgICAgICAgICBoYXNo KQotZGlmZiAtLWdpdCBhL3B5cnBrZy9sb29rYXNpZGUucHkgYi9weXJwa2cvbG9va2FzaWRlLnB5 Ci1pbmRleCA5MGYwZjFlLi5lY2JmMTJiIDEwMDY0NAotLS0tIGEvcHlycGtnL2xvb2thc2lkZS5w eQotKysrIGIvcHlycGtnL2xvb2thc2lkZS5weQotQEAgLTIyLDcgKzIyLDcgQEAgaW1wb3J0IHN5 cwotIAotIGltcG9ydCBweWN1cmwKLSBpbXBvcnQgc2l4Ci0tZnJvbSBzaXgubW92ZXMgaW1wb3J0 IGh0dHBfY2xpZW50Ci0rZnJvbSBzaXgubW92ZXMgaW1wb3J0IGh0dHBfY2xpZW50LCB1cmxsaWIK LSAKLSBmcm9tIC5lcnJvcnMgaW1wb3J0IChBbHJlYWR5VXBsb2FkZWRFcnJvciwgRG93bmxvYWRF cnJvciwgSW52YWxpZEhhc2hUeXBlLAotICAgICAgICAgICAgICAgICAgICAgIFVwbG9hZEVycm9y KQotQEAgLTE1Nyw3ICsxNTcsNyBAQCBjbGFzcyBDR0lMb29rYXNpZGVDYWNoZShvYmplY3QpOgot ICAgICAgICAgICAgICAgICByZXR1cm4KLSAKLSAgICAgICAgIHNlbGYubG9nLmluZm8oIkRvd25s b2FkaW5nICVzIiwgZmlsZW5hbWUpCi0tICAgICAgICB1cmxlZF9maWxlID0gZmlsZW5hbWUucmVw bGFjZSgnICcsICclMjAnKQotKyAgICAgICAgdXJsZWRfZmlsZSA9IHVybGxpYi5wYXJzZS5xdW90 ZShmaWxlbmFtZSkKLSAgICAgICAgIHVybCA9IHNlbGYuZ2V0X2Rvd25sb2FkX3VybChuYW1lLCB1 cmxlZF9maWxlLCBoYXNoLCBoYXNodHlwZSwgKiprd2FyZ3MpCi0gICAgICAgICBpZiBpc2luc3Rh bmNlKHVybCwgc2l4LnRleHRfdHlwZSk6Ci0gICAgICAgICAgICAgdXJsID0gdXJsLmVuY29kZSgn dXRmLTgnKQotQEAgLTIwMCw2ICsyMDAsMzggQEAgY2xhc3MgQ0dJTG9va2FzaWRlQ2FjaGUob2Jq ZWN0KToKLSAgICAgICAgIGlmIG5vdCBzZWxmLmZpbGVfaXNfdmFsaWQob3V0ZmlsZSwgaGFzaCwg aGFzaHR5cGU9aGFzaHR5cGUpOgotICAgICAgICAgICAgIHJhaXNlIERvd25sb2FkRXJyb3IoJyVz IGZhaWxlZCBjaGVja3N1bScgJSBmaWxlbmFtZSkKLSAKLSsgICAgZGVmIHJlbW90ZV9maWxlX2V4 aXN0c19oZWFkKHNlbGYsIG5hbWUsIGZpbGVuYW1lLCBoYXNoKToKLSsgICAgICAgICIiIlZlcmlm eSB3aGV0aGVyIGEgZmlsZSBleGlzdHMgb24gdGhlIGxvb2thc2lkZSBjYWNoZS4KLSsgICAgICAg IFVzZXMgYSBIVFRQIEhFQUQgcmVxdWVzdCBhbmQgZG9lc24ndCByZXF1aXJlIGF1dGhlbnRpY2F0 aW9uLgotKwotKyAgICAgICAgOnBhcmFtIHN0ciBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgbW9kdWxl LiAodXN1YWxseSB0aGUgbmFtZSBvZiB0aGUKLSsgICAgICAgICAgICBTUlBNKS4gVGhpcyBjYW4g aW5jbHVkZSB0aGUgbmFtZXNwYWNlIGFzIHdlbGwgKGRlcGVuZGluZyBvbiB3aGF0Ci0rICAgICAg ICAgICAgdGhlIHNlcnZlciBzaWRlIGV4cGVjdHMpLgotKyAgICAgICAgOnBhcmFtIHN0ciBmaWxl bmFtZTogVGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8gY2hlY2sgZm9yLgotKyAgICAgICAgOnBhcmFt IHN0ciBoYXNoOiBUaGUga25vd24gZ29vZCBoYXNoIG9mIHRoZSBmaWxlLgotKyAgICAgICAgIiIi Ci0rCi0rICAgICAgICB1cmxlZF9maWxlID0gdXJsbGliLnBhcnNlLnF1b3RlKGZpbGVuYW1lKQot KyAgICAgICAgdXJsID0gc2VsZi5nZXRfZG93bmxvYWRfdXJsKG5hbWUsIHVybGVkX2ZpbGUsIGhh c2gsIHNlbGYuaGFzaHR5cGUpCi0rCi0rICAgICAgICBjID0gcHljdXJsLkN1cmwoKQotKyAgICAg ICAgYy5zZXRvcHQocHljdXJsLlVSTCwgdXJsKQotKyAgICAgICAgYy5zZXRvcHQocHljdXJsLk5P Qk9EWSwgVHJ1ZSkKLSsgICAgICAgIGMuc2V0b3B0KHB5Y3VybC5GT0xMT1dMT0NBVElPTiwgMSkK LSsKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBjLnBlcmZvcm0oKQotKyAgICAgICAgICAg IHN0YXR1cyA9IGMuZ2V0aW5mbyhweWN1cmwuUkVTUE9OU0VfQ09ERSkKLSsgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgICAgICByYWlzZSBEb3dubG9hZEVycm9yKGUpCi0r ICAgICAgICBmaW5hbGx5OgotKyAgICAgICAgICAgIGMuY2xvc2UoKQotKwotKyAgICAgICAgaWYg c3RhdHVzICE9IDIwMDoKLSsgICAgICAgICAgICBzZWxmLmxvZy5kZWJ1ZygnVW5hdmFpbGFibGUg ZmlsZSBcJyVzXCcgYXQgJXMnICUgKGZpbGVuYW1lLCB1cmwpKQotKyAgICAgICAgICAgIHJldHVy biBGYWxzZQotKyAgICAgICAgcmV0dXJuIFRydWUKLSsKLSAgICAgZGVmIHJlbW90ZV9maWxlX2V4 aXN0cyhzZWxmLCBuYW1lLCBmaWxlbmFtZSwgaGFzaCk6Ci0gICAgICAgICAiIiJWZXJpZnkgd2hl dGhlciBhIGZpbGUgZXhpc3RzIG9uIHRoZSBsb29rYXNpZGUgY2FjaGUKLSAKLS0tIAotMi4zOS4y Ci0KCmRpZmYgLS1naXQgYS8wMDEyLXByZS1wdXNoLWhvb2stc2NyaXB0LWNvbnRhaW5zLWEtdXNl ci1zLWNvbmZpZy5wYXRjaCBiLzAwMTItcHJlLXB1c2gtaG9vay1zY3JpcHQtY29udGFpbnMtYS11 c2VyLXMtY29uZmlnLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjI2NzZk Li4wMDAwMDAwCi0tLSBhLzAwMTItcHJlLXB1c2gtaG9vay1zY3JpcHQtY29udGFpbnMtYS11c2Vy LXMtY29uZmlnLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTk3ICswLDAgQEAKLUZyb20gMWYw M2ViOTEwMmY3NjVjMzZjYzIwMWE0OTlkODE1NzMyZTY3ZGQzOSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IE9uZHJlaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24s IDI3IE1hciAyMDIzIDIzOjM0OjEyICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMTIvMTJdIHByZS1w dXNoIGhvb2sgc2NyaXB0IGNvbnRhaW5zIGEgdXNlcidzIGNvbmZpZwotCi1XaGVuIHRoZSBgY2xv bmVgIGNvbW1hbmQgaXMgY2FsbGVkIHdpdGggYW4gYXJndW1lbnQKLS1DfC0tY29uZmlnIDxjb25m aWdfZmlsZT4KLXRoaXMgYXJndW1lbnQgaXMgcGxhY2VkIHRvIHRoZSBnZW5lcmF0ZWQgcHJlLXB1 c2ggc2NyaXB0LgotCi1GaXhlczogIzY2NwotSklSQTogUkhFTENNUC0xMTM5NAotCi1TaWduZWQt b2ZmLWJ5OiBPbmRyZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPgotLS0tCi0gcHlycGtnL19f aW5pdF9fLnB5ICAgICAgICAgICB8IDIzICsrKysrKysrKysrKy0tLS0tLS0KLSBweXJwa2cvY2xp LnB5ICAgICAgICAgICAgICAgIHwgIDYgKysrLS0KLSB0ZXN0cy9jb21tYW5kcy90ZXN0X2Nsb25l LnB5IHwgNDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gMyBmaWxlcyBj aGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3B5cnBrZy9fX2luaXRfXy5weSBiL3B5cnBrZy9fX2luaXRfXy5weQotaW5kZXggMTUyMDNiNy4u OTk5NjQwMiAxMDA2NDQKLS0tLSBhL3B5cnBrZy9fX2luaXRfXy5weQotKysrIGIvcHlycGtnL19f aW5pdF9fLnB5Ci1AQCAtMTU2Niw3ICsxNTY2LDggQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToK LSAgICAgICAgIHJldHVybgotIAotICAgICBkZWYgY2xvbmUoc2VsZiwgcmVwbywgcGF0aD1Ob25l LCBicmFuY2g9Tm9uZSwgYmFyZV9kaXI9Tm9uZSwKLS0gICAgICAgICAgICAgIGFub249RmFsc2Us IHRhcmdldD1Ob25lLCBkZXB0aD1Ob25lLCBleHRyYV9hcmdzPU5vbmUpOgotKyAgICAgICAgICAg ICAgYW5vbj1GYWxzZSwgdGFyZ2V0PU5vbmUsIGRlcHRoPU5vbmUsIGV4dHJhX2FyZ3M9Tm9uZSwK LSsgICAgICAgICAgICAgIGNvbmZpZ19wYXRoPU5vbmUpOgotICAgICAgICAgIiIiQ2xvbmUgYSBy ZXBvLCBvcHRpb25hbGx5IGNoZWNrIG91dCBhIHNwZWNpZmljIGJyYW5jaC4KLSAKLSAgICAgICAg IDpwYXJhbSBzdHIgcmVwbzogdGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkgdG8gY2xvbmUuCi1A QCAtMTU4Myw2ICsxNTg0LDcgQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToKLSAgICAgICAgICAg ICB0byB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBjb21taXRzLgotICAgICAgICAgOnBhcmFtIGxp c3QgZXh0cmFfYXJnczogYWRkaXRpb25hbCBhcmd1bWVudHMgdGhhdCBhcmUgcGFzc2VkIHRvCi0g ICAgICAgICAgICAgdGhlIGNsb25lIGNvbW1hbmQuCi0rICAgICAgICA6cGFyYW0gc3RyIGNvbmZp Z19wYXRoOiBwYXRoIHRvIHRoZSBnbG9iYWwgY29uZmlnIGZpbGUKLSAgICAgICAgICIiIgotIAot ICAgICAgICAgaWYgbm90IHBhdGg6Ci1AQCAtMTYzOCw3ICsxNjQwLDcgQEAgY2xhc3MgQ29tbWFu ZHMob2JqZWN0KToKLSAKLSAgICAgICAgIGlmIG5vdCBiYXJlX2RpcjoKLSAgICAgICAgICAgICBz ZWxmLl9hZGRfZ2l0X2V4Y2x1ZGVzKG9zLnBhdGguam9pbihwYXRoLCBnaXRfZGlyKSkKLS0gICAg ICAgICAgICBzZWxmLl9hZGRfZ2l0X3ByZV9wdXNoX2hvb2sob3MucGF0aC5qb2luKHBhdGgsIGdp dF9kaXIpKQotKyAgICAgICAgICAgIHNlbGYuX2FkZF9naXRfcHJlX3B1c2hfaG9vayhvcy5wYXRo LmpvaW4ocGF0aCwgZ2l0X2RpciksIGNvbmZpZ19wYXRoKQotIAotICAgICAgICAgcmV0dXJuCi0g Ci1AQCAtMTY1NCw3ICsxNjU2LDcgQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToKLSAgICAgICAg IHJldHVybiByZXBvCi0gCi0gICAgIGRlZiBjbG9uZV93aXRoX2RpcnMoc2VsZiwgcmVwbywgYW5v bj1GYWxzZSwgdGFyZ2V0PU5vbmUsIGRlcHRoPU5vbmUsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgZXh0cmFfYXJncz1Ob25lKToKLSsgICAgICAgICAgICAgICAgICAgICAgICBleHRyYV9hcmdz PU5vbmUsIGNvbmZpZ19wYXRoPU5vbmUpOgotICAgICAgICAgIiIiQ2xvbmUgYSByZXBvIG9sZCBz dHlsZSB3aXRoIHN1YmRpcnMgZm9yIGVhY2ggYnJhbmNoLgotIAotICAgICAgICAgOnBhcmFtIHN0 ciByZXBvOiBuYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIGNsb25lLgotQEAgLTE2NjYsNiArMTY2 OCw3IEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6Ci0gICAgICAgICAgICAgdG8gdGhlIHNwZWNp ZmllZCBudW1iZXIgb2YgY29tbWl0cy4KLSAgICAgICAgIDpwYXJhbSBsaXN0IGV4dHJhX2FyZ3M6 IGFkZGl0aW9uYWwgYXJndW1lbnRzIHRoYXQgYXJlIHBhc3NlZCB0bwotICAgICAgICAgICAgIHRo ZSBjbG9uZSBjb21tYW5kLgotKyAgICAgICAgOnBhcmFtIHN0ciBjb25maWdfcGF0aDogcGF0aCB0 byB0aGUgZ2xvYmFsIGNvbmZpZyBmaWxlCi0gICAgICAgICAiIiIKLSAKLSAgICAgICAgIHNlbGYu X3B1c2hfdXJsID0gTm9uZQotQEAgLTE3MjQsNyArMTcyNyw3IEBAIGNsYXNzIENvbW1hbmRzKG9i amVjdCk6Ci0gCi0gICAgICAgICAgICAgICAgICMgQWRkIGV4Y2x1ZGVzCi0gICAgICAgICAgICAg ICAgIHNlbGYuX2FkZF9naXRfZXhjbHVkZXMoYnJhbmNoX3BhdGgpCi0tICAgICAgICAgICAgICAg IHNlbGYuX2FkZF9naXRfcHJlX3B1c2hfaG9vayhicmFuY2hfcGF0aCkKLSsgICAgICAgICAgICAg ICAgc2VsZi5fYWRkX2dpdF9wcmVfcHVzaF9ob29rKGJyYW5jaF9wYXRoLCBjb25maWdfcGF0aCkK LSAgICAgICAgICAgICBleGNlcHQgKGdpdC5HaXRDb21tYW5kRXJyb3IsIE9TRXJyb3IpIGFzIGU6 Ci0gICAgICAgICAgICAgICAgIHJhaXNlIHJwa2dFcnJvcignQ291bGQgbm90IGxvY2FsbHkgY2xv bmUgJXMgZnJvbSAlczogJXMnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChi cmFuY2gsIHJlcG9fcGF0aCwgZSkpCi1AQCAtMTc4Nyw3ICsxNzkwLDcgQEAgY2xhc3MgQ29tbWFu ZHMob2JqZWN0KToKLSAgICAgICAgIGdpdF9leGNsdWRlcy53cml0ZSgpCi0gICAgICAgICBzZWxm LmxvZy5kZWJ1ZygnR2l0LWV4Y2x1ZGVzIHBhdHRlcm5zIHdlcmUgYWRkZWQgaW50byAlcycgJSBn aXRfZXhjbHVkZXNfcGF0aCkKLSAKLS0gICAgZGVmIF9hZGRfZ2l0X3ByZV9wdXNoX2hvb2soc2Vs ZiwgY29uZl9kaXIpOgotKyAgICBkZWYgX2FkZF9naXRfcHJlX3B1c2hfaG9vayhzZWxmLCByZXBv X2RpciwgY29uZmlnX3BhdGg9Tm9uZSk6Ci0gICAgICAgICAiIiIKLSAgICAgICAgIENyZWF0ZSBw cmUtcHVzaCBob29rIHNjcmlwdCBhbmQgd3JpdGUgaXQgaW4gdGhlIGxvY2F0aW9uOgotICAgICAg ICAgPHJlcG9zaXRvcnlfZGlyZWN0b3J5Pi8uZ2l0L2hvb2tzL3ByZS1wdXNoCi1AQCAtMTgwMyw2 ICsxODA2LDEwIEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6Ci0gICAgICAgICAgICAgc2VsZi5s b2cuZGVidWcoJ1ByZS1wdXNoIGhvb2sgc2NyaXB0IHdhcyBOT1QgYWRkZWQgLSBtaXNzaW5nICcK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIHBhY2thZ2luZyB0b29sIGxpa2UgZmVk cGtnLCByaHBrZywgLi4uJykKLSAgICAgICAgICAgICByZXR1cm4KLSsKLSsgICAgICAgICMgaW4g Y2FzZSB0aGUgY2xvbmUgY29tbWFuZCBydW4gd2l0aCAneC1wa2cgLUMgPGNvbmZpZ19wYXRoPiBj bG9uZSA8cmVwb19uYW1lPicKLSsgICAgICAgIGNvbmZpZ19hcmcgPSAnIC1DICJ7MH0iJy5mb3Jt YXQob3MucGF0aC5yZWFscGF0aChjb25maWdfcGF0aCkpIGlmIGNvbmZpZ19wYXRoIGVsc2UgIiIK LSsKLSAgICAgICAgIGhvb2tfY29udGVudCA9IHRleHR3cmFwLmRlZGVudCgiIiIKLSAgICAgICAg ICAgICAjIS9iaW4vYmFzaAotIAotQEAgLTE4MTgsNyArMTgyNSw3IEBAIGNsYXNzIENvbW1hbmRz KG9iamVjdCk6Ci0gICAgICAgICAgICAgZG8KLSAgICAgICAgICAgICAgICAgY29tbWFuZCAtdiB7 MH0gPi9kZXYvbnVsbCAyPiYxIHx8IHt7IGVjaG8gPiYyICJXYXJuaW5nOiAnezB9JyBpcyBtaXNz aW5nLCBcXAotICAgICAgICAgICAgIHByZS1wdXNoIGNoZWNrIGlzIG9taXR0ZWQuIFNlZSAuZ2l0 L2hvb2tzL3ByZS1wdXNoIjsgZXhpdCAwOyB9fQotLSAgICAgICAgICAgICAgICB7MH0gcHJlLXB1 c2gtY2hlY2sgIiRsb2NhbF9zaGEiCi0rICAgICAgICAgICAgICAgIHswfXsxfSBwcmUtcHVzaC1j aGVjayAiJGxvY2FsX3NoYSIKLSAgICAgICAgICAgICAgICAgcmV0X2NvZGU9JD8KLSAgICAgICAg ICAgICAgICAgaWYgWyAkcmV0X2NvZGUgLW5lIDAgXSAmJiBbICRleGl0X2NvZGUgLWVxIDAgXTsg dGhlbgotICAgICAgICAgICAgICAgICAgICAgZXhpdF9jb2RlPSRyZXRfY29kZQotQEAgLTE4MjYs OCArMTgzMyw4IEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6Ci0gICAgICAgICAgICAgZG9uZQot IAotICAgICAgICAgICAgIGV4aXQgJGV4aXRfY29kZQotLSAgICAgICAgIiIiKS5zdHJpcCgpLmZv cm1hdCh0b29sX25hbWUpCi0tICAgICAgICBnaXRfcHJlX3B1c2hfaG9va19wYXRoID0gb3MucGF0 aC5qb2luKGNvbmZfZGlyLCAnLmdpdC9ob29rcy9wcmUtcHVzaCcpCi0rICAgICAgICAiIiIpLnN0 cmlwKCkuZm9ybWF0KHRvb2xfbmFtZSwgY29uZmlnX2FyZykKLSsgICAgICAgIGdpdF9wcmVfcHVz aF9ob29rX3BhdGggPSBvcy5wYXRoLmpvaW4ocmVwb19kaXIsICcuZ2l0L2hvb2tzL3ByZS1wdXNo JykKLSAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmRpcm5hbWUoZ2l0X3By ZV9wdXNoX2hvb2tfcGF0aCkpOgotICAgICAgICAgICAgICMgcHJlcGFyZSAiLmdpdC9ob29rcyIg ZGlyZWN0b3J5IGlmIGl0IGlzIG1pc3NpbmcKLSAgICAgICAgICAgICBvcy5tYWtlZGlycyhvcy5w YXRoLmRpcm5hbWUoZ2l0X3ByZV9wdXNoX2hvb2tfcGF0aCkpCi1kaWZmIC0tZ2l0IGEvcHlycGtn L2NsaS5weSBiL3B5cnBrZy9jbGkucHkKLWluZGV4IDFiY2Y2ZTQuLjNkOGNlMzMgMTAwNjQ0Ci0t LS0gYS9weXJwa2cvY2xpLnB5Ci0rKysgYi9weXJwa2cvY2xpLnB5Ci1AQCAtMjE4MiwxNCArMjE4 MiwxNiBAQCBjbGFzcyBjbGlDbGllbnQob2JqZWN0KToKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYW5vbj1zZWxmLmFyZ3MuYW5vbnltb3VzLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9c2VsZi5hcmdzLmNsb25lX3RhcmdldCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGg9c2VsZi5hcmdzLmRlcHRo LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYV9hcmdzPXNlbGYu ZXh0cmFfYXJncykKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFf YXJncz1zZWxmLmV4dHJhX2FyZ3MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbmZpZ19wYXRoPXNlbGYuYXJncy5jb25maWcpCi0gICAgICAgICBlbHNlOgotICAgICAg ICAgICAgIHNlbGYuY21kLmNsb25lKHNlbGYuYXJncy5yZXBvWzBdLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJyYW5jaD1zZWxmLmFyZ3MuYnJhbmNoLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFub249c2VsZi5hcmdzLmFub255bW91cywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0YXJnZXQ9c2VsZi5hcmdzLmNsb25lX3RhcmdldCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkZXB0aD1zZWxmLmFyZ3MuZGVwdGgsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXh0cmFfYXJncz1zZWxmLmV4dHJhX2FyZ3MpCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXh0cmFfYXJncz1zZWxmLmV4dHJhX2FyZ3MsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uZmlnX3BhdGg9c2VsZi5hcmdzLmNvbmZpZykKLSAKLSAgICAgZGVmIGNvbW1pdChz ZWxmKToKLSAgICAgICAgIGlmIHNlbGYuYXJncy53aXRoX2NoYW5nZWxvZyBhbmQgbm90IHNlbGYu YXJncy5tZXNzYWdlOgotZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbW1hbmRzL3Rlc3RfY2xvbmUucHkg Yi90ZXN0cy9jb21tYW5kcy90ZXN0X2Nsb25lLnB5Ci1pbmRleCBmNzQxODY0Li42ZWYxMzAwIDEw MDY0NAotLS0tIGEvdGVzdHMvY29tbWFuZHMvdGVzdF9jbG9uZS5weQotKysrIGIvdGVzdHMvY29t bWFuZHMvdGVzdF9jbG9uZS5weQotQEAgLTk1LDYgKzk1LDUwIEBAIGNsYXNzIENvbW1hbmRDbG9u ZVRlc3RDYXNlKENvbW1hbmRUZXN0Q2FzZSk6Ci0gCi0gICAgICAgICBzaHV0aWwucm10cmVlKGFs dHBhdGgpCi0gCi0rICAgIGRlZiB0ZXN0X2Nsb25lX2Fub255bW91c19wcmVfcHVzaF9ob29rKHNl bGYpOgotKyAgICAgICAgc2VsZi5tYWtlX25ld19naXQoc2VsZi5tb2R1bGUpCi0rCi0rICAgICAg ICBhbHRwYXRoID0gdGVtcGZpbGUubWtkdGVtcChwcmVmaXg9J3Jwa2ctdGVzdHMuJykKLSsKLSsg ICAgICAgIGNtZCA9IHB5cnBrZy5Db21tYW5kcyhzZWxmLnBhdGgsIHNlbGYubG9va2FzaWRlLCBz ZWxmLmxvb2thc2lkZWhhc2gsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5s b29rYXNpZGVfY2dpLCBzZWxmLmdpdGJhc2V1cmwsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5hbm9uZ2l0dXJsLCBzZWxmLmJyYW5jaHJlLCBzZWxmLmtvamlwcm9maWxlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYnVpbGRfY2xpZW50LCBzZWxmLnVz ZXIsIHNlbGYuZGlzdCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhcmdl dCwgc2VsZi5xdWlldCkKLSsgICAgICAgIGNtZC5jbG9uZShzZWxmLm1vZHVsZSwgYW5vbj1UcnVl LCBjb25maWdfcGF0aD1Ob25lKQotKwotKyAgICAgICAgbW9kdWxlZGlyID0gb3MucGF0aC5qb2lu KHNlbGYucGF0aCwgc2VsZi5tb2R1bGUpCi0rICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0 aC5pc2ZpbGUob3MucGF0aC5qb2luKG1vZHVsZWRpciwgJy5naXQvaG9va3MvcHJlLXB1c2gnKSkp Ci0rCi0rICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKG1vZHVsZWRpciwgJy5naXQvaG9v a3MvcHJlLXB1c2gnKSkgYXMgZ2l0X2hvb2tfc2NyaXB0OgotKyAgICAgICAgICAgIGNvbnRlbnQg PSBnaXRfaG9va19zY3JpcHQucmVhZCgpCi0rICAgICAgICAgICAgcGF0dGVybiA9ICdfX21haW5f Xy5weSBwcmUtcHVzaC1jaGVjayAiJGxvY2FsX3NoYSInCi0rICAgICAgICAgICAgc2VsZi5hc3Nl cnRJbihwYXR0ZXJuLCBjb250ZW50KQotKwotKyAgICAgICAgc2h1dGlsLnJtdHJlZShhbHRwYXRo KQotKwotKyAgICBkZWYgdGVzdF9jbG9uZV9hbm9ueW1vdXNfcHJlX3B1c2hfaG9va19jb25maWco c2VsZik6Ci0rICAgICAgICBzZWxmLm1ha2VfbmV3X2dpdChzZWxmLm1vZHVsZSkKLSsKLSsgICAg ICAgIGFsdHBhdGggPSB0ZW1wZmlsZS5ta2R0ZW1wKHByZWZpeD0ncnBrZy10ZXN0cy4nKQotKwot KyAgICAgICAgY21kID0gcHlycGtnLkNvbW1hbmRzKHNlbGYucGF0aCwgc2VsZi5sb29rYXNpZGUs IHNlbGYubG9va2FzaWRlaGFzaCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm Lmxvb2thc2lkZV9jZ2ksIHNlbGYuZ2l0YmFzZXVybCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmFub25naXR1cmwsIHNlbGYuYnJhbmNocmUsIHNlbGYua29qaXByb2ZpbGUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5idWlsZF9jbGllbnQsIHNlbGYu dXNlciwgc2VsZi5kaXN0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFy Z2V0LCBzZWxmLnF1aWV0KQotKyAgICAgICAgY21kLmNsb25lKHNlbGYubW9kdWxlLCBhbm9uPVRy dWUsIGNvbmZpZ19wYXRoPSIvaG9tZS9jb25mL3JocGtnLmNvbmYiKQotKwotKyAgICAgICAgbW9k dWxlZGlyID0gb3MucGF0aC5qb2luKHNlbGYucGF0aCwgc2VsZi5tb2R1bGUpCi0rICAgICAgICBz ZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2ZpbGUob3MucGF0aC5qb2luKG1vZHVsZWRpciwgJy5n aXQvaG9va3MvcHJlLXB1c2gnKSkpCi0rCi0rICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2lu KG1vZHVsZWRpciwgJy5naXQvaG9va3MvcHJlLXB1c2gnKSkgYXMgZ2l0X2hvb2tfc2NyaXB0Ogot KyAgICAgICAgICAgIGNvbnRlbnQgPSBnaXRfaG9va19zY3JpcHQucmVhZCgpCi0rICAgICAgICAg ICAgcGF0dGVybiA9ICdfX21haW5fXy5weSAtQyAiL2hvbWUvY29uZi9yaHBrZy5jb25mIiBwcmUt cHVzaC1jaGVjayAiJGxvY2FsX3NoYSInCi0rICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihwYXR0 ZXJuLCBjb250ZW50KQotKwotKyAgICAgICAgc2h1dGlsLnJtdHJlZShhbHRwYXRoKQotKwotICAg ICBkZWYgdGVzdF9jbG9uZV9hbm9ueW1vdXNfd2l0aF9icmFuY2goc2VsZik6Ci0gICAgICAgICBz ZWxmLm1ha2VfbmV3X2dpdChzZWxmLm1vZHVsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IGJyYW5jaGVzPVsncnBrZy10ZXN0cy0xJywgJ3Jwa2ctdGVzdHMtMiddKQotLS0gCi0yLjM5LjIK LQoKZGlmZiAtLWdpdCBhLzAwMTMtRml4LXVuaXR0ZXN0cy1mb3ItY2xvbmUtYW5kLXByZS1wdXNo LWhvb2stc2NyaXB0LnBhdGNoIGIvMDAxMy1GaXgtdW5pdHRlc3RzLWZvci1jbG9uZS1hbmQtcHJl LXB1c2gtaG9vay1zY3JpcHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5 MWZiMjIuLjAwMDAwMDAKLS0tIGEvMDAxMy1GaXgtdW5pdHRlc3RzLWZvci1jbG9uZS1hbmQtcHJl LXB1c2gtaG9vay1zY3JpcHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1G cm9tIDFkODJiN2VhZjk4ZTY5NTY4OWE3ZGMxMGJkMzA4MDMwZTNjMTNlZWEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBPbmRyZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPgotRGF0 ZTogU2F0LCAxIEFwciAyMDIzIDAxOjM0OjM0ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCB1 bml0dGVzdHMgZm9yIGBjbG9uZWAgYW5kIHByZS1wdXNoIGhvb2sgc2NyaXB0Ci0KLVNpZ25lZC1v ZmYtYnk6IE9uZHJlaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+Ci0tLS0KLSB0ZXN0cy9jb21t YW5kcy90ZXN0X2Nsb25lLnB5IHwgOCArKysrKystLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS90ZXN0cy9jb21tYW5kcy90 ZXN0X2Nsb25lLnB5IGIvdGVzdHMvY29tbWFuZHMvdGVzdF9jbG9uZS5weQotaW5kZXggNmVmMTMw MC4uODVmZGZkMSAxMDA2NDQKLS0tLSBhL3Rlc3RzL2NvbW1hbmRzL3Rlc3RfY2xvbmUucHkKLSsr KyBiL3Rlc3RzL2NvbW1hbmRzL3Rlc3RfY2xvbmUucHkKLUBAIC0xLDUgKzEsNiBAQAotIGltcG9y dCBvcwotIGltcG9ydCBzaHV0aWwKLStpbXBvcnQgc3lzCi0gaW1wb3J0IHRlbXBmaWxlCi0gCi0g aW1wb3J0IGdpdAotQEAgLTExMCw5ICsxMTEsMTAgQEAgY2xhc3MgQ29tbWFuZENsb25lVGVzdENh c2UoQ29tbWFuZFRlc3RDYXNlKToKLSAgICAgICAgIG1vZHVsZWRpciA9IG9zLnBhdGguam9pbihz ZWxmLnBhdGgsIHNlbGYubW9kdWxlKQotICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGgu aXNmaWxlKG9zLnBhdGguam9pbihtb2R1bGVkaXIsICcuZ2l0L2hvb2tzL3ByZS1wdXNoJykpKQot IAotKyAgICAgICAgY2xvbm5lZF9ieSA9IG9zLnBhdGguYmFzZW5hbWUoc3lzLmFyZ3ZbMF0pCi0g ICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKG1vZHVsZWRpciwgJy5naXQvaG9va3MvcHJl LXB1c2gnKSkgYXMgZ2l0X2hvb2tfc2NyaXB0OgotICAgICAgICAgICAgIGNvbnRlbnQgPSBnaXRf aG9va19zY3JpcHQucmVhZCgpCi0tICAgICAgICAgICAgcGF0dGVybiA9ICdfX21haW5fXy5weSBw cmUtcHVzaC1jaGVjayAiJGxvY2FsX3NoYSInCi0rICAgICAgICAgICAgcGF0dGVybiA9ICd7MH0g cHJlLXB1c2gtY2hlY2sgIiRsb2NhbF9zaGEiJy5mb3JtYXQoY2xvbm5lZF9ieSkKLSAgICAgICAg ICAgICBzZWxmLmFzc2VydEluKHBhdHRlcm4sIGNvbnRlbnQpCi0gCi0gICAgICAgICBzaHV0aWwu cm10cmVlKGFsdHBhdGgpCi1AQCAtMTMyLDkgKzEzNCwxMSBAQCBjbGFzcyBDb21tYW5kQ2xvbmVU ZXN0Q2FzZShDb21tYW5kVGVzdENhc2UpOgotICAgICAgICAgbW9kdWxlZGlyID0gb3MucGF0aC5q b2luKHNlbGYucGF0aCwgc2VsZi5tb2R1bGUpCi0gICAgICAgICBzZWxmLmFzc2VydFRydWUob3Mu cGF0aC5pc2ZpbGUob3MucGF0aC5qb2luKG1vZHVsZWRpciwgJy5naXQvaG9va3MvcHJlLXB1c2gn KSkpCi0gCi0rICAgICAgICBjbG9ubmVkX2J5ID0gb3MucGF0aC5iYXNlbmFtZShzeXMuYXJndlsw XSkKLSAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4obW9kdWxlZGlyLCAnLmdpdC9ob29r cy9wcmUtcHVzaCcpKSBhcyBnaXRfaG9va19zY3JpcHQ6Ci0gICAgICAgICAgICAgY29udGVudCA9 IGdpdF9ob29rX3NjcmlwdC5yZWFkKCkKLS0gICAgICAgICAgICBwYXR0ZXJuID0gJ19fbWFpbl9f LnB5IC1DICIvaG9tZS9jb25mL3JocGtnLmNvbmYiIHByZS1wdXNoLWNoZWNrICIkbG9jYWxfc2hh IicKLSsgICAgICAgICAgICBwYXR0ZXJuID0gJ3swfSAtQyAiL2hvbWUvY29uZi9yaHBrZy5jb25m IiBwcmUtcHVzaC1jaGVjayAnIFwKLSsgICAgICAgICAgICAgICAgICAgICAgJyIkbG9jYWxfc2hh IicuZm9ybWF0KGNsb25uZWRfYnkpCi0gICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihwYXR0ZXJu LCBjb250ZW50KQotIAotICAgICAgICAgc2h1dGlsLnJtdHJlZShhbHRwYXRoKQotLS0gCi0yLjM5 LjIKLQoKZGlmZiAtLWdpdCBhLzAwMTQtaW1wb3J0X3NycG0tYWxsb3ctcHJlLWdlbmVyYXRlZC1z cnBtcy5wYXRjaCBiLzAwMTQtaW1wb3J0X3NycG0tYWxsb3ctcHJlLWdlbmVyYXRlZC1zcnBtcy5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjU5NjI2NS4uMDAwMDAwMAotLS0g YS8wMDE0LWltcG9ydF9zcnBtLWFsbG93LXByZS1nZW5lcmF0ZWQtc3JwbXMucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotRnJvbSBkODdjYjM3ZmEyZmVhMmVkNTM1YjkwODVh MWY0YzYwNzA4M2UxYzJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogT25kcmVqIE5v c2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgNCBBcHIgMjAyMyAwMTo0MDoyMyAr MDIwMAotU3ViamVjdDogW1BBVENIIDEvNl0gaW1wb3J0X3NycG06IGFsbG93IHByZS1nZW5lcmF0 ZWQgc3JwbXMKLQotV2hlbiBhY3RpdmUsIGRvIG5vdCBjYXJlIHNwZWNmaWxlIGluIHRoZSBzcnBt IGlzIHByb2Nlc3NlZCBieQotcnBtYXV0b3NwZWMuIENhbiBiZSBhY3RpdmF0ZWQgb25seSBkaXJl Y3RseSB2aWEgcHlycGtnICdDb21tYW5kcycKLW9iamVjdC4KLQotUmVsYXRlczogaHR0cHM6Ly9n aXRodWIuY29tL2ZlZG9yYS1jb3ByL2NvcHIvaXNzdWVzLzIzMTcKLUZpeGVzOiAjNjU1Ci1SSEVM Q01QLTExMDg1Ci0KLVNpZ25lZC1vZmYtYnk6IE9uZHJlaiBOb3NlayA8b25vc2VrQHJlZGhhdC5j b20+Ci0tLS0KLSBweXJwa2cvX19pbml0X18ucHkgfCAgNiArKysrKy0KLSB0ZXN0cy90ZXN0X2Ns aS5weSAgfCA0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIDIg ZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0t Z2l0IGEvcHlycGtnL19faW5pdF9fLnB5IGIvcHlycGtnL19faW5pdF9fLnB5Ci1pbmRleCA5OTk2 NDAyLi5lY2I5OWM5IDEwMDY0NAotLS0tIGEvcHlycGtnL19faW5pdF9fLnB5Ci0rKysgYi9weXJw a2cvX19pbml0X18ucHkKLUBAIC0xMTAsNyArMTEwLDcgQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0 KToKLSAgICAgICAgICAgICAgICAgIGJ1aWxkX2NsaWVudCwgdXNlcj1Ob25lLAotICAgICAgICAg ICAgICAgICAgZGlzdD1Ob25lLCB0YXJnZXQ9Tm9uZSwgcXVpZXQ9RmFsc2UsCi0gICAgICAgICAg ICAgICAgICBkaXN0Z2l0X25hbWVzcGFjZWQ9RmFsc2UsIHJlYWxtcz1Ob25lLCBsb29rYXNpZGVf bmFtZXNwYWNlZD1GYWxzZSwKLS0gICAgICAgICAgICAgICAgIGdpdF9leGNsdWRlcz1Ob25lLCBy ZXN1bHRzX2Rpcj0ncm9vdCcpOgotKyAgICAgICAgICAgICAgICAgZ2l0X2V4Y2x1ZGVzPU5vbmUs IHJlc3VsdHNfZGlyPSdyb290JywgYWxsb3dfcHJlX2dlbmVyYXRlZF9zcnBtPUZhbHNlKToKLSAg ICAgICAgICIiIkluaXQgdGhlIG9iamVjdCBhbmQgc29tZSBjb25maWd1cmF0aW9uIGRldGFpbHMu IiIiCi0gCi0gICAgICAgICAjIFBhdGggdG8gb3BlcmF0ZSBvbiwgbW9zdCBvZnRlbiBwd2QKLUBA IC0yMzksNiArMjM5LDkgQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToKLSAgICAgICAgICMgTGF5 b3V0IHNldHVwCi0gICAgICAgICBzZWxmLmxheW91dCA9IGxheW91dC5idWlsZChzZWxmLnBhdGgs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzdWx0c2RpcicgaWYgc2Vs Zi5yZXN1bHRzX2RpciA9PSAnc3ViZGlyJyBlbHNlIE5vbmUpCi0rICAgICAgICAjIEEgQ29uZmln dXJhdGlvbiB2YWx1ZSB1c2VkIGluICdpbXBvcnRfc3JwbScgY29tbWFuZCAoY29tZXMgZnJvbSB0 aGUgQ29wciB0ZWFtKQotKyAgICAgICAgIyBJZiBwcmUtZ2VuZXJhdGVkIHNycG1zIGFyZSBhbGxv d2VkLCBkb24ndCBjYXJlIHNwZWNmaWxlIGlzIHByb2Nlc3NlZCBieSBycG1hdXRvc3BlYwotKyAg ICAgICAgc2VsZi5hbGxvd19wcmVfZ2VuZXJhdGVkX3NycG0gPSBhbGxvd19wcmVfZ2VuZXJhdGVk X3NycG0KLSAKLSAgICAgIyBEZWZpbmUgcHJvcGVydGllcyBoZXJlCi0gICAgICMgUHJvcGVydGll cyBhbGxvdyB1cyB0byAibGF6eSBsb2FkIiB2YXJpb3VzIGF0dHJpYnV0ZXMsIHdoaWNoIGFsc28g bWVhbnMKLUBAIC0xNDcxLDYgKzE0NzQsNyBAQCBjbGFzcyBDb21tYW5kcyhvYmplY3QpOgotICAg ICAgICAgICAgICAgICAjIHRoZSBkaXN0LWdpdCByZXBvIHdpdGhvdXQgYW55IHNwZWNmaWxlcyAt IHJpZ2h0IGFmdGVyIGluaXRpYWxpemF0aW9uKSB3ZSBhcmUKLSAgICAgICAgICAgICAgICAgIyBu b3QgYWJsZSBkZXRlcm1pbmUgd2hpY2ggdGhlIG1haW4gc3BlY2ZpbGUgaXMuCi0gICAgICAgICAg ICAgICAgIGlmIGZpbGUuZW5kc3dpdGgoJy5zcGVjJykgYW5kIG5vdCBmaWxlLnN0YXJ0c3dpdGgo Jy4nKSBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG5vdCBzZWxmLmFsbG93X3ByZV9n ZW5lcmF0ZWRfc3JwbSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHNwZWNfZmlsZV9w cm9jZXNzZWRfYnlfcnBtYXV0b3NwZWMoZmlsZSwgdGFyZ2V0X2Rpcik6Ci0gICAgICAgICAgICAg ICAgICAgICByYWlzZSBycGtnRXJyb3IoJ1NSUE0gd2FzIHByb2Nlc3NlZCBieSBycG1hdXRvc3Bl YyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhzcGVjZmlsZSAie30i IHdhcyBhbmFseXplZCknLmZvcm1hdChmaWxlKSkKLWRpZmYgLS1naXQgYS90ZXN0cy90ZXN0X2Ns aS5weSBiL3Rlc3RzL3Rlc3RfY2xpLnB5Ci1pbmRleCA4NjhhZDFmLi4wMjYyMGVmIDEwMDY0NAot LS0tIGEvdGVzdHMvdGVzdF9jbGkucHkKLSsrKyBiL3Rlc3RzL3Rlc3RfY2xpLnB5Ci1AQCAtMTc4 NCw2ICsxNzg0LDQ3IEBAIGNsYXNzIFRlc3RJbXBvcnRTcnBtKExvb2thc2lkZUNhY2hlTW9jaywg Q2xpVGVzdENhc2UpOgotICAgICAgICAgc2VsZi5hc3NlcnRGaWxlc0V4aXN0KFsncGFja2FnZS5y cG1saW50cmMnXSwgc2VhcmNoX2Rpcj1zZWxmLmNoYW9zX3JlcG8pCi0gICAgICAgICBzZWxmLmFz c2VydEZpbGVzTm90RXhpc3QoWyd0aGVfZmlsZV9pc19ub3RfaW5fcmVzZXJ2ZWQueWFtbCddLCBz ZWFyY2hfZGlyPXNlbGYuY2hhb3NfcmVwbykKLSAKLSsgICAgQHBhdGNoKCdweXJwa2cuc3BlY19m aWxlX3Byb2Nlc3NlZF9ieV9ycG1hdXRvc3BlYycpCi0rICAgIGRlZiB0ZXN0X2ltcG9ydF9zcnBt X25vdF9wcm9jZXNzZWRfYnlfcnBtYXV0b3NwZWMoc2VsZiwgcnBtYXV0b3NwZWNfcHJvY2Vzc2Vk KToKLSsgICAgICAgIGNsaV9jbWQgPSBbJ3Jwa2cnLCAnLS1wYXRoJywgc2VsZi5jaGFvc19yZXBv LCAnLS1uYW1lJywgJ2RvY3BrZycsCi0rICAgICAgICAgICAgICAgICAgICdpbXBvcnQnLCAnLS1z a2lwLWRpZmZzJywgc2VsZi5zcnBtX2ZpbGVdCi0rCi0rICAgICAgICBycG1hdXRvc3BlY19wcm9j ZXNzZWQucmV0dXJuX3ZhbHVlID0gRmFsc2UKLSsgICAgICAgIHdpdGggcGF0Y2goJ3N5cy5hcmd2 JywgbmV3PWNsaV9jbWQpOgotKyAgICAgICAgICAgIGNsaSA9IHNlbGYubmV3X2NsaSgpCi0rICAg ICAgICAgICAgd2l0aCBwYXRjaCgncHlycGtnLmxvb2thc2lkZS5DR0lMb29rYXNpZGVDYWNoZS51 cGxvYWQnLCBzZWxmLmxvb2thc2lkZWNhY2hlX3VwbG9hZCk6Ci0rICAgICAgICAgICAgICAgIGNs aS5pbXBvcnRfc3JwbSgpICAjIG5vIGV4Y2VwdGlvbiBzaG91bGQgYmUgcmFpc2VkCi0rICAgICAg ICAgICAgcnBtYXV0b3NwZWNfcHJvY2Vzc2VkLmFzc2VydF9jYWxsZWRfb25jZSgpCi0rCi0rICAg IEBwYXRjaCgncHlycGtnLnNwZWNfZmlsZV9wcm9jZXNzZWRfYnlfcnBtYXV0b3NwZWMnKQotKyAg ICBkZWYgdGVzdF9pbXBvcnRfc3JwbV9wcm9jZXNzZWRfYnlfcnBtYXV0b3NwZWMoc2VsZiwgcnBt YXV0b3NwZWNfcHJvY2Vzc2VkKToKLSsgICAgICAgIGNsaV9jbWQgPSBbJ3Jwa2cnLCAnLS1wYXRo Jywgc2VsZi5jaGFvc19yZXBvLCAnLS1uYW1lJywgJ2RvY3BrZycsCi0rICAgICAgICAgICAgICAg ICAgICdpbXBvcnQnLCAnLS1za2lwLWRpZmZzJywgc2VsZi5zcnBtX2ZpbGVdCi0rCi0rICAgICAg ICBycG1hdXRvc3BlY19wcm9jZXNzZWQucmV0dXJuX3ZhbHVlID0gVHJ1ZQotKyAgICAgICAgd2l0 aCBwYXRjaCgnc3lzLmFyZ3YnLCBuZXc9Y2xpX2NtZCk6Ci0rICAgICAgICAgICAgY2xpID0gc2Vs Zi5uZXdfY2xpKCkKLSsgICAgICAgICAgICB3aXRoIHBhdGNoKCdweXJwa2cubG9va2FzaWRlLkNH SUxvb2thc2lkZUNhY2hlLnVwbG9hZCcsIHNlbGYubG9va2FzaWRlY2FjaGVfdXBsb2FkKToKLSsg ICAgICAgICAgICAgICAgc2l4LmFzc2VydFJhaXNlc1JlZ2V4KAotKyAgICAgICAgICAgICAgICAg ICAgc2VsZiwKLSsgICAgICAgICAgICAgICAgICAgIHJwa2dFcnJvciwKLSsgICAgICAgICAgICAg ICAgICAgICdTUlBNIHdhcyBwcm9jZXNzZWQgYnkgcnBtYXV0b3NwZWMnLAotKyAgICAgICAgICAg ICAgICAgICAgY2xpLmltcG9ydF9zcnBtKQotKyAgICAgICAgICAgIHJwbWF1dG9zcGVjX3Byb2Nl c3NlZC5hc3NlcnRfY2FsbGVkX29uY2UoKQotKwotKyAgICBAcGF0Y2goJ3B5cnBrZy5zcGVjX2Zp bGVfcHJvY2Vzc2VkX2J5X3JwbWF1dG9zcGVjJykKLSsgICAgZGVmIHRlc3RfaW1wb3J0X3NycG1f cHJvY2Vzc2VkX2J5X3JwbWF1dG9zcGVjX2FsbG93ZWQoc2VsZiwgcnBtYXV0b3NwZWNfcHJvY2Vz c2VkKToKLSsgICAgICAgIGNsaV9jbWQgPSBbJ3Jwa2cnLCAnLS1wYXRoJywgc2VsZi5jaGFvc19y ZXBvLCAnLS1uYW1lJywgJ2RvY3BrZycsCi0rICAgICAgICAgICAgICAgICAgICdpbXBvcnQnLCAn LS1za2lwLWRpZmZzJywgc2VsZi5zcnBtX2ZpbGVdCi0rCi0rICAgICAgICBycG1hdXRvc3BlY19w cm9jZXNzZWQucmV0dXJuX3ZhbHVlID0gVHJ1ZQotKyAgICAgICAgd2l0aCBwYXRjaCgnc3lzLmFy Z3YnLCBuZXc9Y2xpX2NtZCk6Ci0rICAgICAgICAgICAgY2xpID0gc2VsZi5uZXdfY2xpKCkKLSsg ICAgICAgICAgICBjbGkuY21kLmFsbG93X3ByZV9nZW5lcmF0ZWRfc3JwbSA9IFRydWUKLSsgICAg ICAgICAgICB3aXRoIHBhdGNoKCdweXJwa2cubG9va2FzaWRlLkNHSUxvb2thc2lkZUNhY2hlLnVw bG9hZCcsIHNlbGYubG9va2FzaWRlY2FjaGVfdXBsb2FkKToKLSsgICAgICAgICAgICAgICAgY2xp LmltcG9ydF9zcnBtKCkgICMgbm8gZXhjZXB0aW9uIHNob3VsZCBiZSByYWlzZWQKLSsgICAgICAg ICAgICBycG1hdXRvc3BlY19wcm9jZXNzZWQuYXNzZXJ0X25vdF9jYWxsZWQoKQotKwotIAotIGNs YXNzIFRlc3RNb2NrYnVpbGQoQ2xpVGVzdENhc2UpOgotICAgICAiIiJUZXN0IG1vY2tidWlsZCBj b21tYW5kIiIiCi0tLSAKLTIuMzkuMgotCgpkaWZmIC0tZ2l0IGEvMDAxNS1JZ25vcmUtbWlzc2lu Zy1zcGVjLWZpbGUtaW4tcHJlLXB1c2gtaG9vay5wYXRjaCBiLzAwMTUtSWdub3JlLW1pc3Npbmct c3BlYy1maWxlLWluLXByZS1wdXNoLWhvb2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGIzMjgzM2MuLjAwMDAwMDAKLS0tIGEvMDAxNS1JZ25vcmUtbWlzc2luZy1zcGVjLWZp bGUtaW4tcHJlLXB1c2gtaG9vay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAK LUZyb20gM2ViZmVhZTIwYzc0ZGUwY2E0YjI2YjIyMTM1ZTE5OTYyNjVlYTRjZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9MdWJvbT1DMz1BRHI9MjBTZWRsPUMzPUEx PUM1PTk5Pz0gPGxzZWRsYXJAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgNSBBcHIgMjAyMyAxMTo0 MToyMyArMDIwMAotU3ViamVjdDogW1BBVENIIDIvNl0gSWdub3JlIG1pc3Npbmcgc3BlYyBmaWxl IGluIHByZS1wdXNoIGhvb2sKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQv cGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQot Rm9yIG1vZHVsZXMgb3IgY29udGFpbmVycyB0aGVyZSB3aWxsIGJlIG5vIHNwZWMgZmlsZSwgYW5k IHRoZXJlIGlzCi1ub3RoaW5nIHRvIGJsb2NrIHRoZSBwdXNoIG9uLgotCi1TaWduZWQtb2ZmLWJ5 OiBMdWJvbcOtciBTZWRsw6HFmSA8bHNlZGxhckByZWRoYXQuY29tPgotLS0tCi0gcHlycGtnL19f aW5pdF9fLnB5IHwgNyArKysrKystCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvcHlycGtnL19faW5pdF9fLnB5IGIvcHlycGtn L19faW5pdF9fLnB5Ci1pbmRleCBlY2I5OWM5Li5kM2E3YTFjIDEwMDY0NAotLS0tIGEvcHlycGtn L19faW5pdF9fLnB5Ci0rKysgYi9weXJwa2cvX19pbml0X18ucHkKLUBAIC00NDcxLDcgKzQ0NzEs MTIgQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToKLSAgICAgICAgICAgICAjIEFzc3VtZSwgdGhh dCBzcGVjZmlsZSBuYW1lcyBhcmUgc2FtZSBpbiB0aGUgYWN0aXZlIGJyYW5jaAotICAgICAgICAg ICAgICMgYW5kIGluIHRoZSBwdXNoZWQgYnJhbmNoIChnaXQgY2hlY2tvdXQgZjM3ICYmIGdpdCBw dXNoIG9yaWdpbiByYXdoaWRlKQotICAgICAgICAgICAgICMgaW4gdGhpcyBjYXNlICdmMzcnIGlz IGFjdGl2ZSBicmFuY2ggYW5kICdyYXdoaWRlJyBpcyBwdXNoZWQgYnJhbmNoLgotLSAgICAgICAg ICAgIHNwZWNmaWxlX3BhdGhfYWJzb2x1dGUgPSBvcy5wYXRoLmpvaW4oc2VsZi5sYXlvdXQuc3Bl Y2Rpciwgc2VsZi5zcGVjKQotKyAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAgc3Bl Y2ZpbGVfcGF0aF9hYnNvbHV0ZSA9IG9zLnBhdGguam9pbihzZWxmLmxheW91dC5zcGVjZGlyLCBz ZWxmLnNwZWMpCi0rICAgICAgICAgICAgZXhjZXB0IHJwa2dFcnJvcjoKLSsgICAgICAgICAgICAg ICAgIyBObyBzcGVjZmlsZSBmb3VuZCwgbm90aGluZyB0byBjaGVjawotKyAgICAgICAgICAgICAg ICByZXR1cm4KLSsKLSAgICAgICAgICAgICAjIGNvbnZlcnQgdG8gcmVsYXRpdmUgcGF0aAotICAg ICAgICAgICAgIHNwZWNmaWxlX3BhdGggPSBvcy5wYXRoLnJlbHBhdGgoc3BlY2ZpbGVfcGF0aF9h YnNvbHV0ZSwgc3RhcnQ9c2VsZi5wYXRoKQotICAgICAgICAgICAgIGNtZCA9IFsnc3BlY3Rvb2wn LCAnLWwnLCBvcy5wYXRoLmpvaW4oY2xvbmVfZGlyLCBzcGVjZmlsZV9wYXRoKV0KLS0tIAotMi4z OS4yCi0KCmRpZmYgLS1naXQgYS8wMDE2LUNoZWNrLXJlbW90ZS1maWxlLXdpdGgtY29ycmVjdC1o YXNoLnBhdGNoIGIvMDAxNi1DaGVjay1yZW1vdGUtZmlsZS13aXRoLWNvcnJlY3QtaGFzaC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJmOWVhYy4uMDAwMDAwMAotLS0gYS8w MDE2LUNoZWNrLXJlbW90ZS1maWxlLXdpdGgtY29ycmVjdC1oYXNoLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNjEgKzAsMCBAQAotRnJvbSA0YmQ0YWIxODIzYTdkNGJjMjE4YjgwNTdiN2YwMDgw OGZhYmY3NjQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0x1Ym9t PUMzPUFEcj0yMFNlZGw9QzM9QTE9QzU9OTk/PSA8bHNlZGxhckByZWRoYXQuY29tPgotRGF0ZTog V2VkLCA1IEFwciAyMDIzIDA5OjM0OjMzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMy82XSBDaGVj ayByZW1vdGUgZmlsZSB3aXRoIGNvcnJlY3QgaGFzaAotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRl bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogOGJpdAotCi1UaGUgY29uZmlndXJlZCBoYXNodHlwZSBkb2Vzbid0IGhhdmUgdG8gYWN0 dWFsbHkgYmUgdXNlZC4gVGhlcmUgY2FuIGJlCi1vbGQgcmVwb3MgdGhhdCBzdGlsbCB1c2UgbWQ1 LgotCi1KSVJBOiBSSEVMQ01QLTExNTA4Ci1TaWduZWQtb2ZmLWJ5OiBMdWJvbcOtciBTZWRsw6HF mSA8bHNlZGxhckByZWRoYXQuY29tPgotLS0tCi0gcHlycGtnL19faW5pdF9fLnB5ICB8IDMgKyst Ci0gcHlycGtnL2xvb2thc2lkZS5weSB8IDUgKysrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3B5cnBrZy9fX2luaXRf Xy5weSBiL3B5cnBrZy9fX2luaXRfXy5weQotaW5kZXggZDNhN2ExYy4uMGI5YTg2OSAxMDA2NDQK LS0tLSBhL3B5cnBrZy9fX2luaXRfXy5weQotKysrIGIvcHlycGtnL19faW5pdF9fLnB5Ci1AQCAt NDU0OCw3ICs0NTQ4LDggQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToKLSAgICAgICAgICAgICBm aWxlX2V4aXN0c19pbl9sb29rYXNpZGUgPSBzZWxmLmxvb2thc2lkZWNhY2hlLnJlbW90ZV9maWxl X2V4aXN0c19oZWFkKAotICAgICAgICAgICAgICAgICBzZWxmLm5zX3JlcG9fbmFtZSBpZiBzZWxm Lmxvb2thc2lkZV9uYW1lc3BhY2VkIGVsc2Ugc2VsZi5yZXBvX25hbWUsCi0gICAgICAgICAgICAg ICAgIGZpbGVuYW1lLAotLSAgICAgICAgICAgICAgICBoYXNoKQotKyAgICAgICAgICAgICAgICBo YXNoLAotKyAgICAgICAgICAgICAgICBoYXNodHlwZT1lbnRyeS5oYXNodHlwZSkKLSAgICAgICAg ICAgICBpZiBub3QgZmlsZV9leGlzdHNfaW5fbG9va2FzaWRlOgotICAgICAgICAgICAgICAgICBz ZWxmLmxvZy5lcnJvcignU291cmNlIGZpbGUgKG9yIHRhcmJhbGwpIFwne31cJyB3YXNuXCd0IHVw bG9hZGVkIHRvIHRoZSBsb29rYXNpZGUgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnY2FjaGUuIFB1c2ggb3BlcmF0aW9uIHdhcyBjYW5jZWxsZWQuJy5mb3JtYXQoZmlsZW5hbWUp KQotZGlmZiAtLWdpdCBhL3B5cnBrZy9sb29rYXNpZGUucHkgYi9weXJwa2cvbG9va2FzaWRlLnB5 Ci1pbmRleCBlY2JmMTJiLi4zZWZjZDg4IDEwMDY0NAotLS0tIGEvcHlycGtnL2xvb2thc2lkZS5w eQotKysrIGIvcHlycGtnL2xvb2thc2lkZS5weQotQEAgLTIwMCw3ICsyMDAsNyBAQCBjbGFzcyBD R0lMb29rYXNpZGVDYWNoZShvYmplY3QpOgotICAgICAgICAgaWYgbm90IHNlbGYuZmlsZV9pc192 YWxpZChvdXRmaWxlLCBoYXNoLCBoYXNodHlwZT1oYXNodHlwZSk6Ci0gICAgICAgICAgICAgcmFp c2UgRG93bmxvYWRFcnJvcignJXMgZmFpbGVkIGNoZWNrc3VtJyAlIGZpbGVuYW1lKQotIAotLSAg ICBkZWYgcmVtb3RlX2ZpbGVfZXhpc3RzX2hlYWQoc2VsZiwgbmFtZSwgZmlsZW5hbWUsIGhhc2gp OgotKyAgICBkZWYgcmVtb3RlX2ZpbGVfZXhpc3RzX2hlYWQoc2VsZiwgbmFtZSwgZmlsZW5hbWUs IGhhc2gsIGhhc2h0eXBlKToKLSAgICAgICAgICIiIlZlcmlmeSB3aGV0aGVyIGEgZmlsZSBleGlz dHMgb24gdGhlIGxvb2thc2lkZSBjYWNoZS4KLSAgICAgICAgIFVzZXMgYSBIVFRQIEhFQUQgcmVx dWVzdCBhbmQgZG9lc24ndCByZXF1aXJlIGF1dGhlbnRpY2F0aW9uLgotIAotQEAgLTIwOSwxMCAr MjA5LDExIEBAIGNsYXNzIENHSUxvb2thc2lkZUNhY2hlKG9iamVjdCk6Ci0gICAgICAgICAgICAg dGhlIHNlcnZlciBzaWRlIGV4cGVjdHMpLgotICAgICAgICAgOnBhcmFtIHN0ciBmaWxlbmFtZTog VGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8gY2hlY2sgZm9yLgotICAgICAgICAgOnBhcmFtIHN0ciBo YXNoOiBUaGUga25vd24gZ29vZCBoYXNoIG9mIHRoZSBmaWxlLgotKyAgICAgICAgOnBhcmFtIHN0 ciBoYXNodHlwZTogVGhlIHR5cGUgb2YgaGFzaAotICAgICAgICAgIiIiCi0gCi0gICAgICAgICB1 cmxlZF9maWxlID0gdXJsbGliLnBhcnNlLnF1b3RlKGZpbGVuYW1lKQotLSAgICAgICAgdXJsID0g c2VsZi5nZXRfZG93bmxvYWRfdXJsKG5hbWUsIHVybGVkX2ZpbGUsIGhhc2gsIHNlbGYuaGFzaHR5 cGUpCi0rICAgICAgICB1cmwgPSBzZWxmLmdldF9kb3dubG9hZF91cmwobmFtZSwgdXJsZWRfZmls ZSwgaGFzaCwgaGFzaHR5cGUgb3Igc2VsZi5oYXNodHlwZSkKLSAKLSAgICAgICAgIGMgPSBweWN1 cmwuQ3VybCgpCi0gICAgICAgICBjLnNldG9wdChweWN1cmwuVVJMLCB1cmwpCi0tLSAKLTIuMzku MgotCgpkaWZmIC0tZ2l0IGEvMDAxNy1BbGxvdy1lbXB0eS1jb21taXRzLXdoZW4tdXNlc19ycG1h dXRvc3BlYy5wYXRjaCBiLzAwMTctQWxsb3ctZW1wdHktY29tbWl0cy13aGVuLXVzZXNfcnBtYXV0 b3NwZWMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0OGNiYzkuLjAwMDAw MDAKLS0tIGEvMDAxNy1BbGxvdy1lbXB0eS1jb21taXRzLXdoZW4tdXNlc19ycG1hdXRvc3BlYy5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLUZyb20gZDJjNjNjMzIzMDY3MzI2 OTViN2ZlNWY5ZGRhM2RlZWNiNzg5OWY0ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IEppcmkgS3lqb3Zza3kgPGoxLmt5am92c2t5QGdtYWlsLmNvbT4KLURhdGU6IFNhdCwgMTUgQXBy IDIwMjMgMTM6NDY6MjEgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA0LzZdIEFsbG93IGVtcHR5IGNv bW1pdHMgd2hlbiBgdXNlc19ycG1hdXRvc3BlY2AKLQotVG8gYXZvaWQgc2l0dWF0aW9ucyB3aGVy ZSB0aGUgY29tbWFuZCBgY29tbWl0YCBieSBkZWZhdWx0IGRvZXMKLWNvbW1pdCB3aGVuIG5vIGNo YW5nZSBpbiByZXBvIGlzIHByZXNlbnQuCi0KLUZpeGVzOiAjNjc3Ci1KSVJBOiBSSEVMQ01QLTEx NDg5Ci1NZXJnZXM6IGh0dHBzOi8vcGFndXJlLmlvL3Jwa2cvcHVsbC1yZXF1ZXN0LzY4OAotCi1T aWduZWQtb2ZmLWJ5OiBKaXJpIEt5am92c2t5IDxqMS5reWpvdnNreUBnbWFpbC5jb20+Ci0tLS0K LSBweXJwa2cvX19pbml0X18ucHkgfCA0ICsrKy0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9weXJwa2cvX19pbml0X18ucHkg Yi9weXJwa2cvX19pbml0X18ucHkKLWluZGV4IDBiOWE4NjkuLjE4Nzc5NmUgMTAwNjQ0Ci0tLS0g YS9weXJwa2cvX19pbml0X18ucHkKLSsrKyBiL3B5cnBrZy9fX2luaXRfXy5weQotQEAgLTE4Njcs NyArMTg2Nyw5IEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6Ci0gCi0gICAgICAgICAjIGNvbnN0 cnVjdCB0aGUgZ2l0IGNvbW1hbmQKLSAgICAgICAgICMgV2UgZG8gdGhpcyB2aWEgc3VicHJvY2Vz cyBiZWNhdXNlIHRoZSBnaXQgbW9kdWxlIGlzIHRlcnJpYmxlLgotLSAgICAgICAgY21kID0gWydn aXQnLCAnY29tbWl0JywgJy0tYWxsb3ctZW1wdHknXQotKyAgICAgICAgY21kID0gWydnaXQnLCAn Y29tbWl0J10KLSsgICAgICAgIGlmIG5vdCBzZWxmLmlzX3JldGlyZWQoKSBhbmQgc2VsZi51c2Vz X3JwbWF1dG9zcGVjOgotKyAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tYWxsb3ctZW1wdHknKQot ICAgICAgICAgaWYgc2lnbm9mZjoKLSAgICAgICAgICAgICBjbWQuYXBwZW5kKCctcycpCi0gICAg ICAgICBpZiBzZWxmLnF1aWV0OgotLS0gCi0yLjM5LjIKLQoKZGlmZiAtLWdpdCBhLzAwMTgtQ29u ZmlnLWZpbGUtb3B0aW9uLXRvLXNraXAtdGhlLWhvb2stc2NyaXB0LWNyZWF0aW9uLnBhdGNoIGIv MDAxOC1Db25maWctZmlsZS1vcHRpb24tdG8tc2tpcC10aGUtaG9vay1zY3JpcHQtY3JlYXRpb24u cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhOWFhMDEuLjAwMDAwMDAKLS0t IGEvMDAxOC1Db25maWctZmlsZS1vcHRpb24tdG8tc2tpcC10aGUtaG9vay1zY3JpcHQtY3JlYXRp b24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotRnJvbSBiNDhlYjUwMmQz MzBlYzdhNTQzODA1ZDdmMTg1ZWEyNzBkZjc1YjkwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogT25kcmVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMTIgQXBy IDIwMjMgMDA6NDI6MDQgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA1LzZdIENvbmZpZyBmaWxlIG9w dGlvbiB0byBza2lwIHRoZSBob29rIHNjcmlwdCBjcmVhdGlvbgotCi1BIG5ldyBvcHRpb24gbmFt ZWQgInNraXBfaG9va3MiIGNhbiBiZSBhZGRlZCB0byB0aGUgY29uZmlnIGZpbGUKLShpbnRvIHRo ZSBtYWluIHNlY3Rpb24pLiBJdCBhY2NlcHRzIGJvb2xlYW4gdmFsdWVzIGFuZCB3aGVuCi10aGUg b3B0aW9uIGlzIHByZXNlbnQgYW5kIHNldCwgaXQgcHJldmVudHMgY3JlYXRpbmcgdGhlIHByZS1w dXNoCi1ob29rIHNjcmlwdCBkdXJpbmcgY2xvbmluZyBhIGRpc3QtZ2l0IHJlcG9zaXRvcnkuCi0K LUZpeGVzOiBodHRwczovL3BhZ3VyZS5pby9mZWRwa2cvaXNzdWUvNTE1Ci1KSVJBOiBSSEVMQ01Q LTExNDkxCi0KLVNpZ25lZC1vZmYtYnk6IE9uZHJlaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+ Ci0tLS0KLSBweXJwa2cvX19pbml0X18ucHkgfCAxNCArKysrKysrKysrLS0tLQotIHB5cnBrZy9j bGkucHkgICAgICB8IDEzICsrKysrKysrKysrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2Vy dGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9weXJwa2cvX19pbml0X18u cHkgYi9weXJwa2cvX19pbml0X18ucHkKLWluZGV4IDE4Nzc5NmUuLjdmZGRmZjcgMTAwNjQ0Ci0t LS0gYS9weXJwa2cvX19pbml0X18ucHkKLSsrKyBiL3B5cnBrZy9fX2luaXRfXy5weQotQEAgLTE1 NzEsNyArMTU3MSw3IEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6Ci0gCi0gICAgIGRlZiBjbG9u ZShzZWxmLCByZXBvLCBwYXRoPU5vbmUsIGJyYW5jaD1Ob25lLCBiYXJlX2Rpcj1Ob25lLAotICAg ICAgICAgICAgICAgYW5vbj1GYWxzZSwgdGFyZ2V0PU5vbmUsIGRlcHRoPU5vbmUsIGV4dHJhX2Fy Z3M9Tm9uZSwKLS0gICAgICAgICAgICAgIGNvbmZpZ19wYXRoPU5vbmUpOgotKyAgICAgICAgICAg ICAgY29uZmlnX3BhdGg9Tm9uZSwgc2tpcF9ob29rcz1Ob25lKToKLSAgICAgICAgICIiIkNsb25l IGEgcmVwbywgb3B0aW9uYWxseSBjaGVjayBvdXQgYSBzcGVjaWZpYyBicmFuY2guCi0gCi0gICAg ICAgICA6cGFyYW0gc3RyIHJlcG86IHRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIGNsb25l LgotQEAgLTE1ODksNiArMTU4OSw3IEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6Ci0gICAgICAg ICA6cGFyYW0gbGlzdCBleHRyYV9hcmdzOiBhZGRpdGlvbmFsIGFyZ3VtZW50cyB0aGF0IGFyZSBw YXNzZWQgdG8KLSAgICAgICAgICAgICB0aGUgY2xvbmUgY29tbWFuZC4KLSAgICAgICAgIDpwYXJh bSBzdHIgY29uZmlnX3BhdGg6IHBhdGggdG8gdGhlIGdsb2JhbCBjb25maWcgZmlsZQotKyAgICAg ICAgOnBhcmFtIGJvb2wgc2tpcF9ob29rczogc2tpcCBjcmVhdGlvbiBwcmUtcHVzaCBob29rIHNj cmlwdAotICAgICAgICAgIiIiCi0gCi0gICAgICAgICBpZiBub3QgcGF0aDoKLUBAIC0xNjQ0LDcg KzE2NDUsOCBAQCBjbGFzcyBDb21tYW5kcyhvYmplY3QpOgotIAotICAgICAgICAgaWYgbm90IGJh cmVfZGlyOgotICAgICAgICAgICAgIHNlbGYuX2FkZF9naXRfZXhjbHVkZXMob3MucGF0aC5qb2lu KHBhdGgsIGdpdF9kaXIpKQotLSAgICAgICAgICAgIHNlbGYuX2FkZF9naXRfcHJlX3B1c2hfaG9v ayhvcy5wYXRoLmpvaW4ocGF0aCwgZ2l0X2RpciksIGNvbmZpZ19wYXRoKQotKyAgICAgICAgICAg IGlmIG5vdCBza2lwX2hvb2tzOgotKyAgICAgICAgICAgICAgICBzZWxmLl9hZGRfZ2l0X3ByZV9w dXNoX2hvb2sob3MucGF0aC5qb2luKHBhdGgsIGdpdF9kaXIpLCBjb25maWdfcGF0aCkKLSAKLSAg ICAgICAgIHJldHVybgotIAotQEAgLTE2NjAsNyArMTY2Miw3IEBAIGNsYXNzIENvbW1hbmRzKG9i amVjdCk6Ci0gICAgICAgICByZXR1cm4gcmVwbwotIAotICAgICBkZWYgY2xvbmVfd2l0aF9kaXJz KHNlbGYsIHJlcG8sIGFub249RmFsc2UsIHRhcmdldD1Ob25lLCBkZXB0aD1Ob25lLAotLSAgICAg ICAgICAgICAgICAgICAgICAgIGV4dHJhX2FyZ3M9Tm9uZSwgY29uZmlnX3BhdGg9Tm9uZSk6Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfYXJncz1Ob25lLCBjb25maWdfcGF0aD1Ob25l LCBza2lwX2hvb2tzPU5vbmUpOgotICAgICAgICAgIiIiQ2xvbmUgYSByZXBvIG9sZCBzdHlsZSB3 aXRoIHN1YmRpcnMgZm9yIGVhY2ggYnJhbmNoLgotIAotICAgICAgICAgOnBhcmFtIHN0ciByZXBv OiBuYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIGNsb25lLgotQEAgLTE2NzMsNiArMTY3NSw3IEBA IGNsYXNzIENvbW1hbmRzKG9iamVjdCk6Ci0gICAgICAgICA6cGFyYW0gbGlzdCBleHRyYV9hcmdz OiBhZGRpdGlvbmFsIGFyZ3VtZW50cyB0aGF0IGFyZSBwYXNzZWQgdG8KLSAgICAgICAgICAgICB0 aGUgY2xvbmUgY29tbWFuZC4KLSAgICAgICAgIDpwYXJhbSBzdHIgY29uZmlnX3BhdGg6IHBhdGgg dG8gdGhlIGdsb2JhbCBjb25maWcgZmlsZQotKyAgICAgICAgOnBhcmFtIGJvb2wgc2tpcF9ob29r czogc2tpcCBjcmVhdGlvbiBwcmUtcHVzaCBob29rIHNjcmlwdAotICAgICAgICAgIiIiCi0gCi0g ICAgICAgICBzZWxmLl9wdXNoX3VybCA9IE5vbmUKLUBAIC0xNzMxLDcgKzE3MzQsOCBAQCBjbGFz cyBDb21tYW5kcyhvYmplY3QpOgotIAotICAgICAgICAgICAgICAgICAjIEFkZCBleGNsdWRlcwot ICAgICAgICAgICAgICAgICBzZWxmLl9hZGRfZ2l0X2V4Y2x1ZGVzKGJyYW5jaF9wYXRoKQotLSAg ICAgICAgICAgICAgICBzZWxmLl9hZGRfZ2l0X3ByZV9wdXNoX2hvb2soYnJhbmNoX3BhdGgsIGNv bmZpZ19wYXRoKQotKyAgICAgICAgICAgICAgICBpZiBub3Qgc2tpcF9ob29rczoKLSsgICAgICAg ICAgICAgICAgICAgIHNlbGYuX2FkZF9naXRfcHJlX3B1c2hfaG9vayhicmFuY2hfcGF0aCwgY29u ZmlnX3BhdGgpCi0gICAgICAgICAgICAgZXhjZXB0IChnaXQuR2l0Q29tbWFuZEVycm9yLCBPU0Vy cm9yKSBhcyBlOgotICAgICAgICAgICAgICAgICByYWlzZSBycGtnRXJyb3IoJ0NvdWxkIG5vdCBs b2NhbGx5IGNsb25lICVzIGZyb20gJXM6ICVzJwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJSAoYnJhbmNoLCByZXBvX3BhdGgsIGUpKQotQEAgLTE4MjAsNiArMTgyNCw4IEBAIGNs YXNzIENvbW1hbmRzKG9iamVjdCk6Ci0gICAgICAgICAgICAgIyBUaGlzIGZpbGUgd2FzIGdlbmVy YXRlZCBieSB7MH0gd2hlbiBjbG9uaW5nIHRoZSByZXBvc2l0b3J5LgotICAgICAgICAgICAgICMg WW91IGNhbiBlZGl0IGl0IHRvIHlvdXIgbGlraW5nIG9yIGRlbGV0ZSBjb21wbGV0ZWx5LiBJdCB3 aWxsIG5vdAotICAgICAgICAgICAgICMgYmUgcmVjcmVhdGVkLgotKyAgICAgICAgICAgICMgQ3Jl YXRpbmcgdGhpcyBmaWxlIGNhbiBiZSBhbHNvIHByZXZlbnRlZCBieSBhZGRpbmcgYW4gb3B0aW9u Ci0rICAgICAgICAgICAgIyAic2tpcF9ob29rcyA9IFRydWUiIGludG8gdGhlIHswfSdzIGNvbmZp ZyBmaWxlOyBbezB9XSBzZWN0aW9uLgotIAotICAgICAgICAgICAgIF9yZW1vdGU9IiQxIgotICAg ICAgICAgICAgIF91cmw9IiQyIgotZGlmZiAtLWdpdCBhL3B5cnBrZy9jbGkucHkgYi9weXJwa2cv Y2xpLnB5Ci1pbmRleCAzZDhjZTMzLi5hMWYzZjQ0IDEwMDY0NAotLS0tIGEvcHlycGtnL2NsaS5w eQotKysrIGIvcHlycGtnL2NsaS5weQotQEAgLTIxNzcsMTMgKzIxNzcsMjEgQEAgY2xhc3MgY2xp Q2xpZW50KG9iamVjdCk6Ci0gICAgICAgICAgICAgc2VsZi5sb2cud2FybmluZygiUmVwbyBuYW1l IHNob3VsZCd0IGNvbnRhaW4gJy5naXQnIHN1ZmZpeC4gIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkNvcnJlY3RpbmcgdGhlIHJlcG8gbmFtZTogJyVzJyIgJSByZXBvKQotIAotKyAg ICAgICAgc2tpcF9ob29rcyA9IE5vbmUKLSsgICAgICAgIGlmIHNlbGYuY29uZmlnLmhhc19vcHRp b24oc2VsZi5uYW1lLCAic2tpcF9ob29rcyIpOgotKyAgICAgICAgICAgIHRyeToKLSsgICAgICAg ICAgICAgICAgc2tpcF9ob29rcyA9IHNlbGYuY29uZmlnLmdldGJvb2xlYW4oc2VsZi5uYW1lLCAi c2tpcF9ob29rcyIpCi0rICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0rICAgICAgICAg ICAgICAgIHNlbGYubG9nLmVycm9yKCJFcnJvcjogY29uZmlnIGZpbGUgb3B0aW9uICdza2lwX2hv b2tzJyIpCi0rICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICBpZiBzZWxmLmFyZ3MuYnJh bmNoZXM6Ci0gICAgICAgICAgICAgc2VsZi5jbWQuY2xvbmVfd2l0aF9kaXJzKHNlbGYuYXJncy5y ZXBvWzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9uPXNlbGYu YXJncy5hbm9ueW1vdXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh cmdldD1zZWxmLmFyZ3MuY2xvbmVfdGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkZXB0aD1zZWxmLmFyZ3MuZGVwdGgsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV4dHJhX2FyZ3M9c2VsZi5leHRyYV9hcmdzLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfcGF0aD1zZWxmLmFyZ3MuY29uZmlnKQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfcGF0aD1zZWxmLmFy Z3MuY29uZmlnLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwX2hv b2tzPXNraXBfaG9va3MpCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHNlbGYuY21kLmNs b25lKHNlbGYuYXJncy5yZXBvWzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5j aD1zZWxmLmFyZ3MuYnJhbmNoLAotQEAgLTIxOTEsNyArMjE5OSw4IEBAIGNsYXNzIGNsaUNsaWVu dChvYmplY3QpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1zZWxmLmFyZ3Mu Y2xvbmVfdGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoPXNlbGYuYXJn cy5kZXB0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYV9hcmdzPXNlbGYuZXh0 cmFfYXJncywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfcGF0aD1zZWxmLmFy Z3MuY29uZmlnKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19wYXRoPXNlbGYu YXJncy5jb25maWcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9ob29rcz1za2lw X2hvb2tzKQotIAotICAgICBkZWYgY29tbWl0KHNlbGYpOgotICAgICAgICAgaWYgc2VsZi5hcmdz LndpdGhfY2hhbmdlbG9nIGFuZCBub3Qgc2VsZi5hcmdzLm1lc3NhZ2U6Ci0tLSAKLTIuMzkuMgot CgpkaWZmIC0tZ2l0IGEvMDAxOS1QcmUtcHVzaC1ob29rLXdvbi10LWNoZWNrLXByaXZhdGUtYnJh bmNoZXMucGF0Y2ggYi8wMDE5LVByZS1wdXNoLWhvb2std29uLXQtY2hlY2stcHJpdmF0ZS1icmFu Y2hlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzdhN2M1Mi4uMDAwMDAw MAotLS0gYS8wMDE5LVByZS1wdXNoLWhvb2std29uLXQtY2hlY2stcHJpdmF0ZS1icmFuY2hlcy5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLUZyb20gNDU1M2RhMzY0ZDdkOGE5 NzRhYjBjMDg4MzRlZTBhNTQzMjBkYTJjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IE9uZHJlaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDE4IEFwciAyMDIz IDE2OjA2OjQzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggNi82XSBQcmUtcHVzaCBob29rIHdvbid0 IGNoZWNrIHByaXZhdGUgYnJhbmNoZXMKLQotVGhlIHByZS1wdXNoIGhvb2sgc2NyaXB0IHdhcyBm YWlsaW5nIHRoZSB3aGVuIHVzZXIgdHJpZWQgdG8gcHVzaAotYSBwcml2YXRlIGJyYW5jaC4gSXQg cmVxdWlyZWQgdXNpbmcgdGhlIC0tcmVsZWFzZSBhcmd1bWVudCB3aXRoCi10aGUgcHJlLXB1c2gt Y2hlY2sgY29tbWFuZCBhbmQgcGFzc2luZyBhZGRpdGlvbmFsIGFyZ3VtZW50cyBpbnRvCi10aGUg aG9vayBzY3JpcHQuIFRoYXQgd2FzIGZvdW5kIHVucmVsaWFibGUgYW5kIHByaXZhdGUgYnJhbmNo ZXMKLXdvbid0IGJlIGNoZWNrZWQuCi0KLUZpeGVzOiAjNjgzCi1KSVJBOiBSSEVMQ01QLTExNTI4 Ci0KLVNpZ25lZC1vZmYtYnk6IE9uZHJlaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+Ci0tLS0K LSBweXJwa2cvX19pbml0X18ucHkgfCAxMiArKysrKysrKystLS0KLSAxIGZpbGUgY2hhbmdlZCwg OSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHlycGtnL19f aW5pdF9fLnB5IGIvcHlycGtnL19faW5pdF9fLnB5Ci1pbmRleCA3ZmRkZmY3Li4zZjkzNGQzIDEw MDY0NAotLS0tIGEvcHlycGtnL19faW5pdF9fLnB5Ci0rKysgYi9weXJwa2cvX19pbml0X18ucHkK LUBAIC00NDg5LDkgKzQ0ODksMTUgQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToKLSAgICAgICAg ICAgICBzcGVjZmlsZV9wYXRoID0gb3MucGF0aC5yZWxwYXRoKHNwZWNmaWxlX3BhdGhfYWJzb2x1 dGUsIHN0YXJ0PXNlbGYucGF0aCkKLSAgICAgICAgICAgICBjbWQgPSBbJ3NwZWN0b29sJywgJy1s Jywgb3MucGF0aC5qb2luKGNsb25lX2Rpciwgc3BlY2ZpbGVfcGF0aCldCi0gICAgICAgICAgICAg IyBleHRyYWN0IGp1c3QgJy0tZGVmaW5lJyBhcmd1bWVudHMgZnJvbSBycG1kZWZpbmVzCi0tICAg ICAgICAgICAgZm9yIG9wdCwgdmFsIGluIHppcChzZWxmLnJwbWRlZmluZXNbMDo6Ml0sIHNlbGYu cnBtZGVmaW5lc1sxOjoyXSk6Ci0tICAgICAgICAgICAgICAgIGlmIG9wdCA9PSAnLS1kZWZpbmUn OgotLSAgICAgICAgICAgICAgICAgICAgY21kLmV4dGVuZCgob3B0LCB2YWwpKQotKyAgICAgICAg ICAgIHRyeToKLSsgICAgICAgICAgICAgICAgZm9yIG9wdCwgdmFsIGluIHppcChzZWxmLnJwbWRl ZmluZXNbMDo6Ml0sIHNlbGYucnBtZGVmaW5lc1sxOjoyXSk6Ci0rICAgICAgICAgICAgICAgICAg ICBpZiBvcHQgPT0gJy0tZGVmaW5lJzoKLSsgICAgICAgICAgICAgICAgICAgICAgICBjbWQuZXh0 ZW5kKChvcHQsIHZhbCkpCi0rICAgICAgICAgICAgZXhjZXB0IHJwa2dFcnJvcjoKLSsgICAgICAg ICAgICAgICAgIyB0aGlzIGV4Y2VwdGlvbiB3YXMgY2F1c2VkIHByb2JhYmx5IGJ5IHVzaW5nIGEg cHJpdmF0ZSBicmFuY2gKLSsgICAgICAgICAgICAgICAgc2VsZi5sb2cud2FybmluZygnVGhlIHBy ZS1wdXNoIHNjcmlwdCBjYW5cJ3QgY2hlY2sgcHJpdmF0ZSBicmFuY2hlcy4gJwotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdQdXNoIG9wZXJhdGlvbiBjb250aW51ZXMuJykKLSsg ICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICAgcmV0LCBzdGRvdXQsIF8gPSBzZWxm Ll9ydW5fY29tbWFuZChjbWQsIGN3ZD1jbG9uZV9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdGV4dD1UcnVlLCByZXR1cm5fc3Rkb3V0 PVRydWUpCi0gICAgICAgICAgICAgaWYgcmV0ICE9IDA6Ci0tLSAKLTIuMzkuMgotCgpkaWZmIC0t Z2l0IGEvZGVhZC5wYWNrYWdlIGIvZGVhZC5wYWNrYWdlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjUyMDRhODQKLS0tIC9kZXYvbnVsbAorKysgYi9kZWFkLnBhY2thZ2UKQEAg LTAsMCArMSBAQAorT3JwaGFuZWQgZm9yIDYrIHdlZWtzCgpkaWZmIC0tZ2l0IGEvcmVtb3ZlLWtv amktYW5kLXJwbS1weS1pbnN0YWxsZXItZnJvbS1yZXF1aXJlcy5wYXRjaCBiL3JlbW92ZS1rb2pp LWFuZC1ycG0tcHktaW5zdGFsbGVyLWZyb20tcmVxdWlyZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDkwYWRlZTAuLjAwMDAwMDAKLS0tIGEvcmVtb3ZlLWtvamktYW5kLXJw bS1weS1pbnN0YWxsZXItZnJvbS1yZXF1aXJlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI5 ICswLDAgQEAKLUZyb20gZWMwYzhiMzY4ZmQ1NjBiMzE5YzY2MDNmMzVkZGE4MDNmZTRiMmU5OSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERvbWluaWsgUnVtaWFuIDxkcnVtaWFuQHJl ZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDI0IEF1ZyAyMDIxIDEyOjUxOjE3ICswMjAwCi1TdWJqZWN0 OiBbUEFUQ0hdIFtQQVRDSF0gcmVtb3ZlIGtvamkgYW5kIHJwbS1weS1pbnN0YWxsZXIgZnJvbSBy ZXF1aXJlcwotCi1TaWduZWQtb2ZmLWJ5OiBEb21pbmlrIFJ1bWlhbiA8ZHJ1bWlhbkByZWRoYXQu Y29tPgotLS0tCi0gc2V0dXAucHkgfCA1ICsrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0 aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc2V0dXAucHkgYi9zZXR1cC5weQotaW5kZXggOWM2ZDg4 MS4uOGM5MmFhZSAxMDA3NTUKLS0tLSBhL3NldHVwLnB5Ci0rKysgYi9zZXR1cC5weQotQEAgLTM0 LDYgKzM0LDExIEBAIGluc3RhbGxfcmVxdWlyZXMsIGRlcF9saW5rcyA9IHJlYWRfcmVxdWlyZW1l bnRzKHB5cGlfdHh0KQotIHRlc3RzX3JlcXVpcmUsIHRlc3RfZGVwX2xpbmtzID0gcmVhZF9yZXF1 aXJlbWVudHModGVzdF9weXBpX3R4dCkKLSBkZXBfbGlua3MgKz0gdGVzdF9kZXBfbGlua3MKLSAK LStpbnN0YWxsX3JlcXVpcmVzID0gWwotKyAgICBpdGVtIGZvciBpdGVtIGluIGluc3RhbGxfcmVx dWlyZXMKLSsgICAgaWYgbm90IGl0ZW0uc3RhcnRzd2l0aCgna29qaScpIGFuZCBub3QgaXRlbS5z dGFydHN3aXRoKCdycG0tcHktaW5zdGFsbGVyJykKLStdCi0rCi0gcmVhZG1lX3JzdCA9IG9zLnBh dGguam9pbihzZXR1cF9weV9wYXRoLCAnUkVBRE1FLnJzdCcpCi0gd2l0aCBvcGVuKHJlYWRtZV9y c3QsICdyJykgYXMgcmVhZG1lOgotICAgICBsb25nX2Rlc2NyaXB0aW9uID0gcmVhZG1lLnJlYWQo KS5yc3RyaXAoKQotLS0gCi0yLjMxLjEKLQoKZGlmZiAtLWdpdCBhL3Jwa2cucnBtbGludHJjIGIv cnBrZy5ycG1saW50cmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiMzRiYmUuLjAw MDAwMDAKLS0tIGEvcnBrZy5ycG1saW50cmMKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK LWZyb20gQ29uZmlnIGltcG9ydCAqCi0KLWFkZEZpbHRlcignL3Vzci9zaGFyZS9ycGtnL2V4YW1w bGVzL2NsaS8nKQoKZGlmZiAtLWdpdCBhL3Jwa2cuc3BlYyBiL3Jwa2cuc3BlYwpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNjBkOTlkMS4uMDAwMDAwMAotLS0gYS9ycGtnLnNwZWMKKysr IC9kZXYvbnVsbApAQCAtMSwxNDk4ICswLDAgQEAKLU5hbWU6ICAgICAgICAgICBycGtnCi1WZXJz aW9uOiAgICAgICAgMS42NgotUmVsZWFzZTogICAgICAgIDYlez9kaXN0fQotCi1TdW1tYXJ5OiAg ICAgICAgUHl0aG9uIGxpYnJhcnkgZm9yIGludGVyYWN0aW5nIHdpdGggcnBtK2dpdAotTGljZW5z ZTogICAgICAgIEdQTHYyKyBhbmQgTEdQTHYyCi1VUkw6ICAgICAgICAgICAgaHR0cHM6Ly9wYWd1 cmUuaW8vcnBrZwotQnVpbGRBcmNoOiAgICAgIG5vYXJjaAotU291cmNlMDogICAgICAgIGh0dHBz Oi8vcGFndXJlLmlvL3JlbGVhc2VzL3Jwa2cvJXtuYW1lfS0le3ZlcnNpb259LnRhci5negotCi0j IFJIRUw3IGlzIGN1cnJlbnRseSB0aGUgb25seSByZWxlYXNlIHRoYXQgaXMgYnVpbHQgZm9yIFB5 dGhvbiAyLgotJWlmIDAlez9yaGVsfSA9PSA3Ci0lZ2xvYmFsIHdpdGhfcHl0aG9uMiAxCi0lZ2xv YmFsIHdpdGhfcHl0aG9uMyAwCi0jIHNpdGVsaWIgZm9yIG5vYXJjaCBwYWNrYWdlcywgc2l0ZWFy Y2ggZm9yIG90aGVycyAocmVtb3ZlIHRoZSB1bm5lZWRlZCBvbmUpCi0leyE/X19weXRob24yOiAl Z2xvYmFsIF9fcHl0aG9uMiAle19fcHl0aG9ufX0KLSV7IT9weXRob24yX3NpdGVsaWI6ICVnbG9i YWwgcHl0aG9uMl9zaXRlbGliICUoJXtfX3B5dGhvbjJ9IC1jICJmcm9tIGRpc3R1dGlscy5zeXNj b25maWcgaW1wb3J0IGdldF9weXRob25fbGliOyBwcmludChnZXRfcHl0aG9uX2xpYigpKSIpfQot JWVsc2UKLSMgRGlzYWJsZSBweXRob24yIGJ1aWxkIGJ5IGRlZmF1bHQKLSVnbG9iYWwgd2l0aF9w eXRob24yIDAKLSMgRW5hYmxlIHB5dGhvbjMgYnVpbGQgYnkgZGVmYXVsdAotJWdsb2JhbCB3aXRo X3B5dGhvbjMgMQotJWVuZGlmCi0KLQotIyBGaXggZm9yIGJ1ZyAxNTc5MzY3Ci0jIER1ZSB0byBo dHRwczovL3BhZ3VyZS5pby9rb2ppL2lzc3VlLzkxMiwgcHl0aG9uWzIzXS1rb2ppIHBhY2thZ2Ug ZG9lcyBub3QKLSMgaGF2ZSBlZ2dpbmZvLgotIyBycG0tcHktaW5zdGFsbGVyIGlzIHJlcXVpcmVk IGFzIGEgcHJveHkgdG8gaW5zdGFsbCBSUE0gcHl0aG9uIGJpbmRpbmcKLSMgbGlicmFyeSwgc28g cnBtIGlzIHRoZSBhY3R1YWwgcmVxdWlyZW1lbnQgdGhhdCBtdXN0IGJlIHByZXNlbnQgaW4gdGhl Ci0jIHJlcXVpcmVzLnR4dC4gQnV0LCBycGtnIGhhcyB0byB3b3JrIGluIGFsbCBhY3RpdmUgRmVk b3JhIGFuZCBFUEVMIHJlbGVhc2VzLAotIyBhbmQgdGhlcmUgaXMgb25seSBvbGQgcnBtLXB5dGhv biBwYWNrYWdlIGluIEVMNiBhbmQgNywgc28ganVzdCBzaW1wbHkgdG8KLSMgcmVtb3ZlIHJwbS1w eS1pbnN0YWxsZXIgZm9yIG5vdy4KLVBhdGNoMDogICAgICAgICByZW1vdmUta29qaS1hbmQtcnBt LXB5LWluc3RhbGxlci1mcm9tLXJlcXVpcmVzLnBhdGNoCi1QYXRjaDE6ICAgICAgICAgMDAwMS1E by1ub3QtdXNlLXB5dGVzdC1yZWxhdGVkLWRlcGVuZGVuY2llcy10ZW1wb3JhcmlseS5wYXRjaAot UGF0Y2gyOiAgICAgICAgIDAwMDItUmVtb3ZlLXB5dGVzdC1jb3ZlcmFnZS1leGVjdXRpb24ucGF0 Y2gKLSVpZiAwJXs/d2l0aF9weXRob24yfQotUGF0Y2gzOiAgICAgICAgIDAwMDMtUmVtb3ZlLUVu dmlyb25tZW50LU1hcmtlcnMtc3ludGF4LnBhdGNoCi0lZW5kaWYKLVBhdGNoNDogICAgICAgICAw MDA0LVByb2Nlc3Mtc291cmNlLVVSTHMtd2l0aC1mcmFnbWVudC1pbi1wcmUtcHVzaC1ob29rLnBh dGNoCi1QYXRjaDU6ICAgICAgICAgMDAwNS1jb250YWluZXItYnVpbGQtdXBkYXRlLXNpZ25pbmct aW50ZW50LWhlbHAtZm9yLU9TQlMtLnBhdGNoCi1QYXRjaDY6ICAgICAgICAgMDAwNi1Eby1ub3Qt Z2VuZXJhdGUtcHJlLXB1c2gtaG9vay1zY3JpcHQtaW4tc29tZS1jYXNlcy5wYXRjaAotUGF0Y2g3 OiAgICAgICAgIDAwMDctTW9yZS1yb2J1c3Qtc3BlYy1maWxlLXByZXNlbmNlLWNoZWNraW5nLnBh dGNoCi1QYXRjaDg6ICAgICAgICAgMDAwOC1VcGRhdGUtdG8tc3BlYy1maWxlLXByZXNlbmNlLWNo ZWNraW5nLnBhdGNoCi1QYXRjaDk6ICAgICAgICAgMDAwOS1BZGQtbW9yZS1pbmZvcm1hdGlvbi1h Ym91dC1wcmUtcHVzaC1ob29rLnBhdGNoCi1QYXRjaDEwOiAgICAgICAgMDAxMC1wcmUtcHVzaC1j aGVjay1oYXZlLXRvLXVzZS1zcGVjdG9vbC13aXRoLWRlZmluZS5wYXRjaAotUGF0Y2gxMTogICAg ICAgIDAwMTEtQS1IRUFELXF1ZXJ5LWludG8tYS1sb29rYXNpZGUtY2FjaGUucGF0Y2gKLVBhdGNo MTI6ICAgICAgICAwMDEyLXByZS1wdXNoLWhvb2stc2NyaXB0LWNvbnRhaW5zLWEtdXNlci1zLWNv bmZpZy5wYXRjaAotUGF0Y2gxMzogICAgICAgIDAwMTMtRml4LXVuaXR0ZXN0cy1mb3ItY2xvbmUt YW5kLXByZS1wdXNoLWhvb2stc2NyaXB0LnBhdGNoCi1QYXRjaDE0OiAgICAgICAgMDAxNC1pbXBv cnRfc3JwbS1hbGxvdy1wcmUtZ2VuZXJhdGVkLXNycG1zLnBhdGNoCi1QYXRjaDE1OiAgICAgICAg MDAxNS1JZ25vcmUtbWlzc2luZy1zcGVjLWZpbGUtaW4tcHJlLXB1c2gtaG9vay5wYXRjaAotUGF0 Y2gxNjogICAgICAgIDAwMTYtQ2hlY2stcmVtb3RlLWZpbGUtd2l0aC1jb3JyZWN0LWhhc2gucGF0 Y2gKLVBhdGNoMTc6ICAgICAgICAwMDE3LUFsbG93LWVtcHR5LWNvbW1pdHMtd2hlbi11c2VzX3Jw bWF1dG9zcGVjLnBhdGNoCi1QYXRjaDE4OiAgICAgICAgMDAxOC1Db25maWctZmlsZS1vcHRpb24t dG8tc2tpcC10aGUtaG9vay1zY3JpcHQtY3JlYXRpb24ucGF0Y2gKLVBhdGNoMTk6ICAgICAgICAw MDE5LVByZS1wdXNoLWhvb2std29uLXQtY2hlY2stcHJpdmF0ZS1icmFuY2hlcy5wYXRjaAotCi0l ZGVzY3JpcHRpb24KLVB5dGhvbiBsaWJyYXJ5IGZvciBpbnRlcmFjdGluZyB3aXRoIHJwbStnaXQK LQotCi0laWYgMCV7P3dpdGhfcHl0aG9uMn0KLSVwYWNrYWdlIC1uIHB5dGhvbjItJXtuYW1lfQot U3VtbWFyeTogICAgICAgICV7c3VtbWFyeX0KLSV7P3B5dGhvbl9wcm92aWRlOiVweXRob25fcHJv dmlkZSBweXRob24yLSV7bmFtZX19Ci0KLUJ1aWxkUmVxdWlyZXM6ICBweXRob24yLWRldmVsCi0K LSMgV2UgYnIgdGhlc2UgdGhpbmdzIGZvciBtYW4gcGFnZSBnZW5lcmF0aW9uIGR1ZSB0byBpbXBv cnRzCi1CdWlsZFJlcXVpcmVzOiAgcnBtbGludAotQnVpbGRSZXF1aXJlczogIHJwbWRldnRvb2xz Ci1CdWlsZFJlcXVpcmVzOiAgcHl0aG9uMi1rb2ppID49IDEuMjEKLUJ1aWxkUmVxdWlyZXM6ICBw eXRob24yLWNjY29sdXRpbHMKLUJ1aWxkUmVxdWlyZXM6ICBQeVlBTUwKLUJ1aWxkUmVxdWlyZXM6 ICBHaXRQeXRob24KLUJ1aWxkUmVxdWlyZXM6ICBweXRob24tcHljdXJsCi1CdWlsZFJlcXVpcmVz OiAgcHl0aG9uLXJlcXVlc3RzCi1CdWlsZFJlcXVpcmVzOiAgcHl0aG9uLXJlcXVlc3RzLWtlcmJl cm9zCi1CdWlsZFJlcXVpcmVzOiAgcHl0aG9uLXNpeCA+PSAxLjkuMAotQnVpbGRSZXF1aXJlczog IHB5dGhvbjItYXJnY29tcGxldGUKLUJ1aWxkUmVxdWlyZXM6ICBweXRob24yLW1vY2sKLUJ1aWxk UmVxdWlyZXM6ICBweXRob24yLW5vc2UKLUJ1aWxkUmVxdWlyZXM6ICBweXRob24yLXNldHVwdG9v bHMKLQotUmVxdWlyZXM6ICAgICAgIG1vY2sKLVJlcXVpcmVzOiAgICAgICByZWRoYXQtcnBtLWNv bmZpZwotUmVxdWlyZXM6ICAgICAgIHJwbS1idWlsZAotUmVxdWlyZXM6ICAgICAgIHJwbWxpbnQK LVJlcXVpcmVzOiAgICAgICBycG1kZXZ0b29scwotUmVxdWlyZXM6ICAgICAgIHB5dGhvbjItYXJn Y29tcGxldGUKLVJlcXVpcmVzOiAgICAgICBweXRob24yLWNjY29sdXRpbHMKLVJlcXVpcmVzOiAg ICAgICBweXRob24yLWtvamkgPj0gMS4yMQotUmVxdWlyZXM6ICAgICAgIFB5WUFNTAotUmVxdWly ZXM6ICAgICAgIEdpdFB5dGhvbiA+PSAwLjIuMAotUmVxdWlyZXM6ICAgICAgIHB5dGhvbi1weWN1 cmwKLVJlcXVpcmVzOiAgICAgICBweXRob24tcmVxdWVzdHMKLVJlcXVpcmVzOiAgICAgICBweXRo b24tcmVxdWVzdHMta2VyYmVyb3MKLVJlcXVpcmVzOiAgICAgICBweXRob24tc2l4ID49IDEuOS4w Ci1SZXF1aXJlczogICAgICAgcnBtLXB5dGhvbgotCi1SZXF1aXJlczogICAgICAgJXtuYW1lfS1j b21tb24gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLQotQ29uZmxpY3RzOiAgICAgIGZlZHBrZyA8 IDEuMjYKLQotIyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggY2FwYWJpbGl0eSBweXJwa2cK LVByb3ZpZGVzOiBweXJwa2cgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLSMgQWxsIG9sZCB2ZXJz aW9ucyBiZWZvcmUgMS40OS0xIHNob3VsZCBub3QgYmUgdXNlZCBhbnltb3JlCi1PYnNvbGV0ZXM6 IHB5cnBrZyA8IDEuNDktMgotCi0KLSVkZXNjcmlwdGlvbiAtbiBweXRob24yLSV7bmFtZX0KLUEg cHl0aG9uIGxpYnJhcnkgZm9yIG1hbmFnaW5nIFJQTSBwYWNrYWdlIHNvdXJjZXMgaW4gYSBnaXQg cmVwb3NpdG9yeS4KLSVlbmRpZgotIyBlbmQgb2YgcHl0aG9uMiBzZWN0aW9uCi0KLQotJWlmIDAl ez93aXRoX3B5dGhvbjN9Ci0lcGFja2FnZSAtbiBweXRob24zLSV7bmFtZX0KLVN1bW1hcnk6ICAg ICAgICAle3N1bW1hcnl9Ci0lez9weXRob25fcHJvdmlkZTolcHl0aG9uX3Byb3ZpZGUgcHl0aG9u My0le25hbWV9fQotIyBPYnNvbGV0ZSBweXRob24yLXJwa2cgKHJlbW92ZSBhZnRlciBGZWRvcmEy OSkKLSVpZiAwJXs/d2l0aF9weXRob24yfSA9PSAwCi1PYnNvbGV0ZXM6ICAgICAgcHl0aG9uMi1y cGtnIDwgJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0lZW5kaWYKLQotQnVpbGRSZXF1aXJlczogIHB5 dGhvbjMtZGV2ZWwKLUJ1aWxkUmVxdWlyZXM6ICBweXRob24zLUdpdFB5dGhvbgotQnVpbGRSZXF1 aXJlczogIHB5dGhvbjMta29qaSA+PSAxLjI0Ci0laWYgMCV7P3JoZWx9Ci1CdWlsZFJlcXVpcmVz OiAgcHl0aG9uMy1nb2JqZWN0LWJhc2UKLUJ1aWxkUmVxdWlyZXM6ICBsaWJtb2R1bGVtZAotQnVp bGRSZXF1aXJlczogIHB5dGhvbjMtcmVxdWVzdHMta2VyYmVyb3MKLSVlbHNlCi1CdWlsZFJlcXVp cmVzOiAgcHl0aG9uMy1saWJtb2R1bGVtZAotJWVuZGlmCi1CdWlsZFJlcXVpcmVzOiAgcHl0aG9u My1hcmdjb21wbGV0ZQotQnVpbGRSZXF1aXJlczogIHB5dGhvbjMtY2Njb2x1dGlscwotQnVpbGRS ZXF1aXJlczogIHB5dGhvbjMtb3BlbmlkYy1jbGllbnQKLUJ1aWxkUmVxdWlyZXM6ICBweXRob24z LXB5Y3VybAotQnVpbGRSZXF1aXJlczogIHB5dGhvbjMtc2l4ID49IDEuOS4wCi1CdWlsZFJlcXVp cmVzOiAgcHl0aG9uMy1yZXF1ZXN0cwotQnVpbGRSZXF1aXJlczogIHB5dGhvbjMtc2V0dXB0b29s cwotQnVpbGRSZXF1aXJlczogIHB5dGhvbjMtcHl0ZXN0Ci1CdWlsZFJlcXVpcmVzOiAgcHl0aG9u My1QeVlBTUwKLUJ1aWxkUmVxdWlyZXM6ICBycG1saW50Ci1CdWlsZFJlcXVpcmVzOiAgcnBtZGV2 dG9vbHMKLQotUmVxdWlyZXM6ICAgICAgIG1vY2sKLVJlcXVpcmVzOiAgICAgICByZWRoYXQtcnBt LWNvbmZpZwotUmVxdWlyZXM6ICAgICAgIHJwbS1idWlsZAotUmVxdWlyZXM6ICAgICAgIHJwbWxp bnQKLVJlcXVpcmVzOiAgICAgICBycG1kZXZ0b29scwotCi1SZXF1aXJlczogICAgICAgcHl0aG9u My1hcmdjb21wbGV0ZQotUmVxdWlyZXM6ICAgICAgIHB5dGhvbjMtR2l0UHl0aG9uID49IDAuMi4w Ci1SZXF1aXJlczogICAgICAgcHl0aG9uMy1jY2NvbHV0aWxzCi1SZXF1aXJlczogICAgICAgcHl0 aG9uMy1rb2ppID49IDEuMjQKLSVpZiAwJXs/cmhlbH0KLVJlcXVpcmVzOiAgICAgICBweXRob24z LWdvYmplY3QtYmFzZQotUmVxdWlyZXM6ICAgICAgIGxpYm1vZHVsZW1kCi1SZXF1aXJlczogICAg ICAgcHl0aG9uMy1yZXF1ZXN0cy1rZXJiZXJvcwotJWVsc2UKLVJlcXVpcmVzOiAgICAgICBweXRo b24zLWxpYm1vZHVsZW1kCi1SZXF1aXJlczogICAgICAgcHl0aG9uMy1ycG1hdXRvc3BlYwotJWVu ZGlmCi1SZXF1aXJlczogICAgICAgcHl0aG9uMy1ycG0KLVJlcXVpcmVzOiAgICAgICBweXRob24z LXB5Y3VybAotUmVxdWlyZXM6ICAgICAgIHB5dGhvbjMtc2l4ID49IDEuOS4wCi1SZXF1aXJlczog ICAgICAgcHl0aG9uMy1QeVlBTUwKLQotUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tY29tbW9uID0g JXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0KLUNvbmZsaWN0czogICAgICBmZWRwa2cgPCAxLjI2Ci0K LSVkZXNjcmlwdGlvbiAtbiBweXRob24zLSV7bmFtZX0KLUEgcHl0aG9uIGxpYnJhcnkgZm9yIG1h bmFnaW5nIFJQTSBwYWNrYWdlIHNvdXJjZXMgaW4gYSBnaXQgcmVwb3NpdG9yeS4KLSVlbmRpZgot IyBlbmQgb2YgcHl0aG9uMyBzZWN0aW9uCi0KLQotJXBhY2thZ2UgY29tbW9uCi1TdW1tYXJ5OiAg ICAgICAgQ29tbW9uIGZpbGVzIGZvciAle25hbWV9Ci0KLSMgRmlsZXMgd2VyZSBtb3ZlZCBmcm9t IHB5dGhvbjItcnBrZyBpbiB0aGF0IHZlcnNpb24KLUNvbmZsaWN0czogICAgICBweXRob24yLXJw a2cgPCAxLjUyLTIKLUNvbmZsaWN0czogICAgICBweXJwa2cgPCAxLjUyLTIKLQotJWRlc2NyaXB0 aW9uIGNvbW1vbgotQ29tbW9uIGZpbGVzIGZvciBweXRob24yLSV7bmFtZX0gYW5kIHB5dGhvbjMt JXtuYW1lfS4KLQotCi0lcHJlcAotJWF1dG9zZXR1cCAtcDEKLQotIyBSZW1vdmVzIHNlY3Rpb24g ZnJvbSBzZXR1cC5weSB0aGF0IGlzIHJlbGV2YW50IG9ubHkgZm9yIHBpcCBhbmQKLSMgaXMgbm90 IGNvbXBhdGlibGUgd2l0aCBpbiBSSEVMLTYgdG9vbHMKLXNlZCAtaSAtbiAnL2V4dHJhc19yZXF1 aXJlLywvfS8hcCcgc2V0dXAucHkKLQotJWJ1aWxkCi0laWYgMCV7P3dpdGhfcHl0aG9uMn0KLSV7 X19weXRob24yfSBzZXR1cC5weSBidWlsZAotJWVuZGlmCi0KLSVpZiAwJXs/d2l0aF9weXRob24z fQotJXB5M19idWlsZAotJWVuZGlmCi0KLQotJWluc3RhbGwKLSVpZiAwJXs/d2l0aF9weXRob24y fQotJXtfX3B5dGhvbjJ9IHNldHVwLnB5IGluc3RhbGwgLU8xIC0tc2tpcC1idWlsZCAtLXJvb3Qg JFJQTV9CVUlMRF9ST09UCi0lZW5kaWYKLQotJWlmIDAlez93aXRoX3B5dGhvbjN9Ci0lcHkzX2lu c3RhbGwKLSVlbmRpZgotCi0KLSMgQ3JlYXRlIGNvbmZpZ3VyYXRpb24gZGlyZWN0b3J5IHRvIGhv bGRpbmcgZG93bnN0cmVhbSBjbGllbnRzIGNvbmZpZyBmaWxlcwotIyB0aGF0IGFyZSBidWlsdCBv biB0b3Agb2YgcnBrZwotJXtfX2luc3RhbGx9IC1kICRSUE1fQlVJTERfUk9PVCV7X3N5c2NvbmZk aXJ9L3Jwa2cKLQotZXhhbXBsZV9jbGlfZGlyPSRSUE1fQlVJTERfUk9PVCV7X2RhdGFkaXJ9LyV7 bmFtZX0vZXhhbXBsZXMvY2xpCi0le19faW5zdGFsbH0gLWQgJGV4YW1wbGVfY2xpX2RpcgotCi0j IEluc3RhbGwgZXhhbXBsZSBDTEkgdG8gcnBrZyBvd24gZGF0YSBkaXJlY3RvcnkKLSV7X19pbnN0 YWxsfSAtZCAke2V4YW1wbGVfY2xpX2Rpcn0le19iaW5kaXJ9Ci0le19faW5zdGFsbH0gLWQgJHtl eGFtcGxlX2NsaV9kaXJ9JXtfc3lzY29uZmRpcn0vYmFzaF9jb21wbGV0aW9uLmQKLSV7X19pbnN0 YWxsfSAtZCAke2V4YW1wbGVfY2xpX2Rpcn0le19zeXNjb25mZGlyfS9ycGtnCi0KLSV7X19pbnN0 YWxsfSAtcCAtbSAwNjQ0IGJpbi9ycGtnICR7ZXhhbXBsZV9jbGlfZGlyfSV7X2JpbmRpcn0KLSV7 X19pbnN0YWxsfSAtcCAtbSAwNjQ0IGV0Yy9iYXNoX2NvbXBsZXRpb24uZC9ycGtnLmJhc2ggJHtl eGFtcGxlX2NsaV9kaXJ9JXtfc3lzY29uZmRpcn0vYmFzaF9jb21wbGV0aW9uLmQKLSV7X19pbnN0 YWxsfSAtcCAtbSAwNjQ0IGV0Yy9ycGtnL3Jwa2cuY29uZiAke2V4YW1wbGVfY2xpX2Rpcn0le19z eXNjb25mZGlyfS9ycGtnCi0KLQotJWNoZWNrCi0laWYgMCV7P3dpdGhfcHl0aG9uMn0KLSV7X19w eXRob24yfSAtbSBub3NlIHRlc3RzCi0lZW5kaWYKLQotJWlmIDAlez93aXRoX3B5dGhvbjN9Ci0l cHl0ZXN0Ci0lZW5kaWYKLQotCi0laWYgMCV7P3dpdGhfcHl0aG9uMn0KLSVmaWxlcyAtbiBweXRo b24yLSV7bmFtZX0KLSVkb2MgUkVBRE1FLnJzdCBDSEFOR0VMT0cucnN0Ci0laWYgMCV7P3JoZWx9 ICYmIDAlez9yaGVsfSA8IDcKLSVkb2MgQ09QWUlORyBDT1BZSU5HLWtvamkgTEdQTAotJWVsc2UK LSVsaWNlbnNlIENPUFlJTkcgQ09QWUlORy1rb2ppIExHUEwKLSVlbmRpZgotIyBGb3Igbm9hcmNo IHBhY2thZ2VzOiBzaXRlbGliCi0le3B5dGhvbjJfc2l0ZWxpYn0vcHlycGtnCi0le3B5dGhvbjJf c2l0ZWxpYn0vJXtuYW1lfS0le3ZlcnNpb259LXB5Ki5lZ2ctaW5mbwotJWVuZGlmCi0KLSVpZiAw JXs/d2l0aF9weXRob24zfQotJWZpbGVzIC1uIHB5dGhvbjMtJXtuYW1lfQotJWRvYyBSRUFETUUu cnN0IENIQU5HRUxPRy5yc3QKLSVsaWNlbnNlIENPUFlJTkcgQ09QWUlORy1rb2ppIExHUEwKLSV7 cHl0aG9uM19zaXRlbGlifS9weXJwa2cKLSV7cHl0aG9uM19zaXRlbGlifS8le25hbWV9LSV7dmVy c2lvbn0tcHkqLmVnZy1pbmZvCi0lZW5kaWYKLQotJWZpbGVzIGNvbW1vbgotJXtfZGF0YWRpcn0v JXtuYW1lfQotJXtfc3lzY29uZmRpcn0vcnBrZwotCi0KLSVjaGFuZ2Vsb2cKLSogVHVlIEFwciAx OCAyMDIzIE9uZMWZZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPiAtIDEuNjYtNgotLSBQYXRj aDogUHJlLXB1c2ggaG9vayB3b24ndCBjaGVjayBwcml2YXRlIGJyYW5jaGVzCi0tIFBhdGNoOiBD b25maWcgZmlsZSBvcHRpb24gdG8gc2tpcCB0aGUgaG9vayBzY3JpcHQgY3JlYXRpb24KLS0gUGF0 Y2g6IEFsbG93IGVtcHR5IGNvbW1pdHMgd2hlbiBgdXNlc19ycG1hdXRvc3BlY2AKLS0gUGF0Y2g6 IENoZWNrIHJlbW90ZSBmaWxlIHdpdGggY29ycmVjdCBoYXNoCi0tIFBhdGNoOiBJZ25vcmUgbWlz c2luZyBzcGVjIGZpbGUgaW4gcHJlLXB1c2ggaG9vawotLSBQYXRjaDogaW1wb3J0X3NycG06IGFs bG93IHByZS1nZW5lcmF0ZWQgc3JwbXMKLQotKiBTYXQgQXByIDEgMjAyMyBPbmTFmWVqIE5vc2Vr IDxvbm9zZWtAcmVkaGF0LmNvbT4gLSAxLjY2LTUKLS0gUGF0Y2g6IEZpeCB1bml0dGVzdHMgZm9y IGBjbG9uZWAgYW5kIHByZS1wdXNoIGhvb2sgc2NyaXB0Ci0tIFBhdGNoOiBwcmUtcHVzaCBob29r IHNjcmlwdCBjb250YWlucyBhIHVzZXIncyBjb25maWcKLS0gUGF0Y2g6IEEgSEVBRCBxdWVyeSBp bnRvIGEgbG9va2FzaWRlIGNhY2hlCi0tIFBhdGNoOiBgcHJlLXB1c2gtY2hlY2tgIGhhdmUgdG8g dXNlIHNwZWN0b29sIHdpdGggLS1kZWZpbmUKLS0gUGF0Y2g6IEFkZCBtb3JlIGluZm9ybWF0aW9u IGFib3V0IHByZS1wdXNoIGhvb2sKLS0gUGF0Y2g6IFVwZGF0ZSB0byBzcGVjIGZpbGUgcHJlc2Vu Y2UgY2hlY2tpbmcKLS0gUGF0Y2g6IE1vcmUgcm9idXN0IHNwZWMgZmlsZSBwcmVzZW5jZSBjaGVj a2luZwotCi0qIEZyaSBNYXIgMTAgMjAyMyBPbmTFmWVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNv bT4gLSAxLjY2LTQKLS0gUGF0Y2g6IERvIG5vdCBnZW5lcmF0ZSBwcmUtcHVzaCBob29rIHNjcmlw dCBpbiBzb21lIGNhc2VzCi0KLSogV2VkIE1hciAxIDIwMjMgT25kxZllaiBOb3NlayA8b25vc2Vr QHJlZGhhdC5jb20+IC0gMS42Ni0zCi0tIFBhdGNoOiBQcm9jZXNzIHNvdXJjZSBVUkxzIHdpdGgg ZnJhZ21lbnQgaW4gcHJlLXB1c2ggaG9vawotLSBQYXRjaDogY29udGFpbmVyLWJ1aWxkOiB1cGRh dGUgLS1zaWduaW5nLWludGVudCBoZWxwIGZvciBPU0JTIDIKLQotKiBUdWUgRmViIDIxIDIwMjMg T25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS42Ni0yCi0tIHJlYnVpbGQgZm9y IHVuaWZpY2F0aW9uIG9mIGFsbCBicmFuY2hlcwotCi0qIE1vbiBGZWIgMjAgMjAyMyBPbmTFmWVq IE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4gLSAxLjY2LTEKLS0gY29udGFpbmVyLWJ1aWxkOiBk b2N1bWVudCAtLWNvbXBvc2UtaWRzIG92ZXJyaWRlcyBhbnkgbmV3IGNvbXBvc2VzIChrZHJleWVy KQotLSBVc2Ugc3JwbSB3aGVuIHNjcmF0Y2gtYnVpbGRpbmcgZnJvbSBkaXJ0eSByZXBvIC0gIzY1 MiAob3R0by5saWxqYWxhYWtzbykKLS0gQ29kZSBjbGVhbnVwIGluIHRlc3RzL3Rlc3RfY2xpLnB5 IChvdHRvLmxpbGphbGFha3NvKQotLSBSZWR1Y2UgaW5kZW50YXRpb24gaW4gYXNzZXJ0X2J1aWxk IGhlbHBlciAob3R0by5saWxqYWxhYWtzbykKLS0gQWxsb3cgZW1wdHkgY29tbWl0cyAtIDQ5NCAo bXN1Y2h5KQotLSBBbGxvdyBmb3JjaW5nIGRvd25sb2FkIG9mIGFsbCBzb3VyY2VzIC0gIzY1MCAo b3R0by5saWxqYWxhYWtzbykKLS0gQWRkIHRlc3QgY2FzZSBmb3Igbm90IGRvd25sb2FkaW5nIHVu dXNlZCBzb3VyY2VzIChvdHRvLmxpbGphbGFha3NvKQotLSBTdXBwb3J0ICdyZXN1bHRzX2Rpcj1z dWJkaXInIHdoZW4gYnVpbGRpbmcgZnJvbSBzcnBtIC0gIzY0OAotICAob3R0by5saWxqYWxhYWtz bykKLS0gVXNlIGxvY2FsIGJyYW5jaCBuYW1lIGFzIHJlbGVhc2Ugd2hlbiB0aGVyZSBpcyBubyBy ZW1vdGUgKG90dG8ubGlsamFsYWFrc28pCi0tIEFsbG93IGRvd25zdHJlYW1zIHRvIGRlZmluZSBh IGRlZmF1bHQgcmVsZWFzZSAob3R0by5saWxqYWxhYWtzbykKLS0gU3dpdGNoIGxvYWRfYnJhbmNo X21lcmdlIHRvIHVzZSBtdWx0aXBsZSByZXR1cm4gKG90dG8ubGlsamFsYWFrc28pCi0tIFVuaXR0 ZXN0cyBmb3IgJ2dpdCBwdXNoJyBob29rIHNjcmlwdCAob25vc2VrKQotLSBDaGVja2luZyBhIHJl cG8gY29uZmlndXJhdGlvbiBiZWZvcmUgJ2dpdCBwdXNoJyB3aXRoIGEgZ2l0IGhvb2sgc2NyaXB0 IC0gNDkxCi0gIChvbm9zZWspCi0tIEZpeCBza2lwcGluZyBOVlIgY2hlY2sgd2l0aCBhdXRvcmVs ZWFzZSAobmlscykKLS0gcHlycGtnLnNwZWMuU3BlY0ZpbGU6IE1vcmUgbGVuaWVudCBwYXJzZXIg Zm9yIFNvdXJjZS9QYXRjaCBsaW5lcyAoZndlaW1lcikKLS0gRml4IFVSTCBpbiBDSEFOR0VMT0cu cnN0ICh0bXopCi0tIEFkZCBKZW5raW5zZmlsZSBmb3IgQ0kgKG9ub3NlaykKLS0gbW9ja2J1aWxk OiBlc2NhcGUgcnBtIGNvbW1hbmQgdW5kZXIgbW9jayAtIHJoYnojMjEzMDM0OSAob25vc2VrKQot LSBGaXhlcyBmb3IgZXhwbG9kZWQgU1JQTSBsYXlvdXRzIC0gIzYzMyAodGRhd3NvbikKLS0gYGZl ZHBrZyBsb2NhbGAgZG9lcyBub3Qgc2hvdyBycG1idWlsZCBvdXRwdXQgLSByaGJ6IzIxMjQ4MDkg KG9ub3NlaykKLQotKiBNb24gT2N0IDEwIDIwMjIgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhh dC5jb20+IC0gMS42NS0zCi0tIFBhdGNoOiBGaXhlcyBmb3IgZXhwbG9kZWQgU1JQTSBsYXlvdXRz Ci0tIFBhdGNoOiBtb2NrYnVpbGQ6IGVzY2FwZSBycG0gY29tbWFuZCB1bmRlciBtb2NrCi0KLSog V2VkIFNlcCA3IDIwMjIgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS42NS0y Ci0tIFBhdGNoOiBgZmVkcGtnIGxvY2FsYCBkb2VzIG5vdCBzaG93IHJwbWJ1aWxkIG91dHB1dAot Ci0qIFdlZCBTZXAgNyAyMDIyIE9uZMWZZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPiAtIDEu NjUtMQotLSBFeHRyYSBhcmd1bWVudHMgbm93IHVzZSBzaGVsbC1lc2NhcGluZyAtIHJldmVydCAo b25vc2VrCi0tIFJlbW92ZSBweXRlc3Qgd2FybmluZ3MgKG9ub3NlaykKLS0gUmVmdXNlIGltcG9y dCBvZiBwYWNrYWdlcyBwcm9jZXNzZWQgYnkgcnBtYXV0b3NwZWMgKHpieXN6ZWspCi0tIGZvbGxv dyByZWRpcmVjdHMgZm9yIGxvb2thc2lkZSAodGtvcGVjZWspCi0tIFJlcGFpciBmbGFrZTggY29t cGxhaW50cyAob25vc2VrKQotLSBGaXggaGlnaCBsZXZlbCBiYW5kaXQgZmluZGluZ3MgKG9ub3Nl aykKLS0gY29udGFpbmVyLWJ1aWxkOiBpbXByb3ZlIGhlbHAgdGV4dCBmb3IgLS1jb21wb3NlLWlk cyBhcmd1bWVudCAoa2RyZXllcikKLS0gQ09OVFJJQlVUSU5HLm1kIGZpeCBsaW5rcyAob25vc2Vr KQotLSBJbXByb3ZlIGNoYW5nZSBtYW5hZ2VtZW50IHByb2Nlc3MgZG9jdW1lbnRhdGlvbiAob25v c2VrKQotLSBSZW1vdmluZyBiYW5kaXQgaXNzdWVzIGZyb20gY2xpLnB5IChkcnVtaWFuKQotLSBF eHRyYWN0IHNvdXJjZSBSUE1zIHdpdGggcnBtMmFyY2hpdmUgaWYgcG9zc2libGUgKHByYWlza3Vw KQotLSBTZXQgdXAgYmFuZGl0IHNjYW5uZXIgZm9yIHJwa2cgKG9ub3NlaykKLS0gUmVmdXNlIHRv ICJjb21taXQgLWMiIHdoZW4gdXNpbmcgJWF1dG9jaGFuZ2Vsb2cgLSA0NTQgKGRydW1pYW4pCi0t IFJlZmFjdG9yaW5nIGxvYWRpbmcgcnBtYXV0b3NwZWMgZmVhdHVyZSAob25vc2VrKQotLSBhZGQg LS1iYWNrZ3JvdW5kIG9wdGlvbiBmb3IgY29udGFpbmVyLWJ1aWxkIHdoaWNoIGFsbG93cyB0byBj cmVhdGUgYnVpbGQgd2l0aAotICBsb3dlciBwcmlvcml0eSAocmNlcnZlbikKLS0gJ2NsZWFuIC0t ZHJ5LXJ1bicgZGVwcmVjYXRpb24gd2FybmluZyAoZHJ1bWlhbikKLS0gQmV0dGVyIGV4aXQgY29k ZSBmb3IgY29ubmVjdGlvbiBlcnJvciAoZHJ1bWlhbikKLS0gRml4IGdlbmVyYXRpb24gb2Ygb3B0 aW9uYWwgcGFyYW1ldGVycyBpbiBtYW4gcGFnZSAobXNwYWNlaykKLS0gVXNlIGFic29sdXRlIHBh dGggZm9yIG1vY2sgcmVzdWx0cyBpbiBgbGludGAgKG9ub3NlaykKLS0gY29udGFuZXItYnVpbGQg ZG9lcyBub3QgY2hlY2sgZm9yIGV4aXN0ZW5jZSBvZiBrb2ppc2Vzc2lvbi5idWlsZENvbnRhaW5l ciAtCi0gIDUzMiAoZHJ1bWlhbikKLS0gRml4OiAnbGludCcgc3ViY29tbWFuZCBzaG91bGQgbm90 IGludm9rZSBycG1saW50IG9uIGRlYnVnaW5mbyBwYWNrYWdlcyAtCi0gIHJoYnojMjA1MjQ1MSAo ZHJ1bWlhbikKLS0gQWRkIGAtLWN1c3RvbS11c2VyLW1ldGFkYXRhYCB0byBidWlsZCBjb21tYW5k IChvbm9zZWspCi0tIEZpeDogJ2xpbnQgLWkvLS1pbmZvJyBkb2VzIG5vdCB3b3JrIC0gcmhieiMy MDE2NjE2IChkcnVtaWFuKQotLSBGaXg6IEFscmVhZHlVcGxvYWRlZEVycm9yIHdoZW4gcGFja2Fn ZSBoYXMgbm8gc291cmNlcyAtIDYwNCAoZHJ1bWlhbikKLS0gRml4OiBFeHRyYSBhcmd1bWVudHMg bm93IHVzZSBzaGVsbC1lc2NhcGluZyAtIDU4NyAoZHJ1bWlhbikKLQotKiBGcmkgQXVnIDE5IDIw MjIgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS42NC05Ci0tIFBhdGNoOiBF eHRyYWN0IHNvdXJjZSBSUE1zIHdpdGggcnBtMmFyY2hpdmUgaWYgcG9zc2libGUKLQotKiBUaHUg QXVnIDE4IDIwMjIgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS42NC04Ci0t IFBhdGNoOiBSZXBhaXIgZmxha2U4IGNvbXBsYWludHMKLS0gUGF0Y2g6IGZvbGxvdyByZWRpcmVj dHMgZm9yIGxvb2thc2lkZQotCi0qIFNhdCBKdWwgMjMgMjAyMiBGZWRvcmEgUmVsZWFzZSBFbmdp bmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEuNjQtNwotLSBSZWJ1aWx0IGZv ciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzM3X01hc3NfUmVidWlsZAot Ci0qIFR1ZSBKdW4gMTQgMjAyMiBQeXRob24gTWFpbnQgPHB5dGhvbi1tYWludEByZWRoYXQuY29t PiAtIDEuNjQtNgotLSBSZWJ1aWx0IGZvciBQeXRob24gMy4xMQotCi0qIE1vbiBBcHIgMTggMjAy MiBPbmTFmWVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4gLSAxLjY0LTUKLS0gUGF0Y2g6IGFk ZCAtLWJhY2tncm91bmQgb3B0aW9uIGZvciBjb250YWluZXItYnVpbGQgd2hpY2ggYWxsb3dzCi0g IHRvIGNyZWF0ZSBidWlsZAotCi0qIFR1ZSBBcHIgMDUgMjAyMiBPbmTFmWVqIE5vc2VrIDxvbm9z ZWtAcmVkaGF0LmNvbT4gLSAxLjY0LTQKLS0gUGF0Y2g6IEJldHRlciBleGl0IGNvZGUgZm9yIGNv bm5lY3Rpb24gZXJyb3IKLQotKiBGcmkgTWFyIDE4IDIwMjIgT25kxZllaiBOb3NlayA8b25vc2Vr QHJlZGhhdC5jb20+IC0gMS42NC0zCi0tIFBhdGNoOiBBZGQgYC0tY3VzdG9tLXVzZXItbWV0YWRh dGFgIHRvIGJ1aWxkIGNvbW1hbmQKLQotKiBUdWUgRmViIDA4IDIwMjIgT25kxZllaiBOb3NlayA8 b25vc2VrQHJlZGhhdC5jb20+IC0gMS42NC0yCi0tIFVwbG9hZCBjb3JyZWN0IHRhcmJhbGwKLQot KiBUdWUgSmFuIDI1IDIwMjIgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS42 NC0xCi0tIEZpeDogKnBrZyBub3cgdGFrZXMgaW50byBhY2NvdW50IC0tcGF0aCBwYXJhbWV0ZXIg d2hpbGUgYnVpbGRpbmcgU1JQTSAtIDU4MAotICAoZHJ1bWlhbikKLS0gJ2xpbnQnIGNhbiBydW4g d2l0aCBkaWZmZXJlbnQgJ3JwbWxpbnQnIHZlcnNpb25zIC0gcmhieiMxOTY3ODIxIChvbm9zZWsp Ci0tIFN1cHBvcnQgYnVpbGRpbmcgU1JQTXMgaW4gdGFyZ2V0IG1vY2sgLSAjNDk1IChvbm9zZWsp Ci0tIFVzZSB1bml0dGVzdC5tb2NrIG9uIFB5dGhvbiAzIChtaXJvKQotLSBBZGQgc3VwcG9ydCBm b3IgbW9ja2J1aWxkIGluIGxpbnQgY29tbWFuZCAob3R1cnBlKQotLSBGaXggc3JwbSBhbmQgYmlu YXJ5IHJwbSBsb29rdXAgaW4gbGludCBzdWJjb21tYW5kIC0gIzU4NiAob3R1cnBlKQotLSBtb2Nr YnVpbGQ6IGFsbG93IGVuZm9yY2luZyBsb2NhbCBtb2NrIGNvbmZpZyBpbiBmZWRwa2cgKHByYWlz a3VwKQotLSBsaXN0LXNpZGUtdGFncyAtIGZpeCB1bmF2YWlsYWJsZSB1c2VybmFtZSAoc2VyZ2lv KQotLSBBY2NlcHQgYWxzbyB+Ly5jb25maWcvbW9jay88Y2hyb290Pi5jZmcgZmlsZXMgKHByYWlz a3VwKQotLSBpbXByb3ZlIHNycG0gLS1oZWxwIGRlc2NyaXB0aW9uIChrZHJleWVyKQotLSBJbXBy b3ZlIGhvdyB0aGUgLnNwZWMgZmlsZSBpcyBzZWxlY3RlZCAobWFkcykKLS0gSW5jbHVkZSBgZm1m YCBjb25maWcgaW4gdGhlIGxpc3Qgb2YgcmVzZXJ2ZWQgZmlsZXMgLSA0NTIgKHBzcGxpY2hhKQot LSBGaXggZmxha2U4IHN5bnRheCAob25vc2VrKQotLSBDb250aW51ZSBleGVjdXRpb24gaWYgc3Bl Y2ZpbGUgcGFyc2luZyBmYWlscyAtICM1ODMgKG90dXJwZSkKLS0gQ29uc2lkZXIgUGF0Y2ggdGFn cyBpbiBzcGVjZmlsZSBwYXJzZXIgLSByaGJ6IzIwMTA1MTggKG90dXJwZSkKLS0gU3VwcG9ydCBm b3IgY3VzdG9tIGNvbXBsZXRlcnMgKG9ub3NlaykKLS0gRml4ZXMgaW1wb3J0IGZhaWwgd2l0aCBz b3VyY2VzIGFscmVhZHkgaW1wb3J0ZWQgLSAjNTczIChkcnVtaWFuKQotLSBBbHNvIGRvY3VtZW50 IFB5dGhvbiAzLjEwIHN1cHBvcnQgaW4gdGhlIFJFQURNRSAobWlybykKLS0gVGVzdCBhbmQgc3Vw cG9ydCBQeXRob24gMy4xMCAobWlybykKLS0gUHJpbnQgU3BlY0ZpbGUgcGFyc2luZyBkZWJ1ZyBp bmZvIC0gcmhieiMyMDAwNTU2IChvbm9zZWspCi0tIFBhc3Mgc291cmNlZGlyIHRvIHJwbXNwZWMg d2hlbiBzcGVjZmlsZSBpcyBwYXJzZWQgLSAjNTU5IChvdHVycGUpCi0tIEZpeCB1bml0dGVzdHMg dG8gYmUgUHl0aG9uIDIgY29tcGF0aWJsZSAoZHJ1bWlhbikKLS0gQ2hhbmdpbmcgZXNjYXBpbmcg b2YgZGFzaCBpbiBkb2NzIC0gb2xkZXIgcmVsZWFzZXMgKG9ub3NlaykKLS0gQ2hhbmdpbmcgZXNj YXBpbmcgb2YgZGFzaCBpbiBkb2NzLiAoZHJ1bWlhbikKLQotKiBGcmkgSmFuIDIxIDIwMjIgRmVk b3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjYz LTcKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8z Nl9NYXNzX1JlYnVpbGQKLQotKiBUdWUgRGVjIDE0IDIwMjEgT25kxZllaiBOb3NlayA8b25vc2Vr QHJlZGhhdC5jb20+IC0gMS42My02Ci0tIGRyb3Agbm9zZXRlc3RzIGZvciBQeXRob24zCi0tIGRp c2FibGUgcHl0ZXN0IGNvdmVyYWdlIGR1cmluZyBidWlsZAotCi0qIFdlZCBEZWMgMDEgMjAyMSBP bmTFmWVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4gLSAxLjYzLTUKLS0gUGF0Y2g6IENvbnRp bnVlIGV4ZWN1dGlvbiBpZiBzcGVjZmlsZSBwYXJzaW5nIGZhaWxzCi0tIFBhdGNoOiBDb25zaWRl ciBQYXRjaCB0YWdzIGluIHNwZWNmaWxlIHBhcnNlcgotCi0qIE1vbiBOb3YgMjkgMjAyMSBPbmTF mWVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4gLSAxLjYzLTQKLS0gUGF0Y2g6IEZpeGVzIGlt cG9ydCBmYWlsIHdpdGggc291cmNlcyBhbHJlYWR5IGltcG9ydGVkCi0KLSogTW9uIFNlcCAxMyAy MDIxIE9uZMWZZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPiAtIDEuNjMtMwotLSBBZGQgcHl0 aG9uLXJlcXVlc3RzLWtlcmJlcm9zIGFzIGEgbmV3IGRlcGVuZGVuY3kgZm9yIFJIRUwgcGFja2Fn ZXMKLS0gUGF0Y2g6IFByaW50IFNwZWNGaWxlIHBhcnNpbmcgZGVidWcgaW5mbwotCi0qIFdlZCBT ZXAgMDEgMjAyMSBPbmTFmWVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4gLSAxLjYzLTIKLS0g UGF0Y2g6IFBhc3Mgc291cmNlZGlyIHRvIHJwbXNwZWMgd2hlbiBzcGVjZmlsZSBpcyBwYXJzZWQK LQotKiBUdWUgQXVnIDI0IDIwMjEgRG9taW5payBSdW1pYW4gPGRydW1pYW5AcmVkaGF0LmNvbT4g LSAxLjYzLTEKLS0gRG8gbm90IGRvd25sb2FkIHVudXNlZCBzb3VyY2VzIGR1cmluZyBjb21tYW5k ICdzb3VyY2VzJyAtICM1NTkgKG90dXJwZSkKLS0gQWRkZWQgJ3gtcGtnIHZlcnJlbCcgZm9yIGNv bnRhaW5lcnMgLSAjNTQ3IChqa3Vuc3RsZSkKLS0gY29udGFpbmVyLWJ1aWxkOiBpbXByb3ZlIGhl bHAgdGV4dCBmb3IgLS1zaWduaW5nLWludGVudCBhcmd1bWVudCAoa2RyZXllcikKLS0gTWFrZSBz dXJlIGFsbCBjb21taXRzIGhhdmUgYSBwcm9wZXIgc3ViamVjdCAoc2dhbGxhZ2gpCi0tIEZpeCB1 bml0dGVzdCBmb3IgcHJldmlvdXMgY29tbWl0IChvbm9zZWspCi0tIGJldHRlciBuZXctc291cmNl cyBvdXRwdXQgd2hlbiBhbGwgc291cmNlcyBhbHJlYWR5IGV4aXN0IEZpeGVzOiAjNTMzIEpJUkE6 Ci0gIFJIRUxDTVAtNTUyOSAoZHJ1bWlhbikKLS0gQWRkZWQgJ3JlbW90ZScgdG8gcnBrZyBmcm9t IHJocGtnIC0gNDM5IChqa3Vuc3RsZSkKLS0gQWRkIC0tb2ZmbGluZSBjbGkgYXJndW1lbnQgZm9y IG5ldy1zb3VyY2VzIChvdHVycGUpCi0tIFRlc3RzOiBGaXggc2V0dGluZyBicmFuY2ggbmFtZSB3 aXRoIG9sZCBnaXQgKG5pbHMpCi0tIEFkZCBhbmQgYXVnbWVudCB0ZXN0cyBmb3IgcnBtYXV0b3Nw ZWMgKG5pbHMpCi0tIFJlZmxlY3QgJWF1dG9yZWxlYXNlIHdoZW4gcGFyc2luZyBzcGVjIGZpbGVz IChuaWxzKQotLSBQcmVwcm9jZXNzIHNwZWMgZmlsZXMgdXNpbmcgcnBtYXV0b3NwZWMgZmVhdHVy ZXMgKG5pbHMpCi0tIERldGVjdCBnZW5lcmljIHVzZSBvZiBycG1hdXRvc3BlYyBmZWF0dXJlcyAo bmlscykKLS0gRml4IHJlbWFpbmluZyBQeXRob24zIFNhZmVDb25maWdQYXJzZXIgd2FybmluZ3Mg KG5pbHMpCi0tIFRlc3RzOiBzcGVjaWZ5IGJyYW5jaCBuYW1lIG9uIGBnaXQgaW5pdGAgKG5pbHMp Ci0tIFJlbW92ZSBsZWZ0b3ZlciBkZXByZWNhdGVkIGFyZ3VtZW50cyAoYWJpc29pKQotLSBSZW1v dmUgZGVwcmVjYXRlZCBhcmd1bWVudHMgLS1kaXN0IGFuZCAtLW1vZHVsZS1uYW1lIChhYmlzb2kp Ci0tIFNraXAgTlZSIGNoZWNrIGlmIHRoZSAlYXV0b3JlbGVhc2UgbWFjcm8gaXMgdXNlZCAtIDEw OSAobmlscykKLS0gRG9uJ3QgYWNjZXNzIHVuc2V0IHZhcmlhYmxlIChuaWxzKQotLSBJbXByb3Zl IGhlbHAgaW4gZmVkcGtnIGNsb25lIGNvbW1hbmQgLSAjMzY3IChhYmlzb2kpCi0tIEZpeCBycGtn IGNvbnRhaW5lci1idWlsZCBpZ25vcmluZyB2YWx1ZXMgd2hlbiBzYW1lIGFyZ3VtZW50IGlzIHNw ZWNpZmllZAotICBtdWx0aXBsZSB0aW1lcyAtICM1MzcgKGFiaXNvaSkKLS0gbGlzdC1zaWRlLXRh Z3M6IHNob3cgY3JlYXRvciBvZiB0aGUgdGFnIC0gMzU4IChvbm9zZWspCi0tIERyb3AgUHl0aG9u IDIuNiBzdXBwb3J0IChvbm9zZWspCi0tIEVuYWJsZSBmbGF0cGFrIHRlc3RzIHRoYXQgcmVxdWly ZSBsaWJtb2R1bGVtZCAob25vc2VrKQotLSBBZGRlZCA8cGFja2FnZSBuYW1lPi5ycG1saW50cmMg dG8gdGhlIGxpc3Qgb2YgZmlsZXMgaWdub3JlZCBieSBmZWRwa2cgaW1wb3J0Ci0gIC0gcmhieiMx OTQ2Njg4IChhYmlzb2kpCi0tIEplbmtpbnMgdW5pdHRlc3RzIHJ1biBpbiBkb2NrZXIgY29udGFp bmVyIChvbm9zZWspCi0tIEFkZCBzdXBwb3J0IGZvciBzaWRlIHRhZyBzdWZmaXggKGxzZWRsYXIp Ci0tIENoZWNrIHdoZXRoZXIgc291cmNlcyBmaWxlIGlzIG5vdCBhIGRpcmVjdG9yeSAtICM1NDEg KG9ub3NlaykKLS0gQWRkIGNvbmZpZyBvcHRpb24gZm9yIHdyaXRpbmcgZGlzdC1naXQgYnVpbGQg cmVzdWx0cyB0byBhIHN1YmRpcmVjdG9yeQotICAob3R1cnBlKQotLSBjYSBjZXJ0IHdhcyByZW1v dmVkIG9uIGtvamktMS4yNC4wIChzZXJnaW8pCi0tIEltcHJvdmUgYXV0b21hdGljIHRlc3Qgc3Vp dGUgKG90dXJwZSkKLS0gQmV0dGVyIGhpbnQgd2hlbiBydW5uaW5nICdwcmVwJyBvbiBkZXRhY2hl ZCBicmFuY2ggLSByaGJ6IzE5MDc5NjQgKG9ub3NlaykKLS0gVXBkYXRlIGRlc2NyaXB0aW9uIG9m IHRoZSBjbGVhbiBjb21tYW5kIC0gcmhieiMxOTA5NDYxIChvbm9zZWspCi0tIEFkZCAtLXNraXAt bnZyLWNoZWNrIHRvIHRoZSBzY3JhdGNoLWJ1aWxkIGNvbW1hbmQgLSByaGJ6IzE2NzEwMTIgKG9u b3NlaykKLQotKiBGcmkgSnVsIDIzIDIwMjEgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJl bGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjYyLTcKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9m ZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zNV9NYXNzX1JlYnVpbGQKLQotKiBUaHUgSnVs IDA4IDIwMjEgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS42Mi02Ci0tIFBh dGNoOiBQcmVwcm9jZXNzIHNwZWMgZmlsZXMgdXNpbmcgcnBtYXV0b3NwZWMgZmVhdHVyZXMgYW5k IHVzZSAlJWF1dG9yZWxlYXNlIHdoZW4gcGFyc2luZyBzcGVjIGZpbGVzCi0tIFBhdGNoOiBTa2lw IE5WUiBjaGVjayBpZiB0aGUgJSVhdXRvcmVsZWFzZSBtYWNybyBpcyB1c2VkCi0KLSogRnJpIEp1 biAwNCAyMDIxIFB5dGhvbiBNYWludCA8cHl0aG9uLW1haW50QHJlZGhhdC5jb20+IC0gMS42Mi01 Ci0tIFJlYnVpbHQgZm9yIFB5dGhvbiAzLjEwCi0KLSogRnJpIEFwciAwMiAyMDIxIE9uZMWZZWog Tm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPiAtIDEuNjItNAotLSBQYXRjaDogQWRkIHN1cHBvcnQg Zm9yIHNpZGUgdGFnIHN1ZmZpeAotCi0qIFdlZCBGZWIgMjQgMjAyMSBPbmTFmWVqIE5vc2VrIDxv bm9zZWtAcmVkaGF0LmNvbT4gLSAxLjYyLTMKLS0gUGF0Y2g6IGNhIGNlcnQgd2FzIHJlbW92ZWQg b24ga29qaS0xLjI0LjAKLQotKiBXZWQgSmFuIDI3IDIwMjEgRmVkb3JhIFJlbGVhc2UgRW5naW5l ZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjYyLTIKLS0gUmVidWlsdCBmb3Ig aHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zNF9NYXNzX1JlYnVpbGQKLQot KiBXZWQgRGVjIDAyIDIwMjAgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS42 Mi0xCi0tIEFsbG93IHNraXBwaW5nIG52ciBjaGVja2luZyBmb3IgY2hhaW4tYnVpbGQgLSByaGJ6 IzE4OTA3MDEgKG9ub3NlaykKLS0gQ29kZS1zdHlsZSBpbXByb3ZlbWVudCAtIGltcG9ydHMgYXJl IHNvcnRlZCAob25vc2VrKQotLSBGaXggSmVua2lua3MgdGVzdHMgKG9ub3NlaykKLS0gQXZvaWQg YmxhbmsgbGluZXMgaW4gbG9nIGZpbGVzIGZvciBsb29rYXNpZGUgKGNvbnR5aykKLS0gY29udGFp bmVyLWJ1aWxkOiBmaXggaGVscCB0ZXh0IGZvciAtLWlzb2xhdGVkIGFyZ3VtZW50IChrZHJleWVy KQotLSBBZGQgLS1zaWduaW5nLWludGVudCBhbmQgLS1yZXBvLXVybCB0byAnZmxhdHBhay1idWls ZCcgKG90YXlsb3IpCi0tIEFkZCBoYXNodHlwZSB0byBsb29rYXNpZGUgZG93bmxvYWQgcGF0aCAt ICM1MjEgKHR1cml2bml5KQotLSBBZGQgbmV3IGxheW91dCBmb3IgcGFja2FnZXMgdGhhdCBtaXNz aW5nIHNwZWNmaWxlIC0gcmhieiMxODg1NzcxIChvbm9zZWspCi0KLSogTW9uIFNlcCAwNyAyMDIw IE9uZMWZZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPiAtIDEuNjEtMQotLSBQeXRlc3QgdXBk YXRlIGFuZCBNQU5JRkVTVC5pbiBwcnVuZSAob25vc2VrKQotLSBSZS1lbmFibGUgY2xvZyB0ZXN0 cyAob25vc2VrKQotLSBTa2lwIGRpcmVjdG9yaWVzIGluc2lkZSBvZiBpbXBvcnRlZCBzcnBtIGZp bGUgLSByaGJ6IzE4NjYyOTcgKG9ub3NlaykKLS0gU2tpcCAnc291cmNlcycgZmlsZSB3aGVuIGl0 IGlzIG1pc3NpbmcgLSByaGJ6IzE4Njc0NDAgKG9ub3NlaykKLS0gTmV3IGxheW91dCBmb3IgcmV0 aXJlZCBwYWNrYWdlcyAtIHJoYnojMTg2NzgyMiAob25vc2VrKQotLSBhZGRlZCBhIGV4dGVuZGFi bGUgbGF5b3V0IG1vZHVsZSB0byBkZWFsIHdpdGggZGlmZmVyZW50IHBhY2thZ2UgbGF5b3V0cwot ICB3aXRoaW4gdGhlIENMSSAoMjE4MzUwNitvZHJhKQotLSBBZGQgKG9ub3NlaykKLS0gUHl0ZXN0 IHJlcGxhY2VzIG5vc2V0ZXN0cyAtICM1MDEgKG9ub3NlaykKLS0gRGlzYWJsZSBzb21lIHRlc3Qg Zm9yICdjbG9nJyBmdW5jdGlvbmFsaXR5IChvbm9zZWspCi0tIFN1Z2dlc3QgYSB3YXkgdG8gdHJh Y2sgcmVtb3RlIGJyYW5jaCAtIHVwZGF0ZSAob25vc2VrKQotLSBTdWdnZXN0IGEgd2F5IHRvIHRy YWNrIHJlbW90ZSBicmFuY2ggaW4gdGhlIGVycm9yIGxvZyAoY3FpKQotLSBSZW1vdmUgZGVwcmVj YXRlZCBzdXBwb3J0IGZvciBrb2ppY29uZmlnIChvbm9zZWspCi0tIFN3aXRjaCBmcm9tIGtyYl9s b2dpbiB0byBnc3NhcGlfbG9naW4gLSByaGJ6IzE4MzA0MzAgKG9ub3NlaykKLS0gRGlzYWJsZSB0 ZXN0IG1ldGhvZCdzIGRvY3N0cmluZyBpbiBub3NldGVzdHMgbGlzdCAob25vc2VrKQotLSBDaGVj ayByZXBvIG5hbWUgZm9yIGNvcnJlY3QgZm9ybWF0IChvbm9zZWspCi0tIFVuaXR0ZXN0cyBmb3Ig cGFzc2luZyBhZGRpdGlvbmFsIGFyZ3VtZW50cyAob25vc2VrKQotLSBQYXNzaW5nIGFkZGl0aW9u YWwgYXJndW1lbnRzIHRvIHVuZGVybGF5aW5nIGNvbW1hbmRzIC0gIzQzMiAob25vc2VrKQotLSBV cGRhdGVkIHN1cHBvcnRlZCBwbGFmb3JtcyBpbiBkb2N1bWVudGF0aW9uIChvbm9zZWspCi0tIFJl cGFpciBjb21wYXRpYmxlIGZvcm1hdHRpbmcgZm9yIFB5dGhvbiAyLjYgKG9ub3NlaykKLS0gUmVw YWlyIGRvd25sb2FkaW5nIHNvdXJjZXMgaW50byBleHRlcm5hbCBkaXJlY3RvcnkgKG9ub3NlaykK LQotKiBNb24gQXVnIDMxIDIwMjAgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0g MS42MC04Ci0tIFBhdGNoOiBTa2lwICdzb3VyY2VzJyBmaWxlIHdoZW4gaXQgaXMgbWlzc2luZwot Ci0qIEZyaSBBdWcgMDcgMjAyMCBPbmTFmWVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4gLSAx LjYwLTcKLS0gUGF0Y2g6IGFkZGVkIGxheW91dCBtb2R1bGUgdG8gZGVhbCB3aXRoIGRpZmZlcmVu dCBwYWNrYWdlIGxheW91dHMKLS0gUGF0Y2g6IGNsb2cgdGVzdHMgd29ya2Fyb3VuZAotCi0qIFNh dCBBdWcgMDEgMjAyMCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXBy b2plY3Qub3JnPiAtIDEuNjAtNgotLSBTZWNvbmQgYXR0ZW1wdCAtIFJlYnVpbHQgZm9yCi0gIGh0 dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzNfTWFzc19SZWJ1aWxkCi0KLSog V2VkIEp1bCAyOSAyMDIwIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3Jh cHJvamVjdC5vcmc+IC0gMS42MC01Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVj dC5vcmcvd2lraS9GZWRvcmFfMzNfTWFzc19SZWJ1aWxkCi0KLSogTW9uIE1heSAyNSAyMDIwIE1p cm8gSHJvbsSNb2sgPG1ocm9uY29rQHJlZGhhdC5jb20+IC0gMS42MC00Ci0tIFJlYnVpbHQgZm9y IFB5dGhvbiAzLjkKLQotKiBUdWUgTWF5IDE5IDIwMjAgT25kxZllaiBOb3NlayA8b25vc2VrQHJl ZGhhdC5jb20+IC0gMS42MC0zCi0tIFBhdGNoOiBTd2l0Y2ggZnJvbSBrcmJfbG9naW4gdG8gZ3Nz YXBpX2xvZ2luCi0KLSogTW9uIE1heSAxMSAyMDIwIE9uZMWZZWogTm9zZWsgPG9ub3Nla0ByZWRo YXQuY29tPiAtIDEuNjAtMgotLSBSZWxlYXNpbmcgdGhlIGVwZWw4IHZlcnNpb24KLQotKiBGcmkg TWFyIDIwIDIwMjAgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS42MC0xCi0t IE1vcmUgdHJhbnNwYXJlbnQgY2hlY2sgb2YgcmV0aXJlZCBwYWNrYWdlIChvbm9zZWspCi0tIFJ1 biBuZXdlciB2ZXJzaW9uIG9mIHNwaGlueC1idWlsZCB0b29sIChvbm9zZWspCi0tIExvb2thc2lk ZSBjYWNoZSB1cGxvYWQgaXMgbm90IGJhc2VkIG9uIGFuIGV4dGVuc2lvbiAtICM0ODQgKG9ub3Nl aykKLS0gY29udGFpbmVyLWJ1aWxkOiBhZGRpdGlvbmFsIHdhcm5pbmcgd2hlbiB1c2luZyAtLXJl bGVhc2UgKG1sYW5nc2RvKQotLSBhbGxvdyBjb21wb3NlLWlkIHdpdGggcmVwby11cmwgZm9yIGNv bnRhaW5lcl9idWlsZCAocmNlcnZlbikKLS0gQ2xvbmUgY29uZmlnIGN1c3RvbWl6YXRpb24gZm9y IG5hbWVzcGFjZXMgLSAyMzEgKG9ub3NlaykKLS0gUmVwYWlyIEplbmtpbnMgdGVzdHMgKG9ub3Nl aykKLS0gKG5ldy0pc291cmNlcyBzaG91bGQgZmFpbCB3aXRoIGdpdCB0cmFja2VkIGZpbGVzIC0g MjQxIChvbm9zZWspCi0tIEhhbmRsZSBuZXcgY2FjaGl0byBkZXBlbmRlbmN5IHJlcGxhY2VtZW50 IGFyZ3VtZW50IChhdGhvc2NyKQotLSBtb2R1bGUtYnVpbGQgb3B0aW9uYWwga2V5IGhlbHAgLSAy ODAgKG9ub3NlaykKLS0gTW9kaWZ5IHdhdGNoLWNhbmNlbCBtZXNzYWdlIChzZ2FsbGFnaCkKLS0g Q3JlYXRlIHN0YXRzIGZvciBtb2R1bGUgYnVpbGRzIGluICdpbml0JyBzdGF0ZSAoY3NvbWgpCi0t IFJQTSA0LjE1IGNoYW5nZWQgaGVhZGVyIHJldHVybnMgZnJvbSB0eXBlICdieXRlcycgdG8gJ3N0 cmluZycuIEhhbmRsZSBlaXRoZXIKLSAgYnkgY29udmVydGluZyB0byAnc3RyaW5nJyBpZiBuZWNl c3NhcnkuIChtbWF0aGVzaSkKLS0gRG9uJ3QgZXhwZWN0IG1vZHVsZSBidWlsZCB0YXNrcyB0byBo YXZlICJycG1zIiAobXVsYWlldmEpCi0tIFByb3BhZ2F0ZSBtb2R1bGVfaG90Zml4ZXMgdG8gZ2V0 TW9ja0NvbmZpZyAtIHJoYnojMTc4MDIyOCAobHNlZGxhcikKLS0gQWRkIGNoZWNrIGZvciB3cm9u ZyByZXBvIG5hbWUgZm9ybWF0IGR1cmluZyBjbG9uZSAtIDM1MyAob25vc2VrKQotLSBTaW1wbGlm eSBtZXRob2RzIGZvciBnZXR0aW5nIG5hbWVzcGFjZSBnaXR1cmwgKG9ub3NlaykKLS0gVXNlIGEg c2luZ2xlIHRocmVhZCBwb29sIHdoaWxlIHdhdGNoaW5nIG1vZHVsZSBidWlsZHMgKGNzb21oKQot LSBBbHNvIGNhcHR1cmUgc3RkZXJyIGluIGxvZ2ZpbGUgKG9yaW9uKQotLSBMaW5lIHVwIGRlc2Ny aXB0aW9ucyBmb3IgYmV0dGVyIGNvZGUgcmVhZGFiaWxpdHkgKG9ub3NlaykKLS0gSXNvbGF0ZWQg Y29udGFpbmVyLWJ1aWxkIHNob3VsZCBhbGxvdyBhcmNoZXMgb3ZlcnJpZGUgKHJjZXJ2ZW4pCi0t IGNvbnRhaW5lci1idWlsZDogYWRkIC0ta29qaS1wYXJlbnQtYnVpbGQgYXJndW1lbnQgKGtkcmV5 ZXIpCi0tIHRlc3RzOiBhZGQgY29udGFpbmVyLWJ1aWxkIC0taXNvbGF0ZWQgdGVzdCAoa2RyZXll cikKLS0gY29udGFpbmVyLWJ1aWxkOiBhZGQgLS1pc29sYXRlZCBhcmd1bWVudCAoa2RyZXllcikK LS0gUGFzcyBza2lwX2J1aWxkIG9wdGlvbiB0byBidWlsZENvbnRhaW5lciAocmNlcnZlbikKLS0g UmV1c2Uga29qaV9jbGkubGliLnVuaXF1ZV9wYXRoIChjcWkpCi0KLSogVGh1IEphbiAzMCAyMDIw IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0g MS41OS02Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRv cmFfMzJfTWFzc19SZWJ1aWxkCi0KLSogVGh1IEphbiAwMiAyMDIwIE9uZMWZZWogTm9zZWsgPG9u b3Nla0ByZWRoYXQuY29tPiAtIDEuNTktNQotLSBTb21lIHBhdGNoZXM6Ci0tIFByb3BhZ2F0ZSBt b2R1bGVfaG90Zml4ZXMgdG8gZ2V0TW9ja0NvbmZpZwotLSBEb24ndCBleHBlY3QgbW9kdWxlIGJ1 aWxkIHRhc2tzIHRvIGhhdmUgInJwbXMiCi0tIFJQTSA0LjE1IGNoYW5nZWQgaGVhZGVyIC0gdHlw ZSBjb252ZXJzaW9uCi0tIENyZWF0ZSBzdGF0cyBmb3IgbW9kdWxlIGJ1aWxkcyBpbiAnaW5pdCcg c3RhdGUKLQotKiBUdWUgRGVjIDAzIDIwMTkgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5j b20+IC0gMS41OS00Ci0tIFBhdGNoOiBsaW1pdGVkIHRocmVhZCBwb29sIGZvciB3YXRjaGluZyBt b2R1bGUgYnVpbGRzCi0KLSogVGh1IE5vdiAxNCAyMDE5IE9uZMWZZWogTm9zZWsgPG9ub3Nla0By ZWRoYXQuY29tPiAtIDEuNTktMwotLSBCYWNrcG9ydDogSXNvbGF0ZWQgY29udGFpbmVyLWJ1aWxk IHNob3VsZCBhbGxvdyBhcmNoZXMgb3ZlcnJpZGUKLQotKiBGcmkgT2N0IDI1IDIwMTkgT25kcmVq IE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4gLSAxLjU5LTIKLS0gQmFja3BvcnQ6IGNvbnRhaW5l ci1idWlsZDogYWRkIC0taXNvbGF0ZWQgYW5kIC0ta29qaS1wYXJlbnQtYnVpbGQgYXJndW1lbnRz Ci0tIEJhY2twb3J0OiBQYXNzIHNraXBfYnVpbGQgb3B0aW9uIHRvIGJ1aWxkQ29udGFpbmVyCi0t IEJhY2twb3J0OiBSZXVzZSBrb2ppX2NsaS5saWIudW5pcXVlX3BhdGgKLQotKiBNb24gU2VwIDE2 IDIwMTkgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS41OS0xCi0tIEFkZCBh cmd1bWVudCB0byBza2lwIGJ1aWxkIG9wdGlvbiBmb3IgY29udGFpbmVyLWJ1aWxkIChyY2VydmVu KQotLSBTb3J0aW5nIGltcG9ydHMgKG9ub3NlaykKLS0gSWdub3JlIGVycm9yIHdoZW4gYWRkaW5n IGV4Y2x1ZGUgcGF0dGVybnMgLSAxNzMzODYyIChvbm9zZWspCi0tIFBhdGggdG8gbG9va2FzaWRl IHJlcG8gZml4IChvbm9zZWspCi0tIEFkZCBjb21tYW5kcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBL b2ppIHNpZGUtdGFnIHBsdWdpbiAtIDMyOSAobHNlZGxhcikKLS0gRG8gbm90IGRlbGV0ZSBmaWxl cyByZWxhdGVkIHRvIGdhdGluZyBvbiBpbXBvcnQgKG9ub3NlaykKLS0gU3VwcG9ydCBpbnRlZ2Vy IHZhbHVlcyBpbiB0aGUgb3B0aW9uYWwgbW9kdWxlLWJ1aWxkIGFyZ3VtZW50cyAobXByYWhsKQot LSBjb250YWluZXItYnVpbGQ6IGFkZCAtLWJ1aWxkLXJlbGVhc2UgYXJndW1lbnQgKGtkcmV5ZXIp Ci0tIEFsbG93IHNvbWUgYXJndW1lbnRzIGZvciBjb250YWluZXItYnVpbGQgdG9nZXRoZXIgKG9u b3NlaykKLS0gZ2l0LWNoYW5nZWxvZzogRml4IHJ1bm5pbmcgb24gUHl0aG9uIDMgLSAzIChvbm9z ZWspCi0tIFBvcnQgdG8gbGlibW9kdWxlbWQgMiBBUEkgKGxzZWRsYXIpCi0tIE1vZHVsZS1vdmVy dmlldyBhbGxvd3MgZmlsdGVyaW5nIGJ5IG93bmVyIC0gMzI1IChvbm9zZWspCi0tIERpZmZlcmVu dCBpbXBvcnQgLS1vZmZsaW5lIGNvbW1hbmQgYmVoYXZpb3IgLSAjNDQ1IChvbm9zZWspCi0tIFNo b3cgbnZyIGluIGNvbnRhaW5lci1idWlsZCAob25vc2VrKQotLSBDdXN0b20gaGFuZGxlciBmb3Ig a29qaSB3YXRjaF90YXNrcyAob25vc2VrKQotLSBVbml0dGVzdHMgZm9yIGNsb25lIGNvbW1hbmQg KG9ub3NlaykKLS0gRml4IGNsb25lIC0tYnJhbmNoZXMgLSByaGJ6IzE3MDcyMjMgKHRteikKLS0g TWFrZSBnaXRidWlsZGhhc2ggd29yayBmb3Igd2luZG93cyBidWlsZHMgKGxzZWRsYXIpCi0KLSog TW9uIFNlcCAxNiAyMDE5IE9uZMWZZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPiAtIDEuNTgt MTAKLS0gVXBkYXRlIGtvamkgZGVwZW5kZW5jeQotCi0qIFNhdCBBdWcgMTcgMjAxOSBNaXJvIEhy b27EjW9rIDxtaHJvbmNva0ByZWRoYXQuY29tPiAtIDEuNTgtOQotLSBSZWJ1aWx0IGZvciBQeXRo b24gMy44Ci0KLSogVGh1IEF1ZyAwMSAyMDE5IE9uZMWZZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQu Y29tPiAtIDEuNTgtOAotLSBPYnNvbGV0ZXMgcHl0aG9uMi1ycGtnIGFmdGVyIHVwZ3JhZGUgdG8g RmVkb3JhMzAKLQotKiBXZWQgSnVsIDMxIDIwMTkgU3RlcGhlbiBHYWxsYWdoZXIgPHNnYWxsYWdo QHJlZGhhdC5jb20+IC0gMS41OC03Ci0tIEZpeCBsaWJtb2R1bGVtZCByZXF1aXJlbWVudHMKLQot KiBGcmkgSnVsIDI2IDIwMTkgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRv cmFwcm9qZWN0Lm9yZz4gLSAxLjU4LTYKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9q ZWN0Lm9yZy93aWtpL0ZlZG9yYV8zMV9NYXNzX1JlYnVpbGQKLQotKiBNb24gSnVuIDEwIDIwMTkg T25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS41OC01Ci0tIE5vdyBhZ2Fpbiwg bGlibW9kdWxlbWQgaXMgcmVxdWlyZWQgaW5zdGVhZCBvZiBweXRob24zLWxpYm1vZHVsZW1kIGJl Y2F1c2UKLSAgaXQgd2FzIGNhdXNpbmcgdHJvdWJsZXMgd2l0aCB1cGdyYWRlcy4KLQotKiBNb24g SnVuIDEwIDIwMTkgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS41OC00Ci0t IE1vZGlmeSByZXF1aXJlZCB2ZXJzaW9uIG9mIGtvamkgcGFja2FnZQotCi0qIE1vbiBNYXkgMjcg MjAxOSBPbmTFmWVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4gLSAxLjU4LTMKLS0gQmFja3Bv cnQ6IEN1c3RvbSBoYW5kbGVyIGZvciBrb2ppIHdhdGNoX3Rhc2tzCi0tIEJhY2twb3J0OiBTaG93 IG52ciBpbiBjb250YWluZXItYnVpbGQKLS0gQmFja3BvcnQ6IERpZmZlcmVudCBpbXBvcnQgLS1v ZmZsaW5lIGNvbW1hbmQgYmVoYXZpb3IKLQotKiBUaHUgTWF5IDA5IDIwMTkgT25kcmVqIE5vc2Vr IDxvbm9zZWtAcmVkaGF0LmNvbT4gLSAxLjU4LTIKLS0gQmFja3BvcnQ6IGZpeGVkICdjbG9uZSAt LWJyYW5jaCcgY29tbWFuZAotCi0qIE1vbiBBcHIgMjkgMjAxOSBPbmTFmWVqIE5vc2VrIDxvbm9z ZWtAcmVkaGF0LmNvbT4gLSAxLjU4LTEKLS0gSWdub3JlIGZpbGVzIGluIGEgY2xvbmVkIHJlcG9z aXRvcnkgLSAjMzU1IChvbm9zZWspCi0tIEhhbmRsZSBkYXRhIGZyb20gcHl0aG9uIFJQTSBiaW5k aW5nIGFzIFVURi04IHN0cmluZyAoemVib2IubSkKLS0gc3JwbV9pbXBvcnQ6IGJlIGNvbXBhdGli bGUgd2l0aCByaGJ6IzE2OTM3NTEgKHByYWlza3VwKQotLSBQYXNzIC0tZW5hYmxlLW5ldHdvcmsg dG8gbW9jayAtIDMxNCAob25vc2VrKQotLSBFbmhhbmNlICdtb2R1bGUtb3ZlcnZpZXcnIHN1Yi1j b21tYW5kIHRvIHNob3cgc2NyYXRjaCBzdGF0dXMgb2YgbW9kdWxlcy4KLSAgKG1tYXRoZXNpKQot LSBSZW1vdmUgdGhlIGFiaWxpdHkgdG8gcGFyc2UgYSBtb2R1bGUncyBicmFuY2ggYXV0b21hdGlj YWxseSB0byBkZXRlcm1pbmUgdGhlCi0gIGJhc2UgbW9kdWxlIHN0cmVhbSBvdmVycmlkZSAobXBy YWhsKQotLSBJbXByb3ZlbWVudHMgZm9yIHNjcmF0Y2ggbW9kdWxlIGJ1aWxkcyAobW1hdGhlc2kp Ci0tIFVwZGF0ZXMgdG8gc3VwcG9ydCBzY3JhdGNoIG1vZHVsZSBidWlsZHMgKG1tYXRoZXNpKQot LSBSZWZhY3RvciBmYWtlIEtvamkgY3JlZGVudGlhbCBoYW5kbGluZyBmcm9tIFRlc3RCdWlsZFBh Y2thZ2UgY2xhc3MgaW50byBuZXcKLSAgRmFrZUtvamlDcmVkcyBjbGFzcyBzbyBpdCBjYW4gYmUg c2hhcmVkIHdpdGggVGVzdE1vZHVsZXNDbGkgY2xhc3MuIChtbWF0aGVzaSkKLS0gTWFrZSBLb2pp IHVwbG9hZCBtZXRob2RzIG1vcmUgZ2VuZXJpYyBzbyB0aGV5IGNhbiBiZSByZXVzZWQuIChtbWF0 aGVzaSkKLS0gQWxsb3cgcGFzc2luZyAtLW9mZmxpbmUgYW5kIC1yIHRvIG1icy1tYW5hZ2VyIGJ1 aWxkX21vZHVsZV9sb2NhbGx5LiAoamthbHV6YSkKLS0gRGVwdGggcGFyYW0gZm9yIGNsb25lIC0g dHVuaW5nIChvbm9zZWspCi0tIERlcHRoIHBhcmFtIGZvciBjbG9uZSAtICMzNjMgKG9ub3NlaykK LS0gUGFzcyAtLWRpc2FibGVyZXBvIGFuZCAtLWVuYWJsZXJlcG8gdG8gbW9jayAtIDMxMyAob25v c2VrKQotLSBJbXBvcnQgc3JwbSB3aXRob3V0IHVwbG9hZGluZyBzb3VyY2VzIC0gcmhieiMxMTc1 MjYyIChvbm9zZWspCi0tIElnbm9yZSBhbnkgc3BlY2lmaWVkIHByb2ZpbGUgd2hlbiBmaW5kaW5n IHRoZSBGbGF0cGFrIGJ1aWxkIHRhcmdldCAob3RheWxvcikKLS0gU2hvdyBtb2R1bGUgYnVpbGQg bGlua3MgaW4gb3V0cHV0IGZyb20gY29tbWFuZCBtb2R1bGUtYnVpbGQgKGNxaSkKLS0gQWRkICdy ZXRpcmUnIGNvbW1hbmQgc3VwcG9ydGluZyBib3RoIHBhY2thZ2VzIGFuZCBtb2R1bGVzIChtbWF0 aGVzaSkKLS0gRml4ICJwdXNoIC0tZm9yY2UiICh0aW0pCi0tIENvbnRhaW5lci1idWlsZCByZXR1 cm5zIGl0cyBzdGF0dXMgdG8gY29tbWFuZC1saW5lIC0gIzQxNSAob25vc2VrKQotLSBVcGxvYWQg LmNyYXRlIGZpbGVzIHRvIGxvb2thc2lkZSBjYWNoZSAtIDMxMiAob25vc2VrKQotLSBSZXN0cmlj dCB2ZXJzaW9uIG9mIFB5WUFNTCBvbiBQeXRob24gMi42IChsc2VkbGFyKQotLSBTaW1wbGlmeSBz cnBtIG1ldGhvZCAob25vc2VrKQotLSBQZXJtaXQgc2V0dGluZyBhcmJpdHJhcnkgcnBtIG1hY3Jv cyBkdXJpbmcgYnVpbGQgKHJpZWhlY2t5KQotLSBBZGQgdGhlIGFiaWxpdHkgdG8gY29uZmlndXJl IG11bHRpcGxlIHJlZ2V4IGV4cHJlc3Npb25zIGZvcgotICBiYXNlX21vZHVsZV9zdHJlYW1fcmVn ZXhfZnJvbV9icmFuY2ggKG1wcmFobCkKLS0gRG8gbm90IHJlcXVpcmUgUHlHT2JqZWN0IGluIHNl dHVwLnB5IC0gcmhieiMxNjc5MzY1IChvbm9zZWspCi0tIEZpeGluZyBmYWlsaW5nIEplbmtpbnMg dGVzdHMgKG9ub3NlaykKLS0gVW5pZnkgdXBkYXRlLWRvY3Mgc2NyaXB0IHdpdGggZmVkcGtnIHZl cnNpb24gKG9ub3NlaykKLS0gUkVBRE1FOiBhZGQgbGlua3MgKG9ub3NlaykKLS0gV2F0Y2ggbXVs dGlwbGUgbW9kdWxlIGJ1aWxkcyAoY3FpKQotLSBBZGRlZCB1cGRhdGUtZG9jcyBzY3JpcHQgKG9u b3NlaykKLQotKiBUaHUgQXByIDI1IDIwMTkgT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5j b20+IC0gMS41Ny05Ci0tIHlldCBhbm90aGVyIGNvbXBhdCBmaXggd2l0aCBSUE0gYWZ0ZXIgcmhi eiMxNjkzNzUxCi0KLSogRnJpIEFwciAxOSAyMDE5IFBhdmVsIFJhaXNrdXAgPHByYWlza3VwQHJl ZGhhdC5jb20+IC0gMS41Ny04Ci0tIGNvbXBhdCBmaXggd2l0aCBSUE0gYWZ0ZXIgcmhieiMxNjkz NzUxCi0KLSogV2VkIE1hciAyMCAyMDE5IElnb3IgR25hdGVua28gPGlnbmF0ZW5rb2JyYWluQGZl ZG9yYXByb2plY3Qub3JnPiAtIDEuNTctNwotLSBCYWNrcG9ydCBwYXRjaCBmb3IgdXBsb2FkaW5n ICouY3JhdGUgaW50byBsb29rYXNpZGUKLQotKiBUaHUgRmViIDA3IDIwMTkgT25kxZllaiBOb3Nl ayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS41Ny02Ci0tIFJldmVydCBwcmV2aW91cyBjaGFuZ2Uu Ci0gIE5vdyBweXRob24tZ29iamVjdC1iYXNlICYgbGlibW9kdWxlbWQgYXJlIHJlbW92ZWQgZnJv bSBlcGVsNyBhbmQgUkhFTDcKLQotKiBUdWUgRmViIDA1IDIwMTkgT25kxZllaiBOb3NlayA8b25v c2VrQHJlZGhhdC5jb20+IC0gMS41Ny01Ci0tIHB5dGhvbi1nb2JqZWN0LWJhc2UgJiBsaWJtb2R1 bGVtZCBhbHNvIGZvciBlcGVsNyBhbmQgUkhFTDcKLQotKiBNb24gRmViIDA0IDIwMTkgTHVib23D rXIgU2VkbMOhxZkgPGxzZWRsYXJAcmVkaGF0LmNvbT4gLSAxLjU3LTQKLS0gRGlzYWJsZSBQeTIg cGFja2FnZSBvbiBGMzArCi0KLSogU2F0IEZlYiAwMiAyMDE5IEZlZG9yYSBSZWxlYXNlIEVuZ2lu ZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS41Ny0zCi0tIFJlYnVpbHQgZm9y IGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzBfTWFzc19SZWJ1aWxkCi0K LSogVGh1IEphbiAwMyAyMDE5IE9uZMWZZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29tPiAtIDEu NTctMgotLSBNZXJnZSBjaGFuZ2VzIG9mIHRoZSAuc3BlYyBmaWxlcyBmb3IgRmVkb3JhIGFuZCBS SEVMCi0KLSogVGh1IERlYyAxMyAyMDE4IE9uZMWZZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29t PiAtIDEuNTctMQotLSBVc2UgaWRuYSAyLjcgZm9yIFB5dGhvbiAyLjYgKGxzZWRsYXIpCi0tIElt cG9ydHMgYXJlIHNvcnRlZCAob25vc2VrKQotLSBsaWJtb2R1bGVtZCBpcyBtaXNzaW5nIG9uIGVs NyAtICM0MDIgKG9ub3NlaykKLS0gSW5pdGlhbGl6ZSBiYXNoIGF1dG9jb21wbGV0aW9uIChvbm9z ZWspCi0tIFNldCBjb25maWd1cmF0aW9uIGluIGNhc2Ugb2YgImNsb25lIC0tYnJhbmNoZXMiIGFz IHdlbGwgKHRpbSkKLS0gRml4IGZha2Ugc3BlYyBmaWxlIGZvciBjbG9nIHRlc3RzIChjcWkpCi0t IE1vdmUgYXJncGFyc2UgZml4IGZyb20gZmVkcGtnIC0gIzM5OCAob25vc2VrKQotLSBTZW5kIHNv dXJjZSBtdGltZSB0byBkaXN0LWdpdCAtIDIyMCAobHNlZGxhcikKLS0gRml4IHRlc3RzIGZvciBt b2NrIHBhY2thZ2UgbWFuYWdlciAobHNlZGxhcikKLS0gU3BlY2lmeSBwYWNrYWdlIG1hbmFnZXIg Zm9yIG1vY2stY29uZmlnIChsc2VkbGFyKQotLSBBZGQgY29udHJpYnV0aW5nIGd1aWRlIChvbm9z ZWspCi0tIFZhbGlkYXRlIHRoZSBtb2R1bGUgYnVpbGQgb3B0aW9uYWwgYXJndW1lbnQgd2hlbiBw YXJzaW5nIHRoZSBhcmd1bWVudAotICAobXByYWhsKQotLSBBZGQgY29uZmlnIG9wdGlvbnMgdG8g cGFyc2UgdGhlIGJhc2UgbW9kdWxlIChlLmcuIHBsYXRmb3JtKSBzdHJlYW0gZnJvbSB0aGUKLSAg ZGlzdC1naXQgYnJhbmNoIGFuZCBhcHBseSBhIGJ1aWxkcmVxdWlyZSBvdmVycmlkZSAobXByYWhs KQotLSBBZGQgdGhlIGFiaWxpdHkgdG8gcGFzcyBpbiBidWlsZHJlcXVpcmUgYW5kIHJlcXVpcmUg b3ZlcnJpZGVzIG9uIGEgbW9kdWxlCi0gIGJ1aWxkIChtcHJhaGwpCi0tIFJhaXNlIGFuIGVycm9y IGlmIHRoZSBtb2R1bGUgYnVpbGQgY29tbWFuZCByZWNlaXZlcyBvcHRpb25hbCBhcmd1bWVudHMg dGhhdAotICBjb25mbGljdCAobXByYWhsKQotLSBTaWxlbmNlIFB5dGhvbjMgU2FmZUNvbmZpZ1Bh cnNlciB3YXJuaW5ncyAobW1hdGhlc2kpCi0tIEFsbG93IHRvIHBhc3MgcG9zYXJncyB0byB0b3gg ZnJvbSBtYWtlIChjcWkpCi0tIFNwZWNpZnkgZGVwZW5kZW50IHBhY2thZ2VzIGluIG9uZSBwbGFj ZSAoY3FpKQotLSBEb24ndCByZWdpc3RyeSBmbGF0cGFrLWJ1aWxkIGNvbW1hbmQgb24gUHl0aG9u LTIuNiAob3RheWxvcikKLS0gQWRkIGZsYXRwYWstYnVpbGQgc3ViY29tbWFuZCAob3RheWxvcikK LS0gRG9uJ3QgcGFzcyB0aGUgTUJTIEFQSSBVUkwgYXJvdW5kIGFzIGEgcGFyYW1ldGVyIChvdGF5 bG9yKQotLSBUZXN0Q29udGFpbmVyQnVpbGRXaXRoS29qaTogdGVhciBkb3duIHRoZSBtb2NrIGFw cHJvcHJpYXRlbHkgKG90YXlsb3IpCi0tIFJlZmluZSB0ZXN0IHJ1bm5lciBmb3IgcHkyNiAoY3Fp KQotCi0qIFRodSBOb3YgMTUgMjAxOCBPbmTFmWVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4g LSAxLjU2LTQKLS0gQWxsb3cgYnVpbGQgZm9yIFJIRUwtOCAgKG9ub3NlaykKLQotKiBXZWQgTm92 IDE0IDIwMTggT25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+IC0gMS41Ni0zCi0tIE5v IG1vY2sgd2FybmluZyAob25vc2VrKQotCi0qIEZyaSBTZXAgIDcgMjAxOCBPd2VuIFRheWxvciA8 b3RheWxvckByZWRoYXQuY29tPiAtIDEuNTYtMgotLSBBZGQgcGF0Y2ggZnJvbSB1cHN0cmVhbSBw dWxsLXJlcXVlc3QgdG8gYWRkIGEgZmxhdHBhay1idWlsZCBzdWJjb21tYW5kCi0tIEFkZCBQeVlB TUwgZGVwZW5kZW5jaWVzIHNvIHRoYXQgdGhlIHNwZWMgZmlsZSBhdCBsZWFzdCBidWlsZHMgb24g ZXBlbDYvZXBlbDcKLQotKiBUdWUgQXVnIDIxIDIwMTggQ2hlbnhpb25nIFFpIDxjcWlAcmVkaGF0 LmNvbT4gLSAxLjU2LTEKLS0gVmFsaWRhdGUgZ3JlZW53YXZlIHBvbGljeSBlYXJseSBpbiBDb21t YW5kcy5idWlsZCAoY3FpKQotLSBSZWZpbmUgZXJyb3IgbWVzc2FnZSBmb3IgZmFpbHVyZSBnYXRp bmcueWFtbCB2YWxpZGF0aW9uIChjcWkpCi0tIGV4cGxhaW4gbWJzLW1hbmFnZXIgZXhjZXB0aW9u IGhhbmRsaW5nIChuaWxzKQotLSB0ZXN0IGZvciBtaXNzaW5nIG1icy1tYW5hZ2VyIHdpdGggZXJy bm8gc2V0IChuaWxzKQotLSBjYXRjaCBlcnJubyA9PSBFTk9FTlQgaWYgbWJzLW1hbmFnZXIgaXMg bWlzc2luZyAobmlscykKLS0gYWRkIG1pc3NpbmcgbWV0aG9kIGRvY3N0cmluZyAobmlscykKLS0g U2hvdyBmdWxsIGVycm9yIGZyb20gTUJTIChsc2VkbGFyKQotLSBGaXggdGVzdHMgZm9yIGdyZWVu d2F2ZSBwb2xpY3kgdmFsaWRhdGlvbiAoY3FpKQotLSBBZGQgdGVzdGVudiBmb3IgYnVpbGRpbmcg ZG9jcyAoY3FpKQotLSBOZXcgb3B0aW9uIC0tYnVpbGRyb290ZGlyIC0gcmhieiMxNTgzODIyIChj cWkpCi0tIEFkZCAtLXNoZWxsIG9wdGlvbiB0byBtb2NrYnVpbGQgLSByaGJ6IzE0Mzg2ODUgKGNx aSkKLS0gVmFsaWRhdGUgZ2F0aW5nLnlhbWwgZmlsZSBmb3IgR3JlZW53YXZlIGdhdGluZyAoZ25h cG9uaWUpCi0tIFVwZGF0ZSBSRUFETUUgKGNxaSkKLS0gUmVkdWNlIHRoZSBudW1iZXIgb2YgcmVw byBjcmVhdGlvbiBmb3IgdGVzdHMgKGNxaSkKLS0gRml4IGZsYWtlOCBlcnJvciAoY3FpKQotLSBE cm9wIHJwbS1weS1pbnN0YWxsZXIgZnJvbSByZXF1aXJlcyAtICMzNTcgKGNxaSkKLS0gQWxsb3cg X3J1bl9jb21tYW5kIHRvIGNhcHR1cmUgYW5kIHJldHVybiBvdXRwdXQgdG8gc3Rkb3V0IG9yIHN0 ZGVyciAoY3FpKQotLSBDbGFpbSBQeXRob24gMy43IGluIFJFQURNRSBhbmQgcGFja2FnZSBjbGFz c2lmaWVycyAoY3FpKQotLSBGaXggYSBiYWQgdGVzdCB0ZWFyZG93biAob3RheWxvcikKLS0gUmVm YWN0b3IgYnVpbGQgY29tbWFuZCAoY3FpKQotLSBSZW1vdmUgcnBtZmx1ZmYgcGFja2FnZSAoY3Fp KQotLSBTZXQgUFlDVVJMX1NTTF9MSUJSQVJZIGRpcmVjdGx5IGZvciBpbnN0YWxsaW5nIHB5Y3Vy bCAoY3FpKQotLSBBZGQgcHkzNyB0ZXN0ZW52IChjcWkpCi0KLSogVGh1IEp1bCAyNiAyMDE4IENo ZW54aW9uZyBRaSA8Y3FpQHJlZGhhdC5jb20+IC0gMS41NS0yCi0tIFJlbW92ZSBkZXBlbmRlbmN5 IHB5dGhvbi1ycG1mbHVmZgotCi0qIE1vbiBKdWwgMjMgMjAxOCBDaGVueGlvbmcgUWkgPGNxaUBy ZWRoYXQuY29tPiAtIDEuNTUtMQotLSBGaXggaW5zdGFsbGluZyBweWN1cmwgZm9yIHJ1bm5pbmcg dGVzdHMgKGNxaSkKLS0gUmVwbGFjZSBleHRyYSBtb2R1bGVfbmFtZSB3aXRoIHJlcG9fbmFtZSAo Y3FpKQotLSBSZXBsYWNlIG5hbWUgbW9kdWxlIHdpdGggcmVwbyBpbiB0ZXN0cy9maXh0dXJlcy9y cGtnKi5jb25mIChjcWkpCi0tIEFkZCAtLWZhaWwtZmFzdCBmdW5jdGlvbmFsaXR5IC0gIzMzMSAo dGliYnMpCi0tIEZpeCBmYWtlIHNwZWMgZm9yIGJ1aWxkIGluIHJhd2hpZGUgKGNxaSkKLS0gQXZv aWQgdG8gdXBsb2FkIGEgZmlsZSB3aXRoIGRpZmZlcmVudCBjaGVja3N1bSAtICMyMDQgKGNxaSkK LS0gR2l2ZSBtb3JlIGluZm9ybWF0aW9uIHdoZW4gc291cmNlcyBoYXMgaW52YWxpZCBjb250ZW50 IC0gIzIyNyAoY3FpKQotLSBSZXNlcnZlIFJFQURNRS5tZCB3aGlsZSBpbXBvcnQgc3JwbSAtICMx NDkgKGNxaSkKLS0gU2V0IHRvIHJlcG9fbmFtZSBwcm9wZXJ0eSB3aGVuIC0tbmFtZSBpcyBzcGVj aWZpZWQgKGNxaSkKLS0gRG8gbm90IHJlc3RyaWN0IGFyZ3BhcnNlIHZlcnNpb24gKGNxaSkKLS0g Q2hlY2sgb2xkIGZvcm1hdCBhcmdzIG9ubHkgaWYgdGhlcmUgaXMgY2xvbmUgY29uZmlnIChjcWkp Ci0tIEZpeCB0eXBvIGFuZCByZXdvcmQgb3B0aW9uIGhlbHAgYW5kIGRlcHJlY2F0aW9uIG1lc3Nh Z2UgKGNxaSkKLS0gTWFzc2l2ZSByZXBsYWNlbWVudCBvZiBtb2R1bGUgKGNxaSkKLS0gRGVwcmVj YXRlIG1vZHVsZV9uYW1lIGluc2lkZSBycGtnIGludGVybmFsIChjcWkpCi0tIEFkZCBuZXcgb3B0 aW9uIC0tbmFtZSBhbmQgLS1uYW1lc3BhY2UgLSAjMzAxIChjcWkpCi0tIE1hbiBnZW5lcmF0b3Ig aW5kZW50IHdvcmthcm91bmQgKG9ub3NlaykKLS0gRml4aW5nIGltcG9ydHMgaW4gdW5pdHRlc3Rz IChvbm9zZWspCi0tIE1pbm9yIGZpeGVzIHRvIGRvYyBidWlsZCAoY3FpKQotLSBGaXggbWlzdGFr ZXMgZHVyaW5nIHJlYmFzZSAoY3FpKQotLSBSdW4gZG9jdW1lbnQgZ2VuZXJhdG9yIHNjcmlwdCBp biBQeTMgZXhwbGljdGx5IChjcWkpCi0tIFJlbW92ZSB3YXJuaW5nIG9mIG5vbmV4aXN0aW5nIHNv dXJjZS9fc3RhdGljLyBkdXJpbmcgZG9jIGJ1aWxkIChjcWkpCi0tIERvIG5vdCBnZW5lcmF0ZSBk b2N1bWVudCBmb3Igc2FtcGxlIHJwa2cgYXBwIChjcWkpCi0tIEV4Y2x1ZGUgc3ViY29tbWFuZCB3 aGljaCBkb2VzIG5vdCBoYXZlIGhlbHAgKGNxaSkKLS0gRW5zdXJlIHRvIGNsZWFuIGZpbGVzIGZv ciBnZW5lcmF0aW5nIEhUTUwgZG9jdW1lbnRzIChjcWkpCi0tIEZpeCByZWJhc2UgZXJyb3I6IGFk ZCBtb2R1bGVfYnVpbGRfd2F0Y2ggYmFjayAoY3FpKQotLSBGaXggTUFOSUZFU1QuaW4gdG8gbGlz dCBmaWxlcyBmb3IgYnVpbGRpbmcgZG9jIChjcWkpCi0tIFJlbmFtZSBnZW5lcmF0ZV9tYW5fcGFn ZXMucHkgKGNxaSkKLS0gR2VuZXJhdGUgSFRNTCBkb2N1bWVudCBhbmQgbWFucGFnZSBmb3Igc2Ft cGxlIHJwa2cgKGNxaSkKLS0gU2ltcGxpZnkgZG9jIE1ha2VmaWxlIChjcWkpCi0tIEdlbmVyYXRl IGNvbW1hbmRzIEhUTUwgYW5kIG1hbiBwYWdlcyAoY3FpKQotLSBVcGRhdGUgZXhpc3RpbmcgZG9j c3RyaW5ncyAoY3FpKQotLSBHZW5lcmF0ZSBkb2N1bWVudHMgYnkgc3BoaW54IC0gIzUwIChjcWkp Ci0tIFJFQURNRTogbmV3IGNvZGUgc2hvdWxkIGJlIHB5MyBjb21wYXRpYmxlIChrdGRyZXllcikK LS0gUHJvdmlkZSBiYXNlX21vZHVsZSB0byBjbG9uZV9jb25maWcgdGVtcGxhdGVzIC0gIzMyNiAo dG16KQotLSBSZWZhY3RvciBtYW4gZ2VuZXJhdG9yIHRvIGJlIHJldXNhYmxlIChwdWl0ZXJ3aWpr KQotLSBNYWtlIHN1cmUgZ2l0Y3JlZCBkb2Vzbid0IGxhbmQgaW4gbWFuIChwdWl0ZXJ3aWprKQot LSBEb24ndCBpbmplY3QgdGhlIGNyZWRlbnRpYWwgaGVscGVyIHRvIHB1c2ggaWYgT0lEQyBpcyB1 bmNvbmZpZ3VyZWQKLSAgKHB1aXRlcndpamspCi0tIEFkZCBkb2NibG9ja3MgdG8gZ2l0Y3JlZCBt ZXRob2RzIGFuZCBkb24ndCBxdWl0IGlmIE9wZW5JREMgaXMgdW5jb25maWd1cmVkCi0gIChwdWl0 ZXJ3aWprKQotLSBBbHNvIGluamVjdCB0aGUgY3JlZGVudGlhbCBoZWxwZXIgd2l0aCBycGtnIHB1 c2ggKHB1aXRlcndpamspCi0tIENyZWF0ZSBhICJnaXRjcmVkIiBjb21tYW5kIHRoYXQgZnVuY3Rp b25zIGFzIGFuIE9JREMgZ2l0LWNyZWRlbnRpYWwgaGVscGVyCi0gIChwdWl0ZXJ3aWprKQotCi0q IFNhdCBKdWwgMTQgMjAxOCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9y YXByb2plY3Qub3JnPiAtIDEuNTQtNAotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2pl Y3Qub3JnL3dpa2kvRmVkb3JhXzI5X01hc3NfUmVidWlsZAotCi0qIFR1ZSBKdW4gMTkgMjAxOCBN aXJvIEhyb27EjW9rIDxtaHJvbmNva0ByZWRoYXQuY29tPiAtIDEuNTQtMwotLSBSZWJ1aWx0IGZv ciBQeXRob24gMy43Ci0KLSogTW9uIE1heSAyMSAyMDE4IENoZW54aW9uZyBRaSA8Y3FpQHJlZGhh dC5jb20+IC0gMS41NC0yCi0tIFJlbW92ZSBrb2ppIGFuZCBycG0tcHktaW5zdGFsbGVyIFB5dGhv biBwYWNrYWdlIHJlcXVpcmVzCi0tIEZpeCBhcmdwYXJzZSB2ZXJzaW9uIGZvciBlbDYKLQotKiBG cmkgTWF5IDExIDIwMTggQ2hlbnhpb25nIFFpIDxjcWlAcmVkaGF0LmNvbT4gLSAxLjU0LTEKLS0g UGFzcyB0aGUgLXMvLS1zZXQtZGVmYXVsdC1zdHJlYW0gdG8gbWJzLW1hbmFnZXIgZm9yIG1vZHVs ZSBsb2NhbCBidWlsZHMuCi0gIChqa2FsdXphKQotLSBXcml0ZSBtb2NrIGNvbmZpZyBjb3JyZWN0 bHkgd2hlbiBydW4gaW4gUHkgMyAoY3FpKQotLSBBZGQgLS13aXRoIGFuZCAtLXdpdGhvdXQgb3B0 aW9ucyB0byAnbG9jYWwnIC0gcmhieiMxNTMzNDE2ICh0bXopCi0tIEFkZCBhIHRlc3QgZm9yIDNm OTM0MzMgKGNxaSkKLS0gUmFpc2UgZXJyb3IgaWYgcnBtIGNvbW1hbmQgcmV0dXJucyBub24temVy byAoY3FpKQotLSBVc2UgZ2V0cGFzcy5nZXR1c2VyKCkgaW5zdGVhZCBvZiBwd2QuZ2V0cHd1aWQo b3MuZ2V0dWlkKCkpWzBdIChqcG9wZWxrYSkKLS0gQWxsb3cgc2V0dGluZyBjdXN0b20gTUJTIGNv bmZpZyBmaWxlIGFuZCBjb25maWcgc2VjdGlvbiBpbiBycGtnLmNvbmYuCi0gIChqa2FsdXphKQot LSBSZW1vdmUgcHkzNSB0ZXN0ZW52IChjcWkpCi0tIElnbm9yZSAuZW52IGFuZCB0YWdzIChjcWkp Ci0tIFJlbW92ZSBxdWVzdGlvbiBtYXJrIGZyb20gZ2l0dXJsIChjcWkpCi0tIEFkZGVkIGN1c3Rv bSBBcmd1bWVudFBhcnNlciAoc3VwcG9ydHMgYWxsb3dfYWJicmV2KSAoamt1Y2VyYSkKLS0gR3Jh YiB0aGUgY29ycmVjdCBmaXJzdCBsaW5lIGluIGNhc2Ugb2YgcnBtIG91dHB1dCAoemVib2IubSkK LQotKiBNb24gQXByIDE2IDIwMTggQ2hlbnhpb25nIFFpIDxjcWlAcmVkaGF0LmNvbT4gLSAxLjUz LTIKLS0gUmVxdWlyZSBweXRob24yLWtvamkgMS4xNSBhcyB0aGUgbWluaW11bSB2ZXJzaW9uCi0t IFJlZmluZSBCdWlsZFJlcXVpcmVzCi0KLSogVHVlIEFwciAxMCAyMDE4IENoZW54aW9uZyBRaSA8 Y3FpQHJlZGhhdC5jb20+IC0gMS41My0xCi0tIFVzZSBOU1ZzIGFuZCBub3QgYnVpbGQgSURzIHdp dGggbW9kdWxlLWJ1aWxkLWxvY2FsIC0tYWRkLWxvY2FsLWJ1aWxkIChtcHJhaGwpCi0tIEZpeCBk b2NzdHJpbmcgb2YgdGVzdF9tb2R1bGVfYnVpbGRfbG9jYWxfd2l0aF9za2lwdGVzdHMgKG1wcmFo bCkKLS0gQWRkIGxvbmdfZGVzY3JpcHRpb24gdG8gcGFja2FnZSAoY3FpKQotLSBTdXBwb3J0IGxv Y2FsIG1vZHVsZSBidWlsZHMgd2hlbiB0aGVyZSBhcmUgdW5jb21taXR0ZWQgY2hhbmdlcyAobXBy YWhsKQotLSBGaXggY2xhcmlmeWluZyBlcnJvciB0aGF0IG9jY3VycyB3aGVuIG1icy1tYW5hZ2Vy IGlzIG5vdCBpbnN0YWxsZWQgKG1wcmFobCkKLS0gQWRkIHN1cHBvcnQgZm9yIE1vZHVsZSBTdHJl YW0gRXhwYW5zaW9uIChNQlMgQVBJIHYyKSAobXByYWhsKQotLSBTaG93IGVycm9ycyB3aGVuIGEg bW9kdWxlIGJ1aWxkIGZhaWxzIChtcHJhaGwpCi0tIE1vdmUgZnVsbCBkb3dubG9hZCB1cmwgY29u c3RydWN0aW9uIHRvIHNlcGFyYXRlIG1ldGhvZCAoZnJvc3R5eCkKLS0gRml4IGNvbXBvc2UgcmVs YXRlZCBwYXJhbXMgZm9yIGNvbnRhaW5lci1idWlsZCAobHVjYXJ2YWwpCi0tIEF2b2lkIGNhbGxp bmcgL3Vzci9iaW4vcHl0aG9uIGluIHRlc3RzIChtaXJvKQotLSBDaGFuZ2UgZGVmYXVsdCBycG1s aW50IGNvbmZpZ3VyYXRpb24gZmlsZSAoYXRob3NjcikKLS0gVXNlIGtvamkuZ3JhYl9zZXNzaW9u X29wdGlvbnMoKSByYXRoZXIgdGhhbiBvcGVuY29kaW5nIGl0IChjZmVyZ2VhdSkKLQotKiBNb24g TWFyIDA1IDIwMTggTWlybyBIcm9uxI1vayA8bWhyb25jb2tAcmVkaGF0LmNvbT4gLSAxLjUyLTIK LS0gSW50cm9kdWNlIHB5dGhvbjMgc3VicGFja2FnZQotCi0qIFRodSBGZWIgMjIgMjAxOCBDaGVu eGlvbmcgUWkgPGNxaUByZWRoYXQuY29tPiAtIDEuNTItMQotLSBNb2NrIFRocmVhZFBvb2wgaW4g dGVzdF9tb2R1bGVfb3ZlcnZpZXcgKGNxaSkKLS0gRHJvcCBycG1mbHVmZiBpbiB0ZXN0IChjcWkp Ci0tIEZpeCBoYXJkY29kZWQgZGlyZWN0b3J5IG5hbWUgaW4gdGVzdCAobHNlZGxhcikKLS0gSW1w cm92ZSB0ZXN0ZW52IGZvciBweTI2IChjcWkpCi0tIFJ1biB0ZXN0cyB3aXRoIG9sZCBHaXRQeXRo b24gaW4gcHkyNiB0ZXN0ZW52IChjcWkpCi0tIENvbXBpbGUgcHljdXJsIHdpdGggb3BlbnNzbCBh ZnRlciBGMjcgKGNxaSkKLS0gSWdub3JlIC5lZ2cvIGZyb20gZ2l0IChjcWkpCi0tIEFkZCBweTI2 IHRvIHRlc3RlbnYgKGNxaSkKLS0gSW5zdGFsbCBrb2ppIGZyb20gUHlQSSAoY3FpKQotLSBNYWtl IGNvbXBvc2UtaWQgYW5kIHJlcG8tdXJsIHRvIHRha2Ugb25lIG9yIG1vcmUgdmFsdWVzIChjc29t aCkKLS0gTGV0IGdpdCBpZ25vcmUgbW9yZSBkaXJlY3RvcmllcyAoY3FpKQotLSBFeGNsdWRlIHB5 YyBhbmQgX19weWNhY2hlX18gZ2xvYmFsbHkgaW4gc2Rpc3QgKGNxaSkKLS0gSGFuZGxlIG5vbmV4 aXN0aW5nIG1icy1tYW5hZ2VyIChjcWkpCi0tIEFkZCBkZXBlbmRlbnQgcGFja2FnZXMgZm9yIFB5 dGhvbiAyLjYgaW4gc2V0dXAucHkgKGNxaSkKLS0gVXBkYXRlZCBtb2R1bGUgY2xpIEFQSSAobWN1 cmxlaikKLS0gRGVjbGFyZSBQeXRob24gdmVyc2lvbnMgcnBrZyBjYW4gd29yayB3aXRoIC0gIzI3 OCAoY3FpKQotLSBGaXggZmxha2U4IGVycm9ycyAoY3FpKQotLSBGaXggdGVzdHMgdGhhdCBkbyBu b3Qgd29yayB3aXRoIFB5dGhvbiAzIChjcWkpCi0tIEZpeCB0ZXN0czogbm90IGltcGFjdCBieSBk aWN0Lml0ZW1zIGNhbGwgKGNxaSkKLS0gQWRkIHB5MzYgdG8gdGVzdGVudiAtICMyNzQgKGNxaSkK LS0gUnVuIHRveCB0byBydW4gdGVzdHMgYW5kIGNoZWNrIGNvZGUgc3R5bGVzIC0gIzI3NiAoY3Fp KQotLSBVc2UgZmxha2U4IDMuNS4wIChjcWkpCi0tIEFkZCBmaWxlcyB1bmRlciByZXF1aXJlbWVu dHMvIHRvIHNkaXN0IHBhY2thZ2UgKGNxaSkKLS0gSW5zdGFsbCBLb2ppIHNoYXJlZCBsaWJyYXJ5 IHZpYSBzZXR1cHRvb2xzIChjcWkpCi0tIFNldCBpbnN0YWxsIGFuZCB0ZXN0cyByZXF1aXJlcyBp biBzZXR1cC5weSAoY3FpKQotLSBTcGxpdCBweXBpIHJlcXVpcmVtZW50cyBhbmQgcmVmaW5lIHZl cnNpb25zIChjcWkpCi0tIENoYW5nZSB0eXBlIG9mIGNvbXBvc2UgaWQgZnJvbSBzdHJpbmcgdG8g aW50IChiZm9udGVjYykKLS0gSW5zdGFsbCBSUE0gUHl0aG9uIGJpbmRpbmcgZnJvbSBQeVBJIChj cWkpCi0tIEZpeCB0ZXN0IHRlc3RfbGludF9lYWNoX2ZpbGVfb25jZSAoY3FpKQotLSBBZGQgY29t cG9zZS1pZCBhbmQgc2lnbmluZy1pbnRlbnQgYXJndW1lbnRzIChiZm9udGVjYykKLS0gVXNlIGVu didzIHB5dGhvbiAobHVjYXJ2YWwpCi0tIFVzZSBwcm9ncmVzcyBjYWxsYmFjayBhbmQgVGFza1dh dGNoZXIgZnJvbSBrb2ppX2NsaS5saWIgKGNxaSkKLS0gR2V0IGJ1aWxkaGFzaCBmcm9tIGdpdCto dHRwczovLyB1cmwgKGxzZWRsYXIpCi0tIGxpbnQ6IEF2b2lkIGNoZWNraW5nIHJwbSdzIG11bHRp cGxlIHRpbWVzICh0bXopCi0tIEZpeCBnaXR1cmwgYXMgd2VsbCBieSBjYWxsaW5nIGNvbnN0cnVj dF9idWlsZF91cmwgKGNxaSkKLS0gRml4IGNvbnN0cnVjdCBhbm9uZ2l0dXJsIGZvciBjaGFpbi1i dWlsZCAoY3FpKQotLSBGaXggbW9jayBvcGVuaWRjX2NsaWVudCAoY3FpKQotCi0qIEZyaSBGZWIg MDkgMjAxOCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qu b3JnPiAtIDEuNTEtNAotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dp a2kvRmVkb3JhXzI4X01hc3NfUmVidWlsZAotCi0qIFR1ZSBKYW4gMjMgMjAxOCBDaGVueGlvbmcg UWkgPGNxaUByZWRoYXQuY29tPiAtIDEuNTEtMwotLSBCYWNrcG9ydDogQWRkIGNvbXBvc2UtaWQg YW5kIHNpZ25pbmctaW50ZW50IGFyZ3VtZW50cwotLSBCYWNrcG9ydDogQ2hhbmdlIHR5cGUgb2Yg Y29tcG9zZSBpZCBmcm9tIHN0cmluZyB0byBpbnQKLQotKiBXZWQgTm92IDA4IDIwMTcgQ2hlbnhp b25nIFFpIDxjcWlAcmVkaGF0LmNvbT4gLSAxLjUxLTIKLS0gQmFja3BvcnQ6IEZpeCBjb25zdHJ1 Y3QgYW5vbmdpdHVybCBmb3IgY2hhaW4tYnVpbGQKLS0gQmFja3BvcnQ6IEZpeCBnaXR1cmwgYXMg d2VsbCBieSBjYWxsaW5nIGNvbnN0cnVjdF9idWlsZF91cmwKLQotKiBGcmkgT2N0IDIwIDIwMTcg Q2hlbnhpb25nIFFpIDxjcWlAcmVkaGF0LmNvbT4gLSAxLjUxLTEKLS0gSWdub3JlIFRlc3RNb2R1 bGVzQ2xpIGlmIG9wZW5pZGMtY2xpZW50IGlzIHVuYXZhaWxhYmxlIChjcWkpCi0tIFBvcnQgbWJz LWJ1aWxkIHRvIHJwa2cgKG1wcmFobCkKLS0gQWRkIC52c2NvZGUgdG8gLmdpdGlnbm9yZSAobXBy YWhsKQotLSBGaXggVGVzdFBhdGNoLnRlc3RfcmVkaWZmIGluIG9yZGVyIHRvIHJ1biB3aXRoIG9s ZCB2ZXJzaW9uIG9mIG1vY2sgKGNxaSkKLS0gQWxsb3cgdG8gc3BlY2lmeSBhbHRlcm5hdGl2ZSBD b3ByIGNvbmZpZyBmaWxlIC0gIzE4NCAoY3FpKQotLSBUZXN0cyBmb3IgcGF0Y2ggY29tbWFuZCAo Y3FpKQotLSBNb3JlIFRlc3RzIGZvciBtb2NrYnVpbGQgY29tbWFuZCAoY3FpKQotLSBNb3JlIHRl c3RzIGZvciBnZXR0aW5nIHNwZWMgZmlsZSAoY3FpKQotLSBUZXN0cyBmb3IgY29udGFpbmVyLWJ1 aWxkLXNldHVwIGNvbW1hbmQgKGNxaSkKLS0gVGVzdCBmb3IgY29udGFpbmVyLWJ1aWxkIHRvIHVz ZSBjdXN0b20gY29uZmlnIChjcWkpCi0tIFN1cHByZXNzIG91dHB1dCBmcm9tIGdpdCBjb21tYW5k IHdpdGhpbiBzZXRVcCAoY3FpKQotLSBTa2lwIHRlc3QgaWYgcnBtZmx1ZmYgaXMgbm90IGF2YWls YWJsZSAobHNlZGxhcikKLS0gQWxsb3cgdG8gb3ZlcnJpZGUgYnVpbGQgVVJMIChjcWkpCi0tIFRl c3QgZm9yIG1vY2stY29uZmlnIGNvbW1hbmQgKGNxaSkKLS0gVGVzdHMgZm9yIGNvcHItYnVpbGQg Y29tbWFuZCAoY3FpKQotLSBGaXggYXJjaC1vdmVycmlkZSBmb3IgY29udGFpbmVyLWJ1aWxkIChs dWNhcnZhbCkKLS0gUmVtb3ZlIHVuc3VwcG9ydGVkIG9zYnMgZm9yIGNvbnRhaW5lci1idWlsZCAo bHVjYXJ2YWwpCi0tIGNsaTogYWRkIC0tYXJjaGVzIHN1cHBvcnQgZm9yIGtvamlfY29pbnRhaW5l cmJ1aWxkIChtbGFuZ3NkbykKLS0gU3RyaXAgcmVmcy9oZWFkcy8gZnJvbSBicmFuY2ggb25seSBv bmNlIChsc2VkbGFyKQotLSBEb24ndCBpbnN0YWxsIGJpbiBhbmQgY29uZmlnIGZpbGVzIChjcWkp Ci0tIEZpeCBrb2ppcHJvZmlsZSBzZWxlY3Rpb24gaW4gY2xpQ2xpZW50LmNvbnRhaW5lcl9idWls ZF9rb2ppIChjcWkpCi0tIEF2b2lkIGJyYW5jaCBkZXRlY3Rpb24gZm9yICdycGtnIHNvdXJjZXMn IChwcmFpc2t1cCkKLS0gRml4IGVuY29kaW5nIGluIG5ldyBjb21tYW5kIChjcWkpCi0tIE1pbm9y IHdvcmRpbmcgaW1wcm92ZW1lbnQgaW4gaGVscCAocGdpZXIpCi0tIEZpeCBpbmRlbnRhdGlvbiAo cHZpa3RvcmkpCi0tIEFkZCAtLXdpdGggYW5kIC0td2l0aG91dCBvcHRpb25zIHRvIG1vY2tidWls ZCAocHZpa3RvcmkpCi0KLSogVGh1IEF1ZyAzMSAyMDE3IENoZW54aW9uZyBRaSA8Y3FpQHJlZGhh dC5jb20+IC0gMS41MC0yCi0tIEJhY2twb3J0OiBGaXgga29qaXByb2ZpbGUgc2VsZWN0aW9uIGlu IGNsaUNsaWVudC5jb250YWluZXJfYnVpbGRfa29qaSAoY3FpKQotCi0qIFRodSBBdWcgMTAgMjAx NyBDaGVueGlvbmcgUWkgPGNxaUByZWRoYXQuY29tPiAtIDEuNTAtMQotLSBGaXggUEVQOCBlcnJv ciAoY3FpKQotLSBTcGVsbGluZyBmaXhlcyAodmlsbGUuc2t5dHRhKQotLSBSZXdvcmQgaGVscCBh bmQgZGVzY3JpcHRpb24gb2YgbmV3LXNvdXJjZXMgYW5kIHVwbG9hZCBjb21tYW5kcyAtIHJoYnoj MTI0ODczNwotICAoY3FpKQotLSBTZXQgYXV0b3JlYnVpbGQgZW5hYmxlZCBieSBkZWZhdWx0IChi Zm9udGVjYykKLS0gQWRkIGNvbW1hbmRzIHRvIHdoaXRlbGlzdF9leHRlcm5hbHMgKGNxaSkKLS0g RGVjbGFyZSBQeXRob24gMyB2ZXJzaW9ucyB0byBzdXBwb3J0IGluIHNldHVwLnB5IChjcWkpCi0t IFJlcGxhY2UgdW5pY29kZSB3aXRoIHNpeC50ZXh0X3R5cGUgKGNxaSkKLS0gUnVuIHRlc3RzIGlu IGJvdGggUHl0aG9uIDIgYW5kIDMgd2l0aCB0b3ggKGNxaSkKLS0gTWFrZSB0ZXN0cyBhbmQgY292 ZXJlZCBjb2RlIGNvbXBhdGlibGUgd2l0aCBQeTMgKGNxaSkKLS0gQWRkIHJlcXVpcmVtZW50cyBm aWxlcyAoY3FpKQotLSBEbyBub3QgYnVpbGQgc3JwbSBpbiB0ZXN0IChjcWkpCi0tIERvIG5vdCBh Y3R1YWxseSBydW4gZ2l0LWRpZmYgaW4gdGVzdHMgKGNxaSkKLS0gUmVtb3ZlIGRlcHJlY2F0ZWQg bW9kdWxlcyB1c2VkIGluIGtvamkgKGNxaSkKLS0gTm9uLXplcm8gZXhpdCB3aGVuIHJwbWJ1aWxk IGZhaWxzIGluIGxvY2FsIGNvbW1hbmQgKGNxaSkKLS0gUmVwb3J0IGRlcHJlY2F0aW9uIG9mIGNv bmZpZyB2aWEgbG9nZ2VyIChsc2VkbGFyKQotLSBQcmludCAtLWRpc3QgZGVwcmVjYXRpb24gd2Fy bmluZyBleHBsaWNpdGx5IChsc2VkbGFyKQotLSB1dGlsczogQXZvaWQgRGVwcmVjYXRpb25XYXJu aW5nIGZvciBtZXNzYWdlcyBmb3IgdXNlcnMgKGxzZWRsYXIpCi0tIFN1cHBseSBuYW1lc3BhY2Ug dG8gbG9va2FzaWRlIChpZiBlbmFibGVkKSAobHNlZGxhcikKLS0gU3VwcG9ydCByZWFkaW5nIGtv amkgY29uZmlnIGZyb20gcHJvZmlsZSAtICMxODcgKGNxaSkKLS0gUmVtb3ZlIGtpdGNoZW4gKGNx aSkKLS0gRml4IHN0cmluZyBmb3JtYXQgKGNxaSkKLS0gUmVjb21tZW5kIC0tcmVsZWFzZSBpbnN0 ZWFkIG9mIC0tZGlzdCBpbiBtb2NrYnVpbGQgLS1oZWxwICh0bXopCi0tIEFsbG93IG92ZXJyaWRp bmcgY29udGFpbmVyIGJ1aWxkIHRhcmdldCBieSBkb3duc3RyZWFtIChsc2VkbGFyKQotLSBBZGQg YSBzZXBhcmF0ZSBwcm9wZXJ0eSBmb3IgbmFtZXNwYWNlIChsc2VkbGFyKQotLSBBbGxvdyBjb250 YWluZXIgYnVpbGRzIGZyb20gYW55IG5hbWVzcGFjZSAobWF4YW1pbGxpb24pCi0tIE1ha2Ugb3Ni cyBzdXBwb3J0IG9wdGlvbmFsIChjcWkpCi0tIG1ha2Ugb3NicyBkZXBlbmRlbmN5IG9wdGlvbmFs IChwYXZsaXgpCi0tIEFsbG93IGV4cGxpY2l0IG5hbWVzcGFjZXMgd2l0aCBzbGFzaGVzIChsc2Vk bGFyKQotLSBEbyBub3QgaGFuZyBpbmRlZmluaXRlbHkgd2hlbiBsb29rYXNpZGUgY2FjaGUgc2Vy dmVyIHN0b3BzIHNlbmRpbmcgZGF0YQotICAoamthbHV6YSkKLS0gTWFrZSAtLW1vZHVsZS1uYW1l IHdvcmsgd2l0aCBuYW1lc3BhY2VzIC0gIzIxNiAobHNlZGxhcikKLS0gSW5jbHVkZSBSRUFETUUu cnN0IGluIGRpc3QgcGFja2FnZSAoY3FpKQotLSBNb3JlIGRvY3VtZW50IGluIFJFQURNRSAtICMx ODkgKGNxaSkKLS0gTWFrZSBuZXcgY29tbWFuZCBiZSBhYmxlIHRvIHByaW50IHVuaWNvZGUgLSAj MjA1IChjcWkpCi0tIEFsbG93IHRvIHNwZWNpZnkgY3VzdG9tIGluZm8gdG8gYSBkdW1teSBjb21t aXQgKGNxaSkKLS0gTG9hZCBtb2R1bGUgbmFtZSBjb3JyZWN0bHkgZXZlbiBpZiBwdXNoIHVybCBl bmRzIGluIHNsYXNoIC0gIzE5MiAoY3FpKQotLSBSZXBsYWNlIGZlZG9yYWhvc3RlZC5vcmcgd2l0 aCBwYWd1cmUuaW8gLSAjMjAyIChjcWkpCi0tIEZpeCBycG0gY29tbWFuZCB0byBnZXQgY2hhbmdl bG9nIGZyb20gU1BFQyAtIHJoYnojMTQxMjIyNCAoY3FpKQotLSBSZXdyaXRlIHRlc3RzIHRvIGF2 b2lkIHJ1bm5pbmcgcnBtYnVpbGQgYW5kIHJwbWxpbnQgKGNxaSkKLS0gVXNlIGZha2UgdmFsdWUg dG8gbWFrZSBDb21tYW5kIGluIHRlc3QgKGNxaSkKLS0gUHl0aG9uIDMuNiBpbnZhbGlkIGVzY2Fw ZSBzZXF1ZW5jZSBkZXByZWNhdGlvbiBmaXhlcyAodmlsbGUuc2t5dHRhKQotCi0qIFRodSBKdWwg MjcgMjAxNyBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qu b3JnPiAtIDEuNDktNwotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dp a2kvRmVkb3JhXzI3X01hc3NfUmVidWlsZAotCi0qIE1vbiBKdWwgMTAgMjAxNyBDaGVueGlvbmcg UWkgPGNxaUByZWRoYXQuY29tPiAtIDEuNDktNgotLSBSZW5hbWUga29qaSB0byBweXRob24yLWtv amkKLQotKiBUaHUgSnVuIDI5IDIwMTcgTHVib23DrXIgU2VkbMOhxZkgPGxzZWRsYXJAcmVkaGF0 LmNvbT4gLSAxLjQ5LTUKLS0gQWxsb3cgdXNpbmcgbmFtZXNwYWNlIGluIC0tbW9kdWxlLW5hbWUg YXR0cmlidXRlCi0KLSogVGh1IEp1biAyMiAyMDE3IENoZW54aW9uZyBRaSA8Y3FpQHJlZGhhdC5j b20+IC0gMS40OS00Ci0tIFJlbW92ZSBweXRob24tb3Nicy1jbGllbnQKLQotKiBGcmkgSnVuIDE2 IDIwMTcgQ2hlbnhpb25nIFFpIDxjcWlAcmVkaGF0LmNvbT4gLSAxLjQ5LTMKLS0gQmFja3BvcnQg dG8gbWFrZSBvc2JzIG9wdGlvbmFsCi0KLSogTW9uIE1hciAyNyAyMDE3IENoZW54aW9uZyBRaSA8 Y3FpQHJlZGhhdC5jb20+IC0gMS40OS0yCi0tIFJlYnVpbHQgdG8gcmVuYW1lIHB5cnBrZyB0byBw eXRob24yLXJwa2cKLQotKiBXZWQgRmViIDIyIDIwMTcgQ2hlbnhpb25nIFFpIDxjcWlAcmVkaGF0 LmNvbT4gLSAxLjQ5LTEKLS0gTW9yZSB1cGxvYWQgUHlDVVJMIGZpeGVzIGZvciBFTCA3IChtZXJs aW4pCi0tIE1vdmUgdGFnIGluaGVyaXRhbmNlIGNoZWNrIGludG8gYSBzZXBhcmF0ZSBtZXRob2Qg KGNxaSkKLQotKiBTYXQgRmViIDExIDIwMTcgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJl bGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjQ4LTMKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9m ZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8yNl9NYXNzX1JlYnVpbGQKLQotKiBXZWQgRmVi IDEgMjAxNyBMdWJvbcOtciBTZWRsw6HFmSA8bHNlZGxhckByZWRoYXQuY29tPiAtIDEuNDgtMgot LSBCYWNrcG9ydCBwYXRjaCB0byBtb3ZlIHRhZyBpbmhlcml0YW5jZSBjaGVjayB0byBzZXBhcmF0 ZSBtZXRob2QKLQotKiBUaHUgRGVjIDIyIDIwMTYgQ2hlbnhpb25nIFFpIDxjcWlAcmVkaGF0LmNv bT4gLSAxLjQ4LTEKLS0gQmV0dGVyIG1lc3NhZ2Ugd2hlbiBmYWlsIHRvIGF1dGhlbnRpY2F0ZSB2 aWEgS2VyYmVyb3MgLSAjMTgwIChjcWkpCi0KLSogTW9uIERlYyAxOSAyMDE2IENoZW54aW9uZyBR aSA8Y3FpQHJlZGhhdC5jb20+IC0gMS40Ny03Ci0tIFJlZmFjdG9yIENvbW1hbmRzLl9zcnBtZGV0 YWlscyAoY3FpKQotCi0qIFRodSBEZWMgMTUgMjAxNiBDaGVueGlvbmcgUWkgPGNxaUByZWRoYXQu Y29tPiAtIDEuNDctNgotLSBBZGQgbWlzc2luZyBpbXBvcnQga29qaS5zc2wuU1NMQ29tbW9uIC0g QlojMTQwNDEwMiAoY3FpKQotLSBGaXggdXBsb2FkIHdpdGggb2xkIFB5Q1VSTCAtIEJaIzEyNDEw NTkgKGxzZWRsYXIpCi0KLSogTW9uIERlYyAxMiAyMDE2IEx1Ym9tw61yIFNlZGzDocWZIDxsc2Vk bGFyQHJlZGhhdC5jb20+IC0gMS40Ny01Ci0tIEZpeCBkZWZhdWx0IHZhbHVlIGZvciBrcmJfcmRu cyBvcHRpb25zCi0KLSogTW9uIERlYyAxMiAyMDE2IEx1Ym9tw61yIFNlZGzDocWZIDxsc2VkbGFy QHJlZGhhdC5jb20+IC0gMS40Ny00Ci0tIEFkZCBrcmJfcmRucyBrb2ppIGNvbmZpZwotCi0qIFRo dSBEZWMgMDggMjAxNiBMdWJvbcOtciBTZWRsw6HFmSA8bHNlZGxhckByZWRoYXQuY29tPiAtIDEu NDctMwotLSBDb25mbGljdCB3aXRoIHRvbyBvbGQgZmVkcGtnCi0KLSogV2VkIERlYyAwNyAyMDE2 IENoZW54aW9uZyBRaSA8Y3FpQHJlZGhhdC5jb20+IC0gMS40Ny0yCi0tIEZpeCB0ZXN0IHRoYXQg ZmFpbHMgb24gYSBLb2ppIEFSTSBidWlsZGVyCi0KLSogRnJpIERlYyAwMiAyMDE2IENoZW54aW9u ZyBRaSA8Y3FpQHJlZGhhdC5jb20+IC0gMS40Ny0xCi0tIE5ldyB1cHN0cmVhbSByZWxlYXNlIDEu NDcKLQotKiBUdWUgT2N0IDI1IDIwMTYgTHVib23DrXIgU2VkbMOhxZkgPGxzZWRsYXJAcmVkaGF0 LmNvbT4gLSAxLjQ2LTUKLS0gQWxsb3cgdXNpbmcgZ3NzYXBpIGZvciBsb29rYXNpZGUgY2FjaGVz Ci0KLSogVHVlIFNlcCAwNiAyMDE2IEx1Ym9tw61yIFNlZGzDocWZIDxsc2VkbGFyQHJlZGhhdC5j b20+IC0gMS40Ni00Ci0tIFVwZGF0ZSBkZXBlbmRlbmNpZXMgZm9yIHB5dGhvbi1hcmdwYXJzZSBh bmQgcHl0aG9uLWhhc2hsaWIKLQotKiBUaHUgQXVnIDI1IDIwMTYgQ2hlbnhpb25nIFFpIDxjcWlA cmVkaGF0LmNvbT4gLSAxLjQ2LTMKLS0gcHl0aG9uLXNpeC0xLjkuMCBpcyB0aGUgbWluaW11bSB2 ZXJzaW9uIHJwa2cgZGVwZW5kcwotCi0qIFR1ZSBKdWwgMTkgMjAxNiBGZWRvcmEgUmVsZWFzZSBF bmdpbmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjQ2LTIKLS0g aHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0NoYW5nZXMvQXV0b21hdGljX1Byb3ZpZGVz X2Zvcl9QeXRob25fUlBNX1BhY2thZ2VzCi0KLSogRnJpIEp1bCAxNSAyMDE2IENoZW54aW9uZyBR aSA8Y3FpQHJlZGhhdC5jb20+IC0gMS40Ni0xCi0tIFdhcm5pbmcgdW50cmFja2VkIHBhdGNoZXMg d2hlbiBwdXNoIChjcWkpCi0tIGhhbmRsZSBjb3JyZWN0IHNwZWMgcGF0aCB3aGVuIHB1c2ggZnJv bSBvdXRzaWRlIHRoZSByZXBvIChjcWkpCi0tIFJlbW92ZSBzdXBwb3J0IGZvciBCdWlsZENvbnRh aW5lciByZWxlYXNlIHRhc2sgb3B0IChsdWNhcnZhbCkKLQotKiBNb24gSnVuIDI3IDIwMTYgQ2hl bnhpb25nIFFpIDxjcWlAcmVkaGF0LmNvbT4gLSAxLjQ1LTIKLS0gRGVwZW5kIG9uIHB5dGhvbi1z aXggdG8gYmUgY29tcGF0aWJsZSB3aXRoIFB5dGhvbiAzCi0KLSogTW9uIEp1biAyNyAyMDE2IENo ZW54aW9uZyBRaSA8Y3FpQHJlZGhhdC5jb20+IC0gMS40NS0xCi0tIGFkZCBtaXNzaW5nIGdpdC1j b25maWcgaW4gdGhlIGdpdCByZXBvIGZvciB0ZXN0aW5nIChjcWkpCi0tIERvbid0IHByaW50IGRv d25sb2FkL3VwbG9hZCBwcm9ncmVzcyBvdXRzaWRlIG9mIFRUWSAobHNlZGxhcikKLS0gTWVyZ2Ug IzU4IGBSZWJhc2Ugb2YgIzI4IHdpdGggY29uZmxpY3QgcmVzb2x2ZWRgIChjcWkpCi0tIEdldCBj b3JyZWN0IGxvZ2luIHdpdGhvdXQgVFRZICh2Z29sb2d1eikKLS0gTWVyZ2UgIzYzIGBNb3JlIFB5 dGhvbiAzIGNvbXBhdGliaWxpdHkgZml4ZXNgIChsdWJvbWlyLnNlZGxhcikKLS0gZml4IGJyb2tl biB3aGVuIG5vbi1BU0NJSSBpbiBwYXRoIChjcWkpCi0tIE1vcmUgUHl0aG9uIDMgY29tcGF0aWJp bGl0eSBmaXhlcyAodmlsbGUuc2t5dHRhKQotLSBGaXggcHVzaCBjYWxsZWQgd2l0aG91dCBhcmd1 bWVudCAobHNlZGxhcikKLS0gVXNlIGxvZ2dpbmcud2FybmluZyBpbnN0ZWFkIG9mIGRlcHJlY2F0 ZWQgbG9nZ2luZy53YXJuICh2aWxsZS5za3l0dGEpCi0tIFVzZSBhc3NlcnRFcXVhbCBpbnN0ZWFk IG9mIGRlcHJlY2F0ZWQgYXNzZXJ0RXF1YWxzICh2aWxsZS5za3l0dGEpCi0tIFNwZWxsaW5nIGZp eGVzICh2aWxsZS5za3l0dGEpCi0tIEFkZCBtaXNzaW5nIGRlcGVuZGVuY2llcyB0byBzZXR1cC5w eSAodmlsbGUuc2t5dHRhKQotLSBBZGQgdGVzdHMgZm9yIGNsb25pbmcgd2l0aCBhIG5hbWVzcGFj ZSAobHNlZGxhcikKLS0gRml4IGNsb25pbmcgd2l0aCAtQiBhbmQgbmFtZXNwYWNlZCBtb2R1bGUg KGxzZWRsYXIpCi0tIEFkanVzdCBmaWd1cmluZyBvdXQgdGhlIHBhdGggb2YgdGhlIGdpdCByZXBv IGNsb25lZCAocGluZ291KQotLSBPbmx5IGNsb25lIGludG8gdGhlIGJhcmVfZGlyIGlmIG5vIHRh cmdldCB3YXMgc3BlY2lmaWVkIChwaW5nb3UpCi0tIEFkZCB0byB0aGUgQ0xJIHRoZSBwb3NzaWJp bGl0eSB0byBzcGVjaWZ5IGEgdGFyZ2V0IGZvbGRlciBmb3IgdGhlIGNsb25lCi0gIChwaW5nb3Up Ci0tIEFkZCB1bml0LXRlc3RzIGZvciBjbG9uaW5nIGludG8gYSBzcGVjaWZpZWQgZGlyZWN0b3J5 IChwaW5nb3UpCi0tIExldCBycGtnIHN1cHBvcnQgY2xvbmluZyBpbnRvIGEgc3BlY2lmaWVkIGRp cmVjdG9yeSAocGluZ291KQotLSBQeXRob24gMyBmaXhlcyAodmlsbGUuc2t5dHRhKQotLSByZXdy aXRlIHRlc3RfY29tbWFuZHMuc2V0dXBfbW9kdWxlIHVzaW5nIGdpdCAoY3FpKQotLSBNZXJnZSAj NDAgYHB1c2g6IGNoZWNrIGZvciBtaXNzaW5nIHBhdGNoZXNgIChsdWJvbWlyLnNlZGxhcikKLQot KiBUaHUgSnVuIDAyIDIwMTYgTHVib23DrXIgU2VkbMOhxZkgPGxzZWRsYXJAcmVkaGF0LmNvbT4g LSAxLjQ0LTEKLS0gTG9nIGNvbnRhaW5lci1idWlsZCB0YXNrIHJlc3VsdHMgKGx1Y2FydmFsKQot LSBBZGQgc3VwcG9ydCBmb3IgQnVpbGRDb250YWluZXIgcmVsZWFzZSB0YXNrIG9wdCAobHVjYXJ2 YWwpCi0tIGhhbmRsZSBleGNlcHRpb24gZnJvbSBnZXRUYXNrSW5mbyBjb3JyZWN0bHkgKGNxaSkK LS0gZml4IGZhaWx1cmUgb2YgdGVzdF9sb2FkX3NwZWNfd2hlcmVfcGF0aF9jb250YWluc19zcGFj ZSBvbiBSSEVMIChjcWkpCi0tIGFsbG93IHNwYWNlIGFwcGVhcmluZyBpbiBwYXRoIHRvIGNsb25l ZCByZXBvIChjcWkpCi0tIGZpeCBkb2NzdHJpbmcgb2YgQ29tbWFuZHMuY29tcGlsZSAoY3FpKQot LSBNYWtlICdGYWlsZWQgdG8gZ2V0IG5zX21vZHVsZV9uYW1lIGZyb20gR2l0IHVybCBvciBwdXNo dXJsJyBtZXNzYWdlIGEgd2FybmluZwotICAoaXNzdWUgIzQyKSAob3Jpb24pCi0tIHB5cnBrZzog dXNlIGdpdCByZW1vdGUgZ2V0LXVybCAtLXB1c2ggKG1hdGhzdHVmKQotCi0qIFdlZCBNYXIgMjMg MjAxNiBMdWJvbcOtciBTZWRsw6HFmSA8bHVib21pci5zZWRsYXJAZ21haWwuY29tPiAtIDEuNDMt MQotLSBQcmludCB3YXJuaW5nIHdoZW4gdXNpbmcgb2xkIGdpdCBjb25maWd1cmF0aW9uIChsc2Vk bGFyKQotLSBBZGQgcnBtcyBuYW1lc3BhY2UgZm9yIGNoZWNrb3V0cyB3aXRob3V0IG5hbWVzcGFj ZSAobHNlZGxhcikKLQotKiBXZWQgTWFyIDE2IDIwMTYgTHVib23DrXIgU2VkbMOhxZkgPGx1Ym9t aXIuc2VkbGFyQGdtYWlsLmNvbT4gLSAxLjQyLTEKLS0gRml4IHByb2JsZW1zIHdpdGggbmFtZXNw YWNpbmcgKG1heGFtaWxsaW9uKQotCi0qIE1vbiBNYXIgMTQgMjAxNiBMdWJvbcOtciBTZWRsw6HF mSA8bHVib21pci5zZWRsYXJAZ21haWwuY29tPiAtIDEuNDEtMgotLSBEZXBlbmQgb24gcHl0aG9u LW9zYnMgZGlyZWN0bHkgdG8gYXZvaWQgcHl0aG9uMwotCi0qIE1vbiBNYXIgMTQgMjAxNiBMdWJv bcOtciBTZWRsw6HFmSA8bHVib21pci5zZWRsYXJAZ21haWwuY29tPiAtIDEuNDEtMQotLSBVcGRh dGUgdXBzdHJlYW0gVVJMIChsc2VkbGFyKQotLSBGaXhlcyBiYXNlZCBvbiBsc2VkbGFyJ3MgZmVl ZGJhY2sgKG1heGFtaWxsaW9uKQotLSBhZGQgZGlzdGdpdCBuYW1lc3BhY2luZyBmb3Igbm9uLXJw bSBjb250ZW50IChkb2NrZXIsIHhkZy1hcHAsIGV0YykgKG1heGFtaWxsaW9uKQotLSBDb250YWlu ZXItYnVpbGQ6IGRvbnQndCBhbGxvdyB0byBidWlsZCB3aXRoIHVucHVzaGVkIGNoYW5nZXMgKGFy YXN6a2EpCi0tIFN1Z2dlc3QgLS1kaXN0IG9wdGlvbiB3aGVuIGNhbid0IGdldCBPUyB2ZXIgZnJv bSBicmFuY2ggKGFyYXN6a2EpCi0tIGZpeDogcHJpbnQgYWxsIHRhZ3Mgd2l0aG91dCBmaWx0ZXIg KGFyYXN6a2EpCi0tIEZpeCBsb29rYXNpZGUgdXBsb2FkIHdoZW4gLS1wYXRoIGlzIHNwZWNpZmll ZCAoYXJhc3prYSkKLS0gTG9va2FzaWRlOiBlbmNvZGluZyByZXBvIG5hbWUgdG8gVVRGLTggKGFy YXN6a2EpCi0tIEZpeCBlcnJvcnMgb24gUHl0aG9uIDIuNiAobHNlZGxhcikKLS0gQWRkIHRlc3Qg YW5kIGRvY3N0cmluZyB0byBieXRlIG9mZnNldCBjb252ZXJ0b3IgKGFyYXN6a2EpCi0tIERlY29k ZSAuc3BlYyBmaWxlIHdpdGggVVRGLTggKGFyYXN6a2EpCi0tIDEyNzE3NDEgLSBhZGQgY29wciBj b21tYW5kIChSZWNvbW1lbmRzOiBjb3ByLWNsaSkgKG1zdWNoeSkKLS0gU3VnZ2VzdCAtLXRhcmdl dCBvcHRpb24gd2hlbiB1bmtub3duIHRhcmdldCAoYXJhc3prYSkKLQotKiBUaHUgRmViIDA0IDIw MTYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4g LSAxLjQwLTIKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0Zl ZG9yYV8yNF9NYXNzX1JlYnVpbGQKLQotKiBGcmkgT2N0IDIzIDIwMTUgUGF2b2wgQmFiaW5jYWsg PHBiYWJpbmNhQHJlZGhhdC5jb20+IC0gMS40MC0xCi0tIGRvbid0IHVzZSBhc3NlcnRSYWlzZXMg KHR0b21lY2VrKQotLSByZWZhY3RvciB0ZXN0X2Nsb25lOiBzZXQgY2xvbmUgY29uZmlnIGluIHRo ZSBzYW1lIHRlc3QgZmlsZSAocGJhYmluY2EpCi0tIEZpeCBjbG9uZSB0ZXN0IHRvIG5vdCB1c2Ug Y29uc3RydWN0b3IgdG8gc2V0IGNsb25lX2NvbmZpZyAocGJhYmluY2EpCi0tIEZpeCB0ZXN0IGNs b25lIHRlc3QgKHBiYWJpbmNhKQotLSBNYWtlIHVzZSBvZiBjbG9uZV9jb25maWcgYXR0cmlidXRl IGJhY2t3YXJkcyBjb21wYXRpYmxlIChwYmFiaW5jYSkKLQotKiBUaHUgT2N0IDIyIDIwMTUgUGF2 b2wgQmFiaW5jYWsgPHBiYWJpbmNhQHJlZGhhdC5jb20+IC0gMS4zOS0xCi0tIFJlcGxhY2UgZGVw cmVjYXRlZCBCYXNlRXhjZXB0aW9uLm1lc3NhZ2Ugd2l0aCBzdHIoQmFzZUV4Y2VwdGlvbikgKHBi YWJpbmNhKQotLSBEb24ndCBwcmludCBleGNlcHRpb24gbWVzc2FnZSBkdXJpbmcgY2hlY2sgcmVw byB0ZXN0cyAocGJhYmluY2EpCi0tIEFkZCBzdXBwb3J0IGZvciBzZXR0aW5nIHBvc3QtY2xvbmUg Z2l0IGNvbmZpZyAodmlsbGUuc2t5dHRhKQotCi0qIFdlZCBPY3QgMjEgMjAxNSBQYXZvbCBCYWJp bmNhayA8cGJhYmluY2FAcmVkaGF0LmNvbT4gLSAxLjM4LTEKLS0gRml4IHBhcnNlIGVycm9yIChw YmFiaW5jYSkKLQotKiBXZWQgT2N0IDIxIDIwMTUgUGF2b2wgQmFiaW5jYWsgPHBiYWJpbmNhQHJl ZGhhdC5jb20+IC0gMS4zNy0xCi0tIEFkZCBzdXBwb3J0IGZvciAtLW5vY2hlY2sgKG9yaW9uKQot LSBjb250YWluZXItYnVpbGQ6IGNoZWNrIHJlcG8gKHR0b21lY2VrKQotLSBtb3ZlIHJlcG8gY2hl Y2tpbmcgdG8gYSBtZXRob2QgKHR0b21lY2VrKQotLSBBZGQgJ294dCcgYW5kICd4cGknIGV4dGVu c2lvbnMgdG8gVVBMT0FERVhUUyAoZHNpbGFrb3YpCi0tIFN3aXRjaC1icmFuY2g6IGdpdmUgbW9y ZSBpbmZvIGFib3V0IGVycm9yIChhcmFzemthKQotLSBSZWNvZ25pemUgYmluYXJ5IGZpbGVzIHdp dGggLm94dCBhbmQgLnhwaSBleHRlbnNpb25zIChkc2lsYWtvdikKLS0gQ29udGFpbmVyLWJ1aWxk OiBhZGQgLS1ub3dhaXQgb3B0aW9uIChhcmFzemthKQotLSBiYXNoIGF1dG9jb21wbGV0aW9uOiBz dXBwb3J0IGZvciBjb21tYW5kIGNvbnRhaW5lci1idWlsZC1jb25maWcgKHBiYWJpbmNhKQotLSBJ bXBsZW1lbnQgZ2V0dGVyIGZvciBhdXRvcmVidWlsZCB2YWx1ZSwgdXNlICd0cnVlJyBhbmQgJ2Zh bHNlJyBmb3IgdmFsdWVzCi0gIChia2FicmRhKQotLSBBZGQgYSBjb21tYW5kIGFuZCBvcHRpb24g dG8gY2hhbmdlIGNvbnRhaW5lciBidWlsZCBzZXR1cCAoYmthYnJkYSkKLS0gRWRpdCB0ZXN0cyBm b3IgcHl0aG9uMi42IC0gRUw2IChhcmFzemthKQotLSB0ZXN0czogRG9uJ3QgdXNlIGFzc2VydE5v dEluIChhcmFzemthKQotLSB0ZXN0czogRG9uJ3QgdXNlIGFzc2VydFJhaXNlcyBhcyBjb250ZXh0 IG1hbmFnZXIgKGFyYXN6a2EpCi0tIHRlc3RzOiBEb24ndCB1c2UgY2hlY2tfb3V0cHV0IChhcmFz emthKQotLSBUeXBvIGluIGltcG9ydCAtLWhlbHAgZGVzY3JpcHRpb25zIChhcmFzemthKQotLSBj aGFuZ2UgdGhlIHVybCBmb3IgcnBrZyAoZGVubmlzKQotCi0qIFdlZCBKdWwgMTUgMjAxNSBQYXZv bCBCYWJpbmNhayA8cGJhYmluY2FAcmVkaGF0LmNvbT4gLSAxLjM2LTEKLS0gY29udGFpbmVyLWJ1 aWxkOiBzdXBwb3J0IHl1bSByZXBvcyB3aXRoIC0tYnVpbGQtd2l0aD1rb2ppIChwYmFiaW5jYSkK LS0gY29udGFpbmVyLWJ1aWxkOiBtb3ZlIC0tc2NyYXRjaCBvcHRpb24gdG8ga29qaSBncm91cCAo cGJhYmluY2EpCi0tIFByaW50IHRhc2sgaW5mbyBmb3IgY29udGFpbmVyLWJ1aWxkIChwYmFiaW5j YSkKLQotKiBUaHUgSnVuIDE4IDIwMTUgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbC1l bmdAbGlzdHMuZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4zNS0zCi0tIFJlYnVpbHQgZm9yIGh0dHBz Oi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMjNfTWFzc19SZWJ1aWxkCi0KLSogVHVl IE1heSAyNiAyMDE1IERlbm5pcyBHaWxtb3JlIDxkZW5uaXNAYXVzaWwudXM+IC0gMS4zNS0yCi0t IHB5cnBrZyBSZXF1aXJlcyBweXRob24tb3NicwotCi0qIFR1ZSBNYXkgMjYgMjAxNSBQYXZvbCBC YWJpbmNhayA8cGJhYmluY2FAcmVkaGF0LmNvbT4gLSAxLjM1LTEKLS0gVGVzdCBmb3Igc2NyYXRj aCBvcHQgaW4gdGhlIGFjdHVhbCBhcmd1bWVudCBvZiBjb250YWluZXJfYnVpbGRfa29qaQotICAo cGJhYmluY2EpCi0tIE1vdmUgdGhlIEdpdElnbm9yZSBjbGFzcyB0byBpdHMgb3duIG1vZHVsZSAo Ym9jaGVjaGEpCi0tIE1vZGVybml6ZSB0aGUgZ2l0aWdub3JlLWhhbmRsaW5nIGNvZGUgKGJvY2hl Y2hhKQotLSBnaXRpZ25vcmU6IFByb3Blcmx5IGhhbmRsZSBhZGRpbmcgbWF0Y2hpbmcgbGluZXMg KGJvY2hlY2hhKQotLSBSZWZhY3RvcjogcmVtb3ZlIHVubmVjZXNzYXJ5IGNvZGUgKHBiYWJpbmNh KQotLSBNb3ZlIGN1c3RvbSBVbmtub3duVGFyZ2V0RXJyb3IgdG8gZXJyb3JzIG1vZHVsZSAocGJh YmluY2EpCi0tIE5ldyBjb21tYW5kOiBjb250YWluZXItYnVpbGQgKGpsdXphKQotLSBsb29rYXNp ZGU6IFRha2Ugb3ZlciBmaWxlIHVwbG9hZHMgKGJvY2hlY2hhKQotLSBSZW1vdmUgdW5uZWNlc3Nh cnkgbG9nIG1lc3NhZ2UgKGJvY2hlY2hhKQotLSBTdG9wIG1ha2luZyBzb3VyY2UgZmlsZXMgcmVh ZC1vbmx5IChib2NoZWNoYSkKLS0gRHJvcCBzb21lIHVzZWxlc3MgY29tbWVudHMgKGJvY2hlY2hh KQotLSBPbmx5IHJlcG9ydCB3ZSdyZSB1cGxvYWRpbmcgd2hlbiB3ZSBhY3R1YWxseSBhcmUgKGJv Y2hlY2hhKQotLSBsb29rYXNpZGU6IENoZWNrIGlmIGEgZmlsZSBhbHJlYWR5IHdhcyB1cGxvYWRl ZCAoYm9jaGVjaGEpCi0tIGxvb2thc2lkZTogQWxsb3cgY2xpZW50LXNpZGUgYW5kIGN1c3RvbSBD QSBjZXJ0aWZpY2F0ZXMgKGJvY2hlY2hhKQotLSBsb29rYXNpZGU6IEJlIG1vcmUgZmxleGlibGUg d2hlbiBidWlsZGluZyB0aGUgZG93bmxvYWQgVVJMIChib2NoZWNoYSkKLS0gbG9va2FzaWRlOiBV c2UgdGhlIGhhc2h0eXBlIGZvciB0aGUgVVJMIGludGVycG9sYXRpb24gKGJvY2hlY2hhKQotLSBs b29rYXNpZGU6IEFkZCBhIHByb2dyZXNzIGNhbGxiYWNrIChib2NoZWNoYSkKLS0gbG9va2FzaWRl OiBIYW5kbGUgZG93bmxvYWRpbmcgb2Ygc291cmNlIGZpbGVzIChib2NoZWNoYSkKLS0gbG9va2Fz aWRlOiBNb3ZlIGhhbmRsaW5nIG9mIGZpbGUgdmVyaWZpY2F0aW9uIChib2NoZWNoYSkKLS0gbG9v a2FzaWRlOiBNb3ZlIGhhbmRsaW5nIG9mIGZpbGUgaGFzaGluZyAoYm9jaGVjaGEpCi0tIHV0aWxz OiBBZGQgYSBuZXcgd2Fybl9kZXByZWNhdGVkIGhlbHBlciAoYm9jaGVjaGEpCi0tIEFkZCBhIG5l dyBsb29rYXNpZGUgbW9kdWxlIChib2NoZWNoYSkKLS0gQWRkIGEgbmV3IHV0aWxzIG1vZHVsZSAo Ym9jaGVjaGEpCi0tIFByb3Blcmx5IHNldCB0aGUgbG9nZ2VyIChib2NoZWNoYSkKLS0gTW92ZSBv dXIgY3VzdG9tIGVycm9ycyB0byB0aGVpciBvd24gbW9kdWxlIChib2NoZWNoYSkKLS0gRG9uJ3Qg YXNzdW1lIE1ENSBmb3IgdGhlIGxvb2thc2lkZSBjYWNoZSAoYm9jaGVjaGEpCi0tIFJlbW92ZSBk ZWFkIGNvZGUgKGJvY2hlY2hhKQotLSBVc2UgdGhlIHByb3BlciBleGNlcHRpb24gc3ludGF4IChi b2NoZWNoYSkKLQotKiBUaHUgQXByIDE2IDIwMTUgUGF2b2wgQmFiaW5jYWsgPHBiYWJpbmNhQHJl ZGhhdC5jb20+IC0gMS4zNC0xCi0tIHRlc3RzOiBEb24ndCB1c2UgYXNzZXJ0SXNOb25lIChib2No ZWNoYSkKLS0gdGVzdHM6IERvbid0IHVzZSBhc3NlcnRSYWlzZXMgYXMgYSBjb250ZXh0IG1hbmFn ZXIgKGJvY2hlY2hhKQotLSBBZGQgbG9uZyAtLXZlcmJvc2Ugb3B0aW9uIHRvIC12LCBuZXcgLS1k ZWJ1ZyBhbmQgLWQgb3B0aW9uIChwYmFiaW5jYSkKLQotKiBNb24gQXByIDEzIDIwMTUgUGF2b2wg QmFiaW5jYWsgPHBiYWJpbmNhQHJlZGhhdC5jb20+IC0gMS4zMy0xCi0tIE5ldyBtb2NrYnVpbGQg b3B0aW9uczogLS1uby1jbGVhbiAtLW5vLWNsZWFudXAtYWZ0ZXIgKGpza2FydmFkKQotLSBDYXRj aCBzc2wgYXV0aCBwcm9ibGVtcyBhbmQgcHJpbnQgbW9yZSBoZWxwZnVsIG1lc3NhZ2VzIChwYmFi aW5jYSkKLS0gTmV3IGV4Y2VwdGlvbiAtIHJwa2dBdXRoRXJyb3IgdG8gYWxsb3cgY2xpZW50cyBk ZXRlY3QgYXV0aCBwcm9ibGVtcwotICAocGJhYmluY2EpCi0KLSogTW9uIE1hciAyMyAyMDE1IFBh dm9sIEJhYmluY2FrIDxwYmFiaW5jYUByZWRoYXQuY29tPiAtIDEuMzItMQotLSB0ZXN0czogUHJv cGVybHkgb3Blbi9jbG9zZSB0aGUgZmlsZSAoYm9jaGVjaGEpCi0tIHNvdXJjZXM6IFN1cHBvcnQg d3JpdGluZyBpbiBlaXRoZXIgdGhlIG9sZCBvciBuZXcgZm9ybWF0IChib2NoZWNoYSkKLS0gc291 cmNlczogUmVpbmRlbnQgY29kZSAoYm9jaGVjaGEpCi0KLSogRnJpIE1hciAwNiAyMDE1IFBhdm9s IEJhYmluY2FrIDxwYmFiaW5jYUByZWRoYXQuY29tPiAtIDEuMzEtMQotLSBSZWZhY3RvcjogcmVt b3ZlIHVudXNlZCBpbXBvcnRzIGZyb20gdGVzdF9zb3VyY2VzIChwYmFiaW5jYSkKLS0gRG9uJ3Qg ZG8gc2V2ZXJhbCB0aW1lcyB0aGUgc2FtZSB0aGluZyAoYm9jaGVjaGEpCi0tIHNvdXJjZXM6IEZv cmJpZCBtaXhpbmcgaGFzaCB0eXBlcyAoYm9jaGVjaGEpCi0tIHNvdXJjZXM6IE1vdmUgdG8gdGhl IG5ldyBmaWxlIGZvcm1hdCAoYm9jaGVjaGEpCi0tIFJld3JpdGUgdGhlIHNvdXJjZXMgbW9kdWxl IChib2NoZWNoYSkKLQotKiBXZWQgRGVjIDAzIDIwMTQgUGF2b2wgQmFiaW5jYWsgPHBiYWJpbmNh QHJlZGhhdC5jb20+IC0gMS4zMC0yCi0tIFVzZSAlJXtfX3B5dGhvbn0gaW5zdGVhZCBvZiAlJXtf X3B5dGhvbjJ9IGFzIGl0IG1pZ2h0IGJlIG5vdCBkZWZpbmVkCi0KLSogV2VkIE9jdCAwOCAyMDE0 IFBhdm9sIEJhYmluY2FrIDxwYmFiaW5jYUByZWRoYXQuY29tPiAtIDEuMzAtMQotLSBhZGQgcHl0 aG9uLW5vc2UgYXMgQnVpbGRSZXF1aXJlcyBhcyBydW4gdGVzdHMgaW4gY2hlY2sgc2VjdGlvbiAo cGJhYmluY2EpCi0tIHBhc3MgZXh0cmEgZGF0YSB0byB0aGUgQ29tbWFuZHMgb2JqZWN0IHZpYSBw cm9wZXJ0aWVzIGluc3RlYWQgb2YgX19pbml0X18oKQotICAobWlrZWIpCi0tIGNsZWFuIHVwIEtv amkgbG9naW4sIGFuZCBwcm9wZXJseSBzdXBwb3J0IHBhc3N3b3JkIGF1dGggKG1pa2ViKQotLSBh ZGQgLS1ydW5hcyBvcHRpb24gKG1pa2ViKQotLSBydW4gb3MucGF0aC5leHBhbmR1c2VyIG9uIHRo ZSBrb2ppY29uZmlnIGF0dHJpYnV0ZSBpbiBjYXNlIHRoZSBwYXRoIGlzIGluIHRoZQotICB1c2Vy J3MgaG9tZSBkaXJlY3RvcnkgKGJzdGluc29uKQotLSBPdmVycmlkZSBHSVRfRURJVE9SIGluIHRl c3RzIChwYmFiaW5jYSkKLS0gTWFzc2l2ZSBGbGFrZTggZml4IChib2NoZWNoYSkKLS0gRml4IHNv bWUgbW9yZSBGbGFrZTggaXNzdWVzIChib2NoZWNoYSkKLS0gRml4IHNvbWUgZmxha2U4IGlzc3Vl cyAoYm9jaGVjaGEpCi0tIFNpbXBsaWZ5IHNvbWUgY29kZSAoYm9jaGVjaGEpCi0tIEZpeCB0eXBv IChib2NoZWNoYSkKLS0gdGVzdHM6IEVuc3VyZSBmdW5jdGlvbmluZyBvZiBDb21tYW5kcy5saXN0 X3RhZyAoYm9jaGVjaGEpCi0tIGxpc3RfdGFnczogU3RvcCBleGVjdXRpbmcgYSBjb21tYW5kIChi b2NoZWNoYSkKLS0gbGlzdF90YWdzOiBGaXggdGhlIGRvY3N0cmluZyAoYm9jaGVjaGEpCi0tIGRl bGV0ZV90YWc6IFN0b3AgZXhlY3V0aW5nIGEgY29tbWFuZCAoYm9jaGVjaGEpCi0tIHRlc3RzOiBF bnN1cmUgZnVuY3Rpb25pbmcgb2YgQ29tbWFuZHMuZGVsZXRlX3RhZyAoYm9jaGVjaGEpCi0tIGFk ZF90YWc6IFJ1biB0aGUgdGFnIGNvbW1hbmQgaW4gdGhlIHJpZ2h0IGRpcmVjdG9yeSAoYm9jaGVj aGEpCi0tIHRlc3RzOiBFbnN1cmUgcHJvcGVyIGZ1bmN0aW9uaW5nIG9mIENvbW1hbmRzLmFkZF90 YWcgKGJvY2hlY2hhKQotLSB0ZXN0czogRmFjdG9yIG91dCBzb21lIGNvZGUgKGJvY2hlY2hhKQot LSB0ZXN0czogRW5zdXJlIGZ1bmN0aW9uaW5nIG9mIENvbW1hbmRzLmNsb25lIChib2NoZWNoYSkK LS0gZ2l0aWdub3JlOiBNYWtlIHN1cmUgZWFjaCBsaW5lIGVuZHMgd2l0aCBhIFxuIChib2NoZWNo YSkKLS0gZ2l0aWdub3JlOiBXZSdyZSBub3QgbW9kaWZpZWQgYW55IG1vcmUgYWZ0ZXIgd2Ugd3Jv dGUgdG8gZGlzayAoYm9jaGVjaGEpCi0tIHRlc3RzOiBFbnN1cmUgcHJvcGVyIGZ1bmN0aW9uaW5n IG9mIEdpdElnbm9yZSAoYm9jaGVjaGEpCi0tIHRlc3RzOiBVc2Ugbm9zZSAoYm9jaGVjaGEpCi0t IFJlbW92ZSB1bnVzZWQgaW1wb3J0IChib2NoZWNoYSkKLS0gU29tZSBtb3JlIFBFUDggKGJvY2hl Y2hhKQotLSBBZGQgY2xhc3NpZmllcnMgdG8gc2V0dXAucHkgKHBiYWJpbmNhKQotLSBBZGQgbmV3 IHNvdXJjZXMgZmlsZSBwYXJzZXIgZXZlbiB3aXRoIHVuaXQgdGVzdHMgKHBiYWJpbmNhKQotLSBJ ZiBzb3VyY2UgZmlsZSBkb2Vzbid0IGV4aXN0IGNvbnRpbnVlIHdpdGhvdXQgZG93bmxvYWRpbmcg ZmlsZXMgKHBiYWJpbmNhKQotLSBSZWZvcm1hdCBzZXR1cC5weSB0byBiZSBjb21wbGlhbnQgd2l0 aCBQRVAgOCAocGJhYmluY2EpCi0KLSogVHVlIFNlcCAzMCAyMDE0IFBhdm9sIEJhYmluY2FrIDxw YmFiaW5jYUByZWRoYXQuY29tPiAtIDEuMjgtMQotLSBDb21wYXJlIGZ1bGxlciByZW1vdGUgYnJh bmNoIG5hbWUgd2l0aCBsb2NhbCBicmFuY2ggYmVmb3JlIGJ1aWxkCi0KLSogRnJpIFNlcCAyNiAy MDE0IFBhdm9sIEJhYmluY2FrIDxwYmFiaW5jYUByZWRoYXQuY29tPiAtIDEuMjctMQotLSBFeHBs aWNpdGx5IGRlZmluZSBweXJwa2cncyBjbGllbnQgbmFtZSBmb3IgbWFuIHBhZ2VzIChwYmFiaW5j YSkKLS0gUmVmYWN0b3IgbW9jayByZXN1bHRzIGRpciB0byBwcm9wZXJ0eSAocGJhYmluY2EpCi0t IEFkZCBza2lwLWRpZmZzIG9wdGlvbiBmb3IgaW1wb3J0X3NycG1zIChsYXJzKQotLSBQcm9wZXJs eSByZW1vdmUgcG9zc2libGUgLnB5IHdoZW4gY3JlYXRpbmcgbWFuIHBhZ2VzIChsYXJzKQotLSBQ cm9jZXNzIHNycG0gaW1wb3J0cyB0byBlbXB0eSByZXBvc2l0b3JpZXMgbW9yZSBleHBsaWNpdGx5 IChwYmFiaW5jYSkKLS0gTWFrZSBVUExPQURFWFRTIGEgY2xhc3MgdmFyaWFibGUgdGhhdCBjYW4g YmUgZXh0ZW5kZWQgKGxhcnMpCi0tIEludHJvZHVjZSBzZWxmLmRlZmF1bHRfYnJhbmNoX3JlbW90 ZSBmb3IgZnJlc2ggY2xvbmVzIChwYmFiaW5jYSkKLS0gT24gc2VsZi5wYXRoIGNoYW5nZSByZXNl dCBwcm9wZXJ0aWVzIHdoaWNoIGNvdWxkIHVzZWQgb2xkIHZhbHVlIChwYmFiaW5jYSkKLS0gUmVt b3ZlIGVtcHR5IGVudHJ5IGZyb20gZ2l0IGxzLWZpbGVzIHRvIG5vdCBjb25mdXNlIGZvbGxvd2lu ZyBjb2RlIChwYmFiaW5jYSkKLS0gUmVtb3ZlIGZpbGUgbmFtZXMgZHVyaW5nIHNycG0gaW1wb3J0 IGluIG1vcmUgZXh0ZW5zaWJsZSB3YXkgKHBiYWJpbmNhKQotLSBGaXggaXNzdWUgY2F1c2luZyBh bGwgY3VycmVudCBsb2NhbCBidWlsZHMgdmlhIGZlZHBrZyB0byB1c2UgbWQ1IHJhdGhlciB0aGFu Ci0gIHNoYTI1NiAoc3BvdCkKLS0gTGljZW5zZSByZXBsYWNlZCB3aXRoIG9mZmljaWFsIEdQTCAy LjAgbGljZW5zZSBmcm9tIGdudS5vcmcgKHBiYWJpbmNhKQotLSBBbGxvdyAicnBrZyBjb21taXQg LXMiIChwam9uZXMpCi0KLSogVHVlIEp1bCAyOSAyMDE0IFBhdm9sIEJhYmluY2FrIDxwYmFiaW5j YUByZWRoYXQuY29tPiAtIDEuMjYtMQotLSBycGtnIGRvZXNuJ3QgaGF2ZSBhIHB5dGhvbiBtb2R1 bGUgc28gdXNlIHB5cnBrZyBpbnN0ZWFkIChwYmFiaW5jYSkKLQotKiBUdWUgSnVsIDI5IDIwMTQg UGF2b2wgQmFiaW5jYWsgPHBiYWJpbmNhQHJlZGhhdC5jb20+IC0gMS4yNS0xCi0tIDEuMjUgcmVs ZWFzZSAocGJhYmluY2EpCi0tIE5vdGUgdG8gZG9faW1wb3J0cygpIGRvYy4gKHBiYWJpbmNhKQot LSBDaGFuZ2UgZGVmYXVsdCBvcHRpb24gZm9yIHN3aXRjaC1icmFuY2ggZnJvbSAtLW5vLWZldGNo IHRvIC0tZmV0Y2ggKHBiYWJpbmNhKQotLSBBbGxvdyBkZWZhdWx0IG5hbWUgb2YgdGhlIGxpYnJh cnkgdG8gYmUgc2V0IGJ5IHN1YmNsYXNzZXMgKHBiYWJpbmNhKQotLSBVc2UgbmFtZSBhdHRyaWJ1 dGUgb2YgY2xpQ2xpZW50IHRvIGdldCBjb25maWd1cmF0aW9uIChwYmFiaW5jYSkKLS0gTWFrZSBz ZXR1cC5weSBleGVjdXRhYmxlIChwYmFiaW5jYSkKLS0gVXNlIGRpcmVjdCBnaXQgY2FsbCBmb3Ig ZmV0Y2hlcyAocGJhYmluY2EpCi0tIFByaW50IHJlYXNvbiBmb3IgZmFpbGVkIHN3aXRjaC1icmFu Y2ggKHBiYWJpbmNhKQotLSBNYXRjaCB3aG9sZSBicmFuY2ggd2l0aCByZW1vdGUgbmFtZSB3aGVu IHN3aXRjaGluZyBicmFuY2ggKHBiYWJpbmNhKQotLSBSZWZhY3RvcjogZGVkdXBsaWNhdGUgcmVt b3RlICYgYnJhbmNoX21lcmdlIChwYmFiaW5jYSkKLS0gRGUtaGFyZGNvZGUgJ29yaWdpbicgYXMg dGhlIHJlbW90ZSBuYW1lIChib2NoZWNoYSkKLS0gRmFsbGJhY2sgdGhlIHJlbW90ZSBvbiAnb3Jp Z2luJyAoYm9jaGVjaGEpCi0KLSogTW9uIEp1biAwOSAyMDE0IFBhdm9sIEJhYmluY2FrIDxwYmFi aW5jYUByZWRoYXQuY29tPiAtIDEuMjQtMQotLSAxLjI0IHJlbGVhc2UgKHBiYWJpbmNhKQotLSBX b3JrIGFyb3VuZCBzaWduZWQgc3JwbXMgKFRpbGwgTWFhcykKLS0gUHJvcGVybHkgcmFpc2UgdGhl IGVycm9yIChib2NoZWNoYSkKLS0gQWJpbGl0eSB0byBza2lwIE5WUiBjb25zdHJ1Y3Rpb24gYWx0 b2dldGhlciBmb3IgYnVpbGRzIChwYmFiaW5jYSkKLS0gSWYgd2UgZmFpbGVkIHRvIHBhcnNlIE5W UkUgZnJvbSBycG0gb3V0cHV0IHVzZSBiZXR0ZXIgZXJyb3IgbWVzc2FnZQotICAocGJhYmluY2Ep Ci0tIElmIGNvbW1hbmQgdG8gZ2V0IE5WUkUgcHJpbnRlZCBhbnl0aGluZyB0byBzdGRlcnIgbG9n IHRoYXQgY29tbWFuZCAocGJhYmluY2EpCi0tIFJlZmFjdG9yOiBjb3JyZWN0bHkgc3BsaXQgc3Ry aW5nIG9uIG11bHRpIGxpbmVzIChwYmFiaW5jYSkKLS0gVXNlIG52cl9jaGVjayBhcyBhbiBvcHRp b25hbCBhcmd1bWVudCBmb3IgYnVpbGQgKHBiYWJpbmNhKQotLSAxLjIzIHJlbGVhc2UgKHBiYWJp bmNhKQotLSBVc2UgbW9kdWxlX25hbWUgc2V0dGVyIGluc3RlYWQgb2YgY29uc3RydWN0b3IgcGFy YW1ldGVyIChwYmFiaW5jYSkKLS0gU2V0IHB1c2h1cmwgJiBicmFuY2hfcmVtb3RlIGJ5IGRlZmF1 bHQgKHBiYWJpbmNhKQotLSAxLjIyIHJlbGVhc2UgKHBiYWJpbmNhKQotLSBEZWZpbmUgbW9kdWxl IG5hbWUgZnJvbSBjb21tYW5kIGxpbmUsIGdpdCB1cmwgYW5kIGxhc3RseSBmcm9tIHNwZWMgKHBi YWJpbmNhKQotLSBSZXZlcnQgIkRlZmluZSBtb2R1bGUgbmFtZSBmcm9tIGNvbW1hbmQgbGluZSwg Z2l0IHVybCBhbmQgbGFzdGx5IGZyb20gc3BlYyIKLSAgKHBiYWJpbmNhKQotCi0qIFN1biBKdW4g MDggMjAxNCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFw cm9qZWN0Lm9yZz4gLSAxLjIxLTIKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0 Lm9yZy93aWtpL0ZlZG9yYV8yMV9NYXNzX1JlYnVpbGQKLQotKiBNb24gTWFyIDI0IDIwMTQgUGF2 b2wgQmFiaW5jYWsgPHBiYWJpbmNhQHJlZGhhdC5jb20+IC0gMS4yMS0xCi0tIFJlZmFjdG9yOiBz cGxpdCBzdHJpbmdzIG9uIG11bHRpIGxpbmVzIHdpdGhvdXQgc3BhY2VzIGZyb20gaW5kZW50YXRp b24KLSAgKHBiYWJpbmNhKQotLSBSZWZhY3RvcjogcmVtb3ZlIHNwYWNlcyBhdCB0aGUgZW5kIG9m IGxpbmVzIChwYmFiaW5jYSkKLS0gRGVmaW5lIG1vZHVsZSBuYW1lIGZyb20gY29tbWFuZCBsaW5l LCBnaXQgdXJsIGFuZCBsYXN0bHkgZnJvbSBzcGVjIChwYmFiaW5jYSkKLS0gT3B0aW9uIHRvIHNr aXAgTlZSIGV4aXN0ZW5jZSBjaGVjayBpbiBidWlsZCBzeXN0ZW0gYmVmb3JlIGJ1aWxkIChwYmFi aW5jYSkKLS0gQWRkIGFuICdlcG9jaCcgcHJvcGVydHkgdG8gcHlycGtnLkNvbW1hbmRzIChib2No ZWNoYSkKLS0gRmV0Y2ggcmVtb3RlcyBiZWZvcmUgc3dpdGNoLWJyYW5jaCBieSBkZWZhdWx0IChw YmFiaW5jYSkKLS0gUHJvdGVjdCByaHBrZydzIC0tYXJjaGVzIGFyZ3VtZW50IChwYmFiaW5jYSkK LQotKiBUdWUgRmViIDE4IDIwMTQgRGVubmlzIEdpbG1vcmUgPGRlbm5pc0BhdXNpbC51cz4gLSAx LjIwLTEKLS0gcmVhZCBrcmJzZXJ2aWNlIGZyb20gdGhlIGtvamkgY29uZmlnIGZpbGUgKGRlbm5p cykKLS0gV2UgY2FuIGFzc3VtZSB0aGF0IHJwa2cgaXMgaW5zdGFsbGVkIGlmIHRoZSAodmlsbGUu c2t5dHRhKQotLSBjbG9nOiBEb24ndCByZXF1aXJlIGVtcHR5IGxpbmUgYmV0d2VlbiBjaGFuZ2Vs b2cgZW50cmllcy4gKHZpbGxlLnNreXR0YSkKLS0gU3BlbGxpbmcgZml4ZXMuICh2aWxsZS5za3l0 dGEpCi0tIGV4cGFuZCAlJXtuYW1lfSBhbmQgJSV7dmVyaW9ufSBtYWNyb3Mgd2hlbiBjaGVja2lu ZyBmb3IgdW51c2VkX3BhdGNoZXMgY2hlY2sKLSAgZm9yIC5wYXRjaCBhbmQgLmRpZmYgZmlsZXMg YXMgcGF0Y2hlcyAoZGVubmlzKQotLSBjbGVhbiB1cCBzb21lIGxhbmd1YWdlIGFtYmlndWl0aWVz IChkZW5uaXMpCi0tIGNsb2c6IFN1cHBvcnQgJSVjaGFuZ2Vsb2cgdGFnIHdyaXR0ZW4gaW4gbm9u LWxvd2VyY2FzZS4gKHZpbGxlLnNreXR0YSkKLS0gYWRkIHNwa2cgYXMgYSBiaW5hcnkgZmlsZSBl eHRlbnRpb24gcmhieiM5NzI5MDMgKGRlbm5pcykKLS0gRml4ZWQgdmVyc2lvbiB0byAxLjE5IChw YmFiaW5jYSkKLS0gRG9uJ3QgdHJhY2sgc3BlYyBmaWxlIGhlcmUgKHBiYWJpbmNhKQotLSAxLjIw IChwYmFiaW5jYSkKLS0gTW9jayBjb25maWcgdGVtcCBkaXIgaW4gdGhlIGZvcm0gJCh0YXJnZXQp LSQobG9jYWxhcmNoKS4kKG1rdGVtcCltb2NrY29uZmlnCi0gIChwYmFiaW5jYSkKLQotKiBTdW4g QXVnIDA0IDIwMTMgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbC1lbmdAbGlzdHMuZmVk b3JhcHJvamVjdC5vcmc+IC0gMS4xOS0yCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJv amVjdC5vcmcvd2lraS9GZWRvcmFfMjBfTWFzc19SZWJ1aWxkCi0KLSogTW9uIEFwciAwOCAyMDEz IFBhdm9sIEJhYmluY2FrIDxwYmFiaW5jYUByZWRoYXQuY29tPiAtIDEuMTktMQotLSBHZW5lcmF0 ZSBtb2NrLWNvbmZpZyBmb3IgbW9ja2J1aWxkIGlmIG5lZWRlZCAocmhieiM4NTY5MjgpIChwYmFi aW5jYSkKLQotKiBUaHUgRmViIDE0IDIwMTMgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJl bC1lbmdAbGlzdHMuZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4xOC00Ci0tIFJlYnVpbHQgZm9yIGh0 dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMTlfTWFzc19SZWJ1aWxkCi0KLSog RnJpIEF1ZyAxMCAyMDEyIFJvYmVydCBTY2hlY2sgPHJvYmVydEBmZWRvcmFwcm9qZWN0Lm9yZz4g LSAxLjE4LTMKLS0gUmVxdWlyZSAlJXt2ZXJzaW9ufS0lJXtyZWxlYXNlfSByYXRoZXIgJSV7bmFt ZX0tJSV7dmVyc2lvbn0KLQotKiBTYXQgSnVsIDIxIDIwMTIgRmVkb3JhIFJlbGVhc2UgRW5naW5l ZXJpbmcgPHJlbC1lbmdAbGlzdHMuZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4xOC0yCi0tIFJlYnVp bHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMThfTWFzc19SZWJ1 aWxkCi0KLSogTW9uIEFwciAxNiAyMDEyIEplc3NlIEtlYXRpbmcgPGprZWF0aW5nQHJlZGhhdC5j b20+IC0gMS4xOC0xCi0tIFVzZSBycG1kZWZpbmVzIHdoZW4gcXVlcnlpbmcgZm9yIHBhY2thZ2Ug bmFtZQotCi0qIE1vbiBBcHIgMDkgMjAxMiBKZXNzZSBLZWF0aW5nIDxqa2VhdGluZ0ByZWRoYXQu Y29tPiAtIDEuMTctMQotLSBEb24ndCBhc3N1bWUgbWFzdGVyIGJyYW5jaCBmb3IgY2hhaW4gYnVp bGRzIChqa2VhdGluZykKLQotKiBNb24gTWFyIDI2IDIwMTIgSmVzc2UgS2VhdGluZyA8amtlYXRp bmdAcmVkaGF0LmNvbT4gLSAxLjE2LTEKLS0gT25seSByZWFkIGZyb20gLmtvamkvY29uZmlnIChq a2VhdGluZykKLQotKiBXZWQgTWFyIDIxIDIwMTIgSmVzc2UgS2VhdGluZyA8amtlYXRpbmdAcmVk aGF0LmNvbT4gLSAxLjE1LTEKLS0gRml4IGJyYW5jaCBwdXNoIHdhcm5pbmcgKGprZWF0aW5nKQot LSBIYW5kbGUgQ1ZTIGJhc2VkIGJ1aWxkcyB3aGVuIGdldHRpbmcgYnVpbGQgaGFzaCAoamtlYXRp bmcpCi0KLSogTW9uIE1hciAxMiAyMDEyIEplc3NlIEtlYXRpbmcgPGprZWF0aW5nQHJlZGhhdC5j b20+IC0gMS4xNC0xCi0tIFdhcm4gaWYgdGhlIGNoZWNrZWQgb3V0IGJyYW5jaCBjYW5ub3QgYmUg cHVzaGVkIChqa2VhdGluZykKLS0gV2FybiBpZiBjb21taXQgb3IgdGFnIGZhaWxzIGFuZCB3ZSBk b24ndCBwdXNoICgjMjEpIChqa2VhdGluZykKLS0gSG9ub3Igfi8ua29qaS9jb25maWcgKHJoYnoj Nzg1Nzc2KSAoamtlYXRpbmcpCi0tIFVwZGF0ZSBoZWxwIG91dHB1dCBmb3Igc3dpdGNoLWJyYW5j aCAocmhieiM3NDE3NDIpIChqa2VhdGluZykKLQotKiBUaHUgTWFyIDAxIDIwMTIgSmVzc2UgS2Vh dGluZyA8amtlYXRpbmdAcmVkaGF0LmNvbT4gLSAxLjEzLTEKLS0gUmV0dXJuIHByb3BlciBleGl0 IGNvZGUgZnJvbSBidWlsZHMgKCMyMCkgKGprZWF0aW5nKQotLSBGaXggbWQ1IG9wdGlvbiBpbiB0 aGUgYnVpbGQgcGFyc2VyIChqa2VhdGluZykKLS0gTW9yZSBjb21wbGV0aW9uIGZpeGVzIChqa2Vh dGluZykKLS0gQWRkIG1vY2stY29uZmlnIGFuZCBtb2NrYnVpbGQgY29tcGxldGlvbiAoamtlYXRp bmcpCi0tIFNpbXBsaWZ5IHRlc3QgZm9yIHJwa2cgYXZhaWxhYmlsaXR5LiAodmlsbGUuc2t5dHRh KQotLSBGaXggfi8uLi4gcGF0aCBjb21wbGV0aW9uLiAodmlsbGUuc2t5dHRhIChqa2VhdGluZykK LS0gQWRkIGEgLS1yYXcgb3B0aW9uIHRvIGNsb2cgKCMxNSkgKGprZWF0aW5nKQotLSBNYWtlIHRo aW5ncyBxdWlldCB3aGVuIHBvc3NpYmxlIChqa2VhdGluZykKLS0gRml4IHVwIGZpZ3VyaW5nIG91 dCBzcnBtIGhhc2ggdHlwZSAoamtlYXRpbmcpCi0tIEFsbG93IGRlZmluaW5nIGFuIGFsdGVybmF0 aXZlIGJ1aWxkZGlyIChqa2VhdGluZykKLS0gQ29uZmxpY3Qgd2l0aCBvbGRlciBmZWRwa2cgKGpr ZWF0aW5nKQotLSBBdHRlbXB0IHRvIGF1dG9tYXRpY2FsbHkgc2V0IHRoZSBtZDUgZmxhZyAoamtl YXRpbmcpCi0tIFVzZSAtQyBub3QgLWMgZm9yIGNvbmZpZy4gICgjNzUyNDExKSAoamtlYXRpbmcp Ci0tIERvbid0IGNoZWNrIGdwZyBzaWdzIHdoZW4gaW1wb3J0aW5nIHNycG1zICh0aWNrZXQgIzE2 KSAoamtlYXRpbmcpCi0tIEVuYWJsZSBtZDUgb3B0aW9uIGluIG1vY2tidWlsZCAodHdhdWdoKSAo amtlYXRpbmcpCi0KLSogVHVlIEphbiAyNCAyMDEyIEplc3NlIEtlYXRpbmcgPGprZWF0aW5nQHJl ZGhhdC5jb20+IC0gMS4xMi0xCi0tIEZpeCBtb2NrLWNvbmZpZyAodGlja2V0ICMxMykgKGprZWF0 aW5nKQotLSBNYWtlIG1kNSBhIGNvbW1vbiBidWlsZCBhcmd1bWVudCAoamtlYXRpbmcpCi0tIE1v dmUgYXJjaGVzIHRvIGJlIGEgY29tbW9uIGJ1aWxkIGFyZ3VtZW50ICh0aWNrZXQgIzMpIChqa2Vh dGluZykKLS0gRmluZCByZW1vdGUgYnJhbmNoIHRvIHRyYWNrIGJldHRlciAoamtlYXRpbmcpCi0K LSogRnJpIEphbiAxMyAyMDEyIEplc3NlIEtlYXRpbmcgPGprZWF0aW5nQHJlZGhhdC5jb20+IC0g MS4xMS0xCi0tIENoYW5nZSBjbG9nIG91dHB1dCB0byBiZSBtb3JlIGdpdC1saWtlIChzb2Nob3Ru aWNreSkKLS0gRml4IG1vY2tjb25maWcgcHJvcGVydHkgKGJvY2hlY2hhKQotLSBVc2Ugb25seSBu ZXctc3R5bGUgY2xhc3NlcyBldmVyeXdoZXJlLiAoYm9jaGVjaGEpCi0tIFRlc3RpbmcgZm9yIGFj Y2VzcyBiZWZvcmUgb3BlbmluZyBhIGZpbGUgaXMgdW5zYWZlIChib2NoZWNoYSkKLS0gQWRkIGEg Z2l0YnVpbGRoYXNoIGNvbW1hbmQgKGprZWF0aW5nKQotLSBBbHdheXMgbWFrZSBzdXJlIHlvdSBo YXZlIGEgYWJzb2x1dGUgcGF0aCAoYWopIChqa2VhdGluZykKLS0gZG9uJ3QgdHJ5IHRvIGltcG9y dCBicmV3LCBqdXN0IGRvIGtvamkgKGprZWF0aW5nKQotCi0qIE1vbiBOb3YgMjEgMjAxMSBKZXNz ZSBLZWF0aW5nIDxqa2VhdGluZ0ByZWRoYXQuY29tPiAtIDEuMTAtMQotLSBVc2UgLUMgZm9yIC0t Y29uZmlnIHNob3J0Y3V0IChqa2VhdGluZykKLS0gRG9uJ3QgbGVhdmUgYSBkaXJlY3Rvcnkgb24g ZmFpbHVyZSAoIzc1NDA4MikgKGprZWF0aW5nKQotLSBGaXggY2hhaW4gYnVpbGQgKCM3NTQxODkp IChqa2VhdGluZykKLS0gRG9uJ3QgaGFyZGNvZGUgYnJldyBoZXJlIChqa2VhdGluZykKLQotKiBN b24gTm92IDA3IDIwMTEgSmVzc2UgS2VhdGluZyA8amtlYXRpbmdAcmVkaGF0LmNvbT4gLSAxLjkt MQotLSBEb24ndCB1cGxvYWQgaWYgdGhlcmUgaXMgbm90aGluZyB0byB1cGxvYWQuIChqa2VhdGlu ZykKLS0gLS1icmFuY2ggb3B0aW9uIGZvciBpbXBvcnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQgKGpr ZWF0aW5nKQotLSBBZGQgZXBpbG9nIGFib3V0IG1vY2stY29uZmlnIGdlbmVyYXRpb24gKGprZWF0 aW5nKQotLSBEb24ndCBhc3N1bWUgd2UgY2FuIGNyZWF0ZSBhIGZvbGRlciBuYW1lZCBhZnRlciB0 aGUgbW9kdWxlLiAoYm9jaGVjaGEpCi0tIEZpeCBwYXNzaW5nIHRoZSBvcHRpb25hbCBtb2NrIHJv b3QgdG8gbW9ja2J1aWxkIChib2NoZWNoYSkKLS0gQWRkIG1pc3NpbmcgcmVnaXN0cmF0aW9uIGZv ciBtb2NrYnVpbGQgdGFyZ2V0IChib2NoZWNoYSkKLS0gTWFrZSB0aGUgY2xlYW4gdGFyZ2V0IHdv cmsgd2l0aCAtLXBhdGguIChib2NoZWNoYSkKLS0gRml4IHR5cG8gaW4gYSBjb21tZW50LiAoYm9j aGVjaGEpCi0tIEZpeCBzeW50YXggZXJyb3IgaW4gbWFpbiBzY3JpcHQuIChib2NoZWNoYSkKLS0g Rml4IHR5cG8uIChib2NoZWNoYSkKLQotKiBGcmkgT2N0IDI4IDIwMTEgSmVzc2UgS2VhdGluZyA8 amtlYXRpbmdAcmVkaGF0LmNvbT4gLSAxLjgtMQotLSBHZXQgbW9yZSBkZXRhaWxlZCBlcnJvciBv dXRwdXQgZnJvbSBsb29rYXNpZGUgKGprZWF0aW5nKQotLSBNb3ZlIHRoZSBjdXJsIGNhbGwgb3V0 IHRvIGl0J3Mgb3duIGZ1bmN0aW9uIChqa2VhdGluZykKLS0gSGlkZSBidWlsZF9jb21tb24gZnJv bSBoZWxwL3VzYWdlIChqa2VhdGluZykKLS0gRml4IHRoZSBoZWxwIGNvbW1hbmQgKGprZWF0aW5n KQotCi0qIFR1ZSBPY3QgMjUgMjAxMSBKZXNzZSBLZWF0aW5nIDxqa2VhdGluZ0ByZWRoYXQuY29t PiAtIDEuNy0xCi0tIFN1cHBvcnQgYSBtYW51YWxseSBzcGVjaWZpZWQgbW9jayByb290IChqa2Vh dGluZykKLS0gQWRkIGEgbW9jay1jb25maWcgc3ViY29tbWFuZCAoamtlYXRpbmcpCi0tIEZpeCBh IHRyYWNlYmFjayBvbiBlcnJvci4gKGprZWF0aW5nKQotLSBSZW1vdmUgZGVidWdnaW5nIGNvZGUg KGprZWF0aW5nKQotLSBNb3JlIGdpdCBhcGkgdXBkYXRlcyAoamtlYXRpbmcpCi0tIEFkZCB0b3B1 cmwgYXMgYSBrb2ppIGNvbmZpZyBhbmQgcHJvcGVydHkgKGprZWF0aW5nKQotLSBBZGQgYSBtb2Nr Y29uZmlnIHByb3BlcnR5IChqa2VhdGluZykKLS0gVHVybiB0aGUgbGF0ZXN0IGNvbW1pdCBpbnRv IGEgcHJvcGVydHkgKGprZWF0aW5nKQotCi0qIFR1ZSBTZXAgMjAgMjAxMSBKZXNzZSBLZWF0aW5n IDxqa2VhdGluZ0ByZWRoYXQuY29tPiAtIDEuNi0xCi0tIEFsbG93IG5hbWUgcHJvcGVydHkgdG8g bG9hZCBieSBpdHNlbGYgKGprZWF0aW5nKQotCi0qIE1vbiBTZXAgMTkgMjAxMSBKZXNzZSBLZWF0 aW5nIDxqa2VhdGluZ0ByZWRoYXQuY29tPiAtIDEuNS0xCi0tIEZpeCB0YWcgbGlzdGluZyAoIzcx NzUyOCkgKGprZWF0aW5nKQotLSBSZXZhbXAgbi12LXIgcHJvcGVydHkgbG9hZGluZyAoIzcyMTM4 OSkgKGprZWF0aW5nKQotLSBEb24ndCB1c2Ugb3MuZ2V0bG9naW4gKGprZWF0aW5nKQotLSBDb2Rl IHN0eWxlIGNoYW5nZXMgKGprZWF0aW5nKQotLSBBbGxvdyBmZWRwa2cgbGludCB0byBiZSBjb25m aWd1cmFibGUgYW5kIHRvIGNoZWNrIHNwZWMgZmlsZS4gKHBpbmdvdSkKLS0gSGFuZGxlIG5vbi1z Y3JhdGNoIHNycG0gYnVpbGRzIGJldHRlciAoamtlYXRpbmcpCi0KLSogV2VkIEF1ZyAxNyAyMDEx IEplc3NlIEtlYXRpbmcgPGprZWF0aW5nQHJlZGhhdC5jb20+IC0gMS40LTEKLS0gQmUgbW9yZSBn ZW5lcmljIHdoZW4gbm8gc3BlYyBmaWxlIGlzIGZvdW5kIChqa2VhdGluZykKLS0gSGludCBhYm91 dCB1c2Ugb2YgZ2l0IHN0YXR1cyB3aGVuIGRpcnR5IChqa2VhdGluZykKLS0gRG9uJ3QgdXNlIHBy aW50IHdoZW4gd2UgY2FuIGxvZy5pbmZvIGl0IChqa2VhdGluZykKLS0gRG9uJ3QgZXhpdCBmcm9t IGEgbGlicmFyeSAoamtlYXRpbmcpCi0tIERvIHRoZSBycG0gcXVlcnkgaW4gb3VyIG1vZHVsZSBw YXRoIChqa2VhdGluZykKLS0gVXNlIGdpdCdzIG5hdGl2ZSBhYmlsaXR5IHRvIGNoZWNrb3V0IGEg YnJhbmNoIChqa2VhdGluZykKLS0gVXNlIGtleXdvcmQgYXJnIHdpdGggY2xvbmUgKGprZWF0aW5n KQotLSBBbGxvdyB0aGUgb24tZGVtYW5kIGdlbmVyYXRpb24gb2YgYW4gc3JwbSAoamtlYXRpbmcp Ci0tIEZpeCB1cCBleGl0IGNvZGVzIChqa2VhdGluZykKLQotKiBNb24gQXVnIDAxIDIwMTEgSmVz c2UgS2VhdGluZyA8amtlYXRpbmdAcmVkaGF0LmNvbT4gLSAxLjMtMQotLSBGaXggYSBkZWJ1ZyBz dHJpbmcgKGprZWF0aW5nKQotLSBTZXQgdGhlIHJpZ2h0IHByb3BlcnR5IChqa2VhdGluZykKLS0g TWFrZSBzdXJlIHdlIGhhdmUgYSBkZWZhdWx0IGhhc2h0eXBlIChqa2VhdGluZykKLS0gVXNlIHVu ZGVyc2NvcmUgZm9yIHRoZSBkaXN0IHRhZyAoamtlYXRpbmcpCi0tIEZpeCB0aGUga29qaXdlYnVy bCBwcm9wZXJ0eSAoamtlYXRpbmcpCi0KLSogV2VkIEp1bCAyMCAyMDExIEplc3NlIEtlYXRpbmcg PGprZWF0aW5nQHJlZGhhdC5jb20+IC0gMS4yLTEKLS0gRmlsbCBvdXQgdGhlIGtyYl9jcmVkcyBm dW5jdGlvbiAoamtlYXRpbmcpCi0tIEZpeCB0aGUgbG9nIG1lc3NhZ2UgKGprZWF0aW5nKQotLSBz aXRlX3NldHVwIGlzIG5vIGxvbmdlciBuZWVkZWQgKGprZWF0aW5nKQotLSBSZW1vdmUgc29tZSBy aHRpc21zIChqa2VhdGluZykKLS0gV2lyZSB1cCB0aGUgcGF0Y2ggY29tbWFuZCBpbiBjbGllbnQg Y29kZSAoamtlYXRpbmcpCi0tIEFkZCBhIHBhdGNoIGNvbW1hbmQgKGprZWF0aW5nKQotCi0qIEZy aSBKdW4gMTcgMjAxMSBKZXNzZSBLZWF0aW5nIDxqa2VhdGluZ0ByZWRoYXQuY29tPiAtIDEuMS0y Ci0tIFVzZSB2ZXJzaW9uIG1hY3JvIGluIGZpbGVzCi0KLSogRnJpIEp1biAxNyAyMDExIEplc3Nl IEtlYXRpbmcgPGprZWF0aW5nQHJlZGhhdC5jb20+IC0gMS4xLTEKLS0gTmV3IHRhcmJhbGwgcmVs ZWFzZSB3aXRoIGNvcnJlY3QgbGljZW5zZSBmaWxlcwotCi0qIEZyaSBKdW4gMTcgMjAxMSBKZXNz ZSBLZWF0aW5nIDxqa2VhdGluZ0ByZWRoYXQuY29tPiAtIDEuMC0yCi0tIEZpeCB1cCB0aGluZ3Mg Zm91bmQgaW4gcmV2aWV3Ci0KLSogVHVlIEp1biAxNCAyMDExIEplc3NlIEtlYXRpbmcgPGprZWF0 aW5nQHJlZGhhdC5jb20+IC0gMS4wLTEKLS0gSW5pdGlhbCBwYWNrYWdlCgpkaWZmIC0tZ2l0IGEv c291cmNlcyBiL3NvdXJjZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5OGIzZjku LjAwMDAwMDAKLS0tIGEvc291cmNlcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVNIQTUx MiAocnBrZy0xLjY2LnRhci5neikgPSAxNGE2OTQ3MTQ2Y2Q1YThmOWJhYTJkM2ZiYTBhMzdiYjBk N2FiNWJkNjllMjljMDQyODJjODgyZTFmMjQ5ODMxYzhmYWY0NDNkNGRkOTRhZGZlMWJmMzg1ZjY1 MjVjZWZlZjg0YjEwZDQ0YTM5NDlkODE1ZmQyOTNkNWY1ZmNjYwo=