ZGlmZiAtLWdpdCBhL0NIQU5HRUxPRy5yc3QgYi9DSEFOR0VMT0cucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NjIwNzAKLS0tIC9kZXYvbnVsbAorKysgYi9DSEFOR0VMT0cucnN0CkBAIC0wLDAgKzEsNiBAQAoraG9yaXpvbiBmb3JtdWxhCis9PT09PT09PT09PT09PT0KKworMC4wLjEgKDIwMTUtMDgtMDMpCisKKy0gSW5pdGlhbCBmb3JtdWxhIHNldHVwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTElDRU5TRSBiL0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU4MGIxMgotLS0gL2Rldi9udWxsCisrKyBiL0xJQ0VOU0UKQEAgLTAsMCArMSwxMyBAQAorQ29weXJpZ2h0IChjKSAyMDE0LTIwMTUgdGNwIGNsb3VkIGEuIHMuCisKK0xpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCitVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCitkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCitTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCitsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9SRUFETUUucnN0IGIvUkVBRE1FLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTg3ZDMwCi0tLSAvZGV2L251bGwKKysrIGIvUkVBRE1FLnJzdApAQCAtMCwwICsxLDM0MyBAQAorCis9PT09PT09CitIb3Jpem9uIAorPT09PT09PQorCitPcGVuU3RhY2sgZGFzaGJvYXJkIHByb2plY3QKKworU2FtcGxlIHBpbGxhcnMKKz09PT09PT09PT09PT09CisKK1BhY2thZ2VkIHZlcnNpb24gb2YgaG9yaXpvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK09uZSBob3Jpem9uIG9uIHNlcnZlcgorCitTaW1wbGVzdCBob3Jpem9uIHNldHVwIHdpdGggbWFuYWdlZCBjbG91ZC1hcmNoaXZlIHJlcG8gb24gdWJ1bnR1IDEyLjA0CisKKyAgICBsaW51eDoKKyAgICAgIHN5c3RlbToKKyAgICAgICAgbmFtZTogaG9yaXpvbgorICAgICAgICByZXBvOgorICAgICAgICAgLSBjbG91ZGFyY2hpdmUtaGF2YW5hOgorICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgICAgICAgc291cmNlOiAnZGViIGh0dHA6Ly91YnVudHUtY2xvdWQuYXJjaGl2ZS5jYW5vbmljYWwuY29tL3VidW50dSBwcmVjaXNlLXVwZGF0ZXMvaGF2YW5hIG1haW4nCisgICAgICAgICAgICBwZ3BjaGVjazogMAorICAgIGhvcml6b246CisgICAgICBzZXJ2ZXI6CisgICAgICAgIG1hbmFnZV9yZXBvOiB0cnVlCisgICAgICAgIGVuYWJsZWQ6IHRydWUKKyAgICAgICAgc2VjcmV0X2tleTogTUVHQVNFQ1JFVAorICAgICAgICBob3N0OgorICAgICAgICAgIG5hbWU6IGNsb3VkLmxhYi5jegorICAgICAgICBjYWNoZToKKyAgICAgICAgICBlbmdpbmU6ICdtZW1jYWNoZWQnCisgICAgICAgICAgaG9zdDogJzEyNy4wLjAuMScKKyAgICAgICAgICBwb3J0OiAxMTIxMQorICAgICAgICAgIHByZWZpeDogJ0NBQ0hFX0hPUklaT04nCisgICAgICAgIGlkZW50aXR5OgorICAgICAgICAgIGVuZ2luZTogJ2tleXN0b25lJworICAgICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnCisgICAgICAgICAgcG9ydDogNTAwMAorICAgICAgICAgIGFwaV92ZXJzaW9uOiAyCisgICAgICAgIG1haWw6CisgICAgICAgICAgaG9zdDogJzEyNy4wLjAuMScKKworU2ltcGxlIGJyYW5kZWQgaG9yaXpvbgorCisgICAgaG9yaXpvbjoKKyAgICAgIHNlcnZlcjoKKyAgICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgICBicmFuZGluZzogJ09wZW5TdGFjayBDb21wYW55IERhc2hib2FyZCcKKyAgICAgICAgZGVmYXVsdF9kYXNoYm9hcmQ6ICdhZG1pbicKKyAgICAgICAgaGVscF91cmw6ICdodHRwOi8vZG9jLmRvbWFpbi5jb20nCisKK0hvcml6b24gcGFja2FnZSBzZXR1cCB3aXRoIFNTTAorCisgICAgaG9yaXpvbjoKKyAgICAgIHNlcnZlcjoKKyAgICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgICBzZWNyZXRfa2V5OiBNRUdBU0VDUkVUCisgICAgICAgIHZlcnNpb246IGp1bm8KKyAgICAgICAgc3NsOgorICAgICAgICAgIGVuYWJsZWQ6IHRydWUKKyAgICAgICAgICBhdXRob3JpdHk6IENBX0F1dGhvcml0eQorICAgICAgICBob3N0OgorICAgICAgICAgIG5hbWU6IGNsb3VkLmxhYi5jegorICAgICAgICBjYWNoZToKKyAgICAgICAgICBlbmdpbmU6ICdtZW1jYWNoZWQnCisgICAgICAgICAgaG9zdDogJzEyNy4wLjAuMScKKyAgICAgICAgICBwb3J0OiAxMTIxMQorICAgICAgICAgIHByZWZpeDogJ0NBQ0hFX0hPUklaT04nCisgICAgICAgIGlkZW50aXR5OgorICAgICAgICAgIGVuZ2luZTogJ2tleXN0b25lJworICAgICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnCisgICAgICAgICAgcG9ydDogNTAwMAorICAgICAgICAgIGFwaV92ZXJzaW9uOiAyCisgICAgICAgIG1haWw6CisgICAgICAgICAgaG9zdDogJzEyNy4wLjAuMScKKworTXVsdGktcmVnaW9uYWwgaG9yaXpvbiBzZXR1cAorCisgICAgaG9yaXpvbjoKKyAgICAgIHNlcnZlcjoKKyAgICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgICB2ZXJzaW9uOiBqdW5vCisgICAgICAgIHNlY3JldF9rZXk6IE1FR0FTRUNSRVQKKyAgICAgICAgY2FjaGU6CisgICAgICAgICAgZW5naW5lOiAnbWVtY2FjaGVkJworICAgICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnCisgICAgICAgICAgcG9ydDogMTEyMTEKKyAgICAgICAgICBwcmVmaXg6ICdDQUNIRV9IT1JJWk9OJworICAgICAgICBpZGVudGl0eToKKyAgICAgICAgICBlbmdpbmU6ICdrZXlzdG9uZScKKyAgICAgICAgICBob3N0OiAnMTI3LjAuMC4xJworICAgICAgICAgIHBvcnQ6IDUwMDAKKyAgICAgICAgICBhcGlfdmVyc2lvbjogMgorICAgICAgICBtYWlsOgorICAgICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnCisgICAgICAgIHJlZ2lvbnM6CisgICAgICAgIC0gbmFtZTogY2x1c3RlcjEKKyAgICAgICAgICBhZGRyZXNzOiBodHRwOi8vY2x1c3RlcjEuZXhhbXBsZS5jb206NTAwMC92Mi4wCisgICAgICAgIC0gbmFtZTogY2x1c3RlcjIKKyAgICAgICAgICBhZGRyZXNzOiBodHRwOi8vY2x1c3RlcjIuZXhhbXBsZS5jb206NTAwMC92Mi4wCisKK0hvcml6b24gc2V0dXAgd2l0aCBzZW5zdSBwbHVnaW4KKworICAgIGhvcml6b246CisgICAgICBzZXJ2ZXI6CisgICAgICAgIGVuYWJsZWQ6IHRydWUKKyAgICAgICAgdmVyc2lvbjoganVubworICAgICAgICBzZW5zdV9hcGk6CisgICAgICAgICAgaG9zdDogbG9jYWxob3N0CisgICAgICAgICAgcG9ydDogNDU2NworICAgICAgICBwbHVnaW5zOgorICAgICAgICAtIG5hbWU6IG1vbml0b3JpbmcKKyAgICAgICAgICBhcHA6IGhvcml6b25fbW9uaXRvcmluZworICAgICAgICAgIHNvdXJjZToKKyAgICAgICAgICAgIHR5cGU6IGdpdAorICAgICAgICAgICAgYWRkcmVzczogZ2l0QHJlcG8xLnJvYm90aWNlLmN6OmRqYW5nby9ob3Jpem9uLW1vbml0b3JpbmcuZ2l0CisgICAgICAgICAgICByZXY6IGRldmVsb3AKKyAgICAgICAgLSBuYW1lOiBhcGktbWFzaworICAgICAgICAgIGFwcDogYXBpX21hc2sKKyAgICAgICAgICBtYXNrX3VybDogJ2N1c3RvbS11cmwuY3onCisgICAgICAgICAgbWFza19wcm90b2NvbDogJ2h0dHAnCisgICAgICAgICAgc291cmNlOgorICAgICAgICAgICAgdHlwZTogZ2l0CisgICAgICAgICAgICBhZGRyZXNzOiBnaXRAcmVwbzEucm9ib3RpY2UuY3o6ZGphbmdvL2hvcml6b24tYXBpLW1hc2suZ2l0CisgICAgICAgICAgICByZXY6IGRldmVsb3AKKworU2Vuc3UgbXVsdGkgQVBJCisKKyAgICBob3Jpem9uOgorICAgICAgc2VydmVyOgorICAgICAgICBlbmFibGVkOiB0cnVlCisgICAgICAgIHZlcnNpb246IGp1bm8KKyAgICAgICAgc2Vuc3VfYXBpOgorICAgICAgICAgIGRjMToKKyAgICAgICAgICAgIGhvc3Q6IGxvY2FsaG9zdAorICAgICAgICAgICAgcG9ydDogNDU2NworICAgICAgICAgIGRjMjoKKyAgICAgICAgICAgIGhvc3Q6IGFub3RoZXJob3N0CisgICAgICAgICAgICBwb3J0OiA0NTY3CisKK0hvcml6b24gc2V0dXAgd2l0aCBiaWxsb21ldGVyIHBsdWdpbgorCisgICAgaG9yaXpvbjoKKyAgICAgIHNlcnZlcjoKKyAgICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgICB2ZXJzaW9uOiBqdW5vCisgICAgICAgIGJpbGxvbWV0ZXJfYXBpOgorICAgICAgICAgIGhvc3Q6IGxvY2FsaG9zdAorICAgICAgICAgIHBvcnQ6IDk3NTMKKyAgICAgICAgICBhcGlfdmVyc2lvbjogMQorICAgICAgICBwbHVnaW5zOgorICAgICAgICAtIG5hbWU6IGJpbGxpbmcKKyAgICAgICAgICBhcHA6IGhvcml6b25fYmlsbGluZworICAgICAgICAgIHNvdXJjZToKKyAgICAgICAgICAgIHR5cGU6IGdpdAorICAgICAgICAgICAgYWRkcmVzczogZ2l0QHJlcG8xLnJvYm90aWNlLmN6OmRqYW5nby9ob3Jpem9uLWJpbGxpbmcuZ2l0CisgICAgICAgICAgICByZXY6IGRldmVsb3AKKworSG9yaXpvbiBzZXR1cCB3aXRoIGNvbnRyYWlsIHBsdWdpbgorCisgICAgaG9yaXpvbjoKKyAgICAgIHNlcnZlcjoKKyAgICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgICB2ZXJzaW9uOiBpY2Vob3VzZQorICAgICAgICBwbHVnaW5zOgorICAgICAgICAtIG5hbWU6IGNvbnRyYWlsCisgICAgICAgICAgYXBwOiBjb250cmFpbF9vcGVuc3RhY2tfZGFzaGJvYXJkCisgICAgICAgICAgb3ZlcnJpZGU6IHRydWUKKyAgICAgICAgICBzb3VyY2U6CisgICAgICAgICAgICB0eXBlOiBnaXQKKyAgICAgICAgICAgIGFkZHJlc3M6IGdpdEByZXBvMS5yb2JvdGljZS5jejpkamFuZ28vaG9yaXpvbi1jb250cmFpbC5naXQKKyAgICAgICAgICAgIHJldjogZGV2ZWxvcAorCitIb3Jpem9uIHNldHVwIHdpdGggc2VudHJ5IGxvZyBoYW5kbGVyCisKKyAgICBob3Jpem9uOgorICAgICAgc2VydmVyOgorICAgICAgICBlbmFibGVkOiB0cnVlCisgICAgICAgIHZlcnNpb246IGp1bm8KKyAgICAgICAgLi4uCisgICAgICAgIGxvZ2dpbmc6CisgICAgICAgICAgZW5naW5lOiByYXZlbgorICAgICAgICAgIGRzbjogaHR0cDovL3B1Yjpwcml2YXRlQHNlbnRyeTEudGVzdC5jei8yCisKK011bHRpc2l0ZSB3aXRoIEdpdCBzb3VyY2UKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU2ltcGxlIEhvcml6b24gc2V0dXAgZnJvbSBnaXQgcmVwb3NpdG9yeQorCisgICAgaG9yaXpvbjoKKyAgICAgIHNlcnZlcjoKKyAgICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgICBhcHA6CisgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHNlY3JldF9rZXk6IE1FR0FTRUNSRVQKKyAgICAgICAgICAgIHNvdXJjZToKKyAgICAgICAgICAgICAgZW5naW5lOiBnaXQKKyAgICAgICAgICAgICAgYWRkcmVzczogaHR0cHM6Ly9naXRodWIuY29tL29wZW5zdGFjay9ob3Jpem9uLmdpdAorICAgICAgICAgICAgICByZXY6IHN0YWJsZS9oYXZhbmEKKyAgICAgICAgICAgIGNhY2hlOgorICAgICAgICAgICAgICBlbmdpbmU6ICdtZW1jYWNoZWQnCisgICAgICAgICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnCisgICAgICAgICAgICAgIHBvcnQ6IDExMjExCisgICAgICAgICAgICAgIHByZWZpeDogJ0NBQ0hFX0RFRkFVTFQnCisgICAgICAgICAgICBpZGVudGl0eToKKyAgICAgICAgICAgICAgZW5naW5lOiAna2V5c3RvbmUnCisgICAgICAgICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnCisgICAgICAgICAgICAgIHBvcnQ6IDUwMDAKKyAgICAgICAgICAgICAgYXBpX3ZlcnNpb246IDIKKyAgICAgICAgICAgIG1haWw6CisgICAgICAgICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnCisKK1RoZW1lZCBtdWx0aXNpdGUgc2V0dXAKKworICAgIGhvcml6b246CisgICAgICBzZXJ2ZXI6CisgICAgICAgIGVuYWJsZWQ6IHRydWUKKyAgICAgICAgYXBwOgorICAgICAgICAgIG9wZW5zdGFjazFjOgorICAgICAgICAgICAgc2VjcmV0X2tleTogTUVHQVNFQ1JFVDEKKyAgICAgICAgICAgIHNvdXJjZToKKyAgICAgICAgICAgICAgZW5naW5lOiBnaXQKKyAgICAgICAgICAgICAgYWRkcmVzczogaHR0cHM6Ly9naXRodWIuY29tL29wZW5zdGFjay9ob3Jpem9uLmdpdAorICAgICAgICAgICAgICByZXY6IHN0YWJsZS9oYXZhbmEKKyAgICAgICAgICAgIHBsdWdpbjoKKyAgICAgICAgICAgICAgY29udHJhaWw6CisgICAgICAgICAgICAgICAgYXBwOiBjb250cmFpbF9vcGVuc3RhY2tfZGFzaGJvYXJkCisgICAgICAgICAgICAgICAgb3ZlcnJpZGU6IHRydWUKKyAgICAgICAgICAgICAgICBzb3VyY2U6CisgICAgICAgICAgICAgICAgICB0eXBlOiBnaXQKKyAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IGdpdEByZXBvMS5yb2JvdGljZS5jejpkamFuZ28vaG9yaXpvbi1jb250cmFpbC5naXQKKyAgICAgICAgICAgICAgICAgIHJldjogZGV2ZWxvcAorICAgICAgICAgICAgICB0aGVtZToKKyAgICAgICAgICAgICAgICBhcHA6IHNpdGUxX3RoZW1lCisgICAgICAgICAgICAgICAgc291cmNlOgorICAgICAgICAgICAgICAgICAgdHlwZTogZ2l0CisgICAgICAgICAgICAgICAgICBhZGRyZXNzOiBnaXRAcmVwbzEuZG9tYWluLmNvbTpkamFuZ28vaG9yaXpvbi1zaXRlMS10aGVtZS5naXQKKyAgICAgICAgICAgIGNhY2hlOgorICAgICAgICAgICAgICBlbmdpbmU6ICdtZW1jYWNoZWQnCisgICAgICAgICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnCisgICAgICAgICAgICAgIHBvcnQ6IDExMjExCisgICAgICAgICAgICAgIHByZWZpeDogJ0NBQ0hFX1NJVEUxJworICAgICAgICAgICAgaWRlbnRpdHk6CisgICAgICAgICAgICAgIGVuZ2luZTogJ2tleXN0b25lJworICAgICAgICAgICAgICBob3N0OiAnMTI3LjAuMC4xJworICAgICAgICAgICAgICBwb3J0OiA1MDAwCisgICAgICAgICAgICAgIGFwaV92ZXJzaW9uOiAyCisgICAgICAgICAgICBtYWlsOgorICAgICAgICAgICAgICBob3N0OiAnMTI3LjAuMC4xJworICAgICAgICAgIG9wZW5zdGFjazI6CisgICAgICAgICAgICBzZWNyZXRfa2V5OiBNRUdBU0VDUkVUMgorICAgICAgICAgICAgc291cmNlOgorICAgICAgICAgICAgICBlbmdpbmU6IGdpdAorICAgICAgICAgICAgICBhZGRyZXNzOiBodHRwczovL3JlcG8xLmRvbWFpbi5jb20vb3BlbnN0YWNrL2hvcml6b24uZ2l0CisgICAgICAgICAgICAgIHJldjogc3RhYmxlL2ljZWhvdXNlCisgICAgICAgICAgICBwbHVnaW46CisgICAgICAgICAgICAgIGNvbnRyYWlsOgorICAgICAgICAgICAgICAgIGFwcDogY29udHJhaWxfb3BlbnN0YWNrX2Rhc2hib2FyZAorICAgICAgICAgICAgICAgIG92ZXJyaWRlOiB0cnVlCisgICAgICAgICAgICAgICAgc291cmNlOgorICAgICAgICAgICAgICAgICAgdHlwZTogZ2l0CisgICAgICAgICAgICAgICAgICBhZGRyZXNzOiBnaXRAcmVwbzEuZG9tYWluLmNvbTpkamFuZ28vaG9yaXpvbi1jb250cmFpbC5naXQKKyAgICAgICAgICAgICAgICAgIHJldjogZGV2ZWxvcAorICAgICAgICAgICAgICBtb25pdG9yaW5nOgorICAgICAgICAgICAgICAgIGFwcDogaG9yaXpvbl9tb25pdG9yaW5nCisgICAgICAgICAgICAgICAgc291cmNlOgorICAgICAgICAgICAgICAgICAgdHlwZTogZ2l0CisgICAgICAgICAgICAgICAgICBhZGRyZXNzOiBnaXRAZG9tYWluLmNvbTpkamFuZ28vaG9yaXpvbi1tb25pdG9yaW5nLmdpdAorICAgICAgICAgICAgICAgICAgcmV2OiBkZXZlbG9wCisgICAgICAgICAgICAgIHRoZW1lOgorICAgICAgICAgICAgICAgIGFwcDogYm9vdHN3YXRjaF90aGVtZQorICAgICAgICAgICAgICAgIHNvdXJjZToKKyAgICAgICAgICAgICAgICAgIHR5cGU6IGdpdAorICAgICAgICAgICAgICAgICAgYWRkcmVzczogZ2l0QHJlcG8xLnJvYm90aWNlLmN6OmRqYW5nby9ob3Jpem9uLWJvb3Rzd2F0Y2gtdGhlbWUuZ2l0CisgICAgICAgICAgICAgICAgICByZXY6IGRldmVsb3AKKyAgICAgICAgICAgIGNhY2hlOgorICAgICAgICAgICAgICBlbmdpbmU6ICdtZW1jYWNoZWQnCisgICAgICAgICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnCisgICAgICAgICAgICAgIHBvcnQ6IDExMjExCisgICAgICAgICAgICAgIHByZWZpeDogJ0NBQ0hFX1NJVEUyJworICAgICAgICAgICAgaWRlbnRpdHk6CisgICAgICAgICAgICAgIGVuZ2luZTogJ2tleXN0b25lJworICAgICAgICAgICAgICBob3N0OiAnMTI3LjAuMC4xJworICAgICAgICAgICAgICBwb3J0OiA1MDAwCisgICAgICAgICAgICAgIGFwaV92ZXJzaW9uOiAzCisgICAgICAgICAgICBtYWlsOgorICAgICAgICAgICAgICBob3N0OiAnMTI3LjAuMC4xJworCitBUEkgdmVyc2lvbnMgb3ZlcnJpZGUKKworICAgIGhvcml6b246CisgICAgICBzZXJ2ZXI6CisgICAgICAgIGVuYWJsZWQ6IHRydWUKKyAgICAgICAgYXBwOgorICAgICAgICAgIG9wZW5zdGFja19hcGlfb3ZlcnJyaWRlOgorICAgICAgICAgICAgc2VjcmV0X2tleTogTUVHQVNFQ1JFVDEKKyAgICAgICAgICAgIGFwaV92ZXJzaW9uczoKKyAgICAgICAgICAgICAgaWRlbnRpdHk6IDMKKyAgICAgICAgICAgICAgdm9sdW1lOiAyCisgICAgICAgICAgICBzb3VyY2U6CisgICAgICAgICAgICAgIGVuZ2luZTogZ2l0CisgICAgICAgICAgICAgIGFkZHJlc3M6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuc3RhY2svaG9yaXpvbi5naXQKKyAgICAgICAgICAgICAgcmV2OiBzdGFibGUvaGF2YW5hCisKK0NvbnRyb2wgZGFzaGJvYXJkIGJlaGF2aW91cgorCisgICAgaG9yaXpvbjoKKyAgICAgIHNlcnZlcjoKKyAgICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgICBhcHA6CisgICAgICAgICAgb3BlbnN0YWNrX2Rhc2hib2FyZF9vdmVycnJpZGU6CisgICAgICAgICAgICBzZWNyZXRfa2V5OiBNRUdBU0VDUkVUMQorICAgICAgICAgICAgZGFzaGJvYXJkczoKKyAgICAgICAgICAgICAgc2V0dGluZ3M6CisgICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgICAgICAgICBwcm9qZWN0OgorICAgICAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlCisgICAgICAgICAgICAgICAgb3JkZXI6IDEwCisgICAgICAgICAgICAgIGFkbWluOgorICAgICAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlCisgICAgICAgICAgICAgICAgb3JkZXI6IDIwCisgICAgICAgICAgICBzb3VyY2U6CisgICAgICAgICAgICAgIGVuZ2luZTogZ2l0CisgICAgICAgICAgICAgIGFkZHJlc3M6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuc3RhY2svaG9yaXpvbi5naXQKKyAgICAgICAgICAgICAgcmV2OiBzdGFibGUvanVubworCitSZWFkIG1vcmUKKz09PT09PT09PQorCisqIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuc3RhY2svaG9yaXpvbgorKiBodHRwOi8vZGlqa3Mud29yZHByZXNzLmNvbS8yMDEyLzA3LzA2L2hvdy10by1jaGFuZ2Utc2NyZWVuLXJlc29sdXRpb24tb2Ytbm92bmMtY2xpZW50LWluLW9wZW5zdGFjay1lc3NleC1kYXNoYm9hcmQtbm92YS1ob3Jpem9uLworCisKK1RoaW5ncyB0byBpbXByb3ZlCis9PT09PT09PT09PT09PT09PQorCisqIEFMTE9XRURfSE9TVFMgLSBkbyBub3QgdXNlICogLSBpbnRyb2R1Y2UgcGFyYW1ldGVycworKiBDQUNIRVMgLSBjb25maWd1cmUgY2FjaGluZyBlbmdpbmUgLSBpcyBpdCBub3QgYWxsb3dlZCBieSBkZWZhdWx0PworKiBTRVNTSU9OX0VOR0lORSAtIGNoYW5nZSBpdCBmcm9tIHNpZ25lZCBjb29raWUgdG8gc29tZXRoaW5nIGVsc2UKKyogcG9saWN5IGZpbGVzIC0gbG9vayBpbnRvIHRoZXNlIGZpbGVzIGFuZCB0aGluayBvZiBmdXJ0aGVyIGNvbmZpZ3VyYXRpb24vcGFyYW1ldHJpc2F0aW9uCmRpZmYgLS1naXQgYS9WRVJTSU9OIGIvVkVSU0lPTgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjA0Y2ZiCi0tLSAvZGV2L251bGwKKysrIGIvVkVSU0lPTgpAQCAtMCwwICsxIEBACiswLjIKZGlmZiAtLWdpdCBhL2RlYmlhbi9jaGFuZ2Vsb2cgYi9kZWJpYW4vY2hhbmdlbG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkNjg0NTAKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vY2hhbmdlbG9nCkBAIC0wLDAgKzEsMTEgQEAKK3NhbHQtZm9ybXVsYS1ob3Jpem9uICgwLjIpIHRydXN0eTsgdXJnZW5jeT1tZWRpdW0KKworICAqIEZpcnN0IHB1YmxpYyByZWxlYXNlCisKKyAtLSBGaWxpcCBQeXRsb3VuIDxmaWxpcC5weXRsb3VuQHRjcGNsb3VkLmV1PiAgVHVlLCAwNiBPY3QgMjAxNSAxNjozODo0MiArMDIwMAorCitzYWx0LWZvcm11bGEtaG9yaXpvbiAoMC4xKSB0cnVzdHk7IHVyZ2VuY3k9bWVkaXVtCisKKyAgKiBJbml0aWFsIHJlbGVhc2UKKworIC0tIEFsZXMgS29tYXJlayA8YWxlcy5rb21hcmVrQHRjcGNsb3VkLmV1PiAgVGh1LCAxMyBBdWcgMjAxNSAyMzoyMzo0MSArMDIwMApkaWZmIC0tZ2l0IGEvZGViaWFuL2NvbXBhdCBiL2RlYmlhbi9jb21wYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM2MzUxNAotLS0gL2Rldi9udWxsCisrKyBiL2RlYmlhbi9jb21wYXQKQEAgLTAsMCArMSBAQAorOQpkaWZmIC0tZ2l0IGEvZGViaWFuL2NvbnRyb2wgYi9kZWJpYW4vY29udHJvbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzZjM2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL2NvbnRyb2wKQEAgLTAsMCArMSwxNSBAQAorU291cmNlOiBzYWx0LWZvcm11bGEtaG9yaXpvbgorTWFpbnRhaW5lcjogQWxlcyBLb21hcmVrIDxhbGVzLmtvbWFyZWtAdGNwY2xvdWQuZXU+CitTZWN0aW9uOiBhZG1pbgorUHJpb3JpdHk6IG9wdGlvbmFsCitCdWlsZC1EZXBlbmRzOiBkZWJoZWxwZXIgKD49IDkpCitTdGFuZGFyZHMtVmVyc2lvbjogMy45LjYKK0hvbWVwYWdlOiBodHRwOi8vd3d3LnRjcGNsb3VkLmV1CitWY3MtQnJvd3NlcjogaHR0cHM6Ly9naXRodWIuY29tL3RjcGNsb3VkL3NhbHQtZm9ybXVsYS1ob3Jpem9uCitWY3MtR2l0OiBodHRwczovL2dpdGh1Yi5jb20vdGNwY2xvdWQvc2FsdC1mb3JtdWxhLWhvcml6b24uZ2l0CisKK1BhY2thZ2U6IHNhbHQtZm9ybXVsYS1ob3Jpem9uCitBcmNoaXRlY3R1cmU6IGFsbAorRGVwZW5kczogJHttaXNjOkRlcGVuZHN9LCBzYWx0LW1hc3RlciwgcmVjbGFzcworRGVzY3JpcHRpb246IEhvcml6b24gc2FsdCBmb3JtdWxhCisgSW5zdGFsbCBhbmQgY29uZmlndXJlIEhvcml6b24gd2ViIHNlcnZpY2UuCmRpZmYgLS1naXQgYS9kZWJpYW4vY29weXJpZ2h0IGIvZGViaWFuL2NvcHlyaWdodApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDcwZjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL2NvcHlyaWdodApAQCAtMCwwICsxLDE1IEBACitGb3JtYXQ6IGh0dHA6Ly93d3cuZGViaWFuLm9yZy9kb2MvcGFja2FnaW5nLW1hbnVhbHMvY29weXJpZ2h0LWZvcm1hdC8xLjAvCitVcHN0cmVhbS1OYW1lOiBzYWx0LWZvcm11bGEtaG9yaXpvbgorVXBzdHJlYW0tQ29udGFjdDogQWxlcyBLb21hcmVrIDxhbGVzLmtvbWFyZWtAdGNwY2xvdWQuZXU+CitTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS90Y3BjbG91ZC9zYWx0LWZvcm11bGEtaG9yaXpvbgorCitGaWxlczogKgorQ29weXJpZ2h0OiAyMDE0LTIwMTUgdGNwIGNsb3VkIGEucy4KK0xpY2Vuc2U6IEFwYWNoZS0yLjAKKyAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgdGNwIGNsb3VkIGEucy4KKyAgLgorICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAuCisgIE9uIGEgRGViaWFuIHN5c3RlbSB5b3UgY2FuIGZpbmQgYSBjb3B5IG9mIHRoaXMgbGljZW5zZSBpbgorICAvdXNyL3NoYXJlL2NvbW1vbi1saWNlbnNlcy9BcGFjaGUtMi4wLgpkaWZmIC0tZ2l0IGEvZGViaWFuL2RvY3MgYi9kZWJpYW4vZG9jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTg1ODI5Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL2RvY3MKQEAgLTAsMCArMSwzIEBACitSRUFETUUucnN0CitDSEFOR0VMT0cucnN0CitWRVJTSU9OCmRpZmYgLS1naXQgYS9kZWJpYW4vaW5zdGFsbCBiL2RlYmlhbi9pbnN0YWxsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzY2Q4Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vaW5zdGFsbApAQCAtMCwwICsxLDIgQEAKK2hvcml6b24vKiAgICAgICAgICAgICAvdXNyL3NoYXJlL3NhbHQtZm9ybXVsYXMvZW52L2hvcml6b24vCittZXRhZGF0YS9zZXJ2aWNlLyogICAgICAvdXNyL3NoYXJlL3NhbHQtZm9ybXVsYXMvcmVjbGFzcy9zZXJ2aWNlL2hvcml6b24vCmRpZmYgLS1naXQgYS9kZWJpYW4vbGludGlhbi1vdmVycmlkZXMgYi9kZWJpYW4vbGludGlhbi1vdmVycmlkZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YxYTU1OAotLS0gL2Rldi9udWxsCisrKyBiL2RlYmlhbi9saW50aWFuLW92ZXJyaWRlcwpAQCAtMCwwICsxIEBACitzYWx0LWZvcm11bGEtaG9yaXpvbiBiaW5hcnk6IHNoZWxsLXNjcmlwdC1mYWlscy1zeW50YXgtY2hlY2sgdXNyL3NoYXJlL3NhbHQtZm9ybXVsYXMvZW52L2hvcml6b24vZmlsZXMvZ3VuaWNvcm5fc3RhcnQKZGlmZiAtLWdpdCBhL2RlYmlhbi9ydWxlcyBiL2RlYmlhbi9ydWxlcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYmRlNmVmCi0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3J1bGVzCkBAIC0wLDAgKzEsNSBAQAorIyEvdXNyL2Jpbi9tYWtlIC1mCisKKyU6CisJZGggJEAKKwpkaWZmIC0tZ2l0IGEvZGViaWFuL3NvdXJjZS9mb3JtYXQgYi9kZWJpYW4vc291cmNlL2Zvcm1hdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWFlOWRiCi0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3NvdXJjZS9mb3JtYXQKQEAgLTAsMCArMSBAQAorMy4wIChuYXRpdmUpCmRpZmYgLS1naXQgYS9ob3Jpem9uL2NvbmYvaHR0cGQuY29uZi5SZWRIYXQgYi9ob3Jpem9uL2NvbmYvaHR0cGQuY29uZi5SZWRIYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTkwYTEyNQotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vY29uZi9odHRwZC5jb25mLlJlZEhhdApAQCAtMCwwICsxLDEwMDkgQEAKKyMKKyMgVGhpcyBpcyB0aGUgbWFpbiBBcGFjaGUgc2VydmVyIGNvbmZpZ3VyYXRpb24gZmlsZS4gIEl0IGNvbnRhaW5zIHRoZQorIyBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgdGhhdCBnaXZlIHRoZSBzZXJ2ZXIgaXRzIGluc3RydWN0aW9ucy4KKyMgU2VlIDxVUkw6aHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjIvPiBmb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24uCisjIEluIHBhcnRpY3VsYXIsIHNlZQorIyA8VVJMOmh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvMi4yL21vZC9kaXJlY3RpdmVzLmh0bWw+CisjIGZvciBhIGRpc2N1c3Npb24gb2YgZWFjaCBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZS4KKyMKKyMKKyMgRG8gTk9UIHNpbXBseSByZWFkIHRoZSBpbnN0cnVjdGlvbnMgaW4gaGVyZSB3aXRob3V0IHVuZGVyc3RhbmRpbmcKKyMgd2hhdCB0aGV5IGRvLiAgVGhleSdyZSBoZXJlIG9ubHkgYXMgaGludHMgb3IgcmVtaW5kZXJzLiAgSWYgeW91IGFyZSB1bnN1cmUKKyMgY29uc3VsdCB0aGUgb25saW5lIGRvY3MuIFlvdSBoYXZlIGJlZW4gd2FybmVkLiAgCisjCisjIFRoZSBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgYXJlIGdyb3VwZWQgaW50byB0aHJlZSBiYXNpYyBzZWN0aW9uczoKKyMgIDEuIERpcmVjdGl2ZXMgdGhhdCBjb250cm9sIHRoZSBvcGVyYXRpb24gb2YgdGhlIEFwYWNoZSBzZXJ2ZXIgcHJvY2VzcyBhcyBhCisjICAgICB3aG9sZSAodGhlICdnbG9iYWwgZW52aXJvbm1lbnQnKS4KKyMgIDIuIERpcmVjdGl2ZXMgdGhhdCBkZWZpbmUgdGhlIHBhcmFtZXRlcnMgb2YgdGhlICdtYWluJyBvciAnZGVmYXVsdCcgc2VydmVyLAorIyAgICAgd2hpY2ggcmVzcG9uZHMgdG8gcmVxdWVzdHMgdGhhdCBhcmVuJ3QgaGFuZGxlZCBieSBhIHZpcnR1YWwgaG9zdC4KKyMgICAgIFRoZXNlIGRpcmVjdGl2ZXMgYWxzbyBwcm92aWRlIGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgc2V0dGluZ3MKKyMgICAgIG9mIGFsbCB2aXJ0dWFsIGhvc3RzLgorIyAgMy4gU2V0dGluZ3MgZm9yIHZpcnR1YWwgaG9zdHMsIHdoaWNoIGFsbG93IFdlYiByZXF1ZXN0cyB0byBiZSBzZW50IHRvCisjICAgICBkaWZmZXJlbnQgSVAgYWRkcmVzc2VzIG9yIGhvc3RuYW1lcyBhbmQgaGF2ZSB0aGVtIGhhbmRsZWQgYnkgdGhlCisjICAgICBzYW1lIEFwYWNoZSBzZXJ2ZXIgcHJvY2Vzcy4KKyMKKyMgQ29uZmlndXJhdGlvbiBhbmQgbG9nZmlsZSBuYW1lczogSWYgdGhlIGZpbGVuYW1lcyB5b3Ugc3BlY2lmeSBmb3IgbWFueQorIyBvZiB0aGUgc2VydmVyJ3MgY29udHJvbCBmaWxlcyBiZWdpbiB3aXRoICIvIiAob3IgImRyaXZlOi8iIGZvciBXaW4zMiksIHRoZQorIyBzZXJ2ZXIgd2lsbCB1c2UgdGhhdCBleHBsaWNpdCBwYXRoLiAgSWYgdGhlIGZpbGVuYW1lcyBkbyAqbm90KiBiZWdpbgorIyB3aXRoICIvIiwgdGhlIHZhbHVlIG9mIFNlcnZlclJvb3QgaXMgcHJlcGVuZGVkIC0tIHNvICJsb2dzL2Zvby5sb2ciCisjIHdpdGggU2VydmVyUm9vdCBzZXQgdG8gIi9ldGMvaHR0cGQiIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYnkgdGhlCisjIHNlcnZlciBhcyAiL2V0Yy9odHRwZC9sb2dzL2Zvby5sb2ciLgorIworCisjIyMgU2VjdGlvbiAxOiBHbG9iYWwgRW52aXJvbm1lbnQKKyMKKyMgVGhlIGRpcmVjdGl2ZXMgaW4gdGhpcyBzZWN0aW9uIGFmZmVjdCB0aGUgb3ZlcmFsbCBvcGVyYXRpb24gb2YgQXBhY2hlLAorIyBzdWNoIGFzIHRoZSBudW1iZXIgb2YgY29uY3VycmVudCByZXF1ZXN0cyBpdCBjYW4gaGFuZGxlIG9yIHdoZXJlIGl0CisjIGNhbiBmaW5kIGl0cyBjb25maWd1cmF0aW9uIGZpbGVzLgorIworCisjCisjIERvbid0IGdpdmUgYXdheSB0b28gbXVjaCBpbmZvcm1hdGlvbiBhYm91dCBhbGwgdGhlIHN1YmNvbXBvbmVudHMKKyMgd2UgYXJlIHJ1bm5pbmcuICBDb21tZW50IG91dCB0aGlzIGxpbmUgaWYgeW91IGRvbid0IG1pbmQgcmVtb3RlIHNpdGVzCisjIGZpbmRpbmcgb3V0IHdoYXQgbWFqb3Igb3B0aW9uYWwgbW9kdWxlcyB5b3UgYXJlIHJ1bm5pbmcKK1NlcnZlclRva2VucyBPUworCisjCisjIFNlcnZlclJvb3Q6IFRoZSB0b3Agb2YgdGhlIGRpcmVjdG9yeSB0cmVlIHVuZGVyIHdoaWNoIHRoZSBzZXJ2ZXIncworIyBjb25maWd1cmF0aW9uLCBlcnJvciwgYW5kIGxvZyBmaWxlcyBhcmUga2VwdC4KKyMKKyMgTk9URSEgIElmIHlvdSBpbnRlbmQgdG8gcGxhY2UgdGhpcyBvbiBhbiBORlMgKG9yIG90aGVyd2lzZSBuZXR3b3JrKQorIyBtb3VudGVkIGZpbGVzeXN0ZW0gdGhlbiBwbGVhc2UgcmVhZCB0aGUgTG9ja0ZpbGUgZG9jdW1lbnRhdGlvbgorIyAoYXZhaWxhYmxlIGF0IDxVUkw6aHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjIvbW9kL21wbV9jb21tb24uaHRtbCNsb2NrZmlsZT4pOworIyB5b3Ugd2lsbCBzYXZlIHlvdXJzZWxmIGEgbG90IG9mIHRyb3VibGUuCisjCisjIERvIE5PVCBhZGQgYSBzbGFzaCBhdCB0aGUgZW5kIG9mIHRoZSBkaXJlY3RvcnkgcGF0aC4KKyMKK1NlcnZlclJvb3QgIi9ldGMvaHR0cGQiCisKKyMKKyMgUGlkRmlsZTogVGhlIGZpbGUgaW4gd2hpY2ggdGhlIHNlcnZlciBzaG91bGQgcmVjb3JkIGl0cyBwcm9jZXNzCisjIGlkZW50aWZpY2F0aW9uIG51bWJlciB3aGVuIGl0IHN0YXJ0cy4gIE5vdGUgdGhlIFBJREZJTEUgdmFyaWFibGUgaW4KKyMgL2V0Yy9zeXNjb25maWcvaHR0cGQgbXVzdCBiZSBzZXQgYXBwcm9wcmlhdGVseSBpZiB0aGlzIGxvY2F0aW9uIGlzCisjIGNoYW5nZWQuCisjCitQaWRGaWxlIHJ1bi9odHRwZC5waWQKKworIworIyBUaW1lb3V0OiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIHJlY2VpdmVzIGFuZCBzZW5kcyB0aW1lIG91dC4KKyMKK1RpbWVvdXQgNjAKKworIworIyBLZWVwQWxpdmU6IFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IHBlcnNpc3RlbnQgY29ubmVjdGlvbnMgKG1vcmUgdGhhbgorIyBvbmUgcmVxdWVzdCBwZXIgY29ubmVjdGlvbikuIFNldCB0byAiT2ZmIiB0byBkZWFjdGl2YXRlLgorIworS2VlcEFsaXZlIE9mZgorCisjCisjIE1heEtlZXBBbGl2ZVJlcXVlc3RzOiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVxdWVzdHMgdG8gYWxsb3cKKyMgZHVyaW5nIGEgcGVyc2lzdGVudCBjb25uZWN0aW9uLiBTZXQgdG8gMCB0byBhbGxvdyBhbiB1bmxpbWl0ZWQgYW1vdW50LgorIyBXZSByZWNvbW1lbmQgeW91IGxlYXZlIHRoaXMgbnVtYmVyIGhpZ2gsIGZvciBtYXhpbXVtIHBlcmZvcm1hbmNlLgorIworTWF4S2VlcEFsaXZlUmVxdWVzdHMgMTAwCisKKyMKKyMgS2VlcEFsaXZlVGltZW91dDogTnVtYmVyIG9mIHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIG5leHQgcmVxdWVzdCBmcm9tIHRoZQorIyBzYW1lIGNsaWVudCBvbiB0aGUgc2FtZSBjb25uZWN0aW9uLgorIworS2VlcEFsaXZlVGltZW91dCAxNQorCisjIworIyMgU2VydmVyLVBvb2wgU2l6ZSBSZWd1bGF0aW9uIChNUE0gc3BlY2lmaWMpCisjIyAKKworIyBwcmVmb3JrIE1QTQorIyBTdGFydFNlcnZlcnM6IG51bWJlciBvZiBzZXJ2ZXIgcHJvY2Vzc2VzIHRvIHN0YXJ0CisjIE1pblNwYXJlU2VydmVyczogbWluaW11bSBudW1iZXIgb2Ygc2VydmVyIHByb2Nlc3NlcyB3aGljaCBhcmUga2VwdCBzcGFyZQorIyBNYXhTcGFyZVNlcnZlcnM6IG1heGltdW0gbnVtYmVyIG9mIHNlcnZlciBwcm9jZXNzZXMgd2hpY2ggYXJlIGtlcHQgc3BhcmUKKyMgU2VydmVyTGltaXQ6IG1heGltdW0gdmFsdWUgZm9yIE1heENsaWVudHMgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgc2VydmVyCisjIE1heENsaWVudHM6IG1heGltdW0gbnVtYmVyIG9mIHNlcnZlciBwcm9jZXNzZXMgYWxsb3dlZCB0byBzdGFydAorIyBNYXhSZXF1ZXN0c1BlckNoaWxkOiBtYXhpbXVtIG51bWJlciBvZiByZXF1ZXN0cyBhIHNlcnZlciBwcm9jZXNzIHNlcnZlcworPElmTW9kdWxlIHByZWZvcmsuYz4KK1N0YXJ0U2VydmVycyAgICAgICA4CitNaW5TcGFyZVNlcnZlcnMgICAgNQorTWF4U3BhcmVTZXJ2ZXJzICAgMjAKK1NlcnZlckxpbWl0ICAgICAgMjU2CitNYXhDbGllbnRzICAgICAgIDI1NgorTWF4UmVxdWVzdHNQZXJDaGlsZCAgNDAwMAorPC9JZk1vZHVsZT4KKworIyB3b3JrZXIgTVBNCisjIFN0YXJ0U2VydmVyczogaW5pdGlhbCBudW1iZXIgb2Ygc2VydmVyIHByb2Nlc3NlcyB0byBzdGFydAorIyBNYXhDbGllbnRzOiBtYXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVvdXMgY2xpZW50IGNvbm5lY3Rpb25zCisjIE1pblNwYXJlVGhyZWFkczogbWluaW11bSBudW1iZXIgb2Ygd29ya2VyIHRocmVhZHMgd2hpY2ggYXJlIGtlcHQgc3BhcmUKKyMgTWF4U3BhcmVUaHJlYWRzOiBtYXhpbXVtIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcyB3aGljaCBhcmUga2VwdCBzcGFyZQorIyBUaHJlYWRzUGVyQ2hpbGQ6IGNvbnN0YW50IG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcyBpbiBlYWNoIHNlcnZlciBwcm9jZXNzCisjIE1heFJlcXVlc3RzUGVyQ2hpbGQ6IG1heGltdW0gbnVtYmVyIG9mIHJlcXVlc3RzIGEgc2VydmVyIHByb2Nlc3Mgc2VydmVzCis8SWZNb2R1bGUgd29ya2VyLmM+CitTdGFydFNlcnZlcnMgICAgICAgICA0CitNYXhDbGllbnRzICAgICAgICAgMzAwCitNaW5TcGFyZVRocmVhZHMgICAgIDI1CitNYXhTcGFyZVRocmVhZHMgICAgIDc1IAorVGhyZWFkc1BlckNoaWxkICAgICAyNQorTWF4UmVxdWVzdHNQZXJDaGlsZCAgMAorPC9JZk1vZHVsZT4KKworIworIyBMaXN0ZW46IEFsbG93cyB5b3UgdG8gYmluZCBBcGFjaGUgdG8gc3BlY2lmaWMgSVAgYWRkcmVzc2VzIGFuZC9vcgorIyBwb3J0cywgaW4gYWRkaXRpb24gdG8gdGhlIGRlZmF1bHQuIFNlZSBhbHNvIHRoZSA8VmlydHVhbEhvc3Q+CisjIGRpcmVjdGl2ZS4KKyMKKyMgQ2hhbmdlIHRoaXMgdG8gTGlzdGVuIG9uIHNwZWNpZmljIElQIGFkZHJlc3NlcyBhcyBzaG93biBiZWxvdyB0byAKKyMgcHJldmVudCBBcGFjaGUgZnJvbSBnbG9tbWluZyBvbnRvIGFsbCBib3VuZCBJUCBhZGRyZXNzZXMgKDAuMC4wLjApCisjCisjTGlzdGVuIDEyLjM0LjU2Ljc4OjgwCitMaXN0ZW4ge3sgcGlsbGFyLmhvcml6b24uc2VydmVyLmJpbmQuYWRkcmVzcyB9fTp7eyBwaWxsYXIuaG9yaXpvbi5zZXJ2ZXIuYmluZC5wb3J0IH19CisKKyMKKyMgRHluYW1pYyBTaGFyZWQgT2JqZWN0IChEU08pIFN1cHBvcnQKKyMKKyMgVG8gYmUgYWJsZSB0byB1c2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYSBtb2R1bGUgd2hpY2ggd2FzIGJ1aWx0IGFzIGEgRFNPIHlvdQorIyBoYXZlIHRvIHBsYWNlIGNvcnJlc3BvbmRpbmcgYExvYWRNb2R1bGUnIGxpbmVzIGF0IHRoaXMgbG9jYXRpb24gc28gdGhlCisjIGRpcmVjdGl2ZXMgY29udGFpbmVkIGluIGl0IGFyZSBhY3R1YWxseSBhdmFpbGFibGUgX2JlZm9yZV8gdGhleSBhcmUgdXNlZC4KKyMgU3RhdGljYWxseSBjb21waWxlZCBtb2R1bGVzICh0aG9zZSBsaXN0ZWQgYnkgYGh0dHBkIC1sJykgZG8gbm90IG5lZWQKKyMgdG8gYmUgbG9hZGVkIGhlcmUuCisjCisjIEV4YW1wbGU6CisjIExvYWRNb2R1bGUgZm9vX21vZHVsZSBtb2R1bGVzL21vZF9mb28uc28KKyMKK0xvYWRNb2R1bGUgYXV0aF9iYXNpY19tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aF9iYXNpYy5zbworTG9hZE1vZHVsZSBhdXRoX2RpZ2VzdF9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aF9kaWdlc3Quc28KK0xvYWRNb2R1bGUgYXV0aG5fZmlsZV9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fZmlsZS5zbworTG9hZE1vZHVsZSBhdXRobl9hbGlhc19tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fYWxpYXMuc28KK0xvYWRNb2R1bGUgYXV0aG5fYW5vbl9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fYW5vbi5zbworTG9hZE1vZHVsZSBhdXRobl9kYm1fbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGhuX2RibS5zbworTG9hZE1vZHVsZSBhdXRobl9kZWZhdWx0X21vZHVsZSBtb2R1bGVzL21vZF9hdXRobl9kZWZhdWx0LnNvCitMb2FkTW9kdWxlIGF1dGh6X2hvc3RfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGh6X2hvc3Quc28KK0xvYWRNb2R1bGUgYXV0aHpfdXNlcl9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aHpfdXNlci5zbworTG9hZE1vZHVsZSBhdXRoel9vd25lcl9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aHpfb3duZXIuc28KK0xvYWRNb2R1bGUgYXV0aHpfZ3JvdXBmaWxlX21vZHVsZSBtb2R1bGVzL21vZF9hdXRoel9ncm91cGZpbGUuc28KK0xvYWRNb2R1bGUgYXV0aHpfZGJtX21vZHVsZSBtb2R1bGVzL21vZF9hdXRoel9kYm0uc28KK0xvYWRNb2R1bGUgYXV0aHpfZGVmYXVsdF9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aHpfZGVmYXVsdC5zbworTG9hZE1vZHVsZSBsZGFwX21vZHVsZSBtb2R1bGVzL21vZF9sZGFwLnNvCitMb2FkTW9kdWxlIGF1dGhuel9sZGFwX21vZHVsZSBtb2R1bGVzL21vZF9hdXRobnpfbGRhcC5zbworTG9hZE1vZHVsZSBpbmNsdWRlX21vZHVsZSBtb2R1bGVzL21vZF9pbmNsdWRlLnNvCitMb2FkTW9kdWxlIGxvZ19jb25maWdfbW9kdWxlIG1vZHVsZXMvbW9kX2xvZ19jb25maWcuc28KK0xvYWRNb2R1bGUgbG9naW9fbW9kdWxlIG1vZHVsZXMvbW9kX2xvZ2lvLnNvCitMb2FkTW9kdWxlIGVudl9tb2R1bGUgbW9kdWxlcy9tb2RfZW52LnNvCitMb2FkTW9kdWxlIGV4dF9maWx0ZXJfbW9kdWxlIG1vZHVsZXMvbW9kX2V4dF9maWx0ZXIuc28KK0xvYWRNb2R1bGUgbWltZV9tYWdpY19tb2R1bGUgbW9kdWxlcy9tb2RfbWltZV9tYWdpYy5zbworTG9hZE1vZHVsZSBleHBpcmVzX21vZHVsZSBtb2R1bGVzL21vZF9leHBpcmVzLnNvCitMb2FkTW9kdWxlIGRlZmxhdGVfbW9kdWxlIG1vZHVsZXMvbW9kX2RlZmxhdGUuc28KK0xvYWRNb2R1bGUgaGVhZGVyc19tb2R1bGUgbW9kdWxlcy9tb2RfaGVhZGVycy5zbworTG9hZE1vZHVsZSB1c2VydHJhY2tfbW9kdWxlIG1vZHVsZXMvbW9kX3VzZXJ0cmFjay5zbworTG9hZE1vZHVsZSBzZXRlbnZpZl9tb2R1bGUgbW9kdWxlcy9tb2Rfc2V0ZW52aWYuc28KK0xvYWRNb2R1bGUgbWltZV9tb2R1bGUgbW9kdWxlcy9tb2RfbWltZS5zbworTG9hZE1vZHVsZSBkYXZfbW9kdWxlIG1vZHVsZXMvbW9kX2Rhdi5zbworTG9hZE1vZHVsZSBzdGF0dXNfbW9kdWxlIG1vZHVsZXMvbW9kX3N0YXR1cy5zbworTG9hZE1vZHVsZSBhdXRvaW5kZXhfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dG9pbmRleC5zbworTG9hZE1vZHVsZSBpbmZvX21vZHVsZSBtb2R1bGVzL21vZF9pbmZvLnNvCitMb2FkTW9kdWxlIGRhdl9mc19tb2R1bGUgbW9kdWxlcy9tb2RfZGF2X2ZzLnNvCitMb2FkTW9kdWxlIHZob3N0X2FsaWFzX21vZHVsZSBtb2R1bGVzL21vZF92aG9zdF9hbGlhcy5zbworTG9hZE1vZHVsZSBuZWdvdGlhdGlvbl9tb2R1bGUgbW9kdWxlcy9tb2RfbmVnb3RpYXRpb24uc28KK0xvYWRNb2R1bGUgZGlyX21vZHVsZSBtb2R1bGVzL21vZF9kaXIuc28KK0xvYWRNb2R1bGUgYWN0aW9uc19tb2R1bGUgbW9kdWxlcy9tb2RfYWN0aW9ucy5zbworTG9hZE1vZHVsZSBzcGVsaW5nX21vZHVsZSBtb2R1bGVzL21vZF9zcGVsaW5nLnNvCitMb2FkTW9kdWxlIHVzZXJkaXJfbW9kdWxlIG1vZHVsZXMvbW9kX3VzZXJkaXIuc28KK0xvYWRNb2R1bGUgYWxpYXNfbW9kdWxlIG1vZHVsZXMvbW9kX2FsaWFzLnNvCitMb2FkTW9kdWxlIHN1YnN0aXR1dGVfbW9kdWxlIG1vZHVsZXMvbW9kX3N1YnN0aXR1dGUuc28KK0xvYWRNb2R1bGUgcmV3cml0ZV9tb2R1bGUgbW9kdWxlcy9tb2RfcmV3cml0ZS5zbworTG9hZE1vZHVsZSBwcm94eV9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHkuc28KK0xvYWRNb2R1bGUgcHJveHlfYmFsYW5jZXJfbW9kdWxlIG1vZHVsZXMvbW9kX3Byb3h5X2JhbGFuY2VyLnNvCitMb2FkTW9kdWxlIHByb3h5X2Z0cF9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfZnRwLnNvCitMb2FkTW9kdWxlIHByb3h5X2h0dHBfbW9kdWxlIG1vZHVsZXMvbW9kX3Byb3h5X2h0dHAuc28KK0xvYWRNb2R1bGUgcHJveHlfYWpwX21vZHVsZSBtb2R1bGVzL21vZF9wcm94eV9hanAuc28KK0xvYWRNb2R1bGUgcHJveHlfY29ubmVjdF9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfY29ubmVjdC5zbworTG9hZE1vZHVsZSBjYWNoZV9tb2R1bGUgbW9kdWxlcy9tb2RfY2FjaGUuc28KK0xvYWRNb2R1bGUgc3VleGVjX21vZHVsZSBtb2R1bGVzL21vZF9zdWV4ZWMuc28KK0xvYWRNb2R1bGUgZGlza19jYWNoZV9tb2R1bGUgbW9kdWxlcy9tb2RfZGlza19jYWNoZS5zbworTG9hZE1vZHVsZSBjZ2lfbW9kdWxlIG1vZHVsZXMvbW9kX2NnaS5zbworTG9hZE1vZHVsZSB2ZXJzaW9uX21vZHVsZSBtb2R1bGVzL21vZF92ZXJzaW9uLnNvCisKKyMKKyMgVGhlIGZvbGxvd2luZyBtb2R1bGVzIGFyZSBub3QgbG9hZGVkIGJ5IGRlZmF1bHQ6CisjCisjTG9hZE1vZHVsZSBhc2lzX21vZHVsZSBtb2R1bGVzL21vZF9hc2lzLnNvCisjTG9hZE1vZHVsZSBhdXRobl9kYmRfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGhuX2RiZC5zbworI0xvYWRNb2R1bGUgY2Vybl9tZXRhX21vZHVsZSBtb2R1bGVzL21vZF9jZXJuX21ldGEuc28KKyNMb2FkTW9kdWxlIGNnaWRfbW9kdWxlIG1vZHVsZXMvbW9kX2NnaWQuc28KKyNMb2FkTW9kdWxlIGRiZF9tb2R1bGUgbW9kdWxlcy9tb2RfZGJkLnNvCisjTG9hZE1vZHVsZSBkdW1waW9fbW9kdWxlIG1vZHVsZXMvbW9kX2R1bXBpby5zbworI0xvYWRNb2R1bGUgZmlsdGVyX21vZHVsZSBtb2R1bGVzL21vZF9maWx0ZXIuc28KKyNMb2FkTW9kdWxlIGlkZW50X21vZHVsZSBtb2R1bGVzL21vZF9pZGVudC5zbworI0xvYWRNb2R1bGUgbG9nX2ZvcmVuc2ljX21vZHVsZSBtb2R1bGVzL21vZF9sb2dfZm9yZW5zaWMuc28KKyNMb2FkTW9kdWxlIHVuaXF1ZV9pZF9tb2R1bGUgbW9kdWxlcy9tb2RfdW5pcXVlX2lkLnNvCisjCisKKyMKKyMgTG9hZCBjb25maWcgZmlsZXMgZnJvbSB0aGUgY29uZmlnIGRpcmVjdG9yeSAiL2V0Yy9odHRwZC9jb25mLmQiLgorIworSW5jbHVkZSBjb25mLmQvKi5jb25mCisKKyMKKyMgRXh0ZW5kZWRTdGF0dXMgY29udHJvbHMgd2hldGhlciBBcGFjaGUgd2lsbCBnZW5lcmF0ZSAiZnVsbCIgc3RhdHVzCisjIGluZm9ybWF0aW9uIChFeHRlbmRlZFN0YXR1cyBPbikgb3IganVzdCBiYXNpYyBpbmZvcm1hdGlvbiAoRXh0ZW5kZWRTdGF0dXMKKyMgT2ZmKSB3aGVuIHRoZSAic2VydmVyLXN0YXR1cyIgaGFuZGxlciBpcyBjYWxsZWQuIFRoZSBkZWZhdWx0IGlzIE9mZi4KKyMKKyNFeHRlbmRlZFN0YXR1cyBPbgorCisjCisjIElmIHlvdSB3aXNoIGh0dHBkIHRvIHJ1biBhcyBhIGRpZmZlcmVudCB1c2VyIG9yIGdyb3VwLCB5b3UgbXVzdCBydW4KKyMgaHR0cGQgYXMgcm9vdCBpbml0aWFsbHkgYW5kIGl0IHdpbGwgc3dpdGNoLiAgCisjCisjIFVzZXIvR3JvdXA6IFRoZSBuYW1lIChvciAjbnVtYmVyKSBvZiB0aGUgdXNlci9ncm91cCB0byBydW4gaHR0cGQgYXMuCisjICAuIE9uIFNDTyAoT0RUIDMpIHVzZSAiVXNlciBub3VzZXIiIGFuZCAiR3JvdXAgbm9ncm91cCIuCisjICAuIE9uIEhQVVggeW91IG1heSBub3QgYmUgYWJsZSB0byB1c2Ugc2hhcmVkIG1lbW9yeSBhcyBub2JvZHksIGFuZCB0aGUKKyMgICAgc3VnZ2VzdGVkIHdvcmthcm91bmQgaXMgdG8gY3JlYXRlIGEgdXNlciB3d3cgYW5kIHVzZSB0aGF0IHVzZXIuCisjICBOT1RFIHRoYXQgc29tZSBrZXJuZWxzIHJlZnVzZSB0byBzZXRnaWQoR3JvdXApIG9yIHNlbWN0bChJUENfU0VUKQorIyAgd2hlbiB0aGUgdmFsdWUgb2YgKHVuc2lnbmVkKUdyb3VwIGlzIGFib3ZlIDYwMDAwOyAKKyMgIGRvbid0IHVzZSBHcm91cCAjLTEgb24gdGhlc2Ugc3lzdGVtcyEKKyMKK1VzZXIgYXBhY2hlCitHcm91cCBhcGFjaGUKKworIyMjIFNlY3Rpb24gMjogJ01haW4nIHNlcnZlciBjb25maWd1cmF0aW9uCisjCisjIFRoZSBkaXJlY3RpdmVzIGluIHRoaXMgc2VjdGlvbiBzZXQgdXAgdGhlIHZhbHVlcyB1c2VkIGJ5IHRoZSAnbWFpbicKKyMgc2VydmVyLCB3aGljaCByZXNwb25kcyB0byBhbnkgcmVxdWVzdHMgdGhhdCBhcmVuJ3QgaGFuZGxlZCBieSBhCisjIDxWaXJ0dWFsSG9zdD4gZGVmaW5pdGlvbi4gIFRoZXNlIHZhbHVlcyBhbHNvIHByb3ZpZGUgZGVmYXVsdHMgZm9yCisjIGFueSA8VmlydHVhbEhvc3Q+IGNvbnRhaW5lcnMgeW91IG1heSBkZWZpbmUgbGF0ZXIgaW4gdGhlIGZpbGUuCisjCisjIEFsbCBvZiB0aGVzZSBkaXJlY3RpdmVzIG1heSBhcHBlYXIgaW5zaWRlIDxWaXJ0dWFsSG9zdD4gY29udGFpbmVycywKKyMgaW4gd2hpY2ggY2FzZSB0aGVzZSBkZWZhdWx0IHNldHRpbmdzIHdpbGwgYmUgb3ZlcnJpZGRlbiBmb3IgdGhlCisjIHZpcnR1YWwgaG9zdCBiZWluZyBkZWZpbmVkLgorIworCisjCisjIFNlcnZlckFkbWluOiBZb3VyIGFkZHJlc3MsIHdoZXJlIHByb2JsZW1zIHdpdGggdGhlIHNlcnZlciBzaG91bGQgYmUKKyMgZS1tYWlsZWQuICBUaGlzIGFkZHJlc3MgYXBwZWFycyBvbiBzb21lIHNlcnZlci1nZW5lcmF0ZWQgcGFnZXMsIHN1Y2gKKyMgYXMgZXJyb3IgZG9jdW1lbnRzLiAgZS5nLiBhZG1pbkB5b3VyLWRvbWFpbi5jb20KKyMKK1NlcnZlckFkbWluIHJvb3RAbG9jYWxob3N0CisKKyMKKyMgU2VydmVyTmFtZSBnaXZlcyB0aGUgbmFtZSBhbmQgcG9ydCB0aGF0IHRoZSBzZXJ2ZXIgdXNlcyB0byBpZGVudGlmeSBpdHNlbGYuCisjIFRoaXMgY2FuIG9mdGVuIGJlIGRldGVybWluZWQgYXV0b21hdGljYWxseSwgYnV0IHdlIHJlY29tbWVuZCB5b3Ugc3BlY2lmeQorIyBpdCBleHBsaWNpdGx5IHRvIHByZXZlbnQgcHJvYmxlbXMgZHVyaW5nIHN0YXJ0dXAuCisjCisjIElmIHRoaXMgaXMgbm90IHNldCB0byB2YWxpZCBETlMgbmFtZSBmb3IgeW91ciBob3N0LCBzZXJ2ZXItZ2VuZXJhdGVkCisjIHJlZGlyZWN0aW9ucyB3aWxsIG5vdCB3b3JrLiAgU2VlIGFsc28gdGhlIFVzZUNhbm9uaWNhbE5hbWUgZGlyZWN0aXZlLgorIworIyBJZiB5b3VyIGhvc3QgZG9lc24ndCBoYXZlIGEgcmVnaXN0ZXJlZCBETlMgbmFtZSwgZW50ZXIgaXRzIElQIGFkZHJlc3MgaGVyZS4KKyMgWW91IHdpbGwgaGF2ZSB0byBhY2Nlc3MgaXQgYnkgaXRzIGFkZHJlc3MgYW55d2F5LCBhbmQgdGhpcyB3aWxsIG1ha2UgCisjIHJlZGlyZWN0aW9ucyB3b3JrIGluIGEgc2Vuc2libGUgd2F5LgorIworI1NlcnZlck5hbWUgd3d3LmV4YW1wbGUuY29tOjgwCisKKyMKKyMgVXNlQ2Fub25pY2FsTmFtZTogRGV0ZXJtaW5lcyBob3cgQXBhY2hlIGNvbnN0cnVjdHMgc2VsZi1yZWZlcmVuY2luZyAKKyMgVVJMcyBhbmQgdGhlIFNFUlZFUl9OQU1FIGFuZCBTRVJWRVJfUE9SVCB2YXJpYWJsZXMuCisjIFdoZW4gc2V0ICJPZmYiLCBBcGFjaGUgd2lsbCB1c2UgdGhlIEhvc3RuYW1lIGFuZCBQb3J0IHN1cHBsaWVkCisjIGJ5IHRoZSBjbGllbnQuICBXaGVuIHNldCAiT24iLCBBcGFjaGUgd2lsbCB1c2UgdGhlIHZhbHVlIG9mIHRoZQorIyBTZXJ2ZXJOYW1lIGRpcmVjdGl2ZS4KKyMKK1VzZUNhbm9uaWNhbE5hbWUgT2ZmCisKKyMKKyMgRG9jdW1lbnRSb290OiBUaGUgZGlyZWN0b3J5IG91dCBvZiB3aGljaCB5b3Ugd2lsbCBzZXJ2ZSB5b3VyCisjIGRvY3VtZW50cy4gQnkgZGVmYXVsdCwgYWxsIHJlcXVlc3RzIGFyZSB0YWtlbiBmcm9tIHRoaXMgZGlyZWN0b3J5LCBidXQKKyMgc3ltYm9saWMgbGlua3MgYW5kIGFsaWFzZXMgbWF5IGJlIHVzZWQgdG8gcG9pbnQgdG8gb3RoZXIgbG9jYXRpb25zLgorIworRG9jdW1lbnRSb290ICIvdmFyL3d3dy9odG1sIgorCisjCisjIEVhY2ggZGlyZWN0b3J5IHRvIHdoaWNoIEFwYWNoZSBoYXMgYWNjZXNzIGNhbiBiZSBjb25maWd1cmVkIHdpdGggcmVzcGVjdAorIyB0byB3aGljaCBzZXJ2aWNlcyBhbmQgZmVhdHVyZXMgYXJlIGFsbG93ZWQgYW5kL29yIGRpc2FibGVkIGluIHRoYXQKKyMgZGlyZWN0b3J5IChhbmQgaXRzIHN1YmRpcmVjdG9yaWVzKS4gCisjCisjIEZpcnN0LCB3ZSBjb25maWd1cmUgdGhlICJkZWZhdWx0IiB0byBiZSBhIHZlcnkgcmVzdHJpY3RpdmUgc2V0IG9mIAorIyBmZWF0dXJlcy4gIAorIworPERpcmVjdG9yeSAvPgorICAgIE9wdGlvbnMgRm9sbG93U3ltTGlua3MKKyAgICBBbGxvd092ZXJyaWRlIE5vbmUKKzwvRGlyZWN0b3J5PgorCisjCisjIE5vdGUgdGhhdCBmcm9tIHRoaXMgcG9pbnQgZm9yd2FyZCB5b3UgbXVzdCBzcGVjaWZpY2FsbHkgYWxsb3cKKyMgcGFydGljdWxhciBmZWF0dXJlcyB0byBiZSBlbmFibGVkIC0gc28gaWYgc29tZXRoaW5nJ3Mgbm90IHdvcmtpbmcgYXMKKyMgeW91IG1pZ2h0IGV4cGVjdCwgbWFrZSBzdXJlIHRoYXQgeW91IGhhdmUgc3BlY2lmaWNhbGx5IGVuYWJsZWQgaXQKKyMgYmVsb3cuCisjCisKKyMKKyMgVGhpcyBzaG91bGQgYmUgY2hhbmdlZCB0byB3aGF0ZXZlciB5b3Ugc2V0IERvY3VtZW50Um9vdCB0by4KKyMKKzxEaXJlY3RvcnkgIi92YXIvd3d3L2h0bWwiPgorCisjCisjIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhlIE9wdGlvbnMgZGlyZWN0aXZlIGFyZSAiTm9uZSIsICJBbGwiLAorIyBvciBhbnkgY29tYmluYXRpb24gb2Y6CisjICAgSW5kZXhlcyBJbmNsdWRlcyBGb2xsb3dTeW1MaW5rcyBTeW1MaW5rc2lmT3duZXJNYXRjaCBFeGVjQ0dJIE11bHRpVmlld3MKKyMKKyMgTm90ZSB0aGF0ICJNdWx0aVZpZXdzIiBtdXN0IGJlIG5hbWVkICpleHBsaWNpdGx5KiAtLS0gIk9wdGlvbnMgQWxsIgorIyBkb2Vzbid0IGdpdmUgaXQgdG8geW91LgorIworIyBUaGUgT3B0aW9ucyBkaXJlY3RpdmUgaXMgYm90aCBjb21wbGljYXRlZCBhbmQgaW1wb3J0YW50LiAgUGxlYXNlIHNlZQorIyBodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMi9tb2QvY29yZS5odG1sI29wdGlvbnMKKyMgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisjCisgICAgT3B0aW9ucyBJbmRleGVzIEZvbGxvd1N5bUxpbmtzCisKKyMKKyMgQWxsb3dPdmVycmlkZSBjb250cm9scyB3aGF0IGRpcmVjdGl2ZXMgbWF5IGJlIHBsYWNlZCBpbiAuaHRhY2Nlc3MgZmlsZXMuCisjIEl0IGNhbiBiZSAiQWxsIiwgIk5vbmUiLCBvciBhbnkgY29tYmluYXRpb24gb2YgdGhlIGtleXdvcmRzOgorIyAgIE9wdGlvbnMgRmlsZUluZm8gQXV0aENvbmZpZyBMaW1pdAorIworICAgIEFsbG93T3ZlcnJpZGUgTm9uZQorCisjCisjIENvbnRyb2xzIHdobyBjYW4gZ2V0IHN0dWZmIGZyb20gdGhpcyBzZXJ2ZXIuCisjCisgICAgT3JkZXIgYWxsb3csZGVueQorICAgIEFsbG93IGZyb20gYWxsCisKKzwvRGlyZWN0b3J5PgorCisjCisjIFVzZXJEaXI6IFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBpcyBhcHBlbmRlZCBvbnRvIGEgdXNlcidzIGhvbWUKKyMgZGlyZWN0b3J5IGlmIGEgfnVzZXIgcmVxdWVzdCBpcyByZWNlaXZlZC4KKyMKKyMgVGhlIHBhdGggdG8gdGhlIGVuZCB1c2VyIGFjY291bnQgJ3B1YmxpY19odG1sJyBkaXJlY3RvcnkgbXVzdCBiZQorIyBhY2Nlc3NpYmxlIHRvIHRoZSB3ZWJzZXJ2ZXIgdXNlcmlkLiAgVGhpcyB1c3VhbGx5IG1lYW5zIHRoYXQgfnVzZXJpZAorIyBtdXN0IGhhdmUgcGVybWlzc2lvbnMgb2YgNzExLCB+dXNlcmlkL3B1YmxpY19odG1sIG11c3QgaGF2ZSBwZXJtaXNzaW9ucworIyBvZiA3NTUsIGFuZCBkb2N1bWVudHMgY29udGFpbmVkIHRoZXJlaW4gbXVzdCBiZSB3b3JsZC1yZWFkYWJsZS4KKyMgT3RoZXJ3aXNlLCB0aGUgY2xpZW50IHdpbGwgb25seSByZWNlaXZlIGEgIjQwMyBGb3JiaWRkZW4iIG1lc3NhZ2UuCisjCisjIFNlZSBhbHNvOiBodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzL21pc2MvRkFRLmh0bWwjZm9yYmlkZGVuCisjCis8SWZNb2R1bGUgbW9kX3VzZXJkaXIuYz4KKyAgICAjCisgICAgIyBVc2VyRGlyIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgc2luY2UgaXQgY2FuIGNvbmZpcm0gdGhlIHByZXNlbmNlCisgICAgIyBvZiBhIHVzZXJuYW1lIG9uIHRoZSBzeXN0ZW0gKGRlcGVuZGluZyBvbiBob21lIGRpcmVjdG9yeQorICAgICMgcGVybWlzc2lvbnMpLgorICAgICMKKyAgICBVc2VyRGlyIGRpc2FibGVkCisKKyAgICAjCisgICAgIyBUbyBlbmFibGUgcmVxdWVzdHMgdG8gL351c2VyLyB0byBzZXJ2ZSB0aGUgdXNlcidzIHB1YmxpY19odG1sCisgICAgIyBkaXJlY3RvcnksIHJlbW92ZSB0aGUgIlVzZXJEaXIgZGlzYWJsZWQiIGxpbmUgYWJvdmUsIGFuZCB1bmNvbW1lbnQKKyAgICAjIHRoZSBmb2xsb3dpbmcgbGluZSBpbnN0ZWFkOgorICAgICMgCisgICAgI1VzZXJEaXIgcHVibGljX2h0bWwKKworPC9JZk1vZHVsZT4KKworIworIyBDb250cm9sIGFjY2VzcyB0byBVc2VyRGlyIGRpcmVjdG9yaWVzLiAgVGhlIGZvbGxvd2luZyBpcyBhbiBleGFtcGxlCisjIGZvciBhIHNpdGUgd2hlcmUgdGhlc2UgZGlyZWN0b3JpZXMgYXJlIHJlc3RyaWN0ZWQgdG8gcmVhZC1vbmx5LgorIworIzxEaXJlY3RvcnkgL2hvbWUvKi9wdWJsaWNfaHRtbD4KKyMgICAgQWxsb3dPdmVycmlkZSBGaWxlSW5mbyBBdXRoQ29uZmlnIExpbWl0CisjICAgIE9wdGlvbnMgTXVsdGlWaWV3cyBJbmRleGVzIFN5bUxpbmtzSWZPd25lck1hdGNoIEluY2x1ZGVzTm9FeGVjCisjICAgIDxMaW1pdCBHRVQgUE9TVCBPUFRJT05TPgorIyAgICAgICAgT3JkZXIgYWxsb3csZGVueQorIyAgICAgICAgQWxsb3cgZnJvbSBhbGwKKyMgICAgPC9MaW1pdD4KKyMgICAgPExpbWl0RXhjZXB0IEdFVCBQT1NUIE9QVElPTlM+CisjICAgICAgICBPcmRlciBkZW55LGFsbG93CisjICAgICAgICBEZW55IGZyb20gYWxsCisjICAgIDwvTGltaXRFeGNlcHQ+CisjPC9EaXJlY3Rvcnk+CisKKyMKKyMgRGlyZWN0b3J5SW5kZXg6IHNldHMgdGhlIGZpbGUgdGhhdCBBcGFjaGUgd2lsbCBzZXJ2ZSBpZiBhIGRpcmVjdG9yeQorIyBpcyByZXF1ZXN0ZWQuCisjCisjIFRoZSBpbmRleC5odG1sLnZhciBmaWxlIChhIHR5cGUtbWFwKSBpcyB1c2VkIHRvIGRlbGl2ZXIgY29udGVudC0KKyMgbmVnb3RpYXRlZCBkb2N1bWVudHMuICBUaGUgTXVsdGlWaWV3cyBPcHRpb24gY2FuIGJlIHVzZWQgZm9yIHRoZSAKKyMgc2FtZSBwdXJwb3NlLCBidXQgaXQgaXMgbXVjaCBzbG93ZXIuCisjCitEaXJlY3RvcnlJbmRleCBpbmRleC5odG1sIGluZGV4Lmh0bWwudmFyCisKKyMKKyMgQWNjZXNzRmlsZU5hbWU6IFRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIGxvb2sgZm9yIGluIGVhY2ggZGlyZWN0b3J5CisjIGZvciBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcy4gIFNlZSBhbHNvIHRoZSBBbGxvd092ZXJyaWRlCisjIGRpcmVjdGl2ZS4KKyMKK0FjY2Vzc0ZpbGVOYW1lIC5odGFjY2VzcworCisjCisjIFRoZSBmb2xsb3dpbmcgbGluZXMgcHJldmVudCAuaHRhY2Nlc3MgYW5kIC5odHBhc3N3ZCBmaWxlcyBmcm9tIGJlaW5nIAorIyB2aWV3ZWQgYnkgV2ViIGNsaWVudHMuIAorIworPEZpbGVzIH4gIl5cLmh0Ij4KKyAgICBPcmRlciBhbGxvdyxkZW55CisgICAgRGVueSBmcm9tIGFsbAorICAgIFNhdGlzZnkgQWxsCis8L0ZpbGVzPgorCisjCisjIFR5cGVzQ29uZmlnIGRlc2NyaWJlcyB3aGVyZSB0aGUgbWltZS50eXBlcyBmaWxlIChvciBlcXVpdmFsZW50KSBpcworIyB0byBiZSBmb3VuZC4KKyMKK1R5cGVzQ29uZmlnIC9ldGMvbWltZS50eXBlcworCisjCisjIERlZmF1bHRUeXBlIGlzIHRoZSBkZWZhdWx0IE1JTUUgdHlwZSB0aGUgc2VydmVyIHdpbGwgdXNlIGZvciBhIGRvY3VtZW50CisjIGlmIGl0IGNhbm5vdCBvdGhlcndpc2UgZGV0ZXJtaW5lIG9uZSwgc3VjaCBhcyBmcm9tIGZpbGVuYW1lIGV4dGVuc2lvbnMuCisjIElmIHlvdXIgc2VydmVyIGNvbnRhaW5zIG1vc3RseSB0ZXh0IG9yIEhUTUwgZG9jdW1lbnRzLCAidGV4dC9wbGFpbiIgaXMKKyMgYSBnb29kIHZhbHVlLiAgSWYgbW9zdCBvZiB5b3VyIGNvbnRlbnQgaXMgYmluYXJ5LCBzdWNoIGFzIGFwcGxpY2F0aW9ucworIyBvciBpbWFnZXMsIHlvdSBtYXkgd2FudCB0byB1c2UgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIgaW5zdGVhZCB0bworIyBrZWVwIGJyb3dzZXJzIGZyb20gdHJ5aW5nIHRvIGRpc3BsYXkgYmluYXJ5IGZpbGVzIGFzIHRob3VnaCB0aGV5IGFyZQorIyB0ZXh0LgorIworRGVmYXVsdFR5cGUgdGV4dC9wbGFpbgorCisjCisjIFRoZSBtb2RfbWltZV9tYWdpYyBtb2R1bGUgYWxsb3dzIHRoZSBzZXJ2ZXIgdG8gdXNlIHZhcmlvdXMgaGludHMgZnJvbSB0aGUKKyMgY29udGVudHMgb2YgdGhlIGZpbGUgaXRzZWxmIHRvIGRldGVybWluZSBpdHMgdHlwZS4gIFRoZSBNSU1FTWFnaWNGaWxlCisjIGRpcmVjdGl2ZSB0ZWxscyB0aGUgbW9kdWxlIHdoZXJlIHRoZSBoaW50IGRlZmluaXRpb25zIGFyZSBsb2NhdGVkLgorIworPElmTW9kdWxlIG1vZF9taW1lX21hZ2ljLmM+CisjICAgTUlNRU1hZ2ljRmlsZSAvdXNyL3NoYXJlL21hZ2ljLm1pbWUKKyAgICBNSU1FTWFnaWNGaWxlIGNvbmYvbWFnaWMKKzwvSWZNb2R1bGU+CisKKyMKKyMgSG9zdG5hbWVMb29rdXBzOiBMb2cgdGhlIG5hbWVzIG9mIGNsaWVudHMgb3IganVzdCB0aGVpciBJUCBhZGRyZXNzZXMKKyMgZS5nLiwgd3d3LmFwYWNoZS5vcmcgKG9uKSBvciAyMDQuNjIuMTI5LjEzMiAob2ZmKS4KKyMgVGhlIGRlZmF1bHQgaXMgb2ZmIGJlY2F1c2UgaXQnZCBiZSBvdmVyYWxsIGJldHRlciBmb3IgdGhlIG5ldCBpZiBwZW9wbGUKKyMgaGFkIHRvIGtub3dpbmdseSB0dXJuIHRoaXMgZmVhdHVyZSBvbiwgc2luY2UgZW5hYmxpbmcgaXQgbWVhbnMgdGhhdAorIyBlYWNoIGNsaWVudCByZXF1ZXN0IHdpbGwgcmVzdWx0IGluIEFUIExFQVNUIG9uZSBsb29rdXAgcmVxdWVzdCB0byB0aGUKKyMgbmFtZXNlcnZlci4KKyMKK0hvc3RuYW1lTG9va3VwcyBPZmYKKworIworIyBFbmFibGVNTUFQOiBDb250cm9sIHdoZXRoZXIgbWVtb3J5LW1hcHBpbmcgaXMgdXNlZCB0byBkZWxpdmVyCisjIGZpbGVzIChhc3N1bWluZyB0aGF0IHRoZSB1bmRlcmx5aW5nIE9TIHN1cHBvcnRzIGl0KS4KKyMgVGhlIGRlZmF1bHQgaXMgb247IHR1cm4gdGhpcyBvZmYgaWYgeW91IHNlcnZlIGZyb20gTkZTLW1vdW50ZWQgCisjIGZpbGVzeXN0ZW1zLiAgT24gc29tZSBzeXN0ZW1zLCB0dXJuaW5nIGl0IG9mZiAocmVnYXJkbGVzcyBvZgorIyBmaWxlc3lzdGVtKSBjYW4gaW1wcm92ZSBwZXJmb3JtYW5jZTsgZm9yIGRldGFpbHMsIHBsZWFzZSBzZWUKKyMgaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjIvbW9kL2NvcmUuaHRtbCNlbmFibGVtbWFwCisjCisjRW5hYmxlTU1BUCBvZmYKKworIworIyBFbmFibGVTZW5kZmlsZTogQ29udHJvbCB3aGV0aGVyIHRoZSBzZW5kZmlsZSBrZXJuZWwgc3VwcG9ydCBpcyAKKyMgdXNlZCB0byBkZWxpdmVyIGZpbGVzIChhc3N1bWluZyB0aGF0IHRoZSBPUyBzdXBwb3J0cyBpdCkuIAorIyBUaGUgZGVmYXVsdCBpcyBvbjsgdHVybiB0aGlzIG9mZiBpZiB5b3Ugc2VydmUgZnJvbSBORlMtbW91bnRlZCAKKyMgZmlsZXN5c3RlbXMuICBQbGVhc2Ugc2VlCisjIGh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvMi4yL21vZC9jb3JlLmh0bWwjZW5hYmxlc2VuZGZpbGUKKyMKKyNFbmFibGVTZW5kZmlsZSBvZmYKKworIworIyBFcnJvckxvZzogVGhlIGxvY2F0aW9uIG9mIHRoZSBlcnJvciBsb2cgZmlsZS4KKyMgSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGFuIEVycm9yTG9nIGRpcmVjdGl2ZSB3aXRoaW4gYSA8VmlydHVhbEhvc3Q+CisjIGNvbnRhaW5lciwgZXJyb3IgbWVzc2FnZXMgcmVsYXRpbmcgdG8gdGhhdCB2aXJ0dWFsIGhvc3Qgd2lsbCBiZQorIyBsb2dnZWQgaGVyZS4gIElmIHlvdSAqZG8qIGRlZmluZSBhbiBlcnJvciBsb2dmaWxlIGZvciBhIDxWaXJ0dWFsSG9zdD4KKyMgY29udGFpbmVyLCB0aGF0IGhvc3QncyBlcnJvcnMgd2lsbCBiZSBsb2dnZWQgdGhlcmUgYW5kIG5vdCBoZXJlLgorIworRXJyb3JMb2cgbG9ncy9lcnJvcl9sb2cKKworIworIyBMb2dMZXZlbDogQ29udHJvbCB0aGUgbnVtYmVyIG9mIG1lc3NhZ2VzIGxvZ2dlZCB0byB0aGUgZXJyb3JfbG9nLgorIyBQb3NzaWJsZSB2YWx1ZXMgaW5jbHVkZTogZGVidWcsIGluZm8sIG5vdGljZSwgd2FybiwgZXJyb3IsIGNyaXQsCisjIGFsZXJ0LCBlbWVyZy4KKyMKK0xvZ0xldmVsIHdhcm4KKworIworIyBUaGUgZm9sbG93aW5nIGRpcmVjdGl2ZXMgZGVmaW5lIHNvbWUgZm9ybWF0IG5pY2tuYW1lcyBmb3IgdXNlIHdpdGgKKyMgYSBDdXN0b21Mb2cgZGlyZWN0aXZlIChzZWUgYmVsb3cpLgorIworTG9nRm9ybWF0ICIlaCAlbCAldSAldCBcIiVyXCIgJT5zICViIFwiJXtSZWZlcmVyfWlcIiBcIiV7VXNlci1BZ2VudH1pXCIiIGNvbWJpbmVkCitMb2dGb3JtYXQgIiVoICVsICV1ICV0IFwiJXJcIiAlPnMgJWIiIGNvbW1vbgorTG9nRm9ybWF0ICIle1JlZmVyZXJ9aSAtPiAlVSIgcmVmZXJlcgorTG9nRm9ybWF0ICIle1VzZXItYWdlbnR9aSIgYWdlbnQKKworIyAiY29tYmluZWRpbyIgaW5jbHVkZXMgYWN0dWFsIGNvdW50cyBvZiBhY3R1YWwgYnl0ZXMgcmVjZWl2ZWQgKCVJKSBhbmQgc2VudCAoJU8pOyB0aGlzCisjIHJlcXVpcmVzIHRoZSBtb2RfbG9naW8gbW9kdWxlIHRvIGJlIGxvYWRlZC4KKyNMb2dGb3JtYXQgIiVoICVsICV1ICV0IFwiJXJcIiAlPnMgJWIgXCIle1JlZmVyZXJ9aVwiIFwiJXtVc2VyLUFnZW50fWlcIiAlSSAlTyIgY29tYmluZWRpbworCisjCisjIFRoZSBsb2NhdGlvbiBhbmQgZm9ybWF0IG9mIHRoZSBhY2Nlc3MgbG9nZmlsZSAoQ29tbW9uIExvZ2ZpbGUgRm9ybWF0KS4KKyMgSWYgeW91IGRvIG5vdCBkZWZpbmUgYW55IGFjY2VzcyBsb2dmaWxlcyB3aXRoaW4gYSA8VmlydHVhbEhvc3Q+CisjIGNvbnRhaW5lciwgdGhleSB3aWxsIGJlIGxvZ2dlZCBoZXJlLiAgQ29udHJhcml3aXNlLCBpZiB5b3UgKmRvKgorIyBkZWZpbmUgcGVyLTxWaXJ0dWFsSG9zdD4gYWNjZXNzIGxvZ2ZpbGVzLCB0cmFuc2FjdGlvbnMgd2lsbCBiZQorIyBsb2dnZWQgdGhlcmVpbiBhbmQgKm5vdCogaW4gdGhpcyBmaWxlLgorIworI0N1c3RvbUxvZyBsb2dzL2FjY2Vzc19sb2cgY29tbW9uCisKKyMKKyMgSWYgeW91IHdvdWxkIGxpa2UgdG8gaGF2ZSBzZXBhcmF0ZSBhZ2VudCBhbmQgcmVmZXJlciBsb2dmaWxlcywgdW5jb21tZW50CisjIHRoZSBmb2xsb3dpbmcgZGlyZWN0aXZlcy4KKyMKKyNDdXN0b21Mb2cgbG9ncy9yZWZlcmVyX2xvZyByZWZlcmVyCisjQ3VzdG9tTG9nIGxvZ3MvYWdlbnRfbG9nIGFnZW50CisKKyMKKyMgRm9yIGEgc2luZ2xlIGxvZ2ZpbGUgd2l0aCBhY2Nlc3MsIGFnZW50LCBhbmQgcmVmZXJlciBpbmZvcm1hdGlvbgorIyAoQ29tYmluZWQgTG9nZmlsZSBGb3JtYXQpLCB1c2UgdGhlIGZvbGxvd2luZyBkaXJlY3RpdmU6CisjCitDdXN0b21Mb2cgbG9ncy9hY2Nlc3NfbG9nIGNvbWJpbmVkCisKKyMKKyMgT3B0aW9uYWxseSBhZGQgYSBsaW5lIGNvbnRhaW5pbmcgdGhlIHNlcnZlciB2ZXJzaW9uIGFuZCB2aXJ0dWFsIGhvc3QKKyMgbmFtZSB0byBzZXJ2ZXItZ2VuZXJhdGVkIHBhZ2VzIChpbnRlcm5hbCBlcnJvciBkb2N1bWVudHMsIEZUUCBkaXJlY3RvcnkKKyMgbGlzdGluZ3MsIG1vZF9zdGF0dXMgYW5kIG1vZF9pbmZvIG91dHB1dCBldGMuLCBidXQgbm90IENHSSBnZW5lcmF0ZWQKKyMgZG9jdW1lbnRzIG9yIGN1c3RvbSBlcnJvciBkb2N1bWVudHMpLgorIyBTZXQgdG8gIkVNYWlsIiB0byBhbHNvIGluY2x1ZGUgYSBtYWlsdG86IGxpbmsgdG8gdGhlIFNlcnZlckFkbWluLgorIyBTZXQgdG8gb25lIG9mOiAgT24gfCBPZmYgfCBFTWFpbAorIworU2VydmVyU2lnbmF0dXJlIE9uCisKKyMKKyMgQWxpYXNlczogQWRkIGhlcmUgYXMgbWFueSBhbGlhc2VzIGFzIHlvdSBuZWVkICh3aXRoIG5vIGxpbWl0KS4gVGhlIGZvcm1hdCBpcyAKKyMgQWxpYXMgZmFrZW5hbWUgcmVhbG5hbWUKKyMKKyMgTm90ZSB0aGF0IGlmIHlvdSBpbmNsdWRlIGEgdHJhaWxpbmcgLyBvbiBmYWtlbmFtZSB0aGVuIHRoZSBzZXJ2ZXIgd2lsbAorIyByZXF1aXJlIGl0IHRvIGJlIHByZXNlbnQgaW4gdGhlIFVSTC4gIFNvICIvaWNvbnMiIGlzbid0IGFsaWFzZWQgaW4gdGhpcworIyBleGFtcGxlLCBvbmx5ICIvaWNvbnMvIi4gIElmIHRoZSBmYWtlbmFtZSBpcyBzbGFzaC10ZXJtaW5hdGVkLCB0aGVuIHRoZSAKKyMgcmVhbG5hbWUgbXVzdCBhbHNvIGJlIHNsYXNoIHRlcm1pbmF0ZWQsIGFuZCBpZiB0aGUgZmFrZW5hbWUgb21pdHMgdGhlIAorIyB0cmFpbGluZyBzbGFzaCwgdGhlIHJlYWxuYW1lIG11c3QgYWxzbyBvbWl0IGl0LgorIworIyBXZSBpbmNsdWRlIHRoZSAvaWNvbnMvIGFsaWFzIGZvciBGYW5jeUluZGV4ZWQgZGlyZWN0b3J5IGxpc3RpbmdzLiAgSWYgeW91CisjIGRvIG5vdCB1c2UgRmFuY3lJbmRleGluZywgeW91IG1heSBjb21tZW50IHRoaXMgb3V0LgorIworQWxpYXMgL2ljb25zLyAiL3Zhci93d3cvaWNvbnMvIgorCis8RGlyZWN0b3J5ICIvdmFyL3d3dy9pY29ucyI+CisgICAgT3B0aW9ucyBJbmRleGVzIE11bHRpVmlld3MgRm9sbG93U3ltTGlua3MKKyAgICBBbGxvd092ZXJyaWRlIE5vbmUKKyAgICBPcmRlciBhbGxvdyxkZW55CisgICAgQWxsb3cgZnJvbSBhbGwKKzwvRGlyZWN0b3J5PgorCisjCisjIFdlYkRBViBtb2R1bGUgY29uZmlndXJhdGlvbiBzZWN0aW9uLgorIyAKKzxJZk1vZHVsZSBtb2RfZGF2X2ZzLmM+CisgICAgIyBMb2NhdGlvbiBvZiB0aGUgV2ViREFWIGxvY2sgZGF0YWJhc2UuCisgICAgREFWTG9ja0RCIC92YXIvbGliL2Rhdi9sb2NrZGIKKzwvSWZNb2R1bGU+CisKKyMKKyMgU2NyaXB0QWxpYXM6IFRoaXMgY29udHJvbHMgd2hpY2ggZGlyZWN0b3JpZXMgY29udGFpbiBzZXJ2ZXIgc2NyaXB0cy4KKyMgU2NyaXB0QWxpYXNlcyBhcmUgZXNzZW50aWFsbHkgdGhlIHNhbWUgYXMgQWxpYXNlcywgZXhjZXB0IHRoYXQKKyMgZG9jdW1lbnRzIGluIHRoZSByZWFsbmFtZSBkaXJlY3RvcnkgYXJlIHRyZWF0ZWQgYXMgYXBwbGljYXRpb25zIGFuZAorIyBydW4gYnkgdGhlIHNlcnZlciB3aGVuIHJlcXVlc3RlZCByYXRoZXIgdGhhbiBhcyBkb2N1bWVudHMgc2VudCB0byB0aGUgY2xpZW50LgorIyBUaGUgc2FtZSBydWxlcyBhYm91dCB0cmFpbGluZyAiLyIgYXBwbHkgdG8gU2NyaXB0QWxpYXMgZGlyZWN0aXZlcyBhcyB0bworIyBBbGlhcy4KKyMKK1NjcmlwdEFsaWFzIC9jZ2ktYmluLyAiL3Zhci93d3cvY2dpLWJpbi8iCisKKyMKKyMgIi92YXIvd3d3L2NnaS1iaW4iIHNob3VsZCBiZSBjaGFuZ2VkIHRvIHdoYXRldmVyIHlvdXIgU2NyaXB0QWxpYXNlZAorIyBDR0kgZGlyZWN0b3J5IGV4aXN0cywgaWYgeW91IGhhdmUgdGhhdCBjb25maWd1cmVkLgorIworPERpcmVjdG9yeSAiL3Zhci93d3cvY2dpLWJpbiI+CisgICAgQWxsb3dPdmVycmlkZSBOb25lCisgICAgT3B0aW9ucyBOb25lCisgICAgT3JkZXIgYWxsb3csZGVueQorICAgIEFsbG93IGZyb20gYWxsCis8L0RpcmVjdG9yeT4KKworIworIyBSZWRpcmVjdCBhbGxvd3MgeW91IHRvIHRlbGwgY2xpZW50cyBhYm91dCBkb2N1bWVudHMgd2hpY2ggdXNlZCB0byBleGlzdCBpbgorIyB5b3VyIHNlcnZlcidzIG5hbWVzcGFjZSwgYnV0IGRvIG5vdCBhbnltb3JlLiBUaGlzIGFsbG93cyB5b3UgdG8gdGVsbCB0aGUKKyMgY2xpZW50cyB3aGVyZSB0byBsb29rIGZvciB0aGUgcmVsb2NhdGVkIGRvY3VtZW50LgorIyBFeGFtcGxlOgorIyBSZWRpcmVjdCBwZXJtYW5lbnQgL2ZvbyBodHRwOi8vd3d3LmV4YW1wbGUuY29tL2JhcgorCisjCisjIERpcmVjdGl2ZXMgY29udHJvbGxpbmcgdGhlIGRpc3BsYXkgb2Ygc2VydmVyLWdlbmVyYXRlZCBkaXJlY3RvcnkgbGlzdGluZ3MuCisjCisKKyMKKyMgSW5kZXhPcHRpb25zOiBDb250cm9scyB0aGUgYXBwZWFyYW5jZSBvZiBzZXJ2ZXItZ2VuZXJhdGVkIGRpcmVjdG9yeQorIyBsaXN0aW5ncy4KKyMKK0luZGV4T3B0aW9ucyBGYW5jeUluZGV4aW5nIFZlcnNpb25Tb3J0IE5hbWVXaWR0aD0qIEhUTUxUYWJsZSBDaGFyc2V0PVVURi04CisKKyMKKyMgQWRkSWNvbiogZGlyZWN0aXZlcyB0ZWxsIHRoZSBzZXJ2ZXIgd2hpY2ggaWNvbiB0byBzaG93IGZvciBkaWZmZXJlbnQKKyMgZmlsZXMgb3IgZmlsZW5hbWUgZXh0ZW5zaW9ucy4gIFRoZXNlIGFyZSBvbmx5IGRpc3BsYXllZCBmb3IKKyMgRmFuY3lJbmRleGVkIGRpcmVjdG9yaWVzLgorIworQWRkSWNvbkJ5RW5jb2RpbmcgKENNUCwvaWNvbnMvY29tcHJlc3NlZC5naWYpIHgtY29tcHJlc3MgeC1nemlwCisKK0FkZEljb25CeVR5cGUgKFRYVCwvaWNvbnMvdGV4dC5naWYpIHRleHQvKgorQWRkSWNvbkJ5VHlwZSAoSU1HLC9pY29ucy9pbWFnZTIuZ2lmKSBpbWFnZS8qCitBZGRJY29uQnlUeXBlIChTTkQsL2ljb25zL3NvdW5kMi5naWYpIGF1ZGlvLyoKK0FkZEljb25CeVR5cGUgKFZJRCwvaWNvbnMvbW92aWUuZ2lmKSB2aWRlby8qCisKK0FkZEljb24gL2ljb25zL2JpbmFyeS5naWYgLmJpbiAuZXhlCitBZGRJY29uIC9pY29ucy9iaW5oZXguZ2lmIC5ocXgKK0FkZEljb24gL2ljb25zL3Rhci5naWYgLnRhcgorQWRkSWNvbiAvaWNvbnMvd29ybGQyLmdpZiAud3JsIC53cmwuZ3ogLnZybWwgLnZybSAuaXYKK0FkZEljb24gL2ljb25zL2NvbXByZXNzZWQuZ2lmIC5aIC56IC50Z3ogLmd6IC56aXAKK0FkZEljb24gL2ljb25zL2EuZ2lmIC5wcyAuYWkgLmVwcworQWRkSWNvbiAvaWNvbnMvbGF5b3V0LmdpZiAuaHRtbCAuc2h0bWwgLmh0bSAucGRmCitBZGRJY29uIC9pY29ucy90ZXh0LmdpZiAudHh0CitBZGRJY29uIC9pY29ucy9jLmdpZiAuYworQWRkSWNvbiAvaWNvbnMvcC5naWYgLnBsIC5weQorQWRkSWNvbiAvaWNvbnMvZi5naWYgLmZvcgorQWRkSWNvbiAvaWNvbnMvZHZpLmdpZiAuZHZpCitBZGRJY29uIC9pY29ucy91dWVuY29kZWQuZ2lmIC51dQorQWRkSWNvbiAvaWNvbnMvc2NyaXB0LmdpZiAuY29uZiAuc2ggLnNoYXIgLmNzaCAua3NoIC50Y2wKK0FkZEljb24gL2ljb25zL3RleC5naWYgLnRleAorQWRkSWNvbiAvaWNvbnMvYm9tYi5naWYgY29yZQorCitBZGRJY29uIC9pY29ucy9iYWNrLmdpZiAuLgorQWRkSWNvbiAvaWNvbnMvaGFuZC5yaWdodC5naWYgUkVBRE1FCitBZGRJY29uIC9pY29ucy9mb2xkZXIuZ2lmIF5eRElSRUNUT1JZXl4KK0FkZEljb24gL2ljb25zL2JsYW5rLmdpZiBeXkJMQU5LSUNPTl5eCisKKyMKKyMgRGVmYXVsdEljb24gaXMgd2hpY2ggaWNvbiB0byBzaG93IGZvciBmaWxlcyB3aGljaCBkbyBub3QgaGF2ZSBhbiBpY29uCisjIGV4cGxpY2l0bHkgc2V0LgorIworRGVmYXVsdEljb24gL2ljb25zL3Vua25vd24uZ2lmCisKKyMKKyMgQWRkRGVzY3JpcHRpb24gYWxsb3dzIHlvdSB0byBwbGFjZSBhIHNob3J0IGRlc2NyaXB0aW9uIGFmdGVyIGEgZmlsZSBpbgorIyBzZXJ2ZXItZ2VuZXJhdGVkIGluZGV4ZXMuICBUaGVzZSBhcmUgb25seSBkaXNwbGF5ZWQgZm9yIEZhbmN5SW5kZXhlZAorIyBkaXJlY3Rvcmllcy4KKyMgRm9ybWF0OiBBZGREZXNjcmlwdGlvbiAiZGVzY3JpcHRpb24iIGZpbGVuYW1lCisjCisjQWRkRGVzY3JpcHRpb24gIkdaSVAgY29tcHJlc3NlZCBkb2N1bWVudCIgLmd6CisjQWRkRGVzY3JpcHRpb24gInRhciBhcmNoaXZlIiAudGFyCisjQWRkRGVzY3JpcHRpb24gIkdaSVAgY29tcHJlc3NlZCB0YXIgYXJjaGl2ZSIgLnRnegorCisjCisjIFJlYWRtZU5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIFJFQURNRSBmaWxlIHRoZSBzZXJ2ZXIgd2lsbCBsb29rIGZvciBieQorIyBkZWZhdWx0LCBhbmQgYXBwZW5kIHRvIGRpcmVjdG9yeSBsaXN0aW5ncy4KKyMKKyMgSGVhZGVyTmFtZSBpcyB0aGUgbmFtZSBvZiBhIGZpbGUgd2hpY2ggc2hvdWxkIGJlIHByZXBlbmRlZCB0bworIyBkaXJlY3RvcnkgaW5kZXhlcy4gCitSZWFkbWVOYW1lIFJFQURNRS5odG1sCitIZWFkZXJOYW1lIEhFQURFUi5odG1sCisKKyMKKyMgSW5kZXhJZ25vcmUgaXMgYSBzZXQgb2YgZmlsZW5hbWVzIHdoaWNoIGRpcmVjdG9yeSBpbmRleGluZyBzaG91bGQgaWdub3JlCisjIGFuZCBub3QgaW5jbHVkZSBpbiB0aGUgbGlzdGluZy4gIFNoZWxsLXN0eWxlIHdpbGRjYXJkaW5nIGlzIHBlcm1pdHRlZC4KKyMKK0luZGV4SWdub3JlIC4/PyogKn4gKiMgSEVBREVSKiBSRUFETUUqIFJDUyBDVlMgKix2ICosdAorCisjCisjIERlZmF1bHRMYW5ndWFnZSBhbmQgQWRkTGFuZ3VhZ2UgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IHRoZSBsYW5ndWFnZSBvZiAKKyMgYSBkb2N1bWVudC4gWW91IGNhbiB0aGVuIHVzZSBjb250ZW50IG5lZ290aWF0aW9uIHRvIGdpdmUgYSBicm93c2VyIGEgCisjIGZpbGUgaW4gYSBsYW5ndWFnZSB0aGUgdXNlciBjYW4gdW5kZXJzdGFuZC4KKyMKKyMgU3BlY2lmeSBhIGRlZmF1bHQgbGFuZ3VhZ2UuIFRoaXMgbWVhbnMgdGhhdCBhbGwgZGF0YQorIyBnb2luZyBvdXQgd2l0aG91dCBhIHNwZWNpZmljIGxhbmd1YWdlIHRhZyAoc2VlIGJlbG93KSB3aWxsIAorIyBiZSBtYXJrZWQgd2l0aCB0aGlzIG9uZS4gWW91IHByb2JhYmx5IGRvIE5PVCB3YW50IHRvIHNldAorIyB0aGlzIHVubGVzcyB5b3UgYXJlIHN1cmUgaXQgaXMgY29ycmVjdCBmb3IgYWxsIGNhc2VzLgorIworIyAqIEl0IGlzIGdlbmVyYWxseSBiZXR0ZXIgdG8gbm90IG1hcmsgYSBwYWdlIGFzIAorIyAqIGJlaW5nIGEgY2VydGFpbiBsYW5ndWFnZSB0aGFuIG1hcmtpbmcgaXQgd2l0aCB0aGUgd3JvbmcKKyMgKiBsYW5ndWFnZSEKKyMKKyMgRGVmYXVsdExhbmd1YWdlIG5sCisjCisjIE5vdGUgMTogVGhlIHN1ZmZpeCBkb2VzIG5vdCBoYXZlIHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBsYW5ndWFnZQorIyBrZXl3b3JkIC0tLSB0aG9zZSB3aXRoIGRvY3VtZW50cyBpbiBQb2xpc2ggKHdob3NlIG5ldC1zdGFuZGFyZAorIyBsYW5ndWFnZSBjb2RlIGlzIHBsKSBtYXkgd2lzaCB0byB1c2UgIkFkZExhbmd1YWdlIHBsIC5wbyIgdG8KKyMgYXZvaWQgdGhlIGFtYmlndWl0eSB3aXRoIHRoZSBjb21tb24gc3VmZml4IGZvciBwZXJsIHNjcmlwdHMuCisjCisjIE5vdGUgMjogVGhlIGV4YW1wbGUgZW50cmllcyBiZWxvdyBpbGx1c3RyYXRlIHRoYXQgaW4gc29tZSBjYXNlcyAKKyMgdGhlIHR3byBjaGFyYWN0ZXIgJ0xhbmd1YWdlJyBhYmJyZXZpYXRpb24gaXMgbm90IGlkZW50aWNhbCB0byAKKyMgdGhlIHR3byBjaGFyYWN0ZXIgJ0NvdW50cnknIGNvZGUgZm9yIGl0cyBjb3VudHJ5LAorIyBFLmcuICdEYW5tYXJrL2RrJyB2ZXJzdXMgJ0RhbmlzaC9kYScuCisjCisjIE5vdGUgMzogSW4gdGhlIGNhc2Ugb2YgJ2x0eicgd2UgdmlvbGF0ZSB0aGUgUkZDIGJ5IHVzaW5nIGEgdGhyZWUgY2hhcgorIyBzcGVjaWZpZXIuIFRoZXJlIGlzICd3b3JrIGluIHByb2dyZXNzJyB0byBmaXggdGhpcyBhbmQgZ2V0CisjIHRoZSByZWZlcmVuY2UgZGF0YSBmb3IgcmZjMTc2NiBjbGVhbmVkIHVwLgorIworIyBDYXRhbGFuIChjYSkgLSBDcm9hdGlhbiAoaHIpIC0gQ3plY2ggKGNzKSAtIERhbmlzaCAoZGEpIC0gRHV0Y2ggKG5sKQorIyBFbmdsaXNoIChlbikgLSBFc3BlcmFudG8gKGVvKSAtIEVzdG9uaWFuIChldCkgLSBGcmVuY2ggKGZyKSAtIEdlcm1hbiAoZGUpCisjIEdyZWVrLU1vZGVybiAoZWwpIC0gSGVicmV3IChoZSkgLSBJdGFsaWFuIChpdCkgLSBKYXBhbmVzZSAoamEpCisjIEtvcmVhbiAoa28pIC0gTHV4ZW1ib3VyZ2VvaXMqIChsdHopIC0gTm9yd2VnaWFuIE55bm9yc2sgKG5uKQorIyBOb3J3ZWdpYW4gKG5vKSAtIFBvbGlzaCAocGwpIC0gUG9ydHVnZXNlIChwdCkKKyMgQnJhemlsaWFuIFBvcnR1Z3Vlc2UgKHB0LUJSKSAtIFJ1c3NpYW4gKHJ1KSAtIFN3ZWRpc2ggKHN2KQorIyBTaW1wbGlmaWVkIENoaW5lc2UgKHpoLUNOKSAtIFNwYW5pc2ggKGVzKSAtIFRyYWRpdGlvbmFsIENoaW5lc2UgKHpoLVRXKQorIworQWRkTGFuZ3VhZ2UgY2EgLmNhCitBZGRMYW5ndWFnZSBjcyAuY3ogLmNzCitBZGRMYW5ndWFnZSBkYSAuZGsKK0FkZExhbmd1YWdlIGRlIC5kZQorQWRkTGFuZ3VhZ2UgZWwgLmVsCitBZGRMYW5ndWFnZSBlbiAuZW4KK0FkZExhbmd1YWdlIGVvIC5lbworQWRkTGFuZ3VhZ2UgZXMgLmVzCitBZGRMYW5ndWFnZSBldCAuZXQKK0FkZExhbmd1YWdlIGZyIC5mcgorQWRkTGFuZ3VhZ2UgaGUgLmhlCitBZGRMYW5ndWFnZSBociAuaHIKK0FkZExhbmd1YWdlIGl0IC5pdAorQWRkTGFuZ3VhZ2UgamEgLmphCitBZGRMYW5ndWFnZSBrbyAua28KK0FkZExhbmd1YWdlIGx0eiAubHR6CitBZGRMYW5ndWFnZSBubCAubmwKK0FkZExhbmd1YWdlIG5uIC5ubgorQWRkTGFuZ3VhZ2Ugbm8gLm5vCitBZGRMYW5ndWFnZSBwbCAucG8KK0FkZExhbmd1YWdlIHB0IC5wdAorQWRkTGFuZ3VhZ2UgcHQtQlIgLnB0LWJyCitBZGRMYW5ndWFnZSBydSAucnUKK0FkZExhbmd1YWdlIHN2IC5zdgorQWRkTGFuZ3VhZ2UgemgtQ04gLnpoLWNuCitBZGRMYW5ndWFnZSB6aC1UVyAuemgtdHcKKworIworIyBMYW5ndWFnZVByaW9yaXR5IGFsbG93cyB5b3UgdG8gZ2l2ZSBwcmVjZWRlbmNlIHRvIHNvbWUgbGFuZ3VhZ2VzCisjIGluIGNhc2Ugb2YgYSB0aWUgZHVyaW5nIGNvbnRlbnQgbmVnb3RpYXRpb24uCisjCisjIEp1c3QgbGlzdCB0aGUgbGFuZ3VhZ2VzIGluIGRlY3JlYXNpbmcgb3JkZXIgb2YgcHJlZmVyZW5jZS4gV2UgaGF2ZQorIyBtb3JlIG9yIGxlc3MgYWxwaGFiZXRpemVkIHRoZW0gaGVyZS4gWW91IHByb2JhYmx5IHdhbnQgdG8gY2hhbmdlIHRoaXMuCisjCitMYW5ndWFnZVByaW9yaXR5IGVuIGNhIGNzIGRhIGRlIGVsIGVvIGVzIGV0IGZyIGhlIGhyIGl0IGphIGtvIGx0eiBubCBubiBubyBwbCBwdCBwdC1CUiBydSBzdiB6aC1DTiB6aC1UVworCisjCisjIEZvcmNlTGFuZ3VhZ2VQcmlvcml0eSBhbGxvd3MgeW91IHRvIHNlcnZlIGEgcmVzdWx0IHBhZ2UgcmF0aGVyIHRoYW4KKyMgTVVMVElQTEUgQ0hPSUNFUyAoUHJlZmVyKSBbaW4gY2FzZSBvZiBhIHRpZV0gb3IgTk9UIEFDQ0VQVEFCTEUgKEZhbGxiYWNrKQorIyBbaW4gY2FzZSBubyBhY2NlcHRlZCBsYW5ndWFnZXMgbWF0Y2hlZCB0aGUgYXZhaWxhYmxlIHZhcmlhbnRzXQorIworRm9yY2VMYW5ndWFnZVByaW9yaXR5IFByZWZlciBGYWxsYmFjaworCisjCisjIFNwZWNpZnkgYSBkZWZhdWx0IGNoYXJzZXQgZm9yIGFsbCBjb250ZW50IHNlcnZlZDsgdGhpcyBlbmFibGVzCisjIGludGVycHJldGF0aW9uIG9mIGFsbCBjb250ZW50IGFzIFVURi04IGJ5IGRlZmF1bHQuICBUbyB1c2UgdGhlIAorIyBkZWZhdWx0IGJyb3dzZXIgY2hvaWNlIChJU08tODg1OS0xKSwgb3IgdG8gYWxsb3cgdGhlIE1FVEEgdGFncworIyBpbiBIVE1MIGNvbnRlbnQgdG8gb3ZlcnJpZGUgdGhpcyBjaG9pY2UsIGNvbW1lbnQgb3V0IHRoaXMKKyMgZGlyZWN0aXZlOgorIworQWRkRGVmYXVsdENoYXJzZXQgVVRGLTgKKworIworIyBBZGRUeXBlIGFsbG93cyB5b3UgdG8gYWRkIHRvIG9yIG92ZXJyaWRlIHRoZSBNSU1FIGNvbmZpZ3VyYXRpb24KKyMgZmlsZSBtaW1lLnR5cGVzIGZvciBzcGVjaWZpYyBmaWxlIHR5cGVzLgorIworI0FkZFR5cGUgYXBwbGljYXRpb24veC10YXIgLnRnegorCisjCisjIEFkZEVuY29kaW5nIGFsbG93cyB5b3UgdG8gaGF2ZSBjZXJ0YWluIGJyb3dzZXJzIHVuY29tcHJlc3MKKyMgaW5mb3JtYXRpb24gb24gdGhlIGZseS4gTm90ZTogTm90IGFsbCBicm93c2VycyBzdXBwb3J0IHRoaXMuCisjIERlc3BpdGUgdGhlIG5hbWUgc2ltaWxhcml0eSwgdGhlIGZvbGxvd2luZyBBZGQqIGRpcmVjdGl2ZXMgaGF2ZSBub3RoaW5nCisjIHRvIGRvIHdpdGggdGhlIEZhbmN5SW5kZXhpbmcgY3VzdG9taXphdGlvbiBkaXJlY3RpdmVzIGFib3ZlLgorIworI0FkZEVuY29kaW5nIHgtY29tcHJlc3MgLloKKyNBZGRFbmNvZGluZyB4LWd6aXAgLmd6IC50Z3oKKworIyBJZiB0aGUgQWRkRW5jb2RpbmcgZGlyZWN0aXZlcyBhYm92ZSBhcmUgY29tbWVudGVkLW91dCwgdGhlbiB5b3UKKyMgcHJvYmFibHkgc2hvdWxkIGRlZmluZSB0aG9zZSBleHRlbnNpb25zIHRvIGluZGljYXRlIG1lZGlhIHR5cGVzOgorIworQWRkVHlwZSBhcHBsaWNhdGlvbi94LWNvbXByZXNzIC5aCitBZGRUeXBlIGFwcGxpY2F0aW9uL3gtZ3ppcCAuZ3ogLnRnegorCisjCisjICAgTUlNRS10eXBlcyBmb3IgZG93bmxvYWRpbmcgQ2VydGlmaWNhdGVzIGFuZCBDUkxzCisjCitBZGRUeXBlIGFwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0IC5jcnQKK0FkZFR5cGUgYXBwbGljYXRpb24veC1wa2NzNy1jcmwgICAgLmNybAorCisjCisjIEFkZEhhbmRsZXIgYWxsb3dzIHlvdSB0byBtYXAgY2VydGFpbiBmaWxlIGV4dGVuc2lvbnMgdG8gImhhbmRsZXJzIjoKKyMgYWN0aW9ucyB1bnJlbGF0ZWQgdG8gZmlsZXR5cGUuIFRoZXNlIGNhbiBiZSBlaXRoZXIgYnVpbHQgaW50byB0aGUgc2VydmVyCisjIG9yIGFkZGVkIHdpdGggdGhlIEFjdGlvbiBkaXJlY3RpdmUgKHNlZSBiZWxvdykKKyMKKyMgVG8gdXNlIENHSSBzY3JpcHRzIG91dHNpZGUgb2YgU2NyaXB0QWxpYXNlZCBkaXJlY3RvcmllczoKKyMgKFlvdSB3aWxsIGFsc28gbmVlZCB0byBhZGQgIkV4ZWNDR0kiIHRvIHRoZSAiT3B0aW9ucyIgZGlyZWN0aXZlLikKKyMKKyNBZGRIYW5kbGVyIGNnaS1zY3JpcHQgLmNnaQorCisjCisjIEZvciBmaWxlcyB0aGF0IGluY2x1ZGUgdGhlaXIgb3duIEhUVFAgaGVhZGVyczoKKyMKKyNBZGRIYW5kbGVyIHNlbmQtYXMtaXMgYXNpcworCisjCisjIEZvciB0eXBlIG1hcHMgKG5lZ290aWF0ZWQgcmVzb3VyY2VzKToKKyMgKFRoaXMgaXMgZW5hYmxlZCBieSBkZWZhdWx0IHRvIGFsbG93IHRoZSBBcGFjaGUgIkl0IFdvcmtlZCIgcGFnZQorIyAgdG8gYmUgZGlzdHJpYnV0ZWQgaW4gbXVsdGlwbGUgbGFuZ3VhZ2VzLikKKyMKK0FkZEhhbmRsZXIgdHlwZS1tYXAgdmFyCisKKyMKKyMgRmlsdGVycyBhbGxvdyB5b3UgdG8gcHJvY2VzcyBjb250ZW50IGJlZm9yZSBpdCBpcyBzZW50IHRvIHRoZSBjbGllbnQuCisjCisjIFRvIHBhcnNlIC5zaHRtbCBmaWxlcyBmb3Igc2VydmVyLXNpZGUgaW5jbHVkZXMgKFNTSSk6CisjIChZb3Ugd2lsbCBhbHNvIG5lZWQgdG8gYWRkICJJbmNsdWRlcyIgdG8gdGhlICJPcHRpb25zIiBkaXJlY3RpdmUuKQorIworQWRkVHlwZSB0ZXh0L2h0bWwgLnNodG1sCitBZGRPdXRwdXRGaWx0ZXIgSU5DTFVERVMgLnNodG1sCisKKyMKKyMgQWN0aW9uIGxldHMgeW91IGRlZmluZSBtZWRpYSB0eXBlcyB0aGF0IHdpbGwgZXhlY3V0ZSBhIHNjcmlwdCB3aGVuZXZlcgorIyBhIG1hdGNoaW5nIGZpbGUgaXMgY2FsbGVkLiBUaGlzIGVsaW1pbmF0ZXMgdGhlIG5lZWQgZm9yIHJlcGVhdGVkIFVSTAorIyBwYXRobmFtZXMgZm9yIG9mdC11c2VkIENHSSBmaWxlIHByb2Nlc3NvcnMuCisjIEZvcm1hdDogQWN0aW9uIG1lZGlhL3R5cGUgL2NnaS1zY3JpcHQvbG9jYXRpb24KKyMgRm9ybWF0OiBBY3Rpb24gaGFuZGxlci1uYW1lIC9jZ2ktc2NyaXB0L2xvY2F0aW9uCisjCisKKyMKKyMgQ3VzdG9taXphYmxlIGVycm9yIHJlc3BvbnNlcyBjb21lIGluIHRocmVlIGZsYXZvcnM6CisjIDEpIHBsYWluIHRleHQgMikgbG9jYWwgcmVkaXJlY3RzIDMpIGV4dGVybmFsIHJlZGlyZWN0cworIworIyBTb21lIGV4YW1wbGVzOgorI0Vycm9yRG9jdW1lbnQgNTAwICJUaGUgc2VydmVyIG1hZGUgYSBib28gYm9vLiIKKyNFcnJvckRvY3VtZW50IDQwNCAvbWlzc2luZy5odG1sCisjRXJyb3JEb2N1bWVudCA0MDQgIi9jZ2ktYmluL21pc3NpbmdfaGFuZGxlci5wbCIKKyNFcnJvckRvY3VtZW50IDQwMiBodHRwOi8vd3d3LmV4YW1wbGUuY29tL3N1YnNjcmlwdGlvbl9pbmZvLmh0bWwKKyMKKworIworIyBQdXR0aW5nIHRoaXMgYWxsIHRvZ2V0aGVyLCB3ZSBjYW4gaW50ZXJuYXRpb25hbGl6ZSBlcnJvciByZXNwb25zZXMuCisjCisjIFdlIHVzZSBBbGlhcyB0byByZWRpcmVjdCBhbnkgL2Vycm9yL0hUVFBfPGVycm9yPi5odG1sLnZhciByZXNwb25zZSB0bworIyBvdXIgY29sbGVjdGlvbiBvZiBieS1lcnJvciBtZXNzYWdlIG11bHRpLWxhbmd1YWdlIGNvbGxlY3Rpb25zLiAgV2UgdXNlIAorIyBpbmNsdWRlcyB0byBzdWJzdGl0dXRlIHRoZSBhcHByb3ByaWF0ZSB0ZXh0LgorIworIyBZb3UgY2FuIG1vZGlmeSB0aGUgbWVzc2FnZXMnIGFwcGVhcmFuY2Ugd2l0aG91dCBjaGFuZ2luZyBhbnkgb2YgdGhlCisjIGRlZmF1bHQgSFRUUF88ZXJyb3I+Lmh0bWwudmFyIGZpbGVzIGJ5IGFkZGluZyB0aGUgbGluZToKKyMKKyMgICBBbGlhcyAvZXJyb3IvaW5jbHVkZS8gIi95b3VyL2luY2x1ZGUvcGF0aC8iCisjCisjIHdoaWNoIGFsbG93cyB5b3UgdG8gY3JlYXRlIHlvdXIgb3duIHNldCBvZiBmaWxlcyBieSBzdGFydGluZyB3aXRoIHRoZQorIyAvdmFyL3d3dy9lcnJvci9pbmNsdWRlLyBmaWxlcyBhbmQKKyMgY29weWluZyB0aGVtIHRvIC95b3VyL2luY2x1ZGUvcGF0aC8sIGV2ZW4gb24gYSBwZXItVmlydHVhbEhvc3QgYmFzaXMuCisjCisKK0FsaWFzIC9lcnJvci8gIi92YXIvd3d3L2Vycm9yLyIKKworPElmTW9kdWxlIG1vZF9uZWdvdGlhdGlvbi5jPgorPElmTW9kdWxlIG1vZF9pbmNsdWRlLmM+CisgICAgPERpcmVjdG9yeSAiL3Zhci93d3cvZXJyb3IiPgorICAgICAgICBBbGxvd092ZXJyaWRlIE5vbmUKKyAgICAgICAgT3B0aW9ucyBJbmNsdWRlc05vRXhlYworICAgICAgICBBZGRPdXRwdXRGaWx0ZXIgSW5jbHVkZXMgaHRtbAorICAgICAgICBBZGRIYW5kbGVyIHR5cGUtbWFwIHZhcgorICAgICAgICBPcmRlciBhbGxvdyxkZW55CisgICAgICAgIEFsbG93IGZyb20gYWxsCisgICAgICAgIExhbmd1YWdlUHJpb3JpdHkgZW4gZXMgZGUgZnIKKyAgICAgICAgRm9yY2VMYW5ndWFnZVByaW9yaXR5IFByZWZlciBGYWxsYmFjaworICAgIDwvRGlyZWN0b3J5PgorCisjICAgIEVycm9yRG9jdW1lbnQgNDAwIC9lcnJvci9IVFRQX0JBRF9SRVFVRVNULmh0bWwudmFyCisjICAgIEVycm9yRG9jdW1lbnQgNDAxIC9lcnJvci9IVFRQX1VOQVVUSE9SSVpFRC5odG1sLnZhcgorIyAgICBFcnJvckRvY3VtZW50IDQwMyAvZXJyb3IvSFRUUF9GT1JCSURERU4uaHRtbC52YXIKKyMgICAgRXJyb3JEb2N1bWVudCA0MDQgL2Vycm9yL0hUVFBfTk9UX0ZPVU5ELmh0bWwudmFyCisjICAgIEVycm9yRG9jdW1lbnQgNDA1IC9lcnJvci9IVFRQX01FVEhPRF9OT1RfQUxMT1dFRC5odG1sLnZhcgorIyAgICBFcnJvckRvY3VtZW50IDQwOCAvZXJyb3IvSFRUUF9SRVFVRVNUX1RJTUVfT1VULmh0bWwudmFyCisjICAgIEVycm9yRG9jdW1lbnQgNDEwIC9lcnJvci9IVFRQX0dPTkUuaHRtbC52YXIKKyMgICAgRXJyb3JEb2N1bWVudCA0MTEgL2Vycm9yL0hUVFBfTEVOR1RIX1JFUVVJUkVELmh0bWwudmFyCisjICAgIEVycm9yRG9jdW1lbnQgNDEyIC9lcnJvci9IVFRQX1BSRUNPTkRJVElPTl9GQUlMRUQuaHRtbC52YXIKKyMgICAgRXJyb3JEb2N1bWVudCA0MTMgL2Vycm9yL0hUVFBfUkVRVUVTVF9FTlRJVFlfVE9PX0xBUkdFLmh0bWwudmFyCisjICAgIEVycm9yRG9jdW1lbnQgNDE0IC9lcnJvci9IVFRQX1JFUVVFU1RfVVJJX1RPT19MQVJHRS5odG1sLnZhcgorIyAgICBFcnJvckRvY3VtZW50IDQxNSAvZXJyb3IvSFRUUF9VTlNVUFBPUlRFRF9NRURJQV9UWVBFLmh0bWwudmFyCisjICAgIEVycm9yRG9jdW1lbnQgNTAwIC9lcnJvci9IVFRQX0lOVEVSTkFMX1NFUlZFUl9FUlJPUi5odG1sLnZhcgorIyAgICBFcnJvckRvY3VtZW50IDUwMSAvZXJyb3IvSFRUUF9OT1RfSU1QTEVNRU5URUQuaHRtbC52YXIKKyMgICAgRXJyb3JEb2N1bWVudCA1MDIgL2Vycm9yL0hUVFBfQkFEX0dBVEVXQVkuaHRtbC52YXIKKyMgICAgRXJyb3JEb2N1bWVudCA1MDMgL2Vycm9yL0hUVFBfU0VSVklDRV9VTkFWQUlMQUJMRS5odG1sLnZhcgorIyAgICBFcnJvckRvY3VtZW50IDUwNiAvZXJyb3IvSFRUUF9WQVJJQU5UX0FMU09fVkFSSUVTLmh0bWwudmFyCisKKzwvSWZNb2R1bGU+Cis8L0lmTW9kdWxlPgorCisjCisjIFRoZSBmb2xsb3dpbmcgZGlyZWN0aXZlcyBtb2RpZnkgbm9ybWFsIEhUVFAgcmVzcG9uc2UgYmVoYXZpb3IgdG8KKyMgaGFuZGxlIGtub3duIHByb2JsZW1zIHdpdGggYnJvd3NlciBpbXBsZW1lbnRhdGlvbnMuCisjCitCcm93c2VyTWF0Y2ggIk1vemlsbGEvMiIgbm9rZWVwYWxpdmUKK0Jyb3dzZXJNYXRjaCAiTVNJRSA0XC4wYjI7IiBub2tlZXBhbGl2ZSBkb3duZ3JhZGUtMS4wIGZvcmNlLXJlc3BvbnNlLTEuMAorQnJvd3Nlck1hdGNoICJSZWFsUGxheWVyIDRcLjAiIGZvcmNlLXJlc3BvbnNlLTEuMAorQnJvd3Nlck1hdGNoICJKYXZhLzFcLjAiIGZvcmNlLXJlc3BvbnNlLTEuMAorQnJvd3Nlck1hdGNoICJKREsvMVwuMCIgZm9yY2UtcmVzcG9uc2UtMS4wCisKKyMKKyMgVGhlIGZvbGxvd2luZyBkaXJlY3RpdmUgZGlzYWJsZXMgcmVkaXJlY3RzIG9uIG5vbi1HRVQgcmVxdWVzdHMgZm9yCisjIGEgZGlyZWN0b3J5IHRoYXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgdHJhaWxpbmcgc2xhc2guICBUaGlzIGZpeGVzIGEgCisjIHByb2JsZW0gd2l0aCBNaWNyb3NvZnQgV2ViRm9sZGVycyB3aGljaCBkb2VzIG5vdCBhcHByb3ByaWF0ZWx5IGhhbmRsZSAKKyMgcmVkaXJlY3RzIGZvciBmb2xkZXJzIHdpdGggREFWIG1ldGhvZHMuCisjIFNhbWUgZGVhbCB3aXRoIEFwcGxlJ3MgREFWIGZpbGVzeXN0ZW0gYW5kIEdub21lIFZGUyBzdXBwb3J0IGZvciBEQVYuCisjCitCcm93c2VyTWF0Y2ggIk1pY3Jvc29mdCBEYXRhIEFjY2VzcyBJbnRlcm5ldCBQdWJsaXNoaW5nIFByb3ZpZGVyIiByZWRpcmVjdC1jYXJlZnVsbHkKK0Jyb3dzZXJNYXRjaCAiTVMgRnJvbnRQYWdlIiByZWRpcmVjdC1jYXJlZnVsbHkKK0Jyb3dzZXJNYXRjaCAiXldlYkRyaXZlIiByZWRpcmVjdC1jYXJlZnVsbHkKK0Jyb3dzZXJNYXRjaCAiXldlYkRBVkZTLzEuWzAxMjNdIiByZWRpcmVjdC1jYXJlZnVsbHkKK0Jyb3dzZXJNYXRjaCAiXmdub21lLXZmcy8xLjAiIHJlZGlyZWN0LWNhcmVmdWxseQorQnJvd3Nlck1hdGNoICJeWE1MIFNweSIgcmVkaXJlY3QtY2FyZWZ1bGx5CitCcm93c2VyTWF0Y2ggIl5EcmVhbXdlYXZlci1XZWJEQVYtU0NNMSIgcmVkaXJlY3QtY2FyZWZ1bGx5CisKKyMKKyMgQWxsb3cgc2VydmVyIHN0YXR1cyByZXBvcnRzIGdlbmVyYXRlZCBieSBtb2Rfc3RhdHVzLAorIyB3aXRoIHRoZSBVUkwgb2YgaHR0cDovL3NlcnZlcm5hbWUvc2VydmVyLXN0YXR1cworIyBDaGFuZ2UgdGhlICIuZXhhbXBsZS5jb20iIHRvIG1hdGNoIHlvdXIgZG9tYWluIHRvIGVuYWJsZS4KKyMKKyM8TG9jYXRpb24gL3NlcnZlci1zdGF0dXM+CisjICAgIFNldEhhbmRsZXIgc2VydmVyLXN0YXR1cworIyAgICBPcmRlciBkZW55LGFsbG93CisjICAgIERlbnkgZnJvbSBhbGwKKyMgICAgQWxsb3cgZnJvbSAuZXhhbXBsZS5jb20KKyM8L0xvY2F0aW9uPgorCisjCisjIEFsbG93IHJlbW90ZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiByZXBvcnRzLCB3aXRoIHRoZSBVUkwgb2YKKyMgIGh0dHA6Ly9zZXJ2ZXJuYW1lL3NlcnZlci1pbmZvIChyZXF1aXJlcyB0aGF0IG1vZF9pbmZvLmMgYmUgbG9hZGVkKS4KKyMgQ2hhbmdlIHRoZSAiLmV4YW1wbGUuY29tIiB0byBtYXRjaCB5b3VyIGRvbWFpbiB0byBlbmFibGUuCisjCisjPExvY2F0aW9uIC9zZXJ2ZXItaW5mbz4KKyMgICAgU2V0SGFuZGxlciBzZXJ2ZXItaW5mbworIyAgICBPcmRlciBkZW55LGFsbG93CisjICAgIERlbnkgZnJvbSBhbGwKKyMgICAgQWxsb3cgZnJvbSAuZXhhbXBsZS5jb20KKyM8L0xvY2F0aW9uPgorCisjCisjIFByb3h5IFNlcnZlciBkaXJlY3RpdmVzLiBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lcyB0bworIyBlbmFibGUgdGhlIHByb3h5IHNlcnZlcjoKKyMKKyM8SWZNb2R1bGUgbW9kX3Byb3h5LmM+CisjUHJveHlSZXF1ZXN0cyBPbgorIworIzxQcm94eSAqPgorIyAgICBPcmRlciBkZW55LGFsbG93CisjICAgIERlbnkgZnJvbSBhbGwKKyMgICAgQWxsb3cgZnJvbSAuZXhhbXBsZS5jb20KKyM8L1Byb3h5PgorCisjCisjIEVuYWJsZS9kaXNhYmxlIHRoZSBoYW5kbGluZyBvZiBIVFRQLzEuMSAiVmlhOiIgaGVhZGVycy4KKyMgKCJGdWxsIiBhZGRzIHRoZSBzZXJ2ZXIgdmVyc2lvbjsgIkJsb2NrIiByZW1vdmVzIGFsbCBvdXRnb2luZyBWaWE6IGhlYWRlcnMpCisjIFNldCB0byBvbmUgb2Y6IE9mZiB8IE9uIHwgRnVsbCB8IEJsb2NrCisjCisjUHJveHlWaWEgT24KKworIworIyBUbyBlbmFibGUgYSBjYWNoZSBvZiBwcm94aWVkIGNvbnRlbnQsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmVzLgorIyBTZWUgaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjIvbW9kL21vZF9jYWNoZS5odG1sIGZvciBtb3JlIGRldGFpbHMuCisjCisjPElmTW9kdWxlIG1vZF9kaXNrX2NhY2hlLmM+CisjICAgQ2FjaGVFbmFibGUgZGlzayAvCisjICAgQ2FjaGVSb290ICIvdmFyL2NhY2hlL21vZF9wcm94eSIKKyM8L0lmTW9kdWxlPgorIworCisjPC9JZk1vZHVsZT4KKyMgRW5kIG9mIHByb3h5IGRpcmVjdGl2ZXMuCisKKyMjIyBTZWN0aW9uIDM6IFZpcnR1YWwgSG9zdHMKKyMKKyMgVmlydHVhbEhvc3Q6IElmIHlvdSB3YW50IHRvIG1haW50YWluIG11bHRpcGxlIGRvbWFpbnMvaG9zdG5hbWVzIG9uIHlvdXIKKyMgbWFjaGluZSB5b3UgY2FuIHNldHVwIFZpcnR1YWxIb3N0IGNvbnRhaW5lcnMgZm9yIHRoZW0uIE1vc3QgY29uZmlndXJhdGlvbnMKKyMgdXNlIG9ubHkgbmFtZS1iYXNlZCB2aXJ0dWFsIGhvc3RzIHNvIHRoZSBzZXJ2ZXIgZG9lc24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0CisjIElQIGFkZHJlc3Nlcy4gVGhpcyBpcyBpbmRpY2F0ZWQgYnkgdGhlIGFzdGVyaXNrcyBpbiB0aGUgZGlyZWN0aXZlcyBiZWxvdy4KKyMKKyMgUGxlYXNlIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBhdCAKKyMgPFVSTDpodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMi92aG9zdHMvPgorIyBmb3IgZnVydGhlciBkZXRhaWxzIGJlZm9yZSB5b3UgdHJ5IHRvIHNldHVwIHZpcnR1YWwgaG9zdHMuCisjCisjIFlvdSBtYXkgdXNlIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uICctUycgdG8gdmVyaWZ5IHlvdXIgdmlydHVhbCBob3N0CisjIGNvbmZpZ3VyYXRpb24uCisKKyMKKyMgVXNlIG5hbWUtYmFzZWQgdmlydHVhbCBob3N0aW5nLgorIworI05hbWVWaXJ0dWFsSG9zdCAqOjgwCisjCisjIE5PVEU6IE5hbWVWaXJ0dWFsSG9zdCBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IGEgcG9ydCBzcGVjaWZpZXIgCisjIChlLmcuIDo4MCkgaWYgbW9kX3NzbCBpcyBiZWluZyB1c2VkLCBkdWUgdG8gdGhlIG5hdHVyZSBvZiB0aGUKKyMgU1NMIHByb3RvY29sLgorIworCisjCisjIFZpcnR1YWxIb3N0IGV4YW1wbGU6CisjIEFsbW9zdCBhbnkgQXBhY2hlIGRpcmVjdGl2ZSBtYXkgZ28gaW50byBhIFZpcnR1YWxIb3N0IGNvbnRhaW5lci4KKyMgVGhlIGZpcnN0IFZpcnR1YWxIb3N0IHNlY3Rpb24gaXMgdXNlZCBmb3IgcmVxdWVzdHMgd2l0aG91dCBhIGtub3duCisjIHNlcnZlciBuYW1lLgorIworIzxWaXJ0dWFsSG9zdCAqOjgwPgorIyAgICBTZXJ2ZXJBZG1pbiB3ZWJtYXN0ZXJAZHVtbXktaG9zdC5leGFtcGxlLmNvbQorIyAgICBEb2N1bWVudFJvb3QgL3d3dy9kb2NzL2R1bW15LWhvc3QuZXhhbXBsZS5jb20KKyMgICAgU2VydmVyTmFtZSBkdW1teS1ob3N0LmV4YW1wbGUuY29tCisjICAgIEVycm9yTG9nIGxvZ3MvZHVtbXktaG9zdC5leGFtcGxlLmNvbS1lcnJvcl9sb2cKKyMgICAgQ3VzdG9tTG9nIGxvZ3MvZHVtbXktaG9zdC5leGFtcGxlLmNvbS1hY2Nlc3NfbG9nIGNvbW1vbgorIzwvVmlydHVhbEhvc3Q+CmRpZmYgLS1naXQgYS9ob3Jpem9uL2NvbmYvbWFuYWdlLXNpdGUucHkgYi9ob3Jpem9uL2NvbmYvbWFuYWdlLXNpdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFiYmQyYgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vY29uZi9tYW5hZ2Utc2l0ZS5weQpAQCAtMCwwICsxLDI2IEBACisjIS91c3IvYmluL2VudiBweXRob24KKworeyUtIHNldCBhcHAgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ2hvcml6b246c2VydmVyOmFwcDonK2FwcF9uYW1lKSAlfQorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKworZnJvbSBvcy5wYXRoIGltcG9ydCBqb2luCisKK3BhdGggPSAnL3Nydi9ob3Jpem9uJworCitzeXMucGF0aC5hcHBlbmQoam9pbihwYXRoLCAnbGliJywgJ3B5dGhvbjIuNycsICdzaXRlLXBhY2thZ2VzJykpCitzeXMucGF0aC5hcHBlbmQoam9pbihwYXRoLCAnc2l0ZXMnLCAne3sgYXBwX25hbWUgfX0nLCAnbGliJykpCisKK3slLSBpZiBhcHAucGx1Z2luIGlzIGRlZmluZWQgJX0KK3slLSBmb3IgcGx1Z2luX25hbWUsIHBsdWdpbiBpbiBhcHAucGx1Z2luLml0ZXJpdGVtcygpICV9CitzeXMucGF0aC5hcHBlbmQoJy9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9wbHVnaW5zL3t7IHBsdWdpbl9uYW1lIH19JykKK3slLSBlbmRmb3IgJX0KK3slLSBlbmRpZiAlfQorCitmcm9tIGRqYW5nby5jb3JlLm1hbmFnZW1lbnQgaW1wb3J0IGV4ZWN1dGVfZnJvbV9jb21tYW5kX2xpbmUKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBvcy5lbnZpcm9uLnNldGRlZmF1bHQoIkRKQU5HT19TRVRUSU5HU19NT0RVTEUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAib3BlbnN0YWNrX2Rhc2hib2FyZC5zZXR0aW5ncyIpCisgICAgZXhlY3V0ZV9mcm9tX2NvbW1hbmRfbGluZShzeXMuYXJndikKZGlmZiAtLWdpdCBhL2hvcml6b24vY29uZi9tYW5hZ2UucHkgYi9ob3Jpem9uL2NvbmYvbWFuYWdlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZTBiMDQKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2NvbmYvbWFuYWdlLnB5CkBAIC0wLDAgKzEsMjQgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgoreyUtIGZyb20gImhvcml6b24vbWFwLmppbmphIiBpbXBvcnQgc2VydmVyIHdpdGggY29udGV4dCAlfQorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKworc3lzLnBhdGguYXBwZW5kKCIvdXNyL3NoYXJlL29wZW5zdGFjay1kYXNoYm9hcmQiKSAKKworeyMgb2xkIHdheSAjfQoreyUtIGZvciBwbHVnaW4gaW4gc2VydmVyLmdldCgncGx1Z2lucycsIFtdKSAlfQorc3lzLnBhdGguYXBwZW5kKCcvc3J2L2hvcml6b24vcGx1Z2lucy97eyBwbHVnaW4ubmFtZSB9fScpCit7JS0gZW5kZm9yICV9CisKK3sjIG5ldyB3YXkgI30KK3slLSBmb3IgcGx1Z2luX25hbWUsIHBsdWdpbiBpbiBzZXJ2ZXIuZ2V0KCdwbHVnaW4nLCB7fSkuaXRlcml0ZW1zKCkgJX0KK3N5cy5wYXRoLmFwcGVuZCgnL3Nydi9ob3Jpem9uL3BsdWdpbnMve3sgcGx1Z2luX25hbWUgfX0nKQoreyUtIGVuZGZvciAlfQorCitmcm9tIGRqYW5nby5jb3JlLm1hbmFnZW1lbnQgaW1wb3J0IGV4ZWN1dGVfZnJvbV9jb21tYW5kX2xpbmUKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBvcy5lbnZpcm9uLnNldGRlZmF1bHQoIkRKQU5HT19TRVRUSU5HU19NT0RVTEUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAib3BlbnN0YWNrX2Rhc2hib2FyZC5zZXR0aW5ncyIpCisgICAgZXhlY3V0ZV9mcm9tX2NvbW1hbmRfbGluZShzeXMuYXJndikKZGlmZiAtLWdpdCBhL2hvcml6b24vY29uZi9vcGVuc3RhY2stZGFzaGJvYXJkLmNvbmYuRGViaWFuIGIvaG9yaXpvbi9jb25mL29wZW5zdGFjay1kYXNoYm9hcmQuY29uZi5EZWJpYW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY1YzlhYwotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vY29uZi9vcGVuc3RhY2stZGFzaGJvYXJkLmNvbmYuRGViaWFuCkBAIC0wLDAgKzEsMjQgQEAKK3slLSBmcm9tICJob3Jpem9uL21hcC5qaW5qYSIgaW1wb3J0IHNlcnZlciB3aXRoIGNvbnRleHQgJX0KKworV1NHSVNjcmlwdEFsaWFzIC8gL3Vzci9zaGFyZS9vcGVuc3RhY2stZGFzaGJvYXJkL29wZW5zdGFja19kYXNoYm9hcmQvd3NnaS9kamFuZ28ud3NnaQorV1NHSURhZW1vblByb2Nlc3MgaG9yaXpvbiB1c2VyPWhvcml6b24gZ3JvdXA9aG9yaXpvbiBwcm9jZXNzZXM9e3sgc2VydmVyLndzZ2kucHJvY2Vzc2VzIH19IHRocmVhZHM9e3sgc2VydmVyLndzZ2kudGhyZWFkcyB9fQorV1NHSVByb2Nlc3NHcm91cCBob3Jpem9uCisKK0FsaWFzIC9zdGF0aWMgL3Vzci9zaGFyZS9vcGVuc3RhY2stZGFzaGJvYXJkL3N0YXRpYworCis8RGlyZWN0b3J5IC91c3Ivc2hhcmUvb3BlbnN0YWNrLWRhc2hib2FyZC9vcGVuc3RhY2tfZGFzaGJvYXJkL3dzZ2k+CisgIE9yZGVyIGFsbG93LGRlbnkKKyAgQWxsb3cgZnJvbSBhbGwKKzwvRGlyZWN0b3J5PgorCis8RGlyZWN0b3J5IC91c3Ivc2hhcmUvb3BlbnN0YWNrLWRhc2hib2FyZC9zdGF0aWM+CisgIDxJZk1vZHVsZSBtb2RfZXhwaXJlcy5jPgorICAgIEV4cGlyZXNBY3RpdmUgT24KKyAgICBFeHBpcmVzRGVmYXVsdCAiYWNjZXNzIDYgbW9udGgiCisgIDwvSWZNb2R1bGU+CisgIDxJZk1vZHVsZSBtb2RfZGVmbGF0ZS5jPgorICAgIFNldE91dHB1dEZpbHRlciBERUZMQVRFCisgIDwvSWZNb2R1bGU+CisKKyAgUmVxdWlyZSBhbGwgZ3JhbnRlZAorPC9EaXJlY3Rvcnk+CmRpZmYgLS1naXQgYS9ob3Jpem9uL2NvbmYvb3BlbnN0YWNrLWRhc2hib2FyZC5jb25mLlJlZEhhdCBiL2hvcml6b24vY29uZi9vcGVuc3RhY2stZGFzaGJvYXJkLmNvbmYuUmVkSGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTkxOTQKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2NvbmYvb3BlbnN0YWNrLWRhc2hib2FyZC5jb25mLlJlZEhhdApAQCAtMCwwICsxLDEwNSBAQAoreyUgZnJvbSAiaG9yaXpvbi9tYXAuamluamEiIGltcG9ydCBzZXJ2ZXIgd2l0aCBjb250ZXh0ICV9CisKK3slIGlmIG5vdCBzZXJ2ZXIuZ2V0KCdzc2wnLCB7fSkuZ2V0KCdlbmFibGVkJywgRmFsc2UpICV9CisKK1dTR0lEYWVtb25Qcm9jZXNzIGRhc2hib2FyZAorV1NHSVByb2Nlc3NHcm91cCBkYXNoYm9hcmQKK1dTR0lTb2NrZXRQcmVmaXggcnVuL3dzZ2kKKworV1NHSVNjcmlwdEFsaWFzIC8gL3Vzci9zaGFyZS9vcGVuc3RhY2stZGFzaGJvYXJkL29wZW5zdGFja19kYXNoYm9hcmQvd3NnaS9kamFuZ28ud3NnaQorQWxpYXMgL3N0YXRpYyAvdXNyL3NoYXJlL29wZW5zdGFjay1kYXNoYm9hcmQvc3RhdGljCisKKzxEaXJlY3RvcnkgL3Vzci9zaGFyZS9vcGVuc3RhY2stZGFzaGJvYXJkL29wZW5zdGFja19kYXNoYm9hcmQvd3NnaT4KKyAgPElmTW9kdWxlIG1vZF9kZWZsYXRlLmM+CisgICAgU2V0T3V0cHV0RmlsdGVyIERFRkxBVEUKKyAgICA8SWZNb2R1bGUgbW9kX2hlYWRlcnMuYz4KKyAgICAgICMgTWFrZSBzdXJlIHByb3hpZXMgZG9u4oCZdCBkZWxpdmVyIHRoZSB3cm9uZyBjb250ZW50CisgICAgICBIZWFkZXIgYXBwZW5kIFZhcnkgVXNlci1BZ2VudCBlbnY9IWRvbnQtdmFyeQorICAgIDwvSWZNb2R1bGU+CisgIDwvSWZNb2R1bGU+CisKKyAgT3JkZXIgYWxsb3csZGVueQorICBBbGxvdyBmcm9tIGFsbAorPC9EaXJlY3Rvcnk+CisKKzxEaXJlY3RvcnkgL3Vzci9zaGFyZS9vcGVuc3RhY2stZGFzaGJvYXJkL3N0YXRpYz4KKyAgPElmTW9kdWxlIG1vZF9leHBpcmVzLmM+CisgICAgRXhwaXJlc0FjdGl2ZSBPbgorICAgIEV4cGlyZXNEZWZhdWx0ICJhY2Nlc3MgNiBtb250aCIKKyAgPC9JZk1vZHVsZT4KKyAgPElmTW9kdWxlIG1vZF9kZWZsYXRlLmM+CisgICAgU2V0T3V0cHV0RmlsdGVyIERFRkxBVEUKKyAgPC9JZk1vZHVsZT4KKworICBPcmRlciBhbGxvdyxkZW55CisgIEFsbG93IGZyb20gYWxsCis8L0RpcmVjdG9yeT4KKworeyUgZWxzZSAlfQorCisjUmVkaXJlY3RQZXJtYW5lbnQgLyBodHRwczovL3t7IHNlcnZlci5ob3N0Lm5hbWUgfX0KKworV1NHSURhZW1vblByb2Nlc3MgZGFzaGJvYXJkCitXU0dJUHJvY2Vzc0dyb3VwIGRhc2hib2FyZAorV1NHSVNvY2tldFByZWZpeCBydW4vd3NnaQorCitXU0dJU2NyaXB0QWxpYXMgLyAvdXNyL3NoYXJlL29wZW5zdGFjay1kYXNoYm9hcmQvb3BlbnN0YWNrX2Rhc2hib2FyZC93c2dpL2RqYW5nby53c2dpCitBbGlhcyAvc3RhdGljIC91c3Ivc2hhcmUvb3BlbnN0YWNrLWRhc2hib2FyZC9zdGF0aWMKKworPERpcmVjdG9yeSAvdXNyL3NoYXJlL29wZW5zdGFjay1kYXNoYm9hcmQvb3BlbnN0YWNrX2Rhc2hib2FyZC93c2dpPgorICA8SWZNb2R1bGUgbW9kX2RlZmxhdGUuYz4KKyAgICBTZXRPdXRwdXRGaWx0ZXIgREVGTEFURQorICAgIDxJZk1vZHVsZSBtb2RfaGVhZGVycy5jPgorICAgICAgIyBNYWtlIHN1cmUgcHJveGllcyBkb27igJl0IGRlbGl2ZXIgdGhlIHdyb25nIGNvbnRlbnQKKyAgICAgIEhlYWRlciBhcHBlbmQgVmFyeSBVc2VyLUFnZW50IGVudj0hZG9udC12YXJ5CisgICAgPC9JZk1vZHVsZT4KKyAgPC9JZk1vZHVsZT4KKworICBPcmRlciBhbGxvdyxkZW55CisgIEFsbG93IGZyb20gYWxsCis8L0RpcmVjdG9yeT4KKworPERpcmVjdG9yeSAvdXNyL3NoYXJlL29wZW5zdGFjay1kYXNoYm9hcmQvc3RhdGljPgorICA8SWZNb2R1bGUgbW9kX2V4cGlyZXMuYz4KKyAgICBFeHBpcmVzQWN0aXZlIE9uCisgICAgRXhwaXJlc0RlZmF1bHQgImFjY2VzcyA2IG1vbnRoIgorICA8L0lmTW9kdWxlPgorICA8SWZNb2R1bGUgbW9kX2RlZmxhdGUuYz4KKyAgICBTZXRPdXRwdXRGaWx0ZXIgREVGTEFURQorICA8L0lmTW9kdWxlPgorCisgIE9yZGVyIGFsbG93LGRlbnkKKyAgQWxsb3cgZnJvbSBhbGwKKzwvRGlyZWN0b3J5PgorCis8VmlydHVhbEhvc3Qge3sgcGlsbGFyLmhvcml6b24uc2VydmVyLmJpbmQuYWRkcmVzcyB9fTo0NDM+CisgIFNlcnZlck5hbWUge3sgc2VydmVyLmhvc3QubmFtZSB9fQorCisgIFNTTEVuZ2luZSBPbgorICBTU0xDZXJ0aWZpY2F0ZUZpbGUge3sgc2VydmVyLmNlcnRzX2RpciB9fS97eyBzZXJ2ZXIuaG9zdC5uYW1lIH19LmNydAorICBTU0xDZXJ0aWZpY2F0ZUtleUZpbGUge3sgc2VydmVyLnByaXZhdGVfZGlyIH19L3t7IHNlcnZlci5ob3N0Lm5hbWUgfX0ua2V5CisgIFNTTENlcnRpZmljYXRlQ2hhaW5GaWxlIHt7IHNlcnZlci5jZXJ0c19kaXIgfX0ve3sgc2VydmVyLnNzbC5hdXRob3JpdHkgfX0tY2hhaW4uY3J0CisgIFNldEVudklmIFVzZXItQWdlbnQgIi4qTVNJRS4qIiBub2tlZXBhbGl2ZSBzc2wtdW5jbGVhbi1zaHV0ZG93bi8KKworIyAgV1NHSURhZW1vblByb2Nlc3MgZGFzaGJvYXJkCisjICBXU0dJUHJvY2Vzc0dyb3VwIGRhc2hib2FyZAorIyAgV1NHSVNvY2tldFByZWZpeCBydW4vd3NnaQorCisgIFdTR0lTY3JpcHRBbGlhcyAvIC91c3Ivc2hhcmUvb3BlbnN0YWNrLWRhc2hib2FyZC9vcGVuc3RhY2tfZGFzaGJvYXJkL3dzZ2kvZGphbmdvLndzZ2kKKyAgQWxpYXMgL3N0YXRpYyAvdXNyL3NoYXJlL29wZW5zdGFjay1kYXNoYm9hcmQvc3RhdGljCisKKyAgPERpcmVjdG9yeSAvdXNyL3NoYXJlL29wZW5zdGFjay1kYXNoYm9hcmQvb3BlbnN0YWNrX2Rhc2hib2FyZC93c2dpPgorICAgIDxJZk1vZHVsZSBtb2RfZGVmbGF0ZS5jPgorICAgICAgU2V0T3V0cHV0RmlsdGVyIERFRkxBVEUKKyAgICAgIDxJZk1vZHVsZSBtb2RfaGVhZGVycy5jPgorICAgICAgICAjIE1ha2Ugc3VyZSBwcm94aWVzIGRvbuKAmXQgZGVsaXZlciB0aGUgd3JvbmcgY29udGVudAorICAgICAgICBIZWFkZXIgYXBwZW5kIFZhcnkgVXNlci1BZ2VudCBlbnY9IWRvbnQtdmFyeQorICAgICAgPC9JZk1vZHVsZT4KKyAgICA8L0lmTW9kdWxlPgorCisgICAgT3JkZXIgYWxsb3csZGVueQorICAgIEFsbG93IGZyb20gYWxsCisgIDwvRGlyZWN0b3J5PgorPC9WaXJ0dWFsSG9zdD4KKworeyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ob3Jpem9uL2NvbmYvcG9ydHMuY29uZiBiL2hvcml6b24vY29uZi9wb3J0cy5jb25mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhZGM4YWMKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2NvbmYvcG9ydHMuY29uZgpAQCAtMCwwICsxLDE2IEBACit7JS0gZnJvbSAiaG9yaXpvbi9tYXAuamluamEiIGltcG9ydCBzZXJ2ZXIgd2l0aCBjb250ZXh0ICV9CisjIElmIHlvdSBqdXN0IGNoYW5nZSB0aGUgcG9ydCBvciBhZGQgbW9yZSBwb3J0cyBoZXJlLCB5b3Ugd2lsbCBsaWtlbHkgYWxzbworIyBoYXZlIHRvIGNoYW5nZSB0aGUgVmlydHVhbEhvc3Qgc3RhdGVtZW50IGluCisjIC9ldGMvYXBhY2hlMi9zaXRlcy1lbmFibGVkLzAwMC1kZWZhdWx0LmNvbmYKKworTGlzdGVuIHt7IHNlcnZlci5iaW5kLmFkZHJlc3MgfX06ODAKKworPElmTW9kdWxlIHNzbF9tb2R1bGU+CisgICAgICAgIExpc3RlbiB7eyBzZXJ2ZXIuYmluZC5hZGRyZXNzIH19OjQ0MworPC9JZk1vZHVsZT4KKworPElmTW9kdWxlIG1vZF9nbnV0bHMuYz4KKyAgICAgICAgTGlzdGVuIHt7IHNlcnZlci5iaW5kLmFkZHJlc3MgfX06NDQzCis8L0lmTW9kdWxlPgorCisjIHZpbTogc3ludGF4PWFwYWNoZSB0cz00IHN3PTQgc3RzPTQgc3Igbm9ldApkaWZmIC0tZ2l0IGEvaG9yaXpvbi9jb25mL3JlcXVpcmVtZW50cy50eHQgYi9ob3Jpem9uL2NvbmYvcmVxdWlyZW1lbnRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NThjOGJlCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9jb25mL3JlcXVpcmVtZW50cy50eHQKQEAgLTAsMCArMSw1MSBAQAorIyBQQlIgc2hvdWxkIGFsd2F5cyBhcHBlYXIgZmlyc3QKK3Bicj49MC42LCE9MC43LDwxLjAKKyMgSG9yaXpvbiBDb3JlIFJlcXVpcmVtZW50cworRGphbmdvPj0xLjQuMiw8MS43CitkamFuZ29fY29tcHJlc3Nvcj49MS40CitkamFuZ29fb3BlbnN0YWNrX2F1dGg+PTEuMS43CitkamFuZ28tcHlzY3NzPj0xLjAuMyAjIEJTRCBMaWNlbnNlICgyIGNsYXVzZSkKK2V2ZW50bGV0Pj0wLjE1LjEKK2h0dHBsaWIyPj0wLjcuNQoraXNvODYwMT49MC4xLjkKK2tvbWJ1Pj0yLjUuMAorIyBIb3Jpem9uIFV0aWxpdHkgUmVxdWlyZW1lbnRzCisjIGZvciBTRUNVUkVfS0VZIGdlbmVyYXRpb24KK2xvY2tmaWxlPj0wLjgKK25ldGFkZHI+PTAuNy4xMgorcHlTY3NzPj0xLjIuMSw8MS4zICMgTUlUIExpY2Vuc2UKK3B5dGhvbi1jZWlsb21ldGVyY2xpZW50Pj0xLjAuNgorcHl0aG9uLWNpbmRlcmNsaWVudD49MS4xLjAKK3B5dGhvbi1nbGFuY2VjbGllbnQ+PTAuMTQuMAorcHl0aG9uLWhlYXRjbGllbnQ+PTAuMi45CitweXRob24ta2V5c3RvbmVjbGllbnQ+PTAuMTAuMAorcHl0aG9uLW5ldXRyb25jbGllbnQ+PTIuMy42LDwzCitweXRob24tbm92YWNsaWVudD49Mi4xOC4wCitweXRob24tc2FoYXJhY2xpZW50Pj0wLjcuMworcHl0aG9uLXN3aWZ0Y2xpZW50Pj0yLjIuMAorcHl0aG9uLXRyb3ZlY2xpZW50Pj0xLjAuNAorcHl0egorc2l4Pj0xLjcuMAorcmVxdWVzdHM9PTIuMS4wCityYXZlbj49My41LjIKK2d1bmljb3JuPj0xOC4wCitvc2xvLmkxOG4KK3hzdGF0aWM+PTEuMC4wICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtYW5ndWxhcj49MS4yLjEuMSAjIE1JVCBMaWNlbnNlCit4c3RhdGljLWFuZ3VsYXItY29va2llcz49MS4yLjEuMSAjIE1JVCBMaWNlbnNlCit4c3RhdGljLWFuZ3VsYXItbW9jaz49MS4yLjEuMSAjIE1JVCBMaWNlbnNlCit4c3RhdGljLWJvb3RzdHJhcC1kYXRlcGlja2VyPj0xLjMuMS4wICMgQXBhY2hlIDIuMCBMaWNlbnNlCit4c3RhdGljLWJvb3RzdHJhcC1zY3NzPj0zICMgQXBhY2hlIDIuMCBMaWNlbnNlCit4c3RhdGljLWQzPj0zLjEuNi4yICMgQlNEIExpY2Vuc2UgKDMgY2xhdXNlKQoreHN0YXRpYy1ob2dhbj49Mi4wLjAuMiAjIEFwYWNoZSAyLjAgTGljZW5zZQoreHN0YXRpYy1mb250LWF3ZXNvbWU+PTQuMS4wICMgU0lMIE9GTCAxLjEgTGljZW5zZSwgTUlUIExpY2Vuc2UKK3hzdGF0aWMtamFzbWluZT49MS4zLjEuMSAjIE1JVCBMaWNlbnNlCit4c3RhdGljLWpxdWVyeT49MS43LjIgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1qcXVlcnktbWlncmF0ZT49MS4yLjEuMSAjIE1JVCBMaWNlbnNlCit4c3RhdGljLWpxdWVyeS5xdWlja3NlYXJjaD49Mi4wLjMuMSAjIE1JVCBMaWNlbnNlCit4c3RhdGljLWpxdWVyeS50YWJsZXNvcnRlcj49Mi4wLjViLjAgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1qcXVlcnktdWk+PTEuMTAuMSAjIE1JVCBMaWNlbnNlCit4c3RhdGljLWpzZW5jcnlwdD49Mi4wLjAuMiAjIE1JVCBMaWNlbnNlCit4c3RhdGljLXF1bml0Pj0xLjE0LjAuMiAjIE1JVCBMaWNlbnNlCit4c3RhdGljLXJpY2tzaGF3Pj0xLjUuMCAjIEJTRCBMaWNlbnNlIChwcmlvcikKK3hzdGF0aWMtc3Bpbj49MS4yLjUuMiAjIE1JVCBMaWNlbnNlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9jb25mL3NlcnZlci53c2dpIGIvaG9yaXpvbi9jb25mL3NlcnZlci53c2dpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2N2ZjYjcKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2NvbmYvc2VydmVyLndzZ2kKQEAgLTAsMCArMSwzMiBAQAorCit7JS0gc2V0IGFwcCA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnaG9yaXpvbjpzZXJ2ZXI6YXBwOicrYXBwX25hbWUpICV9CisKKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK3N5cy5zdGRvdXQgPSBzeXMuc3RkZXJyCisKK3N5cy5wYXRoLmFwcGVuZCgnL3Nydi9ob3Jpem9uL3NpdGUnKQorCitpbXBvcnQgc2l0ZQorCitzaXRlLmFkZHNpdGVkaXIoJy9zcnYvaG9yaXpvbi9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMnKQorCisjIEF2b2lkIGBgW0Vycm5vIDEzXSBQZXJtaXNzaW9uIGRlbmllZDogJy92YXIvd3d3Ly5weXRob24tZWdncydgYCBtZXNzYWdlcworCitpbXBvcnQgb3MKKyNvcy5lbnZpcm9uWydQWVRIT05fRUdHX0NBQ0hFJ10gPSAnL3d3dy9sb3N0cXVlcnkuY29tL21vZF93c2dpL2VnZy1jYWNoZScKKworc3lzLnBhdGguYXBwZW5kKCcvc3J2L2hvcml6b24vc2l0ZScpCit7JS0gaWYgcGlsbGFyLmhvcml6b24uc2VydmVyLnBsdWdpbnMgaXMgZGVmaW5lZCAlfQoreyUtIGZvciBwbHVnaW4gaW4gcGlsbGFyLmhvcml6b24uc2VydmVyLnBsdWdpbnMgJX0KK3N5cy5wYXRoLmFwcGVuZCgnL3Nydi9ob3Jpem9uL3BsdWdpbnMve3sgcGx1Z2luLm5hbWUgfX0nKQoreyUtIGVuZGZvciAlfQoreyUtIGVuZGlmICV9CisKK29zLmVudmlyb25bJ0RKQU5HT19TRVRUSU5HU19NT0RVTEUnXSA9ICdvcGVuc3RhY2tfZGFzaGJvYXJkLnNldHRpbmdzJworCitpbXBvcnQgZGphbmdvLmNvcmUuaGFuZGxlcnMud3NnaQorCithcHBsaWNhdGlvbiA9IGRqYW5nby5jb3JlLmhhbmRsZXJzLndzZ2kuV1NHSUhhbmRsZXIoKQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9jb25mL3NzbC5jb25mLlJlZEhhdCBiL2hvcml6b24vY29uZi9zc2wuY29uZi5SZWRIYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTZjZTNiYgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vY29uZi9zc2wuY29uZi5SZWRIYXQKQEAgLTAsMCArMSwyMjIgQEAKKyMKKyMgVGhpcyBpcyB0aGUgQXBhY2hlIHNlcnZlciBjb25maWd1cmF0aW9uIGZpbGUgcHJvdmlkaW5nIFNTTCBzdXBwb3J0LgorIyBJdCBjb250YWlucyB0aGUgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIHRvIGluc3RydWN0IHRoZSBzZXJ2ZXIgaG93IHRvCisjIHNlcnZlIHBhZ2VzIG92ZXIgYW4gaHR0cHMgY29ubmVjdGlvbi4gRm9yIGRldGFpbGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGVzZSAKKyMgZGlyZWN0aXZlcyBzZWUgPFVSTDpodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMi9tb2QvbW9kX3NzbC5odG1sPgorIyAKKyMgRG8gTk9UIHNpbXBseSByZWFkIHRoZSBpbnN0cnVjdGlvbnMgaW4gaGVyZSB3aXRob3V0IHVuZGVyc3RhbmRpbmcKKyMgd2hhdCB0aGV5IGRvLiAgVGhleSdyZSBoZXJlIG9ubHkgYXMgaGludHMgb3IgcmVtaW5kZXJzLiAgSWYgeW91IGFyZSB1bnN1cmUKKyMgY29uc3VsdCB0aGUgb25saW5lIGRvY3MuIFlvdSBoYXZlIGJlZW4gd2FybmVkLiAgCisjCisKK0xvYWRNb2R1bGUgc3NsX21vZHVsZSBtb2R1bGVzL21vZF9zc2wuc28KKworIworIyBXaGVuIHdlIGFsc28gcHJvdmlkZSBTU0wgd2UgaGF2ZSB0byBsaXN0ZW4gdG8gdGhlIAorIyB0aGUgSFRUUFMgcG9ydCBpbiBhZGRpdGlvbi4KKyMKK0xpc3RlbiB7eyBwaWxsYXIuaG9yaXpvbi5zZXJ2ZXIuYmluZC5hZGRyZXNzIH19OjQ0MworCisjIworIyMgIFNTTCBHbG9iYWwgQ29udGV4dAorIyMKKyMjICBBbGwgU1NMIGNvbmZpZ3VyYXRpb24gaW4gdGhpcyBjb250ZXh0IGFwcGxpZXMgYm90aCB0bworIyMgIHRoZSBtYWluIHNlcnZlciBhbmQgYWxsIFNTTC1lbmFibGVkIHZpcnR1YWwgaG9zdHMuCisjIworCisjICAgUGFzcyBQaHJhc2UgRGlhbG9nOgorIyAgIENvbmZpZ3VyZSB0aGUgcGFzcyBwaHJhc2UgZ2F0aGVyaW5nIHByb2Nlc3MuCisjICAgVGhlIGZpbHRlcmluZyBkaWFsb2cgcHJvZ3JhbSAoYGJ1aWx0aW4nIGlzIGEgaW50ZXJuYWwKKyMgICB0ZXJtaW5hbCBkaWFsb2cpIGhhcyB0byBwcm92aWRlIHRoZSBwYXNzIHBocmFzZSBvbiBzdGRvdXQuCitTU0xQYXNzUGhyYXNlRGlhbG9nICBidWlsdGluCisKKyMgICBJbnRlci1Qcm9jZXNzIFNlc3Npb24gQ2FjaGU6CisjICAgQ29uZmlndXJlIHRoZSBTU0wgU2Vzc2lvbiBDYWNoZTogRmlyc3QgdGhlIG1lY2hhbmlzbSAKKyMgICB0byB1c2UgYW5kIHNlY29uZCB0aGUgZXhwaXJpbmcgdGltZW91dCAoaW4gc2Vjb25kcykuCitTU0xTZXNzaW9uQ2FjaGUgICAgICAgICBzaG1jYjovdmFyL2NhY2hlL21vZF9zc2wvc2NhY2hlKDUxMjAwMCkKK1NTTFNlc3Npb25DYWNoZVRpbWVvdXQgIDMwMAorCisjICAgU2VtYXBob3JlOgorIyAgIENvbmZpZ3VyZSB0aGUgcGF0aCB0byB0aGUgbXV0dWFsIGV4Y2x1c2lvbiBzZW1hcGhvcmUgdGhlCisjICAgU1NMIGVuZ2luZSB1c2VzIGludGVybmFsbHkgZm9yIGludGVyLXByb2Nlc3Mgc3luY2hyb25pemF0aW9uLiAKK1NTTE11dGV4IGRlZmF1bHQKKworIyAgIFBzZXVkbyBSYW5kb20gTnVtYmVyIEdlbmVyYXRvciAoUFJORyk6CisjICAgQ29uZmlndXJlIG9uZSBvciBtb3JlIHNvdXJjZXMgdG8gc2VlZCB0aGUgUFJORyBvZiB0aGUgCisjICAgU1NMIGxpYnJhcnkuIFRoZSBzZWVkIGRhdGEgc2hvdWxkIGJlIG9mIGdvb2QgcmFuZG9tIHF1YWxpdHkuCisjICAgV0FSTklORyEgT24gc29tZSBwbGF0Zm9ybXMgL2Rldi9yYW5kb20gYmxvY2tzIGlmIG5vdCBlbm91Z2ggZW50cm9weQorIyAgIGlzIGF2YWlsYWJsZS4gVGhpcyBtZWFucyB5b3UgdGhlbiBjYW5ub3QgdXNlIHRoZSAvZGV2L3JhbmRvbSBkZXZpY2UKKyMgICBiZWNhdXNlIGl0IHdvdWxkIGxlYWQgdG8gdmVyeSBsb25nIGNvbm5lY3Rpb24gdGltZXMgKGFzIGxvbmcgYXMKKyMgICBpdCByZXF1aXJlcyB0byBtYWtlIG1vcmUgZW50cm9weSBhdmFpbGFibGUpLiBCdXQgdXN1YWxseSB0aG9zZQorIyAgIHBsYXRmb3JtcyBhZGRpdGlvbmFsbHkgcHJvdmlkZSBhIC9kZXYvdXJhbmRvbSBkZXZpY2Ugd2hpY2ggZG9lc24ndAorIyAgIGJsb2NrLiBTbywgaWYgYXZhaWxhYmxlLCB1c2UgdGhpcyBvbmUgaW5zdGVhZC4gUmVhZCB0aGUgbW9kX3NzbCBVc2VyCisjICAgTWFudWFsIGZvciBtb3JlIGRldGFpbHMuCitTU0xSYW5kb21TZWVkIHN0YXJ0dXAgZmlsZTovZGV2L3VyYW5kb20gIDI1NgorU1NMUmFuZG9tU2VlZCBjb25uZWN0IGJ1aWx0aW4KKyNTU0xSYW5kb21TZWVkIHN0YXJ0dXAgZmlsZTovZGV2L3JhbmRvbSAgNTEyCisjU1NMUmFuZG9tU2VlZCBjb25uZWN0IGZpbGU6L2Rldi9yYW5kb20gIDUxMgorI1NTTFJhbmRvbVNlZWQgY29ubmVjdCBmaWxlOi9kZXYvdXJhbmRvbSA1MTIKKworIworIyBVc2UgIlNTTENyeXB0b0RldmljZSIgdG8gZW5hYmxlIGFueSBzdXBwb3J0ZWQgaGFyZHdhcmUKKyMgYWNjZWxlcmF0b3JzLiBVc2UgIm9wZW5zc2wgZW5naW5lIC12IiB0byBsaXN0IHN1cHBvcnRlZAorIyBlbmdpbmUgbmFtZXMuICBOT1RFOiBJZiB5b3UgZW5hYmxlIGFuIGFjY2VsZXJhdG9yIGFuZCB0aGUKKyMgc2VydmVyIGRvZXMgbm90IHN0YXJ0LCBjb25zdWx0IHRoZSBlcnJvciBsb2dzIGFuZCBlbnN1cmUKKyMgeW91ciBhY2NlbGVyYXRvciBpcyBmdW5jdGlvbmluZyBwcm9wZXJseS4gCisjCitTU0xDcnlwdG9EZXZpY2UgYnVpbHRpbgorI1NTTENyeXB0b0RldmljZSB1YnNlYworCisjIworIyMgU1NMIFZpcnR1YWwgSG9zdCBDb250ZXh0CisjIworCis8VmlydHVhbEhvc3QgX2RlZmF1bHRfOjQ0Mz4KKworIyBHZW5lcmFsIHNldHVwIGZvciB0aGUgdmlydHVhbCBob3N0LCBpbmhlcml0ZWQgZnJvbSBnbG9iYWwgY29uZmlndXJhdGlvbgorI0RvY3VtZW50Um9vdCAiL3Zhci93d3cvaHRtbCIKKyNTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLmNvbTo0NDMKKworIyBVc2Ugc2VwYXJhdGUgbG9nIGZpbGVzIGZvciB0aGUgU1NMIHZpcnR1YWwgaG9zdDsgbm90ZSB0aGF0IExvZ0xldmVsCisjIGlzIG5vdCBpbmhlcml0ZWQgZnJvbSBodHRwZC5jb25mLgorRXJyb3JMb2cgbG9ncy9zc2xfZXJyb3JfbG9nCitUcmFuc2ZlckxvZyBsb2dzL3NzbF9hY2Nlc3NfbG9nCitMb2dMZXZlbCB3YXJuCisKKyMgICBTU0wgRW5naW5lIFN3aXRjaDoKKyMgICBFbmFibGUvRGlzYWJsZSBTU0wgZm9yIHRoaXMgdmlydHVhbCBob3N0LgorU1NMRW5naW5lIG9uCisKKyMgICBTU0wgUHJvdG9jb2wgc3VwcG9ydDoKKyMgTGlzdCB0aGUgZW5hYmxlIHByb3RvY29sIGxldmVscyB3aXRoIHdoaWNoIGNsaWVudHMgd2lsbCBiZSBhYmxlIHRvCisjIGNvbm5lY3QuICBEaXNhYmxlIFNTTHYyIGFjY2VzcyBieSBkZWZhdWx0OgorU1NMUHJvdG9jb2wgYWxsIC1TU0x2MgorCisjICAgU1NMIENpcGhlciBTdWl0ZToKKyMgTGlzdCB0aGUgY2lwaGVycyB0aGF0IHRoZSBjbGllbnQgaXMgcGVybWl0dGVkIHRvIG5lZ290aWF0ZS4KKyMgU2VlIHRoZSBtb2Rfc3NsIGRvY3VtZW50YXRpb24gZm9yIGEgY29tcGxldGUgbGlzdC4KK1NTTENpcGhlclN1aXRlIEFMTDohQURIOiFFWFBPUlQ6IVNTTHYyOlJDNCtSU0E6K0hJR0g6K01FRElVTTorTE9XCisKKyMgICBTZXJ2ZXIgQ2VydGlmaWNhdGU6CisjIFBvaW50IFNTTENlcnRpZmljYXRlRmlsZSBhdCBhIFBFTSBlbmNvZGVkIGNlcnRpZmljYXRlLiAgSWYKKyMgdGhlIGNlcnRpZmljYXRlIGlzIGVuY3J5cHRlZCwgdGhlbiB5b3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgYQorIyBwYXNzIHBocmFzZS4gIE5vdGUgdGhhdCBhIGtpbGwgLUhVUCB3aWxsIHByb21wdCBhZ2Fpbi4gIEEgbmV3CisjIGNlcnRpZmljYXRlIGNhbiBiZSBnZW5lcmF0ZWQgdXNpbmcgdGhlIGdlbmtleSgxKSBjb21tYW5kLgorU1NMQ2VydGlmaWNhdGVGaWxlIC9ldGMvcGtpL3Rscy9jZXJ0cy9sb2NhbGhvc3QuY3J0CisKKyMgICBTZXJ2ZXIgUHJpdmF0ZSBLZXk6CisjICAgSWYgdGhlIGtleSBpcyBub3QgY29tYmluZWQgd2l0aCB0aGUgY2VydGlmaWNhdGUsIHVzZSB0aGlzCisjICAgZGlyZWN0aXZlIHRvIHBvaW50IGF0IHRoZSBrZXkgZmlsZS4gIEtlZXAgaW4gbWluZCB0aGF0IGlmCisjICAgeW91J3ZlIGJvdGggYSBSU0EgYW5kIGEgRFNBIHByaXZhdGUga2V5IHlvdSBjYW4gY29uZmlndXJlCisjICAgYm90aCBpbiBwYXJhbGxlbCAodG8gYWxzbyBhbGxvdyB0aGUgdXNlIG9mIERTQSBjaXBoZXJzLCBldGMuKQorU1NMQ2VydGlmaWNhdGVLZXlGaWxlIC9ldGMvcGtpL3Rscy9wcml2YXRlL2xvY2FsaG9zdC5rZXkKKworIyAgIFNlcnZlciBDZXJ0aWZpY2F0ZSBDaGFpbjoKKyMgICBQb2ludCBTU0xDZXJ0aWZpY2F0ZUNoYWluRmlsZSBhdCBhIGZpbGUgY29udGFpbmluZyB0aGUKKyMgICBjb25jYXRlbmF0aW9uIG9mIFBFTSBlbmNvZGVkIENBIGNlcnRpZmljYXRlcyB3aGljaCBmb3JtIHRoZQorIyAgIGNlcnRpZmljYXRlIGNoYWluIGZvciB0aGUgc2VydmVyIGNlcnRpZmljYXRlLiBBbHRlcm5hdGl2ZWx5CisjICAgdGhlIHJlZmVyZW5jZWQgZmlsZSBjYW4gYmUgdGhlIHNhbWUgYXMgU1NMQ2VydGlmaWNhdGVGaWxlCisjICAgd2hlbiB0aGUgQ0EgY2VydGlmaWNhdGVzIGFyZSBkaXJlY3RseSBhcHBlbmRlZCB0byB0aGUgc2VydmVyCisjICAgY2VydGlmaWNhdGUgZm9yIGNvbnZpbmllbmNlLgorI1NTTENlcnRpZmljYXRlQ2hhaW5GaWxlIC9ldGMvcGtpL3Rscy9jZXJ0cy9zZXJ2ZXItY2hhaW4uY3J0CisKKyMgICBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgKENBKToKKyMgICBTZXQgdGhlIENBIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBwYXRoIHdoZXJlIHRvIGZpbmQgQ0EKKyMgICBjZXJ0aWZpY2F0ZXMgZm9yIGNsaWVudCBhdXRoZW50aWNhdGlvbiBvciBhbHRlcm5hdGl2ZWx5IG9uZQorIyAgIGh1Z2UgZmlsZSBjb250YWluaW5nIGFsbCBvZiB0aGVtIChmaWxlIG11c3QgYmUgUEVNIGVuY29kZWQpCisjU1NMQ0FDZXJ0aWZpY2F0ZUZpbGUgL2V0Yy9wa2kvdGxzL2NlcnRzL2NhLWJ1bmRsZS5jcnQKKworIyAgIENsaWVudCBBdXRoZW50aWNhdGlvbiAoVHlwZSk6CisjICAgQ2xpZW50IGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiB0eXBlIGFuZCBkZXB0aC4gIFR5cGVzIGFyZQorIyAgIG5vbmUsIG9wdGlvbmFsLCByZXF1aXJlIGFuZCBvcHRpb25hbF9ub19jYS4gIERlcHRoIGlzIGEKKyMgICBudW1iZXIgd2hpY2ggc3BlY2lmaWVzIGhvdyBkZWVwbHkgdG8gdmVyaWZ5IHRoZSBjZXJ0aWZpY2F0ZQorIyAgIGlzc3VlciBjaGFpbiBiZWZvcmUgZGVjaWRpbmcgdGhlIGNlcnRpZmljYXRlIGlzIG5vdCB2YWxpZC4KKyNTU0xWZXJpZnlDbGllbnQgcmVxdWlyZQorI1NTTFZlcmlmeURlcHRoICAxMAorCisjICAgQWNjZXNzIENvbnRyb2w6CisjICAgV2l0aCBTU0xSZXF1aXJlIHlvdSBjYW4gZG8gcGVyLWRpcmVjdG9yeSBhY2Nlc3MgY29udHJvbCBiYXNlZAorIyAgIG9uIGFyYml0cmFyeSBjb21wbGV4IGJvb2xlYW4gZXhwcmVzc2lvbnMgY29udGFpbmluZyBzZXJ2ZXIKKyMgICB2YXJpYWJsZSBjaGVja3MgYW5kIG90aGVyIGxvb2t1cCBkaXJlY3RpdmVzLiAgVGhlIHN5bnRheCBpcyBhCisjICAgbWl4dHVyZSBiZXR3ZWVuIEMgYW5kIFBlcmwuICBTZWUgdGhlIG1vZF9zc2wgZG9jdW1lbnRhdGlvbgorIyAgIGZvciBtb3JlIGRldGFpbHMuCisjPExvY2F0aW9uIC8+CisjU1NMUmVxdWlyZSAoICAgICV7U1NMX0NJUEhFUn0gIX4gbS9eKEVYUHxOVUxMKS8gXAorIyAgICAgICAgICAgIGFuZCAle1NTTF9DTElFTlRfU19ETl9PfSBlcSAiU25ha2UgT2lsLCBMdGQuIiBcCisjICAgICAgICAgICAgYW5kICV7U1NMX0NMSUVOVF9TX0ROX09VfSBpbiB7IlN0YWZmIiwgIkNBIiwgIkRldiJ9IFwKKyMgICAgICAgICAgICBhbmQgJXtUSU1FX1dEQVl9ID49IDEgYW5kICV7VElNRV9XREFZfSA8PSA1IFwKKyMgICAgICAgICAgICBhbmQgJXtUSU1FX0hPVVJ9ID49IDggYW5kICV7VElNRV9IT1VSfSA8PSAyMCAgICAgICApIFwKKyMgICAgICAgICAgIG9yICV7UkVNT1RFX0FERFJ9ID1+IG0vXjE5MlwuNzZcLjE2MlwuWzAtOV0rJC8KKyM8L0xvY2F0aW9uPgorCisjICAgU1NMIEVuZ2luZSBPcHRpb25zOgorIyAgIFNldCB2YXJpb3VzIG9wdGlvbnMgZm9yIHRoZSBTU0wgZW5naW5lLgorIyAgIG8gRmFrZUJhc2ljQXV0aDoKKyMgICAgIFRyYW5zbGF0ZSB0aGUgY2xpZW50IFguNTA5IGludG8gYSBCYXNpYyBBdXRob3Jpc2F0aW9uLiAgVGhpcyBtZWFucyB0aGF0CisjICAgICB0aGUgc3RhbmRhcmQgQXV0aC9EQk1BdXRoIG1ldGhvZHMgY2FuIGJlIHVzZWQgZm9yIGFjY2VzcyBjb250cm9sLiAgVGhlCisjICAgICB1c2VyIG5hbWUgaXMgdGhlIGBvbmUgbGluZScgdmVyc2lvbiBvZiB0aGUgY2xpZW50J3MgWC41MDkgY2VydGlmaWNhdGUuCisjICAgICBOb3RlIHRoYXQgbm8gcGFzc3dvcmQgaXMgb2J0YWluZWQgZnJvbSB0aGUgdXNlci4gRXZlcnkgZW50cnkgaW4gdGhlIHVzZXIKKyMgICAgIGZpbGUgbmVlZHMgdGhpcyBwYXNzd29yZDogYHh4ajMxWk1UWnprVkEnLgorIyAgIG8gRXhwb3J0Q2VydERhdGE6CisjICAgICBUaGlzIGV4cG9ydHMgdHdvIGFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOiBTU0xfQ0xJRU5UX0NFUlQgYW5kCisjICAgICBTU0xfU0VSVkVSX0NFUlQuIFRoZXNlIGNvbnRhaW4gdGhlIFBFTS1lbmNvZGVkIGNlcnRpZmljYXRlcyBvZiB0aGUKKyMgICAgIHNlcnZlciAoYWx3YXlzIGV4aXN0aW5nKSBhbmQgdGhlIGNsaWVudCAob25seSBleGlzdGluZyB3aGVuIGNsaWVudAorIyAgICAgYXV0aGVudGljYXRpb24gaXMgdXNlZCkuIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW1wb3J0IHRoZSBjZXJ0aWZpY2F0ZXMKKyMgICAgIGludG8gQ0dJIHNjcmlwdHMuCisjICAgbyBTdGRFbnZWYXJzOgorIyAgICAgVGhpcyBleHBvcnRzIHRoZSBzdGFuZGFyZCBTU0wvVExTIHJlbGF0ZWQgYFNTTF8qJyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCisjICAgICBQZXIgZGVmYXVsdCB0aGlzIGV4cG9ydGF0aW9uIGlzIHN3aXRjaGVkIG9mZiBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywKKyMgICAgIGJlY2F1c2UgdGhlIGV4dHJhY3Rpb24gc3RlcCBpcyBhbiBleHBlbnNpdmUgb3BlcmF0aW9uIGFuZCBpcyB1c3VhbGx5CisjICAgICB1c2VsZXNzIGZvciBzZXJ2aW5nIHN0YXRpYyBjb250ZW50LiBTbyBvbmUgdXN1YWxseSBlbmFibGVzIHRoZQorIyAgICAgZXhwb3J0YXRpb24gZm9yIENHSSBhbmQgU1NJIHJlcXVlc3RzIG9ubHkuCisjICAgbyBTdHJpY3RSZXF1aXJlOgorIyAgICAgVGhpcyBkZW5pZXMgYWNjZXNzIHdoZW4gIlNTTFJlcXVpcmVTU0wiIG9yICJTU0xSZXF1aXJlIiBhcHBsaWVkIGV2ZW4KKyMgICAgIHVuZGVyIGEgIlNhdGlzZnkgYW55IiBzaXR1YXRpb24sIGkuZS4gd2hlbiBpdCBhcHBsaWVzIGFjY2VzcyBpcyBkZW5pZWQKKyMgICAgIGFuZCBubyBvdGhlciBtb2R1bGUgY2FuIGNoYW5nZSBpdC4KKyMgICBvIE9wdFJlbmVnb3RpYXRlOgorIyAgICAgVGhpcyBlbmFibGVzIG9wdGltaXplZCBTU0wgY29ubmVjdGlvbiByZW5lZ290aWF0aW9uIGhhbmRsaW5nIHdoZW4gU1NMCisjICAgICBkaXJlY3RpdmVzIGFyZSB1c2VkIGluIHBlci1kaXJlY3RvcnkgY29udGV4dC4gCisjU1NMT3B0aW9ucyArRmFrZUJhc2ljQXV0aCArRXhwb3J0Q2VydERhdGEgK1N0cmljdFJlcXVpcmUKKzxGaWxlcyB+ICJcLihjZ2l8c2h0bWx8cGh0bWx8cGhwMz8pJCI+CisgICAgU1NMT3B0aW9ucyArU3RkRW52VmFycworPC9GaWxlcz4KKzxEaXJlY3RvcnkgIi92YXIvd3d3L2NnaS1iaW4iPgorICAgIFNTTE9wdGlvbnMgK1N0ZEVudlZhcnMKKzwvRGlyZWN0b3J5PgorCisjICAgU1NMIFByb3RvY29sIEFkanVzdG1lbnRzOgorIyAgIFRoZSBzYWZlIGFuZCBkZWZhdWx0IGJ1dCBzdGlsbCBTU0wvVExTIHN0YW5kYXJkIGNvbXBsaWFudCBzaHV0ZG93bgorIyAgIGFwcHJvYWNoIGlzIHRoYXQgbW9kX3NzbCBzZW5kcyB0aGUgY2xvc2Ugbm90aWZ5IGFsZXJ0IGJ1dCBkb2Vzbid0IHdhaXQgZm9yCisjICAgdGhlIGNsb3NlIG5vdGlmeSBhbGVydCBmcm9tIGNsaWVudC4gV2hlbiB5b3UgbmVlZCBhIGRpZmZlcmVudCBzaHV0ZG93bgorIyAgIGFwcHJvYWNoIHlvdSBjYW4gdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKKyMgICBvIHNzbC11bmNsZWFuLXNodXRkb3duOgorIyAgICAgVGhpcyBmb3JjZXMgYW4gdW5jbGVhbiBzaHV0ZG93biB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZCwgaS5lLiBubworIyAgICAgU1NMIGNsb3NlIG5vdGlmeSBhbGVydCBpcyBzZW5kIG9yIGFsbG93ZWQgdG8gcmVjZWl2ZWQuICBUaGlzIHZpb2xhdGVzCisjICAgICB0aGUgU1NML1RMUyBzdGFuZGFyZCBidXQgaXMgbmVlZGVkIGZvciBzb21lIGJyYWluLWRlYWQgYnJvd3NlcnMuIFVzZQorIyAgICAgdGhpcyB3aGVuIHlvdSByZWNlaXZlIEkvTyBlcnJvcnMgYmVjYXVzZSBvZiB0aGUgc3RhbmRhcmQgYXBwcm9hY2ggd2hlcmUKKyMgICAgIG1vZF9zc2wgc2VuZHMgdGhlIGNsb3NlIG5vdGlmeSBhbGVydC4KKyMgICBvIHNzbC1hY2N1cmF0ZS1zaHV0ZG93bjoKKyMgICAgIFRoaXMgZm9yY2VzIGFuIGFjY3VyYXRlIHNodXRkb3duIHdoZW4gdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkLCBpLmUuIGEKKyMgICAgIFNTTCBjbG9zZSBub3RpZnkgYWxlcnQgaXMgc2VuZCBhbmQgbW9kX3NzbCB3YWl0cyBmb3IgdGhlIGNsb3NlIG5vdGlmeQorIyAgICAgYWxlcnQgb2YgdGhlIGNsaWVudC4gVGhpcyBpcyAxMDAlIFNTTC9UTFMgc3RhbmRhcmQgY29tcGxpYW50LCBidXQgaW4KKyMgICAgIHByYWN0aWNlIG9mdGVuIGNhdXNlcyBoYW5naW5nIGNvbm5lY3Rpb25zIHdpdGggYnJhaW4tZGVhZCBicm93c2Vycy4gVXNlCisjICAgICB0aGlzIG9ubHkgZm9yIGJyb3dzZXJzIHdoZXJlIHlvdSBrbm93IHRoYXQgdGhlaXIgU1NMIGltcGxlbWVudGF0aW9uCisjICAgICB3b3JrcyBjb3JyZWN0bHkuIAorIyAgIE5vdGljZTogTW9zdCBwcm9ibGVtcyBvZiBicm9rZW4gY2xpZW50cyBhcmUgYWxzbyByZWxhdGVkIHRvIHRoZSBIVFRQCisjICAga2VlcC1hbGl2ZSBmYWNpbGl0eSwgc28geW91IHVzdWFsbHkgYWRkaXRpb25hbGx5IHdhbnQgdG8gZGlzYWJsZQorIyAgIGtlZXAtYWxpdmUgZm9yIHRob3NlIGNsaWVudHMsIHRvby4gVXNlIHZhcmlhYmxlICJub2tlZXBhbGl2ZSIgZm9yIHRoaXMuCisjICAgU2ltaWxhcmx5LCBvbmUgaGFzIHRvIGZvcmNlIHNvbWUgY2xpZW50cyB0byB1c2UgSFRUUC8xLjAgdG8gd29ya2Fyb3VuZAorIyAgIHRoZWlyIGJyb2tlbiBIVFRQLzEuMSBpbXBsZW1lbnRhdGlvbi4gVXNlIHZhcmlhYmxlcyAiZG93bmdyYWRlLTEuMCIgYW5kCisjICAgImZvcmNlLXJlc3BvbnNlLTEuMCIgZm9yIHRoaXMuCitTZXRFbnZJZiBVc2VyLUFnZW50ICIuKk1TSUUuKiIgXAorICAgICAgICAgbm9rZWVwYWxpdmUgc3NsLXVuY2xlYW4tc2h1dGRvd24gXAorICAgICAgICAgZG93bmdyYWRlLTEuMCBmb3JjZS1yZXNwb25zZS0xLjAKKworIyAgIFBlci1TZXJ2ZXIgTG9nZ2luZzoKKyMgICBUaGUgaG9tZSBvZiBhIGN1c3RvbSBTU0wgbG9nIGZpbGUuIFVzZSB0aGlzIHdoZW4geW91IHdhbnQgYQorIyAgIGNvbXBhY3Qgbm9uLWVycm9yIFNTTCBsb2dmaWxlIG9uIGEgdmlydHVhbCBob3N0IGJhc2lzLgorQ3VzdG9tTG9nIGxvZ3Mvc3NsX3JlcXVlc3RfbG9nIFwKKyAgICAgICAgICAiJXQgJWggJXtTU0xfUFJPVE9DT0x9eCAle1NTTF9DSVBIRVJ9eCBcIiVyXCIgJWIiCisKKzwvVmlydHVhbEhvc3Q+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCmRpZmYgLS1naXQgYS9ob3Jpem9uL2NvbmYvd3NnaS5weSBiL2hvcml6b24vY29uZi93c2dpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMGFlOTkKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2NvbmYvd3NnaS5weQpAQCAtMCwwICsxLDMzIEBACisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitzeXMuc3Rkb3V0ID0gc3lzLnN0ZGVycgorCit7JS0gc2V0IGFwcCA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnaG9yaXpvbjpzZXJ2ZXI6YXBwOicrYXBwX25hbWUpICV9CisKK2ltcG9ydCBzaXRlCisKK2Zyb20gb3MucGF0aCBpbXBvcnQgam9pbgorCisjc2l0ZS5hZGRzaXRlZGlyKCcvc3J2L2hvcml6b24vbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzJykKKworcGF0aCA9ICcvc3J2L2hvcml6b24nCisKK3N5cy5wYXRoLmFwcGVuZChqb2luKHBhdGgsICdsaWInLCAncHl0aG9uMi43JywgJ3NpdGUtcGFja2FnZXMnKSkKK3N5cy5wYXRoLmFwcGVuZChqb2luKHBhdGgsICdzaXRlcycsICd7eyBhcHBfbmFtZSB9fScsICdsaWInKSkKKworeyUtIGlmIGFwcC5wbHVnaW4gaXMgZGVmaW5lZCAlfQoreyUtIGZvciBwbHVnaW5fbmFtZSwgcGx1Z2luIGluIGFwcC5wbHVnaW4uaXRlcml0ZW1zKCkgJX0KK3N5cy5wYXRoLmFwcGVuZCgnL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L3BsdWdpbnMve3sgcGx1Z2luX25hbWUgfX0nKQoreyUtIGVuZGZvciAlfQoreyUtIGVuZGlmICV9CisKK2ltcG9ydCBvcworI29zLmVudmlyb25bJ1BZVEhPTl9FR0dfQ0FDSEUnXSA9ICcvd3d3L2xvc3RxdWVyeS5jb20vbW9kX3dzZ2kvZWdnLWNhY2hlJworCitvcy5lbnZpcm9uWydESkFOR09fU0VUVElOR1NfTU9EVUxFJ10gPSAnb3BlbnN0YWNrX2Rhc2hib2FyZC5zZXR0aW5ncycKKworaW1wb3J0IGRqYW5nby5jb3JlLmhhbmRsZXJzLndzZ2kKKworYXBwbGljYXRpb24gPSBkamFuZ28uY29yZS5oYW5kbGVycy53c2dpLldTR0lIYW5kbGVyKCkKZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvZW5hYmxlZC9hZG1pbi5weSBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9hZG1pbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTM1OGZmCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL2FkbWluLnB5CkBAIC0wLDAgKzEsMTMgQEAKKworRU5BQkxFRCA9IHt7ZW5hYmxlZCB8IHB5dGhvbn19CisKK3slLSBpZiBlbmFibGVkICV9CisKK0RBU0hCT0FSRCA9ICdhZG1pbicKKworIyBBIGxpc3Qgb2YgYXBwbGljYXRpb25zIHRvIGJlIGFkZGVkIHRvIElOU1RBTExFRF9BUFBTLgorQUREX0lOU1RBTExFRF9BUFBTID0gWworICAgICdvcGVuc3RhY2tfZGFzaGJvYXJkLmRhc2hib2FyZHMuYWRtaW4nLAorXQorCit7JS0gZW5kaWYgJX0KZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvZW5hYmxlZC9hZG1pbl9kYXNoYm9hcmRfZGlzYWJsZS5weSBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9hZG1pbl9kYXNoYm9hcmRfZGlzYWJsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL2FkbWluX2Rhc2hib2FyZF9kaXNhYmxlLnB5CmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvYXBpX21hc2sucHkgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvYXBpX21hc2sucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9hcGlfbWFzay5weQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9lbmFibGVkL2JpbGxpbmcucHkgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvYmlsbGluZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTk2ZGIyCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL2JpbGxpbmcucHkKQEAgLTAsMCArMSw2IEBACisKK0RBU0hCT0FSRCA9ICdiaWxsaW5nJworCitFTkFCTEVEID0gVHJ1ZQorCitBRERfSU5TVEFMTEVEX0FQUFMgPSBbJ2hvcml6b25fYmlsbGluZyddClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9lbmFibGVkL2NvbnRyYWlsLnB5IGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL2NvbnRyYWlsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvY29udHJhaWwucHkKZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvZW5hYmxlZC9jb250cmFpbF9vcGVuc3RhY2tfZGFzaGJvYXJkLnB5IGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL2NvbnRyYWlsX29wZW5zdGFja19kYXNoYm9hcmQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNjM2VhMAotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9jb250cmFpbF9vcGVuc3RhY2tfZGFzaGJvYXJkLnB5CkBAIC0wLDAgKzEsMTIgQEAKKyMgVGhlIG5hbWUgb2YgdGhlIGRhc2hib2FyZCB0byBiZSBhZGRlZCB0byBIT1JJWk9OWydkYXNoYm9hcmRzJ10uIFJlcXVpcmVkLgorI0RBU0hCT0FSRCA9ICdjb250cmFpbCcKKyMgSWYgc2V0IHRvIFRydWUsIHRoaXMgZGFzaGJvYXJkIHdpbGwgYmUgc2V0IGFzIHRoZSBkZWZhdWx0IGRhc2hib2FyZC4KKyNERUZBVUxUID0gRmFsc2UKKyMgQSBkaWN0aW9uYXJ5IG9mIGV4Y2VwdGlvbiBjbGFzc2VzIHRvIGJlIGFkZGVkIHRvIEhPUklaT05bJ2V4Y2VwdGlvbnMnXS4KKyNBRERfRVhDRVBUSU9OUyA9IHt9CisjIEEgbGlzdCBvZiBhcHBsaWNhdGlvbnMgdG8gYmUgYWRkZWQgdG8gSU5TVEFMTEVEX0FQUFMuCisjQUREX0lOU1RBTExFRF9BUFBTID0gWydjb250cmFpbF9vcGVuc3RhY2tfZGFzaGJvYXJkLmNvbnRyYWlsJ10KKworI0FERF9KU19GSUxFUyA9IFsKKyMgICdkYXNoYm9hcmQvanMvY29udHJhaWwubmV0d29ya3RvcG9sb2d5LmpzJworI10KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvaGVhdC5weSBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9oZWF0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvaGVhdC5weQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9lbmFibGVkL2hlYXRfZXh0ZW5zaW9uLnB5IGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL2hlYXRfZXh0ZW5zaW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvaGVhdF9leHRlbnNpb24ucHkKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvaGVscGRlc2sucHkgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvaGVscGRlc2sucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzM2NzMzNgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9oZWxwZGVzay5weQpAQCAtMCwwICsxLDEwIEBACisKK0RBU0hCT0FSRCA9ICdoZWxwZGVzaycKKworRU5BQkxFRCA9IFRydWUKKworREVGQVVMVCA9IFRydWUKKworQUREX0lOU1RBTExFRF9BUFBTID0gWworICAgICdoZWxwZGVza19kYXNoYm9hcmQnLAorXQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9lbmFibGVkL2hvcml6b25fb3ZlcnJpZGUucHkgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvaG9yaXpvbl9vdmVycmlkZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGFjNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL2hvcml6b25fb3ZlcnJpZGUucHkKQEAgLTAsMCArMSwyOCBAQAoreyUtIGZyb20gImhvcml6b24vbWFwLmppbmphIiBpbXBvcnQgc2VydmVyIHdpdGggY29udGV4dCAlfQoreyUtIHNldCBhcHAgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ2hvcml6b246c2VydmVyOmFwcDonK2FwcF9uYW1lKSAlfQorCitBTExPV0VEX0hPU1RTID0gWycqJ10KKworeyUtIGlmIGFwcC5zc2wgaXMgZGVmaW5lZCAlfQoreyUtIGlmIGFwcC5zc2wuZW5hYmxlZCAlfQorU0VDVVJFX1BST1hZX1NTTF9IRUFERVIgPSAoJ0hUVFBfWF9GT1JXQVJERURfUFJPVE9DT0wnLCAnaHR0cHMnKQorQ1NSRl9DT09LSUVfU0VDVVJFID0gVHJ1ZQorU0VTU0lPTl9DT09LSUVfU0VDVVJFID0gVHJ1ZQoreyUtIGVuZGlmICV9Cit7JS0gZW5kaWYgJX0KKworU0VDUkVUX0tFWSA9ICd7eyBhcHAuc2VjcmV0X2tleSB9fScKKworeyUgaW5jbHVkZSAiaG9yaXpvbi9maWxlcy9sb2NhbF9zZXR0aW5ncy9fa2V5c3RvbmVfc2V0dGluZ3MucHkiICV9CisKK3slLSBpZiBhcHAucGx1Z2luLm1lcmxpbl9wYW5lbHMgaXMgZGVmaW5lZCAlfQorCitEQVRBQkFTRVMgPSB7CisgICAgJ2RlZmF1bHQnOiB7CisgICAgICAgICdFTkdJTkUnOiAnZGphbmdvLmRiLmJhY2tlbmRzLnNxbGl0ZTMnLAorICAgICAgICAnTkFNRSc6ICcvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vZGF0YWJhc2UuZGInLAorICAgICAgICAnVEVTVF9OQU1FJzogJ3Rlc3RfZGI6JywgCisgICAgfQorfQorCit7JS0gZW5kaWYgJX0KZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvZW5hYmxlZC9ob3Jpem9uX292ZXJyaWRlcy5weSBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9ob3Jpem9uX292ZXJyaWRlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL2hvcml6b25fb3ZlcnJpZGVzLnB5CmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvaG9yaXpvbl90aGVtZS5weSBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9ob3Jpem9uX3RoZW1lLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhMDgxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvaG9yaXpvbl90aGVtZS5weQpAQCAtMCwwICsxLDkgQEAKKyMgVGhlIG5hbWUgb2YgdGhlIGRhc2hib2FyZCB0byBiZSBhZGRlZCB0byBIT1JJWk9OWydkYXNoYm9hcmRzJ10uIFJlcXVpcmVkLgorREFTSEJPQVJEID0gJ3RoZW1lJworIyBJZiBzZXQgdG8gVHJ1ZSwgdGhpcyBkYXNoYm9hcmQgd2lsbCBiZSBzZXQgYXMgdGhlIGRlZmF1bHQgZGFzaGJvYXJkLgorREVGQVVMVCA9IEZhbHNlCisjIEEgZGljdGlvbmFyeSBvZiBleGNlcHRpb24gY2xhc3NlcyB0byBiZSBhZGRlZCB0byBIT1JJWk9OWydleGNlcHRpb25zJ10uCitBRERfRVhDRVBUSU9OUyA9IHt9CisjIEEgbGlzdCBvZiBhcHBsaWNhdGlvbnMgdG8gYmUgYWRkZWQgdG8gSU5TVEFMTEVEX0FQUFMuCitBRERfSU5TVEFMTEVEX0FQUFMgPSBbJ29wZW5zdGFja19kYXNoYm9hcmQuZGFzaGJvYXJkcy50aGVtZSddCisjLCAnaG9yaXpvbl9vdmVycmlkZXMnXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvZW5hYmxlZC9pZGVudGl0eS5weSBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9pZGVudGl0eS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzNiNjU5Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL2lkZW50aXR5LnB5CkBAIC0wLDAgKzEsMTQgQEAKKworRU5BQkxFRCA9IHt7ZW5hYmxlZCB8IHB5dGhvbn19CisKK3slLSBpZiBlbmFibGVkICV9CisKK0RBU0hCT0FSRCA9ICdpZGVudGl0eScKKyMgSWYgc2V0IHRvIFRydWUsIHRoaXMgZGFzaGJvYXJkIHdpbGwgYmUgc2V0IGFzIHRoZSBkZWZhdWx0IGRhc2hib2FyZC4KK0RFRkFVTFQgPSBGYWxzZQorIyBBIGRpY3Rpb25hcnkgb2YgZXhjZXB0aW9uIGNsYXNzZXMgdG8gYmUgYWRkZWQgdG8gSE9SSVpPTlsnZXhjZXB0aW9ucyddLgorQUREX0VYQ0VQVElPTlMgPSB7fQorIyBBIGxpc3Qgb2YgYXBwbGljYXRpb25zIHRvIGJlIGFkZGVkIHRvIElOU1RBTExFRF9BUFBTLgorQUREX0lOU1RBTExFRF9BUFBTID0gWydvcGVuc3RhY2tfZGFzaGJvYXJkLmRhc2hib2FyZHMuaWRlbnRpdHknXQorCit7JS0gZW5kaWYgJX0KZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvZW5hYmxlZC9tZXJsaW5fcGFuZWxzLnB5IGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL21lcmxpbl9wYW5lbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZkMWQ0NgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9tZXJsaW5fcGFuZWxzLnB5CkBAIC0wLDAgKzEsMTcgQEAKKyMgVGhlIG5hbWUgb2YgdGhlIHBhbmVsIHRvIGJlIGFkZGVkIHRvIEhPUklaT05fQ09ORklHLiBSZXF1aXJlZC4KK1BBTkVMID0gJ21pc3RyYWwnCisjIFRoZSBuYW1lIG9mIHRoZSBkYXNoYm9hcmQgdGhlIFBBTkVMIGFzc29jaWF0ZWQgd2l0aC4gUmVxdWlyZWQuCitQQU5FTF9EQVNIQk9BUkQgPSAncHJvamVjdCcKKyMgVGhlIG5hbWUgb2YgdGhlIHBhbmVsIGdyb3VwIHRoZSBQQU5FTCBpcyBhc3NvY2lhdGVkIHdpdGguCitQQU5FTF9HUk9VUCA9ICdvcmNoZXN0cmF0aW9uJworCitBRERfSU5TVEFMTEVEX0FQUFMgPSBbJ21lcmxpbicsICdtaXN0cmFsJ10KKworIyBQeXRob24gcGFuZWwgY2xhc3Mgb2YgdGhlIFBBTkVMIHRvIGJlIGFkZGVkLgorQUREX1BBTkVMID0gJ21pc3RyYWwucGFuZWwuTWlzdHJhbFBhbmVsJworCitBRERfQU5HVUxBUl9NT0RVTEVTID0gWydtZXJsaW4nLCAnbWlzdHJhbCddCitBRERfSlNfRklMRVMgPSBbJ21lcmxpbi9qcy9jdXN0b20tbGlicy91aS1ib290c3RyYXAtdHBscy0wLjEyLjEuanMnLAorICAgICAgICAgICAgICAgICdtZXJsaW4vanMvbWVybGluLmluaXQuanMnLAorICAgICAgICAgICAgICAgICdtZXJsaW4vanMvbWVybGluLnRlbXBsYXRlcy5qcycsCisgICAgICAgICAgICAgICAgJ21pc3RyYWwvanMvbWlzdHJhbC5pbml0LmpzJ10KZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvZW5hYmxlZC9taXN0cmFsX2Rhc2hib2FyZC5weSBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9taXN0cmFsX2Rhc2hib2FyZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmExMGZlCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL21pc3RyYWxfZGFzaGJvYXJkLnB5CkBAIC0wLDAgKzEsOCBAQAorCitEQVNIQk9BUkQgPSAnbWlzdHJhbCcKKworQUREX0lOU1RBTExFRF9BUFBTID0gWydtaXN0cmFsZGFzaGJvYXJkJ10KKworREVGQVVMVCA9IFRydWUKKworQUREX0VYQ0VQVElPTlMgPSB7fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvZW5hYmxlZC9tb25pdG9yaW5nX2Rhc2hib2FyZC5weSBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9tb25pdG9yaW5nX2Rhc2hib2FyZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjJjNjEzCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL21vbml0b3JpbmdfZGFzaGJvYXJkLnB5CkBAIC0wLDAgKzEsOCBAQAorCitEQVNIQk9BUkQgPSAnbW9uaXRvcmluZycKKworRU5BQkxFRCA9IFRydWUKKworQUREX0lOU1RBTExFRF9BUFBTID0gWworICAgICdob3Jpem9uX21vbml0b3JpbmcnCitdCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvbXVyYW5vX2Rhc2hib2FyZC5weSBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9tdXJhbm9fZGFzaGJvYXJkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvbXVyYW5vX2Rhc2hib2FyZC5weQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9lbmFibGVkL3Byb2plY3QucHkgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvcHJvamVjdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzJjYzU3Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL3Byb2plY3QucHkKQEAgLTAsMCArMSw0OSBAQAorCitFTkFCTEVEID0ge3tlbmFibGVkIHwgcHl0aG9ufX0KKworeyUtIGlmIGVuYWJsZWQgJX0KKworIyBUaGUgc2x1ZyBvZiB0aGUgZGFzaGJvYXJkIHRvIGJlIGFkZGVkIHRvIEhPUklaT05bJ2Rhc2hib2FyZHMnXS4gUmVxdWlyZWQuCitEQVNIQk9BUkQgPSAncHJvamVjdCcKKyMgSWYgc2V0IHRvIFRydWUsIHRoaXMgZGFzaGJvYXJkIHdpbGwgYmUgc2V0IGFzIHRoZSBkZWZhdWx0IGRhc2hib2FyZC4KK0RFRkFVTFQgPSBUcnVlCisjIEEgZGljdGlvbmFyeSBvZiBleGNlcHRpb24gY2xhc3NlcyB0byBiZSBhZGRlZCB0byBIT1JJWk9OWydleGNlcHRpb25zJ10uCitBRERfRVhDRVBUSU9OUyA9IHt9CisjIEEgbGlzdCBvZiBhcHBsaWNhdGlvbnMgdG8gYmUgYWRkZWQgdG8gSU5TVEFMTEVEX0FQUFMuCitBRERfSU5TVEFMTEVEX0FQUFMgPSBbJ29wZW5zdGFja19kYXNoYm9hcmQuZGFzaGJvYXJkcy5wcm9qZWN0J10KKworQUREX0FOR1VMQVJfTU9EVUxFUyA9IFsnaHouZGFzaGJvYXJkJ10KKworTEFVTkNIX0lOU1QgPSAnZGFzaGJvYXJkL2xhdW5jaC1pbnN0YW5jZS8nCisKK0FERF9KU19GSUxFUyA9IFsKKyAgICAnZGFzaGJvYXJkL2Rhc2hib2FyZC5tb2R1bGUuanMnLAorICAgICdkYXNoYm9hcmQvd29ya2Zsb3cvd29ya2Zsb3cuanMnLAorICAgICdkYXNoYm9hcmQvY2xvdWQtc2VydmljZXMvY2xvdWQtc2VydmljZXMuanMnLAorICAgIExBVU5DSF9JTlNUICsgJ2xhdW5jaC1pbnN0YW5jZS5qcycsCisgICAgTEFVTkNIX0lOU1QgKyAnbGF1bmNoLWluc3RhbmNlLm1vZGVsLmpzJywKKyAgICBMQVVOQ0hfSU5TVCArICdzb3VyY2Uvc291cmNlLmpzJywKKyAgICBMQVVOQ0hfSU5TVCArICdmbGF2b3IvZmxhdm9yLmpzJywKKyAgICBMQVVOQ0hfSU5TVCArICdmbGF2b3Ivc2VsZWN0LWZsYXZvci10YWJsZS5qcycsCisgICAgTEFVTkNIX0lOU1QgKyAnbmV0d29yay9uZXR3b3JrLmpzJywKKyAgICBMQVVOQ0hfSU5TVCArICdzZWN1cml0eS1ncm91cHMvc2VjdXJpdHktZ3JvdXBzLmpzJywKKyAgICBMQVVOQ0hfSU5TVCArICdrZXlwYWlyL2tleXBhaXIuanMnLAorICAgIExBVU5DSF9JTlNUICsgJ2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5qcycsCisgICAgTEFVTkNIX0lOU1QgKyAnY29uZmlndXJhdGlvbi9sb2FkLWVkaXQuanMnLAorXQorCitBRERfSlNfU1BFQ19GSUxFUyA9IFsKKyAgICAnZGFzaGJvYXJkL2Rhc2hib2FyZC5tb2R1bGUuc3BlYy5qcycsCisgICAgJ2Rhc2hib2FyZC93b3JrZmxvdy93b3JrZmxvdy5zcGVjLmpzJywKKyAgICAnZGFzaGJvYXJkL2Nsb3VkLXNlcnZpY2VzL2Nsb3VkLXNlcnZpY2VzLnNwZWMuanMnLAorICAgIExBVU5DSF9JTlNUICsgJ2xhdW5jaC1pbnN0YW5jZS5zcGVjLmpzJywKKyAgICBMQVVOQ0hfSU5TVCArICdsYXVuY2gtaW5zdGFuY2UubW9kZWwuc3BlYy5qcycsCisgICAgTEFVTkNIX0lOU1QgKyAnc291cmNlL3NvdXJjZS5zcGVjLmpzJywKKyAgICBMQVVOQ0hfSU5TVCArICdmbGF2b3IvZmxhdm9yLnNwZWMuanMnLAorICAgIExBVU5DSF9JTlNUICsgJ25ldHdvcmsvbmV0d29yay5zcGVjLmpzJywKKyAgICBMQVVOQ0hfSU5TVCArICdzZWN1cml0eS1ncm91cHMvc2VjdXJpdHktZ3JvdXBzLnNwZWMuanMnLAorICAgIExBVU5DSF9JTlNUICsgJ2tleXBhaXIva2V5cGFpci5zcGVjLmpzJywKKyAgICBMQVVOQ0hfSU5TVCArICdjb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc3BlYy5qcycsCitdCisKK3slLSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9lbmFibGVkL3NhaGFyYV9kYXNoYm9hcmQucHkgYi9ob3Jpem9uL2ZpbGVzL2VuYWJsZWQvc2FoYXJhX2Rhc2hib2FyZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL3NhaGFyYV9kYXNoYm9hcmQucHkKZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvZW5hYmxlZC9zZXR0aW5ncy5weSBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC9zZXR0aW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjQ2Mzc3Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL3NldHRpbmdzLnB5CkBAIC0wLDAgKzEsMiBAQAorCitFTkFCTEVEID0ge3tlbmFibGVkIHwgcHl0aG9ufX0KZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvZW5hYmxlZC90ZWxlbWV0cnlfZGFzaGJvYXJkLnB5IGIvaG9yaXpvbi9maWxlcy9lbmFibGVkL3RlbGVtZXRyeV9kYXNoYm9hcmQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJmNWNlYgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvZW5hYmxlZC90ZWxlbWV0cnlfZGFzaGJvYXJkLnB5CkBAIC0wLDAgKzEsOCBAQAorCitEQVNIQk9BUkQgPSAndGVsZW1ldHJ5JworCitFTkFCTEVEID0gVHJ1ZQorCitBRERfSU5TVEFMTEVEX0FQUFMgPSBbCisgICAgJ2hvcml6b25fdGVsZW1ldHJ5JworXQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9ndW5pY29ybl9zdGFydCBiL2hvcml6b24vZmlsZXMvZ3VuaWNvcm5fc3RhcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc2ZmY4NAotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvZ3VuaWNvcm5fc3RhcnQKQEAgLTAsMCArMSwzMCBAQAorIyEvYmluL2Jhc2gKK3slLSBzZXQgYXBwID0gc2FsdFsncGlsbGFyLmdldCddKCdob3Jpem9uOnNlcnZlcjphcHA6JythcHBfbmFtZSkgJX0KKworTkFNRT0iaG9yaXpvbl97eyBhcHBfbmFtZSB9fSIKK0RKQU5HT0RJUj0vc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0KK1VTRVI9aG9yaXpvbgorR1JPVVA9aG9yaXpvbgorTlVNX1dPUktFUlM9e3sgYXBwLmdldCgnd29ya2VycycsIDMpIH19CitESkFOR09fU0VUVElOR1NfTU9EVUxFPSJ7eyBhcHAuZ2V0KCdkYXNoYm9hcmQnLCAnb3BlbnN0YWNrJykgfX1fZGFzaGJvYXJkLnNldHRpbmdzIgorREpBTkdPX1dTR0lfTU9EVUxFPXdzZ2kKKworIyBBY3RpdmF0ZSB0aGUgdmlydHVhbCBlbnZpcm9ubWVudAorY2QgJERKQU5HT0RJUgorc291cmNlIC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9iaW4vYWN0aXZhdGUKK2V4cG9ydCBESkFOR09fU0VUVElOR1NfTU9EVUxFPSRESkFOR09fU0VUVElOR1NfTU9EVUxFCitleHBvcnQgUFlUSE9OUEFUSD0kREpBTkdPRElSOnslIGZvciBwbHVnaW5fbmFtZSwgcGx1Z2luIGluIGFwcC5wbHVnaW4uaXRlcml0ZW1zKCkgJX0vc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vcGx1Z2lucy97eyBwbHVnaW5fbmFtZSB9fTp7JSBlbmRmb3IgJX0kUFlUSE9OUEFUSAoreyUtIGlmIGFwcC5taXN0cmFsX2FwaSBpcyBkZWZpbmVkICV9CitleHBvcnQgT1NfTUlTVFJBTF9VUkw9aHR0cDovL3t7IGFwcC5taXN0cmFsX2FwaS5ob3N0IH19Ont7IGFwcC5taXN0cmFsX2FwaS5wb3J0IH19L3YyCit7JS0gZW5kaWYgJX0KKworIyBTdGFydCB5b3VyIERqYW5nbyBVbmljb3JuCisjIFByb2dyYW1zIG1lYW50IHRvIGJlIHJ1biB1bmRlciBzdXBlcnZpc29yIHNob3VsZCBub3QgZGFlbW9uaXplIHRoZW1zZWx2ZXMgKGRvIG5vdCB1c2UgLS1kYWVtb24pCitleGVjIC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9iaW4vZ3VuaWNvcm4gJHtESkFOR09fV1NHSV9NT0RVTEV9OmFwcGxpY2F0aW9uIFwKKyAgLS1uYW1lICROQU1FIFwKKyAgLS13b3JrZXJzICROVU1fV09SS0VSUyBcCisgIC0tdXNlcj0kVVNFUiAtLWdyb3VwPSRHUk9VUCBcCisgIC0tbG9nLWxldmVsPWRlYnVnIFwKKyAgLS1sb2ctZmlsZT0vdmFyL2xvZy9ob3Jpem9uL3t7IGFwcF9uYW1lIH19X2d1bmljb3JuLmxvZyBcCisgIC0tYmluZD17eyBhcHAuYmluZC5hZGRyZXNzIH19Ont7IGFwcC5iaW5kLnBvcnQgfX0gXAorICAtLXRpbWVvdXQ9NjAwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzLy5yb3BlcHJvamVjdC9jb25maWcucHkgYi9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvLnJvcGVwcm9qZWN0L2NvbmZpZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmViY2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzLy5yb3BlcHJvamVjdC9jb25maWcucHkKQEAgLTAsMCArMSw4NSBAQAorIyBUaGUgZGVmYXVsdCBgYGNvbmZpZy5weWBgCisKKworZGVmIHNldF9wcmVmcyhwcmVmcyk6CisgICAgIiIiVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIG9wZW5pbmcgdGhlIHByb2plY3QiIiIKKworICAgICMgU3BlY2lmeSB3aGljaCBmaWxlcyBhbmQgZm9sZGVycyB0byBpZ25vcmUgaW4gdGhlIHByb2plY3QuCisgICAgIyBDaGFuZ2VzIHRvIGlnbm9yZWQgcmVzb3VyY2VzIGFyZSBub3QgYWRkZWQgdG8gdGhlIGhpc3RvcnkgYW5kCisgICAgIyBWQ1NzLiAgQWxzbyB0aGV5IGFyZSBub3QgcmV0dXJuZWQgaW4gYFByb2plY3QuZ2V0X2ZpbGVzKClgLgorICAgICMgTm90ZSB0aGF0IGBgP2BgIGFuZCBgYCpgYCBtYXRjaCBhbGwgY2hhcmFjdGVycyBidXQgc2xhc2hlcy4KKyAgICAjICcqLnB5Yyc6IG1hdGNoZXMgJ3Rlc3QucHljJyBhbmQgJ3BrZy90ZXN0LnB5YycKKyAgICAjICdtb2QqLnB5Yyc6IG1hdGNoZXMgJ3Rlc3QvbW9kMS5weWMnIGJ1dCBub3QgJ21vZC8xLnB5YycKKyAgICAjICcuc3ZuJzogbWF0Y2hlcyAncGtnLy5zdm4nIGFuZCBhbGwgb2YgaXRzIGNoaWxkcmVuCisgICAgIyAnYnVpbGQvKi5vJzogbWF0Y2hlcyAnYnVpbGQvbGliLm8nIGJ1dCBub3QgJ2J1aWxkL3N1Yi9saWIubycKKyAgICAjICdidWlsZC8vKi5vJzogbWF0Y2hlcyAnYnVpbGQvbGliLm8nIGFuZCAnYnVpbGQvc3ViL2xpYi5vJworICAgIHByZWZzWydpZ25vcmVkX3Jlc291cmNlcyddID0gWycqLnB5YycsICcqficsICcucm9wZXByb2plY3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuaGcnLCAnLnN2bicsICdfc3ZuJywgJy5naXQnXQorCisgICAgIyBTcGVjaWZpZXMgd2hpY2ggZmlsZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcHl0aG9uIGZpbGVzLiAgSXQgaXMKKyAgICAjIHVzZWZ1bCB3aGVuIHlvdSBoYXZlIHNjcmlwdHMgaW5zaWRlIHlvdXIgcHJvamVjdC4gIE9ubHkgZmlsZXMKKyAgICAjIGVuZGluZyB3aXRoIGBgLnB5YGAgYXJlIGNvbnNpZGVyZWQgdG8gYmUgcHl0aG9uIGZpbGVzIGJ5CisgICAgIyBkZWZhdWx0LgorICAgICNwcmVmc1sncHl0aG9uX2ZpbGVzJ10gPSBbJyoucHknXQorCisgICAgIyBDdXN0b20gc291cmNlIGZvbGRlcnM6ICBCeSBkZWZhdWx0IHJvcGUgc2VhcmNoZXMgdGhlIHByb2plY3QKKyAgICAjIGZvciBmaW5kaW5nIHNvdXJjZSBmb2xkZXJzIChmb2xkZXJzIHRoYXQgc2hvdWxkIGJlIHNlYXJjaGVkCisgICAgIyBmb3IgZmluZGluZyBtb2R1bGVzKS4gIFlvdSBjYW4gYWRkIHBhdGhzIHRvIHRoYXQgbGlzdC4gIE5vdGUKKyAgICAjIHRoYXQgcm9wZSBndWVzc2VzIHByb2plY3Qgc291cmNlIGZvbGRlcnMgY29ycmVjdGx5IG1vc3Qgb2YgdGhlCisgICAgIyB0aW1lOyB1c2UgdGhpcyBpZiB5b3UgaGF2ZSBhbnkgcHJvYmxlbXMuCisgICAgIyBUaGUgZm9sZGVycyBzaG91bGQgYmUgcmVsYXRpdmUgdG8gcHJvamVjdCByb290IGFuZCB1c2UgJy8nIGZvcgorICAgICMgc2VwYXJhdGluZyBmb2xkZXJzIHJlZ2FyZGxlc3Mgb2YgdGhlIHBsYXRmb3JtIHJvcGUgaXMgcnVubmluZyBvbi4KKyAgICAjICdzcmMvbXlfc291cmNlX2ZvbGRlcicgZm9yIGluc3RhbmNlLgorICAgICNwcmVmcy5hZGQoJ3NvdXJjZV9mb2xkZXJzJywgJ3NyYycpCisKKyAgICAjIFlvdSBjYW4gZXh0ZW5kIHB5dGhvbiBwYXRoIGZvciBsb29raW5nIHVwIG1vZHVsZXMKKyAgICAjcHJlZnMuYWRkKCdweXRob25fcGF0aCcsICd+L3B5dGhvbi8nKQorCisgICAgIyBTaG91bGQgcm9wZSBzYXZlIG9iamVjdCBpbmZvcm1hdGlvbiBvciBub3QuCisgICAgcHJlZnNbJ3NhdmVfb2JqZWN0ZGInXSA9IFRydWUKKyAgICBwcmVmc1snY29tcHJlc3Nfb2JqZWN0ZGInXSA9IEZhbHNlCisKKyAgICAjIElmIGBUcnVlYCwgcm9wZSBhbmFseXplcyBlYWNoIG1vZHVsZSB3aGVuIGl0IGlzIGJlaW5nIHNhdmVkLgorICAgIHByZWZzWydhdXRvbWF0aWNfc29hJ10gPSBUcnVlCisgICAgIyBUaGUgZGVwdGggb2YgY2FsbHMgdG8gZm9sbG93IGluIHN0YXRpYyBvYmplY3QgYW5hbHlzaXMKKyAgICBwcmVmc1snc29hX2ZvbGxvd2VkX2NhbGxzJ10gPSAwCisKKyAgICAjIElmIGBGYWxzZWAgd2hlbiBydW5uaW5nIG1vZHVsZXMgb3IgdW5pdCB0ZXN0cyAiZHluYW1pYyBvYmplY3QKKyAgICAjIGFuYWx5c2lzIiBpcyB0dXJuZWQgb2ZmLiAgVGhpcyBtYWtlcyB0aGVtIG11Y2ggZmFzdGVyLgorICAgIHByZWZzWydwZXJmb3JtX2RvYSddID0gVHJ1ZQorCisgICAgIyBSb3BlIGNhbiBjaGVjayB0aGUgdmFsaWRpdHkgb2YgaXRzIG9iamVjdCBEQiB3aGVuIHJ1bm5pbmcuCisgICAgcHJlZnNbJ3ZhbGlkYXRlX29iamVjdGRiJ10gPSBUcnVlCisKKyAgICAjIEhvdyBtYW55IHVuZG9zIHRvIGhvbGQ/CisgICAgcHJlZnNbJ21heF9oaXN0b3J5X2l0ZW1zJ10gPSAzMgorCisgICAgIyBTaG93cyB3aGV0aGVyIHRvIHNhdmUgaGlzdG9yeSBhY3Jvc3Mgc2Vzc2lvbnMuCisgICAgcHJlZnNbJ3NhdmVfaGlzdG9yeSddID0gVHJ1ZQorICAgIHByZWZzWydjb21wcmVzc19oaXN0b3J5J10gPSBGYWxzZQorCisgICAgIyBTZXQgdGhlIG51bWJlciBzcGFjZXMgdXNlZCBmb3IgaW5kZW50aW5nLiAgQWNjb3JkaW5nIHRvCisgICAgIyA6UEVQOmA4YCwgaXQgaXMgYmVzdCB0byB1c2UgNCBzcGFjZXMuICBTaW5jZSBtb3N0IG9mIHJvcGUncworICAgICMgdW5pdC10ZXN0cyB1c2UgNCBzcGFjZXMgaXQgaXMgbW9yZSByZWxpYWJsZSwgdG9vLgorICAgIHByZWZzWydpbmRlbnRfc2l6ZSddID0gNAorCisgICAgIyBCdWlsdGluIGFuZCBjLWV4dGVuc2lvbiBtb2R1bGVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYmUgaW1wb3J0ZWQKKyAgICAjIGFuZCBpbnNwZWN0ZWQgYnkgcm9wZS4KKyAgICBwcmVmc1snZXh0ZW5zaW9uX21vZHVsZXMnXSA9IFtdCisKKyAgICAjIEFkZCBhbGwgc3RhbmRhcmQgYy1leHRlbnNpb25zIHRvIGV4dGVuc2lvbl9tb2R1bGVzIGxpc3QuCisgICAgcHJlZnNbJ2ltcG9ydF9keW5sb2FkX3N0ZG1vZHMnXSA9IFRydWUKKworICAgICMgSWYgYFRydWVgIG1vZHVsZXMgd2l0aCBzeW50YXggZXJyb3JzIGFyZSBjb25zaWRlcmVkIHRvIGJlIGVtcHR5LgorICAgICMgVGhlIGRlZmF1bHQgdmFsdWUgaXMgYEZhbHNlYDsgV2hlbiBgRmFsc2VgIHN5bnRheCBlcnJvcnMgcmFpc2UKKyAgICAjIGByb3BlLmJhc2UuZXhjZXB0aW9ucy5Nb2R1bGVTeW50YXhFcnJvcmAgZXhjZXB0aW9uLgorICAgIHByZWZzWydpZ25vcmVfc3ludGF4X2Vycm9ycyddID0gRmFsc2UKKworICAgICMgSWYgYFRydWVgLCByb3BlIGlnbm9yZXMgdW5yZXNvbHZhYmxlIGltcG9ydHMuICBPdGhlcndpc2UsIHRoZXkKKyAgICAjIGFwcGVhciBpbiB0aGUgaW1wb3J0aW5nIG5hbWVzcGFjZS4KKyAgICBwcmVmc1snaWdub3JlX2JhZF9pbXBvcnRzJ10gPSBGYWxzZQorCisKK2RlZiBwcm9qZWN0X29wZW5lZChwcm9qZWN0KToKKyAgICAiIiJUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhZnRlciBvcGVuaW5nIHRoZSBwcm9qZWN0IiIiCisgICAgIyBEbyB3aGF0ZXZlciB5b3UgbGlrZSBoZXJlIQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzLy5yb3BlcHJvamVjdC9nbG9iYWxuYW1lcyBiL2hvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy8ucm9wZXByb2plY3QvZ2xvYmFsbmFtZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjljNDBjZAotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy8ucm9wZXByb2plY3QvZ2xvYmFsbmFtZXMKQEAgLTAsMCArMSBAQAorgAJ9cQEuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzLy5yb3BlcHJvamVjdC9oaXN0b3J5IGIvaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzLy5yb3BlcHJvamVjdC9oaXN0b3J5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjZDljOTYKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvLnJvcGVwcm9qZWN0L2hpc3RvcnkKQEAgLTAsMCArMSBAQAorgAJdcQEoXXECXXEDZS4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvLnJvcGVwcm9qZWN0L29iamVjdGRiIGIvaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzLy5yb3BlcHJvamVjdC9vYmplY3RkYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWM0MGNkCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzLy5yb3BlcHJvamVjdC9vYmplY3RkYgpAQCAtMCwwICsxIEBACiuAAn1xAS4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2dsYW5jZV9zZXR0aW5ncy5weSBiL2hvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy9fZ2xhbmNlX3NldHRpbmdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZmEzYzMKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2dsYW5jZV9zZXR0aW5ncy5weQpAQCAtMCwwICsxLDM3IEBACit7JS0gZnJvbSAiaG9yaXpvbi9tYXAuamluamEiIGltcG9ydCBzZXJ2ZXIgd2l0aCBjb250ZXh0ICV9CisKK3slLSBpZiBzZXJ2ZXIuYXBwIGlzIGRlZmluZWQgJX0KK3slLSBzZXQgYXBwID0gc2FsdFsncGlsbGFyLmdldCddKCdob3Jpem9uOnNlcnZlcjphcHA6JythcHBfbmFtZSkgJX0KK3slLSBlbHNlICV9Cit7JS0gc2V0IGFwcCA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnaG9yaXpvbjpzZXJ2ZXInKSAlfQoreyUtIGVuZGlmICV9CisKKyMgVGhlIE9QRU5TVEFDS19JTUFHRV9CQUNLRU5EIHNldHRpbmdzIGNhbiBiZSB1c2VkIHRvIGN1c3RvbWl6ZSBmZWF0dXJlcworIyBpbiB0aGUgT3BlblN0YWNrIERhc2hib2FyZCByZWxhdGVkIHRvIHRoZSBJbWFnZSBzZXJ2aWNlLCBzdWNoIGFzIHRoZSBsaXN0CisjIG9mIHN1cHBvcnRlZCBpbWFnZSBmb3JtYXRzLgorT1BFTlNUQUNLX0lNQUdFX0JBQ0tFTkQgPSB7CisgICAgJ2ltYWdlX2Zvcm1hdHMnOiBbCisgICAgICAgICgnJywgJycpLAorICAgICAgICAoJ2FraScsIF8oJ0FLSSAtIEFtYXpvbiBLZXJuZWwgSW1hZ2UnKSksCisgICAgICAgICgnYW1pJywgXygnQU1JIC0gQW1hem9uIE1hY2hpbmUgSW1hZ2UnKSksCisgICAgICAgICgnYXJpJywgXygnQVJJIC0gQW1hem9uIFJhbWRpc2sgSW1hZ2UnKSksCisgICAgICAgICgnaXNvJywgXygnSVNPIC0gT3B0aWNhbCBEaXNrIEltYWdlJykpLAorICAgICAgICAoJ3Fjb3cyJywgXygnUUNPVzIgLSBRRU1VIEVtdWxhdG9yJykpLAorICAgICAgICAoJ3JhdycsIF8oJ1JhdycpKSwKKyAgICAgICAgKCd2ZGknLCBfKCdWREknKSksCisgICAgICAgICgndmhkJywgXygnVkhEJykpLAorICAgICAgICAoJ3ZtZGsnLCBfKCdWTURLJykpLAorICAgICAgICAoJ2RvY2tlcicsIF8oJ0RvY2tlciBDb250YWluZXInKSkKKyAgICBdCit9CisKKyMgVGhlIElNQUdFX0NVU1RPTV9QUk9QRVJUWV9USVRMRVMgc2V0dGluZ3MgaXMgdXNlZCB0byBjdXN0b21pemUgdGhlIHRpdGxlcyBmb3IKKyMgaW1hZ2UgY3VzdG9tIHByb3BlcnR5IGF0dHJpYnV0ZXMgdGhhdCBhcHBlYXIgb24gaW1hZ2UgZGV0YWlsIHBhZ2VzLgorSU1BR0VfQ1VTVE9NX1BST1BFUlRZX1RJVExFUyA9IHsKKyAgICAiYXJjaGl0ZWN0dXJlIjogXygiQXJjaGl0ZWN0dXJlIiksCisgICAgImtlcm5lbF9pZCI6IF8oIktlcm5lbCBJRCIpLAorICAgICJyYW1kaXNrX2lkIjogXygiUmFtZGlzayBJRCIpLAorICAgICJpbWFnZV9zdGF0ZSI6IF8oIkV1Y2Eyb29scyBzdGF0ZSIpLAorICAgICJwcm9qZWN0X2lkIjogXygiUHJvamVjdCBJRCIpLAorICAgICJpbWFnZV90eXBlIjogXygiSW1hZ2UgVHlwZSIpCit9CmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2hvcml6b25fc2V0dGluZ3MucHkgYi9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2hvcml6b25fc2V0dGluZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTExNTA2MgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy9faG9yaXpvbl9zZXR0aW5ncy5weQpAQCAtMCwwICsxLDE1NiBAQAoreyUtIGZyb20gImhvcml6b24vbWFwLmppbmphIiBpbXBvcnQgc2VydmVyIHdpdGggY29udGV4dCAlfQorCit7JS0gaWYgc2VydmVyLmFwcCBpcyBkZWZpbmVkICV9Cit7JS0gc2V0IGFwcCA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnaG9yaXpvbjpzZXJ2ZXI6YXBwOicrYXBwX25hbWUpICV9Cit7JS0gZWxzZSAlfQoreyUtIHNldCBhcHAgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ2hvcml6b246c2VydmVyJykgJX0KK3slLSBlbmRpZiAlfQorCisjIFNwZWNpZnkgYSByZWd1bGFyIGV4cHJlc3Npb24gdG8gdmFsaWRhdGUgdXNlciBwYXNzd29yZHMuCisjIEhPUklaT05fQ09ORklHWyJwYXNzd29yZF92YWxpZGF0b3IiXSA9IHsKKyMgICAgICJyZWdleCI6ICcuKicsCisjICAgICAiaGVscF90ZXh0IjogXygiWW91ciBwYXNzd29yZCBkb2VzIG5vdCBtZWV0IHRoZSByZXF1aXJlbWVudHMuIikKKyMgfQorCisjIFR1cm4gb2ZmIGJyb3dzZXIgYXV0b2NvbXBsZXRpb24gZm9yIHRoZSBsb2dpbiBmb3JtIGlmIHNvIGRlc2lyZWQuCisjIEhPUklaT05fQ09ORklHWyJwYXNzd29yZF9hdXRvY29tcGxldGUiXSA9ICJvZmYiCisKKyMgVGhlIEhvcml6b24gUG9saWN5IEVuZm9yY2VtZW50IGVuZ2luZSB1c2VzIHRoZXNlIHZhbHVlcyB0byBsb2FkIHBlciBzZXJ2aWNlCisjIHBvbGljeSBydWxlIGZpbGVzLiBUaGUgY29udGVudCBvZiB0aGVzZSBmaWxlcyBzaG91bGQgbWF0Y2ggdGhlIGZpbGVzIHRoZQorIyBPcGVuU3RhY2sgc2VydmljZXMgYXJlIHVzaW5nIHRvIGRldGVybWluZSByb2xlIGJhc2VkIGFjY2VzcyBjb250cm9sIGluIHRoZQorIyB0YXJnZXQgaW5zdGFsbGF0aW9uLgorCisjIFBhdGggdG8gZGlyZWN0b3J5IGNvbnRhaW5pbmcgcG9saWN5Lmpzb24gZmlsZXMKKyNQT0xJQ1lfRklMRVNfUEFUSCA9IG9zLnBhdGguam9pbihST09UX1BBVEgsICJjb25mIikKKyMgTWFwIG9mIGxvY2FsIGNvcHkgb2Ygc2VydmljZSBwb2xpY3kgZmlsZXMKK1BPTElDWV9GSUxFUyA9IHsKKyAgICAnaWRlbnRpdHknOiAna2V5c3RvbmVfcG9saWN5Lmpzb24nLAorICAgICdjb21wdXRlJzogJ25vdmFfcG9saWN5Lmpzb24nLAorICAgICdpbWFnZSc6ICdnbGFuY2VfcG9saWN5Lmpzb24nLAorICAgICd2b2x1bWUnOiAnY2luZGVyX3BvbGljeS5qc29uJworfQorCitMT0dHSU5HID0geworICAgICd2ZXJzaW9uJzogMSwKKyAgICAjIFdoZW4gc2V0IHRvIFRydWUgdGhpcyB3aWxsIGRpc2FibGUgYWxsIGxvZ2dpbmcgZXhjZXB0CisgICAgIyBmb3IgbG9nZ2VycyBzcGVjaWZpZWQgaW4gdGhpcyBjb25maWd1cmF0aW9uIGRpY3Rpb25hcnkuIE5vdGUgdGhhdAorICAgICMgaWYgbm90aGluZyBpcyBzcGVjaWZpZWQgaGVyZSBhbmQgZGlzYWJsZV9leGlzdGluZ19sb2dnZXJzIGlzIFRydWUsCisgICAgIyBkamFuZ28uZGIuYmFja2VuZHMgd2lsbCBzdGlsbCBsb2cgdW5sZXNzIGl0IGlzIGRpc2FibGVkIGV4cGxpY2l0bHkuCisgICAgJ2Rpc2FibGVfZXhpc3RpbmdfbG9nZ2Vycyc6IEZhbHNlLAorICAgICdoYW5kbGVycyc6IHsKKyAgICAgICAgJ251bGwnOiB7CisgICAgICAgICAgICAnbGV2ZWwnOiAnREVCVUcnLAorICAgICAgICAgICAgJ2NsYXNzJzogJ2RqYW5nby51dGlscy5sb2cuTnVsbEhhbmRsZXInLAorICAgICAgICB9LAorICAgICAgICAnY29uc29sZSc6IHsKKyAgICAgICAgICAgICMgU2V0IHRoZSBsZXZlbCB0byAiREVCVUciIGZvciB2ZXJib3NlIG91dHB1dCBsb2dnaW5nLgorICAgICAgICAgICAgJ2xldmVsJzogJ0lORk8nLAorICAgICAgICAgICAgJ2NsYXNzJzogJ2xvZ2dpbmcuU3RyZWFtSGFuZGxlcicsCisgICAgICAgIH0sCisgICAgICAgICdmaWxlJzogeworICAgICAgICAgICAgJ2xldmVsJzogJ0RFQlVHJywKKyAgICAgICAgICAgICdjbGFzcyc6ICdsb2dnaW5nLkZpbGVIYW5kbGVyJywKKyAgICAgICAgICAgIHslLSBpZiBhcHBfbmFtZSBpcyBkZWZpbmVkICV9CisgICAgICAgICAgICAnZmlsZW5hbWUnOiAnL3Zhci9sb2cvaG9yaXpvbi97eyBhcHBfbmFtZSB9fV9ob3Jpem9uLmxvZycsCisgICAgICAgICAgICB7JS0gZWxzZSAlfQorICAgICAgICAgICAgJ2ZpbGVuYW1lJzogJy92YXIvbG9nL2hvcml6b24vaG9yaXpvbi5sb2cnLAorICAgICAgICAgICAgeyUtIGVuZGlmICV9CisgICAgICAgIH0sCisgICAgfSwKKyAgICAnbG9nZ2Vycyc6IHsKKyAgICAgICAgIyBMb2dnaW5nIGZyb20gZGphbmdvLmRiLmJhY2tlbmRzIGlzIFZFUlkgdmVyYm9zZSwgc2VuZCB0byBudWxsCisgICAgICAgICMgYnkgZGVmYXVsdC4KKyAgICAgICAgJ2RqYW5nby5kYi5iYWNrZW5kcyc6IHsKKyAgICAgICAgICAgICdoYW5kbGVycyc6IFsnbnVsbCddLAorICAgICAgICAgICAgJ3Byb3BhZ2F0ZSc6IEZhbHNlLAorICAgICAgICB9LAorICAgICAgICAncmVxdWVzdHMnOiB7CisgICAgICAgICAgICAnaGFuZGxlcnMnOiBbJ251bGwnXSwKKyAgICAgICAgICAgICdwcm9wYWdhdGUnOiBGYWxzZSwKKyAgICAgICAgfSwKKyAgICAgICAgJ2hvcml6b24nOiB7CisgICAgICAgICAgICAnaGFuZGxlcnMnOiBbJ2ZpbGUnXSwKKyAgICAgICAgICAgICdsZXZlbCc6ICdERUJVRycsCisgICAgICAgICAgICAncHJvcGFnYXRlJzogRmFsc2UsCisgICAgICAgIH0sCisgICAgICAgICdvcGVuc3RhY2tfZGFzaGJvYXJkJzogeworICAgICAgICAgICAgJ2hhbmRsZXJzJzogWydmaWxlJ10sCisgICAgICAgICAgICAnbGV2ZWwnOiAnREVCVUcnLAorICAgICAgICAgICAgJ3Byb3BhZ2F0ZSc6IEZhbHNlLAorICAgICAgICB9LAorICAgICAgICAnbm92YWNsaWVudCc6IHsKKyAgICAgICAgICAgICdoYW5kbGVycyc6IFsnZmlsZSddLAorICAgICAgICAgICAgJ2xldmVsJzogJ0RFQlVHJywKKyAgICAgICAgICAgICdwcm9wYWdhdGUnOiBGYWxzZSwKKyAgICAgICAgfSwKKyAgICAgICAgJ2NpbmRlcmNsaWVudCc6IHsKKyAgICAgICAgICAgICdoYW5kbGVycyc6IFsnZmlsZSddLAorICAgICAgICAgICAgJ2xldmVsJzogJ0RFQlVHJywKKyAgICAgICAgICAgICdwcm9wYWdhdGUnOiBGYWxzZSwKKyAgICAgICAgfSwKKyAgICAgICAgJ2tleXN0b25lY2xpZW50JzogeworICAgICAgICAgICAgJ2hhbmRsZXJzJzogWydmaWxlJ10sCisgICAgICAgICAgICAnbGV2ZWwnOiAnREVCVUcnLAorICAgICAgICAgICAgJ3Byb3BhZ2F0ZSc6IEZhbHNlLAorICAgICAgICB9LAorICAgICAgICAnZ2xhbmNlY2xpZW50JzogeworICAgICAgICAgICAgJ2hhbmRsZXJzJzogWydmaWxlJ10sCisgICAgICAgICAgICAnbGV2ZWwnOiAnREVCVUcnLAorICAgICAgICAgICAgJ3Byb3BhZ2F0ZSc6IEZhbHNlLAorICAgICAgICB9LAorICAgICAgICAnbmV1dHJvbmNsaWVudCc6IHsKKyAgICAgICAgICAgICdoYW5kbGVycyc6IFsnZmlsZSddLAorICAgICAgICAgICAgJ2xldmVsJzogJ0RFQlVHJywKKyAgICAgICAgICAgICdwcm9wYWdhdGUnOiBGYWxzZSwKKyAgICAgICAgfSwKKyAgICAgICAgJ2hlYXRjbGllbnQnOiB7CisgICAgICAgICAgICAnaGFuZGxlcnMnOiBbJ2ZpbGUnXSwKKyAgICAgICAgICAgICdsZXZlbCc6ICdERUJVRycsCisgICAgICAgICAgICAncHJvcGFnYXRlJzogRmFsc2UsCisgICAgICAgIH0sCisgICAgICAgICdjZWlsb21ldGVyY2xpZW50JzogeworICAgICAgICAgICAgJ2hhbmRsZXJzJzogWydmaWxlJ10sCisgICAgICAgICAgICAnbGV2ZWwnOiAnREVCVUcnLAorICAgICAgICAgICAgJ3Byb3BhZ2F0ZSc6IEZhbHNlLAorICAgICAgICB9LAorICAgICAgICAndHJvdmVjbGllbnQnOiB7CisgICAgICAgICAgICAnaGFuZGxlcnMnOiBbJ2ZpbGUnXSwKKyAgICAgICAgICAgICdsZXZlbCc6ICdERUJVRycsCisgICAgICAgICAgICAncHJvcGFnYXRlJzogRmFsc2UsCisgICAgICAgIH0sCisgICAgICAgICdtaXN0cmFsY2xpZW50JzogeworICAgICAgICAgICAgJ2hhbmRsZXJzJzogWydmaWxlJ10sCisgICAgICAgICAgICAnbGV2ZWwnOiAnREVCVUcnLAorICAgICAgICAgICAgJ3Byb3BhZ2F0ZSc6IEZhbHNlLAorICAgICAgICB9LAorICAgICAgICAnc3dpZnRjbGllbnQnOiB7CisgICAgICAgICAgICAnaGFuZGxlcnMnOiBbJ2ZpbGUnXSwKKyAgICAgICAgICAgICdsZXZlbCc6ICdERUJVRycsCisgICAgICAgICAgICAncHJvcGFnYXRlJzogRmFsc2UsCisgICAgICAgIH0sCisgICAgICAgICdvcGVuc3RhY2tfYXV0aCc6IHsKKyAgICAgICAgICAgICdoYW5kbGVycyc6IFsnZmlsZSddLAorICAgICAgICAgICAgJ2xldmVsJzogJ0RFQlVHJywKKyAgICAgICAgICAgICdwcm9wYWdhdGUnOiBGYWxzZSwKKyAgICAgICAgfSwKKyAgICAgICAgJ3Njc3MuZXhwcmVzc2lvbic6IHsKKyAgICAgICAgICAgICdoYW5kbGVycyc6IFsnZmlsZSddLAorICAgICAgICAgICAgJ2xldmVsJzogJ0RFQlVHJywKKyAgICAgICAgICAgICdwcm9wYWdhdGUnOiBGYWxzZSwKKyAgICAgICAgfSwKKyAgICAgICAgJ25vc2UucGx1Z2lucy5tYW5hZ2VyJzogeworICAgICAgICAgICAgJ2hhbmRsZXJzJzogWydmaWxlJ10sCisgICAgICAgICAgICAnbGV2ZWwnOiAnREVCVUcnLAorICAgICAgICAgICAgJ3Byb3BhZ2F0ZSc6IEZhbHNlLAorICAgICAgICB9LAorICAgICAgICAnZGphbmdvJzogeworICAgICAgICAgICAgJ2hhbmRsZXJzJzogWydmaWxlJ10sCisgICAgICAgICAgICAnbGV2ZWwnOiAnREVCVUcnLAorICAgICAgICAgICAgJ3Byb3BhZ2F0ZSc6IEZhbHNlLAorICAgICAgICB9LAorICAgICAgICAnaXNvODYwMSc6IHsKKyAgICAgICAgICAgICdoYW5kbGVycyc6IFsnbnVsbCddLAorICAgICAgICAgICAgJ3Byb3BhZ2F0ZSc6IEZhbHNlLAorICAgICAgICB9LAorICAgIH0KK30KZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy9fa2V5c3RvbmVfc2V0dGluZ3MucHkgYi9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2tleXN0b25lX3NldHRpbmdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViNDk4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2tleXN0b25lX3NldHRpbmdzLnB5CkBAIC0wLDAgKzEsODIgQEAKK3slLSBmcm9tICJob3Jpem9uL21hcC5qaW5qYSIgaW1wb3J0IHNlcnZlciB3aXRoIGNvbnRleHQgJX0KKworeyUtIGlmIHNlcnZlci5hcHAgaXMgZGVmaW5lZCAlfQoreyUtIHNldCBhcHAgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ2hvcml6b246c2VydmVyOmFwcDonK2FwcF9uYW1lKSAlfQoreyUtIGVsc2UgJX0KK3slLSBzZXQgYXBwID0gc2FsdFsncGlsbGFyLmdldCddKCdob3Jpem9uOnNlcnZlcicpICV9Cit7JS0gZW5kaWYgJX0KKworIyBPdmVycmlkZXMgZm9yIE9wZW5TdGFjayBBUEkgdmVyc2lvbnMuIFVzZSB0aGlzIHNldHRpbmcgdG8gZm9yY2UgdGhlCisjIE9wZW5TdGFjayBkYXNoYm9hcmQgdG8gdXNlIGEgc3BlY2ZpYyBBUEkgdmVyc2lvbiBmb3IgYSBnaXZlbiBzZXJ2aWNlIEFQSS4KKyMgTk9URTogVGhlIHZlcnNpb24gc2hvdWxkIGJlIGZvcm1hdHRlZCBhcyBpdCBhcHBlYXJzIGluIHRoZSBVUkwgZm9yIHRoZQorIyBzZXJ2aWNlIEFQSS4gRm9yIGV4YW1wbGUsIFRoZSBpZGVudGl0eSBzZXJ2aWNlIEFQSXMgaGF2ZSBpbmNvbnNpc3RlbnQKKyMgdXNlIG9mIHRoZSBkZWNpbWFsIHBvaW50LCBzbyB2YWxpZCBvcHRpb25zIHdvdWxkIGJlICIyLjAiIG9yICIzIi4KK3slLSBpZiBhcHAuYXBpX3ZlcnNpb25zIGlzIGRlZmluZWQgJX0KK09QRU5TVEFDS19BUElfVkVSU0lPTlMgPSB7Cit7JS0gZm9yIGtleSwgdmFsdWUgaW4gYXBwLmFwaV92ZXJzaW9ucy5pdGVyaXRlbXMoKSAlfQorICAgICJ7eyBrZXkgfX0iOiB7eyB2YWx1ZSB9fXslIGlmIG5vdCBsb29wLmxhc3QgJX0seyUgZW5kaWYgJX0KK3slLSBlbmRmb3IgJX0KK30KK3slLSBlbmRpZiAlfQorIyBTZXQgdGhpcyB0byBUcnVlIGlmIHJ1bm5pbmcgb24gbXVsdGktZG9tYWluIG1vZGVsLiBXaGVuIHRoaXMgaXMgZW5hYmxlZCwgaXQKKyMgd2lsbCByZXF1aXJlIHVzZXIgdG8gZW50ZXIgdGhlIERvbWFpbiBuYW1lIGluIGFkZGl0aW9uIHRvIHVzZXJuYW1lIGZvciBsb2dpbi4KKyMgT1BFTlNUQUNLX0tFWVNUT05FX01VTFRJRE9NQUlOX1NVUFBPUlQgPSBGYWxzZQorCisjIE92ZXJyaWRlcyB0aGUgZGVmYXVsdCBkb21haW4gdXNlZCB3aGVuIHJ1bm5pbmcgb24gc2luZ2xlLWRvbWFpbiBtb2RlbAorIyB3aXRoIEtleXN0b25lIFYzLiBBbGwgZW50aXRpZXMgd2lsbCBiZSBjcmVhdGVkIGluIHRoZSBkZWZhdWx0IGRvbWFpbi4KKyMgT1BFTlNUQUNLX0tFWVNUT05FX0RFRkFVTFRfRE9NQUlOID0gJ0RlZmF1bHQnCisKKyMgRm9yIG11bHRpcGxlIHJlZ2lvbnMgdW5jb21tZW50IHRoaXMgY29uZmlndXJhdGlvbiwgYW5kIGFkZCAoZW5kcG9pbnQsIHRpdGxlKS4KKyMgQVZBSUxBQkxFX1JFR0lPTlMgPSBbCisjICAgICAoJ2h0dHA6Ly9jbHVzdGVyMS5leGFtcGxlLmNvbTo1MDAwL3YyLjAnLCAnY2x1c3RlcjEnKSwKKyMgICAgICgnaHR0cDovL2NsdXN0ZXIyLmV4YW1wbGUuY29tOjUwMDAvdjIuMCcsICdjbHVzdGVyMicpLAorIyBdCisKK09QRU5TVEFDS19IT1NUID0gInt7IGFwcC5pZGVudGl0eS5ob3N0IH19IgoreyUtIGlmIGFwcC5nZXQoJ2FwaV92ZXJzaW9ucycsIHt9KS5pZGVudGl0eSBpcyBkZWZpbmVkICV9CitPUEVOU1RBQ0tfS0VZU1RPTkVfVVJMID0gImh0dHB7JSBpZiBhcHAuaWRlbnRpdHkuZW5jcnlwdGlvbiA9PSAnc3NsJyAlfXN7JSBlbmRpZiAlfTovLyVzOnt7IGFwcC5pZGVudGl0eS5wb3J0IH19L3Z7eyBhcHAuYXBpX3ZlcnNpb25zLmlkZW50aXR5IH19IiAlIE9QRU5TVEFDS19IT1NUCit7JS0gZWxzZSAlfQorT1BFTlNUQUNLX0tFWVNUT05FX1VSTCA9ICJodHRweyUgaWYgYXBwLmlkZW50aXR5LmVuY3J5cHRpb24gPT0gJ3NzbCcgJX1zeyUgZW5kaWYgJX06Ly8lczp7eyBhcHAuaWRlbnRpdHkucG9ydCB9fS92Mi4wIiAlIE9QRU5TVEFDS19IT1NUCit7JS0gZW5kaWYgJX0KKworeyUtIGlmIGFwcC5nZXQoJ211bHRpZG9tYWluJywgZmFsc2UpICV9CitPUEVOU1RBQ0tfS0VZU1RPTkVfTVVMVElET01BSU5fU1VQUE9SVCA9IFRydWUKK09QRU5TVEFDS19LRVlTVE9ORV9ERUZBVUxUX0RPTUFJTiA9ICdkZWZhdWx0JworeyUtIGVuZGlmICV9CisKK09QRU5TVEFDS19LRVlTVE9ORV9ERUZBVUxUX1JPTEUgPSAiTWVtYmVyIgorCisjIERpc2FibGUgU1NMIGNlcnRpZmljYXRlIGNoZWNrcyAodXNlZnVsIGZvciBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZXMpOgoreyUtIGlmIGFwcC5pZGVudGl0eS5lbmNyeXB0aW9uID09ICdzc2wnICV9CitPUEVOU1RBQ0tfU1NMX05PX1ZFUklGWSA9IFRydWUKK3slLSBlbmRpZiAlfQorCisjIFRoZSBDQSBjZXJ0aWZpY2F0ZSB0byB1c2UgdG8gdmVyaWZ5IFNTTCBjb25uZWN0aW9ucworIyBPUEVOU1RBQ0tfU1NMX0NBQ0VSVCA9ICcvcGF0aC90by9jYWNlcnQucGVtJworCisjIE9QRU5TVEFDS19FTkRQT0lOVF9UWVBFIHNwZWNpZmllcyB0aGUgZW5kcG9pbnQgdHlwZSB0byB1c2UgZm9yIHRoZSBlbmRwb2ludHMKKyMgaW4gdGhlIEtleXN0b25lIHNlcnZpY2UgY2F0YWxvZy4gVXNlIHRoaXMgc2V0dGluZyB3aGVuIEhvcml6b24gaXMgcnVubmluZworIyBleHRlcm5hbCB0byB0aGUgT3BlblN0YWNrIGVudmlyb25tZW50LiBUaGUgZGVmYXVsdCBpcyAncHVibGljVVJMJy4KK09QRU5TVEFDS19FTkRQT0lOVF9UWVBFID0gInB1YmxpY1VSTCIKKworIyBTRUNPTkRBUllfRU5EUE9JTlRfVFlQRSBzcGVjaWZpZXMgdGhlIGZhbGxiYWNrIGVuZHBvaW50IHR5cGUgdG8gdXNlIGluIHRoZQorIyBjYXNlIHRoYXQgT1BFTlNUQUNLX0VORFBPSU5UX1RZUEUgaXMgbm90IHByZXNlbnQgaW4gdGhlIGVuZHBvaW50cworIyBpbiB0aGUgS2V5c3RvbmUgc2VydmljZSBjYXRhbG9nLiBVc2UgdGhpcyBzZXR0aW5nIHdoZW4gSG9yaXpvbiBpcyBydW5uaW5nCisjIGV4dGVybmFsIHRvIHRoZSBPcGVuU3RhY2sgZW52aXJvbm1lbnQuIFRoZSBkZWZhdWx0IGlzIE5vbmUuICBUaGlzCisjIHZhbHVlIHNob3VsZCBkaWZmZXIgZnJvbSBPUEVOU1RBQ0tfRU5EUE9JTlRfVFlQRSBpZiB1c2VkLgorI1NFQ09OREFSWV9FTkRQT0lOVF9UWVBFID0gInB1YmxpY1VSTCIKKworIyBUaGUgT1BFTlNUQUNLX0tFWVNUT05FX0JBQ0tFTkQgc2V0dGluZ3MgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlCisjIGNhcGFiaWxpdGllcyBvZiB0aGUgYXV0aCBiYWNrZW5kIGZvciBLZXlzdG9uZS4KKyMgSWYgS2V5c3RvbmUgaGFzIGJlZW4gY29uZmlndXJlZCB0byB1c2UgTERBUCBhcyB0aGUgYXV0aCBiYWNrZW5kIHRoZW4gc2V0CisjIGNhbl9lZGl0X3VzZXIgdG8gRmFsc2UgYW5kIG5hbWUgdG8gJ2xkYXAnLgorIworIyBUT0RPKHRyZXMpOiBSZW1vdmUgdGhlc2Ugb25jZSBLZXlzdG9uZSBoYXMgYW4gQVBJIHRvIGlkZW50aWZ5IGF1dGggYmFja2VuZC4KK09QRU5TVEFDS19LRVlTVE9ORV9CQUNLRU5EID0geworICAgICduYW1lJzogJ25hdGl2ZScsCisgICAgJ2Nhbl9lZGl0X3VzZXInOiBUcnVlLAorICAgICdjYW5fZWRpdF9ncm91cCc6IFRydWUsCisgICAgJ2Nhbl9lZGl0X3Byb2plY3QnOiBUcnVlLAorICAgICdjYW5fZWRpdF9kb21haW4nOiBUcnVlLAorICAgICdjYW5fZWRpdF9yb2xlJzogVHJ1ZQorfQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzL19sb2NhbF9zZXR0aW5ncy5weSBiL2hvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy9fbG9jYWxfc2V0dGluZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI4ODg4MgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy9fbG9jYWxfc2V0dGluZ3MucHkKQEAgLTAsMCArMSwxNzggQEAKK3slLSBmcm9tICJob3Jpem9uL21hcC5qaW5qYSIgaW1wb3J0IHNlcnZlciB3aXRoIGNvbnRleHQgJX0KKworeyUtIGlmIHNlcnZlci5hcHAgaXMgZGVmaW5lZCAlfQoreyUtIHNldCBhcHAgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ2hvcml6b246c2VydmVyOmFwcDonK2FwcF9uYW1lKSAlfQoreyUtIGVsc2UgJX0KK3slLSBzZXQgYXBwID0gc2FsdFsncGlsbGFyLmdldCddKCdob3Jpem9uOnNlcnZlcicpICV9Cit7JS0gZW5kaWYgJX0KKworREVCVUcgPSB7JSBpZiBhcHAuZ2V0KCdkZXZlbG9wbWVudCcsIEZhbHNlKSAlfVRydWV7JSBlbHNlICV9RmFsc2V7JSBlbmRpZiAlfQorCitURU1QTEFURV9ERUJVRyA9IERFQlVHCisKK0FMTE9XRURfSE9TVFMgPSBbJyonXQorCit7JS0gaWYgYXBwLnNzbCBpcyBkZWZpbmVkICV9Cit7JS0gaWYgYXBwLnNzbC5lbmFibGVkICV9CitTRUNVUkVfUFJPWFlfU1NMX0hFQURFUiA9ICgnSFRUUF9YX0ZPUldBUkRFRF9QUk9UT0NPTCcsICdodHRwcycpCitDU1JGX0NPT0tJRV9TRUNVUkUgPSBUcnVlCitTRVNTSU9OX0NPT0tJRV9TRUNVUkUgPSBUcnVlCit7JS0gZW5kaWYgJX0KK3slLSBlbmRpZiAlfQorCitMT0NBTF9QQVRIID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCisKK1NFQ1JFVF9LRVkgPSAne3sgYXBwLnNlY3JldF9rZXkgfX0nCisKK0NBQ0hFUyA9IHsKKyAgICAnZGVmYXVsdCc6IHsKKyAgICAgICAgJ0JBQ0tFTkQnOiAnZGphbmdvLmNvcmUuY2FjaGUuYmFja2VuZHMubWVtY2FjaGVkLk1lbWNhY2hlZENhY2hlJywKKyAgICAgICAgeyUtIGlmIGFwcC5jYWNoZS5tZW1iZXJzIGlzIGRlZmluZWQgJX0KKyAgICAgICAgJ0xPQ0FUSU9OJzogInslLSBmb3IgbWVtYmVyIGluIGFwcC5jYWNoZS5tZW1iZXJzICV9e3sgbWVtYmVyLmhvc3QgfX06e3sgbWVtYmVyLnBvcnQgfX17JSBpZiBub3QgbG9vcC5sYXN0ICV9O3slIGVuZGlmICV9eyUtIGVuZGZvciAlfSIKKyAgICAgICAgeyUtIGVsc2UgJX0KKyAgICAgICAgJ0xPQ0FUSU9OJzogJ3t7IGFwcC5jYWNoZS5ob3N0IH19Ont7IGFwcC5jYWNoZS5wb3J0IH19JywKKyAgICAgICAgeyUtIGVuZGlmICV9CisgICAgfQorfQorCisjIFNlbmQgZW1haWwgdG8gdGhlIGNvbnNvbGUgYnkgZGVmYXVsdAorRU1BSUxfQkFDS0VORCA9ICdkamFuZ28uY29yZS5tYWlsLmJhY2tlbmRzLmNvbnNvbGUuRW1haWxCYWNrZW5kJworIyBPciBzZW5kIHRoZW0gdG8gL2Rldi9udWxsCisjRU1BSUxfQkFDS0VORCA9ICdkamFuZ28uY29yZS5tYWlsLmJhY2tlbmRzLmR1bW15LkVtYWlsQmFja2VuZCcKKworIyBDb25maWd1cmUgdGhlc2UgZm9yIHlvdXIgb3V0Z29pbmcgZW1haWwgaG9zdAorIyBFTUFJTF9IT1NUID0gJ3NtdHAubXktY29tcGFueS5jb20nCisjIEVNQUlMX1BPUlQgPSAyNQorIyBFTUFJTF9IT1NUX1VTRVIgPSAnZGphbmdvbWFpbCcKKyMgRU1BSUxfSE9TVF9QQVNTV09SRCA9ICd0b3Atc2VjcmV0IScKKworIyBUaGUgbnVtYmVyIG9mIG9iamVjdHMgKFN3aWZ0IGNvbnRhaW5lcnMvb2JqZWN0cyBvciBpbWFnZXMpIHRvIGRpc3BsYXkKKyMgb24gYSBzaW5nbGUgcGFnZSBiZWZvcmUgcHJvdmlkaW5nIGEgcGFnaW5nIGVsZW1lbnQgKGEgIm1vcmUiIGxpbmspCisjIHRvIHBhZ2luYXRlIHJlc3VsdHMuCitBUElfUkVTVUxUX0xJTUlUID0gMTAwMAorQVBJX1JFU1VMVF9QQUdFX1NJWkUgPSAyMAorCisjIFRoZSB0aW1lem9uZSBvZiB0aGUgc2VydmVyLiBUaGlzIHNob3VsZCBjb3JyZXNwb25kIHdpdGggdGhlIHRpbWV6b25lCisjIG9mIHlvdXIgZW50aXJlIE9wZW5TdGFjayBpbnN0YWxsYXRpb24sIGFuZCBob3BlZnVsbHkgYmUgaW4gVVRDLgorVElNRV9aT05FID0gIlVUQyIKKworQ09NUFJFU1NfT0ZGTElORSA9IFRydWUKKworIyBUcm92ZSB1c2VyIGFuZCBkYXRhYmFzZSBleHRlbnNpb24gc3VwcG9ydC4gQnkgZGVmYXVsdCBzdXBwb3J0IGZvcgorIyBjcmVhdGluZyB1c2VycyBhbmQgZGF0YWJhc2VzIG9uIGRhdGFiYXNlIGluc3RhbmNlcyBpcyB0dXJuZWQgb24uCisjIFRvIGRpc2FibGUgdGhlc2UgZXh0ZW5zaW9ucyBzZXQgdGhlIHBlcm1pc3Npb24gaGVyZSB0byBzb21ldGhpbmcKKyMgdW51c2FibGUgc3VjaCBhcyBbIiEiXS4KKyMgVFJPVkVfQUREX1VTRVJfUEVSTVMgPSBbXQorIyBUUk9WRV9BRERfREFUQUJBU0VfUEVSTVMgPSBbXQorCit7JS0gaWYgYXBwLnVlbmNfYXBpIGlzIGRlZmluZWQgJX0KK1VFTkNfSE9TVCA9ICd7eyBhcHAudWVuY19hcGkuaG9zdCB9fScKK1VFTkNfUE9SVCA9ICd7eyBhcHAudWVuY19hcGkucG9ydCB9fScKK3slLSBlbmRpZiAlfQorCit7JS0gaWYgYXBwLmNvbnRyb2xfbm9kZXMgaXMgZGVmaW5lZCAlfQorT1BFTlNUQUNLX0NPTlRST0xfTk9ERVMgPSB7eyBhcHAuY29udHJvbF9ub2Rlc3xweXRob24gfX0KK3slLSBlbmRpZiAlfQorCit7JS0gaWYgYXBwLnNlbnN1X2FwaSBpcyBkZWZpbmVkICV9Cit7JS0gaWYgYXBwLnNlbnN1X2FwaS5ob3N0IGlzIGRlZmluZWQgJX0KK1NFTlNVX0hPU1QgPSAne3sgYXBwLnNlbnN1X2FwaS5ob3N0IH19JworU0VOU1VfUE9SVCA9ICd7eyBhcHAuc2Vuc3VfYXBpLnBvcnQgfX0nCit7JS0gZWxzZSAlfQorU0VOU1VfQVBJID0ge3sgYXBwLnNlbnN1X2FwaXxweXRob24gfX0KK2RlZiBjaGVja19maWx0ZXIoY2hlY2spOgorICAgIHJldHVybiAiOiIuam9pbihjaGVja1snbmFtZSddLnNwbGl0KCJfIilbMTotMV0pCitTRU5TVV9DSEVDS19GSUxURVIgPSBjaGVja19maWx0ZXIKK3slLSBlbmRpZiAlfQoreyUtIGVuZGlmICV9CisKK3slLSBpZiBhcHAua2VkYl9hcGkgaXMgZGVmaW5lZCAlfQorS0VEQl9IT1NUID0gJ3t7IGFwcC5rZWRiX2FwaS5ob3N0IH19JworS0VEQl9QT1JUID0gJ3t7IGFwcC5rZWRiX2FwaS5wb3J0IH19JworeyUtIGVuZGlmICV9CisKK3slLSBpZiBhcHAuY29sZF9hcGkgaXMgZGVmaW5lZCAlfQorQ09MRF9IT1NUID0gJ3t7IGFwcC5jb2xkX2FwaS5ob3N0IH19JworQ09MRF9QT1JUID0gJ3t7IGFwcC5jb2xkX2FwaS5wb3J0IH19JworeyUtIGVuZGlmICV9CisKK3slLSBpZiBhcHAucm9ib3RpY2VfYXBpIGlzIGRlZmluZWQgJX0KK1JPQk9USUNFX0hPU1QgPSAne3sgYXBwLnJvYm90aWNlX2FwaS5ob3N0IH19JworUk9CT1RJQ0VfUE9SVCA9ICd7eyBhcHAucm9ib3RpY2VfYXBpLnBvcnQgfX0nCit7JS0gZW5kaWYgJX0KKworeyUtIGlmIGFwcC5jc2JfYXBpIGlzIGRlZmluZWQgJX0KK0NTQl9IT1NUID0gJ3t7IGFwcC5jc2JfYXBpLmhvc3QgfX0nCitDU0JfUE9SVCA9ICd7eyBhcHAuY3NiX2FwaS5wb3J0IH19JworQVVUSEVOVElDQVRJT05fQkFDS0VORFMgPSAoJ2NzYl9hdXRoLmJhY2tlbmQuQ1NCYWNrZW5kJywpCit7JS0gZW5kaWYgJX0KKworeyUtIGlmIGFwcC5oZWxwZGVza19hcGkgaXMgZGVmaW5lZCAlfQorSEVMUERFU0tfSE9TVCA9ICd7eyBhcHAuaGVscGRlc2tfYXBpLmhvc3QgfX0nCitIRUxQREVTS19QT1JUID0gJ3t7IGFwcC5oZWxwZGVza19hcGkucG9ydCB9fScKK3slLSBlbmRpZiAlfQorCit7JS0gZm9yIHBsdWdpbl9uYW1lLCBwbHVnaW4gaW4gYXBwLmdldCgncGx1Z2luJywge30pLml0ZXJpdGVtcygpICV9CisKK3slLSBpZiBwbHVnaW4uZGF0YWJhc2UgaXMgZGVmaW5lZCAlfQoreyUtIHNldCBkYiA9IHBsdWdpbi5kYXRhYmFzZSAlfQorUkFMTFlfREIgPSAie3sgZGIuZW5naW5lIH19Oi8ve3sgZGIudXNlcm5hbWUgfX06e3sgZGIucGFzc3dvcmQgfX1Ae3sgZGIuZ2V0KCdob3N0JywgJzEyNy4wLjAuMScpIH19L3t7IGRiLm5hbWUgfX0iCit7JS0gZW5kaWYgJX0KKworeyUtIGlmIHBsdWdpbi5vdmVycmlkZSBpcyBkZWZpbmVkICV9CitIT1JJWk9OX0NPTkZJR1snY3VzdG9taXphdGlvbl9tb2R1bGUnXSA9ICd7eyBwbHVnaW4uYXBwIH19Lm92ZXJyaWRlcycKK3slLSBlbmRpZiAlfQorCit7JS0gaWYgcGx1Z2luLm1hc2tfdXJsIGlzIGRlZmluZWQgJX0KK0FQSV9NQVNLX1VSTCA9ICd7eyBwbHVnaW4ubWFza191cmwgfX0nCit7JS0gZW5kaWYgJX0KKworeyUtIGlmIHBsdWdpbi5jb25maWcgaXMgZGVmaW5lZCAlfQore3sgcGx1Z2luX25hbWV8dXBwZXIgfX1fQ09ORklHID0ge3sgcGx1Z2luLmNvbmZpZ3xweXRob24gfX0KK3slLSBlbmRpZiAlfQorCit7JS0gaWYgcGx1Z2luLm1hc2tfcHJvdG9jb2wgaXMgZGVmaW5lZCAlfQorQVBJX01BU0tfUFJPVE9DT0wgPSAne3sgcGx1Z2luLm1hc2tfcHJvdG9jb2wgfX0nCit7JS0gZW5kaWYgJX0KKworeyUtIGlmIHBsdWdpbi5tZXRyaWMgaXMgZGVmaW5lZCAlfQoreyUtIGlmIHBsdWdpbi5tZXRyaWMuZW5naW5lID09ICJncmFwaGl0ZSIgJX0KK0dSQVBISVRFX0hPU1QgPSAie3sgcGx1Z2luLm1ldHJpYy5ob3N0IH19IgorR1JBUEhJVEVfUE9SVCA9ICJ7eyBwbHVnaW4ubWV0cmljLnBvcnQgfX0iCitHUkFQSElURV9FTkRQT0lOVCA9ICdodHRwOi8vJXM6JXMnICUgKEdSQVBISVRFX0hPU1QsIEdSQVBISVRFX1BPUlQpCit7JS0gZW5kaWYgJX0KK3slLSBlbmRpZiAlfQorCit7JS0gaWYgcGx1Z2luLm92ZXJyaWRlcyBpcyBkZWZpbmVkICV9CitPVkVSUklERVMgPSAoCisgICAgeyUtIGZvciBvdmVycmlkZSBpbiBwbHVnaW4ub3ZlcnJpZGVzICV9CisgICAgInt7IG92ZXJyaWRlIH19IiwKKyAgICB7JS0gZW5kZm9yICV9CispCit7JS0gZW5kaWYgJX0KKworeyUtIGlmIHBsdWdpbl9uYW1lID09ICJzYWhhcmEiICV9CitTQUhBUkFfVVNFX05FVVRST04gPSBUcnVlCitBVVRPX0FTU0lHTk1FTlRfRU5BQkxFRCA9IEZhbHNlCit7JS0gZW5kaWYgJX0KKworeyUtIGlmIHBsdWdpbl9uYW1lID09ICJjb250cmFpbCIgYW5kIGFwcC5nZXQoInZlcnNpb24iLCAianVubyIpID09ICJqdW5vIiAlfQorZnJvbSBvcGVuc3RhY2tfZGFzaGJvYXJkLnNldHRpbmdzIGltcG9ydCBTVEFUSUNGSUxFU19ESVJTCitpbXBvcnQgeHN0YXRpYworZnJvbSBjb250cmFpbF9vcGVuc3RhY2tfZGFzaGJvYXJkLm9wZW5zdGFja19kYXNoYm9hcmQueHN0YXRpYy5wa2cgaW1wb3J0IGNvbnRyYWlsCisKK3BrZyA9IF9faW1wb3J0X18oJ2NvbnRyYWlsX29wZW5zdGFja19kYXNoYm9hcmQub3BlbnN0YWNrX2Rhc2hib2FyZCcpCisKK1NUQVRJQ0ZJTEVTX0RJUlMuYXBwZW5kKCgnZGFzaGJvYXJkL2pzLycsIHhzdGF0aWMubWFpbi5YU3RhdGljKGNvbnRyYWlsKS5iYXNlX2RpcikpCisKK3slLSBlbmRpZiAlfQorCit7JS0gZW5kZm9yICV9CisKK3slLSBpZiBhcHAubG9nZ2luZyBpcyBkZWZpbmVkICV9CitSQVZFTl9DT05GSUcgPSB7CisgICAgJ2Rzbic6ICd7eyBhcHAubG9nZ2luZy5kc24gfX0nLAorfQoreyUtIGVuZGlmICV9CisKK1NJVEVfQlJBTkRJTkcgPSAne3sgYXBwLmdldCgnYnJhbmRpbmcnLCAnT3BlblN0YWNrIERhc2hib2FyZCcpIH19JwpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzL19uZXV0cm9uX3NldHRpbmdzLnB5IGIvaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzL19uZXV0cm9uX3NldHRpbmdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3MTRiN2MKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX25ldXRyb25fc2V0dGluZ3MucHkKQEAgLTAsMCArMSwxMzQgQEAKK3slLSBmcm9tICJob3Jpem9uL21hcC5qaW5qYSIgaW1wb3J0IHNlcnZlciB3aXRoIGNvbnRleHQgJX0KKworeyUtIGlmIHNlcnZlci5hcHAgaXMgZGVmaW5lZCAlfQoreyUtIHNldCBhcHAgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ2hvcml6b246c2VydmVyOmFwcDonK2FwcF9uYW1lKSAlfQoreyUtIGVsc2UgJX0KK3slLSBzZXQgYXBwID0gc2FsdFsncGlsbGFyLmdldCddKCdob3Jpem9uOnNlcnZlcicpICV9Cit7JS0gZW5kaWYgJX0KKworIyBEaXNhYmxlIHNpbXBsaWZpZWQgZmxvYXRpbmcgSVAgYWRkcmVzcyBtYW5hZ2VtZW50IGZvciBkZXBsb3ltZW50cyB3aXRoCisjIG11bHRpcGxlIGZsb2F0aW5nIElQIHBvb2xzIG9yIGNvbXBsZXggbmV0d29yayByZXF1aXJlbWVudHMuCisjIEhPUklaT05fQ09ORklHWyJzaW1wbGVfaXBfbWFuYWdlbWVudCJdID0gRmFsc2UKKworIyBUaGUgT1BFTlNUQUNLX05FVVRST05fTkVUV09SSyBzZXR0aW5ncyBjYW4gYmUgdXNlZCB0byBlbmFibGUgb3B0aW9uYWwKKyMgc2VydmljZXMgcHJvdmlkZWQgYnkgbmV1dHJvbi4gT3B0aW9ucyBjdXJyZW5seSBhdmFpbGFibGUgYXJlIGxvYWQKKyMgYmFsYW5jZXIgc2VydmljZSwgc2VjdXJpdHkgZ3JvdXBzLCBxdW90YXMsIFZQTiBzZXJ2aWNlLgorT1BFTlNUQUNLX05FVVRST05fTkVUV09SSyA9IHsKKyAgICAnZW5hYmxlX2xiJzogVHJ1ZSwKKyAgICAnZW5hYmxlX2ZpcmV3YWxsJzogRmFsc2UsCisgICAgJ2VuYWJsZV9xdW90YXMnOiBUcnVlLAorICAgICdlbmFibGVfc2VjdXJpdHlfZ3JvdXAnOiBUcnVlLAorICAgICdlbmFibGVfdnBuJzogRmFsc2UsCisgICAgIyBUaGUgcHJvZmlsZV9zdXBwb3J0IG9wdGlvbiBpcyB1c2VkIHRvIGRldGVjdCBpZiBhbiBleHRlcm5hIGxyb3V0ZXIgY2FuIGJlCisgICAgIyBjb25maWd1cmVkIHZpYSB0aGUgZGFzaGJvYXJkLiBXaGVuIHVzaW5nIHNwZWNpZmljIHBsdWdpbnMgdGhlCisgICAgIyBwcm9maWxlX3N1cHBvcnQgY2FuIGJlIHR1cm5lZCBvbiBpZiBuZWVkZWQuCisgICAgJ3Byb2ZpbGVfc3VwcG9ydCc6IE5vbmUsCisgICAgIydwcm9maWxlX3N1cHBvcnQnOiAnY2lzY28nLAorfQorCisjICdkaXJlY3Rpb24nIHNob3VsZCBub3QgYmUgc3BlY2lmaWVkIGZvciBhbGxfdGNwL3VkcC9pY21wLgorIyBJdCBpcyBzcGVjaWZpZWQgaW4gdGhlIGZvcm0uCitTRUNVUklUWV9HUk9VUF9SVUxFUyA9IHsKKyAgICAnYWxsX3RjcCc6IHsKKyAgICAgICAgJ25hbWUnOiAnQUxMIFRDUCcsCisgICAgICAgICdpcF9wcm90b2NvbCc6ICd0Y3AnLAorICAgICAgICAnZnJvbV9wb3J0JzogJzEnLAorICAgICAgICAndG9fcG9ydCc6ICc2NTUzNScsCisgICAgfSwKKyAgICAnYWxsX3VkcCc6IHsKKyAgICAgICAgJ25hbWUnOiAnQUxMIFVEUCcsCisgICAgICAgICdpcF9wcm90b2NvbCc6ICd1ZHAnLAorICAgICAgICAnZnJvbV9wb3J0JzogJzEnLAorICAgICAgICAndG9fcG9ydCc6ICc2NTUzNScsCisgICAgfSwKKyAgICAnYWxsX2ljbXAnOiB7CisgICAgICAgICduYW1lJzogJ0FMTCBJQ01QJywKKyAgICAgICAgJ2lwX3Byb3RvY29sJzogJ2ljbXAnLAorICAgICAgICAnZnJvbV9wb3J0JzogJy0xJywKKyAgICAgICAgJ3RvX3BvcnQnOiAnLTEnLAorICAgIH0sCisgICAgJ3NzaCc6IHsKKyAgICAgICAgJ25hbWUnOiAnU1NIJywKKyAgICAgICAgJ2lwX3Byb3RvY29sJzogJ3RjcCcsCisgICAgICAgICdmcm9tX3BvcnQnOiAnMjInLAorICAgICAgICAndG9fcG9ydCc6ICcyMicsCisgICAgfSwKKyAgICAnc210cCc6IHsKKyAgICAgICAgJ25hbWUnOiAnU01UUCcsCisgICAgICAgICdpcF9wcm90b2NvbCc6ICd0Y3AnLAorICAgICAgICAnZnJvbV9wb3J0JzogJzI1JywKKyAgICAgICAgJ3RvX3BvcnQnOiAnMjUnLAorICAgIH0sCisgICAgJ2Rucyc6IHsKKyAgICAgICAgJ25hbWUnOiAnRE5TJywKKyAgICAgICAgJ2lwX3Byb3RvY29sJzogJ3RjcCcsCisgICAgICAgICdmcm9tX3BvcnQnOiAnNTMnLAorICAgICAgICAndG9fcG9ydCc6ICc1MycsCisgICAgfSwKKyAgICAnaHR0cCc6IHsKKyAgICAgICAgJ25hbWUnOiAnSFRUUCcsCisgICAgICAgICdpcF9wcm90b2NvbCc6ICd0Y3AnLAorICAgICAgICAnZnJvbV9wb3J0JzogJzgwJywKKyAgICAgICAgJ3RvX3BvcnQnOiAnODAnLAorICAgIH0sCisgICAgJ3BvcDMnOiB7CisgICAgICAgICduYW1lJzogJ1BPUDMnLAorICAgICAgICAnaXBfcHJvdG9jb2wnOiAndGNwJywKKyAgICAgICAgJ2Zyb21fcG9ydCc6ICcxMTAnLAorICAgICAgICAndG9fcG9ydCc6ICcxMTAnLAorICAgIH0sCisgICAgJ2ltYXAnOiB7CisgICAgICAgICduYW1lJzogJ0lNQVAnLAorICAgICAgICAnaXBfcHJvdG9jb2wnOiAndGNwJywKKyAgICAgICAgJ2Zyb21fcG9ydCc6ICcxNDMnLAorICAgICAgICAndG9fcG9ydCc6ICcxNDMnLAorICAgIH0sCisgICAgJ2xkYXAnOiB7CisgICAgICAgICduYW1lJzogJ0xEQVAnLAorICAgICAgICAnaXBfcHJvdG9jb2wnOiAndGNwJywKKyAgICAgICAgJ2Zyb21fcG9ydCc6ICczODknLAorICAgICAgICAndG9fcG9ydCc6ICczODknLAorICAgIH0sCisgICAgJ2h0dHBzJzogeworICAgICAgICAnbmFtZSc6ICdIVFRQUycsCisgICAgICAgICdpcF9wcm90b2NvbCc6ICd0Y3AnLAorICAgICAgICAnZnJvbV9wb3J0JzogJzQ0MycsCisgICAgICAgICd0b19wb3J0JzogJzQ0MycsCisgICAgfSwKKyAgICAnc210cHMnOiB7CisgICAgICAgICduYW1lJzogJ1NNVFBTJywKKyAgICAgICAgJ2lwX3Byb3RvY29sJzogJ3RjcCcsCisgICAgICAgICdmcm9tX3BvcnQnOiAnNDY1JywKKyAgICAgICAgJ3RvX3BvcnQnOiAnNDY1JywKKyAgICB9LAorICAgICdpbWFwcyc6IHsKKyAgICAgICAgJ25hbWUnOiAnSU1BUFMnLAorICAgICAgICAnaXBfcHJvdG9jb2wnOiAndGNwJywKKyAgICAgICAgJ2Zyb21fcG9ydCc6ICc5OTMnLAorICAgICAgICAndG9fcG9ydCc6ICc5OTMnLAorICAgIH0sCisgICAgJ3BvcDNzJzogeworICAgICAgICAnbmFtZSc6ICdQT1AzUycsCisgICAgICAgICdpcF9wcm90b2NvbCc6ICd0Y3AnLAorICAgICAgICAnZnJvbV9wb3J0JzogJzk5NScsCisgICAgICAgICd0b19wb3J0JzogJzk5NScsCisgICAgfSwKKyAgICAnbXNfc3FsJzogeworICAgICAgICAnbmFtZSc6ICdNUyBTUUwnLAorICAgICAgICAnaXBfcHJvdG9jb2wnOiAndGNwJywKKyAgICAgICAgJ2Zyb21fcG9ydCc6ICcxNDMzJywKKyAgICAgICAgJ3RvX3BvcnQnOiAnMTQzMycsCisgICAgfSwKKyAgICAnbXlzcWwnOiB7CisgICAgICAgICduYW1lJzogJ01ZU1FMJywKKyAgICAgICAgJ2lwX3Byb3RvY29sJzogJ3RjcCcsCisgICAgICAgICdmcm9tX3BvcnQnOiAnMzMwNicsCisgICAgICAgICd0b19wb3J0JzogJzMzMDYnLAorICAgIH0sCisgICAgJ3JkcCc6IHsKKyAgICAgICAgJ25hbWUnOiAnUkRQJywKKyAgICAgICAgJ2lwX3Byb3RvY29sJzogJ3RjcCcsCisgICAgICAgICdmcm9tX3BvcnQnOiAnMzM4OScsCisgICAgICAgICd0b19wb3J0JzogJzMzODknLAorICAgIH0sCit9CmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX25vdmFfc2V0dGluZ3MucHkgYi9ob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX25vdmFfc2V0dGluZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBiN2Q3OAotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy9fbm92YV9zZXR0aW5ncy5weQpAQCAtMCwwICsxLDQxIEBACit7JS0gZnJvbSAiaG9yaXpvbi9tYXAuamluamEiIGltcG9ydCBzZXJ2ZXIgd2l0aCBjb250ZXh0ICV9CisKK3slLSBpZiBzZXJ2ZXIuYXBwIGlzIGRlZmluZWQgJX0KK3slLSBzZXQgYXBwID0gc2FsdFsncGlsbGFyLmdldCddKCdob3Jpem9uOnNlcnZlcjphcHA6JythcHBfbmFtZSkgJX0KK3slLSBlbHNlICV9Cit7JS0gc2V0IGFwcCA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnaG9yaXpvbjpzZXJ2ZXInKSAlfQoreyUtIGVuZGlmICV9CisKKyMgU2V0IENvbnNvbGUgdHlwZToKKyMgdmFsaWQgb3B0aW9ucyB3b3VsZCBiZSAiQVVUTyIsICJWTkMiIG9yICJTUElDRSIKKyMgQ09OU09MRV9UWVBFID0gIkFVVE8iCisKKyMgVGhlIFhlbiBIeXBlcnZpc29yIGhhcyB0aGUgYWJpbGl0eSB0byBzZXQgdGhlIG1vdW50IHBvaW50IGZvciB2b2x1bWVzCisjIGF0dGFjaGVkIHRvIGluc3RhbmNlcyAob3RoZXIgSHlwZXJ2aXNvcnMgY3VycmVudGx5IGRvIG5vdCkuIFNldHRpbmcKKyMgY2FuX3NldF9tb3VudF9wb2ludCB0byBUcnVlIHdpbGwgYWRkIHRoZSBvcHRpb24gdG8gc2V0IHRoZSBtb3VudCBwb2ludAorIyBmcm9tIHRoZSBVSS4KK09QRU5TVEFDS19IWVBFUlZJU09SX0ZFQVRVUkVTID0geworICAgICdjYW5fc2V0X21vdW50X3BvaW50JzogRmFsc2UsCisgICAgJ2Nhbl9zZXRfcGFzc3dvcmQnOiBGYWxzZSwKK30KKworIyBXaGVuIGxhdW5jaGluZyBhbiBpbnN0YW5jZSwgdGhlIG1lbnUgb2YgYXZhaWxhYmxlIGZsYXZvcnMgaXMKKyMgc29ydGVkIGJ5IFJBTSB1c2FnZSwgYXNjZW5kaW5nLiAgUHJvdmlkZSBhIGNhbGxiYWNrIG1ldGhvZCBoZXJlCisjIChhbmQvb3IgYSBmbGFnIGZvciByZXZlcnNlIHNvcnQpIGZvciB0aGUgc29ydGVkKCkgbWV0aG9kIGlmIHlvdSdkCisjIGxpa2UgYSBkaWZmZXJlbnQgYmVoYXZpb3VyLiAgRm9yIG1vcmUgaW5mbywgc2VlCisjIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L2Z1bmN0aW9ucy5odG1sI3NvcnRlZAorIyBDUkVBVEVfSU5TVEFOQ0VfRkxBVk9SX1NPUlQgPSB7CisjICAgICAna2V5JzogbXlfYXdlc29tZV9jYWxsYmFja19tZXRob2QsCisjICAgICAncmV2ZXJzZSc6IEZhbHNlLAorIyB9CisKK0ZMQVZPUl9FWFRSQV9LRVlTID0geworICAgICdmbGF2b3Jfa2V5cyc6IFsKKyAgICAgICAgKCdxdW90YTpyZWFkX2J5dGVzX3NlYycsIF8oJ1F1b3RhOiBSZWFkIGJ5dGVzJykpLAorICAgICAgICAoJ3F1b3RhOndyaXRlX2J5dGVzX3NlYycsIF8oJ1F1b3RhOiBXcml0ZSBieXRlcycpKSwKKyAgICAgICAgKCdxdW90YTpjcHVfcXVvdGEnLCBfKCdRdW90YTogQ1BVJykpLAorICAgICAgICAoJ3F1b3RhOmNwdV9wZXJpb2QnLCBfKCdRdW90YTogQ1BVIHBlcmlvZCcpKSwKKyAgICAgICAgKCdxdW90YTppbmJvdW5kX2F2ZXJhZ2UnLCBfKCdRdW90YTogSW5ib3VuZCBhdmVyYWdlJykpLAorICAgICAgICAoJ3F1b3RhOm91dGJvdW5kX2F2ZXJhZ2UnLCBfKCdRdW90YTogT3V0Ym91bmQgYXZlcmFnZScpKSwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2xvY2FsX3NldHRpbmdzLy5yb3BlcHJvamVjdC9jb25maWcucHkgYi9ob3Jpem9uL2ZpbGVzL2xvY2FsX3NldHRpbmdzLy5yb3BlcHJvamVjdC9jb25maWcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZlYmNkNAotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3MvLnJvcGVwcm9qZWN0L2NvbmZpZy5weQpAQCAtMCwwICsxLDg1IEBACisjIFRoZSBkZWZhdWx0IGBgY29uZmlnLnB5YGAKKworCitkZWYgc2V0X3ByZWZzKHByZWZzKToKKyAgICAiIiJUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgb3BlbmluZyB0aGUgcHJvamVjdCIiIgorCisgICAgIyBTcGVjaWZ5IHdoaWNoIGZpbGVzIGFuZCBmb2xkZXJzIHRvIGlnbm9yZSBpbiB0aGUgcHJvamVjdC4KKyAgICAjIENoYW5nZXMgdG8gaWdub3JlZCByZXNvdXJjZXMgYXJlIG5vdCBhZGRlZCB0byB0aGUgaGlzdG9yeSBhbmQKKyAgICAjIFZDU3MuICBBbHNvIHRoZXkgYXJlIG5vdCByZXR1cm5lZCBpbiBgUHJvamVjdC5nZXRfZmlsZXMoKWAuCisgICAgIyBOb3RlIHRoYXQgYGA/YGAgYW5kIGBgKmBgIG1hdGNoIGFsbCBjaGFyYWN0ZXJzIGJ1dCBzbGFzaGVzLgorICAgICMgJyoucHljJzogbWF0Y2hlcyAndGVzdC5weWMnIGFuZCAncGtnL3Rlc3QucHljJworICAgICMgJ21vZCoucHljJzogbWF0Y2hlcyAndGVzdC9tb2QxLnB5YycgYnV0IG5vdCAnbW9kLzEucHljJworICAgICMgJy5zdm4nOiBtYXRjaGVzICdwa2cvLnN2bicgYW5kIGFsbCBvZiBpdHMgY2hpbGRyZW4KKyAgICAjICdidWlsZC8qLm8nOiBtYXRjaGVzICdidWlsZC9saWIubycgYnV0IG5vdCAnYnVpbGQvc3ViL2xpYi5vJworICAgICMgJ2J1aWxkLy8qLm8nOiBtYXRjaGVzICdidWlsZC9saWIubycgYW5kICdidWlsZC9zdWIvbGliLm8nCisgICAgcHJlZnNbJ2lnbm9yZWRfcmVzb3VyY2VzJ10gPSBbJyoucHljJywgJyp+JywgJy5yb3BlcHJvamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5oZycsICcuc3ZuJywgJ19zdm4nLCAnLmdpdCddCisKKyAgICAjIFNwZWNpZmllcyB3aGljaCBmaWxlcyBzaG91bGQgYmUgY29uc2lkZXJlZCBweXRob24gZmlsZXMuICBJdCBpcworICAgICMgdXNlZnVsIHdoZW4geW91IGhhdmUgc2NyaXB0cyBpbnNpZGUgeW91ciBwcm9qZWN0LiAgT25seSBmaWxlcworICAgICMgZW5kaW5nIHdpdGggYGAucHlgYCBhcmUgY29uc2lkZXJlZCB0byBiZSBweXRob24gZmlsZXMgYnkKKyAgICAjIGRlZmF1bHQuCisgICAgI3ByZWZzWydweXRob25fZmlsZXMnXSA9IFsnKi5weSddCisKKyAgICAjIEN1c3RvbSBzb3VyY2UgZm9sZGVyczogIEJ5IGRlZmF1bHQgcm9wZSBzZWFyY2hlcyB0aGUgcHJvamVjdAorICAgICMgZm9yIGZpbmRpbmcgc291cmNlIGZvbGRlcnMgKGZvbGRlcnMgdGhhdCBzaG91bGQgYmUgc2VhcmNoZWQKKyAgICAjIGZvciBmaW5kaW5nIG1vZHVsZXMpLiAgWW91IGNhbiBhZGQgcGF0aHMgdG8gdGhhdCBsaXN0LiAgTm90ZQorICAgICMgdGhhdCByb3BlIGd1ZXNzZXMgcHJvamVjdCBzb3VyY2UgZm9sZGVycyBjb3JyZWN0bHkgbW9zdCBvZiB0aGUKKyAgICAjIHRpbWU7IHVzZSB0aGlzIGlmIHlvdSBoYXZlIGFueSBwcm9ibGVtcy4KKyAgICAjIFRoZSBmb2xkZXJzIHNob3VsZCBiZSByZWxhdGl2ZSB0byBwcm9qZWN0IHJvb3QgYW5kIHVzZSAnLycgZm9yCisgICAgIyBzZXBhcmF0aW5nIGZvbGRlcnMgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0gcm9wZSBpcyBydW5uaW5nIG9uLgorICAgICMgJ3NyYy9teV9zb3VyY2VfZm9sZGVyJyBmb3IgaW5zdGFuY2UuCisgICAgI3ByZWZzLmFkZCgnc291cmNlX2ZvbGRlcnMnLCAnc3JjJykKKworICAgICMgWW91IGNhbiBleHRlbmQgcHl0aG9uIHBhdGggZm9yIGxvb2tpbmcgdXAgbW9kdWxlcworICAgICNwcmVmcy5hZGQoJ3B5dGhvbl9wYXRoJywgJ34vcHl0aG9uLycpCisKKyAgICAjIFNob3VsZCByb3BlIHNhdmUgb2JqZWN0IGluZm9ybWF0aW9uIG9yIG5vdC4KKyAgICBwcmVmc1snc2F2ZV9vYmplY3RkYiddID0gVHJ1ZQorICAgIHByZWZzWydjb21wcmVzc19vYmplY3RkYiddID0gRmFsc2UKKworICAgICMgSWYgYFRydWVgLCByb3BlIGFuYWx5emVzIGVhY2ggbW9kdWxlIHdoZW4gaXQgaXMgYmVpbmcgc2F2ZWQuCisgICAgcHJlZnNbJ2F1dG9tYXRpY19zb2EnXSA9IFRydWUKKyAgICAjIFRoZSBkZXB0aCBvZiBjYWxscyB0byBmb2xsb3cgaW4gc3RhdGljIG9iamVjdCBhbmFseXNpcworICAgIHByZWZzWydzb2FfZm9sbG93ZWRfY2FsbHMnXSA9IDAKKworICAgICMgSWYgYEZhbHNlYCB3aGVuIHJ1bm5pbmcgbW9kdWxlcyBvciB1bml0IHRlc3RzICJkeW5hbWljIG9iamVjdAorICAgICMgYW5hbHlzaXMiIGlzIHR1cm5lZCBvZmYuICBUaGlzIG1ha2VzIHRoZW0gbXVjaCBmYXN0ZXIuCisgICAgcHJlZnNbJ3BlcmZvcm1fZG9hJ10gPSBUcnVlCisKKyAgICAjIFJvcGUgY2FuIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiBpdHMgb2JqZWN0IERCIHdoZW4gcnVubmluZy4KKyAgICBwcmVmc1sndmFsaWRhdGVfb2JqZWN0ZGInXSA9IFRydWUKKworICAgICMgSG93IG1hbnkgdW5kb3MgdG8gaG9sZD8KKyAgICBwcmVmc1snbWF4X2hpc3RvcnlfaXRlbXMnXSA9IDMyCisKKyAgICAjIFNob3dzIHdoZXRoZXIgdG8gc2F2ZSBoaXN0b3J5IGFjcm9zcyBzZXNzaW9ucy4KKyAgICBwcmVmc1snc2F2ZV9oaXN0b3J5J10gPSBUcnVlCisgICAgcHJlZnNbJ2NvbXByZXNzX2hpc3RvcnknXSA9IEZhbHNlCisKKyAgICAjIFNldCB0aGUgbnVtYmVyIHNwYWNlcyB1c2VkIGZvciBpbmRlbnRpbmcuICBBY2NvcmRpbmcgdG8KKyAgICAjIDpQRVA6YDhgLCBpdCBpcyBiZXN0IHRvIHVzZSA0IHNwYWNlcy4gIFNpbmNlIG1vc3Qgb2Ygcm9wZSdzCisgICAgIyB1bml0LXRlc3RzIHVzZSA0IHNwYWNlcyBpdCBpcyBtb3JlIHJlbGlhYmxlLCB0b28uCisgICAgcHJlZnNbJ2luZGVudF9zaXplJ10gPSA0CisKKyAgICAjIEJ1aWx0aW4gYW5kIGMtZXh0ZW5zaW9uIG1vZHVsZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBpbXBvcnRlZAorICAgICMgYW5kIGluc3BlY3RlZCBieSByb3BlLgorICAgIHByZWZzWydleHRlbnNpb25fbW9kdWxlcyddID0gW10KKworICAgICMgQWRkIGFsbCBzdGFuZGFyZCBjLWV4dGVuc2lvbnMgdG8gZXh0ZW5zaW9uX21vZHVsZXMgbGlzdC4KKyAgICBwcmVmc1snaW1wb3J0X2R5bmxvYWRfc3RkbW9kcyddID0gVHJ1ZQorCisgICAgIyBJZiBgVHJ1ZWAgbW9kdWxlcyB3aXRoIHN5bnRheCBlcnJvcnMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgZW1wdHkuCisgICAgIyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgRmFsc2VgOyBXaGVuIGBGYWxzZWAgc3ludGF4IGVycm9ycyByYWlzZQorICAgICMgYHJvcGUuYmFzZS5leGNlcHRpb25zLk1vZHVsZVN5bnRheEVycm9yYCBleGNlcHRpb24uCisgICAgcHJlZnNbJ2lnbm9yZV9zeW50YXhfZXJyb3JzJ10gPSBGYWxzZQorCisgICAgIyBJZiBgVHJ1ZWAsIHJvcGUgaWdub3JlcyB1bnJlc29sdmFibGUgaW1wb3J0cy4gIE90aGVyd2lzZSwgdGhleQorICAgICMgYXBwZWFyIGluIHRoZSBpbXBvcnRpbmcgbmFtZXNwYWNlLgorICAgIHByZWZzWydpZ25vcmVfYmFkX2ltcG9ydHMnXSA9IEZhbHNlCisKKworZGVmIHByb2plY3Rfb3BlbmVkKHByb2plY3QpOgorICAgICIiIlRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFmdGVyIG9wZW5pbmcgdGhlIHByb2plY3QiIiIKKyAgICAjIERvIHdoYXRldmVyIHlvdSBsaWtlIGhlcmUhCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2xvY2FsX3NldHRpbmdzLy5yb3BlcHJvamVjdC9nbG9iYWxuYW1lcyBiL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3MvLnJvcGVwcm9qZWN0L2dsb2JhbG5hbWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5YzQwY2QKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL2xvY2FsX3NldHRpbmdzLy5yb3BlcHJvamVjdC9nbG9iYWxuYW1lcwpAQCAtMCwwICsxIEBACiuAAn1xAS4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2xvY2FsX3NldHRpbmdzLy5yb3BlcHJvamVjdC9oaXN0b3J5IGIvaG9yaXpvbi9maWxlcy9sb2NhbF9zZXR0aW5ncy8ucm9wZXByb2plY3QvaGlzdG9yeQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2Q5Yzk2Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9sb2NhbF9zZXR0aW5ncy8ucm9wZXByb2plY3QvaGlzdG9yeQpAQCAtMCwwICsxIEBACiuAAl1xAShdcQJdcQNlLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3MvLnJvcGVwcm9qZWN0L29iamVjdGRiIGIvaG9yaXpvbi9maWxlcy9sb2NhbF9zZXR0aW5ncy8ucm9wZXByb2plY3Qvb2JqZWN0ZGIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjljNDBjZAotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3MvLnJvcGVwcm9qZWN0L29iamVjdGRiCkBAIC0wLDAgKzEgQEAKK4ACfXEBLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3MvY3NiX3NldHRpbmdzLnB5IGIvaG9yaXpvbi9maWxlcy9sb2NhbF9zZXR0aW5ncy9jc2Jfc2V0dGluZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY3MTEwZgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3MvY3NiX3NldHRpbmdzLnB5CkBAIC0wLDAgKzEsNTcgQEAKK2ltcG9ydCBvcworZnJvbSBkamFuZ28udXRpbHMudHJhbnNsYXRpb24gaW1wb3J0IHVnZXR0ZXh0X2xhenkgYXMgXworZnJvbSBvcGVuc3RhY2tfZGFzaGJvYXJkIGltcG9ydCBleGNlcHRpb25zCisKK3slLSBmcm9tICJob3Jpem9uL21hcC5qaW5qYSIgaW1wb3J0IHNlcnZlciB3aXRoIGNvbnRleHQgJX0KK3slLSBzZXQgYXBwID0gc2FsdFsncGlsbGFyLmdldCddKCdob3Jpem9uOnNlcnZlcjphcHA6JythcHBfbmFtZSkgJX0KKworSE9SSVpPTl9DT05GSUcgPSB7CisgICAgJ2Rhc2hib2FyZHMnOiAoeyUgaWYgYXBwLnBsdWdpbiBpcyBkZWZpbmVkICV9eyUgZm9yIHBsdWdpbl9uYW1lLCBwbHVnaW4gaW4gYXBwLnBsdWdpbi5pdGVyaXRlbXMoKSAlfXslIGlmIHBsdWdpbi5nZXQoJ2Rhc2hib2FyZCcsIEZhbHNlKSAlfSd7eyBwbHVnaW5fbmFtZSB9fScsIHslIGVuZGlmICV9eyUgZW5kZm9yICV9eyUgZW5kaWYgJX0nYWRtaW4nLCAnc2V0dGluZ3MnKSwKKyAgICAnZGVmYXVsdF9kYXNoYm9hcmQnOiAne3sgYXBwLmdldCgnZGVmYXVsdF9kYXNoYm9hcmQnLCAncHJvamVjdCcpIH19JywKKyAgICAndXNlcl9ob21lJzogJ3t7IGFwcC5nZXQoJ3VzZXJfaG9tZScsICdvcGVuc3RhY2tfZGFzaGJvYXJkLnZpZXdzLmdldF91c2VyX2hvbWUnKSB9fScsCisgICAgJ2FqYXhfcXVldWVfbGltaXQnOiAxMCwKKyAgICAnYXV0b19mYWRlX2FsZXJ0cyc6IHsKKyAgICAgICAgJ2RlbGF5JzogMzAwMCwKKyAgICAgICAgJ2ZhZGVfZHVyYXRpb24nOiAxNTAwLAorICAgICAgICAndHlwZXMnOiBbJ2FsZXJ0LXN1Y2Nlc3MnLCAnYWxlcnQtaW5mbyddCisgICAgfSwKKyAgICAnaGVscF91cmwnOiAie3sgYXBwLmdldCgnaGVscF91cmwnLCAnaHR0cDovL2RvY3Mub3BlbnN0YWNrLm9yZycpIH19IiwKKyAgICAnZXhjZXB0aW9ucyc6IHsncmVjb3ZlcmFibGUnOiBleGNlcHRpb25zLlJFQ09WRVJBQkxFLAorICAgICAgICAgICAgICAgICAgICdub3RfZm91bmQnOiBleGNlcHRpb25zLk5PVF9GT1VORCwKKyAgICAgICAgICAgICAgICAgICAndW5hdXRob3JpemVkJzogZXhjZXB0aW9ucy5VTkFVVEhPUklaRUR9LAorfQorCitJTlNUQUxMRURfQVBQUyA9ICgKKyAgICB7JS0gZm9yIHBsdWdpbl9uYW1lLCBwbHVnaW4gaW4gYXBwLnBsdWdpbi5pdGVyaXRlbXMoKSAlfQorICAgICd7eyBwbHVnaW4uYXBwIH19JywKKyAgICB7JS0gZW5kZm9yICV9CisgICAgJ2NzYl9kYXNoYm9hcmQnLAorICAgICdjc2JfZGFzaGJvYXJkLmRhc2hib2FyZHMuc2VydmljZScsCisgICAgJ2NzYl9kYXNoYm9hcmQuZGFzaGJvYXJkcy5hZG1pbicsCisgICAgJ2NzYl9kYXNoYm9hcmQuZGFzaGJvYXJkcy5hcGlfb2ZmaWNlMzY1JywKKyAgICAnY3NiX2Rhc2hib2FyZC5kYXNoYm9hcmRzLmhlYXRfc3RhY2snLAorICAgICdjc2JfZGFzaGJvYXJkLmRhc2hib2FyZHMuc2FsdF9jbG91ZCcsCisgICAgJ2NzYl9kYXNoYm9hcmQuZGFzaGJvYXJkcy5zYWx0X3N5c3RlbScsCisgICAgJ3RoZW1lJywKKyAgICAnaG9yaXpvbl9vdmVycmlkZXMnLAorICAgICdkamFuZ28uY29udHJpYi5jb250ZW50dHlwZXMnLAorICAgICdkamFuZ28uY29udHJpYi5hdXRoJywKKyAgICAnZGphbmdvLmNvbnRyaWIuc2Vzc2lvbnMnLAorICAgICdkamFuZ28uY29udHJpYi5tZXNzYWdlcycsCisgICAgJ2RqYW5nby5jb250cmliLnN0YXRpY2ZpbGVzJywKKyAgICAnZGphbmdvLmNvbnRyaWIuaHVtYW5pemUnLAorICAgICdjb21wcmVzc29yJywKKyAgICAnaG9yaXpvbicsCisgICAgJ2NzYmNsaWVudCcsCisgICAgJ2NzYl9hdXRoJywKKyAgICAnbWFya2l0dXAnLAorICAgICdpbWFnZV9wcm94eScsCisgICAgeyUtIGlmIGFwcC5sb2dnaW5nIGlzIGRlZmluZWQgJX0KKyAgICAncmF2ZW4uY29udHJpYi5kamFuZ28ucmF2ZW5fY29tcGF0JywKKyAgICB7JS0gZW5kaWYgJX0KKykKKworTUVESUFfUk9PVCA9ICcvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vbWVkaWEvJworU1RBVElDX1JPT1QgPSAnL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L3N0YXRpYy8nCisKK3slIGluY2x1ZGUgImhvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy9fbG9jYWxfc2V0dGluZ3MucHkiICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9sb2NhbF9zZXR0aW5ncy9oZWxwZGVza19zZXR0aW5ncy5weSBiL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3MvaGVscGRlc2tfc2V0dGluZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNjY2I2MwotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3MvaGVscGRlc2tfc2V0dGluZ3MucHkKQEAgLTAsMCArMSw1OCBAQAoraW1wb3J0IG9zCitmcm9tIGRqYW5nby51dGlscy50cmFuc2xhdGlvbiBpbXBvcnQgdWdldHRleHRfbGF6eSBhcyBfCitmcm9tIG9wZW5zdGFja19kYXNoYm9hcmQgaW1wb3J0IGV4Y2VwdGlvbnMKKworeyUtIGZyb20gImhvcml6b24vbWFwLmppbmphIiBpbXBvcnQgc2VydmVyIHdpdGggY29udGV4dCAlfQoreyUtIHNldCBhcHAgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ2hvcml6b246c2VydmVyOmFwcDonK2FwcF9uYW1lKSAlfQorCisjIE9wZW5TdGFjayBEYXNoYm9hcmQgY29uZmlndXJhdGlvbi4KK0hPUklaT05fQ09ORklHID0geworICAgICdkYXNoYm9hcmRzJzogKHslIGlmIGFwcC5wbHVnaW4gaXMgZGVmaW5lZCAlfXslIGZvciBwbHVnaW5fbmFtZSwgcGx1Z2luIGluIGFwcC5wbHVnaW4uaXRlcml0ZW1zKCkgJX17JSBpZiBwbHVnaW4uZ2V0KCdkYXNoYm9hcmQnLCBGYWxzZSkgJX0ne3sgcGx1Z2luX25hbWUgfX0nLCB7JSBlbmRpZiAlfXslIGVuZGZvciAlfXslIGVuZGlmICV9J2FkbWluJywgJ3NldHRpbmdzJyksCisgICAgJ2RlZmF1bHRfZGFzaGJvYXJkJzogJ3t7IGFwcC5nZXQoJ2RlZmF1bHRfZGFzaGJvYXJkJywgJ3Byb2plY3QnKSB9fScsCisgICAgJ3VzZXJfaG9tZSc6ICdoZWxwZGVza19kYXNoYm9hcmQudmlld3Muc3BsYXNoJywKKyAgICAnYWpheF9xdWV1ZV9saW1pdCc6IDEwLAorICAgICdhdXRvX2ZhZGVfYWxlcnRzJzogeworICAgICAgICAnZGVsYXknOiAzMDAwLAorICAgICAgICAnZmFkZV9kdXJhdGlvbic6IDE1MDAsCisgICAgICAgICd0eXBlcyc6IFsnYWxlcnQtc3VjY2VzcycsICdhbGVydC1pbmZvJ10KKyAgICB9LAorICAgICdoZWxwX3VybCc6ICJ7eyBhcHAuZ2V0KCdoZWxwX3VybCcsICdodHRwOi8vZG9jcy5vcGVuc3RhY2sub3JnJykgfX0iLAorICAgICdleGNlcHRpb25zJzogeydyZWNvdmVyYWJsZSc6IGV4Y2VwdGlvbnMuUkVDT1ZFUkFCTEUsCisgICAgICAgICAgICAgICAgICAgJ25vdF9mb3VuZCc6IGV4Y2VwdGlvbnMuTk9UX0ZPVU5ELAorICAgICAgICAgICAgICAgICAgICd1bmF1dGhvcml6ZWQnOiBleGNlcHRpb25zLlVOQVVUSE9SSVpFRH0sCit9CisKK0lOU1RBTExFRF9BUFBTID0gKAorICAgIHslLSBmb3IgcGx1Z2luX25hbWUsIHBsdWdpbiBpbiBhcHAucGx1Z2luLml0ZXJpdGVtcygpICV9CisgICAgeyUtIGlmIG5vdCBwbHVnaW5fbmFtZSA9PSAnaG9yaXpvbl90aGVtZScgJX0KKyAgICAne3sgcGx1Z2luLmFwcCB9fScsCisgICAgeyUtIGVuZGlmICV9CisgICAgeyUtIGVuZGZvciAlfQorICAgICdoZWxwZGVza19hdXRoJywKKyAgICAncmVkYWN0b3InLAorICAgICdvcGVuc3RhY2tfZGFzaGJvYXJkJywKKyAgICAnZGphbmdvLmNvbnRyaWIuY29udGVudHR5cGVzJywKKyAgICAnZGphbmdvLmNvbnRyaWIuYXV0aCcsCisgICAgJ2RqYW5nby5jb250cmliLnNlc3Npb25zJywKKyAgICAnZGphbmdvLmNvbnRyaWIubWVzc2FnZXMnLAorICAgICdkamFuZ28uY29udHJpYi5zdGF0aWNmaWxlcycsCisgICAgJ2RqYW5nby5jb250cmliLmh1bWFuaXplJywKKyAgICAnY29tcHJlc3NvcicsCisgICAgJ2hvcml6b24nLAorICAgIHslLSBpZiBhcHAubG9nZ2luZyBpcyBkZWZpbmVkICV9CisgICAgJ3JhdmVuLmNvbnRyaWIuZGphbmdvLnJhdmVuX2NvbXBhdCcsCisgICAgeyUtIGVuZGlmICV9CispCisKK1JFREFDVE9SX09QVElPTlMgPSB7J2xhbmcnOiAnZW4nLCAnYnV0dG9uc0hpZGUnOiBbJ2ZpbGUnLCAnaW1hZ2UnXX0KK1JFREFDVE9SX1VQTE9BRCA9ICd1cGxvYWRzLycKKworUk9PVF9VUkxDT05GID0gJ2hlbHBkZXNrX2Rhc2hib2FyZC51cmxfb3ZlcnJpZGVzJworCitBVVRIRU5USUNBVElPTl9CQUNLRU5EUyA9ICgnaGVscGRlc2tfYXV0aC5iYWNrZW5kLkhlbHBkZXNrQmFja2VuZCcsKQorCitBVVRIRU5USUNBVElPTl9VUkxTID0gWydoZWxwZGVza19hdXRoLnVybHMnXQorCit7JSBpbmNsdWRlICJob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2xvY2FsX3NldHRpbmdzLnB5IiAlfQoreyUgaW5jbHVkZSAiaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzL19ob3Jpem9uX3NldHRpbmdzLnB5IiAlfQoreyUgaW5jbHVkZSAiaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzL19rZXlzdG9uZV9zZXR0aW5ncy5weSIgJX0KZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3MvanVub19zZXR0aW5ncy5weSBiL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3MvanVub19zZXR0aW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2MxNjU3Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9sb2NhbF9zZXR0aW5ncy9qdW5vX3NldHRpbmdzLnB5CkBAIC0wLDAgKzEsNzcgQEAKK2ltcG9ydCBvcworZnJvbSBkamFuZ28udXRpbHMudHJhbnNsYXRpb24gaW1wb3J0IHVnZXR0ZXh0X2xhenkgYXMgXworZnJvbSBvcGVuc3RhY2tfZGFzaGJvYXJkIGltcG9ydCBleGNlcHRpb25zCisKK3slLSBmcm9tICJob3Jpem9uL21hcC5qaW5qYSIgaW1wb3J0IHNlcnZlciB3aXRoIGNvbnRleHQgJX0KKworeyUtIGlmIHNlcnZlci5hcHAgaXMgZGVmaW5lZCAlfQoreyUtIHNldCBhcHAgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ2hvcml6b246c2VydmVyOmFwcDonK2FwcF9uYW1lKSAlfQoreyUtIGVsc2UgJX0KK3slLSBzZXQgYXBwID0gc2FsdFsncGlsbGFyLmdldCddKCdob3Jpem9uOnNlcnZlcicpICV9Cit7JS0gZW5kaWYgJX0KKworSE9SSVpPTl9DT05GSUcgPSB7CisgICAgJ2Rhc2hib2FyZHMnOiAoeyUgaWYgYXBwLnBsdWdpbiBpcyBkZWZpbmVkICV9eyUgZm9yIHBsdWdpbl9uYW1lLCBwbHVnaW4gaW4gYXBwLnBsdWdpbi5pdGVyaXRlbXMoKSAlfXslIGlmIHBsdWdpbi5nZXQoJ2Rhc2hib2FyZCcsIEZhbHNlKSAlfSd7eyBwbHVnaW5fbmFtZSB9fScsIHslIGVuZGlmICV9eyUgZW5kZm9yICV9eyUgZW5kaWYgJX0nYWRtaW4nLCAnc2V0dGluZ3MnKSwKKyAgICAnZGVmYXVsdF9kYXNoYm9hcmQnOiAne3sgYXBwLmdldCgnZGVmYXVsdF9kYXNoYm9hcmQnLCAncHJvamVjdCcpIH19JywKKyAgICAndXNlcl9ob21lJzogJ3t7IGFwcC5nZXQoJ3VzZXJfaG9tZScsICdvcGVuc3RhY2tfZGFzaGJvYXJkLnZpZXdzLmdldF91c2VyX2hvbWUnKSB9fScsCisgICAgJ2FqYXhfcXVldWVfbGltaXQnOiAxMCwKKyAgICAnYXV0b19mYWRlX2FsZXJ0cyc6IHsKKyAgICAgICAgJ2RlbGF5JzogMzAwMCwKKyAgICAgICAgJ2ZhZGVfZHVyYXRpb24nOiAxNTAwLAorICAgICAgICAndHlwZXMnOiBbJ2FsZXJ0LXN1Y2Nlc3MnLCAnYWxlcnQtaW5mbyddCisgICAgfSwKKyAgICAnaGVscF91cmwnOiAie3sgYXBwLmdldCgnaGVscF91cmwnLCAnaHR0cDovL2RvY3Mub3BlbnN0YWNrLm9yZycpIH19IiwKKyAgICAnZXhjZXB0aW9ucyc6IHsncmVjb3ZlcmFibGUnOiBleGNlcHRpb25zLlJFQ09WRVJBQkxFLAorICAgICAgICAgICAgICAgICAgICdub3RfZm91bmQnOiBleGNlcHRpb25zLk5PVF9GT1VORCwKKyAgICAgICAgICAgICAgICAgICAndW5hdXRob3JpemVkJzogZXhjZXB0aW9ucy5VTkFVVEhPUklaRUR9LAorfQorCitURU1QTEFURV9MT0FERVJTID0gKAorICAgICdkamFuZ28udGVtcGxhdGUubG9hZGVycy5hcHBfZGlyZWN0b3JpZXMuTG9hZGVyJywKKyAgICAnZGphbmdvLnRlbXBsYXRlLmxvYWRlcnMuZmlsZXN5c3RlbS5Mb2FkZXInLAorICAgICdob3Jpem9uLmxvYWRlcnMuVGVtcGxhdGVMb2FkZXInCispCisKK0lOU1RBTExFRF9BUFBTID0gKAorICAgIHslLSBmb3IgcGx1Z2luX25hbWUsIHBsdWdpbiBpbiBhcHAucGx1Z2luLml0ZXJpdGVtcygpICV9CisgICAgJ3t7IHBsdWdpbi5hcHAgfX0nLAorICAgIHslLSBpZiBwbHVnaW5fbmFtZSA9PSAncm9ib3RpY2VfZGFzaGJvYXJkJyAlfQorICAgICdyb2JvdGljZV9kYXNoYm9hcmQuZGFzaGJvYXJkcy5sb2NhdGlvbicsCisgICAgJ3JvYm90aWNlX2Rhc2hib2FyZC5kYXNoYm9hcmRzLmFkbWluJywKKyAgICAncm9ib3RpY2VfYXV0aCcsCisgICAgeyUtIGVuZGlmICV9CisgICAgeyUtIGlmIHBsdWdpbl9uYW1lID09ICdoZWxwZGVzaycgJX0KKyAgICAncmVkYWN0b3InLAorICAgIHslLSBlbmRpZiAlfQorICAgIHslLSBlbmRmb3IgJX0KKyAgICAnb3BlbnN0YWNrX2Rhc2hib2FyZCcsCisgICAgJ2RqYW5nby5jb250cmliLmNvbnRlbnR0eXBlcycsCisgICAgJ2RqYW5nby5jb250cmliLmF1dGgnLAorICAgICdkamFuZ28uY29udHJpYi5zZXNzaW9ucycsCisgICAgJ2RqYW5nby5jb250cmliLm1lc3NhZ2VzJywKKyAgICAnZGphbmdvLmNvbnRyaWIuc3RhdGljZmlsZXMnLAorICAgICdkamFuZ28uY29udHJpYi5odW1hbml6ZScsCisgICAgJ2NvbXByZXNzb3InLAorICAgICdob3Jpem9uJywKKyAgICB7JS0gaWYgYXBwLnZlcnNpb24gPT0gJ2NzYicgJX0KKyAgICAnbWFya2l0dXAnLAorICAgICdpbWFnZV9wcm94eScsCisgICAgJ2NzYl9kYXNoYm9hcmQuZGFzaGJvYXJkcy5zZXJ2aWNlJywKKyAgICAnY3NiX2Rhc2hib2FyZC5kYXNoYm9hcmRzLmFkbWluJywKKyAgICAnY3NiX2Rhc2hib2FyZC5kYXNoYm9hcmRzLmFwaV9vZmZpY2UzNjUnLAorICAgICdjc2JfZGFzaGJvYXJkLmRhc2hib2FyZHMuaGVhdF9zdGFjaycsCisgICAgJ2NzYl9kYXNoYm9hcmQuZGFzaGJvYXJkcy5zYWx0X2Nsb3VkJywKKyAgICAnY3NiX2Rhc2hib2FyZC5kYXNoYm9hcmRzLnNhbHRfc3lzdGVtJywKKyAgICB7JS0gZW5kaWYgJX0KKyAgICAnb3BlbnN0YWNrX2F1dGgnLAorICAgIHslLSBpZiBhcHAubG9nZ2luZyBpcyBkZWZpbmVkICV9CisgICAgJ3JhdmVuLmNvbnRyaWIuZGphbmdvLnJhdmVuX2NvbXBhdCcsCisgICAgeyUtIGVuZGlmICV9CispCisKK3slIGluY2x1ZGUgImhvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy9fbG9jYWxfc2V0dGluZ3MucHkiICV9Cit7JSBpbmNsdWRlICJob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2hvcml6b25fc2V0dGluZ3MucHkiICV9Cit7JSBpbmNsdWRlICJob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2tleXN0b25lX3NldHRpbmdzLnB5IiAlfQoreyUgaW5jbHVkZSAiaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzL19ub3ZhX3NldHRpbmdzLnB5IiAlfQoreyUgaW5jbHVkZSAiaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzL19nbGFuY2Vfc2V0dGluZ3MucHkiICV9Cit7JSBpbmNsdWRlICJob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX25ldXRyb25fc2V0dGluZ3MucHkiICV9CmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2xvY2FsX3NldHRpbmdzL2tpbG9fc2V0dGluZ3MucHkgYi9ob3Jpem9uL2ZpbGVzL2xvY2FsX3NldHRpbmdzL2tpbG9fc2V0dGluZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFiOGY1NAotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3Mva2lsb19zZXR0aW5ncy5weQpAQCAtMCwwICsxLDU4IEBACitpbXBvcnQgb3MKK2Zyb20gZGphbmdvLnV0aWxzLnRyYW5zbGF0aW9uIGltcG9ydCB1Z2V0dGV4dF9sYXp5IGFzIF8KK2Zyb20gb3BlbnN0YWNrX2Rhc2hib2FyZCBpbXBvcnQgZXhjZXB0aW9ucworCit7JS0gZnJvbSAiaG9yaXpvbi9tYXAuamluamEiIGltcG9ydCBzZXJ2ZXIgd2l0aCBjb250ZXh0ICV9CisKK3slLSBpZiBzZXJ2ZXIuYXBwIGlzIGRlZmluZWQgJX0KK3slLSBzZXQgYXBwID0gc2FsdFsncGlsbGFyLmdldCddKCdob3Jpem9uOnNlcnZlcjphcHA6JythcHBfbmFtZSkgJX0KK3slLSBlbHNlICV9Cit7JS0gc2V0IGFwcCA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnaG9yaXpvbjpzZXJ2ZXInKSAlfQoreyUtIGVuZGlmICV9CisKK0hPUklaT05fQ09ORklHID0geworICAgICd1c2VyX2hvbWUnOiAnb3BlbnN0YWNrX2Rhc2hib2FyZC52aWV3cy5nZXRfdXNlcl9ob21lJywKKyAgICAnYWpheF9xdWV1ZV9saW1pdCc6IDEwLAorICAgICdhdXRvX2ZhZGVfYWxlcnRzJzogeworICAgICAgICAnZGVsYXknOiAzMDAwLAorICAgICAgICAnZmFkZV9kdXJhdGlvbic6IDE1MDAsCisgICAgICAgICd0eXBlcyc6IFsnYWxlcnQtc3VjY2VzcycsICdhbGVydC1pbmZvJ10KKyAgICB9LAorICAgICdoZWxwX3VybCc6ICJodHRwOi8vZG9jcy5vcGVuc3RhY2sub3JnIiwKKyAgICAnZXhjZXB0aW9ucyc6IHsncmVjb3ZlcmFibGUnOiBleGNlcHRpb25zLlJFQ09WRVJBQkxFLAorICAgICAgICAgICAgICAgICAgICdub3RfZm91bmQnOiBleGNlcHRpb25zLk5PVF9GT1VORCwKKyAgICAgICAgICAgICAgICAgICAndW5hdXRob3JpemVkJzogZXhjZXB0aW9ucy5VTkFVVEhPUklaRUR9LAorICAgICdtb2RhbF9iYWNrZHJvcCc6ICdzdGF0aWMnLAorICAgICdhbmd1bGFyX21vZHVsZXMnOiBbXSwKKyAgICAnanNfZmlsZXMnOiBbXSwKKyAgICAnanNfc3BlY19maWxlcyc6IFtdLAorfQorCit7JS0gaWYgYXBwLnRoZW1lIGlzIGRlZmluZWQgJX0KK0NVU1RPTV9USEVNRV9QQVRIID0gJ3N0YXRpYy90aGVtZXMve3sgYXBwLnRoZW1lIH19JworeyUtIGVsaWYgYXBwLnBsdWdpbi5ob3Jpem9uX3RoZW1lLnRoZW1lX25hbWUgaXMgZGVmaW5lZCAlfQorQ1VTVE9NX1RIRU1FX1BBVEggPSAnc3RhdGljL3RoZW1lcy97eyBhcHAucGx1Z2luLmhvcml6b25fdGhlbWUudGhlbWVfbmFtZSB9fScKK3slLSBlbmRpZiAlfQorCitJTlNUQUxMRURfQVBQUyA9ICgKKyAgICAnb3BlbnN0YWNrX2Rhc2hib2FyZCcsCisgICAgJ2RqYW5nby5jb250cmliLmNvbnRlbnR0eXBlcycsCisgICAgJ2RqYW5nby5jb250cmliLmF1dGgnLAorICAgICdkamFuZ28uY29udHJpYi5zZXNzaW9ucycsCisgICAgJ2RqYW5nby5jb250cmliLm1lc3NhZ2VzJywKKyAgICAnZGphbmdvLmNvbnRyaWIuc3RhdGljZmlsZXMnLAorICAgICdkamFuZ28uY29udHJpYi5odW1hbml6ZScsCisgICAgJ2NvbXByZXNzb3InLAorICAgICdob3Jpem9uJywKKyAgICAnb3BlbnN0YWNrX2F1dGgnLAorICAgIHslLSBpZiBhcHAubG9nZ2luZyBpcyBkZWZpbmVkICV9CisgICAgJ3JhdmVuLmNvbnRyaWIuZGphbmdvLnJhdmVuX2NvbXBhdCcsCisgICAgeyUtIGVuZGlmICV9CispCisKK3slIGluY2x1ZGUgImhvcml6b24vZmlsZXMvaG9yaXpvbl9zZXR0aW5ncy9fbG9jYWxfc2V0dGluZ3MucHkiICV9Cit7JSBpbmNsdWRlICJob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2hvcml6b25fc2V0dGluZ3MucHkiICV9Cit7JSBpbmNsdWRlICJob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2tleXN0b25lX3NldHRpbmdzLnB5IiAlfQoreyUgaW5jbHVkZSAiaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzL19ub3ZhX3NldHRpbmdzLnB5IiAlfQoreyUgaW5jbHVkZSAiaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzL19nbGFuY2Vfc2V0dGluZ3MucHkiICV9Cit7JSBpbmNsdWRlICJob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX25ldXRyb25fc2V0dGluZ3MucHkiICV9CmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL2xvY2FsX3NldHRpbmdzL3JvYm90aWNlX3NldHRpbmdzLnB5IGIvaG9yaXpvbi9maWxlcy9sb2NhbF9zZXR0aW5ncy9yb2JvdGljZV9zZXR0aW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjlkYWIwCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9sb2NhbF9zZXR0aW5ncy9yb2JvdGljZV9zZXR0aW5ncy5weQpAQCAtMCwwICsxLDQ1IEBACitpbXBvcnQgb3MKK2Zyb20gZGphbmdvLnV0aWxzLnRyYW5zbGF0aW9uIGltcG9ydCB1Z2V0dGV4dF9sYXp5IGFzIF8KK2Zyb20gb3BlbnN0YWNrX2Rhc2hib2FyZCBpbXBvcnQgZXhjZXB0aW9ucworCit7JS0gZnJvbSAiaG9yaXpvbi9tYXAuamluamEiIGltcG9ydCBzZXJ2ZXIgd2l0aCBjb250ZXh0ICV9Cit7JS0gc2V0IGFwcCA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnaG9yaXpvbjpzZXJ2ZXI6YXBwOicrYXBwX25hbWUpICV9CisKK0hPUklaT05fQ09ORklHID0geworICAgICdkYXNoYm9hcmRzJzogKHslIGlmIGFwcC5wbHVnaW4gaXMgZGVmaW5lZCAlfXslIGZvciBwbHVnaW5fbmFtZSwgcGx1Z2luIGluIGFwcC5wbHVnaW4uaXRlcml0ZW1zKCkgJX17JSBpZiBwbHVnaW4uZ2V0KCdkYXNoYm9hcmQnLCBGYWxzZSkgJX0ne3sgcGx1Z2luX25hbWUgfX0nLCB7JSBlbmRpZiAlfXslIGVuZGZvciAlfXslIGVuZGlmICV9J2FkbWluJywgJ3NldHRpbmdzJyksCisgICAgJ2RlZmF1bHRfZGFzaGJvYXJkJzogJ3t7IGFwcC5nZXQoJ2RlZmF1bHRfZGFzaGJvYXJkJywgJ3Byb2plY3QnKSB9fScsCisgICAgJ3VzZXJfaG9tZSc6ICd7eyBhcHAuZ2V0KCd1c2VyX2hvbWUnLCAnb3BlbnN0YWNrX2Rhc2hib2FyZC52aWV3cy5nZXRfdXNlcl9ob21lJykgfX0nLAorICAgICdhamF4X3F1ZXVlX2xpbWl0JzogMTAsCisgICAgJ2F1dG9fZmFkZV9hbGVydHMnOiB7CisgICAgICAgICdkZWxheSc6IDMwMDAsCisgICAgICAgICdmYWRlX2R1cmF0aW9uJzogMTUwMCwKKyAgICAgICAgJ3R5cGVzJzogWydhbGVydC1zdWNjZXNzJywgJ2FsZXJ0LWluZm8nXQorICAgIH0sCisgICAgJ2hlbHBfdXJsJzogInt7IGFwcC5nZXQoJ2hlbHBfdXJsJywgJ2h0dHA6Ly9kb2NzLm9wZW5zdGFjay5vcmcnKSB9fSIsCisgICAgJ2V4Y2VwdGlvbnMnOiB7J3JlY292ZXJhYmxlJzogZXhjZXB0aW9ucy5SRUNPVkVSQUJMRSwKKyAgICAgICAgICAgICAgICAgICAnbm90X2ZvdW5kJzogZXhjZXB0aW9ucy5OT1RfRk9VTkQsCisgICAgICAgICAgICAgICAgICAgJ3VuYXV0aG9yaXplZCc6IGV4Y2VwdGlvbnMuVU5BVVRIT1JJWkVEfSwKK30KKworSU5TVEFMTEVEX0FQUFMgPSAoCisgICAgJ3JvYm90aWNlX2Rhc2hib2FyZC5kYXNoYm9hcmRzLmxvY2F0aW9uJywKKyAgICAncm9ib3RpY2VfZGFzaGJvYXJkLmRhc2hib2FyZHMuYWRtaW4nLAorICAgICdyb2JvdGljZV9hdXRoJywKKyAgICAnb3BlbnN0YWNrX2Rhc2hib2FyZCcsCisgICAgJ2RqYW5nby5jb250cmliLmNvbnRlbnR0eXBlcycsCisgICAgJ2RqYW5nby5jb250cmliLmF1dGgnLAorICAgICdkamFuZ28uY29udHJpYi5zZXNzaW9ucycsCisgICAgJ2RqYW5nby5jb250cmliLm1lc3NhZ2VzJywKKyAgICAnZGphbmdvLmNvbnRyaWIuc3RhdGljZmlsZXMnLAorICAgICdkamFuZ28uY29udHJpYi5odW1hbml6ZScsCisgICAgJ2NvbXByZXNzb3InLAorICAgICdob3Jpem9uJywKKyAgICAnb3BlbnN0YWNrX2F1dGgnLAorICAgICdib290c3RyYXAzX2RhdGV0aW1lJywKKyAgICB7JS0gaWYgYXBwLmxvZ2dpbmcgaXMgZGVmaW5lZCAlfQorICAgICdyYXZlbi5jb250cmliLmRqYW5nby5yYXZlbl9jb21wYXQnLAorICAgIHslLSBlbmRpZiAlfQorKQorCit7JSBpbmNsdWRlICJob3Jpem9uL2ZpbGVzL2hvcml6b25fc2V0dGluZ3MvX2xvY2FsX3NldHRpbmdzLnB5IiAlfQoreyUgaW5jbHVkZSAiaG9yaXpvbi9maWxlcy9ob3Jpem9uX3NldHRpbmdzL19ob3Jpem9uX3NldHRpbmdzLnB5IiAlfQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9tYW5hZ2UucHkgYi9ob3Jpem9uL2ZpbGVzL21hbmFnZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDEzMzBkCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9tYW5hZ2UucHkKQEAgLTAsMCArMSwyMyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCit7JS0gc2V0IGFwcCA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnaG9yaXpvbjpzZXJ2ZXI6YXBwOicrYXBwX25hbWUpICV9CisKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCitmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4KKworcGF0aCA9ICcvc3J2L2hvcml6b24nCisKK3N5cy5wYXRoLmFwcGVuZChqb2luKHBhdGgsICdzaXRlcycsICd7eyBhcHBfbmFtZSB9fScsICdsaWInLCAncHl0aG9uMi43JywgJ3NpdGUtcGFja2FnZXMnKSkKK3N5cy5wYXRoLmFwcGVuZChqb2luKHBhdGgsICdzaXRlcycsICd7eyBhcHBfbmFtZSB9fScsICdleHRyYScpKQoreyUtIGlmIGFwcC5wbHVnaW4gaXMgZGVmaW5lZCAlfQoreyUtIGZvciBwbHVnaW5fbmFtZSwgcGx1Z2luIGluIGFwcC5wbHVnaW4uaXRlcml0ZW1zKCkgJX0KK3N5cy5wYXRoLmFwcGVuZChqb2luKHBhdGgsICdzaXRlcycsICd7eyBhcHBfbmFtZSB9fScsICdwbHVnaW5zJywgJ3t7IHBsdWdpbl9uYW1lIH19JykpCit7JS0gZW5kZm9yICV9Cit7JS0gZW5kaWYgJX0KKworZnJvbSBkamFuZ28uY29yZS5tYW5hZ2VtZW50IGltcG9ydCBleGVjdXRlX2Zyb21fY29tbWFuZF9saW5lCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgb3MuZW52aXJvbi5zZXRkZWZhdWx0KCJESkFOR09fU0VUVElOR1NfTU9EVUxFIiwgInt7IGFwcC5nZXQoJ2Rhc2hib2FyZCcsICdvcGVuc3RhY2snKSB9fV9kYXNoYm9hcmQuc2V0dGluZ3MiKQorICAgIGV4ZWN1dGVfZnJvbV9jb21tYW5kX2xpbmUoc3lzLmFyZ3YpCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL25naW54LmNvbmYgYi9ob3Jpem9uL2ZpbGVzL25naW54LmNvbmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZkMDk2MgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvbmdpbnguY29uZgpAQCAtMCwwICsxLDU4IEBACit7JS0gc2V0IHNpdGUgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ25naW54OnNlcnZlcjpzaXRlOicrc2l0ZV9uYW1lKSAlfQoreyUtIHNldCBhcHAgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ2hvcml6b246c2VydmVyOmFwcDonK3NpdGUubmFtZSkgJX0KKwordXBzdHJlYW0gaG9yaXpvbl9zZXJ2ZXJfe3sgc2l0ZV9uYW1lIH19IHsKKyAgICBzZXJ2ZXIgbG9jYWxob3N0Ont7IGFwcC5iaW5kLnBvcnQgfX0gZmFpbF90aW1lb3V0PTA7Cit9CisKK3NlcnZlciB7CisKKyAgeyUtIGluY2x1ZGUgIm5naW54L2ZpbGVzL19uYW1lLmNvbmYiICV9CisgIHslLSBpbmNsdWRlICJuZ2lueC9maWxlcy9fbG9nLmNvbmYiICV9CisgIHslLSBpbmNsdWRlICJuZ2lueC9maWxlcy9fc3NsLmNvbmYiICV9CisKKyAgdW5kZXJzY29yZXNfaW5faGVhZGVycyBvbjsKKworICBrZWVwYWxpdmVfdGltZW91dCAzMjsKKworICByb290IC9zcnYvaG9yaXpvbi9zaXRlcy97eyBzaXRlLm5hbWUgfX07CisKKyAgeyUtIGlmIHNpdGUudGltZW91dCBpcyBkZWZpbmVkICV9CisgIHByb3h5X2Nvbm5lY3RfdGltZW91dCB7eyBzaXRlLnRpbWVvdXQgfX07CisgIHByb3h5X3NlbmRfdGltZW91dCB7eyBzaXRlLnRpbWVvdXQgfX07CisgIHByb3h5X3JlYWRfdGltZW91dCB7eyBzaXRlLnRpbWVvdXQgfX07CisgIHNlbmRfdGltZW91dCB7eyBzaXRlLnRpbWVvdXQgfX07CisgIHslLSBlbHNlICV9CisgIHByb3h5X2Nvbm5lY3RfdGltZW91dCA2MDA7CisgIHByb3h5X3NlbmRfdGltZW91dCA2MDA7CisgIHByb3h5X3JlYWRfdGltZW91dCA2MDA7CisgIHNlbmRfdGltZW91dCA2MDA7CisgIHslLSBlbmRpZiAlfQorCisgIGxvY2F0aW9uIC9zdGF0aWMgeworICAgIGF1dG9pbmRleCBvbjsKKyAgICBhbGlhcyAvc3J2L2hvcml6b24vc2l0ZXMve3sgc2l0ZS5uYW1lIH19L3N0YXRpYzsKKyAgfQorCisgIGxvY2F0aW9uIC9tZWRpYSB7CisgICAgYXV0b2luZGV4IG9uOworICAgIGFsaWFzIC9zcnYvaG9yaXpvbi9zaXRlcy97eyBzaXRlLm5hbWUgfX0vbWVkaWE7CisgIH0KKworICBsb2NhdGlvbiAvIHsKKyAgICBwcm94eV9zZXRfaGVhZGVyIFgtRm9yd2FyZGVkLUZvciAkcHJveHlfYWRkX3hfZm9yd2FyZGVkX2ZvcjsKKyAgICBwcm94eV9zZXRfaGVhZGVyIEhvc3QgJGh0dHBfaG9zdDsKKyAgICBwcm94eV9yZWRpcmVjdCBvZmY7CisKKyAgICBwcm94eV9idWZmZXJfc2l6ZSAxMjhrOworICAgIHByb3h5X2J1ZmZlcnMgNCAyNTZrOworICAgIHByb3h5X2J1c3lfYnVmZmVyc19zaXplIDI1Nms7CisKKyAgICBjbGllbnRfbWF4X2JvZHlfc2l6ZSAyMDAwMG07CisKKyAgICBpZiAoIS1mICRyZXF1ZXN0X2ZpbGVuYW1lKSB7CisgICAgICBwcm94eV9wYXNzIGh0dHA6Ly9ob3Jpem9uX3NlcnZlcl97eyBzaXRlX25hbWUgfX07CisgICAgICBicmVhazsKKyAgICB9CisgIH0KK30KZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvcG9saWN5L2p1bm8ta2V5c3RvbmUtdjIuanNvbiBiL2hvcml6b24vZmlsZXMvcG9saWN5L2p1bm8ta2V5c3RvbmUtdjIuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjY1MjA1Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9wb2xpY3kvanVuby1rZXlzdG9uZS12Mi5qc29uCkBAIC0wLDAgKzEsMTcxIEBACit7CisgICAgImFkbWluX3JlcXVpcmVkIjogInJvbGU6YWRtaW4gb3IgaXNfYWRtaW46MSIsCisgICAgInNlcnZpY2Vfcm9sZSI6ICJyb2xlOnNlcnZpY2UiLAorICAgICJzZXJ2aWNlX29yX2FkbWluIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQgb3IgcnVsZTpzZXJ2aWNlX3JvbGUiLAorICAgICJvd25lciIgOiAidXNlcl9pZDolKHVzZXJfaWQpcyIsCisgICAgImFkbWluX29yX293bmVyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQgb3IgcnVsZTpvd25lciIsCisKKyAgICAiZGVmYXVsdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTpnZXRfcmVnaW9uIjogIiIsCisgICAgImlkZW50aXR5Omxpc3RfcmVnaW9ucyI6ICIiLAorICAgICJpZGVudGl0eTpjcmVhdGVfcmVnaW9uIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfcmVnaW9uIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfcmVnaW9uIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmdldF9zZXJ2aWNlIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X3NlcnZpY2VzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjcmVhdGVfc2VydmljZSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX3NlcnZpY2UiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9zZXJ2aWNlIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmdldF9lbmRwb2ludCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9lbmRwb2ludHMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNyZWF0ZV9lbmRwb2ludCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX2VuZHBvaW50IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfZW5kcG9pbnQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Z2V0X2RvbWFpbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9kb21haW5zIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjcmVhdGVfZG9tYWluIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfZG9tYWluIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfZG9tYWluIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmdldF9wcm9qZWN0IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X3Byb2plY3RzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X3VzZXJfcHJvamVjdHMiOiAicnVsZTphZG1pbl9vcl9vd25lciIsCisgICAgImlkZW50aXR5OmNyZWF0ZV9wcm9qZWN0IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfcHJvamVjdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Z2V0X3VzZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfdXNlcnMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNyZWF0ZV91c2VyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfdXNlciI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3VzZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNoYW5nZV9wYXNzd29yZCI6ICJydWxlOmFkbWluX29yX293bmVyIiwKKworICAgICJpZGVudGl0eTpnZXRfZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfZ3JvdXBzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X2dyb3Vwc19mb3JfdXNlciI6ICJydWxlOmFkbWluX29yX293bmVyIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX2dyb3VwIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF91c2Vyc19pbl9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6cmVtb3ZlX3VzZXJfZnJvbV9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Y2hlY2tfdXNlcl9pbl9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6YWRkX3VzZXJfdG9fZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Z2V0X2NyZWRlbnRpYWwiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfY3JlZGVudGlhbHMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNyZWF0ZV9jcmVkZW50aWFsIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfY3JlZGVudGlhbCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX2NyZWRlbnRpYWwiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6ZWMyX2dldF9jcmVkZW50aWFsIjogInJ1bGU6YWRtaW5fb3Jfb3duZXIiLAorICAgICJpZGVudGl0eTplYzJfbGlzdF9jcmVkZW50aWFscyI6ICJydWxlOmFkbWluX29yX293bmVyIiwKKyAgICAiaWRlbnRpdHk6ZWMyX2NyZWF0ZV9jcmVkZW50aWFsIjogInJ1bGU6YWRtaW5fb3Jfb3duZXIiLAorICAgICJpZGVudGl0eTplYzJfZGVsZXRlX2NyZWRlbnRpYWwiOiAicnVsZTphZG1pbl9yZXF1aXJlZCBvciAocnVsZTpvd25lciBhbmQgdXNlcl9pZDolKHRhcmdldC5jcmVkZW50aWFsLnVzZXJfaWQpcykiLAorCisgICAgImlkZW50aXR5OmdldF9yb2xlIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X3JvbGVzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjcmVhdGVfcm9sZSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX3JvbGUiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9yb2xlIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmNoZWNrX2dyYW50IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X2dyYW50cyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX2dyYW50IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpyZXZva2VfZ3JhbnQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6bGlzdF9yb2xlX2Fzc2lnbm1lbnRzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmdldF9wb2xpY3kiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfcG9saWNpZXMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNyZWF0ZV9wb2xpY3kiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9wb2xpY3kiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9wb2xpY3kiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Y2hlY2tfdG9rZW4iOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnZhbGlkYXRlX3Rva2VuIjogInJ1bGU6c2VydmljZV9vcl9hZG1pbiIsCisgICAgImlkZW50aXR5OnZhbGlkYXRlX3Rva2VuX2hlYWQiOiAicnVsZTpzZXJ2aWNlX29yX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6cmV2b2NhdGlvbl9saXN0IjogInJ1bGU6c2VydmljZV9vcl9hZG1pbiIsCisgICAgImlkZW50aXR5OnJldm9rZV90b2tlbiI6ICJydWxlOmFkbWluX29yX293bmVyIiwKKworICAgICJpZGVudGl0eTpjcmVhdGVfdHJ1c3QiOiAidXNlcl9pZDolKHRydXN0LnRydXN0b3JfdXNlcl9pZClzIiwKKyAgICAiaWRlbnRpdHk6Z2V0X3RydXN0IjogInJ1bGU6YWRtaW5fb3Jfb3duZXIiLAorICAgICJpZGVudGl0eTpsaXN0X3RydXN0cyI6ICIiLAorICAgICJpZGVudGl0eTpsaXN0X3JvbGVzX2Zvcl90cnVzdCI6ICIiLAorICAgICJpZGVudGl0eTpjaGVja19yb2xlX2Zvcl90cnVzdCI6ICIiLAorICAgICJpZGVudGl0eTpnZXRfcm9sZV9mb3JfdHJ1c3QiOiAiIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3RydXN0IjogIiIsCisKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX2NvbnN1bWVyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpnZXRfY29uc3VtZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfY29uc3VtZXJzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfY29uc3VtZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9jb25zdW1lciI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTphdXRob3JpemVfcmVxdWVzdF90b2tlbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9hY2Nlc3NfdG9rZW5fcm9sZXMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmdldF9hY2Nlc3NfdG9rZW5fcm9sZSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9hY2Nlc3NfdG9rZW5zIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpnZXRfYWNjZXNzX3Rva2VuIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfYWNjZXNzX3Rva2VuIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5Omxpc3RfcHJvamVjdHNfZm9yX2VuZHBvaW50IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTphZGRfZW5kcG9pbnRfdG9fcHJvamVjdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Y2hlY2tfZW5kcG9pbnRfaW5fcHJvamVjdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9lbmRwb2ludHNfZm9yX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnJlbW92ZV9lbmRwb2ludF9mcm9tX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX2VuZHBvaW50X2dyb3VwIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X2VuZHBvaW50X2dyb3VwcyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Z2V0X2VuZHBvaW50X2dyb3VwIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfZW5kcG9pbnRfZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9lbmRwb2ludF9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9wcm9qZWN0c19hc3NvY2lhdGVkX3dpdGhfZW5kcG9pbnRfZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfZW5kcG9pbnRzX2Fzc29jaWF0ZWRfd2l0aF9lbmRwb2ludF9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9lbmRwb2ludF9ncm91cHNfZm9yX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmFkZF9lbmRwb2ludF9ncm91cF90b19wcm9qZWN0IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpyZW1vdmVfZW5kcG9pbnRfZ3JvdXBfZnJvbV9wcm9qZWN0IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmNyZWF0ZV9pZGVudGl0eV9wcm92aWRlciI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9pZGVudGl0eV9wcm92aWRlcnMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmdldF9pZGVudGl0eV9wcm92aWRlcnMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9pZGVudGl0eV9wcm92aWRlciI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX2lkZW50aXR5X3Byb3ZpZGVyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmNyZWF0ZV9wcm90b2NvbCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX3Byb3RvY29sIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpnZXRfcHJvdG9jb2wiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfcHJvdG9jb2xzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfcHJvdG9jb2wiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX21hcHBpbmciOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmdldF9tYXBwaW5nIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X21hcHBpbmdzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfbWFwcGluZyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX21hcHBpbmciOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Z2V0X2F1dGhfY2F0YWxvZyI6ICIiLAorICAgICJpZGVudGl0eTpnZXRfYXV0aF9wcm9qZWN0cyI6ICIiLAorICAgICJpZGVudGl0eTpnZXRfYXV0aF9kb21haW5zIjogIiIsCisKKyAgICAiaWRlbnRpdHk6bGlzdF9wcm9qZWN0c19mb3JfZ3JvdXBzIjogIiIsCisgICAgImlkZW50aXR5Omxpc3RfZG9tYWluc19mb3JfZ3JvdXBzIjogIiIsCisKKyAgICAiaWRlbnRpdHk6bGlzdF9yZXZva2VfZXZlbnRzIjogIiIsCisKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3BvbGljeV9hc3NvY2lhdGlvbl9mb3JfZW5kcG9pbnQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNoZWNrX3BvbGljeV9hc3NvY2lhdGlvbl9mb3JfZW5kcG9pbnQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9wb2xpY3lfYXNzb2NpYXRpb25fZm9yX2VuZHBvaW50IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjcmVhdGVfcG9saWN5X2Fzc29jaWF0aW9uX2Zvcl9zZXJ2aWNlIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjaGVja19wb2xpY3lfYXNzb2NpYXRpb25fZm9yX3NlcnZpY2UiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9wb2xpY3lfYXNzb2NpYXRpb25fZm9yX3NlcnZpY2UiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNyZWF0ZV9wb2xpY3lfYXNzb2NpYXRpb25fZm9yX3JlZ2lvbl9hbmRfc2VydmljZSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Y2hlY2tfcG9saWN5X2Fzc29jaWF0aW9uX2Zvcl9yZWdpb25fYW5kX3NlcnZpY2UiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9wb2xpY3lfYXNzb2NpYXRpb25fZm9yX3JlZ2lvbl9hbmRfc2VydmljZSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Z2V0X3BvbGljeV9mb3JfZW5kcG9pbnQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfZW5kcG9pbnRzX2Zvcl9wb2xpY3kiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIKK30KZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvcG9saWN5L2tpbG8ta2V5c3RvbmUtdjIuanNvbiBiL2hvcml6b24vZmlsZXMvcG9saWN5L2tpbG8ta2V5c3RvbmUtdjIuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjg4YzUzCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9wb2xpY3kva2lsby1rZXlzdG9uZS12Mi5qc29uCkBAIC0wLDAgKzEsMTg0IEBACit7CisgICAgImFkbWluX3JlcXVpcmVkIjogInJvbGU6YWRtaW4gb3IgaXNfYWRtaW46MSIsCisgICAgInNlcnZpY2Vfcm9sZSI6ICJyb2xlOnNlcnZpY2UiLAorICAgICJzZXJ2aWNlX29yX2FkbWluIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQgb3IgcnVsZTpzZXJ2aWNlX3JvbGUiLAorICAgICJvd25lciIgOiAidXNlcl9pZDolKHVzZXJfaWQpcyIsCisgICAgImFkbWluX29yX293bmVyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQgb3IgcnVsZTpvd25lciIsCisgICAgInRva2VuX3N1YmplY3QiOiAidXNlcl9pZDolKHRhcmdldC50b2tlbi51c2VyX2lkKXMiLAorICAgICJhZG1pbl9vcl90b2tlbl9zdWJqZWN0IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQgb3IgcnVsZTp0b2tlbl9zdWJqZWN0IiwKKyAgICAic2VydmljZV9hZG1pbl9vcl90b2tlbl9zdWJqZWN0IjogInJ1bGU6c2VydmljZV9vcl9hZG1pbiBvciBydWxlOnRva2VuX3N1YmplY3QiLAorCisgICAgImRlZmF1bHQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Z2V0X3JlZ2lvbiI6ICIiLAorICAgICJpZGVudGl0eTpsaXN0X3JlZ2lvbnMiOiAiIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3JlZ2lvbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX3JlZ2lvbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3JlZ2lvbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTpnZXRfc2VydmljZSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9zZXJ2aWNlcyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3NlcnZpY2UiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9zZXJ2aWNlIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfc2VydmljZSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTpnZXRfZW5kcG9pbnQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfZW5kcG9pbnRzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjcmVhdGVfZW5kcG9pbnQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9lbmRwb2ludCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX2VuZHBvaW50IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmdldF9kb21haW4iOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfZG9tYWlucyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX2RvbWFpbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX2RvbWFpbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX2RvbWFpbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTpnZXRfcHJvamVjdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9wcm9qZWN0cyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF91c2VyX3Byb2plY3RzIjogInJ1bGU6YWRtaW5fb3Jfb3duZXIiLAorICAgICJpZGVudGl0eTpjcmVhdGVfcHJvamVjdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9wcm9qZWN0IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmdldF91c2VyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X3VzZXJzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjcmVhdGVfdXNlciI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX3VzZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV91c2VyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjaGFuZ2VfcGFzc3dvcmQiOiAicnVsZTphZG1pbl9vcl9vd25lciIsCisKKyAgICAiaWRlbnRpdHk6Z2V0X2dyb3VwIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X2dyb3VwcyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9ncm91cHNfZm9yX3VzZXIiOiAicnVsZTphZG1pbl9vcl9vd25lciIsCisgICAgImlkZW50aXR5OmNyZWF0ZV9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX2dyb3VwIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfdXNlcnNfaW5fZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnJlbW92ZV91c2VyX2Zyb21fZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNoZWNrX3VzZXJfaW5fZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmFkZF91c2VyX3RvX2dyb3VwIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmdldF9jcmVkZW50aWFsIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X2NyZWRlbnRpYWxzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjcmVhdGVfY3JlZGVudGlhbCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX2NyZWRlbnRpYWwiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9jcmVkZW50aWFsIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmVjMl9nZXRfY3JlZGVudGlhbCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIG9yIChydWxlOm93bmVyIGFuZCB1c2VyX2lkOiUodGFyZ2V0LmNyZWRlbnRpYWwudXNlcl9pZClzKSIsCisgICAgImlkZW50aXR5OmVjMl9saXN0X2NyZWRlbnRpYWxzIjogInJ1bGU6YWRtaW5fb3Jfb3duZXIiLAorICAgICJpZGVudGl0eTplYzJfY3JlYXRlX2NyZWRlbnRpYWwiOiAicnVsZTphZG1pbl9vcl9vd25lciIsCisgICAgImlkZW50aXR5OmVjMl9kZWxldGVfY3JlZGVudGlhbCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIG9yIChydWxlOm93bmVyIGFuZCB1c2VyX2lkOiUodGFyZ2V0LmNyZWRlbnRpYWwudXNlcl9pZClzKSIsCisKKyAgICAiaWRlbnRpdHk6Z2V0X3JvbGUiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3Rfcm9sZXMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNyZWF0ZV9yb2xlIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfcm9sZSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3JvbGUiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Y2hlY2tfZ3JhbnQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfZ3JhbnRzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjcmVhdGVfZ3JhbnQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnJldm9rZV9ncmFudCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTpsaXN0X3JvbGVfYXNzaWdubWVudHMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Z2V0X3BvbGljeSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9wb2xpY2llcyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3BvbGljeSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX3BvbGljeSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3BvbGljeSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTpjaGVja190b2tlbiI6ICJydWxlOmFkbWluX29yX3Rva2VuX3N1YmplY3QiLAorICAgICJpZGVudGl0eTp2YWxpZGF0ZV90b2tlbiI6ICJydWxlOnNlcnZpY2VfYWRtaW5fb3JfdG9rZW5fc3ViamVjdCIsCisgICAgImlkZW50aXR5OnZhbGlkYXRlX3Rva2VuX2hlYWQiOiAicnVsZTpzZXJ2aWNlX29yX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6cmV2b2NhdGlvbl9saXN0IjogInJ1bGU6c2VydmljZV9vcl9hZG1pbiIsCisgICAgImlkZW50aXR5OnJldm9rZV90b2tlbiI6ICJydWxlOmFkbWluX29yX3Rva2VuX3N1YmplY3QiLAorCisgICAgImlkZW50aXR5OmNyZWF0ZV90cnVzdCI6ICJ1c2VyX2lkOiUodHJ1c3QudHJ1c3Rvcl91c2VyX2lkKXMiLAorICAgICJpZGVudGl0eTpsaXN0X3RydXN0cyI6ICIiLAorICAgICJpZGVudGl0eTpsaXN0X3JvbGVzX2Zvcl90cnVzdCI6ICIiLAorICAgICJpZGVudGl0eTpnZXRfcm9sZV9mb3JfdHJ1c3QiOiAiIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3RydXN0IjogIiIsCisKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX2NvbnN1bWVyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpnZXRfY29uc3VtZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfY29uc3VtZXJzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfY29uc3VtZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9jb25zdW1lciI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTphdXRob3JpemVfcmVxdWVzdF90b2tlbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9hY2Nlc3NfdG9rZW5fcm9sZXMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmdldF9hY2Nlc3NfdG9rZW5fcm9sZSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9hY2Nlc3NfdG9rZW5zIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpnZXRfYWNjZXNzX3Rva2VuIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfYWNjZXNzX3Rva2VuIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5Omxpc3RfcHJvamVjdHNfZm9yX2VuZHBvaW50IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTphZGRfZW5kcG9pbnRfdG9fcHJvamVjdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Y2hlY2tfZW5kcG9pbnRfaW5fcHJvamVjdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9lbmRwb2ludHNfZm9yX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnJlbW92ZV9lbmRwb2ludF9mcm9tX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX2VuZHBvaW50X2dyb3VwIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X2VuZHBvaW50X2dyb3VwcyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Z2V0X2VuZHBvaW50X2dyb3VwIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfZW5kcG9pbnRfZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9lbmRwb2ludF9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9wcm9qZWN0c19hc3NvY2lhdGVkX3dpdGhfZW5kcG9pbnRfZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfZW5kcG9pbnRzX2Fzc29jaWF0ZWRfd2l0aF9lbmRwb2ludF9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Z2V0X2VuZHBvaW50X2dyb3VwX2luX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfZW5kcG9pbnRfZ3JvdXBzX2Zvcl9wcm9qZWN0IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTphZGRfZW5kcG9pbnRfZ3JvdXBfdG9fcHJvamVjdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6cmVtb3ZlX2VuZHBvaW50X2dyb3VwX2Zyb21fcHJvamVjdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTpjcmVhdGVfaWRlbnRpdHlfcHJvdmlkZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfaWRlbnRpdHlfcHJvdmlkZXJzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpnZXRfaWRlbnRpdHlfcHJvdmlkZXJzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfaWRlbnRpdHlfcHJvdmlkZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9pZGVudGl0eV9wcm92aWRlciI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTpjcmVhdGVfcHJvdG9jb2wiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9wcm90b2NvbCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Z2V0X3Byb3RvY29sIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X3Byb3RvY29scyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3Byb3RvY29sIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmNyZWF0ZV9tYXBwaW5nIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpnZXRfbWFwcGluZyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9tYXBwaW5ncyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX21hcHBpbmciOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9tYXBwaW5nIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmNyZWF0ZV9zZXJ2aWNlX3Byb3ZpZGVyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X3NlcnZpY2VfcHJvdmlkZXJzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpnZXRfc2VydmljZV9wcm92aWRlciI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX3NlcnZpY2VfcHJvdmlkZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9zZXJ2aWNlX3Byb3ZpZGVyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmdldF9hdXRoX2NhdGFsb2ciOiAiIiwKKyAgICAiaWRlbnRpdHk6Z2V0X2F1dGhfcHJvamVjdHMiOiAiIiwKKyAgICAiaWRlbnRpdHk6Z2V0X2F1dGhfZG9tYWlucyI6ICIiLAorCisgICAgImlkZW50aXR5Omxpc3RfcHJvamVjdHNfZm9yX2dyb3VwcyI6ICIiLAorICAgICJpZGVudGl0eTpsaXN0X2RvbWFpbnNfZm9yX2dyb3VwcyI6ICIiLAorCisgICAgImlkZW50aXR5Omxpc3RfcmV2b2tlX2V2ZW50cyI6ICIiLAorCisgICAgImlkZW50aXR5OmNyZWF0ZV9wb2xpY3lfYXNzb2NpYXRpb25fZm9yX2VuZHBvaW50IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjaGVja19wb2xpY3lfYXNzb2NpYXRpb25fZm9yX2VuZHBvaW50IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfcG9saWN5X2Fzc29jaWF0aW9uX2Zvcl9lbmRwb2ludCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3BvbGljeV9hc3NvY2lhdGlvbl9mb3Jfc2VydmljZSI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Y2hlY2tfcG9saWN5X2Fzc29jaWF0aW9uX2Zvcl9zZXJ2aWNlIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfcG9saWN5X2Fzc29jaWF0aW9uX2Zvcl9zZXJ2aWNlIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpjcmVhdGVfcG9saWN5X2Fzc29jaWF0aW9uX2Zvcl9yZWdpb25fYW5kX3NlcnZpY2UiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNoZWNrX3BvbGljeV9hc3NvY2lhdGlvbl9mb3JfcmVnaW9uX2FuZF9zZXJ2aWNlIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfcG9saWN5X2Fzc29jaWF0aW9uX2Zvcl9yZWdpb25fYW5kX3NlcnZpY2UiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmdldF9wb2xpY3lfZm9yX2VuZHBvaW50IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X2VuZHBvaW50c19mb3JfcG9saWN5IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmNyZWF0ZV9kb21haW5fY29uZmlnIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpnZXRfZG9tYWluX2NvbmZpZyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX2RvbWFpbl9jb25maWciOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9kb21haW5fY29uZmlnIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9wb2xpY3kva2lsby1rZXlzdG9uZS12My5qc29uIGIvaG9yaXpvbi9maWxlcy9wb2xpY3kva2lsby1rZXlzdG9uZS12My5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwZTNlNjQKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL3BvbGljeS9raWxvLWtleXN0b25lLXYzLmpzb24KQEAgLTAsMCArMSwxOTUgQEAKK3sKKyAgICAiYWRtaW5fcmVxdWlyZWQiOiAicm9sZTphZG1pbiIsCisgICAgImNsb3VkX2FkbWluIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQgYW5kIGRvbWFpbl9pZDpkZWZhdWx0IiwKKyAgICAic2VydmljZV9yb2xlIjogInJvbGU6c2VydmljZSIsCisgICAgInNlcnZpY2Vfb3JfYWRtaW4iOiAicnVsZTphZG1pbl9yZXF1aXJlZCBvciBydWxlOnNlcnZpY2Vfcm9sZSIsCisgICAgIm93bmVyIiA6ICJ1c2VyX2lkOiUodXNlcl9pZClzIG9yIHVzZXJfaWQ6JSh0YXJnZXQudG9rZW4udXNlcl9pZClzIiwKKyAgICAiYWRtaW5fb3Jfb3duZXIiOiAiKHJ1bGU6YWRtaW5fcmVxdWlyZWQgYW5kIGRvbWFpbl9pZDolKHRhcmdldC50b2tlbi51c2VyLmRvbWFpbi5pZClzKSBvciBydWxlOm93bmVyIiwKKyAgICAiYWRtaW5fb3JfY2xvdWRfYWRtaW4iOiAicnVsZTphZG1pbl9yZXF1aXJlZCBvciBydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiYWRtaW5fYW5kX21hdGNoaW5nX2RvbWFpbl9pZCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIGFuZCBkb21haW5faWQ6JShkb21haW5faWQpcyIsCisgICAgInNlcnZpY2VfYWRtaW5fb3Jfb3duZXIiOiAicnVsZTpzZXJ2aWNlX29yX2FkbWluIG9yIHJ1bGU6b3duZXIiLAorCisgICAgImRlZmF1bHQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Z2V0X3JlZ2lvbiI6ICIiLAorICAgICJpZGVudGl0eTpsaXN0X3JlZ2lvbnMiOiAiIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3JlZ2lvbiI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX3JlZ2lvbiI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3JlZ2lvbiI6ICJydWxlOmNsb3VkX2FkbWluIiwKKworICAgICJpZGVudGl0eTpnZXRfc2VydmljZSI6ICJydWxlOmFkbWluX29yX2Nsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9zZXJ2aWNlcyI6ICJydWxlOmFkbWluX29yX2Nsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3NlcnZpY2UiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9zZXJ2aWNlIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpkZWxldGVfc2VydmljZSI6ICJydWxlOmNsb3VkX2FkbWluIiwKKworICAgICJpZGVudGl0eTpnZXRfZW5kcG9pbnQiOiAicnVsZTphZG1pbl9vcl9jbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5Omxpc3RfZW5kcG9pbnRzIjogInJ1bGU6YWRtaW5fb3JfY2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpjcmVhdGVfZW5kcG9pbnQiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9lbmRwb2ludCI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX2VuZHBvaW50IjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorCisgICAgImlkZW50aXR5OmdldF9kb21haW4iOiAicnVsZTpjbG91ZF9hZG1pbiBvciBydWxlOmFkbWluX2FuZF9tYXRjaGluZ19kb21haW5faWQiLAorICAgICJpZGVudGl0eTpsaXN0X2RvbWFpbnMiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OmNyZWF0ZV9kb21haW4iOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9kb21haW4iOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9kb21haW4iOiAicnVsZTpjbG91ZF9hZG1pbiIsCisKKyAgICAiYWRtaW5fYW5kX21hdGNoaW5nX3RhcmdldF9wcm9qZWN0X2RvbWFpbl9pZCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIGFuZCBkb21haW5faWQ6JSh0YXJnZXQucHJvamVjdC5kb21haW5faWQpcyIsCisgICAgImFkbWluX2FuZF9tYXRjaGluZ19wcm9qZWN0X2RvbWFpbl9pZCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIGFuZCBkb21haW5faWQ6JShwcm9qZWN0LmRvbWFpbl9pZClzIiwKKyAgICAiaWRlbnRpdHk6Z2V0X3Byb2plY3QiOiAicnVsZTpjbG91ZF9hZG1pbiBvciBydWxlOmFkbWluX2FuZF9tYXRjaGluZ190YXJnZXRfcHJvamVjdF9kb21haW5faWQiLAorICAgICJpZGVudGl0eTpsaXN0X3Byb2plY3RzIjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfZG9tYWluX2lkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF91c2VyX3Byb2plY3RzIjogInJ1bGU6b3duZXIgb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfZG9tYWluX2lkIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3Byb2plY3QiOiAicnVsZTpjbG91ZF9hZG1pbiBvciBydWxlOmFkbWluX2FuZF9tYXRjaGluZ19wcm9qZWN0X2RvbWFpbl9pZCIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9wcm9qZWN0IjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfdGFyZ2V0X3Byb2plY3RfZG9tYWluX2lkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3Byb2plY3QiOiAicnVsZTpjbG91ZF9hZG1pbiBvciBydWxlOmFkbWluX2FuZF9tYXRjaGluZ190YXJnZXRfcHJvamVjdF9kb21haW5faWQiLAorCisgICAgImFkbWluX2FuZF9tYXRjaGluZ190YXJnZXRfdXNlcl9kb21haW5faWQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCBhbmQgZG9tYWluX2lkOiUodGFyZ2V0LnVzZXIuZG9tYWluX2lkKXMiLAorICAgICJhZG1pbl9hbmRfbWF0Y2hpbmdfdXNlcl9kb21haW5faWQiOiAicnVsZTphZG1pbl9yZXF1aXJlZCBhbmQgZG9tYWluX2lkOiUodXNlci5kb21haW5faWQpcyIsCisgICAgImlkZW50aXR5OmdldF91c2VyIjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfdGFyZ2V0X3VzZXJfZG9tYWluX2lkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF91c2VycyI6ICJydWxlOmNsb3VkX2FkbWluIG9yIHJ1bGU6YWRtaW5fYW5kX21hdGNoaW5nX2RvbWFpbl9pZCIsCisgICAgImlkZW50aXR5OmNyZWF0ZV91c2VyIjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfdXNlcl9kb21haW5faWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfdXNlciI6ICJydWxlOmNsb3VkX2FkbWluIG9yIHJ1bGU6YWRtaW5fYW5kX21hdGNoaW5nX3RhcmdldF91c2VyX2RvbWFpbl9pZCIsCisgICAgImlkZW50aXR5OmRlbGV0ZV91c2VyIjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfdGFyZ2V0X3VzZXJfZG9tYWluX2lkIiwKKworICAgICJhZG1pbl9hbmRfbWF0Y2hpbmdfdGFyZ2V0X2dyb3VwX2RvbWFpbl9pZCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIGFuZCBkb21haW5faWQ6JSh0YXJnZXQuZ3JvdXAuZG9tYWluX2lkKXMiLAorICAgICJhZG1pbl9hbmRfbWF0Y2hpbmdfZ3JvdXBfZG9tYWluX2lkIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQgYW5kIGRvbWFpbl9pZDolKGdyb3VwLmRvbWFpbl9pZClzIiwKKyAgICAiaWRlbnRpdHk6Z2V0X2dyb3VwIjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfdGFyZ2V0X2dyb3VwX2RvbWFpbl9pZCIsCisgICAgImlkZW50aXR5Omxpc3RfZ3JvdXBzIjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfZG9tYWluX2lkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9ncm91cHNfZm9yX3VzZXIiOiAicnVsZTpvd25lciBvciBydWxlOmFkbWluX2FuZF9tYXRjaGluZ19kb21haW5faWQiLAorICAgICJpZGVudGl0eTpjcmVhdGVfZ3JvdXAiOiAicnVsZTpjbG91ZF9hZG1pbiBvciBydWxlOmFkbWluX2FuZF9tYXRjaGluZ19ncm91cF9kb21haW5faWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfZ3JvdXAiOiAicnVsZTpjbG91ZF9hZG1pbiBvciBydWxlOmFkbWluX2FuZF9tYXRjaGluZ190YXJnZXRfZ3JvdXBfZG9tYWluX2lkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX2dyb3VwIjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfdGFyZ2V0X2dyb3VwX2RvbWFpbl9pZCIsCisgICAgImlkZW50aXR5Omxpc3RfdXNlcnNfaW5fZ3JvdXAiOiAicnVsZTpjbG91ZF9hZG1pbiBvciBydWxlOmFkbWluX2FuZF9tYXRjaGluZ190YXJnZXRfZ3JvdXBfZG9tYWluX2lkIiwKKyAgICAiaWRlbnRpdHk6cmVtb3ZlX3VzZXJfZnJvbV9ncm91cCI6ICJydWxlOmNsb3VkX2FkbWluIG9yIHJ1bGU6YWRtaW5fYW5kX21hdGNoaW5nX3RhcmdldF9ncm91cF9kb21haW5faWQiLAorICAgICJpZGVudGl0eTpjaGVja191c2VyX2luX2dyb3VwIjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfdGFyZ2V0X2dyb3VwX2RvbWFpbl9pZCIsCisgICAgImlkZW50aXR5OmFkZF91c2VyX3RvX2dyb3VwIjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTphZG1pbl9hbmRfbWF0Y2hpbmdfdGFyZ2V0X2dyb3VwX2RvbWFpbl9pZCIsCisKKyAgICAiaWRlbnRpdHk6Z2V0X2NyZWRlbnRpYWwiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfY3JlZGVudGlhbHMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCBvciB1c2VyX2lkOiUodXNlcl9pZClzIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX2NyZWRlbnRpYWwiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9jcmVkZW50aWFsIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfY3JlZGVudGlhbCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTplYzJfZ2V0X2NyZWRlbnRpYWwiOiAicnVsZTphZG1pbl9vcl9jbG91ZF9hZG1pbiBvciAocnVsZTpvd25lciBhbmQgdXNlcl9pZDolKHRhcmdldC5jcmVkZW50aWFsLnVzZXJfaWQpcykiLAorICAgICJpZGVudGl0eTplYzJfbGlzdF9jcmVkZW50aWFscyI6ICJydWxlOmFkbWluX29yX2Nsb3VkX2FkbWluIG9yIHJ1bGU6b3duZXIiLAorICAgICJpZGVudGl0eTplYzJfY3JlYXRlX2NyZWRlbnRpYWwiOiAicnVsZTphZG1pbl9vcl9jbG91ZF9hZG1pbiBvciBydWxlOm93bmVyIiwKKyAgICAiaWRlbnRpdHk6ZWMyX2RlbGV0ZV9jcmVkZW50aWFsIjogInJ1bGU6YWRtaW5fb3JfY2xvdWRfYWRtaW4gb3IgKHJ1bGU6b3duZXIgYW5kIHVzZXJfaWQ6JSh0YXJnZXQuY3JlZGVudGlhbC51c2VyX2lkKXMpIiwKKworICAgICJpZGVudGl0eTpnZXRfcm9sZSI6ICJydWxlOmFkbWluX29yX2Nsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9yb2xlcyI6ICJydWxlOmFkbWluX29yX2Nsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3JvbGUiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9yb2xlIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpkZWxldGVfcm9sZSI6ICJydWxlOmNsb3VkX2FkbWluIiwKKworICAgICJkb21haW5fYWRtaW5fZm9yX2dyYW50cyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIGFuZCAoZG9tYWluX2lkOiUoZG9tYWluX2lkKXMgb3IgZG9tYWluX2lkOiUodGFyZ2V0LnByb2plY3QuZG9tYWluX2lkKXMpIiwKKyAgICAicHJvamVjdF9hZG1pbl9mb3JfZ3JhbnRzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQgYW5kIHByb2plY3RfaWQ6JShwcm9qZWN0X2lkKXMiLAorICAgICJpZGVudGl0eTpjaGVja19ncmFudCI6ICJydWxlOmNsb3VkX2FkbWluIG9yIHJ1bGU6ZG9tYWluX2FkbWluX2Zvcl9ncmFudHMgb3IgcnVsZTpwcm9qZWN0X2FkbWluX2Zvcl9ncmFudHMiLAorICAgICJpZGVudGl0eTpsaXN0X2dyYW50cyI6ICJydWxlOmNsb3VkX2FkbWluIG9yIHJ1bGU6ZG9tYWluX2FkbWluX2Zvcl9ncmFudHMgb3IgcnVsZTpwcm9qZWN0X2FkbWluX2Zvcl9ncmFudHMiLAorICAgICJpZGVudGl0eTpjcmVhdGVfZ3JhbnQiOiAicnVsZTpjbG91ZF9hZG1pbiBvciBydWxlOmRvbWFpbl9hZG1pbl9mb3JfZ3JhbnRzIG9yIHJ1bGU6cHJvamVjdF9hZG1pbl9mb3JfZ3JhbnRzIiwKKyAgICAiaWRlbnRpdHk6cmV2b2tlX2dyYW50IjogInJ1bGU6Y2xvdWRfYWRtaW4gb3IgcnVsZTpkb21haW5fYWRtaW5fZm9yX2dyYW50cyBvciBydWxlOnByb2plY3RfYWRtaW5fZm9yX2dyYW50cyIsCisKKyAgICAiYWRtaW5fb25fZG9tYWluX2ZpbHRlciIgOiAicnVsZTphZG1pbl9yZXF1aXJlZCBhbmQgZG9tYWluX2lkOiUoc2NvcGUuZG9tYWluLmlkKXMiLAorICAgICJhZG1pbl9vbl9wcm9qZWN0X2ZpbHRlciIgOiAicnVsZTphZG1pbl9yZXF1aXJlZCBhbmQgcHJvamVjdF9pZDolKHNjb3BlLnByb2plY3QuaWQpcyIsCisgICAgImlkZW50aXR5Omxpc3Rfcm9sZV9hc3NpZ25tZW50cyI6ICJydWxlOmNsb3VkX2FkbWluIG9yIHJ1bGU6YWRtaW5fb25fZG9tYWluX2ZpbHRlciBvciBydWxlOmFkbWluX29uX3Byb2plY3RfZmlsdGVyIiwKKworICAgICJpZGVudGl0eTpnZXRfcG9saWN5IjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpsaXN0X3BvbGljaWVzIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpjcmVhdGVfcG9saWN5IjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTp1cGRhdGVfcG9saWN5IjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpkZWxldGVfcG9saWN5IjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorCisgICAgImlkZW50aXR5OmNoYW5nZV9wYXNzd29yZCI6ICJydWxlOm93bmVyIiwKKyAgICAiaWRlbnRpdHk6Y2hlY2tfdG9rZW4iOiAicnVsZTphZG1pbl9vcl9vd25lciIsCisgICAgImlkZW50aXR5OnZhbGlkYXRlX3Rva2VuIjogInJ1bGU6c2VydmljZV9hZG1pbl9vcl9vd25lciIsCisgICAgImlkZW50aXR5OnZhbGlkYXRlX3Rva2VuX2hlYWQiOiAicnVsZTpzZXJ2aWNlX29yX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6cmV2b2NhdGlvbl9saXN0IjogInJ1bGU6c2VydmljZV9vcl9hZG1pbiIsCisgICAgImlkZW50aXR5OnJldm9rZV90b2tlbiI6ICJydWxlOmFkbWluX29yX293bmVyIiwKKworICAgICJpZGVudGl0eTpjcmVhdGVfdHJ1c3QiOiAidXNlcl9pZDolKHRydXN0LnRydXN0b3JfdXNlcl9pZClzIiwKKyAgICAiaWRlbnRpdHk6bGlzdF90cnVzdHMiOiAiIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9yb2xlc19mb3JfdHJ1c3QiOiAiIiwKKyAgICAiaWRlbnRpdHk6Z2V0X3JvbGVfZm9yX3RydXN0IjogIiIsCisgICAgImlkZW50aXR5OmRlbGV0ZV90cnVzdCI6ICIiLAorCisgICAgImlkZW50aXR5OmNyZWF0ZV9jb25zdW1lciI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Z2V0X2NvbnN1bWVyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X2NvbnN1bWVycyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX2NvbnN1bWVyIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTp1cGRhdGVfY29uc3VtZXIiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6YXV0aG9yaXplX3JlcXVlc3RfdG9rZW4iOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfYWNjZXNzX3Rva2VuX3JvbGVzIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpnZXRfYWNjZXNzX3Rva2VuX3JvbGUiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfYWNjZXNzX3Rva2VucyI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6Z2V0X2FjY2Vzc190b2tlbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX2FjY2Vzc190b2tlbiI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKworICAgICJpZGVudGl0eTpsaXN0X3Byb2plY3RzX2Zvcl9lbmRwb2ludCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6YWRkX2VuZHBvaW50X3RvX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmNoZWNrX2VuZHBvaW50X2luX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfZW5kcG9pbnRzX2Zvcl9wcm9qZWN0IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpyZW1vdmVfZW5kcG9pbnRfZnJvbV9wcm9qZWN0IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorCisgICAgImlkZW50aXR5OmNyZWF0ZV9lbmRwb2ludF9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9lbmRwb2ludF9ncm91cHMiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmdldF9lbmRwb2ludF9ncm91cCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX2VuZHBvaW50X2dyb3VwIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpkZWxldGVfZW5kcG9pbnRfZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5Omxpc3RfcHJvamVjdHNfYXNzb2NpYXRlZF93aXRoX2VuZHBvaW50X2dyb3VwIjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X2VuZHBvaW50c19hc3NvY2lhdGVkX3dpdGhfZW5kcG9pbnRfZ3JvdXAiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OmdldF9lbmRwb2ludF9ncm91cF9pbl9wcm9qZWN0IjogInJ1bGU6YWRtaW5fcmVxdWlyZWQiLAorICAgICJpZGVudGl0eTpsaXN0X2VuZHBvaW50X2dyb3Vwc19mb3JfcHJvamVjdCI6ICJydWxlOmFkbWluX3JlcXVpcmVkIiwKKyAgICAiaWRlbnRpdHk6YWRkX2VuZHBvaW50X2dyb3VwX3RvX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisgICAgImlkZW50aXR5OnJlbW92ZV9lbmRwb2ludF9ncm91cF9mcm9tX3Byb2plY3QiOiAicnVsZTphZG1pbl9yZXF1aXJlZCIsCisKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX2lkZW50aXR5X3Byb3ZpZGVyIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpsaXN0X2lkZW50aXR5X3Byb3ZpZGVycyI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6Z2V0X2lkZW50aXR5X3Byb3ZpZGVycyI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6dXBkYXRlX2lkZW50aXR5X3Byb3ZpZGVyIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpkZWxldGVfaWRlbnRpdHlfcHJvdmlkZXIiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3Byb3RvY29sIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTp1cGRhdGVfcHJvdG9jb2wiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OmdldF9wcm90b2NvbCI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9wcm90b2NvbHMiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9wcm90b2NvbCI6ICJydWxlOmNsb3VkX2FkbWluIiwKKworICAgICJpZGVudGl0eTpjcmVhdGVfbWFwcGluZyI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6Z2V0X21hcHBpbmciOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5Omxpc3RfbWFwcGluZ3MiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OmRlbGV0ZV9tYXBwaW5nIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTp1cGRhdGVfbWFwcGluZyI6ICJydWxlOmNsb3VkX2FkbWluIiwKKworICAgICJpZGVudGl0eTpjcmVhdGVfc2VydmljZV9wcm92aWRlciI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9zZXJ2aWNlX3Byb3ZpZGVycyI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6Z2V0X3NlcnZpY2VfcHJvdmlkZXIiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9zZXJ2aWNlX3Byb3ZpZGVyIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpkZWxldGVfc2VydmljZV9wcm92aWRlciI6ICJydWxlOmNsb3VkX2FkbWluIiwKKworICAgICJpZGVudGl0eTpnZXRfYXV0aF9jYXRhbG9nIjogIiIsCisgICAgImlkZW50aXR5OmdldF9hdXRoX3Byb2plY3RzIjogIiIsCisgICAgImlkZW50aXR5OmdldF9hdXRoX2RvbWFpbnMiOiAiIiwKKworICAgICJpZGVudGl0eTpsaXN0X3Byb2plY3RzX2Zvcl9ncm91cHMiOiAiIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9kb21haW5zX2Zvcl9ncm91cHMiOiAiIiwKKworICAgICJpZGVudGl0eTpsaXN0X3Jldm9rZV9ldmVudHMiOiAiIiwKKworICAgICJpZGVudGl0eTpjcmVhdGVfcG9saWN5X2Fzc29jaWF0aW9uX2Zvcl9lbmRwb2ludCI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6Y2hlY2tfcG9saWN5X2Fzc29jaWF0aW9uX2Zvcl9lbmRwb2ludCI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3BvbGljeV9hc3NvY2lhdGlvbl9mb3JfZW5kcG9pbnQiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OmNyZWF0ZV9wb2xpY3lfYXNzb2NpYXRpb25fZm9yX3NlcnZpY2UiOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OmNoZWNrX3BvbGljeV9hc3NvY2lhdGlvbl9mb3Jfc2VydmljZSI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3BvbGljeV9hc3NvY2lhdGlvbl9mb3Jfc2VydmljZSI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6Y3JlYXRlX3BvbGljeV9hc3NvY2lhdGlvbl9mb3JfcmVnaW9uX2FuZF9zZXJ2aWNlIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpjaGVja19wb2xpY3lfYXNzb2NpYXRpb25fZm9yX3JlZ2lvbl9hbmRfc2VydmljZSI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6ZGVsZXRlX3BvbGljeV9hc3NvY2lhdGlvbl9mb3JfcmVnaW9uX2FuZF9zZXJ2aWNlIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpnZXRfcG9saWN5X2Zvcl9lbmRwb2ludCI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6bGlzdF9lbmRwb2ludHNfZm9yX3BvbGljeSI6ICJydWxlOmNsb3VkX2FkbWluIiwKKworICAgICJpZGVudGl0eTpjcmVhdGVfZG9tYWluX2NvbmZpZyI6ICJydWxlOmNsb3VkX2FkbWluIiwKKyAgICAiaWRlbnRpdHk6Z2V0X2RvbWFpbl9jb25maWciOiAicnVsZTpjbG91ZF9hZG1pbiIsCisgICAgImlkZW50aXR5OnVwZGF0ZV9kb21haW5fY29uZmlnIjogInJ1bGU6Y2xvdWRfYWRtaW4iLAorICAgICJpZGVudGl0eTpkZWxldGVfZG9tYWluX2NvbmZpZyI6ICJydWxlOmNsb3VkX2FkbWluIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvcmVxdWlyZW1lbnRzL2NzYl92YW5pbGxhLnR4dCBiL2hvcml6b24vZmlsZXMvcmVxdWlyZW1lbnRzL2NzYl92YW5pbGxhLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjJhMzM2Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9yZXF1aXJlbWVudHMvY3NiX3ZhbmlsbGEudHh0CkBAIC0wLDAgKzEsNjcgQEAKKyMgUEJSIHNob3VsZCBhbHdheXMgYXBwZWFyIGZpcnN0CitwYnI+PTAuNiwhPTAuNyw8MS4wCitwcmV0dHl0YWJsZT49MC43LjIKK3N0ZXZlZG9yZT49MS4yLjAKK0JhYmVsPj0xLjMKKyMgSG9yaXpvbiBDb3JlIFJlcXVpcmVtZW50cworRGphbmdvPj0xLjQuMiw8MS43CitkamFuZ29fY29tcHJlc3Nvcj49MS40CitkamFuZ29fb3BlbnN0YWNrX2F1dGg+PTEuMS43CitkamFuZ28tcHlzY3NzPj0xLjAuMyw8PTEuMC42ICMgQlNEIExpY2Vuc2UgKDIgY2xhdXNlKQorZXZlbnRsZXQ+PTAuMTUuMQoraHR0cGxpYjI+PTAuNy41Citpc284NjAxPj0wLjEuOQora29tYnU+PTIuNS4wCisjIEhvcml6b24gVXRpbGl0eSBSZXF1aXJlbWVudHMKKyMgZm9yIFNFQ1VSRV9LRVkgZ2VuZXJhdGlvbgorbG9ja2ZpbGU+PTAuOAorbmV0YWRkcj49MC43LjEyCitweVNjc3M+PTEuMi4xLDwxLjMgIyBNSVQgTGljZW5zZQorcHl0aG9uLWNlaWxvbWV0ZXJjbGllbnQ+PTEuMC42CitweXRob24tY2luZGVyY2xpZW50Pj0xLjEuMAorcHl0aG9uLWdsYW5jZWNsaWVudD49MC4xNC4wCitweXRob24taGVhdGNsaWVudD49MC4yLjkKK3B5dGhvbi1rZXlzdG9uZWNsaWVudD49MC4xMC4wCitweXRob24tbmV1dHJvbmNsaWVudD49Mi4zLjYsPDMKK3B5dGhvbi1ub3ZhY2xpZW50Pj0yLjE4LjAKK3B5dGhvbi1zYWhhcmFjbGllbnQ+PTAuNy4zCitweXRob24tc3dpZnRjbGllbnQ+PTIuMi4wCitweXRob24tdHJvdmVjbGllbnQ+PTEuMC40CitweXRob24tbWlzdHJhbGNsaWVudAorcHl0egorc2l4Pj0xLjcuMAorcmVxdWVzdHM9PTIuMS4wCityYXZlbj49My41LjIKK2d1bmljb3JuPj0xOC4wCitvc2xvLmNvbmZpZz09MS4xMi4xICAjIEFwYWNoZS0yLjAKK29zbG8uaTE4bj09MS43LjAgICMgQXBhY2hlLTIuMAorb3Nsby5zZXJpYWxpemF0aW9uPT0xLjYuMCAgICAgICAgICAgICAgICMgQXBhY2hlLTIuMAorb3Nsby51dGlscz09MS42LjAgICAgICAgICAgICAgICAgICAgICAgICMgQXBhY2hlLTIuMAoreHN0YXRpYz49MS4wLjAgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1hbmd1bGFyPj0xLjIuMS4xICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtYW5ndWxhci1jb29raWVzPj0xLjIuMS4xICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtYW5ndWxhci1tb2NrPj0xLjIuMS4xICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtYm9vdHN0cmFwLWRhdGVwaWNrZXI+PTEuMy4xLjAgIyBBcGFjaGUgMi4wIExpY2Vuc2UKK3hzdGF0aWMtYm9vdHN0cmFwLXNjc3M+PTMgIyBBcGFjaGUgMi4wIExpY2Vuc2UKK3hzdGF0aWMtZDM+PTMuMS42LjIgIyBCU0QgTGljZW5zZSAoMyBjbGF1c2UpCit4c3RhdGljLWhvZ2FuPj0yLjAuMC4yICMgQXBhY2hlIDIuMCBMaWNlbnNlCit4c3RhdGljLWZvbnQtYXdlc29tZT49NC4xLjAgIyBTSUwgT0ZMIDEuMSBMaWNlbnNlLCBNSVQgTGljZW5zZQoreHN0YXRpYy1qYXNtaW5lPj0xLjMuMS4xICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtanF1ZXJ5Pj0xLjcuMiAjIE1JVCBMaWNlbnNlCit4c3RhdGljLWpxdWVyeS1taWdyYXRlPj0xLjIuMS4xICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtanF1ZXJ5LnF1aWNrc2VhcmNoPj0yLjAuMy4xICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtanF1ZXJ5LnRhYmxlc29ydGVyPj0yLjAuNWIuMCAjIE1JVCBMaWNlbnNlCit4c3RhdGljLWpxdWVyeS11aT49MS4xMC4xICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtanNlbmNyeXB0Pj0yLjAuMC4yICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtcXVuaXQ+PTEuMTQuMC4yICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtcmlja3NoYXc+PTEuNS4wICMgQlNEIExpY2Vuc2UgKHByaW9yKQoreHN0YXRpYy1zcGluPj0xLjIuNS4yICMgTUlUIExpY2Vuc2UKK2NyeXB0b2dyYXBoeQorZ3JlZW5sZXQ+PTAuNC41CitkamFuZ28tYXBwY29uZgorZGphbmdvLW1hcmtpdHVwPT0yLjIuMgoreHN0YXRpYy1hZG1pbmx0ZT49Mi4wLjEuMQorZGphbmdvX2ltYWdlX3Byb3h5Pj0wLjAuMQorUHlZQU1MPj0zLjEuMAorcHl0aG9uLW1lbWNhY2hlZAorZG9jdXRpbHMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL3JlcXVpcmVtZW50cy9oZWxwZGVza192YW5pbGxhLnR4dCBiL2hvcml6b24vZmlsZXMvcmVxdWlyZW1lbnRzL2hlbHBkZXNrX3ZhbmlsbGEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMzg1MWEKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL3JlcXVpcmVtZW50cy9oZWxwZGVza192YW5pbGxhLnR4dApAQCAtMCwwICsxLDcwIEBACisjIFBCUiBzaG91bGQgYWx3YXlzIGFwcGVhciBmaXJzdAorcGJyPj0wLjYsIT0wLjcsPDEuMAorIyBIb3Jpem9uIENvcmUgUmVxdWlyZW1lbnRzCitCYWJlbD49MS4zCitEamFuZ28+PTEuNC4yLDwxLjcKK1BpbnQ+PTAuNSAjIEJTRAorZGphbmdvX2NvbXByZXNzb3I+PTEuNAorZGphbmdvX29wZW5zdGFja19hdXRoPj0xLjEuNywhPTEuMS44CitkamFuZ28tcHlzY3NzPj0xLjAuMyAjIEJTRCBMaWNlbnNlICgyIGNsYXVzZSkKK2V2ZW50bGV0Pj0wLjE2LjEKK2h0dHBsaWIyPj0wLjcuNQoraXNvODYwMT49MC4xLjkKK2tvbWJ1Pj0yLjUuMAorbmV0YWRkcj49MC43LjEyCitvc2xvLmNvbmN1cnJlbmN5Pj0xLjQuMSAjIEFwYWNoZS0yLjAKK29zbG8uY29uZmlnPj0xLjkuMCAjIEFwYWNoZS0yLjAKK29zbG8uaTE4bj49MS4zLjAgIyBBcGFjaGUtMi4wCitvc2xvLnNlcmlhbGl6YXRpb24+PTEuMi4wICMgQXBhY2hlLTIuMAorb3Nsby51dGlscz49MS4yLjAgIyBBcGFjaGUtMi4wCitweVNjc3M+PTEuMi4xLDwxLjMgIyBNSVQgTGljZW5zZQorcHl0aG9uLWNlaWxvbWV0ZXJjbGllbnQ+PTEuMC42CitweXRob24tY2luZGVyY2xpZW50Pj0xLjEuMAorcHl0aG9uLWdsYW5jZWNsaWVudD49MC4xNS4wCitweXRob24taGVhdGNsaWVudD49MC4zLjAKK3B5dGhvbi1rZXlzdG9uZWNsaWVudD49MS4xLjAKK3B5dGhvbi1uZXV0cm9uY2xpZW50Pj0yLjMuMTEsPDMKK3B5dGhvbi1ub3ZhY2xpZW50Pj0yLjE4LjAsIT0yLjIxLjAKK3B5dGhvbi1zYWhhcmFjbGllbnQ+PTAuNy42CitweXRob24tc3dpZnRjbGllbnQ+PTIuMi4wCitweXRob24tdHJvdmVjbGllbnQ+PTEuMC43CitweXRob24tbWlzdHJhbGNsaWVudAorcHl0ej49MjAxMy42CitQeVlBTUw+PTMuMS4wCitzaXg+PTEuOS4wCitYU3RhdGljPj0xLjAuMCAjIE1JVCBMaWNlbnNlCitYU3RhdGljLUFuZ3VsYXI+PTEuMy43ICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtQW5ndWxhci1Cb290c3RyYXA+PTAuMTEuMC4yICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtQW5ndWxhci1JcmRyYWduZHJvcD49MS4wLjIuMSAjIE1JVCBMaWNlbnNlCitYU3RhdGljLUJvb3RzdHJhcC1EYXRlcGlja2VyPj0xLjMuMS4wICMgQXBhY2hlIDIuMCBMaWNlbnNlCitYU3RhdGljLUJvb3RzdHJhcC1TQ1NTPj0zICMgQXBhY2hlIDIuMCBMaWNlbnNlCitYU3RhdGljLUQzPj0zLjEuNi4yICMgQlNEIExpY2Vuc2UgKDMgY2xhdXNlKQorWFN0YXRpYy1Ib2dhbj49Mi4wLjAuMiAjIEFwYWNoZSAyLjAgTGljZW5zZQorWFN0YXRpYy1Gb250LUF3ZXNvbWU+PTQuMi4wICMgU0lMIE9GTCAxLjEgTGljZW5zZSwgTUlUIExpY2Vuc2UKK1hTdGF0aWMtSmFzbWluZT49Mi4xLjIuMCAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWpRdWVyeT49MS43LjIgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1KUXVlcnktTWlncmF0ZT49MS4yLjEuMSAjIE1JVCBMaWNlbnNlCitYU3RhdGljLUpRdWVyeS5xdWlja3NlYXJjaD49Mi4wLjMuMSAjIE1JVCBMaWNlbnNlCitYU3RhdGljLUpRdWVyeS5UYWJsZVNvcnRlcj49Mi4wLjViLjAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1qcXVlcnktdWk+PTEuMTAuMSAjIE1JVCBMaWNlbnNlCitYU3RhdGljLUpTRW5jcnlwdD49Mi4wLjAuMiAjIE1JVCBMaWNlbnNlCitYU3RhdGljLVFVbml0Pj0xLjE0LjAuMiAjIE1JVCBMaWNlbnNlCitYU3RhdGljLVJpY2tzaGF3Pj0xLjUuMCAjIEJTRCBMaWNlbnNlIChwcmlvcikKK1hTdGF0aWMtc21hcnQtdGFibGU+PTEuNC41LjMgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1TcGluPj0xLjIuNS4yICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtdGVybS5qcworY3J5cHRvZ3JhcGh5CitncmVlbmxldD49MC40LjUKK2RqYW5nby1hcHBjb25mCitzdGV2ZWRvcmUKK2d1bmljb3JuPj0xOC4wCitweXRob24tbWVtY2FjaGVkCisjIG5vdCBsaXN0ZWQgaW4gZ2xvYmFsIHJlcXVpcmVtZW50cworYmVhdXRpZnVsc291cDQKK2RqYW5nby1mbG9wcHlmb3Jtcz49MS4xCit5YXFsPj0wLjIuMyw8MC4zCitweXRob24tbXVyYW5vY2xpZW50Pj0wLjUuNQorcmF2ZW4KKworaG9yaXpvbi1jb250cmliPj0yMDE1LjcuNgorZGphbmdvLXd5c2l3eWctcmVkYWN0b3IKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL3JlcXVpcmVtZW50cy9pY2Vob3VzZV9jb250cmFpbC50eHQgYi9ob3Jpem9uL2ZpbGVzL3JlcXVpcmVtZW50cy9pY2Vob3VzZV9jb250cmFpbC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY2Zjk1NgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvcmVxdWlyZW1lbnRzL2ljZWhvdXNlX2NvbnRyYWlsLnR4dApAQCAtMCwwICsxLDM5IEBACisjIFBCUiBzaG91bGQgYWx3YXlzIGFwcGVhciBmaXJzdAorcGJyPj0wLjYsIT0wLjcsPDEuMAorIyBIb3Jpem9uIENvcmUgUmVxdWlyZW1lbnRzCitCYWJlbD49MS4zCitEamFuZ28+PTEuNC4yLDwxLjcKK2RqYW5nb19jb21wcmVzc29yPj0xLjQKK2RqYW5nb19vcGVuc3RhY2tfYXV0aD49MS4xLjcKK2RqYW5nby1weXNjc3M+PTEuMC4zICMgQlNEIExpY2Vuc2UgKDIgY2xhdXNlKQorZXZlbnRsZXQ+PTAuMTUuMQoraHR0cGxpYjI+PTAuNy41Citpc284NjAxPj0wLjEuOQora29tYnU+PTIuNS4wCisjIEhvcml6b24gVXRpbGl0eSBSZXF1aXJlbWVudHMKKyMgZm9yIFNFQ1VSRV9LRVkgZ2VuZXJhdGlvbgorbG9ja2ZpbGU+PTAuOAorbmV0YWRkcj49MC43LjEyCitweVNjc3M+PTEuMi4xLDwxLjMgIyBNSVQgTGljZW5zZQorcHl0aG9uLWNlaWxvbWV0ZXJjbGllbnQ+PTEuMC42CitweXRob24tY2luZGVyY2xpZW50Pj0xLjEuMAorcHl0aG9uLWdsYW5jZWNsaWVudD49MC4xNC4wCitweXRob24taGVhdGNsaWVudD49MC4yLjkKK3B5dGhvbi1rZXlzdG9uZWNsaWVudD49MC4xMC4wCistZSBnaXQraHR0cHM6Ly9naXRodWIuY29tL0p1bmlwZXIvcHl0aG9uLW5ldXRyb25jbGllbnQuZ2l0QGNvbnRyYWlsL2ljZWhvdXNlI2VnZz1weXRob24tbmV1dHJvbmNsaWVudAorcHl0aG9uLW5vdmFjbGllbnQ+PTIuMTguMAorcHl0aG9uLXNhaGFyYWNsaWVudD49MC43LjMKK3B5dGhvbi1zd2lmdGNsaWVudD49Mi4yLjAKK3B5dGhvbi10cm92ZWNsaWVudD49MS4wLjQKK3B5dHoKK3NpeD49MS43LjAKK3JlcXVlc3RzPT0yLjEuMAorcmF2ZW4+PTMuNS4yCitndW5pY29ybj49MTguMAorb3Nsby5jb25maWc+PTEuNC4wICAjIEFwYWNoZS0yLjAKK29zbG8uaTE4bj49MS4wLjAgICMgQXBhY2hlLTIuMAorb3Nsby5zZXJpYWxpemF0aW9uPj0xLjAuMCAgICAgICAgICAgICAgICMgQXBhY2hlLTIuMAorb3Nsby51dGlscz49MS4xLjAgICAgICAgICAgICAgICAgICAgICAgICMgQXBhY2hlLTIuMAorY3J5cHRvZ3JhcGh5CitncmVlbmxldD49MC40LjUKK2RqYW5nby1hcHBjb25mCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL3JlcXVpcmVtZW50cy9pY2Vob3VzZV92YW5pbGxhLnR4dCBiL2hvcml6b24vZmlsZXMvcmVxdWlyZW1lbnRzL2ljZWhvdXNlX3ZhbmlsbGEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlMDkxODkKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL3JlcXVpcmVtZW50cy9pY2Vob3VzZV92YW5pbGxhLnR4dApAQCAtMCwwICsxLDM5IEBACisjIFBCUiBzaG91bGQgYWx3YXlzIGFwcGVhciBmaXJzdAorcGJyPj0wLjYsIT0wLjcsPDEuMAorIyBIb3Jpem9uIENvcmUgUmVxdWlyZW1lbnRzCitCYWJlbD49MS4zCitEamFuZ28+PTEuNC4yLDwxLjcKK2RqYW5nb19jb21wcmVzc29yPj0xLjQKK2RqYW5nb19vcGVuc3RhY2tfYXV0aD49MS4xLjcKK2RqYW5nby1weXNjc3M+PTEuMC4zICMgQlNEIExpY2Vuc2UgKDIgY2xhdXNlKQorZXZlbnRsZXQ+PTAuMTUuMQoraHR0cGxpYjI+PTAuNy41Citpc284NjAxPj0wLjEuOQora29tYnU+PTIuNS4wCisjIEhvcml6b24gVXRpbGl0eSBSZXF1aXJlbWVudHMKKyMgZm9yIFNFQ1VSRV9LRVkgZ2VuZXJhdGlvbgorbG9ja2ZpbGU+PTAuOAorbmV0YWRkcj49MC43LjEyCitweVNjc3M+PTEuMi4xLDwxLjMgIyBNSVQgTGljZW5zZQorcHl0aG9uLWNlaWxvbWV0ZXJjbGllbnQ+PTEuMC42CitweXRob24tY2luZGVyY2xpZW50Pj0xLjEuMAorcHl0aG9uLWdsYW5jZWNsaWVudD49MC4xNC4wCitweXRob24taGVhdGNsaWVudD49MC4yLjkKK3B5dGhvbi1rZXlzdG9uZWNsaWVudD49MC4xMC4wCitweXRob24tbmV1dHJvbmNsaWVudD49Mi4zLjYsPDMKK3B5dGhvbi1ub3ZhY2xpZW50Pj0yLjE4LjAKK3B5dGhvbi1zYWhhcmFjbGllbnQ+PTAuNy4zCitweXRob24tc3dpZnRjbGllbnQ+PTIuMi4wCitweXRob24tdHJvdmVjbGllbnQ+PTEuMC40CitweXR6CitzaXg+PTEuNy4wCityZXF1ZXN0cz09Mi4xLjAKK3JhdmVuPj0zLjUuMgorZ3VuaWNvcm4+PTE4LjAKK29zbG8uY29uZmlnPj0xLjQuMCAgIyBBcGFjaGUtMi4wCitvc2xvLmkxOG4+PTEuMC4wICAjIEFwYWNoZS0yLjAKK29zbG8uc2VyaWFsaXphdGlvbj49MS4wLjAgICAgICAgICAgICAgICAjIEFwYWNoZS0yLjAKK29zbG8udXRpbHM+PTEuMS4wICAgICAgICAgICAgICAgICAgICAgICAjIEFwYWNoZS0yLjAKK2NyeXB0b2dyYXBoeQorZ3JlZW5sZXQ+PTAuNC41CitkamFuZ28tYXBwY29uZgpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9yZXF1aXJlbWVudHMvanVub19jb250cmFpbC50eHQgYi9ob3Jpem9uL2ZpbGVzL3JlcXVpcmVtZW50cy9qdW5vX2NvbnRyYWlsLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWM2ZTk4Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9yZXF1aXJlbWVudHMvanVub19jb250cmFpbC50eHQKQEAgLTAsMCArMSw3MSBAQAorIyBQQlIgc2hvdWxkIGFsd2F5cyBhcHBlYXIgZmlyc3QKK3Bicj49MC42LCE9MC43LDwxLjAKKyMgSG9yaXpvbiBDb3JlIFJlcXVpcmVtZW50cworRGphbmdvPj0xLjQuMiw8MS43CitkamFuZ29fY29tcHJlc3Nvcj49MS40LDw9MS40CitkamFuZ29fb3BlbnN0YWNrX2F1dGg+PTEuMS43LCE9MS4xLjgsPD0xLjEuOQorZGphbmdvLXB5c2Nzcz49MS4wLjMsPD0xLjAuNiAjIEJTRCBMaWNlbnNlICgyIGNsYXVzZSkKK2V2ZW50bGV0Pj0wLjE1LjEsPD0wLjE1LjIKK2h0dHBsaWIyPj0wLjcuNSw8PTAuOQoraXNvODYwMT49MC4xLjksPD0wLjEuMTAKK2tvbWJ1Pj0yLjUuMCw8PTMuMC43CisjIEhvcml6b24gVXRpbGl0eSBSZXF1aXJlbWVudHMKKyMgZm9yIFNFQ1VSRV9LRVkgZ2VuZXJhdGlvbgorbG9ja2ZpbGU+PTAuOCw8PTAuOAorbmV0YWRkcj49MC43LjEyLDw9MC43LjEzCitweVNjc3M+PTEuMi4xLDwxLjMgICMgTUlUIExpY2Vuc2UKK3B5dGhvbi1jZWlsb21ldGVyY2xpZW50Pj0xLjAuNiw8MS4wLjEzCitweXRob24tY2luZGVyY2xpZW50Pj0xLjEuMCw8PTEuMS4xCitweXRob24tZ2xhbmNlY2xpZW50Pj0wLjE0LjAsPD0wLjE1LjAKK3B5dGhvbi1oZWF0Y2xpZW50Pj0wLjIuOSw8MC4zLjAKK3B5dGhvbi1rZXlzdG9uZWNsaWVudD49MC4xMC4wLDwxLjIuMAorLWUgZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9KdW5pcGVyL3B5dGhvbi1uZXV0cm9uY2xpZW50LmdpdEBjb250cmFpbC9qdW5vI2VnZz1weXRob24tbmV1dHJvbmNsaWVudAorcHl0aG9uLW5vdmFjbGllbnQ+PTIuMTguMCw8PTIuMjAuMAorcHl0aG9uLXRyb3ZlY2xpZW50Pj0xLjAuNCw8PTEuMC44CitweXRob24tc2FoYXJhY2xpZW50Pj0wLjcuMyw8PTAuNy42CitweXRob24tc3dpZnRjbGllbnQ+PTIuMi4wLDw9Mi4zLjEKK3B5dHoKK3NpeD49MS43LjAsPD0xLjkuMAorcmVxdWVzdHM9PTIuMS4wCityYXZlbj49My41LjIKK2d1bmljb3JuPT0xOC4wCitvc2xvLmNvbmZpZz09MS4xMi4xICAjIEFwYWNoZS0yLjAKK29zbG8uaTE4bj09MS43LjAgICMgQXBhY2hlLTIuMAorb3Nsby5zZXJpYWxpemF0aW9uPT0xLjYuMCAgICAgICAgICAgICAgICMgQXBhY2hlLTIuMAorb3Nsby51dGlscz09MS42LjAgICAgICAgICAgICAgICAgICAgICAgICMgQXBhY2hlLTIuMAorWFN0YXRpYz49MS4wLjAgICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtYW5ndWxhcj49MS4yLjEuMSw8MS4zLjAgICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtYW5ndWxhci1jb29raWVzPj0xLjIuMS4xICAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWFuZ3VsYXItbW9jaz49MS4yLjEuMSAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1ib290c3RyYXAtZGF0ZXBpY2tlcj49MS4zLjEuMCAgIyBBcGFjaGUgMi4wIExpY2Vuc2UKK1hTdGF0aWMtYm9vdHN0cmFwLXNjc3M+PTMgICMgQXBhY2hlIDIuMCBMaWNlbnNlCitYU3RhdGljLWQzPj0zLjEuNi4yICAjIEJTRCBMaWNlbnNlICgzIGNsYXVzZSkKK1hTdGF0aWMtaG9nYW4+PTIuMC4wLjIgICMgQXBhY2hlIDIuMCBMaWNlbnNlCitYU3RhdGljLWZvbnQtYXdlc29tZT49NC4xLjAgICMgU0lMIE9GTCAxLjEgTGljZW5zZSwgTUlUIExpY2Vuc2UKK1hTdGF0aWMtamFzbWluZT49MS4zLjEuMSw8MiAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1qcXVlcnk+PTEuNy4yICAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWpxdWVyeS1taWdyYXRlPj0xLjIuMS4xICAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWpxdWVyeS5xdWlja3NlYXJjaD49Mi4wLjMuMSAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1qcXVlcnkudGFibGVzb3J0ZXI+PTIuMC41Yi4wICAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWpxdWVyeS11aT49MS4xMC4xICAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWpzZW5jcnlwdD49Mi4wLjAuMiAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1xdW5pdD49MS4xNC4wLjIgICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtcmlja3NoYXc+PTEuNS4wICAjIEJTRCBMaWNlbnNlIChwcmlvcikKK1hTdGF0aWMtc3Bpbj49MS4yLjUuMiAgIyBNSVQgTGljZW5zZQorY3J5cHRvZ3JhcGh5CitncmVlbmxldD49MC40LjUKK2RqYW5nby1hcHBjb25mCisKKyMgbm90IGxpc3RlZCBpbiBnbG9iYWwgcmVxdWlyZW1lbnRzCitQeVlBTUw+PTMuMS4wCitiZWF1dGlmdWxzb3VwNAorZGphbmdvLWZsb3BweWZvcm1zPj0xLjEKK3lhcWw+PTAuMi4zLDwwLjMKK3B5dGhvbi1tdXJhbm9jbGllbnQ+PTAuNS41CisKKyNjb250cmFpbAorYXJncGFyc2UKK2NsaWZmPj0xLjYuMAorQmFiZWw+PTEuMworc2ltcGxlanNvbj49Mi4yLjAKK3B5dGhvbi1tZW1jYWNoZWQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL3JlcXVpcmVtZW50cy9qdW5vX3ZhbmlsbGEudHh0IGIvaG9yaXpvbi9maWxlcy9yZXF1aXJlbWVudHMvanVub192YW5pbGxhLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTk0OWRiCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9yZXF1aXJlbWVudHMvanVub192YW5pbGxhLnR4dApAQCAtMCwwICsxLDY2IEBACisjIFBCUiBzaG91bGQgYWx3YXlzIGFwcGVhciBmaXJzdAorcGJyPj0wLjYsIT0wLjcsPDEuMAorIyBIb3Jpem9uIENvcmUgUmVxdWlyZW1lbnRzCitEamFuZ28+PTEuNC4yLDwxLjcKK2RqYW5nb19jb21wcmVzc29yPj0xLjQsPD0xLjQKK2RqYW5nb19vcGVuc3RhY2tfYXV0aD49MS4xLjcsIT0xLjEuOCw8PTEuMS45CitkamFuZ28tcHlzY3NzPj0xLjAuMyw8PTEuMC42ICMgQlNEIExpY2Vuc2UgKDIgY2xhdXNlKQorZXZlbnRsZXQ+PTAuMTUuMSw8PTAuMTUuMgoraHR0cGxpYjI+PTAuNy41LDw9MC45Citpc284NjAxPj0wLjEuOSw8PTAuMS4xMAora29tYnU+PTIuNS4wLDw9My4wLjcKKyMgSG9yaXpvbiBVdGlsaXR5IFJlcXVpcmVtZW50cworIyBmb3IgU0VDVVJFX0tFWSBnZW5lcmF0aW9uCitsb2NrZmlsZT49MC44LDw9MC44CituZXRhZGRyPj0wLjcuMTIsPD0wLjcuMTMKK3B5U2Nzcz49MS4yLjEsPDEuMyAgIyBNSVQgTGljZW5zZQorcHl0aG9uLWNlaWxvbWV0ZXJjbGllbnQ+PTEuMC42LDwxLjAuMTMKK3B5dGhvbi1jaW5kZXJjbGllbnQ+PTEuMS4wLDw9MS4xLjEKK3B5dGhvbi1nbGFuY2VjbGllbnQ+PTAuMTQuMCw8PTAuMTUuMAorcHl0aG9uLWhlYXRjbGllbnQ+PTAuMi45LDwwLjMuMAorcHl0aG9uLWtleXN0b25lY2xpZW50Pj0wLjEwLjAsPDEuMi4wCitweXRob24tbmV1dHJvbmNsaWVudD49Mi4zLjYsPDIuNC4wCitweXRob24tbm92YWNsaWVudD49Mi4xOC4wLDw9Mi4yMC4wCitweXRob24tdHJvdmVjbGllbnQ+PTEuMC40LDw9MS4wLjgKK3B5dGhvbi1zYWhhcmFjbGllbnQ+PTAuNy4zLDw9MC43LjYKK3B5dGhvbi1zd2lmdGNsaWVudD49Mi4yLjAsPD0yLjMuMQorcHl0egorc2l4Pj0xLjcuMAorcmVxdWVzdHM9PTIuMS4wCityYXZlbj49My41LjIKK2d1bmljb3JuPj0xOC4wCitvc2xvLmNvbmZpZz09MS4xMi4xICAjIEFwYWNoZS0yLjAKK29zbG8uaTE4bj09MS43LjAgICMgQXBhY2hlLTIuMAorb3Nsby5zZXJpYWxpemF0aW9uPT0xLjYuMCAgICAgICAgICAgICAgICMgQXBhY2hlLTIuMAorb3Nsby51dGlscz09MS42LjAgICAgICAgICAgICAgICAgICAgICAgICMgQXBhY2hlLTIuMAorWFN0YXRpYz49MS4wLjAgICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtYW5ndWxhcj49MS4yLjEuMSw8MS4zLjAgICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtYW5ndWxhci1jb29raWVzPj0xLjIuMS4xICAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWFuZ3VsYXItbW9jaz49MS4yLjEuMSAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1ib290c3RyYXAtZGF0ZXBpY2tlcj49MS4zLjEuMCAgIyBBcGFjaGUgMi4wIExpY2Vuc2UKK1hTdGF0aWMtYm9vdHN0cmFwLXNjc3M+PTMgICMgQXBhY2hlIDIuMCBMaWNlbnNlCitYU3RhdGljLWQzPj0zLjEuNi4yICAjIEJTRCBMaWNlbnNlICgzIGNsYXVzZSkKK1hTdGF0aWMtaG9nYW4+PTIuMC4wLjIgICMgQXBhY2hlIDIuMCBMaWNlbnNlCitYU3RhdGljLWZvbnQtYXdlc29tZT49NC4xLjAgICMgU0lMIE9GTCAxLjEgTGljZW5zZSwgTUlUIExpY2Vuc2UKK1hTdGF0aWMtamFzbWluZT49MS4zLjEuMSw8MiAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1qcXVlcnk+PTEuNy4yICAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWpxdWVyeS1taWdyYXRlPj0xLjIuMS4xICAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWpxdWVyeS5xdWlja3NlYXJjaD49Mi4wLjMuMSAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1qcXVlcnkudGFibGVzb3J0ZXI+PTIuMC41Yi4wICAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWpxdWVyeS11aT49MS4xMC4xICAjIE1JVCBMaWNlbnNlCitYU3RhdGljLWpzZW5jcnlwdD49Mi4wLjAuMiAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1xdW5pdD49MS4xNC4wLjIgICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtcmlja3NoYXc+PTEuNS4wICAjIEJTRCBMaWNlbnNlIChwcmlvcikKK1hTdGF0aWMtc3Bpbj49MS4yLjUuMiAgIyBNSVQgTGljZW5zZQorY3J5cHRvZ3JhcGh5CitncmVlbmxldD49MC40LjUKK2RqYW5nby1hcHBjb25mCisKKyMgbm90IGxpc3RlZCBpbiBnbG9iYWwgcmVxdWlyZW1lbnRzCitQeVlBTUw+PTMuMS4wCitiZWF1dGlmdWxzb3VwNAorZGphbmdvLWZsb3BweWZvcm1zPj0xLjEKK3lhcWw+PTAuMi4zLDwwLjMKK3B5dGhvbi1tdXJhbm9jbGllbnQ+PTAuNS41Citob3Jpem9uLWNvbnRyaWI+PTIwMTUuNi4xCitweXRob24tbWVtY2FjaGVkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9yZXF1aXJlbWVudHMva2lsb19jb250cmFpbC50eHQgYi9ob3Jpem9uL2ZpbGVzL3JlcXVpcmVtZW50cy9raWxvX2NvbnRyYWlsLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODA4NmMxCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9yZXF1aXJlbWVudHMva2lsb19jb250cmFpbC50eHQKQEAgLTAsMCArMSw3NSBAQAorIyBQQlIgc2hvdWxkIGFsd2F5cyBhcHBlYXIgZmlyc3QKK3Bicj49MC42LCE9MC43LDwxLjAKKyMgSG9yaXpvbiBDb3JlIFJlcXVpcmVtZW50cworQmFiZWw+PTEuMworRGphbmdvPj0xLjQuMiw8MS43CitQaW50Pj0wLjUgIyBCU0QKK2RqYW5nb19jb21wcmVzc29yPj0xLjQKK2RqYW5nb19vcGVuc3RhY2tfYXV0aD49MS4xLjcsIT0xLjEuOAorZGphbmdvLXB5c2Nzcz49MS4wLjMgIyBCU0QgTGljZW5zZSAoMiBjbGF1c2UpCitldmVudGxldD49MC4xNi4xCitodHRwbGliMj49MC43LjUKK2lzbzg2MDE+PTAuMS45Citrb21idT49Mi41LjAKK25ldGFkZHI+PTAuNy4xMgorb3Nsby5jb25jdXJyZW5jeT49MS40LjEgIyBBcGFjaGUtMi4wCitvc2xvLmNvbmZpZz49MS45LjAgIyBBcGFjaGUtMi4wCitvc2xvLmkxOG4+PTEuMy4wICMgQXBhY2hlLTIuMAorb3Nsby5zZXJpYWxpemF0aW9uPj0xLjIuMCAjIEFwYWNoZS0yLjAKK29zbG8udXRpbHM+PTEuMi4wICMgQXBhY2hlLTIuMAorcHlTY3NzPj0xLjIuMSw8MS4zICMgTUlUIExpY2Vuc2UKK3B5dGhvbi1jZWlsb21ldGVyY2xpZW50Pj0xLjAuNgorcHl0aG9uLWNpbmRlcmNsaWVudD49MS4xLjAKK3B5dGhvbi1nbGFuY2VjbGllbnQ+PTAuMTUuMAorcHl0aG9uLWhlYXRjbGllbnQ+PTAuMy4wCitweXRob24ta2V5c3RvbmVjbGllbnQ+PTEuMS4wCitweXRob24tbmV1dHJvbmNsaWVudD49Mi4zLjExLDwzCitweXRob24tbm92YWNsaWVudD49Mi4xOC4wLCE9Mi4yMS4wCitweXRob24tc2FoYXJhY2xpZW50Pj0wLjcuNgorcHl0aG9uLXN3aWZ0Y2xpZW50Pj0yLjIuMAorcHl0aG9uLXRyb3ZlY2xpZW50Pj0xLjAuNworcHl0aG9uLW1pc3RyYWxjbGllbnQKK3B5dHo+PTIwMTMuNgorUHlZQU1MPj0zLjEuMAorc2l4Pj0xLjkuMAorWFN0YXRpYz49MS4wLjAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1Bbmd1bGFyPj0xLjMuNyAjIE1JVCBMaWNlbnNlCitYU3RhdGljLUFuZ3VsYXItQm9vdHN0cmFwPj0wLjExLjAuMiAjIE1JVCBMaWNlbnNlCitYU3RhdGljLUFuZ3VsYXItSXJkcmFnbmRyb3A+PTEuMC4yLjEgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1Cb290c3RyYXAtRGF0ZXBpY2tlcj49MS4zLjEuMCAjIEFwYWNoZSAyLjAgTGljZW5zZQorWFN0YXRpYy1Cb290c3RyYXAtU0NTUz49MyAjIEFwYWNoZSAyLjAgTGljZW5zZQorWFN0YXRpYy1EMz49My4xLjYuMiAjIEJTRCBMaWNlbnNlICgzIGNsYXVzZSkKK1hTdGF0aWMtSG9nYW4+PTIuMC4wLjIgIyBBcGFjaGUgMi4wIExpY2Vuc2UKK1hTdGF0aWMtRm9udC1Bd2Vzb21lPj00LjIuMCAjIFNJTCBPRkwgMS4xIExpY2Vuc2UsIE1JVCBMaWNlbnNlCitYU3RhdGljLUphc21pbmU+PTIuMS4yLjAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1qUXVlcnk+PTEuNy4yICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtSlF1ZXJ5LU1pZ3JhdGU+PTEuMi4xLjEgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1KUXVlcnkucXVpY2tzZWFyY2g+PTIuMC4zLjEgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1KUXVlcnkuVGFibGVTb3J0ZXI+PTIuMC41Yi4wICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtanF1ZXJ5LXVpPj0xLjEwLjEgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1KU0VuY3J5cHQ+PTIuMC4wLjIgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1RVW5pdD49MS4xNC4wLjIgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1SaWNrc2hhdz49MS41LjAgIyBCU0QgTGljZW5zZSAocHJpb3IpCitYU3RhdGljLXNtYXJ0LXRhYmxlPj0xLjQuNS4zICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtU3Bpbj49MS4yLjUuMiAjIE1JVCBMaWNlbnNlCitYU3RhdGljLXRlcm0uanMKK2NyeXB0b2dyYXBoeQorZ3JlZW5sZXQ+PTAuNC41CitkamFuZ28tYXBwY29uZgorc3RldmVkb3JlCitndW5pY29ybj49MTguMAorCisjIG5vdCBsaXN0ZWQgaW4gZ2xvYmFsIHJlcXVpcmVtZW50cworYmVhdXRpZnVsc291cDQKK2RqYW5nby1mbG9wcHlmb3Jtcz49MS4xCit5YXFsPj0wLjIuMyw8MC4zCitweXRob24tbXVyYW5vY2xpZW50Pj0wLjUuNQorcmF2ZW4KKworaG9yaXpvbi1jb250cmliPj0yMDE1LjcuNgorCisjY29udHJhaWwKK2FyZ3BhcnNlCitjbGlmZj49MS42LjAKK3NpbXBsZWpzb24+PTIuMi4wCitweXRob24tbWVtY2FjaGVkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9maWxlcy9yZXF1aXJlbWVudHMva2lsb192YW5pbGxhLnR4dCBiL2hvcml6b24vZmlsZXMvcmVxdWlyZW1lbnRzL2tpbG9fdmFuaWxsYS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM3Yzg0MgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvcmVxdWlyZW1lbnRzL2tpbG9fdmFuaWxsYS50eHQKQEAgLTAsMCArMSw3MCBAQAorIyBQQlIgc2hvdWxkIGFsd2F5cyBhcHBlYXIgZmlyc3QKK3Bicj49MC42LCE9MC43LDwxLjAKKyMgSG9yaXpvbiBDb3JlIFJlcXVpcmVtZW50cworQmFiZWw+PTEuMworRGphbmdvPj0xLjQuMiw8MS43CitQaW50Pj0wLjUgIyBCU0QKK2RqYW5nb19jb21wcmVzc29yPj0xLjQKK2RqYW5nb19vcGVuc3RhY2tfYXV0aD49MS4xLjcsIT0xLjEuOAorZGphbmdvLXB5c2Nzcz49MS4wLjMgIyBCU0QgTGljZW5zZSAoMiBjbGF1c2UpCitldmVudGxldD49MC4xNi4xCitodHRwbGliMj49MC43LjUKK2lzbzg2MDE+PTAuMS45Citrb21idT49Mi41LjAKK25ldGFkZHI+PTAuNy4xMgorb3Nsby5jb25jdXJyZW5jeT49MS40LjEgIyBBcGFjaGUtMi4wCitvc2xvLmNvbmZpZz49MS45LjAgIyBBcGFjaGUtMi4wCitvc2xvLmkxOG4+PTEuMy4wICMgQXBhY2hlLTIuMAorb3Nsby5zZXJpYWxpemF0aW9uPj0xLjIuMCAjIEFwYWNoZS0yLjAKK29zbG8udXRpbHM+PTEuMi4wICMgQXBhY2hlLTIuMAorcHlTY3NzPj0xLjIuMSw8MS4zICMgTUlUIExpY2Vuc2UKK3B5dGhvbi1jZWlsb21ldGVyY2xpZW50Pj0xLjAuNgorcHl0aG9uLWNpbmRlcmNsaWVudD49MS4xLjAKK3B5dGhvbi1nbGFuY2VjbGllbnQ+PTAuMTUuMAorcHl0aG9uLWhlYXRjbGllbnQ+PTAuMy4wCitweXRob24ta2V5c3RvbmVjbGllbnQ+PTEuMS4wCitweXRob24tbmV1dHJvbmNsaWVudD49Mi4zLjExLDwzCitweXRob24tbm92YWNsaWVudD49Mi4xOC4wLCE9Mi4yMS4wCitweXRob24tc2FoYXJhY2xpZW50Pj0wLjcuNgorcHl0aG9uLXN3aWZ0Y2xpZW50Pj0yLjIuMAorcHl0aG9uLXRyb3ZlY2xpZW50Pj0xLjAuNworcHl0aG9uLW1pc3RyYWxjbGllbnQKK3B5dHo+PTIwMTMuNgorUHlZQU1MPj0zLjEuMAorc2l4Pj0xLjkuMAorWFN0YXRpYz49MS4wLjAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1Bbmd1bGFyPj0xLjMuNyAjIE1JVCBMaWNlbnNlCitYU3RhdGljLUFuZ3VsYXItQm9vdHN0cmFwPj0wLjExLjAuMiAjIE1JVCBMaWNlbnNlCitYU3RhdGljLUFuZ3VsYXItSXJkcmFnbmRyb3A+PTEuMC4yLjEgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1Cb290c3RyYXAtRGF0ZXBpY2tlcj49MS4zLjEuMCAjIEFwYWNoZSAyLjAgTGljZW5zZQorWFN0YXRpYy1Cb290c3RyYXAtU0NTUz49MyAjIEFwYWNoZSAyLjAgTGljZW5zZQorWFN0YXRpYy1EMz49My4xLjYuMiAjIEJTRCBMaWNlbnNlICgzIGNsYXVzZSkKK1hTdGF0aWMtSG9nYW4+PTIuMC4wLjIgIyBBcGFjaGUgMi4wIExpY2Vuc2UKK1hTdGF0aWMtRm9udC1Bd2Vzb21lPj00LjIuMCAjIFNJTCBPRkwgMS4xIExpY2Vuc2UsIE1JVCBMaWNlbnNlCitYU3RhdGljLUphc21pbmU+PTIuMS4yLjAgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1qUXVlcnk+PTEuNy4yICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtSlF1ZXJ5LU1pZ3JhdGU+PTEuMi4xLjEgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1KUXVlcnkucXVpY2tzZWFyY2g+PTIuMC4zLjEgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1KUXVlcnkuVGFibGVTb3J0ZXI+PTIuMC41Yi4wICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtanF1ZXJ5LXVpPj0xLjEwLjEgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1KU0VuY3J5cHQ+PTIuMC4wLjIgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1RVW5pdD49MS4xNC4wLjIgIyBNSVQgTGljZW5zZQorWFN0YXRpYy1SaWNrc2hhdz49MS41LjAgIyBCU0QgTGljZW5zZSAocHJpb3IpCitYU3RhdGljLXNtYXJ0LXRhYmxlPj0xLjQuNS4zICMgTUlUIExpY2Vuc2UKK1hTdGF0aWMtU3Bpbj49MS4yLjUuMiAjIE1JVCBMaWNlbnNlCitYU3RhdGljLXRlcm0uanMKK2NyeXB0b2dyYXBoeQorZ3JlZW5sZXQ+PTAuNC41CitkamFuZ28tYXBwY29uZgorc3RldmVkb3JlCitndW5pY29ybj49MTguMAorCisjIG5vdCBsaXN0ZWQgaW4gZ2xvYmFsIHJlcXVpcmVtZW50cworYmVhdXRpZnVsc291cDQKK2RqYW5nby1mbG9wcHlmb3Jtcz49MS4xCit5YXFsPj0wLjIuMyw8MC4zCitweXRob24tbXVyYW5vY2xpZW50Pj0wLjUuNQorcmF2ZW4KKworaG9yaXpvbi1jb250cmliPj0yMDE1LjcuNgorcHl0aG9uLW1lbWNhY2hlZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvcmVxdWlyZW1lbnRzL3JvYm90aWNlX3ZhbmlsbGEudHh0IGIvaG9yaXpvbi9maWxlcy9yZXF1aXJlbWVudHMvcm9ib3RpY2VfdmFuaWxsYS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRmZWE1NgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvcmVxdWlyZW1lbnRzL3JvYm90aWNlX3ZhbmlsbGEudHh0CkBAIC0wLDAgKzEsNjQgQEAKKyMgUEJSIHNob3VsZCBhbHdheXMgYXBwZWFyIGZpcnN0CitwYnI+PTAuNiwhPTAuNyw8MS4wCitwcmV0dHl0YWJsZT49MC43LjIKK3N0ZXZlZG9yZT49MS4yLjAKK0JhYmVsPj0xLjMKKyMgSG9yaXpvbiBDb3JlIFJlcXVpcmVtZW50cworRGphbmdvPj0xLjQuMiw8MS43CitkamFuZ29fY29tcHJlc3Nvcj49MS40CitkamFuZ29fb3BlbnN0YWNrX2F1dGg+PTEuMS43CitkamFuZ28tcHlzY3NzPj0xLjAuMyAjIEJTRCBMaWNlbnNlICgyIGNsYXVzZSkKK2V2ZW50bGV0Pj0wLjE1LjEKK2h0dHBsaWIyPj0wLjcuNQoraXNvODYwMT49MC4xLjkKK2tvbWJ1Pj0yLjUuMAorIyBIb3Jpem9uIFV0aWxpdHkgUmVxdWlyZW1lbnRzCisjIGZvciBTRUNVUkVfS0VZIGdlbmVyYXRpb24KK2xvY2tmaWxlPj0wLjgKK25ldGFkZHI+PTAuNy4xMgorcHlTY3NzPj0xLjIuMSw8MS4zICMgTUlUIExpY2Vuc2UKK3B5dGhvbi1jZWlsb21ldGVyY2xpZW50Pj0xLjAuNgorcHl0aG9uLWNpbmRlcmNsaWVudD49MS4xLjAKK3B5dGhvbi1nbGFuY2VjbGllbnQ+PTAuMTQuMAorcHl0aG9uLWhlYXRjbGllbnQ+PTAuMi45CitweXRob24ta2V5c3RvbmVjbGllbnQ+PTAuMTAuMAorcHl0aG9uLW5ldXRyb25jbGllbnQ+PTIuMy42LDwzCitweXRob24tbm92YWNsaWVudD49Mi4xOC4wCitweXRob24tc2FoYXJhY2xpZW50Pj0wLjcuMworcHl0aG9uLXN3aWZ0Y2xpZW50Pj0yLjIuMAorcHl0aG9uLXRyb3ZlY2xpZW50Pj0xLjAuNAorcHl0egorc2l4Pj0xLjcuMAorcmVxdWVzdHM9PTIuMS4wCityYXZlbj49My41LjIKK2d1bmljb3JuPj0xOC4wCitvc2xvLmNvbmZpZz49MS40LjAgICMgQXBhY2hlLTIuMAorb3Nsby5pMThuPj0xLjAuMCAgIyBBcGFjaGUtMi4wCitvc2xvLnNlcmlhbGl6YXRpb24+PTEuMC4wICAgICAgICAgICAgICAgIyBBcGFjaGUtMi4wCitvc2xvLnV0aWxzPj0xLjEuMCAgICAgICAgICAgICAgICAgICAgICAgIyBBcGFjaGUtMi4wCit4c3RhdGljPj0xLjAuMCAjIE1JVCBMaWNlbnNlCit4c3RhdGljLWFuZ3VsYXI+PTEuMi4xLjEgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1hbmd1bGFyLWNvb2tpZXM+PTEuMi4xLjEgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1hbmd1bGFyLW1vY2s+PTEuMi4xLjEgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1ib290c3RyYXAtZGF0ZXBpY2tlcj49MS4zLjEuMCAjIEFwYWNoZSAyLjAgTGljZW5zZQoreHN0YXRpYy1ib290c3RyYXAtc2Nzcz49MyAjIEFwYWNoZSAyLjAgTGljZW5zZQoreHN0YXRpYy1kMz49My4xLjYuMiAjIEJTRCBMaWNlbnNlICgzIGNsYXVzZSkKK3hzdGF0aWMtaG9nYW4+PTIuMC4wLjIgIyBBcGFjaGUgMi4wIExpY2Vuc2UKK3hzdGF0aWMtZm9udC1hd2Vzb21lPj00LjEuMCAjIFNJTCBPRkwgMS4xIExpY2Vuc2UsIE1JVCBMaWNlbnNlCit4c3RhdGljLWphc21pbmU+PTEuMy4xLjEgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1qcXVlcnk+PTEuNy4yICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtanF1ZXJ5LW1pZ3JhdGU+PTEuMi4xLjEgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1qcXVlcnkucXVpY2tzZWFyY2g+PTIuMC4zLjEgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1qcXVlcnkudGFibGVzb3J0ZXI+PTIuMC41Yi4wICMgTUlUIExpY2Vuc2UKK3hzdGF0aWMtanF1ZXJ5LXVpPj0xLjEwLjEgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1qc2VuY3J5cHQ+PTIuMC4wLjIgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1xdW5pdD49MS4xNC4wLjIgIyBNSVQgTGljZW5zZQoreHN0YXRpYy1yaWNrc2hhdz49MS41LjAgIyBCU0QgTGljZW5zZSAocHJpb3IpCit4c3RhdGljLXNwaW4+PTEuMi41LjIgIyBNSVQgTGljZW5zZQorY3J5cHRvZ3JhcGh5CitncmVlbmxldD49MC40LjUKK2RqYW5nby1hcHBjb25mCitkamFuZ28tbWFya2l0dXA9PTIuMi4yCit4c3RhdGljLWFkbWlubHRlPj0yLjAuMS4xCitkamFuZ29faW1hZ2VfcHJveHk+PTAuMC4xCitkamFuZ28tYm9vdHN0cmFwMy1kYXRldGltZXBpY2tlcgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2hvcml6b24vZmlsZXMvc2Vuc3UuY29uZiBiL2hvcml6b24vZmlsZXMvc2Vuc3UuY29uZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjVjYzAwCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9maWxlcy9zZW5zdS5jb25mCkBAIC0wLDAgKzEsMjIgQEAKK3slLSBmcm9tICJsaW51eC9tYXAuamluamEiIGltcG9ydCBuZXR3b3JrIHdpdGggY29udGV4dCAtJX0KK3slLSBmcm9tICJob3Jpem9uL21hcC5qaW5qYSIgaW1wb3J0IHNlcnZlciB3aXRoIGNvbnRleHQgLSV9CisKK3slLSBpZiBzZXJ2ZXIuYXBwIGlzIGRlZmluZWQgJX0KKworeyUtIGZvciBhcHBfbmFtZSwgYXBwIGluIHNlcnZlci5hcHAuaXRlcml0ZW1zKCkgJX0KK3slLSBzZXQgc2l0ZSA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnbmdpbng6c2VydmVyOnNpdGU6aG9yaXpvbl8nK2FwcF9uYW1lKSAlfQorbG9jYWxfc3VwZXJ2aXNvcl9zZXJ2ZXJfc2VydmljZV9ob3Jpem9uX3t7IGFwcF9uYW1lIH19Lnt7IG5ldHdvcmsuZnFkbiB9fToKKyAgY29tbWFuZDogIlBBVEg9JFBBVEg6L2V0Yy9zZW5zdS9wbHVnaW5zIGNoZWNrX3N1cGVydmlzb3JfcHJvYy5weSAtcCBob3Jpem9uX3t7IGFwcF9uYW1lIH19IgorICBpbnRlcnZhbDogNjAKKyAgb2NjdXJyZW5jZXM6IDEKKyAgc3Vic2NyaWJlcnM6CisgIC0ge3sgbmV0d29yay5mcWRufHJlcGxhY2UoJy4nLCAnLScpIH19CityZW1vdGVfaG9yaXpvbl9sb2dpbl97eyBhcHBfbmFtZSB9fS57eyBzaXRlLmhvc3QubmFtZSB9fToKKyAgY29tbWFuZDogIlBBVEg9JFBBVEg6L3Vzci9sb2NhbC9iaW4gb3NjaGVja3MtY2hlY2tfaG9yaXpvbl9sb2dpbiAtRSB7eyBzaXRlLmhvc3QubmFtZSB9fSAtVSA6OjpvcGVuc3RhY2sudXNlcjo6OiAtUCA6OjpvcGVuc3RhY2sucGFzc3dvcmQ6OjogLWMgL3RtcC9jaGVja19ob3Jpem9uX3t7IGFwcF9uYW1lIH19Lnt7IHNpdGUuaG9zdC5uYW1lIH19X2Nvb2tpZUZpbGUiCisgIGludGVydmFsOiAxMjAKKyAgb2NjdXJyZW5jZXM6IDEKKyAgc3Vic2NyaWJlcnM6CisgIC0gcmVtb3RlLW5ldHdvcmsKK3slLSBlbmRmb3IgJX0KKworeyUtIGVuZGlmICV9CmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL3N1cGVydmlzb3IuY29uZiBiL2hvcml6b24vZmlsZXMvc3VwZXJ2aXNvci5jb25mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZjNmZGQKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL2ZpbGVzL3N1cGVydmlzb3IuY29uZgpAQCAtMCwwICsxLDE0IEBACit7JS0gc2V0IHNlcnZpY2UgPSBzYWx0WydwaWxsYXIuZ2V0J10oJ3N1cGVydmlzb3I6c2VydmVyOnNlcnZpY2U6JytzZXJ2aWNlX25hbWUpICV9Cit7JS0gc2V0IGFwcCA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnaG9yaXpvbjpzZXJ2ZXI6YXBwOicrc2VydmljZS5uYW1lKSAlfQorCitbcHJvZ3JhbTp7eyBzZXJ2aWNlX25hbWUgfX1dCitlbnZpcm9ubWVudD1QQVRIPSIvc3J2L2hvcml6b24vYmluIgorCitjb21tYW5kPS9zcnYvaG9yaXpvbi9zaXRlcy97eyBzZXJ2aWNlLm5hbWUgfX0vZ3VuaWNvcm5fc3RhcnQKKworc3Rkb3V0X2xvZ2ZpbGU9L3Zhci9sb2cvaG9yaXpvbi97eyBzZXJ2aWNlLm5hbWUgfX1fYXBwLmxvZyAKK3N0ZGVycl9sb2dmaWxlPS92YXIvbG9nL2hvcml6b24ve3sgc2VydmljZS5uYW1lIH19X2Vycm9yLmxvZworCit1c2VyPWhvcml6b24KK2F1dG9zdGFydD10cnVlCithdXRvcmVzdGFydD10cnVlCmRpZmYgLS1naXQgYS9ob3Jpem9uL2ZpbGVzL3dzZ2kucHkgYi9ob3Jpem9uL2ZpbGVzL3dzZ2kucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGYzNzg1MQotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vZmlsZXMvd3NnaS5weQpAQCAtMCwwICsxLDMyIEBACisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitzeXMuc3Rkb3V0ID0gc3lzLnN0ZGVycgorCit7JS0gc2V0IGFwcCA9IHNhbHRbJ3BpbGxhci5nZXQnXSgnaG9yaXpvbjpzZXJ2ZXI6YXBwOicrYXBwX25hbWUpICV9CisKK2ltcG9ydCBzaXRlCisKK2Zyb20gb3MucGF0aCBpbXBvcnQgam9pbgorCisjc2l0ZS5hZGRzaXRlZGlyKCcvc3J2L2hvcml6b24vbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzJykKKworcGF0aCA9ICcvc3J2L2hvcml6b24nCisKK3N5cy5wYXRoLmFwcGVuZChqb2luKHBhdGgsICdzaXRlcycsICd7eyBhcHBfbmFtZSB9fScsICdsaWInLCAncHl0aG9uMi43JywgJ3NpdGUtcGFja2FnZXMnKSkKK3N5cy5wYXRoLmFwcGVuZChqb2luKHBhdGgsICdzaXRlcycsICd7eyBhcHBfbmFtZSB9fScsICdleHRyYScpKQoreyUtIGlmIGFwcC5wbHVnaW4gaXMgZGVmaW5lZCAlfQoreyUtIGZvciBwbHVnaW5fbmFtZSwgcGx1Z2luIGluIGFwcC5wbHVnaW4uaXRlcml0ZW1zKCkgJX0KK3N5cy5wYXRoLmFwcGVuZChqb2luKHBhdGgsICdzaXRlcycsICd7eyBhcHBfbmFtZSB9fScsICdwbHVnaW5zJywgJ3t7IHBsdWdpbl9uYW1lIH19JykpCit7JS0gZW5kZm9yICV9Cit7JS0gZW5kaWYgJX0KKworaW1wb3J0IG9zCisjb3MuZW52aXJvblsnUFlUSE9OX0VHR19DQUNIRSddID0gJy93d3cvbG9zdHF1ZXJ5LmNvbS9tb2Rfd3NnaS9lZ2ctY2FjaGUnCisKK29zLmVudmlyb25bJ0RKQU5HT19TRVRUSU5HU19NT0RVTEUnXSA9ICd7eyBhcHAuZ2V0KCdkYXNoYm9hcmQnLCAnb3BlbnN0YWNrJykgfX1fZGFzaGJvYXJkLnNldHRpbmdzJworCitpbXBvcnQgZGphbmdvLmNvcmUuaGFuZGxlcnMud3NnaQorCithcHBsaWNhdGlvbiA9IGRqYW5nby5jb3JlLmhhbmRsZXJzLndzZ2kuV1NHSUhhbmRsZXIoKQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9pbml0LnNscyBiL2hvcml6b24vaW5pdC5zbHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0MzBhMgotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vaW5pdC5zbHMKQEAgLTAsMCArMSw3IEBACisKK3slLSBpZiBwaWxsYXIuaG9yaXpvbiBpcyBkZWZpbmVkICV9CitpbmNsdWRlOgoreyUtIGlmIHBpbGxhci5ob3Jpem9uLnNlcnZlciBpcyBkZWZpbmVkICV9CistIGhvcml6b24uc2VydmVyCit7JS0gZW5kaWYgJX0KK3slLSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9tYXAuamluamEgYi9ob3Jpem9uL21hcC5qaW5qYQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmUyMzdkCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9tYXAuamluamEKQEAgLTAsMCArMSwyMiBAQAoreyUgc2V0IHNlcnZlciA9IHNhbHRbJ2dyYWlucy5maWx0ZXJfYnknXSh7CisgICAgJ0RlYmlhbic6IHsKKyAgICAgICAgJ3BrZ3MnOiBbJ29wZW5zdGFjay1kYXNoYm9hcmQnLCAncHl0aG9uLWxlc3NjcHknLCAncHl0aG9uLW1lbWNhY2hlJ10sCisgICAgICAgICdzc2xfcGtncyc6IFsnb3BlbnN0YWNrLWRhc2hib2FyZCddLAorICAgICAgICAnc2VydmljZSc6ICdhcGFjaGUyJywKKyAgICAgICAgJ2NvbmZpZyc6ICcvZXRjL29wZW5zdGFjay1kYXNoYm9hcmQvbG9jYWxfc2V0dGluZ3MucHknLAorICAgICAgICAnYXBhY2hlX2NvbmZpZyc6ICcvZXRjL2FwYWNoZTIvY29uZi1hdmFpbGFibGUvb3BlbnN0YWNrLWRhc2hib2FyZC5jb25mJywKKyAgICAgICAgJ2NlcnRzX2Rpcic6ICcvZXRjL3NzbC9jZXJ0cycsCisgICAgICAgICdwcml2YXRlX2Rpcic6ICcvZXRjL3NzbC9wcml2YXRlJywKKyAgICAgICAgJ2NhY2hlJzogeydob3N0JzogJzEyNy4wLjAuMScsICdwb3J0JzogMTEyMTF9CisgICAgfSwKKyAgICAnUmVkSGF0JzogeworICAgICAgICAncGtncyc6IFsnb3BlbnN0YWNrLWRhc2hib2FyZCcsICdweXRob24tbWVtY2FjaGVkJ10sCisgICAgICAgICdzc2xfcGtncyc6IFsnbW9kX3NzbCddLAorICAgICAgICAnc2VydmljZSc6ICdodHRwZCcsCisgICAgICAgICdjb25maWcnOiAnL2V0Yy9vcGVuc3RhY2stZGFzaGJvYXJkL2xvY2FsX3NldHRpbmdzJywKKyAgICAgICAgJ2FwYWNoZV9jb25maWcnOiAnL2V0Yy9odHRwZC9jb25mLmQvb3BlbnN0YWNrLWRhc2hib2FyZC5jb25mJywKKyAgICAgICAgJ2NlcnRzX2Rpcic6ICcvZXRjL3BraS90bHMvY2VydHMnLAorICAgICAgICAncHJpdmF0ZV9kaXInOiAnL2V0Yy9wa2kvdGxzL3ByaXZhdGUnLAorICAgICAgICAnY2FjaGUnOiB7J2hvc3QnOiAnMTI3LjAuMC4xJywgJ3BvcnQnOiAxMTIxMX0KKyAgICB9LAorfSwgbWVyZ2U9c2FsdFsncGlsbGFyLmdldCddKCdob3Jpem9uOnNlcnZlcicpKSAlfQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9zZXJ2ZXIvaW5pdC5zbHMgYi9ob3Jpem9uL3NlcnZlci9pbml0LnNscwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzZkOWIyCi0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9zZXJ2ZXIvaW5pdC5zbHMKQEAgLTAsMCArMSw5IEBACitpbmNsdWRlOgoreyUtIGlmIHBpbGxhci5ob3Jpem9uLnNlcnZlci5hcHAgaXMgZGVmaW5lZCAlfQoreyMgdWdsaWVyIHdheSwgZm9yIGRldmVsb3BtZW50ICN9CistIGhvcml6b24uc2VydmVyLm11bHRpLnNlcnZpY2VfZ2l0CistIGhvcml6b24uc2VydmVyLm11bHRpLnNpdGUKK3slLSBlbHNlICV9Cit7IyBwcm9kdWN0aW9uIHdheSAjfQorLSBob3Jpem9uLnNlcnZlci5zaW5nbGUKK3slLSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9zZXJ2ZXIvbXVsdGkvaW5pdC5zbHMgYi9ob3Jpem9uL3NlcnZlci9tdWx0aS9pbml0LnNscwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTk5NWE3Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9zZXJ2ZXIvbXVsdGkvaW5pdC5zbHMKQEAgLTAsMCArMSw1NyBAQAoreyUtIGZyb20gImhvcml6b24vbWFwLmppbmphIiBpbXBvcnQgc2VydmVyIHdpdGggY29udGV4dCAlfQoreyUtIGlmIHNlcnZlci5lbmFibGVkICV9CisKK2luY2x1ZGU6CistIGdpdAorLSBweXRob24KKworeyUgaWYgZ3JhaW5zLm9zX2ZhbWlseSA9PSAnRGViaWFuJyAlfQorCitob3Jpem9uX3BhY2thZ2VzOgorICBwa2cuaW5zdGFsbGVkOgorICAtIG5hbWVzOgorICAgIC0gcHl0aG9uLW1lbWNhY2hlCisgICAgLSBweXRob24tcHN5Y29wZzIKKyAgICAtIHB5dGhvbi1pbWFnaW5nCisgICAgLSBweXRob24tZG9jdXRpbHMKKyAgICAtIHB5dGhvbi1zaW1wbGVqc29uCisgICAgLSBidWlsZC1lc3NlbnRpYWwKKyAgICAtIGxpYnhzbHQxLWRldgorICAgIC0gbGlieG1sMi1kZXYKKyAgICAtIGxpYmZmaS1kZXYKKyAgICAtIGxpYnNzbC1kZXYKKyAgICAtIGdldHRleHQKKyAgLSByZXF1aXJlOgorICAgIC0gcGtnOiBweXRob25fcGFja2FnZXMKKyAgcGlwLmluc3RhbGxlZDoKKyAgLSBuYW1lOiBsZXNzY3B5CisgIC0gcmVxdWlyZToKKyAgICAtIHBrZzogcHl0aG9uX3BhY2thZ2VzCisKK3slIGVuZGlmICV9CisKK3slIGlmIGdyYWlucy5vc19mYW1pbHkgPT0gJ1JlZEhhdCcgJX0KKworaG9yaXpvbl9wYWNrYWdlczoKKyAgcGtnLmluc3RhbGxlZDoKKyAgLSBuYW1lczoKKyAgICAtIHB5dGhvbi1pbWFnaW5nCisgICAgLSBweXRob24tZG9jdXRpbHMKKyAgICAtIHB5dGhvbi1zaW1wbGVqc29uCisgICAgLSBnZXR0ZXh0CisgIC0gcmVxdWlyZToKKyAgICAtIHBrZzogcHl0aG9uX3BhY2thZ2VzCisgIHBpcC5pbnN0YWxsZWQ6CisgIC0gbmFtZTogbGVzc2NweQorICAtIHJlcXVpcmU6CisgICAgLSBwa2c6IHB5dGhvbl9wYWNrYWdlcworCit7JS0gZW5kaWYgJX0KKworL3Zhci9sb2cvaG9yaXpvbjoKKyAgZmlsZS5kaXJlY3Rvcnk6CisgIC0gbW9kZTogNzcwCisgIC0gdXNlcjogaG9yaXpvbgorICAtIGdyb3VwOiByb290CisKK3slLSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvaG9yaXpvbi9zZXJ2ZXIvbXVsdGkvc2VydmljZV9naXQuc2xzIGIvaG9yaXpvbi9zZXJ2ZXIvbXVsdGkvc2VydmljZV9naXQuc2xzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhYjNkZjMKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL3NlcnZlci9tdWx0aS9zZXJ2aWNlX2dpdC5zbHMKQEAgLTAsMCArMSw1OCBAQAoreyUtIGZyb20gImhvcml6b24vbWFwLmppbmphIiBpbXBvcnQgc2VydmVyIHdpdGggY29udGV4dCAlfQoreyUtIGlmIHNlcnZlci5lbmFibGVkICV9CisKK2luY2x1ZGU6CistIGdpdAorLSBweXRob24KKworeyUgaWYgZ3JhaW5zLm9zX2ZhbWlseSA9PSAnRGViaWFuJyAlfQorCitob3Jpem9uX3BhY2thZ2VzOgorICBwa2cuaW5zdGFsbGVkOgorICAtIG5hbWVzOgorICAgIC0gcHl0aG9uLW1lbWNhY2hlCisgICAgLSBweXRob24tcHN5Y29wZzIKKyAgICAtIHB5dGhvbi1pbWFnaW5nCisgICAgLSBweXRob24tZG9jdXRpbHMKKyAgICAtIHB5dGhvbi1zaW1wbGVqc29uCisgICAgLSBidWlsZC1lc3NlbnRpYWwKKyAgICAtIGxpYnhzbHQxLWRldgorICAgIC0gbGlieG1sMi1kZXYKKyAgICAtIGxpYmZmaS1kZXYKKyAgICAtIGxpYnNzbC1kZXYKKyAgICAtIGdldHRleHQKKyAgLSByZXF1aXJlOgorICAgIC0gcGtnOiBweXRob25fcGFja2FnZXMKKyAgcGlwLmluc3RhbGxlZDoKKyAgLSBuYW1lOiBsZXNzY3B5CisgIC0gcmVxdWlyZToKKyAgICAtIHBrZzogcHl0aG9uX3BhY2thZ2VzCisKK3slIGVuZGlmICV9CisKK3slIGlmIGdyYWlucy5vc19mYW1pbHkgPT0gJ1JlZEhhdCcgJX0KKworaG9yaXpvbl9wYWNrYWdlczoKKyAgcGtnLmluc3RhbGxlZDoKKyAgLSBuYW1lczoKKyAgICAtIHB5dGhvbi1pbWFnaW5nCisgICAgLSBweXRob24tZG9jdXRpbHMKKyAgICAtIHB5dGhvbi1zaW1wbGVqc29uCisgICAgLSBnZXR0ZXh0CisgIC0gcmVxdWlyZToKKyAgICAtIHBrZzogcHl0aG9uX3BhY2thZ2VzCisgIHBpcC5pbnN0YWxsZWQ6CisgIC0gbmFtZTogbGVzc2NweQorICAtIHJlcXVpcmU6CisgICAgLSBwa2c6IHB5dGhvbl9wYWNrYWdlcworCit7JS0gZW5kaWYgJX0KKworL3Zhci9sb2cvaG9yaXpvbjoKKyAgZmlsZS5kaXJlY3Rvcnk6CisgIC0gbW9kZTogNzcwCisgIC0gdXNlcjogaG9yaXpvbgorICAtIGdyb3VwOiByb290CisKK3slLSBlbmRpZiAlfQorCmRpZmYgLS1naXQgYS9ob3Jpem9uL3NlcnZlci9tdWx0aS9zaXRlLnNscyBiL2hvcml6b24vc2VydmVyL211bHRpL3NpdGUuc2xzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyMDgzMTgKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL3NlcnZlci9tdWx0aS9zaXRlLnNscwpAQCAtMCwwICsxLDMyMSBAQAoreyUtIGZyb20gImhvcml6b24vbWFwLmppbmphIiBpbXBvcnQgc2VydmVyIHdpdGggY29udGV4dCAlfQoreyUtIGlmIHNlcnZlci5lbmFibGVkICV9CisKK2luY2x1ZGU6CistIGdpdAorCitob3Jpem9uX3VzZXI6CisgIHVzZXIucHJlc2VudDoKKyAgLSBuYW1lOiBob3Jpem9uCisgIC0gc3lzdGVtOiBUcnVlCisgIC0gaG9tZTogL3Nydi9ob3Jpem9uCisKKy9zcnYvaG9yaXpvbi9zaXRlczoKKyAgZmlsZS5kaXJlY3Rvcnk6CisgIC0gbWFrZWRpcnM6IHRydWUKKworeyUtIGZvciBhcHBfbmFtZSwgYXBwIGluIHNlcnZlci5hcHAuaXRlcml0ZW1zKCkgJX0KKworeyUtIGlmIGFwcC5nZXQoJ2Rhc2hib2FyZCcsICdvcGVuc3RhY2snKSBpbiBbJ29wZW5zdGFjaycsICdoZWxwZGVzayddICV9Cit7JS0gaWYgYXBwLmdldCgndmVyc2lvbicsICdqdW5vJykgaW4gWydqdW5vJywgJ2tpbG8nLCAnbGliZXJ0eSddICV9Cit7JS0gc2V0IGNvbmZpZ19maWxlID0gIi9zcnYvaG9yaXpvbi9zaXRlcy8iK2FwcF9uYW1lKyIvbGliL3B5dGhvbiIgKyBwaWxsYXIucHl0aG9uLmVudmlyb25tZW50LmdldCgidmVyc2lvbiIsICIyLjciKSArICIvc2l0ZS1wYWNrYWdlcy9vcGVuc3RhY2tfZGFzaGJvYXJkL2xvY2FsL2xvY2FsX3NldHRpbmdzLnB5IiAlfQoreyUtIGVsc2UgJX0KK3slLSBzZXQgY29uZmlnX2ZpbGUgPSAiL3Nydi9ob3Jpem9uL3NpdGVzLyIrYXBwX25hbWUrIi9leHRyYS9vcGVuc3RhY2tfZGFzaGJvYXJkL2xvY2FsL2xvY2FsX3NldHRpbmdzLnB5IiAlfQoreyUtIGVuZGlmICV9Cit7JS0gZWxpZiBhcHAuZ2V0KCdkYXNoYm9hcmQnLCAnb3BlbnN0YWNrJykgPT0gJ2NzYicgJX0KK3slLSBzZXQgY29uZmlnX2ZpbGUgPSAiL3Nydi9ob3Jpem9uL3NpdGVzLyIrYXBwX25hbWUrIi9wbHVnaW5zL2NzYl9kYXNoYm9hcmQvY3NiX2Rhc2hib2FyZC9sb2NhbC9sb2NhbF9zZXR0aW5ncy5weSIgJX0KK3slLSBlbGlmIGFwcC5nZXQoJ2Rhc2hib2FyZCcsICdvcGVuc3RhY2snKSA9PSAncm9ib3RpY2UnICV9Cit7JS0gc2V0IGNvbmZpZ19maWxlID0gIi9zcnYvaG9yaXpvbi9zaXRlcy8iK2FwcF9uYW1lKyIvcGx1Z2lucy9yb2JvdGljZV9kYXNoYm9hcmQvcm9ib3RpY2VfZGFzaGJvYXJkL2xvY2FsL2xvY2FsX3NldHRpbmdzLnB5IiAlfQoreyUtIGVuZGlmICV9CisKK3slLSBpZiBhcHAucGx1Z2luLmNvbnRyYWlsIGlzIGRlZmluZWQgJX0KK3slLSBzZXQgcmVxdWlyZW1lbnRzID0gImNvbnRyYWlsIiAlfQoreyUtIGVsc2UgJX0KK3slLSBzZXQgcmVxdWlyZW1lbnRzID0gInZhbmlsbGEiICV9Cit7JS0gZW5kaWYgJX0KKworL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19OgorICB2aXJ0dWFsZW52Lm1hbmFnZToKKyAgLSBzeXN0ZW1fc2l0ZV9wYWNrYWdlczogRmFsc2UKKyAgLSByZXF1aXJlbWVudHM6IHNhbHQ6Ly9ob3Jpem9uL2ZpbGVzL3JlcXVpcmVtZW50cy97eyBhcHAudmVyc2lvbiB9fV97eyByZXF1aXJlbWVudHMgfX0udHh0CisgIC0gcmVxdWlyZToKKyAgICAtIGZpbGU6IC9zcnYvaG9yaXpvbi9zaXRlcworICAgIC0gcGtnOiBob3Jpem9uX3BhY2thZ2VzCisgICAgLSBwaXA6IGhvcml6b25fcGFja2FnZXMKKwore3sgYXBwX25hbWUgfX1fe3sgYXBwLnNvdXJjZS5hZGRyZXNzIH19OgorICBnaXQubGF0ZXN0OgorICAtIG5hbWU6IHt7IGFwcC5zb3VyY2UuYWRkcmVzcyB9fQorICAtIHRhcmdldDogL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L2V4dHJhCisgIC0gcmV2OiB7eyBhcHAuc291cmNlLnJldmlzaW9uIH19CisgIC0gZGVwdGg6IDEKKyAgLSBzdWJtb2R1bGVzOiBUcnVlCisgIC0gcmVxdWlyZToKKyAgICAtIHZpcnR1YWxlbnY6IC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fQorICAgIC0gcGtnOiBnaXRfcGFja2FnZXMKKworaG9yaXpvbl97eyBhcHBfbmFtZSB9fV9kaXJzOgorICBmaWxlLmRpcmVjdG9yeToKKyAgLSBuYW1lczoKKyAgICAtIC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9tZWRpYQorICAgIC0gL3Zhci9sb2cvaG9yaXpvbgorICAtIG1vZGU6IDc3NworICAtIHVzZXI6IGhvcml6b24KKyAgLSBncm91cDogaG9yaXpvbgorICAtIHJlcXVpcmU6CisgICAgLSBnaXQ6IHt7IGFwcF9uYW1lIH19X3t7IGFwcC5zb3VyY2UuYWRkcmVzcyB9fQorCitob3Jpem9uX3t7IGFwcF9uYW1lIH19X2xvZ3M6CisgIGZpbGUubWFuYWdlZDoKKyAgLSBuYW1lczoKKyAgICAtIC92YXIvbG9nL2hvcml6b24ve3sgYXBwX25hbWUgfX1fYXBwLmxvZworICAgIC0gL3Zhci9sb2cvaG9yaXpvbi97eyBhcHBfbmFtZSB9fV9lcnJvci5sb2cKKyAgICAtIC92YXIvbG9nL2hvcml6b24ve3sgYXBwX25hbWUgfX1fZ3VuaWNvcm4ubG9nCisgICAgLSAvdmFyL2xvZy9ob3Jpem9uL3t7IGFwcF9uYW1lIH19X2hvcml6b24ubG9nCisgIC0gdXNlcjogaG9yaXpvbgorICAtIGdyb3VwOiBob3Jpem9uCisgIC0gcmVwbGFjZTogRmFsc2UKKyAgLSByZXF1aXJlOgorICAgIC0gZmlsZTogaG9yaXpvbl97eyBhcHBfbmFtZSB9fV9kaXJzCisKK3slLSBpZiBhcHAuZ2V0KCd2ZXJzaW9uJywgJ2p1bm8nKSBpbiBbJ2p1bm8nLCAna2lsbycsICdoZWxwZGVzayddICV9CisKK2hvcml6b25fc2V0dXBfe3sgYXBwX25hbWUgfX1faG9yaXpvbjoKKyAgY21kLnJ1bjoKKyAgLSBuYW1lczoKKyAgICAtIHNvdXJjZSAvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vYmluL2FjdGl2YXRlOyBweXRob24gc2V0dXAucHkgaW5zdGFsbAorICAtIGN3ZDogL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L2V4dHJhCisgIC0gcmVxdWlyZToKKyAgICAtIGdpdDoge3sgYXBwX25hbWUgfX1fe3sgYXBwLnNvdXJjZS5hZGRyZXNzIH19CisgIC0gcmVxdWlyZV9pbjoKKyAgICAtIGZpbGU6IGhvcml6b25fe3sgYXBwX25hbWUgfX1fY29uZmlnCisKK3slLSBpZiBhcHAuZ2V0KCdhcGlfdmVyc2lvbnMnLCB7fSkuaWRlbnRpdHkgaXMgZGVmaW5lZCAlfQoreyUtIGlmIGFwcC5nZXQoJ2FwaV92ZXJzaW9ucycsIHt9KS5pZGVudGl0eSA9PSAnMycgJX0KKworaG9yaXpvbl97eyBhcHBfbmFtZSB9fV9jb25maWc6CisgIGZpbGUubWFuYWdlZDoKKyAgLSBuYW1lOiAvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vbGliL3B5dGhvbnt7IHBpbGxhci5weXRob24uZW52aXJvbm1lbnQuZ2V0KCJ2ZXJzaW9uIiwgIjIuNyIpIH19L3NpdGUtcGFja2FnZXMvb3BlbnN0YWNrX2Rhc2hib2FyZC9jb25mL2tleXN0b25lX3BvbGljeS5qc29uCisgIC0gc291cmNlOiBzYWx0Oi8vaG9yaXpvbi9maWxlcy9wb2xpY3kve3sgYXBwLnZlcnNpb24gfX0ta2V5c3RvbmUtdjMuanNvbgorICAtIHJlcXVpcmU6CisgICAgLSBjbWQ6IGhvcml6b25fc2V0dXBfe3sgYXBwX25hbWUgfX1faG9yaXpvbgorCit7JS0gZW5kaWYgJX0KK3slLSBlbmRpZiAlfQorCit7JS0gZW5kaWYgJX0KKworeyUtIGlmIGFwcC5nZXQoJ3ZlcnNpb24nLCAnanVubycpIGluIFsna2lsbycsICdoZWxwZGVzayddICV9CisKKy9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9zdGF0aWM6CisgIGZpbGUuc3ltbGluazoKKyAgLSB0YXJnZXQ6IC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9sb2NhbC9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvc3RhdGljCisgIC0gbW9kZTogNzc3CisgIC0gdXNlcjogcm9vdAorICAtIGdyb3VwOiByb290CisgIC0gcmVxdWlyZToKKyAgICAtIGdpdDoge3sgYXBwX25hbWUgfX1fe3sgYXBwLnNvdXJjZS5hZGRyZXNzIH19CisKK2hvcml6b25fe3sgYXBwX25hbWUgfX1fY29uZmlnOgorICBmaWxlLm1hbmFnZWQ6CisgIC0gbmFtZTogL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L2xpYi9weXRob257eyBwaWxsYXIucHl0aG9uLmVudmlyb25tZW50LmdldCgidmVyc2lvbiIsICIyLjciKSB9fS9zaXRlLXBhY2thZ2VzL29wZW5zdGFja19kYXNoYm9hcmQvbG9jYWwvbG9jYWxfc2V0dGluZ3MucHkKKyAgLSBzb3VyY2U6IHNhbHQ6Ly9ob3Jpem9uL2ZpbGVzL2xvY2FsX3NldHRpbmdzL3t7IGFwcC52ZXJzaW9uIH19X3NldHRpbmdzLnB5CisgIC0gdGVtcGxhdGU6IGppbmphCisgIC0gbW9kZTogNjQ0CisgIC0gdXNlcjogcm9vdAorICAtIGdyb3VwOiByb290CisgIC0gZGVmYXVsdHM6CisgICAgYXBwX25hbWU6IHt7IGFwcF9uYW1lIH19CisgIC0gcmVxdWlyZV9pbjoKKyAgICAtIGZpbGU6IC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9tYW5hZ2UucHkKKworeyUtIGVsc2UgJX0KKworL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L3N0YXRpYzoKKyAgZmlsZS5kaXJlY3Rvcnk6CisgIC0gbW9kZTogNzc3CisgIC0gdXNlcjogcm9vdAorICAtIGdyb3VwOiByb290CisgIC0gcmVxdWlyZToKKyAgICAtIGdpdDoge3sgYXBwX25hbWUgfX1fe3sgYXBwLnNvdXJjZS5hZGRyZXNzIH19CisKK2hvcml6b25fe3sgYXBwX25hbWUgfX1fY29uZmlnOgorICBmaWxlLm1hbmFnZWQ6CisgIC0gbmFtZToge3sgY29uZmlnX2ZpbGUgfX0KKyAgLSBzb3VyY2U6IHNhbHQ6Ly9ob3Jpem9uL2ZpbGVzL2xvY2FsX3NldHRpbmdzL3t7IGFwcC52ZXJzaW9uIH19X3NldHRpbmdzLnB5CisgIC0gdGVtcGxhdGU6IGppbmphCisgIC0gbW9kZTogNjQ0CisgIC0gdXNlcjogcm9vdAorICAtIGdyb3VwOiByb290CisgIC0gZGVmYXVsdHM6CisgICAgYXBwX25hbWU6IHt7IGFwcF9uYW1lIH19CisgIC0gcmVxdWlyZV9pbjoKKyAgICAtIGZpbGU6IC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9tYW5hZ2UucHkKKworeyUtIGVuZGlmICV9CisKKy9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9tYW5hZ2UucHk6CisgIGZpbGUubWFuYWdlZDoKKyAgLSBzb3VyY2U6IHNhbHQ6Ly9ob3Jpem9uL2ZpbGVzL21hbmFnZS5weQorICAtIHRlbXBsYXRlOiBqaW5qYQorICAtIG1vZGU6IDc3NworICAtIHVzZXI6IHJvb3QKKyAgLSBncm91cDogcm9vdAorICAtIGRlZmF1bHRzOgorICAgIGFwcF9uYW1lOiB7eyBhcHBfbmFtZSB9fQorCisvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vd3NnaS5weToKKyAgZmlsZS5tYW5hZ2VkOgorICAtIHNvdXJjZTogc2FsdDovL2hvcml6b24vZmlsZXMvd3NnaS5weQorICAtIHRlbXBsYXRlOiBqaW5qYQorICAtIG1vZGU6IDY0NAorICAtIHVzZXI6IHJvb3QKKyAgLSBncm91cDogcm9vdAorICAtIGRlZmF1bHRzOgorICAgIGFwcF9uYW1lOiB7eyBhcHBfbmFtZSB9fQorICAtIHJlcXVpcmU6CisgICAgLSBnaXQ6IHt7IGFwcF9uYW1lIH19X3t7IGFwcC5zb3VyY2UuYWRkcmVzcyB9fQorCit7JS0gaWYgYXBwLnBsdWdpbi5tZXJsaW5fcGFuZWxzIGlzIGRlZmluZWQgJX0KKworL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L2RhdGFiYXNlLmRiOgorICBmaWxlLm1hbmFnZWQ6CisgIC0gbW9kZTogNjY2CisgIC0gdXNlcjogaG9yaXpvbgorICAtIGdyb3VwOiBob3Jpem9uCisgIC0gcmVxdWlyZToKKyAgICAtIGdpdDoge3sgYXBwX25hbWUgfX1fe3sgYXBwLnNvdXJjZS5hZGRyZXNzIH19CisKK3slLSBlbmRpZiAlfQorCit7IworeyUtIGZvciBkYXNoYm9hcmRfbmFtZSwgZGFzaGJvYXJkIGluIGFwcC5wbHVnaW4uaXRlcml0ZW1zKCkgJX0KK3slLSBlbmRmb3IgJX0KKyN9CisKK3slLSBpZiBhcHAucGx1Z2luIGlzIGRlZmluZWQgJX0KKworL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L3BsdWdpbnM6CisgIGZpbGUuZGlyZWN0b3J5OgorICAtIG1ha2VkaXJzOiBUcnVlCisgIC0gcmVxdWlyZToKKyAgICAtIGdpdDoge3sgYXBwX25hbWUgfX1fe3sgYXBwLnNvdXJjZS5hZGRyZXNzIH19CisKK3slLSBmb3IgZGFzaGJvYXJkX25hbWUsIGRhc2hib2FyZCBpbiBhcHAuZ2V0KCdkYXNoYm9hcmRzJywge30pLml0ZXJpdGVtcygpICV9CisKK3slLSBpZiBhcHAuZ2V0KCd2ZXJzaW9uJywgJ2p1bm8nKSBpbiBbJ2tpbG8nLCAnaGVscGRlc2snXSAlfQorCitob3Jpem9uX3t7IGFwcF9uYW1lIH19X3t7IGRhc2hib2FyZF9uYW1lIH19X2NvbmZpZzoKKyAgZmlsZS5tYW5hZ2VkOgorICAtIG5hbWU6IC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9saWIvcHl0aG9ue3sgcGlsbGFyLnB5dGhvbi5lbnZpcm9ubWVudC5nZXQoInZlcnNpb24iLCAiMi43IikgfX0vc2l0ZS1wYWNrYWdlcy9vcGVuc3RhY2tfZGFzaGJvYXJkL2VuYWJsZWQvX3t7IGRhc2hib2FyZC5nZXQoJ29yZGVyJywgNzApIH19X3t7IGRhc2hib2FyZF9uYW1lIH19LnB5CisgIC0gc291cmNlOiBzYWx0Oi8vaG9yaXpvbi9maWxlcy9lbmFibGVkL3t7IGRhc2hib2FyZF9uYW1lIH19LnB5CisgIC0gdGVtcGxhdGU6IGppbmphCisgIC0gbW9kZTogNjQ0CisgIC0gdXNlcjogcm9vdAorICAtIGdyb3VwOiByb290CisgIC0gZGVmYXVsdHM6CisgICAgYXBwX25hbWU6IHt7IGFwcF9uYW1lIH19CisgICAgZW5hYmxlZDoge3sgZGFzaGJvYXJkLmVuYWJsZWQgfX0KKyAgLSByZXF1aXJlOgorICAgIC0gZ2l0OiB7eyBhcHBfbmFtZSB9fV97eyBhcHAuc291cmNlLmFkZHJlc3MgfX0KKworeyUtIGVuZGlmICV9CisKK3slLSBlbmRmb3IgJX0KKworCit7JS0gZm9yIHBsdWdpbl9uYW1lLCBwbHVnaW4gaW4gYXBwLnBsdWdpbi5pdGVyaXRlbXMoKSAlfQorCit7JS0gaWYgYXBwLmdldCgndmVyc2lvbicsICdqdW5vJykgaW4gWydraWxvJywgJ2hlbHBkZXNrJ10gJX0KKworaG9yaXpvbl97eyBhcHBfbmFtZSB9fV97eyBwbHVnaW5fbmFtZSB9fV9jb25maWc6CisgIGZpbGUubWFuYWdlZDoKKyAgLSBuYW1lOiAvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vbGliL3B5dGhvbnt7IHBpbGxhci5weXRob24uZW52aXJvbm1lbnQuZ2V0KCJ2ZXJzaW9uIiwgIjIuNyIpIH19L3NpdGUtcGFja2FnZXMvb3BlbnN0YWNrX2Rhc2hib2FyZC9sb2NhbC9lbmFibGVkL197eyBwbHVnaW4uZ2V0KCcKKyAgJywgNjApIH19X3t7IHBsdWdpbl9uYW1lIH19LnB5CisgIC0gc291cmNlOiBzYWx0Oi8vaG9yaXpvbi9maWxlcy9lbmFibGVkL3t7IHBsdWdpbl9uYW1lIH19LnB5CisgIC0gdGVtcGxhdGU6IGppbmphCisgIC0gbW9kZTogNjQ0CisgIC0gdXNlcjogcm9vdAorICAtIGdyb3VwOiByb290CisgIC0gZGVmYXVsdHM6CisgICAgYXBwX25hbWU6IHt7IGFwcF9uYW1lIH19CisgIC0gcmVxdWlyZToKKyAgICAtIGdpdDoge3sgYXBwX25hbWUgfX1fe3sgYXBwLnNvdXJjZS5hZGRyZXNzIH19CisKK3slLSBlbmRpZiAlfQorCit7eyBhcHBfbmFtZSB9fV97eyBwbHVnaW5fbmFtZSB9fToKKyAge3sgcGx1Z2luLnNvdXJjZS5lbmdpbmUgfX0ubGF0ZXN0OgorICAtIG5hbWU6IHt7IHBsdWdpbi5zb3VyY2UuYWRkcmVzcyB9fQorICAtIHRhcmdldDogL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L3BsdWdpbnMve3sgcGx1Z2luX25hbWUgfX0KKyAgLSByZXY6IHt7IHBsdWdpbi5zb3VyY2UucmV2aXNpb24gfX0KKyAgLSBzdWJtb2R1bGVzOiBUcnVlCisgIC0gcmVxdWlyZToKKyAgICAtIGZpbGU6IC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9wbHVnaW5zCisgIC0gcmVxdWlyZV9pbjoKKyAgICAtIGNtZDogaG9yaXpvbl9zZXR1cF97eyBhcHBfbmFtZSB9fQorCit7JS0gaWYgcGx1Z2luX25hbWUgPT0gImNvbnRyYWlsIiBhbmQgYXBwLmdldCgidmVyc2lvbiIsICJqdW5vIikgaW4gWyJqdW5vIiwgImtpbG8iLCAnaGVscGRlc2snXSAlfQorCitmaXhfY29udHJhaWxfe3sgYXBwX25hbWUgfX06CisgIGNtZC5ydW46CisgIC0gbmFtZTogc291cmNlIC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9iaW4vYWN0aXZhdGU7IHBpcCBpbnN0YWxsIGdpdCtodHRwczovL2dpdGh1Yi5jb20vSnVuaXBlci9weXRob24tbmV1dHJvbmNsaWVudC5naXRAY29udHJhaWwvanVubyNlZ2c9cHl0aG9uLW5ldXRyb25jbGllbnQgLS11cGdyYWRlIC0tbm8tZGVwcworICAtIGN3ZDogL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19CisKK3slLSBlbmRpZiAlfQorCit7JS0gaWYgcGx1Z2luX25hbWUgPT0gImhvcml6b25fdGhlbWUiIGFuZCBhcHAuZ2V0KCJ2ZXJzaW9uIiwgImp1bm8iKSBpbiBbImtpbG8iLCAnaGVscGRlc2snXSAlfQorCisvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vbG9jYWwvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL29wZW5zdGFja19kYXNoYm9hcmQvZGFzaGJvYXJkcy90aGVtZToKKyAgZmlsZS5zeW1saW5rOgorICAtIHRhcmdldDogL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L3BsdWdpbnMve3sgcGx1Z2luX25hbWUgfX0vaG9yaXpvbl90aGVtZS9kYXNoYm9hcmRzL3RoZW1lCisgIC0gdXNlcjogcm9vdAorICAtIGdyb3VwOiByb290CisgIC0gcmVxdWlyZToKKyAgICAtIGdpdDoge3sgYXBwX25hbWUgfX1fe3sgYXBwLnNvdXJjZS5hZGRyZXNzIH19CisKKy9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fS9sb2NhbC9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvb3BlbnN0YWNrX2Rhc2hib2FyZC9zdGF0aWMvdGhlbWVzL3t7IHBsdWdpbi50aGVtZV9uYW1lIH19OgorICBmaWxlLnN5bWxpbms6CisgIC0gdGFyZ2V0OiAvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vcGx1Z2lucy97eyBwbHVnaW5fbmFtZSB9fS9ob3Jpem9uX3RoZW1lL2Rhc2hib2FyZHMvdGhlbWUvc3RhdGljL3RoZW1lcy97eyBwbHVnaW4udGhlbWVfbmFtZSB9fQorICAtIHVzZXI6IHJvb3QKKyAgLSBncm91cDogcm9vdAorICAtIHJlcXVpcmU6CisgICAgLSBnaXQ6IHt7IGFwcF9uYW1lIH19X3t7IGFwcC5zb3VyY2UuYWRkcmVzcyB9fQorCit7JS0gZW5kaWYgJX0KKworeyUtIGVuZGZvciAlfQorCit7JS0gZW5kaWYgJX0KKworaG9yaXpvbl9zZXR1cF97eyBhcHBfbmFtZSB9fToKKyAgY21kLnJ1bjoKKyAgLSBuYW1lczoKKyAgICAtIHNvdXJjZSAvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vYmluL2FjdGl2YXRlOyBweXRob24gbWFuYWdlLnB5IGNvbGxlY3RzdGF0aWMgLS1ub2lucHV0OyBweXRob24gbWFuYWdlLnB5IGNvbXByZXNzIC0tZm9yY2UKKyAgICB7JS0gaWYgYXBwLnBsdWdpbi5tZXJsaW5fcGFuZWxzIGlzIGRlZmluZWQgJX0KKyAgICAtIHNvdXJjZSAvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vYmluL2FjdGl2YXRlOyBweXRob24gbWFuYWdlLnB5IHN5bmNkYiAtLW5vaW5wdXQKKyAgICB7JS0gZW5kaWYgJX0KKyAgICAtIGNob3duIGhvcml6b246aG9yaXpvbiBzdGF0aWMgLVIKKyAgLSBjd2Q6IC9zcnYvaG9yaXpvbi9zaXRlcy97eyBhcHBfbmFtZSB9fQorICAtIHJlcXVpcmU6CisgICAgLSBmaWxlOiAvc3J2L2hvcml6b24vc2l0ZXMve3sgYXBwX25hbWUgfX0vbWFuYWdlLnB5CisgICAgLSBnaXQ6IHt7IGFwcF9uYW1lIH19X3t7IGFwcC5zb3VyY2UuYWRkcmVzcyB9fQorICAgIHslLSBpZiBhcHAuZ2V0KCd2ZXJzaW9uJywgJ2p1bm8nKSBpbiBbJ2p1bm8nXSAlfQorICAgIC0gY21kOiBob3Jpem9uX3NldHVwX3t7IGFwcF9uYW1lIH19X2hvcml6b24KKyAgICB7JS0gZW5kaWYgJX0KKworL3Nydi9ob3Jpem9uL3NpdGVzL3t7IGFwcF9uYW1lIH19L2d1bmljb3JuX3N0YXJ0OgorICBmaWxlLm1hbmFnZWQ6CisgIC0gc291cmNlOiBzYWx0Oi8vaG9yaXpvbi9maWxlcy9ndW5pY29ybl9zdGFydAorICAtIHRlbXBsYXRlOiBqaW5qYQorICAtIG1vZGU6IDc3NworICAtIHVzZXI6IGhvcml6b24KKyAgLSBncm91cDogaG9yaXpvbgorICAtIGRlZmF1bHRzOgorICAgIGFwcF9uYW1lOiB7eyBhcHBfbmFtZSB9fQorICAtIHJlcXVpcmU6CisgICAgLSBjbWQ6IGhvcml6b25fc2V0dXBfe3sgYXBwX25hbWUgfX0KKworeyUtIGVuZGZvciAlfQorCit7JS0gZW5kaWYgJX0KZGlmZiAtLWdpdCBhL2hvcml6b24vc2VydmVyL3NpbmdsZS9pbml0LnNscyBiL2hvcml6b24vc2VydmVyL3NpbmdsZS9pbml0LnNscwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2IwNDI5Ci0tLSAvZGV2L251bGwKKysrIGIvaG9yaXpvbi9zZXJ2ZXIvc2luZ2xlL2luaXQuc2xzCkBAIC0wLDAgKzEsMTQ5IEBACit7JS0gZnJvbSAiaG9yaXpvbi9tYXAuamluamEiIGltcG9ydCBzZXJ2ZXIgd2l0aCBjb250ZXh0ICV9Cit7JS0gaWYgc2VydmVyLmVuYWJsZWQgJX0KKworeyUtIGlmIChzZXJ2ZXIuc3NsIGlzIGRlZmluZWQpIG9yIChzZXJ2ZXIucGx1Z2lucyBpcyBkZWZpbmVkKSAlfQorCitpbmNsdWRlOgoreyUgaWYgc2VydmVyLnNzbCBpcyBkZWZpbmVkICV9CistIGhvcml6b24uc2VydmVyLnNpbmdsZS5zc2wKK3slIGVuZGlmICV9Cit7JS0gaWYgc2VydmVyLnBsdWdpbnMgaXMgZGVmaW5lZCAlfQorLSBob3Jpem9uLnNlcnZlci5zaW5nbGUucGx1Z2lucworeyUtIGVuZGlmICV9CisKK3slLSBlbmRpZiAlfQorCit7JS0gaWYgc2VydmVyLnRoZW1lIGlzIGRlZmluZWQgJX0KKwore3sgc2VydmVyLnRoZW1lIH19X3RoZW1lX3BhY2thZ2U6CisgIHBrZy5pbnN0YWxsZWQ6CisgIC0gbmFtZTogb3BlbnN0YWNrLWRhc2hib2FyZC17eyBzZXJ2ZXIudGhlbWUgfX0tdGhlbWUKKyAgLSByZXF1aXJlOgorICAgIC0gcGtnOiBob3Jpem9uX3BhY2thZ2VzCisgIC0gd2F0Y2hfaW46CisgICAgLSBzZXJ2aWNlOiBob3Jpem9uX3NlcnZpY2VzCisgICAgLSBjbWQ6IGhvcml6b25fY29sbGVjdHN0YXRpYworICAtIHJlcXVpcmU6CisgICAgLSBwa2c6IGhvcml6b25fdWJ1bnR1X3RoZW1lX2Fic2VudAorCitob3Jpem9uX3VidW50dV90aGVtZV9hYnNlbnQ6CisgIHBrZy5wdXJnZWQ6CisgIC0gbmFtZTogb3BlbnN0YWNrLWRhc2hib2FyZC11YnVudHUtdGhlbWUKKyAgLSB3YXRjaF9pbjoKKyAgICAtIGNtZDogaG9yaXpvbl9jb2xsZWN0c3RhdGljCisKK3slLSBlbmRpZiAlfQorCitob3Jpem9uX2NvbGxlY3RzdGF0aWM6CisgIGNtZC53YWl0OgorICAtIG5hbWVzOgorICAgIC0gcHl0aG9uIG1hbmFnZS5weSBjb2xsZWN0c3RhdGljIC0tbm9pbnB1dDsgcHl0aG9uIG1hbmFnZS5weSBjb21wcmVzcyAtLWZvcmNlCisgIC0gY3dkOiAvdXNyL3NoYXJlL29wZW5zdGFjay1kYXNoYm9hcmQKKworaG9yaXpvbl9wYWNrYWdlczoKKyAgcGtnLmluc3RhbGxlZDoKKyAgLSBuYW1lczoge3sgc2VydmVyLnBrZ3MgfX0KKworeyUgaWYgc2VydmVyLmdldCgnY29udHJhaWwnLCBGYWxzZSkgJX0KKworaG9yaXpvbl9jb250cmFpbF9wYWNrYWdlczoKKyAgcGtnLmluc3RhbGxlZDoKKyAgLSBuYW1lOiBjb250cmFpbC1vcGVuc3RhY2stZGFzaGJvYXJkCisKK3slIGVuZGlmICV9CisKK2hvcml6b25fY29uZmlnOgorICBmaWxlLm1hbmFnZWQ6CisgIC0gbmFtZToge3sgc2VydmVyLmNvbmZpZyB9fQorICAtIHNvdXJjZTogc2FsdDovL2hvcml6b24vZmlsZXMvbG9jYWxfc2V0dGluZ3Mve3sgc2VydmVyLnZlcnNpb24gfX1fc2V0dGluZ3MucHkKKyAgLSB0ZW1wbGF0ZTogamluamEKKyAgLSBtb2RlOiA2NDQKKyAgLSB1c2VyOiByb290CisgIC0gZ3JvdXA6IHJvb3QKKyAgLSByZXF1aXJlOgorICAgIC0gcGtnOiBob3Jpem9uX3BhY2thZ2VzCisKK3slLSBpZiBncmFpbnMub3NfZmFtaWx5ID09ICdSZWRIYXQnICV9CisKK2hvcml6b25fYXBhY2hlX3BvcnRfY29uZmlnOgorICBmaWxlLm1hbmFnZWQ6CisgIC0gbmFtZTogL2V0Yy9odHRwZC9jb25mL2h0dHBkLmNvbmYKKyAgLSBzb3VyY2U6IHNhbHQ6Ly9ob3Jpem9uL2NvbmYvaHR0cGQuY29uZi5SZWRIYXQKKyAgLSB0ZW1wbGF0ZTogamluamEKKyAgLSBtb2RlOiA2NDQKKyAgLSB1c2VyOiByb290CisgIC0gZ3JvdXA6IHJvb3QKKyAgLSByZXF1aXJlX2luOgorICAgIC0gc2VydmljZTogaG9yaXpvbl9zZXJ2aWNlcworICAtIHJlcXVpcmU6CisgICAgLSBwa2c6IGhvcml6b25fcGFja2FnZXMKKworeyUtIGVuZGlmICV9CisKK3slLSBpZiBncmFpbnMub3NfZmFtaWx5ID09ICdEZWJpYW4nICV9CisKK2hvcml6b25fYXBhY2hlX3BvcnRfY29uZmlnOgorICBmaWxlLm1hbmFnZWQ6CisgIC0gbmFtZTogL2V0Yy9hcGFjaGUyL3BvcnRzLmNvbmYKKyAgLSBzb3VyY2U6IHNhbHQ6Ly9ob3Jpem9uL2NvbmYvcG9ydHMuY29uZgorICAtIHRlbXBsYXRlOiBqaW5qYQorICAtIG1vZGU6IDY0NAorICAtIHVzZXI6IHJvb3QKKyAgLSBncm91cDogcm9vdAorICAtIHJlcXVpcmVfaW46CisgICAgLSBzZXJ2aWNlOiBob3Jpem9uX3NlcnZpY2VzCisgIC0gcmVxdWlyZToKKyAgICAtIHBrZzogaG9yaXpvbl9wYWNrYWdlcworCit7JS0gZW5kaWYgJX0KKworaG9yaXpvbl9hcGFjaGVfY29uZmlnOgorICBmaWxlLm1hbmFnZWQ6CisgIC0gbmFtZToge3sgc2VydmVyLmFwYWNoZV9jb25maWcgfX0KKyAgLSBzb3VyY2U6IHNhbHQ6Ly9ob3Jpem9uL2NvbmYvb3BlbnN0YWNrLWRhc2hib2FyZC5jb25mLnt7IGdyYWlucy5vc19mYW1pbHkgfX0KKyAgLSB0ZW1wbGF0ZTogamluamEKKyAgLSBtb2RlOiA2NDQKKyAgLSB1c2VyOiByb290CisgIC0gZ3JvdXA6IHJvb3QKKyAgLSByZXF1aXJlOgorICAgIC0gcGtnOiBob3Jpem9uX3BhY2thZ2VzCisKK2hvcml6b25fc2VydmljZXM6CisgIHNlcnZpY2UucnVubmluZzoKKyAgLSBuYW1lOiB7eyBzZXJ2ZXIuc2VydmljZSB9fQorICAtIGVuYWJsZTogdHJ1ZQorICAtIHdhdGNoOgorICAgIC0gZmlsZTogaG9yaXpvbl9jb25maWcKKyAgICAtIGZpbGU6IGhvcml6b25fYXBhY2hlX2NvbmZpZworICAgIC0gZmlsZTogaG9yaXpvbl9sb2dfZGlyCisKK2hvcml6b25fbG9nX2RpcjoKKyAgZmlsZS5kaXJlY3Rvcnk6CisgICAgLSBuYW1lOiAvdmFyL2xvZy9ob3Jpem9uCisgICAgLSB1c2VyOiBob3Jpem9uCisgICAgLSBncm91cDogYWRtCisgICAgLSBtb2RlOiA3NTAKKworeyUtIGlmIHNlcnZlci5nZXQoJ2FwaV92ZXJzaW9ucycsIHt9KS5pZGVudGl0eSBpcyBkZWZpbmVkICV9CisKK2hvcml6b25fa2V5c3RvbmVfcG9saWN5OgorICBmaWxlLm1hbmFnZWQ6CisgIC0gbmFtZTogL3Vzci9zaGFyZS9vcGVuc3RhY2stZGFzaGJvYXJkL29wZW5zdGFja19kYXNoYm9hcmQvY29uZi9rZXlzdG9uZV9wb2xpY3kuanNvbgorICB7JS0gaWYgc2VydmVyLmdldCgnYXBpX3ZlcnNpb25zJywge30pLmlkZW50aXR5ID09ICczJyAlfQorICAtIHNvdXJjZTogc2FsdDovL2hvcml6b24vZmlsZXMvcG9saWN5L3t7IHNlcnZlci52ZXJzaW9uIH19LWtleXN0b25lLXYzLmpzb24KKyAgeyUtIGVsc2UgJX0KKyAgLSBzb3VyY2U6IHNhbHQ6Ly9ob3Jpem9uL2ZpbGVzL3BvbGljeS97eyBzZXJ2ZXIudmVyc2lvbiB9fS1rZXlzdG9uZS12Mi5qc29uCisgIHslLSBlbmRpZiAlfQorCit7JS0gZW5kaWYgJX0KKworeyUtIGlmIHNlcnZlci5sb2dnaW5nIGlzIGRlZmluZWQgJX0KKworIyBUT0RPOiBwYWNrYWdlIHRoaXMKK3JhdmVuOgorICBwaXAuaW5zdGFsbGVkOgorICAgIC0gbmFtZTogcmF2ZW4gPj0gNAorCit7JS0gZW5kaWYgJX0KKworeyUtIGVuZGlmICV9CmRpZmYgLS1naXQgYS9ob3Jpem9uL3NlcnZlci9zaW5nbGUvcGx1Z2lucy5zbHMgYi9ob3Jpem9uL3NlcnZlci9zaW5nbGUvcGx1Z2lucy5zbHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWM2YjQwNQotLS0gL2Rldi9udWxsCisrKyBiL2hvcml6b24vc2VydmVyL3NpbmdsZS9wbHVnaW5zLnNscwpAQCAtMCwwICsxLDE0IEBACit7JS0gZnJvbSAiaG9yaXpvbi9tYXAuamluamEiIGltcG9ydCBzZXJ2ZXIgd2l0aCBjb250ZXh0ICV9CisKK3slLSBmb3IgcGx1Z2luIGluIHNlcnZlci5nZXQoJ3BsdWdpbnMnLCBbXSkgJX0KKwore3sgcGx1Z2luIH19X3BhY2thZ2U6CisgIHBrZy5pbnN0YWxsZWQ6CisgIC0gbmFtZTogb3BlbnN0YWNrLWRhc2hib2FyZC17eyBwbHVnaW4gfX0KKyAgLSByZXF1aXJlOgorICAgIC0gcGtnOiBob3Jpem9uX3BhY2thZ2VzCisgIC0gd2F0Y2hfaW46CisgICAgLSBzZXJ2aWNlOiBob3Jpem9uX3NlcnZpY2VzCisgICAgLSBjbWQ6IGhvcml6b25fY29sbGVjdHN0YXRpYworCit7JS0gZW5kZm9yICV9CmRpZmYgLS1naXQgYS9ob3Jpem9uL3NlcnZlci9zaW5nbGUvc3NsLnNscyBiL2hvcml6b24vc2VydmVyL3NpbmdsZS9zc2wuc2xzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyOTc2OGMKLS0tIC9kZXYvbnVsbAorKysgYi9ob3Jpem9uL3NlcnZlci9zaW5nbGUvc3NsLnNscwpAQCAtMCwwICsxLDYyIEBACit7JS0gZnJvbSAiaG9yaXpvbi9tYXAuamluamEiIGltcG9ydCBzZXJ2ZXIgd2l0aCBjb250ZXh0ICV9CisKK3slLSBpZiBzZXJ2ZXIuc3NsLmVuYWJsZWQgJX0KKworaG9yaXpvbl9zc2xfcGFja2FnZXM6CisgIHBrZy5pbnN0YWxsZWQ6CisgIC0gbmFtZXM6IHt7IHNlcnZlci5zc2xfcGtncyB9fQorICAtIHdhdGNoX2luOgorICAgIC0gZmlsZTogaG9yaXpvbl9jb25maWcKKworeyUgaWYgZ3JhaW5zLm9zX2ZhbWlseSA9PSAnUmVkSGF0JyAlfQorCitob3Jpem9uX2FwYWNoZV9zc2xfY29uZmlnOgorICBmaWxlLm1hbmFnZWQ6CisgIC0gbmFtZTogL2V0Yy9odHRwZC9jb25mLmQvc3NsLmNvbmYKKyAgLSBzb3VyY2U6IHNhbHQ6Ly9ob3Jpem9uL2NvbmYvc3NsLmNvbmYue3sgZ3JhaW5zLm9zX2ZhbWlseSB9fQorICAtIHRlbXBsYXRlOiBqaW5qYQorICAtIG1vZGU6IDY0NAorICAtIHVzZXI6IHJvb3QKKyAgLSBncm91cDogcm9vdAorICAtIHJlcXVpcmU6CisgICAgLSBwa2c6IGhvcml6b25fcGFja2FnZXMKKworeyUgZW5kaWYgJX0KKwore3sgc2VydmVyLmNlcnRzX2RpciB9fS97eyBzZXJ2ZXIuaG9zdC5uYW1lIH19LmNydDoKKyAgZmlsZS5tYW5hZ2VkOgorICB7JS0gaWYgc2VydmVyLmNlcnQgaXMgZGVmaW5lZCAlfQorICAtIGNvbnRlbnRzX3BpbGxhcjogaG9yaXpvbjpzZXJ2ZXI6Y2VydAorICB7JS0gZWxzZSAlfQorICAtIHNvdXJjZTogc2FsdDovL3BraS97eyBzZXJ2ZXIuc3NsLmF1dGhvcml0eSB9fS9jZXJ0cy97eyBzZXJ2ZXIuaG9zdC5uYW1lIH19LmNlcnQucGVtCisgIHslLSBlbmRpZiAlfQorICAtIHJlcXVpcmU6CisgICAgLSBwa2c6IGhvcml6b25fcGFja2FnZXMKKyAgLSByZXF1aXJlX2luOgorICAgIC0gc2VydmljZTogaG9yaXpvbl9zZXJ2aWNlcworCit7eyBzZXJ2ZXIucHJpdmF0ZV9kaXIgfX0ve3sgc2VydmVyLmhvc3QubmFtZSB9fS5rZXk6CisgIGZpbGUubWFuYWdlZDoKKyAgeyUtIGlmIHNlcnZlci5rZXkgaXMgZGVmaW5lZCAlfQorICAtIGNvbnRlbnRzX3BpbGxhcjogaG9yaXpvbjpzZXJ2ZXI6a2V5CisgIHslLSBlbHNlICV9CisgIC0gc291cmNlOiBzYWx0Oi8vcGtpL3t7IHNlcnZlci5zc2wuYXV0aG9yaXR5IH19L2NlcnRzL3t7IHNlcnZlci5ob3N0Lm5hbWUgfX0ua2V5LnBlbQorICB7JS0gZW5kaWYgJX0KKyAgLSByZXF1aXJlOgorICAgIC0gcGtnOiBob3Jpem9uX3BhY2thZ2VzCisgIC0gcmVxdWlyZV9pbjoKKyAgICAtIHNlcnZpY2U6IGhvcml6b25fc2VydmljZXMKKwore3sgc2VydmVyLmNlcnRzX2RpciB9fS97eyBzZXJ2ZXIuc3NsLmF1dGhvcml0eSB9fS1jaGFpbi5jcnQ6CisgIGZpbGUubWFuYWdlZDoKKyAgeyUtIGlmIHNlcnZlci5jaGFpbiBpcyBkZWZpbmVkICV9CisgIC0gY29udGVudHNfcGlsbGFyOiBob3Jpem9uOnNlcnZlcjpjaGFpbgorICB7JS0gZWxzZSAlfQorICAtIHNvdXJjZTogc2FsdDovL3BraS97eyBzZXJ2ZXIuc3NsLmF1dGhvcml0eSB9fS97eyBzZXJ2ZXIuc3NsLmF1dGhvcml0eSB9fS1jaGFpbi5jZXJ0LnBlbQorICB7JS0gZW5kaWYgJX0KKyAgLSByZXF1aXJlOgorICAgIC0gcGtnOiBob3Jpem9uX3BhY2thZ2VzCisgIC0gcmVxdWlyZV9pbjoKKyAgICAtIHNlcnZpY2U6IGhvcml6b25fc2VydmljZXMKKworeyUtIGVuZGlmICV9CmRpZmYgLS1naXQgYS9tZXRhZGF0YS9zZXJ2aWNlL3NlcnZlci9jbHVzdGVyLnltbCBiL21ldGFkYXRhL3NlcnZpY2Uvc2VydmVyL2NsdXN0ZXIueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ZDMzOTYKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhZGF0YS9zZXJ2aWNlL3NlcnZlci9jbHVzdGVyLnltbApAQCAtMCwwICsxLDUzIEBACithcHBsaWNhdGlvbnM6CistIGhvcml6b24KK3BhcmFtZXRlcnM6CisgIF9wYXJhbToKKyAgICBob3Jpem9uX3ZlcnNpb246IGtpbG8KKyAgICBob3Jpem9uX2FwaV92ZXJzaW9uOiAzCisgIGhvcml6b246CisgICAgc2VydmVyOgorICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgdmVyc2lvbjogJHtfcGFyYW06aG9yaXpvbl92ZXJzaW9ufQorICAgICAgc2VjcmV0X2tleTogJHtfcGFyYW06aG9yaXpvbl9zZWNyZXRfa2V5fQorICAgICAgd3NnaToKKyAgICAgICAgcHJvY2Vzc2VzOiAzCisgICAgICAgIHRocmVhZHM6IDEwCisgICAgICBiaW5kOgorICAgICAgICBhZGRyZXNzOiAke19wYXJhbTpjbHVzdGVyX2xvY2FsX2FkZHJlc3N9CisgICAgICAgIHBvcnQ6IDgwCisgICAgICBjYWNoZToKKyAgICAgICAgZW5naW5lOiBtZW1jYWNoZWQKKyAgICAgICAgcHJlZml4OiAnQ0FDSEVfSE9SSVpPTicKKyAgICAgICAgbWVtYmVyczogCisgICAgICAgIC0gaG9zdDogJHtfcGFyYW06Y2x1c3Rlcl9ub2RlMDFfYWRkcmVzc30KKyAgICAgICAgICBwb3J0OiAxMTIxMQorICAgICAgICAtIGhvc3Q6ICR7X3BhcmFtOmNsdXN0ZXJfbm9kZTAyX2FkZHJlc3N9CisgICAgICAgICAgcG9ydDogMTEyMTEKKyAgICAgICAgLSBob3N0OiAke19wYXJhbTpjbHVzdGVyX25vZGUwM19hZGRyZXNzfQorICAgICAgICAgIHBvcnQ6IDExMjExCisgICAgICBpZGVudGl0eToKKyAgICAgICAgZW5naW5lOiBrZXlzdG9uZQorICAgICAgICBob3N0OiAke19wYXJhbTpjbHVzdGVyX3ZpcF9hZGRyZXNzfQorICAgICAgICBwb3J0OiA1MDAwCisgICAgICAgIGFwaV92ZXJzaW9uOiAyCisgIGhhcHJveHk6CisgICAgcHJveHk6CisgICAgICBsaXN0ZW5zOgorICAgICAgLSBuYW1lOiBob3Jpem9uCisgICAgICAgIHR5cGU6IGhvcml6b24KKyAgICAgICAgYmluZHM6CisgICAgICAgIC0gYWRkcmVzczogJHtfcGFyYW06Y2x1c3Rlcl92aXBfYWRkcmVzc30KKyAgICAgICAgICBwb3J0OiA4MAorICAgICAgICBzZXJ2ZXJzOgorICAgICAgICAtIG5hbWU6IGN0bDAxCisgICAgICAgICAgaG9zdDogJHtfcGFyYW06Y2x1c3Rlcl9ub2RlMDFfYWRkcmVzc30KKyAgICAgICAgICBwb3J0OiA4MAorICAgICAgICAgIHBhcmFtczogY29va2llIGN0bDAxIGNoZWNrIGludGVyIDIwMDAgZmFsbCAzCisgICAgICAgIC0gbmFtZTogY3RsMDIKKyAgICAgICAgICBob3N0OiAke19wYXJhbTpjbHVzdGVyX25vZGUwMl9hZGRyZXNzfQorICAgICAgICAgIHBvcnQ6IDgwCisgICAgICAgICAgcGFyYW1zOiBjb29raWUgY3RsMDIgY2hlY2sgaW50ZXIgMjAwMCBmYWxsIDMKKyAgICAgICAgLSBuYW1lOiBjdGwwMworICAgICAgICAgIGhvc3Q6ICR7X3BhcmFtOmNsdXN0ZXJfbm9kZTAzX2FkZHJlc3N9CisgICAgICAgICAgcG9ydDogODAKKyAgICAgICAgICBwYXJhbXM6IGNvb2tpZSBjdGwwMyBjaGVjayBpbnRlciAyMDAwIGZhbGwgMwpkaWZmIC0tZ2l0IGEvbWV0YWRhdGEvc2VydmljZS9zZXJ2ZXIvbXVsdGkueW1sIGIvbWV0YWRhdGEvc2VydmljZS9zZXJ2ZXIvbXVsdGkueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyNzA5NmMKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhZGF0YS9zZXJ2aWNlL3NlcnZlci9tdWx0aS55bWwKQEAgLTAsMCArMSw2IEBACithcHBsaWNhdGlvbnM6CistIGhvcml6b24KK3BhcmFtZXRlcnM6CisgIGhvcml6b246CisgICAgc2VydmVyOgorICAgICAgZW5hYmxlZDogdHJ1ZQpkaWZmIC0tZ2l0IGEvbWV0YWRhdGEvc2VydmljZS9zZXJ2ZXIvc2luZ2xlLnltbCBiL21ldGFkYXRhL3NlcnZpY2Uvc2VydmVyL3NpbmdsZS55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTcwOTJmZgotLS0gL2Rldi9udWxsCisrKyBiL21ldGFkYXRhL3NlcnZpY2Uvc2VydmVyL3NpbmdsZS55bWwKQEAgLTAsMCArMSwzMyBAQAorYXBwbGljYXRpb25zOgorLSBob3Jpem9uCitwYXJhbWV0ZXJzOgorICBfcGFyYW06CisgICAgaG9yaXpvbl92ZXJzaW9uOiBraWxvCisgICAgaG9yaXpvbl9pZGVudGl0eV9ob3N0OiBraWxvCisgICAgaG9yaXpvbl9pZGVudGl0eV92ZXJzaW9uOiAzCisgIGhvcml6b246CisgICAgc2VydmVyOgorICAgICAgZW5hYmxlZDogdHJ1ZQorICAgICAgdmVyc2lvbjogJHtfcGFyYW06aG9yaXpvbl92ZXJzaW9ufQorICAgICAgc2VjcmV0X2tleTogJHtfcGFyYW06aG9yaXpvbl9zZWNyZXRfa2V5fQorICAgICAgYmluZDoKKyAgICAgICAgYWRkcmVzczogJHtfcGFyYW06c2luZ2xlX2FkZHJlc3N9CisgICAgICAgIHBvcnQ6IDgwCisgICAgICBtYWlsOgorICAgICAgICBlbmdpbmU6IGR1bW15CisgICAgICBjYWNoZToKKyAgICAgICAgZW5naW5lOiBtZW1jYWNoZWQKKyAgICAgICAgcHJlZml4OiAnQ0FDSEVfSE9SSVpPTicKKyAgICAgICAgbWVtYmVyczoKKyAgICAgICAgLSBob3N0OiAke19wYXJhbTpzaW5nbGVfYWRkcmVzc30KKyAgICAgICAgICBwb3J0OiAxMTIxMQorICAgICAgd3NnaToKKyAgICAgICAgcHJvY2Vzc2VzOiAzCisgICAgICAgIHRocmVhZHM6IDEwCisgICAgICBpZGVudGl0eToKKyAgICAgICAgZW5naW5lOiBrZXlzdG9uZQorICAgICAgICBob3N0OiAke19wYXJhbTpzaW5nbGVfYWRkcmVzc30KKyAgICAgICAgcG9ydDogNTAwMAorICAgICAgICBob3N0OiAke19wYXJhbTpob3Jpem9uX2lkZW50aXR5X2hvc3R9CisgICAgICAgIGVuY3J5cHRpb246ICR7X3BhcmFtOmhvcml6b25faWRlbnRpdHlfZW5jcnlwdGlvbn0KKyAgICAgICAgYXBpX3ZlcnNpb246ICR7X3BhcmFtOmhvcml6b25faWRlbnRpdHlfdmVyc2lvbn0K