CQkJQmxhbmtldCBXcml0ZSBQcml2cy4KCkNyYWlnIEJ1cmxleQkJCQkJYnVybGV5QGdudS5vcmcKSm9obiBDYXJyCQkJCQlqZmNAbWl0LmVkdQpSaWNoYXJkIEhlbmRlcnNvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydGhAY3lnbnVzLmNvbQpKZWZmIExhdwkJCQkJbGF3QGN5Z251cy5jb20KTWljaGFlbCBNZWlzc25lcgkJCQltZWlzc25lckBjeWdudXMuY29tCkRhdmlkIFMuIE1pbGxlcgkJCQkJZGF2ZW1AZG0uY29iYWx0bWljcm8uY29tCkppbSBXaWxzb24JCQkJCXdpbHNvbkBjeWdudXMuY29tCgoKCgkJCVZhcmlvdXMgTWFpbnRhaW5lcnMKCnNoIHBvcnQJCQlKb2VybiBSZW5lY2tlCQlhbXlsYWFyQGN5Z251cy5jb20Kdjg1MCBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQGN5Z251cy5jb20Kdjg1MCBwb3J0CQlNaWNoYWVsIE1laXNzbmVyCW1laXNzbmVyQGN5Z251cy5jb20KYXJtIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAY3lnbnVzLmNvbQphcm0gcG9ydAkJUmljaGFyZCBFYXJuc2hhdwlyZWFybnNoYUBhcm0uY29tCm0zMnIgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0BjeWdudXMuY29tCgkJCU1pY2hhZWwgTWVpc3NuZXIJbWVpc3NuZXJAY3lnbnVzLmNvbQpoOCBwb3J0CQkJSmVmZiBMYXcJCWxhd0BjeWdudXMuY29tCm1uMTAyMDAgcG9ydAkJSmVmZiBMYXcJCWxhd0BjeWdudXMuY29tCm1uMTAzMDAgcG9ydAkJSmVmZiBMYXcJCWxhd0BjeWdudXMuY29tCmhwcGEgcG9ydAkJSmVmZiBMYXcJCWxhd0BjeWdudXMuY29tCm02OGsgcG9ydCAoPykJCUplZmYgTGF3CQlsYXdAY3lnbnVzLmNvbQpyczYwMDAgcG9ydAkJTWljaGFlbCBNZWlzc25lcgltZWlzc25lckBjeWdudXMuY29tCnJzNjAwMCBwb3J0CQlEYXZpZCBFZGVsc29obgkJZGplQHdhdHNvbi5pYm0uY29tCm1pcHMgcG9ydAkJSmltIFdpbHNvbgkJd2lsc29uQGN5Z251cy5jb20KaTk2MCBwb3J0CQlKaW0gV2lsc29uCQl3aWxzb25AY3lnbnVzLmNvbQphMjlrIHBvcnQJCUppbSBXaWxzb24JCXdpbHNvbkBjeWdudXMuY29tCmFscGhhIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEBjeWdudXMuY29tCnNwYXJjIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEBjeWdudXMuY29tCnNwYXJjIHBvcnQgKD8pIAkJRGF2aWQgUy4gTWlsbGVyCQlkYXZlbUBkbS5jb2JhbHRtaWNyby5jb20KeDg2IHBvcnRzCQlTdGFuIENveAkJc2NveEBjeWdudXMuY29tCipmb3J0cmFuCQlDcmFpZyBCdXJsZXkJCWJ1cmxleUBnbnUub3JnCmZvcnRyYW4JCQlSaWNoYXJkIEhlbmRlcnNvbglydGhAY3lnbnVzLmNvbQkKYysrCQkJSmFzb24gTWVycmlsbAkJamFzb25AY3lnbnVzLmNvbQpjaGlsbAkJCVBlciBCb3RobmVyCQlib3RobmVyQGN5Z251cy5jb20KamF2YQkJCVBlciBCb3RobmVyCQlib3RobmVyQGN5Z251cy5jb20KY3BwbGliCQkJUGVyIEJvdGhuZXIJCWJvdGhuZXJAY3lnbnVzLmNvbQpmaXhpbmNsdWRlcwkJSWFuIFRheWxvcgkJaWFuQGN5Z251cy5jb20KYWxpYXMgYW5hbHlzaXMJCUpvaG4gQ2FycgkJamZjQG1pdC5lZHUKbG9vcCB1bnJvbGxpbmcJCUppbSBXaWxzb24JCXdpbHNvbkBjeWdudXMuY29tCnNjaGVkdWxlciAoKyBoYWlmYSkJSmltIFdpbHNvbgkJd2lsc29uQGN5Z251cy5jb20Kc2NoZWR1bGVyICgrIGhhaWZhKQlNaWNoYWVsIE1laXNzbmVyCW1laXNzbmVyQGN5Z251cy5jb20Kc2NoZWR1bGVyICgrIGhhaWZhKQlKZWZmIExhdwkJbGF3QGN5Z251cy5jb20KcmVvcmcJCQlKZWZmIExhdwkJbGF3QGN5Z251cy5jb20KY2FsbGVyLXNhdmUuYwkJSmVmZiBMYXcJCWxhd0BjeWdudXMuY29tCmRlYnVnZ2luZyBjb2RlCQlKaW0gV2lsc29uCQl3aWxzb25AY3lnbnVzLmNvbQpkd2FyZiBkZWJ1Z2dpbmcgY29kZQlKYXNvbiBNZXJyaWxsCQlqYXNvbkBjeWdudXMuY29tCmMrKyBydW50aW1lIGxpYnMJVWxyaWNoIERyZXBwZXIJCWRyZXBwZXJAY3lnbnVzLmNvbQoqc3ludGhldGljIG11bHRpcGx5CVRvcmJqb3JuIEdyYW5sdW5kCXRlZ2VAcGRjLmt0aC5zZQoqYy10b3J0dXJlCQlUb3Jiam9ybiBHcmFubHVuZAl0ZWdlQHBkYy5rdGguc2UKKmYtdG9ydHVyZQkJS2F0ZSBIZWRzdHJvbQkJa2F0ZUBhaGFiLnJ1dGdlcnMuZWR1CnNjbzUgJiB1bml4d2FyZQkJUm9iZXJ0IExpcGUJCXJvYmVydGxAZGdpaS5jb20KbmV3IGZpeGluY2x1ZGVzCQlCcnVjZSBLb3JiCQlrb3JiYkBkYXRhZGVzaWduLmNvbQpnY3NlLmMgCQkJSmVmZiBMYXcJCWxhd0BjeWdudXMuY29tCmdsb2JhbCBvcHQgZnJhbWV3b3JrCUplZmYgTGF3CQlsYXdAY3lnbnVzLmNvbQoKCgkJCQoKCQkJV3JpdGUgQWZ0ZXIgQXBwcm92YWwKS2VuIFJhZWJ1cm4JCQkJCXJhZWJ1cm5AY3lnbnVzLmNvbQpHYXZpbiBLb2NoCQkJCQlnYXZpbkBjeWdudXMuY29tCkJyZW5kYW4gS2Vob2UJCQkJCWJyZW5kYW5AY3lnbnVzLmNvbQpCZW5qYW1pbiBLb3NuaWsJCQkJCWJrb3pAY3lnbnVzLmNvbQpBbmRyZXcgTWFjbGVvZAkJCQkJYW1hY2xlb2RAY3lnbnVzLmNvbQpEYXZlIExvdmUJCQkJCWQubG92ZUBkbC5hYy51awoqVG9vbiBNb2VuZQkJCQkJdG9vbkBtb2VuZS5pbmRpdi5ubHV1Zy5ubAoqSEogTHUJCQkJCQloamxAbHVjb24ub3JnCk1hcmsgTWl0Y2hlbGwJCQkJCW1taXRjaGVsbEB1c2EubmV0CkthdmVoIEdoYXppCQkJCQlnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1CkFuZHJlYXMgU2Nod2FiCQkJCQlzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGUKTWFuZnJlZCBIb2xsc3RlaW4JCQkJbWFuZnJlZEBzLWRpcmVrdG5ldC5kZQoqUGF1bCBFZ2dlcnQJCQkJCWVnZ2VydEB0d2luc3VuLmNvbQpLbGF1cyBLYWVtcGYJCQkJCWtrYWVtcGZAcHJvZ2lzLmRlCk1hcmMgTGVobWFubgkJCQkJcGNnQGdvb2YuY29tCkFsZXhhbmRyZSBPbGl2YQkJCQkJb2xpdmFAZGNjLnVuaWNhbXAuYnIKQ2F0aGVyaW5lIE1vb3JlCQkJCQljbG1AY3lnbnVzLmNvbQpWbGFkaW1pciBNYXJrYXJvdgkJCQl2bWFrYXJvdkBjeWdudXMuY29tCk1hcnRpbiB2LiBM9ndpcwkJCQkJbG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlCkdlcmFsZCBQZmVpZmVyCQkJCQlwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0CgoKKiBJbmRpY2F0ZXMgZm9sa3Mgd2UgbmVlZCB0byBnZXQgS2VyYmVyb3Mvc3NoIGFjY291bnRzIHJlYWR5IHNvIHRoZXkKY2FuIHdyaXRlIGluIHRoZSBzb3VyY2UgdHJlZQo=