Re: Fwd: LDAP configuration and hooks
David Wells <[email protected]> Sat, 30 Nov 2019 00:56:19 -0300
| Newsgroups | gmane.comp.horde.user |
|---|---|
| Message-ID | <[email protected]> |
WW91J3JlIHJpZ2h0LCBJJ20gc29ycnkuIFRoZSBmaWxlIGlzIGluIHRoZSAKL3Zhci93d3cvaG9y ZGUvY29uZmlnL2NvbmYucGhwLCB0aGUgZGlyZWN0b3J5IC92YXIvd3d3L2hvcmRlIGlzIHRoZSB0 b3AgCmxldmVsIGRpcmVjdG9yeSBvZiB0aGUgaG9yZGUgaW5zdGFsbGF0aW9uIGFzIHNwZWNpZmll ZCB3aGVuIEkgcmFuIHRoZSAKd2VibWFpbC1pbnN0YWxsIHNjcmlwdC4gVGhlIGhvb2tzLnBocCBh bmQgdGhlIHByZWZzLmxvY2FsLnBocCBmaWxlcyBhcmUgCmFsc28gbG9jYXRlZCBpbiB0aGUgY29u ZmlnIGRpcmVjdG9yeSBvZiB0aGUgdG9wIGxldmVsIGRpcmVjdG9yeSBvZiB0aGUgCmhvcmRlIGlu c3RhbGxhdGlvbiBhbG9uZyB3aXRoIHRoZSBjb25mLnBocCBmaWxlLiBJIHZlcmlmaWVkIHRoZSB3 ZWIgCnNlcnZlciBhY2Nlc3MgdG8gdGhpcyBmaWxlIGFuZCBpdCBoYXMgbm8gcHJvYmxlbSBhdCBh bGwgcmVhZGluZyB0aGUgCmRhdGFiYXNlIGFjY2VzcyBjb25maWd1cmF0aW9uIGZyb20gdGhpcyBz YW1lIGNvbmYucGhwIGZpbGUuIEkgYWxzbyByYW4gCiJwcmludF9yKGFycmF5X3ZhbHVlcygkY29u ZikpOyIgaW4gdGhlIHBocCBzaGVsbCBhbmQgZ290IHRoaXMgaW4gdGhlIApvdXRwdXQgb2YgdGhl IGNvbW1hbmQKCj4gWzE1XSA9PiBBcnJheQo+ICAgICAgICAgICgKPiAgICAgICAgICAgICAgW2hv c3RzcGVjXSA9PiBBcnJheQo+ICAgICAgICAgICAgICAgICAgKAo+ICAgICAgICAgICAgICAgICAg ICAgIFswXSA9PiBkYzEuZmxpYXdlbGxzLmNvbS5hcgo+ICAgICAgICAgICAgICAgICAgKQo+Cj4g ICAgICAgICAgICAgIFtwb3J0XSA9PiAzMjY4Cj4gICAgICAgICAgICAgIFt0bHNdID0+IDEKPiAg ICAgICAgICAgICAgW3RpbWVvdXRdID0+IDUKPiAgICAgICAgICAgICAgW3ZlcnNpb25dID0+IDMK PiAgICAgICAgICAgICAgW3VzZXJdID0+IEFycmF5Cj4gICAgICAgICAgICAgICAgICAoCj4gICAg ICAgICAgICAgICAgICAgICAgW2Jhc2Vkbl0gPT4gREM9ZmxpYXdlbGxzLERDPWNvbSxEQz1hcgo+ ICAgICAgICAgICAgICAgICAgICAgIFt1aWRdID0+IHVzZXJQcmluY2lwYWxOYW1lCj4gICAgICAg ICAgICAgICAgICAgICAgW29iamVjdGNsYXNzXSA9PiBBcnJheQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAoCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMF0gPT4gKgo+ICAgICAg ICAgICAgICAgICAgICAgICAgICApCj4KPiAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyX3R5 cGVdID0+IG9iamVjdGNsYXNzCj4gICAgICAgICAgICAgICAgICApCj4KPiAgICAgICAgICAgICAg W2JpbmRhc10gPT4gdXNlcgo+ICAgICAgICAgICAgICBbdXNlbGRhcF0gPT4gMQo+ICAgICAgICAg ICkKCgpFbCAyOS8xMS8yMDE5IGEgbGFzIDA2OjUyIHAuIG0uLCBBcmplbiBkZSBLb3J0ZSBlc2Ny aWJpw7M6Cj4gQ2l0ZXJlbiAiRGF2aWQgV2VsbHMgLSBBbGZhdmluaWwgUy5BLiIgPGR3ZWxsc0Bh bGZhdmluaWwuY29tPjoKPgo+PiBUaGFua3MgZm9yIHlvdXIgcmVwbHkuCj4+Cj4+IEkgbW92ZWQg dGhlIGZpbGUgZnJvbSBob29rcy5sb2NhbC5waHAgdG8gaG9va3MucGhwIGFuZCBJIHN0aWxsIGdl dCB0aGUKPj4gZXJyb3Igc3RhdGluZyBob3JkZSBpcyB0cnlpbmcgdG8gY29ubmVjdCB0byBsb2Nh bGhvc3Q6Mzg5IGluc3RlYWQgb2YgdGhlCj4+IGhvc3QgY29uZmlndXJlZCBpbiBjb25maWcucGhw Lgo+Cj4gUGxlYXNlIGJlIHByZWNpc2UuIFRoZXJlIGlzIG5vIGNvbmZpZ3VyYXRpb24gZmlsZSAn Y29uZmlnLnBocCcgYW5kIAo+IGFsc28gcGxlYXNlIG1lbnRpb24gKndoaWNoKiBjb25maWd1cmF0 aW9uIGZpbGUgeW91ciBtZWFuLiBJbiBtYW55IAo+IGFwcGxpY2F0aW9ucyB0aGVyZSB3aWxsIGJl IGEgJ2NvbmYucGhwJyBhbmQgJ2hvb2tzLnBocCcgZmlsZSwgYnV0IAo+IHdpdGhvdXQgYXQgbGVh c3QgdHdvIG1vcmUgZGlyZWN0b3J5IGxldmVscywgSSBoYXZlIG5vIGlkZWEgd2hpY2ggb25lIAo+ IHlvdSBtZWFuLgo+Cj4gTGFzdCBidXQgbm90IGxlYXN0LCBtYWtlIHN1cmUgdGhlIHdlYnNlcnZl ciBpcyBhYmxlIHRvIHJlYWQgdGhlc2UgCj4gY29uZmlndXJhdGlvbiBmaWxlcyAocGVybWlzc2lv bnMpLgo+Cj4+Cj4+IEVsIDI5LzExLzIwMTkgYSBsYXMgMTY6NTQsIEFyamVuIGRlIEtvcnRlIGVz Y3JpYmnDszoKPj4+IENpdGVyZW4gIkRhdmlkIFdlbGxzIC0gQWxmYXZpbmlsIFMuQS4iIDxkd2Vs bHNAYWxmYXZpbmlsLmNvbT46Cj4+Pgo+Pj4+IEhpIGFnYWluIQo+Pj4+Cj4+Pj4gSSBkaXNjb3Zl cmVkIHRoYXQgd2hlbiBJIGV4ZWN1dGUgaW4gdGhlIFBIUCBTaGVsbCBqdXN0IHRoZSBsaW5lIAo+ Pj4+ICIkbGRhcCA9Cj4+Pj4gJEdMT0JBTFNbJ2luamVjdG9yJ10tPmdldEluc3RhbmNlKCdIb3Jk ZV9MZGFwJyk7IiBJIGFscmVhZHkgZ2V0IHRoZQo+Pj4+IGVycm9yICJleGNlcHRpb24gJ0hvcmRl X0xkYXBfRXhjZXB0aW9uJyB3aXRoIG1lc3NhZ2UgJ0NvdWxkIG5vdCAKPj4+PiBjb25uZWN0Cj4+ Pj4gdG8gbG9jYWxob3N0OjM4OSciCj4+Pj4KPj4+Pgo+Pj4+IC0tLS0tLS0tIE1lbnNhamUgcmVl bnZpYWRvIC0tLS0tLS0tCj4+Pj4gQXN1bnRvOsKgwqDCoMKgIFtob3JkZV0gTERBUCBjb25maWd1 cmF0aW9uIGFuZCBob29rcwo+Pj4+IEZlY2hhOsKgwqDCoMKgIFRodSwgMjggTm92IDIwMTkgMTg6 MTI6NDEgLTAzMDAKPj4+PiBEZTrCoMKgwqDCoCBEYXZpZCBXZWxscyA8ZHdlbGxzQGFsZmF2aW5p bC5jb20+Cj4+Pj4gUGFyYTrCoMKgwqDCoCBob3JkZUBsaXN0cy5ob3JkZS5vcmcKPj4+Pgo+Pj4+ Cj4+Pj4KPj4+PiBIaSEKPj4+Pgo+Pj4+Cj4+Pj4gSSBoYXZlIGNvbmZpZ3VyZWQgdGhlIExEQVAg c2V0dGluZ3MgaW4gaG9yZGUgYXMgZm9sbG93Cj4+Pj4KPj4+Pj4gJGNvbmZbJ2xkYXAnXVsnaG9z dHNwZWMnXSA9IGFycmF5KCdkYzEuZmxpYXdlbGxzLmNvbS5hcicpOwo+Pj4+PiAkY29uZlsnbGRh cCddWydwb3J0J10gPSAzMjY4Owo+Pj4+PiAkY29uZlsnbGRhcCddWyd0bHMnXSA9IHRydWU7Cj4+ Pj4+ICRjb25mWydsZGFwJ11bJ3RpbWVvdXQnXSA9IDU7Cj4+Pj4+ICRjb25mWydsZGFwJ11bJ3Zl cnNpb24nXSA9IDM7Cj4+Pj4+ICRjb25mWydsZGFwJ11bJ3VzZXInXVsnYmFzZWRuJ10gPSAnREM9 ZmxpYXdlbGxzLERDPWNvbSxEQz1hcic7Cj4+Pj4+ICRjb25mWydsZGFwJ11bJ3VzZXInXVsndWlk J10gPSAndXNlclByaW5jaXBhbE5hbWUnOwo+Pj4+PiAkY29uZlsnbGRhcCddWyd1c2VyJ11bJ29i amVjdGNsYXNzJ10gPSBhcnJheSgnKicpOwo+Pj4+PiAkY29uZlsnbGRhcCddWyd1c2VyJ11bJ2Zp bHRlcl90eXBlJ10gPSAnb2JqZWN0Y2xhc3MnOwo+Pj4+PiAkY29uZlsnbGRhcCddWydiaW5kYXMn XSA9ICd1c2VyJzsKPj4+Pj4gJGNvbmZbJ2xkYXAnXVsndXNlbGRhcCddID0gdHJ1ZTsKPj4+Pgo+ Pj4+IFdoZW4gSSBtb2RpZnkgdGhlIGhvb2tzLmxvY2FsLnBocCBmaWxlIHNvIHRoYXQgaXQgcmVh ZHMKPj4+Cj4+PiBIb3JkZSBkb2Vzbid0IHVzZSBhICdob29rcy5sb2NhbC5waHAnIGZpbGUgYW55 d2hlcmUuIFRoZSBkaXN0cmlidXRlZAo+Pj4gdmVyc2lvbiBpcyBjYWxsZWQgJ2hvb2tzLnBocC5k aXN0JyBhbmQgYXMgZmFyIGFzIEkgcmVtZW1iZXIgdGhlcmUgaXMgYQo+Pj4gJ2hvb2tzLnBocCcg aW4gdGhlIHdlYm1haWwgcGFja2FnZS4gQ2hhbmNlcyBhcmUgaGVyZSBpcyBhICdob29rcy5waHAn Cj4+PiBmaWxlIGFsb25nc2lkZSB5b3VyICdob29rcy5sb2NhbC5waHAnIGFuZCBpdCBpcyB0aGF0 IG9uZSB0aGF0IGlzCj4+PiBhY3R1YWxseSB1c2VkLiBUcnkgcmVuYW1pbmcgdGhpcyAnaG9va3Mu bG9jYWwucGhwJyBmaWxlIHRvICdob29rcy5waHAnCj4+PiBhbmQgY2hlY2sgYWdhaW4uCj4+Pgo+ Pj4+Cj4+Pj4+IDw/cGhwCj4+Pj4+IGNsYXNzIEhvcmRlX0hvb2tzCj4+Pj4+IHsKPj4+Pj4gwqDC oMKgIHB1YmxpYyBmdW5jdGlvbiBwcmVmc19pbml0KCRwcmVmLCAkdmFsdWUsICR1c2VybmFtZSwg JHNjb3BlX29iKQo+Pj4+PiDCoMKgwqAgewo+Pj4+PiDCoMKgwqDCoMKgwqDCoCBzd2l0Y2ggKCRw cmVmKSB7Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgIGNhc2UgJ2Zyb21fYWRkcic6Cj4+Pj4+Cj4+Pj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGlzX251bGwoJHVzZXJuYW1lKSkgewo+Pj4+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuICR2YWx1ZTsKPj4+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJGxk YXAgPSAkR0xPQkFMU1snaW5qZWN0b3InXS0+Z2V0SW5zdGFuY2UoJ0hvcmRlX0xkYXAnKTsKPj4+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0cnkgewo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgJHJlc3VsdCA9ICRsZGFwLT5zZWFyY2goCj4+Pj4+ICRHTE9CQUxTWydjb25m J11bJ2xkYXAnXVsndXNlciddWydiYXNlZG4nXSwKPj4+Pj4gSG9yZGVfTGRhcF9GaWx0ZXI6OmNy ZWF0ZSgndXNlclByaW5jaXBhbE5hbWUnLCAnZXF1YWxzJywgJHVzZXJuYW1lKSwKPj4+Pj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXJyYXkoJ2F0dHJpYnV0ZXMnID0+ IGFycmF5KCdtYWlsJykpCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCApOwo+ Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCRyZXN1bHQtPmNvdW50KCkp IHsKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJGVudHJ5ID0g JHJlc3VsdC0+c2hpZnRFbnRyeSgpOwo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCByZXR1cm4gJGVudHJ5LT5nZXRWYWx1ZSgnbWFpbCcsICdzaW5nbGUnKTsKPj4+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB9IGNhdGNoIChIb3JkZV9MZGFwX0V4Y2VwdGlvbiAkZSkgewo+Pj4+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIH0KPj4+Pj4KPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1 cm4gJHZhbHVlOwo+Pj4+Pgo+Pj4+Pgo+Pj4+PiDCoMKgwqDCoMKgwqDCoCBjYXNlICdmdWxsbmFt ZSc6Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGlzX251bGwoJHVzZXJuYW1lKSkg ewo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuICR2YWx1ZTsKPj4+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgJGxkYXAgPSAkR0xPQkFMU1snaW5qZWN0b3InXS0+Z2V0SW5zdGFuY2UoJ0hvcmRlX0xk YXAnKTsKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0cnkgewo+Pj4+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgJHJlc3VsdCA9ICRsZGFwLT5zZWFyY2goCj4+Pj4+ICRHTE9C QUxTWydjb25mJ11bJ2xkYXAnXVsndXNlciddWydiYXNlZG4nXSwKPj4+Pj4gSG9yZGVfTGRhcF9G aWx0ZXI6OmNyZWF0ZSgndXNlclByaW5jaXBhbE5hbWUnLCAnZXF1YWxzJywgJHVzZXJuYW1lKSwK Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXJyYXkoJ2F0dHJp YnV0ZXMnID0+IGFycmF5KCdjbicsICdjbjtsYW5nLWVzJykpCj4+Pj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCApOwo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aWYgKCRyZXN1bHQtPmNvdW50KCkpIHsKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgJGVudHJ5ID0gJHJlc3VsdC0+c2hpZnRFbnRyeSgpOwo+Pj4+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gJGVudHJ5LT5nZXRWYWx1ZSgn Y247bGFuZy1lcycsICdzaW5nbGUnKQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgID86ICRlbnRyeS0+Z2V0VmFsdWUoJ2NuJywgJ3NpbmdsZScpOwo+ Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIH0gY2F0Y2ggKEhvcmRlX0xkYXBfRXhjZXB0aW9uICRlKSB7Cj4+Pj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4+Pgo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl dHVybiAkdXNlcm5hbWU7Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgIH0KPj4+Pj4gwqDCoMKgIH0KPj4+ Pj4gfQo+Pj4+Cj4+Pj4gYW5kIGVuYWJsZSB0aGVzZSBob29rcyBieSBtb2RpZnlpbmcgdGhlIHBy ZWZzLmxvY2FsLnBocCBmaWxlIHNvIAo+Pj4+IHRoYXQgaXQKPj4+PiByZWFkcwo+Pj4+Cj4+Pj4+ IDw/cGhwCj4+Pj4+ICRfcHJlZnNbJ2Zyb21fYWRkciddWydob29rJ10gPSB0cnVlOwo+Pj4+PiAk X3ByZWZzWydmdWxsbmFtZSddWydob29rJ10gPSB0cnVlOwo+Pj4+Cj4+Pj4gSSBnZXQgYW4gZXJy b3IgdGhhdCBzYXlzCj4+Pj4KPj4+Pj4KPj4+Pj4gwqDCoMKgwqDCoCBDb3VsZCBub3QgY29ubmVj dCB0byBsb2NhbGhvc3Q6Mzg5Cj4+Pj4+Cj4+Pj4gV2hlbiBJIGNvbW1lbnQgdGhlIHByZWZzLmxv Y2FsLnBocCBmaWxlIGFuZCBhY2Nlc3MgaG9yZGUgSSBydW4gdGhlCj4+Pj4gZm9sbG93aW5nIHBp ZWNlIG9mIGNvZGUgaW4gdGhlIFBIUCBTaGVsbCAodW5kZXIgdGhlIGhvcmRlIGNvbnRleHQKPj4+ Pgo+Pj4+PiB8JGxkYXB8IHw9Cj4+Pj4+IHx8JEdMT0JBTFN8fFt8fCdpbmplY3Rvcid8fF0tPmdl dEluc3RhbmNlKHx8J0hvcmRlX0xkYXAnfHwpO3wKPj4+Pj4gfHx8dHJ5fCB8e3wKPj4+Pj4gfHx8 JHJlc3VsdHwgfD0gfHwkbGRhcHx8LT5zZWFyY2gofAo+Pj4+PiB8fHwkR0xPQkFMU3x8W3x8J2Nv bmYnfHxdW3x8J2xkYXAnfHxdW3x8J3VzZXInfHxdW3x8J2Jhc2Vkbid8fF0sfAo+Pj4+PiB8fHxI b3JkZV9MZGFwX0ZpbHRlcjo6Y3JlYXRlKHx8J3VzZXJQcmluY2lwYWxOYW1lJ3x8LCB8fCdlcXVh bHMnfHwsCj4+Pj4+IHx8J2R3ZWxsc0BmbGlhd2VsbHMuY29tLmFyJ3x8KSwgfHxhcnJheXx8KHx8 J2F0dHJpYnV0ZXMnfCB8PT4KPj4+Pj4gfHxhcnJheXx8KHx8J21haWwnfHwpKSk7fAo+Pj4+PiB8 fHxpZnwgfCh8fCRyZXN1bHR8fC0+fHxjb3VudHx8KCkpIHt8Cj4+Pj4+IHx8fCRlbnRyeXwgfD0g fHwkcmVzdWx0fHwtPnNoaWZ0RW50cnkoKTt8Cj4+Pj4+IHx8fHJldHVybnwgfCRlbnRyeXx8LT5n ZXRWYWx1ZSh8fCdtYWlsJ3x8LCB8fCdzaW5nbGUnfHwpO3wKPj4+Pj4gfHx8fXwKPj4+Pj4gfHx8 fSB8fGNhdGNofCB8KEhvcmRlX0xkYXBfRXhjZXB0aW9uIHx8JGV8fCkge3wKPj4+Pj4gfHx8fXwK Pj4+Pj4gfHx8cmV0dXJufCB8JHZhbHVlfHw7fAo+Pj4+IEkgZ2V0IHRoZSBmb2xsb3dpbmcgcmVz dWx0Cj4+Pj4KPj4+Pj4gZXhjZXB0aW9uICdIb3JkZV9MZGFwX0V4Y2VwdGlvbicgd2l0aCBtZXNz YWdlICdDb3VsZCBub3QgY29ubmVjdCB0bwo+Pj4+PiBsb2NhbGhvc3Q6Mzg5JyBpbiAvdXNyL2xp YjY0L3BocC9Ib3JkZS9MZGFwLnBocDozMjEKPj4+Pj4gU3RhY2sgdHJhY2U6Cj4+Pj4+ICMwIC91 c3IvbGliNjQvcGhwL0hvcmRlL0xkYXAucGhwKDIyNSk6IEhvcmRlX0xkYXAtPl9jb25uZWN0KCkK Pj4+Pj4gIzEgL3Vzci9saWI2NC9waHAvSG9yZGUvTGRhcC5waHAoMTM3KTogSG9yZGVfTGRhcC0+ YmluZCgpCj4+Pj4+ICMyIFtpbnRlcm5hbCBmdW5jdGlvbl06IEhvcmRlX0xkYXAtPl9fY29uc3Ry dWN0KEFycmF5KQo+Pj4+PiAjMyAvdXNyL2xpYjY0L3BocC9Ib3JkZS9JbmplY3Rvci9CaW5kZXIv SW1wbGVtZW50YXRpb24ucGhwKDg4KToKPj4+Pj4gUmVmbGVjdGlvbkNsYXNzLT5uZXdJbnN0YW5j ZUFyZ3MoQXJyYXkpCj4+Pj4+ICM0IC91c3IvbGliNjQvcGhwL0hvcmRlL0luamVjdG9yL0JpbmRl ci9JbXBsZW1lbnRhdGlvbi5waHAoNzApOgo+Pj4+PiBIb3JkZV9JbmplY3Rvcl9CaW5kZXJfSW1w bGVtZW50YXRpb24tPl9nZXRJbnN0YW5jZShPYmplY3QoSG9yZGVfSW5qZWN0b3IpLCAKPj4+Pj4K Pj4+Pj4gT2JqZWN0KFJlZmxlY3Rpb25DbGFzcykpCj4+Pj4+ICM1IC91c3IvbGliNjQvcGhwL0hv cmRlL0luamVjdG9yL0JpbmRlci9Bbm5vdGF0ZWRTZXR0ZXJzLnBocCg3OCk6Cj4+Pj4+IEhvcmRl X0luamVjdG9yX0JpbmRlcl9JbXBsZW1lbnRhdGlvbi0+Y3JlYXRlKE9iamVjdChIb3JkZV9Jbmpl Y3RvcikpCj4+Pj4+ICM2IC91c3IvbGliNjQvcGhwL0hvcmRlL0luamVjdG9yLnBocCgyMzgpOgo+ Pj4+PiBIb3JkZV9JbmplY3Rvcl9CaW5kZXJfQW5ub3RhdGVkU2V0dGVycy0+Y3JlYXRlKE9iamVj dChIb3JkZV9JbmplY3RvcikpIAo+Pj4+Pgo+Pj4+PiAjNyAvdXNyL2xpYjY0L3BocC9Ib3JkZS9J bmplY3Rvci5waHAoMjcyKToKPj4+Pj4gSG9yZGVfSW5qZWN0b3ItPmNyZWF0ZUluc3RhbmNlKCdI b3JkZV9MZGFwJykKPj4+Pj4gIzggL3Zhci93d3cvaG9yZGUvYWRtaW4vcGhwc2hlbGwucGhwKDY2 KSA6IGV2YWwoKSdkIGNvZGUoMSk6Cj4+Pj4+IEhvcmRlX0luamVjdG9yLT5nZXRJbnN0YW5jZSgn SG9yZGVfTGRhcCcpCj4+Pj4+ICM5IC92YXIvd3d3L2hvcmRlL2FkbWluL3BocHNoZWxsLnBocCg2 Nik6IGV2YWwoKQo+Pj4+PiAjMTAge21haW59Cj4+Pj4KPj4+PiBGcm9tIHdoYXQgSSBjYW4gdGVs bCB0aGUgbGlicmFyeSBpcyB0cnlpbmcgdG8gY29ubmVjdCBsbyBsb2NhbGhvc3Q6Mzg5Cj4+Pj4g ZXZlbiB0aG91Z2ggdGhlIHNldHRpbmdzIHN0YXRlIHRoYXQgaXQgc2hvdWxkIGJlIGNvbm5lY3Rp bmcgdG8KPj4+PiBkYzEuZmxpYXdlbGxzLmNvbS5hcjozMjY4LiBXaGF0IGNvdWxkIEkgYmUgbWlz c2luZyBoZXJlPwo+Pj4+Cj4+Pj4KPj4+PiBUaGFuayB5b3UgdmVyeSBtdWNoIGluIGFkdmFuY2Uh Cj4+Pj4KPj4+PiBCZXN0IHJlZ2FyZHMsCj4+Pj4KPj4+PiBEYXZpZCBXZWxscy4KPj4+Pgo+Pj4+ Cj4+Pj4KPj4+PiAtLSAKPj4+PiBIb3JkZSBtYWlsaW5nIGxpc3QKPj4+PiBGcmVxdWVudGx5IEFz a2VkIFF1ZXN0aW9uczogaHR0cDovL2hvcmRlLm9yZy9mYXEvCj4+Pj4gVG8gdW5zdWJzY3JpYmUs IG1haWw6IGhvcmRlLXVuc3Vic2NyaWJlQGxpc3RzLmhvcmRlLm9yZwo+Pj4KPj4+Cj4+Pgo+Cj4K PgotLSAKSG9yZGUgbWFpbGluZyBsaXN0CkZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zOiBodHRw Oi8vaG9yZGUub3JnL2ZhcS8KVG8gdW5zdWJzY3JpYmUsIG1haWw6IGhvcmRlLXVuc3Vic2NyaWJl QGxpc3RzLmhvcmRlLm9yZwo=