CosPCjFjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQiIwoTUHVibGljSW1wb3J0TWVzc2FnZRIMCgFlGAEgASgFUgFlQh2qAhpHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvc0rvDQoGEgQgACgBCvYMCgEMEgMgABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjIoIEF1dGhvcjogbGl1amlzaUBnb29nbGUuY29tIChQaGVybCBMaXUpCgoICgECEgMiACEKCAoBCBIDJAA3CgkKAgglEgMkADcKCgoCBAASBCYAKAEKCgoDBAABEgMmCBsKCwoEBAACABIDJwENCgwKBQQAAgAFEgMnAQYKDAoFBAACAAESAycHCAoMCgUEAAIAAxIDJwsMYgZwcm90bzMKnxMKKmNzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0X3Byb3RvMy5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0GjFjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCpZCgpJbXBvcnRFbnVtEhsKF0lNUE9SVF9FTlVNX1VOU1BFQ0lGSUVEEAASDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAlCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSoARCgYSBCQANgEKnw4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdF9wcm90bzMucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgoICgECEgMmACEKCAoBCBIDKAA3CgkKAgglEgMoADcKHwoCAwASAysAQhoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAysHDQoKCgIEABIELQAvAQoKCgMEAAESAy0IFQoLCgQEAAIAEgMuAg4KDAoFBAACAAUSAy4CBwoMCgUEAAIAARIDLggJCgwKBQQAAgADEgMuDA0KCgoCBQASBDEANgEKCgoDBQABEgMxBQ8KCwoEBQACABIDMgIeCgwKBQUAAgABEgMyAhkKDAoFBQACAAISAzIcHQoLCgQFAAIBEgMzAhEKDAoFBQACAQESAzMCDAoMCgUFAAIBAhIDMw8QCgsKBAUAAgISAzQCEQoMCgUFAAICARIDNAIMCgwKBQUAAgICEgM0DxAKCwoEBQACAxIDNQIRCgwKBQUAAgMBEgM1AgwKDAoFBQACAwISAzUPEFAAYgZwcm90bzMKhbwBCiNjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X3Byb3RvMy5wcm90bxIScHJvdG9idWZfdW5pdHRlc3QzGipjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wcm90bzMucHJvdG8iqxYKDFRlc3RBbGxUeXBlcxIhCgxzaW5nbGVfaW50MzIYASABKAVSC3NpbmdsZUludDMyEiEKDHNpbmdsZV9pbnQ2NBgCIAEoA1ILc2luZ2xlSW50NjQSIwoNc2luZ2xlX3VpbnQzMhgDIAEoDVIMc2luZ2xlVWludDMyEiMKDXNpbmdsZV91aW50NjQYBCABKARSDHNpbmdsZVVpbnQ2NBIjCg1zaW5nbGVfc2ludDMyGAUgASgRUgxzaW5nbGVTaW50MzISIwoNc2luZ2xlX3NpbnQ2NBgGIAEoElIMc2luZ2xlU2ludDY0EiUKDnNpbmdsZV9maXhlZDMyGAcgASgHUg1zaW5nbGVGaXhlZDMyEiUKDnNpbmdsZV9maXhlZDY0GAggASgGUg1zaW5nbGVGaXhlZDY0EicKD3NpbmdsZV9zZml4ZWQzMhgJIAEoD1IOc2luZ2xlU2ZpeGVkMzISJwoPc2luZ2xlX3NmaXhlZDY0GAogASgQUg5zaW5nbGVTZml4ZWQ2NBIhCgxzaW5nbGVfZmxvYXQYCyABKAJSC3NpbmdsZUZsb2F0EiMKDXNpbmdsZV9kb3VibGUYDCABKAFSDHNpbmdsZURvdWJsZRIfCgtzaW5nbGVfYm9vbBgNIAEoCFIKc2luZ2xlQm9vbBIjCg1zaW5nbGVfc3RyaW5nGA4gASgJUgxzaW5nbGVTdHJpbmcSIQoMc2luZ2xlX2J5dGVzGA8gASgMUgtzaW5nbGVCeXRlcxJiChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYEiABKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSE3NpbmdsZU5lc3RlZE1lc3NhZ2USWAoWc2luZ2xlX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIUc2luZ2xlRm9yZWlnbk1lc3NhZ2USWwoVc2luZ2xlX2ltcG9ydF9tZXNzYWdlGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSE3NpbmdsZUltcG9ydE1lc3NhZ2USWQoSc2luZ2xlX25lc3RlZF9lbnVtGBUgASgOMisucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhBzaW5nbGVOZXN0ZWRFbnVtEk8KE3NpbmdsZV9mb3JlaWduX2VudW0YFiABKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SEXNpbmdsZUZvcmVpZ25FbnVtElIKEnNpbmdsZV9pbXBvcnRfZW51bRgXIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhBzaW5nbGVJbXBvcnRFbnVtEm4KHHNpbmdsZV9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZVIZc2luZ2xlUHVibGljSW1wb3J0TWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJmChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlElwKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJfChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlUhVyZXBlYXRlZEltcG9ydE1lc3NhZ2USXQoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yKy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJTChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SVgoUcmVwZWF0ZWRfaW1wb3J0X2VudW0YNSADKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bVIScmVwZWF0ZWRJbXBvcnRFbnVtEnIKHnJlcGVhdGVkX3B1YmxpY19pbXBvcnRfbWVzc2FnZRg2IAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUhtyZXBlYXRlZFB1YmxpY0ltcG9ydE1lc3NhZ2USIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEmIKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxofCg1OZXN0ZWRNZXNzYWdlEg4KAmJiGAEgASgFUgJiYiJWCgpOZXN0ZWRFbnVtEhsKF05FU1RFRF9FTlVNX1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGQi3QEKEk5lc3RlZFRlc3RBbGxUeXBlcxI8CgVjaGlsZBgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0My5OZXN0ZWRUZXN0QWxsVHlwZXNSBWNoaWxkEjoKB3BheWxvYWQYAiABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzUgdwYXlsb2FkEk0KDnJlcGVhdGVkX2NoaWxkGAMgAygLMiYucHJvdG9idWZfdW5pdHRlc3QzLk5lc3RlZFRlc3RBbGxUeXBlc1INcmVwZWF0ZWRDaGlsZCJFChRUZXN0RGVwcmVjYXRlZEZpZWxkcxItChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYAVIPZGVwcmVjYXRlZEludDMyIh4KDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMiMAoSVGVzdFJlc2VydmVkRmllbGRzSgQIAhADSgQIDxAQSgQICRAMUgNiYXJSA2JheiJqChFUZXN0Rm9yZWlnbk5lc3RlZBJVCg5mb3JlaWduX25lc3RlZBgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVINZm9yZWlnbk5lc3RlZCI7ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISDAoBYRgBIAEoBVIBYRIRCgJiYhj///9/IAEoBVICYmIiXAoUVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USNgoBYRgBIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0UmVjdXJzaXZlTWVzc2FnZVIBYRIMCgFpGAIgASgFUgFpIlAKFFRlc3RNdXR1YWxSZWN1cnNpb25BEjgKAmJiGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNdXR1YWxSZWN1cnNpb25CUgJiYiJ1ChRUZXN0TXV0dWFsUmVjdXJzaW9uQhI2CgFhGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNdXR1YWxSZWN1cnNpb25BUgFhEiUKDm9wdGlvbmFsX2ludDMyGAIgASgFUg1vcHRpb25hbEludDMyIlQKElRlc3RFbnVtQWxsb3dBbGlhcxI+CgV2YWx1ZRgBIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0RW51bVdpdGhEdXBWYWx1ZVIFdmFsdWUi+wMKF1Rlc3RDYW1lbENhc2VGaWVsZE5hbWVzEiYKDlByaW1pdGl2ZUZpZWxkGAEgASgFUg5QcmltaXRpdmVGaWVsZBIgCgtTdHJpbmdGaWVsZBgCIAEoCVILU3RyaW5nRmllbGQSPQoJRW51bUZpZWxkGAMgASgOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtUglFbnVtRmllbGQSRgoMTWVzc2FnZUZpZWxkGAQgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgxNZXNzYWdlRmllbGQSNgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBVIWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBIwChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJUhNSZXBlYXRlZFN0cmluZ0ZpZWxkEk0KEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtUhFSZXBlYXRlZEVudW1GaWVsZBJWChRSZXBlYXRlZE1lc3NhZ2VGaWVsZBgKIAMoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIUUmVwZWF0ZWRNZXNzYWdlRmllbGQi/wEKElRlc3RGaWVsZE9yZGVyaW5ncxIbCglteV9zdHJpbmcYCyABKAlSCG15U3RyaW5nEhUKBm15X2ludBgBIAEoA1IFbXlJbnQSGQoIbXlfZmxvYXQYZSABKAJSB215RmxvYXQSaQoVc2luZ2xlX25lc3RlZF9tZXNzYWdlGMgBIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0RmllbGRPcmRlcmluZ3MuTmVzdGVkTWVzc2FnZVITc2luZ2xlTmVzdGVkTWVzc2FnZRovCg1OZXN0ZWRNZXNzYWdlEg4KAm9vGAIgASgDUgJvbxIOCgJiYhgBIAEoBVICYmIiWAoRU3BhcnNlRW51bU1lc3NhZ2USQwoLc3BhcnNlX2VudW0YASABKA4yIi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNwYXJzZUVudW1SCnNwYXJzZUVudW0iHwoJT25lU3RyaW5nEhIKBGRhdGEYASABKAlSBGRhdGEiIAoKTW9yZVN0cmluZxISCgRkYXRhGAEgAygJUgRkYXRhIh4KCE9uZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiHwoJTW9yZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiIgoMSW50MzJNZXNzYWdlEhIKBGRhdGEYASABKAVSBGRhdGEiIwoNVWludDMyTWVzc2FnZRISCgRkYXRhGAEgASgNUgRkYXRhIiIKDEludDY0TWVzc2FnZRISCgRkYXRhGAEgASgDUgRkYXRhIiMKDVVpbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoBFIEZGF0YSIhCgtCb29sTWVzc2FnZRISCgRkYXRhGAEgASgIUgRkYXRhIpMBCglUZXN0T25lb2YSGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSQwoLZm9vX21lc3NhZ2UYAyABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzSABSCmZvb01lc3NhZ2VCBQoDZm9vIu4ECg9UZXN0UGFja2VkVHlwZXMSJQoMcGFja2VkX2ludDMyGFogAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GFsgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GF0gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYXiADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYZiADKAhCAhABUgpwYWNrZWRCb29sEkQKC3BhY2tlZF9lbnVtGGcgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtQgIQAVIKcGFja2VkRW51bSKoBQoRVGVzdFVucGFja2VkVHlwZXMSKQoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFsgAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYXCADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXSADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXyADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYSADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEABSDHVucGFja2VkQm9vbBJICg11bnBhY2tlZF9lbnVtGGcgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtQgIQAFIMdW5wYWNrZWRFbnVtIp8CCiNUZXN0UmVwZWF0ZWRTY2FsYXJEaWZmZXJlbnRUYWdTaXplcxIpChByZXBlYXRlZF9maXhlZDMyGAwgAygHUg9yZXBlYXRlZEZpeGVkMzISJQoOcmVwZWF0ZWRfaW50MzIYDSADKAVSDXJlcGVhdGVkSW50MzISKgoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAZSD3JlcGVhdGVkRml4ZWQ2NBImCg5yZXBlYXRlZF9pbnQ2NBj/DyADKANSDXJlcGVhdGVkSW50NjQSJwoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAlINcmVwZWF0ZWRGbG9hdBIpCg9yZXBlYXRlZF91aW50NjQY//8PIAMoBFIOcmVwZWF0ZWRVaW50NjQiKwobVGVzdENvbW1lbnRJbmplY3Rpb25NZXNzYWdlEgwKAWEYASABKAlSAWEiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSISChBUZXN0RW1wdHlNZXNzYWdlIoIBCg5Db21tZW50TWVzc2FnZRISCgR0ZXh0GAEgASgJUgR0ZXh0GjcKFE5lc3RlZENvbW1lbnRNZXNzYWdlEh8KC25lc3RlZF90ZXh0GAEgASgJUgpuZXN0ZWRUZXh0IiMKEU5lc3RlZENvbW1lbnRFbnVtEg4KClpFUk9fVkFMVUUQACpZCgtGb3JlaWduRW51bRIXChNGT1JFSUdOX1VOU1BFQ0lGSUVEEAASDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYqdQoUVGVzdEVudW1XaXRoRHVwVmFsdWUSKAokVEVTVF9FTlVNX1dJVEhfRFVQX1ZBTFVFX1VOU1BFQ0lGSUVEEAASCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhACGgIQASqdAQoOVGVzdFNwYXJzZUVudW0SIAocVEVTVF9TUEFSU0VfRU5VTV9VTlNQRUNJRklFRBAAEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9HEAIqHQoLQ29tbWVudEVudW0SDgoKWkVST19WQUxVRRAAMp0BCgtUZXN0U2VydmljZRJGCgNGb28SHi5wcm90b2J1Zl91bml0dGVzdDMuRm9vUmVxdWVzdBofLnByb3RvYnVmX3VuaXR0ZXN0My5Gb29SZXNwb25zZRJGCgNCYXISHi5wcm90b2J1Zl91bml0dGVzdDMuQmFyUmVxdWVzdBofLnByb3RvYnVmX3VuaXR0ZXN0My5CYXJSZXNwb25zZUIsQg1Vbml0dGVzdFByb3RvqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK2n8KBxIFJACWAwEK/w0KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMrABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3ZSB3aWxsIHVzZSBmb3IgdW5pdCB0ZXN0aW5nLgoKCAoBCBIDJgA3CgkKAgglEgMmADcKCAoBCBIDKgAuCmAKAggIEgMqAC4aVSBPbmx5IHByZXNlbnQgc28gd2UgY2FuIHRlc3QgdGhhdCB3ZSBjYW4gcmVhZCBpdCAoYXMgYW4gZXhhbXBsZQogb2YgYSBub24tQyMgb3B0aW9uKQoKCQoCAwASAywANAoICgECEgMuABsKXAoCBAASBTIAggEBGk8gVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCgoKAwQAARIDMggUCgwKBAQAAwASBDMCOAMKDAoFBAADAAESAzMKFwrjAQoGBAADAAIAEgM3BBEa0wEgVGhlIGZpZWxkIG5hbWUgImIiIGZhaWxzIHRvIGNvbXBpbGUgaW4gcHJvdG8xIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgKIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQgImIiIGluIG9uZSBvZiB0aGUgZ2VuZXJhdGVkIG1ldGhvZHMuICBEb2guCiBUaGlzIGZpbGUgbmVlZHMgdG8gY29tcGlsZSBpbiBwcm90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sAICMwoNCgUEGAIABBIEsAICCgoNCgUEGAIABRIEsAILEAoNCgUEGAIAARIEsAIRHQoNCgUEGAIAAxIEsAIgIgoNCgUEGAIACBIEsAIjMgoOCgYEGAIACAISBLACJDEKDAoEBBgCARIEsQICMwoNCgUEGAIBBBIEsQICCgoNCgUEGAIBBRIEsQILEAoNCgUEGAIBARIEsQIRHQoNCgUEGAIBAxIEsQIgIgoNCgUEGAIBCBIEsQIjMgoOCgYEGAIBCAISBLECJDEKDAoEBBgCAhIEsgICNQoNCgUEGAICBBIEsgICCgoNCgUEGAICBRIEsgILEQoNCgUEGAICARIEsgISHwoNCgUEGAICAxIEsgIiJAoNCgUEGAICCBIEsgIlNAoOCgYEGAICCAISBLICJjMKDAoEBBgCAxIEswICNQoNCgUEGAIDBBIEswICCgoNCgUEGAIDBRIEswILEQoNCgUEGAIDARIEswISHwoNCgUEGAIDAxIEswIiJAoNCgUEGAIDCBIEswIlNAoOCgYEGAIDCAISBLMCJjMKDAoEBBgCBBIEtAICNQoNCgUEGAIEBBIEtAICCgoNCgUEGAIEBRIEtAILEQoNCgUEGAIEARIEtAISHwoNCgUEGAIEAxIEtAIiJAoNCgUEGAIECBIEtAIlNAoOCgYEGAIECAISBLQCJjMKDAoEBBgCBRIEtQICNQoNCgUEGAIFBBIEtQICCgoNCgUEGAIFBRIEtQILEQoNCgUEGAIFARIEtQISHwoNCgUEGAIFAxIEtQIiJAoNCgUEGAIFCBIEtQIlNAoOCgYEGAIFCAISBLUCJjMKDAoEBBgCBhIEtgICNwoNCgUEGAIGBBIEtgICCgoNCgUEGAIGBRIEtgILEgoNCgUEGAIGARIEtgITIQoNCgUEGAIGAxIEtgIkJgoNCgUEGAIGCBIEtgInNgoOCgYEGAIGCAISBLYCKDUKDAoEBBgCBxIEtwICNwoNCgUEGAIHBBIEtwICCgoNCgUEGAIHBRIEtwILEgoNCgUEGAIHARIEtwITIQoNCgUEGAIHAxIEtwIkJgoNCgUEGAIHCBIEtwInNgoOCgYEGAIHCAISBLcCKDUKDAoEBBgCCBIEuAICOQoNCgUEGAIIBBIEuAICCgoNCgUEGAIIBRIEuAILEwoNCgUEGAIIARIEuAIUIwoNCgUEGAIIAxIEuAImKAoNCgUEGAIICBIEuAIpOAoOCgYEGAIICAISBLgCKjcKDAoEBBgCCRIEuQICOQoNCgUEGAIJBBIEuQICCgoNCgUEGAIJBRIEuQILEwoNCgUEGAIJARIEuQIUIwoNCgUEGAIJAxIEuQImKAoNCgUEGAIJCBIEuQIpOAoOCgYEGAIJCAISBLkCKjcKDAoEBBgCChIEugICNAoNCgUEGAIKBBIEugICCgoNCgUEGAIKBRIEugILEAoNCgUEGAIKARIEugIRHQoNCgUEGAIKAxIEugIgIwoNCgUEGAIKCBIEugIkMwoOCgYEGAIKCAISBLoCJTIKDAoEBBgCCxIEuwICNgoNCgUEGAILBBIEuwICCgoNCgUEGAILBRIEuwILEQoNCgUEGAILARIEuwISHwoNCgUEGAILAxIEuwIiJQoNCgUEGAILCBIEuwImNQoOCgYEGAILCAISBLsCJzQKDAoEBBgCDBIEvAICMgoNCgUEGAIMBBIEvAICCgoNCgUEGAIMBRIEvAILDwoNCgUEGAIMARIEvAIQGwoNCgUEGAIMAxIEvAIeIQoNCgUEGAIMCBIEvAIiMQoOCgYEGAIMCAISBLwCIzAKDAoEBBgCDRIEvQICOQoNCgUEGAINBBIEvQICCgoNCgUEGAINBhIEvQILFgoNCgUEGAINARIEvQIXIgoNCgUEGAINAxIEvQIlKAoNCgUEGAINCBIEvQIpOAoOCgYEGAINCAISBL0CKjcKjQEKAgQZEgbCAgDRAgEafyBBIG1lc3NhZ2Ugd2l0aCB0aGUgc2FtZSBmaWVsZHMgYXMgVGVzdFBhY2tlZFR5cGVzLCBidXQgd2l0aG91dCBwYWNraW5nLiBVc2VkCiB0byB0ZXN0IHBhY2tlZCA8LT4gdW5wYWNrZWQgd2lyZSBjb21wYXRpYmlsaXR5LgoKCwoDBBkBEgTCAggZCgwKBAQZAgASBMMCAjYKDQoFBBkCAAQSBMMCAgoKDQoFBBkCAAUSBMMCCxAKDQoFBBkCAAESBMMCER8KDQoFBBkCAAMSBMMCIiQKDQoFBBkCAAgSBMMCJTUKDgoGBBkCAAgCEgTDAiY0CgwKBAQZAgESBMQCAjYKDQoFBBkCAQQSBMQCAgoKDQoFBBkCAQUSBMQCCxAKDQoFBBkCAQESBMQCER8KDQoFBBkCAQMSBMQCIiQKDQoFBBkCAQgSBMQCJTUKDgoGBBkCAQgCEgTEAiY0CgwKBAQZAgISBMUCAjgKDQoFBBkCAgQSBMUCAgoKDQoFBBkCAgUSBMUCCxEKDQoFBBkCAgESBMUCEiEKDQoFBBkCAgMSBMUCJCYKDQoFBBkCAggSBMUCJzcKDgoGBBkCAggCEgTFAig2CgwKBAQZAgMSBMYCAjgKDQoFBBkCAwQSBMYCAgoKDQoFBBkCAwUSBMYCCxEKDQoFBBkCAwESBMYCEiEKDQoFBBkCAwMSBMYCJCYKDQoFBBkCAwgSBMYCJzcKDgoGBBkCAwgCEgTGAig2CgwKBAQZAgQSBMcCAjgKDQoFBBkCBAQSBMcCAgoKDQoFBBkCBAUSBMcCCxEKDQoFBBkCBAESBMcCEiEKDQoFBBkCBAMSBMcCJCYKDQoFBBkCBAgSBMcCJzcKDgoGBBkCBAgCEgTHAig2CgwKBAQZAgUSBMgCAjgKDQoFBBkCBQQSBMgCAgoKDQoFBBkCBQUSBMgCCxEKDQoFBBkCBQESBMgCEiEKDQoFBBkCBQMSBMgCJCYKDQoFBBkCBQgSBMgCJzcKDgoGBBkCBQgCEgTIAig2CgwKBAQZAgYSBMkCAjoKDQoFBBkCBgQSBMkCAgoKDQoFBBkCBgUSBMkCCxIKDQoFBBkCBgESBMkCEyMKDQoFBBkCBgMSBMkCJigKDQoFBBkCBggSBMkCKTkKDgoGBBkCBggCEgTJAio4CgwKBAQZAgcSBMoCAjoKDQoFBBkCBwQSBMoCAgoKDQoFBBkCBwUSBMoCCxIKDQoFBBkCBwESBMoCEyMKDQoFBBkCBwMSBMoCJigKDQoFBBkCBwgSBMoCKTkKDgoGBBkCBwgCEgTKAio4CgwKBAQZAggSBMsCAjwKDQoFBBkCCAQSBMsCAgoKDQoFBBkCCAUSBMsCCxMKDQoFBBkCCAESBMsCFCUKDQoFBBkCCAMSBMsCKCoKDQoFBBkCCAgSBMsCKzsKDgoGBBkCCAgCEgTLAiw6CgwKBAQZAgkSBMwCAjwKDQoFBBkCCQQSBMwCAgoKDQoFBBkCCQUSBMwCCxMKDQoFBBkCCQESBMwCFCUKDQoFBBkCCQMSBMwCKCoKDQoFBBkCCQgSBMwCKzsKDgoGBBkCCQgCEgTMAiw6CgwKBAQZAgoSBM0CAjcKDQoFBBkCCgQSBM0CAgoKDQoF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ZGV0YWNoZWQgY29tbWVudCAyCgoLCgMEIwESBIEDCBYKMAoEBCMDABIGgwMChgMDGiAgTGVhZGluZyBuZXN0ZWQgbWVzc2FnZSBjb21tZW50CgoNCgUEIwMAARIEgwMKHgo2CgYEIwMAAgASBIUDBBsaJiBMZWFkaW5nIG5lc3RlZCBtZXNzYWdlIGZpZWxkIGNvbW1lbnQKCg8KBwQjAwACAAUSBIUDBAoKDwoHBCMDAAIAARIEhQMLFgoPCgcEIwMAAgADEgSFAxkaCi0KBAQjBAASBokDAowDAxodIExlYWRpbmcgbmVzdGVkIGVudW0gY29tbWVudAoKDQoFBCMEAAESBIkDBxgKJAoGBCMEAAIAEgSLAwQTGhQgWmVybyB2YWx1ZSBjb21tZW50CgoPCgcEIwQAAgABEgSLAwQOCg8KBwQjBAACAAISBIsDERIKPwoEBCMCABIEjwMCEhoXIExlYWRpbmcgZmllbGQgY29tbWVudAoiGCBUcmFpbGluZyBmaWVsZCBjb21tZW50CgoNCgUEIwIABRIEjwMCCAoNCgUEIwIAARIEjwMJDQoNCgUEIwIAAxIEjwMQEQokCgIFAxIGkwMAlgMBGhYgTGVhZGluZyBlbnVtIGNvbW1lbnQKCgsKAwUDARIEkwMFEAoiCgQFAwIAEgSVAwIRGhQgWmVybyB2YWx1ZSBjb21tZW50CgoNCgUFAwIAARIElQMCDAoNCgUFAwIAAhIElQMPEGIGcHJvdG8zCuFYCidjc2hhcnAvcHJvdG9zL21hcF91bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxojY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9wcm90bzMucHJvdG8imRYKB1Rlc3RNYXASVgoPbWFwX2ludDMyX2ludDMyGAEgAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyElYKD21hcF9pbnQ2NF9pbnQ2NBgCIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJcChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzISXAoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0ElwKEW1hcF9zaW50MzJfc2ludDMyGAUgAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJcChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSYgoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEmIKE21hcF9maXhlZDY0X2ZpeGVkNjQYCCADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJoChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyNC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISaAoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0ElYKD21hcF9pbnQzMl9mbG9hdBgLIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJZChBtYXBfaW50MzJfZG91YmxlGAwgAygLMi8ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSUAoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sElwKEW1hcF9zdHJpbmdfc3RyaW5nGA4gAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJWCg9tYXBfaW50MzJfYnl0ZXMYDyADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkJ5dGVzRW50cnlSDW1hcEludDMyQnl0ZXMSUwoObWFwX2ludDMyX2VudW0YECADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkVudW1FbnRyeVIMbWFwSW50MzJFbnVtEnIKGW1hcF9pbnQzMl9mb3JlaWduX21lc3NhZ2UYESADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkJ5dGVzRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARpcChFNYXBJbnQzMkVudW1FbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoDjIbLnByb3RvYnVmX3VuaXR0ZXN0My5NYXBFbnVtUgV2YWx1ZToCOAEabQobTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjgKBXZhbHVlGAIgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgV2YWx1ZToCOAEiSwoRVGVzdE1hcFN1Ym1lc3NhZ2USNgoIdGVzdF9tYXAYASABKAsyGy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcFIHdGVzdE1hcCLbAQoOVGVzdE1lc3NhZ2VNYXASYwoRbWFwX2ludDMyX21lc3NhZ2UYASADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1lc3NhZ2VNYXAuTWFwSW50MzJNZXNzYWdlRW50cnlSD21hcEludDMyTWVzc2FnZRpkChRNYXBJbnQzMk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI2CgV2YWx1ZRgCIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNSBXZhbHVlOgI4ASKJAgoPVGVzdFNhbWVUeXBlTWFwEkEKBG1hcDEYASADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNhbWVUeXBlTWFwLk1hcDFFbnRyeVIEbWFwMRJBCgRtYXAyGAIgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RTYW1lVHlwZU1hcC5NYXAyRW50cnlSBG1hcDIaNwoJTWFwMUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaNwoJTWFwMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEirRQKDFRlc3RBcmVuYU1hcBJbCg9tYXBfaW50MzJfaW50MzIYASADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJbCg9tYXBfaW50NjRfaW50NjQYAiADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJhChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJhChFtYXBfdWludDY0X3VpbnQ2NBgEIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJhChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJhChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJnChNtYXBfZml4ZWQzMl9maXhlZDMyGAcgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJnChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJtChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJtChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYCiADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJbCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJeChBtYXBfaW50MzJfZG91YmxlGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJVCg1tYXBfYm9vbF9ib29sGA0gAygLMjEucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJYCg5tYXBfaW50MzJfZW51bRgOIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJFbnVtRW50cnlSDG1hcEludDMyRW51bRJ3ChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGA8gAygLMjwucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaXAoRTWFwSW50MzJFbnVtRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKA4yGy5wcm90b2J1Zl91bml0dGVzdDMuTWFwRW51bVIFdmFsdWU6AjgBGm0KG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI4CgV2YWx1ZRgCIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBIvgBCh9NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlElEKBHR5cGUYASADKAsyPS5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdFbnVtQ2FsbGVkVHlwZS5UeXBlRW50cnlSBHR5cGUabAoJVHlwZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EkkKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGVSBXZhbHVlOgI4ASIUCgRUeXBlEgwKCFRZUEVfRk9PEAAisQEKH01lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkSVAoFZW50cnkYASADKAsyPi5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdNYXBDYWxsZWRFbnRyeS5FbnRyeUVudHJ5UgVlbnRyeRo4CgpFbnRyeUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEqPwoHTWFwRW51bRIQCgxNQVBfRU5VTV9GT08QABIQCgxNQVBfRU5VTV9CQVIQARIQCgxNQVBfRU5VTV9CQVoQAkIdqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK4iQKBhIEJABzAQqbDwoBDBIDJAASGswCIFRoaXMgZmlsZSBpcyBtb3N0bHkgZXF1aXZhbGVudCB0byBtYXBfdW5pdHRlc3QucHJvdG8sIGJ1dCBpbXBvcnRzCiB1bml0dGVzdF9wcm90bzMucHJvdG8gaW5zdGVhZCBvZiB1bml0dGVzdC5wcm90bywgc28gdGhhdCBpdCBvbmx5CiB1c2VzIHByb3RvMyBtZXNzYWdlcy4gVGhpcyBtYWtlcyBpdCBzdWl0YWJsZSBmb3IgdGVzdGluZwogaW1wbGVtZW50YXRpb25zIHdoaWNoIG9ubHkgc3VwcG9ydCBwcm90bzMuCiBUaGUgVGVzdFJlcXVpcmVkTWVzc2FnZU1hcCBtZXNzYWdlIGhhcyBiZWVuIHJlbW92ZWQgYXMgdGhlcmUgYXJlIG5vCiByZXF1aXJlZCBmaWVsZHMgaW4gcHJvdG8zLgoywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS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DgoHBAUEAAIAARIDawQMCg4KBwQFBAACAAISA2sPEAoLCgQEBQIAEgNtAjcKDAoFBAUCAAYSA20CLQoMCgUEBQIAARIDbS4yCgwKBQQFAgADEgNtNTYKSgoCBAYSBHEAcwEaPiBQcmV2aW91c2x5LCBtZXNzYWdlIGNhbm5vdCBjb250YWluIG1hcCBmaWVsZCBjYWxsZWQgImVudHJ5Ii4KCgoKAwQGARIDcQgnCgsKBAQGAgASA3ICHgoMCgUEBgIABhIDcgITCgwKBQQGAgABEgNyFBkKDAoFBAYCAAMSA3IcHWIGcHJvdG8zCv4iChxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYimAEKBlN0cnVjdBI7CgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5UgZmaWVsZHMaUQoLRmllbGRzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSBXZhbHVlOgI4ASKyAgoFVmFsdWUSOwoKbnVsbF92YWx1ZRgBIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIJbnVsbFZhbHVlEiMKDG51bWJlcl92YWx1ZRgCIAEoAUgAUgtudW1iZXJWYWx1ZRIjCgxzdHJpbmdfdmFsdWUYAyABKAlIAFILc3RyaW5nVmFsdWUSHwoKYm9vbF92YWx1ZRgEIAEoCEgAUglib29sVmFsdWUSPAoMc3RydWN0X3ZhbHVlGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAUgtzdHJ1Y3RWYWx1ZRI7CgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAUglsaXN0VmFsdWVCBgoEa2luZCI7CglMaXN0VmFsdWUSLgoGdmFsdWVzGAEgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgZ2YWx1ZXMqGwoJTnVsbFZhbHVlEg4KCk5VTExfVkFMVUUQAEJ/ChNjb20uZ29vZ2xlLnByb3RvYnVmQgtTdHJ1Y3RQcm90b1ABWi9nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9zdHJ1Y3RwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qZHQoGEgQeAF4BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBGCgkKAggLEgMjAEYKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAsCgkKAggIEgMlACwKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsKswMKAgQAEgQyADUBGqYDIGBTdHJ1Y3RgIHJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIGRhdGEgdmFsdWUsIGNvbnNpc3Rpbmcgb2YgZmllbGRzCiB3aGljaCBtYXAgdG8gZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLiBJbiBzb21lIGxhbmd1YWdlcywgYFN0cnVjdGAKIG1pZ2h0IGJlIHN1cHBvcnRlZCBieSBhIG5hdGl2ZSByZXByZXNlbnRhdGlvbi4gRm9yIGV4YW1wbGUsIGluCiBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGxpa2UgSlMgYSBzdHJ1Y3QgaXMgcmVwcmVzZW50ZWQgYXMgYW4KIG9iamVjdC4gVGhlIGRldGFpbHMgb2YgdGhhdCByZXByZXNlbnRhdGlvbiBhcmUgZGVzY3JpYmVkIHRvZ2V0aGVyCiB3aXRoIHRoZSBwcm90byBzdXBwb3J0IGZvciB0aGUgbGFuZ3VhZ2UuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBTdHJ1Y3RgIGlzIEpTT04gb2JqZWN0LgoKCgoDBAABEgMyCA4KOQoEBAACABIDNAIgGiwgVW5vcmRlcmVkIG1hcCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAAIABhIDNAIUCgwKBQQAAgABEgM0FRsKDAoFBAACAAMSAzQeHwrEAgoCBAESBD0ATQEatwIgYFZhbHVlYCByZXByZXNlbnRzIGEgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWUgd2hpY2ggY2FuIGJlIGVpdGhlcgogbnVsbCwgYSBudW1iZXIsIGEgc3RyaW5nLCBhIGJvb2xlYW4sIGEgcmVjdXJzaXZlIHN0cnVjdCB2YWx1ZSwgb3IgYQogbGlzdCBvZiB2YWx1ZXMuIEEgcHJvZHVjZXIgb2YgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gc2V0IG9uZSBvZiB0aGVzZQogdmFyaWFudHMuIEFic2VuY2Ugb2YgYW55IHZhcmlhbnQgaW5kaWNhdGVzIGFuIGVycm9yLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgVmFsdWVgIGlzIEpTT04gdmFsdWUuCgoKCgMEAQESAz0IDQoiCgQEAQgAEgQ/AkwDGhQgVGhlIGtpbmQgb2YgdmFsdWUuCgoMCgUEAQgAARIDPwgMCicKBAQBAgASA0EEHRoaIFJlcHJlc2VudHMgYSBudWxsIHZhbHVlLgoKDAoFBAECAAYSA0EEDQoMCgUEAQIAARIDQQ4YCgwKBQQBAgADEgNBGxwKKQoEBAECARIDQwQcGhwgUmVwcmVzZW50cyBhIGRvdWJsZSB2YWx1ZS4KCgwKBQQBAgEFEgNDBAoKDAoFBAECAQESA0MLFwoMCgUEAQIBAxIDQxobCikKBAQBAgISA0UEHBocIFJlcHJlc2VudHMgYSBzdHJpbmcgdmFsdWUuCgoMCgUEAQICBRIDRQQKCgwKBQQBAgIBEgNFCxcKDAoFBAECAgMSA0UaGwoqCgQEAQIDEgNHBBgaHSBSZXByZXNlbnRzIGEgYm9vbGVhbiB2YWx1ZS4KCgwKBQQBAgMFEgNHBAgKDAoFBAECAwESA0cJEwoMCgUEAQIDAxIDRxYXCi0KBAQBAgQSA0kEHBogIFJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIHZhbHVlLgoKDAoFBAECBAYSA0kECgoMCgUEAQIEARIDSQsXCgwKBQQBAgQDEgNJGhsKLQoEBAECBRIDSwQdGiAgUmVwcmVzZW50cyBhIHJlcGVhdGVkIGBWYWx1ZWAuCgoMCgUEAQIFBhIDSwQNCgwKBQQBAgUBEgNLDhgKDAoFBAECBQMSA0sbHAqoAQoCBQASBFMAVgEamwEgYE51bGxWYWx1ZWAgaXMgYSBzaW5nbGV0b24gZW51bWVyYXRpb24gdG8gcmVwcmVzZW50IHRoZSBudWxsIHZhbHVlIGZvciB0aGUKIGBWYWx1ZWAgdHlwZSB1bmlvbi4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYE51bGxWYWx1ZWAgaXMgSlNPTiBgbnVsbGAuCgoKCgMFAAESA1MFDgoaCgQFAAIAEgNVAhEaDSBOdWxsIHZhbHVlLgoKDAoFBQACAAESA1UCDAoMCgUFAAIAAhIDVQ8QCoIBCgIEAhIEWwBeARp2IGBMaXN0VmFsdWVgIGlzIGEgd3JhcHBlciBhcm91bmQgYSByZXBlYXRlZCBmaWVsZCBvZiB2YWx1ZXMuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBMaXN0VmFsdWVgIGlzIEpTT04gYXJyYXkuCgoKCgMEAgESA1sIEQo6CgQEAgIAEgNdAhwaLSBSZXBlYXRlZCBmaWVsZCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAgIABBIDXQIKCgwKBQQCAgAGEgNdCxAKDAoFBAICAAESA10RFwoMCgUEAgIAAxIDXRobYgZwcm90bzMK7VEKI2NzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8iJwoISXNzdWUzMDcaGwoKTmVzdGVkT25jZRoNCgtOZXN0ZWRUd2ljZSLNAQoTTmVnYXRpdmVFbnVtTWVzc2FnZRIzCgV2YWx1ZRgBIAEoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1SBXZhbHVlEjkKBnZhbHVlcxgCIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhAAUgZ2YWx1ZXMSRgoNcGFja2VkX3ZhbHVlcxgDIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhABUgxwYWNrZWRWYWx1ZXMiFQoPRGVwcmVjYXRlZENoaWxkOgIYASKLAwoXRGVwcmVjYXRlZEZpZWxkc01lc3NhZ2USKgoOUHJpbWl0aXZlVmFsdWUYASABKAVCAhgBUg5QcmltaXRpdmVWYWx1ZRIqCg5QcmltaXRpdmVBcnJheRgCIAMoBUICGAFSDlByaW1pdGl2ZUFycmF5EkgKDE1lc3NhZ2VWYWx1ZRgDIAEoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBUgxNZXNzYWdlVmFsdWUSSAoMTWVzc2FnZUFycmF5GAQgAygLMiAudW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRDaGlsZEICGAFSDE1lc3NhZ2VBcnJheRJBCglFbnVtVmFsdWUYBSABKA4yHy51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZEVudW1CAhgBUglFbnVtVmFsdWUSQQoJRW51bUFycmF5GAYgAygOMh8udW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRFbnVtQgIYAVIJRW51bUFycmF5Ih8KCUl0ZW1GaWVsZBISCgRpdGVtGAEgASgFUgRpdGVtIlcKDVJlc2VydmVkTmFtZXMSFAoFdHlwZXMYASABKAVSBXR5cGVzEh4KCmRlc2NyaXB0b3IYAiABKAVSCmRlc2NyaXB0b3IaEAoOU29tZU5lc3RlZFR5cGUi3wEKFVRlc3RKc29uRmllbGRPcmRlcmluZxIfCgtwbGFpbl9pbnQzMhgEIAEoBVIKcGxhaW5JbnQzMhIdCglvMV9zdHJpbmcYAiABKAlIAFIIbzFTdHJpbmcSGwoIbzFfaW50MzIYBSABKAVIAFIHbzFJbnQzMhIhCgxwbGFpbl9zdHJpbmcYASABKAlSC3BsYWluU3RyaW5nEhsKCG8yX2ludDMyGAYgASgFSAFSB28ySW50MzISHQoJbzJfc3RyaW5nGAMgASgJSAFSCG8yU3RyaW5nQgQKAm8xQgQKAm8yIlEKDFRlc3RKc29uTmFtZRISCgRuYW1lGAEgASgJUgRuYW1lEhkKC2Rlc2NyaXB0aW9uGAIgASgJUgRkZXNjEhIKBGd1aWQYAyABKAlSBGV4aWQikwEKDE9uZW9mTWVyZ2luZxIUCgR0ZXh0GAEgASgJSABSBHRleHQSPgoGbmVzdGVkGAIgASgLMiQudW5pdHRlc3RfaXNzdWVzLk9uZW9mTWVyZ2luZy5OZXN0ZWRIAFIGbmVzdGVkGiQKBk5lc3RlZBIMCgF4GAEgASgFUgF4EgwKAXkYAiABKAVSAXlCBwoFdmFsdWUigwEKFk51bGxWYWx1ZU91dHNpZGVTdHJ1Y3QSIwoMc3RyaW5nX3ZhbHVlGAEgASgJSABSC3N0cmluZ1ZhbHVlEjsKCm51bGxfdmFsdWUYAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSCW51bGxWYWx1ZUIHCgV2YWx1ZSJQChNOdWxsVmFsdWVOb3RJbk9uZW9mEjkKCm51bGxfdmFsdWUYAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlUgludWxsVmFsdWUifQoXTWl4ZWRSZWd1bGFyQW5kT3B0aW9uYWwSIwoNcmVndWxhcl9maWVsZBgBIAEoCVIMcmVndWxhckZpZWxkEioKDm9wdGlvbmFsX2ZpZWxkGAIgASgJSABSDW9wdGlvbmFsRmllbGSIAQFCEQoPX29wdGlvbmFsX2ZpZWxkIkIKEk9uZW9mV2l0aE5vbmVGaWVsZBIOCgF4GAEgASgJSABSAXgSFAoEbm9uZRgCIAEoCUgAUgRub25lQgYKBHRlc3QiOwoRT25lb2ZXaXRoTm9uZU5hbWUSDgoBeBgBIAEoCUgAUgF4Eg4KAXkYAiABKAlIAFIBeUIGCgRub25lIqIDChlEaXNhbWJpZ3VhdGVDb21tb25NZW1iZXJzEj4KG2Rpc2FtYmlndWF0ZV9jb21tb25fbWVtYmVycxgBIAEoBVIZZGlzYW1iaWd1YXRlQ29tbW9uTWVtYmVycxIUCgV0eXBlcxgCIAEoBVIFdHlwZXMSHgoKZGVzY3JpcHRvchgDIAEoBVIKZGVzY3JpcHRvchIWCgZlcXVhbHMYBCABKAVSBmVxdWFscxIbCgl0b19zdHJpbmcYBSABKAVSCHRvU3RyaW5nEiIKDWdldF9oYXNoX2NvZGUYBiABKAVSC2dldEhhc2hDb2RlEhkKCHdyaXRlX3RvGAcgASgFUgd3cml0ZVRvEhQKBWNsb25lGAggASgFUgVjbG9uZRIlCg5jYWxjdWxhdGVfc2l6ZRgJIAEoBVINY2FsY3VsYXRlU2l6ZRIdCgptZXJnZV9mcm9tGAogASgFUgltZXJnZUZyb20SJwoPb25fY29uc3RydWN0aW9uGAsgASgFUg5vbkNvbnN0cnVjdGlvbhIWCgZwYXJzZXIYDCABKAVSBnBhcnNlciI9ChFJc3N1ZTExOTg3TWVzc2FnZRIMCgFhGAEgASgFUgFiEgwKAWIYAiABKAVSAWESDAoBYxgDIAEoBVIBZCpVCgxOZWdhdGl2ZUVudW0SFgoSTkVHQVRJVkVfRU5VTV9aRVJPEAASFgoJRml2ZUJlbG93EPv//////////wESFQoITWludXNPbmUQ////////////ASo2Cg5EZXByZWNhdGVkRW51bRIXCg9ERVBSRUNBVEVEX1pFUk8QABoCCAESBwoDb25lEAEaAhgBQh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0rBPgoHEgUeAOEBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKjgIKAQISAyUAGBpmIElzc3VlOiBOb24tIkdvb2dsZS5Qcm90b2J1ZmZlcnMiIG5hbWVzcGFjZSB3aWxsIGVuc3VyZSB0aGF0IHByb3RvYnVmZmVyCiBsaWJyYXJ5IHR5cGVzIGFyZSBxdWFsaWZpZWQKMpsBIFRoZXNlIHByb3RvIGRlc2NyaXB0b3JzIGhhdmUgYXQgb25lIHRpbWUgYmVlbiByZXBvcnRlZCBhcyBhbiBpc3N1ZSBvciBkZWZlY3QuCiBUaGV5IGFyZSBrZXB0IGhlcmUgdG8gcmVwbGljYXRlIHRoZSBpc3N1ZSwgYW5kIGNvbnRpbnVlIHRvIHZlcmlmeSB0aGUgZml4LgoKCQoCAwASAycAJgoICgEIEgMpADcKCQoCCCUSAykANwp2CgIEABIELQAxARpqIElzc3VlIDMwNzogd2hlbiBnZW5lcmF0aW5nIGRvdWJseS1uZXN0ZWQgdHlwZXMsIGFueSByZWZlcmVuY2VzCiBzaG91bGQgYmUgb2YgdGhlIGZvcm0gQS5UeXBlcy5CLlR5cGVzLkMuCgoKCgMEAAESAy0IEAoMCgQEAAMAEgQuAjADCgwKBQQAAwABEgMuChQKDQoGBAADAAMAEgMvBBoKDgoHBAADAAMAARIDLwwXCrAECgIFABIETABQATKZASBPbGQgaXNzdWUgMTM6CiBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHJvdG9idWYtY3NoYXJwLXBvcnQvaXNzdWVzL2RldGFpbD9pZD0xMyBOZXcgaXNzdWUKIDMwOTogaHR0cHM6Ly9naXRodWIuY29tL3Byb3RvY29sYnVmZmVycy9wcm90b2J1Zi9pc3N1ZXMvMzA5CjIrIG1lc3NhZ2UgQSB7CiAgICBvcHRpb25hbCBpbnQzMiBfQSA9IDE7CiB9CjIrIG1lc3NhZ2UgQiB7CiAgICBvcHRpb25hbCBpbnQzMiBCXyA9IDE7CiB9CjIuIG1lc3NhZ2UgQUIgewogICAgIG9wdGlvbmFsIGludDMyIGFfYiA9IDE7CiB9CjLaASBTaW1pbGFyIGlzc3VlIHdpdGggbnVtZXJpYyBuYW1lcwogSmF2YSBjb2RlIGZhaWxlZCB0b28sIHNvIHByb2JhYmx5IGJlc3QgZm9yIHRoaXMgdG8gYmUgYSByZXN0cmljdGlvbi4KIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJvdG9jb2xidWZmZXJzL3Byb3RvYnVmL2lzc3Vlcy8zMDgKIG1lc3NhZ2UgTnVtYmVyRmllbGQgewogICAgb3B0aW9uYWwgaW50MzIgXzAxID0gMTsKIH0KMiEgaXNzdWUgMTkgLSBuZWdhdGl2ZSBlbnVtIHZhbHVlcwoKCgoDBQABEgNMBREKCwoEBQACABIDTQIZCgwK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b3RvYnVmLkZpbGVEZXNjcmlwdG9yUHJvdG9SBGZpbGUi/gQKE0ZpbGVEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgdwYWNrYWdlGAIgASgJUgdwYWNrYWdlEh4KCmRlcGVuZGVuY3kYAyADKAlSCmRlcGVuZGVuY3kSKwoRcHVibGljX2RlcGVuZGVuY3kYCiADKAVSEHB1YmxpY0RlcGVuZGVuY3kSJwoPd2Vha19kZXBlbmRlbmN5GAsgAygFUg53ZWFrRGVwZW5kZW5jeRJDCgxtZXNzYWdlX3R5cGUYBCADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgttZXNzYWdlVHlwZRJBCgllbnVtX3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSQQoHc2VydmljZRgGIAMoCzInLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgSGAoHZWRpdGlvbhgNIAEoCVIHZWRpdGlvbiK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCLHBAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uElkKC2RlY2xhcmF0aW9uGAIgAygLMjIuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9ucy5EZWNsYXJhdGlvbkIDiAECUgtkZWNsYXJhdGlvbhI3CghmZWF0dXJlcxgyIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0UghmZWF0dXJlcxJoCgx2ZXJpZmljYXRpb24YAyABKA4yOC5nb29nbGUucHJvdG9idWYuRXh0ZW5zaW9uUmFuZ2VPcHRpb25zLlZlcmlmaWNhdGlvblN0YXRlOgpVTlZFUklGSUVEUgx2ZXJpZmljYXRpb24alAEKC0RlY2xhcmF0aW9uEhYKBm51bWJlchgBIAEoBVIGbnVtYmVyEhsKCWZ1bGxfbmFtZRgCIAEoCVIIZnVsbE5hbWUSEgoEdHlwZRgDIAEoCVIEdHlwZRIaCghyZXNlcnZlZBgFIAEoCFIIcmVzZXJ2ZWQSGgoIcmVwZWF0ZWQYBiABKAhSCHJlcGVhdGVkSgQIBBAFIjQKEVZlcmlmaWNhdGlvblN0YXRlEg8KC0RFQ0xBUkFUSU9OEAASDgoKVU5WRVJJRklFRBABKgkI6AcQgICAgAIiwQYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucxInCg9wcm90bzNfb3B0aW9uYWwYESABKAhSDnByb3RvM09wdGlvbmFsIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIsoJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIuChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgR0cnVlUg5jY0VuYWJsZUFyZW5hcxIqChFvYmpjX2NsYXNzX3ByZWZpeBgkIAEoCVIPb2JqY0NsYXNzUHJlZml4EikKEGNzaGFycF9uYW1lc3BhY2UYJSABKAlSD2NzaGFycE5hbWVzcGFjZRIhCgxzd2lmdF9wcmVmaXgYJyABKAlSC3N3aWZ0UHJlZml4EigKEHBocF9jbGFzc19wcmVmaXgYKCABKAlSDnBocENsYXNzUHJlZml4EiMKDXBocF9uYW1lc3BhY2UYKSABKAlSDHBocE5hbWVzcGFjZRI0ChZwaHBfbWV0YWRhdGFfbmFtZXNwYWNlGCwgASgJUhRwaHBNZXRhZGF0YU5hbWVzcGFjZRIhCgxydWJ5X3BhY2thZ2UYLSABKAlSC3J1YnlQYWNrYWdlEjcKCGZlYXR1cmVzGDIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgmECci9AMKDk1lc3NhZ2VPcHRpb25zEjwKF21lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0GAEgASgIOgVmYWxzZVIUbWVzc2FnZVNldFdpcmVGb3JtYXQSTAofbm9fc3RhbmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2VSHG5vU3RhbmRhcmREZXNjcmlwdG9yQWNjZXNzb3ISJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGwoJbWFwX2VudHJ5GAcgASgIUghtYXBFbnRyeRJWCiZkZXByZWNhdGVkX2xlZ2FjeV9qc29uX2ZpZWxkX2NvbmZsaWN0cxgLIAEoCEICGAFSImRlcHJlY2F0ZWRMZWdhY3lKc29uRmllbGRDb25mbGljdHMSNwoIZmVhdHVyZXMYDCABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAQQBUoECAUQBkoECAYQB0oECAgQCUoECAkQCiKTCgoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSLgoPdW52ZXJpZmllZF9sYXp5GA8gASgIOgVmYWxzZVIOdW52ZXJpZmllZExhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSKAoMZGVidWdfcmVkYWN0GBAgASgIOgVmYWxzZVILZGVidWdSZWRhY3QSSwoJcmV0ZW50aW9uGBEgASgOMi0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5PcHRpb25SZXRlbnRpb25SCXJldGVudGlvbhJICgd0YXJnZXRzGBMgAygOMi4uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5PcHRpb25UYXJnZXRUeXBlUgd0YXJnZXRzElcKEGVkaXRpb25fZGVmYXVsdHMYFCADKAsyLC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkVkaXRpb25EZWZhdWx0Ug9lZGl0aW9uRGVmYXVsdHMSNwoIZmVhdHVyZXMYFSABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24aQAoORWRpdGlvbkRlZmF1bHQSGAoHZWRpdGlvbhgBIAEoCVIHZWRpdGlvbhIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUiLwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRACIjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglKU19OVU1CRVIQAiJVCg9PcHRpb25SZXRlbnRpb24SFQoRUkVURU5USU9OX1VOS05PV04QABIVChFSRVRFTlRJT05fUlVOVElNRRABEhQKEFJFVEVOVElPTl9TT1VSQ0UQAiKMAgoQT3B0aW9uVGFyZ2V0VHlwZRIXChNUQVJHRVRfVFlQRV9VTktOT1dOEAASFAoQVEFSR0VUX1RZUEVfRklMRRABEh8KG1RBUkdFVF9UWVBFX0VYVEVOU0lPTl9SQU5HRRACEhcKE1RBUkdFVF9UWVBFX01FU1NBR0UQAxIVChFUQVJHRVRfVFlQRV9GSUVMRBAEEhUKEVRBUkdFVF9UWVBFX09ORU9GEAUSFAoQVEFSR0VUX1RZUEVfRU5VTRAGEhoKFlRBUkdFVF9UWVBFX0VOVU1fRU5UUlkQBxIXChNUQVJHRVRfVFlQRV9TRVJWSUNFEAgSFgoSVEFSR0VUX1RZUEVfTUVUSE9EEAkqCQjoBxCAgICAAkoECAQQBUoECBIQEyKsAQoMT25lb2ZPcHRpb25zEjcKCGZlYXR1cmVzGAEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi0QIKC0VudW1PcHRpb25zEh8KC2FsbG93X2FsaWFzGAIgASgIUgphbGxvd0FsaWFzEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkElYKJmRlcHJlY2F0ZWRfbGVnYWN5X2pzb25fZmllbGRfY29uZmxpY3RzGAYgASgIQgIYAVIiZGVwcmVjYXRlZExlZ2FjeUpzb25GaWVsZENvbmZsaWN0cxI3CghmZWF0dXJlcxgHIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0UghmZWF0dXJlcxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBRAGIoECChBFbnVtVmFsdWVPcHRpb25zEiUKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlUgpkZXByZWNhdGVkEjcKCGZlYXR1cmVzGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzEigKDGRlYnVnX3JlZGFjdBgDIAEoCDoFZmFsc2VSC2RlYnVnUmVkYWN0ElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi1QEKDlNlcnZpY2VPcHRpb25zEjcKCGZlYXR1cmVzGCIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIimQMKDU1ldGhvZE9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQScQoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsOhNJREVNUE9URU5DWV9VTktOT1dOUhBpZGVtcG90ZW5jeUxldmVsEjcKCGZlYXR1cmVzGCMgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAAEhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICAgIACIpoDChNVbmludGVycHJldGVkT3B0aW9uEkEKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydFIEbmFtZRIpChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJUg9pZGVudGlmaWVyVmFsdWUSLAoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEUhBwb3NpdGl2ZUludFZhbHVlEiwKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoA1IQbmVnYXRpdmVJbnRWYWx1ZRIhCgxkb3VibGVfdmFsdWUYBiABKAFSC2RvdWJsZVZhbHVlEiEKDHN0cmluZ192YWx1ZRgHIAEoDFILc3RyaW5nVmFsdWUSJwoPYWdncmVnYXRlX3ZhbHVlGAggASgJUg5hZ2dyZWdhdGVWYWx1ZRpKCghOYW1lUGFydBIbCgluYW1lX3BhcnQYASACKAlSCG5hbWVQYXJ0EiEKDGlzX2V4dGVuc2lvbhgCIAIoCFILaXNFeHRlbnNpb24i+QcKCkZlYXR1cmVTZXQSbgoOZmllbGRfcHJlc2VuY2UYASABKA4yKS5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldC5GaWVsZFByZXNlbmNlQhyIAQGYAQSYAQGiARAKBDIwMjMSCEVYUExJQ0lUUg1maWVsZFByZXNlbmNlElsKCWVudW1fdHlwZRgCIAEoDjIkLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0LkVudW1UeXBlQhiIAQGYAQaYAQGiAQwKBDIwMjMSBE9QRU5SCGVudW1UeXBlEoUBChdyZXBlYXRlZF9maWVsZF9lbmNvZGluZxgDIAEoDjIxLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0LlJlcGVhdGVkRmllbGRFbmNvZGluZ0IaiAEBmAEEmAEBogEOCgQyMDIzEgZQQUNLRURSFXJlcGVhdGVkRmllbGRFbmNvZGluZxJ7ChBtZXNzYWdlX2VuY29kaW5nGAUgASgOMisuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQuTWVzc2FnZUVuY29kaW5nQiOIAQGYAQSYAQGiARcKBDIwMjMSD0xFTkdUSF9QUkVGSVhFRFIPbWVzc2FnZUVuY29kaW5nEmUKC2pzb25fZm9ybWF0GAYgASgOMiYuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQuSnNvbkZvcm1hdEIciAEBmAEDmAEGmAEBogENCgQyMDIzEgVBTExPV1IKanNvbkZvcm1hdCJcCg1GaWVsZFByZXNlbmNlEhoKFkZJRUxEX1BSRVNFTkNFX1VOS05PV04QABIMCghFWFBMSUNJVBABEgwKCElNUExJQ0lUEAISEwoPTEVHQUNZX1JFUVVJUkVEEAMiNwoIRW51bVR5cGUSFQoRRU5VTV9UWVBFX1VOS05PV04QABIICgRPUEVOEAESCgoGQ0xPU0VEEAIiVgoVUmVwZWF0ZWRGaWVsZEVuY29kaW5nEiMKH1JFUEVBVEVEX0ZJRUxEX0VOQ09ESU5HX1VOS05PV04QABIKCgZQQUNLRUQQARIMCghFWFBBTkRFRBACIlMKD01lc3NhZ2VFbmNvZGluZxIcChhNRVNTQUdFX0VOQ09ESU5HX1VOS05PV04QABITCg9MRU5HVEhfUFJFRklYRUQQARINCglERUxJTUlURUQQAiJICgpKc29uRm9ybWF0EhcKE0pTT05fRk9STUFUX1VOS05PV04QABIJCgVBTExPVxABEhYKEkxFR0FDWV9CRVNUX0VGRk9SVBACKgYI6AcQ6QcqBgjpBxDqByoGCItOEJBOSgQIBBAFSgYI5wcQ6AcipwIKDlNvdXJjZUNvZGVJbmZvEkQKCGxvY2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uUghsb2NhdGlvbhrOAQoITG9jYXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSFgoEc3BhbhgCIAMoBUICEAFSBHNwYW4SKQoQbGVhZGluZ19jb21tZW50cxgDIAEoCVIPbGVhZGluZ0NvbW1lbnRzEisKEXRyYWlsaW5nX2NvbW1lbnRzGAQgASgJUhB0cmFpbGluZ0NvbW1lbnRzEjoKGWxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMYBiADKAlSF2xlYWRpbmdEZXRhY2hlZENvbW1lbnRzItACChFHZW5lcmF0ZWRDb2RlSW5mbxJNCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb25SCmFubm90YXRpb24a6wEKCkFubm90YXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSHwoLc291cmNlX2ZpbGUYAiABKAlSCnNvdXJjZUZpbGUSFAoFYmVnaW4YAyABKAVSBWJlZ2luEhAKA2VuZBgEIAEoBVIDZW5kElIKCHNlbWFudGljGAUgASgOMjYuZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb24uU2VtYW50aWNSCHNlbWFudGljIigKCFNlbWFudGljEggKBE5PTkUQABIHCgNTRVQQARIJCgVBTElBUxACQn4KE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVotZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMvZGVzY3JpcHRvcnBi+AEBogIDR1BCqgIaR29vZ2xlLlByb3RvYnVmLlJlZmxlY3Rpb25KmpwDCgcSBSYA9wgBCqoPCgEMEgMmABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLbAiBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBUaGUgbWVzc2FnZXMgaW4gdGhpcyBmaWxlIGRlc2NyaWJlIHRoZSBkZWZpbml0aW9ucyBmb3VuZCBpbiAucHJvdG8gZmlsZXMuCiBBIHZhbGlkIC5wcm90byBmaWxlIGNhbiBiZSB0cmFuc2xhdGVkIGRpcmVjdGx5IHRvIGEgRmlsZURlc2NyaXB0b3JQcm90bwogd2l0aG91dCBhbnkgb3RoZXIgaW5mb3JtYXRpb24gKGUuZy4gd2l0aG91dCByZWFkaW5nIGl0cyBpbXBvcnRzKS4KCggKAQISAygAGAoICgEIEgMqAEQKCQoCCAsSAyoARAoI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cmVnYXJkbGVzcyBvZiBmaWVsZCB0eXBlLgoKIFdoZW4gcHJvdG8zX29wdGlvbmFsIGlzIHRydWUsIHRoaXMgZmllbGQgbXVzdCBiZSBiZWxvbmcgdG8gYSBvbmVvZiB0bwogc2lnbmFsIHRvIG9sZCBwcm90bzMgY2xpZW50cyB0aGF0IHByZXNlbmNlIGlzIHRyYWNrZWQgZm9yIHRoaXMgZmllbGQuIFRoaXMKIG9uZW9mIGlzIGtub3duIGFzIGEgInN5bnRoZXRpYyIgb25lb2YsIGFuZCB0aGlzIGZpZWxkIG11c3QgYmUgaXRzIHNvbGUKIG1lbWJlciAoZWFjaCBwcm90bzMgb3B0aW9uYWwgZmllbGQgZ2V0cyBpdHMgb3duIHN5bnRoZXRpYyBvbmVvZikuIFN5bnRoZXRpYwogb25lb2ZzIGV4aXN0IGluIHRoZSBkZXNjcmlwdG9yIG9ubHksIGFuZCBkbyBub3QgZ2VuZXJhdGUgYW55IEFQSS4gU3ludGhldGljCiBvbmVvZnMgbXVzdCBiZSBvcmRlcmVkIGFmdGVyIGFsbCAicmVhbCIgb25lb2ZzLgoKIEZvciBtZXNzYWdlIGZpZWxkcywgcHJvdG8zX29wdGlvbmFsIGRvZXNuJ3QgY3JlYXRlIGFueSBzZW1hbnRpYyBjaGFuZ2UsCiBzaW5jZSBub24tcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZHMgYWx3YXlzIHRyYWNrIHByZXNlbmNlLiBIb3dldmVyIGl0IHN0aWxsCiBpbmRpY2F0ZXMgdGhlIHNlbWFudGljIGRldGFpbCBvZiB3aGV0aGVyIHRoZSB1c2VyIHdyb3RlICJvcHRpb25hbCIgb3Igbm90LgogVGhpcyBjYW4gYmUgdXNlZnVsIGZvciByb3VuZC10cmlwcGluZyB0aGUgLnByb3RvIGZpbGUuIEZvciBjb25zaXN0ZW5jeSB3ZQogZ2l2ZSBtZXNzYWdlIGZpZWxkcyBhIHN5bnRoZXRpYyBvbmVvZiBhbHNvLCBldmVuIHRob3VnaCBpdCBpcyBub3QgcmVxdWlyZWQKIHRvIHRyYWNrIHByZXNlbmNlLiBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IGJlY2F1c2UgdGhlIHBhcnNlciBjYW4ndAog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ZF9vcHRpb24uIFRoaXMgZmllbGQgbXVzdCBoYXZlIHRoZSBzYW1lIG5hbWUKIGFjcm9zcyBhbGwgKk9wdGlvbnMgbWVzc2FnZXMuIFdlIHRoZW4gdXNlIHRoaXMgZmllbGQgdG8gcG9wdWxhdGUgdGhlCiBleHRlbnNpb25zIHdoZW4gd2UgYnVpbGQgYSBkZXNjcmlwdG9yLCBhdCB3aGljaCBwb2ludCBhbGwgcHJvdG9zIGhhdmUgYmVlbgogcGFyc2VkIGFuZCBzbyBhbGwgZXh0ZW5zaW9ucyBhcmUga25vd24uCgogRXh0ZW5zaW9uIG51bWJlcnMgZm9yIGN1c3RvbSBvcHRpb25zIG1heSBiZSBjaG9zZW4gYXMgZm9sbG93czoKICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBvbmx5IGJlIHVzZWQgd2l0aGluIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yCiAgIG9yZ2FuaXphdGlvbiwgb3IgZm9yIGV4cGVyaW1lbnRhbCBvcHRpb25zLCB1c2UgZmllbGQgbnVtYmVycyA1MDAwMAogICB0aHJvdWdoIDk5OTk5LiAgSXQgaXMgdXAgdG8geW91IHRvIGVuc3VyZSB0aGF0IHlvdSBkbyBub3QgdXNlIHRoZQogICBzYW1lIG51bWJlciBmb3IgbXVsdGlwbGUgb3B0aW9ucy4KICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBiZSBwdWJsaXNoZWQgYW5kIHVzZWQgcHVibGljbHkgYnkgbXVsdGlwbGUKICAgaW5kZXBlbmRlbnQgZW50aXRpZXMsIGUtbWFpbCBwcm90b2J1Zi1nbG9iYWwtZXh0ZW5zaW9uLXJlZ2lzdHJ5QGdvb2dsZS5jb20KICAgdG8gcmVzZXJ2ZSBleHRlbnNpb24gbnVtYmVycy4gU2ltcGx5IHByb3ZpZGUgeW91ciBwcm9qZWN0IG5hbWUgKGUuZy4KICAgT2JqZWN0aXZlLUMgcGx1Z2luKSBhbmQgeW91ciBwcm9qZWN0IHdlYnNpdGUgKGlmIGF2YWlsYWJsZSkgLS0gdGhlcmUncyBubwogICBuZWVkIHRvIGV4cGxhaW4gaG93IHlvdSBpbnRlbmQgdG8gdXNlIHRoZW0uIFVzdWFsbHkgeW91IG9ubHkgbmVlZCBvbmUKICAgZXh0ZW5zaW9uIG51bWJlci4gWW91IGNhbiBkZWNsYXJlIG11bHRpcGxlIG9wdGlvbnMgd2l0aCBvbmx5IG9uZSBleHRlbnNpb24KICAgbnVtYmVyIGJ5IHB1dHRpbmcgdGhlbSBpbiBhIHN1Yi1tZXNzYWdlLiBTZWUgdGhlIEN1c3RvbSBPcHRpb25zIHNlY3Rpb24gb2YKICAgdGhlIGRvY3MgZm9yIGV4YW1wbGVzOgogICBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8jb3B0aW9ucwogICBJZiB0aGlzIHR1cm5zIG91dCB0byBiZSBwb3B1bGFyLCBhIHdlYiBzZXJ2aWNlIHdpbGwgYmUgc2V0IHVwCiAgIHRvIGF1dG9tYXRpY2FsbHkgYXNzaWduIG9wdGlvbiBudW1iZXJzLgoKCwoDBAoBEgSDAwgTCvQBCgQECgIAEgSJAwIjGuUBIFNldHMgdGhlIEphdmEgcGFja2FnZSB3aGVyZSBjbGFzc2VzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gIEJ5IGRlZmF1bHQsIHRoZSBwcm90byBwYWNrYWdlIGlzIHVzZWQsIGJ1dCB0aGlzIGlzIG9mdGVuCiBpbmFwcHJvcHJpYXRlIGJlY2F1c2UgcHJvdG8gcGFja2FnZXMgZG8gbm90IG5vcm1hbGx5IHN0YXJ0IHdpdGggYmFja3dhcmRzCiBkb21haW4gbmFtZXMuCgoNCgUECgIABBIEiQMCCgoNCgUECgIABRIEiQMLEQoNCgUECgIAARIEiQMSHgoNCgUECgIAAxIEiQMhIgrxAgoEBAoCARIEkAMCKxriAiBDb250cm9scyB0aGUgbmFtZSBvZiB0aGUgd3JhcHBlciBKYXZhIGNsYXNzIGdlbmVyYXRlZCBmb3IgdGhlIC5wcm90byBmaWxlLgogVGhhdCBjbGFzcyB3aWxsIGFsd2F5cyBjb250YWluIHRoZSAucHJvdG8gZmlsZSdzIGdldERlc2NyaXB0b3IoKSBtZXRob2QgYXMKIHdlbGwgYXMgYW55IHRvcC1sZXZlbCBleHRlbnNpb25zIGRlZmluZWQgaW4gdGhlIC5wcm90byBmaWxlLgogSWYgamF2YV9tdWx0aXBsZV9maWxlcyBpcyBkaXNhYmxlZCwgdGhlbiBhbGwgdGhlIG90aGVyIGNsYXNzZXMgZnJvbSB0aGUKIC5wcm90byBmaWxlIHdpbGwgYmUgbmVzdGVkIGluc2lkZSB0aGUgc2luZ2xlIHdyYXBwZXIgb3V0ZXIgY2xhc3MuCgoNCgUECgIBBBIEkAMCCgoNCgUECgIBBRIEkAMLEQoNCgUECgIBARIEkAMSJgoNCgUECgIBAxIEkAMpKgqmAwoEBAoCAhIEmAMCOxqXAyBJZiBlbmFibGVkLCB0aGVuIHRoZSBKYXZhIGNvZGUgZ2VuZXJhdG9yIHdpbGwgZ2VuZXJhdGUgYSBzZXBhcmF0ZSAuamF2YQogZmlsZSBmb3IgZWFjaCB0b3AtbGV2ZWwgbWVzc2FnZSwgZW51bSwgYW5kIHNlcnZpY2UgZGVmaW5lZCBpbiB0aGUgLnByb3RvCiBmaWxlLiAgVGh1cywgdGhlc2UgdHlwZXMgd2lsbCAqbm90KiBiZSBuZXN0ZWQgaW5zaWRlIHRoZSB3cmFwcGVyIGNsYXNzCiBuYW1lZCBieSBqYXZhX291dGVyX2NsYXNzbmFtZS4gIEhvd2V2ZXIsIHRoZSB3cmFwcGVyIGNsYXNzIHdpbGwgc3RpbGwgYmUKIGdlbmVyYXRlZCB0byBjb250YWluIHRoZSBmaWxlJ3MgZ2V0RGVzY3JpcHRvcigpIG1ldGhvZCBhcyB3ZWxsIGFzIGFueQogdG9wLWxldmVsIGV4dGVuc2lvbnMgZGVmaW5lZCBpbiB0aGUgZmlsZS4KCg0KBQQKAgIEEgSYAwIKCg0KBQQKAgIFEgSYAwsPCg0KBQQKAgIBEgSYAxAjCg0KBQQKAgIDEgSYAyYoCg0KBQQKAgIIEgSYAyk6Cg0KBQQKAgIHEgSYAzQ5CikKBAQKAgMSBJsDAkUaGyBUaGlzIG9wdGlvbiBkb2VzIG5vdGhpbmcuCgoNCgUECgIDBBIEmwMCCgoNCgUECgIDBRIEmwMLDwoNCgUECgIDARIEmwMQLQoNCgUECgIDAxIEmwMwMgoNCgUECgIDCBIEmwMzRAoOCgYECgIDCAMSBJsDNEMK5gIKBAQKAgQSBKMDAj4a1wIgSWYgc2V0IHRydWUsIHRoZW4gdGhlIEphdmEyIGNvZGUgZ2VuZXJhdG9yIHdpbGwgZ2VuZXJhdGUgY29kZSB0aGF0CiB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW5ldmVyIGFuIGF0dGVtcHQgaXMgbWFkZSB0byBhc3NpZ24gYSBub24tVVRGLTgKIGJ5dGUgc2VxdWVuY2UgdG8gYSBzdHJpbmcgZmllbGQuCiBNZXNzYWdlIHJlZmxlY3Rpb24gd2lsbCBkbyB0aGUgc2FtZS4KIEhvd2V2ZXIsIGFuIGV4dGVuc2lvbiBmaWVsZCBzdGlsbCBhY2NlcHRzIG5vbi1VVEYtOCBieXRlIHNlcXVlbmNlcy4KIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gd2hlbiB1c2VkIHdpdGggdGhlIGxpdGUgcnVudGltZS4KCg0KBQQKAgQEEgSjAwIKCg0KBQQKAgQFEgSjAwsPCg0KBQQKAgQBEgSjAxAmCg0KBQQKAgQDEgSjAykrCg0KBQQKAgQIEgSjAyw9Cg0KBQQKAgQHEgSjAzc8CkwKBAQKBAASBqYDAqsDAxo8IEdlbmVyYXRlZCBjbGFzc2VzIGNhbiBiZSBvcHRpbWl6ZWQgZm9yIHNwZWVkIG9yIGNvZGUgc2l6ZS4KCg0KBQQKBAABEgSmAwcTCkQKBgQKBAACABIEpwMEDiI0IEdlbmVyYXRlIGNvbXBsZXRlIGNvZGUgZm9yIHBhcnNpbmcsIHNlcmlhbGl6YXRpb24sCgoPCgcECgQAAgABEgSnAwQJCg8KBwQKBAACAAISBKcDDA0KRwoGBAoEAAIBEgSpAwQSGgYgZXRjLgoiLyBVc2UgUmVmbGVjdGlvbk9wcyB0byBpbXBsZW1lbnQgdGhlc2UgbWV0aG9kcy4KCg8KBwQKBAACAQESBKkDBA0KDwoHBAoEAAIBAhIEqQMQEQpHCgYECgQAAgISBKoDBBUiNyBHZW5lcmF0ZSBjb2RlIHVzaW5nIE1lc3NhZ2VMaXRlIGFuZCB0aGUgbGl0ZSBydW50aW1lLgoKDwoHBAoEAAICARIEqgMEEAoPCgcECgQAAgICEgSqAxMUCgwKBAQKAgUSBKwDAjsKDQoFBAoCBQQSBKwDAgoKDQoFBAoCBQYSBKwDCxcKDQoFBAoCBQESBKwDGCQKDQoFBAoCBQMSBKwDJygKDQoFBAoCBQgSBKwDKToKDQoFBAoCBQcSBKwDNDkK4gIKBAQKAgYSBLMDAiIa0wIgU2V0cyB0aGUgR28gcGFja2FnZSB3aGVyZSBzdHJ1Y3RzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gSWYgb21pdHRlZCwgdGhlIEdvIHBhY2thZ2Ugd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZzoKICAgLSBUaGUgYmFzZW5hbWUgb2YgdGhlIHBhY2thZ2UgaW1wb3J0IHBhdGgsIGlmIHByb3ZpZGVkLgogICAtIE90aGVyd2lzZSwgdGhlIHBhY2thZ2Ugc3RhdGVtZW50IGluIHRoZSAucHJvdG8gZmlsZSwgaWYgcHJlc2VudC4KICAgLSBPdGhlcndpc2UsIHRoZSBiYXNlbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUsIHdpdGhvdXQgZXh0ZW5zaW9uLgoKDQoFBAoCBgQSBLMDAgoKDQoFBAoCBgUSBLMDCxEKDQoFBAoCBgESBLMDEhwKDQoFBAoCBgMSBLMDHyEK1AQKBAQKAgcSBL8DAjsaxQQgU2hvdWxkIGdlbmVyaWMgc2VydmljZXMgYmUgZ2VuZXJhdGVkIGluIGVhY2ggbGFuZ3VhZ2U/ICAiR2VuZXJpYyIgc2VydmljZXMKIGFyZSBub3Qgc3BlY2lmaWMgdG8gYW55IHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXkgYXJlIGdlbmVyYXRlZCBieSB0aGUKIG1haW4gY29kZSBnZW5lcmF0b3JzIGluIGVhY2ggbGFuZ3VhZ2UgKHdpdGhvdXQgYWRkaXRpb25hbCBwbHVnaW5zKS4KIEdlbmVyaWMgc2VydmljZXMgd2VyZSB0aGUgb25seSBraW5kIG9mIHNlcnZpY2UgZ2VuZXJhdGlvbiBzdXBwb3J0ZWQgYnkKIGVhcmx5IHZlcnNpb25zIG9mIGdvb2dsZS5wcm90b2J1Zi4KCiBHZW5lcmljIHNlcnZpY2VzIGFyZSBub3cgY29uc2lkZXJlZCBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHVzaW5nIHBsdWdpbnMKIHRoYXQgZ2VuZXJhdGUgY29kZSBzcGVj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ZSBrZXkgPSAxOwogICAgICAgICBvcHRpb25hbCBWYWx1ZVR5cGUgdmFsdWUgPSAyOwogICAgIH0KICAgICByZXBlYXRlZCBNYXBGaWVsZEVudHJ5IG1hcF9maWVsZCA9IDE7CgogSW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGdlbmVyYXRlIHRoZSBtYXBfZW50cnk9dHJ1ZSBtZXNzYWdlLCBidXQKIHVzZSBhIG5hdGl2ZSBtYXAgaW4gdGhlIHRhcmdldCBsYW5ndWFnZSB0byBob2xkIHRoZSBrZXlzIGFuZCB2YWx1ZXMuCiBUaGUgcmVmbGVjdGlvbiBBUElzIGluIHN1Y2ggaW1wbGVtZW50YXRpb25zIHN0aWxsIG5lZWQgdG8gd29yayBhcwogaWYgdGhlIGZpZWxkIGlzIGEgcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZC4KCg0KBQQLAgMEEgSzBAIKCg0KBQQLAgMFEgSzBAsPCg0KBQQLAgMBEgSzBBAZCg0KBQQLAgMDEgSzBBwdCiQKAwQLCRIEtQQCDSIXIGphdmFsaXRlX3NlcmlhbGl6YWJsZQoKDAoEBAsJAxIEtQQLDAoNCgUECwkDARIEtQQLDAoNCgUECwkDAhIEtQQLDAofCgMECwkSBLYEAg0iEiBqYXZhbmFub19hc19saXRlCgoMCgQECwkEEgS2BAsMCg0KBQQLCQQBEgS2BAsMCg0KBQQLCQQCEgS2BAsMCuoDCgQECwIEEgTCBAJQGtsDIEVuYWJsZSB0aGUgbGVnYWN5IGhhbmRsaW5nIG9mIEpTT04gZmllbGQgbmFtZSBjb25mbGljdHMuICBUaGlzIGxvd2VyY2FzZXMKIGFuZCBzdHJpcHMgdW5kZXJzY29yZWQgZnJvbSB0aGUgZmllbGRzIGJlZm9yZSBjb21wYXJpc29uIGluIHByb3RvMyBvbmx5LgogVGhlIG5ldyBiZWhhdmlvciB0YWtlcyBganNvbl9uYW1lYCBpbnRvIGFjY291bnQgYW5kIGFwcGxpZXMgdG8gcHJvdG8yIGFzCiB3ZWxsLgoKIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBhcyBhIHRlbXBvcmFyeSBtZWFzdXJlIGFnYWluc3QgYnJva2VuIGJ1aWxkcyBkdWUK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ZWQgb3B0aW9uIGNhbiBiZSBlbmFibGVkIGZvciByZXBlYXRlZCBwcmltaXRpdmUgZmllbGRzIHRvIGVuYWJsZQogYSBtb3JlIGVmZmljaWVudCByZXByZXNlbnRhdGlvbiBvbiB0aGUgd2lyZS4gUmF0aGVyIHRoYW4gcmVwZWF0ZWRseQogd3JpdGluZyB0aGUgdGFnIGFuZCB0eXBlIGZvciBlYWNoIGVsZW1lbnQsIHRoZSBlbnRpcmUgYXJyYXkgaXMgZW5jb2RlZCBhcwogYSBzaW5nbGUgbGVuZ3RoLWRlbGltaXRlZCBibG9iLiBJbiBwcm90bzMsIG9ubHkgZXhwbGljaXQgc2V0dGluZyBpdCB0bwogZmFsc2Ugd2lsbCBhdm9pZCB1c2luZyBwYWNrZWQgZW5jb2RpbmcuCgoNCgUEDAIBBBIE6QQCCgoNCgUEDAIBBRIE6QQLDwoNCgUEDAIBARIE6QQQFgoNCgUEDAIBAxIE6QQZGgqaBQoEBAwCAhIE9gQCMxqLBSBUaGUganN0eXBlIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBKYXZhU2NyaXB0IHR5cGUgdXNlZCBmb3IgdmFsdWVzIG9mIHRoZQogZmllbGQuICBUaGUgb3B0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGZvciA2NCBiaXQgaW50ZWdyYWwgYW5kIGZpeGVkIHR5cGVzCiAoaW50NjQsIHVpbnQ2NCwgc2ludDY0LCBmaXhlZDY0LCBzZml4ZWQ2NCkuICBBIGZpZWxkIHdpdGgganN0eXBlIEpTX1NUUklORwogaXMgcmVwcmVzZW50ZWQgYXMgSmF2YVNjcmlwdCBzdHJpbmcsIHdoaWNoIGF2b2lkcyBsb3NzIG9mIHByZWNpc2lvbiB0aGF0CiBjYW4gaGFwcGVuIHdoZW4gYSBsYXJnZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYSBmbG9hdGluZyBwb2ludCBKYXZhU2NyaXB0LgogU3BlY2lmeWluZyBKU19OVU1CRVIgZm9yIHRoZSBqc3R5cGUgY2F1c2VzIHRoZSBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBjb2RlIHRvCiB1c2UgdGhlIEphdmFTY3JpcHQgIm51bWJlciIgdHlwZS4gIFRoZSBiZWhhdmlvciBvZiB0aGUgZGVmYXVsdCBvcHRpb24KIEpTX05PUk1BTCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuCgogVGhpcyBvcHRpb24gaXMgYW4gZW51bSB0byBwZXJtaXQgYWRkaXRpb25hbCB0eXBlcyB0byBiZSBhZGRlZCwgZS5nLgogZ29vZy5tYXRoLkludGVnZXIuCgoNCgUEDAICBBIE9gQCCgoNCgUEDAICBhIE9gQLEQoNCgUEDAICARIE9gQSGAoNCgUEDAICAxIE9gQbHAoNCgUEDAICCBIE9gQdMgoNCgUEDAICBxIE9gQoMQoOCgQEDAQBEgb3BAKABQMKDQoFBAwEAQESBPcEBw0KJwoGBAwEAQIAEgT5BAQSGhcgVXNlIHRoZSBkZWZhdWx0IHR5cGUuCgoPCgcEDAQBAgABEgT5BAQNCg8KBwQMBAECAAISBPkEEBEKKQoGBAwEAQIBEgT8BAQSGhkgVXNlIEphdmFTY3JpcHQgc3RyaW5ncy4KCg8KBwQMBAECAQESBPwEBA0KDwoHBAwEAQIBAhIE/AQQEQopCgYEDAQBAgISBP8EBBIaGSBVc2UgSmF2YVNjcmlwdCBudW1iZXJzLgoKDwoHBAwEAQICARIE/wQEDQoPCgcEDAQBAgICEgT/BBARCv8NCgQEDAIDEgSgBQIrGvANIFNob3VsZCB0aGlzIGZpZWxkIGJlIHBhcnNlZCBsYXppbHk/ICBMYXp5IGFwcGxpZXMgb25seSB0byBtZXNzYWdlLXR5cGUKIGZpZWxkcy4gIEl0IG1lYW5zIHRoYXQgd2hlbiB0aGUgb3V0ZXIgbWVzc2FnZSBpcyBpbml0aWFsbHkgcGFyc2VkLCB0aGUKIGlubmVyIG1lc3NhZ2UncyBjb250ZW50cyB3aWxsIG5vdCBiZSBwYXJzZWQgYnV0IGluc3RlYWQgc3RvcmVkIGluIGVuY29kZWQKIGZvcm0uICBUaGUgaW5uZXIgbWVzc2FnZSB3aWxsIGFjdHVhbGx5IGJlIHBhcnNlZCB3aGVuIGl0IGlzIGZpcnN0IGFjY2Vzc2VkLgoKIFRoaXMgaXMgb25seSBhIGhpbnQuICBJbXBsZW1lbnRhdGlvbnMgYXJlIGZyZWUgdG8gY2hvb3NlIHdoZXRoZXIgdG8gdXNlCiBlYWdlciBvciBsYXp5IHBhcnNpbmcgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgdGhpcyBvcHRpb24uICBIb3dldmVyLAogc2V0dGluZyB0aGlzIG9wdGlvbiB0cnVlIHN1Z2dlc3RzIHRoYXQgdGhlIHByb3RvY29sIGF1dGhvciBiZWxpZXZlcyB0aGF0CiB1c2luZyBsYXp5IHBhcnNpbmcgb24gdGhpcyBmaWVsZCBpcyB3b3J0aCB0aGUgYWRkaXRpb25hbCBib29ra2VlcGluZwogb3ZlcmhlYWQgdHlwaWNhbGx5IG5lZWRlZCB0byBpbXBsZW1lbnQgaXQuCgogVGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0IHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIGFueSBnZW5lcmF0ZWQgY29kZTsKIGFsbCBtZXRob2Qgc2lnbmF0dXJlcyByZW1haW4gdGhlIHNhbWUuICBGdXJ0aGVybW9yZSwgdGhyZWFkLXNhZmV0eSBvZiB0aGUKIGludGVyZmFjZSBpcyBub3QgYWZmZWN0ZWQgYnkgdGhpcyBvcHRpb247IGNvbnN0IG1ldGhvZHMgcmVtYWluIHNhZmUgdG8KIGNhbGwgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGNvbmN1cnJlbnRseSwgd2hpbGUgbm9uLWNvbnN0IG1ldGhvZHMgY29udGludWUKIHRvIHJlcXVpcmUgZXhjbHVzaXZlIGFjY2Vzcy4KCiBOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcyB3aXRoaW4KIGEgbGF6eSBzdWItbWVzc2FnZS4gIFRoYXQgaXMsIGNhbGxpbmcgSXNJbml0aWFsaXplZCgpIG9uIHRoZSBvdXRlciBtZXNzYWdlCiBtYXkgcmV0dXJuIHRydWUgZXZlbiBpZiB0aGUgaW5uZXIgbWVzc2FnZSBoYXMgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMuCiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgaW5uZXIgbWVzc2FnZSB3b3VsZCBoYXZlIHRvIGJlCiBwYXJzZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY2hlY2ssIGRlZmVhdGluZyB0aGUgcHVycG9zZSBvZiBsYXp5CiBwYXJzaW5nLiAgQW4gaW1wbGVtZW50YXRpb24gd2hpY2ggY2hvb3NlcyBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzCiBtdXN0IGJlIGNvbnNpc3RlbnQgYWJvdXQgaXQuICBUaGF0IGlzLCBmb3IgYW55IHBhcnRpY3VsYXIgc3ViLW1lc3NhZ2UsIHRoZQogaW1wbGVtZW50YXRpb24gbXVzdCBlaXRoZXIgKmFsd2F5cyogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgb3IgKm5ldmVyKgogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgbWVzc2FnZSBoYXMKIGJlZW4gcGFyc2VkLgoKIEFzIG9mIE1heSAyMDIyLCBsYXp5IHZlcmlmaWVzIHRoZSBjb250ZW50cyBvZiB0aGUgYnl0ZSBzdHJlYW0gZHVyaW5nCiBwYXJzaW5nLiAgQW4gaW52YWxpZCBieXRlIHN0cmVhbSB3aWxsIGNhdXNlIHRoZSBvdmVyYWxsIHBhcnNpbmcgdG8gZmFpbC4KCg0KBQQMAgMEEgSgBQIKCg0KBQQMAgMFEgSgBQsPCg0KBQQMAgMBEgSgBRAUCg0KBQQMAgMDEgSgBRcYCg0KBQQMAgMIEgSgBRkqCg0KBQQMAgMHEgSgBSQpCq8BCgQEDAIEEgSlBQI3GqABIHVudmVyaWZpZWRfbGF6eSBkb2VzIG5vIGNvcnJlY3RuZXNzIGNoZWNrcyBvbiB0aGUgYnl0ZSBzdHJlYW0uIFRoaXMgc2hvdWxkCiBvbmx5IGJlIHVzZWQgd2hlcmUgbGF6eSB3aXRoIHZlcmlmaWNhdGlvbiBpcyBwcm9oaWJpdGl2ZSBmb3IgcGVyZm9ybWFuY2UKIHJlYXNvbnMuCgoNCgUEDAIEBBIEpQUCCgoNCgUEDAIEBRIEpQULDwoNCgUEDAIEARIEpQUQHwoNCgUEDAIEAxIEpQUiJAoNCgUEDAIECBIEpQUlNgoNCgUEDAIEBxIEpQUwNQroAQoEBAwCBRIEqwUCMRrZASBJcyB0aGlzIGZpZWxkIGRlcHJlY2F0ZWQ/CiBE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Z25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBBECAwQSBNkGAgoKDQoFBBECAwYSBNkGCx4KDQoFBBECAwESBNkGHzMKDQoFBBECAwMSBNkGNjkKWgoDBBEFEgTcBgIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEEQUAEgTcBg0YCg0KBQQRBQABEgTcBg0RCg0KBQQRBQACEgTcBhUYCosDCgIEEhIG5QYA+QYBGvwCIEEgbWVzc2FnZSByZXByZXNlbnRpbmcgYSBvcHRpb24gdGhlIHBhcnNlciBkb2VzIG5vdCByZWNvZ25pemUuIFRoaXMgb25seQogYXBwZWFycyBpbiBvcHRpb25zIHByb3RvcyBjcmVhdGVkIGJ5IHRoZSBjb21waWxlcjo6UGFyc2VyIGNsYXNzLgogRGVzY3JpcHRvclBvb2wgcmVzb2x2ZXMgdGhlc2Ugd2hlbiBidWlsZGluZyBEZXNjcmlwdG9yIG9iamVjdHMuIFRoZXJlZm9yZSwKIG9wdGlvbnMgcHJvdG9zIGluIGRlc2NyaXB0b3Igb2JqZWN0cyAoZS5nLiByZXR1cm5lZCBieSBEZXNjcmlwdG9yOjpvcHRpb25zKCksCiBvciBwcm9kdWNlZCBieSBEZXNjcmlwdG9yOjpDb3B5VG8oKSkgd2lsbCBuZXZlciBoYXZlIFVuaW50ZXJwcmV0ZWRPcHRpb25zCiBpbiB0aGVtLgoKCwoDBBIBEgTlBggbCssCCgQEEgMAEgbrBgLuBgMaugIgVGhlIG5hbWUgb2YgdGhlIHVuaW50ZXJwcmV0ZWQgb3B0aW9uLiAgRWFjaCBzdHJpbmcgcmVwcmVzZW50cyBhIHNlZ21lbnQgaW4KIGEgZG90LXNlcGFyYXRlZCBuYW1lLiAgaXNfZXh0ZW5zaW9uIGlzIHRydWUgaWZmIGEgc2VnbWVudCByZXByZXNlbnRzIGFuCiBleHRlbnNpb24gKGRlbm90ZWQgd2l0aCBwYXJlbnRoZXNlcyBpbiBvcHRpb25zIHNwZWNzIGluIC5wcm90byBmaWxlcykuCiBFLmcuLHsgWyJmb28iLCBmYWxzZV0sIFsiYmFy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aCkgIFsgNCwgMCwgMiwgMCwgMyBdICBUaGUgbnVtYmVyICgxKS4KCiBOb3RlczoKIC0gQSBsb2NhdGlvbiBtYXkgcmVmZXIgdG8gYSByZXBlYXRlZCBmaWVsZCBpdHNlbGYgKGkuZS4gbm90IHRvIGFueQogICBwYXJ0aWN1bGFyIGluZGV4IHdpdGhpbiBpdCkuICBUaGlzIGlzIHVzZWQgd2hlbmV2ZXIgYSBzZXQgb2YgZWxlbWVudHMgYXJlCiAgIGxvZ2ljYWxseSBlbmNsb3NlZCBpbiBhIHNpbmdsZSBjb2RlIHNlZ21lbnQuICBGb3IgZXhhbXBsZSwgYW4gZW50aXJlCiAgIGV4dGVuZCBibG9jayAocG9zc2libHkgY29udGFpbmluZyBtdWx0aXBsZSBleHRlbnNpb24gZGVmaW5pdGlvbnMpIHdpbGwKICAgaGF2ZSBhbiBvdXRlciBsb2NhdGlvbiB3aG9zZSBwYXRoIHJlZmVycyB0byB0aGUgImV4dGVuc2lvbnMiIHJlcGVhdGVkCiAgIGZpZWxkIHdpdGhvdXQgYW4gaW5kZXguCiAtIE11bHRpcGxlIGxvY2F0aW9ucyBtYXkgaGF2ZSB0aGUgc2FtZSBwYXRoLiAgVGhpcyBoYXBwZW5zIHdoZW4gYSBzaW5nbGUKICAgbG9naWNhbCBkZWNsYXJhdGlvbiBpcyBzcHJlYWQgb3V0IGFjcm9zcyBtdWx0aXBsZSBwbGFjZXMuICBUaGUgbW9zdAogICBvYnZpb3VzIGV4YW1wbGUgaXMgdGhlICJleHRlbmQiIGJsb2NrIGFnYWluIC0tIHRoZXJlIG1heSBiZSBtdWx0aXBsZQogICBleHRlbmQgYmxvY2tzIGluIHRoZSBzYW1lIHNjb3BlLCBlYWNoIG9mIHdoaWNoIHdpbGwgaGF2ZSB0aGUgc2FtZSBwYXRoLgogLSBBIGxvY2F0aW9uJ3Mgc3BhbiBpcyBub3QgYWx3YXlzIGEgc3Vic2V0IG9mIGl0cyBwYXJlbnQncyBzcGFuLiAgRm9yCiAgIGV4YW1wbGUsIHRoZSAiZXh0ZW5kZWUiIG9mIGFuIGV4dGVuc2lvbiBkZWNsYXJhdGlvbiBhcHBlYXJzIGF0IHRoZQogICBiZWdpbm5pbmcgb2YgdGhlICJleHRlbmQiIGJsb2NrIGFuZCBpcyBzaGFyZWQgYnkgYWxsIGV4dGVuc2lvbnMgd2l0aGluCiAgIHRoZSBibG9jay4KIC0gSnVzdCBiZWNhdXNlIGEgbG9jYXRpb24ncyBzcGFuIGlzIGEgc3Vic2V0IG9mIHNvbWUgb3RoZXIgbG9jYXRpb24ncyBzcGFuCiAgIGRvZXMgbm90IG1lYW4gdGhhdCBpdCBpcyBhIGRlc2NlbmRhbnQuICBGb3IgZXhhbXBsZSwgYSAiZ3JvdXAiIGRlZmluZXMKICAgYm90aCBhIHR5cGUgYW5kIGEgZmllbGQgaW4gYSBzaW5nbGUgZGVjbGFyYXRpb24uICBUaHVzLCB0aGUgbG9jYXRpb25zCiAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUgYW5kIGZpZWxkIGFuZCB0aGVpciBjb21wb25lbnRzIHdpbGwgb3ZlcmxhcC4KIC0gQ29kZSB3aGljaCB0cmllcyB0byBpbnRlcnByZXQgbG9jYXRpb25zIHNob3VsZCBwcm9iYWJseSBiZSBkZXNpZ25lZCB0bwogICBpZ25vcmUgdGhvc2UgdGhhdCBpdCBkb2Vzbid0IHVuZGVyc3RhbmQsIGFzIG1vcmUgdHlwZXMgb2YgbG9jYXRpb25zIGNvdWxkCiAgIGJlIHJlY29yZGVkIGluIHRoZSBmdXR1cmUuCgoNCgUEFAIABBIE/AcCCgoNCgUEFAIABhIE/AcLEwoNCgUEFAIAARIE/AcUHAoNCgUEFAIAAxIE/AcfIAoOCgQEFAMAEgb9BwLQCAMKDQoFBBQDAAESBP0HChIKiQcKBgQUAwACABIElQgELBr4BiBJZGVudGlmaWVzIHdoaWNoIHBhcnQgb2YgdGhlIEZpbGVEZXNjcmlwdG9yUHJvdG8gd2FzIGRlZmluZWQgYXQgdGhpcwogbG9jYXRpb24uCgogRWFjaCBlbGVtZW50IGlzIGEgZmllbGQgbnVtYmVyIG9yIGFuIGluZGV4LiAgVGhleSBmb3JtIGEgcGF0aCBmcm9tCiB0aGUgcm9vdCBGaWxlRGVzY3JpcHRvclByb3RvIHRvIHRoZSBwbGFjZSB3aGVyZSB0aGUgZGVmaW5pdGlvbiBvY2N1cnMuCiBGb3IgZXhhbXBsZSwgdGhpcyBwYXRoOgogICBbIDQsIDMsIDIsIDcsIDEgXQogcmVmZXJzIHRvOgogICBmaWxlLm1lc3NhZ2VfdHlwZSgzKSAgLy8gNCwgMwogICAgICAgLmZpZWxkKDcpICAgICAgICAgLy8gMiwgNwogICAgICAgLm5hbWUoKSAgICAgICAgICAgLy8gMQogVGhpcyBpcyBiZWNhdXNlIEZpbGVEZXNjcmlwdG9yUHJvdG8ubWVzc2FnZV90eXBlIGhhcyBmaWVsZCBudW1iZXIgNDoKICAgcmVwZWF0ZWQgRGVzY3JpcHRvclByb3RvIG1lc3NhZ2VfdHlwZSA9IDQ7CiBhbmQgRGVzY3JpcHRvclByb3RvLmZpZWxkIGhhcyBmaWVsZCBudW1iZXIgMjoKICAgcmVwZWF0ZWQgRmllbGREZXNjcmlwdG9yUHJvdG8gZmllbGQgPSAyOwogYW5kIEZpZWxkRGVzY3JpcHRvclByb3RvLm5hbWUgaGFzIGZpZWxkIG51bWJlciAxOgogICBvcHRpb25hbCBzdHJpbmcgbmFtZSA9IDE7CgogVGh1cywgdGhlIGFib3ZlIHBhdGggZ2l2ZXMgdGhlIGxvY2F0aW9uIG9mIGEgZmllbGQgbmFtZS4gIElmIHdlIHJlbW92ZWQKIHRoZSBsYXN0IGVsZW1lbnQ6CiAgIFsgNCwgMywgMiwgNyBdCiB0aGlzIHBhdGggcmVmZXJzIHRvIHRoZSB3aG9sZSBmaWVsZCBkZWNsYXJhdGlvbiAoZnJvbSB0aGUgYmVnaW5uaW5nCiBvZiB0aGUgbGFiZWwgdG8gdGhlIHRlcm1pbmF0aW5nIHNlbWljb2xvbikuCgoPCgcEFAMAAgAEEgSVCAQMCg8KBwQUAwACAAUSBJUIDRIKDwoHBBQDAAIAARIElQgTFwoPCgcEFAMAAgADEgSVCBobCg8KBwQUAwACAAgSBJUIHCsKEAoIBBQDAAIACAISBJUIHSoK0gIKBgQUAwACARIEnAgELBrBAiBBbHdheXMgaGFzIGV4YWN0bHkgdGhyZWUgb3IgZm91ciBlbGVtZW50czogc3RhcnQgbGluZSwgc3RhcnQgY29sdW1uLAogZW5kIGxpbmUgKG9wdGlvbmFsLCBvdGhlcndpc2UgYXNzdW1lZCBzYW1lIGFzIHN0YXJ0IGxpbmUpLCBlbmQgY29sdW1uLgogVGhlc2UgYXJlIHBhY2tlZCBpbnRvIGEgc2luZ2xlIGZpZWxkIGZvciBlZmZpY2llbmN5LiAgTm90ZSB0aGF0IGxpbmUKIGFuZCBjb2x1bW4gbnVtYmVycyBhcmUgemVyby1iYXNlZCAtLSB0eXBpY2FsbHkgeW91IHdpbGwgd2FudCB0byBhZGQKIDEgdG8gZWFjaCBiZWZvcmUgZGlzcGxheWluZyB0byBhIHVzZXIuCgoPCgcEFAMAAgEEEgScCAQMCg8KBwQUAwACAQUSBJwIDRIKDwoHBBQDAAIBARIEnAgTFwoPCgcEFAMAAgEDEgScCBobCg8KBwQUAwACAQgSBJwIHCsKEAoIBBQDAAIBCAISBJwIHSoKpQwKBgQUAwACAhIEzQgEKRqUDCBJZiB0aGlzIFNvdXJjZUNvZGVJbmZvIHJlcHJlc2VudHMgYSBjb21wbGV0ZSBkZWNsYXJhdGlvbiwgdGhlc2UgYXJlIGFueQogY29tbWVudHMgYXBwZWFyaW5nIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGRlY2xhcmF0aW9uIHdoaWNoIGFwcGVhciB0byBiZQogYXR0YWNoZWQgdG8gdGhlIGRlY2xhcmF0aW9uLgoKIEEgc2VyaWVzIG9mIGxpbmUgY29tbWVudHMgYXBwZWFyaW5nIG9uIGNvbnNlY3V0aXZlIGxpbmVzLCB3aXRoIG5vIG90aGVyCiB0b2tlbnMgYXBwZWFyaW5nIG9uIHRob3NlIGxpbmVzLCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUgY29tbWVudC4KCiBsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzIHdpbGwga2VlcCBwYXJhZ3JhcGhzIG9mIGNvbW1lbnRzIHRoYXQgYXBwZWFyCiBiZWZvcmUgKGJ1dCBub3QgY29ubmVjdGVkIHRvKSB0aGUgY3VycmVudCBlbGVtZW50LiBFYWNoIHBhcmFncmFwaCwKIHNlcGFyYXRlZCBieSBlbXB0eSBsaW5lcywgd2lsbCBiZSBvbmUgY29tbWVudCBlbGVtZW50IGluIHRoZSByZXBlYXRlZAogZmllbGQuCgogT25seSB0aGUgY29tbWVudCBjb250ZW50IGlzIHByb3ZpZGVkOyBjb21tZW50IG1hcmtlcnMgKGUuZy4gLy8pIGFyZQogc3RyaXBwZWQgb3V0LiAgRm9yIGJsb2NrIGNvbW1lbnRzLCBsZWFkaW5nIHdoaXRlc3BhY2UgYW5kIGFuIGFzdGVyaXNrCiB3aWxsIGJlIHN0cmlwcGVkIGZyb20gdGhlIGJlZ2lubmluZyBvZiBlYWNoIGxpbmUgb3RoZXIgdGhhbiB0aGUgZmlyc3QuCiBOZXdsaW5lcyBhcmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4KCiBFeGFtcGxlczoKCiAgIG9wdGlvbmFsIGludDMyIGZvbyA9IDE7ICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGZvby4KICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXIuCiAgIG9wdGlvbmFsIGludDMyIGJhciA9IDI7CgogICBvcHRpb25hbCBzdHJpbmcgYmF6ID0gMzsKICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXouCiAgIC8vIEFub3RoZXIgbGluZSBhdHRhY2hlZCB0byBiYXouCgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIG1vby4KICAgLy8KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIG1vby4KICAgb3B0aW9uYWwgZG91YmxlIG1vbyA9IDQ7CgogICAvLyBEZXRhY2hlZCBjb21tZW50IGZvciBjb3JnZS4gVGhpcyBpcyBub3QgbGVhZGluZyBvciB0cmFpbGluZyBjb21tZW50cwogICAvLyB0byBtb28gb3IgY29yZ2UgYmVjYXVzZSB0aGVyZSBhcmUgYmxhbmsgbGluZXMgc2VwYXJhdGluZyBpdCBmcm9tCiAgIC8vIGJvdGguCgogICAvLyBEZXRhY2hlZCBjb21tZW50IGZvciBjb3JnZSBwYXJhZ3JhcGggMi4KCiAgIG9wdGlvbmFsIHN0cmluZyBjb3JnZSA9IDU7CiAgIC8qIEJsb2NrIGNvbW1lbnQgYXR0YWNoZWQKICAgICogdG8gY29yZ2UuICBMZWFkaW5nIGFzdGVyaXNrcwogICAgKiB3aWxsIGJlIHJlbW92ZWQuICovCiAgIC8qIEJsb2NrIGNvbW1lbnQgYXR0YWNoZWQgdG8KICAgICogZ3JhdWx0LiAqLwogICBv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GgoWVEVTVF9PUFRJT05fRU5VTV9UWVBFMRAWEiMKFlRFU1RfT1BUSU9OX0VOVU1fVFlQRTIQ6f//////////ASIhCh9EdW1teU1lc3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBlIooBChxDdXN0b21PcHRpb25NaW5JbnRlZ2VyVmFsdWVzOmqZ1qgdAAAAAAAAAICtja8dAAAAgJHurx0AAAAAAAAAAJ31rx0AAAAA+JewHf///////////wGAxLAd/////w/49bAdAICTsh0AsLyyHYCAgICAgICAgAHoxrIdgICAgPj/////AdDesh0AIpEBChxDdXN0b21PcHRpb25NYXhJbnRlZ2VyVmFsdWVzOnGZ1qgd/////////3+tja8d////f5Hurx3//////////531rx3/////+JewHf7//////////wGAxLAd/v///w/49bAd////////////AYCTsh3/////D7C8sh3//////////3/oxrId/////wfQ3rIdASJuChdDdXN0b21PcHRpb25PdGhlclZhbHVlczpTiNmiHen//////////wGy2aIdC0hlbGxvAFdvcmxkqtyiHQ5IZWxsbywgIldvcmxkIuncoh37WYxCysDzP/Xfox3nh0VB6MayHZz//////////wEiNAocU2V0dGluZ1JlYWxzRnJvbVBvc2l0aXZlSW50czoU6dyiHQAAAAAAQGNA9d+jHQAAQEEiNAocU2V0dGluZ1JlYWxzRnJvbU5lZ2F0aXZlSW50czoU6dyiHQAAAAAAQGPA9d+jHQAAQMEiYgoSQ29tcGxleE9wdGlvblR5cGUxEhAKA2ZvbxgBIAEoBVIDZm9vEhIKBGZvbzIYAiABKAVSBGZvbzISEgoEZm9vMxgDIAEoBVIEZm9vMxISCgRmb280GAQgAygFUgRmb280Iq0DChJDb21wbGV4T3B0aW9uVHlwZTISNwoDYmFyGAEgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUxUgNiYXISEAoDYmF6GAIgASgFUgNiYXoSTAoEZnJlZBgDIAEoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTRSBGZyZWQSUAoGYmFybmV5GAQgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNFIGYmFybmV5GqsBChJDb21wbGV4T3B0aW9uVHlwZTQSFAoFd2FsZG8YASABKAVSBXdhbGRvMn8KDGNvbXBsZXhfb3B0NBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiK9dEDIAEoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTRSC2NvbXBsZXhPcHQ0IiYKEkNvbXBsZXhPcHRpb25UeXBlMxIQCgNxdXgYASABKAVSA3F1eCJOChVWYXJpb3VzQ29tcGxleE9wdGlvbnM6NdKojx0DCLMP+t6QHQIICar9kB0WCgMI5wUQ2wcaAwjBAiICCGUiAwjUAaLilR0GCCoiAmNYIlcKCUFnZ3JlZ2F0ZRIMCgFpGAEgASgFUgFpEgwKAXMYAiABKAlSAXMSLgoDc3ViGAMgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgNzdWIiZAoQQWdncmVnYXRlTWVzc2FnZRI0CglmaWVsZG5hbWUYASABKAVCFvKhhzsREg9GaWVsZEFubm90YXRpb25SCWZpZWxkbmFtZToawtGGOxUIZRIRTWVzc2FnZUFubm90YXRpb24ipAEKEE5lc3RlZE9wdGlvblR5cGUaSAoNTmVzdGVkTWVzc2FnZRIvCgxuZXN0ZWRfZmllbGQYASABKAVCDMHgwx3qAwAAAAAAAFILbmVzdGVkRmllbGQ6BuDpwh3pByJGCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASHQoRTkVTVEVEX0VOVU1fVkFMVUUQARoGsIb6BewHGgjF9skd6wMAACpSCgpNZXRob2RPcHQxEhoKFk1FVEhPRE9QVDFfVU5TUEVDSUZJRUQQABITCg9NRVRIT0RPUFQxX1ZBTDEQARITCg9NRVRIT0RPUFQxX1ZBTDIQAipeCg1BZ2dyZWdhdGVFbnVtEg8KC1VOU1BFQ0lGSUVEEAASJQoFVkFMVUUQARoayvyJOxUSE0VudW1WYWx1ZUFubm90YXRpb24aFZKViDsQEg5FbnVtQW5ub3RhdGlvbjKOAQocVGVzdFNlcnZpY2VXaXRoQ3VzdG9tT3B0aW9ucxJjCgNGb28SKS5wcm90b2J1Zl91bml0dGVzdC5DdXN0b21PcHRpb25Gb29SZXF1ZXN0GioucHJvdG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVzcG9uc2UiBeD6jB4CGgmQsose09uAy0kymQEKEEFnZ3JlZ2F0ZVNlcnZpY2USawoGTWV0aG9kEiMucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlTWVzc2FnZRojLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZU1lc3NhZ2UiF8rIljsSEhBNZXRob2RBbm5vdGF0aW9uGhjK+447ExIRU2VydmljZUFubm90YXRpb246PAoJZmlsZV9vcHQxEhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zGI6d2AMgASgEUghmaWxlT3B0MTpFCgxtZXNzYWdlX29wdDESHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYnK3YAyABKAVSC21lc3NhZ2VPcHQxOj8KCmZpZWxkX29wdDESHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGIi82AMgASgGUglmaWVsZE9wdDE6PwoKb25lb2Zfb3B0MRIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnMYz7XYAyABKAVSCW9uZW9mT3B0MTo8CgllbnVtX29wdDESHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnMY6J7ZAyABKA9SCGVudW1PcHQxOksKD2VudW1fdmFsdWVfb3B0MRIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGOagXyABKAVSDWVudW1WYWx1ZU9wdDE6RQoMc2VydmljZV9vcHQxEh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGKK24QMgASgSUgtzZXJ2aWNlT3B0MTphCgttZXRob2Rfb3B0MRIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGKzP4QMgASgOMh0ucHJvdG9idWZfdW5pdHRlc3QuTWV0aG9kT3B0MVIKbWV0aG9kT3B0MTo9Cghib29sX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjqq9YDIAEoCFIHYm9vbE9wdDo/CglpbnQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY7ajWAyABKAVSCGludDMyT3B0Oj8KCWludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjGp9YDIAEoA1IIaW50NjRPcHQ6QQoKdWludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiwotYDIAEoDVIJdWludDMyT3B0OkEKCnVpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY347WAyABKARSCXVpbnQ2NE9wdDpBCgpzaW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMCI1gMgASgRUglzaW50MzJPcHQ6QQoKc2ludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxj/gtYDIAEoElIJc2ludDY0T3B0OkMKC2ZpeGVkMzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNP+1QMgASgHUgpmaXhlZDMyT3B0OkMKC2ZpeGVkNjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOL91QMgASgGUgpmaXhlZDY0T3B0OkUKDHNmaXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjV8dUDIAEoD1ILc2ZpeGVkMzJPcHQ6RQoMc2ZpeGVkNjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOOK1QMgASgQUgtzZml4ZWQ2NE9wdDo/CglmbG9hdF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY/rvUAyABKAJSCGZsb2F0T3B0OkEKCmRvdWJsZV9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYzavUAyABKAFSCWRvdWJsZU9wdDpBCgpzdHJpbmdfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMWr1AMgASgJUglzdHJpbmdPcHQ6PwoJYnl0ZXNfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJar1AMgASgMUghieXRlc09wdDp5CghlbnVtX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiRq9QDIAEoDjI6LnByb3RvYnVmX3VuaXR0ZXN0LkR1bW15TWVzc2FnZUNvbnRhaW5pbmdFbnVtLlRlc3RFbnVtVHlwZVIHZW51bU9wdDqAAQoQbWVzc2FnZV90eXBlX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiv8tMDIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LkR1bW15TWVzc2FnZUludmFsaWRBc09wdGlvblR5cGVSDm1lc3NhZ2VUeXBlT3B0OmwKDGNvbXBsZXhfb3B0MRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxik3NIDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMVILY29tcGxleE9wdDE6bAoMY29tcGxleF9vcHQyEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNWP0gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyUgtjb21wbGV4T3B0MjpsCgxjb21wbGV4X29wdDMSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY74vSAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTNSC2NvbXBsZXhPcHQzOlcKB2ZpbGVvcHQSHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMYz92wByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSB2ZpbGVvcHQ6WAoGbXNnb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJjqsAcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgZtc2dvcHQ6WgoIZmllbGRvcHQSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGJ70sAcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUghmaWVsZG9wdDpXCgdlbnVtb3B0EhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zGNKCsQcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgdlbnVtb3B0OmIKCmVudW12YWxvcHQSIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9ucxjJn7EHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIKZW51bXZhbG9wdDpgCgpzZXJ2aWNlb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGLnvsQcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgpzZXJ2aWNlb3B0Ol0KCW1ldGhvZG9wdBIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGInpsgcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgltZXRob2RvcHRCVaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9z8OjBHeqtwOUk+uyFOyoIZBIORmlsZUFubm90YXRpb24aFhIUTmVzdGVkRmlsZUFubm90YXRpb25KuVEKBxIFKwDnAgEK9hAKAQwSAysAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtMBIEF1dGhvcjogYmVuanlAZ29vZ2xlLmNvbSAoQmVuankgV2VpbmJlcmdlcikKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB1c2VkIHRvIHRlc3QgdGhlICJjdXN0b20gb3B0aW9ucyIgZmVhdHVyZSBvZiBnb29nbGUucHJvdG9idWYuCjLRAiBUaGlzIGZpbGUgaXMgYmFzZWQgb24gdW5pdHRlc3RfY3VzdG9tX29wdGlvbnMucHJvdG8gaW4KIHNyYy9nb29nbGUvcHJvdG9idWYsIGJ1dCBpcyBtb2RpZmllZCBmb3IgcHJvdG8zLiBJdCBjb3VsZAogcG90ZW50aWFsbHkgYmUgbW92ZWQgaW50byBzcmMvZ29vZ2xlL3Byb3RvYnVmLCBidXQgY3VycmVudGx5IEMjCiBpcyB0aGUgb25seSBsYW5ndWFnZSB0aGF0IHJlYWxseSBuZWVkcyBpdCwgYXMgd2UgZG9uJ3Qgc3VwcG9ydAogcHJvdG8yIHN5bnRheC4gSXQncyBjdXQgZG93biBzaWduaWZpY2FudGx5IGFzIHByb3RvMyBvbmx5IHN1cHBvcnRzCiBleHRlbnNpb25zIGZvciBvcHRpb25zLgoKCAoBCBIDLgAgCjUKBQiOndgD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ABIE5AIEFAoPCgcEEgQAAgABEgTkAgQPCg8KBwQSBAACAAISBOQCEhMKDgoGBBIEAAIBEgTlAgQ1Cg8KBwQSBAACAQESBOUCBBUKDwoHBBIEAAIBAhIE5QIYGQoPCgcEEgQAAgEDEgTlAho0ChIKCgQSBAACAQPmoF8SBOUCGzNiBnByb3RvMwqYDwoqY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pbXBvcnRfcHVibGljLnByb3RvEh9wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yIiMKE1B1YmxpY0ltcG9ydE1lc3NhZ2USDAoBZRgBIAEoBVIBZUIkqgIhR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3MuUHJvdG8ySv0NCgYSBCAAKAEK9gwKAQwSAyAAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMiggQXV0aG9yOiBsaXVqaXNpQGdvb2dsZS5jb20gKFBoZXJsIExpdSkKCggKAQISAyIAKAoICgEIEgMkAD4KCQoCCCUSAyQAPgoKCgIEABIEJgAoAQoKCgMEAAESAyYIGwoLCgQEAAIAEgMnAhcKDAoFBAACAAQSAycCCgoMCgUEAAIABRIDJwsQCgwKBQQAAgABEgMnERIKDAoFBAACAAMSAycVFgr5FgojY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pbXBvcnQucHJvdG8SH3Byb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIaKmNzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90byIdCg1JbXBvcnRNZXNzYWdlEgwKAWQYASABKAVSAWQqPAoKSW1wb3J0RW51bRIOCgpJTVBPUlRfRk9PEAcSDgoKSU1QT1JUX0JBUhAIEg4KCklNUE9SVF9CQVoQCSoxChBJbXBvcnRFbnVtRm9yTWFwEgsKB1VOS05PV04QABIHCgNGT08QARIHCgNCQVIQAkIpSAH4AQGqAiFHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvcy5Qcm90bzJKxxQKBhIEJABCAQqYDgoBDBIDJAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyyQEgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHdoaWNoIGlzIGltcG9ydGVkIGJ5IHVuaXR0ZXN0LnByb3RvIHRvIHRlc3QgaW1wb3J0aW5nLgoK9QEKAQISAyoAKBrqASBXZSBkb24ndCBwdXQgdGhpcyBpbiBhIHBhY2thZ2Ugd2l0aGluIHByb3RvMiBiZWNhdXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlCiB0aGF0IHRoZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IGRlcGVuZCBvbiBiZWluZyBpbiB0aGUgcHJvdG8yIG5hbWVzcGFjZS4KIEluIHRlc3RfdXRpbC5oIHdlIGRvCiAidXNpbmcgbmFtZXNwYWNlIHVuaXR0ZXN0X2ltcG9ydCA9IHByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydCIuCgoICgEIEgMsABwKCQoCCAkSAywAHAoICgEIEgMtAB8KCQoCCB8SAy0AHwoICgEIEgMuAD4KCQoCCCUSAy4APgofCgIDABIDMQA7GhQgVGVzdCBwdWJsaWMgaW1wb3J0CgoJCgIKABIDMQcNCgoKAgQAEgQzADUBCgoKAwQAARIDMwgVCgsKBAQAAgASAzQCFwoMCgUEAAIABBIDNAIKCgwKBQQAAgAFEgM0CxAKDAoFBAACAAESAzQREgoMCgUEAAIAAxIDNBUWCgoKAgUAEgQ3ADsBCgoKAwUAARIDNwUPCgsKBAUAAgASAzgCEQoMCgUFAAIAARIDOAIMCgwKBQUAAgACEgM4DxAKCwoEBQACARIDOQIRCgwKBQUAAgEBEgM5AgwKDAoFBQACAQISAzkPEAoLCgQFAAICEgM6AhEKDAoFBQACAgESAzoCDAoMCgUFAAICAhIDOg8QCkgKAgUBEgQ+AEIBGjwgVG8gdXNlIGFuIGVudW0gaW4gYSBtYXAsIGl0IG11c3QgaGFzIHRoZSBmaXJzdCB2YWx1ZSBhcyAwLgoKCgoDBQEBEgM+BRUKCwoEBQECABIDPwIOCgwKBQUBAgABEgM/AgkKDAoFBQECAAISAz8MDQoLCgQFAQIBEgNAAgoKDAoFBQECAQESA0ACBQoMCgUFAQIBAhIDQAgJCgsKBAUBAgISA0ECCgoMCgUFAQICARIDQQIFCgwKBQUBAgICEgNBCAlQAArX0gUKHGNzaGFycC9wcm90b3MvdW5pdHRlc3QucHJvdG8SGHByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMhojY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pbXBvcnQucHJvdG8ikSQKDFRlc3RBbGxUeXBlcxIlCg5vcHRpb25hbF9pbnQzMhgBIAEoBVINb3B0aW9uYWxJbnQzMhIlCg5vcHRpb25hbF9pbnQ2NBgCIAEoA1INb3B0aW9uYWxJbnQ2NBInCg9vcHRpb25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJaCg1vcHRpb25hbGdyb3VwGBAgASgKMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEmwKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USYgoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhZvcHRpb25hbEZvcmVpZ25NZXNzYWdlEmYKF29wdGlvbmFsX2ltcG9ydF9tZXNzYWdlGBQgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUhVvcHRpb25hbEltcG9ydE1lc3NhZ2USYwoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEm9wdGlvbmFsTmVzdGVkRW51bRJZChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SE29wdGlvbmFsRm9yZWlnbkVudW0SXQoUb3B0aW9uYWxfaW1wb3J0X2VudW0YFyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SEm9wdGlvbmFsSW1wb3J0RW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSeQoeb3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlGBogASgLMjQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5QdWJsaWNJbXBvcnRNZXNzYWdlUhtvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2USbAoVb3B0aW9uYWxfbGF6eV9tZXNzYWdlGBsgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVITb3B0aW9uYWxMYXp5TWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJaCg1yZXBlYXRlZGdyb3VwGC4gAygKMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwUg1yZXBlYXRlZGdyb3VwEmwKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USYgoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEmYKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUhVyZXBlYXRlZEltcG9ydE1lc3NhZ2USYwoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJZChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SXQoUcmVwZWF0ZWRfaW1wb3J0X2VudW0YNSADKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SEnJlcGVhdGVkSW1wb3J0RW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSbAoVcmVwZWF0ZWRfbGF6eV9tZXNzYWdlGDkgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVITcmVwZWF0ZWRMYXp5TWVzc2FnZRInCg1kZWZhdWx0X2ludDMyGD0gASgFOgI0MVIMZGVmYXVsdEludDMyEicKDWRlZmF1bHRfaW50NjQYPiABKAM6AjQyUgxkZWZhdWx0SW50NjQSKQoOZGVmYXVsdF91aW50MzIYPyABKA06AjQzUg1kZWZhdWx0VWludDMyEikKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NFINZGVmYXVsdFVpbnQ2NBIqCg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1Ug1kZWZhdWx0U2ludDMyEikKDmRlZmF1bHRfc2ludDY0GEIgASgSOgI0NlINZGVmYXVsdFNpbnQ2NBIrCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3Ug5kZWZhdWx0Rml4ZWQzMhIrCg9kZWZhdWx0X2ZpeGVkNjQYRCABKAY6AjQ4Ug5kZWZhdWx0Rml4ZWQ2NBItChBkZWZhdWx0X3NmaXhlZDMyGEUgASgPOgI0OVIPZGVmYXVsdFNmaXhlZDMyEi4KEGRlZmF1bHRfc2ZpeGVkNjQYRiABKBA6Ay01MFIPZGVmYXVsdFNmaXhlZDY0EikKDWRlZmF1bHRfZmxvYXQYRyABKAI6BDUxLjVSDGRlZmF1bHRGbG9hdBIsCg5kZWZhdWx0X2RvdWJsZRhIIAEoAToFNTIwMDBSDWRlZmF1bHREb3VibGUSJwoMZGVmYXVsdF9ib29sGEkgASgIOgR0cnVlUgtkZWZhdWx0Qm9vbBIsCg5kZWZhdWx0X3N0cmluZxhKIAEoCToFaGVsbG9SDWRlZmF1bHRTdHJpbmcSKgoNZGVmYXVsdF9ieXRlcxhLIAEoDDoFd29ybGRSDGRlZmF1bHRCeXRlcxJmChNkZWZhdWx0X25lc3RlZF9lbnVtGFEgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOgNCQVJSEWRlZmF1bHROZXN0ZWRFbnVtEmQKFGRlZmF1bHRfZm9yZWlnbl9lbnVtGFIgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUlISZGVmYXVsdEZvcmVpZ25FbnVtEmcKE2RlZmF1bHRfaW1wb3J0X2VudW0YUyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW06CklNUE9SVF9CQVJSEWRlZmF1bHRJbXBvcnRFbnVtEjkKFGRlZmF1bHRfc3RyaW5nX3BpZWNlGFQgASgJOgNhYmNCAggCUhJkZWZhdWx0U3RyaW5nUGllY2USKgoMZGVmYXVsdF9jb3JkGFUgASgJOgMxMjNCAggBUgtkZWZhdWx0Q29yZBIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzISaAoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzGh8KDU5lc3RlZE1lc3NhZ2USDgoCYmIYASABKAVSAmJiGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgRIAEoBVIBYRodCg1SZXBlYXRlZEdyb3VwEgwKAWEYLyABKAVSAWEiOQoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCLvAQoSTmVzdGVkVGVzdEFsbFR5cGVzEkIKBWNoaWxkGAEgASgLMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk5lc3RlZFRlc3RBbGxUeXBlc1IFY2hpbGQSQAoHcGF5bG9hZBgCIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSB3BheWxvYWQSUwoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuTmVzdGVkVGVzdEFsbFR5cGVzUg1yZXBlYXRlZENoaWxkIpYBChRUZXN0RGVwcmVjYXRlZEZpZWxkcxItChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYAVIPZGVwcmVjYXRlZEludDMyEj8KGWRlcHJlY2F0ZWRfaW50MzJfaW5fb25lb2YYAiABKAVCAhgBSABSFmRlcHJlY2F0ZWRJbnQzMkluT25lb2ZCDgoMb25lb2ZfZmllbGRzIhsKFVRlc3REZXByZWNhdGVkTWVzc2FnZToCGAEiLAoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYxIMCgFkGAIgASgFUgFkIjAKElRlc3RSZXNlcnZlZEZpZWxkc0oECAIQA0oECA8QEEoECAkQDFIDYmFyUgNiYXoiHQoRVGVzdEFsbEV4dGVuc2lvbnMqCAgBEICAgIACIicKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgwKAWEYESABKAVSAWEiJwoXUmVwZWF0ZWRHcm91cF9leHRlbnNpb24SDAoBYRgvIAEoBVIBYSLeAQoJVGVzdEdyb3VwElcKDW9wdGlvbmFsZ3JvdXAYECABKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEdyb3VwLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASWQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgRIAEoBVIBYSIeChJUZXN0R3JvdXBFeHRlbnNpb24qCAgBEICAgIACIrgEChNUZXN0TmVzdGVkRXh0ZW5zaW9uGicKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgwKAWEYESABKAVSAWEyRgoEdGVzdBIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjqByABKAk6BHRlc3RSBHRlc3QyZAoXbmVzdGVkX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6wcgASgJUhVuZXN0ZWRTdHJpbmdFeHRlbnNpb24yrAEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cEV4dGVuc2lvbhgQIAEoCjJFLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TmVzdGVkRXh0ZW5zaW9uLk9wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uUhZvcHRpb25hbGdyb3VwRXh0ZW5zaW9uMpoBCh9vcHRpb25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cEV4dGVuc2lvbhgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIcb3B0aW9uYWxGb3JlaWduRW51bUV4dGVuc2lvbiKQCAoMVGVzdFJlcXVpcmVkEgwKAWEYASACKAVSAWESFgoGZHVtbXkyGAIgASgFUgZkdW1teTISDAoBYhgDIAIoBVIBYhIWCgZkdW1teTQYBCABKAVSBmR1bW15NBIWCgZkdW1teTUYBSABKAVSBmR1bW15NRIWCgZkdW1teTYYBiABKAVSBmR1bW15NhIWCgZkdW1teTcYByABKAVSBmR1bW15NxIWCgZkdW1teTgYCCABKAVSBmR1bW15OBIWCgZkdW1teTkYCSABKAVSBmR1bW15ORIYCgdkdW1teTEwGAogASgFUgdkdW1teTEwEhgKB2R1bW15MTEYCyABKAVSB2R1bW15MTESGAoHZHVtbXkxMhgMIAEoBVIHZHVtbXkxMhIYCgdkdW1teTEzGA0gASgFUgdkdW1teTEzEhgKB2R1bW15MTQYDiABKAVSB2R1bW15MTQSGAoHZHVtbXkxNRgPIAEoBVIHZHVtbXkxNRIYCgdkdW1teTE2GBAgASgFUgdkdW1teTE2EhgKB2R1bW15MTcYESABKAVSB2R1bW15MTcSGAoHZHVtbXkxOBgSIAEoBVIHZHVtbXkxOBIYCgdkdW1teTE5GBMgASgFUgdkdW1teTE5EhgKB2R1bW15MjAYFCABKAVSB2R1bW15MjASGAoHZHVtbXkyMRgVIAEoBVIHZHVtbXkyMRIYCgdkdW1teTIyGBYgASgFUgdkdW1teTIyEhgKB2R1bW15MjMYFyABKAVSB2R1bW15MjMSGAoHZHVtbXkyNBgYIAEoBVIHZHVtbXkyNBIYCgdkdW1teTI1GBkgASgFUgdkdW1teTI1EhgKB2R1bW15MjYYGiABKAVSB2R1bW15MjYSGAoHZHVtbXkyNxgbIAEoBVIHZHVtbXkyNxIYCgdkdW1teTI4GBwgASgFUgdkdW1teTI4EhgKB2R1bW15MjkYHSABKAVSB2R1bW15MjkSGAoHZHVtbXkzMBgeIAEoBVIHZHVtbXkzMBIYCgdkdW1teTMxGB8gASgFUgdkdW1teTMxEhgKB2R1bW15MzIYICABKAVSB2R1bW15MzISDAoBYxghIAIoBVIBYzJsCgZzaW5nbGUSKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6AcgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIGc2luZ2xlMmoKBW11bHRpEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSBW11bHRpItEBChNUZXN0UmVxdWlyZWRGb3JlaWduElEKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9vcHRpb25hbE1lc3NhZ2USUQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD3JlcGVhdGVkTWVzc2FnZRIUCgVkdW1teRgDIAEoBVIFZHVtbXkijgIKE1Rlc3RSZXF1aXJlZE1lc3NhZ2USUQoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD29wdGlvbmFsTWVzc2FnZRJRChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPcmVwZWF0ZWRNZXNzYWdlElEKEHJlcXVpcmVkX21lc3NhZ2UYAyACKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9yZXF1aXJlZE1lc3NhZ2UicAoRVGVzdEZvcmVpZ25OZXN0ZWQSWwoOZm9yZWlnbl9uZXN0ZWQYASABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSDWZvcmVpZ25OZXN0ZWQiEgoQVGVzdEVtcHR5TWVzc2FnZSIqCh5UZXN0RW1wdHlNZXNzYWdlV2l0aEV4dGVuc2lvbnMqCAgBEICAgIACIjcKG1Rlc3RNdWx0aXBsZUV4dGVuc2lvblJhbmdlcyoECCoQKyoGCK8gEJQhKgoIgIAEEICAgIACIjsKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJlchIMCgFhGAEgASgFUgFhEhEKAmJiGP///38gASgFUgJiYiJiChRUZXN0UmVjdXJzaXZlTWVzc2FnZRI8CgFhGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZWN1cnNpdmVNZXNzYWdlUgFhEgwKAWkYAiABKAVSAWkirwMKFFRlc3RNdXR1YWxSZWN1cnNpb25BEj4KAmJiGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25CUgJiYhJTCghzdWJncm91cBgCIAEoCjI3LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQS5TdWJHcm91cFIIc3ViZ3JvdXAaSgoKU3ViTWVzc2FnZRI8CgFiGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25CUgFiGrUBCghTdWJHcm91cBJaCgtzdWJfbWVzc2FnZRgDIAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQS5TdWJNZXNzYWdlUgpzdWJNZXNzYWdlEk0KD25vdF9pbl90aGlzX3NjYxgEIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSDG5vdEluVGhpc1NjYyJ7ChRUZXN0TXV0dWFsUmVjdXJzaW9uQhI8CgFhGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25BUgFhEiUKDm9wdGlvbmFsX2ludDMyGAIgASgFUg1vcHRpb25hbEludDMyIvIBChFUZXN0SXNJbml0aWFsaXplZBJXCgtzdWJfbWVzc2FnZRgBIAEoCzI2LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlUgpzdWJNZXNzYWdlGoMBCgpTdWJNZXNzYWdlElsKCHN1Ymdyb3VwGAEgASgKMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RJc0luaXRpYWxpemVkLlN1Yk1lc3NhZ2UuU3ViR3JvdXBSCHN1Ymdyb3VwGhgKCFN1Ykdyb3VwEgwKAWkYAiACKAVSAWki1AEKElRlc3REdXBGaWVsZE51bWJlchIMCgFhGAEgASgFUgFhEkIKA2ZvbxgCIAEoCjIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHVwRmllbGROdW1iZXIuRm9vUgNmb28SQgoDYmFyGAMgASgKMjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REdXBGaWVsZE51bWJlci5CYXJSA2JhchoTCgNGb28SDAoBYRgBIAEoBVIBYRoTCgNCYXISDAoBYRgBIAEoBVIBYSJfChBUZXN0RWFnZXJNZXNzYWdlEksKC3N1Yl9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0ICKABSCnN1Yk1lc3NhZ2UiXgoPVGVzdExhenlNZXNzYWdlEksKC3N1Yl9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0ICKAFSCnN1Yk1lc3NhZ2Ui5gIKGFRlc3ROZXN0ZWRNZXNzYWdlSGFzQml0cxJ4ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgBIAEoCzJALnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlGs8BCg1OZXN0ZWRNZXNzYWdlEkAKHG5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfaW50MzIYASADKAVSGm5lc3RlZG1lc3NhZ2VSZXBlYXRlZEludDMyEnwKJW5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfZm9yZWlnbm1lc3NhZ2UYAiADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSI25lc3RlZG1lc3NhZ2VSZXBlYXRlZEZvcmVpZ25tZXNzYWdlItcFChdUZXN0Q2FtZWxDYXNlRmllbGROYW1lcxImCg5QcmltaXRpdmVGaWVsZBgBIAEoBVIOUHJpbWl0aXZlRmllbGQSIAoLU3RyaW5nRmllbGQYAiABKAlSC1N0cmluZ0ZpZWxkEkMKCUVudW1GaWVsZBgDIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIJRW51bUZpZWxkEkwKDE1lc3NhZ2VGaWVsZBgEIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIMTWVzc2FnZUZpZWxkEi4KEFN0cmluZ1BpZWNlRmllbGQYBSABKAlCAggCUhBTdHJpbmdQaWVjZUZpZWxkEiAKCUNvcmRGaWVsZBgGIAEoCUICCAFSCUNvcmRGaWVsZBI2ChZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkGAcgAygFUhZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkEjAKE1JlcGVhdGVkU3RyaW5nRmllbGQYCCADKAlSE1JlcGVhdGVkU3RyaW5nRmllbGQSUwoRUmVwZWF0ZWRFbnVtRmllbGQYCSADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SEVJlcGVhdGVkRW51bUZpZWxkElwKFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhRSZXBlYXRlZE1lc3NhZ2VGaWVsZBI+ChhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQYCyADKAlCAggCUhhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQSMAoRUmVwZWF0ZWRDb3JkRmllbGQYDCADKAlCAggBUhFSZXBlYXRlZENvcmRGaWVsZCKVAgoSVGVzdEZpZWxkT3JkZXJpbmdzEhsKCW15X3N0cmluZxgLIAEoCVIIbXlTdHJpbmcSFQoGbXlfaW50GAEgASgDUgVteUludBIZCghteV9mbG9hdBhlIAEoAlIHbXlGbG9hdBJzChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRjIASABKAsyOi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRovCg1OZXN0ZWRNZXNzYWdlEg4KAm9vGAIgASgDUgJvbxIOCgJiYhgBIAEoBVICYmIqBAgCEAsqBAgMEGUiyAEKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MxEhsKCW15X3N0cmluZxgBIAEoCVIIbXlTdHJpbmcyjwEKE3Rlc3RfZXh0X29yZGVyaW5nczESLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGA0gASgLMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MxUhF0ZXN0RXh0T3JkZXJpbmdzMSKrAwoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczISGwoJbXlfc3RyaW5nGAEgASgJUghteVN0cmluZxrgAQoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczMSGwoJbXlfc3RyaW5nGAEgASgJUghteVN0cmluZzKnAQoTdGVzdF9leHRfb3JkZXJpbmdzMxIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYDiABKAsySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczNSEXRlc3RFeHRPcmRlcmluZ3MzMo8BChN0ZXN0X2V4dF9vcmRlcmluZ3MyEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgMIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMlIRdGVzdEV4dE9yZGVyaW5nczIirwoKGFRlc3RFeHRyZW1lRGVmYXVsdFZhbHVlcxJNCg1lc2NhcGVkX2J5dGVzGAEgASgMOihcMDAwXDAwMVwwMDdcMDEwXDAxNFxuXHJcdFwwMTNcXFwnXCJcMzc2Ugxlc2NhcGVkQnl0ZXMSLQoMbGFyZ2VfdWludDMyGAIgASgNOgo0Mjk0OTY3Mjk1UgtsYXJnZVVpbnQzMhI3CgxsYXJnZV91aW50NjQYAyABKAQ6FDE4NDQ2NzQ0MDczNzA5NTUxNjE1UgtsYXJnZVVpbnQ2NBIsCgtzbWFsbF9pbnQzMhgEIAEoBToLLTIxNDc0ODM2NDdSCnNtYWxsSW50MzISNQoLc21hbGxfaW50NjQYBSABKAM6FC05MjIzMzcyMDM2ODU0Nzc1ODA3UgpzbWFsbEludDY0EjkKEnJlYWxseV9zbWFsbF9pbnQzMhgVIAEoBToLLTIxNDc0ODM2NDhSEHJlYWxseVNtYWxsSW50MzISQgoScmVhbGx5X3NtYWxsX2ludDY0GBYgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwOFIQcmVhbGx5U21hbGxJbnQ2NBIkCgt1dGY4X3N0cmluZxgGIAEoCToD4Yi0Ugp1dGY4U3RyaW5nEiAKCnplcm9fZmxvYXQYByABKAI6ATBSCXplcm9GbG9hdBIeCglvbmVfZmxvYXQYCCABKAI6ATFSCG9uZUZsb2F0EiQKC3NtYWxsX2Zsb2F0GAkgASgCOgMxLjVSCnNtYWxsRmxvYXQSMAoSbmVnYXRpdmVfb25lX2Zsb2F0GAogASgCOgItMVIQbmVnYXRpdmVPbmVGbG9hdBIrCg5uZWdhdGl2ZV9mbG9hdBgLIAEoAjoELTEuNVINbmVnYXRpdmVGbG9hdBImCgtsYXJnZV9mbG9hdBgMIAEoAjoFMmUrMDhSCmxhcmdlRmxvYXQSOAoUc21hbGxfbmVnYXRpdmVfZmxvYXQYDSABKAI6Bi04ZS0yOFISc21hbGxOZWdhdGl2ZUZsb2F0EiIKCmluZl9kb3VibGUYDiABKAE6A2luZlIJaW5mRG91YmxlEioKDm5lZ19pbmZfZG91YmxlGA8gASgBOgQtaW5mUgxuZWdJbmZEb3VibGUSIgoKbmFuX2RvdWJsZRgQIAEoAToDbmFuUgluYW5Eb3VibGUSIAoJaW5mX2Zsb2F0GBEgASgCOgNpbmZSCGluZkZsb2F0EigKDW5lZ19pbmZfZmxvYXQYEiABKAI6BC1pbmZSC25lZ0luZkZsb2F0EiAKCW5hbl9mbG9hdBgTIAEoAjoDbmFuUghuYW5GbG9hdBI4CgxjcHBfdHJpZ3JhcGgYFCABKAk6FT8gPyA/PyA/PyA/Pz8gPz8vID8/LVILY3BwVHJpZ3JhcGgSMAoQc3RyaW5nX3dpdGhfemVybxgXIAEoCToGaGVsAGxvUg5zdHJpbmdXaXRoWmVybxIxCg9ieXRlc193aXRoX3plcm8YGCABKAw6CXdvclwwMDBsZFINYnl0ZXNXaXRoWmVybxI9ChZzdHJpbmdfcGllY2Vfd2l0aF96ZXJvGBkgASgJOgRhYgBjQgIIAlITc3RyaW5nUGllY2VXaXRoWmVybxIuCg5jb3JkX3dpdGhfemVybxgaIAEoCToEMTIAM0ICCAFSDGNvcmRXaXRoWmVybxI5ChJyZXBsYWNlbWVudF9zdHJpbmcYGyABKAk6CiR7dW5rbm93bn1SEXJlcGxhY2VtZW50U3RyaW5nIl4KEVNwYXJzZUVudW1NZXNzYWdlEkkKC3NwYXJzZV9lbnVtGAEgASgOMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RTcGFyc2VFbnVtUgpzcGFyc2VFbnVtIh8KCU9uZVN0cmluZxISCgRkYXRhGAEgASgJUgRkYXRhIiAKCk1vcmVTdHJpbmcSEgoEZGF0YRgBIAMoCVIEZGF0YSIeCghPbmVCeXRlcxISCgRkYXRhGAEgASgMUgRkYXRhIh8KCU1vcmVCeXRlcxISCgRkYXRhGAEgAygMUgRkYXRhIiIKDEludDMyTWVzc2FnZRISCgRkYXRhGAEgASgFUgRkYXRhIiMKDVVpbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoDVIEZGF0YSIiCgxJbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoA1IEZGF0YSIjCg1VaW50NjRNZXNzYWdlEhIKBGRhdGEYASABKARSBGRhdGEiIQoLQm9vbE1lc3NhZ2USEgoEZGF0YRgBIAEoCFIEZGF0YSKNAgoJVGVzdE9uZW9mEhkKB2Zvb19pbnQYASABKAVIAFIGZm9vSW50Eh8KCmZvb19zdHJpbmcYAiABKAlIAFIJZm9vU3RyaW5nEkkKC2Zvb19tZXNzYWdlGAMgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0gAUgpmb29NZXNzYWdlEkoKCGZvb2dyb3VwGAQgASgKMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZi5Gb29Hcm91cEgAUghmb29ncm91cBomCghGb29Hcm91cBIMCgFhGAUgASgFUgFhEgwKAWIYBiABKAlSAWJCBQoDZm9vIqQCChxUZXN0T25lb2ZCYWNrd2FyZHNDb21wYXRpYmxlEhcKB2Zvb19pbnQYASABKAVSBmZvb0ludBIdCgpmb29fc3RyaW5nGAIgASgJUglmb29TdHJpbmcSRwoLZm9vX21lc3NhZ2UYAyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgpmb29NZXNzYWdlElsKCGZvb2dyb3VwGAQgASgKMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUuRm9vR3JvdXBSCGZvb2dyb3VwGiYKCEZvb0dyb3VwEgwKAWEYBSABKAVSAWESDAoBYhgGIAEoCVIBYiKQCAoKVGVzdE9uZW9mMhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxIfCghmb29fY29yZBgDIAEoCUICCAFIAFIHZm9vQ29yZBIuChBmb29fc3RyaW5nX3BpZWNlGAQgASgJQgIIAkgAUg5mb29TdHJpbmdQaWVjZRIdCglmb29fYnl0ZXMYBSABKAxIAFIIZm9vQnl0ZXMSTAoIZm9vX2VudW0YBiABKA4yLy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtSABSB2Zvb0VudW0SVQoLZm9vX21lc3NhZ2UYByABKAsyMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlSABSCmZvb01lc3NhZ2USSwoIZm9vZ3JvdXAYCCABKAoyLS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5Gb29Hcm91cEgAUghmb29ncm91cBJiChBmb29fbGF6eV9tZXNzYWdlGAsgASgLMjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZUICKAFIAFIOZm9vTGF6eU1lc3NhZ2USHAoHYmFyX2ludBgMIAEoBToBNUgBUgZiYXJJbnQSJwoKYmFyX3N0cmluZxgNIAEoCToGU1RSSU5HSAFSCWJhclN0cmluZxIlCghiYXJfY29yZBgOIAEoCToEQ09SREICCAFIAVIHYmFyQ29yZBI2ChBiYXJfc3RyaW5nX3BpZWNlGA8gASgJOgZTUElFQ0VCAggCSAFSDmJhclN0cmluZ1BpZWNlEiQKCWJhcl9ieXRlcxgQIAEoDDoFQllURVNIAVIIYmFyQnl0ZXMSUQoIYmFyX2VudW0YESABKA4yLy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtOgNCQVJIAVIHYmFyRW51bRIXCgdiYXpfaW50GBIgASgFUgZiYXpJbnQSIgoKYmF6X3N0cmluZxgTIAEoCToDQkFaUgliYXpTdHJpbmcaJgoIRm9vR3JvdXASDAoBYRgJIAEoBVIBYRIMCgFiGAogASgJUgFiGkUKDU5lc3RlZE1lc3NhZ2USFwoHcXV4X2ludBgBIAEoA1IGcXV4SW50EhsKCWNvcmdlX2ludBgCIAMoBVIIY29yZ2VJbnQiJwoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQA0IFCgNmb29CBQoDYmFyIu4BChFUZXN0UmVxdWlyZWRPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJcCgtmb29fbWVzc2FnZRgDIAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRPbmVvZi5OZXN0ZWRNZXNzYWdlSABSCmZvb01lc3NhZ2UaOAoNTmVzdGVkTWVzc2FnZRInCg9yZXF1aXJlZF9kb3VibGUYASACKAFSDnJlcXVpcmVkRG91YmxlQgUKA2ZvbyKAAgoPVGVzdFJlcXVpcmVkTWFwEkQKA2ZvbxgBIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRNYXAuRm9vRW50cnlSA2ZvbxpvCghGb29FbnRyeRIQCgNrZXkYASABKAVSA2tleRJNCgV2YWx1ZRgCIAEoCzI3LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRNYXAuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGjYKDU5lc3RlZE1lc3NhZ2USJQoOcmVxdWlyZWRfaW50MzIYASACKAVSDXJlcXVpcmVkSW50MzIi9AQKD1Rlc3RQYWNrZWRUeXBlcxIlCgxwYWNrZWRfaW50MzIYWiADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYWyADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGFwgAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYXSADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhheIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GGQgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhmIAMoCEICEAFSCnBhY2tlZEJvb2wSSgoLcGFja2VkX2VudW0YZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhABUgpwYWNrZWRFbnVtIq4FChFUZXN0VW5wYWNrZWRUeXBlcxIpCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhheIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGQgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZSADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGYgAygIQgIQAFIMdW5wYWNrZWRCb29sEk4KDXVucGFja2VkX2VudW0YZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhAAUgx1bnBhY2tlZEVudW0iIAoUVGVzdFBhY2tlZEV4dGVuc2lvbnMqCAgBEICAgIACIiIKFlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMqCAgBEICAgIACIsgFChVUZXN0RHluYW1pY0V4dGVuc2lvbnMSKgoQc2NhbGFyX2V4dGVuc2lvbhjQDyABKAdSD3NjYWxhckV4dGVuc2lvbhJNCg5lbnVtX2V4dGVuc2lvbhjRDyABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SDWVudW1FeHRlbnNpb24SdgoWZHluYW1pY19lbnVtX2V4dGVuc2lvbhjSDyABKA4yPy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER5bmFtaWNFeHRlbnNpb25zLkR5bmFtaWNFbnVtVHlwZVIUZHluYW1pY0VudW1FeHRlbnNpb24SVgoRbWVzc2FnZV9leHRlbnNpb24Y0w8gASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhBtZXNzYWdlRXh0ZW5zaW9uEn8KGWR5bmFtaWNfbWVzc2FnZV9leHRlbnNpb24Y1A8gASgLMkIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljTWVzc2FnZVR5cGVSF2R5bmFtaWNNZXNzYWdlRXh0ZW5zaW9uEi4KEnJlcGVhdGVkX2V4dGVuc2lvbhjVDyADKAlSEXJlcGVhdGVkRXh0ZW5zaW9uEi4KEHBhY2tlZF9leHRlbnNpb24Y1g8gAygRQgIQAVIPcGFja2VkRXh0ZW5zaW9uGjoKEkR5bmFtaWNNZXNzYWdlVHlwZRIkCg1keW5hbWljX2ZpZWxkGLQQIAEoBVIMZHluYW1pY0ZpZWxkIkcKD0R5bmFtaWNFbnVtVHlwZRIQCgtEWU5BTUlDX0ZPTxCYERIQCgtEWU5BTUlDX0JBUhCZERIQCgtEWU5BTUlDX0JBWhCaESKfAgojVGVzdFJlcGVhdGVkU2NhbGFyRGlmZmVyZW50VGFnU2l6ZXMSKQoQcmVwZWF0ZWRfZml4ZWQzMhgMIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEiUKDnJlcGVhdGVkX2ludDMyGA0gAygFUg1yZXBlYXRlZEludDMyEioKEHJlcGVhdGVkX2ZpeGVkNjQY/g8gAygGUg9yZXBlYXRlZEZpeGVkNjQSJgoOcmVwZWF0ZWRfaW50NjQY/w8gAygDUg1yZXBlYXRlZEludDY0EicKDnJlcGVhdGVkX2Zsb2F0GP7/DyADKAJSDXJlcGVhdGVkRmxvYXQSKQoPcmVwZWF0ZWRfdWludDY0GP//DyADKARSDnJlcGVhdGVkVWludDY0IuMMChBUZXN0UGFyc2luZ01lcmdlElQKEnJlcXVpcmVkX2FsbF90eXBlcxgBIAIoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSEHJlcXVpcmVkQWxsVHlwZXMSVAoSb3B0aW9uYWxfYWxsX3R5cGVzGAIgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IQb3B0aW9uYWxBbGxUeXBlcxJUChJyZXBlYXRlZF9hbGxfdHlwZXMYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhByZXBlYXRlZEFsbFR5cGVzEl4KDW9wdGlvbmFsZ3JvdXAYCiABKAoyOC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEl4KDXJlcGVhdGVkZ3JvdXAYFCADKAoyOC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEdyb3VwUg1yZXBlYXRlZGdyb3VwGq0FChdSZXBlYXRlZEZpZWxkc0dlbmVyYXRvchI+CgZmaWVsZDEYASADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDESPgoGZmllbGQyGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQyEj4KBmZpZWxkMxgDIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMxJhCgZncm91cDEYCiADKAoySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEZpZWxkc0dlbmVyYXRvci5Hcm91cDFSBmdyb3VwMRJhCgZncm91cDIYFCADKAoySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEZpZWxkc0dlbmVyYXRvci5Hcm91cDJSBmdyb3VwMhI7CgRleHQxGOgHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBGV4dDESOwoEZXh0MhjpByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgRleHQyGkgKBkdyb3VwMRI+CgZmaWVsZDEYCyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDEaSAoGR3JvdXAyEj4KBmZpZWxkMRgVIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMRpwCg1PcHRpb25hbEdyb3VwEl8KGG9wdGlvbmFsX2dyb3VwX2FsbF90eXBlcxgLIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSFW9wdGlvbmFsR3JvdXBBbGxUeXBlcxpwCg1SZXBlYXRlZEdyb3VwEl8KGHJlcGVhdGVkX2dyb3VwX2FsbF90eXBlcxgVIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSFXJlcGVhdGVkR3JvdXBBbGxUeXBlcyoJCOgHEICAgIACMnYKDG9wdGlvbmFsX2V4dBIqLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlGOgHIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSC29wdGlvbmFsRXh0MnYKDHJlcGVhdGVkX2V4dBIqLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlGOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSC3JlcGVhdGVkRXh0IkcKG1Rlc3RDb21tZW50SW5qZWN0aW9uTWVzc2FnZRIoCgFhGAEgASgJOhoqLyA8LSBOZWl0aGVyIHNob3VsZCB0aGlzLlIBYSIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIs4BCgxUZXN0SnNvbk5hbWUSHwoLZmllbGRfbmFtZTEYASABKAVSCmZpZWxkTmFtZTESHgoKZmllbGROYW1lMhgCIAEoBVIKZmllbGROYW1lMhIeCgpGaWVsZE5hbWUzGAMgASgFUgpGaWVsZE5hbWUzEiAKDF9maWVsZF9uYW1lNBgEIAEoBVIKRmllbGROYW1lNBIfCgtGSUVMRF9OQU1FNRgFIAEoBVIKRklFTEROQU1FNRIaCgtmaWVsZF9uYW1lNhgGIAEoBVIFQHR5cGUi/wcKFFRlc3RIdWdlRmllbGROdW1iZXJzEikKDm9wdGlvbmFsX2ludDMyGPD4//8BIAEoBVINb3B0aW9uYWxJbnQzMhIdCghmaXhlZF8zMhjx+P//ASABKAVSB2ZpeGVkMzISLQoOcmVwZWF0ZWRfaW50MzIY8vj//wEgAygFQgIQAFINcmVwZWF0ZWRJbnQzMhIpCgxwYWNrZWRfaW50MzIY8/j//wEgAygFQgIQAVILcGFja2VkSW50MzISTgoNb3B0aW9uYWxfZW51bRj0+P//ASABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SDG9wdGlvbmFsRW51bRIrCg9vcHRpb25hbF9zdHJpbmcY9fj//wEgASgJUg5vcHRpb25hbFN0cmluZxIpCg5vcHRpb25hbF9ieXRlcxj2+P//ASABKAxSDW9wdGlvbmFsQnl0ZXMSVwoQb3B0aW9uYWxfbWVzc2FnZRj3+P//ASABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSD29wdGlvbmFsTWVzc2FnZRJmCg1vcHRpb25hbGdyb3VwGPj4//8BIAEoCjI8LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEnMKEXN0cmluZ19zdHJpbmdfbWFwGPr4//8BIAMoCzJDLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycy5TdHJpbmdTdHJpbmdNYXBFbnRyeVIPc3RyaW5nU3RyaW5nTWFwEicKDG9uZW9mX3VpbnQzMhj7+P//ASABKA1IAFILb25lb2ZVaW50MzISXQoUb25lb2ZfdGVzdF9hbGxfdHlwZXMY/Pj//wEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0gAUhFvbmVvZlRlc3RBbGxUeXBlcxInCgxvbmVvZl9zdHJpbmcY/fj//wEgASgJSABSC29uZW9mU3RyaW5nEiUKC29uZW9mX2J5dGVzGP74//8BIAEoDEgAUgpvbmVvZkJ5dGVzGiwKDU9wdGlvbmFsR3JvdXASGwoHZ3JvdXBfYRj5+P//ASABKAVSBmdyb3VwQRpCChRTdHJpbmdTdHJpbmdNYXBFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBKgwI4Kr//wEQ8Pj//wFCDQoLb25lb2ZfZmllbGQi+gEKGFRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRIWCgZmaWVsZDEYASABKAVSBmZpZWxkMRIWCgZmaWVsZDIYAiABKAVSBmZpZWxkMhIWCgZmaWVsZDMYAyABKAVSBmZpZWxkMxIWCgZmaWVsZDQYBCABKAVSBmZpZWxkNBIWCgZmaWVsZDYYBiABKAVSBmZpZWxkNhIWCgZmaWVsZDcYByABKAVSBmZpZWxkNxIWCgZmaWVsZDgYCCABKAVSBmZpZWxkOBIWCgZmaWVsZDkYCSABKAVSBmZpZWxkORIYCgdmaWVsZDEwGAogASgFUgdmaWVsZDEwKgQIBRAGKkAKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05fRk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGKksKFFRlc3RFbnVtV2l0aER1cFZhbHVlEggKBEZPTzEQARIICgRCQVIxEAISBwoDQkFaEAMSCAoERk9PMhABEggKBEJBUjIQAhoCEAEqiQEKDlRlc3RTcGFyc2VFbnVtEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9GEAASDAoIU1BBUlNFX0cQAiqLDwoNVmVyeUxhcmdlRW51bRIWChJFTlVNX0xBQkVMX0RFRkFVTFQQABIQCgxFTlVNX0xBQkVMXzEQARIQCgxFTlVNX0xBQkVMXzIQAhIQCgxFTlVNX0xBQkVMXzMQAxIQCgxFTlVNX0xBQkVMXzQQBBIQCgxFTlVNX0xBQkVMXzUQBRIQCgxFTlVNX0xBQkVMXzYQBhIQCgxFTlVNX0xBQkVMXzcQBxIQCgxFTlVNX0xBQkVMXzgQCBIQCgxFTlVNX0xBQkVMXzkQCRIRCg1FTlVNX0xBQkVMXzEwEAoSEQoNRU5VTV9MQUJFTF8xMRALEhEKDUVOVU1fTEFCRUxfMTIQDBIRCg1FTlVNX0xBQkVMXzEzEA0SEQoNRU5VTV9MQUJFTF8xNBAOEhEKDUVOVU1fTEFCRUxfMTUQDxIRCg1FTlVNX0xBQkVMXzE2EBASEQoNRU5VTV9MQUJFTF8xNxAREhEKDUVOVU1fTEFCRUxfMTgQEhIRCg1FTlVNX0xBQkVMXzE5EBMSEQoNRU5VTV9MQUJFTF8yMBAUEhEKDUVOVU1fTEFCRUxfMjEQFRIRCg1FTlVNX0xBQkVMXzIyEBYSEQoNRU5VTV9MQUJFTF8yMxAXEhEKDUVOVU1fTEFCRUxfMjQQGBIRCg1FTlVNX0xBQkVMXzI1EBkSEQoNRU5VTV9MQUJFTF8yNhAaEhEKDUVOVU1fTEFCRUxfMjcQGxIRCg1FTlVNX0xBQkVMXzI4EBwSEQoNRU5VTV9MQUJFTF8yORAdEhEKDUVOVU1fTEFCRUxfMzAQHhIRCg1FTlVNX0xBQkVMXzMxEB8SEQoNRU5VTV9MQUJFTF8zMhAgEhEKDUVOVU1fTEFCRUxfMzMQIRIRCg1FTlVNX0xBQkVMXzM0ECISEQoNRU5VTV9MQUJFTF8zNRAjEhEKDUVOVU1fTEFCRUxfMzYQJBIRCg1FTlVNX0xBQkVMXzM3ECUSEQoNRU5VTV9MQUJFTF8zOBAmEhEKDUVOVU1fTEFCRUxfMzkQJxIRCg1FTlVNX0xBQkVMXzQwECgSEQoNRU5VTV9MQUJFTF80MRApEhEKDUVOVU1fTEFCRUxfNDIQKhIRCg1FTlVNX0xBQkVMXzQzECsSEQoNRU5VTV9MQUJFTF80NBAsEhEKDUVOVU1fTEFCRUxfNDUQLRIRCg1FTlVNX0xBQkVMXzQ2EC4SEQoNRU5VTV9MQUJFTF80NxAvEhEKDUVOVU1fTEFCRUxfNDgQMBIRCg1FTlVNX0xBQkVMXzQ5EDESEQoNRU5VTV9MQUJFTF81MBAyEhEKDUVOVU1fTEFCRUxfNTEQMxIRCg1FTlVNX0xBQkVMXzUyEDQSEQoNRU5VTV9MQUJFTF81MxA1EhEKDUVOVU1fTEFCRUxfNTQQNhIRCg1FTlVNX0xBQkVMXzU1EDcSEQoNRU5VTV9MQUJFTF81NhA4EhEKDUVOVU1fTEFCRUxfNTcQORIRCg1FTlVNX0xBQkVMXzU4EDoSEQoNRU5VTV9MQUJFTF81ORA7EhEKDUVOVU1fTEFCRUxfNjAQPBIRCg1FTlVNX0xBQkVMXzYxED0SEQoNRU5VTV9MQUJFTF82MhA+EhEKDUVOVU1fTEFCRUxfNjMQPxIRCg1FTlVNX0xBQkVMXzY0EEASEQoNRU5VTV9MQUJFTF82NRBBEhEKDUVOVU1fTEFCRUxfNjYQQhIRCg1FTlVNX0xBQkVMXzY3EEMSEQoNRU5VTV9MQUJFTF82OBBEEhEKDUVOVU1fTEFCRUxfNjkQRRIRCg1FTlVNX0xBQkVMXzcwEEYSEQoNRU5VTV9MQUJFTF83MRBHEhEKDUVOVU1fTEFCRUxfNzIQSBIRCg1FTlVNX0xBQkVMXzczEEkSEQoNRU5VTV9MQUJFTF83NBBKEhEKDUVOVU1fTEFCRUxfNzUQSxIRCg1FTlVNX0xBQkVMXzc2EEwSEQoNRU5VTV9MQUJFTF83NxBNEhEKDUVOVU1fTEFCRUxfNzgQThIRCg1FTlVNX0xBQkVMXzc5EE8SEQoNRU5VTV9MQUJFTF84MBBQEhEKDUVOVU1fTEFCRUxfODEQURIRCg1FTlVNX0xBQkVMXzgyEFISEQoNRU5VTV9MQUJFTF84MxBTEhEKDUVOVU1fTEFCRUxfODQQVBIRCg1FTlVNX0xBQkVMXzg1EFUSEQoNRU5VTV9MQUJFTF84NhBWEhEKDUVOVU1fTEFCRUxfODcQVxIRCg1FTlVNX0xBQkVMXzg4EFgSEQoNRU5VTV9MQUJFTF84ORBZEhEKDUVOVU1fTEFCRUxfOTAQWhIRCg1FTlVNX0xBQkVMXzkxEFsSEQoNRU5VTV9MQUJFTF85MhBcEhEKDUVOVU1fTEFCRUxfOTMQXRIRCg1FTlVNX0xBQkVMXzk0EF4SEQoNRU5VTV9MQUJFTF85NRBfEhEKDUVOVU1fTEFCRUxfOTYQYBIRCg1FTlVNX0xBQkVMXzk3EGESEQoNRU5VTV9MQUJFTF85OBBiEhEKDUVOVU1fTEFCRUxfOTkQYxISCg5FTlVNX0xBQkVMXzEwMBBkMrUBCgtUZXN0U2VydmljZRJSCgNGb28SJC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9vUmVxdWVzdBolLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb29SZXNwb25zZRJSCgNCYXISJC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuQmFyUmVxdWVzdBolLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5CYXJSZXNwb25zZTplChhvcHRpb25hbF9pbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYASABKAVSFm9wdGlvbmFsSW50MzJFeHRlbnNpb246ZQoYb3B0aW9uYWxfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAIgASgDUhZvcHRpb25hbEludDY0RXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYAyABKA1SF29wdGlvbmFsVWludDMyRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3VpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBCABKARSF29wdGlvbmFsVWludDY0RXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBSABKBFSF29wdGlvbmFsU2ludDMyRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBiABKBJSF29wdGlvbmFsU2ludDY0RXh0ZW5zaW9uOmkKGm9wdGlvbmFsX2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAcgASgHUhhvcHRpb25hbEZpeGVkMzJFeHRlbnNpb246aQoab3B0aW9uYWxfZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCCABKAZSGG9wdGlvbmFsRml4ZWQ2NEV4dGVuc2lvbjprChtvcHRpb25hbF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCSABKA9SGW9wdGlvbmFsU2ZpeGVkMzJFeHRlbnNpb246awobb3B0aW9uYWxfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAogASgQUhlvcHRpb25hbFNmaXhlZDY0RXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgLIAEoAlIWb3B0aW9uYWxGbG9hdEV4dGVuc2lvbjpnChlvcHRpb25hbF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAwgASgBUhdvcHRpb25hbERvdWJsZUV4dGVuc2lvbjpjChdvcHRpb25hbF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgNIAEoCFIVb3B0aW9uYWxCb29sRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDiABKAlSF29wdGlvbmFsU3RyaW5nRXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgPIAEoDFIWb3B0aW9uYWxCeXRlc0V4dGVuc2lvbjqXAQoXb3B0aW9uYWxncm91cF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYECABKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuT3B0aW9uYWxHcm91cF9leHRlbnNpb25SFm9wdGlvbmFsZ3JvdXBFeHRlbnNpb246rAEKIW9wdGlvbmFsX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgSIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIeb3B0aW9uYWxOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOqIBCiJvcHRpb25hbF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBMgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUh9vcHRpb25hbEZvcmVpZ25NZXNzYWdlRXh0ZW5zaW9uOqYBCiFvcHRpb25hbF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFCABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSHm9wdGlvbmFsSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqjAQoeb3B0aW9uYWxfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBUgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhtvcHRpb25hbE5lc3RlZEVudW1FeHRlbnNpb246mQEKH29wdGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHG9wdGlvbmFsRm9yZWlnbkVudW1FeHRlbnNpb246nQEKHm9wdGlvbmFsX2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgXIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVIbb3B0aW9uYWxJbXBvcnRFbnVtRXh0ZW5zaW9uOnYKH29wdGlvbmFsX3N0cmluZ19waWVjZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYGCABKAlCAggCUhxvcHRpb25hbFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmMKF29wdGlvbmFsX2NvcmRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBkgASgJUhVvcHRpb25hbENvcmRFeHRlbnNpb246uQEKKG9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYGiABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLlB1YmxpY0ltcG9ydE1lc3NhZ2VSJG9wdGlvbmFsUHVibGljSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqsAQofb3B0aW9uYWxfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgbIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSHG9wdGlvbmFsTGF6eU1lc3NhZ2VFeHRlbnNpb246ZQoYcmVwZWF0ZWRfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGB8gAygFUhZyZXBlYXRlZEludDMyRXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxggIAMoA1IWcmVwZWF0ZWRJbnQ2NEV4dGVuc2lvbjpnChlyZXBlYXRlZF91aW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCEgAygNUhdyZXBlYXRlZFVpbnQzMkV4dGVuc2lvbjpnChlyZXBlYXRlZF91aW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCIgAygEUhdyZXBlYXRlZFVpbnQ2NEV4dGVuc2lvbjpnChlyZXBlYXRlZF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCMgAygRUhdyZXBlYXRlZFNpbnQzMkV4dGVuc2lvbjpnChlyZXBlYXRlZF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCQgAygSUhdyZXBlYXRlZFNpbnQ2NEV4dGVuc2lvbjppChpyZXBlYXRlZF9maXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxglIAMoB1IYcmVwZWF0ZWRGaXhlZDMyRXh0ZW5zaW9uOmkKGnJlcGVhdGVkX2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCYgAygGUhhyZXBlYXRlZEZpeGVkNjRFeHRlbnNpb246awobcmVwZWF0ZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCcgAygPUhlyZXBlYXRlZFNmaXhlZDMyRXh0ZW5zaW9uOmsKG3JlcGVhdGVkX3NmaXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgoIAMoEFIZcmVwZWF0ZWRTZml4ZWQ2NEV4dGVuc2lvbjplChhyZXBlYXRlZF9mbG9hdF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKSADKAJSFnJlcGVhdGVkRmxvYXRFeHRlbnNpb246ZwoZcmVwZWF0ZWRfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgqIAMoAVIXcmVwZWF0ZWREb3VibGVFeHRlbnNpb246YwoXcmVwZWF0ZWRfYm9vbF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKyADKAhSFXJlcGVhdGVkQm9vbEV4dGVuc2lvbjpnChlyZXBlYXRlZF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCwgAygJUhdyZXBlYXRlZFN0cmluZ0V4dGVuc2lvbjplChhyZXBlYXRlZF9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYLSADKAxSFnJlcGVhdGVkQnl0ZXNFeHRlbnNpb246lwEKF3JlcGVhdGVkZ3JvdXBfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGC4gAygKMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlJlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uUhZyZXBlYXRlZGdyb3VwRXh0ZW5zaW9uOqwBCiFyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMCADKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSHnJlcGVhdGVkTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjqiAQoicmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgxIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIfcmVwZWF0ZWRGb3JlaWduTWVzc2FnZUV4dGVuc2lvbjqmAQohcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDIgAygLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUh5yZXBlYXRlZEltcG9ydE1lc3NhZ2VFeHRlbnNpb246owEKHnJlcGVhdGVkX25lc3RlZF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgzIAMoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIbcmVwZWF0ZWROZXN0ZWRFbnVtRXh0ZW5zaW9uOpkBCh9yZXBlYXRlZF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDQgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhxyZXBlYXRlZEZvcmVpZ25FbnVtRXh0ZW5zaW9uOp0BCh5yZXBlYXRlZF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNSADKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SG3JlcGVhdGVkSW1wb3J0RW51bUV4dGVuc2lvbjp2Ch9yZXBlYXRlZF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDYgAygJQgIIAlIccmVwZWF0ZWRTdHJpbmdQaWVjZUV4dGVuc2lvbjpjChdyZXBlYXRlZF9jb3JkX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg3IAMoCVIVcmVwZWF0ZWRDb3JkRXh0ZW5zaW9uOqwBCh9yZXBlYXRlZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDkgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIccmVwZWF0ZWRMYXp5TWVzc2FnZUV4dGVuc2lvbjpnChdkZWZhdWx0X2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg9IAEoBToCNDFSFWRlZmF1bHRJbnQzMkV4dGVuc2lvbjpnChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg+IAEoAzoCNDJSFWRlZmF1bHRJbnQ2NEV4dGVuc2lvbjppChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYPyABKA06AjQzUhZkZWZhdWx0VWludDMyRXh0ZW5zaW9uOmkKGGRlZmF1bHRfdWludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhAIAEoBDoCNDRSFmRlZmF1bHRVaW50NjRFeHRlbnNpb246agoYZGVmYXVsdF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEEgASgROgMtNDVSFmRlZmF1bHRTaW50MzJFeHRlbnNpb246aQoYZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEIgASgSOgI0NlIWZGVmYXVsdFNpbnQ2NEV4dGVuc2lvbjprChlkZWZhdWx0X2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEMgASgHOgI0N1IXZGVmYXVsdEZpeGVkMzJFeHRlbnNpb246awoZZGVmYXVsdF9maXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhEIAEoBjoCNDhSF2RlZmF1bHRGaXhlZDY0RXh0ZW5zaW9uOm0KGmRlZmF1bHRfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEUgASgPOgI0OVIYZGVmYXVsdFNmaXhlZDMyRXh0ZW5zaW9uOm4KGmRlZmF1bHRfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEYgASgQOgMtNTBSGGRlZmF1bHRTZml4ZWQ2NEV4dGVuc2lvbjppChdkZWZhdWx0X2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhHIAEoAjoENTEuNVIVZGVmYXVsdEZsb2F0RXh0ZW5zaW9uOmwKGGRlZmF1bHRfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhIIAEoAToFNTIwMDBSFmRlZmF1bHREb3VibGVFeHRlbnNpb246ZwoWZGVmYXVsdF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhJIAEoCDoEdHJ1ZVIUZGVmYXVsdEJvb2xFeHRlbnNpb246bAoYZGVmYXVsdF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEogASgJOgVoZWxsb1IWZGVmYXVsdFN0cmluZ0V4dGVuc2lvbjpqChdkZWZhdWx0X2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhLIAEoDDoFd29ybGRSFWRlZmF1bHRCeXRlc0V4dGVuc2lvbjqmAQodZGVmYXVsdF9uZXN0ZWRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUlIaZGVmYXVsdE5lc3RlZEVudW1FeHRlbnNpb246pAEKHmRlZmF1bHRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhSIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSG2RlZmF1bHRGb3JlaWduRW51bUV4dGVuc2lvbjqnAQodZGVmYXVsdF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW06CklNUE9SVF9CQVJSGmRlZmF1bHRJbXBvcnRFbnVtRXh0ZW5zaW9uOnkKHmRlZmF1bHRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhUIAEoCToDYWJjQgIIAlIbZGVmYXVsdFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmYKFmRlZmF1bHRfY29yZF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYVSABKAk6AzEyM1IUZGVmYXVsdENvcmRFeHRlbnNpb246YQoWb25lb2ZfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhvIAEoDVIUb25lb2ZVaW50MzJFeHRlbnNpb246pgEKHm9uZW9mX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhwIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIbb25lb2ZOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOmEKFm9uZW9mX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYcSABKAlSFG9uZW9mU3RyaW5nRXh0ZW5zaW9uOl8KFW9uZW9mX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhyIAEoDFITb25lb2ZCeXRlc0V4dGVuc2lvbjpcChNteV9leHRlbnNpb25fc3RyaW5nEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgyIAEoCVIRbXlFeHRlbnNpb25TdHJpbmc6VgoQbXlfZXh0ZW5zaW9uX2ludBIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYBSABKAVSDm15RXh0ZW5zaW9uSW50OmgKFnBhY2tlZF9pbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhABUhRwYWNrZWRJbnQzMkV4dGVuc2lvbjpoChZwYWNrZWRfaW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQAVIUcGFja2VkSW50NjRFeHRlbnNpb246agoXcGFja2VkX3VpbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhABUhVwYWNrZWRVaW50MzJFeHRlbnNpb246agoXcGFja2VkX3VpbnQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhABUhVwYWNrZWRVaW50NjRFeHRlbnNpb246agoXcGFja2VkX3NpbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhABUhVwYWNrZWRTaW50MzJFeHRlbnNpb246agoXcGFja2VkX3NpbnQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhABUhVwYWNrZWRTaW50NjRFeHRlbnNpb246bAoYcGFja2VkX2ZpeGVkMzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAVIWcGFja2VkRml4ZWQzMkV4dGVuc2lvbjpsChhwYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYSADKAZCAhABUhZwYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOm4KGXBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhABUhdwYWNrZWRTZml4ZWQzMkV4dGVuc2lvbjpuChlwYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAVIXcGFja2VkU2ZpeGVkNjRFeHRlbnNpb246aAoWcGFja2VkX2Zsb2F0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEAFSFHBhY2tlZEZsb2F0RXh0ZW5zaW9uOmoKF3BhY2tlZF9kb3VibGVfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQAVIVcGFja2VkRG91YmxlRXh0ZW5zaW9uOmYKFXBhY2tlZF9ib29sX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEAFSE3BhY2tlZEJvb2xFeHRlbnNpb246jQEKFXBhY2tlZF9lbnVtX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEAFSE3BhY2tlZEVudW1FeHRlbnNpb246bgoYdW5wYWNrZWRfaW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhAAUhZ1bnBhY2tlZEludDMyRXh0ZW5zaW9uOm4KGHVucGFja2VkX2ludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQAFIWdW5wYWNrZWRJbnQ2NEV4dGVuc2lvbjpwChl1bnBhY2tlZF91aW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhAAUhd1bnBhY2tlZFVpbnQzMkV4dGVuc2lvbjpwChl1bnBhY2tlZF91aW50NjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhAAUhd1bnBhY2tlZFVpbnQ2NEV4dGVuc2lvbjpwChl1bnBhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhAAUhd1bnBhY2tlZFNpbnQzMkV4dGVuc2lvbjpwChl1bnBhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhAAUhd1bnBhY2tlZFNpbnQ2NEV4dGVuc2lvbjpyChp1bnBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAFIYdW5wYWNrZWRGaXhlZDMyRXh0ZW5zaW9uOnIKGnVucGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYSADKAZCAhAAUhh1bnBhY2tlZEZpeGVkNjRFeHRlbnNpb246dAobdW5wYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhAAUhl1bnBhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uOnQKG3VucGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAFIZdW5wYWNrZWRTZml4ZWQ2NEV4dGVuc2lvbjpuChh1bnBhY2tlZF9mbG9hdF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEABSFnVucGFja2VkRmxvYXRFeHRlbnNpb246cAoZdW5wYWNrZWRfZG91YmxlX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQAFIXdW5wYWNrZWREb3VibGVFeHRlbnNpb246bAoXdW5wYWNrZWRfYm9vbF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEABSFXVucGFja2VkQm9vbEV4dGVuc2lvbjqTAQoXdW5wYWNrZWRfZW51bV9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEABSFXVucGFja2VkRW51bUV4dGVuc2lvbjqAAQoOdGVzdF9hbGxfdHlwZXMSLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEh1Z2VGaWVsZE51bWJlcnMY4Kr//wEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IMdGVzdEFsbFR5cGVzOoQBCiV0ZXN0X2V4dGVuc2lvbl9pbnNpZGVfdGFibGVfZXh0ZW5zaW9uEjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRgFIAEoBVIhdGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlRXh0ZW5zaW9uQjJIAYABAYgBAZABAfgBAaoCIUdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zLlByb3RvMkr6twMKBxIFJgDdCAEKog4KAQwSAyYAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtMBIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3ZSB3aWxsIHVzZSBmb3IgdW5pdCB0ZXN0aW5nLgoKIExJTlQ6IEFMTE9XX0dST1VQUywgTEVHQUNZX05BTUVTCgoICgEIEgMqACIKgAEKAggQEgMqACIaZyBTb21lIGdlbmVyaWNfc2VydmljZXMgb3B0aW9uKHMpIGFkZGVkIGF1dG9tYXRpY2FsbHkuCiBTZWU6ICBodHRwOi8vZ28vcHJvdG8yLWdlbmVyaWMtc2VydmljZXMtZGVmYXVsdAoiDCBhdXRvLWFkZGVkCgoICgEIEgMrACQKFwoCCBESAysAJCIMIGF1dG8tYWRkZWQKCggKAQgSAywAIgoXCgIIEhIDLAAiIgwgYXV0by1hZGRlZAoKCAoBCBIDLQAfCgkKAggfEgMtAB8KCQoCAwASAy8ALQrmAQoBAhIDNAAhGtsBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFtZXNwYWNlLgogSW4gdGVzdF91dGlsLmggd2UgZG8gInVzaW5nIG5hbWVzcGFjZSB1bml0dGVzdCA9IHByb3RvYnVmX3VuaXR0ZXN0Ii4KCggKAQgSAzkAHAriAQoCCAkSAzkAHBrWASBQcm90b3Mgb3B0aW1pemVkIGZvciBTUEVFRCB1c2UgYSBzdHJpY3Qgc3VwZXJzZXQgb2YgdGhlIGdlbmVyYXRlZCBjb2RlCiBvZiBlcXVpdmFsZW50IG9uZXMgb3B0aW1pemVkIGZvciBDT0RFX1NJWkUsIHNvIHdlIHNob3VsZCBvcHRpbWl6ZSBhbGwgb3VyCiB0ZXN0cyBmb3Igc3BlZWQgdW5sZXNzIGV4cGxpY2l0bHkgdGVzdGluZyBjb2RlIHNpemUgb3B0aW1pemF0aW9uLgoKCAoBCBIDOwA+CgkKAgglEgM7AD4KXAoCBAASBT8AuQEBGk8gVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCgoKAwQAARIDPwgUCgwKBAQAAwASBEACRQMKDAoFBAADAAESA0AKFwrjAQoGBAADAAIAEgNEBBoa0wEgVGhlIGZpZWxkIG5hbWUgImIiIGZhaWxzIHRvIGNvbXBpbGUgaW4gcHJvdG8xIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgKIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQgImIiIGluIG9uZSBvZiB0aGUgZ2VuZXJhdGVkIG1ldGhvZHMuICBEb2guCiBUaGlzIGZpbGUgbmVlZHMg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BAwCBAMSBIMDGhsKDAoEBAwCBRIEhAMCHAoNCgUEDAIFBBIEhAMCCgoNCgUEDAIFBRIEhAMLEAoNCgUEDAIFARIEhAMRFwoNCgUEDAIFAxIEhAMaGwoMCgQEDAIGEgSFAwIcCg0KBQQMAgYEEgSFAwIKCg0KBQQMAgYFEgSFAwsQCg0KBQQMAgYBEgSFAxEXCg0KBQQMAgYDEgSFAxobCgwKBAQMAgcSBIYDAhwKDQoFBAwCBwQSBIYDAgoKDQoFBAwCBwUSBIYDCxAKDQoFBAwCBwESBIYDERcKDQoFBAwCBwMSBIYDGhsKDAoEBAwCCBIEhwMCHAoNCgUEDAIIBBIEhwMCCgoNCgUEDAIIBRIEhwMLEAoNCgUEDAIIARIEhwMRFwoNCgUEDAIIAxIEhwMaGwoMCgQEDAIJEgSIAwIeCg0KBQQMAgkEEgSIAwIKCg0KBQQMAgkFEgSIAwsQCg0KBQQMAgkBEgSIAxEYCg0KBQQMAgkDEgSIAxsdCgwKBAQMAgoSBIkDAh4KDQoFBAwCCgQSBIkDAgoKDQoFBAwCCgUSBIkDCxAKDQoFBAwCCgESBIkDERgKDQoFBAwCCgMSBIkDGx0KDAoEBAwCCxIEigMCHgoNCgUEDAILBBIEigMCCgoNCgUEDAILBRIEigMLEAoNCgUEDAILARIEigMRGAoNCgUEDAILAxIEigMbHQoMCgQEDAIMEgSLAwIeCg0KBQQMAgwEEgSLAwIKCg0KBQQMAgwFEgSLAwsQCg0KBQQMAgwBEgSLAxEYCg0KBQQMAgwDEgSLAxsdCgwKBAQMAg0SBIwDAh4KDQoFBAwCDQQSBIwDAgoKDQoFBAwCDQUSBIwDCxAKDQoFBAwCDQESBIwDERgKDQoFBAwCDQMSBIwDGx0KDAoEBAwCDhIEjQMCHgoNCgUEDAIOBBIEjQMCCgoNCgUEDAIOBRIEjQMLEAoNCgUEDAIOARIEjQMRGAoNCgUEDAIOAxIEjQMbHQoMCgQEDAIPEgSOAwIeCg0KBQQMAg8EEgSOAwIKCg0KBQQMAg8FEgSOAwsQCg0KBQQMAg8BEgSOAxEYCg0KBQQMAg8DEgSOAxsdCgwKBAQMAhASBI8DAh4KDQoFBAwCEAQSBI8DAgoKDQoFBAwCEAUSBI8DCxAKDQoFBAwCEAESBI8DERgKDQoFBAwCEAMSBI8DGx0KDAoEBAwCERIEkAMCHgoNCgUEDAIRBBIEkAMCCgoNCgUEDAIRBRIEkAMLEAoNCgUEDAIRARIEkAMRGAoNCgUEDAIRAxIEkAMbHQoMCgQEDAISEgSRAwIeCg0KBQQMAhIEEgSRAwIKCg0KBQQMAhIFEgSRAwsQCg0KBQQMAhIBEgSRAxEYCg0KBQQMAhIDEgSRAxsdCgwKBAQMAhMSBJIDAh4KDQoFBAwCEwQSBJIDAgoKDQoFBAwCEwUSBJIDCxAKDQoFBAwCEwESBJIDERgKDQoFBAwCEwMSBJIDGx0KDAoEBAwCFBIEkwMCHgoNCgUEDAIUBBIEkwMCCgoNCgUEDAIUBRIEkwMLEAoNCgUEDAIUARIEkwMRGAoNCgUEDAIUAxIEkwMbHQoMCgQEDAIVEgSUAwIeCg0KBQQMAhUEEgSUAwIKCg0KBQQMAhUFEgSUAwsQCg0KBQQMAhUBEgSUAxEYCg0KBQQMAhUDEgSUAxsdCgwKBAQMAhYSBJUDAh4KDQoFBAwCFgQSBJUDAgoKDQoFBAwCFgUSBJUDCxAKDQoFBAwCFgESBJUDERgKDQoFBAwCFgMSBJUDGx0KDAoEBAwCFxIElgMCHgoNCgUEDAIXBBIElgMCCgoNCgUEDAIXBRIElgMLEAoNCgUEDAIXARIElgMRGAoNCgUEDAIXAxIElgMbHQoMCgQEDAIYEgSXAwIeCg0KBQQMAhgEEgSXAwIKCg0KBQQMAhgFEgSXAwsQCg0KBQQMAhgBEgSXAxEYCg0KBQQMAhgDEgSXAxsdCgwKBAQMAhkSBJgDAh4KDQoFBAwCGQQSBJgDAgoKDQoFBAwCGQUSBJgDCxAKDQoFBAwCGQESBJgDERgKDQoFBAwCGQMSBJgDGx0KDAoEBAwCGhIEmQMCHgoNCgUEDAIaBBIEmQMCCgoNCgUEDAIaBRIEmQMLEAoNCgUEDAIaARIEmQMRGAoNCgUEDAIaAxIEmQMbHQoMCgQEDAIbEgSaAwIeCg0KBQQMAhsEEgSaAwIKCg0KBQQMAhsFEgSaAwsQCg0KBQQMAhsBEgSaAxEYCg0KBQQMAhsDEgSaAxsdCgwKBAQMAhwSBJsDAh4KDQoFBAwCHAQSBJsDAgoKDQoFBAwCHAUSBJsDCxAKDQoFBAwCHAESBJsDERgKDQoFBAwCHAMSBJsDGx0KDAoEBAwCHRIEnAMCHgoNCgUEDAIdBBIEnAMCCgoNCgUEDAIdBRIEnAMLEAoNCgUEDAIdARIEnAMRGAoNCgUEDAIdAxIEnAMbHQoMCgQEDAIeEgSdAwIeCg0KBQQMAh4EEgSdAwIKCg0KBQQMAh4FEgSdAwsQCg0KBQQMAh4BEgSdAxEYCg0KBQQMAh4DEgSdAxsdCgwKBAQMAh8SBJ4DAh4KDQoFBAwCHwQSBJ4DAgoKDQoFBAwCHwUSBJ4DCxAKDQoFBAwCHwESBJ4DERgKDQoFBAwCHwMSBJ4DGx0KDAoEBAwCIBIEoAMCGAoNCgUEDAIgBBIEoAMCCgoNCgUEDAIgBRIEoAMLEAoNCgUEDAIgARIEoAMREgoNCgUEDAIgAxIEoAMVFwoMCgIEDRIGowMApwMBCgsKAwQNARIEowMIGwoMCgQEDQIAEgSkAwItCg0KBQQNAgAEEgSkAwIKCg0KBQQNAgAGEgSkAwsXCg0KBQQNAgABEgSkAxgoCg0KBQQNAgADEgSkAyssCgwKBAQNAgESBKUDAi0KDQoFBA0CAQQSBKUDAgoKDQoFBA0CAQYSBKUDCxcKDQoFBA0CAQESBKUDGCgKDQoFBA0CAQMSBKUDKywKDAoEBA0CAhIEpgMCGwoNCgUEDQICBBIEpgMCCgoNCgUEDQICBRIEpgMLEAoNCgUEDQICARIEpgMRFgoNCgUEDQICAxIEpgMZGgoMCgIEDhIGqQMArQMBCgsKAwQOARIEqQMIGwoMCgQEDgIAEgSqAwItCg0KBQQOAgAEEgSqAwIKCg0KBQQOAgAGEgSqAwsXCg0KBQQOAgABEgSqAxgoCg0KBQQOAgADEgSqAyssCgwKBAQOAgESBKsDAi0KDQoFBA4CAQQSBKsDAgoKDQoFBA4CAQYSBKsDCxcKDQoFBA4CAQESBKsDGCgKDQoFBA4CAQMSBKsDKywKDAoEBA4CAhIErAMCLQoNCgUEDgICBBIErAMCCgoNCgUEDgICBhIErAMLFwoNCgUEDgICARIErAMYKAoNCgUEDgICAxIErAMrLApNCgIEDxIGsAMAsgMBGj8gVGVzdCB0aGF0IHdlIGNhbiB1c2UgTmVzdGVkTWVzc2FnZSBmcm9tIG91dHNpZGUgVGVzdEFsbFR5cGVzLgoKCwoDBA8BEgSwAwgZCgwKBAQPAgASBLEDAjkKDQoFBA8CAAQSBLEDAgoKDQoFBA8CAAYSBLEDCyUKDQoFBA8CAAESBLEDJjQKDQoFBA8CAAMSBLEDNzgKRQoCBBASBLUDABsaOSBUZXN0RW1wdHlNZXNzYWdlIGlzIHVzZWQgdG8gdGVzdCB1bmtub3duIGZpZWxkIHN1cHBvcnQuCgoLCgMEEAESBLUDCBgKkAEKAgQREga5AwC7AwEagQEgTGlrZSBhYm92ZSwgYnV0IGRlY2xhcmUgYWxsIGZpZWxkIG51bWJlcnMgYXMgcG90ZW50aWFsIGV4dGVuc2lvbnMuICBObwogYWN0dWFsIGV4dGVuc2lvbnMgc2hvdWxkIGV2ZXIgYmUgZGVmaW5lZCBmb3IgdGhpcyB0eXBlLgoKCwoDBBEBEgS5AwgmCgsKAwQRBRIEugMCFgoMCgQEEQUAEgS6Aw0VCg0KBQQRBQABEgS6Aw0OCg0KBQQRBQACEgS6AxIVCgwKAgQSEga9AwDBAwEKCwoDBBIBEgS9AwgjCgsKAwQSBRIEvgMCEAoMCgQEEgUAEgS+Aw0PCg0KBQQSBQABEgS+Aw0PCg0KBQQSBQACEgS+Aw0PCgsKAwQSBRIEvwMCGgoMCgQEEgUBEgS/Aw0ZCg0KBQQSBQEBEgS/Aw0RCg0KBQQSBQECEgS/AxUZCgsKAwQSBRIEwAMCGgoMCgQEEgUCEgTAAw0ZCg0KBQQSBQIBEgTAAw0SCg0KBQQSBQICEgTAAxYZCkgKAgQTEgbEAwDJAwEaOiBUZXN0IHRoYXQgcmVhbGx5IGxhcmdlIHRhZyBudW1iZXJzIGRvbid0IGJyZWFrIGFueXRoaW5nLgoKCwoDBBMBEgTEAwggCn0KBAQTAgASBMcDAhcabyBUaGUgbGFyZ2VzdCBwb3NzaWJsZSB0YWcgbnVtYmVyIGlzIDJeMjggLSAxLCBzaW5jZSB0aGUgd2lyZSBmb3JtYXQgdXNlcwogdGhyZWUgYml0cyB0byBjb21tdW5pY2F0ZSB3aXJlIHR5cGUuCgoNCgUEEwIABBIExwMCCgoNCgUEEwIABRIExwMLEAoNCgUEEwIAARIExwMREgoNCgUEEwIAAxIExwMVFgoMCgQEEwIBEgTIAwIgCg0KBQQTAgEEEgTIAwIKCg0KBQQTAgEFEgTIAwsQCg0KBQQTAgEBEgTIAxETCg0KBQQTAgEDEgTIAxYfCgwKAgQUEgbLAwDOAwEKCwoDBBQBEgTLAwgcCgwKBAQUAgASBMwDAiYKDQoFBBQCAAQSBMwDAgoKDQoFBBQCAAYSBMwDCx8KDQoFBBQCAAESBMwDICEKDQoFBBQCAAMSBMwDJCUKDAoEBBQCARIEzQMCFwoNCgUEFAIBBBIEzQMCCgoNCgUEFAIBBRIEzQMLEAoNCgUEFAIBARIEzQMREgoNCgUEFAIBAxIEzQMVFgoxCgIEFRIG0QMA2gMBGiMgVGVzdCB0aGF0IG11dHVhbCByZWN1cnNpb24gd29ya3MuCgoLCgMEFQESBNEDCBwKDgoEBBUDABIG0gMC1AMDCg0KBQQVAwABEgTSAwoUCg4KBgQVAwACABIE0wMEKAoPCgcEFQMAAgAEEgTTAwQMCg8KBwQVAwACAAYSBNMDDSEKDwoHBBUDAAIAARIE0wMiIwoPCgcEFQMAAgADEgTTAyYnCgwKBAQVAgASBNUDAicKDQoFBBUCAAQSBNUDAgoKDQoFBBUCAAYSBNUDCx8KDQoFBBUCAAESBNUDICIKDQoFBBUCAAMSBNUDJSYKDgoEBBUCARIG1gMC2QMDCg0KBQQVAgEEEgTWAwIKCg0KBQQVAgEFEgTWAwsQCg0KBQQVAgEBEgTWAxEZCg0KBQQVAgEDEgTWAxwdCg4KBAQVAwESBtYDAtkDAwoNCgUEFQMBARIE1gMRGQoNCgUEFQIBBhIE1gMRGQozCgYEFQMBAgASBNcDBCgiIyBOZWVkZWQgYmVjYXVzZSBvZiBidWcgaW4gamF2YXRlc3QKCg8KBwQVAwECAAQSBNcDBAwKDwoHBBUDAQIABhIE1wMNFwoPCgcEFQMBAgABEgTXAxgjCg8KBwQVAwECAAMSBNcDJicKDgoGBBUDAQIBEgTYAwQuCg8KBwQVAwECAQQSBNgDBAwKDwoHBBUDAQIBBhIE2AMNGQoPCgcEFQMBAgEBEgTYAxopCg8KBwQVAwECAQMSBNgDLC0KDAoCBBYSBtwDAN8DAQoLCgMEFgESBNwDCBwKDAoEBBYCABIE3QMCJgoNCgUEFgIABBIE3QMCCgoNCgUEFgIABhIE3QMLHwoNCgUEFgIAARIE3QMgIQoNCgUEFgIAAxIE3QMkJQoMCgQEFgIBEgTeAwIkCg0KBQQWAgEEEgTeAwIKCg0KBQQWAgEFEgTeAwsQCg0KBQQWAgEBEgTeAxEfCg0KBQQWAgEDEgTeAyIjCgwKAgQXEgbhAwDoAwEKCwoDBBcBEgThAwgZCg4KBAQXAwASBuIDAuYDAwoNCgUEFwMAARIE4gMKFAoQCgYEFwMAAgASBuMDBOUDBQoPCgcEFwMAAgAEEgTjAwQMCg8KBwQXAwACAAUSBOMDDRIKDwoHBBcDAAIAARIE4wMTGwoPCgcEFwMAAgADEgTjAx4fChAKBgQXAwADABIG4wME5QMFCg8KBwQXAwADAAESBOMDExsKDwoHBBcDAAIABhIE4wMTGwoQCggEFwMAAwACABIE5AMGGwoRCgkEFwMAAwACAAQSBOQDBg4KEQoJBBcDAAMAAgAFEgTkAw8UChEKCQQXAwADAAIAARIE5AMVFgoRCgkEFwMAAwACAAMSBOQDGRoKDAoEBBcCABIE5wMCJgoNCgUEFwIABBIE5wMCCgoNCgUEFwIABhIE5wMLFQoNCgUEFwIAARIE5wMWIQoNCgUEFwIAAxIE5wMkJQqZAgoCBBgSBu4DAPYDARr9ASBUZXN0IHRoYXQgZ3JvdXBzIGhhdmUgZGlzam9pbnQgZmllbGQgbnVtYmVycyBmcm9tIHRoZWlyIHNpYmxpbmdzIGFuZAogcGFyZW50cy4gIFRoaXMgaXMgTk9UIHBvc3NpYmxlIGluIHByb3RvMTsgb25seSBnb29nbGUucHJvdG9idWYuICBXaGVuCiBhdHRlbXB0aW5nIHRvIGNvbXBpbGUgd2l0aCBwcm90bzEsIHRoaXMgd2lsbCBlbWl0IGFuIGVycm9yOyBzbyB3ZSBvbmx5CiBpbmNsdWRlIGl0IGluIHByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvLgoiCyBOT19QUk9UTzEKCgsKAwQYARIE7gMIGgoZCgQEGAIAEgTvAwIXIgsgTk9fUFJPVE8xCgoNCgUEGAIABBIE7wMCCgoNCgUEGAIABRIE7wMLEAoNCgUEGAIAARIE7wMREgoNCgUEGAIAAxIE7wMVFgoOCgQEGAIBEgbwAwLyAwMKDQoFBBgCAQQSBPADAgoKDQoFBBgCAQUSBPADCxAKDQoFBBgCAQESBPADERQKDQoFBBgCAQMSBPADFxgKDgoEBBgDABIG8AMC8gMDCg0KBQQYAwABEgTwAxEUCg0KBQQYAgEGEgTwAxEUCg4KBgQYAwACABIE8QMEGQoPCgcEGAMAAgAEEgTxAwQMCg8KBwQYAwACAAUSBPEDDRIKDwoHBBgDAAIAARIE8QMTFAoPCgcEGAMAAgADEgTxAxcYCg4KBAQYAgISBvMDAvUDAwoNCgUEGAICBBIE8wMCCgoNCgUEGAICBRIE8wMLEAoNCgUEGAICARIE8wMRFAoNCgUEGAICAxIE8wMXGAoOCgQEGAMBEgbzAwL1AwMKDQoFBBgDAQESBPMDERQKDQoFBBgCAgYSBPMDERQKDgoGBBgDAQIAEgT0AwQZCg8KBwQYAwECAAQSBPQDBAwKDwoHBBgDAQIABRIE9AMNEgoPCgcEGAMBAgABEgT0AxMUCg8KBwQYAwECAAMSBPQDFxgKPAoCBBkSBvkDAPsDARouIEFkZGl0aW9uYWwgbWVzc2FnZXMgZm9yIHRlc3RpbmcgbGF6eSBmaWVsZHMuCgoLCgMEGQESBPkDCBgKDAoEBBkCABIE+gMCNwoNCgUEGQIABBIE+gMCCgoNCgUEGQIABhIE+gMLFwoNCgUEGQIAARIE+gMYIwoNCgUEGQIAAxIE+gMmJwoNCgUEGQIACBIE+gMoNgoOCgYEGQIACAUSBPoDKTUKDAoCBBoSBvwDAP4DAQoLCgMEGgESBPwDCBcKDAoEBBoCABIE/QMCNgoNCgUEGgIABBIE/QMCCgoNCgUEGgIABhIE/QMLFwoNCgUEGgIAARIE/QMYIwoNCgUEGgIAAxIE/QMmJwoNCgUEGgIACBIE/QMoNQoOCgYEGgIACAUSBP0DKTQKKQoCBBsSBoEEAIcEARobIE5lZWRlZCBmb3IgYSBQeXRob24gdGVzdC4KCgsKAwQbARIEgQQIIAoOCgQEGwMAEgaCBAKFBAMKDQoFBBsDAAESBIIEChcKDgoGBBsDAAIAEgSDBAQ0Cg8KBwQbAwACAAQSBIMEBAwKDwoHBBsDAAIABRIEgwQNEgoPCgcEGwMAAgABEgSDBBMvCg8KBwQbAwACAAMSBIMEMjMKDgoGBBsDAAIBEgSEBARGCg8KBwQbAwACAQQSBIQEBAwKDwoHBBsDAAIBBhIEhAQNGwoPCgcEGwMAAgEBEgSEBBxBCg8KBwQbAwACAQMSBIQEREUKDAoEBBsCABIEhgQCNQoNCgUEGwIABBIEhgQCCgoNCgUEGwIABhIEhgQLGAoNCgUEGwIAARIEhgQZMAoNCgUEGwIAAxIEhgQzNApLCgIFARIGigQAkgQBGj0gVGVzdCBhbiBlbnVtIHRoYXQgaGFzIG11bHRpcGxlIHZhbHVlcyB3aXRoIHRoZSBzYW1lIG51bWJlci4KCgsKAwUBARIEigQFGQoLCgMFAQMSBIsEAhwKDAoEBQEDAhIEiwQCHAoMCgQFAQIAEgSNBAILCg0KBQUBAgABEgSNBAIGCg0KBQUBAgACEgSNBAkKCgwKBAUBAgESBI4EAgsKDQoFBQECAQESBI4EAgYKDQoFBQECAQISBI4ECQoKDAoEBQECAhIEjwQCCgoNCgUFAQICARIEjwQCBQoNCgUFAQICAhIEjwQICQoMCgQFAQIDEgSQBAILCg0KBQUBAgMBEgSQBAIGCg0KBQUBAgMCEgSQBAkKCgwKBAUBAgQSBJEEAgsKDQoFBQECBAESBJEEAgYKDQoFBQECBAISBJEECQoKOgoCBQISBpUEAJ0EARosIFRlc3QgYW4gZW51bSB3aXRoIGxhcmdlLCB1bm9yZGVyZWQgdmFsdWVzLgoKCwoDBQIBEgSVBAUTCgwKBAUCAgASBJYEAhEKDQoFBQICAAESBJYEAgoKDQoFBQICAAISBJYEDRAKDAoEBQICARIElwQCEwoNCgUFAgIBARIElwQCCgoNCgUFAgIBAhIElwQNEgoMCgQFAgICEgSYBAIWCg0KBQUCAgIBEgSYBAIKCg0KBQUCAgICEgSYBA0VCgwKBAUCAgMSBJkEAhEKDQoFBQICAwESBJkEAgoKDQoFBQICAwISBJkEDRAKDAoEBQICBBIEmgQCFAoNCgUFAgIEARIEmgQCCgoNCgUFAgIEAhIEmgQNEwoMCgQFAgIFEgSbBAIPCg0KBQUCAgUBEgSbBAIKCg0KBQUCAgUCEgSbBA0OCgwKBAUCAgYSBJwEAg8KDQoFBQICBgESBJwEAgoKDQoFBQICBgISBJwEDQ4KaAoCBBwSBqEEAK8EARpaIFRlc3QgbWVzc2FnZSB3aXRoIENhbWVsQ2FzZSBmaWVsZCBuYW1lcy4gIFRoaXMgdmlvbGF0ZXMgUHJvdG9jb2wgQnVmZmVyCiBzdGFuZGFyZCBzdHlsZS4KCgsKAwQcARIEoQQIHwoMCgQEHAIAEgSiBAIkCg0KBQQcAgAEEgSiBAIKCg0KBQQcAgAFEgSiBAsQCg0KBQQcAgABEgSiBBEfCg0KBQQcAgADEgSiBCIjCgwKBAQcAgESBKMEAiIKDQoFBBwCAQQSBKMEAgoKDQoFBBwCAQUSBKMECxEKDQoFBBwCAQESBKMEEh0KDQoFBBwCAQMSBKMEICEKDAoEBBwCAhIEpAQCJQoNCgUEHAICBBIEpAQCCgoNCgUEHAICBhIEpAQLFgoNCgUEHAICARIEpAQXIAoNCgUEHAICAxIEpAQjJAoMCgQEHAIDEgSlBAIrCg0KBQQcAgMEEgSlBAIKCg0KBQQcAgMGEgSlBAsZCg0KBQQcAgMBEgSlBBomCg0KBQQcAgMDEgSlBCkqCgwKBAQcAgQSBKYEAj4KDQoFBBwCBAQSBKYEAgoKDQoFBBwCBAUSBKYECxEKDQoFBBwCBAESBKYEEiIKDQoFBBwCBAMSBKYEJSYKDQoFBBwCBAgSBKYEJz0KDgoGBBwCBAgBEgSmBCg8CgwKBAQcAgUSBKcEAi8KDQoFBBwCBQQSBKcEAgoKDQoFBBwCBQUSBKcECxEKDQoFBBwCBQESBKcEEhsKDQoFBBwCBQMSBKcEHh8KDQoFBBwCBQgSBKcEIC4KDgoGBBwCBQgBEgSnBCEtCgwKBAQcAgYSBKkEAiwKDQoFBBwCBgQSBKkEAgoKDQoFBBwCBgUSBKkECxAKDQoFBBwCBgESBKkEEScKDQoFBBwCBgMSBKkEKisKDAoEBBwCBxIEqgQCKgoNCgUEHAIHBBIEqgQCCgoNCgUEHAIHBRIEqgQLEQoNCgUEHAIHARIEqgQSJQoNCgUEHAIHAxIEqgQoKQoMCgQEHAIIEgSrBAItCg0KBQQcAggEEgSrBAIKCg0KBQQcAggGEgSrBAsWCg0KBQQcAggBEgSrBBcoCg0KBQQcAggDEgSrBCssCgwKBAQcAgkSBKwEAjQKDQoFBBwCCQQSBKwEAgoKDQoFBBwCCQYSBKwECxkKDQoFBBwCCQESBKwEGi4KDQoFBBwCCQMSBKwEMTMKDAoEBBwCChIErQQCRwoNCgUEHAIKBBIErQQCCgoNCgUEHAIKBRIErQQLEQoNCgUEHAIKARIErQQSKgoNCgUEHAIKAxIErQQtLwoNCgUEHAIKCBIErQQwRgoOCgYEHAIKCAESBK0EMUUKDAoEBBwCCxIErgQCOAoNCgUEHAILBBIErgQCCgoNCgUEHAILBRIErgQLEQoNCgUEHAILARIErgQSIwoNCgUEHAILAxIErgQmKAoNCgUEHAILCBIErgQpNwoOCgYEHAILCAESBK4EKjYKiwEKAgQdEgazBADCBAEafSBXZSBsaXN0IGZpZWxkcyBvdXQgb2Ygb3JkZXIsIHRvIGVuc3VyZSB0aGF0IHdlJ3JlIHVzaW5nIGZpZWxkIG51bWJlciBhbmQgbm90CiBmaWVsZCBpbmRleCB0byBkZXRlcm1pbmUgc2VyaWFsaXphdGlvbiBvcmRlci4KCgsKAwQdARIEswQIGgoMCgQEHQIAEgS0BAIhCg0KBQQdAgAEEgS0BAIKCg0KBQQdAgAFEgS0BAsRCg0KBQQdAgABEgS0BBIbCg0KBQQdAgADEgS0BB4gCgsKAwQdBRIEtQQCFQoMCgQEHQUAEgS1BA0UCg0KBQQdBQABEgS1BA0OCg0KBQQdBQACEgS1BBIUCgwKBAQdAgESBLYEAhwKDQoFBB0CAQQSBLYEAgoKDQoFBB0CAQUSBLYECxAKDQoFBB0CAQESBLYEERcKDQoFBB0CAQMSBLYEGhsKCwoDBB0FEgS3BAIXCgwKBAQdBQESBLcEDRYKDQoFBB0FAQESBLcEDQ8KDQoFBB0FAQISBLcEExYKDAoEBB0CAhIEuAQCIAoNCgUEHQICBBIEuAQCCgoNCgUEHQICBRIEuAQLEAoNCgUEHQICARIEuAQRGQoNCgUEHQICAxIEuAQcHwoOCgQEHQMAEga5BAK/BAMKDQoFBB0DAAESBLkEChcKDgoGBB0DAAIAEgS6BAQaCg8KBwQdAwACAAQSBLoEBAwKDwoHBB0DAAIABRIEugQNEgoPCgcEHQMAAgABEgS6BBMVCg8KBwQdAwACAAMSBLoEGBkK5AEKBgQdAwACARIEvgQEGhrTASBUaGUgZmllbGQgbmFtZSAiYiIgZmFpbHMgdG8gY29tcGlsZSBpbiBwcm90bzEgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aAogYSBsb2NhbCB2YXJpYWJsZSBuYW1lZCAiYiIgaW4gb25lIG9mIHRoZSBnZW5lcmF0ZWQgbWV0aG9kcy4gIERvaC4KIFRoaXMgZmlsZSBuZWVkcyB0byBjb21waWxlIGluIHByb3RvMSB0byB0ZXN0IGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LgoKDwoHBB0DAAIBBBIEvgQEDAoPCgcEHQMAAgEFEgS+BA0SCg8KBwQdAwACAQESBL4EExUKDwoHBB0DAAIBAxIEvgQYGQoMCgQEHQIDEgTBBAI3Cg0KBQQdAgMEEgTBBAIKCg0KBQQdAgMGEgTBBAsYCg0KBQQdAgMBEgTBBBkwCg0KBQQdAgMDEgTBBDM2CgsKAQcSBsQEAMcEAQoKCgIHSxIExQQCKwoLCgMHSwISBMQEBxkKCwoDB0sEEgTFBAIKCgsKAwdLBRIExQQLEQoLCgMHSwESBMUEEiUKCwoDB0sDEgTFBCgqCgoKAgdMEgTGBAImCgsKAwdMAhIExAQHGQoLCgMHTAQSBMYEAgoKCwoDB0wFEgTGBAsQCgsKAwdMARIExgQRIQoLCgMHTAMSBMYEJCUKDAoCBB4SBskEAM4EAQoLCgMEHgESBMkECB8KDQoDBB4GEgbKBALMBAMKDAoEBB4GABIEywQEPgoNCgUEHgYAAhIEygQJGwoNCgUEHgYABBIEywQEDAoNCgUEHgYABhIEywQNJAoNCgUEHgYAARIEywQlOAoNCgUEHgYAAxIEywQ7PQoMCgQEHgIAEgTNBAIgCg0KBQQeAgAEEgTNBAIKCg0KBQQeAgAFEgTNBAsRCg0KBQQeAgABEgTNBBIbCg0KBQQeAgADEgTNBB4fCgwKAgQfEgbQBADbBAEKCwoDBB8BEgTQBAgfCg0KAwQfBhIG0QQC0wQDCgwKBAQfBgASBNIEBD4KDQoFBB8GAAISBNEECRsKDQoFBB8GAAQSBNIEBAwKDQoFBB8GAAYSBNIEDSQKDQoFBB8GAAESBNIEJTgKDQoFBB8GAAMSBNIEOz0KDgoEBB8DABIG1AQC2QQDCg0KBQQfAwABEgTUBAohCg8KBQQfAwAGEgbVBATXBAUKDgoGBB8DAAYAEgTWBAZACg8KBwQfAwAGAAISBNUECx0KDwoHBB8DAAYABBIE1gQGDgoPCgcEHwMABgAGEgTWBA8mCg8KBwQfAwAGAAESBNYEJzoKDwoHBB8DAAYAAxIE1gQ9PwoOCgYEHwMAAgASBNgEBCIKDwoHBB8DAAIABBIE2AQEDAoPCgcEHwMAAgAFEgTYBA0TCg8KBwQfAwACAAESBNgEFB0KDwoHBB8DAAIAAxIE2AQgIQoMCgQEHwIAEgTaBAIgCg0KBQQfAgAEEgTaBAIKCg0KBQQfAgAFEgTaBAsRCg0KBQQfAgABEgTaBBIbCg0KBQQfAgADEgTaBB4fCgwKAgQgEgbdBACLBQEKCwoDBCABEgTdBAggCgwKBAQgAgASBN4EAlAKDQoFBCACAAQSBN4EAgoKDQoFBCACAAUSBN4ECxAKDQoFBCACAAESBN4EER4KDQoFBCACAAMSBN4EISIKDQoFBCACAAgSBN4EI08KDQoFBCACAAcSBN4ELk4KDAoEBCACARIE3wQCOgoNCgUEIAIBBBIE3wQCCgoNCgUEIAIBBRIE3wQLEQoNCgUEIAIBARIE3wQSHgoNCgUEIAIBAxIE3wQhIgoNCgUEIAIBCBIE3wQjOQoNCgUEIAIBBxIE3wQuOAoMCgQEIAICEgTgBAJCCg0KBQQgAgIEEgTgBAIKCg0KBQQgAgIFEgTgBAsRCg0KBQQgAgIBEgTgBBIeCg0KBQQgAgIDEgTgBCEiCg0KBQQgAgIIEgTgBCNBCg0KBQQgAgIHEgTgBC5ACgwKBAQgAgMSBOEEAjkKDQoFBCACAwQSBOEEAgoKDQoFBCACAwUSBOEECxAKDQoFBCACAwESBOEEERwKDQoFBCACAwMSBOEEHyAKDQoFBCACAwgSBOEEITgKDQoFBCACAwcSBOEELDcKDAoEBCACBBIE4gQCQQoNCgUEIAIEBBIE4gQCCgoNCgUEIAIEBRIE4gQLEAoNCgUEIAIEARIE4gQRHAoNCgUEIAIEAxIE4gQfIAoNCgUEIAIECBIE4gQhQAoNCgUEIAIEBxIE4gQsPwoMCgQEIAIFEgTjBAJBCg0KBQQgAgUEEgTjBAIKCg0KBQQgAgUFEgTjBAsQCg0KBQQgAgUBEgTjBBEjCg0KBQQgAgUDEgTjBCYoCg0KBQQgAgUIEgTjBClACg0KBQQgAgUHEgTjBDQ/CgwKBAQgAgYSBOQEAkkKDQoFBCACBgQSBOQEAgoKDQoFBCACBgUSBOQECxAKDQoFBCACBgESBOQEESMKDQoFBCACBgMSBOQEJigKDQoFBCACBggSBOQEKUgKDQoFBCACBgcSBOQENEcK3QEKBAQgAgcSBOkEAj0azgEgVGhlIGRlZmF1bHQgdmFsdWUgaGVyZSBpcyBVVEYtOCBmb3IgIlx1MTIzNCIuICAoV2UgY291bGQgYWxzbyBqdXN0IHR5cGUKIHRoZSBVVEYtOCB0ZXh0IGRpcmVjdGx5IGludG8gdGhpcyB0ZXh0IGZpbGUgcmF0aGVyIHRoYW4gZXNjYXBlIGl0LCBidXQKIGxvdHMgb2YgcGVvcGxlIHVzZSBlZGl0b3JzIHRoYXQgd291bGQgYmUgY29uZnVzZWQgYnkgdGhpcy4pCgoNCgUEIAIHBBIE6QQCCgoNCgUEIAIHBRIE6QQLEQoNCgUEIAIHARIE6QQSHQoNCgUEIAIHAxIE6QQgIQoNCgUEIAIHCBIE6QQiPAoNCgUEIAIHBxIE6QQtOwpBCgQEIAIIEgTsBAIuGjMgVGVzdHMgZm9yIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzLgoKDQoFBCACCAQSBOwEAgoKDQoFBCACCAUSBOwECxAKDQoFBCACCAESBOwEERsKDQoFBCACCAMSBOwEHh8KDQoFBCACCAgSBOwEIC0KDQoFBCACCAcSBOwEKywKDAoEBCACCRIE7QQCLQoNCgUEIAIJBBIE7QQCCgoNCgUEIAIJBRIE7QQLEAoNCgUEIAIJARIE7QQRGgoNCgUEIAIJAxIE7QQdHgoNCgUEIAIJCBIE7QQfLAoNCgUEIAIJBxIE7QQqKwoMCgQEIAIKEgTuBAIxCg0KBQQgAgoEEgTuBAIKCg0KBQQgAgoFEgTuBAsQCg0KBQQgAgoBEgTuBBEcCg0KBQQgAgoDEgTuBB8gCg0KBQQgAgoIEgTuBCEwCg0KBQQgAgoHEgTuBCwvCgwKBAQgAgsSBO8EAjgKDQoFBCACCwQSBO8EAgoKDQoFBCACCwUSBO8ECxAKDQoFBCACCwESBO8EESMKDQoFBCACCwMSBO8EJigKDQoFBCACCwgSBO8EKTcKDQoFBCACCwcSBO8ENDYKDAoEBCACDBIE8AQCNgoNCgUEIAIMBBIE8AQCCgoNCgUEIAIMBRIE8AQLEAoNCgUEIAIMARIE8AQRHwoNCgUEIAIMAxIE8AQiJAoNCgUEIAIMCBIE8AQlNQoNCgUEIAIMBxIE8AQwNAofCgQEIAINEgTyBAIyGhEgVXNpbmcgZXhwb25lbnRzCgoNCgUEIAINBBIE8gQCCgoNCgUEIAINBRIE8gQLEAoNCgUEIAINARIE8gQRHAoNCgUEIAINAxIE8gQfIQoNCgUEIAINCBIE8gQiMQoNCgUEIAINBxIE8gQtMAoMCgQEIAIOEgTzBAI+Cg0KBQQgAg4EEgTzBAIKCg0KBQQgAg4FEgTzBAsQCg0KBQQgAg4BEgTzBBElCg0KBQQgAg4DEgTzBCgqCg0KBQQgAg4IEgTzBCs9Cg0KBQQgAg4HEgTzBDY8CjkKBAQgAg8SBPYEAjIaKyBUZXh0IGZvciBub25maW5pdGUgZmxvYXRpbmctcG9pbnQgdmFsdWVzLgoKDQoFBCACDwQSBPYEAgoKDQoFBCACDwUSBPYECxEKDQoFBCACDwESBPYEEhwKDQoFBCACDwMSBPYEHyEKDQoFBCACDwgSBPYEIjEKDQoFBCACDwcSBPYELTAKDAoEBCACEBIE9wQCNwoNCgUEIAIQBBIE9wQCCgoNCgUEIAIQBRIE9wQLEQoNCgUEIAIQARIE9wQSIAoNCgUEIAIQAxIE9wQjJQoNCgUEIAIQCBIE9wQmNgoNCgUEIAIQBxIE9wQxNQoMCgQEIAIREgT4BAIyCg0KBQQgAhEEEgT4BAIKCg0KBQQgAhEFEgT4BAsRCg0KBQQgAhEBEgT4BBIcCg0KBQQgAhEDEgT4BB8hCg0KBQQgAhEIEgT4BCIxCg0KBQQgAhEHEgT4BC0wCgwKBAQgAhISBPkEAjAKDQoFBCACEgQSBPkEAgoKDQoFBCACEgUSBPkECxAKDQoFBCACEgESBPkEERoKDQoFBCACEgMSBPkEHR8KDQoFBCACEggSBPkEIC8KDQoFBCACEgcSBPkEKy4KDAoEBCACExIE+gQCNQoNCgUEIAITBBIE+gQCCgoNCgUEIAITBRIE+gQLEAoNCgUEIAITARIE+gQRHgoNCgUEIAITAxIE+gQhIwoNCgUEIAITCBIE+gQkNAoNCgUEIAITBxIE+gQvMwoMCgQEIAIUEgT7BAIwCg0KBQQgAhQEEgT7BAIKCg0KBQQgAhQFEgT7BAsQCg0KBQQgAhQBEgT7BBEaCg0KBQQgAhQDEgT7BB0fCg0KBQQgAhQIEgT7BCAvCg0KBQQgAhQHEgT7BCsuCuMBCgQEIAIVEgSCBQJMGtQBIFRlc3RzIGZvciBDKysgdHJpZ3JhcGhzLgogVHJpZ3JhcGhzIHNob3VsZCBiZSBlc2NhcGVkIGluIEMrKyBnZW5lcmF0ZWQgZmlsZXMsIGJ1dCB0aGV5IHNob3VsZCBub3QgYmUKIGVzY2FwZWQgZm9yIG90aGVyIGxhbmd1YWdlcy4KIE5vdGUgdGhhdCBpbiAucHJvdG8gZmlsZSwgIlw/IiBpcyBhIHZhbGlkIHdheSB0byBlc2NhcGUgPyBpbiBzdHJpbmcKIGxpdGVyYWxzLgoKDQoFBCACFQQSBIIFAgoKDQoFBCACFQUSBIIFCxEKDQoFBCACFQESBIIFEh4KDQoFBCACFQMSBIIFISMKDQoFBCACFQgSBIIFJEsKDQoFBCACFQcSBIIFL0oKPwoEBCACFhIEhQUCQBoxIFN0cmluZyBkZWZhdWx0cyBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgJ1wwMDAnCgoNCgUEIAIWBBIEhQUCCgoNCgUEIAIWBRIEhQULEQoNCgUEIAIWARIEhQUSIgoNCgUEIAIWAxIEhQUlJwoNCgUEIAIWCBIEhQUoPwoNCgUEIAIWBxIEhQUzPgoMCgQEIAIXEgSGBQI+Cg0KBQQgAhcEEgSGBQIKCg0KBQQgAhcFEgSGBQsQCg0KBQQgAhcBEgSGBREgCg0KBQQgAhcDEgSGBSMlCg0KBQQgAhcIEgSGBSY9Cg0KBQQgAhcHEgSGBTE8Cg4KBAQgAhgSBocFAogFMgoNCgUEIAIYBBIEhwUCCgoNCgUEIAIYBRIEhwULEQoNCgUEIAIYARIEhwUSKAoNCgUEIAIYAxIEhwUrLQoNCgUEIAIYCBIEiAUGMQoOCgYEIAIYCAESBIgFBxsKDQoFBCACGAcSBIgFJzAKDAoEBCACGRIEiQUCSgoNCgUEIAIZBBIEiQUCCgoNCgUEIAIZBRIEiQULEQoNCgUEIAIZARIEiQUSIAoNCgUEIAIZAxIEiQUjJQoNCgUEIAIZCBIEiQUmSQoOCgYEIAIZCAESBIkFJzMKDQoFBCACGQcSBIkFP0gKDAoEBCACGhIEigUCQwoNCgUEIAIaBBIEigUCCgoNCgUEIAIaBRIEigULEQoNCgUEIAIaARIEigUSJAoNCgUEIAIaAxIEigUnKQoNCgUEIAIaCBIEigUqQgoNCgUEIAIaBxIEigU1QQoMCgIEIRIGjQUAjwUBCgsKAwQhARIEjQUIGQoMCgQEIQIAEgSOBQIqCg0KBQQhAgAEEgSOBQIKCg0KBQQhAgAGEgSOBQsZCg0KBQQhAgABEgSOBRolCg0KBQQhAgADEgSOBSgpCkgKAgQiEgaSBQCUBQEaOiBUZXN0IFN0cmluZyBhbmQgQnl0ZXM6IHN0cmluZyBpcyBmb3IgdmFsaWQgVVRGLTggc3RyaW5ncwoKCwoDBCIBEgSSBQgRCgwKBAQiAgASBJMFAhsKDQoFBCICAAQSBJMFAgoKDQoFBCICAAUSBJMFCxEKDQoFBCICAAESBJMFEhYKDQoFBCICAAMSBJMFGRoKDAoCBCMSBpYFAJgFAQoLCgMEIwESBJYFCBIKDAoEBCMCABIElwUCGwoNCgUEIwIABBIElwUCCgoNCgUEIwIABRIElwULEQoNCgUEIwIAARIElwUSFgoNCgUEIwIAAxIElwUZGgoMCgIEJBIGmgUAnAUBCgsKAwQkARIEmgUIEAoMCgQEJAIAEgSbBQIaCg0KBQQkAgAEEgSbBQIKCg0KBQQkAgAFEgSbBQsQCg0KBQQkAgABEgSbBREVCg0KBQQkAgADEgSbBRgZCgwKAgQlEgaeBQCgBQEKCwoDBCUBEgSeBQgRCgwKBAQlAgASBJ8FAhoKDQoFBCUCAAQSBJ8FAgoKDQoFBCUCAAUSBJ8FCxAKDQoFBCUCAAESBJ8FERUKDQoFBCUCAAMSBJ8FGBkKTgoCBCYSBqMFAKUFARpAIFRlc3QgaW50MzIsIHVpbnQzMiwgaW50NjQsIHVpbnQ2NCwgYW5kIGJvb2wgYXJlIGFsbCBjb21wYXRpYmxlCgoLCgMEJgESBKMFCBQKDAoEBCYCABIEpAUCGgoNCgUEJgIABBIEpAUCCgoNCgUEJgIABRIEpAULEAoNCgUEJgIAARIEpAURFQoNCgUEJgIAAxIEpAUYGQoMCgIEJxIGpwUAqQUBCgsKAwQnARIEpwUIFQoMCgQEJwIAEgSoBQIbCg0KBQQnAgAEEgSoBQIKCg0KBQQnAgAFEgSoBQsRCg0KBQQnAgABEgSoBRIWCg0KBQQnAgADEgSoBRkaCgwKAgQoEgarBQCtBQEKCwoDBCgBEgSrBQgUCgwKBAQoAgASBKwFAhoKDQoFBCgCAAQSBKwFAgoKDQoFBCgCAAUSBKwFCxAKDQoFBCgCAAESBKwFERUKDQoFBCgCAAMSBKwFGBkKDAoCBCkSBq8FALEFAQoLCgMEKQESBK8FCBUKDAoEBCkCABIEsAUCGwoNCgUEKQIABBIEsAUCCgoNCgUEKQIABRIEsAULEQoNCgUEKQIAARIEsAUSFgoNCgUEKQIAAxIEsAUZGgoMCgIEKhIGswUAtQUBCgsKAwQqARIEswUIEwoMCgQEKgIAEgS0BQIZCg0KBQQqAgAEEgS0BQIKCg0KBQQqAgAFEgS0BQsPCg0KBQQqAgABEgS0BRAUCg0KBQQqAgADEgS0BRcYChwKAgQrEga4BQDCBQEaDiBUZXN0IG9uZW9mcy4KCgsKAwQrARIEuAUIEQoOCgQEKwgAEga5BQLBBQMKDQoFBCsIAAESBLkFCAsKDAoEBCsCABIEugUEFgoNCgUEKwIABRIEugUECQoNCgUEKwIAARIEugUKEQoNCgUEKwIAAxIEugUUFQoMCgQEKwIBEgS7BQQaCg0KBQQrAgEFEgS7BQQKCg0KBQQrAgEBEgS7BQsVCg0KBQQrAgEDEgS7BRgZCgwKBAQrAgISBLwFBCEKDQoFBCsCAgYSBLwFBBAKDQoFBCsCAgESBLwFERwKDQoFBCsCAgMSBLwFHyAKDgoEBCsCAxIGvQUEwAUFCg0KBQQrAgMFEgS9BQQJCg0KBQQrAgMBEgS9BQoSCg0KBQQrAgMDEgS9BRUWCg4KBAQrAwASBr0FBMAFBQoNCgUEKwMAARIEvQUKEgoNCgUEKwIDBhIEvQUKEgoOCgYEKwMAAgASBL4FBhsKDwoHBCsDAAIABBIEvgUGDgoPCgcEKwMAAgAFEgS+BQ8UCg8KBwQrAwACAAESBL4FFRYKDwoHBCsDAAIAAxIEvgUZGgoOCgYEKwMAAgESBL8FBhwKDwoHBCsDAAIBBBIEvwUGDgoPCgcEKwMAAgEFEgS/BQ8VCg8KBwQrAwACAQESBL8FFhcKDwoHBCsDAAIBAxIEvwUaGwoMCgIELBIGxAUAzAUBCgsKAwQsARIExAUIJAoMCgQELAIAEgTFBQIdCg0KBQQsAgAEEgTFBQIKCg0KBQQsAgAFEgTFBQsQCg0KBQQsAgABEgTFBREYCg0KBQQsAgADEgTFBRscCgwKBAQsAgESBMYFAiEKDQoFBCwCAQQSBMYFAgoKDQoFBCwCAQUSBMYFCxEKDQoFBCwCAQESBMYFEhwKDQoFBCwCAQMSBMYFHyAKDAoEBCwCAhIExwUCKAoNCgUELAICBBIExwUCCgoNCgUELAICBhIExwULFwoNCgUELAICARIExwUYIwoNCgUELAICAxIExwUmJwoOCgQELAIDEgbIBQLLBQMKDQoFBCwCAwQSBMgFAgoKDQoFBCwCAwUSBMgFCxAKDQoFBCwCAwESBMgFERkKDQoFBCwCAwMSBMgFHB0KDgoEBCwDABIGyAUCywUDCg0KBQQsAwABEgTIBREZCg0KBQQsAgMGEgTIBREZCg4KBgQsAwACABIEyQUEGQoPCgcELAMAAgAEEgTJBQQMCg8KBwQsAwACAAUSBMkFDRIKDwoHBCwDAAIAARIEyQUTFAoPCgcELAMAAgADEgTJBRcYCg4KBgQsAwACARIEygUEGgoPCgcELAMAAgEEEgTKBQQMCg8KBwQsAwACAQUSBMoFDRMKDwoHBCwDAAIBARIEygUUFQoPCgcELAMAAgEDEgTKBRgZCgwKAgQtEgbOBQD0BQEKCwoDBC0BEgTOBQgSCg4KBAQtCAASBs8FAtwFAwoNCgUELQgAARIEzwUICwoMCgQELQIAEgTQBQQWCg0KBQQtAgAFEgTQBQQJCg0KBQQtAgABEgTQBQoRCg0KBQQtAgADEgTQBRQVCgwKBAQtAgESBNEFBBoKDQoFBC0CAQUSBNEFBAoKDQoFBC0CAQESBNEFCxUKDQoFBC0CAQMSBNEFGBkKDAoEBC0CAhIE0gUEJwoNCgUELQICBRIE0gUECgoNCgUELQICARIE0gULEwoNCgUELQICAxIE0gUWFwoNCgUELQICCBIE0gUYJgoOCgYELQICCAESBNIFGSUKDAoEBC0CAxIE0wUENwoNCgUELQIDBRIE0wUECgoNCgUELQIDARIE0wULGwoNCgUELQIDAxIE0wUeHwoNCgUELQIDCBIE0wUgNgoOCgYELQIDCAESBNMFITUKDAoEBC0CBBIE1AUEGAoNCgUELQIEBRIE1AUECQoNCgUELQIEARIE1AUKEwoNCgUELQIEAxIE1AUWFwoMCgQELQIFEgTVBQQcCg0KBQQtAgUGEgTVBQQOCg0KBQQtAgUBEgTVBQ8XCg0KBQQtAgUDEgTVBRobCgwKBAQtAgYSBNYFBCIKDQoFBC0CBgYSBNYFBBEKDQoFBC0CBgESBNYFEh0KDQoFBC0CBgMSBNYFICEKDgoEBC0CBxIG1wUE2gUFCg0KBQQtAgcFEgTXBQQJCg0KBQQtAgcBEgTXBQoSCg0KBQQtAgcDEgTXBRUWCg4KBAQtAwASBtcFBNoFBQoNCgUELQMAARIE1wUKEgoNCgUELQIHBhIE1wUKEgoOCgYELQMAAgASBNgFBhsKDwoHBC0DAAIABBIE2AUGDgoPCgcELQMAAgAFEgTYBQ8UCg8KBwQtAwACAAESBNgFFRYKDwoHBC0DAAIAAxIE2AUZGgoOCgYELQMAAgESBNkFBh0KDwoHBC0DAAIBBBIE2QUGDgoPCgcELQMAAgEFEgTZBQ8VCg8KBwQtAwACAQESBNkFFhcKDwoHBC0DAAIBAxIE2QUaHAoMCgQELQIIEgTbBQQ2Cg0KBQQtAggGEgTbBQQRCg0KBQQtAggBEgTbBRIiCg0KBQQtAggDEgTbBSUnCg0KBQQtAggIEgTbBSg1Cg4KBgQtAggIBRIE2wUpNAoOCgQELQgBEgbeBQLlBQMKDQoFBC0IAQESBN4FCAsKDAoEBC0CCRIE3wUEJQoNCgUELQIJBRIE3wUECQoNCgUELQIJARIE3wUKEQoNCgUELQIJAxIE3wUUFgoNCgUELQIJCBIE3wUXJAoNCgUELQIJBxIE3wUiIwoMCgQELQIKEgTgBQQwCg0KBQQtAgoFEgTgBQQKCg0KBQQtAgoBEgTgBQsVCg0KBQQtAgoDEgTgBRgaCg0KBQQtAgoIEgTgBRsvCg0KBQQtAgoHEgTgBSYuCgwKBAQtAgsSBOEFBDoKDQoFBC0CCwUSBOEFBAoKDQoFBC0CCwESBOEFCxMKDQoFBC0CCwMSBOEFFhgKDQoFBC0CCwgSBOEFGTkKDgoGBC0CCwgBEgThBRomCg0KBQQtAgsHEgThBTI4CgwKBAQtAgwSBOIFBEwKDQoFBC0CDAUSBOIFBAoKDQoFBC0CDAESBOIFCxsKDQoFBC0CDAMSBOIFHiAKDQoFBC0CDAgSBOIFIUsKDgoGBC0CDAgBEgTiBSI2Cg0KBQQtAgwHEgTiBUJKCgwKBAQtAg0SBOMFBC0KDQoFBC0CDQUSBOMFBAkKDQoFBC0CDQESBOMFChMKDQoFBC0CDQMSBOMFFhgKDQoFBC0CDQgSBOMFGSwKDQoFBC0CDQcSBOMFJCsKDAoEBC0CDhIE5AUELQoNCgUELQIOBhIE5AUEDgoNCgUELQIOARIE5AUPFwoNCgUELQIOAxIE5AUaHAoNCgUELQIOCBIE5AUdLAoNCgUELQIOBxIE5AUoKwoMCgQELQIPEgTnBQIeCg0KBQQtAg8EEgTnBQIKCg0KBQQtAg8FEgTnBQsQCg0KBQQtAg8BEgTnBREYCg0KBQQtAg8DEgTnBRsdCgwKBAQtAhASBOgFAjQKDQoFBC0CEAQSBOgFAgoKDQoFBC0CEAUSBOgFCxEKDQoFBC0CEAESBOgFEhwKDQoFBC0CEAMSBOgFHyEKDQoFBC0CEAgSBOgFIjMKDQoFBC0CEAcSBOgFLTIKDgoEBC0DARIG6gUC7QUDCg0KBQQtAwEBEgTqBQoXCg4KBgQtAwECABIE6wUEHwoPCgcELQMBAgAEEgTrBQQMCg8KBwQtAwECAAUSBOsFDRIKDwoHBC0DAQIAARIE6wUTGgoPCgcELQMBAgADEgTrBR0eCg4KBgQtAwECARIE7AUEIQoPCgcELQMBAgEEEgTsBQQMCg8KBwQtAwECAQUSBOwFDRIKDwoHBC0DAQIBARIE7AUTHAoPCgcELQMBAgEDEgTsBR8gCg4KBAQtBAASBu8FAvMFAwoNCgUELQQAARIE7wUHEQoOCgYELQQAAgASBPAFBAwKDwoHBC0EAAIAARIE8AUEBwoPCgcELQQAAgACEgTwBQoLCg4KBgQtBAACARIE8QUEDAoPCgcELQQAAgEBEgTxBQQHCg8KBwQtBAACAQISBPEFCgsKDgoGBC0EAAICEgTyBQQMCg8KBwQtBAACAgESBPIFBAcKDwoHBC0EAAICAhIE8gUKCwoMCgIELhIG9gUA/wUBCgsKAwQuARIE9gUIGQoOCgQELggAEgb3BQL7BQMKDQoFBC4IAAESBPcFCAsKDAoEBC4CABIE+AUEFgoNCgUELgIABRIE+AUECQoNCgUELgIAARIE+AUKEQoNCgUELgIAAxIE+AUUFQoMCgQELgIBEgT5BQQaCg0KBQQuAgEFEgT5BQQKCg0KBQQuAgEBEgT5BQsVCg0KBQQuAgEDEgT5BRgZCgwKBAQuAgISBPoFBCIKDQoFBC4CAgYSBPoFBBEKDQoFBC4CAgESBPoFEh0KDQoFBC4CAgMSBPoFICEKDgoEBC4DABIG/AUC/gUDCg0KBQQuAwABEgT8BQoXCg4KBgQuAwACABIE/QUEKAoPCgcELgMAAgAEEgT9BQQMCg8KBwQuAwACAAUSBP0FDRMKDwoHBC4DAAIAARIE/QUUIwoPCgcELgMAAgADEgT9BSYnCgwKAgQvEgaBBgCGBgEKCwoDBC8BEgSBBggXCgwKBAQvAgASBIIGAiQKDQoFBC8CAAYSBIIGAhsKDQoFBC8CAAESBIIGHB8KDQoFBC8CAAMSBIIGIiMKDgoEBC8DARIGgwYChQYDCg0KBQQvAwEBEgSDBgoXCg4KBgQvAwECABIEhAYEJgoPCgcELwMBAgAEEgSEBgQMCg8KBwQvAwECAAUSBIQGDRIKDwoHBC8DAQIAARIEhAYTIQoPCgcELwMBAgADEgSEBiQlCi8KAgQwEgaKBgCZBgEyISBUZXN0IG1lc3NhZ2VzIGZvciBwYWNrZWQgZmllbGRzCgoLCgMEMAESBIoGCBcKDAoEBDACABIEiwYCMwoNCgUEMAIABBIEiwYCCgoNCgUEMAIABRIEiwYLEAoNCgUEMAIAARIEiwYRHQoNCgUEMAIAAxIEiwYgIgoNCgUEMAIACBIEiwYjMgoOCgYEMAIACAISBIsGJDEKDAoEBDACARIEjAYCMwoNCgUEMAIBBBIEjAYCCgoNCgUEMAIBBRIEjAYLEAoNCgUEMAIBARIEjAYRHQoNCgUEMAIBAxIEjAYgIgoNCgUEMAIBCBIEjAYjMgoOCgYEMAIBCAISBIwGJDEKDAoEBDACAhIEjQYCNQoNCgUEMAICBBIEjQYCCgoNCgUEMAICBRIEjQYLEQoNCgUEMAICARIEjQYSHwoNCgUEMAICAxIEjQYiJAoNCgUEMAICCBIEjQYlNAoOCgYEMAICCAISBI0GJjMKDAoEBDACAxIEjgYCNQoNCgUEMAIDBBIEjgYCCgoNCgUEMAIDBRIEjgYLEQoNCgUEMAIDARIEjgYSHwoNCgUEMAIDAxIEjgYiJAoNCgUEMAIDCBIEjgYlNAoOCgYEMAIDCAISBI4GJjMKDAoEBDACBBIEjwYCNQoNCgUEMAIEBBIEjwYCCgoNCgUEMAIEBRIEjwYLEQoNCgUEMAIEARIEjwYSHwoNCgUEMAIEAxIEjwYiJAoNCgUEMAIECBIEjwYlNAoOCgYEMAIECAISBI8GJjMKDAoEBDACBRIEkAYCNQoNCgUEMAIFBBIEkAYCCgoNCgUEMAIFBRIEkAYLEQoNCgUEMAIFARIEkAYSHwoNCgUEMAIFAxIEkAYiJAoNCgUEMAIFCBIEkAYlNAoOCgYEMAIFCAISBJAGJjMKDAoEBDACBhIEkQYCNwoNCgUEMAIGBBIEkQYCCgoNCgUEMAIGBRIEkQYLEgoNCgUEMAIGARIEkQYTIQoNCgUEMAIGAxIEkQYkJgoNCgUEMAIGCBIEkQYnNgoOCgYEMAIGCAISBJEGKDUKDAoEBDACBxIEkgYCNwoNCgUEMAIHBBIEkgYCCgoNCgUEMAIHBRIEkgYLEgoNCgUEMAIHARIEkgYTIQoNCgUEMAIHAxIEkgYkJgoNCgUEMAIHCBIEkgYnNgoOCgYEMAIHCAISBJIGKDUKDAoEBDACCBIEkwYCOQoNCgUEMAIIBBIEkwYCCgoNCgUEMAIIBRIEkwYLEwoNCgUEMAIIARIEkwYUIwoNCgUEMAIIAxIEkwYmKAoNCgUEMAIICBIEkwYpOAoOCgYEMAIICAISBJMGKjcKDAoEBDACCRIElAYCOQoNCgUEMAIJBBIElAYCCgoNCgUEMAIJBRIElAYLEwoNCgUEMAIJARIElAYUIwoNCgUEMAIJAxIElAYmKAoNCgUEMAIJCBIElAYpOAoOCgYEMAIJCAISBJQGKjcKDAoEBDACChIElQYCNAoNCgUEMAIKBBIElQYCCgoNCgUEMAIKBRIElQYLEAoNCgUEMAIKARIElQYRHQoNCgUEMAIKAxIElQYgIwoNCgUEMAIKCBIElQYkMwoOCgYEMAIKCAISBJUGJTIKDAoEBDACCxIElgYCNgoNCgUEMAILBBIElgYCCgoNCgUEMAILBRIElgYLEQoNCgUEMAILARIElgYSHwoNCgUEMAILAxIElgYiJQoNCgUEMAILCBIElgYmNQoOCgYEMAILCAISBJYGJzQKDAoEBDACDBIElwYCMgoNCgUEMAIMBBIElwYCCgoNCgUEMAIMBRIElwYLDwoNCgUEMAIMARIElwYQGwoNCgUEMAIMAxIElwYeIQoNCgUEMAIMCBIElwYiMQoOCgYEMAIMCAISBJcGIzAKDAoEBDACDRIEmAYCOQoNCgUEMAINBBIEmAYCCgoNCgUEMAINBhIEmAYLFgoNCgUEMAINARIEmAYXIgoNCgUEMAINAxIEmAYlKAoNCgUEMAINCBIEmAYpOAoOCgYEMAINCAISBJgGKjcKjQEKAgQxEgadBgCsBgEafyBBIG1lc3NhZ2Ugd2l0aCB0aGUgc2FtZSBmaWVsZHMgYXMgVGVzdFBhY2tlZFR5cGVzLCBidXQgd2l0aG91dCBwYWNraW5nLiBVc2VkCiB0byB0ZXN0IHBhY2tlZCA8LT4gdW5wYWNrZWQgd2lyZSBjb21wYXRpYmlsaXR5LgoKCwoDBDEBEgSdBggZCgwKBAQxAgASBJ4GAjYKDQoFBDECAAQSBJ4GAgoKDQoFBDECAAUSBJ4GCxAKDQoFBDECAAESBJ4GER8KDQoFBDECAAMSBJ4GIiQKDQoFBDECAAgSBJ4GJTUKDgoGBDECAAgCEgSeBiY0CgwKBAQxAgESBJ8GAjYKDQoFBDECAQQSBJ8GAgoKDQoFBDECAQUSBJ8GCxAKDQoFBDECAQESBJ8GER8KDQoFBDECAQMSBJ8GIiQKDQoFBDECAQgSBJ8GJTUKDgoGBDECAQgCEgSfBiY0CgwKBAQxAgISBKAGAjgKDQoFBDECAgQSBKAGAgoKDQoFBDECAgUSBKAGCxEKDQoFBDECAgESBKAGEiEKDQoFBDECAgMSBKAGJCYKDQoFBDECAggSBKAGJzcKDgoGBDECAggCEgSgBig2CgwKBAQxAgMSBKEGAjgKDQoFBDECAwQSBKEGAgoKDQoFBDECAwUSBKEGCxEKDQoFBDECAwESBKEGEiEKDQoFBDECAwMSBKEGJCYKDQoFBDECAwgSBKEGJzcKDgoGBDECAwgCEgShBig2CgwKBAQxAgQSBKIGAjgKDQoFBDECBAQSBKIGAgoKDQoFBDECBAUSBKIGCxEKDQoFBDECBAESBKIGEiEKDQoFBDECBAMSBKIGJCYKDQoFBDECBAgSBKIGJzcKDgoGBDECBAgCEgSiBig2CgwKBAQxAgUSBKMGAjgKDQoFBDECBQQSBKMGAgoKDQoFBDECBQUSBKMGCxEKDQoFBDECBQESBKMGEiEKDQoFBDECBQMSBKMGJCYKDQoFBDECBQgSBKMGJzcKDgoGBDECBQgCEgSjBig2CgwKBAQxAgYSBKQGAjoKDQoFBDECBgQSBKQGAgoKDQoFBDECBgUSBKQGCxIKDQoFBDECBgESBKQGEyMKDQoFBDECBgMSBKQGJigKDQoFBDECBggSBKQGKTkKDgoGBDECBggCEgSkBio4CgwKBAQxAgcSBKUGAjoKDQoFBDECBwQSBKUGAgoKDQoFBDECBwUSBKUGCxIKDQoFBDECBwESBKUGEyMKDQoFBDECBwMSBKUGJigKDQoFBDECBwgSBKUGKTkKDgoGBDECBwgCEgSlBio4CgwKBAQxAggSBKYGAjwKDQoFBDECCAQSBKYGAgoKDQoFBDECCAUSBKYGCxMKDQoFBDECCAESBKYGFCUKDQoFBDECCAMSBKYGKCoKDQoFBDECCAgSBKYGKzsKDgoGBDECCAgCEgSmBiw6CgwKBAQxAgkSBKcGAjwKDQoFBDECCQQSBKcGAgoKDQoFBDECCQUSBKcGCxMKDQoFBDECCQESBKcGFCUKDQoFBDECCQMSBKcGKCoKDQoFBDECCQgSBKcGKzsKDgoGBDECCQgCEgSnBiw6CgwKBAQxAgoSBKgGAjcKDQoFBDECCgQSBKgGAgoKDQoFBDECCgUSBKgGCxAKDQoFBDECCgESBKgGER8KDQoFBDECCgMSBKgGIiUKDQoFBDECCggSBKgGJjYKDgoGBDECCggCEgSoBic1CgwKBAQxAgsSBKkGAjkKDQoFBDECCwQSBKkGAgoKDQoFBDECCwUSBKkGCxEKDQoFBDECCwESBKkGEiEKDQoFBDECCwMSBKkGJCcKDQoFBDECCwgSBKkGKDgKDgoGBDECCwgCEgSpBik3CgwKBAQxAgwSBKoGAjUKDQoFBDECDAQSBKoGAgoKDQoFBDECDAUSBKoGCw8KDQoFBDECDAESBKoGEB0KDQoFBDECDAMSBKoGICMKDQoFBDECDAgSBKoGJDQKDgoGBDECDAgCEgSqBiUzCgwKBAQxAg0SBKsGAjwKDQoFBDECDQQSBKsGAgoKDQoFBDECDQYSBKsGCxYKDQoFBDECDQESBKsGFyQKDQoFBDECDQMSBKsGJyoKDQoFBDECDQgSBKsGKzsKDgoGBDECDQgCEgSrBiw6CgwKAgQyEgauBgCwBgEKCwoDBDIBEgSuBggcCgsKAwQyBRIErwYCFgoMCgQEMgUAEgSvBg0VCg0KBQQyBQABEgSvBg0OCg0KBQQyBQACEgSvBhIVCgsKAQcSBrIGAMEGAQoKCgIHTRIEswYCPQoLCgMHTQISBLIGBxsKCwoDB00EEgSzBgIKCgsKAwdNBRIEswYLEAoLCgMHTQESBLMGEScKCwoDB00DEgSzBiosCgsKAwdNCBIEswYtPAoMCgQHTQgCEgSzBi47CgoKAgdOEgS0BgI9CgsKAwdOAhIEsgYHGwoLCgMHTgQSBLQGAgoKCwoDB04FEgS0BgsQCgsKAwdOARIEtAYRJwoLCgMHTgMSBLQGKiwKCwoDB04IEgS0Bi08CgwKBAdOCAISBLQGLjsKCgoCB08SBLUGAj8KCwoDB08CEgSyBgcbCgsKAwdPBBIEtQYCCgoLCgMHTwUSBLUGCxEKCwoDB08BEgS1BhIpCgsKAwdPAxIEtQYsLgoLCgMHTwgSBLUGLz4KDAoEB08IAhIEtQYwPQoKCgIHUBIEtgYCPwoLCgMHUAISBLIGBxsKCwoDB1AEEgS2BgIKCgsKAwdQBRIEtgYLEQoLCgMHUAESBLYGEikKCwoDB1ADEgS2BiwuCgsKAwdQCBIEtgYvPgoMCgQHUAgCEgS2BjA9CgoKAgdREgS3BgI/CgsKAwdRAhIEsgYHGwoLCgMHUQQSBLcGAgoKCwoDB1EFEgS3BgsRCgsKAwdRARIEtwYSKQoLCgMHUQMSBLcGLC4KCwoDB1EIEgS3Bi8+CgwKBAdRCAISBLcGMD0KCgoCB1ISBLgGAj8KCwoDB1ICEgSyBgcbCgsKAwdSBBIEuAYCCgoLCgMHUgUSBLgGCxEKCwoDB1IBEgS4BhIpCgsKAwdSAxIEuAYsLgoLCgMHUggSBLgGLz4KDAoEB1IIAhIEuAYwPQoKCgIHUxIEuQYCQQoLCgMHUwISBLIGBxsKCwoDB1MEEgS5BgIKCgsKAwdTBRIEuQYLEgoLCgMHUwESBLkGEysKCwoDB1MDEgS5Bi4wCgsKAwdTCBIEuQYxQAoMCgQHUwgCEgS5BjI/CgoKAgdUEgS6BgJBCgsKAwdUAhIEsgYHGwoLCgMHVAQSBLoGAgoKCwoDB1QFEgS6BgsSCgsKAwdUARIEugYTKwoLCgMHVAMSBLoGLjAKCwoDB1QIEgS6BjFACgwKBAdUCAISBLoGMj8KCgoCB1USBLsGAkMKCwoDB1UCEgSyBgcbCgsKAwdVBBIEuwYCCgoLCgMHVQUSBLsGCxMKCwoDB1UBEgS7BhQtCgsKAwdVAxIEuwYwMgoLCgMHVQgSBLsGM0IKDAoEB1UIAhIEuwY0QQoKCgIHVhIEvAYCQwoLCgMHVgISBLIGBxsKCwoDB1YEEgS8BgIKCgsKAwdWBRIEvAYLEwoLCgMHVgESBLwGFC0KCwoDB1YDEgS8BjAyCgsKAwdWCBIEvAYzQgoMCgQHVggCEgS8BjRBCgoKAgdXEgS9BgI+CgsKAwdXAhIEsgYHGwoLCgMHVwQSBL0GAgoKCwoDB1cFEgS9BgsQCgsKAwdXARIEvQYRJwoLCgMHVwMSBL0GKi0KCwoDB1cIEgS9Bi49CgwKBAdXCAISBL0GLzwKCgoCB1gSBL4GAkAKCwoDB1gCEgSyBgcbCgsKAwdYBBIEvgYCCgoLCgMHWAUSBL4GCxEKCwoDB1gBEgS+BhIpCgsKAwdYAxIEvgYsLwoLCgMHWAgSBL4GMD8KDAoEB1gIAhIEvgYxPgoKCgIHWRIEvwYCPAoLCgMHWQISBLIGBxsKCwoDB1kEEgS/BgIKCgsKAwdZBRIEvwYLDwoLCgMHWQESBL8GECUKCwoDB1kDEgS/BigrCgsKAwdZCBIEvwYsOwoMCgQHWQgCEgS/Bi06CgoKAgdaEgTABgJDCgsKAwdaAhIEsgYHGwoLCgMHWgQSBMAGAgoKCwoDB1oGEgTABgsWCgsKAwdaARIEwAYXLAoLCgMHWgMSBMAGLzIKCwoDB1oIEgTABjNCCgwKBAdaCAISBMAGNEEKDAoCBDMSBsMGAMUGAQoLCgMEMwESBMMGCB4KCwoDBDMFEgTEBgIWCgwKBAQzBQASBMQGDRUKDQoFBDMFAAESBMQGDQ4KDQoFBDMFAAISBMQGEhUKCwoBBxIGxwYA1gYBCgoKAgdbEgTIBgJACgsKAwdbAhIExwYHHQoLCgMHWwQSBMgGAgoKCwoDB1sFEgTIBgsQCgsKAwdbARIEyAYRKQoLCgMHWwMSBMgGLC4KCwoDB1sIEgTIBi8/CgwKBAdbCAISBMgGMD4KCgoCB1wSBMkGAkAKCwoDB1wCEgTHBgcdCgsKAwdcBBIEyQYCCgoLCgMHXAUSBMkGCxAKCwoDB1wBEgTJBhEpCgsKAwdcAxIEyQYsLgoLCgMHXAgSBMkGLz8KDAoEB1wIAhIEyQYwPgoKCgIHXRIEygYCQgoLCgMHXQISBMcGBx0KCwoDB10EEgTKBgIKCgsKAwddBRIEygYLEQoLCgMHXQESBMoGEisKCwoDB10DEgTKBi4wCgsKAwddCBIEygYxQQoMCgQHXQgCEgTKBjJACgoKAgdeEgTLBgJCCgsKAwdeAhIExwYHHQoLCgMHXgQSBMsGAgoKCwoDB14FEgTLBgsRCgsKAwdeARIEywYSKwoLCgMHXgMSBMsGLjAKCwoDB14IEgTLBjFBCgwKBAdeCAISBMsGMkAKCgoCB18SBMwGAkIKCwoDB18CEgTHBgcdCgsKAwdfBBIEzAYCCgoLCgMHXwUSBMwGCxEKCwoDB18BEgTMBhIrCgsKAwdfAxIEzAYuMAoLCgMHXwgSBMwGMUEKDAoEB18IAhIEzAYyQAoKCgIHYBIEzQYCQgoLCgMHYAISBMcGBx0KCwoDB2AEEgTNBgIKCgsKAwdgBRIEzQYLEQoLCgMHYAESBM0GEisKCwoDB2ADEgTNBi4wCgsKAwdgCBIEzQYxQQoMCgQHYAgCEgTNBjJACgoKAgdhEgTOBgJECgsKAwdhAhIExwYHHQoLCgMHYQQSBM4GAgoKCwoDB2EFEgTOBgsSCgsKAwdhARIEzgYTLQoLCgMHYQMSBM4GMDIKCwoDB2EIEgTOBjNDCgwKBAdhCAISBM4GNEIKCgoCB2ISBM8GAkQKCwoDB2ICEgTHBgcdCgsKAwdiBBIEzwYCCgoLCgMHYgUSBM8GCxIKCwoDB2IBEgTPBhMtCgsKAwdiAxIEzwYwMgoLCgMHYggSBM8GM0MKDAoEB2IIAhIEzwY0QgoKCgIHYxIE0AYCRgoLCgMHYwISBMcGBx0KCwoDB2MEEgTQBgIKCgsKAwdjBRIE0AYLEwoLCgMHYwESBNAGFC8KCwoDB2MDEgTQBjI0CgsKAwdjCBIE0AY1RQoMCgQHYwgCEgTQBjZECgoKAgdkEgTRBgJGCgsKAwdkAhIExwYHHQoLCgMHZAQSBNEGAgoKCwoDB2QFEgTRBgsTCgsKAwdkARIE0QYULwoLCgMHZAMSBNEGMjQKCwoDB2QIEgTRBjVFCgwKBAdkCAISBNEGNkQKCgoCB2USBNIGAkEKCwoDB2UCEgTHBgcdCgsKAwdlBBIE0gYCCgoLCgMHZQUSBNIGCxAKCwoDB2UBEgTSBhEpCgsKAwdlAxIE0gYsLwoLCgMHZQgSBNIGMEAKDAoEB2UIAhIE0gYxPwoKCgIHZhIE0wYCQwoLCgMHZgISBMcGBx0KCwoDB2YEEgTTBgIKCgsKAwdmBRIE0wYLEQoLCgMHZgESBNMGEisKCwoDB2YDEgTTBi4xCgsKAwdmCBIE0wYyQgoMCgQHZggCEgTTBjNBCgoKAgdnEgTUBgI/CgsKAwdnAhIExwYHHQoLCgMHZwQSBNQGAgoKCwoDB2cFEgTUBgsPCgsKAwdnARIE1AYQJwoLCgMHZwMSBNQGKi0KCwoDB2cIEgTUBi4+CgwKBAdnCAISBNQGLz0KCgoCB2gSBNUGAkYKCwoDB2gCEgTHBgcdCgsKAwdoBBIE1QYCCgoLCgMHaAYSBNUGCxYKCwoDB2gBEgTVBhcuCgsKAwdoAxIE1QYxNAoLCgMHaAgSBNUGNUUKDAoEB2gIAhIE1QY2RAq4AQoCBDQSBtsGAO4GARqpASBVc2VkIGJ5IEV4dGVuc2lvblNldFRlc3QvRHluYW1pY0V4dGVuc2lvbnMuICBUaGUgdGVzdCBhY3R1YWxseSBidWlsZHMKIGEgc2V0IG9mIGV4dGVuc2lvbnMgdG8gVGVzdEFsbEV4dGVuc2lvbnMgZHluYW1pY2FsbHksIGJhc2VkIG9uIHRoZSBmaWVsZHMKIG9mIHRoaXMgbWVzc2FnZSB0eXBlLgoKCwoDBDQBEgTbBggdCg4KBAQ0BAASBtwGAuAGAwoNCgUENAQAARIE3AYHFgoOCgYENAQAAgASBN0GBBcKDwoHBDQEAAIAARIE3QYEDwoPCgcENAQAAgACEgTdBhIWCg4KBgQ0BAACARIE3gYEFwoPCgcENAQAAgEBEgTeBgQPCg8KBwQ0BAACAQISBN4GEhYKDgoGBDQEAAICEgTfBgQXCg8KBwQ0BAACAgESBN8GBA8KDwoHBDQEAAICAhIE3wYSFgoOCgQENAMAEgbhBgLjBgMKDQoFBDQDAAESBOEGChwKDgoGBDQDAAIAEgTiBgQoCg8KBwQ0AwACAAQSBOIGBAwKDwoHBDQDAAIABRIE4gYNEgoPCgcENAMAAgABEgTiBhMgCg8KBwQ0AwACAAMSBOIGIycKDAoEBDQCABIE5QYCKwoNCgUENAIABBIE5QYCCgoNCgUENAIABRIE5QYLEgoNCgUENAIAARIE5QYTIwoNCgUENAIAAxIE5QYmKgoMCgQENAIBEgTmBgItCg0KBQQ0AgEEEgTmBgIKCg0KBQQ0AgEGEgTmBgsWCg0KBQQ0AgEBEgTmBhclCg0KBQQ0AgEDEgTmBigsCgwKBAQ0AgISBOcGAjkKDQoFBDQCAgQSBOcGAgoKDQoFBDQCAgYSBOcGCxoKDQoFBDQCAgESBOcGGzEKDQoFBDQCAgMSBOcGNDgKDAoEBDQCAxIE6QYCMwoNCgUENAIDBBIE6QYCCgoNCgUENAIDBhIE6QYLGQoNCgUENAIDARIE6QYaKwoNCgUENAIDAxIE6QYuMgoMCgQENAIEEgTqBgI/Cg0KBQQ0AgQEEgTqBgIKCg0KBQQ0AgQGEgTqBgsdCg0KBQQ0AgQBEgTqBh43Cg0KBQQ0AgQDEgTqBjo+CgwKBAQ0AgUSBOwGAiwKDQoFBDQCBQQSBOwGAgoKDQoFBDQCBQUSBOwGCxEKDQoFBDQCBQESBOwGEiQKDQoFBDQCBQMSBOwGJysKDAoEBDQCBhIE7QYCOgoNCgUENAIGBBIE7QYCCgoNCgUENAIGBRIE7QYLEQoNCgUENAIGARIE7QYSIgoNCgUENAIGAxIE7QYlKQoNCgUENAIGCBIE7QYqOQoOCgYENAIGCAISBO0GKzgKDAoCBDUSBvAGAP8GAQoLCgMENQESBPAGCCsKzwEKBAQ1AgASBPQGAikawAEgUGFyc2luZyByZXBlYXRlZCBmaXhlZCBzaXplIHZhbHVlcyB1c2VkIHRvIGZhaWwuIFRoaXMgbWVzc2FnZSBuZWVkcyB0byBiZQogdXNlZCBpbiBvcmRlciB0byBnZXQgYSB0YWcgb2YgdGhlIHJpZ2h0IHNpemU7IGFsbCBvZiB0aGUgcmVwZWF0ZWQgZmllbGRzCiBpbiBUZXN0QWxsVHlwZXMgZGlkbid0IHRyaWdnZXIgdGhlIGNoZWNrLgoKDQoFBDUCAAQSBPQGAgoKDQoFBDUCAAUSBPQGCxIKDQoFBDUCAAESBPQGEyMKDQoFBDUCAAMSBPQGJigKPwoEBDUCARIE9gYCJRoxIENoZWNrIGZvciBhIHZhcmludCB0eXBlLCBqdXN0IGZvciBnb29kIG1lYXN1cmUuCgoNCgUENQIBBBIE9gYCCgoNCgUENQIBBRIE9gYLEAoNCgUENQIBARIE9gYRHwoNCgUENQIBAxIE9gYiJAopCgQENQICEgT5BgIrGhsgVGhlc2UgaGF2ZSB0d28tYnl0ZSB0YWdzLgoKDQoFBDUCAgQSBPkGAgoKDQoFBDUCAgUSBPkGCxIKDQoFBDUCAgESBPkGEyMKDQoFBDUCAgMSBPkGJioKDAoEBDUCAxIE+gYCJwoNCgUENQIDBBIE+gYCCgoNCgUENQIDBRIE+gYLEAoNCgUENQIDARIE+gYRHwoNCgUENQIDAxIE+gYiJgogCgQENQIEEgT9BgIpGhIgVGhyZWUgYnl0ZSB0YWdzLgoKDQoFBDUCBAQSBP0GAgoKDQoFBDUCBAUSBP0GCxAKDQoFBDUCBAESBP0GER8KDQoFBDUCBAMSBP0GIigKDAoEBDUCBRIE/gYCKwoNCgUENQIFBBIE/gYCCgoNCgUENQIFBRIE/gYLEQoNCgUENQIFARIE/gYSIQoNCgUENQIFAxIE/gYkKgqGAQoCBDYSBoMHAKQHARp4IFRlc3QgdGhhdCBpZiBhbiBvcHRpb25hbCBvciByZXF1aXJlZCBtZXNzYWdlL2dyb3VwIGZpZWxkIGFwcGVhcnMgbXVsdGlwbGUKIHRpbWVzIGluIHRoZSBpbnB1dCwgdGhleSBuZWVkIHRvIGJlIG1lcmdlZC4KCgsKAwQ2ARIEgwcIGAr+AgoEBDYDABIGiQcClQcDGu0CIFJlcGVhdGVkRmllbGRzR2VuZXJhdG9yIGRlZmluZXMgbWF0Y2hpbmcgZmllbGQgdHlwZXMgYXMgVGVzdFBhcnNpbmdNZXJnZSwKIGV4Y2VwdCB0aGF0IGFsbCBmaWVsZHMgYXJlIHJlcGVhdGVkLiBJbiB0aGUgdGVzdHMsIHdlIHdpbGwgc2VyaWFsaXplIHRoZQogUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IgdG8gYnl0ZXMsIGFuZCBwYXJzZSB0aGUgYnl0ZXMgdG8gVGVzdFBhcnNpbmdNZXJnZS4KIFJlcGVhdGVkIGZpZWxkcyBpbiBSZXBlYXRlZEZpZWxkc0dlbmVyYXRvciBhcmUgZXhwZWN0ZWQgdG8gYmUgbWVyZ2VkIGludG8KIHRoZSBjb3JyZXNwb25kaW5nIHJlcXVpcmVkL29wdGlvbmFsIGZpZWxkcyBpbiBUZXN0UGFyc2luZ01lcmdlLgoKDQoFBDYDAAESBIkHCiEKDgoGBDYDAAIAEgSKBwQlCg8KBwQ2AwACAAQSBIoHBAwKDwoHBDYDAAIABhIEigcNGQoPCgcENgMAAgABEgSKBxogCg8KBwQ2AwACAAMSBIoHIyQKDgoGBDYDAAIBEgSLBwQlCg8KBwQ2AwACAQQSBIsHBAwKDwoHBDYDAAIBBhIEiwcNGQoPCgcENgMAAgEBEgSLBxogCg8KBwQ2AwACAQMSBIsHIyQKDgoGBDYDAAICEgSMBwQlCg8KBwQ2AwACAgQSBIwHBAwKDwoHBDYDAAICBhIEjAcNGQoPCgcENgMAAgIBEgSMBxogCg8KBwQ2AwACAgMSBIwHIyQKEAoGBDYDAAIDEgaNBwSPBwUKDwoHBDYDAAIDBBIEjQcEDAoPCgcENgMAAgMFEgSNBw0SCg8KBwQ2AwACAwESBI0HExkKDwoHBDYDAAIDAxIEjQccHgoQCgYENgMAAwASBo0HBI8HBQoPCgcENgMAAwABEgSNBxMZCg8KBwQ2AwACAwYSBI0HExkKEAoIBDYDAAMAAgASBI4HBigKEQoJBDYDAAMAAgAEEgSOBwYOChEKCQQ2AwADAAIABhIEjgcPGwoRCgkENgMAAwACAAESBI4HHCIKEQoJBDYDAAMAAgADEgSOByUnChAKBgQ2AwACBBIGkAcEkgcFCg8KBwQ2AwACBAQSBJAHBAwKDwoHBDYDAAIEBRIEkAcNEgoPCgcENgMAAgQBEgSQBxMZCg8KBwQ2AwACBAMSBJAHHB4KEAoGBDYDAAMBEgaQBwSSBwUKDwoHBDYDAAMBARIEkAcTGQoPCgcENgMAAgQGEgSQBxMZChAKCAQ2AwADAQIAEgSRBwYoChEKCQQ2AwADAQIABBIEkQcGDgoRCgkENgMAAwECAAYSBJEHDxsKEQoJBDYDAAMBAgABEgSRBxwiChEKCQQ2AwADAQIAAxIEkQclJwoOCgYENgMAAgUSBJMHBCYKDwoHBDYDAAIFBBIEkwcEDAoPCgcENgMAAgUGEgSTBw0ZCg8KBwQ2AwACBQESBJMHGh4KDwoHBDYDAAIFAxIEkwchJQoOCgYENgMAAgYSBJQHBCYKDwoHBDYDAAIGBBIElAcEDAoPCgcENgMAAgYGEgSUBw0ZCg8KBwQ2AwACBgESBJQHGh4KDwoHBDYDAAIGAxIElAchJQoMCgQENgIAEgSWBwIvCg0KBQQ2AgAEEgSWBwIKCg0KBQQ2AgAGEgSWBwsXCg0KBQQ2AgABEgSWBxgqCg0KBQQ2AgADEgSWBy0uCgwKBAQ2AgESBJcHAi8KDQoFBDYCAQQSBJcHAgoKDQoFBDYCAQYSBJcHCxcKDQoFBDYCAQESBJcHGCoKDQoFBDYCAQMSBJcHLS4KDAoEBDYCAhIEmAcCLwoNCgUENgICBBIEmAcCCgoNCgUENgICBhIEmAcLFwoNCgUENgICARIEmAcYKgoNCgUENgICAxIEmActLgoOCgQENgIDEgaZBwKbBwMKDQoFBDYCAwQSBJkHAgoKDQoFBDYCAwUSBJkHCxAKDQoFBDYCAwESBJkHER4KDQoFBDYCAwMSBJkHISMKDgoEBDYDARIGmQcCmwcDCg0KBQQ2AwEBEgSZBxEeCg0KBQQ2AgMGEgSZBxEeCg4KBgQ2AwECABIEmgcEOAoPCgcENgMBAgAEEgSaBwQMCg8KBwQ2AwECAAYSBJoHDRkKDwoHBDYDAQIAARIEmgcaMgoPCgcENgMBAgADEgSaBzU3Cg4KBAQ2AgQSBpwHAp4HAwoNCgUENgIEBBIEnAcCCgoNCgUENgIEBRIEnAcLEAoNCgUENgIEARIEnAcRHgoNCgUENgIEAxIEnAchIwoOCgQENgMCEgacBwKeBwMKDQoFBDYDAgESBJwHER4KDQoFBDYCBAYSBJwHER4KDgoGBDYDAgIAEgSdBwQ4Cg8KBwQ2AwICAAQSBJ0HBAwKDwoHBDYDAgIABhIEnQcNGQoPCgcENgMCAgABEgSdBxoyCg8KBwQ2AwICAAMSBJ0HNTcKCwoDBDYFEgSfBwIZCgwKBAQ2BQASBJ8HDRgKDQoFBDYFAAESBJ8HDREKDQoFBDYFAAISBJ8HFRgKDQoDBDYGEgagBwKjBwMKDAoEBDYGABIEoQcELgoNCgUENgYAAhIEoAcJGQoNCgUENgYABBIEoQcEDAoNCgUENgYABhIEoQcNGQoNCgUENgYAARIEoQcaJgoNCgUENgYAAxIEoQcpLQoMCgQENgYBEgSiBwQuCg0KBQQ2BgECEgSgBwkZCg0KBQQ2BgEEEgSiBwQMCg0KBQQ2BgEGEgSiBw0ZCg0KBQQ2BgEBEgSiBxomCg0KBQQ2BgEDEgSiByktCgwKAgQ3EgamBwCpBwEKCwoDBDcBEgSmBwgjCkUKBAQ3AgASBKgHAkEaNyAqLyA8LSBUaGlzIHNob3VsZCBub3QgY2xvc2UgdGhlIGdlbmVyYXRlZCBkb2MgY29tbWVudAoKDQoFBDcCAAQSBKgHAgoKDQoFBDcCAAUSBKgHCxEKDQoFBDcCAAESBKgHEhMKDQoFBDcCAAMSBKgHFhcKDQoFBDcCAAgSBKgHGEAKDQoFBDcCAAcSBKgHIz8KKgoCBDgSBKwHABUaHiBUZXN0IHRoYXQgUlBDIHNlcnZpY2VzIHdvcmsuCgoLCgMEOAESBKwHCBIKCgoCBDkSBK0HABYKCwoDBDkBEgStBwgTCgoKAgQ6EgSvBwAbCgsKAwQ6ARIErwcIGAoKCgIEOxIEsAcAGwoLCgMEOwESBLAHCBgKDAoCBgASBrIHALUHAQoLCgMGAAESBLIHCBMKDAoEBgACABIEswcCLAoNCgUGAAIAARIEswcGCQoNCgUGAAIAAhIEswcKFAoNCgUGAAIAAxIEswcfKgoMCgQGAAIBEgS0BwIsCg0KBQYAAgEBEgS0BwYJCg0KBQYAAgECEgS0BwoUCg0KBQYAAgEDEgS0Bx8qCgoKAgQ8EgS3BwAVCgsKAwQ8ARIEtwcIEgoKCgIEPRIEuAcAFgoLCgMEPQESBLgHCBMKDAoCBD4SBroHAMEHAQoLCgMEPgESBLoHCBQKDAoEBD4CABIEuwcCIQoNCgUEPgIABBIEuwcCCgoNCgUEPgIABRIEuwcLEAoNCgUEPgIAARIEuwcRHAoNCgUEPgIAAxIEuwcfIAoMCgQEPgIBEgS8BwIgCg0KBQQ+AgEEEgS8BwIKCg0KBQQ+AgEFEgS8BwsQCg0KBQQ+AgEBEgS8BxEbCg0KBQQ+AgEDEgS8Bx4fCgwKBAQ+AgISBL0HAiAKDQoFBD4CAgQSBL0HAgoKDQoFBD4CAgUSBL0HCxAKDQoFBD4CAgESBL0HERsKDQoFBD4CAgMSBL0HHh8KDAoEBD4CAxIEvgcCIgoNCgUEPgIDBBIEvgcCCgoNCgUEPgIDBRIEvgcLEAoNCgUEPgIDARIEvgcRHQoNCgUEPgIDAxIEvgcgIQoMCgQEPgIEEgS/BwIhCg0KBQQ+AgQEEgS/BwIKCg0KBQQ+AgQFEgS/BwsQCg0KBQQ+AgQBEgS/BxEcCg0KBQQ+AgQDEgS/Bx8gCgwKBAQ+AgUSBMAHAjcKDQoFBD4CBQQSBMAHAgoKDQoFBD4CBQUSBMAHCxAKDQoFBD4CBQESBMAHERwKDQoFBD4CBQMSBMAHHyAKDQoFBD4CBQgSBMAHITYKDQoFBD4CBQoSBMAHIjUKDQoFBD4CBQoSBMAHLjUKDAoCBD8SBsMHAOAHAQoLCgMEPwESBMMHCBwKDAoEBD8CABIExAcCLAoNCgUEPwIABBIExAcCCgoNCgUEPwIABRIExAcLEAoNCgUEPwIAARIExAcRHwoNCgUEPwIAAxIExAciKwoMCgQEPwIBEgTFBwImCg0KBQQ/AgEEEgTFBwIKCg0KBQQ/AgEFEgTFBwsQCg0KBQQ/AgEBEgTFBxEZCg0KBQQ/AgEDEgTFBxwlCgwKBAQ/AgISBMYHAj0KDQoFBD8CAgQSBMYHAgoKDQoFBD8CAgUSBMYHCxAKDQoFBD8CAgESBMYHER8KDQoFBD8CAgMSBMYHIisKDQoFBD8CAggSBMYHLDwKDgoGBD8CAggCEgTGBy07CgwKBAQ/AgMSBMcHAjoKDQoFBD8CAwQSBMcHAgoKDQoFBD8CAwUSBMcHCxAKDQoFBD8CAwESBMcHER0KDQoFBD8CAwMSBMcHICkKDQoFBD8CAwgSBMcHKjkKDgoGBD8CAwgCEgTHBys4CgwKBAQ/AgQSBMkHAjEKDQoFBD8CBAQSBMkHAgoKDQoFBD8CBAYSBMkHCxYKDQoFBD8CBAESBMkHFyQKDQoFBD8CBAMSBMkHJzAKDAoEBD8CBRIEygcCLgoNCgUEPwIFBBIEygcCCgoNCgUEPwIFBRIEygcLEQoNCgUEPwIFARIEygcSIQoNCgUEPwIFAxIEygckLQoMCgQEPwIGEgTLBwIsCg0KBQQ/AgYEEgTLBwIKCg0KBQQ/AgYFEgTLBwsQCg0KBQQ/AgYBEgTLBxEfCg0KBQQ/AgYDEgTLByIrCgwKBAQ/AgcSBMwHAjcKDQoFBD8CBwQSBMwHAgoKDQoFBD8CBwYSBMwHCxkKDQoFBD8CBwESBMwHGioKDQoFBD8CBwMSBMwHLTYKDgoEBD8CCBIGzgcC0AcDCg0KBQQ/AggEEgTOBwIKCg0KBQQ/AggFEgTOBwsQCg0KBQQ/AggBEgTOBxEeCg0KBQQ/AggDEgTOByEqCg4KBAQ/AwASBs4HAtAHAwoNCgUEPwMAARIEzgcRHgoNCgUEPwIIBhIEzgcRHgoOCgYEPwMAAgASBM8HBCcKDwoHBD8DAAIABBIEzwcEDAoPCgcEPwMAAgAFEgTPBw0SCg8KBwQ/AwACAAESBM8HExoKDwoHBD8DAAIAAxIEzwcdJgoMCgQEPwIJEgTSBwI0Cg0KBQQ/AgkGEgTSBwIVCg0KBQQ/AgkBEgTSBxYnCg0KBQQ/AgkDEgTSByozCg4KBAQ/CAASBtQHAtkHAwoNCgUEPwgAARIE1AcIEwoMCgQEPwIKEgTVBwQkCg0KBQQ/AgoFEgTVBwQKCg0KBQQ/AgoBEgTVBwsXCg0KBQQ/AgoDEgTVBxojCgwKBAQ/AgsSBNYHBDIKDQoFBD8CCwYSBNYHBBAKDQoFBD8CCwESBNYHESUKDQoFBD8CCwMSBNYHKDEKDAoEBD8CDBIE1wcEJAoNCgUEPwIMBRIE1wcECgoNCgUEPwIMARIE1wcLFwoNCgUEPwIMAxIE1wcaIwoMCgQEPwINEgTYBwQiCg0KBQQ/Ag0FEgTYBwQJCg0KBQQ/Ag0BEgTYBwoVCg0KBQQ/Ag0DEgTYBxghCg0KAwQ/BRIG2wcC3wcFCgwKBAQ/BQASBNsHDSMKDQoFBD8FAAESBNsHDRYKDQoFBD8FAAISBNsHGiMKCwoBBxIG4gcA5AcBCgoKAgdpEgTjBwIzCgsKAwdpAhIE4gcHGwoLCgMHaQQSBOMHAgoKCwoDB2kGEgTjBwsXCgsKAwdpARIE4wcYJgoLCgMHaQMSBOMHKTIKDAoCBEASBuYHAPEHAQoLCgMEQAESBOYHCCAKDAoEBEACABIE5wcCHAoNCgUEQAIABBIE5wcCCgoNCgUEQAIABRIE5wcLEAoNCgUEQAIAARIE5wcRFwoNCgUEQAIAAxIE5wcaGwoMCgQEQAIBEgToBwIcCg0KBQRAAgEEEgToBwIKCg0KBQRAAgEFEgToBwsQCg0KBQRAAgEBEgToBxEXCg0KBQRAAgEDEgToBxobCgwKBARAAgISBOkHAhwKDQoFBEACAgQSBOkHAgoKDQoFBEACAgUSBOkHCxAKDQoFBEACAgESBOkHERcKDQoFBEACAgMSBOkHGhsKDAoEBEACAxIE6gcCHAoNCgUEQAIDBBIE6gcCCgoNCgUEQAIDBRIE6gcLEAoNCgUEQAIDARIE6gcRFwoNCgUEQAIDAxIE6gcaGwoLCgMEQAUSBOsHAhQKDAoEBEAFABIE6wcNEwoNCgUEQAUAARIE6wcNDgoNCgUEQAUAAhIE6wcSEwoMCgQEQAIEEgTsBwIcCg0KBQRAAgQEEgTsBwIKCg0KBQRAAgQFEgTsBwsQCg0KBQRAAgQBEgTsBxEXCg0KBQRAAgQDEgTsBxobCgwKBARAAgUSBO0HAhwKDQoFBEACBQQSBO0HAgoKDQoFBEACBQUSBO0HCxAKDQoFBEACBQESBO0HERcKDQoFBEACBQMSBO0HGhsKDAoEBEACBhIE7gcCHAoNCgUEQAIGBBIE7gcCCgoNCgUEQAIGBRIE7gcLEAoNCgUEQAIGARIE7gcRFwoNCgUEQAIGAxIE7gcaGwoMCgQEQAIHEgTvBwIcCg0KBQRAAgcEEgTvBwIKCg0KBQRAAgcFEgTvBwsQCg0KBQRAAgcBEgTvBxEXCg0KBQRAAgcDEgTvBxobCgwKBARAAggSBPAHAh4KDQoFBEACCAQSBPAHAgoKDQoFBEACCAUSBPAHCxAKDQoFBEACCAESBPAHERgKDQoFBEACCAMSBPAHGx0KCwoBBxIG8wcA9QcBCgoKAgdqEgT0BwI7CgsKAwdqAhIE8wcHHwoLCgMHagQSBPQHAgoKCwoDB2oFEgT0BwsQCgsKAwdqARIE9AcRNgoLCgMHagMSBPQHOToKDAoCBQMSBvcHAN0IAQoLCgMFAwESBPcHBRIKDAoEBQMCABIE+AcCGQoNCgUFAwIAARIE+AcCFAoNCgUFAwIAAhIE+AcXGAoMCgQFAwIBEgT5BwITCg0KBQUDAgEBEgT5BwIOCg0KBQUDAgECEgT5BxESCgwKBAUDAgISBPoHAhMKDQoFBQMCAgESBPoHAg4KDQoFBQMCAgISBPoHERIKDAoEBQMCAxIE+wcCEwoNCgUFAwIDARIE+wcCDgoNCgUFAwIDAhIE+wcREgoMCgQFAwIEEgT8BwITCg0KBQUDAgQBEgT8BwIOCg0KBQUDAgQCEgT8BxESCgwKBAUDAgUSBP0HAhMKDQoFBQMCBQESBP0HAg4KDQoFBQMCBQISBP0HERIKDAoEBQMCBhIE/gcCEwoNCgUFAwIGARIE/gcCDgoNCgUFAwIGAhIE/gcREgoMCgQFAwIHEgT/BwITCg0KBQUDAgcBEgT/BwIOCg0KBQUDAgcCEgT/BxESCgwKBAUDAggSBIAIAhMKDQoFBQMCCAESBIAIAg4KDQoFBQMCCAISBIAIERIKDAoEBQMCCRIEgQgCEwoNCgUFAwIJARIEgQgCDgoNCgUFAwIJAhIEgQgREgoMCgQFAwIKEgSCCAIVCg0KBQUDAgoBEgSCCAIPCg0KBQUDAgoCEgSCCBIUCgwKBAUDAgsSBIMIAhUKDQoFBQMCCwESBIMIAg8KDQoFBQMCCwISBIMIEhQKDAoEBQMCDBIEhAgCFQoNCgUFAwIMARIEhAgCDwoNCgUFAwIMAhIEhAgSFAoMCgQFAwINEgSFCAIVCg0KBQUDAg0BEgSFCAIPCg0KBQUDAg0CEgSFCBIUCgwKBAUDAg4SBIYIAhUKDQoFBQMCDgESBIYIAg8KDQoFBQMCDgISBIYIEhQKDAoEBQMCDxIEhwgCFQoNCgUFAwIPARIEhwgCDwoNCgUFAwIPAhIEhwgSFAoMCgQFAwIQEgSICAIVCg0KBQUDAhABEgSICAIPCg0KBQUDAhACEgSICBIUCgwKBAUDAhESBIkIAhUKDQoFBQMCEQESBIkIAg8KDQoFBQMCEQISBIkIEhQKDAoEBQMCEhIEiggCFQoNCgUFAwISARIEiggCDwoNCgUFAwISAhIEiggSFAoMCgQFAwITEgSLCAIVCg0KBQUDAhMBEgSLCAIPCg0KBQUDAhMCEgSLCBIUCgwKBAUDAhQSBIwIAhUKDQoFBQMCFAESBIwIAg8KDQoFBQMCFAISBIwIEhQKDAoEBQMCFRIEjQgCFQoNCgUFAwIVARIEjQgCDwoNCgUFAwIVAhIEjQgSFAoMCgQFAwIWEgSOCAIVCg0KBQUDAhYBEgSOCAIPCg0KBQUDAhYCEgSOCBIUCgwKBAUDAhcSBI8IAhUKDQoFBQMCFwESBI8IAg8KDQoFBQMCFwISBI8IEhQKDAoEBQMCGBIEkAgCFQoNCgUFAwIYARIEkAgCDwoNCgUFAwIYAhIEkAgSFAoMCgQFAwIZEgSRCAIVCg0KBQUDAhkBEgSRCAIPCg0KBQUDAhkCEgSRCBIUCgwKBAUDAhoSBJIIAhUKDQoFBQMCGgESBJIIAg8KDQoFBQMCGgISBJIIEhQKDAoEBQMCGxIEkwgCFQoNCgUFAwIbARIEkwgCDwoNCgUFAwIbAhIEkwgSFAoMCgQFAwIcEgSUCAIVCg0KBQUDAhwBEgSUCAIPCg0KBQUDAhwCEgSUCBIUCgwKBAUDAh0SBJUIAhUKDQoFBQMCHQESBJUIAg8KDQoFBQMCHQISBJUIEhQKDAoEBQMCHhIElggCFQoNCgUFAwIeARIElggCDwoNCgUFAwIeAhIElggSFAoMCgQFAwIfEgSXCAIVCg0KBQUDAh8BEgSXCAIPCg0KBQUDAh8CEgSXCBIUCgwKBAUDAiASBJgIAhUKDQoFBQMCIAESBJgIAg8KDQoFBQMCIAISBJgIEhQKDAoEBQMCIRIEmQgCFQoNCgUFAwIhARIEmQgCDwoNCgUFAwIhAhIEmQgSFAoMCgQFAwIiEgSaCAIVCg0KBQUDAiIBEgSaCAIPCg0KBQUDAiICEgSaCBIUCgwKBAUDAiMSBJsIAhUKDQoFBQMCIwESBJsIAg8KDQoFBQMCIwISBJsIEhQKDAoEBQMCJBIEnAgCFQoNCgUFAwIkARIEnAgCDwoNCgUFAwIkAhIEnAgSFAoMCgQFAwIlEgSdCAIVCg0KBQUDAiUBEgSdCAIPCg0KBQUDAiUCEgSdCBIUCgwKBAUDAiYSBJ4IAhUKDQoFBQMCJgESBJ4IAg8KDQoFBQMCJgISBJ4IEhQKDAoEBQMCJxIEnwgCFQoNCgUFAwInARIEnwgCDwoNCgUFAwInAhIEnwgSFAoMCgQFAwIoEgSgCAIVCg0KBQUDAigBEgSgCAIPCg0KBQUDAigCEgSgCBIUCgwKBAUDAikSBKEIAhUKDQoFBQMCKQESBKEIAg8KDQoFBQMCKQISBKEIEhQKDAoEBQMCKhIEoggCFQoNCgUFAwIqARIEoggCDwoNCgUFAwIqAhIEoggSFAoMCgQFAwIrEgSjCAIVCg0KBQUDAisBEgSjCAIPCg0KBQUDAisCEgSjCBIUCgwKBAUDAiwSBKQIAhUKDQoFBQMCLAESBKQIAg8KDQoFBQMCLAISBKQIEhQKDAoEBQMCLRIEpQgCFQoNCgUFAwItARIEpQgCDwoNCgUFAwItAhIEpQgSFAoMCgQFAwIuEgSmCAIVCg0KBQUDAi4BEgSmCAIPCg0KBQUDAi4CEgSmCBIUCgwKBAUDAi8SBKcIAhUKDQoFBQMCLwESBKcIAg8KDQoFBQMCLwISBKcIEhQKDAoEBQMCMBIEqAgCFQoNCgUFAwIwARIEqAgCDwoNCgUFAwIwAhIEqAgSFAoMCgQFAwIxEgSpCAIVCg0KBQUDAjEBEgSpCAIPCg0KBQUDAjECEgSpCBIUCgwKBAUDAjISBKoIAhUKDQoFBQMCMgESBKoIAg8KDQoFBQMCMgISBKoIEhQKDAoEBQMCMxIEqwgCFQoNCgUFAwIzARIEqwgCDwoNCgUFAwIzAhIEqwgSFAoMCgQFAwI0EgSsCAIVCg0KBQUDAjQBEgSsCAIPCg0KBQUDAjQCEgSsCBIUCgwKBAUDAjUSBK0IAhUKDQoFBQMCNQESBK0IAg8KDQoFBQMCNQISBK0IEhQKDAoEBQMCNhIErggCFQoNCgUFAwI2ARIErggCDwoNCgUFAwI2AhIErggSFAoMCgQFAwI3EgSvCAIVCg0KBQUDAjcBEgSvCAIPCg0KBQUDAjcCEgSvCBIUCgwKBAUDAjgSBLAIAhUKDQoFBQMCOAESBLAIAg8KDQoFBQMCOAISBLAIEhQKDAoEBQMCORIEsQgCFQoNCgUFAwI5ARIEsQgCDwoNCgUFAwI5AhIEsQgSFAoMCgQFAwI6EgSyCAIVCg0KBQUDAjoBEgSyCAIPCg0KBQUDAjoCEgSyCBIUCgwKBAUDAjsSBLMIAhUKDQoFBQMCOwESBLMIAg8KDQoFBQMCOwISBLMIEhQKDAoEBQMCPBIEtAgCFQoNCgUFAwI8ARIEtAgCDwoNCgUFAwI8AhIEtAgSFAoMCgQFAwI9EgS1CAIVCg0KBQUDAj0BEgS1CAIPCg0KBQUDAj0CEgS1CBIUCgwKBAUDAj4SBLYIAhUKDQoFBQMCPgESBLYIAg8KDQoFBQMCPgISBLYIEhQKDAoEBQMCPxIEtwgCFQoNCgUFAwI/ARIEtwgCDwoNCgUFAwI/AhIEtwgSFAoMCgQFAwJAEgS4CAIVCg0KBQUDAkABEgS4CAIPCg0KBQUDAkACEgS4CBIUCgwKBAUDAkESBLkIAhUKDQoFBQMCQQESBLkIAg8KDQoFBQMCQQISBLkIEhQKDAoEBQMCQhIEuggCFQoNCgUFAwJCARIEuggCDwoNCgUFAwJCAhIEuggSFAoMCgQFAwJDEgS7CAIVCg0KBQUDAkMBEgS7CAIPCg0KBQUDAkMCEgS7CBIUCgwKBAUDAkQSBLwIAhUKDQoFBQMCRAESBLwIAg8KDQoFBQMCRAISBLwIEhQKDAoEBQMCRRIEvQgCFQoNCgUFAwJFARIEvQgCDwoNCgUFAwJFAhIEvQgSFAoMCgQFAwJGEgS+CAIVCg0KBQUDAkYBEgS+CAIPCg0KBQUDAkYCEgS+CBIUCgwKBAUDAkcSBL8IAhUKDQoFBQMCRwESBL8IAg8KDQoFBQMCRwISBL8IEhQKDAoEBQMCSBIEwAgCFQoNCgUFAwJIARIEwAgCDwoNCgUFAwJIAhIEwAgSFAoMCgQFAwJJEgTBCAIVCg0KBQUDAkkBEgTBCAIPCg0KBQUDAkkCEgTBCBIUCgwKBAUDAkoSBMIIAhUKDQoFBQMCSgESBMIIAg8KDQoFBQMCSgISBMIIEhQKDAoEBQMCSxIEwwgCFQoNCgUFAwJLARIEwwgCDwoNCgUFAwJLAhIEwwgSFAoMCgQFAwJMEgTECAIVCg0KBQUDAkwBEgTECAIPCg0KBQUDAkwCEgTECBIUCgwKBAUDAk0SBMUIAhUKDQoFBQMCTQESBMUIAg8KDQoFBQMCTQISBMUIEhQKDAoEBQMCThIExggCFQoNCgUFAwJOARIExggCDwoNCgUFAwJOAhIExggSFAoMCgQFAwJPEgTHCAIVCg0KBQUDAk8BEgTHCAIPCg0KBQUDAk8CEgTHCBIUCgwKBAUDAlASBMgIAhUKDQoFBQMCUAESBMgIAg8KDQoFBQMCUAISBMgIEhQKDAoEBQMCURIEyQgCFQoNCgUFAwJRARIEyQgCDwoNCgUFAwJRAhIEyQgSFAoMCgQFAwJSEgTKCAIVCg0KBQUDAlIBEgTKCAIPCg0KBQUDAlICEgTKCBIUCgwKBAUDAlMSBMsIAhUKDQoFBQMCUwESBMsIAg8KDQoFBQMCUwISBMsIEhQKDAoEBQMCVBIEzAgCFQoNCgUFAwJUARIEzAgCDwoNCgUFAwJUAhIEzAgSFAoMCgQFAwJVEgTNCAIVCg0KBQUDAlUBEgTNCAIPCg0KBQUDAlUCEgTNCBIUCgwKBAUDAlYSBM4IAhUKDQoFBQMCVgESBM4IAg8KDQoFBQMCVgISBM4IEhQKDAoEBQMCVxIEzwgCFQoNCgUFAwJXARIEzwgCDwoNCgUFAwJXAhIEzwgSFAoMCgQFAwJYEgTQCAIVCg0KBQUDAlgBEgTQCAIPCg0KBQUDAlgCEgTQCBIUCgwKBAUDAlkSBNEIAhUKDQoFBQMCWQESBNEIAg8KDQoFBQMCWQISBNEIEhQKDAoEBQMCWhIE0ggCFQoNCgUFAwJaARIE0ggCDwoNCgUFAwJaAhIE0ggSFAoMCgQFAwJbEgTTCAIVCg0KBQUDAlsBEgTTCAIPCg0KBQUDAlsCEgTTCBIUCgwKBAUDAlwSBNQIAhUKDQoFBQMCXAESBNQIAg8KDQoFBQMCXAISBNQIEhQKDAoEBQMCXRIE1QgCFQoNCgUFAwJdARIE1QgCDwoNCgUFAwJdAhIE1QgSFAoMCgQFAwJeEgTWCAIVCg0KBQUDAl4BEgTWCAIPCg0KBQUDAl4CEgTWCBIUCgwKBAUDAl8SBNcIAhUKDQoFBQMCXwESBNcIAg8KDQoFBQMCXwISBNcIEhQKDAoEBQMCYBIE2AgCFQoNCgUFAwJgARIE2AgCDwoNCgUFAwJgAhIE2AgSFAoMCgQFAwJhEgTZCAIVCg0KBQUDAmEBEgTZCAIPCg0KBQUDAmECEgTZCBIUCgwKBAUDAmISBNoIAhUKDQoFBQMCYgESBNoIAg8KDQoFBQMCYgISBNoIEhQKDAoEBQMCYxIE2wgCFQoNCgUFAwJjARIE2wgCDwoNCgUFAwJjAhIE2wgSFAoMCgQFAwJkEgTcCAIXCg0KBQUDAmQBEgTcCAIQCg0KBQUDAmQCEgTcCBMWCr8QCihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9hLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvOjMKA29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjQhgMgASgJUgNvcHRCHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zSoMPCgYSBB4ALAEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADcKCQoCCCUSAyIANwrEAQoCAwASAygAKjK4ASBUaGlzIGZpbGUgaXMgdXNlZCBhcyBwYXJ0IG9mIGEgdW5pdCB0ZXN0IGZvciBpc3N1ZSA2OTM2CiBXZSBkb24ndCBuZWVkIHRvIHVzZSBpdCwgd2UganVzdCBoYXZlIHRvIGltcG9ydCBpdCBpbiBib3RoCiAiZXh0ZW5zaW9uc19pc3N1ZTY5MzZfYi5wcm90byIgYW5kICJleHRlbnNpb25zX2lzc3VlNjkzNl9jLnByb3RvIgoKCQoBBxIEKgAsAQoJCgIHABIDKwIVCgoKAwcAAhIDKgclCgoKAwcABRIDKwIICgoKAwcAARIDKwkMCgoKAwcAAxIDKw8UYgZwcm90bzMK5Q8KKGNzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWU2OTM2X2IucHJvdG8SD3VuaXR0ZXN0X2lzc3VlcxooY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pc3N1ZTY5MzZfYS5wcm90byIOCgNGb286B4K1GANmb29CHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zSsYOCgYSBB4ALAEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoJCgIDABIDIgAyCggKAQgSAyQANwoJCgIIJRIDJAA3CpsBCgIEABIEKgAsATKOASBUaGlzIGZpbGUgaXMgdXNlZCBhcyBwYXJ0IG9mIGEgdW5pdCB0ZXN0IGZvciBpc3N1ZSA2OTM2CiBXZSBkb24ndCBuZWVkIHRvIHVzZSBpdCwgd2UganVzdCBoYXZlIHRvIGltcG9ydCBpdCBpbgogInVuaXR0ZXN0X2lzc3VlNjkzNl9jLnByb3RvIgoKCgoDBAABEgMqCAsKCgoDBAAHEgMrAhcKDQoGBAAH0IYDEgMrAhdiBnByb3RvMwrgEAooY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pc3N1ZTY5MzZfYy5wcm90bxIPdW5pdHRlc3RfaXNzdWVzGihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9hLnByb3RvGihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9iLnByb3RvIjYKA0JhchImCgNmb28YASABKAsyFC51bml0dGVzdF9pc3N1ZXMuRm9vUgNmb286B4K1GANiYXJCHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zSu8OCgYSBB4ALgEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoJCgIDABIDIgAyCgkKAgMBEgMjADIKCAoBCBIDJQA3CgkKAgglEgMlADcKggEKAgQAEgQqAC4BMnYgVGhpcyBmaWxlIGlzIHVzZWQgYXMgcGFydCBvZiBhIHVuaXQgdGVzdCBmb3IgaXNzdWUgNjkzNgogV2UgZG9uJ3QgbmVlZCB0byB1c2UgaXQsIHdlIGp1c3QgaGF2ZSB0byBsb2FkIGl0IGF0IHJ1bnRpbWUKCgoKAwQAARIDKggLCgoKAwQABxIDKwIXCg0KBgQAB9CGAxIDKwIXCgsKBAQAAgASAy0CDgoMCgUEAAIABhIDLQIFCgwKBQQAAgABEgMtBgkKDAoFBAACAAMSAy0MDWIGcHJvdG8zCvMYCjRjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLnByb3RvEilwcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucxogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8iWQoKRm9vT3B0aW9ucxImCgdpbnRfb3B0GAEgASgFQg3KPgoIAcA+Aso+AggDUgZpbnRPcHQSGAoDZm9vGAIgASgFQgbKPgMQ0glSA2ZvbyoJCOgHEICAgIACOkUKC2Jhcl9vcHRpb25zEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjoByABKAVCBMA+0glSCmJhck9wdGlvbnM6dgoLZm9vX29wdGlvbnMSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGOkHIAEoCzI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnNSCmZvb09wdGlvbnM6VgoLZm9vX2ludF9vcHQSNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zGOgHIAEoBVIJZm9vSW50T3B0Oo0BCgtmb29fZm9vX29wdBI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnMY6QcgASgLMjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9uc1IJZm9vRm9vT3B0QjSqAjFVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvcy5TZWxmcmVmZXJlbnRpYWxPcHRpb25zSrUTCgYSBB4APgEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAMgoJCgIDABIDIgAqCggKAQgSAyQATgoJCgIIJRIDJABOCgoKAgQAEgQmADIBCgoKAwQAARIDJggSClAKBAQAAgASBCgCLAUaQiBDdXN0b20gZmllbGQgb3B0aW9uIHVzZWQgaW4gZGVmaW5pdGlvbiBvZiB0aGUgZXh0ZW5zaW9uIG1lc3NhZ2UuCgoMCgUEAAIABBIDKAIKCgwKBQQAAgAFEgMoCxAKDAoFBAACAAESAygRGAoMCgUEAAIAAxIDKBscCg0KBQQAAgAIEgQoHSwECg8KBwQAAgAI6QcSBCgeLAMKVQoEBAACARIDLwI5GkggQ3VzdG9tIGZpZWxkIG9wdGlvbiB1c2VkIGluIGRlZmluaXRpb24gb2YgdGhlIGN1c3RvbSBvcHRpb24ncyBtZXNzYWdlLgoKDAoFBAACAQQSAy8CCgoMCgUEAAIBBRIDLwsQCgwKBQQAAgEBEgMvERQKDAoFBAACAQMSAy8XGAoMCgUEAAIBCBIDLxk4Cg4KBwQAAgEI6QcSAy8aNwoKCgMEAAUSAzECGQoLCgQEAAUAEgMxDRgKDAoFBAAFAAESAzENEQoMCgUEAAUAAhIDMRUYCgkKAQcSBDQAOQEKTQoCBwASAzYCOxpCIEN1c3RvbSBmaWVsZCBvcHRpb24gdXNlZCBvbiB0aGUgZGVmaW5pdGlvbiBvZiB0aGF0IGZpZWxkIG9wdGlvbi4KCgoKAwcAAhIDNAcjCgoKAwcABBIDNgIKCgoKAwcABRIDNgsQCgoKAwcAARIDNhEcCgoKAwcAAxIDNh8jCgoKAwcACBIDNiQ6CgwKBQcACOgHEgM2JTkKCQoCBwESAzgCKQoKCgMHAQISAzQHIwoKCgMHAQQSAzgCCgoKCgMHAQYSAzgLFQoKCgMHAQESAzgWIQoKCgMHAQMSAzgkKAoJCgEHEgQ7AD4BCgkKAgcCEgM8AiQKCgoDBwICEgM7BxEKCgoDBwIEEgM8AgoKCgoDBwIFEgM8CxAKCgoDBwIBEgM8ERwKCgoDBwIDEgM8HyMKCQoCBwMSAz0CKQoKCgMHAwISAzsHEQoKCgMHAwQSAz0CCgoKCgMHAwYSAz0LFQoKCgMHAwESAz0WIQoKCgMHAwMSAz0kKArELgoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjYKA0FueRIZCgh0eXBlX3VybBgBIAEoCVIHdHlwZVVybBIUCgV2YWx1ZRgCIAEoDFIFdmFsdWVCdgoTY29tLmdvb2dsZS5wcm90b2J1ZkIIQW55UHJvdG9QAVosZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vYW55cGKiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK3SwKBxIFHgChAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiAEMKCQoCCAsSAyIAQwoICgEIEgMjACwKCQoCCAESAyMALAoICgEIEgMkACkKCQoCCAgSAyQAKQoICgEIEgMlACIKCQoCCAoSAyUAIgoICgEIEgMmACEKCQoCCCQSAyYAIQoICgEIEgMnADsKCQoCCCUSAycAOwr8EQoCBAASBX8AoQEBGu4RIGBBbnlgIGNvbnRhaW5zIGFuIGFyYml0cmFyeSBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlIGFsb25nIHdpdGggYQogVVJMIHRoYXQgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkIG1lc3NhZ2UuCgogUHJvdG9idWYgbGlicmFyeSBwcm92aWRlcyBzdXBwb3J0IHRvIHBhY2svdW5wYWNrIEFueSB2YWx1ZXMgaW4gdGhlIGZvcm0KIG9mIHV0aWxpdHkgZnVuY3Rpb25zIG9yIGFkZGl0aW9uYWwgZ2VuZXJhdGVkIG1ldGhvZHMgb2YgdGhlIEFueSB0eXBlLgoKIEV4YW1wbGUgMTogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBDKysuCgogICAgIEZvbyBmb28gPSAuLi47CiAgICAgQW55IGFueTsKICAgICBhbnkuUGFja0Zyb20oZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LlVucGFja1RvKCZmb28pKSB7CiAgICAgICAuLi4KICAgICB9CgogRXhhbXBsZSAyOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEphdmEuCgogICAgIEZvbyBmb28gPSAuLi47CiAgICAgQW55IGFueSA9IEFueS5wYWNrKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5pcyhGb28uY2xhc3MpKSB7CiAgICAgICBmb28gPSBhbnkudW5wYWNrKEZvby5jbGFzcyk7CiAgICAgfQogICAgIC8vIG9yIC4uLgogICAgIGlmIChhbnkuaXNTYW1lVHlwZUFzKEZvby5nZXREZWZhdWx0SW5zdGFuY2UoKSkpIHsKICAgICAgIGZvbyA9IGFueS51bnBhY2soRm9vLmdldERlZmF1bHRJbnN0YW5jZSgpKTsKICAgICB9CgogIEV4YW1wbGUgMzogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBQeXRob24uCgogICAgIGZvbyA9IEZvbyguLi4pCiAgICAgYW55ID0gQW55KCkKICAgICBhbnkuUGFjayhmb28pCiAgICAgLi4uCiAgICAgaWYgYW55LklzKEZvby5ERVNDUklQVE9SKToKICAgICAgIGFueS5VbnBhY2soZm9vKQogICAgICAgLi4uCgogIEV4YW1wbGUgNDogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBHbwoKICAgICAgZm9vIDo9ICZwYi5Gb297Li4ufQogICAgICBhbnksIGVyciA6PSBhbnlwYi5OZXcoZm9vKQogICAgICBpZiBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQogICAgICAuLi4KICAgICAgZm9vIDo9ICZwYi5Gb297fQogICAgICBpZiBlcnIgOj0gYW55LlVubWFyc2hhbFRvKGZvbyk7IGVyciAhPSBuaWwgewogICAgICAgIC4uLgogICAgICB9CgogVGhlIHBhY2sgbWV0aG9kcyBwcm92aWRlZCBieSBwcm90b2J1ZiBsaWJyYXJ5IHdpbGwgYnkgZGVmYXVsdCB1c2UKICd0eXBlLmdvb2dsZWFwaXMuY29tL2Z1bGwudHlwZS5uYW1lJyBhcyB0aGUgdHlwZSBVUkwgYW5kIHRoZSB1bnBhY2sKIG1ldGhvZHMgb25seSB1c2UgdGhlIGZ1bGx5IHF1YWxpZmllZCB0eXBlIG5hbWUgYWZ0ZXIgdGhlIGxhc3QgJy8nCiBpbiB0aGUgdHlwZSBVUkwsIGZvciBleGFtcGxlICJmb28uYmFyLmNvbS94L3kueiIgd2lsbCB5aWVsZCB0eXBlCiBuYW1lICJ5LnoiLgoKIEpTT04KID09PT0KIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBBbnlgIHZhbHVlIHVzZXMgdGhlIHJlZ3VsYXIKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXNlcmlhbGl6ZWQsIGVtYmVkZGVkIG1lc3NhZ2UsIHdpdGggYW4KIGFkZGl0aW9uYWwgZmllbGQgYEB0eXBlYCB3aGljaCBjb250YWlucyB0aGUgdHlwZSBVUkwuIEV4YW1wbGU6CgogICAgIHBhY2thZ2UgZ29vZ2xlLnByb2ZpbGU7CiAgICAgbWVzc2FnZSBQZXJzb24gewogICAgICAgc3RyaW5nIGZpcnN0X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGxhc3RfbmFtZSA9IDI7CiAgICAgfQoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvZmlsZS5QZXJzb24iLAogICAgICAgImZpcnN0TmFtZSI6IDxzdHJpbmc+LAogICAgICAgImxhc3ROYW1lIjogPHN0cmluZz4KICAgICB9CgogSWYgdGhlIGVtYmVkZGVkIG1lc3NhZ2UgdHlwZSBpcyB3ZWxsLWtub3duIGFuZCBoYXMgYSBjdXN0b20gSlNPTgogcmVwcmVzZW50YXRpb24sIHRoYXQgcmVwcmVzZW50YXRpb24gd2lsbCBiZSBlbWJlZGRlZCBhZGRpbmcgYSBmaWVsZAogYHZhbHVlYCB3aGljaCBob2xkcyB0aGUgY3VzdG9tIEpTT04gaW4gYWRkaXRpb24gdG8gdGhlIGBAdHlwZWAKIGZpZWxkLiBFeGFtcGxlIChmb3IgbWVzc2FnZSBbZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXVtdKToKCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIiwKICAgICAgICJ2YWx1ZSI6ICIxLjIxMnMiCiAgICAgfQoKCgoKAwQAARIDfwgLCrwLCgQEAAIAEgSdAQIWGq0LIEEgVVJML3Jlc291cmNlIG5hbWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkCiBwcm90b2NvbCBidWZmZXIgbWVzc2FnZS4gVGhpcyBzdHJpbmcgbXVzdCBjb250YWluIGF0IGxlYXN0CiBvbmUgIi8iIGNoYXJhY3Rlci4gVGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgVVJMJ3MgcGF0aCBtdXN0IHJlcHJlc2VudAogdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSB0eXBlIChhcyBpbgogYHBhdGgvZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uYCkuIFRoZSBuYW1lIHNob3VsZCBiZSBpbiBhIGNhbm9uaWNhbCBmb3JtCiAoZS5nLiwgbGVhZGluZyAiLiIgaXMgbm90IGFjY2VwdGVkKS4KCiBJbiBwcmFjdGljZSwgdGVhbXMgdXN1YWxseSBwcmVjb21waWxlIGludG8gdGhlIGJpbmFyeSBhbGwgdHlwZXMgdGhhdCB0aGV5CiBleHBlY3QgaXQgdG8gdXNlIGluIHRoZSBjb250ZXh0IG9mIEFueS4gSG93ZXZlciwgZm9yIFVSTHMgd2hpY2ggdXNlIHRoZQogc2NoZW1lIGBodHRwYCwgYGh0dHBzYCwgb3Igbm8gc2NoZW1lLCBvbmUgY2FuIG9wdGlvbmFsbHkgc2V0IHVwIGEgdHlwZQogc2VydmVyIHRoYXQgbWFwcyB0eXBlIFVSTHMgdG8gbWVzc2FnZSBkZWZpbml0aW9ucyBhcyBmb2xsb3dzOgoKICogSWYgbm8gc2NoZW1lIGlzIHByb3ZpZGVkLCBgaHR0cHNgIGlzIGFzc3VtZWQuCiAqIEFuIEhUVFAgR0VUIG9uIHRoZSBVUkwgbXVzdCB5aWVsZCBhIFtnb29nbGUucHJvdG9idWYuVHlwZV1bXQogICB2YWx1ZSBpbiBiaW5hcnkgZm9ybWF0LCBvciBwcm9kdWNlIGFuIGVycm9yLgogKiBBcHBsaWNhdGlvbnMgYXJlIGFsbG93ZWQgdG8gY2FjaGUgbG9va3VwIHJlc3VsdHMgYmFzZWQgb24gdGhlCiAgIFVSTCwgb3IgaGF2ZSB0aGVtIHByZWNvbXBpbGVkIGludG8gYSBiaW5hcnkgdG8gYXZvaWQgYW55CiAgIGxvb2t1cC4gVGhlcmVmb3JlLCBiaW5hcnkgY29tcGF0aWJpbGl0eSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQKICAgb24gY2hhbmdlcyB0byB0eXBlcy4gKFVzZSB2ZXJzaW9uZWQgdHlwZSBuYW1lcyB0byBtYW5hZ2UKICAgYnJlYWtpbmcgY2hhbmdlcy4pCgogTm90ZTogdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBvZmZpY2lhbAogcHJvdG9idWYgcmVsZWFzZSwgYW5kIGl0IGlzIG5vdCB1c2VkIGZvciB0eXBlIFVSTHMgYmVnaW5uaW5nIHdpdGgKIHR5cGUuZ29vZ2xlYXBpcy5jb20uIEFzIG9mIE1heSAyMDIzLCB0aGVyZSBhcmUgbm8gd2lkZWx5IHVzZWQgdHlwZSBzZXJ2ZXIKIGltcGxlbWVudGF0aW9ucyBhbmQgbm8gcGxhbnMgdG8gaW1wbGVtZW50IG9uZS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoNCgUEAAIABRIEnQECCAoNCgUEAAIAARIEnQEJEQoNCgUEAAIAAxIEnQEUFQpXCgQEAAIBEgSgAQISGkkgTXVzdCBiZSBhIHZhbGlkIHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG9mIHRoZSBhYm92ZSBzcGVjaWZpZWQgdHlwZS4KCg0KBQQAAgEFEgSgAQIHCg0KBQQAAgEBEgSgAQgNCg0KBQQAAgEDEgSgARARYgZwcm90bzMKvhIKJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiwKDVNvdXJjZUNvbnRleHQSGwoJZmlsZV9uYW1lGAEgASgJUghmaWxlTmFtZUKKAQoTY29tLmdvb2dsZS5wcm90b2J1ZkISU291cmNlQ29udGV4dFByb3RvUAFaNmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3NvdXJjZWNvbnRleHRwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rBEAoGEgQeAC8BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAsCgkKAggBEgMiACwKCAoBCBIDIwAzCgkKAggIEgMjADMKCAoBCBIDJAAiCgkKAggKEgMkACIKCAoBCBIDJQAhCgkKAggkEgMlACEKCAoBCBIDJgA7CgkKAgglEgMmADsKCAoBCBIDJwBNCgkKAggLEgMnAE0KgwEKAgQAEgQrAC8BGncgYFNvdXJjZUNvbnRleHRgIHJlcHJlc2VudHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZSBvZiBhCiBwcm90b2J1ZiBlbGVtZW50LCBsaWtlIHRoZSBmaWxlIGluIHdoaWNoIGl0IGlzIGRlZmluZWQuCgoKCgMEAAESAysIFQqjAQoEBAACABIDLgIXGpUBIFRoZSBwYXRoLXF1YWxpZmllZCBuYW1lIG9mIHRoZSAucHJvdG8gZmlsZSB0aGF0IGNvbnRhaW5lZCB0aGUgYXNzb2NpYXRlZAogcHJvdG9idWYgZWxlbWVudC4gIEZvciBleGFtcGxlOiBgImdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90byJgLgoKDAoFBAACAAUSAy4CCAoMCgUEAAIAARIDLgkSCgwKBQQAAgADEgMuFRZiBnByb3RvMwr7SQoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8SD2dvb2dsZS5wcm90b2J1ZhoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxokZ29vZ2xlL3Byb3RvYnVmL3NvdXJjZV9jb250ZXh0LnByb3RvIqcCCgRUeXBlEhIKBG5hbWUYASABKAlSBG5hbWUSLgoGZmllbGRzGAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkZpZWxkUgZmaWVsZHMSFgoGb25lb2ZzGAMgAygJUgZvbmVvZnMSMQoHb3B0aW9ucxgEIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBiABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgSGAoHZWRpdGlvbhgHIAEoCVIHZWRpdGlvbiK0BgoFRmllbGQSLwoEa2luZBgBIAEoDjIbLmdvb2dsZS5wcm90b2J1Zi5GaWVsZC5LaW5kUgRraW5kEkQKC2NhcmRpbmFsaXR5GAIgASgOMiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLkNhcmRpbmFsaXR5UgtjYXJkaW5hbGl0eRIWCgZudW1iZXIYAyABKAVSBm51bWJlchISCgRuYW1lGAQgASgJUgRuYW1lEhkKCHR5cGVfdXJsGAYgASgJUgd0eXBlVXJsEh8KC29uZW9mX2luZGV4GAcgASgFUgpvbmVvZkluZGV4EhYKBnBhY2tlZBgIIAEoCFIGcGFja2VkEjEKB29wdGlvbnMYCSADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhsKCWpzb25fbmFtZRgKIAEoCVIIanNvbk5hbWUSIwoNZGVmYXVsdF92YWx1ZRgLIAEoCVIMZGVmYXVsdFZhbHVlIsgCCgRLaW5kEhAKDFRZUEVfVU5LTk9XThAAEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJ0CgtDYXJkaW5hbGl0eRIXChNDQVJESU5BTElUWV9VTktOT1dOEAASGAoUQ0FSRElOQUxJVFlfT1BUSU9OQUwQARIYChRDQVJESU5BTElUWV9SRVFVSVJFRBACEhgKFENBUkRJTkFMSVRZX1JFUEVBVEVEEAMimQIKBEVudW0SEgoEbmFtZRgBIAEoCVIEbmFtZRI4CgllbnVtdmFsdWUYAiADKAsyGi5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlUgllbnVtdmFsdWUSMQoHb3B0aW9ucxgDIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBCABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBSABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgSGAoHZWRpdGlvbhgGIAEoCVIHZWRpdGlvbiJqCglFbnVtVmFsdWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucyJICgZPcHRpb24SEgoEbmFtZRgBIAEoCVIEbmFtZRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBXZhbHVlKkMKBlN5bnRheBIRCg1TWU5UQVhfUFJPVE8yEAASEQoNU1lOVEFYX1BST1RPMxABEhMKD1NZTlRBWF9FRElUSU9OUxACQnsKE2NvbS5nb29nbGUucHJvdG9idWZCCVR5cGVQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90eXBlcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKjTsKBxIFHgDAAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FS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b3B0aW9uJ3MgdmFsdWUgcGFja2VkIGluIGFuIEFueSBtZXNzYWdlLiBJZiB0aGUgdmFsdWUgaXMgYSBwcmltaXRpdmUsCiB0aGUgY29ycmVzcG9uZGluZyB3cmFwcGVyIHR5cGUgZGVmaW5lZCBpbiBnb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8KIHNob3VsZCBiZSB1c2VkLiBJZiB0aGUgdmFsdWUgaXMgYW4gZW51bSwgaXQgc2hvdWxkIGJlIHN0b3JlZCBhcyBhbiBpbnQzMgogdmFsdWUgdXNpbmcgdGhlIGdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlIHR5cGUuCgoNCgUEBAIBBhIEtQECBQoNCgUEBAIBARIEtQEGCwoNCgUEBAIBAxIEtQEODwpJCgIFABIGuQEAwAEBGjsgVGhlIHN5bnRheCBpbiB3aGljaCBhIHByb3RvY29sIGJ1ZmZlciBlbGVtZW50IGlzIGRlZmluZWQuCgoLCgMFAAESBLkBBQsKIAoEBQACABIEuwECFBoSIFN5bnRheCBgcHJvdG8yYC4KCg0KBQUAAgABEgS7AQIPCg0KBQUAAgACEgS7ARITCiAKBAUAAgESBL0BAhQaEiBTeW50YXggYHByb3RvM2AuCgoNCgUFAAIBARIEvQECDwoNCgUFAAIBAhIEvQESEwoiCgQFAAICEgS/AQIWGhQgU3ludGF4IGBlZGl0aW9uc2AuCgoNCgUFAAICARIEvwECEQoNCgUFAAICAhIEvwEUFWIGcHJvdG8zCppDChlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvEg9nb29nbGUucHJvdG9idWYaJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8iwQIKA0FwaRISCgRuYW1lGAEgASgJUgRuYW1lEjEKB21ldGhvZHMYAiADKAsyFy5nb29nbGUucHJvdG9idWYuTWV0aG9kUgdtZXRob2RzEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhgKB3ZlcnNpb24YBCABKAlSB3ZlcnNpb24SRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIuCgZtaXhpbnMYBiADKAsyFi5nb29nbGUucHJvdG9idWYuTWl4aW5SBm1peGlucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgisgIKBk1ldGhvZBISCgRuYW1lGAEgASgJUgRuYW1lEigKEHJlcXVlc3RfdHlwZV91cmwYAiABKAlSDnJlcXVlc3RUeXBlVXJsEisKEXJlcXVlc3Rfc3RyZWFtaW5nGAMgASgIUhByZXF1ZXN0U3RyZWFtaW5nEioKEXJlc3BvbnNlX3R5cGVfdXJsGAQgASgJUg9yZXNwb25zZVR5cGVVcmwSLQoScmVzcG9uc2Vfc3RyZWFtaW5nGAUgASgIUhFyZXNwb25zZVN0cmVhbWluZxIxCgdvcHRpb25zGAYgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgiLwoFTWl4aW4SEgoEbmFtZRgBIAEoCVIEbmFtZRISCgRyb290GAIgASgJUgRyb290QnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFwaVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FwaXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv87CgcSBR4AzgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIALgoJCgIDARIDIwAkCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYAKQoJCgIICBIDJgApCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCggKAQgSAykAOwoJCgIIJRIDKQA7CggKAQgSAyoAQwoJCgIICxIDKgBDCqsECgIEABIENQBfARqeBCBBcGkgaXMgYSBsaWdodC13ZWlnaHQgZGVzY3JpcHRvciBmb3IgYW4gQVBJIEludGVyZmFjZS4KCiBJbnRlcmZhY2VzIGFyZSBhbHNvIGRlc2NyaWJlZCBhcyAicHJvdG9jb2wgYnVmZmVyIHNlcnZpY2VzIiBpbiBzb21lIGNvbnRleHRzLAogc3VjaCBhcyBieSB0aGUgInNlcnZpY2UiIGtleXdvcmQgaW4gYSAucHJvdG8gZmlsZSwgYnV0IHRoZXkgYXJlIGRpZmZlcmVudAogZnJvbSBBUEkgU2VydmljZXMsIHdoaWNoIHJlcHJlc2VudCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIGFuIGludGVyZmFjZQogYXMgb3Bwb3NlZCB0byBzaW1wbHkgYSBkZXNjcmlwdGlvbiBvZiBtZXRob2RzIGFuZCBiaW5kaW5ncy4gVGhleSBhcmUgYWxzbwogc29tZXRpbWVzIHNpbXBseSByZWZlcnJlZCB0byBhcyAiQVBJcyIgaW4gb3RoZXIgY29udGV4dHMsIHN1Y2ggYXMgdGhlIG5hbWUgb2YKIHRoaXMgbWVzc2FnZSBpdHNlbGYuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vYXBpcy9kZXNpZ24vZ2xvc3NhcnkgZm9yCiBkZXRhaWxlZCB0ZXJtaW5vbG9neS4KCgoKAwQAARIDNQgLCnsKBAQAAgASAzgCEhpuIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGlzIGludGVyZmFjZSwgaW5jbHVkaW5nIHBhY2thZ2UgbmFtZQogZm9sbG93ZWQgYnkgdGhlIGludGVyZmFjZSdzIHNpbXBsZSBuYW1lLgoKDAoFBAACAAUSAzgCCAoMCgUEAAIAARIDOAkNCgwKBQQAAgADEgM4EBEKQwoEBAACARIDOwIeGjYgVGhlIG1ldGhvZHMgb2YgdGhpcyBpbnRlcmZhY2UsIGluIHVuc3BlY2lmaWVkIG9yZGVyLgoKDAoFBAACAQQSAzsCCgoMCgUEAAIBBhIDOwsRCgwKBQQAAgEBEgM7EhkKDAoFBAACAQMSAzscHQo2CgQEAAICEgM+Ah4aKSBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGludGVyZmFjZS4KCgwKBQQAAgIEEgM+AgoKDAoFBAACAgYSAz4LEQoMCgUEAAICARIDPhIZCgwKBQQAAgIDEgM+HB0KgQgKBAQAAgMSA1QCFRrzByBBIHZlcnNpb24gc3RyaW5nIGZvciB0aGlzIGludGVyZmFjZS4gSWYgc3BlY2lmaWVkLCBtdXN0IGhhdmUgdGhlIGZvcm0KIGBtYWpvci12ZXJzaW9uLm1pbm9yLXZlcnNpb25gLCBhcyBpbiBgMS4xMGAuIElmIHRoZSBtaW5vciB2ZXJzaW9uIGlzCiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB6ZXJvLiBJZiB0aGUgZW50aXJlIHZlcnNpb24gZmllbGQgaXMgZW1wdHksIHRoZQogbWFqb3IgdmVyc2lvbiBpcyBkZXJpdmVkIGZyb20gdGhlIHBhY2thZ2UgbmFtZSwgYXMgb3V0bGluZWQgYmVsb3cuIElmIHRoZQogZmllbGQgaXMgbm90IGVtcHR5LCB0aGUgdmVyc2lvbiBpbiB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdmVyaWZpZWQgdG8gYmUKIGNvbnNpc3RlbnQgd2l0aCB3aGF0IGlzIHByb3ZpZGVkIGhlcmUuCgogVGhlIHZlcnNpb25pbmcgc2NoZW1hIHVzZXMgW3NlbWFudGljCiB2ZXJzaW9uaW5nXShodHRwOi8vc2VtdmVyLm9yZykgd2hlcmUgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyCiBpbmRpY2F0ZXMgYSBicmVha2luZyBjaGFuZ2UgYW5kIHRoZSBtaW5vciB2ZXJzaW9uIGFuIGFkZGl0aXZlLAogbm9uLWJyZWFraW5nIGNoYW5nZS4gQm90aCB2ZXJzaW9uIG51bWJlcnMgYXJlIHNpZ25hbHMgdG8gdXNlcnMKIHdoYXQgdG8gZXhwZWN0IGZyb20gZGlmZmVyZW50IHZlcnNpb25zLCBhbmQgc2hvdWxkIGJlIGNhcmVmdWxseQogY2hvc2VuIGJhc2VkIG9uIHRoZSBwcm9kdWN0IHBsYW4uCgogVGhlIG1ham9yIHZlcnNpb24gaXMgYWxzbyByZWZsZWN0ZWQgaW4gdGhlIHBhY2thZ2UgbmFtZSBvZiB0aGUKIGludGVyZmFjZSwgd2hpY2ggbXVzdCBlbmQgaW4gYHY8bWFqb3ItdmVyc2lvbj5gLCBhcyBpbgogYGdvb2dsZS5mZWF0dXJlLnYxYC4gRm9yIG1ham9yIHZlcnNpb25zIDAgYW5kIDEsIHRoZSBzdWZmaXggY2FuCiBiZSBvbWl0dGVkLiBaZXJvIG1ham9yIHZlcnNpb25zIG11c3Qgb25seSBiZSB1c2VkIGZvcgogZXhwZXJpbWVudGFsLCBub24tR0EgaW50ZXJmYWNlcy4KCgoMCgUEAAIDBRIDVAIICgwKBQQAAgMBEgNUCRAKDAoFBAACAwMSA1QTFApbCgQEAAIEEgNYAiMaTiBTb3VyY2UgY29udGV4dCBmb3IgdGhlIHByb3RvY29sIGJ1ZmZlciBzZXJ2aWNlIHJlcHJlc2VudGVkIGJ5IHRoaXMKIG1lc3NhZ2UuCgoMCgUEAAIEBhIDWAIPCgwKBQQAAgQBEgNYEB4KDAoFBAACBAMSA1ghIgoyCgQEAAIFEgNbAhwaJSBJbmNsdWRlZCBpbnRlcmZhY2VzLiBTZWUgW01peGluXVtdLgoKDAoFBAACBQQSA1sCCgoMCgUEAAIFBhIDWwsQCgwKBQQAAgUBEgNbERcKDAoFBAACBQMSA1saGwowCgQEAAIGEgNeAhQaIyBUaGUgc291cmNlIHN5bnRheCBvZiB0aGUgc2VydmljZS4KCgwKBQQAAgYGEgNeAggKDAoFBAACBgESA14JDwoMCgUEAAIGAxIDXhITCj0KAgQBEgRiAHcBGjEgTWV0aG9kIHJlcHJlc2VudHMgYSBtZXRob2Qgb2YgYW4gQVBJIGludGVyZmFjZS4KCgoKAwQBARIDYggOCi4KBAQBAgASA2QCEhohIFRoZSBzaW1wbGUgbmFtZSBvZiB0aGlzIG1ldGhvZC4KCgwKBQQBAgAFEgNkAggKDAoFBAECAAESA2QJDQoMCgUEAQIAAxIDZBARCi8KBAQBAgESA2cCHhoiIEEgVVJMIG9mIHRoZSBpbnB1dCBtZXNzYWdlIHR5cGUuCgoMCgUEAQIBBRIDZwIICgwKBQQBAgEBEgNnCRkKDAoFBAECAQMSA2ccHQowCgQEAQICEgNqAh0aIyBJZiB0cnVlLCB0aGUgcmVxdWVzdCBpcyBzdHJlYW1lZC4KCgwKBQQBAgIFEgNqAgYKDAoFBAECAgESA2oHGAoMCgUEAQICAxIDahscCjIKBAQBAgMSA20CHxolIFRoZSBVUkwgb2YgdGhlIG91dHB1dCBtZXNzYWdlIHR5cGUuCgoMCgUEAQIDBRIDbQIICgwKBQQBAgMBEgNtCRoKDAoFBAECAwMSA20dHgoxCgQEAQIEEgNwAh4aJCBJZiB0cnVlLCB0aGUgcmVzcG9uc2UgaXMgc3RyZWFtZWQuCgoMCgUEAQIEBRIDcAIGCgwKBQQBAgQBEgNwBxkKDAoFBAECBAMSA3AcHQozCgQEAQIFEgNzAh4aJiBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIG1ldGhvZC4KCgwKBQQBAgUEEgNzAgoKDAoFBAECBQYSA3MLEQoMCgUEAQIFARIDcxIZCgwKBQQBAgUDEgNzHB0KMAoEBAECBhIDdgIUGiMgVGhlIHNvdXJjZSBzeW50YXggb2YgdGhpcyBtZXRob2QuCgoMCgUEAQIGBhIDdgIICgwKBQQBAgYBEgN2CQ8KDAoFBAECBgMSA3YSEwrJEwoCBAISBscBAM4BARq6EyBEZWNsYXJlcyBhbiBBUEkgSW50ZXJmYWNlIHRvIGJlIGluY2x1ZGVkIGluIHRoaXMgaW50ZXJmYWNlLiBUaGUgaW5jbHVkaW5nCiBpbnRlcmZhY2UgbXVzdCByZWRlY2xhcmUgYWxsIHRoZSBtZXRob2RzIGZyb20gdGhlIGluY2x1ZGVkIGludGVyZmFjZSwgYnV0CiBkb2N1bWVudGF0aW9uIGFuZCBvcHRpb25zIGFyZSBpbmhlcml0ZWQgYXMgZm9sbG93czoKCiAtIElmIGFmdGVyIGNvbW1lbnQgYW5kIHdoaXRlc3BhY2Ugc3RyaXBwaW5nLCB0aGUgZG9jdW1lbnRhdGlvbgogICBzdHJpbmcgb2YgdGhlIHJlZGVjbGFyZWQgbWV0aG9kIGlzIGVtcHR5LCBpdCB3aWxsIGJlIGluaGVyaXRlZAogICBmcm9tIHRoZSBvcmlnaW5hbCBtZXRob2QuCgogLSBFYWNoIGFubm90YXRpb24gYmVsb25naW5nIHRvIHRoZSBzZXJ2aWNlIGNvbmZpZyAoaHR0cCwKICAgdmlzaWJpbGl0eSkgd2hpY2ggaXMgbm90IHNldCBpbiB0aGUgcmVkZWNsYXJlZCBtZXRob2Qgd2lsbCBiZQogICBpbmhlcml0ZWQuCgogLSBJZiBhbiBodHRwIGFubm90YXRpb24gaXMgaW5oZXJpdGVkLCB0aGUgcGF0aCBwYXR0ZXJuIHdpbGwgYmUKICAgbW9kaWZpZWQgYXMgZm9sbG93cy4gQW55IHZlcnNpb24gcHJlZml4IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlCiAgIHZlcnNpb24gb2YgdGhlIGluY2x1ZGluZyBpbnRlcmZhY2UgcGx1cyB0aGUgW3Jvb3RdW10gcGF0aCBpZgogICBzcGVjaWZpZWQuCgogRXhhbXBsZSBvZiBhIHNpbXBsZSBtaXhpbjoKCiAgICAgcGFja2FnZSBnb29nbGUuYWNsLnYxOwogICAgIHNlcnZpY2UgQWNjZXNzQ29udHJvbCB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YxL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICB9CgogICAgIHBhY2thZ2UgZ29vZ2xlLnN0b3JhZ2UudjI7CiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKTsKCiAgICAgICAvLyBHZXQgYSBkYXRhIHJlY29yZC4KICAgICAgIHJwYyBHZXREYXRhKEdldERhdGFSZXF1ZXN0KSByZXR1cm5zIChEYXRhKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn0iOwogICAgICAgfQogICAgIH0KCiBFeGFtcGxlIG9mIGEgbWl4aW4gY29uZmlndXJhdGlvbjoKCiAgICAgYXBpczoKICAgICAtIG5hbWU6IGdvb2dsZS5zdG9yYWdlLnYyLlN0b3JhZ2UKICAgICAgIG1peGluczoKICAgICAgIC0gbmFtZTogZ29vZ2xlLmFjbC52MS5BY2Nlc3NDb250cm9sCgogVGhlIG1peGluIGNvbnN0cnVjdCBpbXBsaWVzIHRoYXQgYWxsIG1ldGhvZHMgaW4gYEFjY2Vzc0NvbnRyb2xgIGFyZQogYWxzbyBkZWNsYXJlZCB3aXRoIHNhbWUgbmFtZSBhbmQgcmVxdWVzdC9yZXNwb25zZSB0eXBlcyBpbgogYFN0b3JhZ2VgLiBBIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG9yIGFubm90YXRpb24gcHJvY2Vzc29yIHdpbGwKIHNlZSB0aGUgZWZmZWN0aXZlIGBTdG9yYWdlLkdldEFjbGAgbWV0aG9kIGFmdGVyIGluaGVydGluZwogZG9jdW1lbnRhdGlvbiBhbmQgYW5ub3RhdGlvbnMgYXMgZm9sbG93czoKCiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIC8vIEdldCB0aGUgdW5kZXJseWluZyBBQ0wgb2JqZWN0LgogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjIve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgICAgLi4uCiAgICAgfQoKIE5vdGUgaG93IHRoZSB2ZXJzaW9uIGluIHRoZSBwYXRoIHBhdHRlcm4gY2hhbmdlZCBmcm9tIGB2MWAgdG8gYHYyYC4KCiBJZiB0aGUgYHJvb3RgIGZpZWxkIGluIHRoZSBtaXhpbiBpcyBzcGVjaWZpZWQsIGl0IHNob3VsZCBiZSBhCiByZWxhdGl2ZSBwYXRoIHVuZGVyIHdoaWNoIGluaGVyaXRlZCBIVFRQIHBhdGhzIGFyZSBwbGFjZWQuIEV4YW1wbGU6CgogICAgIGFwaXM6CiAgICAgLSBuYW1lOiBnb29nbGUuc3RvcmFnZS52Mi5TdG9yYWdlCiAgICAgICBtaXhpbnM6CiAgICAgICAtIG5hbWU6IGdvb2dsZS5hY2wudjEuQWNjZXNzQ29udHJvbAogICAgICAgICByb290OiBhY2xzCgogVGhpcyBpbXBsaWVzIHRoZSBmb2xsb3dpbmcgaW5oZXJpdGVkIEhUVFAgYW5ub3RhdGlvbjoKCiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIC8vIEdldCB0aGUgdW5kZXJseWluZyBBQ0wgb2JqZWN0LgogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjIvYWNscy97cmVzb3VyY2U9Kip9OmdldEFjbCI7CiAgICAgICB9CiAgICAgICAuLi4KICAgICB9CgoLCgMEAgESBMcBCA0KTAoEBAICABIEyQECEho+IFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgaW50ZXJmYWNlIHdoaWNoIGlzIGluY2x1ZGVkLgoKDQoFBAICAAUSBMkBAggKDQoFBAICAAESBMkBCQ0KDQoFBAICAAMSBMkBEBEKWwoEBAICARIEzQECEhpNIElmIG5vbi1lbXB0eSBzcGVjaWZpZXMgYSBwYXRoIHVuZGVyIHdoaWNoIGluaGVyaXRlZCBIVFRQIHBhdGhzCiBhcmUgcm9vdGVkLgoKDQoFBAICAQUSBM0BAggKDQoFBAICAQESBM0BCQ0KDQoFBAICAQMSBM0BEBFiBnByb3RvMwrXJQoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvEg9nb29nbGUucHJvdG9idWYiOgoIRHVyYXRpb24SGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3NCgwEKE2NvbS5nb29nbGUucHJvdG9idWZCDUR1cmF0aW9uUHJvdG9QAVoxZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZHVyYXRpb25wYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rZIwoGEgQeAHIBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBICgkKAggLEgMjAEgKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAuCgkKAggIEgMlAC4KCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsKnRAKAgQAEgRlAHIBGpAQIEEgRHVyYXRpb24gcmVwcmVzZW50cyBhIHNpZ25lZCwgZml4ZWQtbGVuZ3RoIHNwYW4gb2YgdGltZSByZXByZXNlbnRlZAogYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdCBuYW5vc2Vjb25kCiByZXNvbHV0aW9uLiBJdCBpcyBpbmRlcGVuZGVudCBvZiBhbnkgY2FsZW5kYXIgYW5kIGNvbmNlcHRzIGxpa2UgImRheSIKIG9yICJtb250aCIuIEl0IGlzIHJlbGF0ZWQgdG8gVGltZXN0YW1wIGluIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgogdHdvIFRpbWVzdGFtcCB2YWx1ZXMgaXMgYSBEdXJhdGlvbiBhbmQgaXQgY2FuIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQKIGZyb20gYSBUaW1lc3RhbXAuIFJhbmdlIGlzIGFwcHJveGltYXRlbHkgKy0xMCwwMDAgeWVhcnMuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBEdXJhdGlvbiBmcm9tIHR3byBUaW1lc3RhbXBzIGluIHBzZXVkbyBjb2RlLgoKICAgICBUaW1lc3RhbXAgc3RhcnQgPSAuLi47CiAgICAgVGltZXN0YW1wIGVuZCA9IC4uLjsKICAgICBEdXJhdGlvbiBkdXJhdGlvbiA9IC4uLjsKCiAgICAgZHVyYXRpb24uc2Vjb25kcyA9IGVuZC5zZWNvbmRzIC0gc3RhcnQuc2Vjb25kczsKICAgICBkdXJhdGlvbi5uYW5vcyA9IGVuZC5uYW5vcyAtIHN0YXJ0Lm5hbm9zOwoKICAgICBpZiAoZHVyYXRpb24uc2Vjb25kcyA8IDAgJiYgZHVyYXRpb24ubmFub3MgPiAwKSB7CiAgICAgICBkdXJhdGlvbi5zZWNvbmRzICs9IDE7CiAgICAgICBkdXJhdGlvbi5uYW5vcyAtPSAxMDAwMDAwMDAwOwogICAgIH0gZWxzZSBpZiAoZHVyYXRpb24uc2Vjb25kcyA+IDAgJiYgZHVyYXRpb24ubmFub3MgPCAwKSB7CiAgICAgICBkdXJhdGlvbi5zZWNvbmRzIC09IDE7CiAgICAgICBkdXJhdGlvbi5uYW5vcyArPSAxMDAwMDAwMDAwOwogICAgIH0KCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gVGltZXN0YW1wICsgRHVyYXRpb24gaW4gcHNldWRvIGNvZGUuCgogICAgIFRpbWVzdGFtcCBzdGFydCA9IC4uLjsKICAgICBEdXJhdGlvbiBkdXJhdGlvbiA9IC4uLjsKICAgICBUaW1lc3RhbXAgZW5kID0gLi4uOwoKICAgICBlbmQuc2Vjb25kcyA9IHN0YXJ0LnNlY29uZHMgKyBkdXJhdGlvbi5zZWNvbmRzOwogICAgIGVuZC5uYW5vcyA9IHN0YXJ0Lm5hbm9zICsgZHVyYXRpb24ubmFub3M7CgogICAgIGlmIChlbmQubmFub3MgPCAwKSB7CiAgICAgICBlbmQuc2Vjb25kcyAtPSAxOwogICAgICAgZW5kLm5hbm9zICs9IDEwMDAwMDAwMDA7CiAgICAgfSBlbHNlIGlmIChlbmQubmFub3MgPj0gMTAwMDAwMDAwMCkgewogICAgICAgZW5kLnNlY29uZHMgKz0gMTsKICAgICAgIGVuZC5uYW5vcyAtPSAxMDAwMDAwMDAwOwogICAgIH0KCiBFeGFtcGxlIDM6IENvbXB1dGUgRHVyYXRpb24gZnJvbSBkYXRldGltZS50aW1lZGVsdGEgaW4gUHl0aG9uLgoKICAgICB0ZCA9IGRhdGV0aW1lLnRpbWVkZWx0YShkYXlzPTMsIG1pbnV0ZXM9MTApCiAgICAgZHVyYXRpb24gPSBEdXJhdGlvbigpCiAgICAgZHVyYXRpb24uRnJvbVRpbWVkZWx0YSh0ZCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgRHVyYXRpb24gdHlwZSBpcyBlbmNvZGVkIGFzIGEgc3RyaW5nIHJhdGhlciB0aGFuIGFuCiBvYmplY3QsIHdoZXJlIHRoZSBzdHJpbmcgZW5kcyBpbiB0aGUgc3VmZml4ICJzIiAoaW5kaWNhdGluZyBzZWNvbmRzKSBhbmQKIGlzIHByZWNlZGVkIGJ5IHRoZSBudW1iZXIgb2Ygc2Vjb25kcywgd2l0aCBuYW5vc2Vjb25kcyBleHByZXNzZWQgYXMKIGZyYWN0aW9uYWwgc2Vjb25kcy4gRm9yIGV4YW1wbGUsIDMgc2Vjb25kcyB3aXRoIDAgbmFub3NlY29uZHMgc2hvdWxkIGJlCiBlbmNvZGVkIGluIEpTT04gZm9ybWF0IGFzICIzcyIsIHdoaWxlIDMgc2Vjb25kcyBhbmQgMSBuYW5vc2Vjb25kIHNob3VsZAogYmUgZXhwcmVzc2VkIGluIEpTT04gZm9ybWF0IGFzICIzLjAwMDAwMDAwMXMiLCBhbmQgMyBzZWNvbmRzIGFuZCAxCiBtaWNyb3NlY29uZCBzaG91bGQgYmUgZXhwcmVzc2VkIGluIEpTT04gZm9ybWF0IGFzICIzLjAwMDAwMXMiLgoKCgoKAwQAARIDZQgQCtwBCgQEAAIAEgNpAhQazgEgU2lnbmVkIHNlY29uZHMgb2YgdGhlIHNwYW4gb2YgdGltZS4gTXVzdCBiZSBmcm9tIC0zMTUsNTc2LDAwMCwwMDAKIHRvICszMTUsNTc2LDAwMCwwMDAgaW5jbHVzaXZlLiBOb3RlOiB0aGVzZSBib3VuZHMgYXJlIGNvbXB1dGVkIGZyb206CiA2MCBzZWMvbWluICogNjAgbWluL2hyICogMjQgaHIvZGF5ICogMzY1LjI1IGRheXMveWVhciAqIDEwMDAwIHllYXJzCgoMCgUEAAIABRIDaQIHCgwKBQQAAgABEgNpCA8KDAoFBAACAAMSA2kSEwqDAwoEBAACARIDcQISGvUCIFNpZ25lZCBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uIG9mIHRoZSBzcGFuCiBvZiB0aW1lLiBEdXJhdGlvbnMgbGVzcyB0aGFuIG9uZSBzZWNvbmQgYXJlIHJlcHJlc2VudGVkIHdpdGggYSAwCiBgc2Vjb25kc2AgZmllbGQgYW5kIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgYG5hbm9zYCBmaWVsZC4gRm9yIGR1cmF0aW9ucwogb2Ygb25lIHNlY29uZCBvciBtb3JlLCBhIG5vbi16ZXJvIHZhbHVlIGZvciB0aGUgYG5hbm9zYCBmaWVsZCBtdXN0IGJlCiBvZiB0aGUgc2FtZSBzaWduIGFzIHRoZSBgc2Vjb25kc2AgZmllbGQuIE11c3QgYmUgZnJvbSAtOTk5LDk5OSw5OTkKIHRvICs5OTksOTk5LDk5OSBpbmNsdXNpdmUuCgoMCgUEAAIBBRIDcQIHCgwKBQQAAgEBEgNxCA0KDAoFBAACAQMSA3EQEWIGcHJvdG8zCv8RChtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIHCgVFbXB0eUJ9ChNjb20uZ29vZ2xlLnByb3RvYnVmQgpFbXB0eVByb3RvUAFaLmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2VtcHR5cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKvhAKBhIEHgAyEArMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIARQoJCgIICxIDIgBFCggKAQgSAyMALAoJCgIIARIDIwAsCggKAQgSAyQAKwoJCgIICBIDJAArCggKAQgSAyUAIgoJCgIIChIDJQAiCggKAQgSAyYAIQoJCgIIJBIDJgAhCggKAQgSAycAOwoJCgIIJRIDJwA7CggKAQgSAygAHwoJCgIIHxIDKAAfCrsCCgIEABIDMgAQGq8CIEEgZ2VuZXJpYyBlbXB0eSBtZXNzYWdlIHRoYXQgeW91IGNhbiByZS11c2UgdG8gYXZvaWQgZGVmaW5pbmcgZHVwbGljYXRlZAogZW1wdHkgbWVzc2FnZXMgaW4geW91ciBBUElzLiBBIHR5cGljYWwgZXhhbXBsZSBpcyB0byB1c2UgaXQgYXMgdGhlIHJlcXVlc3QKIG9yIHRoZSByZXNwb25zZSB0eXBlIG9mIGFuIEFQSSBtZXRob2QuIEZvciBpbnN0YW5jZToKCiAgICAgc2VydmljZSBGb28gewogICAgICAgcnBjIEJhcihnb29nbGUucHJvdG9idWYuRW1wdHkpIHJldHVybnMgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSk7CiAgICAgfQoKCgoKAwQAARIDMggNYgZwcm90bzMKij0KIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvEg9nb29nbGUucHJvdG9idWYiIQoJRmllbGRNYXNrEhQKBXBhdGhzGAEgAygJUgVwYXRoc0KFAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIORmllbGRNYXNrUHJvdG9QAVoyZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZmllbGRtYXNrcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKoTsKBxIFHgD0AQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiACwKCQoCCAESAyIALAoICgEIEgMjAC8KCQoCCAgSAyMALwoICgEIEgMkACIKCQoCCAoSAyQAIgoICgEIEgMlACEKCQoCCCQSAyUAIQoICgEIEgMmADsKCQoCCCUSAyYAOwoICgEIEgMnAEkKCQoCCAsSAycASQoICgEIEgMoAB8KCQoCCB8SAygAHwqyLAoCBAASBvEBAPQBARqjLCBgRmllbGRNYXNrYCByZXByZXNlbnRzIGEgc2V0IG9mIHN5bWJvbGljIGZpZWxkIHBhdGhzLCBmb3IgZXhhbXBsZToKCiAgICAgcGF0aHM6ICJmLmEiCiAgICAgcGF0aHM6ICJmLmIuZCIKCiBIZXJlIGBmYCByZXByZXNlbnRzIGEgZmllbGQgaW4gc29tZSByb290IG1lc3NhZ2UsIGBhYCBhbmQgYGJgCiBmaWVsZHMgaW4gdGhlIG1lc3NhZ2UgZm91bmQgaW4gYGZgLCBhbmQgYGRgIGEgZmllbGQgZm91bmQgaW4gdGhlCiBtZXNzYWdlIGluIGBmLmJgLgoKIEZpZWxkIG1hc2tzIGFyZSB1c2VkIHRvIHNwZWNpZnkgYSBzdWJzZXQgb2YgZmllbGRzIHRoYXQgc2hvdWxkIGJlCiByZXR1cm5lZCBieSBhIGdldCBvcGVyYXRpb24gb3IgbW9kaWZpZWQgYnkgYW4gdXBkYXRlIG9wZXJhdGlvbi4KIEZpZWxkIG1hc2tzIGFsc28gaGF2ZSBhIGN1c3RvbSBKU09OIGVuY29kaW5nIChzZWUgYmVsb3cpLgoKICMgRmllbGQgTWFza3MgaW4gUHJvamVjdGlvbnMKCiBXaGVuIHVzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBwcm9qZWN0aW9uLCBhIHJlc3BvbnNlIG1lc3NhZ2Ugb3IKIHN1Yi1tZXNzYWdlIGlzIGZpbHRlcmVkIGJ5IHRoZSBBUEkgdG8gb25seSBjb250YWluIHRob3NlIGZpZWxkcyBhcwogc3BlY2lmaWVkIGluIHRoZSBtYXNrLiBGb3IgZXhhbXBsZSwgaWYgdGhlIG1hc2sgaW4gdGhlIHByZXZpb3VzCiBleGFtcGxlIGlzIGFwcGxpZWQgdG8gYSByZXNwb25zZSBtZXNzYWdlIGFzIGZvbGxvd3M6CgogICAgIGYgewogICAgICAgYSA6IDIyCiAgICAgICBiIHsKICAgICAgICAgZCA6IDEKICAgICAgICAgeCA6IDIKICAgICAgIH0KICAgICAgIHkgOiAxMwogICAgIH0KICAgICB6OiA4CgogVGhlIHJlc3VsdCB3aWxsIG5vdCBjb250YWluIHNwZWNpZmljIHZhbHVlcyBmb3IgZmllbGRzIHgseSBhbmQgegogKHRoZWlyIHZhbHVlIHdpbGwgYmUgc2V0IHRvIHRoZSBkZWZhdWx0LCBhbmQgb21pdHRlZCBpbiBwcm90byB0ZXh0CiBvdXRwdXQpOgoKCiAgICAgZiB7CiAgICAgICBhIDogMjIKICAgICAgIGIgewogICAgICAgICBkIDogMQogICAgICAgfQogICAgIH0KCiBBIHJlcGVhdGVkIGZpZWxkIGlzIG5vdCBhbGxvd2VkIGV4Y2VwdCBhdCB0aGUgbGFzdCBwb3NpdGlvbiBvZiBhCiBwYXRocyBzdHJpbmcuCgogSWYgYSBGaWVsZE1hc2sgb2JqZWN0IGlzIG5vdCBwcmVzZW50IGluIGEgZ2V0IG9wZXJhdGlvbiwgdGhlCiBvcGVyYXRpb24gYXBwbGllcyB0byBhbGwgZmllbGRzIChhcyBpZiBhIEZpZWxkTWFzayBvZiBhbGwgZmllbGRzCiBoYWQgYmVlbiBzcGVjaWZpZWQpLgoKIE5vdGUgdGhhdCBhIGZpZWxkIG1hc2sgZG9lcyBub3QgbmVjZXNzYXJpbHkgYXBwbHkgdG8gdGhlCiB0b3AtbGV2ZWwgcmVzcG9uc2UgbWVzc2FnZS4gSW4gY2FzZSBvZiBhIFJFU1QgZ2V0IG9wZXJhdGlvbiwgdGhlCiBmaWVsZCBtYXNrIGFwcGxpZXMgZGlyZWN0bHkgdG8gdGhlIHJlc3BvbnNlLCBidXQgaW4gY2FzZSBvZiBhIFJFU1QKIGxpc3Qgb3BlcmF0aW9uLCB0aGUgbWFzayBpbnN0ZWFkIGFwcGxpZXMgdG8gZWFjaCBpbmRpdmlkdWFsIG1lc3NhZ2UKIGluIHRoZSByZXR1cm5lZCByZXNvdXJjZSBsaXN0LiBJbiBjYXNlIG9mIGEgUkVTVCBjdXN0b20gbWV0aG9kLAogb3RoZXIgZGVmaW5pdGlvbnMgbWF5IGJlIHVzZWQuIFdoZXJlIHRoZSBtYXNrIGFwcGxpZXMgd2lsbCBiZQogY2xlYXJseSBkb2N1bWVudGVkIHRvZ2V0aGVyIHdpdGggaXRzIGRlY2xhcmF0aW9uIGluIHRoZSBBUEkuICBJbgogYW55IGNhc2UsIHRoZSBlZmZlY3Qgb24gdGhlIHJldHVybmVkIHJlc291cmNlL3Jlc291cmNlcyBpcyByZXF1aXJlZAogYmVoYXZpb3IgZm9yIEFQSXMuCgogIyBGaWVsZCBNYXNrcyBpbiBVcGRhdGUgT3BlcmF0aW9ucwoKIEEgZmllbGQgbWFzayBpbiB1cGRhdGUgb3BlcmF0aW9ucyBzcGVjaWZpZXMgd2hpY2ggZmllbGRzIG9mIHRoZQogdGFyZ2V0ZWQgcmVzb3VyY2UgYXJlIGdvaW5nIHRvIGJlIHVwZGF0ZWQuIFRoZSBBUEkgaXMgcmVxdWlyZWQKIHRvIG9ubHkgY2hhbmdlIHRoZSB2YWx1ZXMgb2YgdGhlIGZpZWxkcyBhcyBzcGVjaWZpZWQgaW4gdGhlIG1hc2sKIGFuZCBsZWF2ZSB0aGUgb3RoZXJzIHVudG91Y2hlZC4gSWYgYSByZXNvdXJjZSBpcyBwYXNzZWQgaW4gdG8KIGRlc2NyaWJlIHRoZSB1cGRhdGVkIHZhbHVlcywgdGhlIEFQSSBpZ25vcmVzIHRoZSB2YWx1ZXMgb2YgYWxsCiBmaWVsZHMgbm90IGNvdmVyZWQgYnkgdGhlIG1hc2suCgogSWYgYSByZXBlYXRlZCBmaWVsZCBpcyBzcGVjaWZpZWQgZm9yIGFuIHVwZGF0ZSBvcGVyYXRpb24sIG5ldyB2YWx1ZXMgd2lsbAogYmUgYXBwZW5kZWQgdG8gdGhlIGV4aXN0aW5nIHJlcGVhdGVkIGZpZWxkIGluIHRoZSB0YXJnZXQgcmVzb3VyY2UuIE5vdGUgdGhhdAogYSByZXBlYXRlZCBmaWVsZCBpcyBvbmx5IGFsbG93ZWQgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgYSBgcGF0aHNgIHN0cmluZy4KCiBJZiBhIHN1Yi1tZXNzYWdlIGlzIHNwZWNpZmllZCBpbiB0aGUgbGFzdCBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbWFzayBmb3IgYW4KIHVwZGF0ZSBvcGVyYXRpb24sIHRoZW4gbmV3IHZhbHVlIHdpbGwgYmUgbWVyZ2VkIGludG8gdGhlIGV4aXN0aW5nIHN1Yi1tZXNzYWdlCiBpbiB0aGUgdGFyZ2V0IHJlc291cmNlLgoKIEZvciBleGFtcGxlLCBnaXZlbiB0aGUgdGFyZ2V0IG1lc3NhZ2U6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEKICAgICAgICAgeDogMgogICAgICAgfQogICAgICAgYzogWzFdCiAgICAgfQoKIEFuZCBhbiB1cGRhdGUgbWVzc2FnZToKCiAgICAgZiB7CiAgICAgICBiIHsKICAgICAgICAgZDogMTAKICAgICAgIH0KICAgICAgIGM6IFsyXQogICAgIH0KCiB0aGVuIGlmIHRoZSBmaWVsZCBtYXNrIGlzOgoKICBwYXRoczogWyJmLmIiLCAiZi5jIl0KCiB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZToKCiAgICAgZiB7CiAgICAgICBiIHsKICAgICAgICAgZDogMTAKICAgICAgICAgeDogMgogICAgICAgfQogICAgICAgYzogWzEsIDJdCiAgICAgfQoKIEFuIGltcGxlbWVudGF0aW9uIG1heSBwcm92aWRlIG9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhpcyBkZWZhdWx0IGJlaGF2aW9yIGZvcgogcmVwZWF0ZWQgYW5kIG1lc3NhZ2UgZmllbGRzLgoKIEluIG9yZGVyIHRvIHJlc2V0IGEgZmllbGQncyB2YWx1ZSB0byB0aGUgZGVmYXVsdCwgdGhlIGZpZWxkIG11c3QKIGJlIGluIHRoZSBtYXNrIGFuZCBzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWUgaW4gdGhlIHByb3ZpZGVkIHJlc291cmNlLgogSGVuY2UsIGluIG9yZGVyIHRvIHJlc2V0IGFsbCBmaWVsZHMgb2YgYSByZXNvdXJjZSwgcHJvdmlkZSBhIGRlZmF1bHQKIGluc3RhbmNlIG9mIHRoZSByZXNvdXJjZSBhbmQgc2V0IGFsbCBmaWVsZHMgaW4gdGhlIG1hc2ssIG9yIGRvCiBub3QgcHJvdmlkZSBhIG1hc2sgYXMgZGVzY3JpYmVkIGJlbG93LgoKIElmIGEgZmllbGQgbWFzayBpcyBub3QgcHJlc2VudCBvbiB1cGRhdGUsIHRoZSBvcGVyYXRpb24gYXBwbGllcyB0bwogYWxsIGZpZWxkcyAoYXMgaWYgYSBmaWVsZCBtYXNrIG9mIGFsbCBmaWVsZHMgaGFzIGJlZW4gc3BlY2lmaWVkKS4KIE5vdGUgdGhhdCBpbiB0aGUgcHJlc2VuY2Ugb2Ygc2NoZW1hIGV2b2x1dGlvbiwgdGhpcyBtYXkgbWVhbiB0aGF0CiBmaWVsZHMgdGhlIGNsaWVudCBkb2VzIG5vdCBrbm93IGFuZCBoYXMgdGhlcmVmb3JlIG5vdCBmaWxsZWQgaW50bwogdGhlIHJlcXVlc3Qgd2lsbCBiZSByZXNldCB0byB0aGVpciBkZWZhdWx0LiBJZiB0aGlzIGlzIHVud2FudGVkCiBiZWhhdmlvciwgYSBzcGVjaWZpYyBzZXJ2aWNlIG1heSByZXF1aXJlIGEgY2xpZW50IHRvIGFsd2F5cyBzcGVjaWZ5CiBhIGZpZWxkIG1hc2ssIHByb2R1Y2luZyBhbiBlcnJvciBpZiBub3QuCgogQXMgd2l0aCBnZXQgb3BlcmF0aW9ucywgdGhlIGxvY2F0aW9uIG9mIHRoZSByZXNvdXJjZSB3aGljaAogZGVzY3JpYmVzIHRoZSB1cGRhdGVkIHZhbHVlcyBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlIGRlcGVuZHMgb24gdGhlCiBvcGVyYXRpb24ga2luZC4gSW4gYW55IGNhc2UsIHRoZSBlZmZlY3Qgb2YgdGhlIGZpZWxkIG1hc2sgaXMKIHJlcXVpcmVkIHRvIGJlIGhvbm9yZWQgYnkgdGhlIEFQSS4KCiAjIyBDb25zaWRlcmF0aW9ucyBmb3IgSFRUUCBSRVNUCgogVGhlIEhUVFAga2luZCBvZiBhbiB1cGRhdGUgb3BlcmF0aW9uIHdoaWNoIHVzZXMgYSBmaWVsZCBtYXNrIG11c3QKIGJlIHNldCB0byBQQVRDSCBpbnN0ZWFkIG9mIFBVVCBpbiBvcmRlciB0byBzYXRpc2Z5IEhUVFAgc2VtYW50aWNzCiAoUFVUIG11c3Qgb25seSBiZSB1c2VkIGZvciBmdWxsIHVwZGF0ZXMpLgoKICMgSlNPTiBFbmNvZGluZyBvZiBGaWVsZCBNYXNrcwoKIEluIEpTT04sIGEgZmllbGQgbWFzayBpcyBlbmNvZGVkIGFzIGEgc2luZ2xlIHN0cmluZyB3aGVyZSBwYXRocyBhcmUKIHNlcGFyYXRlZCBieSBhIGNvbW1hLiBGaWVsZHMgbmFtZSBpbiBlYWNoIHBhdGggYXJlIGNvbnZlcnRlZAogdG8vZnJvbSBsb3dlci1jYW1lbCBuYW1pbmcgY29udmVudGlvbnMuCgogQXMgYW4gZXhhbXBsZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBtZXNzYWdlIGRlY2xhcmF0aW9uczoKCiAgICAgbWVzc2FnZSBQcm9maWxlIHsKICAgICAgIFVzZXIgdXNlciA9IDE7CiAgICAgICBQaG90byBwaG90byA9IDI7CiAgICAgfQogICAgIG1lc3NhZ2UgVXNlciB7CiAgICAgICBzdHJpbmcgZGlzcGxheV9uYW1lID0gMTsKICAgICAgIHN0cmluZyBhZGRyZXNzID0gMjsKICAgICB9CgogSW4gcHJvdG8gYSBmaWVsZCBtYXNrIGZvciBgUHJvZmlsZWAgbWF5IGxvb2sgYXMgc3VjaDoKCiAgICAgbWFzayB7CiAgICAgICBwYXRoczogInVzZXIuZGlzcGxheV9uYW1lIgogICAgICAgcGF0aHM6ICJwaG90byIKICAgICB9CgogSW4gSlNPTiwgdGhlIHNhbWUgbWFzayBpcyByZXByZXNlbnRlZCBhcyBiZWxvdzoKCiAgICAgewogICAgICAgbWFzazogInVzZXIuZGlzcGxheU5hbWUscGhvdG8iCiAgICAgfQoKICMgRmllbGQgTWFza3MgYW5kIE9uZW9mIEZpZWxkcwoKIEZpZWxkIG1hc2tzIHRyZWF0IGZpZWxkcyBpbiBvbmVvZnMganVzdCBhcyByZWd1bGFyIGZpZWxkcy4gQ29uc2lkZXIgdGhlCiBmb2xsb3dpbmcgbWVzc2FnZToKCiAgICAgbWVzc2FnZSBTYW1wbGVNZXNzYWdlIHsKICAgICAgIG9uZW9mIHRlc3Rfb25lb2YgewogICAgICAgICBzdHJpbmcgbmFtZSA9IDQ7CiAgICAgICAgIFN1Yk1lc3NhZ2Ugc3ViX21lc3NhZ2UgPSA5OwogICAgICAgfQogICAgIH0KCiBUaGUgZmllbGQgbWFzayBjYW4gYmU6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJuYW1lIgogICAgIH0KCiBPcjoKCiAgICAgbWFzayB7CiAgICAgICBwYXRoczogInN1Yl9tZXNzYWdlIgogICAgIH0KCiBOb3RlIHRoYXQgb25lb2YgdHlwZSBuYW1lcyAoInRlc3Rfb25lb2YiIGluIHRoaXMgY2FzZSkgY2Fubm90IGJlIHVzZWQgaW4KIHBhdGhzLgoKICMjIEZpZWxkIE1hc2sgVmVyaWZpY2F0aW9uCgogVGhlIGltcGxlbWVudGF0aW9uIG9mIGFueSBBUEkgbWV0aG9kIHdoaWNoIGhhcyBhIEZpZWxkTWFzayB0eXBlIGZpZWxkIGluIHRoZQogcmVxdWVzdCBzaG91bGQgdmVyaWZ5IHRoZSBpbmNsdWRlZCBmaWVsZCBwYXRocywgYW5kIHJldHVybiBhbgogYElOVkFMSURfQVJHVU1FTlRgIGVycm9yIGlmIGFueSBwYXRoIGlzIHVubWFwcGFibGUuCgoLCgMEAAESBPEBCBEKLAoEBAACABIE8wECHBoeIFRoZSBzZXQgb2YgZmllbGQgbWFzayBwYXRocy4KCg0KBQQAAgAEEgTzAQIKCg0KBQQAAgAFEgTzAQsRCg0KBQQAAgABEgTzARIXCg0KBQQAAgADEgTzARobYgZwcm90bzMKwzEKH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiI7CglUaW1lc3RhbXASGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3NChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSsEvCgcSBR4AjwEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBJCgkKAggLEgMjAEkKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAvCgkKAggIEgMlAC8KCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsK2h0KAgQAEgaEAQCPAQEayx0gQSBUaW1lc3RhbXAgcmVwcmVzZW50cyBhIHBvaW50IGluIHRpbWUgaW5kZXBlbmRlbnQgb2YgYW55IHRpbWUgem9uZSBvciBsb2NhbAogY2FsZW5kYXIsIGVuY29kZWQgYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdAogbmFub3NlY29uZCByZXNvbHV0aW9uLiBUaGUgY291bnQgaXMgcmVsYXRpdmUgdG8gYW4gZXBvY2ggYXQgVVRDIG1pZG5pZ2h0IG9uCiBKYW51YXJ5IDEsIDE5NzAsIGluIHRoZSBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyIHdoaWNoIGV4dGVuZHMgdGhlCiBHcmVnb3JpYW4gY2FsZW5kYXIgYmFja3dhcmRzIHRvIHllYXIgb25lLgoKIEFsbCBtaW51dGVzIGFyZSA2MCBzZWNvbmRzIGxvbmcuIExlYXAgc2Vjb25kcyBhcmUgInNtZWFyZWQiIHNvIHRoYXQgbm8gbGVhcAogc2Vjb25kIHRhYmxlIGlzIG5lZWRlZCBmb3IgaW50ZXJwcmV0YXRpb24sIHVzaW5nIGEgWzI0LWhvdXIgbGluZWFyCiBzbWVhcl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vdGltZS9zbWVhcikuCgogVGhlIHJhbmdlIGlzIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8gOTk5OS0xMi0zMVQyMzo1OTo1OS45OTk5OTk5OTlaLiBCeQogcmVzdHJpY3RpbmcgdG8gdGhhdCByYW5nZSwgd2UgZW5zdXJlIHRoYXQgd2UgY2FuIGNvbnZlcnQgdG8gYW5kIGZyb20gW1JGQwogMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBkYXRlIHN0cmluZ3MuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgdGltZSgpYC4KCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModGltZShOVUxMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygwKTsKCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYGdldHRpbWVvZmRheSgpYC4KCiAgICAgc3RydWN0IHRpbWV2YWwgdHY7CiAgICAgZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHR2LnR2X3NlYyk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcyh0di50dl91c2VjICogMTAwMCk7CgogRXhhbXBsZSAzOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFdpbjMyIGBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgpYC4KCiAgICAgRklMRVRJTUUgZnQ7CiAgICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoJmZ0KTsKICAgICBVSU5UNjQgdGlja3MgPSAoKChVSU5UNjQpZnQuZHdIaWdoRGF0ZVRpbWUpIDw8IDMyKSB8IGZ0LmR3TG93RGF0ZVRpbWU7CgogICAgIC8vIEEgV2luZG93cyB0aWNrIGlzIDEwMCBuYW5vc2Vjb25kcy4gV2luZG93cyBlcG9jaCAxNjAxLTAxLTAxVDAwOjAwOjAwWgogICAgIC8vIGlzIDExNjQ0NDczNjAwIHNlY29uZHMgYmVmb3JlIFVuaXggZXBvY2ggMTk3MC0wMS0wMVQwMDowMDowMFouCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHMoKElOVDY0KSAoKHRpY2tzIC8gMTAwMDAwMDApIC0gMTE2NDQ0NzM2MDBMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoKElOVDMyKSAoKHRpY2tzICUgMTAwMDAwMDApICogMTAwKSk7CgogRXhhbXBsZSA0OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIEphdmEgYFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpYC4KCiAgICAgbG9uZyBtaWxsaXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9IFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhtaWxsaXMgLyAxMDAwKQogICAgICAgICAuc2V0TmFub3MoKGludCkgKChtaWxsaXMgJSAxMDAwKSAqIDEwMDAwMDApKS5idWlsZCgpOwoKIEV4YW1wbGUgNTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBJbnN0YW50Lm5vdygpYC4KCiAgICAgSW5zdGFudCBub3cgPSBJbnN0YW50Lm5vdygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0KICAgICAgICAgVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG5vdy5nZXRFcG9jaFNlY29uZCgpKQogICAgICAgICAgICAgLnNldE5hbm9zKG5vdy5nZXROYW5vKCkpLmJ1aWxkKCk7CgogRXhhbXBsZSA2OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIGN1cnJlbnQgdGltZSBpbiBQeXRob24uCgogICAgIHRpbWVzdGFtcCA9IFRpbWVzdGFtcCgpCiAgICAgdGltZXN0YW1wLkdldEN1cnJlbnRUaW1lKCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgVGltZXN0YW1wIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyBpbiB0aGUKIFtSRkMgMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBmb3JtYXQuIFRoYXQgaXMsIHRoZQogZm9ybWF0IGlzICJ7eWVhcn0te21vbnRofS17ZGF5fVR7aG91cn06e21pbn06e3NlY31bLntmcmFjX3NlY31dWiIKIHdoZXJlIHt5ZWFyfSBpcyBhbHdheXMgZXhwcmVzc2VkIHVzaW5nIGZvdXIgZGlnaXRzIHdoaWxlIHttb250aH0sIHtkYXl9LAoge2hvdXJ9LCB7bWlufSwgYW5kIHtzZWN9IGFyZSB6ZXJvLXBhZGRlZCB0byB0d28gZGlnaXRzIGVhY2guIFRoZSBmcmFjdGlvbmFsCiBzZWNvbmRzLCB3aGljaCBjYW4gZ28gdXAgdG8gOSBkaWdpdHMgKGkuZS4gdXAgdG8gMSBuYW5vc2Vjb25kIHJlc29sdXRpb24pLAogYXJlIG9wdGlvbmFsLiBUaGUgIloiIHN1ZmZpeCBpbmRpY2F0ZXMgdGhlIHRpbWV6b25lICgiVVRDIik7IHRoZSB0aW1lem9uZQogaXMgcmVxdWlyZWQuIEEgcHJvdG8zIEpTT04gc2VyaWFsaXplciBzaG91bGQgYWx3YXlzIHVzZSBVVEMgKGFzIGluZGljYXRlZCBieQogIloiKSB3aGVuIHByaW50aW5nIHRoZSBUaW1lc3RhbXAgdHlwZSBhbmQgYSBwcm90bzMgSlNPTiBwYXJzZXIgc2hvdWxkIGJlCiBhYmxlIHRvIGFjY2VwdCBib3RoIFVUQyBhbmQgb3RoZXIgdGltZXpvbmVzIChhcyBpbmRpY2F0ZWQgYnkgYW4gb2Zmc2V0KS4KCiBGb3IgZXhhbXBsZSwgIjIwMTctMDEtMTVUMDE6MzA6MTUuMDFaIiBlbmNvZGVzIDE1LjAxIHNlY29uZHMgcGFzdAogMDE6MzAgVVRDIG9uIEphbnVhcnkgMTUsIDIwMTcuCgogSW4gSmF2YVNjcmlwdCwgb25lIGNhbiBjb252ZXJ0IGEgRGF0ZSBvYmplY3QgdG8gdGhpcyBmb3JtYXQgdXNpbmcgdGhlCiBzdGFuZGFyZAogW3RvSVNPU3RyaW5nKCldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGUvdG9JU09TdHJpbmcpCiBtZXRob2QuIEluIFB5dGhvbiwgYSBzdGFuZGFyZCBgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdCBjYW4gYmUgY29udmVydGVkCiB0byB0aGlzIGZvcm1hdCB1c2luZwogW2BzdHJmdGltZWBdKGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzIvbGlicmFyeS90aW1lLmh0bWwjdGltZS5zdHJmdGltZSkgd2l0aAogdGhlIHRpbWUgZm9ybWF0IHNwZWMgJyVZLSVtLSVkVCVIOiVNOiVTLiVmWicuIExpa2V3aXNlLCBpbiBKYXZhLCBvbmUgY2FuIHVzZQogdGhlIEpvZGEgVGltZSdzIFtgSVNPRGF0ZVRpbWVGb3JtYXQuZGF0ZVRpbWUoKWBdKAogaHR0cDovL2pvZGEtdGltZS5zb3VyY2Vmb3JnZS5uZXQvYXBpZG9jcy9vcmcvam9kYS90aW1lL2Zvcm1hdC9JU09EYXRlVGltZUZvcm1hdC5odG1sI2RhdGVUaW1lKCkKICkgdG8gb2J0YWluIGEgZm9ybWF0dGVyIGNhcGFibGUgb2YgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIGluIHRoaXMgZm9ybWF0LgoKCgsKAwQAARIEhAEIEQqdAQoEBAACABIEiAECFBqOASBSZXByZXNlbnRzIHNlY29uZHMgb2YgVVRDIHRpbWUgc2luY2UgVW5peCBlcG9jaAogMTk3MC0wMS0wMVQwMDowMDowMFouIE11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0bwogOTk5OS0xMi0zMVQyMzo1OTo1OVogaW5jbHVzaXZlLgoKDQoFBAACAAUSBIgBAgcKDQoFBAACAAESBIgBCA8KDQoFBAACAAMSBIgBEhMK5QEKBAQAAgESBI4BAhIa1gEgTm9uLW5lZ2F0aXZlIGZyYWN0aW9ucyBvZiBhIHNlY29uZCBhdCBuYW5vc2Vjb25kIHJlc29sdXRpb24uIE5lZ2F0aXZlCiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzCiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTkKIGluY2x1c2l2ZS4KCg0KBQQAAgEFEgSOAQIHCg0KBQQAAgEBEgSOAQgNCg0KBQQAAgEDEgSOARARYgZwcm90bzMKzSMKHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiMKC0RvdWJsZVZhbHVlEhQKBXZhbHVlGAEgASgBUgV2YWx1ZSIiCgpGbG9hdFZhbHVlEhQKBXZhbHVlGAEgASgCUgV2YWx1ZSIiCgpJbnQ2NFZhbHVlEhQKBXZhbHVlGAEgASgDUgV2YWx1ZSIjCgtVSW50NjRWYWx1ZRIUCgV2YWx1ZRgBIAEoBFIFdmFsdWUiIgoKSW50MzJWYWx1ZRIUCgV2YWx1ZRgBIAEoBVIFdmFsdWUiIwoLVUludDMyVmFsdWUSFAoFdmFsdWUYASABKA1SBXZhbHVlIiEKCUJvb2xWYWx1ZRIUCgV2YWx1ZRgBIAEoCFIFdmFsdWUiIwoLU3RyaW5nVmFsdWUSFAoFdmFsdWUYASABKAlSBXZhbHVlIiIKCkJ5dGVzVmFsdWUSFAoFdmFsdWUYASABKAxSBXZhbHVlQoMBChNjb20uZ29vZ2xlLnByb3RvYnVmQg1XcmFwcGVyc1Byb3RvUAFaMWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3dyYXBwZXJzcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKxB8KBhIEKAB6AQrZEAoBDBIDKAASMs4QIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKIFdyYXBwZXJzIGZvciBwcmltaXRpdmUgKG5vbi1tZXNzYWdlKSB0eXBlcy4gVGhlc2UgdHlwZXMgYXJlIHVzZWZ1bAogZm9yIGVtYmVkZGluZyBwcmltaXRpdmVzIGluIHRoZSBgZ29vZ2xlLnByb3RvYnVmLkFueWAgdHlwZSBhbmQgZm9yIHBsYWNlcwogd2hlcmUgd2UgbmVlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBhYnNlbmNlIG9mIGEgcHJpbWl0aXZlCiB0eXBlZCBmaWVsZCBhbmQgaXRzIGRlZmF1bHQgdmFsdWUuCgogVGhlc2Ugd3JhcHBlcnMgaGF2ZSBubyBtZWFuaW5nZnVsIHVzZSB3aXRoaW4gcmVwZWF0ZWQgZmllbGRzIGFzIHRoZXkgbGFjawogdGhlIGFiaWxpdHkgdG8gZGV0ZWN0IHByZXNlbmNlIG9uIGluZGl2aWR1YWwgZWxlbWVudHMuCiBUaGVzZSB3cmFwcGVycyBoYXZlIG5vIG1lYW5pbmdmdWwgdXNlIHdpdGhpbiBhIG1hcCBvciBhIG9uZW9mIHNpbmNlCiBpbmRpdmlkdWFsIGVudHJpZXMgb2YgYSBtYXAgb3IgZmllbGRzIG9mIGEgb25lb2YgY2FuIGFscmVhZHkgZGV0ZWN0IHByZXNlbmNlLgoKCAoBAhIDKgAYCggKAQgSAywAHwoJCgIIHxIDLAAfCggKAQgSAy0ASAoJCgIICxIDLQBICggKAQgSAy4ALAoJCgIIARIDLgAsCggKAQgSAy8ALgoJCgIICBIDLwAuCggKAQgSAzAAIgoJCgIIChIDMAAiCggKAQgSAzEAIQoJCgIIJBIDMQAhCggKAQgSAzIAOwoJCgIIJRIDMgA7CmcKAgQAEgQ3ADoBGlsgV3JhcHBlciBtZXNzYWdlIGZvciBgZG91YmxlYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYERvdWJsZVZhbHVlYCBpcyBKU09OIG51bWJlci4KCgoKAwQAARIDNwgTCiAKBAQAAgASAzkCExoTIFRoZSBkb3VibGUgdmFsdWUuCgoMCgUEAAIABRIDOQIICgwKBQQAAgABEgM5CQ4KDAoFBAACAAMSAzkREgplCgIEARIEPwBCARpZIFdyYXBwZXIgbWVzc2FnZSBmb3IgYGZsb2F0YC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEZsb2F0VmFsdWVgIGlzIEpTT04gbnVtYmVyLgoKCgoDBAEBEgM/CBIKHwoEBAECABIDQQISGhIgVGhlIGZsb2F0IHZhbHVlLgoKDAoFBAECAAUSA0ECBwoMCgUEAQIAARIDQQgNCgwKBQQBAgADEgNBEBEKZQoCBAISBEcASgEaWSBXcmFwcGVyIG1lc3NhZ2UgZm9yIGBpbnQ2NGAuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBJbnQ2NFZhbHVlYCBpcyBKU09OIHN0cmluZy4KCgoKAwQCARIDRwgSCh8KBAQCAgASA0kCEhoSIFRoZSBpbnQ2NCB2YWx1ZS4KCgwKBQQCAgAFEgNJAgcKDAoFBAICAAESA0kIDQoMCgUEAgIAAxIDSRARCmcKAgQDEgRPAFIBGlsgV3JhcHBlciBtZXNzYWdlIGZvciBgdWludDY0YC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYFVJbnQ2NFZhbHVlYCBpcyBKU09OIHN0cmluZy4KCgoKAwQDARIDTwgTCiAKBAQDAgASA1ECExoTIFRoZSB1aW50NjQgdmFsdWUuCgoMCgUEAwIABRIDUQIICgwKBQQDAgABEgNRCQ4KDAoFBAMCAAMSA1EREgplCgIEBBIEVwBaARpZIFdyYXBwZXIgbWVzc2FnZSBmb3IgYGludDMyYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEludDMyVmFsdWVgIGlzIEpTT04gbnVtYmVyLgoKCgoDBAQBEgNXCBIKHwoEBAQCABIDWQISGhIgVGhlIGludDMyIHZhbHVlLgoKDAoFBAQCAAUSA1kCBwoMCgUEBAIAARIDWQgNCgwKBQQEAgADEgNZEBEKZwoCBAUSBF8AYgEaWyBXcmFwcGVyIG1lc3NhZ2UgZm9yIGB1aW50MzJgLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgVUludDMyVmFsdWVgIGlzIEpTT04gbnVtYmVyLgoKCgoDBAUBEgNfCBMKIAoEBAUCABIDYQITGhMgVGhlIHVpbnQzMiB2YWx1ZS4KCgwKBQQFAgAFEgNhAggKDAoFBAUCAAESA2EJDgoMCgUEBQIAAxIDYRESCm8KAgQGEgRnAGoBGmMgV3JhcHBlciBtZXNzYWdlIGZvciBgYm9vbGAuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBCb29sVmFsdWVgIGlzIEpTT04gYHRydWVgIGFuZCBgZmFsc2VgLgoKCgoDBAYBEgNnCBEKHgoEBAYCABIDaQIRGhEgVGhlIGJvb2wgdmFsdWUuCgoMCgUEBgIABRIDaQIGCgwKBQQGAgABEgNpBwwKDAoFBAYCAAMSA2kPEApnCgIEBxIEbwByARpbIFdyYXBwZXIgbWVzc2FnZSBmb3IgYHN0cmluZ2AuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBTdHJpbmdWYWx1ZWAgaXMgSlNPTiBzdHJpbmcuCgoKCgMEBwESA28IEwogCgQEBwIAEgNxAhMaEyBUaGUgc3RyaW5nIHZhbHVlLgoKDAoFBAcCAAUSA3ECCAoMCgUEBwIAARIDcQkOCgwKBQQHAgADEgNxERIKZQoCBAgSBHcAegEaWSBXcmFwcGVyIG1lc3NhZ2UgZm9yIGBieXRlc2AuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBCeXRlc1ZhbHVlYCBpcyBKU09OIHN0cmluZy4KCgoKAwQIARIDdwgSCh8KBAQIAgASA3kCEhoSIFRoZSBieXRlcyB2YWx1ZS4KCgwKBQQIAgAFEgN5AgcKDAoFBAgCAAESA3kIDQoMCgUECAIAAxIDeRARYgZwcm90bzMK6m0KL2dvb2dsZS9wcm90b2J1Zi91bml0dGVzdF93ZWxsX2tub3duX3R5cGVzLnByb3RvEhFwcm90b2J1Zl91bml0dGVzdBoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxoZZ29vZ2xlL3Byb3RvYnVmL2FwaS5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8aHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8itAkKElRlc3RXZWxsS25vd25UeXBlcxIxCglhbnlfZmllbGQYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UghhbnlGaWVsZBIxCglhcGlfZmllbGQYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUghhcGlGaWVsZBJACg5kdXJhdGlvbl9maWVsZBgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblINZHVyYXRpb25GaWVsZBI3CgtlbXB0eV9maWVsZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIKZW1wdHlGaWVsZBJEChBmaWVsZF9tYXNrX2ZpZWxkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IOZmllbGRNYXNrRmllbGQSUAoUc291cmNlX2NvbnRleHRfZmllbGQYBiABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFISc291cmNlQ29udGV4dEZpZWxkEjoKDHN0cnVjdF9maWVsZBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSC3N0cnVjdEZpZWxkEkMKD3RpbWVzdGFtcF9maWVsZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSDnRpbWVzdGFtcEZpZWxkEjQKCnR5cGVfZmllbGQYCSABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIJdHlwZUZpZWxkEj8KDGRvdWJsZV9maWVsZBgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVILZG91YmxlRmllbGQSPAoLZmxvYXRfZmllbGQYCyABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIKZmxvYXRGaWVsZBI8CgtpbnQ2NF9maWVsZBgMIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgppbnQ2NEZpZWxkEj8KDHVpbnQ2NF9maWVsZBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVILdWludDY0RmllbGQSPAoLaW50MzJfZmllbGQYDiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIKaW50MzJGaWVsZBI/Cgx1aW50MzJfZmllbGQYDyABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSC3VpbnQzMkZpZWxkEjkKCmJvb2xfZmllbGQYECABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUglib29sRmllbGQSPwoMc3RyaW5nX2ZpZWxkGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUgtzdHJpbmdGaWVsZBI8CgtieXRlc19maWVsZBgSIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUgpieXRlc0ZpZWxkEjcKC3ZhbHVlX2ZpZWxkGBMgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgp2YWx1ZUZpZWxkIv8IChZSZXBlYXRlZFdlbGxLbm93blR5cGVzEjEKCWFueV9maWVsZBgBIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSCGFueUZpZWxkEjEKCWFwaV9maWVsZBgCIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSCGFwaUZpZWxkEkAKDmR1cmF0aW9uX2ZpZWxkGAMgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUg1kdXJhdGlvbkZpZWxkEjcKC2VtcHR5X2ZpZWxkGAQgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgplbXB0eUZpZWxkEkQKEGZpZWxkX21hc2tfZmllbGQYBSADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUg5maWVsZE1hc2tGaWVsZBJQChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAMoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UhJzb3VyY2VDb250ZXh0RmllbGQSOgoMc3RydWN0X2ZpZWxkGAcgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILc3RydWN0RmllbGQSQwoPdGltZXN0YW1wX2ZpZWxkGAggAygLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIOdGltZXN0YW1wRmllbGQSNAoKdHlwZV9maWVsZBgJIAMoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgl0eXBlRmllbGQSPwoMZG91YmxlX2ZpZWxkGAogAygLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgtkb3VibGVGaWVsZBI8CgtmbG9hdF9maWVsZBgLIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgpmbG9hdEZpZWxkEjwKC2ludDY0X2ZpZWxkGAwgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSCmludDY0RmllbGQSPwoMdWludDY0X2ZpZWxkGA0gAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgt1aW50NjRGaWVsZBI8CgtpbnQzMl9maWVsZBgOIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgppbnQzMkZpZWxkEj8KDHVpbnQzMl9maWVsZBgPIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVILdWludDMyRmllbGQSOQoKYm9vbF9maWVsZBgQIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSCWJvb2xGaWVsZBI/CgxzdHJpbmdfZmllbGQYESADKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSC3N0cmluZ0ZpZWxkEjwKC2J5dGVzX2ZpZWxkGBIgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSCmJ5dGVzRmllbGQirwkKE09uZW9mV2VsbEtub3duVHlwZXMSMwoJYW55X2ZpZWxkGAEgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUgAUghhbnlGaWVsZBIzCglhcGlfZmllbGQYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpSABSCGFwaUZpZWxkEkIKDmR1cmF0aW9uX2ZpZWxkGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uSABSDWR1cmF0aW9uRmllbGQSOQoLZW1wdHlfZmllbGQYBCABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlIAFIKZW1wdHlGaWVsZBJGChBmaWVsZF9tYXNrX2ZpZWxkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0gAUg5maWVsZE1hc2tGaWVsZBJSChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0SABSEnNvdXJjZUNvbnRleHRGaWVsZBI8CgxzdHJ1Y3RfZmllbGQYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SABSC3N0cnVjdEZpZWxkEkUKD3RpbWVzdGFtcF9maWVsZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAFIOdGltZXN0YW1wRmllbGQSNgoKdHlwZV9maWVsZBgJIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlSABSCXR5cGVGaWVsZBJBCgxkb3VibGVfZmllbGQYCiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVIAFILZG91YmxlRmllbGQSPgoLZmxvYXRfZmllbGQYCyABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZUgAUgpmbG9hdEZpZWxkEj4KC2ludDY0X2ZpZWxkGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVIAFIKaW50NjRGaWVsZBJBCgx1aW50NjRfZmllbGQYDSABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVIAFILdWludDY0RmllbGQSPgoLaW50MzJfZmllbGQYDiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZUgAUgppbnQzMkZpZWxkEkEKDHVpbnQzMl9maWVsZBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZUgAUgt1aW50MzJGaWVsZBI7Cgpib29sX2ZpZWxkGBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZUgAUglib29sRmllbGQSQQoMc3RyaW5nX2ZpZWxkGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlSABSC3N0cmluZ0ZpZWxkEj4KC2J5dGVzX2ZpZWxkGBIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVIAFIKYnl0ZXNGaWVsZEINCgtvbmVvZl9maWVsZCLYGQoRTWFwV2VsbEtub3duVHlwZXMSTwoJYW55X2ZpZWxkGAEgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQW55RmllbGRFbnRyeVIIYW55RmllbGQSTwoJYXBpX2ZpZWxkGAIgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQXBpRmllbGRFbnRyeVIIYXBpRmllbGQSXgoOZHVyYXRpb25fZmllbGQYAyADKAsyNy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5EdXJhdGlvbkZpZWxkRW50cnlSDWR1cmF0aW9uRmllbGQSVQoLZW1wdHlfZmllbGQYBCADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5FbXB0eUZpZWxkRW50cnlSCmVtcHR5RmllbGQSYgoQZmllbGRfbWFza19maWVsZBgFIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkZpZWxkTWFza0ZpZWxkRW50cnlSDmZpZWxkTWFza0ZpZWxkEm4KFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgAygLMjwucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuU291cmNlQ29udGV4dEZpZWxkRW50cnlSEnNvdXJjZUNvbnRleHRGaWVsZBJYCgxzdHJ1Y3RfZmllbGQYByADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5TdHJ1Y3RGaWVsZEVudHJ5UgtzdHJ1Y3RGaWVsZBJhCg90aW1lc3RhbXBfZmllbGQYCCADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5UaW1lc3RhbXBGaWVsZEVudHJ5Ug50aW1lc3RhbXBGaWVsZBJSCgp0eXBlX2ZpZWxkGAkgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuVHlwZUZpZWxkRW50cnlSCXR5cGVGaWVsZBJYCgxkb3VibGVfZmllbGQYCiADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Eb3VibGVGaWVsZEVudHJ5Ugtkb3VibGVGaWVsZBJVCgtmbG9hdF9maWVsZBgLIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkZsb2F0RmllbGRFbnRyeVIKZmxvYXRGaWVsZBJVCgtpbnQ2NF9maWVsZBgMIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkludDY0RmllbGRFbnRyeVIKaW50NjRGaWVsZBJYCgx1aW50NjRfZmllbGQYDSADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5VaW50NjRGaWVsZEVudHJ5Ugt1aW50NjRGaWVsZBJVCgtpbnQzMl9maWVsZBgOIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkludDMyRmllbGRFbnRyeVIKaW50MzJGaWVsZBJYCgx1aW50MzJfZmllbGQYDyADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5VaW50MzJGaWVsZEVudHJ5Ugt1aW50MzJGaWVsZBJSCgpib29sX2ZpZWxkGBAgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQm9vbEZpZWxkRW50cnlSCWJvb2xGaWVsZBJYCgxzdHJpbmdfZmllbGQYESADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5TdHJpbmdGaWVsZEVudHJ5UgtzdHJpbmdGaWVsZBJVCgtieXRlc19maWVsZBgSIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkJ5dGVzRmllbGRFbnRyeVIKYnl0ZXNGaWVsZBpRCg1BbnlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EioKBXZhbHVlGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIFdmFsdWU6AjgBGlEKDUFwaUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUgV2YWx1ZToCOAEaWwoSRHVyYXRpb25GaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ei8KBXZhbHVlGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgV2YWx1ZToCOAEaVQoPRW1wdHlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgV2YWx1ZToCOAEaXQoTRmllbGRNYXNrRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSBXZhbHVlOgI4ARplChdTb3VyY2VDb250ZXh0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRI0CgV2YWx1ZRgCIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UgV2YWx1ZToCOAEaVwoQU3RydWN0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRItCgV2YWx1ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSBXZhbHVlOgI4ARpdChNUaW1lc3RhbXBGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIFdmFsdWU6AjgBGlMKDlR5cGVGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EisKBXZhbHVlGAIgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSBXZhbHVlOgI4ARpcChBEb3VibGVGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjIKBXZhbHVlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgV2YWx1ZToCOAEaWgoPRmxvYXRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSBXZhbHVlOgI4ARpaCg9JbnQ2NEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIFdmFsdWU6AjgBGlwKEFVpbnQ2NEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSBXZhbHVlOgI4ARpaCg9JbnQzMkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIFdmFsdWU6AjgBGlwKEFVpbnQzMkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSBXZhbHVlOgI4ARpYCg5Cb29sRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSBXZhbHVlOgI4ARpcChBTdHJpbmdGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjIKBXZhbHVlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUgV2YWx1ZToCOAEaWgoPQnl0ZXNGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSBXZhbHVlOgI4AUI5Chhjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RQAaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSuQ0CgcSBR4AjwEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABoKCAoBCBIDIgA3CgkKAgglEgMiADcKCAoBCBIDIwAiCgkKAggKEgMjACIKCAoBCBIDJAAxCgkKAggBEgMkADEKCQoCAwASAyYAIwoJCgIDARIDJwAjCgkKAgMCEgMoACgKCQoCAwMSAykA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b25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USZwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USbgoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtEl4KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtEnEKFW9wdGlvbmFsX2FsaWFzZWRfZW51bRgXIAEoDjI9LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5BbGlhc2VkRW51bVITb3B0aW9uYWxBbGlhc2VkRW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSXgoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzNSEHJlY3Vyc2l2ZU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSdwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEmcKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEm4KFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJeChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSJQoMcGFja2VkX2ludDMyGEsgAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GEwgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhNIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GE4gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhQIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhRIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYUiADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhTIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhUIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYViADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYVyADKAhCAhABUgpwYWNrZWRCb29sEm4KEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtQgIQAVIQcGFja2VkTmVzdGVkRW51bRIpCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhcIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhhdIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYXyADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhhIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYiADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGMgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZCADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGUgAygIQgIQAFIMdW5wYWNrZWRCb29sEnIKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1CAhAAUhJ1bnBhY2tlZE5lc3RlZEVudW0SbAoPbWFwX2ludDMyX2ludDMyGDggAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJsCg9tYXBfaW50NjRfaW50NjQYOSADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50NjRJbnQ2NEVudHJ5Ug1tYXBJbnQ2NEludDY0EnIKEW1hcF91aW50MzJfdWludDMyGDogAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzIScgoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJyChFtYXBfc2ludDMyX3NpbnQzMhg8IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTaW50MzJTaW50MzJFbnRyeVIPbWFwU2ludDMyU2ludDMyEnIKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSeAoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJ4ChNtYXBfZml4ZWQ2NF9maXhlZDY0GD8gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEZpeGVkNjRGaXhlZDY0RW50cnlSEW1hcEZpeGVkNjRGaXhlZDY0En4KFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhhAIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISfgoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJsCg9tYXBfaW50MzJfZmxvYXQYQiADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJGbG9hdEVudHJ5Ug1tYXBJbnQzMkZsb2F0Em8KEG1hcF9pbnQzMl9kb3VibGUYQyADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSZgoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJyChFtYXBfc3RyaW5nX3N0cmluZxhFIAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdTdHJpbmdFbnRyeVIPbWFwU3RyaW5nU3RyaW5nEm8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nQnl0ZXNFbnRyeVIObWFwU3RyaW5nQnl0ZXMSiAEKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5UhZtYXBTdHJpbmdOZXN0ZWRNZXNzYWdlEosBChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5UhdtYXBTdHJpbmdGb3JlaWduTWVzc2FnZRJ/ChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ05lc3RlZEVudW1FbnRyeVITbWFwU3RyaW5nTmVzdGVkRW51bRKCAQoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsySy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeVIUbWFwU3RyaW5nRm9yZWlnbkVudW0SIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEnMKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzEh8KCm9uZW9mX2Jvb2wYcyABKAhIAFIJb25lb2ZCb29sEiMKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAUgtvbmVvZlVpbnQ2NBIhCgtvbmVvZl9mbG9hdBh1IAEoAkgAUgpvbmVvZkZsb2F0EiMKDG9uZW9mX2RvdWJsZRh2IAEoAUgAUgtvbmVvZkRvdWJsZRJdCgpvbmVvZl9lbnVtGHcgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1IAFIJb25lb2ZFbnVtEkYKEG9uZW9mX251bGxfdmFsdWUYeCABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSDm9uZW9mTnVsbFZhbHVlEk8KFW9wdGlvbmFsX2Jvb2xfd3JhcHBlchjJASABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNvcHRpb25hbEJvb2xXcmFwcGVyElIKFm9wdGlvbmFsX2ludDMyX3dyYXBwZXIYygEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFG9wdGlvbmFsSW50MzJXcmFwcGVyElIKFm9wdGlvbmFsX2ludDY0X3dyYXBwZXIYywEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFG9wdGlvbmFsSW50NjRXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQzMl93cmFwcGVyGMwBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVb3B0aW9uYWxVaW50MzJXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQ2NF93cmFwcGVyGM0BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVb3B0aW9uYWxVaW50NjRXcmFwcGVyElIKFm9wdGlvbmFsX2Zsb2F0X3dyYXBwZXIYzgEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFG9wdGlvbmFsRmxvYXRXcmFwcGVyElUKF29wdGlvbmFsX2RvdWJsZV93cmFwcGVyGM8BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVb3B0aW9uYWxEb3VibGVXcmFwcGVyElUKF29wdGlvbmFsX3N0cmluZ193cmFwcGVyGNABIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVb3B0aW9uYWxTdHJpbmdXcmFwcGVyElIKFm9wdGlvbmFsX2J5dGVzX3dyYXBwZXIY0QEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFG9wdGlvbmFsQnl0ZXNXcmFwcGVyEk8KFXJlcGVhdGVkX2Jvb2xfd3JhcHBlchjTASADKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNyZXBlYXRlZEJvb2xXcmFwcGVyElIKFnJlcGVhdGVkX2ludDMyX3dyYXBwZXIY1AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFHJlcGVhdGVkSW50MzJXcmFwcGVyElIKFnJlcGVhdGVkX2ludDY0X3dyYXBwZXIY1QEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFHJlcGVhdGVkSW50NjRXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQzMl93cmFwcGVyGNYBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVcmVwZWF0ZWRVaW50MzJXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQ2NF93cmFwcGVyGNcBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVcmVwZWF0ZWRVaW50NjRXcmFwcGVyElIKFnJlcGVhdGVkX2Zsb2F0X3dyYXBwZXIY2AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFHJlcGVhdGVkRmxvYXRXcmFwcGVyElUKF3JlcGVhdGVkX2RvdWJsZV93cmFwcGVyGNkBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVcmVwZWF0ZWREb3VibGVXcmFwcGVyElUKF3JlcGVhdGVkX3N0cmluZ193cmFwcGVyGNoBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVcmVwZWF0ZWRTdHJpbmdXcmFwcGVyElIKFnJlcGVhdGVkX2J5dGVzX3dyYXBwZXIY2wEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFHJlcGVhdGVkQnl0ZXNXcmFwcGVyEkcKEW9wdGlvbmFsX2R1cmF0aW9uGK0CIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIQb3B0aW9uYWxEdXJhdGlvbhJKChJvcHRpb25hbF90aW1lc3RhbXAYrgIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRb3B0aW9uYWxUaW1lc3RhbXASSwoTb3B0aW9uYWxfZmllbGRfbWFzaxivAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUhFvcHRpb25hbEZpZWxkTWFzaxJBCg9vcHRpb25hbF9zdHJ1Y3QYsAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIOb3B0aW9uYWxTdHJ1Y3QSOAoMb3B0aW9uYWxfYW55GLECIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSC29wdGlvbmFsQW55Ej4KDm9wdGlvbmFsX3ZhbHVlGLICIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVINb3B0aW9uYWxWYWx1ZRJLChNvcHRpb25hbF9udWxsX3ZhbHVlGLMCIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVSEW9wdGlvbmFsTnVsbFZhbHVlEkcKEXJlcGVhdGVkX2R1cmF0aW9uGLcCIAMoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIQcmVwZWF0ZWREdXJhdGlvbhJKChJyZXBlYXRlZF90aW1lc3RhbXAYuAIgAygLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRcmVwZWF0ZWRUaW1lc3RhbXASSgoScmVwZWF0ZWRfZmllbGRtYXNrGLkCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSEXJlcGVhdGVkRmllbGRtYXNrEkEKD3JlcGVhdGVkX3N0cnVjdBjEAiADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ug5yZXBlYXRlZFN0cnVjdBI4CgxyZXBlYXRlZF9hbnkYuwIgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVILcmVwZWF0ZWRBbnkSPgoOcmVwZWF0ZWRfdmFsdWUYvAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUg1yZXBlYXRlZFZhbHVlEksKE3JlcGVhdGVkX2xpc3RfdmFsdWUYvQIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZVIRcmVwZWF0ZWRMaXN0VmFsdWUSHwoKZmllbGRuYW1lMRiRAyABKAVSCmZpZWxkbmFtZTESIAoLZmllbGRfbmFtZTIYkgMgASgFUgpmaWVsZE5hbWUyEiEKDF9maWVsZF9uYW1lMxiTAyABKAVSCkZpZWxkTmFtZTMSIgoNZmllbGRfX25hbWU0XxiUAyABKAVSCmZpZWxkTmFtZTQSIQoLZmllbGQwbmFtZTUYlQMgASgFUgtmaWVsZDBuYW1lNRIjCg1maWVsZF8wX25hbWU2GJYDIAEoBVILZmllbGQwTmFtZTYSHwoKZmllbGROYW1lNxiXAyABKAVSCmZpZWxkTmFtZTcSHwoKRmllbGROYW1lOBiYAyABKAVSCkZpZWxkTmFtZTgSIAoLZmllbGRfTmFtZTkYmQMgASgFUgpmaWVsZE5hbWU5EiIKDEZpZWxkX05hbWUxMBiaAyABKAVSC0ZpZWxkTmFtZTEwEiIKDEZJRUxEX05BTUUxMRibAyABKAVSC0ZJRUxETkFNRTExEiIKDEZJRUxEX25hbWUxMhicAyABKAVSC0ZJRUxETmFtZTEyEiQKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBVILRmllbGROYW1lMTMSJAoOX19GaWVsZF9uYW1lMTQYngMgASgFUgtGaWVsZE5hbWUxNBIjCg1maWVsZF9fbmFtZTE1GJ8DIAEoBVILZmllbGROYW1lMTUSIwoNZmllbGRfX05hbWUxNhigAyABKAVSC2ZpZWxkTmFtZTE2EiQKDmZpZWxkX25hbWUxN19fGKEDIAEoBVILZmllbGROYW1lMTcSJAoORmllbGRfbmFtZTE4X18YogMgASgFUgtGaWVsZE5hbWUxOBpyCg1OZXN0ZWRNZXNzYWdlEgwKAWEYASABKAVSAWESUwoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzNSC2NvcmVjdXJzaXZlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQQoTTWFwU3RyaW5nQnl0ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBGooBChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSVQoFdmFsdWUYAiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGnkKHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSQwoFdmFsdWUYAiABKAsyLS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBGoQBChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSUgoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVIFdmFsdWU6AjgBGnMKGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSQAoFdmFsdWUYAiABKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVIFdmFsdWU6AjgBIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEiWQoLQWxpYXNlZEVudW0SDQoJQUxJQVNfRk9PEAASDQoJQUxJQVNfQkFSEAESDQoJQUxJQVNfQkFaEAISBwoDTU9PEAISBwoDbW9vEAISBwoDYkF6EAIaAhABQg0KC29uZW9mX2ZpZWxkSgYI9QMQ/wMiHgoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYyIWChROdWxsSHlwb3RoZXNpc1Byb3RvMyIvCg5FbnVtT25seVByb3RvMyIdCgRCb29sEgoKBmtGYWxzZRAAEgkKBWtUcnVlEAEqQAoLRm9yZWlnbkVudW0SDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAJCOAooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvM0gB+AEBogIGUHJvdG8zSpFyCgcSBSUAnwIBCsANCgEMEgMlABIytQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMyBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGJlbmNobWFy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CgUEAAIuBBIEkQECCgoNCgUEAAIuBRIEkQELEQoNCgUEAAIuARIEkQESHwoNCgUEAAIuAxIEkQEiJAoNCgUEAAIuCBIEkQElNAoOCgYEAAIuCAISBJEBJjMKDAoEBAACLxIEkgECNQoNCgUEAAIvBBIEkgECCgoNCgUEAAIvBRIEkgELEQoNCgUEAAIvARIEkgESHwoNCgUEAAIvAxIEkgEiJAoNCgUEAAIvCBIEkgElNAoOCgYEAAIvCAISBJIBJjMKDAoEBAACMBIEkwECNQoNCgUEAAIwBBIEkwECCgoNCgUEAAIwBRIEkwELEQoNCgUEAAIwARIEkwESHwoNCgUEAAIwAxIEkwEiJAoNCgUEAAIwCBIEkwElNAoOCgYEAAIwCAISBJMBJjMKDAoEBAACMRIElAECNQoNCgUEAAIxBBIElAECCgoNCgUEAAIxBRIElAELEQoNCgUEAAIxARIElAESHwoNCgUEAAIxAxIElAEiJAoNCgUEAAIxCBIElAElNAoOCgYEAAIxCAISBJQBJjMKDAoEBAACMhIElQECNwoNCgUEAAIyBBIElQECCgoNCgUEAAIyBRIElQELEgoNCgUEAAIyARIElQETIQoNCgUEAAIyAxIElQEkJgoNCgUEAAIyCBIElQEnNgoOCgYEAAIyCAISBJUBKDUKDAoEBAACMxIElgECNwoNCgUEAAIzBBIElgECCgoNCgUEAAIzBRIElgELEgoNCgUEAAIzARIElgETIQoNCgUEAAIzAxIElgEkJgoNCgUEAAIzCBIElgEnNgoOCgYEAAIzCAISBJYBKDUKDAoEBAACNBIElwECOQoNCgUEAAI0BBIElwECCgoNCgUEAAI0BRIElwELEwoNCgUEAAI0ARIElwEUIwoNCgUEAAI0AxIElwEmKAoNCgUEAAI0CBIElwEpOAoOCgYEAAI0CAISBJcBKjcKDAoEBAACNRIEmAECOQoNCgUEAAI1BBIEmAECCgoNCgUEAAI1BRIEmAELEwoNCgUEAAI1ARIEmAEUIwoNCgUEAAI1AxIEmAEmKAoNCgUEAAI1CBIEmAEpOAoOCgYEAAI1CAISBJgBKjcKDAoEBAACNhIEmQECMwoNCgUEAAI2BBIEmQECCgoNCgUEAAI2BRIEmQELEAoNCgUEAAI2ARIEmQERHQoNCgUEAAI2AxIEmQEgIgoNCgUEAAI2CBIEmQEjMgoOCgYEAAI2CAISBJkBJDEKDAoEBAACNxIEmgECNQoNCgUEAAI3BBIEmgECCgoNCgUEAAI3BRIEmgELEQoNCgUEAAI3ARIEmgESHwoNCgUEAAI3AxIEmgEiJAoNCgUEAAI3CBIEmgElNAoOCgYEAAI3CAISBJoBJjMKDAoEBAACOBIEmwECMQoNCgUEAAI4BBIEmwECCgoNCgUEAAI4BRIEmwELDwoNCgUEAAI4ARIEmwEQGwoNCgUEAAI4AxIEmwEeIAoNCgUEAAI4CBIEmwEhMAoOCgYEAAI4CAISBJsBIi8KDAoEBAACORIEnAECPgoNCgUEAAI5BBIEnAECCgoNCgUEAAI5BhIEnAELFQoNCgUEAAI5ARIEnAEWKAoNCgUEAAI5AxIEnAErLQoNCgUEAAI5CBIEnAEuPQoOCgYEAAI5CAISBJwBLzwKGAoEBAACOhIEnwECNhoKIFVucGFja2VkCgoNCgUEAAI6BBIEnwECCgoNCgUEAAI6BRIEnwELEAoNCgUEAAI6ARIEnwERHwoNCgUEAAI6AxIEnwEiJAoNCgUEAAI6CBIEnwElNQoOCgYEAAI6CAISBJ8BJjQKDAoEBAACOxIEoAECNgoNCgUEAAI7BBIEoAECCgoNCgUEAAI7BRIEoAELEAoNCgUEAAI7ARIEoAERHwoNCgUEAAI7AxIEoAEiJAoNCgUEAAI7CBIEoAElNQoOCgYEAAI7CAISBKABJjQKDAoEBAACPBIEoQECOAoNCgUEAAI8BBIEoQECCgoNCgUEAAI8BRIEoQELEQoNCgUEAAI8ARIEoQESIQoNCgUEAAI8AxIEoQEkJgoNCgUEAAI8CBIEoQEnNwoOCgYEAAI8CAISBKEBKDYKDAoEBAACPRIEogECOAoNCgUEAAI9BBIEogECCgoNCgUEAAI9BRIEogELEQoNCgUEAAI9ARIEogESIQoNCgUEAAI9AxIEogEkJgoNCgUEAAI9CBIEogEnNwoOCgYEAAI9CAISBKIBKDYKDAoEBAACPhIEowECOAoNCgUEAAI+BBIEowECCgoNCgUEAAI+BRIEowELEQoNCgUEAAI+ARIEowESIQoNCgUEAAI+AxIEowEkJgoNCgUEAAI+CBIEowEnNwoOCgYEAAI+CAISBKMBKDYKDAoEBAACPxIEpAECOAoNCgUEAAI/BBIEpAECCgoNCgUEAAI/BRIEpAELEQoNCgUEAAI/ARIEpAESIQoNCgUEAAI/AxIEpAEkJgoNCgUEAAI/CBIEpAEnNwoOCgYEAAI/CAISBKQBKDYKDAoEBAACQBIEpQECOgoNCgUEAAJABBIEpQECCgoNCgUEAAJABRIEpQELEgoNCgUEAAJAARIEpQETIwoNCgUEAAJAAxIEpQEmKAoNCgUEAAJACBIEpQEpOQoOCgYEAAJACAISBKUBKjgKDAoEBAACQRIEpgECOgoNCgUEAAJBBBIEpgECCgoNCgUEAAJBBRIEpgELEgoNCgUEAAJBARIEpgETIwoNCgUEAAJBAxIEpgEmKAoNCgUEAAJBCBIEpgEpOQoOCgYEAAJBCAISBKYBKjgKDAoEBAACQhIEpwECPAoNCgUEAAJCBBIEpwECCgoNCgUEAAJCBRIEpwELEwoNCgUEAAJCARIEpwEUJQoNCgUEAAJCAxIEpwEoKgoNCgUEAAJCCBIEpwErOwoOCgYEAAJCCAISBKcBLDoKDAoEBAACQxIEqAECPAoNCgUEAAJDBBIEqAECCgoNCgUEAAJDBRIEqAELEwoNCgUEAAJDARIEqAEUJQoNCgUEAAJDAxIEqAEoKgoNCgUEAAJDCBIEqAErOwoOCgYEAAJDCAISBKgBLDoKDAoEBAACRBIEqQECNgoNCgUEAAJEBBIEqQECCgoNCgUEAAJEBRIEqQELEAoNCgUEAAJEARIEqQERHwoNCgUEAAJEAxIEqQEiJAoNCgUEAAJECBIEqQElNQoOCgYEAAJECAISBKkBJjQKDAoEBAACRRIEqgECOQoNCgUEAAJFBBIEqgECCgoNCgUEAAJFBRIEqgELEQoNCgUEAAJFARIEqgESIQoNCgUEAAJFAxIEqgEkJwoNCgUEAAJFCBIEqgEoOAoOCgYEAAJFCAISBKoBKTcKDAoEBAACRhIEqwECNQoNCgUEAAJGBBIEqwECCgoNCgUEAAJGBRIEqwELDwoNCgUEAAJGARIEqwEQHQoNCgUEAAJGAxIEqwEgIwoNCgUEAAJGCBIEqwEkNAoOCgYEAAJGCAISBKsBJTMKDAoEBAACRxIErAECQgoNCgUEAAJHBBIErAECCgoNCgUEAAJHBhIErAELFQoNCgUEAAJHARIErAEWKgoNCgUEAAJHAxIErAEtMAoNCgUEAAJHCBIErAExQQoOCgYEAAJHCAISBKwBMkAKEwoEBAACSBIErwECKRoFIE1hcAoKDQoFBAACSAYSBK8BAhMKDQoFBAACSAESBK8BFCMKDQoFBAACSAMSBK8BJigKDAoEBAACSRIEsAECKQoNCgUEAAJJBhIEsAECEwoNCgUEAAJJARIEsAEUIwoNCgUEAAJJAxIEsAEmKAoMCgQEAAJKEgSxAQItCg0KBQQAAkoGEgSxAQIVCg0KBQQAAkoBEgSxARYnCg0KBQQAAkoDEgSxASosCgwKBAQAAksSBLIBAi0KDQoFBAACSwYSBLIBAhUKDQoFBAACSwESBLIBFicKDQoFBAACSwMSBLIBKiwKDAoEBAACTBIEswECLQoNCgUEAAJMBhIEswECFQoNCgUEAAJMARIEswEWJwoNCgUEAAJMAxIEswEqLAoMCgQEAAJNEgS0AQItCg0KBQQAAk0GEgS0AQIVCg0KBQQAAk0BEgS0ARYnCg0KBQQAAk0DEgS0ASosCgwKBAQAAk4SBLUBAjEKDQoFBAACTgYSBLUBAhcKDQoFBAACTgESBLUBGCsKDQoFBAACTgMSBLUBLjAKDAoEBAACTxIEtgECMQoNCgUEAAJPBhIEtgECFwoNCgUEAAJPARIEtgEYKwoNCgUEAAJPAxIEtgEuMAoMCgQEAAJQEgS3AQI1Cg0KBQQAAlAGEgS3AQIZCg0KBQQAAlABEgS3ARovCg0KBQQAAlADEgS3ATI0CgwKBAQAAlESBLgBAjUKDQoFBAACUQYSBLgBAhkKDQoFBAACUQESBLgBGi8KDQoFBAACUQMSBLgBMjQKDAoEBAACUhIEuQECKQoNCgUEAAJSBhIEuQECEwoNCgUEAAJSARIEuQEUIwoNCgUEAAJSAxIEuQEmKAoMCgQEAAJTEgS6AQIrCg0KBQQAAlMGEgS6AQIUCg0KBQQAAlMBEgS6ARUlCg0KBQQAAlMDEgS6ASgqCgwKBAQAAlQSBLsBAiUKDQoFBAACVAYSBLsBAhEKDQoFBAACVAESBLsBEh8KDQoFBAACVAMSBLsBIiQKDAoEBAACVRIEvAECLQoNCgUEAAJVBhIEvAECFQoNCgUEAAJVARIEvAEWJwoNCgUEAAJVAxIEvAEqLAoMCgQEAAJWEgS9AQIrCg0KBQQAAlYGEgS9AQIUCg0KBQQAAlYBEgS9ARUlCg0KBQQAAlYDEgS9ASgqCgwKBAQAAlcSBL4BAjwKDQoFBAACVwYSBL4BAhwKDQoFBAACVwESBL4BHTYKDQoFBAACVwMSBL4BOTsKDAoEBAACWBIEvwECPgoNCgUEAAJYBhIEvwECHQoNCgUEAAJYARIEvwEeOAoNCgUEAAJYAxIEvwE7PQoMCgQEAAJZEgTAAQI2Cg0KBQQAAlkGEgTAAQIZCg0KBQQAAlkBEgTAARowCg0KBQQAAlkDEgTAATM1CgwKBAQAAloSBMEBAjgKDQoFBAACWgYSBMEBAhoKDQoFBAACWgESBMEBGzIKDQoFBAACWgMSBMEBNTcKDgoEBAAIABIGwwECzgEDCg0KBQQACAABEgTDAQgTCgwKBAQAAlsSBMQBBB4KDQoFBAACWwUSBMQBBAoKDQoFBAACWwESBMQBCxcKDQoFBAACWwMSBMQBGh0KDAoEBAACXBIExQEELQoNCgUEAAJcBhIExQEEEQoNCgUEAAJcARIExQESJgoNCgUEAAJcAxIExQEpLAoMCgQEAAJdEgTGAQQeCg0KBQQAAl0FEgTGAQQKCg0KBQQAAl0BEgTGAQsXCg0KBQQAAl0DEgTGARodCgwKBAQAAl4SBMcBBBwKDQoFBAACXgUSBMcBBAkKDQoFBAACXgESBMcBChUKDQoFBAACXgMSBMcBGBsKDAoEBAACXxIEyAEEGgoNCgUEAAJfBRIEyAEECAoNCgUEAAJfARIEyAEJEwoNCgUEAAJfAxIEyAEWGQoMCgQEAAJgEgTJAQQeCg0KBQQAAmAFEgTJAQQKCg0KBQQAAmABEgTJAQsXCg0KBQQAAmADEgTJARodCgwKBAQAAmESBMoBBBwKDQoFBAACYQUSBMoBBAkKDQoFBAACYQESBMoBChUKDQoFBAACYQMSBMoBGBsKDAoEBAACYhIEywEEHgoNCgUEAAJiBRIEywEECgoNCgUEAAJiARIEywELFwoNCgUEAAJiAxIEywEaHQoMCgQEAAJjEgTMAQQgCg0KBQQAAmMGEgTMAQQOCg0KBQQAAmMBEgTMAQ8ZCg0KBQQAAmMDEgTMARwfCgwKBAQAAmQSBM0BBDUKDQoFBAACZAYSBM0BBB0KDQoFBAACZAESBM0BHi4KDQoFBAACZAMSBM0BMTQKIAoEBAACZRIE0QECOBoSIFdlbGwta25vd24gdHlwZXMKCg0KBQQAAmUGEgTRAQIbCg0KBQQAAmUBEgTRARwxCg0KBQQAAmUDEgTRATQ3CgwKBAQAAmYSBNIBAjoKDQoFBAACZgYSBNIBAhwKDQoFBAACZgESBNIBHTMKDQoFBAACZgMSBNIBNjkKDAoEBAACZxIE0wECOgoNCgUEAAJnBhIE0wECHAoNCgUEAAJnARIE0wEdMwoNCgUEAAJnAxIE0wE2OQoMCgQEAAJoEgTUAQI8Cg0KBQQAAmgGEgTUAQIdCg0KBQQAAmgBEgTUAR41Cg0KBQQAAmgDEgTUATg7CgwKBAQAAmkSBNUBAjwKDQoFBAACaQYSBNUBAh0KDQoFBAACaQESBNUBHjUKDQoFBAACaQMSBNUBODsKDAoEBAACahIE1gECOgoNCgUEAAJqBhIE1gECHAoNCgUEAAJqARIE1gEdMwoNCgUEAAJqAxIE1gE2OQoMCgQEAAJrEgTXAQI8Cg0KBQQAAmsGEgTXAQIdCg0KBQQAAmsBEgTXAR41Cg0KBQQAAmsDEgTXATg7CgwKBAQAAmwSBNgBAjwKDQoFBAACbAYSBNgBAh0KDQoFBAACbAESBNgBHjUKDQoFBAACbAMSBNgBODsKDAoEBAACbRIE2QECOgoNCgUEAAJtBhIE2QECHAoNCgUEAAJtARIE2QEdMwoNCgUEAAJtAxIE2QE2OQoMCgQEAAJuEgTbAQJBCg0KBQQAAm4EEgTbAQIKCg0KBQQAAm4GEgTbAQskCg0KBQQAAm4BEgTbASU6Cg0KBQQAAm4DEgTbAT1ACgwKBAQAAm8SBNwBAkMKDQoFBAACbwQSBNwBAgoKDQoFBAACbwYSBNwBCyUKDQoFBAACbwESBNwBJjwKDQoFBAACbwMSBNwBP0IKDAoEBAACcBIE3QECQwoNCgUEAAJwBBIE3QECCgoNCgUEAAJwBhIE3QELJQoNCgUEAAJwARIE3QEmPAoNCgUEAAJwAxIE3QE/QgoMCgQEAAJxEgTeAQJFCg0KBQQAAnEEEgTeAQIKCg0KBQQAAnEGEgTeAQsmCg0KBQQAAnEBEgTeASc+Cg0KBQQAAnEDEgTeAUFECgwKBAQAAnISBN8BAkUKDQoFBAACcgQSBN8BAgoKDQoFBAACcgYSBN8BCyYKDQoFBAACcgESBN8BJz4KDQoFBAACcgMSBN8BQUQKDAoEBAACcxIE4AECQwoNCgUEAAJzBBIE4AECCgoNCgUEAAJzBhIE4AELJQoNCgUEAAJzARIE4AEmPAoNCgUEAAJzAxIE4AE/QgoMCgQEAAJ0EgThAQJFCg0KBQQAAnQEEgThAQIKCg0KBQQAAnQGEgThAQsmCg0KBQQAAnQBEgThASc+Cg0KBQQAAnQDEgThAUFECgwKBAQAAnUSBOIBAkUKDQoFBAACdQQSBOIBAgoKDQoFBAACdQYSBOIBCyYKDQoFBAACdQESBOIBJz4KDQoFBAACdQMSBOIBQUQKDAoEBAACdhIE4wECQwoNCgUEAAJ2BBIE4wECCgoNCgUEAAJ2BhIE4wELJQoNCgUEAAJ2ARIE4wEmPAoNCgUEAAJ2AxIE4wE/QgoMCgQEAAJ3EgTlAQIzCg0KBQQAAncGEgTlAQIaCg0KBQQAAncBEgTlARssCg0KBQQAAncDEgTlAS8yCgwKBAQAAngSBOYBAjUKDQoFBAACeAYSBOYBAhsKDQoFBAACeAESBOYBHC4KDQoFBAACeAMSBOYBMTQKDAoEBAACeRIE5wECNgoNCgUEAAJ5BhIE5wECGwoNCgUEAAJ5ARIE5wEcLwoNCgUEAAJ5AxIE5wEyNQoMCgQEAAJ6EgToAQIvCg0KBQQAAnoGEgToAQIYCg0KBQQAAnoBEgToARkoCg0KBQQAAnoDEgToASsuCgwKBAQAAnsSBOkBAikKDQoFBAACewYSBOkBAhUKDQoFBAACewESBOkBFiIKDQoFBAACewMSBOkBJSgKDAoEBAACfBIE6gECLQoNCgUEAAJ8BhIE6gECFwoNCgUEAAJ8ARIE6gEYJgoNCgUEAAJ8AxIE6gEpLAoMCgQEAAJ9EgTrAQI2Cg0KBQQAAn0GEgTrAQIbCg0KBQQAAn0BEgTrARwvCg0KBQQAAn0DEgTrATI1CgwKBAQAAn4SBO0BAjwKDQoFBAACfgQSBO0BAgoKDQoFBAACfgYSBO0BCyMKDQoFBAACfgESBO0BJDUKDQoFBAACfgMSBO0BODsKDAoEBAACfxIE7gECPgoNCgUEAAJ/BBIE7gECCgoNCgUEAAJ/BhIE7gELJAoNCgUEAAJ/ARIE7gElNwoNCgUEAAJ/AxIE7gE6PQoNCgUEAAKAARIE7wECPgoOCgYEAAKAAQQSBO8BAgoKDgoGBAACgAEGEgTvAQskCg4KBgQAAoABARIE7wElNwoOCgYEAAKAAQMSBO8BOj0KDQoFBAACgQESBPABAjgKDgoGBAACgQEEEgTwAQIKCg4KBgQAAoEBBhIE8AELIQoOCgYEAAKBAQESBPABIjEKDgoGBAACgQEDEgTwATQ3Cg0KBQQAAoIBEgTxAQIyCg4KBgQAAoIBBBIE8QECCgoOCgYEAAKCAQYSBPEBCx4KDgoGBAACggEBEgTxAR8rCg4KBgQAAoIBAxIE8QEuMQoNCgUEAAKDARIE8gECNgoOCgYEAAKDAQQSBPIBAgoKDgoGBAACgwEGEgTyAQsgCg4KBgQAAoMBARIE8gEhLwoOCgYEAAKDAQMSBPIBMjUKDQoFBAAChAESBPMBAj8KDgoGBAAChAEEEgTzAQIKCg4KBgQAAoQBBhIE8wELJAoOCgYEAAKEAQESBPMBJTgKDgoGBAAChAEDEgTzATs+CnMKBQQAAoUBEgT3AQIZGmQgVGVzdCBmaWVsZC1uYW1lLXRvLUpTT04tbmFtZSBjb252ZW50aW9uLgogKHByb3RvYnVmIHNheXMgbmFtZXMgY2FuIGJlIGFueSB2YWxpZCBDL0MrKyBpZGVudGlmaWVyLikKCg4KBgQAAoUBBRIE9wECBwoOCgYEAAKFAQESBPcBCBIKDgoGBAAChQEDEgT3ARUYCg0KBQQAAoYBEgT4AQIaCg4KBgQAAoYBBRIE+AECBwoOCgYEAAKGAQESBPgBCBMKDgoGBAAChgEDEgT4ARYZCg0KBQQAAocBEgT5AQIbCg4KBgQAAocBBRIE+QECBwoOCgYEAAKHAQESBPkBCBQKDgoGBAAChwEDEgT5ARcaCg0KBQQAAogBEgT6AQIcCg4KBgQAAogBBRIE+gECBwoOCgYEAAKIAQESBPoBCBUKDgoGBAACiAEDEgT6ARgbCg0KBQQAAokBEgT7AQIaCg4KBgQAAokBBRIE+wECBwoOCgYEAAKJAQESBPsBCBMKDgoGBAACiQEDEgT7ARYZCg0KBQQAAooBEgT8AQIcCg4KBgQAAooBBRIE/AECBwoOCgYEAAKKAQESBPwBCBUKDgoGBAACigEDEgT8ARgbCg0KBQQAAosBEgT9AQIZCg4KBgQAAosBBRIE/QECBwoOCgYEAAKLAQESBP0BCBIKDgoGBAACiwEDEgT9ARUYCg0KBQQAAowBEgT+AQIZCg4KBgQAAowBBRIE/gECBwoOCgYEAAKMAQESBP4BCBIKDgoGBAACjAEDEgT+ARUYCg0KBQQAAo0BEgT/AQIaCg4KBgQAAo0BBRIE/wECBwoOCgYEAAKNAQESBP8BCBMKDgoGBAACjQEDEgT/ARYZCg0KBQQAAo4BEgSAAgIbCg4KBgQAAo4BBRIEgAICBwoOCgYEAAKOAQESBIACCBQKDgoGBAACjgEDEgSAAhcaCg0KBQQAAo8BEgSBAgIbCg4KBgQAAo8BBRIEgQICBwoOCgYEAAKPAQESBIECCBQKDgoGBAACjwEDEgSBAhcaCg0KBQQAApABEgSCAgIbCg4KBgQAApABBRIEggICBwoOCgYEAAKQAQESBIICCBQKDgoGBAACkAEDEgSCAhcaCg0KBQQAApEBEgSDAgIdCg4KBgQAApEBBRIEgwICBwoOCgYEAAKRAQESBIMCCBYKDgoGBAACkQEDEgSDAhkcCg0KBQQAApIBEgSEAgIdCg4KBgQAApIBBRIEhAICBwoOCgYEAAKSAQESBIQCCBYKDgoGBAACkgEDEgSEAhkcCg0KBQQAApMBEgSFAgIcCg4KBgQAApMBBRIEhQICBwoOCgYEAAKTAQESBIUCCBUKDgoGBAACkwEDEgSFAhgbCg0KBQQAApQBEgSGAgIcCg4KBgQAApQBBRIEhgICBwoOCgYEAAKUAQESBIYCCBUKDgoGBAAClAEDEgSGAhgbCg0KBQQAApUBEgSHAgIdCg4KBgQAApUBBRIEhwICBwoOCgYEAAKVAQESBIcCCBYKDgoGBAAClQEDEgSHAhkcCg0KBQQAApYBEgSIAgIdCg4KBgQAApYBBRIEiAICBwoOCgYEAAKWAQESBIgCCBYKDgoGBAAClgEDEgSIAhkcCjIKAwQACRIEiwICFholIFJlc2VydmVkIGZvciB0ZXN0aW5nIHVua25vd24gZmllbGRzCgoMCgQEAAkAEgSLAgsVCg0KBQQACQABEgSLAgsOCg0KBQQACQACEgSLAhIVCgwKAgQBEgaOAgCQAgEKCwoDBAEBEgSOAggWCgwKBAQBAgASBI8CAg4KDQoFBAECAAUSBI8CAgcKDQoFBAECAAESBI8CCAkKDQoFBAECAAMSBI8CDA0KDAoCBQASBpICAJYCAQoLCgMFAAESBJICBRAKDAoEBQACABIEkwICEgoNCgUFAAIAARIEkwICDQoNCgUFAAIAAhIEkwIQEQoMCgQFAAIBEgSUAgISCg0KBQUAAgEBEgSUAgINCg0KBQUAAgECEgSUAhARCgwKBAUAAgISBJUCAhIKDQoFBQACAgESBJUCAg0KDQoFBQACAgISBJUCEBEKCgoCBAISBJgCAB8KCwoDBAIBEgSYAggcCgwKAgQDEgaaAgCfAgEKCwoDBAMBEgSaAggWCg4KBAQDBAASBpsCAp4CAwoNCgUEAwQAARIEmwIHCwoOCgYEAwQAAgASBJwCBA8KDwoHBAMEAAIAARIEnAIECgoPCgcEAwQAAgACEgScAg0OCg4KBgQDBAACARIEnQIEDgoPCgcEAwQAAgEBEgSdAgQJCg8KBwQDBAACAQISBJ0CDA1iBnByb3RvMwrwlgIKKmdvb2dsZS9wcm90b2J1Zi90ZXN0X21lc3NhZ2VzX3Byb3RvMi5wcm90bxIdcHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIiuVEKElRlc3RBbGxUeXBlc1Byb3RvMhIlCg5vcHRpb25hbF9pbnQzMhgBIAEoBVINb3B0aW9uYWxJbnQzMhIlCg5vcHRpb25hbF9pbnQ2NBgCIAEoA1INb3B0aW9uYWxJbnQ2NBInCg9vcHRpb25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USbQoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USbgoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtEmQKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUhNvcHRpb25hbEZvcmVpZ25FbnVtEjYKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAJSE29wdGlvbmFsU3RyaW5nUGllY2USJwoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAFSDG9wdGlvbmFsQ29yZBJeChFyZWN1cnNpdmVfbWVzc2FnZRgbIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMlIQcmVjdXJzaXZlTWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJ3ChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USbQoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSFnJlcGVhdGVkRm9yZWlnbk1lc3NhZ2USbgoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtEmQKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUhNyZXBlYXRlZEZvcmVpZ25FbnVtEjYKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAJSE3JlcGVhdGVkU3RyaW5nUGllY2USJwoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAFSDHJlcGVhdGVkQ29yZBIlCgxwYWNrZWRfaW50MzIYSyADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYTCADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGE0gAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYTiADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhhPIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GFAgAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GFQgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GFUgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhXIAMoCEICEAFSCnBhY2tlZEJvb2wSbgoScGFja2VkX25lc3RlZF9lbnVtGFggAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1CAhABUhBwYWNrZWROZXN0ZWRFbnVtEikKDnVucGFja2VkX2ludDMyGFkgAygFQgIQAFINdW5wYWNrZWRJbnQzMhIpCg51bnBhY2tlZF9pbnQ2NBhaIAMoA0ICEABSDXVucGFja2VkSW50NjQSKwoPdW5wYWNrZWRfdWludDMyGFsgAygNQgIQAFIOdW5wYWNrZWRVaW50MzISKwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQAFIOdW5wYWNrZWRVaW50NjQSKwoPdW5wYWNrZWRfc2ludDMyGF0gAygRQgIQAFIOdW5wYWNrZWRTaW50MzISKwoPdW5wYWNrZWRfc2ludDY0GF4gAygSQgIQAFIOdW5wYWNrZWRTaW50NjQSLQoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEABSD3VucGFja2VkRml4ZWQzMhItChB1bnBhY2tlZF9maXhlZDY0GGAgAygGQgIQAFIPdW5wYWNrZWRGaXhlZDY0Ei8KEXVucGFja2VkX3NmaXhlZDMyGGEgAygPQgIQAFIQdW5wYWNrZWRTZml4ZWQzMhIvChF1bnBhY2tlZF9zZml4ZWQ2NBhiIAMoEEICEABSEHVucGFja2VkU2ZpeGVkNjQSKQoOdW5wYWNrZWRfZmxvYXQYYyADKAJCAhAAUg11bnBhY2tlZEZsb2F0EisKD3VucGFja2VkX2RvdWJsZRhkIAMoAUICEABSDnVucGFja2VkRG91YmxlEicKDXVucGFja2VkX2Jvb2wYZSADKAhCAhAAUgx1bnBhY2tlZEJvb2wScgoUdW5wYWNrZWRfbmVzdGVkX2VudW0YZiADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUICEABSEnVucGFja2VkTmVzdGVkRW51bRJsCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyEmwKD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQScgoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJyChFtYXBfdWludDY0X3VpbnQ2NBg7IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0EnIKEW1hcF9zaW50MzJfc2ludDMyGDwgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzIScgoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJ4ChNtYXBfZml4ZWQzMl9maXhlZDMyGD4gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEngKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSfgoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGEAgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJ+ChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYQSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0EmwKD21hcF9pbnQzMl9mbG9hdBhCIAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSbwoQbWFwX2ludDMyX2RvdWJsZRhDIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJmCg1tYXBfYm9vbF9ib29sGEQgAygLMkIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sEnIKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ug9tYXBTdHJpbmdTdHJpbmcSbwoQbWFwX3N0cmluZ19ieXRlcxhGIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdCeXRlc0VudHJ5Ug5tYXBTdHJpbmdCeXRlcxKIAQoZbWFwX3N0cmluZ19uZXN0ZWRfbWVzc2FnZRhHIAMoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnlSFm1hcFN0cmluZ05lc3RlZE1lc3NhZ2USiwEKGm1hcF9zdHJpbmdfZm9yZWlnbl9tZXNzYWdlGEggAygLMk4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnlSF21hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlEn8KFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5UhNtYXBTdHJpbmdOZXN0ZWRFbnVtEoIBChdtYXBfc3RyaW5nX2ZvcmVpZ25fZW51bRhKIAMoCzJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5UhRtYXBTdHJpbmdGb3JlaWduRW51bRIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzIScwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZUgAUhJvbmVvZk5lc3RlZE1lc3NhZ2USIwoMb25lb2Zfc3RyaW5nGHEgASgJSABSC29uZW9mU3RyaW5nEiEKC29uZW9mX2J5dGVzGHIgASgMSABSCm9uZW9mQnl0ZXMSHwoKb25lb2ZfYm9vbBhzIAEoCEgAUglvbmVvZkJvb2wSIwoMb25lb2ZfdWludDY0GHQgASgESABSC29uZW9mVWludDY0EiEKC29uZW9mX2Zsb2F0GHUgASgCSABSCm9uZW9mRmxvYXQSIwoMb25lb2ZfZG91YmxlGHYgASgBSABSC29uZW9mRG91YmxlEl0KCm9uZW9mX2VudW0YdyABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUgAUglvbmVvZkVudW0SSwoEZGF0YRjJASABKAoyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuRGF0YVIEZGF0YRIwCg1kZWZhdWx0X2ludDMyGPEBIAEoBToKLTEyMzQ1Njc4OVIMZGVmYXVsdEludDMyEjoKDWRlZmF1bHRfaW50NjQY8gEgASgDOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVIMZGVmYXVsdEludDY0EjIKDmRlZmF1bHRfdWludDMyGPMBIAEoDToKMjEyMzQ1Njc4OVINZGVmYXVsdFVpbnQzMhI8Cg5kZWZhdWx0X3VpbnQ2NBj0ASABKAQ6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5Ug1kZWZhdWx0VWludDY0EjIKDmRlZmF1bHRfc2ludDMyGPUBIAEoEToKLTEyMzQ1Njc4OVINZGVmYXVsdFNpbnQzMhI8Cg5kZWZhdWx0X3NpbnQ2NBj2ASABKBI6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Ug1kZWZhdWx0U2ludDY0EjQKD2RlZmF1bHRfZml4ZWQzMhj3ASABKAc6CjIxMjM0NTY3ODlSDmRlZmF1bHRGaXhlZDMyEj4KD2RlZmF1bHRfZml4ZWQ2NBj4ASABKAY6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5Ug5kZWZhdWx0Rml4ZWQ2NBI2ChBkZWZhdWx0X3NmaXhlZDMyGPkBIAEoDzoKLTEyMzQ1Njc4OVIPZGVmYXVsdFNmaXhlZDMyEkAKEGRlZmF1bHRfc2ZpeGVkNjQY+gEgASgQOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVIPZGVmYXVsdFNmaXhlZDY0EisKDWRlZmF1bHRfZmxvYXQY+wEgASgCOgU5ZSswOVIMZGVmYXVsdEZsb2F0Ei0KDmRlZmF1bHRfZG91YmxlGPwBIAEoAToFN2UrMjJSDWRlZmF1bHREb3VibGUSKAoMZGVmYXVsdF9ib29sGP0BIAEoCDoEdHJ1ZVILZGVmYXVsdEJvb2wSLwoOZGVmYXVsdF9zdHJpbmcY/gEgASgJOgdSb3NlYnVkUg1kZWZhdWx0U3RyaW5nEiwKDWRlZmF1bHRfYnl0ZXMY/wEgASgMOgZqb3NodWFSDGRlZmF1bHRCeXRlcxIfCgpmaWVsZG5hbWUxGJEDIAEoBVIKZmllbGRuYW1lMRIgCgtmaWVsZF9uYW1lMhiSAyABKAVSCmZpZWxkTmFtZTISIQoMX2ZpZWxkX25hbWUzGJMDIAEoBVIKRmllbGROYW1lMxIiCg1maWVsZF9fbmFtZTRfGJQDIAEoBVIKZmllbGROYW1lNBIhCgtmaWVsZDBuYW1lNRiVAyABKAVSC2ZpZWxkMG5hbWU1EiMKDWZpZWxkXzBfbmFtZTYYlgMgASgFUgtmaWVsZDBOYW1lNhIfCgpmaWVsZE5hbWU3GJcDIAEoBVIKZmllbGROYW1lNxIfCgpGaWVsZE5hbWU4GJgDIAEoBVIKRmllbGROYW1lOBIgCgtmaWVsZF9OYW1lORiZAyABKAVSCmZpZWxkTmFtZTkSIgoMRmllbGRfTmFtZTEwGJoDIAEoBVILRmllbGROYW1lMTASIgoMRklFTERfTkFNRTExGJsDIAEoBVILRklFTEROQU1FMTESIgoMRklFTERfbmFtZTEyGJwDIAEoBVILRklFTEROYW1lMTISJAoOX19maWVsZF9uYW1lMTMYnQMgASgFUgtGaWVsZE5hbWUxMxIkCg5fX0ZpZWxkX25hbWUxNBieAyABKAVSC0ZpZWxkTmFtZTE0EiMKDWZpZWxkX19uYW1lMTUYnwMgASgFUgtmaWVsZE5hbWUxNRIjCg1maWVsZF9fTmFtZTE2GKADIAEoBVILZmllbGROYW1lMTYSJAoOZmllbGRfbmFtZTE3X18YoQMgASgFUgtmaWVsZE5hbWUxNxIkCg5GaWVsZF9uYW1lMThfXxiiAyABKAVSC0ZpZWxkTmFtZTE4GnIKDU5lc3RlZE1lc3NhZ2USDAoBYRgBIAEoBVIBYRJTCgtjb3JlY3Vyc2l2ZRgCIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMlILY29yZWN1cnNpdmUaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpBChNNYXBTdHJpbmdCeXRlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgMUgV2YWx1ZToCOAEaigEKG01hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJVCgV2YWx1ZRgCIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlUgV2YWx1ZToCOAEafwocTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJJCgV2YWx1ZRgCIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUgV2YWx1ZToCOAEahAEKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJSCgV2YWx1ZRgCIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUgV2YWx1ZToCOAEaeQoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJGCgV2YWx1ZRgCIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUgV2YWx1ZToCOAEaTAoERGF0YRIgCgtncm91cF9pbnQzMhjKASABKAVSCmdyb3VwSW50MzISIgoMZ3JvdXBfdWludDMyGMsBIAEoDVILZ3JvdXBVaW50MzIaIQoRTWVzc2FnZVNldENvcnJlY3QqCAgEEP////8HOgIIARr6AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xEhAKA3N0chgZIAEoCVIDc3RyMsgBChVtZXNzYWdlX3NldF9leHRlbnNpb24SQy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QY+bteIAEoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjFSE21lc3NhZ2VTZXRFeHRlbnNpb24a9wEKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMhIMCgFpGAkgASgFUgFpMskBChVtZXNzYWdlX3NldF9leHRlbnNpb24SQy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QYkLP8ASABKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yUhNtZXNzYWdlU2V0RXh0ZW5zaW9uIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEqBQh4EMkBQg0KC29uZW9mX2ZpZWxkSgYI6AcQkE4iJAoURm9yZWlnbk1lc3NhZ2VQcm90bzISDAoBYxgBIAEoBVIBYyKeAwoVVW5rbm93blRvVGVzdEFsbFR5cGVzEiYKDm9wdGlvbmFsX2ludDMyGOkHIAEoBVINb3B0aW9uYWxJbnQzMhIoCg9vcHRpb25hbF9zdHJpbmcY6gcgASgJUg5vcHRpb25hbFN0cmluZxJbCg5uZXN0ZWRfbWVzc2FnZRjrByABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlINbmVzdGVkTWVzc2FnZRJpCg1vcHRpb25hbGdyb3VwGOwHIAEoCjJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlVua25vd25Ub1Rlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEiQKDW9wdGlvbmFsX2Jvb2wY7gcgASgIUgxvcHRpb25hbEJvb2wSJgoOcmVwZWF0ZWRfaW50MzIY8wcgAygFUg1yZXBlYXRlZEludDMyGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgBIAEoBVIBYSIWChROdWxsSHlwb3RoZXNpc1Byb3RvMiIvCg5FbnVtT25seVByb3RvMiIdCgRCb29sEgoKBmtGYWxzZRAAEgkKBWtUcnVlEAEiJQoPT25lU3RyaW5nUHJvdG8yEhIKBGRhdGEYASABKAlSBGRhdGEiYQoRUHJvdG9XaXRoS2V5d29yZHMSFgoGaW5saW5lGAEgASgFUgZpbmxpbmUSGAoHY29uY2VwdBgCIAEoCVIHY29uY2VwdBIaCghyZXF1aXJlcxgDIAMoCVIIcmVxdWlyZXMizBkKGlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yEiUKDnJlcXVpcmVkX2ludDMyGAEgAigFUg1yZXF1aXJlZEludDMyEiUKDnJlcXVpcmVkX2ludDY0GAIgAigDUg1yZXF1aXJlZEludDY0EicKD3JlcXVpcmVkX3VpbnQzMhgDIAIoDVIOcmVxdWlyZWRVaW50MzISJwoPcmVxdWlyZWRfdWludDY0GAQgAigEUg5yZXF1aXJlZFVpbnQ2NBInCg9yZXF1aXJlZF9zaW50MzIYBSACKBFSDnJlcXVpcmVkU2ludDMyEicKD3JlcXVpcmVkX3NpbnQ2NBgGIAIoElIOcmVxdWlyZWRTaW50NjQSKQoQcmVxdWlyZWRfZml4ZWQzMhgHIAIoB1IPcmVxdWlyZWRGaXhlZDMyEikKEHJlcXVpcmVkX2ZpeGVkNjQYCCACKAZSD3JlcXVpcmVkRml4ZWQ2NBIrChFyZXF1aXJlZF9zZml4ZWQzMhgJIAIoD1IQcmVxdWlyZWRTZml4ZWQzMhIrChFyZXF1aXJlZF9zZml4ZWQ2NBgKIAIoEFIQcmVxdWlyZWRTZml4ZWQ2NBIlCg5yZXF1aXJlZF9mbG9hdBgLIAIoAlINcmVxdWlyZWRGbG9hdBInCg9yZXF1aXJlZF9kb3VibGUYDCACKAFSDnJlcXVpcmVkRG91YmxlEiMKDXJlcXVpcmVkX2Jvb2wYDSACKAhSDHJlcXVpcmVkQm9vbBInCg9yZXF1aXJlZF9zdHJpbmcYDiACKAlSDnJlcXVpcmVkU3RyaW5nEiUKDnJlcXVpcmVkX2J5dGVzGA8gAigMUg1yZXF1aXJlZEJ5dGVzEn8KF3JlcXVpcmVkX25lc3RlZF9tZXNzYWdlGBIgAigLMkcucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIVcmVxdWlyZWROZXN0ZWRNZXNzYWdlEm0KGHJlcXVpcmVkX2ZvcmVpZ25fbWVzc2FnZRgTIAIoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUhZyZXF1aXJlZEZvcmVpZ25NZXNzYWdlEnYKFHJlcXVpcmVkX25lc3RlZF9lbnVtGBUgAigOMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTmVzdGVkRW51bVIScmVxdWlyZWROZXN0ZWRFbnVtEmQKFXJlcXVpcmVkX2ZvcmVpZ25fZW51bRgWIAIoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUhNyZXF1aXJlZEZvcmVpZ25FbnVtEjYKFXJlcXVpcmVkX3N0cmluZ19waWVjZRgYIAIoCUICCAJSE3JlcXVpcmVkU3RyaW5nUGllY2USJwoNcmVxdWlyZWRfY29yZBgZIAIoCUICCAFSDHJlcXVpcmVkQ29yZBJmChFyZWN1cnNpdmVfbWVzc2FnZRgbIAIoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yUhByZWN1cnNpdmVNZXNzYWdlEncKGm9wdGlvbmFsX3JlY3Vyc2l2ZV9tZXNzYWdlGBwgASgLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzJSGG9wdGlvbmFsUmVjdXJzaXZlTWVzc2FnZRJTCgRkYXRhGMkBIAIoCjI+LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLkRhdGFSBGRhdGESMAoNZGVmYXVsdF9pbnQzMhjxASACKAU6Ci0xMjM0NTY3ODlSDGRlZmF1bHRJbnQzMhI6Cg1kZWZhdWx0X2ludDY0GPIBIAIoAzoULTkxMjM0NTY3ODkxMjM0NTY3ODlSDGRlZmF1bHRJbnQ2NBIyCg5kZWZhdWx0X3VpbnQzMhjzASACKA06CjIxMjM0NTY3ODlSDWRlZmF1bHRVaW50MzISPAoOZGVmYXVsdF91aW50NjQY9AEgAigEOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4OVINZGVmYXVsdFVpbnQ2NBIyCg5kZWZhdWx0X3NpbnQzMhj1ASACKBE6Ci0xMjM0NTY3ODlSDWRlZmF1bHRTaW50MzISPAoOZGVmYXVsdF9zaW50NjQY9gEgAigSOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVINZGVmYXVsdFNpbnQ2NBI0Cg9kZWZhdWx0X2ZpeGVkMzIY9wEgAigHOgoyMTIzNDU2Nzg5Ug5kZWZhdWx0Rml4ZWQzMhI+Cg9kZWZhdWx0X2ZpeGVkNjQY+AEgAigGOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4OVIOZGVmYXVsdEZpeGVkNjQSNgoQZGVmYXVsdF9zZml4ZWQzMhj5ASACKA86Ci0xMjM0NTY3ODlSD2RlZmF1bHRTZml4ZWQzMhJAChBkZWZhdWx0X3NmaXhlZDY0GPoBIAIoEDoULTkxMjM0NTY3ODkxMjM0NTY3ODlSD2RlZmF1bHRTZml4ZWQ2NBIrCg1kZWZhdWx0X2Zsb2F0GPsBIAIoAjoFOWUrMDlSDGRlZmF1bHRGbG9hdBItCg5kZWZhdWx0X2RvdWJsZRj8ASACKAE6BTdlKzIyUg1kZWZhdWx0RG91YmxlEigKDGRlZmF1bHRfYm9vbBj9ASACKAg6BHRydWVSC2RlZmF1bHRCb29sEi8KDmRlZmF1bHRfc3RyaW5nGP4BIAIoCToHUm9zZWJ1ZFINZGVmYXVsdFN0cmluZxIsCg1kZWZhdWx0X2J5dGVzGP8BIAIoDDoGam9zaHVhUgxkZWZhdWx0Qnl0ZXMa6AEKDU5lc3RlZE1lc3NhZ2USDAoBYRgBIAIoBVIBYRJbCgtjb3JlY3Vyc2l2ZRgCIAIoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yUgtjb3JlY3Vyc2l2ZRJsChRvcHRpb25hbF9jb3JlY3Vyc2l2ZRgDIAEoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yUhNvcHRpb25hbENvcmVjdXJzaXZlGkwKBERhdGESIAoLZ3JvdXBfaW50MzIYygEgAigFUgpncm91cEludDMyEiIKDGdyb3VwX3VpbnQzMhjLASACKA1SC2dyb3VwVWludDMyGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEaigIKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRIQCgNzdHIYGSACKAlSA3N0cjLYAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QY+bteIAEoCzJVLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMVITbWVzc2FnZVNldEV4dGVuc2lvbhqHAgobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yEgwKAWkYCSACKAVSAWky2QEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMlUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yUhNtZXNzYWdlU2V0RXh0ZW5zaW9uIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEqBQh4EMkBSgYI6AcQkE4qRgoRRm9yZWlnbkVudW1Qcm90bzISDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAI6WgoPZXh0ZW5zaW9uX2ludDMyEjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yGHggASgFUg5leHRlbnNpb25JbnQzMkI4Cihjb20uZ29vZ2xlLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8ySAH4AQGiAgZQcm90bzJKnqQBCgcSBSUAjAMBCroNCgEMEgMlABIymQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMiBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGNvbmZvcm1hbmNlIHRlc3RzCgoyFCBMSU5UOiBBTExPV19HUk9VUFMKCggKAQISAycAJgoICgEIEgMpAEEKCQoCCAESAykAQQoICgEIEgMqACQKCQoCCCQSAyoAJAoICgEIEgMtABwKRAoCCAkSAy0AHBo5IFRoaXMgaXMgdGhlIGRlZmF1bHQsIGJ1dCB3ZSBzcGVjaWZ5IGl0IGhlcmUgZXhwbGljaXRseS4KCggKAQgSAy8AHwoJCgIIHxIDLwAfCtsCCgIEABIFOACCAgEazQIgVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCiBBbHNvLCBjcnVjaWFsbHksIGFsbCBtZXNzYWdlcyBhbmQgZW51bXMgaW4gdGhpcyBmaWxlIGFyZSBldmVudHVhbGx5CiBzdWJtZXNzYWdlcyBvZiB0aGlzIG1lc3NhZ2UuICBTbyBmb3IgZXhhbXBsZSwgYSBmdXp6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DwoHBAcDBAIAAxIEigMXGArYNAouZ29vZ2xlL3Byb3RvYnVmL3VuaXR0ZXN0X3Byb3RvM19vcHRpb25hbC5wcm90bxIRcHJvdG9idWZfdW5pdHRlc3QaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIo8NChJUZXN0UHJvdG8zT3B0aW9uYWwSKgoOb3B0aW9uYWxfaW50MzIYASABKAVIAFINb3B0aW9uYWxJbnQzMogBARIqCg5vcHRpb25hbF9pbnQ2NBgCIAEoA0gBUg1vcHRpb25hbEludDY0iAEBEiwKD29wdGlvbmFsX3VpbnQzMhgDIAEoDUgCUg5vcHRpb25hbFVpbnQzMogBARIsCg9vcHRpb25hbF91aW50NjQYBCABKARIA1IOb3B0aW9uYWxVaW50NjSIAQESLAoPb3B0aW9uYWxfc2ludDMyGAUgASgRSARSDm9wdGlvbmFsU2ludDMyiAEBEiwKD29wdGlvbmFsX3NpbnQ2NBgGIAEoEkgFUg5vcHRpb25hbFNpbnQ2NIgBARIuChBvcHRpb25hbF9maXhlZDMyGAcgASgHSAZSD29wdGlvbmFsRml4ZWQzMogBARIuChBvcHRpb25hbF9maXhlZDY0GAggASgGSAdSD29wdGlvbmFsRml4ZWQ2NIgBARIwChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD0gIUhBvcHRpb25hbFNmaXhlZDMyiAEBEjAKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQSAlSEG9wdGlvbmFsU2ZpeGVkNjSIAQESKgoOb3B0aW9uYWxfZmxvYXQYCyABKAJIClINb3B0aW9uYWxGbG9hdIgBARIsCg9vcHRpb25hbF9kb3VibGUYDCABKAFIC1IOb3B0aW9uYWxEb3VibGWIAQESKAoNb3B0aW9uYWxfYm9vbBgNIAEoCEgMUgxvcHRpb25hbEJvb2yIAQESLAoPb3B0aW9uYWxfc3RyaW5nGA4gASgJSA1SDm9wdGlvbmFsU3RyaW5niAEBEioKDm9wdGlvbmFsX2J5dGVzGA8gASgMSA5SDW9wdGlvbmFsQnl0ZXOIAQESLAoNb3B0aW9uYWxfY29yZBgQIAEoCUICCAFID1IMb3B0aW9uYWxDb3JkiAEBEnAKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFByb3RvM09wdGlvbmFsLk5lc3RlZE1lc3NhZ2VIEFIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdliAEBEmwKE2xhenlfbmVzdGVkX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkTWVzc2FnZUICKAFIEVIRbGF6eU5lc3RlZE1lc3NhZ2WIAQESZwoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yMC5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkRW51bUgSUhJvcHRpb25hbE5lc3RlZEVudW2IAQESJQoOc2luZ3VsYXJfaW50MzIYFiABKAVSDXNpbmd1bGFySW50MzISJQoOc2luZ3VsYXJfaW50NjQYFyABKANSDXNpbmd1bGFySW50NjQaKwoNTmVzdGVkTWVzc2FnZRITCgJiYhgBIAEoBUgAUgJiYogBAUIFCgNfYmIiSgoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADEhAKA05FRxD///////////8BQhEKD19vcHRpb25hbF9pbnQzMkIRCg9fb3B0aW9uYWxfaW50NjRCEgoQX29wdGlvbmFsX3VpbnQzMkISChBfb3B0aW9uYWxfdWludDY0QhIKEF9vcHRpb25hbF9zaW50MzJCEgoQX29wdGlvbmFsX3NpbnQ2NEITChFfb3B0aW9uYWxfZml4ZWQzMkITChFfb3B0aW9uYWxfZml4ZWQ2NEIUChJfb3B0aW9uYWxfc2ZpeGVkMzJCFAoSX29wdGlvbmFsX3NmaXhlZDY0QhEKD19vcHRpb25hbF9mbG9hdEISChBfb3B0aW9uYWxfZG91YmxlQhAKDl9vcHRpb25hbF9ib29sQhIKEF9vcHRpb25hbF9zdHJpbmdCEQoPX29wdGlvbmFsX2J5dGVzQhAKDl9vcHRpb25hbF9jb3JkQhoKGF9vcHRpb25hbF9uZXN0ZWRfbWVzc2FnZUIWChRfbGF6eV9uZXN0ZWRfbWVzc2FnZUIXChVfb3B0aW9uYWxfbmVzdGVkX2VudW0isgIKGVRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2USYQoObmVzdGVkX21lc3NhZ2UYASABKAsyOi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWxNZXNzYWdlLk5lc3RlZE1lc3NhZ2VSDW5lc3RlZE1lc3NhZ2USdwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYAiABKAsyOi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWxNZXNzYWdlLk5lc3RlZE1lc3NhZ2VIAFIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdliAEBGh0KDU5lc3RlZE1lc3NhZ2USDAoBcxgBIAEoCVIBc0IaChhfb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UiyQEKGFByb3RvM09wdGlvbmFsRXh0ZW5zaW9uczJLCg9leHRfbm9fb3B0aW9uYWwSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYiM3ZqQEgASgFUg1leHROb09wdGlvbmFsMlIKEWV4dF93aXRoX29wdGlvbmFsEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGInN2akBIAEoBVIPZXh0V2l0aE9wdGlvbmFsiAEBOgzA6MzNCgjI6MzNChBCOAohY29tLmdvb2dsZS5wcm90b2J1Zi50ZXN0aW5nLnByb3RvUAGqAhBQcm90b2J1ZlVuaXR0ZXN0SpsiCgYSBB4AZAEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZ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GgqimN+FDwQIARACMjUKAXMSGy5wcm90b2J1Zl91bml0dGVzdC5FeHRlbmRlZRgCIAEoCUIKmrrthA8ECAEQAlIBczoKmsXehQ8ECAEQAkIPCgFvEgqK27eEDwQIARACKj0KDFRvcExldmVsRW51bRIhChFUT1BfTEVWRUxfVU5LTk9XThAAGgrS3amEDwQIARACGgr6nqqEDwQIARACMnQKB1NlcnZpY2USXQoHRG9TdHVmZhIiLnByb3RvYnVmX3VuaXR0ZXN0LlRvcExldmVsTWVzc2FnZRoiLnByb3RvYnVmX3VuaXR0ZXN0LlRvcExldmVsTWVzc2FnZSIK4q74gw8ECAEQAhoK6oeLhA8ECAEQAjpDCgxwbGFpbl9vcHRpb24SHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMYxrXs8AEgASgFUgtwbGFpbk9wdGlvbjpfChhydW50aW1lX3JldGVudGlvbl9vcHRpb24SHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMYnJLp8AEgASgFQgOIAQFSFnJ1bnRpbWVSZXRlbnRpb25PcHRpb246XQoXc291cmNlX3JldGVudGlvbl9vcHRpb24SHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMY1Kzf8AEgASgFQgOIAQJSFXNvdXJjZVJldGVudGlvbk9wdGlvbjpkCgtmaWxlX29wdGlvbhIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxiA8t7wASABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25zTWVzc2FnZVIKZmlsZU9wdGlvbjpuChByZXBlYXRlZF9vcHRpb25zEhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zGJL+2/ABIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUg9yZXBlYXRlZE9wdGlvbnM6gwEKFmV4dGVuc2lvbl9yYW5nZV9vcHRpb24SJi5nb29nbGUucHJvdG9idWYuRXh0ZW5zaW9uUmFuZ2VPcHRpb25zGITz2/ABIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUhRleHRlbnNpb25SYW5nZU9wdGlvbjptCg5tZXNzYWdlX29wdGlvbhIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjT6NvwASABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25zTWVzc2FnZVINbWVzc2FnZU9wdGlvbjpnCgxmaWVsZF9vcHRpb24SHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGKPXzfABIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUgtmaWVsZE9wdGlvbjpnCgxvbmVvZl9vcHRpb24SHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zGLH7xvABIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUgtvbmVvZk9wdGlvbjpkCgtlbnVtX29wdGlvbhIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxjvo8XwASABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25zTWVzc2FnZVIKZW51bU9wdGlvbjp0ChFlbnVtX2VudHJ5X29wdGlvbhIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGNqbxfABIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUg9lbnVtRW50cnlPcHRpb246bQoOc2VydmljZV9vcHRpb24SHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMY/bDB8AEgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuT3B0aW9uc01lc3NhZ2VSDXNlcnZpY2VPcHRpb246agoNbWV0aG9kX29wdGlvbhIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGOyFv/ABIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUgxtZXRob2RPcHRpb246NQoBaRIbLnByb3RvYnVmX3VuaXR0ZXN0LkV4dGVuZGVlGAEgASgFQgqauu2EDwQIARACUgFpQjOqAhBQcm90b2J1ZlVuaXR0ZXN0kvHfhQ8ECAEQAoKQ94UPBAgBEALgkcmGDwKwrOOGDwFKjSQKBxIFHgDPAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGgoJCgIDABIDIgAqCggKAQgSAyQALQoJCgIIJRIDJAAtCkAKAQcSBCcALQEaNSBSZXRlbnRpb24gYXR0cmlidXRlcyBzZXQgZGlyZWN0bHkgb24gY3VzdG9tIG9wdGlvbnMKCgkKAgcAEgMoAioKCgoDBwACEgMnByIKCgoDBwAEEgMoAgoKCgoDBwAFEgMoCxAKCgoDBwABEgMoER0KCgoDBwADEgMoICkKCgoCBwESBCkCKiYKCgoDBwECEgMnByIKCgoDBwEEEgMpAgoKCgoDBwEFEgMpCxAKCgoDBwEBEgMpESkKCgoDBwEDEgMpLDUKCgoDBwEIEgMqBiUKCwoEBwEIERIDKgckCgoKAgcCEgQrAiwlCgoKAwcCAhIDJwciCgoKAwcCBBIDKwIKCgoKAwcCBRIDKwsQCgoKAwcCARIDKxEoCgoKAwcCAxIDKys0CgoKAwcCCBIDLAYkCgsKBAcCCBESAywHIwoICgEIEgMvABoKDQoGCMa17PABEgMvABoKCAoBCBIDMAAmCg0KBgickunwARIDMAAmCggKAQgSAzEAJQpICgIEABIENAA4ARo8IFJldGVudGlvbiBhdHRyaWJ1dGVzIHNldCBvbiBmaWVsZHMgbmVzdGVkIHdpdGhpbiBhIG1lc3NhZ2UKCgoKAwQAARIDNAgWCgsKBAQAAgASAzUCIQoMCgUEAAIABBIDNQIKCgwKBQQAAgAFEgM1CxAKDAoFBAACAAESAzURHAoMCgUEAAIAAxIDNR8gCgsKBAQAAgESAzYCTQoMCgUEAAIBBBIDNgIKCgwKBQQAAgEFEgM2CxAKDAoFBAACAQESAzYRKAoMCgUEAAIBAxIDNissCgwKBQQAAgEIEgM2LUwKDQoGBAACAQgREgM2LksKCwoEBAACAhIDNwJLCgwKBQQAAgIEEgM3AgoKDAoFBAACAgUSAzcLEAoMCgUEAAICARIDNxEnCgwKBQQAAgIDEgM3KisKDAoFBAACAggSAzcsSgoNCgYEAAICCBESAzctSQoJCgEHEgQ6ADwBCgkKAgcDEgM7AjIKCgoDBwMCEgM6ByIKCgoDBwMEEgM7AgoKCgoDBwMGEgM7CxkKCgoDBwMBEgM7GiUKCgoDBwMDEgM7KDEKCQoBCBIEPgBCAgoOCgYIgPLe8AESBD4AQgIKRwoBBxIERQBHARo8IFJldGVudGlvbiBhdHRyaWJ1dGUgbmVzdGVkIGluc2lkZSBhIHJlcGVhdGVkIG1lc3NhZ2UgZmllbGQKCgkKAgcEEgNGAjcKCgoDBwQCEgNFByIKCgoDBwQEEgNGAgoKCgoDBwQGEgNGCxkKCgoDBwQBEgNGGioKCgoDBwQDEgNGLTYKCQoBCBIESQBNAgoPCgcIkv7b8AEAEgRJAE0CCgkKAQcSBE8AUQEKCQoCBwUSA1ACPQoKCgMHBQISA08HLAoKCgMHBQQSA1ACCgoKCgMHBQYSA1ALGQoKCgMHBQESA1AaMAoKCgMHBQMSA1AzPAoJCgEHEgRTAFUBCgkKAgcGEgNUAjUKCgoDBwYCEgNTByUKCgoDBwYEEgNUAgoKCgoDBwYGEgNUCxkKCgoDBwYBEgNUGigKCgoDBwYDEgNUKzQKCQoBBxIEVwBZAQoJCgIHBxIDWAIzCgoKAwcHAhIDVwcjCgoKAwcHBBIDWAIKCgoKAwcHBhIDWAsZCgoKAwcHARIDWBomCgoKAwcHAxIDWCkyCgkKAQcSBFsAXQEKCQoCBwgSA1wCMwoKCgMHCAISA1sHIwoKCgMHCAQSA1wCCgoKCgMHCAYSA1wLGQoKCgMHCAESA1waJgoKCgMHCAMSA1wpMgoJCgEHEgRfAGEBCgkKAgcJEgNgAjIKCgoDBwkCEgNfByIKCgoDBwkEEgNgAgoKCgoDBwkGEgNgCxkKCgoDBwkBEgNgGiUKCgoDBwkDEgNgKDEKCQoBBxIEYwBlAQoJCgIHChIDZAI4CgoKAwcKAhIDYwcnCgoKAwcKBBIDZAIKCgoKAwcKBhIDZAsZCgoKAwcKARIDZBorCgoKAwcKAxIDZC43CgkKAQcSBGcAaQEKCQoCBwsSA2gCNQoKCgMHCwISA2cHJQoKCgMHCwQSA2gCCgoKCgMHCwYSA2gLGQoKCgMHCwESA2gaKAoKCgMHCwMSA2grNAoJCgEHEgRrAG0BCgkKAgcMEgNsAjQKCgoDBwwCEgNrByQKCgoDBwwEEgNsAgoKCgoDBwwGEgNsCxkKCgoDBwwBEgNsGicKCgoDBwwDEgNsKjMKCgoCBAESBG8AcQEKCgoDBAEBEgNvCBAKCgoDBAEFEgNwAhIKCwoEBAEFABIDcA0OCgwKBQQBBQABEgNwDQ4KDAoFBAEFAAISA3ANDgoLCgQEAQUBEgNwEBEKDAoFBAEFAQESA3AQEQoMCgUEAQUBAhIDcBARCgkKAQcSBHMAeQEKCgoCBw0SBHQCeAUKCgoDBw0CEgNzBw8KCgoDBw0EEgN0AgoKCgoDBw0FEgN0CxAKCgoDBw0BEgN0ERIKCgoDBw0DEgN0FRYKCwoDBw0IEgR0F3gEChAKCAcNCKPXzfABEgR0GHgDCgsKAgQCEgV7ALEBAQoKCgMEAgESA3sIFwoMCgMEAgcSBXwCgAEEChEKCAQCB9Po2/ABEgV8AoABBAoOCgQEAgMAEgaCAQKIAQMKDQoFBAIDAAESBIIBChcKDwoFBAIDAAcSBoMBBIcBBgoUCgoEAgMAB9Po2/ABEgaDAQSHAQYKDgoEBAIEABIGigECkgEDCg0KBQQCBAABEgSKAQcRCg8KBQQCBAADEgaLAQSPAQYKFAoKBAIEAAPvo8XwARIGiwEEjwEGCg4KBgQCBAACABIEkQEEFwoPCgcEAgQAAgABEgSRAQQSCg8KBwQCBAACAAISBJEBFRYKDgoEBAICABIGlAECmAEFCg0KBQQCAgAEEgSUAQIKCg0KBQQCAgAFEgSUAQsQCg0KBQQCAgABEgSUARESCg0KBQQCAgADEgSUARUWCg8KBQQCAgAIEgaUAReYAQQKFAoKBAICAAij183wARIGlAEYmAEDCg4KBAQCCAASBpoBAqIBAwoNCgUEAggAARIEmgEICQoPCgUEAggAAhIGmwEEnwEGChQKCgQCCAACsfvG8AESBpsBBJ8BBgoMCgQEAgIBEgShAQQQCg0KBQQCAgEFEgShAQQJCg0KBQQCAgEBEgShAQoLCg0KBQQCAgEDEgShAQ4PCg0KAwQCBRIGpAECqAEFCgwKBAQCBQASBKQBDRYKDQoFBAIFAAESBKQBDQ8KDQoFBAIFAAISBKQBExYKDwoFBAIFAAMSBqQBF6gBBAoUCgoEAgUAA4Tz2/ABEgakARioAQMKDQoDBAIGEgaqAQKwAQMKDgoEBAIGABIGqwEErwEHCg0KBQQCBgACEgSqAQkRCg0KBQQCBgAEEgSrAQQMCg0KBQQCBgAFEgSrAQ0TCg0KBQQCBgABEgSrARQVCg0KBQQCBgADEgSrARgZCg8KBQQCBgAIEgarARqvAQYKFAoKBAIGAAij183wARIGqwEbrwEFCgwKAgUAEgazAQC/AQEKCwoDBQABEgSzAQURCg0KAwUAAxIGtAECuAEEChIKCAUAA++jxfABEga0AQK4AQQKDgoEBQACABIGugECvgEFCg0KBQUAAgABEgS6AQITCg0KBQUAAgACEgS6ARYXCg8KBQUAAgADEga6ARi+AQQKFAoKBQACAAPam8XwARIGugEZvgEDCgwKAgYAEgbBAQDPAQEKCwoDBgABEgTBAQgPCg0KAwYAAxIGwgECxgEEChIKCAYAA/2wwfABEgbCAQLGAQQKDgoEBgACABIGyAECzgEDCg0KBQYAAgABEgTIAQYNCg0KBQYAAgACEgTIAQ4dCg0KBQYAAgADEgTIASg3Cg8KBQYAAgAEEgbJAQTNAQYKFAoKBgACAATshb/wARIGyQEEzQEG