MjAwMy0xMi0yOSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdhcy9jb25maWcvdGMtYXJtLmMgKGFybV9jcHVzKTogQWRkIDkyNmVqcyBhbmQgMTAyNmVqcy4KCSogZ2FzL2RvYy9jLWFybS50ZXhpOiBEb2N1bWVudCB0aGVtLgoKMjAwMy0yMy0xMiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX2FyY2hzKTogQWRkIGFybXY2LgoJKiBkb2MvYy1hcm0udGV4aTogRG9jdW1lbnQgLW1hcmNoPWFybXY2LgoKMjAwMy0xMi0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfYXBwbHlfZml4Myk6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhCgkuYnl0ZSBkaXJlY3RpdmUgZ2VuZXJhdGVzIGEgcGMtcmVsYXRpdmUgcmVsb2NhdGlvbi4KCjIwMDMtMTItMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgkgICAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIG1lc3NhZ2VzLmMgKGFzX3BlcnJvcik6IFNhdmUgZXJybm8gYXJvdW5kIGxpYnJhcnkgY2FsbHMuCgkqIGlucHV0LWZpbGUuYyBbQkZEX0FTU0VNQkxFUl06IFNldCB0aGUgQkZEIGVycm9yIHRvCgliZmRfZXJyb3Jfc3lzdGVtX2NhbGwgYmVmb3JlIGVhY2ggY2FsbCB0byBhc19wZXJyb3IuCgkoaW5wdXRfZmlsZV9vcGVuKTogU2ltcGxpZnkgdGhlIGVycm9yIHJlcG9ydGluZyBjb2RlIHRvIGp1c3QgdXNlCglhc19wZXJyb3IoKS4KCSogb3V0cHV0LWZpbGUuYyAob3V0cHV0X2ZpbGVfY3JlYXRlKSBbQkZEX0FTU0VNQkxFUl06IFNldCB0aGUgQkZECgllcnJvciB0byBiZmRfZXJyb3Jfc3lzdGVtX2NhbGwgYmVmb3JlIGNhbGxpbmcgYXNfcGVycm9yLgoJKG91dHB1dF9maWxlX2Nsb3NlKSBbQkZEX0FTU0VNQkxFUl06IExpa2V3aXNlLgoJKG91dHB1dF9maWxlX2FwcGVuZCkgW0JGRF9BU1NFTUJMRVJdOiBMaWtld2lzZS4KCSogbGlzdGluZy5jIChsaXN0aW5nX3ByaW50KSBbQkZEX0FTU0VNQkxFUl06IExpa2V3aXNlLgoKMjAwMy0xMi0xOSAgS2F6dWhpcm8gSW5hb2thIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJQWRkIG0zMnItbGludXggYW5kIFBJQyBzdXBwb3J0LiAgQWRkIG5ldyBBQkkgdGhhdCB1c2VzIFJFTEEuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIG0zMnItbGludXggdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtbTMyci5jIChtZF9wYXJzZV9vcHRpb24pOiBBZGQgLUtQSUMgb3B0aW9uLgoJKHRjX2dlbl9yZWxvYyk6IEFkZGVkLgoJKGRlYnVnX3N5bSwgbWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgsIG1kX2NvbnZlcnRfZnJhZywKCW1kX3BjcmVsX2Zyb21fc2VjdGlvbiwgbTMycl9maXhfYWRqdXN0YWJsZSk6IENoYW5nZWQgZm9yIFBJQy4KCSogY29uZmlnL3RjLW0zMnIuaCAodGNfZ2VuX3JlbG9jLCBFWFRFUk5fRk9SQ0VfUkVMT0MpOiBVbmRlZmluZWQuCgkoVENfSEFORExFU19GWF9ET05FLCBUQ19GSVhfQURKVVNUQUJMRSwgVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKToKCURlZmluZWQuCgkqIGRvYy9jLW0zMnIudGV4aTogRG9jdW1lbnQgLUtQSUMgb3B0aW9uLgoJKiBORVdTOiBNZW50aW9uIHRoZSBzdXBwb3J0IG0zMnIgTGludXggYW5kIFBJQy4KCjIwMDMtMTItMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBpbnB1dC1maWxlLmMgKGlucHV0X2ZpbGVfb3Blbik6IFJlbW92ZSBjYWxsIHRvIHN0YXQoKS4KCUFkZCBhIGNoZWNrIGZvciBnZXRjKCkgZmFpbGluZywgYW5kIGNhdGNoIHRoZSBjYXNlIHdoZXJlIHRoZQoJZmFpbHVyZSBpcyBkdWUgdG8gYW4gYXR0ZW1wdCB0byByZWFkIGEgZGlyZWN0b3J5LgoKMjAwMy0xMi0xOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19uZWVkX2VsZl9hZGRlbmRfZml4dXApOiBEZWxldGUuCgkobWRfYXBwbHlfZml4Myk6IFJlbW92ZSBiZmRfaW5zdGFsbF9yZWxvY2F0aW9uIHdvcmthcm91bmRzLgoJKHRjX2dlbl9yZWxvYyk6IExpa2V3aXNlLiBGYWN0b3IgaGFuZGxpbmcgb2YgcGMtcmVsYXRpdmUgcmVsb2NhdGlvbnMKCWFuZCB0cmVhdCBmeF9hZGRudW1iZXIgYXMgcmVsYXRpdmUgdG8gdGhlIHJlbG9jYXRpb24gYWRkcmVzcy4KCjIwMDMtMTItMTggIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfY2hhbmdlX3NlY3Rpb24pOiBXaGVuIHBhcnNpbmcgdGhlIE1JUFMtc3BlY2lmaWMKCS5zZWN0aW9uIHN5bnRheCwgbWFwIFNIVF9NSVBTX0RXQVJGIHRvIFNIVF9QUk9HQklUUy4KCjIwMDMtMTItMTcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9hcmNocyk6IENoYW5nZSAiYXJtdjYiIHRvICJhcm12NmoiLgoJKiBkb2MvYy1hcm0udGV4aSAoQVJNIE9wdGlvbnMpOiBMaWtld2lzZS4KCjIwMDMtMTItMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbTMyci5jIChlcnJvcl9leHBsaWNpdF9wYXJhbGxlbF9jb25mbGljdHMpOiBSZW5hbWUKCXRvICdpZ25vcmVfcGFyYWxsZWxfY29uZmxpY3RzJy4KCShtZF9sb25nb3B0cyk6IENoYW5nZSBvcHRpb24gbmFtZXMgYXMgd2VsbC4KCShtZF9wYXJzZV9vcHRpb24pOiBTZXBhcmF0ZSB0aGUgd2Fybl9leHBsaWNpdCBhbmQgaWdub3JlCglwYXJhbGxlbCBjb25mbGljdHMgb3B0aW9ucy4KCShtZF9zaG93X3VzYWdlKTogVXBkYXRlIGRlc2NyaXB0aW9ucyBvZiB0aGVzZSBvcHRpb25zLgoJKGZpcnN0X3dyaXRlc190b19zZWNvbmRzX29wZXJhbmRzKTogRG8gbm90IHJ1biB0aGlzIGNoZWNrIGlmCglpZ25vcmluZyBwYXJhbGxlbCBjb25mbGljdHMuCgkoYXNzZW1ibGVfdHdvX2luc25zKTogUmVtb3ZlIGNvZGUgdGhhdCBjaGVja2VkCgllcnJvcl9leHBsaWNpdF9wYXJhbGxlbF9jb25mbGljdHMuCgkqIGRvYy9jLW0zMnIudGV4aTogVXBkYXRlIGRlc2NyaXB0aW9ucyBvZiB0aGUgb3B0aW9ucy4KCjIwMDMtMTItMTYgIERtaXRyeSBTZW15b25vdiAgPERtaXRyeS5TZW15b25vdkBva3RldC5ydT4KCgkqIHRjLWFybS5jIChkb19hZHIpOiBEbyBub3QgYWRqdXN0IHBjIGJ5IC04IGlmIFRFX1dJTkNFIGlzCglkZWZpbmVkLgoJKGRvX2FkcmwpOiBMaWtld2lzZS4KCjIwMDMtMTItMTUgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogY29uZmlnL3RjLXo4ay5jIChzdHJ1Y3QgejhrX2V4cCk6IFJlbW92ZSwgbm90IHVzZWQgYW55d2hlcmUuCgkoY3RybF90YWJsZSk6IEFkZCAiZmxhZ3MiIGtleXdvcmQgYW5kIHNvbWUgY29tbWVudHMuCgkoZmxhZ190YWJsZSk6IENvbnZlcnQgdG8gdXBwZXJjYXNlLgoJKGdldF9mbGFnc19vcGVyYW5kKTogQmUgY2FzZSBpbnNlbnNpdGl2ZS4KCShnZXRfaW50ZXJydXB0X29wZXJhbmQpOiBCZSBjYXNlIGluc2Vuc2l0aXZlLiAgU3VwcG9ydCBub3RhdGlvbgoJd2hlcmUgdGhlIGlucGVycnVwdCBhcmd1bWVudHMgYXJlIHNlcGFyYXRlZCBieSBjb21tYXMuCgkoZ2V0X29wZXJhbmRzKTogQ2hlY2sgd2hldGhlciBnZXRfZmxhZ3Nfb3BlcmFuZCBjb25zdW1lZCBhbGwKCWFyZ3VtZW50cy4gIFJldHVybiBmYWlsdXJlIGlmIGdldF9jdHJsX29wZXJhbmQgZGlkbid0IHJlY29nbml6ZSBhCgl2YWxpZCBjb250cm9sIHJlZ2lzdGVyLgoJKGdldF9zcGVjaWZpYyk6IEFkZCBjYXNlIENMQVNTX0NUUkw6IFRlc3QgZm9yIHZhbGlkIGNvbnRyb2wKCXJlZ2lzdGVyIGZvciBsZGN0bGIgb3Bjb2RlLgoJKGJ1aWxkX2J5dGVzKTogQ2hlY2sgZm9yIHZhbGlkIGNvbnRyb2wgcmVnaXN0ZXJzLgoKMjAwMy0xMi0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotYW91dC5jIChvYmpfY3Jhd2xfc3ltYm9sX2NoYWluKTogU2tpcCBkZWZpbmVkCglzeW1ib2xzIHdoaWNoIHJlc29sdmUgdG8gc3ltYm9saWMgdmFsdWVzLgoKMjAwMy0xMi0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9vYmotZWxmLmM6IENvbnZlcnQgdG8gQzkwLCByZW1vdmUgdW5uZWVkZWQgcHJvdG90eXBlcyBhbmQKCWNhc3RzLiAgRm9ybWF0dGluZy4KCSogY29uZmlnL29iai1lbGYuaDogUmVtb3ZlIFBBUkFNUy4KCgkqIHJlYWQuYyAoc19sY29tbV9pbnRlcm5hbCk6IE1ha2UgZ2xvYmFsLgoJKiByZWFkLmggKHNfbGNvbW1faW50ZXJuYWwpOiBEZWNsYXJlLgoJKiBjb25maWcvb2JqLWVsZi5jIChlbGZfcHNldWRvX3RhYmxlKTogSGFuZGxlIGxjb21tLgoJKG9ial9lbGZfbGNvbW0pOiBOZXcgZnVuY3Rpb24uCgoyMDAzLTEyLTEzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZC5jOiBSZW1vdmUgdW5uZWVkZWQgcHJvdG90eXBlcy4KCShzX2NvbW0pOiBTcGxpdCBvdXQgY29kZSB0by4uCgkoc19jb21tX2ludGVybmFsKTogLi5oZXJlLiAgVGlkeSBlcnJvciByZXR1cm5zLiAgUmVhcnJhbmdlIHNvIHRoYXQKCSJuYW1lIiBmcm9tIGlucHV0IGxpbmUgbWF5IGJlIHVzZWQgaW4gbW9yZSBwbGFjZXMuICBNZXJnZSBjb2RlCgl0ZXN0aW5nIGZvciB2YWxpZCBzaXplIGZyb20gZWxmX2NvbW1vbi4gIE1lcmdlIGNvZGUgZnJvbQoJc19sY29tbV9pbnRlcm5hbC4gIENhbGwgY29tbV9wYXJzZV9leHRyYS4KCShic3NfYWxsb2MpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBvZiBzX2xjb21tX2ludGVybmFsIGFuZAoJZWxmX2NvbW1vbi4KCShwYXJzZV9hbGlnbik6IExpa2V3aXNlLgoJKHNfbGNvbW1faW50ZXJuYWwpOiBSZXdyaXRlLgoJKHNfbGNvbW0sIHNfbGNvbW1fYnl0ZXMpOiBVc2Ugc19jb21tX2ludGVybmFsLgoJKiByZWFkLmggKGJzc19hbGxvYywgcGFyc2VfYWxpZ24sIHNfY29tbV9pbnRlcm5hbCk6IERlY2xhcmUuCgkqIGNvbmZpZy9vYmotZWxmLmMgKGVsZl9jb21tb24pOiBTcGxpdCBvdXQgY29kZSB0by4uCgkoZWxmX2NvbW1vbl9wYXJzZSk6IC4uaGVyZS4gIFJlbW92ZSBjb2RlIGNvbW1vbiB0byBzX2NvbW1faW50ZXJuYWwsCglwYXJzZV9hbGlnbiBhbmQgYnNzX2FsbG9jLiAgUmVhcnJhbmdlIGFuZCBUaWR5LgoJKiBjb25maWcvdGMtYWxwaGEuaCAoVENfSU1QTElDSVRfTENPTU1fQUxJR05NRU5UKTogRGVmaW5lLgoKMjAwMy0xMi0xMCAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRjLXBwYy5jIChtZF9hc3NlbWJsZSk6IFJld3JpdGUgY29tbWVudCBhYm91dCBvcHRpb25hbCBvcGVyYW5kcwoJdG8gaW5kaWNhdGUgdGhhdCAnYWxsIG9yIG5vbmUnIGlzIGFsc28gaGFuZGxlZC4gIFBsdXJhbGl6ZSBhCgl3b3JkIGluIGFub3RoZXIgY29tbWVudC4KCjIwMDMtMTItMTAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKEZQVV9NQVZFUklDSyk6IERlZmluZS4KCShGUFVfQVJDSF9NQVZFUklDSyk6IERlZmluZS4KCShhcm1fZmxvYXRfYWJpKTogRGVmaW5lLgoJKG1mbG9hdF9hYmlfb3B0KTogTmV3IHZhcmlhYmxlLgoJKG1kX2JlZ2luKTogVXNlIHRoZW0uCgkoYXJtX29wdHMpOiBBZGQgbXNvZnQtZmxvYXQgYW5kIG1oYXJkLWZsb2F0LgoJKGFybV9jcHVzKTogVXNlIEZQVV9BUkNIX01BVkVSSUNLLgoJKGFybV9mcHVzKTogQWRkIG1hdmVyaWNrLgoJKGFybV9mbG9hdF9hYmlzKTogQWRkLgoJKGFybV9wYXJzZV9mbG9hdF9hYmkpOiBOZXcgZnVuY3Rpb24uCgkoYXJtX2xvbmdfb3B0aW9ucyk6IEFkZCBtZmxvYXQtYWJpLgoJKiBkb2MvYXMudGV4aW5mbzogRG9jdW1lbnQgLW1mbG9hdC1hYmk9LgoJKiBkb2MvYy1hcm0udGV4dDogRGl0dG8uIE1lbnV0aW9uIC1mcHU9bWF2ZXJpY2suCgoyMDAzLTEyLTA5ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChkb191bWFhbCk6IEZpeCB0eXBvLgoKMjAwMy0xMi0wNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGR3YXJmMmRiZy5jOiBDb252ZXJ0IHRvIElTTy1DLgoJKiB3cml0ZS5jOiBMaWtld2lzZS4KCSogd3JpdGUuaDogTGlrZXdpc2UuCgoyMDAzLTEyLTA2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IFN3aXRjaCBtaXNvcmRlcmVkIGNhbGwgdG8gZnJhZ19ncm93KCkKCWFuZCBzZXR0aW5nIG9mIHRjX2ZyX29mZnNldC4KCjIwMDMtMTItMDUgIFJpY2FyZG8gQW5ndWlhbm8gPGFuZ3VpYW5vQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCglBZGQgVjYgc3VwcG9ydC4KCSogY29uZmlnL3RjLWFybS5jIChBUk1fRVhUX1Y2KTogTmV3IG1hY3JvLgoJKEFSTV9BUkNIX1Y2KTogTGlrZXdpc2UuCgkoU0hJRlRfSU1NRURJQVRFKTogTGlrZXdpc2UuCgkoU0hJRlRfTFNMX09SX0FTUl9JTU1FRElBVEUpOiBMaWtld2lzZS4KCShTSElGVF9BU1JfSU1NRURJQVRFKTogTGlrZXdpc2UuCgkoU0hJRlRfTFNMX0lNTU1FRElBVEUpOiBMaWtld2lzZS4KCShkb19jcHMpOiBOZXcgZnVuY3Rpb24uCgkoZG9fY3BzaSk6IExpa2V3aXNlLgoJKGRvX2xkcmV4KTogTGlrZXdpc2UuCgkoZG9fcGtoYnQpOiBMaWtld2lzZS4KCShkb19wa2h0Yik6IExpa2V3aXNlLgoJKGRvX3FhZGQxNik6IExpa2V3aXNlLgoJKGRvX3Jldik6IExpa2V3aXNlLgoJKGRvX3JmZSk6IExpa2V3aXNlLgoJKGRvX3N4dGFoKTogTGlrZXdpc2UuCgkoZG9fc3h0aCk6IExpa2V3aXNlLgoJKGRvX3NldGVuZCk6IExpa2V3aXNlLgoJKGRvX3NtbGFkKTogTGlrZXdpc2UuCgkoZG9fc21sYWxkKTogTGlrZXdpc2UuCgkoZG9fc21tdWwpOiBMaWtld2lzZS4KCShkb19zc2F0KTogTGlrZXdpc2UuCgkoZG9fdXNhdCk6IExpa2V3aXNlLgoJKGRvX3Nycyk6IExpa2V3aXNlLgoJKGRvX3NzYXQxNik6IExpa2V3aXNlLgoJKGRvX3VzYXQxNik6IExpa2V3aXNlLgoJKGRvX3N0cmV4KTogTGlrZXdpc2UuCgkoZG9fdW1hYWwpOiBMaWtld2lzZS4KCShkb19jcHNfbW9kZSk6IExpa2V3aXNlLgoJKGRvX2Nwc19mbGFncyk6IExpa2V3aXNlLgoJKGRvX2VuZGlhbl9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCShkb19wa2hfY29yZSk6IExpa2V3aXNlLgoJKGRvX3NhdCk6IExpa2V3aXNlLgoJKGRvX3NhdDE2KTogTGlrZXdpc2UuCgkoaW5zbnMpOiBBZGQgVjYgaW5zdHJ1Y3Rpb25zLgoJKGRvX3RfY3BzKTogTmV3IGZ1bmN0aW9uLgoJKGRvX3RfY3B5KTogTGlrZXdpc2UuCgkoZG9fdF9zZXRlbmQpOiBMaWtld2lzZS4KCShUSFVNQl9DUFkpOiBOZXcgbWFjcm8uCgkodGluc25zKTogQWRkIFY2IGluc3RydWN0aW9ucy4KCShkZWNvZGVfc2hpZnQpOiBIYW5kbGUgVjYgcmVzdHJpY3RlZC1zaGlmdCBvcHRpb25zLgoJKHRodW1iX21vdl9jb21wYXJlKTogU3VwcG9ydCBDUFkuCgkoYXJtX2NvcmVzKTogQWRkIGFybTExMzZqcyBhbmQgYXJtMTEzNmpmcy4KCShhcm1fYXJjaHMpOiBBZGQgYXJtdjYuCgkoYXJtX2ZwdXMpOiBBZGQgYXJtMTEzNmpmcy4KCSogZG9jL2MtYXJtLnRleGkgKEFSTSBPcHRpb25zKTogTWVudGlvbiBhcm0xMTM2anMsIGFybTExMzZqZnMsIGFuZAoJYXJtdjYgb3B0aW9ucy4KCjIwMDMtMTItMDYgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogY29uZmlnL3RjLXo4ay5jIChwYXJzZV9yZWcpOiBCZSBjYXNlIGluc2Vuc2l0aXZlIHdoZW4gY2hlY2tpbmcKCXJlZ2lzdGVyIG5hbWVzLgoJKGdldF9jdHJsX29wZXJhbmQpOiBCZSBjYXNlIGluc2Vuc2l0aXZlIHdoZW4gY2hlY2tpbmcgY3RybCBuYW1lcy4KCjIwMDMtMTItMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAobWRfc2hvd191c2FnZSk6IEZpeCBjb21waWxhdGlvbiBlcnJvcnMKCWludHJvZHVjZWQgYnkgdGhlIHByZXZpb3VzIGRlbHRhLgoKMjAwMy0xMi0wMyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc2guYzogQWRkIHN1cHBvcnQgZm9yIHNoNGEgYW5kIG5vLWZwdSB2YXJpYW50cy4KCSogdGVzdHN1aXRlL2dhcy9zaC9iYXNpYy5leHA6IENhbGwgdGVzdHMgZm9yIHNoNGEuCgkqIHRlc3RzdWl0ZS9nYXMvc2gve2Vyci1zaDRhLWZwLnMsIGVyci1zaDRhLnMsCgllcnItc2g0YWwtZHNwLnMsIHNoNGEtZHNwLmQsIHNoNGEtZHNwLnMsIHNoNGEtZnAuZCwKCXNoNGEtZnAucywgc2g0YS5kLCBzaDRhLnMsIHNoNGFsLWRzcC5kLCBzaDRhbC1kc3AuczoKCU5ldyBmaWxlcywgdGVzdHMgZm9yIHNoNGEgYW5kIHJlbGF0ZWQgdmFyaWFudHMuCgoyMDAzLTEyLTA1ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9zaG93X3VzYWdlKTogTWVudGlvbiBuZXcgLWlzYSBvcHRpb25zLgoJKiBkb2MvYy1zaC50ZXhpOiBEb2N1bWVudCBuZXcgLWlzYSBvcHRpb25zLgoJKiBkb2MvYy1zaDY0LnRleGk6IERpdHRvLgoJKiBORVdTOiBNZW50aW9uIG5ldyBzdXBwb3J0IGZvciBzaDRhLgoKMjAwMy0xMi0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWFscGhhLmMgKHNfYWxwaGFfZW5kKTogRG9uJ3QgY3Jhc2ggaWYgdGhlcmUgaXMgbm8KCW1hdGNoaW5nIC5lbnQuCgoyMDAzLTEyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogdGMuaCAobWRfcGNyZWxfZnJvbSk6IERvbid0IGRlY2xhcmUgaWYgZGVmaW5lZCBhcyBhIG1hY3JvLgoKMjAwMy0xMi0wMyAgS2F6dWhpcm8gSW5hb2thIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJKiBjb25maWcvdGMtbTMyci5oIDogQWRkIHN1cHBvcnQgZm9yIG5ldyBtYWNoaW5lIG0zMnIyLgoJKiBjb25maWcvdGMtbTMyci5jIDogTGlrZXdpc2UuCglBZGQgbmV3IGNvbW1hbmQgbGluZSBzd2l0Y2hlcyBhbmQgZGlyZWN0aXZlcyB0byBhbGxvdyBlbmRpYW4tbmVzcwoJdG8gYmUgc2VsZWN0ZWQgYW5kIHNvbWUgd2FybmluZ3MgdG8gYmUgdHVybmVkIGludG8gZXJyb3JzLgoJKGxpbmVfc2VwYXJhdG9yX2NoYXJzKSA6IFVzZSAnIScuCgkqIGRvYy9jLW0zMnIudGV4aTogRG9jdW1lbnQgbmV3IHN3aXRjaGVzIGFuZCBkaXJlY3RpdmVzLgoJKiBORVdTOiBNZW50aW9uIG5ldyBzdXBwb3J0LgoKMjAwMy0xMi0wMyAgRGF2ZSBBaXJsaWUgIDxhaXJsaWVkQGxpbnV4LmllPgoKCSogY29uZmlndXJlLmluOiBMaWtld2lzZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtdmF4LmMgKG1kX3Nob3J0b3B0cyk6IEFkZCAnUScuCgkobWRfcGFyc2Vfb3B0aW9uKTogSWdub3JlICdRJyBmb3Igbm93LgoKMjAwMy0xMi0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIG1lc3NhZ2VzLmM6IENvbnZlcnQgdG8gSVNPLUMuCgkqIG9iai5oOiBMaWtld2lzZS4KCSogb3V0cHV0LWZpbGUuYzogTGlrZXdpc2UuCgkqIG91dHB1dC1maWxlLmg6IExpa2V3aXNlLgoJKiBzYi5jOiBMaWtld2lzZS4KCSogc2IuaDogTGlrZXdpc2UuCgkqIHN0YWJzLmM6IExpa2V3aXNlLgoJKiBzdWJzZWdzLmM6IExpa2V3aXNlLgoJKiBzdWJzZWdzLmg6IExpa2V3aXNlLgoJKiB0Yy5oOiBMaWtld2lzZS4KCjIwMDMtMTItMDIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvb2JqLWVsZi5jOiBSZW1vdmUgQVJHU1VTRUQuCgoyMDAzLTEyLTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMTEtMzAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBzeW1ib2xzLmM6IENvbnZlcnQgdG8gSVNPLUMuCgkqIHN5bWJvbHMuaDogTGlrZXdpc2UuCgoyMDAzLTExLTI4ICBDaHJpc3RpYW4gR3JvZXNzbGVyICA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGNvbmZpZy90Yy16OGsuYzogQ29udmVydCB0byBJU08tQy4KCSogY29uZmlnL3RjLXo4ay5oOiBMaWtld2lzZS4KCjIwMDMtMTEtMjcgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiByZWFkLmM6IENvbnZlcnQgdG8gSVNPLUMuCgkqIHJlYWQuaDogTGlrZXdpc2UuCgoyMDAzLTExLTI3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKHNoX2VsZl9jb25zKTogSWYgbWRfY29uc19hbGlnbiBpcyBkZWZpbmVkCgljYWxsIGl0IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjb25zdGFudHMgdGhhdCBhcmUgZ29pbmcgdG8gYmUKCWVtaXR0ZWQgYXJlIGNvcnJlY3RseSBhbGlnbmVkLgoKMjAwMy0xMS0yNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtZnJ2LmMgKG1kX3BjcmVsX2Zyb21fc2VjdGlvbik6IERvbid0IGFkanVzdCB3aGVuCglyZWZlcmVuY2luZyBzeW1ib2wgaW4gYSBkaWZmZXJlbnQgc2VjdGlvbi4KCjIwMDMtMTEtMjYgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogY29uZmlnL3RjLXo4ay5jIChzX3NlZ20pOiBGaXggaW5kZW50YXRpb24uCgkobWRfYXBwbHlfZml4Myk6IExpa2V3aXNlLgoJKGNjX25hbWVzKTogQWRkIGFsaWFzIG5hbWVzIGZvciB0aGUgbmFtZXMgZ2VuZXJhdGVkIGJ5IHRoZQoJZGlzYXNzZW1ibGVyLgoJKGdldF9jY19vcGVyYW5kKTogQmUgY2FzZSBpbnNlbnNpdGl2ZS4KCShnZXRfb3BlcmFuZHMpOiBJbXByb3ZlIGVycm9yIGhhbmRsaW5nIGZvciBjYyBvcGVyYW5kcy4KCShjaGVja19vcGVyYW5kKTogTm90IHVzZWQsIHJlbW92ZS4KCShtZF9hc3NlbWJsZSk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgcHJldl9vcGNvZGUuICBTa2lwCgl3aGl0ZXNwYWNlIHVudGlsIGVuZC1vZi1saW5lIG9ubHkuICBSZXN0b3JlICpvcF9lbmQgYWZ0ZXIgY2FsbCB0bwoJaGFzaF9maW5kLgoKMjAwMy0xMS0yNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChnZXRfb3BlcmFuZCk6IEFsbG93IGVyNC1lcjcgZm9yIGxkbS9zdG0KCWluc3RydWN0aW9ucyBvbiB0aGUgSDhTWC4KCjIwMDMtMTEtMjUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoaDhfZXhwKTogUmVtb3ZlLgoKMjAwMy0xMS0yNSAgQXNnYXJpIEppbmlhICA8YXNnYXJpakBrcGl0Y3VtbWlucy5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAobWRfYXNzZW1ibGUpOiBDaGVjayBvcGVyYW5kcyB2YWxpZGl0eSBmb3IKCWxkbS9zdG0uCgkoZ2V0X29wZXJhbmQpOiBDaGVjayByZWdpc3RlciBwYWlyJ3MgdmFsaWRpdHkgYXMgcGVyIHRlY2huaWNhbAoJbm90ZSBUTi1IOCotMTkzQS9FIGZyb20gUmVuZXNhcyBmb3IgSDhzIGFuZCBmb3IgSDhTeCBtYW51YWwuCgoyMDAzLTExLTI0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogbGlzdGluZy5jOiBDb252ZXJ0IHRvIElTTy1DLgoJKiBsaXN0aW5nLmg6IExpa2V3aXNlLgoJKiBtYWNyby5jOiBMaWtld2lzZS4KCSogbWFjcm8uaDogTGlrZXdpc2UuCgoyMDAzLTExLTI0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGFwcC5jIChkb19zY3J1Yl9jaGFycyk6IEFkZCBQVVQgKGNoKSBhbmQgY2ggPSBHRVQgKCkKCXdoZW4gdHJhbnNpdGlvbmluZyBmcm9tIHN0YXRlcyAxNCBvciAxNSB0byAwIG9yIDEuCgoyMDAzLTExLTIzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogaGFzaC5jOiBDb252ZXJ0IHRvIElTTy1DLgoJKiBoYXNoLmg6IExpa2V3aXNlLgoJKiBpbnB1dC1maWxlLmM6IExpa2V3aXNlLgoJKiBpbnB1dC1maWxlLmg6IExpa2V3aXNlLgoJKiBpbnB1dC1zY3J1Yi5jOiBMaWtld2lzZS4KCSogaXRibC1vcHMuYzogTGlrZXdpc2UuCgkqIGl0Ymwtb3BzLmg6IExpa2V3aXNlLgoKMjAwMy0xMS0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChIbW9kZSk6IE1ha2UgaXQgZ2xvYmFsLgoJKFNtb2RlKTogTGlrZXdpc2UuCgkoTm1vZGUpOiBMaWtld2lzZS4KCShTWG1vZGUpOiBMaWtld2lzZS4KCjIwMDMtMTEtMjIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBlaG9wdC5jOiBDb252ZXJ0IHRvIElTTy1DLgoJKiBlbXVsLmg6IExpa2V3aXNlLgoJKiBleHByLmM6IExpa2V3aXNlLgoJKiBleHByLmg6IExpa2V3aXNlLgoJKiBmbG9udW0tY29weS5jOiBMaWtld2lzZS4KCSogZmxvbnVtLW11bHQuYzogTGlrZXdpc2UuCgkqIGZsb251bS5oOiBMaWtld2lzZS4KCSogZnJhZ3MuYzogTGlrZXdpc2UuCgkqIGZyYWdzLmg6IExpa2V3aXNlLgoKMjAwMy0xMS0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGRvYy9jLXBwYy50ZXhpIChQb3dlclBDLVBzZXVkbyk6IEFkZCBzZWN0aW9uLgoKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogUmV2ZXJ0IDIwMDMtMDQtMjMgYW5kIDIwMDMtMDQtMjIuCgoyMDAzLTExLTIxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZWNvZmYuYzogQ29udmVydCB0byBJU08tQy4KCSogZWNvZmYuaDogTGlrZXdpc2UuCgoyMDAzLTExLTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChwYXJzZV9jcHUpOiBOZXcgZnVuY3Rpb24sIGJyb2tlbiBvdXQgZnJvbS4uCgkobWRfcGFyc2Vfb3B0aW9uKTogLi5oZXJlLgoJKHBwY19zZXR1cF9vcGNvZGVzKTogTmV3IGZ1bmN0aW9uLCBicm9rZW4gb3V0IGZyb20uLgoJKG1kX2JlZ2luKTogLi5oZXJlLgoJKHBwY19tYWNoaW5lKTogSW1wbGVtZW50IC5tYWNoaW5lIHBzZXVkbyBvcC4KCjIwMDMtMTEtMjAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBkZXBlbmQuYzogQ29udmVydCB0byBJU08tQy4KCSogZHdhcmYyZGJnLmM6IExpa2V3aXNlLgoJKiBkd2FyZjJkYmcuaDogTGlrZXdpc2UuCgoyMDAzLTExLTIwICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYXBwLmM6IENvbnZlcnQgdG8gSVNPLUMuCgkqIGFzLmg6IExpa2V3aXNlLgoJKiBhdG9mLWdlbmVyaWMuYzogTGlrZXdpc2UuCgkqIGJpZ251bS1jb3B5LmM6IExpa2V3aXNlLgoJKiBiaWdudW0uaDogTGlrZXdpc2UuCgkqIGNnZW4uYzogTGlrZXdpc2UuCgkqIGNnZW4uaDogTGlrZXdpc2UuCgkqIGNvbmQuYzogTGlrZXdpc2UuCgoyMDAzLTExLTIwICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfZnJvYl9zZWN0aW9uKTogT25seSBmcm9iIGVsZjMyCglzZWN0aW9ucy4KCjIwMDMtMTEtMTkgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvdGMtaDgzMDAuYzogTWFrZSBzb21lIGZ1bmN0aW9ucyBhbmQgZ2xvYmFsCgl2YXJpYWJsZXMgc3RhdGljIGFwcHJvcHJpYXRlbHkuCgoyMDAzLTExLTE5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL29iai1pZWVlLmM6IFJlbW92ZSBkdXBsaWNhdGUgcHJvdG90eXBlcy4KCSogY29uZmlnL3RjLWg4MzAwLmM6IExpa2V3aXNlLgoKMjAwMy0xMS0xOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jOiBDb252ZXJ0IHRvIElTTy1DLgoJKiBjb25maWcvdGMtaDgzMDAuaDogTGlrZXdpc2UuCgoyMDAzLTExLTE5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3RjLW1jb3JlLmg6IFJlbW92ZSBwcm90b3R5cGVzIGFscmVhZHkgaW4gdGMuaC4KCSogY29uZmlnL3RjLXRpYzR4LmM6IExpa2V3aXNlLgoKMjAwMy0xMS0xOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy90Yy1hcmMuYzogUmVtb3ZlIGEgbG9jYWwgcHJvdG90eXBlIG9mIGF0b2ZfaWVlZS4KCSogY29uZmlnL3RjLWlwMmsuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pcTIwMDAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWMzMC5jOiBSZW1vdmUgYSBjb21tZW50LgoKMjAwMy0xMS0xOSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoeGdfZW1pdF9pbnNuKTogSW5jbHVkZSAiZHdhcmYyZGJnLmgiIGFuZCBhZGQKCWNhbGwgdG8gZHdhcmYyX2VtaXRfaW5zbi4KCjIwMDMtMTEtMTggIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogSGFuZGxlIG5ldyBtYWNyb3M6ICJsY2EiIGFuZCAiZGxjYSIKCWZvciBsb2FkaW5nIGFkZHJlc3NlcyB1c2luZyBDQUxMIHJlbG9jYXRpb25zLgoJRG9uJ3QgZW1pdCBDQUxMIHJlbG9jYXRpb25zIHdoZW4gYSBiYXNlIHJlZ2lzdGVyIGlzIHVzZWQuCgoyMDAzLTExLTE1ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jOiBGb3JtYXR0aW5nIGZpeGVzLgoKMjAwMy0xMS0xNCAgQmVuIEVsbGlzdG9uICA8YmplQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChhcm1fZWxmX2NoYW5nZV9zZWN0aW9uKTogTm90IHN0YXRpYy4KCjIwMDMtMTEtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB0Yy1hcm0uYyAobWFwcGluZ19zdGF0ZSk6IE5ldyBmdW5jdGlvbi4gIEVtaXQgYSBtYXBwaW5nCglzeW1ib2wgaWYgbmVjZXNzYXJ5LgoJKGFybV9lbGZfY2hhbmdlX3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uICBJbnRlcmNlcHQgc2VjdGlvbgoJY2hhbmdlcyBhbmQgZ2VuZXJhdGUgbWFwcGluZyBzeW1ib2xzLgoJKHNfYnNzKTogTGlrZXdpc2UuCgkoc19hcm1fZWxmX2NvbnMpOiBMaWtld2lzZS4KCShvcGNvZGVfc2VsZWN0KTogQ2hvb3NlIHRoZSBjb3JyZWN0IG1hcHBpbmcgc3RhdGUuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4KCSogdGMtYXJtLmggKG1kX2VsZl9zZWN0aW9uX2NoYW5nZV9ob29rKTogRGVmaW5lLgoJKiBkb2MvYy1hcm0udGV4aSAoQVJNIE1hcHBpbmcgU3ltYm9scyk6IE5ldyBub2RlLgoJKiBORVdTOiBNZW50aW9uIG5ldyBmZWF0dXJlLgoKMjAwMy0xMS0xMiAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoaW5zdGFsbCwgaW5zdGFsbC1pbmZvLCBSRUNVUlNJVkVfVEFSR0VUUyk6IERlZmluZS4KCSogZG9jL01ha2VmaWxlLmFtIChpbnN0YWxsLWluZm8pOiBEZWZpbmUuCgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0xMS0xMSAgRG1pdHJ5IFNlbXlvbm92IDxEbWl0cnkuU2VteW9ub3ZAb2t0ZXQucnU+CgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBhcm0td2luY2UtcGUgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTExLTExICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBjb25maWcvdGMtaTM4Ni5jICh0Y19pMzg2X2ZpeF9hZGp1c3RhYmxlKToKCjIwMDMtMTEtMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaWE2NC5jIChpYTY0X2hhbmRsZV9hbGlnbik6IFJlbW92ZSBib2d1cyBiZV9ub3AuCgoyMDAzLTExLTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogUkVBRE1FOiBVcGRhdGUgYnVnIHJlcG9ydCBhZGRyZXNzLiAgTW92ZSBidWcgcmVwb3J0aW5nIGluZm8gdG8KCWJpbnV0aWxzL1JFQURNRS4KCjIwMDMtMTEtMDcgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogZG9jL2MtejhrLnRleGk6IERvY3VtZW50IGNvbW1hbmQtbGluZSBvcHRpb25zLiAgRml4IGJ5dGUKCXJlZ2lzdGVyIG5hbWVzLiAgRG9jdW1lbnQgJy56ODAwMScgYW5kICcuejgwMDInIGRpcmVjdGl2ZXMuCglFeHRlbmQgYWRkcmVzc2luZyBtb2RlcyBkb2N1bWVudGF0aW9uLgoKMjAwMy0xMS0wNyAgSm9uYXRoYW4gUi4gR3JhbnQgIDxqZy1iaW51dGlsc0BqZ3VrLm9yZz4KCgkqIGlucHV0LWZpbGUuYyAoaW5wdXRfZmlsZV9vcGVuKTogVXNlICJObyBzdWNoIGZpbGUiIGVycm9yCgltZXNzYWdlLgoKMjAwMy0xMS0wNiAgUGV0ZSBHb256YWxleiAgPHBnb256YWxlekBibHVlbC5jb20+CgoJKiBjb25maWcvdGMtYXJtLnRleGkgKHN0cnVjdCByZWdfZW50cnkpOiBBZGQgbmV3IGZpZWxkICdidWlsdGluJy4KCShybl90YWJsZSwgaXdtbXh0X3RhYmxlLCBjcF90YWJsZSwgY25fdGFibGUsIGZuX3RhYmxlLCBzbl90YWJsZSwKCWRuX3RhYmxlLCBtYXZfbXZmX3RhYmxlLCBtYWNfbXZkX3RhYmxlLCBtYXZfbXZmeF90YWJsZSwKCW1hdl9tdmF4X3RhYmxlLCBtYXZfZHNwY190YWJsZSk6IEluaXRpYWxpc2UgbmV3IGZpZWxkLgoJKGluc2VydF9yZWdfYWxpYXMpOiBJbml0aWFsaXNlIG5ldyBmaWVsZC4KCShtZF9wc2V1ZG9fdGFibGUpOiBBZGQgInVucmVxIiBlbnRyeS4KCShzX3VucmVxKTogTmV3IGZ1bmN0aW9uOiBVbmRvIHRoZSBlZmZlY3RzIG9mIGEgcHJldmlvdXMgLnJlcS4KCSogZG9jL2MtYXJtLnRleGk6IERvY3VtZW50IG5ldyBwc2V1ZG8gb3AuCgkqIE5FV1M6IE1lbnRpb24gbmV3IGZlYXR1cmUuCgoyMDAzLTExLTA2ICBCcnVubyBSb2hlZSAgPGJydW5vQHJvaGVlLmNvbT4KCgkqIGNvbmZpZy9vYmotdm1zLmM6IEZpeCAidGhlIHRoZSIgdHlwby4KCSogZG9jL2MtYXJtLnRleGk6IExpa2V3aXNlLgoKMjAwMy0xMS0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotdm1zLmM6IENvbnZlcnQgdG8gSVNPLUMuCgoyMDAzLTExLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogT25seSBkZWZpbmUgZm9yIEVMRiBhbmQgWENPRkYuCgoyMDAzLTEwLTMxICBDaHJpc3RpYW4gR3JvZXNzbGVyICA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGNvbmZpZy90Yy1pODYwLmMgKG1kX3BjcmVsX2Zyb20pOiBGaXggdHlwbyBpbiBjb21tZW50LgoKMjAwMy0xMC0yOSAgUGhpbCBFZHdhcmRzICA8cGhpbEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLmluIChhcm0tKi12eHdvcmtzLCBpMzg2LSotdnh3b3JrcywgbWlwcy0qLXZ4d29ya3MsCglwcGMtKi12eHdvcmtzLCBwcGMtKi13aW5kaXNzKTogIFJlbW92ZSBzZXBhcmF0ZSBvdXRkYXRlZCBzdGFuemFzLgoJKCotKi12eHdvcmtzLCAqLSotd2luZGlzcyk6ICBVc2UgY29tbW9uIHN0YW56YXMsIGFsbCBFTEYuCgkqIGNvbmZpZ3VyZTogIFJlZ2VuZXJhdGVkLgoKMjAwMy0xMC0yNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIENoYW5nZUxvZzogRml4IHR5cG9zLgoJKiBDaGFuZ2VMb2ctOTI5NTogTGlrZXdpc2UuCgkqIGFzLmM6IEZpeCBjb21tZW50IHR5cG9zLgoJKiBhcy5oOiBMaWtld2lzZS4KCSogYXRvZi1nZW5lcmljLmM6IExpa2V3aXNlLgoJKiBiaXRfZml4Lmg6IExpa2V3aXNlLgoJKiBmcmFncy5oOiBMaWtld2lzZS4KCSogaGFzaC5jOiBMaWtld2lzZS4KCSogaW5wdXQtZmlsZS5jOiBMaWtld2lzZS4KCSogaW5wdXQtc2NydWIuYzogTGlrZXdpc2UuCgkqIGl0Ymwtb3BzLmM6IExpa2V3aXNlLgoJKiBpdGJsLXBhcnNlLnk6IExpa2V3aXNlLgoJKiBsaXN0aW5nLmM6IExpa2V3aXNlLgoJKiBtYWNyby5oOiBMaWtld2lzZS4KCSogcmVhZC5jOiBMaWtld2lzZS4KCSogc2IuYzogTGlrZXdpc2UuCgkqIHNiLmg6IExpa2V3aXNlLgoJKiBzeW1ib2xzLmM6IExpa2V3aXNlLgoJKiBzeW1ib2xzLmg6IExpa2V3aXNlLgoKMjAwMy0xMC0yNyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBjb25maWcvdGMtbTY4aGMxMS5jOiBDb252ZXJ0IHRvIElTTyBDOTAuCgkqIGNvbmZpZy90Yy1tNjhoYzExLmg6IExpa2V3aXNlLgoKMjAwMy0xMC0yNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy9jLXNoNjQudGV4aTogRml4IGEgdHlwby4KCjIwMDMtMTAtMjYgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBkb2MvYy1hbHBoYS50ZXhpOiBGaXggdHlwb3MuCgkqIGRvYy9jLWlhNjQudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9jLW1taXgudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9jLXNoNjQudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9jLXh0ZW5zYS50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2ludGVybmFscy50ZXhpOiBMaWtld2lzZS4KCjIwMDMtMTAtMjQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKG9ial9lbGZfY2hhbmdlX3NlY3Rpb24pOiBBbGxvdyBTSEZfQUxMT0MKCWZvciAuaW50ZXJwLCAuc3RydGFiIGFuZCAuc3ltdGFiLiBVc2Ugc3BlY2lmaWVkIHNlY3Rpb24KCWF0dHJpYnV0ZXMuCgoyMDAzLTEwLTIyICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoJICAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCSAgICBKaW0gV2lsc29uIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogY29uZmlnL3RjLWlhNjQuYyAodXBkYXRlX3FwX211dGV4KTogTmV3LgoJKG5vdGVfcmVnaXN0ZXJfdmFsdWVzKTogUHJvcGVybHkgaGFuZGxlIG9uZSBvZiBQUnMgaW4gY29tcGFyZQoJaXMgUFIwLiBEb24ndCBhZGQgYSBtdXRleCByZWxhdGlvbiBmb3IgLmFuZC5vcmNtLy5vci5hbmRjbS4KCUNsZWFyIG11dGV4IHJlbGF0aW9uIGZvciAubm9uZS8udW5jLiBEb24ndCBjbGVhciBtdXRleCByZWxhdGlvbgoJb24gcHJlZGljYXRlZCBjb21wYXJlLgoKMjAwMy0xMC0yMSAgV291dGVyIHZhbiBIZXlzdCA8d291dGVyQHZpZGljb2RlLm5sPgoKCSogY29uZmlnL3RjLWFybS5jIChhbGxfcmVnX21hcHMpOiBDb3JyZWN0IHRleHQgZGVzY3JpYmluZyBNYXZlcmljawoJcmVnaXN0ZXIgcmVxdWlyZW1lbnRzLgoJKG1kX2JlZ2luKTogUmVtb3ZlIEZfU09GVF9GTE9BVCBpZiBlbmFibGluZyBNQVZFUklDSyBGUC4KCjIwMDMtMTAtMjEgIFBldGVyIEJhcmFkYSAgPHBiYXJhZGFAbWFpbC53bS5zcHMubW90LmNvbT4KCSAgICBCZXJuYXJkbyBJbm5vY2VudGkgIDxiZXJuaWVAZGV2ZWxlci5jb20+CgoJKiBjb25maWcvdGMtbTY4ay5jOiBBZGQgTUNGNTI4eCAoTUNGdjQpIHN1cHBvcnQuCgkqIGNvbmZpZy9tNjhrLXBhcnNlLmg6IExpa2V3aXNlLgoJKiBORVdTOiBNZW50aW9uIHRoZSBuZXcgc3VwcG9ydC4KCSogZG9jL2MtbTY4ay50ZXhpOiBEb2N1bWVudCBuZXcgcHJvY2Vzc29yIHNlbGVjdGlvbiBzd2l0Y2guCgoyMDAzLTEwLTE5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobm9ybWFsaXplX2NvbnN0YW50X2V4cHIpOiBOZXcgZnVuY3Rpb24gdG8gZml4IHNpZ24KCWV4dGVuc2lvbnMgYnJva2VuIGJ5IGdhcycgZXhwcmVzc2lvbiBldmFsdWF0aW9uIG9mIGNvbnN0YW50cy4KCShjaGVja19hYnNvbHV0ZV9leHByKTogVXNlIGl0LgoJKG1pcHNfaXApOiBMaWtld2lzZS4KCjIwMDMtMTAtMTggIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCglHZW5lcmF0ZSBCRkRfUkVMT0NfTU1JWF9QVVNISl9TVFVCQkFCTEUgZm9yIFBVU0hKIHdoZW4gcG9zc2libGUuCgkqIGRvYy9jLW1taXgudGV4aSAoTU1JWC1PcHRzKTogRG9jdW1lbnQgLS1uby1wdXNoai1zdHVicyBhbmQKCS0tbm8tc3R1YnMuCgkqIGNvbmZpZy90Yy1tbWl4LmM6IEluY2x1ZGUgbGltaXRzLmguICBFeHBhbmQgb24gbW1peF9yZWxheF90YWJsZQoJY29tbWVudC4KCShleHBhbmRfb3AsIG1taXhfbmV4dF9zZW1pY29sb25faXNfZW9sbik6IEZpeCBoZWFkIGNvbW1lbnQuCgkocHVzaGpfc3R1YnMpOiBOZXcgdmFyaWFibGUuCgkoT1BUSU9OX05PUFVTSEpTVFVCUywgU1RBVEVfUFVTSEpTVFVCLCBQVVNISlNUVUJfTUlOKQoJKFBVU0hKU1RVQl9NQVgpOiBOZXcgbWFjcm9zLgoJKG1kX2xvbmdvcHRzKTogTmV3IG9wdGlvbnMgIi0tbm8tcHVzaGotc3R1YnMiIGFuZCBzeW5vbnltCgkiLS1uby1zdHVicyIuCgkobW1peF9yZWxheF90YWJsZSk6IEhhbmRsZSBuZXcgZW50cnkgZm9yIFNUQVRFX1BVU0hKU1RVQi4KCShtZF9wYXJzZV9vcHRpb24pOiBIYW5kbGUgT1BUSU9OX05PUFVTSEpTVFVCUy4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IE1vZGlmeSBTVEFURV9QVVNISiBzdGF0ZSBmb3IKCVBVU0hKIHN0dWIgcmVsYXhhdGlvbi4KCShtZF9jb252ZXJ0X2ZyYWcpOiBIYW5kbGUgU1RBVEVfUFVTSEpTVFVCLgoJKG1kX2FwcGx5X2ZpeDMpOiBIYW5kbGUgQkZEX1JFTE9DX01NSVhfUFVTSEpfU1RVQkJBQkxFLgoJKHRjX2dlbl9yZWxvYyk6IERpdHRvLgoJKG1taXhfbWRfcmVsYXhfZnJhZyk6IEhhbmRsZSBQVVNISiBzdHViIHJlbGF4YXRpb24uCgkqIGNvbmZpZy90Yy1tbWl4LmggKFRDX1NFR01FTlRfSU5GT19UWVBFKTogRGVmaW5lLgoJKHN0cnVjdCBtbWl4X3NlZ21lbnRfaW5mb190eXBlKTogTmV3LgoKMjAwMy0xMC0xNyAgUGF1bCBEYWxlICA8cGF1bGlAc25hcGdlYXIuY29tPgoJICAgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIGNvbmZpZy90Yy1tNjhrLmMgKG1ha2VfcGNyZWxfYWJzb2x1dGUpOiBFbmZvcmNlCglQQy1yZWxhdGl2ZSBqdW1wcyB3aXRoIC0tcGNyZWwuCgkobWRfY29udmVydF9mcmFnXzEpOiBMaWtld2lzZS4KCShtZF9jcmVhdGVfbG9uZ19qdW1wKTogTGlrZXdpc2UuCgoyMDAzLTEwLTE3ICBTaHJpbml2YXMgQXRyZSAgPHNocmluaXZhc2FAS1BJVEN1bW1pbnMuY29tPgoKCSogY29uZmlnL3RjLWg4MzAwLmMgKFBTSVpFKTogQ29ycmVjdCBmb3IgTm9ybWFsIG1vZGUuCgkoZ2V0X29wZXJhbmQpOiBBY2NlcHQgYm90aCAxNiBiaXQgMzIgYml0IHJlZ2lzdGVycyBhcyBwb2ludGVyCglyZWdpc3RlcnMsIHdoZW4gb3BlcmF0aW5nIGluIE5vcm1hbCBtb2RlLgoJKGZpeF9vcGVyYW5kX3NpemUpOiBNYWtlIGRlZmF1bHQgYWRkcmVzcyBzaXplIDE2IGZvciBOb3JtYWwgbW9kZS4KCjIwMDMtMTAtMTcgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5Ad2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGRvX2l3bW14dF9ieXRlX2FkZHIpOiBSZWplY3QgY29udHJvbAoJcmVnaXN0ZXJzLgoJKGRvX2l3bW14dF93b3JkX2FkZHIpOiBXaXRoIGEgY29udHJvbCByZWdpc3RlciwgcmVqZWN0IGNvbmRpdGlvbmFsCglleGVjdXRpb24gYW5kIHJlamVjdCBhIG5vbi13b3JkIHNpemUuCgoyMDAzLTEwLTE2ICBQZXRlciBCZXJnbmVyICA8YmVyZ25lckB2bmV0LmlibS5jb20+CgoJKiBjb25maWd1cmUuaW46IFNldCBlbT1saW51eCBmb3IgcHBjLSotbGludXgtZ251KiB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMTAtMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkb2MvYXMudGV4aW5mbyAoQWxpZ24pOiBDb3JyZWN0IGxpc3Qgb2YgYnl0ZSB0YXJnZXRzLgoKMjAwMy0xMC0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvX2J1aWxkX2xkc3RfY29uc3RvZmZzZXQsbG9hZF9yZWdpc3RlcixtYWNybyk6CglGaXggaW5kZW50YXRpb24uIEJldHRlciBlcnJvciBtZXNzYWdlLgoKMjAwMy0xMC0xNCAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoeHRlbnNhX2NyZWF0ZV9wcm9wZXJ0eV9zZWdtZW50cyk6IFJlbW92ZSBiZmQKCWFyZ3VtZW50IGluIGNhbGwgdG8geHRlbnNhX2dldF9wcm9wZXJ0eV9zZWN0aW9uX25hbWUuICBGb3JtYXR0aW5nLgoKMjAwMy0xMC0xMSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guaCAoc2hfY29mZl9yZWxvY19tYW5nbGUpOiBEZWxldGUgYW4gZXh0cmEKCXBhcmVudGhlc2lzLgoKMjAwMy0xMC0xMSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guYzogQ29udmVydCB0byBJU08gQzkwLiAgUmVtb3ZlIHVubmVjZXNzYXJ5Cglwcm90b3R5cGVzIGFuZCBjYXN0cy4KCSogY29uZmlnL3RjLXNoLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2g2NC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoNjQuaDogTGlrZXdpc2UuCgoyMDAzLTEwLTA4ICBEYXZlIEJyb2xsZXkgIDxicm9sbGV5QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtZnJ2LmMgKGZyNTUwX2NoZWNrX2luc25fYWNjX3JhbmdlKTogTmV3IGZ1bmN0aW9uLgoJKGZyNTUwX2NoZWNrX2FjY19yYW5nZSk6IE5ldyBmdW5jdGlvbi4KCShtZF9hc3NlbWJsZSk6IENhbGwgZnI1NTBfY2hlY2tfYWNjX3JhbmdlLgoKMjAwMy0xMC0wOCAgRGF2ZSBCcm9sbGV5ICA8YnJvbGxleUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWZydi5jOiBIYW5kbGUgREVGQVVMVF9DUFVfRlI1NTAuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIE9QVElPTl9DUFU9PWZyNTUwLgoJKG1kX3Nob3dfdXNhZ2UpOiBEb2N1bWVudCBmcjU1MC4KCjIwMDMtMTAtMDggIFBoaWxpcHBlIERlIE11eXRlciAgPHBoZG1AbWFjcWVsLmJlPgoKCSogYXMuYyAodXNlX2dudV9kZWJ1Z19pbmZvX2V4dGVuc2lvbnMpIDogTmV3IHZhcmlhYmxlLgoJKHBhcnNlX2FyZ3MpIDogQWNjZXB0IG5ldyAtLWdzdGFicysgb3B0aW9uLCBhbmQgc2V0CglgdXNlX2dudV9kZWJ1Z19pbmZvX2V4dGVuc2lvbnMnLgoJKHNob3dfdXNhZ2UpIDogRG9jdW1lbnQgLS1nc3RhYnMrIG9wdGlvbi4KCSogYXMuaCAodXNlX2dudV9kZWJ1Z19pbmZvX2V4dGVuc2lvbnMpIDogTmV3IGV4dGVybiBkZWNsYXJhdGlvbi4KCSogc3RhYnMuYyAoc3RhYnNfZ2VuZXJhdGVfYXNtX2ZpbGUpIDogSWYKCWB1c2VfZ251X2RlYnVnX2luZm9fZXh0ZW5zaW9ucycgaXMgc2V0LCBhZGQgdGhlIGNvbXBpbGF0aW9uCglkaXJlY3RvcnkgdG8gdGhlIHN0YWJzIGRlYnVnIGluZm8uCgkqIGRvYy9hcy50ZXhpbmZvIDogRG9jdW1lbnQgLS1nc3RhYnMrIG9wdGlvbi4KCSogTkVXUzogTWVudGlvbiBuZXcgZmVhdHVyZS4KCjIwMDMtMTAtMDYgIE1hdHQgVGhvbWFzICA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoKCVN3aXRjaCBOZXRCU0QvaHBwYSB0byB1c2UgTGludXggUEEtUklTQyBFTEYgQUJJIGFuZAoJYXNzZW1ibGVyIHN5bnRheC4KCgkqIHRjLWhwcGEuYzogQWRkICIlZmFyZ1swLTNdIiwgIiVmcmV0IiwgIiV0WzEtNF0iLCAiJXRmWzEtNF0iCglyZWdpc3RlciBuYW1lcy4gIENoYW5nZSBhbGwgImRlZmluZWQgKFRFX0xJTlVYKSIgdG8KCSIoZGVmaW5lZCAoVEVfTElOVVgpIHx8IGRlZmluZWQgKFRFX05FVEJTRCkpIi4KCgkqIHRjLWhwcGEuaDogTWFrZSBOZXRCU0QgdXNlICJlbGZYWC1ocHBhLWxpbnV4IiBiZmQgdGFyZ2V0LgoJUmVtb3ZlIE5ldEJTRCdzIHVzZSBvZiBMQUJFTFNfV0lUSE9VVF9DT0xPTlMuCgoyMDAzLTEwLTA2ICBSb2JlcnQgTWlsbGFuICA8cm9iZXJ0bWhAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogTWF0Y2ggR05VL0tOZXRCU0Qgd2l0aCBuZXcga25ldGJzZCotZ251IHRyaXBsZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMTAtMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcy5jIChwYXJzZV9hcmdzKTogUmV2ZXJ0IHBhdGNoIHRvIGNoYW5nZSBoYW5kbGluZyBvZiAtZgoJb3B0aW9uLiAgSXRzIGJlaGF2aW91ciBpcyBtYW5kYXRlZCBieSB0aGUgUE9TSVggMiBzcGVjLgoKMjAwMy0xMC0wNCAgQ2hyaXN0aWFuIEdyb2Vzc2xlciAgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiB0Yy16OGsuYyAobmV3Zml4KTogVGVsbCBmaXhfbmV3X2V4cCBhYm91dCBwYyByZWxhdGl2ZW5lc3MuCgkobWRfYXBwbHlfZml4Myk6IEZpeCBSX0pSLCBSX0RJU1A3LCBhbmQgUl9DQUxMUiBjYXNlcy4KCShtZF9wY3JlbF9mcm9tKTogVGhpcyBmdW5jdGlvbiBub3cgZ2V0cyBjYWxsZWQuIFN1cHBseSByZXR1cm4KCXZhbHVlLgoKMjAwMy0xMC0wNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFzLmM6IENvbnZlcnQgdG8gSVNPIEM5MC4KCjIwMDMtMTAtMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcy5jIChzdGRfc2hvcnRvcHRzKTogUmVtb3ZlICdmJy4KCShzdGRfbG9uZ29wdHMpOiBBZGQgJ2YnLiAgRG9pbmcgdGhpcyBwcmV2ZW50cyAtZjxmb28+IGJlaW5nCglhY2VjcHRlZCBhcyBhbiBhbGlhcyBmb3IgLWYuCgoyMDAzLTEwLTA0ICBEYW5ueSBTbWl0aCAgPGRhbm55X3Jfc21pdGhfMjAwMUB5YWhvby5jby5uej4KCgkqIGNvbmZpZy9vYmotY29mZi5jIChvYmpfY29mZl9zZWN0aW9uIFtCRUZfQVNTRU1CTEVSXSk6CglNYWtlICdyJyBtZWFuIHJlYWRvbmx5IGRhdGEuCgoyMDAzLTEwLTAxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCxsb2FkX3JlZ2lzdGVyLG1hY3JvKToKCVVuYnJlYWsgb3ZlcmZsb3cgY2hlY2tzLgoKMjAwMy0xMC0wMSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfY3ByZXR1cm4pOiBDb3JyZWN0IGVycm9ycyBpbiBjb21tZW50LgoKMjAwMy0xMC0wMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvX2J1aWxkX2xkc3RfY29uc3RvZmZzZXQpOiBGaXggc2lnbiBleHRlbnNpb24KCXRlc3RzLgoJKGxvYWRfcmVnaXN0ZXIpOiBMaWtld2lzZS4KCShtYWNybyk6IExpa2V3aXNlLgoKMjAwMy0wOS0zMCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfaXApOiBDYXBpdGFsaXplIGZpcnN0IHdvcmQgb2YKCWV4aXN0aW5nIGNvbmRpdGlvbiBjb2RlIHdhcm5pbmcsIGFuZCBhZGQgY29uZGl0aW9uIGNvZGUKCXdhcm5pbmdzIGZvciAucHMgaW5zdHJ1Y3Rpb25zLCBhbmQgZm9yIGJjMWFueVsyNF1bdGZdLgoKMjAwMy0wOS0zMCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gc3VwcG9ydCBmb3IgTUlQUzY0IFJlbGVhc2UgMi4KCjIwMDMtMDktMzAgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBORVdTOiBBZGQgYW4gaW5kaWNhdGlvbiBvZiB0aGUgY3V0b2ZmIGZvciAyLjE0LgoKMjAwMy0wOS0zMCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAobWlwc2lzYTY0cjIsIG1pcHNpc2E2NHIyZWwsIG1pcHNpc2E2NHIyKik6IE5ldyBDUFVzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKGltbTJfZXhwcik6IE5ldyB2YXJpYWJsZS4KCShtZF9hc3NlbWJsZSwgbWlwczE2X2lwKTogSW5pdGlhbGl6ZSBpbW0yX2V4cHIuCgkoSVNBX0hBU182NEJJVF9SRUdTLCBJU0FfSEFTX0RST1IsIElTQV9IQVNfUk9SKTogQWRkIElTQV9NSVBTNjRSMi4KCShtYWNyb19idWlsZCk6IEhhbmRsZSArQSwgK0IsICtDLCArRSwgK0YsICtHLCBhbmQgK0ggZm9ybWF0IG9wZXJhbmRzLgoJKG1hY3JvKTogSGFuZGxlIE1fREVYVCBhbmQgTV9ESU5TLgoJKHZhbGlkYXRlX21pcHNfaW5zbik6IEhhbmRsZSArRSwgK0YsICtHLCArSCwgYW5kICtJIGZvcm1hdCBvcGVyYW5kcy4KCShtaXBzX2lwKTogTGlrZXdpc2UuCgkoT1BUSU9OX01JUFM2NFIyKTogTmV3IGRlZmluZS4KCShtZF9sb25nb3B0cyk6IE5ldyBlbnRyeSBmb3IgLW1pcHM2NHIyIChPUFRJT05fTUlQUzY0UjIpLgoJT1BUSU9OX0FTRV9CQVNFKTogSW5jcmVhc2UgdG8gY29tcGVuc2F0ZSBmb3IgT1BUSU9OX01JUFM2NFIyLgoJKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSBPUFRJT05fTUlQUzY0UjIuCgkoc19taXBzc2V0KTogSGFuZGxlIHNldHRpbmcgIm1pcHM2NHIyIiBJU0EuCgkobWlwc19jcHVfaW5mb190YWJsZSk6IEFkZCBtaXBzNjRyMi4KCShtZF9zaG93X3VzYWdlKTogRG9jdW1lbnQgLW1pcHM2NHIyIG9wdGlvbi4KCSogZG9jL2FzLnRleGluZm86IERvY3VlbW50IC1taXBzNjRyMiBvcHRpb24uCgkqIGRvYy9jLW1pcHMudGV4aTogTGlrZXdpc2UuCgoyMDAzLTA5LTI3ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogY29uZmlnL3RjLWhwcGEuYyAocGFfaXApOiBDaGVjayBmb3IgaW52YWxpZCA2NC1iaXQgY29uZGl0aW9ucy4KCjIwMDMtMDktMjYgIE1hdHQgVGhvbWFzICA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoKCSogY29uZmlnL3RjLXZheC5jIChtZF9zaG9ydG9wdHMpOiBGaXggYSB0eXBvLiAgUmVtb3ZlICdLJy4KCShPUFRJT05fUElDKTogRGVmaW5lLgoJKG1kX2xvbmdvcHRzKTogQWRkICJwaWMiIG9wdGlvbi4KCShtZF9wYXJzZV9vcHRpb24pOiBDaGFuZ2UgJ0snIHRvIE9QVElPTl9QSUMuCgoyMDAzLTA5LTIzICBBbGFuIE1vZHJhICA8YWxhbkBtb2RyYS5vcmc+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogQWRqdXN0IGZvcgoJX2JmZF9lbGZfZ2V0X3NlY190eXBlX2F0dHIgY2hhbmdlcy4gIEFsbG93IFNIRl9NRVJHRSBhbmQgU0hGX1NUUklOR1MKCXRvIGJlIHNldCB3aGVuIGRlZmF1bHRzIGFyZSBub3QuICBEb24ndCBzZXQgYXR0ciBmcm9tIGRlZmF1bHRzIGlmCglvbGRfc2VjLgoKMjAwMy0wOS0xOCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvX2J1aWxkX2xkc3RfY29uc3RvZmZzZXQpOiBEb24ndCBzaWxlbnRseQoJdHJ1bmNhdGUgdmFsdWVzIHdoaWNoIHdvbid0IGZpdCBpbSAzMiBiaXRzLgoJKGxvYWRfcmVnaXN0ZXIpOiBMaWtld2lzZS4KCShtYWNybyk6IExpa2V3aXNlLgoKMjAwMy0wOS0xNyAgRG1pdHJ5IERpa3kgPGRpd2lsQG1haWwucnU+CgoJKiBjb25maWcvdGMtbXNwNDMwLmMgKE1BWF9PUF9MRU4pOiBTZXQgdG8gMjU2LgoJKG1zcDQzMF9vcGVyYW5kcyk6IFJlbW92ZSByZWR1bmRhbnQgbDJbMTZdIHdpdGhpbiBzd2l0Y2gtY2FzZS4KCjIwMDMtMDktMTYgIFJhbGYgQ29yc2VwaXVzICA8Y29yc2VwaXVAZmF3LnVuaS11bG0uZGU+CgoJKiBjb25maWd1cmUuaW46IEhhbmRsZSBhcm0tKi1ydGVtcyogYW5kIHRodW1iLSpydGVtcyouCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMDktMTQgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChIQVZFXzY0QklUX0FERFJFU1NfQ09OU1RBTlRTKTogUmVtb3ZlLgoJKG1hY3JvX2J1aWxkX2xkc3RfY29uc3RvZmZzZXQpOiBTaWduLWV4dGVuZCAzMi1iaXQgY29uc3RhbnRzLiBDaGFuZ2UKCXRoZSBmdW5jdGlvbiBwcm90b3R5cGUuCgkobG9hZF9yZWdpc3Rlcik6IExpa2V3aXNlLiBTaW1wbGlmeSB0aGUgY2hlY2tzIGZvciBzaWduLWV4dGVuZGVkCgljb25zdGFudHMuCgkobWFjcm8pOiBMaWtld2lzZS4gRml4IGNvZGUgZ2VuZXJhdGlvbiBmb3IgNjQtYml0IGFkZHJlc3MgY29uc3RhbnRzCglvdXRzaWRlIHRoZSAzMi1iaXQgY29tcGF0aWJpbGl0eSBzcGFjZS4gQWRqdXN0CgltYWNyb19idWlsZF9sZHN0X2NvbnN0b2Zmc2V0IGNhbGxzLgoJKHNfY3ByZXN0b3JlKTogQWRqdXN0IG1hY3JvX2J1aWxkX2xkc3RfY29uc3RvZmZzZXQgY2FsbC4KCjIwMDMtMDktMTEgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBjb25maWcvdGMteHRlbnNhLmMgKGluc25fbGFiZWxzLCBmcmVlX2luc25fbGFiZWxzLCBzYXZlZF9pbnNuX2xhYmVscywKCWxpdGVyYWxfc3ltcyk6IE5ldyBnbG9iYWwgdmFyaWFibGVzLgoJKHh0ZW5zYV9kZWZpbmVfbGFiZWwsIGFkZF90YXJnZXRfc3ltYm9sLCB4dGVuc2FfZmluZF9sYWJlbCwKCW1hcF9vdmVyX2RlZmluZWRfc3ltYm9scywgaXNfbG9vcF90YXJnZXRfbGFiZWwsCgl4dGVuc2FfbWFya190YXJnZXRfZnJhZ21lbnRzLCB4dGVuc2FfbW92ZV9mcmFnX3N5bWJvbCwKCXh0ZW5zYV9tb3ZlX2ZyYWdfc3ltYm9scywgZGVmaW5lZF9zeW1ib2xzLCBicmFuY2hfdGFyZ2V0cyk6IERlbGV0ZS4KCSh4dGVuc2FfYmVnaW5fZGlyZWN0aXZlKTogQ2FsbCBtZF9mbHVzaF9wZW5kaW5nX291dHB1dC4gIE1vdmUgc3ltYm9scwoJZnJvbSBpbnNuX2xhYmVscyB0byBzYXZlZF9pbnNuX2xhYmVscyB3aGVuIGVudGVyaW5nIGEgbGl0ZXJhbCByZWdpb24uCgkoeHRlbnNhX2VuZF9kaXJlY3RpdmUpOiBDYWxsIG1kX2ZsdXNoX3BlbmRpbmdfb3V0cHV0LiAgUmVzdG9yZQoJaW5zbl9sYWJlbHMgbGlzdCB3aGVuIGxlYXZpbmcgYSBsaXRlcmFsIHJlZ2lvbi4KCSh4dGVuc2FfbGl0ZXJhbF9wb3NpdGlvbik6IENhbGwgeHRlbnNhX2NsZWFyX2luc25fbGFiZWxzLgoJKHh0ZW5zYV9saXRlcmFsX3BzZXVkbyk6IEFkZCBjaGVjayB0byBkaXNhbGxvdyAubGl0ZXJhbCBpbnNpZGUgYQoJbGl0ZXJhbCByZWdpb24uICBNb3ZlIGluc25fbGFiZWxzIHRvIHNhdmVkX2luc25fbGFiZWxzIGFuZCB0aGVuIHJlc3RvcmUKCWluc25fbGFiZWxzIG9uIGV4aXQuCgkoeGdfYWRkX2JyYW5jaF9hbmRfbG9vcF90YXJnZXRzKTogUmVwbGFjZSBhZGRfdGFyZ2V0X3N5bWJvbCBjYWxscyB3aXRoCgljb2RlIHRvIHNldCBpc19sb29wX3RhcmdldCBvciBpc19icmFuY2hfdGFyZ2V0IGZsYWcgb24gdGhlIHN5bWJvbAoJKHh0ZW5zYV9jcmVhdGVfbGl0ZXJhbF9zeW1ib2wpOiBDYWxsIHh0ZW5zYV9hZGRfbGl0ZXJhbF9zeW0uCgkoeHRlbnNhX2FkZF9saXRlcmFsX3N5bSwgeHRlbnNhX2FkZF9pbnNuX2xhYmVsLAoJeHRlbnNhX2NsZWFyX2luc25fbGFiZWxzKTogTmV3IGZ1bmN0aW9ucy4KCSh4dGVuc2FfbW92ZV9sYWJlbHMpOiBSZW1vdmUgb2xkX2ZyYWcgYW5kIG9sZF9vZmZzZXQgYXJndW1lbnRzLiAgQWRkCglsb29wc19vayBhcmd1bWVudC4gIFJld3JpdGUgdG8gdXNlIGluc25fbGFiZWxzIGxpc3QgaW5zdGVhZCBvZgoJY2FsbGluZyB4dGVuc2FfZmluZF9sYWJlbCBhbmQgdG8gY2hlY2sgdGhlIGlzX2xvb3BfdGFyZ2V0IGZsYWcgb24KCXN5bWJvbHMgd2hlbiBsb29wc19vayBpcyBmYWxzZS4KCSh4dGVuc2FfZnJvYl9sYWJlbCk6IFJlbW92ZSBjYWxsIHRvIHh0ZW5zYV9kZWZpbmVfbGFiZWwuICBBZGQgY2FsbAoJdG8gZWl0aGVyIHh0ZW5zYV9hZGRfbGl0ZXJhbF9zeW0gb3IgeHRlbnNhX2FkZF9pbnNuX2xhYmVsLiAgQWRqdXN0CgljYWxsIHRvIHh0ZW5zYV9tb3ZlX2xhYmVscy4gIFByb3BhZ2F0ZSBpc19icmFuY2hfdGFyZ2V0IGFuZAoJaXNfbG9vcF90YXJnZXQgZmxhZ3MgZnJvbSBzeW1ib2xzIHRvIGZyYWdzLgoJKHh0ZW5zYV9mbHVzaF9wZW5kaW5nX291dHB1dCk6IENhbGwgeHRlbnNhX2NsZWFyX2luc25fbGFiZWxzLgoJKG1kX2Fzc2VtYmxlKTogVXNlIHh0ZW5zYV9tb3ZlX2xhYmVscyB3aXRoIGxvb3BzX29rID0gRkFMU0Ugd2hlbgoJYWxpZ25pbmcgYSBsb29wIGluc3RydWN0aW9uLiAgQWRqdXN0IGNhbGwgdG8geHRlbnNhX21vdmVfbGFiZWxzIGZvcgoJYWxpZ25pbmcgZW50cnkgaW5zdHJ1Y3Rpb25zLiAgQWRkIGNhbGwgdG8geHRlbnNhX2NsZWFyX2luc25fbGFiZWxzLgoJKHh0ZW5zYV9lbmQpOiBSZW1vdmUgY2FsbCB0byB4dGVuc2FfbWFya190YXJnZXRfZnJhZ21lbnRzLgoJKHh0ZW5zYV9tb3ZlX2xpdGVyYWxzKTogUmVwbGFjZSB4dGVuc2FfbW92ZV9mcmFnX3N5bWJvbHMgY2FsbCB3aXRoCgljb2RlIHRvIHVzZSBuZXcgbGl0ZXJhbF9zeW1zIGxpc3QuCgkqIGNvbmZpZy90Yy14dGVuc2EuaCAoeHRlbnNhX3N5bWZpZWxkX3R5cGUpOiBBZGQgaXNfbG9vcF90YXJnZXQgYW5kCglpc19icmFuY2hfdGFyZ2V0IGZsYWdzLgoKMjAwMy0wOS0wOSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoeHRlbnNhX21hcmtfbGl0ZXJhbF9wb29sX2xvY2F0aW9uKTogUmVtb3ZlCgkibW92ZV9sYWJlbHMiIGFyZ3VtZW50IGFuZCBjb3JyZXNwb25kaW5nIGNhbGwgdG8geHRlbnNhX21vdmVfbGFiZWxzLgoJKG1kX2Fzc2VtYmxlKTogQWRkIGEgc2VwYXJhdGUgY2FsbCB0byB4dGVuc2FfbW92ZV9sYWJlbHMgYW5kIHJlbW92ZQoJYXJndW1lbnQgZm9yIGNhbGwgdG8geHRlbnNhX21hcmtfbGl0ZXJhbF9wb29sX2xvY2F0aW9uLgoJKHh0ZW5zYV9saXRlcmFsX3Bvc2l0aW9uLCB4dGVuc2Ffc3dpdGNoX3RvX2xpdGVyYWxfZnJhZ21lbnQpOiBGaXgKCWNhbGxzIHRvIHh0ZW5zYV9tYXJrX2xpdGVyYWxfcG9vbF9sb2NhdGlvbi4KCSh4dGVuc2FfY3JlYXRlX2xvY2FsX3N5bWJvbCk6IERlbGV0ZSBhbmQgaW5saW5lIHRoZSBjb2RlIGludG8uLi4KCSh4dGVuc2FfY3JlYXRlX2xpdGVyYWxfc3ltYm9sKTogLi4uaGVyZS4KCSh4dGVuc2FfZnJvYl9sYWJlbCk6IENvbWJpbmUgY29uZGl0aW9uYWxzLgoJKGV4cHJlc3Npb25fbWF5YmVfcmVnaXN0ZXIsIHh0ZW5zYV9zeW1ib2xfbmV3X2hvb2ssCglmaXhfbmV3X2V4cF9pbl9zZWcpOiBVc2Ugc3ltYm9sX2dldF90Yy4KCjIwMDMtMDktMDkgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBjb25maWcvdGMteHRlbnNhLmMgKHh0ZW5zYV9saXRlcmFsX3BzZXVkbyk6IFJlbW92ZSBjb2RlIGZvcgoJY29tYmluaW5nIGlkZW50aWNhbCBsaXRlcmFscy4KCShleHByZXNzaW9uX21heWJlX3JlZ2lzdGVyKTogUmVtb3ZlIGNhbGwgdG8gZmluZF9saXRfc3ltX3RyYW5zbGF0aW9uLgoJKGlzX2R1cGxpY2F0ZV9leHByZXNzaW9uLCBjYWNoZV9saXRlcmFsLCBpc19kdXBsaWNhdGVfbGl0ZXJhbCwKCWFkZF9saXRfc3ltX3RyYW5zbGF0aW9uLCBmaW5kX2xpdF9zeW1fdHJhbnNsYXRpb24pOiBEZWxldGUuCgoyMDAzLTA5LTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZG9jL2FzLnRleGluZm8gKENvbW1lbnRzKTogQ29tbWVudCBjaGFyYWN0ZXIgZm9yIFBQQyBpcyAjLgoKMjAwMy0wOS0wNiAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJUFIgc2F2YW5uYWgvNDM1ODoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAoc19tNjhoYzExX3JlbGF4KTogVXNlIDIgZm9yIHNpemUgdG8gYXZvaWQKCW92ZXJmbG93IGNvbXBsYWluLgoKMjAwMy0wOS0wNSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWZydi5jIChtZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiBIZWVkIFRDX0ZPUkNFX1JFTE9DQVRJT04uCgoyMDAzLTA5LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXY4NTAuYyAoc2V0X21hY2hpbmUpOiBBY2NlcHQgdjg1MGUxIG1hY2hpbmUgbnVtYmVyLgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCAudjg1MGUxIHBzZXVkbyBvcC4KCShtZF9zaG93X3VzYWdlKTogRG9jdW1lbnQgLW12ODUwZTEgc3dpdGNoLgoJKG1kX3BhcnNlX29wdGlvbik6IEFjY2VwdCAtbXY4NTBlMSBzd2l0Y2guCgkobWRfYmVnaW4pOiBBbGxvdyBUQVJHRVRfQ1BVIHRvIGJlIHY4NTBlMS4KCSogZG9jL2Mtdjg1MC50ZXhpOiBEb2N1bWVudCAtbXY4NTBlMSBzd2l0Y2ggYW5kIC52ODUwZTEgcHNldWRvIG9wLgoJKiBORVdTOiBNZW50aW9uIHN1cHBvcnQgZm9yIHY4NTBlMS4KCjIwMDMtMDktMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKG1kX3BhcnNlX29wdGlvbik6IEFkZCBQUENfT1BDT0RFX0FOWSB0byBleGlzdGluZwoJcHBjX2NwdSBzZWxlY3Rpb24gcmF0aGVyIHRoYW4gcmVwbGFjaW5nLgoJKHBwY19zZXRfY3B1KTogSWdub3JlIGFuZCBwcmVzZXJ2ZSBQUENfT1BDT0RFX0FOWSBpbiBwcGNfY3B1LgoJKG1kX2JlZ2luKTogV2hlbiBQUENfT1BDT0RFX0FOWSwgaW5zZXJ0IGFsbCBvcGNvZGVzIGluIHBwY19oYXNoLgoKMjAwMy0wOS0wMyAgUm9iZXJ0IE1pbGxhbiAgPHJvYmVydG1oQGdudS5vcmc+CgoJKiBjb25maWd1cmUuaW46IE1hdGNoIEdOVS9LRnJlZUJTRCB3aXRoIG5ldyBrZnJlZWJzZCotZ251Cgl0cmlwbGV0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTA5LTAyICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogVXBkYXRlIEFDX1BSRVJFUSB0byAyLjU3LiAgVXNlIEFDX0NPTkZJR19GSUxFUwoJYW5kIEFDX0NPTkZJR19DT01NQU5EUyBpbnN0ZWFkIG9mIHRoZSB0aHJlZS1hcmd1bWVudCBBQ19PVVRQVVQuCglTcGVjaWZ5IEFDX0NPTkZJR19BVVhfRElSLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlZCB3aXRoIGFjbG9jYWwtMS43LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkIHdpdGggYXV0b2NvbmYgMi41Ny4KCSogTWFrZWZpbGUuaW4sIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQgd2l0aCBhdXRvbWFrZS0xLjcuCgoyMDAzLTA4LTI5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGR3MmdlbmNmaS5jIChjZmlfcHNldWRvX3RhYmxlKTogQWRkIGNmaV93aW5kb3dfc2F2ZS4KCShkb3RfY2ZpLCBvdXRwdXRfY2ZpX2luc24pOiBIYW5kbGUgRFdfQ0ZBX0dOVV93aW5kb3dfc2F2ZS4KCShvdXRwdXRfY2llKTogRG9uJ3QgdXNlIERXX0VIX1BFX3BjcmVsIGlmIG5laXRoZXIgRElGRl9FWFBSX09LCglub3IgdGNfY2ZpX2VtaXRfcGNyZWxfZXhwciBhcmUgZGVmaW5lZC4KCShvdXRwdXRfZmRlKTogVXNlIHRjX2NmaV9lbWl0X3BjcmVsX2V4cHIgaWYgYXZhaWxhYmxlIGFuZAoJRElGRl9FWFBSX09LIGlzIG5vdCBkZWZpbmVkLgoJKiBjb25maWcvdGMtc3BhcmMuaCAoVEFSR0VUX1VTRV9DRklQT1ApOiBEZWZpbmUuCgkodGNfY2ZpX2ZyYW1lX2luaXRpYWxfaW5zdHJ1Y3Rpb25zLCB0Y19yZWduYW1lX3RvX2R3MnJlZ251bSwKCXRjX2NmaV9lbWl0X3BjcmVsX2V4cHIpOiBEZWZpbmUuCgkoc3BhcmNfY2ZpX2ZyYW1lX2luaXRpYWxfaW5zdHJ1Y3Rpb25zLCBzcGFyY19yZWduYW1lX3RvX2R3MnJlZ251bSwKCXNwYXJjX2NmaV9lbWl0X3BjcmVsX2V4cHIpOiBOZXcgcHJvdG90eXBlcy4KCShzcGFyY19jaWVfZGF0YV9hbGlnbm1lbnQpOiBOZXcgZGVjbC4KCShEV0FSRjJfREVGQVVMVF9SRVRVUk5fQ09MVU1OLCBEV0FSRjJfQ0lFX0RBVEFfQUxJR05NRU5UKTogRGVmaW5lLgoJKiBjb25maWcvdGMtc3BhcmMuYzogSW5jbHVkZSBkdzJnZW5jZmkuaC4KCShzcGFyY19jaWVfZGF0YV9hbGlnbm1lbnQpOiBOZXcgdmFyaWFibGUuCgkobWRfYmVnaW4pOiBJbml0aWFsaXplIGl0LgoJKHNwYXJjX2NmaV9mcmFtZV9pbml0aWFsX2luc3RydWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCShzcGFyY19yZWduYW1lX3RvX2R3MnJlZ251bSk6IExpa2V3aXNlLgoJKHNwYXJjX2NmaV9lbWl0X3BjcmVsX2V4cHIpOiBMaWtld2lzZS4KCSogZG9jL2FzLnRleGluZm86IERvY3VtZW50IC5jZmlfd2luZG93X3NhdmUuCgoJKiBjb25maWcvdGMtc3BhcmMuYyAoc19jb21tb24pOiBDYXN0IGxhc3QgYXJndW1lbnQgdG8gbG9uZyBhbmQKCWNoYW5nZSBmb3JtYXQgc3RyaW5nIHRvIHNodXQgdXAgd2FybmluZy4KCjIwMDMtMDgtMjUgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogZG9jL2MtaTg2MC50ZXhpOiBVcGRhdGUgdGV4dCBhYm91dCByZWxvY2F0YWJsZSBhZGRyZXNzIGV4cGFuc2lvbnMuCgoyMDAzLTA4LTI0ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvbmZpZy90Yy1pODYwLmMgKG1kX2Fzc2VtYmxlKTogVXNlIGlzcmMyIGZyb20gdGhlIG9yaWdpbmFsCglpbnN0cnVjdGlvbiB3aGVuIGV4cGFuZGluZyBFX0FERFIuCgoyMDAzLTA4LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vdHIucG86IFVwZGF0ZWQgVHVya2lzaCB0cmFuc2xhdGlvbi4KCjIwMDMtMDgtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKG1kX3BhcnNlX29wdGlvbik6IEFkZCBQUENfT1BDT0RFX0lTRUwgYW5kCglQUENfT1BDT0RFX1JGTUNJIHRvIC1tNDQwIHNlbGVjdGVkIHBwY19jcHUuCgoyMDAzLTA4LTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChjcF9hZGRyZXNzX3JlcXVpcmVkX2hlcmUpOiBBZGQgY29kZSB0byBoYW5kbGUKCXVuaW5kZXhlZCBhZGRyZXNzaW5nIG1vZGUuCgoyMDAzLTA4LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9wYXJzZV9vcHRpb24pOiBIYW5kbGUgLW00NDAuCgkobWRfc2hvd191c2FnZSk6IEFkZCAtbTQ0MC4KCShtZF9hcHBseV9maXgzKTogV2FybmluZyBmaXguCgkqIGRvYy9jLXBwYy50ZXhpOiBEb2N1bWVudCAtbTQ0MC4KCjIwMDMtMDgtMTYgIEJlbmphbWluIEthbHl0dGEgIDxia2F1c2JrQHdlYi5kZT4KCgkqIHJlYWQuYyAoc19wcmludCk6IENoZWNrIGZvciBOVUxMLgoKMjAwMy0wOC0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKGZpeHVwX3NlZ21lbnQpOiBXaGVuIGhhbmRsaW5nIGFuIGV4cHJlc3Npb24gaW52b2x2aW5nCgl0aGUgc3VidHJhY3Rpb24gb2YgdHdvIHN5bWJvbHMgaW4gdGhlIHNhbWUgc2VnbWVudCwgZG9uJ3QgY2xlYXIKCWZ4X3BjcmVsIGV4Y2VwdCBmb3IgVENfTTY4Sy4KCjIwMDMtMDgtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaTM4Ni5oOiBSZW1vdmUgQkZEX0FTU0VNQkxFUiB0ZXN0cyBhbmQgYWxsICFCRkRfQVNTRU1CTEVSCgljb2RlLgoJKiBjb25maWcvdGMtaTM4Ni5jOiBMaWtld2lzZS4KCShSRUxPQ19FTlVNKTogRG9uJ3QgZGVmaW5lLiAgUmVwbGFjZSB0aHJvdWdob3V0IHdpdGggZW51bS4KCgkqIGRlcC1pbi5zZWQ6IFJlbW92ZSBsaWJpbnRsLmguICBJZ25vcmUgaW5jbHVkZS9mb3Blbi0qLmgKCSogTWFrZWZpbGUuYW0gKFBPVEZJTEVTLmluKTogVW5zZXQgTENfQ09MTEFURS4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDgtMDggIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBjb25maWcvdGMtbTY4ay5oIChUQVJHRVRfVVNFX0NGSVBPUCkKCShEV0FSRjJfREVGQVVMVF9SRVRVUk5fQ09MVU1OLCBEV0FSRjJfQ0lFX0RBVEFfQUxJR05NRU5UKQoJKHRjX3JlZ25hbWVfdG9fZHcycmVnbnVtLCB0Y19jZmlfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMpOgoJRGVmaW5lLgoJKiBjb25maWcvdGMtbTY4ay5jOiBJbmNsdWRlICJkdzJnZW5jZmkuaCIuCgkodGNfbTY4a19yZWduYW1lX3RvX2R3MnJlZ251bSkKCSh0Y19tNjhrX2ZyYW1lX2luaXRpYWxfaW5zdHJ1Y3Rpb25zKTogTmV3IGZ1bmN0aW9ucy4KCjIwMDMtMDgtMDggRG1pdHJ5IERpa3kgPGRpd2lsQG1haWwucnU+CgoJKiBjb25maWcvdGMtbXNwNDMwLmM6IEFkZCB4VzQyIGFuZCB4RTQyIHBhcnRzLiBTb3J0IE1QVSBsaXN0CglhY2NvcmRpbmcgdG8gZ2NjIG9yZGVyLgoKMjAwMy0wOC0wNyAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb25maWcvdGMtaTg2MC5jIChpODYwX2NoZWNrX2xhYmVsKTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvdGMtaTg2MC5oIChpODYwX2NoZWNrX2xhYmVsKTogTmV3IHByb3RvdHlwZS4KCSh0Y19jaGVja19sYWJlbCk6IERlZmluZSBtYWNybyBhcyBpODYwX2NoZWNrX2xhYmVsLgoKMjAwMy0wOC0wNiAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb25maWcvdGMtaTg2MC5jIChzX2FsaWduX3dyYXBwZXIpOiBOZXcgZnVuY3Rpb24gYW5kIHByb3RvdHlwZS4KCShtZF9wc2V1ZG9fdGFibGUpOiBDaGFuZ2Ugc19hbGlnbl9ieXRlcyB0byBzX2FsaWduX3dyYXBwZXIsIHJlbW92ZQoJc3Vycm91bmRpbmcgT0JKX0VMRiBpZmRlZiwgYW5kIHJlLWZvcm1hdCBzbGlnaHRseS4KCSogZG9jL2MtaTg2MC50ZXhpOiBEb2N1bWVudCB0aGUgc3BlY2lhbCAuYWxpZ24gc3ludGF4IGF2YWlsYWJsZQoJaW4gSW50ZWwgbW9kZS4KCjIwMDMtMDgtMDYgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogY29uZmlnL3RjLWk4NjAuYyAoaTg2MF9oYW5kbGVfYWxpZ24pOiBOZXcgZnVuY3Rpb24uCgkqIGNvbmZpZy90Yy1pODYwLmggKEhBTkRMRV9BTElHTik6IERlZmluZSBtYWNyby4KCShNQVhfTUVNX0ZPUl9SU19BTElHTl9DT0RFKTogRGVmaW5lIG1hY3JvLgoKMjAwMy0wOC0wNiAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb25maWcvdGMtaTg2MC5jIChpODYwX3Byb2Nlc3NfaW5zbik6IENoZWNrIHRoYXQgaW5zdHJ1Y3Rpb25zCgl3aXRoIHRoZWlyIGR1YWwtYml0IHNldCBhcmUgOC1ieXRlIGFsaWduZWQuCgoyMDAzLTA4LTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoKMjAwMy0wOC0wNSAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb25maWcvdGMtaTg2MC5jIChpODYwX3Byb2Nlc3NfaW5zbik6IERvbid0IGhhbmRsZSBkdWFsLWJpdAoJc2V0dGluZyBkdXJpbmcgZmxvcCBhcmd1bWVudCBwYXJzaW5nLiAgSW5zdGVhZCwgZG8gaXQgYWZ0ZXIKCWluc3RydWN0aW9uIGlzIGZ1bGx5IHBhcnNlZC4KCjIwMDMtMDgtMDUgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogZG9jL2MtaTg2MC50ZXhpOiBNZW50aW9uIHRoYXQgLmR1YWwsIC5lbmRkdWFsLCBhbmQgLmF0bXAKCWRpcmVjdGl2ZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGluIEludGVsIHN5bnRheCBtb2RlLgoKMjAwMy0wOC0wNSAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb25maWcvdGMtaTg2MC5jIChzX2R1YWwpOiBBY2NlcHQgLmR1YWwgZGlyZWN0aXZlIG9ubHkgaW4KCXRoZSBJbnRlbCBzeW50YXggbW9kZS4KCShzX2VuZGR1YWwpOiBMaWtld2lzZSBmb3IgLmVuZGR1YWwuCgkoc19hdG1wKTogTGlrZXdpc2UgZm9yIC5hdG1wLgoKMjAwMy0wOC0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGkzODZfaW50ZWxfb3BlcmFuZCk6IEFsd2F5cyBjYWxsIGkzODZfaW5kZXhfY2hlY2sKCWZvciBtZW1vcnkgb3BlcmFuZHMuICBQYXNzIHRoZSBmdWxsIG9wZXJhbmRfc3RyaW5nIHRvIGkzODZfaW5kZXhfY2hlY2suCgoyMDAzLTA4LTAxICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGNvbmZpZy90Yy1pODYwLmM6IFJlbW92ZSBTWU5UQVhfU1ZSNCBtYWNybyBhbmQgb2NjdXJyZW5jZXMuCgkodGFyZ2V0X2ludGVsX3N5bnRheCk6IERlY2xhcmUgdmFyaWFibGUuCgkoT1BUSU9OX0lOVEVMX1NZTlRBWCk6IERlY2xhcmUgbWFjcm8uCgkobWRfbG9uZ29wdHMpOiBBZGQgb3B0aW9uIC1taW50ZWwtc3ludGF4LgoJKG1kX3BhcnNlX29wdGlvbik6IFNldCB0YXJnZXRfaW50ZWxfc3ludGF4LgoJKG1kX3Nob3dfdXNhZ2UpOiBBZGQgLW1pbnRlbC1zeW50YXggdXNhZ2UuCgkobWRfYmVnaW4pOiBTZXQgcmVnX3ByZWZpeCBiYXNlZCBvbiB0YXJnZXRfaW50ZWxfc3ludGF4LgoJKGk4NjBfcHJvY2Vzc19pbnNuKTogU2tpcCByZWdpc3RlciBwcmVmaXggb25seSBpZiB0aGVyZSBpcyBvbmUuCglQYXJzZSByZWxvY2F0YWJsZSBleHByZXNzaW9ucyBpbiBlaXRoZXIgSW50ZWwgb3IgQVQmVCBzeW50YXggYmFzZWQKCW9uIHRhcmdldF9pbnRlbF9zeW50YXggaW5zdGVhZCBvZiB0aGUgU1lOVEFYX1NWUjQgbWFjcm8uCgkqIGRvYy9jLWk4NjAudGV4aTogRG9jdW1lbnQgLW1pbnRlbC1zeW50YXggb3B0aW9uIGFuZCBnaXZlIGJsdXJiCglhYm91dCB0aGUgZGlmZmVyZW5jZXMgaW4gc3ludGF4LgoKMjAwMy0wOC0wMSAgRG1pdHJ5IERpa3kgIDxkaXdpbEBtYWlsLnJ1PgoKCSogY29uZmlnL3RjLW1zcDQzMC5jIChtc3A0MzBfc3Jjb3BlcmFuZCk6IEV4dGVuZCAncHVzaCcgYnVnIHdvcmthcm91bmQKCXRvIGFsbCBhcmNoZXMuCgoyMDAzLTA3LTMwICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9hc3NlbWJsZSk6IEZvciBicmFuY2hlcywgY2hlY2sgJiB1cGRhdGUKCXZhbGlkX2FyY2ggaGVyZS4KCjIwMDMtMDctMzAgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogY29uZmlnL3RjLWk4NjAuYzogQ29udmVydCB0byBJU08gQzkwLgoKMjAwMy0wNy0zMCAgUmFpbmVyIE9ydGggIDxyb0BUZWNoRmFrLlVuaS1CaWVsZWZlbGQuREU+CgoJKiByZWFkLmMgKHNfc3BhY2UpOiBSZXZlcnQgMjAwMy0wNy0yOCBjaGFuZ2UuCgoyMDAzLTA3LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IEFsbG93ICJ4IiBmb3IgLm5vdGUqLgoKMjAwMy0wNy0yOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1zaC5jICh0Y19nZW5fcmVsb2MpOiBUZXN0IGZvciBSX1NIX0lORDEyVyBvbmx5IHdoZW4gRUxGLgoKMjAwMy0wNy0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKG1kX2FwcGx5X2ZpeDMpOiBGaXggY2hlY2sgZm9yIGxxIGluc25zLgoKMjAwMy0wNy0yOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9zZWN0aW9uX3R5cGUpOiBBbHNvIGFjY2VwdCAibm90ZSIuCgoyMDAzLTA3LTI4ICBSYWluZXIgT3J0aCAgPHJvQFRlY2hGYWsuVW5pLUJpZWxlZmVsZC5ERT4KCgkqIHJlYWQuYyAoc19zcGFjZSk6IERvbid0IHdhcm4gYWJvdXQgLnNwYWNlIDAuCgoyMDAzLTA3LTI4ICBSYWluZXIgT3J0aCAgPHJvQFRlY2hGYWsuVW5pLUJpZWxlZmVsZC5ERT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfZmxhZ19wZHIpOiBEZWZpbmUuCgkobWRfYmVnaW4pIFtPQkpfRUxGXTogVXNlIGl0IHRvIGNvbnRyb2wgLnBkciBjcmVhdGlvbi4KCShzX21pcHNfZW5kKSBbT0JKX0VMRl06IExpa2V3aXNlLgoJKG1kX2xvbmdvcHRzKSBbT0JKX0VMRl06IERlZmluZSBPUFRJT05fUERSLCBPUFRJT05fTk9fUERSLgoJKG1kX3BhcnNlX29wdGlvbikgW09CSl9FTEZdOiBIYW5kbGUgdGhlbS4KCShtZF9zaG93X3VzYWdlKSBbT0JKX0VMRl06IERvY3VtZW50IC1tcGRyLCAtbW5vLXBkci4KCgkqIGRvYy9jLW1pcHMudGV4aSAoTUlQUyBPcHRzKTogRG9jdW1lbnQgLW1wZHIsIC1tbm8tcGRyLgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpIFtNSVBTXTogTGlrZXdpc2UuCgoyMDAzLTA3LTI1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogVXBkYXRlCgllbGZfc2VjdGlvbl90eXBlIGFuZCBlbGZfc2VjdGlvbl9mbGFncyBvbmx5IHdoZW4gdGhleSBhcmUKCXNwZWNpZmllZC4KCjIwMDMtMDctMjUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKG9ial9lbGZfY2hhbmdlX3NlY3Rpb24pOiBBbHdheXMgc2V0IHNlY3Rpb24KCXR5cGUgYW5kIGZsYWdzLgoKMjAwMy0wNy0yNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL29iai1lbGYuYyAoc3BlY2lhbF9zZWN0aW9ucyk6IFJlbW92ZWQuCgkob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IENhbGwgX2JmZF9lbGZfZ2V0X3NlY190eXBlX2F0dHIuIFNldAoJZWxmX3NlY3Rpb25fdHlwZSBhbmQgZWxmX3NlY3Rpb25fZmxhZ3MuCgkoZWxmX2Zyb2JfZmlsZSk6IFNldCBTSFRfR1JPVVAuCgoJKiBjb25maWcvb2JqLWVsZi5oIChvYmpfc2VjX3NldF9wcml2YXRlX2RhdGEpOiBOZXcuCgoJKiBjb25maWcvdGMtYWxwaGEuaCAoRUxGX1RDX1NQRUNJQUxfU0VDVElPTlMpOiBSZW1vdmVkLgoJKiBjb25maWcvdGMtaWE2NC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW0zMnIuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tNjhoYzExLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbWNvcmUuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1taXBzLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcHBjLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2g2NC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXY4NTAuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy14dGVuc2EuaDogTGlrZXdpc2UuCgoJKiBjb25maWcvdGMtdjg1MC5oIChTSEZfVjg1MF9HUFJFTCk6IFJlbW92ZWQuCgkoU0hGX1Y4NTBfRVBSRUwpOiBMaWtld2lzZS4KCShTSEZfVjg1MF9SMFJFTCk6IExpa2V3aXNlLgoKCSogc3Vic2Vncy5jIChzdWJzZWdfZ2V0KTogQ2FsbCBvYmpfc2VjX3NldF9wcml2YXRlX2RhdGEgaWYgaXQKCWlzIGRlZmluZWQuCgoyMDAzLTA3LTI0ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmggKERXQVJGMl9BRERSX1NJWkUpOiBVc2UgMzItYml0IGFkZHJlc3MgZm9yCglkZWJ1Z2dpbmcgc3ltYm9scyBzbyB0aGF0IHdlIGhhbmRsZSBwYWdlIG1lbW9yeSBjb3JyZWN0bHkuCgoyMDAzLTA3LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoKMjAwMy0wNy0yMyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9hcmNocyk6IEFkZCBpd21teHQuCgoyMDAzLTA3LTIyICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIHJlYWQuYyAoZG9fcGFyc2VfY29uc19leHByZXNzaW9uKTogTWFyayBuYnl0ZXMgdW51c2VkIHRvCglzaWxlbmNlIGdjYy4KCjIwMDMtMDctMjIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWg4MzAwLmMgKGdldF9zcGVjaWZpYyk6IE5vIFBDUkVMOCBlbmNvZGluZyBmb3IgYnNyL2JjCglvciBic3IvYnMuCgoJKiBjb25maWcvdGMtaDgzMDAuYyAobWRfYXNzZW1ibGUpOiBNYWtlIHN1cmUgY2hhcmFjdGVycyBhZnRlcgoJc2xhc2ggYW5kIGRvdCBhcmUgbG93ZXItY2FzZS4KCjIwMDMtMDctMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9lcy5wbzogTmV3IFNwYW5pc2ggdHJhbnNsYXRpb24uCgkqIHBvL3RyLnBvOiBOZXcgVHVya2lzaCB0cmFuc2xhdGlvbi4KCSogcG8vb3Bjb2Rlcy5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAzLTA3LTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZHdhcmYyZGJnLmMgKGdldF9mcmFnX2ZpeCk6IFJldmVydCAyMDAxLTExLTE1IGNoYW5nZS4KCShnZW5lcmljX2R3YXJmMl9lbWl0X29mZnNldCk6IERvbid0IGRlZmluZSBmdW5jdGlvbiB3aGVuCglUQ19fRFdBUkYyX0VNSVRfT0ZGU0VUIGlzIGRlZmluZWQuCgoyMDAzLTA3LTE1ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChoaWxvX2ludGVybG9ja3MpOiBUcnVlIGZvciBDUFVfUk03MDAwLgoJKG1pcHNfY3B1X2luZm9fdGFibGUpOiBBZGQgcm03MDAwIGFuZCBybTkwMDAgZW50cmllcy4KCSogZG9jL2MtbWlwcy50ZXhpOiBEb2N1bWVudCAtbWFyY2g9cm05MDAwLgoKMjAwMy0wNy0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy12ODUwLmMgKG1kX2Fzc2VtYmxlKTogV2hlbiBubyByZWxvYywgY3JlYXRlIHBjcmVsIGZpeHVwcwoJb25seSBmb3IgVjg1MF9PUEVSQU5EX0RJU1Agb3BlcmFuZHMuCgoyMDAzLTA3LTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZnJhZ3MuYyAoZnJhZ19tb3JlKTogTW92ZSBzZWdtZW50IGNoZWNrcyB0by4uCgkoZnJhZ19hbGxvY19jaGVjayk6IC4uaGVyZS4gIE5ldyBmdW5jdGlvbi4KCShmcmFnX2FwcGVuZF8xX2NoYXIpOiBDYWxsIGZyYWdfYWxsb2NfY2hlY2suCgoyMDAzLTA3LTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vdHIucG86IFVwZGF0ZSB3aXRoIGxhdGVzdCB2ZXJzaW9uLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vZ2FzLnBvdDogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wNy0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pcDJrLmM6IFJlbW92ZSBpbmNsdXNpb24gb2YgPGN0eXBlLmg+CgkqIGNvbmZpZy90Yy10aWM0eC5jOiBSZXBsYWNlIGluY2x1c2lvbiBvZiA8Y3R5cGUuaD4gd2l0aAoJInNhZmUtY3R5cGUuaCIgYW5kIHVwZGF0ZSB1c2Ugb2YgbWFjcm9zLgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTA3LTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcG8vZ2FzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDMtMDctMTAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5oIChEV0FSRjJfTElORV9NSU5fSU5TTl9MRU5HVEgpOiBEZWZpbmUgYWx3YXlzLgoJKFRBUkdFVF9VU0VfQ0ZJUE9QLCB0Y19jZmlfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMsCgl0Y19yZWduYW1lX3RvX2R3MnJlZ251bSwgRFdBUkYyX0RFRkFVTFRfUkVUVVJOX0NPTFVNTiwKCURXQVJGMl9DSUVfREFUQV9BTElHTk1FTlQpOiBEZWZpbmUuCgkocHBjX2NmaV9mcmFtZV9pbml0aWFsX2luc3RydWN0aW9ucywgdGNfcHBjX3JlZ25hbWVfdG9fZHcycmVnbnVtKTogTmV3Cglwcm90b3R5cGVzLgoJKHBwY19jaWVfZGF0YV9hbGlnbm1lbnQpOiBEZWNsYXJlLgoJKiBjb25maWcvdGMtcHBjLmM6IEluY2x1ZGUgZHcyZ2VuY2ZpLmguCgkocHBjX2NpZV9kYXRhX2FsaWdubWVudCk6IERlZmluZS4KCShtZF9iZWdpbik6IEluaXRpYWxpemUgcHBjX2NpZV9kYXRhX2FsaWdubWVudC4KCShwcGNfY2ZpX2ZyYW1lX2luaXRpYWxfaW5zdHJ1Y3Rpb25zLCB0Y19wcGNfcmVnbmFtZV90b19kdzJyZWdudW0pOiBOZXcKCWZ1bmN0aW9ucy4KCSogY29uZmlnL3RjLXMzOTAuaCAoRFdBUkYyX0xJTkVfTUlOX0lOU05fTEVOR1RIKTogRGVmaW5lIGFsd2F5cy4KCShUQVJHRVRfVVNFX0NGSVBPUCwgdGNfY2ZpX2ZyYW1lX2luaXRpYWxfaW5zdHJ1Y3Rpb25zLAoJdGNfcmVnbmFtZV90b19kdzJyZWdudW0sIERXQVJGMl9ERUZBVUxUX1JFVFVSTl9DT0xVTU4sCglEV0FSRjJfQ0lFX0RBVEFfQUxJR05NRU5UKTogRGVmaW5lLgoJKHMzOTBfY2ZpX2ZyYW1lX2luaXRpYWxfaW5zdHJ1Y3Rpb25zLCB0Y19zMzkwX3JlZ25hbWVfdG9fZHcycmVnbnVtKToKCU5ldyBwcm90b3R5cGVzLgoJKHMzOTBfY2llX2RhdGFfYWxpZ25tZW50KTogRGVjbGFyZS4KCSogY29uZmlnL3RjLXMzOTAuYzogSW5jbHVkZSBkdzJnZW5jZmkuaC4KCShzMzkwX2NpZV9kYXRhX2FsaWdubWVudCk6IERlZmluZS4KCShtZF9iZWdpbik6IEluaXRpYWxpemUgczM5MF9jaWVfZGF0YV9hbGlnbm1lbnQuCgkoczM5MF9jZmlfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMsIHRjX3MzOTBfcmVnbmFtZV90b19kdzJyZWdudW0pOgoJTmV3IGZ1bmN0aW9ucy4KCjIwMDMtMDctMTAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCTIwMDItMTItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtbW4xMDMwMC5oIChFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEb24ndCBkZWZpbmUgdG8gemVyby4KCTIwMDEtMDUtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWd1cmUuaW4gKGFtMzNfMi4wLCBtbjEwMzAwLSotbGludXgqKTogQWRkZWQuCgkqIGNvbmZpZ3VyZTogUmVidWlsdC4KCSogY29uZmlnL3RjLW1uMTAzMDAuaCAoVEFSR0VUX0ZPUk1BVCkgW1RFX0xJTlVYXTogRGVmaW5lIHRvCgllbGYzMi1hbTMzbGluLgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChtZF9iZWdpbikgW1RFX0xJTlVYXTogQ2hvb3NlIEFNMzMvMi4wCglieSBkZWZhdWx0LgoKMjAwMy0wNy0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJMjAwMy0wMi0yNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKG1uMTAzMDBfY2hlY2tfZml4dXApOiBTZXQgR09UX1BDUkVMIHR5cGUKCWZvciBzdWJ0cmFjdHMgZnJvbSBHTE9CQUxfT0ZGU0VUX1RBQkxFIHRoYXQgY291bGQgbm90IGJlCglzaW1wbGlmaWVkLgoJMjAwMi0wNy0xOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKG1uMTAzMDBfY2hlY2tfZml4dXApOiBBY2NlcHQgc3VidHJhY3RzIHRoYXQKCWNvdWxkIG5vdCBiZSBzaW1wbGlmaWVkLgoJKHRjX2dlbl9yZWxvYyk6IFR1cm4gYW4gYWJzb2x1dGUgZnhfc3Vic3kgaW50byBwYXJ0IG9mIGZ4X29mZnNldC4KCTIwMDEtMTEtMDQgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtbW4xMDMwMC5oIChUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBhZGp1c3QKCUJERl9SRUxPQ19NTjEwMzAwX0dPVDMyLgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChtbjEwMzAwX2ZpeF9hZGp1c3RhYmxlKTogSWYKCVRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCBkb2Vzbid0IGhvbGQsIGl0J3Mgbm90IGFkanVzdGFibGUuCgkyMDAxLTA1LTA5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobW4xMDMwMF9wYXJzZV9uYW1lKTogRG9uJ3QgcmV0dXJuIGEKCXN5bWJvbCBpZiB3ZSBrbm93IGl0cyB2YWx1ZS4KCTIwMDEtMDUtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtbW4xMDMwMC5oIChHTE9CQUxfT0ZGU0VUX1RBQkxFX05BTUUpOiBSZW1vdmUKCWR1cGxpY2F0ZSB1bmRlcnNjb3JlIHByZWZpeC4KCTIwMDEtMDUtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChtbjEwMzAwX3BhcnNlX25hbWUpOiBTdG9yZSByZWxvY2F0aW9uCgl0eXBlIGluIFhfbWQsIG5vdCBYX2FkZF9udW1iZXIuICBaZXJvIFhfYWRkX251bWJlci4KCShtbjEwMzAwX2NoZWNrX2ZpeHVwKTogRXh0cmFjdCByZWxvY2F0aW9uIHR5cGUgZnJvbSBYX21kLgoJKiBjb25maWcvdGMtbW4xMDMwMC5oOiBVcGRhdGUgY29tbWVudC4KCTIwMDEtMDQtMTQgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtbW4xMDMwMC5oIChPX0dPVE9GRiwgT19QTFQsIE9fR09UKTogUmVwbGFjZSB3aXRoLi4uCgkoT19QSUNfcmVsb2MpOiB0aGlzLgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChtbjEwMzAwX1BJQ19yZWxhdGVkX3ApOiBVc2UgaXQuCgkobW4xMDMwMF9jaGVja19maXh1cCk6IExpa2V3aXNlLgoJKG1uMTAzMDBfcGFyc2VfbmFtZSk6IFNldCBYX2FkZF9udW1iZXIgdG8gcmVsb2NhdGlvbiB0eXBlLgoJKiBjb25maWcvdGMtbW4xMDMwMC5oIChESUZGX0VYUFJfT0ssIEdMT0JBTF9PRkZTRVRfVEFCTEVfTkFNRSwKCVRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCwgbWRfcGFyc2VfbmFtZSwgVENfQ09OU19GSVhfTkVXLAoJT19HT1RPRkYsIE9fUExULCBPX0dPVCk6IERlZmluZS4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobW4xMDMwMF9QSUNfcmVsYXRlZF9wKTogTmV3IGZuLgoJKG1uMTAzMDBfY2hlY2tfZml4dXApOiBOZXcgZm4uCgkobWRfYXNzZW1ibGUpOiBDYWxsIGl0LiAgQ2hlY2sgZm9yIFBJQy1yZWxhdGVkIHJlbG9jcy4KCShtbjEwMzAwX2NvbnNfZml4X25ldyk6IExpa2V3aXNlLiAgTmV3IGZuLgoJKG1uMTAzMDBfZW5kX29mX21hdGNoKTogTmV3IGZuLgoJKG1uMTAzMDBfbWRfcGFyc2VfbmFtZV9jb250KTogTmV3IGZuLgoKMjAwMy0wNy0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJMjAwMC0wNS0yNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKG1uMTAzMDBfaW5zZXJ0X29wZXJhbmQpOiBOZWdhdGUgbmVnYXRpdmUKCWFjY3VtdWxhdG9yJ3Mgc2hpZnQuCgkyMDAwLTA1LTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobWRfcmVsYXhfdGFibGUsIG1kX2NvbnZlcnRfZnJhZywKCW1kX2Fzc2VtYmxlLCBtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IEhhbmRsZSBmYkNDLgoJMjAwMC0wNC0yMCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKEhBVkVfQU0zMyk6IFJlZGVmaW5lIGluIHRlcm1zIG9mCglIQVZFX0FNMzNfMi4KCTIwMDAtMDQtMDMgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChtZF9wc2V1ZG9fdGFibGUpOiBVc2UgQU0zM18yIGNvbnN0YW50LgoJKEhBVkVfQU0zMyk6IE1hdGNoIEFNMzNfMiB0b28uCgkoSEFWRV9BTTMzXzIpOiBOZXcgbWFjcm8uCgkobWRfYXNzZW1ibGUpOiBVc2UgaXQuICBNYXRjaCAyLjAgcmVnaXN0ZXJzIG9ubHkgaWYgSEFWRV9BTTMzXzIuCgkyMDAwLTA0LTAxICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobWRfcHNldWRvX3RhYmxlKTogQWRkZWQgYGFtMzNfMicuCgkoZmxvYXRfcmVnaXN0ZXJzLCBkb3VibGVfcmVnaXN0ZXJzKTogTmV3IHZhcmlhYmxlcy4KCShmbG9hdF9yZWdpc3Rlcl9uYW1lLCBkb3VibGVfcmVnaXN0ZXJfbmFtZSk6IE5ldyBmdW5jdGlvbnMuCgkobWRfYXNzZW1ibGUpOiBSZWNvZ25pemUgRlAgcmVnaXN0ZXJzLiAgSW1wbGVtZW50IEZNVF9EMy4KCShtbjEwMzAwX2luc2VydF9vcGVyYW5kKTogU3VwcG9ydCBGUCByZWdpc3RlcnMuCgoyMDAzLTA3LTA4ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc192YWxpZGF0ZV9maXgpOiBEbyBub3Qgd2FybiBhYm91dCBicmFuY2gKCXRhcmdldCBiZWluZyBhIGdsb2JhbCBzeW1ib2wgaWYgbm90IGNvbXBpbGluZyBTVlI0IFBJQyBjb2RlLgoKMjAwMy0wNy0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGRvYy9jLW0zMnIudGV4aSAoTTMyUi1EaXJlY3RpdmVzKTogTmV3IG5vZGUuICBEb2N1bWVudCB0aGUKCS5oaWdoLCAuc2hpZ2ggYW5kIC5sb3cgZGlyZWN0aXZlcy4KCjIwMDMtMDctMDcgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChoODMwMHN4bm1vZGUpOiBBZGQgcHJvdG90eXBlLgoJKERTWU1NT0RFKTogUmVtb3ZlLgoJKHBhcnNlX2V4cCk6IFJlcGxhY2UgZXhwcmVzc2lvblMgYXJndW1lbnQgd2l0aCBhIGg4X29wLiAgUGFyc2UgdGhlCglvcGVyYW5kIHNpemUgYXMgd2VsbC4KCShza2lwX2NvbG9udGhpbmcpOiBSZW1vdmUgdW51c2VkIGV4cHJlc3Npb24gYXJndW1lbnQuICBUaWdodGVuIGNoZWNrcwoJZm9yIDItZGlnaXQgc2l6ZXMuCgkoY29sb25tb2QyNCk6IFJlbW92ZS4KCShnZXRfbW92YV9vcGVyYW5kcyk6IENvbWJpbmUgY2FsbHMgdG8gcGFyc2VfZXhwIGFuZCBza2lwX2NvbG9udGhpbmcuCgkoZ2V0X29wZXJhbmQpOiBMaWtld2lzZS4gIFVzZSB0aGUgc3RhbmRhcmQgY29kZSB0byByZWFkIHRoZSBzaXplIG9mCglwYy1yZWxhdGl2ZSBvcGVyYW5kcy4KCShmaXhfb3BlcmFuZF9zaXplKTogSW5jbHVkZSB0aGUgc2l6ZS1ndWVzc2luZyBsb2dpYyB0aGF0IHVzZWQgdG8gYmUKCWluIGNvbG9ubW9kMjQgYW5kIGdldF9vcGVyYW5kLiAgRG9uJ3QgYXBwbHkgZGQ6MiBvcHRpbWl6YXRpb25zIHRvCglvZmZzZXRzIHdpdGggYSBzeW1ib2xpYyBjb21wb25lbnQuCgoyMDAzLTA3LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAodGNfeDg2X3JlZ25hbWVfdG9fZHcycmVnbnVtKTogVXNlIEFSUkFZX1NJWkUKCW1hY3JvIHRvIGNvbXB1dGUgc2l6ZSBvZiBzZWxlY3RlZCByZWdpc3RlciBuYW1lIGFycmF5LgoKMjAwMy0wNy0wMSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKG1kX3BhcnNlX29wdGlvbik6IEFkZCBjcHUgdHlwZSB6OTkwLgoJKG1kX2JlZ2luKTogQWRkIG1pbmltYWwgY3B1IHR5cGUgbG9naWMgZm9yIGluc3RydWN0aW9ucyB3aXRoIGRpZmZlcmVudAoJYmluYXJ5IGZvcm1hdCBkZXBlbmRpbmcgb24gdGhlIGNwdS4KCShtZF9hc3NlbWJsZSk6IFJlbW92ZSBjaGVjayBmb3IgbWluaW1hbCBjcHUuCgkoczM5MF9pbnNlcnRfb3BlcmFuZCk6IEFkZCBzdXBwb3J0IGZvciBsb25nIGRpc3BsYWNlbWVudHMuCgkobWRfZ2F0aGVyX29wZXJhbmRzKTogTGlrZXdpc2UuCgkodGNfczM5MF9maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKHRjX3MzOTBfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCjIwMDMtMDYtMzAgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChzX21pcHNzZXQpOiBJbXBsZW1lbnQgLW1hcmNoPSBoYW5kbGluZwoJZGlmZmVyZW50bHkuCgoyMDAzLTA2LTMwICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYzogQ29udmVydCB0byBJU08gQzkwIHByb3RvdHlwZXMuIFJlbW92ZSB1bm5lY2Vzc2FyeQoJcHJvdG90eXBlcyBhbmQgY2FzdHMuIFJlcGxhY2UgUFRSIHdpdGggdm9pZCAqLiBSZWZvcm1hdC4KCSogY29uZmlnL3RjLW1pcHMuaDogTGlrZXdpc2UuCgoyMDAzLTA2LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWlhNjQuYyAobm90ZV9yZWdpc3Rlcl92YWx1ZXMpOiBXYXJuaW5nIGZpeC4KCSogY29uZmlnL3RjLW1pcHMuYyAoYXBwZW5kX2luc24pOiBMaWtld2lzZS4KCjIwMDMtMDYtMjkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX3NldF9vcHRpb25zLG1pcHNfb3B0cyk6IFN1cHBvcnQgZm9yCgkuc2V0IGFyY2g9Rk9PLgoJKGZpbGVfbWlwc19hcmNoKTogUmVuYW1lIG1pcHNfYXJjaC4KCShtaXBzX2FyY2hfaW5mbyxtaXBzX3R1bmVfaW5mbyk6IFJlbW92ZS4KCShoaWxvX2ludGVybG9ja3MsZ3ByX2ludGVybG9ja3MsY29wX2ludGVybG9ja3MpOiBVc2UgbWlwc19vcHRzLmFyY2guCgkobWlwc19jcHVfaW5mb19mcm9tX2FyY2gpOiBOZXcgZnVuY3Rpb24uCgkobWRfYmVnaW4pOiBVc2UgZmlsZV9taXBzX2FyY2guCgkobWFjcm9fYnVpbGQsbWFjcm8sbWlwc19pcCk6IFVzZSBtaXBzX29wdHMuYXJjaC4KCShtaXBzX3NldF9hcmNoaXRlY3R1cmUpOiBJbml0IGZpbGVfbWlwc19hcmNoIGFuZCBtaXBzX29wdHMuYXJjaC4KCShtaXBzX2FmdGVyX3BhcnNlX2FyZ3MpOiBSZW1vdmUgbWlwc19hcmNoX2luZm8gYW5kIG1pcHNfdHVuZV9pbmZvLgoJVXNlIGZpbGVfbWlwc19hcmNoLgoJKHNfbWlwc3NldCk6IFN1cHBvcnQgZm9yIC5zZXQgYXJjaD1GT08uCgkobWlwc19jcHVfaW5mb190YWJsZSk6IEZpeCB0eXBvLgoKMjAwMy0wNi0yNiAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtZF9hc3NlbWJsZSk6IERlY2xhcmUgImV4cCIgYmVmb3JlICJpZiIuCgoyMDAzLTA2LTI1ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoZ2V0X3NwZWNpZmljKTogQWxsb3cgJzo4JyB0byBiZSB1c2VkIGZvcgoJdW5zaWduZWQgOC1iaXQgb3BlcmFuZHMuCgoyMDAzLTA2LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZC5jIChzX2NvbW0pOiBDaGFuZ2UgZXJyb3IgbWVzc2FnZSB0byBhc3N1bWUgYW4gdW5zaWduZWQgc2l6ZQoJaGFzIGJlZW4gcGFzc2VkIHRvIC5jb21tLgoJKiBjb25maWcvdGMtc3BhcmMuYyAoc19jb21tb24pOiBMaWtld2lzZS4KCSogd3JpdGUuYyAod3JpdGVfY29udGVudHMpOiBSZXBsYWNlICd1bnNpZ25lZCBsb25nJyB3aXRoCgknYWRkcmVzc1QnIGFuZCAnbG9uZycgd2l0aCBvZmZzZXRUIGluIG9yZGVyIHRvIGFsbG93IGNvbXB1dGF0aW9ucwoJd2l0aCB2ZXJ5IGxhcmdlIHZhbHVlcyB0byB3b3JrIGZvciA2NC1iaXQgYWRkcmVzc2VkIHRhcmdldHMuCgkocmVsYXhfYW5kX3NpemVfYWxsX3NlZ21lbnRzKTogTGlrZXdpc2UuCgkocmVsYXhfZnJhZyk6IExpa2V3aXNlLgoJKHJlbGF4X3NlZ21lbnQpOiBMaWtld2lzZS4KCjIwMDMtMDYtMjMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19jbGVhbnVwKTogVXNlIGJ5dGVzIHRvIGNvdW50IEFQVWluZm8gc2xvdHMuCgoyMDAzLTA2LTIzICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGdhcy9jb25maWcvdGMtaTM4Ni5jIChtZF9hc3NlbWJsZSk6IFN1cHBvcnQgSW50ZWwgUHJlY290dCBOZXcKCUluc3RydWN0aW9ucy4KCgkqIGdhcy9jb25maWcvdGMtaTM4Ni5oIChDcHVQTkkpOiBOZXcuCgkoQ3B1VW5rbm93bkZsYWdzKTogQWRkIENwdVBOSS4KCjIwMDMtMDYtMjMgICAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogY29uZmlnL3RjLWlhNjQuYyAocHNldWRvX2Z1bmMpOiBBZGQgQUJJIGNvbnN0YW50cyBmb3IgbGludXgsCglmcmVlYnNkLCBvcGVudm1zLCBhbmQgbnNrIChub24tc3RvcCBrZXJuZWwpLgoKMjAwMy0wNi0yMiAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy90Yy1uczMyay5jIChtZF9iZWdpbik6IEluaXRpYWxpemUgaW5zdF9oYXNoX3RhYmxlIGFmdGVyCglhbGwgbG9jYWxzIGhhdmUgYmVlbiBkZWNsYXJlZC4KCjIwMDMtMDYtMjEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChBRERSRVNTX0FERF9JTlNOLEFERFJFU1NfQURESV9JTlNOKTogUmVtb3ZlCglzcGVjaWFsIGhhbmRsaW5nIGZvciBuMzIgQUJJLgoJKG1hY3JvKTogTGlrZXdpc2UuCgoyMDAzLTA2LTE5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19jcHNldHVwLHNfY3ByZXN0b3JlLHNfY3ByZXR1cm4pOiBSZXZlcnQKCTIwMDMtMDYtMTEgY2hhbmdlLgoKMjAwMy0wNi0xOSAgQ2hyaXN0aWFuIEdyb2Vzc2xlciAgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBjb25maWcvdGMtejhrLmMgKHBhcnNlX3JlZyk6IEludmFsaWQgcmVnaXN0ZXJzIGdlbmVyYXRlIGFuIGVycm9yCglub3csIG5vdCBvbmx5IGEgd2FybmluZy4gIEFkZCBzb21lIG1vcmUgY2hlY2tzIHRvIGRldGVjdCBpbnZhbGlkCglyZWdpc3RlcnMuCgkoZ2V0X29wZXJhbmQpOiBGb3IgQ0xBU1NfSVIgcmVtZW1iZXIgcmVnaXN0ZXIgc2l6ZSBpbiBtb2RlIHN0cnVjdC4KCShnZXRfc3BlY2lmaWMpOiBIYW5kbGUgbmV3IENMQVNTX0lSTyB0eXBlLiAgQWRkIHJlZ2lzdGVyIHNpemUKCWNoZWNrcyBmb3IgQ0xBU1NfSVIgYW5kIENMQVNTX0lSTy4KCShtZF9hcHBseV9maXgzKTogRml4IHVuZGVmaW5lZCB1c2FnZSBvZiBidWYuCgoyMDAzLTA2LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfY3NlY3QpOiBQYXNzIGFsaWdubWVudCB0byBwcGNfY2hhbmdlX2NzZWN0LgoJKHBwY19jaGFuZ2VfY3NlY3QpOiBBZGQgYWxpZ24gcGFyYW0uICBBbGlnbiBmcmFnIGF0IHN0YXJ0IG9mIGNzZWN0LgoJKHBwY19zZWN0aW9uLCBwcGNfbmFtZWRfc2VjdGlvbik6IEFkanVzdCBwcGNfY2hhbmdlX2NzZWN0IGNhbGxzLgoJKHBwY19mcm9iX3NlY3Rpb24pOiBBbGlnbiB2bWEuCgoyMDAzLTA2LTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGR3MmdlbmNmaS5jIChFSF9GUkFNRV9BTElHTk1FTlQpOiBEZWZpbmUgaWYgbm90IGRlZmluZWQuCgkob3V0cHV0X2NpZSk6IERvbid0IHBhZC4KCShvdXRwdXRfZmRlKTogQWRkIGFsaWduIGFyZ3VtZW50LiAgUGFkIHRvIGFsaWduIGlmIG5vdCAwLgoJKGNmaV9maW5pc2gpOiBTZXQgLmVoX2ZyYW1lIGFsaWdubWVudCB0byBFSF9GUkFNRV9BTElHTk1FTlQuCglQYWQganVzdCBsYXN0IEZERSB0byBFSF9GUkFNRV9BTElHTk1FTlQuCgoyMDAzLTA2LTE4ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3RjLXMzOTAuYyAoaW5pdF9kZWZhdWx0X2FyY2gpOiBNYWtlIGN1cnJlbnRfbW9kZV9tYXNrCglkZXBlbmRlbnQgb24gczM5MF9hcmNoX3NpemUgYW5kIGN1cnJlbnRfY3B1IGRlcGVuZGVudCBvbgoJY3VycmVudF9tb2RlX21hc2suCgoyMDAzLTA2LTE4ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBjNHggYXMgYW4gYXJjaGl0ZWN0dXJlIHZhcmlhbnQgdG8gdGljNHguCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDYtMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19lbGZfc3VmZml4KTogRG9uJ3QgcmVtb3ZlIHN5bWJvbHMgb3RoZXIgdGhhbgoJIi5UT0MuIiBmcm9tIFBQQzY0X1RPQyByZWxvY3MuCgoyMDAzLTA2LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9hcHBseV9maXgzKTogQWxsb3cgQlJUQUtFTiwgQlJOVEFLRU4gcmVsb2NzLgoKMjAwMy0wNi0xNiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKEFERFJFU1NfQUREX0lOU04sQUREUkVTU19BRERJX0lOU04sCglBRERSRVNTX0xPQURfSU5TTixBRERSRVNTX1NUT1JFX0lOU04pOiBOZXcgbWFjcm9zLgoJKG1hY3JvX2J1aWxkX2xkc3RfY29uc3RvZmZzZXQsbG9hZF9hZGRyZXNzLG1hY3JvLHNfY3BzZXR1cCwKCXNfY3ByZXN0b3JlLHNfY3BhZGQpOiBVc2UgdGhlbS4KCjIwMDMtMDYtMTYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgc3BlY2lmaWMgY2FzZSBmb3IgY3Jpcy0qLWxpbnV4LWdudSogd2l0aAoJZW09bGludXguCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnL3RjLWNyaXMuYyAoREVGQVVMVF9DUklTX0FYSVNfTElOVVhfR05VKTogTmV3IG1hY3JvLCBUUlVFCglpZiBURV9MSU5VWCBkZWZpbmVkLCBlbHNlIEZBTFNFLgoJKGJmZF9ib29sZWFuIGRlbWFuZF9yZWdpc3Rlcl9wcmVmaXgpOiBTZXQgZGVmYXVsdCBmcm9tCglERUZBVUxUX0NSSVNfQVhJU19MSU5VWF9HTlUuCgkoc3ltYm9sc19oYXZlX2xlYWRpbmdfdW5kZXJzY29yZSk6IFNpbWlsYXIuCgkqIGNvbmZpZy90Yy1jcmlzLmggKExPQ0FMX0xBQkVMU19ET0xMQVIpOiBEZWZpbmUgdG8gMS4KCjIwMDMtMDYtMTMgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogdGMtYXJtLmMgKEZQVV9ERUZBVUxULCBjYXNlIFRFX0xJTlVYKTogRGVmYXVsdCB0byBGUFVfQVJDSF9GUEEuCgkoRlBVX0RFRkFVTFQsIGNhc2UgVEVfTmV0QlNEKTogRGVmYXVsdCB0byBGUFVfQVJDSF9WRlAgZm9yIEVMRiwKCUZQVV9BUkNIX0ZQQSBmb3IgQU9VVC4KCShtZF9iZWdpbik6IERvbid0IHRyeSB0byBndWVzcyB0aGUgZmxvYXRpbmcgcG9pbnQgYXJjaGl0ZWN0dXJlIGZyb20KCXRoZSBDUFUgaWYgdGhlIE9TIEFCSSAoTGludXgsIE5ldEJTRCkgbWFuZGF0ZXMgYSBwYXJ0aWN1bGFyIGZvcm0uCgoyMDAzLTA2LTEzICBSb2JlcnQgTWlsbGFuICA8emVyYXR1bDJAd2FuYWRvby5lcz4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGkzODYtbmV0YnNkLWdudSB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMDYtMTIgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KCgkqIGRvYy9hcy50ZXhpbmZvIChDb21tKTogQWRkZWQgQG5vZGUuICBNb3ZlZCBiZWZvcmUgQ0ZJCglkaXJlY3RpdmVzIG5vZGUuCgoyMDAzLTA2LTEyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChhcHBlbmRfaW5zbik6IEluIGEgY29tcG91bmQgcmVsb2NhdGlvbiwgdGFrZSB0aGUKCWZpZWxkIHdpZHRoIGZyb20gdGhlIGZpbmFsIChvdXRlcm1vc3QpIG9wZXJhdG9yLgoKMjAwMy0wNi0xMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGR3MmdlbmNmaS5jIChzdHJ1Y3QgY2ZpX2VzY2FwZV9kYXRhKTogTmV3LgoJKGNmaV9hZGRfQ0ZBX25vcCk6IFJlbW92ZS4KCShDRklfZXNjYXBlLCBkb3RfY2ZpX2VzY2FwZSk6IE5ldy4KCShkb3RfY2ZpKTogUmVtb3ZlIG5vcC4KCShjZmlfcHNldWRvX3RhYmxlKTogUmVtb3ZlIG5vcDsgYWRkIGVzY2FwZS4KCShvdXRwdXRfY2ZpX2luc24pOiBMaWtld2lzZS4KCShzZWxlY3RfY2llX2Zvcl9mZGUpOiBTdG9wIG9uIGVzY2FwZS4KCSogZHcyZ2VuY2ZpLmggKGNmaV9hZGRfQ0ZBX25vcCk6IFJlbW92ZS4KCSogcmVhZC5jLCByZWFkLmggKGRvX3BhcnNlX2NvbnNfZXhwcmVzc2lvbik6IE5ldy4KCSogZG9jL2FzLnRleGluZm8gKC5jZmlfZXNjYXBlKTogTmV3LgoKMjAwMy0wNi0xMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfY3BzZXR1cCk6IFVzZSBtaXBzX2ZyYW1lX3JlZyBpbnN0ZWFkIG9mIFNQLgoJKHNfY3ByZXN0b3JlKTogTGlrZXdpc2UuCgkoc19jcHJldHVybik6IExpa2V3aXNlLgoKMjAwMy0wNi0xMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHRjX2dlbl9yZWxvYyk6IEluaXRpYWxpemUgcmV0dmFsIGFtZCByZWxvYwoJd2l0aCB6ZXJvcy4KCjIwMDMtMDYtMTEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtZF9wY3JlbF9mcm9tKTogUmV0dXJuIGFjdHVhbCBwY3JlbCBhZGRyZXNzLgoJKG1kX2FwcGx5X2ZpeDMpOiBJZ25vcmUgbm9uLXNwZWNpYWwgcmVsb2NhdGlvbnMuIFJlbW92ZSBzdXBlcmZsdW91cwoJZXhjZXB0aW9ucyBmcm9tIHNpemUgYXNzZXJ0LiBSZW1vdmUgbW9zdCBvZiB0aGUgYWRkZW5kIGZpeHVwCglzcGVjaWFsY2FzaW5nLiBSZW1vdmUgdmFsdWUsIHVzZSB2YWxQIGRpcmVjdGx5LiBzaW1wbGlmeSBmeF9hZGRudW1iZXIKCWhhbmRsaW5nLiBSZW1vdmUgemVybyBhZGRlbmQgc3BlY2lhbGNhc2VzLgoJKHRjX2dlbl9yZWxvYyk6IFVzZSBhcHByb3ByaWF0ZSB2YWx1ZSBmb3IgcmVsb2MyIGFkZGVuZC4gUmVtb3ZlCgl0aGUgYWRkZW5kIGZpeHVwIHNwZWNpYWxjYXNlLgoJKiBjb25maWcvdGMtbWlwcy5oIChNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUgYXMgMC4KCjIwMDMtMDYtMTEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiB3cml0ZS5jICh3cml0ZV9yZWxvY3MpOiBVc2UgeGNhbGxvYy4gRml4IHJlbG9jcyBpbml0aWFsaXphdGlvbgoJaW4gdGhlIFJFTE9DX0VYUEFOU0lPTl9QT1NTSUJMRSBjYXNlLgoKMjAwMy0wNi0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pOTYwLmMgKGxpbmVfY29tbWVudF9jaGFycyk6IEFkZCAnIycuCgkqIGNvbmZpZy90Yy1tbjEwMjAwLmMgKHRjX2dlbl9yZWxvYyk6IERvbid0IGlnbm9yZSBmeF9zdWJzeS4KCjIwMDMtMDYtMTEgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogcG8vTWFrZS1pbiAoREVTVERJUik6IE5ldy4KCShpbnN0YWxsLWRhdGEteWVzKTogU3VwcG9ydCAkKERFU1RESVIpLgoJKHVuaW5zdGFsbCk6IExpa2V3aXNlLgoKMjAwMy0wNi0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0xMCAgRG91ZyBFdmFucyAgPGRqZUBzZWJhYmVhY2gub3JnPgoKCSogY2dlbi5jIChnYXNfY2dlbl9maW5pc2hfaW5zbik6IENHRU5fSU5TTl9SRUxBWCByZW5hbWVkIHRvCglDR0VOX0lOU05fUkVMQVhFRC4KCSogY29uZmlnL3RjLWZyMzAuYyAobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBEaXR0by4KCSogY29uZmlnL3RjLW0zMnIuYyAobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBEaXR0by4KCSogY29uZmlnL3RjLW9wZW5yaXNjLmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogRGl0dG8uCgoyMDAzLTA2LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoJICAgIEdhcnkgSGFkZSA8Z2FyeWhhZGVAdXMuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfYXNzZW1ibGUpOiBIYW5kbGUgUFBDX09QRVJBTkRfRFEuCgkobWRfYXBwbHlfZml4Myk6IFNwZWNpYWwgY2FzZSBscSBpbnNuLgoKMjAwMy0wNi0xMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWg4MzAwLmMgKGdldF9ydHNsX29wZXJhbmRzKTogQWNjZXB0IHVuYnJhY2tldGVkIHJlZ2lzdGVyCglsaXN0cy4gIEFsbG93IHNpbmdsZS1yZWdpc3RlciByYW5nZXMuCgoyMDAzLTA2LTEwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoaDgzMDBzeG5tb2RlKTogTmV3LgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCAuaDgzMDBzeG4gZW50cnkuCgoyMDAzLTA2LTA5ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIE5FV1M6IFVwZGF0ZWQgZm9yIHRoZSBuZXcgLW4gb3B0aW9uIGZvciB0aGUgaTM4NiBhc3NlbWJsZXIuCgoJKiBjb25maWcvdGMtaTM4Ni5jIChvcHRpbWl6ZV9hbGlnbl9jb2RlKTogTmV3LgoJKG1kX3Nob3J0b3B0cyk6IEFkZCAnbicuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlICduJy4KCShtZF9zaG93X3VzYWdlKTogQWRkICctbicuCgoJKiBjb25maWcvdGMtaTM4Ni5oIChvcHRpbWl6ZV9hbGlnbl9jb2RlKTogRGVjbGFyZWQuCgkobWRfZG9fYWxpZ24pOiBPcHRpbWl6ZSBjb2RlIGFsaWdubWVudCBvbmx5IGlmIG9wdGltaXplX2FsaWduX2NvZGUKCWlzIG5vdCAwLgoKCSogZG9jL2FzLnRleGluZm86IEFkZCB0aGUgbmV3IC1uIG9wdGlvbi4KCgkqIGRvYy9jLWkzODYudGV4aTogRG9jdW1lbnQgdGhlIG5ldyAtbiBvcHRpb24uCgoyMDAzLTA2LTA3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZG9jL2FzLnRleGluZm86IERvY3VtZW50IC5jZmlfcmVsX29mZnNldC4KCgkqIGR3MmdlbmNmaS5jIChzdHJ1Y3QgY2ZhX3NhdmVfZGF0YSwgY2ZhX3NhdmVfc3RhY2spOiBOZXcuCgkoY2ZpX2FkZF9DRkFfb2Zmc2V0KTogRGV0ZWN0IGludmFsaWQgb2Zmc2V0cy4KCShjZmlfYWRkX0NGQV9yZW1lbWJlcl9zdGF0ZSk6IFNhdmUgY3VyX2NmYV9vZmZzZXQuCgkoY2ZpX2FkZF9DRkFfcmVzdG9yZV9zdGF0ZSk6IFJlc3RvcmUgaXQuCgkoQ0ZJX3JlbF9vZmZzZXQpOiBOZXcuCgkoY2ZpX3BzZXVkb190YWJsZSk6IEFkZCBpdC4KCShkb3RfY2ZpKTogSGFuZGxlIGl0LgoKMjAwMy0wNi0wNyAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBhcHAuYyAoZG9fc2NydWJfY2hhcnMpOiBBZGQgc3RhdGVzIDE0IGFuZCAxNSB0byBoYW5kbGUKCXByZWRpY2F0ZSBmb3IgaWE2NC4KCjIwMDMtMDYtMDUgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWg4c3guYyAoZ2V0X3NwZWNpZmljKTogRGlzdGluZ3Vpc2ggaDhoIGZyb20gaDhzIG9wcy4KCShidWlsZF9ieXRlcyk6IERpdHRvLgoKMjAwMy0wNi0wNSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWg4c3guYyAoRE1PREUpOiBSZW1vdmUuCgkoY29sb25tb2QyNCk6IERvbid0IGNob29zZSBhIGRlZmF1bHQgaWYgdGhlIG9wZXJhbmQgaXMgYSAxNi1iaXQKCWNvbnN0YW50IGludGVnZXIuCgkoZml4X29wZXJhbmRfc2l6ZSk6IE5ldyBmdW5jdGlvbi4KCShtZF9hc3NlbWJsZSk6IFVzZSBpdCB0byBjaG9vc2UgYmV0d2VlbiBAKGQ6MiwgRVJuKSBhbmQgQChkOjE2LEVSbikuCglBZGp1c3QgQChkOjIsRVJuKSBvcGVyYW5kcyBiZWZvcmUgY2hvb3NpbmcgdGhlIHNwZWNpZmljIG9wY29kZXMuCgoyMDAzLTA2LTA1ICBNaWNoYWwgTHVkdmlnICA8bWx1ZHZpZ0BzdXNlLmN6PgoKCSogZHcyZ2VuY2ZpLmMgKGNmaV9hZGRfQ0ZBX2luc24sIGNmaV9hZGRfQ0ZBX2luc25fcmVnKQoJKGNmaV9hZGRfQ0ZBX2luc25fcmVnX3JlZywgY2ZpX2FkZF9DRkFfaW5zbl9yZWdfb2Zmc2V0KTogTmV3LgoJKGNmaV9hZGRfQ0ZBX29mZnNldCwgY2ZpX2FkZF9DRkFfZGVmX2NmYSkKCShjZmlfYWRkX0NGQV9yZWdpc3RlciwgY2ZpX2FkZF9DRkFfZGVmX2NmYV9yZWdpc3RlcikKCShjZmlfYWRkX0NGQV9kZWZfY2ZhX29mZnNldCk6IFVzZSBjZmlfYWRkX0NGQV9pbnNuXyooKS4KCShjZmlfYWRkX0NGQV9yZXN0b3JlLCBjZmlfYWRkX0NGQV91bmRlZmluZWQpCgkoY2ZpX2FkZF9DRkFfc2FtZV92YWx1ZSwgY2ZpX2FkZF9DRkFfcmVtZW1iZXJfc3RhdGUpCgkoY2ZpX2FkZF9DRkFfcmVzdG9yZV9zdGF0ZSwgY2ZpX2FkZF9DRkFfbm9wKTogTmV3LgoJKGNmaV9wc2V1ZG9fdGFibGUpOiBOZXcgZGlyZWN0aXZlcyAuY2ZpX3JldHVybl9jb2x1bW4sCgkuY2ZpX3Jlc3RvcmUsIC5jZmlfdW5kZWZpbmVkLCAuY2ZpX3NhbWVfdmFsdWUsCgkuY2ZpX3JlbWVtYmVyX3N0YXRlLCAuY2ZpX3Jlc3RvcmVfc3RhdGUsIC5jZmlfbm9wLgoJKGRvdF9jZmksIG91dHB1dF9jZmlfaW5zbik6IEhhbmRsZSBuZXcgZGlyZWN0aXZlcy4KCSogZHcyZ2VuY2ZpLmggKGNmaV9hZGRfQ0ZBX3Jlc3RvcmUsIGNmaV9hZGRfQ0ZBX3VuZGVmaW5lZCkKCShjZmlfYWRkX0NGQV9zYW1lX3ZhbHVlLCBjZmlfYWRkX0NGQV9yZW1lbWJlcl9zdGF0ZSkKCShjZmlfYWRkX0NGQV9yZXN0b3JlX3N0YXRlLCBjZmlfYWRkX0NGQV9ub3ApOiBOZXcgcHJvdG90eXBlcy4KCjIwMDMtMDYtMDQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkdzJnZW5jZmkuYyAob3V0cHV0X2NmaV9pbnNuKTogRml4IHR5cG8gZm9yIG5lZ2F0aXZlIG9mZnNldHMuCgoJKiBkdzJnZW5jZmkuYyAoY2ZpX2ZpbmlzaCk6IFNldCAuZWhfZnJhbWUgcmVhZC1vbmx5LgoKMjAwMy0wNi0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChzX2FscGhhX3VzZXB2KTogTmV3LgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCBpdC4KCShhbHBoYV9jZmlfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMpOiBOZXcuCgkqIGNvbmZpZy90Yy1hbHBoYS5oIChUQVJHRVRfVVNFX0NGSVBPUCk6IE5ldy4KCSh0Y19jZmlfZnJhbWVfaW5pdGlhbF9pbnN0cnVjdGlvbnMpOiBOZXcuCgkqIGRvYy9jLWFscGhhLnRleGk6IERvY3VtZW50IC51c2Vwdi4KCjIwMDMtMDYtMDQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogYXMuYyAoc2hvd191c2FnZSk6IERvY3VtZW50IC0tZXhlY3N0YWNrIGFuZCAtLW5vZXhlY3N0YWNrLgoJKHBhcnNlX2FyZ3MpOiBBZGQgLS1leGVjc3RhY2sgYW5kIC0tbm9leGVjc3RhY2suCgkobWFpbik6IENyZWF0ZSAubm90ZS5HTlUtc3RhY2sgc2VjdGlvbiBpZiAtLWV4ZWNzdGFjayBvcgoJLS1ub2V4ZWNzdGFjayB3YXMgZ2l2ZW4gb24gY29tYW5kIGxpbmUsIHNldCBpdHMgU0hGX0VYRUNJTlNUUiBiaXQuCgkqIGFzLmggKGZsYWdfZXhlY3N0YWNrLCBmbGFnX25vZXhlY3N0YWNrKTogTmV3LgoKMjAwMy0wNi0wMyAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmM6IChPUFRJT05fQVJDSF9CQVNFLCBPUFRJT05fQVNFX0JBU0UpCgkoT1BUSU9OX0NPTVBBVF9BUkNIX0JBU0UsIE9QVElPTl9GSVhfQkFTRSkKCShPUFRJT05fTUlTQ19CQVNFKTogTmV3IGRlZmluZXMuCgkoT1BUSU9OX0JSRUFLLCBPUFRJT05fQ09OU1RSVUNUX0ZMT0FUUywgT1BUSU9OX0VCLCBPUFRJT05fRUwpCgkoT1BUSU9OX0VMRl9CQVNFLCBPUFRJT05fRklYX1ZSNDEyMiwgT1BUSU9OX0ZQMzIsIE9QVElPTl9GUDY0KQoJKE9QVElPTl9HUDMyLCBPUFRJT05fR1A2NCwgT1BUSU9OX00zOTAwLCBPUFRJT05fTTQwMTAsIE9QVElPTl9NNDEwMCkKCShPUFRJT05fTTQ2NTAsIE9QVElPTl9NNzAwMF9ISUxPX0ZJWCwgT1BUSU9OX01BUkNILCBPUFRJT05fTURNWCkKCShPUFRJT05fTUVNQkVEREVEX1BJQywgT1BUSU9OX01JUFMxLCBPUFRJT05fTUlQUzE2LCBPUFRJT05fTUlQUzIpCgkoT1BUSU9OX01JUFMzLCBPUFRJT05fTUlQUzMyLCBPUFRJT05fTUlQUzMyUjIsIE9QVElPTl9NSVBTM0QpCgkoT1BUSU9OX01JUFM0LCBPUFRJT05fTUlQUzUsIE9QVElPTl9NSVBTNjQpCgkoT1BUSU9OX01OT183MDAwX0hJTE9fRklYLCBPUFRJT05fTVRVTkUsIE9QVElPTl9OT19DT05TVFJVQ1RfRkxPQVRTKQoJKE9QVElPTl9OT19GSVhfVlI0MTIyLCBPUFRJT05fTk9fTTM5MDAsIE9QVElPTl9OT19NNDAxMCkKCShPUFRJT05fTk9fTTQxMDAsIE9QVElPTl9OT19NNDY1MCwgT1BUSU9OX05PX01ETVgsIE9QVElPTl9OT19NSVBTMTYpCgkoT1BUSU9OX05PX01JUFMzRCwgT1BUSU9OX05PX1JFTEFYX0JSQU5DSCwgT1BUSU9OX1JFTEFYX0JSQU5DSCkKCShPUFRJT05fVFJBUCk6IFJlZGVmaW5lIGluIHRlcm1zIG9mIG5ldyBkZWZpbmVzLgoJKG1kX2xvbmdvcHRzKTogUmVvcmRlciBlbnRyaWVzLgoKMjAwMy0wNS0xNCAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CglGcm9tIEJlcm5kIFNjaG1pZHQgIDxiZXJuZHNAcmVkaGF0LmNvbT4KCWFuZCBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCWFuZCBBbGV4YW5kcmUgT2xpdmEgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtaDgzMDAuYzogQWRkIGluc25zIGFuZCBhZGRyZXNzaW5nIG1vZGVzIGZvciBoODMwMHN4LgoJKiBjb25maWcvdGMtaDgzMDAuaDogRGl0dG8uCgoyMDAzLTA2LTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogdGMtdjg1MC5jICh0Yy1nZW5fcmVsb2MpOiBUcmFuc2xhdGUgQkZEX1JFTE9DXzMyIGludG8KCUJGRF9SRUxPQ18zMl9QQ1JFTCBpZiB0aGUgcmVsb2MgaXMgcGMtcmVsYXRpdmUuICBEbyB0aGlzCgliZWZvcmUgY2FsbGluZyBiZmRfcmVsb2NfdHlwZV9sb29rdXAuCgoyMDAzLTA2LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZC5jIChlbWl0X2V4cHIpOiBTZXQgZG90X3ZhbHVlLgoJKiBkdzJnZW5jZmkuYyAob3V0cHV0X2ZkZSk6IFJlbW92ZSBwY3JlbCByZWxvYyBoYWNrLgoKMjAwMy0wNi0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG1hY3JvLmMgKHN1Yl9hY3R1YWwpOiBEb24ndCBsb3NlIHN0cmluZyBpZiBpdCB0dXJucyBvdXQgdGhhdAoJJnN0cmluZyB3YXNuJ3QgYW4gYXJnLgoKMjAwMy0wNS0zMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGR3MmdlbmNmaS5jIChvdXRwdXRfZmRlKTogVXNlIGZpeF9uZXcgdG8gZW1pdCBwYy1yZWxhdGl2ZSByZWxvYy4KCShjZmlfZmluaXNoKTogU2V0IGZsYWdfdHJhZGl0aW9uYWxfZm9ybWF0IGFyb3VuZCAuZWhfZnJhbWUgZGF0YS4KCjIwMDMtMDUtMjkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoYWxwaGFfY3VyX2VudF9zeW0pOiBSZW1vdmUuCgkoYWxsX2ZyYW1lX2RhdGEsIHBsYXN0X2ZyYW1lX2RhdGEsIGN1cl9mcmFtZV9kYXRhKTogTmV3LgoJKHNfYWxwaGFfZW50KTogUmVjb3JkIGRhdGEgZm9yIGR3YXJmMiBjZmkuCgkoc19hbHBoYV9lbmQsIHNfYWxwaGFfbWFzaywgc19hbHBoYV9mcmFtZSwgc19hbHBoYV9wcm9sb2d1ZSk6IExpa2V3aXNlLgoJKGFscGhhX2VsZl9tZF9lbmQpOiBFbWl0IGR3YXJmMiBjZmkgZm9yIGVjb2ZmIHVud2luZCBkaXJlY3RpdmVzLgoJKiBjb25maWcvdGMtYWxwaGEuaCAobWRfZW5kKTogTmV3LgoJKERXQVJGMl9ERUZBVUxUX1JFVFVSTl9DT0xVTU4pOiBOZXcuCgkoRFdBUkYyX0NJRV9EQVRBX0FMSUdOTUVOVCk6IE5ldy4KCjIwMDMtMDUtMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBpMzg2LSotZnJlZWJzZCogZW50cnkuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMDUtMjkgIEthenVoaXJvIEluYW9rYSAgPGluYW9rYS5rYXp1aGlyb0ByZW5lc2FzLmNvbT4KCgkqIGNvbmZpZy90Yy1tMzJyLmM6IEFtZW5kIGNvbW1lbnQgdG8gcmVmZXIgdG8gUmVuZXNhcwoKMjAwMy0wNS0yNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAobWFrZV9leHByX3N5bWJvbCk6IEZvbGQgRkFLRV9MQUJFTF9OQU1FIHVzZSBpbnRvIHRoZQoJc3ltYm9sX2NyZWF0ZSBjYWxsLgoJKGN1cnJlbnRfbG9jYXRpb24pOiBVc2Ugc3ltYm9sX3RlbXBfbmV3X25vdy4KCSogc3RhYnMuYyAoc19zdGFiX2dlbmVyaWMpOiBVc2Ugc3ltYm9sX3RlbXBfbmV3LgoJKiBzeW1ib2xzLmMgKHRlbXBfbGFiZWxfbmFtZSk6IFJlbW92ZS4KCShzeW1ib2xfdGVtcF9uZXcsIHN5bWJvbF90ZW1wX21ha2UpOiBVc2UgRkFLRV9MQUJFTF9OQU1FLgoKMjAwMy0wNS0yNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGR3MmdlbmNmaS5jLCBkdzJnZW5jZmkuaDogUmV3cml0ZSBmcm9tIHNjcmF0Y2guCgkqIGFzLmMgKG1haW4pOiBBbHdheXMgY2FsbCBjZmlfZmluaXNoLgoJKiBjb25maWcvdGMtaTM4Ni5jICh4ODZfZHdhcmYyX3JldHVybl9jb2x1bW4pOiBOZXcuCgkoeDg2X2NpZV9kYXRhX2FsaWdubWVudCk6IE5ldy4KCShtZF9iZWdpbik6IFNldCB0aGVtLgoJKHRjX3g4Nl9jZmlfaW5pdCk6IFJlbW92ZS4KCSh0Y194ODZfcmVnbmFtZV90b19kdzJyZWdudW0pOiBGaXggMzItYml0IHJlZ2lzdGVyIG51bWJlcnM7CglyZXR1cm4gaW50LCBub3QgdW5zaWduZWQgbG9uZzsgZG9uJ3QgYXNfYmFkIGhlcmUuCgkodGNfeDg2X2ZyYW1lX2luaXRpYWxfaW5zdHJ1Y3Rpb25zKTogU3RyZWFtbGluZTsgdXNlCgl1cGRhdGVkIGFwaS4KCSogY29uZmlnL3RjLWkzODYuaCAodGNfY2ZpX2luaXQpOiBSZW1vdmUuCgkoRFdBUkYyX0RFRkFVTFRfUkVUVVJOX0NPTFVNTik6IE5ldy4KCShEV0FSRjJfQ0lFX0RBVEFfQUxJR05NRU5UKTogTmV3LgoKMjAwMy0wNS0yNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHN5bWJvbHMuYyAodGVtcF9sYWJlbF9uYW1lKTogTmV3LgoJKHN5bWJvbF90ZW1wX25ldywgc3ltYm9sX3RlbXBfbmV3X25vdywgc3ltYm9sX3RlbXBfbWFrZSk6IE5ldy4KCShzeW1ib2xfc2V0X3ZhbHVlX25vdyk6IE5ldy4KCSogc3ltYm9scy5oOiBQcm90b3R5cGUgdGhlbS4KCSogZHdhcmYyZGJnLmM6IFVzZSB0aGVtLgoJKGZha2VfbGFiZWxfbmFtZSwgc3ltYm9sX25ld19ub3csIHNldF9zeW1ib2xfdmFsdWVfbm93KTogUmVtb3ZlLgoKMjAwMy0wNS0yMyAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmljZS5lZHU+CgoJKiBjb25maWcvdGMtaTg2MC5jICh0YXJnZXRfeHApOiBEZWNsYXJlIHZhcmlhYmxlLgoJKE9QVElPTl9YUCk6IERlY2xhcmUgbWFjcm8uCgkobWRfbG9uZ29wdHMpOiBBZGQgb3B0aW9uIC1teHAuCgkobWRfcGFyc2Vfb3B0aW9uKTogU2V0IHRhcmdldF94cC4KCShtZF9zaG93X3VzYWdlKTogQWRkIC1teHAgdXNhZ2UuCgkoaTg2MF9wcm9jZXNzX2luc24pOiBSZWNvZ25pemUgWFAgcmVnaXN0ZXJzIGJlYXIsIGNjciwgcDAtcDMuCgkobWRfYXNzZW1ibGUpOiBEb24ndCB0cnkgZXhwYW5zaW9ucyBpZiBYUF9PTkxZIGlzIHNldC4KCSogZG9jL2MtaTg2MC50ZXhpOiBEb2N1bWVudCAtbXhwIG9wdGlvbiBhbmQgaTg2MFhQIHN1cHBvcnQuCgoyMDAzLTA1LTIzICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvX2J1aWxkX2phbHIpOiBXYXJuaW5nIHBhdHJvbC4KCjIwMDMtMDUtMjIgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChhcHBlbmRfaW5zbik6IFVzZSBhY3R1YWwgcmVsb2NhdGlvbiBzaXplIGZvciBuZXcKCWZpeHAncy4JRG9uJ3QgcmVsYXggb3ZlcmZsb3cgY2hlY2tpbmcgZm9yIHBhcnRpYWxfaW5wbGFjZSByZWxvY2F0aW9ucy4KCVVzZSB0aGUgYWN0dWFsIHJlbG9jYXRpb24gdHlwZSBpbiBjb21iaW5lZCByZWxvY3MsIG5vdCBqdXN0IHRoZSB0eXBlCglvZiB0aGUgZmlyc3Qgb25lLgoJKG1hY3JvX2J1aWxkX2phbHIpOiBVc2UgYWN0dWFsIHJlbG9jYXRpb24gc2l6ZSBmb3IgbmV3IGZpeC4KCShzX2Nwc2V0dXAsIHNfZ3Bkd29yZCk6IExpa2V3aXNlLgoKMjAwMy0wNS0yMiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogRG9uJ3QgdXNlIHVuaW5pdGlhbGl6ZWQgdGVtcHJlZy4KCjIwMDMtMDUtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMteHN0b3JteTE2LmMgKG1kX3BjcmVsX2Zyb21fc2VjdGlvbik6IERvIG5vdCBwcm9kdWNlCglzZWN0aW9uIHJlbGF0aXZlIG9mZnNldHMgZm9yIHJlbG9jcyB0aGF0IHdpbGwgbm90IGJlIGJhc2VkIG9uIHRoZQoJc2VjdGlvbiBzeW1ib2wuCgkoeHN0b3JteTE2X21kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgcHJldmlvdXMgcGF0Y2ggdG8gdGhpcwoJZnVuY3Rpb24uCgoyMDAzLTA1LTA3ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfYWJpY2FsbHMpOiBOZXcgdmFyaWFibGUuCgkobWRfcGFyc2Vfb3B0aW9uKTogVXNlLgoJKHNfb3B0aW9uKTogRGl0dG8uCgkoc19hYmljYWxscyk6IERpdHRvLgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBTZXQgRUZfTUlQU19QSUMgYW5kCglFRl9NSVBTX0NQSUMgZGVwZW5kZW50IG9uIGFib3ZlLgoKMjAwMy0wNS0yMSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIHRjLWhwcGEuYyAoaHBwYV9zeW1ib2xfY2hhcnMpOiBSZW1vdmUgYCwnIGFuZCBgIScuCgoyMDAzLTA1LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL29iai1lbGYuYzogSW5jbHVkZSBkd2FyZjJkYmcuaC4KCShlbGZfcHNldWRvX3RhYik6IEFkZCAuZmlsZSBhbmQgLmxvYy4KCSogY29uZmlnL3RjLWFyYy5jIChtZF9wc2V1ZG9fdGFibGUpOiBSZW1vdmUgLmZpbGUgYW5kIC5sb2MuCgkqIGNvbmZpZy90Yy1hcm0uYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODMwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWhwcGEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pYTY0LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTY4aGMxMS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGsuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tbWl4LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbW4xMDMwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXBwYy5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc3BhcmMuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy12ODUwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZnJ2LmM6IExpa2V3aXNlLCBhbmQgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdXNpb24gb2YKCWR3YXJmMmRiZy5oLgoJKiBjb25maWcvdGMtaXAyay5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWlxMjAwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXh0ZW5zYS5jOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuYW06IFJlZ2VuZXJhdGUgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9nYXMucG90OiBSZWdlbmVyYXRlLgoKMjAwMy0wNS0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGR3MmdlbmNmaS5jIChjZmlfZ2V0X2xhYmVsKTogVXNlIHN5bWJvbF9tYWtlIGZvciBub24KCUJGRF9BU1NFTUJMRVIgdGFyZ2V0cy4KCShjZmlfc3RhcnRwcm9jKTogQ2hhbmdlIHR5cGUgb2Ygc2F2ZWRfc2VnIGFuZCBjZmlfc2VnIHRvIHNlZ1QuCgkoZG90X2NmaV9lbmRwcm9jKTogT25seSBjYWxsIGJmZF9zZXRfc2VjdGlvbl9mbGFncyBmb3IgdGFyZ2V0cwoJZGVmaW5pbmcgQkZEX0FTU0VNQkxFUi4KCjIwMDMtMDUtMjAgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+CgoJKiBhcy5jIChtYWluKTogUmVtb3ZlIHRjX2NmaV9pbml0KCkuCgkqIGR3MmdlbmNmaS5jIChjZmlfcGFyc2VfYXJnKTogQWxsb3cgcmVnbmFtZXMgYmVnaW5uaW5nCgl3aXRoICclJy4KCShjZmlfcHNldWRvX3RhYmxlKTogQWRkICJjZmlfcmVnaXN0ZXIiIGVudHJ5LgoJKGNmaV9tYWtlX2luc24pOiBIYW5kbGUgQ0ZBX3JlZ2lzdGVyLgoJKGNmaV9vdXRwdXRfaW5zbik6IERpdHRvLgoJKGRvdF9jZmkpOiBEaXR0by4KCShjZmlfZ2V0X2xhYmVsKTogQWRkICdzaW1wbGUnIG1vZGlmaWVyIHRvIC5jZmlfc3RhcnRwcm9jLgoJKGRvdF9jZmlfZW5kcHJvYyk6IFJldXNlIGFscmVhZHkgZW1pdHRlZCBDSUVzLgoJKiB0ZXN0c3VpdGUvZ2FzL2NmaS9jZmktaTM4Ni5kOiBOZXcgcGF0dGVybi4KCSogdGVzdHN1aXRlL2dhcy9jZmkvY2ZpLXg4Ni02NC5kOiBEaXR0by4KCjIwMDMtMDUtMjAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMteHN0b3JteTE2LmM6IEluY2x1ZGUgZHdhcmYyZGJnLmguCgkobWRfcHNldWRvX3RhYmxlKTogQWRkIGVudHJpZXMgZm9yIC5sb2MgYW5kIC5saW5lLgoKMjAwMy0wNS0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGR3MmdlbmNmaS5jIChjZmlfcGFyc2VfYXJnKTogT25seSB1c2UgdGNfcmVnbmFtZV90b19kdzJyZWdudW0gaWYKCWRlZmluZWQuCgkoZG90X2NmaV9lbmRwcm9jKTogQXZvaWQgQzk5IGNvbnN0cnVjdC4KCjIwMDMtMDUtMjAgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+CgoJKiBkdzJnZW5jZmkuYywgZHcyZ2VuY2ZpLmg6IE5ldyBmaWxlcy4KCSogY29uZmlnL3RjLWkzODYuYyAodGNfeDg2X2NmaV9pbml0KTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvdGMtaTM4Ni5oIChUQVJHRVRfVVNFX0NGSVBPUCwgdGNfY2ZpX2luaXQpOiBOZXcgZGVmaW5lcy4KCSogYXMuYyAocGFyc2VfYXJncyk6IFNldCB2ZXJib3NlIGZsYWcgb24gLS12ZXJib3NlLgoJKG1haW4pOiBDYWxsIHRjX2NmaV9pbml0KCkvY2ZpX2ZpbmlzaCgpLgoJKiBhcy5oICh2ZXJib3NlKTogTmV3IGV4dGVybmFsIHZhcmlhYmxlLgoJKiByZWFkLmMgKHBvYmVnaW4pOiBJbnNlcnQgQ0ZJIHBvcHMgdG8gdGhlIGxpc3QuCgkqIHN5bWJvbHMuYyAobG9jYWxfc3ltYm9sX21ha2UpOiBNYWtlIHN5bWJvbCBleHRlcm5hbC4KCSogc3ltYm9scy5oIChsb2NhbF9zeW1ib2xfbWFrZSk6IE5ldyBwcm90b3R5cGUuCgkqIE1ha2VmaWxlLmFtOiBBZGQgZHcyZ2VuY2ZpLltjaF0gZmlsZXMuICBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9hcy50ZXhpbmZvOiBBZGRlZCBub2RlICJDRkkgZGlyZWN0aXZlcyIgd2l0aCBkZXNjcmlwdGlvbiBvZgoJYWxsIGltcGxlbWVudGVkIC5jZmlfKiBkaXJlY3RpdmVzLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNS0xOSAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29uZmlnL3RjLXRpYzR4LmMgKG1kX2Fzc2VtYmxlKTogQWRkZWQgc3VwcG9ydCBmb3Igb25lLWxpbmUgcGFyYWxsZWwKCWluc25zLgoJKiBjb25maWcvdGMtdGljNHguaDogQWRkZWQgRE9VQkxFQkFSX1BBUkFMTEVMIGRlZmluaXRpb24KCjIwMDMtMDUtMTggIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogY29uZmlnL3RjLWk4NjAuYyAoaTg2MF9wcm9jZXNzX2luc24pOiBJbml0aWFsaXplIGZjIGFmdGVyCgllYWNoIG9wY29kZSBtaXNtYXRjaC4KCjIwMDMtMDUtMTYgIEtlbGxleSBDb29rICA8a2VsbGV5Y29va0B3aWRlb3Blbndlc3QuY29tPgoKCSogY29uZmlndXJlLmluOiBBY2NlcHQgaVszLTddODYgdmFyaWFudHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMDUtMTUgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5oOiBGaXggY29tbWVudCBmb3JtYXR0aW5nLgoKMjAwMy0wNS0xMyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiByZWFkLmMgKG9sZF9idWZmZXIsIG9sZF9pbnB1dCwgb2xkX2xpbWl0KTogUmVtb3ZlIHZhcmlhYmxlcy4KCShyZWFkX2Ffc291cmNlX2ZpbGUpOiBEZWxldGUgbGFiZWwgY29udGluLgoJPGhhbmRsaW5nICNBUFAvI05PX0FQUD46IFVzZSBhbiAic2IiIHRvIHB1c2ggI0FQUCBleHBhbnNpb24gaW50bwoJaW5wdXQgYXMgd2l0aCBtYWNyb3MsIGluc3RlYWQgb2YgaW4gc2VwYXJhdGUgb2xkXyogdmFyaWFibGVzLgoJWmVyby10ZXJtaW5hdGUgc3RyaW5nIGJlaW5nIHNjcnViYmVkLgoKMjAwMy0wNS0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuYyAoc2tpcHBpbmdfZnB0cik6IE5ldyBsb2NhbCB2YXJpYWJsZS4KCShtZF9hc3NlbWJsZSk6IFJlc2V0IHNraXBwaW5nX2ZwdHIuCgkobWRfb3BlcmFuZCk6IElmIEBmcHRyKCkgaXMgZm9sbG93ZWQgYnkgYSBtaW51cyBzaWduLCBzZXQKCXNraXBwaW5nX2ZwdHIgYW5kIGlnbm9yZSB0aGUgZnB0ci4gIElmIHNraXBwaW5nX2ZwdHIgaXMgc2V0IGFuZCBhbgoJQGZwdHIgaXMgZGV0ZWN0ZWQsIGlnbm9yZSBpdCBhbmQgcmVzZXQgc2tpcHBpbmdfZnB0ci4KCjIwMDMtMDUtMTEgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogY29uZmlnL3RjLWk4NjAuYyAoTUFYX0ZJWFVQUyk6IERlZmluZS4KCShzdHJ1Y3QgaTg2MF9maSBmaVtdKTogTmV3IHN0cnVjdC4KCShzdHJ1Y3QgaTg2MF9pdCB0aGVfaW5zbik6IEFkZCBhYm92ZSBhcyBtZW1iZXIgYW5kIG1vdmUgZmllbGRzCglleHAsIHJlbG9jLCBwY3JlbCBhbmQgZnVwIGludG8gaTg2MF9maS4KCShtZF9hc3NlbWJsZSk6IFJlcGxhY2UgYWxsIGluc3RhbmNlcyBvZiBleHAsIHJlbG9jLCBwY3JlbAoJYW5kIGZ1cCB3aXRoIGZpW10uZXhwLCBmaVtdLnJlbG9jLCBmaVtdLnBjcmVsLCBmaVtdLmZ1cC4KCUFkZCBhIGxvb3AgdG8gcG9zc2libHkgZW1pdCBtdWx0aXBsZSBmaXgtdXBzIGZvciBlYWNoIGluc24uCgkoaTg2MF9wcm9jZXNzX2luc24pOiBMaWtld2lzZS4KCShpODYwX2dldF9leHByZXNzaW9uKTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4Myk6IFVzZSBhIGJpdHdpc2UgY2hlY2sgZm9yIE9QX0lNTV9VNSwgbm90IGVxdWFsaXR5LgoKMjAwMy0wNS0wOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKHMzOTBfdGFyZ2V0X2Zvcm1hdCk6IEFsd2F5cyBjYWxsIGluaXRfZGVmYXVsdF9hcmNoLgoKMjAwMy0wNS0wNyAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jIChhbGlhc19oYXNoKTogTmV3LgoJKGFsaWFzX25hbWVfaGFzaCk6IE5ldy4KCShzZWNhbGlhc19oYXNoKTogTmV3LgoJKHNlY2FsaWFzX25hbWVfaGFzaCk6IE5ldy4KCShtZF9wc2V1ZG9fdGFibGUpOiBBZGQgInNlY2FsaWFzIi4KCShtZF9iZWdpbik6IEluaXRpYWxpemUgYWxpYXNfaGFzaCwgYWxpYXNfbmFtZV9oYXNoLAoJc2VjYWxpYXNfaGFzaCBhbmQgc2VjYWxpYXNfbmFtZV9oYXNoLgoJKHN0cnVjdCBhbGlhcyk6IE5ldy4KCShkb3RfYWxpYXMpOiBJbXBsZW1lbnQgLmFsaWFzIGFuZCAuc2VjYWxpYXMgZGlyZWN0aXZlcy4KCShkb19hbGlhcyk6IE5ldy4KCShpYTY0X2FkanVzdF9zeW10YWIpOiBOZXcuCgkoZG9fc2VjYWxpYXMpOiBOZXcuCgkoaWE2NF9mcm9iX2ZpbGUpOiBOZXcuCgoJKiBjb25maWcvdGMtaWE2NC5oIChpYTY0X2FkanVzdF9zeW10YWIpOiBOZXcuCgkodGNfYWRqdXN0X3N5bXRhYik6IERlZmluZWQuCgkoaWE2NF9mcm9iX2ZpbGUpOiBOZXcuCgkodGNfZnJvYl9maWxlKTogRGVmaW5lZC4KCjIwMDMtMDUtMDcgIERtaXRyeSBEaWt5ICA8ZGl3aWxAbWFpbC5ydT4KCgkqIHRjLW1zcDQzMC5jOiBBZGQgbWlzc2luZyBsaW5lcyB0byBrbm93biBjcHVzIGxpc3QuCgoyMDAzLTA1LTA2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoTUlQU19ERUZBVUxUX0FCSSk6IEFDX0RFRklORS4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogU2V0IG1pcHNfYWJpIHRvIGl0LgoJKiBjb25maWcuaW4sIGNvbmZpZ3VyZTogUmVidWlsdC4KCjIwMDMtMDUtMDUgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLW1pcHMuYyAodGNfZ2VuX3JlbG9jKTogQWRkIGFkZGVuZCBqdXN0IG9uY2UgaWYKCWhvd3RvLT5wYXJ0aWFsX2lucGxhY2UgaXMgZmFsc2UuCgoyMDAzLTA1LTA1ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfbmVlZF9lbGZfYWRkZW5kX2ZpeHVwKTogUmVtb3ZlCglzeW1ib2xfdXNlZF9pbl9yZWxvY19wIGNoZWNrLgoJKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgY2hlY2sgZm9yIGhvd3RvLT5wY3JlbF9vZmZzZXQuCgoyMDAzLTA1LTAzICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKG9ial9lbGZfcGFyc2Vfc2VjdGlvbl9sZXR0ZXJzKTogTWFrZSBpdCBhCglmYXRhbCBlcnJvciBmb3IgdW5rbm93biBzZWN0aW9uIGF0dHJpYnV0ZS4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChhbHBoYV9lbGZfc2VjdGlvbl9sZXR0ZXIpOiBSZXR1cm4gLTEgZm9yCgl1bmtub3duIHNlY3Rpb24gYXR0cmlidXRlLgoJKiBjb25maWcvdGMtaWE2NC5jIChpYTY0X2VsZl9zZWN0aW9uX2xldHRlcik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19zZWN0aW9uX2xldHRlcik6IExpa2V3aXNlLgoKCSogY29uZmlnL3RjLWlhNjQuYyAoaWE2NF9lbGZfc2VjdGlvbl9sZXR0ZXIpOiBIYW5kbGUgJ28nLgoJKGlhNjRfZWxmX3NlY3Rpb25fdHlwZSk6IEFjY2VwdCAidW53aW5kIi4KCjIwMDMtMDUtMDIgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogcmVhZC5oIChkZW1hbmRfY29weV9zdHJpbmcpOiBOZXcuCgoJKiBjb25maWcvdGMtYWxwaGEuYyAoZGVtYW5kX2NvcHlfc3RyaW5nKTogUmVtb3ZlZC4KCjIwMDMtMDUtMDIgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogd3JpdGUuaCAoRkFLRV9MQUJFTF9OQU1FKTogQWxsb3cgb3ZlcnJpZGUKCShmb3IgdGFyZ2V0cyB0aGF0IGxpa2UgZWcuIGEgbGVhZGluZyBkb3QgaW4gYSBsb2NhbCBsYWJlbCkuCgoyMDAzLTA1LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfbWRfYXBwbHlfZml4Myk6IERvIG5vdCBiaWFzIHRoZQoJYWRkZW5kIHdpdGggdGhlIHN5bWJvbCdzIHZhbHVlIGZvciBwYy1yZWxhdGl2ZSByZWxvY2F0aW9ucyBhZ2FpbnN0CglhIGRlZmluZWQgc3ltYm9sIC0gdGhpcyB3aWxsIGJlIGRvbmUgYXV0b21hdGljYWxseS4KCjIwMDMtMDUtMDEgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl90eXBlKTogQWNjZXB0ICJub3R5cGUiIGFuZAoJIlNUVF9OT1RZUEUiLgoKMjAwMy0wNS0wMSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcvdGMtaWE2NC5oICh0Y19jYW5vbmljYWxpemVfc2VjdGlvbl9uYW1lKTogTmV3LgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9zZWN0aW9uX25hbWUpOiBDYWxsCgl0Y19jYW5vbmljYWxpemVfc2VjdGlvbl9uYW1lIGlmIGl0IGlzIGRlZmluZWQuCgoyMDAzLTA1LTAxICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGlhNjRfY2hlY2tfbGFiZWwpOiBOZXcuCgkqIGNvbmZpZy90Yy1pYTY0LmggKHRjX2NoZWNrX2xhYmVsKTogTmV3LgoKCSogcmVhZC5jIChyZWFkX2Ffc291cmNlX2ZpbGUpOiBDYWxsIHRjX2NoZWNrX2xhYmVsIGFmdGVyCgljcmVhdGluZyBhIHVzZXItZGVmaW5lZCBsYWJlbCBpZiBkZWZpbmVkLgoKMjAwMy0wNS0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfc2hvd191c2FnZSk6IE1lbnRpb24gLWEzMiwgLWE2NCwgLWwsIC1sZSwgLWIsCgktYmUgYW5kIHNwbGl0IHN0cmluZ3MgdG8gYmVsb3cgNTA5IGJ5dGVzIGluIGxlbmd0aC4KCjIwMDMtMDUtMDEgIENocmlzdGlhbiBHcm9lc3NsZXIgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBleHByLmg6IEZpeCBjb21tZW50cyBpbiBvcGVyYXRvclQgdHlwZWRlZi4KCSogY29uZmlnL3RjLXo4ay5jOiBBZGQgMjAwMyB0byBjb3B5cmlnaHQgbWVzc2FnZS4KCUZvbGQgc19zZWdtKCkgYW5kIHNfdW5zZWcoKSBpbnRvIG9uZSBmdW5jdGlvbiBzX3NlZ20ocGFybSkgd2hpY2gKCWRlY2lkZXMgYnkgdGhlIHBhcmFtZXRlci4KCShtZF9iZWdpbik6IERvbid0IHNldCBsaW5rcmVsYXguICBPbmx5IHNldCBaODAwMiBkZWZhdWx0IGlmIG5vCgljb21tYW5kIGxpbmUgYXJndW1lbnQgd2FzIGdpdmVuIHRvIHNlbGVjdCB0aGUgaW50ZW5kZWQKCWFyY2hpdGVjdXJlLgoJKGdldF9pbnRlcnJ1cHRfb3BlcmFuZCk6IFdhcm4gaWYgTk9QIHR5cGUgY29kZSBpcyBlbWl0dGVkLgoJKG5ld2ZpeCk6IE5ldyBwYXJhbWV0ZXIgJ3NpemUnLCBmb3J3YXJkIGl0IHRvICdmaXhfbmV3X2V4cCcuCgkoYXBwbHlfZml4KTogQ2FsbCBuZXdmaXggd2l0aCBhZGRpdGlvbmFsICdzaXplJyBwYXJhbWV0ZXIuCgkoYnVpbGRfYnl0ZXMpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlICduaWInLiAgRGV0ZWN0IG92ZXJmbG93IGluCgk0IGJpdCBpbW1lZGlhdGUgYXJndW1lbnRzLgoJKG1kX2xvbmdvcHRzKTogQWRkICdsaW5rcmVsYXgnIG9wdGlvbi4KCShtZF9wYXJzZV9vcHRpb24pOiBBZGFwdCB0byBuZXcgc19zZWdtIGZ1bmN0aW9uLiAgU2V0ICdsaW5rcmVsYXgnCgl2YXJpYWJsZSB3aGVuICdsaW5rcmVsYXgnIGNvbW1hbmQgbGluZSBvcHRpb24gaXMgc3BlY2lmaWVkLgoJKG1kX3Nob3dfdXNhZ2UpOiBEaXNwbGF5ICdsaW5rcmVsYXgnIG9wdGlvbi4KCShtZF9hcHBseV9maXgzKTogRml4IGNhc2VzIFJfSU1NNEwsIFJfSlIsIGFuZCBSX0lNTTguICBBZGQgY2FzZXMKCVJfQ0FMTFIgYW5kIFJfUkVMMTYuCgkqIGNvbmZpZy90Yy16OGsuaDogVW5kZWYgV0FSTl9TSUdORURfT1ZFUkZMT1dfV09SRC4KCjIwMDMtMDQtMzAgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLWlhNjQuYyAoaWE2NF9udW1iZXJfdG9fY2hhcnMpOiBOZXcgZnVuY3Rpb24gcG9pbnRlci4KCShpYTY0X2Zsb2F0X3RvX2NoYXJzKTogTGlrZXdpc2UuCgkoZG90X2J5dGVvcmRlcik6IFNldCB0YXJnZXRfYmlnX2VuZGlhbiwgaWE2NF9udW1iZXJfdG9fY2hhcnMKCWFuZCBpYTY0X2Zsb2F0X3RvX2NoYXJzIGJ5IHRjX3NlZ21lbnRfaW5mb19kYXRhLmVuZGlhbiBmcm9tCgl0aGUgY3VycmVudCBzZWdtZW50IGlmIGJ5dGVvcmRlciA9PSAtMS4KCShtZF9iZWdpbik6IENhbGwgZG90X2J5dGVvcmRlciB0byBzZXQgdGFyZ2V0X2JpZ19lbmRpYW4uCgkobWRfYXRvZik6IENhbGwgaWE2NF9mbG9hdF90b19jaGFycyB0byBjb252ZXJ0IGZsb2F0aW5nIHBvaW50LgoJKGlhNjRfZmxvYXRfdG9fY2hhcnNfYmlnZW5kaWFuKTogTmV3IGZ1bmN0aW9uLgoJKGlhNjRfZmxvYXRfdG9fY2hhcnNfbGl0dGxlZW5kaWFuKTogTGlrZXdpc2UuCgkoaWE2NF9lbGZfc2VjdGlvbl9jaGFuZ2VfaG9vayk6IExpa2V3aXNlLgoKCSogY29uZmlnL3RjLWlhNjQuaCAoaWE2NF9udW1iZXJfdG9fY2hhcnMpOiBOZXcuCgkobWRfbnVtYmVyX3RvX2NoYXJzKTogQ2hhbmdlZCB0byAoKmlhNjRfbnVtYmVyX3RvX2NoYXJzKQoJKGlhNjRfZWxmX3NlY3Rpb25fY2hhbmdlX2hvb2spOiBOZXcuCgkobWRfZWxmX3NlY3Rpb25fY2hhbmdlX2hvb2spOiBEZWZpbmVkLgoJKGlhNjRfc2VnbWVudF9pbmZvX3R5cGUpOiBOZXcgc3RydWN0LgoJKFRDX1NFR01FTlRfSU5GT19UWVBFKTogRGVmaW5lZC4KCjIwMDMtMDQtMzAgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLWlhNjQuYyAobWRfc2VjdGlvbl9hbGlnbik6IERlbGV0ZWQuCgoJKiBjb25maWcvdGMtaWE2NC5oIChTVUJfU0VHTUVOVF9BTElHTik6IE5ldy4KCShtZF9zZWN0aW9uX2FsaWduKTogTmV3LgoKMjAwMy0wNC0zMCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWcvdGMtaWE2NC5jIChzdG10X2Zsb2F0X2NvbnMpOiBGaXggYWxpZ25tZW50IGZvciByZWFsMTAKCWFuZCBhZGQgcmVhbDE2LgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCAieHJlYWwxNiIsICJ4cmVhbDE2LnVhIiwgInJlYWwxNiIgYW5kCgkicmVhbDE2LnVhIi4KCShtZF9hdG9mKTogQWRkIDYgYnl0ZSBwYWRkaW5nIG9mIHplcm8gZm9yIHJlYWwxNi4KCjIwMDMtMDQtMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX3N5bXZlcik6IFNraXAgd2hpdGVzcGFjZSBiZWZvcmUgdGhlCglzdGFydCBvZiBhIHZlcnNpb24gbmFtZS4KCjIwMDMtMDQtMjggIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWd1cmUuaW4gKG1pcHMtKi0qbipic2QqKTogUmVwbGFjZSB3aXRoLi4uCgkobWlwcy0qLW5ldGJzZCosIG1pcHMtKi1vcGVuYnNkKik6IFRoZXNlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTA0LTI4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy90Yy1ocHBhLmMgKGhwcGFfc3ltYm9sX2NoYXJzKTogTmV3LgoJKiBjb25maWcvdGMtaHBwYS5oICh0Y19zeW1ib2xfY2hhcnMpOiBMaWtld2lzZS4KCjIwMDMtMDQtMjYgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lIGFnYWluLgoKMjAwMy0wNC0yNSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIE5FV1M6IEJlbGF0ZWRseSBtZW50aW9uIHN1cHBvcnQgZm9yIE1JUFMzMiBSZWxlYXNlIDIuCgoyMDAzLTA0LTI0ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG5vcGljX25lZWRfcmVsYXgpOiBSZXZlcnQgcHJldmlvdXMKCWNoYW5nZS4KCjIwMDMtMDQtMjQgRGhhbmFuamF5IERlc2hwYW5kZSA8ZGhhbmFuamF5ZEBrcGl0Y3VtbWlucy5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuaCAoRFdBUkYyX0xJTkVfTUlOX0lOU05fTEVOR1RIKTogTmV3CgkqIGNvbmZpZy90Yy1oODMwMC5jIChkd2FyZjJkYmcuaCk6IEluY2x1ZGUKCShtZF9wc2V1ZG9fdGFibGUpOiBIYW5kbGUgLmxvYyBhbmQgLmZpbGUKCShtZF9hc3NlbWJsZSk6IENhbGwgZHdhcmYyX2VtaXRfaW5zbiBpZiBCRkRfQVNTRU1CTEVSLgoJKiBNYWtlZmlsZS5hbTogQWRkIGRlcGVuZGVuY3kgb24gZHdhcmYyZGJnLmggZm9yIGg4MzAwIHRhcmdldHMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNC0yNCBEaGFuYW5qYXkgRGVzaHBhbmRlIDxkaGFuYW5qYXlkQGtwaXRjdW1taW5zLmNvbT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChObW9kZSwgaDgzMDBobm1vZGUsIGg4MzAwc25tb2RlKTogTmV3LgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCBoODMwMGhuLCBoODMwMHNuLgoJKiBjb25maWcvdGMtaDgzMDAuaCAoQ09GRl9NQUdJQyk6IEhhbmRsZSBoODMwMGhuLCBoODMwMHNuLgoJKiBkb2MvYy1oODMwMC50ZXhpIDogQWRkIGRvY3VtZW50YXRpb24gZm9yIG5ldyBtYWNoaW5lIGRpcmVjdGl2ZXMuCgoyMDAzLTA0LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfc3ltYm9sX2NoYXJzKTogRGVmaW5lLgoJKiBjb25maWcvdGMtcHBjLmggKHRjX3N5bWJvbF9jaGFycyk6IERlZmluZS4KCjIwMDMtMDQtMjMgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlnL3RjLXNoLmM6IEFtZW5kIGNvbW1lbnQgdG8gcmVmZXIgdG8gU3VwZXJILgoJKiBjb25maWcvdGMtc2guaDogTGlrZXdpc2UuCgkoTElTVElOR19IRUFERVIpOiBBbWVuZCB0byByZWZlciB0byBTdXBlckguCgkqIGNvbmZpZy90Yy1zaDY0LmM6IENoYW5nZSBjb21tZW50IHRvIHJlZmVyIHRvIFN1cGVySC4KCSogY29uZmlnL3RjLXNoNjQuaCAoTElTVElOR19IRUFERVIpOiBDaGFuZ2UgdG8gcmVmZXIgdG8gU3VwZXJILgoJKiBkb2MvYXMudGV4aW5mbyBbU0gsIEdFTkVSSUNdOiBBbWVuZCAvIENoYW5nZSB0byByZWZlciB0byBTdXBlckguCgkqIGRvYy9jLXNoLnRleGk6IEFtZW5kIHRvIHJlZmVyIHRvIFN1cGVySC4KCUFkZCBTdXBlckggYXJjaGl0ZWN0dXJlIGRvY3VtZW50YXRpb24gcmVmZXJlbmNlcy4KCSogZG9jL2Mtc2g2NC50ZXhpOiBDaGFuZ2UgdG8gcmVmZXIgdG8gU3VwZXJILgoKMjAwMy0wNC0yMyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBhcHAuYyAoZG9fc2NydWJfY2hhcnMpOiBNb3JlIGNoZWNrcyBmb3IgdmFsaWQgbGFiZWxzLgoKMjAwMy0wNC0yMiAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBhcHAuYyAoZG9fc2NydWJfY2hhcnMpOiBDaGVjayBmb3IgdmFsaWQgbGFiZWwuCgoyMDAzLTA0LTIyICBLYXp1aGlybyBJbmFva2EgIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJKiBkb2MvYXMudGV4aW5mbzogUmVwbGFjZSByZWZlcmVuY2VzIHRvIE1pdHN1YmlzaGkgTTMyUiB3aXRoCglyZWZlcmVuY2VzIHRvIFJlbmVzYXMgTTMyUi4KCSogZG9jL2MtbTMyci50ZXhpOiBMaWtld2lzZS4KCjIwMDMtMDQtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkd2FyZjJkYmcuYyAoZ2V0X2ZpbGVudW0pOiBTa2lwIGFzLXlldCB1bmFzc2lnbmVkIGZpbGUgbnVtYmVycy4KCShvdXRfZmlsZV9saXN0KTogQXNzaWduIG5vbi1udWxsIGZpbGVuYW1lIGFmdGVyIGdlbmVyYXRpbmcgZXJyb3IuCgoyMDAzLTA0LTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVob3B0LmMgKGNoZWNrX2VoX2ZyYW1lKTogRm9yIGF1Z19zaXplID09IDAKCWluIHN0YXRlX3NlZWluZ19hdWdfc2l6ZSBzdGF0ZSBza2lwIHRoZSBzdGF0ZV9za2lwcGluZ19hdWcKCXN0YXRlLgoKMjAwMy0wNC0xNSAgUm9oaXQgS3VtYXIgU3JpdmFzdGF2YSA8cm9oaXRzQGtwaXRjdW1taW5zLmNvbT4KCgkqIGRvYy9jLWg4MzAwLnRleGk6IFJlcGxhY2Ugb2NjdXJyYW5jZXMgb2YgJ0hpdGFjaGknIHdpdGgKCSdSZW5lc2FzJy4KCSogZG9jL2MtaDg1MDAudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9jLXNoLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1zaDY0LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvaDgudGV4aTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODMwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWg4MzAwLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDg1MDAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODUwMC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2guaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaDY0LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2g2NC5oOiBMaWtld2lzZS4KCjIwMDMtMDQtMTAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuaCAodGNfZnJhZ19kYXRhX3R5cGUsIFRDX0ZSQUdfVFlQRSk6IE5ldy4KCSogY29uZmlnL3RjLW1pcHMuYzogVXNlIHNpZ25lZCBhZGQgZm9yIG4zMiBhZGRyZXNzIGFyaXRobWV0aWMuCgkoYXBwZW5kX2luc24pOiBXaGVuIGZpbGxpbmcgZGVsYXkgc2xvdHMgd2l0aCBpbnN0cnVjdGlvbnMKCXRoYXQgaGF2ZSBmaXh1cHMgdGhhdCB0Y19nZW5fcmVsb2MgbWlnaHQgY29uc2lkZXIgbW9kaWZ5YWJsZQoJaW4gdmFyaWFudCBmcmFncywgc3RhcnQgYSBuZXcgZnJhZy4KCShsb2FkX2FkZHJlc3MpOiBHZW5lcmF0ZSBHT1RfRElTUCB3aXRoIG9mIHdpdGhvdXQgb2Zmc2V0CglkZXBlbmRpbmcgb24gd2hldGhlciBzeW1ib2wgaXMgbG9jYWwuICBGb3IgLXhnb3QsIHVzZQoJR09UX1BBR0UvR09UX09GU1Qgb3IgR09UX0hJMTYvR09UX0xPMTYuCgkobWFjcm8pIDxNX0RMQV9BQiwgTV9MQV9BQj46IExpa2V3aXNlLgoJPE1fSkFMX0E+OiBJbiBOZXdBQkksIHVzZSBDQUxMMTYgb3IgR09UX0RJU1AgZm9yIHNtYWxsIGdvdCwKCUNBTExfSEkxNi9DQUxMX0xPMTYgb3IgR09UX1BBR0UvR09UX09GU1QgZm9yIGJpZyBnb3QuCgk8bGRfc3Q+OiBJbiBOZXdBQkkgd2l0aCBzbWFsbCBnb3QsIGFsd2F5cyB1c2UKCUdPVF9QQUdFL0dPVF9PRlNULCB3aXRoIHRoZSBsYXR0ZXIgaW4gdGhlIGxvYWQvc3RvcmUKCWluc3RydWN0aW9uLiAgV2l0aCBiaWcgZ290LCB1c2UgR09UX0hJMTYvR09UX0xPMTYgb3IKCUdPVF9QQUdFL0dPVF9PRlNULgoJKHRjX2dlbl9yZWxvYyk6IEFkanVzdCB2YXJpYW50IGZyYWdzIHdpdGggR09UX0RJU1AgaW4gTmV3QUJJLgoJQWRkIHRjX2ZyYWdfZGF0YS50Y19mcl9vZmZzZXQgdG8gYWRkZW5kcy4gIERlY2F5IENBTEwxNiwKCUdPVF9PRlNUIGFuZCBHT1RfRElTUCB0byBHT1RfRElTUCBpbiBOZXdBQkkuCgkobWRfY29udmVydF9mcmFnKTogVXNlIG1lbW1vdmUgZm9yIHNhZmUgY29weWluZyBvZiBvdmVybGFwcGluZwoJcmVnaW9ucy4KCjIwMDMtMDQtMDkgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZG9jL2MtbTY4aGMxMS50ZXhpIChNNjhIQzExLU9wdHMpOiBEb2N1bWVudCAtbTY4aGNzMTIsIC1tc2hvcnQsCgktbWxvbmcsIC1tc2hvcnQtZG91YmxlIGFuZCAtbWxvbmctZG91YmxlIG9wdGlvbnM7IHVzZSB0YWJsZSBAY29kZS4KCShNNjhIQzExLVN5bnRheCk6IFVwZGF0ZSB0byBkb2N1bWVudCA2OEhDMTIgb3BlcmFuZHMuCgkoTTY4SEMxMS1Nb2RpZmllcnMpOiBOZXcgc2VjdGlvbiBmb3Igb3BlcmFuZCBtb2RpZmllcnMuCgkoTTY4SEMxMS1EaXJlY3RpdmVzKTogTmV3IHNlY3Rpb24gZm9yIHNwZWNpZmljIGFzc2VtYmxlciBkaXJlY3RpdmVzLgoJKE02OEhDMTEtQnJhbmNoKTogRml4IE92ZXJmdWxsIGhib3ggZXJyb3IuCgoyMDAzLTA0LTA5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogQWRkIGNvbW1lbnRzIGV4cGxhaW5pbmcgdGhlIHJhdGlvbmFsZQoJZm9yIENocmlzJyBjaGFuZ2UuCgoyMDAzLTA0LTA5ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8pOiBQdXQgYmFjayBgKyAweDgwMDAnIGluIHRlc3QgZm9yIDY0LWJpdAoJY29uc3RhbnQgYWRkcmVzcyB0aGF0IEFsZXhhbmRyZSB0b29rIG91dCBieSBhY2NpZGVudC4gIFJlamVjdAoJNjQtYml0IGFkZHJlc3NlcyB0aGF0IGFyZSBub3Qgc2lnbiBleHRlbnNpb25zIG9mIDMyIGJpdHMgb25seSBpZgoJd2UgZG9uJ3Qgc3VwcG9ydCA2NC1iaXQgYWRkcmVzcyBjb25zdGFudHMuCgoyMDAzLTA0LTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9hcHBseV9maXgzKTogR2VuZXJhdGUgQUREUjE2IHJlbG9jcy4KCjIwMDMtMDQtMDggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcy5jIChwZXJmb3JtX2FuX2Fzc2VtYmx5X3Bhc3MpOiBJZiB1c2luZyBjZ2VuLCBjYWxsCglnYXNfY2dlbl9iZWdpbi4KCSogY2dlbi5jIChnYXNfY2dlbl9iZWdpbik6IE5ldyBmdW5jdGlvbi4gIElmCglmbGFnX3NpZ25lZF9vdmVyZmxvd19vayBpcyBzZXQgY2FsbCBjZ2VuX3NldF9zaWduZWRfb3ZlcmZsb3dfb2sKCW90aGVyd2lzZSBjYWxsIGNnZW5fY2xlYXJfc2lnbmVkX292ZXJmbG93X29rLgoJKiBjZ2VuLmg6IFByb3RvdHlwZSBnYXNfY2dlbl9iZWdpbi4KCjIwMDMtMDQtMDcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiB3cml0ZS5jICh3cml0ZV9yZWxvY3MpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoKMjAwMy0wNC0wNiAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKEhBVkVfNjRCSVRfQUREUkVTU19DT05TVEFOVFMpOiBOZXcuCgkobWFjcm8pOiBVc2UgbmV3IG1hY3JvIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGVtaXQgY29uc3RhbnQgYWRkcmVzcwoJYXMgMzIgb3IgNjQgYml0cyBpZiBhZGRyZXNzZXMgYXJlIDMyLWJpdCB3aWRlIGJ1dCByZWdpc3RlcnMgYXJlCgk2NC1iaXQgd2lkZS4KCjIwMDMtMDQtMDUgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAoTTY4MTFfT1BfQ0FMTF9BRERSKTogTmV3IGludGVybmFsIGRlZmluZS4KCShNNjgxMV9PUF9QQUdFX0FERFIpOiBOZXcgaW50ZXJuYWwgZGVmaW5lLgoJKGdldF9vcGVyYW5kKTogTmV3IG1vZGlmaWVyICVwYWdlIGFuZCAlYWRkciB0byBvYnRhaW4gcGFnZSBhbmQKCWFkZHJlc3MgcGFydCBvZiBhIGZhci1mdW5jdGlvbi4KCShmaXh1cDgpOiBVc2UgQkZEX1JFTE9DX002OEhDMTFfUEFHRSBmb3IgYSAlcGFnZSBtb2RpZmllcjsgZG9uJ3QKCWNvbXBsYWluIG9uIG92ZXJmbG93IGZvciB0aGUgQkZEX1JFTE9DX002OEhDMTFfUEFHRSBhbmQgdHJ1bmNhdGlvbgoJcmVsb2NzLgoJKGZpeHVwMTYpOiBVc2UgQkZEX1JFTE9DX002OEhDMTFfTE8xNiBmb3IgYSAlYWRkciBtb2RpZmllci4KCShmaW5kX29wY29kZSk6IEFkZCBjb21tZW50LgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogRm9yY2UgcmVsb2NhdGlvbiBvZgoJU1RBVEVfVU5ERVhFRF9PRkZTRVQgdHlwZXMgd2hlbiB0aGUgc3ltYm9sIGlzIG5vdCBhYnNvbHV0ZS4KCSh0Y19tNjhoYzExX2ZpeF9hZGp1c3RhYmxlKTogQ2hlY2sgZm9yIEJGRF9SRUxPQ19NNjhIQzExX0xPMTYKCWluc3RlYWQgb2YgQkZEX1JFTE9DX0xPMTY7IHRlbXBvcmFyaWx5IG1ha2UgdGhlIEJGRF9SRUxPQ18zMgoJb24gdGhlIHN5bWJvbCBpdHNlbGYgc28gdGhhdCBEV0FSRjIgc3RyaW5ncyBhcmUgbWVyZ2VkIGNvcnJlY3RseS4KCjIwMDMtMDQtMDQgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy9vYmotY29mZi5oIChUQVJHRVRfRk9STUFUKTogTmFtZXNwYWNlIGNsZWFudXAsIGNoYW5nZWQKCWRlZmF1bHQgdGljNHggdGFyZ2V0IGZvcm1hdCB0byAnY29mZjItdGljNHgnLgoJKiBjb25maWcvdGMtdGljNHguYzogTmFtZXNwYWNlIGNsZWFudXAuIFJlcGxhY2Ugcy9jNHgvdGljNHgvIGFuZAoJcy9jM3gvdGljM3gvCgkqIGNvbmZpZy90Yy10aWM0eC5oOiBEaXR0bwoKMjAwMy0wNC0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gc3VwcG9ydCBmb3IgWHRlbnNhIGFyY2hpdGVjdHVyZS4KCjIwMDMtMDQtMDIgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9mb3JjZV9yZWxvY2F0aW9uKTogUmV0dXJuIDAgZm9yIE9GRlNFVF9JTU0uCgoyMDAzLTA0LTAyICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8yKTogQWRqdXN0IGltcGxlbWVudGF0aW9uIG9mCglNX1VMSCwgTV9VTEhVLCBNX1VMVywgYW5kIE1fVUxEIHNvIHRoYXQgdGhleSB3b3JrIHByb3Blcmx5CglpbiB0aGUgY2FzZSB3aGVyZSB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiByZWdpc3RlcnMKCWFyZSB0aGUgc2FtZS4KCjIwMDMtMDQtMDEgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBNYWtlZmlsZS5hbSAoQ1BVX1RZUEVTKTogQWRkIHh0ZW5zYS4KCShUQVJHRVRfQ1BVX0NGSUxFUyk6IEFkZCBjb25maWcvdGMteHRlbnNhLmMuCgkoVEFSR0VUX0NQVV9IRklMRVMpOiBBZGQgY29uZmlnL3RjLXh0ZW5zYS5oLgoJKHh0ZW5zYS1yZWxheC5vKTogTmV3IHRhcmdldC4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLmluOiBIYW5kbGUgeHRlbnNhLSotKi4gIEFkZCB4dGVuc2EtcmVsYXgubyB0bwoJZXh0cmFfb2JqZWN0cyBmb3IgeHRlbnNhIHRhcmdldHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogd3JpdGUuYyAod3JpdGVfb2JqZWN0X2ZpbGUpOiBBZGQgbmV3IG1kX3Bvc3RfcmVsYXhfaG9vay4KCSogY29uZmlnL3RjLXh0ZW5zYS5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLXh0ZW5zYS5oOiBMaWtld2lzZS4KCSogY29uZmlnL3h0ZW5zYS1pc3RhY2suaDogTGlrZXdpc2UuCgkqIGNvbmZpZy94dGVuc2EtcmVsYXguYzogTGlrZXdpc2UuCgkqIGNvbmZpZy94dGVuc2EtcmVsYXguaDogTGlrZXdpc2UuCgkqIGRvYy9NYWtlZmlsZS5hbSAoQ1BVX0RPQ1MpOiBBZGQgYy14dGVuc2EudGV4aS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvYWxsLnRleGk6IFNldCBuZXcgWFRFTlNBIHZhcmlhYmxlLgoJKiBkb2MvYXMudGV4aW5mbzogU2V0IG5ldyBYdGVuc2EgdmFyaWFibGUuICBEZXNjcmliZQoJWHRlbnNhLXNwZWNpZmljIG9wdGlvbnMuICBEZWZpbmUgbGluZSBjb21tZW50IGNoYXJhY3RlciBmb3IKCVh0ZW5zYS4gIEFkZCBYdGVuc2EgcHJvY2Vzc29ycyB0byBsaXN0IG9mIEVMRiB0YXJnZXRzIHdoZXJlCglhbGlnbm1lbnQgaXMgc3BlY2lmaWVkIGluIGJ5dGVzLiAgQWRkIG5ldyBYdGVuc2EtRGVwZW5kZW50IG5vZGUuCglBZGQgYWNrbm93bGVkZ2VtZW50cyBmb3IgdGhvc2UgY29udHJpYnV0aW5nIHRvIHRoZSBYdGVuc2EgcG9ydC4KCSogZG9jL2ludGVybmFscy50ZXhpOiBEZXNjcmliZSBuZXcgbWRfcG9zdF9yZWxheF9ob29rLgoJKiBkb2MvYy14dGVuc2EudGV4aTogTmV3IGZpbGUuCgoyMDAzLTA0LTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoJICAgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogY29uZmlnL3RjLWFybS5jOiBSZW1vdmUgcHJlc2VuY2Ugb2YgKHIpIGFuZCAodG0pIHN5bWJvbHMuCgkoQVJNX0FSQ0hfSVdNTVhUKTogU2ltcGxpZnkuCgkoaW5zbnMpOiBQbGFjZSBpd21teCBpbnN0cnVjdGlvbnMgaW4gY29ycmVjdCBwbGFjZSBpbiB0YWJsZS4KCShhcm1fYWRkX25vdGUpOiBOZXcgZnVuY3Rpb246IEFkZCBhIG5vdGUgZW50cnkgdG8gYSAubm90ZSBzZWN0aW9uLgoJKG1kX2JlZ2luKTogTWFrZSB0aGUgZGVmYXVsdCBhcmNoaXRlY3R1cmUgYmUgdW5rbm93bi4KCVN1cHByZXNzIHRoZSBjcmVhdGlvbiBvZiBhbiBhcm0gbm90ZSBzZWN0aW9uLgoKMjAwMy0wMy0yNiAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChub3BpY19uZWVkX3JlbGF4KTogQ2hlY2sgZm9yIFNfSVNfRVhURVJOLgoKMjAwMy0wMy0yNSAgU3RhbiBDb3ggICA8c2NveEByZWRoYXQuY29tPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJQ29udHJpYnV0ZSBzdXBwb3J0IGZvciBJbnRlbCdzIGlXTU1YdCBjaGlwIC0gYW4gQVJNIHZhcmlhbnQ6CgoJKiBjb25maWcvdGMtYXJtLmM6IChBUk1fQ0VYVF9JV01NWFQsIEFSTV9BUkNIX0lXTU1YVCwgV1JfUFJFRklYLAoJV0NfUFJFRklYLCBSRUdfVFlQRV9JV01NWFQpOiBOZXcgY29uc3RhbnRzLgoJKGVudW0gd3JlZ190eXBlLCBlbnVtIGl3bW14dF9pbnNuX3R5cGUpOiBOZXcgdHlwZXMuCgkod3JfcmVnaXN0ZXIsIHdjX3JlZ2lzdGVyLCB3Y2dfcmVnaXN0ZXIpOiBOZXcgbWFjcm9zLgoJKGl3bW14dF90YWJsZSk6IE5ldyB2YXJpYWJsZS4KCSh3cmVnX3JlcXVpcmVkX2hlcmUsIGRvX2l3bW14dF9ieXRlX2FkZHIsIGRvX2l3bW14dF90YW5kYywKCWRvX2l3bW14dF90YmNzdCwgZG9faXdtbXh0X3RleHRyYywgZG9faXdtbXh0X3RleHRybSwKCWRvX2l3bW14dF90aW5zciwgZG9faXdtbXh0X3RtY3IsIGRvX2l3bW14dF90bWNyciwgZG9faXdtbXh0X3RtaWEsCglkb19pd21teHRfdG1vdm1zaywgZG9faXdtbXh0X3RtcmMsIGRvX2l3bW14dF90bXJyYywKCWRvX2l3bW14dF90b3JjLCBkb19pd21teHRfd2FsaWduaSwgZG9faXdtbXh0X3dtb3YsCglkb19pd21teHRfd29yZF9hZGRyLCBkb19pd21teHRfd3J3ciwgZG9faXdtbXh0X3dyd3J3Y2csCglkb19pd21teHRfd3J3cndyLCBkb19pd21teHRfd3NodWZoLCBkb19pd21teHRfd3plcm8sCgljcF9ieXRlX2FkZHJlc3Nfb2Zmc2V0LCBjcF9ieXRlX2FkZHJlc3NfcmVxdWlyZWRfaGVyZSwKCWNoZWNrX2l3bW14dF9pbnNuKTogTmV3CWZ1bmN0aW9ucy4KCShhc21fb3Bjb2RlX2luc25zKTogQWRkIGlXTU1YdCBpbnN0cnVjdGlvbnMuCgkobWRfYmVnaW4pOiBTZXQgdGhlIG1hY2ggdmFsdWUgZm9yIGlXTU1YdCB0YXJnZXRzLiAgQ3JlYXRlIGEgbm90ZQoJc2VjdGlvbiB0byBpZGVudGlmeSBpd21teHQgYmluYXJpZXMuCgkobWRfYXBwbHlfZml4Myk6IEhhbmRsZSBCRkRfUkVMT0NfQVJNX0NQX09GRl9JTU1fUzIuCgkqIGRvYy9jLWFybS50ZXhpOiBEb2N1bWVudCB0aGUgc3VwcG9ydCBmb3IgdGhlIGlXTU1YdC4KCSogTkVXUzogTWVudGlvbiBuZXcgc3VwcG9ydC4KCjIwMDMtMDMtMjQgIERhbmllbCBO6XJpICA8ZG5lQG1heW9ubmFpc2UubmV0PgoKCSogZG9jL2FzLnRleGluZm86IFJlbmFtZSB0aGUgYWxsIG9jY3VyYW5jZXMgb2YgQzU0WCB0byBUSUM1NFguCgkqIGRvYy9hbGwudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9jLXRpYzU0eC50ZXhpOiBMaWtld2lzZS4KCjIwMDMtMDMtMjEgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBjb25maWcvdGMtaWE2NC5jIChnZW5lcmF0ZV91bndpbmRfaW1hZ2UpOiBGaXggdHlwZSBvZiB1bndfcmVjIHRvCglhdm9pZCBhbGlhc2luZyBpc3N1ZS4KCjIwMDMtMDMtMjEgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChzMzkwX2FyY2hfc2l6ZSk6IEluaXRpYWxpemUgdG8gemVyby4KCShjdXJyZW50X2FyY2hfbWFzayk6IFJlbmFtZSB0byBjdXJyZW50X21vZGVfbWFzay4KCShjdXJyZW50X2FyY2hfcmVxdWVzdGVkKTogUmVtb3ZlIHZhcmlhYmxlLgoJKGN1cnJlbnRfY3B1KTogTmV3IHZhcmlhYmxlLgoJKGluaXRfZGVmYXVsdF9hcmNoKTogU2V0IGRlZmF1bHRzIHZhbHVlcyBmb3IgczM5MF9hcmNoX3NpemUsCgljdXJyZW50X21vZGVfbWFzayBhbmQgY3VycmVudF9jcHUuCgkobWRfcGFyc2Vfb3B0aW9uKTogTmV3IG9wdGlvbnMgLW1lc2EsIC1temFyY2ggYW5kIC1tYXJjaD17ZzUsZzYsejkwMH0uCgkobWRfYmVnaW4pOiBSZXBsYWNlIGN1cnJlbnRfYXJjaF9tYXNrIGJ5IGN1cnJlbnRfY3B1LgoJKG1kX2Fzc2VtYmxlKTogQWRhcHQgY2hlY2sgYW5kIGVycm9yIG1lc3NhZ2UgdG8gY3VycmVudF9tb2RlX21hc2sgYW5kCgljdXJyZW50X2NwdS4KCjIwMDMtMDMtMDkgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHR1bGlwdHJlZS5vcmc+CgoJKiBtYWNyby5jIChidWZmZXJfYW5kX25lc3QpOiBTdG9yZSBtb3JlIHRvIHNiIGluc3RlYWQgb2YgJ1xuJy4KCSogcmVhZC5jIChnZXRfbGluZV9zYik6IFJldHVybiBlbmQgb2YgbGluZSBjaGFyYWN0ZXIgb3IgJ1xuJyBpZgoJaXQgaXMgemVybyBvciBub24tZXhpc3RlbnQuCgoyMDAzLTAzLTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfdmFsaWRhdGVfZml4KTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvdGMtbWlwcy5oIChUQ19WQUxJREFURV9GSVgpOiBEZWZpbmUuCgkobWlwc192YWxpZGF0ZV9maXgpOiBEZWNsYXJlLgoKMjAwMy0wMy0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBSZXZlcnRlZCAyMDAzLTAzLTAyJ3MgcGF0Y2guCgoyMDAzLTAzLTExICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCgkqIGR3YXJmMmRiZy5jIChnZW5lcmljX2R3YXJmMl9lbWl0X29mZnNldCk6IE5ldy4KCShUQ19EV0FSRjJfRU1JVF9PRkZTRVQpOiBQcm92aWRlIGRlZmF1bHQuCgkob3V0X2RlYnVnX2FyYW5nZXMsIG91dF9kZWJ1Z19pbmZvKTogVXNlIGl0LgoJKiBjb25maWcvdGMtaWE2NC5jIChpYTY0X2R3YXJmMl9lbWl0X29mZnNldCk6IE5ldy4KCShpYTY0X2NvbnNfZml4X25ldyk6IE1vdmUgRlVOQ19EVFBfUkVMQVRJVkUgaGFuZGxpbmcgLi4uCgkoaWE2NF9nZW5fcmVhbF9yZWxvY190eXBlKTogLi4uIGhlcmUuCgkqIGNvbmZpZy90Yy1pYTY0LmggKFRDX0RXQVJGMl9FTUlUX09GRlNFVCk6IE5ldy4KCjIwMDMtMDMtMDkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChzX21pcHNfZW5kKTogUmVtb3ZlICFCRkRfQVNTRU1CTEVSIGNhc2UuCgkoc19taXBzX2VudCk6IExpa2V3aXNlLgoKMjAwMy0wMy0wNCAgRG1pdHJ5IERpa3kgIDxkaXdpbEBtYWlsLnJ1PgoKCSogY29uZmlnL3RjLW1zcDQzMC5jIChtY3VfdHlwZXMpOiBBZGQgcmVjZW50bHkgYW5ub3VuY2VkIHgxMTIyCglhbmQgeDExMjMgZGV2aWNlcywgYWRkIG1pc3NlZCB4NDM3LgoJKG1kX3Nob3dfdXNhZ2UpOiBTb3J0IGRldmljZSBsaXN0LgoKMjAwMy0wMy0wMyAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAoc2hfZHNwKTogUmVwbGFjZSB3aXRoIHByZXNldF90YXJnZXRfYXJjaC4KCShtZF9iZWdpbik6IFVzZSBwcmVzZXRfdGFyZ2V0X2FyY2guCgkobWRfbG9uZ29wdHMpOiBNYWtlIGlzYSBvcHRpb24gdW5jb25kaXRpb25hbC4KCShtZF9wYXJzZV9vcHRpb24pOiBNYWtlIE9QVElPTl9EU1AgYW5kIE9QVElPTl9JU0Egc2g0IC8gYW55CglzZXQgcHJlc2V0X3RhcmdldF9hcmNoLgoJKG1kX2FwcGx5X2ZpeDMpOiBJZiBCRkRfQVNTRU1CTEVSLCBhZGp1c3QgU1dJVENIX1RBQkxFIGZpeHVwcwoJYnkgLVNfR0VUX1ZBTFVFICAoZml4UC0+Znhfc3Vic3kpLgoJKHRjX2dlbl9yZWxvYyk6IEZvciBTV0lUQ0hfVEFCTEUgZml4dXBzLCB0aGUgc3ltYm9sIGlzIGZpeHAtPmZ4X3N1YnN5LAoJYW5kIHRoZSBhZGRlbmQgaXMgMC4KCUFkanVzdCBhZGRlbmQgb2YgUl9TSF9JTkQxMlcgcmVsb2NhdGlvbnMgYnkgZml4cC0+Znhfb2Zmc2V0IC0gNC4KCSogY29uZmlnL3RjLXNoLmggKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0xPQ0FMKTogRGVmaW5lLgoKMjAwMy0wMy0wMiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKGFwcGVuZF9pbnNuKTogQWRkIGhhbmRsaW5nIG9mCglCRkRfUkVMT0NfTUlQU0VNQl8xNl9QQ1JFTF9TMi4gQXZvaWQgZW1pdHRpbmcgdW5uZWVkZWQKCUJGRF9SRUxPQ18xNl9QQ1JFTF9TMiByZWxvY3MgYW5kIGFkZCBlYXJsaWVyIHdhcm5pbmdzIGFib3V0CgltaXNhbGlnbmVkIGFkZHJlc3MgYW5kIHJlYW5nZSBvdmVyZmxvdy4KCShtYWNyb19idWlsZCk6IEFkZCBoYW5kbGluZyBvZiBCRkRfUkVMT0NfTUlQU0VNQl8xNl9QQ1JFTF9TMi4gQWRkCgllYXJsaWVyIHdhcm5pbmdzIGFib3V0IG1pc2FsaWduZWQgYWRkcmVzcyBhbmQgcmVhbmdlIG92ZXJmbG93LgoJKG1pcHNfaXApOiBBZGQgaGFuZGxpbmcgb2YgQkZEX1JFTE9DX01JUFNFTUJfMTZfUENSRUxfUzIuCgkobWRfYXBwbHlfZml4KTogTGlrZXdpc2UuIEZpeCB3YXJuaW5nIG91dHB1dC4KCSh0Y19nZW5fcmVsb2MpOiBBZGQgaGFuZGxpbmcgb2YgQkZEX1JFTE9DX01JUFNFTUJfMTZfUENSRUxfUzIuCglBbGxvdyBCRkRfUkVMT0NfMTZfUENSRUxfUzIgZm9yIGFsbCBBQklzLgoJKG1kX2NvbnZlcnRfZnJhZyk6IEFkZCBoYW5kbGluZyBvZiBCRkRfUkVMT0NfTUlQU0VNQl8xNl9QQ1JFTF9TMi4KCjIwMDMtMDItMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBNZW50aW9uIGF2YWlsYWJpbGl0eSBvZiB0ZXN0IGdlbmVyYXRvciBwcm9ncmFtLgoKMjAwMy0wMi0yMSAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUub3JnPgoKCSogY29uZmlnL3RjLXY4NTAuYyAoc3lzdGVtX3JlZ2lzdGVycyk6IEFkZCB2ODUwZSBkZWJ1ZyByZWdpc3RlcnMuCgkoc3lzdGVtX3JlZ2lzdGVyX25hbWUpOiBBY2NlcHQgdXAgdG8gMjcgKHRoZSBsYXN0IHY4NTBlIHN5cyByZWdpc3RlcikuCgoyMDAzLTAyLTIxICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZG9jL2FzLnRleGluZm86IERlZmluZSBuZXcgQ09GRi1FTEYgdmFyaWFibGUgdG8gY29uZGl0aW9uYWxpemUgdGV4dAoJcmVsZXZhbnQgdG8gYm90aCBDT0ZGIGFuZCBFTEYuICBGaXggb2J2aW91cyB0eXBvcyBhbmQgdGV4aW5mbyBidWdzLgoJQ2FwaXRhbGl6ZSBzZWN0aW9uIGhlYWRpbmdzIGNvbnNpc3RlbnRseS4gIEZvcm1hdCBpbmRleCBlbnRyaWVzIG1vcmUKCWNvbnNpc3RlbnRseS4gIFVuY29uZGl0aW9uYWxpemUgdGV4dCBhYm91dCB3aGV0aGVyIHRleHQgYW5kIGRhdGEKCXNlY3Rpb25zIGFyZSBhbHRlcmFibGUuICBVc2UgQGlmbm90dGV4IGZvciBhbHRlcm5hdGl2ZXMgdG8gQHRleCBvdXRwdXQKCXNvIHRoYXQgSFRNTCB3b3Jrcy4gIENsZWFuIHVwIENPRkYgdnMuIEVMRiBkZXNjcmlwdGlvbnMgb2YgLnNlY3Rpb24sCgkuc2l6ZSBhbmQgLnR5cGUgZGlyZWN0aXZlcy4gIEJlIG1vcmUgcG9saXRlIGFib3V0IGJhZCBidWcgcmVwb3J0cy4KCU1vdmUgRkRMIGludG8gYSBzZXBhcmF0ZSBmaWxlLgoJKiBkb2MvZmRsLnRleGk6IE5ldyBmaWxlLgoKMjAwMy0wMi0yMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAocHJldl9yZWxvY19vcF9mcmFnKTogTmV3IHZhcmlhYmxlLgoJKG1hY3JvKTogQ2hlY2sgaXQgdG8gZGVjaWRlIHdoZXRoZXIgYSBuZXcgZnJhZyBpcyBuZWVkZWQuCgkobXlfZ2V0U21hbGxFeHByZXNzaW9uKTogU2V0IGl0LgoKMjAwMy0wMi0yMCAgam1jICA8am1jQHByaW9yaXMubWluaS5wdy5lZHUucGw+CgoJKiBjZ2VuLmM6IEZpeCB0eXBvOiBpbnRpYWwgLT4gaW5pdGlhbC4KCjIwMDMtMDItMTkgIEppZSBaaGFuZyAgPHpoYW5namllQG1hZ2ltYS5jb20uY24+CgoJKiBhcHAuYyAoZG9fc2NydWJfY2hhcnMpOiBIYW5kbGUgJ3x8JyBpbiB0d28gc3RhdGVzLgoKMjAwMy0wMi0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBSZXZlcnQgbGFzdCBjaGFuZ2UuCgkqIGNvbmZpZy90Yy1zMzkwLmggKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBEZWZpbmUuCgoyMDAzLTAyLTExICBVd2UgU3RpZWJlciAgPHV3ZUB3d3dzLmRlPgoKCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3Iga2FPUyBhcyBjcm9zcyBidWlsZCB0YXJnZXQgc3lzdGVtLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMy0wMi0xMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAobWRfYmVnaW4pOiBJZiB0aGUgTWF2ZXJpY2sgY28tcHJvY2Vzc29yIGlzCglzZWxlY3RlZCwgc2V0IHRoZSBFRl9BUk1fTUFWRVJJQ0tfRkxPQVQgZmxhZyBhbmQKCWJmZF9tYWNoX2FybV9lcDkzMTIgbWFjaGluZSBudW1iZXIuCgoyMDAzLTAyLTA4ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChyZWxvY19uZWVkc19sb19wKTogTmV3IGZ1bmN0aW9uLgoJKGZpeHVwX2hhc19tYXRjaGluZ19sb19wKTogTmV3IGZ1bmN0aW9uLgoJKGFwcGVuZF9pbnNuKTogVXNlIHJlbG9jX25lZWRzX2xvX3AgdG8gY2hlY2sgd2hldGhlciBhIHJlbG9jYXRpb24KCW1pZ2h0IG5lZWQgYSBtYXRjaGluZyAlbG8oKS4gIFJldXNlIHRoZSBoZWFkIG9mIG1pcHNfaGlfZml4dXBfbGlzdAoJaWYgdGhhdCBmaXh1cCBhbHJlYWR5IGhhcyBhIG1hdGNoaW5nICVsbygpLiAgRG9uJ3QgY2FsbCBmcmFnX3dhbmUgaGVyZS4KCShtYWNybyk6IENhbGwgZnJhZ193YW5lIGhlcmUgaWYgdGhlIGxhc3QgdW5tYXRjaGVkIGhpIHdhcyBpbiB0aGUKCWN1cnJlbnQgZnJhZy4KCShwaWNfbmVlZF9yZWxheCk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20uLi4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IC4uLmhlcmUuCgkobWlwc19mcm9iX2ZpbGUpOiBVc2UgcmVsb2NfbmVlZHNfbG9fcC4gIFVzZSBwaWNfbmVlZF9yZWxheCB0byB0ZXN0Cgl3aGV0aGVyIEJGRF9SRUxPQ19NSVBTX0dPVDE2IGZpeHVwcyByZWZlciB0byBnbG9iYWwgc3ltYm9scy4KCjIwMDMtMDItMDcgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG15X2dldFNtYWxsRXhwcmVzc2lvbik6IFJld29yayBicmFja2V0IGhhbmRsaW5nLgoKMjAwMy0wMi0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX2VsZl9zdWZmaXgpOiBVbmRvIHBhcnQgb2YgbGFzdCBjaGFuZ2Ugc28gdGhhdAoJeEB0b2Mrb2ZmIHdvcmtzLgoKMjAwMy0wMi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWFwcGluZyk6IEhhbmRsZSBuZXcgVExTIHJlbG9jIHNwZWNzLgoJKHBwY19lbGZfc3VmZml4KTogRG9uJ3Qgd2FybiBmb3IgeCtvZmZAZ290IHdoZW4gcHBjNjQgYW5kIGRvbid0CglhY2NlcHQgeEBnb3Qrb2ZmIGV0Yy4KCShtZF9hc3NlbWJsZSk6IEhhbmRsZSBUTFMgcmVsb2NzLgoJKHBwY19mb3JjZV9yZWxvY2F0aW9uKTogRm9yY2UgZm9yIGFsbCBUTFMgcmVsb2NzLgoJKHBwY19maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeDMpOiBIYW5kbGUgVExTIHJlbG9jcy4KCjIwMDMtMDItMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogU2V0IFNFQ19MSU5LX09OQ0UgYW5kCglTRUNfTElOS19EVVBMSUNBVEVTX0RJU0NBUkQgZGlyZWN0bHkgcmF0aGVyIHRoYW4gdXNpbmcgZWxmX2xpbmtvbmNlX3AuCgoyMDAzLTAyLTAyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChlbnVtIHNtYWxsX2V4X3R5cGUpOiBSZW1vdmUuCgkoaW1tX3VubWF0Y2hlZF9oaSk6IFJlbW92ZS4KCShtZF9hc3NlbWJsZSk6IFJlbW92ZSB1c2Ugb2YgaW1tX3VubWF0Y2hlZF9oaS4gIFJlbW92ZSB0aGUgbGFzdAoJYXJndW1lbnQgZnJvbSBjYWxscyB0byBhcHBlbmRfaW5zbi4KCShhcHBlbmRfaW5zbik6IFJlbW92ZSB1bm1hdGNoZWRfaGkgcGFyYW1ldGVyOyBjaGVjayByZWxvY190eXBlWzBdCglpbnN0ZWFkLgoJKG1hY3JvX2J1aWxkKTogVXBkYXRlIGFwcGVuZF9pbnNuIGNhbGxzLgoJKG1pcHMxNl9tYWNyb19idWlsZCwgbWFjcm9fYnVpbGRfbHVpKTogTGlrZXdpc2UuCgkobWlwc19pcCk6IFJld29yayBoYW5kbGluZyBvZiBzbWFsbCBleHByZXNzaW9ucy4gIE1vdmUgZXhwbGljaXQKCXJlbG9jYXRpb24gaGFuZGxpbmcgaW50byBteV9nZXRTbWFsbEV4cHJlc3Npb24uICBBc3N1bWUgdGhhdCB0aGUKCXZhbHVlIG9mICdvJyBvcGVyYW5kcyBpcyB6ZXJvIGlmIHRoZXJlIGlzIG9ubHkgb25lIGJyYWNrZXRlZAoJZXhwcmVzc2lvbiBsZWZ0LgoJKHBlcmNlbnRfb3ApOiBNYWtlIGNvbnN0YW50LiAgUmVjb3JkIHRoZSBCRkQgcmVsb2NhdGlvbiBjb2RlCglhc3NvY2lhdGVkIHdpdGggZWFjaCBvcGVyYXRvci4KCShteV9nZXRTbWFsbFBhcnNlciwgbXlfZ2V0UGVyY2VudE9wKTogUmVtb3ZlLgoJKHBhcnNlX3JlbG9jYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkobXlfZ2V0U2FtbGxFeHByZXNzaW9uKTogUmV3b3JrLiAgRmlsbCBpbiByZWxvY2F0aW9ucyBoZXJlCglyYXRoZXIgdGhhbiBpbiBtaXBzX2lwLgoKMjAwMy0wMS0yOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGxpbmVfY29tbWVudF9jaGFycyk6IEFkZCAnIycuICBUaGlzIG1ha2VzIHRoZQoJYXNzZW1ibGVyJ3MgaGFuZGxpbmcgb2YgIyA8bGluZW51bT4gIjxmaWxlbmFtZT4iIGRpcmVjdGl2ZXMgd29yay4KCjIwMDMtMDEtMjggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZHdhcmYyZGJnLmM6IEluY2x1ZGUgZmlsZW5hbWVzLmguCgkoc3RydWN0IGZpbGVfZW50cnkpOiBNYWtlIGZpbGVuYW1lIGNvbnN0IGNoYXIgKi4KCShkaXJzLCBkaXJzX2luX3VzZSwgZGlyc19hbGxvY2F0ZWQpOiBOZXcgdmFyaWFibGVzLgoJKGdldF9maWxlbnVtKTogQWRkIE5VTSBhcmd1bWVudC4gIEJ1aWxkIGRpcmVjdG9yeSB0YWJsZS4KCShkd2FyZjJfd2hlcmUpOiBBZGp1c3QgY2FsbGVyLgoJKGR3YXJmMl9kaXJlY3RpdmVfZmlsZSk6IFVzZSBnZXRfZmlsZW51bSB0byBhbGxvY2F0ZQoJc2xvdCBpbiBmaWxlIGFuZCBkaXJlY3RvcnkgdGFibGVzLgoJKGR3YXJmMl9kaXJlY3RpdmVfbG9jKTogUmVjcmVhdGUgZnVsbCBmaWxlbmFtZSBmcm9tCglkaXJlY3RvcnkgYW5kIGZpbGVuYW1lIHBhcnQgaWYgbmVlZGVkIGZvciBsaXN0aW5nLgoJKG91dF9maWxlX2xpc3QpOiBPdXRwdXQgZGlyZWN0b3J5IHRhYmxlLgoJT3V0cHV0IG1haW4gc291cmNlIGZpbGUgZGlybmFtZSBiZWZvcmUgaXRzIGZpbGVuYW1lLgoKMjAwMy0wMS0yOCAgICBEbWl0cnkgRGlreSA8ZGl3aWxAbWFpbC5ydT4KCgkqIGNvbmZpZy90Yy1tc3A0MzAuYzogUmVwbGFjZSBvY2N1cmVuY2VzIG9mICd0b2xvd2VyJyB3aXRoCgknVE9MT1dFUicuCgoyMDAzLTAxLTI3ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGRvdF92ZnJhbWVzcCk6IENvcnJlY3QgZXJyb3IgbWVzc2FnZS4KCShkb3RfdmZyYW1lcHNwKTogRGl0dG8uCgoyMDAzLTAxLTI3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoZW0pOiBTZXQgdG8gaXJpeCBvbiBhbGwgSXJpeCBzeXN0ZW1zLgoJKiBjb25maWd1cmU6IFJlYnVpbHQuCgkqIGNvbmZpZy90ZS1pcml4Lmg6IE5ldyBmaWxlLgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX2R3YXJmMl9mb3JtYXQpOiBVc2UgVEVfSVJJWCB0byBkZWNpZGUKCXdoZXRoZXIgdG8gdXNlIElyaXgtc3BlY2lmaWMgNjQtYml0IGZvcm1hdC4KCjIwMDMtMDEtMjcgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChzMzkwX2VsZl9jb25zKTogQXZvaWQgZGVzaWduYXRlZCBpbml0aWFsaXplcnMuCgoyMDAzLTAxLTI1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChzcGFyY19pcCk6IEhhbmRsZSBUTFMgJSBvcGVyYXRvcnMuCgkodGNfZ2VuX3JlbG9jKTogSGFuZGxlIFRMUyByZWxvY3MuCgkoc3BhcmNfY29ucywgY29uc19maXhfbmV3X3NwYXJjKTogSGFuZGxlICVyX3Rsc19kdHBvZmYuCgkqIGNvbmZpZy90Yy1zcGFyYy5oICh0Y19maXhfYWRqdXN0YWJsZSk6IERvbid0IGFkanVzdCBUTFMKCXJlbG9jcy4KCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9zZWN0aW9uX3dvcmQpOiBIYW5kbGUgdGxzLgoJKG9ial9lbGZfdHlwZSk6IEhhbmRsZSB0bHNfb2JqZWN0LgoKMjAwMy0wMS0yNCAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKHMzOTBfdGxzX3N1ZmZpeCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfc3VmZml4X3R5cGUpOiBBZGQgc3VmZml4IGVudW1zIGZvciBUTFMgcmVsb2NhdGlvbnMuCgkoczM5MF9lbGZfc3VmZml4KTogQWRkIHN1ZmZpeCBzdHJpbmdzIGZvciBUTFMgcmVsb2NhdGlvbnMuCgkoczM5MF9lbGZfY29ucyk6IE1hcCBuZXcgbGVuZ2h0L2VsZiBzdWZmaXggY29tYmluYXRpb25zIGZvciBUTFMgdG8KCWJmZCByZWxvY2F0aW9ucy4KCShtZF9nYXRoZXJfb3BlcmFuZHMpOiBNYXAgbmV3IGluc3RydWN0aW9uIG9wZXJhbmQvZWxmIHN1ZmZpeAoJY29tYmluYXRpb25zIGZvciBUTFMgdG8gYmZkIHJlbG9jYXRpb25zLgoJKHRjX3MzOTBfZml4X2FkanVzdGFibGUpOiBBZGQgbmV3IFRMUyByZWxvY2F0aW9ucy4KCSh0Y19zMzkwX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCShtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgoyMDAzLTAxLTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXMuaDogVXBkYXRlIGNvcHlyaWdodCBkYXRlLgoJKiBzeW1ib2xzLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZDEwdi5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWZyMzAuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pOTYwLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbWlwcy5oOiBMaWtld2lzZS4KCgkqIGNvbmZpZy90Yy1ocHBhLmggKERJRkZfRVhQUl9PSyk6IERlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBNb3ZlLgoKMjAwMy0wMS0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE5FV1M6IEFubm91bmNlIHNoMmUgc3VwcG9ydC4KCglBZGQgc2gyZSBzdXBwb3J0OgoJMjAwMi0wNC0wMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaC5jIChtZF9zaG93X3VzYWdlKTogQWRkZWQgc2gyZSBuZXh0IHRvIHNoM2UuCgkoc2hfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBIYW5kbGUgYXJjaF9zaDJlLgoKMjAwMy0wMS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHN5bWJvbHMuYyAoU19GT1JDRV9SRUxPQyk6IEFkZCAic3RyaWN0IiBwYXJhbS4KCSogc3ltYm9scy5oIChTX0ZPUkNFX1JFTE9DKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9vYmotYW91dC5oIChTX0ZPUkNFX1JFTE9DKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9vYmotYm91dC5oIChTX0ZPUkNFX1JFTE9DKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9vYmotY29mZi5oIChTX0ZPUkNFX1JFTE9DKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9vYmotaWVlZS5oIChTX0ZPUkNFX1JFTE9DKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9vYmotdm1zLmggKFNfRk9SQ0VfUkVMT0MpOiBMaWtld2lzZS4KCSogd3JpdGUuYyAoZ2VuZXJpY19mb3JjZV9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OKTogVXNlIGl0IGhlcmUgaW5zdGVhZCBvZiBTX0ZPUkNFX1JFTE9DLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBUZXN0IFRDX0ZPUkNFX1JFTE9DQVRJT04gdG9vLgoJKGFkanVzdF9yZWxvY19zeW1zKTogQWRqdXN0IFNfRk9SQ0VfUkVMT0MgY2FsbC4KCSogYXMuaCAoZ2VuZXJpY19mb3JjZV9yZWxvYyk6IERlY2xhcmUuCgkqIGRvYy9pbnRlcm5hbHMudGV4aSAoU19GT1JDRV9SRUxPQyk6IFVwZGF0ZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogVXBkYXRlLgoKCSogY29uZmlnL3RjLWFscGhhLmMgKGFscGhhX2ZvcmNlX3JlbG9jYXRpb24pOiBBZGp1c3QgdG8gdXNlCglnZW5lcmljX2ZvcmNlX3JlbG9jLgoJKGFscGhhX2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWNyaXMuYyAobWRfY3Jpc19mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1mcnYuYyAoZnJ2X2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWkzODYuYyAobWRfYXBwbHlfZml4Myk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaWE2NC5jIChpYTY0X2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWlwMmsuYyAoaXAya19mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tMzJyLmMgKG0zMnJfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTY4aGMxMS5jICh0Y19tNjhoYzExX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1jb3JlLmMgKG1jb3JlX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tbWl4LmMgKG1taXhfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zMzkwLmMgKHRjX3MzOTBfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2guYyAoc2hfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKG1kX3BjcmVsX2Zyb21fc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc3BhcmMuYyAodGNfZ2VuX3JlbG9jKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy12ODUwLmMgKHY4NTBfZm9yY2VfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9mb3JjZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pMzg2LmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1jb3JlLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNwYXJjLmggKHRjX2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgoJKiBjb25maWcvdGMtZDEwdi5jIChkMTB2X2ZvcmNlX3JlbG9jYXRpb24pOiBEZWxldGUuCgkqIGNvbmZpZy90Yy1kMTB2LmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZWZpbmUuCgkqIGNvbmZpZy90Yy1kbHguYyAobWRfZGx4X2ZvcmNlX3JlbG9jYXRpb24pOiBEZWxldGUuCgkqIGNvbmZpZy90Yy1kbHguaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IERvbid0IGRlZmluZS4KCSogY29uZmlnL3RjLWZyMzAuYyAoZnIzMF9mb3JjZV9yZWxvY2F0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvdGMtZnIzMC5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChtbjEwMzAwX2ZvcmNlX3JlbG9jYXRpb24pOiBEZWxldGUuCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IFRlc3QgVENfRk9SQ0VfUkVMT0NBVElPTiB0b28uCgkqIGNvbmZpZy90Yy1pOTYwLmggKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWhwcGEuYyAoaHBwYV9mb3JjZV9yZWxvY2F0aW9uKTogQWRqdXN0IFNfRk9SQ0VfUkVMT0MgY2FsbC4KCSogY29uZmlnL3RjLW1pcHMuYyAoUkVMQVhfQlJBTkNIX1RPT0ZBUik6IFdhcm5pbmcgZml4LgoJKiBjb25maWcvdGMtbWlwcy5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvdGMtb3BlbnJpc2MuYyAob3BlbnJpc2NfZm9yY2VfcmVsb2NhdGlvbik6IERlbGV0ZS4KCSogY29uZmlnL3RjLW9wZW5yaXNjLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZWZpbmUuCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChlbGYzMl9zcGFyY19mb3JjZV9yZWxvY2F0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvdGMtc3BhcmMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IERvbid0IGRlZmluZSBmb3IgRUxGLgoJKiBjb25maWcvdGMtaTM4Ni5jIChpMzg2X2ZvcmNlX3JlbG9jYXRpb24pOiBEZWxldGUuCgkqIGNvbmZpZy90Yy1pMzg2LmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZWZpbmUgZm9yCglCRkRfQVNTRU1CTEVSLgoJKEVYVEVSTl9GT1JDRV9SRUxPQyk6IEZpeCBURV9QRSBhbmQgU1RSSUNUX1BFX0ZPUk1BVCBuZXN0aW5nLgoJKiBjb25maWcvdGMtbTY4ay5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvdGMtcGouaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IERvbid0IGRlZmluZS4KCSogY29uZmlnL3RjLXNoLmggKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyk6IERvbid0IGNhbGwKCVNfRk9SQ0VfUkVMT0MuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IFRlc3QgVENfRk9SQ0VfUkVMT0NBVElPTiB0b28uCgkqIGNvbmZpZy90Yy1zaDY0LmggKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBMaWtld2lzZS4KCjIwMDMtMDEtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX2Zyb2Jfc2VjdGlvbl90eXBlKTogQWRqdXN0IGZvciBjaGFuZ2VkCglzaDY0X2VsZl9zZWN0aW9uX2RhdGEuCgkqIGNvbmZpZy90Yy1zaDY0Lmg6IEluY2x1ZGUgZWxmMzItc2g2NC5oLgoJKiBjb25maWcvdGMtbTY4aGMxMS5jOiBEb24ndCBpbmNsdWRlIHN0ZGlvLmguCgkobWRfc2hvd191c2FnZSk6IEZpeCBtaXNzaW5nIGNvbnRpbnVhdGlvbi4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDEtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcy5oOiBJbmNsdWRlIGZvcGVuLWJpbi5oIG5vdCBmb3Blbi1zYW1lLmggZm9yIG1pbmd3MzIgaG9zdHMuCgoyMDAzLTAxLTIxICBGYWJpbyBBbGVtYWduYSAgPGZhbGVtYWduQGFyb3Mub3JnPgoKCSogY29uZmlndXJlLmluOiBIYW5kbGUgKi0qLWFyb3MqLgoJKiBjb25maWd1cmU6CVJlZ2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmluLgoKMjAwMy0wMS0yMCAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKGVsZl9zdWZmaXhfdHlwZSk6IEFkZCBzdWZmaXggZW51bXMgZm9yIGdvdG9mZiwKCWdvdHBsdCBhbmQgcGx0b2ZmIHJlbG9jYXRpb25zLgoJKHMzOTBfZWxmX3N1ZmZpeCk6IEFkZCBzdWZmaXggc3RyaW5ncyBmb3IgZ290b2ZmLCBnb3RwbHQgYW5kIHBsdG9mZi4KCShzMzkwX2VsZl9jb25zKTogTWFwIG5ldyBsZW5naHQvZWxmIHN1ZmZpeCBjb21iaW5hdGlvbnMgZm9yIGdvdG9mZiwKCWdvdHBsdCBhbmQgcGx0b2ZmIHRvIGJmZCByZWxvY2F0aW9ucy4KCShtZF9nYXRoZXJfb3BlcmFuZHMpOiBNYXAgbmV3IGluc3RydWN0aW9uIG9wZXJhbmQvZWxmIHN1ZmZpeAoJY29tYmluYXRpb25zIHRvIGJmZCByZWxvY2F0aW9ucy4KCSh0Y19zMzkwX2ZpeF9hZGp1c3RhYmxlKTogQWRkIG5ldyBnb3RvZmYsIGdvdHBsdCBhbmQgcGx0b2ZmIHJlbG9jYXRpb25zCgl0byB0aGUgbGlzdCBvZiB1bmFkanVzdGFibGUgcmVsb2NhdGlvbnMuCgkodGNfczM5MF9mb3JjZV9yZWxvY2F0aW9uKTogQWx3YXlzIGVtaXQgcmVsb2NhdGlvbnMgZm9yIGdvdG9mZiwgZ290cGx0CglhbmQgcGx0b2ZmIHJlbG9jYXRpb25zLgoJKG1kX2FwcGx5X2ZpeDMpOiBBZGQgdGhlIG5ldyByZWxvY2F0aW9ucy4KCjIwMDMtMDEtMjAgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChtZF9hcHBseV9maXgzKTogRW1pdCBlcnJvciBtZXNzYWdlIGZvciByZWxvY2F0aW9ucwoJd2l0aCBhIHN1YnN5IHN5bWJvbC4KCjIwMDMtMDEtMTcgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAodGNfbTY4aGMxMV9maXhfYWRqdXN0YWJsZSk6IFByZXZlbnQgYWRqdXN0bWVudAoJb2YgcmVsb2NzIGZvciBtZW1vcnkgYmFuayBhZGRyZXNzaW5nLgoKMjAwMy0wMS0xNyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBjb25maWcvdGMtbTY4aGMxMS5jIChtZF9zaG93X3VzYWdlKTogVXBkYXRlIHVzYWdlLgoJKG1kX3BhcnNlX29wdGlvbik6IFJlY29nbml6ZSAtbTY4aGNzMTIuCgkobTY4aGMxMV9lbGZfZmluYWxfcHJvY2Vzc2luZyk6IFNldCBFRl9NNjhIQ1MxMl9NQUNIIGZsYWcgdG8gaWRlbnRpZnkKCUhDUzEyLgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpOiBEb2N1bWVudCBuZXcgb3B0aW9uIC1tNjhoY3MxMi4KCjIwMDMtMDEtMTYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWlhNjQuYyAoaWE2NF9jb25zX2ZpeF9uZXcpOiBIYW5kbGUgQGR0cHJlbCgpIGluIGRhdGEuCgoyMDAzLTAxLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTAxLTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZC5jIChnZXRfYWJzb2x1dGVfZXhwcik6IE5ldywgc3BsaXQgb3V0IGZyb20uLgoJKGdldF9hYnNvbHV0ZV9leHByZXNzaW9uKTogLi5oZXJlLgoJKiByZWFkLmggKGdldF9hYnNvbHV0ZV9leHByKTogRGVjbGFyZS4KCSogY29uZmlnL29iai1lbGYuYyAoZWxmX2NvbW1vbik6IFVzZSBvZmZzZXRUIGZvciAidGVtcCIgYW5kICJzaXplIi4KCVRyaW0gc2l6ZSB0byBhcmNoIGJpdHNfcGVyX2FkZHJlc3MsIGFuZCB0ZXN0IGZvciBuZWdhdGl2ZSBpbnB1dAoJdmlhIGdldF9hYnNvbHV0ZV9leHByLgoKMjAwMy0wMS0wNyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMteHN0b3JteTE2LmMgKG1kX2NnZW5fbG9va3VwX3JlbG9jKTogQWRqdXN0IHZhbHVlIGJhc2VkCglvbiBvcGVyYW5kIHR5cGUuCgkoeHN0b3JteTE2X21kX2FwcGx5X2ZpeDMpOiBVc2UgYWRqdXN0bWVudC4KCjIwMDMtMDEtMDIgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgaXEyMDAwLWVsZiB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnL3RjLWlxMjAwMC5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLWlxMjAwMC5oOiBMaWtld2lzZS4KCSogcG8vZ2FzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDMtMDEtMDIgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jOiBVcGRhdGUgY29weXJpZ2h0IHllYXJzIHRvIGluY2x1ZGUgMjAwMy4KCShtaXBzX2lwKTogRml4IGluZGVudGF0aW9uIG9mICIrQSIsICIrQiIsIGFuZCAiK0MiIGhhbmRsaW5nLgoJQWRkaXRpb25hbGx5LCBjbGVhbiB1cCB0aGVpciBjb2RlIHNsaWdodGx5IGFuZCBjbGVhbiB1cCB0aGVpcgoJY29tbWVudHMgc29tZSBtb3JlLgoKCSogZG9jL2MtbWlwcy50ZXhpOiBBZGQgTUlQUzMycjIgdG8gIi5zZXQgbWlwc04iIGRvY3VtZW50YXRpb24uCgoyMDAzLTAxLTAxICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGRvYy9NYWtlZmlsZS5hbSAoYXMuMSk6IERlcGVuZCBvbiAiYXNjb25maWcudGV4aSBnYXN2ZXIudGV4aQoJJChDUFVfRE9DUykiLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTAxLTAxICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy5jYT4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKHNwZWNpYWxfc2VjdGlvbnMpOiBXb3JrIGFyb3VuZCBIUCdzIGluY29ycmVjdCB1c2FnZQoJb2YgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25zIGZvciBhcnJheSBpbml0aWFsaXplcnMgYW5kIGZpbmFsaXplcnMuCgoyMDAyLTEyLTMxICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAodmFsaWRhdGVfbWlwc19pbnNuLCBtaXBzX2lwKTogUmVjb2duaXplCgl0aGUgIitEIiBvcGVyYW5kLCB3aGljaCB3aWxsIGJlIHVzZWQgb25seSBieSB0aGUgZGlzYXNzZW1ibGVyLgoKMjAwMi0xMi0zMCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogUmVjb2duaXplIG1pcHNpc2EzMnIyLCBtaXBzaXNhMzJyMmVsLCBhbmQKCUNQVSB2YXJpYW50cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtbWlwcy5jIChJU0FfSEFTX0RST1IsIElTQV9IQVNfUk9SKTogTmV3IGRlZmluZXMuCgkobWFjcm9fYnVpbGQpOiBIYW5kbGUgIksiIG9wZXJhbmQuCgkobWFjcm8yKTogVXNlIElTQV9IQVNfRFJPUiBhbmQgSVNBX0hBU19ST1IgaW4gdGhlIHBsYWNlcyB3aGVyZQoJQ1BVX0hBU19EUk9SIGFuZCBDUFVfSEFTX1JPUiBhcmUgY3VycmVudGx5IHVzZWQuCgkobWlwc19pcCk6IE5ldyB2YXJpYWJsZSAibGFzdHBvcyIsIGFuZCBpbXBsZW1lbnQgIitBIiwgIitCIiwKCWFuZCAiK0MiIG9wZXJhbmRzIGZvciBNSVBTMzIgUmVsZWFzZSAyIGlucy9leHQgaW5zdHJ1Y3Rpb25zLgoJSW1wbGVtZW50ICJLIiBvcGVyYW5kIGZvciBNSVBTMzIgUmVsZWFzZSAyIHJkaHdyIGluc3RydWN0aW9uLgoJKHZhbGlkYXRlX21pcHNfaW5zbik6IEltcGxlbWVudCAiKyIgYXMgYSB3YXkgdG8gZXh0ZW5kIHRoZQoJYWxsb3dlZCBvcGVyYW5kcywgYW5kIGltcGxlbWVudCAiSyIsICIrQSIsICIrQiIsIGFuZCAiK0MiCglvcGVyYW5kcy4KCShPUFRJT05fTUlQUzMyUjIpOiBOZXcgZGVmaW5lLgoJKG1kX2xvbmdvcHRzKTogQWRkIGVudHJ5IGZvciBPUFRJT05fTUlQUzMyUjIuCgkoT1BUSU9OX0VMRl9CQVNFKTogQWRqdXN0IHRvIGFjY29tbW9kYXRlIE9QVElPTlNfTUlQUzMyUjIuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIE9QVElPTl9NSVBTMzJSMi4KCShzX21pcHNzZXQpOiBSZWltcGxlbWVudCBoYW5kbGluZyBvZiAiLnNldCBtaXBzTiIgb3B0aW9ucwoJYW5kIGFkZCBzdXBwb3J0IGZvciAiLnNldCBtaXBzMzJyMiIuCgkobWlwc19jcHVfaW5mb190YWJsZSk6IEFkZCBlbnRyeSBmb3IgIm1pcHMzMnIyIiAoTUlQUzMyIFJlbGVhc2UgMikuCgkobWRfc2hvd191c2FnZSk6IERvY3VtZW50ICItbWlwczMycjIiIG9wdGlvbi4KCSogZG9jL2FzLnRleGluZm86IERvY3VtZW50ICItbWlwczMycjIiIG9wdGlvbi4KCSogZG9jL2MtbWlwcy50ZXhpOiBMaWtld2lzZS4KCjIwMDItMTItMzAgIERtaXRyeSBEaWt5ICA8ZGl3aWxAbWFpbC5ydT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIG1zcDQzMCB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuYW06IEFkZCBtc3A0MzAgdGFyZ2V0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnL3RjLW1zcDQzMC5jOiBOZXcgZmlsZTogbXNwNDMwIGFzc2VtYmxlci4KCSogY29uZmlnL3RjLW1zcDQzMC5oOiBOZXcgZmlsZTogdGFyZ2V0IG1hY3JvcyBmb3IgbXNwNDMwLgoJKiBkb2MvTWFrZWZpbGUuYW06IEFkZCBtc3A0MzAgdGFyZ2V0LgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9hcy50ZXhpbmZvOiBJbmNsdWRlIG1zcDQzMCBkb2N1bWVuYXRpb24uCgkqIGRvYy9hbGwudGV4aTogRW5hYmxlIG1zcDQzMCBkb2N1bWVudGF0aW9uLgoJKiBkb2MvYy1tc3A0MzAudGV4aTogTmV3IGZpbGU6IGRvY3VtZW50IG1zcDQzMCBzcGVjaWZpYyBmZWF0dXJlcwoJb2YgdGhlIGFzc2VtYmxlci4KCjIwMDItMTItMjUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZHdhcmYyZGJnLmMgKERXQVJGMl9BRERSX1NJWkUpOiBOZXcgbWFjcm8uCgkoZHdhcmYyX2ZpbmlzaCk6IFVzZSBpdC4KCSogZG9jL2ludGVybmFscy50ZXhpIChEV0FSRjJfQUREUl9TSVpFKTogRG9jdW1lbnQgaXQuCgkqIGNvbmZpZy90Yy1taXBzLmggKERXQVJGMl9BRERSX1NJWkUpOiBPdmVycmlkZS4KCjIwMDItMTItMjAgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jIChtZF9jZ2VuX2xvb2t1cF9yZWxvYyk6IFN1cHBvcnQKCUJGRF9SRUxPQ19YU1RPUk1ZMTZfMTIuCgoyMDAyLTEyLTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZG9jL2FzLnRleGluZm8gKEludm9raW5nKTogVHlwbyBmaXguCgkqIGNvbmZpZy90Yy10aWM1NHguYyAoZW5jb2RlX29wZXJhbmQpOiBDb21tZW50IHR5cG8gZml4LgoKMjAwMi0xMi0xOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy9jLWFscGhhLnRleGk6IEZpeCB0eXBvcy4KCSogZG9jL2MtYXJtLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1kMTB2LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1pMzcwLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1pOTYwLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1pYTY0LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1tbWl4LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1uczMyay50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtcGRwMTEudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9jLXBqLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1zaDY0LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy1zcGFyYy50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2MtdGljNTR4LnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy12ODUwLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvYy12YXgudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9pbnRlcm5hbHMudGV4aTogTGlrZXdpc2UuCgoyMDAyLTEyLTE4ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8pOiBJbiBNX0RST0wsIE1fRFJPUiwgTV9ST0wsIGFuZCBNX1JPUiwKCXVzZSBoYXJkd2FyZSByb3RhdGUgb3BzIGFzIGFwcHJvcHJpYXRlLiAgSW4gTV9EUk9MX0ksIE1fRFJPUl9JLAoJTV9ST0xfSSwgYW5kIE1fUk9SX0ksIHNpbXBsaWZ5IGNvZGUsIGNsZWFuIHVwIHdhcm5pbmdzLCBhbmQKCWFycmFuZ2Ugbm90IHRvIGlzc3VlIHdhcm5pbmdzIGFib3V0IHVzZSBvZiBBVCB3aGVuIEFUIGlzIG5vdAoJYWN0dWFsbHkgdXNlZC4KCjIwMDItMTItMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcy5jIChzdGRfbG9uZ29wdHMpOiBEdXBsaWNhdGUgLS1rZWVwLWxvY2FscyBlbnRyeSBpbiBvcmRlciB0bwoJcHJldmVudCBpdCBiZWluZyBjb25mdXNlZCB3aXRoIC1rLgoKMjAwMi0xMi0xNiAgQW5kcmV3IE1hY0xlb2QgIDxhbWFjbGVvZEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jIChtZF9jZ2VuX2xvb2t1cF9yZWxvYyk6IElmIGEgcmVsb2NhdGlvbgoJaGFzIGFscmVhZHkgYmVlbiBzZXQgdXAsIHVzZSBpdC4KCjIwMDItMTItMTYgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBDaGFuZ2VMb2ctOTI5NTogRml4IGEgdHlwby4KCSogUkVBRE1FOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWQxMHYuYzogRml4IGEgY29tbWVudCB0eXBvLgoJKiBjb25maWcvdGMtZGx4LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDgzMDAuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODUwMC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1pcHMuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zMzkwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2guaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWM4MC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXc2NS5oOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXo4ay5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXo4ay5oOiBMaWtld2lzZS4KCSogdGVzdHN1aXRlL2dhcy9oODMwMC9jbXBzaTIuczogTGlrZXdpc2UuCgoyMDAyLTEyLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWQzMHYuYyAoY2hlY2tfcmFuZ2UpOiBXYXJuaW5nIGZpeGVzLCBmb3JtYXR0aW5nLgoJU2ltcGxpZnkgc2lnbiBleHRlbnNpb24uICBSZW1vdmUgcmVkdW5kYW50IHVuc2lnbmVkIDwgMCB0ZXN0LgoJKiBjb25maWcvdGMtaTk2MC5jIChtZF9yaV90b19jaGFycyk6IFByb3RvdHlwZS4KCSogY29uZmlnL3RjLW1jb3JlLmMgKG1kX3BzZXVkb190YWJsZSk6IEZpeCB0eXBvLgoJKGR1bXBfbGl0ZXJhbHMpOiBJbml0IGJyYXJzeW0sIGFuZCB0ZXN0IGxhdGVyIGluc3RlYWQgb2YgaXNmb3JjZS4KCgkqIGNvbmZpZy90Yy1uczMyay5jIChlbmNvZGVfb3BlcmFuZCk6IENvbnN0aWZ5IG9wZXJhbmRzUCBhbmQgc3VmZml4UC4KCShwYXJzZSk6IENvbnN0aWZ5IGxpbmUgYW5kIGxpbmVwdHIuCgkobWRfYmVnaW4pOiBDYWxjdWxhdGUgZW5kb3AgaGVyZS4KCjIwMDItMTItMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvb2JqLXZtcy5jOiBGb3JtYXR0aW5nLiAgSW5jbHVkZSBmbmN0bC5oLgoJKENyZWF0ZV9WTVNfT2JqZWN0X0ZpbGUpOiBGaXggY3JlYXQgY2FsbCBmb3Igc2FuZSB1bml4IHN5c3RlbXMuCgkoT2JqZWN0X1JlY29yZF9PZmZzZXQpOiBNYWtlIGl0IGEgc2l6ZV90LgoJKEZsdXNoX1ZNU19PYmplY3RfUmVjb3JkX0J1ZmZlcik6IEZpeCBzaWduZWQvdW5zaWduZWQgd2FybmluZy4KCShWTVNfVEJUX1JvdXRpbmVfRW5kIDxTaXplPik6IE1ha2UgdmFyIHVuc2lnbmVkIGxvbmcuCgkoVk1TX0ZpeF9JbmRpcmVjdF9SZWZlcmVuY2UgPE9mZnNldD4pOiBNYWtlIGFyZyBhZGRyZXNzVC4KCShzeW50aGVzaXplX2RhdGFfc2VnbWVudCA8ZGF0YV9zaXplPik6IFJlbW92ZSBBVFRSSUJVVEVfVU5VU0VELgoJKHZtc19maXh1cF9kYXRhX3NlY3Rpb24gPGRhdGFfc2l6ZT4pOiBBZGQgaGVyZSBpbnN0ZWFkLgoJKiBjb25maWcvZS1jcmlzZWxmLmM6IEZpeCB0eXBvIGluIGxhc3QgY2hhbmdlLgoKMjAwMi0xMi0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKHdyaXRlX29iamVjdF9maWxlKTogRml4IHNpZ25lZC91bnNpZ25lZCB3YXJuaW5nLgoJKiBjb25maWcvZS1jcmlzYW91dC5jIChjcmlzYW91dF9iZmRfbmFtZSk6IFByb3RvdHlwZS4KCSogY29uZmlnL2UtY3Jpc2VsZi5jIChjcmlzZWxmX2JmZF9uYW1lKTogUHJvdG90eXBlLgoJKiBjb25maWcvb2JqLWFvdXQuYyAoc19zZWN0KTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCSogY29uZmlnL29iai1ib3V0LmMgKG9ial9ib3V0X2xpbmUgPGlnbm9yZT4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSogY29uZmlnL29iai1jb2ZmLmMgKGNvZmZfbGFzdF9iZik6IERvbid0IGRlY2xhcmUgZm9yIE9CSl9YQ09GRi4KCShmaXh1cF9tZGVwcyA8aD4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSogY29uZmlnL29iai1lY29mZi5jIChlY29mZl9mcm9iX2ZpbGUgPGFkZHI+KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9vYmotdm1zLmMgKHNldHVwX2Jhc2ljX3R5cGUgPHNwbnQ+KTogTGlrZXdpc2UuCgkoVk1TX1JTWU1fUGFyc2UgPEN1cnJlbnRfUm91dGluZT4pOiBMaWtld2lzZS4KCSh2bXNfZml4dXBfdGV4dF9zZWN0aW9uIDx0ZXh0X3Npej4pOiBMaWtld2lzZS4KCShzeW50aGVzaXplX2RhdGFfc2VnbWVudCA8ZGF0YV9zaXplPik6IExpa2V3aXNlLgoJKHZtc19maXh1cF94dG9yc19zZWN0aW9uIDxzZWN0X25vPik6IExpa2V3aXNlLgoJKHN0cnVjdHVyZV9jb3VudCk6IERvbid0IHVzZSBpbXBsaWNpdCBpbnQgdHlwZS4KCSogY29uZmlnL3RjLWEyOWsuYyAoaW5zZXJ0X3NyZWcpOiBQcm90b3R5cGUuCgkoZGVmaW5lX3NvbWVfcmVncyk6IFByb3RvdHlwZSwgbWFrZSBzdGF0aWMuCgkocGFyc2Vfb3BlcmFuZCk6IExpa2V3aXNlLgoJKG1kX3BhcnNlX29wdGlvbiA8Yyxhcmc+KTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgkobWRfc2hvd191c2FnZSA8c3RyZWFtPik6IExpa2V3aXNlLgoJKG1kX3NlY3Rpb25fYWxpZ24gPHNlZ21lbnQ+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhbGwgYXJncz4pOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4Myk6IERvbid0IGNhc3QgdmFsUCBwb2ludGVyIHR5cGUuICBGaXggYm9ndXMgPj49J3MuCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX3ZhbGlkYXRlX2ZpeCk6IE9ubHkgZm9yIE9CSl9DT0ZGIG9yIE9CSl9FTEYuCgkqIGNvbmZpZy90Yy1kMzB2LmMgKG1kX3BhcnNlX29wdGlvbiA8YXJnPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhbGwgYXJncz4pOiBMaWtld2lzZS4KCSh3cml0ZV9sb25nIDxvcGNvZGU+KTogTGlrZXdpc2UuCgkodGNfZ2VuX3JlbG9jIDxzZWc+KTogTGlrZXdpc2UuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXggPGFsbCBhcmdzPik6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeDMgPHNlZz4pOiBMaWtld2lzZS4KCShzX2QzMHZfYWxpZ24gPGlnbm9yZT4pOiBMaWtld2lzZS4KCShidWlsZF9pbnNuKTogQ29ycmVjdCBmb3JtYXQgc3RyaW5nLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWZyMzAuYyAobWRfcGFyc2Vfb3B0aW9uIDxjLGFyZz4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCShtZF91bmRlZmluZWRfc3ltYm9sIDxuYW1lPik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfY2dlbl9sb29rdXBfcmVsb2MgPGluc24+KTogTGlrZXdpc2UuCgkobWRfYmVnaW4pOiBEZWxldGUgdW51c2VkIHZhcnMuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoJKGZyMzBfcmVsYXhfZnJhZyk6ICNpZiAwIG91dCwgc2VlbXMgdW51c2VkLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKHJlc3RvcmVfY29sb24pOiBQcm90b3R5cGUuCgkqIGNvbmZpZy90Yy1mcnYuYyAoZnJ2X2luc2VydF92bGl3X2luc24pOiBQcm90b3R5cGUuCgkoZnJ2X2ZpbmRfaW5fdmxpdyk6IExpa2V3aXNlLgoJKGZydl9kZWJ1Z190b21jYXQpOiBMaWtld2lzZS4KCShmcnZfYWRqdXN0X3ZsaXdfY291bnQpOiBMaWtld2lzZS4KCShmcnZfdG9tY2F0X3NodWZmbGUpOiBMaWtld2lzZS4KCShmcnZfdG9tY2F0X2FuYWx5emVfdmxpd19jaGFpbnMpOiBMaWtld2lzZS4gIENvcnJlY3QgYXJncyB0bwoJZnJ2X2ZpbmRfaW5fdmxpdyBjYWxsLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKiBjb25maWcvdGMtaDg1MDAuYyAoY29ucyk6IERlbGV0ZSBkZWNsYXJhdGlvbi4KCShtZF9iZWdpbiA8b3Bjb2RlPik6IENvbnN0aWZ5LgoJKGRpc3BsYWNlbWVudF9zaXplLCBpbW1lZGlhdGVfc2l6ZSwgYWJzb2x1dGVfc2l6ZSk6IFJlbW92ZS4KCShidWlsZF9yZWxheGFibGVfaW5zdHJ1Y3Rpb24gPG9wZXJhbmQ+KTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgkodGNfY3Jhd2xfc3ltYm9sX2NoYWluIDxoZWFkZXJzPik6IExpa2V3aXNlLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkodGNfaGVhZGVyc19ob29rIDxoZWFkZXJzPik6IExpa2V3aXNlLgoJKG1kX3BhcnNlX29wdGlvbiA8Yyxhcmc+KTogTGlrZXdpc2UuCgkobWRfc2hvd191c2FnZSA8c3RyZWFtPik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyA8aGVhZGVycywgc2VnPik6IExpa2V3aXNlLgoJKHRjX2NvZmZfc3ltYm9sX2VtaXRfaG9vayA8aWdub3JlPik6IExpa2V3aXNlLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKHRjX2FvdXRfZml4X3RvX2NoYXJzKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShwYXJzZV9yZWcpOiBQcm90b3R5cGUuCgkocGFyc2VfZXhwKTogUHJvdG90eXBlLgoJKHNraXBfY29sb250aGluZyk6IFByb3RvdHlwZS4gIFVzZSAmJiwgbm90ICYgaW4gbG9naWNhbCBleHByZXNzaW9ucy4KCShwYXJzZV9yZWdsaXN0KTogUHJvdG90eXBlLgoJKGdldF9vcGVyYW5kKTogUHJvdG90eXBlLgoJKGdldF9vcGVyYW5kcyk6IFByb3RvdHlwZS4KCShnZXRfc3BlY2lmaWMpOiBQcm90b3R5cGUuICBNYWtlICJ0aGlzX2luZGV4IiBzaWduZWQuCgkoY2hlY2spOiBQcm90b3R5cGUsIG1ha2Ugc3RhdGljLgoJKGluc2VydCk6IFByb3RvdHlwZQoJKGJ1aWxkX3JlbGF4YWJsZV9pbnN0cnVjdGlvbik6IFByb3RvdHlwZSwgbWFrZSBzdGF0aWMuCgkoYnVpbGRfYnl0ZXMpOiBQcm90b3R5cGUuCgkod29yZGlmeV9zY2IpOiBQcm90b3R5cGUuCgkqIGNvbmZpZy90Yy1oODUwMC5oIChzdGFydF9sYWJlbCk6IERlY2xhcmUuCgkodGNfY29mZl9zaXplbWFjaGRlcCk6IERlY2xhcmUuCgkqIGNvbmZpZy90Yy1pMzcwLmMgKGkzNzBfZWJjZGljIDx1bnVzZWQ+KTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgkoaTM3MF9ybW9kZSA8dW51c2VkPik6IExpa2V3aXNlLgoJKGkzNzBfY3NlY3QgPHVudXNlZD4pOiBMaWtld2lzZS4KCShpMzcwX2RjIDx1bnVzZWQ+KTogTGlrZXdpc2UuCgkoaTM3MF9kcyA8dW51c2VkPik6IExpa2V3aXNlLgoJKGkzNzBfZWxmX2xjb21tIDx1bnVzZWQ+KTogTGlrZXdpc2UuCgkoaTM3MF9sdG9yZyA8aWdub3JlPik6IExpa2V3aXNlLgoJKGkzNzBfdXNpbmcgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShpMzcwX2Ryb3AgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShpMzcwX2J5dGUgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShpMzcwX3RjIDxpZ25vcmU+KTogTGlrZXdpc2UuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXggPGZyYWdwLCBzZWc+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhbGwgYXJncz4pOiBMaWtld2lzZS4KCShtZF91bmRlZmluZWRfc3ltYm9sIDxuYW1lPik6IExpa2V3aXNlLgoJKG1kX3BjcmVsX2Zyb21fc2VjdGlvbiA8c2VjPik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyA8c2VnPik6IExpa2V3aXNlLgoJKGkzNzBfc2VjdGlvbl9sZXR0ZXIpOiAjaWYgMCB1bnVzZWQgZnVuY3Rpb25zLgoJKGkzNzBfc2VjdGlvbl93b3JkLCBpMzcwX3NlY3Rpb25fdHlwZSwgaTM3MF9zZWN0aW9uX2ZsYWdzKTogTGlrZXdpc2UuCgkoc3ltYm9sX2xvY2F0ZSk6IFByb3RvdHlwZS4KCSogY29uZmlnL3RjLWk4NjAuYyAobWRfYXRvZik6IFJlbW92ZSBkZWNsYXJhdGlvbiBvZiBhdG9mX2llZWUuCgkobWRfbnVtYmVyX3RvX2Rpc3AsIG1kX251bWJlcl90b19maWVsZCk6IFJlbW92ZS4KCShtZF9hcHBseV9maXgzKTogQ29ycmVjdCBmb3JtYXQgc3RyaW5nIGFuZCBjYXN0ICJmdXAiLgoJKiBjb25maWcvdGMtaTk2MC5jIChtZF9jb252ZXJ0X2ZyYWcpOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byBhcmdzLgoJKHNfZW5kaWFuIDxpZ25vcmU+KTogTGlrZXdpc2UuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCA8bmFtZT4pOiBMaWtld2lzZS4KCSh0Y19jcmF3bF9zeW1ib2xfY2hhaW4gPGhlYWRlcnM+KTogTGlrZXdpc2UuCgkodGNfc2V0X2JhbF9vZl9jYWxsKTogTGlrZXdpc2UuCgkodGNfY29mZl9zeW1ib2xfZW1pdF9ob29rIDxzeW1ib2xQPik6IExpa2V3aXNlLgoJKGk5NjBfaGFuZGxlX2FsaWduIDxmcmFncD4pOiBMaWtld2lzZS4KCShpOTYwX3ZhbGlkYXRlX2ZpeCA8dGhpc19zZWdtZW50X3R5cGU+KTogTGlrZXdpc2UKCSh0Y19nZW5fcmVsb2MgPHNlY3Rpb24+KTogTGlrZXdpc2UuCgkodGNfY29mZl9zeW1ib2xfZW1pdF9ob29rKTogT25seSBkZWZpbmUgZm9yIE9CSl9DT0ZGLgoJKHN0cnVjdCBtZW1TLCBzdHJ1Y3QgcmVnb3ApOiBGb3J3YXJkIGRlY2xhcmUuCgkoYnJjbnRfZW1pdCwgYnJsYWJfbmV4dCwgY29icl9mbXQsIGN0cmxfZm10LCBlbWl0LCBnZXRfYXJncywKCWdldF9jZGlzcCwgZ2V0X2lzcGVjLCBnZXRfcmVnbnVtLCBpX3NjYW4sIG1lbV9mbXQsIG1lbWFfdG9fbWVtYiwKCXBhcnNlX2V4cHIsIHBhcnNlX2xkY29uc3QsIHBhcnNlX21lbW9wLCBwYXJzZV9wbywgcGFyc2VfcmVnb3AsCglyZWdfZm10LCByZWxheF9jb2JyLCBzX2xlYWZwcm9jLCBzX3N5c3Byb2MsIHNoaWZ0X29rLCBzeW50YXgsCgl0YXJnX2hhc19zZnIsIHRhcmdfaGFzX2ljbGFzcywgdGNfYmZkX2ZpeDJydHlwZSk6IFByb3RvdHlwZS4KCShtZF9jaGFyc190b19udW1iZXIsIG1kX251bWJlcl90b19pbW0pOiBNYWtlIHN0YXRpYywgcHJvdG90eXBlLgoJKG1kX251bWJlcl90b19maWVsZCk6IExpa2V3aXNlLgoJKG1kX251bWJlcl90b19kaXNwKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShtZF9hdG9mKTogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIGF0b2ZfaWVlZS4KCShtZF9hcHBseV9maXgzKTogQ29ycmVjdCBtZF9udW1iZXJfdG9faW1tIGNhbGwuCgkqIGNvbmZpZy90Yy1pcDJrLmMgKG1kX2Fzc2VtYmxlKTogV2FybmluZyBmaXguCgkqIGNvbmZpZy90Yy1tMzJyLmMgKG1kX3BhcnNlX29wdGlvbiA8YXJnPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKGZpbGxfaW5zbiA8aWdub3JlPik6IExpa2V3aXNlLgoJKGRlYnVnX3N5bSA8aWdub3JlPik6IExpa2V3aXNlLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkobTMycl9zY29tbSA8aWdub3JlPik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyA8YWJmZD4pOiBMaWtld2lzZS4KCShtZF9jZ2VuX2xvb2t1cF9yZWxvYyA8aW5zbj4pOiBMaWtld2lzZS4KCShtMzJyX3JlY29yZF9oaTE2IDxzZWc+KTogTGlrZXdpc2UuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiAjaWYgMCBvbGRfZnJfZml4LgoJKGFsbG93X20zMnJ4KTogUHJvdG90eXBlLgoJKGZpcnN0X3dyaXRlc190b19zZWNvbmRzX29wZXJhbmRzKTogUHJvdG90eXBlLgoJKHdyaXRlc190b19wYyk6IFByb3RvdHlwZS4KCShjYW5fbWFrZV9wYXJhbGxlbCk6IFByb3RvdHlwZS4KCShtYWtlX3BhcmFsbGVsKTogUHJvdG90eXBlLgoJKHRhcmdldF9tYWtlX3BhcmFsbGVsKTogUHJvdG90eXBlLgoJKGFzc2VtYmxlX3R3b19pbnNucyk6IFByb3RvdHlwZS4KCShtMzJyX3JlY29yZF9oaTE2KTogUHJvdG90eXBlLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKiBjb25maWcvdGMtbTMyci5oIChtMzJyX2ZpeF9hZGp1c3RhYmxlKTogRGVjbGFyZS4KCShtMzJyX2ZvcmNlX3JlbG9jYXRpb24pOiBQcm90b3R5cGUuCgkobTMycl9lbGZfc2VjdGlvbl9jaGFuZ2VfaG9vayk6IFByb3RvdHlwZS4KCSogY29uZmlnL3RjLW02OGsuYyAodGNfZ2VuX3JlbG9jIDxzZWN0aW9uPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3Nob3dfdXNhZ2UpOiBGaXggc2lnbmVkL3Vuc2lnbmVkIHdhcm5pbmcuCgkqIGNvbmZpZy90Yy1tODhrLmMgKGdldF9yZWcpOiBNYWtlIHJlZ19wcmVmaXggcGFyYW0gdW5zaWduZWQuCgkoY2FsY29wKTogRGl0dG8gZm9yIHJlZ19wcmVmaXggdmFyLgoJKGhleHZhbCk6IEFkZCBjYXN0IHRvIGZpeCBzaWduZWQvdW5zaWduZWQgd2FybmluZy4KCShtZF9udW1iZXJfdG9fZGlzcCk6IERlbGV0ZSB1bnVzZWQgZnVuY3Rpb24uCgkobWRfbnVtYmVyX3RvX2ZpZWxkKTogTGlrZXdpc2UuCgkoZmxvYXRfY29ucywgY29ucywgc19nbG9ibCwgc19zcGFjZSwgc19zZXQsIHNfbGNvbW0pOiBSZW1vdmUgZGVjbC4KCShtYXRjaF9uYW1lKTogUHJvdG90eXBlLgoJKGdldF9iZjIpOiBQcm90b3R5cGUuCgkoZ2V0X2JmX29mZnNldF9leHByZXNzaW9uKTogUHJvdG90eXBlLgoJKiBjb25maWcvdGMtbWNvcmUuYyAobWNvcmVfc19saXRlcmFscyA8aWdub3JlPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPGlnbm9yZT4pOiBMaWtld2lzZS4KCShtZF9jcmVhdGVfc2hvcnRfanVtcCA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfY3JlYXRlX2xvbmdfanVtcCA8YWxsIGFyZ3M+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhYmZkLCBzZWM+KTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4MyA8c2VnbWVudD4pOiBMaWtld2lzZS4KCShtZF9zZWN0aW9uX2FsaWduIDxzZWdtZW50Pik6IExpa2V3aXNlLgoJKG1kX3BjcmVsX2Zyb21fc2VjdGlvbiA8c2VjPik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyA8c2VjdGlvbj4pOiBMaWtld2lzZS4KCShyZWdfbSwgcmVnX24sIGltbWVkaWF0ZSk6IERlbGV0ZSB1bnVzZWQgdmFycy4KCShkdW1wX2xpdGVyYWxzKTogRml4IHNpZ25lZC91bnNpZ25lZCB3YXJuaW5nLgoJKGVudGVyX2xpdGVyYWwpOiBMaWtld2lzZS4KCShwYXJzZV9pbW0pOiBMaWtld2lzZS4gIEFsc28gZml4IGZvcm1hdCBzdHJpbmcuCgkocGFyc2VfbWVtKTogUmVtb3ZlIHVudXNlZCB2YXIuCgkobWRfYXNzZW1ibGUgPExTPik6IEFib3J0IG9uIHVuZXhwZWN0ZWQgaW5zdC4KCShtZF9hdG9mKTogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIGF0b2ZfaWVlZS4KCShtZF9wYXJzZV9vcHRpb24pOiBSZW1vdmUgdW51c2VkIHZhcnMuCgkobWRfYXBwbHlfZml4Myk6IEZpeCBmb3JtYXQgc3RyaW5ncywgY2FzdCBhcmdzLgoJKHRjX2dlbl9yZWxvYyk6IERlbGV0ZSB1bnVzZWQgdmFyLgoJKiBjb25maWcvdGMtbWNvcmUuaCAodGNfY29mZl9zaXplbWFjaGRlcCk6IERlY2xhcmUuCgkqIGNvbmZpZy90Yy1tbjEwMjAwLmMgKG1kX3BhcnNlX29wdGlvbiA8YywgYXJnPik6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wgPG5hbWU+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnIDxhYmZkPik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyA8c2VnPik6IExpa2V3aXNlLgoJKGNoZWNrX29wZXJhbmQgPGluc24+KTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnKTogRml4IGZvcm1hdCBzdHJpbmdzLgoJKHRjX2dlbl9yZWxvYyk6IERlbGV0ZSBmeF9hZGRzeSAtIGZ4X3N1YnN5IGNvZGUuCgkqIGNvbmZpZy90Yy1vcGVucmlzYy5jIChpZ25vcmVfcHNldWRvKTogUHJvdG90eXBlLgoJKG1kX2F0b2YpOiBSZW1vdmUgZGVjbGFyYXRpb24gb2YgYXRvZl9pZWVlLgoJKiBjb25maWcvdGMtb3IzMi5jIChwYXJzZV9vcGVyYW5kKTogUHJvdG90eXBlIG5vbi1CRkQgdG9vLgoJKG1kX2FwcGx5X2ZpeDMpOiBGaXggYm9ndXMgPj49J3MuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCk6IERlbGV0ZSB1bnVzZWQgdmFyLgoJKiBjb25maWcvdGMtcGouYyAobGl0dGxlLCBiaWcsIHBhcnNlX2V4cF9zYXZlX2lscCk6IFByb3RvdHlwZS4KCShjX3RvX3IsIGlwdXNoX2NvZGUsIGZha2Vfb3Bjb2RlLCBhbGlhcyk6IExpa2V3aXNlLgoJKGZha2Vfb3Bjb2RlKTogQWRqdXN0IGZvciBwal9vcGNfaW50X3QgY2hhbmdlLgoJKG1kX2JlZ2luKTogTGlrZXdpc2UuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4KCShpcHVzaF9jb2RlKTogQ29ycmVjdCBwYXJzZV9leHBfc2F2ZV9pbHAgY2FsbC4gIFRlc3QgcGVuZGluZ19yZWxvYwoJaW5zdGVhZCBvZiBub24tZXhpc3RlbnQgdGhpcmQgYXJnIG9mIHBhcnNlX2V4cF9zYXZlX2lscC4KCShtZF9wYXJzZV9vcHRpb24pOiBDb3JyZWN0ICJsaXR0bGUiIGFuZCAiYmlnIiBjYWxscy4KCSogY29uZmlnL3RjLXNwYXJjLmMgKHNfcmVnaXN0ZXIpOiBPbmx5IGRlY2xhcmUgI2lmZGVmIE9CSl9FTEYuCgkobWRfYXBwbHlfZml4MyA8c2VnbWVudD4pOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSh0Y19nZW5fcmVsb2MgPHNlY3Rpb24+KTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWMzMC5jOiAjaW5jbHVkZSBzdGRhcmcuaCBvciB2YXJhcmdzLmguCgkoZGVidWcpOiBSZXdyaXRlIHVzaW5nIFZBXyogbWFjcm9zLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gYXJncy4KCShtZF9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCShtZF9wYXJzZV9vcHRpb24pOiBMaWtld2lzZS4KCShtZF9zaG93X3VzYWdlKTogTGlrZXdpc2UuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCk6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyk6IExpa2V3aXNlLgoJKG1kX29wZXJhbmQpOiBMaWtld2lzZS4KCSh0Y19hb3V0X3ByZV93cml0ZV9ob29rKTogRGVsZXRlLgoJKHN0cnVjdCB0aWMzMF9pbnNuKTogTWFrZSAib3BlcmFuZHMiIHVuc2lnbmVkLgoJKHN0cnVjdCB0aWMzMF9wYXJfaW5zbik6IExpa2V3aXNlLgoJKG1kX2Fzc2VtYmxlKTogTGlrZXdpc2UgZm9yICJjb3VudCIsICJpIiBhbmQgIm51bW9wcyIuCgkodGljMzBfcGFyYWxsZWxfaW5zbik6IExpa2V3aXNlIGZvciB2YXJzIGhlcmUuCgkodGljMzBfb3BlcmFuZCk6IExpa2V3aXNlLiAgUmVtb3ZlIHVzZWxlc3MgdW5zaWduZWQgPj0gMCBjb21wYXJpc29uLgoJKiBjb25maWcvdGMtdGljMzAuaCAodGNfYW91dF9wcmVfd3JpdGVfaG9vayk6IERlZmluZSBhcyBlbXB0eS4KCSogY29uZmlnL3RjLXRpYzgwLmMgKG9ial9jb2ZmX3NlY3Rpb24pOiBEZWxldGUgZGVjbGFyYXRpb24uCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBBZGQgQVRUUklCVVRFX1VOVVNFRCBvbiBhcmdzLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wpOiBMaWtld2lzZS4KCShtZF9wYXJzZV9vcHRpb24pOiBMaWtld2lzZS4KCShtZF9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCSh0Y19jb2ZmX3N5bWJvbF9lbWl0X2hvb2spOiBMaWtld2lzZS4KCShtZF9hdG9mKTogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIGF0b2ZfaWVlZS4KCShjb25zdF9vdmVyZmxvdyk6IFdhcm5pbmcgZml4ZXMsIHRpZHkuCgkoZ2V0X29wZXJhbmRzKTogRGVsZXRlIHVudXNlZCB2YXJzLgoJKGludGVybmFsX2Vycm9yX2EpOiBBZGp1c3QgZm9ybWF0IHN0cmluZyB0byBleHBlY3QgYSBsb25nIGZvciBhcmcuCgkoZmluZF9vcGNvZGUpOiBXYXJuaW5nIGZpeGVzLCBzaW1wbGlmeS4KCShidWlsZF9pbnNuKTogQ2FzdCBpbnRlcm5hbF9lcnJvcl9hIGFyZy4KCShtZF9iZWdpbik6IExpa2V3aXNlLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCShtZF9hc3NlbWJsZSk6IERlbGV0ZSB1bnVzZWQgdmFyLgoJKiBjb25maWcvdGMtdGljODAuaCAodGNfY29mZl9maXgycnR5cGUpOiBQcm90b3R5cGUuCgkqIGNvbmZpZy90Yy16OGsuYyAoY29ucywgb2JqX2NvZmZfc2VjdGlvbik6IERlbGV0ZSBkZWNsYXJhdGlvbnMuCgkod2hhdHJlZywgcGFyc2VfcmVnLCBwYXJzZV9leHApOiBNYWtlIHN0YXRpYywgcHJvdG90eXBlLgoJKGNoZWNrZm9yLCByZWd3b3JkLCByZWdhZGRyLCBnZXRfY3RybF9vcGVyYW5kKTogUHJvdG90eXBlLgoJKGdldF9mbGFnc19vcGVyYW5kLCBnZXRfaW50ZXJydXB0X29wZXJhbmQsIGdldF9jY19vcGVyYW5kKTogTGlrZXdpc2UuCgkoZ2V0X29wZXJhbmQsIGdldF9vcGVyYW5kcywgZ2V0X3NwZWNpZmljLCBuZXdmaXgpOiBMaWtld2lzZS4KCShhcHBseV9maXgsIGJ1aWxkX2J5dGVzKTogTGlrZXdpc2UuCgkobWRfYXRvZik6IFJlbW92ZSBkZWNsYXJhdGlvbiBvZiBhdG9mX2llZWUuCgkodGNfYW91dF9maXhfdG9fY2hhcnMpOiBEZWxldGUuCgkobWRfYmVnaW4pOiBDb25zdGlmeSAib3Bjb2RlIi4gIERvbid0IHRyeSB0byBpbml0IG9wY29kZS0+aWR4LgoJRml4IHNfdW5zZWcgY2FsbC4KCShtZF9wYXJzZV9vcHRpb24pOiBGaXggc19zZWdtIGFuZCBzX3Vuc2VnIGNhbGxzLgoKMjAwMi0xMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiB0Yy1taXBzLmMgKFJFTEFYX0JSQU5DSF9FTkNPREUpOiBSZW1vdmUgcmVsb2NfczIgYXJndW1lbnQuCglBZGp1c3QgY2FsbGVycy4KCShSRUxBWF9CUkFOQ0hfUkVMT0NfUzIpOiBEZWxldGUuCgkoYXBwZW5kX2luc24pOiBVc2Ugb25seSBCRkRfUkVMT0NfMTZfUENSRUxfUzIgZm9yIGJyYW5jaGVzLgoJRG8gbm90IGhhbmRsZSBCRkRfUkVMT0NfMTZfUENSRUwuCgkobWFjcm9fYnVpbGQsIG1pcHNfaXApOiBMaWtld2lzZS4KCShtZF9wY3JlbF9mcm9tKTogUmV0dXJuIDQgZm9yIHVuZGVmaW5lZCBzeW1ib2xzIHJlZ2FyZGxlc3Mgb2YKCW1pcHNfcGljLgoJKG1kX2FwcGx5X2ZpeDMpOiBVc2Ugb25seSBCRkRfUkVMT0NfMTZfUENSRUxfUzIgZm9yIGJyYW5jaGVzLgoJRG9uJ3QgZGVyZWZlcmVuY2UgaG93dG8gaWYgbm8gc3VjaCByZWxvY2F0aW9uIGlzIGF2YWlsYWJsZS4KCURvIG5vdCBhcHBseSBoYWNrIGZvciBpbi1wbGFjZSB6ZXJvIGFkZGVuZCBpbiBORVdBQkkuCgkobWRfY29udmVydF9mcmFnKTogVXNlIG9ubHkgQkZEX1JFTE9DXzE2X1BDUkVMX1MyIGZvciBicmFuY2hlcy4KCjIwMDItMTItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPiwKCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLW1uMTAzMDAuaCAoVENfVkFMSURBVEVfRklYX1NVQik6IERlZmluZS4KCShUQ19MSU5LUkVMQVhfRklYVVApOiBBZGQgY29tbWVudHMuCgoyMDAyLTEyLTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmMgKHNldF9hcmNoX21hY2gpOiBDaGFuZ2UgYXJndW1lbnQgdHlwZSB0bwoJYXZvaWQgd2FybmluZ3MuCgkocl9yZWdpc3Rlcl9uYW1lLCB4cl9yZWdpc3Rlcl9uYW1lKTogQWRkIHByb3RvdHlwZSBkZWNsYXJhdGlvbnMuCgoyMDAyLTEyLTA4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgdGhlIFBDUkVMIGhhY2sKCWNvcGllZCBmcm9tIHRjLWkzODYuYy4KCjIwMDItMTItMDggIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCUZpeCBCdWcgc2F2YW5uYWgvMTgyNToKCSogY29uZmlnL3RjLW02OGhjMTEuYyAoU1RBVEVfSU5ERVhFRF9QQ1JFTCk6IE5ldyByZWxheCBjb2RlLgoJKG1kX3JlbGF4X3RhYmxlKTogRGVmaW5lIHNwZWNpZmljIHJlbGF4IGZvciBQQy1yZWwgb2Zmc2V0cy4KCShidWlsZF9pbmRleGVkX2J5dGUpOiBVc2UgYSBTVEFURV9JTkRFWEVEX1BDUkVMIHJlbGF4IGNvZGUuCgkobTY4aGMxMV9yZWxheF9mcmFnKTogSGFuZGxlIHRoZSBuZXcgcmVsYXggY29kZS4KCShtZF9jb252ZXJ0X2ZyYWcpOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoKMjAwMi0xMi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHN1YnNlZ3MuYyAoc2VjdGlvbl9zeW1ib2wpOiBVc2UgdGhlIHN5bWJvbCwgbm90IHRoZSBzZWN0aW9uLCBuYW1lLgoKMjAwMi0xMi0wNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pYTY0LmMgKGVudW0gcmVsb2NfZnVuYyk6IEFkZCBGVU5DX0xUX1JFTEFUSVZFX1guCgkoaWE2NF9nZW5fcmVhbF9yZWxvY190eXBlKTogSGFuZGxlIGl0LgoJKHBzZXVkb19mdW5jKTogQWRkIEBsdG9mZnguCgkobWRfYmVnaW4pOiBCdWlsZCAuPGx0b2ZmeD4uCgkoaWE2NF9mb3JjZV9yZWxvY2F0aW9uKTogVHJ1ZSBmb3IgTFRPRkYyMlggYW5kIExEWE1PVi4KCjIwMDItMTItMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9mb3JjZV9yZWxvY2F0aW9uKTogTW92ZSBvdXQgb2YgI2lmIE9CSl9FTEYuCglNb3ZlIE9CSl9DT0ZGIFRDX0ZPUkNFX1JFTE9DQVRJT04gY29kZSBoZXJlIHNvIHRoYXQgQ09GRiBoYW5kbGVzCglBUk1fSU1NRURJQVRFIGFuZCBBUk1fQURSTF9JTU1FRElBVEUgcmVsb2NzIGFzIGZvciBFTEYuCgkqIGNvbmZpZy90Yy1hcm0uaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IERlZmluZSBmb3IgYm90aCBFTEYgYW5kCglDT0ZGIHRvIGNhbGwgYXJtX2ZvcmNlX3JlbG9jYXRpb24uCgoyMDAyLTEyLTA0ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKHBzZXVkb19mdW5jKTogQWRkICJAcGF1c2UiIGNvbnN0YW50IGZvciAiaGludCIKCWluc3RydWN0aW9uLgoJKGVtaXRfb25lX2J1bmRsZSk6IEhhbmRsZSAiaGludCIgaW5zdHJ1Y3Rpb24uCgkob3BlcmFuZF9tYXRjaCk6IE1hdGNoIElBNjRfT1BORF9BUl9DU0QuCgoyMDAyLTEyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZHdhcmYyZGJnLmMgKHNjYWxlX2FkZHJfZGVsdGEpOiBDb3JyZWN0IHBhcmFtZXRlci4gIE1vdmUgcHJvdG90eXBlCglpbnNpZGUgI2lmLgoKMjAwMi0xMi0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX2NsZWFudXApOiBEbyBub3Qgc2V0IFNFQ19NRVJHRSBmbGFnIG9uCgkuUFBDLkVNQi5hcHVpbmZvIHNlY3Rpb25zLgoKMjAwMi0xMi0wMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKG9wZXJhbmRfbWF0Y2gpOiBBZGQgSUE2NF9PUE5EX0xEWE1PViBjYXNlLgoKMjAwMi0xMi0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy13NjUuYyAoc19sb25nYSk6IFByb3RvdHlwZS4gIE1ha2Ugc3RhdGljLCBzcGVjaWZ5IGludCBhcmcuCgkoY29ucywgc19hbGlnbl9ieXRlcyk6IERlbGV0ZSBkZWNsYXJhdGlvbi4KCShyZWxheCk6IERlbGV0ZS4KCShtZF9iZWdpbik6IENvbnN0aWZ5ICJzdHJ1Y3Qgb3BpbmZvICoiIHZhci4gIERvbid0IHRyeSB0byBtYWtlICJuYW1lIgoJc3RyaW5ncyBjb21tb24uCgkoZG90KTogRGVsZXRlIHVudXNlZCBmdW5jdGlvbi4KCSh3NjVfZXhwcmVzc2lvbik6IFJlbW92ZSB1bnVzZWQgYXJnLgoJKHBhcnNlX2V4cCk6IFByb3RvdHlwZS4gIFJlbW92ZSB1bnVzZWQgYXJnLiAgQWRqdXN0IHc2NV9leHByZXNzaW9uCgljYWxsLgoJKGdldF9vcGVyYW5kcyk6IFByb3RvdHlwZS4gIENvbnN0aWZ5ICJzdHJ1Y3Qgb3BpbmZvICoiIGFyZy4gIEZpeAoJcGFyc2VfZXhwIGNhbGwuCgkoZ2V0X3NwZWNpZmljKTogUHJvdG90eXBlLiAgQ29uc3RpZnkgInN0cnVjdCBvcGluZm8gKiIgYXJnIGFuZCByZXR1cm4KCXZhbHVlLgoJKGNoZWNrKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShidWlsZF9NeXRlcyk6IFByb3RvdHlwZS4gIENvbnN0aWZ5ICJzdHJ1Y3Qgb3BpbmZvICoiIGFyZy4gIEFib3J0CglvbiB1bmhhbmRsZWQgc3dpdGNoIGNhc2UuCgkobWRfYXNzZW1ibGUpOiBSZW1vdmUgdW51c2VkIG9wX3N0YXJ0LCBvcF9lbmQsIG5sZW4sIHAgdmFycy4gIENvbnN0aWZ5Cgkib3Bjb2RlIi4KCSh0Y19jcmF3bF9zeW1ib2xfY2hhaW4pOiBEZWxldGUgdW51c2VkIGZ1bmN0aW9uLgoJKHRjX2hlYWRlcnNfaG9vayk6IExpa2V3aXNlLgoJKHRjX05vdXRfZml4X3RvX2NoYXJzKTogTGlrZXdpc2UuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCk6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKG1kX3BhcnNlX29wdGlvbik6IExpa2V3aXNlLgoJKG1kX2NvbnZlcnRfZnJhZyk6IExpa2V3aXNlLgoJKHRjX2NvZmZfc3ltYm9sX2VtaXRfaG9vayk6IExpa2V3aXNlLgoJKG1kX3Nob3dfdXNhZ2UpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXc2NS5oICh0Y19jb2ZmX3NpemVtYWNoZGVwKTogRGVjbGFyZS4KCShUQ19QQVJTRV9DT05TX0VYUFJFU1NJT04pOiB3NjVfZXhwcmVzc2lvbiB0YWtlcyBvbmUgYXJnLgoJKHc2NV9leHByZXNzaW9uKTogRGVjbGFyZS4KCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKCSogY29uZmlnL3RjLWFybS5jIChhcm1fZm9yY2VfcmVsb2NhdGlvbik6IFJldHVybiAwIGZvciBBUk1fSU1NRURJQVRFCglhbmQgQVJNX0FEUkxfSU1NRURJQVRFLgoKMjAwMi0xMi0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGdhc3AuYzogRGVsZXRlLiAgSXQgaGFzIGJlZW4gZGVwcmVjYXRlZC4KCSogTkVXUzogTWVudGlvbiB0aGF0IGdhc3AgaGFzIGJlZW4gcmVtb3ZlZC4KCSogTWFrZWZpbGUuYW06IFJlbW92ZSByZWZlcmVuY2VzIHRvIGdhc3AuCgkqIG1ha2VmaWxlLnZtczogTGlrZXdpc2UuCgkqIG1wdy1tYWtlLnNlZDogTGlrZXdpc2UuCgkqIE1ha2VpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9nYXNwLnRleGk6IERlbGV0ZS4KCSogZG9jL01ha2VmaWxlLmFtOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBnYXNwLnRleGkuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogbWFjcm8uYzogRGVsZXRlIHJlZmVyZW5jZXMgdG8gZ2FzcC4KCVJlbW92ZSB1c2Ugb2YgY29tbWVudF9jaGFyIGZ1bmN0aW9uIHBhcmFtZXRlciBhcyBpdCBpcyBubyBsb25nZXIKCW5lZWRlZC4KCSogbWFjcm8uaDogVXBkYXRlIHByb3RvdHlwZXMgdG8gcmVtb3ZlIGNvbW1lbnRfY2hhciBwYXJhbWV0ZXIuCglGaXggZm9ybWF0dGluZy4KCSogcmVhZC5jIChyZWFkX2Ffc291cmNlX2ZpbGUsIHNfaXJwKTogUmVtb3ZlIGNvbW1lbnRfY2hhcgoJcGFyYW1ldGVyIGZyb20gaW52b2NhdGlvbiBvZiBmdW5jdGlvbnMgaW4gbWFjcm8uYwoKMjAwMi0xMi0wMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiByZWFkLmMgKGVtaXRfZXhwcikgWyFXT1JLSU5HX0RPVF9XT1JEXTogSW5pdGlhbGl6ZSB4LT51c2VfanVtcC4KCjIwMDItMTItMDEgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfYmVnaW4pOiBGaXggcXNvcnQgd2FybmluZy4KCSh0Y19nZW5fcmVsb2MpOiBNYXJrIHNlY3Rpb24gcGFyYW0gYXMgbm90IHVzZWQuCgoyMDAyLTEyLTAxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCglGaXggQnVnIHNhdmFubmFoLzE4MjU6CgkqIGNvbmZpZy90Yy1tNjhoYzExLmggKG1kX3JlbGF4X2ZyYWcpOiBEZWZpbmUgdG8gc3VwcG9ydCByZWxheGF0aW9ucwoJdGhhdCBhcmUgbm90IHBjLXJlbGF0aXZlLgoJKG02OGhjMTFfcmVsYXhfZnJhZyk6IERlY2xhcmUuCgoJKiBjb25maWcvdGMtbTY4aGMxMS5jIChidWlsZF9pbmRleGVkX2J5dGUpOiBVc2UgYSBmcmFnX3ZhciB0byBoYW5kbGUKCXRoZSBvZmZzZXRhYmxlIGluZGV4ZWQgYWRkcmVzc2luZyBtb2RlcyAobixyKS4KCShidWlsZF9pbnNuKTogQ2xlYW51cCBzb21lIGxvY2Fscy4KCShtNjhoYzExX3JlbGF4X2ZyYWcpOiBOZXcgZnVuY3Rpb24gaW1wb3J0ZWQgZnJvbSB0Yy1jcmlzLmMgdG8gaGFuZGxlCglyZWxheGF0aW9uIG9mIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gc3ltYm9scyBvZiBzYW1lIHNlY3Rpb24uCgkobWRfY29udmVydF9mcmFnKTogRm9yIElOREVYRURfT0ZGU0VUIHJlbGF4cywgdXNlIHRoZSBkaXNwbGFjZW1lbnQKCW9ubHkgd2hlbiB0aGlzIGlzIGEgUEMtcmVsYXRpdmUgb3BlcmFuZCBhbmQgdGhlIG9mZnNldCBpcyBub3QgYWJzb2x1dGUuCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBDb252ZXJ0IHRoZSBJTkRFWEVEX09GRlNFVCxVTkRFRiBmcmFnCgl0byBJTkRFWEVEX09GRlNFVCxTVEFURV9CSVRTNSB3aGVuIHRoZSBzeW1ib2wgaXMgYWJzb2x1dGU7IHRoaXMgd2lsbAoJYmUgaGFuZGxlZCBieSBtNjhoYzExX3JlbGF4X2ZyYWcuCgoyMDAyLTEyLTAxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmMgKGVsZl9mbGFncyk6IFNldCBkZWZhdWx0IEFCSSB0byBnY2MgZGVmYXVsdAoJKDMyLWJpdCBpbnQsIDY0LWJpdCBkb3VibGUpLgoJKG1kX2xvbmdvcHRzKTogTmV3IG9wdGlvbnMgLW1zaG9ydCwgLW1sb25nLCAtbXNob3J0LWRvdWJsZSBhbmQKCS1tbG9uZy1kb3VibGUgdG8gY29udHJvbCB0aGUgQUJJLgoJKG1kX3Nob3dfdXNhZ2UpOiBVcGRhdGUuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIG5ldyBvcHRpb25zLgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpOiBEb2N1bWVudCBuZXcgb3B0aW9ucyBmb3IgSEMxMS9IQzEyLgoKMjAwMi0xMi0wMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHN5bWJvbHMuYyAocmVwb3J0X29wX2Vycm9yKTogTmV3IGZ1bmN0aW9uLCBicm9rZW4gb3V0IG9mIC4uLgoJKHJlc29sdmVfc3ltYm9sX3ZhbHVlKTogLi4uIGhlcmUuIFVzZSBmb3IgYm90aCBtb25hZGljIGFuZCBkeWFkaWMKCW9wZXJhdG9ycy4KCjIwMDItMTEtMzAgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogY29uZmlnL3RjLXNoLmMgKG1kX2FwcGx5X2ZpeDMpOiBUYWtlIGFjY291bnQgb2YgZnhfb2Zmc2V0Cglmb3IgQkZEX1JFTE9DXzMyX1BMVF9QQ1JFTC4KCjIwMDItMTEtMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkd2FyZjJkYmcuYywgd3JpdGUuYywgY29uZmlnL29iai1hb3V0LmMsIGNvbmZpZy9vYmotY29mZi5jLAoJY29uZmlnL29iai1lY29mZi5jLCBjb25maWcvb2JqLWVsZi5jLCBjb25maWcvb2JqLXNvbS5jLAoJY29uZmlnL3RjLWFybS5jLCBjb25maWcvdGMtYXJtLmgsIGNvbmZpZy90Yy1hdnIuYywgY29uZmlnL3RjLWNyaXMuYywKCWNvbmZpZy90Yy1kMTB2LmMsIGNvbmZpZy90Yy1kMTB2LmgsIGNvbmZpZy90Yy1kMzB2LmMsIGNvbmZpZy90Yy1kMzB2LmgsCgljb25maWcvdGMtZGx4LmMsIGNvbmZpZy90Yy1kbHguaCwgY29uZmlnL3RjLWZyMzAuYywgY29uZmlnL3RjLWZyMzAuaCwKCWNvbmZpZy90Yy1mcnYuYywgY29uZmlnL3RjLWZydi5oLCBjb25maWcvdGMtaHBwYS5jLCBjb25maWcvdGMtaTM3MC5jLAoJY29uZmlnL3RjLWkzODYuYywgY29uZmlnL3RjLWkzODYuaCwgY29uZmlnL3RjLW0zMnIuYywKCWNvbmZpZy90Yy1tNjhoYzExLmMsIGNvbmZpZy90Yy1tY29yZS5jLCBjb25maWcvdGMtbWNvcmUuaCwKCWNvbmZpZy90Yy1taXBzLmMsIGNvbmZpZy90Yy1taXBzLmgsIGNvbmZpZy90Yy1tbjEwMjAwLmMsCgljb25maWcvdGMtbW4xMDMwMC5jLCBjb25maWcvdGMtbW4xMDMwMC5oLCBjb25maWcvdGMtb3BlbnJpc2MuYywKCWNvbmZpZy90Yy1vcGVucmlzYy5oLCBjb25maWcvdGMtcHBjLmMsIGNvbmZpZy90Yy1zMzkwLmMsCgljb25maWcvdGMtc2guYywgY29uZmlnL3RjLXNoLmgsIGNvbmZpZy90Yy1zaDY0LmMsIGNvbmZpZy90Yy10aWM1NHguYywKCWNvbmZpZy90Yy12ODUwLmMsIGNvbmZpZy90Yy12ODUwLmgsIGNvbmZpZy90Yy14c3Rvcm15MTYuYywKCWNvbmZpZy90Yy14c3Rvcm15MTYuaDogUmVwbGFjZSBib29sZWFuIHdpdGggYmZkX2Jvb2xlYW4sIHRydWUgd2l0aAoJVFJVRSwgZmFsc2Ugd2l0aCBGQUxTRS4gIFNpbXBsaWZ5IGNvbXBhcmlzb25zIG9mIGJmZF9ib29sZWFuIHZhcnMgd2l0aAoJVFJVRS9GQUxTRS4gIEZvcm1hdHRpbmcuCgoyMDAyLTExLTI5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChkb190X2JrcHQpOiBJZiBubyBvcGVyYW5kIGlzIHNwZWNpZmllZCwKCWFzc3VtZSBhIHZhbHVlIG9mIHplcm8uCgkoZG9fYmtwdCk6IExpa2V3aXNlLgoKMjAwMi0xMS0yOSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guYyAobWRfYXBwbHlfZml4Myk6IENhbGwgU19TRVRfVEhSRUFEX0xPQ0FMCglmb3IgVExTIHJlbG9jYXRpb25zLgoKMjAwMi0xMS0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jIChtZF9hcHBseV9maXgzKTogQWRkIGRlZmF1bHQgY2FzZS4KCjIwMDItMTEtMjggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogc3ltYm9scy5jIChTX1NFVF9USFJFQURfTE9DQUwpOiBOZXcgZnVuY3Rpb24uCgkqIHN5bWJvbHMuaCAoU19TRVRfVEhSRUFEX0xPQ0FMKTogTmV3IHByb3RvdHlwZS4KCSogY29uZmlnL3RjLWkzODYuYyAobWRfYXBwbHlfZml4Myk6IENhbGwgU19TRVRfVEhSRUFEX0xPQ0FMCglmb3IgVExTIHJlbG9jYXRpb25zLgoJKiBjb25maWcvdGMtaWE2NC5jIChtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgoyMDAyLTExLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHdyaXRlLmMgKHN1YnNlZ3NfZmluaXNoKTogRm9yIFNFQ19NRVJHRSBzZWN0aW9ucyBwYWQgbGFzdCBmcmFnbWVudAoJdG8gZW50c2l6ZS4KCjIwMDItMTEtMjYgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tLgoKCSogZHdhcmYyZGJnLmMgKHNjYWxlX2FkZHJfZGVsdGEpOiBOZXcuCgkoc2l6ZV9pbmNfbGluZV9hZGRyKTogVXNlIGl0LgoJKGVtaXRfaW5jX2xpbmVfYWRkcik6IFVzZSBpdC4KCjIwMDItMTEtMjYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlnL3RjLWNyaXMuYyAoY3Jpc19yZWxheF9mcmFnKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShtZF9hc3NlbWJsZSk6IERvbid0IHBhc3Mgb24gYnJhbmNoZXMgdG8gY29uc3RhbnRzIGFzIHJlbGF4YWJsZS4KCVR3ZWFrIGNvbW1lbnQuCgoyMDAyLTExLTI1ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWcvdGMtdGljNHguYyAoYzR4X29wZXJhbmRzX21hdGNoKTogQnVnZml4IGluIGRpcmVjdCBtb2RlCgoyMDAyLTExLTIxICBSYW5kb2xwaCBDaHVuZyAgPHJhbmRvbHBoQHRhdXNxLm9yZz4KCgkqIGNvbmZpZy90Yy1ocHBhLmggKHRjX2Zyb2Jfc3ltYm9sKTogRnJvYiB1bmRlZmluZWQgdW51c2VkIHN5bWJvbHMKCW9ubHkgaWYgdGhleSBoYXZlIGRlZmF1bHQgdmlzaWJpbGl0eS4KCjIwMDItMTEtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoYWxwaGFfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgcmVkdW5kYW50CglTX0lTX0RFRklORUQgdGVzdC4KCjIwMDItMTEtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtbWNvcmUuYyAobWNvcmVfcG9vbF9jb3VudCk6IE5ldyBmdW5jdGlvbi4KCShtY29yZV9jb25zLCBtY29yZV9mbG9hdF9jb25zLCBtY29yZV9zdHJpbmdlciwgbWNvcmVfZmlsbCk6IFVzZSBpdC4KCjIwMDItMTEtMjAgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBjb25maWcvdGMtbWNvcmUuYyAobWRfYmVnaW4pOiBVc2UgYSBjb25zdCBpdGVyYXRvci4gIERvbid0Cgljb2FsZXNjZSB0aGUgbmFtZSBmaWVsZHMgdG8gdXNlIHRoZSBzYW1lIHBvaW50ZXIuCgoJKiBjb25maWcvdGMtc2guYyAobWRfYmVnaW4pOiBVc2UgYSBjb25zdCBpdGVyYXRvci4gIERvbid0IGNvYWxlc2NlCgl0aGUgbmFtZSBmaWVsZHMgdG8gdXNlIHRoZSBzYW1lIHBvaW50ZXIuCgkoZ2V0X3NwZWNpZmljKTogQ2hlY2sgZm9yIG9wY29kZXMgd2l0aCB0aGUgc2FtZSBuYW1lIHVzaW5nIHN0cmNtcAoJYXMgd2VsbCBhcyBjb21wYXJpbmcgdGhlIHBvaW50ZXIuCgoyMDAyLTExLTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAoYWRqdXN0X3JlbG9jX3N5bXMpOiBEb24ndCByZWR1Y2UgU0VDX01FUkdFIGZpeHVwcyB3aXRoCglmeF9zdWJzeSBub24tTlVMTC4KCjIwMDItMTEtMTkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX3Zpc2liaWxpdHkpOiBPdmVyd3JpdGUgb25seSB0aGUKCXZpc2liaWxpdHkgcG9ydGlvbiBvZiBzdF9vdGhlci4KCjIwMDItMTEtMTkgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoc3RydWN0IGg4X2luc3RydWN0aW9uKTogTmV3IHR5cGUsIHVzZWQgdG8KCXdyYXAgaDhfb3Bjb2RlcyB3aXRoIGxlbmd0aCwgbm9wZXJhbmRzLCBpZHgsIGFuZCBzaXplIGZpZWxkcwoJKGNvbXB1dGVkIGF0IHJ1bi10aW1lKS4KCShoOF9pbnN0cnVjdGlvbnMpOiBOZXcgdmFyaWFibGUuCgkobWRfYmVnaW4pOiBBbGxvY2F0ZSB0aGUgc3RvcmFnZSBmb3IgaDhfaW5zdHJ1Y3Rpb25zLiAgRmlsbAoJaDhfaW5zdHJ1Y3Rpb25zIHdpdGggcG9pbnRlcnMgdG8gdGhlIGFwcHJvcHJpYXRlIG9wY29kZSBhbmQgdGhlCgljb3JyZWN0IHZhbHVlIGZvciB0aGUgYWRkaXRpb25hbCBmaWVsZHMuCgkoY2xldmVyX21lc3NhZ2UpOiBVcGRhdGUgdG8gdXNlIGg4X2luc3RydWN0aW9ucyBpbnN0ZWFkIG9mCgloOF9vcGNvZGVzLgoJKGJ1aWxkX2J5dGVzKTogRGl0dG8uCgkoZ2V0X3NwZWNpZmljKTogRGl0dG8uCgkobWRfYXNzZW1ibGUpOiBEaXR0by4KCjIwMDItMTEtMTkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jICh0Y19zMzkwX2ZpeF9hZGp1c3RhYmxlKTogUmUtYWRkIHBhdGNoIHRvIHByZXZlbnQKCWFkanVzdG1lbnRzIHRvIHN5bWJvbHMgaW4gbWVyZ2Ugc2VjdGlvbnMuCgoyMDAyLTExLTE5ICBMdWtlIERlbGxlciA8bHVrZWRAY3NlLnVuc3cuZWR1LmF1PgoKCSogY29uZmlnL3RjLWFscGhhLmMgKHNfYWxwaGFfcHJvbG9ndWUpOiBhc19iYWQgd2hlbiBzeW0gaXMgTlVMTC4KCjIwMDItMTEtMTggIEtldmluIEJ1ZXR0bmVyICA8a2V2aW5iQHJlZGhhdC5jb20+CgoJKiBkd2FyZjJkYmcuaCAoZHdhcmYyX2Zvcm1hdCk6IE5ldyBlbnVtLgoJKiBkd2FyZjJkYmcuYyAoRFdBUkYyX0ZPUk1BVCk6IFByb3ZpZGUgZGVmYXVsdCBkZWZpbml0aW9uLgoJKG91dF9kZWJ1Z19saW5lLCBvdXRfZGVidWdfaW5mbyk6IEFkZCBjb2RlIGZvciBoYW5kbGluZyA2NC1iaXQKCURXQVJGIDIgZm9ybWF0cy4KCSogY29uZmlnL3RjLW1pcHMuaCAobWlwc19kd2FyZjJfZm9ybWF0KTogRGVjbGFyZS4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19kd2FyZjJfZm9ybWF0KTogTmV3IGZ1bmN0aW9uLgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKERXQVJGMl9GT1JNQVQpOiBEb2N1bWVudC4KCjIwMDItMTEtMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19jaGFuZ2Vfc2VjdGlvbik6IE1ha2Ugc3VyZSBpbnB1dCBidWZmZXIKCWlzIG5vdCBhY2Nlc3NlZCBwYXN0IHRoZSBlbmQuICBEb24ndCBoYW5kCglvYmpfZWxmX2NoYW5nZV9zZWN0aW9uIGEgcG9pbnRlciBpbnRvIHRoZSBpbnB1dCBidWZmZXIuCgoyMDAyLTExLTE4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4sIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jICh0Y19nZW5fcmVsb2MpOiBGaXggdHlwbyBpbiBoYW5kbGluZyBvZgoJR09UX0xPMTYgb24gTkVXQUJJLgoKMjAwMi0xMS0xOCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29uZmlnL3RjLXRpYzR4LmM6IEZpeGVkIHByb3BlciBjb21tYW5kbGluZQoJcGFyYW1ldGVycy4gQWRkZWQgc3VwcG9ydCBmb3IgbmV3IG9wY29kZS1saXN0IGZvcm1hdC4gR2VuZXJhbAoJZXJyb3IgbWVzc2FnZSBmaXh1cHMuCgkoYzR4X2luc3RfYWRkKTogUmVqZWN0IGluc24gbm90IGZvciBvdXIgQ1BVCgkobWRfYmVnaW4pOiBBZGRlZCBtYXRyaXggZm9yIHNldHRpbmcgdGhlIHByb3BlciBvcGNvZGUtbGV2ZWwgJgoJZGV2aWNlLWZsYWdzIGFjY29yZGluZyB0byBjcHUgdHlwZSBhbmQgcmV2aXNpb24uIFJld3JpdGUgdGhlCglvcGNvZGUgaGFzaGVyLgoJKGM0eF9vcGVyYW5kX3BhcnNlKTogRml4IG9wY29kZSBidWcKCShjNHhfb3BlcmFuZHNfbWF0Y2gpOiBOZXcgZnVuY3Rpb24gYXJndW1lbnQuIEFkZGVkIGRyeS1ydW4KCW1lY2hhbmlzbSwgdGhhdCBpcyBvcHRpb25hbCBlcnJvciBnZW5lcmF0aW9uLiBBZGRlZCBjb25zdHJhaW50ICdpJwoJYW5kICdqJy4KCShjNHhfaW5zbl9jaGVjayk6IEFkZGVkIG5ldyBmdW5jdGlvbiBmb3IgcG9zdC12ZXJpZmljYXRpb24gb2YgdGhlCglnZW5lcmF0ZWQgaW5zbi4KCShtZF9hc3NlbWJsZSk6IENoZWNrIGFsbCBvcGNvZGVzIGJlZm9yZSBjcm9ha2luZyBiZWNhdXNlIG9mIGFuCglhcmd1bWVudCBtaXNtYXRjaC4gTmVlZCB0aGlzIHRvIGJlIGFibGUgdG8gZnVsbHkgc3VwcG9ydAoJb3J0b2dvbmFsbHkgYXJndW1lbnRzLgoJKG1kX3BhcnNlX29wdGlvbnMpOiBSZXZpc2VkIGNvbW1hbmRwcm9tcHQgc3dpY3RoZXMgYW5kIGFkZGVkIG5ldwoJb25lcy4KCShtZF9zaG93X3VzYWdlKTogQ29tcGxldGUgcmV3cml0ZSBvZiBwcmludG91dC4KCjIwMDItMTEtMTYgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jOiBSZW1vdmUgYzR4X3BzZXVkb19pZ25vcmUgZnVuY3Rpb24uCgkgIChjNHhfb3BlcmFuZHNfbWF0Y2gpOiBBZGRlZCBjaGVjayBmb3IgOC1iaXRzIExERiBpbnNuLiBHaXZlCgkgIHdhcm5pbmcgd2hlbiB1c2luZyBjb25zdGFudCBkaXJlY3QgYmlnZ2VyIHRoYW4gMl4xNi4gQWRkIHRoZSBuZXcKCSAgYXJndW1lbnRzLgoKMjAwMi0xMS0xMSAgQ2hyaXN0b3BoZXIgRmF5bG9yICA8Y2dmQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IFVzZSAuZ2RiaW5pdCB1bmRlciBDeWd3aW4uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMTEtMTEgIENocmlzdG9waGVyIEZheWxvciAgPGNnZkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuaCAoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lIG9ubHkgaWYKCVNUUklDVF9QRV9GT1JNQVQuCgoyMDAyLTExLTExICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb25maWcvdGMtdGljNHguYzogRGVjbGFyZSBhcyBtYW55IGZ1bmN0aW9ucyBhcyBwb3NzaWJsZSBhcwoJc3RhdGljLiBNYWludGVuYW5jZSBvbiB0aGUgZ2VuZXJhbCBpbmRlbnRpbmcuIFJlbW92ZWQgdW5uZWNlc3NhcnkKCXBzZXVkby1vcHMgYW5kIGFkZGVkIG5ldyBvbmVzLiBSZW1vdmVkIG9ic29sZXRlZCBjNHhfcHNldWRvX2lnbm9yZQoJZnVuY3Rpb24uIEFkZCBzdXBwb3J0IGZvciBuZXcgRFNQLCBUTVMzMjBWQzMzLiBGaXggYnVnIGZvcgoJY29udmVydGluZyBmbG9udW0gY29uc3RhbnRzLgoJKGM0eF9kb19hbGlnbik6IEFkZCBwcm9wZXIgYWxpZ24gaGFuZGxpbmcuIFNldHVwIGFsaWduIHRvIGluc2VydAoJTk9QJ3MuCgkoYzR4X2dlbl90b193b3Jkcyk6IFN1cHBvcnQgZm9yIGV4dGVuZGVkIFRJIHR5cGUgZmxvYXRzLgoJKG1kX2F0b2YpOiBQcm9wZXIgZHVtcGluZyBvZiBtdWx0aXBsZS13b3JkIGxpdHRsZW51bXMuCgkoYzR4X2F0b2YpOiBBZGRlZCBzdXBwb3J0IGZvciBleHRlbmRlZCBUSSB0eXBlIGZsb2F0cy4KCShjNHhfc3RyaW5nZXIpOiBBZGRlZCBuZXcgZnVuY3Rpb24gdG8gaGFuZGxlIGNvbXBhY3Qgc3RyaW5ncy4KCShjNHhfZW1pdF9jaGFyKTogQWRkZWQgbmV3IGZ1bmN0aW9uIGFyZ3VtZW50IHRvIGhhbmRsZSBjdXN0b20KCWxlbmd0aCBpbnNlcnRzLCBsaWtlIHNpbmdsZS1ieXRlIHN0cmluZ3MuCgkqIGNvbmZpZy90Yy10aWM0eC5oOiBBZGQgcHJvcGVyIGFsaWduIGhhbmRsaW5nIHdpdGggTk9QJ3MuCgkqIE1ha2VmaWxlLmFtOiBBZGRlZCB0aWM0eCBkZXBlbmRlY3kKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUKCjIwMDItMTEtMTEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIG1hY3JvLmMgKGdldF9hbnlfc3RyaW5nKTogQ29ycmVjdCBsb2dpYyBmb3Igbm90IGdvaW5nIGJleW9uZCBlbmQKCW9mIGluLT5wdHJbXS4KCjIwMDItMTEtMTAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy90Yy1tbWl4LmMgKGdldF9wdXRnZXRfb3BlcmFuZHMpOiBNYXJrIGJvdGggcG9zc2libGUKCW9wZXJhbmRzIGFzIGludmFsaWQgYXQgYmVnaW5uaW5nLgoKCSogY29uZmlnL3RjLW1taXguYyAobWRfY29udmVydF9mcmFnKSA8Y2FzZSBTVEFURV9HUkVHX0RFRj46CglJbml0aWFsaXplIHRhcmdldCBvZiBmaXh1cCB0byB6ZXJvLgoKMjAwMi0xMS0wNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNyb19idWlsZF9sdWkpOiBfZ3BfZGlzcCBpcyBub3Qgc3BlY2lhbCBvbgoJTkVXQUJJLCBidXQgd2Ugc2hvdWxkIHN0aWxsIGVtaXQgSEkxNl9TIGZvciBub24tUElDIG4zMi4KCjIwMDItMTEtMDYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoYWxwaGFfdmFsaWRhdGVfZml4KTogTW92ZSBjb2RlIC4uLgoJKGFscGhhX2ZpeF9hZGp1c3RhYmxlKTogLi4uIGhlcmUuCgkqIGNvbmZpZy90Yy1hbHBoYS5oIChUQ19WQUxJREFURV9GSVgpOiBSZW1vdmUuCgoyMDAyLTExLTA3ICBFcmljIEtvaGwgIDxla29obEByei1vbmxpbmUuZGU+CgoJKiBjb25maWcvdGUtcGUuaCAoTEVYX0FUKTogQWNjZXB0IGF0LXNpZ24gKEApIGFzIGZpcnN0IGNoYXJhY3RlcgoJb2YgYSBsYWJlbC4KCjIwMDItMTEtMDUgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc3VwcG9ydF82NGJpdF9vYmplY3RzKTogQ2hlY2sgKmwgYmVmb3JlIGl0CglpcyBmcmVlZC4KCjIwMDItMTEtMDQgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWcvb2JqLWNvZmYuYyAob2JqLWNvZmYtc2VjdGlvbik6IFNldCBTRUNfREFUQSBhbmQKCVNFQ19MT0FEIGZsYWdzIGZvciBzZWN0aW9ucyBtYXJrZWQgYXMgJ3MnLgoKMjAwMi0xMS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyk6IERlZmF1bHQgdG8gemVyby4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IExpa2V3aXNlIHdoZW4gRElGRl9FWFBSX09LLgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyk6IERvY3VtZW50IGNoYW5nZWQKCWRlZmF1bHQuCgoJKiBkZXAtaW4uc2VkOiBGaXggdHlwby4KCjIwMDItMTAtMzAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlndXJlLmluOiBVcGRhdGUgQVJNIENQVSBwYXR0ZXJucy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDItMTAtMjkgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogaXRibC1sZXgubDogVXNlICNpbmNsdWRlIDw+IGZvciBnZW5lcmF0ZWQgaGVhZGVycy4KCSogaXRibC1vcHMuYzogTGlrZXdpc2UuCgoyMDAyLTEwLTI4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGRvYy9nYXNwLnRleGk6IEZpeCB0eXBvIGluIGRlcHJlY2F0aW9uIG5vdGUuCgoyMDAyLTEwLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jICh0Y19nZW5fcmVsb2MpOiBBbGxvdyBhbiBhYnNvbHV0ZSByZWZlcmVuY2UgdG8KCV9HTE9CQUxfVEFCTEVfT0ZGU0VUXyB0byBiZSBjb252ZXJ0ZWQgaW50byBhIEdPVCByZWxvYy4KCjIwMDItMTAtMjMgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy90Yy1tbWl4LmggKG1taXhfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBEb24ndCBkZWNsYXJlLgoJKHRjX2Zyb2JfZmlsZV9iZWZvcmVfYWRqdXN0KTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvdGMtbW1peC5jIChtbWl4X2Zyb2JfbG9jYWxfcmVsb2MpOiBSZW1vdmUgdW51c2VkCglmdW5jdGlvbi4KCShtbWl4X2Zyb2JfZmlsZV9iZWZvcmVfYWRqdXN0KTogUmVtb3ZlIGluZWZmZWN0aXZlIGZ1bmN0aW9uLgoKMjAwMi0xMC0yMyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjb25maWcvdGMtY3Jpcy5jIChTSU1QTEVfRVhQUik6IE5ldyBtYWNyby4KCShjcmlzX3JlbGF4X2ZyYWcpOiBOZXcgZnVuY3Rpb24uCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpIDxjYXNlIEVOQ09ERV9SRUxBWAoJKFNUQVRFX0JBU0VfUExVU19ESVNQX1BSRUZJWCwgU1RBVEVfVU5ERik+OiBQYXNzIG9uIHVucmVzb2x2ZWQKCWV4cHJlc3Npb25zIHRoYXQgd2lsbCBiZWNvbWUgYWJzb2x1dGUgZXhwcmVzc2lvbnMgdG8gcmVsYXhhdGlvbi4KCShtZF9jb252ZXJ0X2ZyYWcpIDxjYXNlIEVOQ09ERV9SRUxBWCAoU1RBVEVfQkFTRV9QTFVTX0RJU1BfUFJFRklYLAoJU1RBVEVfV09SRCk+OiBFeHBlY3Qgb25seSBhYnNvbHV0ZSBleHByZXNzaW9ucy4gIFVzZSB0aGUgc3ltYm9sCgl2YWx1ZSwgbm90IGRpc3RhbmNlIHRvIHN5bWJvbC4KCTxjYXNlIEVOQ09ERV9SRUxBWCAoU1RBVEVfQkFTRV9QTFVTX0RJU1BfUFJFRklYLCBTVEFURV9CWVRFKT46CglEaXR0by4gIENvcnJlY3QgcGxhY2VtZW50IG9mIGZpeHVwLgoJKG1kX2Fzc2VtYmxlKTogVXNlIFNJTVBMRV9FWFBSIHdoZW4gZGlzc2VjdGluZyBleHByZXNzaW9ucy4KCShnZW5fYmRhcCk6IERpdHRvLgoJKiBjb25maWcvdGMtY3Jpcy5oIChjcmlzX3JlbGF4X2ZyYWcpOiBEZWNsYXJlLgoJKG1kX3JlbGF4X2ZyYWcpOiBEZWZpbmUuCgoyMDAyLTEwLTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL29iai1lbGYuYyAoc3BlY2lhbF9zZWN0aW9ucyk6IFVzZSBjb3JyZWN0IHR5cGVzIGZvciBpbml0CglhcnJheSBzZWN0aW9ucy4KCShvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogRG9uJ3QgbWVzcyB3aXRoIGluaXQgYXJyYXkgc2VjdGlvbiB0eXBlLgoKMjAwMi0xMC0yMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19uZWVkX2VsZl9hZGRlbmRfZml4dXApOiBSZXR1cm4gdHJ1ZQoJZm9yIHJlbG9jcyBhZ2FpbnN0IHN5bWJvbHMgaW4gYSBtZXJnZWQgc2VjdGlvbi4KCjIwMDItMTAtMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfYmVnaW4pOiBBZGQgJGZjYyByZWdpc3RlcnMgdG8gdGhlIHN5bWJvbAoJdGFibGUgYXMgcmVnaXN0ZXIgbmFtZXMuCgoyMDAyLTEwLTE4ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jIChtZF9wYXJzZV9vcHRpb24pOiBTZXQgczM5MF9hcmNoX3NpemUgdG8gMzIKCWZvciBvcHRpb24gLW0zMS4KCjIwMDItMTAtMTggIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGV4cHIuYyAob3BlcmFuZCk6IEFkZCBzdXBwb3J0IGZvciBuLm5uIGZsb251bXMuCgoyMDAyLTEwLTE3ICBKb2hhbm5lcyBTdGV6ZW5iYWNoICA8anNAY29udmVyZ2VuY2UuZGU+CgoJKiBpdGJsLXBhcnNlLnkgKGVudHJ5KTogUHJvdmlkZSBlbXB0eSBhY3Rpb24uCgoyMDAyLTEwLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlndXJlLmluIChCRkRWRVJfSCk6IFNldCBhbmQgc3Vic3QuCgkqIGRlcC1pbi5zZWQ6IFJlcGxhY2UgYmZkdmVyLmggd2l0aCAkKEJGRFZFUl9IKS4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKEJGRFZFUl9IKTogRGVmaW5lLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTEwLTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuaCAoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZSBmb3IgUEUgdG9vLgoKMjAwMi0xMC0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCShDUFVfT0JKX1ZBTElEKTogc2g2NCBjb2ZmIGlzIGludmFsaWQuCgkqIGFzLmM6ICNpbmNsdWRlICJiZmR2ZXIuaCIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTEwLTE0ICBNb21jaGlsIFZlbGlrb3YgIDx2ZWxjb0BmYWRhdGEuYmc+CgoJKiBjb25maWcvdGMtdjg1MC5jIChDSEVDS18pOiBSZW1vdmUgdG9rZW4gcGFzdGluZyBvcGVyYXRvci4KCjIwMDItMTAtMTQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAobWlwczY0dnItZWxmLCBtaXBzNjR2cmVsLWVsZik6IE5ldyBjb25maWcuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMTAtMTMgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoJICAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19ncGR3b3JkKTogTmV3IGZ1bmN0aW9uLgoJKG1pcHNfcHNldWRvX3RhYmxlKTogQWRkIC5ncGR3b3JkLgoJKG1pcHNfbmVlZF9lbGZfYWRkZW5kX2ZpeHVwKTogbmV2ZXIgZm9yIE5FV0FCSS4KCShtZF9hcHBseV9maXgzKTogRG9uJ3QgbWFyayBCRkRfUkVMT0M2NCBhZnRlciBHUFJFTDE2IG9yCglHUFJFTDMyIGFzIGRvbmUuCgkoc19jcGFkZCk6IEdlbmVyYXRlIC5jcGFkZCBvbiBORVdBQkkuCgoyMDAyLTEwLTEyICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVhdGhhbkBvdGVuZXQuZ3I+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19jbGVhbnVwKTogTWFrZSAnaScgdW5zaWduZWQgaW50LgoKMjAwMi0xMC0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5oIChtaXBzX3JlbGF4X2ZyYWcpOiBUYWtlIHNlZ21lbnQgYXMgYXJndW1lbnQuCgkobWRfcmVsYXhfZnJhZyk6IEFkanVzdCBtYWNyby4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19yZWxheF9icmFuY2gpOiBOZXcgdmFyaWFibGUuCgkoUkVMQVhfQlJBTkNIX0VOQ09ERSwgUkVMQVhfQlJBTkNIX1AsIFJFTEFYX0JSQU5DSF9MSUtFTFksCglSRUxBWF9CUkFOQ0hfTElOSywgUkVMQVhfQlJBTkNIX1RPT0JBUik6IE5ldy4KCShSRUxBWF9NSVBTMTZfUCk6IEFkanVzdC4KCShhcHBlbmRfaW5zbik6IEVtaXQgYnJhbmNoIHRvIG5vbi1jb25zdGFudCBpbiBhIGZyYWdfdmFyIGlmCglicmFuY2gtcmVsYXhhdGlvbiBpcyBkZXNpcmFibGUgYW5kIHBvc3NpYmxlLgoJKE9QVElPTl9SRUxBWF9CUkFOQ0gsIE9QVElPTl9OT19SRUxBWF9CUkFOQ0gpOiBOZXcgb3B0aW9ucy4KCShPUFRJT05fRUxGX0JBU0UpOiBBZGp1c3QuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIG5ldyBvcHRpb25zLgoJKG1kX2FwcGx5X2ZpeDMpOiBVcGRhdGUgY29tbWVudCBvbiBFTUJFRERFRF9QSUMgY29uZGl0aW9uYWwKCWJyYW5jaCByZWxheGF0aW9uLgoJKHJlbGF4ZWRfYnJhbmNoX2xlbmd0aCk6IE5ldyBmdW5jdGlvbi4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IEhhbmRsZSBicmFuY2ggZnJhZ3MuCgkobWlwc19yZWxheF9mcmFnKTogTGlrZXdpc2UuCgkobWRfY29udmVydF9mcmFnKTogSGFuZGxlIGJyYW5jaCBmcmFncy4gIFdhcm4gaWYgYnJhbmNoIGlzCglyZWxheGVkLgoKMjAwMi0xMC0xMSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guYyAoc2hfZm9yY2VfcmVsb2NhdGlvbik6IE1ha2Ugc3VyZSBUTFMgcmVsb2NzIGdldAoJZW1pdHRlZC4KCShtZF9hcHBseV9maXgzKTogQWRkIFRMUyByZWxvY3MuCgkoc2hfcGFyc2VfbmFtZSk6IFN1cHBvcnQgQFRMU0dELCBAVExTTERNLCBAR09UVFBPRkYsIEBUUE9GRiBhbmQKCUBEVFBPRkYuCgoyMDAyLTEwLTExICBNaWNoZWwgU2l4ICA8bXNpeEBjY3IuanVzc2lldS5mcj4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAob3V0cHV0X2p1bXApOiBTZXQgZnhfc2lnbmVkIGZvciBsb29wL2pjeHouCgkobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBMaWtld2lzZSBmb3IgOCBiaXQgYnJhbmNoZXMuCgpUaHUgT2N0IDEwIDE0OjMxOjMwIDIwMDIgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKGFzc2VtYmxlX3BwaSk6IEluaXRpYWxpemUgcmVnX3ggLyByZWdfeSAvIHJlZ19uCglpbnNpZGUgbG9vcC4KCjIwMDItMTAtMDkgIFJpY2hhcmQgU2hhbm4gPHJpY2hhcmQuc2hhbm5Ac3VwZXJoLmNvbT4KCSAgICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNoNjRfdGFyZ2V0X2Zvcm1hdCk6IEFkZCBzdXBwb3J0IGZvciBzaDY0CglMaW51eCBlbnZpcm9ubWVudC4KCjIwMDItMTAtMDMgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogY29udGlnL3RjLXNoLmMgKHNoX2xvY2FsX3BjcmVsKTogTmV3LgoJKHNoX2ZvcmNlX3JlbG9jYXRpb24pOiBVc2Ugc2hfbG9jYWxfcGNyZWwuCgkobWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogQ2hlY2sgdGhlIHJlbG9jYXRpb24gdHlwZSB3aGV0aGVyIGl0CglzaG91bGQgYmUgcmVzb2x2ZWQgbG9jYWxseS4gVXNlIFNfRk9SQ0VfUkVMT0MuCgoyMDAyLTEwLTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLW1pcHMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OKTogVGlkeSBhcmcuCgoyMDAyLTA5LTMwICBHYXZpbiBSb21pZy1Lb2NoICA8Z2F2aW5AcmVkaGF0LmNvbT4KCSAgICBLZW4gUmFlYnVybiAgPHJhZWJ1cm5AY3lnbnVzLmNvbT4KCSAgICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgkgICAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgkgICAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHJlZGhhdC5jb20+CgkgICAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgkgICAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZG9jL2MtbWlwcy50ZXhpOiBBZGQgZW50cmllcyBmb3IgLW1hcmNoPXZyNDEyMCx2cjQxMzAsdnI0MTgxLAoJdnI1NDAwIGFuZCB2cjU1MDAuICBBZGQgZW50cnkgZm9yIC1tZml4LXZyNDEyMi1idWdzLgoJKiBjb25maWcvdGMtbWlwcy5jIChDUFVfSEFTX0RST1IsIENQVV9IQVNfUk9SKTogTmV3IG1hY3Jvcy4KCShoaWxvX2ludGVybG9ja3MpOiBUcnVlIGZvciBDUFVfVlI1NTAwLgoJKGdwcl9pbnRlcmxvY2tzLCBjb3BfaW50ZXJsb2Nrcyk6IFRydWUgZm9yIENQVV9WUjU0MDAgYW5kIENQVV9WUjU1MDAuCgkobWlwc19maXhfdnI0MTIyX2J1Z3MpOiBOZXcuCgkoYXBwZW5kX2luc24pOiBXb3JrIGFyb3VuZCA0MTIyIGVycm9ycyBpZiBtaXBzX2ZpeF92cjQxMjJfYnVncy4KCShtaXBzX2VtaXRfZGVsYXlzKTogTGlrZXdpc2UuCgkobWFjcm8yKSBbTV9EUk9MSV06IFVzZSBkcm9yIG9yIGRyb3IzMiBpZiBDUFVfSEFTX0RST1IuCglbTV9ST0xJXTogTGlrZXdpc2Ugcm9yIGlmIENQVV9IQVNfUk9SLgoJKHZhbGlkYXRlX21pcHNfaW5zbiwgbWlwc19pcCk6IEhhbmRsZSAnWycsICddJywgJ2UnIGFuZCAnJScuCgkoT1BUSU9OX0ZJWF9WUjQxMjIsIE9QVElPTl9OT19GSVhfVlI0MTIyKTogTmV3IG9wdGlvbnMuCgkobWRfbG9uZ29wdHMpOiBBZGQgLW1maXgtdnI0MTIyLWJ1Z3MgYW5kIC1uby1tZml4LXZyNDEyMi1idWdzLgoJKE9QVElPTl9FTEZfQkFTRSk6IEJ1bXAuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIHRoZSBuZXcgb3B0aW9ucy4KCShtaXBzX2NwdV9pbmZvX3RhYmxlKTogQWRkIGVudHJpZXMgZm9yIHZyNDEyMCwgdnI0MTMwLCB2cjQxODEsCgl2cjU0MDAgYW5kIHZyNTUwMC4KCjIwMDItMDktMjkgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfYXBwbHlfZml4Myk6IFN1YnRyYWN0IHRoZSBzeW1ib2wgdmFsdWUKCXR3aWNlIGlmIGhvd3RvLT5wY3JlbF9vZmZzZXQgaXMgdHJ1ZS4KCjIwMDItMDktMjggIE1hdHQgVGhvbWFzICA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoJICAgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcvdGMtdmF4LmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogT25seSB0cnkgdG8KCWNvbnZlcnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMgdG8gR09UMzIvUExUMzIgaWYgUElDIGNvZGUgaXMKCXJlcXVlc3RlZC4gIEZpeCBjb21tZW50LgoKMjAwMi0wOS0yNyAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBjb25maWcvdGMtc2guYyAoc2hfZm9yY2VfcmVsb2NhdGlvbik6IFJldHVybiAwIGZvcgoJc29tZSBQQyByZWxhdGl2ZSByZWxvY2F0aW9ucyB3aGVuIG5vdCByZWxheGluZy4KCjIwMDItMDktMjYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAodGNfaTM4Nl9maXhfYWRqdXN0YWJsZSk6IEFkZCB4ODYtNjQgVExTIHJlbG9jcy4KCURlZmluZSB0aGVtIGlmIG5vdCBCRkRfQVNTRU1CTEVSLgoJKGxleF9nb3QpOiBIYW5kbGUgQHRsc2dkLCBAZHRwb2ZmIGFuZCBAdHBvZmYgaW4gNjQtYml0IG1vZGUsIGFkZAoJQHRsc2xkLgoJKG1kX2FwcGx5X2ZpeDMpOiBObyBhZGRlbmQgZm9yIEJGRF9SRUxPQ19YODZfNjRfVExTR0QsCglCRkRfUkVMT0NfWDg2XzY0X1RMU0xEIGFuZCBCRkRfUkVMT0NfWDg2XzY0X0dPVFRQT0ZGLgoJKHRjX2dlbl9yZWxvYyk6IEhhbmRsZSB4ODYtNjQgVExTIHJlbG9jcy4KCjIwMDItMDktMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1kX2FwcGx5X2ZpeDMpOiBSZWluc3RhdGUgY29kZSBoYW5kbGluZyBwY3JlbAoJZml4dXBzIHRvIGN1cnJlbnQgb3IgYWJzb2x1dGUgc2VjdGlvbi4KCjIwMDItMDktMjYgIEppbSBXaWxzb24gIDx3aWxzb25AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy12ODUwLmMgKHY4NTBfb2Zmc2V0KTogVXNlIGZyYWdfdmFyIGluc3RlYWQgb2YgZnJhZ19ub3dfZml4CglhbmQgZnJhZ19tb3JlLgoKMjAwMi0wOS0yNiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKENQVV9IQVNfTUlQUzE2KTogQWRkIG1pcHMtbHNpLWVsZiBhcyBNSVBTMTYKCWNhcGFibGUgY29uZmlndXJhdGlvbi4KCShtYWNyb19idWlsZCk6IENoZWNrIGZvciBNSVBTMTYgY2FwYWJpbGl0eSwgbm90IGZvciBhY3R1YWwgTUlQUzE2IGNvZGUKCWdlbmVyYXRpb24uCgkobWlwc19pcCk6IExpa2V3aXNlLgoKMjAwMi0wOS0yNiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKGFwcGVuZF9pbnNuKTogRml4IGp1bXAgb3ZlcmZsb3cgY2hlY2suCgoyMDAyLTA5LTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAocHJvY2Vzc19vcGVyYW5kcyk6IFdhcm4gYWJvdXQgImxlYSIgc2VnbWVudAoJb3ZlcnJpZGVzLgoKMjAwMi0wOS0yMiAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0Bzb2Z0aG9tZS5uZXQ+CgoJKiB3cml0ZS5jOiBEZWxldGUgc2V0X3NlZ21lbnRfdm1hIGFuZCBwcm90b3R5cGUuIFVwZGF0ZSBhbGwgY2FsbGVycy4KCjIwMDItMDktMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtZF9hcHBseV9maXgzKTogUmVwbGFjZSBTX0lTX0VYVEVSTkFMLAoJU19JU19XRUFLIGV0Yy4gd2l0aCBTX0ZPUkNFX1JFTE9DIGNhbGwuICBDb3JyZWN0IGNvbW1lbnQuCglSZW5hbWUgImZzZWciIHRvICJzeW1fc2VnIi4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wOS0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHN5bWJvbHMuYyAoY29sb24pOiBEbyBub3QgYWxsb3cgc3ltYm9scyB0byBiZSBjcmVhdGVkIGluIHRoZQoJYWJzb2x1dGUgc2VjdGlvbiBpZiBXT1JLSU5HX0RPVF9XT1JEIGlzIG5vdCBkZWZpbmVkIGFuZAoJbmV3X2Jyb2tlbl93b3JkcyB3b3VsZCByZXF1aXJlIGEgbmV3IGZyYWcgdG8gYmUgY3JlYXRlZC4KCjIwMDItMDktMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBleHByLmMgKGV4cHIpOiBTaW1wbGlmeSBmb28tZm9vIGhlcmUuCgkoY2xlYW5fdXBfZXhwcmVzc2lvbik6IFJlbW92ZSBPX3N1YnRyYWN0IGNvZGUuCgoJKiB3cml0ZS5oIChzdHJ1Y3QgZml4KTogQWRkIGZ4X2RvdF92YWx1ZS4KCShkb3RfdmFsdWUpOiBEZWNsYXJlLgoJKiB3cml0ZS5jIChkb3RfdmFsdWUpOiBOZXcgdmFyLgoJKGZpeF9uZXdfaW50ZXJuYWwpOiBTYXZlIGRvdF92YWx1ZSBhcyBmeF9kb3RfdmFsdWUuCgkoZml4dXBfc2VnbWVudCk6IEFkanVzdCBmeF9vZmZzZXQgdXNpbmcgZnhfZG90X3ZhbHVlLgoJKiBleHByLmMgKGV4cHIpOiBVcGRhdGUgZG90X3ZhbHVlLgoKMjAwMi0wOS0xOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jICh0Y19pMzg2X2ZpeF9hZGp1c3RhYmxlKTogSGFuZGxlCglCRkRfUkVMT0NfMzg2X1RMU19JRSBhbmQgQkZEX1JFTE9DXzM4Nl9UTFNfR09USUUuCgkoQkZEX1JFTE9DXzM4Nl9UTFNfSUUsIEJGRF9SRUxPQ18zODZfVExTX0dPVElFKTogRGVmaW5lIHRvIDAKCWlmIG5vdCBkZWZpbmVkLgoJKGxleF9nb3QpOiBIYW5kbGUgQEdPVE5UUE9GRiBhbmQgQElORE5UUE9GRi4KCShtZF9hcHBseV9maXgzLCB0Y19nZW5fcmVsb2MpOiBIYW5kbGUgQkZEX1JFTE9DXzM4Nl9UTFNfSUUgYW5kCglCRkRfUkVMT0NfMzg2X1RMU19HT1RJRS4KCjIwMDItMDktMTkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAobWRfcGNyZWxfZnJvbSk6IE9ubHkgYWRqdXN0IHNwZWNpYWwgZm9yCglicmFuY2ggdHlwZSByZWxvY3MuCgkoYWxwaGFfZm9yY2VfcmVsb2NhdGlvbik6IERvbid0IHNwZWNpYWwtY2FzZSBicmFuY2ggdHlwZSByZWxvY3MuCgoyMDAyLTA5LTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW02OGsuYyAoc2VsZWN0X2NvbnRyb2xfcmVncyk6IEhhbmRsZSBzaXR1YXRpb24gd2hlcmUKCWFyY2hpdGVjdHVyZSBoYXMgbm90IHlldCBiZWVuIHNlbGVjdGVkLgoKMjAwMi0wOS0xOCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKElTX1NFWFRfMzJCSVRfTlVNKTogTW92ZSBjbG9zZXIgdG8gdG9wIG9mIGZpbGUuCgkoSVNfU0VYVF8xNkJJVF9OVU0pOiBOZXcgbWFjcm8uCgkobWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCk6IE5ldyBmdW5jdGlvbiwgdG8gYnVpbGQgYSBzZXQgb2YKCWluc3RydWN0aW9ucyB0byBkbyBhIGxvYWQgb3Igc3RvcmUgZnJvbSBhIGNvbnN0YW50IG9mZnNldCByZWxhdGl2ZQoJdG8gYSBnaXZlbiByZWdpc3Rlci4KCShtYWNybywgc19jcHJlc3RvcmUpOiBVc2UgbWFjcm9fYnVpbGRfbGRzdF9jb25zdG9mZnNldCB0byBpbXBsZW1lbnQKCS5jcHJlc3RvcmUgcHNldWRvLW9wLgoKMjAwMi0wOS0xOCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2FwcGx5X2ZpeDMpOiBKdXN0IHJldHVybiBmb3IgQkZEX1JFTE9DXzguCgoyMDAyLTA5LTE4ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoc19jaGFuZ2Vfc2VjdGlvbik6IEZpeCBwYXJzaW5nLiBDb2RlIGNsZWFudXAuCgoyMDAyLTA5LTE3ICBTdGFuIENveCAgPHNjb3hAcmVkaGF0LmNvbT4KCgkqIHRjLW1pcHMuYyAobG9hZF9hZGRyZXNzKTogVXNlIEJGRF9SRUxPQ19NSVBTX0dPVF9ESVNQIGZvciBuZXdhYmkuCgkobWFjcm8pOiBMaWtld2lzZSBmb3IgbGEuICBMaWtld2lzZSBmb3IgbGQuCgkobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogTWFrZSAteGdvdCBvcHRpb25hbCwgbm90IHRoZSBkZWZhdWx0LgoJKG1kX2FwcGx5X2ZpeDMpOiBBbGxvdyBjb21wb3NpdGUgcmVsb2NhdGlvbiB0byBzZXQgdXAgZ3AuCgkodGNfZ2VuX3JlbG9jKTogQWxsb3cgcmVsYXhpbmcgZm9yIG5ld2FiaS4KCVJlbGF4IFJfTUlQU19DQUxMMTYgdG8gUl9NSVBTX0dPVF9QQUdFL1JfTUlQU19HT1RfT0ZTVCBpZiBsb2NhbC4KCVJlbGF4IFJfTUlQU19HT1QxNi9SX01JUFNfTE8xNiB0byBSX01JUFNfR09UX0RJU1AgaWYgbG9jYWwuCgoyMDAyLTA5LTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChtZF9hcHBseV9maXgzKTogTm90ZSB0aGF0IGFuIGltcGxlbWVudGVkCglCRkRfUkVMT0NfQVJNX0lNTUVESUFURSBoYXMgYmVlbiBkb25lLgoJKHRjX2dlbl9yZWxvYyk6IERvIG5vdCBpc3N1ZSByZWxvYyBudW1iZXIgb2YgdW5pbXBsZW1lbnRlZAoJQkZEX1JFTE9DX0FSTV9JTU1FRElBVEUgYW5kIEJGRF9SRUxPQ19BUk1fT0ZGU0VUX0lNTSByZWxvY3MgLQoJdGhlaXIgbmFtZSBpcyBhbHJlYWR5IGluIHRoZSBlcnJvciBtZXNzYWdlIC0gcGx1cyByZW1vdmUgdGhlbQoJZnJvbSB0aGUgZGVmYXVsdCBjYXNlLgoKCSogY29uZmlnL3RjLWFybS5jIChkb19sZG1zdG0pOiBXYXJuIGFib3V0IHVucHJlZGljdGFibGUKCWJlaGF2aW9yIG9mIGluc3RydWN0aW9ucy4KCjIwMDItMDktMTcgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jOiBBZGQgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGFuZCBBVFRSSUJVVEVfVU5VU0VELgoJQ29udmVydCBmdW5jdGlvbnMgdG8gSyZSIGZvcm1hdC4KCjIwMDItMDktMTcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChwZHJfc2VnKTogRGVmaW5lIG9ubHkgZm9yIEVMRi4KCShzX2NoYW5nZV9zZWN0aW9uKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4gRG9uJ3QgdXNlIGZvciBub25FTEYuCgoyMDAyLTA5LTE3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL29iai1lbGYuYyAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IE1vdmUgcHJvdG90eXBlIHRvCglvYmotZWxmLmgKCSogY29uZmlnL29iai1lbGYuaCAob2JqX2VsZl9jaGFuZ2Vfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wOS0xNiAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogZHdhcmYyZGJnLmMgKG91dF9kZWJ1Z19hYmJyZXYpOiBBZGQgc3VwcG9ydCBmb3IgdGhlIERXX0FUX25hbWUgZmllbGQuCgkob3V0X2RlYnVnX2luZm8pOiBMaWtld2lzZS4KCjIwMDItMDktMTYgIEJydW5vIEhhaWJsZSAgPGJydW5vQGNsaXNwLm9yZz4KCgkqIGNvbmZpZy90Yy1pMzg2LmggKEVMRl9UQVJHRVRfRk9STUFUKTogTmV3IG1hY3JvLgoJKFRBUkdFVF9GT1JNQVQpOiBVc2UgRUxGX1RBUkdFVF9GT1JNQVQgaW5zdGVhZCBvZiAiZWxmMzItaTM4NiIuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGkzODZfdGFyZ2V0X2Zvcm1hdCk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYWxwaGEuaCAoRUxGX1RBUkdFVF9GT1JNQVQpOiBOZXcgbWFjcm8uCgkoVEFSR0VUX0ZPUk1BVCk6IFVzZSBFTEZfVEFSR0VUX0ZPUk1BVCBpbnN0ZWFkIG9mICJlbGY2NC1hbHBoYSIuCgoyMDAyLTA5LTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9hc3NlbWJsZSk6IERvIG5vdCBjb3VudCBGQUtFIG9wZXJhbmRzCgl3aGVuIGRlY2lkaW5nIGlmIGFueSBvcGVyYW5kcyBoYXZlIGJlZW4gc2tpcHBlZC4KCjIwMDItMDktMTEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBOZXcgVEkgcG9ydCBzdXBwb3J0cyBib3RoIEM0eCBhbmQgQzN4IHNlcmllcyBvZiBEU1BzLgoKCSogcG8vdHIucG86IFVwZGF0ZWQgVHVya2lzaCB0cmFuc2xhdGlvbi4KCjIwMDItMDktMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWRfYXBwbHlfZml4Myk6IEFsbG93IGFkZGVuZCBmb3IKCUJGRF9SRUxPQ18zODZfVExTX0xET18zMiwgQkZEX1JFTE9DXzM4Nl9UTFNfTEUgYW5kCglCRkRfUkVMT0NfMzg2X1RMU19MRV8zMi4KCjIwMDItMDktMDUgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaHBwYS5jIChtZF9hcHBseV9maXgzKTogRG9uJ3Qgc2V0IGZ4X2RvbmUgZm9yCgltYXJrZXIgcmVsb2NhdGlvbnMgc3VjaCBhcyBFTlRSWS9FWElULgoJKiBjb25maWcvdGMtaHBwYS5oIChNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbml0aW9uIGFwcGxpZXMKCXRvIGJvdGggT0JKX0VMRiBhbmQgT0JKX1NPTS4KCjIwMDItMDktMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKG1kX2FwcGx5X2ZpeDMpOiBFeHBhbmQuCgkoVENfVkFMSURBVEVfRklYLCBUQ19GT1JDRV9SRUxPQ0FUSU9OLCBUQ19GT1JDRV9SRUxPQ0FUSU9OX0FCUywKCVRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwsIFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUsCglUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9BQlMsIFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0xPQ0FMLAoJVENfVkFMSURBVEVfRklYX1NVQiwgTURfQVBQTFlfU1lNX1ZBTFVFLCBTX0ZPUkNFX1JFTE9DLAoJRVhURVJOX0ZPUkNFX1JFTE9DKTogRG9jdW1lbnQuCgkoVENfSEFORExFU19GWF9ET05FLCBvYmpfZml4X2FkanVzdGFibGUpOiBSZW1vdmUuCgkqIGFzLmg6IERvbid0IGluY2x1ZGUgc3RydWMtc3ltYm9sLmggZm9yIGFyYy4KCShJU19FTEYpOiBEZWZpbmUuCgkqIGNnZW4uYyAoZ2FzX2NnZW5fbWRfYXBwbHlfZml4Myk6IFJlbW92ZSAqdmFsUCBmdWRnZXMgYW5kIGNvZGUgdG8KCXN1YnRyYWN0IGFic29sdXRlIHN5bWJvbC4KCSogb2JqLmggKHN0cnVjdCBmb3JtYXRfb3BzKTogQWRkIGZyb2JfZmlsZV9iZWZvcmVfZml4LgoJKiBzdWJzZWdzLmMgKHNlY3Rpb25fc3ltYm9sKTogU2V0IEJTRl9TRUNUSU9OX1NZTSBmbGFnLgoJKiBzeW1ib2xzLmMgKFNfRk9SQ0VfUkVMT0MpOiBOZXcgZnVuY3Rpb24uCgkqIHN5bWJvbHMuaCAoU19GT1JDRV9SRUxPQyk6IERlY2xhcmUuCgkqIHdyaXRlLmMgKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBDaGFuZ2UgZGVmYXVsdC4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0FCUyk6IERlZmluZS4KCShUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TRUNUSU9OKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX1NBTUUpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IERlZmluZS4KCShUQ19WQUxJREFURV9GSVhfU1VCKTogRGVmaW5lLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoYWJzX3NlY3Rpb25fc3ltKTogTmV3IHZhcmlhYmxlLgoJKGFkanVzdF9yZWxvY19zeW1zKTogVXNlIFNfRk9SQ0VfUkVMT0MuICBSZW1vdmUgb2JqX2ZpeF9hZGp1c3RhYmxlCgljYWxsLiAgRG9uJ3Qgc3ltYm9sX21hcmtfdXNlZF9pbl9yZWxvYyBoZXJlLiAgU2ltcGxpZnkgbGlua19vbmNlIHRlc3RzLgoJRG9uJ3QgcHV0IHRoZSBhYnNvbHV0ZSBzZWN0aW9uIHN5bSBvbiBmaXh1cHMgaGVyZS4KCShmaXhfc2VnbWVudCk6IE5ldyBmdW5jdGlvbi4KCSh3cml0ZV9yZWxvY3MpOiBEb24ndCBjYWxsIGZpeHVwX3NlZ21lbnQgZnJvbSBoZXJlLgoJKHdyaXRlX29iamVjdF9maWxlKTogSW5zdGVhZCBjYWxsIHRjX2Zyb2JfZmlsZV9iZWZvcmVfZml4LAoJb2JqX2Zyb2JfZmlsZV9iZWZvcmVfZml4LCBhbmQgZml4X3NlZ21lbnQgcHJpb3IgdG8gc3ltYm9sIHRhYmxlIGNvZGUuCglEb24ndCBvdXRwdXQgdGhlIGFic29sdXRlIHNlY3Rpb24gc3ltYm9sLgoJKGZpeHVwX3NlZ21lbnQpOiBSZXdyaXRlLgoJKiB3cml0ZS5oIChhYnNfc2VjdGlvbl9zeW0pOiBEZWNsYXJlLgoJKiBjb25maWcvb2JqLWFvdXQuYyAob2JqX2FvdXRfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBSZW5hbWUgZnJvbQoJb2JqX2FvdXRfZnJvYl9maWxlLgoJKGFvdXRfZm9ybWF0X29wcyk6IEFkanVzdCB0byBzdWl0LgoJKiBjb25maWcvb2JqLWFvdXQuaCAob2JqX2Zyb2JfZmlsZSk6IERvbid0IGRlZmluZS4KCShvYmpfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBEZWZpbmUuCgkob2JqX2FvdXRfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBSZW5hbWUgZnJvbSBvYmpfYW91dF9mcm9iX2ZpbGUuCgkoU19GT1JDRV9SRUxPQyk6IERlZmluZS4KCSogY29uZmlnL29iai1ib3V0LmggKFNfRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy9vYmotY29mZi5jIChjb2ZmX2Zvcm1hdF9vcHMpOiBJbml0IG5ldyBmaWVsZC4KCSogY29uZmlnL29iai1jb2ZmLmg6IEZvcm1hdHRpbmcgZml4ZXMuCgkob2JqX3NlY19zeW1fb2tfZm9yX3JlbG9jKTogRGVmaW5lLgoJKFNfRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy9vYmotZWNvZmYuYyAoZWNvZmZfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBTcGxpdCBvdXQgLi4KCShlY29mZl9mcm9iX2ZpbGUpOiAuLiBmcm9tIGhlcmUuCgkoZWNvZmZfZm9ybWF0X29wcyk6IEFkZCBuZXcgZnVuY3Rpb24uCgkqIGNvbmZpZy9vYmotZWNvZmYuaCAoZWNvZmZfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBEZWNsYXJlLgoJKG9ial9mcm9iX2ZpbGVfYmVmb3JlX2ZpeCk6IERlZmluZS4KCSogY29uZmlnL29iai1lbGYuYyAoZWxmX2Zvcm1hdF9vcHMpOiBJbml0IG5ldyBmaWVsZC4KCSogY29uZmlnL29iai1lbGYuaCAob2JqX3NlY19zeW1fb2tfZm9yX3JlbG9jKTogRXhwYW5kIGNvbW1lbnQuCgkqIGNvbmZpZy9vYmotaWVlZS5oOiBGb3JtYXR0aW5nIGZpeGVzLgoJKFNfRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy9vYmotbXVsdGkuaCAob2JqX2Zyb2JfZmlsZV9iZWZvcmVfZml4KTogRGVmaW5lLgoJKiBjb25maWcvb2JqLXZtcy5oIChTX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtYWxwaGEuYyAobWRfYXBwbHlfZml4Myk6IENvcnJlY3QgR1BESVNQIGNvbW1lbnQuCgkoYWxwaGFfZm9yY2VfcmVsb2NhdGlvbik6IFVzZSBTX0ZPUkNFX1JFTE9DLCBhbmQgZG9uJ3QgcmV0dXJuIDAKCWZvciBCRkRfUkVMT0NfMzIgYW5kIEJGRF9SRUxPQ182NC4KCShhbHBoYV9maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSBleHRlcm4gYW5kIHdlYWsgdGVzdHMuCgkoYWxwaGFfYmVmb3JlX2ZpeCk6IFJlbmFtZSBmcm9tIGFscGhhX2FkanVzdF9zeW10YWIuCgkoYWxwaGFfYWRqdXN0X3JlbG9jcyk6IFJlbmFtZSBmcm9tIGFscGhhX2FkanVzdF9zeW10YWJfcmVsb2NzLgoJKiBjb25maWcvdGMtYWxwaGEuaCAoc3RydWN0IGZpeCwgc3RydWN0IGFscGhhX3JlbG9jX3RhZyk6IERlY2xhcmUuCgkoVENfVkFMSURBVEVfRklYKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OLCB0Y19maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkodGNfYWRqdXN0X3N5bXRhYik6IERvbid0IGRlZmluZS4KCShhbHBoYV9hZGp1c3Rfc3ltdGFiKTogRG9uJ3QgZGVjbGFyZS4KCSh0Y19mcm9iX2ZpbGVfYmVmb3JlX2ZpeCk6IERlZmluZS4KCShhbHBoYV9iZWZvcmVfZml4KTogRGVjbGFyZS4KCShUQ19JTklUX0ZJWF9EQVRBKTogVHdlYWsgcGFyYW0gbmFtZXMuCgkqIGNvbmZpZy90Yy1hcmMuYzogSW5jbHVkZSAic3RydWMtc3ltYm9sLmgiLgoJKG1kX3BjcmVsX2Zyb20pOiBSZW1vdmUgdW5kZWZpbmVkIHN5bSBmdWRnZS4KCShtZF9hcHBseV9maXgzKTogUmVtb3ZlICp2YWxQIGZ1ZGdlcyBhbmQgY29kZSB0byBzdWJ0cmFjdCBhYnMgc3ltLgoJRG9uJ3Qgc2V0IGZ4X2FkZG51bWJlci4KCSh0Y19nZW5fcmVsb2MpOiBSZW1vdmUgc3B1cmlvdXMgZnhfYWRkbnVtYmVyIGNvbW1lbnQuCgkqIGNvbmZpZy90Yy1hcmMuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCSogY29uZmlnL3RjLWFybS5jIChtZF9hcHBseV9maXgzIDxjYXNlIEJGRF9SRUxPQ19BUk1fR09UUEM+KTogUmVtb3ZlLgoJKHRjX2dlbl9yZWxvYyk6IEZ1ZGdlIEFSTV9HT1RQQyBhZGRlbmQuCgkoYXJtX3ZhbGlkYXRlX2ZpeCk6IFJldHVybiB2b2lkLgoJKGFybV9maXhfYWRqdXN0YWJsZSA8ZWxmIHZlcnNpb24+KTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4KCUFkZCBwbHQgYW5kIGdvdCByZWxvYyB0ZXN0cy4KCShhcm1fZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWFybS5oIChzdHJ1Y3QgZml4KTogRm9yd2FyZCBkZWNsYXJlLgoJKFRDX1ZBTElEQVRFX0ZJWCk6IE5vIGxvbmdlciBzZXQgYWRkX3N5bWJvbFAuCgkoYXJtX3ZhbGlkYXRlX2ZpeCk6IEFkanVzdCBkZWNsYXJhdGlvbi4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OIDxwZSB2ZXJzaW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBUd2VhayBwYXJhbSBuYW1lLgoJKFRDX0lOSVRfRklYX0RBVEEpOiBMaWtld2lzZS4KCShvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBDYWxsIGFybV9maXhfYWRqdXN0YWJsZS4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSogY29uZmlnL3RjLWF2ci5jIChtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4KCVJlbW92ZSAqdmFsUCBmdWRnZXMgYW5kIGNvZGUgdG8gc3VidHJhY3QgYWJzIHN5bS4gIERvbid0IHNldAoJZnhfYWRkbnVtYmVyLgoJKiBjb25maWcvdGMtYXZyLmg6IEZvcm1hdHRpbmcuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCSogY29uZmlnL3RjLWNyaXMuYyAodGNfZ2VuX3JlbG9jKTogRG9uJ3QgdXNlIGZ4X2FkZG51bWJlci4KCShtZF9hcHBseV9maXgzKTogUmVtb3ZlIGNvZGUgdG8gc3VidHJhY3QgYWJzIHN5bS4KCShtZF9jcmlzX2ZvcmNlX3JlbG9jYXRpb24pOiBVcGRhdGUgY29tbWVudC4gIENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWNyaXMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoSVNfQ1JJU19QSUNfUkVMT0MsIHRjX2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgkoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiwgd2VhayB0ZXN0cy4KCSogY29uZmlnL3RjLWQxMHYuYyAodGNfZ2VuX3JlbG9jKTogRG9uJ3QgZmlkZGxlIGFkZHJlc3Mgb2YKCUJGRF9SRUxPQ19WVEFCTEVfSU5IRVJJVCByZWxvY3MuICBEb24ndCB1c2UgZnhfYWRkbnVtYmVyLgoJKG1kX2FwcGx5X2ZpeDMpOiBEb24ndCBjYXN0IHZhbFAgcG9pbnRlciB0eXBlLiAgUmVtb3ZlICp2YWxQIGZ1ZGdlcwoJYW5kIGNvZGUgdG8gc3VidHJhY3QgYWJzIHN5bS4KCShkMTB2X2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiwgd2VhaywgU0VDX01FUkdFIHRlc3RzLgoJKGQxMHZfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWQxMHYuaDogRG9uJ3QgaW5jbHVkZSB3cml0ZS5oLgoJKHN0cnVjdCBmaXgpOiBJbnN0ZWFkLCBmb3J3YXJkIGRlY2xhcmUuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZXMuCgkobWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogVXNlICJzdHJ1Y3QgZml4IiBpbnN0ZWFkIG9mICJmaXhTIi4KCShkMTB2X2ZpeF9hZGp1c3RhYmxlKTogTGlrZXdpc2UuCgkob2JqX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBUd2VhayBwYXJhbSBuYW1lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1kMzB2LmMgKHRjX2dlbl9yZWxvYyk6IERvbid0IHVzZSBmeF9hZGRudW1iZXIuCgkobWRfYXBwbHlfZml4Myk6IERvbid0IGNhc3QgdmFsUCBwb2ludGVyIHR5cGUuICBSZW1vdmUgKnZhbFAgZnVkZ2VzCglhbmQgY29kZSB0byBzdWJ0cmFjdCBhYnMgc3ltLgoJKiBjb25maWcvdGMtZDMwdi5oOiBEb24ndCBpbmNsdWRlIHdyaXRlLmguCgkoc3RydWN0IGZpeCk6IEluc3RlYWQsIGZvcndhcmQgZGVjbGFyZS4KCShNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBUd2VhayBwYXJhbSBuYW1lcy4KCShtZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiBVc2UgInN0cnVjdCBmaXgiIGluc3RlYWQgb2YgImZpeFMiLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1kbHguYyAobWRfZGx4X2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkobWRfZGx4X2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdCBmb3IgTlVMTCBmeF9hZGRzeS4KCShtZF9hcHBseV9maXgzKTogTm8gbmVlZCB0byB0ZXN0IGZ4X3BjcmVsIGJlZm9yZSBzZXR0aW5nIGZ4X2RvbmUuCgkodGNfZ2VuX3JlbG9jKTogRG9uJ3QgZmlkZGxlIHdpdGggQkZEX1JFTE9DX1ZUQUJMRV9JTkhFUklUIHJlbG9jcy4KCUFkanVzdCB0aGUgYWRkcmVzcyBmb3IgQkZEX1JFTE9DX1ZUQUJMRV9FTlRSWSwgbm90IHRoZSBhZGRlbmQuCglEb24ndCB1c2UgZnhfYWRkbnVtYmVyLgoJKiBjb25maWcvdGMtZGx4Lmg6IERvbid0IGluY2x1ZGUgd3JpdGUuaC4KCShtZF9jb252ZXJ0X2ZyYWcpOiBXZSdyZSBub3QgYWxwaGEgdHdpY2Ugb3Zlci4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkob2JqX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogRGVmaW5lLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShMT0NBTF9MQUJFTFNfRE9MTEFSKTogVW5kZWYgYWx3YXlzLgoJKiBjb25maWcvdGMtZnIzMC5jIChmcjMwX2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkoZnIzMF9maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSBleHRlcm4sIHdlYWsgdGVzdHMuCgkqIGNvbmZpZy90Yy1mcjMwLmggKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUuCgkoc3RydWN0IGZpeCk6IEZvcndhcmQgZGVjbGFyZS4KCShNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBUd2VhayBwYXJhbSBuYW1lLiAgUmVtb3ZlIGR1cGxpY2F0ZS4KCSogY29uZmlnL3RjLWZydi5jIChmcnZfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCShmcnZfZml4X2FkanVzdGFibGUpOiBEb24ndCBkbyBleHRlcm4sIHdlYWsgdGVzdHMuCgkqIGNvbmZpZy90Yy1mcnYuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZS4KCShzdHJ1Y3QgZml4KTogRm9yd2FyZCBkZWNsYXJlLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuICBSZW1vdmUgZHVwbGljYXRlLlwKCSogY29uZmlnL3RjLWg4MzAwLmMgKG1kX2FwcGx5X2ZpeDMpOiBEb24ndCBjYXN0IHZhbFAgcG9pbnRlciB0eXBlLgoJKiBjb25maWcvdGMtaDgzMDAuaCAoc3RydWN0IGZpeCk6IEZvcndhcmQgZGVjbGFyZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1ocHBhLmMgKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgc3VidHJhY3Rpb24gb2Ygc3ltIHZhbHVlLgoJKGhwcGFfZml4X2FkanVzdGFibGUpOiBEb24ndCB0ZXN0IGV4dGVybiBvciB3ZWFrLiAgRG9uJ3QKCXN5bWJvbF9tYXJrX3VzZWRfaW5fcmVsb2MuCgkoaHBwYV9mb3JjZV9yZWxvY2F0aW9uKTogVXNlIFNfRk9SQ0VfUkVMT0MgaW5zdGVhZCBvZiBTX0lTX0VYVEVSTkFMCglhbmQgU19JU19XRUFLLgoJKiBjb25maWcvdGMtaHBwYS5oIChFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUKCShUQ19GT1JDRV9SRUxPQ0FUSU9OLCBUQ19JTklUX0ZJWF9EQVRBKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NFQ1RJT04pOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKiBjb25maWcvdGMtaTM3MC5jIChtZF9hcHBseV9maXgzKTogUmVtb3ZlICp2YWxQIGZ1ZGdlcyBhbmQgY29kZQoJdG8gc3VidHJhY3QgYWJzIHN5bS4KCSogY29uZmlnL3RjLWkzNzAuaDogUmVtb3ZlIGlmZGVmIE9CSl9FTEYgdGVzdHMuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHRjX2kzODZfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgd2VhaywgZXh0ZXJuIHRlc3RzLgoJKG1kX2FwcGx5X2ZpeDMpOiBUZXN0IGZ4X2FkZHN5LCBub3QgZnhfcGNyZWwuCgkoaTM4Nl9mb3JjZV9yZWxvY2F0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvdGMtaTM4Ni5oIChUQ19DT0ZGX0ZJWDJSVFlQRSk6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoVENfVkFMSURBVEVfRklYKTogTGlrZXdpc2UuCgkoVENfRklYX0FESlVTVEFCTEUpOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04gPGVsZiB2ZXJzaW9uPik6IENhbGwgaTM4Nl9mb3JjZV9yZWxvY2F0aW9uLgoJKGkzODZfZm9yY2VfcmVsb2NhdGlvbik6IERlY2xhcmUuCgkoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04gPGNvZmYgdmVyc2lvbj4pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkqIGNvbmZpZy90Yy1pODYwLmMgKG1kX2FwcGx5X2ZpeDMpOiBEb24ndCBjYXN0IHZhbFAgcG9pbnRlciB0eXBlLgoJKiBjb25maWcvdGMtaTg2MC5oIChNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtaTk2MC5jIChyZWxvY19jYWxsaik6IFJlbW92ZSBkZWNsYXJhdGlvbi4gIFJldHVybiBmYWxzZS4KCShtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4gIE1vdmUgY29kZSBoZXJlIGZyb20KCW9sZCBmaXh1cF9zZWdtZW50LiAgTm8gbmVlZCB0byB0ZXN0IGZ4X3BjcmVsIGJlZm9yZSBzZXR0aW5nIGZ4X2RvbmUuCgkoaTk2MF92YWxpZGF0ZV9maXgpOiBSZW1vdmUgYWRkX3N5bWJvbFBQIGFyZyBhbmQgYWRkX3N5bWJvbFAgbWFjcm8uCglVc2UgZnhfYWRkc3kgaW5zdGVhZCBvZiBhZGRfc3ltYm9sUCwgYXNfYmFkX3doZXJlIGluc3RlYWQgb2YgYXNfYmFkLgoJUmVtb3ZlICNpZiAwIGNvZGUuICBJbnZlcnQgcmV0dXJuIGJvb2xlYW4uCgkqIGNvbmZpZy90Yy1pOTYwLmggKFRDX0NPVU5UX1JFTE9DKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19DT0ZGX0ZJWDJSVFlQRSwgVENfQURKVVNUX1JFTE9DX0NPVU5ULCBUQ19WQUxJREFURV9GSVgpOiBMaWtld2lzZS4KCSh0Y19oZWFkZXJzX2hvb2ssIHRjX2NvZmZfZml4MnJ0eXBlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKHRjX2NvZmZfc2l6ZW1hY2hkZXApOiBQcm90b3R5cGUuCgkoaTk2MF9oYW5kbGVfYWxpZ24pOiBMaWtld2lzZS4KCShpOTYwX3ZhbGlkYXRlX2ZpeCk6IEFkanVzdCBkZWNsYXJhdGlvbi4KCShyZWxvY19jYWxsaik6IExpa2V3aXNlLgoJKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fQUJTKTogRGVmaW5lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGlhNjRfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCSogY29uZmlnL3RjLWlhNjQuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0xPQ0FMKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSogY29uZmlnL3RjLWlwMmsuYyAoaXAya19mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKiBjb25maWcvdGMtaXAyay5oIChNRF9BUFBMWV9GSVgzKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy1tMzJyLmMgKG0zMnJfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwgU19GT1JDRV9SRUxPQy4KCShtMzJyX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdCBleHRlcm4sIHdlYWsuCgkqIGNvbmZpZy90Yy1tMzJyLmggKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZS4KCSh0Y19mcm9iX2ZpbGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZnJvYl9maWxlX2JlZm9yZV9maXgpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtbTY4aGMxMS5jICh0Y19nZW5fcmVsb2MpOiBTZXQgYWRkZW5kIHRvIHplcm8uICBBZGp1c3QKCUJGRF9SRUxPQ19WVEFCTEVfRU5UUlkgYWRkcmVzcy4KCSh0Y19tNjhoYzExX2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkodGNfbTY4aGMxMV9maXhfYWRqdXN0YWJsZSk6IERvbid0IHRlc3QgcmVsYXhhYmxlX3N5bWJvbC4KCShtZF9hcHBseV9maXgzKTogUmVtb3ZlICp2YWxQIGZ1ZGdlcyBhbmQgY29kZSB0byBzdWJ0cmFjdCBhYnMgc3ltLgoJUmVtb3ZlIGR1cGxpY2F0ZWQgZnhfZG9uZSBjb2RlLgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKiBjb25maWcvdGMtbTY4ay5jICh0Y19tNjhrX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdAoJcmVsYXhhYmxlX3N5bWJvbC4KCSogY29uZmlnL3RjLW02OGsuaCAoVENfQ09GRl9GSVgyUlRZUEUpOiBUd2VhayBwYXJhbSBuYW1lLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCk6IERvbid0IGRlZmluZS4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkqIGNvbmZpZy90Yy1tY29yZS5jIChtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4KCVJlbW92ZSBmeF9hZGRzeSB0ZXN0cy4KCShtY29yZV9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1jb3JlX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgdGVzdCBmeF9hZGRzeS4KCSogY29uZmlnL3RjLW1jb3JlLmggKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKGVudW0gbWlwc19waWNfbGV2ZWwpOiBNb3ZlIHRvIHRjLW1pcHMuaC4KCShtaXBzX3BpYyk6IE5vIGxvbmdlciBzdGF0aWMuCgkobWlwc19mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1pcHNfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgZXh0ZXJuLCB3ZWFrIHRlc3RzLgoJKiBjb25maWcvdGMtbWlwcy5oIChlbnVtIG1pcHNfcGljX2xldmVsKTogRGVjbGFyZS4KCShtaXBzX3BpYyk6IERlY2xhcmUuCgkodGNfZnJvYl9maWxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2Zyb2JfZmlsZV9iZWZvcmVfZml4KTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShFWFRFUk5fRk9SQ0VfUkVMT0MpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1tbWl4LmMgKG1kX2FwcGx5X2ZpeDMpOiBSZXBsYWNlIHJlYWxfcmVnX3NlY3Rpb24gdGVzdHMKCXdpdGggcmVnX3NlY3Rpb24gdGVzdHMuICBTZXQgZnhfZG9uZSBpbnN0ZWFkIG9mIGNhbGxpbmcKCXN5bWJvbF9jbGVhcl91c2VkX2luX3JlbG9jIG9uIGJhZCByZWxvY3MuCgkodGNfZ2VuX3JlbG9jKTogWmVybyBmeF9hZGRzeSBvbiBiYWQgcmVsb2NzLgoJKG1taXhfZm9yY2VfcmVsb2NhdGlvbik6IFJlbW92ZSB3ZWFrIHN5bSB0ZXN0LiAgQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1taXhfYWRqdXN0X3N5bXRhYik6IFNpbXBsaWZ5IGxpc3QgaGFuZGxpbmcuICBBYm9ydCBvbiBhbnkKCW5vbnNlbnNlLgoJKiBjb25maWcvdGMtbW1peC5oICh0Y19maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSB3ZWFrIHRlc3RzLiAgQ2hlY2sKCUJGRF9SRUxPQ19NTUlYX0xPQ0FMLgoJKHRjX2Zyb2Jfc3ltYm9sKTogS2VlcCB1c2VyIGRlZmluZWQgc3ltcyBpbiByZWdfc2VjdGlvbi4gIERvbid0IHB1bnQuCgkoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkodGNfZnJvYl9maWxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2Zyb2JfZmlsZV9iZWZvcmVfZml4KTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSogY29uZmlnL3RjLW1uMTAzMDAuYyAobW4xMDMwMF9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJUmVtb3ZlIFNFQ19DT0RFIGNoZWNrcy4KCShtbjEwMzAwX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4KCSogY29uZmlnL3RjLW1uMTAzMDAuaCAoRVhURVJOX0ZPUkNFX1JFTE9DKTogRGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBUd2VhayBwYXJhbSBuYW1lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lIHRvIGhhbmRsZSBTRUNfQ09ERS4KCSogY29uZmlnL3RjLW5zMzJrLmggKFRDX0ZJWF9EQVRBX1BSSU5UKTogVHdlYWsgcGFyYW0gbmFtZS4KCSogY29uZmlnL3RjLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2ZvcmNlX3JlbG9jYXRpb24pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkob3BlbnJpc2NfZml4X2FkanVzdGFibGUpOiBEb24ndCB0ZXN0IGZ4X2FkZHN5LgoJKiBjb25maWcvdGMtb3BlbnJpc2MuaCAoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogUmVtb3ZlIGR1cGxpY2F0ZS4gVHdlYWsgcGFyYW0gbmFtZS4KCSogY29uZmlnL3RjLW9yMzIuYyAobWRfYXBwbHlfZml4Myk6IERvbid0IGNhc3QgdmFsUCBwb2ludGVyIHR5cGUuCgkodGNfZ2VuX3JlbG9jKTogRG9uJ3QgZmlkZGxlIHdpdGggQkZEX1JFTE9DX1ZUQUJMRV9JTkhFUklUIHJlbG9jcy4KCUFkanVzdCB0aGUgYWRkcmVzcyBmb3IgQkZEX1JFTE9DX1ZUQUJMRV9FTlRSWSwgbm90IHRoZSBhZGRlbmQuCgkqIGNvbmZpZy90Yy1vcjMyLmggKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1wai5jIChtZF9hcHBseV9maXgzKTogRG9uJ3QgY2FzdCB2YWxQIHBvaW50ZXIgdHlwZS4KCURvbid0IHN1YnRyYWN0IHN5bWJvbCB2YWx1ZS4KCSogY29uZmlnL3RjLXBqLmggKG1kX3BjcmVsX2Zyb20pOiBUd2VhayBwYXJhbSBuYW1lLgoJKEVYVEVSTl9GT1JDRV9SRUxPQyk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19mcm9iX3N5bWJvbCA8Y29mZiB2ZXJzaW9uPik6IElnbm9yZSBhYnNvbHV0ZQoJc2VjdGlvbiBzeW0uCgkocHBjX2ZvcmNlX3JlbG9jYXRpb24gPGNvZmYgdmVyc2lvbj4pOiBDYWxsIFNfRk9SQ0VfUkVMT0MuCgkocHBjX2ZvcmNlX3JlbG9jYXRpb24gPGVsZiB2ZXJzaW9uPik6IE5ldy4KCShwcGNfZml4X2FkanVzdGFibGUgPGVsZiB2ZXJzaW9uPik6IFJlbW92ZSBleHRlcm4gYW5kIHdlYWsgdGVzdHMuCgkobWRfYXBwbHlfZml4Myk6IERvbid0IHN1YnRyYWN0IHN5bWJvbCB2YWx1ZXMgZm9yIEVMRi4gIFVwZGF0ZQoJY29tbWVudHMuICBEb24ndCBzdWJ0cmFjdCBmeF9zdWJzeSBhcyB0aGF0IGlzIGFscmVhZHkgZG9uZS4KCSogY29uZmlnL3RjLXBwYy5oICh0Y19maXhfYWRqdXN0YWJsZSk6IFR3ZWFrIHBhcmFtIG5hbWUuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogTGlrZXdpc2UuCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IERlZmluZSBmb3IgYm90aCBFTEYgYW5kIFhDT0ZGIGFzIGNhbGxpbmcKCXBwY19mb3JjZV9yZWxvY2F0aW9uLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fU0VDVElPTik6IERlbGV0ZS4KCShUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKiBjb25maWcvdGMtczM5MC5jOiAjaW5jbHVkZSAiZHdhcmYyZGJnLmgiLgoJKHMzOTBfaW5zbik6IFJlbW92ZSBleGNlc3MgcGFyZW5zLgoJKHRjX3MzOTBfZml4X2FkanVzdGFibGUpOiBSZW1vdmUgZXh0ZXJuLCB3ZWFrLCBTRUNfTUVSR0UgdGVzdHMuCgkodGNfczM5MF9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKG1kX2FwcGx5X2ZpeDMpOiBBZGQgQVRUUklCVVRFX1VOVVNFRCBvbiAic2VnIi4gIEFib3J0IHdoZW4gZnhfc3Vic3kKCW5vbi1OVUxMLiAgRG9uJ3Qgc3VidHJhY3Qgb2ZmIGZ4X2FkZHN5IHZhbHVlLgoJKiBjb25maWcvdGMtczM5MC5oIChUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTiwgTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GSVhfQURKVVNUQUJMRSk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1zaC5jIChTV0lUQ0hfVEFCTEVfQ09OUyk6IE1vdmUgdG8gdGMtc2guaC4KCShTV0lUQ0hfVEFCTEUpOiBMaWtld2lzZS4KCShzaF9mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKHNoX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlICJyZXR1cm4gMSIgY2FzZXMgaGFuZGxlZCBieSB0aGUgZGVmYXVsdC4KCVJlcGxhY2UgVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQIHdpdGggcmVsb2MgdHlwZSB0ZXN0cy4KCShtZF9hcHBseV9maXgzIDxjYXNlIEJGRF9SRUxPQ18zMl9QTFRfUENSRUw+KTogU2ltcGxpZnksCglmeF9hZGRudW1iZXIgaXMgemVybyBvbiBlbnRyeS4gIFNhdmUgdmFsIGluIGZ4X2FkZG51bWJlci4KCSh0Y19nZW5fcmVsb2MpOiBEb24ndCBzdWJ0cmFjdCBmeF9zdWJzeS4KCSogY29uZmlnL3RjLXNoLmggKHN0cnVjdCBmaXgpOiBNb3ZlLgoJKG9ial9maXhfYWRqdXN0YWJsZSk6IERvbid0IGRlZmluZS4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRklYX0FESlVTVEFCTEUpOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lLgoJKFNXSVRDSF9UQUJMRV9DT05TKTogRGVmaW5lLgoJKFNXSVRDSF9UQUJMRSk6IERlZmluZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9TQU1FKTogRGVmaW5lLgoJKFRDX1ZBTElEQVRFX0ZJWF9TVUIpOiBEZWZpbmUuCgkoTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfQUJTKTogRGVmaW5lLgoJKiBjb25maWcvdGMtc2g2NC5oIChUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9MT0NBTCk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfU0FNRSk6IERlZmluZS4KCShUQ19WQUxJREFURV9GSVhfU1VCKTogRGVmaW5lLgoJKE1EX1BDUkVMX0ZST01fU0VDVElPTik6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChtZF9hcHBseV9maXgzKTogRG9uJ3Qgc3VidHJhY3Qgb2ZmIHN5bWJvbCB2YWx1ZS4KCSh0Y19nZW5fcmVsb2MpOiBVc2UgU19GT1JDRV9SRUxPQy4KCShlbGYzMl9zcGFyY19mb3JjZV9yZWxvY2F0aW9uKTogQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKiBjb25maWcvdGMtc3BhcmMuaCAoVENfRk9SQ0VfUkVMT0NBVElPTiA8Y29mZiB2ZXJzaW9uPik6IFJlbW92ZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OX0FCUyk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRG9uJ3QgZGVmaW5lLgoJKFRDX0ZPUkNFX1JFTE9DQVRJT05fTE9DQUwpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4gIFVzZSBTX0ZPUkNFX1JFTE9DLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZS4KCShUQ19GSVhfREFUQV9QUklOVCk6IFR3ZWFrIHBhcmFtIG5hbWUuCgkqIGNvbmZpZy90Yy10aWMzMC5jIChVU0VfU1RET1VUKTogRG9uJ3QgZGVmaW5lLgoJKG1kX3BhcnNlX29wdGlvbik6IFJlbW92ZSBzdHVwaWQgZGVidWcgY29kZS4KCSh0Y19nZW5fcmVsb2MpOiBEb24ndCB1c2UgZnhfYWRkbnVtYmVyLgoJKiBjb25maWcvdGMtdjg1MC5jICh2ODUwX2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4KCSh2ODUwX2ZvcmNlX3JlbG9jYXRpb24pOiBSZW1vdmUgd2VhayB0ZXN0LiAgQ2FsbCBTX0ZPUkNFX1JFTE9DLgoJKiBjb25maWcvdGMtdjg1MC5oIChvYmpfZml4X2FkanVzdGFibGUpOiBEb24ndCBkZWZpbmUuCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkLgoJKFRDX0ZJWF9BREpVU1RBQkxFKTogRG9uJ3QgZGVmaW5lLgoJKE1EX0FQUExZX1NZTV9WQUxVRSk6IERlZmluZSB0aGlzIGluc3RlYWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTiwgTURfUENSRUxfRlJPTV9TRUNUSU9OKTogVHdlYWsgcGFyYW0gbmFtZS4KCSogY29uZmlnL3RjLXZheC5oIChUQ19SRUxPQ19SVFNZTV9MT0NfRklYVVApOiBEb24ndCBkZWZpbmUuCgkoVENfRklYX0FESlVTVEFCTEUpOiBEb24ndCBkZWZpbmUuCgkoTURfQVBQTFlfU1lNX1ZBTFVFKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCSh0Y19maXhfYWRqdXN0YWJsZSk6IFJlbW92ZSBleHRlcm4gYW5kIHdlYWsgdGVzdHMuCgkqIGNvbmZpZy90Yy13NjUuaCAoc3RydWN0IGZpeCk6IEZvcndhcmQgZGVjbGFyZS4KCSogY29uZmlnL3RjLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZm9yY2VfcmVsb2NhdGlvbik6IENhbGwKCVNfRk9SQ0VfUkVMT0MuCgkoeHN0b3JteTE2X2ZpeF9hZGp1c3RhYmxlKTogUmVtb3ZlIGV4dGVybiBhbmQgd2VhayB0ZXN0cy4gIERvbid0CgljYWxsIHhzdG9ybXkxNl9mb3JjZV9yZWxvY2F0aW9uOyAgSW5zdGVhZCB0ZXN0IGZvciBGUFRSMTYgcmVsb2MuCgkoeHN0b3JteTE2X21kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgKnZhbFAgZnVkZ2VzIGFuZCBjb2RlIHRvIHN1YnRyYWN0CglhYnNvbHV0ZSBzeW1ib2wuCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuaCAoTURfQVBQTFlfRklYMyk6IERvbid0IGRlZmluZS4KCShNRF9BUFBMWV9TWU1fVkFMVUUpOiBEZWZpbmUuCgkob2JqX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgZGVmaW5lLgoJKHRjX2ZpeF9hZGp1c3RhYmxlKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBSZW1vdmUgZHVwbGljYXRlLiAgVHdlYWsgcGFyYW0gbmFtZS4KCjIwMDItMDktMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19mcm9iX3N5bWJvbCk6IEZvcm1hdHRpbmcsIHdhcm5pbmcgZml4LgoJKHBwY19maXhfYWRqdXN0YWJsZSA8Y29mZiB2ZXJzaW9uPik6IENsZWFudXAuCgoJKiBjb25maWcvdGMtcHBjLmMgKFBQQ19ISUdIRVIsIFBQQ19ISUdIRVNUKTogRml4IHdhcm5pbmcuCgkobWRfcGFyc2Vfb3B0aW9uKTogTm8gLWE2NCB3aXRob3V0IEJGRDY0LgoJKHBwY19zZXRfY3B1KTogU2VsZWN0IGFwcHJvcHJpYXRlIGNwdSB3aGVuIHBwY19vYmo2NC4KCShwcGNfYXJjaCk6IFVzZSBiZmRfbWFjaF9yczZrIGZvciBiZmRfYXJjaF9yczYwMDAuCgoyMDAyLTA5LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9iZWdpbik6IERvIG5vdCBpbnNlcnQgbm9uLUJvb2tFMzIKCWluc3RydWN0aW9ucyBpbnRvIHRoZSBoYXNoIHRhYmxlIGlmIHRoZSB0YXJnZXQgY3B1IGlzIHRoZSBCb29rRTMyLgoKMjAwMi0wOC0zMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogcmVhZC5jIChkb19hbGlnbik6IFVzZSBBVFRSSUJVVEVfVU5VU0VEX0xBQkVMIGZvciBsYWJlbCwgbm90CglBVFRSSUJVVEVfVU5VU0VELgoKMjAwMi0wOC0yOCAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQHJlZGhhdC5jb20+CgoJKiB0Yy12ODUwLmMgKHY4NTBfcmVsYXgpOiBEZWNsYXJlLgoJKHY4NTBfbG9uZ2NvZGUpOiBOZXcgcm91dGluZS4KCSh2ODUwX2hhbmRsZV9hbGlnbik6IE5ldyByb3V0aW5lLgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCBsb25nY2FsbCBhbmQgbG9uZ2p1bXAuCgkobWRfcGFyc2Vfb3B0aW9uKTogQ2hlY2sgZm9yIHJlbGF4IG9wdGlvbi4KCSh0Y19nZW5fcmVsb2MpOiBIYW5kbGUgQkZEX1JFTE9DX1Y4NTBfTE9OR0NBTEwsCglCRkRfUkVMT0NfVjg1MF9MT05HSlVNUCwgYW5kIEJGRF9SRUxPQ19WODUwX0FMSUdOLgoJKG1kX2FwcGx5X2ZpeDMpOiBMaWtld2lzZS4KCSh2ODUwX2ZvcmNlX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCSh2ODUwX2NvbW0pOiBDaGFuZ2UgdGhlIGN1cnJlbnQgc2VjdGlvbi4KCShtZF9hc3NlbWJsZSk6IEVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IHZhbHVlIGlzIHB1dCBpbiB0aGUKCWZpeHVwLgoJKHY4NTBfc2RhdGEsIHY4NTBfdGRhdGEsIHY4NTBfemRhdGEsIHY4NTBfc2Jzcywgdjg1MF90YnNzLAoJdjg1MF96YnNzLCB2ODUwX3Jvc2RhdGEsIHY4NTBfcm96ZGF0YSk6IEZpeCBzZWN0aW9uIGJvb2sga2VlcGluZy4KCVJlbW92ZSByZWR1bmRhbnQgdjg1MGVhIHN1cHBvcnQuCgkqIHRjLXY4NTAuaCAoSEFORExFX0FMSUdOKTogRGVmaW5lLgoJKHY4NTBfaGFuZGxlX2FsaWduKTogRGVjbGFyZS4KCSogZG9jL2Mtdjg1MC5jOiBEb2N1bWVudCAtbXJlbGF4LCAubG9uZ2NhbGwgYW5kIC5sb25nanVtcC4KCjIwMDItMDgtMjggIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHRpYzR4LWNvZmYqIGFuZCBjNHgtY29mZiotY29mZi1jb2ZmIHRhcmdldHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTkVXUzogTWVudGlvbiBuZXcgcG9ydC4KCjIwMDItMDgtMjggIE1pY2hhZWwgSGF5ZXMgPG0uaGF5ZXNAZWxlYy5jYW50ZXJidXJ5LmFjLm56PgoKCSogY29uZmlnL29iai1jb2ZmLmM6IEFkZCBzZGVmIGRlZmluaXRpb24uCgkqIGNvbmZpZy9vYmotY29mZi5oOiBBZGQgdGljNHggaW5jbHVkZSBmaWxlIGFuZCBzZXQKCXRhcmdldCBmb3JtYXQuCgkqIGNvbmZpZy90Yy10aWM0eC5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLXRpYzR4Lmg6IE5ldyBmaWxlLgoKMjAwMi0wOC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKEJGRF9GQVNUX1NFQ1RJT05fRklMTCk6IFJlbW92ZSB1bnVzZWQgbWFjcm8uCgkoVENfQURKVVNUX1JFTE9DX0NPVU5UKTogVHdlYWsgcGFyYW0gbmFtZS4KCShUQ19GT1JDRV9SRUxPQ0FUSU9OLCBUQ19GT1JDRV9SRUxPQ0FUSU9OX1NFQ1RJT04pOiBMaWtld2lzZS4KCShUQ19GSVhfQURKVVNUQUJMRSwgTURfUENSRUxfRlJPTV9TRUNUSU9OKTogTGlrZXdpc2UuCgkoUkVMT0NfRU5VTSk6IERlZmluZS4KCShmaXhfbmV3X2ludGVybmFsKTogVXNlIFJFTE9DX0VOVU0uCgkoZml4X25ldywgZml4X25ld19leHApOiBMaWtld2lzZS4KCShhZGp1c3RfcmVsb2Nfc3ltcyk6IENvbW1lbnQuICBSZW1vdmUgdW5uZWNlc3NhcnkgdGVzdHMgb24gc3ltICE9IE5VTEwuCglSZXBsYWNlIGdvdG9zIHdpdGggY29udGludWUuCgkod3JpdGVfcmVsb2NzKTogRm9ybWF0dGluZy4gIEF2b2lkIHN5bWJvbCBsb29wcyBpbgoJUkVMT0NfRVhQQU5TSU9OX1BPU1NJQkxFIGNhc2UgdG9vLiAgUmVwb3J0IGJmZF9yZWxvY19vdXRvZnJhbmdlCgllcnJvcnMsIGFuZCBlcnJvciBudW1iZXIgaW4gb3RoZXIgY2FzZXMuCgkoZml4dXBfc2VnbWVudCk6IFJlbW92ZSBwYXJhbSBuYW1lcyBmcm9tIHByb3RvdHlwZS4gIFJlbmFtZQoJInRoaXNfc2VnbWVudF90eXBlIiB0byAidGhpc19zZWdtZW50Ii4gIFVwZGF0ZSBsaW5rcmVsYXggY29tbWVudC4KCVJlbW92ZSAic2l6ZSwgInBsYWNlIiBhbmQgIndoZXJlIiBsb2NhbCB2YXJzLiAgRm9ybWF0dGluZy4gIFVwZGF0ZQoJIm5vIHN5bWJvbCIgY29tbWVudC4gIFJlbW92ZSAjaWYgMCBhbmQgI2lmIDEuCgoJKiBhcHAuYyAoZG9fc2NydWJfY2hhcnMpOiBEb24ndCB0ZXN0IElHTk9SRV9OT05TVEFOREFSRF9FU0NBUEVTLiAgVGlkeS4KCjIwMDItMDgtMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkd2FyZjJkYmcuYzogQWx3YXlzIGluY2x1ZGUgZHdhcmYyZGJnLmguCgkoZHdhcmYyX2RpcmVjdGl2ZV9maWxlKTogQWRqdXN0IGR1bW15IHZlcnNpb24gYXJncy4KCSogZWNvZmYuYyAoZWNvZmZfZGlyZWN0aXZlX3dlYWtleHQpOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCSogZXhwci5jIChjbGVhbl91cF9leHByZXNzaW9uIDxPX3N1YnRyYWN0Pik6IEFsbG93IHN1YnRyYWN0aW9uCgl3aGVuIHN5bWJvbCB2YWx1ZXMgZGlmZmVyLgoJKiByZWFkLmMgKGRvX2FsaWduKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gbGFiZWwuCgkocHNldWRvX3NldCA8T19zdWJ0cmFjdD4pOiBSZW1vdmUgdW5uZWNlc3Nhcnkgc2VnbWVudCB0ZXN0LgoJKiBjb25maWcvb2JqLWJvdXQuYyAob2JqX3BzZXVkb190YWJsZSk6IFdhcm5pbmcgZml4LgoKMjAwMi0wOC0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy13NjUuYyAobWRfc2VjdGlvbl9hbGlnbik6IEZpeCB0eXBvLgoJKG1kX3BhcnNlX29wdGlvbik6IFJldHVybiAwLCBub3QgMS4KCjIwMDItMDgtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkb2MvYXMudGV4aW5mbyAoU2VjdGlvbik6IE5vdGUgdGhhdCBpZiAnQCcgaXMgYSBjb21tZW50CgljaGFyYWN0ZXIgdGhlbiBhbm90aGVyIHN5bWJvbCBpcyB1c2VkIHRvIHByZWZpeCB0aGUgc2VjdGlvbidzCgl0eXBlLgoKMjAwMi0wOC0yMiAgQ2hyaXN0aWFuIEdyb2Vzc2xlciA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGNvbmZpZy90Yy16OGsuYyAoZ2V0X29wZXJhbmRzKTogQWRqdXN0IHB0ciB2YXJpYWJsZSBhbHNvIGluCgkiY2FzZSAwIiBjYXNlLgoKMjAwMi0wOC0xMiAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIHNoLSoqLW50byogdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA4LTIxICBOaXRpbiAgR3VwdGEgIDxuaXRpbmdAbm9pZGEuaGNsdGVjaC5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuaCAoVENfTElOS1JFTEFYX0ZJWFVQKTogRGVmaW5lLgoKMjAwMi0wOC0yMSAgRWxlbmEgWmFubm9uaSAgPGV6YW5ub25pQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19jbGVhbnVwKTogRG8gc29tZXRoaW5nIG9ubHkgaWYgZm9ybWF0CglpcyBFTEYuCgkocHBjX2FwdWluZm9fc2VjdGlvbl9hZGQpOiBEZWZpbmUgb25seSBpZiBmb3JtYXQgaXMgRUxGLgoJKG1kX2Fzc2VtYmxlKTogRW1pdCBBUFVpbmZvIHNlY3Rpb24gb25seSBpZiBmb3JtYXQgaXMgRUxGLgoJRml4IGZvcm1hdHRpbmcuCgoyMDAyLTA4LTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWFyYy5jIChtZF9wc2V1ZG9fdGFibGUgPGR3YXJmMl9kaXJlY3RpdmVfZmlsZT4pOiBDYXN0LgoJKiBjb25maWcvdGMtZnJ2LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaHBwYS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWlhNjQuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pcDJrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTY4aGMxMS5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGsuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tbWl4LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbW4xMDMwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc3BhcmMuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy12ODUwLmM6IExpa2V3aXNlLgoKMjAwMi0wOC0yMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm8yKTogSW1wbGVtZW50IHJvdGF0ZXMgYnkgemVybyB1c2luZyBzaGlmdHMKCWJ5IHplcm8uCgoyMDAyLTA4LTE5ICBFbGVuYSBaYW5ub25pICA8ZXphbm5vbmlAcmVkaGF0LmNvbT4KCglGcm9tIG1hdHRoZXcgZ3JlZW4gIDxtcmdAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAoUFBDX09QQ09ERV9DTEFTU0lDKTogRW5hYmxlIHRoaXMgZXZlcnl3aGVyZQoJUFBDX09QQ09ERV9QUEMgaXMsIGV4Y2VwdCBmb3IgQm9va0UgYXJjaGl0ZWN0dXJlcy4KCShtZF9wYXJzZV9vcHRpb24pOiBBZGQgc3VwcG9ydCBmb3IgLW1zcGUuCgkobWRfc2hvd191c2FnZSk6IEFkZCAtbXNwZS4KCShtZF9wYXJzZV9vcHRpb24pOiBBZGQgc3VwcG9ydCBmb3IgLW1lNTAwIGFuZAoJLW1lNTAweDIgdG8gZ2VuZXJhdGUgY29kZSBmb3IgTW90b3JvbGEgZTUwMCBjb3JlIGNvbXBsZXguCgkobWRfc2hvd191c2FnZSk6IEFkZCAtbWU1MDAgYW5kIC1tZTUwMHgyLgoKCShQUENfQVBVSU5GT19JU0VMLCBQUENfQVBVSU5GT19QTVIsIFBQQ19BUFVJTkZPX1JGTUNJLAoJUFBDX0FQVUlORk9fQ0FDSEVMQ0ssIFBQQ19BUFVJTkZPX1NQRSwgUFBDX0FQVUlORk9fRUZTLAoJUFBDX0FQVUlORk9fQlJMT0NLKTogTmV3IG1hY3Jvcy4KCgkocHBjX2NsZWFudXApOiBOZXcgZnVuY3Rpb24uCgkocHBjX2FwdWluZm9fc2VjdGlvbl9hZGQpOiBOZXcgZnVuY3Rpb24uCgkoQVBVSUQpOiBOZXcgbWFjcm8uCgkobWRfYXNzZW1ibGUpOiBDb2xsZWN0IGluZm8gYW5kIHdyaXRlIHRoZSBBUFVpbmZvIHNlY3Rpb24uCgoJKiBjb25maWcvdGMtcHBjLmggKG1kX2NsZWFudXApOiBEZWZpbmUuCgkocHBjX2NsZWFudXApOiBFeHBvcnQuCgkoRUxGX1RDX1NQRUNJQUxfU0VDVElPTlMpOiBBZGQgLlBQQy5FTUIuYXB1aW5mbyBzZWN0aW9uLgoKMjAwMi0wOC0xNyAgU3RhbiBDb3ggIDxzY294QHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogTWFrZSBub24tc3RhdGljLgoJY29uZmlnL3RjLW1pcHMuYyAoc19jaGFuZ2Vfc2VjdGlvbik6IE5ldyBmdW5jdGlvbiB0byBzdXBwb3J0CglJUklYIC5zZWN0aW9uIHBzZXVkby1vcC4KCjIwMDItMDgtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtdjg1MC5jIChtZF9hc3NlbWJsZSk6IEZpeCBhc3NlbWJsaW5nIG9mICJjYWxsdCAweDNmIi4KCjIwMDItMDgtMTUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGRfamFscik6IE1ha2Ugc3VyZSB3ZSBnZW5lcmF0ZQoJdGhlIGZpeC11cCBhZ2FpbnN0IG9uIHRoZSByaWdodCBmcmFnLgoJKHNfY3BzZXR1cCk6IExpa2V3aXNlLiAgUGFyc2UgdGhpcmQgYXJndW1lbnQgYXMgZXhwcmVzc2lvbiwgdG8KCWhhbmRsZSBnbG9iYWwgc3ltYm9scyBhbmQgZm9yd2FyZC9iYWNrd2FyZCBsYWJlbHMgY29ycmVjdGx5LgoKMjAwMi0wOC0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWQuYyAoc3RyaW5nZXIpOiBDYXRjaCBhdHRlbXB0cyB0byBjcmVhdGUgc3RyaW5ncyBpbiB0aGUgYWJzCglzZWN0aW9uLgoKCSogY29uZmlnL3RjLWFscGhhLmM6IEZpeCBjb21waWxpbmcgZm9yIENPRkYgdGFyZ2V0cy4KCVNvbWUgbWlub3IgZm9ybWF0dGluZyB0aWR5dXBzLgoKMjAwMi0wOC0xMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBSZW1vdmUuCgkoVENfSEFORExFU19GWF9ET05FKTogRGVmaW5lIHRvIGxldCBtZF9hcHBseV9maXgzIHNldCBmeF9kb25lIGZsYWcKCWFjY29yZGluZyB0byB0aGUgcmVsb2MuCgkodGNfZml4X2FkanVzdGFibGUsIHRjX202OGhjMTFfZml4X2FkanVzdGFibGUpOiBEZWZpbmUuCgkoVENfRk9SQ0VfUkVMT0NBVElPTik6IERlZmluZS4KCSh0Y19tNjhoYzExX2ZvcmNlX3JlbG9jYXRpb24pOiBEZWNsYXJlLgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfcHNldWRvX3RhYmxlKTogQWRkIHJlbGF4IGNvbW1hbmQuCgkoc19tNjhoYzExX3JlbGF4KTogTmV3IGZ1bmN0aW9uIGZvciByZWxheCBncm91cC4KCShidWlsZF9pbnNuLCBidWlsZF9qdW1wX2luc24pOiBFbWl0IGEgTTY4SEMxMV9STF9KVU1QIHJlbG9jIGF0CgliZWdpbm5pbmcgb2YganVtcCBpbnN0cnVjdGlvbi4KCShtZF9wY3JlbF9mcm9tKTogUmVuYW1lIGZyb20gbWRfcGNyZWxfZnJvbV9zZWN0aW9uIGFuZCBmaXgKCWFkZHJlc3MgY29tcHV0YXRpb24uCgkodGMtZ2VuX3JlbG9jKTogVXBkYXRlLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogQ3JlYXRlIHRoZSBCRkRfUkVMT0NfMTZfUENSRUwgYXMKCVBDLXJlbGF0aXZlIGZpeHVwLgoJKHRjX202OGhjMTFfZm9yY2VfcmVsb2NhdGlvbik6IE5ldyBmdW5jdGlvbiwgaGFuZGxlIG5ldyByZWxvY3MuCgkodGNfbTY4aGMxMV9maXhfYWRqdXN0YWJsZSk6IE5ldyB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIGVub3VnaAoJcmVsb2MgZm9yIHRoZSBsaW5rZXIgcmVsYXggcGFzcy4KCShtZF9hcHBseV9maXgzKTogSGFuZGxlIE02OEhDMTFfUkxfSlVNUCwgTTY4SEMxMV9STF9HUk9VUAoJYW5kIFZUQUJMRSByZWxvY3MuCgoyMDAyLTA4LTEzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGNvbmZpZy90Yy1tNjhoYzExLmMgKG02OGhjMTFfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBOZXcgZnVuY3Rpb24uCgkobWRfcHNldWRvX3RhYmxlKTogQWRkIC5tb2RlLCAuZmFyIGFuZCAuaW50ZXJydXB0IHBzZXVkbyBvcC4KCShzX202OGhjMTFfbW9kZSk6IE5ldyBmdW5jdGlvbiBmb3IgLm1vZGUgcHNldWRvIG9wLgoJKHNfbTY4aGMxMV9tYXJrX3N5bWJvbCk6IE5ldyBmdW5jdGlvbiBmb3IgLmZhciBhbmQgLmludGVycnVwdAoJcHNldWRvIG9wLgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChlbGZfdGNfZmluYWxfcHJvY2Vzc2luZyk6IERlZmluZS4KCShtNjhoYzExX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogRGVjbGFyZS4KCjIwMDItMDgtMTMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuYyAobWRfYmVnaW4pOiBUYWtlIGludG8gYWNjb3VudCBhZGRpdGlvbmFsCglwYWdlIG9wZXJhbmQgZm9yIGNhbGwgaW5zdHJ1Y3Rpb24uCgkocHJpbnRfb3Bjb2RlX2Zvcm1hdCk6IExpa2V3aXNlLgoJKGNoZWNrX3JhbmdlKTogTGlrZXdpc2UgZm9yIHBhZ2UgcmFuZ2UgY2hlY2tpbmcuCgkoZ2V0X29wZXJhbmQpOiBEb24ndCBza2lwIGEgcG9zc2libGUgY29tbWEgaW4gb3BlcmFuZHMuCgkoZml4dXA4KTogR2VuZXJhdGUgQkZEX1JFTE9DX002OEhDMTFfUEFHRSByZWxvYy4KCShmaXh1cDE2KTogTGlrd2lzZSB3aXRoIEJGRF9SRUxPQ19NNjhIQzExX0xPMTYuCgkoZml4dXAyNCk6IE5ldyB0byBoYW5kbGUgY2FsbCByZWxvYy4KCShidWlsZF9pbnNuKTogSGFuZGxlIG1pc3NpbmcgcGFnZSBvcGVyYW5kIGZvciBjYWxsIGluc3RydWN0aW9uLgoJKGZpbmQpOiBMaWtld2lzZS4KCShtZF9hcHBseV9maXgzKTogVGFrZSBpbnRvIGFjY291bnQgbmV3IHJlbG9jcy4KCShnZXRfb3BlcmFuZCk6IEZpeCB0aGUgbW9kZSBmb3IgaW5kZXhlZCBpbmRpcmVjdCBhZGRyZXNzaW5nLgoJKGJ1aWxkX2luZGV4ZWRfYnl0ZSk6IEZpeCBwb3N0IGluZGV4IGJ5dGUgZm9yIGluZGV4ZWQgaW5kaXJlY3QgbW9kZS4KCjIwMDItMDgtMTIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfaXApOiBEb24ndCB3b3JrIG91dCB0aGUgdmFsdWUgb2YKCWNvbnN0YW50ICVoaSgpcyBoZXJlLgoKMjAwMi0wOC0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHRjX2kzODZfZml4X2FkanVzdGFibGUpOiBUZXN0IE9VVFBVVF9GTEFWT1IKCWZvciBFTEYsIGFuZCBkb24ndCBib3RoZXIgY2hlY2tpbmcgRUxGIHJlbG9jcyB3aGVuIG5vbi1FTEYuCgkoaTM4Nl9pbW1lZGlhdGUpOiBBbGxvdyBhYnNvbHV0ZV9zZWN0aW9uIGV4cHJlc3Npb25zIGZvciBhb3V0LgoJKGkzODZfZGlzcGxhY2VtZW50KTogTGlrZXdpc2UuICBBbHNvIHRlc3QgYmZkX2lzX2NvbV9zZWN0aW9uLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogVGVzdCBPVVRQVVRfRkxBVk9SIGZvciBFTEYuCgkobWRfYXBwbHlfZml4Myk6IEhhY2sgZm9yIGJmZF9pbnN0YWxsX3JlbG9jYXRpb24gd2hlbiBmeF9wY3JlbCwKCW5vdCB3aGVuIGZ4X2FkZHN5LiAgUmVtb3ZlIGRlYWQgY29kZS4KCjIwMDItMDgtMDkgIEdyYWVtZSBQZXRlcnNvbiAgPGdwQHFueC5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBwcGMtKi1udG8qIHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wOC0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2Lmg6IFJlb3JnYW5pemUuCgoyMDAyLTA4LTA5ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IEhhbmRsZSBhIHJlZ2lzdGVyIHBsdXMgYSAxNi1iaXQKCWltbWVkaWF0ZSBvZmZzZXQgaW4gImRsYSIgYW5kICJsYSIgZXhwYW5zaW9ucy4KCjIwMDItMDgtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUuaW46IGJmZF9nYXM9eWVzIGZvciBhbGwgaTM4NiB0YXJnZXRzLiAgRm9ybWF0dGluZy4KCVJlbW92ZSAiYmZkX2dhcz15ZXMiIGZyb20gdGFyZ2V0IHRhYmxlIHdoZW4gY292ZXJlZCBsYXRlci4KCUNvbnNvbGlkYXRlIHNvbWUgZW50cmllcy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlCgoyMDAyLTA4LTA5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG91dHB1dF9pbnNuKTogU2F2ZSBmcmFnX25vdyBhbmQgZnJhZ19ub3dfZml4ICgpCglhdCBzdGFydCBvZiBpbnNuLCBwYXNzIGl0IHRvIG91dHB1dF9kaXNwIGFuZCBvdXRwdXRfaW1tLgoJKG91dHB1dF9kaXNwKTogQWRkZWQgYXJndW1lbnRzLiAgSWYgX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlzIHNlZW4KCWluIGRpc3BsYWNlbWVudCBmb3IgUl8zODZfMzIgcmVsb2MsIHVzZSBSXzM4Nl9HT1RQQyBhbmQgY29tcHV0ZQoJcHJvcGVybHkgYWRkZW5kLgoJKG91dHB1dF9pbW0pOiBBZGRlZCBhcmd1bWVudHMuICBDb21wdXRlIHByb3Blcmx5IGFkZGVuZCBmb3IKCVJfMzg2X0dPVFBDLgoJKG1kX2FwcGx5X2ZpeDMpOiBSZW1vdmUgUl8zODZfR09UUEMgaGFuZGxpbmcuCgoyMDAyLTA4LTA2ICBHZW9yZ2UgRnJhbmNlIDxmcmFuY2VAaGFuZGhlbGRzLm9yZz4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChjcHVfdHlwZXMpOiBFbmFibGVkIGV2NjcsIGV2NjgsICAtbTIxMjY0YQoJYW5kIG0yMTI2NGIgcHJvY2Vzc29yIG5hbWVzIGFuZCBjcHUgdHlwZXMuCgkqIGRvYy9jLWFscGhhLnRleGk6IERvY3VtZW50ZWQgbmV3IHR5cGVzLgoKMjAwMi0wOC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfYXBwbHlfZml4Myk6IEFkanVzdCAxNiBiaXQgWENPRkYgcmVsb2Mgb2Zmc2V0LgoKMjAwMi0wOC0wMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAodGNfZ2VuX3JlbG9jKTogRXh0ZW5kIEdQLXJlbGF0aXZlIGFkZGVuZAoJaGFuZGxpbmcgdG8gQkZEX1JFTE9DX01JUFMxNl9HUFJFTC4KCjIwMDItMDgtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFkZF90b19saXRfcG9vbCk6IEVuc3VyZSB0aGF0IG9mZnNldCB0byBsaXRlcmFsCglwb29sIGlzIGNvbXB1dGVkIHVzaW5nIHNpZ25lZCBhcml0aG1ldGljIHNvIHRoYXQgcHJvcGVyIHNpZ24KCWV4dGVuc2lvbiBpcyBwZXJmb3JtZWQgaWYgWF9hZGRfbnVtYmVyIGlzIGEgNjQtYml0IGludGVnZXIuCgoyMDAyLTA4LTAxICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgkgICAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBkd2FyZjJkYmcuYyAoZHdhcmYyX2ZpbmlzaCk6IERvbid0IGVtaXQgdW5yZWZlcmVuY2VkCgkuZGVidWdfbGluZSBzZWN0aW9uIHVubGVzcyBpdCBoYXMgbGluZSBpbmZvcm1hdGlvbi4KCjIwMDItMDctMzEgIElhbiBEYWxsICA8aWFuQHNpYnlsLmJld2FyZS5kcm9wYmVhci5pZC5hdT4KCgkqIGNvbmZpZy90Yy1uczMyay5oIChtZF9wY3JlbF9hZGp1c3QpOiBTdXBwbHkgcHJvdG90eXBlLgoJKiBjb25maWcvdGMtbnMzMmsuYyAoY29udmVydF9paWYsIG1kX3BhcnNlX29wdGlvbiwgbWRfc2hvd191c2FnZSk6CglBbGxvdyBkZWZhdWx0IGRpc3BsYWNlbWVudCBzaXplIHRvIGJlIGFuIG9wdGlvbgkiLS1kaXNwLXNpemUtZGVmYXVsdCIuCgkobWRfbnVtYmVyX3RvX2Rpc3ApOiBNYWtlIGVycm9yIG1lc3NhZ2VzIGluY2x1ZGUgdmFsdWUuIFVzZSAlZCB0bwoJcHJpbnQgaW50ZWdlcnMsIG5vdCAlcy4KCShmaXhfbmV3X25zMzJrKTogQ29uZGl0aW9uYWxseSBzZXQgZnhfbm9fb3ZlcmZsb3cgc28gd2UgZG9uJ3QKCWdldCBkdXBsaWNhdGUgbWVzc2FnZXMgc29tZXRpbWVzLgoJKGNvbnZlcnRfaWlmKTogR3JvdyBmcmFnIHRvIG1heCBwb3NzaWJsZSBpbnN0cnVjdGlvbiBzaXplLiBBdm9pZAoJY3JlYXRpbmcgdW5uZWNlc3NhcnkgZml4ZXMuCgkobWRfbnVtYmVyX3RvX2ZpZWxkKSBBZGQgcHJvdG90eXBlLgoJKGVuY29kZV9vcGVyYW5kLCBwYXJzZSwgY29udmVydF9paWYsIG1kX2ZpeF9wY3JlbF9hZGp1c3QpOiBBZGQKCXByb3RvdHlwZXMgYW5kIG1ha2Ugc3RhdGljLgoJKHN0cnVjdCBhZGRyX21vZGUpOiBNYWtlIG1vZGUgYW5kIHNjYWxlZF9tb2RlIGV4cGxpY2l0bHkgc2lnbmVkLgoJKGV2YWx1YXRlX2V4cHIpOiBVc2UgcmVzdWx0UCBhcmd1bWVudCBpbnN0ZWFkIG9mIGV4cHJQIGdsb2JhbC4KCShnZXRfYWRkcl9tb2RlKTogUXVpdGVuIGNvbXBpbGVyIHdhcm5pbmdzLgoJKGVuY29kZV9vcGVyYW5kKTogZWxpbWluYXRlIHVudXNlZCB2YXJpYWJsZXMuIFF1aXRlbiBjb21waWxlcgoJd2FybmluZ3MuIEVsaW1pbmF0ZSBudWwgY2hhcmFjdGVyIGluIGZvcm1hdCBzdHJpbmdzLgoJKHBhcnNlKTogYXJnYyBpcyB1bnNpZ25lZC4KCShyZWxvYyk6IFR5cGUgY2FzdCBpbmRleCB0byBxdWlldGVuIGNvbXBpbGVyLgoJKG1kX3BjcmVsX2FkanVzdCwgbWRfYXBwbHlfZml4Myk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkobWRfY29udmVydF9mcmFnKTogTm90ZSB1bnVzZWQgcGFyYW1ldGVycy4gUmVtb3ZlIHVudXNlZAoJdmFyaWFibGVzLgoJKG1kX2NyZWF0ZV9sb25nX2p1bXAsIG1kX2NyZWF0ZV9zaG9ydF9qdW1wLAoJbWRfdW5kZWZpbmVkX3N5bWJvbF9uYW1lLCBtZF9zZWN0aW9uX2FsaWduLCB0Y19nZW5fcmVsb2MpOiBOb3RlCgl1bnVzZWQgcGFyYW1ldGVycy4KCjIwMDItMDctMzEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBSZXRyb2FjdGl2ZWx5IGFkZCBlbnRyeSBmb3IgTGFycyBCcmlua2hvZmYncyBjb250cmlidXRpb24KCW9mIHRoZSBQRFAtMTEgYW5kIDIuMTFCU0QgYS5vdXQgc3VwcG9ydC4KCjIwMDItMDctMzEgIE1vbWNoaWwgVmVsaWtvdiAgPHZlbGNvQGZhZGF0YS5iZz4KCgkqIGNvbmZpZy90Yy12ODUwLmMgKG1kX2Fzc2VtYmxlKTogRml4IHJhbmdlIGNoZWNrIGZvciBpbW1lZGlhdGUKCW9wZXJhbmQuCgoyMDAyLTA3LTMwICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19jcHVfaW5mb190YWJsZSk6IENsZWFuIHVwIGVudHJpZXMgcmVsYXRlZAoJdG8gQnJvYWRjb20gU0ItMSBjb3JlIHN1cHBvcnQuCgoyMDAyLTA3LTMxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc190YXJnZXRfZm9ybWF0KTogRml4IGZvcm1hdHRpbmcuCglBZGQgcmVjb2duaXRpb24gb2YgbjMyIEFCSSBmb3JtYXRzLgoKMjAwMi0wNy0zMCAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogdGMtbWlwcy5jIChsb2FkX2FkZHJlc3MpOiBEb24ndCBjbG9iYmVyICRhdCB3aGVuIGxvYWRpbmcgYQoJNjQtYml0IGFkZHJlc3MgaW4gbm9uLVBJQyBjb2RlIGlmIG5vYXQgaXMgaW4gZWZmZWN0LgoJKG1hY3JvKTogTGlrZXdpc2UuCgoyMDAyLTA3LTMwICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IFVzZSBjb2RlcyA2IGFuZCA3IGluIHRyYXAgaW5zdHJ1Y3Rpb25zCgl1c2VkIGluIGRpdmlzaW9uL211bHRpcGx5IG1hY3JvIGV4cGFuc2lvbnMgc2ltaWxhcmx5IHRvIGhvdyB0aGV5CglhcmUgdXNlZCBpbiB0aGUgdmFyaWFudHMgd2l0aCBicmVhayBpbnN0cnVjdGlvbnMuCgkobWFjcm8yKTogTGlrZXdpc2UuCgoyMDAyLTA3LTMwICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgYXJtLSotbnRvIHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNy0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoc3RydWN0IGxpdGVyYWxfcG9vbCk6IEFkZCBmaWVsZHMgdG8gYWxsb3cKCW11bHRpcGxlIGxpdGVyYWwgcG9vbHMgdG8gYmUgbWFpbnRhaW5lZC4KCShmaW5kX2xpdGVyYWxfcG9vbCk6IE5ldyBmdW5jdGlvbi4KCShmaW5kX29yX21ha2VfbGl0ZXJhbF9wb29sKTogTmV3IGZ1bmN0aW9uLgoJKGFkZF90b19saXRlcmFsX3Bvb2wpOiBVc2UgZmluZF9vcl9tYWtlX2xpdGVyYWxfcG9vbC4KCShhcm1fc190ZXh0LCBhcm1fc19kYXRhLCBhcm1fc19zZWN0aW9uKTogUmVtb3ZlIC0gbm8gbG9uZ2VyCgluZWVkZWQuCgkoc19sdG9yZyk6IFVzZSBmaW5kX2xpdGVyYWxfcG9vbC4KCShhcm1fY2xlYW51cCk6IER1bXAgYWxsIGxpdGVyYWwgcG9vbHMuCgkqIGRvYy9jLWFybS50ZXhpOiBEb2N1bWVudCBuZXcgYmVoYXZpb3VyIG9mIG9ubHkgZHVtcGluZyBsaXRlcmFsCglwb29scyB1cG9uIHJlcXVlc3QuCgoyMDAyLTA3LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfc2V0X2NwdSk6IFVzZSBQUENfT1BDT0RFXzY0IGFzIHRoZSBkZWZhdWx0CglyYXRoZXIgdGhhbiBQUENfT1BDT0RFXzMyIGZvciBwb3dlcnBjNjQqLgoKMjAwMi0wNy0yNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIEZyZW5jaCB0cmFuc2xhdGlvbi4KCjIwMDItMDctMjUgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGRvYy9jLW1pcHMudGV4aTogUmVtb3ZlIC1tY3B1LiAgRG9jdW1lbnQgLW1hYmkuCgkqIGNvbmZpZ3VyZS5pbiAoTUlQU19DUFVfU1RSSU5HX0RFRkFVTFQpOiBOZXcgY29uZmlndXJhdGlvbiBtYWNyby4KCShVU0VfRV9NSVBTX0FCSV9PMzIsIE1JUFNfREVGQVVMVF82NEJJVCk6IE5ldyBjb25maWd1cmF0aW9uIG1hY3Jvcy4KCSogY29uZmlndXJlLCBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKGZpbGVfbWlwc19hYmkpOiBSZW5hbWUgdG8gbWlwc19hYmkuCgkobWlwc19zZXRfb3B0aW9ucyk6IFJlbW92ZSAiYWJpIiBmaWVsZC4KCShtaXBzX29wdHMpOiBVcGRhdGUgYWNjb3JkaW5nbHkuICBSZXBsYWNlIGFsbCB1c2VzIG9mIG1pcHNfb3B0cy5hYmkKCXdpdGggbWlwc19hYmkuCgkobWlwc19jcHUpOiBSZW1vdmUuCgkobWlwc19hcmNoX3N0cmluZywgbWlwc19hcmNoX2luZm8pOiBOZXcgdmFycy4KCShtaXBzX3R1bmVfc3RyaW5nLCBtaXBzX3R1bmVfaW5mbyk6IE5ldyB2YXJzLgoJKEFCSV9ORUVEU18zMkJJVF9SRUdTLCBBQklfTkVFRFNfNjRCSVRfUkVHUyk6IE5ldyBtYWNyb3MuCgkoSEFWRV8zMkJJVF9HUFJTLCBIQVZFXzMyQklUX0ZQUlMpOiBEb24ndCBjaGVjayB0aGUgQUJJLgoJKG1pcHNfaXNhX3RvX3N0ciwgbWlwc19jcHVfdG9fc3RyKTogUmVtb3ZlLgoJKG1pcHNfaXApOiBJZiB0aGUgc2VsZWN0ZWQgYXJjaGl0ZWN0dXJlIGlzIGEgZ2VuZXJpYyBJU0EgcmF0aGVyCgl0aGFuIGEgcHJvY2Vzc29yLCBvbmx5IG1lbnRpb24gdGhlIElTQSBsZXZlbCBpbiBlcnJvciBtZXNzYWdlcy4KCShPUFRJT05fTUNQVSk6IFJlbW92ZS4KCShPUFRJT05fRlA2NCk6IE5ldy4KCShtZF9sb25nb3B0cyk6IEFkZCAtbWZwNjQsIHJlbW92ZSAtbWNwdS4KCShtaXBzX3NldF9vcHRpb25fc3RyaW5nKTogTmV3IGZuLgoJKG1kX3BhcnNlX29wdGlvbik6IE1ha2UgLW1pcHNOIHVwZGF0ZSBmaWxlX21pcHNfaXNhIHJhdGhlciB0aGFuCgltaXBzX29wdHMuaXNhLiAgVXNlIG1pcHNfc2V0X29wdGlvbl9zdHJpbmcgdG8gc2V0IC1tYXJjaCBvciAtbXR1bmUuCglEb24ndCBsZXQgLW1ncDMyIGFuZCAtbWZwMzIgY2hhbmdlIHRoZSBBQkkuCgkoc2hvdyk6IE1vdmUgdG8gZW5kIG9mIGZpbGUuICBDb25zdGlmeSBzdHJpbmcgYXJndW1lbnQuCgkobWRfc2hvd191c2FnZSk6IE1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZS4gIFJlYWQgYXZhaWxhYmxlCglhcmNoaXRlY3R1cmVzIGZyb20gbWlwc19jcHVfaW5mb190YWJsZS4KCShtaXBzX3NldF9hcmNoaXRlY3R1cmUpOiBOZXcgZm4uCgkobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogUmV3b3JrLiAgUmVtb3ZlIC1tY3B1IGhhbmRsaW5nLiAgLW1pcHNOCglpcyBhbiBhbGlhcyBmb3IgLW1hcmNoPW1pcHNOLiAgRG9uJ3QgY2hhbmdlIHRoZSBBQkkgYmFzZWQgb24gb3RoZXIKCWZsYWdzLiAgSW5mZXIgdGhlIHJlZ2lzdGVyIHNpemUgZnJvbSB0aGUgQUJJIGFzCXdlbGwgYXMgdGhlCglhcmNoaXRlY3R1cmUuICBDb21wbGFpbiBhYm91dCBtb3JlIGNvbmZsaWN0aW5nIGFyZ3VtZW50cy4KCVVuaWZ5IGxvZ2ljIHdpdGggR0NDLgoJKHNfbWlwc3NldCk6IERvbid0IGNoYW5nZSB0aGUgQUJJLgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBDaGVjayBVU0VfRV9NSVBTX0FCSV9PMzIuCgkobWlwc19jcHVfaW5mb190YWJsZSk6IFJlbW92ZSBHZW5lcmljLU1JUFMqIGVudHJpZXMsIGtlZXBpbmcganVzdAoJIm1pcHNOIi10eXBlIGVudHJpZXMuICBSZW1vdmUgZW50cmllcyB0aGF0IHZhcnkgb25seSBpbiB0aGUKCW1hbnVmYWN0dXJlcidzIHByZWZpeCwgb3IgdGhhdCBoYXZlICIwMDAiIHJlcGxhY2VkIGJ5ICJrIi4KCVJlbW92ZSBUQVJHRVRfQ1BVIGVudHJpZXMuICBNYWtlIHIyMDAwIGVudHJ5IHVzZSBDUFVfUjMwMDAuCgkobWlwc19zdHJpY3RfbWF0Y2hpbmdfY3B1X25hbWVfcCwgbWlwc19tYXRjaGluZ19jcHVfbmFtZV9wKTogTmV3IGZucy4KCShtaXBzX3BhcnNlX2NwdSk6IE5ldyBmbi4KCShtaXBzX2NwdV9pbmZvX2Zyb21fbmFtZSwgbWlwc19jcHVfaW5mb19mcm9tX2NwdSk6IFJlbW92ZS4KCShtaXBzX2NwdV9pbmZvX2Zyb21faXNhKTogTWlub3IgZm9ybWF0dGluZyB0d2Vhay4KCjIwMDItMDctMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogVXBkYXRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uLgoJKiBwby9lcy5wbzogVXBkYXRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDctMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogQ09OVFJJQlVUT1JTOiBLZW4gUmFlYnVybiBpcyBubyBsb25nZXIgdGhlIG1haW50YWluZXIgZm9yCglHQVMuCgoyMDAyLTA3LTE5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19uZWVkX2VsZl9hZGRlbmRfZml4dXApOiBVc2UgU19JU19FWFRFUk5BTAoJaW5zdGVhZCBvZiBTX0lTX0VYVEVSTi4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoJKG1pcHNfZml4X2FkanVzdGFibGUpOiBMaWtld2lzZS4KCjIwMDItMDctMTkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX3BpY19sZXZlbCk6IFJlbW92ZSBJUklYNF9QSUMuCgoyMDAyLTA3LTE5ICBNaXJvc2xhdiBUaWNoeSA8dGljaG05YW1Ac3MxMDAwLm1zLm1mZi5jdW5pLmN6PgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25kLmMgKHNfaWZkZWYpOiBUcmVhdCBhIHJlZmVyZW5jZWQgYnV0IG5vdCB5ZXQgZGVmaW5lZAoJc3ltYm9sIGFzIGlmIGl0IHdlcmUgdW5kZWZpbmVkLCBpbiBleGFjdGx5IHRoZSBzYW1lIHdheSBhcwoJLmVxdWl2LgoKCSogZG9jL2FzLnRleGluZm86IERvY3VtZW50IHRoYXQgLmlmZGVmLCAuaWZuZGVmIGFuZCAuZXF1aXYKCWNvbnNpZGVyIHJlZmVyZW5jZWQgYnVnIG5vdCB5ZXQgZGVmaW5lZCBzeW1ib2xzIHRvIGJlCgl1bmRlZmluZWQuCgoyMDAyLTA3LTE4ICBEZW5pcyBDaGVydHlrb3YgIDxkZW5pc2NAb3ZlcnRhLnJ1PgoJICAgIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgkgICAgQWxhbiBMZWhvdHNreSAgPGFsZWhvdHNreUBjeWdudXMuY29tPgoJICAgIEpvaG4gSGVhbHkgIDxqaGVhbHlAcmVkaGF0LmNvbT4KCSAgICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGlwMmsgY29uZmlndXJhdG9uLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBBZGQgaXAyayBjb25maWd1cmF0b24uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtaXAyay5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLWlwMmsuaDogTmV3IGZpbGVzLgoJKiBORVdTOiBNZW50aW9uIG5ldyBzdXBwb3J0LgoJKiBkb2MvTWFrZWZpbGUuYW0gKENQVV9ET0NTKTogQWRkIGMtaXAyay50ZXhpLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9hbGwudGV4aTogU2V0IElQMksKCSogZG9jL2FzLnRleGluZm86IEFkZCBJUDJLIGRlc2NyaXB0aW9uLgoJKiBkb2MvYy1pcDJrLnRleGk6IE5ldyBmaWxlLgoKMjAwMi0wNy0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBSZWZvcm1hdCB0byBtYXRjaCBzdHlsZSBvZiBvdGhlciBORVdTIGZpbGVzLgoKMjAwMi0wNy0xNyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogdGMtaTM4Ni5jIChpMzg2X2FsaWduX2NvZGUpOiBJbXBsZW1lbnQgeDg2XzY0IG5ldXRyYWwgY29kZSBmaWxsZXJzLgoKMjAwMi0wNy0xNiAgTW9yaXR6IEpvZGVpdCAgPG1vcml0ekBqb2RlaXQub3JnPgoKCSogY29uZmlnL3RjLXo4ay5jIChidWlsZF9ieXRlcyk6IENvcnJlY3Qgb3JkZXIgb2YgbWVtc2V0IGFyZ3MuCgoyMDAyLTA3LTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIE5FV1M6IEFkZCAnQ2hhbmdlcyBpbiAyLjEzJy4KCjIwMDItMDctMTUgIE1hdHQgRnJlZGV0dGUgIDxmcmVkZXR0ZUBuZXRic2Qub3JnPgoKCSogY29uZmlnL3RjLWhwcGEuaCAoTEFCRUxTX1dJVEhPVVRfQ09MT05TKTogRGVmaW5lIGlmIFRFX05ldEJTRC4KCjIwMDItMDctMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwcm9jZXNzX3N1ZmZpeCk6IE1lcmdlIENPREVfNjRCSVQgSnVtcEJ5dGUKCWNhc2Ugd2l0aCBub24gQ09ERV82NEJJVCBjYXNlLiAgRG9uJ3Qgd2FybiBvbiAicXdvcmQgcHRyIiBpZgoJbm90IENPREVfNjRCSVQuCgoyMDAyLTA3LTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfZWxmX2Zyb2Jfc3ltYm9sKTogRGVsZXRlLgoJKHBwY19mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdCk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL3RjLXBwYy5oICh0Y19mcm9iX3N5bWJvbCk6IERvbid0IGRlZmluZS4KCShwcGNfZWxmX2Zyb2Jfc3ltYm9sKTogRG9uJ3QgZGVjbGFyZS4KCSh0Y19mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdCk6IERlZmluZS4KCShwcGNfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBEZWNsYXJlLgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9wc2V1ZG9fdGFibGUpOiBXYXJuaW5nIGZpeC4KCShwcGNfY3B1KTogTWFrZSBpdCB1bnNpZ25lZCBsb25nIHRvIGFncmVlIHdpdGggc3RydWN0IHBvd2VycGNfb3Bjb2RlCglmbGFncy4KCShwcGNfc2l6ZSk6IERlbGV0ZS4KCShwcGNfeGNvZmY2NCk6IFJlbmFtZSB0byBwcGNfb2JqNjQuCgkobWRfcGFyc2Vfb3B0aW9uIDxtPik6IEVuY29kZSBvbGQgcHBjX3NpemUgdmFsdWUgaW4gcHBjX2NwdS4KCShwcGNfc2V0X2NwdSk6IFNldCBQUENfT1BDT0RFXzMyIHRvby4KCShwcGNfYXJjaCk6IFVzZSBwcGNfb2JqNjQgaW5zdGVhZCBvZiBwcGNfc2l6ZSB0byBzZWxlY3QgYmZkX21hY2hfcHBjNjQKCW9yIGJmZF9tYWNoX3BwYy4KCShwcGNfdGFyZ2V0X2Zvcm1hdCk6IFVzZSBwcGNfb2JqNjQgdG8gc2VsZWN0IGZvcm1hdC4KCShtZF9iZWdpbik6IEFkanVzdCBmb3IgUFBDX09QQ09ERV8zMi82NCBpbiBwcGNfY3B1LgoJKHBwY19pbnNlcnRfb3BlcmFuZCk6IFVzZSBwcGNfb2JqNjQgaW5zdGVhZCBvZiBwcGNfc2l6ZS4KCShwcGNfZWxmX3N1ZmZpeCk6IExpa2V3aXNlLiAgRG9uJ3QgZGVwZW5kIG9uIEJGRF9ERUZBVUxUX1RBUkdFVF9TSVpFLgoJKHRjX2Zyb2Jfc3ltYm9sKTogTGlrZXdpc2UuCgkobWRfYXNzZW1ibGUpOiBVc2UgcHBjX29iajY0IGluc3RlYWQgb2YgcHBjX3NpemUuICBEb24ndCBkZXBlbmQgb24KCUJGRF9ERUZBVUxUX1RBUkdFVF9TSVpFLgoJKHBwY190Yyk6IExpa2V3aXNlLgoJKHBwY19pc190b2Nfc3ltKTogTGlrZXdpc2UuCgkobWRfYXBwbHlfZml4Myk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcHBjLmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiBEb24ndCBkZXBlbmQgb24KCUJGRF9ERUZBVUxUX1RBUkdFVF9TSVpFLgoJKEVMRl9UQ19TUEVDSUFMX1NFQ1RJT05TKTogTGlrZXdpc2UuCgkodGNfZnJvYl9zeW1ib2wpOiBMaWtld2lzZS4KCjIwMDItMDctMDkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNyb19idWlsZCk6IEhhbmRsZSBNSVBTMTYgaW5zbnMuCgkobWlwc19pcCk6IExpa2V3aXNlLgoKMjAwMi0wNy0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1kX3BzZXVkb190YWJsZSA8ZmlsZT4pOiBXYXJuaW5nIGZpeC4KCShCRkRfUkVMT0NfOCwgQkZEX1JFTE9DXzhfUENSRUwpOiBEZWZpbmUgZm9yIG5vbi1CRkQuCgkobWRfYXBwbHlfZml4Myk6IEZvcm1hdHRpbmcuICBSZW1vdmUgcmVkdW5kYW50IHRlc3QuCgkodGNfZ2VuX3JlbG9jKTogUmVtb3ZlIHJlZHVuZGFudCBjb2RlLgoJKHRjX2kzODZfZm9yY2VfcmVsb2NhdGlvbik6IERlbGV0ZS4gIE1vdnkgYm9keSBvZiBmdW5jdGlvbiB0by4uCgkqIGNvbmZpZy90Yy1pMzg2LmggKFRDX0ZPUkNFX1JFTE9DQVRJT04pOiAuLiBoZXJlLgoKMjAwMi0wNy0wOSAgRmVkZXJpY28gRy4gU2Nod2luZHQgPGZnc2NoQG9saW1wby5jb20uYnI+CgoJKiBjb25maWd1cmUuaW46IEFkZCBocHBhLSotb3BlbmJzZCogdGFyZ2V0LCBjaGFuZ2UKCWFscGhhKi0qLW9wZW5ic2QqIGZvcm1hdCB0byBlbGYsIGFuZCB1c2UgZWxmIGZvciBzcGFyYy0qLW9wZW5ic2QqCgl3aXRoIHNwYXJjNjQgY3B1LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA3LTA4ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybyk6IFNoaWZ0IHRoZSAzMi1iaXQgYWRkcmVzcyByYW5nZQoJYWNjZXNzaWJsZSB3aXRoIGEgbG9uZSAibHVpIiBkb3duIGJ5IDMyNzY4LgoKMjAwMi0wNy0wOCAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobG9hZF9hZGRyZXNzKTogVXNlIG5vbi10cmFwcGluZyAiZGFkZHUiCglpbnN0ZWFkIG9mICJkYWRkIiBpbiBhZGRyZXNzIGNhbGN1bGF0aW9ucy4KCShtYWNybyk6IExpa2V3aXNlLgoKMjAwMi0wNy0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHByb2Nlc3Nfc3VmZml4KTogUmVtb3ZlIGludGVsIG1vZGUgbW92c3ggYW5kCgltb3Z6eCBmdWRnZXMuCgkobWRfYXNzZW1ibGUpOiBJbnN0ZWFkLCB6YXAgdGhlIHN1ZmZpeCBoZXJlLgoKMjAwMi0wNy0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBSZW1vdmUgbmV4dCByZWxlYXNlIG51bWJlciB1bnRpbCB0aGUgcmVsZWFzZSBpcyBhY3R1YWxseQoJdXBvbiB1cy4KCjIwMDItMDctMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoY2hlY2stREVKQUdOVSk6IFJldmVydCAyMDAyLTA2LTI1IGNoYW5nZS4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDctMDIgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBjb25maWcvdGMtczM5MC5jICh0Y19zMzkwX2ZpeF9hZGp1c3RhYmxlKTogUHJldmVudCBhbnkgYWRqdXN0bWVudAoJdG8gc3ltYm9scyBpbiBtZXJnZSBzZWN0aW9ucywgZXZlbiBub24gcGMtcmVsYXRpdmUgb25lcy4KCjIwMDItMDYtMjkgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL3RjLW02OGhjMTEuaCAobTY4aGMxMV9saXN0aW5nX2hlYWRlcik6IEZpeCB3YXJuaW5nLgoKMjAwMi0wNi0yOSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBjb25maWcvdGMtbTY4aGMxMS5oIChFTEZfVENfU1BFQ0lBTF9TRUNUSU9OUyk6IE5ldyBzZWN0aW9ucwoJLnNvZnRyZWdzIGFuZCAuZWVwcm9tLgoKMjAwMi0wNi0yOCAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIE5FV1M6IE5vdGUgdGhlIG5leHQgcmVsZWFzZSBpcyAyLjEzLgoKMjAwMi0wNi0yNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby90ci5wbzogTmV3IHRyYW5zbGF0aW9uIGltcG9ydGVkLgoKMjAwMi0wNi0yNiAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogZWNvZmYuYzogKGdldF90YWcpOiBSZXBsYWNlIHN0cmNweSB3aXRoIHhzdHJkdXAuCgkoZWNvZmZfZGlyZWN0aXZlX2RlZik6IExpa2V3aXNlLgoJKGVjb2ZmX2RpcmVjdGl2ZV90YWcpOiBMaWtld2lzZS4KCSogbGlzdGluZy5jIChmaWxlX2luZm8pOiBMaWtld2lzZS4KCSogaGFzaC5jICh3aGF0KTogTGlrZXdpc2UuCgoyMDAyLTA2LTI1ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtIChjaGVjay1ERUpBR05VKTogU2V0IExDX0FMTD1DIGFuZCBleHBvcnQgaXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDItMDYtMTkgIERoYW5hbmpheSBSLiBEZXNocGFuZGUgPGRoYW5hbmpheWRAa3BpdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAoZ2V0X3NwZWNpZmljKTogUmV2ZXJ0IDIwMDItMDUtMDEgY2hhbmdlLgoJKGFzc2VtYmxlX3BwaSk6IEdlbmVyYXRlIHdhcm5pbmcgaWYgdGhlIHNhbWUgcmVnaXN0ZXIgaXMgdXNlZAoJdHdpY2UgYXMgZGVzdGluYXRpb24gaW4gdGhlIHNhbWUgcGFkZCAvIHBtdWxzIGluc3RydWN0aW9uLgoKMjAwMi0wNi0xOCAgRGF2ZSBCcm9sbGV5ICA8YnJvbGxleUByZWRoYXQuY29tPgoKCUZyb20gQ2F0aGVyaW5lIE1vb3JlLCBNaWNoYWVsIE1laXNzbmVyLCBSaWNoYXJkIFNhbmRpZm9yZCwgRGF2ZSBCcm9sbGV5CgkqIHBvL1BPVEZJTEVTLmluOiBBZGQgdGMtZnJ2LmMsIHRjLWZydi5oLgoJKiBjb25maWd1cmUuaW46IFN1cHBvcnQgZnJ2LSotKi4KCSogTWFrZWZpbGUuYW0gKENQVV9UWVBFUyk6IEFkZCBmcnYuCgkoVEFSR0VUX0NQVV9DRklMRVMpOiBBZGQgdGMtZnJ2LmMuCgkoVEFSR0VUX0NQVV9IRklMRVMpOiBBZGQgdGMtZnJ2LmguCgkoREVQVENfZnJ2X2NvZmYpOiBOZXcgdmFyaWFibGUuCgkoREVQVENfZnJ2X2VsZik6IE5ldyB2YXJpYWJsZS4KCShERVBPQkpfZnJ2X2NvZmYpOiBOZXcgdmFyaWFibGUuCgkoREVQT0JKX2Zydl9lbGYpOiBOZXcgdmFyaWFibGUuCgkoREVQX2Zydl9jb2ZmKTogTmV3IHZhcmlhYmxlLgoJKERFUF9mcnZfZWxmKTogTmV3IHZhcmlhYmxlLgoJKiB0Yy1mcnYuYzogTmV3IGZpbGUuCgkqIHRjLWZydi5oOiBOZXcgZmlsZS4KCjIwMDItMDYtMTcgIENhdGhlcmluZSBNb29yZSA8Y2xtQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5oIChUQVJHRVRfU1lNQk9MX0ZJRUxEUyk6IENvbmRpdGlvbmFsbHkgZGVmaW5lLgoKMjAwMi0wNi0xNyAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAoYXNzZW1ibGVfcHBpKTogSW5pdGlhbGl6ZSByZWdfbi4KCjIwMDItMDYtMTcgIFRvbSBSaXggPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pMzcwLmggKHRjX2NvbW1lbnRfY2hhcnMpOiBEZWZpbmUgZm9yIGkzNzAtZWxmLgoKMjAwMi0wNi0xNCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoJICAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZHdhcmYyZGJnLmggKGR3YXJmMl9kaXJlY3RpdmVfZmlsZSk6IFJldHVybiBjaGFyICouCgkqIGR3YXJmMmRiZy5jIChkd2FyZjJfZGlyZWN0aXZlX2ZpbGUpOiBSZXR1cm4gZmlsZW5hbWUuCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfbWlwc19maWxlKTogQ2FsbCBzX2FwcF9maWxlX3N0cmluZwoJYW5kIG5ld19sb2dpY2FsX2xpbmUgZm9yIHRoZSBmaXJzdCAuZmlsZSBkaXJlY3RpdmUuCgkqIHJlYWQuYyAoc19hcHBfZmlsZV9zdHJpbmcpOiBOZXcgZnVuY3Rpb24uCgkoc19hcHBfZmlsZSk6IENhbGwgaXQuCgkqIHJlYWQuaCAoc19hcHBfZmlsZV9zdHJpbmcpOiBBZGQgZGVjbGFyYXRpb24uCgoyMDAyLTA2LTE0ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlIE1JUFNfU1RBQlNfRUxGLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGVkLgoJKiBjb25maWcvb2JqLWVsZi5oIChFQ09GRl9ERUJVR0dJTkcpOiBEZWZpbmUgdG8gbWlwc19mbGFnX21kZWJ1ZwoJZm9yIE1JUFMgdGFyZ2V0cy4KCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19wc2V1ZG9fdGFibGUpOiBSZW1vdmUgI2lmZGVmIGFyb3VuZAoJIi5leHRlcm4iLgoJKHBkcl9zZWcpOiBEZWNsYXJlIHVuY29uZGl0aW9uYWxseS4KCShtZF9iZWdpbik6IEFsd2F5cyBnZW5lcmF0ZSAucGRyIHVubGVzcyBFQ09GRl9ERUJVR0dJTkcgb3Igbm90IEVMRi4KCShzX21pcHNfZW5kKTogTGlrZXdpc2UuICBHZW5lcmF0ZSBzdGFicyBmdW5jdGlvbiBtYXJrZXJzLgoJKHNfbWlwc19lbnQpOiBHZW5lcmF0ZSBzdGFicyBmdW5jdGlvbiBtYXJrZXJzLgoJKHNfbWlwc19mcmFtZSk6IEFsd2F5cyBnZW5lcmF0ZSAucGRyIHVubGVzcyBFQ09GRl9ERUJVR0dJTkcgb3Igbm90CglFTEYuCgkoc19taXBzX21hc2spOiBMaWtld2lzZS4KCShtaXBzX2ZsYWdfbWRlYnVnKTogTmV3LgoJKG1kX2xvbmdvcHRzKTogQWRkICJtZGVidWciIGFuZCAibm8tbWRlYnVnIi4KCShtZF9wYXJzZV9vcHRpb25zKTogQWRkIE9QVElPTl9NREVCVUcgYW5kIE9QVElPTl9OT19NREVCVUcuCgkobWlwc19hZnRlcl9wYXJzZV9hcmdzKTogU2V0IG1pcHNfZmxhZ19tZGVidWcuCgkqIGRvYy9hcy50ZXhpbmZvOiBBZGQgIi1tZGVidWciIGFuZCAiLW5vLW1kZWJ1ZyIgZm9yIE1JUFMuCgoyMDAyLTA2LTEzICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtZF9hcHBseV9maXgzKTogRG9uJ3Qgc3VidHJhY3QgdGhlIHN5bWJvbCdzCgl2YWx1ZSB0d2ljZSBmb3IgUkVMQSByZWxvY2F0aW9ucy4KCjIwMDItMDYtMTIgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogc3ltYm9scy5jIChyZXNvbHZlX3N5bWJvbF92YWx1ZSk6IEluaXRpYWxpc2UgZmluYWxfdmFsLgoKCSogc3Vic2Vncy5jIChzdWJzZWdzX3ByaW50X3N0YXRpc3RpY3MpOiBDYXN0IGZyY2hwIHRvIHZvaWQgKi4KCjIwMDItMDYtMTEgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBwY19zdWJzZWdfYWxpZ24pOiBEZWxldGUuCgkocHBjX2NoYW5nZV9jc2VjdCk6IERlZmF1bHQgY3NlY3QgYWxpZ24gaXMgMi4KCSogY29uZmlnL3RjLXBwYy5oIChTVUJfU0VHTUVOVF9BTElHTik6IERlbGV0ZQoKMjAwMi0wNi0wOSAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBhbWVsZWsuZ2RhLnBsPgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBVcGRhdGUuCgoyMDAyLTA2LTA4ICBNYXR0IFRob21hcyAgPG1hdHRAM2FtLXNvZnR3YXJlLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAodmF4LSotbmV0YnNkZWxmKiwgdmF4LSotbmV0YnNkYW91dCopCgkodmF4LSotbmV0YnNkKik6IE5ldyB0YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy9hb3V0X2dudS5oIChlbnVtIG1hY2hpbmVfdHlwZSk6IEFkZCBNX1ZBWDRLX05FVEJTRC4KCSogY29uZmlnL3RjLXZheC5jOiBBZGQgc3VwcG9ydCBmb3IgRUxGIGFuZCBQSUMuCgkoZmxhZ193YW50X3BpYyk6IE5ldyBmbGFnLgoJKGZsb2F0X2NvbnMpOiBGaXggcHJvdG90eXBlLgoJKG1kX2FwcGx5X2ZpeDMpOiBBZGp1c3QgZm9yIEJGRF9BU1NFTUJMRVIuCgkobWRfYXNzZW1ibGUpOiBJbnRyb2R1Y2UgYSBuZXcgaXNfYWJzb2x1dGUgbG9jYWwsIGFuZCB1c2UgaXQKCXJhdGhlciB0aGFuIHJlcGVhdGluZyB0aGUgdGVzdC4gIE1ha2UgZmF0YWwgZXJyb3JzIGFjdHVhbGx5CglmYXRhbCBieSB1c2luZyBhc19mYXRhbCBhcyBhcHByb3ByaWF0ZS4gIEFkanVzdCBmb3IgQkZEX0FTU0VNQkxFUi4KCUFkZCBzdXBwb3J0IGZvciBFTEYuICBBZGQgc3VwcG9ydCBmb3IgUElDLgoJKG1kX2NvbnZlcnRfZnJhZyk6IEFkanVzdCBmb3IgQkZEX0FTU0VNQkxFUi4KCSh0Y19hb3V0X2ZpeF90b19jaGFycyk6IE9ubHkgaW5jbHVkZSBpZiBPQkpfQU9VVCBhbmQgbm90CglCRkRfQVNTRU1CTEVSLgoJKHZheF9yZWdfcGFyc2UpOiBNYWtlIHRoZSAlIHJlZ2lzdGVyIHByZWZpeCBtYW5kYXRvcnkgZm9yIEVMRiwKCW9wdGlvbmFsIGZvciBhLm91dCwgYW5kIG5vdCBhbGxvd2VkIGZvciBWTVMuICBBZGp1c3QgYWxsIGNhbGxlcnMuCgkobWRfY3JlYXRlX3Nob3J0X2p1bXApOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgYXJndW1lbnRzLgoJKG1kX2NyZWF0ZV9sb25nX2p1bXApOiBMaWtld2lzZS4KCShtZF91bmRlZmluZWRfc3ltYm9sKTogTGlrZXdpc2UuCgkobWRfc2VjdGlvbl9hbGlnbik6IExpa2V3aXNlLgoJKG1kX3Nob3J0b3B0cyk6IEFsbG93IC1rIGFuZCAtSyBmb3IgRUxGLgoJKG1kX3BhcnNlX29wdGlvbik6IFNldCBmbGFnX3dhbnRfcGljIGlmIC1rIG9yIC1LLgoJKHRjX2hlYWRlcnNfaG9vayk6IE5ldyBmdW5jdGlvbiBpZiBPQkpfQU9VVCBhbmQgbm90IEJGRF9BU1NFTUJMRVIuCgkodGNfZ2VuX3JlbG9jKTogTmV3IGZ1bmN0aW9uIGlmIEJGRF9BU1NFTUJMRVIuCgkqIGNvbmZpZy90Yy12YXguaCAodGNfaGVhZGVyc19ob29rKTogUmVtb3ZlLgoJKFRBUkdFVF9GT1JNQVQpOiBTZXQgYWNjb3JkaW5nIHRvIG9iamVjdCBmb3JtYXQgYW5kIHRhcmdldAoJZW52aXJvbm1lbnQuCgkoQkZEX0FSQ0gsIFRBUkdFVF9BUkNIKTogRGVmaW5lLgoJKE5PX1JFTE9DKTogQWRqdXN0IGZvciBCRkRfQVNTRU1CTEVSLgoJKFRDX1JFTE9DX1JUU1lNX0xPQ19GSVhVUCwgVENfRklYX0FESlVTVEFCTEUpCgkodGNfZml4X2FkanVzdGFibGUpOiBEZWZpbmUgaWYgQkZEX0FTU0VNQkxFUi4KCSogY29uZmlnL3ZheC1pbnN0LmggKFZBWF9KU0IsIFZBWF9DQUxMUywgVkFYX0NBTExHKTogRGVmaW5lLgoKMjAwMi0wNi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBhcy5jOiBSZXBsYWNlIENPTlNUIHdpdGggY29uc3QuCgkqIHdyaXRlLmM6IExpa2V3aXNlLgoJKiBjb25maWcvb2JqLWNvZmYuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1hMjlrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYXJtLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZGx4LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODUwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWkzNzAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pODYwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaTk2MC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGhjMTEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tNjhrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTg4ay5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbWlwcy5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW5zMzJrLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcGRwMTEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wai5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXMzOTAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtdGFob2UuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWM4MC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXY4NTAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy12YXguYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy13NjUuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy16OGsuYzogTGlrZXdpc2UuCgoyMDAyLTA2LTA4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCglCYXNlZCBvbiBwYXRjaCBmcm9tIE1hdHQgR3JlZW46CgkqIGNvbmZpZy9vYmotZWxmLmggKEVDT0ZGX0RFQlVHR0lORyk6IE1ha2UgY29uZmlndXJhYmxlLgoJKiBjb25maWcvdGMtbWlwcy5jIChzX21pcHNfZmlsZSk6IFJlbmFtZWQgZnJvbSBzX2ZpbGUuCgkoc19taXBzX2xvYyk6IE5ldyBmdW5jdGlvbi4KCShtaXBzX25vbmVjb2ZmX3BzZXVkb190YWJsZSk6IENhbGwgdGhlbS4KCShhcHBlbmRfaW5zbik6IENhbGwgZHdhcmYyX2VtaXRfaW5zbi4KCjIwMDItMDYtMDggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX29wdHMpOiBGaXggY29tbWVudCwgYWxsIEFTRSBmaWVsZHMgYXJlIHNldAoJdG8gLTEuCgkoZmlsZV9hc2VfbWlwczE2KTogTmV3IHZlcmlhYmxlLgoJKG1pcHNfZWFiaTY0KTogUmVtb3ZlLgoJKENQVV9IQVNfTUlQUzE2KTogTmV3IGRlZmluZS4KCShDUFVfSEFTX01ETVgpOiBGaXggZGF0YSB0eXBlLgoJKG1kX2JlZ2luKTogQ29kZSBjbGVhbnVwLiBVc2UgZmlsZV9hc2VfbWlwczE2LgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBIYW5kbGUgbWlwczE2IGhlYWRlciBmbGFnLgoJSGFuZGxlIEVBQkkgZmxhZyB3aXRob3V0IGludGVybWVkaWF0ZSB2YXJpYWJsZS4KCjIwMDItMDYtMDggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBkb2MvYXMudGV4aW5mbzogVXBkYXRlIE1JUFMgZG9jdW1lbnRhdGlvbi4KCjIwMDItMDYtMDggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jOiBBZGQgZGVmaW5lIGZvciAkemVybyByZWdpc3Rlci4KCShtZF9iZWdpbik6IEFkZCAkemVybyBhcyBhbGlhcyBuYW1lIGZvciAkMC4KCShpbnNuX3VzZXNfcmVnKTogVXNlIFpFUk8gZGVmaW5lLgoJKG1pcHNfaXApOiBBZGQgJHplcm8gYXMgYWxpYXMgbmFtZSBmb3IgJDAuCgkobWlwczE2X2lwKTogTGlrZXdpc2UuCgkoc19jcGxvY2FsKTogRGVtYW5kIGVtcHR5IHJlc3Qgb2YgaW5wdXQgbGluZS4KCSh0Y19nZXRfcmVnaXN0ZXIpOiBMaWtld2lzZS4gQWRkIHN1cHBvcnQgZm9yICRrdDAsIGt0MSByZWdpc3RlcgoJbmFtZXMuIFVzZSBaRVJPIGRlZmluZS4gRml4IGlucHV0X2xpbmVfcG9pbnRlciBwcm9ncmVzcy4KCjIwMDItMDYtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzeW1ib2xzLmM6IFJlcGxhY2UgQ09OU1QgYnkgY29uc3QgdGhyb3VnaG91dC4KCShzeW1ib2xfZmluZF9leGFjdCk6IFNwbGl0IG91dCBmcm9tLi4KCShzeW1ib2xfZmluZF9iYXNlKTogLi5oZXJlLgoJKiBzeW1ib2xzLmg6IFJlcGxhY2UgQ09OU1QgYnkgY29uc3QgdGhyb3VnaG91dC4KCShzeW1ib2xfZmluZF9leGFjdCk6IERlY2xhcmUuCgkqIGNvbmZpZy9vYmotZWxmLmM6ICNpbmNsdWRlICJzdHJ1Yy1zeW1ib2wuaCIuCgkoZWxmX2Zyb2JfZmlsZSk6IElmIGdyb3VwIG5hbWUgbWF0Y2hlcyBhbiBleHBvcnRlZCBzeW1ib2wsIHVzZSB0aGF0CglzeW1ib2wgZm9yIHRoZSBzaWduYXR1cmUgYW5kICIuZ3JvdXAiIGFzIHRoZSBzZWN0aW9uIG5hbWUuCgoyMDAyLTA2LTA2ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChwYXJzZV9hdCk6IEAoc3ltYm9sLHBjKSBpcyBBX0RJU1BfUEMgYWdhaW4sCglidXQgd2FybiBhYm91dCBpdC4KCjIwMDItMDYtMDYgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogdGMtbWlwcy5jIChtaXBzX2FmdGVyX3BhcnNlX2FyZ3MpOiBBbHdheXMgc2V0IG1pcHNfb3B0cy5hc2VfbWlwczNkCglhbmQgbWlwc19vcHRzLmFzZV9tZG14IGlmIHRoZXkgYXJlIHVuaW5pdGlhbGl6ZWQuCgoyMDAyLTA2LTA2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZ2FzL2NvbmZpZy90Yy1ocHBhLmMgKHBhX2lwKTogUmVwbGFjZSAiTCQwXDAwMSIgd2l0aCBGQUtFX0xBQkVMX05BTUUuCgkoaHBwYV9mb3JjZV9yZWxvY2F0aW9uKTogQ2hlY2sgaWYgYSBzdHViIGp1c3QgYmVmb3JlIHRoZSBzdGFydCBzeW1ib2wKCW9mIHRoZSBsYXN0IGNhbGxfaW5mbyBpcyByZWFjaGFibGUgYmVmb3JlIGZvcmNpbmcgcmVsb2NhdGlvbi4gIEZpeAoJdHlwby4KCjIwMDItMDYtMDQgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfYWZ0ZXJfcGFyc2VfYXJncyk6IE5ldyBmdW5jdGlvbi4KCShtZF9iZWdpbik6IE1vdmUgcHJvY2Vzc2luZyBvZiBkZWZhdWx0cyB0byBtaXBzX2FmdGVyX3BhcnNlX2FyZ3MuCgljb25maWcvdGMtbWlwcy5oIChtZF9hZnRlcl9wYXJzZV9hcmdzKTogRGVmaW5lLgoKMjAwMi0wNi0wNCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoc2g1Kik6IFNldCBjcHVfdHlwZSB0byBzaDY0IGFuZCBlbmRpYW4gdG8gYmlnLgoJKHNoNWxlKiwgc2g2NGxlKik6IFNldCBjcHVfdHlwZSB0byBzaDY0IGFuZCBlbmRpYW4gdG8gbGl0dGxlLgoJKHNoNSotKi1uZXRic2QqLCBzaDY0Ki0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaDY0X3RhcmdldF9mb3JtYXQpOiBBZGQgc3VwcG9ydCBmb3IgTmV0QlNECgllbnZpcm9ubWVudC4KCjIwMDItMDYtMDQgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcvdGMtc2g2NC5oIChNRF9QQ1JFTF9GUk9NX1NFQ1RJT04pOiBVbmRlZiBiZWZvcmUgcmVkZWZpbmluZy4KCjIwMDItMDYtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogU2V0IGFuZCBjaGVjayBlbGYKCWxpbmtvbmNlIGZsYWcuICBQcmludCBhbGwgd2FybmluZ3MuCgkob2JqX2VsZl9zZWN0aW9uKTogUGFyc2UgIixjb21kYXQiIGZvciBncm91cHMuCgkoZWxmX2Zyb2JfZmlsZSk6IFNldCBTRUNfTElOS19PTkNFIG9uIENPTURBVCBncm91cHMuICBDaGVjawoJY29uc2lzdGVuY3kgb2YgY29tZGF0IGZsYWcuCgoyMDAyLTA2LTAyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFscGhhLmMgKGFscGhhX2FkanVzdF9zeW10YWJfcmVsb2NzKTogRml4IHRoaW5rbwoJd2l0aCBMSVRFUkFMcyB3aXRob3V0IHNlcXVlbmNlIG51bWJlcnMuCgoyMDAyLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFscGhhLmM6IE1vdmUgTElUVVNFIGNvbnN0YW50cyB0byAiZWxmL2FscGhhLmgiLgoJUmVuYW1lIHRoZW0gTElUVVNFX0FMUEhBXyouCgoyMDAyLTA1LTMxICBTaHJpbml2YXMgQXRyZSA8U2hyaW5pdmFzQUBrcGl0LmNvbT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChnZXRfb3BlcmFuZCk6IEFsbG93IHN0bS5sIGFuZCBsZG0ubCBpbnNucyB0bwoJYWNjZXB0IHBhcmVudGhlc2VzIGVuY2xvc2VkIHJlZ2lzdGVyIGxpc3RzLgoKMjAwMi0wNS0zMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0zMSAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGkzODYtKi1udG8tcW54Ki4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfaXApOiBVc2UgdW5zaWduZWQgbG9uZyB2YWx1ZXMgZm9yCgl3YXJuaW5nIG91dHB1dC4KCjIwMDItMDUtMzEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChzX2Nwc2V0dXApOiBGaXggaW5pdGlhbGl6YXRpb24gb2YKCW1pcHNfY3ByZXR1cm5fcmVnaXN0ZXIgYW5kIG1pcHNfY3ByZXR1cm5fb2Zmc2V0LgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfY3BzZXR1cCk6IEZpeCBjb21tZW50LgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2JlZ2luKTogQWRkICRyYSBhcyBhbGlhcyBuYW1lIGZvciAkMzEuCgkobWlwc19pcCk6IExpa2V3aXNlLgoJKG1pcHMxNl9pcCk6IExpa2V3aXNlLgoJKHRjX2dldF9yZWdpc3Rlcik6IExpa2V3aXNlLgoKMjAwMi0wNS0zMCAgQ2hyaXMgRy4gRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCSAgICBFZCBTYXR0ZXJ0aHdhaXRlICA8ZWhzQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfc2V0X29wdGlvbnMpOiBOZXcgImFzZV9tZG14IiBtZW1iZXIuCgkobWlwc19vcHRzKTogSW5pdGlhbGl6ZSAiYXNlX21kbXgiIG1lbWJlci4KCShmaWxlX2FzZV9tZG14KTogTmV3IHZhcmlhYmxlLgoJKENQVV9IQVNfTURNWCk6IE5ldyBtYWNyby4KCShtZF9iZWdpbik6IEluaXRpYWxpemUgbWlwc19vcHRzLmFzZV9tZG14IGFuZCBmaWxlX2FzZV9tZG14CgliYXNlZCBvbiBjb21tYW5kIGxpbmUgb3B0aW9ucyBhbmQgY29uZmlndXJhdGlvbiBkZWZhdWx0cy4KCShtYWNyb19idWlsZCk6IE5vdGUgaW4gY29tbWVudCB0aGF0IHVzZSBvZiBNRE1YIGluIG1hY3JvcyBpcwoJbm90IGN1cnJlbnRseSBhbGxvd2VkLgoJKHZhbGlkYXRlX21pcHNfaW5zbik6IEFkZCBzdXBwb3J0IGZvciB0aGUgIk8iLCAiUSIsICJYIiwgIlkiLCBhbmQKCSJaIiBNRE1YIG9wZXJhbmQgdHlwZXMuCgkobWlwc19pcCk6IEFjY2VwdCBNRE1YIGluc3RydWN0aW9ucyBpZiBtaXBzX29wdHMuYXNlX21kbXggaXMgc2V0LAoJYW5kIGFkZCBzdXBwb3J0IGZvciB0aGUgIk8iLCAiUSIsICJYIiwgIlkiLCBhbmQgIloiIE1ETVggb3BlcmFuZAoJdHlwZXMuCgkoT1BUSU9OX01ETVgsIE9QVElPTl9OT19NRE1YLCBtZF9sb25nb3B0cywgbWRfcGFyc2Vfb3B0aW9uKToKCUFkZCBzdXBwb3J0IGZvciAiLW1kbXgiIGFuZCAiLW5vLW1kbXgiIG9wdGlvbnMuCgkoT1BUSU9OX0VMRl9CQVNFKTogTW92ZSB0byBhY2NvbW1vZGF0ZSBuZXcgb3B0aW9ucy4KCShzX21pcHNzZXQpOiBTdXBwb3J0ICIuc2V0IG1kbXgiIGFuZCAiLnNldCBub21kbXgiLgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBTZXQgTURNWCBBU0UgRUxGIGhlYWRlciBmbGFnIGlmCglmaWxlX2FzZV9tZG14IHdhcyBzZXQuCgkqIGRvYy9hcy50ZXhpbmZvOiBEb2N1bWVudCAtbWRteCBhbmQgLW5vLW1kbXggb3B0aW9ucy4KCSogZG9jL2MtbWlwcy50ZXhpOiBMaWtld2lzZSwgYW5kIGRvY3VtZW50ICIuc2V0IG1kbXgiIGFuZCAiLnNldAoJbm9tZG14IiBkaXJlY3RpdmVzLgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKE9QVElPTl9OT19NNzAwMF9ISUxPX0ZJWCk6IFJlbmFtZSB0bwoJT1BUSU9OX01OT183MDAwX0hJTE9fRklYLiBBZGQgYWx0ZXJuYXRlICJtbm8tZml4NzAwMCIKCWNvbW1hbmQgbGluZSBzd2l0Y2ggY29uZm9ybWluZyB0byBnY2MgY29udmVudGlvbnMuCgkqIGRvYy9jLW1pcHMudGV4aTogRG9jdW1lbnQgLW1uby1maXg3MDAwIGluc3RlYWQgb2Ygbm8tbWZpeC03MDAwLgoKMjAwMi0wNS0zMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvX2J1aWxkX2phbHIpOiBOZXcgRnVuY3Rpb24uCgkobWRfYmVnaW4pOiBOZXdBQkkgdXNlcyBiaWcgR09Ucy4KCShtYWNyb19idWlsZCk6IFJlY29nbml6ZSBCRkRfUkVMT0NfTUlQU19HT1RfRElTUCwKCUJGRF9SRUxPQ19NSVBTX0dPVF9QQUdFLCBCRkRfUkVMT0NfTUlQU19HT1RfT0ZTVCBhcyB2YWxpZC4KCShsb2FkX2FkZHJlc3MpOiBBZGQgc29tZSBOZXdBQkkgUElDIHN1cHBvcnQuCgkobWFjcm8pOiBMaWtld2lzZS4KCShtZF9hcHBseV9maXgpOiBTcGVjaWFsIGhhbmRsaW5nIGZvciBCRkRfUkVMT0NfTUlQU19KQUxSLgoJKHRjX2dlbl9yZWxvYyk6IERvbid0IGVuY29kZSBOZXdBQkkgdnRhYmxlcyBpbiBSRUwgcmVsb2NhdGlvbnMuCgoyMDAyLTA1LTMxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobG9hZF9hZGRyZXNzKTogVXNlIG1pcHNfZ3BfcmVnaXN0ZXIgaW5zdGVhZAoJb2YgaGFyZGNvZGVkIHZhbHVlLiBSZW1vdmUgZGJsIHBhcmFtZXRlciwgdXNlIEhBVkVfMzJCSVRfQUREUkVTU0VTCglpbnN0ZWFkLgoJKG1hY3JvKTogVXNlIG1pcHNfZ3BfcmVnaXN0ZXIgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWUuCgoyMDAyLTA1LTMwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZXhwci5oIChvcGVyYXRvclQpOiBBZGQgT19tZDE3Li5PX21kMzIuCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChPX2xpdHVzZV90bHNnZCwgT19saXR1c2VfdGxzbGRtLCBPX3Rsc2dkLAoJT190bHNsZG0sIE9fZ290ZHRwcmVsLCBPX2R0cHJlbGhpLCBPX2R0cHJlbGxvLCBPX2R0cHJlbCwgT19nb3R0cHJlbCwKCU9fdHByZWxoaSwgT190cHJlbGxvLCBPX3RwcmVsKTogTmV3LgoJKFVTRVJfUkVMT0NfUCwgYWxwaGFfcmVsb2Nfb3BfdGFnLCBkZWJ1Z19leHApOiBJbmNsdWRlIHRoZW0uCgkoRFVNTVlfUkVMT0NfTElUVVNFX1RMU0dELCBEVU1NWV9SRUxPQ19MSVRVU0VfVExTTERNKTogTmV3LgoJKExJVFVTRV9UTFNHRCwgTElUVVNFX1RMU0xETSk6IE5ldy4KCShzdHJ1Y3QgYWxwaGFfcmVsb2NfdGFnKTogQWRkIG1hc3Rlciwgc2F3X3Rsc2dkLCBzYXdfdGxzbGQsCglzYXdfbHVfdGxzZ2QsIHNhd19sdV90bHNsZG0uICBNYWtlIG11bHRpX3NlY3Rpb25fcCBhIGJpdCBmaWVsZC4KCShtZF9hcHBseV9maXgzKTogSGFuZGxlIFRMUyByZWxvY2F0aW9ucy4KCShhbHBoYV9mb3JjZV9yZWxvY2F0aW9uLCBhbHBoYV9maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKGFscGhhX2FkanVzdF9zeW10YWJfcmVsb2NzKTogU29ydCBMSVRFUkFMIHJlbG9jcyBhZnRlciB0aGUKCWFzc29jaWF0ZWQgVExTIHJlbG9jLiAgQ2hlY2sgbGl0dXNlX3RscyByZWxvY3MgbWF0Y2ggdXAuCgkoZW1pdF9pbnNuKTogSGFuZGxlIFRMUyByZWxvY2F0aW9ucy4KCShsZFhfb3ApOiBSZW1vdmUuCgoJKiBkb2MvYy1hbHBoYS50ZXhpOiBBZGQgZG9jcyBmb3IgdGxzIHJlbG9jYXRpb25zLgoKMjAwMi0wNS0zMCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfZ3ByZWxfb2Zmc2V0KTogTmV3IHZhcmlhYmxlLgoJKHNfZ3B2YWx1ZSk6IFVzZSBpdC4KCjIwMDItMDUtMzAgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogZ2FzL2NvbmZpZy90Yy1kMTB2LmMgKGNoZWNrX3Jlc291cmNlX2NvbmZsaWN0KTogT25seSBjaGVjawoJd3JpdGUtd3JpdGUgY29uZmxpY3RzLgoJKG1kX2Fzc2VtYmxlKTogUmVmb3JtYXQgaW50cm9kdWN0b3J5IGNvbW1lbnQuCgkocGFyYWxsZWxfb2spOiBQcmV2ZW50IHBhY2tpbmcgb25seSBpZiB0aGUgZmlyc3QKCWluc3RydWN0aW9uIGNhbm5vdCBiZSBwYWNrZWQuCgoyMDAyLTA1LTMwICBKYXNvbiBFY2toYXJkdCA8amxlQHJlZGhhdC5jb20+CgkgICAgVG9tIFJpeCA8dHJpeEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWQxMHYuYyAoYnVpbGRfaW5zbik6IENoZWNrIGZvciBpbW1lZGlhdGVzLgoKMjAwMi0wNS0yOCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmM6IFJlcGxhY2UgR1AgaW4gY29tbWVudHMgYnkgJGdwLgoJKG1pcHNfYmlnX2dvdCk6IEluaXRpYWxpemUuCgkobWlwc190cmFwKTogSW5pdGlhbGl6ZS4KCShsb2FkX2FkZHJlc3MpOiBVc2UgbWlwc19ncF9yZWdpc3RlciBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZS4KCVJlbW92ZSBkYmwgcGFyYW1ldGVyLCB1c2UgSEFWRV8zMkJJVF9BRERSRVNTRVMgaW5zdGVhZC4KCShtYWNybyk6IFVzZSBtaXBzX2dwX3JlZ2lzdGVyIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlLgoJKG1hY3JvMik6IENoYW5nZSBsb2FkX2FkZHJlc3MgY2FsbHMuCgkobWRfcGNyZWxfZnJvbSk6IENvbW1lbnQgZm9ybWF0dGluZy4KCShzX2NwbG9hZCk6IFVzZSBtaXBzX2dwX3JlZ2lzdGVyIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlLgoJKHNfY3ByZXN0b3JlKTogTGlrZXdpc2UuIENvbW1lbnQgZm9ybWF0dGluZy4KCShzX2dwd29yZCk6IEZpeCBkYXRhIHR5cGUuCgkoc19jcGFkZCk6IFVzZSBtaXBzX2dwX3JlZ2lzdGVyIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlLgoJKG5vcGljX25lZWRfcmVsYXgpOiBSZXBsYWNlIEdQIGluIGNvbW1lbnRzIGJ5ICRncC4KCShtaXBzX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogQmV0dGVyIGNvbW1lbnQuCgoyMDAyLTA1LTI4ICBLdWFuZyBId2EgTGluIDxrdWFuZ0BzYmNnbG9iYWwubmV0PgoKCSogY29uZmlndXJlLmluOiBBZGQgRExYIGNvbmZpZ3VyYXRvbgoJKiBNYWtlZmlsZS5hbTogQWRkIERMWCBjb25maWd1cmF0b24KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnL3RjLWRseC5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3RjLWRseC5oOiBOZXcgZmlsZXMuCgkqIE5FV1M6IE1lbnRpb24gbmV3IHN1cHBvcnQuCgoyMDAyLTA1LTI3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotY29mZi5jICh3cml0ZV9vYmplY3RfZmlsZSk6IEFkZCBtaXNzaW5nIHNlbWljb2xvbi4KCjIwMDItMDUtMjYgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX2VtaXRfZGVsYXlzKTogUmVwbGFjZSBtYWdpYyBjb25zdGFudCBmb3IgUkEKCWJ5IHRoZSBkZWZpbmUuIFJlbW92ZSBzdXBlcmZsdW91cyBjaGVjayBvZiBtaXBzX29wdHMubWlwczE2LgoJKGFwcGVuZF9pbnNuKTogTGlrZXdpc2UuIENhbm9uaWNhbGl6ZSB2YXJpYWJsZSBpbmNyZW1lbnRzLgoJKG1hY3JvX2J1aWxkKTogQ2Fub25pY2FsaXplIHZhcmlhYmxlIGluY3JlbWVudHMuCgkobWFjcm9fYnVpbGRfbHVpKTogTGlrZXdpc2UuCgkobG9hZF9yZWdpc3Rlcik6IExpa2V3aXNlLgoJKGxvYWRfYWRkcmVzcyk6IE1vdmUgcG9pbnRlciBpbml0aWFsaXphdGlvbi4KCShtYWNybyk6IE1vdmUgcG9pbnRlciB0byBhIG1vcmUgbG9jYWwgc2NvcGUuIENhbm9uaWNhbGl6ZSB2YXJpYWJsZQoJaW5jcmVtZW50cy4gQmV0dGVyIGNvbW1lbnRzLiBSZXBsYWNlIG1hZ2ljIGNvbnN0YW50IGZvciBSQSBieSB0aGUKCWRlZmluZS4KCShtYWNybzIpOiBSZXBsYWNlIG1hZ2ljIGNvbnN0YW50IGZvciBSQSBieSB0aGUgZGVmaW5lLiBDYW5vbmljYWxpemUKCXZhcmlhYmxlIGluY3JlbWVudHMuCgkobWlwc19pcCk6IENhbm9uaWNhbGl6ZSB2YXJpYWJsZSBpbmNyZW1lbnRzLgoJKG1pcHMxNl9pcCk6IFJlcGxhY2UgbWFnaWMgY29uc3RhbnQgZm9yIFJBIGJ5IHRoZSBkZWZpbmUuCgkobXlfZ2V0U21hbGxQYXJzZXIpOiBDYW5vbmljYWxpemUgdmFyaWFibGUgaW5jcmVtZW50cy9kZWNyZW1lbnRzLgoJKG15X2dldFBlcmNlbnRPcCk6IExpa2V3aXNlLgoJKG15X2dldFNtYWxsRXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKHNfYWxpZ24pOiBMaWtld2lzZS4KCShzX21pcHNzZXQpOiBMaWtld2lzZS4KCShzX2Nwc2V0dXApOiBMaWtld2lzZS4KCShzX2luc24pOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2hlY2sgb2YgbWlwc19vcHRzLm1pcHMxNi4KCShzX21pcHNfc3RhYik6IExpa2V3aXNlLgoJKG1pcHNfaGFuZGxlX2FsaWduKTogQ2Fub25pY2FsaXplIHZhcmlhYmxlIGluY3JlbWVudHMuCgkoc19taXBzX2VudCk6IExpa2V3aXNlLgoJKHNfbWlwc19lbmQpOiBBZGQgY29tbWVudC4KCjIwMDItMDUtMjYgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWd1cmUuaW46IFVzZSBuczMyay0qLW5ldGJzZCogaW5zdGVhZCBvZiBuczMyay1wYzUzMi1uZXRic2QqLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW0gKE9CSlMpOiBEZXBlbmQgb24gYW5zaWRlY2wuaCBhbmQgZm9wZW4tc2FtZS5oLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZGVwLWluLnNlZDogUmVvcmRlciB0byBtYXRjaCBPQkpTIGluIE1ha2VmaWxlLmFtLgoJKiBjb25maWd1cmUuaW4gKEFMTF9PQkpfREVQUyk6IEFkZCBzeW1jYXQuaCB3aGVuIG5lZWRfYmZkLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGFzLmg6IFVzZSAjaW5jbHVkZSAiIiBpbnN0ZWFkIG9mIDw+IGZvciBsb2NhbCBoZWFkZXIgZmlsZXMuCgkqIGZsb251bS1rb25zdC5jOiBMaWtld2lzZS4KCSogZmxvbnVtLW11bHQuYzogTGlrZXdpc2UuCgkqIGdhc3AuYzogTGlrZXdpc2UuCgkqIGxpc3RpbmcuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pYTY0Lmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtdjg1MC5oOiBMaWtld2lzZS4KCjIwMDItMDUtMjQgIFRBTVVSQSBLZW50IDxrZW50QG5ldGJzZC5vcmc+CgoJKiBjb25maWd1cmUuaW46IEFkZCBhIHRhcmdldCBmb3IgaTM4Ni1uZXRic2RwZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChlbGZfY29tbW9uKTogUmVuYW1lZCBmcm9tIG9ial9lbGZfY29tbW9uLgoJKG9ial9lbGZfY29tbW9uKTogQ2FsbCBlbGZfY29tbW9uLgoJKG9ial9lbGZfdGxzX2NvbW1vbik6IE5ldyBmdW5jdGlvbi4KCShlbGZfcHNldWRvX3RhYik6IFN1cHBvcnQgLnRsc19jb21tb24uCgkoc3BlY2lhbF9zZWN0aW9ucyk6IEFkZCAudGRhdGEgYW5kIC50YnNzLgoJKG9ial9lbGZfY2hhbmdlX3NlY3Rpb24pOiBTZXQgU0VDX1RIUkVBRF9MT0NBTCBmb3IgU0hGX1RMUwoJc2VjdGlvbnMuCgkob2JqX2VsZl9wYXJzZV9zZWN0aW9uX2xldHRlcnMpOiBTdXBwb3J0IFQgaW4gc2VjdGlvbiBmbGFncyAoU0hGX1RMUykuCgkob2JqX2VsZl9wYXJzZV9zZWN0aW9uX2xldHRlcnMpOiBJbmNsdWRlIFQgaW4gZXJyb3IgbWVzc2FnZS4KCSogY29uZmlnL3RjLXBwYy5jIChwcGNfc2VjdGlvbl9sZXR0ZXIpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWFscGhhLmMgKGFscGhhX2VsZl9zZWN0aW9uX2xldHRlcik6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyk6IEhhbmRsZSBTRUNfVEhSRUFEX0xPQ0FMIHRoZSBzYW1lIHdheSBhcwoJU0VDX01FUkdFLgoJKiBjb25maWcvdGMtc3BhcmMuYyAobWRfYXBwbHlfZml4Myk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaTM4Ni5jICh0Y19pMzg2X2ZpeF9hZGp1c3RhYmxlKTogQWRkIFRMUyByZWxvY3MuCglEZWZpbmUgdGhlbSBpZiBub3QgQkZEX0FTU0VNQkxFUi4KCShsZXhfZ290KTogU3VwcG9ydCBAVExTR0QsIEBUTFNMRE0sIEBHT1RUUE9GRiwgQFRQT0ZGLCBARFRQT0ZGCglhbmQgQE5UUE9GRi4KCShtZF9hcHBseV9maXgzKTogQWRkIFRMUyByZWxvY3MuCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGVudW0gcmVsb2NfZnVuYyk6IEFkZCBGVU5DX0RUUF9NT0RVTEUsCglGVU5DX0RUUF9SRUxBVElWRSwgRlVOQ19UUF9SRUxBVElWRSwgRlVOQ19MVF9EVFBfTU9EVUxFLAoJRlVOQ19MVF9EVFBfUkVMQVRJVkUsIEZVTkNfTFRfVFBfUkVMQVRJVkUuCgkocHNldWRvX2Z1bmMpOiBTdXBwb3J0IEBkdHBtb2QoKSwgQGR0cHJlbCgpIGFuZCBAdHByZWwoKS4KCShpYTY0X2VsZl9zZWN0aW9uX2xldHRlcik6IEluY2x1ZGUgVCBpbiBlcnJvciBtZXNzYWdlLgoJKG1kX2JlZ2luKTogU3VwcG9ydCBUTFMgb3BlcmF0b3JzLgoJKG1kX29wZXJhbmQpOiBMaWtld2lzZS4KCShpYTY0X2dlbl9yZWFsX3JlbG9jX3R5cGUpOiBTdXBwb3J0IFRMUyByZWxvY3MuCgkqIHdyaXRlLmMgKGFkanVzdF9yZWxvY19zeW1zKTogRG9uJ3QgY2hhbmdlIHN5bWJvbHMgaW4KCVNFQ19USFJFQURfTE9DQUwgc2VjdGlvbnMgdG8gU1RUX1NFQ1RJT04gKyBhZGRlbmQuCgoyMDAyLTA1LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAobWRfYXBwbHlfZml4Myk6IEZvciB0aGUgVGh1bWIgQkxYIHJlbG9jCglyb3VuZCB0aGUgcmVsb2NhdGlvbiB1cCByYXRoZXIgdGhhbiBkb3duLgoKMjAwMi0wNS0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWNvZmYuYyAob2JqX2NvZmZfc2VjdGlvbik6IFNpbGVudGx5IGlnbm9yZSBhbiAnYScKCWZsYWcuCgkqIGRvYy9hcy50ZXhpbmZvOiBEb2N1bWVudCB0aGF0IHRoZSBDT0ZGIHZlcnNpb24gb2YgLnNlY3Rpb24KCWlnbm9yZXMgdGhlICdhJyBmbGFnLgoKMjAwMi0wNS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChhc3NlbWJsZV90b2tlbnMpOiBQcm90ZWN0IHVzZSBvZgoJQUxQSEFfUkVMT0NfVEFCTEUgd2l0aCAjaWZkZWYgUkVMT0NfT1BfUC4KCgkqIHdyaXRlLmMgKHNpemVfc2VnKTogQ2hlY2sgYWRqdXN0bWVudCB0byBsYXN0IGZyYWcuCgkoU1VCX1NFR01FTlRfQUxJR04pOiBJZiBIQU5ETEVfQUxJR04gZGVmaW5lZCwgcGFkIG91dCBsYXN0IGZyYWcgdG8KCXNlY3Rpb24gYWxpZ25tZW50LgoJKiBjb25maWcvb2JqLWNvZmYuYyAoU1VCX1NFR01FTlRfQUxJR04pOiBMaWtld2lzZS4KCSogY29uZmlnL29iai1pZWVlLmMgKFNVQl9TRUdNRU5UX0FMSUdOKTogTGlrZXdpc2UuCgkod3JpdGVfb2JqZWN0X2ZpbGUpOiBJbnZva2UgbWRfZG9fYWxpZ24gaWYgYXZhaWxhYmxlLCBhbmQgdXNlCglmcmFnX2FsaWduX2NvZGUgb24gdGV4dCBzZWN0aW9ucy4KCSogY29uZmlnL29iai12bXMuaCAoU1VCX1NFR01FTlRfQUxJR04pOiBOb3cgdHdvIGFyZ3MuCgkqIGNvbmZpZy90Yy1tODhrLmggKFNVQl9TRUdNRU5UX0FMSUdOKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wcGMuaCAoU1VCX1NFR01FTlRfQUxJR04pOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoLmggKFNVQl9TRUdNRU5UX0FMSUdOKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1pMzg2LmggKFNVQl9TRUdNRU5UX0FMSUdOKTogTGlrZXdpc2UuICBEZWZpbmUgZm9yCglCRkRfQVNTRU1CTEVSIHRvby4KCjIwMDItMDUtMjIgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZHdhcmYyZGJnLmMgKGR3YXJmMl9kaXJlY3RpdmVfbG9jKTogQ2FsbCBsaXN0aW5nX3NvdXJjZV9maWxlCglmb3Igc291cmNlIGZpbGUuCgoyMDAyLTA1LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX3Nfc2VjdGlvbik6IEVuYWJsZSBmb3IgQ09GRiBidWlsZHMgYXMgd2VsbAoJYXMgRUxGIGJ1aWxkcy4KCjIwMDItMDUtMjIgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZHdhcmYyZGJnLmMgKGR3YXJmMl9lbWl0X2luc24pOiBFbWl0IG9ubHkgb25lIGxpbmUgc3ltYm9sCglmb3Igb25lIC5sb2MgZm9yIGNvbXBpbGVyLgoKMjAwMi0wNS0yMiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogUmVsYXggd2FybmluZywgaXQncyB0b290IHN0cmljdCBmb3IKCWVtYmVkZGVkLVBJQy4KCjIwMDItMDUtMjIgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNybzIpOiBBZGQgNjQgYml0IGRyb2wsIGRyb3IgbWFjcm9zLgoJT3B0aW1pemUgdGhlIHJvdGF0ZSBieSB6ZXJvIGNhc2UuCgoyMDAyLTA1LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlIGFjY2lkZW50YWwgZW5hYmxpbmcgb2YgYmZkX2dhcz15ZXMgZm9yCglzaC1jb2ZmIHRhcmdldHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMTggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBhcHAuYzogRml4IGZvcm1hdHRpbmcuCgkqIGFzLmM6IExpa2V3aXNlLgoJKiBlaG9wdC5jOiBMaWtld2lzZS4KCSogZXhwci5jOiBMaWtld2lzZS4KCSogaW5wdXQtZmlsZS5jOiBMaWtld2lzZS4KCSogbGlzdGluZy5jOiBMaWtld2lzZS4KCSogbWFjcm8uaDogTGlrZXdpc2UuCgkqIHN0YWJzLmM6IExpa2V3aXNlLgoJKiBzeW1ib2xzLmM6IExpa2V3aXNlLgoKMjAwMi0wNS0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9vYmotZ2VuZXJpYy5jOiBEZWxldGUgZmlsZS4KCSogY29uZmlnL29iai1nZW5lcmljLmg6IExpa2V3aXNlLgoKMjAwMi0wNS0xNiAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBhbWVsZWsuZ2RhLnBsPgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBVcGRhdGUgZm9yIG5ldyBkZXZpY2VzLgoKMjAwMi0wNS0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvKTogV2FybiBhYm91dCB3cm9uZyBsYS9kbGEgdXNlLgoKMjAwMi0wNS0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Y19taXBzLmMgKHNfY3BzZXR1cCk6IEZpeCBjb21wbGV0ZWx5IGJvZ3VzIGNvZGUgd2hpY2ggaGFkCgl3b3JrZWQgc29tZXRpbWVzIGJ5IGFjY2lkZW50LiBGaXggY29weSZwYXN0ZSBjb21tZW50LgoKMjAwMi0wNS0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2JlZ2luKTogRml4IC5yZWdpbmZvIGFuZCAuTUlQUy5vcHRpb24gc2VjdGlvbgoJYWxpZ25tZW50IGZvciBOZXdBQkkuIExldCBuMzIgdXNlIC5yZWdpbmZvLiBSZW1vdmUgdXNlbGVzcyBjYXN0cy4KCShtaXBzX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogTGV0IG4zMiB1c2UgLnJlZ2luZm8uCgoyMDAyLTA1LTE1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoYXBwZW5kX2luc24pOiBGaXggdG9vIHNtYWxsIHJhbmdlIG9mIHZhcmlhYmxlLgoKMjAwMi0wNS0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9jbGVhbnVwKTogUmVtb3ZlIHJlZHVuZGFudCBjYWxsIHRvCglsaXN0aW5nX3ByZXZfbGluZSgpLgoKMjAwMi0wNS0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKG1kX2Fzc2VtYmxlKTogUmVtb3ZlIHJlZHVuZGFudCBjYWxsIHRvCglsaXN0aW5nX3ByZXYoKS4KCgkqIGR3YXJmMmRiZy5jIChkd2FyZjJfZW1pdF9pbnNuKTogRG8gbm90IHJlc2V0Cglsb2NfZGlyZWN0aXZlX3NlZW4uCgoJKiBzdGFicy5jIChzX3N0YWJfZ2VuZXJpYyk6IEZpeCBncmFtbWF0aWNhbCBlcnJvciBpbiB3YXJuaW5nCgltZXNzYWdlLgoKMjAwMi0wNS0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKHN1YnNlZ3NfZmluaXNoKTogRG9uJ3Qgc3BlY2lhbGx5IGFsaWduIGxhc3Qgc3Vic2VnLgoKMjAwMi0wNS0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBzdGFicy5jIChzX3N0YWJfZ2VuZXJpYyk6IFdhcm4gYWJvdXQgYSBkZXNjcmlwdGlvbiBmaWVsZCB0aGF0IGlzCgl0b28gYmlnLgoKCSogY29uZmlnL29iai1jb2ZmLmM6IEZpeCBjb21waWxlIHRpbWUgd2FybmluZ3Mgd2hlbiBjb21waWxpbmcKCXdpdGhvdXQgQkZEX0FTU0VNQkxFUiBkZWZpbmVkLgoJRml4IGZvcm1hdHRpbmcuCgoJKiBjb25maWcvdGMtc2guYyAobWRfcGNyZWxfZnJvbSk6IERlZmluZSBmb3IgdXNlIHdpdGggc2gtaG1zCgl0YXJnZXQuCgkobWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogVXNlIG1kX3BjcmVsX2Zyb20oKS4KCjIwMDItMDUtMTEgIEJydW5vIEhhaWJsZSAgPGJydW5vQGNsaXNwLm9yZz4KCgkqIGR3YXJmMmRiZy5jIChkd2FyZjJfZW1pdF9pbnNuKTogVXNlIHRoZSAnY3VycmVudCcgc3RydWN0IGZpbGxlZAoJYnkgZHdhcmYyX2RpcmVjdGl2ZV9sb2MsIGluc3RlYWQgb2YgY2FsbGluZyBkd2FyZjJfd2hlcmUuCgoyMDAyLTA1LTExICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL29iai1jb2ZmLmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb25maWcvdGMtbWNvcmUuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1tbjEwMzAwLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtb3BlbnJpc2MuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1vcjMyLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtcGRwMTEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wcGMuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wcGMuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaDY0LmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtc2guYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy10aWM1NHguYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy14c3Rvcm15MTYuaDogTGlrZXdpc2UuCgoyMDAyLTA1LTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL29iai1jb2ZmLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb25maWcvb2JqLWVsZi5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWFscGhhLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYXJtLmM6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtZDEwdi5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWQzMHYuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1oODMwMC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWhwcGEuYzogTGlrZXdpc2UuCgoyMDAyLTA1LTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpIERvbid0IGxvc2UKCXJlbG9jIHdoZW4gbm9fY29uZF9qdW1wX3Byb21vdGlvbi4KCjIwMDItMDUtMDggIEppbSBXaWxzb24gIDx3aWxzb25AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pOTYwLmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogUmV0dXJuIHNpemUgb2YKCWN1cnJlbnQgdmFyaWFibGUgcGFydCBvZiBmcmFnLgoKMjAwMi0wNS0wOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy90Yy1tbWl4LmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb25maWcvdGMtbW1peC5oOiBMaWtld2lzZS4KCjIwMDItMDUtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTA3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3RjLW02OGsuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAyLTA1LTA3ICBGZWRlcmljbyBHLiBTY2h3aW5kdCA8ZmdzY2hAb2xpbXBvLmNvbS5icj4KCgkqIE1ha2VmaWxlLmFtOiBIb25vdXIgREVTVERJUi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTA2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3RjLWlhNjQuYzogRml4IGZvcm1hdHRpbmcuCgkqIGNvbmZpZy90Yy1pYTY0Lmg6IExpa2V3aXNlLgoKMjAwMi0wNS0wNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy90Yy1taXBzLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb25maWcvdGMtczM5MC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXMzOTAuaDogTGlrZXdpc2UuCgoyMDAyLTA1LTAzICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKG1kX2dhdGhlcl9vcGVyYW5kcyk6IEVtaXQgZHdhcmYyIGxpbmUtbnVtYmVyCglpbmZvcm1hdGlvbiBmb3IgaW5zdHJ1Y3Rpb25zLgoKMjAwMi0wNS0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGFzLmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBjZ2VuLmM6IExpa2V3aXNlLgoJKiBjZ2VuLmg6IExpa2V3aXNlLgoJKiBkd2FyZjJkYmcuYzogTGlrZXdpc2UuCgkqIGZyYWdzLmg6IExpa2V3aXNlLgoJKiBnYXNwLmM6IExpa2V3aXNlLgoJKiBtYWNyby5jOiBMaWtld2lzZS4KCSogcmVhZC5jOiBMaWtld2lzZS4KCSogc3RhYnMuYzogTGlrZXdpc2UuCgkqIHN5bWJvbHMuYzogTGlrZXdpc2UuCgoyMDAyLTA1LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXBwLmMgKG1yaV9wc2V1ZG8pOiBPbmx5IGRlY2xhcmUgZm9yIFRDX002OEsuCgoJKiBjb25maWcvdGMtcHBjLmMgKG1hcHBpbmcpOiBNYXAgc2VjdG9mZiB0byBCRkRfUkVMT0NfMTZfQkFTRVJFTC4KCShwcGNfZWxmX3ZhbGlkYXRlX2ZpeCk6IFJlcGxhY2UgQkZEX1JFTE9DXzMyX0JBU0VSRUwgd2l0aAoJQkZEX1JFTE9DXzE2X0JBU0VSRUwuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4KCShtZF9hcHBseV9maXgzKTogTGlrZXdpc2UuCgoyMDAyLTA1LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAodGh1bWJfYWRkX3N1Yik6IERvIG5vdCBjb252ZXJ0IGEgc3VidHJhY3Qgb2YKCXplcm8gaW50byBhbiBhZGQgb2YgemVybyAtIGl0IGlzIG5vdCB0aGUgc2FtZS4KCjIwMDItMDUtMDEgIEFyYXRpIERpa2V5IDxhcmF0aWRAa3BpdC5jb20+CgoJKiB0Yy1zaC5jIChnZXRfc3BlY2lmaWMpOiBHZW5lcmF0ZSB3YXJuaW5nIGlmIHRoZSBzYW1lCglkZXN0aW5hdGlvbiByZWdpc3RlciBpcyB1c2VkIGluIHBhcmFsbGVsIGluc3RydWN0aW9ucy4KCjIwMDItMDUtMDEgIEFuZHJldyBNYWNsZW9kICA8YW1hY2xlb2RAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGV4dHJhX3N5bWJvbF9jaGFycyk6IEFkZCAnWycgdG8gdGhlIGxpc3QuCgoyMDAyLTA1LTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAoY3Z0X2ZyYWdfdG9fZmlsbCk6IFNldCBmcl9vZmZzZXQgdG8gemVybyBvbiAub3JnCgliYWNrd2FyZHMgdG8gcHJldmVudCBjYXNjYWRpbmcgZXJyb3JzLgoKMjAwMi0wNC0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIHBvd2VycGMtKi13aW5kaXNzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMi0wNC0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKG1kX3BhcnNlX29wdGlvbik6IEZvcm1hdHRpbmcuCgoJKiBjb25maWcvdGMtaTM4Ni5jOiBGb3JtYXR0aW5nIGZpeGVzLCBhZGQgbWlzc2luZyBzcGFjZSBpbiBlcnJvcgoJbWVzc2FnZS4KCjIwMDItMDQtMjQgIENocmlzdGlhbiBHcm9lc3NsZXIgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBjb25maWcvdGMtejhrLmMgKGJ1aWxkX2J5dGVzKTogQWRkIHN1cHBvcnQgZm9yIG5ldyBjYXNlczoKCUNMQVNTX0lHTk9SRSBhbmQgQVJHX05JTTQuCgkobWRfYXNzZW1ibGUpOiBQcmV2ZW50IGRlc3RydWN0aW9uIG9mIGlucHV0X2xpbmVfcG9pbnRlciBpZgoJZ2V0X29wZXJhbmRzIHJldHVybnMgZmFpbHVyZS4KCjIwMDItMDQtMjQgIENocmlzIEcuIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtYWNyb19idWlsZCk6IERvIF9ub3RfIGFsbG93IE1JUFMtM0QKCWluc3RydWN0aW9ucyB0byBiZSBnZW5lcmF0ZWQgYnkgbWFjcm9zLgoKMjAwMi0wNC0yNCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG91dHB1dF9qdW1wLCBvdXRwdXRfZGlzcCkKCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IERvbid0IHNldCBmeF9wY3JlbF9hZGp1c3QgYW55Cgltb3JlLgoJKG1kX2FwcGx5X2ZpeDMpOiBSZW1lbWJlciBhZGRlbmQgdmFsdWUgZm9yIHJlbGEgcmVsb2NhdGlvbnMuCgkodGNfZ2VuX3JlbG9jKTogQ29ycmVjdGx5IGNvbXB1dGUgcGMtcmVsYXRpdmUgcmVsb2NhdGlvbiBhZGRlbmQuCgoyMDAyLTA0LTIyICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWFjcm9fYnVpbGQpOiBBZGQgY2xvc2UtcGFyZW50aGVzaXMgbWlzc2luZwoJZnJvbSBwcmV2aW91cyBjaGFuZ2UuCgoyMDAyLTA0LTIyICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1hY3JvX2J1aWxkKTogQWRkIHdhcm5pbmcgaWYgbWFjcm8gaW5zdHJ1Y3Rpb25zCglhcmUgZXhwYW5kZWQgaW50byBhIGJyYW5jaCBkZWxheSBzbG90LgoKMjAwMi0wNC0xNyAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogZHdhcmYyZGJnLmMgKGR3YXJmMl9nZW5fbGluZV9pbmZvKTogRG8gZW1pdCBkdXBsaWNhdGUgbGluZQoJbnVtYmVycywgZ2RiIHJlbGllcyBvbiB0aGVtIHRvIGRldGVjdCB0aGUgc3RhcnQgb2YgdGhlIHByb2xvZ3VlLgoKMjAwMi0wNC0xNyAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKHRjX3MzOTBfZml4X2FkanVzdGFibGUpOiBQcmV2ZW50IGFkanVzdG1lbnRzIHRvCglzeW1ib2xzIGluIG1lcmdlIHNlY3Rpb25zLgoKMjAwMi0wNC0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFzLmMgKG1haW4pOiBEb24ndCByZWZlcmVuY2UgX2JmZF9jaHVua3NpemUuCgoyMDAyLTA0LTE1ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWQxMHYuYyAoZDEwdl9maXhfYWRqdXN0YWJsZSk6IFByZXZlbnQgYWRqdXN0bWVudHMgdG8KCXN5bWJvbHMgaW4gbWVyZ2Ugc2VjdGlvbnMuCgoyMDAyLTA0LTExICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBkb2MvaW52b2tlLnRleGkgKFRDX0xBUkdFU1RfRVhQT05FTlRfSVNfTk9STUFMKTogRG9jdW1lbnQuCgkqIGNvbmZpZy9hdG9mLWllZWUuYyAoVENfTEFSR0VTVF9FWFBPTkVOVF9JU19OT1JNQUwpOiBBZGQgYW4KCWFyZ3VtZW50IGZvciB0aGUgcHJlY2lzaW9uLgoJKGdlbl90b193b3Jkcyk6IFVwZGF0ZSBhY2NvcmRpbmdseS4KCjIwMDItMDQtMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhcy5jIChwYXJzZV9hcmdzIDxPUFRJT05fVkVSU0lPTj4pOiBVc2UgVkVSU0lPTiBpcwoJQkZEX1ZFUlNJT05fU1RSSU5HIHVuYXZhaWxhYmxlLgoJKiBjb25maWcvdGMtaTM4Ni5jIChJTkxJTkUpOiBEZWZpbmUgKGZvciBub24tQkZEIGFzc2VtYmxlcikuCgoyMDAyLTA0LTA5ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5oIChUQ19GSVhfQURKVVNUQUJMRSk6IERpc2FibGUgYWRqdXN0aW5nIGlmCglzeW1ib2xfdXNlZF9pbl9yZWxvY19wIGlzIHRydWUuCgoJKiBjb25maWcvdGMtc2guYyAobWRfYXBwbHlfZml4Myk6IERvbid0IHplcm8gcmVsb2NhdGlvbnMgb24gYmlnCgllbmRpYW4gaG9zdHMuCgoyMDAyLTA0LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZGVwLWluLnNlZDogQ29wZSB3aXRoIGFic29sdXRlIHBhdGhzLgoJKiBNYWtlZmlsZS5hbSAoZGVwLnNlZCk6IFN1YnN0IFRPUERJUi4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDQtMDQgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzMTZfbWFjcm9fYnVpbGQpOiBDYXN0IHR5cGUgbWlzbWF0Y2guCgkobWlwc19pcCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkobWRfYXBwbHlfZml4Myk6IENhc3Qgc2lnbmVkL3Vuc2lnbmVzIG1pc21hdGNoZXMuIFJlcGxhY2UKCXVuc2lnbmVkIGNoYXIgd2l0aCBiZmRfYnl0ZS4KCShzX2ZpbGUpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJKHNfbWlwc19lbnQpOiBMaWtld2lzZS4KCjIwMDItMDQtMDMgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtZDEwdi5jIChkMTB2X2luc2VydF9vcGVyYW5kKTogRml4IHdhcm5pbmcgaW4gYXNfYmFkX3doZXJlLgoJKGJ1aWxkX2luc24pOiBTYW1lLgoJKGZpbmRfb3Bjb2RlKTogRml4IHdhcm5pbmcgaW4gYXNfd2Fybi4KCSogY29uZmlnL3RjLWQxMHYuaDogVXBkYXRlIENvcHlyaWdodC4KCjIwMDItMDQtMDMgIEFsYW4gTWF0c3Vva2EgPGFsYW5tQHJlZGhhdC5jb20+CgkgICAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCglGcm9tIEplZmYgS25hZ2dzIDxqa25hZ2dzQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1kMTB2LmMgKGNoZWNrX3Jlc291cmNlX2NvbmZsaWN0KTogTmV3IGZ1bmN0aW9uIHRvCgljaGVjayBmb3IgcmVzb3VyY2UgY29uZmxpY3RzLgoKCUZyb20gSmFzb24gRWNraGFyZHQgIDxqbGVAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLWQxMHYuYyAoYnVpbGRfaW5zbik6IENoZWNrIGZvciB1bnJlc29sdmVkIGltbTQgb3IKCWltbTMgZmllbGRzLgoJKiBjb25maWcvdGMtZDEwdi5jIChmaW5kX29wY29kZSk6IEVtaXQgYSB3YXJuaW5nIGlmIG9uZSBvZiB0aGUKCXJlc2VydmVkIGNvbnRyb2wgcmVnaXN0ZXJzIGlzIHVzZWQuCgkqIGNvbmZpZy90Yy1kMTB2LmMgKGJ1aWxkX2luc24pOiBDaGVjayBmb3IgdW5yZXNvbHZlZCBpbW00IG9yCglpbW0zIGZpZWxkcy4KCglGcm9tIDIwMDEtMDMtMjggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoJKiB0Yy1kMTB2LmMgKHBhcmFsbGVsX29rKTogUHJldmVudCBwYWNraW5nIG9ubHkgaWYgdGhlIGZpcnN0CglpbnN0cnVjdGlvbiBjYW5ub3QgYmUgcGFja2VkLgoKCUZyb20gMjAwMS0wMy0zMCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgkqIGdhcy9jb25maWcvdGMtZDEwdi5jIChjaGVja19yZXNvdXJjZV9jb25mbGljdCk6IE9ubHkgY2hlY2sKCXdyaXRlLXdyaXRlIGNvbmZsaWN0cy4KCShtZF9hc3NlbWJsZSk6IFJlZm9ybWF0IGludHJvZHVjdG9yeSBjb21tZW50LgoJKiBvcGNvZGVzL2QxMHYtb3BjLmMgKGQxMHZfb3Bjb2Rlcyk6IGBidHN0aScgZG9lcyBub3QgbW9kaWZ5IGl0cwoJYXJndW1lbnRzLgoKMjAwMi0wNC0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHN5bWJvbHMuYyAocmVzb2x2ZV9zeW1ib2xfdmFsdWUgPE9fdW1pbnVzLCBPX2JpdF9ub3QsCglPX2xvZ2ljYWxfbm90Pik6IERlcml2ZSBmaW5hbF9zZWcgZnJvbSBhZGRfc3ltYm9sLgoJPE9fbXVsdGlwbHkuLk9fbG9naWNhbF9vcj46IE1vcmUgZmluYWxfc2VnIHR3aWRkbGVzLgoKMjAwMi0wNC0wMSAgSmVzc2ljYSBIYW4gIDxqZXNzaWNhQGN1cC5ocC5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jIChpYTY0X2NvbnNfZml4X25ldyk6IEhhbmRsZSA4IGJ5dGUgaXBsdCByZWxvYwoJaW4gMzItYml0IG1vZGUuCgoyMDAyLTAzLTI3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogY29uZmlnL3RjLWkzODYuYyAob3V0cHV0X2p1bXApOiBTZXQgZnhfcGNyZWxfYWRqdXN0IHRvIHNpemUgb2YKCWZpZWxkIGZvciBwYy1yZWxhdGl2ZSBmaXh1cHMuCgkob3V0cHV0X2Rpc3ApOiBMaWtld2lzZS4KCShtZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IExpa2V3aXNlLgoJKHRjX2dlbl9yZWxvYyk6IFN1YnRyYWN0IGZ4X3BjcmVsX2FkanVzdCBpbnN0ZWFkIG9mIGZ4X3NpemUgZm9yCglwYy1yZWxhdGl2ZSBmaXh1cHMgaW4gNjRiaXQgbW9kZS4KCjIwMDItMDMtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGUtYWl4NS5oOiBUeXBvIGZpeC4KCjIwMDItMDMtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAzLTIwICBBbGJlcnQgQ2hpbi1BLVlvdW5nICA8Y2hpbmFAdGhld3JpdHRlbndvcmQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jICh2ZnBfZHBfcmVnX3JlcXVpcmVkX2hlcmUpOiBGaXggdHlwbwoJKHZmcF9zcF9yZWdfcG9zIC0+IHZmcF9kcF9yZWdfcG9zKS4KCjIwMDItMDMtMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBEbyBub3QgbW9kaWZ5Cgl0aGUgRVhURU5ERUQgYml0IGhlcmU7IHJlcG9ydCB0aGUgZXN0aW1hdGUgYWNjb3JkaW5nIHRvIHRoZQoJY3VycmVudCBzaXplLgoKMjAwMi0wMy0xOCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIEFJWCA1IHN1cHBvcnQuCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX3RhcmdldF9mb3JtYXQpOiBBZGQgQUlYIDUgNjQgYml0IHRhcmdldC4KCSogY29uZmlnL3RlLWFpeDUuaDogTmV3IGZpbGUuIEFJWCA1IHN1cHBvcnQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDMtMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDMtMTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGRvYy9jLW1pcHMudGV4aSAoTWFjaGluZSBEZXBlbmRlbmNpZXMpOiBBZGQgbmV3IG5vZGUuCgoyMDAyLTAzLTE1ICBDaHJpcyBHLiBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19zZXRfb3B0aW9ucyk6IE5ldyAiYXNlX21pcHMzZCIgbWVtYmVyLgoJKG1pcHNfb3B0cyk6IEluaXRpYWxpemUgImFzZV9taXBzM2QiIG1lbWJlci4KCShmaWxlX2FzZV9taXBzM2QpOiBOZXcgdmFyaWFibGUuCgkoQ1BVX0hBU19NSVBTM0QpOiBOZXcgbWFjcm8uCgkobWRfYmVnaW4pOiBJbml0aWFsaXplIG1pcHNfb3B0cy5hc2VfbWlwczNkIGFuZCBmaWxlX2FzZV9taXBzM2QKCWJhc2VkIG9uIGNvbW1hbmQgbGluZSBvcHRpb25zIGFuZCBjb25maWd1cmF0aW9uIGRlZmF1bHRzLgoJKG1hY3JvX2J1aWxkLCBtaXBzX2lwKTogQWNjZXB0IE1JUFMtM0QgaW5zdHJ1Y3Rpb25zIGlmCgltaXBzX29wdHMuYXNlX21pcHMzZCBpcyBzZXQuCgkoT1BUSU9OX01JUFMzRCwgT1BUSU9OX05PX01JUFMzRCwgbWRfbG9uZ29wdHMsIG1kX3BhcnNlX29wdGlvbik6CglBZGQgc3VwcG9ydCBmb3IgIi1taXBzM2QiIGFuZCAiLW5vLW1pcHMzZCIgb3B0aW9ucy4KCShPUFRJT05fRUxGX0JBU0UpOiBNb3ZlIHRvIGFjY29tbW9kYXRlIG5ldyBvcHRpb25zLgoJKHNfbWlwc3NldCk6IFN1cHBvcnQgIi5zZXQgbWlwczNkIiBhbmQgIi5zZXQgbm9taXBzM2QiLgoJKG1pcHNfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBBZGQgYSBjb21tZW50IGluZGljYXRpbmcgdGhhdCBhCglNSVBTLTNEIEFTRSBFTEYgaGVhZGVyIGZsYWcgc2hvdWxkIGJlIHNldCwgd2hlbiBvbmUgZXhpc3RzLgoJKiBkb2MvYXMudGV4aW5mbzogRG9jdW1lbnQgLW1pcHMzZCBhbmQgLW5vLW1pcHMzZCBvcHRpb25zLgoJKiBkb2MvYy1taXBzLnRleGk6IExpa2V3aXNlLCBhbmQgZG9jdW1lbnQgIi5zZXQgbWlwczNkIiBhbmQgIi5zZXQKCW5vbWlwczNkIiBkaXJlY3RpdmVzLgoKMjAwMi0wMy0xNCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogY29uZmlnL3RjLW1taXguYyAobWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBEb24ndCBjb25zaWRlcgoJYSB3ZWFrIHN5bWJvbCBpbiBzYW1lIHNlY3Rpb24gdG8gYmUgd2l0aGluIHJlYWNoLgoKMjAwMi0wMy0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCB2ZXJzaW9uLgoKMjAwMi0wMy0xMiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGNvbmZpZy90Yy1pYTY0LmMgKGZpeHVwX3Vud19yZWNvcmRzKTogQ2xlYXIgcmVnaW9uIHdoZW4gc2VlaW5nIGEKCWJvZHkgcmVjb3JkIHNvIHRoYXQgYW4gZXJyb3IgaXMgZ2l2ZW4gZm9yIG1pc3BsYWNlZCAuc2F2ZQoJcHNldWRvLW9wcy4KCjIwMDItMDMtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtaTM4Ni5oIChSRVhfT1BDT0RFKTogRGVmaW5lLgoJKFJFWF9NT0RFNjQsIFJFWF9FWFRYLCBSRVhfRVhUWSwgUkVYX0VYVFopOiBEZWZpbmUuCgkocmV4X2J5dGUpOiB0eXBlZGVmIHRvIGludC4KCSogY29uZmlnL3RjLWkzODYuYzogR3JvdXAgcHJvdG90eXBlcyBhbmQgdmFycyB0b2dldGhlci4KCUZvcm1hdHRpbmcgZml4ZXMuICBSZW1vdmUgb2NjdXJyZW5jZXMgb2YgInJlZ2lzdGVyIiBrZXl3b3JkLgoJKHRydWUpOiBEZWxldGUuCgkoZmFsc2UpOiBEZWxldGUuCgkobW9kZV9mcm9tX2Rpc3Bfc2l6ZSk6IEFkZCBJTkxJTkUga2V5d29yZCB0byBwcm90b3R5cGUuCgkoZml0c19pbl9zaWduZWRfYnl0ZSk6IExpa2V3aXNlLgoJKGZpdHNfaW5fdW5zaWduZWRfYnl0ZSk6IExpa2V3aXNlLgoJKGZpdHNfaW5fdW5zaWduZWRfd29yZCk6IExpa2V3aXNlLgoJKGZpdHNfaW5fc2lnbmVkX3dvcmQpOiBMaWtld2lzZS4KCShmaXRzX2luX3Vuc2lnbmVkX2xvbmcpOiBMaWtld2lzZS4KCShmaXRzX2luX3NpZ25lZF9sb25nKTogTGlrZXdpc2UuCgkodHlwZV9uYW1lcyk6IENvbnN0aWZ5LgoJKGludGVsX2Zsb2F0X29wZXJhbmQpOiBDb25zdGlmeSBwYXJhbS4KCShhZGRfcHJlZml4KTogVXNlIFJFWF9PUENPREUuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4gIE1vZGlmeSBmb3IgY2hhbmdlZCByZXhfYnl0ZS4KCShwYXJzZV9pbnNuKTogU3BsaXQgb3V0IG9mIG1kX2Fzc2VtYmxlLgoJKHBhcnNlX29wZXJhbmRzKTogTGlrZXdpc2UuCgkoc3dhcF9vcGVyYW5kcyk6IExpa2V3aXNlLgoJKG9wdGltaXplX2ltbSk6IExpa2V3aXNlLgoJKG9wdGltaXplX2Rpc3ApOiBMaWtld2lzZS4KCShtYXRjaF90ZW1wbGF0ZSk6IExpa2V3aXNlLgoJKGNoZWNrX3N0cmluZyk6IExpa2V3aXNlLgoJKHByb2Nlc3Nfc3VmZml4KTogTGlrZXdpc2UuCgkoY2hlY2tfYnl0ZV9yZWcpOiBMaWtld2lzZS4KCShjaGVja19sb25nX3JlZyk6IExpa2V3aXNlLgoJKGNoZWNrX3F3b3JkX3JlZyk6IExpa2V3aXNlLgoJKGNoZWNrX3dvcmRfcmVnKTogTGlrZXdpc2UuCgkoZmluYWxpemVfaW1tKTogTGlrZXdpc2UuCgkocHJvY2Vzc19vcGVyYW5kcyk6IExpa2V3aXNlLgoJKGJ1aWxkX21vZHJtX2J5dGUpOiBMaWtld2lzZS4KCShvdXRwdXRfaW5zbik6IExpa2V3aXNlLgoJKG91dHB1dF9icmFuY2gpOiBMaWtld2lzZS4KCShvdXRwdXRfanVtcCk6IExpa2V3aXNlLgoJKG91dHB1dF9pbnRlcnNlZ19qdW1wKTogTGlrZXdpc2UuCgkob3V0cHV0X2Rpc3ApOiBMaWtld2lzZS4KCShvdXRwdXRfaW1tKTogTGlrZXdpc2UuCgoyMDAyLTAzLTA3ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGRvYy9hcy50ZXhpbmZvOiBXcmFwIEBtZW51IGluIEBpZm5vdHRleCwgbm90IEBpZmluZm8uCgoyMDAyLTAzLTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLWkzODYuYyAodGNfZ2VuX3JlbG9jKTogRG9uJ3QgYXR0ZW1wdCB0byBoYW5kbGUgOCBieXRlCglyZWxvY3MgZXhjZXB0IHdoZW4gQkZENjQuCgoJKiB3cml0ZS5jIChudW1iZXJfdG9fY2hhcnNfYmlnZW5kaWFuKTogRG9uJ3QgYWJvcnQgd2hlbiBOIGlzCglsYXJnZXIgdGhhbiBzaXplb2YgKFZBTCkuCgkobnVtYmVyX3RvX2NoYXJzX2xpdHRsZWVuZGlhbik6IExpa2V3aXNlLgoKMjAwMi0wMy0wNSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGNvbmZpZy90Yy1ocHBhLmMgKG1kX2FwcGx5X2ZpeDMpOiBBZGQgY2FzdC4KCShocHBhX2ZpeF9hZGp1c3RhYmxlKTogQWRqdXN0IGxpc3Qgb2Ygc2VsZWN0b3JzIHVzaW5nIGVfbHJzZWwgYW5kCgllX3Jyc2VsLgoKMjAwMi0wMy0wNSAgUGF1bCBLb25pbmcgIDxwa29uaW5nQGVxdWFsbG9naWMuY29tPgoKCSogdGMtcGRwMTEuYzogVXNlIFZBWCBmbG9hdCBmb3JtYXQgc3VwcG9ydCBmb3IgUERQLTExIHRhcmdldC4KCShwYXJzZV9hYzUpOiBOZXcgZnVuY3Rpb24gZm9yIHBhcnNpbmcgZmxvYXQgcmVncyBpbiBmbG9hdCBvcGVyYW5kLgoJKHBhcnNlX2V4cHJlc3Npb24pOiBSZW1vdmUgYXR0ZW1wdCB0byBtYWtlIGxpdGVyYWxzIGJlIG9jdGFsLgoJKHBhcnNlX29wX25vX2RlZmVycmVkKTogU3VwcG9ydCBmbG9hdCBsaXRlcmFscy4KCShwYXJzZV9vcCk6IFJlamVjdCBhdHRlbXB0cyB0byByZWZlciB0byBmbG9hdCByZWdzLgoJKHBhcnNlX2ZvcCk6IE5ldyBmdW5jdGlvbiwgbGlrZSBwYXJzZV9vcCBidXQgZm9yIGZsb2F0IG9wZXJhbmQuCgkobWRfYXNzZW1ibGUpOiBBZGQgY2FzZXMgdG8gcGFyc2UgZmxvYXQgb3BlcmFuZHMuICBBbHNvIGZpeAoJSU1NMywgSU1NNiwgSU1NOCBjYXNlcyB0byBwaWNrIHVwIHRoZSBvcGVyYW5kIGZyb20gdGhlIHJpZ2h0IHNwb3QuCgoyMDAyLTAzLTA0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKHNwZWNpYWxfc2VjdGlvbik6IEFkZCAuaW5pdF9hcnJheSwKCS5maW5pX2FycmF5IGFuZCAucHJlaW5pdF9hcnJheS4KCgkqIGNvbmZpZy90Yy1pYTY0LmggKEVMRl9UQ19TUEVDSUFMX1NFQ1RJT05TKTogUmVtb3ZlCgkuaW5pdF9hcnJheSBhbmQgLmZpbmlfYXJyYXkuCgoyMDAyLTAzLTAxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKGVsZl9jb3B5X3N5bWJvbF9hdHRyaWJ1dGVzKTogRG9uJ3QgY29weQoJdmlzaWJpbGl0eS4KCShvYmpfZnJvYl9zeW1ib2wpOiBDb3B5IHZpc2liaWxpdHkuCgoyMDAyLTAyLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChzX2FscGhhX3RleHQpOiBVc2Ugb2JqX2VsZl90ZXh0IGZvciBPQkpfRUxGLCBub3QKCXNfdGV4dC4KCShzX2FscGhhX2RhdGEpOiBVc2Ugb2JqX2VsZl9kYXRhIGZvciBPQkpfRUxGLCBub3Qgc19kYXRhLgoKMjAwMi0wMi0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9lcy5wbzogVXBkYXRlZC4KCjIwMDItMDItMjYgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX25lZWRfZWxmX2FkZGVuZF9maXh1cCk6IEZvciBlbWJlZGRlZC1QSUMKCW9ubHksIHVuZG8gdGhlIGNoYW5nZXMgbWFkZSBvbiAyMDAxLTA2LTA4LCB3aXRoIHRoZQoJZWZmZWN0IGJlaW5nIHRoYXQgY29tbW9uIG9yIGV4dGVybiBzeW1ib2xzIGFyZQoJYWRqdXN0ZWQgZm9yIGVtYmVkZGVkLVBJQywgYnV0IHdlYWsgc3ltYm9scyBhcmUgbm90LgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4OiBMaWtld2lzZSwgd2l0aCB0aGUgZWZmZWN0Cgl0aGF0IGV4dGVybiBzeW1ib2xzIGFyZSB0cmVhdGVkIHRoZSBzYW1lIGFzIHdlYWsgc3ltYm9scwoJb25seSBpZiBub3QgZW1iZWRkZWQtUElDLgoJKG1pcHNfZml4X2FkanVzdGFibGUpIExpa2V3aXNlLCB3aXRoIHRoZSBlZmZlY3QgdGhhdAoJd2VhayBvciBleHRlcm4gc3ltYm9scyBhcmUgbm90IGFkanVzdGVkIGZvciBlbWJlZGRlZC1QSUMuCgkobWRfYXBwbHlfZml4Myk6IFR3ZWFrIHNvIHRoYXQgdGhlIGNhc2Ugd2hlcmUgdmFsdWUgaXMgemVybwoJaXMgaGFuZGxlZCBtb3JlIGNvcnJlY3RseSBmb3IgZW1iZWRkZWQtUElDIGNvZGUuCgoyMDAyLTAyLTI2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGRvYy9hcy50ZXhpbmZvIChPdmVydmlldyk6IEFkZCBtaXNzaW5nIEBpZnNldCBJQTY0CgoJKiBjb25maWd1cmUuaW4gKExJTkdVQVMpOiBBZGQgZXMucG8uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vZXMucG86IE5ldyBmaWxlLgoKMjAwMi0wMi0yNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHNldF9hdCk6IEZpeCBoYW5kbGluZyBvZiA2NGJpdCByZWdpc3RlciBsb2Fkcy4KCShtYWNybyk6IExpa2V3aXNlLiBGaXggbGEvZGxhIGFkZHJlc3MgZXhwYW5zaW9ucyBmb3IgRU1CRURERURfUElDCglhbmQgTk9fUElDIGNhc2VzLiBDb2RlIGNsZWFudXAuCgkobWFjcm8yKTogRml4IGhhbmRsaW5nIG9mIDY0Yml0IHJlZ2lzdGVyIGxvYWRzLgoKMjAwMi0wMi0yNSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBkb2MvYXMudGV4aW5mbzogQWRkIGVudHJ5IGZvciBJQTY0LgoJKiBkb2MvYy1pYTY0LnRleGk6IE5ldyBmaWxlLgoKMjAwMi0wMi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1ocHBhLmM6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCgkqIGRvYy9jLXBwYy50ZXhpIChQb3dlclBDLU9wdHMpOiBBZGQgLW1wb3dlcjQsIC1tYWx0aXZlYyBhbmQgLW03NDAwCglSZW1vdmUgcmVmZXJlbmNlcyB0byBjaGlwIG1hbnVmYWN0dXJlcnMuCgkqIGNvbmZpZy90Yy1wcGMuYyAobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIC1tcG93ZXI0IG9wdGlvbi4KCUNvcnJlY3QgY29tbWVudHMuCgkobWRfc2hvd191c2FnZSk6IFJlbW92ZSByZWZlcmVuY2VzIHRvIGNoaXAgbWFudWZhY3R1cmVycy4gIE1lbnRpb24KCS1tcG93ZXI0LgoJKG1kX2JlZ2luKTogVGVzdCBwb3dlcjQgb3Bjb2RlIGZsYWcgYml0cy4KCjIwMDItMDItMjIgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogY29uZmlnL3RjLWlhNjQuYyAoZG90X3Jlc3RvcmUpOiBJc3N1ZSBlcnJvciBtZXNzYWdlIG9mIGVwaWxvZ3VlCgljb3VudCBleGNlZWRzIHByb2xvZ3VlIGNvdW50LgoJKG1kX3Nob3dfdXNhZ2UpOiBEZXNjcmliZSAtbWNvbnN0YW50LWdwIGFuZCAtbWF1dG8tcGljLgoJKHVud2luZC5sYWJlbF9wcm9sb2d1ZV9jb3VudCk6IE5ldyBtZW1iZXIuCgoJQmFzZWQgb24gYSBwYXRjaCBieSBIYW5zIEJvZWhtIDxoYm9laG1AaHBsLmhwLmNvbT46CgoJKGdldF9zYXZlZF9wcm9sb2d1ZV9jb3VudCk6IE5ldyBmdW5jdGlvbi4KCShzYXZlX3Byb2xvZ3VlX2NvdW50KTogTmV3IGZ1bmN0aW9uLgoJKGZyZWVfc2F2ZWRfcHJvbG9ndWVfY291bnQpOiBOZXcgZnVuY3Rpb24uCgkoZG90X2xhYmVsX3N0YXRlKTogUmVjb3JkIHN0YXRlIGxhYmVsIGJ5IGNhbGxpbmcgc2F2ZV9wcm9sb2d1ZV9jb3VudCgpLgoJKGRvdF9jb3B5X3N0YXRlKTogUmVzdG9yZSBwcm9sb2d1ZSBjb3VudCBieSBjYWxsaW5nCglnZXRfc2F2ZWRfcHJvbG9ndWVfY291bnQoKS4KCShnZW5lcmF0ZV91bndpbmRfaW1hZ2UpOiBGcmVlIHVwIGxpc3Qgb2Ygc2F2ZWQgcHJvbG9ndWUKCWNvdW50cyBieSBjYWxsaW5nIGZyZWVfc2F2ZWRfcHJvbG9ndWVfY291bnRzKCkuCgoyMDAyLTAyLTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy10aWM1NHguYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcyBhbmQgcmVtb3ZlIEFOU0kgc3R5bGUKCWZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KCjIwMDItMDItMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogTkVXUzogTm90ZSB0aGF0IEdBU1AgaXMgbm93IGRlcHJlY2F0ZWQuCgkqIE1ha2VmaWxlLmFtOiBEbyBub3QgYnVpbGQgZ2FzcC1uZXcgYnkgZGVmYXVsdC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5hbTogRG8gbm90IGluc3RhbGwgZ2FzcC5pbmZvLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGdhcy9nYXNwLnRleGk6IE5vdGUgdGhhdCBnYXNwIGlzIG5vdyBkZXByZWNhdGVkLgoKMjAwMi0wMi0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBNYXJrIDIuMTIgYnJhbmNoLgoKMjAwMi0wMi0xOSAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXhzdG9ybXkxNi5oIChEV0FSRjJfTElORV9NSU5fSU5TTl9MRU5HVEgpOiBEZWZpbmUuCgoyMDAyLTAyLTE5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfcGFyc2Vfb3B0aW9uKTogQ29tcGxhaW4gYWJvdXQgaW52YWxpZCAtbWFiaQoJb3B0aW9uIGlucHV0LgoKMjAwMi0wMi0xOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKG1kX3BhcnNlX29wdGlvbik6IEFkZCBzd2l0Y2hlcyAtbTMxIGFuZCAtbTY0LgoJTWFrZSBiaXQgc2l6ZSBpbmRlcGVuZGVudCBvZiBhcmNoaXRlY3R1cmUgc3dpdGNoLgoJKG1kX2JlZ2luKTogQWRkIHdhcm5pbmcgZm9yIC1tNjQgd2l0aCAtQWVzYS4KCShzMzkwX21kX2VuZCk6IFVzZSByZW5hbWVkIGFyY2hpdGVjdHVyZSBkZWZpbmVzLgoKMjAwMi0wMi0xOCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb25maWcvb2JqLWNvZmYuaDogQ2hlY2sgIXRhcmdldF9iaWdfZW5kaWFuLCBub3Qgc2hsLCBmb3IgY29mZi1zaC4KCjIwMDItMDItMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZG9jL2FzLnRleGluZm8gKE1hY2hpbmUgRGVwZW5kZW5jaWVzKTogRml4IHR5cG86IE1NSVggdXNlZAoJaW5zdGVhZCBvZiBDUklTLgoKMjAwMi0wMi0xNSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogUmVhbGx5CgltYWtlIHN1cmUgd2UgdHJlYXQgd2VhayBsaWtlIGV4dGVybiBvbmx5IGZvciBFTEYuICAoRml4ZXMKCXBhdGNoIGZyb20gMjAwMS0wNy0yNS4pCgoyMDAyLTAyLTE1ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIGRvYy9hcy50ZXhpbmZvOiBBZGQgZHVwbGljYXRlIGRpcmVjdG9yeSBlbnRyeSBzbyB0aGF0ICJpbmZvIGdhcyIKCXdvcmtzIGFzIGV4cGVjdGVkLgoKMjAwMi0wMi0xNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBNTUlYLgoKMjAwMi0wMi0xMyAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfbmVlZF9lbGZfYWRkZW5kX2ZpeHVwKTogUmVzdHJ1Y3R1cmUgaW50bwoJYSBzZXF1ZW5jZSBvZiBpbmRwZW5kZW50ICdpZicgc3RhdGVtZW50cyBmb3IgZWFzaWVyIGRlYnVnZ2luZwoJYW5kIGZ1dHVyZSBtb2RpZmljYXRpb24uCgoyMDAyLTAyLTEzICBNYXR0IEZyZWRldHRlICA8ZnJlZGV0dGVAbmV0YnNkLm9yZz4KCgkqIGNvbmZpZy90Yy1tNjhrLmMgKG1kX3Nob3dfdXNhZ2UpOiBObyBsb25nZXIgZGlzcGxheSBhCgloYXJkLWNvZGVkICI2ODAyMCIgZm9yIHRoZSBkZWZhdWx0IENQVSwgaW5zdGVhZCBkaXNwbGF5IHRoZQoJY2Fub25pY2FsIG5hbWUgb2YgdGhlIHRydWUsIGNvbmZpZ3VyZWQgZGVmYXVsdCBDUFUuCgkobTY4a19lbGZfZmluYWxfcHJvY2Vzc2luZyk6IE1hcmsgb2JqZWN0cyBmb3Igc3ViLTY4MDIwCglDUFVzIHdpdGggdGhlIG5ldyBFRl9NNjgwMDAgZmxhZy4KCjIwMDItMDItMTMgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBjb25maWcvdGMtaTM4Ni5jICh0Y19pMzg2X2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgYWRqdXN0CglwYy1yZWxhdGl2ZSByZWxvY2F0aW9ucyB0byBtZXJnZSBzZWN0aW9ucyBpbiA2NC1iaXQgbW9kZS4KCjIwMDItMDItMTMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogTkVXUzogRG9jdW1lbnQgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGhhbmRsaW5nIGluIGdhc3AuCgkqIGdhc3AuYzogSW5jbHVkZSA8YXNzZXJ0Lmg+IGFuZCAieHJlZ2V4LmgiLgoJKGlzX2Zsb251bSk6IE5ldyBmdW5jdGlvbi4KCShjaGV3X2Zsb3dudW0pOiBMaWtld2lzZS4KCShjaGFuZ2VfYmFzZSk6IENvbnN1bWUgZmxvbnVtcyBmcm9tIHRoZSBpbnB1dCwgd2hlcmUgcG9zc2libGUuCgkqIGRvYy9nYXNwLnRleGkgKENvbnN0YW50cyk6IERvY3VtZW50IGZsb2F0aW5nIHBvaW50IG51bWJlcnMuCgoyMDAyLTAyLTEyICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogY29uZmlnL3RjLWhwcGEuYyAoaHBwYV9maXhfYWRqdXN0YWJsZSk6IERvbid0IGFkanVzdCBmaW5hbCB0eXBlcwoJdGhhdCBpbXBsaWNpdGx5IHVzZSBMUiBhbmQgUlIgc2VsZWN0b3JzLgoKMjAwMi0wMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbW4xMDMwMC5jIChvdGhlcl9yZWdpc3RlcnMpOiBBZGRlZCBgZXBzdycuICBNYXJrIGBwYycKCWFuZCBgZXBzdycgYXMgYXZhaWxhYmxlIG9uIEFNMzMgYW5kIGFib3ZlIG9ubHkuCgkob3RoZXJfcmVnaXN0ZXJfbmFtZSk6IEFkZCBsb2dpYyB0byBoYW5kbGUgbWFjaGluZSB0eXBlIGVuY29kZWQgaW4KCXJlZ19udW1iZXIuCgoyMDAyLTAyLTExICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9hcHBseV9maXgzKTogQ2hlY2sgZm9yIGluc2VydCBmb3AgaW52YWxpZCBmb3IKCXhjb2ZmNjQuCgoyMDAyLTA2LTExICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChVMHg4MDAwMDAwMCwgVTB4ZmZmZmZmZmYpOiBOZXcgY29uc3RhbnRzLgoJVXNlIGFsbCBvdmVyLgoKMjAwMi0wMi0xMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogaTM4Ni5jIChtZF9hc3NlbWJsZSk6IFN1cHBvcnQgMzJiaXQgYWRkcmVzcyBwcmVmaXguCgkoaTM4Nl9kaXNwbGFjZW1lbnQpOiBMaWtld2lzZS4KCShpMzg2X2luZGV4X2NoZWNrKTogQWNjZXB0IDMyYml0IGFkZHJlc3NpbmcgaW4gNjRiaXQgbW9kZS4KCjIwMDItMDItMTEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKGRvdCk6IFJlbW92ZWQgdW51c2VkIGZ1bmN0aW9uLgoKMjAwMi0wMi0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDItMTAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkb2MvYy1hbHBoYS50ZXhpOiBOZXcgZmlsZS4KCSogZG9jL01ha2VmaWxlLmFtIChDUFVfRE9DUyk6IEFkZCBpdC4KCSogZG9jL2FsbC50ZXhpLCBkb2MvYXMudGV4aW5mbzogQWRkIGhvb2tzIGZvciBBbHBoYS4KCjIwMDItMDItMDkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtYWxwaGEuYyAoT19zYW1lZ3ApOiBOZXcuCgkoVVNFUl9SRUxPQ19QKTogSW5jbHVkZSBpdC4KCShhbHBoYV9yZWxvY19vcF90YWcsIGRlYnVnX2V4cCwgZmluZF9tYWNyb19tYXRjaCk6IEFkZCBpdC4KCShtZF9hcHBseV9maXgzKTogSGFuZGxlIEJGRF9SRUxPQ19BTFBIQV9CUlNHUC4KCShhbHBoYV9mb3JjZV9yZWxvY2F0aW9uLCBhbHBoYV9maXhfYWRqdXN0YWJsZSk6IExpa2V3aXNlLgoJKGFscGhhX3ZhbGlkYXRlX2ZpeCk6IE5ldy4KCSogY29uZmlnL3RjLWFscGhhLmggKFRDX1ZBTElEQVRFX0ZJWCk6IE5ldy4KCjIwMDItMDItMDkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZG9jL2MtY3Jpcy50ZXhpOiBOZXcuCgkqIGRvYy9hbGwudGV4aTogQHNldCBDUklTLgoJKiBkb2MvYXMudGV4aW5mbzogRGl0dG8uICBBZGQgQ1JJUyBnYXMgbWFucGFnZSBvcHRpb24gb3ZlcnZpZXcuCglJbmNsdWRlIGMtY3Jpcy50ZXhpLgoJKiBkb2MvTWFrZWZpbGUuYW0gKENQVV9ET0NTKTogQWRkIGMtY3Jpcy50ZXhpCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDItMDggIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChJU19TRVhUXzMyQklUX05VTSk6IE5ldyBtYWNybyB0bwoJZGV0ZXJtaW5lIGlmIGEgbnVtYmVyIGlzIGEgc2lnbi1leHRlbmRlZCAzMi1iaXQgbnVtYmVyLgoJKGxvYWRfcmVnaXN0ZXIpOiBVc2UgSVNfU0VYVF8zMkJJVF9OVU0uCgkobWFjcm8pOiBDaGVjayBpZiBsb2FkL3N0b3JlIG1hY3JvIGhhbmRsaW5nIGlzIHVzaW5nIGEKCWNvbnN0YW50IDMyLWJpdCBhZGRyZXNzIG9uIDY0LWJpdCBhZGRyZXNzIHN5c3RlbXMsIGFuZCBpZgoJc28gb3B0aW1pemUgdGhlIGdlbmVyYXRpb24gb2YgdGhhdCBhZGRyZXNzLgoKMjAwMi0wMi0wOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1hbHBoYS5jIChhbHBoYV9mb3JjZV9yZWxvY2F0aW9uKTogRG9uJ3QgYXNzZXJ0IHRoYXQKCXdlJ3ZlIGVsaW1pbmF0ZWQgYWxsIGZvcmVpZ24gcmVsb2NhdGlvbiB0eXBlcyB5ZXQuCgkoYWxwaGFfZml4X2FkanVzdGFibGUpOiBMaWtld2lzZS4KCjIwMDItMDItMDggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCUNvbnRyaWJ1dGUgc2g2NC1lbGYuCgkyMDAyLTAyLTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCQkgICAgU3RlcGhlbiBDbGFya2UgPFN0ZXBoZW4uQ2xhcmtlQHN0LmNvbT4KCSogZG9jL2Mtc2g2NC50ZXhpOiBGaXggY2l0YXRpb24gb2YgU0g2NCBhcmNoaXRlY3R1cmUgbWFudWFsLgoJMjAwMi0wMS0zMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaC5jIChtZF9yZWxheF90YWJsZSk6IEFkZGVkIGRlZmF1bHQgc2l6ZXMgZm9yCglub24tUEMtcmVsYXRpdmUgVU5ERUZfTU9WSSwgYW5kIHJlbGF4YXRpb24gc2VxdWVuY2VzIGZvcgoJTU9WSV8xNiwgTU9WSV8zMiBhbmQgTU9WSV80OC4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9tZF9hcHBseV9maXgzKTogRml4IHdhcm5pbmcuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpOiBIYW5kbGUgbm9uLVBDLXJlbGF0aXZlIFVOREVGX01PVkkKCWFuZCBNT1ZJXzE2LgoJKHNobWVkaWFfbWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBSZW1vdmUgcmVkdW5kYW50CglibG9ja3MuICBTZXQgZnJhZ1AtPmZyX3ZhciBldmVuIGlmIHJlbGF4YXRpb24gdHlwZSB1bmNoYW5nZWQuCglSZXRhaW4gVU5ERUZfTU9WSSB1bnRpbCBleHByZXNzaW9uIGRlY2F5cyB0byBudW1iZXIuCgkyMDAyLTAxLTI0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9pbml0X3JlbG9jKTogSGFuZGxlIG5ldyBTSG1lZGlhIFBJQwoJcmVsb2NhdGlvbiB0eXBlcy4gIFRha2UgZml4UC0+ZnhfYWRkbnVtYmVyIGludG8gYWNjb3VudCB0b28uCgkoc2htZWRpYV9tZF9hcHBseV9maXgpOiBMaWtld2lzZS4KCShzaG1lZGlhX21kX2NvbnZlcnRfZnJhZyk6IExpa2V3aXNlLgoJKHNobWVkaWFfYnVpbGRfTXl0ZXMpOiBMaWtld2lzZS4KCShzaDY0X2NvbnN1bWVfZGF0YWxhYmVsKTogQ29tcGxhaW4gYWJvdXQgbmVzdGVkIGRhdGFsYWJlbC4KCVN1cHBvcnQgUElDIHJlbG9jcy4gIENhbGwgc2hfcGFyc2VfbmFtZS4KCSogY29uZmlnL3RjLXNoNjQuaCAoVENfUkVMT0NfUlRTWU1fTE9DX0ZJWFVQKTogRXh0ZW5kIGRlZmluaXRpb24KCWluIHRjLXNoLmggdG8gU0htZWRpYSByZWxvYyB0eXBlcy4KCSogY29uZmlnL3RjLXNoLmMgKFNINjRQQ1JFTFBMVCwgTU9WSV9QTFQsIE1PVklfR09UT0ZGLAoJTU9WSV9HT1RQQyk6IE5ldyByZWxheGF0aW9uIGNvbnN0YW50cy4KCShtZF9yZWxheF90YWJsZSk6IEludHJvZHVjZSByZWxheGF0aW9uIGRpcmVjdGl2ZXMgZm9yIFBJQy1yZWxhdGVkCgljb25zdGFudHMuCgkoc2hfUElDX3JlbGF0ZWRfcCk6IEhhbmRsZSBkYXRhbGFiZWwuCgkoc2hfY2hlY2tfZml4dXApOiBDaG9vc2UgU0g1IFBJQyByZWxvY2F0aW9ucy4KCShzaF9jb25zX2ZpeF9uZXcpOiBBZGRlZCBCREZfUkVMT0NfNjQuCgkobWRfYXBwbHlfZml4Mywgc2hfcGFyc2VfbmFtZSk6IEhhbmRsZSBHT1RQTFQuCgkyMDAyLTAxLTE4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2g2NF9tYXhfbWVtX2Zvcl9yc19hbGlnbl9jb2RlKTogSWYgdGhlCgljdXJyZW50IElTQSBpcyBTSG1lZGlhLCBnZXQgNyBieXRlcy4KCTIwMDEtMTEtMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoJKiBjb25maWcvdGMtc2guYyAobWRfYXBwbHlfZml4Myk6IFRyZWF0IHNobWVkaWFfbWRfYXBwbHlfZml4MyBhcyBhCgl2b2lkIGZ1bmN0aW9uLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX2FwcGx5X2ZpeCk6IFJlbmFtZSB0bwoJc2htZWRpYV9hcHBseV9maXgzIGFuZCBtYWtlIHZvaWQuCgkyMDAxLTA1LTE3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc19zaDY0X2FiaSk6IFJlbW92ZSB1bnVzZWQgYXJndW1lbnRzIHBhc3NlZCB0bwoJYXNfYmFkLgoJMjAwMS0wNC0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmggKG1kX3BhcnNlX25hbWUpOiBUYWtlICZjIGFzIGFyZ3VtZW50LgoJMjAwMS0wMy0xNCAgREogRGVsb3JpZQk8ZGpAcmVkaGF0LmNvbT4KCSogZG9jL01ha2VmaWxlLmFtIChDUFVfRE9DUyk6IEFkZGVkIGMtc2g2NC50ZXhpCgkqIGRvYy9NYWtlZmlsZS5pbihDUFVfRE9DUyk6IERpdHRvLgoJKiBkb2MvYy1zaDY0LnRleGk6IE5ldyBmaWxlLgoJKiBkb2MvYXMudGV4aW5mbzogQWRkIFNINjQgc3VwcG9ydC4KCTIwMDEtMDMtMTMgIERKIERlbG9yaWUJPGRqQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfZ2V0X29wZXJhbmRzKTogUmVuYW1lIEFfUkVTVl9GeCB0bwoJQV9SRVVTRV9QUkVWIHNvIHRoYXQgaXRzIHB1cnBvc2UgaXMgbW9yZSBvYnZpb3VzLgoJKHNobWVkaWFfYnVpbGRfTXl0ZXMpOiBEaXR0by4KCTIwMDEtMDMtMDcgIERKIERlbG9yaWUJPGRqQHJlZGhhdC5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNoNjRfdnRhYmxlX2VudHJ5KTogTmV3LCBzdHJpcCBkYXRhbGFiZWxzCgliZWZvcmUgcHJvY2Vzc2luZy4KCShzaDY0X3Z0YWJsZV9pbmhlcml0KTogRGl0dG8uCgkoc3RyaXBfZGF0YWxhYmVscyk6IE5ldywgc3RyaXAgImRhdGFsYWJlbCIgZnJvbSBnaXZlbiBsaW5lLgoJKiBjb25maWcvdGMtc2guYyAobWRfcHNldWRvX3RhYmxlKTogQWRkIHNoNjQtc3BlY2lmaWMgdnRhYmxlCglwc2V1ZG9zLgoJMjAwMS0wMy0wNiAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9tZF9hc3NlbWJsZSk6IE1vdmUgZHdhcmYyX2VtaXRfaW5zbgoJY2FsbCAuLi4KCShzaG1lZGlhX2J1aWxkX015dGVzKTogLi4uIHRvIGhlcmUuCgkyMDAxLTAzLTA2ICBESiBEZWxvcmllCTxkakByZWRoYXQuY29tPgoJKiBjb25maWcvdGMtc2guYzogUmVtb3ZlIHNoNjQtc3BlY2lmaWMgdWFxdWFkIG5vdyB0aGF0IHRoZXJlCglpcyBhIGdlbmVyaWMgb25lLgoJMjAwMS0wMS0yMSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuaCAoRFdBUkYyX0xJTkVfTUlOX0lOU05fTEVOR1RIKTogT3ZlcnJpZGUuCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfYXNzZW1ibGUpOiBPZmZzZXQgcmVjb3JkZWQgaW5zbgoJYWRkcmVzcyBieSBvbmUgaW4gY2FsbCB0byBkd2FyZjJfZW1pdF9pbnNuLgoJMjAwMS0wMS0xMyAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCUltcGxlbWVudCAiLmFiaSIgcHNldWRvIGFuZCBjb3JyZWN0IC5jcmFuZ2VzIGRlc2NyaXB0b3JzLiAgQ29ycmVjdAoJYWxpZ25tZW50IGhhbmRsaW5nIGJyb2tlbiBieSBpbXBvcnRlZCBjaGFuZ2VzLgoJKiBjb25maWcvdGMtc2g2NC5oIChIQU5ETEVfQUxJR04pOiBPdmVycmlkZSBkZWZpbml0aW9uIGluIHRjLXNoLmguCgkoc2g2NF9oYW5kbGVfYWxpZ24pOiBEZWNsYXJlLgoJKE1BWF9NRU1fRk9SX1JTX0FMSUdOX0NPREUpOiBPdmVycmlkZSBkZWZpbml0aW9uIGluIHRjLXNoLmguCgkoc2g2NF9tYXhfbWVtX2Zvcl9yc19hbGlnbl9jb2RlKTogRGVjbGFyZS4KCShlbnVtIHNoNjRfaXNhX3ZhbHVlcyk6IE1vdmVkIGhlcmUgZnJvbSB0Yy1zaDY0LmMuCgkobWRfZG9fYWxpZ24pOiBEZWZpbmUuCgkoc2g2NF9kb19hbGlnbik6IERlY2xhcmUuCgkoc3RydWN0IHNoNjRfdGNfZnJhZ19kYXRhKTogTmV3LgoJKFRDX0ZSQUdfVFlQRSk6IENoYW5nZSB0byBzdHJ1Y3Qgc2g2NF90Y19mcmFnX2RhdGEuICBVc2VycwoJY2hhbmdlZC4KCShUQ19GUkFHX0lOSVQpOiBDaGFuZ2UgdG8gc2V0IG5ldyBkYXRhdHlwZS4KCShzdHJ1Y3Qgc2g2NF9zZWdtZW50X2luZm9fdHlwZSk6IFJlbmFtZSBtZW1iZXIKCWxhc3RfZmx1c2hlZF9sb2NhdGlvbiB0byBsYXN0X2NvbnRlbnRzX21hcmsuICBBbGwgdXNlcnMgY2hhbmdlZC4KCShtZF9lbGZfc2VjdGlvbl9jaGFuZ2VfaG9vaywgVENfQ09OU19GSVhfTkVXKTogRG8gbm90IGRlZmluZS4KCShzaG1lZGlhX2VsZl9uZXdfc2VjdGlvbiwgc2g2NF90Y19jb25zX2ZpeF9uZXcpOiBEbyBub3QgcHJvdG90eXBlLgoJKiBjb25maWcvdGMtc2guYyAobWRfcHNldWRvX3RhYmxlKTogQWRkICIuYWJpIi4KCShzaF9lbGZfY29ucykgW0hBVkVfU0g2NF06IENhbGwgc2g2NF91cGRhdGVfY29udGVudHNfbWFyayBpbnN0ZWFkCglvZiB1bnNldHRpbmcgc2Vlbl9pbnNuLgoJKG1kX2Fzc2VtYmxlKSBbSEFWRV9TSDY0XSA8YmVmb3JlIG5ldyBTSGNvbXBhY3Qgc2VxdWVuY2U+OiBBbHNvCgljYWxsIHNoNjRfdXBkYXRlX2NvbnRlbnRzX21hcmsuCgkoc2hfaGFuZGxlX2FsaWduKTogUmVtb3ZlIEhBVkVfU0g2NC1jb25kaXRpb25lZCBjb2RlLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaDY0X2lzYV9tb2RlKTogQ29ycmVjdCB0eXBlIGZyb20gYm9vbGVhbiB0bwoJZW51bSBzaDY0X2lzYV92YWx1ZXMuCgkoc2g2NF9zZXRfY29udGVudHNfdHlwZSk6IERyb3Agc2VnVCBwYXJhbWV0ZXIuCUFsbCBjYWxsZXJzIGNoYW5nZWQuCgkoZW1pdHRpbmdfY3JhbmdlKTogQm9vbGVhbiBndWFyZCBtb3ZlZCB0byBmaWxlIHNjb3BlIGZyb20gZnVuY3Rpb24KCXNjb3BlIGluIHNoNjRfc2V0X2NvbnRlbnRzX3R5cGUuCgkoc19zaDY0X2FiaSk6IE5ldy4KCShzaDY0X3VwZGF0ZV9jb250ZW50c19tYXJrKTogTmV3OyBtb3N0IHNwbGl0IG91dCBmcm9tCglzaDY0X2ZsdXNoX3BlbmRpbmdfb3V0cHV0LgoJKHNobWVkaWFfbWRfZW5kKTogQ2FsbCBzaDY0X3VwZGF0ZV9jb250ZW50c19tYXJrLiAgU2V0CglzaDY0X2lzYV9tb2RlIHRvIHNoNjRfaXNhX3NoNV9ndWFyZCB1bmxlc3Mgc2g2NF9pc2FfdW5zcGVjaWZpZWQuCgkoc2g2NF9kb19hbGlnbik6IE5ldyBmdW5jdGlvbi4KCShzaDY0X21heF9tZW1fZm9yX3JzX2FsaWduX2NvZGUpOiBOZXcgZnVuY3Rpb24uCgkoc2g2NF9oYW5kbGVfYWxpZ24pOiBSZW5hbWUgZnJvbSBzaG1lZGlhX2RvX2FsaWduLiAgTWFrZQoJbm9uLXN0YXRpYy4gIEFkZCBoZWFkIGNvbW1lbnQuCUVtaXQgemVybyBieXRlcyBmb3IgbiBieXRlcyBtb2R1bG8KCWZvdXIuICBDaGFuZ2UgcmV0dXJuLXR5cGUgdG8gdm9pZC4KCShzaG1lZGlhX2VsZl9uZXdfc2VjdGlvbik6IFJlbW92ZS4KCShzaG1lZGlhX21kX2Fzc2VtYmxlKTogQ2FsbCBzaDY0X3VwZGF0ZV9jb250ZW50c19tYXJrLgoJKHNfc2g2NF9tb2RlKTogRGl0dG8uICBEbyBub3QgY2FsbCBtZF9mbHVzaF9wZW5kaW5nX291dHB1dC4gIE1ha2UKCW5ldyBmcmFnLiAgQ2FsbCBzaDY0X3VwZGF0ZV9jb250ZW50c19tYXJrIGFmdGVyIG1ha2luZyB0aGUgbmV3CglmcmFnLgoJKHNoNjRfZmx1c2hfcGVuZGluZ19vdXRwdXQpOiBKdXN0IGNhbGwgc2g2NF91cGRhdGVfY29udGVudHNfbWFyawoJYW5kIHNoX2ZsdXNoX3BlbmRpbmdfb3V0cHV0LgoJKHNoNjRfZmxhZ19vdXRwdXQpOiBBbHNvIGNhbGwgbWRfZmx1c2hfcGVuZGluZ19vdXRwdXQsIGJ1dCBhZGQKCWNvbmRpdGlvbiBvbiBub3QgZW1pdHRpbmdfY3JhbmdlLgoJKHNoNjRfdGNfY29uc19maXhfbmV3KTogUmVtb3ZlLgoJMjAwMS0wMS0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9kb19hbGlnbik6IEZpeCB0byB3b3JrIHdpdGggbmV3CglhbGlnbm1lbnQgaGFuZGxpbmcgc2NoZW1lIGltcG9ydGVkIGZyb20gc291cmNld2FyZS4KCTIwMDEtMDEtMTIgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmggKFRBUkdFVF9GT1JNQVQpOiBEZWZpbmUuCgkoc2g2NF90YXJnZXRfZm9ybWF0KTogUHJvdG90eXBlLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaDY0X3RhcmdldF9tYWNoKTogTmV3IGZ1bmN0aW9uLgoJMjAwMS0wMS0wNyAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9tZF9lbmQpOiBXaGVuIGVxdWF0aW5nIGEgc3ltYm9sLCB1c2UKCXplcm9fYWRkcmVzc19mcmFnIGluc3RlYWQgb2YgY29weWluZyB0aGUgZnJhZyBvZiB0aGUgc3ltYm9sLgoJKHNobWVkaWFfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBEaXR0by4KCShzaG1lZGlhX21kX2FwcGx5X2ZpeCkgPGNhc2UgQkZEX1JFTE9DX1NIX0lNTV9NRURMT1cxNj46IENhc3QgbWFzawoJdG8gdmFsdWVUIHRvIHJlbW92ZSBzaWduZWRuZXNzLgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogQWRkIHBhcmFtZXRlciBmaW5hbC4gIFJlbmFtZSBwYXJhbWV0ZXIKCWhlYWRlcnMgdG8gb3V0cHV0X2JmZC4JRG8gbm90IGV2YWx1YXRlIHN5bWJvbHMgaWYgZmluYWwgaXMgZmFsc2U7CglkbyBlbWl0IGZpeHVwcy4KCShzaG1lZGlhX21kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KSA8Y2FzZSBDIChNT1ZJX0lNTV8zMiwKCVVOREVGX01PVkkpIGV0IGFsPjogSWYgc3ltYm9sIGNhbm5vdCBiZSBtb2RpZmllZCB0byBiZSBQQy1yZWxhdGl2ZQoJdG8gdGhlIGN1cnJlbnQgZnJhZywgY2FsbCBzaG1lZGlhX21kX2NvbnZlcnRfZnJhZyB0byBlbWl0IGZpeHVwcwoJYW5kIG1ha2UgZnJhZ193YW5lIG5ldXRyYWxpemUgdGhlIGZyYWcuICBVcGRhdGUgY29tbWVudHMuCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9jb252ZXJ0X2ZyYWcpOiBDaGFuZ2UgY2FsbGVyIG9mCglzaG1lZGlhX21kX2NvbnZlcnRfZnJhZy4KCTIwMDEtMDEtMDYgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0Lmg6IFR3ZWFrIGNvbW1lbnRzIGFuZCBjb3JyZWN0IGZvcm1hdHRpbmcuCgkqIGNvbmZpZy90Yy1zaDY0LmM6IERpdHRvLgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKSA8UFQvUFRBL1BUQiAzMiwgNDggYW5kIDY0IGJpdAoJZXhwYW5zaW9uLCBNT1ZJIHBjcmVsIGV4cGFuc2lvbj46IEZpeCB0aGlua28gY2FsY3VsYXRpbmcgb2Zmc2V0Cglmb3IgdGhlIG5vLXJlbG9jYXRpb24gY2FzZS4KCShzaG1lZGlhX2NoZWNrX2xpbWl0cyk6IEZpeCByYW5nZSBjaGVjayBiZWluZyBvZmYtYnktb25lIGZvciBQVEEuCgkqIGNvbmZpZy90Yy1zaC5jOiBEaXR0by4gIEFkZCBwcm9wZXIgY29tbWVudHMgdG8gI2lmZGVmLyNpZm5kZWYKCXdyYXBwZXJzLgoJKFNINjRQQ1JFTDE2X0YpOiBJbmNyZW1lbnQgZm9yIHByb3BlciBtYXgtUFRBIGhhbmRsaW5nLiAgVXBkYXRlCgljb21tZW50LgoJKFNINjRQQ1JFTDE2X00sIE1PVklfMTZfTSk6IENvcnJlY3QgcmFuZ2UgdGhpbmtvLgoJKFNINjRQQ1JFTDQ4X00sIE1PVklfNDhfTSk6IFNpbWlsYXI7IGRvbid0IGNvdW50IGluIGxlbmd0aCBvZgoJZXhwYW5zaW9uLgoJKFNINjRQQ1JFTDMyX00sIE1PVklfMzJfTSk6IERpdHRvOyBoYW5kbGUgb3ZlcmZsb3dpbmcgZXhwcmVzc2lvbi4KCUNvcnJlY3QgY29tbWVudC4KCTIwMDEtMDEtMDUgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfYXBwbHlfZml4KSA8c2Vjb25kIHN3aXRjaCwgY2FzZQoJQkZEX1JFTE9DX1NIX1BUXzE2PjogU2V0IGxvd2VzdCBiaXQgaW4gZmllbGQgdG8gYmUgcmVsb2NhdGVkIHRvIDEuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpIDxjYXNlIEMgKFNINjRQQ1JFTDE2XzMyLCBTSDY0UENSRUwxNikgZXQKCWFsPjogU2V0IGxvd2VzdCBiaXQgb2YgZmllbGQgdG8gcmVsb2NhdGUgdG8gMSBhbmQgcmVzdCB0byBlbXB0eSwKCWlmIHJlbG9jIGlzIGVtaXR0ZWQuCgkyMDAwLTEyLTMxICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJTmV3IG9wdGlvbnMgcGx1cyBidWdmaXhlcy4KCSogY29uZmlnL3RjLXNoLmMgKG1kX2xvbmdvcHRzKTogTmV3IG9wdGlvbnMgIi1uby1leHBhbmQiIGFuZAoJIi1leHBhbmQtcHQzMiIuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIG5ldyBvcHRpb25zLgoJKG1kX3Nob3dfdXNhZ2UpOiBBZGQgYmx1cmIgZm9yIG5ldyBvcHRpb25zLgoJKiBjb25maWcvdGMtc2g2NC5jIChTSE1FRElBX0JGRF9SRUxPQ19QVCk6IE5ldyBtYWNyby4KCShzaDY0X2V4cGFuZCwgc2g2NF9wdDMyKTogTmV3IHZhcmlhYmxlcy4KCShzaG1lZGlhX2luaXRfcmVsb2MpOiBIYW5kbGUgQkZEX1JFTE9DX1NIX1BUXzE2LgoJKHNobWVkaWFfbWRfYXBwbHlfZml4KTogSG9sZCBvcmlnaW5hbCBmaXhQLT5meF9yX3R5cGUgaW4KCW9yaWdfZnhfcl90eXBlLiAgQ2hhbmdlIFNITUVESUFfQkZEX1JFTE9DX1BUIGludG8KCUJGRF9SRUxPQ19TSF9QVF8xNi4gIEhhbmRsZSBCRkRfUkVMT0NfU0hfUFRfMTYgYXMgcGMtcmVsYXRpdmUuCgk8cmVzb2x2ZWQgcHJldmlvdXNseS1wYy1yZWxhdGl2ZSByZWxvY3M+OiBIYW5kbGUKCVNITUVESUFfQkZEX1JFTE9DX1BUIGFuZCBCRkRfUkVMT0NfU0hfUFRfMTYuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpIDxjYXNlIEMgKFNINjRQQ1JFTDE2UFRfNjQsIFNINjRQQ1JFTDE2KSwKCWNhc2UgQyAoU0g2NFBDUkVMMTZQVF8zMiwgU0g2NFBDUkVMMTYpPjogTW9kaWZ5IHRvIFBUQiBpZiBvcGVyYW5kCglwb2ludHMgdG8gU0hjb21wYWN0IGNvZGUuCgk8Y2FzZSBDIChTSDY0UENSRUwxNl8zMiwgU0g2NFBDUkVMMTYpLCBjYXNlIEMgKFNINjRQQ1JFTDE2XzY0LAoJU0g2NFBDUkVMMTYpPjogQ2hlY2sgdGhhdCBJU0Egb2Ygd2hhdCBvcGVyYW5kIHBvaW50cyBhdCBhbmQKCVBUQS9QVEIgbWF0Y2hlcywgb3IgZW1pdCBlcnJvci4KCShzaG1lZGlhX2NoZWNrX2xpbWl0cyk6IEhhbmRsZSBCRkRfUkVMT0NfU0hfUFRfMTYgYW5kCglTSE1FRElBX0JGRF9SRUxPQ19QVC4KCShzaG1lZGlhX2ltbWVkaWF0ZV9vcCk6IElmIHBjcmVsLCBlbWl0IGZpeHVwIGFsc28gZm9yIGNvbnN0YW50CglvcGVyYW5kLgoJKHNobWVkaWFfYnVpbGRfTXl0ZXMpIDxjYXNlIEFfSU1NUzE2PjogQWxzbyBjaGVjayBzaDY0X2V4cGFuZCBpbgoJY29uZGl0aW9uIGZvciBNT1ZJIGV4cGFuc2lvbi4KCTxjYXNlIEFfUENJTU1TMTZCWTQ+OiBIYW5kbGUgZXhwYW5zaW9uIHRvIDMyIGJpdHMgb25seSwgaWYKCXNoNjRfcHQzMi4gIEVtaXQgb25seSBhIEJGRF9SRUxPQ19TSF9QVF8xNiBmaXh1cCBpZiBub3QKCXNoNjRfZXhwYW5kLgoJPGNhc2UgQV9QQ0lNTVMxNkJZNF9QVD46IExpa2V3aXNlLCBidXQgZW1pdCBhIFNITUVESUFfQkZEX1JFTE9DX1BUCglmaXh1cC4KCShzaDY0X3RhcmdldF9mb3JtYXQpOiBFcnJvci1jaGVjayBzZXR0aW5nIG9mIHNoNjRfcHQzMiBhbmQKCXNoNjRfZXhwYW5kLiAgRml4IHR5cG8gaW4gY2hlY2sgZm9yIHNoNjRfc2hjb21wYWN0X2NvbnN0X2NyYW5nZS4KCShzaG1lZGlhX21kX3BjcmVsX2Zyb21fc2VjdGlvbik6IEhhbmRsZSBCRkRfUkVMT0NfU0hfUFRfMTYgYW5kCglTSE1FRElBX0JGRF9SRUxPQ19QVCBhcyBjb21pbmcgZnJvbSBTSG1lZGlhIGNvZGUuCgkyMDAwLTEyLTMxICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jOiBJbXByb3ZlIGNvbW1lbnRzLgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogUmVtb3ZlIGluYWN0aXZlIGlzX3B0X3ZhcmlhbnQgY29kZS4JRG8KCW5vdCBzYXkgdGhlIGxpbmtlciB3aWxsIGNoZWNrIGNvcnJlY3RuZXNzIG9mIFBUQS9QVEIgZXhwYW5zaW9uLgoJKHNobWVkaWFfbWRfZW5kKTogTWFrZSBub24tc3RhdGljLgoJKiBjb25maWcvdGMtc2g2NC5oIChtZF9lbmQpOiBEZWZpbmUgdG8gc2htZWRpYV9tZF9lbmQuCUFkZAoJcHJvdG90eXBlLgoJKiBjb25maWcvdGMtc2guYyAoc2hfZmluYWxpemUpOiBSZW1vdmUuCgkqIGNvbmZpZy90Yy1zaC5oIChtZF9lbmQpOiBEbyBub3QgZGVmaW5lLgoJUmVtb3ZlIHByb3RvdHlwZSBmb3Igc2hfZmluYWxpemUuCgkyMDAwLTEyLTMwICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX2Zyb2Jfc2VjdGlvbl90eXBlKTogVXNlIGEgc3RydWN0CglzaDY0X3NlY3Rpb25fZGF0YSBjb250YWluZXIgd2hlbiBzdG9yaW5nIHNlY3Rpb24gdHlwZSBpbiB0ZGF0YQoJZmllbGQgaW4gZWxmX3NlY3Rpb25fZGF0YS4KCSogY29uZmlnL3RjLXNoLmMgKHNoX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogQ2hhbmdlIGZyb20gRUZfU0g2NCB0bwoJRUZfU0g1LgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkyMDAwLTEyLTIyICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX21kX2Fzc2VtYmxlKTogRG9uJ3QgcHJvdGVjdAoJZHdhcmYyX2VtaXRfaW5zbiBjYWxsIHdpdGggdGVzdCBvbiBkZWJ1Z190eXBlLgoJMjAwMC0xMi0xOSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2g2NF9zZXRfY29udGVudHNfdHlwZSk6IE1ha2UgY29udGVudHMtdHlwZQoJQ1JUX1NINV9JU0EzMiBzdGlja3kgZm9yIDY0LWJpdC4KCTIwMDAtMTItMTggIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CglHZW5lcmF0ZSAuY3JhbmdlIHNlY3Rpb25zIHdoZW4gc3dpdGNoaW5nIElTQSBtb2RlIG9yIGVtaXR0aW5nCgljb25zdGFudHMgaW4gc2FtZSBzZWN0aW9uIGFzIGNvZGUuCgkqIGNvbmZpZy90Yy1zaDY0LmM6IFJlZm9ybWF0IHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KCShzaDY0X2VuZF9vZl9hc3NlbWJseSwgc2g2NF9taXgsIHNoNjRfc2hjb21wYWN0X2NvbnN0X2NyYW5nZSk6IE5ldwoJdmFyaWFibGVzLgoJKHNoNjRfc2V0X2NvbnRlbnRzX3R5cGUpOiBSZW5hbWUgZnJvbSBzaDY0X2luaXRfc2VjdGlvbi4gIFJld3JpdGUKCXRvIGVtaXQgYSAuY3JhbmdlcyBkZXNjcmlwdG9yIHdoZW4gY29udGVudHMgdHlwZSBjaGFuZ2VzLiAgT25seQoJZW1pdCBlcnJvciBpZiBjaGFuZ2luZyBjb250ZW50cyB0eXBlIGFuZCAtbm8tbWl4IGlzIGluIGVmZmVjdC4KCShzaDY0X2VtaXRfY3JhbmdlLCBzaDY0X2ZsdXNoX2xhc3RfY3JhbmdlLCBzaDY0X2ZsYWdfb3V0cHV0LAoJc2g2NF9mbHVzaF9wZW5kaW5nX291dHB1dCwgc2g2NF90Y19jb25zX2ZpeF9uZXcpOiBOZXcgZnVuY3Rpb25zLgoJKHNobWVkaWFfbWRfZW5kKTogU2V0IHNoNjRfZW5kX29mX2Fzc2VtYmx5LiAgUGFzcwoJc2g2NF9mbHVzaF9sYXN0X2NyYW5nZSBvdmVyIHNlY3Rpb25zLgoJV2hlbiBjaGVja2luZyBtYWluIHN5bWJvbCBvZiBkYXRhbGFiZWwgc3ltYm9sLCBjaGVjayBmb3IKCVNUT19TSDVfSVNBMzIsIG5vdCBJU0EgdHlwZSBvZiBzZWN0aW9uIGluIGRlZmluaXRpb24uCgkoc2htZWRpYV9mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdCk6IENoZWNrIG1haW4gc3ltYm9sIGZvcgoJU1RPX1NINV9JU0EzMjsgZG9uJ3QgY2hlY2sgSVNBIHR5cGUgb2Ygc2VjdGlvbiBpbiBkZWZpbml0aW9uLgoJKHNobWVkaWFfZnJvYl9zZWN0aW9uX3R5cGUpOiBBZGp1c3QgZm9yIC5jcmFuZ2VzOyBzZXQgc2VjdGlvbiBmbGFnCgl0byBTSEZfU0g1X0lTQTMyX01JWEVEIG9yIFNIRl9TSDVfSVNBMzIgYWNjb3JkaW5nIHRvIHdoZXRoZXIKCS5jcmFuZ2VzIGVudHJpZXMgaGF2ZSBiZWVuIG91dHB1dC4KCShzaG1lZGlhX2VsZl9uZXdfc2VjdGlvbik6IEp1c3QgY2FsbCBtZF9mbHVzaF9wZW5kaW5nX291dHB1dC4KCShzaG1lZGlhX21kX2Fzc2VtYmxlKTogRG8gbm90IGVtaXQgYSBCRkRfUkVMT0NfU0hfU0hNRURJQV9DT0RFCglmaXguICBEbyBub3Qgc2V0IHRjX3NlZ21lbnRfaW5mb19kYXRhLmluX2NvZGUgZm9yIHNlY3Rpb24uICBDYWxsCglzaDY0X3NldF9jb250ZW50c190eXBlIGZvciBTSG1lZGlhIGNvZGUuCgkoc19zaDY0X21vZGUpOiBEbyBub3QgY2FsbCBzaDY0X2luaXRfc2VjdGlvbiBvciBzZXQgc2Vlbl9pbnNuIHRvCglmYWxzZS4JQ2FsbCBtZF9mbHVzaF9wZW5kaW5nX291dHB1dC4KCShzaDY0X3RhcmdldF9mb3JtYXQpOiBDaGVjayB0aGF0IC1uby1taXggYW5kCgktc2hjb21wYWN0LWNvbnN0LWNyYW5nZSBhcmUgdXNlZCBpbiBzYW5lIGNvbWJpbmF0aW9uIHdpdGggb3RoZXIKCW9wdGlvbnMuCgkoc2htZWRpYV9tZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiBDaGVjayB0eXBlIG9mIGZpeCBmb3IgaG93IHRvCglhZGp1c3QgcGMtcmVsYXRpdmUuCgkoc2g2NF9jb25zdW1lX2RhdGFsYWJlbCk6IENoZWNrIHN5bWJvbCBmb3IgaGF2aW5nIFNUT19TSDVfSVNBMzIsCglub3QgSVNBIHR5cGUgb2Ygc2VjdGlvbiBpbiBkZWZpbml0aW9uLgoJKiBjb25maWcvdGMtc2g2NC5oIChzdHJ1Y3Qgc2g2NF9zZWdtZW50X2luZm9fdHlwZSk6IFJld3JpdGUgdG8KCWhvbGQgY29udGVudHMtdHlwZSBzdGF0ZS4KCShtZF9mbHVzaF9wZW5kaW5nX291dHB1dCk6IFJlZGVmaW5lIHRvIHNoNjRfZmx1c2hfcGVuZGluZ19vdXRwdXQuCgkoc2g2NF9mbHVzaF9wZW5kaW5nX291dHB1dCk6IERlY2xhcmUuCgkoVENfQ09OU19GSVhfTkVXKTogRGVmaW5lIHRvIHNoNjRfdGNfY29uc19maXhfbmV3LgoJKHNoNjRfdGNfY29uc19maXhfbmV3KTogRGVjbGFyZS4KCSogY29uZmlnL3RjLXNoLmMgKHNoX2VsZl9jb25zKSBbSEFWRV9TSDY0XTogVW5zZXQgc2Vlbl9pbnNuIGFuZAoJY2FsbCBzaDY0X2ZsYWdfb3V0cHV0LgoJKG1kX2Fzc2VtYmxlKSBbSEFWRV9TSDY0XTogRG8gbm90IGVtaXQgQkZEX1JFTE9DX1NIX0NPREUuICBKdXN0CgljYWxsIHNoNjRfc2V0X2NvbnRlbnRzX3R5cGUgdG8gbWFyayBTSGNvbXBhY3QgY29kZSBhbmQgc2V0CglzZWVuX2luc24uCgkobWRfbG9uZ29wdHMpOiBOZXcgb3B0aW9ucyAiLW5vLW1peCIgYW5kCgkiLXNoY29tcGFjdC1jb25zdC1jcmFuZ2UiLgoJKG1kX3BhcnNlX29wdGlvbik6IEhhbmRsZSBuZXcgb3B0aW9ucy4KCShtZF9zaG93X3VzYWdlKTogQWRkIGJsdXJiIGZvciBuZXcgb3B0aW9ucy4KCShtZF9udW1iZXJfdG9fY2hhcnMpIFtIQVZFX1NINjRdOiBDYWxsIHNoNjRfZmxhZ19vdXRwdXQuCgkyMDAwLTEyLTE1ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jOiBEZWxldGUgaW52ZXN0aWdhdGVkIGFuZCBvYnNvbGV0ZSBmaXhtZTpzLgoJKHNoNjRfbGFzdF9pbnNuX2ZyYWcpOiBOZXcuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpOiBVc2UgdGNfZnJhZ19kYXRhIGZpZWxkIG9mIGluY29taW5nIGZyYWcKCXRvIGdldCBmcmFnIGZvciBpbnNuIG9wY29kZSBmb3IgZ2VuZXJhdGluZyBmaXh1cHM7IGRvIG5vdCBhc3N1bWUgaXQKCWlzIHRoZSBzYW1lIGZyYWcuCgkoc2htZWRpYV9idWlsZF9NeXRlcyk6IFNldCBzaDY0X2xhc3RfaW5zbl9mcmFnIGFmdGVyIGdyb3dpbmcgZnJhZwoJZm9yIG5ldyBpbnNuLgoJKiBjb25maWcvdGMtc2g2NC5oIChFTEZfVENfU1BFQ0lBTF9TRUNUSU9OUyk6IERlZmluZSBmb3IgLmNyYW5nZXMKCXNlY3Rpb24uCgkoVENfRlJBR19UWVBFKTogRGVmaW5lIGFzIGZyYWdTICouCgkoVENfRlJBR19JTklUKTogRGVmaW5lIHRvIHNldCB0Y19mcmFnX2RhdGEgdG8gc2g2NF9sYXN0X2luc25fZnJhZy4KCShzaDY0X2xhc3RfaW5zbl9mcmFnKTogRGVjbGFyZS4KCShzaDY0X2NvbnN1bWVfZGF0YWxhYmVsKTogRml4IHR5cG87IGNoZWNrIGZvciBzZWdpbmZvICE9IE5VTEwsCglub3QgPT0gTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZy4KCTIwMDAtMTItMTIgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CglHZXQgcmlkIG9mIEJGRCBzZWN0aW9uIGZsYWcgYW5kIEVGX1NINjRfQUJJNjQuCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfZnJvYl9zZWN0aW9uX3R5cGUpOiBVc2UKCWVsZl9zZWN0aW9uX2RhdGEgKHNlYyktPnRkYXRhLCBub3QgYSBzcGVjaWZpYyBCRkQgc2VjdGlvbiBmbGFnLCB0bwoJY29tbXVuaWNhdGUgdGhlIHNlY3Rpb24gYXMgY29udGFpbmluZyBTSG1lZGlhIGNvZGUuICBEZXNjcmliZSB3aHkuCgkqIGNvbmZpZy90Yy1zaC5jIChzaF9lbGZfZmluYWxfcHJvY2Vzc2luZyk6IFR3ZWFrIGNvbW1lbnQuICBTZXQKCUVGX1NINjQgcmVnYXJkbGVzcyBvZiBBQkkuCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfYXBwbHlfZml4KTogRGVjYXBpdGFsaXplICJpbnZhbGlkIgoJaW4gZXJyb3IgbWVzc2FnZS4gIEhhbmRsZSByZXNvbHZlZCBleHByZXNzaW9ucyBmb3IKCUJGRF9SRUxPQ19TSF9JTU1TMTAsIEJGRF9SRUxPQ19TSF9JTU1TMTBCWTIsCglCRkRfUkVMT0NfU0hfSU1NUzEwQlk0IGFuZCBCRkRfUkVMT0NfNjQuCgkoc2htZWRpYV9jaGVja19saW1pdHMpOiBIYW5kbGUgQkZEX1JFTE9DXzY0LgoJKHNoNjRfYWRqdXN0X3N5bXRhYik6IERvIG5vdCBkZWNyZW1lbnQgdGhlIEdBUyBzeW1ib2wgdmFsdWUgZm9yCglhIFNUT19TSDVfSVNBMzIgc3ltYm9sLCBvbmx5IHRoZSBCRkQgdmFsdWUuCgkyMDAwLTEyLTExICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYzogQ2FsbCBkd2FyZjJfZW1pdF9pbnNuLCBub3QgdGhlIGRlZnVuY3QKCWR3YXJmMl9nZW5lcmF0ZV9hc21fbGluZW5vLgoJMjAwMC0xMi0xMSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCUhhbmRsZSBQQy1yZWxhdGl2ZSBNT1ZJIGV4cGFuc2lvbnMgd2l0aCBhc3NlbWJsZXIgcmVsYXhhdGlvbi4KCUdlbmVyYXRlIFBDLXJlbGF0aXZlIHJlbG9jcyBmcm9tIDE2LWJpdCBQQy1yZWxhdGl2ZSBleHByZXNzaW9ucy4KCSogY29uZmlnL3RjLXNoNjQuYyAoU0hNRURJQV9NRF9QQ1JFTF9GUk9NX0ZJWCk6IEJyZWFrIG91dCBmcm9tLi4uCgkoc2htZWRpYV9tZF9wY3JlbF9mcm9tX3NlY3Rpb24pOiAuLi5oZXJlLgoJKHNobWVkaWFfbWRfYXBwbHlfZml4KTogSGFuZGxlIGZpeHVwcyBmb3IgMTYtYml0IG9wZXJhbmRzIHRoYXQgaGFzCgl0dXJuZWQgY29tcGxldGVseSByZXNvbHZlZC4gIEFkanVzdCByZWxvY2F0aW9uIHR5cGUgZm9yIDE2LWJpdAoJaW1tZWRpYXRlIG9wZXJhbmRzIHRoYXQgaGFzIHR1cm5lZCBQQy1yZWxhdGl2ZS4gIEFkanVzdCBiYWNrIGZvcgoJTURfUENSRUxfRlJPTV9TRUNUSU9OIGJlaW5nIGFwcGxpZWQgdHdpY2UuCgkoc2htZWRpYV9tZF9jb252ZXJ0X2ZyYWcpOiBBbHdheXMgZW1pdCByZWxvYyBmb3IgZXhwcmVzc2lvbiB3aXRoCglnbG9iYWwgb3Igd2VhayBzeW1ib2wuCUhhbmRsZSByZWxheGF0aW9uIHJlc3VsdCBmb3IgUEMtcmVsYXRpdmUKCWV4cHJlc3Npb25zLgoJKHNobWVkaWFfbWRfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBBbiBleHByZXNzaW9uIHdpdGggYSB3ZWFrCglvciBnbG9iYWwgc3ltYm9sIGNhbiBub3QgYmUgcmVsYXhlZC4gIEJyZWFrIG91dCB0ZXN0cyBmb3IKCXJlbGF4YWJsZSBzeW1ib2wgaW50byB2YXJpYWJsZSBzeW1fcmVsYXhhYmxlLgoJPGNhc2VzIEMgKE1PVklfSU1NXzY0LCBVTkRFRl9NT1ZJKSBhbmQgQyAoTU9WSV9JTU1fMzIsCglVTkRFRl9NT1ZJKT46IEJyZWFrIG91dCBhbnkgUEMtcmVsYXRpdmUgZXhwcmVzc2lvbiBhbmQgY2hhbmdlCglyZWxheGF0aW9uIHR5cGUuCgkoc2htZWRpYV9idWlsZF9NeXRlcyk6IENTRSAmb3BlcmFuZHMtPm9wZXJhbmRzW2pdIGludG8gdmFyaWFibGUKCW9wanAuCgk8Y2FzZSBBX0lNTVMxNj46IEZpeCB0eXBvIGZvciBpbml0aWFsIG1pbm9yIHJlbGF4YXRpb24gdHlwZSBvZgoJTU9WSSBleHBhbnNpb24uICBJZiBYX29wX3N5bWJvbCBvZiB0aGUgaW1tZWRpYXRlIGV4cHJlc3Npb24gaXMKCXNldCwgbWFrZSBhbiBleHByZXNzaW9uIHN5bWJvbCBmb3IgdGhlIGFyZ3VtZW50IHRvIGZyYWdfdmFyLgoJKiBjb25maWcvdGMtc2guYyAoTU9WSV9JTU1fMzJfUENSRUwsIE1PVklfSU1NXzY0X1BDUkVMKTogTmV3CglyZWxheGF0aW9ucy4KCShFTkQpOiBBZGp1c3QgZm9yIG5ldyByZWxheGF0aW9ucy4KCShtZF9yZWxheF90YWJsZSk6IEFkZCBlbnRyaWVzIGZvciBuZXcgcmVsYXhhdGlvbnMuCgkyMDAwLTEyLTA3ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9wYXJzZV9yZWcpOiBJbml0aWFsaXplIHZhcmlhYmxlIGxlbi4KCTIwMDAtMTItMDcgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogQ29ycmVjdCBhbGwgTU9WSSBhbmQKCVNIT1JJIG9wZXJhbmQgb2Zmc2V0cyBpbiBQVC9QVEEvUFRCIGV4cGFuc2lvbnMuCgkyMDAwLTEyLTA1ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJSW1wbGVtZW50IERhdGFMYWJlbCBzZW1hbnRpY3MuCgkqIGNvbmZpZy90Yy1zaC5jIChzaF9mcm9iX2ZpbGUpIFtIQVZFX1NINjRdOiBDYWxsCglzaG1lZGlhX2Zyb2JfZmlsZV9iZWZvcmVfYWRqdXN0LgoJKiBjb25maWcvdGMtc2g2NC5jIFshIE9CSl9FTEZdOiBFbWl0ICNlcnJvci4KCShEQVRBTEFCRUxfU1VGRklYKTogRGVmaW5lLgoJKHNobWVkaWFfbWRfZW5kKSA8YmVmb3JlIGFkanVzdGluZyBTVE9fU0g1X0lTQTMyIHN5bWJvbHM+OiBXYWxrCglzeW1ib2wgbGlzdCB0byB1cGRhdGUgImRhdGFsYWJlbCIgc3ltYm9scyB0byB0aGVpciBtYWluIHN5bWJvbAoJY291bnRlcnBhcnRzLgoJKHNobWVkaWFfZnJvYl9maWxlX2JlZm9yZV9hZGp1c3QpOiBOZXcuCgkoc2g2NF9hZGp1c3Rfc3ltdGFiKTogRm9yIHJlbWFpbmluZyBkYXRhbGFiZWwgc3ltYm9scywgc2V0IHRvCgl1bmRlZmluZWQgYW5kIHNldCBTVFRfREFUQUxBQkVMLgoJKHNoNjRfZnJvYl9sYWJlbCk6IEluaXRpYWxpemUgVEMgc3ltYm9sIGZpZWxkLgoJKHNoNjRfY29uc3VtZV9kYXRhbGFiZWwpOiBBY3R1YWxseSBpbXBsZW1lbnQgc2VtYW50aWNzLiAgTmV3CglwYXJhbWV0ZXIgb3BlcmFuZGYsIGNhbGwgaXQgaW5zdGVhZCBvZiBleHByZXNzaW9uLgoJKHNoNjRfZXhjbHVkZV9zeW1ib2wpOiBOZXcuCgkqIGNvbmZpZy90Yy1zaDY0LmggKG1kX3BhcnNlX25hbWUpOiBQYXNzIG9uIHRoZSBmdW5jdGlvbiBvcGVyYW5kCgl0byBzaDY0X2NvbnN1bWVfZGF0YWxhYmVsLgoJKHRjX3N5bWJvbF9uZXdfaG9vayk6IERlZmluZSB0byB0Y19mcm9iX3N5bWJvbC4KCShUQ19TWU1GSUVMRF9UWVBFKTogRGVmaW5lIHRvIHN5bWJvbFMgKi4KCSh0Y19mcm9iX3N5bWJvbCk6IERlZmluZSB0byBjYWxsIHNoNjRfZXhjbHVkZV9zeW1ib2wuCgkyMDAwLTEyLTAxICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX2luaXRfcmVsb2MpOiBUd2VhayBjb21tZW50IGZvciBkZWZhdWx0CgljYXNlLgoJKHNobWVkaWFfbWRfYXNzZW1ibGUpOiBDYWxsIGR3YXJmMl9nZW5lcmF0ZV9hc21fbGluZW5vIGlmCglnZW5lcmF0aW5nIGR3YXJmMiBkZWJ1ZyBpbmZvcm1hdGlvbi4KCTIwMDAtMTEtMzAgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNoNjRfdGFyZ2V0X2Zvcm1hdCk6IFVzZSBlbGY2NC1zaDY0bCBhbmQKCWVsZjY0LXNoNjQgZm9yIHRoZSA2NC1iaXQgQUJJLgoJKiBjb25maWcvdGMtc2guYyAobWRfc2hvd191c2FnZSk6IFR3ZWFrIHVzYWdlIG91dHB1dCBmb3IgLWFiaT0qCglvcHRpb24uCgkyMDAwLTExLTI5ICBIYW5zLVBldGVyIE5pbHNzb24JPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWcvdGMtc2guYzogUmVtb3ZlIGNvbmRpdGlvbmFsaXppbmcgb24gSEFWRV9TSDY0IGZvcgoJY2FzZS1pbnNlbnNpdGl2aXR5LgoJMjAwMC0xMS0yNyAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYzogVHdlYWsgY29tbWVudHMsIGZvcm1hdHRpbmcgYW5kIGVycm9yIG1lc3NhZ2VzLgoJKGVudW0gc2g2NF9hYmlfdmFsdWVzKTogTmV3IHR5cGUuCgkoZW51bSBzaDY0X2lzYV92YWx1ZXMpOiBOZXcgdHlwZS4KCShzaDY0X2lzYV9tb2RlKTogUmVwbGFjZSBzaG1lZGlhX21vZGUuCUFsbCByZWZlcmVycyBjaGFuZ2VkLgoJKHNlZW5fc2hjb21wYWN0X21vZGUsIHNlZW5fc2htZWRpYV9tb2RlKTogRGVsZXRlLgoJKHNoNjRfYWJpKTogUmVwbGFjZSBzaG1lZGlhXzY0LgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKSA8QyAoTU9WSV9JTU1fNjQsIE1PVklfNjQpLAoJQyAoTU9WSV9JTU1fMzIsIE1PVklfMzIpPjogQ29ycmVjdCByZWdpc3RlciBudW1iZXIgaGFuZGxpbmcuCgkoc19zaDY0X21vZGUpOiBDaGVjayB2YWxpZGl0eSBmb3IgdGhpcyB0YXJnZXQuCgkoc2g2NF90YXJnZXRfZm9ybWF0KTogSW5pdGlhbGl6ZSBkZWZhdWx0cyBmb3IgSVNBIGFuZCBBQkkuCglGYWxsYmFjayB0byBvbGQgb2JqZWN0IGZvcm1hdCBpZiBubyBTSDY0IElTQSBvciBBQkkgaGFzIGJlZW4KCXNwZWNpZmllZC4KCSogY29uZmlnL3RjLXNoLmMgKG1kX3BhcnNlX29wdGlvbik6IENoZWNrIGNvbWJpbmF0aW9ucyBmb3IgZXJyb3JzLgoJKHNoX2VsZl9maW5hbF9wcm9jZXNzaW5nKTogQ2hhbmdlIHRvIGhhdmUgRUZfU0g2NF9BQkk2NCBmb3IgNjQtYml0CglBQkkgYW5kIEVGX1NINjQgZm9yIDMyLWJpdCBBQkksIGlmIFNINjQgb3B0aW9ucyBhcmUgc3BlY2lmaWVkLgoJKiBjb25maWcvdGMtc2g2NC5oOiBGaXggdHlwbyBpbiBjb21tZW50LgoJMjAwMC0xMS0yNSAgSGFucy1QZXRlciBOaWxzc29uCTxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlnL3RjLXNoNjQuYyAoc2htZWRpYV9tZF9lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCkKCTxQVCBmaXh1cHMgZm9yIGFic29sdXRlIHZhbHVlcz46IFNpemUgd2lsbCBiZSBsb25nZXN0LCBub3QKCXNob3J0ZXN0LgoJKHNobWVkaWFfbWRfY29udmVydF9mcmFnKTogRGlzYWJsZSBQVEItd2FybmluZyBtYWNoaW5lcnkuICBDb3JyZWN0CglhbGwgTU9WSSBhbmQgU0hPUkkgb3BlcmFuZCBvZmZzZXRzIGluIFBUL1BUQS9QVEIgZXhwYW5zaW9ucy4KCSogY29uZmlnL3RjLXNoLmMgKHBhcnNlX3JlZykgW0hBVkVfU0g2NF06IEFkZCBsb2NhbCB2YXJpYWJsZXMgbDAKCWFuZCBsMSB0byBob2xkIGxvd2VyY2FzZSBvZiB0d28gZmlyc3QgY2hhcmFjdGVycy4gIENoYW5nZSBhbGwKCXJlbWFpbmluZyBUT19MT1dFUiB0byB0b2xvd2VyLgoJKiBjb25maWcvdGMtc2g2NC5jIChUT19MT1dFUik6IERlbGV0ZS4KCShzaG1lZGlhX2ZpbmRfY29va2VkX29wY29kZSk6IFVzZSB0b2xvd2VyLCBub3QgVE9fTE9XRVIuCgkobWRfcGFyc2VfbmFtZSk6IERlZmluZS4KCShzaDY0X2NvbnN1bWVfZGF0YWxhYmVsKTogRGVjbGFyZS4KCShET0xMQVJfRE9UKTogRGVmaW5lLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX3BhcnNlX2V4cCk6IE5ldy4KCShzaDY0X2NvbnN1bWVfZGF0YWxhYmVsKTogTmV3OyBqdXN0IGlnbm9yaW5nIGRhdGFsYWJlbCBzZW1hbnRpY3MuCgkoc2htZWRpYV9wYXJzZV9yZWcpOiBSZW1vdmUgY29uc3QgZnJvbSBzcmMKCXBhcmFtZXRlci4KCShzaG1lZGlhX2dldF9vcGVyYW5kcyk6IERpdHRvIGZvciBhcmdzIHBhcmFtZXRlciBhbmQgcHRyIHZhcmlhYmxlLgoJKHNobWVkaWFfbWRfYXNzZW1ibGUpOiBEaXR0byBmb3Igb3BfZW5kIHZhcmlhYmxlLgoJKHNobWVkaWFfZ2V0X29wZXJhbmQpOiBEaXR0byBmb3IgcHRyIHBhcmFtZXRlciBhbmQgc3JjIHZhcmlhYmxlLgoJVXNlIHNobWVkaWFfcGFyc2VfZXhwLCBub3QgcGFyc2VfZXhwLgoJKiBjb25maWcvdGMtc2g2NC5jIChzaG1lZGlhX3BhcnNlX3JlZyk6IEFkZCBzaG1lZGlhX2FyZ190eXBlCglwYXJhbWV0ZXIuICBBbGwgY2FsbGVycyBjaGFuZ2VkLgoJKHNobWVkaWFfZ2V0X29wZXJhbmQpOiBBZGQgc2htZWRpYV9hcmdfdHlwZSBwYXJhbWV0ZXIuCUFsbAoJY2FsbGVycyBjaGFuZ2VkLgoJKHNobWVkaWFfcGFyc2VfcmVnKTogUHV0IGZpcnN0IHR3byBjaGFyYWN0ZXIgaW4gbG9jYWwgdmFyaWFibGVzLgoJVXNlIHRvbG93ZXIsIG5vdCBUT19MT1dFUi4gIElmIG5vIHJlZ2lzdGVyIGlzIGZvdW5kIGFuZCBhcmd0eXBlCglpbmRpY2F0ZXMgYSBjb250cm9sIHJlZ2lzdGVyLCBzY2FuIHNobWVkaWFfY3JlZ190YWJsZQoJY2FzZS1pbnNlbnNpdGl2ZS4KCTIwMDAtMTEtMjQgIEhhbnMtUGV0ZXIgTmlsc3Nvbgk8aHBuQGN5Z251cy5jb20+CgkqIE1ha2VmaWxlLmFtIChDUFVfVFlQRVMpOiBBZGQgc2g2NC4KCShUQVJHRVRfQ1BVX0NGSUxFUyk6IEFkZCBjb25maWcvdGMtc2g2NC5jLgoJKFRBUkdFVF9DUFVfSEZJTEVTKTogQWRkIGNvbmZpZy90Yy1zaDY0LmguCglSZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIHNoNjQtKi1lbGYqLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1zaDY0Lmg6IE5ldy4KCSogY29uZmlnL3RjLXNoNjQuYzogTmV3LgoJKiBjb25maWcvdGMtc2guYyAobWRfcHNldWRvX3RhYmxlKSBbSEFWRV9TSDY0XTogTmV3IHBzZXVkb3MKCS5tb2RlLCAuaXNhIGFuZCAudWFxdWFkLgoJW0hBVkVfU0g2NF0gKFNINjRQQ1JFTDE2XzMyLCBTSDY0UENSRUwxNl82NCwgU0g2NFBDUkVMMTZQVF8zMiwKCVNINjRQQ1JFTDE2UFRfNjQsIE1PVklfSU1NXzMyLCBNT1ZJX0lNTV82NCk6IERlZmluZS4KCVtIQVZFX1NINjRdIChFTkQpOiBEZWZpbmUgYXMgMTAuCglbSEFWRV9TSDY0XSAoVU5ERUZfU0g2NFBDUkVMLCBTSDY0UENSRUwxNiwgU0g2NFBDUkVMMzIsCglTSDY0UENSRUw0OCwgU0g2NFBDUkVMNjQsIFVOREVGX01PVkksIE1PVklfMTYsIE1PVklfMzIsIE1PVklfNDgsCglNT1ZJXzY0KTogRGVmaW5lLgoJW0hBVkVfU0g2NF0gKFNINjRQQ1JFTDE2X0YsIFNINjRQQ1JFTDE2X00sIFNINjRQQ1JFTDE2X0xFTkdUSCwKCVNINjRQQ1JFTDMyX0YsIFNINjRQQ1JFTDMyX00sIFNINjRQQ1JFTDMyX0xFTkdUSCwgU0g2NFBDUkVMNDhfRiwKCVNINjRQQ1JFTDQ4X00sIFNINjRQQ1JFTDQ4X0xFTkdUSCwgU0g2NFBDUkVMNjRfTEVOR1RILAoJTU9WSV8xNl9MRU5HVEgsIE1PVklfMzJfTEVOR1RILCBNT1ZJXzQ4X0xFTkdUSCwgTU9WSV82NF9MRU5HVEgpOgoJRGVmaW5lLgoJKG1kX3JlbGF4X3RhYmxlKSBbSEFWRV9TSDY0XTogUHJvdmlkZSByZWxheGF0aW9ucyBmb3IgU0htZWRpYS4KCShtZF9iZWdpbikgW0hBVkVfU0g2NF06IENhbGwgc2htZWRpYV9tZF9iZWdpbi4KCShwYXJzZV9yZWcpIFtIQVZFX1NINjRdOiBQYXJzZSByZWdpc3RlciBuYW1lcyBjYXNlLWluc2Vuc2l0aXZlLgoJKG1kX2Fzc2VtYmxlKSBbSEFWRV9TSDY0XTogQ2FsbCBzaG1lZGlhX21kX2Fzc2VtYmxlIGlmIGFzc2VtYmxpbmcKCVNIbWVkaWEgaW5zdHJ1Y3Rpb25zLiAgSGFuZGxlIHN0YXRlLWNoYW5nZSBhZnRlciBzd2l0Y2hpbmcgdG8KCVNIY29tcGFjdC4KCShtZF9sb25nb3B0cykgW0hBVkVfU0g2NF06IE5ldyBvcHRpb25zIC0taXNhPSogYW5kIC0tYWJpPSouCgkobWRfcGFyc2Vfb3B0aW9uKSBbSEFWRV9TSDY0XTogUGFyc2UgbmV3IG9wdGlvbnMuCgkobWRfc2hvd191c2FnZSkgW0hBVkVfU0g2NF06IFNob3cgdXNhZ2Ugb2YgbmV3IG9wdGlvbnMuCgkobWRfY29udmVydF9mcmFnKSBbSEFWRV9TSDY0XSA8ZGVmYXVsdD46IENhbGwKCXNobWVkaWFfbWRfY29udmVydF9mcmFnIGluc3RlYWQgb2YgYWJvcnQuCgkoc2hfZm9yY2VfcmVsb2NhdGlvbikgW0hBVkVfU0g2NF06IEFsc28gZm9yY2UgcmVsb2NhdGlvbiBmb3IKCUJGRF9SRUxPQ19TSF9TSE1FRElBX0NPREUuCgkoc2hfZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpIFtIQVZFX1NINjRdOiBTZXQgZmxhZ3MgaWRlbnRpZnlpbmcKCVNIY29tcGFjdCBvciBTSG1lZGlhIGNvZGUuCgkobWRfYXBwbHlfZml4KSBbSEFWRV9TSDY0XSA8ZGVmYXVsdD46IFJldHVybiByZXN1bHQgZnJvbSBjYWxsaW5nCglzaG1lZGlhX21kX2FwcGx5X2ZpeCBpbnN0ZWFkIG9mIGFib3J0LgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KSBbSEFWRV9TSDY0XSA8ZGVmYXVsdD46IFJldHVybgoJcmVzdWx0IGZyb20gY2FsbGluZyBzaG1lZGlhX21kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4IGluc3RlYWQKCW9mIGNhbGxpbmcgYWJvcnQuCgkoc2hfZG9fYWxpZ24pIFtIQVZFX1NINjRdOiBJZiBzaG1lZGlhX21vZGUsIGxldCBzaG1lZGlhX2RvX2FsaWduCglkbyB0aGUgd29yay4KCSh0Y19nZW5fcmVsb2MpIFtIQVZFX1NINjRdOiBGb3IgdW5yZWNvZ25pemVkIHJlbG9jcywgY2FsbAoJc2htZWRpYV9pbml0X3JlbG9jIGFuZCBkbyBub3RoaW5nIG1vcmUgaWYgaXQgcmV0dXJucyBub24temVyby4KCShzaF9maW5hbGl6ZSkgW0hBVkVfU0g2NF06IENhbGwgc2htZWRpYV9tZF9lbmQuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9nYXMucG90OiBSZWdlbmVyYXRlLgoKMjAwMi0wMi0wNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtc2guYyAocGFyc2VfYXQpOiBJbnN0YWxsIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YKCTIwMDItMDItMDQncyBwYXRjaC4KCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9hcHBseV9maXgzKSA8QkZEX1JFTE9DXzMyX1BMVF9QQ1JFTD46IERvbid0Cglhc3N1bWUgZml4UC0+Znhfc3Vic3kgaXMgbm9uLU5VTEwuCgoyMDAyLTAyLTA0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChwYXJzZV9hdCk6IFNldCBhcmcgdHlwZSBvZiBAKGV4cHIscGMpIHRvCglBX0RJU1BfUENfQUJTLCBhbmQgYWRqdXN0IGl0IGJ5IC00LgoJKGdldF9zcGVjaWZpYyk6IEFjY2VwdCBBX0RJU1BfUENfQUJTIHdoZXJlIEFfRElTUF9QQyBpcwoJZXhwZWN0ZWQuCgkoYnVpbGRfTXl0ZXMpOiBNYXJrIFBDUkVMSU1NIGZpeC11cHMgYXMgcGMtcmVsYXRpdmUgb25seSBpZgoJdGhlIG9wZXJhbmQgdHlwZSBpcyBub3QgQV9ESVNQX1BDX0FCUy4KCjIwMDItMDItMDQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy90Yy1tbWl4LmMgKHRjX2dlbl9yZWxvYyk6IERvbid0IHRyeSBhbmQgdGFrZSB0aGUgdmFsdWUgb2YKCWNvbW1vbiBhbmQgd2VhayBzeW1ib2xzLiAgSGFuZGxlIGNvbW1vbiBhbmQgd2VhayBzeW1ib2xzIGFzCgl1bmRlZmluZWQgc3ltYm9scyB3aXRoIHJlZ2FyZHMgdG8gR1JFRyBoYW5kbGluZyBhbmQgbWVyZ2luZy4KCShtbWl4X2Zyb2JfZmlsZSk6IERpdHRvLgoKMjAwMi0wMi0wMiAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoaHBwYS0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy90Yy1ocHBhLmg6IEFsc28gZGVmaW5lIFdBUk5fQ09NTUVOVFMgaWYgVEVfTmV0QlNELgoKMjAwMi0wMi0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy12ODUwLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMgYW1kIHVzZSBvbGQtc3R5bGUKCWZ1bmN0aW9uIGRlZmluaXRpb25zLgoJKEFSRUFfWkRBLCBBUkVBX1NEQSwgQVJFQV9UREEpOiBEZWxldGUuCgkoc2RhdGFfc2VjdGlvbiB0ZGF0YV9zZWN0aW9uLCB6ZGF0YV9zZWN0aW9uLCBzYnNzX3NlY3Rpb24sCgl0YnNzX3NlY3Rpb24sIHpic3Nfc2VjdGlvbiwgcm9zZGF0YV9zZWN0aW9uLCByb3pkYXRhX3NlY3Rpb24sCglzY29tbW9uX3NlY3Rpb24sIHRjb21tb25fc2VjdGlvbiwgemNvbW1vbl9zZWN0aW9uLAoJY2FsbF90YWJsZV9kYXRhX3NlY3Rpb24sIGNhbGxfdGFibGVfdGV4dF9zZWN0aW9uKTogRGVsZXRlLgoJKHY4NTBfc2RhdGEsIHY4NTBfdGRhdGEsIHY4NTBfemRhdGEsIHY4NTBfc2Jzcywgdjg1MF90YnNzLAoJdjg1MF96YnNzLCB2ODUwX2Jzcywgdjg1MF9yb3NkYXRhLCB2ODUwX3JvemRhdGEsCgl2ODUwX2NhbGxfdGFibGVfZGF0YSwgdjg1MF9jYWxsX3RhYmxlX3RleHQpOiBEZWxldGUuCgkoc3RydWN0IHY4NTBfc2VnX2VudHJ5KTogTmV3LgoJKHY4NTBfc2VnX3RhYmxlKTogTmV3LgoJKFNEQVRBX1NFQ1RJT04gVERBVEFfU0VDVElPTiwgWkRBVEFfU0VDVElPTiwgU0JTU19TRUNUSU9OLAoJVEJTU19TRUNUSU9OLCBaQlNTX1NFQ1RJT04sIEJTU19TRUNUSU9OLCBST1NEQVRBX1NFQ1RJT04sCglST1pEQVRBX1NFQ1RJT04sIFNDT01NT05fU0VDVElPTiwgVENPTU1PTl9TRUNUSU9OLCBaQ09NTU9OX1NFQ1RJT04sCglDQUxMX1RBQkxFX0RBVEFfU0VDVElPTiwgQ0FMTF9UQUJMRV9URVhUX1NFQ1RJT04pOiBEZWZpbmUuCgkoZG9fdjg1MF9zZWcpOiBOZXcuCgkodjg1MF9zZWcpOiBOZXcuCgkodjg1MF9jb21tKTogVXNlIGRvX3Y4NTBfc2VnIGFuZCB2ODUwX3NlZ190YWJsZS4gIFNpbXBsaWZ5CglyZWNvcmRpbmcgb2YgYWxpZ25tZW50LgoJKG1kX3BzZXVkb190YWJsZSk6IFVzZSB2ODUwX3NlZy4KCShtZF9iZWdpbik6IERvbid0IGluaXQgLmNhbGxfdGFibGVfZGF0YSBhbmQgLmNhbGxfdGFibGVfdGV4dCBoZXJlLgoJU2V0IHY4NTBfc2VnX3RhYmxlIGJzcyBlbnRyeS4KCjIwMDItMDItMDEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCglTdXBwb3J0IG9uLWRlbWFuZCBnbG9iYWwgcmVnaXN0ZXIgYWxsb2NhdGlvbiBieSBwYXNzaW5nIG9uCgliYXNlLXBsdXMtb2Zmc2V0IHJlbG9jcyB0byB0aGUgbGlua2VyLgoJKiBjb25maWcvdGMtbW1peC5jOiBUd2VhayBhbmQgZml4IHR5cG9zIGluIGNvbW1lbnRzLgoJKGFsbG9jYXRlX3VuZGVmaW5lZF9ncmVnc19pbl9saW5rZXIpOiBOZXcgdmFyaWFibGUuCgkoT1BUSU9OX0xJTktFUl9BTExPQ0FURURfR1JFR1MpOiBOZXcgb3B0aW9uIG1hY3JvLgoJKG1kX2xvbmdvcHRzKTogQWRkIC0tbGlua2VyLWFsbG9jYXRlZC1ncmVncy4KCShtZF9wYXJzZV9vcHRpb24pIDxjYXNlICd4Jz46IEltcGx5IC0tbGlua2VyLWFsbG9jYXRlZC1ncmVncy4KCTxjYXNlIE9QVElPTl9MSU5LRVJfQUxMT0NBVEVEX0dSRUdTPjogTmV3LgoJKG1kX3Nob3dfdXNhZ2UpOiBVcGRhdGUgdGV4dCBmb3IgLXguICBBZGQgdGV4dCBmb3IKCS0tbGlua2VyLWFsbG9jYXRlZC1ncmVncy4KCSh0Y19nZW5fcmVsb2MpOiBEZXJpdmUgZGVmYXVsdCB2YWx1ZSBmb3IgYWRkZW5kIGZyb20gdmFsIGFuZAoJYmFkZHN5LiAgVXNlIGFkZHNlYyBhbmQgYmZkX2lzX2Fic19zZWN0aW9uIGluIG1vcmUgcGxhY2VzLiAgRG9uJ3QKCWVtaXQgZXJyb3IgZm9yIEJGRF9SRUxPQ19NTUlYX0JBU0VfUExVU19PRkZTRVQgd2l0aG91dCBzdWl0YWJsZQoJR1JFRyBpZiBhbGxvY2F0ZV91bmRlZmluZWRfZ3JlZ3NfaW5fbGlua2VyLgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpIDxUYXJnZXQgTU1JWCBvcHRpb25zPjogQWRkCgktLWxpbmtlci1hbGxvY2F0ZWQtZ3JlZ3MuCgkqIGRvYy9jLW1taXgudGV4aSAoTU1JWC1PcHRzKTogQWRkIGJsdXJiIGFib3V0CgktLWxpbmtlci1hbGxvY2F0ZWQtZ3JlZ3MuICBNZW50aW9uIHRoYXQgaXQncyBpbXBsaWVkIGJ5IC14LgoJKE1NSVgtUHNldWRvcykgPEdSRUc+OiBNZW50aW9uIHdoZW4gYW5kIGhvdyBhIEdSRUcgY2FuIGJlIG9taXR0ZWQuCgkoTU1JWC1tbWl4YWwpOiBDbGFyaWZ5IGRhdGVkIGNvbXBhcmlzb24gYW5kIGxvY2F0aW9uIG9mIE1NSVh3YXJlLgoKCSogY29uZmlnL3RjLW1taXguaCAobWRfcGFyc2VfbmFtZSk6IFVzZSBJU1VQUEVSLCBub3QgaXN1cHBlci4KCjIwMDItMDItMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTMxICBJdmFuIEd1enZpbmVjICA8aXZhbmdAb3BlbmNvcmVzLm9yZz4KCgkqIGNvbmZpZy90Yy1vcjMyLmM6IE5ldyBmaWxlLgoJKiBjb25maWcvdGMtb3IzMi5oOiBOZXcgZmlsZS4KCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3Igb3IzMiB0YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy9vYmotY29mZi5jOiBBZGQgc3VwcG9ydCBmb3Igb3IzMiB0YXJnZXRzLgoJKiBjb25maWcvb2JqLWNvZmYuaDogQWRkIHN1cHBvcnQgZm9yIG9yMzIgdGFyZ2V0cy4KCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBvcjMyIHRhcmdldHMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBORVdTOiBNZW50aW9uIHN1cHBvcnQgZm9yIE9wZW5SSVNDLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9nYXMucG90OiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0zMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXNoLmMgKHBhcnNlX3JlZyk6IEZpeCBlbmQtb2Ytd29yZCBjaGVjayBmb3IgaXMsIGl4LCBpeQoJYW5kIG1vZC4KCjIwMDItMDEtMjkgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jICh0Y19nZW5fcmVsb2MpOiBBcnJhbmdlIGZvcgoJQkZEX1JFTE9DX1BDUkVMX0hJMTZfUyByZWxvY2F0aW9ucyB0byBiZSBvdXRwdXQgcmVsYXRpdmUgdG8KCXRoZWlyIExPMTYgcGFydHMsIGV2ZW4gZm9yIEVMRi4KCjIwMDItMDEtMjkgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYzogUHJvdGVjdCBkZWZpbml0aW9ucyBvZiB0cnVlIGFuZCBmYWxzZQoJZnJvbSByZWRlZmluaXRpb24uCgoyMDAyLTAxLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotZWxmLmMgKGVsZl9mcm9iX2ZpbGVfYmVmb3JlX2FkanVzdCk6IFJlbW92ZSBzeW1ib2xzCgltYWRlIGJlY2F1c2Ugb2YgLndlYWssIGlmIHRoZXkgYXJlIG5laXRoZXIgZGVmaW5lZCBub3IgdXNlZCBpbiBhbnkKCXdheS4KCjIwMDItMDEtMjcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDItMDEtMjYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGRvYy9NYWtlZmlsZS5hbSAoaW5zdGFsbCk6IERlcGVuZCBvbiBpbnN0YWxsLWluZm8uCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMjYgIE5pY2sgQ2xpZnRvbiA8bmlja0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbgoKMjAwMi0wMS0yNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb25maWcvdGMtaDgzMDAuYyAoY2hlY2tfb3BlcmFuZCk6IERvbid0IHByaW50IGEgd2FybmluZwoJd2hlbiBhIHZhbGlkIDI0LWJpdCBhZGRyZXNzIGlzIGdpdmVuIHRvIGEgMTYtYml0IGFkZHJlc3MKCW9wZXJhbmQuCgoyMDAyLTAxLTI0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChzaF9lbGZfc3VmZml4KTogUmVtb3ZlZC4KCShzaF9QSUNfcmVsYXRlZF9wLCBzaF9jaGVja19maXh1cCwgc2hfY29uc19maXhfbmV3LAoJc2hfZW5kX29mX21hdGNoLCBzaF9wYXJzZV9uYW1lKTogTmV3IGZ1bmN0aW9ucy4KCShzaF9lbGZfY29ucyk6IFNpbXBsaWZ5LgoJKHBhcnNlX2V4cCk6IFJlamVjdCBtaXNwbGFjZWQgUElDIG9wZXJhbmRzLgoJKG1kX3VuZGVmaW5lZF9zeW1ib2wpOiBTaW1wbGlmeS4KCShzaF9maXhfYWRqdXN0YWJsZSk6IExldCBAR09UT0ZGIGJlIGFkanVzdGVkLgoJKG1kX2FwcGx5X2ZpeDMpOiBXcml0ZSBAUExUIGFuZCBAR09UT0ZGIGFkZGVuZHMgaW4gcGxhY2UuCgkodGNfZ2VuX3JlbG9jKTogTW92ZSBmaXhwIHN1YnN5IGFic29sdXRlIHZhbHVlIGludG8gYWRkbnVtYmVyLgoJQ29tcGxhaW4gaWYgc3Vic3kgcmVtYWlucyBhdCB0aGUgZW5kLgoJKiBjb25maWcvdGMtc2guaCAoc2hfcGFyc2VfbmFtZSwgc2hfY29uc19maXhfbmV3KTogRGVjbGFyZS4KCShtZF9wYXJzZV9uYW1lLCBUQ19DT05TX0ZJWF9ORVcsIE9fUElDX3JlbG9jKTogRGVmaW5lLgoKMjAwMi0wMS0yMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbW4xMDMwMC5jICh4cl9yZWdpc3RlcnMpOiBNb3ZlIGBwYycuLi4KCShvdGhlcl9yZWdpc3RlcnMpOiAuLi4gaGVyZS4KCjIwMDItMDEtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBnYXMvcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTIxICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9vYmotY29mZi5jIChvYmpfY29mZl9pbml0X3N0YWJfc2VjdGlvbik6IE1ha2UgdGhlCglzdGFic3RyX25hbWUgYWxsb2NhdGlvbiBwZXJtYW5lbnQsIGFzIGl0IHdpbGwgYmUgcmVmZXJlbmNlZCBmcm9tCgl0aGUgc2VjdGlvbiBoYXNoLgoKMjAwMi0wMS0yMSAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoaWE2NC0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTIxICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpIDxUYXJnZXQgQVJNIG9wdGlvbnM+OiBBZGQgbWlzc2luZyB7fQoJdG8gQGRvdHMgY2FsbC4KCTxEZXRhaWxlZCBkZXNjcmlwdGlvbiwgQVJNIG9wdGlvbnM+OiBEaXR0by4KCSogZG9jL2MtYXJtLnRleGkgKEFSTSBPcHRpb25zKTogRGl0dG8uCgoyMDAyLTAxLTE4ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIHRjLWFybS5jIChkb194c2NfbWlhLCBkb194c2NfbWFyLCBkb194c2NfbXJhKTogUmVuYW1lZCBmcm9tCglkb19taWEsIGRvX21hciBhbmQgZG9fbXJhIHJlc3BlY3RpdmVseS4KCShkb19tYXZfKik6IFJlbmFtZWQgZnJvbSBkb19jXyouCgkobWF2X3JlZ19yZXF1aXJlZF9oZXJlLCBtYXZfcGFyc2Vfb2Zmc2V0KTogUmVuYW1lZCBmcm9tCgljaXJydXNfcmVnX3JlcXVpcmVkX2hlcmUgYW5kIGNpcnJ1c19wYXJzZV9vZmZzZXQgcmVzcGVjdGl2ZWx5LgoJKE1BVl9NT0RFPyk6IFJlbmFtZWQgZnJvbSBDSVJSVVNfTU9ERT8uCgoyMDAyLTAxLTE4ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCSAgICBLZWl0aCBXYWxrZXIgIDxrZWl0aC53YWxrZXJAYXJtLmNvbT4KCgkqIHRjLWFybS5jIChBUk1fRVhUX1Y1SiwgQVJNX0FSQ0hfVjVURUopOiBEZWZpbmUuCgkoaW5zbnMpOiBBZGQgcGF0dGVybiBmb3IgYnhqIGluc3RydWN0aW9uLgoJKGRvX2J4aik6IE5ldyBmdW5jdGlvbi4KCShhcm1fY3B1cyk6IEFkZCBhcm05MjZlai4KCShhcm1fYXJjaHMpOiBBZGQgYXJtdjV0ZWouCgoyMDAyLTAxLTE4ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGRvYy9jLWFybS50ZXhpOiBBZGQgbmV3IGZwZSBvcHRpb25zIHRvIGxpc3Qgb2Ygc3VwcG9ydGVkIGZsYWdzLgoKMjAwMi0wMS0xOSAgS2VpdGggV2Fsa2VyICA8a2VpdGgud2Fsa2VyQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAoYXJtX2ZwdXMpOiBBZGQgZnBlMiBhbmQgZnBlMy4KCjIwMDItMDEtMTggIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogTkVXUzogTWVudGlvbiBuZXcgQVJNIGNvbW1hbmQtbGluZSBvcHRpb25zIGFuZCBWRlAgc3VwcG9ydC4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoQVJNX0NFWFRfWFNDQUxFKTogUmVwbGFjZXMgQVJNX0VYVF9YU0NBTEUuICBBbGwKCXVzZXMgY2hhbmdlZC4KCShBUk1fQ0VYVF9NQVZFUklDSyk6IFNpbWlsYXJseS4KCShBUk1fQU5ZKTogTm93IG1lYW5zIGFueSBjb3JlIGluc3RydWN0aW9uLgoJKENQVV9ERUZBVUxUKTogRGVmYXVsdCB0byBBUk1fQU5ZLgoJKHVzZXNfYXBjc18yNiwgYXRjcHMsIHN1cHBvcnRfaW50ZXJ3b3JrLCB1c2VzX2FwY3NfZmxvYXQpCgkocGljX2NvZGUpOiBEZWNsYXJlIGZvciBhbGwgb2JqZWN0IHR5cGVzLiAgTWFrZSB0eXBlIGludC4KCShsZWdhY3lfY3B1LCBsZWdhY3lfZnB1LCBtY3B1X2NwdV9vcHQsIG1jcHVfZnB1X29wdCwgbWFyY2hfY3B1X29wdCkKCShtYXJjaF9mcHVfb3B0LCBtZnB1X29wdCk6IERlY2xhcmUuCgkobWRfbG9uZ29wdHMpOiBUaWR5IHVwIGNvbmRpdGlvbmFsIGRlZmluaXRpb25zLgoJKGFybV9vcHRzLCBhcm1fY3B1cywgYXJtX2FyY2hzLCBhcm1fZnB1cywgYXJtX2V4dGVuc2lvbnMpCgkoYXJtX2xvbmdfb3B0cyk6IE5ldyB0YWJsZXMuCgkoYXJtX3BhcnNlX2NwdSwgYXJtX3BhcnNlX2FyY2gsIGFybV9wYXJzZV9mcHUpOiBOZXcgZnVuY3Rpb25zLgoJKGFybV9wYXJzZV9leHRlbnNpb24pOiBOZXcgZnVuY3Rpb24uCgkobWRfcGFyc2Vfb3B0aW9uKTogUmV3cml0ZSB1c2luZyBuZXcgdGFibGUtZHJpdmVuIHN5c3RlbS4KCShtZF9zaG93X3VzYWdlKTogVXNlIG5ldyB0YWJsZS1kcml2ZW4gc3lzdGVtLgoJKG1kX2JlZ2luKTogQ2FsY3VsYXRlIGNwdV92YXJpYW50IGZyb20gY29tbWFuZCBsaW5lIG9wdGlvbiBkYXRhLgoJKiBkb2MvYXMudGV4aW5mbyAoQVJNIElTQSBvcHRpb25zKTogRG9jdWVtZW50IG5ldyBBUk0tc3BlY2lmaWMKCWNvbW1hbmQtbGluZSBvcHRpb25zLgoJKiBkb2MvYy1hcm0udGV4aTogTGlrZXdpc2UuCgoyMDAyLTAxLTE4ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBhcy5jIChwYXJzZV9hcmdzKTogVXBkYXRlIHllYXIuCgoyMDAyLTAxLTE3ICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBhbHVtLm1pdC5lZHU+CgoJKiBjb25maWcvdGMtdGljNTR4LmMgKGVuY29kZV9hZGRyZXNzKTogQWRkIGEgbW9yZSBpbmZvcm1hdGl2ZQoJd2FybmluZyBhYm91dCBpbmNvcnJlY3Qgc3ludGF4LgoKMjAwMi0wMS0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9nYXMucG90OiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBtYWNyby5jIChnZXRfYW55X3N0cmluZyk6IEFkZCBuby1jLWZvcm1hdCBjb21tZW50IHRvIHByZXZlbnQKCWNvbmZ1c2lvbiB3aGVuIHRyYW5zbGF0aW5nIHN0cmluZy4KCSogZ2FzcC5jIChnZXRfYW55X3N0cmluZyk6IEFkZCBuby1jLWZvcm1hdCBjb21tZW50IHRvIHByZXZlbnQKCWNvbmZ1c2lvbiB3aGVuIHRyYW5zbGF0aW5nIHN0cmluZy4KCjIwMDItMDEtMTYgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgkgICAgSm9oYW5uZXMgU3RlemVuYmFjaCA8anNAY29udmVyZ2VuY2UuZGU+CgkqIGNvbmZpZy90Yy1taXBzLmMgKHBlcmNlbnRfb3ApOiBFbnN1cmUgbG9uZ2VyIHBlcmNlbnRfb3AncyBhcmUKCW1hdGNoZWQgYmVmb3JlIHRoZSBzaG9ydGVyIG9uZXMuCgkobXlfZ2V0U21hbGxQYXJzZXIpOiBGaXggaGFuZGxpbmcgb2YgbmVzdGVkIHBhcmVudGhlc2VzIGluCglwZXJjZW50X29wJ3MuIENvZGUgY2xlYW51cC4KCShteV9nZXRQZXJjZW50T3ApOiBOZXcgZnVuY3Rpb24sIGNvZGUgZnJvbSBteV9nZXRTbWFsbFBhcnNlci4KCShteV9nZXRTbWFsbEV4cHJlc3Npb24pOiBGaXggaGFuZGxpbmcgb2YgY2xvc2luZyBwYXJlbnRoZXNlcy4KCUNvZGUgY2xlYW51cC4gQmV0dGVyIGNvbW1lbnRzLgoKMjAwMi0wMS0xNiAgTmljayBDbGlmdG9uIDxuaWNrY0ByZWRoYXQuY29tPgoKCXBvL3RyLnBvOiBOZXcgZmlsZTogVHVya2lzaCB0cmFuc2xhdGlvbi4KCWNvbmZpZ3VyZS5pbiAoTElOR1VBUyk6IEFkZCAidHIiLgoJY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0xNSAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJU3VwcG9ydCBmb3IgVkZQIGluc3RydWN0aW9ucwoJKiB0Yy1hcm0uYyAoQ1BfV0JfT0ssIENQX05PX1dCKTogTmV3IGRlZmluZXMuCgkoY3BfYWRkcmVzc19yZXF1aXJlZF9oZXJlKTogTmV3IGFyZ3VtZW50IHdiX29rLiAgV2hlbiBmYWxzZSwgZG8gbm90CglhY2NlcHQgd3JpdGUtYmFjayBmb3JtcyBvZiBhZGRyZXNzaW5nLiAgQ2hhbmdlIGFsbCBjYWxsZXJzLgoJKEZQVV9WRlBfRVhUX05PTkUsIEZQVV9WRlBfRVhUX1YxeEQsIEZQVV9WRlBfVkZQX1YxKQoJKEZQVV9WRlBfRVhUX1YyKTogRGVmaW5lLgoJKEZQVV9BUkNIX1ZGUCwgRlBVX0FSQ0hfVkZQX1YxeEQsIEZQVV9BUkNIX1ZGUF9WMSwgRlBVX0FSQ0hfVkZQX1YyKToKCURlZmluZSBpbiB0ZXJtcyBvZiBhYm92ZS4KCSh2ZnBfZHBfcmVnX3BvcywgdmZwX3NwX3JlZ19wb3MsIHZmcF9sZHN0bV90eXBlKTogTmV3IGVudW1zLgoJKHZmcF9yZWcpOiBOZXcgc3RydWN0LgoJKHZmcF9yZWdzKTogTmV3IGFycmF5IG9mIHJlZ2lzdGVycy4KCShpbnNucyk6IEFkZCBWRlAgaW5zdHJ1Y3Rpb25zLgoJKHNuX3RhYmxlKTogTmV3IGFycmF5IG9mIFZGUCBzaW5nbGUtcHJlY2lzaW9uIHJlZ2lzdGVyIG5hbWVzLgoJKGRuX3RhYmxlKTogTmV3IGFycmF5IG9mIFZGUCBkb3VibGUtcHJlY2lzaW9uIHJlZ2lzdGVyIG5hbWVzLgoJKGFsbF9yZWdfbWFwcyk6IEFkZCB0aGUgbmV3IHJlZ2lzdGVyIHRhYmxlcy4KCShhcm1fcmVnX3R5cGUpOiBBZGQgbmV3IHZhbHVlcyBmb3IgYWJvdmUuICBJbmNyZWFzZSBSRVRfVFlQRV9NQVguCgkodmZwX3NwX3JlZ19yZXF1aXJlZF9oZXJlLCB2ZnBfZHBfcmVnX3JlcXVpcmVkX2hlcmUsIGRvX3ZmcF9zcF9tb25hZGljKQoJKGRvX3ZmcF9kcF9tb25hZGljLCBkb192ZnBfc3BfZHlhZGljLCBkb192ZnBfZHBfZHlhZGljKQoJKGRvX3ZmcF9yZWdfZnJvbV9zcCwgZG9fdmZwX3NwX3JlZzIsIGRvX3ZmcF9zcF9mcm9tX3JlZykKCShkb192ZnBfcmVnX2Zyb21fZHAsIGRvX3ZmcF9yZWcyX2Zyb21fZHAsIGRvX3ZmcF9kcF9mcm9tX3JlZykKCShkb192ZnBfZHBfZnJvbV9yZWcyLCB2ZnBfcHNyX3BhcnNlLCB2ZnBfcHNyX3JlcXVpcmVkX2hlcmUpCgkoZG9fdmZwX3JlZ19mcm9tX2N0cmwsIGRvX3ZmcF9jdHJsX2Zyb21fcmVnLCBkb192ZnBfc3BfbGRzdCkKCShkb192ZnBfZHBfbGRzdCwgdmZwX3NwX3JlZ19saXN0LCB2ZnBfZHBfcmVnX2xpc3QsIHZmcF9zcF9sZHN0bSkKCSh2ZnBfZHBfbGRzdG0sIGRvX3ZmcF9zcF9sZHN0bWlhLCBkb192ZnBfc3BfbGRzdG1kYiwgZG9fdmZwX2xkc3RtaWEpCgkoZG9fdmZwX2RwX2xkc3RtZGIsIGRvX3ZmcF94cF9sZHN0bWlhLCBkb192ZnBfeHBfbGRzdG1kYikKCShkb192ZnBfc3BfY29tcGFyZV96LCBkb192ZnBfZHBfY29tcGFyZV96LCBkb192ZnBfZHBfc3BfY3Z0KQoJKGRvX3ZmcF9zcF9kcF9jdnQpOiBOZXcgZnVuY3Rpb25zLgoJKG1kX2JlZ2luKTogU2V0IHNvZnQtZmxvYXQgZmxhZyBmb3IgYXBwcm9wcmlhdGUgVkZQIHdvcmsuCgkobWRfYXRvZik6IEhhbmRsZSBWRlAtZm9ybWF0IGRvdWJsZXMuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIFZGUCBjb21tYW5kLWxpbmUgb3B0aW9ucy4KCShtZF9zaG93X3VzYWdlKTogRGlzcGxheSBWRlAgY29tbWFuZC1saW5lIG9wdGlvbnMuCgoyMDAyLTAxLTE1ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIHRjLWFybS5jIChtZF9wYXJzZV9vcHRpb24pOiBUaWR5IHVwIHNldHRpbmcgb2YgY3B1X3ZhcmlhbnQgZm9yCgl2YXJpb3VzIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKMjAwMi0wMS0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMteHN0b3JteTE2LmM6ICh4c3Rvcm15MTZfZml4X2FkanVzdGFibGUpOiBEbyBub3QgZml4Cgl2dGluaGVyaXQgcmVsb2NzLgoJKHhzdG9ybXkxNl9tZF9hcHBseV9maXgzKTogRG8gbm90IHJldHVybiBhIHZhbHVlLgoKMjAwMi0wMS0xNCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAobWRfbG9uZ29wdHMpOiBPbiB0YXJnZXRzIHRoYXQgYXJlbid0IGJpLWVuZGlhbiwgc3VwcG9ydAoJdGhlIC1FTC8tRUIgb3B0aW9uIHRoYXQgbWF0Y2hlcyB0aGUgdGFyZ2V0J3MgZW5kaWFubmVzcy4KCShtZF9wYXJzZV9vcHRpb24pOiBMaWtld2lzZS4KCjIwMDItMDEtMTQgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogdGMtYXJtLmMgKG1kX2xvbmdvcHRzKTogRml4IG1pc3BsYWNlZCAjZW5kaWYgLS0gdGhlIC1vYWJpIG9wdGlvbgoJaXMgbm90IGRlcGVuZGVudCBvbiBBUk1fQklfRU5ESUFOLgoKMjAwMi0wMS0xNCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAoYWxsIGVycm9yIG1lc3NhZ2VzKTogTm9ybWFsaXplIGNhcGl0YWxpemF0aW9uIG9mIG1lc3NhZ2VzLgoKCSogdGMtYXJtLmggKG1kX29wZXJhbmQpOiBEZWxldGUgZGVmaW5lLgoJKiB0Yy1hcm0uYyAoaW5fbXlfZ2V0X2V4cHJlc3Npb24pOiBOZXcgc3RhdGljIHZhcmlhYmxlLgoJKG15X2dldF9leHByZXNzaW9uKTogU2V0IGFuZCBjbGVhciBpdC4KCShtZF9vcGVyYW5kKTogTmV3IGZ1bmN0aW9uLiAgSWYgY2FsbGVkIGZyb20gbXlfZ2V0X2V4cHJlc3Npb24KCXB1dCB0aGUgZXJyb3IgaW4gaW5zdC5lcnJvci4KCShvdXRwdXRfaW5zdCk6IE5vdyB0YWtlcyBhcmd1bWVudCBvZiBpbnN0cnVjdGlvbiBiZWluZyBhc3NlbWJsZWQuCglQcmludCBpdCBvdXQgd2l0aCBhbnkgZXJyb3IgbWVzc2FnZS4KCShkb19sZHN0LCBkb19sZHN0djQsIHRodW1iX2xvYWRfc3RvcmUpOiBGYXVsdCBhdHRlbXB0IHRvIHVzZSBhIHN0b3JlCgl3aXRoICc9JyBzeW50YXguCgkoZW5kX29mX2xpbmUpOiBEb24ndCB1cGRhdGUgaW5zdC5lcnJvciBpZiBpdCBpcyBhbHJlYWR5IHNldC4KCjIwMDItMDEtMTEgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogdGMtYXJtLmMgKGRvX2xkc3QpOiBGaXggaGFuZGxpbmcgYW4gaW1tZWRpYXRlIGV4cHJlc3Npb24gcHNldWRvCglvcCB0aGF0IGNhbiBiZSB0cmFuc2xhdGVkIGludG8gYSBtdm4gaW5zdHJ1Y3Rpb24uCgoyMDAyLTAxLTExICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCgkqIGdhcy9jb25maWcvdGMtaWE2NC5oIChNRF9GTEFHU19ERUZBVUxUKTogTmV3IE1hY3JvIGZvcgoJc2V0dGluZyBkZWZhdWx0IG1kLmZsYWdzLgoJKFNIVF9JTklUX0FSUkFZKTogTmV3IGVsZiBzcGVjaWFsIHNlY3Rpb24gdXNlZCBieSBIUC1VWC4KCShTSFRfRklOSV9BUlJBWSk6IE5ldyBlbGYgc3BlY2lhbCBzZWN0aW9uIHVzZWQgYnkgSFAtVVguCgkqIGdhcy9jb25maWcvdGMtaWE2NC5jIChzZXR1cF91bndpbmRfaGVhZGVyKTogQWRkIHN1cHBvcnQKCWZvciAzMiBiaXQgdW53aW5kIGluZm8gYmxvY2tzLgoJKGdlbmVyYXRlX3Vud2luZF9pbWFnZSk6IEFkZCBzdXBwb3J0IGZvciBkaWZmZXJlbnQgdHlwZXMKCW9mIHVud2luZCBpbWFnZXMgKDMyIGJpdHMgYW5kL29yIGJpZy1lbmRpYW4pLgoJKGlhNjRfaW5pdCk6IFVzZSBNRF9GTEFHU19ERUZBVUxUIHRvIHNldCBtZC5mbGFncy4KCShpYTY0X3RhcmdldF9mb3JtYXQpOiBBZGQgc3VwcG9ydCBmb3IgaHB1eCB0YXJnZXQgZm9ybWF0cy4KCShpYTY0X2dlbl9yZWFsX3JlbG9jX3R5cGUpOiBBZGQgc3VwcG9ydCBmb3IgRlVOQ19JUExUX1JFTE9DLgoJKGlhNjRfZWxmX3NlY3Rpb25fdHlwZSk6IEFkZCBzdXBwb3J0IGZvciBTSFRfSU5JVF9BUlJBWSBhbmQKCVNIVF9GSU5JX0FSUkFZIGVsZiBzZWN0aW9uIHR5cGVzLgoKMjAwMi0wMS0xMCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiB0Yy1hcm0uYyAoc3RydWN0IHJlZ19lbnRyeSk6IE1vdmUgYmVmb3JlIHByb3RvdHlwZXMuCgkoaW50X3JlZ2lzdGVyLCBjcF9yZWdpc3RlciwgZnBfcmVnaXN0ZXIpOiBEZWxldGUuCgkocmVnX3RhYmxlKTogRGVsZXRlLiAgUmVwbGFjZWQgd2l0aCAuLi4KCShybl90YWJsZSwgY3BfdGFibGUsIGNuX3RhYmxlLCBmbl90YWJsZSwgbWF2X212Zl90YWJsZSkKCShtYXZfbXZkX3RhYmxlLCBtYXZfbXZmeF90YWJsZSwgbWF2X212ZHhfdGFibGUsIG1hdl9tdmF4X3RhYmxlKQoJKG1hdl9kc3BzY190YWJsZSk6IC4uLiBvbmUgdGFibGUgcGVyIHJlZ2lzdGVyIHNldC4KCShhcm1fcmVnX2hzaCk6IERlbGV0ZS4KCShzdHJ1Y3QgcmVnX21hcCk6IE5ldyBzdHJ1Y3R1cmUuCgkoYWxsX3JlZ19tYXBzKTogTmV3IGFycmF5LgoJKGVudW0gYXJtX3JlZ190eXBlKTogTmV3IGVudW1zLgoJKGJ1aWxkX3JlZ19oc2gpOiBOZXcgZnVuY3Rpb24uCgkoaW5zZXJ0X3JlZ19hbGlhcyk6IFVzZSBoYXNoIHRhYmxlIHBhc3NlZCBieSBjYWxsZXIuICBBZGp1c3QgYWxsCgljYWxsZXJzLgoJKGNyZWF0ZV9yZWdpc3Rlcl9hbGlhcyk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20gLi4uCgkobWRfYXNzZW1ibGUpOiAuLi4gaGVyZS4KCShtZF9iZWdpbik6IEJ1aWxkIG5ldyByZWdpc3RlciBoYXNoIHRhYmxlcy4KCShhcm1fcmVnX3BhcnNlKTogTmV3IGFyZ3VtZW50IGZvciB0aGUgaGFzaCB0YWJsZSB0byBzZWFyY2guICBBZGp1c3QgYWxsCgljYWxsZXJzLgoJKGFybV9yZWdfcGFyc2VfYW55KTogTmV3IGZ1bmN0aW9uLgoJKGNvX3Byb2NfbnVtYmVyKTogTG9vayB1cCB0aGUgcHJvY2Vzc29yIG51bWJlciBpbiB0aGUgcHJvY2Vzc29yIGhhc2gKCXRhYmxlLgoJKGNpcnJ1c19yZWd0eXBlKTogRGVsZXRlLgoJKGNpcnJ1c19yZWdpc3RlciwgY2lycnVzX212Zl9yZWdpc3RlciwgY2lycnVzX212ZF9yZWdpc3RlcikKCShjaXJydXNfbXZmeF9yZWdpc3RlciwgY2lycnVzX212ZHhfcmVnaXN0ZXIsIGNpcnJ1c19tdmF4X3JlZ2lzdGVyKQoJKEFSTV9FWFRfTUFWRVJJQ0tzY19yZWdpc3Rlcik6IERlbGV0ZS4KCShkb19jX2Jpbm9wc18xLCBkb19jX2Jpbm9wc18yLCBkb19jX2Jpbm9wc18zKTogRGVsZXRlLgoJKGRvX2NfYmlub3BzXzFbYS1vXSwgZG9fY19iaW5vcHNfMlthLWNdLCBkb19jX2Jpbm9wc18zW2EtZF0pOiBOZXcKCWZ1bmN0aW9ucy4KCShkb19jX3RyaXBsZV80LCBkb19jX3RyaXBsZV81KTogRGVsZXRlLgoJKGRvX2NfdHJpcGxlXzRbYWJdLCBkb19jX3RyaXBsZV81W2EtaF0pOiBOZXcgZnVuY3Rpb25zLgoJKGRvX2NfcXVhZF82KTogRGVsZXRlLgoJKGRvX2NfcXVhZF82W2FiXSk6IE5ldyBmdW5jdGlvbnMuCgkoZG9fY19iaW5vcHMsIGRvX2NfdHJpcGxlLCBkb19jX3F1YWQsIGRvX2Nfc2hpZnQsIGRvX2NfbGRzdCk6IFJld29yawoJYXJndW1lbnRzIHRvIHVzZSBuZXcgcmVnaXN0ZXIgcGFyc2luZyBtZXRob2RzLgoJKGNpcnJ1c19yZWdfcmVxdWlyZWRfaGVyZSk6IExpa2V3aXNlLgoJKGluc25zKTogUmVjbGFzc2lmeSBjaXJydXMgbWF2ZXJpY2sgd29ya2VyIGZ1bmN0aW9ucy4KCShjaXJydXNfdmFsaWRfcmVnKTogRGVsZXRlLgoKMjAwMi0wMS0wNyAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoc2gqbGUpOiBTZXQgY3B1X3R5cGU9c2ggYW5kIGVuZGlhbj1saXR0bGUuCgkoc2gqLSotbmV0YnNkZWxmKik6IE5ldyB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogdGMtc2guaDogVXBkYXRlIGNvcHlyaWdodCB5ZWFycy4KCShUQVJHRVRfRk9STUFUKTogQWRkIHZlcnNpb24gZm9yIFRFX05ldEJTRC4KCjIwMDItMDEtMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcmVhZC5jIChlbWl0X2V4cHIpOiBEbyBub3QgYWxsb3cgJ3NpemUnIG9yICduYnl0ZXMnIHRvIGdvCgluZWdhdGl2ZS4KCjIwMDItMDEtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtbTY4ay5oIChtZF9wcmVwYXJlX3JlbGF4X3NjYW4pOiBSZXdyaXRlLgoJKiBjb25maWcvdGMtbTY4ay5jIChtZF9yZWxheF90YWJsZSk6IEFkZCBtZF9wcmVwYXJlX3JlbGF4X3NjYW4gY29tbWVudC4KCjIwMDItMDEtMDUgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogdGMtbWlwcy5jIChtaXBzX2NwcmVzdG9yZV92YWxpZCk6IE5ldyBmbGFnLgoJKG1pcHNfZnJhbWVfcmVnX3ZhbGlkKTogTmV3IGZsYWcuCgkobWFjcm8pIFtNX0pBTF8yXTogQ2hlY2sgYm90aCBmbGFncy4KCVtNX0pBTF9BXTogTGlrZXdpc2UuCgkoc19jcHJlc3RvcmUpOiBTZXQgbWlwc19jcHJlc3RvcmVfdmFsaWQuCgkodGNfZ2V0X3JlZ2lzdGVyKTogSWYgc2V0dGluZyBtaXBzX2ZyYW1lX3JlZywgc2V0CgltaXBzX2ZyYW1lX3JlZ192YWxpZCBhbmQgY2xlYXIgbWlwc19jcHJlc3RvcmVfdmFsaWQuCgkoc19taXBzX2VudCk6IENsZWFyIGJvdGggZmxhZ3MuCgkoc19taXBzX2VuZCk6IENsZWFyIGJvdGggZmxhZ3MuCgoyMDAyLTAxLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAod3JpdGVfb2JqZWN0X2ZpbGUpOiBNYWtlIHVzZSBvZiBiZmRfc2VjdGlvbl9saXN0X3JlbW92ZS4KCSogY29uZmlnL29iai1lY29mZi5jIChlY29mZl9mcm9iX2ZpbGUpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW1taXguYyAobW1peF9mcm9iX2ZpbGUpOiBMaWtld2lzZS4KCjIwMDItMDEtMDQgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWd1cmUuaW4gKGkzODYtKi1uZXRic2RlbGYqKTogQ29sbGFwc2UgdGFyZ2V0IGludG8uLi4KCShpMzg2LSotbmV0YnNkKik6IC4uLnRoaXMuICBBZGQgc3VwcG9ydCBmb3IgeDg2LTY0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMi0wMS0wMyAgbWF0dGhldyBncmVlbiAgPG1yZ0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChtZF9wYXJzZV9vcHRpb24pOiBCb29rRSBpcyBub3QgTW90b3JvbGEgc3BlY2lmaWMuCgoyMDAyLTAxLTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1tNjhrLmMgKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogVGVzdCBmb3IgYQoJTlVMTCBmcmFnIGxpbmsuCgpGb3Igb2xkZXIgY2hhbmdlcyBzZWUgQ2hhbmdlTG9nLTAwMDEKDApMb2NhbCBWYXJpYWJsZXM6Cm1vZGU6IGNoYW5nZS1sb2cKbGVmdC1tYXJnaW46IDgKZmlsbC1jb2x1bW46IDc0CnZlcnNpb24tY29udHJvbDogbmV2ZXIKRW5kOgo=