Tm90ZQo9PT09CgpUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgcGVvcGxlIHdobyBhcmUgcGVybWl0dGVkIHRvIG1ha2UKY2hhbmdlcyB0byB2YXJpb3VzIHBhcnRzIG9mIHRoZSBjb21waWxlciBhbmQgYXNzb2NpYXRlZCBsaWJyYXJpZXMuCgpQbGVhc2UgZG8gbm90IGNvbnRhY3QgdGhlIHBlb3BsZSBpbiB0aGlzIGZpbGUgZGlyZWN0bHkgdG8gcmVwb3J0CnByb2JsZW1zIGluIEdDQy4KCkZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IEdDQywgcGxlYXNlIHZpc2l0OgoKICBodHRwOi8vZ2NjLmdudS5vcmcKClRvIHJlcG9ydCBwcm9ibGVtcyBpbiBHQ0MsIHBsZWFzZSB2aXNpdDoKCiAgaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbAoKTWFpbnRhaW5lcnMKPT09PT09PT09PT0KCgkJCUJsYW5rZXQgV3JpdGUgUHJpdnMuCgpSaWNoYXJkIEVhcm5zaGF3CQkJCXJpY2hhcmQuZWFybnNoYXdAYXJtLmNvbQpSaWNoYXJkIEhlbmRlcnNvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydGhAcmVkaGF0LmNvbQpHZW9mZnJleSBLZWF0aW5nCQkJCWdlb2Zma0BnZW9mZmsub3JnClJpY2hhcmQgS2VubmVyCQkJCQlrZW5uZXJAbnl1LmVkdQpKZWZmIExhdwkJCQkJbGF3QHJlZGhhdC5jb20KTWljaGFlbCBNZWlzc25lcgkJCQlnbnVAdGhlLW1laXNzbmVycy5vcmcKSmFzb24gTWVycmlsbAkJCQkJamFzb25AcmVkaGF0LmNvbQpEYXZpZCBTLiBNaWxsZXIJCQkJCWRhdmVtQHJlZGhhdC5jb20KTWFyayBNaXRjaGVsbAkJCQkJbWFya0Bjb2Rlc291cmNlcnkuY29tCkJlcm5kIFNjaG1pZHQJCQkJCWJlcm5kLnNjaG1pZHRAYW5hbG9nLmNvbQpKaW0gV2lsc29uCQkJCQl3aWxzb25Ac3BlY2lmaXhpbmMuY29tCgoKCQkJQ1BVIFBvcnQgTWFpbnRhaW5lcnMJKENQVSBhbHBoYWJldGljYWwgb3JkZXIpCgphbHBoYSBwb3J0CQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQphcm0gcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCmFybSBwb3J0CQlSaWNoYXJkIEVhcm5zaGF3CXJpY2hhcmQuZWFybnNoYXdAYXJtLmNvbQphcm0gcG9ydAkJUGF1bCBCcm9vawkJcGF1bEBjb2Rlc291cmNlcnkuY29tCmF2ciBwb3J0CQlEZW5pcyBDaGVydHlrb3YJCWRlbmlzY0BvdmVydGEucnUKYXZyIHBvcnQJCUFuYXRvbHkgU29rb2xvdgkJYWVzb2tAcG9zdC5ydQpiZmluIHBvcnQJCUJlcm5kIFNjaG1pZHQJCWJlcm5kLnNjaG1pZHRAYW5hbG9nLmNvbQpjcmlzIHBvcnQJCUhhbnMtUGV0ZXIgTmlsc3NvbglocEBheGlzLmNvbQpjcnggcG9ydAkJUGF1bCBXb2VnZXJlcgkJcGF1bC53b2VnZXJlckBuc2MuY29tCmZyMzAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCmZydiBwb3J0CQlBbGR5IEhlcm5hbmRlegkJYWxkeWhAcmVkaGF0LmNvbQpmcnYgcG9ydAkJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQpoOCBwb3J0CQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmg4IHBvcnQJCQlLYXp1IEhpcmF0YQkJa2F6dUBjb2Rlc291cmNlcnkuY29tCmhwcGEgcG9ydAkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmhwcGEgcG9ydAkJRGF2ZSBBbmdsaW4JCWRhdmUuYW5nbGluQG5yYy5jYQppMzg2IHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCmkzODYgcG9ydAkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKaTM4NiBwb3J0CQlVcm9zIEJpemphawkJdWJpempha0BnbWFpbC5jb20KaWE2NCBwb3J0CQlKaW0gV2lsc29uCQl3aWxzb25Ac3BlY2lmaXhpbmMuY29tCmlxMjAwMCBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KbTMyYyBwb3J0CQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCm0zMnIgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCm02OGhjMTEgcG9ydAkJU3RlcGhhbmUgQ2FycmV6CQlzdGNhcnJlekBuZXJpbS5mcgptNjhrIHBvcnQgKD8pCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KbTY4ayBwb3J0CQlBbmRyZWFzIFNjaHdhYgkJc2Nod2FiQHN1c2UuZGUKbTY4ay1tb3Rvcm9sYS1zeXN2IHBvcnQJUGhpbGlwcGUgRGUgTXV5dGVyCXBoZG1AbWFjcWVsLmJlCm1jb3JlIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQptaXBzIHBvcnQgICAgICAgICAgICAgICBFcmljIENocmlzdG9waGVyICAgICAgICBlY2hyaXN0b0BhcHBsZS5jb20KbWlwcyBwb3J0CQlSaWNoYXJkIFNhbmRpZm9yZAlyc2FuZGlmb0BuaWxkcmFtLmNvLnVrCm1taXggcG9ydAkJSGFucy1QZXRlciBOaWxzc29uCWhwQGJpdHJhbmdlLmNvbQptbjEwMzAwIHBvcnQJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQptbjEwMzAwIHBvcnQJCUFsZXhhbmRyZSBPbGl2YQkJYW9saXZhQHJlZGhhdC5jb20KbXQgcG9ydAkJCUFsZHkgSGVybmFuZGV6CQlhbGR5aEByZWRoYXQuY29tCm10IHBvcnQJCQlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20KcGRwMTEgcG9ydAkJUGF1bCBLb25pbmcJCW5pMWRAYXJybC5uZXQKcnM2MDAwIHBvcnQJCUdlb2ZmIEtlYXRpbmcJCWdlb2Zma0BnZW9mZmsub3JnCnJzNjAwMCBwb3J0CQlEYXZpZCBFZGVsc29obgkJZGplQHdhdHNvbi5pYm0uY29tCnJzNjAwMCB2ZWN0b3IgZXh0bnMJQWxkeSBIZXJuYW5kZXoJCWFsZHloQHJlZGhhdC5jb20KczM5MCBwb3J0CQlIYXJ0bXV0IFBlbm5lcgkJaHBlbm5lckBkZS5pYm0uY29tCnMzOTAgcG9ydAkJVWxyaWNoIFdlaWdhbmQJCXV3ZWlnYW5kQGRlLmlibS5jb20KczM5MCBwb3J0CQlBbmRyZWFzIEtyZWJiZWwJCUFuZHJlYXMuS3JlYmJlbEBkZS5pYm0uY29tCnNoIHBvcnQJCQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCnNoIHBvcnQJCQlLYXogS29qaW1hCQlra29qaW1hQGdjYy5nbnUub3JnCnNwYXJjIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCnNwYXJjIHBvcnQJCURhdmlkIFMuIE1pbGxlcgkJZGF2ZW1AcmVkaGF0LmNvbQpzcGFyYyBwb3J0CQlKYWt1YiBKZWxpbmVrCQlqYWt1YkByZWRoYXQuY29tCnNwYXJjIHBvcnQJCUVyaWMgQm90Y2F6b3UJCWVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcgpzcHUgcG9ydAkJVHJldm9yIFNtaWdpZWwJCXRyZXZvcl9zbWlnaWVsQHBsYXlzdGF0aW9uLnNvbnkuY29tCnNwdSBwb3J0CQlBbmRyZXcgUGluc2tpCQlhbmRyZXdfcGluc2tpQHBsYXlzdGF0aW9uLnNvbnkuY29tCnNwdSBwb3J0CQlEYXZpZCBFZGVsc29obgkJZGplQHdhdHNvbi5pYm0uY29tCnY4NTAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnZheCBwb3J0CQlEYXZlIEFuZ2xpbgkJZGF2ZS5hbmdsaW5AbnJjLmNhCnZheCBwb3J0CQlNYXR0IFRob21hcwkJbWF0dEAzYW0tc29mdHdhcmUuY29tCng4Ni02NCBwb3J0CQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegp4c3Rvcm15MTYgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnh0ZW5zYSBwb3J0CQlCb2IgV2lsc29uCQlib2Iud2lsc29uQGFjbS5vcmcKCgkJCU9TIFBvcnQgTWFpbnRhaW5lcnMJKE9TIGFscGhhYmV0aWNhbCBvcmRlcikKCmRhcndpbiBwb3J0CQlEYWxlIEpvaGFubmVzZW4JCWRhbGVqQGFwcGxlLmNvbQpkYXJ3aW4gcG9ydAkJTWlrZSBTdHVtcAkJbXJzQGFwcGxlLmNvbQpkYXJ3aW4gcG9ydAkJRXJpYyBDaHJpc3RvcGhlcgllY2hyaXN0b0BhcHBsZS5jb20KREpHUFAJCQlESiBEZWxvcmllCQlkakBkZWxvcmllLmNvbQpmcmVlYnNkCQkJTG9yZW4gSi4gUml0dGxlCQlsanJpdHRsZUBhY20ub3JnCmhwdXgJCQlEYXZlIEFuZ2xpbgkJZGF2ZS5hbmdsaW5AbnJjLmNhCmhwdXgJCQlTdGV2ZSBFbGxjZXkJCXNqZUBjdXAuaHAuY29tCmlyaXgsIG9zZgkJUmFpbmVyIE9ydGgJCXJvQFRlY2hGYWsuVW5pLUJpZWxlZmVsZC5ERQpuZXRic2QJCQlKYXNvbiBUaG9ycGUJCXRob3JwZWpAbmV0YnNkLm9yZwpuZXRic2QJCQlLcmlzdGVyIFdhbGZyaWRzc29uCWNhdG9AZGYubHRoLnNlCnNjbzUsIHVuaXh3YXJlLCBzY28gdWRrCUtlYW4gSm9obnN0b24JCWprakBzY28uY29tCnNoLWxpbnV4LWdudQkJS2F6IEtvamltYQkJa2tvamltYUBnY2MuZ251Lm9yZwpSVEVNUyBQb3J0cwkJSm9lbCBTaGVycmlsbAkJam9lbEBvYXJjb3JwLmNvbQpSVEVNUyBQb3J0cwkJUmFsZiBDb3JzZXBpdXMJCXJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZwpWeFdvcmtzIHBvcnRzCQlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20Kd2luZG93cywgY3lnd2luLCBtaW5ndwlDaHJpc3RvcGhlciBGYXlsb3IJY2dmQGdjYy5nbnUub3JnCndpbmRvd3MsIGN5Z3dpbiwgbWluZ3cJRGFubnkgU21pdGgJCWRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0CgoJCQlMYW5ndWFnZSBGcm9udCBFbmRzIE1haW50YWluZXJzCgpDIGZyb250IGVuZC9JU08gQzk5CUpvc2VwaCBNeWVycwkJanNtQHBvbHlvbWluby5vcmcudWsKQyBmcm9udCBlbmQvSVNPIEM5OQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQpBZGEgZnJvbnQgZW5kCQlHZWVydCBCb3NjaAkJYm9zY2hAZ25hdC5jb20KQWRhIGZyb250IGVuZAkJUm9iZXJ0IERld2FyCQlkZXdhckBnbmF0LmNvbQpBZGEgZnJvbnQgZW5kCQlBcm5hdWQgQ2hhcmxldAkJY2hhcmxldEBhY3QtZXVyb3BlLmZyCkZvcnRyYW4JCQlQYXVsIEJyb29rCQlwYXVsQGNvZGVzb3VyY2VyeS5jb20KYysrCQkJSmFzb24gTWVycmlsbAkJamFzb25AcmVkaGF0LmNvbQpjKysJCQlNYXJrIE1pdGNoZWxsCQltYXJrQGNvZGVzb3VyY2VyeS5jb20KYysrCQkJTmF0aGFuIFNpZHdlbGwJCW5hdGhhbkBjb2Rlc291cmNlcnkuY29tCmphdmEJCQlQZXIgQm90aG5lcgkJcGVyQGJvdGhuZXIuY29tCmphdmEJCQlBbmRyZXcgSGFsZXkJCWFwaEByZWRoYXQuY29tCmphdmEJCQlUb20gVHJvbWV5CQl0cm9tZXlAcmVkaGF0LmNvbQpvYmplY3RpdmUtYy9jKysJCU1pa2UgU3R1bXAJCW1yc0BhcHBsZS5jb20KdHJlZWxhbmcgICAgICAgICAgICAgICAgVGltIEpvc2xpbmcgICAgICAgICAgICAgdGVqQG1lbGJwYy5vcmcuYXUKdHJlZWxhbmcgICAgICAgICAgICAgICAgSmFtZXMgQS4gTW9ycmlzb24JcGh5dGhvbkBnY2MuZ251Lm9yZwoKCQkJVmFyaW91cyBNYWludGFpbmVycwoKbGliY3BwCQkJUGVyIEJvdGhuZXIJCXBlckBib3RobmVyLmNvbQpsaWJjcHAJCQlBbGwgQyBhbmQgQysrIGZyb250IGVuZCBtYWludGFpbmVycwpmcC1iaXQJCQlJYW4gTGFuY2UgVGF5bG9yCWlhbkBhaXJzLmNvbQpsaWJkZWNudW1iZXIJCUJlbiBFbGxpc3RvbgkJYmplQGF1LmlibS5jb20KbGliZ2NjCQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbGliZ2NjLW1hdGgJCVJpY2hhcmQgR3VlbnRoZXIJcmd1ZW50aGVyQHN1c2UuZGUKbGliZ2NqCQkJVG9tIFRyb21leQkJdHJvbWV5QHJlZGhhdC5jb20KbGliZ2NqCQkJQnJ5Y2UgTWNLaW5sYXkJCW1ja2lubGF5QHJlZGhhdC5jb20KbGliZ29tcCAgICAgICAgICAgICAgICAgUmljaGFyZCBIZW5kZXJzb24gICAgICAgcnRoQHJlZGhhdC5jb20KbGliZ29tcAkJCUpha3ViIEplbGluZWsJCWpha3ViQHJlZGhhdC5jb20KbGliaWJlcnR5CQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCmxpYmliZXJ0eQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbGliZmZpIHRlc3RzdWl0ZQlBbmRyZWFzIFRvYmxlcgkJYW5kcmVhc3RAZ2NjLmdudS5vcmcKbGlib2JqYwkJCU5pY29sYSBQZXJvCQluLnBlcm9AbWkuZmxhc2huZXQuaXQKbGlib2JqYwkJCUFuZHJldyBQaW5za2kJCXBpbnNraWFAZ21haWwuY29tCmxvb3AgZGlzY292ZXJ5CQlNaWNoYWVsIEhheWVzCQltLmhheWVzQGVsZWMuY2FudGVyYnVyeS5hYy5uegpzb2Z0LWZwCQkJSm9zZXBoIE15ZXJzCQlqc21AcG9seW9taW5vLm9yZy51awpzY2hlZHVsZXIgKCsgaGFpZmEpCUppbSBXaWxzb24JCXdpbHNvbkBzcGVjaWZpeGluYy5jb20Kc2NoZWR1bGVyICgrIGhhaWZhKQlNaWNoYWVsIE1laXNzbmVyCWdudUB0aGUtbWVpc3NuZXJzLm9yZwpzY2hlZHVsZXIgKCsgaGFpZmEpCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpzY2hlZHVsZXIgKCsgaGFpZmEpCVZsYWRpbWlyIE1ha2Fyb3YJdm1ha2Fyb3ZAcmVkaGF0LmNvbQptb2R1bG8tc2NoZWR1bGVyCUF5YWwgWmFrcwkJemFrc0BpbC5pYm0uY29tCnJlb3JnCQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmNhbGxlci1zYXZlLmMJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpjYWxsZ3JhcGgJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6CmRlYnVnZ2luZyBjb2RlCQlKaW0gV2lsc29uCQl3aWxzb25Ac3BlY2lmaXhpbmMuY29tCmR3YXJmIGRlYnVnZ2luZyBjb2RlCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlQYW9sbyBDYXJsaW5pCQlwY2FybGluaUBzdXNlLmRlCmMrKyBydW50aW1lIGxpYnMgICAgICAgIEdhYnJpZWwgRG9zIFJlaXMgICAgICAgIGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQKYysrIHJ1bnRpbWUgbGlicwlVbHJpY2ggRHJlcHBlcgkJZHJlcHBlckByZWRoYXQuY29tCmMrKyBydW50aW1lIGxpYnMJUGhpbCBFZHdhcmRzCQlwbWVAZ2NjLmdudS5vcmcKYysrIHJ1bnRpbWUgbGlicwlCZW5qYW1pbiBLb3NuaWsJCWJrb3pAcmVkaGF0LmNvbQpjKysgcnVudGltZSBsaWJzCUxvcmVuIEouIFJpdHRsZQkJbGpyaXR0bGVAYWNtLm9yZwoqc3ludGhldGljIG11bHRpcGx5CVRvcmJqb3JuIEdyYW5sdW5kCXRlZ2VAc3dveC5jb20KKmMtdG9ydHVyZQkJVG9yYmpvcm4gR3Jhbmx1bmQJdGVnZUBzd294LmNvbQpmaXhpbmNsdWRlcwkJQnJ1Y2UgS29yYgkJYmtvcmJAZ251Lm9yZwpnY3NlLmMgCQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmdsb2JhbCBvcHQgZnJhbWV3b3JrCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpqdW1wLmMJCQlEYXZpZCBTLiBNaWxsZXIJCWRhdmVtQHJlZGhhdC5jb20Kd2ViIHBhZ2VzCQlHZXJhbGQgUGZlaWZlcgkJZ2VyYWxkQHBmZWlmZXIuY29tCmJ1aWxkIHN0YXR1cyBsaXN0cwlKYW5pcyBKb2huc29uCQlqYW5pczE4N0B1cy5pYm0uY29tCmNvbmZpZy5zdWIvY29uZmlnLmd1ZXNzCUJlbiBFbGxpc3RvbgkJY29uZmlnLXBhdGNoZXNAZ251Lm9yZwpiYXNpYyBibG9jayByZW9yZGVyaW5nCUphc29uIEVja2hhcmR0CQlqbGVAcmljZS5lZHUKaTE4bgkJCVBoaWxpcHAgVGhvbWFzCQlwdGhAc3VzZS5kZQppMThuCQkJSm9zZXBoIE15ZXJzCQlqc21AcG9seW9taW5vLm9yZy51awpkaWFnbm9zdGljIG1lc3NhZ2VzCUdhYnJpZWwgRG9zIFJlaXMJZ2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldApidWlsZCBtYWNoaW5lcnkgKCouaW4pCVBhb2xvIEJvbnppbmkJCWJvbnppbmlAZ251Lm9yZwpidWlsZCBtYWNoaW5lcnkgKCouaW4pCURKIERlbG9yaWUJCWRqQHJlZGhhdC5jb20KYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlOYXRoYW5hZWwgTmVyb2RlCW5lcm9kZW5AZ2NjLmdudS5vcmcKYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCmRvY3MgY28tbWFpbnRhaW5lcglHZXJhbGQgUGZlaWZlcgkJZ2VyYWxkQHBmZWlmZXIuY29tCmRvY3MgY28tbWFpbnRhaW5lcglKb3NlcGggTXllcnMJCWpzbUBwb2x5b21pbm8ub3JnLnVrCnByZWRpY3QuZGVmCQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegpjb250cmliL3JlZ3Jlc3Npb24JR2VvZmYgS2VhdGluZwkJZ2VvZmZrQGdlb2Zmay5vcmcKZ2NvdgkJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6Cmdjb3YJCQlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20Kb3B0aW9uIGhhbmRsaW5nCQlOZWlsIEJvb3RoCQluZWlsQGRhaWtva3V5YS5jby51awp0ZXN0c3VpdGUJCUphbmlzIEpvaG5zb24JCWphbmlzMTg3QHVzLmlibS5jb20KbWlkZGxlLWVuZAkJUm9nZXIgU2F5bGUJCXJvZ2VyQGV5ZXNvcGVuLmNvbQptaWRkbGUtZW5kCQlJYW4gTGFuY2UgVGF5bG9yCWlhbkBhaXJzLmNvbQptaWRkbGUtZW5kCQlEaWVnbyBOb3ZpbGxvCQlkbm92aWxsb0Bnb29nbGUuY29tCnRyZWUtc3NhCQlEaWVnbyBOb3ZpbGxvCQlkbm92aWxsb0Bnb29nbGUuY29tCnRyZWUtc3NhCQlBbmRyZXcgTWFjTGVvZAkJYW1hY2xlb2RAcmVkaGF0LmNvbQpQUkUJCQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCmNvZGUgc2lua2luZwkJRGFuaWVsIEJlcmxpbgkJZGJlcmxpbkBkYmVybGluLm9yZwptdWRmbGFwCQkJRnJhbmsgQ2guIEVpZ2xlcglmY2hlQHJlZGhhdC5jb20KdHJlZSBicm93c2VyL3VucGFyc2VyCVNlYmFzdGlhbiBQb3AJCXNlYmFzdGlhbi5wb3BAYW1kLmNvbQpzY2V2LCBkYXRhIGRlcGVuZGVuY2UgICBEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCnNjZXYsIGRhdGEgZGVwZW5kZW5jZQlTZWJhc3RpYW4gUG9wCQlzZWJhc3RpYW4ucG9wQGFtZC5jb20KbGluZWFyIGxvb3AgdHJhbnNmb3JtcwlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCnByb2ZpbGUgZmVlZGJhY2sJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKdHlwZS1zYWZlIHZlY3RvcnMJTmF0aGFuIFNpZHdlbGwJCW5hdGhhbkBjb2Rlc291cmNlcnkuY29tCmFsaWFzIGFuYWx5c2lzCQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCmFsaWFzIGFuYWx5c2lzCQlEaWVnbyBOb3ZpbGxvCQlkbm92aWxsb0Bnb29nbGUuY29tCnJlbG9hZAkJCVVscmljaCBXZWlnYW5kCQl1d2VpZ2FuZEBkZS5pYm0uY29tCmRmcC5jLCByZWxhdGVkCQlCZW4gRWxsaXN0b24JCWJqZUBhdS5pYm0uY29tClJUTCBvcHRpbWl6ZXJzCQlFcmljIEJvdGNhem91CQllYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnIKYXV0by12ZWN0b3JpemVyCQlSaWNoYXJkIEd1ZW50aGVyCXJndWVudGhlckBzdXNlLmRlCmF1dG8tdmVjdG9yaXplcgkJWmRlbmVrIER2b3JhawkJb29rQHVjdy5jegphdXRvLXZlY3Rvcml6ZXIJCURvcml0IE51em1hbgkJZG9yaXRAaWwuaWJtLmNvbQpsb29wIGluZnJhc3RydWN0dXJlCVpkZW5layBEdm9yYWsJCW9va0B1Y3cuY3oKCk5vdGUgdGhhdCBpbmRpdmlkdWFscyB3aG8gbWFpbnRhaW4gcGFydHMgb2YgdGhlIGNvbXBpbGVyIG5lZWQgYXBwcm92YWwgdG8gY2hlY2sKaW4gY2hhbmdlcyBvdXRzaWRlIG9mIHRoZSBwYXJ0cyBvZiB0aGUgY29tcGlsZXIgdGhleSBtYWludGFpbi4KCgkJCU5vbi1BbGdvcml0aG1pYyBNYWludGFpbmVycwoKbG9vcCBvcHRpbWl6ZXIJCVpkZW5layBEdm9yYWsJCW9va0B1Y3cuY3oKbG9vcCBvcHRpbWl6ZXIJCURhbmllbCBCZXJsaW4JCWRiZXJsaW5AZGJlcmxpbi5vcmcKbWlkZGxlLWVuZAkJUmljaGFyZCBHdWVudGhlcglyZ3VlbnRoZXJAc3VzZS5kZQpsaWJjcHAJCQlUb20gVHJvbWV5CQl0cm9tZXlAcmVkaGF0LmNvbQpibGFua2V0IHdyaXRlCQlEaWVnbyBOb3ZpbGxvCQlkbm92aWxsb0Bnb29nbGUuY29tCmJsYW5rZXQgd3JpdGUJCUlhbiBMYW5jZSBUYXlsb3IJaWFuQGFpcnMuY29tCgpOb3RlIHRoYXQgaW5kaXZpZHVhbHMgd2hvIG1haW50YWluIHBhcnRzIG9mIHRoZSBjb21waWxlciBhcyBub24tYWxnb3JpdGhtaWMKbWFpbnRhaW5lcnMgbmVlZCBhcHByb3ZhbCB0byBjaGVjayBpbiBhbGdvcml0aG1pYyBjaGFuZ2VzIG9yIGNoYW5nZXMKb3V0c2lkZSBvZiB0aGUgcGFydHMgb2YgdGhlIGNvbXBpbGVyIHRoZXkgbWFpbnRhaW4uCgoJCQlSZXZpZXdlcnMKCmRhdGFmbG93CQlQYW9sbyBCb256aW5pCQlib256aW5pQGdudS5vcmcKZGF0YWZsb3cJCVNlb25nYmFlIFBhcmsJCXNlb25nYmFlLnBhcmtAZ21haWwuY29tCmRhdGFmbG93IAkJS2VubmV0aCBaYWRlY2sJCXphZGVja0BuYXR1cmFsYnJpZGdlLmNvbQpGb3J0cmFuCQkJSmFubmUgQmxvbXF2aXN0CQlqYkBnY2MuZ251Lm9yZwpGb3J0cmFuCQkJVG9iaWFzIEJ1cm51cwkJYnVybnVzQG5ldC1iLmRlCkZvcnRyYW4JCQlGcmFu529pcy1YYXZpZXIgQ291ZGVydAlmeGNvdWRlcnRAZ2NjLmdudS5vcmcKRm9ydHJhbgkJCUplcnJ5IERlTGlzbGUJCWp2ZGVsaXNsZUBnY2MuZ251Lm9yZwpGb3J0cmFuCQkJRXJpayBFZGVsbWFubgkJZXJpay5lZGVsbWFubkBpa2kuZmkKRm9ydHJhbgkJCVRob21hcyBLb2VuaWcJCVRob21hcy5Lb2VuaWdAb25saW5lLmRlCkZvcnRyYW4JCQlUb29uIE1vZW5lCQl0b29uQG1vZW5lLmluZGl2Lm5sdXVnLm5sCkZvcnRyYW4JCQlCcm9va3MgTW9zZXMJCWJyb29rcy5tb3Nlc0Bjb2Rlc291cmNlcnkuY29tCkZvcnRyYW4JCQlUb2JpYXMgU2NobPx0ZXIJCXRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZQpGb3J0cmFuCQkJUGF1bCBUaG9tYXMJCXBhdWx0QGdjYy5nbnUub3JnCnJlZ2lzdGVyIGFsbG9jYXRpb24JUGV0ZXIgQmVyZ25lcgkJYmVyZ25lckB2bmV0LmlibS5jb20KcmVnaXN0ZXIgYWxsb2NhdGlvbglWbGFkaW1pciBNYWthcm92CXZtYWthcm92QHJlZGhhdC5jb20KcmVnaXN0ZXIgYWxsb2NhdGlvbglLZW5uZXRoIFphZGVjawkJemFkZWNrQG5hdHVyYWxicmlkZ2UuY29tCnJlZ2lzdGVyIGFsbG9jYXRpb24JU2VvbmdiYWUgUGFyawkJc2VvbmdiYWUucGFya0BnbWFpbC5jb20KCk5vdGUgdGhhdCB3aGlsZSByZXZpZXdlcnMgY2FuIGFwcHJvdmUgY2hhbmdlcyB0byBwYXJ0cyBvZiB0aGUgY29tcGlsZXIKdGhhdCB0aGV5IG1haW50YWluLCB0aGV5IHN0aWxsIG5lZWQgYXBwcm92YWwgZm9yIHRoZWlyIG93biBwYXRjaGVzCmZyb20gb3RoZXIgbWFpbnRhaW5lcnMgb3IgcmV2aWV3ZXJzLgoKCQkJV3JpdGUgQWZ0ZXIgQXBwcm92YWwJKGxhc3QgbmFtZSBhbHBoYWJldGljYWwgb3JkZXIpCgpNYXJrIEcuIEFkYW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrLmcuYWRhbXNAc3ltcGF0aWNvLmNhClJha3NpdCBBc2hvayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJha3NpdEBnb29nbGUuY29tCk1hdHQgQXVzdGVybiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1c3Rlcm5AZ29vZ2xlLmNvbQpEYXZpZCBBeWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLmF5ZXJzQGlub2RlLmF0Ckdpb3Zhbm5pIEJham8JCQkJCWdpb3Zhbm5pYmFqb0BnY2MuZ251Lm9yZwpTaW1vbiBCYWxkd2luCQkJCQlzaW1vbmJAZ29vZ2xlLmNvbQpTY290dCBCYW1icm91Z2gJCQkJCXNjb3R0YkBuZXR3aW5kZXIub3JnCldvbGZnYW5nIEJhbmdlcnRoCQkJCWJhbmdlcnRoQGRlYWxpaS5vcmcKQW5kcmV5IEJlbGV2YW50c2V2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJlbEBpc3ByYXMucnUKUGV0ZXIgQmVyZ25lcgkJCQkJYmVyZ25lckB2bmV0LmlibS5jb20KSmFuIEJldWxpY2gJCQkJCWpiZXVsaWNoQG5vdmVsbC5jb20KRGF2aWQgQmlsbGluZ2h1cnN0CQkJCURhdmlkLkJpbGxpbmdodXJzdEByaW90aW50by5jb20KTGF1cnluYXMgQml2ZWluaXMJCQkgICAgICAgIGxhdXJ5bmFzLmJpdmVpbmlzQGdtYWlsLmNvbQpFcmljIEJsYWtlCQkJCQllcmljYkBnY2MuZ251Lm9yZwpKaW0gQmxhbmR5CQkJCQlqaW1iQGNvZGVzb3VyY2VyeS5jb20KUGhpbCBCbHVuZGVsbAkJCQkJcGJAZnV0dXJldHYuY29tCkhhbnMgQm9laG0JCQkJCWhib2VobUBnY2MuZ251Lm9yZwpTZWdoZXIgQm9lc3Nlbmtvb2wJCQkJc2VnaGVyQGtlcm5lbC5jcmFzaGluZy5vcmcKQW5kcmVhIEJvbmEJCQkJCWFuZHJlYS5ib25hQHN0LmNvbQpQYW9sbyBCb256aW5pCQkJCQlib256aW5pQGdudS5vcmcKTmVpbCBCb290aAkJCQkJbmVpbEBkYWlrb2t1eWEuY28udWsKUm9iZXJ0IEJvd2RpZGdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm93ZGlkZ2VAYXBwbGUuY29tCkpvZWwgQnJvYmVja2VyCQkJCQlicm9iZWNrZXJAZ25hdC5jb20KRGF2ZSBCcm9sbGV5CQkJCQlicm9sbGV5QHJlZGhhdC5jb20KSnVsaWFuIEJyb3duCQkJCQlqdWxpYW5AY29kZXNvdXJjZXJ5LmNvbQpDaHJpc3RpYW4gQnJ1ZWwJCQkJCWNocmlzdGlhbi5icnVlbEBzdC5jb20KS2V2aW4gQnVldHRuZXIJCQkJCWtldmluYkByZWRoYXQuY29tCkFuZHJldyBDYWduZXkJCQkJCWNhZ25leUByZWRoYXQuY29tCkpvaG4gQ2FycgkJCQkJamZjQG1pdC5lZHUKU3RldmUgQ2hhbWJlcmxhaW4JCQkJc2FjQHRyYW5zbWV0YS5jb20KTWljaGFlbCBDaGFzdGFpbgkJCQltZWMuZ251QG1pbmRzcHJpbmcuY29tCkNoYW5kcmEgQ2hhdnZhCQkJCQljY2hhdnZhQHJlZGhhdC5jb20KV2lsbGlhbSBDb2hlbgkJCQkJd2NvaGVuQHJlZGhhdC5jb20KSm9zaCBDb25uZXIJCQkJCWpjb25uZXJAYXBwbGUuY29tClIuIEtlbGxleSBDb29rCQkJCQlrY29va0BnY2MuZ251Lm9yZwpDaHJpc3RpYW4gQ29ybmVsc3NlbgkJCQljY29ybkBjcy50dS1iZXJsaW4uZGUKSWFuIERhbGwJCQkJCWlhbkBiZXdhcmUuZHJvcGJlYXIuaWQuYXUKRGF2aWQgRGFuZXkJCQkJCWRkYW5leUBhdnRyZXguY29tCkJ1ZCBEYXZpcwkJCQkJam1kYXZpc0BsaW5rLmNvbQpCZW5vaXQgRHVwb250IGRlIERpbmVjaGluCQkJYmVub2l0LmR1cG9udC1kZS1kaW5lY2hpbkBzdC5jb20KTW9oYW4gRW1iYXIJCQkJCWdudXN0dWZmQHRoaXNpc2Nvb2wuY29tClJldml0YWwgRXJlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyZXNAaWwuaWJtLmNvbSAKTWFyYyBFc3BpZQkJCQkJZXNwaWVAY3ZzLm9wZW5ic2Qub3JnClJhZmFlbCDBdmlsYSBkZSBFc3DtbmRvbGEJCQlyYWZhZWwuZXNwaW5kb2xhQGdtYWlsLmNvbQpBbnNnYXIgRXN6dGVybWFubgkJCQlhbnNnYXJAdGhwaHkudW5pLWR1ZXNzZWxkb3JmLmRlCkRvdWcgRXZhbnMJCQkJCWRqZUBnb29nbGUuY29tCkJlcm5oYXJkIEZpc2NoZXIJCQkJcmVwLmRvdC5ub3BAZ21haWwuY29tClRob21hcyBGaXR6c2ltbW9ucwkJCQlmaXR6c2ltQHJlZGhhdC5jb20KQnJpYW4gRm9yZAkJCQkJZm9yZEB2c3MuZnNpLmNvbQpEYW5pZWwgRnJhbmtlCQkJCQlmcmFua2UuZGFuaWVsQGdtYWlsLmNvbQpOYXRoYW4gRnJveWQJCQkJCWZyb3lkbmpAY29kZXNvdXJjZXJ5LmNvbQpDaGFvLXlpbmcgRnUJCQkJCWZ1QG1pcHMuY29tCkthdmVoIEdoYXppCQkJCQlnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1Ck1hdHRoZXcgR2luZ2VsbAkJCQkJZ2luZ2VsbEBnbmF0LmNvbQpBbnRob255IEdyZWVuCQkJCQlncmVlbkByZWRoYXQuY29tCkRvdWcgR3JlZ29yCQkJCQlkb3VnLmdyZWdvckBnbWFpbC5jb20KSm9uIEdyaW1tCQkJCQlqZ3JpbW0yQHVzLmlibS5jb20KVG9iaWFzIEdyb3NzZXIJCQkJCWdyb3NzZXJAZmltLnVuaS1wYXNzYXUuZGUKTGF1cmVudCBHdWVyYnkJCQkJCWxhdXJlbnRAZ3VlcmJ5Lm5ldApNb3N0YWZhIEhhZ29nCQkJCQloYWdvZ0BnY2MuZ251Lm9yZwpPbGl2aWVyIEhhaW5xdWUJCQkJCWhhaW5xdWVAYWN0LWV1cm9wZS5mcgpTdHVhcnQgSGFzdGluZ3MJCQkJCXN0dWFydEBhcHBsZS5jb20KUGF0IEhhdWdlbgkJCQkJcHRoYXVnZW5AdXMuaWJtLmNvbQpNYXJrIEhlZmZlcm5hbgkJCQkJbWVoZWZmQGdvb2dsZS5jb20KR2VvcmdlIEhlbGZmcmljaAkJCQlnZW9yZ2VAZ2NjLmdudS5vcmcKRmVyZ3VzIEhlbmRlcnNvbgkJCQlmamhAY3MubXUub3ouYXUKTWF0dGhldyBIaWxsZXIJCQkJCWhpbGxlckByZWRoYXQuY29tCkRhbiBIaXBzY2htYW4JCQkJCWRzaEBnb29nbGUuY29tCk1hbmZyZWQgSG9sbHN0ZWluCQkJCW1oQHN1c2UuY29tCkZhbGsgSHVlZmZuZXIJCQkJCWZhbGtAZGViaWFuLm9yZwpBbmRyZXcgSm9obiBIdWdoZXMJCQkJZ251X2FuZHJld0BtZW1iZXIuZnNmLm9yZwpCZXJuYXJkbyBJbm5vY2VudGkJCQkJYmVybmllQGRldmVsZXIuY29tCkRhbmllbCBKYWNvYm93aXR6CQkJCWRhbkBkZWJpYW4ub3JnCkFuZHJlYXMgSmFlZ2VyCQkJCQlhakBzdXNlLmRlCkhhcnNoYSBKYWdhc2lhCQkJCQloYXJzaGEuamFnYXNpYUBhbWQuY29tCkZhcmlib3J6IEphaGFuaWFuCQkJCWZqYWhhbmlhbkBhcHBsZS5jb20KUGhpbGxpcCBKb3JkYW4JCQkJCXBoaWxsaXAubS5qb3JkYW5AZ21haWwuY29tCktsYXVzIEthZW1wZgkJCQkJa2thZW1wZkBwcm9naXMuZGUKVmljdG9yIEthcGxhbnNreQkJCQl2aWN0b3JrQGlsLmlibS5jb20KQnJlbmRhbiBLZWhvZQkJCQkJYnJlbmRhbkB6ZW4ub3JnCk11bWl0IEtoYW4JCQkJCWtoYW5AeHJheWxpdGgud2lzYy5lZHUKTWF0dGhpYXMgS2xvc2UJCQkJCWRva29AZGViaWFuLm9yZwpKZWZmIEtuYWdncwkJCQkJamtuYWdnc0ByZWRoYXQuY29tCk1pY2hhZWwgS29jaAkJCQkJa29ucXVlcm9yQGdteC5kZQpEYXZlIEtvcm4JCQkJCWRhdmUua29ybkBhcnRpbWkuY29tCk1hdHQgS3JhYWkJCQkJCWtyYWFpQGZ0YmZzLm9yZwpNYXhpbSBLdXZ5cmtvdgkJCQkJbWF4aW1AY29kZXNvdXJjZXJ5LmNvbQpEb3VnIEt3YW4JCQkJCWRvdWdrd2FuQGdvb2dsZS5jb20KU2NvdHQgUm9iZXJ0IExhZGQJCQkJc2NvdHQubGFkZEBjb3lvdGVndWxjaC5jb20KUmF6eWEgTGFkZWxza3kJCQkJCXJhenlhQGdjYy5nbnUub3JnCkFhcm9uIFcuIExhRnJhbWJvaXNlCQkJCWFhcm9uYXZheTYyQGFhcm9ud2wuY29tClJhc2sgSW5nZW1hbm4gTGFtYmVydHNlbgkJCXJhc2tAc3lnZWh1cy5kawpBc2hlciBMYW5ndG9uCQkJCQlsYW5ndG9uMkBsbG5sLmdvdgpDaHJpcyBMYXR0bmVyCQkJCQlzYWJyZUBub25kb3Qub3JnClRlcnJ5IExhdXJlbnpvCQkJCQl0bGF1cmVuem9AZ21haWwuY29tCk1hcmMgTGVobWFubgkJCQkJcGNnQGdvb2YuY29tCkFsYW4gTGVob3Rza3kJCQkJCWFwbEBhbHVtLm1pdC5lZHUKSmFtZXMgTGVta2UJCQkJCWp3bGVta2VAc3BlY2lmaXguY29tCktyaWFuZyBMZXJkc3V3YW5ha2lqCQkJCWxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldApXYXJyZW4gTGV2eQkJCQkJd2FycmVubEBjcnV6aW8uY29tCkRvbiBMaW5kc2F5CQkJCQlkbGluZHNheUByZWRoYXQuY29tCkNoZW4gTGlxaW4JCQkJCWxpcWluQHN1bm5vcnRoLmNvbS5jbgpTYSBMaXUJCQkJCQlzYWxpdUBkZS5pYm0uY29tClJhbHBoIExvYWRlcgkJCQkJcmNsQGlodWcuY28ubnoKR2Fib3IgTG9raQkJCQkJbG9raUBpbmYudS1zemVnZWQuaHUKU2FuZHJhIExvb3NlbW9yZQkJCQlzYW5kcmFAY29kZXNvdXJjZXJ5LmNvbQpNYW51ZWwgTPNwZXotSWLh8WV6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW51QGdjYy5nbnUub3JnCkRhdmUgTG92ZQkJCQkJZC5sb3ZlQGRsLmFjLnVrCk1hcnRpbiB2LiBM9ndpcwkJCQkJbG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlCkguSi4gTHUJCQkJCQloamwudG9vbHNAZ21haWwuY29tCldpbGxpYW0gTWFkZG94CQkJCQltYWRkb3hAZ29vZ2xlLmNvbQpaaWdhIE1haGtvdmVjCQkJCQl6aWdhLm1haGtvdmVjQGtsaWthLnNpClNpbW9uIE1hcnRpbgkJCQkJc2ltYXJ0aW5AdXNlcnMuc291cmNlZm9yZ2UubmV0ClJhbmppdCBNYXRoZXcJCQkJCXJtYXRoZXdAaG90bWFpbC5jb20KQ2hyaXMgTWF0dGhld3MJCQkJCWNocmlzbWF0dGhld3NAZ29vZ2xlLmNvbQpNaWNoYWVsIE1hdHoJCQkJCW1hdHpAc3VzZS5kZQpHcmVnIE1jR2FyeQkJCQkJZ2ttQGdudS5vcmcKQWRhbSBNZWdhY3oJCQkJCWFkYW1AeHd0Lm9yZwpNYXJ0aW4gTWljaGxtYXlyCQkJCXRibUBjeXJpdXMuY29tClJvYmVydCBNaWxsYW4JCQkJCXJtaEBnY2MuZ251Lm9yZwpMZWUgTWlsbHdhcmQJCQkJCWxlZS5taWxsd2FyZEBnbWFpbC5jb20KQWxhbiBNb2RyYQkJCQkJYW1vZHJhQGJpZ3BvbmQubmV0LmF1CkFsZXhhbmRlciBNb25ha292CQkJCWFtb25ha292QGlzcHJhcy5ydQpDYXRoZXJpbmUgTW9vcmUJCQkJCWNsbUByZWRoYXQuY29tCkRpcmsgTXVlbGxlcgkJCQkJZG11ZWxsZXJAc3VzZS5kZQpBZGFtIE5lbWV0CQkJCQlhbmVtZXRAY2F2aXVtbmV0d29ya3MuY29tClRob21hcyBOZXVtYW5uCQkJCQl0bmV1bWFubkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKRGFuIE5pY29sYWVzY3UJCQkJCWRhbm5AaWNzLnVjaS5lZHUKRG9yaXQgTnV6bWFuCQkJCQlkb3JpdEBpbC5pYm0uY29tCkRhdmlkIE8nQnJpZW4JCQkJCW9icmllbkBGcmVlQlNELm9yZwpDYXJsb3MgTydEb25lbGwJCQkJCWNhcmxvc0Bjb2Rlc291cmNlcnkuY29tCkplZmZyZXkgRC4gT2xkaGFtCQkJCW9sZGhhbUBjb2Rlc291cmNlcnkuY29tCkFuZHJlYSBPcm5zdGVpbgkJCQkJYW5kcmVhLm9ybnN0ZWluQHN0LmNvbQpTZW9uZ2JhZSBQYXJrCQkJCQlzZW9uZ2JhZS5wYXJrQGdtYWlsLmNvbQpEZXZhbmcgUGF0ZWwJCQkJCWRwYXRlbEBhcHBsZS5jb20KQWxleGFuZHJlIFBldGl0LUJpYW5jbwkJCQlhcGJpYW5jb0ByZWRoYXQuY29tCk5pY29sYXMgUGl0cmUJCQkJCW5pY29AY2FtLm9yZwpDbGludG9uIFBvcGV0egkJCQkJY3BvcGV0ekBjcG9wZXR6LmNvbQpWbGFkaW1pciBQcnVzCQkJCQl2bGFkaW1pckBjb2Rlc291cmNlcnkuY29tCkplcnJ5IFF1aW5uCQkJCQlqbHF1aW5uQG9wdG9ubGluZS5uZXQKRHdhcmFrYW5hdGggUmFqYWdvcGFsCQkJCWR3YXJhay5yYWphZ29wYWxAYW1kLmNvbQpSb2xmIFJhc211c3NlbgkJCQkJcm9sZndyQGdjYy5nbnUub3JnClZvbGtlciBSZWljaGVsdAkJCQkJcmVpY2hlbHRAaWdwbS5yd3RoLWFhY2hlbi5kZQpUb20gUml4CQkJCQkJdHJpeEByZWRoYXQuY29tCkNyYWlnIFJvZHJpZ3VlcwkJCQkJcm9kcmlnY0BnY2MuZ251Lm9yZwpFcnZlbiBSb2hvdSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnZlbi5yb2hvdUBzdC5jb20KR2F2aW4gUm9taWctS29jaAkJCQlnYXZpbkByZWRoYXQuY29tCklyYSBSb3NlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlyYXJAaWwuaWJtLmNvbQpNYWNpZWogVy4gUm96eWNraQkJCQltYWNyb0BsaW51eC1taXBzLm9yZwpEb3VnbGFzIFJ1cHAJCQkJCXJ1cHBAZ25hdC5jb20KU2lsdml1cyBSdXMJCQkJCXJ1c0Bnb29nbGUuY29tCk1hdHRoZXcgU2FjaHMJCQkJCW1zYWNoc0BhcHBsZS5jb20KU3ZlaW4gU2VsZGFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZlaW5AZGV2LnNlbGRhbC5jb20KVGhpZW1vIFNldWZlcgkJCQkJdGhzQG5ldHdvcmtuby5kZQpNYXJrIFNoaW53ZWxsCQkJCQlzaGlud2VsbEBjb2Rlc291cmNlcnkuY29tCkpvaGFubmVzIFNpbmdsZXIJCQkJc2luZ2xlckBpcmEudWthLmRlCkZyYW56IFNpcmwJCQkJCWZyYW56LnNpcmwta2VybmVsQGxhdXRlcmJhY2guY29tCkphbiBTam9kaW4JCQkJCWphbi5zam9kaW5AYW1kLmNvbQpNaWNoYWVsIFNva29sb3YJCQkJCW1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRwpSaWNoYXJkIFN0YWxsbWFuCQkJCXJtc0BnbnUub3JnCkJhc2lsZSBTdGFyeW5rZXZpdGNoCQkJCWJhc2lsZUBzdGFyeW5rZXZpdGNoLm5ldApHcmFoYW0gU3RvdHQJCQkJCWdyYWhhbS5zdG90dEBidGludGVybmV0LmNvbQpNaWtlIFN0dW1wCQkJCQltcnNAYXBwbGUuY29tCkplZmYgU3R1cm0JCQkJCWpzdHVybUBnY2MuZ251Lm9yZwpTYW11ZWwgVGFyZGlldQkJCQkJc2FtQHJmYzExNDkubmV0CktyZXN0ZW4gS3JhYiBUaG9ydXAJCQkJa3JhYkBnY2MuZ251Lm9yZwpDYXJvbGluZSBUaWNlCQkJCQljdGljZUBhcHBsZS5jb20KTWljaGFlbCBUaWVtYW5uCQkJCQl0aWVtYW5uQHJlZGhhdC5jb20KRGF2aWQgVW5nCQkJCQlkYXZpZHVAbWlwcy5jb20KSm9uYXRoYW4gV2FrZWx5CQkJCQlyZWRpQGdjYy5nbnUub3JnCkZlbmcgV2FuZwkJCQkJZmVuZ3dhbmdAbnVkdC5lZHUuY24KU3RlcGhlbiBNLiBXZWJiCQkJCQlzdGVwaGVuLndlYmJAYnJlZ21hc29mdC5jb20KSm9obiBXZWhsZQkJCQkJam9obkBmZWl0aC5jb20KRmxvcmlhbiBXZWltZXIJCQkJCWZ3QGRlbmViLmVueW8uZGUKWmFjayBXZWluYmVyZwkJCQkJemFja3dAcGFuaXguY29tCk1hcmsgV2llbGFhcmQJCQkJCW1hcmtAZ2NjLmdudS5vcmcKT2xsaWUgV2lsZAkJCQkJYWF3QGdvb2dsZS5jb20KUmFsZiBXaWxkZW5odWVzCQkJCQlSYWxmLldpbGRlbmh1ZXNAZ214LmRlCkNhcmxvIFdvb2QJCQkJCWNhcmxvQGFsaW5vZS5jb20KQ2FucXVuIFlhbmcJCQkJCWNhbnF1bkBudWR0LmVkdS5jbgpLZW5uZXRoIFphZGVjawkJCQkJemFkZWNrQG5hdHVyYWxicmlkZ2UuY29tCkppZSBaaGFuZwkJCQkJamllLnpoYW5nQGFuYWxvZy5jb20KSm9uIFppZWdsZXIJCQkJCWpvbnpAYXBwbGUuY29tClJvbWFuIFppcHBlbAkJCQkJemlwcGVsQGxpbnV4LW02OGsub3JnCkpvc2VmIFpsb21lawkJCQkJam9zZWYuemxvbWVrQGVtYWlsLmN6CgpXYWl0aW5nIGZvciBwYXBlcndvcms6CgpKb2VybiBSZW5uZWNrZQkJCQkJam9lcm4ucmVubmVja2VAYXJjLmNvbQoKQnVnIGRhdGFiYXNlIG9ubHkgYWNjb3VudHMKCkphbWVzIERlbm5ldHQJCQkJCWpkZW5uZXR0QGFjbS5vcmcKQ2hyaXN0aWFuIEVocmhhcmR0CQkJCWVocmhhcmR0QG1hdGhlbWF0aWsudW5pLXVsbS5kZQpEYXJhIEhhemVnaGkJCQkJCWRoYXplZ2hpQHlhaG9vLmNvbQo=