Tm90ZQo9PT09CgpUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgcGVvcGxlIHdobyBhcmUgcGVybWl0dGVkIHRvIG1ha2UKY2hhbmdlcyB0byB2YXJpb3VzIHBhcnRzIG9mIHRoZSBjb21waWxlciBhbmQgYXNzb2NpYXRlZCBsaWJyYXJpZXMuCgpQbGVhc2UgZG8gbm90IGNvbnRhY3QgdGhlIHBlb3BsZSBpbiB0aGlzIGZpbGUgZGlyZWN0bHkgdG8gcmVwb3J0CnByb2JsZW1zIGluIEdDQy4KCkZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IEdDQywgcGxlYXNlIHZpc2l0OgoKICBodHRwOi8vZ2NjLmdudS5vcmcKClRvIHJlcG9ydCBwcm9ibGVtcyBpbiBHQ0MsIHBsZWFzZSB2aXNpdDoKCiAgaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbAoKTWFpbnRhaW5lcnMKPT09PT09PT09PT0KCgkJCUJsYW5rZXQgV3JpdGUgUHJpdnMuCgpSaWNoYXJkIEVhcm5zaGF3CQkJCXJlYXJuc2hhQGFybS5jb20KUmljaGFyZCBIZW5kZXJzb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRoQHJlZGhhdC5jb20KR2VvZmZyZXkgS2VhdGluZwkJCQlnZW9mZmtAZ2VvZmZrLm9yZwpSaWNoYXJkIEtlbm5lcgkJCQkJa2VubmVyQG55dS5lZHUKSmVmZiBMYXcJCQkJCWxhd0ByZWRoYXQuY29tCk1pY2hhZWwgTWVpc3NuZXIJCQkJZ251QHRoZS1tZWlzc25lcnMub3JnCkphc29uIE1lcnJpbGwJCQkJCWphc29uQHJlZGhhdC5jb20KRGF2aWQgUy4gTWlsbGVyCQkJCQlkYXZlbUByZWRoYXQuY29tCk1hcmsgTWl0Y2hlbGwJCQkJCW1hcmtAY29kZXNvdXJjZXJ5LmNvbQpCZXJuZCBTY2htaWR0CQkJCQliZXJuZHNAcmVkaGF0LmNvbQpaYWNrIFdlaW5iZXJnCQkJCQl6YWNrQGNvZGVzb3VyY2VyeS5jb20KSmltIFdpbHNvbgkJCQkJd2lsc29uQHNwZWNpZml4aW5jLmNvbQoKCgkJCUNQVSBQb3J0IE1haW50YWluZXJzCShDUFUgYWxwaGFiZXRpY2FsIG9yZGVyKQoKYWxwaGEgcG9ydAkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KYXJtIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQphcm0gcG9ydAkJUmljaGFyZCBFYXJuc2hhdwlyZWFybnNoYUBhcm0uY29tCmF2ciBwb3J0CQlEZW5pcyBDaGVydHlrb3YJCWRlbmlzY0BvdmVydGEucnUKYXZyIHBvcnQJCU1hcmVrIE1pY2hhbGtpZXdpY3oJbWFyZWttQGFtZWxlay5nZGEucGwKYzR4IHBvcnQJCU1pY2hhZWwgSGF5ZXMJCW0uaGF5ZXNAZWxlYy5jYW50ZXJidXJ5LmFjLm56CmNyaXMgcG9ydAkJSGFucy1QZXRlciBOaWxzc29uCWhwQGF4aXMuY29tCmZyMzAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCmg4IHBvcnQJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KaDggcG9ydAkJCUthenUgSGlyYXRhCQlrYXp1QGNzLnVtYXNzLmVkdQpocHBhIHBvcnQJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpocHBhIHBvcnQJCURhdmUgQW5nbGluCQlkYXZlLmFuZ2xpbkBucmMuY2EKaTM4NiBwb3J0CQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQppODYwIHBvcnQJCUphc29uIEVja2hhcmR0CQlqbGVAcmljZS5lZHUKaTk2MCBwb3J0CQlKaW0gV2lsc29uCQl3aWxzb25Ac3BlY2lmaXhpbmMuY29tCmlhNjQgcG9ydAkJSmltIFdpbHNvbgkJd2lsc29uQHNwZWNpZml4aW5jLmNvbQppcDJrIHBvcnQJCURlbmlzIENoZXJ0eWtvdgkJZGVuaXNjQG92ZXJ0YS5ydQppcTIwMDAgcG9ydAkJU3RhbiBDb3gJCXNjb3hAcmVkaGF0LmNvbQptMzJyIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQptNjhoYzExIHBvcnQJCVN0ZXBoYW5lIENhcnJlegkJc3RjYXJyZXpAbmVyaW0uZnIKbTY4ayBwb3J0ICg/KQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm02OGstbW90b3JvbGEtc3lzdiBwb3J0CVBoaWxpcHBlIERlIE11eXRlcglwaGRtQG1hY3FlbC5iZQptY29yZSBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KbWlwcyBwb3J0ICAgICAgICAgICAgICAgRXJpYyBDaHJpc3RvcGhlciAgICAgICAgZWNocmlzdG9AcmVkaGF0LmNvbQptaXBzIHBvcnQJCVJpY2hhcmQgU2FuZGlmb3JkCXJzYW5kaWZvQHJlZGhhdC5jb20KbW1peCBwb3J0CQlIYW5zLVBldGVyIE5pbHNzb24JaHBAYml0cmFuZ2UuY29tCm1uMTAzMDAgcG9ydAkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm1uMTAzMDAgcG9ydAkJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQpuczMyayBwb3J0CQlJYW4gRGFsbAkJaWFuQGJld2FyZS5kcm9wYmVhci5pZC5hdQpwZHAxMSBwb3J0CQlQYXVsIEtvbmluZwkJbmkxZEBhcnJsLm5ldApyczYwMDAgcG9ydAkJR2VvZmYgS2VhdGluZwkJZ2VvZmZrQGdlb2Zmay5vcmcKcnM2MDAwIHBvcnQJCURhdmlkIEVkZWxzb2huCQlkamVAd2F0c29uLmlibS5jb20KcnM2MDAwIHZlY3RvciBleHRucwlBbGR5IEhlcm5hbmRlegkJYWxkeWhAcmVkaGF0LmNvbQpzMzkwIHBvcnQJCUhhcnRtdXQgUGVubmVyCQlocGVubmVyQGRlLmlibS5jb20KczM5MCBwb3J0CQlVbHJpY2ggV2VpZ2FuZAkJdXdlaWdhbmRAZGUuaWJtLmNvbQpzaCBwb3J0CQkJSm9lcm4gUmVubmVja2UJCWpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20Kc2ggcG9ydAkJCUFsZXhhbmRyZSBPbGl2YQkJYW9saXZhQHJlZGhhdC5jb20Kc3BhcmMgcG9ydAkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20Kc3BhcmMgcG9ydAkJRGF2aWQgUy4gTWlsbGVyCQlkYXZlbUByZWRoYXQuY29tCnNwYXJjIHBvcnQJCUpha3ViIEplbGluZWsJCWpha3ViQHJlZGhhdC5jb20Kc3BhcmMgcG9ydAkJRXJpYyBCb3RjYXpvdQkJZWJvdGNhem91QGxpYmVydHlzdXJmLmZyCnY4NTAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnZheCBwb3J0CQlEYXZlIEFuZ2xpbgkJZGF2ZS5hbmdsaW5AbnJjLmNhCnZheCBwb3J0CQlNYXR0IFRob21hcwkJbWF0dEAzYW0tc29mdHdhcmUuY29tCng4Ni02NCBwb3J0CQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegp4c3Rvcm15MTYgcG9ydAkJR2VvZmZyZXkgS2VhdGluZwlnZW9mZmtAZ2VvZmZrLm9yZwp4dGVuc2EgcG9ydAkJQm9iIFdpbHNvbgkJYm9iLndpbHNvbkBhY20ub3JnCgoJCQlPUyBQb3J0IE1haW50YWluZXJzCShPUyBhbHBoYWJldGljYWwgb3JkZXIpCgpkYXJ3aW4gcG9ydAkJU3RhbiBTaGVicwkJc2hlYnNAYXBwbGUuY29tCmZyZWVic2QJCQlMb3JlbiBKLiBSaXR0bGUJCWxqcml0dGxlQGFjbS5vcmcKbmV0YnNkCQkJSmFzb24gVGhvcnBlCQl0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tCnNjbzUsIHVuaXh3YXJlLCBzY28gdWRrCUtlYW4gSm9obnN0b24JCWprakBzY28uY29tCnNoLWxpbnV4LWdudQkJS2F6IEtvamltYQkJa2tvamltYUBnY2MuZ251Lm9yZwoKCQkJVmFyaW91cyBNYWludGFpbmVycwoKQyBmcm9udCBlbmQvSVNPIEM5OQlKb3NlcGggTXllcnMJCWpzbUBwb2x5b21pbm8ub3JnLnVrCkMgZnJvbnQgZW5kL0lTTyBDOTkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KQWRhIGZyb250IGVuZAkJR2VlcnQgQm9zY2gJCWJvc2NoQGduYXQuY29tCkFkYSBmcm9udCBlbmQJCVJvYmVydCBEZXdhcgkJZGV3YXJAZ25hdC5jb20KQWRhIGZyb250IGVuZAkJQXJuYXVkIENoYXJsZXQJCWNoYXJsZXRAYWN0LWV1cm9wZS5mcgpmb3J0cmFuCQkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KZm9ydHJhbgkJCVRvb24gTW9lbmUJCXRvb25AbW9lbmUuaW5kaXYubmx1dWcubmwKZm9ydHJhbiA5NQkJUGF1bCBCcm9vawkJcGF1bEBub3d0Lm9yZwpmb3J0cmFuIDk1CQlTdGV2ZW4gQm9zc2NoZXIJCXN0ZXZlbmJAc3VzZS5kZQpmb3J0cmFuIDk1CQlUb29uIE1vZW5lCQl0b29uQG1vZW5lLmluZGl2Lm5sdXVnLm5sCmMrKwkJCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KYysrICAgICAgICAgICAgICAgICAgICAgTWFyayBNaXRjaGVsbAkJbWFya0Bjb2Rlc291cmNlcnkuY29tCmNwcGxpYgkJCURhdmUgQnJvbGxleQkJYnJvbGxleUByZWRoYXQuY29tCmNwcGxpYgkJCVBlciBCb3RobmVyCQlwZXJAYm90aG5lci5jb20KY3BwbGliCQkJWmFjayBXZWluYmVyZwkJemFja0Bjb2Rlc291cmNlcnkuY29tCmNwcGxpYgkJCU5laWwgQm9vdGgJCW5laWxAZGFpa29rdXlhLmNvLnVrCmphdmEJCQlQZXIgQm90aG5lcgkJcGVyQGJvdGhuZXIuY29tCmphdmEJCQlBbmRyZXcgSGFsZXkJCWFwaEByZWRoYXQuY29tCmxpYmdjagkJCVRvbSBUcm9tZXkJCXRyb21leUByZWRoYXQuY29tCmxpYmdjagkJCUJyeWNlIE1jS2lubGF5CQlicnljZUBnY2MuZ251Lm9yZwptZXJjdXJ5CQkJRmVyZ3VzIEhlbmRlcnNvbglmamhAY3MubXUub3ouYXUKb2JqZWN0aXZlLWMJCVN0YW4gU2hlYnMJCXNoZWJzQGFwcGxlLmNvbQpvYmplY3RpdmUtYwkJT3ZpZGl1IFByZWRlc2N1CQlvdmlkaXVAY3VwLmhwLmNvbQpvYmplY3RpdmUtYwkJWmllbW93aXQgTGFza2kJCXpsYXNraUBhcHBsZS5jb20KbGlib2JqYwkJCU5pY29sYSBQZXJvCQluLnBlcm9AbWkuZmxhc2huZXQuaXQKbGlib2JqYwkJCUFuZHJldyBQaW5za2kJCXBpbnNraWFAcGh5c2ljcy51Yy5lZHUKYWxpYXMgYW5hbHlzaXMJCUpvaG4gQ2FycgkJamZjQG1pdC5lZHUKbG9vcCB1bnJvbGxpbmcJCUppbSBXaWxzb24JCXdpbHNvbkBzcGVjaWZpeGluYy5jb20KbG9vcCBkaXNjb3ZlcnkJCU1pY2hhZWwgSGF5ZXMJCW0uaGF5ZXNAZWxlYy5jYW50ZXJidXJ5LmFjLm56CnNjaGVkdWxlciAoKyBoYWlmYSkJSmltIFdpbHNvbgkJd2lsc29uQHNwZWNpZml4aW5jLmNvbQpzY2hlZHVsZXIgKCsgaGFpZmEpCU1pY2hhZWwgTWVpc3NuZXIJZ251QHRoZS1tZWlzc25lcnMub3JnCnNjaGVkdWxlciAoKyBoYWlmYSkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCnJlb3JnCQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmNhbGxlci1zYXZlLmMJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpjYWxsZ3JhcGgJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6CmRlYnVnZ2luZyBjb2RlCQlKaW0gV2lsc29uCQl3aWxzb25Ac3BlY2lmaXhpbmMuY29tCmR3YXJmIGRlYnVnZ2luZyBjb2RlCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlQYW9sbyBDYXJsaW5pCQlwY2FybGluaUBzdXNlLmRlCmMrKyBydW50aW1lIGxpYnMgICAgICAgIEdhYnJpZWwgRG9zIFJlaXMgICAgICAgIGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQKYysrIHJ1bnRpbWUgbGlicwlVbHJpY2ggRHJlcHBlcgkJZHJlcHBlckByZWRoYXQuY29tCmMrKyBydW50aW1lIGxpYnMJUGhpbCBFZHdhcmRzCQlwbWVAZ2NjLmdudS5vcmcKYysrIHJ1bnRpbWUgbGlicwlCZW5qYW1pbiBLb3NuaWsJCWJrb3pAcmVkaGF0LmNvbQpjKysgcnVudGltZSBsaWJzCUxvcmVuIEouIFJpdHRsZQkJbGpyaXR0bGVAYWNtLm9yZwoqc3ludGhldGljIG11bHRpcGx5CVRvcmJqb3JuIEdyYW5sdW5kCXRlZ2VAc3dveC5jb20KKmMtdG9ydHVyZQkJVG9yYmpvcm4gR3Jhbmx1bmQJdGVnZUBzd294LmNvbQpmaXhpbmNsdWRlcwkJQnJ1Y2UgS29yYgkJYmtvcmJAZ251Lm9yZwpnY3NlLmMgCQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmdsb2JhbCBvcHQgZnJhbWV3b3JrCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpqdW1wLmMJCQlEYXZpZCBTLiBNaWxsZXIJCWRhdmVtQHJlZGhhdC5jb20Kd2ViIHBhZ2VzCQlHZXJhbGQgUGZlaWZlcgkJZ2VyYWxkQHBmZWlmZXIuY29tCndlYiBwYWdlcwkJSmFuaXMgSm9obnNvbgkJamFuaXMxODdAdXMuaWJtLmNvbQpjb25maWcuc3ViL2NvbmZpZy5ndWVzcwlCZW4gRWxsaXN0b24JCWNvbmZpZy1wYXRjaGVzQGdudS5vcmcKYmFzaWMgYmxvY2sgcmVvcmRlcmluZwlKYXNvbiBFY2toYXJkdAkJamxlQHJpY2UuZWR1CmkxOG4JCQlQaGlsaXBwIFRob21hcwkJcHRob21hc0BzdXNlLmRlCmRpYWdub3N0aWMgbWVzc2FnZXMJR2FicmllbCBEb3MgUmVpcwlnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0CndpbmRvd3MsIGN5Z3dpbiwgbWluZ3cJQ2hyaXN0b3BoZXIgRmF5bG9yCWNnZkByZWRoYXQuY29tCkRKR1BQCQkJREogRGVsb3JpZQkJZGpAZGVsb3JpZS5jb20KbGliaWJlcnR5CQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCmxpYmliZXJ0eQkJSWFuIExhbmNlIFRheWxvcglpYW5Ad2FzYWJpc3lzdGVtcy5jb20KYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJTmF0aGFuYWVsIE5lcm9kZQluZXJvZGVuQGdjYy5nbnUub3JnCmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQpkb2NzIGNvLW1haW50YWluZXIJR2VyYWxkIFBmZWlmZXIJCWdlcmFsZEBwZmVpZmVyLmNvbQpkb2NzIGNvLW1haW50YWluZXIJSm9zZXBoIE15ZXJzCQlqc21AcG9seW9taW5vLm9yZy51awpQaWNvLUphdmEgcG9ydAkJU3RldmUgQ2hhbWJlcmxhaW4Jc2FjQHRyYW5zbWV0YS5jb20KUlRFTVMgUG9ydHMJCUpvZWwgU2hlcnJpbGwJCWpvZWxAb2FyY29ycC5jb20KVnhXb3Jrcwlwb3J0cwkJWmFjayBXZWluYmVyZwkJemFja0Bjb2Rlc291cmNlcnkuY29tClZ4V29ya3MJcG9ydHMJCU5hdGhhbiBTaWR3ZWxsCQluYXRoYW5AY29kZXNvdXJjZXJ5LmNvbQpwcmVkaWN0LmRlZgkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKY29udHJpYi9yZWdyZXNzaW9uCUdlb2ZmIEtlYXRpbmcJCWdlb2Zma0BnZW9mZmsub3JnCnRyZWVsYW5nICAgICAgICAgICAgICAgIFRpbSBKb3NsaW5nICAgICAgICAgICAgIHRlakBtZWxicGMub3JnLmF1Cm5ldyByZWdhbGxvYyAocmEqKQlNaWNoYWVsIE1hdHoJCW1hdHpAc3VzZS5kZQpnY292CQkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKZ2NvdgkJCU5hdGhhbiBTaWR3ZWxsCQluYXRoYW5AY29kZXNvdXJjZXJ5LmNvbQpvcHRpb24gaGFuZGxpbmcJCU5laWwgQm9vdGgJCW5laWxAZGFpa29rdXlhLmNvLnVrCmxpYmZmaSB0ZXN0c3VpdGUJQW5kcmVhcyBUb2JsZXIJCWFuZHJlYXN0QGdjYy5nbnUub3JnCm1pZGRsZS1lbmQJCVJvZ2VyIFNheWxlCQlyb2dlckBleWVzb3Blbi5jb20KCk5vdGUgaW5kaXZpZHVhbHMgd2hvIG1haW50YWluIHBhcnRzIG9mIHRoZSBjb21waWxlciBuZWVkIGFwcHJvdmFsIHRvIGNoZWNrCmluIGNoYW5nZXMgb3V0c2lkZSBvZiB0aGUgcGFydHMgb2YgdGhlIGNvbXBpbGVyIHRoZXkgbWFpbnRhaW4uCgoKCQkJV3JpdGUgQWZ0ZXIgQXBwcm92YWwJKGxhc3QgbmFtZSBhbHBoYWJldGljYWwgb3JkZXIpCgpNYXR0IEF1c3Rlcm4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXN0ZXJuQGFwcGxlLmNvbQpHaW92YW5uaSBCYWpvCQkJCQlnaW92YW5uaWJham9AZ2NjLmdudS5vcmcKU2NvdHQgQmFtYnJvdWdoCQkJCQlzY290dGJAbmV0d2luZGVyLm9yZwpXb2xmZ2FuZyBCYW5nZXJ0aAkJCQliYW5nZXJ0aEBkZWFsaWkub3JnCkRhbmllbCBCZXJsaW4JCQkJCWRhbkBkYmVybGluLm9yZwpEYXZpZCBCaWxsaW5naHVyc3QJCQkJRGF2aWQuQmlsbGluZ2h1cnN0QHJpb3RpbnRvLmNvbQpMYXVyeW5hcyBCaXZlaW5pcwkJCSAgICAgICAgbGF1cnluYXMuYml2ZWluaXNAbWlmLnZ1Lmx0CkVyaWMgQmxha2UJCQkJCWVyaWNiQGdjYy5nbnUub3JnCkppbSBCbGFuZHkJCQkJCWppbWJAcmVkaGF0LmNvbQpQaGlsIEJsdW5kZWxsCQkJCQlwYkBmdXR1cmV0di5jb20KSGFucyBCb2VobQkJCQkJaGJvZWhtQGdjYy5nbnUub3JnClJvYmVydCBCb3dkaWRnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvd2RpZGdlQGFwcGxlLmNvbQpKb2VsIEJyb2JlY2tlcgkJCQkJYnJvYmVja2VyQGduYXQuY29tCktldmluIEJ1ZXR0bmVyCQkJCQlrZXZpbmJAcmVkaGF0LmNvbQpBbmRyZXcgQ2FnbmV5CQkJCQljYWduZXlAcmVkaGF0LmNvbQpDaGFuZHJhIENoYXZ2YQkJCQkJY2NoYXZ2YUByZWRoYXQuY29tCldpbGxpYW0gQ29oZW4JCQkJCXdjb2hlbkByZWRoYXQuY29tClIuIEtlbGxleSBDb29rCQkJCQlrY29va0BnY2MuZ251Lm9yZwpDaHJpc3RpYW4gQ29ybmVsc3NlbgkJCQljY29ybkBjcy50dS1iZXJsaW4uZGUKRGF2aWQgRGFuZXkJCQkJCWRkYW5leUBhdnRyZXguY29tCkNocmlzIERlbWV0cmlvdQkJCQkJY2dkQGJyb2FkY29tLmNvbQpaZGVuZWsgRHZvcmFrCQkJCQlkdm9yYWt6QHN1c2UuY3oKU3RldmUgRWxsY2V5CQkJCQlzamVAY3VwLmhwLmNvbQpCZW4gRWxsaXN0b24JCQkJCWJqZUB3YXNhYmlzeXN0ZW1zLmNvbQpNb2hhbiBFbWJhcgkJCQkJZ251c3R1ZmZAdGhpc2lzY29vbC5jb20KTWFyYyBFc3BpZQkJCQkJZXNwaWVAY3ZzLm9wZW5ic2Qub3JnCkFuc2dhciBFc3p0ZXJtYW5uCQkJCWFuc2dhckB0aHBoeS51bmktZHVlc3NlbGRvcmYuZGUKRG91ZyBFdmFucwkJCQkJZGplQHRyYW5zbWV0YS5jb20KS2F2ZWggR2hhemkJCQkJCWdoYXppQGNhaXAucnV0Z2Vycy5lZHUKTWF0dGhldyBHaW5nZWxsCQkJCQlnaW5nZWxsQGduYXQuY29tCkFudGhvbnkgR3JlZW4JCQkJCWdyZWVuQHJlZGhhdC5jb20KTGF1cmVudCBHdWVyYnkJCQkJCWxhdXJlbnRAZ3VlcmJ5Lm5ldApPbGl2aWVyIEhhaW5xdWUJCQkJCWhhaW5xdWVAYWN0LWV1cm9wZS5mcgpTdHVhcnQgSGFzdGluZ3MJCQkJCXN0dWFydEBhcHBsZS5jb20KTWF0dGhldyBIaWxsZXIJCQkJCWhpbGxlckByZWRoYXQuY29tCk1hbmZyZWQgSG9sbHN0ZWluCQkJCW1oQHN1c2UuY29tCkZhbGsgSHVlZmZuZXIJCQkJCWZhbGtAZGViaWFuLm9yZwpCZXJuYXJkbyBJbm5vY2VudGkJCQkJYmVybmllQGRldmVsZXIuY29tCkRhbmllbCBKYWNvYm93aXR6CQkJCWRhbkBkZWJpYW4ub3JnCkFuZHJlYXMgSmFlZ2VyCQkJCQlhakBzdXNlLmRlCkZhcmlib3J6IEphaGFuaWFuCQkJCWZqYWhhbmlhbkBhcHBsZS5jb20KRGFsZSBKb2hhbm5lc2VuIAkJCQlkYWxlakBhcHBsZS5jb20KS2xhdXMgS2FlbXBmCQkJCQlra2FlbXBmQHByb2dpcy5kZQpCcmVuZGFuIEtlaG9lCQkJCQlicmVuZGFuQHplbi5vcmcKTXVtaXQgS2hhbgkJCQkJa2hhbkB4cmF5bGl0aC53aXNjLmVkdQpNYXR0aGlhcyBLbG9zZQkJCQkJZG9rb0BkZWJpYW4ub3JnCkplZmYgS25hZ2dzCQkJCQlqa25hZ2dzQHJlZGhhdC5jb20KTWF0dCBLcmFhaQkJCQkJa3JhYWlAYWx1bW5pLmNtdS5lZHUKTWFyYyBMZWhtYW5uCQkJCQlwY2dAZ29vZi5jb20KQWxhbiBMZWhvdHNreQkJCQkJYXBsQGFsdW0ubWl0LmVkdQpKYW1lcyBMZW1rZQkJCQkJamltQHdhc2FiaXN5c3RlbXMuY29tCktyaWFuZyBMZXJkc3V3YW5ha2lqCQkJCWxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldApXYXJyZW4gTGV2eQkJCQkJd2FycmVubEBjcnV6aW8uY29tCkRvbiBMaW5kc2F5CQkJCQlkbGluZHNheUByZWRoYXQuY29tClJhbHBoIExvYWRlcgkJCQkJcmNsQGlodWcuY28ubnoKRGF2ZSBMb3ZlCQkJCQlkLmxvdmVAZGwuYWMudWsKTWFydGluIHYuIEz2d2lzCQkJCQlsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGUKSEogTHUJCQkJCQloamxAbHVjb24ub3JnCkFuZHJldyBNYWNsZW9kCQkJCQlhbWFjbGVvZEByZWRoYXQuY29tClZsYWRpbWlyIE1ha2Fyb3YJCQkJdm1ha2Fyb3ZAcmVkaGF0LmNvbQpHcmVnIE1jR2FyeQkJCQkJZ2ttQGdudS5vcmcKQWRhbSBNZWdhY3oJCQkJCWFkYW1AeHd0Lm9yZwpBbGFuIE1vZHJhCQkJCQlhbW9kcmFAYmlncG9uZC5uZXQuYXUKQ2F0aGVyaW5lIE1vb3JlCQkJCQljbG1AcmVkaGF0LmNvbQpEb3JpdCBOYWlzaGxvcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3JpdEBpbC5pYm0uY29tCkFkYW0gTmVtZXQJCQkJCWFuZW1ldEBsbnh3LmNvbQpEYW4gTmljb2xhZXNjdQkJCQkJZGFubkBpY3MudWNpLmVkdQpEaWVnbyBOb3ZpbGxvCQkJCQlkbm92aWxsb0ByZWRoYXQuY29tCkRhdmlkIE8nQnJpZW4JCQkJCW9icmllbkBGcmVlQlNELm9yZwpUdXJseSBPJ0Nvbm5vcgkJCQkJdHVybHlAYXBwbGUuY29tCkplZmZyZXkgRC4gT2xkaGFtCQkJCW9sZGhhbUBjb2Rlc291cmNlcnkuY29tClJhaW5lciBPcnRoCQkJCQlyb0BUZWNoRmFrLlVuaS1CaWVsZWZlbGQuREUKRGV2YW5nIFBhdGVsCQkJCQlkcGF0ZWxAYXBwbGUuY29tCkdyYWVtZSBQZXRlcnNvbgkJCQkJZ3BAcW54LmNvbQpBbGV4YW5kcmUgUGV0aXQtQmlhbmNvCQkJCWFwYmlhbmNvQHJlZGhhdC5jb20KTmljb2xhcyBQaXRyZQkJCQkJbmljb0BjYW0ub3JnClNlYmFzdGlhbiBQb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMucG9wQGxhcG9zdGUubmV0CkNsaW50b24gUG9wZXR6CQkJCQljcG9wZXR6QGNwb3BldHouY29tCkplcnJ5IFF1aW5uCQkJCQlqbHF1aW5uQG9wdG9ubGluZS5uZXQKUm9sZiBSYXNtdXNzZW4JCQkJCXJvbGZ3ckBnY2MuZ251Lm9yZwpWb2xrZXIgUmVpY2hlbHQJCQkJCXJlaWNoZWx0QGlncG0ucnd0aC1hYWNoZW4uZGUKVG9tIFJpeAkJCQkJCXRyaXhAcmVkaGF0LmNvbQpDcmFpZyBSb2RyaWd1ZXMJCQkJCXJvZHJpZ2NAZ2NjLmdudS5vcmcKR2F2aW4gUm9taWctS29jaAkJCQlnYXZpbkByZWRoYXQuY29tCklyYSBSdWJlbgkJCQkJaXJhQGFwcGxlLmNvbQpEb3VnbGFzIFJ1cHAJCQkJCXJ1cHBAZ25hdC5jb20KQWxleCBTYW11ZWwJCQkJCXNhbXVlbEBjb2Rlc291cmNlcnkuY29tCkFuZHJlYXMgU2Nod2FiCQkJCQlzY2h3YWJAc3VzZS5kZQpTdmVpbiBTZWxkYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdmVpbi5zZWxkYWxAc29saWRhcy5jb20KRnJhbnogU2lybAkJCQkJZnJhbnouc2lybC1rZXJuZWxAbGF1dGVyYmFjaC5jb20KRGFubnkgU21pdGgJCQkJCWRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Ck1pY2hhZWwgU29rb2xvdgkJCQkJbXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHClJpY2hhcmQgU3RhbGxtYW4JCQkJcm1zQGdudS5vcmcKR3JhaGFtIFN0b3R0CQkJCQlncmFoYW0uc3RvdHRAYnRpbnRlcm5ldC5jb20KTWlrZSBTdHVtcAkJCQkJbXJzQGFwcGxlLmNvbQpKZWZmIFN0dXJtCQkJCQlqc3R1cm1AZ2NjLmdudS5vcmcKS3Jlc3RlbiBLcmFiIFRob3J1cAkJCQlrcmFiQGdjYy5nbnUub3JnCk1pY2hhZWwgVGllbWFubgkJCQkJdGllbWFubkByZWRoYXQuY29tCkpvbmF0aGFuIFdha2VseQkJCQkJcmVkaUBnY2MuZ251Lm9yZwpLcmlzdGVyIFdhbGZyaWRzc29uCQkJCWNhdG9AZGYubHRoLnNlCkpvaG4gV2VobGUJCQkJCWpvaG5AZmVpdGguY29tCkZsb3JpYW4gV2VpbWVyCQkJCQlmd0BkZW5lYi5lbnlvLmRlCk1hcmsgV2llbGFhcmQJCQkJCW1hcmtAZ2NjLmdudS5vcmcKQ2FybG8gV29vZAkJCQkJY2FybG9AYWxpbm9lLmNvbQpKb3NlZiBabG9tZWsJCQkJCWpvc2VmLnpsb21la0BlbWFpbC5jegoKQnVnIGRhdGFiYXNlIG9ubHkgYWNjb3VudHMKCkphbWVzIERlbm5ldHQJCQkJCWpkZW5uZXR0QGFjbS5vcmcKQ2hyaXN0aWFuIEVocmhhcmR0CQkJCWVocmhhcmR0QG1hdGhlbWF0aWsudW5pLXVsbS5kZQpEYXJhIEhhemVnaGkJCQkJCWRoYXplZ2hpQHlhaG9vLmNvbQo=