MjAwMy0xMi0xOSAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCUFkZmQgbTMyci1saW51eCBhbmQgUElDIHN1cHBvcnQuICBBZGQgbmV3IEFCSSB0aGF0IHVzZXMgUkVMQS4KCSogY29uZmlnLmJmZCAobTMyciotKi1saW51eCosIG0zMnIqbGUtKi1saW51eCosIG0zMnIqbGUtKi0qKTogQWRkZWQuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VsZjMyX20zMnJsaW5fdmVjLCBiZmRfZWxmMzJfbTMycmxlbGluX3ZlYywKCWJmZF9lbGYzMl9tMzJybGVfdmVjKTogQWRkZWQKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCSogZWxmMzItbTMyci5jIChtMzJyX2luZm9fdG9faG93dG8sIG0zMnJfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCwKCW0zMnJfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucywgbTMycl9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMsCgltMzJyX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucywgbTMycl9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sLAoJYWxsb2NhdGVfZHlucmVsb2NzLCByZWFkb25seV9keW5yZWxvY3MsIG0zMnJfZWxmX3JlbG9jX3R5cGVfY2xhc3MsCgltMzJyX2VsZl9mYWtlX3NlY3Rpb25zKTogQWRkZWQuCgkobTMycl9lbGZfaG93dG9fdGFibGUpOiBBZGRlZAoJUl9NMzJSXzE2X1JFTEEsIFJfTTMyUl8zMl9SRUxBLCBSX00zMlJfMjRfUkVMQSwKCVJfTTMyUl8xMF9QQ1JFTF9SRUxBLCBSX00zMlJfMThfUENSRUxfUkVMQSwKCVJfTTMyUl8yNl9QQ1JFTF9SRUxBLCBSX00zMlJfSEkxNl9VTE9fUkVMQSwKCVJfTTMyUl9ISTE2X1NMT19SRUxBLCBSX00zMlJfTE8xNl9SRUxBLAoJUl9NMzJSX1NEQTE2X1JFTEEsIFJfTTMyUl9SRUxBX0dOVV9WVElOSEVSSVQsCglSX00zMlJfUkVMQV9HTlVfVlRFTlRSWSwgUl9NMzJSX0dPVDI0LAoJUl9NMzJSXzI2X1BMVFJFTCwgUl9NMzJSX0NPUFksIFJfTTMyUl9HTE9CX0RBVCwKCVJfTTMyUl9KTVBfU0xPVCwgUl9NMzJSX1JFTEFUSVZFLCBSX00zMlJfR09UT0ZGLAoJUl9NMzJSX0dPVFBDMjQsIFJfTTMyUl9HT1QxNl9ISV9VTE8sCglSX00zMlJfR09UMTZfSElfU0xPLCBSX00zMlJfR09UMTZfTE8sCglSX00zMlJfR09UUENfSElfVUxPLCBSX00zMlJfR09UUENfSElfU0xPLAoJUl9NMzJSX0dPVFBDX0xPLgoJKG0zMnJfZWxmX3JlbG9jYXRlX3NlY3Rpb24sIG0zMnJfZWxmX2NoZWNrX3JlbG9jcyk6IENoYW5nZWQgZm9yCglOZXcgQUJJLgoJKiByZWxvYy5jOiBBZGQgQkZEX1JFTE9DX00zMlJfR09UMjQsIEJGRF9SRUxPQ19NMzJSXzI2X1BMVFJFTCwKCUJGRF9SRUxPQ19NMzJSX0NPUFksIEJGRF9SRUxPQ19NMzJSX0dMT0JfREFULAoJQkZEX1JFTE9DX00zMlJfSk1QX1NMT1QsIEJGRF9SRUxPQ19NMzJSX1JFTEFUSVZFLAoJQkZEX1JFTE9DX00zMlJfR09UT0ZGLCBCRkRfUkVMT0NfTTMyUl9HT1RQQzI0LAoJQkZEX1JFTE9DX00zMlJfR09UMTZfSElfVUxPLCBCRkRfUkVMT0NfTTMyUl9HT1QxNl9ISV9TTE8sCglCRkRfUkVMT0NfTTMyUl9HT1QxNl9MTywgQkZEX1JFTE9DX00zMlJfR09UUENfSElfVUxPLAoJQkZEX1JFTE9DX00zMlJfR09UUENfSElfU0xPLCBCRkRfUkVMT0NfTTMyUl9HT1RQQ19MTy4KCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfbTMycmxpbl92ZWMsIGJmZF9lbGYzMl9tMzJybGVsaW5fdmVjLAoJYmZkX2VsZjMyX20zMnJsZV92ZWMpOiBBZGRlZC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGVkLgoKMjAwMy0xMi0xOSAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvZmZjb2RlLmggKHN0eXBfdG9fc2VjX2ZsYWdzKTogRG9uJ3QgdHJlYXQgLnJlbG9jIHNlY3Rpb24KCWFzIFNFQ19ERUJVR0dJTkcuCgoyMDAzLTEyLTE4ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1taXBzLmMgKGVsZl9taXBzX2hvd3RvX3RhYmxlX3JlbCk6IFJlcGxhY2UgYWxsIHVzZXMgb2YKCW1pcHNfZWxmX2dlbmVyaWNfcmVsb2Mgd2l0aCBfYmZkX21pcHNfZWxmX2dlbmVyaWNfcmVsb2MuICBVc2UKCV9iZmRfbWlwc19lbGZfaGkxNl9yZWxvYyBmb3IgUl9NSVBTX0hJMTYgYW5kIFJfTUlQU19HTlVfUkVMX0hJMTYsCglfYmZkX21pcHNfZWxmX2xvMTZfcmVsb2MgZm9yIFJfTUlQU19MTzE2IGFuZCBSX01JUFNfR05VX1JFTF9MTzE2LAoJYW5kIF9iZmRfbWlwc19lbGZfZ290MTZfcmVsb2MgZm9yIFJfTUlQU19HT1QxNi4gIENoYW5nZSByaWdodHNoaWZ0Cgl0byAxNiBmb3IgUl9NSVBTX0hJMTYgYW5kIFJfTUlQU19HTlVfUkVMX0hJMTYuCgkobWlwc19lbGZfZ2VuZXJpY19yZWxvYywgc3RydWN0IG1pcHNfaGkxNiwgbWlwc19lbGZfaGkxNl9yZWxvYykKCShtaXBzX2VsZl9sbzE2X3JlbG9jLCBtaXBzX2VsZl9nb3QxNl9yZWxvYyk6IERlbGV0ZS4KCShfYmZkX21pcHNfZWxmMzJfZ3ByZWwxNl9yZWxvYyk6IFJlbW92ZSBzcGVjaWFsIGNhc2UuCgkobWlwc19lbGZfZ3ByZWwzMl9yZWxvYywgbWlwczMyXzY0Yml0X3JlbG9jKTogTGlrZXdpc2UuCgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfaG93dG9fdGFibGVfcmVsKTogUmVwbGFjZSBhbGwgdXNlcyBvZgoJbWlwc19lbGZfZ2VuZXJpY19yZWxvYyB3aXRoIF9iZmRfbWlwc19lbGZfZ2VuZXJpY19yZWxvYy4gIFVzZQoJX2JmZF9taXBzX2VsZl9oaTE2X3JlbG9jIGZvciBSX01JUFNfSEkxNiwgX2JmZF9taXBzX2VsZl9sbzE2X3JlbG9jCglmb3IgUl9NSVBTX0xPMTYgYW5kIF9iZmRfbWlwc19lbGZfZ290MTZfcmVsb2MgZm9yIFJfTUlQU19HT1QxNi4KCUNoYW5nZSBSX01JUFNfSEkxNidzIHJpZ2h0c2hpZnQgdG8gMTYuCgkobWlwc19lbGY2NF9ob3d0b190YWJsZV9yZWxhKTogUmVwbGFjZSBhbGwgdXNlcyBvZgoJbWlwc19lbGZfZ2VuZXJpY19yZWxvYyB3aXRoIF9iZmRfbWlwc19lbGZfZ2VuZXJpY19yZWxvYy4KCVVzZSBfYmZkX21pcHNfZWxmX2dlbmVyaWNfcmVsb2MgZm9yIFJfTUlQU19HT1QxNiBhcyB3ZWxsLgoJKG1pcHNfZWxmNjRfaGkxNl9yZWxvYywgbWlwc19lbGY2NF9nb3QxNl9yZWxvYyk6IERlbGV0ZS4KCShtaXBzX2VsZjY0X3NoaWZ0Nl9yZWxvYyk6IFJlbW92ZSBzcGVjaWFsIGNhc2UuICBVc2UKCV9iZmRfbWlwc19lbGZfZ2VuZXJpY19yZWxvYyBpbnN0ZWFkIG9mIHJldHVybmluZyBiZmRfcmVsb2NfY29udGludWUuCgoJKiBlbGZuMzItbWlwcy5jIChwcmV2X3JlbG9jX3NlY3Rpb24pOiBEZWxldGUuCgkocHJldl9yZWxvY19hZGRyZXNzLCBwcmV2X3JlbG9jX2FkZGVuZCk6IERlbGV0ZS4KCShlbGZfbWlwc19ob3d0b190YWJsZV9yZWwsIGVsZl9taXBzX2hvd3RvX3RhYmxlX3JlbGEpOiBBcyBmb3IKCWVsZjY0LW1pcHMuYwoJKEdFVF9SRUxPQ19BRERFTkQsIFNFVF9SRUxPQ19BRERFTkQpOiBEZWxldGUuCgkobWlwc19lbGZfZ2VuZXJpY19yZWxvYywgc3RydWN0IG1pcHNfaGkxNiwgbWlwc19lbGZfaGkxNl9yZWxvYykKCShtaXBzX2VsZl9sbzE2X3JlbG9jLCBtaXBzX2VsZl9nb3QxNl9yZWxvYyk6IERlbGV0ZS4KCShtaXBzX2VsZl9ncHJlbDE2X3JlbG9jKTogRGVsZXRlIHVzZSBvZiBHRVRfUkVMT0NfQURERU5ELgoJKG1pcHNfZWxmX2xpdGVyYWxfcmVsb2MsIG1pcHNfZWxmX2dwcmVsMzJfcmVsb2MpOiBMaWtld2lzZS4KCShtaXBzMTZfanVtcF9yZWxvYywgbWlwczE2X2dwcmVsX3JlbG9jKTogTGlrZXdpc2UuCgkobWlwc19lbGZfc2hpZnQ2X3JlbG9jKTogTGlrZXdpc2UuICBEZWxldGUgdXNlIG9mIFNFVF9SRUxPQ19BRERFTkQuCgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZ3ByZWwxNl93aXRoX2dwKTogVXNlCglfYmZkX3JlbG9jYXRlX2NvbnRlbnRzIHRvIGluc3RhbGwgYW4gaW4tcGxhY2UgYWRkZW5kLgoJKG1pcHNfaGkxNik6IE5ldyBzdHJ1Y3R1cmUuCgkobWlwc19oaTE2X2xpc3QpOiBNb3ZlZCBmcm9tIGVsZjMyLW1pcHMuYy4KCShfYmZkX21pcHNfZWxmX2hpMTZfcmVsb2MsIF9iZmRfbWlwc19lbGZfZ290MTZfcmVsb2MpOiBOZXcgZnVuY3Rpb25zLgoJKF9iZmRfbWlwc19lbGZfbG8xNl9yZWxvYywgX2JmZF9taXBzX2VsZl9nZW5lcmljX3JlbG9jKTogTmV3IGZ1bmN0aW9ucy4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IEFzc3VtZSBhZGRlbmQgaXMgdW5zaGlmdGVkLgoJKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGFwcGx5IHRoZSBob3d0byByaWdodHNoaWZ0CglvbiB0b3Agb2YgdGhlIHVzdWFsIGhpZ2gtcGFydCBzaGlmdC4gIERvbid0IHNoaWZ0IHRoZSBhZGRlbmQgcmlnaHQKCWJlZm9yZSBjYWxsaW5nIG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uLgoKCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX2hpMTZfcmVsb2MpOiBEZWNsYXJlLgoJKF9iZmRfbWlwc19lbGZfZ290MTZfcmVsb2MsIF9iZmRfbWlwc19lbGZfbG8xNl9yZWxvYyk6IERlY2xhcmUuCgkoX2JmZF9taXBzX2VsZl9nZW5lcmljX3JlbG9jKTogRGVjbGFyZS4KCjIwMDMtMTItMTYgIEVyaWMgWW91bmdkYWxlICA8ZXJpY0Bta3Nzb2Z0d2FyZS5jb20+CgkgICAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBlaWNvZGUuaCAocGVfSUxGX2J1aWxkX2FfYmZkKTogT25seSBza2lwIG9uZSBpbnN0YW5jZSBvZiBlYWNoCglwcmVmaXggY2hhcmFjdGVyLCBpZiB0aGV5IGFyZSBwcmVzZW50LgoKMjAwMy0xMi0xNSAgRG1pdHJ5IFNlbXlvbm92ICA8RG1pdHJ5LlNlbXlvbm92QG9rdGV0LnJ1PgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwZVhYaWdlbi5jIChfYmZkX1hYaV9zd2FwX3Njbmhkcl9vdXQpOiBFbnN1cmUgdGhhdCBjb3JyZWN0IGZsYWdzCglhcmUgc2V0IG9uIGtub3duIHNlY3Rpb24gdHlwZXMuCgoyMDAzLTEyLTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vcm8ucG86IFVwZGF0ZWQgdHJhbnNsYXRpb24uCgoyMDAzLTEyLTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogQ2hlY2sgZm9yCglOVUxMIGR5bl9oLgoKMjAwMy0xMi0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChJTkNMVURFX1NFQ1RJT05fSU5fU0VHTUVOVCk6IFNraXAgUFRfR05VX1NUQUNLIHNlZ21lbnRzLgoKMjAwMy0xMi0wOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5oLCBlbGZ4eC1taXBzLmMsIGNwdS1taXBzLmM6IENvbnZlcnQgcHJvdG90eXBlcy4KCVJlbW92ZSBjYXN0cyB0aGF0IHdlcmUgb25seSBuZWVkZWQgZm9yIEsmUiBjb21wYXRpYmlsaXR5LgoKMjAwMy0xMi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBSZW1vdmUgImJmZCAqIiBhbmQgYWRkCgkiZWxmbGlua19oYXNoX2VudHJ5ICoiIHBhcmFtIHRvIGVsZl9iYWNrZW5kX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rLgoJQWRkICJlbGZsaW5rX2hhc2hfZW50cnkgKiIgcGFyYW0gdG8gZWxmX2JhY2tlbmRfb3V0cHV0X2FyY2hfc3ltcy4KCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfc3ltKTogQWRkICJlbGZsaW5rX2hhc2hfZW50cnkgKiIgcGFyYW0sCglhbmQgcGFzcyB0byBvdXRwdXRfc3ltYm9sX2hvb2suCgkoZWxmX2JmZF9maW5hbF9saW5rKTogQWRqdXN0IGVsZl9saW5rX291dHB1dF9zeW0gY2FsbHMuCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogQWRqdXN0LgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmggKF9iZmRfbWlwc19lbGZfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfb3V0cHV0X2FyY2hfc3ltcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCVZhbGlkYXRlIGR5bmgtPmggYWdhaW5zdCBoLgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IHBwY19saW5rX2hhc2hfZW50cnkpOiBBZGQgYWRqdXN0X2RvbmUgYml0ZmllbGQuCgkobGlua19oYXNoX25ld2Z1bmMpOiBJbml0IGl0LgoJKGFkanVzdF9vcGRfc3ltcyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfZWRpdF9vcGQpOiBTZXQgYWRqdXN0X2RvbmUgd2hlbiBnbG9iYWwgLm9wZCBzeW0gYWRqdXN0ZWQuCglTZXQgb3BkLmFkanVzdCBmb3IgYWxsIC5vcGQgcmVsb2NzLiAgQ2FsbCBhZGp1c3Rfb3BkX3N5bXMuCgkocHBjNjRfZWxmX3Rsc19vcHRpbWl6ZSk6IEFkanVzdCBwb3NzaWJsZSAub3BkIHN5bSB2YWx1ZXMgaGVyZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFsc28gYWRqdXN0IHN5bXMgbm90IGEgbXVsdGlwbGUgb2YgMjQuCgkocHBjNjRfZWxmX291dHB1dF9zeW1ib2xfaG9vayk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IERlZmluZS4KCjIwMDMtMTItMDcgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZjMyLW1pcHMuYywgZWxmbjMyLW1pcHMuYywgZWxmNjQtbWlwcy5jOiBDb252ZXJ0IHByb3RvdHlwZXMuCglSZW1vdmUgY2FzdHMgdGhhdCB3ZXJlIG9ubHkgbmVlZGVkIGZvciBLJlIgY29tcGF0aWJpbGl0eS4KCjIwMDMtMTItMDUgIERtaXRyeSBTZW15b25vdiAgPERtaXRyeS5TZW15b25vdkBva3RldC5ydT4KCgkqIGNvZmYtYXJtLmMgKGFvdXRhcm1fc3RkX3JlbG9jX2hvd3RvIFtBUk1fV0lOQ0VdKTogU2V0CglwYXJ0aWFsX2lucGxhY2UgZm9yIHRoZXNlIHJlbG9jcyB0byBGQUxTRSBmb3IgY29tcHRhYmlsaXR5IHdpdGgKCXRoZSBNUyBsaW5rZXIuCglSZW1hcCBBUk1fMjZEIHJlbG9jYXRpb24gZnJvbSA1IHRvIDAuIFRoaXMgZml4ZXMgImJhZCBmaXh1cCIgZXJyb3IKCWdlbmVyYXRlZCBieSBNUyBsaW5rZXIsIGFuZCBicmluZ3MgdGhlIHJlbG9jYXRpb24gaW4gbGluZSB0aGUgTVMKCVBFIGRvY3VtZW50YXRpb24uCgoyMDAzLTEyLTA0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxheF9zZWN0aW9uKTogRG9uJ3QgY2hlY2sgcmVsYXhfZmluYWxpemluZy4KCjIwMDMtMTItMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogVXNlIHRoZQoJbmVlZF9yZWxheF9maW5hbGl6ZSBmaWVsZCBpbiBsaW5rX2luZm8gaW5zdGVhZCBvZgoJcmVsYXhfZmluYWxpemluZyB0byBjaGVjayBpZiB0aGUgcmVsYXggZmluYWxpemUgcGFzcyBpcyBiZWluZwoJZG9uZS4KCjIwMDMtMTItMDQgIERtaXRyeSBTZW15b25vdiAgPERtaXRyeS5TZW15b25vdkBva3RldC5ydT4KCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX3JlbG9jYXRlX3NlY3Rpb24sIGJmZF9hcm1fcHJvY2Vzc19iZWZvcmVfYWxsb2NhdGlvbik6CglDaGFuZ2UgQVJNMjYqIHRvIEFSTV8yNiogaW4gY29tbWVudHMgdG8gbWF0Y2ggZGVmaW5pdGlvbnMuCgkoY29mZl9hcm1fYWRqdXN0X3N5bW5keCk6IFJlcGxhY2UgaGFyZC1jb2RlZCBjb25zdGFudHMgd2l0aAoJYXBwcm9wcmlhdGUgZGVmaW5pdGlvbnMgKEFSTV8yNiopLgoKMjAwMy0xMi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtaTg2MC5jIChjb2ZmX2k4NjBfcmVsb2NfbnlpKTogUmV0dXJuIGJmZF9yZWxvY19ub3Rfc3VwcG9ydGVkLgoJKiBlbGYtbTEwMzAwLmMgKGVsZjMyX21uMTAzMDBfZmluaXNoX2hhc2hfdGFibGVfZW50cnkpOiBXYXJuaW5nIGZpeGVzLgoJKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogbmxtMzItYWxwaGEuYyAoT05FUyk6IERlZmluZS4KCShubG0zMl9hbHBoYV9ob3d0b190YWJsZSk6IFVzZSBpdCB0byBhdm9pZCB3YXJuaW5ncy4KCjIwMDMtMTItMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X29iamVjdF9wKTogRGVsZXRlLgoJKGVsZl9iYWNrZW5kX29iamVjdF9wKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX29iamVjdF9wKTogTm8gbmVlZCB0byBhbGxvYyB0ZGF0YSBoZXJlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfb2JqZWN0X3ApOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfb2JqZWN0X3ApOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfb2JqZWN0X3ApOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9vYmplY3RfcCk6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2VsZl9vYmplY3RfcCk6IExpa2V3aXNlLgoKMjAwMy0xMi0wMyAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfbTMycjIpOiBBZGQgbmV3IG1hY2hpbmUgdHlwZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtbTMyci5jIDogQWRkIG5ldyBtYWNoaW5lIHR5cGUuCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfb2JqZWN0X3AsIG0zMnJfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcsCgltMzJyX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQWRkIHN1cHBvcnQgZm9yIG5ldyBtYWNoaW5lCgl0eXBlLgoKMjAwMy0xMi0wMyAgRGF2ZSBBaXJsaWUgIDxhaXJsaWVkQGxpbnV4LmllPgoKCSogY29uZmlnLmJmZDogQWRkIHZheC1saW51eC1nbnUgdGFyZ2V0LgoJKiBjb25maWd1cmUuaW46IExpa2V3aXNlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTEyLTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWNvZmYuYyAoZWNvZmZfbGlua19hZGRfYXJjaGl2ZV9zeW1ib2xzKTogVXBkYXRlIGZvciByZW5hbWVkCgliZmRfbGlua19oYXNoX2VudHJ5IGZpZWxkICJuZXh0IiAtPiAidW5kX25leHQiLgoJKiBsaW5rZXIuYyAoX2JmZF9saW5rX2hhc2hfbmV3ZnVuYyk6IExpa2V3aXNlLgoJKGJmZF9saW5rX2FkZF91bmRlZik6IExpa2V3aXNlLgoJKF9iZmRfZ2VuZXJpY19saW5rX2FkZF9hcmNoaXZlX3N5bWJvbHMpOiBMaWtld2lzZS4KCShfYmZkX2dlbmVyaWNfbGlua19hZGRfb25lX3N5bWJvbCk6IExpa2V3aXNlLgoJKiB4Y29mZmxpbmsuYyAoeGNvZmZfbGlua19hZGRfc3ltYm9scyk6IExpa2V3aXNlLgoKMjAwMy0xMi0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgcm8uCgkqIHBvL3JvLnBvOiBOZXcgUm9tYW5pYW4gdHJhbnNsYXRpb24uCgoyMDAzLTEyLTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMTItMDEgIERtaXRyeSBTZW15b25vdiAgPERtaXRyeS5TZW15b25vdkBva3RldC5ydT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfY29tcHV0ZV9zZWN0aW9uX2ZpbGVfcG9zaXRpb25zKTogU2V0IHBhZ2Vfc2l6ZQoJdG8gMSBpbnN0ZWFkIG9mIDAgaW4gdGhlIGNhc2UgZmlsZSBhbGlnbm1lbnQgdmFsdWUgaXMgemVyby4KCjIwMDMtMTItMDEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb2ZmLXJzNjAwMC5jOiBSZW1vdmUgQVJHU1VTRUQgYW5kIFZBUkFSR1MuCgkqIGNvZmY2NC1yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvZmZjb2RlLmg6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYzogTGlrZXdpc2UuCgkqIGhhc2guYzogTGlrZXdpc2UuCgkqIGhwcGFic2QtY29yZS5jOiBMaWtld2lzZS4KCSogaHB1eC1jb3JlLmM6IExpa2V3aXNlLgoJKiBpaGV4LmM6IExpa2V3aXNlLgoJKiBuZXRic2QtY29yZS5jOiBMaWtld2lzZS4KCSogb3NmLWNvcmUuYzogTGlrZXdpc2UuCgkqIHBkcDExLmM6IExpa2V3aXNlLgoJKiBwdHJhY2UtY29yZS5jOiBMaWtld2lzZS4KCSogc2NvNS1jb3JlLmM6IExpa2V3aXNlLgoJKiBzZWN0aW9uLmM6IExpa2V3aXNlLgoJKiBzdW5vcy5jOiBMaWtld2lzZS4KCSogdHJhZC1jb3JlLmM6IExpa2V3aXNlLgoKMjAwMy0xMi0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoaXNfZWxmX2hhc2hfdGFibGUpOiBUYWtlIGhhc2ggdGFiIHJhdGhlciB0aGFuIGluZm8gYXJnLgoJKiBlbGYuYyAoX2JmZF9lbGZfbWVyZ2Vfc2VjdGlvbnMpOiBBZGp1c3QgdG8gc3VpdC4KCShfYmZkX2VsZl9saW5rX2p1c3Rfc3ltcyk6IExpa2V3aXNlLgoJKGJmZF9lbGZfZ2V0X25lZWRlZF9saXN0KTogTGlrZXdpc2UuCgkoYmZkX2VsZl9nZXRfcnVucGF0aF9saXN0KTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfbGlua19oYXNoX2NvcHlfaW5kaXJlY3QpOiBSZW1vdmUgdW5uZWVkZWQgcGFyZW5zLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfc2V0dXBfc2VjdGlvbl9saXN0cyk6IERvbid0IGNoZWNrIGhhc2ggdGFiCgljcmVhdG9yIGZsYXZvdXIuCgkoZWxmMzJfaHBwYV9zZXRfZ3ApOiBMb29rIHVwIG91dHB1dCBzZWN0aW9ucyByYXRoZXIgdGhhbiB1c2luZyBodGFiLgoJKiBlbGYzMi1pOTYwLmM6IENvbW1lbnQgZml4LiAgRm9ybWF0dGluZy4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9hZGRfc3ltYm9sX2hvb2spOiBVc2UgaXNfZWxmX2hhc2hfdGFibGUKCXJhdGhlciB0aGFuIHRlc3RpbmcgY3JlYXRvciBmbGF2b3VyLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IEFkanVzdCBmb3IKCWlzX2VsZl9oYXNoX3RhYmxlIGNoYW5nZS4gIFJlbW92ZSByZWR1bmRhbnQgdGVzdC4KCShiZmRfZWxmX3JlY29yZF9saW5rX2Fzc2lnbm1lbnQpOiBVc2UgaXNfZWxmX2hhc2hfdGFibGUgcmF0aGVyIHRoYW4KCXRlc3RpbmcgY3JlYXRvciBmbGF2b3VyLgoJKGVsZl9saW5rX3JlY29yZF9sb2NhbF9keW5hbWljX3N5bWJvbCk6IEFkanVzdCBmb3IgaXNfZWxmX2hhc2hfdGFibGUuCgkoX2JmZF9lbGZfZml4X3N5bWJvbF9mbGFncyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IExpa2V3aXNlLiAgUmVtb3ZlIHJlZHVuZGFudAoJY2hlY2tzLiAgVXNlIGlzX2VsZl9oYXNoX3RhYmxlIHJhdGhlciB0aGFuIHRlc3RpbmcgY3JlYXRvciBmbGF2b3VyLgoJVXNlIGhhc2hfdGFibGUgdGhyb3VnaG91dCBpbiBwbGFjZSBvZiBpbmZvLT5oYXNoLgoJKGVsZl9hZGRfZHluYW1pY19lbnRyeSk6IEFkanVzdCBmb3IgaXNfZWxmX2hhc2hfdGFibGUgY2hhbmdlLgoJKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogTGlrZXdpc2UuICBSZW1vdmUgcmVkdW5kYW50CgljaGVjay4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBBZGp1c3QgZm9yIGlzX2VsZl9oYXNoX3RhYmxlIGNoYW5nZS4KCShlbGZfbGlua19jaGVja192ZXJzaW9uZWRfc3ltYm9sKTogVXNlIGlzX2VsZl9oYXNoX3RhYmxlIHJhdGhlciB0aGFuCgl0ZXN0aW5nIGNyZWF0b3IgZmxhdm91ci4KCShlbGZfZ2Nfc2VjdGlvbnMpOiBBZGQgaXNfZWxmX2hhc2hfdGFibGUgY2hlY2suCgkoZWxmX2djX2NvbW1vbl9maW5hbGl6ZV9nb3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogQWRqdXN0IGZvciBpc19lbGZfaGFzaF90YWJsZSBjaGFuZ2UuICBSZW1vdmUKCXJlZHVuZGFudCBjaGVjay4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBVc2UgaXNfZWxmX2hhc2hfdGFibGUKCXJhdGhlciB0aGFuIHRlc3RpbmcgY3JlYXRvciBmbGF2b3VyLgoKMjAwMy0xMS0yOCAgQ2hyaXN0aWFuIEdyb2Vzc2xlciAgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBjcHUtejhrLmM6IENvbnZlcnQgdG8gSVNPIEM5MC4KCSogY29mZi16OGsuYzogTGlrZXdpc2UuCgoyMDAzLTExLTI3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZi1iZmQuaCAoZWxmX2JhY2tlbmRfZGF0YTo6ZWxmX2JhY2tlbmRfbW9kaWZ5X3NlZ21lbnRfbWFwKToKCUFkZCBsaW5rIGluZm8gYXJndW1lbnQuCgkqIGVsZjMyLWkzNzAuYyAoZWxmX2JhY2tlbmRfbW9kaWZ5X3NlZ21lbnRfbWFwKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9tb2RpZnlfc2VnbWVudF9tYXApOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX21vZGlmeV9zZWdtZW50X21hcCk6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfbW9kaWZ5X3NlZ21lbnRfbWFwKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9tb2RpZnlfc2VnbWVudF9tYXApOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IExpa2V3aXNlLgoJKiBlbGYuYyAoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2V4Y2VwdF9yZWxvY3MsCglhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX3NlZ21lbnRzKTogTGlrZXdpc2UuICBBZGp1c3QgY2FsbHMuCgoyMDAzLTExLTI3ICBNYXJrIEtldHRlbmlzICA8a2V0dGVuaXNAZ251Lm9yZz4KCgkqIGVsZi5jIChlbGZjb3JlX2dyb2tfbmV0YnNkX3Byb2NpbmZvKTogTWFrZSBhIHBzZXVkb3NlY3Rpb24gb3V0CglvZiB0aGUgbm90ZS4KCjIwMDMtMTEtMjYgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoJICAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfc2V0X2dsb2JhbF9nb3Rfb2Zmc2V0KTogRG9uJ3Qgc2V0IG5vX2ZuX3N0dWIuCgkobWlwc19lbGZfc2V0X25vX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkobWlwc19lbGZfbXVsdGlfZ290KTogQ2FsbCBpdC4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IElmIGEgcmVsb2NhdGlvbiBpcyBuZWVkZWQgZm9yCglhIHNlY29uZGFyeSBHT1QgZW50cnksIGNyZWF0ZSBhbiBSX01JUFNfMzIgb3IgUl9NSVBTXzY0IHJlbG9jYXRpb24gYW5kCgl1c2UgbWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbiB0byBkZWFsIHdpdGggYW55IGNvbXBhdGliaWxpdHkKCWlzc3Vlcy4gIFN0b3JlIHRoZSBhZGp1c3RlZCBhZGRlbmQgaW4gdGhlIEdPVCBzbG90LgoKMjAwMy0xMS0yNSAgTWF0dGlhcyBFbmdkZWflcmQgIDxtYXR0aWFzQHZpcnR1dGVjaC5zZT4KCgkqIHN0YWJzLmMgKF9iZmRfbGlua19zZWN0aW9uX3N0YWJzKTogU2tpcCBOX0VYQ0wgc3RhYnMgd2hlbgoJcHJvY2VzaW5nIE5fQklOQ0wgc3RhYnMuCgoyMDAzLTExLTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwY190eXBlX29mX3N0dWIpOiBEaXNhbGxvdyBzdHVicyBvdGhlciB0aGFuCglwcGNfc3R1Yl9wbHRfY2FsbCB0byBzeW1ib2xzIGRlZmluZWQgaW4gc2hhcmVkIGxpYnMuCgoyMDAzLTExLTIyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi1iZmQuaCAoRUxGX0xJTktfUE9JTlRFUl9FUVVBTElUWV9ORUVERUQpOiBEZWZpbmUgbmV3IGZsYWcuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IENvcHkgaXQuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBTZXQgaXQuCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogSWYgaXQgaXMgbm90IHNldCwKCWNsZWFyIHN0X3ZhbHVlIG9mIFNITl9VTkRFRiBzeW1ib2wuCgoyMDAzLTExLTIwICBKaW0gQmxhbmR5ICA8amltYkByZWRoYXQuY29tPgoKCSogY3B1LXBvd2VycGMuYyAocG93ZXJwY19jb21wYXRpYmxlKTogQW55IElTQSBpbiB0aGUgUG93ZXJQQwoJZmFtaWx5IGlzIGEgc3VwZXJzZXQgb2YgPGJmZF9hcmNoX3JzNjAwMCxiZmRfbWFjaF9yczZrPi4KCjIwMDMtMTEtMjAgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCByZWNhbGN1bGF0ZSBzeW1ib2wKCXNlY3Rpb24gZm9yIHJlbG9jIG91dHB1dCBhbmQgc3VidHJhY3QgdGhlIG91dHB1dCBzZWN0aW9uJ3MgYWRkcmVzcwoJZnJvbSB0aGUgYWRkZW5kIHdoZW4gY29udmVydGluZyBhIHJlbG9jYXRpb24gaW50byBvbmUgYWdhaW5zdCBhCglzZWN0aW9uIHN5bWJvbC4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTExLTE4ICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGdldF9mcHRyKTogRm9yIGZwdHJfcmVsLCB1c2UgZHlub2JqIG5vdCBhYmZkLgoJKGVsZk5OX2lhNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogV2hlbiBzdHJpcHBpbmcgc2VjdGlvbnMsIGNoZWNrCglmb3IgaWE2NF9pbmZvLT5yZWxfZnB0cl9zZWMuCgoyMDAzLTExLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHRvY19hZGp1c3Rpbmdfc3R1Yl9uZWVkZWQpOiBFeGl0IGVhcmx5IGlmIHNlY3Rpb24KCXNpemUgaXMgemVyby4KCjIwMDMtMTEtMTcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9jb3B5X2luZGlyZWN0KTogQ29weQoJRUxGX0xJTktfSEFTSF9ORUVEU19QTFQuICBGaXggZm9ybWF0dGluZy4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2hhc2hfY29weV9pbmRpcmVjdCk6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IFJlbW92ZS4KCShlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERvbid0IGRlZmluZS4KCjIwMDMtMTEtMTQgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9tZXJnZV9nb3RzKTogV2Vha2VuIGFzc2VydCBmb3IgbG9jYWwKCUdPVCBlbnRyaWVzLgoKMjAwMy0xMS0xMyAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IE9ubHkgY29udmVydCBSXzM5MF8zMgoJdG8gUl8zOTBfUkVMQVRJVkUuIENvbnZlcnQgdGhlIG90aGVyIHJlbG9jYXRpb25zIGFnYWluc3QgbG9jYWwKCXN5bWJvbHMgdG8gcmVsb2NhdGlvbnMgYWdhaW5zdCB0aGUgc3RhcnQgb2YgdGhlIHNlY3Rpb24uCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IE9ubHkgY29udmVydCBSXzM5MF82NAoJdG8gUl8zOTBfUkVMQVRJVkUuIENvbnZlcnQgdGhlIG90aGVyIHJlbG9jYXRpb25zIGFnYWluc3QgbG9jYWwKCXN5bWJvbHMgdG8gcmVsb2NhdGlvbnMgYWdhaW5zdCB0aGUgc3RhcnQgb2YgdGhlIHNlY3Rpb24uCgoyMDAzLTExLTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmLW0xMDMwMC5jIChiZmRfbW4xMDMwMF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlCglpbmZvLT5leGVjdXRhYmxlIG5vdCBpbmZvLT5zaGFyZWQgdG8gZGVjaWRlIGlmIGEgLmludGVycCBzZWN0aW9uCglzaG91bGQgYmUgcHJlc2VudC4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jIChlbGZfY3Jpc19zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmMgKGkzNzBfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYyAoZWxmX3ZheF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzIteHRlbnNhLmMgKGVsZl94dGVuc2Ffc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAzLTExLTEwICBKb25hdGhhbiBXaWxzb24gPGpvbndpbEB0cGdpLmNvbS5hdT4KCgkqIHBlWFhpZ2VuLmMgKF9iZmRfWFhpX3N3YXBfYW91dGhkcl9vdXQpOiBTd2FwIG91dCB0bHMgcG9pbnRlci4KCShfYmZkX1hYaV9maW5hbF9saW5rX3Bvc3RzY3JpcHQpOiBMb29rIGZvciBfX3Rrc191c2VkIHN5bWJvbC4gIElmCglmb3VuZCBpbml0aWFsaXNlIHRoZSB0bHMgZGF0YSBkaXJlY3RvcnkgZW50cnkuCgoyMDAzLTExLTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfaW5zdGFsbF92YWx1ZSk6IERlbGV0ZS4KCShzaGFyZWRfc3R1Yl9lbnRyeSwgc3R1Yl9lbnRyeSk6IE1ha2UgdGhlbSBhcnJheXMgb2YgaW50cy4KCVJlbW92ZSBpbml0aWFsIGJyYW5jaC4KCShwcGNfZWxmX3JlbGF4X3NlY3Rpb24pOiBXcml0ZSBvbmUgYnJhbmNoIGFyb3VuZCBhbGwgdHJhbXBvbGluZXMKCWluc3RlYWQuICBDb3JyZWN0IGJvZ3VzIFJfUFBDX1BMVFJFTDI0IGhhbmRsaW5nLiAgQ29ycmVjdAoJYnJhbmNoIHJhbmdlIGNoZWNrLiAgT25seSB1c2Ugc2hhcmVkX3N0dWJfZW50cnkgd2hlbiBzaGFyZWQuCglUZXN0IHRoYXQgYnJhbmNoZXMgY2FuIHJlYWNoIHN0dWJzLiAgV3JpdGUgdHJhbXBvbGluZXMgb3V0IGF0CgllbmQgc28gdGhhdCBqdXN0IG9uZSByZWFsbG9jIGlzIHVzZWQuICBIYW5kbGUgbGl0dGxlLWVuZGlhbgoJbW9kZS4gIE1vdmUgcmVsZXZhbnQgY29kZSBmcm9tIHBwY19lbGZfaW5zdGFsbF92YWx1ZSB0byBoZXJlLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IE1vdmUgY29kZSBoYW5kbGluZyBSRUxBWDMyIGZyb20KCXBwY19lbGZfaW5zdGFsbF92YWx1ZSB0byBoZXJlLgoKMjAwMy0xMS0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2hvd3RvX3Jhdyk7IEFkZCBlbnRyeSBmb3IgUl9QUENfUkVMQVgzMlBDLgoJKHBwY19lbGZfaW5zdGFsbF92YWx1ZSk6IEhhbmRsZSBSX1BQQ19SRUxBWDMyUEMuICBNZXJnZSBkdXBsaWNhdGUKCWNhc2VzLgoJKHNoYXJlZF9zdHViX2VudHJ5KTogQ29ycmVjdCBvcGNvZGUuCgkocHBjX2VsZl9yZWxheF9zZWN0aW9uKTogR2VuZXJhdGUgUl9QUENfUkVMQVgzMlBDIHJlbG9jcy4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgdGhlbS4KCjIwMDMtMTEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoX2JmZF9lbGZfcmVsYV9sb2NhbF9zeW0pOiBBY2NlcHQgYXNlY3Rpb24gKiosIGFuZCByZXR1cm4KCXVwZGF0ZWQgc2VjdGlvbiBpbiBjYXNlIG9mIG1lcmdlZCBzZWN0aW9uLgoJKiBlbGYtYmZkLmggKF9iZmRfZWxmX3JlbGFfbG9jYWxfc3ltKTogVXBkYXRlIGRlY2xhcmF0aW9uLgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogQWRqdXN0IGNhbGwuCgkqIGVsZi1tMTAyMDAuYyAobW4xMDIwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWF2ci5jIChlbGYzMl9hdnJfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jIChmcjMwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWZydi5jIChlbGYzMl9mcnZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmMgKG1jb3JlX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1zcDQzMC5jIChlbGYzMl9tc3A0MzBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1vcGVucmlzYy5jIChvcGVucmlzY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfcmVsb2NhdGVfc2VjdGlvbikgTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYyAoZWxmX3h0ZW5zYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCByZWNhbGN1bGF0ZSBzeW1ib2wKCXNlY3Rpb24gZm9yIHJlbG9jIG91dHB1dC4KCSogZWxmMzItaTM3MC5jIChpMzcwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCByZWNhbGN1bGF0ZSBldmVyeXRoaW5nCglmb3IgUl9QUENfUkVMQVgzMiByZWxvYy4gIERvbid0IGJvdGhlciBjaGVja2luZyBwcGNfZWxmX2luc3RhbGxfdmFsdWUKCXJldHVybiB2YWx1ZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uIDxSX1BQQzY0X1RPQz4pOiBTYW5pdHkgY2hlY2sKCXNlYy0+aWQuCgoyMDAzLTExLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItZDEwdi5jIChleHRyYWN0X3JlbF9hZGRlbmQsIGluc2VydF9yZWxfYWRkZW5kKTogTmV3IGZ1bmN0aW9ucy4KCShlbGYzMl9kMTB2X3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgdGhlbSB0byBoYW5kbGUgLXIgcmVsb2MKCWFkanVzdG1lbnRzLCBhbmQgaW4gcGxhY2Ugb2YgX2JmZF9lbGZfcmVsYV9sb2NhbF9zeW0uCgoJKiBjcHUtaXEyMDAwLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBXYXJuaW5nIGZpeC4KCjIwMDMtMTEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZS4KCShlbGYzMl9ocHBhX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRG9uJ3QgY29weSBOT05fR09UX1JFRiBvbgoJd2Vha2RlZnMuCgkoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBVc2UgRUxJTUlOQVRFX0NPUFlfUkVMT0NTLgoJKGVsZjMyX2hwcGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuICBDb3B5IHdlYWtkZWYKCU5PTl9HT1RfUkVGLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFVzZSBFTElNSU5BVEVfQ09QWV9SRUxPQ1MgYW5kCglTWU1CT0xfQ0FMTFNfTE9DQUwuICBEaXNjYXJkIHJlbG9jcyBmb3IgdW5kZWYgd2VhayBzeW1zIHdpdGgKCW5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIEVMSU1JTkFURV9DT1BZX1JFTE9DUyBhbmQKCVNZTUJPTF9DQUxMU19MT0NBTC4KCjIwMDMtMTEtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhb3V0LXRhcmdldC5oLCBhb3V0ZjEuaCwgYmZkaW8uYywgYmZkd2luLmM6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCSogY29mZi1hcG9sbG8uYywgY29mZi1zcGFyYy5jLCBjb2ZmLXc2NS5jLCBjb2ZmLXdlMzJrLmM6IERpdHRvLgoJKiBjb2ZmLXo4ay5jLCBjb2ZmZ2VuLmMsIGNwdS1mcnYuYywgY3B1LWg4NTAwLmMsIGNwdS1ocHBhLmM6IERpdHRvLgoJKiBjcHUtaWE2NC1vcGMuYywgY3B1LW0xMDMwMC5jLCBjcHUtbWlwcy5jLCBjcHUtbXNwNDMwLmM6IERpdHRvLgoJKiBjcHUtcnM2MDAwLmMsIGNwdS16OGsuYywgZWZpLWFwcC1pYTMyLmMsIGVsZjMyLWFtMzNsaW4uYzogRGl0dG8uCgkqIGdlbi1hb3V0LmMsIGhhc2guYywgaHAzMDBocHV4LmMsIGluaXQuYywgbWFjaC1vLmM6IERpdHRvLgoJKiBubG0tdGFyZ2V0LmgsIG5sbS5jLCBzb20uaCwgc3RhYnMuYywgc3lzZGVwLmgsIHhzeW0uaDogRGl0dG8uCgoJKiBlbGYtbTEwMzAwLmMgKF9iZmRfbW4xMDMwMF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogRml4CgkiZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIiB3YXJuaW5ncy4KCgkqIGFvdXQtYWRvYmUuYyAoYW91dF9hZG9iZV9zZXRfc2VjdGlvbl9jb250ZW50cyk6IENvbnN0aWZ5IGxvY2F0aW9uLgoJKiBhb3V0eC5oIChOQU1FKGFvdXQsc2V0X3NlY3Rpb25fY29udGVudHMpKTogRGl0dG8uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogYmluYXJ5LmMgKGJpbmFyeV9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBib3V0LmMgKGJfb3V0X3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIGNvZmYtdGljNTR4LmMgKHRpYzU0eF9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIGVjb2ZmLmMgKF9iZmRfZWNvZmZfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogZWxmLWJmZC5oIChfYmZkX2VsZl9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBlbGYuYyAoX2JmZF9lbGZfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIGVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX2VsZl9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBpMzg2bXNkb3MuYyAobXNkb3Nfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogaWVlZS5jIChpZWVlX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIGloZXguYyAoaWhleF9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBsaWJhb3V0LmggKE5BTUUoYW91dCxzZXRfc2VjdGlvbl9jb250ZW50cykpOiBEaXR0by4KCSogbGliYmZkLWluLmggKF9iZmRfbm93cml0ZV9zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKF9iZmRfZ2VuZXJpY19zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmMgKF9iZmRfZ2VuZXJpY19zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBsaWJlY29mZi5oIChfYmZkX2Vjb2ZmX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIGxpYm5sbS5oIChubG1OQU1FKHNldF9zZWN0aW9uX2NvbnRlbnRzKSk6IERpdHRvLgoJKHN0cnVjdCBubG1fYmFja2VuZF9kYXRhIDxubG1fbWFuZ2xlX3JlbG9jcz4pOiBEaXR0by4KCSogbW1vLmMgKG1tb19zZXRfc2VjdGlvbl9jb250ZW50cyk6IERpdHRvLgoJKiBubG0zMi1hbHBoYS5jIChubG1fYWxwaGFfbWFuZ2xlX3JlbG9jcyk6IERpdHRvLgoJKiBubG0zMi1pMzg2LmMgKG5sbV9pMzg2X21hbmdsZV9yZWxvY3MpOiBEaXR0by4KCSogbmxtMzItcHBjLmMgKG5sbV9wb3dlcnBjX21hbmdsZV9yZWxvY3MpOiBEaXR0by4KCSogbmxtMzItc3BhcmMuYyAobmxtX3NwYXJjX21hbmdsZV9yZWxvY3MpOiBEaXR0by4KCSogbmxtY29kZS5oIChubG1fc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogb2FzeXMuYyAob2FzeXNfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogcGRwMTEuYyAoTkFNRShhb3V0LHNldF9zZWN0aW9uX2NvbnRlbnRzKSk6IERpdHRvLgoJKiBwcGNib290LmMgKHBwY2Jvb3Rfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogc3JlYy5jIChzcmVjX3NldF9zZWN0aW9uX2NvbnRlbnRzKTogRGl0dG8uCgkqIHRhcmdldHMuYyAoQkZEX0pVTVBfVEFCTEVfV1JJVEUgPF9iZmRfc2V0X3NlY3Rpb25fY29udGVudHM+KTogRGl0dG8uCgkqIHRla2hleC5jICh0ZWtoZXhfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCShtb3ZlX3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogdmVyc2Fkb3MuYyAodmVyc2Fkb3Nfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogdm1zLW1pc2MuYyAoX2JmZF9zYXZlX3Ztc19zZWN0aW9uKTogRGl0dG8uCgkqIHZtcy5jICh2bXNfc2V0X3NlY3Rpb25fY29udGVudHMpOiBEaXR0by4KCSogdm1zLmggKF9iZmRfc2F2ZV92bXNfc2VjdGlvbik6IERpdHRvLgoKMjAwMy0xMS0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGNfc2l6ZV9vbmVfc3R1Yik6IFNpemUgcmVsYnJsdC4gIEFjY2VwdCBpbmZvIGFyZwoJcmF0aGVyIHRoYW4gaHRhYi4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IEFkanVzdCBwcGNfc2l6ZV9vbmVfc3R1YiB0cmF2ZXJzYWwuICBaZXJvCglyZWxicmx0IHNpemUuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogQWxsb2NhdGUgc3BhY2UgZm9yIHJlbGJybHQuCgoyMDAzLTExLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYmZkLWluLmggKF9iZmRfZWxmX3Rsc19zZXR1cCk6IERlY2xhcmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2xpbmtfdGxzX3NlZ21lbnQpOiBEZWxldGUuCgkoc3RydWN0IGVsZl9saW5rX2hhc2hfdGFibGUpOiBBZGQgdGxzX3NlYyBhbmQgdGxzX3NpemUuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCk6IEluaXQgdGxzX3NlYyBhbmQgdGxzX3NpemUuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfdGxzX3NldHVwKTogTmV3IGZ1bmN0aW9uLgoJKiBlbGZsaW5rLmggKHN0cnVjdCBlbGZfZmluYWxfbGlua19pbmZvKTogUmVtb3ZlIGZpcnN0X3Rsc19zZWMuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogRG9uJ3Qgc2V0IGZpcnN0X3Rsc19zZWMgaGVyZS4gIFVwZGF0ZSBjb2RlCglzYXZpbmcgdGxzIHNlZ21lbnQgaW5mbywgcm91bmQgc2VnbWVudCBzaXplIHVwLgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBBZGp1c3QgY29kZSB1c2luZyB0bHMgc2VnbWVudCBpbmZvLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LmMgKGR0cG9mZl9iYXNlLCB0cG9mZik6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGR0cG9mZl9iYXNlLCB0cG9mZik6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChkdHBvZmZfYmFzZSwgdHBvZmYpOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZHRwb2ZmX2Jhc2UsIHRwb2ZmKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZHRwb2ZmX2Jhc2UsIHRwb2ZmKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChkdHBvZmZfYmFzZSwgdHBvZmYpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3RwcmVsX2Jhc2UpOiBMaWtld2lzZS4KCShlbGZOTl9pYTY0X2R0cHJlbF9iYXNlKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGFscGhhX2dldF9kdHByZWxfYmFzZSk6IExpa2V3aXNlLgoJKGFscGhhX2dldF90cHJlbF9iYXNlKTogTGlrZXdpc2UuCgkoc3RydWN0IGFscGhhX3JlbGF4X2luZm8pOiBSZW1vdmUgdGxzX3NlZ21lbnQuCgkoZWxmNjRfYWxwaGFfcmVsYXhfZ290X2xvYWQpOiBBZGp1c3QgaW52b2NhdGlvbiBvZgoJYWxwaGFfZ2V0X2R0cHJlbF9iYXNlIGFuZCBhbHBoYV9nZXRfdHByZWxfYmFzZS4KCShlbGY2NF9hbHBoYV9yZWxheF90bHNfZ2V0X2FkZHIpOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX3JlbGF4X2ZpbmRfdGxzX3NlZ21lbnQpOiBEZWxldGUuCgkqIGVsZjMyLXBwYy5jIChzdHJ1Y3QgcHBjX2VsZl9saW5rX2hhc2hfdGFibGUpOiBSZW1vdmUgdGxzX3NlYy4KCShwcGNfZWxmX3Rsc19zZXR1cCk6IENhbGwgX2JmZF9lbGZfdGxzX3NldHVwLiAgUmV0dXJuIHNlY3Rpb24uCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQWRqdXN0IHRvIHVzZSBlbGYudGxzX3NlYy4KCSogZWxmMzItcHBjLmggKHBwY19lbGZfdGxzX3NldHVwKTogVXBkYXRlLgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBSZW1vdmUgdGxzX3NlYy4KCShwcGM2NF9lbGZfdGxzX3NldHVwKTogQ2FsbCBfYmZkX2VsZl90bHNfc2V0dXAuICBSZXR1cm4gc2VjdGlvbi4KCShwcGM2NF9lbGZfdGxzX29wdGltaXplKTogQWRqdXN0IHRvIHVzZSBlbGYudGxzX3NlYy4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX3Rsc19zZXR1cCk6IFVwZGF0ZS4KCjIwMDMtMTEtMDMgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IFJlbW92ZSBwbHRfaGVhZGVyX3NpemUuCgkqIGVsZi1tMTAzMDAuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1hcm0uaCAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1jcmlzLmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBEb24ndCBkZWZpbmUuCgkqIGVsZjMyLW1pcHMuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1wcGMuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmMzItc2guYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1zcGFyYy5jIChlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBEb24ndCBkZWZpbmUuCgkqIGVsZjY0LWFscGhhLmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmNjQtaHBwYS5jIChlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBEb24ndCBkZWZpbmUuCgkqIGVsZjY0LW1pcHMuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGY2NC1wcGMuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmNjQtc2g2NC5jIChlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBEb24ndCBkZWZpbmUuCgkqIGVsZjY0LXNwYXJjLmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmbjMyLW1pcHMuYyAoZWxmX2JhY2tlbmRfcGx0X2hlYWRlcl9zaXplKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZS4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IERvbid0IGRlZmluZQoJb3IgaW5jbHVkZSBpbiB0YXJnZXQgaW5pdGlhbGl6ZXIuCgoyMDAzLTExLTAzICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QHJlZGhhdC5jb20+CgoJKiBzZWN0aW9uLmMgKGJmZF9zZXRfc2VjdGlvbl9jb250ZW50cyk6IE1ha2UgdGhlICJsb2NhdGlvbiIgYnVmZmVyCgljb25zdGFudC4KCSogYmZkLWluMi5oOiBSZS1nZW5lcmF0ZS4KCjIwMDMtMTAtMzAgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAcmVkaGF0LmNvbT4KCgkqIHN5bXMuYzogUmVwbGFjZSAic3RydWN0IHN5bWJvbF9jYWNoZV9lbnRyeSIgd2l0aCAic3RydWN0CgliZmRfc3ltYm9sIi4KCSogdm1zLmgsIHRhcmdldHMuYywgc2VjdGlvbi5jLCByZWxvYy5jLCBwZWljb2RlLmg6IERpdHRvLgoJKiBtaXBzYnNkLmMsIGVsZi5jLCBsaW5rZXIuYywgZWxmLWJmZC5oLCBlY29mZi5jOiBEaXR0by4KCSogY3B1LXo4ay5jLCBjcHUtbnMzMmsuYywgY3B1LWg4NTAwLmMsIGJmZC5jLCBiZmQtaW4uaDogRGl0dG8uCgkqIGJmZC1pbjIuaDogUmUtZ2VuZXJhdGUuCgoyMDAzLTEwLTMwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYzogSW5jbHVkZSBvYmphbGxvYy5oLCBoYXNodGFiLmguCgkoc3RydWN0IGVsZk5OX2lhNjRfbG9jYWxfaGFzaF9lbnRyeSk6IFJlbW92ZSByb290LiBBZGQgaWQgYW5kIHJfc3ltCglmaWVsZHMuCgkoc3RydWN0IGVsZk5OX2lhNjRfbG9jYWxfaGFzaF90YWJsZSk6IFJlbW92ZS4KCShzdHJ1Y3QgZWxmTk5faWE2NF9saW5rX2hhc2hfdGFibGUpOiBDaGFuZ2UgbG9jX2hhc2hfdGFibGUncyB0eXBlCgl0byBodGFiX3QuICBBZGQgbG9jX2hhc2hfbWVtb3J5IGZpZWxkLgoJKGVsZk5OX2lhNjRfbG9jYWxfaGFzaF90YWJsZV9pbml0LCBlbGZOTl9pYTY0X25ld19sb2NfaGFzaF9lbnRyeSk6CglSZW1vdmVkLgoJKGVsZk5OX2lhNjRfbG9jYWxfaHRhYl9oYXNoLCBlbGZOTl9pYTY0X2xvY2FsX2h0YWJfZXEpOiBOZXcKCWZ1bmN0aW9ucy4KCShlbGZOTl9pYTY0X2hhc2hfdGFibGVfY3JlYXRlKTogVXNlIGhhc2h0YWIuaCBoYXNodGFibGUgZm9yCglsb2NfaGFzaF90YWJsZS4gIEluaXRpYWxpemUgbG9jX2hhc2hfbWVtb3J5LgoJKGVsZk5OX2lhNjRfaGFzaF90YWJsZV9mcmVlKTogTmV3IGZ1bmN0aW9uLgoJKGVsZk5OX2lhNjRfbG9jYWxfaGFzaF9sb29rdXApOiBSZW1vdmUuCgkoZWxmTk5faWE2NF9sb2NhbF9keW5fc3ltX3RodW5rKTogQ2hhbmdlIGludG8gaHRhYl90cmF2ZXJzZQoJY2FsbGJhY2suCgkoZWxmTk5faWE2NF9keW5fc3ltX3RyYXZlcnNlKTogVXNlIGh0YWJfdHJhdmVyc2UuCgkoZ2V0X2xvY2FsX3N5bV9oYXNoKTogVXNlIGhhc2h0YWIuaCBoYXNodGFibGUgZm9yIGxvY19oYXNoX3RhYmxlLgoJKGJmZF9lbGZOTl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgoyMDAzLTEwLTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9saW5rX3JlY29yZF9keW5hbWljX3N5bWJvbCk6IE1vZGlmeSB2ZXJzaW9uZWQKCXN5bWJvbCBzdHJpbmcgaW4gcGxhY2UuCgoyMDAzLTEwLTMwICBKaW0gQmxhbmR5ICA8amltYkByZWRoYXQuY29tPgoKCSogY3B1LXJzNjAwMC5jIChyczYwMDBfY29tcGF0aWJsZSk6IENoZWNrIHRoZSBjb3JyZWN0IGFyY2hfaW5mbwoJb2JqZWN0J3MgbWFjaCBmaWVsZDogYWxsIFBvd2VyUEMgbWFjaGluZXMgYXJlIHN1cGVyc2V0cyBvZiB0aGUKCW9yaWdpbmFsIHJzNjAwMCwgYnV0IG5vdCBsYXRlciByczYwMDAgbWFjaGluZXMuCgoyMDAzLTEwLTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZHdhcmYyLmMgKHN0cnVjdCBhdHRyaWJ1dGUpOiBEZWxldGUgInVuc25kIiwgInNuZCIgYW5kICJhZGRyIi4KCUFkZCAidmFsIiBhbmQgInN2YWwiIGZpZWxkcy4KCShEV19TVFJJTkcsIERXX1VOU05ELCBEV19CTE9DSywgRFdfU05ELCBEV19BRERSKTogRGVsZXRlLgoJKHJlYWRfYXR0cmlidXRlX3ZhbHVlKTogRXhwYW5kIGFuZCBhZGp1c3QgRFdfKiBvY2N1cnJlbmNlcy4KCShzY2FuX3VuaXRfZm9yX2Z1bmN0aW9ucywgcGFyc2VfY29tcF91bml0KTogTGlrZXdpc2UuCgoyMDAzLTEwLTMwICBQaGlsIEVkd2FyZHMgIDxwaGlsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcuYmZkIChhcm0tKi12eHdvcmtzKTogIFJlbW92ZSBzZXBhcmF0ZSBzdGFuemE7IG1lcmdlIHdpdGgKCW90aGVyIGNvbW1vbiBFTEYgdHJpcGxlcy4KCShpWzMtN104Ni0qLXZ4d29ya3MpOiAgQ2hhbmdlIHRvIEVMRiBmb3JtYXQuCgkobWlwcyotKi13aW5kaXNzKTogIE5ldyB0cmlwbGUsIGFkZCB0byBjb21tb24gTUlQUy9FTEYgc3RhbnphLgoJKHNoLSotdnh3b3Jrcyk6ICBOZXcgc3RhbnphLgoKMjAwMy0xMC0zMCAgTGFycyBLbm9sbCAgPGxhcnNAdHJvbGx0ZWNoLmNvbT4KCSAgICBNaWNoYWVsIE1hdHogIDxtYXR6QHN1c2UuZGU+CgkgICAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgkgICAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG1lcmdlLmMgKHN0cnVjdCBzZWNfbWVyZ2Vfc2VjX2luZm8pOiBVcGRhdGUgY29tbWVudC4KCShzdHJ1Y3Qgc2VjX21lcmdlX2hhc2hfZW50cnkpOiBSZW1vdmUgZW50c2l6ZS4KCShzZWNfbWVyZ2VfaGFzaF9sb29rdXApOiBPbmx5IGFkanVzdCBhbGlnbm1lbnQgd2hlbiBjcmVhdGluZy4KCShzZWNfbWVyZ2VfZW1pdCk6IFJlbW92ZSByZWdpc3RlciBrZXl3b3JkLgoJKGNtcGxlbmd0aGVudHJ5LCBsYXN0NF9lcSwgbGFzdF9lcSk6IERlbGV0ZS4KCShzdHJyZXZjbXAsIHN0cnJldmNtcF9hbGlnbiwgaXNfc3VmZml4KTogTmV3LgoJKG1lcmdlX3N0cmluZ3MpOiBVc2UgdGhlbSB0byBpbXBsZW1lbnQgZmFzdCBzdWZmaXggbWVyZ2luZy4KCSogZWxmLXN0cnRhYi5jIChzdHJ1Y3QgZWxmX3N0cnRhYl9oYXNoX2VudHJ5KTogVXBkYXRlIGNvbW1lbnRzLgoJTWFrZSAibGVuIiBzaWduZWQuCgkoX2JmZF9lbGZfc3RydGFiX2FkZCk6IExvc2Ugb24gPjJHIHN0cmluZ3MuCgkoX2JmZF9lbGZfc3RydGFiX2VtaXQpOiBEb24ndCBlbWl0IHN0cmluZ3Mgd2l0aCBsZW4gPCAwLgoJKGNtcGxlbmd0aGVudHJ5LCBsYXN0NF9lcSk6IERlbGV0ZS4KCShzdHJyZXZjbXAsIGlzX3N1ZmZpeCk6IE5ldy4KCShfYmZkX2VsZl9zdHJ0YWJfZmluYWxpemUpOiBSZXdvcmsgdG8gaW1wbGVtZW50IGZhc3Qgc3VmZml4IG1lcmdpbmcuCgoyMDAzLTEwLTI5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IE1vdmUgY2hlY2sgZm9yCglTRUNfQUxMT0MuCgoyMDAzLTEwLTI5ICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9wbHQwX2VudHJ5LCBlbGYzMl9hcm1fcGx0X2VudHJ5KTogTmV3Cgljb2RlIHNlcXVlbmNlLgoJKFBMVF9IRUFERVJfU0laRSk6IE5ldy4KCShzdHJ1Y3QgZWxmMzJfYXJtX3BjcmVsX3JlbG9jc19jb3BpZWQpOiBSZW5hbWUgdG8gLi4uCgkoc3RydWN0IGVsZjMyX2FybV9yZWxvY3NfY29waWVkKTogLi4uIHRoaXMuICBDb3VudCBib3RoCglwY3JlbCBhbmQgbm9uLXBjcmVsIHJlbG9jcy4gIEFsbCB1c2VzIHVwZGF0ZWQuCgkoc3RydWN0IGVsZjMyX2FybV9saW5rX2hhc2hfdGFibGUpOiBBZGQgcG9pbnRlcnMgdG8gZHluYW1pYyBsaW5rZXIKCXNlY3Rpb25zIGFuZCBzeW1ib2wvc2VjdGlvbiBtYXBwaW5nIGNhY2hlLgoJKGNyZWF0ZV9nb3Rfc2VjdGlvbik6IE5ldy4KCShlbGYzMl9hcm1fY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgaXQuCgkoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBTdXBwb3J0IGdhcmJhZ2UgY29sbGVjdGlvbiBvZiByZWxvY3MuCgkoZWxmMzJfYXJtX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZjMyX2FybV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGYzMl9hcm1fY29weV9pbmRpcmVjdF9zeW1ib2wpOiBOZXcuCgkoZWxmMzJfYXJtX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0aWFsaXNlIG5ldyBmaWVsZHMuCgkoZWxmMzJfYXJtX2djX3N3ZWVwX2hvb2spOiBJbXBsZW1lbnQuCgkoZWxmMzJfYXJtX2Rpc2NhcmRfY29waWVzKTogRGVsZXRlLgoJKGVsZjMyX2FybV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgbmV3IFBMVCBjb2RlLgoJKGVsZjMyX2FybV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX2Nhbl9yZWZjb3VudCk6IERlZmluZS4KCShlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IFNldCB0byBQTFRfSEVBREVSX1NJWkUuCgoyMDAzLTEwLTI5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKGVsZl9iYWNrZW5kX2dyb2tfcHJzdGF0dXMpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfZ3Jva19wc2luZm8pOiBEZWZpbmUuCgkocHBjNjRfZWxmX2dyb2tfcHJzdGF0dXMsIHBwYzY0X2VsZl9ncm9rX3BzaW5mbyk6IE5ldyBmdW5jdGlvbnMuCgoJKiBlbGYuYyAoX2JmZF9lbGZjb3JlX21ha2VfcHNldWRvc2VjdGlvbik6IEFsbG93IG11bHRpcGxlCglzZWN0aW9ucyB3aXRoIHRoZSBzYW1lIG5hbWUuCgkoZWxmY29yZV9ncm9rX2x3cHN0YXR1cyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfZ3Jva193aW4zMnBzdGF0dXMpOiBMaWtld2lzZS4KCShlbGZjb3JlX2dyb2tfbm90ZSk6IExpa2V3aXNlLgoJKGVsZmNvcmVfZ3Jva19udG9fc3RhdHVzKTogTGlrZXdpc2UuCgkoZWxmY29yZV9ncm9rX250b19ncmVncyk6IExpa2V3aXNlLgoKMjAwMy0xMC0yNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBOZXZlciBza2lwIGR5bmFtaWMKCW9iamVjdHMuCgoyMDAzLTEwLTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IEluaXRpYWxpemUgZ2xvYmFsX2dvdG5vLgoKMjAwMy0xMC0yNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IExvb2sgdXAKCWhhc2ggdGFibGUgZm9yIHJlYWwgc3ltYm9scy4KCjIwMDMtMTAtMjMgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogc2VjdGlvbi5jIChhc2VjdGlvbik6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAzLTEwLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKGdldF90bHNfbWFzayk6IEFkZCB0b2Nfc3ltbmR4IHBhcmFtLCBzYXZlIHRvYwoJcmVsb2Mgc3ltYm9sIGluZGV4IHRvIGl0LiAgRG9uJ3QgYWxsb3cgZ2Qgc3ltcyBpbiBzaGFyZWQgbGlicwoJdG8gYmUgb3B0aW1pemVkLgoJKHBwYzY0X2VsZl90bHNfb3B0aW1pemUpOiBBZGp1c3QgZ2V0X3Rsc19tYXNrIGNhbGwuCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENoZWNrIHRoYXQgdGxzIHJlbG9jcyBhcmUgb25seSB1c2VkCgl3aXRoIHRscyBzeW1zLCBhbmQgc2ltaWxhcmx5IGZvciBub24tdGxzLiAgQ29ycmVjdCBzeW1ib2wgdXNlZAoJd2hlbiBvcHRpbWl6aW5nIHRvYyB0bHMgY29kZS4KCjIwMDMtMTAtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwZWljb2RlLmggKGNvZmZfc3dhcF9zY25oZHJfaW4pOiBPbmx5IHJlbW92ZSBwYWRkaW5nIHdoZW4KCXByb2Nlc3NpbmcgYW4gZXhlY3V0YWJsZS4KCjIwMDMtMTAtMjIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9leHBvcnRfc3ltYm9sKTogQWRqdXN0IGZvciBnbG9iYWxzIGFuZCBsb2NhbHMKCWZpZWxkIGNoYW5nZXMuCgkoX2JmZF9lbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChzaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDMtMTAtMjEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPiwKCSAgICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX3NoNGEsIGJmZF9tYWNoX3NoNGFsX2RzcCwgYmZkX21hY2hfc2g0X25vZnB1LAoJYmZkX21hY2hfc2g0YV9ub2ZwdSk6IE5ldyBtYWNoaW5lIHR5cGVzLgoJKiBiZmQtaW4yLmg6IFJlYnVpbHQuCgkqIGNwdS1zaC5jIChjb21wYXRpYmxlKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCShTSDRBX05FWFQsIFNINEFMX0RTUF9ORVhULCBTSDRfTk9GUFVfTkVYVCwgU0g0QV9OT0ZQVV9ORVhUKTogTmV3LgoJKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgc2g0YSwgc2g0YWxfZHNwLCBzaDQtbm9mcHUgYW5kIHNoNGEtbm9mcHUuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogSGFuZGxlIHRoZW0uCgoyMDAzLTEwLTIxICBXb3V0ZXIgdmFuIEhleXN0IDx3b3V0ZXJAdmlkaWNvZGUubmw+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBDb3JyZWN0IHRleHQKCWRlc2NyaWJpbmcgbWlzbWF0Y2hlZCBmb3JtYXRzIGludm9sdmluZyB0aGUgTWF2ZXJpY2sgRlAgdHlwZS4KCjIwMDMtMTAtMjEgIEFuaWwgUGFyYW5qcGUgIDxhbmlscDFAS1BJVEN1bW1pbnMuY29tPgoKCSogYmluYXJ5LmMgKGJpbmFyeV9vYmplY3RfcCk6IFBhc3MgbWFjaGluZSBmbGFnIGFsb25nIHdpdGgKCWFyY2hpdGVjdHVyZS4KCjIwMDMtMTAtMjEgIFRob3JzdGVuIEJyZWhtICA8YnJlaG1AZ214Lm5ldD4KCgkqIGFyY2h1cmVzLmMgKGJmZF9kZWZhdWx0X3NjYW4pOiBBZGQgc3VwcG9ydCBmb3IgbWNmNTI4eC4KCSogaWVlZS5jIChpZWVlX3dyaXRlX3Byb2Nlc3Nvcik6IExpa2V3aXNlLgoKMjAwMy0xMC0yMSAgUGV0ZXIgQmFyYWRhICA8cGJhcmFkYUBtYWlsLndtLnNwcy5tb3QuY29tPgoJICAgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIGFyY2h1cmVzLmM6IEFkZCBNQ0Y1Mjh4IChNQ0Z2NCkgc3VwcG9ydC4KCSogYmZkL2NwdS1tNjhrLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0xMC0yMCAgQW5kcmV3IENhZ25leSAgPGNhZ25leUByZWRoYXQuY29tPgoKCSogdGFyZ2V0cy5jOiBSZXBsYWNlICJzdHJ1Y3Qgc2VjIiB3aXRoICJzdHJ1Y3QgYmZkX3NlY3Rpb24iCgkqIHN5bXMuYywgc3BhcmNseW54LmMsIHNlY3Rpb24uYywgb3BuY2xzLmM6IERpdHRvLgoJKiBsaWJjb2ZmLWluLmgsIGxpYmJmZC1pbi5oLCBlbGZ4eC10YXJnZXQuaDogRGl0dG8uCgkqIGVsZi5jLCBjb2ZmZ2VuLmMsIGJmZC5jLCBiZmQtaW4uaCwgYW91dGYxLmg6IERpdHRvLgoJKiBhb3V0LXRpYzMwLmMsIGFvdXQtdGFyZ2V0Lmg6CgkqIGJmZC1pbjIuaCwgbGliY29mZi5oLCBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMTAtMTggIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCglTdXBwb3J0IGxpbmtlciByZWxheGF0aW9uIG9mIG5ldyBSX01NSVhfUFVTSEpfU1RVQkJBQkxFIHJlbG9jcy4KCSogZWxmNjQtbW1peC5jIChNQVhfUFVTSEpfU1RVQl9TSVpFKTogTmV3IG1hY3JvLgoJKHN0cnVjdCBfbW1peF9lbGZfc2VjdGlvbl9kYXRhKTogTmV3IG1lbWJlciBwanMuCgkobW1peF9zZXRfcmVsYXhhYmxlX3NpemUsIG1taXhfZWxmX2dldF9zZWN0aW9uX2NvbnRlbnRzKTogTmV3CglmdW5jdGlvbnMuCgkoZWxmX21taXhfaG93dG9fdGFibGUpOiBOZXcgZW50cnkgZm9yIFJfTU1JWF9QVVNISl9TVFVCQkFCTEUuCgkobW1peF9yZWxvY19tYXApOiBEaXR0by4KCShtbWl4X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIFJfTU1JWF9QVVNISl9TVFVCQkFCTEUuCgkobW1peF9maW5hbF9saW5rX3JlbG9jYXRlLCBtbWl4X2VsZl9jaGVja19jb21tb25fcmVsb2NzKTogRGl0dG8uCgkobW1peF9lbGZfcGVyZm9ybV9yZWxvY2F0aW9uKTogRGl0dG8uICBEb24ndCBtYXJrIHBhcmFtZXRlciBhZGRyCgl1bnVzZWQuCgkobW1peF9lbGZfY2hlY2tfcmVsb2NzKTogTW92ZSBlYXJseSByZXR1cm4gdG8gYWZ0ZXIKCW1taXhfZWxmX2NoZWNrX2NvbW1vbl9yZWxvY3MgY2FsbC4KCShtbWl4X2VsZl9zeW1ib2xfcHJvY2Vzc2luZyk6IEZpeCBjdXQtYW5kLXBhc3RvIGluIGhlYWQgY29tbWVudC4KCShfYmZkX21taXhfYmVmb3JlX2xpbmtlcl9hbGxvY2F0aW9uKTogUmVuYW1lIGZyb20KCV9iZmRfbW1peF9wcmVwYXJlX2xpbmtlcl9hbGxvY2F0ZWRfZ3JlZ3MuICBBbGwgcmVmZXJlcnMgY2hhbmdlZC4KCUFycmFuZ2UgdG8gc2V0IHRoZSBpbml0aWFsIHJlbGF4YWJsZSBzaXplIG9mIHNlY3Rpb25zLgoJKF9iZmRfbW1peF9hZnRlcl9saW5rZXJfYWxsb2NhdGlvbik6IFJlbmFtZSBmcm9tCglfYmZkX21taXhfZmluYWxpemVfbGlua2VyX2FsbG9jYXRlZF9ncmVncy4KCShtbWl4X2VsZl9yZWxheF9zZWN0aW9uKTogUmVsYXggYSBSX01NSVhfUFVTSEpfU1RVQkJBQkxFIHJlbG9jLgoJKGJmZF9lbGY2NF9nZXRfc2VjdGlvbl9jb250ZW50cyk6IERlZmluZS4KCSogcmVsb2MuYzogQWRkIEVOVU1YIGZvciBCRkRfUkVMT0NfTU1JWF9QVVNISl9TVFVCQkFCTEUuCgkqIGxpYmJmZC5oLCBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoJKiByZWxvYy5jIChiZmRfZ2VuZXJpY19yZWxheF9zZWN0aW9uKTogRGVmYXVsdC1zZXQKCXNlY3Rpb24tPl9jb29rZWRfc2l6ZSBoZXJlLgoJKGJmZF9nZW5lcmljX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IERvbid0IHNldCBpdCBoZXJlLgoJRXhwbGFpbiB3aHkuCgoyMDAzLTEwLTE3ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBTa2lwIHJlbG9jYXRpb24gaWYKCW91dHB1dCBzZWN0aW9uIGhhcyBiZWVuIGRpc2NhcmRlZC4KCjIwMDMtMTAtMTcgIFNocmluaXZhcyBBdHJlICA8c2hyaW5pdmFzYUBLUElUQ3VtbWlucy5jb20+CgoJKiBjb2ZmLWg4MzAwLmMgKGZ1bmN2ZWNfaGFzaF9uZXdmdW5jKTogSGFuZGxlIG5vcm1hbCBtb2RlLgoJKGg4MzAwX3JlbG9jMTZfZXh0cmFfY2FzZXMpOiBMaWtld2lzZS4KCShoODMwMF9iZmRfbGlua19hZGRfc3ltYm9scyk6IExpa2V3aXNlLgoKMjAwMy0xMC0xNyBEaGFuYW5qYXkgRGVzaHBhbmRlIDxkaGFuYW5qYXlkQGtwaXRjdW1taW5zLmNvbT4KCgkqIGNwdS1oODMwMC5jIChoODMwMHN4bl9pbmZvX3N0cnVjdCk6IENvcnJlY3QgYWRkcmVzcyBzaXplLgoJKGg4MzAwc25faW5mb19zdHJ1Y3QpOiBMaWtld2lzZS4KCShoODMwMGhuX2luZm9fc3RydWN0KTogTGlrZXdpc2UuCgoyMDAzLTEwLTE2ICBQYXZlbCBSb3NraW4gIDxwcm9za2lAZ251Lm9yZz4KCgkqIHBlWFhpZ2VuLmMgKF9iZmRfWFhpX3N3YXBfYW91dGhkcl9vdXQpOiBEb24ndCBjYWxjdWxhdGUgaW1hZ2Ugc2l6ZQoJZm9yIHNlY3Rpb25zIHdoaWNoIGxhY2sgc2l6ZSBpbmZvLgoKMjAwMy0xMC0xNyAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvbmZpZ3VyZS5ob3N0OiBBZGQgX19VU0VfTUlOR1dfRlNFRUsgdG8gSERFRklORVMgZm9yCgkgbWluZ3czMi4KCjIwMDMtMTAtMTYgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuaCAoTkFNRShiZmRfZWxmLHNpemVfZHluYW1pY19zZWN0aW9ucykpOiBBbHNvIHdhcm4KCXVuZGVmaW5lZCBwYXR0ZXJucyB3aXRoICcqJy4KCjIwMDMtMTAtMTYgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBEb24ndAoJdXNlIHRoZSBsYXN0IENJRSBmcm9tIGEgZGlmZmVyZW50IHNlY3Rpb24uCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZSk6IERvbid0IHBhZCBiZXlvbmQgdGhlIHJhdwoJc2l6ZSBvZiB0aGUgb3V0cHV0IHNlY3Rpb24uCgoyMDAzLTEwLTA3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX21ha2Vfc2VjdGlvbl9mcm9tX3BoZHIpOiBTZXQgYWxpZ25tZW50X3Bvd2VyIG9mCgluZXcgc2VjdGlvbiBmcm9tIHBfYWxpZ24gaGVhZGVyIGZpZWxkLgoKMjAwMy0xMC0xNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmMzIteHRlbnNhLmMgKHh0ZW5zYV9yZWFkX3RhYmxlX2VudHJpZXMpOiBUaGUgZXh0ZXJuYWwgc2l6ZQoJb2YgZW50cnkgaXMgOCBieXRlcy4KCjIwMDMtMTAtMTUgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAcmVkaGF0LmNvbT4KCgkqIHRhcmdldHMuYyAoQkZEX0pVTVBfVEFCTEVfU1lNQk9MUyk6IFJlcGxhY2UgTkFNRSMjX2dldF9zeW10YWIKCXdpdGggTkFNRSMjX2Nhbm9uaWNhbGl6ZV9zeW10YWIuCgkqIGxpYmNvZmYtaW4uaCAoY29mZl9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiB4c3ltLmggKGJmZF9zeW1fY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogZWxmLWJmZC5oIChfYmZkX2VsZl9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBjb2ZmZ2VuLmMgKGNvZmZfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogbGliYmZkLWluLmggKF9iZmRfbm9zeW1ib2xzX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIGxpYm5sbS5oIChubG1OQU1FKGNhbm9uaWNhbGl6ZV9zeW10YWIpKTogVXBkYXRlLgoJKiBpZWVlLmMgKGllZWVfdmVjKTogVXBkYXRlIGNvbW1lbnQuCgkqIGxpYmVjb2ZmLmggKF9iZmRfZWNvZmZfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogbW1vLmMgKG1tb19jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBubG0tdGFyZ2V0LmggKG5sbV9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBubG1jb2RlLmggKG5sbV9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBpMzg2bXNkb3MuYyAobXNkb3NfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogaHAzMDBocHV4LmMgKE1ZIChjYW5vbmljYWxpemVfc3ltdGFiKSk6IFVwZGF0ZS4KCSogb2FzeXMuYyAob2FzeXNfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogc29tLmMgKHNvbV9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBwZWYuYyAoYmZkX3BlZl9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBubG1jb2RlLmggKG5sbV9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiB4c3ltLmMgKGJmZF9zeW1fY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogdm1zLmMgKHZtc19jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiB2ZXJzYWRvcy5jICh2ZXJzYWRvc19jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBtYWNoLW8uYyAoYmZkX21hY2hfb19jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBpZWVlLmMgKGllZWVfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogcGRwMTEuYyAoTkFNRShhb3V0LGNhbm9uaWNhbGl6ZV9zeW10YWIpKTogVXBkYXRlLgoJKiByZWxvYy5jOiBVcGRhdGUgY29tbWVudC4KCSogbGliYW91dC5oIChOQU1FKGFvdXQsY2Fub25pY2FsaXplX3N5bXRhYikpOiBVcGRhdGUuCgkqIGNvZmY2NC1yczYwMDAuYyAoYWl4NWNvZmY2NF92ZWMpOiBVcGRhdGUuCgkqIGNvZmY2NC1yczYwMDAuYyAoYmZkX3hjb2ZmX2FpeDVfYmFja2VuZF9kYXRhKTogVXBkYXRlLgoJKiBjb2ZmLXJzNjAwMC5jIChyczYwMDBjb2ZmX3ZlYywgcG1hY194Y29mZl92ZWMpOiBVcGRhdGUuCgkqIGFvdXR4LmggKE5BTUUoYW91dCxjYW5vbmljYWxpemVfc3ltdGFiKSk6IFVwZGF0ZS4KCSogZWxmeHgtdGFyZ2V0LmggKGJmZF9lbGZOTl9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBocDMwMGhwdXguYyAoTVlfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogZWNvZmYuYyAoX2JmZF9lY29mZl9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBhb3V0LXRpYzMwLmMgKE1ZX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIGFvdXQtdGFyZ2V0LmggKE1ZX2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIHBwY2Jvb3QuYyAocHBjYm9vdF9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBlbGYuYyAoX2JmZF9lbGZfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogZWxmY29kZS5oIChlbGZfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogaWhleC5jIChpaGV4X2Nhbm9uaWNhbGl6ZV9zeW10YWIpOiBVcGRhdGUuCgkqIHRla2hleC5jICh0ZWtoZXhfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCSogYmluYXJ5LmMgKGJpbmFyeV9jYW5vbmljYWxpemVfc3ltdGFiKTogVXBkYXRlLgoJKiBzcmVjLmMgKHNyZWNfY2Fub25pY2FsaXplX3N5bXRhYik6IFVwZGF0ZS4KCjIwMDMtMTAtMTUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBlbGYzMi1oODMwMC5jIChlbGZfcmVsb2NfbWFwKTogRml4IGEgY29tbWVudCB0eXBvLgoKMjAwMy0xMC0xNSAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSBSX1NIX0lNTV8qX1BDUkVMCglyZWxvY2F0aW9ucy4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1zaDY0LmMgKGVsZl9iYWNrZW5kX21lcmdlX3N5bWJvbF9hdHRyaWJ1dGUpOiBEZWZpbmUuCgkoc2g2NF9lbGZfbWVyZ2Vfc3ltYm9sX2F0dHJpYnV0ZSk6IE5ldy4KCSogZWxmNjQtc2g2NC5jIChlbGZfYmFja2VuZF9tZXJnZV9zeW1ib2xfYXR0cmlidXRlKTogRGVmaW5lLgoJKHNoNjRfZWxmNjRfbWVyZ2Vfc3ltYm9sX2F0dHJpYnV0ZSk6IE5ldy4KCjIwMDMtMTAtMTQgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IE5ldyBmdW5jdGlvbiBwb2ludGVyIG1lbWJlcgoJZWxmX2JhY2tlbmRfbWVyZ2Vfc3ltYm9sX2F0dHJpYnV0ZS4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBBZGp1c3QgY2FsbCB0bwoJZWxmX2JhY2tlbmRfbWVyZ2Vfc3ltYm9sX2F0dHJpYnV0ZSBpZiB0aGUgYmFja2VuZCBkZWZpbmVkIGl0LgoJKiBlbGZ4eC10YXJnZXQuaCAoZWxmX2JhY2tlbmRfbWVyZ2Vfc3ltYm9sX2F0dHJpYnV0ZSk6IE5ldyBtYWNyby4KCShlbGZOTl9iZWQpOiBBZGQgdGhhdCB0byB0aGUgaW5pdGlhbGl6ZXIuCgoyMDAzLTEwLTE0ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZWxmMzIteHRlbnNhLmMgKGdldF9pc19saW5rb25jZV9zZWN0aW9uKTogRGVsZXRlLgoJKHh0ZW5zYV9pc19wcm9wZXJ0eV9zZWN0aW9uLCB4dGVuc2FfaXNfbGl0dGFibGVfc2VjdGlvbik6IFVzZQoJWFRFTlNBX0lOU05fU0VDX05BTUUgYW5kIFhURU5TQV9MSVRfU0VDX05BTUUgbWFjcm9zLiAgRG8gbm90IHJlY29nbml6ZQoJbGlua29uY2Ugc2VjdGlvbnMgY29udGFpbmluZyAiLnh0Lmluc24iIGFuZCAiLnh0LmxpdCIgc3Vic3RyaW5ncy4KCSh4dGVuc2FfZ2V0X3Byb3BlcnR5X3NlY3Rpb25fbmFtZSk6IENoZWNrIHNlY3Rpb24gbmFtZSBpbnN0ZWFkIG9mCgljYWxsaW5nIGdldF9pc19saW5rb25jZV9zZWN0aW9uLiAgUmVtb3ZlIHVudXNlZCBiZmQgcGFyYW1ldGVyLiAgVXNlCglYVEVOU0FfSU5TTl9TRUNfTkFNRSBhbmQgWFRFTlNBX0xJVF9TRUNfTkFNRSBtYWNyb3MuICBOZXZlciBnZW5lcmF0ZQoJbGlua29uY2Ugc2VjdGlvbiBuYW1lcyBieSBhcHBlbmRpbmcgIi54dC5pbnNuIiBvciAiLnh0LmxpdCIuCgkoeHRlbnNhX3JlYWRfdGFibGVfZW50cmllcyk6IFJlbW92ZSBiZmQgYXJndW1lbnQgaW4gY2FsbCB0bwoJeHRlbnNhX2dldF9wcm9wZXJ0eV9zZWN0aW9uX25hbWUuICBGcmVlIHNlY3Rpb24gbmFtZSB3aGVuIGRvbmUuCgkoZWxmX3h0ZW5zYV9jb21iaW5lX3Byb3BfZW50cmllcyk6IEZyZWUgbGVha2luZyB0YWJsZS4KCjIwMDMtMTAtMTMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaHQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGFkZAoJRFRfTUlQU19MSUJMSVNUIG9yIERUX01JUFNfQ09ORkxJQ1QgZW50cmllcy4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IERvbid0IGhhbmRsZSB0aGVtLiAgRG9uJ3QKCWhhbmRsZSBEVF9NSVBTX01TWU0uICBTZXQgRFRfUkVMU1ogYmFzZWQgb24gdGhlIG51bWJlciBvZiByZWxvY2F0aW9ucwoJdGhhdCB3ZXJlIG5lZWRlZC4KCShfYmZkX21pcHNfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IEZpeCBwbGFjZW1lbnQgb2YgUFRfTUlQU19PUFRJT05TLgoJKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IElnbm9yZSBFRl9NSVBTX1VDT0RFLgoKMjAwMy0xMC0xMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogYmZkLWluLmggKGJmZF9lbGYzMl9pYTY0X2FmdGVyX3BhcnNlKTogTmV3IHByb3RvdHlwZS4KCShiZmRfZWxmNjRfaWE2NF9hZnRlcl9wYXJzZSk6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoKCSogZWxmeHgtaWE2NC5jIChvb3JfaXApOiBOZXcuCgkob29yX2JyYW5jaF9zaXplKTogTGlrZXdpc2UuCgkoYmZkX2VsZk5OX2lhNjRfYWZ0ZXJfcGFyc2UpOiBMaWtld2lzZS4KCShlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBVc2Ugb29yX2lwIGlmIG9vcl9icmFuY2hfc2l6ZQoJZXF1YWxzIHNpemVvZiAob29yX2lwKS4KCjIwMDMtMTAtMTIgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogVGlkeSB1cCBmb3IgdGhlCglyZW51bWJlcmluZyBvZiBzb21lIHJlbG9jYXRpb24gbnVtYmVycy4KCjIwMDMtMTAtMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmLXNoLmM6IE1vdmUgZGVmaW5pdGlvbiBvZiBNQVAgYW5kIGd1YXJkIG1vcmUgY29kZSB3aXRoCglDT0ZGX0lNQUdFX1dJVEhfUEUuCgoJKiBzZWN0aW9uLmMgKGJmZF9nZXRfc2VjdGlvbl9zaXplX2JlZm9yZV9yZWxvYyk6IElnbm9yZSByZWxvY19kb25lLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTEwLTEwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IExpa2V3aXNlLgoKMjAwMy0xMC0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29mZmxpbmsuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIi4KCShjb2ZmX2xpbmtfYWRkX3N5bWJvbHMpOiBVc2UgSVNESUdJVCBpbnN0ZWFkIG9mIGlzZGlnaXQuCgoyMDAzLTEwLTA4ICBEYXZlIEJyb2xsZXkgIDxicm9sbGV5QHJlZGhhdC5jb20+CglPbiBiZWhhbGYgb2YgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jOiBBZGQgRlJWIGZyNTUwIG1hY2hpbmUuCgkqIGNwdS1mcnYuYzogRGl0dG8uCgkqIGVsZjMyLWZydi5jOiBEaXR0by4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0xMC0wOCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYyAoU1RVQl9NT1ZFLFNUVUJfTEkxNik6IEZpeCBzdHViIGNvZGUKCWZvciBub24tU0dJIE42NCBBQkkuIEltcHJvdmUgY29kZSBjb25zaXRlbmN5LgoKMjAwMy0xMC0wNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1mcnYuYyAoZWxmMzJfZnJ2X2hvd3RvX3RhYmxlKTogU2V0IFJfRlJWX0xBQkVMMTYncwoJcmlnaHRzaGlmdCB0byAyLgoKMjAwMy0xMC0wNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxpYmJmZC1pbi5oIChfYmZkX2xpbmtfc2VjdGlvbl9zdGFicyk6IEFkZCBzdHJpbmcgb2Zmc2V0CglwYXJhbWV0ZXIuCgkqIGNvZmZsaW5rLmMgKGNvZmZfbGlua19hZGRfc3ltYm9scyk6IERlYWwgd2l0aCBzcGxpdCBzdGFiCglzZWN0aW9ucy4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBEZWFsIHdpdGggc3BsaXQgc3RhYgoJc2VjdGlvbnMuCgkqIHN0YWJzLmMgKF9iZmRfbGlua19zZWN0aW9uX3N0YWJzKTogQWRkIHN0cmluZyBvZmZzZXQgcGFyYW1ldGVyLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZWQuCgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hbGlnbm1lbnRfaG9vayk6IFdpdGggUEVfQ09GRiByZWxvYwoJb3ZlcmZsb3csIHNldCByZWxvYyBzdGFydCBwb3NpdGlvbiB0byBhZnRlciB0aGUgY291bnQKCXJlbG9jLiBTdWJ0cmFjdCBvbmUgZnJvbSBudW0gcmVsb2NzLiBHaXZlIGVycm9yIG9uIDB4ZmZmZiByZWxvY3MKCWFuZCBubyBvdmVyZmxvdy4KCSogY29mZmxpbmsuYyAoX2JmZF9jb2ZmX2ZpbmFsX2xpbmspOiBEZWFsIHdpdGggUEVfQ09GRiByZWxvYwoJb3ZlcmZsb3cuCgkqIHBlWFhpZ2VuLmMgKF9iZmRfWFhpX3N3YXBfc2NuaGRyX291dCk6IERvIG92ZXJmbG93IGlmID49CgkweGZmZmYuCgoyMDAzLTEwLTA2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZSk6IFBhZCB0aGUKCWxhc3QgQ0lFL0ZERSBpZiBuZWVkZWQuCgoyMDAzLTEwLTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogdGFyZ2V0cy5jIChfYmZkX3RhcmdldF92ZWN0b3IpOiBJbmNsdWRlIGJmZF9lbGY2NF9zcGFyY192ZWMgaWYKCUJGRDY0IGlzIGVuYWJsZWQuCgoyMDAzLTEwLTA2ICBNYXR0IFRob21hcyA8bWF0dEAzYW0tc29mdHdhcmUuY29tPgoKCSogY29uZmlnLmJmZDogTW92ZSB0aGUgaHBwYSotKi1uZXRic2QqIGNhc2UgdG8gdGhlIGhwcGEqLSotbGludXgqIGNhc2UuCgoyMDAzLTEwLTA2ICBSb2JlcnQgTWlsbGFuICA8cm9iZXJ0bWhAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogTWF0Y2ggR05VL0tOZXRCU0Qgd2l0aCBuZXcga25ldGJzZCotZ251IHRyaXBsZXQuCgkqIGNvbmZpZy5iZmQ6IExpa2V3aXNlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTEwLTA0ICBDaHJpc3RpYW4gR3JvZXNzbGVyICA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGNvZmYtejhrLmMgKGV4dHJhX2Nhc2UpOiBGaXggZGlzcGxhY2VtZW50IGxlbmd0aCBjaGVjayBmb3IgUl9KUgoJYW5kIFJfQ0FMTFIuCgoyMDAzLTEwLTA0ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMXguYzogVXBkYXRlIHRvIElTTyBDOTA7IHJlcGxhY2UgUFRSIHdpdGggdm9pZCouCgkqIGVsZjMyLW02OGhjMTEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMTIuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMXguaDogTGlrZXdpc2UuCgoyMDAzLTEwLTA0ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMXguYyAoX2JmZF9tNjhoYzExX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogRml4IG1lcmdlCglvZiBmbGFncyBiZXR3ZWVuIEhDMTIgYW5kIEhDUzEyLgoKMjAwMy0xMC0wNCAgQnJ5Y2UgTWNLaW5sYXkgIDxicnljZUBtY2tpbmxheS5uZXQubno+CgoJKiBtZXJnZS5jIChfYmZkX21lcmdlX3NlY3Rpb25zKTogU2V0IFNFQ19FWENMVURFIGZsYWcgb24gc2VjdGlvbnMKCXdoaWNoIGJlY29tZSBlbXB0eSBhZnRlciBtZXJnaW5nLgoKMjAwMy0wOS0zMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGlhNjRfaG93dG9fdGFibGUpOiBGaXggc2l6ZSBvZiBSX0lBNjRfVFBSRUw2NFtMTV1TQiwKCVJfSUE2NF9EVFBSRUx7MzIsNjR9W0xNXVNCIGFuZCBSX0lBNjRfRFRQTU9ENjRbTE1dU0IuCgoyMDAzLTA5LTMwICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfbWlwc2lzYTY0cjIpOiBOZXcgZGVmaW5lLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGFvdXR4LmggKE5BTUUoYW91dCxtYWNoaW5lX3R5cGUpKTogSGFuZGxlIGJmZF9tYWNoX21pcHNpc2E2NHIyLgoJKiBjcHUtbWlwcy5jIChJX21pcHNpc2E2NHIyKTogTmV3IGVudW0gdmFsdWUuCgkoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZCBlbnRyeSBmb3IgSV9taXBzaXNhNjRyMi4KCSogZWxmeHgtbWlwcy5jIChfYmZkX2VsZl9taXBzX21hY2gpCgkoX2JmZF9taXBzX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogSGFuZGxlIEVfTUlQU19BUkNIXzY0UjIuCgkobWlwc19zZXRfaXNhX2ZsYWdzKTogQWRkIGJmZF9tYWNoX21pcHNpc2E2NHIyIGNhc2UuCgkobWlwc19tYWNoX2V4dGVuc2lvbnMpOiBBZGQgZW50cnkgZm9yIGJmZF9tYWNoX21pcHNpc2E2NHIyLgoKMjAwMy0wOS0yOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9ocHV4X2JhY2tlbmRfc3ltYm9sX3Byb2Nlc3NpbmcpOiBOZXcuCglIYW5kbGUgU0hOX0lBXzY0X0FOU0lfQ09NTU9OLgoJKGVsZl9iYWNrZW5kX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbik6IERlZmluZWQuCgoyMDAzLTA5LTI2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmMgKGVsZl9saW5rX3JlYWRfcmVsb2NzX2Zyb21fc2VjdGlvbik6IEFkZCBhbiBhcmd1bWVudAoJb2YgYSBwb2ludGVyIHRvIHNlY3Rpb24uIENoZWNrIGJhZCBzeW1ib2wgaW5kZXguCgkoX2JmZF9lbGZfbGlua19yZWFkX3JlbG9jcyk6IE1vZGlmeSBjYWxscyB0bwoJZWxmX2xpbmtfcmVhZF9yZWxvY3NfZnJvbV9zZWN0aW9uLgoKMjAwMy0wOS0yMyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfaG93dG9fdGFibGUpOiBSX1NIX1NXSVRDSDgsCglSX1NIX0dOVV9WVElOSEVSSVQsIFJfU0hfR05VX1ZURU5UUlksCglSX1NIX0xPT1BfU1RBUlQsUl9TSF9MT09QX0VORCBtb3ZlZCB0byAicmVzZXJ2ZWQiIHNwYWNlcywKCVJfU0hfRElSMTYsIFJfU0hfRElSOCwgUl9TSF9ESVI4VUwsIFJfU0hfRElSOFVXLCBSX1NIX0RJUjhVLAoJUl9TSF9ESVI4U1csIFJfU0hfRElSOFMsIFJfU0hfRElSNFVMLCBSX1NIX0RJUjRVVywgUl9TSF9ESVI0VSwKCVJfU0hfUFNIQSwgUl9TSF9QU0hMIGFkZGVkLgoJKHNoX3JlbG9jX21hcCk6IEFkZCBSX1NIX0RJUjE2IGFuZCBSX1NIX0RJUjguCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBTdXBwb3J0IG5ldyByZWxvY3MuCgoyMDAzLTA5LTIzICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZWxmMzIteHRlbnNhLmMgKGVsZl94dGVuc2FfcmVsb2NhdGVfc2VjdGlvbik6IEZpeCB0eXBvIHRoYXQgY2xvYmJlcmVkCglkeW5hbWljIHJlbG9jYXRpb24gb2Zmc2V0cy4KCjIwMDMtMDktMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzaW1wbGUuYyAoYmZkX3NpbXBsZV9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBGcmVlIHRoZQoJaGFzaCB0YWJsZSB1c2luZyBfYmZkX2dlbmVyaWNfbGlua19oYXNoX3RhYmxlX2ZyZWUuCgoyMDAzLTA5LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgYmZkX2VsZl9zcGVjaWFsX3NlY3Rpb24pOiBSZW1vdmUgInN1ZmZpeCIuICBDaGFuZ2UKCXR5cGUgb2YgcHJlZml4X2xlbmd0aCBhbmQgc3VmZml4X2xlbmd0aCB0byBpbnQuICBSZW5hbWUgImF0dHJpYnV0ZXMiCgl0byAiYXR0ciIuICBDb21tZW50LgoJKF9iZmRfZWxmX2dldF9zZWNfdHlwZV9hdHRyKTogVXBkYXRlIHByb3RvdHlwZS4KCSogZWxmLmMgKGdldF9zcGVjaWFsX3NlY3Rpb24pOiBSZXdyaXRlLgoJKF9iZmRfZWxmX2dldF9zZWNfdHlwZV9hdHRyKTogUmV0dXJuIHN0cnVjdCByYXRoZXIgdGhhbiBwYXNzaW5nIGluCglhdHRyIGFuZCB0eXBlIHBvaW50ZXJzLgoJKF9iZmRfZWxmX25ld19zZWN0aW9uX2hvb2spOiBBZGp1c3QgZm9yIGFib3ZlLgoJKHNwZWNpYWxfc2VjdGlvbnMpOiBNZXJnZSBzdWZmaXggd2l0aCBwcmVmaXguICBTZXQKCXByZWZpeF9sZW5ndGggZm9yIGFsbCBlbnRyaWVzLiAgU2V0IHN1ZmZpeF9sZW5ndGggYXBwcm9wcmlhdGVseS4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMTEuYyAoZWxmMzJfbTY4aGMxMV9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMTIuYyAoZWxmMzJfbTY4aGMxMl9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmMgKG1jb3JlX2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzIteHRlbnNhLmMgKGVsZl94dGVuc2Ffc3BlY2lhbF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfc3BlY2lhbF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfc3BlY2lhbF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTGlrZXdpc2UuICBGaXggLnBsdCBmbGFncy4KCjIwMDMtMDktMjEgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfY3JlYXRlX2dvdF9zZWN0aW9uKTogSW5pdGlhbGl6ZQoJLT5nb3QgaWYgdGhlIHNlY3Rpb24gYWxyZWFkeSBleGlzdHMuCgoyMDAzLTA5LTE5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZHdhcmYyLmMgKGRlY29kZV9saW5lX2luZm8pOiBDb3BlIHdpdGggYW4gaW5pdGlhbGx5IGVtcHR5CglmaWxlbmFtZSB0YWJsZS4KCjIwMDMtMDktMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGFjaW5jbHVkZS5tNDogSW5jbHVkZSAuLi9jb25maWcvYWNjcm9zcy5tNC4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZWQuCgoJKiBjb25maWd1cmUuaG9zdCAoSE9TVF82NEJJVF9UWVBFKTogUmVtb3ZlIGlmIGl0IGlzIHNldCB0byBsb25nCglvciBsb25nIGxvbmcuCgkoSE9TVF9VXzY0QklUX1RZUEUpOiBSZW1vdmUgaWYgaXQgaXMgc2V0IHRvIHVuc2lnbmVkIGxvbmcgbG9uZy4KCShob3N0NjQpOiBSZW1vdmUgaWYgSE9TVF82NEJJVF9UWVBFIGlzIHNldCB0byBsb25nLgoKCSogY29uZmlndXJlLmluIChIT1NUXzY0QklUX1RZUEUpOiBTZXQgYWNjb3JkaW5nIHRvIHRoZSBzaXplIG9mCglsb25nIGFuZCBsb25nIGxvbmcuCgkoSE9TVF9VXzY0QklUX1RZUEUpOiBMaWtld2lzZS4KCShob3N0NjQpOiBMaWtld2lzZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDMtMDktMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoZWxmY29yZV93cml0ZV9ub3RlKTogRG9uJ3QgdXNlIHNpemVvZihFbGZfRXh0ZXJuYWxfbm90ZSkKCXNpbmNlIHNvbWUgQUJJcyByb3VuZCB1cCB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0LgoKMjAwMy0wOS0xOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9tZXJnZV9zeW1ib2wpOiBBbGxvdyB0eXBlIGNoYW5nZSBpZgoJdGhlIG9sZCBzeW1ib2wgaXMgdW5kZWZpbmVkIGFuZCB0aGUgbmV3IHN5bWJvbCBpcyBkZWZpbmVkLgoKMjAwMy0wOS0xOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIHNpbXBsZS5jIChiZmRfc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IFVzZQoJX2JmZF9nZW5lcmljX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUgaW5zdGVhZCBvZgoJYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUuCgoyMDAzLTA5LTEwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfc3BlY2lhbF9zZWN0aW9ucyk6IE1hcmsgYWxsIHNlY3Rpb25zCglzdGFydGVkIHdpdGggIi5zYnNzIiBvciAiIi5zZGF0YSIgYXMgU0hGX0lBXzY0X1NIT1JULgoKMjAwMy0wOS0xMCAgSm9obiBEYXZpZCBBbmdsaW4JPGRhdmUuYW5nbGluQG5yYy1jbnJjLm5yYy5jYT4KCSAgICBSYW5kb2xwaCBDaHVuZwk8cmFuZG9scGhAdGF1c3Eub3JnPgoKCSogZWxmMzItaHBwYS5jIChzdHJ1Y3QgZWxmMzJfaHBwYV9saW5rX2hhc2hfZW50cnksCglocHBhX2xpbmtfaGFzaF9uZXdmdW5jLCBocHBhX2J1aWxkX29uZV9zdHViLAoJZWxmMzJfaHBwYV9hZGp1c3RfZHluYW1pY19zeW1ib2wsIG1hcmtfUElDX2NhbGxzLCBhbGxvY2F0ZV9wbHRfc3RhdGljLAoJYWxsb2NhdGVfZHlucmVsb2NzLCBlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucywKCWVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogUmVtb3ZlIHBpY19jYWxsIGZpZWxkIGFuZCBhbGwgY29kZQoJZm9yIGdlbmVyYXRpbmcgaW1wb3J0IHN0dWJzIGZvciBjYWxscyB0byBzdGF0aWNhbGx5IGxpbmtlZCBQSUMKCWZ1bmN0aW9ucy4KCShocHBhX3R5cGVfb2Zfc3R1Yik6IERvbid0IGdlbmVyYXRlIGFuIGltcG9ydCBzdHViIGZvciBjYWxscyB0bwoJc3RhdGljYWxseSBsaW5rZWQgcGljIGZ1bmN0aW9ucy4gIEdlbmVyYXRlIGltcG9ydCBzdHVicyBmb3IgY2FsbHMKCWluIGEgc2hhcmVkIG9iamVjdCwgdG8gZnVuY3Rpb25zIG5vdCBpbiBhIHJlZ3VsYXIgZmlsZSwgYW5kIHRvCglkZWZpbmVkIHdlYWsgZnVuY3Rpb25zLiAgQWRkIG5ldyBhcmd1bWVudCBJTkZPLgoJKGhwcGFfYnVpbGRfb25lX3N0dWIpOiBEb24ndCB1bmRlZiBBRERJTF9EUC4KCShlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IERvbid0IHNldCBTRUNfSEFTX0dPVF9SRUYgZmxhZy4KCShlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBQYXNzIGluZm8gdG8gaHBwYV90eXBlX29mX3N0dWIuCgkoZmluYWxfbGlua19yZWxvY2F0ZSk6IENoYW5nZSBhbGwgRExUSU5EIHJlbG9jcyB0byBEUFJFTCByZWxvY3MgaW4gYQoJbm9uLXNoYXJlZCBsaW5rLiAgQ29udmVydCBpbnN0cnVjdGlvbnMgdGhhdCB1c2UgdGhlIHRoZSBsaW5rYWdlIHRhYmxlCglwb2ludGVyLCBvciBhIGZhY3NpbWlsZSB0aGVyZW9mLCB0byB1c2UgdGhlIGdsb2JhbCBkYXRhIHBvaW50ZXIgd2hlbgoJdGhlIHJlbG9jIGhhcyBiZWVuIGNoYW5nZWQuCgoyMDAzLTA5LTA4ICBKb2VsIEJyb2JlY2tlciAgPGJyb2JlY2tlckBnbmF0LmNvbT4KCgkqIGFyY2h1cmVzLmM6IEFkZCBuZXcgbWFjaGluZSBuYW1lcyBmb3IgaHBwYS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtaHBwYS5jOiBVc2UgdGhlIG5ldyBtYWNoaW5lIG5hbWVzLgoKMjAwMy0wOS0wNiAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzF4LmggKHN0cnVjdCBtNjhoYzExX2VsZl9saW5rX2hhc2hfdGFibGUpOiBSZW1vdmUKCWFsbF9sb2NhbF9zeW1zIG1lbWJlci4KCSogZWxmMzItbTY4aGMxeC5jIChlbGYzMl9tNjhoYzExX3NpemVfc3R1YnMpOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMKCXRvIGdldCB0aGUgbG9jYWwgc3ltYm9scy4KCjIwMDMtMDktMDYgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxMi5jIChlbGYzMl9tNjhoYzEyX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcgZm9yIGhjMTEuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZS5hCgoJUFIgc2F2YW5uYWgvNDk1MDoKCSogZWxmMzItbTY4aGMxMS5jIChlbGYzMl9tNjhoYzExX3NwZWNpYWxfc2VjdGlvbnMpOiBUaGUgLnZlY3RvcnMKCXNlY3Rpb24gaXMgcmVhZC1vbmx5LgoKMjAwMy0wOS0wNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX3Y4NTBlMSk6IERlZmluZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtdjg1MC5oIChzY2FuKTogQWNjZXB0IGJmZF9tYWNoX3Y4NTBlMS4KCShhcmNoX2luZm9fc3RydWN0KTogSW5jbHVkZSBhbiBlbnRyeSBmb3IgYmZkX21hY2hfdjg1MGUxLgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX29iamVjdF9wKTogQWNjZXB0IEVfVjg1MEUxX0FSQ0ggZmxhZy4KCSh2ODUwX2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogQWNjZXB0IGJmZF9tYWNoX3Y4NTBlMS4KCSh2ODUwX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogSW50ZXJwcmV0IEVfVjg1MEUxX0FSQ0ggZmxhZy4KCSh2ODUwX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQWxsb3cgdjg1MGUxIGJpbmFyaWVzIHRvIGJlCglsaW5rZWQgd2l0aCB2ODUwZSBiaW5hcmllcy4gIE1hcmsgdGhlIG91dHB1dCBhcyB2ODUwZS4KCjIwMDMtMDktMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfbGlua19pbnB1dF9iZmQpOiBEbyBub3Qgc2tpcCBzZWN0aW9uCglzeW1ib2xzIHRoYXQgYXJlIHVzZWQgaW4gcmVsb2NzLgoKMjAwMy0wOC0zMCAgUm9iZXJ0IE1pbGxhbiAgPHJvYmVydG1oQGdudS5vcmc+CgoJKiBjb25maWd1cmUuaW46IE1hdGNoIEdOVS9LRnJlZUJTRCB3aXRoIG5ldyBrZnJlZWJzZCotZ251IHRyaXBsZXQuCgkqIGNvbmZpZy5iZmQ6IExpa2V3aXNlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTA4LTMxICBDaHJpc3RpYW4gR3JvZXNzbGVyICA8Y2hyaXNAZ3JvZXNzbGVyLm9yZz4KCgkqIGVsZjMyLWk4NjAuYyAoaTg2MF9ob3d0b19wYzI2X3JlbG9jKTogRmluaXNoIHJlbG9jYXRpb24gaGVyZQoJaW5zdGVhZCBvZiByZXR1cm5pbmcgYmZkX3JlbG9jX2NvbnRpbnVlLgoKMjAwMy0wOC0zMSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogbWVyZ2UuYzogVXBkYXRlIHRvIElTTyBDOTAuCgoyMDAzLTA4LTI3ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGFpcnMuY29tPgoKCSogY29uZmlndXJlLmluOiBDaGVjayBmb3Igc3RydG91bGwuCgkqIGJmZC5jIChiZmRfc2Nhbl92bWEpOiBVc2Ugc3RydG91bGwgd2hlbiBhdmFpbGFibGUuCgkqIGNvbmZpZ3VyZSwgY29uZmlnLmluOiBSZWdlbmVyYXRlLgoKCSogY29uZmlndXJlLmluOiBEZWZpbmUgYW5kIHN1YnN0aXR1dGUgQkZEX0hPU1RfTE9OR19MT05HLgoJKiBiZmQtaW4uaDogRGVmaW5lIEJGRF9IT1NUX0xPTkdfTE9ORy4gIFRlc3QgaXQgcmF0aGVyIHRoYW4KCV9fR05VQ19fIHdoZW4gZGVjaWRpbmcgd2hldGhlciB0byB1c2UgbG9uZyBsb25nIGZvcgoJQkZEX0hPU1RfNjRfQklULgoJKiBjb25maWd1cmUsIE1ha2VmaWxlLmluLCBkb2MvTWFrZWZpbGUuaW4sIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDgtMjcgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoKCSogZWxmMzItaTg2MC5jIChpODYwX2hvd3RvX3BjMjZfcmVsb2MsIGk4NjBfaG93dG9fcGMxNl9yZWxvYywKCWk4NjBfaG93dG9fc3BsaXRuX3JlbG9jLCBpODYwX2hvd3RvX2hpZ2hhZGpfcmVsb2MpOiBOZXcKCWZ1bmN0aW9ucy4KCShlbGYzMl9pODYwX2hvd3RvX3RhYmxlKTogSW5zZXJ0IHRoZSBuZXcgZnVuY3Rpb25zIGFzCgknc3BlY2lhbF9mdW5jdGlvbidzIGluIHRoZSBwcm9wZXIgcmVsb2MgdHlwZSBlbnRyaWVzLgoKMjAwMy0wOC0yNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmMzItZnJ2LmMgKGVsZjMyX2Zydl9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlCglfYmZkX2VsZl9yZWxhX2xvY2FsX3N5bS4KCjIwMDMtMDgtMjYgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogY3B1LWZydi5jOiBSZW1vdmUgdW51c2VkIGVudW0uCgoyMDAzLTA4LTI1ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiByZWxvYy5jOiBGaXggZG9jdW1lbnRhdGlvbiBmb3IgTUlQUyBFTEYgcmVsb2NhdGlvbnMuCglsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCWJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDgtMjQgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogY29mZi1pODYwLmMgKENBTENfQURERU5EKTogRGVmaW5lIHRvIGJlIGEgbm8tb3AuCgoyMDAzLTA4LTI0ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGVsZjMyLWk4NjAuYyAoZWxmMzJfaTg2MF9yZWxvY2F0ZV9wYzE2KTogU3VidHJhY3QgNCBhbmQKCXNoaWZ0IGJ5IDIgYmVmb3JlIHN0b3JpbmcgdGhlIHJlbG9jYXRlZCB2YWx1ZS4KCjIwMDMtMDgtMjMgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogY29mZi1pODYwLmMgKGNvZmZfaTg2MF9yZWxvY19ueWkpOiBOZXcgZnVuY3Rpb24uCgkoaG93dG9fdGFibGUpOiBBZGQgZW50cmllcyBmb3IgcmVsb2NhdGlvbnMgUEFJUiwgSElHSEFESiwgSElHSCwKCUxPV24sIFNQTElUbiwgYW5kIEJSQUREUi4KCShSVFlQRTJIT1dUTyk6IENoZWNrIHRoYXQgdGhlIHJfdHlwZSBpcyB3aXRoaW4gdGhlIGhvd3RvX3RhYmxlCgliZWZvcmUgdHJ5aW5nIHRvIGFjY2VzcyB0aGUgZW50cnkuCgkoY29mZl9pODYwX3J0eXBlX3RvX2hvd3RvKTogTGlrZXdpc2UuCgkoY29mZl9pODYwX3JlbG9jX3R5cGVfbG9va3VwKTogTmV3IGZ1bmN0aW9uLgoJKGk4NjBfcmVsb2NfcHJvY2Vzc2luZyk6IE5ldyBmdW5jdGlvbi4KCShjb2ZmX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IERlZmluZSBtYWNyby4KCShSRUxPQ19QUk9DRVNTSU5HKTogRGVmaW5lIG1hY3JvLgoJTWlub3IgZm9ybWF0dGluZyBhZGp1c3RtZW50cy4KCjIwMDMtMDgtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IERvbid0IGNyYXNoIG9uIE5VTEwgb3duZXIuCgoyMDAzLTA4LTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBBbGlnbiB0aGUKCS5nb3Qgc2VjdGlvbiBhdCA4IGJ5dGVzLgoKMjAwMy0wOC0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvZmZsaW5rLmM6IFVwZGF0ZSB0byBJU08gQzkwIGFuZCB0aWR5IHVwIGZvcm1hdHRpbmcuCgoyMDAzLTA4LTIxICBSYW5kb2xwaCBDaHVuZyAgPHRhdXNxQGRlYmlhbi5vcmc+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfb2JqZWN0X3ApOiBGb3IgZWxmMzItaHBwYS1saW51eCwgb2JqZWN0cwoJY2FuIGhhdmUgT1NBQkk9TGludXggb3IgT1NBQkk9U3lzVi4gIENoZWNrIGZvciBib3RoLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfb2JqZWN0X3ApOiBMaWtld2lzZS4KCjIwMDMtMDgtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogVXBkYXRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uLgoKMjAwMy0wOC0yMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmNjQtbWlwcy5jIChlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERlZmluZS4KCjIwMDMtMDgtMjAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYtYmZkLmggKFJFTE9DX0ZPUl9HTE9CQUxfU1lNQk9MKTogTmV3IG1hY3JvIHVzZWQgdG8KCXJlcGxhY2Ugc29tZSBkdXBsaWNhdGVkIGNvZGUgaW4gbW9zdCBlbGZ4eC14eHh4LmMgZmlsZXMuICBUaGlzCgl2ZXJzaW9uIHVzZXMgdGhlIG5ldyBmaWVsZHMgaW4gYmZkX2xpbmtfaW5mby4KCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBuZXcgbWFjcm8uCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWlwMmsuYyAoaXAya19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pcTIwMDAuYyAoaXEyMDAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzIteHRlbnNhLmMgKGVsZl94dGVuc2FfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX3VubWFya191c2VsZXNzX2R5bmFtaWNfc3ltYm9scywKCWVsZl9ocHBhX3JlbWFya191c2VsZXNzX2R5bmFtaWNfc3ltYm9scywKCWVsZl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgdGhlIG5ldyBmaWVsZHMgaW4KCWJmZF9saW5rX2luZm8gc3RydWN0dXJlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBGaXggdGVzdCBmb3IgcmVwb3J0aW5nCgl1bmRlZmluZWQgc3ltYm9scyBpbiBzaGFyZWQgbGlicmFyaWVzLiAgUmVtb3ZlIHJlZHVuZGFudCB0ZXN0CglvZiBzaGxpYl91bmRlZmluZWQgd2hlbiByZXBvcnRpbmcgcmVmZXJlbmNlcyB0byBmb3JjZWQgbG9jYWwKCXN5bWJvbHMuCgoyMDAzLTA4LTE4ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogbGlicGVpLmggKGJmZF9wZV9leGVjdXRhYmxlX3ApOiBBbHNvIHJlY29nbml6ZSBlZmktYXBwCglleGVjdXRhYmxlcy4KCjIwMDMtMDgtMTcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIHNpbXBsZS5jIChiZmRfc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IE1vdmUKCXJlbG9jX2RvbmUgaGFjayB0byBiZWZvcmUgZmlyc3QgYmZkX3NlY3Rpb25fc2l6ZSBjYWxsLiAgQ2hhbmdlIGFsbAoJcmV0dXJucyB0byB1c2UgbmV3IHdyYXBwZXIgbWFjcm8gUkVUVVJOLCByZXN0b3Jpbmcgc2VjLT5yZWxvY19kb25lLgoKMjAwMy0wOC0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jOiBEb24ndCBpbmNsdWRlIGVsZi9wcGMuaC4KCjIwMDMtMDgtMTQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9tb2RpZnlfc2VnbWVudF9tYXApOiBGaXggUFRfRFlOQU1JQwoJY29kZSB0byB3b3JrIHdpdGggNjQtYml0IGJmZHMuCgoyMDAzLTA4LTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZGVwLWluLnNlZDogUmVtb3ZlIGxpYmludGwuaC4KCSogTWFrZWZpbGUuYW0gKFNSQy1QT1RGSUxFUy5pbiwgQkxELVBPVEZJTEVTLmluKTogVW5zZXQgTENfQ09MTEFURS4KCShQT1RGSUxFUy5pbik6IFJlbW92ZSB0YXJnZXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wOC0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfbmV4dF9pbnB1dF9zZWN0aW9uKTogVXBkYXRlIGNvbW1lbnQuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBGb3IgemVybyBzeW0gUl9QUEM2NF9UT0MgcmVsb2NzLAoJdXNlIHRoZSBmdW5jdGlvbiBzeW0gZnJvbSB0aGUgcHJldmlvdXMgcmVsb2MuCgoyMDAzLTA4LTExICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IE1ha2UgdW5kZWZpbmVkIHN5bWJvbHMKCWZhdGFsIGlmIC1waWUuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKSA8Y2FzZSBSX1BQQ19SRUxBWDMyPjogSXNzdWUgZmF0YWwgZXJyb3IKCW9uIHVuZGVmaW5lZCBzeW1ib2xzIGlmIC1waWUuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTA4LTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQWRkIHNwZWNpYWwgY2FzZSBmb3IgY3J0MS5vCglicmFuY2ggdG8gX19saWJjX3N0YXJ0X21haW4uCgoyMDAzLTA4LTA4IERtaXRyeSBEaWt5IDxkaXdpbEBtYWlsLnJ1PgoKCSogYXJjaHVyZXMuYzogQWRkIHhXNDIgYW5kIHhFNDIgcGFydHMuIFNvcnQgTVBVIGxpc3QgYWNjb3JkaW5nIHRvCglnY2Mgb3JkZXIuCgkqIGNwdS1tc3A0MzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1zcDQzMC5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wOC0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZnh4LXRhcmdldC5oOiBSZW1vdmUgUFRSIGNhc3QuCgkqIHRhcmdldHMuYyAoYmZkX3RhcmdldCk6IE1ha2UgYmFja2VuZF9kYXRhIGNvbnN0IHZvaWQgKi4KCSogZWxmLWJmZC5oOiBDb25zdGlmeSBhbGwgb2NjdXJyZW5jZXMgb2Ygc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEuCgkqIGVsZi1tMTAzMDAuYzogTGlrZXdpc2UuCgkqIGVsZi5jOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxeC5jOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXh0ZW5zYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmM6IExpa2V3aXNlLgoJKiBlbGZjb2RlLmg6IExpa2V3aXNlLgoJKiBlbGZjb3JlLmg6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmM6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmg6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmg6IExpa2V3aXNlLgoJKiBlbGYuYyAocHJlcF9oZWFkZXJzKTogUmVtb3ZlIHVzZWxlc3MgY2hlY2sgZm9yIG51bGwgYmFja2VuZF9kYXRhLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoJKiBlbGYtYmZkLmg6IFJlbW92ZSBQQVJBTVMgbWFjcm8uICBSZXBsYWNlIFBUUiB3aXRoIHZvaWQgKi4KCShOQU1FKTogVXNlICMjIHJhdGhlciB0aGFuIENPTkNBVDQgbWFjcm8uCgkqIGVsZmNvZGUuaDogUmVtb3ZlIG9uZSByZW1haW5pbmcgUEFSQU1TIG1hY3JvLgoJKiBlbGYtZWgtZnJhbWUuYzogQ29udmVydCB0byBDOTAsIHJlbW92ZSB1bm5lZWRlZCBjYXN0cyBhbmQgcHJvdG90eXBlcy4KCSogZWxmLXN0cnRhYi5jOiBMaWtld2lzZS4KCSogZWxmLWhwcGEuaDogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuaDogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYzogTGlrZXdpc2UuCgkoZWxmMzJfaHBwYV9hZGRfc3ltYm9sX2hvb2spOiBEZWxldGUuCgkoZWxmX2JhY2tlbmRfYWRkX3N5bWJvbF9ob29rKTogRG9uJ3QgZGVmaW5lLgoJKiBsaWJocHBhLmg6IENvbnZlcnQgdG8gQzkwLiAgUmVwbGFjZSBJTkxJTkUgd2l0aCBpbmxpbmUuCgoyMDAzLTA4LTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwY19zdHViX25hbWUpOiBUd2VhayBuYW1lcyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoJKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBBbGxvdyBjb3B5IHJlbG9jcyBhZ2FpbnN0CglmdW5jdGlvbiBkZXNjcmlwdG9ycywgYnV0IHdhcm4uCgkocHBjX2J1aWxkX29uZV9zdHViKTogUmVtb3ZlIGEgY291cGxlIG9mIHZhcnMuICBNb3ZlIGNvZGUgY3JlYXRpbmcKCXN0dWIgc3ltcyBzbyB0aGF0IHdlIGNhbiBhdm9pZCBhIHN0dWIgc3ltIGlmIHdlIGFscmVhZHkgaGF2ZSBhCglwbHQgc3ltLiAgRG8gbm90IHJlZGVmaW5lIGFuIGV4aXN0aW5nIHN5bWJvbC4KCShwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBXaGVuIC0tZW1pdC1zdHViLXN5bXMsIHByaW50IGEgc3ltYm9sIGZvcgoJZ2xpbmsuCgoyMDAzLTA4LTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoKMjAwMy0wOC0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBNYXJrIC5keW5ic3Mgd2l0aAoJU0VDX0xJTktFUl9DUkVBVEVELgoKMjAwMy0wOC0wNSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbGYzMi1hcm0uaCAoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IERlZmluZS4KCShlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSwgZWxmMzJfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgaXQuCgoyMDAzLTA4LTAzICBKZWZmIE11aXplbGFhciAgPG11aXplbGFhckByb2dlcnMuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9zbHVycF9saW5lX3RhYmxlKTogUmV0dXJuIHdpdGggYSB3YXJuaW5nCgltZXNzYWdlIGlmIHRoZSBsaW5lIG51bWJlciB0YWJsZSBjb3VsZCBub3QgYmUgcmVhZC4KCjIwMDMtMDgtMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IFByZXBlbmQgIndhcm5pbmc6ICIKCXRvIG1lc3NhZ2VzIHByb2R1Y2VkIGZvciAuZ251Lndhcm5pbmcuU1lNQk9MIHNlY3Rpb25zLgoKMjAwMy0wOC0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmNvZGUuaDogQ29udmVydCB0byBDOTAsIHJlbW92ZSB1bm5lZWRlZCBjYXN0cyBhbmQgcHJvdG90eXBlcy4KCSogZWxmY29yZS5oOiBMaWtld2lzZS4KCSogZWxmbGluay5jOiBMaWtld2lzZS4KCSogZWxmbGluay5oOiBMaWtld2lzZS4KCSogZWxmLmMgKHN5bV9pc19nbG9iYWwpOiBSZW1vdmUgSU5MSU5FLgoJKGFsaWduX2ZpbGVfcG9zaXRpb24pOiBSZXBsYWNlIElOTElORSB3aXRoIGlubGluZS4KCSogZWxmY29kZS5oIChlbGZfc3dhcF9keW5faW4sIGVsZl9zd2FwX2R5bl9vdXQpOiBSZW1vdmUgSU5MSU5FLgoJKGVsZl9maWxlX3ApOiBSZXBsYWNlIElOTElORSB3aXRoIGlubGluZS4KCjIwMDMtMDgtMDIgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IERvbid0IHNldCBERl9URVhUUkVMIGhlcmUuCgoyMDAzLTA4LTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGdldF9nb3QpOiBBbGlnbiB0aGUgLmdvdCBzZWN0aW9uIGF0IDggYnl0ZXMuCgoyMDAzLTA4LTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogVXNlCglFbGZOTl9FeHRlcm5hbF9SZWxhIGluc3RlYWQgb2YgRWxmNjRfRXh0ZXJuYWxfUmVsYS4KCjIwMDMtMDgtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcuYmZkOiBBZGQgY29kZSB0byBjYXRjaCBvYnNvbGV0ZSBjb25maWd1cmF0aW9ucyBhbmQgd2FybgoJYWJvdXQgdGhlbSB1bmxlc3MgLS1lbmFibGUtb2Jzb2xldGUgaXMgdXNlZC4gIFVzZSB0aGlzIHRvIG1hcmsKCXZheC12bXMgcG9ydCBhcyBvYnNvbGV0ZS4KCjIwMDMtMDctMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9pbnN0YWxsX3ZhbHVlKTogVGlkeS4KCShwcGNfZWxmX3JlbGF4X3NlY3Rpb24pOiBSZW1vdmUgZGVhZCBjb2RlLiAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3RzLgoJRm9ybWF0dGluZy4KCSogZWxmeHgtdGFyZ2V0Lmg6IFJlbW92ZSBQQVJBTVMgbWFjcm8uICBGb3JtYXR0aW5nLgoKMjAwMy0wNy0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChiZmRfc2VjdGlvbl9mcm9tX3Jfc3ltbmR4KTogVGVzdCBmb3IgU0hOX1VOREVGLgoJKiBlbGY2NC1wcGMuYyAoZ2V0X2ZkaCk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20KCXBwYzY0X2VsZl9lZGl0X29wZC4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogVXNlIGdldF9mZGguCgkoZnVuY19kZXNjX2FkanVzdCk6IExpa2V3aXNlLiAgVGlkeS4KCShwcGM2NF9lbGZfZWRpdF9vcGQpOiBUaWdodGVuIHJlbG9jIGNoZWNrcy4gIEZyZWUgbG9jYWxfc3ltcyBvbiBlcnJvcgoJZXhpdC4gIFVzZSBnZXRfZmRoLiAgQWNjb3VudCBmb3Igc3VwZXJmbHVvdXMgZHluYW1pYyByZWxvY3MuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBXYXJuaW5nIGZpeC4KCjIwMDMtMDctMzAgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogY29mZi1pODYwLmM6IENvbnZlcnQgdG8gSVNPIEM5MC4gIFJlbW92ZSBzdXBlcmZsb3VzIHByb3RvdHlwZXMuCgoyMDAzLTA3LTMwICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGVsZjMyLWk4NjAuYzogQ29udmVydCB0byBJU08gQzkwLiAgUmVtb3ZlIHN1cGVyZmxvdXMgcHJvdG90eXBlcy4KCjIwMDMtMDctMzAgIFJhbmRvbHBoIENodW5nICA8dGF1c3FAZGViaWFuLm9yZz4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBMb29rIHVwIGR5bl9oIGZvciB1bmRlZndlYWsuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9maW5hbGl6ZV9kbHQpOiBDaGVjayBoLT5yb290LnR5cGUuCgoyMDAzLTA3LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmM6IENvbnZlcnQgdG8gQzkwLCByZW1vdmUgdW5uZWNlc3NhcnkgcHJvdG90eXBlcyBhbmQgY2FzdHMuCglSZXBsYWNlIFBUUiB3aXRoIHZvaWQgKi4gIEZvcm1hdHRpbmcuCgkoX2JmZF9lbGZfYXNzaWduX2ZpbGVfcG9zaXRpb25fZm9yX3NlY3Rpb24pOiBSZW1vdmUgSU5MSU5FLgoJKG1ha2VfbWFwcGluZyk6IExpa2V3aXNlLgoKMjAwMy0wNy0yOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChmdW5jX2Rlc2NfYWRqdXN0KTogR2l2ZSBsaW5rZXIgY3JlYXRlZCBmdW5jdGlvbgoJZGVzY3JpcHRvciBzeW1ib2xzIGEgc2l6ZSBhbmQgdHlwZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENvcnJlY3QgbHEgaW5zbiB0ZXN0LgoKMjAwMy0wNy0yOCAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1wcGMuYyAoUl9QUENfUkVMQVgzMik6IE5ldyByZWxvY2F0aW9uLgoJKHBwY19lbGZfaW5zdGFsbF92YWx1ZSk6IE5ldyBmdW5jdGlvbi4KCShwcGNfZWxmX3NvcnRfcmVsYSk6IFJlbW92ZS4KCShwcGNfZWxmX3JlbGF4X3NlY3Rpb24pOiBSZXdyaXRlLiBSZW1vdmUgb2xkIHJlbGF4YXRpb24KCWFuZCByZXBsYWNlIHdpdGggb3V0IG9mIHJhbmdlIGJyYW5jaCBzdHVicy4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgUl9QUENfUkVMQVgzMi4KCjIwMDMtMDctMjkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogVGFrZSBzeW1ib2wgaGFzaCB0YWJsZQoJZnJvbSBpbnB1dF9iZmQuCgoyMDAzLTA3LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKHNwZWNpYWxfc2VjdGlvbnMpOiBTZXQgYXR0cmlidXRlcyBmb3IgLmdvdCBhbmQgLnBsdC4KCjIwMDMtMDctMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEVuc3VyZSBubyBjb3B5IHJlbG9jcwoJb24gZnVuY3Rpb24gZGVzY3JpcHRvcnMuCgkoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogRXhwYW5kIGNvbW1lbnQuCgkocHBjNjRfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBNb3ZlLiAgRG9uJ3QgaW5jbHVkZSBub24tcHBjNjQgc2VjdGlvbnMuCglEbyBpbmNsdWRlICIudG9jMSIuCgoyMDAzLTA3LTI1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfbmV3X3NlY3Rpb25faG9vayk6IFNldCB0aGUgZGVmYXVsdCBzZWN0aW9uCgl0eXBlIHRvIFNIVF9OVUxMLgoJKGVsZl9mYWtlX3NlY3Rpb25zKTogU2V0IHRoZSBzZWN0aW9uIHR5cGUgYmFzZWQgb24gYXNlY3QtPmZsYWdzCglpZiBpdCBpcyBTSFRfTlVMTC4gRG9uJ3QgYWJvcnQgb24gcHJvY2Vzc29yIHNwZWNpZmljIHNlY3Rpb24KCXR5cGVzLgoKMjAwMy0wNy0yNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCjIwMDMtMDctMjUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZi1iZmQuaCAoYmZkX2VsZl9zcGVjaWFsX3NlY3Rpb24pOiBOZXcuCgkoZWxmX2JhY2tlbmRfZGF0YSk6IEFkZCBzcGVjaWFsX3NlY3Rpb25zLCBhIHBvaW50ZXIgdG8KCWJmZF9lbGZfc3BlY2lhbF9zZWN0aW9uLgoJKGVsZl9zZWN0aW9uX3R5cGUpLiBOZXcuCgkoZWxmX3NlY3Rpb25fZmxhZ3MpOiBOZXcuCgkoX2JmZF9lbGZfZ2V0X3NlY190eXBlX2F0dHIpOiBOZXcuCgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fc2hkcik6IEFsd2F5cyB1c2UgdGhlCglyZWFsIHNlY3Rpb24gdHlwZS9mbGFncy4KCShzcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGdldF9zcGVjaWFsX3NlY3Rpb24pOiBOZXcuCgkoX2JmZF9lbGZfZ2V0X3NlY190eXBlX2F0dHIpOiBOZXcuCgkoX2JmZF9lbGZfbmV3X3NlY3Rpb25faG9vayk6IENoZWNrIHNwZWNpYWxfc2VjdGlvbiB0byBzZXQKCWVsZl9zZWN0aW9uX3R5cGUgYW5kIGVsZl9zZWN0aW9uX2ZsYWdzLgoJKGVsZl9mYWtlX3NlY3Rpb25zKTogRG9uJ3QgdXNlIHNlY3Rpb24gbmFtZSB0byBzZXQgRUxGIHNlY3Rpb24KCWRhdGEuCgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGYzMi1tNjhoYzExLmMgKGVsZjMyX202OGhjMTFfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZjMyLW1jb3JlLmMgKG1jb3JlX2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZjMyLXh0ZW5zYS5jIChlbGZfeHRlbnNhX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgkoZWxmX2JhY2tlbmRfc3BlY2lhbF9zZWN0aW9ucyk6IERlZmluZWQuCgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NwZWNpYWxfc2VjdGlvbnMpOiBEZWZpbmVkLgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX3NwZWNpYWxfc2VjdGlvbnMpOiBOZXcuCgoJKiBlbGZ4eC1taXBzLmggKF9iZmRfbWlwc19lbGZfc3BlY2lhbF9zZWN0aW9ucyk6IE5ldy4KCShlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogRGVmaW5lZC4KCgkqIGVsZnh4LXRhcmdldC5oIChlbGZfYmFja2VuZF9zcGVjaWFsX3NlY3Rpb25zKTogTmV3LiBEZWZhdWx0Cgl0byBOVUxMLgoJKGVsZk5OX2JlZCk6IEluaXRpYWxpemUgc3BlY2lhbF9zZWN0aW9ucy4KCgkqIHNlY3Rpb24uYyAoYmZkX2Fic19zZWN0aW9uKTogUmVtb3ZlIGNvbnN0LgoJKGJmZF91bmRfc2VjdGlvbik6IExpa2V3aXNlLgoJKGJmZF9jb21fc2VjdGlvbik6IExpa2V3aXNlLgoJKGJmZF9pbmRfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wNy0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvZmYtYXJtLmMgKEVYVFJBX1NfRkxBR1MpOiBJbmNsdWRlIFNFQ19DT0RFIHNvIHRoYXQgY29kZQoJc2VjdGlvbnMgYXJlIGFzc2lnbmVkIHRoZSBMT0FEIGF0dHJpYnV0ZS4KCjIwMDMtMDctMjUgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYzogQ29udmVydCB0byBDOTAuICBSZXBsYWNlIFBUUiB3aXRoIHZvaWQgKi4KCSogZWxmMzItc2g2NC1jb20uYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuaDogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYzogTGlrZXdpc2UuCgoyMDAzLTA3LTI0ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBVc2UgU1lNQk9MX0NBTExTX0xPQ0FMLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuIFVzZSBTWU1CT0xfUkVGRVJFTkNFU19MT0NBTC4KCShzaF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogVXNlIFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMLgoKMjAwMy0wNy0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIEZyZW5jaCB0cmFuc2xhdGlvbi4KCjIwMDMtMDctMjMgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbGYzMi14dGVuc2EuYyAoeHRlbnNhX2VsZl9keW5hbWljX3N5bWJvbF9wKTogTWFrZSBpbmxpbmUgYW5kIG1vdmUKCW5lYXIgdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZS4gIFN3YXAgb3JkZXIgb2YgYXJndW1lbnRzLiAgQ2FsbAoJX2JmZF9lbGZfZHluYW1pY19zeW1ib2xfcCB3aXRoICJpZ25vcmVfcHJvdGVjdGVkIiBzZXQgdG8gMC4KCShlbGZfeHRlbnNhX2ZpeF9yZWZjb3VudHMpOiBBZGp1c3QgeHRlbnNhX2VsZl9keW5hbWljX3N5bWJvbF9wIGNhbGwuCgkoZWxmX3h0ZW5zYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoc2hyaW5rX2R5bmFtaWNfcmVsb2Nfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDMtMDctMjMgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbGYzMi14dGVuc2EuYyAocGx0X3JlbG9jX2NvdW50KTogRml4IHR5cG8gaW4gY29tbWVudC4KCShlbGZfeHRlbnNhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBlbGZfZGlzY2FyZGVkX3NlY3Rpb24uCgkoZWxmX3h0ZW5zYV9jb21iaW5lX3Byb3BfZW50cmllcyk6IEF2b2lkIHJldHVybmluZyBub24temVybyB3aXRob3V0CglmaXJzdCBwcmludGluZyBhbiBlcnJvciBtZXNzYWdlLgoJKGVsZl94dGVuc2FfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGZfeHRlbnNhX2Rpc2NhcmRfaW5mb19mb3Jfc2VjdGlvbik6IEFkanVzdCBzaXplIG9mIC5nb3QubG9jIHdoZW4KCWRpc2NhcmRpbmcgbGl0ZXJhbCB0YWJsZSBlbnRyaWVzLgoJKGVsZl94dGVuc2FfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IFJlbW92ZSBuZXdsaW5lIGZyb20gZXJyb3IgbWVzc2FnZS4KCShlbGZfeHRlbnNhX2RvX2FzbV9zaW1wbGlmeSk6IExpa2V3aXNlLgoKMjAwMy0wNy0yMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzF4LmMgKGVsZjMyX202OGhjMTFfc2l6ZV9zdHVicyk6IEF2b2lkIGNyYXNoIHdoZW4KCXdlIGhhdmUgYSBsb2NhbCBzeW1ib2wgaW4gY29tbW9uIHNlY3Rpb24uCgoyMDAzLTA3LTIyICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfZHluYW1pY19zeW1ib2xfcCk6IERvbid0IHJldHVybiBUUlVFIGZvcgoJd2VhayBzeW1ib2xzLgoKMjAwMy0wNy0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2x1cnBfc3ltYm9sX3RhYmxlKTogQWRkIENfVENTWU0gYW5kIENfRUNPTUwgdG8KCWV4cGVjdGVkIFJTNjAwMCBzdG9yYWdlIGNsYXNzZXMuCgoyMDAzLTA3LTIxICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBNYXJrCglvdXRwdXRfYmZkIHVudXNlZCB0byBzaWxlbmNlIGdjYy4KCjIwMDMtMDctMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogVXBkYXRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uLgoKMjAwMy0wNy0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwsIFNZTUJPTF9DQUxMU19MT0NBTCk6IFVzZS4uCgkoX2JmZF9lbGZfc3ltYm9sX3JlZnNfbG9jYWxfcCk6IC4udGhpcy4gIERlY2xhcmUuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfc3ltYm9sX3JlZnNfbG9jYWxfcCk6IE5ldyBmdW5jdGlvbi4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVtb3ZlIGggTlVMTCB0ZXN0Cglub3cgZG9uZSBpbiBfYmZkX2VsZl9zeW1ib2xfcmVmc19sb2NhbF9wLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDMtMDctMTggIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9keW5hbWljX3N5bWJvbF9wKTogVW5kbyB0aGUgbGFzdCBjaGFuZ2UuCgoyMDAzLTA3LTE4ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZi1iZmQuaCAoU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwpOiBGaXggYSB0eXBvLgoJKFNZTUJPTF9DQUxMU19MT0NBTCk6IExpa2V3aXNlLgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9keW5hbWljX3N5bWJvbF9wKTogUmV0dXJuIFRSVUUKCWltbWVkaWF0ZWx5IGlmIHN5bWJvbCBpc24ndCBkZWZpbmVkIGxvY2FsbHkuCgoyMDAzLTA3LTE4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9keW5hbWljX3N5bWJvbF9wKTogTmV3LgoJKiBlbGYtYmZkLmggKF9iZmRfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBEZWNsYXJlIGl0LgoJKFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMLCBTWU1CT0xfQ0FMTFNfTE9DQUwpOiBVc2UgaXQuCgkqIGVsZjMyLXh0ZW5zYS5jICh4dGVuc2FfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2R5bmFtaWNfc3ltYm9sX3ApOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2R5bmFtaWNfc3ltYm9sX3ApOiBMaWtld2lzZS4KCVVwZGF0ZSBhbGwgY2FsbGVycyB0byBwcm92aWRlIHRoZSByZWxvY2F0aW9uIGJlaW5nIHJlc29sdmVkLgoKMjAwMy0wNy0xNyAgU2hhdW4gSmFja21hbiA8c2phY2ttYW5AcGF0aHdheWNvbm5lY3QuY29tPgoKCSogY29uZmlnLmJmZCAoYXJtLXdpbmNlLXBlKTogQWRkIC1EQVJNX0NPRkZfQlVHRklYIHRvCgl0YXJnX2NmbGFncy4KCjIwMDMtMDctMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9lcy5wbzogTmV3IFNwYW5pc2ggdHJhbnNsYXRpb24uCgkqIHBvL3N2LnBvOiBOZXcgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCSogcG8vb3Bjb2Rlcy5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAzLTA3LTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnLmJmZCwgY29uZmlndXJlLmhvc3QsIGNvbmZpZ3VyZS5pbjogUmVtb3ZlIGlhNjQtYWl4IHN1cHBvcnQuCgkqIGVsZnh4LWlhNjQuYywgdGFyZ2V0cy5jOiBMaWtld2lzZS4KCjIwMDMtMDctMTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfZHluYW1pY19zeW1ib2xfcCk6IFByb3Blcmx5IHJldHVybiBmYWxzZQoJZm9yIHN5bWJvbHMgZGVmaW5lZCBsb2NhbGx5IHBsdXMgLUJzeW1ib2xpYy4gIFRpZHkgbG9naWMuCgoyMDAzLTA3LTE1ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9taXBzNzAwMCk6IE5ldy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCSogY3B1LW1pcHMuYyAoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZCBhbiBlbnRyeSBmb3IgbWlwczo3MDAwLgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfc2V0X2lzYV9mbGFncyk6IEhhbmRsZSBiZmRfbWFjaF9taXBzNzAwMC4KCShtaXBzX21hY2hfZXh0ZW5zaW9ucyk6IEFkZCBhbiBlbnRyeSBmb3IgaXQuCgoyMDAzLTA3LTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vdHIucG86IFVwZGF0ZSB3aXRoIGxhdGVzdCB2ZXJzaW9uLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2JmZC5wb3Q6IFJlZ2VuZXJhdGUuCgkqIE1ha2ZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMDctMTIgIEplZmYgQmFrZXIgIDxqYmFrZXJAcW54LmNvbT4KCgkqIGJmZC9jb25maWcuYmZkIChfX1FOWFRBUkdFVF9fKTogRGVmaW5lIGZvciBOZXV0cmlubyBhcmNoaXRlY3R1cmVzLgoJKiBiZmQvZWxmMzItYXJtLmggKEVMRl9NQVhQQUdFU0laRSk6IFNldCB0byA0ayBmb3IgTmV1dHJpbm8uCgkqIGJmZC9lbGYzMi1zaC5jIChFTEZfTUFYUEFHRVNJWkUpOiBTZXQgdG8gNGsgZm9yIE5ldXRyaW5vLgoJKiBiZmQvZWxmMzItcHBjLmMgKEVMRl9NQVhQQUdFU0laRSk6IFNldCB0byA0ayBmb3IgTmV1dHJpbm8uCgoyMDAzLTA3LTEyICBKZWZmIE11aXplbGFhciAgPG11aXplbGFhckByb2dlcnMuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9zZXRfc2VjdGlvbl9jb250ZW50cyk6IFNldCB0aGUKCUlNQUdFX0ZJTEVfMzJCSVRfTUFDSElORSBmbGFnIGZvciBQRSB0YXJnZXRzLgoKMjAwMy0wNy0xMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogYmZkLWluLmggKGJmZF9oODMwMF9wYWRfYWRkcmVzcyk6IERlY2xhcmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY3B1LWg4MzAwLmMgKGJmZF9oODMwMF9wYWRfYWRkcmVzcyk6IE5ldyBmdW5jdGlvbi4KCSogY29mZi1oODMwMC5jIChoODMwMF9yZWxvYzE2X2VzdGltYXRlKTogVXNlIGl0IHRvIGNhbm9uaWNhbGl6ZQoJYWRkcmVzc2VzIGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIHRoZXkgY2FuIGJlIHJlbGF4ZWQuCgkoaDgzMDBfcmVsb2MxNl9leHRyYV9jYXNlcyk6IExpa2V3aXNlIGZvciB0aGUgUl9NT1ZMMiBzYW5pdHkgY2hlY2suCglEb24ndCBjb21wbGFpbiBhYm91dCBvdmVyZmxvd3MgaW4gZ2VuZXJhbCA4LWJpdCByZWxvY2F0aW9ucy4KCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbik6IFVzZSBiZmRfaDgzMDBfcGFkX2FkZHJlc3MuCglGaXggaGFuZGxpbmcgb2YgUl9IOF9ESVIyNEE4LgoKMjAwMy0wNy0xMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmMzItaDgzMDAuYzogQ29udmVydCBmdW5jdGlvbiBwcm90b3R5cGVzIGFuZCBkZWZpbml0aW9ucwoJdG8gQzkwIHN5bnRheC4KCSogY29mZi1oODMwMC5jOiBMaWtld2lzZS4KCSogY3B1LWg4MzAwLmM6IExpa2V3aXNlLgoKMjAwMy0wNy0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmZkLnBvdDogTGlrZXdpc2UuCgoyMDAzLTA3LTEwICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZWxmMzIteHRlbnNhLmMgKGVsZl94dGVuc2FfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBDcmVhdGUgbmV3CgkuZ290LmxvYyBzZWN0aW9uLiAgRG8gbm90IHNldCBTRUNfQUxMT0Mgb3IgU0VDX0xPQUQgZmxhZ3MgZm9yIHRoZQoJLnh0LmxpdC5wbHQgc2VjdGlvbi4KCShlbGZfeHRlbnNhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNldCBzaXplIG9mIHRoZSAuZ290LmxvYyBzZWN0aW9uCglhbmQgYWxsb2NhdGUgbWVtb3J5IGZvciBpdC4KCShlbGZfeHRlbnNhX2NvbWJpbmVfcHJvcF9lbnRyaWVzKTogQ29weSBjb250ZW50cyBvZiAueHQubGl0IG91dHB1dAoJc2VjdGlvbiB0byB0aGUgLmdvdC5sb2Mgc2VjdGlvbi4KCShlbGZfeHRlbnNhX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogRml4IHVwIGNhbGwgdG8KCWVsZl94dGVuc2FfY29tYmluZV9wcm9wX2VudHJpZXMgYW5kIHNldCBEVF9YVEVOU0FfR09UX0xPQ19PRkYgdG8KCXRoZSBhZGRyZXNzIG9mIC5nb3QubG9jLgoJKHJlbGF4X3Byb3BlcnR5X3NlY3Rpb24pOiBTaHJpbmsgLmdvdC5sb2MgdG8gbWF0Y2ggY2hhbmdlcyBpbiBhbnkKCWxpdGVyYWwgdGFibGUgc2VjdGlvbi4KCSh4dGVuc2FfaXNfcHJvcGVydHlfc2VjdGlvbik6IENoYW5nZSB0byBtYXRjaAoJeHRlbnNhX2dldF9wcm9wZXJ0eV9zZWN0aW9uX25hbWUuCgkoeHRlbnNhX2lzX2xpdHRhYmxlX3NlY3Rpb24pOiBOZXcuCgoyMDAzLTA3LTEwICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoSUE2NF9IT1dUTyk6IFNldCBkc3RfbWFzayB0byAtMSBpbnN0ZWFkIG9mCgktMUxMLgoKMjAwMy0wNy0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1hbTMzbGluLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IGVsZjMyLWFtMzNsaW4uYyBub3QgZWxmMzItYW0zM2xpbi5sby4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDctMTAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCTIwMDEtMDktMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbGYzMi1hbTMzbGluLmMgKEVMRl9NQUNISU5FX0NPREUpOiBSZWRlZmluZSB0byBFTV9NTjEwMzAwLgoJKEVMRl9NQUNISU5FX0FMVDEpOiBEZWZpbmUgdG8gRU1fQ1lHTlVTX01OMTAzMDAuCgkyMDAxLTA2LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCSogZWxmMzItYW0zM2xpbi5jOiBSZW5hbWUgZ2xvYmFsIGZ1bmN0aW9ucy4KCTIwMDEtMDUtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcuYmZkIChhbTMzXzIuMCwgYW0zM18yLjAtKi1saW51eCopOiBBZGRlZC4KCSogY29uZmlndXJlLmluIChiZmRfZWxmMzJfYW0zM2xpbl92ZWMpOiBBZGRlZC4KCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkZWQgZWxmMzItYW0zM2xpbi5sby4KCShlbGYzMi1hbTMzbGluLmxvKTogTGlzdCBkZXBlbmRlbmNpZXMuCgkqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgTWFrZWZpbGUuaW46IFJlYnVpbHQuCgkqIGVsZi1tMTAzMDAuYyAoVEFSR0VUX0xJVFRMRV9TWU0sIFRBUkdFVF9MSVRUTEVfTkFNRSwKCUVMRl9BUkNILCBFTEZfTUFDSElORV9DT0RFLCBFTEZfTUFYUEFHRVNJWkUpOiBEZWZpbmUgb25seSBpZgoJRUxGX0FSQ0ggd2FzIG5vdCBkZWZpbmVkIGJlZm9yZS4KCShlbGZfc3ltYm9sX2xlYWRpbmdfY2hhcik6IERlZmluZSBpZiBub3QgZGVmaW5lZC4KCSogZWxmMzItYW0zM2xpbi5jOiBPdmVycmlkZSB0aGUgZGVmaW5pdGlvbnMgYWJvdmUuCgkqIHRhcmdldHMuYyAoYmZkX2VsZjMyX2FtMzNsaW5fdmVjKTogTmV3LgoKMjAwMy0wNy0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJMjAwMi0xMi0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVsZi1tMTAzMDAuYyAoZWxmMzJfbW4xMDMwMF9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXRpYWxpemUKCXBjcmVsX3JlbG9jc19jb3BpZWQuCgkyMDAxLTEyLTEzICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZWxmLW0xMDMwMC5jIChFTEZfRFlOQU1JQ19JTlRFUlBSRVRFUik6IFJlbmFtZWQgZnJvbQoJbGQtbGludXguc28uMiB0byBsZC5zby4xLgoJMjAwMS0xMC0xMCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVsZi1tMTAzMDAuYyAoZWxmX21uMTAzMDBfc2l6ZW9mX3BsdDApOiBOZXcgbWFjcm8uCgkoX2JmZF9tbjEwMzAwX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBVc2UgaXQuCgkoX2JmZF9tbjEwMzAwX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jIChfYmZkX21uMTAzMDBfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFsbG9jYXRlCgkucmVsYS4qIHNlY3Rpb24gY29udGVudHMgd2l0aCBiZmRfemFsbG9jLgoJMjAwMS0wOS0yNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVsZi1tMTAzMDAuYzogQWRkZWQgZGVjbGFyYXRpb25zIGZvciBmdW5jdGlvbnMgbWlzc2luZyB0aGVtLgoJTWVyZ2Ugc29tZSBzaGFyZWQtbGlicmFyeSBjaGFuZ2VzIGZyb20gdGhlIGkzODYgYmFjay1lbmQuICBVc2UKCVJfTU4xMDMwMF9SRUxBVElWRSBpbnN0ZWFkIG9mIFJfTU4xMDMwMF9QQ1JFTDMyIGFuZAoJUl9NTjEwMzAwX0dMT0JfREFUIGluc3RlYWQgb2YgUl9NTjEwMzAwXzMyIHdoZXJlIGFwcHJvcHJpYXRlLgoJKHN0cnVjdCBlbGYzMl9tbjEwMzAwX2xpbmtfaGFzaF9lbnRyeSk6IFJlbW92ZSBkdXBsaWNhdGVzIG9mCgltZW1iZXJzIG9mIGVsZl9saW5rX2hhc2hfZW50cnkuICBBZGp1c3RlZCByZWZlcmVuY2VzLgoJKG1uMTAzMDBfZWxmX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBkeW5vYmogd2FzIGFscmVhZHkgbG9hZGVkCglpbnRvIGEgbG9jYWwgdmFyaWFibGUsIHVzZSBpdC4KCTIwMDEtMDktMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoJKiBlbGYtbTEwMzAwLmM6IEFkZCBtaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZXMuCgkyMDAxLTA4LTI0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgY29tcHV0ZQoJcmVsb2NhdGlvbiBmb3IgZHluYW1pYyByZWxvY2F0aW9ucy4KCTIwMDEtMDUtMTYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiByZWxvYy5jIChCRkRfUkVMT0NfTU4xMDMwMF9HT1RPRkYyNCk6IE5ldy4KCSogZWxmLW0xMDMwMC5jOiBJbnRyb2R1Y2UgR09UUEMxNiwgR09UT0ZGMjQsIEdPVE9GRjE2IGFuZAoJUExUMTYsIGFuZCByZW5hbWUgR09UUEMgdG8gR09UUEMzMiBhbmQgR09UT0ZGIHRvIEdPVE9GRjMyLgoJKF9iZmRfbW4xMDMwMF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBNb3ZlIGNyZWF0aW9uIG90IFBMVC4uLgoJKF9iZmRfbW4xMDMwMF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogLi4uIGhlcmUsIHNvIHRoYXQgaXRzCglhZHJlc3MgaXMgYWxyZWFkeSBrbm93biBhdCB0aGUgdGltZSB3ZSBjb21wdXRlIHJlbGF4YXRpb25zLgoJKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBSZWxheCBHT1RQQzMyLCBHT1RPRkYzMiwgR09UMzIKCWFuZCBQTFQzMiB0byBuYXJyb3dlciByZWxvY2F0aW9ucy4KCSogbGliYmZkLmgsIGJmZC1pbjIuaDogUmVidWlsdC4KCTIwMDEtMDQtMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiByZWxvYy5jIChCRkRfUkVMT0NfTU4xMDMwMF9HT1QzMiwgQkZEX1JFTE9DX01OMTAzMDBfR09UMjQsCglCRkRfUkVMT0NfTU4xMDMwMF9HT1QxNiwgQkZEX1JFTE9DX01OMTAzMDBfQ09QWSwKCUJGRF9SRUxPQ19NTjEwMzAwX0dMT0JfREFULCBCRkRfUkVMT0NfTU4xMDMwMF9KTVBfU0xPVCwKCUJGRF9SRUxPQ19NTjEwMzAwX1JFTEFUSVZFKTogTmV3IHJlbG9jcy4KCSogbGliYmZkLmgsIGJmZC1pbjIuaDogUmVidWlsdC4KCSogZWxmLW0xMDMwMC5jIChzdHJ1Y3QgZWxmX21uMTAzMDBfcGNyZWxfcmVsb2NzX2NvcGllZCk6IE5ldy4KCShzdHJ1Y3QgZWxmMzJfbW4xMDMwMF9saW5rX2hhc2hfZW50cnkpOiBBZGRlZCBEU08tcmVsYXRlZAoJZmllbGRzLgoJKGVsZl9tbjEwMzAwX2hvd3RvKTogRGVmaW5lZCBuZXcgcmVsb2NhdGlvbiB0eXBlcy4KCShtbjEwMzAwX3JlbG9jX21hcCk6IE1hcCB0aGVtLgoJKF9iZmRfbW4xMDMwMF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogTmV3IGZuLgoJKG1uMTAzMDBfZWxmX2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBQSUMgcmVsb2NzLgoJKG1uMTAzMDBfZWxmX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIERTT3MuCgkoUExUMF9FTlRSWV9TSVpFLCBQTFRfRU5UUllfU0laRSwgUElDX1BMVF9FTlRSWV9TSVpFKTogTmV3IG1hY3Jvcy4KCShlbGZfbW4xMDMwMF9wbHQwX2VudHJ5LCBlbGZfbW4xMDMwMF9wbHRfZW50cnksCgllbGZfbW4xMDMwMF9waWNfcGx0X2VudHJ5KTogTmV3LgoJKGVsZl9tbjEwMzAwX3NpemVvZl9wbHQsIGVsZl9tbjEwMzAwX3BsdF9wbHQwX29mZnNldCwKCWVsZl9tbjEwMzAwX3BsdDBfbGlua2VyX29mZnNldCwgZWxmX21uMTAzMDBfcGx0MF9nb3RpZF9vZmZzZXQsCgllbGZfbW4xMDMwMF9wbHRfdGVtcF9vZmZzZXQsIGVsZl9tbjEwMzAwX3BsdF9zeW1ib2xfb2Zmc2V0LAoJZWxmX21uMTAzMDBfcGx0X3JlbG9jX29mZnNldDogTmV3IG1hY3Jvcy4KCShFTEZfRFlOQU1JQ19JTlRFUlBSRVRFUik6IExpa2V3aXNlLgoJKF9iZmRfbW4xMDMwMF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9tbjEwMzAwX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShfYmZkX21uMTAzMDBfZWxmX2Rpc2NhcmRfY29waWVzKTogTGlrZXdpc2UuCgkoX2JmZF9tbjEwMzAwX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShfYmZkX21uMTAzMDBfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKF9iZmRfbW4xMDMwMF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGZfYmFja2VuZF9jYW5fZ2Nfc2VjdGlvbnMsCgllbGZfYmFja2VuZF9jcmVhdGVfZHluYW1pY19zZWN0aW9ucywKCWVsZl9iYWNrZW5kX2FkanVzdF9keW5hbWljX3NlY3Rpb25zLAoJZWxmX2JhY2tlbmRfc2l6ZV9keW5hbWljX3NlY3Rpb25zLAoJZWxmX2JhY2tlbmRfZmluaXNoX2R5bmFtaWNfc3ltYm9sLAoJZWxmX2JhY2tlbmRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMsIGVsZl9iYWNrZW5kX3dhbnRfZ290X3BsdCwKCWVsZl9iYWNrZW5kX3BsdF9yZWFkb25seSwgZWxmX2JhY2tlbmRfd2FudF9wbHRfc3ltLAoJZWxmX2JhY2tlbmRfZ290X2hlYWRlcl9zaXplLCBlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOiBOZXcKCW1hY3Jvcy4KCjIwMDMtMDctMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCTIwMDEtMDUtMDYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbGYtbTEwMzAwLmMgKGNvbXB1dGVfZnVuY3Rpb25faW5mbyk6IEFjY291bnQgZm9yIEFNMzMKCXJlZ2lzdGVycyBpbiBgbW92bScgd2hlbiBjb21wdXRpbmcgc3RhY2sgc3BhY2UgZm9yIGBjYWxsJyB3aGVuCglsaW5raW5nIGZvciBBTTMzLzIuMCBsaW5rLgoJMjAwMC0wNC0wMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQGN5Z251cy5jb20+CgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2FtMzNfMik6IFJlbmFtZWQgZnJvbSBiZmRfbWFjaF9hbTMzMi4KCSogYmZkLWluMi5oOiBSZWJ1aWx0LgoJKiBjcHUtbTEwMzAwLmMgKGJmZF9hbTMzXzJfYXJjaCk6IFJlbmFtZWQgZnJvbSBiZmRfYW0zMzJfYXJjaC4KCSogZWxmLW0xMDMwMC5jOiBVcGRhdGVkLgoJMjAwMC0wMy0zMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQGN5Z251cy5jb20+CgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2FtMzMyKTogRGVmaW5lZC4KCSogYmZkLWluMi5oOiBSZWJ1aWx0LgoJKiBjcHUtbTEwMzAwLmMgKGJmZF9hbTMzMl9hcmNoKTogRGVmaW5lZC4KCShiZmRfYW0zM19hcmNoKTogQ2hhaW5lZCB3aXRoIGFtMzMtMi4KCSogZWxmLW0xMDMwMC5jIChlbGZfbW4xMDMwMF9tYWNoKTogSGFuZGxlIGFtMzMyLgoJKF9iZmRfbW4xMDMwMF9lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoKMjAwMy0wNy0wOSAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKElBNjRfSE9XVE8pOiBTZXQgZHN0X21hc2sgdG8gLTFMTC4KCjIwMDMtMDctMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoYmZkX2VsZjY0X21rb2JqZWN0KTogRGVmaW5lLgoJKHN0cnVjdCBwcGM2NF9lbGZfb2JqX3RkYXRhKTogTmV3LgoJKHBwYzY0X2VsZl90ZGF0YSwgcHBjNjRfdGxzbGRfZ290KTogRGVmaW5lLgoJKHBwYzY0X2VsZl9ta29iamVjdCk6IE5ldyBmdW5jdGlvbi4KCShzdHJ1Y3QgZ290X2VudHJ5KTogQWRkICJvd25lciIuICBNb3ZlICJ0bHNfdHlwZSIuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBEZWxldGUgInJlbGdvdCIsICJ0bHNsZF9nb3QiLgoJKHBwYzY0X2VsZl9pbml0X3N0dWJfYmZkKTogTmV3IGZ1bmN0aW9uLgoJKGNyZWF0ZV9nb3Rfc2VjdGlvbik6IENyZWF0ZSBoZWFkZXIgLmdvdCBpbiBkeW5vYmouICBDcmVhdGUgLmdvdAoJYW5kIC5yZWxhLmdvdCBpbiBlYWNoIGJmZC4gIFN0YXNoIHBvaW50ZXJzIGluIHBwYzY0X2VsZl9vYmpfdGRhdGEuCgkocHBjNjRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgY2FsbCBjcmVhdGVfZ290X3NlY3Rpb24uCglMb29rIGZvciBkeW5vYmogLmdvdCwgYW5kIHRlc3QgaXQuCgkocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQWRqdXN0IGZvciBjaGFuZ2VkIGdvdC4KCSh1cGRhdGVfbG9jYWxfc3ltX2luZm8pOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfdGxzX29wdGltaXplKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX25leHRfdG9jX3NlY3Rpb24pOiBVcGRhdGUgY29tbWVudC4KCSh0b2NfYWRqdXN0aW5nX3N0dWJfbmVlZGVkKTogUmVtb3ZlIHVubmVlZGVkIGNhc3QuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogQ2hlY2sgZm9yIHN0dWIgc2VjdGlvbnMgaW4gc3R1YiBiZmQgYnkKCXRlc3Rpbmcgc2VjdGlvbiBmbGFncy4KCShwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IExpa2V3aXNlLiAgUmVtb3ZlIHN0dWJfYmZkIHBhcmFtLgoJKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFdyaXRlIG91dCBnb3Qgc2VjdGlvbnMuCgkoZnVuY19kZXNjX2FkanVzdCk6IENvcHkgb3ZlciBkeW5hbWljIGluZm8gZm9yIHVuZGVmIHdlYWtzLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX2luaXRfc3R1Yl9iZmQpOiBEZWNsYXJlLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogVXBkYXRlIHByb3RvdHlwZS4KCSogZWxmbGluay5oIChlbGZfbGlua19zb3J0X3JlbG9jcyk6IFVzZSBsaW5rX29yZGVycyB0byBmaW5kIHJlbGR5bgoJaW5wdXQgc2VjdGlvbnMgcmF0aGVyIHRoYW4gc2Nhbm5pbmcgZHlub2JqLgoKMjAwMy0wNy0wOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9saW5rX2hhc2hfZW50cnkpOiBSZW1vdmUgbWluX2R5bl9yZWxvY19pbmRleC4KCShiZmRfbWlwc19lbGZfc3dhcF9tc3ltX2luLCBiZmRfbWlwc19lbGZfc3dhcF9tc3ltX291dCk6IERlbGV0ZS4KCShtaXBzX2VsZl9jcmVhdGVfbXN5bV9zZWN0aW9uKTogRGVsZXRlLgoJKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBEb24ndCBzZXQgbWluX2R5bl9yZWxvY19pbmRleC4KCShfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNyZWF0ZSAubXN5bS4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNhbGN1bGF0ZSBpdHMgc2l6ZS4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGFkZCBEVF9NSVBTX01TWU0uCgkoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEb24ndCBhZGQgc3ltYm9scyB0byAubXN5bS4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAzLTA3LTA5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2lyaXg2X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IE1ha2UgdGhlCglzeW1ib2xzIHByb3RlY3RlZC4KCjIwMDMtMDctMDkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IEZpeCBoYW5kbGluZwoJb2YgcmVsb2NhdGlvbnMgd2hvc2Ugb2Zmc2V0IGlzIC0yLgoKMjAwMy0wNy0wOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogYmZkL2VsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IFRyZWF0Cglmb3JjZWQtbG9jYWwgc3ltYm9scyBsaWtlIG90aGVyIGxvY2Fscy4gIERvbid0IGNyZWF0ZSByZWxvY2F0aW9ucwoJYWdhaW5zdCBTVE5fVU5ERUYgaW4gaXJpeCBvYmplY3RzLgoKMjAwMy0wNy0wOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogYmZkL2VsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IEluIFNHSS0KCWNvbXBhdGlibGUgb2JqZWN0cywgYWRkIHRoZSB2YWx1ZXMgb2YgZGVmaW5lZCBleHRlcm5hbCBzeW1ib2xzCgl0byB0aGUgYWRkZW5kLgoKMjAwMy0wNy0wOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IEFsd2F5cwoJaW5pdGlhbGl6ZSBhIEdPVCBlbnRyeSB0byB0aGUgc3ltYm9sJ3Mgc3RfdmFsdWUuCgoyMDAzLTA3LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX29ial90ZGF0YSk6IE1vdmUgbGlua2VyX3NlY3Rpb25fcG9pbnRlcnMuLgoJKiBlbGYzMi1wcGMuYyAoc3RydWN0IHBwY19lbGZfb2JqX3RkYXRhKTogLi50byBoZXJlLiAgTmV3LgoJKHBwY19lbGZfdGRhdGEpOiBEZWZpbmUuCgkoZWxmX2xvY2FsX3B0cl9vZmZzZXRzKTogQWRqdXN0LgoJKHBwY19lbGZfbWtvYmplY3QpOiBOZXcgZnVuY3Rpb24uCgkoYmZkX2VsZjMyX21rb2JqZWN0KTogRGVmaW5lLgoKCSogZWxmY29kZS5oIChlbGZfb2JqZWN0X3ApOiBBbGxvY2F0ZSB0ZGF0YSB2aWEgX2JmZF9zZXRfZm9ybWF0LgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoJKiBzZWN0aW9uLmMgKGJmZF9zZWN0aW9uX2luaXQpOiBSZW1vdmUgcHJvdG90eXBlLgoKMjAwMy0wNy0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9saW5rX2hhc2hfZW50cnkpOiBSZW1vdmUgbGlua2VyX3NlY3Rpb25fcG9pbnRlcgoJZmllbGQuCgkoZW51bSBlbGZfbGlua2VyX3NlY3Rpb25fZW51bSk6IERlbGV0ZS4KCShzdHJ1Y3QgZWxmX2xpbmtlcl9zZWN0aW9uKTogRGVsZXRlLgoJKHN0cnVjdCBlbGZfbGlua2VyX3NlY3Rpb25fcG9pbnRlcnMpOiBEZWxldGUuCgkoc3RydWN0IGVsZl9vYmpfdGRhdGEpOiBSZW1vdmUgI2lmIDAgY2h1bmsuICBSZW1vdmUgbGlua2VyX3NlY3Rpb24uCglNYWtlIGxpbmtlcl9zZWN0aW9uX3BvaW50ZXJzIGEgdm9pZCoqLgoJKGVsZl9sb2NhbF9wdHJfb2Zmc2V0cywgZWxmX2xpbmtlcl9zZWN0aW9uKTogRG9uJ3QgZGVmaW5lLgoJKiBlbGYzMi1wcGMuYyAoZW51bSBlbGZfbGlua2VyX3NlY3Rpb25fZW51bSk6IE5ldywgY3V0LWRvd24gdmVyc2lvbgoJb2Ygb2xkIGl0ZW0gaW4gZWxmLWJmZC5oLgoJKHN0cnVjdCBlbGZfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCShzdHJ1Y3QgZWxmX2xpbmtlcl9zZWN0aW9uX3BvaW50ZXJzKTogTGlrZXdpc2UuCgkoZWxmX2xvY2FsX3B0cl9vZmZzZXRzKTogRGVmaW5lLgoJKHN0cnVjdCBwcGNfZWxmX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCBsaW5rZXJfc2VjdGlvbl9wb2ludGVyLgoJKHBwY19lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBJbml0IGl0LgoJKHN0cnVjdCBwcGNfZWxmX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzYnNzLgoJKHBwY19lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IHptYWxsb2MgcmF0aGVyIHRoYW4gY2xlYXJpbmcKCWluZGl2aWR1YWwgZmllbGRzLgoJKGVsZl9jcmVhdGVfbGlua2VyX3NlY3Rpb24pOiBGb2xkIGludG8uLgoJKHBwY19lbGZfY3JlYXRlX2xpbmtlcl9zZWN0aW9uKTogLi5oZXJlLiAgUmVtb3ZlIGhvbGVfc2l6ZSBjb2RlLgoJTWFrZSByZWxhIHNlY3Rpb24gaGVyZSBpZiBzaGFyZWQuCgkoZWxmX2ZpbmRfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IFBhc3MgbHNlY3QgcmF0aGVyIHRoYW4gZW51bS4KCShlbGZfY3JlYXRlX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBBZGp1c3QuICB6YWxsb2MgcmF0aGVyIHRoYW4KCWNsZWFyaW5nIGluIGEgbG9vcC4KCShlbGZfZmluaXNoX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBBZGp1c3QuICBEb24ndCBtYWtlIHJlbGEKCXNlY3Rpb24gaGVyZS4KCShwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IEFkanVzdC4KCShwcGNfZWxmX2FkZF9zeW1ib2xfaG9vayk6IFRpZ2h0ZW4gaGFzaCBjcmVhdG9yIHRlc3QuICBSZW1vdmUgY29kZQoJY3JlYXRpbmcgLnNic3MgYnkgaGFuZC4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogQWRqdXN0LgoKMjAwMy0wNy0wNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9ob3d0b190YWJsZSk6IENoYW5nZSBSXzM5MF9HT1QxMiB0bwoJY29tcGxhaW5fb3ZlcmZsb3dfYml0ZmllbGQuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX2hvd3RvX3RhYmxlKTogQ2hhbmdlIFJfMzkwX0dPVDEyIHRvCgljb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZC4KCjIwMDMtMDctMDQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLWJmZC5oIChTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCwgU1lNQk9MX0NBTExTX0xPQ0FMKTogUmV0dXJuCgl0cnVlIGV2ZW4gaWYgLXBpZS4KCjIwMDMtMDctMDQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChzdHJ1Y3QgZWxmTk5faWE2NF9saW5rX2hhc2hfdGFibGUpOiBBZGQgcmVsX2ZwdHJfc2VjLgoJKGVsZk5OX2lhNjRfZHluYW1pY19zeW1ib2xfcCk6IENoYW5nZSBpbmZvLT5zaGFyZWQgaW50bwoJIWluZm8tPmV4ZWN1dGFibGUuCgkoZ2V0X2ZwdHIpOiBGb3IgLXBpZSBjcmVhdGUgLm9wZCBhcyB3cml0YWJsZSBzZWN0aW9uIGFuZCBjcmVhdGUKCS5yZWxhLm9wZCBhcyB3ZWxsLgoJKGVsZk5OX2lhNjRfY2hlY2tfcmVsb2NzKTogQ2hhbmdlIGluZm8tPnNoYXJlZCBpbnRvCgkhaW5mby0+ZXhlY3V0YWJsZS4KCShhbGxvY2F0ZV9mcHRyKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfZHlucmVsX2VudHJpZXMpOiBBY2NvdW50IGZvciBhIHJlbGF0aXZlIHJlbG9jIGZvciAtcGllCglAZnB0cigpLiAgRG9uJ3QgYWNjb3VudCBmb3IgYSByZWxhdGl2ZSByZWxvYyBpZiAtcGllIHdhbnRfbHRvZmZfZnB0cgoJZm9yIHVuZGVmd2VhayBzeW1ib2wuICBBY2NvdW50IGZvciBhbiBJUExUIHJlbG9jIGluIC5yZWxhLm9wZAoJc2VjdGlvbiBpZiAtcGllLgoJKHNldF9nb3RfZW50cnkpOiBEb24ndCBjcmVhdGUgYSByZWxhdGl2ZSByZWxvYyBpZiAtcGllCgl3YW50X2x0b2ZmX2ZwdHIgZm9yIHVuZGVmd2VhayBzeW1ib2wuCgkoc2V0X2ZwdHJfZW50cnkpOiBFbWl0IGFuIElQTFQgcmVsb2MgaW4gLnJlbGEub3BkIGZvciAtcGllLgoJKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IEVtaXQgYSByZWxhdGl2ZSByZWxvYyBmb3IgLXBpZQoJQGZwdHIoKS4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogSXNzdWUgdW5kZWZpbmVkX3N5bWJvbAoJZXZlbiBpZiAtcGllLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDMtMDctMDQgIFBhdWwgQ2xhcmtlIDxwYXVsY0BzZW5ldC5jb20uYXU+CgoJKiBlbGYzMi1oODMwMC5jIChSX0g4X0RJUjMyQTE2KTogRml4IG5hbWUgZmllbGQuCgkoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbikgPFJfSDhfRElSMTZBOD46IEFkanVzdCBwb3NpdGlvbiBvZiByZWxvY2F0aW9uLgoJPFJfSDhfRElSMzJBMTY+OiBGaXggdHlwZSBvZiByZWxvY2F0aW9uLgoKMjAwMy0wNy0wNCAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBSZXR1cm4gaWYgZHluYW1pYwoJc2VjdGlvbnMgd2VyZSBjcmVhdGVkIGFscmVhZHkuICBSZW1vdmUgdW5uZWNlc3NhcnkgdGVzdHMgb2YKCXRoZSBwcmV2aW91cyBjaGFuZ2UuCgoyMDAzLTA3LTA0ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNhbGwKCWJmZF9tYWtlX3NlY3Rpb24gZm9yIGV4aXN0aW5nIHNlY3Rpb25zLgoKMjAwMy0wNy0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX2NoZWNrX3JlbG9jcyk6IERvbid0IGNhbGwKCWNyZWF0ZV9nb3Rfc2VjdGlvbiBpZiB3ZSBhbHJlYWR5IGhhdmUgZG9uZSBzby4KCSogZWxmMzItc2guYyAoc2hfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKHNoX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBEZWxldGUgImR5bm9iaiIgdmFyLiAgVXNlCglodGFiLT5yb290LmR5bm9iaiBpbnN0ZWFkLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShzaF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCgkqIHNlY3Rpb24uYyAoYmZkX21ha2Vfc2VjdGlvbik6IFJldHVybiBOVUxMIGZvciBleGlzdGluZyBzZWN0aW9uLgoKMjAwMy0wNy0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgY2FsbAoJcHBjX2VsZl9jcmVhdGVfZ290IGlmIHdlJ3ZlIGFscmVhZHkgZG9uZSBzby4KCgkqIGVsZi1iZmQuaCAoX2JmZF9lbGZfY3JlYXRlX2xpbmtlcl9zZWN0aW9uKSBEb24ndCBkZWNsYXJlLgoJKF9iZmRfZWxmX2ZpbmRfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9jcmVhdGVfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9maW5pc2hfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKGJmZF9lbGY2NF9jcmVhdGVfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKGJmZF9lbGY2NF9maW5pc2hfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKF9iZmRfZWxmX21ha2VfbGlua2VyX3NlY3Rpb25fcmVsYSk6IExpa2V3aXNlLgoJKiBlbGZjb2RlLmggKGVsZl9jcmVhdGVfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IERvbid0IGRlZmluZS4KCShlbGZfZmluaXNoX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmbGluay5jIChfYmZkX2VsZl9tYWtlX2xpbmtlcl9zZWN0aW9uX3JlbGEpOiBEZWxldGUuCgkoX2JmZF9lbGZfY3JlYXRlX2xpbmtlcl9zZWN0aW9uKTogTW92ZSB0aGlzIGZ1bmN0aW9uLi4KCShfYmZkX2VsZl9maW5kX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiAuLmFuZCB0aGlzLi4KCSogZWxmbGluay5oIChlbGZfY3JlYXRlX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiAuLmFuZCB0aGlzLi4KCShlbGZfZmluaXNoX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiAuLmFuZCB0aGlzLi4KCSogZWxmMzItcHBjLmM6IC4udG8gaGVyZSwgcmVuYW1pbmcgdG8gdGhlIGZvbGxvd2luZywgYW5kIGFkanVzdGluZwoJY2FsbHMuCgkoZWxmX2NyZWF0ZV9saW5rZXJfc2VjdGlvbik6IENvbnZlcnQgdG8gQzkwLCB0aWR5LgoJKGVsZl9maW5kX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGZfY3JlYXRlX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGZfZmluaXNoX3BvaW50ZXJfbGlua2VyX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jOiBEZWxldGUgI2lmIDAgY29kZS4KCjIwMDMtMDctMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2Z1bmNfZGVzY19hZGp1c3QpOiBEb24ndCBhbGxvdyBfc2F2ZWYqIGFuZAoJX3Jlc3RmKiB0byBiZSBzYXRpc2ZpZWQgYnkgc2hhcmVkIGxpYnMsIGFuZCBhbHdheXMgZm9yY2UgdGhlbSBsb2NhbC4KCSh0b2NfYWRqdXN0aW5nX3N0dWJfbmVlZGVkKTogQXZvaWQgc2Nhbm5pbmcgbGlua2VyIGNyZWF0ZWQgc2VjdGlvbnMuCglDb3JyZWN0IHRlc3QgZm9yICJibCIuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24gPFJfUFBDNjRfVExTPik6IENvcnJlY3QgdGVzdCBmb3IKCXByaW1hcnkgb3Bjb2RlIDMxLgoKMjAwMy0wNy0wMSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGVsZjMyLXMzOTAuYyAoczM5MF9lbGZfbGRpc3BfcmVsb2MpOiBOZXcgcHJvdG90eXBlLgoJKHMzOTBfdGxzX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9ob3d0b190YWJsZSk6IEFkZCBsb25nIGRpc3BsYWNlbWVudCByZWxvY2F0aW9ucyBSXzM5MF8yMCwKCVJfMzkwX0dPVDIwLCBSXzM5MF9HT1RQTFQyMCBhbmQgUl8zOTBfVExTX0dPVElFMjAuCgkoZWxmX3MzOTBfcmVsb2NfdHlwZV9sb29rdXApOiBMaWtld2lzZS4KCShlbGZfczM5MF9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShlbGZfczM5MF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmM6IFNhbWUgY2hhbmdlcyBhcyBmb3IgZWxmMzItczM5MC5jLgoJKiByZWxvYy5jOiBBZGQgbG9uZyBkaXNwbGFjZW1lbnQgcmVsb2NhdGlvbnMgQkZEX1JFTE9DXzM5MF8yMCwKCUJGRF9SRUxPQ18zOTBfR09UMjAsIEJGRF9SRUxPQ18zOTBfR09UUExUMjAgYW5kCglCRkRfUkVMT0NfMzkwX1RMU19HT1RJRTIwLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBMaWtld2lzZS4KCjIwMDMtMDYtMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjcHUtaWE2NC1vcGMuYyAoZXh0X2ltbXNfc2NhbGVkKTogRG9uJ3Qgc2lnbiBleHRlbmQgdXNpbmcgc2hpZnRzLgoJKGluc19pbW1zLCBpbnNfaW1tc20xdTQpOiBMaWtld2lzZS4gIFdhcm5pbmcgZml4LgoKMjAwMy0wNi0yOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFyY2hpdmUuYzogQ29udmVydCB0byBDOTAsIHJlbW92ZSB1bm5lY2Vzc2FyeSBwcm90b3R5cGVzIGFuZCBjYXN0cy4KCVJlcGxhY2UgUFRSIHdpdGggdm9pZCAqLiAgRm9ybWF0dGluZy4KCSogYXJjaGl2ZTY0LmM6IExpa2V3aXNlLgoJKiBhcmNodXJlcy5jOiBMaWtld2lzZS4KCSogYmZkLWluLmg6IExpa2V3aXNlLgoJKiBiZmQuYzogTGlrZXdpc2UuCgkqIGJmZGlvLmM6IExpa2V3aXNlLgoJKiBiZmR3aW4uYzogTGlrZXdpc2UuCgkqIGNhY2hlLmM6IExpa2V3aXNlLgoJKiBjb3JlZmlsZS5jOiBMaWtld2lzZS4KCSogZm9ybWF0LmM6IExpa2V3aXNlLgoJKiBpbml0LmM6IExpa2V3aXNlLgoJKiBsaWJiZmQtaW4uaDogTGlrZXdpc2UuCgkqIGxpYmJmZC5jOiBMaWtld2lzZS4KCSogbGlua2VyLmM6IExpa2V3aXNlLgoJKiBvcG5jbHMuYzogTGlrZXdpc2UuCgkqIHJlbG9jLmM6IExpa2V3aXNlLgoJKiBzZWN0aW9uLmM6IExpa2V3aXNlLgoJKiBzaW1wbGUuYzogTGlrZXdpc2UuCgkqIHN5bXMuYzogTGlrZXdpc2UuCgkqIHRhcmdldHMuYzogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoJKiBlY29mZi5jIChiZmRfZGVidWdfc2VjdGlvbik6IEFkZCBtaXNzaW5nIGtlcHRfc2VjdGlvbiBpbml0aWFsaXphdGlvbi4KCSogbGliYmZkLWluLmggKF9iZmRfc2hfYWxpZ25fbG9hZF9zcGFuKTogRG9uJ3QgZGVjbGFyZSBpZiBkZWZpbmVkLgoJKiBsaWJiZmQuYyAoQ09FUkNFMzIsIEVJR0hUX0dBWklMTElPTik6IFNpbXBsaWZ5LgoJKGJmZF9nZXRiNjQpOiBSZXdyaXRlIHdpdGhvdXQgcGFyZW5zLgoJKGJmZF9nZXRsNjQsIGJmZF9nZXRiX3NpZ25lZF82NCwgYmZkX2dldGxfc2lnbmVkXzY0KTogTGlrZXdpc2UuCgkqIGNhY2hlLmMgKGluc2VydCwgc25pcCk6IFJlbW92ZSBJTkxJTkUuCgkqIGxpbmtlci5jIChiZmRfbGlua19hZGRfdW5kZWYpOiBMaWtld2lzZS4KCjIwMDMtMDYtMjkgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jOiBDb252ZXJ0IHRvIElTTyBDOTAgcHJvdG90eXBlcywgcmVtb3ZlCgl1bm5lY2Vzc2FyeSBwcm90b3R5cGVzLiAgUmVwbGFjZSBQVFIgd2l0aCB2b2lkICouCgkoZWxmNjRfeDg2XzY0X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFVzZSBTWU1CT0xfQ0FMTFNfTE9DQUwgdG8KCXRyaW0gcGx0IGVudHJpZXMuICBNb3ZlIHVuZGVmd2VhayBub24tZGVmYXVsdCB2aXNpYmlsaXR5IHRlc3QgLi4uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogLi4uIGZyb20gaGVyZS4KCShXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogUGFzcyBTSEFSRUQgaW5zdGVhZCBvZiBJTkZPLgoJQ2hhbmdlIGFsbCBjYWxsZXJzLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFVzZSBTWU1CT0xfQ0FMTFNfTE9DQUwuICBVc2UKCVNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMIGZvciBkeW5yZWxvYyBjaGVjay4KCShlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBTWU1CT0xfQ0FMTFNfTE9DQUwgZm9yCglkeW5yZWxvYyBhbmQgLmdvdCByZWxvY3MuCgkoZWxmNjRfeDg2XzY0X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFVzZSBTWU1CT0xfUkVGRVJFTkNFU19MT0NBTAoJZm9yIC5nb3QgcmVsb2NzLgoKMjAwMy0wNi0yOSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYzogQWxsb3cgbGF6eSBiaW5kaW5nIGZvciBSX01JUFNfSkFMUi4KCjIwMDMtMDYtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBvcG5jbHMuYyAoYmZkX2FkZF9nbnVfZGVidWdsaW5rX3NlY3Rpb24pOiBSZW5hbWUgdG8KCWJmZF9hZGRfZ251X2RlYnVnbGlua19zZWN0aW9uIGFuZCBvbmx5IGNyZWF0ZSB0aGUgc2VjdGlvbiwgZG8gbm90CglmaWxsIGluIGl0cyBjb250ZW50cy4KCShiZmRfZmlsbF9pbl9nbnVfZGVidWdsaW5rX3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uICBGaWxsIGluIHRoZQoJY29udGVudHMgb2YgYSAuZ251LWRlYnVnbGluayBzZWN0aW9uLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTA2LTI3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jOiBSZXZlcnQgLmdvdCBhbGlnbm1lbnQgdG8gMioqNC4KCjIwMDMtMDYtMjcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYzMi1taXBzLmM6IEZpeCBhZGRlbmQgZm9yIF9ncF9kaXNwIHNwZWNpYWwgc3ltYm9sLgoKMjAwMy0wNi0yNyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9mYWtlX3NlY3Rpb25zKTogUmVtb3ZlIG5vbi1kZWZhdWx0CglyZWxvY2F0aW9uIGhlYWRlciBzZXR1cC4KCjIwMDMtMDYtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9ob3d0b190YWJsZSk6IFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0LgoJKHBwY19lbGZfcmVsb2NfdHlwZV9sb29rdXApOiBNb2RpZnkgY29tbWVudC4KCShwcGNfZWxmX2luZm9fdG9faG93dG8pOiBEaXR0by4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEaXR0by4KCShwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IENhbGwgcHBjX2VsZl9ob3d0b19pbml0LgoKMjAwMy0wNi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFvdXQtbnMzMmsuYzogQ29ycmVjdCBzcGVsbGluZyBvZiAicmVsb2NhdGFibGUiLgoJKiBhb3V0eC5oOiBMaWtld2lzZS4KCSogYmZkLWluLmg6IExpa2V3aXNlLgoJKiBiZmQuYzogTGlrZXdpc2UuCgkqIGJvdXQuYzogTGlrZXdpc2UuCgkqIGNvZmYtYTI5ay5jOiBMaWtld2lzZS4KCSogY29mZi1hbHBoYS5jOiBMaWtld2lzZS4KCSogY29mZi1hcm0uYzogTGlrZXdpc2UuCgkqIGNvZmYtaTM4Ni5jOiBMaWtld2lzZS4KCSogY29mZi1pODYwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWk5NjAuYzogTGlrZXdpc2UuCgkqIGNvZmYtbTY4ay5jOiBMaWtld2lzZS4KCSogY29mZi1tODhrLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1pcHMuYzogTGlrZXdpc2UuCgkqIGNvZmYtb3IzMi5jOiBMaWtld2lzZS4KCSogY29mZi1wcGMuYzogTGlrZXdpc2UuCgkqIGNvZmYtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXNoLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXRpYzgwLmM6IExpa2V3aXNlLgoJKiBjb2ZmNjQtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmbGluay5jOiBMaWtld2lzZS4KCSogY3B1LW5zMzJrLmM6IExpa2V3aXNlLgoJKiBlY29mZi5jOiBMaWtld2lzZS4KCSogZWNvZmZsaW5rLmM6IExpa2V3aXNlLgoJKiBlbGYtYmZkLmg6IExpa2V3aXNlLgoJKiBlbGYtZWgtZnJhbWUuYzogTGlrZXdpc2UuCgkqIGVsZi1ocHBhLmg6IExpa2V3aXNlLgoJKiBlbGYtbTEwMjAwLmM6IExpa2V3aXNlLgoJKiBlbGYtbTEwMzAwLmM6IExpa2V3aXNlLgoJKiBlbGYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWFybS5oOiBMaWtld2lzZS4KCSogZWxmMzItYXZyLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1kMTB2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1kbHguYzogTGlrZXdpc2UuCgkqIGVsZjMyLWZyMzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWZydi5jOiBMaWtld2lzZS4KCSogZWxmMzItaDgzMDAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWk4NjAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWk5NjAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWlwMmsuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWlxMjAwMC5jOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxMS5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxeC5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1zcDQzMC5jOiBMaWtld2lzZS4KCSogZWxmMzItb3BlbnJpc2MuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYzogTGlrZXdpc2UuCgkqIGVsZjMyLXhzdG9ybXkxNi5jOiBMaWtld2lzZS4KCSogZWxmMzIteHRlbnNhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmM6IExpa2V3aXNlLgoJKiBlbGZjb2RlLmg6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmg6IExpa2V3aXNlLgoJKiBlbGZuMzItbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jOiBMaWtld2lzZS4KCSogaTM4NmxpbnV4LmM6IExpa2V3aXNlLgoJKiBpZWVlLmM6IExpa2V3aXNlLgoJKiBsaWJjb2ZmLWluLmg6IExpa2V3aXNlLgoJKiBsaW5rZXIuYzogTGlrZXdpc2UuCgkqIG02OGtsaW51eC5jOiBMaWtld2lzZS4KCSogcGRwMTEuYzogTGlrZXdpc2UuCgkqIHBlLW1pcHMuYzogTGlrZXdpc2UuCgkqIHBlWFhpZ2VuLmM6IExpa2V3aXNlLgoJKiByZWxvYy5jOiBMaWtld2lzZS4KCSogcmVsb2MxNi5jOiBMaWtld2lzZS4KCSogc3BhcmNsaW51eC5jOiBMaWtld2lzZS4KCSogc3Vub3MuYzogTGlrZXdpc2UuCgkqIHN5bXMuYzogTGlrZXdpc2UuCgkqIHZlcnNhZG9zLmM6IExpa2V3aXNlLgoJKiB2bXMuYzogTGlrZXdpc2UuCgkqIHhjb2ZmbGluay5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJjb2ZmLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0yNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IFJlcG9ydCBwbHQgcmVsb2MgYWdhaW5zdAoJbG9jYWwgc3ltIGVycm9ycy4KCgkqIGVsZjMyLWkzODYuYzogQ29udmVydCB0byBDOTAgZnVuY3Rpb24gZGVmaW5pdGlvbnMsIHJlbW92ZSB1bm5lY2Vzc2FyeQoJcHJvdG90eXBlcyBhbmQgY2FzdHMuICBSZXBsYWNlIFBUUiB3aXRoIHZvaWQgKi4gIEZvcm1hdHRpbmcuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4gIEJyZWFrIGxvbmcgc3RyaW5ncyB0b28uCgkocHBjX2VsZl9yZWxheF9zZWN0aW9uKTogVXNlIGVudW0gZWxmX3BwY19yZWxvY190eXBlIGZvciByX3R5cGUuCgkocHBjX2VsZl91bmhhbmRsZWRfcmVsb2MpOiBJbnRlcm5hdGlvbmFsaXplIGVycm9yIG1lc3NhZ2UuCgkqIGVsZjMyLXBwYy5oOiBSZW1vdmUgUEFSQU1TLgoKMjAwMy0wNi0yMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2JlZ2luX3dyaXRlX3Byb2Nlc3NpbmcpOiBVc2UgYnl0ZXMgdG8gY291bnQKCUFQVWluZm8gc2xvdHMuCgkocHBjX2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgoyMDAzLTA2LTIzICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogQ2hlY2sgcmF3IHNpemUgd2hlbiB1c2luZwoJa2VwdF9zZWN0aW9uIHRvIHByZXNlcnZlIGRlYnVnIGluZm9ybWF0aW9uIGRpc2NhcmRlZCBieQoJbGlua29uY2UuCgoyMDAzLTA2LTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogQWRkIHRvcF9pZC4KCShwcGM2NF9lbGZfc2V0dXBfc2VjdGlvbl9saXN0cyk6IFNldCBpdC4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENoZWNrIHN5bSBzZWN0aW9uIGlkIGFnYWluc3QgdG9wX2lkLgoJKHBwY19idWlsZF9vbmVfc3R1Yik6IENvbW1lbnQgb24gdG9wX2lkLgoKMjAwMy0wNi0yMCAgUmFsZiBDb3JzZXBpdXMgIDxjb3JzZXBpdUBmYXcudW5pLXVsbS5kZT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCB0aWM0eC0qLXJ0ZW1zKi4KCjIwMDMtMDYtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYzogQ29udmVydCB0byBDOTAgZnVuY3Rpb24gZGVmaW5pdGlvbnMsIHJlbW92ZSB1bm5lY2Vzc2FyeQoJcHJvdG90eXBlcyBhbmQgY2FzdHMuICBSZXBsYWNlIFBUUiB3aXRoIHZvaWQgKi4gIEZvcm1hdCBjb3B5cmlnaHQuCglNZW50aW9uIEFCSSBsaW5rcy4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IFJlbmFtZSBzZ290LCBzcmVsZ290LCBzcGx0LCBzcmVscGx0LAoJc2R5bmJzcywgc3JlbGJzcywgc2dsaW5rLCBzYnJsdCBhbmQgc3JlbGJybHQgdG8gZ290LCByZWxnb3QgLi4gcmVsYnJsdC4KCShwcGNfdHlwZV9vZl9zdHViKTogTWFrZSByX3R5cGUgYW4gZW51bS4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuaDogUmVtb3ZlIFBBUkFNUyBtYWNyby4KCjIwMDMtMDYtMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBSZWluc3RhdGUgaW5pdCBvZgoJZWxmIGhhc2ggdGFiIGZpZWxkcy4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NfdHlwZV9sb29rdXApOiBUaWR5IHByb3RvdHlwZS4KCShwcGM2NF9lbGZfaW5mb190b19ob3d0byk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IEFkZCAic3RhdHMiIHBhcmFtLCBhbmQgcHJpbnQgc3RhdGlzdGljcy4KCSogZWxmNjQtcHBjLmggKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IEFkanVzdCBwcm90b3R5cGUuCgoyMDAzLTA2LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IElnbm9yZSBSX1NQQVJDX0RJU1AzMgoJcmVsb2Mgb3ZlcmZsb3cgb24gZGlzY2FyZGVkIGVoX2ZyYW1lIGVudHJpZXMuCgoyMDAzLTA2LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHRvY19hZGp1c3Rpbmdfc3R1Yl9uZWVkZWQpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX25leHRfaW5wdXRfc2VjdGlvbik6IFVzZSBpdCBoZXJlIHRvIHNldCBoYXNfZ3BfcmVsb2MuCglSZXR1cm4gZXJyb3IgY29uZGl0aW9uLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogUmVzdHJpY3QgdG9jIGFkanVzdGluZyBzdHVicyB0byBzZWN0aW9ucwoJdGhhdCBoYXZlIGhhc19ncF9yZWxvYyBzZXQuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBBZGQgc3R1Yl9jb3VudC4KCShwcGNfYnVpbGRfb25lX3N0dWIpOiBJbmNyZW1lbnQgaXQuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiB6bWFsbG9jIHJhdGhlciB0aGFuIGNsZWFyaW5nCglpbmRpdmlkdWFsIGZpZWxkcy4KCSogZWxmNjQtcHBjLmggKHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24pOiBVcGRhdGUgcHJvdG90eXBlLgoKMjAwMy0wNi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2djX3JlY29yZF92dGVudHJ5KTogUmV2ZXJ0IGxhc3QgY2hhbmdlLiAgQ29ycmVjdAoJc2l6ZSBjYWxjdWxhdGlvbiBmcm9tIGFkZGVuZC4gIFJvdW5kIHNpemUgdXAuCgoyMDAzLTA2LTE4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbikgPGNhc2UKCVJfQ1JJU18zMl9HT1RSRUw+OiBXaGVuIGxpbmtpbmcgYSBwcm9ncmFtLCBkb24ndCBjb21wbGFpbiBhYm91dCBhCglzeW1ib2wgZnJvbSBhIG5vcm1hbCBvYmplY3Qgb3IgYW4gdW5kZWZpbmVkIHdlYWsgc3ltYm9sLgoKMjAwMy0wNi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFjY2VwdCBhIHN5bWJvbCBvbgoJUl9QUEM2NF9UT0MgcmVsb2NzLgoKMjAwMy0wNi0xNyAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBzZWN0aW9uLmMgKHN0cnVjdCBzZWMpOiBQdXQgYmFjayBrZXB0X3NlY3Rpb24uCgkoU1REX1NFQ1RJT04pOiBQdXQgYmFjayBrZXB0X3NlY3Rpb24gaW5pdGlhbGl6YXRpb24uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogQWxzbyBjaGVjayBkaXNjYXJkZWQgbGlua29uY2UKCXNlY3Rpb25zIGZvciByZWxvY2F0ZWFibGUgb3V0cHV0LiBVc2Uga2VwdF9zZWN0aW9uIHRvIHByZXNlcnZlCglkZWJ1ZyBpbmZvcm1hdGlvbiBkaXNjYXJkZWQgYnkgbGlua29uY2UuCgoyMDAzLTA2LTE3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBTdXBwb3J0CglzZWdtZW50LXJlbGF0aXZlIHJlbG9jYXRpb24gYmV0d2VlbiBkaWZmZXJlbnQgc2VnbWVudHMuCgoyMDAzLTA2LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG8gdW5hbGlnbmVkIHJlbG9jCglvcHRpbWl6YXRpb25zIGVhcmxpZXIuCgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBSZWluc3RhdGUgdG9wX2luZGV4LgoJUmVzdG9yZSBwcmV2aW91cyBpbnB1dF9saXN0IHR5cGUuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBVbmRvIGxhc3QgY2hhbmdlLgoJKHBwYzY0X2VsZl9zZXR1cF9zZWN0aW9uX2xpc3RzKTogUmVpbnN0YXRlIGNvZGUgc2V0dGluZyB1cCBpbnB1dCBsaXN0cwoJcGVyIG91dHB1dCBzZWN0aW9uLCBidXQgZG9uJ3QgYm90aGVyIHdpdGggYmZkX2Fic19zZWN0aW9uIG1hcmtlci4KCShwcGM2NF9lbGZfbmV4dF9pbnB1dF9zZWN0aW9uKTogQWRqdXN0IGZvciBtdWx0aXBsZSBpbnB1dCBzZWN0aW9uCglsaXN0cy4KCShncm91cF9zZWN0aW9ucyk6IExpa2V3aXNlLgoKMjAwMy0wNi0xNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRpb25fc2VjdGlvbik6IEVuc3VyZQoJKnJfb2Zmc2V0ID09IHJfYWRkZW5kIGZvciBSRUxBVElWRSByZWxvY3MgYWdhaW5zdCAuZ290LgoKMjAwMy0wNi0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IE9wdGltaXplIHVuYWxpZ25lZCByZWxvY3MuCgoyMDAzLTA2LTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfZ2NfcmVjb3JkX3Z0ZW50cnkpOiBBbGxvY2F0ZSBhbiBleHRyYSBlbGVtZW50CglpbiB0aGUgdnRhYmxlX2VudHJpZXNfdXNlZCBhcnJheSB0byBhbGxvdyBmb3IgdGhlIGFjY2Vzc2luZwoJdGhlIGxhcmdlc3QgZWxlbWVudC4KCjIwMDMtMDYtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBSZW1vdmUgdG9wX2luZGV4LiAgTW9kaWZ5CglpbnB1dF9saXN0LgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCBpbnB1dF9saXN0IGhlcmUuCgkocHBjNjRfZWxmX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBSZW1vdmUgY29kZSBzZXR0aW5nIHVwIGlucHV0IGxpc3RzCglwZXIgb3V0cHV0IHNlY3Rpb24uICBTZXQgdG9jX29mZiBmb3IgYWJzIGFuZCBvdGhlciBzdGFuZGFyZCBzZWN0aW9ucy4KCShwcGM2NF9lbGZfcmVpbml0X3RvYyk6IERvbid0IHNldCBlbGZfZ3Agb24gaW5wdXQgYmZkcyBsYWNraW5nIGEgdG9jLgoJKHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24pOiBBZGp1c3QgZm9yIHNpbmdsZSBpbnB1dCBzZWN0aW9uIGxpc3QuCglEb24ndCBzZXQgdG9jX2N1cnIgZnJvbSBpbnB1dCBiZmRzIHRoYXQgaGF2ZW4ndCBzZXQgZWxmX2dwLgoJKGdyb3VwX3NlY3Rpb25zKTogQWRqdXN0IGZvciBzaW5nbGUgaW5wdXQgc2VjdGlvbiBsaXN0LgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ29ycmVjdCBwY3JlbCBzZWN0aW9uIHplcm8uCgoyMDAzLTA2LTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogV2hlbiBvcHRpbWl6aW5nIHRvY3RwcmVsCgl0bHMsIGNoZWNrIHRoYXQgYSBUT0MxNl9EUyBvciBUT0MxNl9MT19EUyByZWxvYyBpc24ndCBwb2ludGluZyB0byBhCglkdHByZWwgZW50cnkuICBFbnN1cmUgVExTX0xEIERUUE1PRCByZWxvYyBoYXMgYSB6ZXJvIGFkZGVuZC4gIFdyaXRlCglnb3Qgc2VjdGlvbiBmb3IgUkVMQVRJVkUgcmVsb2NzLiAgRml4IHdyb25nIGNvbW1lbnQuICBDaGFuZ2UgY29uZGl0aW9uCgl1bmRlciB3aGljaCBkeW5hbWljIHJlbG9jcyB1cGRhdGUgdGhlIHNlY3Rpb24gY29udGVudHMuCgoyMDAzLTA2LTEzICBSb2JlcnQgTWlsbGFuICA8emVyYXR1bDJAd2FuYWRvby5lcz4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBpMzg2LW5ldGJzZC1nbnUgdGFyZ2V0LgoKMjAwMy0wNi0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIG9wbmNscy5jIChjYWxjX2NyYzMyKTogUmVuYW1lIHRvCgliZmRfY2FsY19nbnVfZGVidWdsaW5rX2NyYzMyIGFuZCBleHBvcnQuCgkoR05VX0RFQlVHTElOSyk6IERlZmluZSBhbmQgdXNlIHRvIHJlcGxhY2Ugb2NjdXJyZW5jZXMgb2YKCWhhcmQtY29kZWQgIi5nbnVfZGVidWdsaW5rIiBpbiB0aGUgY29kZS4KCShnZXRfZGVidWdfbGlua19pbmZvKTogUHJldmVudCBhYm9ydHMgYnkgcmVwbGFjaW5nIGNhbGwgdG8KCXhtYWxsb2Mgd2l0aCBhIGNhbGwgdG8gbWFsbG9jLgoJKGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSk6IFByZXZlbnQgYWJvcnRzIGJ5IHJlcGxhY2luZyBjYWxscwoJdG8geG1hbGxvYyBhbmQgeHN0cmR1cCB3aXRoIGNhbGxzIHRvIG1hbGxvYyBhbmQgc3RyZHVwLgoJKGJmZF9hZGRfZ251X2RlYnVnbGluayk6IE5ldyBmdW5jdGlvbi4gIEFkZCBhIC5nbnVfZGVidWdsaW5rCglzZWN0aW9uIHRvIGEgYmZkLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTA2LTEyIEZlZGVyaWNvIEcuIFNjaHdpbmR0IDxmZ3NjaEBsb2Rvc3MubmV0PgoKCSogY29uZmlnLmJmZCAoaVszLTddODYtKi1vcGVuYnNkWzAtMl0uKiB8IGlbMy03XTg2LSotb3BlbmJzZDMuWzAtM10pOgoJTmV3IHRhcmdldCAod2FzIGlbMy03XTg2LSotb3BlbmJzZCogYmVmb3JlKS4KCShpWzMtN104Ni0qLW9wZW5ic2QqKTogQ2hhbmdlIHRvIHVzZSBiZmRfZWxmMzJfaTM4Nl92ZWMuCgkodmF4LSotb3BlbmJzZCopOiBOZXcgdGFyZ2V0LgoKMjAwMy0wNi0xMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYyAoTUlQU19FTEZfT1BUSU9OU19TRUNUSU9OX05BTUUpOiBVc2UgLk1JUFMub3B0aW9ucwoJZm9yIG4zMiwgdG9vLgoJKE1JUFNfRUxGX1NUVUJfU0VDVElPTl9OQU1FKTogVXNlIC5NSVBTLnN0dWJzIGZvciBuMzIsIHRvby4KCShtaXBzX2VsZl9yZWxfZHluX3NlY3Rpb24pOiBVc2UgYXBwcm9wcmlhdGUgc2VjdGlvbiBhbGlnbm1lbnQuCgkobWlwc19lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoKMjAwMy0wNi0xMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfZ2VuZXJpY19yZWxvYyk6IE5ldyBGdW5jdGlvbi4KCShlbGZfbWlwc19ob3d0b190YWJsZV9yZWwpOiBVc2UgaXQuCgkoZ3ByZWwzMl93aXRoX2dwKTogTW92ZSBwcm90b3R5cGUuCgkobWlwc19lbGZfaGkxNl9yZWxvYyk6IENoZWNrIGZvciAhIEJTRl9MT0NBTCBpbnN0ZWFkIG9mIHplcm8gYWRkZW5kLgoJVXNlIG1pcHNfZWxmX2dlbmVyaWNfcmVsb2MuCgkobWlwc19lbGZfZ290MTZfcmVsb2MpOiBDaGVjayBmb3IgISBCU0ZfTE9DQUwgaW5zdGVhZCBvZiB6ZXJvIGFkZGVuZC4KCUNvZGUgY2xlYW51cC4KCShfYmZkX21pcHNfZWxmMzJfZ3ByZWwxNl9yZWxvYyk6IENoZWNrIGZvciAhIEJTRl9MT0NBTCBpbnN0ZWFkIG9mCgl6ZXJvIGFkZGVuZC4KCShtaXBzX2VsZl9ncHJlbDMyX3JlbG9jKTogTGlrZXdpc2UuIFVzZSB0aGUgc2FtZSBHUCBhc3NpZ25tZW50IGxvZ2ljCglhcyBpbiB0aGUgb3RoZXIgKl9ncHJlbCpfcmVsb2MgZnVuY3Rpb25zLgoJKGdwcmVsMzJfd2l0aF9ncCk6IEhhbmRsZSBwYXJ0aWFsX2lucGxhY2UgcHJvcGVybHkuCgkobWlwczMyXzY0Yml0X3JlbG9jKTogVXNlIG1pcHNfZWxmX2dlbmVyaWNfcmVsb2MuCgkobWlwczE2X2dwcmVsX3JlbG9jKTogQ2hlY2sgZm9yICEgQlNGX0xPQ0FMIGluc3RlYWQgb2YgemVybyBhZGRlbmQuCglEbyBhZGRlbmQgaGFuZGxpbmcgZGlyZWN0bHkgaW5zdGVhZCBvZiBjYWxsaW5nCglfYmZkX21pcHNfZWxmX2dwcmVsMTZfd2l0aF9ncC4gSGFuZGxlIHBhcnRpYWxfaW5wbGFjZSBwcm9wZXJseS4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X2hpMTZfcmVsb2MpOiBDaGVjayBmb3IgISBCU0ZfTE9DQUwgaW5zdGVhZAoJb2YgemVybyBhZGRlbmQuIEhhbmRsZSBwYXJ0aWFsX2lucGxhY2UgcHJvcGVybHkuCgkobWlwc19lbGY2NF9nb3QxNl9yZWxvYyk6IENoZWNrIGZvciAhIEJTRl9MT0NBTCBpbnN0ZWFkIG9mIHplcm8KCWFkZGVuZC4KCShtaXBzX2VsZjY0X2dwcmVsMTZfcmVsb2MpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2xpdGVyYWxfcmVsb2MpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2dwcmVsMzJfcmVsb2MpOiBMaWtld2lzZS4gVXNlIHRoZSBzYW1lIEdQIGFzc2lnbm1lbnQKCWxvZ2ljIGFzIGluIHRoZSBvdGhlciAqX2dwcmVsKl9yZWxvYyBmdW5jdGlvbnMuIEhhbmRsZQoJcGFydGlhbF9pbnBsYWNlIHByb3Blcmx5LgoJKG1pcHNfZWxmNjRfc2hpZnQ2X3JlbG9jKTogQ2hlY2sgZm9yICEgQlNGX0xPQ0FMIGluc3RlYWQgb2YgemVybwoJYWRkZW5kLiBIYW5kbGUgcGFydGlhbF9pbnBsYWNlIHByb3Blcmx5LgoJKG1pcHMxNl9ncHJlbF9yZWxvYyk6IExpa2V3aXNlLiBEbyBhZGRlbmQgaGFuZGxpbmcgZGlyZWN0bHkgaW5zdGVhZAoJb2YgY2FsbGluZyBfYmZkX21pcHNfZWxmX2dwcmVsMTZfd2l0aF9ncC4KCSogZWxmbjMyLW1pcHMuYyAobWlwc19lbGZfZ290MTZfcmVsb2MpOiBDaGVjayBmb3IgQlNGX0xPQ0FMLgoJKG1pcHNfZWxmX2dwcmVsMzJfcmVsb2MpOiBDaGVjayBmb3IgISBCU0ZfTE9DQUwgaW5zdGVhZAoJb2YgemVybyBhZGRlbmQuCgkobWlwc19lbGZfc2hpZnQ2X3JlbG9jKTogSGFuZGxlIHBhcnRpYWxfaW5wbGFjZSBwcm9wZXJseS4KCShtaXBzMTZfZ3ByZWxfcmVsb2MpOiBMaWtld2lzZS4gRG8gYWRkZW5kIGhhbmRsaW5nIGRpcmVjdGx5IGluc3RlYWQKCW9mIGNhbGxpbmcgX2JmZF9taXBzX2VsZl9ncHJlbDE2X3dpdGhfZ3AuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9ncHJlbDE2X3dpdGhfZ3ApOiBIYW5kbGUKCXBhcnRpYWxfaW5wbGFjZSBwcm9wZXJseS4gRml4IHdyb25nIGFkZGVuZCBoYW5kbGluZy4gRml4IG92ZXJmbG93CgljaGVjay4KCShfYmZkX21pcHNfZWxmX3NpZ25fZXh0ZW5kKTogUmVuYW1lZCBmcm9tIG1pcHNfZWxmX3NpZ25fZXh0ZW5kIGFuZAoJZXhwb3J0ZWQuCgkobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBVc2UgX2JmZF9taXBzX2VsZl9zaWduX2V4dGVuZC4KCShfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogVXBkYXRlIHNlY19pbmZvX3R5cGUgYWNjZXNzLgoJKiBlbGZ4eC1taXBzLmggKF9iZmRfbWlwc19yZWxheF9zZWN0aW9uKTogRml4IHByb3RvdHlwZSBkZWNsYXJhdGlvbi4KCShfYmZkX21pcHNfZWxmX3NpZ25fZXh0ZW5kKTogTmV3IHByb3RvdHlwZS4KCjIwMDMtMDYtMTEgRmVkZXJpY28gRy4gU2Nod2luZHQgPGZnc2NoQGxvZG9zcy5uZXQ+CgoJKiBjb25maWcuYmZkIChzcGFyYy0qLW9wZW5ic2RbMC0yXS4qIHwgc3BhcmMtKi1vcGVuYnNkMy5bMC0xXSk6CglOZXcgdGFyZ2V0ICh3YXMgc3BhcmMtKi1vcGVuYnNkKiBiZWZvcmUpLgoJKHNwYXJjLSotb3BlbmJzZCopOiBDaGFuZ2UgdG8gdXNlIGJmZF9lbGYzMl9zcGFyY192ZWMuCgoJKiBjb25maWd1cmUuaW4gKHZheC0qLW9wZW5ic2QqKTogU2V0IENPUkVGSUxFIHRvIG5ldGJzZC1jb3JlLmxvLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAzLTA2LTExICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIHBvL01ha2UtaW4gKERFU1RESVIpOiBOZXcuCgkoaW5zdGFsbC1kYXRhLXllcyk6IFN1cHBvcnQgJChERVNURElSKS4KCSh1bmluc3RhbGwpOiBMaWtld2lzZS4KCjIwMDMtMDYtMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoY29uZmlnLnN0YXR1cyk6IERlcGVuZCBvbiB2ZXJzaW9uLmguCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDYtMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgkgICAgR2FyeSBIYWRlIDxnYXJ5aGFkZUB1cy5pYm0uY29tPgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uIDwqX0RTPik6IFNwZWNpYWwgY2FzZSBscS4KCjIwMDMtMDYtMTAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2g4MzAwc3huKTogTmV3IGFyY2hpdGVjdHVyZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtaDgzMDAuYyAoaDgzMDBfc2Nhbik6IENoZWNrIGZvciAnc3huJy4KCShoODMwMHN4bl9pbmZvX3N0cnVjdCk6IE5ldy4KCShoODMwMHN4X2luZm9fc3RydWN0KTogTGluayB0byBpdC4KCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfbWFjaCk6IEFkZCBoODMwMHN4biBjYXNlLgoJKGVsZjMyX2g4X2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCjIwMDMtMDYtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYzogTW92ZSBUQVJHRVRfTElUVExFX1NZTSBhbmQgb3RoZXIgbWFjcm9zIHVzZWQgYnkKCWVsZnh4LXRhcmdldC5oIHNvIHRoYXQgd2UgY2FuIHVzZSBlbGZfYmFja2VuZF9nb3RfaGVhZGVyX3NpemUuCgkoRUxGX01BQ0hJTkVfQUxUMSwgRUxGX01BQ0hJTkVfQUxUMik6IERlbGV0ZS4KCShHTElOS19DQUxMX1NUVUJfU0laRSk6IE1vZGlmeS4gIERlZmluZSBuZXcgZ2xpbmsgY2FsbCBzdHViIGFuZAoJYXNzb2NpYXRlZCBtYWNyb3MuCgkocHBjNjRfZWxmX2hvd3RvX3JhdyA8R09UX1RQUkVMMTZfRFMsIEdPVF9UUFJFTDE2X0xPX0RTPik6IENvcnJlY3QKCWRzdF9tYXNrLgoJKGVudW0gcHBjX3N0dWJfdHlwZSk6IEFkZCBwcGNfc3R1Yl9sb25nX2JyYW5jaF9yMm9mZiBhbmQKCXBwY19zdHViX3BsdF9icmFuY2hfcjJvZmYuCgkoc3RydWN0IHBwY19zdHViX2hhc2hfZW50cnkpOiBSZW9yZ2FuaXplLgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogQWRkIG5vX211bHRpX3RvYywgbXVsdGlfdG9jX25lZWRlZCwKCXRvY19jdXJyLCB0b2Nfb2ZmIGFuZCBlbWl0X3N0dWJfc3ltcy4KCShwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQgdGhlbS4KCShwcGNfc3R1Yl9uYW1lKTogQ29ycmVjdCBzdHJpbmcgc2l6ZS4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogU2V0IGhhc19ncF9yZWxvYyBvbiBHT1QgYW5kIFRPQyByZWxvY3MuCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNldCBub19tdWx0aV90b2MgaWYgR09UIGVudHJpZXMKCXVzZWQuCgkocHBjX3R5cGVfb2Zfc3R1Yik6IFR3ZWFrIHJvb3QudHlwZSB0ZXN0LgoJKGJ1aWxkX3BsdF9zdHViKTogUmVtb3ZlIGdsaW5rIGNvZGUuICBBZGp1c3QgZm9yIGluc24gbWFjcm8gY2hhbmdlcy4KCShwcGNfc2l6ZV9vbmVfc3R1Yik6IEhhbmRsZSBwcGNfc3R1Yl9sb25nX2JyYW5jaF9yMm9mZiBhbmQKCXBwY19zdHViX3BsdF9icmFuY2hfcjJvZmYuCgkocHBjX2J1aWxkX29uZV9zdHViKTogTGlrZXdpc2UuICBGaXggdmFyIHNoYWRvd2luZy4gIENvcnJlY3QgYWRkaXMsYWRkaQoJcmFuZ2UgdGVzdC4gIFVzZSB0b2Nfb2ZmIHRvIGNhbGN1bHRlIHIyIHZhbHVlcy4gIEhhbmRsZSBlbWl0X3N0dWJfc3ltcy4KCShwcGM2NF9lbGZfc2V0dXBfc2VjdGlvbl9saXN0cyk6IFJlbW92ZSBodGFiIGNyZWF0b3IgZmxhdm91ciB0ZXN0LgoJSW5pdGlhbGl6ZSBlbGZfZ3AgYW5kIHRvY19jdXJyLgoJKHBwYzY0X2VsZl9uZXh0X3RvY19zZWN0aW9uLCBwcGM2NF9lbGZfcmVpbml0X3RvYyk6IE5ldyBmdW5jdGlvbnMuCgkocHBjNjRfZWxmX25leHRfaW5wdXRfc2VjdGlvbik6IFNldCB0b2Nfb2ZmLgoJKGdyb3VwX3NlY3Rpb25zKTogRW5zdXJlIGdyb3VwcyBoYXZlIHRoZSBzYW1lIFRPQy4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IENoZWNrIHdoZXRoZXIgd2UgbmVlZCBhIFRPQyBhZGp1c3Rpbmcgc3R1Yi4KCShwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBBZGQgZW1pdF9zdHViX3N5bXMgcGFyYW0sIGFuZCBzdGFzaCBpbiBodGFiLgoJQnVpbGQgbmV3IGdsaW5rIHN0dWIuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgbXVsdGlwbGUgVE9Dcy4gIEZpeCBjb21tZW50cy4KCShwcGM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBBZGp1c3QgRFRfUFBDNjRfR0xJTksuCgkqIGVsZjY0LXBwYy5oIChwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBVcGRhdGUgcHJvdG90eXBlLgoJKHBwYzY0X2VsZl9uZXh0X3RvY19zZWN0aW9uLCBwcGM2NF9lbGZfcmVpbml0X3RvYyk6IERlY2xhcmUuCgkqIHNlY3Rpb24uYyAoc3RydWN0IHNlYyk6IFJlbmFtZSBmbGFnMTIgdG8gaGFzX2dwX3JlbG9jLgoJKFNURF9TRUNUSU9OKTogVXBkYXRlLgoJKiBlY29mZi5jIChiZmRfZGVidWdfc2VjdGlvbik6IFVwZGF0ZSBjb21tZW50LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTA2LTA1ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGVsZmNvZGUuaCAoZWxmX3NsdXJwX3JlbG9jX3RhYmxlX2Zyb21fc2VjdGlvbik6IERvbid0IGRlcmVmZXJlbmNlCglOVUxMIGZ1bmN0aW9uIHBvaW50ZXJzLgoKMjAwMy0wNi0wNSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBzaW1wbGUuYyAoYmZkX3NpbXBsZV9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBDYWxsCglfYmZkX2dlbmVyaWNfbGlua19hZGRfc3ltYm9scyBpbnN0ZWFkIG9mIGJmZF9saW5rX2FkZF9zeW1ib2xzLgoKMjAwMy0wNi0wNCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29mZi10aWM1NHguYzogUmVtb3ZlZCB0aGUgdGljb2ZmMF9iYWRfZm9ybWF0X2hvb2soKSBhbmQKCXRpY29mZjFfYmFkX2Zvcm1hdF9ob29rKCkgZnVuY3Rpb25zLiBSZW1vdmVkIHRoZSBjb2ZmMCBhbmQgY29mZjEKCXN3YXB0YWJsZXMuCgkqIGNvZmYtdGljNHguYzogRGl0dG8KCSogY29mZmNvZGUuaDogQWRkZWQgZXh0cmEgYXJndW1lbnRzIHRvIENSRUFURV9CSUdfQ09GRl9UQVJHRVRfVkVDCglhbmQgQ1JFQVRFX0xJVFRMRV9DT0ZGX1RBUkdFVF9WRUMuIENyZWF0ZWQgdGhlIG1hY3JvCglDUkVBVEVfQklHSERSX0NPRkZfVEFSR0VUX1ZFQy4gQ3JlYXRlZCB0aGUgdGljb2ZmMF9iYWRfZm9ybWF0X2hvb2soKSwKCXRpY29mZjFfYmFkX2Zvcm1hdF9ob29rKCkgZnVuY3Rpb25zLiBDcmVhdGVkIHRoZSBjb2ZmMCBhbmQgY29mZjEKCXN3YXAgdGFibGVzLgoJKiBjb2ZmLXRpYzR4LmM6IEFkb3B0ZWQgbmV3IENSRUFURV94eHhfQ09GRl9UQVJHRVRfVkVDIG1hY3Jvcy4KCSogY29mZi1hMjlrLmM6IEFwcGVuZCBDT0ZGX1NXQVBfVEFCTEUgYXJndW1lbnQKCSogY29mZi1hcG9sbG8uYzogRGl0dG8KCSogY29mZi1hcm0uYzogRGl0dG8KCSogY29mZi1oODMwMC5jOiBEaXR0bwoJKiBjb2ZmLWg4NTAwLmM6IERpdHRvCgkqIGNvZmYtaTk2MC5jOiBEaXR0bwoJKiBjb2ZmLW02OGsuYzogRGl0dG8KCSogY29mZi1tODhrLmM6IERpdHRvCgkqIGNvZmYtbWNvcmUuYzogRGl0dG8KCSogY29mZi1zaC5jOiBEaXR0bwoJKiBjb2ZmLXNwYXJjLmM6IERpdHRvCgkqIGNvZmYtdGljODAuYzogRGl0dG8KCSogY29mZi13ZTMyay5jOiBEaXR0bwoJKiBjb2ZmLXo4ay5jOiBEaXR0bwoJKiBjb2ZmLXc2NS5jOiBEaXR0bwoKMjAwMy0wNi0wNCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29mZi10aWM0eC5jICh0aWNvZmYwX3N3YXBfdGFibGUsIHRpY29mZjFfc3dhcF90YWJsZSk6IEZpeGVkCglpbml0aWFsaXphdGlvbiBidWcKCjIwMDMtMDYtMDMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBIYW5kbGUgUFRfR05VX1NUQUNLLgoJKGJmZF9zZWN0aW9uX2Zyb21fcGhkcik6IExpa2V3aXNlLgoJKG1hcF9zZWN0aW9uc190b19zZWdtZW50cyk6IENyZWF0ZSBQVF9HTlVfU1RBQ0sgc2VnbWVudCBoZWFkZXIuCgkoZ2V0X3Byb2dyYW1faGVhZGVyX3NpemUpOiBDb3VudCB3aXRoIFBUX0dOVV9TVEFDSy4KCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX29ial90ZGF0YSk6IEFkZCBzdGFja19mbGFncy4KCSogZWxmbGluay5oIChiZmRfZWxmTk5fc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogU2V0IHN0YWNrX2ZsYWdzLgoKMjAwMy0wNi0wMyAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IENhbGwgbGlua2VyIGVycm9yX2hhbmRsZXIKCWZvciBkaXNjYXJkZWQgZGVmaW5pdGlvbnMuCgoyMDAzLTA2LTAzICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVsYXRoYW5AcGh5cy51b2EuZ3I+CgoJKiBzeW1zLmMgKGRlY29kZV9zZWN0aW9uX3R5cGUpOiBSZXR1cm4gJ24nIGlmIHNlY3Rpb24gZmxhZ3MgYXJlCglTRUNfSEFTX0NPTlRFTlRTICYmIFNFQ19SRUFET05MWS4KCjIwMDMtMDYtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX2hvd3RvX3QpOiBSZW5hbWUgUl9WODUwXzMydG8KCVJfVjg1MF9BQlMzMi4gIEFkZCBlbnRyeSBmb3IgUl9WODUwX1JFTDMyLgoJKHY4NTBfZWxmX3JlbG9jX21hcCk6IExpa2V3aXNlLgoJKHY4NTBfZWxmX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKHY4NTBfZWxmX3BlcmZvcm1fcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKHY4NTBfZWxmX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBMaWtld2lzZS4gIEluY2x1ZGUgY29tcHV0YXRpb24KCXRvIG1ha2UgUl9WODUwX1JFbDMyIHBjLXJlbGF0aXZlLgoKMjAwMy0wNi0wMyAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ3JlYXRlIC5pbnRlcnAgc2VjdGlvbgoJYW5kIERUX0RFQlVHIGR5bmFtaWMgdGFnIGV2ZW4gZm9yIHBvc2l0aW9uIGluZGVwZW5kZW50IGV4ZWN1dGFibGVzLgoJKiBlbGY2NC1zaDY0LmMgKHNoNjRfZWxmNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpemUuCgoyMDAzLTA2LTAyICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZy5iZmQ6IE1vdmUgb2Jzb2xldGUgZW50cmllcyBvdXQgb2YgdGhlIHJhbmdlIG9mIHRoZQoJdGFyZ21hdGNoIHNlZCBzY3JpcHQuCgoyMDAzLTA2LTAyICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZy5iZmQgKG1pcHMqLWRlYy1ic2QqLCBtaXBzKi0qLXBlKik6IE1hcmsgYXMgb2Jzb2xldGUuCgoyMDAzLTA1LTMxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXBwYy5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBVc2Ugc2luZ2xlIHNsb3QgZm9yIGZpcnN0IDgxOTIKCXBsdCBlbnRyaWVzLCBub3QganVzdCA4MTkxLgoKMjAwMy0wNS0zMCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZGlzY2FyZF9pbmZvKTogQ29ycmVjdCBsb29wIGluZGV4LgoJUmVwb3J0ZWQgYnkgS2VuIEZhaWN6YWsgPGtmYWljemFrQFNBTkRWSU5FLmNvbT4uCgoyMDAzLTA1LTMwICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KCSAgICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogVXNlICFpbmZvLT5leGVjdXRhYmxlCglpbnN0ZWFkIG9mIGluZm8tPnNoYXJlZCB3aGVyZSBhcHByb3ByaWF0ZS4KCShiZmRfZWxmTk5fc2l6ZV9keW5hbWljX3NlY3Rpb25zLCBlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2xpbmtfYXNzaWduX3N5bV92ZXJzaW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ3JlYXRlIC5pbnRlcnAgc2VjdGlvbgoJYW5kIERUX0RFQlVHIGR5bmFtaWMgdGFnIGV2ZW4gZm9yIHBvc2l0aW9uIGluZGVwZW5kZW50IGV4ZWN1dGFibGVzLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9zaXplX2R5bmFtaWNfc2VjdGlvbnM6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9uczogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9zaXplX2R5bmFtaWNfc2VjdGlvbnM6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfc2l6ZV9keW5hbWljX3NlY3Rpb25zOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zOiBMaWtld2lzZS4KCjIwMDMtMDUtMzAgIEtyaXMgV2Fya2VudGluIDxrZXdhcmtlbkBxbnguY29tPgoKCSogZWxmLmMgKGVsZmNvcmVfZ3Jva19udG9fc3RhdHVzKTogT25seSBzZXQgbHdwaWQgZm9yIHRoZSBhY3RpdmUgb3IKCXNpZ25hbGxlZCB0aHJlYWQuCgkoZWxmY29yZV9ncm9rX250b19ncmVncyk6IE9ubHkgbWFrZSAucmVnIHNlY3Rpb24gZm9yIHRoZSBhY3RpdmUgdGhyZWFkLgoKMjAwMy0wNS0yOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBlZi5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJVGlkeSB1cCBmb3JtYXR0aW5nLgoJKiBNYWtlZmlsZS5hbTogQWRkIGRlcGVuZGVuY3kgb24gc2FmZS1jdHlwZS5oLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDUtMjkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmM6IERvbid0IGZvcmNlIHN5bWJvbHMgbG9jYWwgdW5jb25kaXRpb25hbGx5LgoKMjAwMy0wNS0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogRGVsZXRlIGJvZ3VzCgl1bmRlZmluZWRfc3ltYm9sIGNhbGwuCgoyMDAzLTA1LTI3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2hhc2hfc29ydF9kYXRhKTogRml4IGZvcm1hdHR0aW5nLgoJKG1pcHNfZWxmX2xpbmtfaGFzaF90YWJsZSk6IExpa2V3aXNlLgoKMjAwMy0wNS0yMiAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjY0LW1pcHMuYyAoZWxmX21pcHNfZ251X3JlbDE2X3MyKTogQWRkIGludGVybmFsbHkgdXNlZAoJUl9NSVBTX0dOVV9SRUwxNl9TMiBzdXBwb3J0LgoJKGJmZF9lbGY2NF9iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBVc2UgaXQuCgkobWlwc19lbGY2NF9ydHlwZV90b19ob3d0byk6IFVzZSBpdC4KCSogZWxmbjMyLW1pcHMuYyAoZWxmX21pcHNfZ251X3JlbDE2X3MyKTogQWRkIGludGVybmFsbHkgdXNlZAoJUl9NSVBTX0dOVV9SRUwxNl9TMiBzdXBwb3J0LgoJKGJmZF9lbGYzMl9iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBVc2UgaXQuCgkobWlwc19lbGZfbjMyX3J0eXBlX3RvX2hvd3RvKTogVXNlIGl0LgoKMjAwMy0wNS0yMSAgU3R1YXJ0IEYuIERvd25pbmcgIDxzZG93bmluZ0BmYW1lLmNvbT4KCgkqIHNvbS5oOiBEZWZpbmUgUEFfMl8wIGJlZm9yZSBpbmNsdWRpbmcgYS5vdXQuaAoKMjAwMy0wNS0wNyAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgkgICAgQWxleGFuZHJlIE9saXZhICAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBBZGp1c3QKCXBpYyB0ZXN0cywgY2hhbmdlIHRvIHdhcm5pbmcuCgkoX2JmZF9taXBzX2VsZl9maW5hbF9saW5rKTogUmVtb3ZlIEVGX01JUFNfQ1BJQyBmbGFnIHNldHRpbmcuCgoyMDAzLTA1LTIxICBNYXJjdXMgQ29tc3RlZHQgIDxtYXJjdXNAbWMucHAuc2U+CgoJKiBjb25maWcuYmZkOiBDaGVjayBmb3IgYSB0YXJnZXQgdHJpcGxldCBvZiBzaGwtLi4uLW5ldGJzZGVsZiBhcwoJd2VsbCBhcyBzaGxlLS4uLi1uZXRic2RlbGYuICBSZW1vdmUgZHVwbGljYXRlIGVudHJ5LgoKMjAwMy0wNS0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX2hvd3RvX3RhYmxlKTogRml4IGRzdF9tYXNrCglmb3IgWF9TVE9STVkxNl9SRUxfMTIgcmVsb2MuCgoJKiBlbGYuYyAoYmZkX2VsZl9nZXRfbmVlZGVkX2xpc3QpOiBVc2UgaXNfZWxmX2hhc2hfdGFibGUgdG8gY2hlY2sKCXRoZSB0eXBlIG9mIHRoZSBoYXNoIHRhYmxlIGluIHRoZSBiZmRfbGlua19pbmZvIHN0cnVjdHVyZS4KCShiZmRfZWxmX2dldF9ydW5wYXRoX2xpc3QpOiBMaWtld2lzZS4KCjIwMDMtMDUtMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoYmZkX2VsZl9iZmRfZnJvbV9yZW1vdGVfbWVtb3J5KTogTmV3IGZ1bmN0aW9uLgoJKiBiZmQtaW4uaDogRGVjbGFyZSBpdC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCSogZWxmY29kZS5oIChOQU1FKF9iZmRfZWxmLGJmZF9mcm9tX3JlbW90ZV9tZW1vcnkpKTogTmV3IGZ1bmN0aW9uLgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogTmV3IGZ1bmN0aW9uIHBvaW50ZXIgbWVtYmVyCgllbGZfYmFja2VuZF9iZmRfZnJvbV9yZW1vdGVfbWVtb3J5LgoJKF9iZmRfZWxmMzJfYmZkX2Zyb21fcmVtb3RlX21lbW9yeSwgX2JmZF9lbGY2NF9iZmRfZnJvbV9yZW1vdGVfbWVtb3J5KToKCURlY2xhcmUgdGhlbS4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX2JmZF9mcm9tX3JlbW90ZV9tZW1vcnkpOiBOZXcgbWFjcm8uCgkoZWxmTk5fYmVkKTogQWRkIHRoYXQgdG8gdGhlIGluaXRpYWxpemVyLgoKMjAwMy0wNS0xNSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChlbGZjb3JlX2dyb2tfbm90ZSk6IEdyb2sgTlRfQVVYViBub3RlLCBtYWtlICIuYXV4diIgc2VjdGlvbi4KCjIwMDMtMDUtMjAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogT25seSBpc3N1ZSBlcnJvciBhYm91dCAhPQoJU1RWX0RFRkFVTFQgc3ltYm9scyBpZiB0aGV5IGFyZSBiZmRfbGlua19oYXNoX3VuZGVmaW5lZC4KCjIwMDMtMDUtMjAgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9tZXJnZV9zeW1ib2wpOiBDaGVjayBFTEZfTElOS19EWU5BTUlDX0RFRgoJd2hlbiByZW1vdmluZyB0aGUgb2xkIGRlZmluaXRpb24gZm9yIHN5bWJvbHMgd2l0aCBub24tZGVmYXVsdAoJdmlzaWJpbGl0eS4KCjIwMDMtMDUtMTggIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogZWxmMzItaTg2MC5jIChlbGYzMl9pODYwX3JlbG9jYXRlX2hpZ2hhZGopOiBTaW1wbGlmeSBjYWxjdWxhdGlvbi4KCjIwMDMtMDUtMTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX2NoZWNrX3JlbG9jcyk6IENhY2hlIHJlbG9jIHNlY3Rpb24gaW4KCWVsZl9zZWN0aW9uX2RhdGEgZHVyaW5nIHByb2Nlc3Npbmcgb2YgcGMtcmVsYXRpdmUgYW5kIGFic29sdXRlCglyZWxvY2F0aW9ucy4KCShlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIHRoZSBjYWNoZWQgcmVsb2Mgc2VjdGlvbiBpbnN0ZWFkCglvZiBjb21wdXRpbmcgaXQgYWdhaW4uICBGaXggaGFuZGxpbmcgb2YgdmlzaWJpbGl0eS4gIERvbid0IG1vZGlmeQoJYWRkZW5kIHdoZW4gY29weWluZyBvdmVyIGEgcmVsb2NhdGlvbiBpbnRvIHRoZSBvdXRwdXQuCgoyMDAzLTA1LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBVc2UgU1lNQk9MX0NBTExTX0xPQ0FMCgl0byB0cmltIHBsdCBlbnRyaWVzLiAgTW92ZSB1bmRlZndlYWsgbm9uLWRlZmF1bHQgdmlzaWJpbGl0eSB0ZXN0Li4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiAuLmZyb20gaGVyZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgdGVzdAoJZHluYW1pY19zZWN0aW9uc19jcmVhdGVkIGhlcmUuICBVcGRhdGUgY29tbWVudC4gIE1vdmUgdW5kZWZ3ZWFrCglub24tZGVmYXVsdCB2aXNpYmlsaXR5IHRlc3QuLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IC4uZnJvbSBoZXJlLiAgRml4IGNvbW1lbnQuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVXNlIFNZTUJPTF9DQUxMU19MT0NBTAoJdG8gdHJpbSBwbHQgZW50cmllcy4gIE1vdmUgdW5kZWZ3ZWFrIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkgdGVzdC4uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogLi5mcm9tIGhlcmUuICBGaXggY29tbWVudC4KCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogQ29tcGFyZSBFTEZfU1RfVklTSUJJTElUWSB3aXRoCglTVFZfREVGQVVMVCByYXRoZXIgdGhhbiBjb21wYXJpbmcgd2l0aCB6ZXJvLgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX21lcmdlX3N5bWJvbCk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2ZpeF9zeW1ib2xfZmxhZ3MpOiBMaWtld2lzZS4gIEZvcm1hdCBjb21tZW50LgoKMjAwMy0wNS0xNyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGJmZC5jIChfYmZkX2dldF9ncF92YWx1ZSk6IFByZXZlbnQgaWxsZWdhbCBhY2Nlc3MgZm9yIGFiZmQgbnVsbAoJcG9pbnRlcnMuCgkoX2JmZF9zZXRfZ3BfdmFsdWUpOiBMaWtld2lzZS4KCjIwMDMtMDUtMTYgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoJRnJvbSBCZXJuZCBTY2htaWR0ICA8YmVybmRzQHJlZGhhdC5jb20+CgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2g4MzAwc3gpOiBOZXcuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY3B1LWg4MzAwLmMgKGg4MzAwX3NjYW4pKTogQWRkIHN1cHBvcnQgZm9yIGg4MzAwc3guCgkoaDgzMDBzeF9pbmZvX3N0cnVjdCk6IE5ldy4KCShoODMwMHNfaW5mb19zdHJ1Y3QpOiBMaW5rIHRvIGl0LgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9tYWNoKTogQWRkIHN1cHBvcnQgZm9yIGg4MzAwc3guCgkoZWxmMzJfaDhfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoJKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDMtMDUtMTYgIEtlbGxleSBDb29rICA8a2VsbGV5Y29va0B3aWRlb3Blbndlc3QuY29tPgoKCSogY29uZmlnLmJmZDogQWNjZXB0IGlbMy03XTg2IHZhcmlhbnRzLgoJKiBjb25maWd1cmUuaG9zdDogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMDUtMTUgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9maXhfc3ltYm9sX2ZsYWdzKTogQWxzbyBoaWRlIHByb3RlY3RlZAoJc3ltYm9sLgoKMjAwMy0wNS0xNSAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2NoZWNrX3ZlcnNpb25lZF9zeW1ib2wpOiBBbHNvIGFsbG93Cgl0aGUgYmFzZSB2ZXJzaW9uLgoKMjAwMy0wNS0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCSAgICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVsZjMyLWkzODYuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogVXNlIFNZTUJPTF9DQUxMU19MT0NBTC4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTA1LTE1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmMzItbWlwcy5jIChncHJlbDMyX3dpdGhfZ3ApOiBSZW1vdmUgdXNlbGVzcyBONjQgQUJJIGNhc2UuCgoyMDAzLTA1LTEzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMXguYyAoX2JmZF9tNjhoYzExX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQ2hlY2sgZm9yCglwcm9jZXNzb3IgY2FwYWJpbGl0eSwgYWxsb3cgbWVyZ2Ugb2YgSEMxMiBhbmQgSENTMTIgaW4gc29tZSBjYXNlcy4KCShtNjhoYzExX2VsZl9oYXNoX3RhYmxlX2NyZWF0ZSk6IFVzZSBiZmRfbWFsbG9jIGluc3RlYWQgb2YgYmZkX3phbGxvYy4KCSogY3B1LW02OGhjMTIuYyAoYmZkX202OGhjMTJzX2FyY2gpOiBOZXcgc3RydWN0LgoJKGJmZF9tNjhoYzEyX2FyY2gpOiBMaW5rIGl0LgoJKHNjYW5fbWFjaCk6IE5ldyBmdW5jdGlvbi4KCjIwMDMtMDUtMTMgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgoKCSogZWxmLmMgKGJmZF9lbGZfaGFzaCk6IE1hc2sgbG93ZXIgMzIgYml0cyBvZiBoYXNoLgoKMjAwMy0wNS0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCSAgICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGYtYmZkLmggKFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMLCBTWU1CT0xfQ0FMTFNfTE9DQUwpOiBNb3ZlIGZyb20KCWVsZjMyLXBwYy5jLiAgQWRkIEVMRl9MSU5LX0ZPUkNFRF9MT0NBTCBjaGVjay4KCSogZWxmMzItcHBjLmM6IChTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCwgU1lNQk9MX0NBTExTX0xPQ0FMKTogRGVsZXRlLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFVzZSBTWU1CT0xfUkVGRVJFTkNFU19MT0NBTCBmb3IgZHlucmVsb2MgY2hlY2suCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLiAgVXNlIGZvciAuZ290IHJlbG9jcyB0b28uCgkocHBjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IERvbid0IGFzc3VtZSBzeW1ib2xzIHdpdGggLnBsdAoJcmVsb2NzIG5lZWQgbm8gb3RoZXIgdHlwZXMuCgkqIGVsZjMyLWkzODYuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogVXNlIFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMIGZvcgoJZHlucmVsb2MgY2hlY2suCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLiAgVXNlIGZvciAuZ290IHJlbG9jcyB0b28uCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogVXNlIFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMIGZvcgoJLmdvdCByZWxvY3MuCgoyMDAzLTA1LTEzICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBGb3Igd2VhayBzeW1ib2xzLAoJY29weSBFTEZfTElOS19OT05fR09UX1JFRiBmcm9tIHdlYWtkZWYuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogRm9yIHVuZGVmIHdlYWsgc3ltcyB3aXRoIG5vbi1kZWZhdWx0Cgl2aXNpYmlsaXR5LCBhKSBkb24ndCBhbGxvY2F0ZSBwbHQgZW50cmllcywgYikgZG9uJ3QgYWxsb2NhdGUKCS5nb3QgcmVsb2NzLCBjKSBkaXNjYXJkIGR5biByZWwgc3BhY2UKCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IGQpIGRvbid0IGdlbmVyYXRlIC5nb3QgcmVsb2NzLCBlKQoJZG9uJ3QgZ2VuZXJhdGUgZHluYW1pYyByZWxvY3MuCgkoc2hfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRG9uJ3QgY29weSBFTEZfTElOS19OT05fR09UX1JFRgoJZm9yIHdlYWtkZWZzIHdoZW4gc3ltYm9sIGFscmVhZHkgYWRqdXN0ZWQuCgoyMDAzLTA1LTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfaG93dG9fdGFibGUpOiB1c2UgJ2JpdGZpZWxkJwoJb3ZlcmZsb3cgZGV0ZWN0aW9uIGZvciBSX1hTVE9STVkxNl8xNiByZWxvYy4KCjIwMDMtMDUtMTIgIFBhdWwgQ2xhcmtlICA8cGF1bGNAc2VuZXQuY29tLmF1PgoKCSogZWxmMzItaDgzMDAuYzogRml4IHR5cG8gaW4gbmFtZSBvZiBSX0g4X0RJUjggcmVsb2MuCgoyMDAzLTA1LTExICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGVsZjMyLWk4NjAuYyAoZWxmMzJfaTg2MF9yZWxvY2F0ZV9oaWdoYWRqKTogUHJvcGVybHkKCWFkanVzdCB1cHBlciBiaXRzLgoJKGVsZjMyX2k4NjBfcmVsb2NhdGVfc3BsaXRuKTogT2J0YWluIHVwcGVyIDUgYml0cyBmcm9tIHRoZQoJcHJvcGVyIHBsYWNlLgoJKGVsZjMyX2k4NjBfcmVsb2NhdGVfcGMxNik6IE9idGFpbiB1cHBlciA1IGJpdHMgZnJvbSB0aGUKCXByb3BlciBwbGFjZS4KCjIwMDMtMDUtMTEgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBSZXBsYWNlIHVnbHkKCWNvbXBsaWNhdGVkIHRlc3RzIGZvciB1bnJlc29sdmFibGUgcmVsb2NzIHdpdGggYSBzaW1wbGUgZGlyZWN0CglzY2hlbWUgdXNpbmcgInVucmVzb2x2ZWRfcmVsb2MiIHZhci4gIFJlcG9ydCBzb21lIGRldGFpbCBvbgoJYmZkX3JlbG9jX291dG9mcmFuZ2UgYW5kIHNpbWlsYXIgZXJyb3JzLgoKMjAwMy0wNS0wOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGVsZjMyLXMzOTAuYyAoYWxsb2NhdGVfZHlucmVsb2NzLCBlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKToKCUZpeCBXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MIGNhbGwuCgkoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IFBhc3MgU0hBUkVEIGluc3RlYWQgb2YgSU5GTy4KCSogZWxmNjQtczM5MC5jOiBMaWtld2lzZS4KCjIwMDMtMDUtMDkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBlbGYzMi1zMzkwLmMgKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZSBhcyBvbmUuCgkoZWxmX3MzOTBfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRm9yIHdlYWsgc3ltYm9scywgY29weQoJRUxGX0xJTktfTk9OX0dPVF9SRUYgZnJvbSB3ZWFrZGVmLgoJKGVsZl9zMzkwX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogVGVzdCB3aGV0aGVyIHRoZSB3ZWFrZGVmIHN5bSBoYXMKCWFscmVhZHkgYmVlbiBhZGp1c3RlZCBiZWZvcmUgdHJlYXRpbmcgaXQgc3BlY2lhbGx5LgoJKiBlbDY0LXMzOTAuYzogTGlrd2lzZS4KCjIwMDMtMDUtMDkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBlbGYzMi1zMzkwLmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEZvciB1bmRlZiB3ZWFrIHN5bXMgd2l0aAoJbm9uLWRlZmF1bHQgdmlzaWJpbGl0eSwgYSkgZG9uJ3QgbWFrZSB0aGVtIGR5bmFtaWMsIGIpIGRpc2NhcmQKCXNwYWNlIGZvciBkeW5hbWljIHJlbG9jcy4KCShlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogSW5pdGlhbGl6ZSB0aGUgR09UIGVudHJpZXMgYW5kIHNraXAKCVJfMzkwX3s4LDE2LDMyfS9SXzM5MF9QQ3sxNiwxNkRCTCwzMkRCTCwzMn0gZm9yIHdlYWsgdW5kZWZpbmVkCglzeW1ib2xzIHdpdGggbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCSogZWxmNjQtczM5MC5jOiBMaWtld2lzZS4KCjIwMDMtMDUtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjcHUtYXJtLmMgKGFybV9jaGVja19ub3RlKTogV2FybmluZyBmaXguCgkqIGVsZjMyLWlxMjAwMC5jIChpcTIwMDBfZWxmX2NoZWNrX3JlbG9jcyk6IFdhcm5pbmcgZml4ZXMuICBBcnJhbmdlCgl0byBrZWVwIHJlbG9jcyBpZiBlZGl0ZWQuCgkoaXEyMDAwX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogUmV0dXJuIFRSVUUuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogVXNlIEVMRk5OX1JfU1lNLCBub3QKCUVMRjY0X1JfU1lNLgoJKGVsZk5OX2lhNjRfcmVsYXhfbGR4bW92KTogV2FybmluZyBmaXguCgkqIHh0ZW5zYS1pc2EuYyAoeHRlbnNhX2FkZF9pc2EpOiBXYXJuaW5nIGZpeC4KCSogeHRlbnNhLW1vZHVsZXMuYyAoZ2V0X251bV9vcGNvZGVzKTogV2FybmluZyBmaXguCgoyMDAzLTA1LTA5ICBBbmRyZXkgUGV0cm92IDxwZXRyb3ZAbmV0YnNkLm9yZz4KCgkqIGVsZi5jIChlbGZfZmFrZV9zZWN0aW9ucyk6IFVzZSBjb3JyZWN0IGNhc3QgZm9yIHNoX25hbWUuCgoyMDAzLTA1LTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9saW5rX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTW92ZSBmcm9tCgllbGZsaW5rLmguICBSZXBsYWNlIExPR19GSUxFX0FMSUdOIHdpdGggYmVkLT5zLT5sb2dfZmlsZV9hbGlnbi4KCShfYmZkX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBiZWQtPnMtPmxvZ19maWxlX2FsaWduLgoJKGJmZF9lbGZfcmVjb3JkX2xpbmtfYXNzaWdubWVudCk6IE1vdmUgZnJvbSBlbGZsaW5rLmguCgkoX2JmZF9lbGZfbWVyZ2Vfc3ltYm9sKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfYWRkX2RlZmF1bHRfc3ltYm9sKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfZXhwb3J0X3N5bWJvbCk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2xpbmtfZmluZF92ZXJzaW9uX2RlcGVuZGVuY2llcyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2xpbmtfYXNzaWduX3N5bV92ZXJzaW9uKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfbGlua19yZWFkX3JlbG9jcyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2xpbmtfc2l6ZV9yZWxvY19zZWN0aW9uKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfZml4X3N5bWJvbF9mbGFncyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2xpbmtfc2VjX21lcmdlX3N5bXMpOiBMaWtld2lzZS4KCShlbGZfbGlua19yZWFkX3JlbG9jc19mcm9tX3NlY3Rpb24pOiBMaWtld2lzZS4gIFVzZSBiZWQtPnMtPnNpemVvZl9yZWwKCWFuZCBiZWQtPnMtPnNpemVvZl9yZWxhLgoJKF9iZmRfZWxmX2xpbmtfb3V0cHV0X3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfc2l6ZV9pbmZvKTogUmVuYW1lIGZpbGVfYWxpZ24gdG8KCWxvZ19maWxlX2FsaWduLgoJKHN0cnVjdCBlbGZfaW5mb19mYWlsZWQpOiBNb3ZlIGZyb20gZWxmbGluay5oLgoJKHN0cnVjdCBlbGZfYXNzaWduX3N5bV92ZXJzaW9uX2luZm8pOiBMaWtld2lzZS4KCShzdHJ1Y3QgZWxmX2ZpbmRfdmVyZGVwX2luZm8pOiBMaWtld2lzZS4KCShfYmZkX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERlbGV0ZSBkdXBsaWNhdGUgZGVjbGFyYXRpb24uCgkoX2JmZF9lbGZfbWVyZ2Vfc3ltYm9sLCBfYmZkX2VsZl9hZGRfZGVmYXVsdF9zeW1ib2wsCglfYmZkX2VsZl9leHBvcnRfc3ltYm9sLCBfYmZkX2VsZl9saW5rX2ZpbmRfdmVyc2lvbl9kZXBlbmRlbmNpZXMsCglfYmZkX2VsZl9saW5rX2Fzc2lnbl9zeW1fdmVyc2lvbiwKCV9iZmRfZWxmX2xpbmtfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMsIF9iZmRfZWxmX2xpbmtfcmVhZF9yZWxvY3MsCglfYmZkX2VsZl9saW5rX3NpemVfcmVsb2Nfc2VjdGlvbiwgX2JmZF9lbGZfbGlua19vdXRwdXRfcmVsb2NzLAoJX2JmZF9lbGZfZml4X3N5bWJvbF9mbGFncywgX2JmZF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sLAoJX2JmZF9lbGZfbGlua19zZWNfbWVyZ2Vfc3ltcyk6IERlY2xhcmUuCgkoYmZkX2VsZjMyX2xpbmtfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBkZWNsYXJlLgoJKF9iZmRfZWxmMzJfbGlua19yZWFkX3JlbG9jcyk6IExpa2V3aXNlLgoJKGJmZF9lbGY2NF9saW5rX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoX2JmZF9lbGY2NF9saW5rX3JlYWRfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaDogTW92ZSBsb3RzIG8nIHN0dWZmIGVsc2V3aGVyZS4KCSogYmZkLWluLmggKGJmZF9lbGYzMl9yZWNvcmRfbGlua19hc3NpZ25tZW50KTogRG9uJ3QgZGVjbGFyZS4KCShiZmRfZWxmNjRfcmVjb3JkX2xpbmtfYXNzaWdubWVudCk6IExpa2V3aXNlLgoJKGJmZF9lbGZfcmVjb3JkX2xpbmtfYXNzaWdubWVudCk6IERlY2xhcmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZWxmY29kZS5oIChlbGZfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGRlY2xhcmUuCgkoTkFNRShfYmZkX2VsZixzaXplX2luZm8pKTogQWRqdXN0IGZvciBsb2dfZmlsZV9hbGlnbi4KCSogZWxmLmMgKF9iZmRfZWxmX2luaXRfcmVsb2Nfc2hkcik6IEFkanVzdCBmb3IgYmVkLT5zLT5sb2dfZmlsZV9hbGlnbi4KCShhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX3NlZ21lbnRzKTogTGlrZXdpc2UuCgkoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2V4Y2VwdF9yZWxvY3MpOiBMaWtld2lzZS4KCShzd2FwX291dF9zeW1zLCBlbGZjb3JlX3dyaXRlX25vdGUpOiBMaWtld2lzZS4KCSogZWxmLW0xMDIwMC5jOiBBZGp1c3QgZm9yIGNoYW5nZWQgZnVuY3Rpb24gbmFtZXMuCgkqIGVsZi1tMTAzMDAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWFybS5oOiBMaWtld2lzZS4KCSogZWxmMzItaDgzMDAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWlwMmsuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMTEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMXguYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXh0ZW5zYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYzogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jOiBMaWtld2lzZS4KCShNSVBTX0VMRl9MT0dfRklMRV9BTElHTik6IFVzZSBsb2dfZmlsZV9hbGlnbi4KCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZWxmX3NpemVfaW5mbyk6IEFkanVzdCBmb3IgbG9nX2ZpbGVfYWxpZ24uCgkqIGVsZjY0LWhwcGEuYyAoaHBwYTY0X2VsZl9zaXplX2luZm8pOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X3NpemVfaW5mbyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKHMzOTBfZWxmNjRfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3NpemVfaW5mbyk6IExpa2V3aXNlLgoKMjAwMy0wNS0wOCAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9hZGRfZGVmYXVsdF9zeW1ib2wpOiBBZnRlciBza2lwcGluZyB0aGUKCXVudmVyc2lvbmVkIHN5bWJvbCwgZ28gdG8gbm9uLWRlZmF1bHQgb25lLgoKMjAwMy0wNS0wNyAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCk6IEFsc28gY2xlYXIgdGhlCgl3YW50X3BsdCBmaWVsZC4KCShlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBkbyBkeW5hbWljIHN5bWJvbCBsb29rdXAKCWZvciBzeW1ib2xzIHdpdGggbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCjIwMDMtMDUtMDcgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19jaGVja192ZXJzaW9uZWRfc3ltYm9sKTogQWxzbyBoYW5kbGUgdGhlCgljYXNlIHRoYXQgYSBEU08gcmVmZXJlbmNlcyBhIGhpZGRlbiBzeW1ib2wgd2hpY2ggbWF5IGJlCglzYXRpc2ZpZWQgYnkgYSB2ZXJzaW9uZWQgc3ltYm9sIGluIGFub3RoZXIgRFNPLgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBDaGVjayB2ZXJzaW9uZWQgZGVmaW5pdGlvbiBmb3IgaGlkZGVuCglzeW1ib2wgcmVmZXJlbmNlZCBieSBhIERTTy4KCjIwMDMtMDUtMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9ob3d0b190YWJsZSk6IFJlc2V0CglSX1hTVE9STVkxNl8xNiByZWxvYyB0byBpZ25vcmUgb3ZlcmZsb3dzLgoKMjAwMy0wNS0wNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEltcHJvdmUKCWVycm9yIG1lc3NhZ2UgZm9yIG1peGluZyBkaWZmZXJlbnQtZW5kaWFuIGZpbGVzLiAgQ2hlY2sgZm9yIEFCSQoJY29tcGF0aWJpbGl0eSBvZiBpbnB1dCBmaWxlcyB3aXRoIHRoZSBzZWxlY3RlZCBlbXVsYXRpb24uCgoyMDAzLTA1LTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM4Ni5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBGb3IgdW5kZWYgd2VhayBzeW1zIHdpdGgKCW5vbi1kZWZhdWx0IHZpc2liaWxpdHksIGEpIGRvbid0IG1ha2UgdGhlbSBkeW5hbWljLCBiKSBkaXNjYXJkCglzcGFjZSBmb3IgZHluYW1pYyByZWxvY3MuCgkqIGVsZjY0LXg4Ni02NC5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCgkqIGVsZjMyLXBwYy5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBGb3IgdW5kZWYgd2VhayBzeW1zIHdpdGgKCW5vbi1kZWZhdWx0IHZpc2liaWxpdHksIGEpIGRvbid0IGFsbG9jYXRlIHBsdCBlbnRyaWVzLCBiKSBkb24ndAoJYWxsb2NhdGUgLmdvdCByZWxvY3MsIGMpIGRpc2NhcmQgZHluIHJlbCBzcGFjZSwKCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBkKSBkb24ndCBnZW5lcmF0ZSAuZ290IHJlbG9jcywgZSkKCWRvbid0IGdlbmVyYXRlIGR5bmFtaWMgcmVsb2NzLgoJKiBlbGY2NC1wcGMuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogQXMgYWJvdmUuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBBcyBhYm92ZS4KCjIwMDMtMDUtMDUgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBEb24ndCBhbGxvY2F0ZSBkeW5hbWljCglyZWxvY2F0aW9uIGVudHJpZXMgZm9yIHdlYWsgdW5kZWZpbmVkIHN5bWJvbHMgd2l0aCBub24tZGVmYXVsdAoJdmlzaWJpbGl0eS4KCShlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IEluaXRpYWxpemUgdGhlIEdPVCBlbnRyaWVzIGFuZAoJc2tpcCBSXzM4Nl8zMi9SXzM4Nl9QQzMyIGZvciB3ZWFrIHVuZGVmaW5lZCBzeW1ib2xzIHdpdGgKCW5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgoyMDAzLTA1LTA0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWkzODYuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogRG9uJ3QgYWxsb2NhdGUgZHluYW1pYwoJcmVsb2NhdGlvbiBlbnRyaWVzIGZvciB3ZWFrIHVuZGVmaW5lZCBzeW1ib2xzIHdpdGggbm9uLWRlZmF1bHQKCXZpc2liaWxpdHkuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IEluaXRpYWxpemUgdGhlIEdPVCBlbnRyaWVzIGFuZAoJc2tpcCBSXzM4Nl8zMi9SXzM4Nl9QQzMyIGZvciB3ZWFrIHVuZGVmaW5lZCBzeW1ib2xzIHdpdGgKCW5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgoJKiBlbGZ4eC1pYTY0LmMgKGFsbG9jYXRlX2ZwdHIpOiBEb24ndCBhbGxvY2F0ZSBmdW5jdGlvbgoJZGVzY3JpcHRvcnMgZm9yIHdlYWsgdW5kZWZpbmVkIHN5bWJvbHMgd2l0aCBub24tZGVmYXVsdAoJdmlzaWJpbGl0eS4KCShhbGxvY2F0ZV9keW5yZWxfZW50cmllcyk6IERvbid0IGFsbG9jYXRlIHJlbG9jYXRpb24gZW50cmllcwoJZm9yIHN5bWJvbHMgcmVzb2x2ZWQgdG8gMC4KCShzZXRfZ290X2VudHJ5KTogRG9uJ3QgaW5zdGFsbCBkeW5hbWljIHJlbG9jYXRpb24gZm9yIHdlYWsKCXVuZGVmaW5lZCBzeW1ib2xzIHdpdGggbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCShzZXRfcGx0b2ZmX2VudHJ5KTogTGlrZXdpc2UuCgoJKiBlbGZsaW5rLmggKGVsZl9maXhfc3ltYm9sX2ZsYWdzKTogSGlkZSB3ZWFrIHVuZGVmaW5lZCBzeW1ib2xzCgl3aXRoIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IERvbid0IG1ha2Ugd2VhayB1bmRlZmluZWQgc3ltYm9scwoJd2l0aCBub24tZGVmYXVsdCB2aXNpYmlsaXR5IGR5bmFtaWMuCgoyMDAzLTA1LTA0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX21lcmdlX3N5bWJvbCk6IENvcnJlY3RseSBoYW5kbGUgd2VhayBkZWZpbml0aW9uLgoKMjAwMy0wNS0wNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9tZXJnZV9zeW1ib2wpOiBEb24ndCByZWNvcmQgYSBoaWRkZW4vaW50ZXJuYWwKCXN5bWJvbCBkeW5hbWljLiBDaGVjayBpbmRpcmVjdGlvbiB3aGVuIHJlbW92aW5nIHRoZSBvbGQKCWRlZmluaXRpb24gZm9yIHN5bWJvbHMgd2l0aCBub24tZGVmYXVsdCB2aXNpYmlsaXR5LgoJKGVsZl9hZGRfZGVmYXVsdF9zeW1ib2wpOiBTa2lwIHdoZW4gdG9sZCBieSBlbGZfbWVyZ2Vfc3ltYm9sLgoKMjAwMy0wNS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX2hvd3RvX3RhYmxlKTogTWFrZSB0aGUKCVJfWFNUT1JNWTE2XzggYW5kIFJfWFNUT1JNWTE2XzE2IHJlbG9jcyBkZXRlY3QgYW5kIGNvbXBsYWluIGFib3V0Cgl1bnNpZ25lZCBvdmVyZmxvdy4KCjIwMDMtMDUtMDIgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGZfeDg2XzY0X2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRG9uJ3QgY29weQoJRUxGX0xJTktfTk9OX0dPVF9SRUYgZm9yIHdlYWtkZWZzIHdoZW4gc3ltYm9sIGFscmVhZHkgYWRqdXN0ZWQuCgkoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogRGVmaW5lIGFzIG9uZS4gIFVzZSB0aHJvdWdob3V0LgoJKGVsZl94ODZfNjRfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRm9yIHdlYWsgc3ltYm9scywgY29weQoJRUxGX0xJTktfTk9OX0dPVF9SRUYgZnJvbSB3ZWFrZGVmLgoKMjAwMy0wNS0wMiAgQ2hhcmxlcyBMZXBwbGUgPGNsZXBwbGVAZ2h6LmNjPgoJICAgIE5pY2sgQ2xpZnRvbiA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFjaW5jbHVkZS5tNDogRml4IG5hbWUgb2YgLS1lbmFibGUtaW5zdGFsbC1saWJiZmQgc3dpdGNoLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogVGVzdCB3aGV0aGVyIHRoZQoJd2Vha2RlZiBzeW0gaGFzIGFscmVhZHkgYmVlbiBhZGp1c3RlZCBiZWZvcmUgdHJlYXRpbmcgaXQgc3BlY2lhbGx5LgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRG9uJ3QgY29weQoJRUxGX0xJTktfTk9OX0dPVF9SRUYgZm9yIHdlYWtkZWZzIHdoZW4gc3ltYm9sIGFscmVhZHkgYWRqdXN0ZWQuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogU2V0IEVMRl9MSU5LX05PTl9HT1RfUkVGLgoKMjAwMy0wNC0yOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IFJlbGF4IGxkeG1vdiBkdXJpbmcKCXRoZSByZWxheCBmaW5hbGl6ZSBwYXNzLgoKCSogc2VjdGlvbi5jIChzdHJ1Y3Qgc2VjKTogQWRkIG5lZWRfZmluYWxpemVfcmVsYXggYW5kIHJlbW92ZQoJZmxhZzExLgoJKFNURF9TRUNUSU9OKTogVXBkYXRlIHN0cnVjdCBzZWMgaW5pdGlhbGl6ZXIuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgoyMDAzLTA0LTI4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX21lcmdlX3N5bWJvbCk6IENhbGwgZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wKCXRvIGNvcHkgYW55IGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gZHluYW1pYyBsaW5raW5nIHdoZW4gd2UgZmxpcAoJdGhlIGluZGlyZWN0aW9uLgoKMjAwMy0wNC0yNyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGYtYmZkLmggKEVMRl9MSU5LX0RZTkFNSUNfREVGKTogTmV3LgoJKEVMRl9MSU5LX0RZTkFNSUNfV0VBSyk6IE5ldy4KCgkqIGVsZmxpbmsuaCAoZWxmX21lcmdlX3N5bWJvbCk6IEFkZCBvbmUgYXJndW1lbnQgdG8gaW5kaWNhdGUgaWYKCWEgc3ltYm9sIHNob3VsZCBiZSBza2lwcGVkLiBJZ25vcmUgZGVmaW5pdGlvbnMgaW4gZHluYW1pYwoJb2JqZWN0cyBmb3Igc3ltYm9scyB3aXRoIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgkoZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCk6IEFkanVzdGVkLgoJKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IENoZWNrIGlmIGEgc3ltYm9sIHNob3VsZCBiZQoJc2tpcHBlZC4gRG9uJ3QgbWVyZ2UgdGhlIHZpc2liaWxpdHkgZmllbGQgd2l0aCB0aGUgb25lIGZyb20KCWEgZHluYW1pYyBvYmplY3QuCgkoZWxmX2xpbmtfY2hlY2tfdmVyc2lvbmVkX3N5bWJvbCk6IFVzZSB1bmRlZl9iZmQuCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IFdhcm4gaWYgYSBmb3JjZWQgbG9jYWwgc3ltYm9sIGlzCglyZWZlcmVuY2VkIGZyb20gZHluYW1pYyBvYmplY3RzLiBNYWtlIG5vbi13ZWFrIHVuZGVmaW5lZCBzeW1ib2wKCXdpdGggbm9uLWRlZmF1bHQgdmlzaWJpbGl0eSBhIGZhdGFsIGVycm9yLgoKMjAwMy0wNC0yNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb25maWd1cmUuaW46IEJ1bXAgdmVyc2lvbiBvbiBIRUFEIHRvIDIuMTQuOTAuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAzLTA0LTI2ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCglQUiBzYXZhbm5haC8zMzMxOgoJKiBlbGYzMi1tNjhoYzExLmMgKG02OGhjMTFfZWxmX3JlbGF4X3NlY3Rpb24pOiBDbGVhciBwcmV2X2luc25fZ3JvdXAKCXdoZW4gd2UgY291bGRuJ3QgcmVsYXggc29tZXRoaW5nLgoKMjAwMy0wNC0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX21lcmdlX3N5bWJvbCk6IFdoZW4gd2UgZmluZCBhIHJlZ3VsYXIgZGVmaW5pdGlvbgoJZm9yIGFuIGluZGlyZWN0IHN5bWJvbCwgZmxpcCB0aGUgaW5kaXJlY3Rpb24gc28gdGhhdCB0aGUgb2xkCglkaXJlY3Qgc3ltYm9sIG5vdyBwb2ludHMgdG8gdGhlIG5ldyBkZWZpbml0aW9uLgoKMjAwMy0wNC0yNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChiZmRfc2VjdGlvbl9mcm9tX3BoZHIpOiBNYXAgUFRfR05VX0VIX0ZSQU1FIHRvICJlaF9mcmFtZV9oZHIiLgoKMjAwMy0wNC0yNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jOiBGb3JtYXR0aW5nIGFuZCBjb21tZW50IGZpeGVzLgoJKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IE1vdmUgYmVmb3JlIHBwY19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wuCgkocHBjX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IENvcHkgZmxhZ3MgaGVyZSBmb3Igd2Vha2RlZnMuCgoyMDAzLTA0LTI0IERoYW5hbmpheSBEZXNocGFuZGUgPGRoYW5hbmpheWRAa3BpdGN1bW1pbnMuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfaDgzMDBobiwgYmZkX21hY2hfaDgzMDBzbik6IEFkZGVkLgoJKiBiZmQtaW4yLmg6IFJlYnVpbHQuCgkqIGNvZmYtaDgzMDAuYyAoQkFETUFHKTogQWRkIGNoZWNrIGZvciBIODMwMEhOQkFETUFHICYgSDgzMDBTTkJBRE1BRy4KCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBBZGQgY2FzZSBmb3IgSDgzMDBITk1BR0lDCgkmIEg4MzAwU05NQUdJQy4KCShjb2ZmX3NldF9mbGFncyk6IEFkZCBjYXNlIGZvciBiZmRfbWFjaF9oODMwMGhuICYgYmZkX21hY2hfaDgzMDBzbi4KCSogY3B1LWg4MzAwLmMgKGg4MzAwX3NjYW4pOiBIYW5kbGUgaDgzMDBobiwgaDgzMDBzbi4KCShoODMwMHNuX2luZm9fc3RydWN0LCBoODMwMGhuX2luZm9fc3RydWN0KTogTmV3LgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9tYWNoKTogSGFuZGxlIGNhc2UgZm9yIGg4MzAwaG4gJiBoODMwMHNuCgkoZWxmMzJfaDhfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoKMjAwMy0wNC0yMyAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbGYzMi1zaC5jICh0cG9mZik6IE5ldy4KCShzdHJ1Y3QgZWxmX3NoX2R5bl9yZWxvY3MpOiBSZW1vdmUgdGxzX3Rwb2ZmMzIuCgkoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IFBhc3MgU0hBUkVEIGluc3RlYWQgb2YgSU5GTy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBEb24ndCBtYWtlIHVubmVjZXNzYXJ5IGR5bmFtaWMgVExTCglyZWxvY2F0aW9ucy4gIEFkanVzdCBXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MIHVzZXMuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4gUmVtb3ZlIHVubmVjZXNzYXJ5IHRlc3RzLgoJKGR0cG9mZl9iYXNlKTogRml4IHdyb25nIGluZGVudGF0aW9uLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBEb24ndCBzZXQgREZfU1RBVElDX1RMUyBmbGFnIHdpdGggbm9uLVRMUwoJcmVsb2NhdGlvbnMuICBEb24ndCBzZXQgdGxzX3Rwb2ZmMzIgZmxhZy4gIERvbid0IG1ha2UgdW5uZWNlc3NhcnkKCVJfU0hfVExTX1RQT0ZGMzIgcmVsb2NhdGlvbnMuCgoyMDAzLTA0LTIzICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGFyY2h1cmVzLmMgKGVudW0gYmZkX2FyY2hpdGVjdHVyZSk6IEFtZW5kIGNvbW1lbnQgdG8gcmVmZXIgdG8gU3VwZXJILgoJKiBjcHUtc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmM6IExpa2V3aXNlLgoJKiByZWxvYy5jIChiZmRfcmVsb2NfY29kZV9yZWFsKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQtY29tLmM6IENoYW5nZSBjb21tZW50IHRvIHJlZmVyIHRvIFN1cGVySC4KCSogZWxmMzItc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oIChlbnVtIGJmZF9hcmNoaXRlY3R1cmUpOiBSZWdlbmVyYXRlLgoKMjAwMy0wNC0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglGcm9tIEp1bGllbiBMRU1PSU5FIDxzcGVlZGJsdWVAZGViaWFuLm9yZz4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9pbmZvX3RvX2hvd3RvKTogRGVsZXRlLgoJKGVsZl9pbmZvX3RvX2hvd3RvKTogRGVmaW5lIGFzIGVsZl9pMzg2X2luZm9fdG9faG93dG9fcmVsLgoKMjAwMy0wNC0yMiAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCSogYXJjaHVyZXMuYzogUmVwbGFjZSByZWZlcmVuY2VzIHRvIE1pdHN1YmlzaGkgTTMyUiB3aXRoIHJlZmVyZW5jZXMKCXRvIFJlbmVzYXMgTTMyUi4KCSogcmVsb2NzLmM6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTA0LTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBSZXR1cm4gZmFsc2UgZm9yIGFuCglleGVjdXRhYmxlIHdoZW4gYSBzeW1ib2wgaXMgZGVmaW5lZCBib3RoIHJlZ3VsYXIgYW5kIGR5bmFtaWMuCgoyMDAzLTA0LTIxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1tNjhoYzF4LmxvLgoJKGVsZjMyLW02OGhjMXgubG8pOiBVcGRhdGUgZGVwZW5kZW5jaWVzCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGVsZjMyLW02OGhjMXgubG8uCgkqIGNvbmZpZ3VyZTogUmVidWlsZC4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgoyMDAzLTA0LTIxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMXguYzogTmV3IGZpbGUgKGZyb20gZWxmMzItbTY4aGMxMS5jIGFuZCBlbGYzMi1tNjhoYzEyLmMpCgkobTY4aGMxMV9lbGZfaGFzaF90YWJsZV9jcmVhdGUpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfbTY4aGMxMV9saW5rX2hhc2hfdGFibGVfZnJlZSk6IE5ldyBmdW5jdGlvbi4KCShzdHViX2hhc2hfbmV3ZnVuYyk6IE5ldyBmdW5jdGlvbi4KCShtNjhoYzExX2FkZF9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX202OGhjMTFfYWRkX3N5bWJvbF9ob29rKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX202OGhjMTFfc2V0dXBfc2VjdGlvbl9saXN0cyk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9tNjhoYzExX25leHRfaW5wdXRfc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9tNjhoYzExX3NpemVfc3R1YnMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfbTY4aGMxMV9idWlsZF9zdHVicyk6IE5ldyBmdW5jdGlvbi4KCShtNjhoYzExX2dldF9yZWxvY2F0aW9uX3ZhbHVlKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX202OGhjMTFfcmVsb2NhdGVfc2VjdGlvbik6IENhbGwgdGhlIGFib3ZlIHRvIHJlZGlyZWN0Cglzb21lIHJlbG9jYXRpb25zIHRvIHRoZSB0cmFtcG9saW5lIGNvZGUuCgkobTY4aGMxMV9lbGZfZXhwb3J0X29uZV9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKG02OGhjMTFfZWxmX3NldF9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfbTY4aGMxMV9idWlsZF9zdHVicyk6IENhbGwgaXQgdmlhIGJmZF9oYXNoX3RyYXZlcnNlLgoJKG02OGhjMTFfZWxmX2dldF9iYW5rX3BhcmFtZXRlcnMpOiBHZXQgcGFyYW1ldGVycyBvbmx5IHdoZW4gdGhlIGluZm8KCWlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQuCgoJKiBlbGYzMi1tNjhoYzF4Lmg6IE5ldyBmaWxlIChmcm9tIGVsZjMyLW02OGhjMTEuYyBhbmQgZWxmMzItbTY4aGMxMi5jKQoJKGVsZjMyX202OGhjMTFfc3R1Yl9oYXNoX2VudHJ5KTogTmV3IHN0cnVjdC4KCShtNjhoYzExX3BhZ2VfaW5mbyk6IEFkZCB0cmFtcG9saW5lIGhhbmRsZXIgYWRkcmVzcy4KCShtNjhoYzExX2VsZl9saW5rX2hhc2hfdGFibGUpOiBBZGQgc3R1YnMgZ2VuZXJhdGlvbiBtZW1iZXJzLgoJKGVsZjMyX202OGhjMTFfYWRkX3N5bWJvbF9ob29rKTogRGVjbGFyZS4KCShlbGYzMl9tNjhoYzExX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBEZWNsYXJlLgoJKGVsZjMyX202OGhjMTFfc2l6ZV9zdHVicyk6IERlY2xhcmUuCgkoZWxmMzJfbTY4aGMxMV9idWlsZF9zdHVicyk6IERlY2xhcmUuCgoJKiBlbGYzMi1tNjhoYzExLmMgKG02OGhjMTFfZWxmX2lnbm9yZV9yZWxvYyk6IE1vdmUgdG8gZWxmMzItbTY4aGMxeC5jLgoJKGVsZjMyX202OGhjMTFfZ2NfbWFya19ob29rLCBlbGYzMl9tNjhoYzExX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGYzMl9tNjhoYzExX2NoZWNrX3JlbG9jcywgZWxmMzJfbTY4aGMxMV9yZWxvY2F0ZV9zZWN0aW9uKTogRGl0dG8uCgkoX2JmZF9tNjhoYzExX2VsZl9zZXRfcHJpdmF0ZV9mbGFncyk6IERpdHRvLgoJKF9iZmRfbTY4aGMxMV9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IERpdHRvLgoJKF9iZmRfbTY4aGMxMV9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IERpdHRvLgoJKGJmZF9lbGYzMl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IERlZmluZS4KCShlbGZfYmFja2VuZF9hZGRfc3ltYm9sX2hvb2spOiBEZWZpbmUuCgkobTY4aGMxMV9lbGZfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBOZXcgZnVuY3Rpb24uCgkobTY4aGMxMV9lbGZfYnVpbGRfb25lX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkobTY4aGMxMV9lbGZfc2l6ZV9vbmVfc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShtNjhoYzExX2VsZl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluc3RhbGwgdGhlIGFib3ZlLgoJKGJmZF9lbGYzMl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IERlZmluZS4KCgkqIGVsZjMyLW02OGhjMTIuYyAobTY4aGMxMV9lbGZfaWdub3JlX3JlbG9jKTogUmVtb3ZlLgoJKG02OGhjMTJfYWRkcl9pc19iYW5rZWQpOiBSZW1vdmUsIHVzZSBtNjhoYzExX2FkZHJfaXNfYmFua2VkLgoJKG02OGhjMTJfcGh5c19hZGRyKTogRGl0dG8uCgkobTY4aGMxMl9waHlzX3BhZ2UpOiBEaXR0by4KCShtNjhoYzEyX2VsZl9zcGVjaWFsX3JlbG9jKTogTW92ZSB0byBlbGYzMi1tNjhoYzF4LmMuCgkoZWxmMzJfbTY4aGMxMV9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCShlbGYzMl9tNjhoYzExX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGYzMl9tNjhoYzExX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZjMyX202OGhjMTFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKF9iZmRfbTY4aGMxMl9lbGZfc2V0X3ByaXZhdGVfZmxhZ3MpOiBMaWtld2lzZS4KCShfYmZkX202OGhjMTJfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBMaWtld2lzZS4KCShfYmZkX202OGhjMTJfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBMaWtld2lzZS4KCShtNjhoYzEyX2VsZl9idWlsZF9vbmVfc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShtNjhoYzEyX2VsZl9zaXplX29uZV9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKG02OGhjMTJfZWxmX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTmV3IGZ1bmN0aW9uLCB1c2UgdGhlIGFib3ZlLgoJKGVsZl9iYWNrZW5kX2FkZF9zeW1ib2xfaG9vayk6IERlZmluZS4KCShlbGZfbTY4aGMxMV9ob3d0b190YWJsZSk6IFVzZSBUUlVFIGZvciBwY3JlbCByZWxvY3M7IGZpeCBtYXNrcy4KCjIwMDMtMDQtMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBmb3JtYXQuYyAoYmZkX2NoZWNrX2Zvcm1hdF9tYXRjaGVzKTogT25seSBjaGVjayBhc3NvY2lhdGVkCgl2ZWN0b3IgaWYgdGhlIG1hdGNoaW5nX3ZlY3RvciBoYXMgYmVlbiBjcmVhdGVkLgoKMjAwMy0wNC0xNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBkd2FyZjIuYyAoX2JmZF9kd2FyZjJfZmluZF9uZWFyZXN0X2xpbmUpOiBGaXggdHlwbyBpbgoJMjAwMy0wNC0wOSdzIGNoYW5nZS4KCjIwMDMtMDQtMTUgIEJyaWFuIEZvcmQgIDxmb3JkQHZzcy5mc2kuY29tPgoKCSogcGVpY29kZS5oIChjb2ZmX3N3YXBfc2NuaGRyX2luKTogSWYgYSBzZWN0aW9uIGhvbGRzCgl1bmluaXRpYWxpemVkIGRhdGEgYW5kIGlzIGZyb20gYW4gb2JqZWN0IGZpbGUgb3IgZnJvbSBhbgoJZXhlY3V0YWJsZSBpbWFnZSB0aGF0IGhhcyBub3QgaW5pdGlhbGl6ZWQgdGhlIHNfc2l6ZSBmaWVsZCwgb3IgaWYKCXRoZSBwaHlzaWNhbCBzaXplIGlzIHBhZGRlZCwgdXNlIHRoZSB2aXJ0dWFsIHNpemUgKHN0b3JlZCBpbgoJc19wYWRkcikgaW5zdGVhZC4KCjIwMDMtMDQtMTUgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBQcm9wZXJseSByZXBvcnQKCWZpbGVuYW1lIGZvciBhbGlnbm1lbnQgcmVkdWN0aW9uLgoKMjAwMy0wNC0xNSAgUm9oaXQgS3VtYXIgU3JpdmFzdGF2YSA8cm9oaXRzQGtwaXRjdW1taW5zLmNvbT4KCgkqIGFyY2h1cmVzLmM6IFJlcGxhY2Ugb2NjdXJyYW5jZXMgb2YgJ0hpdGFjaGknIHdpdGggJ1JlbmVzYXMnLgoJKiByZWxvYy5jOiBMaWtld2lzZS4KCSogY29mZi1oODMwMC5jOiBMaWtld2lzZS4KCSogY29mZi1oODUwMC5jOiBMaWtld2lzZS4KCSogY29mZi1zaC5jOiBMaWtld2lzZS4KCSogY3B1LWg4MzAwLmM6IExpa2V3aXNlLgoJKiBjcHUtc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC1jb20uYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYzogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDQtMTQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBNYWludGFpbiBtYXhpbXVtCglhbGlnbm1lbnQgZm9yIGNvbW1vbiBzeW1ib2xzLiBXYXJuIHJlZHVjaW5nIGFsaWdubWVudCBmb3IKCWNvbW1vbiBzeW1ib2xzLiBSZXBvcnQgb2xkIGZpbGVuYW1lIHdoZW4gc3ltYm9sIHNpemUgY2hhbmdlcy4KCjIwMDMtMDQtMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IEFkanVzdCB0d28gb3RoZXIKCW9jY3VycmVuY2VzIG9mIHRoZSBzYW1lIHRlc3QgY2hhbmdlZCBpbiB0aGUgcHJldmlvdXMgcGF0Y2guCglPcHRpbWl6ZS4KCjIwMDMtMDQtMTEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9nZXRfZ2xvYmFsX2dvdHN5bV9pbmRleCk6IE5ldy4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IERlY2F5IEdPVF9QQUdFL0dPVF9PRlNUIHRvCglHT1RfRElTUC9hZGRlbmQgb25seSBpZiB0aGUgc3ltYm9sIGdvdCBhIGdsb2JhbCBHT1QgZW50cnkuCgoyMDAzLTA0LTEwICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBEZWNheQoJR09UX1BBR0UvR09UX09GU1QgcmVmZXJlbmNpbmcgb3ZlcnJpZGFibGUgc3ltYm9sIHRvCglHT1RfRElTUC9hZGRlbmQuCgkoX2JmZF9taXBzX2VsZl9jaGVja19yZWxvY3MpOiBIYW5kbGUgR09UX1BBR0UgcmVmZXJlbmNpbmcKCWdsb2JhbCBzeW1ib2wgYXMgR09UX0RJU1AuCgoyMDAzLTA0LTEwICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZWxmMzIteHRlbnNhLmMgKGVsZl94dGVuc2FfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGNvbnRpbnVlIHRvIHRoZQoJbmV4dCByZWxvY2F0aW9uIG9uIGFuIHVuZGVmaW5lZCBzeW1ib2wuCgoyMDAzLTA0LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbikgPFJfQUxQSEFfR1BSRUwzMj46CglJZ25vcmUgcmVsb2NhdGlvbnMgYWdhaW5zdCByX3N5bW5keCA9PSAwLgoKMjAwMy0wNC0wOSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgcmV0dXJuCglGQUxTRSBmb3IgdW5kZWZpbmVkIHN5bWJvbHMuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTA0LTA5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGR3YXJmMi5jIChfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZSk6IFRyeSBEV0FSRjMtc3RhbmRhcmQKCWFuZCBJUklYLXNwZWNpZmljIHNoaWZ0LXRvLTY0LWJpdCA0LWJ5dGUgbGVuZ3RocyBiZWZvcmUgZm9sbG93aW5nCglhZGRyX3NpemUuCgoyMDAzLTA0LTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAoYmZkX2VsZjMyX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IERldGVjdCAoY3RvcikKCXBvaW50ZXIgc2l6ZSBmcm9tIEFCSSwgbm90IGFyY2hfYml0c19wZXJfYWRkcmVzcy4KCjIwMDMtMDQtMDcgIEtldmluIEJ1ZXR0bmVyICA8a2V2aW5iQHJlZGhhdC5jb20+CgoJKiBlbGZuMzItbWlwcy5jIChlbGYzMl9taXBzX2dyb2tfcHJzdGF0dXMpOiBBZGp1c3QgY29yZSBmaWxlIHJlbGF0ZWQKCWNvbnN0YW50cyBmb3IgbjMyIEFCSS4KCjIwMDMtMDQtMDYgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAcmVkaGF0LmNvbT4KCgkqIHNpbXBsZS5jIChiZmRfc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IERpc2FibGUKCWZyZWUgdGhhdCBsZWFkcyB0byBHREIgdnMgQkZEIG1lbW9yeSBjb3JydXB0aW9uLgoKMjAwMy0wNC0wNCAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzExLmMgKG02OGhjMTFfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IEFsc28gYWRqdXN0CglzeW1ib2xzIHRoYXQgbWFyayB0aGUgZW5kIG9mIHRoZSBzZWN0aW9uLgoJKG02OGhjMTFfZWxmX3JlbGF4X3NlY3Rpb24pOiBVc2UgUl9NNjhIQzExX1BDUkVMXzggcmVsb2NzIHdoZW4KCWNvbnZlcnRpbmcgdG8gYSByZWxhdGl2ZSBicmFuY2ggc28gdGhhdCB0aGUgb2Zmc2V0IGlzIGNvbXB1dGVkIGFmdGVyCgl0aGUgcmVsYXhhdGlvbjsgYWxzbyByZWxvY2F0ZSBhIGpzciBpbnRvIGEgYnNyIGlmIHBvc3NpYmxlIGJ1dCBkb24ndAoJcmVsYXggdGhlbSBpZiB0aGV5IGFyZSB0byBhIGZhciBzeW1ib2wgYXMgd2UgbmVlZCB0byBjYWxsIHRoZQoJdHJhbXBvbGluZSBjb2RlLgoJKGVsZl9tNjhoYzExX2hvd3RvX3RhYmxlKTogU2V0IHBjcmVsX29mZnNldCB0byB0cnVlLgoKMjAwMy0wNC0wNCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogYXJjaHVyZXMuYzogTmFtZXNwYWNlIGNsZWFudXAuIFJlbmFtZSBiZmRfbWFjaF9jM3ggdG8KCWJmZF9tYWNoX3RpYzN4IGFuZCBiZmRfbWFjaF9jNHggdG8gYmZkX21hY2hfdGljNHgKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlCgkqIGNvZmYtdGljNHguYzogTmFtZXNwYWNlIGNsZWFudXAuIFJlcGxhY2Ugcy9jNHgvdGljNHgvCgkqIGNwdS10aWM0eC5jOiBEaXR0bwoKMjAwMy0wNC0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBlWFhpZ2VuLmMgKF9iZmRfWFhpX3N3YXBfc2NuaGRyX291dCk6IENvbXB1dGUgcHMgYW5kIHNzCglkaWZmZXJlbnRseSBmb3Igb2JqZWN0IGZpbGVzIGFuZCBleGVjdXRhYmxlcy4KCSogcGVpY29kZS5oIChjb2ZmX3N3YXBfc2NuaGRyX2luKTogT25seSBzZXQgdGhlIHNfc2l6ZSBmaWVsZAoJZm9yIG9iamVjdCBmaWxlcyBvciBmb3IgZXhlY3V0YWJsZXMgd2hvIGhhdmUgbm90IGFscmVhZHkKCWluaXRpYWxpc2VkIHRoZSBmaWVsZC4KCSogbGlicGVpLmggKGJmZF9wZV9leGVjdXRhYmxlX3ApOiBOZXcgbWFjcm8uICBSZXR1cm4gdHJ1ZSBpZgoJdGhlIFBFIGZvcm1hdCBiZmQgaXMgYW4gZXhlY3V0YWJsZS4KCjIwMDMtMDQtMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9jaGVja19yZWxvY3MpOiBEb24ndCB1c2UgU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwKCWhlcmUgYXMgaXQncyB0b28gZWFybHkgdG8gcmVsaWFibHkgZGV0ZXJtaW5lIGxvY2FsaXR5LgoJKHBwY19lbGZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMKTogRXhwYW5kIGNvbW1lbnQuCgoyMDAzLTA0LTAyICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogeHRlbnNhLW1vZHVsZXMuYzogUmVtb3ZlIGNvbW1lbnQgaW5kaWNhdGluZyB0aGF0IHRoaXMgaXMgYQoJZ2VuZXJhdGVkIGZpbGUuCgoyMDAzLTA0LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2hpZGVfc3ltYm9sKTogVGVzdCBmb3IgTlVMTCBkeW5vYmouCgoyMDAzLTA0LTAxICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9NQUNISU5FUyk6IEFkZCBjcHUteHRlbnNhLmxvLgoJKEFMTF9NQUNISU5FU19DRklMRVMpOiBBZGQgY3B1LXh0ZW5zYS5jLgoJKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLXh0ZW5zYS5sbywgeHRlbnNhLWlzYS5sbywgYW5kCgl4dGVuc2EtbW9kdWxlcy5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmMzIteHRlbnNhLmMsIHh0ZW5zYS1pc2EuYywgYW5kCgl4dGVuc2EtbW9kdWxlcy5jLgoJKGNwdS14dGVuc2EubG8pOiBOZXcgdGFyZ2V0LgoJKGVsZjMyLXh0ZW5zYS5sbyk6IExpa2V3aXNlLgoJKHh0ZW5zYS1pc2EubG8pOiBMaWtld2lzZS4KCSh4dGVuc2EtbW9kdWxlcy5sbyk6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYXJjaHVyZXMuYyAoYmZkX2FyY2hpdGVjdHVyZSk6IEFkZCBiZmRfe2FyY2gsbWFjaH1feHRlbnNhLgoJKGJmZF9hcmNodXJlc19saXN0KTogQWRkIGJmZF94dGVuc2FfYXJjaC4KCSogY29uZmlnLmJmZDogSGFuZGxlIHh0ZW5zYS0qLSouCgkqIGNvbmZpZ3VyZS5pbjogSGFuZGxlIGJmZF9lbGYzMl94dGVuc2Ffe2xlLGJlfV92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcmVsb2MuYzogQWRkIEJGRF9SRUxPQ19YVEVOU0Ffe1JUTEQsR0xPQl9EQVQsSk1QX1NMT1QsUkVMQVRJVkUsCglQTFQsT1AwLE9QMSxPUDIsQVNNX0VYUEFORCxBU01fU0lNUExJRll9LgoJKiB0YXJnZXRzLmMgKGJmZF9lbGYzMl94dGVuc2FfYmVfdmVjKTogRGVjbGFyZS4KCShiZmRfZWxmMzJfeHRlbnNhX2xlX3ZlYyk6IExpa2V3aXNlLgoJKGJmZF90YXJnZXRfdmVjdG9yKTogQWRkIGJmZF9lbGYzMl94dGVuc2Ffe2JlLGxlfV92ZWMuCgkqIGNwdS14dGVuc2EuYzogTmV3IGZpbGUuCgkqIGVsZjMyLXh0ZW5zYS5jOiBMaWtld2lzZS4KCSogeHRlbnNhLWlzYS5jOiBMaWtld2lzZS4KCSogeHRlbnNhLW1vZHVsZXMuYzogTGlrZXdpc2UuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IExpa2V3aXNlLgoKMjAwMy0wNC0wMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2FybV91bmtub3duKTogRGVmaW5lLgoJKiBiZmQtaW4uaCAoYmZkX2FybV9tZXJnZV9tYWNoaW5lcywgYmZkX2FybSt1cGRhdGVfbm90ZXMsCgliZmRfYXJtX2dldF9tYWNoX2Zyb21fbm90ZXMpOiBQcm90b3R5cGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY29mZi1hcm0uYyAoY29mZl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IENhbGwKCWJmZF9hcm1fbWVyZ2VfbWFjaGluZXMuCgkoY29mZl9hcm1fZmluYWxfbGlua19wb3N0c2NyaXB0KTogQ2FsbCBiZmRfYXJtX3VwZGF0ZV9ub3Rlcy4KCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBDYWxsCgliZmRfYXJtX2dldF9tYWNoX2Zyb21fbm90ZXMuCgkqIGNvZmZnZW4uYyAoY29mZl9yZWFsX29iamVjdF9wKTogUmV2ZXJ0IHByZXZpb3VzIGRlbHRhLgoJKiBjcHVfYXJtLmMgKGFybV9jaGVja19ub3RlKTogTmV3IGZ1bmN0aW9uLiAgRXhhbWluZSBhIG5vdGUgaW4gYQoJLm5vdGUgc2VjdGlvbi4KCShiZmRfYXJtX21lcmdlX21hY2hpbmVzKTogTmV3IGZ1bmN0aW9uOiBIYW5kbGUgdGhlIG1lcmdpbmcgb2YgQVJNCgliaW5hcmllcyBjb21waWxlZCBmb3IgZGlmZmVyZW50IGFyY2hpdGVjdHVyZXMuLgoJKGJmZF9hcm1fdXBkYXRlX25vdGVzKTogTmV3IGZ1bmN0aW9uOiBVcGRhdGUgYW4gQVJNIG5vdGUgc2VjdGlvbi4KCShiZmRfYXJtX2dldF9tYWNoX2Zyb21fbm90ZXMpOiBOZXcgZnVuY3Rpb246IEV4dHJhY3QgYSBiZmQgbWFjaGluZQoJbnVtYmVyIGZyb20gYW4gQVJNIG5vdGUgc2VjdGlvbi4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9vYmplY3RfcCk6IFVzZQoJYmZkX2FybV9nZXRfbWFjaF9mcm9tX25vdGVzLgoJKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogVXNlIGJmZF9hcm1fbWVyZ2VfbWFjaGluZXMuCgkoZWxmMzJfYXJtX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBVc2UgYmZkX2FybV91cGRhdGVfbm90ZXMuCgoyMDAzLTA0LTAxICBCZW4gRWxsaXN0b24gIDxiamVAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBkd2FyZjIuYyAocmVhZF9hdHRyaWJ1dGVfdmFsdWUpOiBDb3JyZWN0IHR5cG8gaW4gY29tbWVudC4KCjIwMDMtMDQtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkd2FyZjIuYyAoY29uY2F0X2ZpbGVuYW1lKTogVXNlIGJmZF9tYWxsb2MoKSBhbmQgc3RyZHVwKCkKCWluc3RlYWQgb2YgY29uY2F0KCkuCgkoZGVjb2RlX2xpbmVfaW5mbyk6IE9ubHkgZnJlZSBmaWxlbmFtZSBpZiBpdCBpcyBub3QgTlVMTC4KCShhZGRfbGluZV9pbmZvKTogTWFrZSBhIGNvcHkgb2YgdGhlIGZpbGVuYW1lIHdoZW4gc3RvcmluZyBpdCBpbnRvCgl0aGUgaW5mbyBzdHJ1Y3R1cmUuCgoyMDAzLTAzLTMxICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoJICAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogc2ltcGxlLmMgKGJmZF9zaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogQWRkCglwYXJhbWV0ZXIgc3ltYm9sX3RhYmxlLiAgT3B0aW9uYWxseSB1c2UgaXQgaW5zdGVhZCBvZiB0aGUgc3ltYm9sCgl0YWJsZSBmcm9tIHRoZSBiZmQuICBTYXZlIGFuZCByZXN0b3JlIG91dHB1dCBvZmZzZXRzIGFuZCBvdXRwdXQKCXNlY3Rpb25zICBhcm91bmQgYmZkX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cy4gIEZpeCBhIG1lbW9yeQoJbGVhay4KCShzaW1wbGVfc2F2ZV9vdXRwdXRfaW5mbywgc2ltcGxlX3Jlc3RvcmVfb3V0cHV0X2luZm8pOiBOZXcKCWZ1bmN0aW9ucy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBkd2FyZjIuYyAocmVhZF9hYmJyZXZzKTogVXNlCgliZmRfc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyBpbnN0ZWFkIG9mCgliZmRfZ2V0X3NlY3Rpb25fY29udGVudHMuCgkoZGVjb2RlX2xpbmVfaW5mbyk6IExpa2V3aXNlLgoJKF9iZmRfZHdhcmYyX2ZpbmRfbmVhcmVzdF9saW5lKTogTGlrZXdpc2UuICBEb24ndCBjYWxsCglmaW5kX3JlbGFfYWRkZW5kLgoJKGZpbmRfcmVsYV9hZGRlbmQpOiBSZW1vdmUuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvYyk6IFdlYWtlbiBzYW5pdHkgY2hlY2sgZm9yCglkZWJ1Z2dpbmcgc2VjdGlvbnMuCgkoZWxmTk5faWE2NF9oYXNoX3RhYmxlX2NyZWF0ZSk6IENyZWF0ZSB0aGUgaGFzaCB0YWJsZSB3aXRoIG1hbGxvYywKCW5vdCBiZmRfemFsbG9jLgoKMjAwMy0wMy0zMSAgRGF2aWQgSGVpbmUgIDxkbGhlaW5lQHN1aWYuc3RhbmZvcmQuZWR1PgoKCSogYW91dHguaCAoYW91dF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogVXNlIGJmZF9tYWxsb2MgaW5zdGVhZCBvZgoJYmZkX2FsbG9jLgoJKiBkd2FyZjIuYyAoY29uY2F0X2ZpbGVuYW1lKTogQWx3YXlzIGFsbG9jYXRlIHNwYWNlIGZvciB0aGUKCXJldHVybmVkIGZpbGVuYW1lLgoJKGRlY29kZV9saW5lX2luZm8pOiBGcmVlIHRoZSBhbGxvY2F0ZWQgZmlsZW5hbWUgcmV0dXJuZWQgYnkKCWNvbmNhdF9maWxlbmFtZS4KCSogZWxmLWVoLWZyYW1lLmMgKGJmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZSk6IEZpeCBtZW1vcnkgbGVha3MuCgkqIGVsZi5jIChjb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBMaWtld2lzZS4KCShfYmZkX2VsZl9zbHVycF92ZXJzaW9uX3RhYmxlcyk6IEZpeCBidWcgZnJlZWluZyBjb250ZW50cyBwb2ludGVyLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX3NvcnRfcmVsb2NzKTogRml4IG1lbW9yeSBsZWFrLgoJKiBmb3JtYXQuYyAoYmZkX2NoZWNrX2Zvcm1hdF9tYXRjaGVzKTogTGlrZXdpc2UuCgkqIGxpbmtlci5jIChiZmRfZ2VuZXJpY19maW5hbF9saW5rKTogTGlrZXdpc2UuCgkqIG9wbmNscy5jIChmaW5kX3NlcGFyYXRlX2RlYnVnX2luZm8pOiBMaWtld2lzZS4KCSogc2ltcGxlLmMgKGJmZF9zaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgoyMDAzLTAzLTI4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogQ29ycmVjdGx5IGNvbWJpbmUKCXZpc2liaWxpdGllcy4KCjIwMDMtMDMtMjcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBSZXNldCBzZWxmX2R0cG1vZF9vZmZzZXQKCXRvIC0xIGJlZm9yZSByZWNvbXB1dGluZyBnb3Qgb2Zmc2V0cy4KCjIwMDMtMDMtMjYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBlbGYzMi1tNjhrLmMgKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBEZWZpbmUuCgkoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBpdCB0byBjb3JyZWN0bHkgaGFuZGxlIHN5bWJvbHMKCWZvcmNlZCB0byBiZSBsb2NhbC4KCShlbGZfbTY4a19maW5pc2hfZHluYW1pY19zeW1ib2wpOiBFbWl0IFJFTEFUSVZFIHJlbG9jIGZvciBnb3QKCWVudHJpZXMgZm9yIHN5bWJvbHMgdGhhdCBhcmUgZm9yY2VkIHRvIGJlIGxvY2FsLgoKMjAwMy0wMy0yNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19yZWxheF9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKiBlbGZ4eC1taXBzLmggKF9iZmRfbWlwc19yZWxheF9zZWN0aW9uKTogRGVjbGFyZS4KCSogZWxmbjMyLW1pcHMuYywgZWxmNjQtbWlwcy5jOiBVc2UgaXQuCgoyMDAzLTAzLTI1ICBTdGFuIENveCAgIDxzY294QHJlZGhhdC5jb20+CgkgICAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglDb250cmlidXRlIHN1cHBvcnQgZm9yIEludGVsJ3MgaVdNTVh0IGNoaXAgLSBhbiBBUk0gdmFyaWFudDoKCgkqIGFyY2h1cmVzLmM6IEFkZCBiZmRfbWFjaF9hcm1faVdNTVh0LgoJKiByZWxvYy5jOiBBZGQgQkZEX1JFTE9DX0FSTV9DUF9PRkZfSU1NX1MyLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBjb2ZmLWFybS5jIChjb2ZmX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQWxsb3cgaVdNTVh0CglvYmplY3QgZmlsZXMgdG8gYmUgbGlua2VkIHdpdGggWFNjYWxlIG9uZXMuCgkoY29mZl9hcm1fZmluYWxfbGlua19wb3N0c2NyaXB0KTogVXBkYXRlIG5vdGUgc2VjdGlvbi4KCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBIYW5kbGUgbm90ZSBzZWN0aW9uLgoJKiBjb2ZmZ2VuLmMgKGNvZmZfcmVhbF9vYmplY3RfcCk6IENhbGwgYmZkX2NvZmZfc2V0X2FyY2hfbWFjaF9ob29rCglhZnRlciBpZGVudGlmeWluZyBhIGNvZmYgYmluYXJ5LgoJKiBjcHUtYXJtLmMgKHByb2Nlc3NvcnMpOiBBZGQgaVdNTVh0LgoJKGFyY2hfaW5mKTogTGlrZXdpc2UuCgkqIGVsZjMyLWFybS5oIChhcm1fb2JqZWN0X3ApOiBIYW5kbGUgbm90ZSBzZWN0aW9uLgoJKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQWxsb3cgaVdNTVh0IG9iamVjdCBmaWxlcyB0bwoJYmUgbGlua2VkIHdpdGggWFNjYWxlIG9uZXMuCgkoZWxmMzJfYXJtX3NlY3Rpb25fZmxhZ3MpOiBOZXcgZnVuY3Rpb246IFNldCBmbGFncyBvbiBub3RlIHNlY3Rpb24uCgkoZWxmMzJfYXJtX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBIYW5kbGUgbm90ZSBzZWN0aW9uLgoKMjAwMy0wMy0yMSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoZWxmMzJfeHN0b3JteTE2X3JlbG9jYXRlX3NlY3Rpb24pOiBDYWxsCglfYmZkX2VsZl9yZWxhX2xvY2FsX3N5bS4KCjIwMDMtMDMtMjAgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBEb24ndCB0cnkgcmVsYXggZm9yCglub24tRUxGIG91dHB1dHMuCgoyMDAzLTAzLTIwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcGVYWGlnZW4uYyAoX2JmZF9YWGlfc3dhcF9hb3V0aGRyX291dCk6IEluaXRpYWxpc2UgJGlkYXRhMiBhbmQKCSRpZGF0YTUgaW4gY2FzZSBiZmRfY29mZl9maW5hbF9saW5rIGlzIG5vdCBjYWxsZWQuCgoyMDAzLTAzLTE5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LXNwYXJjLmMgKHN0cnVjdCBzcGFyYzY0X2VsZl9zZWN0aW9uX2RhdGEpOiBBZGQgcmVsb2NfY291bnQKCWZpZWxkLgoJKGNhbm9uX3JlbG9jX2NvdW50KTogRGVmaW5lLgoJKHNwYXJjNjRfZWxmX3NsdXJwX29uZV9yZWxvY190YWJsZSwgc3BhcmM2NF9lbGZfc2x1cnBfcmVsb2NfdGFibGUsCglzcGFyYzY0X2VsZl9jYW5vbmljYWxpemVfZHluYW1pY19yZWxvYyk6IFVzZSBpdCBpbnN0ZWFkIG9mCglyZWxvY19jb3VudC4KCShzcGFyYzY0X2VsZl9jYW5vbmljYWxpemVfcmVsb2MpOiBOZXcgcm91dGluZS4KCShiZmRfZWxmNjRfY2Fub25pY2FsaXplX3JlbG9jKTogRGVmaW5lLgoKMjAwMy0wMy0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IEhhbmRsZSByZWxheGF0aW9uCglhZ2FpbnQgbWVyZ2VhYmxlIHNlY3Rpb25zLiAgVGFrZSByX2FkZGVuZCBpbnRvIGFjY291bnQgd2hlbiBjYWNoaW5nCgl0cmFtcG9saW5lcy4KCjIwMDMtMDMtMTggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGdldF9keW5fc3ltX2luZm8pOiBSZXR1cm4gTlVMTCBncmFjZWZ1bGx5IGZvcgoJbG9jYWwgc3ltYm9scyB0aGF0IGhhdmUgbm8gZHluaW5mby4KCjIwMDMtMDMtMTQgIEdlbmUgU21pdGggIDxnZW5lLnNtaXRoQHNpZW1lbnMuY29tPgoKCSogaWVlZS5jIChpZWVlX3dyaXRlX2V4cHJlc3Npb24pOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgc3ltYm9sIGlzCglOVUxMLgoJR2VuZXJhbCBmb3JtYXR0aW5nIGltcHJvdmVtZW50cy4KCjIwMDMtMDMtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKExJTkdVQVMpOiBBZGQgemhfQ04uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vemhfQ04ucG86IE5ldyBmaWxlLgoKMjAwMy0wMy0xMyAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlbGF0aGFuQHBoeXMudW9hLmdyPgoKCSogYW91dC1jcmlzLmMgKEJZVEVTX0lOX1dPUkQpOiBEb24ndCBkZWZpbmUuCglhb3V0LWVuY2FwLmM6IExpa2V3aXNlLgoJYW91dC1uczMyay5jOiBMaWtld2lzZS4KCWFvdXQtdGljMzAuYzogTGlrZXdpc2UuCglocDMwMGJzZC5jOiBMaWtld2lzZS4KCWkzODZhb3V0LmM6IExpa2V3aXNlLgoJaTM4NmR5bml4LmM6IExpa2V3aXNlLgoJaTM4NmxpbnV4LmM6IExpa2V3aXNlLgoJaTM4Nmx5bnguYzogTGlrZXdpc2UuCglpMzg2bWFjaDMuYzogTGlrZXdpc2UuCgltNjhrNGtuZXRic2QuYzogTGlrZXdpc2UuCgltNjhrbGludXguYzogTGlrZXdpc2UuCgltNjhrbHlueC5jOiBMaWtld2lzZS4KCW02OGtuZXRic2QuYzogTGlrZXdpc2UuCgltODhrbWFjaDMuYzogTGlrZXdpc2UuCgltaXBzYnNkLmM6IExpa2V3aXNlLgoJbmV3c29zMy5jOiBMaWtld2lzZS4KCXNwYXJjbGludXguYzogTGlrZXdpc2UuCglzcGFyY2x5bnguYzogTGlrZXdpc2UuCglzcGFyY25ldGJzZC5jOiBMaWtld2lzZS4KCXZheGJzZC5jOiBMaWtld2lzZS4gRml4IGNvbW1lbnQgZm9ybWF0dGluZy4KCjIwMDMtMDMtMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogUmV2ZXJ0ZWQgMjAwMy0wMy0wMidzIHBhdGNoLgoKCSogZWxmeHgtdGFyZ2V0LmggKGJmZF9lbGZOTl9jYW5vbmljYWxpemVfcmVsb2MpOiBNYWtlIGl0CglvdmVycmlkYWJsZS4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X2Nhbm9uaWNhbGl6ZV9yZWxvYywKCW1pcHNfZWxmNjRfZ2V0X2R5bmFtaWNfcmVsb2NfdXBwZXJfYm91bmQsCgltaXBzX2VsZjY0X2Nhbm9uaWNhbGl6ZV9keW5hbWljX3JlbG9jKTogTmV3LCBhZGFwdGVkIGZyb20gZWxmLmMuCgkoYmZkX2VsZjY0X2dldF9jYW5vbmljYWxpemVfcmVsb2MsCgliZmRfZWxmNjRfZ2V0X2R5bmFtaWNfcmVsb2NfdXBwZXJfYm91bmQsCgliZmRfZWxmNjRfY2Fub25pY2FsaXplX2R5bmFtaWNfcmVsb2MpOiBEZWZpbmUuCgkobWlwc19lbGY2NF9zbHVycF9yZWxvY190YWJsZSk6IFN1cHBvcnQgZHluYW1pYy4KCShtaXBzX2VsZjY0X3NsdXJwX29uZV9yZWxvY190YWJsZSk6IEFkanVzdC4KCjIwMDMtMDMtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB4c3ltLmMgKGJmZF9zeW1fZmV0Y2hfdHlwZV9pbmZvcm1hdGlvbl90YWJsZV9lbnRyeSk6IENoYW5nZQoJJ2luZGV4JyB0byAnb2Zmc2V0JyBpbiB0ZXN0IGZvciB6ZXJvIHZhbHVlLgoKMjAwMy0wMy0xMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBEbyBub3QgY3JlYXRlCglkeW5hbWljIHJlbG9jYXRpb25zIHBvaW50aW5nIHRvIGxvY2FsIG9yIHNlY3Rpb24gc3ltYm9scywgdXNlIHRoZQoJTlVMTCBzeW1ib2wgaW5zdGVhZC4gIERvY3VtZW50IHRoZSBjaG9pY2UgdG8gbm90IGVtaXQgYW4KCWFkZGl0aW9uYWwgUl9NSVBTXzY0IHJlbG9jYXRpb24uCgoyMDAzLTAzLTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFN1YnRyYWN0IHRscyBzZWcgdm1hIGZyb20KCXplcm8gaW5kZXggZHluYW1pYyB0bHMgcmVsb2NzIGdlbmVyYXRlZCBmb3IgdGhlIEdPVC4gIFRpZHkgY29kZS4KCVNldCAicmVsb2NhdGlvbiIgdG8gMSBvbiBEVFBNT0QzMiByZWxvY3MuICBPcHRpbWl6ZSBIQSBhZGp1c3RtZW50LgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDMtMDMtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgbG9vayBmb3IgYSBub3AgYWZ0ZXIKCWEgdGxzX2dldF9hZGRyIGNhbGwuCgoJKiBlbGYzMi1wcGMuYyAoRUxJTUlOQVRFX0NPUFlfUkVMT0NTKTogRGVmaW5lIGFzIG9uZS4KCShwcGNfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEZvciB3ZWFrIHN5bWJvbHMsIGNvcHkKCUVMRl9MSU5LX05PTl9HT1RfUkVGIGZyb20gd2Vha2RlZi4KCSogZWxmNjQtcHBjLmMgKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZSBhcyBvbmUuCgkocHBjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEZvciB3ZWFrIHN5bWJvbHMsIGNvcHkKCUVMRl9MSU5LX05PTl9HT1RfUkVGIGZyb20gd2Vha2RlZi4KCSogZWxmMzItaTM4Ni5jIChFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBEZWZpbmUgYXMgb25lLiAgVXNlIHRocm91Z2hvdXQuCgkoZWxmX2kzODZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRm9yIHdlYWsgc3ltYm9scywgY29weQoJRUxGX0xJTktfTk9OX0dPVF9SRUYgZnJvbSB3ZWFrZGVmLgoKMjAwMy0wMy0wNiAgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4KCUFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfYmZkX2Rpc2NhcmRfaW5mbyk6IERvbid0IHByb2Nlc3MgZWggZnJhbWVzIGlmCglvdXRwdXQgaXMgcmVsb2NhdGVhYmxlLgoKMjAwMy0wMy0wNiAgU3RldmVuIEtvbm9wYSA8c2tvbm9wYUBrZ28uY3NjLmNvbT4KCgkqIHNvbS5jIChzb21fZml4dXBfZm9ybWF0cyk6IENvcnJlY3QgZm9ybWF0cyBmb3IgUl9BVVhfVU5XSU5EIGFuZAoJUl9DT01NRU5ULgoKMjAwMy0wMy0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2NyZWF0ZV9saW5rZXJfc2VjdGlvbik6IERvbid0IGNhcGl0YWxpemUKCWVycm9yIG1lc3NhZ2VzLgoJKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZSB0byB6ZXJvLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGRlcmVmIGh0YWItPnRsc19zZWMgd2hlbiBjYWxjdWxhdGluZwoJVExTTEQgcmVsb2NzLiAgUmVwb3J0IHJlbG9jIHR5cGVzIG9uIGEgbnVtYmVyIG9mIGVycm9ycy4gIE9wdGltaXplCglMT0NBTDI0UEMgY2hlY2sgZm9yIG5vbi1sb2NhbCBzeW1zLiAgRG9uJ3QgY2FwaXRhbGl6ZSBlcnJvciBtZXNzYWdlcy4KCSogZWxmNjQtcHBjLmMgKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZSB0byB6ZXJvLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgZGVyZWYgaHRhYi0+dGxzX3NlYyB3aGVuCgljYWxjdWxhdGluZyBUTFNMRCByZWxvY3MuICBSZXBvcnQgcmVsb2MgdHlwZXMgb24gYSBudW1iZXIgb2YgZXJyb3JzLgoJRG9uJ3QgY2FwaXRhbGl6ZSBlcnJvciBtZXNzYWdlcy4KCjIwMDMtMDMtMDMgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmeHgtaWE2NC5jIChVU0VfQlJMKTogUmVtb3ZlZC4KCShvb3JfaXApOiBSZW1vdmVkLgoKMjAwMy0wMy0wMyAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfaG93dG9fdGFiKTogTWFrZSBSX1NIX0lORDEyVyBpbnRvIGFuIG9yZGluYXJ5CglyZWxvY2F0aW9uIChubyBzcGVjaWFsIGZ1bmN0aW9uKSwgYW5kIG1ha2UgaXQgbm9uLXBhcnRpYWxfaW5wbGFjZS4KCShzaF9lbGZfcmVsYXhfc2VjdGlvbik6IFdoZW4gY3JlYXRpbmcgYSBic3IsIHVzZSBhIGNvbnNpc3RlbnQgdmFsdWUKCW5vIG1hdHRlciBpZiB0aGUgc3ltYm9sIGlzIGV4dGVybiBvciBub3Q7ICBzZXQgYWRkZW5kIHRvIC00LgoJRG9uJ3Qgc3dhcCBsb2FkIC8gbm9uLWxvYWQgaW5zdHJ1Y3Rpb25zIGZvciBTSDQuCgkoc2hfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IEluIFJfU0hfSU5EMTJXIGNhc2UsIGNoZWNrIHRoZSBvZmZzZXQKCXJhdGhlciB0aGFuIGlmIHRoZSBzeW1ib2wgaXMgZXh0ZXJuYWwgdG8gZGV0ZXJtaW5lIGlmIGFkanVzdGluZyB0aGUKCW9mZnNldCBtYWtlcyBzZW5zZS4gIEFkanVzdCB0aGUgYWRkZW5kIHRvbyBpZiBhcHByb3ByaWF0ZS4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEluIFJfU0hfSU5EMTJXLCBkb24ndCBmaWRkbGUgd2l0aCB0aGUKCXJlbG9jYXRpb24uCgoyMDAzLTAzLTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZGEucG86IEluc3RhbGxlZCBsYXRlc3QgdHJhbnNsYXRpb24uCgoyMDAzLTAzLTAyICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmMzItbWlwcy5jIChlbGZfbWlwc19ob3d0b190YWJsZV9yZWwpOiBDaGFuZ2UgZGVmaW5pdGlvbiBvZgoJUl9NSVBTX1BDMTYgdG8gcmlnaHRzaGlmdCAyLgoJKGVsZl9yZWxvY19tYXAgbWlwc19yZWxvY19tYXApOiBNYXAgdG8gcmlnaHRzaGlmdGVkIEJGRCByZWxvYy4KCShiZmRfZWxmMzJfYmZkX3JlbG9jX3R5cGVfbG9va3VwKTogU3VwcG9ydAoJQkZEX1JFTE9DX01JUFNFTUJfMTZfUENSRUxfUzIuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9ob3d0b190YWJsZV9yZWwpOiBDaGFuZ2UgZGVmaW5pdGlvbiBvZgoJUl9NSVBTX1BDMTYgdG8gcmlnaHRzaGlmdCAyLgoJKG1pcHNfZWxmNjRfaG93dG9fdGFibGVfcmVsYSk6IExpa2V3aXNlLgoJKG1pcHNfcmVsb2NfbWFwKTogTWFwIHRvIHJpZ2h0c2hpZnRlZCBCRkQgcmVsb2MuCgkqIGVsZm4zMi1taXBzLmM6IFRoZSBzYW1lIGFzIGluIGVsZjY0LW1pcHMuYy4KCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9nb3RfZm9yX2liZmQpOiBUeXBvIGluIGNvbW1lbnQuCgkobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBIYW5kbGUgcmlnaHRzaGlmdGVkIGFkZGVuZHMgZm9yCglSX01JUFNfUEMxNi4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX01JUFNFTUJfMTZfUENSRUxfUzIpOiBOZXcgQkZEIHJlbG9jYXRpb24gZm9yCglNSVBTIEVtYmVkZGVkIFBJQy4gUmVtb3ZlIHN1cGVyZmx1b3VzIGVtcHR5IENPTU1FTlQuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTAyLTI4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBDb3JyZWN0IGJvdW5kcwoJZm9yIGx0b2ZmMjJ4IHJlbGF4YXRpb24uCgoyMDAzLTAzLTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYmZkLWluLmggKF9iZmQpOiBEb24ndCBkZWZpbmUuCgkqIGJmZC5jOiBSZW5hbWUgb2NjdXJyZW5jZXMgb2YgInN0cnVjdCBfYmZkIiB0byAic3RydWN0IGJmZCIuCgkqIHN5bXMuYzogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDItMjcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKHN0cnVjdCBlbGZOTl9pYTY0X2R5bl9zeW1faW5mbyk6IEFkZCB3YW50X2dvdHg7CgkoZWxmTk5faWE2NF9jaGVja19yZWxvY3MpOiBTZXQgaXQuCgkoYWxsb2NhdGVfZ2xvYmFsX2RhdGFfZ290KTogQ2hlY2sgaXQuCgkoYWxsb2NhdGVfbG9jYWxfZ290KTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfZHlucmVsX2VudHJpZXMpOiBMaWtld2lzZS4KCShlbGZOTl9pYTY0X3JlbGF4X2xkeG1vdik6IE5ldy4KCShlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBIYW5kbGUgTFRPRkYyMlgsIExEWE1PVi4KCShlbGZOTl9pYTY0X2Nob29zZV9ncCk6IFNwbGl0IG91dCBmcm9tIC4uLgoJKGVsZk5OX2lhNjRfZmluYWxfbGluayk6IC4uLiBoZXJlLgoKMjAwMy0wMi0yNyAgQW5kcmV3IENhZ25leSAgPGNhZ25leUByZWRoYXQuY29tPgoKCSogYmZkLmMgKHN0cnVjdCBiZmQpOiBSZW5hbWUgInN0cnVjdCBfYmZkIi4KCSogYmZkLWluLmg6IFVwZGF0ZSBjb3B5cmlnaHQuCgkoc3RydWN0IGJmZCk6IFJlbmFtZSAic3RydWN0IF9iZmQiLgoJKF9iZmQpOiBEZWZpbmUgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDItMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZmluYWxfbGluayk6IEFwcG9ydGlvbiByZWxvYyBjb3VudHMgdG8gcmVsX2hkcgoJYW5kIHJlbF9oZHIyIHdoZW4gaW5pdGlhbGx5IGNvdW50aW5nIGlucHV0IHJlbG9jcyByYXRoZXIgdGhhbiBhZnRlcgoJY3JlYXRpbmcgb3V0cHV0IHJlbG9jIHNlY3Rpb25zLgoJKGVsZl9saW5rX3JlYWRfcmVsb2NzX2Zyb21fc2VjdGlvbik6IERvbid0IGFib3J0IHdpdGggd3JvbmcgcmVsb2MKCXNpemVzLgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDItMjQgIEtyaXMgV2Fya2VudGluICA8a2V3YXJrZW5AcW54LmNvbT4KCgkqIGVsZi5jIChlbGZjb3JlX3JlYWRfbm90ZXMpOiBBZGQgY2hlY2sgZm9yIFFOWCBzdHlsZSBjb3JlIGZpbGUuCgkoZWxmY29yZV9ncm9nX250b19ub3RlKTogTmV3IGZ1bmN0aW9uLgoJKGVsZmNvcmVfZ3JvZ19udG9fZ3JlZ3MpOiBOZXcgZnVuY3Rpb24uCgkoZWxmY29yZV9ncm9nX250b19zdGF0dXMpOiBOZXcgZnVuY3Rpb24uCgoyMDAzLTAyLTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24pOiBDaGVjayBleGlzdGluZyAuZ290CglzZWN0aW9uIGZsYWdzIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgd2UndmUgYWxyZWFkeSBiZWVuIGNhbGxlZC4KCURvbid0IHVzZSByZWdpc3RlciBrZXl3b3JkLgoJKF9iZmRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgdXNlIHJlZ2lzdGVyIGtleXdvcmQuCgkoX2JmZF9lbGZfY3JlYXRlX2xpbmtlcl9zZWN0aW9uKTogRm9ybWF0dGluZy4KCjIwMDMtMDItMjAgIGptYyAgPGptY0BwcmlvcmlzLm1pbmkucHcuZWR1LnBsPgoKCSogY29mZi1oODMwMC5jOiBGaXggdHlwbzogaW50aWFsIC0+IGluaXRpYWwuCgkqIGNvZmYtcHBjLmM6IExpa2V3aXNlLgoKMjAwMy0wMi0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jOiBGb3JtYXR0aW5nLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExEIGFuZCBHRCByZWxvY3MgYWdhaW5zdCB0aGUgc2FtZSBzeW0gbmVlZAoJc2VwYXJhdGUgR09UIGVudHJpZXMuCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ29ycmVjdCBHT1QgaGFuZGxpbmcgZm9yIG11bHRpcGxlIEdPVAoJZW50cmllcyBwZXIgc3ltYm9sLgoKMjAwMy0wMi0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9nY19zd2VlcF9ob29rKTogU2ltcGxpZnkgZHluYW1pYyByZWxvYwoJcmVtb3ZhbC4gIExvY2FsaXplIHZhcnMuICBSZW1vdmUgdW5uZWNlc3NhcnkgZHlub2JqIHRlc3QuCgkqIGVsZjMyLWkzODYgKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBQYXNzIFNIQVJFRCBpbnN0ZWFkCglvZiBJTkZPLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEFkanVzdCBXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MIHVzZXMsCglhbmQgb3B0aW1pemUuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZl9pMzg2X2djX3N3ZWVwX2hvb2spOiBTaW1wbGlmeSBkeW4gcmVsb2MgcmVtb3ZhbC4gIExvY2FsaXplIHZhcnMuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4gIFJlbW92ZQoJbG9jYWxfZHlucmVsIGZvciBzZWN0aW9uIHRvby4gIERvbid0IHRvdWNoIEhJUExUMjIsIExPUExUMTAsIFBDUExUMzIKCW9yIFBDUExUMTAgcmVsb2NzLiAgRG9uJ3Qgc3VidHJhY3QgdHdpY2Ugb24gUExUMzIgcmVsb2NzLgoJRm9ybWF0dGluZy4KCgkqIGVsZjY0LXBwYy5jIChFTElNSU5BVEVfQ09QWV9SRUxPQ1MpOiBEZWZpbmUuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFVzZSBpdC4gIENvcnJlY3QgY29tbWVudC4gIE1vdmUgU0VDX0FMTE9DCgl0ZXN0LgoJKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBVc2UgRUxJTUlOQVRFX0NPUFlfUkVMT0NTLgoJKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBQYXNzIFNIQVJFRCBpbnN0ZWFkIG9mIElORk8uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogQWRqdXN0IFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wgdXNlcywKCWFuZCBvcHRpbWl6ZS4gIFVzZSBFTElNSU5BVEVfQ09QWV9SRUxPQ1MuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCgkqIGVsZjMyLXBwYy5jIChzdHJ1Y3QgcHBjX2VsZl9keW5fcmVsb2NzKTogQWRkIHBjX2NvdW50IGZpZWxkLgoJKHBwY19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBDb3B5IHBjX2NvdW50IGZpZWxkLgoJKEVMSU1JTkFURV9DT1BZX1JFTE9DUyk6IERlZmluZS4KCShwcGNfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IENvbnZlcnQgY29weSByZWxvY3MgdG8gZHluYW1pYy4KCShXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogUGFzcyBTSEFSRUQgaW5zdGVhZCBvZiBJTkZPLgoJKE1VU1RfQkVfRFlOX1JFTE9DKTogRGVmaW5lLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEFkanVzdCBXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MIHVzZXMsCglhbmQgb3B0aW1pemUuICBUcmltIGR5bl9yZWxvY3MuCgkocHBjX2VsZl9jaGVja19yZWxvY3MpOiBEb24ndCBnZW5lcmF0ZSBkeW5fcmVsb2NzIHdoZW4gd2Uga25vdyB0aGV5J2xsCglub3QgYmUgdXNlZC4gIERvIGdlbmVyYXRlIGR5bl9yZWxvY3MgZm9yIGNvcHkgcmVsb2MgYXZvaWRhbmNlLiAgS2VlcAoJdHJhY2sgb2YgcGNfcmVsIGR5biByZWxvY3MuCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVtb3ZlICJ3aWxsX2JlY29tZV9sb2NhbCIuICBBZGp1c3QKCVdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wgdXNlLiAgVHJpbSBkeW4gcmVsb2NzIGFzIHBlcgoJYWxsb2NhdGVfZHlucmVsb2NzLiAgRG9uJ3QgcmVjYWxjdWxhdGUgInNlYyIuCgoyMDAzLTAyLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJlbW92ZSB1bm5lY2Vzc2FyeSB0ZXN0LgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3Rsc19vcHRpbWl6ZSk6IERlY3JlbWVudCB0bHNsZF9nb3QucmVmY291bnQKCW9uIGludmFsaWQgTEQgcmVsb2NzLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEludmFsaWQgTEQgcmVsb2NzIGRvbid0IHVzZSB0bHNsZF9nb3QgZW50cnkuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBVbmlmeSBuZXcgaGFuZGxpbmcgb2YgTEQgcmVsb2NzIGFuZAoJdGxzbGRfZ290IGVudHJ5LiAgVXNlIElTX1BQQzY0X1RMU19SRUxPQy4KCgkqIGVsZjMyLXBwYy5oOiBOZXcgZmlsZS4KCSogZWxmMzItcHBjLmM6IEluY2x1ZGUgZWxmMzItcHBjLmguCgkoTk9QLCBDUk9SXzE1MTUxNSwgQ1JPUl8zMTMxMzEsIFRQX09GRlNFVCwgRFRQX09GRlNFVCk6IERlZmluZS4KCShzdHJ1Y3QgcHBjX2VsZl9saW5rX2hhc2hfZW50cnkpOiBSZW5hbWUgInJvb3QiIHRvICJlbGYiLiAgQWRqdXN0IHVzZXMuCglBZGQgInRsc19tYXNrIiBmaWVsZC4KCShUTFNfR0QsIFRMU19MRCwgVExTX1RQUkVMLCBUTFNfRFRQUkVMLCBUTFNfVExTLCBUTFNfVFBSRUxHRCk6IERlZmluZS4KCShzdHJ1Y3QgcHBjX2VsZl9saW5rX2hhc2hfdGFibGUpOiBSZW5hbWUgInJvb3QiIHRvICJlbGYiLiAgQWRqdXN0IHVzZXMuCglBZGQgZ290LCByZWxnb3QsIHBsdCwgcmVscGx0LCBkeW5ic3MsIHJlbGJzcywgZHluc2JzcywgcmVsc2JzcywKCXNkYXRhLCBzZGF0YTIsIHRsc19zZWMsIHRsc19nZXRfYWRkciwgdGxzbGRfZ290IGZpZWxkcy4KCU1ha2UgdXNlIG9mIGh0YWIgc2hvcnRjdXRzIHRocm91Z2hvdXQgZmlsZS4KCShwcGNfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogSW5pdCB0bHNfbWFzayBmaWVsZC4KCShwcGNfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0IG5ldyBmaWVsZHMuCgkocHBjX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IENvcHkgdGxzX21hc2suCgkocHBjX2VsZl9ob3d0b19yYXcpOiBBZGQgdGxzIHJlbG9jcy4KCShwcGNfZWxmX3JlbG9jX3R5cGVfbG9va3VwKTogSGFuZGxlIHRoZW0uCgkocHBjX2VsZl91bmhhbmRsZWRfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2VsZl9jcmVhdGVfZ290KTogU3Rhc2ggZ290IHNlY3Rpb24gcG9pbnRlciBpbiBoYXNoIHRhYmxlLAoJcmV0dXJuIHN0YXR1cy4gIE1ha2UgLnJlbGEuZ290IHRvby4KCShwcGNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogU3Rhc2ggc2VjdGlvbiBwb2ludGVycyBpbiBodGFiLgoJKHBwY19lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogT25seSBzZXQgdXAgY29weSByZWxvY3Mgd2hlbgoJTk9OX0dPVF9SRUYgc2V0LiAgRG9uJ3QgYWxsb2NhdGUgc3BhY2UgaW4gLnBsdCBoZXJlLi4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiAuLmRvIHNvIGhlcmUgaW5zdGVhZCwgcHJvcGVybHkgcmVmLWNvdW50aW5nIGFuZAoJbm90IGFsbG9jYXRpbmcgcGx0IGVudHJpZXMgdW5uZWNlc3NhcmlseS4gIEFsbG9jYXRlIGdvdCBlbnRyaWVzIGhlcmUuCgkoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IERlZmluZS4KCShwcGNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFsbG9jYXRlIGxvY2FsIGdvdCBlbnRyaWVzLiAgUGFzcwoJImluZm8iIGR1cmluZyBhbGxvY2F0ZV9keW5yZWxvY3MgaGFzaCB0cmF2ZXJzYWwuICBVc2UgaHRhYiBzZWN0aW9uCglzaG9ydGN1dHMgcmF0aGVyIHRoYW4gc2VhcmNoaW5nIGZvciBuYW1lZCBzZWN0aW9ucy4gIEdldCByaWQgb2YKCSJwbHQiIGFuZCAic3RyaXAiIGJvb2xlYW5zLgoJKHVwZGF0ZV9sb2NhbF9zeW1faW5mbywgYmFkX3NoYXJlZF9yZWxvYyk6IE5ldyBmdW5jdGlvbnMuCgkocHBjX2VsZl9jaGVja19yZWxvY3MpOiBIYW5kbGUgVExTIHJlbG9jcy4gIE1vdmUgLnJlbGEuZ290IGNyZWF0aW9uIHRvCglwcGNfZWxmX2NyZWF0ZV9nb3QuICBEb24ndCBtYXJrIGdvdCBvciBwbHQgcmVsb2Mgc3ltcyBkeW5hbWljLCBkbyBzbwoJaW4gYWxsb2NhdGVfZHlucmVsb2MuICBVc2UgdXBkYXRlX2xvY2FsX3N5bV9pbmZvIGFuZCBiYWRfc2hhcmVkX3JlbG9jLgoJRGlzYWxsb3cgUl9QUENfRU1CX1JFTFNEQSwgUl9QUENfRU1CX05BRERSMzIsIFJfUFBDX0VNQl9OQUREUjE2LAoJUl9QUENfRU1CX05BRERSMTZfTE8sIFJfUFBDX0VNQl9OQUREUjE2X0hJIGFuZCBSX1BQQ19FTUJfTkFERFIxNl9IQQoJaW4gc2hhcmVkIGxpYnMuICBSX1BQQ19QTFRSRUwzMiBpcyBhIHBsdCByZWxvYyB0b28uICBSZWZjb3VudCBhbGwKCXJlbG9jcyB0aGF0IG1pZ2h0IHVzZSBhIHBsdCBlbnRyeS4gIFNldCBOT05fR09UX1JFRiB0b28uCglFbnVtZXJhdGUgYWxsIGRvLW5vdGhpbmcgcmVsb2NzLgoJKHBwY19lbGZfZ2Nfc3dlZXBfaG9vayk6IFNpbXBsaWZ5IHJlbW92YWwgb2YgZHlucmVsb2NzLiAgSGFuZGxlCgl0bHMgcmVsb2NzIGFuZCBhbGwgcGx0IHJlbG9jcy4KCShwcGNfZWxmX3Rsc19zZXR1cCwgcHBjX2VsZl90bHNfb3B0aW1pemUpOiBOZXcgZnVuY3Rpb25zLgoJKHBwY19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgYnVpbGQgZ290IGVudHJpZXMgaGVyZS4KCShwcGNfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogUmV3cml0ZSB0YWcgY29kZSB1c2luZyBodGFiCglzaG9ydGN1dHMuCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogVGlkeS4gIEhhbmRsZSBUTFMgcmVsb2NzLiAgVXNlCgliZmRfZWxmX2xvY2FsX3N5bV9uYW1lLiAgU2ltcGxpZnkgdW5yZXNvbHZlZCByZWxvYyBjb2RlLiAgQnVpbGQgZ290CgllbnRyaWVzIGFuZCBnb3QgcmVsb2NzIGhlcmUuICBXYXJuIG9uIG5vbi16ZXJvIGdvdCByZWxvYyBhZGRlbmQuCglTcGxpdCBvdXQgYnJhbmNoIHRha2VuL25vdCB0YWtlbiByZWxvYyBjb2RlIGludG8gYSBzZXBhcmF0ZSBzd2l0Y2gKCWFuZCBjb3JyZWN0IG9mZnNldCBjYWxjdWxhdGlvbi4gQWxsb3cgQlJUQUtFTi9CUk5UQUtFTiBkeW5hbWljIHJlbG9jcy4KCVNwbGl0IG91dCBIQSByZWxvYyBhZGp1c3RtZW50cyB0byBzZXBhcmF0ZSBzd2l0Y2ggc3RhdGVtZW50LiAgRG9uJ3QKCXdhcm4gb24gcmVsb2Mgb3ZlcmZsb3cgaWYgd2UndmUgYWxyZWFkeSB3YXJuZWQgYWJvdXQgdW5kZWZpbmVkLgoJRG9uJ3QgcmVidWlsZCBzeW0gbmFtZSB3aGVuIHJlcG9ydGluZyBlcnJvcnMuICBSZXBvcnQgYWxsIHBvc3NpYmxlCgllcnJvcnMgZnJvbSBfYmZkX2ZpbmFsX2xpbmtfcmVsb2NhdGUuCgkoYmZkX2VsZjMyX2JmZF9maW5hbF9saW5rKTogRG9uJ3QgZGVmaW5lLgoKMjAwMy0wMi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGluaXQgInIiLiAgRG9uJ3QKCXJlYnVpbGQgc3ltIG5hbWUgd2hlbiByZXBvcnRpbmcgZXJyb3JzLgoKMjAwMy0wMi0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IE9ubHkgY2hlY2sKCWFsbG93X3NobGliX3VuZGVmaW5lZCBmb3Igc2hhcmVkIGxpYnJhcmllcy4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVtb3ZlIGJvZ3VzIGNoZWNrCglvZiBhbGxvd19zaGxpYl91bmRlZmluZWQuCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi12YXguYyAoZWxmX3ZheF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wMi0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChTRUdNRU5UX0FGVEVSX1NFR01FTlQpOiBBZGQgdGhpcmQgcGFyYW1ldGVyIC0gdGhlCglhZGRyZXNzIGZpZWxkIHRvIHVzZSBpbiB0aGUgY29tcGFyaXNvbi4KCShTRUdNRU5UX09WRVJMQVBTKTogQ2hlY2sgdGhhdCBMTUFzIG92ZXJsYXAgYXMgd2VsbC4KCjIwMDMtMDItMTQgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IENvbXBhcmUgYWx0ZXJuYXRlIG1hY2hpbmUgY29kZXMgZm9yIEVMRgoJYmFja2VuZHMgd2hlbiBjaGVja2luZyBpZiB0aGUgZ2VuZXJpYyBFTEYgdGFyZ2V0IHNob3VsZCBiZSB1c2VkLgoKCSogc3ltcy5jIChfYmZkX3N0YWJfc2VjdGlvbl9maW5kX25lYXJlc3RfbGluZSk6IEZvciBsaW5lIG51bWJlciBzdGFicwoJb3V0c2lkZSBvZiBmdW5jdGlvbnMsIHRyZWF0IHZhbHVlcyBhcyBhYnNvbHV0ZSBhZGRyZXNzZXMuCgoJKiBiZmQuYzogQ2hhbmdlIGVtYmVkZGVkIGRvY3VtZW50YXRpb24gdG8gdXNlIGNvbnNpc3RlbnQgaW5kZW50YXRpb24KCWFuZCB0byBzcGxpdCB1cCBsb25nIGxpbmVzLiAgQ2hhbmdlIGluZm9ybWFsIHN0eWxlIG9mIGRlc2NyaXB0aW9uCglmb3IgZnVuY3Rpb25zIGxhY2tpbmcgcmVhbCBkb2N1bWVudGF0aW9uLgoJKiBjb2ZmY29kZS5oOiBCcmVhayB1cCBsb25nIGxpbmVzIGluIGVtYmVkZGVkIGRvY3VtZW50YXRpb24uCgkqIGZvcm1hdC5jOiBMaWtld2lzZS4KCSogdGFyZ2V0cy5jOiBMaWtld2lzZS4KCSogbGliY29mZi5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAzLTAyLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCB0bHNfZ2V0X2FkZHIuCgkocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTWVyZ2UgdGxzX21hc2sgdG9vLgoJKHBwYzY0X2VsZl9nY19zd2VlcF9ob29rKTogU2ltcGxpZnkgcmVtb3ZhbCBvZiBkeW5fcmVsb2NzLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IERvbid0IHRyZWF0IHVuZGVmaW5lZCBhbmQgdW5kZWZ3ZWFrIHNwZWNpYWxseS4KCShwcGNfc2l6ZV9vbmVfc3R1Yik6IEZpeCB3YXJuaW5nLCBhbmQgdGlnaHRlbiBwbHQgZW50cnkgY2hlY2suCgkoZ3JvdXBfc2VjdGlvbnMpOiBEb24ndCBzaGFyZSBhIHN0dWIgc2VjdGlvbiBpZiBzdHVicyBhcmUgZm9yIGEgbGFyZ2UKCXNlY3Rpb24uICBBZGp1c3QgY29tbWVudC4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IFJvdWdobHkgZG91YmxlIHRoZSBzaXplIGxlZnQgZm9yIHN0dWJzIGlmCgkhc3R1YnNfYWx3YXlzX2JlZm9yZV9icmFuY2guCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBJbml0aWFsaXplIHRsc2xkIEdPVCBlbnRyeSBvbmNlLiAgRG9uJ3QKCXRyZWF0IHVuZGVmaW5lZCBhbmQgdW5kZWZ3ZWFrIHNwZWNpYWxseSB3aGVuIHByb2Nlc3NpbmcgZHluIHJlbG9jcy4KCjIwMDMtMDItMTMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBIYW5kbGUgLnN5bXZlciB4LCB4QEZPTy4KCjIwMDMtMDItMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfdGh1bWJfdG9fYXJtX3N0dWIpOiBJbmNsdWRlIHNlY3Rpb24gVk1BcwoJaW4gY29tcHV0YXRpb24gb2Ygb2Zmc2V0IHRvIGluc2VydCBpbnRvIEJMIGluc3RydWN0aW9uLgoKMjAwMy0wMi0xMSAgVXdlIFN0aWViZXIgIDx1d2VAd3d3cy5kZT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBzdXBwb3J0IGZvciBrYU9TIGFzIGNyb3NzIGJ1aWxkIHRhcmdldCBzeXN0ZW0uCgoyMDAzLTAyLTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBNYXRjaCB2ZXJzaW9uZWQKCS5fX3Rsc19nZXRfYWRkciB0b28uCgkocHBjNjRfZWxmX3Rsc19zZXR1cCk6IEVuc3VyZSBjYWNoZWQgdGxzX2dldF9hZGRyIGlzIG5vdCBpbmRpcmVjdC4KCjIwMDMtMDItMTAgIEtheiBrb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAoZWxmX3NoX2R5bl9yZWxvY3MpOiBBZGQgdGxzX3Rwb2ZmMzIgZmllbGQuCgkoZWxmX3NoX2xpbmtfaGFzaF9lbnRyeSk6IFJlbW92ZSB0bHNfdHBvZmYzMiBmaWVsZC4KCShzaF9lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBSZW1vdmUgdGhlIGluaXRpYWxpemF0aW9uIG9mCgl0bHNfdHBvZmYzMiBmaWVsZC4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBLZWVwIGR5bl9yZWxvY3MgaWYgaXQgaW5jbHVkZXMgdGhlIGVudHJ5Cglmb3Igd2hpY2ggdGxzX3Rwb2ZmMzIgZmxhZyBpcyBzZXQuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBDb3ZlcnQgdG8gTEUgb25seSBpZiB0aGUgZHluX3JlbG9jcwoJb2YgdGhlIHN5bWJvbCBpbmNsdWRlcyB0aGUgZW50cnkgbWF0Y2hlZCB3aXRoIHRoZSBpbnB1dF9zZWN0aW9uCglhbmQgaGF2aW5nIHRsc190cG9mZjMyIGZsYWcgb24uICBXaGVuIGxpbmtpbmcgc3RhdGljYWxseSwgc2V0CglzeW1ib2wgaW5kZXggb2YgUl9TSF9UTFNfVFBPRkYzMiByZWxvY2F0aW9uIHRvIHplcm8gaWYgdGhlIHN5bWJvbAoJaXMgZGVmaW5lZCBpbiB0aGlzIGV4ZWN1dGFibGUuCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IFNldCB0bHNfdHBvZmYzMiBmbGFnIGFwcHJvcHJpYXRlbHkuCgoyMDAzLTAyLTEwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogU2V0IHJlbG9jcyB0byBUUlVFCglldmVuIGlmIHRoZXJlIGlzIGp1c3Qgbm9uLWVtcHR5IC5yZWxhLnBsdC4KCjIwMDMtMDItMTAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9hcm1fZXA5MzEyKTogRGVmaW5lLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS1hcm0uYyAocHJvY2Vzc29yc1tdKTogQWRkIGVwOTMxMi4KCShiZmRfYXJtX2FyY2gpOiBBZGQgZXA5MzEyLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfZGF0YSk6IFVwZGF0ZSBlcnJvcgoJbWVzc2FnZXMgYW5kIGFkZCB0ZXN0IGZvciBNYXZlcmljayBmbG9hdGluZyBwb2ludCBzdXBwb3J0LgoJKGVsZjMyX2FybV9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogSGFuZGxlCglFRl9BUk1fTUFWRVJJQ0tfRkxPQVQgZmxhZy4KCShlbGYzMl9hcm1fb2JqZWN0X3ApOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfb2JqZWN0X3ApOiBEZWZpbmUuCgoyMDAzLTAyLTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmM6IFJlbmFtZSBhc3NvcnRlZCBvY2N1cnJlbmNlcyBvZiB0bHNfdHlwZSBhbmQgc2ltaWxhcgoJdmFyaWFibGVzLCBzdHJ1Y3R1cmUgZmllbGRzIG9yIGZ1bmN0aW9uIHBhcmFtcyB0byB0bHNfbWFzayBvcgoJc2ltaWxhciB0byBiZXR0ZXIgcmVmbGVjdCB1c2FnZS4KCShzdHJ1Y3QgZ290X2VudHJ5KTogQ29tbWVudC4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF9lbnRyeSk6IEV4cGFuZCBjb21tZW50LCBhbmQgcmVudW1iZXIgVExTXyouCgkoZ2V0X3Rsc19tYXNrKTogUmVuYW1lIGZyb20gZ2V0X3Rsc190eXBlLgoKMjAwMy0wMi0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChUTFNfR0RfTEQpOiBEb24ndCBkZWZpbmUuLgoJKFRMU19HRCk6IC4uZGVmaW5lIHRoaXMgaW5zdGVhZCBhbmQgdXBkYXRlIGFsbCB1c2VzLgoJKFRMU19UUFJFTEdEKTogRGVmaW5lLgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogVHdlYWsgaW5pdGlhbGl6YXRpb24gb2YKCWluaXRfcmVmY291bnQgYW5kIGluaXRfb2Zmc2V0LgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBBZGQgb25lIGV4dHJhIGVsZW1lbnQgdG8gdF9zeW1uZHggYXJyYXkuCglNYXJrIHNlY29uZCBzbG90IG9mIEdEIG9yIExEIHRvYyBlbnRyaWVzLgoJKGdldF90bHNfdHlwZSk6IFJldHVybiBhbiBpbnQuICBEaXN0aW5ndWlzaCB0b2MgR0QgYW5kIExEIGVudHJpZXMKCWZyb20gb3RoZXIgdGxzIHR5cGVzLgoJKHBwYzY0X2VsZl90bHNfc2V0dXApOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tLi4KCShwcGM2NF9lbGZfdGxzX29wdGltaXplKTogLi5oZXJlLiAgRG9uJ3Qgb3B0aW1pemUgd2hlbiBzeW1ib2xzIGFyZQoJZGVmaW5lZCBpbiBhIGR5bmFtaWMgb2JqZWN0LiAgRml4IExEIG9wdGltaXphdGlvbi4gIERvbid0IHNldCBUTFNfVFBSRUwKCW9uIEdELT5JRSBvcHRpbWl6YXRpb24sIHVzZSBUTFNfVFBSRUxHRCBpbnN0ZWFkLiAgVXNlIGdldF90bHNfdHlwZQoJcmV0dXJuIHZhbHVlIHRvIHByb3Blcmx5IGRlY2lkZSB3aGV0aGVyIHRvYyBHRCBhbmQgTEQgZW50cmllcyBjYW4KCW9wdGltaXplIGF3YXkgX190bHNfZ2V0X2FkZHIgY2FsbC4gIENoZWNrIG5leHQgcmVsb2MgYWZ0ZXIgRFRQTU9ENjQKCXRvIGRldGVybWluZSBHRCBvciBMRCByYXRoZXIgdGhhbiBsb29raW5nIGF0IFRMU19MRCBmbGFnLiAgRG9uJ3QKCWF0dGVtcHQgdG8gYWRqdXN0IGdvdCBlbnRyeSB0bHNfdHlwZSBoZXJlLi4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiAuLmluc3RlYWQsIGFkanVzdCBnb3QgZW50cnkgdGxzX3R5cGUgaGVyZSwgYW5kCglsb29rIGZvciBwb3NzaWJsZSBtZXJnZXMuCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFkanVzdCBsb2NhbCBnb3QgZW50cmllcyBmb3IKCW9wdGltaXphdGlvbi4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IFR3ZWFrIF9fdGxzX2dldF9hZGRyIGZ1ZGdlLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVuYW1lIHNvbWUgdmFycyB0byBiZXR0ZXIgcmVmbGVjdCB1c2FnZS4KCU1ha2UgdXNlIG9mIHJldHVybiB2YWx1ZSBmcm9tIGdldF90bHNfdHlwZSB0byBwcm9wZXJseSBkZXRlY3QgR0QgYW5kCglMRCBvcHRpbWl6YXRpb25zLiAgU3BsaXQgdGxzbGQvZ2QgaGkvaGEgZnJvbSBsby9kcyBjYXNlLiAgRG9uJ3QKCWhhbmRsZSB0bHNfZ2V0X2FkZHIgcmVtb3ZhbCB3aGVuIGxvb2tpbmcgYXQgUkVMMjQgcmVsb2NzLCBkbyBpdCB3aGVuCglsb29raW5nIGF0IHRoZSBwcmV2aW91cyByZWxvYy4gIENoZWNrIHJlbG9jIGFmdGVyIERUUE1PRDY0IHRvIGRldGVybWluZQoJR0Qgb3IgTEQuCgkqIGVsZjY0LXBwYy5oIChwcGM2NF9lbGZfdGxzX3NldHVwKTogRGVjbGFyZS4KCjIwMDMtMDItMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGdyb3VwX3NlY3Rpb25zKTogRG9uJ3Qgc2hhcmUgYSBzdHViIHNlY3Rpb24gaWYKCXN0dWJzIGFyZSBmb3IgYSBsYXJnZSBzZWN0aW9uLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBEb3VibGUgdGhlIHNpemUgbGVmdCBmb3IKCXN0dWJzIGlmICFzdHVic19hbHdheXNfYmVmb3JlX2JyYW5jaC4KCjIwMDMtMDItMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoc3dhcF9vdXRfc3ltcyk6IEdlbmVyYXRlIGFuIGVycm9yIG1lc3NhZ2UgaWYgYW4KCWVxdWl2YWxlbnQgb3V0cHV0IHNlY3Rpb24gY2Fubm90IGJlIGZvdW5kIGZvciBhIHN5bWJvbC4KCjIwMDMtMDItMDcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfc2VjdGlvbik6IERvbid0IGNyYXNoIGlmCglsb2NhbF9nb3RfZW50cmllcyBpcyBOVUxMLgoKMjAwMy0wMi0wNiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZi1laC1mcmFtZS5jIChnZXRfRFdfRUhfUEVfc2lnbmVkKTogRGVmaW5lLgoJKHJlYWRfdmFsdWUpOiBBZGQgcGFyYW1ldGVyIGlzX3NpZ25lZCwgdXNlIHNpZ25lZCBleHRyYWN0aW9uIGlmCgl0aGUgdmFsdWUgaXMgc2lnbmVkLgoJKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWUpOiBQYXNzIHNpZ25lZCBmbGFnIG9mIHRoZQoJZW5jb2RpbmcgdG8gcmVhZF92YWx1ZS4KCjIwMDMtMDItMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRG9uJ3QgY29weSBnb3QgYW5kCglwbHQgaW5mbyB3aGVuIGNhbGxlZCB0byB0cmFuc2ZlciB3ZWFrIHN5bSBpbmZvLgoKMjAwMy0wMi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJlbG9jLmM6IEFkZCBQUEMgYW5kIFBQQzY0IFRMUyByZWxvY3MuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGVsZjY0LXBwYy5jIChUUF9PRkZTRVQsIERUUF9PRkZTRVQpOiBEZWNsYXJlLgoJKHBwYzY0X2VsZl9ob3d0b19yYXcpOiBBZGQgVExTIGhvd3RvJ3MuICBBZGp1c3QgUl9QUEM2NF9OT05FIHRvIGJlCglhZ2FpbnN0IGEgMzIgYml0IGZpZWxkLgoJKHBwYzY0X2VsZl9yZWxvY190eXBlX2xvb2t1cCk6IEhhbmRsZSBUTFMgcmVsb2NzLgoJKF9wcGM2NF9lbGZfc2VjdGlvbl9kYXRhKTogQWRkIHRfc3ltbmR4IGFuZCBjb21tZW50cy4KCShwcGM2NF9lbGZfc2VjdGlvbl9kYXRhKTogVXNlIGVsZl9zZWN0aW9uX2RhdGEgbWFjcm8uCgkocHBjNjRfZWxmX25ld19zZWN0aW9uX2hvb2spOiBBbWVyaWNhbiBzcGVsbGluZy4KCShzdHJ1Y3QgZ290X2VudHJ5LCBzdHJ1Y3QgcGx0X2VudHJ5KTogTmV3LgoJKE1VU1RfQkVfRFlOX1JFTE9DKTogUmVuYW1lIGZyb20gSVNfQUJTT0xVVEVfUkVMT0MuCgkoc3RydWN0IHBwY19zdHViX2hhc2hfZW50cnkpOiBBZGQgImFkZGVuZCIgZmllbGQuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfZW50cnkpOiBBZGQgInRsc190eXBlIi4KCShUTFNfVExTLCBUTFNfR0RfTEQsIFRMU19MRCwgVExTX1RQUkVMLCBUTFNfRFRQUkVMLAoJVExTX0VYUExJQ0lUKTogRGVmaW5lLgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogQWRkIHRsc19zZWMsIHRsc19nZXRfYWRkciwgdGxzbGRfZ290LgoJKGxpbmtfaGFzaF9uZXdmdW5jKTogSW5pdCBuZXcgZmllbGRzLgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuICBTZXQgaW5pdF9yZWZjb3VudCBhbmQKCWluaXRfb2Zmc2V0IHRvIE5VTEwuCgkocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29weSBnb3QgYW5kIHBsdCBpbmZvLiAgRG9uJ3QgY2FsbAoJX2JmZF9lbGZfbGlua19oYXNoX2NvcHlfaW5kaXJlY3QsIHJhdGhlciBpbnNlcnQgcmVsZXZhbnQgY29kZSBmcm9tCgl0aGVyZS4KCSh1cGRhdGVfbG9jYWxfc3ltX2luZm8sIHVwZGF0ZV9wbHRfaW5mbyk6IE5ldyBmdW5jdGlvbnMuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFVzZSB0aGVtLiAgSGFuZGxlIFRMUyByZWxvY3MuICBBZGp1c3QgR09UCgloYW5kbGluZyB0byB1c2UgZ290LmdsaXN0IHJhdGhlciB0aGFuIGdvdC5yZWZjb3VudC4gIExpa2V3aXNlIGZvciBQTFQuCgkocHBjNjRfZWxmX2djX3N3ZWVwX2hvb2spOiBIYW5kbGUgVExTIHJlbG9jcywgbmV3IEdPVCBhbmQgUExUIGxpc3RzLgoJKGZ1bmNfZGVzY19hZGp1c3QpOiBBZGp1c3QgZm9yIG5ldyBQTFQgbGlzdC4KCShwcGM2NF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZ2V0X3N5bV9oLCBnZXRfdGxzX3R5cGUpOiBOZXcgZnVuY3Rpb25zLgoJKHBwYzY0X2VsZl9lZGl0X29wZCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuICBVc2UgZ2V0X3N5bV9oLgoJKHBwYzY0X2VsZl90bHNfb3B0aW1pemUpOiBOZXcgZnVuY3Rpb24uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogQWRqdXN0IGZvciBuZXcgUExUIGFuZCBHT1QgbGlzdHMuICBBbGxvY2F0ZQoJVExTIHJlbG9jcy4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkocHBjX3R5cGVfb2Zfc3R1Yik6IEFkanVzdCBmb3IgbmV3IFBMVCBsaXN0LgoJKHBwY19idWlsZF9vbmVfc3R1Yik6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogTGlrZXdpc2UuICBVc2UgZ2V0X3N5bV9oLiAgVHJlYXQgX190bHNfZ2V0X2FkZHIKCWNhbGxzIHNwZWNpYWxseS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFkanVzdCBmb3IgbmV3IEdPVCBhbmQgUExUIGxpc3RzLiAgSGFuZGxlCglUTFMgcmVsb2NzLiAgUmVwb3J0IGxvY2FsIHN5bXMgdXNpbmcgYmZkX2VsZl9sb2NhbF9zeW1fbmFtZS4gIERvbid0Cglpbml0IEdPVCBlbnRyaWVzIHRoYXQgaGF2ZSBhIHJlbG9jLiAgR2VuZXJhdGUgR09UIHJlbG9jcyBoZXJlLi4KCShwcGM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogLi5ub3QgaGVyZS4gIEFkanVzdCBmb3IgUExUIGxpc3QuCgkqIGVsZjY0LXBwYy5oIChwcGM2NF9lbGZfdGxzX29wdGltaXplKTogRGVjbGFyZS4KCjIwMDMtMDItMDQgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX2hhc2hfZW50cnkpOiBEZWZpbmUuCgkoZWxmX202OGtfbGlua19oYXNoX3RyYXZlcnNlKTogUmVtb3ZlLgoJKGVsZl9tNjhrX2xpbmtfaGFzaF9uZXdmdW5jKTogVXNlIHN0cnVjdCBiZmRfaGFzaF9lbnRyeSBhbmQKCWVsZl9tNjhrX2hhc2hfZW50cnkgaW5zdGVhZCBvZiBzdHJ1Y3QgZWxmX202OGtfbGlua19oYXNoX2VudHJ5IHRvCglyZWR1Y2UgY2FzdGluZy4KCShlbGZfbTY4a19jaGVja19yZWxvY3MpOiBVc2UgZWxmX202OGtfaGFzaF9lbnRyeSBpbnN0ZWFkIG9mCgljYXN0aW5nLgoJKGVsZl9tNjhrX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBlbGZfbGlua19oYXNoX3RyYXZlcnNlCglpbnN0ZWFkIG9mIGVsZl9tNjhrX2xpbmtfaGFzaF90cmF2ZXJzZS4KCShlbGZfbTY4a19kaXNjYXJkX2NvcGllcyk6IENoYW5nZSBmaXJzdCBwYXJhbWV0ZXIgdG8gcG9pbnRlciB0bwoJc3RydWN0IGVsZl9saW5rX2hhc2hfZW50cnkgYW5kIHVzZSBlbGZfbTY4a19oYXNoX2VudHJ5IHdoZW4gc3RydWN0CgllbGZfbTY4a19saW5rX2hhc2hfZW50cnkgaXMgbmVlZGVkLgoKMjAwMy0wMi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGdvdF9lbnRyeSwgc3RydWN0IHBsdF9lbnRyeSk6IEZvcndhcmQgZGVjbGFyZS4KCShzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCAiZ2xpc3QiIGFuZCAicGxpc3QiIGZpZWxkcyB0bwoJImdvdCIgdW5pb24sIGFuZCBkZWNsYXJlIGFzIGdvdHBsdF91bmlvbi4gIFVzZSBnb3RwbHRfdWluaW9uIGZvcgoJInBsdCIgZmllbGQuCgkoc3RydWN0IGVsZl9saW5rX2hhc2hfdGFibGUpOiBNYWtlICJpbml0X3JlZmNvdW50IiBhIGdvdHBsdF91bmlvbi4KCUFkZCAiaW5pdF9vZmZzZXQiIGZpZWxkLgoJKHN0cnVjdCBlbGZfb2JqX3RkYXRhIDxsb2NhbF9nb3Q+KTogQWRkICJzdHJ1Y3QgZ290X2VudHJ5ICoqIiB0byB1bmlvbi4KCShlbGZfbG9jYWxfZ290X2VudHMpOiBEZWNsYXJlLgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBBZGp1c3QgaW5pdGlhbGl6YXRpb24gb2YgImdvdCIKCWFuZCAicGx0Ii4KCShfYmZkX2VsZl9saW5rX2hhc2hfaGlkZV9zeW1ib2wpOiBVc2UgImluaXRfb2Zmc2V0Ii4KCShfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCk6IFNldCAiaW5pdF9vZmZzZXQiLgoJKiBlbGZsaW5rLmggKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogU2V0IGluaXRfcmVmY291bnQKCWZyb20gaW5pdF9vZmZzZXQuCgkoZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFNldCBwbHQgYW5kIGdvdCBvZmZzZXRzIHVzaW5nIGluaXRfb2Zmc2V0LgoKCSogZWxmLmMgKGJmZF9lbGZfbG9jYWxfc3ltX25hbWUpOiBTcGxpdCBvdXQgZnJvbS4uCgkoZ3JvdXBfc2lnbmF0dXJlKTogLi5oZXJlLgoJKiBlbGYtYmZkLmggKGJmZF9lbGZfbG9jYWxfc3ltX25hbWUpOiBEZWNsYXJlLgoKMjAwMy0wMi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoZW51bSBlbGZfbGlua19pbmZvX3R5cGUpOiBSZW1vdmUuCgkoc3RydWN0IGJmZF9lbGZfc2VjdGlvbl9kYXRhKTogTW92ZSBzZWNfaW5mb190eXBlLCB1c2VfcmVsYV9wIGZpZWxkcwoJdG8gc3RydWN0IHNlYy4gIFJlbW92ZSBsaW5rb25jZV9wIGZpZWxkLgoJKGVsZl9saW5rb25jZV9wKTogRGVsZXRlLgoJKGVsZl9kaXNjYXJkZWRfc2VjdGlvbik6IFVwZGF0ZSBmb3Igc2VjX2luZm9fdHlwZSBjaGFuZ2UuCgkqIHNlY3Rpb24uYyAoc3RydWN0IHNlYyk6IEFkZCBzZWNfaW5mb190eXBlLCB1c2VfcmVsYV9wLCBoYXNfdGxzX3JlbG9jLAoJZmxhZzExLCBmbGFnMTIsIGZsYWcxMywgZmxhZzE0LCBmbGFnMTUsIGZsYWcxNiwgZmxhZzIwLCBmbGFnMjQuCgkoRUxGX0lORk9fVFlQRV9OT05FKTogRGVmaW5lLgoJKEVMRl9JTkZPX1RZUEVfU1RBQlMpOiBEZWZpbmUuCgkoRUxGX0lORk9fVFlQRV9NRVJHRSk6IERlZmluZS4KCShFTEZfSU5GT19UWVBFX0VIX0ZSQU1FKTogRGVmaW5lLgoJKEVMRl9JTkZPX1RZUEVfSlVTVF9TWU1TKTogRGVmaW5lLgoJKFNURF9TRUNUSU9OKTogVXBkYXRlIHN0cnVjdCBzZWMgaW5pdGlhbGl6ZXIuCgkqIGVjb2ZmLmMgKGJmZF9kZWJ1Z19zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZi5jOiBMaWtld2lzZS4gIFVwZGF0ZSBvY2N1cnJlbmNlcyBvZiBzZWNfaW5mb190eXBlIGFuZCB1c2VfcmVsYV9wLgoJKiBlbGZsaW5rLmg6IExpa2V3aXNlLgoJKiBlbGYtZWgtZnJhbWUuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmM6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoJKiBlbGYzMi1zcGFyYy5jIChzZWNfZG9fcmVsYXgpOiBVc2UgZWxmX3NlY3Rpb25fZGF0YSBtYWNybyByYXRoZXIgdGhhbgoJcmVmZXJyaW5nIHRvIHVzZWRfYnlfYmZkLgoJKiBlbGY2NC1zcGFyYy5jIChzZWNfZG9fcmVsYXgpOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9zZWN0aW9uX2RhdGEpOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9zZWN0aW9uX2RhdGEpOiBMaWtld2lzZS4KCSogaWVlZS5jIChpZWVlX3NsdXJwX3NlY3Rpb25fZGF0YSk6IFVzZSBpZWVlX3Blcl9zZWN0aW9uIG1hY3JvLgoJKGllZWVfZ2V0X3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCShpZWVlX25ld19zZWN0aW9uX2hvb2spOiBGb3JtYXR0aW5nLgoJKGllZWVfY2Fub25pY2FsaXplX3JlbG9jKTogUmVtb3ZlIGNvbW1lbnRlZCBvdXQgY29kZS4KCSogbW1vLmMgKG1tb19zZWN0aW9uX2RhdGEpOiBEZWZpbmUuICBVc2UgdGhyb3VnaG91dCBmaWxlLgoJKiBvYXN5cy5jIChvYXN5c19nZXRfc2VjdGlvbl9jb250ZW50cyk6IFVzZSBvYXN5c19wZXJfc2VjdGlvbiBtYWNyby4KCjIwMDMtMDEtMzEgIEdyYXlkb24gSG9hcmUgPGdyYXlkb25AcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChvcG5jbHMubG8pOiBBZGQgZGVwZW5kZW5jeSB1cG9uIGxpYmliZXJ0eS5oLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogb3BuY2xzLmMgKGNhbGNfY3JjMzIsIGdldF9kZWJ1Z19saW5rX2luZm8sCglzZXBlcmF0ZV9kZWJ1Z19maWxlX2V4aXN0cywgZmluZF9zZXBlcmF0ZV9kZWJ1Z19maWxlKTogTmV3CglpbnRlcm5hbCBmdW5jdGlvbnMuCgkoYmZkX2ZvbGxvd19nbnVfZGVidWdsaW5rKTogTmV3IGZ1bmN0aW9uLiAgRm9sbG93IHRoZSBwb2ludGVyCgljb250YWluZWQgaW5zaWRlIGEgLmdudV9kZWJ1Z2xpbmsgc2VjdGlvbi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMy0wMS0yOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2dvdF9lbnRyeV9oYXNoKTogRG9uJ3QgZGVyZWZlcmVuY2UKCWVudHJ5LT5hYmZkIHdoZW4gaXQncyBOVUxMLgoKMjAwMy0wMS0yNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBIYW5kbGUKCV9iZmRfZWxmX3NlY3Rpb25fb2Zmc2V0IHJldHVybmluZyAtMiB0aGUgc2FtZSB3YXkgYXMgLTEuCgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX211bHRpX2dvdCk6IE5ldyBmdW5jdGlvbi4KCShzdHJ1Y3QgbWlwc19nb3RfZW50cnkpOiBNYWtlIHN5bW5keCBhbmQgZ290aWR4IHNpZ25lZC4gIE1vdmVkCglhZGRlbmQgaW50byB1bmlvbiBhbG9uZyB3aXRoIGFkZHJlc3MgYW5kIGxpbmsgaGFzaCBlbnRyeS4KCShzdHJ1Y3QgbWlwc19nb3RfaW5mbyk6IEFkZGVkIGJmZDJnb3QgYW5kIG5leHQuCgkoc3RydWN0IG1pcHNfZWxmX2hhc2hfc29ydF9kYXRhKTogQWRkZWQgbWF4X3VucmVmX2dvdF9keW5pbmR4LgoJKG1pcHNfZWxmX2dvdF9zZWN0aW9uLCBtaXBzX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24pOiBVc2UKCVNFQ19FWENMVURFIGJpdCB0byB0ZWxsIHdoZXRoZXIgd2UgcmVhbGx5IG5lZWQgdGhlIGdvdAoJc2VjdGlvbi4gIFRha2UgYm9vbGVhbiBhcmd1bWVudHMgdG8gZGlzcmVnYXJkIGFuIGV4Y2x1ZGVkCglzZWN0aW9uLCBvciB0byBjcmVhdGUgaXQgYXMgZXhjbHVkZWQuICBBZGp1c3QgYWxsIGNhbGxlcnMuCglVc2UgbWlwc19lbGZfZ290X3NlY3Rpb24gYWxsIG92ZXIuCgkobWlwc19lbGZfbG9jYWxfZ290X2luZGV4LCBtaXBzX2VsZl9nb3RfcGFnZSwKCW1pcHNfZWxmX2dvdDE2X2VudHJ5KTogVGFrZSBpbnB1dCBiZmQgYXMgYXJndW1lbnQsIGFuZCBwYXNzIGl0CglvbiB0byBtaXBzX2VsZl9jcmVhdGVfbG9jYWxfZ290X2VudHJ5LgoJKG1pcHNfZWxmX2dsb2JhbF9nb3RfaW5kZXgsIG1pcHNfZWxmX2NyZWF0ZV9sb2NhbF9nb3RfZW50cnkpOgoJVGFrZSBpbnB1dCBiZmQgYXMgYXJndW1lbnQsIGFuZCBtYW5hZ2UgZW50cmllcyBpbiB0aGUKCWFwcHJvcHJpYXRlIEdPVC4KCShtaXBzX2VsZl9nb3Rfb2Zmc2V0X2Zyb21faW5kZXgpOiBUYWtlIGlucHV0IGJmZCBhcyBhcmd1bWVudCwKCWFuZCB1c2UgaXQgdG8gYWRqdXN0IHRoZSBHUCBvZmZzZXQgb2YgdGhlIGJmZC4KCShtaXBzX2VsZl9zb3J0X2hhc2hfdGFibGUsIG1pcHNfZWxmX3NvcnRfaGFzaF90YWJsZV9mKTogTW92ZQoJdW5yZWZlcmVuY2VkIEdPVCBlbnRyaWVzIG9mIGdsb2JhbCBzeW1ib2xzIHRvIHRoZSBlbmQuCgkobWlwc19lbGZfcmVjb3JkX2dsb2JhbF9nb3Rfc3ltYm9sKTogVGFrZSBpbnB1dCBiZmQgYXMKCWFyZ3VtZW50LiAgQWRkIGVudHJpZXMgdG8gdGhlIG1hc3RlciBHT1QgaGFzaCB0YWJsZS4KCShzdHJ1Y3QgbWlwc19lbGZfYmZkMmdvdF9oYXNoKTogTmV3LgoJKHN0cnVjdCBtaXBzX2VsZl9nb3RfcGVyX2JmZF9hcmcpOiBOZXcuCgkoc3RydWN0IG1pcHNfZWxmX3NldF9nbG9iYWxfZ290X29mZnNldF9hcmcpOiBOZXcuCgkobWlwc19lbGZfaGFzaF9iZmRfdm1hLCBtaXBzX2VsZl9tdWx0aV9nb3RfZW50cnlfaGFzaCwKCW1pcHNfZWxmX211bHRpX2dvdF9lbnRyeV9lcSwgbWlwc19lbGZfYmZkMmdvdF9lbnRyeV9oYXNoLAoJbWlwc19lbGZfYmZkMmdvdF9lbnRyeV9lcSwgbWlwc19lbGZfbWFrZV9nb3RfcGVyX2JmZCwKCW1pcHNfZWxmX21lcmdlX2dvdHMsIG1pcHNfZWxmX3NldF9nbG9iYWxfZ290X29mZnNldCwKCW1pcHNfZWxmX3Jlc29sdmVfZmluYWxfZ290X2VudHJ5LAoJbWlwc19lbGZfcmVzb2x2ZV9maW5hbF9nb3RfZW50cmllcywgbWlwc19lbGZfYWRqdXN0X2dwLAoJbWlwc19lbGZfZ290X2Zvcl9pYmZkKTogTmV3IGZ1bmN0aW9ucy4KCShFTEZfTUlQU19HUF9PRkZTRVQpOiBEb24ndCBkZXBlbmQgb24gU0dJX0NPTVBBVC4KCShNSVBTX0VMRl9HT1RfTUFYX1NJWkUpOiBOZXcgbWFjcm8uCgkoU1RVQl9MVyk6IEdlbmVyYXRlIDY0LWJpdCBzdHViIHJlZ2FyZGxlc3Mgb2YgU0dJX0NPTVBBVC4KCShtaXBzX2VsZl9nb3RfZW50cnlfaGFzaCk6IFRha2UgbmV3IGZpZWxkcyBpbnRvIGFjY291bnQuICBVc2UKCW1pcHNfZWxmX2hhc2hfYmZkX3ZtYS4KCShtaXBzX2VsZl9nb3RfZW50cnlfZXEpOiBUYWtlIG5ldyBmaWVsZHMgaW50byBhY2NvdW50LgoJKG1pcHNfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IEluaXRpYWxpemUgbmV3IGZpZWxkcy4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFBhc3MgaW5wdXRfYmZkIHRvIGZ1bmN0aW9ucwoJdGhhdCBub3cgdGFrZSBpdC4gIEFkanVzdCBncCBmb3IgdGhlIGlucHV0X2JmZC4KCShtaXBzX2VsZl9hbGxvY2F0ZV9keW5hbWljX3JlbG9jYXRpb24sCgltaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uLAoJX2JmZF9taXBzX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IFVzZS4uLgoJKG1pcHNfZWxmX3JlbF9keW5fc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4gIEJvcnJvdyBjb2RlIGZyb20uLi4KCShfYmZkX21pcHNfZWxmX2NoZWNrX3JlbG9jcyk6IFBhc3MgaW5wdXRfYmZkIHRvIGZ1bmN0aW9ucyB0aGF0Cglub3cgdGFrZSBpdC4gIENyZWF0ZSB0aGUgZ290IHNlY3Rpb24gaWYgbmVlZGVkLCBldmVuIGlmCglleGNsdWRlZCwgYmVmb3JlIHJlY29yZGluZyBhIGdsb2JhbCBnb3Qgc3ltYm9sLiAgTW92ZSBzb21lCgljb2RlIHRvLi4uCgkobWlwc19lbGZfcmVjb3JkX2xvY2FsX2dvdF9zeW1ib2wpOiBOZXcgZm4uCgkoX2JmZF9taXBzX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEaXNhYmxlIGNvbWJyZWxvYy4KCUNvbXB1dGUgbXVsdGktZ290IGdsb2JhbCBlbnRyaWVzIG9mZnNldHMuICBNb3ZlIEdPVCBjb2RlIHRvLi4uCgkoX2JmZF9taXBzX2VsZl9hbHdheXNfc2l6ZV9zZWN0aW9ucyk6IENhbGwgbWlwc19lbGZfbXVsdGlfZ290CglpZiB0aGUgR09UIGlzIHRvbyBiaWcuCgkoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBTZXQgZ290IGVudHJ5IG9mCgl1bmRlZndlYWsgc3ltYm9sIHRvIHplcm8uICBHZW5lcmF0ZSBkeW5hbWljIHJlbG9jYXRpb25zIGZvcgoJbm9uLXByaW1hcnkgR09UIGVudHJpZXMgZm9yIGdsb2JhbCBzeW1ib2xzLgoJKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBIYW5kbGUgbXVsdGktZ290CgljYXNlLiAgR2VuZXJhdGUgZHluYW1pYyByZWxvY2F0aW9ucyBmb3IgbG9jYWwgZ290IGVudHJpZXMuCglTb3J0IGR5bmFtaWMgcmVsb2NhdGlvbnMgb24gTjY0IHRvbywgdXNpbmcuLi4KCShzb3J0X2R5bmFtaWNfcmVsb2NzXzY0KTogTmV3IGZucy4KCShfYmZkX21pcHNfZWxmX2hpZGVfc3ltYm9sKTogQWRqdXN0IG11bHRpLWdvdCBjb3VudGVycy4KCShfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBJZ25vcmUgRUZfTUlQU19YR09ULgoKMjAwMy0wMS0yNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBiZmQuYyAoc3RydWN0IF9iZmQpOiBBZGRlZCBpZCBmaWVsZC4KCSogb3BuY2xzLmMgKF9iZmRfaWRfY291bnRlcik6IE5ldyBzdGF0aWMgdmFyaWFibGUuCgkoX2JmZF9uZXdfYmZkKTogVXNlIGl0LgoJKiBiZmQtaW4yLmg6IFJlYnVpbHQuCgoyMDAzLTAxLTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItc3BhcmMuYyAoYmZkX2VsZjMyX25ld19zZWN0aW9uX2hvb2spOiBEZWZpbmUuCgoyMDAzLTAxLTI1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNwYXJjLmMgKF9iZmRfc3BhcmNfZWxmX2hvd3RvX3RhYmxlKTogQWRkIFRMUyByZWxvY3MuCgkoZWxmMzJfc3BhcmNfcmV2MzJfaG93dG8pOiBOZXcgdmFyaWFibGUuCgkoc3BhcmNfcmVsb2NfbWFwKTogQWRkIFRMUyByZWxvY3MuCgkoZWxmMzJfc3BhcmNfcmVsb2NfdHlwZV9sb29rdXAsIGVsZjMyX3NwYXJjX2luZm9fdG9faG93dG8pOgoJSGFuZGxlIFJFVjMyLgoJKHNwYXJjX2VsZl9oaXgyMl9yZWxvYywgc3BhcmNfZWxmX2xveDEwX3JlbG9jLCBlbGYzMl9zcGFyY19ta29iamVjdCk6CglOZXcgZnVuY3Rpb25zLgoJKHN0cnVjdCBlbGYzMl9zcGFyY19keW5fcmVsb2NzLCBzdHJ1Y3QgZWxmMzJfc3BhcmNfbGlua19oYXNoX2VudHJ5LAoJc3RydWN0IGVsZjMyX3NwYXJjX2xpbmtfaGFzaF90YWJsZSk6CglOZXcgc3RydWN0dXJlcy4KCShlbGYzMl9zcGFyY190ZGF0YSwgZWxmMzJfc3BhcmNfbG9jYWxfZ290X3Rsc190eXBlLAoJZWxmMzJfc3BhcmNfaGFzaF90YWJsZSk6IERlZmluZS4KCShsaW5rX2hhc2hfbmV3ZnVuYywgZWxmMzJfc3BhcmNfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSwKCWNyZWF0ZV9nb3Rfc2VjdGlvbiwgZWxmMzJfc3BhcmNfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMsCgllbGYzMl9zcGFyY19jb3B5X2luZGlyZWN0X3N5bWJvbCwgZWxmMzJfc3BhcmNfdGxzX3RyYW5zaXRpb24pOiBOZXcKCWZ1bmN0aW9ucy4KCShlbGYzMl9zcGFyY19jaGVja19yZWxvY3MpOiBIYW5kbGUgVExTIHJlbG9jcy4gIEFkZCBkeW5hbWljIHJlbG9jCglyZWZlcmVuY2UgY291bnRpbmcuCgkoZWxmMzJfc3BhcmNfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGVsZjMyX3NwYXJjX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZjMyX3NwYXJjX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MsIHJlYWRvbmx5X2R5bnJlbG9jcywgZHRwb2ZmX2Jhc2UsIHRwb2ZmKToKCU5ldyBmdW5jdGlvbnMuCgkoZWxmMzJfc3BhcmNfb2JqZWN0X3ApOiBBbGxvY2F0ZSBiYWNrZW5kIHByaXZhdGUgb2JqZWN0IGRhdGEuCgkoYmZkX2VsZjMyX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlLAoJZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wsIGJmZF9lbGYzMl9ta29iamVjdCwKCWVsZl9iYWNrZW5kX2Nhbl9yZWZjb3VudCk6IERlZmluZS4KCShlbGZfYmFja2VuZF9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERlZmluZSB0bwoJZWxmMzJfc3BhcmNfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMuCgkqIHJlbG9jLmM6IEFkZCBTUEFSQyBUTFMgcmVsb2NzLgoJKiBiZmQtaW4yLmgsIGxpYmJmZC5oOiBSZWJ1aWx0LgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9ob3d0b190YWJsZSk6IEFkZCBUTFMgcmVsb2NzLgoJKHNwYXJjX3JlbG9jX21hcCk6IExpa2V3aXNlLgoKMjAwMy0wMS0yNCAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9ta29iamVjdCwgZWxmX3MzOTBfdGxzX3RyYW5zaXRpb24sCglzMzkwX3Rsc19yZWxvYywgZHRwb2ZmX2Jhc2UsIHRwb2ZmLCBpbnZhbGlkX3Rsc19pbnNuKTogTmV3IGZ1bmN0aW9ucy4KCShlbGZfaG93dG9fdGFibGUpOiBBZGQgVExTIHJlbG9jcy4KCShlbGZfczM5MF9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCB0bHNfdHlwZS4KCShlbGZfczM5MF9oYXNoX2VudHJ5LCBlbGZfczM5MF9vYmpfdGRhdGEsIGVsZl9zMzkwX2xvY2FsX2dvdF90bHNfdHlwZSk6CglOZXcgbWFjcm9zLgoJKGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZSk6IEFkZCB0bHNfbGRtX2dvdC4KCShsaW5rX2hhc2hfbmV3ZnVuYyk6IEluaXRpYWxpemUgdGxzX3R5cGUuCgkoZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXRpYWxpemUgcmVmY291bnQgb2YgdGxzX2xkbV9nb3QuCgkoZWxmX3MzOTBfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBDb3B5IHRsc190eXBlIGluZm9ybWF0aW9uLgoJKGVsZl9zMzkwX2NoZWNrX3JlbG9jcyk6IFN1cHBvcnQgVExTIHJlbG9jcy4KCShlbGZfczM5MF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZl9zMzkwX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9ta29iamVjdCk6IERlZmluZSBmb3IgVExTLgoJKiBlbGY2NC1zMzkwLmM6IFNhbWUgY2hhbmdlcyBhcyBmb3IgZWxmMzItczM5MC5jLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogcmVsb2MuYzogQWRkIHMzOTAgVExTIHJlbG9jYXRpb25zLgoKMjAwMy0wMS0yNCAgQ2hhcmxlcyBMZXBwbGUgIDxjbGVwcGxlQGdoei5jYz4KCgkqIGFjbG9jYWwubTQ6IEZpeCBuYW1lIG9mIC0tZW5hYmxlLWluc3RhbGwtbGliYmZkIHN3aXRjaC4KCjIwMDMtMDEtMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBBZGQgc2gyZSBzdXBwb3J0OgoJMjAwMi0wNC0wMiAgRWxlbmEgWmFubm9uaSAgPGV6YW5ub25pQHJlZGhhdC5jb20+CgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX3NoMmUpOiBBZGRlZC4KCSogYmZkLWluMi5oOiBSZWJ1aWx0LgoJKiBjcHUtc2guYyAoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZGVkIFNIMmUuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogSGFuZGxlIEVGX1NIMkUuCgoyMDAzLTAxLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgYmZkX2VsZl9zZWN0aW9uX2RhdGEpOiBSZW1vdmUgdGRhdGEuICBDaGFuZ2UKCWR5bmluZHggdG8gYW4gaW50LiAgUmVhcnJhbmdlIGZvciBiZXR0ZXIgcGFja2luZy4KCSogZWxmLmMgKF9iZmRfZWxmX25ld19zZWN0aW9uX2hvb2spOiBEb24ndCBhbGxvYyBpZiBhbHJlYWR5IGRvbmUuCgkqIGVsZjMyLW1pcHMuYyAoYmZkX2VsZjMyX25ld19zZWN0aW9uX2hvb2spOiBEZWZpbmUuCgkqIGVsZjMyLXNoNjQuaDogTmV3LiAgU3BsaXQgb3V0IGZyb20gaW5jbHVkZS9lbGYvc2guaC4KCShzdHJ1Y3QgX3NoNjRfZWxmX3NlY3Rpb25fZGF0YSk6IE5ldyBzdHJ1Y3QuCgkoc2g2NF9lbGZfc2VjdGlvbl9kYXRhKTogRG9uJ3QgZGVyZWZlcmVuY2Ugc2g2NF9pbmZvICh3YXMgdGRhdGEpLgoJKiBlbGYzMi1zaDY0LWNvbS5jOiBJbmNsdWRlIGVsZjMyLXNoNjQuaC4KCSogZWxmMzItc2g2NC5jOiBMaWtld2lzZS4KCShzaDY0X2VsZl9uZXdfc2VjdGlvbl9ob29rKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9lbGYzMl9uZXdfc2VjdGlvbl9ob29rKTogRGVmaW5lLgoJKHNoNjRfZWxmX2Zha2Vfc2VjdGlvbnMpOiBBZGp1c3QgZm9yIHNoNjRfZWxmX3NlY3Rpb25fZGF0YSBjaGFuZ2UuCgkoc2g2NF9iZmRfZWxmX2NvcHlfcHJpdmF0ZV9zZWN0aW9uX2RhdGEpOiBMaWtld2lzZS4KCShzaDY0X2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKHN0cnVjdCBlbGYzMl9zcGFyY19zZWN0aW9uX2RhdGEpOiBOZXcuCgkoZWxmMzJfc3BhcmNfbmV3X3NlY3Rpb25faG9vayk6IE5ldyBmdW5jdGlvbi4KCShTRVRfU0VDX0RPX1JFTEFYLCBTRUNfRE9fUkVMQVgpOiBEZWxldGUuCgkoc2VjX2RvX3JlbGF4KTogRGVmaW5lLgoJKGVsZjMyX3NwYXJjX3JlbGF4X3NlY3Rpb24pOiBBZGp1c3QgdG8gdXNlIHNlY19kb19yZWxheC4KCShlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1pcHMuYyAoYmZkX2VsZjY0X25ld19zZWN0aW9uX2hvb2spOiBEZWZpbmUuCgkqIGVsZjY0LW1taXguYyAoc3RydWN0IF9tbWl4X2VsZl9zZWN0aW9uX2RhdGEpOiBOZXcuCgkobW1peF9lbGZfc2VjdGlvbl9kYXRhKTogRGVmaW5lLiAgVXNlIHRocm91Z2hvdXQgZmlsZS4KCShtbWl4X2VsZl9uZXdfc2VjdGlvbl9ob29rKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9lbGY2NF9uZXdfc2VjdGlvbl9ob29rKTogRGVmaW5lLgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IF9wcGM2NF9lbGZfc2VjdGlvbl9kYXRhKTogTmV3LgoJKHBwYzY0X2VsZl9zZWN0aW9uX2RhdGEpOiBEZWZpbmUuICBVc2UgdGhyb3VnaG91dC4KCShwcGM2NF9lbGZfbmV3X3NlY3Rpb25faG9vayk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmNjRfbmV3X3NlY3Rpb25faG9vayk6IERlZmluZS4KCSogZWxmNjQtc3BhcmMuYyAoc3RydWN0IHNwYXJjNjRfZWxmX3NlY3Rpb25fZGF0YSk6IE5ldy4KCShzcGFyYzY0X2VsZl9uZXdfc2VjdGlvbl9ob29rKTogTmV3IGZ1bmN0aW9uLgoJKFNFVF9TRUNfRE9fUkVMQVgsIFNFQ19ET19SRUxBWCk6IERlbGV0ZS4KCShzZWNfZG9fcmVsYXgpOiBEZWZpbmUuCgkoc3BhcmM2NF9lbGZfcmVsYXhfc2VjdGlvbik6IEFkanVzdCB0byB1c2Ugc2VjX2RvX3JlbGF4LgoJKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShiZmRfZWxmNjRfbmV3X3NlY3Rpb25faG9vayk6IERlZmluZS4KCSogZWxmbjMyLW1pcHMuYyAoYmZkX2VsZjMyX25ld19zZWN0aW9uX2hvb2spOiBEZWZpbmUuCgkqIGVsZnh4LW1pcHMuYyAoc3RydWN0IF9taXBzX2VsZl9zZWN0aW9uX2RhdGEpOiBOZXcuCgkobWlwc19lbGZfc2VjdGlvbl9kYXRhKTogRGVmaW5lLiAgVXNlIHRocm91Z2hvdXQuCgkoX2JmZF9taXBzX2VsZl9uZXdfc2VjdGlvbl9ob29rKTogTmV3IGZ1bmN0aW9uLgoJKG1pcHNfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IERvbid0IGFsbG9jIHVzZWRfYnlfYmZkLgoJKiBlbGZ4eC1taXBzLmggKF9iZmRfbWlwc19lbGZfbmV3X3NlY3Rpb25faG9vayk6IERlY2xhcmUuCgkqIGVsZnh4LXRhcmdldC5oIChiZmRfZWxmTk5fbmV3X3NlY3Rpb25faG9vayk6IEFkZCAjaWZuZGVmLgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wMS0yMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKEFMUEhBX0VMRl9MSU5LX0hBU0hfUExUX0xPQyk6IE5ldy4KCShzdHJ1Y3QgYWxwaGFfZWxmX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCBwbHRfb2xkX3NlY3Rpb24sIHBsdF9vbGRfdmFsdWUuCgkoZWxmNjRfYWxwaGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogU2V0IHRoZW0uCgkoZWxmNjRfYWxwaGFfc2l6ZV9wbHRfc2VjdGlvbl8xKTogUmVzZXQgdGhlbSB3aGVuIHBsdCBlbnRyeSByZW1vdmVkLgoJKGVsZjY0X2FscGhhX3JlbGF4X3Rsc19nZXRfYWRkcik6IEhhbmRsZSBMRE0gcmVsb2NzLiAgRnJvYiB0aGUKCXN5bWJvbCBpbmRleCB3aGVuIHJlbGF4aW5nIExETSB0byBUUFJFTC4KCShlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuICBBbGxvdyByZWxheGF0aW9uIG9mIEdECglyZWxvY3MsIGV2ZW4gaWYgdGhlIHRhcmdldCBpc24ndCBsb2NhbGx5IGRlZmluZWQuCgkoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogRnJvYiBMRE0gcmVsb2Mgc3ltbmR4IHRvIHplcm8uCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLiAgRm9yY2UgVFAtcmVsYXRpdmUKCXJlbG9jcyB2cyBzeW1uZHggMCB0byB0aGUgdHAgYmFzZS4KCjIwMDMtMDEtMjEgIEZhYmlvIEFsZW1hZ25hICA8ZmFsZW1hZ25AYXJvcy5vcmc+CgoJKiBjb25maWcuYmZkOiBIYW5kbGUgaVszNDU2XTg2LSotYXJvcyouCgoyMDAzLTAxLTIxICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmMzItcHBjLmMgKHN0cnVjdCBwcGNfZWxmX2R5bl9yZWxvY3MpOiBEZWZpbmUuCgkoc3RydWN0IHBwY19lbGZfbGlua19oYXNoX2VudHJ5KTogRGVmaW5lLgoJKHBwY19lbGZfaGFzaF9lbnRyeSk6IE5ldyBmdW5jdGlvbi4KCShzdHJ1Y3QgcHBjX2VsZl9saW5rX2hhc2hfdGFibGUpOiBEZWZpbmUuCgkocHBjX2VsZl9oYXNoX3RhYmxlKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTmV3IGZ1bmN0aW9uLgoJKHJlYWRvbmx5X2R5bnJlbG9jcyk6IE5ldyBmdW5jdGlvbi4KCShwcGNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFsbG9jYXRlIHNwYWNlIGZvciBkeW5hbWljCglyZWxvY3MgYW5kIGRldGVybWluZSBEVF9URVhUUkVMLgoJKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogRG9uJ3QgZG8gdGhhdCBoZXJlLCBqdXN0IGNvdW50IHRoZQoJZHluYW1pYyByZWxvY3MuCgkocHBjX2VsZl9nY19zd2VlcF9ob29rKTogRGlzY2FyZCBhbnkgZHluYW1pYyByZWxvY3MgYWdhaW5zdCB0aGUKCXJlbW92ZWQgc2VjdGlvbi4KCShiZmRfZWxmMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEZWZpbmUuCgoyMDAzLTAxLTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZHluYW1pY19lbnRyaWVzX2Zvcl9yZWxvYyk6IEdPVFRQUkVMIGFuZAoJVFBSRUwgYWxzbyBnZXQgYSByZWxvYyBpZiBzaGFyZWQuICBSZW1vdmUgU1JFTCBzdXBwb3J0LgoJKGVsZjY0X2FscGhhX2VtaXRfZHlucmVsKTogTmV3LgoJKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgaXQuICBSZXNvbHZlIGR5bmFtaWMgVFBSRUwKCWFuZCBHT1RUUFJFTCByZWxvY3MgdG8gbG9jYWwgc3ltYm9scyBhZ2FpbnN0IHRoZSB0cCBiYXNlLgoJKGVsZjY0X2FscGhhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFVzZSBlbGY2NF9hbHBoYV9lbWl0X2R5bnJlbC4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbGF4X2dvdF9sb2FkKTogRGVjcmVtZW50IGdvdAoJdXNlIGNvdW50IGJlZm9yZSBjbG9iYmVyaW5nIHJfdHlwZS4KCShlbGY2NF9hbHBoYV9yZWxheF90bHNfZ2V0X2FkZHIpOiBEb24ndCB1c2UgcG9zWzFdIGlmIGluc24KCW9yZGVyaW5nIHdvdWxkIG1lYW4gZGF0YWZsb3cgaW5zcGVjdGlvbiBpcyBuZWNlc3NhcnkuCgoyMDAzLTAxLTIwICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9mbGFncyk6IEFkZGVkIGdldC9zZXQgYXJjaCBob29rcy4KCjIwMDMtMDEtMjAgIEZhYmlvIEFsZW1hZ25hICA8ZmFsZW1hZ25AYXJvcy5vcmc+CgoJKiBlbGYzMi1zaC5jOiBUcmVhdCBlbGZOTl9iZWQgbGlrZSBvdGhlciBtYWNyb3MgZGVmaW5lZCBpbgoJICBlbGZ4eC10YXJnZXQuaCBhbmQgI3VuZGVmIGl0IGJlZm9yZSAjZGVmaW5lJ2luZyBpdC4KCSogZWxmMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYzogTGlrZXdpc2UuCgoyMDAzLTAxLTIwICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX2FkanVzdF9nb3RwbHQpOiBOZXcgcHJvdG90eXBlLgoJKGVsZl9ob3d0b190YWJsZSk6IFJlbmFtZSBSXzM5MF9HT1RPRkYgdG8gUl8zOTBfR09UT0ZGMzIuIEFkZAoJUl8zOTBfR09UT0ZGMTYsIFJfMzkwX0dPVE9GRjY0LCBSXzM5MF9HT1RQTFQxMiwgUl8zOTBfR09UUExUMTYsCglSXzM5MF9HT1RQTFQzMiwgUl8zOTBfR09UUExUNjQsIFJfMzkwX0dPVFBMVEVOVCwgUl8zOTBfUExUT0ZGMTYsCglSXzM5MF9QTFRPRkYzMiBhbmQgUl8zOTBfUExUT0ZGNjQuCgkoZWxmX3MzOTBfcmVsb2NfdHlwZV9sb29rdXApOiBMaWtld2lzZS4KCShzdHJ1Y3QgZWxmX3MzOTBfbGlua19oYXNoX2VudHJ5KTogQWRkIGdvdHBsdF9yZWZjb3VudCB0byBrZWVwIHRyYWNrCglvZiBHT1RQTFQgcmVmZXJlbmNlcyB0byBhIGZ1bmN0aW9uLgoJKGxpbmtfaGFzaF9uZXdmdW5jKTogSW5pdGlhbGl6ZSBnb3RwbHRfcmVmY291bnQuCgkoZWxmX3MzOTBfY2hlY2tfcmVsb2NzKTogTW92ZSBhbGxvY2F0aW9uIG9mIGxvY2FsX2dvdF9yZWZjb3VudHMgYXJyYXkKCWFuZCBjcmVhdGlvbiBvZiB0aGUgZ290IHNlY3Rpb24gb3V0IG9mIHRoZSBtYWluIHN3aXRjaC4gQWRkIHN1cHBvcnQKCWZvciB0aGUgZ290b2ZmLCBnb3RwbHQgYW5kIHBsdG9mZiByZWxvY2F0aW9ucy4KCShlbGZfczM5MF9nY19zd2VlcF9ob29rKTogQWRkIHJlZmVyZW5jZSBjb3VudGluZyBmb3IgZ290b2ZmLCBnb3RwbHQKCWFuZCBwbHRvZmYuCgkoZWxmX3MzOTBfYWRqdXN0X2dvdHBsdCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfczM5MF9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBBZGp1c3QgZ290cGx0IHJlZmNvdW50IGZvciByZW1vdmVkCglwbHQgZW50cmllcy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBBZGQgY29tbWVudC4KCShlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogQ2hhbmdlIHJfdHlwZSB0byB1bnNpZ25lZC4gQWRkIHN1cHBvcnQKCWZvciBnb3RvZmYsIGdvdHBsdCBhbmQgcGx0b2ZmIHJlbG9jYXRpb25zLgoJKiBlbGY2NC1zMzkwLmM6IFNhbWUgY2hhbmdlcyBhcyBmb3IgZWxmMzItczM5MC5jLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogcmVsb2MuYzogQWRkIEJGRF9SRUxPQ18zOTBfR09UT0ZGNjQsIEJGRF9SRUxPQ18zOTBfR09UUExUMTIsCglCRkRfUkVMT0NfMzkwX0dPVFBMVDE2LCBCRkRfUkVMT0NfMzkwX0dPVFBMVDMyLCBCRkRfUkVMT0NfMzkwX0dPVFBMVDY0LAoJQkZEX1JFTE9DXzM5MF9HT1RQTFRFTlQsIEJGRF9SRUxPQ18zOTBfUExUT0ZGMTYsIEJGRF9SRUxPQ18zOTBfUExUT0ZGMzIKCWFuZCBCRkRfUkVMT0NfMzkwX1BMVE9GRjY0LgoKMjAwMy0wMS0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZQoJUl9JQTY0X1RQUkVMNjRbTE1dU0IgYWdhaW5zdCBub24tZ2xvYmFsIHN5bWJvbCBwcm9wZXJseS4KCjIwMDMtMDEtMTYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChzdHJ1Y3QgZWxmTk5faWE2NF9saW5rX2hhc2hfdGFibGUpOiBBZGQKCXNlbGZfZHRwbW9kX2RvbmUgYW5kIHNlbGZfZHRwbW9kX29mZnNldC4KCShhbGxvY2F0ZV9nbG9iYWxfZGF0YV9nb3QpOiBPbmx5IHVzZSBvbmUgZ290IGVudHJ5IGZvciBhbGwKCWR0cG1vZCByZWxvY3MgYWdhaW5zdCBsb2NhbCBzeW1ib2xzLgoJKGFsbG9jYXRlX2R5bnJlbF9lbnRyaWVzKTogT25seSBuZWVkIC5yZWxhLmdvdCBlbnRyeSBmb3IKCWR0cG1vZCBhZ2FpbnN0IGdsb2JhbCBzeW1ib2wuCgkoZWxmTk5faWE2NF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBJbml0aWFsaXplIHNlbGZfZHRwbW9kX29mZnNldC4KCVJlc2VydmUgc3BhY2UgaW4gLnJlbGEuZ290IGZvciB0aGUgbG9jYWwgZHRwbW9kIGVudHJ5LgoJKHNldF9nb3RfZW50cnkpOiBJbml0aWFsaXplIHRoZSBjb21tb24gbG9jYWwgZHRwbW9kIC5nb3QgZW50cnkuCgkoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIFJfSUFfNjRfRFRQUkVMNjRMU0IKCWFuZCBSX0lBXzY0X0RUUFJFTDY0TVNCLgoKMjAwMy0wMS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jOiBJbmNsdWRlIGVsZi9wcGM2NC5oIHJhdGhlciB0aGFuIGVsZi9wcGMuaC4KCShSX1BQQ18qKTogUmVuYW1lIGFsbCBvY2N1cnJlbmNlcyB0byBSX1BQQzY0XyouCgkoUl9QUEM2NF9BRERSMzApOiBSZW5hbWUgYWxsIG9jY3VycmVuY2VzIHRvIFJfUFBDNjRfUkVMMzAuCgkoZW51bSBlbGZfcHBjX3JlbG9jX3R5cGUpOiBEaXR0byB0byBlbnVtIGVsZl9wcGM2NF9yZWxvY190eXBlLgoJKHBwYzY0X2VsZl9nY19zd2VlcF9ob29rKTogSGFuZGxlIFJfUFBDNjRfUkVMMzAgYWxvbmcgd2l0aCBvdGhlcgoJcmVsYXRpdmUgcmVsb2NzLCBub3Qgd2l0aCBhYnNvbHV0ZSBvbmVzLgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTAxLTE1ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogRG9uJ3Qgc2V0IERGX1RFWFRSRUwgZm9yIGEKCXJlbG9jYXRpb24gYWdhaW5zdCBhIG5vbi1hbGxvY2F0ZWQgcmVhZG9ubHkgc2VjdGlvbi4KCjIwMDMtMDEtMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQWRqdXN0IGFkZGVuZCBmb3IgR09UMTZfSEEuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLiAgUExUR09UMTZfSEEgdG9vLgoKMjAwMi0wMS0wOCAgS2xlZSBEaWVuZXMgIDxrZGllbmVzQGFwcGxlLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfTUFDSElORVMpOiBVc2UgY3B1LW1zcDQzMC5sbywgbm90IGNwdS1tc3A0MzAuYy4KCShCRkQzMl9CQUNLRU5EUyk6IFVzZSBlbGYzMi1tc3A0MzAubG8sIG5vdCBlbGYzMi1tc3A0MzAuYy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTAxLTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZm4zMi1taXBzLmMgKHByZXZfcmVsb2Nfc2VjdGlvbik6IE5ldy4KCShHRVRfUkVMT0NfQURERU5EKTogVXNlIGl0LiAgUGFyZW50aGVzaXplIG1hY3JvIGFyZ3VtZW50cy4KCShTRVRfUkVMT0NfQURERU5EKTogUGFyZW50aGVzaXplIG1hY3JvIGFyZ3VtZW50LgoKMjAwMy0wMS0wNyAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMuZ2MuY2E+CgoJKiBlbGYzMi1ocHBhLmMgKGZpbmFsX2xpbmtfcmVsb2NhdGUpOiBGb3IgYWxsIERQIHJlbGF0aXZlIHJlbG9jYXRpb25zLAoJYWRqdXN0IGFkZGlsIGluc3RydWN0aW9ucyBpZiB0aGUgc3ltYm9sIGhhcyBubyBzZWN0aW9uLgoKMjAwMy0wMS0wNyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9ob3d0b190YWJsZSk6IE1ha2UgUkVMXzEyIG5vdAoJcGFydGlhbF9pbnBsYWNlLgoKMjAwMy0wMS0wNyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfY2hlY2tfcmVsb2NzKTogRG9uJ3Qgc2V0IERGX1RFWFRSRUwgZm9yCglQQyByZWxhdGl2ZSByZWxvY2F0aW9ucy4KCShlbGZfbTY4a19kaXNjYXJkX2NvcGllcyk6IFNldCBpdCBoZXJlIGluc3RlYWQuCgoyMDAyLTAxLTAyICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCSAgICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfTUFDSElORVMpOiBBZGQgY3B1LWlxMjAwMC5sby4KCShBTExfTUFDSElORVNfQ0ZJTEVTKTogQWRkIGNwdS1pcTIwMDAuYy4KCShCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1pcTIwMDAubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLWlxMjAwMC5jLgoJKGNwdS1pcTIwMDAubG8pOiBOZXcgdGFyZ2V0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZDogSGFuZGxlIGlxMjAwMC0qLWVsZi4KCSogYXJjaHVyZXMuYyAoYmZkX2FyY2hpdGVjdHVyZSk6IEFkZCBiZmRfe2FyY2gsbWFjaH1faXEyMDAwLgoJKGJmZF9hcmNodXJlc19saXN0KTogQWRkIGJmZF9pcTIwMDBfYXJjaC4KCSogY29uZmlndXJlLmluOiBIYW5kbGUgYmZkX2VsZjMyX2lxMjAwMF92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcmVsb2MuYzogQWRkIEJGRF9SRUxPQ19JUTIwMDBfT0ZGU0VUXzE2LCBCRkRfUkVMT0NfSVEyMDAwX09GRlNFVF8yMSwKCWFuZCBCRkRfUkVMT0NfSVEyMDAwX1VISTE2LgoJKiB0YXJnZXRzLmMgKGJmZF9lbGYzMl9pcTIwMDBfdmVjKTogRGVjbGFyZS4KCShiZmRfdGFyZ2V0X3ZlY3Rvcik6IEFkZCBiZmRfZWxmMzJfaXEyMDAwX3ZlYy4KCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IFNldCBlX21hY2hpbmUgdG8gRU1fSVEyMDAwLgoJKiBjcHUtaXEyMDAwLmM6IE5ldyBmaWxlLgoJKiBlbGYzMi1pcTIwMDAuYzogTGlrZXdpc2UuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IExpa2V3aXNlLgoKMjAwMy0wMS0wMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jOiBJbmNsdWRlIGxpYmliZXJ0eS5oLgoJKGVsZl9taXBzX2lzYSwgX2JmZF9taXBzX2VsZl9tYWNoX2V4dGVuZHNfcCk6IFJlbW92ZS4KCShtaXBzX3NldF9pc2FfZmxhZ3MpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tLi4uCgkoX2JmZF9taXBzX2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogLi4uaGVyZS4gIE9ubHkgY2FsbAoJbWlwc19zZXRfaXNhX2ZsYWdzIGlmIHRoZSBFRl9NSVBTX01BQ0ggYml0cyBhcmUgY2xlYXIuCgkobWlwc19tYWNoX2V4dGVuc2lvbnMpOiBOZXcgYXJyYXkuCgkobWlwc18zMmJpdF9mbGFnc19wKTogTmV3IGZ1bmN0aW9uLgoJKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IFJld29yayBhcmNoaXRlY3R1cmUgY2hlY2tzLgoJVXNlIG1pcHNfMzJiaXRfZmxhZ3NfcCB0byBjaGVjayBpZiBvbmUgYmluYXJ5IGlzIDMyLWJpdCBhbmQgdGhlCglvdGhlciBpcyA2NC1iaXQuICBXaGVuIGFkb3B0aW5nIElCRkQncyBhcmNoaXRlY3R1cmUsIGFkb3B0IHRoZQoJYmZkX21hY2ggYXMgd2VsbCBhcyB0aGUgZmxhZ3MuCgoyMDAzLTAxLTAyICBOaWNrIEtlbHNleSAgPG5pY2trQHViaWNvbS5jb20+CgoJKiBlbGYzMi1pcDJrLmM6IFJlLXdvcmsgb2YgbGlua2VyIHJlbGF4YXRpb24gY29kZSBmb3IgdGhlIGlwMmsgdG8KCWZpeCBpbnRlcm5hbCBlcnJvcnMsIGZpeCBiYWQgY29kZSBnZW5lcmF0aW9uLCBmaXggaW5jb3JyZWN0IHN0YWJzCglpbmZvcm1hdGlvbiwgYW5kIGltcHJvdmUgYWJpbGl0eSB0byBlbGltaW5hdGUgcmVkdW5kYW50IHBhZ2UKCWluc3RydWN0aW9ucy4gQWRkZWQgY29kZSB0byBpcDJrX2ZpbmFsX2xpbmtfcmVsb2NhdGUgdG8gc2VsZi12ZXJpZnkKCXRoZSBsaW5rZXIgcmVsYXhhdGlvbi4gIEZpeCBmb3JtYXR0aW5nIHByb2JsZW1zLgoKMjAwMi0xMi0zMCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGFvdXR4LmggKE5BTUUoYW91dCxtYWNoaW5lX3R5cGUpKTogQWRkIGJmZF9tYWNoX21pcHNpc2EzMnIyIGNhc2UuCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX21pcHNpc2EzMnIyKTogTmV3IGRlZmluZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtbWlwcy5jIChJX21pcHNpc2EzMnIyKTogTmV3IGVudW0gdmFsdWUuCgkoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZCBlbnRyeSBmb3IgSV9taXBzaXNhMzJyMi4KCSogZWxmeHgtbWlwcy5jIChlbGZfbWlwc19pc2EsIF9iZmRfZWxmX21pcHNfbWFjaCkKCShfYmZkX21pcHNfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBIYW5kbGUgRV9NSVBTX0FSQ0hfMzJSMi4KCShfYmZkX21pcHNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBBZGQKCWJmZF9tYWNoX21pcHNpc2EzMnIyIGNhc2UuCgkoX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogSGFuZGxlIG1lcmdpbmcgb2YKCWJpbmFyaWVzIG1hcmtlZCBhcyB1c2luZyBNSVBTMzIgUmVsZWFzZSAyLgoKMjAwMi0xMi0zMCAgICBEbWl0cnkgRGlreSA8ZGl3aWxAbWFpbC5ydT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgbXNwNDMwIHRhcmdldC4KCSogY29uZmlndXJlLmluOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogYXJjaHVyZXMuYzogQWRkIG1zcDQzMCBhcmNoaXRlY3R1cmUgdmVjdG9yLgoJKiBjb25maWcuYmZkOiBMaWtld2lzZS4KCSogcmVsb2MuYzogQWRkIG1zcDQzMCByZWxvY3MuCgkqIHRhcmdldHMuYzogQWRkIG1zcDMyMCB0YXJnZXQuCgkqIGNwdS1tc3A0MzAuYzogTmV3IGZpbGU6IG1zcDQzMCBjcHUgZGV0ZWN0aW9uLgoJKiBlbGYzMi1tc3A0MzAuYzogTmV3IGZpbGU6IG1zcDQzMCByZWxvYyBwcm9jZXNzaW5nLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoKMjAwMi0xMi0yOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoZWxmX3NvcnRfc2VjdGlvbnMpOiBEb24ndCByZW9yZGVyIC50YnNzLgoJKGFzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3Jfc2VnbWVudHMpOiBPbmx5IGFkanVzdCBvZmYvdm9mZgoJZm9yIGluY3JlYXNlZCBhbGlnbm1lbnQgaW4gUFRfTE9BRCBvciBQVF9OT1RFIHNlZ21lbnQsCglidXQgYWRqdXN0IHBfZmlsZXN6IGZvciAudGJzcyB0b28uICBpbiBQVF9MT0FEIGNvbnNpZGVyCgkudGJzcyB0byBoYXZlIHplcm8gbWVtb3J5IHNpemUuCgkoY29weV9wcml2YXRlX2JmZF9kYXRhKSBbU0VDVElPTl9TSVpFXTogRGVmaW5lLgoJW0lTX0NPTlRBSU5FRF9CWV9WTUEsIElTX0NPTlRBSU5FRF9CWV9MTUFdOiBVc2UgaXQuCglbSU5DTFVERV9TRUNUSU9OX0lOX1NFR01FTlRdOiBPbmx5IHB1dCBTSEZfVExTIHNlY3Rpb25zCglpbnRvIFBUX1RMUyBzZWdtZW50LiAgTmV2ZXIgcHV0IFNIRl9UTFMgc2VjdGlvbnMgaW4KCXNlZ21lbnRzIG90aGVyIHRoYW4gUFRfVExTIG9yIFBUX0xPQUQuCgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IENsZWFyIC5wbHQKCXNoX2VudHNpemUuCgoyMDAyLTEyLTIzICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9wcGNfcmVsb2NhdGVfc2VjdGlvbik6IEZpeCBsb2dpYyByZXZlcnNhbC4KCjIwMDItMTItMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBIZWVkIHN0cmlwX2Rpc2NhcmRlZC4KCjIwMDItMTItMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfYXJjaF9nZXRfY29tcGF0aWJsZSk6IEFkZCB0aGlyZCBwYXJhbWV0ZXIKCSdhY2NlcHRfdW5rbm93bnMnLiAgT25seSBhY2NlcHQgdW5rbm93biBmb3JtYXQgQkZEcyBpZgoJYWNjZXB0X3Vua25vd25zIGlzIHRydWUsIG9yIGlmIHRoZSBmb3JtYXQgaXMgImJpbmFyeSIuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMTItMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb2ZmLWFybS5jIChjb2ZmX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogRGlzYWJsZSBXSU5DRSB3b3JrYXJvdW5kCgl0aGF0IHN1YnRyYWN0ZWQgOCBmcm9tIHBjIHJlbGF0aXZlIHJlbG9jYXRpb25zLgoKMjAwMi0xMi0yMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvZmYtaDgzMDAuYzogRml4IGNvbW1lbnQgdHlwb3MuCgkqIGNvZmZjb2RlLmg6IExpa2V3aXNlLgoJKiBjcHUtY3Jpcy5jOiBMaWtld2lzZS4KCSogZWxmMzItdmF4LmM6IExpa2V3aXNlLgoJKiBnZW5saW5rLmg6IExpa2V3aXNlLgoJKiBsaW5rZXIuYzogTGlrZXdpc2UuCgkqIHNvbS5jOiBMaWtld2lzZS4KCSogdGVraGV4LmM6IExpa2V3aXNlLgoJKiB2bXMtbWlzYy5jOiBMaWtld2lzZS4KCjIwMDItMTItMjAgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogcmVsb2MuYzogQWRkIEJGRF9SRUxPQ19YU1RPUk1ZMTZfMTIuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX2hvd3RvKTogQWRkIFJfWFNUT1JNWTE2XzEyLgoJKHhzdG9ybXkxNl9yZWxvY19tYXApOiBBZGQgUl9YU1RPUk1ZMTZfMTIuCgoyMDAyLTEyLTE5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZG9jL2JmZGludC50ZXhpOiBGaXggdHlwb3MuCgoyMDAyLTEyLTIwICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCglQb3J0IHRvIFBPU0lYIDEwMDMuMS0yMDAxLgoJKiBhY2luY2x1ZGUubTQgKEFNX0lOU1RBTExfTElCQkZEKTogRG8gbm90IHJlbHkgb24gInRlc3QgLW8iLgoJKiBjb25maWd1cmUuaW4gKGJ1aWxkLXdhcm5pbmdzKTogTGlrZXdpc2UuCgkoSG9ycmlibGUgaGFja3MgdG8gYnVpbGQgRExMcyBvbiBXaW5kb3dzKTogRG8gbm90IHJlbHkgb24gInRhaWwgLTEiLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMTItMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmLWg4MzAwLmM6IEluY2x1ZGUgbGliaWJlcnR5LmguCgkoaDgzMDBfcmVsb2MxNl9leHRyYV9jYXNlcyk6IENoZWNrIHRoZSBoYXNoIHRhYmxlIGNyZWF0b3IgYmVmb3JlCglyZWZlcmVuY2luZyBoODMwMCBzcGVjaWZpYyBmaWVsZHMuICBTdGFzaCB0aGUgaGFzaCB0YWJsZSBwb2ludGVyCglpbiBhIGxvY2FsIHZhci4gIENvbW1lbnQgdHlwbyBmaXhlcy4KCShoODMwMF9iZmRfbGlua19hZGRfc3ltYm9scyk6IExpa2V3aXNlLgoKCSogcmVsb2MuYyAoc3RydWN0IHJlbG9jX2hvd3RvX3N0cnVjdCk6IFJldmlzZSBzcmNfbWFzayBhbmQKCWRzdF9tYXNrIGNvbW1lbnRzLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTEyLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJlb3JnYW5pemUgZHluYW1pYyByZWxvYwoJY29kZSBhIGxpdHRsZS4gIENvbW1lbnQgb24gZHluYW1pYyByZWxvY3MgYWdhaW5zdCBzZWN0aW9uIHN5bWJvbHMuCgoyMDAyLTEyLTE3ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGNvbmZpZ3VyZS5ob3N0IChpYTY0LSotaHB1eCopOiBTdXBwb3J0IDY0IGJpdCB0YXJnZXRzIHVzaW5nCgl0aGUgSFAgY29tcGlsZXIncyAibG9uZyBsb25nIi4KCjIwMDItMTItMTYgIEFuZHJldyBNYWNMZW9kICA8YW1hY2xlb2RAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX2hvd3RvKTogQWRkIFJfWFNUT1JNWTE2X0xPMTYKCWFuZCBSX1hTVE9STVkxNl9ISTE2KSBob3d0byBlbnRyaWVzLgoJKHhzdG9ybXkxNl9yZWxvY19tYXApOiBNYXAgUl9YU1RPUk1ZMTZfe0xPLEhJfTE2IHRvIEJGRF9SRUxPQ197TE8sSEl9MTYuCgkoeHN0b3JteTE2X2luZm9fdG9faG93dG9fcmVsYSk6IFVzZSBSX1hTVE9STVkxNl9HTlVfVlRJTkhFUklUIHRvCglkZXRlcm1pbmUgdGhlIHN0YXJ0IG9mIHRoZSBzZWNvbmQgcmVsb2MgdGFibGUuCgoyMDAyLTEyLTE2ICBOYXRoYW4gVGFsbGVudCAgPGVyYXh4b25AYWx1bW5pLnJpY2UuZWR1PgoKCSogZWNvZmZsaW5rLmM6IEZpeCB0aGUgcmVhZGluZyBvZiB0aGUgZGVidWdnaW5nIGluZm9ybWF0aW9uCglvZiBUcnU2NC9BbHBoYSBiaW5hcmllcyB0aGF0IGFyZSBwcm9kdWNlZCBieSByZWNlbnQgQ29tcGFxCgljb21waWxlcnMuCgkobWtfZmRydGFiKTogRml4IGVycm9yIGluIGNyZWF0aW5nIHRoZSBGRFIgKGZpbGUgZGVzY3JpcHRvcikKCXRhYmxlLgoJKGxvb2t1cF9saW5lKTogQmVjYXVzZSBvZiB0aGUgc3RyYW5nZSBpbmZvcm1hdGlvbiBzb21ldGltZXMKCWdlbmVyYXRlZCBieSBDb21wYXEncyByZWNlbnQgY29tcGlsZXJzLCBjaGFuZ2UgaG93IHRoZSBGRFIKCXRhYmxlIGlzIHNlYXJjaGVkIHNvIHRoYXQgUERScyAocHJvY2VkdXJlIGRlc2NyaXB0b3JzKSBhcmUKCWNvcnJlY3RseSBmb3VuZC4gIE5vdGUgdGhhdCB0aGlzIGNoYW5nZSBpcyByZWFsbHkgbW9yZSBvZiBhIGhhY2s7Cglob3dldmVyLCBJIGhhdmUgaW5jbHVkZWQgZXh0ZW5zaXZlIGRvY3VtZW50YXRpb24gYXMgdG8gd2h5Cgl0aGlzIGlzIHRoZSBiZXN0IHNvbHV0aW9uIHNob3J0IG9mIGFuIGV4dGVuc2l2ZSByZXdyaXRlIG9yCglhbm90aGVyIGhhY2suCgkoZmRydGFiX2xvb2t1cCk6IEFkZCBjb21tZW50cyB0byBleHBsYWluIHRoZSBhbGdvcml0aG0uCgoyMDAyLTEyLTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZi1tMTAzMDAuYyAoZWxmMzJfbW4xMDMwMF9saW5rX2hhc2hfbmV3ZnVuYyk6IFJlb3JkZXIKCWluaXRpYWxpemVycyB0byBtYXRjaCBzdHJ1Y3QgZGVjbGFyYXRpb24uCgoyMDAyLTEyLTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZHdhcmYyLmMgKGNvbXBfdW5pdF9jb250YWluc19hZGRyZXNzKTogQ29tbWVudCB0eXBvIGZpeC4KCSogZWxmLmMgKGdldF9wcm9ncmFtX2hlYWRlcl9zaXplKTogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfbG8xNl9yZWxvYyk6IExpa2V3aXNlLgoJKG0zMnJfZWxmX2dlbmVyaWNfcmVsb2MpOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfaG93dG9faW5pdCk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogTGlrZXdpc2UuCgoyMDAyLTEyLTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IEFkZCBvdXRwdXRfb2Zmc2V0Cgl0byBEVF9KTVBSRUwuICBVc2Ugc3JlbHBsdCBpbnB1dCBzZWN0aW9uIHNpemUgZm9yIERUX1BMVFJFTFNaIGFuZAoJRFRfUkVMU1ogYWRqdXN0bWVudCwgbm90IG91dHB1dCBzZWN0aW9uLiAgQXZvaWQgd3JpdGluZyB0YWdzIHdoZW4KCXVuY2hhbmdlZC4gIERvbid0IGFzc3VtZSBsaW5rZXIgc2NyaXB0IGlzIHNhbmUsIGFkanVzdCBEVF9SRUwgdG9vLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBKdXN0IHVzZSByYXcKCXNpemUgb2Ygc3JlbHBsdCBmb3IgRFRfUExUUkVMU1ouICBVc2Ugc3JlbHBsdCBpbnB1dCBzZWN0aW9uIHNpemUgZm9yCglEVF9SRUxBU1ogYWRqdXN0bWVudCwgbm90IG91dHB1dCBzZWN0aW9uLiAgQXZvaWQgd3JpdGluZyB0YWdzIHdoZW4KCXVuY2hhbmdlZC4gIEFkanVzdCBEVF9SRUxBLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogVHdlYWtzIGZvciBiZXR0ZXIKCWZvcm1hdHRpbmcuICBBdm9pZCB3cml0aW5nIHRhZ3Mgd2hlbiB1bmNoYW5nZWQuICBBZGp1c3QgRFRfUkVMQS4KCjIwMDItMTItMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IERvbid0IGRpdmlkZQoJYWRkZW5kIGJ5IDQuCgoyMDAyLTEyLTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoc3RydWN0IG1pcHNfZ290X2VudHJ5KTogTmV3LgoJKHN0cnVjdCBtaXBzX2dvdF9pbmZvKTogQWRkZWQgZ290X2VudHJpZXMgZmllbGQuCgkobWlwc19lbGZfZ290X2VudHJ5X2hhc2gsIG1pcHNfZWxmX2dvdF9lbnRyeV9lcSk6IE5ldyBmdW5jdGlvbnMuCgkobWlwc19lbGZfbG9jYWxfZ290X2luZGV4LCBtaXBzX2VsZl9nb3RfcGFnZSwKCW1pcHNfZWxmX2dvdDE2X2VudHJ5KTogUmUtaW1wbGVtZW50IGluIHRlcm1zIG9mIG5ldy4uLgoJKG1pcHNfZWxmX2NyZWF0ZV9sb2NhbF9nb3RfZW50cnkpOiBSZXdyaXRlIHRvIHVzZSBnb3RfZW50cmllcy4KCUNoYW5nZSByZXR1cm4gdHlwZS4KCShtaXBzX2VsZl9oaWdoZXN0KTogV2FybmluZyBjbGVhbi11cC4KCShtaXBzX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24pOiBJbml0aWFsaXplIGdvdF9lbnRyaWVzLgoJKF9iZmRfbWlwc19lbGZfY2hlY2tfcmVsb2NzKTogVXNlIGdvdF9lbnRyaWVzIHRvIGVzdGltYXRlCglsb2NhbCBnb3Qgc2l6ZS4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvIG5vdCBhY2NvdW50IGZvcgoJR09UX1BBR0UgZW50cmllcywgc2luY2Ugd2Ugbm93IHJldXNlIEdPVDE2IGVudHJpZXMuCgoyMDAyLTEyLTEwICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogYW91dHguaCAoc2V0X3NlY3Rpb25fY29udGVudHMpOiBBbGxvdyBhbiBvdGhlcndpc2UgdW5yZXByZXNlbnRhYmxlCglyZWFkLW9ubHkgc2VjdGlvbiB0aGF0IGxpZXMgYWZ0ZXIgLnRleHQgYW5kIGJlZm9yZSAuZGF0YSB0byBiZQoJd3JpdHRlbiBpbnRvIHRoZSBvdXRwdXQgZmlsZSBhbmQgaW5jbHVkZWQgaW4gYV90ZXh0LgoJKHRyYW5zbGF0ZV90b19uYXRpdmVfc3ltX2ZsYWdzKTogSWYgYW4gb3RoZXJ3aXNlIHVucmVwcmVzZW50YWJsZQoJc2VjdGlvbiB3YXMgbWVyZ2VkIHdpdGggLnRleHQsIGNvbnZlcnQgaXRzIHN5bWJvbHMgdG8gTl9URVhUCglzeW1ib2xzLgoJKiBsaWJhb3V0LmggKGFvdXRfc2VjdGlvbl9tZXJnZV93aXRoX3RleHRfcCk6IE5ldyBtYWNyby4KCjIwMDItMTItMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBiZmQtaW4uaDogQ29tbWVudCB0eXBvIGZpeC4gIEZvcm1hdHRpbmcuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSk6IFdhcm5pbmcgZml4LgoJKiBlbGYzMi1tNjhoYzEyLmMgKG02OGhjMTJfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBQcm90b3R5cGUuCgkqIGVsZjY0LW1taXguYyAobW1peF9kdW1wX2Jwb19ncmVncyk6IFdhcm5pbmcgZml4LgoKMjAwMi0xMi0wNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogSGFuZGxlIFBDUkVMMjFCSS4KCU9ubHkgc2VuZCBQQ1JFTDIxQiB0aG91Z2ggdGhlIHBsdC4gIEZpeCBpbnN0YWxsZWQgcmVsb2MgdHlwZS4KCShlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBHaXZlIGVycm9yIGZvciBkeW5hbWljIHJlbG9jCglhZ2FpbnN0IFBDUkVMMjIgb3IgUENSRUw2NEk7IGNsZWFuIHVwIGVycm9yIG1lc3NhZ2VzIGZvcgoJYnJhbmNoIHJlbG9jcy4KCjIwMDItMTItMDQgIEtldmluIEJ1ZXR0bmVyICA8a2V2aW5iQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1taXBzLmMgKGVsZjY0X21pcHNfZ3Jva19wcnN0YXR1cywgZWxmNjRfbWlwc19ncm9rX3BzaW5mbyk6CglOZXcgZnVuY3Rpb25zLgoJKGVsZl9iYWNrZW5kX2dyb2tfcHJzdGF0dXMsIGVsZl9iYWNrZW5kX2dyb2tfcHNpbmZvKTogRGVmaW5lLgoKMjAwMi0xMi0wNCAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBjcHUtaWE2NC1vcGMuYzogQWRkIG9wZXJhbmQgY29uc3RhbnQgImFyLmNzZCIuCgoyMDAyLTEyLTA0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZnh4LWlhNjQuYyAoZ2V0X2xvY2FsX3N5bV9oYXNoKTogVXNlIHNlY3Rpb24gSUQgaW5zdGVhZCBvZgoJQkZEIGFkZHJlc3Mgd2hlbiBjb25zdHJ1Y3RpbmcgbG9jYWwgbmFtZS4KCjIwMDItMTItMDQgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBlbGYzMi1tNjhrLmMgKHN0cnVjdCBlbGZfbTY4a19saW5rX2hhc2hfdGFibGUpOiBBZGQgc3ltX3NlYwoJbWVtYmVyLgoJKGVsZl9tNjhrX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0aWFsaXplIGl0LgoJKGVsZl9tNjhrX2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBzeW1ib2xzIHRoYXQgYXJlIGZvcmNlZCB0byBiZQoJbG9jYWwgZHVlIHRvIHZpc2liaWxpdHkgY2hhbmdlcy4KCShlbGZfbTY4a19hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfbTY4a19zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGZfbTY4a19kaXNjYXJkX2NvcGllcyk6IExpa2V3aXNlLgoJKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMTItMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2VkaXRfb3BkKTogQ29ycmVjdCB0eXBvLgoKMjAwMi0xMi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHNyZWMuYyAoc3JlY193cml0ZV9zeW1ib2xzKTogUmVzdG9yZSAnJCcgcHJlZml4IHRvIGFkZHJlc3MKCWFjY2lkZW50YWxseSByZW1vdmVkIGluIDIwMDItMDQtMDQgY2hhbmdlLgoJKHNyZWNfZ2V0X3N5bXRhYik6IFVzZSAwIGluc3RlYWQgb2YgYChsb25nKSBGQUxTRScuCgoyMDAyLTEyLTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzItcHBjLmMgKGFwdWluZm9fbGlzdF9pbml0KTogTmV3IGZ1bmN0aW9uLgoJKGFwdWluZm9fbGlzdF9hZGQpOiBOZXcgZnVuY3Rpb246IEFkZCBhIHZhbHVlIHRvIHRoZSBsaXN0LgoJKGFwdWluZm9fbGlzdF9sZW5ndGgpOiBOZXcgZnVuY3Rpb246IFJldHVybiB0aGUgbnVtYmVyIG9mCgl2YWx1ZXMgb24gdGhlIGxpc3QuCgkoYXB1aW5mb19saXN0X2VsZW1lbnQpOiBOZXcgZnVuY3Rpb246IFJldHVybiBhIHZhbHVlIG9uIHRoZQoJbGlzdC4KCShhcHVpbmZvX2xpc3RfZmluaXNoKTogTmV3IGZ1bmN0aW9uOiBGcmVlIHRoZSByZXNvdXJjZXMgdXNlZAoJYnkgdGhlIGxpc3QuCgkocHBjX2VsZl9iZWdpbl93cml0ZV9wcm9jZXNzaW5nKTogTmV3IGZ1bmN0aW9uLiAgU2NhbiB0aGUKCWlucHV0IGJmZHMgZm9yIGFwdWluZm8gc2VjdGlvbnMuCgkocHBjX2VsZl93cml0ZV9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uOiBEZWxheSB0aGUgY3JlYXRpb24gb2YKCXRoZSBjb250ZW50cyBvZiBhbiBhcHVpbmZvIHNlY3Rpb24gaW4gYW4gb3V0cHV0IGJmZC4KCShwcGNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBOZXcgZnVuY3Rpb24uICBDcmVhdGUgdGhlCgljb250ZW50cyBvZiBhbiBhcHVpbmZvIHNlY3Rpb24gaW4gYW4gb3V0cHV0IGJmZC4KCShlbGZfYmFja2VuZF9iZWdpbl93cml0ZV9wcm9jZXNzaW5nKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfd3JpdGVfc2VjdGlvbik6IERlZmluZS4KCjIwMDItMTItMDMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjcHUtaWE2NC1vcGMuYyAoZWxmNjRfaWE2NF9vcGVyYW5kcyk6IEFkZCBsZHhtb3YgZW50cnkuCgoyMDAyLTEyLTAxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCglGaXggUFIgc2F2YW5uYWgvMTQxNzoKCSogZWxmMzItbTY4aGMxMS5jIChtNjhoYzExX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBEb24ndCBhZGp1c3QKCWJyYW5jaCBpZiBpdCBnb2VzIHRvIHRoZSBzdGFydCBvZiB0aGUgZGVsZXRlZCByZWdpb24uCgoyMDAyLTEyLTAxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGJmZC1pbjIuaCAoYmZkX21hY2hfbTY4MTIpOiBSZWJ1aWxkLgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9tNjgxMl9kZWZhdWx0LCBiZmRfbWFjaF9tNjgxMiwKCWJmZF9tYWNoX202ODEycyk6IERlY2xhcmUuCgoJKiBlbGYzMi1tNjhoYzEyLmMgKG02OGhjMTJfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9tNjhoYzEyX2VsZl9zZXRfcHJpdmF0ZV9mbGFncyk6IENhbGwgaXQuCgkoX2JmZF9tNjhoYzEyX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogUmVwb3J0IHByb2Nlc3NvciB2ZXJzaW9uLgoJKF9iZmRfbTY4aGMxMl9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IE1lcmdlIHRoZSBmbGFncyBhbmQKCXJlcG9ydCBtaWNyb2NvbnRyb2xsZXIgaW5jb21wYXRpYmlsaXRpZXMgKEhDMTIgdnMgSENTMTIpLgoJKGVsZl9iYWNrZW5kX29iamVjdF9wKTogVXBkYXRlLgoKMjAwMi0xMS0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGJmZC1pbi5oIChUUlVFX0ZBTFNFX0FMUkVBRFlfREVGSU5FRCwgQkZEX1RSVUVfRkFMU0UpOiBEZWxldGUuCgkoZW51bSBiZmRfYm9vbGVhbiwgYm9vbGVhbik6IERlbGV0ZS4KCShiZmRfYm9vbGVhbik6IFR5cGVkZWYgdG8gYW4gaW50LgoJKEZBTFNFLCBUUlVFKTogRGVmaW5lLgoJKiBhaXgzODYtY29yZS5jLCBhaXg1cHBjLWNvcmUuYywgYW91dC1hZG9iZS5jLCBhb3V0LWFybS5jLCBhb3V0LWNyaXMuYywKCWFvdXQtZW5jYXAuYywgYW91dC1uczMyay5jLCBhb3V0LXRhcmdldC5oLCBhb3V0LXRpYzMwLmMsIGFvdXRmMS5oLAoJYW91dHguaCwgYXJjaGl2ZS5jLCBhcmNoaXZlNjQuYywgYXJjaHVyZXMuYywgYmZkLWluLmgsIGJmZC5jLCBiZmR3aW4uYywKCWJpbmFyeS5jLCBib3V0LmMsIGNhY2hlLmMsIGNpc2NvLWNvcmUuYywgY29mZi1hMjlrLmMsIGNvZmYtYWxwaGEuYywKCWNvZmYtYXBvbGxvLmMsIGNvZmYtYXJtLmMsIGNvZmYtYXV4LmMsIGNvZmYtaDgzMDAuYywgY29mZi1oODUwMC5jLAoJY29mZi1pMzg2LmMsIGNvZmYtaTg2MC5jLCBjb2ZmLWk5NjAuYywgY29mZi1pYTY0LmMsIGNvZmYtbTY4ay5jLAoJY29mZi1tODhrLmMsIGNvZmYtbWNvcmUuYywgY29mZi1taXBzLmMsIGNvZmYtb3IzMi5jLCBjb2ZmLXBwYy5jLAoJY29mZi1yczYwMDAuYywgY29mZi1zaC5jLCBjb2ZmLXNwYXJjLmMsIGNvZmYtc3RnbzMyLmMsIGNvZmYtdGljMzAuYywKCWNvZmYtdGljNHguYywgY29mZi10aWM1NHguYywgY29mZi10aWM4MC5jLCBjb2ZmLXc2NS5jLCBjb2ZmLXdlMzJrLmMsCgljb2ZmLXo4ay5jLCBjb2ZmNjQtcnM2MDAwLmMsIGNvZmZjb2RlLmgsIGNvZmZnZW4uYywgY29mZmxpbmsuYywKCWNvcmVmaWxlLmMsIGNwdS1hMjlrLmMsIGNwdS1hbHBoYS5jLCBjcHUtYXJjLmMsIGNwdS1hcm0uYywgY3B1LWF2ci5jLAoJY3B1LWNyaXMuYywgY3B1LWQxMHYuYywgY3B1LWQzMHYuYywgY3B1LWRseC5jLCBjcHUtZnIzMC5jLCBjcHUtZnJ2LmMsCgljcHUtaDgzMDAuYywgY3B1LWg4NTAwLmMsIGNwdS1ocHBhLmMsIGNwdS1pMzcwLmMsIGNwdS1pMzg2LmMsCgljcHUtaTg2MC5jLCBjcHUtaTk2MC5jLCBjcHUtaWE2NC5jLCBjcHUtaXAyay5jLCBjcHUtbTEwMjAwLmMsCgljcHUtbTEwMzAwLmMsIGNwdS1tMzJyLmMsIGNwdS1tNjhoYzExLmMsIGNwdS1tNjhoYzEyLmMsIGNwdS1tNjhrLmMsCgljcHUtbTg4ay5jLCBjcHUtbWNvcmUuYywgY3B1LW1pcHMuYywgY3B1LW1taXguYywgY3B1LW5zMzJrLmMsCgljcHUtb3BlbnJpc2MuYywgY3B1LW9yMzIuYywgY3B1LXBkcDExLmMsIGNwdS1wai5jLCBjcHUtcG93ZXJwYy5jLAoJY3B1LXJzNjAwMC5jLCBjcHUtczM5MC5jLCBjcHUtc2guYywgY3B1LXNwYXJjLmMsIGNwdS10aWMzMC5jLAoJY3B1LXRpYzR4LmMsIGNwdS10aWM1NHguYywgY3B1LXRpYzgwLmMsIGNwdS12ODUwLmMsIGNwdS12YXguYywKCWNwdS13NjUuYywgY3B1LXdlMzJrLmMsIGNwdS14c3Rvcm15MTYuYywgY3B1LXo4ay5jLCBkd2FyZjEuYywKCWR3YXJmMi5jLCBlY29mZi5jLCBlY29mZmxpbmsuYywgZWZpLWFwcC1pYTMyLmMsIGVmaS1hcHAtaWE2NC5jLAoJZWxmLWJmZC5oLCBlbGYtZWgtZnJhbWUuYywgZWxmLWhwcGEuaCwgZWxmLW0xMDIwMC5jLCBlbGYtbTEwMzAwLmMsCgllbGYtc3RydGFiLmMsIGVsZi5jLCBlbGYzMi1hcmMuYywgZWxmMzItYXJtLmgsIGVsZjMyLWF2ci5jLAoJZWxmMzItY3Jpcy5jLCBlbGYzMi1kMTB2LmMsIGVsZjMyLWQzMHYuYywgZWxmMzItZGx4LmMsIGVsZjMyLWZyMzAuYywKCWVsZjMyLWZydi5jLCBlbGYzMi1nZW4uYywgZWxmMzItaDgzMDAuYywgZWxmMzItaHBwYS5jLCBlbGYzMi1ocHBhLmgsCgllbGYzMi1pMzcwLmMsIGVsZjMyLWkzODYuYywgZWxmMzItaTg2MC5jLCBlbGYzMi1pOTYwLmMsIGVsZjMyLWlwMmsuYywKCWVsZjMyLW0zMnIuYywgZWxmMzItbTY4aGMxMS5jLCBlbGYzMi1tNjhoYzEyLmMsIGVsZjMyLW02OGsuYywKCWVsZjMyLW1jb3JlLmMsIGVsZjMyLW1pcHMuYywgZWxmMzItb3BlbnJpc2MuYywgZWxmMzItb3IzMi5jLAoJZWxmMzItcGouYywgZWxmMzItcHBjLmMsIGVsZjMyLXMzOTAuYywgZWxmMzItc2guYywgZWxmMzItc2g2NC1jb20uYywKCWVsZjMyLXNoNjQuYywgZWxmMzItc3BhcmMuYywgZWxmMzItdjg1MC5jLCBlbGYzMi12YXguYywKCWVsZjMyLXhzdG9ybXkxNi5jLCBlbGY2NC1hbHBoYS5jLCBlbGY2NC1nZW4uYywgZWxmNjQtaHBwYS5jLAoJZWxmNjQtbWlwcy5jLCBlbGY2NC1tbWl4LmMsIGVsZjY0LXBwYy5jLCBlbGY2NC1wcGMuaCwgZWxmNjQtczM5MC5jLAoJZWxmNjQtc2g2NC5jLCBlbGY2NC1zcGFyYy5jLCBlbGY2NC14ODYtNjQuYywgZWxmYXJtLW5hYmkuYywKCWVsZmFybS1vYWJpLmMsIGVsZmNvZGUuaCwgZWxmY29yZS5oLCBlbGZsaW5rLmMsIGVsZmxpbmsuaCwKCWVsZm4zMi1taXBzLmMsIGVsZnh4LWlhNjQuYywgZWxmeHgtbWlwcy5jLCBlbGZ4eC1taXBzLmgsCgllbGZ4eC10YXJnZXQuaCwgZm9ybWF0LmMsIGZyZWVic2QuaCwgZ2VubGluay5oLCBoYXNoLmMsIGhwMzAwaHB1eC5jLAoJaHBwYWJzZC1jb3JlLmMsIGhwdXgtY29yZS5jLCBpMzg2YW91dC5jLCBpMzg2bGludXguYywgaTM4Nmx5bnguYywKCWkzODZtYWNoMy5jLCBpMzg2bXNkb3MuYywgaTM4Nm9zOWsuYywgaWVlZS5jLCBpaGV4LmMsIGlyaXgtY29yZS5jLAoJbGliYW91dC5oLCBsaWJiZmQtaW4uaCwgbGliYmZkLmMsIGxpYmNvZmYtaW4uaCwgbGliZWNvZmYuaCwgbGliaWVlZS5oLAoJbGlibmxtLmgsIGxpYm9hc3lzLmgsIGxpYnBlaS5oLCBsaWJ4Y29mZi5oLCBsaW5rZXIuYywgbHlueC1jb3JlLmMsCgltNjhrbGludXguYywgbTY4a2x5bnguYywgbWFjaC1vLmMsIG1hY2gtby5oLCBtZXJnZS5jLCBtaXBzYnNkLmMsCgltbW8uYywgbmV0YnNkLWNvcmUuYywgbmV0YnNkLmgsIG5sbS5jLCBubG0zMi1hbHBoYS5jLCBubG0zMi1pMzg2LmMsCglubG0zMi1wcGMuYywgbmxtMzItc3BhcmMuYywgbmxtY29kZS5oLCBvYXN5cy5jLCBvcG5jbHMuYywgb3NmLWNvcmUuYywKCXBjNTMyLW1hY2guYywgcGRwMTEuYywgcGUtYXJtLmMsIHBlLWkzODYuYywgcGUtbWNvcmUuYywgcGUtbWlwcy5jLAoJcGUtc2guYywgcGVYWGlnZW4uYywgcGVmLmMsIHBlaS1hcm0uYywgcGVpLWkzODYuYywgcGVpLW1jb3JlLmMsCglwZWktbWlwcy5jLCBwZWktc2guYywgcGVpY29kZS5oLCBwcGNib290LmMsIHB0cmFjZS1jb3JlLmMsIHJlbG9jLmMsCglyZWxvYzE2LmMsIHJpc2NpeC5jLCByczYwMDAtY29yZS5jLCBzY281LWNvcmUuYywgc2VjdGlvbi5jLCBzaW1wbGUuYywKCXNvbS5jLCBzb20uaCwgc3BhcmNsaW51eC5jLCBzcGFyY2x5bnguYywgc3JlYy5jLCBzdGFicy5jLCBzdW5vcy5jLAoJc3ltcy5jLCB0YXJnZXRzLmMsIHRla2hleC5jLCB0aWNvZmYuaCwgdHJhZC1jb3JlLmMsIHZlcnNhZG9zLmMsCgl2bXMtZ3NkLmMsIHZtcy1oZHIuYywgdm1zLW1pc2MuYywgdm1zLXRpci5jLCB2bXMuYywgdm1zLmgsCgl4Y29mZi10YXJnZXQuaCwgeGNvZmZsaW5rLmMsIHhzeW0uYywgeHN5bS5oOiBSZXBsYWNlIGJvb2xlYW4gd2l0aAoJYmZkX2Jvb2xlYW4sIHRydWUgd2l0aCBUUlVFLCBmYWxzZSB3aXRoIEZBTFNFLiAgU2ltcGxpZnkgY29tcGFyaXNvbnMKCW9mIGJmZF9ib29sZWFuIHZhcnMgd2l0aCBUUlVFL0ZBTFNFLiAgRm9ybWF0dGluZy4KCSogYmZkLWluMi5oLCBsaWJiZmQuaCwgbGliY29mZi5oOiBSZWdlbmVyYXRlCgoyMDAyLTExLTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oOiBSZXBsYWNlIG9jY3VycmVuY2VzIG9mIEVsZjMyX0ludGVybmFsXyogYW5kCglFbGY2NF9JbnRlcm5hbF8qIHdpdGggRWxmX0ludGVybmFsXyouICBSZXBsYWNlIEVsZl9JbnRlcm5hbF9SZWwKCXdpdGggRWxmX0ludGVybmFsX1JlbGEuCgkqIGVsZi1ocHBhLmgsIGVsZi1tMTAyMDAuYywgZWxmLW0xMDMwMC5jLCBlbGYzMi1hcmMuYywgZWxmMzItYXJtLmgsCgllbGYzMi1hdnIuYywgZWxmMzItY3Jpcy5jLCBlbGYzMi1kMTB2LmMsIGVsZjMyLWQzMHYuYywgZWxmMzItZGx4LmMsCgllbGYzMi1mcjMwLmMsIGVsZjMyLWZydi5jLCBlbGYzMi1nZW4uYywgZWxmMzItaDgzMDAuYywgZWxmMzItaHBwYS5jLAoJZWxmMzItaTM3MC5jLCBlbGYzMi1pMzg2LmMsIGVsZjMyLWk4NjAuYywgZWxmMzItaTk2MC5jLCBlbGYzMi1pcDJrLmMsCgllbGYzMi1tMzJyLmMsIGVsZjMyLW02OGhjMTEuYywgZWxmMzItbTY4aGMxMi5jLCBlbGYzMi1tNjhrLmMsCgllbGYzMi1tY29yZS5jLCBlbGYzMi1taXBzLmMsIGVsZjMyLW9wZW5yaXNjLmMsIGVsZjMyLW9yMzIuYywKCWVsZjMyLXBwYy5jLCBlbGYzMi1zMzkwLmMsIGVsZjMyLXNoLmMsIGVsZjMyLXY4NTAuYywgZWxmMzItdmF4LmMsCgllbGYzMi14c3Rvcm15MTYuYywgZWxmNjQtYWxwaGEuYywgZWxmNjQtZ2VuLmMsIGVsZjY0LWhwcGEuYywKCWVsZjY0LW1pcHMuYywgZWxmNjQtbW1peC5jLCBlbGY2NC1wcGMuYywgZWxmNjQtczM5MC5jLCBlbGY2NC1zaDY0LmMsCgllbGY2NC1zcGFyYy5jLCBlbGY2NC14ODYtNjQuYywgZWxmYXJtLW5hYmkuYywgZWxmYXJtLW9hYmkuYywKCWVsZmNvZGUuaCwgZWxmbGluay5oLCBlbGZuMzItbWlwcy5jLCBlbGZ4eC1pYTY0LmMsIGVsZnh4LW1pcHMuYzogRGl0dG8uCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX2ludGVybmFsX3NoZHIpOiBEZWxldGUuICBVc2UgRWxmX0ludGVybmFsX1NoZHIKCXRocm91Z2hvdXQgaW5zdGVhZC4KCSogZWxmLmMgKF9iZmRfZWxmX25vX2luZm9fdG9faG93dG9fcmVsKTogRGVsZXRlLgoJKiBlbGZjb2RlLmggKGVsZl9zd2FwX3JlbG9jYV9pbik6IFBhc3Mgc291cmNlIG9wZXJhbmQgYXMgYSBiZmRfYnl0ZSAqLgoJUmVtb3ZlIElOTElORSBrZXl3b3JkLgoJKGVsZl9zd2FwX3JlbG9jX2luKTogTGlrZXdpc2UuICBBbHNvIGNsZWFyIHJfYWRkZW5kLgoJKGVsZl9zd2FwX3JlbG9jX291dCwgZWxmX3N3YXBfcmVsb2NhX291dCk6IFBhc3MgZGVzdGluYXRpb24gb3BlcmFuZAoJYXMgYSBiZmRfYnl0ZSAqLgoJKGVsZl93cml0ZV9yZWxvY3MpOiBDb25zb2xpZGF0ZSBSRUwgYW5kIFJFTEEgY29kZS4KCShlbGZfc2x1cnBfcmVsb2NfdGFibGVfZnJvbV9zZWN0aW9uKTogU2ltcGxpZnkgUkVMIGNvZGUuCgkoTkFNRShfYmZkX2VsZixzaXplX2luZm8pKTogUG9wdWxhdGUgcmVsb2Mgc3dhcCBlbnRyaWVzLgoJKiBlbGYtYmZkLmggKE1BWF9JTlRfUkVMU19QRVJfRVhUX1JFTCk6IERlZmluZS4KCSogZWxmbGluay5oIChlbGZfbGlua19yZWFkX3JlbG9jc19mcm9tX3NlY3Rpb24pOiBDb25zb2xpZGF0ZSBSRUwgYW5kCglSRUxBIGNvZGUuCgkoZWxmX2xpbmtfYWRqdXN0X3JlbG9jcyk6IExpa2V3aXNlLiAgRG9uJ3QgbWFsbG9jIHNwYWNlIGZvciB0ZW1wCglyZWxvYyBhcnJheSwgdXNlIGEgZml4ZWQgc2l6ZSBvZiBNQVhfSU5UX1JFTFNfUEVSX0VYVF9SRUwuCgkoZWxmX2xpbmtfb3V0cHV0X3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZl9yZWxvY19saW5rX29yZGVyKTogTGlrZXdpc2UuCgkoZWxmX2ZpbmlzaF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkoc3RydWN0IGVsZl9saW5rX3NvcnRfcmVsYSk6IFJlbW92ZSB1bmlvbi4KCShlbGZfbGlua19zb3J0X2NtcDEpOiBVcGRhdGUgdG8gc3VpdC4KCShlbGZfbGlua19zb3J0X2NtcDIpOiBIZXJlIHRvby4KCShlbGZfbGlua19zb3J0X3JlbG9jcyk6IENvbnNvbGlkYXRlIFJFTCBhbmQgUkVMQSBjb2RlLiAgRml4IG1lbW9yeQoJb3Zlci1hbGxvY2F0aW9uIGZvciBpbnRfcmVsc19wZXJfZXh0X3JlbCAhPSAxIGNhc2UuCgkqIGVsZjMyLWFybS5oOiBVcGRhdGUgYWxsIGJmZF9lbGYzMl9zd2FwX3JlbG9jX291dCBjYWxscy4KCSogZWxmMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jOiBMaWtld2lzZSBmb3IgYmZkX2VsZjMyX3N3YXBfcmVsb2NhX291dC4KCSogZWxmMzItaHBwYS5jLCBlbGYzMi1pMzcwLmMsIGVsZjMyLW02OGsuYywgZWxmMzItcHBjLmMsIGVsZjMyLXMzOTAuYywKCWVsZjMyLXNoLmMsIGVsZjMyLXZheC5jLCBlbGZ4eC1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jOiBMaWtld2lzZSBmb3IgYmZkX2VsZjY0X3N3YXBfcmVsb2NhX291dC4KCSogZWxmNjQtaHBwYS5jLCBlbGY2NC1taXBzLmMsIGVsZjY0LXBwYy5jLCBlbGY2NC1zMzkwLmMsIGVsZjY0LXNoNjQuYywKCWVsZjY0LXNwYXJjLmMsIGVsZjY0LXg4Ni02NC5jOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jOiBMaWtld2lzZSBmb3IgYmZkX2VsZk5OX3N3YXBfcmVsb2NhX291dC4KCSogZWxmeHgtbWlwcy5jIChzb3J0X2R5bmFtaWNfcmVsb2NzKTogTGlrZXdpc2UgZm9yCgliZmRfZWxmMzJfc3dhcF9yZWxvY19pbi4KCgkqIGVsZjMyLWFybS5oOiBVcGRhdGUgZWxmMzJfYXJtX2luZm9fdG9faG93dG8gY2FsbHMuCgkqIGVsZjMyLW1pcHMuYzogTGlrZXdpc2UgZm9yIG1pcHNfaW5mb190b19ob3d0b19yZWwuCgkobWlwc19lbGY2NF9zd2FwX3JlbG9jX2luKTogWmVybyByX2FkZGVuZC4KCShtaXBzX2VsZjY0X2JlX3N3YXBfcmVsb2NfaW4pOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X3NsdXJwX29uZV9yZWxvY190YWJsZSk6IFNpbXBsaWZ5LgoKCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZWxmX3NpemVfaW5mbyk6IFBvcHVsYXRlIHJlbG9jIHN3YXAgZW50cmllcy4KCSogZWxmNjQtaHBwYS5jIChocHBhNjRfZWxmX3NpemVfaW5mbyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9zaXplX2luZm8pOiBMaWtld2lzZS4KCjIwMDItMTEtMjggIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBjb21wbGFpbiBhYm91dAoJdW5yZXNvbHZlZCBkZWJ1Z2dpbmcgcmVsb2NzIGluIGR5bmFtaWMgYXBwbGljYXRpb25zLgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMTEtMjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtZWgtZnJhbWUuYyAoRU5TVVJFX05PX1JFTE9DUyk6IERpc3JlZ2FyZCBSXypfTk9ORSByZWxvY3MuCgkoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogRG9uJ3QgZGlzY2FyZCBkdXBsaWNhdGUgQ0lFcwoJb24gYSByZWxvY2F0YWJsZSBsaW5rLiAgQ29tbWVudCB0eXBvcy4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogQXNzaWduIGVsZW1lbnRzIG9mIHN0cnVjdHVyZQoJaW4gdGhlIG9yZGVyIHRoZXkgYXJlIGRlY2xhcmVkLiAgQ2xlYXIgZWxmX2hhc2hfdmFsdWUgdG9vLgoJKF9iZmRfZWxmX2xpbmtfaGFzaF90YWJsZV9pbml0KTogTGlrZXdpc2UgYXNzaWduIGluIG9yZGVyLiAgQ2xlYXIKCWVoX2luZm8gYW5kIHRsc19zZWdtZW50LgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCA8ZW1pdF9yZWxvY3M+KTogS2VlcCByZWxvYyBvZmZzZXRzCglzb3J0ZWQgd2hlbiBkaXNjYXJkaW5nIHJlbG9jcyBieSB0dXJuaW5nIHRoZW0gaW50byBSXypfTk9ORS4KCgkqIGxpYmJmZC5jICh3YXJuX2RlcHJlY2F0ZWQpOiBDb21tZW50IHNwZWxsaW5nLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTExLTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBEb24ndCBvdmVyd3JpdGUgdGhlCglhcmNoJ3Mgc3Rfb3RoZXIgYml0cyB3aGVuIG1lcmdpbmcgdmlzaWJpbGl0aWVzLgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBUaWR5IGNsZWFyaW5nIG9mIHZpc2liaWxpdHkgZmllbGQuCgoyMDAyLTExLTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZi1tY29yZS5jIChTV0FQX0lOX1JFTE9DX09GRlNFVCk6IERlZmluZS4KCShTV0FQX09VVF9SRUxPQ19PRkZTRVQpOiBEZWZpbmUuCgoyMDAyLTExLTIwICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCk6IE1ha2Ugc3VyZQoJY2FuX3JlZmNvdW50IGlzIHByb3Blcmx5IGV4dGVuZGVkIHRvIHRoZSB0eXBlIG9mCglpbml0X3JlZmNvdW50LgoKMjAwMi0xMS0xOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKE1JUFNfUkVMT0NfUkVMQV9QKTogTmV3IG1hY3JvLgoJKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBpdC4KCgkqIGVsZnh4LW1pcHMuYyAoTU5BTUUpOiBOZXcgbWFjcm8uCgkoX2JmZF9taXBzX2VsZl9jaGVja19yZWxvY3MpOiBVc2UgaXQuCgkoX2JmZF9taXBzX2VsZl9kaXNjYXJkX2luZm8pOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmX2ZpbmFsX2xpbmspOiBMaWtld2lzZS4KCjIwMDItMTEtMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2VkaXRfb3BkKTogV2hlbiBkZWxldGluZyByZWxvY3MsIGFkanVzdAoJcmVsX2hkci5zaF9zaXplIHRvby4KCjIwMDItMTEtMTggIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfTElCUyk6IEFkZCBiZmR3aW4ubG8sIGJmZGlvLmxvLgoJKEJGRDMyX0xJQlNfQ0ZJTEVTKTogQWRkIGJmZHdpbi5jLCBiZmRpby5jLgoJKEJGRF9IX0ZJTEVTKTogQWRkIGJmZHdpbi5jLCBiZmRpby5jLgoJKExJQkJGRF9IX0ZJTEVTKTogQWRkIGJmZHdpbi5jLCBiZmRpby5jLgoJQWRkIGRlcGVuZGVuY2llcyBmb3IgYmZkd2luLmMsIGJmZGlvLmMuCgkqIGJmZC5jOiBSZW1vdmUgYmZkX2dldF9tdGltZSwgYmZkX2dldF9zaXplLgoJKiBsaWJiZmQuYzogUmVtb3ZlIHJlYWxfcmVhZCwgYmZkX2JyZWFkLCBfYmZkX3dpbmRvd19pbnRlcm5hbCwKCWJmZF9pbml0X3dpbmRvdywgYmZkX2ZyZWVfd2luZG93LCBiZmRfZ2V0X2ZpbGVfd2luZG93LCBiZmRfYndyaXRlLAoJYmZkX3RlbGwsIGJmZF9mbHVzaCwgYmZkX3N0YXQsIGJmZF9zZWVrLgoJKiBiZmRpby5jOiBOZXcgZmlsZS4gIENvbnRhaW5zIHJlYWxfcmVhZCwgYmZkX2JyZWFkLCBiZmRfd3JpdGUsCgliZmRfdGVsbCwgYmZkX2ZsdXNoLCBiZmRfc3RhdCwgYmZkX3NlZWssIGJmZF9nZV9tdGltZSwKCWJmZF9nZXRfc2l6ZSAobW92ZWQgZnJvbSBsaWJiZmQuYyBhbmQgYmZkLmMpLgoJKiBiZmR3aW4uYyBOZXcgZmlsZS4gIENvbnRhaW5zIF9iZmRfd2luZG93X2ludGVybmFsLAoJYmZkX2luaXRfd2luZG93LCBiZmRfZnJlZV93aW5kb3csIGJmZF9nZXRfZmlsZV93aW5kb3cgKG1vdmVkIGZyb20KCWxpYmJmZC5jIGFuZCBiZmQuYykuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMTEtMTggIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBiZmQuYyAoYmZkX3ByZXNlcnZlX3NhdmUpOiBEb24ndCB6ZXJvIEJGRF9JTl9NRU1PUlkuCgoyMDAyLTExLTE1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29mZi1oODMwMC5jIChoODMwMF9yZWxvYzE2X2VzdGltYXRlKTogRG8gbm90IG9wdGltaXplIGF3YXkKCWpzciBhZnRlciBhIHNob3J0IGp1bXAuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMTEtMTUgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBwZWYuYyAoYmZkX3BlZl9jb252ZXJ0X2FyY2hpdGVjdHVyZSk6IE1vdmUgZGVjbGFyYXRpb24gb2YKCUFSQ0hfUE9XRVJQQyBhbmQgQVJDSF9NNjhLIHRvIHRoZSBzdGFydCBvZiB0aGUgZnVuY3Rpb24uCgoyMDAyLTExLTE0ICBTdmVpbiBFLiBTZWxkYWwgIDxTdmVpbi5TZWxkYWxAc29saWRhcy5jb20+CgoJKiBjb2ZmLXRpYzR4LmMgKHRpYzR4X2hvd3RvX3RhYmxlKTogRm9ybWF0dGluZyBmaXh1cAoKMjAwMi0xMS0xNCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZWxmNjQtbW1peC5jIChfYmZkX21taXhfZmluYWxpemVfbGlua2VyX2FsbG9jYXRlZF9ncmVncyk6CglGb3IgYnBvX2dyZWdzX3NlY3Rpb24tPmNvbnRlbnRzLCBhbGxvY2F0ZSBfcmF3X3NpemUsIG5vdAoJX2Nvb2tlZF9zaXplLgoKMjAwMi0xMS0xMyAgS2xlZSBEaWVuZXMgIDxrZGllbmVzQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBlbnRyaWVzIGZvciBwb3dlcnBjLSotZGFyd2luIGFuZCBjb3VzaW5zLgoKMjAwMi0xMS0xMyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZjb2RlLmggKGVsZl9vYmplY3RfcCk6IERvbid0IHJlc3RvcmUgYWJmZC0+YXJjaF9pbmZvLgoKMjAwMi0xMS0xMyAgS2xlZSBEaWVuZXMgIDxrZGllbmVzQGFwcGxlLmNvbT4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYmZkLmMgKHN0cnVjdCBiZmRfcHJlc2VydmUpOiBOZXcuCgkoYmZkX3ByZXNlcnZlX3NhdmUpOiBOZXcgZnVuY3Rpb24uCgkoYmZkX3ByZXNlcnZlX3Jlc3RvcmUpOiBEaXR0by4KCShiZmRfcHJlc2VydmVfZmluaXNoKTogRGl0dG8uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbWFjaC1vLmM6IEZvcm1hdHRpbmcuCgkoYmZkX21hY2hfb19zY2FuX3JlYWRfc3ltdGFiX3N5bWJvbCk6IE1ha2UgInZhbHVlIiB1bnNpZ25lZC4KCShiZmRfbWFjaF9vX29iamVjdF9wKTogVXNlIGJmZF9wcmVzZXJ2ZV9zYXZlL3Jlc3RvcmUvZmluaXNoLgoJKGJmZF9tYWNoX29fY29yZV9wKTogRGl0dG8uCgkoYmZkX21hY2hfb19zY2FuKTogUGFzcyBpbiBtZGF0YS4KCSogbWFjaC1vLmggKGJmZF9tYWNoX29fc2Nhbik6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIHBlZi5jOiBGb3JtYXR0aW5nLgoJKGJmZF9wZWZfb2JqZWN0X3ApOiBVc2UgYmZkX3ByZXNlcnZlX3NhdmUvcmVzdG9yZS9maW5pc2guCgkoYmZkX3BlZl94bGliX29iamVjdF9wKTogRGl0dG8uCgkoYmZkX3BlZl9zY2FuKTogUGFzcyBpbiBtZGF0YS4gIE1vdmUgdmVyc2lvbiBjaGVjayB0byBiZmRfcGVmX29iamVjdF9wLgoJKiBwZWYuaCAoYmZkX3BlZl9zY2FuKTogVXBkYXRlIHByb3RvdHlwZS4KCSogeHN5bS5jOiBGb3JtYXR0aW5nLCBLJlIgZml4ZXMuCgkoYmZkX3N5bV9vYmplY3RfcCk6IFVzZSBiZmRfcHJlc2VydmVfc2F2ZS9yZXN0b3JlL2ZpbmlzaC4KCShiZmRfc3ltX3NjYW4pOiBOZXcgZnVuY3Rpb24gc3BsaXQgb3V0IGZyb20gYmZkX3N5bV9vYmplY3RfcC4KCSogeHN5bS5oIChiZmRfc3ltX3NjYW4pOiBEZWNsYXJlLgoJKiBlbGZjb2RlLmggKGVsZl9vYmplY3RfcCk6IFVzZSBiZmRfcHJlc2VydmVfc2F2ZS9yZXN0b3JlL2ZpbmlzaC4KCSogZWxmY29yZS5oIChlbGZfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCSogdGFyZ2V0cy5jIChfYmZkX3RhcmdldF92ZWN0b3IpOiBSZXZlcnQgMjAwMi0xMS0wOCBjaGFuZ2UuCgoyMDAyLTExLTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZGEucG86IFVwZGF0ZWQgRGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0xMS0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogT3B0aW1pemUgc3RhYnMgZm9yCglyZWxvY2F0YWJsZSBsaW5rIHRvby4KCShlbGZfbGlua19pbnB1dF9iZmQpOiBXaGVuIGVtaXR0aW5nIHJlbG9jcywgYWRqdXN0IG9mZnNldHMgZm9yCgllaF9mcmFtZSBhbmQgc3RhYiBzZWN0aW9ucy4gIFphcCBkZWxldGVkIHJlbG9jcy4KCShlbGZfcmVsb2Nfc3ltYm9sX2RlbGV0ZWRfcCk6IFJldHVybiB0cnVlIGZvciB6ZXJvIHJfc3ltbmR4LgoJKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogUnVuIGZvciByZWxvY2F0YWJsZSBsaW5rIHRvby4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9lZGl0X29wZCk6IFJlbmFtZSBmcm9tIGVkaXRfb3BkLiAgTWFrZSBnbG9iYWwuCglIYW5kbGUgbGQgLXIgY2FzZS4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgY2FsbCBlZGl0X29wZCBmcm9tIGhlcmUuCgkqIGVsZjY0LXBwYy5oIChwcGM2NF9lbGZfZWRpdF9vcGQpOiBEZWNsYXJlLgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgY2llX2hlYWRlcik6IE1vdmUgZnJvbSBlbGZfZWgtZnJhbWUuYy4KCShzdHJ1Y3QgY2llLCBzdHJ1Y3QgZWhfY2llX2ZkZSwgc3RydWN0IGVoX2ZyYW1lX3NlY19pbmZvKTogTGlrZXdpc2UuCgkoc3RydWN0IGVoX2ZyYW1lX2FycmF5X2VudCwgc3RydWN0IGVoX2ZyYW1lX2hkcl9pbmZvKTogTGlrZXdpc2UuCgkoZW51bSBlbGZfbGlua19pbmZvX3R5cGUpOiBSZW1vdmUgRUxGX0lORk9fVFlQRV9FSF9GUkFNRV9IRFIuCgkoc3RydWN0IGVoX2ZyYW1lX2hkcl9pbmZvKTogQWRkICJoZHJfc2VjIiwgcmVtb3ZlICJzcGxpdCIuCgkoc3RydWN0IGVsZl9saW5rX2hhc2hfdGFibGUpOiBBZGQgZWhfaW5mby4KCShzdHJ1Y3QgZWxmX29ial90ZGF0YSk6IENoYW5nZSBlaF9mcmFtZV9oZHIgdG8gYW4gYXNlY3Rpb24gKi4KCShfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBVcGRhdGUgcHJvdG90eXBlLgoJKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZV9oZHIpOiBMaWtld2lzZS4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZV9oZHIpOiBMaWtld2lzZS4KCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IFJlbW92ZSAiZWhkcnNlYyIKCXBhcmFtLiAgR2V0ICJoZHJfaW5mbyIgZnJvbSBsaW5rIGhhc2ggdGFibGUuCgkoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lX2hkcik6IFJlbW92ZSAic2VjIiBwYXJhbS4gIEdldAoJaGVhZGVyIHNlY3Rpb24gZnJvbSBsaW5rIGhhc2ggdGFibGUuICBTYXZlIGhlYWRlciBzZWN0aW9uIHRvIGVsZl90ZGF0YS4KCShfYmZkX2VsZl9tYXliZV9zdHJpcF9laF9mcmFtZV9oZHIpOiBSZW1vdmUgbG9jYWwgInNlYyIuICBVc2UKCWhlYWRlciBzZWN0aW9uIGZyb20gbGluayBoYXNoIHRhYmxlLiAgRG9uJ3QgYWxsb2MgaGRyX2luZm8uICBDbGVhcgoJaGRyX3NlYyBpbnN0ZWFkIG9mIHNldHRpbmcgInN0cmlwIi4KCShfYmZkX2VsZl9laF9mcmFtZV9zZWN0aW9uX29mZnNldCk6IEZvcm1hdHRpbmcuCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZSk6IFJlbW92ZSAiZWhkcnNlYyIsIGFkZCAiaW5mbyIgcGFyYW0uCglHZXQgaGVhZGVyIHNlY3Rpb24gZnJvbSBsaW5rIGhhc2ggdGFibGUuCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZV9oZHIpOiBSZW1vdmUgInNlYyIsIGFkZCAiaW5mbyIgcGFyYW0uCglHZXQgaGVhZGVyIHNlY3Rpb24gZnJvbSBsaW5rIGhhc2ggdGFibGUuCgkqIGVsZi5jIChtYXBfc2VjdGlvbnNfdG9fc2VnbWVudHMpOiBVc2UgY2FjaGVkIGVoX2ZyYW1lX2hkci4KCShnZXRfcHJvZ3JhbV9oZWFkZXJfc2l6ZSk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX3NlY3Rpb25fb2Zmc2V0KTogRm9ybWF0dGluZy4KCSogZWxmbGluay5oIChlbGZfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IFN0YXNoIGVoIGZyYW1lIGhlYWRlcgoJc2VjdGlvbiBwb2ludGVyIGluIGxpbmsgaGFzaCB0YWJsZS4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBBZGp1c3QgX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZV9oZHIKCWFuZCBfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lIGNhbGxzLiAgVXBkYXRlIGNvbW1lbnQgYWJvdXQKCWVoX2ZyYW1lIGVudHJpZXMuCgkoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBBZGp1c3QgX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lIGFuZAoJX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lX2hkciBjYWxscy4gIFJlbW92ZSAiZWhkciIuCgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogRG9uJ3QgemVybwoJcmVsb2NzIGZvciBkaXNjYXJkZWQgRkRFcy4gIFJlbW92ZSBkZWFkIGNvZGUuCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZV9oZHIpOiBSZW1vdmUgZGVhZCBjb2RlLgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogRG9uJ3Qgc2F2ZSBlZGl0ZWQgcmVsb2NzLgoJVGlkeSBjb25kaXRpb25zIHVuZGVyIHdoaWNoIHN0YWJzIGFyZSBlZGl0ZWQuICBGb3JtYXR0aW5nLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSWdub3JlIG92ZXJmbG93cwoJZnJvbSBkaXNjYXJkZWQgcmVsb2NzLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfaW5zdGFsbF9keW5fcmVsb2MpOiBBZGQgcmVsb2Mgb3V0cHV0CglzZWN0aW9uIGFkanVzdG1lbnRzIGFmdGVyIHRlc3RpbmcgbWFnaWMgdmFsdWVzLgoKMjAwMi0xMS0xMiAgVGhvbWFzIE1vZXN0bCA8dG1tQEZyZWVCU0Qub3JnPgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogQ29ycmVjdAoJcmVmZXJlbmNlcyB0byBsYXJnZSBwbHQgc3ltYm9scy4KCjIwMDItMTEtMTIgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBtYWNoLW8uYyAoYmZkX21hY2hfb19zY2FuX3JlYWRfdGhyZWFkKTogRG9uJ3QgcmUtdXNlICdpJyB3aGVuCglsb29raW5nIGZvciBhbiB1bnVzZWQgc2VjdGlvbiBuYW1lLgoKMjAwMi0xMS0xMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvZmYtaDgzMDAuYzogRml4IGZvcm1hdHRpbmcuCgkqIGVsZjMyLWg4MzAwLmM6IExpa2V3aXNlLgoJKiByZWxvYzE2LmM6IExpa2V3aXNlLgoKMjAwMi0xMS0wOSAgSmVyb2VuIERvYmJlbGFlcmUgIDxqZXJvZW4uZG9iYmVsYWVyZUBhY3VuaWEuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBzdHJpcCBvdXRwdXQKCXNlY3Rpb24gd2hlbiBkeW5hbWljIHNlY3Rpb24gdW51c2VkOyAgX2JmZF9zdHJpcF9zZWN0aW9uX2Zyb21fb3V0cHV0CglpbnN0ZWFkLgoKMjAwMi0xMS0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHRhcmdldHMuYyAoX2JmZF90YXJnZXRfdmVjdG9yKTogRGlzYWJsZSBwZWZfdmVjLCBwZWZfeGxpYl92ZWMKCWFuZCBzeW1fdmVjLgoKCSogZHdhcmYyLmM6IFJldmVydCBsYXN0IGNoYW5nZS4KCjIwMDItMTEtMDcgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+CgoJKiBkd2FyZjIuYyAocmVhZF9pbmRpcmVjdF9zdHJpbmcsIHJlYWRfYWJicmV2cywgZGVjb2RlX2xpbmVfaW5mbywKCV9iZmRfZHdhcmYyX2ZpbmRfbmVhcmVzdF9saW5lKTogVXNlCgliZmRfc2ltcGxlX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cygpIGluc3RlYWQgb2YKCWJmZF9nZXRfc2VjdGlvbl9jb250ZW50cygpLgoJKiByZWxvYy5jIChiZmRfcGVyZm9ybV9yZWxvY2F0aW9uKTogQWRkIHNhbml0eSBjaGVjay4KCSogc2ltcGxlLmMgKHNpbXBsZV9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBJZiB0aGUgc2VjdGlvbgoJZG9lcyBub3QgaGF2ZSBhbnkgcmVsb2NzIGFzc29jaWF0ZWQgd2l0aCBpdCwganVzdCByZXR1cm4gdGhlCgl1bmFkanVzdGVkIGNvbnRlbnRzLgoKMjAwMi0xMS0wNyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pIDxjYXNlIFJfQ1JJU18xNl9HT1QsCgljYXNlIFJfQ1JJU18zMl9HT1Q+OiBDb3JyZWN0IHRlc3QgZm9yIGZpbGxpbmcgaW4gY29uc3RhbnQgLmdvdAoJY29udGVudHMsIGVuYWJsaW5nIGZvciBhIG5vbi1EU08sIGZvciBzeW1ib2xzIGRlZmluZWQgaW4gdGhlCglwcm9ncmFtIHdpdGggLS1leHBvcnQtZHluYW1pYy4KCjIwMDItMTEtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYzogQ29tbWVudCB0eXBvIGZpeGVzLgoJKHBwYzY0X2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQWxsb3cgQkZEX0VORElBTl9VTktOT1dOIGlucHV0LgoKMjAwMi0xMS0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2RhLnBvOiBVcGRhdGVkIERhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDItMTEtMDYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X3NsdXJwX29uZV9yZWxvY190YWJsZSk6IEdlbmVyYXRlCglleGFjdGx5IHRocmVlIGludGVybmFsIHJlbG9jcyBwZXIgZXh0ZXJuYWwgcmVsb2MuICBTZXQgcmVsb2NfY291bnQKCXRvIHRoZSBleHRlcm5hbCByZWxvYyBjb3VudC4KCjIwMDItMTEtMDYgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJICogY29mZi1zdGdvMzIuYyAoc3R1Yl9ieXRlcyk6IE1hcmsgYXMgY29uc3QuCgkgRml4IGNvbW1lbnQgZm9ybWF0dGluZy4KCjIwMDItMTEtMDYgIEtsZWUgRGllbmVzICA8a2RpZW5lc0BhcHBsZS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgbWFjaC1vLmxvLCBwZWYubG8sIGFuZAoJeHN5bS5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgbWFjaC1vLmMsIHBlZi5jLCBhbmQgeHN5bS5jLgoJKFNPVVJDRV9IRklMRVMpOiBBZGQgbWFjaC1vLmgsIHBlZi5oLCBwZWYtdHJhY2ViYWNrLmgsIHhzeW0uaAoJKiBhcmNodXJlcy5jIChlbnVtIGJmZF9hcmNoaXRlY3R1cmUpOiBBZGQgYmZkX2FyY2hfbTk4ay4KCSogYmZkLmMgKHN0cnVjdCBiZmQpOiBBZGQgcHJpdmF0ZSBkYXRhIGZvciBtYWNoLW8sIHBlZiwgYW5kIHN5bS4KCSogdGFyZ2V0cy5jIChlbnVtIGJmZF9mbGF2b3VyKTogQWRkIGZsYXZvdXJzIGZvciBtYWNoLW8sIHBlZiwgYW5kCglzeW0uCgkoX2JmZF90YXJnZXRfdmVjdG9yKTogQWRkIHRhcmdldCB2ZWN0b3JzIGZvciBtYWNoLW8sIHBlZiwgYW5kIHN5bS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiB4c3ltLmM6IE5ldyBmaWxlLiAgQ29udGFpbnMgc3VwcG9ydCBmb3IgdGhlIEFwcGxlL01ldHJvd2Vya3MKCXhTWU0gZGVidWdnaW5nIGZvcm1hdC4KCSogeHN5bS5oOiBOZXcgZmlsZS4KCSogcGVmLmM6IE5ldyBmaWxlLiAgQ29udGFpbnMgc3VwcG9ydCBmb3IgdGhlIEFwcGxlIENvZGUgRnJhZ21lbnQKCU1hbmFnZXIgUHJlZmVycmVkIEV4ZWN1dGFibGUgRm9ybWF0CgkqIHBlZi5oOiBOZXcgZmlsZS4KCSogcGVmLXRyYWNlYmFjay5oOiBOZXcgZmlsZS4gIENvbnRhaW5zIHN1cHBvcnQgZm9yIHBhcnNpbmcgUG93ZXJQQwoJdHJhY2ViYWNrIHRhYmxlcyBhcyB1c2VkIGJ5IFBFRiBleGVjdXRhYmxlcyAoYW5kIHBlcmhhcHMgb3RoZXIKCXN5c3RlbXMgYXMgd2VsbCkuCgkqIG1hY2gtby5jOiBOZXcgZmlsZS4gIENvbnRhaW5zIHN1cHBvcnQgZm9yIHRoZSBNYWNoLU8gb2JqZWN0IGZpbGUKCWZvcm1hdC4KCSogbWFjaC1vLmg6IE5ldyBmaWxlLgoJKiBtYWNoLW8tdGFyZ2V0LmM6IE5ldyBmaWxlLiAgRGVjbGFyZXMgdGhlIG1hY2gtbyB0YXJnZXRzCgl0aGVtc2VsdmVzLiAgSW5jbHVkZWQgdGhyZWUgdGltZXMgYnkgbWFjaC1vLmM7IGVhY2ggdGltZSB3aXRoIGEKCWRpZmZlcmVudCBzZXQgb2YgbWFjcm9zIHNldC4KCjIwMDItMTEtMDYgIEdyYWVtZSBQZXRlcnNvbiAgPGdwQHFueC5jb20+CgoJKiBNYWtlZmlsZS5hbTogUmVtb3ZlIGVudHJpZXMgZm9yIGVsZjMyLXFueC5bY2hdLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZDogQ2hhbmdlIGFybS1udG8gdG8gdXNlIGJmZF9lbGYzMl97YmlnfGxpdHRsZX1hcm1fdmVjLAoJcHBjLW50byB0byB1c2UgYmZkX2VsZjMyX3Bvd2VycGN7bGV9X3ZlYywgc2gtbnRvIHRvIHVzZQoJYmZkX2VsZjMyX3Noe2x9X3ZlYywgYW5kIGkzODYtbnRvIHRvIHVzZSBiZmRfZWxmMzJfaTM4Nl92ZWMuCgkqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlIHN1cHBvcnQgZm9yIGJmZF9lbGYzMl9zaHtsfXFueF92ZWMsCgliZmRfZWxmMzJfcG93ZXJwY3tsZX1xbnhfdmVjLCBiZmRfZWxmMzJfe2JpZ3xsaXR0bGV9YXJtcW54X3ZlYywKCWFuZCBiZmRfZWxmMzJfaTM4NnFueF92ZWMsIGFuZCByZW1vdmVkIGVsZjMyLXFueC5sbyBmcm9tIG90aGVyIHRhcmdldHMuCgliZmRfZWxmMzJfc2h7bH1fdmVjLCBhbmQgaTM4Ni1udG8gdG8gdXNlIGJmZF9lbGYzMl9pMzg2X3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1xbnguYzogUmVtb3ZlLgoJKiBlbGYzMi1xbnguaDogUmVtb3ZlLgoJKiBlbGYuYzogUmVtb3ZlIGNhbGxzIHRvIFFOWCBzcGVjaWZpYyBzZXRfbm9ubG9hZGFibGVfZmlsZXBvcywKCWlzX2NvbnRhaW5lZF9ieV9maWxlcG9zLCBhbmQgY29weV9wcml2YXRlX2JmZF9kYXRhX3AuCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBSZW1vdmUgc2V0X25vbmxvYWRhYmxlX2ZpbGVwb3MsCglpc19jb250YWluZWRfYnlfZmlsZXBvcywgYW5kIGNvcHlfcHJpdmF0ZV9iZmRfZGF0YV9wLgoJKiBlbGYzMi1pMzg2LmM6IFJlbW92ZSBRTlggZXh0ZW5kZWQgYmZkIHN1cHBvcnQuCgkqIGVsZjMyLXBwYy5jOiBSZW1vdmUgUU5YIGV4dGVuZGVkIGJmZCBzdXBwb3J0LgoJKiBlbGYzMi1zaC5jOiBSZW1vdmUgUU5YIGV4dGVuZGVkIGJmZCBzdXBwb3J0LgoJKiBlbGZhcm0tbmFiaS5jOiBSZW1vdmUgUU5YIGV4dGVuZGVkIGJmZCBzdXBwb3J0LgoJKiB0YXJnZXRzLmM6IFJlbW92ZSBxbnggdmVjdG9ycy4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX3NldF9ub25sb2FkYWJsZV9maWxlcG9zKTogUmVtb3ZlCgkoZWxmX2JhY2tlbmRfaXNfY29udGFpbmVkX2J5X2ZpbGVwb3MpOiBSZW1vdmUuCgkoZWxmX2JhY2tlbmRfY29weV9wcml2YXRlX2JmZF9kYXRhX3ApOiBSZW1vdmUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMTEtMDYgIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgkgICAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBBZGp1c3QgYWRkZW5kIG9mCglkeW5hbWljIHJlbG9jcyBhZ2FpbnN0IHNlY3Rpb24gc3ltYm9scyBmb3IgdGhlIG91dHB1dCBzZWN0aW9uIHZtYS4KCjIwMDItMTEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1hcm0uaCAodDJhMV9wdXNoX2luc24sIHQyYTJfbGRyX2luc24sIHQyYTNfbW92X2luc24sCgl0MmE0X2J4X2luc24sIHQyYTVfcG9wX2luc24sIHQyYTZfYnhfaW5zbik6IFJlbW92ZS4KCjIwMDItMTEtMDUgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoJICAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcuYmZkIChzaC0qLWxpbnV4Kik6IFVzZSBiZmRfZWxmKl9zaDY0Kmxpbl92ZWMgYXMgc2g2NAoJdmVjdG9ycyBpbiB0YXJnZXRfc2VsdmVjcy4KCShzaGxlLSotbmV0YnNkZWxmKik6IFVzZSBiZmRfZWxmKl9zaDY0Km5ic2RfdmVjIGFzIHNoNjQgdmVjdG9ycwoJaW4gdGFyZ2V0X3NlbHZlY3MuCgkoc2gtKi1uZXRic2RlbGYqKTogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZS5pbiAoYXNzb2N2ZWNzKTogTmV3IHZhcmlhYmxlLiAgSGFuZGxlIGFzc29jdmVjcyBsaWtlCglzZWx2ZWNzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGZvcm1hdC5jIChiZmRfY2hlY2tfZm9ybWF0X21hdGNoZXMpOiBTdG9yZSBiZmRfdGFyZ2V0IHBvaW50ZXJzCglpbiBtYXRjaGluZ192ZWN0b3IgaW5zdGVhZCBvZiB0YXJnZXQgbmFtZXMuICBTZWxlY3QgZmlyc3QgdGFyZ2V0Cglmcm9tIGJmZF9hc3NvY2lhdGVkX3ZlY3RvciB0aGF0IG1hdGNoZXMgYSBsaXN0IG9mIGFtYmlndW91cyB0YXJnZXRzLgoJKiB0YXJnZXRzLmMgKF9iZmRfYXNzb2NpYXRlZF92ZWN0b3IpOiBOZXcgYXJyYXkuCgkoYmZkX2Fzc29jaWF0ZWRfdmVjdG9yKTogTmV3IHZhcmlhYmxlLgoJKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IEFkZCBiZmRfZWxmKl9zaDY0Kmxpbl92ZWMuCgkqIGxpYmJmZC1pbi5oIChiZmRfYXNzb2NpYXRlZF92ZWN0b3IpOiBEZWNsYXJlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDItMTEtMDUgIEVsaWFzIEF0aGFuYXNvcG91bG9zICA8ZWF0aGFuQG90ZW5ldC5ncj4KCgkqIHZtcy1nc2QuYyAoX2JmZF92bXNfd3JpdGVfZ3NkKTogQ2hlY2sgdGhhdCBzeW1ib2wtPnVkYXRhLnAgaXMKCW5vbi1OVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nLgoKMjAwMi0xMS0wNCAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiB2bXMuYyAodm1zX29iamVjdF9wKTogUmVzdG9yZSB0aGUgc3RhcnQgYWRkcmVzcyB3aGVuIHJldHVybmluZwoJTlVMTC4KCjIwMDItMTEtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgkgICAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGZsaW5rLmggKHN0cnVjdCBlbGZfZmluYWxfbGlua19pbmZvKTogQWRkIHNobmR4YnVmX3NpemUuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogRG9uJ3QgYm90aGVyIHplcm9pbmcgc3ltdGFiX2hkciBmaWVsZHMuCglTZXQgdXAgYSBsYXJnZXIgc3ltc2huZHhidWYsIGFuZCB3cml0ZSBpdCBvdXQuICBGcmVlIGl0IG9uCglleGl0IHJhdGhlciB0aGFuIGZyZWVpbmcgc3ltYnVmIHR3aWNlLiAgQ29ycmVjdCBzZWN0aW9uIGluZGV4CglvbiBvdXRwdXQgc2VjdGlvbiBzeW1ib2wgbG9vcC4KCShlbGZfbGlua19vdXRwdXRfc3ltKTogQWNjdW11bGF0ZSBzeW1ib2wgZXh0ZW5zaW9uIHNlY3Rpb24KCWluZGljZXMsIHJlYWxsb2NhdGluZyBzeW1zaG5keGJ1ZiByYXRoZXIgdGhhbiB3cml0aW5nIGl0IG91dC4KCShlbGZfbGlua19mbHVzaF9vdXRwdXRfc3ltcyk6IERvbid0IGZsdXNoIHN5bXNobmR4YnVmLgoJKiBlbGYuYyAoYXNzaWduX3NlY3Rpb25fbnVtYmVycyk6IEluaXQgaV9zaGRycCB0byBhbGwgemVyby4KCVVzZSBiZmRfemFsbG9jIHRvIGNsZWFyIGlfc2hkcnBbMF0gdG9vLgoKMjAwMi0xMS0wMyAgU3RlcGhlbiBDbGFya2UgPHN0ZXBoZW4uY2xhcmtlQGVhcnRobGluZy5uZXQ+CgoJICogZWxmMzItc2g2NC1jb20uYyAoc2g2NF9hZGRyZXNzX2luX2NyYW5nZXMpOiBVc2UKCV9yYXdfc2l6ZSBvZiBjcmFuZ2VzIHNlY3Rpb24gaWYgX2Nvb2tlZF9zaXplIG5vdCB5ZXQgc2V0LgoKMjAwMi0xMS0wMyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IENvcnJlY3QgcGFyYW1ldGVycwoJZm9yIGJmZF9lbGYzMl9zd2FwX3N5bWJvbF9vdXQuCgoyMDAyLTEwLTMxICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IERvbid0IG1peAoJc2lnbmVkIGFuZCB1bnNpZ25lZCBpbiBjb21wYXJpc29uLgoKMjAwMi0xMC0zMCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb2ZmY29kZS5oOiBSZW1vdmUgZXh0cmFuZW91cyAnXCcuCgoyMDAyLTEwLTI4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtICh0YXJnZXRzLmxvKTogRGVwZW5kIG9uIE1ha2VmaWxlIGluc3RlYWQgb2YKCWNvbmZpZy5zdGF0dXMuCgkoYXJjaHVyZXMubG8pOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoKMjAwMi0xMC0yNSAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5iZmQgKG1pcHMqZWwtKi1uZXRic2QqLCBtaXBzKi0qLW5ldGJzZCopOiBBZGQKCWJmZF9lbGY2NF9iaWdtaXBzX3ZlYyBhbmQgYmZkX2VsZjY0X2xpdHRsZW1pcHNfdmVjIHRvCgl0YXJnX3NlbHZlY3MuCgoyMDAyLTEwLTI1ICBKaW0gV2lsc29uICA8d2lsc29uQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBDYWxsCglfYmZkX2VsZl9yZWxhX2xvY2FsX3N5bS4gIEhhbmRsZSByZWxvY3MgYWdhaW5zdCBTVFRfU0VDVElPTiBzeW1ib2wKCW9mIFNIRl9NRVJHRSBzZWN0aW9uLgoKMjAwMi0xMC0yNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBzaW1wbGUuYzogQ29ycmVjdCBwbGFjZW1lbnQgb2YgQVRUUklCVVRFX1VOVVNFRC4KCjIwMDItMTAtMjQgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBhb3V0eC5oIChOQU1FKGFvdXQsc3dhcF9leHRfcmVsb2NfaW4pKTogQ2FzdCBieXRlcy0+cl9pbmRleCB0bwoJdW5zaWduZWQgaW50LiAgQ2FzdCBSRUxPQ19CQVNFMTAsIFJFTE9DX0JBU0UxMyBhbmQgUkVMT0NfQkFTRTIyIHRvCgl1bnNpZ25lZCBpbnQuCgkoTkFNRShhb3V0LGZpbmFsX2xpbmspKTogQ2FzdCBlbnVtIHVzZWQgaW4gYXNzaWdubWVudC4KCShhb3V0X2xpbmtfd3JpdGVfc3ltYm9scyk6IENhc3QgZW51bXMgaW4gY29tcGFyaXNvbnMsIGludCB2YWx1ZXMgdG8KCWJvb2xlYW4sIGVudW1zIGluIGFzc2lnbm1lbnRzIHRvIGludC4KCShhb3V0X2xpbmtfaW5wdXRfc2VjdGlvbl9zdGQpOiBDYXN0IHJlbC0+cl9pbmRleCB0byB1bnNpZ25lZCBpbnQuCgkoYW91dF9saW5rX2lucHV0X3NlY3Rpb25fZXh0KTogTGlrZXdpc2UuICBDYXN0IGVudW1zIHVzZWQgaW4KCWNvbXBhcmlzb25zIHdpdGggdW5zaWduZWQgaW50cy4KCShhb3V0X2xpbmtfcmVsb2NfbGlua19vcmRlcik6IENhc3QgZW51bSB0byBpbnQgaW4gYXNzaWdubWVudC4KCSogYXJjaGl2ZS5jIChfYmZkX2dlbmVyaWNfcmVhZF9hcl9oZHJfbWFnKTogQ2FzdCByZXN1bHQgb2YgbWVtY2hyCgljYWxscyB0byBjaGFyICouCgkqIGJmZC1pbi5oIChiZmRfc2V0X3NlY3Rpb25fdm1hKTogQ2FzdCBlbnVtIHRydWUgdG8gdW5zaWduZWQgaW50IGluCglhc3NpZ25tZW50LgoJKiBiZmQtaW4yLmggKGJmZF9zZXRfc2VjdGlvbl92bWEpOiBMaWtld2lzZS4KCSogYmZkLmMgKGJmZF9yZWNvcmRfcGhkcik6IENhc3QgZW51bXMgaW4gYXNzaWdubWVudHMuCgkqIGJpbmFyeS5jIChiZmRfYWxsb2MpOiBDYXN0IGVudW0gdG8gbG9uZy4KCSogY29mZmdlbi5jIChfYmZkX2NvZmZfaXNfbG9jYWxfbGFiZWxfbmFtZSk6IENhc3QgcmV0dXJuIHRvIGJvb2xlYW4uCgkqIGR3YXJmMi5jIChyZWFkX2FiYnJldnMpOiBBZGQgY2FzdHMgdG8gZW51bSB0eXBlcy4KCShyZWFkX2F0dHJpYnV0ZV92YWx1ZSk6IExpa2V3aXNlLgoJKGFyYW5nZV9hZGQpOiBDYXN0IHJlc3VsdCBvZiBiZmRfemFsbG9jIGNhbGwuCgkoY29tcF91bml0X2NvbnRhaW5zX2FkZHJlc3MpOiBSZXR1cm4gdHJ1ZSBhbmQgZmFsc2UuCgkoY29tcF91bml0X2ZpbmRfbmVhcmVzdF9saW5lKTogQ2FzdCByZXR1cm4gdG8gYm9vbGVhbi4KCSogZm9ybWF0LmMgKGJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcywgYmZkX3NldF9mb3JtYXQpOiBMaWtld2lzZS4KCSogZ2VuLWFvdXQuYzogZGVmaW5lIG1hY3JvICdfJyBpZiBub3QgZGVmaW5lZC4KCSogbGliYmZkLmMgKGJmZF9yZWFsbG9jKTogQ2FzdCBtYWxsb2MgYW5kIHJlYWxsb2MgdG8gUFRSLgoJKGJmZF9id3JpdGUpOiBDYXN0IGJmZF9yZWFsbG9jIHRvIGJmZF9ieXRlICouCgkoYmZkX3dyaXRlX2JpZ2VuZGlhbl80Ynl0ZV9pbnQpOiBDYXN0IHJldHVybiB0byBib29sZWFuLgoJKGJmZF9zZWVrKTogQ2FzdCBiZmRfcmVhbGxvYyB0byBiZmRfYnl0ZSAqLgoJKGJmZF9nZW5lcmljX2lzX2xvY2FsX2xhYmVsX25hbWUpOiBDYXN0IHJldHVybiB0byBib29sZWFuLgoJKiBsaWJjb2ZmLmggKF9iZmRfY29mZl9hZGp1c3Rfc3ltbmR4KTogUmVtb3ZlIGV4dHJhbmVvdXMgJ1wnLgoJKiBsaW5rZXIuYyAoX2JmZF9saW5rX2hhc2hfbmV3ZnVuYyk6IENhc3QgYmZkX2hhc2hfYWxsb2NhdGUgcmVzdWx0IHRvCglzdHJ1Y3QgYmZkX2hhc2hfZW50cnkgKi4KCShfYmZkX2dlbmVyaWNfbGlua19oYXNoX25ld2Z1bmMpOiBsaWtld2lzZS4KCShfYmZkX2dlbmVyaWNfZmluYWxfbGluayk6IENhc3QgZW51bSB0byB1bnNpZ25lZCBpbnQuCgkqIG1lcmdlLmMgKHNlY19tZXJnZV9lbWl0KTogQ2FzdCByZXR1cm4gdG8gYm9vbGVhbi4KCShtZXJnZV9zdHJpbmdzKTogQWRkIGNhc3RzIHRvIGNvbnN0IHVuc2lnbmVkIGNoYXIgKi4KCSogcmVsb2MuYyAoYmZkX2dldF9yZWxvY19jb2RlX25hbWUpOiBDYXN0IGVudW1zIGluIGNvbXBhcmlzb24gdG8gaW50LgoJKGJmZF9nZW5lcmljX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50KTogQ2FzdCBlbnVtIHRvIHVuc2lnbmVkIGludC4KCSogc2VjdGlvbi5jIChiZmRfc2VjdGlvbl9oYXNoX25ld2Z1bmMpOiBDYXN0IGJmZF9oYXNoX2FsbG9jYXRlIHJlc3VsdAoJdG8gc3RydWN0IGJmZF9oYXNoX2VudHJ5ICouCgkoYmZkX3NldF9zZWN0aW9uX2NvbnRlbnQpOiBBZGQgY2FzdCB0byBQVFIgaW4gY29tcGFyaXNvbi4KCSogc2ltcGxlLmMgKHNpbXBsZV9kdW1teV93YXJuaW5nLCBzaW1wbGVfZHVtbXlfdW5kZWZpbmVkX3N5bWJvbCwKCXNpbXBsZV9kdW1teV9yZWxvY19vdmVyZmxvdywgc2ltcGxlX2R1bW15X3JlbG9jX2Rhbmdlcm91cywKCXNpbXBsZV9kdW1teV91bmF0dGFjaGVkX3JlbG9jLAoJYmZkX3NpbXBsZV9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBBZGQgSyZSIGRlY2xhcmF0aW9ucyBhbmQKCWZ1bmN0aW9uIGRlZmluaXRpb25zLgoJKiBzcmVjLmMgKFMzRm9yY2VkKTogSW5pdGlhbGl6ZSB0byBmYWxzZS4KCShzcmVjX2dldF9zeW10YWIpOiBDYXN0IHJldHVybiB2YWx1ZSBmcm9tIGJmZF9hbGxvYyB0byBhc3ltYm9sICouCgkqIHN0YWJzLmMgKF9iZmRfbGlua19zZWN0aW9uX3N0YWJzKTogQ2FzdCBlbnVtIHRvIGludCBpbiBjb21wYXJpc29ucy4KCShfYmZkX2Rpc2NhcmRfc2VjdGlvbl9zdGFicyk6IExpa2V3aXNlLiAgQWxzbyBjYXN0IHJldHVybiB0byBib29sZWFuLgoJKiBzeW1zLmMgKGJmZF9pc191bmRlZmluZWRfc3ltY2xhc3MpOiBDYXN0IHJldHVybiB0byBib29sZWFuLgoJKF9iZmRfc3RhYl9zZWN0aW9uX2ZpbmRfbmVhcmVzdF9saW5lKTogQ2FzdCBlbnVtIHRvIGJmZF9ieXRlIGluCgljb21wYXJpc29ucy4KCjIwMDItMTAtMjMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogT25seSBwdXQgbWF5YmVfZHluYW1pYwoJcmVsb2NzIGludG8gc2hhcmVkIGxpYiBub24tYWxsb2NhdGVkIHJlbG9jIHNlY3Rpb25zLgoKMjAwMi0xMC0yMyAgTmF0aGFuIFRhbGxlbnQgIDxlcmF4eG9uQGFsdW1uaS5yaWNlLmVkdT4KCgkqIGR3YXJmMi5jIChhZGRfbGluZV9pbmZvKTogRW5zdXJlIHRoYXQgdGhlIGxpbmVfaW5mb190YWJsZSBpcwoJc29ydGVkIGV2ZW4gd2hlbiBnaXZlbiBhbiBvdXQtb2Ytb3JkZXIgbGluZSBzZXF1ZW5jZS4KCShsb29rdXBfYWRkcmVzc19pbl9saW5lX2luZm9fdGFibGUpOiBXaGVuIGFuIGV4YWN0IFZNQSBtYXRjaCBpcwoJbm90IGZvdW5kLCByZXR1cm4gbGluZSBpbmZvcm1hdGlvbiB3aXRoIHRoZSBjbG9zZXN0IFZNQS4KCjIwMDItMTAtMjMgUm9zcyBBbGV4YW5kZXIgPHJvc3MuYWxleGFuZGVyQHVrLm5lY2V1ci5jb20+CgoJKiBlbGY2NC1ocHBhLmM6IEZvcmNlIERUX0ZMQUdTIHRvIGFsd2F5cyBiZSBzZXQuICBSZXF1aXJlZCBieQoJSFBVWCAxMS4wMCBwYXRjaCBQSFNTXzI2NTU5LgoKMjAwMi0xMC0yMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfbW9kaWZ5X3NlZ21lbnRfbWFwKTogRG9uJ3QgbW92ZQoJdGhlIG9wdGlvbnMgc2VjdGlvbiBpbnRvIGEgc2VwYXJhdGUgc2VjdGlvbiB1bmxlc3MgSVJJWCA2Cgljb21wYXRpYmlsaXR5IGlzIGVuYWJsZWQuCgoyMDAyLTEwLTIyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoc3RydWN0IGVsZl9saW5rX3NvcnRfcmVsYSk6IFR1cm4gcmVsIGFuZCByZWxhCglpbnRvIGFycmF5cy4KCShlbGZfbGlua19zb3J0X2NtcDEsIGVsZl9saW5rX3NvcnRfY21wMik6IEFkanVzdC4KCShlbGZfbGlua19zb3J0X3JlbG9jcyk6IExpa2V3aXNlLiAgVGFrZSBpbnRfcmVsc19wZXJfZXh0X3JlbAoJaW50byBhY2NvdW50LgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBDb21wb3NlCglSX01JUFNfUkVMMzIgd2l0aCBSX01JUFM2NCBpZiBBQklfNjRfUC4KCjIwMDItMTAtMjEgIEdyYWVtZSBQZXRlcnNvbiAgPGdwQHFueC5jb20+CgoJKiB0YXJnZXRzLmMgKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IEFkZCBtaXNzaW5nIHFueCB2ZWN0b3JzLgoKMjAwMi0xMC0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHRhcmdldHMuYyAoYmZkX3RhcmdldF9saXN0KTogRG9uJ3QgcmV0dXJuIHRoZSBkZWZhdWx0IHRhcmdldCB0d2ljZS4KCjIwMDItMTAtMjEgIEVsaWFzIEF0aGFuYXNvcG91bG9zICA8ZWF0aGFuQG90ZW5ldC5ncj4KCgkqIGFyY2hpdmUuYyAoX2JmZF9hcmNoaXZlX2JzZF91cGRhdGVfYXJtYXBfdGltZXN0YW1wKTogUmVwbGFjZQoJcGVycm9yIHdpdGggYmZkX3BlcnJvci4KCjIwMDItMTAtMTkgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBDb3JyZWN0bHkgaGFuZGxlCglEVF9SUEFUSCBhbmQgRFRfUlVOUEFUSC4KCjIwMDItMTAtMTkgIE1hcmsgS2V0dGVuaXMgIDxrZXR0ZW5pc0BnbnUub3JnPgoKCSogZWxmLmMgKGVsZmNvcmVfZ3Jva19ub3RlKTogRml4IHJlY29nbml0aW9uIG9uIE5UX1BSWEZQUkVHIG5vdGVzLgoKMjAwMi0xMC0xNyAgRGVuaXMgQ2hlcnR5a292ICA8ZGVuaXNjQG92ZXJ0YS5ydT4KCgkqIGVsZjMyLWlwMmsuYyAoRUxGX01BQ0hJTkVfQUxUMSk6IERlZmluZSBhbHRlcm5hdGUgbWFjaGluZSBjb2RlCglmb3IgaXAyayBwb3J0LgoKMjAwMi0xMC0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZnh4LXRhcmdldC5oIChVU0VfUkVMKTogRG9uJ3QgZGVmaW5lIGFzIDEuCgkqIGVsZjMyLWFybS5oIChVU0VfUkVMKTogUHJvdmlkZSBhIGRlZmF1bHQgZGVmaW5lIG9mIDAuCglVc2UgI2lmIHJhdGhlciB0aGFuICNpZmRlZiB3aGVuIHRlc3RpbmcgVVNFX1JFTC4KCSogZWxmMzItbTMyci5jOiBMaWtld2lzZS4KCgkqIGVsZjMyLWFyYy5jIChVU0VfUkVMKTogRGVmaW5lIGFzIDEuCgkqIGVsZjMyLWQxMHYuYyAoVVNFX1JFTCk6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmMgKFVTRV9SRUwpOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxMS5jIChVU0VfUkVMKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGhjMTIuYyAoVVNFX1JFTCk6IExpa2V3aXNlLgoJKiBlbGYzMi1vcjMyLmMgKFVTRV9SRUwpOiBMaWtld2lzZS4KCSogZWxmYXJtLW5hYmkuYyAoVVNFX1JFTCk6IExpa2V3aXNlLgoKMjAwMi0xMC0xNiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcuYmZkIChzMzkwLSotbGludXgqKTogQWRkIHRhcmc2NF9zZWx2ZWNzLgoJKHMzOTB4LSotbGludXgqKTogQWRkIHRhcmdfc2VsdmVjcy4KCjIwMDItMTAtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBSZW1vdmUgZWxmYXJtcW54LW5hYmkubG8sCgllbGYzMi1pMzg2LWZic2QubG8sIGVsZjMyLWkzODZxbngubG8sIGVsZjMyLXBwY3FueC5sbywKCWVsZjMyLXNoLWxpbi5sbywgZWxmMzItc2g2NC1saW4ubG8sIGVsZjMyLXNoLW5ic2QubG8sCgllbGYzMi1zaDY0LW5ic2QubG8sIGVsZjMyLXNocW54LmxvLiAgQWRkIGVsZjMyLXFueC5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBMaWtld2lzZSBmb3IgY29ycmVzcG9uZGluZyBDIGZpbGVzLgoJKEJGRDY0X0JBQ0tFTkRTKTogUmVtb3ZlIGVsZjY0LXNoNjQtbGluLmxvLCBlbGY2NC1zaDY0LW5ic2QubG8uCgkoQkZENjRfQkFDS0VORFNfQ0ZJTEVTKTogTGlrZXdpc2UgZm9yIGNvcnJlc3BvbmRpbmcgQyBmaWxlcy4KCShTT1VSQ0VfSEZJTEVTKTogQWRkIGVsZjMyLXFueC5oLgoJKEJVSUxEX0hGSUxFUyk6IEFkZCBiZmR2ZXIuaC4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLmluIFVwZGF0ZSBiZmQgdmVjdG9yIGRlcGVuZGVuY2llcy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1pMzg2LWZic2QuYzogRGVsZXRlLiAgTW92ZSBjb2RlIHRvIGVsZjMyLWkzODYuYy4KCSogZWxmMzItaTM4NnFueC5jOiBMaWtld2lzZS4KCSogZWxmMzItcHBjcW54LmM6IERlbGV0ZS4gIE1vdmUgY29kZSB0byBlbGYzMi1wcGMuYy4KCSogZWxmMzItc2gtbmJzZC5jOiBEZWxldGUuICBNb3ZlIGNvZGUgdG8gZWxmMzItc2guYy4KCSogZWxmMzItc2gtbGluLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaHFueC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC1saW4uYzogRGVsZXRlLiAgTW92ZSBjb2RlIHRvIGVsZjMyLXNoNjQuYy4KCSogZWxmMzItc2g2NC1uYnNkLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LWxpbi5jOiBEZWxldGUuICBNb3ZlIGNvZGUgdG8gZWxmNjQtc2g2NC5jLgoJKiBlbGY2NC1zaDY0LW5ic2QuYzogTGlrZXdpc2UuCgkqIGVsZmFybXFueC1uYWJpLmM6IERlbGV0ZS4gIE1vdmUgY29kZSB0byBlbGZhcm0tbmFiaS5jLgoJKiBlbGYzMi1hcm0uaCAoRUxGX01BWFBBR0VTSVpFKTogQWx3YXlzIGRlZmluZS4KCSogZWxmMzItaTM4Ni5jOiBSZW1vdmUgRUxGX0FSQ0ggYW5kIEVMRjMyX0kzODZfQ19JTkNMVURFRCB0ZXN0cy4KCSogZWxmMzItcHBjLmM6IFJlbW92ZSBFTEYzMl9QUENfQ19JTkNMVURFRCB0ZXN0cy4KCSogZWxmMzItcW54LmggKGVsZl9iYWNrZW5kX3NldF9ub25sb2FkYWJsZV9maWxlcG9zKTogQWx3YXlzIGRlZmluZS4KCShlbGZfYmFja2VuZF9pc19jb250YWluZWRfYnlfZmlsZXBvcyk6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YV9wKTogTGlrZXdpc2UuCglHbG9iYWxpemUgYW5kIG1vdmUgZnVuY3Rpb25zIHRvLi4KCSogZWxmMzItcW54LmM6IC4uaGVyZS4gIE5ldyBmaWxlLgoJKiBlbGYzMi1zaC5jOiBSZW1vdmUgRUxGX0FSQ0ggYW5kIEVMRjMyX1NIX0NfSU5DTFVERUQgdGVzdHMuICBEb24ndAoJZW1pdCB0YXJnZXQgdmVjdG9ycyB3aGVuIElOQ0xVREVfU0hNRURJQS4KCSogZWxmMzItc2g2NC5jOiBSZW1vdmUgRUxGX0FSQ0ggdGVzdC4gIE1vdmUgVEFSR0VUXyogZXRjLiBkZWZpbmVzIHRvCgllbmQgb2YgZmlsZS4KCSogZWxmNjQtc2g2NC5jOiBSZW1vdmUgRUxGX0FSQ0ggdGVzdC4KCSogZWxmYXJtLW5hYmkuYzogUmVtb3ZlIEVMRkFSTV9OQUJJX0NfSU5DTFVERUQgdGVzdC4KCSogcG8vQkxELVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTEwLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBFcnJvciBvdXQgb24gZHluYW1pYyBvYmplY3RzCglsb2FkZWQgd2l0aCAtLWp1c3Qtc3ltYm9scy4KCgkqIGVsZjMyLWkzODZxbnguYyAoVEFSR0VUX0xJVFRMRV9OQU1FKTogRGVmaW5lLgoJKiBlbGYzMi1wcGNxbnguYyAoVEFSR0VUX0xJVFRMRV9OQU1FLCBUQVJHRVRfQklHX05BTUUpOiBEZWZpbmUuCgkqIGVsZjMyLXNocW54LmMgKFRBUkdFVF9MSVRUTEVfTkFNRSwgVEFSR0VUX0JJR19OQU1FKTogRGVmaW5lLgoJKiBlbGZhcm1xbngtbmFiaS5jIChUQVJHRVRfTElUVExFX05BTUUsIFRBUkdFVF9CSUdfTkFNRSk6IERlZmluZS4KCjIwMDItMTAtMTUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZENjRfQkFDS0VORFMpOiBSZW1vdmUgZWxmNjQtYWxwaGEtZmJzZC4KCShCRkQ2NF9CQUNLRU5EU19DRklMRVMpOiBMaWtld2lzZS4KCSogY29uZmlndXJlLmluIChiZmRfZWxmNjRfYWxwaGFfZnJlZWJzZF92ZWMpOiBVc2UgZWxmNjQtYWxwaGEuCgkqIGVsZjY0LWFscGhhLWZic2QuYzogUmVtb3ZlIGZpbGUsIG1vdmUgY29kZSAuLi4KCSogZWxmNjQtYWxwaGEuYzogLi4uIGhlcmUuCgkqIE1ha2VmaWxlLmluLCBjb25maWd1cmU6IFJlYnVpbGQuCgoyMDAyLTEwLTE0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbikgW0JSU0dQXTogSW5jcmVtZW50CglWQUxVRSwgbm90IEFEREVORC4KCjIwMDItMTAtMTQgIFN0ZXBoZW4gQ2xhcmtlIDxzdGVwaGVuLmNsYXJrZUBzdXBlcmguY29tPgoKCSogZWxmMzItc2guYyAoZWxmX3NoX2xpbmtfaGFzaF9lbnRyeSk6IFJlcGxhY2UKCWRhdGFsYWJlbF9nb3Rfb2Zmc2V0IHdpdGggdW5pb24gb2YgZGF0YWxhYmVsX2dvdAoJb2Zmc2V0IGFuZCByZWZjb3VudC4KCShzaF9lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplIGRhdGFsYWJlbF9nb3QucmVmY291bnQuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogRGVsZXRlIHVubmVjZXNzYXJ5IGNvZGUgZm9yCglTVFRfREFUQUxBQkVMIHR5cGUuICBDcmVhdGUgZW50cnkgaW4gZ290IGZvcgoJZGF0YWxhYmVsIHZlcnNpb24gb2Ygc3ltYm9sIGlmIGRhdGFsYWJlbF9nb3QucmVmY291bnQgPiAwLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIGRhdGFsYWJlbF9nb3QgdW5pb24uCgkoc2hfZWxmX2djX3N3ZWVwX2hvb2spOiBQdWxsIGNvbW1vbiBjb2RlIHRvIGluaXRpYWxpemUKCWggYW5kIGVoIG91dCBvZiBzd2l0Y2ggc3RhdGVtZW50LiAgRGVjbGFyZSBzZWVuX3N0dF9kYXRhbGFiZWwuCglJbml0aWFsaXplIGl0LiAgRGVjcmVtZW50IGRhdGFsYWJlbF9nb3QucmVmY291bnQgZm9yCglnb3QgcmVsb2NzIHdoZW4gc2Vlbl9zdHRfZGF0YWxhYmVsIGlzIHRydWUuCglEZWNyZW1lbnQgbG9jYWxfZ290X3JlZmNvdW50cyBlbnRyeSBmb3IgZGF0YWxhYmVsIGdvdCByZWxvY3MKCW9mIGxvY2FsIHN5bWJvbHMuCgkoc2hfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29weSBkYXRhbGFiZWxfZ290IGZpZWxkIG92ZXIuCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IERlY2xhcmUgc2Vlbl9zdHRfZGF0YWxhYmVsLgoJSW5pdGlhbGl6ZSBpdC4gIFdoZW4gc2Vlbl9zdHRfZGF0YWxhYmVsIGlzIHRydWUsIGluY3JlbWVudAoJZGF0YWxhYmVsX2dvdCByZWZjb3VudCByYXRoZXIgdGhhbiBnb3QucmVmY291bnQuCgkoc2hfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IENyZWF0ZSByZWxvY3MgdG8KCWluaXRpYWxpemUgZ290IGVudHJ5IGZvciBkYXRhbGFiZWwgdmVyc2lvbiBvZiBzeW1ib2wuCgoyMDAyLTEwLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKEJGRF9IX0ZJTEVTKTogUmVtb3ZlIHZlcnNpb24uaC4KCSogYmZkLWluLmggKEJGRF9WRVJTSU9OLCBCRkRfVkVSU0lPTl9EQVRFLCBCRkRfVkVSU0lPTl9TVFJJTkcpOiBNb3ZlLi4KCSogdmVyc2lvbi5oOiAuLnRvIGhlcmUuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX3ZlcnNpb25fZGF0ZSk6IFJlbW92ZS4KCShBQ19PVVRQVVQpOiBNYWtlIGJmZHZlci5oIGZyb20gdmVyc2lvbi5oLgoJKiBiZmQuYzogI2luY2x1ZGUgImJmZHZlci5oIi4KCSogdm1zLWhkci5jOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTEwLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfaTM4Nl9pMzg2LCBiZmRfbWFjaF9pMzg2X2k4MDg2LAoJYmZkX21hY2hfaTM4Nl9pMzg2X2ludGVsX3N5bnRheCwgYmZkX21hY2hfeDg2XzY0LAoJYmZkX21hY2hfeDg2XzY0X2ludGVsX3N5bnRheCBiZmRfbWFjaF9wcGMsIGJmZF9tYWNoX3BwYzY0LAoJYmZkX21hY2hfcnM2aywgYmZkX21hY2hfZDEwdiwgYmZkX21hY2hfc2gsIGJmZF9tYWNoX3Y4NTAsCgliZmRfbWFjaF9hcmNfNSwgYmZkX21hY2hfYXJjXzYsIGJmZF9tYWNoX2FyY183LCBiZmRfbWFjaF9hcmNfOCwKCWJmZF9tYWNoX20zMnIsIGJmZF9tYWNoX2ZydiwgYmZkX21hY2hfZnJ2c2ltcGxlLAoJYmZkX21hY2hfaWE2NF9lbGY2NCwgYmZkX21hY2hfaWE2NF9lbGYzMiwKCWJmZF9tYWNoX2lwMjAyMiwgYmZkX21hY2hfaXAyMDIyZXh0LAoJYmZkX21hY2hfczM5MF8zMSwgYmZkX21hY2hfczM5MF82NCwgYmZkX21hY2hfeHN0b3JteTE2KTogUmVudW1iZXIuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMTAtMTQgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogY29uZmlnLmJmZCAoc2gqZWItKi1saW51eCosIHNoKi0qLWxpbnV4Kik6IEFkZCB0aGUgYWx0ZXJuYXRpdmUKCWVuZGlhbiB2ZWN0b3IgdG8gdGFyZ19zZWx2ZWNzLgoKMjAwMi0xMC0xMyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogVGFrZQoJc2F2ZV9hZGRlbmQgYXJndW1lbnQuICBEb24ndCBhcHBseSB0aGUgMzItYml0IG1hc2sgdG8gYQoJR1BSRUwzMiB2YWx1ZSBpZiBpdCdzIHRvIGJlIHVzZWQgaW4gYW5vdGhlciByZWxvY2F0aW9uLiAgRG9uJ3QKCXVzZSBmb3JjZWQtY2hlY2sgY29tcHV0YXRpb24gb2YgbG9jYWxfcCB0byBkZWNpZGUgd2hldGhlciB0bwoJYWRkIGdwMCB0byBHUFJFTDE2IHZhbHVlLiAgRG9uJ3QgdXNlIG9ubHkgdGhlIGxvd2VzdCAxNiBiaXRzCglvZiB0aGUgYWRkZW5kIG9mIGEgbm9uLWluLXBsYWNlIEdQUkVMMTYgcmVsb2NhdGlvbi4KCShfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBQYXNzIHVzZV9zYXZlZF9hZGRlbmRfcCB0bwoJbWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24oKS4KCjIwMDItMTAtMTIgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxMS5jIChtNjhoYzExX2VsZl9yZWxheF9zZWN0aW9uKTogRG9uJ3QgdHJlYXQgcmVsb2NzCgl3aXRoIHN5bWJvbHMgaW4gb3RoZXIgc2VjdGlvbnMgaWYgd2UgcmVsYXhlZCBzb21ldGhpbmc7ICB0aGUgc2VjdGlvbnMKCW91dHB1dCBvZmZzZXRzIG11c3QgYmUgcmUtY29tcHV0ZWQgYmVmb3JlLgoKMjAwMi0xMC0xMiAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbGYzMi1tNjhoYzExLmMgKG02OGhjMTFfZWxmX3JlbGF4X3NlY3Rpb24pOiBVcGRhdGUgc3ltYm9scwoJaGFuZGxpbmcgdG8gdXNlIEVsZl9JbnRlcm5hbF9TeW0uCgkobTY4aGMxMV9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgoyMDAyLTEwLTExICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9vcHRpbWl6ZWRfdGxzX3JlbG9jLCBzaF9lbGZfbWtvYmplY3QsCglzaF9lbGZfb2JqZWN0X3AsIGR0cG9mZl9iYXNlKTogTmV3IGZ1bmN0aW9ucy4KCShzaF9lbGZfaG93dG9fdGFibGUpOiBBZGQgVExTIHJlbG9jcy4KCShzaF9yZWxvY19tYXApOiBMaWtld2lzZS4KCShzaF9lbGZfaW5mb190b19ob3d0byk6IFN1cHBvcnQgVExTIHJlbG9jcy4KCShlbGZfc2hfbGlua19oYXNoX2VudHJ5KTogQWRkIHRsc190eXBlIGFuZCB0bHNfdHBvZmYzMi4KCShzaF9lbGZfaGFzaF9lbnRyeSwgc2hfZWxmX3RkYXRhLCBzaF9lbGZfbG9jYWxfZ290X3Rsc190eXBlKToKCU5ldyBtYWNyb3MuCgkoc2hfZWxmX29ial90ZGF0YSk6IE5ldy4KCShlbGZfc2hfbGlua19oYXNoX3RhYmxlKTogQWRkIHRsc19sZG1fZ290LgoJKHNoX2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogQ2xlYXIgcmVmY291bnQgb2YgdGxzX2xkbV9nb3QuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogU3VwcG9ydCBUTFMgcmVsb2NzLgoJKHNoX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFN1cHBvcnQgVExTIHJlbG9jcy4gIERvbid0IHRyeSB0byBmaW5kCgkucmVsYS5nb3Qgc2VjdGlvbiB3aGVuIGZvdW5kIGFscmVhZHkuICBSZXR1cm4gZmFsc2UgYWZ0ZXIgcHJpbnRpbmcKCWVycm9yIGFib3V0IHVucmVzb2x2YWJsZSByZWxvY2F0aW9uLgoJKHNoX2VsZl9nY19zd2VlcF9ob29rKTogU3VwcG9ydCBUTFMgcmVsb2NzLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShzaF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoYmZkX2VsZjMyX21rb2JqZWN0LCBlbGZfYmFja2VuZF9vYmplY3RfcCk6IERlZmluZSBmb3IgVExTIGNhc2UuCgkqIHJlbG9jLmM6IEFkZCBTSCBUTFMgcmVsb2NzLgoJKiBiZmQtaW4yLmgsIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoKMjAwMi0xMC0xMSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDAyLTEwLTExICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gZGVwLWFtLgoJKEJGRF9IX0RFUCk6IEFkZCBzaW1wbGUuYyBhbmQgbGlua2VyLmMuCgkoQkZEMzJfTElCUyk6IEFkZCBzaW1wbGUubG8uCgkoQkZEMzJfTElCU19DRklMRVMpOiBBZGQgc2ltcGxlLmMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCSogc2ltcGxlLmM6IE5ldyBmaWxlLgoKMjAwMi0xMC0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtYXJtLmMgKHJlY29yZF9hcm1fdG9fdGh1bWJfZ2x1ZSk6IEF2b2lkIHR5cGUtcHVubmVkIHBvaW50ZXJzLgoJKHJlY29yZF90aHVtYl90b19hcm1fZ2x1ZSk6IExpa2V3aXNlLgoJKiBlY29mZi5jIChlY29mZl9saW5rX2FkZF9leHRlcm5hbHMpOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmggKHJlY29yZF9hcm1fdG9fdGh1bWJfZ2x1ZSk6IExpa2V3aXNlLgoJKHJlY29yZF90aHVtYl90b19hcm1fZ2x1ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZl9hZGRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKGZ1bmNfZGVzY19hZGp1c3QpOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKHNoNjRfZWxmNjRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmbGluay5jIChfYmZkX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24pOiBMaWtld2lzZS4KCShfYmZkX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2NyZWF0ZV9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmggKGVsZl9hZGRfZGVmYXVsdF9zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9haXhfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2dvdF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZl9hZGRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGxpbmtlci5jIChnZW5lcmljX2xpbmtfYWRkX3N5bWJvbF9saXN0KTogTGlrZXdpc2UuCgkqIHhjb2ZmbGluay5jICh4Y29mZl9saW5rX2FkZF9zeW1ib2xzKTogTGlrZXdpc2UuCgoJKiBlbGZ4eC1pYTY0LmMgKG9vcl9icmwsIG9vcl9pcCk6IENvbmRpdGlvbmFsbHkgZGVmaW5lLgoKCSogZWxmNjQtcHBjLmMgKGVkaXRfb3BkKTogT25seSB6ZXJvIG9wZCBzeW1zIHdoZW4gZnVuY3Rpb24gaXMKCWNvbXBsZXRlbHkgcmVtb3ZlZC4gIENvcnJlY3QgbG9jYWwgc3ltIGFkanVzdG1lbnQuCgoyMDAyLTEwLTEwICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIGVsZjMyLXNoLmMgKGVsZl9zaF9waWNfcGx0X2VudHJ5X2JlLCBlbGZfc2hfcGljX3BsdF9lbnRyeV9sZSk6CglDb3JyZWN0IG1pc3Rha2UgaW4gY2FsY3VsYXRpb24gb2YgYWRkcmVzcyBvZiAuZ290LgoJKiBlbGY2NC1zaDY0LmMgKGVsZl9zaDY0X3BpY19wbHRfZW50cnlfYmUsCgllbGZfc2g2NF9waWNfcGx0X2VudHJ5X2xlKTogTGlrZXdpc2UuCgoyMDAyLTEwLTA5ICBSaWNoYXJkIFNoYW5uIDxyaWNoYXJkLnNoYW5uQHN1cGVyaC5jb20+CgkgICAgU3RlcGhlbiBDbGFya2UgPHN0ZXBoZW4uY2xhcmtlQHN1cGVyaC5jb20+CgoJKiBNYWtlZmlsZS5hbTogQWRkIGVudHJpZXMgZm9yIGVsZjMyLXNoNjQtbGluLmMgYW5kCgllbGY2NC1zaDY0LWxpbi5jLiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZDogQ2hhbmdlIHNoNjRlYi0qLWxpbnV4KiBhbmQgc2g2NC0qLWxpbnV4KgoJdG8gdXNlIHNoNjQgdmVjdG9ycyByYXRoZXIgdGhhbiBzaCB2ZWN0b3JzLgoJKiBjb25maWd1cmUuaW46IEFkZCBiZmRfZWxmMzJfc2g2NGxpbl92ZWMsIGJmZF9lbGYzMl9zaDY0Ymxpbl92ZWMsCgliZmRfZWxmNjRfc2g2NGxpbl92ZWMsIGJmZF9lbGY2NF9zaDY0Ymxpbl92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmMzItc2g2NC1saW4uYzogTmV3IGZpbGUuCgkqIGVsZjY0LXNoNjQtbGluLmM6IE5ldyBmaWxlLgoJKiB0YXJnZXRzLmM6IEFkZCBiZmRfZWxmMzJfc2g2NGxpbl92ZWMsIGJmZF9lbGYzMl9zaDY0Ymxpbl92ZWMsCgliZmRfZWxmNjRfc2g2NGxpbl92ZWMsIGJmZF9lbGY2NF9zaDY0Ymxpbl92ZWMuCgoyMDAyLTEwLTA4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IFJlLWFycmFuZ2UgdGhlCglJRS0+TEUgdHJhbnNpdGlvbiBmb3IgUl8zODZfVExTX0lFLgoKMjAwMi0xMC0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChlZGl0X29wZCk6IENvcnJlY3QgdGVzdCBmb3IgZGlzY2FyZGVkIHNlY3Rpb25zLgoKMjAwMi0xMC0wNyAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0Bzb2Z0aG9tZS5uZXQ+CgoJKiBjb2ZmbGluay5jIChtYXJrX3JlbG9jcyk6IERvbid0IG1hcmsgcmVsb2NhdGlvbnMgaW4gZXhjbHVkZWQKCXNlY3Rpb25zLgoKMjAwMi0xMC0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogUmVtb3ZlIEJGRF9WRVJTSU9OX0RBVEUgZGVwZW5kZW50Cgljb2RlLgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IEluY3JlbWVudCAuZ2xpbmsgaW5keC4KCjIwMDItMTAtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBvcG5jbHMuYzogRm9ybWF0dGluZy4KCShfYmZkX25ld19iZmQpOiBVc2UgYSBzbWFsbGVyIHNlY3Rpb24gaGFzaCB0YWJsZS4KCjIwMDItMTAtMDUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogU2V0IHRoZSB0eXBlCglvZiB0aGUgb3RoZXIgdHdvIHJlbG9jYXRpb25zIHBhY2tlZCB3aXRoIGEgUkVMMzIgdG8gTk9ORS4KCjIwMDItMTAtMDIgIFN0ZXBoZW4gQ2xhcmtlIDxzdGVwaGVuLmNsYXJrZUBzdXBlcmguY29tPgoKCSogZWxmMzItc2guYyAoZWxmX3NoX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCBnb3RwbHRfcmVmY291bnQuCgkoc2hfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogSW5pdGlhbGl6ZSBpdC4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBUcmFuc2ZlciBnb3RwbHQgcmVmcyBmcm9tIHBsdC5yZWZjb3VudAoJdG8gZ290LnJlZmNvdW50IGZvciBzeW1ib2xzIHRoYXQgYXJlIGZvcmNlZCBsb2NhbCBvciB3aGVuCgl3ZSBoYXZlIGRpcmVjdCBnb3QgcmVmcy4KCShzaF9lbGZfZ2Nfc3dlZXBfaG9vayk6IEFkanVzdCBnb3RwbHRfcmVmY291bnQuICBVc2UgaXQKCXRvIGNvcnJlY3RseSBhZGp1c3QgZ290LnJlZmNvdW50IGFuZCBwbHQucmVmY291bnQuCgkoc2hfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29weSBnb3RwbHRfcmVmY291bnQgYWNyb3NzLgoJKHNoX2VsZl9jaGVja19yZWxvY3MpOiBJbmNyZW1lbnQgZ290cGx0X3JlZmNvdW50LgoKMjAwMi0xMC0wMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBGaXgKCW1vdmwgZm9vQGluZG50cG9mZiwgJWVheCBJRS0+TEUgdHJhbnNpdGlvbi4KCjIwMDItMTAtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogQ2hhbmdlIFRMU0dECglzZXF1ZW5jZSBhbmQgaXRzIHRyYW5zaXRpb25zLgoKMjAwMi0xMC0wMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBSZXNvbHZlIFJfMzg2X1RMU19MRE9fMzIKCXRvIHN0X3ZhbHVlICsgYWRkZW5kIGluIG5vbi1jb2RlIHNlY3Rpb25zLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBSZXNvbHZlCglSX1g4Nl82NF9EVFBPRkYzMiB0byBzdF92YWx1ZSArIGFkZGVuZCBpbiBub24tY29kZSBzZWN0aW9ucy4KCjIwMDItMDktMzAgIEdhdmluIFJvbWlnLUtvY2ggIDxnYXZpbkByZWRoYXQuY29tPgoJICAgIEtlbiBSYWVidXJuICA8cmFlYnVybkBjeWdudXMuY29tPgoJICAgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCSAgICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCSAgICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9taXBzNDEyMCwgYmZkX21hY2hfbWlwczU0MDApOiBOZXcuCgkoYmZkX21hY2hfbWlwczU1MDApOiBOZXcuCgkqIGNwdS1taXBzLmMgKElfbWlwczQxMjAsIElfbWlwczU0MDAsIElfbWlwczU1MDApOiBOZXcuCgkoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZCBjb3JyZXNwb25kaW5nIGVudHJpZXMgaGVyZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX2VsZl9taXBzX21hY2gpOiBIYW5kbGUgRV9NSVBTX01BQ0hfNDEyMCwKCUVfTUlQU19NQUNIXzU0MDAgYW5kIEVfTUlQU19NQUNIXzU1MDAuCgkoX2JmZF9taXBzX2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogSGFuZGxlIGJmZF9tYWNoX21pcHM0MTIwLAoJYmZkX21hY2hfbWlwczU0MDAgYW5kIGJmZF9tYWNoX21pcHM1NTAwLgoJKF9iZmRfbWlwc19lbGZfbWFjaF9leHRlbmRzX3ApOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogVXNlIGl0IHRvIGhlbHAgbWVyZ2UKCXRoZSBFRl9NSVBTX01BQ0ggZmxhZ3MuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDktMjggIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBlbGYzMi12YXguYyAoZWxmX3ZheF9zaXplX2R5bmFtaWNfc2VjdGlvbik6IERvbid0IHN0cmlwCgkuZ290IHNlY3Rpb25zLgoKMjAwMi0wOS0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChtYXBfc2VjdGlvbnNfdG9fc2VnbWVudHMpOiBDb3JyZWN0IHRlc3QgZm9yIHN0YXJ0IG9mCgl3cml0YWJsZSBzZWN0aW9uIGluIHRoZSBzYW1lIHBhZ2UgYXMgZW5kIG9mIHJlYWQtb25seSBzZWN0aW9uLgoKMjAwMi0wOS0yNyAgTWF0dCBUaG9tYXMgIDxtYXR0QDNhbS1zb2Z0d2FyZS5jb20+CgoJKiBlbGYzMi12YXguYyAoZWxmX3ZheF9jaGVja19yZWxvY3MpOiBSZW1vdmUgdW51c2VkCglsb2NhbF9nb3RfcmVmY291bnRzIHVzYWdlLiAgUmVtb3ZlIGFsbG9jYXRpb24gb2YgZ290IHNsb3QuCgkoZWxmX3ZheF9nY19zd2VlcF9ob29rKTogUmVtb3ZlIHVudXNlZCBsb2NhbF9nb3RfcmVmY291bnRzIHVzYWdlLgoJUmVtb3ZlIGRlLWFsbG9jYXRpb24gb2YgZ290IHNsb3QuCgkoZWxmX3ZheF9zaXplX2R5bmFtaWNfc2VjdGlvbik6IEZpeCBzb21lIGluZGVudGF0aW9uLiAgQWRkIGhhc2gKCXRyYXZlcnNhbCBmb3IgZWxmX3ZheF9pbnN0YW50aWF0ZV9nb3RfZW50cmllcy4gIEFsbG93IGVtcHR5IC5nb3QKCXNlY3Rpb25zIHRvIGJlIEdDJ2VkLgoJKGVsZl92YXhfaW5zdGFudGlhdGVfZ290X2VudHJpZXMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX3ZheF9yZWxvY2F0ZV9zZWN0aW9uKTogU2ltcGxpZnkgUl9WQVhfR09UMzIgaGFuZGxpbmcuICBSZW1vdmUKCXRlc3RzIHRoYXQgYXJlIG5vdyBoYW5kbGVkIGJ5IGVsZl92YXhfaW5zdGFudGlhdGVfZ290X2VudHJpZXMuCglBc3NlcnQgR09UIGVudHJ5IGZhbGxzIHdpdGhpbiAuZ290IHNlY3Rpb24gc2l6ZS4gIFJlbW92ZSByZWR1bmRhbnQKCWNvbXBhcmlzaW9ucy4gIEZpeCBjb21tZW50cy4KCjIwMDItMDktMjcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogcmVsb2MuYzogQWRkIHg4Ni02NCBUTFMgcmVsb2NzLgoJKiBiZmQtaW4yLmgsIGxpYmJmZC5oOiBSZWJ1aWx0LgoJKiBlbGY2NC14ODYtNjQuYyAoeDg2XzY0X2VsZl9ob3d0byk6IEZpeCBzaXplIGZpZWxkcyBmb3IgMzItYml0CglyZWxvY3MuICBBZGQgVExTIHJlbG9jcy4KCSh4ODZfNjRfcmVsb2NfbWFwKTogQWRkIFRMUyByZWxvY3MuCgkoZWxmNjRfeDg2XzY0X2luZm9fdG9faG93dG8pOiBBZGp1c3QgZm9yIGFkZGVkIFRMUyByZWxvY3MuCgkoc3RydWN0IGVsZjY0X3g4Nl82NF9saW5rX2hhc2hfZW50cnkpOiBBZGQgdGxzX3R5cGUgZmllbGQuCgkoR09UX1VOS05PV04sIEdPVF9OT1JNQUwsIEdPVF9UTFNfR0QsIEdPVF9UTFNfSUUpOiBEZWZpbmUuCgkoZWxmNjRfeDg2XzY0X2hhc2hfZW50cnkpOiBEZWZpbmUuCgkoc3RydWN0IGVsZjY0X3g4Nl82NF9vYmpfdGRhdGEpOiBOZXcuCgkoZWxmNjRfeDg2XzY0X3RkYXRhLCBlbGY2NF94ODZfNjRfbG9jYWxfZ290X3Rsc190eXBlKTogRGVmaW5lLgoJKHN0cnVjdCBlbGY2NF94ODZfNjRfbGlua19oYXNoX3RhYmxlKTogQWRkIHRsc19sZF9nb3QuCgkobGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplIHRsc190eXBlLgoJKGVsZjY0X3g4Nl82NF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdGlhbGl6ZSB0bHNfbGRfZ290LgoJKGVsZjY0X3g4Nl82NF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IFN3YXAgdGxzX3R5cGUgaWYgbmVjZXNzYXJ5LgoJKGVsZjY0X3g4Nl82NF9ta29iamVjdCk6IE5ldy4KCShlbGY2NF94ODZfNjRfZWxmX29iamVjdF9wKTogQWxsb2NhdGUgc3RydWN0IGVsZjY0X3g4Nl82NF9vYmpfdGRhdGEuCgkoZWxmNjRfeDg2XzY0X3Rsc190cmFuc2l0aW9uKTogTmV3LgoJKGVsZjY0X3g4Nl82NF9jaGVja19yZWxvY3MpOiBBZGQgcl90eXBlIHZhcmlhYmxlIGFuZCB1c2UgaXQuCglIYW5kbGUgVExTIHJlbG9jcy4KCShlbGY2NF94ODZfNjRfZ2Nfc3dlZXBfaG9vayk6IEhhbmRsZSBUTFMgcmVsb2NzLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEFsbG9jYXRlIEdPVCBzcGFjZSBmb3IgVExTIHJlbG9jcy4KCShlbGY2NF94ODZfNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZHRwb2ZmX2Jhc2UsIHRwb2ZmKTogTmV3LgoJKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIFRMUyByZWxvY3MuCgkoZWxmNjRfeDg2XzY0X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IE9ubHkgaGFuZGxlIG5vbi1UTFMgR09UCgllbnRyaWVzLgoJKGJmZF9lbGY2NF9ta29iamVjdCk6IERlZmluZS4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY2hlY2tfcmVsb2NzKSBbUl8zODZfVExTX0xFXTogU2V0CglERl9TVEFUSUNfVExTIGlmIHNoYXJlZC4KCjIwMDItMDktMjYgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmFrZV9zZWN0aW9ucyk6IERvbid0IGVtaXQgdW5uZWVkZWQKCWVtcHR5IHJlbG9jYXRpb24gc2VjdGlvbnMuCgoyMDAyLTA5LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwY19idWlsZF9vbmVfc3R1Yik6IERvbid0IGJ1aWxkIGdsaW5rIHN0dWJzIGhlcmUuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogQnVpbGQgdGhlbSBoZXJlIGluc3RlYWQuCgoyMDAyLTA5LTI0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBQdXQgUl9TUEFSQ19SRUxBVElWRQoJYWRkZW5kIGludG8gcl9hZGRlbmQsIG5vdCAqcl9vZmZzZXQuCgkoZWxmMzJfc3BhcmNfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IENsZWFyIHh3b3JkIGF0CglSX1NQQVJDX1JFTEFUSVZFJ3Mgcl9vZmZzZXQuCgoyMDAyLTA5LTIzICBOYXRoYW4gVGFsbGVudCAgPGVyYXh4b25AYWx1bW5pLnJpY2UuZWR1PgoKCSogZHdhcmYyLmMgKGRlY29kZV9saW5lX2luZm8pOiBVcGRhdGUgdG8gY29ycmVjdGx5IGRlY29kZQoJdGhlIChub24tc3RhbmRhcmQgRFdBUkYyKSBvdXQtb2Ytb3JkZXIgYWRkcmVzcyBzZXF1ZW5jZXMKCWdlbmVyYXRlZCBieSB0aGUgSW50ZWwgQysrIDYuMCBjb21waWxlciBmb3IgaWE2NC1MaW51eC4KCjIwMDItMDktMjMgIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAc29mdGhvbWUubmV0PgoKCSogY29uZmlnLmJmZDogRm9yIERKR1BQIHRhcmdldHMsIG1hdGNoIHdpdGggYW55IGNwdSBhbmQgYW55IG1hY2hpbmUuCgoyMDAyLTA5LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IFplcm8gcmVsb2NzCglmb3IgZGlzY2FyZGVkIEZERXMuICBSZW1vdmUgcmVkdW5kYW50IGFzc2lnbm1lbnQuCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBTYXZlIGVkaXRlZCByZWxvY3MuCgoyMDAyLTA5LTIyICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX21lcmdlX2luZF9zeW1ib2xzKTogRG9uJ3QgbWVyZ2UKCXRoZSByZWxvY2F0aW9uIGNvdW50IGJldHdlZW4gZGlmZmVyZW50IC5yZWxvYyBzZWN0aW9ucy4KCjIwMDItMDktMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQWxsb3cgIi5zYnNzLioiIGFuZAoJIi5zZGF0YS4qIiBmb3IgUl9QUENfU0RBUkVMMTYsICIuc2JzczIqIiBhbmQgIi5zZGF0YTIqIiBmb3IKCVJfUFBDX0VNQl9TREEyUkVMLiAgU2ltaWxhcmx5IGZvciBSX1BQQ19FTUJfU0RBMjEgYW5kCglSX1BQQ19FTUJfUkVMU0RBLgoKCSogZWxmY29kZS5oIChlbGZfc2x1cnBfcmVsb2NfdGFibGVfZnJvbV9zZWN0aW9uKTogTWFrZSAic3ltY291bnQiCgl1bnNpZ25lZC4gIE1vdmUgInN5bWNvdW50IiBhc3NpZ25tZW50IG91dCBvZiBsb29wLgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnbmVyYXRlLgoKMjAwMi0wOS0xOSAgTmF0aGFuIFRhbGxlbnQgIDxlcmF4eG9uQGFsdW1uaS5yaWNlLmVkdT4KCgkqIGR3YXJmMi5jIChfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZSk6IElmIGFkZHJlc3MgbGVuZ3RoIGlzCgl6ZXJvLCBzZXQgaXQgdG8gOCBmb3IgKG5vbi1zdGFuZGFyZCkgNjQtYml0IERXQVJGMiBmb3JtYXRzCgkoZS5nLiBJUklYNjQpLgoKMjAwMi0wOS0xOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBDbGVhciAuZ290IHdvcmQKCWV2ZW4gaWYgZ2VuZXJhdGluZyBSX1BQQ19SRUxBVElWRSByZWxvYy4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBNYWtlIHN1cmUgcmVsb2NhdGlvbiBpcyBwZXJmb3JtZWQKCWlmIHNraXAgPT0gLTIuICBDbGVhciBtZW1vcnkgYXQgcl9vZmZzZXQgd2hlbiBjcmVhdGluZyBkeW5hbWljCglyZWxvY2F0aW9uLgoKMjAwMi0wOS0xOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiByZWxvYy5jIChCRkRfUkVMT0NfMzg2X1RMU19UUE9GRiwgQkZEX1JFTE9DXzM4Nl9UTFNfSUUsCglCRkRfUkVMT0NfMzg2X1RMU19HT1RJRSk6IEFkZC4KCSogYmZkLWluMi5oLCBsaWJiZmQuaDogUmVidWlsdC4KCSogZWxmMzItaTM4Ni5jIChlbGZfaG93dG9fdGFibGUpOiBBZGQgUl8zODZfVExTX1RQT0ZGLCBSXzM4Nl9UTFNfSUUKCWFuZCBSXzM4Nl9UTFNfR09USUUuCgkoZWxmX2kzODZfcmVsb2NfdHlwZV9sb29rdXApOiBIYW5kbGUgaXQuCgkoc3RydWN0IGVsZl9pMzg2X2xpbmtfaGFzaF9lbnRyeSk6IENoYW5nZSB0bHNfdHlwZSB0eXBlIHRvIHVuc2lnbmVkCgljaGFyIGluc3RlYWQgb2YgZW51bSwgY2hhbmdlIEdPVF8qIGludG8gZGVmaW5lcy4KCShHT1RfVExTX0lFX1BPUywgR09UX1RMU19JRV9ORUcsIEdPVF9UTFNfSUVfQk9USCk6IERlZmluZS4KCShlbGZfaTM4Nl90bHNfdHJhbnNpdGlvbik6IEhhbmRsZSBSXzM4Nl9UTFNfSUUgYW5kIFJfMzg2X1RMU19HT1RJRS4KCShlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4gIEF2b2lkIGNyYXNoIGlmIGxvY2FsIHN5bWJvbCBpcwoJYWNjZXNzZWQgYm90aCBhcyBub3JtYWwgYW5kIFRMUyBzeW1ib2wuICBNb3ZlIFJfMzg2X1RMU19MRE0gYW5kCglSXzM4Nl9QTFQzMiBjYXNlcyBzbyB0aGF0IFJfMzg2X1RMU19JRSBjYW4gZmFsbCB0aHJvdWdoLgoJSGFuZGxlIFJfMzg2X1RMU19MRV8zMiBhbmQgUl8zODZfVExTX0xFIGluIHNoYXJlZCBsaWJzLgoJKGVsZl9pMzg2X2djX3N3ZWVwX2hvb2spOiBIYW5kbGUgUl8zODZfVExTX0lFIGFuZCBSXzM4Nl9UTFNfR09USUUuCglIYW5kbGUgUl8zODZfVExTX0xFXzMyIGFuZCBSXzM4Nl9UTFNfTEUgaW4gc2hhcmVkIGxpYnMuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogQWxsb2NhdGUgMiAuZ290IGFuZCAyIC5yZWwuZ290IGVudHJpZXMgaWYKCXRsc190eXBlIGlzIEdPVF9UTFNfSUVfQk9USC4KCShlbGZfaTM4Nl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIFJfMzg2X1RMU19JRSBhbmQgUl8zODZfVExTX0dPVElFLgoJSGFuZGxlIFJfMzg2X1RMU19MRV8zMiBhbmQgUl8zODZfVExTX0xFIGluIHNoYXJlZCBsaWJzLgoJKGVsZl9pMzg2X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFVzZSB0bHNfdHlwZSAmIEdPVF9UTFNfSUUgdG8gY2F0Y2gKCWFsbCA0IEdPVF9UTFNfKiBUTFMgdHlwZXMuCgoyMDAyLTA5LTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfZml4X3N5bWJvbF9mbGFncyk6IFdoZW4gZXhhbWluaW5nIHdlYWsgc3ltYm9scywKCWZvbGxvdyBpbmRpcmVjdCBsaW5rcy4KCjIwMDItMDktMTkgIE5hdGhhbiBUYWxsZW50ICA8ZXJheHhvbkBhbHVtbmkucmljZS5lZHU+CgoJKiBlY29mZnN3YXAuaCAoZWNvZmZfc3dhcF9wZHJfaW4pIDxpc3ltLCBpbGluZT46IFVwZGF0ZSB0bwoJY29ycmVjdGx5IHNpZ24tZXh0ZW5kIDMyLWJpdCBFQ09GRiBudWxsIHZhbHVlcyAoMHhmZmZmZmZmZiwgLTEpCglvbiA2NCBiaXQgbWFjaGluZXMuCgkoZWNvZmZfc3dhcF9zeW1faW4pIDxpc3M+OiBMaWtld2lzZS4KCSogZWNvZmYuYyAoX2JmZF9lY29mZl9zbHVycF9zeW1ib2xpY19pbmZvKTogRml4IGVycm9yIHJlYWRpbmcKCUVDT0ZGIGluZm9ybWF0aW9uOiAnaW9wdE1heCcgcmVmZXJzIHRvIHRoZSBhY3R1YWwgKnNpemUqCglvZiB0aGUgb3B0aW1pemF0aW9uIHN5bXRhYiwgbm90IHRoZSBudW1iZXIgb2YgZW50cmllcy4KCjIwMDItMDktMTkgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBVcGRhdGUKCUVMRl9MSU5LX0hBU0hfTkVFRFNfUExUIGxvZ2ljLgoKMjAwMi0wOS0xOCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbGZjb2RlLmggKGVsZl9zbHVycF9yZWxvY190YWJsZV9mcm9tX3NlY3Rpb24pOiBDaGVjawoJY29ycmVjdCByZWxvY2F0aW9uIGNvdW50LgoKMjAwMi0wOS0xNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBiZmQtaW4uaCAoYmZkX2dldF9keW5hbWljX3N5bWNvdW50KTogRGVmaW5lLgoJKiBiZmQuYyAoc3RydWN0IF9iZmQpOiBBZGQgZHluc3ltY291bnQuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgkqIGVsZi5jIChfYmZkX2VsZl9jYW5vbmljYWxpemVfZHluYW1pY19zeW10YWIpOiBTZXQKCWFiZmQtPmR5bnN5bWNvdW50LgoJKiBlbGZjb2RlLmggKGVsZl9zbHVycF9yZWxvY190YWJsZV9mcm9tX3NlY3Rpb24pOiBDaGVjawoJZm9yIG92ZXJmbG93LgoKMjAwMi0wOS0xNyAgU3RhbiBDb3ggPHNjb3hAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9iZV9zd2FwX3JlbG9jYV9vdXQpOiBIYW5kbGUgdHlwZTIgYW5kIHR5cGUzLgoJKG1pcHNfZWxmNjRfZmluYWxfZ3ApOiBEb24ndCBtYWtlIHVwIGdwIHZhbHVlLgoJKiBlbGZuMzItbWlwcy5jIChtaXBzX2VsZl9maW5hbF9ncCk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmluYWxfbGluayk6IEFsd2F5cyBjcmVhdGUKCS5NSVBTLm9wdGlvbnMvLm9wdGlvbnMgc2VjdGlvbi4KCjIwMDItMDktMTcgIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgoJKiBlbGYzMi1pMzg2LWZic2QuYzogQWx3YXlzIGxhYmVsIHVzaW5nIHRoZSBFSV9PU0FCSSBtZXRob2QuCglJdCBpcyBiZW5pZ24gZm9yIEZyZWVCU0QgPCA0LjEuICBNaW5vciByZWZvcm1hdHRpbmcuCgkqIGVsZjY0LWFscGhhLWZic2QuYzogTGlrZXdpc2UuCgoyMDAyLTA5LTE3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbikgW1JfMzg2X1RMU19UUE9GRjMyXTogTmVnYXRlCglhZGRlbmQuCgoyMDAyLTA5LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZWxmX3NpemVfaW5mbyk6IE1ha2Ugc3RhdGljLgoKMjAwMi0wOS0xNyAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29mZi10aWM0eC5jOiBBZGQgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGFuZCBBVFRSSUJVVEVfVU5VU0VELgoJKiBjcHUtdGljNHguYzogRGl0dG8uCgoyMDAyLTA5LTE3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmNjQtbWlwcy5jIChkZWZpbmUgZWxmX2JhY2tlbmRfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MpOiBSZW1vdmUKCWR1cGxpY2F0ZSBkZWZpbmUuCgoyMDAyLTA5LTE2ICBCcnVubyBIYWlibGUgIDxicnVub0BjbGlzcC5vcmc+CgoJKiBlbGYzMi1pMzg2LmM6IERvbid0IGRlZmluZWQgRUxGX0FSQ0ggZXRjLiBpZiB0aGlzIGZpbGUgaXMgaW5jbHVkZWQKCWJ5IGEgdGFyZ2V0IHZhcmlhbnQgaW1wbGVtZW50YXRpb24uCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzg2LWZic2QuYzogTmV3IGZpbGUuCgkqIGVsZjY0LWFscGhhLWZic2QuYzogTmV3IGZpbGUuCgkqIHRhcmdldHMuYzogU3VwcG9ydCBiZmRfZWxmMzJfaTM4Nl9mcmVlYnNkX3ZlYyBhbmQKCWJmZF9lbGY2NF9hbHBoYV9mcmVlYnNkX3ZlYy4KCSogY29uZmlndXJlLmluOiBBY2NlcHQgdGhlIHZlY3RvcnMgYmZkX2VsZjMyX2kzODZfZnJlZWJzZF92ZWMsCgliZmRfZWxmNjRfYWxwaGFfZnJlZWJzZF92ZWMuCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1pMzg2LWZic2QubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLWkzODYtZmJzZC5jLgoJKEJGRDY0X0JBQ0tFTkRTKTogQWRkIGVsZjY0LWFscGhhLWZic2QubG8uCgkoQkZENjRfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjY0LWFscGhhLWZic2QuYy4KCShlbGYzMi1pMzg2LWZic2QubG8sIGVsZjY0LWFscGhhLWZic2QubG8pOiBBZGQgZGVwZW5kZW5jaWVzLgoJKiBjb25maWcuYmZkOiBGb3IgRnJlZUJTRCB0YXJnZXRzLCBzZXQgdGFyZ19kZWZ2ZWMgdG8gYSBGcmVlQlNECglzcGVjaWZpYyB0YXJnZXRzLiBEZWZpbmUgT0xEX0ZSRUVCU0RfQUJJX0xBQkVMIGlmIGFwcHJvcHJpYXRlLgoKMjAwMi0wOS0xMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1pMzg2LmMgKGR0cG9mZl9iYXNlLCB0cG9mZik6IERvbid0IGNyYXNoIGlmIHRsc19zZWdtZW50IGlzCglOVUxMLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBSZXR1cm4gZmFsc2UgYWZ0ZXIgcHJpbnRpbmcgZXJyb3IgYWJvdXQKCXVucmVzb2x2YWJsZSByZWxvY2F0aW9uLgoKMjAwMi0wOS0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IEZpeCBoYW5kbGluZyBvZgoJUl9BUk1fVEhNX1BDMTEuCgoyMDAyLTA5LTExICBKZWZmcmV5IExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbik6IEZpeCB0eXBvLgoKMjAwMi0wOS0xMSAgQW5kcmV3IEhhbGV5ICA8YXBoQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX2ZpbmRfbmVhcmVzdF9saW5lKTogQ2hlY2sgZnVuY3Rpb25uYW1lX3B0ciBhbmQKCWxpbmVfcHRyIGJlZm9yZSBkZWNpZGluZyB3ZSd2ZSBmb3VuZCBhIHN5bWJvbC4KCjIwMDItMDktMTEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9kYS5wbzogTmV3IERhbmlzaCB0cmFuc2xhdGlvbiBmaWxlLgoJKiBjb25maWd1cmUuaW4gKExJTkdVQVMpOiBBZGQgJ2RhJy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wOS0xMCAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgoJKiBpcml4LWNvcmUuYyAoZG9fc2VjdGlvbnMsIGRvX3NlY3Rpb25zNjQpOiBOZXcgZnVuY3Rpb25zLgoJKGlyaXhfY29yZV9jb3JlX2ZpbGVfcCk6IENhbGwgbmV3IGZ1bmN0aW9ucyBkb19zZWN0aW9ucywKCWRvX3NlY3Rpb25zNjQsIGRlcGVuZGluZyBvbiBjb3JlZmlsZSAoMzItYml0IG9yIDY0LWJpdCkuCgoyMDAyLTA5LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBIYW5kbGUgUENSRUwyMU0KCWFuZCBQQ1JFTDIxRiBsaWtlIFBDUkVMMjFCLgoKMjAwMi0wOS0wNCAgS2V2aW4gQnVldHRuZXIgIDxrZXZpbmJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5iZmQgKG1pcHMqLSotaXJpeDYqKTogQWRkIG5ldyBBQkkgdmVjdG9ycy4gIE1ha2UgbjMyIGRlZmF1bHQKCXZlY3Rvci4KCjIwMDItMDktMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBVc2UgaGVscGZ1bAoJbmFtZXMgaW5zdGVhZCBvZiBjcnlwdGljYWxseSBvdmVybG9hZGVkIGJmZF9yZWxvYyBlcnJvcgoJY29kZXMuCgkodjg1MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKHY4NTBfZWxmX3JlbGF4X3NlY3Rpb24pOiBSZXBsYWNlIGNhY2hpbmcgb2YgZXh0ZXJuYWwgc3ltYm9scwoJd2l0aCBjYWNoaW5nIG9mIGludGVybmFsIHN5bWJvbHMgb2J0YWluZWQgZnJvbSBjYWxsaW5nCgliZmRfZWxmX2dldF9lbGZfc3ltcygpLgoJRml4dXAgcHJvYmxlbXMgd2l0aCBmcmVlaW5nIGNhY2hlZCBhbGxvY2F0ZWQgbWVtb3J5IGJsb2Nrcy4KCjIwMDItMDktMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjcHUtcGouYyAoc2Nhbl9tYWNoLCBjb21wYXRpYmxlLCBhcmNoX2luZm9fc3RydWN0KTogUmVtb3ZlLgoJKGJmZF9wal9hcmNoKTogVXNlIGJmZF9kZWZhdWx0X3NjYW4uCgkqIGNwdS12ODUwLmMgKHNjYW4pOiBSZW1vdmUuCgkoTik6IFVzZSBiZmRfZGVmYXVsdF9zY2FuLgoJKiBjcHUtejhrLmMgKHNjYW5fbWFjaCk6IFJlbW92ZS4KCShhcmNoX2luZm9fc3RydWN0LCBiZmRfejhrX2FyY2gpOiBSZW9yZ2FuaXplIHNvIHRoYXQgdGhlIGRlZmF1bHQgaXMKCWZpcnN0LiAgVXNlIGJmZF9kZWZhdWx0X3NjYW4uCgoJKiBlY29mZi5jIChfYmZkX2Vjb2ZmX3NldF9hcmNoX21hY2hfaG9vayk6IERvbid0IHVzZSBoYXJkLWNvZGVkCgliZmRfbWFjaCBjb25zdGFudHMuCgkoZWNvZmZfZ2V0X21hZ2ljKTogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfb2JqZWN0X3ApOiBMaWtld2lzZS4KCSh2ODUwX2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgkqIG1pcHNic2QuYyAoTVkoc2V0X2FyY2hfbWFjaCkpOiBMaWtld2lzZS4KCShNWSh3cml0ZV9vYmplY3RfY29udGVudHMpKTogTGlrZXdpc2UuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF93cml0ZV9vYmplY3RfY29udGVudHMpOiBMaWtld2lzZS4KCSogY29mZmNvZGUuaCAoY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBMaWtld2lzZS4KCShjb2ZmX3NldF9hcmNoX21hY2hfaG9vayk6IEFkZCBjb21tZW50IGRlc2NyaWJpbmcgbWFjaGluZSA9PSAwLgoJUmVtb3ZlIHVubmVjZXNzYXJ5ICJtYWNoaW5lIiBhc3NpZ25tZW50cy4KCShjb2ZmX3dyaXRlX3JlbG9jcyk6IFRlc3QgZm9yIHRoZSBhYnNvbHV0ZSBzZWN0aW9uIHN5bSBieSB0ZXN0aW5nCglzZWN0aW9uIGFuZCBmbGFncy4KCgkqIGFvdXR4LmggKE5BTUUoYW91dCxtYWNoaW5lX3R5cGUpKTogUmVjb2duaXplIGJmZF9tYWNoX2kzODZfaTM4NgoJYW5kIGJmZF9tYWNoX2kzODZfaTM4Nl9pbnRlbF9zeW50YXguCgkqIHBkcDExLmMgKE5BTUUoYW91dCxtYWNoaW5lX3R5cGUpKTogTGlrZXdpc2UuCgoyMDAyLTA4LTMwICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogYmZkLWluLmggKGFsaWduX3Bvd2VyKTogQ2FzdCBjb25zdGFudHMgdG8gYmZkX3ZtYSB0eXBlLgoJKiBiZmQtaW4yLmggKGFsaWduX3Bvd2VyKTogTGlrZXdpc2UuCgoyMDAyLTA4LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIGNwdS1hdnIuYyAoY29tcGF0aWJsZSk6IERvbid0IHVzZSBoYXJkLWNvZGVkIG1hY2ggY29uc3RhbnRzLgoJKiBjcHUtcG93ZXJwYy5jIChwb3dlcnBjX2NvbXBhdGlibGUpOiBMaWtld2lzZS4KCSogY3B1LXJzNjAwMC5jIChyczYwMDBfY29tcGF0aWJsZSk6IExpa2V3aXNlLgoKMjAwMi0wOC0yOCAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQHJlZGhhdC5jb20+CgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX3JlbG9jX21hcCk6IEFkZCBuZXcgcmVsb2NzLgoJKHY4NTAtZWxmLXJlbG9jKTogRG9uJ3QgcmVzb2x2ZSBwYyByZWxhdGl2ZSByZWxvY3MuCgkodjg1MF9lbGZfaWdub3JlX3JlbG9jKTogTmV3IHJvdXRpbmUuCgkodjg1MF9lbGZfZmluYWxfbGlua19yZWxvY2F0ZSk6IEhhbmRsZSBuZXcgcmVsb2NzLgoJKHY4NTBfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyApOiBOZXcgcm91dGluZS4KCSh2ODUwX2VsZl9yZWxheF9zZWN0aW9uKTogTmV3IHJvdXRpbmUuCgkoYmZkX2VsZjMyX2JmZF9yZWxheF9zZWN0aW9uKTogRGVmaW5lLgoJKEhPV1RPKTogTmV3IGVudHJpZXMgZm9yIG5ldyByZWxvY3MuCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ19WODUwX0xPTkdDQUxMKTogTmV3IHJlbG9jLgoJKEJGRF9SRUxPQ19WODUwX0xPTkdKVU1QKTogTmV3IHJlbG9jLgoJKEJGRF9SRUxPQ19WODUwX0FMSUdOKTogTmV3IHJlbG9jLgoJKiBhcmNodXJlcy5jOiBSZW1vdmUgcmVkdW5kYW50IHY4NTBlYSBhcmNoaXRlY3R1cmUuCgkqIGNwdS12ODUwLmM6IFJlbW92ZSByZWR1bmRhbnQgdjg1MGVhIHN1cHBvcnQuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoKMjAwMi0wOC0yOCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29uZmlnLmJmZDogQWRkIHRpYzR4LSotKmNvZmYqIGFuZCBjNHgtKi0qY29mZiogdGFyZ2V0LgoJKiBjb25maWd1cmUuaW46IEFkZCB0aWM0eF9jb2ZmIHZlY3RvciBmaWxlcy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5hbTogQWRkIHRpYzR4IHRhcmdldC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTA4LTI3ICBNaWNoYWVsIEhheWVzIDxtLmhheWVzQGVsZWMuY2FudGVyYnVyeS5hYy5uej4KCgkqIGFyY2h1cmVzLmM6IEFkZCB0aGUgQkZEIGFyY2ggdHlwZSB0aWM0eC4KCSogYmZkLWluLmg6IEFkZCBCRkRfSU5fTUVNT1JZIGZsYWcuCgkqIGNvZmYtdGljNHguYzogTmV3IGZpbGUuCgkqIGNvZmZzd2FwLmggKGNvZmZfc3dhcF9zeW1fb3V0KTogQWRkIHByZWFkanVzdGVyLgoJKiBjcHUtdGljNHguYzogTmV3IGZpbGUuCgkqIHRhcmdldHMuYzogQWRkZWQgdGljNHgtIGluIGxpc3Qgb2YgeHZlY3MuCgkqIHRpY29mZi5oOiBOZXcgZmlsZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wOC0yNyAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBTZXQgdGhlIGxhc3QKCWJpdCBvZiBEVF9JTklUIGFuZCBEVF9GSU5JIGZvciBUaHVtYiBmdW5jdGlvbnMuCgoyMDAyLTA4LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBIYW5kbGUgVzY1TUFHSUMuCgoyMDAyLTA4LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYW91dHguaCAoTkFNRShhb3V0LHJlbG9jX3R5cGVfbG9va3VwKSk6IEhhbmRsZSBCRkRfUkVMT0NfOC4KCjIwMDItMDgtMjQgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTmV3LgoJKGNyZWF0ZV9nb3Rfc2VjdGlvbiwgYWxsb2NhdGVfZHlucmVsb2NzLCByZWFkb25seV9keW5yZWxvY3MpOgoJTGlrZXdpc2UuCgkoc3RydWN0IGVsZl9zaF9wY3JlbF9yZWxvY3NfY29waWVkKTogUmVtb3ZlZC4KCShzdHJ1Y3QgZWxmX3NoX2R5bl9yZWxvY3MpOiBOZXcuCgkoc3RydWN0IGVsZl9zaF9saW5rX2hhc2hfZW50cnkpOiBSZXBsYWNlIHBjcmVsX3JlbG9jc19jb3BpZWQKCWZpZWxkIHdpdGggZHluX3JlbG9jcy4KCShzdHJ1Y3QgZWxmX3NoX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzaG9ydC1jdXRzIHRvIGdldCBkeW5hbWljCglzZWN0aW9ucyBhbmQgc3ltX3NlYy4KCShzaF9lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBDbGVhciBkeW5fcmVsb2NzLgoJKHNoX2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogQ2xlYXIgc2hvcnRzLWN1dHMgYW5kIHN5bV9zZWMuCgkoc2hfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGNyZWF0ZV9nb3Rfc2VjdGlvbiBpbnN0ZWFkCglvZiBfYmZkX2VsZl9jcmVhdGVfZ290X3NlY3Rpb24uCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKHNoX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBzaG9ydC1jdXRzIHRvIHRoZSBkeW5hbWljCglzZWN0aW9ucy4KCShzaF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sLCBzaF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zLAoJc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24sIHNoX2VsZl9jaGVja19yZWxvY3MsCglzaF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sLCBzaF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOgoJTGlrZXdpc2UuCgkoc2hfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEhhbmRsZSBub2NvcHlyZWxvYy4gS2VlcCB0aGUKCWR5bmFtaWMgcmVsb2NhdGlvbnMgYW5kIGF2b2lkaW5nIHRoZSBjb3B5IHJlbG9jYXRpb24gd2hlbiB3ZQoJZGlkbid0IGZpbmQgYW55IGR5bmFtaWMgcmVsb2NhdGlvbnMgaW4gdGhlIHNlY3Rpb24gd2hpY2ggaGFzCgljb250ZW50cyBvciBpcyByZWFkLW9ubHkuCgkoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IE5ldy4KCShzaF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgcmVzZXQgdGhlIHNpemUgb2YKCS5yZWxhLmdvdCBzZWN0aW9uIGV2ZW4gaWYgZHluYW1pY19zZWN0aW9uc19jcmVhdGVkIGZsYWcgaXMgb2ZmLgoJRG9uJ3QgdXNlIHNoX2VsZl9kaXNjYXJkX2NvcGllcy4gU2NhbiBhbGwgaW5wdXQgYmZkIGFuZCB1c2UKCWFsbG9jYXRlX2R5bnJlbG9jcy4gQ2FsbCByZWFkb25seV9keW5yZWxvY3MgdG8gZGV0ZXJtaW5lCgl3aGV0aGVyIHdlIG5lZWQgRFRfVEVYVFJFTC4KCShzaF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVXNlIHBsdC5yZWZjb3VudCB0byBkZXRlcm1pbmUKCXdoZXRoZXIgdGhlIHN5bWJvbCB3YXMgbmV2ZXIgcmVmZXJyZWQgdG8uCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTC4KCShzaF9lbGZfZ2Nfc3dlZXBfaG9vayk6IEZpbGwgd2l0aCB0aGUgcmVhbCBzd2VlcCBmdW5jdGlvbi4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogQ2FsbCBjcmVhdGVfZ290X3NlY3Rpb24gaWYgdGhlIHNob3J0LWN1dAoJdG8gLmdvdCBpcyBudWxsLiBJbmNyZW1lbnQgcmVmZXJlbmNlIGNvdW50ZXJzIG9ubHkgaW5zdGVhZCBvZgoJYWxsb2NhdGluZyBzcGFjZSBvbiBkeW5hbWljIHNlY3Rpb25zIGhlcmUuIERvbid0IGNvbmRpdGlvbmFsaXplCgl1bmluaXRpYWxpemVkIGdvdC5vZmZzZXQgdmFsdWUgd2hlbiBtYXJraW5nIHRoZSBzeW1ib2wgYXMgYQoJZ2xvYmFsIG9mZnNldCB0YWJsZSBlbnRyeS4gS2VlcCByZWxvY2F0aW9ucyBmb3Igc3ltYm9scyBzYXRpc2ZpZWQKCWJ5IGEgZHluYW1pYyBsaWJyYXJ5IHRvIGF2b2lkIGNvcHkgcmVsb2NhdGlvbnMgZm9yIHRoZSBzeW1ib2wuCglTZXQgZHlub2JqIGZpZWxkIG9mIGFuIGVsZiBoYXNoIHRhYmxlIGlmIG5lZWRlZC4KCShzaF9lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBIYW5kbGUgbnVsbCBzZWN0aW9uIHBvaW50ZXIKCWNvcnJlY3RseS4KCShlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERlZmluZWQuCgkoZWxmX2JhY2tlbmRfY2FuX3JlZmNvdW50KTogRGVmaW5lZC4KCjIwMDItMDgtMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogVW5kbwoJcHJldmlvdXMgY2hhbmdlLiAgQWRkIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkuCgoyMDAyLTA4LTIzICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIGVsZjMyLXNoLmMgKGVsZl9zaF9wbHQwX2VudHJ5X2JlLCBlbGZfc2hfcGx0MF9lbnRyeV9sZSk6IENvcHkKCWNvbnRlbnRzIG9mIC5nb3QucGx0WzJdIHRvIHRyMCwgbm90IGFkZHJlc3Mgb2YgLmdvdC5wbHQuCgkoc2hfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IERvIG5vdCBhcHBseSBHT1RfQklBUyB3aGVuCglwYXRjaGluZyBhYnNvbHV0ZSBwbHQgZW50cnkuIEZvciBzaG1lZGlhIHBsdCBlbnRyeSwgc2V0IGJvdHRvbSBiaXQKCW9mIGJyYW5jaCB0byBwbHQwIGFzIHRoaXMgaXMgYSBicmFuY2ggdG8gYW4gc2htZWRpYSBpbnN0cnVjdGlvbi4KCSogZWxmNjQtc2g2NC5jIChlbGZfc2g2NF9wbHQwX2VudHJ5X2JlLCBlbGZfc2g2NF9wbHQwX2VudHJ5X2xlKToKCUNvcHkgY29udGVudHMgb2YgLmdvdC5wbHRbMl0gdG8gdHIwLCBub3QgYWRkcmVzcyBvZiAuZ290LnBsdC4KCShlbGZfc2g2NF9wbHRfZW50cnlfYmUsIGVsZl9zaDY0X3BsdF9lbnRyeV9sZSk6IFVzZSBwdHJlbCB0bwoJYnJhbmNoIHRvIHBsdDAuCgkoc2g2NF9lbGY2NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEbyBub3QgYXBwbHkgR09UX0JJQVMgd2hlbgoJcGF0Y2hpbmcgYWJzb2x1dGUgcGx0IGVudHJ5LiBGb3Igc2htZWRpYSBwbHQgZW50cnksIGJyYW5jaCB0bwoJcGx0MCBpcyBub3cgcHRyZWwsIHNvIHVzZSByZWxhdGl2ZSBvZmZzZXQuICBTZXQgYm90dG9tIGJpdCBvZgoJYnJhbmNoIHRhcmdldCBhcyBpdCBpcyBhIGJyYW5jaCB0byBhbiBzaG1lZGlhIGluc3RydWN0aW9uLgoKMjAwMi0wOC0yMyAgU3RlcGhlbiBDbGFya2UgPHN0ZXBoZW4uY2xhcmtlQHN1cGVyaC5jb20+LAoJICAgIFJpY2hhcmQgU2hhbm4gPHJpY2hhcmQuc2hhbm5Ac3VwZXJoLmNvbT4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFNldCBMU0Igb2YgRFRfSU5JVAoJdmFsdWUgaWYgLmluaXQgaXMgYW4gU0htZWRpYSBmdW5jdGlvbi4gIFNpbWlsYXJseSBmb3IgRFRfRklOSS4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAyLTA4LTIzICBTdGVwaGVuIENsYXJrZSA8c3RlcGhlbi5jbGFya2VAc3VwZXJoLmNvbT4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBaZXJvIGluaXRpYWxpemUKCWR5bmFtaWMgc2VjdGlvbi4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoKMjAwMi0wOC0yMiAgS2F6IEtvamltYSA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBVc2UgYSBzaW1wbGUKCWJ5dGUgcmVhZCB3aGVuIHJlYWRpbmcgdGhlIHJldHVybiBhZGRyZXNzIHJlZ2lzdGVyIGNvbHVtbi4KCjIwMDItMDgtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcuYmZkOiBBZGQgcG93ZXBjNjQtKi0qYnNkKiB0YXJnZXQuCgoyMDAyLTA4LTIyICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogTWFrZWZpbGUuYW06IEFkZCBlbnRyaWVzIGZvciBlbGYzMi1zaHFueC5jCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkOiBBZGQgc3VwcG9ydCBzaC0qLW50byogdGFyZ2V0LgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBiZmRfZWxmMzJfc2h7bH1xbnhfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLXFueC5oOiBDaGFuZ2VkIHR5cG8gImVsZl9pMzg2cW54XyoiIHRvICJlbGZfcW54XyoiIC4KCSogZWxmMzItc2guYzogRG8gbm90IGluY2x1ZGUgZWxmMzItdGFyZ2V0LmggaWYKCUVMRjMyX1NIX0NfSU5DTFVERUQgaXMgZGVmaW5lZC4KCSogZWxmMzItc2hxbnguYzogTmV3IGZpbGU6IFN1cHBvcnQgZm9yIFFOWC4KCSogdGFyZ2V0cy5jOiBBZGQgYmZkX2VsZjMyX3Noe2x9cW54X3ZlYy4KCjIwMDItMDgtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby90ci5wbzogVXBkYXRlZCBUdXJraXNoIHRyYW5zbGF0aW9uLgoKCSogc3ltcy5jIChfYmZkX2dlbmVyaWNfcmVhZF9taW5pc3ltYm9scyk6IFNldCBiZmRfZXJyb3IgaWYgdGhlCglzeW1ib2xzIGFyZSBub3QgcmVhZC4KCjIwMDItMDgtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1tNjhoYzExLmM6IEZvcm1hdHRpbmcgZml4ZXMuCgkoZWxmMzJfbTY4aGMxMV9nY19tYXJrX2hvb2spOiBDb3JyZWN0IHBhcmFtcy4gIFJlbW92ZSB1bm5lY2Vzc2FyeSB0ZXN0LgoJKiBlbGYzMi1tNjhoYzEyLmM6IEZvcm1hdHRpbmcgZml4ZXMuCgkoZWxmMzJfbTY4aGMxMV9nY19tYXJrX2hvb2spOiBDb3JyZWN0IHBhcmFtcy4gIFJlbW92ZSB1bm5lY2Vzc2FyeSB0ZXN0LgoKMjAwMi0wOC0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtcnM2MDAwLmMgKHJzNjAwMGNvZmZfdmVjIDxvYmplY3RfZmxhZ3M+KTogQWRkIFNFQ19DT0RFIGFuZAoJU0VDX0RBVEEuCgkocG1hY194Y29mZl92ZWMpOiBMaWtld2lzZS4KCSogY29mZjY0LXJzNjAwMC5jIChyczYwMDBjb2ZmNjRfdmVjKTogTGlrZXdpc2UuCgkoYWl4NWNvZmY2NF92ZWMpOiBMaWtld2lzZS4KCjIwMDItMDgtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogQWRkIHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhCglwYXJhbSB0byBlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbC4KCShfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmggKGVsZl9hZGRfZGVmYXVsdF9zeW1ib2wsIGVsZl9maXhfc3ltYm9sX2ZsYWdzKTogQWRqdXN0CgljYWxscyB0byBjb3B5X2luZGlyZWN0X3N5bWJvbC4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfaGFzaF9jb3B5X2luZGlyZWN0KTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmggKF9iZmRfbWlwc19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9jb3B5X2luZGlyZWN0KTogTGlrZXdpc2UuICBQcm9wZXJseQoJdGVzdCByZWZjb3VudHMgZm9yICJ1c2VkIiB2YWx1ZXMuCgoyMDAyLTA4LTIxICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IEFkZCBQQVJBTVMgdG8KCWFyZ3VtZW50IGRlY2xhcmF0aW9uLgoKMjAwMi0wOC0xOSAgRWxlbmEgWmFubm9uaSA8ZXphbm5vbmlAcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX3BwY19lNTAwKTogQWRkZWQuCgkqIGJmZC1pbjIuaDogUmVidWlsdC4KCSogY3B1LXBvd2VycGMuYyAoYmZkX3Bvd2VycGNfYXJjaHMpOiBBZGRlZCBlNTAwLgoKMjAwMi0wOC0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLW02OGhjMTIuYyAoZWxmX2JhY2tlbmRfY2FuX2djX3NlY3Rpb25zKTogRmFsc2UuCgoyMDAyLTA4LTE3ICBBbmRyZXcgQ2FnbmV5ICA8YWMxMzEzMTNAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChiZmRfZWxmX2dldF9lbGZfc3ltcyk6IENoYW5nZSB0eXBlIG9mIGBlc3ltJyB0bwoJYGJmZF9ieXRlJy4KCjIwMDItMDgtMTcgIFN0YW4gQ294ICA8c2NveEByZWRoYXQuY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IFVzZSB0aGUKCUlSSVggNiBzZWdtZW50IGxheW91dCBmb3IgTkVXQUJJLgoKMjAwMi0wOC0xNiAgU3RlcGhlbiBDbGFya2UgPHN0ZXBoZW4uY2xhcmtlQHN1cGVyaC5jb20+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfZ2NfbWFya19ob29rKTogRm9yIHNoNjQsIHNraXAgaW5kaXJlY3QKCXN5bWJvbHMgd2hlbiBsb29raW5nIGZvciBzZWN0aW9uIHJlZmVycmVkIHRvIGJ5IGEgcmVsb2NhdGlvbi4KCSogZWxmNjQtc2guYyAoc2hfZWxmNjRfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgoyMDAyLTA4LTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM3MC5jOiBNb3ZlIHJlbG9jIGVudW0gdG8gaW5jbHVkZS9lbGYvaTM3MC5oLgoKMjAwMi0wOC0xNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi1jcmlzLmMgKGVsZl9jcmlzX2Rpc2NhcmRfZXhjZXNzX3Byb2dyYW1fZHluYW1pY3MpOiBBZGQKCW1pc3NpbmcgY2hlY2sgZm9yIHdoZXRoZXIgdGhlIHN5bWJvbCBpcyByZWZlcmVuY2VkIGJ5IERTTyBiZWZvcmUKCXVuZXhwb3J0aW5nIGl0IGFzIGFuIHVubmVlZGVkIGR5bmFtaWMgc3ltYm9sLgoKMjAwMi0wOC0xNCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDgtMTQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnLmJmZDogQWx3YXlzIGFkZCA2NGJpdCB2ZWN0b3JzIHRvIDMyYml0IExpbnV4L21pcHMuCgoyMDAyLTA4LTE0ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMTEuYyAobTY4aGMxMV9yZWxheF9ncm91cCk6IE5ldyB0byByZWxheCBncm91cCBvZgoJaW5zdHJ1Y3Rpb25zLgoJKG02OGhjMTFfZGlyZWN0X3JlbGF4KTogTmV3IHRvIGRlZmluZSB0YWJsZSBvZiByZWxheGFibGUgaW5zdHJ1Y3Rpb25zLgoJKGZpbmRfcmVsYXhhYmxlX2luc24pOiBOZXcsIGZpbmQgYSByZWxheGFibGUgaW5zbi4KCShjb21wYXJlX3JlbG9jKTogTmV3IHRvIGNvbXBhcmUgdHdvIHJlbG9jcy4KCShtNjhoYzExX2VsZl9yZWxheF9zZWN0aW9uKTogTmV3LCByZWxheCB0ZXh0IHNlY3Rpb25zLgoJKG02OGhjMTFfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IE5ldywgZGVsZXRlIGJ5dGVzIGFuZCBhZGp1c3QgYnJhbmNocy4KCShlbGYzMl9tNjhoYzExX2NoZWNrX3JlbG9jcyk6IE5ldyBmdW5jdGlvbiBmb3IgR0Mgc3VwcG9ydC4KCShlbGYzMl9tNjhoYzExX3JlbG9jYXRlX3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24gZm9yIEdDIHN1cHBvcnQuCgkoYmZkX2VsZjMyX2JmZF9yZWxheF9zZWN0aW9uKTogRGVmaW5lIHRvIHN1cHBvcnQgbGlua2VyIHJlbGF4YXRpb24uCgkoZWxmX2JhY2tlbmRfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmX2JhY2tlbmRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wOC0xMyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBjb3VudAoJZGVmaW5pdGlvbnMgaW4gc2hhcmVkIG9iamVjdHMgd2hlbiBjaGVja2luZyBzeW1ib2wgd2l0aAoJdW5kZWZpbmVkIHZlcnNpb24uCgoyMDAyLTA4LTEzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMTEuYyAoZWxmMzJfbTY4aGMxMV9nY19tYXJrX2hvb2spOiBOZXcgZm9yIHNlY3Rpb24gR0MuCgkoZWxmMzJfbTY4aGMxMV9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmX2JhY2tlbmRfZ2NfbWFya19ob29rKTogRGVmaW5lIGZvciBHQyBzZWN0aW9uIHN1cHBvcnQuCgkoZWxmX2JhY2tlbmRfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX2Nhbl9nY19zZWN0aW9ucyk6IExpa2V3aXNlLgoKCSogZWxmMzItbTY4aGMxMi5jOiBMaWtld2lzZS4KCjIwMDItMDgtMTMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZWxmMzItbTY4aGMxMS5jIChfYmZkX202OGhjMTFfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBOZXcuCgkoX2JmZF9tNjhoYzExX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTmV3IGZ1bmN0aW9uLgoJKF9iZmRfbTY4aGMxMV9lbGZfc2V0X3ByaXZhdGVfZmxhZ3MpOiBOZXcgZnVuY3Rpb24uCglVc2UgdGhlbSB0byBzZXQvY2hlY2svcHJpbnQgRUxGIGZsYWdzIHNwZWNpZmljIHRvIDY4SEMxMS4KCgkqIGVsZjMyLW02OGhjMTIuYyAoX2JmZF9tNjhoYzEyX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogTmV3LgoJKF9iZmRfbTY4aGMxMl9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IE5ldyBmdW5jdGlvbi4KCShfYmZkX202OGhjMTJfZWxmX3NldF9wcml2YXRlX2ZsYWdzKTogTmV3IGZ1bmN0aW9uLgoJVXNlIHRoZW0gdG8gc2V0L2NoZWNrL3ByaW50IEVMRiBmbGFncyBzcGVjaWZpYyB0byA2OEhDMTIuCgoyMDAyLTA4LTEzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIGVsZjMyLW02OGhjMTEuYyAoZWxmX202OGhjMTFfaG93dG9fdGFibGUpOiBBZGQgdGhlIG5ldyByZWxvY3M7CglmaXggbWFza3MgZm9yIFBDLXJlbCByZWxvY3MuCgkobTY4aGMxMV9lbGZfaWdub3JlX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoKCSogZWxmMzItbTY4aGMxMi5jIChtNjhoYzEyX2VsZl9zcGVjaWFsX3JlbG9jKTogTmV3IHRvIGhhbmRsZSBzcGVjaWZpYwoJNjhIQzEyIGJhbmtlZCBhZGRyZXNzaW5nIHJlbG9jcy4KCShtNjhoYzEyX3BoeXNfYWRkcik6IE5ldyB0byBjb21wdXRlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgYmFua2VkIG1lbW9yeS4KCShtNjhoYzEyX3BoeXNfcGFnZSk6IExpa2V3aXNlIGZvciBwYWdlLgoJKG02OGhjMTJfYWRkcl9pc19iYW5rZWQpOiBOZXcgdG8gc2VlIGlmIGFkZHJlc3MgaXMgaW4gYmFua2VkIGFyZWEuCgkoZWxmX202OGhjMTJfaG93dG9fdGFibGUpOiBBZGQgbmV3IHJlbG9jcyBhbmQgcmVuYW1lIHRvIHh4MTIuCgoyMDAyLTA4LTEzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ19NNjhIQzExX1JMX0pVTVAsIEJGRF9SRUxPQ19NNjhIQzExX1JMX0dST1VQLAoJQkZEX1JFTE9DX002OEhDMTFfTE8xNiwgQkZEX1JFTE9DX002OEhDMTFfUEFHRSwKCUJGRF9SRUxPQ19NNjhIQzExXzI0KTogTmV3IHJlbG9jcyBmb3IgNjhIQzExLzY4SEMxMi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wOC0xMiAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9hZGRfZGVmYXVsdF9zeW1ib2wpOiBQcmVzZXJ2ZSBzZWN0aW9uIGFjcm9zcwoJZWxmX21lcmdlX3N5bWJvbC4KCjIwMDItMDgtMDkgIEdyYWVtZSBQZXRlcnNvbiAgPGdwQHFueC5jb20+CgoJKiBNYWtlZmlsZS5hbTogQWRkIGVudHJpZXMgZm9yIGVsZjMyLXBwY3FueC5jLCBhbmQgYWRkCgllbGYzMi1xbnguaCBkZXBlbmRlbmN5IHRvIGVsZmFybXFueC1uYWJpLmMgYW5kIGVsZjMyLWkzODZxbnguYy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQ6IEFkZCBzdXBwb3J0IGZvciBwb3dlcnBje2xlfS0qLW50byB0YXJnZXRzLgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBiZmRfZWxmMzJfcG93ZXJwY3tsZX1xbnhfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLWkzODZxbnguYzogTW92ZWQgYmFja2VuZCBmdW5jdGlvbnMgaW50byBhIFFOWCBzcGVjaWZpYwoJY29tbW9uIGZpbGUgImVsZjMyLXFueC5oIiwgYW5kIG5vdyBpbmNsdWRlIHRoYXQgZmlsZS4KCSogZWxmMzItcW54Lmg6IE5ldyBmaWxlOiBRTlggc3BlY2lmaWMgY29tbW9uIGVsZiBiYWNrZW5kLgoJKiBlbGYzMi1wcGMuYzogRG8gbm90IGluY2x1ZGUgZWxmMzItdGFyZ2V0LmggaWYKCUVMRjMyX1BQQ19DX0lOQ0xVREVEIGlzIGRlZmluZWQuCgkqIGVsZjMyLXBwY3FueC5jOiBOZXcgZmlsZTogU3VwcG9ydCBmb3IgUU5YLgoJKiBlbGZhcm1xbngtbmFiaS5jOiBJbmNsdWRlIGVsZjMyLXFueC5oIGZvciBxbnggZWxmIGJhY2tlbmQuCgkqIHRhcmdldHMuYzogQWRkIGJmZF9lbGYzMl9wb3dlcnBje2xlfXFueF92ZWMuCgoyMDAyLTA4LTA5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vc3YucG86IFVwZGF0ZWQgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCjIwMDItMDgtMDkgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2dsb2JhbF9nb3RfaW5kZXgpOiBBdm9pZCBzZWdmYXVsdCBpZgoJZy0+Z2xvYmFsX2dvdHN5bSBpcyBOVUxMLgoKMjAwMi0wOC0wOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9hZGRfZGVmYXVsdF9zeW1ib2wpOiBEb24ndCB3YXJuIGlmIGEgZGVmaW5pdGlvbgoJb3ZlcnJpZGVzIGFuIGluZGlyZWN0IHZlcnNpb25lZCBzeW1ib2wuCgoyMDAyLTA4LTA4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IEZpbGwgaW4gcHJvcGVyIGFkZGVuZAoJZm9yIFJfMzg2X1RMU19UUE9GRjMyIHJlbG9jcyBhZ2FpbnN0IHN5bW5keCAwLgoKMjAwMi0wOC0wNyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogQ2hlY2sgc3ltYm9sCgl3aXRoIHVuZGVmaW5lZCB2ZXJzaW9uIGlmIG5lZWRlZC4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBNYXRjaCBhIGRlZmF1bHQgc3ltYm9sIHdpdGggYQoJdmVyc2lvbiB3aXRob3V0IGRlZmluaXRpb24uIE5vIG5lZWQgdG8gaGlkZSB0aGUgZGVmYXVsdAoJZGVmaW5pdGlvbiBzZXBhcmF0ZWx5LgoKMjAwMi0wOC0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IERvbid0IG91dHB1dCBzeW1ib2xzIGZyb20KCVNFQ19FWENMVURFIHNlY3Rpb25zLgoKCSogYW91dHguaCAoYW91dF9saW5rX3dyaXRlX3N5bWJvbHMpOiBDb3JyZWN0IGhhbmRsaW5nIG9mIHdhcm5pbmcgc3ltcy4KCjIwMDItMDgtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoZWRpdF9vcGQpOiBBcnJhbmdlIHRvIGRyb3Agc3ltYm9scyBmb3IgZGlzY2FyZGVkIC5vcGQKCWVudHJpZXMuCgoyMDAyLTA4LTA3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogQ2FzdCBzaWduZWRuZXNzCgltaXNtYXRjaC4KCjIwMDItMDgtMDcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZ4eC1taXBzLmMgKEFCSV82NF9QKTogUmVtb3ZlIHN1cGVyZmx1b3VzIGNoZWNrLgoKMjAwMi0wOC0wNyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19yZWxvY19tYXApOiBGaXggdHlwby4KCjIwMDItMDgtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB4Y29mZmxpbmsuYyAoeGNvZmZfd3JpdGVfZ2xvYmFsX3N5bWJvbCk6IFNldCBuX3NjbnVtIGZvciBhYnNfc2VjdGlvbi4KCjIwMDItMDgtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2hvd3RvX3Jhdyk6IFplcm8gYWxsIHNyY19tYXNrIGVudHJpZXMuCgoyMDAyLTA4LTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGlieGNvZmYuaDogVXNlIFBBUkFNUyBvbiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2dlbmVyYXRlX3J0aW5pdCk6IFNpbXBsaWZ5IHNpemUgY2FsYy4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X2dlbmVyYXRlX3J0aW5pdCk6IExpa2V3aXNlLgoKCSogY29mZi1yczYwMDAuYzogKHhjb2ZmX3J0eXBlMmhvd3RvKTogRG9uJ3QgcGxhY2UgcmVsb2MgYWRkcmVzcyBpbgoJYWRkZW5kLgoJKiBjb2ZmNjQtcnM2MDAwLmM6ICh4Y29mZjY0X3J0eXBlMmhvd3RvKTogTGlrZXdpc2UuCgoyMDAyLTA4LTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29mZi1yczYwMDAuYzogRm9ybWF0dGluZyBmaXhlcy4KCSh4Y29mZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFVzZSBQQVJBTVMgaW4gZGVjbGFyYXRpb24uCgkoeGNvZmZfY29tcGxhaW5fb3ZlcmZsb3cpOiBMaWtld2lzZS4KCSh4Y29mZl9wcGNfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBvbGQtc3R5bGUgZnVuY3Rpb24gcG9pbnRlciBjYWxsLgoJKGJmZF94Y29mZl9iYWNrZW5kX2RhdGEpOiBSZW1vdmUgdXNlbGVzcyBjb21tZW50cy4KCShyczYwMDBjb2ZmX3ZlYyk6IExpa2V3aXNlLgoJKGJmZF9wbWFjX3hjb2ZmX2JhY2tlbmRfZGF0YSk6IExpa2V3aXNlLgoJKHBtYWNfeGNvZmZfdmVjKTogTGlrZXdpc2UuCgoJKiBjb2ZmNjQtcnM2MDAwLmM6IEZvcm1hdHRpbmcgZml4ZXMuCgkoeGNvZmY2NF9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFVzZSBQQVJBTVMgaW4gZGVjbGFyYXRpb24uCgkoeGNvZmY2NF9wcGNfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBvbGQtc3R5bGUgZnVuY3Rpb24gcG9pbnRlciBjYWxsLgoJKGJmZF94Y29mZl9iYWNrZW5kX2RhdGEpOiBSZW1vdmUgdXNlbGVzcyBjb21tZW50cy4KCShyczYwMDBjb2ZmNjRfdmVjKTogTGlrZXdpc2UuCgkoYmZkX3hjb2ZmX2FpeDVfYmFja2VuZF9kYXRhKTogTGlrZXdpc2UuCgkoYWl4NWNvZmY2NF92ZWMpOiBMaWtld2lzZS4KCjIwMDItMDgtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9ob3d0b190YWJsZSk6IFJldmVydCBzb21lIG9mIGxhc3QgY2hhbmdlIHRvCgltYXNrIGVudHJpZXMuICBVc2UgY29tcGxhaW5fb3ZlcmZsb3dfZG9udCBmb3IgUl9SRUYuCgkoeGNvZmZfcmVsb2NfdHlwZV9iYSk6IFJldmVydCBsYXN0IGNoYW5nZS4KCSh4Y29mZl9yZWxvY190eXBlX2JyKTogTGlrZXdpc2UuCgkoeGNvZmZfcmVsb2NfdHlwZV9jcmVsKTogTGlrZXdpc2UuCgkoeGNvZmZfcHBjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X3JlbG9jX3R5cGVfYnIpOiBMaWtld2lzZS4KCSh4Y29mZjY0X3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoeGNvZmY2NF9ob3d0b190YWJsZSk6IFJldmVydCBzb21lIG9mIGxhc3QgY2hhbmdlIHRvIG1hc2sgZW50cmllcy4KCVVzZSBjb21wbGFpbl9vdmVyZmxvd19kb250IGZvciBSX1JFRi4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2hvd3RvX3RhYmxlKTogRml4IHNyY19tYXNrIGVudHJpZXMuICBNYWtlIGFsbAoJcmVsb2NzIHdpdGggYml0c2l6ZSA9PSAxNiBoYXZlIHNpemUgPSAxLgoJKHhjb2ZmX3JlbG9jX3R5cGVfYmEpOiBDb3JyZWN0IHNyY19tYXNrIGFuZCBkc3RfbWFzayBhZGp1c3RtZW50LgoJKHhjb2ZmX3JlbG9jX3R5cGVfYnIpOiBMaWtld2lzZS4KCSh4Y29mZl9yZWxvY190eXBlX2NyZWwpOiBMaWtld2lzZS4KCSh4Y29mZl9wcGNfcmVsb2NhdGVfc2VjdGlvbik6IFNldCB1cCBzcmNfbWFzayBhbmQgZHN0X21hc2sgY29ycmVjdGx5LgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfcmVsb2NfdHlwZV9icik6IENvcnJlY3Qgc3JjX21hc2sgYW5kCglkc3RfbWFzayBhZGp1c3RtZW50LgoJKHhjb2ZmNjRfcHBjX3JlbG9jYXRlX3NlY3Rpb24pOiBTZXQgdXAgc3JjX21hc2sgYW5kIGRzdF9tYXNrIGNvcnJlY3RseS4KCSh4Y29mZjY0X2hvd3RvX3RhYmxlKTogRml4IHNyY19tYXNrIGVudHJpZXMuICBNYWtlIGFsbCByZWxvY3Mgd2l0aAoJYml0c2l6ZSA9PSAxNiBoYXZlIHNpemUgPSAxLgoKMjAwMi0wOC0wMSAgRGVuaXMgQ2hlcnR5a292ICA8ZGVuaXNjQG92ZXJ0YS5ydT4KCgkqIGVsZjMyLWlwMmsuYzogUHJvY2Vzc29yIG1hbnVmYWN0dXJlciBjaGFuZ2VkIHRvIFViaWNvbS4KCShzdHJ1Y3QgbWlzYyk6IE5ldyBmaWVsZCBpc3ltYnVmLiBBbGwgZnJlZV8qIGZpZWxkcyByZW1vdmVkLgoJKHN5bWJvbF92YWx1ZSk6IFBhc3MgaW4gaW50ZXJuYWwgc3ltcy4gTm8gbmVlZCB0byBzd2FwIHN5bXMgaW4uCgkoaXAya19lbGZfcmVsYXhfc2VjdGlvbik6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4gUHJvcGVybHkgZnJlZQoJcG9zc2libHkgY2FjaGVkIGluZm8uCgkodGlkeXVwX2FmdGVyX2Vycm9yKTogUmVtb3ZlZC4KCShpcDJrX2VsZl9yZWxheF9zZWN0aW9uX3Bhc3MxKTogRG9uJ3QgdXNlIHJlbW92ZWQgZmllbGRzIG9mIHN0cnVjdAoJbWlzYy4gVXNlIG5ldyBmaWVsZC4KCShhZGp1c3RfYWxsX3JlbG9jYXRpb25zKTogVXNlIGludGVybmFsIHN5bXMuIE5vIG5lZWQgdG8gc3dhcCBzeW1zCglpbiBhbmQgb3V0LgoJKGFkZF9wYWdlX2luc24pOiBEb24ndCB1c2UgcmVtb3ZlZCBmaWVsZHMgb2Ygc3RydWN0IG1pc2MuCgoyMDAyLTA4LTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmg6IFJldmVydCBwcmV2aW91cyBkZWx0YS4KCjIwMDItMDgtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKEFNX0lOSVRfQVVUT01BS0UpOiBCdW1wIHZlcnNpb24gbnVtYmVyLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA3LTMxICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy5iZmQ6IEFkZCB4ODYtNjQgdmVjdG9yIHRvIExpbnV4L2kzODYgaWYgNjRiaXQgQkZEIGlzCglzZWxlY3RlZC4KCjIwMDItMDctMzEgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlnLmJmZDogQWRkIG4zMiB2ZWN0b3JzIHRvIDMyYml0IExpbnV4L21pcHMgaWYgNjRiaXQgQkZECglpcyBzZWxlY3RlZC4KCjIwMDItMDctMzEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IFN3YXAgdGxzX3R5cGUKCWlmIF9iZmRfZWxmX2xpbmtfaGFzaF9jb3B5X2luZGlyZWN0IHdpbGwgc3dhcCBnb3QucmVmY291bnQuCgoyMDAyLTA3LTMxICBJYW4gRGFsbCAgPGlhbkBzaWJ5bC5iZXdhcmUuZHJvcGJlYXIuaWQuYXU+CgoJKiBjcHUtbnMzMmsuYyAoX2JmZF9uczMya19wdXRfaW1tZGVpYXRlLCBfYmZkX25zMzJrX2dldF9pbW1lZGlhdGUpOgoJVGhlcmUgaXMgbm8gOCBieXRlIHJlbG9jYXRpb24gdHlwZSBmb3IgdGhpcyBhcmNoaXRlY3R1cmUuCgkoZG9fbnMzMmtfcmVsb2MpOiBVc2UgYmZkX3ZtYSBpbnN0ZWFkIG9mIG5hdGl2ZSB0eXBlcy4KCShiZmRfbnMzMmtfcHV0X2ltbWVkaWF0ZSwgX2JmZF9uczMya19yZWxvY2F0ZV9jb250ZW50cykgcHV0X2RhdGEKCXJldHVybnMgdm9pZC4KCShfYmZkX25zMzJrX3B1dF9kaXNwbGFjZW1lbnQpOiBEb24ndCBjaGVjayBmb3Igb3ZlcmZsb3cuIFdlIGNhbgoJcmVseSBvbiBnZW5lcmljIGNvZGUgdG8gZG8gdGhhdC4KCSogYW91dC1uczMyay5jIChob3d0b190YWJsZSk6IEFkZCBhcHByb3ByaWF0ZSBvdmVyZmxvdyBkZXRlY3Rpb24KCXRvIGFsbCB0YWJsZSBlbnRyaWVzLgoJKF9iZmRfbnMzMmtfcmVsb2NhdGVfY29udGVudHMpOiBwdXRfZGF0YSByZXR1cm5zIHZvaWQuCgkqIG5zMzJrLmg6IChfYmZkX25zMzJrX3B1dF9kaXNwbGFjZW1lbnQsIF9iZmRfbnMzMmtfcHV0X2ltbWVkaWF0ZSkKCShfYmZkX2RvX25zMzJrX3JlbG9jX2NvbnRlbnRzKTogRml4IHByb3RvdHlwZXMuIHB1dCBkYXRhIGZ1bmN0aW9ucwoJcmV0dXJuIHZvaWQuCgoyMDAyLTA3LTMxICBJYW4gRGFsbCAgPGlhbkBzaWJ5bC5iZXdhcmUuZHJvcGJlYXIuaWQuYXU+CgoJKiBhb3V0eC5oIChhb3V0X2xpbmtfY2hlY2tfYXJfc3ltYm9scyk6IFdoZXRoZXIgdG8gaW5jbHVkZSBhbgoJYXJjaGl2ZSBvYmplY3QgaXMgdGFyZ2V0IGRlcGVuZGFudC4KCjIwMDItMDctMzEgIEFkYW0gTmVtZXQgIDxhbmVtZXRAbG54dy5jb20+CgoJKiBlbGYzMi1hcm0uaCAoQVJNX1BMVF9FTlRSWV9TSVpFKTogUmVuYW1lIFBMVF9FTlRSWV9TSVpFLgoJKFRIVU1CX1BMVF9FTlRSWV9TSVpFKTogTmV3IG1hY3JvLgoJKFBMVF9FTlRSWV9TSVpFKTogUmV0dXJuIHRoZSBhcHByb3ByaWF0ZSAqX1BMVF9FTlRSWV9TSVpFLgoJKGVsZjMyX2FybV9wbHQwX2VudHJ5KTogUmVuYW1lIFBMVF9FTlRSWV9TSVpFIHRvCglBUk1fUExUX0VOVFJZX1NJWkUuCgkoZWxmMzJfYXJtX3BsdF9lbnRyeSk6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6IExpa2V3aXNlLgoJKGVsZjMyX3RodW1iX3BsdDBfZW50cnkpOiBOZXcgZ2xvYmFsLgoJKGVsZjMyX2FybV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBpdC4gIFB1dCBUaHVtYiBlbnRyaWVzCglpbnRvIC5wbHQudGh1bWIuCgkoZWxmMzJfdGh1bWJfcGx0X2VudHJ5KTogTmV3IGdsb2JhbC4KCShlbGYzMl9hcm1fZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogVXNlIGl0LiAgVXNlIC50aHVtYi5wbHQgZm9yCglUaHVtYiBlbnRyaWVzLiAgU2V0IHRoZSBib3R0b20gYml0IG9mIHRoZSBjb3JyZXNwb25kaW5nIEdPVCBlbnRyeQoJZm9yIGEgVGh1bWIgUExUIGVudHJ5LgoJKHN0cnVjdCBlbGYzMl9hcm1fcGx0X2VudHJ5X2luZm8pOiBOZXcgc3RydWN0dXJlLgoJKHN0cnVjdCBlbGYzMl9hcm1fbGlua19oYXNoX2VudHJ5LCBwbHRfaW5mbyk6IE5ldyBtZW1iZXIgb2YgdGhpcwoJdHlwZS4KCShlbGYzMl9hcm1fbGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplIG5ldyBtZW1iZXIuCgkoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUsIFJfQVJNX1RITV9QQzIyIGNhc2UpOiBIYW5kbGUKCXJlbG9jYXRpb25zIGFnYWluc3QgdGhlIFBMVC4KCShlbGYzMl9hcm1fY2hlY2tfcmVsb2NzLCBjYXNlIFJfQVJNX1BMVDMyIGNhc2UpOiBTZXQKCWZpcnN0X3JlbF90eXBlIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgd2UgZW5jb3VudGVyIHRoZSBzeW1ib2wuCgkoZWxmMzJfYXJtX2NoZWNrX3JlbG9jcywgY2FzZSBSX0FSTV9USE1fUEMyMiBjYXNlKTogTmV3IGNhc2UuCglEZXRlcm1pbmUgaWYgcmVsb2NhdGlvbiBuZWVkcyBhIFBMVCBlbnRyeS4gIFNldCBmaXJzdF9yZWxfdHlwZSBpZgoJdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB3ZSBlbmNvdW50ZXIgdGhlIHN5bWJvbAoJKGVsZjMyX2FybV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBDcmVhdGUgUExUIGVudHJpZXMgZm9yIFRodW1iCglmdW5jdGlvbnMgYXMgd2VsbC4KCShlbGYzMl9hcm1fc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogSGFuZGxlIC5wbHQudGh1bWIgbGlrZSAucGx0LgoJKGVsZjMyX2FybV9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4gIENyZWF0ZSB0aGUKCS5wbHQudGh1bWIgc2VjdGlvbi4KCShlbGZfYmFja2VuZF9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IENhbGwgaXQuCgoyMDAyLTA3LTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYmZkLmMgKGJmZF9hbHRfbWFjaF9jb2RlKTogUmVuYW1lIHBhcmFtZXRlciAnaW5kZXgnIHRvCgknYWx0ZXJuYXRpdmUnIGluIG9yZGVyIHRvIGF2b2lkIHNoYWRvd2luZyBnbG9iYWwgc3ltYm9sIG9mIHRoZQoJc2FtZSBuYW1lLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBsaWJjb2ZmLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTA3LTMxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogTWFrZWZpbGUuYW06IEFkZCBuMzIgQUJJIHN1cHBvcnQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkOiBBZGQgbjMyIHZlY3RvcnMgdG8gbWlwczY0Ki0qLWxpbnV4KiB0YXJnZXRzLiBUcmVhdCA2NAoJYml0IHZlY3RvcnMgZm9yIG1pcHMqLSotbGludXggdGFyZ2V0cyBhcyBvcHRpb25hbC4KCSogY29uZmlndXJlLmluOiBBZGQgbjMyIEFCSSB2ZWN0b3JzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGYzMl9vYmplY3RfcCk6IFJlamVjdCBuMzIgQUJJIGZpbGVzLgoJKiBlbGZuMzItbWlwcy5jOiBOZXcgZmlsZSwgbjMyIEFCSSBzdXBwb3J0LgoJKiB0YXJnZXRzLmM6IEFkZCBuMzIgQUJJIHZlY3RvcnMuCgoyMDAyLTA3LTMwICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogZWxmYXJtcW54LW5hYmkuYzogTmV3IGZpbGU6IFN1cHBvcnQgZm9yIFFOWC4KCSogY29uZmlnLmJmZDogQWRkIHN1cHBvcnQgZm9yIGFybS0qLW50byB0YXJnZXQuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIGJmZF9lbGYzMl97YmlnfGxpdHRsZX1hcm1xbnhfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBBZGQgZW50cmllcyBmb3IgZWxmYXJtcW54LW5hYmkuYy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVsZjMyLWFybS5oIChFTEZfTUFYUEFHRVNJWkUpOiBEbyBub3QgZGVmaW5lIGlmIGFscmVhZHkgZGVmaW5lZC4KCURvIG5vdCBkZWZpbmUgZ2xvYmFsIGZ1bmN0aW9uIGlmIEVMRkFSTV9OQUJJX0NfSU5DTFVERUQgaXMgZGVmaW5lZC4KCSogZWxmYXJtLW5hYmkuYzogRG8gbm90IGluY2x1ZGUgZWxmMzItYXJtLmggaWYKCUVMRkFSTV9OQUJJX0NfSU5DTFVERUQgaXMgZGVmaW5lZC4KCSogdGFyZ2V0cy5jOiBBZGQgYmZkX2VsZjMyX3tiaWd8bGl0dGxlfWFybXFueF92ZWMuCgoyMDAyLTA3LTMwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vc3YucG86IFVwZGF0ZWQgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCjIwMDItMDctMzAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLmMgKGVsZl9mYWtlX3NlY3Rpb25zKTogRml4IHVwIC50YnNzIHNoX3NpemUgYW5kIHNoX3R5cGUuCgoyMDAyLTA3LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYW91dHguaCAoc29tZV9hb3V0X29iamVjdF9wKTogQ2xlYW4gdXAgdGRhdGEgcHJvcGVybHkgb24gZXJyb3IuCgkqIGFyY2hpdmUuYyAoYmZkX2dlbmVyaWNfYXJjaGl2ZV9wKTogTGlrZXdpc2UuCgkqIGNvZmYtcnM2MDAwLmMgKF9iZmRfeGNvZmZfYXJjaGl2ZV9wKTogTGlrZXdpc2UuCgkoX2JmZF94Y29mZl9hcmNoaXZlX3ApOiBVc2UgYmZkX3NjYW5fdm1hIGluIHBsYWNlIG9mIHN0cnRvbC4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X3NsdXJwX2FybWFwKTogTGlrZXdpc2UuCgkoeGNvZmY2NF9hcmNoaXZlX3ApOiBMaWtld2lzZS4KCSh4Y29mZjY0X29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSk6IExpa2V3aXNlLgoJKHhjb2ZmNjRfYXJjaGl2ZV9wKTogQ2xlYW4gdXAgdGRhdGEgcHJvcGVybHkgb24gZXJyb3IuCgkqIGNvZmZnZW4uYyAoY29mZl9yZWFsX29iamVjdF9wKTogTGlrZXdpc2UuCgkoY29mZl9vYmplY3RfcCk6IFJlbGVhc2UgZmlsZWhkciBhbmQgb3B0aGRyLgoJKiBlY29mZi5jIChfYmZkX2Vjb2ZmX2FyY2hpdmVfcCk6IENsZWFuIHVwIHRkYXRhIHByb3Blcmx5IG9uIGVycm9yLgoJKiBpZWVlLmMgKGllZWVfYXJjaGl2ZV9wKTogTGlrZXdpc2UuCgkqIGloZXguYyAoaWhleF9vYmplY3RfcCk6IExpa2V3aXNlLgoJKGloZXhfbWtvYmplY3QpOiBBbHdheXMgYWxsb2NhdGUgdGRhdGEuCgkqIHBlaWNvZGUuaCAocGVfSUxGX29iamVjdF9wKTogUmVsZWFzZSBiZmRfYWxsb2MnZCBidWZmZXIgb24gZXJyb3IuCgkqIHNyZWMuYyAoc3JlY19ta29iamVjdCk6IEFsd2F5cyBhbGxvY2F0ZSB0ZGF0YS4KCShzcmVjX29iamVjdF9wKTogQ2xlYW4gdXAgdGRhdGEgcHJvcGVybHkgb24gZXJyb3IuCgkoc3ltYm9sc3JlY19vYmplY3RfcCk6IExpa2V3aXNlLgoJKiB2ZXJzYWRvcy5jICh2ZXJzYWRvc19vYmplY3RfcCk6IExpa2V3aXNlLgoJKiB2bXMtbWlzYy5jIChfYmZkX3Ztc19nZXRfcmVjb3JkKTogVXNlIGJmZF9tYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MsCglhbmQgYmZkX3JlYWxsb2MgaW5zdGVhZCBvZiByZWFsbG9jLgoJKGFkZF9uZXdfY29udGVudHMpOiBVc2UgYmZkX2FsbG9jIGluc3RlYWQgb2YgYmZkX21hbGxvYyBmb3Igc2VjdGlvbnMuCgkqIHZtcy5jICh2bXNfaW5pdGlhbGl6ZSk6IEFsd2F5cyBhbGxvY2F0ZSB0ZGF0YS4gIFVzZSBiZmRfYWxsb2MgaW4KCXBsYWNlIG9mIGJmZF9tYWxsb2MsIHNpbXBsaWZ5aW5nIGVycm9yIGZyZWVpbmcuICBGcmVlIGhhc2ggdGFibGUgdG9vLgoJKHZtc19vYmplY3RfcCk6IENsZWFuIHVwIHRkYXRhIG9uIGVycm9yLgoJKHZtc19ta29iamVjdCk6IERvbid0IGNvbXBsYWluIG9uIHN0ZGVyciBpZiB2bXNfaW5pdGlhbGl6ZSBmYWlscy4KCSh2bXNfY2xvc2VfYW5kX2NsZWFudXApOiBBZGp1c3QgZm9yIGJmZF9hbGxvYyB1c2UuCgoyMDAyLTA3LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBTZXQgZV9mbGFncy4KCjIwMDItMDctMjYgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IE1lcmdlIEFTRQoJZmxhZ3MgaW50byByZXN1bHRpbmcgQkZELgoKMjAwMi0wNy0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglGcm9tIEpvaG4gUmVpc2VyIDxqcmVpc2VyQEJpdFdhZ29uLmNvbT4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogQ2xlYXIKCXRsc19sZG1fZ290LnJlZmNvdW50LgoKMjAwMi0wNy0yNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjY0LW1pcHMuYzogVXBkYXRlIFRPRE8gY29tbWVudC4KCShtaXBzX2VsZjY0X2hpZ2hlcl9yZWxvYyxtaXBzX2VsZjY0X2hpZ2hlc3RfcmVsb2MsCgltaXBzX2VsZjY0X2dwcmVsMTZfcmVsb2NhKTogUmVtb3ZlIHByb3RvdHlwZXMuCgkobWlwczE2X2p1bXBfcmVsb2MsbWlwczE2X2dwcmVsX3JlbG9jKTogQWRkIGZ1bmN0aW9ucy4KCShVTlVTRURfUkVMT0MpOiBSZXBsYWNlIGJ5IEVNUFRZX1JFTE9DLgoJKG1pcHNfZWxmNjRfaG93dG9fdGFibGVfcmVsKTogVXNlIHNwZWNpYWwgUl9NSVBTX0hJMTYgaGFuZGxpbmcuIFJlbW92ZQoJd3JvbmcgY29tbWVudHMuIFJlbW92ZSBkaXNmdW5jdGlvbmFsIHN1cHBvcnQgb2YgUl9NSVBTX0hJR0hFUiBhbmQKCVJfTUlQU19ISUdIRVNULgoJKG1pcHNfZWxmNjRfaG93dG9fdGFibGVfcmVsYSk6IEZpeCBoYW5kbGluZyBvZiBSX01JUFNfR1BSRUwxNiBhbmQKCVJfTUlQU19HT1QxNi4gUmVtb3ZlIHdyb25nIGNvbW1lbnRzLgoJKGVsZl9taXBzMTZfanVtcF9ob3d0byxlbGZfbWlwczE2X2dwcmVsX2hvd3RvLAoJZWxmX21pcHNfZ251X3Z0aW5oZXJpdF9ob3d0byxlbGZfbWlwc19nbnVfdnRlbnRyeV9ob3d0byk6IE5ldywgY29kZQoJZnJvbSBlbGYzMi1taXBzLmMuCgkobWlwc19lbGY2NF9oaTE2X3JlbG9jKTogRml4IGZvcm1hdHRpbmcuCgkobWlwc19lbGY2NF9oaWdoZXJfcmVsb2MsbWlwc19lbGY2NF9oaWdoZXN0X3JlbG9jKTogUmVtb3ZlLgoJKG1pcHNfZWxmNjRfZ290MTZfcmVsb2MpOiBGaXggZm9ybWF0dGluZy4gUmVtb3ZlIHN1cGVyZmx1b3VzIGNvZGUuCglCZXR0ZXIgY29tbWVudC4gRmFsbCBiYWNrIHRvIFJfTUlQU19HT1RfRElTUCBpbnN0ZWFkIG9mIGFib3J0KCkuCgkobWlwc19lbGY2NF9ncHJlbDE2X3JlbG9jKTogTWFrZSBzdGF0aWMuIEFkZCBjaGVjayBmb3IKCXBhcnRpYWxfaW5wbGFjZS4KCShtaXBzX2VsZjY0X2dwcmVsMTZfcmVsb2NhKTogUmVtb3ZlLgoJKG1pcHNfZWxmNjRfbGl0ZXJhbF9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShtaXBzX2VsZjY0X2dwcmVsMzJfcmVsb2MpOiBGaXggZm9ybWF0dGluZy4KCShtaXBzX2VsZjY0X3NoaWZ0Nl9yZWxvYyk6IEZpeCBjb21tZW50LiBNYWtlIHN0YXRpYy4KCShtaXBzMTZfanVtcF9yZWxvYyxtaXBzMTZfZ3ByZWxfcmVsb2MpOiBOZXcgZnVuY3Rpb25zLCBjb2RlIGZyb20KCWVsZjMyLW1pcHMuYy4KCShlbGZfcmVsb2NfbWFwLG1pcHNfcmVsb2NfbWFwKTogTmV3IG1hcHBpbmcgdGFibGUsIHNpbWlsaWFyIGFzIGluCgllbGYzMi1taXBzLmMKCShiZmRfZWxmNjRfYmZkX3JlbG9jX3R5cGVfbG9va3VwKTogVXNlIHRoZSBtYXBwaW5nIHRhYmxlLiBFbmFibGUgR05VCglzcGVjaWZpYyByZWxvY2F0aW9ucy4KCShtaXBzX2VsZjY0X3J0eXBlX3RvX2hvd3RvKTogRW5hYmxlIEdOVSBzcGVjaWZpYyByZWxvY2F0aW9ucy4KCShtaXBzX2VsZjY0X29iamVjdF9wKTogSW52ZXJ0IGxvZ2ljIHRvIGNoZWNrIGZvciBTR0ktaXNoIEFCSS4KCShFTEZfTUFYUEFHRVNJWkUpOiBBZGQgY29tbWVudC4KCjIwMDItMDctMjUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogVXBkYXRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uLgoJKiBwby9lcy5wbzogVXBkYXRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgoJKiBwby9mci5wbzogVXBkYXRlZCBGcmVuY2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChfYmZkX2VsZjMyX2xpbmtfcmVjb3JkX2xvY2FsX2R5bmFtaWNfc3ltYm9sKTogRGVmaW5lCglhcyBlbGZfbGlua19yZWNvcmRfbG9jYWxfZHluYW1pY19zeW1ib2wuCgkoX2JmZF9lbGY2NF9saW5rX3JlY29yZF9sb2NhbF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9saW5rX3JlY29yZF9sb2NhbF9keW5hbWljX3N5bWJvbCk6IERlY2xhcmUuICBOb3cgcmV0dXJucyBpbnQuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfcmVjb3JkX2xvY2FsX2R5bmFtaWNfc3ltYm9sKTogTW92ZSB0by4uCgkqIGVsZmxpbmsuYzogLi4gaGVyZS4gIFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4gIENoZWNrIHdoZXRoZXIgYW4KCWF0dGVtcHQgaXMgbWFkZSB0byByZWNvcmQgYSBzeW1ib2wgaW4gYSBkaXNjYXJkZWQgc2VjdGlvbiwgYW5kCglyZXR1cm4gYDInIGluIHRoYXQgY2FzZS4KCjIwMDItMDctMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogVXBkYXRlZCBTd2VkaXNoIHRyYW5zbGF0aW9uLgoJKiBwby9lcy5wbzogVXBkYXRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBJZiByZWxvY2F0YWJsZSwgcmV0dXJuCglpbW1lZGlhdGVseS4gIFJlbW92ZSBjb2RlIGhhbmRsaW5nIHJlbG9jYXRhYmxlIGxpbmtpbmcuCgkqIGVsZjMyLWF2ci5jIChlbGYzMl9hdnJfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jIChlbGYzMl9mcnZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1mcnYuYyAoZWxmMzJfZnJ2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pcDJrLmMgKGlwMmtfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmMgKHY4NTBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItdmF4LmMgKGVsZl92YXhfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWF2ci5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzItY3Jpcy5jOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jOiBMaWtld2lzZS4KCSogZWxmMzItZnJ2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmMzItaXAyay5jOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWZyMzAuYyAoZWxmMzJfZnJ2X3JlbG9jYXRlX3NlY3Rpb24pOiBFZGl0IGNvbW1lbnQuCgkqIGVsZjMyLWZydi5jIChlbGYzMl9mcnZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pcDJrLmMgKGlwMmtfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmLW0xMDIwMC5jIChVU0VfUkVMQSk6IERvbid0IGRlZmluZS4KCSogZWxmLW0xMDMwMC5jOiBMaWtld2lzZS4KCSogZWxmYXJtLW9hYmkuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWlwMmsuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmM6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYzogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWF2ci5jIChVU0VfUkVMKTogRG9uJ3QgdW5kZWYuCgkqIGVsZjMyLWlwMmsuYzogTGlrZXdpc2UuCgoyMDAyLTA3LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IEFkZCBuZXcgYml0ZmllbGQKCSd3YW50X3BfcGFkZHJfc2V0X3RvX3plcm8nLgoJKiBlbGZ4eC10YXJnZXQuaDogU2V0IGRlZmF1bHQgdmFsdWUgZm9yIHdhbnRfcF9wYWRkcl9zZXRfdG9femVybwoJdG8gZmFsc2U7CgkqIGVsZnh4LWlhNjQuYzogU2V0IHdhbnRfcF9wYWRkcl9zZXRfemVybyBmb3IgSFBVWCB0YXJnZXQuCgkqIGVsZi5jIChjb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBUZXN0IHdhbnRfcF9wYWRkcl9zZXRfemVyby4KCjIwMDItMDctMjMgIEdhYm9yIEtlcmVzenRmYWx2aSAgPGtlcmVzenRnQG1haWwuY29tPgoKCSogbmxtY29kZS5oIChubG1fc3dhcF9hdXhpbGlhcnlfaGVhZGVyc19vdXQpOiBTd2FwcGVkIHRoZSBvcmRlciBvZgoJdGhlIE1lU3NBZ0VzIGFuZCBDb1B5UmlHaFQgdGFncyB0byBtYWtlID49Tlc0LnggTkxNIGxvYWRlcnMgdG8KCXNob3cgdGhlIENvcHlyaWdodCBzdHJpbmcuCglNaW5vciBmb3JtYXR0aW5nIHRpZHkgdXBzLgoKMjAwMi0wNy0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2ZyLnBvOiBVcGRhdGVkIEZyZW5jaCB0cmFuc2xhdGlvbi4KCSogcG8vc3YucG86IFVwZGF0ZWQgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCjIwMDItMDctMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IERvbid0IGNoYW5nZSBpbnRlcm5hbCBzeW1ib2xzCgl3aGVuIG91dHB1dHRpbmcgcmVsb2NzLgoKMjAwMi0wNy0yMCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IE9ubHkgaW5zZXJ0CglEVF9QTFRHT1QgaW50byB0aGUgZHluYW1pYyBzZWN0aW9uIGlmIHRoZXJlIGlzIGEgUExULgoKMjAwMi0wNy0xOSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9kaXNjYXJkX2luZm8pOiBOZXcgZnVuY3Rpb24sIGNvZGUgZnJvbQoJZWxmMzItbWlwcy5jLgoJKF9iZmRfbWlwc19lbGZfd3JpdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmggKF9iZmRfbWlwc19lbGZfZGlzY2FyZF9pbmZvKTogTmV3IHByb3RvdHlwZS4KCShfYmZkX21pcHNfZWxmX3dyaXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChlbGYzMl9taXBzX2Rpc2NhcmRfaW5mbyk6IE1vdmUgdG8gZWxmeHgtbWlwcy5jLgoJKGVsZjMyX21pcHNfd3JpdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmMgKF9iZmRfbWlwc19lbGZfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MpOiBVc2UgaXQuCgkoX2JmZF9taXBzX2VsZl93cml0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTA3LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmeHgtaWE2NC5jOiAoZWxmTk5faWE2NF9tb2RpZnlfc2VnbWVudF9tYXApOiBQcm9wZXJseSBzY2FuCglQVF9JQV82NF9VTldJTkQgc2VnbWVudHMgZm9yIGEgZ2l2ZW4gc2VjdGlvbi4KCjIwMDItMDctMTcgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogTWFrZWZpbGUuYW06IEZpeCBhIHR5cG8uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNy0xNSAgRGVuaXMgQ2hlcnR5a292ICA8ZGVuaXNjQG92ZXJ0YS5ydT4KCSAgICBGcmFuayBDaC4gRWlnbGVyICA8ZmNoZUByZWRoYXQuY29tPgoJICAgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoJICAgIEFsYW4gTGVob3Rza3kgIDxhbGVob3Rza3lAY3lnbnVzLmNvbT4KCSAgICBKb2huIEhlYWx5ICA8amhlYWx5QHJlZGhhdC5jb20+CgkgICAgR3JhaGFtIFN0b3R0ICA8Z3JhaGFtc0ByZWRoYXQuY29tPgoJICAgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBpcDJrLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBhcmNodXJlcy5jOiBBZGQgc3VwcG9ydCBmb3IgaXAyay4KCSogY29uZmlnLmJmZDogQWRkIHN1cHBvcnQgZm9yIGlwMmsuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIGlwMmsuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcmVsb2MuYzogQWRkIHN1cHBvcnQgZm9yIGlwMmsuCgkqIHRhcmdldHMuYzogQWRkIHN1cHBvcnQgZm9yIGlwMmsuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS1pcDJrLmM6IE5ldyBmaWxlLgoJKiBlbGYzMi1pcDJrLmM6IE5ldyBmaWxlLgoKMjAwMi0wNy0xNyAgSWFuIFJpY2thcmRzICA8aXJpY2thcmRAYXJtLmNvbT4KCgkqIGR3YXJmMi5jIChjb25jYXRfZmlsZW5hbWUpOiBJZiB3ZSBjYW4ndCBlc3RhYmxpc2ggdGhlIGRpcmVjdG9yeQoJanVzdCByZXR1cm4gdGhlIGZpbGVuYW1lLgoKMjAwMi0wNy0xNiAgTW9yaXR6IEpvZGVpdCAgPG1vcml0ekBqb2RlaXQub3JnPgoKCSogcGVYWGlnZW4uYyAoX2JmZF9YWGlfc3dhcF9hb3V0aGRyX291dCk6IENvcnJlY3Qgb3JkZXIgb2YgbWVtc2V0IGFyZ3MuCgoyMDAyLTA3LTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oOiBGb3JtYXR0aW5nIGZpeGVzLCB0aWR5IHByb3RvdHlwZXMuCgkoZWxmX2xpbmtfYXNzaWduX3N5bV92ZXJzaW9uKTogTW92ZSBjb21tb24gY29kZSBvdXQgb2YgbG9vcC4KCjIwMDItMDctMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IERvbid0IGNhbGwgcmVsb2NfZW1pdHRlciB3aGVuCglyZWxvYyBzZWN0aW9uIHNpemUgaXMgemVyby4gIENvcnJlY3QgcmVsb2Mgb3V0cHV0IGxvY2F0aW9uLgoKMjAwMi0wNy0xNiAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX3JlbG9jX2ZpbmFsX3R5cGUpOiBVc2UgUl9QQVJJU0NfUENSRUwxNkYgYXMKCXRoZSBmaW5hbCB0eXBlIGZvciB0aGUgZV9mc2VsIHNlbGVjdG9yIHdoZW4gZ2VuZXJhdGluZyBQQTIuMFcgY29kZS4KCShlbGZfaHBwYV9yZWxvY2F0ZV9pbnNuKTogUHJvdmlkZSBzdXBwb3J0IGZvciBQQTIuMFcgMTYtYml0IGZvcm1hdCAxCglyZWxvY2F0aW9ucy4KCjIwMDItMDctMTQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBIaWRlIHRoZSBkZWZhdWx0CglkZWZpbml0aW9uIGlmIHRoZXJlIGlzIGEgaGlkZGVuIHZlcnNpb25lZCBkZWZpbml0aW9uLgoKMjAwMi0wNy0xMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEcm9wIG5vbnNlbnNpY2FsCglkeW5hbWljIHJlZmVyZW5jZSB0ZXN0IGluIGFzc2VydGlvbiB3aGVuIGluaXRpYWxpemluZyBHT1Qgd2l0aAoJc3RhdGljIGNvbnRlbnRzLiAgSnVzdCBhc3NlcnQgdGhhdCB0aGVyZSBhcmUgZWl0aGVyIG5vIGR5bmFtaWMKCXNlY3Rpb25zLCB0aGUgc3ltYm9sIGlzIGRlZmluZWQgaW4gdGhlIHJlZ3VsYXIgb2JqZWN0cyBvciB0aGF0IHRoZQoJc3ltYm9sIGlzIHVuZGVmIHdlYWsuICBUd2VhayBjb21tZW50LgoJKGVsZl9jcmlzX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IEVtaXQgLmdvdCByZWxvYyBmb3IgYSBwcm9ncmFtCglvbmx5IGlmIHRoZSBzeW1ib2wgaXNuJ3QgZGVmaW5lZCBpbiB0aGUgcHJvZ3JhbSBhbmQgaXNuJ3QgdW5kZWYKCXdlYWsuCgkoZWxmX2NyaXNfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogU2ltcGxpZnkgY29uZGl0aW9uIGZvciBnZXR0aW5nCglyaWQgb2YgUExUIGVudHJ5OiBvbmx5IGRvIGl0IGlmIHRoZSBzeW1ib2wgaXNuJ3QgZGVmaW5lZCBpbiBhIERTTy4KCVdoZW4gZG9pbmcgc28sIGNsZWFyIEVMRl9MSU5LX0hBU0hfTkVFRFNfUExULiAgVHdlYWsgY29tbWVudHMuCgkoZWxmX2NyaXNfZGlzY2FyZF9leGNlc3NfcHJvZ3JhbV9keW5hbWljcyk6IERvbid0IGNvbnNpZGVyCglFTEZfTElOS19IQVNIX1JFRl9EWU5BTUlDIHdoZW4gb21pdHRpbmcgLmdvdCBydW50aW1lIHJlbG9jcy4KCjIwMDItMDctMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBjb21wbGFpbiBhYm91dAoJdW5yZXNvbHZlZCBkZWJ1Z2dpbmcgcmVsb2NzIGluIGR5bmFtaWMgYXBwbGljYXRpb25zLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTA3LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKE9ORVMpOiBEZWZpbmUuCgkocHBjNjRfZWxmX2hvd3RvX3RhYmxlKTogVXNlIE9ORVMgaGVyZSB0byBhdm9pZCB3YXJuaW5ncy4gIEZpbGwgaW4KCW1pc3Npbmcgc3JjX21hc2sgZmllbGRzLiAgVHdlYWsgUl9QUEM2NF9OT05FLCBSX1BQQzY0X0NPUFkuICBGaWxsCglpbiBtaXNzaW5nIGRzdF9tYXNrIGZpZWxkcyBvbiBSX1BQQzY0X1BMVDMyLCBSX1BQQzY0X1BMVFJFTDMyLgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9nZXRfc3ltYm9sX2luZm8pOiBEZWxldGUuCgkocHBjNjRfZWxmX3NldF9wcml2YXRlX2ZsYWdzKTogRGVsZXRlLgoJKHBwYzY0X2VsZl9zZWN0aW9uX2Zyb21fc2hkcik6IERlbGV0ZS4KCShwcGM2NF9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IFJlbW92ZSBmbGFnIGNoZWNraW5nL21lcmdpbmcgY29kZS4KCShwcGM2NF9lbGZfZmFrZV9zZWN0aW9ucyk6IERlbGV0ZS4KCShiZmRfZWxmNjRfYmZkX3NldF9wcml2YXRlX2ZsYWdzKTogRG9uJ3QgZGVmaW5lLgoJKGJmZF9lbGY2NF9nZXRfc3ltYm9sX2luZm8pOiBMaWtld2lzZS4KCShlbGZfYmFja2VuZF9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKGVsZl9iYWNrZW5kX2Zha2Vfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDItMDctMTAgIE1hcmNvIFdhbHRoZXIgIDxNYXJjby5XYWx0aGVyQHN1bi5jb20+CgoJKiBlbGYuYzogKGFzc2lnbl9zZWN0aW9uX251bWJlcnMpIFNldCBzaF9lbnRzaXplIGZvciAuc3RhYiBvbmx5Cgl3aGVuIG5vdCBhbHJlYWR5IHNldC4KCSogZWxmNjQtc3BhcmMuYzogKHNwYXJjNjRfZWxmX2Zha2Vfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfZmFrZV9zZWN0aW9ucyk6IERlZmluZS4KCjIwMDItMDctMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBtZXJnZS5jIChfYmZkX21lcmdlX3NlY3Rpb24pOiBSZW1vdmUgcmVkdW5kYW50IG91dHB1dF9zZWN0aW9uIGNoZWNrLgoJRm9ybWF0dGluZy4KCShfYmZkX21lcmdlX3NlY3Rpb25zKTogRG9uJ3Qgc2V0IFNFQ19FWENMVURFIG9uIHVudXNlZCBzZWN0aW9ucy4KCjIwMDItMDctMDkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTW92ZSBzYW5pdHktY2hlY2sgZm9yCglOVUxMIHN5bV9oYXNoZXMgdG8ganVzdCBiZWZvcmUgdXNlLgoJPGNhc2UgUl9DUklTXzMyX0dPVFJFTD46IEluIHRlc3QgZm9yIGxvY2FsIHN5bWJvbCwgYWNjZXB0IGFsc28KCXN5bWJvbCB3aXRoIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgk8Y2FzZSBSX0NSSVNfMzJfR09UUkVMLCBjYXNlIFJfQ1JJU18zMl9QTFRfR09UUkVMPjogRGl0dG8uCgk8Y2FzZSBSX0NSSVNfOF9QQ1JFTCwgY2FzZSBSX0NSSVNfMTZfUENSRUwsIGNhc2UgUl9DUklTXzMyX1BDUkVMPjoKCURpdHRvLgoJKGNyaXNfZWxmX2djX3N3ZWVwX2hvb2spOiBPbmx5IGRlY3JlYXNlIGgtPnBsdC5yZWZjb3VudCBmb3IKCXN5bWJvbCB3aXRoIG5vbi1kZWZhdWx0IHZpc2liaWxpdHkuCgkoY3Jpc19lbGZfY2hlY2tfcmVsb2NzKTogQXQgdGVzdHMgZm9yIGxvY2FsIHN5bWJvbCBiZWZvcmUKCWluY3JlYXNpbmcgaC0+cGx0LnJlZmNvdW50LCBhbHNvIGNoZWNrIGZvciBub24tZGVmYXVsdAoJdmlzaWJpbGl0eS4gIERpdHRvIHdoZW4gY2hlY2tpbmcgZm9yIGxvY2FsIHN5bWJvbCB0byBlbGltaW5hdGUKCXBjLXJlbGF0aXZlIHJ1bnRpbWUgcmVsb2NzLgoKMjAwMi0wNy0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jOiBGb3JtYXR0aW5nLgoJKElTX1NPTEFSSVNfUFRfSU5URVJQKTogQWRkIHBfcGFkZHIgYW5kIHBfbWVtc3ogY2hlY2tzLgoJKElOQ0xVREVfU0VDVElPTl9JTl9TRUdNRU5UKTogUmVtb3ZlIElTX1NPTEFSSVNfUFRfSU5URVJQLgoJKGNvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IFNldCBwX3ZhZGRyIG9uIGJyb2tlbiBTb2xhcmlzIFBUX0lOVEVSUAoJc2VnbWVudHMuCgoyMDAyLTA3LTA3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoJICAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfZmluYWxfbGluayk6IE9uIFBFIENPRkYgc3lzdGVtcywgdGFrZSBpbnRvCglhY2NvdW50IHRoZSBpbXBhY3Qgb2YgcmVsb2NhdGlvbiBjb3VudCBvdmVyZmxvdyB3aGVuIGNvbXB1dGluZwoJc2VjdGlvbiBvZmZzZXRzLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3dyaXRlX3JlbG9jcyk6IFVzZSBvYmpfcGUgd2hlbiBkZWNpZGluZyB3aGV0aGVyCglvciBub3QgdG8gYXBwbHkgdGhlIFBFIENPRkYgcmVsb2Mgb3ZlcmZsb3cgaGFuZGxpbmcuICBGaXggYQoJZmVuY2Vwb3N0IGVycm9yIGluIGRlY2lkaW5nIHdoZXRoZXIgb3Igbm90IHRvIHVzZSB0aGF0IHRlY2huaXF1ZS4KCjIwMDItMDctMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfcmVsb2NfY29va2llKTogUmVtb3ZlIGxvY3N5bV9zaG5keCwKCWNoYW5nZSB0eXBlIG9mIGxvY3N5bXMuCgkoYmZkX2VsZl9nZXRfZWxmX3N5bXMpOiBEZWNsYXJlLgoJKiBlbGYuYyAoYmZkX2VsZl9nZXRfZWxmX3N5bXMpOiBOZXcgZnVuY3Rpb24uCgkoZ3JvdXBfc2lnbmF0dXJlKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLgoJKGJmZF9zZWN0aW9uX2Zyb21fcl9zeW1uZHgpOiBMaWtld2lzZS4KCSogZWxmY29kZS5oIChlbGZfc2x1cnBfc3ltYm9sX3RhYmxlKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaXNfZGVmaW5lZF9hcmNoaXZlX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IExpa2V3aXNlLiAgUmVvcmdhbmlzZSB0byBpbmNyZWFzZQoJbG9jYWxpdHkgb2YgdmFyaW91cyBkYXRhIHN0cnVjdHVyZXMuICBQcm9wZXJseSBmcmVlIGludGVybmFsIHJlbG9jcy4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBQcm9wZXJseSBmcmVlIGludGVybmFsIHJlbG9jcy4KCShlbGZfbGlua19jaGVja192ZXJzaW9uZWRfc3ltYm9sKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKGVsZl9nY19tYXJrKTogTGlrZXdpc2UuICBQcm9wZXJseSBmcmVlIGludGVybmFsIHJlbG9jcy4KCShlbGZfZ2Nfc3dlZXApOiBQcm9wZXJseSBmcmVlIGludGVybmFsIHJlbG9jcy4KCShlbGZfcmVsb2Nfc3ltYm9sX2RlbGV0ZWRfcCk6IE5vIG5lZWQgdG8gc3dhcCBzeW1zIGluLgoJKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLiAgUHJvcGVybHkgZnJlZQoJaW50ZXJuYWwgcmVsb2NzLgoJKiBlbGYtbTEwMjAwLmMgKG1uMTAyMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuCglQcm9wZXJseSBmcmVlIHBvc3NpYmx5IGNhY2hlZCBpbmZvLgoJKG1uMTAyMDBfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IFJlbW92ZSBzeW1ib2wgc3dhcHBpbmcgY29kZS4KCShtbjEwMjAwX2VsZl9zeW1ib2xfYWRkcmVzc19wKTogUGFzcyBpbiBpbnRlcm5hbCBzeW1zLiAgUmVtb3ZlCglzeW1ib2wgc3dhcHBpbmcgY29kZS4KCShtbjEwMjAwX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuCglQcm9wZXJseSBmcmVlIHBvc3NpYmx5IGNhY2hlZCBpbmZvLgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBBcyBhYm92ZSBmb3IgZWxmLW0xMDIwMC5jLgoJKG1uMTAzMDBfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKG1uMTAzMDBfZWxmX3N5bWJvbF9hZGRyZXNzX3ApOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbik6IEFzIGFib3ZlIGZvciBlbGYtbTEwMjAwLmMuCgkoZWxmMzJfaDhfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfc3ltYm9sX2FkZHJlc3NfcCk6IExpa2V3aXNlLgoJKGVsZjMyX2g4X2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX3JlbGF4X3NlY3Rpb24pOiBBcyBhYm92ZSBmb3IgZWxmLW0xMDIwMC5jLgoJKG0zMnJfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKG0zMnJfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NfbG9vcCk6IEZyZWUgc2VjdGlvbiBjb250ZW50cyB1c2luZwoJZWxmX3NlY3Rpb25fZGF0YSB0byBkZXRlcm1pbmUgd2hldGhlciBjYWNoZWQuCgkoc2hfZWxmX3JlbGF4X3NlY3Rpb24pOiBBcyBhYm92ZSBmb3IgZWxmLW0xMDIwMC5jLgoJKHNoX2VsZl9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShzaF9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX3JlbGF4X3NlY3Rpb24pOiBBcyBhYm92ZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfc2VjdGlvbik6IEFzIGFib3ZlLiAgQWxzbyBkZWxheQoJcmVhZGluZyBvZiBsb2NhbCBzeW1zLgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBBcyBhYm92ZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBBcyBhYm92ZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2NoZWNrX3JlbG9jcyk6IFByb3Blcmx5IGZyZWUgaW50ZXJuYWwKCXJlbG9jcy4KCSogZWxmMzItYXJtLmggKGJmZF9lbGYzMl9hcm1fcHJvY2Vzc19iZWZvcmVfYWxsb2NhdGlvbik6IFByb3Blcmx5CglmcmVlIGludGVybmFsIHJlbG9jcyBhbmQgc2VjdGlvbiBjb250ZW50cy4gIERvbid0IHJlYWQgc3ltYm9scy4KCSogZWxmMzItaHBwYS5jIChnZXRfbG9jYWxfc3ltcyk6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4KCShlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBEb24ndCBmcmVlIGxvY2FsIHN5bXMuCgkqIGVsZjMyLW02OGsuYyAoYmZkX202OGtfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IERlbGF5CglyZWFkaW5nIG9mIGxvY2FsIHN5bXMuICBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuICBQcm9wZXJseSBmcmVlCglwb3NzaWJseSBjYWNoZWQgaW5mby4KCSogZWxmMzItbWlwcy5jIChiZmRfbWlwc19lbGYzMl9jcmVhdGVfZW1iZWRkZWRfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9jaGVja19yZWxvY3MpOiBVc2UgYmZkX2VsZl9nZXRfZWxmX3N5bXMuCgkqIGVsZjY0LXBwYy5jIChzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IERlbGV0ZSBiZmRfY291bnQgYW5kCglhbGxfbG9jYWxfc3ltcy4KCShnZXRfbG9jYWxfc3ltcyk6IERlbGV0ZSBmdW5jdGlvbi4KCShlZGl0X29wZCk6IFVzZSBiZmRfZWxmX2dldF9lbGZfc3ltcy4gIEZyZWUgb24gZXJyb3IgZXhpdC4gIENhY2hlCglvbiBleGl0LgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogVXNlIGJmZF9lbGZfZ2V0X2VsZl9zeW1zLiAgRnJlZS9jYWNoZSBvbiBleGl0LgoKMjAwMi0wNy0wNSAgSmltIFdpbHNvbiAgPHdpbHNvbkByZWRoYXQuY29tPgoKCSogc3ltcy5jIChkZWNvZGVfc2VjdGlvbl90eXBlKTogTmV3LgoJKGJmZF9kZWNvZGVfc3ltY2xhc3MpOiBDYWxsIGRlY29kZV9zZWN0aW9uX3R5cGUuCgoyMDAyLTA3LTA0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIG1lcmdlLmMgKF9iZmRfbWVyZ2VkX3NlY3Rpb25fb2Zmc2V0KTogQXZvaWQgYWNjZXNzaW5nIGJ5dGUgYmVmb3JlCglzZWN0aW9uIGNvbnRlbnQgc3RhcnQuCglSZXBvcnRlZCBieSBNaWNoYWVsIFNjaHVtYWNoZXIgPG1pa2VAaGlnaHRlYy1ydC5jb20+LgoKMjAwMi0wNy0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHNlY3Rpb24uYyAoX2JmZF9zdHJpcF9zZWN0aW9uX2Zyb21fb3V0cHV0KTogUmVtb3ZlIHVubmVjZXNzYXJ5CglsaW5rIG9yZGVyIGNvZGUuICBEb24ndCBhY3R1YWxseSByZW1vdmUgdGhlIG91dHB1dCBzZWN0aW9uIGhlcmU7CglKdXN0IHNldCBhIGZsYWcgZm9yIHRoZSBsaW5rZXIgdG8gZG8gc28uCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbGlua19yZW51bWJlcl9keW5zeW1zKTogVGVzdCBmb3IgcmVtb3ZlZAoJc2VjdGlvbnMgd2hlbiBzZXR0aW5nIHVwIG91dHB1dCBzZWN0aW9uIGR5bnN5bXMuCgoyMDAyLTA3LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBSZXZlcnQgMTk5OS0wOS0wMiBocHV4CglmdWRnZS4KCSogZWxmLmMgKGJmZF9zZWN0aW9uX2Zyb21fc2hkcik6IFdvcmsgYXJvdW5kIGJyb2tlbiBocHV4IHNoYXJlZAoJbGlicyBoZXJlIGluc3RlYWQuCgoyMDAyLTA3LTAyICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogZWxmNjQtczM5MC5jIChjcmVhdGVfZ290X3NlY3Rpb24pOiBTZXQgLmdvdCBzZWN0aW9uIGFsaWdubWVudCB0bwoJOCBieXRlcy4KCShlbGZfczM5MF9jaGVja19yZWxvY3MpOiBTZXQgLnJlbGEuZHluIHNlY3Rpb24gYWxpZ25tZW50IHRvIDggYnl0ZXMuCgoyMDAyLTA3LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKF9iZmRfZWxmX3JlbG9jX3R5cGVfY2xhc3MpOiBGaXggY29tbWVudCBncmFtbWFyLgoKMjAwMi0wNy0wMSAgTWF0dCBUaG9tYXMgIDxtYXR0QDNhbS1zb2Z0d2FyZS5jb20+CgoJKiBlbGYzMi12YXguYyAoZWxmMzJfdmF4X3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBDaGFuZ2UgRUZfKgoJdG8gRUZfVkFYXyouCgoyMDAyLTA3LTAxICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmeHgtbWlwcy5jIChBQklfNjRfUCk6IEZpeCBjb21tZW50LgoJKE1JUFNfRUxGX09QVElPTlNfU0VDVElPTl9OQU1FLE1JUFNfRUxGX1NUVUJfU0VDVElPTl9OQU1FKTogVXNlIHRoZQoJbmV3IHNlY3Rpb24gbmFtZXMgZm9yIE42NCBBQkkuCgkobWlwc19lbGZfb3V0cHV0X2V4dHN5bSk6IE5vIHNwZWNpYWwgX2dwX2Rpc3AgaGFuZGxpbmcgZm9yIE5ld0FCSS4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IENvZGUgZm9ybWF0dGluZy4KCShtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZl9mYWtlX3NlY3Rpb25zKTogSVJJWDYgbmVlZHMgdGhpcyBoYWNrLCB0b28uCgkoX2JmZF9taXBzX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBIYW5kbGUgR09UX1BBR0UgZm9yIGFueSBOZXdBQkkuCgkoX2JmZF9taXBzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTm8gc3BlY2lhbCBoYW5kbGluZyBmb3IgUl9NSVBTXzY0CglpbiBhbnkgTmV3QUJJLgoJKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogTm8gc3BlY2lhbCBfZ3BfZGlzcCBoYW5kbGluZwoJZm9yIE5ld0FCSS4KCShfYmZkX21pcHNfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IEhhbmRsZSBhbnkgTjY0IEFCSS4KCShfYmZkX21pcHNfZWxmX2djX3N3ZWVwX2hvb2spOiBOZXdBQkkgR09UIHJlbG9jcyBzaG91bGQgYmUgaGFuZGxlZAoJaGVyZSwgdG9vLgoKMjAwMi0wNy0wMSAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IE9ubHkgY29udmVydAoJUl9YODZfNjRfNjQgdG8gUl9YODZfNjRfUkVMQVRJVkUuCgoyMDAyLTA3LTAxICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogdmF4YnNkLmM6IE5ldyBCRkQgYmFja2VuZCBmb3IgVkFYIEJTRCBhbmQgVWx0cml4LgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMsIEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBuZXcgYmFja2VuZC4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBjb25maWcuYmZkICh2YXgtKi1ic2QqIHwgdmF4LSotdWx0cml4Kik6IFVzZSB2YXhic2RfdmVjIGluc3RlYWQgb2YKCWhvc3RfYW91dF92ZWMuCgkqIGNvbmZpZ3VyZS5pbiAodmF4YnNkX3ZlYyk6IEFkZC4KCSogdGFyZ2V0cy5jICh2YXhic2RfdmVjKTogQWRkLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCSogY29uZmlndXJlOiBSZWJ1aWxkLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlYnVpbGQuCgoyMDAyLTA3LTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfZ2NfbWFyayk6IFBhc3MgaW4gdGhlIHNlY3Rpb24gd2hvc2UgcmVsb2NzIHdlIGFyZQoJZXhhbWluaW5nIHRvIGdjX21hcmtfaG9vaywgcmF0aGVyIHRoYW4gdGhlIGJmZC4KCShlbGZfZ2Nfc2VjdGlvbnMpOiBBZGp1c3QuCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEgPGdjX21hcmtfaG9vaz4pOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItYXZyLmMgKGVsZjMyX2F2cl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItZDEwdi5jIChlbGYzMl9kMTB2X2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1mcjMwLmMgKGZyMzBfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmMgKG1jb3JlX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItb3BlbnJpc2MuYyAob3BlbnJpc2NfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItdmF4LmMgKGVsZl92YXhfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItZnJ2LmMgKGVsZjMyX2Zydl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4gIEFsc28gcmVtb3ZlCglyZWR1bmRhbnQgbG9jYWwgc3ltIHRlc3RzLgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IHBwY19saW5rX2hhc2hfZW50cnkpOiBBZGQgaXNfZW50cnkuCgkobGlua19oYXNoX25ld2Z1bmMpOiBJbml0IGlzX2VudHJ5LgoJKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IENvcHkgaXNfZW50cnkuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0IGFsbF9sb2NhbF9zeW1zLgoJKGNyZWF0ZV9saW5rYWdlX3NlY3Rpb25zKTogVXNlIGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5IHJhdGhlciB0aGFuCgliZmRfbWFrZV9zZWN0aW9uLgoJKHBwYzY0X2VsZl9tYXJrX2VudHJ5X3N5bXMpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IERvbid0IGJvdGhlciB0ZXN0aW5nIGVsZl9iYWRfc3ltdGFiLiAgU2V0Cgl1cCBvcGQgZW50cnkgdG8gZnVuY3Rpb24gc2VjdGlvbiBtYXAuCgkocHBjNjRfZWxmX2djX21hcmtfaG9vayk6IFNwZWNpYWwgY2FzZSBvcGQgc2VjdGlvbiByZWxvY3MsIGFuZAoJcmVsb2NzIHRoYXQgcmVmZXJlbmNlIHRoZSBvcGQgc2VjdGlvbi4KCShlZGl0X29wZCk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ2FsbCBnZXRfbG9jYWxfc3ltcyBhbmQgZWRpdF9vcGQuCgkocHBjNjRfZWxmX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBEb24ndCBjYWxjdWxhdGUgaHRhYi0+YmZkX2NvdW50IGhlcmUuCgkoZ2V0X2xvY2FsX3N5bXMpOiBEbyBzbyBoZXJlLiAgRXhpdCBpZiB3ZSBhbHJlYWR5IGhhdmUgbG9jYWwgc3ltcy4KCVJlbW92ZSBib2d1cyBjb21tZW50IGltcG9ydGVkIGZyb20gZWxmMzItaHBwYS5jLiAgRG9uJ3QgYXR0ZW1wdCB0bwoJcmVhZCBsb2NhbCBzeW1zIG9uIG5vbi1FTEYgaW5wdXQuCgkocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBDYWxsIF9iZmRfZWxmNjRfbGlua19yZWFkX3JlbG9jcyByYXRoZXIKCXRoYW4gZHVwbGljYXRpbmcgaXQncyBmdW5jdGlvbiBoZXJlLiAgQWRqdXN0IGZyZWUgb2YgaW50ZXJuYWwKCXJlbG9jcyB0byBzdWl0LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQWRqdXN0IGxvY2FsIHN5bXMgaW4gb3BkIHNlY3Rpb24uCgkqIGVsZjY0LXBwYy5oIChwcGM2NF9lbGZfbWFya19lbnRyeV9zeW1zKTogRGVjbGFyZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBDYWxsCglfYmZkX2VsZjMyX2xpbmtfcmVhZF9yZWxvY3MgcmF0aGVyIHRoYW4gZHVwbGljYXRpbmcgaXQncyBmdW5jdGlvbgoJaGVyZS4gIEFkanVzdCBmcmVlIG9mIGludGVybmFsIHJlbG9jcyB0byBzdWl0LgoKMjAwMi0wNy0wMSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9jaGVja19yZWxvY3MpOiBDZXJ0YWluIHJlbG9jYXRpb25zCglhcmUgbm90IGFsbG93ZWQgaW4gc2hhcmVkIGxpYnMgY29kZSwgZW5mb3JjZSAtZlBJQy4KCjIwMDItMDYtMjkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIG1tby5jIChtbW9fd3JpdGVfbG9jX2NodW5rKTogRG9uJ3QgZWxpbWluYXRlIGxlYWRpbmcgYW5kCgl0cmFpbGluZyB6ZXJvLXNlcXVlbmNlcyB3aGVuIHRoZXJlJ3MgcHJldmlvdXMgbGVmdC1vdmVyIGRhdGEuCgoyMDAyLTA2LTI3ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX3JlbG9jX3R5cGVfY2xhc3MpOiBOZXcgZnVuY3Rpb24uCgkoZWxmNjRfaHBwYV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IENoZWNrIG90aGVyX3JlbF9zZWMsIGRsdF9yZWxfc2VjCglhbmQgb3BkX3JlbF9zZWMgaW4gb3JkZXIgZm9yIHN0YXJ0aW5nIHJlbGEgc2VjdGlvbi4gIENoZWNrIF9yYXdfc2l6ZS4KCShlbGZfYmFja2VuZF9yZWxvY190eXBlX2NsYXNzKTogRGVmaW5lLgoKMjAwMi0wNi0yNyAgS2V2aW4gQnVldHRuZXIgPGtldmluYkByZWRoYXQuY29tPgoKCSogZHdhcmYyLmMgKGRlY29kZV9saW5lX2luZm8pOiBIYW5kbGUgb2xkZXIsIG5vbi1zdGFuZGFyZCwgNjQtYml0CglEV0FSRjIgZm9ybWF0cy4KCjIwMDItMDYtMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjcHUtcG93ZXJwYy5jOiBDb21tZW50IG9uIG9yZGVyaW5nIG9mIGFyY2hfaW5mby4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfb2JqZWN0X3ApOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfb2JqZWN0X3ApOiBEZWZpbmUuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfb2JqZWN0X3ApOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfb2JqZWN0X3ApOiBEZWZpbmUuCgoyMDAyLTA2LTI2ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlndXJlLmluICh2YXgtKi1uZXRic2QqKTogU2V0IENPUkVGSUxFIHRvIG5ldGJzZC1jb3JlLmxvLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA2LTI1ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGR3YXJmMi5jIChkZWNvZGVfbGluZV9pbmZvKTogQ2hlY2sgdW5pdC0+YWRkcl9zaXplCgl0byByZWFkIGluIHRoZSBwcm9wZXIgbnVtYmVyIG9mIHByb2xvZ3VlIGJ5dGVzLgoKMjAwMi0wNi0yNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcuYmZkIChwb3dlcnBjLSotYWl4NSopOiBPbmx5IGNyZWF0ZSBhIHNlbHZlY3MgZm9yCglhaXg1Y29mZjY0X3ZlYyBpZiA2NC1iaXQgYmZkIHN1cHBvcnQgaGFzIGJlZW4gZW5hYmxlZC4KCShwb3dlcnBjNjQtKi1haXg1Kik6IE9ubHkgZGVmaW5lIGlmIDY0LWJpdCBiZmQgc3VwcG9ydCBoYXMKCWJlZW4gZW5hYmxlZC4KCgkqIHRhcmdldHMuYyAoX2JmZF90YXJnZXRfdmVjdG9yW10pOiBPbmx5IGluY2x1ZGUKCWFpeDVjb2ZmNjRfdmVjIGlmIDY0LWJpdCBiZmQgc3VwcG9ydCBoYXMgYmVlbiBlbmFibGVkLgoKMjAwMi0wNi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGNfYWRkX3N0dWIpOiBSZXBsYWNlIHN0cmNweS9zdHJuY3B5IHdpdGggbWVtY3B5LgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfYWRkX3N0dWIpOiBMaWtld2lzZS4KCSogZWxmbGluay5jIChfYmZkX2VsZl9saW5rX3JlY29yZF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmggKGVsZl9hZGRfZGVmYXVsdF9zeW1ib2wpOiBGaXggY29tbWVudCB0eXBvLgoJKGVsZl9hZGRfZGVmYXVsdF9zeW1ib2wpOiBSZXBsYWNlIHN0cmNweSBhbmQgc3RybmNweSB3aXRoIG1lbWNweS4KCShlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBMaWtld2lzZS4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBMaWtld2lzZS4KCSogaGFzaC5jIChiZmRfaGFzaF9sb29rdXApOiBMaWtld2lzZS4KCSogbGlua2VyLmMgKF9iZmRfZ2VuZXJpY19saW5rX2FkZF9vbmVfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHNlY3Rpb24uYyAoYmZkX2dldF91bmlxdWVfc2VjdGlvbl9uYW1lKTogTGlrZXdpc2UuCgkqIHN5bXMuYyAoX2JmZF9zdGFiX3NlY3Rpb25fZmluZF9uZWFyZXN0X2xpbmUpOiBMaWtld2lzZS4KCSogZWxmLmMgKF9iZmRfZWxmX21ha2Vfc2VjdGlvbl9mcm9tX3BoZHIpOiBMaWtld2lzZS4KCShhc3NpZ25fc2VjdGlvbl9udW1iZXJzKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZjb3JlX21ha2VfcHNldWRvc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZmNvcmVfZ3Jva19sd3BzdGF0dXMpOiBMaWtld2lzZS4KCShlbGZjb3JlX2dyb2tfd2luMzJwc3RhdHVzKTogTGlrZXdpc2UuCgkoZWxmY29yZV93cml0ZV9ub3RlKTogQ29uc3RpZnkgaW5wdXQgcGFyYW1zLiAgVXNlIFBUUiBpbnN0ZWFkIG9mCgl2b2lkICouICBJbmNsdWRlIHRlcm1pbmF0aW5nIE5VTCBpbiBuYW1lc3ouICBDb3JyZWN0IHBhZGRpbmcuCglTdXBwb3J0IE5VTEwgIm5hbWUiIHBhcmFtLiAgVXNlIG1lbWNweSBpbnN0ZWFkIG9mIHN0cmNweS4KCShlbGZjb3JlX3dyaXRlX3BycHNpbmZvKTogQ29uc3RpZnkgaW5wdXQgcGFyYW1zLgoJKGVsZmNvcmVfd3JpdGVfcHJzdGF0dXMpOiBMaWtld2lzZS4gIFVzZSBQVFIgaW5zdGVhZCBvZiB2b2lkICouCgkoZWxmY29yZV93cml0ZV9sd3BzdGF0dXMpOiBMaWtld2lzZS4KCShlbGZjb3JlX3dyaXRlX3BzdGF0dXMpOiBMaWtld2lzZS4KCShlbGZjb3JlX3dyaXRlX3ByZnByZWcpOiBMaWtld2lzZS4KCShlbGZjb3JlX3dyaXRlX3ByeGZwcmVnKTogTGlrZXdpc2UuCgkqIGVsZi1iZmQuaCAoZWxmY29yZV93cml0ZV9ub3RlKTogVXBkYXRlIGRlY2xhcmF0aW9uLgoJKGVsZmNvcmVfd3JpdGVfcHJwc2luZm8pOiBMaWtld2lzZS4KCShlbGZjb3JlX3dyaXRlX3Byc3RhdHVzKTogTGlrZXdpc2UuCgkoZWxmY29yZV93cml0ZV9wc3RhdHVzKTogTGlrZXdpc2UuCgkoZWxmY29yZV93cml0ZV9wcmZwcmVnKTogTGlrZXdpc2UuCgkoZWxmY29yZV93cml0ZV9wcnhmcHJlZyk6IExpa2V3aXNlLgoJKGVsZmNvcmVfd3JpdGVfbHdwc3RhdHVzKTogTGlrZXdpc2UuCgoyMDAyLTA2LTI1ICBKYXNvbiBFY2toYXJkdCAgPGpsZUByaWNlLmVkdT4KCgkqIGVjb2ZmLmMgKGVjb2ZmX3NldF9zeW1ib2xfaW5mbyk6IFNldCBCU0ZfRlVOQ1RJT04gZm9yCglzeW1ib2xzIG9mIHR5cGUgc3RQcm9jIGFuZCBzdFN0YXRpY1Byb2MuCgoyMDAyLTA2LTI1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWNvZmYuYzogVkFyaW91cyBmb3JtYXR0aW5nIGZpeGVzLgoKMjAwMi0wNi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2dlbmVyYXRlX3J0aW5pdCk6IEZpeCB0eXBvLgoKMjAwMi0wNi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFvdXQtYWRvYmUuYzogRG9uJ3QgY29tcGFyZSBhZ2FpbnN0ICJ0cnVlIiBvciAiZmFsc2UuCgkqIGFvdXQtdGFyZ2V0Lmg6IExpa2V3aXNlLgoJKiBhb3V0eC5oOiBMaWtld2lzZS4KCSogYXJjaGl2ZS5jOiBMaWtld2lzZS4KCSogYm91dC5jOiBMaWtld2lzZS4KCSogY2FjaGUuYzogTGlrZXdpc2UuCgkqIGNvZmYtYTI5ay5jOiBMaWtld2lzZS4KCSogY29mZi1hbHBoYS5jOiBMaWtld2lzZS4KCSogY29mZi1pMzg2LmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1pcHMuYzogTGlrZXdpc2UuCgkqIGNvZmYtb3IzMi5jOiBMaWtld2lzZS4KCSogY29mZjY0LXJzNjAwMC5jOiBMaWtld2lzZS4KCSogY29mZmNvZGUuaDogTGlrZXdpc2UuCgkqIGNvZmZnZW4uYzogTGlrZXdpc2UuCgkqIGNwdS1uczMyay5jOiBMaWtld2lzZS4KCSogZWNvZmYuYzogTGlrZXdpc2UuCgkqIGVjb2ZmbGluay5jOiBMaWtld2lzZS4KCSogZWxmLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uaDogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWQzMHYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmM6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmY29kZS5oOiBMaWtld2lzZS4KCSogZWxmY29yZS5oOiBMaWtld2lzZS4KCSogZWxmbGluay5oOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jOiBMaWtld2lzZS4KCSogaTM4Nm9zOWsuYzogTGlrZXdpc2UuCgkqIGllZWUuYzogTGlrZXdpc2UuCgkqIGxpYmJmZC5jOiBMaWtld2lzZS4KCSogbGlua2VyLmM6IExpa2V3aXNlLgoJKiBtbW8uYzogTGlrZXdpc2UuCgkqIG5sbTMyLWFscGhhLmM6IExpa2V3aXNlLgoJKiBubG0zMi1pMzg2LmM6IExpa2V3aXNlLgoJKiBubG0zMi1wcGMuYzogTGlrZXdpc2UuCgkqIG5sbTMyLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBubG1jb2RlLmg6IExpa2V3aXNlLgoJKiBvYXN5cy5jOiBMaWtld2lzZS4KCSogcGRwMTEuYzogTGlrZXdpc2UuCgkqIHBlaWNvZGUuaDogTGlrZXdpc2UuCgkqIHJlbG9jLmM6IExpa2V3aXNlLgoJKiBzb20uYzogTGlrZXdpc2UuCgkqIHNyZWMuYzogTGlrZXdpc2UuCgkqIHRla2hleC5jOiBMaWtld2lzZS4KCSogdm1zLmM6IExpa2V3aXNlLgoJKiB4Y29mZmxpbmsuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmM6IEVkaXQgY29tbWVudCB0byBub3QgdXNlICI9PSBmYWxzZSIuCgoJKiBhb3V0ZjEuaDogRG9uJ3QgdXNlICI/IHRydWUgOiBmYWxzZSIuCgkqIGVjb2ZmLmM6IExpa2V3aXNlLgoJKiBmb3JtYXQuYzogTGlrZXdpc2UuCgkqIGllZWUuYzogTGlrZXdpc2UuCgkqIGxpbmtlci5jOiBMaWtld2lzZS4KCSogbW1vLmM6IExpa2V3aXNlLgoJKiBvYXN5cy5jOiBMaWtld2lzZS4KCjIwMDItMDYtMjMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX2FyY2hpdmVfc3ltYm9scyk6IEZvciB0aGUgZGVmYXVsdAoJdmVyc2lvbiwgY2hlY2sgcmVmZXJlbmNlcyB3aXRoIG9ubHkgb25lIGBAJyBmaXJzdC4KCjIwMDItMDYtMjMgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfbWFya19taWxsaV9hbmRfZXhwb3J0ZWRfZnVuY3Rpb25zKTogTmV3CglmdW5jdGlvbi4KCShhbGxvY2F0ZV9nbG9iYWxfZGF0YV9kbHQpOiBEb24ndCBhZGQgbWlsbGljb2RlIHN5bWJvbHMgdG8gZHluYW1pYwoJc3ltYm9sIHRhYmxlLgoJKGFsbG9jYXRlX2dsb2JhbF9kYXRhX29wZCwgYWxsb2NhdGVfZHlucmVsX2VudHJpZXMpOiBMaWtld2lzZS4KCShlbGY2NF9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFJldmlzZSB0byB1c2UKCWVsZjY0X2hwcGFfbWFya19taWxsaV9hbmRfZXhwb3J0ZWRfZnVuY3Rpb25zLgoJKGVsZjY0X2hwcGFfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogUmVtb3ZlIGNvZGUgdG8ga2VlcCBtaWxsaWNvZGUKCXN5bWJvbHMgb3V0IG9mIGR5bmFtaWMgc3ltYm9sIHRhYmxlLgoKMjAwMi0wNi0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCgkqIGVsZmxpbmsuaDogQ29tbWVudCB0eXBvIGZpeGVzLgoKMjAwMi0wNi0yMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmLWJmZC5oIChlbGZfbGlua19sb2FkZWRfbGlzdCk6IE5ldyBzdHJ1Y3R1cmUuCgkoZWxmX2xpbmtfaGFzaF90YWJsZSk6IEFkZCAibG9hZGVkIi4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF90YWJsZV9pbml0KTogSW5pdGlhbGl6ZSAibG9hZGVkIi4KCSogZWxmbGluay5oIChlbGZfbGlua19jaGVja192ZXJzaW9uZWRfc3ltYm9sKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBDYWxsIGVsZl9saW5rX2NoZWNrX3ZlcnNpb25lZF9zeW1ib2wuCgoyMDAyLTA2LTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogSWYgdGhlIHRhcmdldCBkb2VzIG5vdAoJc3VwcG9ydCBhbiBFTEYgc3R5bGUgaGFzaCB0YWJsZSwgcmV0dXJuIHRydWUsIGluZGljYXRpbmcgdGhhdAoJbm90aGluZyBuZWVkZWQgdG8gYmUgZG9uZSwgcmF0aGVyIHRoYW4gZmFsc2UsIGluZGljYXRpbmcgdGhhdCB0aGUKCXNlY3Rpb24ncyBzaXplIGNvdWxkIG5vdCBiZSBjb21wdXRlZC4KCjIwMDItMDYtMTggIERhdmUgQnJvbGxleSAgPGJyb2xsZXlAcmVkaGF0LmNvbT4KCglGcm9tIENhdGhlcmluZSBNb29yZSwgTWljaGFlbCBNZWlzc25lciwgRGF2ZSBCcm9sbGV5OgoJKiBwby9TUkMtUE9URklMRVMuaW46IEFkZCBjcHUtZnJ2LmMgYW5kIGVsZjMyLWZydi5jCgkqIHRhcmdldHMuYzogU3VwcG9ydCBiZmRfZWxmMzJfZnJ2X3ZlYy4KCSogcmVsb2MuYzogQWRkIEZSViByZWxvY3MuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIGJmZC1lbGYzMi1mcnYtdmVjLgoJKiBjb25maWcuYmZkICh0YXJnX2NwdSk6IEFkZCBzdXBwb3J0IGZvciBmcnYtKi1lbGYuCgkqIGFyY2h1cmVzLmM6IEFkZCBmcnYgYXJjaCBhbmQgbWFjaGluZXMuCgkqIE1ha2VmaWxlLmFtIChBTExfTUFDSElORVMpOiBBZGQgY3B1LWZydi5sby4KCShBTExfTUFDSElORVNfQ0ZJTEVTKTogQWRkIGNwdS1mcnYuYy4KCShCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1mcnYubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLWZydi5jCgkoY3B1LWZydi5sbyk6IE5ldyB0YXJnZXQuCgkoZWxmMzItZnJ2LmxvKTogTmV3IHRhcmdldC4KCSogY3B1LWZydi5jOiBOZXcgZmlsZS4KCSogZWxmMzItZnJ2LmM6IE5ldyBmaWxlLgoKMjAwMi0wNi0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZjb2RlLmggKGVsZl9vYmplY3RfcCk6IFNhbml0eSBjaGVjayBlaF9zaG9mZiA9PSAwIGltcGxpZXMKCWVfc2hudW0gPT0gMC4KCU9ubHkgcmVhZCB0aGUgZmlyc3Qgc2VjdGlvbiBoZWFkZXIgaWYgZV9zaG9mZiBpcyBub24temVyby4KCURvbid0IGNvbnNpZGVyIGVfc2hzdHJuZHggaWYgdGhlcmUgYXJlIG5vIHNlY3Rpb25zLgoKMjAwMi0wNi0xNyAgVG9tIFJpeCA8dHJpeEByZWRoYXQuY29tPgoKCSogZWxmMzItZDEwdi5jIChlbGZfZDEwdl9ob3d0b190YWJsZSk6IENoYW5nZSBSX0QxMFZfMTBfUENSRUxfUiwKCVJfRDEwVl8xMF9QQ1JFTF9MIGFuZCBSX0QxMFZfMThfUENSRUwgdG8gdXNlCgljb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZC4KCjIwMDItMDYtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBvcG5jbHMuYyAoYmZkX29wZW5yKTogUmVtb3ZlIHJlZHVuZGFudCBiZmRfc2V0X2Vycm9yLgoJKGJmZF9mZG9wZW5yKTogTGlrZXdpc2UuCgkoYmZkX29wZW5zdHJlYW1yKTogTGlrZXdpc2UuCgkoYmZkX29wZW53KTogTGlrZXdpc2UuCgoJKiB0YXJnZXRzLmM6IFNvcnQgdGFyZ2V0IHZlY3MuCgkoX2JmZF90YXJnZXRfdmVjdG9yKTogQWRkIGFpeDVjb2ZmNjRfdmVjLCBiZmRfZWxmMzJfc2g2NF92ZWMsCgliZmRfZWxmMzJfc2g2NGxfdmVjLCBiZmRfZWxmMzJfc2g2NGxuYnNkX3ZlYywKCWJmZF9lbGYzMl9zaDY0bmJzZF92ZWMsIGJmZF9lbGY2NF9zaDY0X3ZlYywgYmZkX2VsZjY0X3NoNjRsX3ZlYywKCWJmZF9lbGY2NF9zaDY0bG5ic2RfdmVjLCBiZmRfZWxmNjRfc2g2NG5ic2RfdmVjLgoJKiBjb25maWd1cmUuaW46IFNvcnQgdGFyZ2V0IHZlY3MuICBBZGQgbTg4a21hY2gzX3ZlYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNi0xNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZWxmNjQtbW1peC5jIChicG9fcmVsb2NfcmVxdWVzdF9zb3J0X2ZuKTogVXNlIG1lbWJlcgoJYnBvX3JlbG9jX25vIHRvIGJyZWFrIHNvcnQgb3JkZXIgdGllcywgbm90IGFkZHJlc3Mgb2YgaXRlbXMuCgoyMDAyLTA2LTE2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfZmluYWxfbGluayk6IEZpeCBmb3JtYXR0aW5nIGluIGNvbW1lbnQuCglTa2lwIGV4Y2x1ZGVkIHNlY3Rpb25zIGluIGRldGVybWluZyBfX2dwIHZhbHVlLgoJKGVsZl9ocHBhX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBVc2UgdGhlIHN5bWJvbCdzIGFkZHJlc3MgaW4KCVJfUEFSSVNDX0ZQVFI2NCByZWxvY2F0aW9ucyB0aGF0IGRvbid0IG5lZWQgYW4gb3BkIGVudHJ5LgoJKiBlbGY2NC1ocHBhLmMgKGFsbG9jYXRlX2R5bnJlbF9lbnRyaWVzKTogU2ltcGxpZnkgY29kZS4KCShlbGY2NF9ocHBhX2ZpbmFsaXplX2R5bnJlbG9jKTogTGlrZXdpc2UuCgkoZWxmNjRfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBNb3ZlIGNvbW1lbnRzIGFuZCBmaXggdHlwby4KCShlbGY2NF9ocHBhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IEJyZWFrIHVwIGFzc2VydC4KCjIwMDItMDYtMTQgIFNlcmdleSBHcmlnb3JpZXYgIDxzZXJnZUBsZW9wb2xkLlBoeXNpay5VbmktQXVnc2J1cmcuREU+CgoJKiBwZWktaTM4Ni5jIChDT0ZGX1NFQ1RJT05fQUxJR05NRU5UX0VOVFJJRVMpOiBFbmFibGUgMTYgYnl0ZQoJYWxpZ25tZW50IGZvciAuYnNzLCAuZGF0YSBhbmQgLnRleHQgc2VjdGlvbnMgc28gdGhhdCBzc2UgYW5kIHNzZTIKCWNvZGUgd2lsbCB3b3JrLgoJKiBwZS1pMzg2LmMgKENPRkZfU0VDVElPTl9BTElHTk1FTlRfRU5UUklFUyk6IExpa2V3aXNlLgoKMjAwMi0wNjAxMyAgSiJvcm4gUmVubmVja2UgIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCWNvbmZpZy5iZmQ6IEFkZCBzdXBwb3J0IGZvciBzaFsxMjM0XWwqLSotZWxmKiB8IHNoM2VsKi0qLWVsZiosCglzaFsxMjM0XSotZWxmKi4KCjIwMDItMDYtMTIgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZmluYWxfbGluayk6IEltcHJvdmUgZXJyb3IgaGFuZGxpbmcgZm9yIG1pc3NpbmcKCWR5bmFtaWMgc2VjdGlvbnMuCgoJKiBlbGY2NC1ocHBhLmMgKGFsbG9jYXRlX2dsb2JhbF9kYXRhX29wZCk6IFdlIGRvbid0IG5lZWQgYW4gb3BkIGVudHJ5Cglmb3IgYSBzeW1ib2wgdGhhdCBoYXMgbm8gb3V0cHV0IHNlY3Rpb24uCgkoYWxsb2NhdGVfZHlucmVsX2VudHJpZXMpOiBDb3JyZWN0IGNvbW1lbnQuCgkoZWxmNjRfaHBwYV9maW5hbGl6ZV9keW5yZWxvYyk6IExpa2V3aXNlLiAgRG9uJ3QgY3JlYXRlIGFuIG9wZCBlbnRyeQoJdW5sZXNzIHdlIHdhbnQgb25lLgoJKGVsZjY0X2hwcGFfZmluYWxpemVfb3BkKTogUHJldmVudCBzZWdmYXVsdCBpZiBkeW5faCBpcyBOVUxMLgoJKGVsZjY0X2hwcGFfZmluYWxpemVfZGx0KTogTGlrZXdpc2UuICBQcmV2ZW50IHNlZ2ZhdWx0IGZvciBzeW1ib2xzCgl3aXRoIG5vIHNlY3Rpb24uICBSZW1vdmUgdW5uZWNlc3NhcnkgcGFyZW50aGVzZXMuCgoyMDAyLTA2LTExICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9jb21wdXRlX3NlY3Rpb25fZmlsZV9wb3NpdGlvbnMpOiBBZGQgZGF0YQoJc2VjdGlvbiB0byBBSVggbG9hZGVyIGFsaWdubWVudCBjaGVjay4KCgkqIGNvZmYtcnM2MDAwLmMgKF9iZmRfeGNvZmZfbWtvYmplY3QpOiBTZXQgZGVmYXVsdCB0ZXh0IHNlY3Rpb24KCWFsaWdubWVudCB0byA0IGJ5dGVzLgoJKF9iZmRfeGNvZmZfY29weV9wcml2YXRlX2JmZF9kYXRhKTogVXNlIHRleHQgYW5kIGRhdGEgYWxpZ25tZW50Cglwb3dlciBhY2Nlc3NvciBtYWNyby4KCShkb19zaGFyZWRfb2JqZWN0X3BhZGRpbmcpOiBSZW1vdmUgaW52YWxpZCBhc3NlcnRpb24uCgoyMDAyLTA2LTEwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBzZWN0aW9uLmMgKF9iZmRfc3RyaXBfc2VjdGlvbl9mcm9tX291dHB1dCk6IFNldCBTRUNfRVhDTFVERQoJZm9yIHJlbW92ZWQgb3V0cHV0IHNlY3Rpb25zLgoKMjAwMi0wNi0xMCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogbWVyZ2UuYyAobWVyZ2Vfc3RyaW5ncyk6IFVzZSBodGFiX2NyZWF0ZV9hbGxvYyB3aXRoIGNhbGxvYywgbm90CglodGFiX2FsbG9jLgoJKiBlbGYtc3RydGFiLmMgKF9iZmRfZWxmX3N0cnRhYl9maW5hbGl6ZSk6IExpa2V3aXNlLgoKMjAwMi0wNi0wOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGYuYyAoY29weV9wcml2YXRlX2JmZF9kYXRhKTogRG9uJ3QgY2FzdCB0byBiZmRfc2l6ZV90eXBlIHRvCgl3b3JrIGFyb3VuZCBhIGxvbmcgbG9uZyBidWcgaW4gZ2NjIDIuOTYgb24gbWlwcy4KCjIwMDItMDYtMDggIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgdmF4MWtuZXRic2QubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIHZheDFrbmV0YnNkLmMuCglSZWdlbmVyYXRlIGRlcGVuZGVuY3kgbGlzdHMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkICh2YXgtKi1uZXRic2RlbGYqLCB2YXgtKi1uZXRic2Rhb3V0Kik6IEFkZAoJdmF4MWtuZXRic2RfdmVjIHRvIHRhcmdfc2VsdmVjcy4KCSogY29uZmlndXJlLmluOiBBZGQgdmF4MWtuZXRic2RfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHRhcmdldHMuYyAoX2JmZF90YXJnZXRfdmVjdG9yKTogQWRkIHZheDFrbmV0YnNkX3ZlYy4KCSogdmF4MWtuZXRic2QuYzogTmV3IGZpbGUuCgkqIHZheG5ldGJzZC5jOiBVcGRhdGUgY29weXJpZ2h0IHllYXJzLgoJKFRBUkdFVF9QQUdFX1NJWkUpOiBTZXQgdG8gMHgxMDAwLgoJKERFRkFVTFRfTUlEKTogU2V0IHRvIE1fVkFYNEtfTkVUQlNELgoKMjAwMi0wNi0wOCAgTWF0dCBUaG9tYXMgIDxtYXR0QDNhbS1zb2Z0d2FyZS5jb20+CgoJKiBsaWJhb3V0LmggKGVudW0gbWFjaGluZV90eXBlKTogQWRkIE1fVkFYNEtfTkVUQlNELgoKMjAwMi0wNi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IE1ha2Ugc3RhdGljLgoKMjAwMi0wNi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBhcm1uZXRic2QuYzogUmVwbGFjZSBDT05TVCB3aXRoIGNvbnN0LgoJKiBjb3JlZmlsZS5jOiBMaWtld2lzZS4KCSogZWxmMzItZGx4LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmM6IExpa2V3aXNlLgoJKiBtbW8uYzogTGlrZXdpc2UuCgkqIG5zMzJrbmV0YnNkLmM6IExpa2V3aXNlLgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfYWRkX3N5bWJvbF9ob29rKTogQ2hlY2sgdGhlIGhhc2gKCXRhYmxlIGlzIGVsZjY0LXNwYXJjLgoKMjAwMi0wNi0wOCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogU2ltcGxpZnkgY29kZS4KCUZpeCBSRUxBIGFkZGVuZHMgdG8gZ2V0IG5vdCBzaGlmdGVkIGluIHRoZSByZXN1bHQuIERvbid0IGRvIHNwZWNpYWwKCWhhbmRsaW5nIG9mIFJfTUlQU182NCBmb3IgTmV3QUJJLgoKMjAwMi0wNi0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFvdXR4LmggKE5BTUUoYW91dCxzbHVycF9zeW1ib2xfdGFibGUpKTogVXNlIGJmZF96bWFsbG9jLgoJKE5BTUUoYW91dCxzbHVycF9yZWxvY190YWJsZSkpOiBMaWtld2lzZS4KCSogY29mZi1taXBzLmMgKG1pcHNfcmVsYXhfc2VjdGlvbik6IFVzZSBiZmRfemFsbG9jLgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl93cml0ZV9hcm1hcF9iaWcpOiBVc2UgYmZkX3ptYWxsb2MuCgkoeGNvZmZfd3JpdGVfYXJjaGl2ZV9jb250ZW50c19iaWcpOiBMaWtld2lzZS4KCSh4Y29mZl9nZW5lcmF0ZV9ydGluaXQpOiBMaWtld2lzZS4KCSh4Y29mZl9nZW5lcmF0ZV9ydGluaXQpOiBMaWtld2lzZSwgYW5kIGNoZWNrIGVycm9yIHJldHVybi4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X2dlbmVyYXRlX3J0aW5pdCk6IExpa2V3aXNlLgoJKiBjb2ZmZ2VuLmMgKGNvZmZfc2VjdGlvbl9zeW1ib2wpOiBVc2UgYmZkX3phbGxvYy4KCShjb2ZmX2dldF9ub3JtYWxpemVkX3N5bXRhYik6IExpa2V3aXNlLgoJKGNvZmZfbWFrZV9lbXB0eV9zeW1ib2wpOiBMaWtld2lzZS4KCShiZmRfY29mZl9zZXRfc3ltYm9sX2NsYXNzKTogTGlrZXdpc2UuCgkqIGNvZmZsaW5rLmMgKGNvZmZfbGlua19hZGRfc3ltYm9scyk6IExpa2V3aXNlLgoJKiBlY29mZi5jIChfYmZkX2Vjb2ZmX21ha2VfZW1wdHlfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVjb2ZmbGluay5jIChlY29mZl93cml0ZV9zaHVmZmxlKTogVXNlIGJmZF96bWFsbG9jLgoJKGJmZF9lY29mZl93cml0ZV9hY2N1bXVsYXRlZF9kZWJ1Zyk6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChnZXRfZ290X2VudHJ5KTogVXNlIGJmZF96YWxsb2MuCgkqIGkzODZsaW51eC5jIChiZmRfaTM4NmxpbnV4X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBpMzg2bHlueC5jIChOQU1FKGx5bngsc2x1cnBfcmVsb2NfdGFibGUpKTogVXNlIGJmZF96bWFsbG9jLgoJKiBpZWVlLmMgKGRvX3dpdGhfcmVsb2NzKTogVXNlIGJmZF96YWxsb2MuCgkqIG02OGtsaW51eC5jIChiZmRfbTY4a2xpbnV4X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBwZHAxMS5jIChOQU1FKGFvdXQsc2x1cnBfc3ltYm9sX3RhYmxlKSk6IFVzZSBiZmRfem1hbGxvYy4KCShOQU1FKGFvdXQsc2x1cnBfcmVsb2NfdGFibGUpKTogTGlrZXdpc2UuCgkoTkFNRShhb3V0LHNxdWlydF9vdXRfcmVsb2NzKSk6IERvbid0IG1lbXNldCB3aGVuIHphbGxvYydkLgoJKiByZWxvYzE2LmMgKGJmZF9jb2ZmX3JlbG9jMTZfcmVsYXhfc2VjdGlvbik6IFVzZSBiZmRfem1hbGxvYy4KCSogc29tLmMgKHNvbV9idWlsZF9hbmRfd3JpdGVfc3ltYm9sX3RhYmxlKTogTGlrZXdpc2UuCgkoc29tX3NsdXJwX3N0cmluZ190YWJsZSk6IExpa2V3aXNlLgoJKHNvbV9zbHVycF9zeW1ib2xfdGFibGUpOiBMaWtld2lzZS4KCShzb21fYmZkX2FyX3dyaXRlX3N5bWJvbF9zdHVmZik6IExpa2V3aXNlLgoJKiBzcGFyY2xpbnV4LmMgKGJmZF9zcGFyY2xpbnV4X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBiZmRfemFsbG9jLgoJKiBzdW5vcy5jIChiZmRfc3Vub3Nfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIHRla2hleC5jIChmaW5kX2NodW5rKTogTGlrZXdpc2UuICBHZXQgcmlkIG9mIHVudXNlZCAic25hbWUiLgoJKiB2bXMtZ3NkLmMgKF9iZmRfdm1zX3NsdXJwX2dzZCk6IFVzZSBiZmRfem1hbGxvYy4KCSogeGNvZmZsaW5rLmMgKHhjb2ZmX2xpbmtfYWRkX3N5bWJvbHMpOiBVc2UgYmZkX3phbGxvYy9iZmRfem1hbGxvYy4KCjIwMDItMDYtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBiZmRfZWxmX3NlY3Rpb25fZGF0YSA8Z3JvdXBfbmFtZT4pOiBSZXBsYWNlIHdpdGgKCSJncm91cCIgdW5pb24uCgkoZWxmX2dyb3VwX25hbWUpOiBVcGRhdGUuCgkoZWxmX2dyb3VwX2lkKTogRGVmaW5lLgoJKGJmZF9lbGZfc2V0X2dyb3VwX2NvbnRlbnRzKTogRGVjbGFyZS4KCSogZWxmLmMgKGVsZl9mYWtlX3NlY3Rpb25zKTogUXVhbGlmeSB1c2Ugb2YgZWxmX2dyb3VwX25hbWUuCgkoc2V0X2dyb3VwX2NvbnRlbnRzKTogUmVuYW1lIHRvIGJmZF9lbGZfc2V0X2dyb3VwX2NvbnRlbnRzLiAgUmVtb3ZlCglBVFRSSUJVVEVfVU5VU0VEIGZyb20gZmFpbGVkcHRyYXJnLiAgSWYgZWxmX2dyb3VwX2lkIGlzIHNldCwgdXNlCgl0aGF0IHN5bSBmb3IgdGhlIHNpZ25hdHVyZS4KCShfYmZkX2VsZl9jb21wdXRlX3NlY3Rpb25fZmlsZV9wb3NpdGlvbnMpOiBEb24ndCBjYWxsCglzZXRfZ3JvdXBfY29udGVudHMgZm9yICJsZCAtciIgY2FzZS4KCShzd2FwX291dF9zeW1zKTogVXNlIGJmZF96YWxsb2MuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX2FyY2hpdmVfc3ltYm9scyk6IExpa2V3aXNlLgoJKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogTGlrZXdpc2UuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogQ2FsbCBiZmRfZWxmX3NldF9ncm91cF9jb250ZW50cy4KCjIwMDItMDYtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBBbGxvdyB1bnJlc29sdmVkCglyZWxvY3MgaW4gb3BkIGZvciBub24tc2hhcmVkIHRvby4KCjIwMDItMDYtMDYgIEplZmZyZXkgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9yZWxheF9zZWN0aW9uKTogSWdub3JlIHVuaW50ZXJlc3RpbmcKCXJlbG9jYXRpb25zLgoKMjAwMi0wNi0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBtZXJnZS5jOiBJbmNsdWRlIGxpYmliZXJ0eS5oLgoJKiBlbGYtc3RydGFiLmM6IEluY2x1ZGUgbGliaWJlcnR5LmguCgoyMDAyLTA2LTA2ICBFbGlhcyBBdGhhbmFzb3BvdWxvcyAgPGVhdGhhbkBvdGVuZXQuZ3I+CgoJKiBwZVhYaWdlbi5jIChwZV9wcmludF9pZGF0YSk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgoyMDAyLTA2LTA2ICBEYXZpZCBIZWluZSA8ZGxoZWluZUB0ZW5zaWxpY2EuY29tPgoKCSogZWxmLmMgKGFzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3Jfc2VnbWVudHMpOiBSZW1vdmUgdW5hbGxvY2F0ZWQKCXNlY3Rpb25zIGZyb20gdGhlIHNlY3Rpb24gdG8gc2VnbWVudCBtYXBwaW5nIGZvciBQVF9MT0FEIHNlZ21lbnRzLgoJVXBkYXRlIGNvbW1lbnQgYWJvdXQgZW1wdHkgbG9hZGFibGUgc2VnbWVudHMuCgoyMDAyLTA2LTA2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBzdGFicy5jIChfYmZkX2xpbmtfc2VjdGlvbl9zdGFicyk6IENoZWNrIHRoYXQgdGhlIHN5bWJvbCBvZmZzZXQKCWlzIHdpdGhpbiB0aGUgLnN0YWJzdHIgc2VjdGlvbi4KCjIwMDItMDYtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfc2l6ZV9pbmZvIDxzd2FwX3N5bWJvbF9pbj4pOiBGdW5jdGlvbiBhcmdzCglhcmUgImNvbnN0IFBUUiIsIG5vdCAiY29uc3QgUFRSICoiLgoJKGJmZF9lbGYzMl9zd2FwX3N5bWJvbF9pbik6IExpa2V3aXNlLgoJKGJmZF9lbGY2NF9zd2FwX3N5bWJvbF9pbik6IExpa2V3aXNlLgoJKiBlbGZjb2RlLmggKGVsZl9zd2FwX3N5bWJvbF9pbik6IENoYW5nZSBpbnB1dCBhcmdzIHRvIGNvbnN0IFBUUi4KCShlbGZfc2x1cnBfc3ltYm9sX3RhYmxlKTogQWRqdXN0IGNhbGwgdG8gZWxmX3N3YXBfc3ltYm9sX2luLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lzX2RlZmluZWRfYXJjaGl2ZV9zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBMaWtld2lzZS4KCShlbGZfbGlua19yZWNvcmRfbG9jYWxfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfbGlua19pbnB1dF9iZmQpOiBMaWtld2lzZS4KCShlbGZfZ2NfbWFyayk6IExpa2V3aXNlLgoJKGVsZl9yZWxvY19zeW1ib2xfZGVsZXRlZF9wKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAyMDAuYyAobW4xMDIwMF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKG1uMTAyMDBfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKG1uMTAyMDBfZWxmX3N5bWJvbF9hZGRyZXNzX3ApOiBMaWtld2lzZS4KCShtbjEwMjAwX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKG1uMTAzMDBfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKG1uMTAzMDBfZWxmX3N5bWJvbF9hZGRyZXNzX3ApOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZjMyX2g4X3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKGVsZjMyX2g4X3N5bWJvbF9hZGRyZXNzX3ApOiBMaWtld2lzZS4KCShlbGYzMl9oOF9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChnZXRfbG9jYWxfc3ltcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGJmZF9tNjhrX2VsZjMyX2NyZWF0ZV9lbWJlZGRlZF9yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChiZmRfbWlwc19lbGYzMl9jcmVhdGVfZW1iZWRkZWRfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoc2hfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKHNoX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9lbGZfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChnZXRfbG9jYWxfc3ltcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsYXhfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wNi0wNSAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBjb25maWcuYmZkIChzaDY0bCotKi1lbGYqLCBzaGwqLSotZWxmKik6IE5ldyBjb25maWd1cmF0aW9ucy4KCjIwMDItMDYtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAoZ3JvdXBfc2lnbmF0dXJlKTogU3dhcCBpbiB0aGUgd2hvbGUgc3ltYm9sLCBhbmQgaGFuZGxlCglleHRyYWN0aW5nIHNlY3Rpb24gc3ltYm9sIG5hbWVzLgoJKHNldHVwX2dyb3VwKTogQWRkIGNvbW1lbnQuCgkoc2V0X2dyb3VwX2NvbnRlbnRzKTogV2hlbiBjYWxsZWQgZnJvbSBvYmpjb3B5IG9yIGxkLCBhcnJhbmdlIGZvcgoJc2VjdGlvbiBjb250ZW50cyB0byBiZSB3cml0dGVuLiAgV3JpdGUgZ3JvdXAgbWVtYmVyIG91dHB1dCBzZWN0aW9uCglpbmRpY2VzIHRvIGFsbG93IG9iamNvcHkgdG8gcmVvcmdhbml6ZSBzZWN0aW9ucy4KCShfYmZkX2VsZl9jb3B5X3ByaXZhdGVfc2VjdGlvbl9kYXRhKTogQ29weSBncm91cCBpbmZvLgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX3NpemVfaW5mbyk6IEFkZCBzd2FwX3N5bWJvbF9pbiBmaWVsZC4KCShiZmRfZWxmMzJfc3dhcF9zeW1ib2xfaW4pOiBVcGRhdGUgcHJvdG90eXBlLgoJKGJmZF9lbGY2NF9zd2FwX3N5bWJvbF9pbik6IExpa2V3aXNlLgoJKiBlbGZjb2RlLmggKGVsZl9zd2FwX3N5bWJvbF9pbik6IENoYW5nZSBpbnB1dCBhcmdzIHRvIGNvbnN0IFBUUiAqLgoJKGVsZl9zbHVycF9zeW1ib2xfdGFibGUpOiBBZGp1c3QgY2FsbCB0byBlbGZfc3dhcF9zeW1ib2xfaW4uCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaXNfZGVmaW5lZF9hcmNoaXZlX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IExpa2V3aXNlLgoJKGVsZl9saW5rX3JlY29yZF9sb2NhbF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKGVsZl9nY19tYXJrKTogTGlrZXdpc2UuCgkoZWxmX3JlbG9jX3N5bWJvbF9kZWxldGVkX3ApOiBMaWtld2lzZS4KCSogZWxmLW0xMDIwMC5jIChtbjEwMjAwX2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkobW4xMDIwMF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkobW4xMDIwMF9lbGZfc3ltYm9sX2FkZHJlc3NfcCk6IExpa2V3aXNlLgoJKG1uMTAyMDBfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYtbTEwMzAwLmMgKG1uMTAzMDBfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfc3ltYm9sX2FkZHJlc3NfcCk6IExpa2V3aXNlLgoJKG1uMTAzMDBfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfc3ltYm9sX2FkZHJlc3NfcCk6IExpa2V3aXNlLgoJKGVsZjMyX2g4X2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGdldF9sb2NhbF9zeW1zKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoYmZkX202OGtfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKGJmZF9taXBzX2VsZjMyX2NyZWF0ZV9lbWJlZGRlZF9yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShzaF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogTGlrZXdpc2UuCgkoc2hfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKGdldF9sb2NhbF9zeW1zKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZmNvZGUuaCAoTkFNRShfYmZkX2VsZixzaXplX2luZm8pKTogVXBkYXRlIGluaXRpYWxpc2VyLgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9lbGZfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgkqIGVsZjY0LWhwcGEuYyAoaHBwYTY0X2VsZl9zaXplX2luZm8pOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X3NpemVfaW5mbyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKHMzOTBfZWxmNjRfc2l6ZV9pbmZvKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3NpemVfaW5mbyk6IExpa2V3aXNlLgoKMjAwMi0wNi0wNSAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogZWxmMzItbWlwcy5jIChlbGYzMl9taXBzX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzKTogTW92ZSB0by4uLgoJZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzKTogLi4uIGhlcmUuCgllbGY2NC1taXBzLmMgKGVsZl9iYWNrZW5kX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzKTogVXNlCglfYmZkX21pcHNfZWxmX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzLgoJZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzKTogRGVjbGFyZS4KCjIwMDItMDYtMDUgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmeHgtbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IENhbGwKCV9iZmRfZWxmX3JlbF9sb2NhbF9zeW0gZm9yIFNUVF9TRUNUSU9OIHJlbG9jYXRpb25zIGFnYWluc3QKCXRoZSBTRUNfTUVSR0Ugc2VjdGlvbi4KCjIwMDItMDYtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmLWFscGhhLmM6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCSogY29mZi1taXBzLmM6IExpa2V3aXNlLgoJKiB4Y29mZi10YXJnZXQuaDogTGlrZXdpc2UuCgoJKiBiZmQtaW4uaDogUmVtb3ZlICJ0YWtlbiBmcm9tIHRoZSBzb3VyY2UiIGNvbW1lbnQuCgkqIGxpYmJmZC1pbi5oOiBMaWtld2lzZS4KCSogbGliY29mZi1pbi5oOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogbGliY29mZi5oOiBSZWdlbmVyYXRlLgoKCSogZWxmLmMgKGJmZF9lbGZfZGlzY2FyZF9ncm91cCk6IFJldHVybiB0cnVlLgoJKiBlbGYtYmZkLmggKGJmZF9lbGZfZGlzY2FyZF9ncm91cCk6IERlY2xhcmUuCgkqIGJmZC1pbi5oIChiZmRfZWxmX2Rpc2NhcmRfZ3JvdXApOiBEb24ndCBkZWNsYXJlIGhlcmUuCgkqIHNlY3Rpb24uYyAoYmZkX2Rpc2NhcmRfZ3JvdXApOiBSZW5hbWUgdG8gYmZkX2dlbmVyaWNfZGlzY2FyZF9ncm91cC4KCSogYmZkLmMgKGJmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiB0YXJnZXRzLmMgKHN0cnVjdCBiZmRfdGFyZ2V0KTogQWRkIF9iZmRfZGlzY2FyZF9ncm91cC4KCShCRkRfSlVNUF9UQUJMRV9MSU5LKTogSGVyZSB0b28uCgkqIGxpYmJmZC1pbi5oIChfYmZkX25vbGlua19iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogYW91dC1hZG9iZS5jIChhb3V0XzMyX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBhb3V0LXRhcmdldC5oIChNWV9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogYW91dC10aWMzMC5jIChNWV9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogYmluYXJ5LmMgKGJpbmFyeV9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogYm91dC5jIChiX291dF9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogY29mZi1hbHBoYS5jIChfYmZkX2Vjb2ZmX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBjb2ZmY29kZS5oIChjb2ZmX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBjb2ZmLW1pcHMuYyAoX2JmZF9lY29mZl9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogZWxmeHgtdGFyZ2V0LmggKGJmZF9lbGZOTl9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogaTM4Nm1zZG9zLmMgKG1zZG9zX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBpMzg2b3M5ay5jIChvczlrX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBpZWVlLmMgKGllZWVfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIGloZXguYyAoaWhleF9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogbW1vLmMgKG1tb19iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogbmxtLXRhcmdldC5oIChubG1fYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIG9hc3lzLmMgKG9hc3lzX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBwcGNib290LmMgKHBwY2Jvb3RfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIHNvbS5jIChzb21fYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIHNyZWMuYyAoc3JlY19iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogdGVraGV4LmMgKHRla2hleF9iZmRfZGlzY2FyZF9ncm91cCk6IERlZmluZS4KCSogdmVyc2Fkb3MuYyAodmVyc2Fkb3NfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIHZtcy5jICh2bXNfYmZkX2Rpc2NhcmRfZ3JvdXApOiBEZWZpbmUuCgkqIHhjb2ZmLXRhcmdldC5oIChfYmZkX3hjb2ZmX2JmZF9kaXNjYXJkX2dyb3VwKTogRGVmaW5lLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHJzNjAwMGNvZmY2NF92ZWMpOiBVcGRhdGUgaW5pdGlhbGlzZXIuCgkoYWl4NWNvZmY2NF92ZWMpOiBMaWtld2lzZS4KCSogY29mZi1yczYwMDAuYyAocnM2MDAwY29mZl92ZWMsIHBtYWNfeGNvZmZfdmVjKTogTGlrZXdpc2UuCgoyMDAyLTA2LTA0ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLXNoNjQtY29tLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGYzMi1zaDY0LWNvbS5jLgoJKGVsZjMyLXNoNjQtY29tLmxvKTogTmV3IGRlcGVuZGVuY3kgbGlzdC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VsZjMyX3NoNjRfdmVjLCBiZmRfZWxmMzJfc2g2NGxfdmVjKQoJKGJmZF9lbGYzMl9zaDY0bmJzZF92ZWMsIGJmZF9lbGYzMl9zaDY0bG5ic2RfdmVjKTogQWRkCgllbGYzMi1zaDY0LWNvbS5sby4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfYWRkcmVzc19pbl9jcmFuZ2VzKQoJKHNoNjRfZ2V0X2NvbnRlbnRzX3R5cGUsIHNoNjRfYWRkcmVzc19pc19zaG1lZGlhKTogTW92ZSB0by4uLgoJKGNyYW5nZV9xc29ydF9jbXBiLCBjcmFuZ2VfcXNvcnRfY21wbCwgY3JhbmdlX2JzZWFyY2hfY21wYik6CgkoY3JhbmdlX2JzZWFyY2hfY21wbCk6IFByZXBlbmQgX2JmZF9zaDY0XyB0byBuYW1lIGFuZCBtb3ZlIHRvLi4uCgkqIGVsZjMyLXNoNjQtY29tLmM6IC4uLmhlcmUuICBOZXcgZmlsZS4KCjIwMDItMDYtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1vcGVucmlzYy5jIChvcGVucmlzY19lbGZfZ2NfbWFya19ob29rKTogUmVtb3ZlCglBVFRSSUJVVEVfVU5VU0VEIG9uIHVzZWQgcGFyYW1zLgoJKiBlbGYzMi12YXguYyAoZWxmX3ZheF9nY19tYXJrX2hvb2spOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2hlY2tzCgliZWZvcmUgY2FsbGluZyBiZmRfc2VjdGlvbl9mcm9tX2VsZl9pbmRleCBvbiBsb2NhbCBzeW1zLgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoKMjAwMi0wNi0wNCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1zaDY0LW5ic2QubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLXNoNjQtbmJzZC5jLgoJKEJGRDY0X0JBQ0tFTkRTKTogQWRkIGVsZjY0LXNoNjQtbmJzZC5sby4KCShCRkQ2NF9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmNjQtc2g2NC1uYnNkLmMuCgkoZWxmMzItc2g2NC1uYnNkLmxvLCBlbGY2NC1zaDY0LW5ic2QubG8pOiBOZXcgcnVsZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkIChzaDVsZS0qLW5ldGJzZCosIHNoNS0qLW5ldGJzZCosIHNoNjRsZS0qLW5ldGJzZCopCgkoc2g2NC0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0cy4KCSogY29uZmlndXJlLmluOiBBZGQgYmZkX2VsZjMyX3NoNjRuYnNkX3ZlYywgYmZkX2VsZjMyX3NoNjRsbmJzZF92ZWMsCgliZmRfZWxmNjRfc2g2NG5ic2RfdmVjLCBhbmQgYmZkX2VsZjY0X3NoNjRsbmJzZF92ZWMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZWxmMzItc2g2NC1uYnNkLmM6IE5ldyBmaWxlLgoJKiBlbGY2NC1zaDY0LW5ic2QuYzogTmV3IGZpbGUuCgkqIHRhcmdldHMuYzogQWRkIGV4dGVybiBkZWNscyBmb3IgYmZkX2VsZjMyX3NoNjRuYnNkX3ZlYywKCWJmZF9lbGYzMl9zaDY0bG5ic2RfdmVjLCBiZmRfZWxmNjRfc2g2NG5ic2RfdmVjLCBhbmQKCWJmZF9lbGY2NF9zaDY0bG5ic2RfdmVjLgoKMjAwMi0wNi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChzZXR1cF9ncm91cCk6IFNldCBTRUNfTElOS19PTkNFIG9uIEdSUF9DT01EQVQgZ3JvdXBzLgoJKGJmZF9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLiAgU2V0IHNlY3Rpb24gbmFtZSBvZiBncm91cAoJc2VjdGlvbnMgZnJvbSBzaWduYXR1cmUuCgkoZ3JvdXBfc2lnbmF0dXJlKTogU3BsaXQgb3V0IGZyb20gc2V0dXBfZ3JvdXAuICBFbnN1cmUgc3ltYm9sIHRhYmxlCglpcyBhdmFpbGFibGUuCgkoYmZkX2VsZl9kaXNjYXJkX2dyb3VwKTogTmV3IGZ1bmN0aW9uLgoJKF9iZmRfZWxmX21ha2Vfc2VjdGlvbl9mcm9tX3NoZHIpOiBEb24ndCBzZXQgU0VDX0xJTktfT05DRSBvbgoJLmdudS5saW5rb25jZSogc2VjdGlvbnMgaWYgdGhleSBhcmUgbWVtYmVycyBvZiBhIGdyb3VwLgoJKHNldF9ncm91cF9jb250ZW50cyk6IFNldCBHUlBfQ09NREFUIGZsYWcuCgkqIHNlY3Rpb24uYyAoYmZkX2Rpc2NhcmRfZ3JvdXApOiBOZXcgZnVuY3Rpb24uCgkqIGJmZC1pbi5oIChiZmRfZWxmX2Rpc2NhcmRfZ3JvdXApOiBEZWNsYXJlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGVsZi1iZmQuaCAoc3RydWN0IGJmZF9lbGZfc2VjdGlvbl9kYXRhKTogQWRkIGxpbmtvbmNlX3AgZmllbGQuCgkoZWxmX2xpbmtvbmNlX3ApOiBEZWZpbmUuCgoyMDAyLTA2LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKGJmZF9zZWN0aW9uX2Zyb21fc2hkcik6IE1ha2UgIm5hbWUiIGNvbnN0LgoJKiBlbGYtYmZkLmggKGVsZl9iYWNrZW5kX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jIChzaDY0X2JhY2tlbmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuaCAoX2JmZF9taXBzX2VsZl9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoKMjAwMi0wNi0wMyAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogZWxmeHgtbWlwcy5jIChBQklfNjRfUCk6IFVzZSBiYWNrZW5kJ3MgZGF0YSB0byBkZXRlcm1pbmUgdGhlCglBQkkuCgoyMDAyLTA2LTAyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZWxmMzItYXJjLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBlbGYzMi1hcm0uaDogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWRseC5jOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM4NnFueC5jOiBMaWtld2lzZS4KCSogZWxmMzItb3IzMi5jOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2g2NC5jOiBMaWtld2lzZS4KCSogZWxmMzItdmF4LmM6IExpa2V3aXNlLgoJKiBlbGYzMi14c3Rvcm15MTYuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1tbWl4LmM6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jOiBMaWtld2lzZS4KCjIwMDItMDYtMDIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgZGVyZWZlcmVuY2UKCW51bGwgd2hlbiB0aGVyZSBhcmUgbm8gZ290IGVudHJpZXMgZm9yIGEgc3ltYm9sLgoJKGVsZjY0X2FscGhhX3JlbGF4X2ZpbmRfdGxzX3NlZ21lbnQpOiBSZWFycmFuZ2UgdG8gYXZvaWQKCXVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZy4KCjIwMDItMDYtMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxheF93aXRoX2xpdHVzZSk6IERvbid0IHRlc3QgZm9yCgl1bmRlZmluZWQgc3ltYm9scyBoZXJlLgoJKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBEbyBpdCBoZXJlLiAgQWxzbyB0ZXN0IGZvciBub3QKCWRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbW9kdWxlLgoJKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb25fcik6IFNwbGl0IG91dCBvZiAuLi4KCShlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogLi4uIGhlcmUuICBEb24ndCBkZXJlZmVyZW5jZQoJTlVMTCB3aGVuIGxvb2tpbmcgdXAgbG9jYWwgZ290IGVudHJpZXMuCgoyMDAyLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfd2l0aF9saXR1c2UpOiBSZWplY3QgdW5kZWZpbmVkCglzeW1ib2xzIGZyb20gSlNSIHJlbGF4YXRpb24uCgkoZWxmNjRfYWxwaGFfc2l6ZV9wbHRfc2VjdGlvbl8xKTogTmV3LgoJKGVsZjY0X2FscGhhX2NhbGNfZHlucmVsX3NpemVzKTogU3BsaXQgb3V0IC5yZWxhLmdvdCBiaXRzIC4uLgoJKGVsZjY0X2FscGhhX3NpemVfcmVsYV9nb3RfMSk6IC4uLiBoZXJlLgoJKGVsZjY0X2FscGhhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNwbGl0IG91dCAucmVsYS5nb3QgYml0cyAuLi4KCShlbGY2NF9hbHBoYV9zaXplX3JlbGFfZ290X3NlY3Rpb24pOiAuLi4gaGVyZS4KCShlbGY2NF9hbHBoYV9zaXplX3BsdF9zZWN0aW9uKTogTmV3LgoJKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBDYWxsIHRoZW0uCgkoZWxmNjRfYWxwaGFfc2l6ZV9nb3Rfc2VjdGlvbnMpOiBSZW1vdmUgb3V0cHV0X2JmZCBhcmcuCgkoZWxmNjRfYWxwaGFfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQ2hlY2sgZ290ZW50IHVzZV9jb3VudC4KCjIwMDItMDYtMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9nZXRfZHRwcmVsX2Jhc2UsIGFscGhhX2dldF90cHJlbF9iYXNlKTogTmV3LgoJKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgdGhlbS4gIFJlamVjdCBMRSBUTFMgcmVsb2NzCglpbiBzaGFyZWQgbGlicmFyaWVzLiAgRml4IERUUFJFTEhJIGFuZCBUUFJFTEhJIHZhbHVlLgoJKElOU05fQUREUSwgSU5TTl9SRFVOSVEpOiBOZXcuCgkoc3RydWN0IGFscGhhX3JlbGF4X2luZm8pOiBBZGQgc3ltdGFiX2hkciwgdGxzX3NlZ21lbnQsIGZpcnN0X2dvdGVudC4KCShlbGY2NF9hbHBoYV9yZWxheF93aXRoX2xpdHVzZSk6IFJldHVybiBib29sZWFuLiAgUmVtb3ZlIGlyZWxlbmQKCWFyZ3VtZW50LiAgUmVqZWN0IGR5bmFtaWMgc3ltYm9scy4gIFVzZSBMSVRVU0Ugc3ltYm9saWMgY29uc3RhbnRzLgoJKGVsZjY0X2FscGhhX3JlbGF4X2dvdF9sb2FkKTogUmVuYW1lIGZyb20gcmVsYXhfd2l0aG91dF9saXR1c2UuCglIYW5kbGUgR09URFRQUkVMIGFuZCBHT1RUUFJFTCByZWxvY2F0aW9ucy4KCShlbGY2NF9hbHBoYV9yZWxheF9ncHJlbGhpbG8pOiBOZXcuCgkoZWxmNjRfYWxwaGFfcmVsYXhfdGxzX2dldF9hZGRyKTogTmV3LgoJKGVsZjY0X2FscGhhX3JlbGF4X2ZpbmRfdGxzX3NlZ21lbnQpOiBOZXcuCgkoZWxmNjRfYWxwaGFfcmVsYXhfc2VjdGlvbik6IEhhbmRsZSBUTFMgcmVsb2NhdGlvbnMuCgkoQUxQSEFfRUxGX0xJTktfSEFTSF9UTFNfSUUpOiBOZXcuCgkoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogU2V0IGl0LgoKMjAwMi0wNi0wMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBEb24ndCBzdG9yZSBjb21wdXRlZCBncC4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IEZpeCB0eXBvIG9uIG1heWJlX2R5bmFtaWMKCWNoZWNrOyBkb24ndCBzdXBwcmVzcyBkeW5hbWljIHJlbG9jcyBmb3Igbm9uLWFsbG9jYXRlZCBzZWN0aW9ucy4KCgkqIGVsZjY0LWFscGhhLmM6IFJlbW92ZSBkZWFkIGNvZGUuCgoyMDAyLTA1LTMxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBhbGxvY2F0ZQoJc3BhY2UgZm9yIGJzcyAucGx0LgoKMjAwMi0wNS0zMSAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1pMzg2cW54LmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGYzMi1pMzg2cW54LmMuCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5iZmQ6IEFkZCBpWzM0NTZdODYtKi1udG8tcW54KiBzdXBwb3J0LgoJKiBjb25maWd1cmUuaW46IEFkZCBiZmRfZWxmMzJfaTM4NnFueF92ZWMgc3VwcG9ydC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogQWRkIHNldF9ub25sb2FkYWJsZV9maWxlcG9zLAoJaXNfY29udGFpbmVkX2J5X2ZpbGVwb3MsIGFuZCBjb3B5X3ByaXZhdGVfYmZkX2RhdGFfcC4KCSogZWxmLmMgKGFzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3Jfc2VnbWVudHMpOiBDYWxsIGJhY2tlbmQKCXNldF9ub25sb2FkYWJsZV9maWxlcG9zLiAgRml4IG5vbi1LJlIgY2FsbCB0byBfYmZkX2Vycm9yX2hhbmRsZXIuCgkoSVNfQ09OVEFJTkVEX0JZX0ZJTEVQT1MpOiBEZWZpbmUuCgkoSU5DTFVERV9TRUNUSU9OX0lOX1NFR01FTlQpOiBBbHNvIHRlc3QgSVNfQ09OVEFJTkVEX0JZX0ZJTEVQT1MuCgkoY29weV9wcml2YXRlX2JmZF9kYXRhKTogVXNlIElTX0NPTlRBSU5FRF9CWV9GSUxFUE9TLiAgVHlwbyBmaXguCglGaXggbm9uLUsmUiBjYWxsIHRvIF9iZmRfZXJyb3JfaGFuZGxlci4KCShfYmZkX2VsZl9jb3B5X3ByaXZhdGVfc2VjdGlvbl9kYXRhKTogVXNlIGJhY2tlbmQKCWNvcHlfcHJpdmF0ZV9iZmRfZGF0YV9wLgoJKiBlbGYzMi1pMzg2LmM6IERvbid0IGluY2x1ZGUgZWxmeHgtdGFyZ2V0Lmggd2hlbgoJRUxGMzJfSTM4Nl9DX0lOQ0xVREVEIGlzIGRlZmluZWQuCgkqIGVsZjMyLWkzODZxbnguYzogTmV3IFFOWCBlbGYgYmFja2VuZCBmaWxlLgoJKiBlbGZ4eC10YXJnZXQuaDogQWRkIGVsZl9iYWNrZW5kX3NldF9ub25sb2FkYWJsZV9maWxlcG9zLAoJZWxmX2JhY2tlbmRfaXNfY29udGFpbmVkX2J5X2ZpbGVwb3MsIGFuZAoJZWxmX2JhY2tlbmRfZG9fY29weV9wcml2YXRlX2JmZF9kYXRhLgoJKiB0YXJnZXRzLmM6IEFkZCBiZmRfdGFyZ2V0IGJmZF9lbGYzMl9pMzg2cW54X3ZlYy4KCjIwMDItMDUtMzEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZhcm0tb2FiaS5jIChiZmRfZWxmMzJfYXJtX2FkZF9nbHVlX3NlY3Rpb25zX3RvX2JmZCk6IERlZmluZS4KCU1vdmUgb3RoZXIgc2ltaWxhciBkZWZpbmVzIHRvIHN0YXJ0IG9mIGZpbGUuCgoyMDAyLTA1LTMwICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29mZi1yczYwMDAuYyAoeGNvZmZfcnR5cGUyaG93dG8pOiBIYW5kbGUgMTYgYml0IFJfUkJBLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHhjb2ZmNjRfcnR5cGUyaG93dG8pOiBTYW1lLgoKMjAwMi0wNS0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKEFMUEhBX0VMRl9MSU5LX0hBU0hfTFVfVExTR0QsCglBTFBIQV9FTEZfTElOS19IQVNIX0xVX1RMU0xETSwgQUxQSEFfRUxGX0xJTktfSEFTSF9MVV9GVU5DKTogTmV3LgoJKEFMUEhBX0VMRl9HT1RfRU5UUllfUkVMT0NTX0RPTkUpOiBSZW1vdmUuCgkoQUxQSEFfRUxGX0dPVF9FTlRSWV9SRUxPQ1NfWExBVEVEKTogUmVtb3ZlLgoJKHN0cnVjdCBhbHBoYV9lbGZfZ290X2VudHJ5KTogQWRkIHJlbG9jX3R5cGUsIHJlbG9jX2RvbmUsIHJlbG9jX3hsYXRlZC4KCShzdHJ1Y3QgYWxwaGFfZWxmX29ial90ZGF0YSk6IFJlbmFtZSB0b3RhbF9nb3RfZW50cmllcyBhbmQKCW5fbG9jYWxfZ290X2VudHJpZXMgdG8gdG90YWxfZ290X3NpemUgYW5kIGxvY2FsX2dvdF9zaXplLgoJKGVsZjY0X2FscGhhX2hvd3RvLCBlbGY2NF9hbHBoYV9yZWxvY19tYXApOiBVcGRhdGUgZm9yIFRMUyByZWxvY3MuCgkoYWxwaGFfZ290X2VudHJ5X3NpemUpOiBOZXcuCgkoZWxmNjRfYWxwaGFfcmVsYXhfd2l0aF9saXR1c2UpOiBVc2UgaXQuCgkoZWxmNjRfYWxwaGFfcmVsYXhfd2l0aG91dF9saXR1c2UpOiBMaWtld2lzZS4KCShNQVhfR09UX1NJWkUpOiBSZW5hbWUgZnJvbSBNQVhfR09UX0VOVFJJRVMuCgkoZ2V0X2dvdF9lbnRyeSk6IE5ldy4KCShlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBIYW5kbGUgVExTIHJlbG9jcy4gIFJlb3JnYW5pemUuCgkoZWxmNjRfYWxwaGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogVGVzdCBMVV9GVU5DIGFzIGEgbWFzay4KCShlbGY2NF9hbHBoYV9tZXJnZV9pbmRfc3ltYm9scyk6IENoZWNrIGdvdGVudC0+cmVsb2NfdHlwZS4KCShlbGY2NF9hbHBoYV9jYW5fbWVyZ2VfZ290cywgZWxmNjRfYWxwaGFfbWVyZ2VfZ290cyk6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX2NhbGNfZ290X29mZnNldHNfZm9yX3N5bWJvbCk6IFVzZSBhbHBoYV9nb3RfZW50cnlfc2l6ZS4KCShlbGY2NF9hbHBoYV9jYWxjX2dvdF9vZmZzZXRzKTogTGlrZXdpc2UuCgkoYWxwaGFfZHluYW1pY19lbnRyaWVzX2Zvcl9yZWxvYyk6IE5ldy4KCShlbGY2NF9hbHBoYV9jYWxjX2R5bnJlbF9zaXplcyk6IFVzZSBpdC4KCShlbGY2NF9hbHBoYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIFRMUyByZWxvY2F0aW9ucy4KCSogcmVsb2MuYzogQWRkIEFscGhhIFRMUyByZWxvY2F0aW9ucy4KCSogYmZkLWluMi5oLCBsaWJiZmQuaDogUmVidWlsZC4KCjIwMDItMDUtMjkgUmFsZiBIYWJhY2tlciA8cmFsZi5oYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogcGVYWGlnZW4uYyAocGVfcHJpbnRfaWRhdGEpOiBSZW1vdmUgZG91YmxlIHByaW50ZWQKCWltcG9ydCB0YWJsZSBsaW5lczsgYWRkIEJvdW5kLVRvIGNvbW1lbnQuCgoyMDAyLTA1LTI5ICBNYXR0IFRob21hcyAgPG1hdHRAM2FtLXNvZnR3YXJlLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi12YXgubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLXZheC5jLgoJKGVsZjMyLXZheC5sbyk6IE5ldyBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLmluIChiZmRfZWxmMzJfdmF4X3ZlYykKCSh2YXhuZXRic2RfdmVjKTogTmV3IHZlY3RvcnMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZCAodmF4LSotbmV0YnNkZWxmKikKCSh2YXgtKi1uZXRic2Rhb3V0KikKCSh2YXgtKi1uZXRic2QqKTogTmV3IHRhcmdldHMuCgkqIGVsZjMyLXZheC5jOiBOZXcgZmlsZS4KCSogcmVsb2MuYzogQWRkIFZBWCByZWxvY2F0aW9ucy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiB0YXJnZXRzLmMgKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IEFkZCBiZmRfZWxmMzJfdmF4X3ZlYy4KCjIwMDItMDUtMjkgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuYmZkIChhcm0tKi1uZXRic2QqKTogQWRkIGJmZF9lbGYzMl9saXR0bGVhcm1fdmVjCglhbmQgYmZkX2VsZjMyX2JpZ2FybV92ZWMgdG8gdGFyZ19zZWx2ZWNzLgoKMjAwMi0wNS0yOSAgUmFsZiBIYWJhY2tlciAgPHJhbGYuaGFiYWNrZXJAZnJlZW5ldC5kZT4KCgkqIHBlWFhpZ2VuLmMgKHBlX3ByaW50X2lkYXRhKTogRml4IHNlZyBmYXVsdHMgb24gcHJpbnRpbmcgaW1wb3J0IHRhYmxlcwoJd2l0aCBhdXRvLWltcG9ydGVkIHN5bWJvbHMuCgoyMDAyLTA1LTI5ICBBZGFtIE5lbWV0ICA8YW5lbWV0QGxueHcuY29tPgoKCSogZWxmMzItYXJtLmggKGJmZF9lbGYzMl9hcm1fZ2V0X2JmZF9mb3JfaW50ZXJ3b3JraW5nKTogRG9uJ3QgYWRkIGdsdWUKCXNlY3Rpb25zIG9ubHkgcmVjb3JkIGJmZC4KCShiZmRfZWxmMzJfYXJtX2FkZF9nbHVlX3NlY3Rpb25zX3RvX2JmZCk6IE5ldyBmdW5jdGlvbi4KCSogYmZkLWluLmggKGJmZF9lbGYzMl9hcm1fYWRkX2dsdWVfc2VjdGlvbnNfdG9fYmZkKTogRGVjbGFyZSBpdC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBzeW1zLmMgKF9iZmRfc3RhYl9zZWN0aW9uX2ZpbmRfbmVhcmVzdF9saW5lKTogTW92ZQoJZGVjbGFyYXRpb24gYW5kIGluaXRpYWxpc2F0aW9uIG9mIHNhd19saW5lIGFuZCBzYXdfZnVuYyBvdXQgb2YKCWZvciBsb29wLgoKMjAwMi0wNS0yOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZ2V0X3N5bWJvbF9pbmZvKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9lbGY2NF9nZXRfc3ltYm9sX2luZm8pOiBEZWZpbmUuCgkqIGVsZnh4LXRhcmdldC5oIChiZmRfZWxmTk5fZ2V0X3N5bWJvbF9pbmZvKTogT25seSBkZWZpbmUgaWYgdW5kZWYuCgoyMDAyLTA1LTI5ICBBbmRyZXkgVm9sa292ICA8YXZvbGtvdkB0cmFuc2FzLmNvbT4KCgkqIGNwdS1oODMwMC5jOiBNYWtlIGRlZmF1bHQgaDgzMDAgbWFjaGluZSBmaXJzdCBpbiBtYWNoaW5lIGxpc3QuCgoyMDAyLTA1LTI4ICBLdWFuZyBId2EgTGluIDxrdWFuZ0BzYmNnbG9iYWwubmV0PgoKCSogY29uZmlnLmJmZDogQWRkZWQgRExYIGNvbmZpZ3VyYXRvbi4KCSogTWFrZWZpbGUuYW06IEFkZGVkIERMWCBjb25maWd1cmF0b24uCgkqIGNvbmZpZ3VyZS5pbjogQWRkZWQgRExYIGNvbmZpZ3VyYXRvbi4KCSogYXJjaHVyZXMuYzogQWRkIERMWCBhcmNoaXRlY3R1cmUuCgkqIHJlbG9jLmM6IEFkZCBETFggcmVsb2NzLgoJKiB0YXJnZXRzLmM6IEFkZGVkIERMWCB0YXJnZXQgdmVjdG9yLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbnJlYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VucmVhdGUuCgkqIGVsZjMyLWRseC5jOiBOZXcgZmlsZTogU3VwcG9ydCBETFggdGFyZ2V0LgoJKiBjcHUtZGx4LmM6IE5ldyBmaWxlOiBTdXBwb3J0IERMWCB0YXJnZXQuCgoyMDAyLTA1LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItbTY4ay5jIChlbGYzMl9tNjhrX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBGb3JtYXR0aW5nLgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IFJldmVydCBsYXN0IGNoYW5nZS4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogRG9uJ3Qgc2V0IHVwIGZ1bmN0aW9uIGRlc2NyaXB0b3Igc3ltYm9sCglzdHJpbmdzIHRvIHBvaW50IGluc2lkZSBmdW5jdGlvbiBjb2RlIHN5bSBzdHJpbmcuCgkoZnVuY19kZXNjX2FkanVzdCk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9oaWRlX3N5bWJvbCk6IFJld3JpdGUgY29kZSB0byBsb29rIHVwIGZ1bmN0aW9uIGNvZGUgc3ltLgoKMjAwMi0wNS0yNCAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfZ3Jva19wcnN0YXR1cyk6IEFkZGVkLgoJKGVsZjY0X3g4Nl82NF9ncm9rX3BzaW5mbyk6IEFkZGVkLgoKMjAwMi0wNS0yNCAgVEFNVVJBIEtlbnQgPGtlbnRAbmV0YnNkLm9yZz4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBhIHRhcmdldCBmb3IgaTM4Ni1uZXRic2RwZS4KCjIwMDItMDUtMjQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRG9uJ3QgY29weSBpc19mdW5jCglhbmQgaXNfZnVuY19kZXNjcmlwdG9yLgoJKGZ1bmNfZGVzY19hZGp1c3QpOiBIaWRlIGZ1bmN0aW9uIGNvZGUgc3ltIGluIHNoYXJlZCBsaWJzIHVubGVzcwoJdGhlcmUgaXMgYSBtYXRjaGluZyBleHBvcnRlZCBmdW5jdGlvbiBkZXNjcmlwdG9yIHN5bS4KCjIwMDItMDUtMjMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX21ha2Vfc2VjdGlvbl9mcm9tX3NoZHIpOiBTZXQgU0VDX1RIUkVBRF9MT0NBTAoJZm9yIHN5bWJvbHMgZnJvbSBTSEZfVExTIHNlY3Rpb24uCgkoX2JmZF9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEFkZCBQVF9UTFMuCgkoZWxmX2Zha2Vfc2VjdGlvbnMpOiBTZXQgU0hGX1RMUyBmb3IgU0VDX1RIUkVBRF9MT0NBTCBzZWN0aW9ucy4KCShtYXBfc2VjdGlvbnNfdG9fc2VnbWVudHMpOiBCdWlsZCBQVF9UTFMgc2VnbWVudCBpZiBuZWNlc3NhcnkuCgkoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9zZWdtZW50cyk6IExpa2V3aXNlLgoJKGdldF9wcm9ncmFtX2hlYWRlcl9zaXplKTogQWNjb3VudCBmb3IgUFRfVExTIHNlZ21lbnQuCgkoc3dhcF9vdXRfc3ltcyk6IFNldCB0eXBlIG9mIEJTRl9USFJFQURfTE9DQUwgc3ltYm9scyBhbmQgc3ltYm9scyBmcm9tCglTRUNfVEhSRUFEX0xPQ0FMIHNlY3Rpb25zIHRvIFNUVF9UTFMuCgkqIHJlbG9jLmM6IEFkZCAzODYgYW5kIElBLTY0IFRMUyByZWxvY3MuCgkqIHNlY3Rpb24uYyAoU0VDX1RIUkVBRF9MT0NBTCk6IERlZmluZS4KCShTRUNfQ09OU1RSVUNUT1JfVEVYVCwgU0VDX0NPTlNUUlVDVE9SX0RBVEEsIFNFQ19DT05TVFJVQ1RPUl9CU1MpOgoJUmVtb3ZlLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IFN1cHBvcnQgLnRjb21tb24uCgkoc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogSWYgREZfU1RBVElDX1RMUywgc2V0IERGX0ZMQUdTCgl1bmNvbmRpdGlvbmFsbHkuCgkoc3RydWN0IGVsZl9maW5hbF9saW5rX2luZm8pOiBBZGQgZmlyc3RfdGxzX3NlYy4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBTZXQgZmlyc3RfdGxzX3NlYy4KCUNvbXB1dGUgZWxmX2hhc2hfdGFibGUgKGluZm8pLT50bHNfc2VnbWVudC4KCShlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogSGFuZGxlIFNUVF9UTFMgc3ltYm9scy4KCShlbGZfbGlua19pbnB1dF9iZmQpOiBMaWtld2lzZS4KCSogc3ltcy5jIChCU0ZfVEhSRUFEX0xPQ0FMKTogRGVmaW5lLgoJKiBiZmQtaW4yLmg6IFJlYnVpbHQuCgkqIGxpYmJmZC5oOiBSZWJ1aWx0LgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3Rsc190cmFuc2l0aW9uLCBkdHBvZmZfYmFzZSwgdHBvZmYsCgllbGZfaTM4Nl9ta29iamVjdCwgZWxmX2kzODZfb2JqZWN0X3ApOiBOZXcgZnVuY3Rpb25zLgoJKGVsZl9ob3d0b190YWJsZSk6IEFkZCBUTFMgcmVsb2NzLgoJKGVsZl9pMzg2X3JlbG9jX3R5cGVfbG9va3VwKTogU3VwcG9ydCBUTFMgcmVsb2NzLgoJKGVsZl9pMzg2X2luZm9fdG9faG93dG9fcmVsKTogTGlrZXdpc2UuCgkoc3RydWN0IGVsZl9pMzg2X2xpbmtfaGFzaF9lbnRyeSk6IEFkZCB0bHNfdHlwZS4KCShzdHJ1Y3QgZWxmX2kzODZfb2JqX3RkYXRhKTogTmV3LgoJKGVsZl9pMzg2X2hhc2hfZW50cnksIGVsZl9pMzg2X3RkYXRhLCBlbGZfaTM4Nl9sb2NhbF9nb3RfdGxzX3R5cGUpOgoJTmV3IG1hY3Jvcy4KCShzdHJ1Y3QgZWxmX2kzODZfbGlua19oYXNoX3RhYmxlKTogQWRkIHRsc19sZG1fZ290LgoJKGxpbmtfaGFzaF9uZXdmdW5jKTogQ2xlYXIgdGxzX3R5cGUuCgkoZWxmX2kzODZfY2hlY2tfcmVsb2NzKTogU3VwcG9ydCBUTFMgcmVsb2NzLgoJKGVsZl9pMzg2X2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoYmZkX2VsZjMyX21rb2JqZWN0LCBlbGZfYmFja2VuZF9vYmplY3RfcCk6IERlZmluZS4KCSogZWxmeHgtaWE2NC5jIChzdHJ1Y3QgZWxmTk5faWE2NF9keW5fc3ltX2luZm8pOiBBZGQgdHByZWxfb2Zmc2V0LAoJZHRwbW9kX29mZnNldCwgZHRwcmVsX29mZnNldCwgdHByZWxfZG9uZSwgZHRwbW9kX2RvbmUsIGR0cHJlbF9kb25lLAoJd2FudF90cHJlbCwgd2FudF9kdHBtb2QsIHdhbnRfZHRwcmVsLgoJKGVsZk5OX2lhNjRfdHByZWxfYmFzZSwgZWxmTk5faWE2NF9kdHByZWxfYmFzZSk6IE5ldyBmdW5jdGlvbnMuCgkoaWE2NF9ob3d0b190YWJsZSk6IEFkZCBUTFMgcmVsb2NzLCByZW5hbWUgUl9JQTY0X0xUT0ZGX1RQMjIgdG8KCVJfSUE2NF9MVE9GRl9UUFJFTDIyLgoJKGVsZl9jb2RlX3RvX2hvd3RvX2luZGV4KTogQWRkIFRMUyByZWxvY3MuCgkoZWxmTk5faWE2NF9jaGVja19yZWxvY3MpOiBTdXBwb3J0IFRMUyByZWxvY3MuCgkoYWxsb2NhdGVfZ2xvYmFsX2RhdGFfZ290KTogQWNjb3VudCBmb3IgVExTIC5nb3QgZGF0YS4KCShhbGxvY2F0ZV9keW5yZWxfZW50cmllcyk6IEFjY291bnQgZm9yIFRMUyBkeW5hbWljIHJlbG9jYXRpb25zLgoJKGVsZk5OX2lhNjRfaW5zdGFsbF92YWx1ZSk6IFN1cHBydCBUTFMgcmVsb2NzLgoJKHNldF9nb3RfZW50cnkpOiBTdXBwb3J0IFRMUyByZWxvY3MuCgkoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTA1LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IEZvciB0aGUgVGh1bWIKCUJMWCByZWxvYyByb3VuZCB0aGUgcmVsb2NhdGlvbiB1cCByYXRoZXIgdGhhbiBkb3duLgoJKiBjb2ZmLWFybS5jIChjb2ZmX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTA1LTIxICBILkouIEx1ICAoaGpsQGdudS5vcmcpCgoJKiBsaW5rZXIuYyAoX2JmZF9nZW5lcmljX2xpbmtfYWRkX29uZV9zeW1ib2wpOiBBbGxvdyBtdWx0aXBsZQoJZGVmaW5pdGlvbi4KCjIwMDItMDUtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBEb24ndCBzdHJpcCAuYnJhbmNoX2x0LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIHVucmVzb2x2ZWQgcmVsb2NzIGluIG9wZC4KCjIwMDItMDUtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBSZXR1cm4gZmFsc2UgZm9yCgl1bnJlc29sdmVkIHJlbG9jcy4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ2hlY2sgZm9yIHNwbHQgTlVMTC4KCjIwMDItMDUtMjEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBiZmQuYyAoYmZkX2dldF9hcmNoX3NpemUpOiBSZW1vdmUgYmZkX3NldF9lcnJvciBjYWxsIGZvcgoJbm9uLUVMRiB0YXJnZXRzLgoKMjAwMi0wNS0yMSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZi1iZmQuaCAoZWxmX2JhY2tlbmRfZW1pdF9yZWxvY3MpOiBDaGFuZ2UgcHJvdG90eXBlIHRvIHJldHVybgoJYW4gZXJyb3IgdmFsdWUuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfb3V0cHV0X3JlbG9jcyk6IExpa2V3aXNlLiBJbXByb3ZlIGVycm9yIG1lc3NhZ2UuCglyZXR1cm4gd2l0aCBmYWxzZSBvbiBlcnJvci4KCShlbGZfbGlua19pbnB1dF9iZmQpOiBDaGVjayByZWxvY19lbWl0dGVyIHJldHVybiB2YWx1ZS4KCjIwMDItMDUtMjEgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuYmZkIChhcm1lYi0qLW5ldGJzZGVsZiopOiBOZXcgdGFyZ2V0LgoKMjAwMi0wNS0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGNfYnVpbGRfb25lX3N0dWIpOiBQb2ludCB1bmRlZmluZWQgZnVuY3Rpb24gc3ltcwoJYXQgdGhlIHBsdCBjYWxsIHN0dWIuCgoyMDAyLTA1LTE5ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY3B1LW1pcHMuYyAobWlwc19jb21wYXRpYmxlKTogRG9uJ3QgdHJ5IHRvIGNoZWNrIG1hY2hpbmUKCWNvbXBhdGliaWxpdHkuCgoyMDAyLTA1LTE4ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29mZjY0LXJzNjAwMC5jIChfYmZkX3hjb2ZmNjRfc3dhcF9hdXhfb3V0KTogRml4IENfRklMRSBhdXhlbnQuCgoyMDAyLTA1LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9pbmZvX3RvX2hvd3RvKTogRm9ybWF0dGluZy4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IHdhcm4gYWJvdXQgcmVsb2Mgb3ZlcmZsb3cgd2hlbgoJd2UndmUgYWxyZWFkeSB3YXJuZWQgYWJvdXQgYW4gdW5kZWZpbmVkIHN5bWJvbC4gIFJlcG9ydCBtb3JlCglkZXRhaWwgb24gcmVsb2MgZXJyb3JzLgoKMjAwMi0wNS0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGFjaW5jbHVkZS5tNCAoQU1fSU5TVEFMTF9MSUJCRkQpOiBOZXcuCgkqIGNvbmZpZ3VyZS5pbjogSW52b2tlIEFNX0lOU1RBTExfTElCQkZELgoJKiBNYWtlZmlsZS5hbSAoaW5zdGFsbC1kYXRhLWxvY2FsKTogUmV2ZXJ0IDIwMDItMDUtMTMuICBNb3ZlIHRvLi4KCShpbnN0YWxsX2xpYmJmZCk6IC4uIE5ldyB0YXJnZXQuCgkodW5pbnN0YWxsX2xpYmJmZCk6IExpa2V3aXNlLgoJKGluc3RhbGwtYmZkbGliTFRMSUJSQVJJRVMpOiBMaWtld2lzZS4KCSh1bmluc3RhbGwtYmZkbGliTFRMSUJSQVJJRVMpOiBMaWtld2lzZS4KCShiZmRsaWJkaXIpOiBOZXcuCgkoYmZkaW5jbHVkZWRpcik6IE5ldy4KCShsaWJfTFRMSUJSQVJJRVMpOiBSZW5hbWUgdG8gYmZkbGliX0xUTElCUkFSSUVTLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0xNyAgU3R1YXJ0IEJhbGZvdXIgPHNiYWxmb3VyQGNpc2NvLmNvbT4KCgkqIGhhc2guYyAoYmZkX2hhc2hfbG9va3VwKTogUmVtb3ZlIGNvbXB1dGF0aW9uIG9mIGxlbiBmcm9tIGluc2lkZQoJaGFzaCBsb29wLgoKMjAwMi0wNS0xNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcuYmZkOiBBZGQgdGFyZ2V0cyBmb3Igc2g2NC1saW51eCAobGl0dGxlIGVuZGlhbiBhbmQKCWJpZyBlbmRpYW4pLgoKMjAwMi0wNS0xNSAgTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBza3luZXQuYmU+CgoJKiBwZVhYaWdlbi5jIChwZV9wcmludF9pZGF0YSk6IERvIG5vdCBhc3N1bWUgdGhhdCB0aGUgZmlyc3QgdGh1bmsKCWlzIGxvY2F0ZWQgaW4gdGhlIHNhbWUgc2VjdGlvbiBhcyB0aGUgaW1wb3J0IHRhYmxlLiAgSW5zdGVhZAoJY2hlY2ssIGFuZCBpZiBuZWNlc3NhcnkgbG9hZCB0aGUgc2VjdGlvbiBjb250YWluaW5nIHRoZSB0aHVuay4KCjIwMDItMDUtMTUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogYWl4NXBwYy1jb3JlLmMgKHhjb2ZmNjRfY29yZV9wKTogUmVwbGFjZSBiZmRfcmVhZCB3aXRoCgliZmRfYnJlYWQuCgkoeGNvZmY2NF9jb3JlX2ZpbGVfbWF0Y2hlc19leGVjdXRhYmxlX3ApOiBSZXBsYWNlIGJmZF9yZWFkCgl3aXRoIGJmZF9icmVhZC4KCjIwMDItMDUtMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhaXg1cHBjLWNvcmUuYzogV2FybmluZyBmaXhlcy4KCSogYW91dC1hZG9iZS5jIChhb3V0XzMyX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogYW91dC10YXJnZXQuaCAoTVlfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBhb3V0LXRpYzMwLmMgKE1ZX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogYmZkLmMgKGJmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogYmluYXJ5LmMgKGJpbmFyeV9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGJvdXQuYyAoYl9vdXRfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBjb2ZmLXJzNjAwMC5jIChyczYwMDBjb2ZmX3ZlYywgcG1hY194Y29mZl92ZWMpOiBVcGRhdGUgaW5pdGlhbGl6ZXIuCgkqIGNvZmY2NC1yczYwMDAuYyAocnM2MDAwY29mZjY0X3ZlYywgYWl4NWNvZmY2NF92ZWMpOiBMaWtld2lzZS4KCSogY29mZmNvZGUuaCAoY29mZl9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGVsZi1iZmQuaCAoZW51bSBlbGZfbGlua19pbmZvX3R5cGUpOiBBZGQgRUxGX0lORk9fVFlQRV9KVVNUX1NZTVMuCgkoZWxmX2Rpc2NhcmRlZF9zZWN0aW9uKTogQ2hlY2sgZm9yIEVMRl9JTkZPX1RZUEVfSlVTVF9TWU1TLgoJKF9iZmRfZWxmX2xpbmtfanVzdF9zeW1zKTogRGVjbGFyZS4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfanVzdF9zeW1zKTogTmV3IGZ1bmN0aW9uLgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfbWF5YmVfc3RyaXBfZWhfZnJhbWVfaGRyKTogQ2hlY2sgdGhhdAoJc2VjdGlvbnMgaGF2ZW4ndCBhbHJlYWR5IGJlZW4gZGlzY2FyZGVkIGJ5IHRoZSBsaW5rZXIuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogTGlrZXdpc2UgZm9yIHN0YWIKCXNlY3Rpb25zIGFuZCBTRUNfTUVSR0Ugc2VjdGlvbnMuCgkoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBTaW1pbGFybHkgaGVyZS4KCSogZWxmeHgtdGFyZ2V0LmggKGJmZF9lbGZOTl9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGkzODZtc2Rvcy5jIChtc2Rvc19iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIGkzODZvczlrLmMgKG9zOWtfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBpZWVlLmMgKGllZWVfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBpaGV4LmMgKGloZXhfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBsaWJiZmQtaW4uaCAoX2JmZF9ub2xpbmtfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKF9iZmRfZ2VuZXJpY19saW5rX2p1c3Rfc3ltcyk6IERlY2xhcmUuCgkqIGxpYmVjb2ZmLmggKF9iZmRfZWNvZmZfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBsaW5rZXIuYyAoX2JmZF9nZW5lcmljX2xpbmtfanVzdF9zeW1zKTogTmV3IGZ1bmN0aW9uLgoJKiBtbW8uYyAobW1vX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogbmxtLXRhcmdldC5oIChubG1fYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBvYXN5cy5jIChvYXN5c19iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIHBwY2Jvb3QuYyAocHBjYm9vdF9iZmRfbGlua19qdXN0X3N5bXMpOiBEZWZpbmUuCgkqIHNvbS5jIChzb21fYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiBzcmVjLmMgKHNyZWNfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiB0YXJnZXRzLmMgKHN0cnVjdCBiZmRfdGFyZ2V0KTogQWRkIF9iZmRfbGlua19qdXN0X3N5bXMuCgkoQkZEX0pVTVBfVEFCTEVfTElOSyk6IEFuZCBoZXJlLgoJKiB0ZWtoZXguYyAodGVraGV4X2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogdmVyc2Fkb3MuYyAodmVyc2Fkb3NfYmZkX2xpbmtfanVzdF9zeW1zKTogRGVmaW5lLgoJKiB2bXMuYyAodm1zX2JmZF9saW5rX2p1c3Rfc3ltcyk6IERlZmluZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDUtMTUgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYzMi1taXBzLmM6IFJlbW92ZSBzdXBlcmZsdW91cyBkZWZpbml0aW9ucyBjb3BpZWQgZnJvbQoJZWxmeHgtbWlwcy5jLgoJKGJmZF9lbGYzMl9iaWdtaXBzX3ZlYyxiZmRfZWxmMzJfbGl0dGxlbWlwc192ZWMpOiBVc2UgdGhlCglTR0lpc2ggdmVjdG9ycyB0byBjaGVjayB0aGUgc3BlY2lhbCBjYXNlLgoJKG1pcHNfZWxmX2hpMTZfcmVsb2MpOiBGaXggY29tbWVudC4KCShtaXBzX2VsZl9nb3QxNl9yZWxvYyk6IExpa2V3aXNlLgoJKF9iZmRfbWlwc19lbGYzMl9ncHJlbDE2X3JlbG9jKTogTGlrZXdpc2UuCgkoZWxmX3JlbG9jX21hcCk6IENvZGUgY2xlYW51cC4KCShtaXBzX3JlbG9jX21hcCk6IEFkZCBjb21tZW50LgoJKGJmZF9lbGYyM19iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBDb2RlIGNsZWFudXAuCgkobWlwc19lbGYzMl9ydHlwZV90b19ob3d0byk6IExpa2V3aXNlLgoJKG1pcHNfZWxmMzJfZGlzY2FyZF9pbmZvKTogTGlrZXdpc2UuCgkoZWxmMzJfbWlwc19pcml4X2NvbXBhdCk6IEludmVydCBsb2dpYzogT25seSBTR0lpc2ggdmVjdG9ycwoJbGVhZCB0byBJUklYIGNvbXBhdGliaWxpdHkgbm93LgoKMjAwMi0wNS0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZnh4LW1pcHMuYzogQ2FsbCBpdCBJUklYLCBub3QgSXJpeCBpbiBjb21tZW50cy4KCjIwMDItMDUtMTMgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuYmZkIChzaGxlLSotbmV0YnNkZWxmKik6IEFkZCB0YXJnZXQgd2hpY2ggaW5jbHVkZXMKCXNoNjQgc3VwcG9ydC4KCjIwMDItMDUtMTMgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogUmV2ZXJ0IDIwMDItMDQtMDcuICBJbnN0ZWFkLCBhdXRvLWNvbmZpZ3VyZQoJSEFWRV9TVF9DX0lNUEwuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiByczYwMDAtY29yZS5jIChDTkVXX0lNUEwpOiBHdWFyZCB1c2Ugb2YgY19pbXBsIHdpdGggSEFWRV9TVF9DX0lNUEwKCW9yIEFJWF81X0NPUkUuCgoyMDAyLTA1LTExICBGZWRlcmljbyBHLiBTY2h3aW5kdCA8ZmdzY2hAb2xpbXBvLmNvbS5icj4KCgkqIGNvbmZpZ3VyZS5pbiAoc3BhcmMqLSotb3BlbmJzZCopOiBTdXBwb3J0IHNwYXJjNjQtb3BlbmJzZAoJY29yZWZpbGVzIGFzIHdlbGwuMgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTEzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW0gKGluc3RhbGwtZGF0YS1sb2NhbCk6IEluc3RhbGwgaGVhZGVycyB0bwoJJChleGVjX3ByZWZpeCkvaW5jbHVkZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTExICBSYWxmIENvcnNlcGl1cyAgPGNvcnNlcGl1QGZhdy51bmktdWxtLmRlPgoJICAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29mZi1zaC5jIChzaF9yZWxvY19tYXApOiBNYXAgdG8gUl9TSF9JTU0zMiBmb3Igbm9uLVBFLiAgRG9uJ3QKCW1hcCBCRkRfUkVMT0NfUlZBLgoKMjAwMi0wNS0xMSAgRmVkZXJpY28gRy4gU2Nod2luZHQgPGZnc2NoQG9saW1wby5jb20uYnI+CgoJKiBjb25maWcuYmZkIChhbHBoYSotKi1vcGVuYnNkKiwgc3BhcmM2NCotKi1vcGVuYnNkKiwKCWhwcGEqLSotb3BlbmJzZCopOiBOZXcgdGFyZ2V0cy4KCSogY29uZmlndXJlLmluIChhbHBoYSotKi1vcGVuYnNkKik6IFNldCBDT1JFRklMRS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wNS0xMCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9yZWxvY190eXBlX2JyKTogTmV3IGZ1bmN0aW9uIGZvcgoJeGNvZmY2NF9wcGNfcmVsb2NhdGVfc2VjdGlvbi4KCSogY29mZi1yczYwMDAuYyA6IEV4dGVybiBjb21tb24geGNvZmZfcmVsb2NfdHlwZSBmdW5jdGlvbnMuCgkqIGxpYnhjb2ZmLmg6IENvbW1vbiB4Y29mZl9yZWxvY190eXBlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLgoKMjAwMi0wNS0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IFJlbW92ZSBvdmVyZmxvdyBjaGVja3MKCWFkZGVkIGluIDIwMDItMDUtMDkgY29tbWl0LgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBSZXZlcnQgcGFydCBvZiAyMDAyLTA1LTA0LAoJZG9uJ3QgbG9vayBmb3Igc3R1YnMgb24gYWxsIHVuZGVmaW5lZCBzeW1zLgoKMjAwMi0wNS0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChSQV9SRUdJU1RFUl9NQVNLLCBSQV9SRUdJU1RFUl9TSElGVCk6IERlbGV0ZS4KCShwcGM2NF9lbGZfaG93dG9fcmF3IDxSX1BQQzY0X1JFTEFUSVZFPik6IE5vdCBwY19yZWxhdGl2ZSBvcgoJcGNyZWxfb2Zmc2V0LgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaG93dG9fdGFibGUpOiBDb21tZW50cy4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIG1vcmUgcmVsb2NzIGZvciByZWxvY2F0YWJsZQoJbGlua2luZyBhbmQgYWdhaW5zdCBTRUNfTUVSR0Ugc2VjdGlvbnMuCgoyMDAyLTA1LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY3JlYXRlX2dvdCk6IE5ldyBmdW5jdGlvbi4KCShwcGNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogQ2FsbCBwcGNfZWxmX2NyZWF0ZV9nb3QgYmVmb3JlCglfYmZkX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucy4gIENvcnJlY3QgLnBsdCBmbGFncy4KCShwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IFVzZSBwcGNfZWxmX2NyZWF0ZV9nb3QgaW4gcGxhY2Ugb2YKCV9iZmRfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbi4KCjIwMDItMDUtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogQWRkIHJlbGFfbm9ybWFsLgoJKiBlbGZ4eC10YXJnZXQuaCAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkoZWxmTk5fYmVkKTogSW5pdCByZWxhX25vcm1hbC4KCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQgPGVtaXRfcmVsb2NzPik6IEhhbmRsZSBhZGp1c3RtZW50Cglmb3Igc2VjdGlvbiBzeW1ib2xzIGhlcmUgaWYgcmVsYV9ub3JtYWwuICBTaW1wbGlmeSBhYnMgc2VjdGlvbiB0ZXN0LgoJKiBlbGYtbTEwMjAwLmMgKG1uMTAyMDBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBJZiByZWxvY2F0YWJsZSwKCXJldHVybiBpbW1lZGlhdGVseS4gIFJlbW92ZSBjb2RlIGhhbmRsaW5nIHJlbG9jYXRhYmxlIGxpbmtpbmcuCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1mcjMwLmMgKGZyMzBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jIChpMzcwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWk4NjAuYyAoZWxmMzJfaTg2MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tY29yZS5jIChtY29yZV9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1vcGVucmlzYy5jIChvcGVucmlzY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlICNpZm5kZWYgVVNFX1JFTC4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAyMDAuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZi1tMTAzMDAuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLWZyMzAuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLWkzNzAuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLWk4NjAuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLW02OGsuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjMyLW1jb3JlLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi1vcGVucmlzYy5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmMzItcHBjLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUuCgkqIGVsZjY0LXBwYy5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmNjQtczM5MC5jIChlbGZfYmFja2VuZF9yZWxhX25vcm1hbCk6IERlZmluZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogRGVmaW5lLgoJKiBlbGYzMi1hcm0uaCAoZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwpOiBEZWZpbmUgI2lmbmRlZiBVU0VfUkVMLgoJKiBlbGYzMi1tMzJyLmMgKGVsZl9iYWNrZW5kX3JlbGFfbm9ybWFsKTogTGlrZXdpc2UuCgoyMDAyLTA1LTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IENvbnZlcnQKCSdyZWxvY19zaWduZWRfbWF4JyBhbmQgJ3JlbG9jX3NpZ25lZF9taW4nIGludG8gaGFsZi13b3JkIG9mZnNldHMuCgoyMDAyLTA1LTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQgPGVtaXRfcmVsb2NzPik6IEFkanVzdCByX29mZnNldAoJd2hlbiBub3QgcmVsb2NhdGFibGUuICBGaXggcmVsb2NfZW1pdHRlciBjYWxsIGZvciBLJlIuCgoyMDAyLTA1LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVpbnN0YXRlIGNvZGUKCXJlbG9hZGluZyBsb2NhbCBzeW0gYWRkZW5kIG1pc3Rha2VubHkgcmVtb3ZlZCBpbiAyMDAyLTA1LTAxIGNoYW5nZS4KCgkqIGR3YXJmMi5jIChzdHJ1Y3QgbGluZV9oZWFkKTogTWFrZSBwcm9sb2d1ZV9sZW5ndGggYSBiZmRfdm1hLgoJKHJlYWRfYWJicmV2cyk6IENoYW5nZSAib2Zmc2V0IiBwYXJhbSB0byBiZmRfdm1hLgoJKHBhcnNlX2NvbXBfdW5pdCk6IENoYW5nZSAidmVyc2lvbiIgYW5kIGFkZHJfc2l6ZSB0byB1bnNpZ25lZCBpbnRzLgoJQ2hhbmdlICJhYmJyZXZfb2Zmc2V0IiB0byBiZmRfdm1hLgoJKHJlYWRfaW5kaXJlY3Rfc3RyaW5nKTogVXNlIGNvcnJlY3QgY29udmVyc2lvbiBjaGFycyBpbiBlcnJvcgoJbWVzc2FnZSBmb3JtYXQgc3RyaW5nLCBjYXN0IGJmZF92bWEncyB0byB1bnNpZ25lZCBsb25nLgoJKHJlYWRfYWJicmV2cyk6IExpa2V3aXNlLgoJKHJlYWRfYXR0cmlidXRlX3ZhbHVlKTogTGlrZXdpc2UuCgkoZGVjb2RlX2xpbmVfaW5mbyk6IExpa2V3aXNlLgoJKHNjYW5fdW5pdF9mb3JfZnVuY3Rpb25zKTogTGlrZXdpc2UuCgkocGFyc2VfY29tcF91bml0KTogTGlrZXdpc2UuCgoyMDAyLTA1LTA0ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29mZnN3YXAuaCAoY29mZl9zd2FwX3JlbG9jX2luKTogUmVtb3ZlIFhDT0ZGIHN1cHBvcnQuCgkoY29mZl9zd2FwX3JlbG9jX291dCk6IFNhbWUuCgkqIGNvZmYtcnM2MDAwLmM6ICh4Y29mZl9zd2FwX3JlbG9jX2luKTogTW92ZWQgZnJvbSBjb2Zmc3dhcC5oLgoJKHhjb2ZmX3N3YXBfcmVsb2Nfb3V0KTogU2FtZS4KCSh4Y29mZl9ydHlwZTJob3d0byk6IFJlbmFtZWQgZnJvbSBfYmZkX3hjb2ZmX3J0eXBlMmhvd3RvLiBTcGVjaWFsCgljYXNlIHNvbWUgMTYgYml0IHJlbG9jcy4gQWRkIHJlbG9jIHZhbHVlIHRvIG91dHB1dC4KCSh4Y29mZl9ob3d0b190YWJsZSk6IFJlbW92ZSA2NCBiaXQgUl9QT1MsIGFkZCAxNiBiaXQKCVJfUkJSLiBJbXByb3ZlIG5hbWVzLgoJKF9iZmRfeGNvZmZfcmVsb2NfdHlwZV9sb29rdXApOiBBZGp1c3QgZm9yIHJlbW92YWwgb2YgNjQgYml0IFJfUE9TLgoJKGJmZF94Y29mZl9iYWNrZW5kX2RhdGEpOiBVcGRhdGUgd2l0aCBuZXcgcmVsb2Mgc3dhcCBuYW1lcy4KCShiZmRfcG1hY194Y29mZl9iYWNrZW5kX2RhdGEpIDogU2FtZS4KCSogY29mZjY0LXJzNjAwMC5jOiAoeGNvZmY2NF9zd2FwX3JlbG9jX2luKTogTW92ZWQgZnJvbSBjb2Zmc3dhcC5oLgoJKHhjb2ZmNjRfc3dhcF9yZWxvY19vdXQpOiBTYW1lLgoJKHhjb2ZmNjRfcnR5cGUyaG93dG8pOiBTcGVjaWFsIGNhc2Ugc29tZSAxNiBiaXQgcmVsb2NzIGFuZCAzMiBiaXQKCVJfUE9TLiBBZGQgcmVsb2MgdmFsdWUgdG8gb3V0cHV0LgoJKHhjb2ZmNjRfaG93dG9fdGFibGUpOiBNb3ZlIDY0IGJpdCBSX1BPUyB0byBmaXJzdCBlbnRyeS4gIEFkZCAxNgoJYml0IFJfUkJSLiBJbXByb3ZlIG5hbWVzLCBtYXNrcy4KCSh4Y29mZjY0X3JlbG9jX3R5cGVfbG9va3VwKTogQWRqdXN0IGZvciBtb3ZlIG9mIDY0IGJpdCBSX1BPUy4KCShiZmRfeGNvZmZfYmFja2VuZF9kYXRhKTogVXBkYXRlIHdpdGggbmV3IHJlbG9jIHN3YXAgbmFtZXMuCgkoYmZkX3hjb2ZmX2FpeDVfYmFja2VuZF9kYXRhKSA6IFNhbWUuCgoyMDAyLTA1LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChzdHJ1Y3QgZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGUpOiBBZGQKCWJmZF9jb3VudCB0b3BfaW5kZXgsIGlucHV0X2xpc3QsIGFsbF9sb2NhbF9zeW1zLgoJKGVsZjMyX2hwcGFfc2V0dXBfc2VjdGlvbl9saXN0cyk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgZnJvbQoJZWxmMzJfaHBwYV9zaXplX3N0dWJzLgoJKGVsZjMyX2hwcGFfbmV4dF9pbnB1dF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZ3JvdXBfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShnZXRfbG9jYWxfc3ltcyk6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IEFkanVzdCBmb3Igc3BsaXQgb3V0IGZ1bmN0aW9ucy4gIExvb2sgZm9yCglzdHVicyBvbiB1bmRlZmluZWQgc3ltcyB0b28uCgkoZWxmMzJfaHBwYV9zZXRfZ3ApOiBVc2UgYmZkX2xpbmtfaGFzaCogaW5zdGVhZCBvZiBlbGZfbGlua19oYXNoKi4KCU9ubHkgYWNjZXNzIGh0YWIgZWxmIGZpZWxkcyB3aGVuIHdlIGhhdmUgYW4gZWxmIGhhc2ggdGFibGUuCgkqIGVsZjMyLWhwcGEuaCAoZWxmMzJfaHBwYV9zZXR1cF9zZWN0aW9uX2xpc3RzKTogRGVjbGFyZS4KCShlbGYzMl9ocHBhX25leHRfaW5wdXRfc2VjdGlvbik6IERlY2xhcmUuCgoyMDAyLTA1LTA0ICBCb2IgQnlybmVzICA8YnlybmVzQGN1cmwuY29tPgoKCSogb3BuY2xzLmMgKF9iZmRfbmV3X2JmZF9jb250YWluZWRfaW4pOiBDaGVjayByZXR1cm4gdmFsdWUgb2YKCV9iZmRfbmV3X2JmZC4KCjIwMDItMDUtMDMgIEguSi4gTHUgIChoamxAZ251Lm9yZykKCgkqIGVsZnh4LW1pcHMuYyAobWlwc19lbGZfbGlua19oYXNoX2VudHJ5KTogQWRkIGZvcmNlZF9sb2NhbC4KCShtaXBzX2VsZl9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXRpYWxpemUgZm9yY2VkX2xvY2FsIHRvIGZhbHNlLgoJKG1pcHNfZWxmX3JlY29yZF9nbG9iYWxfZ290X3N5bWJvbCk6IENhbGwgX2JmZF9taXBzX2VsZl9oaWRlX3N5bWJvbAoJdG8gaGlkZSBhIGdsb2JhbCBzeW1ib2wuCgkoX2JmZF9taXBzX2VsZl9oaWRlX3N5bWJvbCk6IFJldHVybiBpZiBmb3JjZWRfbG9jYWwgaXMgdHJ1ZS4gU2V0Cglmb3JjZWRfbG9jYWwgdG8gdHJ1ZS4KCjIwMDItMDUtMDIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogRm9yY2UgcmVsYXRpdmUgcmVsb2NzCgl2cyBTSE5fVU5ERUYgdG8gemVyby4KCjIwMDItMDUtMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2hvd3RvX3JhdyA8Ul9QUEM2NF9TRUNUT0ZGPik6IENoYW5nZSB0byBhCgkxNiBiaXQgcmVsb2MuCgk8Ul9QUEM2NF9TRUNUT0ZGX0RTPjogTGlrZXdpc2UuCgkocHBjNjRfZWxmX3JlbG9jX3R5cGVfbG9va3VwKTogTWFwIGZyb20gQkZEX1JFTE9DXzE2X0JBU0VSRUwgdG8KCVNFQ1RPRkYgcmVsb2MuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2hvd3RvX3JhdyA8Ul9QUENfU0VDVE9GRj4pOiBDb3JyZWN0LgoJKHBwY19lbGZfcmVsb2NfdHlwZV9sb29rdXApOiBNYXAgZnJvbSBCRkRfUkVMT0NfMTZfQkFTRVJFTCB0bwoJU0VDVE9GRiByZWxvYy4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfYWRkcjE2X2hhX3JlbG9jKTogRGVsZXRlLgoJKHBwYzY0X2VsZl9oYV9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfYnJ0YWtlbl9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfc2VjdG9mZl9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfc2VjdG9mZl9oYV9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfdG9jX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl90b2NfaGFfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX3RvYzY0X3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl91bmhhbmRsZWRfcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX2hvd3RvX3Jhdyk6IFVzZSB0aGUgYWJvdmUuCgk8Ul9QUEM2NF9SRUxBVElWRT46IE1hcmsgcGNfcmVsYXRpdmUsIHBjcmVsX29mZnNldC4KCTxSX1BQQzY0X1NFQ1RPRkY+OiBOb3QgcGNfcmVsYXRpdmUgb3IgcGNyZWxfb2Zmc2V0LiAgRml4IGRzdF9tYXNrLgoJPFJfUFBDNjRfU0VDVE9GRl9EUz46IExpa2V3aXNlLgoJKElTX0FCU09MVVRFX1JFTE9DKTogVXBkYXRlLgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogQWRkIGhhdmVfdW5kZWZ3ZWFrLgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdC4KCShmdW5jX2Rlc2NfYWRqdXN0KTogU2V0IGhhdmVfdW5kZWZ3ZWFrLgoJKHBwYzY0X2VsZl9mdW5jX2Rlc2NfYWRqdXN0KTogQ2FsbCBmdW5jX2Rlc2NfYWRqdXN0IGVhcmxpZXIuICBPbmx5CglhZGQgdGhlIC5zZnByIGJsciB3aGVuIGhhdmVfdW5kZWZ3ZWFrLgoJKHBwYzY0X2VsZl9zZXR1cF9zZWN0aW9uX2xpc3RzKTogQ2hlY2sgaGFzaCB0YWJsZSBmbGF2b3VyLgoJKHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24pOiBNb3ZlIG91dHB1dF9zZWN0aW9uLT5vd25lciB0ZXN0IHRvCglwcGM2NGVsZi5lbS4KCShwcGM2NF9lbGZfc2V0X3RvYyk6IFJlbmFtZSB0byBwcGM2NF9lbGZfdG9jLCByZW1vdmUgaW5mbyBwYXJhbQoJYW5kIHJlbG9jYXRhYmxlIHRlc3QuICBSZXR1cm4gVE9Dc3RhcnQgYW5kIGRvbid0IHNldCBlbGZfZ3AuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBDb3JyZWN0IEJSVEFLRU4vQlJOVEFLRU4gYnJhbmNoCglvZmZzZXQgY2FsY3VsYXRpb24uICBBZGQgYXNzZXJ0IG9uIHdlYWsgc3ltIGJyYW5jaCB0d2Vha3MuCgkqIGVsZjY0LXBwYy5oIChwcGM2NF9lbGZfc2V0X3RvYyk6IERlbGV0ZS4KCShwcGM2NF9lbGZfdG9jKTogRGVjbGFyZS4KCShwcGM2NF9lbGZfbmV4dF9pbnB1dF9zZWN0aW9uKTogVXBkYXRlLgoKMjAwMi0wNS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHN5bXMuYyAoX2JmZF9zdGFiX3NlY3Rpb25fZmluZF9uZWFyZXN0X2xpbmUpOiBEb24ndCBib21iIG9uIE5VTEwKCWZpbGVfbmFtZS4KCjIwMDItMDUtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoQ1JPUl8xNTE1MTUsIENST1JfMzEzMTMxKTogRGVmaW5lLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIHRoZW0uICBEb24ndCBsb29rIGZvciBwbHQgY2FsbHMKCW9uIFJfUFBDNjRfQUREUjI0IHJlbG9jcy4gIFJlcXVpcmUgYSBub3Agb3Igbm8gbGluayByZWcgb24gcGx0CgljYWxsIGJyYW5jaGVzLiAgQ29ycmVjdCB1bmRlZmluZWQgd2VhayBkZXN0aW5hdGlvbi4KCShwcGM2NF9lbGZfZnVuY19kZXNjX2FkanVzdCk6IEFsd2F5cyBjcmVhdGUgYXQgbGVhc3Qgb25lIGJsciBpbgoJLnNmcHIsIGFuZCBjb3JyZWN0IGNhc2Ugd2hlcmUgZWl0aGVyIG9ubHkgc2F2ZWYqIG9yIHJlc3RmKiBpcwoJbmVlZGVkLgoKCUxvbmcgYnJhbmNoIHN0dWJzLCBtdWx0aXBsZSBzdHViIHNlY3Rpb25zLgoJKiBlbGY2NC1wcGMuaCAocHBjNjRfZWxmX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBEZWNsYXJlLgoJKHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24pOiBEZWNsYXJlLgoJKiBlbGY2NC1wcGMuYzogTW92ZSBsaW5rZXItb25seSBwcm90b3R5cGVzLgoJKFNUVUJfU1VGRklYKTogRGVmaW5lLgoJKGVudW0gcHBjX3N0dWJfdHlwZSk6IE5ldy4KCShzdHJ1Y3QgcHBjX3N0dWJfaGFzaF9lbnRyeSk6IE5ldy4KCShzdHJ1Y3QgcHBjX2JyYW5jaF9oYXNoX2VudHJ5KTogTmV3LgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX2VudHJ5KTogQWRkIHN0dWJfY2FjaGUsIG9oLgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogQWRkIHN0dWJfaGFzaF90YWJsZSBldGMuICBSZW1vdmUKCXNzdHViLiAgQWRkIHNicmx0LCBzcmVsYnJsdCwgaGFzXzE0Yml0X2JyYW5jaCwgc3R1Yl9pdGVyYXRpb24uCglSZW5hbWUgcGx0X292ZXJmbG93IHRvIHN0dWJfZXJyb3IuCgkocHBjX3N0dWJfaGFzaF9sb29rdXApOiBEZWZpbmUuCgkocHBjX2JyYW5jaF9oYXNoX2xvb2t1cCk6IERlZmluZS4KCShzdHViX2hhc2hfbmV3ZnVuYyk6IE5ldyBmdW5jdGlvbi4KCShicmFuY2hfaGFzaF9uZXdmdW5jKTogTmV3IGZ1bmN0aW9uLgoJKGxpbmtfaGFzaF9uZXdmdW5jKTogSW5pdCBuZXcgZmllbGRzLgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19zdHViX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2dldF9zdHViX2VudHJ5KTogTmV3IGZ1bmN0aW9uLgoJKHBwY19hZGRfc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShjcmVhdGVfbGlua2FnZV9zZWN0aW9ucyk6IFVzZSBiZmRfbWFrZV9zZWN0aW9uX2FueXdheS4gIENyZWF0ZQoJLmJyYW5jaF9sdCBhbmQgLnJlbGEuYnJhbmNoX2x0IHNlY3Rpb25zLiAgRG9uJ3QgY3JlYXRlIC5zdHViLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBTZXQgaGFzXzE0Yml0X2JyYW5jaCBvbiBSX1BQQzY0X1JFTDE0KiwKCWFuZCBzZXQgdXAgZm9yIHBsdCBjYWxsIHN0dWJzLiAgTGluayBmdW5jIGFuZCBmdW5jIGRlc2Mgc3ltcy4KCShwcGM2NF9lbGZfZ2Nfc3dlZXBfaG9vayk6IEhhbmRsZSBSRUwxNCogYXMgcGVyIFJFTDI0LgoJKGZ1bmNfZGVzY19hZGp1c3QpOiBBdm9pZCBoYXNoIGxvb2t1cCB3aGVuIGZ1bmMgZGVzYyBzeW0gYXZhaWxhYmxlCgl2aWEgc2hvcnRjdXQsIGFuZCBzZXQgbGlua3Mgd2hlbiBwcm9jZXNzaW5nLgoJKHBwYzY0X2VsZl9oaWRlX3N5bWJvbCk6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IERvbid0IGFsbG9jYXRlIHN0dWIgc2VjdGlvbiBoZXJlLgoJKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBIYW5kbGUgc2JybHQgYW5kIHNyZWxicmx0LgoJUmVtb3ZlIHNzdHViIGNvZGUuCgkocHBjX3R5cGVfb2Zfc3R1Yik6IE5ldyBmdW5jdGlvbi4KCShidWlsZF9vbmVfc3R1Yik6IERlbGV0ZS4KCShwcGNfYnVpbGRfb25lX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkocHBjX3NpemVfb25lX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX3NldHVwX3NlY3Rpb25fbGlzdHMpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX25leHRfaW5wdXRfc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4KCShncm91cF9zZWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCShnZXRfbG9jYWxfc3ltcyk6IE5ldyBmdW5jdGlvbi4KCShwcGM2NF9lbGZfc2l6ZV9zdHVicyk6IFJld3JpdGUuCgkocHBjNjRfZWxmX2J1aWxkX3N0dWJzKTogUmV3cml0ZS4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExvb2sgdXAgc3R1YiBlbnRyeSBmb3IgUkVMMjQKCXJlbG9jcy4gIERvbid0IHByb3BhZ2F0ZSBSRUwxNCogdG8gZHluYW1pYyBvYmplY3RzLiAgTG9vayBmb3IgbG9uZwoJYnJhbmNoIHN0dWJzIGlmIFJFTDE0KiBvciBSRUwyNCByZWxvY3Mgd29uJ3QgcmVhY2guCgkoYmZkX2VsZjY0X2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCjIwMDItMDQtMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcuYmZkOiBBZGQgc3VwcG9ydCBmb3IgcG93ZXJwYy0qLXdpbmRpc3MuCgoyMDAyLTA0LTMwICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogeGNvZmZsaW5rLmMgKHhjb2ZmX2xpbmtfYWRkX3N5bWJvbHMpOiBBbHdheXMgY29weSB1bmRlZiBDX0VYVAoJc3ltYm9sIG5hbWVzIGludG8gdGhlIGhhc2ggdGFibGUuCgoyMDAyLTA0LTI4ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29mZi1yczYwMDAuYyAoeGNvZmZfY2FsY3VsYXRlX3JlbG9jYXRpb24pIDogRnVuY3Rpb24gdGFibGUgZm9yCgljYWx1bGF0aW5nIHJlbG9jYXRpb25zLgoJKHhjb2ZmX2NvbXBsYWluX292ZXJmbG93KSA6IEZ1bmN0aW9uIHRhYmxlIGZvciByZWxvY2F0aW9uIGVycm9ycy4KCSh4Y29mZl9wcGNfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSByZWxvY2F0aW9uIGFuZCBjb21wbGFpbiBmdW5jdGlvbgoJdGFibGVzLgoJKHhjb2ZmX2NvbXBsYWluX292ZXJmbG93X3Vuc2lnbmVkX2Z1bmMpOiBOZXcgY29tcGxhaW4gZnVuY3Rpb24uCgkoeGNvZmZfY29tcGxhaW5fb3ZlcmZsb3dfc2lnbmVkX2Z1bmMpOiBTYW1lLgoJKHhjb2ZmX2NvbXBsYWluX292ZXJmbG93X2JpdGZpZWxkX2Z1bmMpOiBTYW1lLgoJKHhjb2ZmX2NvbXBsYWluX292ZXJmbG93X2RvbnRfZnVuYyk6IFNhbWUuCgkoeGNvZmZfcmVsb2NfdHlwZV9jcmVsKTogTmV3IHJlY290IGZ1bmN0aW9uLgoJKHhjb2ZmX3JlbG9jX3R5cGVfYnIpOiBTYW1lLgoJKHhjb2ZmX3JlbG9jX3R5cGVfYmEpOiBTYW1lLgoJKHhjb2ZmX3JlbG9jX3R5cGVfdG9jKTogU2FtZS4KCSh4Y29mZl9yZWxvY190eXBlX3JlbCk6IFNhbWUuCgkoeGNvZmZfcmVsb2NfdHlwZV9uZWcpOiBTYW1lLgoJKHhjb2ZmX3JlbG9jX3R5cGVfcG9zKTogU2FtZS4KCSh4Y29mZl9yZWxvY190eXBlX2ZhaWwpOiBTYW1lLgoJKHhjb2ZmX3JlbG9jX3R5cGVfbm9vcCk6IFNhbWUuCgkqIGxpYnhjb2ZmLmggOiBEZWNsYXJlIGNvbW1vbiBwYXJ0cyBmb3IgeGNvZmY2NC4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIHJlbG9jYXRpb24KCWFuZCBjb21wbGFpbiBmdW5jdGlvbiB0YWJsZXMuCgoyMDAyLTA0LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQteDg2LTY0LmMgKHN0cnVjdCBlbGY2NF94ODZfNjRfZHluX3JlbG9jcyk6IENvbW1lbnQgdHlwby4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2ZpbmFsX2xpbmspOiBGb3JtYXR0aW5nLgoKMjAwMi0wNC0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG9wbmNscy5jIChiZmRfbWFrZV9yZWFkYWJsZSk6IENhbGwgYmZkX3NlY3Rpb25fbGlzdF9jbGVhci4KCSogeGNvZmZsaW5rLmMgKHhjb2ZmX2xpbmtfYWRkX2R5bmFtaWNfc3ltYm9scyk6IExpa2V3aXNlLgoKCSogZWxmbGluay5oIChlbGZfYmZkX2ZpbmFsX2xpbmspOiBFbnN1cmUgaW5wdXQgYmZkIGNsYXNzIGlzIHRoZQoJc2FtZSBhcyB0aGUgb3V0cHV0IGJlZm9yZSBjYWxsaW5nIGVsZl9saW5rX2lucHV0X2JmZC4KCgkqIGNvZmZjb2RlLmggKGNvZmZfY29tcHV0ZV9zZWN0aW9uX2ZpbGVfcG9zaXRpb25zKTogU2V0CglzZWN0aW9uX3RhaWwgYWZ0ZXIgc2h1ZmZsaW5nIHNlY3Rpb24gbGlzdC4KCjIwMDItMDQtMjQgIENocmlzdGlhbiBHcm9lc3NsZXIgPGNocmlzQGdyb2Vzc2xlci5vcmc+CgoJKiBjb2ZmLXo4ay5jIChleHRyYV9jYXNlKTogRml4IFJfSU1NMzIgcmVsb2NhdGlvbnM6IFRoZQoJYWRkcmVzc2VzIGFyZSAyM2JpdCB3aXRoIGEgc3BlY2lhbCBsYXlvdXQsIG5vdCBwbGFpbiAzMmJpdAoJdmFsdWVzLiAgUHJldmVudCByZWxvY2F0aW9uIG9mIGltbWVkaWF0ZSB2YWx1ZXMuCgoyMDAyLTA0LTI0ICBDaHJpcyBHLiBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBJZiBNRE1YIG9yCglNSVBTLTE2IEFTRSBmbGFncyBhcmUgc2V0LCBwcmludCBzb21ldGhpbmcgdG8gaW5kaWNhdGUgdGhhdC4KCjIwMDItMDQtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfdHlwZV9vZl9zdHViKTogQ29ycmVjdCBhbmQgc2ltcGxpZnkgY29uZGl0aW9uCgl1bmRlciB3aGljaCBhIHBsdCBjYWxsIHN0dWIgaXMgdXNlZC4KCShmaW5hbF9saW5rX3JlbG9jYXRlKTogU2ltaWxhcmx5LgoJKGFsbG9jYXRlX3BsdF9zdGF0aWMpOiBDbGVhciBoLXBsYWJlbCBleGNlcHQgd2hlbiBwbHQgZW50cnkgaXMKCWV4Y2x1c2l2ZWx5IHVzZWQgZm9yIGEgcGxhYmVsLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IFVzZSB0aGUgYWJvdmUgdG8gc2ltcGxpZnkgcGx0IHNpemluZy4KCShzdHJ1Y3QgZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGUpOiBBZGQgaGFzXzIyYml0X2JyYW5jaC4KCShlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0LgoJKEJMMjJfUlApOiBEZWZpbmUuCgkoaHBwYV9idWlsZF9vbmVfc3R1Yik6IFVzZSBCTDIyX1JQIGlmIGhhc18yMmJpdF9icmFuY2guCgkoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBTZXQgaGFzXzIyYml0X2JyYW5jaC4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBSZW1vdmUgZGVidWcgbWVzc2FnZS4KCShmaW5hbF9saW5rX3JlbG9jYXRlKTogTGlrZXdpc2UuCgoyMDAyLTA0LTIyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBEb24ndCBidWlsZAoJc2VhcmNoIHRhYmxlIGlmIHNvbWUgRkRFIGlzIERXX0VIX1BFX2FsaWduZWQgZW5jb2RlZCBlaXRoZXIuCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZSk6IEhhbmRsZSB0ZXJtaW5hdGluZyBGREUgc3BlY2lhbGx5LgoKMjAwMi0wNC0yMiAgUmljaGFyZCBTbWl0aCAgPHJpY2hhcmRAZXgtcGFycm90LmNvbT4KCSAgICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi1laC1mcmFtZS5jIChzdHJ1Y3QgZWhfY2llX2ZkZSk6IEFkZCBwZXJfZW5jb2RpbmdfcmVsYXRpdmUuCgkoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogU2V0IGl0IGZvciBDSUVzIHdpdGggcGNyZWwKCWVuY29kZWQgcGVyc29uYWxpdHkuCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZSk6IEFkanVzdCBwY3JlbCBlbmNvZGVkIHBlcnNvbmFsaXR5Cglmb3IgQ0lFL0ZERSByZW1vdmFsLgoKMjAwMi0wNC0yMCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmY2NC1yczYwMDAuYyAoX2JmZF94Y29mZjY0X3N3YXBfYXV4X2luKTogRml4IENfRklMRSBhdXhlbnQuCgoyMDAyLTA0LTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXJjaHVyZXMuYyAoYmZkX2xvb2t1cF9hcmNoKTogTW92ZSB0aGUgbGlzdCBvcmRlciBjb21tZW50Li4KCShzdHJ1Y3QgYmZkX2FyY2hfaW5mbyk6IC4udG8gd2hlcmUgaXQgYmVsb25ncy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKCSogYXJjaHVyZXMuYyAoYmZkX2xvb2t1cF9hcmNoKTogQWRkIGNvbW1lbnQgb24gbGlzdCBvcmRlci4KCShiZmRfZGVmYXVsdF9zZXRfYXJjaF9tYWNoKTogVXNlIGJmZF9sb29rdXBfYXJjaC4KCSogY3B1LXBvd2VycGMuYyAoYmZkX3Bvd2VycGNfYXJjaHMpOiBSZS1vcmRlciBzbyB0aGF0IHRoZSBkZWZhdWx0CglpcyBhbHdheXMgYXQgaGVhZCBvZiBsaXN0LgoKMjAwMi0wNC0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb2ZmLWFybS5jIChjb2ZmX3RodW1iX3BjcmVsXzEyLCBjb2ZmX3RodW1iX3BjcmVsXzksCglpbnNlcnRfdGh1bWJfYnJhbmNoLCByZWNvcmRfdGh1bWJfdG9fYXJtX2dsdWUpOiBTdXBwcmVzcwoJZGVmaW5pdGlvbiBvZiB0aGVzZSBmdW5jdGlvbnMgZm9yIEFSTV9XSU5DRSBidWlsZHMgYXMgdGhleSBhcmUKCW5vdCB1c2VkLgoJKFNXQVBfSU5fUkVMT0NfT0ZGU0VULCBTV0FQX09VVF9SRUxPQ19PRkZTRVQpOiBEbyBub3QgZGVmaW5lCglmb3IgQVJNX1dJTkNFIGJ1aWxkcy4KCjIwMDItMDQtMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29mZi1hcm0uYyAoYmZkX2FybV9wcm9jZXNzX2JlZm9yZV9hbGxvY2F0aW9uKToKCjIwMDItMDQtMTcgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogY3B1LXNoLmMgKHNjYW5fbWFjaCk6IERlbGV0ZS4KCShhcmNoX2luZm9fc3RydWN0KTogUmVwbGFjZSBzY2FuX21hY2ggd2l0aCBiZmRfZGVmYXVsdF9zY2FuLgoJKGJmZF9zaF9hcmNoKTogTGlrZXdpc2UuCgoyMDAyLTA0LTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGloZXguYyAoaWhleF93cml0ZV9vYmplY3RfY29udGVudHMpOiBGaXggY2hlY2sgZm9yIHJlY29yZHMKCWNyb3NzaW5nIDY0SyBib3VuZGFyaWVzLgoKMjAwMi0wNC0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfYWRkX3N5bWJvbF9ob29rKTogQ2hlY2sgdGhlIGhhc2ggdGFibGUKCXR5cGUgcmF0aGVyIHRoYW4ganVzdCBhc3N1bWluZyBlbnRyaWVzIGFyZSBFTEYuCgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGZfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9hZGRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfYWRkX3N5bWJvbF9ob29rKTogVXNlIGJmZF9saW5rX2hhc2hfZW50cnkKCXJhdGhlciB0aGFuIGVsZl9saW5rX2hhc2hfZW50cnkuCgoyMDAyLTA0LTE1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZjMyX29iamVjdF9wKTogUmV2ZXJ0IDA0MDQgZnJhZ21lbnQ6IGFsbG93CgluMzIgYmluYXJpZXMuCgoyMDAyLTA0LTE1ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIG9wbmNscy5jIChiZmRfY2xvc2UpOiBXcml0ZSBjb250ZW50cyBpZiB3cml0ZWFibGUuCglNaW5vciBmb3JtYXR0aW5nIHRpZHktdXBzLgoKMjAwMi0wNC0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2FkZF9zeW1ib2xfaG9vayk6IENoZWNrIHRoZSBoYXNoIHRhYmxlIHR5cGUuCgoyMDAyLTA0LTEyICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIGJmZC1pbi5oIChiZmRfZ2V0X3NlY3Rpb25fbG1hKTogTmV3IGFjY2VzcyBtYWNyby4KCU1pbm9yIHdoaXRlLXNwYWNlIGZpeC11cC4KCjIwMDItMDQtMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYuYyAocHJlcF9oZWFkZXJzKTogRG9uJ3QgemVybyBFSV9PU0FCSSwgRUlfQUJJVkVSU0lPTiBvcgoJaGVhZGVyIHBhZC4KCjIwMDItMDQtMDkgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogZWxmYXJtLW5hYmkuYyAoZWxmMzJfYXJtX2hvd3RvX3RhYmxlKTogRml4IEFCUzE2IG1hc2tzLgoKMjAwMi0wNC0wOSAgQ2FzcGVyIFMuIEhvcm5zdHJ1cCA8Y2hvcm5zQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvZmZjb2RlLmggKGNvZmZfcmVhZF93b3JkKTogTmV3LgoJKGNvZmZfY29tcHV0ZV9jaGVja3N1bSk6IE5ldy4KCShjb2ZmX2FwcGx5X2NoZWNrc3VtKTogTmV3LgoJKGNvZmZfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogQ2FsbCBjb2ZmX2FwcGx5X2NoZWNrc3VtICgpIHRvCglhcHBseSBjaGVja3N1bSB0byBQRSBpbWFnZS4KCjIwMDItMDQtMDggIFJhbmRvbHBoIENodW5nICA8dGF1c3FAZGViaWFuLm9yZz4KCgkqIGVsZjMyLWhwcGEuYyAoaHBwYV91bndpbmRfZW50cnlfY29tcGFyZSk6IE1vdmUgdG8gZWxmLWhwcGEuaC4KCShlbGYzMl9ocHBhX2ZpbmFsX2xpbmspOiBTcGxpdCBvdXQgc29ydGluZyBsb2dpYyB0by4uCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX3NvcnRfdW53aW5kKTogLi5oZXJlLgoJKGVsZl9ocHBhX2ZpbmFsX2xpbmspOiBDYWxsIGVsZl9ocHBhX3NvcnRfdW53aW5kLgoKMjAwMi0wNC0wNyAgQW5kcmV3IENhZ25leSAgPGFjMTMxMzEzQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBtaXNzaW5nIGBgfCcnIHRvIHBvd2VycGMtKi1haXg0Lls0LTldKgoJcGF0dGVybi4KCSogY29uZmlndXJlOiBSZS1nZW5lcmF0ZS4KCjIwMDItMDQtMDcgIEFuZHJldyBDYWduZXkgIDxhYzEzMTMxM0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBPbmx5IGRlZmluZSBBSVhfQ09SRV9EVU1QWF9DT1JFIHdoZW4gQUlYIHZlcnNpb24KCWlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gNC4zLjMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCUZpeCBQUiBnZGIvMzQ0LgoKMjAwMi0wNC0wNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX2hvd3RvX3RhYmxlKSA8Ul9DUklTXzE2X1BDUkVMLAoJUl9DUklTXzMyX1BDUkVMPjogRml4IHR5cG8gaW4gbmFtZS4KCShjcmlzX2VsZl9jaGVja19yZWxvY3MpOiBBbHdheXMgY3JlYXRlIC5yZWxhLmdvdCBoZXJlIHdoZW4KCVJfQ1JJU18xNl9HT1RQTFQgb3IgUl9DUklTXzMyX0dPVFBMVCBpcyBzZWVuLgoJKGVsZl9jcmlzX2FkanVzdF9nb3RwbHRfdG9fZ290KTogRG9uJ3QgY3JlYXRlIC5yZWxhLmdvdCBoZXJlOwoJYXNzdW1lIGl0J3MgY3JlYXRlZC4KCjIwMDItMDQtMDQgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogYW91dC1hZG9iZS5jIChhb3V0XzMyX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogYW91dC10YXJnZXQuaCAoTVlfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogQ29uZGl0aW9uYWxseQoJZGVmaW5lLgoJKiBhb3V0LXRpYzMwLmMgKE1ZX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IExpa2V3aXNlLgoJKiBiZmQuYyAoYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBiaW5hcnkuYyAoYmluYXJ5X2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogYm91dC5jIChiX291dF9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGNvZmYtcnM2MDAwLmMgKHJzNjAwMGNvZmZfdmVjKTogSW5jbHVkZQoJX2JmZF9nZW5lcmljX2xpbmtfaGFzaF90YWJsZV9mcmVlLgoJKHBtYWNfeGNvZmZfdmVjKTogTGlrZXdpc2UuCgkqIGNvZmY2NC1yczYwMDAuYyAocnM2MDAwY29mZjY0X3ZlYyk6IExpa2V3aXNlLgoJKGFpeDVjb2ZmNjRfdmVjKTogTGlrZXdpc2UuCgkqIGNvZmZjb2RlLmggKGNvZmZfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogQ29uZGl0aW9uYWxseSBkZWZpbmUuCgkqIGVsZi1tMTAzMDAuYyAoZWxmMzJfbW4xMDMwMF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBOZXcgZnVuY3Rpb24uCgkoYmZkX2VsZjMyX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogZWxmeHgtdGFyZ2V0LmggKGJmZF9lbGZOTl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBDb25kaXRpb25hbGx5CglkZWZpbmUuCgkqIGkzODZtc2Rvcy5jIChtc2Rvc19iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIGkzODZvczlrLmMgKG9zOWtfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBpZWVlLmMgKGllZWVfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBpaGV4LmMgKGloZXhfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBsaWJiZmQtaW4uaCAoX2JmZF9ub2xpbmtfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKF9iZmRfZ2VuZXJpY19saW5rX2hhc2hfdGFibGVfZnJlZSk6IEFkZCBwcm90b3R5cGUuCgkqIGxpYmNvZmYtaW4uaCAoX2JmZF94Y29mZl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBBZGQgcHJvdG90eXBlLgoJKiBsaWJlY29mZi5oIChfYmZkX2Vjb2ZmX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogbGlua2VyLmMgKF9iZmRfZ2VuZXJpY19saW5rX2hhc2hfdGFibGVfZnJlZSk6IE5ldyBmdW5jdGlvbi4KCSogbW1vLmMgKG1tb19iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIG5sbS10YXJnZXQuaCAobmxtX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogb2FzeXMuYyAob2FzeXNfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBwcGNib290LmMgKHBwY2Jvb3RfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBzb20uYyAoc29tX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogc3JlYy5jIChzcmVjX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogdGVraGV4LmMgKHRla2hleF9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWZpbmUuCgkqIHZlcnNhZG9zLmMgKHZlcnNhZG9zX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlZmluZS4KCSogdm1zLmMgKHZtc19iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBOZXcgZnVuY3Rpb24uCgkqIHhjb2ZmbGluay5jIChfYmZkX3hjb2ZmX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSk6IE5ldyBmdW5jdGlvbi4KCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBVc2UgYmZkX21hbGxvYwoJaW5zdGVhZCBvZiBiZmRfYWxsb2MuCgkqIGNvZmYtaDgzMDAuYyAoaDgzMDBfY29mZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGNvZmYtbWNvcmUuYyAoY29mZl9tY29yZV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGNvZmYtcHBjLmMgKHBwY19jb2ZmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogY29mZmxpbmsuYyAoX2JmZF9jb2ZmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWNvZmYuYyAoX2JmZF9lY29mZl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGYtbTEwMzAwLmMgKGVsZjMyX21uMTAzMDBfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jIChlbGZfY3Jpc19saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkqIGxpbmtlci5jIChfYmZkX2dlbmVyaWNfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBtNjhrbGludXguYyAobGludXhfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiBzcGFyY2xpbnV4LmMgKGxpbnV4X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCSogc3Vub3MuYyAoc3Vub3NfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKiB4Y29mZmxpbmsuYyAoX2JmZF94Y29mZl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoKCSogdGFyZ2V0cy5jOiBBZGQgX2JmZF9saW5rX2hhc2hfdGFibGVfZnJlZSB0byB4dmVjLgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogbGliY29mZi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wNC0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGRlcC1pbi5zZWQ6IENvcGUgd2l0aCBhYnNvbHV0ZSBwYXRocy4KCSogTWFrZWZpbGUuYW0gKGRlcC5zZWQpOiBTdWJzdCBUT1BESVIsIGFuZCBub3QgSU5DRElSLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb2ZmLWFybS5jOiBGaXggY29weXJpZ2h0IGRhdGUuCgkqIGNwdS1oODMwMC5jOiBMaWtld2lzZS4KCSogY3B1LWkzNzAuYzogTGlrZXdpc2UuCgkqIGNwdS1zMzkwLmM6IExpa2V3aXNlLgoJKiBjcHUtbWlwcy5jOiBMaWtld2lzZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNC0wNCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgZWxmeHgtbWlwcy5jIHRvIHRoZSBrbm93biBiYWNrZW5kcy4KCShlbGYzMi1taXBzLmxvKTogcmVtb3ZlIGRlcGVuZGVuY3kgdG8gY29mZi9leHRlcm5hbC5oLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLmluOiBBZGQgZWxmeHgtbWlwcy5sbyB0byBhbGwgdmVjdG9ycyB1c2luZyBlbGYzMi1taXBzLmxvCglSZW1vdmUgZWxmMzItbWlwcy5sbyBmcm9tIDY0IGJpdCB2ZWN0b3JzLiBVcGRhdGUgZGVwZW5kZW5jaWVzCglhY2NvcmRpbmdseS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYtYmZkLmg6IE1vdmUgYWxsIE1JUFMgRUxGIHNwZWNpZmljIHByb3RvdHlwZXMgdG8gZWxmeHgtbWlwcy5oLgoJKGlyaXhfY29tcGF0X3QpOiBJUklYIGNvbXBhdGliaWxpdHkgbGV2ZWwsIG1vdmVkIGZyb20gZWxmMzItbWlwcy5jLgoJKGVsZl9iYWNrZW5kX21pcHNfaXJpeF9jb21wYXQsIGVsZl9iYWNrZW5kX21pcHNfcnR5cGVfdG9faG93dG8pOiBOZXcKCU1JUFMgc3BlY2lmaWMgYmFja2VuZCBmdW5jdGlvbnMuCgkqIGVsZjMyLW1pcHMuYzogTW92ZWQgbW9zdCBjb2RlIHRvIGVsZnh4LW1pcHMuYy4KCShtaXBzX2VsZl9oaTE2X3JlbG9jKTogUmVuYW1lIGZyb20gX2JmZF9taXBzX2VsZl9oaTE2X3JlbG9jIGFuZCBtYWtlCglzdGF0aWMuCgkobWlwc19lbGZfbG8xNl9yZWxvYyk6IExpa2V3aXNlLCB3YXMgX2JmZF9taXBzX2VsZl9sbzE2X3JlbG9jLgoJKG1pcHNfZWxmX2dvdDE2X3JlbG9jKTogTGlrZXdpc2UsIHdhcyBfYmZkX21pcHNfZWxmX2dvdDE2X3JlbG9jLgoJKG1pcHNfZWxmX2dwcmVsMzJfcmVsb2MpOiBMaWtld2lzZSwgd2FzIF9iZmRfbWlwc19lbGZfZ3ByZWwzMl9yZWxvYy4KCShtaXBzX2VsZjMyX3J0eXBlX3RvX2hvd3RvKTogUmVuYW1lIGZyb20gbWlwc19ydHlwZV90b19ob3d0by4gQ2hhbmdlZAoJaW50ZXJmYWNlIHRvIGFsbG93IHNlbGVjdGlvbiBvZiB0aGUgcmlnaHQgUkVMIG9yIFJFTEEgaG93dG8gdGFibGUuCgkobWlwc19lbGYzMl9vYmplY3RfcCk6IFJlbmFtZSBmcm9tIF9iZmRfbWlwc19lbGZfb2JqZWN0X3AgYW5kIG1hZGUKCXN0YXRpYy4gTGV0IGl0IHJlZnVzZSBuMzIgb2JqZWN0cy4KCShlbGYzMl9taXBzX2dyb2tfcHJzdGF0dXMpOiBSZW5hbWUgZnJvbSBfYmZkX2VsZjMyX21pcHNfZ3Jva19wcnN0YXR1cy4KCShlbGYzMl9taXBzX2dyb2tfcHNpbmZvKTogUmVuYW1lIGZyb20gX2JmZF9lbGYzMl9taXBzX2dyb2tfcHNpbmZvLgoJKGVsZjMyX21pcHNfZGlzY2FyZF9pbmZvKTogUmVuYW1lIGZyb20gX2JmZF9lbGYzMl9taXBzX2Rpc2NhcmRfaW5mby4KCShlbGYzMl9taXBzX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzKTogUmVuYW1lIGZyb20KCV9iZmRfZWxmMzJfbWlwc19pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcy4KCShlbGYzMl9taXBzX3dyaXRlX3NlY3Rpb24pOiBSZW5hbWUgZnJvbSBfYmZkX2VsZjMyX21pcHNfd3JpdGVfc2VjdGlvbi4KCShlbGYzMl9taXBzX2lyaXhfY29tcGF0KTogTmV3IGZ1bmN0aW9uLCByZXBsYWNlcyBJUklYX0NPTVBBVC4KCShlbGZfbWlwc19ob3d0b190YWJsZV9yZWxhKTogUmVtb3ZlLgoJKiBlbGY2NC1taXBzLmM6IE1vdmVkIG1vc3QgY29kZSB0byBlbGZ4eC1taXBzLmMuCgkoYmZkX2VsZjY0X2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IE1ha2Ugc3RhdGljLgoJKG1pcHNfZWxmNjRfcnR5cGVfdG9faG93dG8pOiBOZXcgZnVuY3Rpb24uCgkobWlwc19lbGY2NF9vYmplY3RfcCk6IExpa2V3aXNlLgoJKGVsZjY0X21pcHNfaXJpeF9jb21wYXQpOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jOiBOZXcgZmlsZSBjb250YWluaW5nIGNvbW1vbiBjb2RlIG1lcmdlZCB0b2dldGhlciBmcm9tCgllbGYzMi1taXBzLmMgYW5kIGVsZjY0LW1pcHMuYy4KCSogZWxmeHgtbWlwcy5oOiBOZXcgZmlsZSBjb250YWluaW5nIE1JUFMgc3BlY2lmaWMgcHJvdG90eXBlcyBmcm9tCgllbGYtYmZkLmguCgkqIGVsZnh4LXRhcmdldC5oOiBBZGQgaGFuZGxpbmcgZm9yIGVsZl9iYWNrZW5kX21pcHNfaXJpeF9jb21wYXQgYW5kCgllbGZfYmFja2VuZF9taXBzX3J0eXBlX3RvX2hvd3RvLgoKMjAwMi0wNC0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHNyZWMuYyAoTUFYQ0hVTkssIENodW5rKTogUmV2aXNlIGNvbW1lbnRzLgoJKHNyZWNfd3JpdGVfcmVjb3JkKTogQ29ycmVjdCBidWZmZXIgc2l6ZS4KCShzcmVjX3dyaXRlX2hlYWRlcik6IERvIHdpdGhvdXQgaW50ZXJtZWRpYXRlIGJ1ZmZlci4KCShzcmVjX3dyaXRlX3NlY3Rpb24pOiBWYWxpZGF0ZSBDaHVuay4KCShzcmVjX3dyaXRlX3Rlcm1pbmF0b3IpOiBQYXNzIE5VTEwgaW5zdGVhZCBvZiBkdW1teSBidWZmZXIuCgkoc3JlY193cml0ZV9zeW1ib2xzKTogUGFzcyBmaWxlIGFuZCBzeW1ib2wgbmFtZXMgZGlyZWN0bHkgdG8KCWJmZF9id3JpdGUgc28gc3ByaW50ZiB3b24ndCBvdmVyZmxvdyBidWZmZXIuCgoyMDAyLTA0LTAzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBlbWl0IGR5bmFtaWMKCVBDIHJlbGF0aXZlIHJlbG9jcyBhZ2FpbnN0IGhpZGRlbiBzeW1ib2xzLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTA0LTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKF9iZmRfZWxmX21ha2Vfc2VjdGlvbl9mcm9tX3NoZHIpOiBXaGVuIHNldHRpbmcgc2VjdGlvbgoJTE1BcywgbG9vcCBvdmVyIHNlZ21lbnRzIHVudGlsIHBfdmFkZHIgYW5kIHBfbWVtc3ogc3BlY2lmeSBhbgoJZXh0ZW50IGVuY2xvc2luZyB0aGUgc2VjdGlvbi4KCjIwMDItMDQtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogaWhleC5jIChpaGV4X3dyaXRlX29iamVjdF9jb250ZW50cyk6IERvIG5vdCBhbGxvdyByZWNvcmRzIHRvCgljcm9zcyBhIDY0SyBib3VuZGFyeSAtIHdyYXAgaWYgbmVjZXNzYXJ5LgoKMjAwMi0wNC0wMSAgTmF0aGFuIFdpbGxpYW1zICA8bmF0aGFud0B3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGVsZi5jIChlbGZjb3JlX25ldGJzZF9nZXRfbHdwaWQpOiBGaXggb2ZmLWJ5LW9uZSBlcnJvcgoJd2hpY2ggY2F1c2VkIHRoZSByZXR1cm5lZCBMV1AgSUQgdG8gYWx3YXlzIGJlIDAuCgoyMDAyLTA0LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmMzItc3BhcmMuYyAoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IE5ldy4KCShlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIGl0IHRvIGZpZ3VyZSBvdXQgd2hlbiB0bwoJaW5pdGlhbGl6ZSAuZ290IGVudHJpZXMuCgkqIGVsZjY0LXNwYXJjLmM6IFNpbWlsYXJseS4KCjIwMDItMDMtMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsaW5rZXIuYyAobGlua19hY3Rpb24pOiBJZ25vcmUgZHVwbGljYXRlIHdhcm5pbmcgc3ltcy4KCShfYmZkX2dlbmVyaWNfbGlua193cml0ZV9nbG9iYWxfc3ltYm9sKTogRm9sbG93IHdhcm5pbmcgc3ltYm9sIGxpbmsuCgkqIGVsZmxpbmsuaCAoZWxmX2FkanVzdF9keW5zdHJfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGVsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfZXhwb3J0X3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2ZpbmRfdmVyc2lvbl9kZXBlbmRlbmNpZXMpOiBMaWtld2lzZS4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBMaWtld2lzZS4KCShlbGZfbGlua19zZWNfbWVyZ2Vfc3ltcyk6IExpa2V3aXNlLgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBMaWtld2lzZS4KCShlbGZfZ2Nfc3dlZXBfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2djX3Byb3BhZ2F0ZV92dGFibGVfZW50cmllc191c2VkKTogTGlrZXdpc2UuCgkoZWxmX2djX3NtYXNoX3VudXNlZF92dGVudHJ5X3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZl9nY19hbGxvY2F0ZV9nb3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGVsZl9jb2xsZWN0X2hhc2hfY29kZXMpOiBMaWtld2lzZS4KCSogZWxmbGluay5jIChlbGZfbGlua19yZW51bWJlcl9oYXNoX3RhYmxlX2R5bnN5bXMpOiBMaWtld2lzZS4KCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfdW5tYXJrX3VzZWxlc3NfZHluYW1pY19zeW1ib2xzKTogTGlrZXdpc2UuCgkoZWxmX2hwcGFfcmVtYXJrX3VzZWxlc3NfZHluYW1pY19zeW1ib2xzKTogTGlrZXdpc2UuCgkqIGVsZi1tMTAzMDAuYyAoZWxmMzJfbW4xMDMwMF9maW5pc2hfaGFzaF90YWJsZV9lbnRyeSk6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2Rpc2NhcmRfY29waWVzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYyAoZWxmX2NyaXNfYWRqdXN0X2dvdHBsdF90b19nb3QpOiBMaWtld2lzZS4KCShlbGZfY3Jpc19kaXNjYXJkX2V4Y2Vzc19kc29fZHluYW1pY3MpOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChjbG9iYmVyX21pbGxpY29kZV9zeW1ib2xzKTogTGlrZXdpc2UuCgkobWFya19QSUNfY2FsbHMpOiBMaWtld2lzZS4KCShhbGxvY2F0ZV9wbHRfc3RhdGljKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocmVhZG9ubHlfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoYWxsb2NhdGVfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkocmVhZG9ubHlfZHlucmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfYWRqdXN0X2R5bmluZHgpOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19kaXNjYXJkX2NvcGllcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX291dHB1dF9leHRzeW0pOiBMaWtld2lzZS4KCShtaXBzX2VsZl9zb3J0X2hhc2hfdGFibGVfZik6IExpa2V3aXNlLgoJKG1pcHNfZWxmX2NoZWNrX21pcHMxNl9zdHVicyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHJlYWRvbmx5X2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfZGlzY2FyZF9jb3BpZXMpOiBMaWtld2lzZS4KCSogZWxmMzIteHN0b3JteTE2LmMgKHhzdG9ybXkxNl9yZWxheF9wbHRfY2hlY2spOiBMaWtld2lzZS4KCSh4c3Rvcm15MTZfcmVsYXhfcGx0X3JlYWxsb2MpOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfY2FsY19nb3Rfb2Zmc2V0c19mb3Jfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfb3V0cHV0X2V4dHN5bSk6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfbWFya19leHBvcnRlZF9mdW5jdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X3NvcnRfaGFzaF90YWJsZV9mKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9jaGVja19taXBzMTZfc3R1YnMpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X291dHB1dF9leHRzeW0pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKGZ1bmNfZGVzY19hZGp1c3QpOiBMaWtld2lzZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShyZWFkb25seV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShyZWFkb25seV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2Rpc2NhcmRfY29waWVzKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCShyZWFkb25seV9keW5yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2dsb2JhbF9keW5fc3ltX3RodW5rKTogTGlrZXdpc2UuCgkqIGFvdXR4LmggKGFvdXRfbGlua193cml0ZV9vdGhlcl9zeW1ib2wpOiBMaWtld2lzZS4KCSogY29mZmxpbmsuYyAoX2JmZF9jb2ZmX3dyaXRlX3Rhc2tfZ2xvYmFscyk6IExpa2V3aXNlLgoJKF9iZmRfY29mZl93cml0ZV9nbG9iYWxfc3ltKTogTGlrZXdpc2UuCgkqIGkzODZsaW51eC5jIChsaW51eF90YWxseV9zeW1ib2xzKTogTGlrZXdpc2UuCgkqIG02OGtsaW51eC5jIChsaW51eF90YWxseV9zeW1ib2xzKTogTGlrZXdpc2UuCgkqIHNwYXJjbGludXguYyAobGludXhfdGFsbHlfc3ltYm9scyk6IExpa2V3aXNlLgoJKiBwZHAxMS5jIChhb3V0X2xpbmtfd3JpdGVfb3RoZXJfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHN1bm9zLmMgKHN1bm9zX3NjYW5fZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogeGNvZmZsaW5rLmMgKHhjb2ZmX2J1aWxkX2xkc3ltcyk6IExpa2V3aXNlLgoJKHhjb2ZmX3dyaXRlX2dsb2JhbF9zeW1ib2wpOiBMaWtld2lzZS4KCgkqIGNvZmZsaW5rLmMgKF9iZmRfY29mZl9maW5hbF9saW5rKTogRm9ybWF0dGluZy4KCSogY3B1LW1pcHMuYyAobWlwc19jb21wYXRpYmxlKTogTWFrZSBzdGF0aWMsIHByb3RvdHlwZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBGb3JtYXR0aW5nLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX291dHB1dF9leHRzeW0pOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X3NvcnRfaGFzaF90YWJsZSk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2ZpbmRfdmVyc2lvbl9kZXBlbmRlbmNpZXMpOiBSZW1vdmUgZHVwbGljYXRlCglwcm90b3R5cGUuCgoyMDAyLTAzLTI3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvZmYtYXJtLmMgKFNXQVBfSU5fUkVMT0NfT0ZGU0VUKTogRGVmaW5lLgoJKFNXQVBfT1VUX1JFTE9DX09GRlNFVCk6IERlZmluZS4KCjIwMDItMDMtMjcgIEdyZWdvcnkgU3RldWNrIDxncmVnQG5lc3QuY3g+CgoJKiBlbGYuYyAoX2JmZF9lbGZfZ2V0X3N5bXRhYl91cHBlcl9ib3VuZCk6IExlYXZlIHNwYWNlIGZvcgoJdGVybWluYXRpbmcgTlVMTCBpZiBlbXB0eSBzeW1ib2wgdGFibGUuCgkoX2JmZF9lbGZfZ2V0X2R5bmFtaWNfc3ltdGFiX3VwcGVyX2JvdW5kKTogTGlrZXdpc2UuCgoyMDAyLTAzLTI2ICBILkouIEx1ICAoaGpsQGdudS5vcmcpCgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IFJldmVydCB0aGUgbGFzdCBjaGFuZ2Ugc2luY2UKCXRoZSBnY2MgZXhjZXB0aW9uIGhhbmRsaW5nIGlzbid0IGZpeGVkIHlldC4KCjIwMDItMDMtMjYgIEguSi4gTHUgIChoamxAZ251Lm9yZykKCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogQ29tcGxhaW4gYWJvdXQgcmVsb2NhdGlvbnMKCWFnYWluc3QgbG9jYWwgc3ltYm9scyBpbiBkaXNjYXJkZWQgc2VjdGlvbnMuCgoyMDAyLTAzLTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfZ2NfbWFyayk6IERvbid0IHJlY3Vyc2UgaW50byBub24tRUxGIHNlY3Rpb25zLgoKMjAwMi0wMy0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogRG9uJ3Qgc2V0IGxtYSBiYXNlZCBvbgoJc2VjdGlvbiBmaWxlIG9mZnNldCBmb3IgIVNFQ19MT0FEIHNlY3Rpb25zLgoKMjAwMi0wMy0yMSAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUgPGNhc2UgUl9BUk1fR09UT0ZGPiwKCTxjYXNlIFJfQVJNX0dPVD4pOiBIYW5kbGUgcmVsb2NhdGlvbnMgdG8gVGh1bWIgZnVuY3Rpb25zLgoKMjAwMi0wMy0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvZmY2NC1yczYwMDAuYyAoX2JmZF94Y29mZjY0X3B1dF9zeW1ib2xfbmFtZSk6IFByb3RvdHlwZS4KCVdoaXRlc3BhY2UgY2hhbmdlcy4KCSogYXJjaGl2ZS5jOiBVcGRhdGUgY29weXJpZ2h0IGRhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vU1JDLVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wMy0yMCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBkd2FyZjIuYyAoc3RydWN0IGZ1bmNpbmZvKTogTW92ZSB1cC4KCShsb29rdXBfYWRkcmVzc19pbl9mdW5jdGlvbl90YWJsZSk6IE5ldyBhcmd1bWVudCBmdW5jdGlvbl9wdHIuCglTZXQgaXQuCgkobG9va3VwX2FkZHJlc3NfaW5fbGluZV90YWJsZSk6IE5ldyBhcmd1bWVudCBmdW5jdGlvbi4gIElmIGZ1bmN0aW9uCglpcyBub24tTlVMTCwgdXNlIGl0IHRvIGhhbmRsZSBgYGFkZHInJyBiZWZvcmUgdGhlIGZpcnN0IGxpbmUgbm90ZSBvZgoJdGhlIGZ1bmN0aW9uLgoJKGNvbXBfdW5pdF9maW5kX25lYXJlc3RfbGluZSk6IFVwZGF0ZSBhbmQgc3dhcCBjYWxscyB0bwoJbG9va3VwX2FkZHJlc3NfaW5fZnVuY3Rpb25fdGFibGUgYW5kIGxvb2t1cF9hZGRyZXNzX2luX2xpbmVfdGFibGUuCgkqIHN5bXMuYyAoX2JmZF9zdGFiX3NlY3Rpb25fZmluZF9uZWFyZXN0X2xpbmUpOiBVc2UgdGhlIGZpcnN0CglOX1NMSU5FIGVuY291bnRlcmVkIGlmIHdlIHNlZSBhbiBOX0ZVTiBiZWZvcmUgYW55IE5fU0xJTkUuCgoyMDAyLTAzLTIwICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29mZi1yczYwMDAuYyAoX2JmZF94Y29mZl9zdGF0X2FyY2hfZWx0KTogUmVuYW1lZCBmcm9tCglfYmZkX3hjb2ZmX2dlbmVyaWNfc3RhdF9hcmNoX2VsdC4gIEZpeCBmb3JtYXQgY2hlY2suCgkqIGNvZmY2NC1yczYwMDAuYyA6IFVzZSBfYmZkX3hjb2ZmX3N0YXRfYXJjaF9lbHQuCgoyMDAyLTAzLTE5ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogeGNvZmZsaW5rLmMgKF9iZmRfeGNvZmZfYmZkX2xpbmtfYWRkX3N5bWJvbHMpOiBMb29rIHRocm91Z2ggYWxsCglkeW5hbWljIG9iamVjdHMgaW4gYXJjaGl2ZXMuCgoyMDAyLTAzLTE5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBlbGZsaW5rLmggKE5BTUUoYmZkX2VsZixyZWNvcmRfbGlua19hc3NpZ25tZW50KSk6IERvbid0IHNldAoJU1RUX05PVFlQRSBzeW1ib2xzIHRvIFNUVF9PQkpFQ1QuCgoyMDAyLTAzLTE4ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBjcHUtaTM4Ni5jIChiZmRfeDg2XzY0X2FyY2gpOiBSZW5hbWUgdG8gImkzODY6eDg2LTY0IgoKMjAwMi0wMy0xOCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGFpeDVwcGMuY29yZS5jIDogTmV3IGZpbGUgZm9yIEFJWCA1IDY0IGJpdCBjb3JlIHN1cHBvcnQuCgkqIGJmZC1pbi5oIDogQWRkIGJmZF94Y29mZl9hcl9hcmNoaXZlX3NldF9tYWdpYyBkZWNsYXJhdGlvbi4KCSogY29mZi1yczYwMDAgKGRvX3BhZCkgOiBOZXcgZnVuY3Rpb24gZm9yIGFyY2hpdmUgcGFkZGluZy4KCShkb19jb3B5KSA6IE5ldyBmdW5jdGlvbiBmb3Igb2JqZWN0IGZpbGUgY29weWluZyBpbiBhcmNoaXZlcy4KCShkb19zaGFyZWRfb2JqZWN0X3BhZGRpbmcpIDogTmV3IGZ1bmN0aW9uIGZvciBwYWRkaW5nIHNoYXJlZAoJb2JqZWN0cyB0byB0aGVpciB0ZXh0IHNlY3Rpb24gYWxpZ25tZW50IGluIGFyY2hpdmVzLgoJKGJmZF94Y29mZl9hcl9hY2hpdmVfc2V0X21hZ2ljKSA6IFN0dWIuCgkoeGNvZmZfd3JpdGVfYXJtYXBfYmlnKSA6IFVzZSBkb19jb3B5IGFuZCBkb19wYWQuCgkoeGNvZmZfd3JpdGVfYXJjaGl2ZV9jb250ZW50c19iaWcpIDogVXNlIGRvX3NoYXJlZF9vYmplY3RfcGFkZGluZywKCWRvX2NvcHkgYW5kIGRvX3BhZC4KCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X3dyaXRlX29qYmVjdF9jb250ZW50cykgOiBVc2UKCWJmZF94Y29mZl9tYWdpY19udW1iZXIuCgkoeGNvZmY2NF9iYWRfZm9ybWF0X2hvb2spIDogTmV3IGZ1bmN0aW9uIGZvciBfYmZkX2JhZF9mb3JtYXRfaG9vawoJZm9wLgoJKHhjb2ZmX2JhY2tlbmRfZGF0YV9yKSA6IFVzZSB4Y29mZjY0X2JhZF9mb3JtYXRfaG9vay4KCShiZmRfeGNvZmZfYWl4NV9iYWNrZW5kX2RhdGEpIDogTmV3IEFpeCA1IGJhY2tlbmQgZGF0YS4KCShhaXg1Y29mZjY0X3ZlYykgOiBOZXcgQWl4IDUgdGFyZ2V0IGFpeDVjb2ZmNjQtcnM2MDAwLgoJKiByczYwMDAtY29yZS5jIDogVXBkYXRlIGNvcHlyaWdodCBkYXRlLgoJKiB4Y29mZmxpbmsuYyAoYmZkX3hjb2ZmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IENoZWNrIGZvciBOVUxMCgljc2VjdHBwLgoJKiBjb2ZmY29kZS5oIChjb2ZmX25ld19zZWN0aW9uX2hvb2spIDogVXNlIG5ldyBhY2Nlc3NvciBtYWNyb3MuCgkoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spIDogQWRkIEFpeCA1IFU2NF9UT0NNQUdJQyBtYWdpYyAjLgoJKGNvZmZfc2V0X2ZsYWdzKSA6IFVzZSBiZmRfeGNvZmZfbWFnaWNfbnVtYmVyLgoJKiBsaWJ4Y29mZi5oIChiZmRfeGNvZmZfaXNfeGNvZmY2NCk6IEFkZCBVNjRfVE9DTUFHSUMuCgkqIGNvbmZpZ3VyZS5pbiA6IEFkZCBwb3dlcnBjLSotYWl4NSBhbmQgcnM2MDAwLSotYWl4NSBzdXBwb3J0LgoJKiBNYWtlZmlsZS5hbSA6IFNhbWUuCgkqIGNvbmZpZy5iZmQgOiBTYW1lLgoJKiB0YXJnZXRzLmMgOiBTYW1lLgoJKiBjb25maWd1cmUgOiBSZWduZXJhdGUuCgkqIE1ha2VmaWxlLmluIDogU2FtZS4KCSogYmZkLWluMi5oIDogU2FtZS4KCjIwMDItMDMtMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDMtMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsaWJiZmQuYyAoYmZkX3dyaXRlX2JpZ2VuZGlhbl80Ynl0ZV9pbnQpOiBSZXR1cm4gdHJ1ZSBpZmYgc3VjY2Vzcy4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGFyY2hpdmUuYyAoY29mZl93cml0ZV9hcm1hcCk6IFBhc3Mgb24gZmFpbHVyZXMgZnJvbQoJYmZkX3dyaXRlX2JpZ2VuZGlhbl80Ynl0ZV9pbnQuCgoyMDAyLTAzLTE0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoTkFNRShiZmRfZWxmLHNpemVfZHluYW1pY19zZWN0aW9ucykpOiBTZXQgdGhlIEJGRAoJZXJyb3IgdG8gYmZkX2Vycm9yX25vbnJlcHJlc2VudGFibGVfc2VjdGlvbiBmb3IgcmVpbml0X2FycmF5CglzZWN0aW9uIGluIERTTy4KCjIwMDItMDMtMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9zbHVycF9zeW1ib2xfdGFibGUpOiBXaGVuIGFkZGluZyBCU0ZfV0VBSyBmbGFnLAoJT1IgaXQgaW4gcmF0aGVyIHRoYW4gcmVwbGFjaW5nIHByZXZpb3VzbHkgc2VsZWN0ZWQgZmxhZ3MuCgoJKiBlbGZ4eC10YXJnZXQuaCAoVEFSR0VUX0JJR19TWU0pOiBTZXQgYXJfbWF4X25hbWVsZW4gdG8gMTUuCgkoVEFSR0VUX0xJVFRMRV9TWU0pOiBTZXQgYXJfbWF4X25hbWVsZW4gdG8gMTUuCgoyMDAyLTAzLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY3B1LW1pcHMuYyAobWlwc19jb21wYXRpYmxlKTogTmV3LiAgRG9uJ3QgY2hlY2sgYml0c19wZXJfd29yZC4KCShOKTogVXNlIHRoZSBhYm92ZS4KCSogZWxmbGluay5oIChlbGZfYmZkX2ZpbmFsX2xpbmspOiBSZXZlcnQgbGFzdCBjaGFuZ2UuICBJbnN0ZWFkLAoJZW5zdXJlIHJlbG9jIHNpemUgbWF0Y2hlcyBiZWZvcmUgY2FsbGluZyBlbGZfbGlua19pbnB1dF9iZmQuCglBZGQgYW4gYXNzZXJ0IHRvIGNoZWNrIHJlbG9jIHNpemUgd2hlbiBjb3VudGluZyBvdXRwdXQgcmVsb2NzLgoKMjAwMi0wMy0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBtbW8uYyAobW1vX2dldF9sb2MpOiBSZXR1cm4gTlVMTCByYXRoZXIgdGhhbiBmYWxzZS4KCjIwMDItMDMtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDMtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhcmNodXJlcy5jIChiZmRfZGVmYXVsdF9jb21wYXRpYmxlKTogVGVzdCBiaXRzX3Blcl93b3JkLgoJKiBjcHUtaTM4Ni5jIChpMzg2X2NvbXBhdGlibGUpOiBSZW1vdmUuICBSZXBsYWNlIG9jY3VycmVuY2VzIHdpdGgKCWJmZF9kZWZhdWx0X2NvbXBhdGlibGUuCgkqIGNwdS1pMzcwLmMgKGkzNzBfY29tcGF0aWJsZSk6IExpa2V3aXNlLgoJKiBjcHUtc3BhcmMuYyAoc3BhcmNfY29tcGF0aWJsZSk6IExpa2V3aXNlLgoJKiBjcHUtaDgzMDAuYyAoY29tcGF0aWJsZSk6IFRlc3QgaW4tPmFyY2ggPT0gb3V0LT5hcmNoLgoKCSogZWxmbGluay5oOiBGb3JtYXR0aW5nIGZpeGVzLgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBNZXJnZSB1bmRlZmluZWQgYW5kIHVuZGVmIHdlYWsgY2FzZXMuCgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZmluYWxfbGluayk6IE9ubHkgY2FsbCBlbGZfbGlua19pbnB1dF9iZmQKCXdoZW4gd29yZCBzaXplIG9mIGlucHV0IG1hdGNoZXMgb3V0cHV0IHdvcmQgc2l6ZS4KCjIwMDItMDMtMTIgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGNwdS1pMzg2LmMgKGkzODZfY29tcGF0aWJsZSk6IE5ldy4gIFVzZSBpdCBpbnN0ZWFkIG9mCgliZmRfZGVmYXVsdF9jb21wYXRpYmxlLgoKMjAwMi0wMy0wNyAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogY29mZi1zaC5jIChzaGNvZmZfcmVsb2NfbWFwKTogVXNlIGJmZF9yZWxvY19jb2RlX3JlYWxfdHlwZQoJYXMgdGhlIHR5cGUgZm9yIGJmZF9yZWxvY192YWwuCgoyMDAyLTAzLTA1ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfaXNfZHluYW1pY19sb2FkZXJfc3ltYm9sKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBJZ25vcmUgdW5kZWZpbmVkIGR5bmFtaWMgbG9hZGVyIHN5bWJvbHMuCgkoZWxmX2hwcGFfZmluYWxfbGlua19yZWxvY2F0ZSk6IENvcnJlY3QgcmVsb2NhdGlvbnMgZm9yIGluZGlyZWN0CglyZWZlcmVuY2VzIHRvIGxvY2FsIGRhdGEgdGhyb3VnaCB0aGUgRExULiAgRml4IC5vcGQgY3JlYXRpb24gZm9yCglsb2NhbCBzeW1ib2xzIHVzaW5nIFJfUEFSSVNDX0xUT0ZGX0ZQVFIzMiBhbmQgUl9QQVJJU0NfRlBUUjY0CglyZWxvY2F0aW9ucy4gIFVzZSBlX2xzZWwgc2VsZWN0b3IgZm9yIFJfUEFSSVNDX0RMVElORDIxTCwKCVJfUEFSSVNDX0xUT0ZGX0ZQVFIyMUwgYW5kIFJfUEFSSVNDX0xUT0ZGX1RQMjFMIGFzIHBlcgoJIlByb2Nlc3Nvci1TcGVjaWZpYyBFTEYgZm9yIFBBX1JJU0MsIFZlcnNpb24gMS40MyIgZG9jdW1lbnQuCglTaW1pbGFybHksIHVzZSBlX3JzZWwgZm9yIERMVCBhbmQgTFRPRkYgJ1InIHJlbG9jYXRpb25zLgoJKiBlbGYzMi1ocHBhLmMgKGZpbmFsX2xpbmtfcmVsb2NhdGUpOiBSZXZpc2UgcmVsb2NhdGlvbiBzZWxlY3RvcnMKCWFzIHBlciAiUHJvY2Vzc29yLVNwZWNpZmljIEVMRiBmb3IgUEFfUklTQywgVmVyc2lvbiAxLjQzIiBkb2N1bWVudC4KCjIwMDItMDMtMDUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbWVyZ2UuYyAoX2JmZF9tZXJnZV9zZWN0aW9ucyk6IERvbid0IHNlZ2ZhdWx0IGlmIHRoZXJlCglpcyBub3RoaW5nIHRvIG1lcmdlIGR1ZSB0byBHQy4KCjIwMDItMDMtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGNsb2JiZXJfbWlsbGljb2RlX3N5bWJvbHMpOiBSZW1vdmUgaGFjayB0byBrZWVwCglzeW1ib2xzIHRoYXQgaGF2ZSBiZWVuIGZvcmNlZCBsb2NhbC4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9maW5hbF9saW5rKTogQ2FsbCBlbGZfbGlua19vdXRwdXRfZXh0c3ltCgl0byBvdXRwdXQgZm9yY2VkIGxvY2FsIHN5bXMgZm9yIG5vbi1zaGFyZWQgbGluay4KCShlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogVHdlYWsgY29uZGl0aW9uIGZvciBjYWxsaW5nIGJhY2tlbmQKCWFkanVzdF9keW5hbWljX3N5bWJvbCBzbyB0aGF0IHByZXZpb3VzIGJlaGF2aW91ciBpcyBrZXB0LgoJV2hpdGVzcGFjZSBjaGFuZ2VzIHRocm91Z2hvdXQgZmlsZS4KCjIwMDItMDMtMDQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmLmMgKGJmZF9zZWN0aW9uX2Zyb21fc2hkcik6IEhhbmRsZSBzcGVjaWFsIHNlY3Rpb25zLAoJLmluaXRfYXJyYXksIC5maW5pX2FycmF5IGFuZCAucHJlaW5pdF9hcnJheS4KCShlbGZfZmFrZV9zZWN0aW9ucyk6IExpa2V3aXNlLgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IENyZWF0ZSB0aGUKCURUIGVudHJ5IG9ubHkgaWYgdGhlIHNlY3Rpb24gaXMgaW4gb3V0cHV0IGZvciAuaW5pdF9hcnJheSwKCS5maW5pX2FycmF5IGFuZCAucHJlaW5pdF9hcnJheS4gQ29tcGxhaW4gYWJvdXQgLnByZWluaXRfYXJyYXkKCXNlY3Rpb24gaW4gRFNPLgoJKGVsZl9iZmRfZmluYWxfbGluayk6IFdhcm4gemVybyBzaXplIGZvciAuaW5pdF9hcnJheSwKCS5maW5pX2FycmF5IGFuZCAucHJlaW5pdF9hcnJheSBzZWN0aW9ucy4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9zZWN0aW9uX2Zyb21fc2hkcik6IFJlbW92ZQoJU0hUX0lOSVRfQVJSQVksIFNIVF9GSU5JX0FSUkFZIGFuZCBTSFRfUFJFSU5JVF9BUlJBWS4KCShlbGZOTl9pYTY0X2Zha2Vfc2VjdGlvbnMpOiBSZW1vdmUgLmluaXRfYXJyYXksIC5maW5pX2FycmF5IGFuZAoJLnByZWluaXRfYXJyYXkuCgoyMDAyLTAzLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlndXJlLmluIChXSU4zMkxJQkFERCk6IERvbid0IGV2YWwgUElDRkxBRyBhc3NpZ25tZW50LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAzLTAyICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogY29mZjY0LXJzNjAwMC5jICh4Y29mZjY0X2hvd3RvX3RhYmxlKTogUmVwbGFjZSBob3d0byB0eXBlcyB3aXRoCglzeW1ib2xpYyBlcXVpdi4KCSogY29mZi1yczYwMDAuYyAoeGNvZmZfaG93dG9fdGFibGUpOiBTYW1lLgoKMjAwMi0wMy0wMSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBlbGZsaW5rLmggKHNpemVfZHluYW1pY19zZWN0aW9ucyk6IElmIHNlY3Rpb24gbmFtZWQKCSIucHJlaW5pdF9hcnJheSIgZXhpc3RzLCBjcmVhdGUgRFRfUFJFSU5JVF9BUlJBWSBhbmQKCURUX1BSRUlOSVRfQVJSQVlTWiBlbnRyaWVzIGluIGR5bmFtaWMgdGFibGUuICBBbmFsb2dvdXNseSBmb3IKCSIuaW5pdF9hcnJheSIgYW5kICIuZmluaV9hcnJheSIuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogSGFuZGxlIERUX1BSRUlOSVRfQVJSQVlTWiwgRFRfSU5JVF9BUlJBWVNaLAoJRFRfRklOSV9BUlJBWVNaLCBEVF9QUkVJTklUX0FSUkFZLCBEVF9JTklUX0FSUkFZLCBhbmQKCURUX0ZJTklfQVJSQVkuCgoyMDAyLTAyLTI2ICBBbmRyZXcgTWFjbGVvZCAgPGFtYWNsZW9kQGN5Z251cy5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZmluYWxfbGluayk6IERvbid0IGNyYXNoIG9uIFNITl9VTkRFRiBsb2NhbAoJZHluc3ltcy4KCjIwMDItMDItMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1ocHBhLmg6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogV2FybmluZyBmaXguCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBnZW5lcmF0ZSBwb3dlcjQgc3R5bGUgYnJhbmNoCgloaW50cyBmb3IgKl9CUlRBS0VOIGFuZCAqX0JSTlRBS0VOIHJlbG9jcy4KCjIwMDItMDItMjIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogRml4IGEgdHlwbyBmcm9tIG15CglsYXN0IHBhdGNoLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDItMDItMjEgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jOiBNYWpvciByZXdvcmsgdGhhdCBpbnRyb2R1Y2VzIGFsbCByZWNlbnQgY2hhbmdlcwoJdG8gdGhlIHg4Ni02NCBiYWNrZW5kLiAgR2V0IGEgY2xvc2VyIG1hdGNoIHRvIGVsZjMyLWkzODYuCgkoc3RydWN0IGVsZjY0X3g4Nl82NF9keW5fcmVsb2NzKTogUmVuYW1lIGZyb20KCWVsZjY0X3g4Nl82NF9wY3JlbF9yZWxvY3NfY29waWVkLCBhZGQgYWRkaXRpb25hbCBmaWVsZHMuICBDaGFuZ2UKCWFsbCB1c2Vycy4KCShzdHJ1Y3QgZWxmNjRfeDg2XzY0X2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzaG9ydCBjdXRzIHRvIHNvbWUKCXNlY3Rpb25zLgoJKGxpbmtfaGFzaF9uZXdmdW5jKTogUmVuYW1lIGZyb20gZWxmNjRfeDg2XzY0X2xpbmtfaGFzaF9uZXdmdW5jLAoJcmVtb3ZlIGNhc3RzLCBpbml0aWFsaXplIG5ldyBoYXNoIG1lbWJlcnMuCgkoY3JlYXRlX2dvdF9zZWN0aW9uKTogTmV3LgoJKGVsZjY0X3g4Nl82NF9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IE5ldy4KCShlbGY2NF94ODZfNjRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBOZXcuCgkoZWxmNjRfeDg2XzY0X2NoZWNrX3JlbG9jcyk6IERvbid0IGFsbG9jYXRlIHNwYWNlIGZvciBkeW5hbWljCglyZWxvY3MsIC5nb3Qgb3IgLnJlbGdvdCBoZXJlIGJ1dCBkbyBpdCBpbiBhbGxvY2F0ZV9keW5yZWxvY3MuCglSZWZlcmVuY2UgY291bnQgcG9zc2libGUgLnBsdCBhbmQgLmdvdCBlbnRyaWVzLiAgRG9uJ3QgdGVzdCBpbnB1dAoJc2VjdGlvbiBTRUNfUkVBRE9OTFkgaGVyZSB0byB0cnkgdG8gYXZvaWQgY29weSByZWxvY3MsIGFuZCBrZWVwCglkeW5fcmVsb2NzIHJlZ2FyZGxlc3Mgb2YgRUxGX0xJTktfTk9OX0dPVF9SRUYuICBEb24ndCBzZXQKCURGX1RFWFRSRUwgaGVyZS4gIERlbGF5IHNldHRpbmcgb2YgdmFyaWFibGVzIHVudGlsIG5lZWRlZC4gIENhY2hlCglwb2ludGVyIHRvICJzcmVsb2MiIHNlY3Rpb24gaW4gZWxmX3NlY3Rpb25fZGF0YS4gVHdlYWsgY29uZGl0aW9uCgl1bmRlciB3aGljaCAuZ290IGNyZWF0ZWQuICBSZXBvcnQgZmlsZXMgd2l0aCBiYWQgcmVsb2NhdGlvbgoJc2VjdGlvbiBuYW1lcy4KCShlbGY2NF94ODZfNjRfZ2Nfc3dlZXBfaG9vayk6IFN3ZWVwIGR5bl9yZWxvY3MgYW5kIGxvY2FsX2R5bnJlbC4KCVJlZmVyZW5jZSBjb3VudCBwb3NzaWJsZSAucGx0IGVudHJpZXMuICBEb24ndCBkZWFsbG9jYXRlIC5nb3QgYW5kCgkucmVsZ290IHNwYWNlIGhlcmUuCgkoZWxmNjRfeDg2XzY0X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEhhbmRsZSBub2NvcHlyZWxvYy4gIERvbid0CglkbyBjb3B5IHJlbG9jIHByb2Nlc3NpbmcgZm9yIHdlYWtkZWZzLiAgUmVtb3ZlIHJlZHVuZGFudCBjYXN0cyBhbmQKCWFib3J0cy4gIERlbGF5IHNldHRpbmcgb2YgdmFycyB1bnRpbCBuZWVkZWQuICBNb3ZlIGNyZWF0aW9uIG9mCglkeW5hbWljIHN5bWJvbHMgYW5kIGFsbG9jYXRpb24gb2YgLnBsdCBhbmQgLnJlbGEucGx0IHRvCglhbGxvY2F0ZV9keW5yZWxvY3MuICBSZXBsYWNlIEJGRF9BU1NFUlQgd2l0aCBhYm9ydC4KCShXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogTmV3LgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IE5ldy4KCShyZWFkb25seV9keW5yZWxvY3MpOiBOZXcuCgkoZWxmNjRfeDg2XzY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IENhbGwgcmVhZG9ubHlfZHlucmVsb2NzLgoJQWxsb2NhdGUgc3BhY2UgZm9yIGR5biByZWxvY3MuICBSZXBsYWNlIEJGRF9BU1NFUlQgd2l0aCBhYm9ydC4KCVplcm8gb3V0IHRoZSBkeW5hbWljIGFsbG9jYXRlZCBjb250ZW50IHNwYWNlLgoJKGVsZjY0X3g4Nl82NF9kaXNjYXJkX2NvcGllcyk6IFJlbW92ZWQuCgkoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBNYWtlIHVzZSBvZiBkeW5hbWljIHNlY3Rpb24KCXNob3J0LWN1dHMuICBMb2NhbGlzZSB2YXJzLCBhbmQgZGVsYXkgc2V0dGluZy4gIEJldHRlciBlcnJvcgoJcmVwb3J0aW5nLCByZXBsYWNlIEJGRF9BU1NFUlQgd2l0aCBhYm9ydC4gIENoZWNrCglFTEZfTElOS19IQVNIX0RFRl9EWU5BTUlDIHRvIHNlZSBpZiBhIHN5bWJvbCBpcyBub3QgZGVmaW5lZCBpbiB0aGUKCXJlZ3VsYXIgb2JqZWN0IGZpbGUgYW5kIHRyZWFkIHRoZSB3ZWFrIGRlZmluaXRpb24gYXMgdGhlIG5vcm1hbAoJb25lLiAgRG9uJ3QgZGlzY2FyZCByZWxvY3MgZm9yIHVuZGVmd2VhayBvciB1bmRlZmluZWQgc3ltYm9scyBhbmQKCWNoZWNrICFERUZfUkVHVUxBUiBhcyB3ZWxsIGFzIERFRl9EWU5BTUlDIGluIHRlc3QgZm9yIGF2b2lkZWQgY29weQoJcmVsb2NzLgoJKGVsZjY0X3g4Nl82NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEb24ndCBjb3B5IHJlbG9jcyBmb3IKCXN5bWJvbHMgdGhhdCBoYXZlIGJlZW4gZm9yY2VkIGxvY2FsLiAgVXNlIHNhbWUgdGVzdCB0byBkZWNpZGUgaWYKCXdlIGNhbiB1c2UgYSByZWxhdGl2ZSByZWxvYyBmb3IgZ290IGFzIHJlbG9jYXRlX3NlY3Rpb24uICBFeHBhbmQKCVNITl9VTkRFRiBjb21tZW50LiAgTW92ZSBleHByZXNzaW9ucyBvdXQgb2YgZnVuY3Rpb24gY2FsbHMuCglSZXBsYWNlIEJGRF9BU1NFUlQgd2l0aCBhYm9ydC4KCShiZmRfZWxmNjRfYmZkX2ZpbmFsX2xpbmspOiBSZW1vdmVkLgoJKGVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogRGVmaW5lLgoKMjAwMi0wMi0yMCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2hvd3RvX3RhYmxlKTogQWRkIDE2IGJpdCBSX0JBLgoJKF9iZmRfeGNvZmZfcmVsb2NfdHlwZV9sb29rdXApOiBVc2UgaXQuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9ob3d0b190YWJsZSk6IFNhbWUuCgkoeGNvZmY2NF9yZWxvY190eXBlX2xvb2t1cCk6IFNhbWUuCgoyMDAyLTAyLTIwICBQZXRlciBTY2hhdWVyICA8cGVzQHJlZ2VudC5lLXRlY2huaWsudHUtbXVlbmNoZW4uZGU+CgoJKiBvc2YtY29yZS5jIChvc2ZfY29yZV92ZWMpOiBPU0YvMSAoRGlnaXRhbCBVbml4KSBjb3JlIGZpbGVzIGFyZQoJbGl0dGxlIGVuZGlhbi4KCjIwMDItMDItMTkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9zMzkwX2VzYSk6IFJlbmFtZSB0byBiZmRfbWFjaF9zMzkwXzMxLgoJKGJmZF9tYWNoX3MzOTBfZXNhbWUpOiBSZW5hbWUgdG8gYmZkX21hY2hfczM5MF82NC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjcHUtczM5MC5jIChhcmNoX2luZm9fc3RydWN0KTogVXNlIHJlbmFtZWQgYXJjaGl0ZWN0dXJlIGRlZmluZXMuCglSZXBsYWNlIGFyY2hpdGVjdHVyZSBuYW1lICJzMzkwIiB3aXRoICJzMzkwOjMxLWJpdCIgYW5kICJzMzkwOmVzYW1lIgoJd2l0aCAiczM5MDo2NC1iaXQiLgoJKiBlbGYzMi1zMzkwLmMgKGVsZl9ob3d0b190YWJsZSk6IEFkZCAzMiBiaXQgcGMgcmVsYXRpdmUgcmVsb2NhdGlvbnMuCgkoZWxmX3MzOTBfcmVsb2NfdHlwZV9sb29rdXApOiBMaWtld2lzZS4KCShlbGZfczM5MF9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShlbGZfczM5MF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZl9zMzkwX29iamVjdF9wKTogVXNlIHJlbmFtZWQgYXJjaGl0ZWN0dXJlIGRlZmluZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9vYmplY3RfcCk6IFVzZSByZW5hbWVkIGFyY2hpdGVjdHVyZSBkZWZpbmUuCgoyMDAyLTAyLTE5ICBGcmFuayBDaC4gRWlnbGVyICA8ZmNoZUByZWRoYXQuY29tPgoKCSogc3ltcy5jIChzdHRbXSk6IFNvcnRlZC4gIEFkZGVkIC5pbml0Ly5maW5pIC0+ICJ0IiBtYXBwaW5nLgoKMjAwMi0wMi0xOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYtZWgtZnJhbWUuYyAoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogRW5hYmxlCglhYnNwdHIgLT4gcGNyZWwgb3B0aW1pemF0aW9uIGZvciBzaGFyZWQgbGlicy4KCU9ubHkgY3JlYXRlIG1pbmltYWwgLmVoX2ZyYW1lX2hkciBpZiBhYnNwdHIgRkRFIGVuY29kaW5nIGluIHNoYXJlZAoJbGlicmFyeSBjYW5ub3QgYmUgY29udmVydGVkIHRvIHBjcmVsLgoJKF9iZmRfZWxmX2VoX2ZyYW1lX3NlY3Rpb25fb2Zmc2V0KTogUmV0dXJuIC0yIGlmIG1ha2luZyBhYnNwdHIKCXJlbGF0aXZlLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBJZgoJX2JmZF9lbGZfc2VjdGlvbl9vZmZzZXQgcmV0dXJuZWQgLTIsIHNraXAsIGJ1dCBtYWtlIHN1cmUgdGhlCglyZWxvY2F0aW9uIGlzIGluc3RhbGxlZC4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlKTogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmMgKGkzNzBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZQoJX2JmZF9lbGZfc2VjdGlvbl9vZmZzZXQgcmV0dXJuaW5nIC0yIHRoZSBzYW1lIHdheSBhcyAtMS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2luc3RhbGxfZHluX3JlbG9jKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IEFkZCBGSVhNRQoJYW5kIEJGRF9BU1NFUlQuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgoyMDAyLTAyLTE4ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogeGNvZmZsaW5rLmMgKGJmZF94Y29mZl9saW5rX2dlcm5hdGVfcnRpbml0KTogQWRkIC1icnRsIHN1cHBvcnQuCgkoYmZkX3hjb2ZmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNhbWUuCgkqIGJmZC1pbi5oIChiZmRfeGNvZmZfbGlua19nZW5lcmF0ZV9ydGluaXQpOiBTYW1lLgoJKGJmZF94Y29mZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBTYW1lLgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9nZW5lcmF0ZV9ydGluaXQpOiBTYW1lLgoJKiBjb2ZmLXJzNjQ2MDAwLmMgKHhjb2ZmNjRfZ2VuZXJhdGVfcnRpbml0KTogU2FtZS4KCSogbGlieGNvZmYuaCAoc3RydWN0IHhjb2ZmX2JhY2tlbmRfZGF0YV9yZWMpOiBTYW1lLgoJKiB4Y29mZmxpbmsuYyAoeGNvZmZfYnVpbGRfbGRzeW1zLCB4Y29mZl9saW5rX2FkZF9zeW1ib2xzKTogQ2xlYW4uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDItMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoU1RGRF9GUjBfMFIxLCBMRkRfRlIwXzBSMSwgQkxSKTogRGVmaW5lLgoJKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogQWRkIHNmcHIuCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0IGl0LgoJKHBwYzY0X2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IFNwbGl0IGNyZWF0aW9uIG9mIC5zdHViIGFuZAoJLmdsaW5rIG91dCB0by4uCgkoY3JlYXRlX2xpbmthZ2Vfc2VjdGlvbnMpOiAuLmhlcmUuICBNYWtlIC5zZnByIHRvby4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogQ2FsbCBjcmVhdGVfbGlua2FnZV9zZWN0aW9ucywgYW5kIHNldAoJZHlub2JqIGVhcmx5LgoJKE1JTl9TQVZFX0ZQUiwgTUFYX1NBVkVfRlBSKTogRGVmaW5lLgoJKHBwYzY0X2VsZl9mdW5jX2Rlc2NfYWRqdXN0KTogTG9vayBmb3IgbWlzc2luZyAuX3NhdmVmKiBhbmQKCS5fcmVzdGYqIGZ1bmN0aW9ucywgYW5kIGNyZWF0ZSBhcyBuZWVkZWQuCgkoZnVuY19kZXNjX2FkanVzdCk6IE9ubHkgZm9yY2VfbG9jYWwgZm9yIHNoYXJlZCBsaWJzLgoKMjAwMi0wMi0xOCAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIGNvbmZpZ3VyZS5pbjogQnVtcCB2ZXJzaW9uIG51bWJlciBwb3N0IDIuMTIgYnJhbmNoaW5nLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAyLTE3ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBtbW8uYzogQ29ycmVjdCBhbmQgaW1wcm92ZSBjb21tZW50cy4KCShtbW9fd3JpdGVfY2h1bmspOiBTdG9yZSB0cmFpbGluZyBieXRlIGluIGJmZCBidWZmZXI7IGRvbid0Cgl6ZXJvLXBhZC4gIFVzZSBpbnB1dCB0byBmaWxsIHVwIG5vbi1lbXB0eSBiZmQgYnVmZmVyLgoJKG1tb19mbHVzaF9jaHVuayk6IE5ldyBmdW5jdGlvbi4KCShtbW9fd3JpdGVfbG9jX2NodW5rKTogQWRkIHBhcmFtZXRlciBsYXN0X3ZtYXAsIGFsbCBjYWxsZXJzCgljaGFuZ2VkLiAgRG9uJ3QgZW1pdCBsb2NhdGlvbiBzcGVjaWZpZXIgaWYgVk1BIGlzIHNhbWUgYXMKCSpMQVNUX1ZNQVAgYWZ0ZXIgb21pdHRpbmcgbGVhZGluZyB6ZXJvIGNvbnRlbnRzLiAgQ2FsbAoJbW1vX2ZsdXNoX2NodW5rIGJlZm9yZSBlbWl0dGluZyBsb2NhdGlvbiBzcGVjaWZpZXIuCgkobW1vX3dyaXRlX2xvY19jaHVua19saXN0KTogQ2FsbCBtbW9fZmx1c2hfY2h1bmsgd2hlbiBmaW5pc2hlZAoJd2l0aCBtbW9fd3JpdGVfbG9jX2NodW5rIGNhbGxzLgoJKG1tb19pbnRlcm5hbF93cml0ZV9zZWN0aW9uKTogQ2FsbCBtbW9fZmx1c2hfY2h1bmsgYWZ0ZXIKCW1tb193cml0ZV9jaHVuay4KCShtbW9fd3JpdGVfc3ltYm9sc19hbmRfdGVybWluYXRvcik6IE1vdmUgOk1haW4gdG8gZmlyc3QgcG9zaXRpb24KCWluIHN5bWJvbCBhcnJheS4gIEFkZCBmYWtlZCBvbmUgaWYgaXQgZG9lcyBub3QgZXhpc3QgaWYgdGhlcmUgYXJlCglvdGhlciBzeW1ib2xzLiAgRG9uJ3QgYWRkIGl0IGlmIHRoZXJlIGFyZSBubyBzeW1ib2xzIGF0IGFsbC4gIE1vdmUKCW91dCB0ZXN0IGZvciB2YWx1ZSBvZiA6TWFpbiBmcm9tIHN5bWJvbCBsb29wLiAgUmVuYW1lIHRhYmxlCglmYWtlbWFpbiB0byBtYWludGFibGUgYW5kIHZhcmlhYmxlIG1haW5zeW0gdG8gZmFrZW1haW4uCgoyMDAyLTAyLTE1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbikgW0JSU0dQXTogQSB0YXJnZXQKCXNlY3Rpb24gd2l0aCBubyBnb3QgbWF0Y2hlcyBhbnkgZ290LiAgU2ltcGxpZnkgZXJyb3IgZ2VuZXJhaW9uLgoKMjAwMi0wMi0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglTdXBwb3J0IGFyYml0cmFyeSBsZW5ndGggZmlsbCBwYXR0ZXJucy4KCSogbGlua2VyLmMgKGJmZF9uZXdfbGlua19vcmRlcik6IFplcm8gYWxsIGZpZWxkcyB3aXRoIGJmZF96YWxsb2MuCgkoX2JmZF9kZWZhdWx0X2xpbmtfb3JkZXIpOiBSZW1vdmUgYmZkX2ZpbGxfbGlua19vcmRlciBjb2RlLgoJQ2FsbCBkZWZhdWx0X2RhdGFfbGlua19vcmRlci4KCShkZWZhdWx0X2ZpbGxfbGlua19vcmRlcik6IERlbGV0ZS4KCShkZWZhdWx0X2RhdGFfbGlua19vcmRlcik6IE5ldyBmdW5jdGlvbi4KCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2ZpbmFsX2xpbmspOiBSZXBsYWNlIG9jY3VycmVuY2VzCglvZiBiZmRfZmlsbF9saW5rX29yZGVyIHdpdGggYmZkX2RhdGFfbGlua19vcmRlci4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfZmluYWxfbGluayk6IExpa2V3aXNlLgoKCSogYmZkLmMgKGJmZF9zY2FuX3ZtYSk6IENsYW1wIG92ZXJmbG93cyB0byBtYXggYmZkX3ZtYSB2YWx1ZS4KCUNvcnJlY3QgdmFsdWUgcmV0dXJuZWQgaW4gImVuZCIgZm9yICIweDxub24taGV4PiIuCgoyMDAyLTAyLTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNwdS1hcm0uYyAocHJvY2Vzc29ycyk6IFJlcGxhY2UgJ2FyY2gnIGZpZWxkIHdpdGggJ21hY2gnLgoJKHNjYW4pOiBUZXN0IGFnYWluc3QgJ21hY2gnIGZpZWxkIGluIGluZm8gc3RydWN0dXJlLgoKMjAwMi0wMi0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChlbGZfZmFrZV9zZWN0aW9ucyk6IFVzZSBTSFRfTk9CSVRTIHdoZW4gU0VDX05FVkVSX0xPQUQuCgoyMDAyLTAyLTE0ICBNYXR0IEZyZWRldHRlICA8ZnJlZGV0dGVAbmV0YnNkLm9yZz4KCgkqIGVsZjMyLW02OGsuYyAoZWxmMzJfbTY4a19wcmludF9wcml2YXRlX2JmZF9kYXRhKTogUmVjb2duaXplCglFRl9NNjgwMDAuCgoyMDAyLTAyLTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogRG8gbm90IGluc2lzdCBvbgoJbm9uLXplcm8gcGh5c2ljYWwgYWRkcmVzc2VzIHdoZW4gYWRqdXN0aW5nIHRoZSBMTUFzIG9mIG5ldwoJc2VjdGlvbnMuCgoyMDAyLTAyLTEyICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfcmVsb2NfZmluYWxfdHlwZSk6IE5ldyBmdW5jdGlvbiBzdHJpcHBlZAoJZnJvbSBfYmZkX2VsZl9ocHBhX2dlbl9yZWxvY190eXBlLgoJKF9iZmRfZWxmX2hwcGFfZ2VuX3JlbG9jX3R5cGUpOiBSZW1vdmUgZHVwbGljYXRlIHByb3RvdHlwZS4KCSogZWxmMzItaHBwYS5oIChlbGYzMl9ocHBhX3JlbG9jX2ZpbmFsX3R5cGUpOiBBZGQgcHJvdHB0eXBlLgoJKiBlbGYzMi1ocHBhLmM6IEluY2x1ZGUgZWxmMzItaHBwYS5oIGJlZm9yZSBlbGYtaHBwYS5oLgoJKiBlbGY2NC1ocHBhLmggKGVsZjY0X2hwcGFfcmVsb2NfZmluYWxfdHlwZSk6IEFkZCBwcm90cHR5cGUuCgoyMDAyLTAyLTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsYXhfc2VjdGlvbik6IFNraXAgc2VjdGlvbiBiZWZvcmUKCWxvYWRpbmcgaXRzIGNvbnRlbnRzIGlmIHRoZXJlJ3Mgbm90aGluZyB0byBkbyBpbiBpdC4KCjIwMDItMDItMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3NpemVfc3R1YnMpOiBDb3JyZWN0IHRlc3QgZm9yIGNyb3NzaW5nCgk2NGsgYm91bmRhcnkuCgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFkZCBkeW5hbWljCglEVF9QUEM2NF9PUEQgYW5kIERUX1BQQzY0X09QRFNaIHRhZ3MuCgkocHBjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogU2V0IHZhbHVlcyBmb3IgdGhlbS4KCjIwMDItMDItMTEgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogZWxmLWJmZC5oIChlbGZjb3JlX3dyaXRlX2x3cHN0YXR1cyk6IEFkZCBwcm90b3R5cGUuCgkqIGVsZi5jIChlbGZjb3JlX2dyb2tfcHN0YXR1cyk6IEFkZCBwcm90b3R5cGUuCgkoZWxmY29yZV9ncm9rX2x3cHN0YXR1cyk6IEFkZCBwcm90b3R5cGUuCgkoZWxmY29yZV93cml0ZV9sd3BzdGF0dXMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmY29yZV93cml0ZV9wc3RhdHVzKTogRml4IHR5cG8sIGVsaW1pbmF0ZSB1bm5lY2Vzc2FyeSBtZW1jcHkuCgoyMDAyLTAyLTExICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNoLmM6IEFkZGVkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogZWxmMzItc2g2NC5jOiBMaWtld2lzZS4KCShzaF9lbGZfYWxpZ25fbG9hZHMpOiBNYXJrIHVudXNlZCBhcmdzIGFzIHN1Y2guCgkqIGVsZjY0LXNoNjQuYzogQWRkZWQgbWlzc2luZyBwcm90b3R5cGVzLgoJKHN0cnVjdCBlbGZfc2g2NF9saW5rX2hhc2hfZW50cnkpOiBGaXggdHlwby4KCShzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogRml4IGluZm8gYXJndW1lbnQgcGFzc2VkIHRvCglfYmZkX2VsZl9zZWN0aW9uX29mZnNldC4KCjIwMDItMDItMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMi0xMCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9nZW5lcmF0ZV9ydGluaXQpOiBTaWxlbmNlIHVuaW5pdGlhbGl6ZWQKCXZhcmlhYmxlIHdhcm5pbmdzLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsYXhfc2VjdGlvbik6IFNpbGVuY2Ugc2lnbmVkL3Vuc2lnbmVkCgljb21wYXJpc29uIHdhcm5pbmcuCgkqIHRyYWQtY29yZS5jICh0cmFkX3VuaXhfY29yZV9maWxlX3ApOiBTaWxlbmNlIHBvaW50ZXIvaW50ZWdlcgoJY2FzdCB3YXJuaW5ncyBmb3IgdGhlIGNvbW1vbiBjYXNlLgoKMjAwMi0wMi0xMCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogY29uZmlnLmJmZCAoc2gtKi1saW51eCosIHNoLSotZWxmKiB8IHNoLSotcnRlbXNlbGYqKTogQWRkIHNoNjQKCXZlY3RvcnMuCgkoc2gtKi1uZXRic2RlbGYqKTogTmV3LCB0byB0cnVtcCBzaCotKi1uZXRic2RlbGYqIGFuZCBhZGQgc2g2NAoJdmVjdG9ycy4KCjIwMDItMDItMDkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9ob3d0byk6IEFkZCBSX0FMUEhBX0JSU0dQLgoJKGVsZjY0X2FscGhhX3JlbG9jX21hcCwgZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiByZWxvYy5jIChCRkRfUkVMT0NfQUxQSEFfQlJTR1ApOiBOZXcuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlYnVpbGQuCgoyMDAyLTAyLTA5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBlbGY2NC1tbWl4LmMgKF9iZmRfbW1peF9maW5hbGl6ZV9saW5rZXJfYWxsb2NhdGVkX2dyZWdzKTogQ2hlY2sKCXRoYXQgYmFzZS1wbHVzLW9mZnNldCByZWxvYyBhY2NvdW50aW5nIGlzIGNvbnNpc3RlbnQuCgkobW1peF9lbGZfcmVsYXhfc2VjdGlvbik6IEtlZXAgYmFzZS1wbHVzLW9mZnNldCByZWxvYyBhY2NvdW50aW5nCgl1cCB0byBkYXRlIGZvciB1bmRlZmluZWQgc3ltYm9scy4KCjIwMDItMDItMDggIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCUZyb20gUmFpbmVyIE9ydGggIDxyb0BUZWNoRmFrLlVuaS1CaWVsZWZlbGQuREU+CgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmFrZV9zZWN0aW9ucyk6IERvbid0IGNyZWF0ZSAucmVsYQoJc2VjdGlvbnMgZm9yIHRoZSBPMzIgQUJJLgoKMjAwMi0wMi0wOCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGVsZjMyLWFybS5oOiBGaXggZm9ybWF0dGluZyBvZiBfKCIuLi4iKS4KCSogZWxmMzItZDEwdi5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jOiBMaWtld2lzZS4KCjIwMDItMDItMDggIEl2YW4gR3V6dmluZWMgPGl2YW5nQG9wZW5jb3Jlcy5vcmc+CgoJKiBjb2ZmLW9yMzIuYzogRml4IGNvbXBpbGUgdGltZSB3YXJuaW5nIG1lc3NhZ2VzLgoKMjAwMi0wMi0wOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJQ29udHJpYnV0ZSBzaDY0LWVsZi4KCTIwMDItMDEtMjMgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiByZWxvYy5jIChSX1NIX0dPVFBMVDMyLCBSX1NIX0dPVF9MT1cxNiwgUl9TSF9HT1RfTUVETE9XMTYsCglSX1NIX0dPVF9NRURISTE2LCBSX1NIX0dPVF9ISTE2LCBSX1NIX0dPVFBMVF9MT1cxNiwKCVJfU0hfR09UUExUX01FRExPVzE2LCBSX1NIX0dPVFBMVF9NRURISTE2LCBSX1NIX0dPVFBMVF9ISTE2LAoJUl9TSF9QTFRfTE9XMTYsIFJfU0hfUExUX01FRExPVzE2LCBSX1NIX1BMVF9NRURISTE2LAoJUl9TSF9QTFRfSEkxNiwgUl9TSF9HT1RPRkZfTE9XMTYsIFJfU0hfR09UT0ZGX01FRExPVzE2LAoJUl9TSF9HT1RPRkZfTUVESEkxNiwgUl9TSF9HT1RPRkZfSEkxNiwgUl9TSF9HT1RQQ19MT1cxNiwKCVJfU0hfR09UUENfTUVETE9XMTYsIFJfU0hfR09UUENfTUVESEkxNiwgUl9TSF9HT1RQQ19ISTE2LAoJUl9TSF9HT1QxMEJZNCwgUl9TSF9HT1RQTFQxMEJZNCwgUl9TSF9HT1QxMEJZOCwgUl9TSF9HT1RQTFQxMEJZOCwKCVJfU0hfQ09QWTY0LCBSX1NIX0dMT0JfREFUNjQsIFJfU0hfSk1QX1NMT1Q2NCwgUl9TSF9SRUxBVElWRTY0KToKCU5ldyByZWxvY3MuCgkqIGxpYmJmZC5oLCBiZmQtaW4yLmg6IFJlYnVpbHQuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9ob3d0b190YWJsZSk6IERlZmluZSBuZXcgcmVsb2NzLgoJKHNoX3JlbG9jX21hcCk6IE1hcCB0aGVtLgoJKFBMVF9FTlRSWV9TSVpFLCBlbGZfc2hfcGx0MF9lbnRyeV9iZSwgZWxmX3NoX3BsdDBfZW50cnlfbGUsCgllbGZfc2hfcGx0X2VudHJ5X2JlLCBlbGZfc2hfcGx0X2VudHJ5X2xlLCBlbGZfc2hfcGljX3BsdF9lbnRyeV9iZSwKCWVsZl9zaF9waWNfcGx0X2VudHJ5X2xlLCBlbGZfc2hfcGx0MF9lbnRyeSwgZWxmX3NoX3BsdF9lbnRyeSwKCWVsZl9zaF9waWNfcGx0X2VudHJ5LCBlbGZfc2hfc2l6ZW9mX3BsdCwgZWxmX3NoX3BsdF9wbHQwX29mZnNldCwKCWVsZl9zaF9wbHQwX2dvdHBsdF9vZmZzZXQsIGVsZl9zaF9wbHRfdGVtcF9vZmZzZXQsCgllbGZfc2hfcGx0X3N5bWJvbF9vZmZzZXQsIGVsZl9zaF9wbHRfcmVsb2Nfb2Zmc2V0LAoJbW92aV9zaG9yaV9wdXR2YWwpIFtJTkNMVURFX1NITUVESUFdOiBOZXcuCgkoZWxmX3NoX2xpbmtfaGFzaF9lbnRyeSkgW0lOQ0xVREVfU0hNRURJQV06IEFkZAoJZGF0YWxhYmVsX2dvdF9vZmZzZXQuCgkoc2hfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogSW5pdGlhbGl6ZSBpdC4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEF1Z21lbnQgdGhlIHNjb3BlIG9mCglzZWVuX3N0dF9kYXRhbGFiZWwuICBJbnRyb2R1Y2UgR09UUExUIHN1cHBvcnQuICBFeHRlbmQgR09UUEMsIFBMVCwKCUdPVCBhbmQgR09UT0ZGIGhhbmRsaW5nIHRvIG5ldyBTSG1lZGlhIHJlbG9jYXRpb24gdHlwZXMuICBTdXBwb3J0CglHT1RfQklBUy4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoc2hfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCkgW1RBUkdFVF9TSE1FRElBXTogU2V0IHVwIHZhbHVlcyBpbgoJUExUIGVudHJpZXMgdXNpbmcgbW92aV9zaG9yaV9wdXR2YWwuICBTdXBwb3J0IEdPVF9CSUFTLgoJKHNoX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zaDY0LmMgKHNobWVkaWFfcHJlcGFyZV9yZWxvYyk6IERvIG5vdCBhZGQgYWRkZW5kIHRvCglyZWxvY2F0aW9uLCBpdCdzIG5vdyBkb25lIGJ5IHRoZSBjYWxsZXIuCgkoR09UX0JJQVMpOiBOZXcuCgkqIGVsZjY0LXNoNjQuYyAoR09UX0JJQVMsIFBMVF9FTlRSWV9TSVpFLCBlbGZfc2g2NF9zaXplb2ZfcGx0LAoJZWxmX3NoNjRfcGx0X3BsdDBfb2Zmc2V0LCBlbGZfc2g2NF9wbHQwX2dvdHBsdF9vZmZzZXQsCgllbGZfc2g2NF9wbHRfdGVtcF9vZmZzZXQsIGVsZl9zaDY0X3BsdF9zeW1ib2xfb2Zmc2V0LAoJZWxmX3NoNjRfcGx0X3JlbG9jX29mZnNldCwgRUxGX0RZTkFNSUNfSU5URVJQUkVURVIsCgllbGZfc2g2NF9wY3JlbF9yZWxvY3NfY29waWVkLCBlbGZfc2g2NF9saW5rX2hhc2hfZW50cnksCgllbGZfc2g2NF9saW5rX2hhc2hfdGFibGUsIHNoNjRfZWxmNjRfbGlua19oYXNoX3RyYXZlcnNlLAoJc2g2NF9lbGY2NF9oYXNoX3RhYmxlKTogTmV3LgoJKHNoX2VsZjY0X2hvd3RvX3RhYmxlKTogSW50cm9kdWNlIG5ldyByZWxvY3MuCgkoc2hfZWxmNjRfaW5mb190b19ob3d0byk6IEFjY2VwdCBuZXcgUElDIHJlbG9jcy4KCShzaF9lbGY2NF9yZWxvY2F0ZV9zZWN0aW9uKTogQXVnbWVudCB0aGUgc2NvcGUgb2YKCXNlZW5fc3R0X2RhdGFsYWJlbC4gIFN1cHBvcnQgbmV3IFBJQyByZWxvY3MuCgkoc2hfZWxmNjRfY2hlY2tfcmVsb2NzKTogU3VwcG9ydCBuZXcgUElDIHJlbG9jcy4KCShlbGZfc2g2NF9wbHQwX2VudHJ5X2JlLCBlbGZfc2g2NF9wbHQwX2VudHJ5X2xlLAoJZWxmX3NoNjRfcGx0X2VudHJ5X2JlLCBlbGZfc2g2NF9wbHRfZW50cnlfbGUsCgllbGZfc2g2NF9waWNfcGx0X2VudHJ5X2JlLCBlbGZfc2g2NF9waWNfcGx0X2VudHJ5X2xlLAoJZWxmX3NoNjRfcGx0MF9lbnRyeSwgZWxmX3NoNjRfcGx0X2VudHJ5LCBlbGZfc2g2NF9waWNfcGx0X2VudHJ5LAoJc2g2NF9lbGY2NF9saW5rX2hhc2hfbmV3ZnVuYywgc2g2NF9lbGY2NF9saW5rX2hhc2hfdGFibGVfY3JlYXRlLAoJbW92aV9zaG9yaV9wdXR2YWwsIG1vdmlfM3Nob3JpX3B1dHZhbCwKCXNoNjRfZWxmNjRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMsCglzaDY0X2VsZjY0X2FkanVzdF9keW5hbWljX3N5bWJvbCwgc2g2NF9lbGY2NF9kaXNjYXJkX2NvcGllcywKCXNoNjRfZWxmNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zLAoJc2g2NF9lbGY2NF9maW5pc2hfZHluYW1pY19zeW1ib2wsCglzaDY0X2VsZjY0X2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTmV3LgoJKGVsZl9iYWNrZW5kX2NyZWF0ZV9keW5hbWljLXNlY3Rpb25zLAoJYmZkX2VsZjY0X2JmZF9saW5rX2hhc2hfdGFibGVfY3JlYXRlLAoJZWxmX2JhY2tlbmRfYWRqdXN0X2R5bmFtaWNfc3ltYm9sLAoJZWxmX2JhY2tlbmRfc2l6ZV9keW5hbWljX3NlY3Rpb25zLAoJZWxmX2JhY2tlbmRfZmluaXNoX2R5bmFtaWNfc3ltYm9sLAoJZWxmX2JhY2tlbmRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMsIGVsZl9iYWNrZW5kX3dhbnRfZ290X3BsdCwKCWVsZl9iYWNrZW5kX3BsdF9yZWFkb25seSwgZWxmX2JhY2tlbmRfd2FudF9wbHRfc3ltLAoJZWxmX2JhY2tlbmRfZ290X2hlYWRlcl9zaXplLCBlbGZfYmFja2VuZF9wbHRfaGVhZGVyX3NpemUpOgoJRGVmaW5lLgoJMjAwMS0wNS0xNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVsZjMyLXNoLmM6IFJlbnVtYmVyZWQgYW5kIHJlbmFtZWQgc29tZSBTSDUgcmVsb2NhdGlvbnMgdG8KCW1hdGNoIG9mZmljaWFsIG51bWJlcnMgYW5kIG5hbWVzOyBtb3ZlZCB1bm1hY2hpbmcgb25lcyB0byB0aGUKCXJhbmdlIDB4ZjItMHhmZi4KCSogZWxmMzItc2g2NC5jLCBlbGY2NC1zaDY0LmM6IExpa2V3aXNlLgoJMjAwMS0wMy0xMiAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxheF9zZWN0aW9uKTogRG9uJ3QgcmVsYXggU0htZWRpYQoJc2VjdGlvbnMuCgkyMDAxLTAzLTEyICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCSogZWxmMzItc2g2NC5jIChzaG1lZGlhX3ByZXBhcmVfcmVsb2MpOiBWYWxpZGF0ZSByZWxvY3MgdGhhdCBtdXN0CgliZSBhbGlnbmVkLgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBEaXR0by4KCTIwMDEtMDEtMTQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbGYzMi1zaDY0LmMgKGJmZF9lbGYzMl9iZmRfY29weV9wcml2YXRlX3NlY3Rpb25fZGF0YSk6IERlZmluZS4KCShzaDY0X2VsZl9mYWtlX3NlY3Rpb25zKTogU2V0IHR5cGUgdG8gU0hUX1NINV9DUl9TT1JURUQgZm9yIGEKCS5jcmFuZ2VzIHNlY3Rpb24gd2l0aCBTRUNfU09SVF9FTlRSSUVTIHNldC4KCShzaDY0X2JhY2tlbmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBTZXQgU0VDX1NPUlRfRU5UUklFUyBvbiBhbgoJaW5jb21pbmcgc29ydGVkIC5jcmFuZ2VzIHNlY3Rpb24uCgkoc2g2NF9iZmRfZWxmX2NvcHlfcHJpdmF0ZV9zZWN0aW9uX2RhdGEpOiBOZXcuCgkoc2g2NF9lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IE9ubHkgc29ydCAuY3JhbmdlcyBhbmQgbW9kaWZ5CglzdGFydCBhZGRyZXNzIGlmIGNhbGxlZCBieSBsaW5rZXIuCgkyMDAxLTAxLTA4ICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogQWN0aXZhdGUKCUhhbnMtUGV0ZXIgTmlsc3NvbidzIHNldCBiaXQgMCBwYXRjaCBmcm9tIDIwMDEtMDEtMDYuCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogRGl0dG8uCgkyMDAxLTAxLTA2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZWxmNjQtc2g2NC5jIChzaF9lbGY2NF9ob3d0b190YWJsZSk6IE5vIG9wZW4gYnJhY2UgYXQgc3RhcnQgb2YKCWxpbmUuICBBZGQgY29tbWVudHMgYmVmb3JlIGFsbCBlbnRyaWVzLgoJPFJfU0hfUFRfMTYsIFJfU0hfU0hNRURJQV9DT0RFPjogQ29ycmVjdCBhbmQgY2xhcmlmeSBkZXNjcmliaW5nCgljb21tZW50LgoJKHNoX2VsZjY0X3JlbG9jKTogQ29ycmVjdCBoZWFkIGNvbW1lbnQuCgkoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbik6IENvcnJlY3Qgc3BhY2luZy4KCTxyZWxvY2F0aW5nIGZvciBhIGxvY2FsIHN5bWJvbD46IERvIG5vdCBob25vdXIgU1RPX1NINV9JU0EzMjsKCWluc3RlYWQgY2FsbCByZWxvY19kYW5nZXJvdXMgY2FsbGJhY2suCgk8Y2FzZSBSX1NIX1NITUVESUFfQ09ERT46IE5ldyBjYXNlLgoJKHNoX2VsZjY0X2djX21hcmtfaG9vayk6IENvcnJlY3Qgc3BhY2luZy4KCShzaF9lbGY2NF9jaGVja19yZWxvY3MpOiBEaXR0by4KCSogZWxmMzItc2g2NC5jIChzaG1lZGlhX3ByZXBhcmVfcmVsb2MpIDxjYXNlIFJfU0hfU0hNRURJQV9DT0RFPjoKCU5ldyBjYXNlLgoJKiBlbGYzMi1zaC5jOiBDb3JyZWN0ICNlbmRpZiBjb21tZW50cyBmb3IgI2lmbmRlZi13cmFwcGVkCglmdW5jdGlvbnMuCgkoc2hfZWxmX2hvd3RvX3RhYmxlKSA8Ul9TSF9QVF8xNiwgUl9TSF9TSE1FRElBX0NPREU+OiBDb3JyZWN0LAoJY2xhcmlmeSBkZXNjcmliaW5nIGNvbW1lbnQuICBBZGQgY29tbWVudHMgYmVmb3JlIGFsbCBlbnRyaWVzLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKSA8cmVsb2NhdGluZyBmb3IgYSBsb2NhbCBzeW1ib2w+OiBEbyBub3QKCWhvbm91ciBTVE9fU0g1X0lTQTMyOyBpbnN0ZWFkIGNhbGwgcmVsb2NfZGFuZ2Vyb3VzIGNhbGxiYWNrLgoJMjAwMS0wMS0wNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CglTb3J0IC5jcmFuZ2VzIHNlY3Rpb24gaW4gZmluYWwgbGluay4gIFByZXBhcmUgdG8gc2V0IGJpdCAwIG9uCgllbnRyeSBhZGRyZXNzLgoJKiBlbGYzMi1zaDY0LmMgKHN0cnVjdCBzaDY0X2ZpbmRfc2VjdGlvbl92bWFfZGF0YSk6IE5ldy4KCShzaDY0X2VsZl9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IEZpeCB0eXBvIGluIHByb3RvdHlwZS4KCShzaDY0X2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogU2V0IFNFQ19ERUJVR0dJTkcgb24gaW5jb21pbmcKCS5jcmFuZ2VzIHNlY3Rpb24uCgkoc2g2NF9iYWNrZW5kX3NlY3Rpb25fZnJvbV9zaGRyKTogTmV3LCB0byByZWNvZ25pemUKCVNIVF9TSDVfQ1JfU09SVEVEIG9uIGluY29taW5nIC5jcmFuZ2VzIHNlY3Rpb24uCgkoZWxmX2JhY2tlbmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBEZWZpbmUuCgkoc2g2NF9lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IFNvcnQgb3V0Z29pbmcgLmNyYW5nZXMKCXNlY3Rpb24uICAoTmV3LCB0ZW1wb3JhcmlseSBkaXNhYmxlZDopIFNldCBiaXQgMCBvbiBlbnRyeSBhZGRyZXNzCglhY2NvcmRpbmcgdG8gSVNBIHR5cGUuCgkoc2g2NF9maW5kX3NlY3Rpb25fZm9yX2FkZHJlc3MpOiBOZXcuCgkoY3JhbmdlX3Fzb3J0X2NtcGIsIGNyYW5nZV9xc29ydF9jbXBsLCBjcmFuZ2VfYnNlYXJjaF9jbXBiLAoJY3JhbmdlX2JzZWFyY2hfY21wbCk6IE1vdmUgaGVyZSBmcm9tIG9wY29kZXMvc2g2NC1kaXMuYy4KCShzaDY0X2FkZHJlc3NfaW5fY3Jhbmdlcyk6IE1vdmUgaGVyZSBmcm9tIG9wY29kZXMvc2g2NC1kaXMuYy4gIFVzZQoJYmZkX21hbGxvYywgbm90IHhtYWxsb2MuCgkoc2g2NF9nZXRfY29udGVudHNfdHlwZSk6IE1vdmUgaGVyZSBmcm9tIG9wY29kZXMvc2g2NC1kaXMuYy4gIE1ha2UKCWdsb2JhbC4KCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZjY0X2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBOZXcsIChidXQKCXRlbXBvcmFyaWx5IGRpc2FibGVkKSBzZXR0aW5nIGJpdCAwIG9uIGVudHJ5IGFkZHJlc3MuCgkoZWxmX2JhY2tlbmRfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IERlZmluZS4KCTIwMDEtMDEtMDUgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfaG93dG9fdGFibGUpIDxSX1NIX1BUXzE2PjogQWRqdXN0IGZpZWxkcyB0bwoJYmUgYSBwcm9wZXIgcmVsb2NhdGlvbiBmb3IgUFRBIGFuZCBQVEIgcmF0aGVyIHRoYW4gYSBtYXJrZXIuCgk8Ul9TSF9JTU1VNSwgUl9TSF9JTU1TNiwgUl9TSF9JTU1VNiwgUl9TSF9JTU1TMTAsIFJfU0hfSU1NUzEwQlkyLAoJUl9TSF9JTU1TMTBCWTQsIFJfU0hfSU1NUzEwQlk4LCBSX1NIX0lNTVMxNiwgUl9TSF9JTU1VMTYsCglSX1NIX0lNTV9MT1cxNiwgUl9TSF9JTU1fTE9XMTZfUENSRUwsIFJfU0hfSU1NX01FRExPVzE2LAoJUl9TSF9JTU1fTUVETE9XMTZfUENSRUwsIFJfU0hfSU1NX01FREhJMTYsIFJfU0hfSU1NX01FREhJMTZfUENSRUwsCglSX1NIX0lNTV9ISTE2LCBSX1NIX0lNTV9ISTE2X1BDUkVMLCBSX1NIXzY0LCBSX1NIXzY0X1BDUkVMPjoKCVplcm8gc3JjX21hc2suCgkqIGVsZjY0LXNoNjQuYzogRGl0dG8uCgkoc2hfZWxmNjRfcmVsb2NhdGVfc2VjdGlvbikgPGNhc2UgUl9TSF9QVF8xNj46IE5ldyBjYXNlLgoJKiBlbGYzMi1zaDY0LmM6IEluY2x1ZGUgb3Bjb2Rlcy9zaDY0LW9wYy5oCgkoc2htZWRpYV9wcmVwYXJlX3JlbG9jKTogVGFrZSBhIGJmZF9saW5rX2luZm8gcG9pbnRlciBhcyBmaXJzdAoJYXJndW1lbnQuICBEcm9wIGNvbnN0IHF1YWxpZmllcnMgZnJvbSAiYmZkICoiIGFuZCAiYmZkX2J5dGUgKiIKCXBhcmFtZXRlcnMuICBObyB1bnVzZWQgcGFyYW1ldGVycy4gIENhbGxlciBjaGFuZ2VkLgoJPGNhc2UgUl9TSF9QVF8xNj46IE5ldyBjYXNlLgoJKiBNYWtlZmlsZS5hbSAoZWxmMzItc2g2NC5sbyk6IEFkZCBkZXBlbmRlbmN5IG9uIHNoNjQtb3BjLmguCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJMjAwMC0xMi0zMCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9mYWtlX3NlY3Rpb25zKTogU2V0IFNIRl9TSDVfSVNBMzIgZm9yCglhbGwgY29kZSBzZWN0aW9ucy4KCShzaF9lbGY2NF9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogQ2hhbmdlIGZyb20gRUZfU0g2NCB0byBFRl9TSDUuCgkoc2g2NF9lbGZfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogRGl0dG8uCgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGZfZmFrZV9zZWN0aW9ucyk6IFVzZSBzaDY0X2VsZl9zZWN0aW9uX2RhdGEKCXRvIGFjY2VzcyBzdG9yZWQgc2VjdGlvbiBmbGFncy4KCShzaDY0X2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogUmV0dXJuIGltbWVkaWF0ZWx5IHVubGVzcwoJY2FsbGVkIGJ5IGxpbmtlci4gIFVzZSBzaDY0X2VsZl9zZWN0aW9uX2RhdGEgKGNyYW5nZXMpIHRvIGdldCBzaXplCglvZiBsaW5rZXItZ2VuZXJhdGVkIGNyYW5nZXMgZW50cmllcy4KCShzaDY0X2VsZl9jb3B5X3ByaXZhdGVfZGF0YSk6IEFkZCBtaXNzaW5nICJyZXR1cm4gdHJ1ZSIuCgkoc2g2NF9lbGZfc2V0X21hY2hfZnJvbV9mbGFncyk6IENoYW5nZSBmcm9tIEVGX1NINjQgdG8gRUZfU0g1LgoJKHNoX2VsZjY0X21lcmdlX3ByaXZhdGVfZGF0YSk6IERpdHRvLgoJMjAwMC0xMi0xOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9mYWtlX3NlY3Rpb25zKTogTmV3LCBjb3B5IG9mCgllbGY2NC1zaDY0LmM6c2g2NF9lbGZfZmFrZV9zZWN0aW9ucy4KCShlbGZfYmFja2VuZF9mYWtlX3NlY3Rpb25zKTogRGVmaW5lIGFzIHNoNjRfZWxmNjRfZmFrZV9zZWN0aW9ucy4KCTIwMDAtMTItMTggIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2NvcHlfcHJpdmF0ZV9kYXRhX2ludGVybmFsKTogRGVsZXRlLgoJKHNoNjRfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBOZXcuCgkoZWxmX2JhY2tlbmRfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IERlZmluZS4KCShzaDY0X2VsZl9mYWtlX3NlY3Rpb25zKTogR2V0IGhlYWRlciBmbGFncyBmcm9tIHRkYXRhIGZpZWxkLgoJKHNoNjRfZWxmX2NvcHlfcHJpdmF0ZV9kYXRhKTogRG8gbm90IGNhbGwKCXNoNjRfZWxmX2NvcHlfcHJpdmF0ZV9kYXRhX2ludGVybmFsLCBqdXN0IGNvcHkgZV9mbGFncyBmaWVsZC4KCShzaDY0X2VsZl9tZXJnZV9wcml2YXRlX2RhdGEpOiBEbyBub3QgY2FsbAoJc2g2NF9lbGZfY29weV9wcml2YXRlX2RhdGFfaW50ZXJuYWwuCgkyMDAwLTEyLTEyICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCVJlbW92ZSBFRl9TSDY0X0FCSTY0LCBsZXQgRUxGIHNpemUgbWFrZSBkaWZmZXJlbmNlLgoJUmVtb3ZlIFNINjQtc3BlY2lmaWMgQkZEIHNlY3Rpb24gZmxhZy4KCSogZWxmMzItc2g2NC5jIChzaDY0X2VsZl9mYWtlX3NlY3Rpb25zKTogUmVjb2duaXplIHNlY3Rpb24gYXMKCWNvbnRhaW5pbmcgU0htZWRpYSB0aHJvdWdoIGVsZl9zZWN0aW9uX2RhdGEgKGFzZWN0KS0+dGRhdGEKCW5vbi16ZXJvLCBub3QgdXNpbmcgYSBCRkQgc2VjdGlvbiBmbGFnLgoJKHNoNjRfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBEb24ndCByZWNvZ25pemUgRUZfU0g2NF9BQkk2NC4KCShzaDY0X2VsZl9tZXJnZV9wcml2YXRlX2RhdGEpOiBTaW1pbGFyLgoJKGVsZl9iYWNrZW5kX3NlY3Rpb25fZmxhZ3MpOiBEb24ndCBkZWZpbmUuCgkoc2g2NF9lbGZfYmFja2VuZF9zZWN0aW9uX2ZsYWdzKTogRGVsZXRlLgoJKiBlbGY2NC1zaDY0LmMgKHNoX2VsZjY0X3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBSZWNvZ25pemUgRUZfU0g2NCwKCW5vdCBFRl9TSDY0X0FCSTY0LgoJKHNoX2VsZjY0X21lcmdlX3ByaXZhdGVfZGF0YSk6IFNpbWlsYXIuCgkqIHNlY3Rpb24uYyAoU2VjdGlvbiBmbGFncyBkZWZpbml0aW9ucyk6IERvbid0IGRlZmluZQoJU0VDX1NIX0lTQV9TSE1FRElBLgoJKGJmZC1pbjIuaCk6IFJlZ2VuZXJhdGUuCgkyMDAwLTEyLTA5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCU1ha2UgRGF0YUxhYmVsIHJlZmVyZW5jZXMgd29yayB3aXRoIHBhcnRpYWwgbGlua2luZy4KCSogZWxmMzItc2g2NC5jOiBGaXggZm9ybWF0dGluZy4KCShzaDY0X2VsZl9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IE5ldy4KCShlbGZfYmFja2VuZF9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IERlZmluZSB0bwoJc2g2NF9lbGZfbGlua19vdXRwdXRfc3ltYm9sX2hvb2suCgkoc2g2NF9lbGZfYWRkX3N5bWJvbF9ob29rKTogTWFrZSBEYXRhTGFiZWwgc3ltYm9sIGp1c3QgZ2xvYmFsCgl1bmRlZmluZWQgaWYgcGFydGlhbCBsaW5raW5nLiAgQWRqdXN0IHNhbml0eSBjaGVjay4KCSogZWxmNjQtc2g2NC5jIChzaDY0X2VsZjY0X2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogTmV3LgoJKGVsZl9iYWNrZW5kX2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rKTogRGVmaW5lIHRvCglzaDY0X2VsZjY0X2xpbmtfb3V0cHV0X3N5bWJvbF9ob29rLgoJKHNoNjRfZWxmNjRfYWRkX3N5bWJvbF9ob29rKTogTWFrZSBEYXRhTGFiZWwgc3ltYm9sIGp1c3QgZ2xvYmFsCgl1bmRlZmluZWQgaWYgcGFydGlhbCBsaW5raW5nLiAgQWRqdXN0IHNhbml0eSBjaGVjay4KCTIwMDAtMTItMDcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJSW1wbGVtZW50IHNlbWFudGljcyBmb3IgaW50ZXItZmlsZSBEYXRhTGFiZWwgcmVmZXJlbmNlcy4KCSogZWxmNjQtc2g2NC5jIChEQVRBTEFCRUxfU1VGRklYKTogRGVmaW5lLgoJKHNoNjRfZWxmNjRfYWRkX3N5bWJvbF9ob29rKTogTmV3LgoJKHNoX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBJZiBwYXNzaW5nIGFuIGluZGlyZWN0IHN5bWJvbCB3aXRoCglzdF90eXBlIFNUVF9EQVRBTEFCRUwgb24gdGhlIHdheSB0byBhIHN5bWJvbCB3aXRoIHN0X290aGVyCglTVE9fU0g1X0lTQTMyLCBkbyBub3QgYml0b3IgMSB0byB0aGUgcmVsb2NhdGlvbi4KCShlbGZfYmFja2VuZF9hZGRfc3ltYm9sX2hvb2spOiBEZWZpbmUgdG8KCXNoNjRfZWxmNjRfYWRkX3N5bWJvbF9ob29rLgoJKiBlbGY2NC1zaDMyLmM6IFR3ZWFrIGNvbW1lbnRzLgoJKERBVEFMQUJFTF9TVUZGSVgpOiBEZWZpbmUuCgkoc2g2NF9lbGZfYWRkX3N5bWJvbF9ob29rKTogTmV3LgoJKGVsZl9iYWNrZW5kX2FkZF9zeW1ib2xfaG9vayk6IERlZmluZSB0byBzaDY0X2VsZl9hZGRfc3ltYm9sX2hvb2suCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSWYgcGFzc2luZyBhbiBpbmRpcmVjdAoJc3ltYm9sIHdpdGggc3RfdHlwZSBTVFRfREFUQUxBQkVMIG9uIHRoZSB3YXkgdG8gYSBzeW1ib2wgd2l0aAoJc3Rfb3RoZXIgU1RPX1NINV9JU0EzMiwgZG8gbm90IGJpdG9yIDEgdG8gdGhlIHJlbG9jYXRpb24uCgkyMDAwLTEyLTA1ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCVBhc3MgdGhyb3VnaCBTVFRfREFUQUxBQkVMLgoJKiBlbGYzMi1zaDY0LmMgKHNoNjRfZWxmX2dldF9zeW1ib2xfdHlwZSk6IE5ldy4KCShlbGZfYmFja2VuZF9nZXRfc3ltYm9sX3R5cGUpOiBEZWZpbmUuCgkqIGVsZjY0LXNoNjQuYyAoc2g2NF9lbGY2NF9nZXRfc3ltYm9sX3R5cGUpOiBOZXcuCgkoZWxmX2JhY2tlbmRfZ2V0X3N5bWJvbF90eXBlKTogRGVmaW5lLgoJMjAwMC0xMS0zMCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVsZjMyLXNoNjQuYzogVHdlYWsgY29tbWVudHMuCgkoc2g2NF9lbGZfY29weV9wcml2YXRlX2RhdGFfaW50ZXJuYWwpOiBBZGQgcHJvdG90eXBlLgoJKGJmZF9lbGYzMl9iZmRfc2V0X3ByaXZhdGVfZmxhZ3MpOiBEZWZpbmUuCgkoc2g2NF9lbGZfY29weV9wcml2YXRlX2RhdGFfaW50ZXJuYWwpOiBDb21wYXJlIG1hY2hpbmUgbmFtZSwgbm90Cgl0ZXh0dWFsIEJGRCB0YXJnZXQgbmFtZSwgdG8gY2hlY2sgd2hldGhlciB0byBjb3B5IHNlY3Rpb24gZmxhZwoJU0hGX1NINV9JU0EzMi4KCShzaDY0X2VsZl9tZXJnZV9wcml2YXRlX2RhdGEpOiBWYWxpZGl6ZSBiZmRfZ2V0X2FyY2hfc2l6ZS4KCVR3ZWFrIHNlY3Rpb24tY29udGVudHMtdHlwZS1taXNtYXRjaCBtZXNzYWdlLgoJKHNobWVkaWFfcHJlcGFyZV9yZWxvYyk6IEFkZCBBVFRSSUJVVEVfVU5VU0VEIG1hcmtlcnMuCglWYWxpZGl6ZSByZWxvYy10eXBlcy4KCSogZWxmNjQtc2g2NC5jOiBOZXcgZmlsZS4KCSogdGFyZ2V0cy5jIChiZmRfZWxmNjRfc2g2NF92ZWMsIGJmZF9lbGY2NF9zaDY0bF92ZWMpOiBEZWNsYXJlLgoJKiBNYWtlZmlsZS5hbSAoQkZENjRfQkFDS0VORFMpOiBBZGQgZWxmNjQtc2g2NC5sby4KCShCRkQ2NF9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmNjQtc2g2NC5jLgoJUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkIChzaDY0LSotZWxmKik6IEFkZCBiZmRfZWxmNjRfc2g2NF92ZWMgYW5kCgliZmRfZWxmNjRfc2g2NGxfdmVjLgoJKiBjb25maWd1cmUuaW46IEhhbmRsZSBiZmRfZWxmNjRfc2g2NF92ZWMgYW5kCgliZmRfZWxmNjRfc2g2NGxfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL1BPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgoJKiBwby9iZmQucG90OiBSZWdlbmVyYXRlLgoJMjAwMC0xMS0yOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVsZjMyLXNoNjQuYyAoc2g2NF9lbGZfc2V0X21hY2hfZnJvbV9mbGFncyk6IERvIG5vdCByZWNvZ25pemUKCWFueXRoaW5nIGVsc2UgYnV0IEVGX1NINjQgYW5kIEVGX1NINjRfQUJJNjQuCgkoc2g2NF9lbGZfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogRW1pdCBlcnJvciBmb3IgYW55dGhpbmcgZWxzZSBidXQKCUVGX1NINjQgYW5kIEVGX1NINjRfQUJJNjQuCgkqIGNvbmZpZy5iZmQ6IFJlbW92ZSBiZmRfZWxmMzJfc2hibGluX3ZlYyBhbmQgYmZkX2VsZjMyX3NobGluX3ZlYwoJZnJvbSB0YXJnX3NlbHZlY3MuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGNvZmZsaW5rLmxvIHRvIGJmZF9lbGYzMl9zaDY0X3ZlYyBhbmQKCWJmZF9lbGYzMl9zaDY0bF92ZWMgYXMgYSB0ZW1wb3JhcnkgbWVhc3VyZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJMjAwMC0xMS0yNyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGNwdS1zaC5jIChhcmNoX2luZm9fc3RydWN0KTogSW5jbHVkZSBzaDUgaXRlbQoJdW5jb25kaXRpb25hbGl6ZWQuCgkqIGNvbmZpZy5iZmQgKHNoNjQtKi1lbGYqKTogRG8gbm90IHNldCB0YXJnX2NmbGFncy4KCUFkZCB0YXJnX3NlbHZlY3MgYmZkX2VsZjMyX3NoX3ZlYywgYmZkX2VsZjMyX3NobF92ZWMsCgliZmRfZWxmMzJfc2hibGluX3ZlYyBhbmQgYmZkX2VsZjMyX3NobGluX3ZlYy4KCSogZWxmMzItc2g2NC5jOiBUd2VhayBjb21tZW50cy4KCShzaDY0X2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogUmVjb2duaXplIGFsbCBtYWNoaW5lIGZsYWdzIHRoYXQKCWFyZSBwcm9wZXIgc3Vic2V0cyBvZiBTSDY0IGFzIGJmZF9tYWNoX3NoNS4gIEFkZCBFRl9TSDY0X0FCSTY0LgoJKHNoNjRfZWxmX2NvcHlfcHJpdmF0ZV9kYXRhX2ludGVybmFsKTogV3JhcCBsb25nIGxpbmUuCgkoc2g2NF9lbGZfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogUmV3cml0ZSB0byBhbGxvdyBvYmplY3RzIGZyb20KCVNINjQgc3Vic2V0cyB0byBiZSBsaW5rZWQgdG9nZXRoZXIuCgkoSU5DTFVERV9TSE1FRElBKTogRGVmaW5lLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbikgPGxvY2FsIHN5bWJvbD46CglQYXJlbnRoZXNpemUgcGx1cy1leHByZXNzaW9uIGluc2lkZSBvci1leHByZXNzaW9uLgoJPGdsb2JhbCBzeW1ib2w+OiBEaXR0by4KCShzaF9lbGZfc2V0X21hY2hfZnJvbV9mbGFncyk6IFJlbW92ZSBjb2RlIHJlZnVzaW5nCglkZWxldGVkIEVGX1NINjRfMzJCSVRfQUJJIGZsYWcuCgkyMDAwLTExLTI2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZWxmMzItc2guYyAoc2hfZWxmX2hvd3RvX3RhYmxlKSA8Ul9TSF9JTU1fTE9XMTZfUENSRUwsCglSX1NIX0lNTV9NRURMT1cxNl9QQ1JFTCwgUl9TSF9JTU1fTUVESEkxNl9QQ1JFTCwKCVJfU0hfSU1NX0hJMTZfUENSRUwsIFJfU0hfNjRfUENSRUw+OiBTZXQgcGNyZWxfb2Zmc2V0IHRvIHRydWUuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pIDxsb2NhbCBzeW1ib2w+OiBPciAxIGluCgljYWxjdWxhdGlvbiBvZiByZWxvY2F0aW9uIGlmIHN5bS0+c3Rfb3RoZXIgJiBTVE9fU0g1X0lTQTMyLgoJPGdsb2JhbCBzeW1ib2w+OiBEaXR0byBpZiBoLT5vdGhlciAmIFNUT19TSDVfSVNBMzIuCgkqIGVsZjMyLXNoNjQuYyAoc2htZWRpYV9wcmVwYXJlX3JlbG9jKTogQWRkIHJlbC0+cl9hZGRlbmQgdG8KCXJlbG9jYXRpb24uCgkyMDAwLTExLTI0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZjMyLXNoNjQubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLXNoNjQuYy4KCVJlZ2VuZXJhdGUgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYXJjaHVyZXMuYzogQWRkIGJmZF9tYWNoX3NoNS4KCSogY29uZmlnLmJmZDogTWFwIHRhcmdfY3B1IHNoKiB0byBiZmRfc2hfYXJjaC4KCUhhbmRsZSBzaDY0LSotZWxmKi4gIFNldCB0YXJnX2NmbGFncyB0byAtRElOQ0xVREVfU0hNRURJQS4KCSogY29uZmlndXJlLmluOiBIYW5kbGUgYmZkX2VsZjMyX3NoNjRfdmVjIGFuZCBiZmRfZWxmMzJfc2g2NGxfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ19TSF9TSE1FRElBX0NPREUsIEJGRF9SRUxPQ19TSF9JTU1VNSwKCUJGRF9SRUxPQ19TSF9JTU1TNiwgQkZEX1JFTE9DX1NIX0lNTVM2QlkzMiwgQkZEX1JFTE9DX1NIX0lNTVU2LAoJQkZEX1JFTE9DX1NIX0lNTVMxMCwgQkZEX1JFTE9DX1NIX0lNTVMxMEJZMiwKCUJGRF9SRUxPQ19TSF9JTU1TMTBCWTQsIEJGRF9SRUxPQ19TSF9JTU1TMTBCWTgsCglCRkRfUkVMT0NfU0hfSU1NUzE2LCBCRkRfUkVMT0NfU0hfSU1NVTE2LCBCRkRfUkVMT0NfU0hfSU1NX0xPVzE2LAoJQkZEX1JFTE9DX1NIX0lNTV9MT1cxNl9QQ1JFTCwgQkZEX1JFTE9DX1NIX0lNTV9NRURMT1cxNiwKCUJGRF9SRUxPQ19TSF9JTU1fTUVETE9XMTZfUENSRUwsIEJGRF9SRUxPQ19TSF9JTU1fTUVESEkxNiwKCUJGRF9SRUxPQ19TSF9JTU1fTUVESEkxNl9QQ1JFTCwgQkZEX1JFTE9DX1NIX0lNTV9ISTE2LAoJQkZEX1JFTE9DX1NIX0lNTV9ISTE2X1BDUkVMLCBCRkRfUkVMT0NfU0hfUFRfMTYpOiBOZXcgcmVsb2NhdGlvbnMuCgkqIGNwdS1zaC5jIFtJTkNMVURFX1NITUVESUFdIChhcmNoX2luZm9fc3RydWN0KTogRGVmaW5lIGFuZCBsaW5rCglpbiBpdGVtIGZvciBTSDUuCgkqIGVsZjMyLXNoLmMgW0lOQ0xVREVfU0hNRURJQV0gKHNoX2VsZl9ob3d0b190YWJsZSk6IEFkZCBob3d0byBpdGVtcwoJZm9yIFNIbWVkaWEgcmVsb2NzLgoJW0lOQ0xVREVfU0hNRURJQV0gKHNoX3JlbCk6IEFkZCBtYXBwaW5ncyBmb3IgU0htZWRpYSByZWxvY3MuCglbSU5DTFVERV9TSE1FRElBXSAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pIFtkZWZhdWx0XTogQ2FsbAoJc2htZWRpYV9wcmVwYXJlX3JlbG9jLCBnb3RvIGZpbmFsX2xpbmtfcmVsb2NhdGUgaWYgaXQgcmV0dXJucwoJbm9uLXplcm8sIGVsc2UgZmFpbCBhcyBiZWZvcmUuCgkoc2hfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBQcm92aWRlIGZ1bmN0aW9uIG9ubHkgaWYgbm90IGRlZmluZWQKCWFzIG1hY3JvLiAgRG8gbm90IHJlY29nbml6ZSBvYmplY3RzIHdpdGggRUZfU0g2NF8zMkJJVF9BQkkgc2V0LgoJKHNoX2VsZl9zZXRfcHJpdmF0ZV9mbGFncyk6IFByb3ZpZGUgZnVuY3Rpb24gb25seSBpZiBub3QgZGVmaW5lZAoJYXMgYSBtYWNyby4KCShzaF9lbGZfY29weV9wcml2YXRlX2RhdGEpOiBTaW1pbGFyLgoJKHNoX2VsZl9tZXJnZV9wcml2YXRlX2RhdGEpOiBTaW1pbGFyLgoJKiBzZWN0aW9uLmMgKFNFQ19TSF9JU0FfU0hNRURJQSk6IE5ldy4KCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfc2g2NF92ZWMsIGJmZF9lbGYzMl9zaDY0bF92ZWMpOiBEZWNsYXJlLgoJKiBlbGYzMi1zaDY0LmM6IE5ldyBmaWxlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDItMDcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogYmZkLWluLmg6IFVwZGF0ZSA8c3RkYm9vbC5oPiBjaGVjayB0byBvbmx5IHNlZSBpZiA8c3RkYm9vbC5oPiBoYXMKCWJlZW4gaW5jbHVkZWQsIG5vdCBkcmFnIGl0IGluLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAyLTAyLTA2ICBILkouIEx1ICAoaGpsQGdudS5vcmcpCgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IFVwZGF0ZQoJdGhlIG1hY2ggYW5kIElTQSBmaWVsZHMgaWYgbmVjZXNzYXJ5LgoKMjAwMi0wMi0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hcmNoX21hY2hfaG9vayk6IFNlbGVjdCB0aGUgaGlnaGVzdCBrbm93bgoJQVJNIGFyY2hpdGVjdHVyZSB3aGVuIGFuIEZfQVJNXzUgZmxhZyBpcyBkZXRlY3RlZCwgc2luY2Ugd2UgY2Fubm90CgliZSBzdXJlIGV4YWN0bHkgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoaXMgcmVwcmVzZW50cy4KCjIwMDItMDItMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby90ci5wbzogVXBkYXRlZCB0cmFuc2xhdGlvbi4KCjIwMDItMDItMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJRnJvbSBKaW1pIFggPGppbWl4QHdhdHNvbi5pYm0uY29tPgoJKiBhcmNodXJlcyAoYmZkX21hY2hfcHBjNjQpOiBEZWZpbmUuCgkoYmZkX3Bvd2VycGNfYXJjaCk6IFJlbmFtZSB0byBiZmRfcG93ZXJwY19hcmNocy4KCShiZmRfcG93ZXJwY19hcmNoKTogRGVmaW5lLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS1wb3dlcnBjLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBSZW5hbWUgdG8gYmZkX3Bvd2VycGNfYXJjaHMuCgkoYmZkX3Bvd2VycGNfYXJjaCk6IE1vdmUgdG8gdGFpbCBvZiBiZmRfcG93ZXJwY19hcmNocy4KCShiZmRfcG93ZXJwY19hcmNocyk6IEFkZCBkZWZhdWx0IHBvd2VycGM2NCBhcmNoLgoKMjAwMi0wMi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ2hlY2sgZm9yIHJlbG9jcwoJYWdhaW5zdCBzZWN0aW9uIHN5bXMgaW4gcmVhZG9ubHkgc2VjdGlvbnMuICBEb24ndCBkbyB0aGUgZ2xvYmFsCglzeW0gY2hlY2sgaWYgd2UgZmluZCBvbmUuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGZfczM5MF9ncm9rX3Byc3RhdHVzKTogQWRkIG1pc3NpbmcgcHJvdG90eXBlLgoKMjAwMi0wMi0wNCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZWxmNjQtbW1peC5jIChtbWl4X2R1bXBfYnBvX2dyZWdzKTogTmV3IGZ1bmN0aW9uLgoJKG1taXhfZWxmX2NoZWNrX2NvbW1vbl9yZWxvY3MpIDxjYXNlIFJfTU1JWF9CQVNFX1BMVVNfT0ZGU0VUPjoKCUNhbGwgYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgb25seSBvbmNlLiAgSW5pdGlhbGl6ZQoJYnBvZGF0YS0+bl9icG9fcmVsb2NzX3RoaXNfc2VjdGlvbi4KCShfYmZkX21taXhfcHJlcGFyZV9saW5rZXJfYWxsb2NhdGVkX2dyZWdzKTogUmVtb3ZlIGNvbW1lbnQKCXJlZmVycmluZyB0byBEU09zLgoJKGJwb19yZWxvY19yZXF1ZXN0X3NvcnRfZm4pOiBEb24ndCB1c2UgZGlmZmVyZW5jZSBvZiB2YWx1ZXMgYXMKCXJldHVybi12YWx1ZS4KCjIwMDItMDItMDIgIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRD4KCgkqIGNvbmZpZ3VyZS5pbjogVHdlYWsgdGhlIEZyZWVCU0QgNC54IHJlY29nbml0aW9uIG1vcmUuICBPbmx5IHRyZWF0Cgl2ZXJzaW9uIDQuNSBhbmQgbGF0ZXIgdGhlIHNhbWUgYXMgNS1DVVJSRU5ULgoJKiBjb25maWd1cmU6IFJlLWdlbmVyYXRlLgoKMjAwMi0wMi0wMiAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZy5iZmQgKGhwcGEqLSotbmV0YnNkKik6IE5ldyB0YXJnZXQuCgoyMDAyLTAxLTMxICBQaGlsaXBwIFRob21hcyAgPHB0aG9tYXNAc3VzZS5kZT4KCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBNb3ZlIEVSUk9SCgl0byBmcm9udCBvZiBtZXNzYWdlLiBVbmlmeSBtZXNzYWdlcyB3aXRoIGVsZjMyLWFybS5oLiBVc2UKCWNvbW1hcyB3aGVyZSBuZWNjZXNzYXJ5LgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBVc2UgYWxsIHVwY2FzZQoJRVJST1IgaW4gbWVzc2FnZXMuIFVuaWZ5IG1lc3NhZ2VzIHdpdGggY29mZi1hcm0uYy4gQ29ycmVjdAoJVkZQL0ZQQSBlcnJvciBtZXNzYWdlLgoJKGVsZjMyX2FybV9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogRG9uJ3QgbWFyayBBUENTLTI2IGFuZAoJQVBDUy0zMiBmb3IgdHJhbnNsYXRpb24uCgoyMDAyLTAyLTAxICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJUGVyZm9ybSBvbi1kZW1hbmQgZ2xvYmFsIHJlZ2lzdGVyIGFsbG9jYXRpb24gZnJvbQoJUl9NTUlYX0JBU0VfUExVU19PRkZTRVQgcmVsb2NzLgoJKiBlbGY2NC1tbWl4LmMgKHN0cnVjdCBicG9fcmVsb2Nfc2VjdGlvbl9pbmZvLCBzdHJ1Y3QKCWJwb19yZWxvY19yZXF1ZXN0LCBzdHJ1Y3QgYnBvX2dyZWdfc2VjdGlvbl9pbmZvKTogTmV3LgoJKG1taXhfZWxmX2NoZWNrX2NvbW1vbl9yZWxvY3MsIG1taXhfZWxmX2djX3N3ZWVwX2hvb2ssCglicG9fcmVsb2NfcmVxdWVzdF9zb3J0X2ZuLCBtbWl4X2VsZl9yZWxheF9zZWN0aW9uLAoJX2JmZF9tbWl4X2NoZWNrX2FsbF9yZWxvY3MsCglfYmZkX21taXhfcHJlcGFyZV9saW5rZXJfYWxsb2NhdGVkX2dyZWdzLAoJX2JmZF9tbWl4X2ZpbmFsaXplX2xpbmtlcl9hbGxvY2F0ZWRfZ3JlZ3MpOiBOZXcgZnVuY3Rpb25zLgoJKGVsZl9tbWl4X2hvd3RvX3RhYmxlKTogQ29ycmVjdCBzcmNfbWFzayBmb3IgbW9zdCByZWxvY3MuCgkobW1peF9lbGZfcGVyZm9ybV9yZWxvY2F0aW9uKSA8Y2FzZSBSX01NSVhfQkFTRV9QTFVTX09GRlNFVD46IE5ldwoJY2FzZS4KCShtbWl4X2ZpbmFsX2xpbmtfcmVsb2NhdGUpIDxjYXNlIFJfTU1JWF9CQVNFX1BMVVNfT0ZGU0VUPjogTmV3CgljYXNlLiAgRml4IHR5cG8gaW4gY29tbWVudC4gIE5ldyBsYWJlbCBkb19tbWl4X3JlbG9jLgoJKG1taXhfZWxmX2NoZWNrX3JlbG9jcyk6IEFidXNlIGJmZF9saW5rX2luZm8gbWVtYmVyIGJhc2VfZmlsZSB0bwoJc3RvcmUgZmlyc3Qgb2JqZWN0IGZpbGUgd2l0aCBhIGJhc2UtcGx1cy1vZmZzZXQgcmVsb2MuICBDYWxsCgltbWl4X2VsZl9jaGVja19jb21tb25fcmVsb2NzIGZvciB0aGUgcGFydCBjb21tb24gd2l0aCBtbW8uCgkobW1peF9lbGZfZmluYWxfbGluayk6IFdyaXRlIG91dCBsaW5rZXItYWxsb2NhdGVkIHJlZ2lzdGVyCgljb250ZW50cyBzZWN0aW9uLgoJKGVsZl9iYWNrZW5kX2djX3N3ZWVwX2hvb2spOiBEZWZpbmUuCgkoYmZkX2VsZjY0X2JmZF9yZWxheF9zZWN0aW9uKTogRGVmaW5lLgoKCSogbW1vLmM6IERvbid0IGluY2x1ZGUgPGN0eXBlLmg+CgkobW1vX2luaXQpOiBDb3JyZWN0IGluaXQtb25jZSBsb2dpYy4KCjIwMDItMDItMDEgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb25maWcuYmZkOiBDb25kaXRpb25hbGx5IHN1cHBvcnQgPGFpYWZmPiBmb3IgcHJlIEFJWCA0LjMuCgoyMDAyLTAyLTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0zMSAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNEPgoKCSogY29uZmlndXJlLmluOiBSZWNvZ25pemUgdGhlIGRpZmZlcmVuY2VzIGluIGNvcmUgZmlsZXMgZnJvbSBGcmVlQlNECgk0LnswLDF9IGFuZCBsYXRlciB2ZXJzaW9ucyBvZiA0LnguICBUaGlzIHRyZWF0cyA0LjIrIHRoZSBzYW1lIGFzCgk1LUNVUlJFTlQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMzEgIEl2YW4gR3V6dmluZWMgIDxpdmFuZ0BvcGVuY29yZXMub3JnPgoKCSogY29mZi1vcjMyLmM6IE5ldyBmaWxlLgoJKiBjcHUtb3IzMi5jOiBOZXcgZmlsZS4KCSogZWxmMzItb3IzMi5jOiBOZXcgZmlsZS4KCSogYXJjaHVyZXMuYzogQWRkIHN1cHBvcnQgZm9yIG9yMzIuCgkqIHRhcmdldHMuYzogQWRkIHN1cHBvcnQgZm9yIG9yMzIuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2ssIGNvZmZfc2V0X2ZsYWdzLAoJY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBBZGQgc3VwcG9ydCBmb3Igb3IzMi4KCSogY29uZmlnLmJmZDogQWRkIHRhcmdldC4KCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3Igb3IzMi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5hbTogQWRkIHN1cHBvcnQgZm9yIG9yMzIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IEFkZCBvcjMyIGZpbGVzLgoJKiBwby9iZmQucG90OiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0zMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgkgICAgRG9uIExpbmRzYXkgIDxsaW5kc2F5ZEBjaXNjby5jb20+CgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogUmVwbGFjZSAncmV0dXJuCglmYWxzZScgd2l0aCBhIHJldHVybiBvZiBhIGJmZF9yZWxvY18gZXJyb3IgY29kZS4KCjIwMDItMDEtMzEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmMzItY3Jpcy5jIChlbGZfY3Jpc19kaXNjYXJkX2V4Y2Vzc19wcm9ncmFtX2R5bmFtaWNzKTogRG9uJ3QKCXVuZXhwb3J0IHVucmVmZXJlbmNlZCBzeW1ib2xzIHdoZW4gLS1leHBvcnQtZHluYW1pYy4gIENhbGwKCV9iZmRfZWxmX3N0cnRhYl9kZWxyZWYgd2hlbiB1bmV4cG9ydGluZy4KCjIwMDItMDEtMzAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogYmZkLWluLmg6IEluY2x1ZGUgPHN0ZGJvb2wuaD4gaWYgaXQgaXMgYXZhaWxhYmxlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoKMjAwMi0wMS0zMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChmdW5jX2Rlc2NfYWRqdXN0KTogU1RWX1BST1RFQ1RFRCBmdW5jdGlvbnMgc2hvdWxkCglub3QgZ28gdmlhIHRoZSBwbHQuCgoyMDAyLTAxLTMwICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmM6IFRpZHkgdXAgZm9ybWF0dGluZyBvZiBlbWJlZGRlZCBjb21tZW50cy4KCSogYmZkLmM6IFRpZHkgdXAgZm9ybWF0dGluZyBvZiBlbWJlZGRlZCBjb21tZW50cy4KCSogYmZkLWluLmg6IEZpeCBmb3JtYXR0aW5nIG9mIGNvbW1lbnRzLgoJKiByZWxvYy5jOiBUaWR5IHVwIGZvcm1hdHRpbmcgb2Ygb3JkaW5hcnkgJiBlbWJlZGRlZCBjb21tZW50cy4KCSogc2VjdGlvbi5jOiBUaWR5IHVwIGZvcm1hdHRpbmcgb2YgZW1iZWRkZWQgY29tbWVudHMuCgkqIHN5bXMuYzogVGlkeSB1cCBmb3JtYXR0aW5nIG9mIGVtYmVkZGVkIGNvbW1lbnRzLgoJKiB0YXJnZXRzLmM6IFRpZHkgdXAgZm9ybWF0dGluZyBvZiBlbWJlZGRlZCBjb21tZW50cy4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMzAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogdm1zLXRpci5jIChjbWRfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCSh0aXJfY21kX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkoZXRpcl9zdGEsIGV0aXJfc3RvLCBldGlyX29wciwgZXRpcl9zdGMpOiBVc2UgY21kX25hbWUoKS4KCSh0aXJfb3ByLCB0aXJfY3RsLCB0aXJfY21kKTogdXNlIHRpcl9jbWRfbmFtZSgpLgoJRml4IGZvcm1hdHRpbmcuCgoJKiBwZVhYaWdlbi5jIChwZV9wcmludF9pZGF0YSk6IFJlYXJyYW5nZSBtZXNzYWdlIHRvIGFpZCBpbgoJdHJhbnNsYXRpb24uCgkocGVfcHJpbnRfcGRhdGEpOiBSZWFycmFuZ2UgbWVzc2FnZSB0byBhaWQgaW4gdHJhbnNsYXRpb24uCgoJKiBsaWJiZmQuYyAod2Fybl9kZXByZWNhdGVkKTogUmVhcnJhbmdlIGVycm9yIG1lc3NhZ2UgdG8gYWlkIGluCgl0cmFuc2xhdGlvbi4KCgkqIGloZXguYyAoaWhleF93cml0ZV9vYmplY3RfY29udGVudHMpOiBGaXggc3BlbGxpbmcgdHlwby4KCgkqIGllZWUuYyAoaWVlZV9zbHVycF9leHRlcm5hbF9zeW1ib2xzKTogUmVtb3ZlIHNwdXJpb3VzIHNwYWNlLgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfYWRkX3N5bWJvbF9ob29rKTogUmVhcnJhbmdlIGVycm9yCgltZXNzYWdlIHRvIGFpZCBpbiB0cmFuc2xhdGlvbi4KCgkqIGVsZjY0LW1taXguYyAobW1peF9maW5hbF9saW5rX3JlbG9jYXRlKTogUmVhcnJhbmdlIGVycm9yIG1lc3NhZ2UKCXRvIGFpZCBpbiB0cmFuc2xhdGlvbi4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEZpeCB0eXBvLgoKMjAwMi0wMS0zMCAgUGhpbGlwcCBUaG9tYXMgIDxwdGhvbWFzQHN1c2UuZGU+CgoJKiBjb2ZmLWFybS5jLCBlbGYzMi1lbGYuaDogVW5pZnkgbWVzc2FnZXMuCgoyMDAyLTAxLTMwICBOaWNrIENsaWZ0b24gPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zdi5wbzogVXBkYXRlZCB0cmFuc2xhdGlvbi4KCjIwMDItMDEtMzAgIFBoaWxpcHAgVGhvbWFzICA8cHRob21hc0BzdXNlLmRlPgoKCSogZHdhcmYyLmMgKHJlYWRfYWJicmV2KTogVXNlIGZ1bGwgc2VjdGlvbiBuYW1lIGluIGVycm9yIG1lc3NhZ2UuCgkoZGVjb2RlX2xpbmVfaW5mbyk6IExpa2V3aXNlLgoKCSogZWxmLmMgKF9iZmRfZWxmX3N5bWJvbF9mcm9tX2JmZF9zeW1ib2wpOiBEb24ndCB0cmFuc2xhdGUgZGVidWdnaW5nCgltZXNzYWdlLgoKMjAwMi0wMS0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChmdW5jX2Rlc2NfYWRqdXN0KTogT25seSBwcm92aWRlIG1pc3NpbmcgZnVuY3Rpb24KCWRlc2NyaXB0b3Igc3ltYm9scyBmb3IgdW5kZWZpbmVkIGZ1bmN0aW9uIGNvZGUgc3ltcy4gIENsZWFyCglFTEZfTElOS19OT05fRUxGIHNvIHRoYXQgdGhleSBjYW4gc3RheSB3ZWFrLgoKMjAwMi0wMS0yOSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCSAgICBNaXRjaCBMaWNodGVuYmVyZyAgPG1wbEBicm9hZGNvbS5jb20+CgoJKiBiZmQtaW4uaCAoYmZkX21pcHNfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IE5ldyBwcm90b3R5cGUuCgkqIGVsZjMyLW1pcHMuYyAoYmZkX21pcHNfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IE5ldyBmdW5jdGlvbgoJdG8gaGFuZGxlIDMyLWJpdCBFTEYgZW1iZWRkZWQgcmVsb2MgKGxkIC0tZW1iZWRkZWQtcmVsb2NzKQoJZ2VuZXJhdGlvbi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0yOSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGVsZjMyLW1pcHMuYzogQWRkIGFkZGl0aW9uYWwgY29tbWVudHMgYWJvdXQgSEkxNiByZWxvY2F0aW9uCglwcm9jZXNzaW5nLgoJKF9iZmRfbWlwc19lbGZfaGkxNl9yZWxvYyk6IERvbid0IHN1YnRyYWN0IGFkZHJlc3MgaGVyZSBmb3IKCXBjLXJlbGF0aXZlIHJlbG9jYXRpb25zLiAgKFJldmVydHMgY2hhbmdlIG1hZGUgb24gMjAwMS0xMC0zMS4pCgkoX2JmZF9taXBzX2VsZl9sbzE2X3JlbG9jKTogU3VidHJhY3QgYWRkcmVzcyBvZiBMTzE2IHBhcnQgaGVyZQoJZm9yIHBjLXJlbGF0aXZlIHJlbG9jYXRpb25zLgoJKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogQWRkIGEgY29tbWVudCBhYm91dCBhIGtsdWRnZQoJaW4gdGhlIFJfTUlQU19HTlVfUkVMX0hJMTYgaGFuZGxpbmcuCgkoX2JmZF9taXBzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSW1wbGVtZW50IHRoYXQga2x1ZGdlOwoJYWRqdXN0IHBjLXJlbGF0aXZlIEhJMTYgcmVsb2NhdGlvbiBmb3IgZGlmZmVyZW5jZSBpbiBISTE2IGFuZAoJTE8xNiBhZGRyZXNzZXMsIHNpbmNlIGl0IGNhbid0IGVhc2lseSBiZSBkb25lIGluCgltaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbi4KCjIwMDItMDEtMjkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiBlbGYzMi1pMzg2IChlbGZfaTM4Nl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBEbyBub3QgcmVwbGFjZSBQTFQzMgoJcmVsb2NhdGlvbnMgd2l0aCBQQzMyIHJlbG9jYXRpb25zIGZvciB1bmRlZmluZWQgb3Igd2VhayBzeW1ib2xzLgoJKiBlbGYzMi1zMzkwIChlbGZfaTM4Nl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MHggKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoKMjAwMi0wMS0yOCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGVsZmNvcmUuaCAoZWxmX2NvcmVfZmlsZV9wKTogSW1wcm92ZSBjb21tZW50IGZvciBsYXN0IGNoYW5nZS4KCjIwMDItMDEtMjcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDItMDEtMjcgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IFNldCB0aGUgbWFjaGluZSBhcmNoaXRlY3R1cmUKCWJlZm9yZSBwcm9jZXNzaW5nIHRoZSBwcm9ncmFtIGhlYWRlcnMuCgoyMDAyLTAxLTI2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBjb25maWd1cmUuaW4gPDY0LWJpdCBjb25maWd1cmF0aW9uPjogSWYgdXNpbmcgZ2NjLCBjaGVjayBhbmQKCWVtaXQgZXJyb3IgZm9yIGVnY3MtMS4xLjIuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMjYgIEVnb3IgRHVkYSAgPGRlb0Bsb2dvcy1tLnJ1PgoKCSogZWxmLmMgKGVsZmNvcmVfZ3Jva193aW4zMnBzdGF0dXMpOiBDb3B5IG9ubHkgYXMgbXVjaCBpbmZvcm1hdGlvbgoJYXMgcG9zc2libGUgdG8gYXZvaWQgc3RhY2sgY29ycnVwdGlvbi4KCjIwMDItMDEtMjYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBEb24ndCBzZXQgcmVsdGV4dAoJZm9yIG5vbi1hbGxvY2F0ZWQgc2VjdGlvbnMuCgoyMDAyLTAxLTI1ICBNYXJrIEtldHRlbmlzICA8a2V0dGVuaXNAZ251Lm9yZz4KCgkqIGVsZi5jIChlbGZjb3JlX3dyaXRlX3Byc3RhdHVzKTogTWFrZSBzdXJlIHdlIHBhc3MgdGhlIGFkZHJlc3Mgb2YKCXByc3RhdC5wcl9yZWcgZXZlbiBpZiBpdCBpcyBhIHN0cnVjdC4KCjIwMDItMDEtMjUgIFN0ZXZlIEVsbGNleSA8c2plQGN1cC5ocC5jb20+CgoJKiBlbGZ4eC1pYTY0LmM6IFJlc2V0IEFJWCB2ZWN0b3IgZnVuY3Rpb24gb3ZlcnJpZGVzIGZvciBIUC1VWC4KCjIwMDItMDEtMjUgIFBoaWxpcHAgVGhvbWFzICA8cHRob21hc0BzdXNlLmRlPgoKCSogY29mZmdlbi5jIChjb2ZmX3ByaW50X3N5bWJvbCk6IERvbid0IG1hcmsgaW5mbyBtZXNzYWdlCglmb3IgdHJhbnNsYXRpb24uCgoyMDAyLTAxLTI1ICBOaWNrIENsaWZ0b24gPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCB0cmFuc2xhdGlvbi4KCSogcG8vZXMucG86IFVwZGF0ZWQgdHJhbnNsYXRpb24uCgoyMDAyLTAxLTI1ICBQaGlsaXBwIFRob21hcyAgPHB0aG9tYXNAc3VzZS5kZT4KCgkqIGNvZmYtYWxwaGEuYyAoYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IFVuaWZ5IHdhcm5pbmcgbWVzc2FnZQoJZm9yIEdQIHJlbGF0aXZlIHJlbG9jYXRpb25zIHdpdGhvdXQgR1AgZGVmaW5lZC4KCSogY29mZi1taXBzLmMgKG1pcHNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMi0wMS0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9laF9mcmFtZV9zZWN0aW9uX29mZnNldCk6IEF2b2lkCgl1bnNpZ25lZCBvdmVyZmxvdyB3aGVuIG5ld19vZmZzZXQgPCBvbGRfb2Zmc2V0LgoKMjAwMi0wMS0yNCAgUGhpbGlwcCBUaG9tYXMgIDxwdGhvbWFzQHN1c2UuZGU+CgoJKiBiZmQuYyAoX2JmZF9hYm9ydCk6IEZpeCB0eXBvLgoKMjAwMi0wMS0yMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IERvbid0IHN1cHByZXNzCglwbHQgZW50cmllcyBmb3IgdW5kZWZ3ZWFrIHN5bWJvbHMuCgoyMDAyLTAxLTIzICBTdGV2ZSBFbGxjZXkgPHNqZUBjdXAuaHAuY29tPgoKCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfaWE2NF9ocHV4X2JpZ192ZWMpOiBBZGQgdG8gREVGQVVMVF9WRUNUT1IuCgkoYmZkX2VsZjY0X2lhNjRfaHB1eF9iaWdfdmVjKTogRGl0dG8uCgkoYmZkX2VsZjMyX2g4MzAwX3ZlYyk6IERpdHRvLgoKMjAwMi0wMS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jOiBSZW1vdmUgc3RhbGUgcGFydCBvZiBBQkkgY29tbWVudC4KCShOT19PUERfUkVMT0NTKTogRGVmaW5lLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBVc2UgaXQuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBIZXJlIHRvby4KCShidWlsZF9vbmVfc3R1Yik6IERvbid0IHBvaW50IGZ1bmN0aW9uIHN5bXMgYXQgdGhlIHN0dWIuICBJbnN0ZWFkLAoJaGlqYWNrIHBsdC5vZmZzZXQuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBDaGVjayB3aGV0aGVyIFJFTDI0IHJlbG9jcyBzaG91bGQKCXJlYWxseSBnbyB0byB0aGUgc3R1Yi4gIE1ha2UgYWxsIGR5bmFtaWMgcmVsb2NzIGluIG9wZCBhZ2FpbnN0Cglsb2NhbHMuCgkocHBjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IEFsbG93IGZvciBub24tc3RhbmRhcmQgdXNlIG9mCglwbHQub2Zmc2V0LgoKMjAwMi0wMS0yMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKElOU05fVU5PUCk6IEVuY29kZSB3aXRoIFJCIGFzICRzcC4KCjIwMDItMDEtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogQ29ycmVjdCBzaWduIG9mCglUT0NfQkFTRV9PRkYgYWRqdXN0bWVudC4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMjIgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBjb25maWd1cmUuaG9zdCAoaHBwYSo2NCotKi1ocHV4KiwgaHBwYSo2NCotKi1saW51eCopOiBBZGQgbmV3Cglob3N0IGRlZmluZXMuCgoyMDAyLTAxLTIxICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbikgPGNhc2UgUl9DUklTXzMyX0dPVFJFTD46CglDaGVjayBmb3IgYW5kIGVtaXQgZXJyb3IgaWYgc2dvdCBpcyBOVUxMIGF0IHRoaXMgcG9pbnQuCgoyMDAyLTAxLTIxICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmJmZCAoaWE2NCotKi1uZXRic2QqKTogTmV3IHRhcmdldC4KCjIwMDItMDEtMjEgIFRob21hcyBLbGF1c25lciA8d2l6QGRhbmJhbGEuaWZvZXIudHV3aWVuLmFjLmF0PgoKCSogc29tLmMgKHNvbV93cml0ZV9zcGFjZV9zdHJpbmdzKTogQ29tbWVudCB0eXBvIGZpeC4KCjIwMDItMDEtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAoc3RydWN0IHBwY19saW5rX2hhc2hfZW50cnkpOiBBZGQgaXNfZnVuYyBhbmQKCWlzX2Z1bmNfZGVzY3JpcHRvciBmaWVsZHMuCgkobGlua19oYXNoX25ld2Z1bmMpOiBJbml0IHRoZW0uCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IE9ubHkgUl9QUEMyNF9SRUwyNCBzeW1zIHN0YXJ0aW5nIHdpdGggYQoJZG90IGFyZSBjYW5kaWRhdGVzIGZvciBwbHQgZW50cmllcy4gIFdoZW4gcHJvY2Vzc2luZyAub3BkIHJlbG9jcywKCXNldCBmdW5jdGlvbiBkZXNjcmlwdG9yIHN0cmluZ3MgdG8gcG9pbnQgaW5zaWRlIGZ1bmN0aW9uIGNvZGUKCXN0cmluZywgYW5kIHNldCBuZXcgcHBjX2xpbmtfaGFzaF9lbnRyeSBmaWVsZHMuCgkocHBjNjRfZWxmX2djX3N3ZWVwX2hvb2spOiBEb24ndCBzd2VlcCBSX1BQQzY0X1JFTDI0IHJlbG9jcy4KCShwcGM2NF9lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogUmVtb3ZlIG1vc3QgY29kZSBkZWFsaW5nIHdpdGgKCWZ1bmN0aW9uIGRlc2NyaXB0b3JzLiAgSXQncyBub3cgZG9uZSBpbi4uCgkoZnVuY19kZXNjX2FkanVzdCk6IE5ldy4KCShwcGM2NF9lbGZfZnVuY19kZXNjX2FkanVzdCk6IE5ldy4KCShkZWZpbmUgZWxmX2JhY2tlbmRfYWx3YXlzX3NpemVfc2VjdGlvbnMpOiBEZWZpbmUuCgkocHBjNjRfZWxmX2hpZGVfc3ltYm9sKTogTmV3LgoJKGRlZmluZSBlbGZfYmFja2VuZF9oaWRlX3N5bWJvbCk6IERlZmluZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBSZW1vdmUgY29kZSBsb29raW5nIHVwIGZ1bmN0aW9uIGRlc2NyaXB0b3JzCglhcyB0aGF0IGhhcyBiZWVuIGRvbmUgZWFybGllci4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGh0YWIgc2hvcnRjdXQgdG8gZWxmIGhhc2gKCXRhYmxlLgoJKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4gIFJlbW92ZSBjb2RlIGxvb2tpbmcKCXVwIGZ1bmN0aW9uIGRlc2NyaXB0b3IuCgkoYnVpbGRfb25lX3N0dWIpOiBMb29rIHVwIHRoZSBmdW5jdGlvbiBjb2RlIHN5bS4gIENoZWNrIGZvcgoJaW52YWxpZCBwbHQgb2Zmc2V0cy4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFR3ZWFrIGNhbGxzIHRvIHVuZGVmaW5lZCB3ZWFrIHN5bXMuCglDb252ZXJ0IFJfUFBDNjRfVE9DIHJlbG9jcyB0byBSX1BQQzY0X1JFTEFUSVZFIGluIHNoYXJlZCBsaWJzLgoKCSogZWxmLWJmZC5oIChlbGZfYmFja2VuZF9kYXRhIDxlbGZfYmFja2VuZF9oaWRlX3N5bWJvbD4pOiBBZGQKCWJvb2xlYW4gcGFyYW0uCgkoX2JmZF9lbGZfbGlua19oYXNoX2hpZGVfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogQWRqdXN0IGNhbGwgdG8KCWVsZl9iYWNrZW5kX2hpZGVfc3ltYm9sLgoJKGVsZl9maXhfc3ltYm9sX2ZsYWdzKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfYXNzaWduX3N5bV92ZXJzaW9uKTogTGlrZXdpc2UuIFVzZSBiZmRfbWFsbG9jIHJhdGhlcgoJdGhhbiBiZmRfYWxsb2MuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfaGlkZV9zeW1ib2wpOiBBZGQgImZvcmNlX2xvY2FsIiBwYXJhbS4KCVNldCBFTEZfTElOS19GT1JDRURfTE9DQUwgYW5kIGNhbGwgX2JmZF9lbGZfc3RydGFiX2RlbHJlZi4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2hpZGVfc3ltYm9sKTogTGlrZXdpc2UuCgkoY2xvYmJlcl9taWxsaWNvZGVfc3ltYm9scyk6IEFkanVzdCB0byBzdWl0IG5ldyBoaWRlX3N5bWJvbC4KCSogZWxmMzItY3Jpcy5jIChlbGZfY3Jpc19oaWRlX3N5bWJvbCk6IEFkZCAiZm9yY2VfbG9jYWwiIHBhcmFtCglhbmQgYWRqdXN0IHRvIHN1aXQuCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9oaWRlX3N5bWJvbCk6IExpa2V3aXNlLCBhbmQgY2FsbAoJX2JmZF9lbGZfbGlua19oYXNoX2hpZGVfc3ltYm9sIHJhdGhlciB0aGFuIGR1cGxpY2F0aW5nIGNvZGUuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9oYXNoX2hpZGVfc3ltYm9sKTogTGlrZXdpc2UuCgoyMDAyLTAxLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBUZXN0IGZvciBhCglkeW5hbWljIGZ1bmN0aW9uIGRlc2NyaXB0b3Igc3ltYm9sLCBub3QgdGhlIGFzc29jaWF0ZWQgZnVuY3Rpb24KCXN5bWJvbC4KCjIwMDItMDEtMTcgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IEZpeCB0eXBvLgoKMjAwMi0wMS0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9iZmQucG90OiBSZWdlbmVyYXRlLgoJKiBwby9mci5wbzogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKGVsZl9iYWNrZW5kX2RhdGEgPGVsZl9iYWNrZW5kX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbj4pOgoJUmVtb3ZlICJFbGZfSW50ZXJuYWxfU2hkciAqIiBwYXJhbS4KCShfYmZkX21pcHNfZWxmX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbik6IERpdHRvLgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogRGl0dG8uCgkqIGVsZjMyLW0zMnIuYyAoX2JmZF9tMzJyX2VsZl9zZWN0aW9uX2Zyb21fYmZkX3NlY3Rpb24pOiBEaXR0by4KCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9zZWN0aW9uX2Zyb21fYmZkX3NlY3Rpb24pOiBEaXR0by4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9zZWN0aW9uX2Zyb21fYmZkX3NlY3Rpb24pOiBEaXR0by4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9ocHV4X2JhY2tlbmRfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogRGl0dG8uCgkqIGVsZi5jIChfYmZkX2VsZl9zZWN0aW9uX2Zyb21fYmZkX3NlY3Rpb24pOiBBbGxvdyBiYWNrZW5kCglmdW5jdGlvbiB0byBvdmVycmlkZSBzcGVjaWFsIHNlY3Rpb25zLiAgUmVtb3ZlIGhkciBhcmcgZnJvbQoJYmFja2VuZCBjYWxsLCBhbmQgZG9uJ3QgbG9vcC4KCjIwMDItMDEtMTYgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFNldCByZXF1aXJlX2phbHhwCglvbiBSX01JUFNfMjYgYW5kIHRhcmdldCBpcyAxNmJpdC4gQWRkIFJfTUlQUzE2X0dQUkVMIHRvIGxpc3Qgb2YKCXJlbG9jYXRpb25zIHJlcXVpcmluZyBncDAgYW5kIGdwLgoKMjAwMi0wMS0xNiAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBIYW5kbGUKCUVGX0FSTV9WRlBfRkxPQVQuCgkoZWxmMzJfYXJtX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBMaWtld2lzZS4KCjIwMDItMDEtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vdHIucG86IEltcG9ydCBuZXcgdmVyc2lvbi4KCjIwMDItMDEtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2hvd3RvX3Jhdyk6IFJlbW92ZSBzdGFsZSBGSVhNRXMuCgkocHBjNjRfZWxmX3JlbG9jX3R5cGVfbG9va3VwKTogVXNlIHByb3BlciBDVE9SIHJlbG9jLgoJKE9SSV9SMF9SMF8wKTogQ29ycmVjdC4KCjIwMDItMDEtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3Qgc2V0IFNFQ19DT0RFCgl3aGVuIHBsdF9ub3RfbG9hZGVkLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTm8gbmVlZCB0bwoJY2xlYXIgLnBsdCBTRUNfQ09ERSBoZXJlLiAgQ3JlYXRlIC5zdHViIGFuZCBjb3JyZWN0IC5nbGluayBmbGFncy4KCShQTFRfSU5JVElBTF9FTlRSWV9TSVpFKTogU2V0IHRvIDI0LgoJKHBwYzY0X2VsZl9nbGlua19jb2RlKTogRGVsZXRlLgoJKFBQQzY0X0VMRl9HTElOS19TSVpFKTogRGVsZXRlLgoJKEFERElTX1IxMl9SMiwgU1REX1IyXzQwUjEsIExEX1IxMV8wUjEyLCBMRF9SMl8wUjEyLCBNVENUUl9SMTEsCglCQ1RSLCBBRERJU19SMTJfUjEyXzEsIExEX1IyXzQwUjEsIE5PUCwgTElfUjBfMCwgQl9ET1QsIExJU19SMF8wLAoJT1JJX1IwX1IwXzApOiBEZWZpbmUuCgkoUExUX0NBTExfU1RVQl9TSVpFLCBHTElOS19DQUxMX1NUVUJfU0laRSk6IERlZmluZS4KCShzdHJ1Y3QgcHBjX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzc3R1YiBhbmQgcGx0X292ZXJmbG93LgoJKHBwYzY0X2VsZl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCB0aGVtLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MgPFJfUFBDNjRfUkVMMjQ+KTogUmVmY291bnQgLnBsdCBlbnRyeS4KCURvbid0IGNvcHkgdG8gc2hhcmVkIGxpYi4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogQ2FsbCBiZmRfc2V0X2Vycm9yIG9uIGVycm9ycy4KCShwcGM2NF9lbGZfZ2Nfc3dlZXBfaG9vayA8Ul9QUEM2NF9SRUwyND4pOiBTd2VlcCBwbHQgcmVmY291bnQuCgkoYWxsb2NhdGVfZHlucmVsb2NzIDxwbHQ+KTogRG9uJ3QgY2hhbmdlIGZ1bmN0aW9uIHN5bSBoZXJlLiAgTWFrZQoJcm9vbSBmb3IgLnN0dWIgYW5kIC5nbGluayBjb2RlLgoJKHBwYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBIYW5kbGUgLnN0dWIuICBNYWtlIGVudHJ5IGZvcgoJRFRfUFBDNjRfR0xJTksuCgkocHBjNjRfZWxmX2ZpbmFsX2xpbmspOiBSZW5hbWUgdG8gcHBjNjRfZWxmX3NldF90b2MuICBEb24ndCBjYWxsCgliZmRfZWxmNjRfYmZkX2ZpbmFsX2xpbmsuCgkoYmZkX2VsZjY0X2JmZF9maW5hbF9saW5rKTogRG9uJ3QgZGVmaW5lLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogTmV3LgoJKGJ1aWxkX3BsdF9zdHViKTogTmV3LgoJKGJ1aWxkX29uZV9zdHViKTogTmV3LgoJKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IE5ldy4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbiA8dG9jIHJlbG9jcz4pOiBSZW1vdmUgYXNzZXJ0LgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgY29weSBSX1BQQzY0X1JFTDI0IHJlbG9jcy4KCShwcGM2NF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgYnVpbGQgc3R1YnMgaGVyZS4gIFNldAoJRFRfUFBDNjRfR0xJTksgZW50cnkuICBUd2VhayBEVF9QTFRHT1QsIERUX0pNUFJFTCwgRFRfUExUUkVMU1ogaW4KCWNhc2Ugb3V0cHV0IHNlY3Rpb25zIG5vdCBzZXBhcmF0ZS4gIEFkanVzdCBEVF9SRUxBU1ogdG8gbm90CglpbmNsdWRlIHBsdCByZWxvY3MuICBTZXQgcmVzZXJ2ZWQgZ290IGVudHJ5LiAgU2V0IGdvdCBhbmQgcGx0CgllbnRyeSBzaXplLgoJKGVsZl9iYWNrZW5kX2dvdF9oZWFkZXJfc2l6ZSk6IFNldCB0byA4LgoJKiBlbGY2NC1wcGMuaDogTmV3IGZpbGUuCgoyMDAyLTAxLTE2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBXaGVuIHJlbW92aW5nCglzZWN0aW9ucywgdXNlIGJmZF9zZWN0aW9uX2xpc3RfcmVtb3ZlLgoJKiBlbGYzMi1pMzcwLmMgKGkzNzBfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IFdoZW4gcmVtb3ZpbmcgYWxsCglzZWN0aW9ucywgdXNlIGJmZF9zZWN0aW9uX2xpc3RfY2xlYXIuCgoyMDAyLTAxLTE1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBOZXcgZmlsZTogU3dlZGlzaCB0cmFuc2xhdGlvbi4KCSogY29uZmlndXJlLmluIChBTExfTElOR1VBUyk6IEFkZCBzdi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0xNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IEJhY2sgb3V0IDIwMDItMDEtMDcgY2hhbmdlLgoJKiBlbGYuYyAobWVyZ2Vfc2VjdGlvbnNfcmVtb3ZlX2hvb2spOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9lbGZfbWVyZ2Vfc2VjdGlvbnMpOiBQYXNzIGl0IGFzIDNyZCBhcmd1bWVudCB0bwoJX2JmZF9tZXJnZV9zZWN0aW9ucy4KCSogbGliYmZkLWluLmggKF9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBBZGQgM3JkIGFyZ3VtZW50LgoJKiBsaWJiZmQuaDogUmVidWlsdC4KCSogbWVyZ2UuYyAoX2JmZF9tZXJnZV9zZWN0aW9ucyk6IEFkZCByZW1vdmVfaG9vayBhcmd1bWVudC4KCUNhbGwgcmVtb3ZlX2hvb2sgaWYgYSBTRUNfRVhDTFVERSBzZWN0aW9uIGlzIGVuY291bnRlcmVkLgoKMjAwMi0wMS0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbGYzMi14c3Rvcm15MTYuYyAoeHN0b3JteTE2X3JlbG9jX21hcCk6IEFkZCBuZXcgZmllbGQgJ3RhYmxlJy4KCSh4c3Rvcm15MTZfcmVsb2NfbWFwKTogSW5pdGlhbGlzZSBuZXcgZmllbGQgd2l0aCBjb3JyZWN0IGhvd3RvCgl0YWJsZS4KCSh4c3Rvcm15MTZfcmVsb2NfdHlwZV9sb29rdXApOiBVc2UgJ3RhYmxlJyBmaWVsZCB0byBsb2NhdGUgY29ycmVjdAoJaG93dG8gZW50cnkuCgoyMDAyLTAxLTEwICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChlbGZjb3JlX3dyaXRlX3Byc3RhdHVzKTogVXNlIGxvbmcgaW5zdGVhZCBvZiBwaWRfdDsKCShlbGZjb3JlX3dyaXRlX3BzdGF0dXMpOiBVc2UgbG9uZyBpbnN0ZWFkIG9mIHBpZF90OwoJKiBlbGYtYmZkLmg6IENoYW5nZSBwcm90b3R5cGVzIHRvIHVzZSBsb25nIGluc3RlYWQgb2YgcGlkX3Q7CgoyMDAyLTAxLTA5ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogZWxmLmM6IFVwZGF0ZSBjb3B5cmlnaHQgeWVhcnMuCgkoZWxmY29yZV9ncm9rX25ldGJzZF9ub3RlKTogVXNlIE5UX05FVEJTRENPUkVfUFJPQ0lORk8KCWFuZCBOVF9ORVRCU0RDT1JFX0ZJUlNUTUFDSC4gIEltcHJvdmUgYSBjb21tZW50LgoKMjAwMi0wMS0wOCAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgoJQWRkIGNhcGFiaWxpdHkgdG8gd3JpdGUgY29yZWZpbGUgbm90ZSBzZWN0aW9ucywgZm9yIGdkYi4KCSogZWxmLmMgKGVsZmNvcmVfd3JpdGVfbm90ZSk6IE5ldyBmdW5jdGlvbi4KCShlbGZjb3JlX3dyaXRlX3BycHNpbmZvKTogTmV3IGZ1bmN0aW9uLgoJKGVsZmNvcmVfd3JpdGVfcHJzdGF0dXMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmY29yZV93cml0ZV9wc3RhdHVzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZmNvcmVfd3JpdGVfcHJmcHJlZyk6IE5ldyBmdW5jdGlvbi4KCShlbGZjb3JlX3dyaXRlX3ByeGZwcmVnKTogTmV3IGZ1bmN0aW9uLgoJKiBlbGYtYmZkLmg6IEFkZCBwcm90b3R5cGVzIGZvciBhYm92ZSBmdW5jdGlvbnMuCgoyMDAyLTAxLTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChlbGZfZmFrZV9zZWN0aW9ucyk6IFByb3BhZ2F0ZSBlcnJvcnMgZnJvbQoJZWxmX2JhY2tlbmRfZmFrZV9zZWN0aW9uLgoKMjAwMi0wMS0wNyAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IEFkZCBlbGYzMi1zaC1uYnNkLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGYzMi1zaC1uYnNkLmMuCgkoZWxmMzItc2gtbmJzZC5sbyk6IE5ldyBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZCAoc2gqbGUtKi1uZXRic2RlbGYqKTogTmV3IHRhcmdldC4KCShzaCotKi1uZXRic2RlbGYqKTogTmV3IHRhcmdldC4KCSogY29uZmlndXJlLmluOiBJbmNsdWRlIG5ldGJzZC1jb3JlLmxvIGZvciBuYXRpdmUgc2gqLSotbmV0YnNkKi4KCShiZmRfZWxmMzJfc2huYnNkX3ZlYyk6IE5ldyB2ZWN0b3IuCgkoYmZkX2VsZjMyX3NobG5ic2RfdmVjKTogTmV3IHZlY3Rvci4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1zaC1uYnNkLmM6IE5ldyBmaWxlLgoJKiB0YXJnZXRzLmM6IFVwZGF0ZSBjb3B5cmlnaHQgeWVhcnMuCgkoX2JmZF90YXJnZXRfdmVjdG9yKTogQWRkIGJmZF9lbGYzMl9zaGxuYnNkX3ZlYyBhbmQKCWJmZF9lbGYzMl9zaG5ic2RfdmVjLgoKMjAwMi0wMS0wNyAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29mZi1yczYwMDAuYyAoUkVBRDIwKTogVXNlIGJmZF9zY2FuX3ZtYS4KCjIwMDItMDEtMDcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogRG9uJ3QgYXNrIGZvciB0aGUgbWVyZ2VkIG9mZnNldAoJb2YgYSBzeW1ib2wgaW4gYSBzZWN0aW9uIHRoYXQgd2lsbCBiZSBkZWxldGVkLgoKMjAwMi0wMS0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9lcy5wbzogTmV3IGZpbGU6IFNwYW5pc2ggdHJhbnNsYXRpb24uCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgZXMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMDYgIFN0ZXZlIEVsbGNleSAgPHNqZUBjdXAuaHAuY29tPgoKCSogZWxmeHgtaWE2NC5jIChpc191bndpbmRfc2VjdGlvbl9uYW1lKTogQWRkIHRhcmdldCB2ZWN0b3IgYXMKCWFyZ3VtZW50IHNvIHdlIGNhbiBoYW5kbGUgSFAtVVggc3BlY2lhbGx5LgoJKGVsZk5OX2lhNjRfaHB1eF92ZWMpOiBOZXcgZm9yIHVzZSBpbiBpc191bndpbmRfc2VjdGlvbl9uYW1lLgoJKGVsZk5OX2hwdXhfYmFja2VuZF9zZWN0aW9uX2Zyb21fYmZkX3NlY3Rpb24pOiBOZXcgZm9yIHN1cHBvcnQKCW9mIFNITl9JQV82NF9BTlNJX0NPTU1PTi4KCShlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBBZGQgc3VwcG9ydCBmb3IgU0hOX0lBXzY0X0FOU0lfQ09NTU9OLgoJKGlzX3Vud2luZF9zZWN0aW9uX25hbWUpOiBBZGQgc3BlY2lhbCBIUC1VWCBzdXBwb3J0LgoJKGVsZk5OX2lhNjRfc2VjdGlvbl9mcm9tX3NoZHIpOiBBZGQgc3VwcG9ydCBmb3IgbW9yZSBzZWN0aW9ucy4KCShlbGZOTl9pYTY0X2Zha2Vfc2VjdGlvbnMpOiBNb2RpZnkgaXNfdW53aW5kX3NlY3Rpb25fbmFtZSBjYWxsIGFuZAoJYWRkIHN1cHBvcnQgZm9yIG1vcmUgc2VjdGlvbnMuCgkoZWxmTk5faWE2NF9hZGRpdGlvbmFsX3Byb2dyYW1faGVhZGVycyk6IE1vZGlmeQoJaXNfdW53aW5kX3NlY3Rpb25fbmFtZSBjYWxsLgoJKGVsZk5OX2lhNjRfbW9kaWZ5X3NlZ21lbnRfbWFwKTogUmVtb3ZlIGFzc3VtcHRpb24gdGhhdCB0aGVyZSBpcwoJb25seSBvbmUgdW53aW5kIHNlY3Rpb24gaW4gc2VnbWVudC4KCjIwMDItMDEtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzeW1zLmMgKF9iZmRfZ2VuZXJpY19tYWtlX2VtcHR5X3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCSogbGliYmZkLWluLmggKF9iZmRfbm9zeW1ib2xzX21ha2VfZW1wdHlfc3ltYm9sKTogRGVmaW5lIGFzCglfYmZkX2dlbmVyaWNfbWFrZV9lbXB0eV9zeW1ib2wuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGhwcGFic2QtY29yZS5jIChocHBhYnNkX2NvcmVfbWFrZV9lbXB0eV9zeW1ib2wpOiBEZWxldGUgZnVuY3Rpb24uCgkoaHBwYWJzZF9jb3JlX2dldF9zeW10YWJfdXBwZXJfYm91bmQpOiBEb24ndCBkZWZpbmUuCgkoaHBwYWJzZF9jb3JlX2dldF9zeW10YWIpOiBMaWtld2lzZS4KCShocHBhYnNkX2NvcmVfcHJpbnRfc3ltYm9sKTogTGlrZXdpc2UuCgkoaHBwYWJzZF9jb3JlX2dldF9zeW1ib2xfaW5mbyk6IExpa2V3aXNlLgoJKGhwcGFic2RfY29yZV9iZmRfaXNfbG9jYWxfbGFiZWxfbmFtZSk6IExpa2V3aXNlLgoJKGhwcGFic2RfY29yZV9nZXRfbGluZW5vKTogTGlrZXdpc2UuCgkoaHBwYWJzZF9jb3JlX2ZpbmRfbmVhcmVzdF9saW5lKTogTGlrZXdpc2UuCgkoaHBwYWJzZF9jb3JlX2JmZF9tYWtlX2RlYnVnX3N5bWJvbCk6IExpa2V3aXNlLgoJKGhwcGFic2RfY29yZV9yZWFkX21pbmlzeW1ib2xzKTogTGlrZXdpc2UuCgkoaHBwYWJzZF9jb3JlX21pbmlzeW1ib2xfdG9fc3ltYm9sKTogTGlrZXdpc2UuCgkoaHBwYWJzZF9jb3JlX3ZlYyk6IFVzZSBCRkRfSlVNUF9UQUJMRV9TWU1CT0xTIChfYmZkX25vc3ltYm9scykuCglGb3JtYXR0aW5nIGZpeGVzLgoJKiBocHV4LWNvcmUuYzogU2ltaWxhcmx5LgoJKiBpcml4LWNvcmUuYzogU2ltaWxhcmx5LgoJKiBvc2YtY29yZS5jOiBTaW1pbGFybHkuCgkqIHNjbzUtY29yZS5jOiBTaW1pbGFybHkuCgkqIGJpbmFyeS5jIChiaW5hcnlfbWFrZV9lbXB0eV9zeW1ib2wpOiBSZW1vdmUgZnVuY3Rpb24sIGRlZmluZSBhcwoJX2JmZF9nZW5lcmljX21ha2VfZW1wdHlfc3ltYm9sLgoJKiBpaGV4LmMgKGloZXhfbWFrZV9lbXB0eV9zeW1ib2wpOiBMaWtld2lzZS4KCSogbW1vLmMgKG1tb19tYWtlX2VtcHR5X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBwcGNib290LmMgKHBwY2Jvb3RfbWFrZV9lbXB0eV9zeW1ib2wpOiBMaWtld2lzZS4KCSogc3JlYy5jIChzcmVjX21ha2VfZW1wdHlfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHZlcnNhZG9zLmMgKHZlcnNhZG9zX21ha2VfZW1wdHlfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHZtcy5jIChfYmZkX3Ztc19tYWtlX2VtcHR5X3N5bWJvbCk6IFJlbW92ZS4KCSh2bXNfbWFrZV9lbXB0eV9zeW1ib2wpOiBEZWZpbmUgYXMgX2JmZF9nZW5lcmljX21ha2VfZW1wdHlfc3ltYm9sLgoJKiB2bXMtZ3NkLmMgKF9iZmRfdm1zX3NsdXJwX2dzZCk6IENhbGwgYmZkX21ha2VfZW1wdHlfc3ltYm9sCglyYXRoZXIgdGhhbiBfYmZkX3Ztc19tYWtlX2VtcHR5X3N5bWJvbC4KCSogdm1zLW1pc2MuYyAobmV3X3N5bWJvbCk6IExpa2V3aXNlLgoKMjAwMi0wMS0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHNlY3Rpb24uYyAoYmZkX3NlY3Rpb25faW5pdCk6IFJlbW92ZSB1bm5lY2Vzc2FyeSBpbml0aWFsaXNhdGlvbnMuCgkoYmZkX3NlY3Rpb25fbGlzdF9jbGVhcik6IE5ldyBmdW5jdGlvbi4KCShiZmRfc2VjdGlvbl9saXN0X3JlbW92ZSwgYmZkX3NlY3Rpb25fbGlzdF9pbnNlcnQpOiBOZXcgbWFjcm9zLgoJKF9iZmRfc3RyaXBfc2VjdGlvbl9mcm9tX291dHB1dCk6IFVzZSB0aGVtLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hbGlnbm1lbnRfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKiBlbGY2NC1tbWl4LmMgKG1taXhfZWxmX2ZpbmFsX2xpbmspOiBMaWtld2lzZS4KCSogc3Vub3MuYyAoc3Vub3NfYWRkX2R5bmFtaWNfc3ltYm9scyk6IExpa2V3aXNlLgoJKiB4Y29mZmxpbmsuYyAoX2JmZF94Y29mZl9iZmRfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoJKiBuZXRic2QtY29yZS5jIChuZXRic2RfY29yZV9maWxlX3ApOiBVc2UgYmZkX21ha2Vfc2VjdGlvbl9hbnl3YXkKCXJhdGhlciB0aGFuIGRvaW5nIG91ciBvd24gc2VjdGlvbiBoYW5kbGluZy4gIENsZWFuIHVwIGFmdGVyIGVycm9ycwoJd2l0aCBiZmRfcmVsZWFzZSBhbmQgYmZkX3NlY3Rpb25fbGlzdF9jbGVhci4gIEhhbmRsZSB1bmV4cGVjdGVkCglmbGFncy4KCSogYW91dGYxLmggKHN1bm9zNF9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoJKiBhaXgzODYtY29yZS5jIChhaXgzODZfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCSogY2lzY28tY29yZS5jIChjaXNjb19jb3JlX2ZpbGVfdmFsaWRhdGUpOiBMaWtld2lzZS4KCSogcHRyYWNlLWNvcmUuYyAocHRyYWNlX3VuaXhfY29yZV9maWxlX3ApOiBMaWtld2lzZS4KCSogdHJhZC1jb3JlLmMgKHRyYWRfdW5peF9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoKCSogaHBwYWJzZC1jb3JlLmMgKGhwcGFic2RfY29yZV9jb3JlX2ZpbGVfcCk6IENsZWFuIHVwIGFmdGVyIGVycm9ycwoJd2l0aCBiZmRfcmVsZWFzZSBhbmQgYmZkX3NlY3Rpb25fbGlzdF9jbGVhci4KCSogaHB1eC1jb3JlLmMgKGhwdXhfY29yZV9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoJKiBpcml4LWNvcmUuYyAoaXJpeF9jb3JlX2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgkqIGx5bngtY29yZS5jIChseW54X2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgkqIG9zZi1jb3JlLmMgKG9zZl9jb3JlX2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgkqIHJzNjAwMC1jb3JlLmMgKHJzNjAwMGNvZmZfY29yZV9wKTogTGlrZXdpc2UuCgkqIHNjbzUtY29yZS5jIChzY281X2NvcmVfZmlsZV9wKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfbG8xNl9yZWxvYyk6IFNpbXBsaWZ5LCBhbmQgcGVyZm9ybQoJc2lnbiBleHRlbnNpb24gYWRqdXN0bWVudHMgd2l0aG91dCBjb25kaXRpb25hbHMuCgoyMDAyLTAxLTA0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogRG9uJ3QgY3Jhc2ggaWYKCUNJRSBhdCAuZWhfZnJhbWUgc3RhcnQgaXMgcmVtb3ZlZCBkdWUgdG8gbm8gRkRFcyByZWZlcmVuY2luZyBpdC4KCjIwMDItMDEtMDQgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcuYmZkICh4ODZfNjQtKi1uZXRic2QqKTogTmV3IHRhcmdldC4KCSogY29uZmlndXJlLmluICh4ODZfNjQtKi1uZXRic2QqKTogU2V0IENPUkVGSUxFCgl0byBuZXRic2QtY29yZS5sby4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDItMDEtMDMgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiB4Y29mZmxpbmsuYyAoX2JmZF94Y29mZl9iZmRfZmluYWxfbGluayk6IFVwZGF0ZSAucGFkIHNlY3Rpb24gb3JkZXJpbmcKCWZvciByZWNlbnQgYmZkX21ha2Vfc2VjdGlvbl9hbnl3YXkgY2hhbmdlLgoKMjAwMi0wMS0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBIYW5kbGUKCVJfQVJNX1RITV9QQzExIHJlbG9jLgoKMjAwMi0wMS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKExJTkdVQVMpOiBBZGQgamEuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vamEucG86IEltcG9ydCBmcm9tIHRyYW5zbGF0aW9uIHByb2plY3QncyB3ZWIgc2l0ZS4KCjIwMDItMDEtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogUmVmb3JtYXQgZXJyb3IKCW1lc3NhZ2VzIHRvIGVhc2UgdHJhbnNsYXRpb24gaW50byBvdGhlciBsYW5ndWFnZXMuCgpGb3Igb2xkZXIgY2hhbmdlcyBzZWUgQ2hhbmdlTG9nLTAwMDEKDApMb2NhbCBWYXJpYWJsZXM6Cm1vZGU6IGNoYW5nZS1sb2cKbGVmdC1tYXJnaW46IDgKZmlsbC1jb2x1bW46IDc0CnZlcnNpb24tY29udHJvbDogbmV2ZXIKRW5kOgo=