IyBMb2NhbGVJbmZvcm1hdGlvbl9zaWQucHJvcGVydGllcyAtLQojIENvcHlyaWdodCAoQykgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4KIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBEaXN0cmlidXRlZCB1bmRlciB0aGUgVGVybXMgb2YgVXNlCiMgaW4gaHR0cDovL3d3dy51bmljb2RlLm9yZy9jb3B5cmlnaHQuaHRtbC4KIwojIFRoaXMgZmlsZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZ251LmxvY2FsZWdlbiBmcm9tIENMRFIuCgpjdXJyZW5jaWVzRGlzcGxheU5hbWUuSU5SPUluZGlhbiBSdXBlZQpjdXJyZW5jaWVzRGlzcGxheU5hbWUuSlBZPUphcGFuZXNlIFllbgpjdXJyZW5jaWVzRGlzcGxheU5hbWUuUlVCPVJ1c3NpYW4gUnVibGUKY3VycmVuY2llc0Rpc3BsYXlOYW1lLkNOWT1DaGluZXNlIFl1YW4gUmVubWluYmkKY3VycmVuY2llc0Rpc3BsYXlOYW1lLkdCUD1Ccml0aXNoIFBvdW5kIFN0ZXJsaW5nCmN1cnJlbmNpZXNEaXNwbGF5TmFtZS5FVVI9RXVybwpjdXJyZW5jaWVzRGlzcGxheU5hbWUuVVNEPVVTIERvbGxhcgpjdXJyZW5jaWVzRGlzcGxheU5hbWUuQlJMPUJyYXppbGlhbiBSZWFsCmN1cnJlbmNpZXNTeW1ib2wuRVRCPSQKY3VycmVuY2llc1N5bWJvbC5VU0Q9VVMkCnNob3J0TW9udGhzPUphbq5GZWKuTWFyrkFwcq5NYXmuSnVurkp1bK5BdWeuU2Vwrk9jdK5Ob3auRGVjrq4KbW9udGhzPUphbnVhcnmuRmVicnVhcnmuTWFyY2iuQXByaWyuTWF5rkp1bmWuSnVsea5BdWd1c3SuU2VwdGVtYmVyrk9jdG9iZXKuTm92ZW1iZXKuRGVjZW1iZXKurgpzaG9ydFdlZWtkYXlzPa5TYW2uU2Furk1ha65Sb3euSGFtrkFyYq5RaWSuCndlZWtkYXlzPa5TYW1iYXRhrlNhbnlvrk1hYWtpc2FueW+uUm9vd2WuSGFtdXNlrkFyYmWuUWlkYWFtZa4KZmlyc3REYXlPZldlZWs9c2F0CmVyYXM9WUlBrllJR64KYW1wbXM9c29vZG+uaGF3d2Fyb64Kc2hvcnREYXRlRm9ybWF0PWRkL01NL3l5Cm1lZGl1bURhdGVGb3JtYXQ9ZGQtTU1NLXl5eXkKbG9uZ0RhdGVGb3JtYXQ9ZGQgTU1NTSB5eXl5CmZ1bGxEYXRlRm9ybWF0PUVFRUUsIE1NTU0gZGQsIHl5eXkKc2hvcnRUaW1lRm9ybWF0PWg6bW0gYQptZWRpdW1UaW1lRm9ybWF0PWg6bW06c3MgYQpsb25nVGltZUZvcm1hdD1oOm1tOnNzIGEKZnVsbFRpbWVGb3JtYXQ9aDptbTpzcyBhCnRlcnJpdG9yaWVzLkZSPUZyYW5jZQp0ZXJyaXRvcmllcy5JTj1JbmRpYQp0ZXJyaXRvcmllcy5DTj1DaGluYQp0ZXJyaXRvcmllcy5FVD1JdGl5b29waGl5YQp0ZXJyaXRvcmllcy5ERT1HZXJtYW55CnRlcnJpdG9yaWVzLkdCPVVuaXRlZCBLaW5nZG9tCnRlcnJpdG9yaWVzLkJSPUJyYXppbAp0ZXJyaXRvcmllcy5SVT1SdXNzaWEKdGVycml0b3JpZXMuSlA9SmFwYW4KdGVycml0b3JpZXMuVVM9VW5pdGVkIFN0YXRlcwp0ZXJyaXRvcmllcy5JVD1JdGFseQpsYW5ndWFnZXMuemg9Q2hpbmVzZQpsYW5ndWFnZXMuZW49RW5nbGlzaApsYW5ndWFnZXMuc2lkPVNpZGFhbXUgQWZvCmxhbmd1YWdlcy5ydT1SdXNzaWFuCmxhbmd1YWdlcy5oaT1IaW5kaQpsYW5ndWFnZXMuYXI9QXJhYmljCmxhbmd1YWdlcy5pdD1JdGFsaWFuCmxhbmd1YWdlcy5mcj1GcmVuY2gKbGFuZ3VhZ2VzLmRlPUdlcm1hbgpsYW5ndWFnZXMuZXM9U3BhbmlzaApsYW5ndWFnZXMuamE9SmFwYW5lc2UKbGFuZ3VhZ2VzLnB0PVBvcnR1Z3Vlc2UK