IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZToJUGFzY2FsCiIgVmVyc2lvbjogMi44CiIgTGFzdCBDaGFuZ2U6CTIwMDQvMTAvMTcgMTc6NDc6MzAKIiBNYWludGFpbmVyOiAgWGF2aWVyIENy6Wd1dCA8eGF2aWVyLmNyZWd1dEBlbnNlZWlodC5mcj4KIiBQcmV2aW91cyBNYWludGFpbmVyOglNYXJpbyBFdXNlYmlvIDxiaW9AZHEuZmN0LnVubC5wdD4KCiIgQ29udHJpYnV0b3JzOiBUaW0gQ2hhc2UgPHRjaGFzZUBjc2MuY29tPiwKIglTdGFzIEdyYWJvaXMgPHN0c2lAdnRyYWlscy5jb20+LAoiCU1hemVuIE5FSUZFUiA8bWF6ZW4ubmVpZmVyLjIwMDFAc3VwYWVyby5mcj4sCiIJS2xhdXMgSGFzdCA8S2xhdXMuSGFzdEBhcmNvci5uZXQ+LAoiCUF1c3RpbiBaaWVnbGVyIDxhdXN0aW5AaGFsb3N0YXR1ZS5jYT4sCiIJTWFya3VzIEtvZW5pZyA8bWFya3VzQHN0YmVyLWtvZW5pZy5kZT4KCiIgcXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCmlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgZmluaXNoCmVuZGlmCgoKc3luIGNhc2UgaWdub3JlCnN5biBzeW5jIGxpbmVzPTI1MAoKc3luIGtleXdvcmQgcGFzY2FsQm9vbGVhbgl0cnVlIGZhbHNlCnN5biBrZXl3b3JkIHBhc2NhbENvbmRpdGlvbmFsCWlmIGVsc2UgdGhlbgpzeW4ga2V5d29yZCBwYXNjYWxDb25zdGFudAluaWwgbWF4aW50CnN5biBrZXl3b3JkIHBhc2NhbExhYmVsCQljYXNlIGdvdG8gbGFiZWwKc3luIGtleXdvcmQgcGFzY2FsT3BlcmF0b3IJYW5kIGRpdiBkb3dudG8gaW4gbW9kIG5vdCBvZiBvciBwYWNrZWQgd2l0aApzeW4ga2V5d29yZCBwYXNjYWxSZXBlYXQJZG8gZm9yIGRvIHJlcGVhdCB3aGlsZSB0byB1bnRpbApzeW4ga2V5d29yZCBwYXNjYWxTdGF0ZW1lbnQJcHJvY2VkdXJlIGZ1bmN0aW9uCnN5biBrZXl3b3JkIHBhc2NhbFN0YXRlbWVudAlwcm9ncmFtIGJlZ2luIGVuZCBjb25zdCB2YXIgdHlwZQpzeW4ga2V5d29yZCBwYXNjYWxTdHJ1Y3QJcmVjb3JkCnN5biBrZXl3b3JkIHBhc2NhbFR5cGUJCWFycmF5IGJvb2xlYW4gY2hhciBpbnRlZ2VyIGZpbGUgcG9pbnRlciByZWFsIHNldApzeW4ga2V5d29yZCBwYXNjYWxUeXBlCQlzdHJpbmcgdGV4dCB2YXJpYW50CgoKICAgICIgMjAwMTEyMjJhejogQWRkZWQgbmV3IGl0ZW1zLgpzeW4ga2V5d29yZCBwYXNjYWxUb2RvIGNvbnRhaW5lZAlUT0RPIEZJWE1FIFhYWCBERUJVRyBOT1RFCgogICAgIiAyMDAxMDcyM2F6OiBXaGVuIHdhbnRlZCwgaGlnaGxpZ2h0IHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlIC0tIHRoaXMgaXMKICAgICIgYmFzZWQgb24gY19zcGFjZV9lcnJvcnM7IHRvIGVuYWJsZSwgdXNlICJwYXNjYWxfc3BhY2VfZXJyb3JzIi4KaWYgZXhpc3RzKCJwYXNjYWxfc3BhY2VfZXJyb3JzIikKICAgIGlmICFleGlzdHMoInBhc2NhbF9ub190cmFpbF9zcGFjZV9lcnJvciIpCiAgICAgICAgc3luIG1hdGNoIHBhc2NhbFNwYWNlRXJyb3IgIlxzXCskIgogICAgZW5kaWYKICAgIGlmICFleGlzdHMoInBhc2NhbF9ub190YWJfc3BhY2VfZXJyb3IiKQogICAgICAgIHN5biBtYXRjaCBwYXNjYWxTcGFjZUVycm9yICIgXCtcdCJtZT1lLTEKICAgIGVuZGlmCmVuZGlmCgoKCiIgU3RyaW5nCmlmICFleGlzdHMoInBhc2NhbF9vbmVfbGluZV9zdHJpbmciKQogIHN5biByZWdpb24gIHBhc2NhbFN0cmluZyBtYXRjaGdyb3VwPXBhc2NhbFN0cmluZyBzdGFydD0rJysgZW5kPSsnKyBjb250YWlucz1wYXNjYWxTdHJpbmdFc2NhcGUKICBpZiBleGlzdHMoInBhc2NhbF9ncGMiKQogICAgc3luIHJlZ2lvbiAgcGFzY2FsU3RyaW5nIG1hdGNoZ3JvdXA9cGFzY2FsU3RyaW5nIHN0YXJ0PSsiKyBlbmQ9KyIrIGNvbnRhaW5zPXBhc2NhbFN0cmluZ0VzY2FwZUdQQwogIGVsc2UKICAgIHN5biByZWdpb24gIHBhc2NhbFN0cmluZ0Vycm9yIG1hdGNoZ3JvdXA9cGFzY2FsU3RyaW5nRXJyb3Igc3RhcnQ9KyIrIGVuZD0rIisgY29udGFpbnM9cGFzY2FsU3RyaW5nRXNjYXBlCiAgZW5kaWYKZWxzZQogICJ3cm9uZyBzdHJpbmdzCiAgc3luIHJlZ2lvbiAgcGFzY2FsU3RyaW5nRXJyb3IgbWF0Y2hncm91cD1wYXNjYWxTdHJpbmdFcnJvciBzdGFydD0rJysgZW5kPSsnKyBlbmQ9KyQrIGNvbnRhaW5zPXBhc2NhbFN0cmluZ0VzY2FwZQogIGlmIGV4aXN0cygicGFzY2FsX2dwYyIpCiAgICBzeW4gcmVnaW9uICBwYXNjYWxTdHJpbmdFcnJvciBtYXRjaGdyb3VwPXBhc2NhbFN0cmluZ0Vycm9yIHN0YXJ0PSsiKyBlbmQ9KyIrIGVuZD0rJCsgY29udGFpbnM9cGFzY2FsU3RyaW5nRXNjYXBlR1BDCiAgZWxzZQogICAgc3luIHJlZ2lvbiAgcGFzY2FsU3RyaW5nRXJyb3IgbWF0Y2hncm91cD1wYXNjYWxTdHJpbmdFcnJvciBzdGFydD0rIisgZW5kPSsiKyBlbmQ9KyQrIGNvbnRhaW5zPXBhc2NhbFN0cmluZ0VzY2FwZQogIGVuZGlmCgogICJyaWdodCBzdHJpbmdzCiAgc3luIHJlZ2lvbiAgcGFzY2FsU3RyaW5nIG1hdGNoZ3JvdXA9cGFzY2FsU3RyaW5nIHN0YXJ0PSsnKyBlbmQ9KycrIG9uZWxpbmUgY29udGFpbnM9cGFzY2FsU3RyaW5nRXNjYXBlCiAgIiBUbyBzZWUgdGhlIHN0YXJ0IGFuZCBlbmQgb2Ygc3RyaW5nczoKICAiIHN5biByZWdpb24gIHBhc2NhbFN0cmluZyBtYXRjaGdyb3VwPXBhc2NhbFN0cmluZ0Vycm9yIHN0YXJ0PSsnKyBlbmQ9KycrIG9uZWxpbmUgY29udGFpbnM9cGFzY2FsU3RyaW5nRXNjYXBlCiAgaWYgZXhpc3RzKCJwYXNjYWxfZ3BjIikKICAgIHN5biByZWdpb24gIHBhc2NhbFN0cmluZyBtYXRjaGdyb3VwPXBhc2NhbFN0cmluZyBzdGFydD0rIisgZW5kPSsiKyBvbmVsaW5lIGNvbnRhaW5zPXBhc2NhbFN0cmluZ0VzY2FwZUdQQwogIGVsc2UKICAgIHN5biByZWdpb24gIHBhc2NhbFN0cmluZ0Vycm9yIG1hdGNoZ3JvdXA9cGFzY2FsU3RyaW5nRXJyb3Igc3RhcnQ9KyIrIGVuZD0rIisgb25lbGluZSBjb250YWlucz1wYXNjYWxTdHJpbmdFc2NhcGUKICBlbmRpZgplbmQKc3luIG1hdGNoICAgcGFzY2FsU3RyaW5nRXNjYXBlCQljb250YWluZWQgIicnIgpzeW4gbWF0Y2ggICBwYXNjYWxTdHJpbmdFc2NhcGVHUEMJY29udGFpbmVkICciIicKCgoiIHN5biBtYXRjaCAgIHBhc2NhbElkZW50aWZpZXIJCSJcPFthLXpBLVpfXVthLXpBLVowLTlfXSpcPiIKCgppZiBleGlzdHMoInBhc2NhbF9zeW1ib2xfb3BlcmF0b3IiKQogIHN5biBtYXRjaCAgIHBhc2NhbFN5bWJvbE9wZXJhdG9yICAgICAgIlsrXC0vKj1dIgogIHN5biBtYXRjaCAgIHBhc2NhbFN5bWJvbE9wZXJhdG9yICAgICAgIls8Pl09XD0iCiAgc3luIG1hdGNoICAgcGFzY2FsU3ltYm9sT3BlcmF0b3IgICAgICAiPD4iCiAgc3luIG1hdGNoICAgcGFzY2FsU3ltYm9sT3BlcmF0b3IgICAgICAiOj0iCiAgc3luIG1hdGNoICAgcGFzY2FsU3ltYm9sT3BlcmF0b3IgICAgICAiWygpXSIKICBzeW4gbWF0Y2ggICBwYXNjYWxTeW1ib2xPcGVyYXRvciAgICAgICJcLlwuIgogIHN5biBtYXRjaCAgIHBhc2NhbFN5bWJvbE9wZXJhdG9yICAgICAgICJbXF4uXSIKICBzeW4gbWF0Y2ggICBwYXNjYWxNYXRyaXhEZWxpbWl0ZXIJIltdW10iCiAgImlmIHlvdSBwcmVmZXIgeW91IGNhbiBoaWdobGlnaHQgdGhlIHJhbmdlCiAgInN5biBtYXRjaCAgcGFzY2FsTWF0cml4RGVsaW1pdGVyCSJbXGRcK1wuXC5cZFwrXSIKZW5kaWYKCnN5biBtYXRjaCAgcGFzY2FsTnVtYmVyCQkiLVw9XDxcZFwrXD4iCnN5biBtYXRjaCAgcGFzY2FsRmxvYXQJCSItXD1cPFxkXCtcLlxkXCtcPiIKc3luIG1hdGNoICBwYXNjYWxGbG9hdAkJIi1cPVw8XGRcK1wuXGRcK1tlRV0tXD1cZFwrXD4iCnN5biBtYXRjaCAgcGFzY2FsSGV4TnVtYmVyCSJcJFswLTlhLWZBLUZdXCtcPiIKCmlmIGV4aXN0cygicGFzY2FsX25vX3RhYnMiKQogIHN5biBtYXRjaCBwYXNjYWxTaG93VGFiICJcdCIKZW5kaWYKCnN5biByZWdpb24gcGFzY2FsQ29tbWVudAlzdGFydD0iKFwqXHx7IiAgZW5kPSJcKilcfH0iIGNvbnRhaW5zPXBhc2NhbFRvZG8scGFzY2FsU3BhY2VFcnJvcgoKCmlmICFleGlzdHMoInBhc2NhbF9ub19mdW5jdGlvbnMiKQogICIgYXJyYXkgZnVuY3Rpb25zCiAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JcGFjayB1bnBhY2sKCiAgIiBtZW1vcnkgZnVuY3Rpb24KICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglEaXNwb3NlIE5ldwoKICAiIG1hdGggZnVuY3Rpb25zCiAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JQWJzIEFyY3RhbiBDb3MgRXhwIExuIFNpbiBTcXIgU3FydAoKICAiIGZpbGUgZnVuY3Rpb25zCiAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JRW9mIEVvbG4gV3JpdGUgV3JpdGVsbgogIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQJSW5wdXQgT3V0cHV0CgogIGlmIGV4aXN0cygicGFzY2FsX3RyYWRpdGlvbmFsIikKICAgICIgVGhlc2UgZnVuY3Rpb25zIGRvIG5vdCBzZWVtIHRvIGJlIGRlZmluZWQgaW4gVHVyYm8gUGFzY2FsCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXQgUGFnZSBQdXQgCiAgZW5kaWYKCiAgIiBvcmRpbmFsIGZ1bmN0aW9ucwogIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCU9kZCBQcmVkIFN1Y2MKCiAgIiB0cmFuc2ZlcnQgZnVuY3Rpb25zCiAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JQ2hyIE9yZCBSb3VuZCBUcnVuYwplbmRpZgoKCmlmICFleGlzdHMoInBhc2NhbF90cmFkaXRpb25hbCIpCgogIHN5biBrZXl3b3JkIHBhc2NhbFN0YXRlbWVudAljb25zdHJ1Y3RvciBkZXN0cnVjdG9yIGltcGxlbWVudGF0aW9uIGluaGVyaXRlZAogIHN5biBrZXl3b3JkIHBhc2NhbFN0YXRlbWVudAlpbnRlcmZhY2UgdW5pdCB1c2VzCiAgc3luIGtleXdvcmQgcGFzY2FsTW9kaWZpZXIJYWJzb2x1dGUgYXNzZW1ibGVyIGV4dGVybmFsIGZhciBmb3J3YXJkIGlubGluZQogIHN5biBrZXl3b3JkIHBhc2NhbE1vZGlmaWVyCWludGVycnVwdCBuZWFyIHZpcnR1YWwgCiAgc3luIGtleXdvcmQgcGFzY2FsQWNjZXMJcHJpdmF0ZSBwdWJsaWMgCiAgc3luIGtleXdvcmQgcGFzY2FsU3RydWN0CW9iamVjdCAKICBzeW4ga2V5d29yZCBwYXNjYWxPcGVyYXRvcglzaGwgc2hyIHhvcgoKICBzeW4gcmVnaW9uIHBhc2NhbFByZVByb2MJc3RhcnQ9IihcKlwkIiAgZW5kPSJcKikiIGNvbnRhaW5zPXBhc2NhbFRvZG8KICBzeW4gcmVnaW9uIHBhc2NhbFByZVByb2MJc3RhcnQ9IntcJCIgIGVuZD0ifSIKCiAgc3luIHJlZ2lvbiAgcGFzY2FsQXNtCQltYXRjaGdyb3VwPXBhc2NhbEFzbUtleSBzdGFydD0iXDxhc21cPiIgZW5kPSJcPGVuZFw+IiBjb250YWlucz1wYXNjYWxDb21tZW50LHBhc2NhbFByZVByb2MKCiAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlTaG9ydEludCBMb25nSW50IEJ5dGUgV29yZAogIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJQnl0ZUJvb2wgV29yZEJvb2wgTG9uZ0Jvb2wKICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCUNhcmRpbmFsIExvbmdXb3JkCiAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlTaW5nbGUgRG91YmxlIEV4dGVuZGVkIENvbXAKICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCVBDaGFyCgoKICBpZiAhZXhpc3RzICgicGFzY2FsX2ZwYyIpCiAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkCVJlc3VsdAogIGVuZGlmCgogIGlmIGV4aXN0cygicGFzY2FsX2ZwYyIpCiAgICBzeW4gcmVnaW9uIHBhc2NhbENvbW1lbnQgICAgICAgIHN0YXJ0PSIvLyIgZW5kPSIkIiBjb250YWlucz1wYXNjYWxUb2RvLHBhc2NhbFNwYWNlRXJyb3IKICAgIHN5biBrZXl3b3JkIHBhc2NhbFN0YXRlbWVudAlmYWlsIG90aGVyd2lzZSBvcGVyYXRvcgogICAgc3luIGtleXdvcmQgcGFzY2FsRGlyZWN0aXZlCXBvcHN0YWNrCiAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIHNlbGYKICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJU2hvcnRTdHJpbmcgQW5zaVN0cmluZyBXaWRlU3RyaW5nCiAgZW5kaWYKCiAgaWYgZXhpc3RzKCJwYXNjYWxfZ3BjIikKICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJU21hbGxJbnQKICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJQW5zaUNoYXIKICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJUEFuc2lDaGFyCiAgZW5kaWYKCiAgaWYgZXhpc3RzKCJwYXNjYWxfZGVscGhpIikKICAgIHN5biByZWdpb24gcGFzY2FsQ29tbWVudAlzdGFydD0iLy8iICBlbmQ9IiQiIGNvbnRhaW5zPXBhc2NhbFRvZG8scGFzY2FsU3BhY2VFcnJvcgogICAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlTbWFsbEludCBJbnQ2NAogICAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlSZWFsNDggQ3VycmVuY3kKICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJQW5zaUNoYXIgV2lkZUNoYXIKICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJU2hvcnRTdHJpbmcgQW5zaVN0cmluZyBXaWRlU3RyaW5nCiAgICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCVBBbnNpQ2hhciBQV2lkZUNoYXIKICAgIHN5biBtYXRjaCAgcGFzY2FsRmxvYXQJIi1cPVw8XGRcK1wuXGRcK1tkRF0tXD1cZFwrXD4iCiAgICBzeW4gbWF0Y2ggIHBhc2NhbFN0cmluZ0VzY2FwZQljb250YWluZWQgIiNbMTJdWzAtOV1cPVswLTldXD0iCiAgICBzeW4ga2V5d29yZCBwYXNjYWxTdHJ1Y3QJY2xhc3MgZGlzcGludGVyZmFjZQogICAgc3luIGtleXdvcmQgcGFzY2FsRXhjZXB0aW9uCXRyeSBleGNlcHQgcmFpc2UgYXQgb24gZmluYWxseQogICAgc3luIGtleXdvcmQgcGFzY2FsU3RhdGVtZW50CW91dAogICAgc3luIGtleXdvcmQgcGFzY2FsU3RhdGVtZW50CWxpYnJhcnkgcGFja2FnZSAKICAgIHN5biBrZXl3b3JkIHBhc2NhbFN0YXRlbWVudAlpbml0aWFsaXphdGlvbiBmaW5hbGl6YXRpb24gdXNlcyBleHBvcnRzCiAgICBzeW4ga2V5d29yZCBwYXNjYWxTdGF0ZW1lbnQJcHJvcGVydHkgb3V0IHJlc291cmNlc3RyaW5nIHRocmVhZHZhcgogICAgc3luIGtleXdvcmQgcGFzY2FsTW9kaWZpZXIJY29udGFpbnMKICAgIHN5biBrZXl3b3JkIHBhc2NhbE1vZGlmaWVyCW92ZXJyaWRkZW4gcmVpbnRyb2R1Y2UgYWJzdHJhY3QKICAgIHN5biBrZXl3b3JkIHBhc2NhbE1vZGlmaWVyCW92ZXJyaWRlIGV4cG9ydCBkeW5hbWljIG5hbWUgbWVzc2FnZQogICAgc3luIGtleXdvcmQgcGFzY2FsTW9kaWZpZXIJZGlzcGlkIGluZGV4IHN0b3JlZCBkZWZhdWx0IG5vZGVmYXVsdCByZWFkb25seQogICAgc3luIGtleXdvcmQgcGFzY2FsTW9kaWZpZXIJd3JpdGVvbmx5IGltcGxlbWVudHMgb3ZlcmxvYWQgcmVxdWlyZXMgcmVzaWRlbnQKICAgIHN5biBrZXl3b3JkIHBhc2NhbEFjY2VzCXByb3RlY3RlZCBwdWJsaXNoZWQgYXV0b21hdGVkCiAgICBzeW4ga2V5d29yZCBwYXNjYWxEaXJlY3RpdmUJcmVnaXN0ZXIgcGFzY2FsIGN2YXIgY2RlY2wgc3RkY2FsbCBzYWZlY2FsbAogICAgc3luIGtleXdvcmQgcGFzY2FsT3BlcmF0b3IJYXMgaXMKICBlbmRpZgoKICBpZiBleGlzdHMoInBhc2NhbF9ub19mdW5jdGlvbnMiKQogICAgInN5biBrZXl3b3JkIHBhc2NhbE1vZGlmaWVyCXJlYWQgd3JpdGUKICAgICJtYXkgY29uZnVzZSB3aXRoIFJlYWQgYW5kIFdyaXRlIGZ1bmN0aW9ucy4gIE5vdCBlYXN5IHRvIGhhbmRsZS4KICBlbHNlCiAgICAiIGNvbnRyb2wgZmxvdyBmdW5jdGlvbnMKICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUJyZWFrIENvbnRpbnVlIEV4aXQgSGFsdCBSdW5FcnJvcgoKICAgICIgb3JkaW5hbCBmdW5jdGlvbnMKICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCURlYyBJbmMgSGlnaCBMb3cKCiAgICAiIG1hdGggZnVuY3Rpb25zCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglGcmFjIEludCBQaQoKICAgICIgc3RyaW5nIGZ1bmN0aW9ucwogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JQ29uY2F0IENvcHkgRGVsZXRlIEluc2VydCBMZW5ndGggUG9zIFN0ciBWYWwKCiAgICAiIG1lbW9yeSBmdW5jdGlvbgogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JRnJlZU1lbSBHZXRNZW0gTWF4QXZhaWwgTWVtQXZhaWwKCiAgICAiIHBvaW50ZXIgYW5kIGFkZHJlc3MgZnVuY3Rpb25zCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglBZGRyIEFzc2lnbmVkIENTZWcgRFNlZyBPZnMgUHRyIFNlZyBTUHRyIFNTZWcKCiAgICAiIG1pc2MgZnVuY3Rpb25zCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglFeGNsdWRlIEZpbGxDaGFyIEhpIEluY2x1ZGUgTG8gTW92ZSBQYXJhbUNvdW50CiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglQYXJhbVN0ciBSYW5kb20gUmFuZG9taXplIFNpemVPZiBTd2FwIFR5cGVPZgogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JVXBDYXNlCgogICAgIiBwcmVkZWZpbmVkIHZhcmlhYmxlcwogICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZCBFcnJvckFkZHIgRXhpdENvZGUgRXhpdFByb2MgRmlsZU1vZGUgRnJlZUxpc3QKICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgRnJlZVplcm8gSGVhcEVuZCBIZWFwRXJyb3IgSGVhcE9yZyBIZWFwUHRyCiAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIEluT3V0UmVzIE92ckNvZGVMaXN0IE92ckRlYnVnUHRyIE92ckRvc0hhbmRsZQogICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZCBPdnJFbXNIYW5kbGUgT3ZySGVhcEVuZCBPdnJIZWFwT3JnIE92ckhlYXBQdHIKICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgT3ZySGVhcFNpemUgT3ZyTG9hZExpc3QgUHJlZml4U2VnIFJhbmRTZWVkCiAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIFNhdmVJbnQwMCBTYXZlSW50MDIgU2F2ZUludDFCIFNhdmVJbnQyMQogICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZCBTYXZlSW50MjMgU2F2ZUludDI0IFNhdmVJbnQzNCBTYXZlSW50MzUKICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgU2F2ZUludDM2IFNhdmVJbnQzNyBTYXZlSW50MzggU2F2ZUludDM5CiAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIFNhdmVJbnQzQSBTYXZlSW50M0IgU2F2ZUludDNDIFNhdmVJbnQzRAogICAgc3luIGtleXdvcmQgcGFzY2FsUHJlZGVmaW5lZCBTYXZlSW50M0UgU2F2ZUludDNGIFNhdmVJbnQ3NSBTZWdBMDAwIFNlZ0IwMDAKICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgU2VnQjgwMCBTZWxlY3RvckluYyBTdGFja0xpbWl0IFRlc3Q4MDg3CgogICAgIiBmaWxlIGZ1bmN0aW9ucwogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JQXBwZW5kIEFzc2lnbiBCbG9ja1JlYWQgQmxvY2tXcml0ZSBDaERpciBDbG9zZQogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JRXJhc2UgRmlsZVBvcyBGaWxlU2l6ZSBGbHVzaCBHZXREaXIgSU9SZXN1bHQKICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCU1rRGlyIFJlYWQgUmVhZGxuIFJlbmFtZSBSZXNldCBSZXdyaXRlIFJtRGlyCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTZWVrIFNlZWtFb2YgU2Vla0VvbG4gU2V0VGV4dEJ1ZiBUcnVuY2F0ZQoKICAgICIgY3J0IHVuaXQKICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUFzc2lnbkNydCBDbHJFb2wgQ2xyU2NyIERlbGF5IERlbExpbmUgR290b1hZCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglIaWdoVmlkZW8gSW5zTGluZSBLZXlQcmVzc2VkIExvd1ZpZGVvIE5vcm1WaWRlbwogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JTm9Tb3VuZCBSZWFkS2V5IFNvdW5kIFRleHRCYWNrZ3JvdW5kIFRleHRDb2xvcgogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JVGV4dE1vZGUgV2hlcmVYIFdoZXJlWSBXaW5kb3cKICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgQ2hlY2tCcmVhayBDaGVja0VPRiBDaGVja1Nub3cgRGlyZWN0VmlkZW8KICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgTGFzdE1vZGUgVGV4dEF0dHIgV2luZE1pbiBXaW5kTWF4CiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbiBCaWdDdXJzb3IgQ3Vyc29yT2ZmIEN1cnNvck9uCiAgICBzeW4ga2V5d29yZCBwYXNjYWxDb25zdGFudCBCbGFjayBCbHVlIEdyZWVuIEN5YW4gUmVkIE1hZ2VudGEgQnJvd24KICAgIHN5biBrZXl3b3JkIHBhc2NhbENvbnN0YW50IExpZ2h0R3JheSBEYXJrR3JheSBMaWdodEJsdWUgTGlnaHRHcmVlbgogICAgc3luIGtleXdvcmQgcGFzY2FsQ29uc3RhbnQgTGlnaHRDeWFuIExpZ2h0UmVkIExpZ2h0TWFnZW50YSBZZWxsb3cgV2hpdGUKICAgIHN5biBrZXl3b3JkIHBhc2NhbENvbnN0YW50IEJsaW5rIFNjcmVlbldpZHRoIFNjcmVlbkhlaWdodCBidzQwCiAgICBzeW4ga2V5d29yZCBwYXNjYWxDb25zdGFudCBjbzQwIGJ3ODAgY284MCBtb25vCiAgICBzeW4ga2V5d29yZCBwYXNjYWxQcmVkZWZpbmVkIFRleHRDaGFyIAoKICAgICIgRE9TIHVuaXQKICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUFkZERpc2sgRGlza0ZyZWUgRGlza1NpemUgRG9zRXhpdENvZGUgRG9zVmVyc2lvbgogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JRW52Q291bnQgRW52U3RyIEV4ZWMgRXhwYW5kIEZpbmRDbG9zZSBGaW5kRmlyc3QKICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUZpbmROZXh0IEZTZWFyY2ggRlNwbGl0IEdldENCcmVhayBHZXREYXRlCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRFbnYgR2V0RkF0dHIgR2V0RlRpbWUgR2V0SW50VmVjIEdldFRpbWUKICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUdldFZlcmlmeSBJbnRyIEtlZXAgTVNEb3MgUGFja1RpbWUgU2V0Q0JyZWFrCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTZXREYXRlIFNldEZBdHRyIFNldEZUaW1lIFNldEludFZlYyBTZXRUaW1lCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTZXRWZXJpZnkgU3dhcFZlY3RvcnMgVW5QYWNrVGltZQogICAgc3luIGtleXdvcmQgcGFzY2FsQ29uc3RhbnQJRkNhcnJ5IEZQYXJpdHkgRkF1eGlsaWFyeSBGWmVybyBGU2lnbiBGT3ZlcmZsb3cKICAgIHN5biBrZXl3b3JkIHBhc2NhbENvbnN0YW50CUhpZGRlbiBTeXNmaWxlIFZvbHVtZUlkIERpcmVjdG9yeSBBcmNoaXZlCiAgICBzeW4ga2V5d29yZCBwYXNjYWxDb25zdGFudAlBbnlGaWxlIGZtQ2xvc2VkIGZtSW5wdXQgZm1PdXRwdXQgZm1Jbm91dAogICAgc3luIGtleXdvcmQgcGFzY2FsQ29uc3RhbnQJVGV4dFJlY05hbWVMZW5ndGggVGV4dFJlY0J1ZlNpemUKICAgIHN5biBrZXl3b3JkIHBhc2NhbFR5cGUJQ29tU3RyIFBhdGhTdHIgRGlyU3RyIE5hbWVTdHIgRXh0U3RyIFNlYXJjaFJlYwogICAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlGaWxlUmVjIFRleHRCdWYgVGV4dFJlYyBSZWdpc3RlcnMgRGF0ZVRpbWUKICAgIHN5biBrZXl3b3JkIHBhc2NhbFByZWRlZmluZWQgRG9zRXJyb3IKCiAgICAiR3JhcGggVW5pdAogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JQXJjIEJhciBCYXIzRCBDaXJjbGUgQ2xlYXJEZXZpY2UgQ2xlYXJWaWV3UG9ydAogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JQ2xvc2VHcmFwaCBEZXRlY3RHcmFwaCBEcmF3UG9seSBFbGxpcHNlCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglGaWxsRWxsaXBzZSBGaWxsUG9seSBGbG9vZEZpbGwgR2V0QXJjQ29vcmRzCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRBc3BlY3RSYXRpbyBHZXRCa0NvbG9yIEdldENvbG9yCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXREZWZhdWx0UGFsZXR0ZSBHZXREcml2ZXJOYW1lIEdldEZpbGxQYXR0ZXJuCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRGaWxsU2V0dGluZ3MgR2V0R3JhcGhNb2RlIEdldEltYWdlCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRMaW5lU2V0dGluZ3MgR2V0TWF4Q29sb3IgR2V0TWF4TW9kZSBHZXRNYXhYCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRNYXhZIEdldE1vZGVOYW1lIEdldE1vZGVSYW5nZSBHZXRQYWxldHRlCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglHZXRQYWxldHRlU2l6ZSBHZXRQaXhlbCBHZXRUZXh0U2V0dGluZ3MKICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCUdldFZpZXdTZXR0aW5ncyBHZXRYIEdldFkgR3JhcGhEZWZhdWx0cwogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JR3JhcGhFcnJvck1zZyBHcmFwaFJlc3VsdCBJbWFnZVNpemUgSW5pdEdyYXBoCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglJbnN0YWxsVXNlckRyaXZlciBJbnN0YWxsVXNlckZvbnQgTGluZSBMaW5lUmVsCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglMaW5lVG8gTW92ZVJlbCBNb3ZlVG8gT3V0VGV4dCBPdXRUZXh0WFkKICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCVBpZVNsaWNlIFB1dEltYWdlIFB1dFBpeGVsIFJlY3RhbmdsZQogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JUmVnaXN0ZXJCR0lEcml2ZXIgUmVnaXN0ZXJCR0lGb250CiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglSZXN0b3JlQ1JUTW9kZSBTZWN0b3IgU2V0QWN0aXZlUGFnZQogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU2V0QWxsUGFsbGV0dGUgU2V0QXNwZWN0UmF0aW8gU2V0QmtDb2xvcgogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU2V0Q29sb3IgU2V0RmlsbFBhdHRlcm4gU2V0RmlsbFN0eWxlCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTZXRHcmFwaEJ1ZlNpemUgU2V0R3JhcGhNb2RlIFNldExpbmVTdHlsZQogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU2V0UGFsZXR0ZSBTZXRSR0JQYWxldHRlIFNldFRleHRKdXN0aWZ5CiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTZXRUZXh0U3R5bGUgU2V0VXNlckNoYXJTaXplIFNldFZpZXdQb3J0CiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTZXRWaXN1YWxQYWdlIFNldFdyaXRlTW9kZSBUZXh0SGVpZ2h0IFRleHRXaWR0aAogICAgc3luIGtleXdvcmQgcGFzY2FsVHlwZQlBcmNDb29yZHNUeXBlIEZpbGxQYXR0ZXJuVHlwZSBGaWxsU2V0dGluZ3NUeXBlCiAgICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCUxpbmVTZXR0aW5nc1R5cGUgUGFsZXR0ZVR5cGUgUG9pbnRUeXBlCiAgICBzeW4ga2V5d29yZCBwYXNjYWxUeXBlCVRleHRTZXR0aW5nc1R5cGUgVmlld1BvcnRUeXBlCgogICAgIiBzdHJpbmcgZnVuY3Rpb25zCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTdHJBbGxvYyBTdHJCdWZTaXplIFN0ckNhdCBTdHJDb21wIFN0ckNvcHkKICAgIHN5biBrZXl3b3JkIHBhc2NhbEZ1bmN0aW9uCVN0ckRpc3Bvc2UgU3RyRUNvcHkgU3RyRW5kIFN0ckZtdCBTdHJJQ29tcAogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU3RyTENhdCBTdHJMQ29tcCBTdHJMQ29weSBTdHJMZW4gU3RyTEZtdAogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU3RyTElDb21wIFN0ckxvd2VyIFN0ck1vdmUgU3RyTmV3IFN0clBhcwogICAgc3luIGtleXdvcmQgcGFzY2FsRnVuY3Rpb24JU3RyUENvcHkgU3RyUExDb3B5IFN0clBvcyBTdHJSU2NhbiBTdHJTY2FuCiAgICBzeW4ga2V5d29yZCBwYXNjYWxGdW5jdGlvbglTdHJVcHBlcgogIGVuZGlmCgplbmRpZgoKIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgoiIE9ubHkgd2hlbiBhbiBpdGVtIGRvZXNuJ3QgaGF2ZSBoaWdobGlnaHRpbmcgeWV0CgpoaSBkZWYgbGluayBwYXNjYWxBY2NlcwkJcGFzY2FsU3RhdGVtZW50CmhpIGRlZiBsaW5rIHBhc2NhbEJvb2xlYW4JCUJvb2xlYW4KaGkgZGVmIGxpbmsgcGFzY2FsQ29tbWVudAkJQ29tbWVudApoaSBkZWYgbGluayBwYXNjYWxDb25kaXRpb25hbAlDb25kaXRpb25hbApoaSBkZWYgbGluayBwYXNjYWxDb25zdGFudAkJQ29uc3RhbnQKaGkgZGVmIGxpbmsgcGFzY2FsRGVsaW1pdGVyCUlkZW50aWZpZXIKaGkgZGVmIGxpbmsgcGFzY2FsRGlyZWN0aXZlCXBhc2NhbFN0YXRlbWVudApoaSBkZWYgbGluayBwYXNjYWxFeGNlcHRpb24JRXhjZXB0aW9uCmhpIGRlZiBsaW5rIHBhc2NhbEZsb2F0CQlGbG9hdApoaSBkZWYgbGluayBwYXNjYWxGdW5jdGlvbgkJRnVuY3Rpb24KaGkgZGVmIGxpbmsgcGFzY2FsTGFiZWwJCUxhYmVsCmhpIGRlZiBsaW5rIHBhc2NhbE1hdHJpeERlbGltaXRlcglJZGVudGlmaWVyCmhpIGRlZiBsaW5rIHBhc2NhbE1vZGlmaWVyCQlUeXBlCmhpIGRlZiBsaW5rIHBhc2NhbE51bWJlcgkJTnVtYmVyCmhpIGRlZiBsaW5rIHBhc2NhbE9wZXJhdG9yCQlPcGVyYXRvcgpoaSBkZWYgbGluayBwYXNjYWxQcmVkZWZpbmVkCXBhc2NhbFN0YXRlbWVudApoaSBkZWYgbGluayBwYXNjYWxQcmVQcm9jCQlQcmVQcm9jCmhpIGRlZiBsaW5rIHBhc2NhbFJlcGVhdAkJUmVwZWF0CmhpIGRlZiBsaW5rIHBhc2NhbFNwYWNlRXJyb3IJRXJyb3IKaGkgZGVmIGxpbmsgcGFzY2FsU3RhdGVtZW50CVN0YXRlbWVudApoaSBkZWYgbGluayBwYXNjYWxTdHJpbmcJCVN0cmluZwpoaSBkZWYgbGluayBwYXNjYWxTdHJpbmdFc2NhcGUJU3BlY2lhbApoaSBkZWYgbGluayBwYXNjYWxTdHJpbmdFc2NhcGVHUEMJU3BlY2lhbApoaSBkZWYgbGluayBwYXNjYWxTdHJpbmdFcnJvcglFcnJvcgpoaSBkZWYgbGluayBwYXNjYWxTdHJ1Y3QJCXBhc2NhbFN0YXRlbWVudApoaSBkZWYgbGluayBwYXNjYWxTeW1ib2xPcGVyYXRvcglwYXNjYWxPcGVyYXRvcgpoaSBkZWYgbGluayBwYXNjYWxUb2RvCQlUb2RvCmhpIGRlZiBsaW5rIHBhc2NhbFR5cGUJCVR5cGUKaGkgZGVmIGxpbmsgcGFzY2FsVW5jbGFzc2lmaWVkCXBhc2NhbFN0YXRlbWVudAoiICBoaSBkZWYgbGluayBwYXNjYWxBc20JCUFzc2VtYmxlcgpoaSBkZWYgbGluayBwYXNjYWxFcnJvcgkJRXJyb3IKaGkgZGVmIGxpbmsgcGFzY2FsQXNtS2V5CQlwYXNjYWxTdGF0ZW1lbnQKaGkgZGVmIGxpbmsgcGFzY2FsU2hvd1RhYgkJRXJyb3IKCgoKbGV0IGI6Y3VycmVudF9zeW50YXggPSAicGFzY2FsIgoKIiB2aW06IHRzPTggc3c9Mgo=