MjAwOC0xMi0yMyAgSm9uIEJlbmlzdG9uIDxqb25AYmVuaXN0b24uY29tPgoKCSogTkVXUzogUmVjb3JkIHRoYXQgc3VwcG9ydCBmb3IgTE0zMiBoYXMgYmVlbiBhZGRlZC4KCSogTWFrZWZpbGUuYW06IEFkZCBMTTMyIG9iamVjdCBmaWxlcyBhbmQgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLmluOiBJbmRpY2F0ZSBMTTMyIHVzZXMgY2dlbi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0OiBBZGQgTE0zMiB0YXJnZXQuCgkqIGNvbmZpZy90Yy1sbTMyLmM6IE5ldyBmaWxlLgoJKiBjb25maWcvdGMtbG0zMi5oOiBOZXcgZmlsZS4KCSogZG9jL01ha2VmaWxlLmFtOiBBZGQgYy1sbTMyLnRleGkgdG8gQ1BVX0RPQ1MuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL2FsbC50ZXhpOiBBZGQgTE0zMiBhcyBDUFUgb2YgaW50ZXJlc3QuCgkqIGRvYy9hcy50ZXhpbmZvOiBBZGQgTE0zMiBkZXBlbmRlbnQgZmVhdHVyZXMgbGluay4KCSogZG9jL2MtbG0zMi50ZXhpOiBOZXcgZmlsZS4KCjIwMDgtMTItMjMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1hdGNoX3RlbXBsYXRlKTogQ2hhbmdlZCB0byByZXR1cm4KCSBjb25zdCB0ZW1wbGF0ZSAqLiAgSGFuZGxlIGkuc3dhcF9vcGVyYW5kIGZvciAzIG9wZXJhbmRzLgoJIChidWlsZF92ZXhfcHJlZml4KTogVGFrZSBjb25zdCB0ZW1wbGF0ZSAqLiAgU3dhcCBvcGVyYW5kIGZvcgoJIDItYnl0ZSBWRVggcHJlZml4IGlmIHBvc3NpYmxlLgoJIChtZF9hc3NlbWJsZSk6IFVwZGF0ZWQuCgkgKGJ1aWxkX21vZHJtX2J5dGUpOiBIYW5kbGUgUmVnTWVtIGJpdCBmb3IgU1NFMkFWWC4KCjIwMDgtMTItMjMgIEFuYXRvbHkgU29rb2xvdiAgPGFlc29rQHBvc3QucnU+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1jdV90eXBlcyk6IEFkZCBhdHRpbnk4NywgYXR0aW55MzI3LCBhdG1lZ2E0aHZkLAoJYXRtZWdhOGh2ZCwgYXRtZWdhMTZodmIsIGF0bWVnYTMyaHZiLCBhdG1lZ2E2NGMxLCBhdG1lZ2ExNm0xLCAKCWF0bWVnYTY0bTEsIGF0bWVnYTMydTYsIGF0bWVnYTEyOHJmYTEsICBhdDkwcHdtODEsIGF0OTBzY3IxMDAsIAoJbTMwMDBmLCBtMzAwMHMgYW5kIG0zMDAxYiBkZXZpY2VzLgoJKiBkb2MvYy1hdnIudGV4aTogTGlrZXdpc2UuCgoyMDA4LTEyLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTkVXUyA6UmVtb3ZlIG1lbnRpb24gb2YgU1RUX0lGVU5DIHN1cHBvcnQuCgkqIGNvbmZpZy9vYmotZWxmLmMgKG9ial9lbGZfdHlwZSk6IFJlbW92ZSBTVFRfSUZVTkMgc3VwcG9ydC4KCSogZG9jL2FzLnRleGluZm86IFJlbW92ZSBtZW50aW9uIG9mIFNUVF9JRlVOQyBzdXBwb3J0LgoKMjAwOC0xMi0yMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjb25maWcvdGMtY3Jpcy5jIChzX2NyaXNfZHRwb2ZmKTogTmV3IGZ1bmN0aW9uLgoJKG1kX3BzZXVkb190YWJsZSk6IEFkZCAiZHRwb2ZmZCIuCgoyMDA4LTEyLTIwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwYXJzZV9pbnNuKTogT3B0aW1pemUgIi5zIiBoYW5kbGluZy4KCjIwMDgtMTItMjAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKF9pMzg2X2luc24pOiBBZGQgc3dhcF9vcGVyYW5kLgoJKHBhcnNlX2luc24pOiBIYW5kbGUgIi5zIi4KCShtYXRjaF90ZW1wbGF0ZSk6IEhhbmRsZSBzd2FwX29wZXJhbmQuCgoJKiBkb2MvYy1pMzg2LnRleGk6IERvY3VtZW50IC5zIHN1ZmZpeC4KCjIwMDgtMTItMjAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlnL3RjLWNyaXMuYyAoY3Jpc19wcm9jZXNzX2luc3RydWN0aW9uKTogSGFuZGxlCglCRkRfUkVMT0NfQ1JJU18zMl9JRSwgaW4gdGhlIHRlc3Qgd2hldGhlciB0aGUgcmVsb2NhdGlvbiBmaXRzLgoJKGdldF8zb3Bfb3JfZGlwX3ByZWZpeF9vcCk6IEhhbmRsZSBUTFMvUElDIGRlY29yYXRpb24gZm9yIHRoZQoJImRvdWJsZSBpbmRpcmVjdCIgYWRkcmVzc2luZyBtb2RlLgoJKGNyaXNfZ2V0X3JlbG9jX3N1ZmZpeCk6IEFkZCBlbnRyeSBmb3IgOklFIGZvciBCRkRfUkVMT0NfQ1JJU18zMl9JRS4KCShjcmlzX251bWJlcl90b19pbW0sIHRjX2dlbl9yZWxvYyk6IEhhbmRsZSBCRkRfUkVMT0NfQ1JJU18zMl9JRS4KCjIwMDgtMTItMTggIFJhbGYgV2lsZGVuaHVlcyAgPFJhbGYuV2lsZGVuaHVlc0BnbXguZGU+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA4LTEyLTA4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChidWlsZF9tb2RybV9ieXRlKTogUmVtb3ZlIGFuIGV4dHJhIGJsYW5rCglsaW5lLgoKMjAwOC0xMi0wNCAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBhcnNlX2NwdSk6IFJlbW92ZSBib29rZTY0IHN1cHBvcnQuIFVwZGF0ZQoJdXNhZ2Ugc3RyaW5ncy4KCShwcGNfc2V0dXBfb3Bjb2Rlcyk6IExpa2V3aXNlLCByZW1vdmUgYm9va2U2NCBzdXBwb3J0LgoJKiBkb2MvYy1wcGMudGV4aSAoUG93ZXJQQy1PcHRzKTogUmVtb3ZlIC1tYm9va2UzMiBhbmQgLW1ib29rZTY0LgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpOiBMaWtld2lzZS4KCjIwMDgtMTItMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkb2MvYXMudGV4aW5mbyAoVHlwZSk6IFJld29yZCBkZXNjcmlwdGlvbiBvZiBTVFRfSUZVTkMgdHlwZS4KCjIwMDgtMTItMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX3R5cGUpOiBBZGQgc3VwcG9ydCBmb3IgU1RUX0lGVU5DIHR5cGUuCgkqIGRvYy9hcy50ZXhpbmZvOiBEb2N1bWVudCBuZXcgZmVhdHVyZS4KCSogTkVXUzogTWVudGlvbiBuZXcgZmVhdHVyZS4KCjIwMDgtMTEtMjkgIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoaTM4Nl90YXJnZXRfZm9ybWF0KTogRm9yIGNvZmYgZmxhdm91ciBpbiBURV9QRVAKCXVzZSAicGUtaTM4NiIgZm9yIDMyLWJpdC4KCjIwMDgtMTEtMjggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuYW0gKGVob3B0Lm8pOiBBZGQgc3RydWMtc3ltYm9sLmguCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCSogZWhvcHQuYzogSW5jbHVkZSBzdHJ1Yy1zeW1ib2wuaC4KCShjaGVja19laF9mcmFtZSk6IEZvciB2ZXJ5IHNtYWxsIE9fY29uc3RhbnQgRFdfQ0ZBX2FkdmFuY2VfbG9jNAoJY3JlYXRlIGNvcnJlY3QgRFdfQ0ZBX2FkdmFuY2VfbG9jLiAgSGFuZGxlIE9fc3VidHJhY3Qgb25seQoJZm9yIGNvZGUgYWxpZ25tZW50IGZhY3RvciAxLCBvdGhlcndpc2UgaGFuZGxlIE9fZGl2aWRlIG9yCglPX3JpZ2h0X3NoaWZ0IG9mIE9fc3VidHJhY3QgYW5kIE9fY29uc3RhbnQuCgkoZWhfZnJhbWVfZXN0aW1hdGVfc2l6ZV9iZWZvcmVfcmVsYXgpOiBBbHdheXMgZGl2aWRlIGJ5IGNhLgoJKGVoX2ZyYW1lX2NvbnZlcnRfZnJhZyk6IExpa2V3aXNlLgoKMjAwOC0xMS0yOCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIGR3MmdlbmNmaS5jIChvdXRwdXRfY2ZpX2luc24pOiBTY2FsZSBEV19DRkFfYWR2YW5jZV9sb2MxLAoJRFdfQ0ZBX2FkdmFuY2VfbG9jMiBhbmQgRFdfQ0ZBX2FkdmFuY2VfbG9jNCBvdXRwdXRzLgoKMjAwOC0xMS0yOCAgSm9zaHVhIEtpbmFyZCAgPGt1bWJhQGdlbnRvby5vcmc+CgoJKiBjb25maWcvdGMtbWlwcy5jIChoaWxvX2ludGVybG9ja3MpOiBIYW5kbGUgQ1BVX1IxNDAwMCwgQ1BVX1IxNjAwMC4KCShtaXBzX2NwdV9pbmZvX3RhYmxlKTogQWRkIHIxNDAwMCwgcjE2MDAwLgoJKiBkb2MvYy1taXBzLnRleGk6IEFkZCBlbnRyaWVzIGZvciAxNDAwMCwgMTYwMDAuCgoyMDA4LTExLTI3ICBNIFIgU3dhbWkgUmVkZHkgPE1SLlN3YW1pLlJlZGR5QG5zYy5jb20+CgoJKiBjb25maWcvdGMtY3IxNi5oIChHTE9CQUxfT0ZGU0VUX1RBQkxFX05BTUUpOiBEZWZpbmVkCgkqIGNvbmZpZy90Yy1jcjE2LmMgKG1kX3BzZXVkb190YWJsZSk6IEFkZCAiNGJ5dGUiIGRpcmVjdGl2ZSB0bwoJbWRfcHNldWRvX3RhYmxlIGFuZCBhY2NlcHQgQGMgcHJlZml4LCBzYW1lIGFzIGxvbmcgZGlyZWN0aXZlLgoJKGNyMTZfY29uc19maXhfbmV3KTogSW5pdGlhbGl6ZSBydHlwZSB0byBCRkRfUkVMT0NfVU5VU0VELgoJKHRjX2dlbl9yZWxvYyk6IERlY2xhcmUgYSB2YXJpYWJsZSBvZiB0eXBlIGJmZF9yZWxvY19jb2RlX3JlYWxfdHlwZQoJYW5kIHNldCBpdCBmb3IgR09UIHJlbGF0ZWQgcmVsb2NhdGlvbnMuCgkobWRfdW5kZWZpbmVkX3N5bWJvbCk6IERlZmluZWQKCShwcm9jZXNzX2xhYmVsX2NvbnN0YW50KTogQWRkZWQgY2hlY2tzIGZvciBHT1QvZ290IGFuZCBjR09UL2NHT1QKCXByZWZpeGVzIHdpdGggY29uc3RhbnQgbGFiZWwgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgcmVsb2NhdGlvbiB0eXBlLgoJKiBkb2MvYy1jcjE2LnRleGkgKGNyMTYtb3BlcmFuZCBzcGVjaWZpZXJzKTogQWRkIGdvdC9HT1QgYW5kIGNnb3QvY0dPVC4gCgoyMDA4LTExLTI2ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1tMzJjLmMgKG1kX3BzZXVkb190YWJsZSk6IEFkZCBzdXBwb3J0IGZvciAubG9jIGV0IGFsLgoKMjAwOC0xMS0yNSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbTMyYy5jIChtZF9jb252ZXJ0X2ZyYWcpOiBGaXggQURKTlogcmVsb2MgbWF0aC4KCjIwMDgtMTEtMjEgIFN0ZXJsaW5nIEF1Z3VzdGluZSAgPHN0ZXJsaW5nQHRlbnNpbGljYS5jb20+CgoJKiBjb25maWcvdGMteHRlbnNhLmMgKGNoZWNrX3QxX3QyX3JlYWRzX2FuZF93cml0ZXMpOiBDYWxsCgl4dGVuc2Ffc3RhdGVfaXNfc2hhcmVkX29yIHRvIGFsbG93IG11bHRpcGxlIG9wY29kZXMgd2l0aGluIGEKCXNpbmdsZSBGTElYIGJ1bmRsZSB0byB3cml0ZSB0byB0aGVzZSBzcGVjaWFsIHN0YXRlcy4KCjIwMDgtMTEtMTkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY29uZmlnL3RjLWNyaXMuYyAoY3Jpc19udW1iZXJfdG9faW1tKTogQXBwbHkgU19TRVRfVEhSRUFEX0xPQ0FMCglvbiBzeW1ib2xzIGluIFRMUyByZWxvY3MuCgoyMDA4LTExLTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZG9jL2ZkbC50ZXhpOiBVcGRhdGUgdG8gdjEuMwoJKiBkb2MvYXMudGV4aW5mbzogQ2hhbmdlIGxpY2Vuc2UgdG8gdjEuMy4KCjIwMDgtMTEtMTggIENhdGhlcmluZSBNb29yZSAgPGNsbUBjbTAwcmUuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChuZW9uX3R5cGVfbWFzayk6IFJlbnVtYmVyLgoJKHR5cGVfY2hrX29mX2VsX3R5cGUpOiBIYW5kbGUgRl9GMTYuCgkobmVvbl9jdnRfZmxhdm91cik6IFJlY29nbml6ZSBoYWxmLXByZWNpc2lvbiBjb252ZXJzaW9ucy4KCShkb19uZW9uX2N2dCk6IE5ldyBzaGFwZXMgTlNfUUQgYW5kCglOU19EUS4gIEVuY29kZSBoYWxmLXByZWNpc2lvbiBjb252ZXJzaW9ucy4KCShkb19uZW9uX2N2dHQpOiBFbmNvZGUgdGhlIFQgYml0LgoJKGFzbV9vcGNvZGVfaW5zbnMpOiB2Y3Z0LCB2Y3Z0dCBzdXBwb3J0LgoJKGFybV9vcHRpb25fY3B1X3ZhbHVlKTogQWRkIG5lb24tZnAxNiBzdXBwb3J0LgoKMjAwOC0xMS0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFzLmMgKHBhcnNlX2FyZ3MpOiBVcGRhdGUgY29weXJpZ2h0IHllYXIuCgoyMDA4LTExLTE0ICBNYXQgSG9zdGV0dGVyICA8bWF0QGxjcy5taXQuZWR1PgoKCSogcmVhZC5jIChlbWl0X2V4cHIpOiBHcm93IGZyYWcgYmVmb3JlIGZpbGxpbmcgaXQgc28gdGhhdAoJZG90X3ZhbHVlIHJlbWFpbnMgdmFsaWQuCgoyMDA4LTExLTE0ICBQZXRlciBKYW5zZW4gIDxwd2phbnNlbkB5YWhvby5jb20+CgoJUFIgNzAyNgoJKiBjb25maWcvdGMtYXJtLmM6IEVuc3VyZSB0aGF0IGFsbCB1c2VzIG9mIGFzX2JhZCBoYXZlIGEKCWZvcm1hdHRpbmcgc3RyaW5nLgoKMjAwOC0xMS0xMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjb25maWcvdGMtY3Jpcy5jIChjcmlzX251bWJlcl90b19pbW0pOiBFeGNlcHQgZm9yCglCRkRfUkVMT0NfTk9ORSwgYWx3YXlzIHNldCBjb250ZW50cy4gIFdoZXJlIHByZXZpb3VzbHkgdGhpcyB3YXMKCXNraXBwZWQsIHNldCBjb250ZW50cyB0byAwLgoKCVBSIGdhcy83MDI1CgkqIGlucHV0LXNjcnViLmMgKGlucHV0X3NjcnViX2luY2x1ZGVfc2IpOiBNYWtlIHRoZSBwb3NpdGlvbgoJYWZ0ZXIgdGhlIGlucHV0IGhhdmUgZGVmaW5lZCBjb250ZW50cywgYSAwIGNoYXJhY3Rlci4KCgkqIGNvbmZpZy90Yy1jcmlzLmMgKGNyaXNfcmVsYXhfZnJhZyk6IEFkZCBtaXNzaW5nIGNhc2UgZm9yCglFTkNPREVfUkVMQVggKFNUQVRFX0NPTkRfQlJBTkNIX1BJQywgU1RBVEVfRFdPUkQpLgoKCVBSIGdhcy83MDIwCgkqIHJlYWQuYyAocmVhZF9hX3NvdXJjZV9maWxlKTogUmVhcnJhbmdlIGV2YWx1YXRpb24gb3JkZXIgd2hlbgoJbG9va2luZyBmb3IgJz0nIHRvIGF2b2lkIGNvbmRpdGlvbmFsIG9uIHVuZGVmaW5lZCBjb250ZW50cyBvZgoJaW5wdXRfbGluZV9wb2ludGVyWzFdLgoKMjAwOC0xMS0wNiAgQWRhbSBOZW1ldCAgPGFuZW1ldEBjYXZpdW1uZXR3b3Jrcy5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChDT1BfSU5TTik6IENoYW5nZSBsb2dpYyB0byBhbHdheXMgcmV0dXJuIGZhbHNlCglmb3IgRlAgaW5zdHJ1Y3Rpb25zLgoKMjAwOC0xMS0wNiAgQ2hhby15aW5nIEZ1ICA8ZnVAbWlwcy5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jICh2YWxpZGF0ZV9taXBzX2luc24pOiBBZGQgY2FzZSAnMScuCgkobWlwc19pcCk6IEFkZCBjYXNlICcxJyB0byBwcm9jZXNzIHN5bmMgdHlwZS4KCjIwMDgtMTEtMDYgIEpvZWwgU2hlcnJpbGwgPGpvZWwuc2hlcnJpbGxAb2FyY29ycC5jb20+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgbTMyYy0qLXJ0ZW1zKiBhbmQgbTMyci0qLXJ0ZW1zKi4KCjIwMDgtMTEtMDQgIFN0ZXJsaW5nIEF1Z3VzdGluZSAgPHN0ZXJsaW5nQHRlbnNpbGljYS5jb20+CgkKCSogY29uZmlnL3RjLXh0ZW5zYS5jICh0aW5zbl9jaGVja19hcmd1bWVudHMpOiBDaGVjayBmb3IgbXVsdGlwbGUKCXdyaXRlcyB0byB0aGUgc2FtZSByZWdpc3Rlci4KCQoyMDA4LTExLTA0ICBTdGVybGluZyBBdWd1c3RpbmUgIDxzdGVybGluZ0B0ZW5zaWxpY2EuY29tPgoJCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoeHRlbnNhX2pfb3Bjb2RlKTogTmV3LgoJKHhnX2luc3RydWN0aW9uX21hdGNoZXNfb3B0aW9uX3Rlcm0pOiBIYW5kbGUgIkZSRUVSRUciIG9wdGlvbi4KCSh4Z19idWlsZF90b19pbnNuKTogTGlrZXdpc2UuICBVcGRhdGUgcmVuYW1lZCB0bHNfcmVsb2MgcmVmZXJlbmNlLgoJKG1kX2JlZ2luKTogSW5pdGlhbGl6ZSB4dGVuc2Ffal9vcGNvZGUuCgkobWRfYXNzZW1ibGUpOiBVcGRhdGUgcmVuYW1lZCB0bHNfcmVsb2MgcmVmZXJlbmNlLiAgSGFuZGxlICJqLmwiLgoJKHhnX2Fzc2VtYmxlX3ZsaXdfdG9rZW5zKTogU2F2ZSBmcmVlX3JlZyBpbmZvIGluIHRoZSBmcmFnLgoJKHRpbnNuX2ltbWVkX2Zyb21fZnJhZyk6IEdldCBmcmVlX3JlZyBpbmZvIGJhY2sgb3V0IG9mIHRoZSBmcmFnLgoJKHZpbnNuX3RvX2luc25idWYpOiBVcGRhdGUgcmVuYW1lZCB0bHNfcmVsb2MgcmVmZXJlbmNlcy4KCURpc3Rpbmd1aXNoIGV4dHJhIGFyZ3VtZW50IGZvciAiRlJFRVJFRyIgZnJvbSBleHRyYSBUTFMgYXJndW1lbnQuCgkqIGNvbmZpZy90Yy14dGVuc2EuaCAoc3RydWN0IHh0ZW5zYV9mcmFnX3R5cGUpOiBBZGQgZnJlZV9yZWcgZmllbGQuCgkqIGNvbmZpZy94dGVuc2EtaXN0YWNrLmggKHN0cnVjdCB0aW5zbl9zdHJ1Y3QpOiBSZW5hbWUgdGxzX3JlbG9jCglmaWVsZCB0byBleHRyYV9hcmcuCgkqIGNvbmZpZy94dGVuc2EtcmVsYXguYyAod2lkZW5fc3BlY19saXN0KTogQWRkIHJ1bGVzIHRvIHJlbGF4ICJqLmwiLgoJKGJ1aWxkX3RyYW5zaXRpb24pOiBIYW5kbGUgIkZSRUVSRUciIG9wZXJhbmQuCgkqIGNvbmZpZy94dGVuc2EtcmVsYXguaCAoZW51bSBvcF90eXBlKTogQWRkIE9QX0ZSRUVSRUcuCgkKMjAwOC0xMC0zMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHBvL2lkLnBvOiBVcGRhdGUuCgoyMDA4LTEwLTI0ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGxpbnV4LW1pcHMub3JnPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19jcHVfaW5mb190YWJsZSk6IE1vdmUgdGhlIE1JUFM2NHIyCgljb21tZW50IHNvIHRoYXQgQnJvYWRjb20gU0ItMSBjb3JlcyBhcmUgaW4gdGhlIE1JUFM2NCBzZWN0aW9uLgoKMjAwOC0xMC0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1iZmluLmMgKGdlbmNvZGUsIGFsbG9jYXRlKTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3QuCgkqIGNvbmZpZy90Yy1uczMyay5jIChiaXRfZml4X25ldyk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbTY4ay5jIChtZF9iZWdpbik6IExpa2V3aXNlLgoJKiBoYXNoLmMgKGhhc2hfaW5zZXJ0LCBoYXNoX2phbSk6IExpa2V3aXNlLgoJKiBzeW1ib2xzLmMgKHN5bWJvbF9jcmVhdGUsIGxvY2FsX3N5bWJvbF9tYWtlKTogTGlrZXdpc2UuCgkqIGZyYWdzLmMgKGZyYWdfYWxsb2MpOiBMaWtld2lzZS4KCjIwMDgtMTAtMjAgIEpheSBLcmVsbCAgPGpheS5rcmVsbEBjb3JuZWxsLmVkdT4KCgkqIGNvbmZpZy9iZmluLXBhcnNlLnk6IFVzZSBDIHN0eWxlIGNvbW1lbnRzLgoJKiBjb25maWcvdGMtYmZpbi5jOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLW02OGsuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1taXBzLmM6IExpa2V3aXNlLgoKMjAwOC0xMC0xMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAocHJvY2Vzc29yX3R5cGUpOiBNb3ZlZCB0byB0Yy1pMzg2LmguCgkoY3B1X2FyY2hfdHVuZSk6IE1ha2UgaXQgZ2xvYmFsLgoJKGNwdV9hcmNoX2lzYSk6IExpa2V3aXNlLgoJKGNwdV9hcmNoX2lzYV9mbGFncyk6IExpa2V3aXNlLgoJKGkzODZfYWxpZ25fY29kZSk6IENoZWNrIGZyYWdQLT50Y19mcmFnX2RhdGEuaXNhLAoJZnJhZ1AtPnRjX2ZyYWdfZGF0YS5pc2FfZmxhZ3MgYW5kIGNwdV9hcmNoX3R1bmUgaW5zdGVhZCBvZgoJY3B1X2FyY2hfaXNhLCBjcHVfYXJjaF9pc2FfZmxhZ3MgYW5kIGNwdV9hcmNoX3R1bmUsCglyZXNwZWN0aXZlbHkuCgoJKiBjb25maWcvdGMtaTM4Ni5oIChwcm9jZXNzb3JfdHlwZSk6IE1vdmVkIGZyb20gdGMtaTM4Ni5jLgoJKGNwdV9hcmNoX3R1bmUpOiBOZXcuCgkoY3B1X2FyY2hfaXNhKTogTGlrZXdpc2UuCgkoY3B1X2FyY2hfaXNhX2ZsYWdzKTogTGlrZXdpc2UuCgkoaTM4Nl90Y19mcmFnX2RhdGEpOiBMaWtld2lzZS4KCShUQ19GUkFHX1RZUEUpOiBMaWtld2lzZS4KCShUQ19GUkFHX0lOSVQpOiBMaWtld2lzZS4KCjIwMDgtMTAtMDkgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBkb2MvYXMudGV4aW5mbyAoUHNldWRvIE9wcyk6IFN3YXAgb3JkZXIgb2YgQ29tbSBhbmQgQ0ZJIG1lbnUgZW50cmllcy4KCShBbHRtYWNybywgQ29tbSwgTG9jLCBMb2NfbWFya19sYWJlbHMsIExpc3QsIE1SSSwgUG9wU2VjdGlvbiwgU2xlYjEyOCk6CglNb3ZlZCBpbnRvIGFscGhhYmV0aWNhbCBvcmRlci4KCjIwMDgtMTAtMDkgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBkb2MvYXMudGV4aW5mbyAoRG90KTogRXhwYW5kIG5vLXNwYWNlLWRpciBjb25kaXRpb25hbCB0byBpbmNsdWRlCglhIGNvbXBsZXRlIHNlbnRlbmNlLgoJKFBzZXVkbyBPcHMpOiBQdXQgY29uZGl0aW9uYWxzIGFyb3VuZCBTa2lwIGFuZCBTcGFjZSBtZW51IGVudHJpZXMuCgkoTGluZSk6IFJlbW92ZSBjb25kaXRpb25hbCBkZWNsYXJhdGlvbiBvZiBMbiBub2RlIGFuZCBzZWN0aW9uIGhlcmUuCglQdXQgYW91dC1ib3V0IGRlc2NyaXB0aW9uIGluc2lkZSB0aGUgbm8tbGluZS1kaXIgY29uZGl0aW9uYWwuCgkoU2tpcCwgU3BhY2UpOiBVc2UgYSBzZXBhcmF0ZSBjb25kaXRpb25hbCBmb3IgZWFjaCBub2RlLgoKMjAwOC0xMC0wOSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGRvYy9hcy50ZXhpbmZvIChQc2V1ZG8gT3BzKTogUmVtb3ZlIG5vLWZpbGUtZGlyIGNvbmRpdGlvbmFsIGFyb3VuZAoJbWVudSBlbnRyeSBmb3IgRmlsZTsgcmVtb3ZlIHZlcnNpb24tc3BlY2lmaWMgLmZpbGUgb3BlcmFuZHMgZnJvbSBtZW51CglkZXNjcmlwdGlvbi4gIFJlcGxhY2UgIkxOUyBkaXJlY3RpdmVzIiBtZW51IGVudHJ5IHdpdGggbmV3IGVudHJpZXMKCWZvciAiTG9jIiBhbmQgIkxvY19tYXJrX2xhYmVscyIuCgkoTE5TIGRpcmVjdGl2ZXMpOiBTcGxpdCBpbnRvIHNlcGFyYXRlIG5vZGVzIGZvciBlYWNoIGRpcmVjdGl2ZS4KCShMb2MpOiBOZXcgbm9kZSBmb3IgLmxvYyBkaXJlY3RpdmUuICBNZW50aW9uIHRoYXQgdGhpcyBkaXJlY3RpdmUKCWlzIGZvciBEV0FSRjIgYW5kIGFkZCBhIG1pc3NpbmcgYXJ0aWNsZS4KCShMb2NfbWFya19sYWJlbHMpOiBMaWtld2lzZSBmb3IgLmxvY19tYXJrX2xhYmVscy4KCShGaWxlKTogQ2hhbmdlIHRoaXMgbm9kZSB0byBkZXNjcmliZSBib3RoIHRoZSBkZWZhdWx0IHZlcnNpb24gYW5kCgl0aGUgRFdBUkYyIHZlcnNpb24gb2YgLmZpbGUuICBNb3ZlIHRoZSBuby1maWxlLWRpciBjb25kaXRpb25hbCB0bwoJaW5jbHVkZSBvbmx5IHRoZSBkZWZhdWx0IHZlcnNpb24uCgoyMDA4LTEwLTA5ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGFkYWNvcmUuY29tPgoKCSogZHcyZ2VuY2ZpLmMgKGNmaV9maW5pc2gpOiBEZWFsIHdpdGggbWRfZml4X3VwX2VoX2ZyYW1lLgoJKiBjb25maWcvdGMtaTM4Ni5oIChtZF9maXhfdXBfZWhfZnJhbWUpOiBEZWZpbmUgb24gU29sYXJpcy4KCShpMzg2X3NvbGFyaXNfZml4X3VwX2VoX2ZyYW1lKTogRGVjbGFyZS4KCSogY29uZmlnL3RjLWkzODYuYyAoaTM4Nl9zb2xhcmlzX2ZpeF91cF9laF9mcmFtZSk6IE5ldyBmdW5jdGlvbi4KCjIwMDgtMTAtMDkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgNjk0NAoJKiBkb2MvYXMudGV4aW5mbyAoRG9sbGFyIExvY2FsIExhYmVscyk6IENvcnJlY3QgZGVzY3JpcHRpb24gb2YKCWRvbGxhciBsb2NhbCBsYWJlbHMgdG8gc2hvdyB0aGF0IHRoZSBjb2xvbiBzdWZmaXggaXMgc3RpbGwKCW5lZWRlZC4KCjIwMDgtMTAtMDggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkICJpZCIuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vaWQucG86IE5ldyBJbmRvbmVzaWFuIHRyYW5zbGF0aW9uLgoKMjAwOC0xMC0wNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogcmVhZC5jIChwc2V1ZG9fc2V0KTogRG9uJ3QgYWxsb3cgZ2xvYmFsIHJlZ2lzdGVyIHN5bWJvbCBvbmx5CglpZiBUQ19HTE9CQUxfUkVHSVNURVJfU1lNQk9MX09LIGlzIHVuZGVmaW5lZC4KCSogc3ltYm9scy5jIChTX1NFVF9FWFRFUk5BTCk6IExpa2V3aXNlLgoKCSogY29uZmlnL3RjLW1taXguaCAoVENfR0xPQkFMX1JFR0lTVEVSX1NZTUJPTF9PSyk6IERlZmluZWQuCgoJKiBkb2MvaW50ZXJuYWxzLnRleGk6IERvY3VtZW50IFRDX0dMT0JBTF9SRUdJU1RFUl9TWU1CT0xfT0suCgoyMDA4LTEwLTA2ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZG9jL2FzLnRleGluZm8gKExvY2FsKTogTmV3IGRlc2NyaXB0aW9uIG9mIEVMRiAubG9jYWwgZGlyZWN0aXZlLgoKMjAwOC0xMC0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiA2OTI2CgkqIHJlYWQuYyAoZ2V0X2xpbmVfc2IpOiBSZW5hbWVkIHRvIGdldF9ub25fbWFjcm9fbGluZV9zYi4KCShfZmluZF9lbmRfb2ZfbGluZSk6IEFkZCBleHRyYSBwYXJhbWV0ZXIgaW5kaWNhdGluZyBpZiB0aGUgbGluZSBpcwoJaW5zaWRlIGEgbWFjcm8uICBJZiBpdCBpcyB0aGVuIGRvIG5vdCBhbGxvdyB0aGUgQCBjaGFyYWN0ZXIgdG8gYmUKCXRyZWF0ZWQgYXMgYSBsaW5lIHNlcGFyYXRvciBjaGFyYWN0ZXIuCgkocmVhZF9hX3NvdXJjZSk6IFVwZGF0ZSB1c2Ugb2YgX2ZpbmRfZW5kX29mX2xpbmUuCgkoZmluZF9lbmRfb2ZfbGluZSk6IExpa2V3aXNlLgoJKHNfaXJwKTogVXBkYXRlIHVzZSBvZiBnZXRfbGluZV9zYi4KCShzX21hY3JvKTogTGlrZXdpc2UuCgkoZG9fcmVwZWF0KTogTGlrZXdpc2UuCgkoZ2V0X2xpbmVfc2IpOiBOZXcgZnVuY3Rpb24uICBMaWtlIHRoZSBvbGQgdmVyc2lvbiBvZiBnZXRfbGluZV9zYgoJZXhjZXB0IHRoYXQgaXQgdGFrZXMgYW4gZXh0cmEgcGFyYW1ldGVyIGluZGljYXRpbmcgd2hldGhlciB0aGUKCWxpbmUgaXMgaW5zaWRlIGEgbWFjcm8uCgkoZ2V0X21hY3JvX2xpbmVfc2IpOiBOZXcgZnVuY3Rpb24uCgoyMDA4LTEwLTA0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGNvbmZpZy90Yy1jcmlzLmM6IFVwZGF0ZSBhbGwgY29tbWVudHMgcmVnYXJkaW5nIGV4cGxpY2l0IHJlbG9jYXRpb25zCgl0bywgYmVzaWRlcyBQSUMsIGFsc28gaW1wbHkgVExTIG9yIHRvIHNheSAicmVsb2NhdGlvbiBzcGVjaWZpZXIiIG9yCglzaW1pbGFyLgoJKFJFTE9DX1NVRkZJWF9DSEFSKTogUmVuYW1lIGZyb20gUElDX1NVRkZJWF9DSEFSLiAgQ2hhbmdlIGFsbCBjYWxsZXJzLgoJKGNyaXNfZ2V0X3JlbG9jX3N1ZmZpeCk6IFJlbmFtZSBmcm9tIGNyaXNfZ2V0X3BpY19zdWZmaXguICBDaGFuZ2UgYWxsCgljYWxsZXJzLiAgQWxzbyBoYW5kbGUgVExTIHJlbG9jcy4KCShjcmlzX2dldF9zcGVjaWZpZWRfcmVsb2Nfc2l6ZSk6IFJlbmFtZSBmcm9tIGNyaXNfZ2V0X3BpY19yZWxvY19zaXplLgoJQ2hhbmdlIGFsbCBjYWxsZXJzLiAgQWxzbyBoYW5kbGUgVExTIHJlbG9jcy4KCSh0bHMpOiBOZXcgY29uc3RhbnQuCgkoY3Jpc19wcm9jZXNzX2luc3RydWN0aW9uKTogQ2hlY2sgZm9yIG5vbi1QSUMgVExTIHJlbG9jYXRpb25zIGFuZAoJYWRqdXN0IG1lc3NhZ2Ugd2hlbiBlbWl0dGluZyBlcnJvciBtZXNzYWdlIGFib3V0IHJlbG9jYXRpb24gbm90CglmaXR0aW5nLgoJKGdldF9hdXRvaW5jX3ByZWZpeF9vcl9pbmRpcl9vcCk6IEFsc28gY2hlY2sgZm9yIHJlbG9jYXRpb24gc3VmZml4Cgl3aGVuIHRscyBpcyB0cnVlLgoJKGdldF8zb3Bfb3JfZGlwX3ByZWZpeF9vcCk6IERpdHRvLgoJKGNyaXNfbnVtYmVyX3RvX2ltbSwgdGNfZ2VuX3JlbG9jKTogSGFuZGxlIFRMUyByZWxvY3MgbGlrZSBQSUMgcmVsb2NzLgoKMjAwOC0xMC0wMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNvZGVzb3VyY2VyeS5jb20+CgoJKiBsaXN0aW5nLmMgKGJ1ZmZlcl9saW5lKTogT3BlbiB0aGUgc291cmNlIGZpbGUgd2l0aCBGT1BFTl9SQi4KCU1hbnVhbGx5IHByb2Nlc3MgbGluZSBlbmRzLgoKMjAwOC0wOS0zMCAgV2VzbGV5IFcuIFRlcnBzdHJhICA8d2VzbGV5QHRlcnBzdHJhLmNhPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtdGljNHguYyAodGljNHhfZ2xvYmwpOiBDYWxsIFNfU0VUX0VYVEVSTkFMIGFzIHdlbGwgYXMKCVNfU0VUX1NUT1JBR0VfQ0xBU1MuCgoyMDA4LTA5LTMwICBXZXNsZXkgVy4gVGVycHN0cmEgIDx3ZXNsZXlAdGVycHN0cmEuY2E+CgkgICAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvZmZnZW4uYyAoY29mZl93cml0ZV9zeW1ib2xzKTogQ2hlY2sgdG8gc2VlIGlmIGEgc3ltYm9sJ3MgZmxhZ3MKCWRvIG5vdCBtYXRjaCBpdCBjbGFzcyBhbmQgaWYgbmVjZXNzYXJ5IHVwZGF0ZSB0aGUgY2xhc3MuCgkobnVsbF9lcnJvcl9oYW5kbGVyKTogTmV3IGZ1bmN0aW9uLiAgU3VwcHJlc3NlcyB0aGUgZ2VuZXJhdGlvbiBvZgoJYmZkIGVycm9yIG1lc3NhZ2VzLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKGJmZF94Y29mZl9iYWNrZW5kX2RhdGEpOiBVcGRhdGUgY29tbWVudC4KCjIwMDgtMDktMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOC0wOS0yOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGR3MmdlbmNmaS5jIChvdXRwdXRfY2ZpX2luc24pOiBGaXggdHlwbyBpbiBpbnZvY2F0aW9uIG9mCgl0Y19jZmlfZW1pdF9wY3JlbF9leHByIG1hY3JvLgoKMjAwOC0wOS0yOSAgUGV0ZXIgTydHb3JtYW4gIDxwb2dtYUB0aGV3cml0dGVud29yZC5jb20+CgkgICAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUgZm9yIG5ldyBsaWJ0b29sLgoJKiBhY2xvY2FsLm00OiBEaXR0by4KCSogTWFrZWZpbGUuaW46IERpdHRvLgoJKiBkb2MvTWFrZWZpbGUuaW46IERpdHRvLgoKMjAwOC0wOS0yOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiA2ODc4CgkqIGFwcC5jIChkb19zY3J1Yl9jaGFycyk6IE9ubHkgaXNzdWUgd2FybmluZ3MgYWJvdXQgdGljawoJY2hhcmFjdGVycyBkZXRlY3RlZCBpbiBzeW1ib2wgc3RyaW5ncyBpZiBoZXggdGlja3MgYXJlIHN1cHBvcnRlZC4KCjIwMDgtMDktMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkdzJnZW5jZmkuYyAob3V0cHV0X2NmaV9pbnNuKTogRml4IHR5cG8gaW4gaW52b2NhdGlvbiBvZgoJdGNfY2ZpX2VtaXRfcGNyZWxfZXhwciBtYWNyby4KCjIwMDgtMDktMjggIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBORVdTOiBNZW50aW9uIC5jZmlfdmFsX2VuY29kZWRfYWRkci4KCjIwMDgtMDktMjYgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAYWRhY29yZS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoVEFSR19FTlZfSEZJTEVTKTogQWRkIGNvbmZpZy90ZS1zb2xhcmlzLmguCgkqIE1ha2VmaWxlLmluIChUQVJHX0VOVl9IRklMRVMpOiBMaWtld2lzZS4KCSogY29uZmlndXJlLnRndCAoU29sYXJpcyB0YXJnZXRzKTogU2V0IGVtPXNvbGFyaXMuCgkqIGNvbmZpZy90ZS1zb2xhcmlzLmg6IE5ldyBmaWxlLgoKMjAwOC0wOS0yNiAgSmllIFpoYW5nICA8amllLnpoYW5nQGFuYWxvZy5jb20+CgoJKiBjb25maWcvYmZpbi1wYXJzZS55IChhc21fMSk6IEZpeCByZWR1Y2UvcmVkdWNlIGNvbmZsaWN0cy4KCjIwMDgtMDktMjQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkdzJnZW5jZmkuYyAoRFdBUkYyX0FERFJfU0laRSk6IFByb3ZpZGUgZGVmYXVsdC4KCShzdHJ1Y3QgY2ZpX2luc25fZGF0YSk6IEFkZCBlYSBtZW1iZXIuCgkoQ0ZJX3ZhbF9lbmNvZGVkX2FkZHIsIGRvdF9jZmlfdmFsX2VuY29kZWRfYWRkcik6IE5ldy4KCShvdXRwdXRfY2ZpX2luc24pOiBIYW5kbGUgQ0ZJX3ZhbF9lbmNvZGVkX2FkZHIuCgkoc2VsZWN0X2NpZV9mb3JfZmRlKTogRG9uJ3QgbWF0Y2ggQ0ZJX3ZhbF9lbmNvZGVkX2FkZHIuCgkqIGRvYy9hcy50ZXhpbmZvICguY2ZpX3ZhbF9lbmNvZGVkX2FkZHIpOiBEb2N1bWVudC4KCjIwMDgtMDktMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgNjkxMwoJKiBsaXN0aW5nLmMgKHByaW50X29wdGlvbnMpOiBEb24ndCBjYWxsIGZwcmludGYgd2l0aG91dCBmb3JtYXQgc3RyaW5nLgoKMjAwOC0wOS0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHdyaXRlLmMgKFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0xPQ0FMKTogSGVlZCBtZF9yZWdpc3Rlcl9hcml0aG1ldGljLgoJKFRDX1ZBTElEQVRFX0ZJWF9TVUIpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWZydi5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtaHBwYS5oIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCk6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtbW4xMDMwMC5oIChUQ19WQUxJREFURV9GSVhfU1VCKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1zaC5oIChUQ19WQUxJREFURV9GSVhfU1VCKTogTGlrZXdpc2UuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfTE9DQUwpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLXNoNjQuaCAoVENfVkFMSURBVEVfRklYX1NVQik6IExpa2V3aXNlLgoJKiBjb25maWcvdGMteHRlbnNhLmggKFRDX1ZBTElEQVRFX0ZJWF9TVUIpOiBMaWtld2lzZS4KCSogZG9jL2ludGVybmFscy50ZXhpIChUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9BQlMsCglUQ19GT1JDRV9SRUxPQ0FUSU9OX1NVQl9MT0NBTCwgVENfVkFMSURBVEVfRklYX1NVQik6IFNob3cgbmV3IHBhcmFtLgoKCSogd3JpdGUuYyAobWRfcmVnaXN0ZXJfYXJpdGhtZXRpYyk6IERlZmluZS4KCShmaXh1cF9zZWdtZW50KTogQWRqdXN0IFRDX0ZPUkNFX1JFTE9DQVRJT05fU1VCX0FCUyBpbnZvY2F0aW9uLgoJTW9kaWZ5IGVycm9yIG1lc3NhZ2Ugd2hlbiByZWdpc3RlcnMgaW52b2x2ZWQuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfQUJTKTogSGVlZCBtZF9yZWdpc3Rlcl9hcml0aG1ldGljLgoJKiBjb25maWcvdGMtc2guaCAoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfQUJTKTogTGlrZXdpc2UuCgoyMDA4LTA5LTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogd3JpdGUuYyAoaW5zdGFsbF9yZWxvYyk6IENvcnJlY3QgRU1JVF9TRUNUSU9OX1NZTUJPTFMgdGVzdC4KCjIwMDgtMDktMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtZnJ2LmMgKG1kX2FwcGx5X2ZpeCk6IFVzZSBhYnNfc2VjdGlvbl9zeW0gZm9yCglyZWxvY3Mgd2l0aCBubyBzeW1ib2wuCgkqIGNvbmZpZy90Yy1tbWl4LmMgKG1kX2Fzc2VtYmxlKTogTWFyayBmYWtlIHN5bWJvbCBvbgoJQkZEX1JFTE9DX01NSVhfQkFTRV9QTFVTX09GRlNFVCBhcyBPSyBmb3IgdXNlIGJ5IHJlbG9jcy4KCShtbWl4X21kX2VuZCk6IExpa2V3aXNlIG1hcmsgbW1peCByZWcgY29udGVudHMgc2VjdGlvbiBzeW1ib2wuCgoyMDA4LTA5LTE0ICBDaHJpcyBTbWl0aCA8Y2hyaXNAenhkZXNpZ24uaW5mbz4KCgkqIGNvbmZpZy90Yy16ODAuYzogT3Bjb2RlIGdlbmVyYXRpb24gb2YgbGQgYSwoYmMpIGFuZCBsZCBhLChkZSkgd2FzCglicm9rZW4sIGFzIHRoZSBvcGNvZGUgb2YgbGQgYSwoZGUpIHdhcyBiZWluZyBlbWl0dGVkIGZvciBib3RoLgoKMjAwOC0wOS0xMiAgU3RlcmxpbmcgQXVndXN0aW5lICA8c3RlcmxpbmdAdGVuc2lsaWNhLmNvbT4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoaW5pdF9vcF9wbGFjZW1lbnRfaW5mb190YWJsZSk6IEFsbG93IG51bWJlciBvZgoJb3BlcmFuZHMgZXF1YWwgdG8gTUFYX0lOU05fQVJHUy4KCjIwMDgtMDktMTEgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQ2FsbCBBQ19TWVNfTEFSR0VGSUxFLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDgtMDktMDkgIFBldGVyIEJlcmduZXIgIDxiZXJnbmVyQHZuZXQuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocHBjX3NldHVwX29wY29kZXMpOiBTaW1wbGlmeSBQT1dFUjQvTk9QT1dFUjQgdGVzdC4KCVJlbW92ZSBQT1dFUjUgYW5kIFBPV0VSNiB0ZXN0cy4KCjIwMDgtMDktMDggIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBjb25maWcvdGMtaHBwYS5jIChocHBhX3JlZ25hbWVfdG9fZHcycmVnbnVtKTogQWRkIHJlZ2lzdGVyIG5hbWUgdG8KCW51bWJlciBzdXBwb3J0IGZvciAzMi1iaXQgdGFyZ2V0cy4KCjIwMDgtMDktMDggIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBORVdTOiBBZGQgYSBtYXJrZXIgZm9yIHRoZSAyLjE5IGZlYXR1cmVzLgoKMjAwOC0wOS0wNyAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIGNvbmZpZy90Yy1ocHBhLmggKERJRkZfRVhQUl9PSyk6IERlZmluZSBmb3IgU09NIHRhcmdldC4gIFJldmlzZQoJY29tbWVudCByZWdhcmRpbmcgdXNlIG9mIGRpZmZlcmVuY2UgZXhwcmVzc2lvbnMuCgkoVENfRk9SQ0VfUkVMT0NBVElPTl9TVUJfTE9DQUwpOiBEZWZpbmUgdG8gMS4KCgkqIGR3MmdlbmNmaS5jIChDRklfRElGRl9FWFBSX09LKTogRGVmaW5lIGlmIG5vdCBkZWZpbmVkLgoJKGRvdF9jZmlfcGVyc29uYWxpdHkpOiBVc2UgQ0ZJX0RJRkZfRVhQUl9PSyBpbnN0ZWFkIG9mIERJRkZfRVhQUl9PSy4KCShkb3RfY2ZpX2xzZGEsIG91dHB1dF9jaWUsIG91dHB1dF9mZGUpOiBMaWtld2lzZS4KCSogY29uZmlnL3RjLWhwcGEuaCAoQ0ZJX0RJRkZfRVhQUl9PSyk6IERlZmluZS4KCjIwMDgtMDktMDYgIFJpY2hhcmQgU2FuZGlmb3JkICA8cmRzYW5kaWZvcmRAZ29vZ2xlbWFpbC5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5oIChEV0FSRjJfRkRFX1JFTE9DX1NJWkUpOiBEZWZpbmUuCgoyMDA4LTA5LTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAocGVfbGNvbW1faW50ZXJuYWwpOiBOZXcgZnVuY3Rpb24uICBBbGxvd3MgdGhlCglhbGlnbm1lbnQgZmllbGQgb2YgdGhlIC5sY29tbSBkaXJlY3RpdmUgdG8gYmUgb3B0aW9uYWwuCgkocGVfbGNvbW0pOiBOZXcgZnVuY3Rpb24uICBQYXNzIHBlX2xjb21tX2ludGVybmFsIHRvCglzX2NvbW1faW50ZXJuYWwuCgkobWRfcHNldWRvX3RhYmxlKTogSW1wbGVtZW50IC5sY29tbSBkaXJlY3RpdmUgZm9yIENPRkYgYmFzZWQKCXRhcmdldHMuCgkqIGRvYy9jLWkzODYudGV4aSAoaTM4Ni1EaXJlY3RpdmVzKTogTmV3IG5vZGUuICBVc2VkIHRvIGRvY3VtZW50Cgl0aGUgLmxjb21tIGRpcmVjdGl2ZS4KCQoyMDA4LTA4LTMwICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogY29uZmlnL3RjLWhwcGEuaDogRG9uJ3QgZGVmaW5lIERXQVJGMl9FSF9GUkFNRV9SRUFEX09OTFkgb24gTGludXgKCWFuZCBOZXRCU0QuCgoyMDA4LTA4LTI5ICBFcmljIEIuIFdlZGRpbmd0b24gIDxlcmljLndlZGRpbmd0b25AYXRtZWwuY29tPgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBBZGQgYXRtZWdhMTZ1NC4KCSogZG9jL2MtYXZyLnRleGk6IExpa2V3aXNlLgoKMjAwOC0wOC0yOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWlhNjQuYyAoQ1JfSUlCMCk6IE5ldy4KCShDUl9JSUIxKTogTGlrZXdpc2UuCgkoY3IpOiBBZGQgY3IuaWliMCBhbmQgY3IuaWliMS4KCShzcGVjaWZ5X3Jlc291cmNlKTogSGFuZGxlIElBNjRfUlNfQ1JfSUlCIGFuZCBDUl9JSUIwL0NSX0lJQjEuCgoyMDA4LTA4LTI4ICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtZF9hc3NlbWJsZSk6IEZvcmNlIG51bWJlciBvZiBkaXNwbGFjZW1lbnQKCW9wZXJhbmRzIHRvIHplcm8gd2hlbiBwcm9jZXNzaW5nIHN0cmluZyBpbnN0cnVjdGlvbi4KCShpMzg2X2luZGV4X2NoZWNrKTogU3BlY2lhbC1jYXNlIHN0cmluZyBpbnN0cnVjdGlvbiBvcGVyYW5kcy4gRG9uJ3QKCWZ1ZGdlIGFkZHJlc3MgcHJlZml4IGlmIHRoZXJlIGFscmVhZHkgd2FzIGEgbWVtb3J5IG9wZXJhbmQuIEZpeAoJZXJyb3IgbWVzc2FnZSB0byBjb3JyZWN0bHkgcmVmbGVjdCB0aGUgYWRkcmVzc2luZyBtb2RlIHVzZWQuCgkoaTM4Nl9hdHRfb3BlcmFuZCk6IEZpeCBjb21tZW50LgoJKGkzODZfaW50ZWxfb3BlcmFuZCk6IFNuYXBzaG90LCBjbGVhciwgYW5kIHJlc3RvcmUgYmFzZSBhbmQgaW5kZXgKCXJlZyBmb3IgZWFjaCBvcGVyYW5kIHByb2Nlc3NlZC4gSW5jcmVtZW50IGNvdW50IG9mIG1lbW9yeSBvcGVyYW5kcwoJbGF0ZXIuCgoyMDA4LTA4LTI3ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogY29uZmlnL3RjLWhwcGEuYyAoaXNfU0JfcmVsYXRpdmUpOiBOZXcgbWFjcm8uCgkoZml4X25ld19ocHBhKTogUmVtb3ZlICRzZWdyZWwkIG1hcmtlci4KCShjb25zX2ZpeF9uZXdfaHBwYSk6IFNldCByZWxvYyB0eXBlIFJfUEFSSVNDX1NFR1JFTDMyIGlmIGV4cHJlc3Npb24gaXMKCXNlZ21lbnQgcmVsYXRpdmUuCgkqIGNvbmZpZy90Yy1ocHBhLmggKHRjX2Zyb2Jfc3ltYm9sKTogQ2hlY2sgZm9yICRzZWdyZWwkLgoKMjAwOC0wOC0yNyAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoY2hlY2tfc3RyaW5nKTogVXNlIHJlZ2lzdGVyX3ByZWZpeCBmb3IgZXJyb3IKCW1lc3NhZ2UuCgkocHJvY2Vzc19vcGVyYW5kcyk6IExpa2V3aXNlLgoKMjAwOC0wOC0yNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGMtYXJtLnRleGk6IEFkZCB0dXRvcmlhbCBvbiBBUk0gdW53aW5kaW5nIHBzZXVkbyBvcHMuCgoyMDA4LTA4LTI2ICBKaWUgWmhhbmcgIDxqaWUuemhhbmdAYW5hbG9nLmNvbT4KCgkqIGNvbmZpZy9iZmluLXBhcnNlLnkgKGNoZWNrX21hY2Z1bmNfb3B0aW9uKTogRml4IGluc3RydWN0aW9uCgltb2RlIGNoZWNraW5nLgoJKGFzbV8xKTogQ2hlY2sgbW9kZSBmb3IgMTYtYml0IG11bHRpcGx5IGluc3RydWN0aW9ucy4KCjIwMDgtMDgtMjQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUuaW46IFVwZGF0ZSBhIG51bWJlciBvZiBvYnNvbGV0ZSBhdXRvY29uZiBtYWNyb3MuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCjIwMDgtMDgtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtbWNvcmUuYyAobWRfYXNzZW1ibGUpOiBJbmNyZWFzZSBsZW5ndGggb2YgbmFtZSBhcnJheQoJdG8gaW5jbHVkZSB0ZXJtaW5hdGluZyBOVUwuCgoyMDA4LTA4LTIyICBKaWUgWmhhbmcgIDxqaWUuemhhbmdAYW5hbG9nLmNvbT4KCgkqIGNvbmZpZy9iZmluLWxleC5sIChOVU1CRVIpOiBQcm90ZWN0IHNwZWNpYWwgYC4nLgoKMjAwOC0wOC0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHN5bWJvbHMuYyAoc3ltYm9sX2Nsb25lKTogRW5zdXJlIGNsb25lcyBhcmUgbm90IGV4dGVybmFsLgoKMjAwOC0wOC0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy1ocHBhLmMgKG1kX2JlZ2luKTogU2V0IEJTRl9LRUVQIGZvciAiZHVtbXlfc3ltYm9sIi4KCjIwMDgtMDgtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkdzJnZW5jZmkuYyAoRFdBUkYyX0ZERV9SRUxPQ19TSVpFKTogTmV3LgoJKG91dHB1dF9jaWUsIG91dHB1dF9mZGUpOiBVc2UgaXQuCgkoRFdBUkYyX0VIX0ZSQU1FX1JFQURfT05MWSk6IE5ldy4KCShjZmlfZmluaXNoKTogVXNlIGl0LgoKCSogY29uZmlnL3RjLWhwcGEuaCAoRFdBUkYyX0ZERV9SRUxPQ19TSVpFKTogU2V0IHRvIDggZm9yIDY0LWJpdC4KCShEV0FSRjJfQ0lFX0RBVEFfQUxJR05NRU5UKTogQ2hhbmdlIHNpZ24uCgkoRFdBUkYyX0VIX0ZSQU1FX1JFQURfT05MWSk6IE5ldy4KCSogY29uZmlnL3RjLWhwcGEuYyAodGNfZ2VuX3JlbG9jKTogR2VuZXJhdGUgcGMtcmVsYXRpdmUgcmVsb2NhdGlvbnMKCWZyb20gdGhlIHJlc3VsdHMgb2YgRElGRl9FWFBSX09LIG1hbmlwdWxhdGlvbi4KCjIwMDgtMDgtMjEgIFN0ZXJsaW5nIEF1Z3VzdGluZSAgPHN0ZXJsaW5nQHRlbnNpbGljYS5jb20+CgoJKiBjb25maWcveHRlbnNhLWlzdGFjay5oIChNQVhfSU5TTl9BUkdTKTogSW5jcmVhc2UgdG8gNjQuCgoyMDA4LTA4LTIwICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5jIChPX3Rsc2Z1bmMsIE9fdGxzYXJnLCBPX3Rsc2NhbGwpOiBEZWZpbmUuCgkoT190cG9mZiwgT19kdHBvZmYpOiBEZWZpbmUuCgkoc3VmZml4X3JlbG9jcyk6IEFkZCBlbnRyaWVzIGZvciBUTFMgc3VmZml4ZXMuCgkoeHRlbnNhX2VsZl9jb25zKTogQ2hlY2sgZm9yIGludmFsaWQgdXNlIG9mIFRMUyByZWxvY2F0aW9ucy4KCShtYXBfb3BlcmF0b3JfdG9fcmVsb2MpOiBBZGQgaXNfbGl0ZXJhbCBwYXJhbWV0ZXIgYW5kIHVzZSBpdCB0bwoJY29udHJvbCB0cmFuc2xhdGluZyBUTFMgaW5zdHJ1Y3Rpb24gcmVsb2NhdGlvbnMgdG8gdGhlIGNvcnJlc3BvbmRpbmcKCWxpdGVyYWwgcmVsb2NhdGlvbnMuCgkoeGdfdmFsaWRfbGl0ZXJhbF9leHByZXNzaW9uKTogQWxsb3cgVExTIG9wZXJhdG9ycy4KCSh4Z19idWlsZF90b19pbnNuKTogQ29weSBUTFMgb3BlcmF0b3JzIGZyb20gcHNldWRvLWluc3RydWN0aW9uCglvcGVyYW5kcyB0byBnZW5lcmF0ZWQgbGl0ZXJhbHMuCgkoeGdfYXNzZW1ibGVfbGl0ZXJhbCk6IEhhbmRsZSBUTFMgb3BlcmF0b3JzLiAgVXBkYXRlIGNhbGwgdG8KCW1hcF9vcGVyYXRvcl90b19yZWxvYy4KCShtZF9hc3NlbWJsZSk6IEhhbmRsZSBDQUxMWG4uVExTIHBzZXVkby1pbnN0cnVjdGlvbi4KCShtZF9hcHBseV9maXgpOiBIYW5kbGUgVExTIHJlbG9jYXRpb25zLgoJKGVtaXRfc2luZ2xlX29wKTogSGFuZGxlIFRMUyBvcGVyYXRvcnMuCgkoY29udmVydF9mcmFnX2ltbWVkKTogVXBkYXRlIGNhbGwgdG8gbWFwX29wZXJhdG9yX3RvX3JlbG9jLgoJKHZpbnNuX3RvX2luc25idWYpOiBFbWl0IHJlbG9jYXRpb25zIGZvciBUTFMtcmVsYXRlZCBpbnN0cnVjdGlvbnMuCgkqIGNvbmZpZy94dGVuc2EtaXN0YWNrLmggKHRpbnNuX3N0cnVjdCk6IEFkZCB0bHNfcmVsb2MgZmllbGQuCgkqIGNvbmZpZy94dGVuc2EtcmVsYXguYyAoYXBwZW5kX2xpdGVyYWxfb3ApOiBBZGQgc3JjX29wIHBhcmFtZXRlcgoJdG8gaW5pdGlhbGl6ZSB0aGUgb3BfZGF0YSBmaWVsZCBvZiB0aGUgQnVpbGRPcC4KCShidWlsZF90cmFuc2l0aW9uKTogVXNlIGl0IGhlcmUgdG8gcmVjb3JkIHRoZSBzb3VyY2Ugb3BlcmFuZAoJY29ycmVzcG9uZGluZyB0byBhIGdlbmVyYXRlZCBsaXRlcmFsLgoJKiBjb25maWcveHRlbnNhLXJlbGF4LmggKGJ1aWxkX29wKTogQ29tbWVudCBvcF9kYXRhIHVzZSBmb3IgbGl0ZXJhbHMuCgoyMDA4LTA4LTIwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJQVZYIFByb2dyYW1taW5nIFJlZmVyZW5jZSAoQXVndXN0LCAyMDA4KQoJKiBjb25maWcvdGMtaTM4Ni5jIChDUFVfRkxBR1NfQUVTX01BVENIKTogTmV3LgoJKENQVV9GTEFHU19BVlhfTUFUQ0gpOiBMaWtld2lzZS4KCShDUFVfRkxBR1NfMzJCSVRfTUFUQ0gpOiBVcGRhdGVkLgoJKGNwdV9mbGFnc19tYXRjaCk6IExpa2V3aXNlLgoKMjAwOC0wOC0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiA2ODQ4CgkqIHdyaXRlLmMgKGluc3RhbGxfcmVsb2MpOiBDaGVjayB0aGF0IHJlbG9jIHN5bWJvbHMgaGF2ZSBiZWVuCgl3cml0dGVuLgoJKHNldF9zeW10YWIpOiBNYXJrIHN5bWJvbHMgd2l0aCBCU0ZfS0VFUC4KCjIwMDgtMDgtMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGkzODZfYWxpZ25fY29kZSk6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDgtMDgtMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgNjUyNgoJKiBjb25maWd1cmUuaW46IEludm9rZSBBQ19VU0VfU1lTVEVNX0VYVEVOU0lPTlMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOC0wOC0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90Yy10aWM0eC5jICh0aWM0eF9vcGVyYW5kc19wYXJzZSk6IE1ha2Ugc3RhdGljLgoKMjAwOC0wOC0xMyAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBkb2MvYXMudGV4aW5mbyAoQWxpZ24pOiBEb2N1bWVudCB0aGUgUG93ZXJQQyBiZWhhdmlvdXIuCgoyMDA4LTA4LTEzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXMuYywgYXMuaCwgZWNvZmYuYywgaGFzaC5jLCBtYWNyby5jLCBzeW1ib2xzLmMsIGNvbmZpZy9vYmotZXZheC5jLAoJY29uZmlnL29iai1zb20uYywgY29uZmlnL3RjLWFscGhhLmMsIGNvbmZpZy90Yy1hcm0uYywgY29uZmlnL3RjLWJmaW4uYywKCWNvbmZpZy90Yy1iZmluLmgsIGNvbmZpZy90Yy1jcnguYywgY29uZmlnL3RjLWZydi5jLCBjb25maWcvdGMtZnJ2LmgsCgljb25maWcvdGMtaHBwYS5oLCBjb25maWcvdGMtaTM4Ni5jLCBjb25maWcvdGMtaTg2MC5jLCBjb25maWcvdGMtaTk2MC5oLAoJY29uZmlnL3RjLWlhNjQuYywgY29uZmlnL3RjLWlhNjQuaCwgY29uZmlnL3RjLW0zMmMuYywgY29uZmlnL3RjLW0zMmMuaCwKCWNvbmZpZy90Yy1tNjhrLmMsIGNvbmZpZy90Yy1tYXhxLmMsIGNvbmZpZy90Yy1zMzkwLmMsIGNvbmZpZy90Yy1zMzkwLmgsCgljb25maWcvdGMtc3BhcmMuYywgY29uZmlnL3RjLXNwYXJjLmgsIGNvbmZpZy90Yy1zcHUuYywgY29uZmlnL3RjLXNwdS5oLAoJY29uZmlnL3RjLXRpYzR4LmMsIGNvbmZpZy90Yy10aWM0eC5oLCBjb25maWcvdGMtdGljNTR4LmMsCgljb25maWcvdGMtdGljNTR4LmgsIGNvbmZpZy90Yy12YXguYywgZG9jL2ludGVybmFscy50ZXhpOiBCYW5pc2ggUEFSQU1TCglhbmQgUFRSLiAgQ29udmVydCB0byBJU08gQy4gIERlbGV0ZSB1bm5lY2Vzc2FyeSBmb3J3YXJkIGRlY2xhcmF0aW9ucy4KCjIwMDgtMDgtMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtYXJtLmMgKHNfdW5yZXEpOiBBZGp1c3QgaGFzaF9kZWxldGUgY2FsbC4KCSogY29uZmlnL3RjLWlhNjQuYyAoZG90X3JvdCk6IExpa2V3aXNlLgoKMjAwOC0wOC0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiA2NTc1CgkqIGhhc2guYzogRXhwYW5kIFBUUiB0byB2b2lkICouCgkoaGFzaF9kZWxldGUpOiBBZGQgImZyZWVtZSIgcGFyYW1ldGVyLiAgQ2FsbCBvYnN0YWNrX2ZyZWUuCgkqIGhhc2guaDogRXhwYW5kIFBUUiB0byB2b2lkICouCgkoaGFzaF9kZWxldGUpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiBtYWNyby5jIChtYWNyb19leHBhbmRfYm9keSk6IGhhc2hfZGVsZXRlIExPQ0FMcyBmcm9tIGZvcm1hbF9oYXNoLgoJKiBjb25maWcvdGMtdGljNTR4LmMgKHRpYzU0eF9yZW1vdmVfbG9jYWxfbGFiZWwpOiBVcGRhdGUgaGFzaF9kZWxldGUKCWNhbGwuCgkoc3Vic3ltX3N1YnN0aXR1dGUpOiBMaWtld2lzZS4KCSogZG9jL2ludGVybmFscy50ZXhpIChoYXNoX2RlbGV0ZSk6IFVwZGF0ZS4KCjIwMDgtMDgtMDggIEFuYXRvbHkgU29rb2xvdiAgPGFlc29rQHBvc3QucnU+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1jdV90eXBlcyk6IEFkZCBhdnIyNSwgYXZyMzEsIGF2cjM1LCBhbmQgYXZyNTEKCWFyY2hpdGVjdHVyZXMuIFJlb3JnYW5pemUgbGlzdCB0byBwdXQgbWN1IHR5cGVzIGluIGNvcnJlY3QKCWFyY2hpdGVjdHVyZXMgYW5kIHRvIG9yZGVyIGxpc3Qgc2FtZSBhcyBpbiBHQ0MuIFVzZSBuZXcgSVNBCglkZWZpbml0aW9ucyBpbiBpbmNsdWRlL29wY29kZS9hdnIuaC4KCSogZG9jL2MtYXZyLnRleGk6IEFkZCBhdnIyNSwgYXZyMzEsIGF2cjM1LCBhbmQgYXZyNTEgYXJjaGl0ZWN0dXJlCglkZXNjcmlwdGlvbnMuIFJlb3JnYW5pemUgZGVzY3JpcHRpb25zIHRvIHB1dCBtY3UgdHlwZXMgaW4gY29ycmVjdAoJYXJjaGl0ZWN0dXJlcyBhbmQgdG8gb3JkZXIgbGlzdHMgc2FtZSBhcyBpbiBHQ0MuCgoyMDA4LTA4LTA4ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJkc2FuZGlmb3JkQGdvb2dsZW1haWwuY29tPgoJICAgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChPUFRJT05fQ0FMTF9OT05QSUMpOiBOZXcgbWFjcm8uCgkoT1BUSU9OX05PTl9TSEFSRUQsIE9QVElPTl9YR09ULCBPUFRJT05fTUFCSSwgT1BUSU9OXzMyKQoJKE9QVElPTl9OMzIsIE9QVElPTl82NCwgT1BUSU9OX01ERUJVRywgT1BUSU9OX05PX01ERUJVRykKCShPUFRJT05fUERSLCBPUFRJT05fTk9fUERSLCBPUFRJT05fTVZYV09SS1NfUElDKTogQnVtcCBieSAxLgoJKG1kX2xvbmdvcHRzKTogQWRkIC1jYWxsX25vbnBpYy4KCShtZF9wYXJzZV9vcHRpb24pOiBIYW5kbGUgT1BUSU9OX0NBTExfTk9OUElDLgoJKG1kX3Nob3dfdXNhZ2UpOiBBZGQgLWNhbGxfbm9ucGljLgoKMjAwOC0wOC0wOCAgU3RlcmxpbmcgQXVndXN0aW5lICA8c3RlcmxpbmdAdGVuc2lsaWNhLmNvbT4KCgkqIGNvbmZpZy90Yy14dGVuc2EuYyAoZXhjbHVkZV9zZWN0aW9uX2Zyb21fcHJvcGVydHlfdGFibGVzKTogTmV3LgoJKHh0ZW5zYV9jcmVhdGVfcHJvcGVydHlfc2VnbWVudHMpOiBVc2UgaXQuCgkoeHRlbnNhX2NyZWF0ZV94cHJvcGVydHlfc2VnbWVudHMpOiBMaWtld2lzZS4KCjIwMDgtMDgtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkb2MvaW50ZXJuYWxzLnRleGkgKERXQVJGMl9GT1JNQVQpOiBVcGRhdGUgZm9yIDIwMDgtMDgtMDQgY2hhbmdlLgoKMjAwOC0wOC0wNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyZHNhbmRpZm9yZEBnb29nbGVtYWlsLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHMxNl9yZWxvY19wLCBnb3QxNl9yZWxvY19wLCBoaTE2X3JlbG9jX3ApCgkobG8xNl9yZWxvY19wKTogTmV3IGZ1bmN0aW9ucy4KCShyZWxvY19uZWVkc19sb19wKTogVXNlIGhpMTZfcmVsb2NfcCBhbmQgZ290MTZfcmVsb2NfcCB0bwoJZ2VuZXJhbGl6ZSByZWxvY2F0aW9uIGNoZWNrcy4KCShtYXRjaGluZ19sb19yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShmaXh1cF9oYXNfbWF0Y2hpbmdfbG9fcCk6IFVzZSBpdC4KCShtaXBzMTZfbWFya19sYWJlbHMpOiBEb24ndCBjbG9iYmVyIGEgc3ltYm9sJ3MgdmlzaWJpbGl0eS4KCShhcHBlbmRfaW5zbik6IFVzZSBoaTE2X3JlbG9jX3AgYW5kIGxvMTZfcmVsb2NfcC4KCShtaXBzMTZfaXApOiBIYW5kbGUgQkZEX1JFTE9DX01JUFMxNl9HT1QxNiBhbmQgQkZEX1JFTE9DX01JUFMxNl9DQUxMMTYuCgkobWRfYXBwbHlfZml4KTogTGlrZXdpc2UuCgkobWlwczE2X3BlcmNlbnRfb3ApOiBBZGQgJWdvdCBhbmQgJWNhbGwxNi4KCShtaXBzX2Zyb2JfZmlsZSk6IFVzZSBnb3QxNl9yZWxvY19wIHRvIGdlbmVyYWxpemUgcmVsb2NhdGlvbiBjaGVja3MuCglVc2UgbWF0Y2hpbmdfbG9fcmVsb2MuCgkobWlwc19mb3JjZV9yZWxvY2F0aW9uKTogVXNlIGhpMTZfcmVsb2NfcCBhbmQgbG8xNl9yZWxvY19wIHRvCglnZW5lcmFsaXplIHJlbG9jYXRpb24gY2hlY2tzLgoJKG1pcHNfZml4X2FkanVzdGFibGUpOiBVc2UgbG8xNl9yZWxvY19wIHRvIGdlbmVyYWxpemUgcmVsb2NhdGlvbgoJY2hlY2tzLgoKMjAwOC0wOC0wNiAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBORVdTOiBNZW50aW9uIHRoZXNlIGNoYW5nZXMuCgoJKiBjb25maWcvdGMtaDgzMDAuaCAoSF9USUNLX0hFWCk6IERlZmluZS4KCSogY29uZmlnL3RjLWg4MzAwLmMgKE9QVElPTl9IX1RJQ0tfSEVYKTogTmV3LgoJKG1kX2xvbmdvcHRzKTogQWRkICItaC10aWNrLWhleCIuCgkobWRfcGFyc2Vfb3B0aW9uKTogU3VwcG9ydCBpdC4KCSogZG9jL2MtaDgzMDAudGV4aSAoSDgvMzAwIE9wdGlvbnMpOiBEb2N1bWVudCBpdC4KCSogZG9jL2FzLnRleGluZm8gKE92ZXJ2aWV3KTogTGlrZXdpc2UuCgoJKiBjb25maWcvdGMtc2guaCAoSF9USUNLX0hFWCk6IERlZmluZS4KCSogY29uZmlnL3RjLXNoLmMgKE9QVElPTl9IX1RJQ0tfSEVYKTogTmV3LgoJKG1kX2xvbmdvcHRzKTogQWRkICItaC10aWNrLWhleCIuCgkobWRfcGFyc2Vfb3B0aW9uKTogU3VwcG9ydCBpdC4KCSogZG9jL2Mtc2gudGV4aSAoU0ggT3B0aW9ucyk6IERvY3VtZW50IGl0LgoJKiBkb2MvYy1zaDY0LnRleGkgKFNINjQgT3B0aW9ucyk6IERvY3VtZW50IGl0LgoJKiBkb2MvYXMudGV4aW5mbyAoT3ZlcnZpZXcpOiBMaWtld2lzZS4KCjIwMDgtMDgtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgZ2FzLzY2NTYKCSogZHdhcmYyZGJnLmMgKGR3YXJmMl9kaXJlY3RpdmVfZmlsZSk6IERpc2FibGUgZ2FzIGdlbmVyYXRlZAoJZGVidWcgaW5mbyBpZiB3ZSBzZWUgY29tcGlsZXIgZ2VuZXJhdGVkIGRlYnVnIGluZm8uCgkoZHdhcmYyX2RpcmVjdGl2ZV9sb2MpOiBMaWtld2lzZS4gIFJlbW92ZSByZWR1bmRhbnQgZGVidWdfdHlwZSB0ZXN0LgoKMjAwOC0wOC0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGR3YXJmMmRiZy5jOiBSZW1vdmUgc3VwZXJmbHVvdXMgZm9yd2FyZCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCgkoRFdBUkYyX0ZPUk1BVCk6IEFkZCBzZWN0aW9uIGFyZy4KCShvdXRfaGVhZGVyKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBvdXQgZnJvbS4uCgkob3V0X2RlYnVnX2xpbmUpOiAuLmhlcmUuCgkob3V0X2RlYnVnX2FyYW5nZXMpOiBVc2Ugb3V0X2hlYWRlci4KCShvdXRfZGVidWdfYWJicmV2KTogQWRkIGluZm9fc2VnIGFuZCBsaW5lX3NlZyBhcmdzLiAgVXNlCglEV19GT1JNX2RhdGE4IChmb3IgRFdfQVRfc3RtdF9saXN0KSBpZiBsaW5lX3NlZyBpcyA2NC1iaXQuCgkob3V0X2RlYnVnX2luZm8pOiBVc2Ugb3V0X2hlYWRlci4gIE91dHB1dCA4IGJ5dGUgRFdfQVRfc3RtdF9saXN0CglpZiBsaW5lX3NlZyBpcyA2NC1iaXQuCgkoZHdhcmYyX2ZpbmlzaCk6IEFkanVzdCBvdXRfZGVidWdfYWJicmV2IGNhbGwuCgkqIGNvbmZpZy90Yy1taXBzLmggKERXQVJGMl9GT1JNQVQsIG1pcHNfZHdhcmYyX2Zvcm1hdCk6IEFkZCBzZWMgYXJnLgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX2R3YXJmMl9mb3JtYXQpOiBMaWtld2lzZS4KCjIwMDgtMDgtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoUE9URklMRVMuaW4pOiBTZXQgTENfQUxMPUMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDgtMDgtMDEgIFBldGVyIEJlcmduZXIgIDxiZXJnbmVyQHZuZXQuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocGFyc2VfY3B1KTogUmVuYW1lIGFsdGl2ZWNfb3Jfc3BlIHRvIHJldGFpbl9mbGFncy4KCUhhbmRsZSAtbXZzeCBhbmQgLW1wb3dlcjcuCgkobWRfc2hvd191c2FnZSk6IERvY3VtZW50IC1tcG93ZXI3IGFuZCAtbXZzeC4KCSogZG9jL2FzLnRleGluZm8gKFRhcmdldCBQb3dlclBDKTogRG9jdW1lbnQgLW12c3guCgkqIGRvYy9jLXBwYy50ZXhpIChQb3dlclBDLU9wdHMpOiBEb2N1bWVudCAtbXZzeCBhbmQgLW1wb3dlcjcuCgoyMDA4LTA3LTMxICBQZXRlciBCZXJnbmVyICA8YmVyZ25lckB2bmV0LmlibS5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBhcnNlX2NwdSkgPHBvd2VyNj46IEFjY2VwdCBBbHRpdmVjIGluc3RydWN0aW9ucy4KCTxjZWxsPjogTGlrZXdpc2UuCgoyMDA4LTA3LTMwICBNaWNoYWVsIEouIEVhZ2VyICA8ZWFnZXJAZWFnZXJjb24uY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChwYXJzZV9jcHUpOiBTZXBhcmF0ZSBoYW5kbGluZyBvZiAtbTQwMy80MDUuCgkobWRfc2hvd191c2FnZSk6IExpa2V3aXNlLgoKMjAwOC0wNy0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG1lc3NhZ2VzLmMsIHN5bWJvbHMuYywgd3JpdGUuYzogU2lsZW5jZSBnY2Mgd2FybmluZ3MuCgoyMDA4LTA3LTI4ICBJbmVpZXYgIDxpbmVpZXZAeWFob28uY28udWs+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChvcGVyYW5kX3R5cGVfY2hlY2spOiBXYXJuaW5nIGZpeC4KCjIwMDgtMDctMjYgIE1pY2hhZWwgRWFnZXIgPGVhZ2VyQGVhZ2VyY29uLmNvbT4KCgkqIGRvYy9hcy50ZXhpbmZvOiBBZGQgZGVzY3JpcHRpb24gb2Ygc2luZ2xlLXByZWNpc2lvbiBhdHRyaWJ1dGUuCgoyMDA4LTA3LTI0ICBKaWUgWmhhbmcgIDxqaWUuemhhbmdAYW5hbG9nLmNvbT4KCgkqIGNvbmZpZy9iZmluLXBhcnNlLnkgKGFzbV8xKTogRXJyb3IgaWYgcGxhaW4gc3ltYm9sIGlzIHVzZWQKCWFzIGxvYWQvc3RvcmUgb2Zmc2V0LgoKMjAwOC0wNy0yMiAgQ2hhby15aW5nIEZ1ICA8ZnVAbWlwcy5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX2lwKTogUmVzZXQgcyB0byBhcmdzU3RhcnQuCgoyMDA4LTA3LTIyICBKaWUgWmhhbmcgIDxqaWUuemhhbmdAYW5hbG9nLmNvbT4KCgkqIGNvbmZpZy90Yy1iZmluLmMgKGJmaW5fZ2VuX2xvb3ApOiBSZW1vdmUgbG9vcCBzeW1ib2wuCgoyMDA4LTA3LTIxICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1oODMwMC5jIChmaXhfb3BlcmFuZF9zaXplKTogVXNlIHRoZSBkZWZhdWx0IHNpemUKCXNwZWNpZmllZCBieSB0aGUgLmxicmFuY2gvLnNicmFuY2ggcHNldWRvcy4KCjIwMDgtMDctMTggIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW0zMmMuaCAoSF9USUNLX0hFWCk6IERlZmluZS4KCSogY29uZmlnL3RjLW0zMmMuYyAoT1BUSU9OX0hfVElDS19IRVgpOiBEZWZpbmUuCgkobWRfbG9uZ29wdHMpOiBBZGQgc3VwcG9ydCBmb3IgaXQuCgkobWRfcGFyc2Vfb3B0aW9uKTogTGlrZXdpc2UuCgkqIGRvYy9hcy50ZXhpbmZvIChPdmVydmlldyk6IEFkZCBuZXcgbTMyYyBvcHRpb25zLgoJKiBkb2MvYy1tMzJjLnRleGkgKE0zMkMtTW9kaWZpZXJzKTogTGlrZXdpc2UKCgkqIGFzLmg6IChlbmFibGVfaF90aWNrX2hleCk6IE5ldy4KCSogYXBwLmMgKGVuYWJsZV9oX3RpY2tfaGV4KTogTmV3LgoJKExFWF9JU19IKTogTmV3LgoJKGRvX3NjcnViX2JlZ2luKTogTWFyayAnSCcgYW5kICdoJyBhcyBzcGVjaWFsIGlmIGVuYWJsZV9oX3RpY2tfaGV4LgoJKGRvX3NjcnViX2NoYXJzKTogSWYgZW5hYmxlX2hfdGlja19oZXggYW5kICdoJywgY2hlY2sgZm9yIEgnMDAKCXN0eWxlIGhleCBjb25zdGFudHMgYW5kIGNvbnZlcnQgdGhlIGlucHV0IHN0cmVhbSB0byAweDAwIHN0eWxlLgoJKGRvX3NjcnViX2NoYXJzKTogSWYgYSAnWCBzdHlsZSBjaGFyYWN0ZXIgY29uc3RhbnQgaXMgZm91bmQgYWZ0ZXIKCWEgc3ltYm9sIGNoYXJhY3RlciAobGlrZSB5b3UncmUgb3IgWCcwMCksIHdhcm4gdGhlIHVzZXIuCgoyMDA4LTA3LTEwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJkc2FuZGlmb3JkQGdvb2dsZW1haWwuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwczE2X21hcmtfbGFiZWxzKTogVXNlIEVMRl9TVF9TRVRfTUlQUzE2LgoJKG1pcHNfZml4X2FkanVzdGFibGUpOiBMaWtld2lzZS4KCShtaXBzX2Zyb2JfZmlsZV9hZnRlcl9yZWxvY3MpOiBMaWtld2lzZS4KCjIwMDgtMDctMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtbTY4ay5jIChtNjhrX3NldF9jcHUsIG02OGtfc2V0X2FyY2gpOiBEb24ndCBjb21wbGFpbgoJYWJvdXQgb3ZlcnJpZGluZyBhbiBlYXJsaWVyIHNldHRpbmcuCgoyMDA4LTA3LTA3ICBBZGFtIE5lbWV0ICA8YW5lbWV0QGNhdml1bW5ldHdvcmtzLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKE5PX0lTQV9DT1ApOiBOZXcgbWFjcm8uCgkoQ09QX0lOU04pOiBOZXcgbWFjcm8uCgkoaXNfb3Bjb2RlX3ZhbGlkKTogVXNlIHRoZW0uCgkobWFjcm8pIDxsZF9zdD46IFVzZSB0aGVtLiAgRG9uJ3QgYWNjZXB0IGNvcHJvY2Vzc29yIGxvYWQgc3RvcmUKCWluc25zIGJhc2VkIG9uIHRoZSBJU0EgaWYgQ1BVIGlzIE5PX0lTQV9DT1AuCgk8Y29wej46IExpa2V3aXNlIGZvciBjb3Byb2Nlc3NvciBvcGVyYXRpb25zLgoKMjAwOC0wNy0wNyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoYXJtX2ZpeF9hZGp1c3RhYmxlKTogRG9uJ3QgYWRqdXN0IE1PVlcvTU9WVAoJcmVsb2NhdGlvbnMuCgoyMDA4LTA3LTA3ICBSYWxmIENvcnPDqXBpdXMgIDxyYWxmLmNvcnNlcGl1c0BydGVtcy5vcmc+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgYmZpbi0qLXJ0ZW1zKi4KCjIwMDgtMDctMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvdGMtc3B1LmMgKG1kX2FwcGx5X2ZpeCk6IEhhbmRsZSBmdWxseSByZXNvbHZlZAoJQkZEX1JFTE9DXzMyX1BDUkVMLCBCRkRfUkVMT0NfU1BVX0hJMTYgYW5kIEJGRF9SRUxPQ19TUFVfTE8xNi4KCjIwMDgtMDYtMjUgIFBldGVyIEJlcmduZXIgIDxiZXJnbmVyQHZuZXQuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1wcGMuYyAocGFyc2VfY3B1KTogSGFuZGxlIC1tNDY0LgoJKG1kX3Nob3dfdXNhZ2UpOiBMaWtld2lzZS4KCjIwMDgtMDYtMjQgIEVyaWMgQi4gV2VkZGluZ3RvbiAgPGVyaWMud2VkZGluZ3RvbkBhdG1lbC5jb20+CgoJQWRkIHN1cHBvcnQgZm9yIEFUdGlueTEzQS4KCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBBZGQgYXR0aW55MTNhLgoJKiBkb2MvYy1hdnIudGV4aTogTGlrZXdpc2UuCgoyMDA4LTA2LTI0ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoJICAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB3cml0ZS5jIChyZWxheF9zZWdtZW50IDxyc19vcmc+KTogSW5jbHVkZSBjdXJyZW50IHN0cmV0Y2gKCXZhbHVlIHdoZW4gY2FsY3VsYXRpbmcgd2hldGhlciAub3JnIGlzIGJhY2t3YXJkcy4KCjIwMDgtMDYtMTcgIFJhbGYgV2lsZGVuaHVlcyAgPFJhbGYuV2lsZGVuaHVlc0BnbXguZGU+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA4LTA2LTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogRG8gbm90IFVOR0VUIGFuIEVPRiB2YWx1ZS4KCjIwMDgtMDYtMTYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCglQUiBnYXMvNjYwNwoJKiBjb25maWcvdGMtbW1peC5jIChzX2xvYyk6IEFzc3VtZSAibmVnYXRpdmUiIGFkZHJlc3NlcyBiZWxvbmcgdG8KCXRleHRfc2VjdGlvbi4gIERvIHRoZSAic3RlcHBpbmcgYmFja3dhcmRzIiB0ZXN0IGZvciB0ZXh0X3NlY3Rpb24KCXVzaW5nIHVuc2lnbmVkIG9wZXJhbmRzLgoKMjAwOC0wNi0xMyAgUGV0ZXIgQmVyZ25lciAgPGJlcmduZXJAdm5ldC5pYm0uY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfY3B1KTogVXNlIHBwY19jcHVfdCB0eXBlZGVmLgoJKHBwY19pbnNlcnRfb3BlcmFuZCk6IExpa2V3aXNlLgoJKHBwY19tYWNoaW5lKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90Yy1wcGMuaDogI2luY2x1ZGUgIm9wY29kZS9wcGMuaCIKCShzdHJ1Y3QgX3BwY19maXhfZXh0cmEgPHBwY19jcHU+KTogVXNlIHBwY19jcHVfdCB0eXBlZGVmLgoJKHBwY19jcHUpOiBVcGRhdGUgZXh0ZXJuIGRlY2wuCgoyMDA4LTA2LTEyICBBZGFtIE5lbWV0ICA8YW5lbWV0QGNhdml1bW5ldHdvcmtzLmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKHZhbGlkYXRlX21pcHNfaW5zbik6IEhhbmRsZSBmaWVsZCBkZXNjcmlwdG9ycwoJK3gsICtYLCArcCwgK1AsICtzLCArUy4KCShtaXBzX2lwKTogTGlrZXdpc2UuCgoJKiBjb25maWcvdGMtbWlwcy5jICh2YWxpZGF0ZV9taXBzX2luc24pOiBIYW5kbGUgZmllbGQgZGVzY3JpcHRvciArUS4KCShtaXBzX2lwKTogTGlrZXdpc2UuCgkobWFjcm9fYnVpbGQpOiBMaWtld2lzZS4KCShDUFVfSEFTX1NFUSk6IE5ldyBtYWNyby4KCShtYWNybzIpIDxNX1NFUV9JLCBNX1NORV9JPjogVXNlIGl0LiAgRW1pdCBzZXEvc25lIGFuZCBzZXFpL3NuZWkuCgoyMDA4LTA2LTA5ICBFcmljIEIuIFdlZGRpbmd0b24gIDxlcmljLndlZGRpbmd0b25AYXRtZWwuY29tPgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBSZW1vdmUgc3VwcG9ydCBmb3IgQVRtZWdhMzJIVkIgZGV2aWNlLgoJKiBkb2MvYy1hdnIudGV4aTogTGlrZXdpc2UuCgoyMDA4LTA2LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXBwLmMgKGRvX3NjcnViX2NoYXJzKTogRG8gbm90IFVOR0VUIGFuIEVPRiB2YWx1ZS4KCjIwMDgtMDYtMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHNldF9zc2VfY2hlY2spOiBOZXcuCgkobWRfcHNldWRvX3RhYmxlKTogQWRkICJzc2VfY2hlY2siLgoKMjAwOC0wNi0wMyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoZG9fdF9yYml0KTogUG9wdWxhdGUgYm90aCBybSBmaWVsZHMuCgoyMDA4LTA1LTMwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDU1MjMKCSogY29uZmlnL3RjLWF2ci5jIChhdnJfbGRpX2V4cHJlc3Npb24pOiBEbyBub3Qgd2FybiBhYm91dCB1bmtub3duCglyZWxvY3MgaGVyZS4KCjIwMDgtMDUtMjkgIE1heGltIEt1dnlya292ICA8bWF4aW1AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfY3B1X2luZm9fdGFibGUpOiBNb3ZlIHJlY29yZHMgZm9yCglTVCBMb29uZ3Nvbi0yRS8yRiBwcm9jZXNzb3JzIHRvIGEgYmV0dGVyIHBsYWNlLgoKMjAwOC0wNS0yMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGdhcy82NTE4CgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1hdGNoX3RlbXBsYXRlKTogUmVwb3J0IGFtYmlndW91cyBvcGVyYW5kCglzaXplLCBub3QgaW52YWxpZCBzdWZmaXggd2hlbiB0aGVyZSBpcyBubyBtYXRjaCBpbiBJbnRlbAoJc3ludGF4LgoKMjAwOC0wNS0yMiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAocGFyc2VfY29uZCk6IENvdmVydCB0byBsb3dlcmNhc2UgYmVmb3JlIG1hdGNoaW5nLgoKMjAwOC0wNS0yMSAgSS1KdWkgU3VuZyAgPGlqc3VuZ0BnbWFpbC5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9jcHVzKTogQWRkIEZhcmFkYXkgQVJNdjQgYW5kIEFSTXY1VEUKCWNvbXBhdGlibGUgY29yZXM6IGZhNTI2LCBmYTYyNiwgZmE2MjZ0ZSwgZmE3MjZ0ZS4KCSogZG9jL2MtYXJtLnRleGkgKEFSTSBPcHRzKTogQWRkIC1tY3B1PXtmYTUyNiwgZmE2MjYsIGZhNjI2dGUsCglmYTcyNnRlfSBvcHRpb25zLgoKMjAwOC0wNS0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDA4LTA1LTA5ICBDYXRoZXJpbmUgTW9vcmUgIDxjbG1AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1taXBzLmMgKG1pcHNfZnJvYl9maWxlKTogRG9uJ3QgbWF0Y2ggTUlQUzE2IHJlbG9jcwoJd2l0aCBub24tTUlQUzE2IHJlbG9jcy4KCjIwMDgtMDUtMDkgIENoYW8teWluZyBGdSAgPGZ1QG1pcHMuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWRfYmVnaW4pOiBVc2Ugc3RybmNtcCB0byBjb21wYXJlIFRBUkdFVF9PUywgaW4KCWNhc2UgdGhhdCBzb21lIGNoYXJhY3RlcnMgYXBwZW5kIGF0IHRoZSBlbmQgb2YgdGhlIG5hbWUuCgkobWlwc19pcCk6IExpa2V3aXNlLgoJKHNfY2hhbmdlX3NlYyk6IExpa2V3aXNlLgoJKG1kX3NlY3Rpb25fYWxpZ24pOiBMaWtld2lzZS4KCjIwMDgtMDUtMDcgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBjb25maWcvdGMteHRlbnNhLmMgKHh0ZW5zYV9jcmVhdGVfcHJvcGVydHlfc2VnbWVudHMpOiBVc2UKCXh0ZW5zYV9tYWtlX3Byb3BlcnR5X3NlY3Rpb24gaW5zdGVhZCBvZiB4dGVuc2FfZ2V0X3Byb3BlcnR5X3NlY3Rpb24uCgkoeHRlbnNhX2NyZWF0ZV94cHJvcGVydHlfc2VnbWVudHMpOiBMaWtld2lzZS4KCjIwMDgtMDUtMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gWFNBVkUsIEVQVCBhbmQgTU9WQkUuCgoJKiBjb25maWcvdGMtaTM4Ni5jIChjcHVfYXJjaCk6IEFkZCAubW92YmUgYW5kIC5lcHQuCgkobWRfc2hvd191c2FnZSk6IEFkZCAubW92YmUgYW5kIC5lcHQuCgoJKiBkb2MvYy1pMzg2LnRleGk6IEFkZCBtb3ZiZSBhbmQgZXB0IHRvIC1tYXJjaD0uICBEb2N1bWVudAoJLm1vdmJlIGFuZCAuZXB0LgoKMjAwOC0wNC0yOSAgRGF2aWQgUy4gTWlsbGVyICA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KCgkqIGNvbmZpZy90Yy1zcGFyYy5jICh2OWFfYXNyX3RhYmxlKTogRml4IG9yZGVyIG9mIHNvZnRpbnQgZW50cmllcy4KCjIwMDgtMDQtMjggIEFkYW0gTmVtZXQgIDxhbmVtZXRAY2F2aXVtbmV0d29ya3MuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAoZmlsZV9taXBzX3NvZnRfZmxvYXQsIGZpbGVfbWlwc19zaW5nbGVfZmxvYXQpOgoJTmV3IHN0YXRpY3MuCgkoT1BUSU9OX0VMRl9CQVNFKTogTWFrZSByb29tIGZvciBuZXcgb3B0aW9uIG1hY3Jvcy4KCShPUFRJT05fU09GVF9GTE9BVCwgT1BUSU9OX0hBUkRfRkxPQVQsIE9QVElPTl9TSU5HTEVfRkxPQVQsCglPUFRJT05fRE9VQkxFX0ZMT0FUKTogTmV3IG9wdGlvbiBtYWNyb3MuCgkobWRfbG9uZ29wdHMpOiBBZGQgbXNvZnQtZmxvYXQsIG1oYXJkLWZsb2F0LCBtc2luZ2xlLWZsb2F0IGFuZAoJbWRvdWJsZS1mbG9hdC4KCShtZF9wYXJzZV9vcHRpb24pOiBIYW5kbGUgT1BUSU9OX1NJTkdMRV9GTE9BVCwKCU9QVElPTl9ET1VCTEVfRkxPQVQsIE9QVElPTl9TT0ZUX0ZMT0FUIGFuZCBPUFRJT05fSEFSRF9GTE9BVC4KCShtZF9zaG93X3VzYWdlKTogQWRkIC1tc29mdC1mbG9hdCwgLW1oYXJkLWZsb2F0LCAtbXNpbmdsZS1mbG9hdAoJYW5kIC1tZG91YmxlLWZsb2F0LgoJKHN0cnVjdCBtaXBzX3NldF9vcHRpb25zKTogTmV3IGZpZWxkcyBzb2Z0X2Zsb2F0IGFuZCBzaW5nbGVfZmxvYXQuCgkobWlwc19vcHRzKTogSW5pdGlhbGl6ZWQgdGhlbS4gIEFkZCBjb21tZW50IGZvciBlYWNoIGZpZWxkCglpbml0aWFsaXplci4KCShtaXBzX2FmdGVyX3BhcnNlX2FyZ3MpOiBTZXQgdGhlbSBiYXNlZCBvbiBmaWxlX21pcHNfc29mdF9mbG9hdAoJYW5kIGZpbGVfbWlwc19zaW5nbGVfZmxvYXQuCgkoc19taXBzc2V0KTogQWRkIHN1cHBvcnQgZm9yIGAuc2V0IHNvZnRmbG9hdCcsIGAuc2V0IGhhcmRmbG9hdCcsCglgLnNldCBzaW5nbGVmbG9hdCcgYW5kIGAuc2V0IGRvdWJsZWZsb2F0Jy4KCShpc19vcGNvZGVfdmFsaWQpOiBOZXcgZnVuY3Rpb24gdG8gaW52b2tlIE9QQ09ERV9JU19NRU1CRVIuCglIYW5kbGUgc2luZ2xlLWZsb2F0IGFuZCBzb2Z0LWZsb2F0IGluc3RydWN0aW9ucyBoZXJlLgoJKG1hY3JvX2J1aWxkLCBtaXBzX2lwKTogVXNlIGl0IGluc3RlYWQgb2YgT1BDT0RFX0lTX01FTUJFUi4KCShpc19vcGNvZGVfdmFsaWRfMTYpOiBOZXcgZnVuY3Rpb24uCgkobWlwczE2X2lwKTogVXNlIGl0IGluc3RlYWQgb2YgT1BDT0RFX0lTX01FTUJFUi4KCShtYWNybykgPE1fTERDMV9BQiwgTV9TREMxX0FCLCBNX0xfRE9CLCBNX0xfREFCLCBNX1NfREFCLAoJTV9TX0RPQj46IFJlbW92ZSBzcGVjaWFsLWNhc2luZyBvZiByNDY1MC4KCSogZG9jL2MtbWlwcy50ZXhpICgtbWFyY2g9KTogQWRkIE9jdGVvbi4KCShNSVBTIE9wdHMpOiBEb2N1bWVudCAtbXNvZnQtZmxvYXQgYW5kIC1taGFyZC1mbG9hdC4gIERvY3VtZW50CgktbXNpbmdsZS1mbG9hdCBhbmQgLW1kb3VibGUtZmxvYXQuCgkoTUlQUyBmbG9hdGluZy1wb2ludCk6IE5ldyBzZWN0aW9uLiAgRG9jdW1lbnQgYC5zZXQgc29mdGZsb2F0JyBhbmQKCWAuc2V0IGhhcmRmbG9hdCcuICBEb2N1bWVudCBgLnNldCBzaW5nbGVmbG9hdCcgYW5kIGAuc2V0Cglkb3VibGVmbG9hdCcuCgoyMDA4LTA0LTI1ICBEYXZpZCBTLiBNaWxsZXIgIDxkYXZlbUBkYXZlbWxvZnQubmV0PgoKCSogY29uZmlnL3RjLXNwYXJjLmM6IEFjY2VwdCAnc29mdGludF9jbGVhcicgYW5kICdzb2Z0aW50X3NldCcKCSVhc3IgYWxpYXNlcy4KCgkqIGRvYy9jLXNwYXJjLnRleGk6IENvbnNpc3RlbnRseSByZWZlciB0byBhcmNoaXRlY3R1cmUgJ3ZlcnNpb25zJywKCXJhdGhlciB0aGFuIG9jY2Fpc2lvbmFsbHkgJ2xldmVscycuICBDb25zaXN0ZW50bHkgcmVmZXIgdG8gU3VuJ3MKCVVOSVggdmFyaWFudCBhcyBTdW5PUywgZXZlcnkgdmVyc2lvbiBvZiBTb2xhcmlzIGlzIGFsc28gU3VuT1MuCglEb2N1bWVudCBuZXcgJ3NvZnRpbnRfY2xlYXInIGFuZCAnc29mdGludF9zZXQnIGFsaWFzZXMuICBDbGFyaWZ5Cgl3aGljaCBhcmNoaXRlY3R1cmUgdmVyc2lvbnMgc3VwcG9ydCAnJWRjcicsICclY3EnLCBhbmQgJyVnbCcuIEFkZAoJc2VjdGlvbiBvbiAzMi1iaXQvNjQtYml0IG9wY29kZSB0cmFuc2xhdGlvbnMuCgoyMDA4LTA0LTIzICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgoKCSogTWFrZWZpbGUuYW0gKE9CSl9GT1JNQVRfQ0ZJTEVTKTogQWRkIGNvbmZpZy9vYmotZmRwaWNlbGYuYy4KCShPQkpfRk9STUFUX0hGSUxFUyk6IEFkZCBjb25maWcvb2JqLWZkcGljZWxmLmguCgkob2JqLWZkcGljZWxmLm8pOiBEZWZpbmUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0OiBTZXQgYmZkX2dhcyB0byB5ZXMgd2hlbiBmbXQgaXMgZmRwaWNlbGYuCgkoYmZpbi0qLSopOiBEZWxldGUuCgkoYmZpbi0qLWxpbnV4LXVjbGliYyk6IE5ldzsgc2V0IGZtdCB0byBmZHBpY2VsZiBhbmQgZW0gdG8gbGludXguCgkoYmZpbi0qLXVjbGludXgqKTogTmV3OyBzZXQgZm10IHRvIGVsZiBhbmQgZW0gdG8gbGludXguCgkqIGNvbmZpZy9vYmotZmRwaWNlbGYuYzogTmV3LgoJKiBjb25maWcvb2JqLWZkcGljZWxmLmg6IExpa2V3aXNlLgoJKiBjb25maWcvdGMtYmZpbi5jIChiZmluX2ZsYWdzLCBiZmluX3BpY19mbGFnKTogU2V0IGRlZmF1bHQgYmFzZWQgb24KCXRoZSBPQkpfRkRQSUNfRUxGIGRlZmluZS4KCShPUFRJT05fTk9QSUMpOiBEZWZpbmUuCgkobWRfbG9uZ29wdHMpOiBBZGQgbW5vcGljIGFuZCBtbm8tZmRwaWMuCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIE9QVElPTl9OT1BJQy4KCjIwMDgtMDQtMjMgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA4LTA0LTIzICBEYXZpZCBTLiBNaWxsZXIgIDxkYXZlbUBkYXZlbWxvZnQubmV0PgoKCSogY29uZmlnL3RjLXNwYXJjLmMgKHY5YV9hc3JfdGFibGUpOiBBZGQgbWlzc2luZwoJJ3N0aWNrJyBhbmQgJ3N0aWNrX2NtcHInLCBhbmQgZG9jdW1lbnQgb3JkZXJpbmcgcnVsZXMKCW9mIHRhYmxlLgoJKHRjX2dlbl9yZWxvYyk6IEFjY2VwdCBCRkRfUkVMT0NfU1BBUkNfUEMyMiBhbmQKCUJGRF9SRUxPQ19TUEFSQ19QQzEwLgoJKiBkb2MvYy1zcGFyYy50ZXhpOiBOZXcgc2VjdGlvbiBvbiBTcGFyYyBjb25zdGFudHMuCglBZGQgZG9jdW1lbnRhdGlvbiBmb3IgJXN0aWNrIGFuZCAlc3RpY2tfY21wci4KCjIwMDgtMDQtMjIgIERhdmlkIFMuIE1pbGxlciAgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CgoJKiBjb25maWcvb2JqLWVsZi5jIChvYmpfZWxmX3NlY3Rpb25fdHlwZSk6IEFkZCBwcm90b3R5cGUKCWJlZm9yZSBvYmpfZWxmX3NlY3Rpb25fd29yZCBhbmQgYWRkICd3YXJuJyBhcmcuCgkob2JqX2VsZl9zZWN0aW9uX3dvcmQpOiBBZGQgdHlwZSBwb2ludGVyIGFyZywgYW5kIGlmIG5vICNTRUNUSU9OCglpcyBtYXRjaGVkLCB0cnkgY2hlY2tpbmcgZm9yICNTRUNUSU9OX1RZUEUuCgkob2JqX2VsZl9zZWN0aW9uKTogQWRqdXN0IGZvciBuZXcgYXJncy4KCShvYmpfZWxmX3R5cGVfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShvYmpfZWxmX3R5cGUpOiBDYWxsIGl0LCBhbmQgYWNjZXB0IFNUVF9mb28gbnVtYmVyIHN0cmluZ3MKCWluIC50eXBlIHN0YXRlbWVudHMgYXMgb3V0cHV0IGJ5IFN1blBSTyBjb21waWxlci4KCjIwMDgtMDQtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1kX2Fzc2VtYmxlKTogRG9uJ3QgY2hlY2sgU1NFIGluc3RydWN0aW9ucwoJaWYgbm9hdnggaXMgMC4KCjIwMDgtMDQtMTggIERhdmlkIFMuIE1pbGxlciAgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CgoJKiBkb2MvYy1zcGFyYy50ZXhpOiBBZGQgc3ludGF4IHNlY3Rpb24uCgoyMDA4LTA0LTE4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChidWlsZF9tb2RybV9ieXRlKTogRG9uJ3QgY2hlY2sgRk1BIHRvIHN3YXAKCVJFRyBhbmQgTkRTIGZvciBpbnN0cnVjdGlvbnMgd2l0aCBpbW1lZGlhdGUgb3BlcmFuZC4KCjIwMDgtMDQtMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGJ1aWxkX21vZHJtX2J5dGUpOiBTd2FwIFJFRyBhbmQgTkRTIGZvcgoJRk1BLgoKMjAwOC0wNC0xNiAgRGF2aWQgUy4gTWlsbGVyICA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KCgkqIGNvbmZpZy90Yy1zcGFyYy5jIChzcGFyY19pcCk6IEFkZCBzdXBwb3J0IGZvciBnb3RkYXRhIG1uZW1vbmljcwoJYW5kIHJlbG9jYXRpb24gZ2VuZXJhdGlvbi4KCSh0Y19nZW5fcmVsb2MpOiBMaWtld2lzZS4KCjIwMDgtMDQtMTUgIEFuZHJldyBTdHViYnMgIDxhbmRyZXcuc3R1YmJzQHN0LmNvbT4KCgkqIGNvbmZpZy90Yy1zaC5jIChtZF9hcHBseV9maXgpOiBNYWtlIHN1cmUgQkZEX1JFTE9DX1NIX1BDUkVMSU1NOEJZNAoJcmVsb2NhdGlvbnMgYXJlIHByb3Blcmx5IGFsaWduZWQsIGFuZCBub3QgbmVnYXRpdmUuCgoyMDA4LTA0LTE1ICBLaGVtIFJhaiAgPGtyYWpAbXZpc3RhLmNvbT4KCgkqIGRvYy90Yy1hcm0udGV4aTogRml4IGZuc3RhcnQgYW5kIGZuZW5kIGRpcmVjdGl2ZSBuYW1lcy4KCjIwMDgtMDQtMTQgIEVkbWFyIFdpZW5za29za2kgIDxlZG1hckBmcmVlc2NhbGUuY29tPgoKCSogY29uZmlnL3RjLXBwYy5jIChwYXJzZV9jcHUpOiBIYW5kbGUgImU1MDBtYyIuICBFeHRlbmQgImU1MDAiIHRvCglhY2NlcHQgZTUwMG1jIGluc3RydWN0aW9ucy4KCShtZF9zaG93X3VzYWdlKTogRG9jdW1lbnQgLW1lNTAwbWMuCgoyMDA4LTA0LTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGlzdGluZy5jIChwcmludF90aW1lc3RhbXApOiBVc2UgbG9jYWx0aW1lIHJhdGhlciB0aGFuCglsb2NhbHRpbWVfciBzaW5jZSBub3QgYWxsIGJ1aWxkIGVudmlyb25tZW50cyBwcm92aWRlIHRoZSBsYXR0ZXIuCgoyMDA4LTA0LTEwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBORVdTOiBNZW50aW9uIC1tc3NlLWNoZWNrPVtub25lfGVycm9yfHdhcm5pbmddLgoKCSogY29uZmlnL3RjLWkzODYuYyAoc3NlX2NoZWNrKTogTmV3LgoJKE9QVElPTl9NU1NFX0NIRUNLKTogTGlrZXdpc2UuCgkobWRfYXNzZW1ibGUpOiBDaGVjayBTU0UgaW5zdHJ1Y3Rpb25zIGlmIG5lZWRlZC4KCShtZF9sb25nb3B0cyk6IEFkZCAtbXNzZS1jaGVjay4KCShtZF9wYXJzZV9vcHRpb24pOiBIYW5kbGUgT1BUSU9OX01TU0VfQ0hFQ0suCgkobWRfc2hvd191c2FnZSk6IFNob3cgLW1zc2UtY2hlY2s9W25vbmV8ZXJyb3J8d2FybmluZ10uCgoJKiBkb2MvYy1pMzg2LnRleGk6IERvY3VtZW50IC1tc3NlLWNoZWNrPVtub25lfGVycm9yfHdhcm5pbmddLgoKMjAwOC0wNC0xMCAgU2FudGlhZ28gVXJ1ZfFhICA8c3VydWVuYUBnbWFpbC5jb20+CgoJKiBsaXN0aW5nLmM6IEFkZCAtYWcgbGlzdGluZyBmbGFnIHRvIHNob3cgZ2VuZXJhbCBpbmZvcm1hdGlvbiBpbgoJbGlzdGluZ3Mgc3VjaCBhcyBnYXMgdmVyc2lvbiwgcGFzc2VkIG9wdGlvbnMsIGFuZCB0aW1lIHN0YW1wLgoJKGxpc3RpbmdfZ2VuZXJhbF9pbmZvKTogTmV3IGZ1bmN0aW9uLgoJKHByaW50X29wdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkocHJpbnRfc2luZ2xlX29wdGlvbik6IE5ldyBmdW5jdGlvbi4KCShwcmludF90aW1lc3RhbXApOiBOZXcgZnVuY3Rpb24uCgkoTUFYX0RBVEVMRU4pOiBEZWZpbmUuCgkobGlzdGluZ19wcmludCk6IEFkZCBjYWxsIHRvIGxpc3RpbmdfZ2VuZXJhbF9pbmZvLgoJKiBsaXN0aW5nLmggKExJU1RJTkdfR0VORVJBTCk6IERlZmluZS4KCShsaXN0aW5nX3ByaW50KTogQWRkIG5ldyBwYXJhbWV0ZXIuCgkqIGFzLmMgKHNob3dfdXNhZ2UpOiBQcmludCBuZXcgc3dpdGNoLgoJKHBhcnNlX2FyZ3MpOiBQYXJzZSBuZXcgc3dpdGNoLgoJKG1haW4pOiBQYXNzIGNvbW1hbmQgbGluZSBvbiB0byBsaXN0aW5nX3ByaW50LgoJKiBORVdTOiBNZW50aW9uIHRoaXMgbmV3IGZlYXR1cmUuCgkqIGRvYy9hcy50ZXhpbmZvOiBEb2N1bWVudCB0aGUgbmV3IHN1Yi1vcHRpb24uCgoyMDA4LTA0LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZHdhcmYyZGJnLmMgKGR3YXJmMl9lbWl0X2luc24pOiBTaW1wbGlmeSB0ZXN0IGJlZm9yZSBkd2FyZjJfd2hlcmUKCWNhbGwuICBEZWxldGUgb3V0IG9mIGRhdGUgY29tbWVudC4KCShkd2FyZjJfY29uc3VtZV9saW5lX2luZm8pOiBBbHdheXMgY2xlYXIgZHdhcmYyX2xvY19kaXJlY3RpdmVfc2Vlbi4KCShkd2FyZjJfZW1pdF9sYWJlbCk6IERvbid0IGVtaXQgdW5sZXNzIHRoZXJlIGhhcyBiZWVuIGEgcHJldmlvdXMKCS5maWxlIG9yIHdlIGFyZSBvdXRwdXR0aW5nIGFzc2VtYmxlciBnZW5lcmF0ZWQgZGVidWcuCglkd2FyZjJfY29uc3VtZV9saW5lX2luZm8gYWZ0ZXIgZW1pdHRpbmcgbGluZSBpbmZvLCBub3QgYmVmb3JlLgoJKG91dF9kZWJ1Z19pbmZvKTogU2ltcGxpZnkgZmlsZXNfaW5fdXNlIHRlc3QuCgoyMDA4LTA0LTA3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwYXJzZV9yZWFsX3JlZ2lzdGVyKTogUmV0dXJuIEFWWCByZWdpc3RlcgoJb25seSBpZiBBVlggaXMgZW5hYmxlZC4KCjIwMDgtMDQtMDcgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCVBSIGdhcy82MDQzCgkqIGNvbmZpZy90Yy1zaDY0LmMgKHNobWVkaWFfbWRfcGNyZWxfZnJvbV9zZWN0aW9uKTogVXNlCgltZF9wY3JlbF9mcm9tX3NlY3Rpb24gZm9yIEJGRF9SRUxPQ182NCBhbmQgQkZEX1JFTE9DXzY0X1BDUkVMLgoKMjAwOC0wNC0wNCAgQWRyaWFuIEJ1bmsgIDxidW5rQHN0dXN0YS5kZT4KCSAgICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5jICh4Z19hcHBseV9maXhfdmFsdWUpOiBDaGVjayByZXR1cm4gY29kZSBmcm9tCgljYWxsIHRvIGRlY29kZV9yZWxvYy4KCjIwMDgtMDQtMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gWFNBVkUuICBDaGFuZ2UgQ0xNVUwgdG8gUENMTVVMLgoKCSogY29uZmlnL3RjLWkzODYuYyAoY3B1X2FyY2gpOiBBZGQgLnBjbG11bC4KCShtZF9zaG93X3VzYWdlKTogUmVwbGFjZSBjbG11bCB3aXRoIHBjbG11bC4KCSogZG9jL2MtaTM4Ni50ZXhpOiBMaWtld2lzZS4KCjIwMDgtMDQtMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gQUVTLCBDTE1VTCwgQVZYL0ZNQSBhbmQgLW1zc2UyYXZ4LgoKCSogZG9jL2MtaTM4Ni50ZXhpOiBBZGQgYXZ4LCBhZXMsIGNsbXVsIGFuZCBmbWEgdG8gLW1hcmNoPS4KCURvY3VtZW50IC1tc3NlMmF2eCwgLmF2eCwgLmFlcywgLmNsbXVsIGFuZCAuZm1hLgoKCSogY29uZmlnL3RjLWkzODYuYyAoWU1NV09SRF9NTkVNX1NVRkZJWCk6IE5ldy4KCSh2ZXhfcHJlZml4KTogTGlrZXdpc2UuCgkoc3NlMmF2eCk6IExpa2V3aXNlLgoJKENQVV9GTEFHU19BUkNIX01BVENIKTogTGlrZXdpc2UuCgkoQ1BVX0ZMQUdTXzY0QklUX01BVENIKTogTGlrZXdpc2UuCgkoQ1BVX0ZMQUdTXzMyQklUX01BVENIKTogTGlrZXdpc2UuCgkoQ1BVX0ZMQUdTX1BFUkZFQ1RfTUFUQ0gpOiBMaWtld2lzZS4KCShyZWd5bW0pOiBMaWtld2lzZS4KCSh2ZXhfaW1tNCk6IExpa2V3aXNlLgoJKGZpdHNfaW5faW1tNCk6IExpa2V3aXNlLgoJKGJ1aWxkX3ZleF9wcmVmaXgpOiBMaWtld2lzZS4KCShWRVhfY2hlY2tfb3BlcmFuZHMpOiBMaWtld2lzZS4KCShiYWRfaW1wbGljaXRfb3BlcmFuZCk6IExpa2V3aXNlLgoJKE9QVElPTl9NU1NFMkFWWCk6IExpa2V3aXNlLgoJKFRfWU1NV09SRCk6IExpa2V3aXNlLgoJKF9pMzg2X2luc24pOiBBZGQgdmV4LgoJKGNwdV9hcmNoKTogQWRkIC5hdngsIC5hZXMsIC5jbG11bCBhbmQgLmZtYS4KCShjcHVfZmxhZ3NfbWF0Y2gpOiBDaGFuZ2VkIHRvIHRha2UgYSBwb2ludGVyIHRvIGNvbnN0IHRlbXBsYXRlLgoJRW5hYmxlIGVuY29kaW5nIFNTRSBpbnN0cnVjdGlvbnMgd2l0aCBWRVggcHJlZml4IGZvciAtbXNzZTJhdnguCgkobWF0Y2hfbWVtX3NpemUpOiBBbHNvIGNoZWNrIHltbXdvcmQuCgkob3BlcmFuZF90eXBlX21hdGNoKTogQ2xlYXIgeW1td29yZC4KCShtZF9iZWdpbik6IEFsbG93ICdfJyBpbiBtbmVtb25pYy4KCSh0eXBlX25hbWVzKTogQWRkIE9QRVJBTkRfVFlQRV9WRVhfSU1NNC4KCShwcm9jZXNzX2ltbWV4dCk6IFVwZGF0ZSBhc3NlcnQuCgkobWRfYXNzZW1ibGUpOiBEb24ndCBjYWxsIHByb2Nlc3NfaW1tZXh0IGlmIHNzZTJhdnggYW5kIGltbWV4dAoJYXJlIHRydWUuICBDYWxsIGJ1aWxkX3ZleF9wcmVmaXggaWYgdmV4IGlzIHRydWUuCgkocGFyc2VfaW5zbik6IFVwZGF0ZWQgZm9yIGNwdV9mbGFnc19tYXRjaC4KCShzd2FwX29wZXJhbmRzKTogSGFuZGxlIDUgb3BlcmFuZHMuCgkobWF0Y2hfdGVtcGxhdGUpOiBIYW5kbGUgNSBvcGVyYW5kcy4gVXBkYXRlZCBmb3IgY3B1X2ZsYWdzX21hdGNoLgoJQ2hlY2sgcmVneW1tLiAgQ2FsbCBWRVhfY2hlY2tfb3BlcmFuZHMuIEhhbmRsZSBZTU1XT1JEX01ORU1fU1VGRklYLgoJKHByb2Nlc3Nfc3VmZml4KTogSGFuZGxlIFlNTVdPUkRfTU5FTV9TVUZGSVguCgkoY2hlY2tfYnl0ZV9yZWcpOiBDaGVjayByZWd5bW0uCgkocHJvY2Vzc19vcGVyYW5kcyk6IER1cGxpY2F0ZSB0aGUgZGVzdGluYXRpb24gcmVnaXN0ZXIgZm9yCgktbXNzZTJhdnggaWYgbmVlZGVkLgoJKGJ1aWxkX21vZHJtX2J5dGUpOiBVcGRhdGVkIGZvciBpbnN0cnVjdGlvbnMgd2l0aCBWRVggZW5jb2RpbmcuCgkob3V0cHV0X2luc24pOiBPdXRwdXQgVkVYIHByZWZpeCBpZiBuZWVkZWQuCgkobWRfbG9uZ29wdHMpOiBBZGQgbXNzZTJhdnguCgkobWRfcGFyc2Vfb3B0aW9uKTogSGFuZGxlIE9QVElPTl9NU1NFMkFWWC4KCShtZF9zaG93X3VzYWdlKTogQWRkIGF2eCwgYWVzLCBjbG11bCwgZm1hIGFuZCAtbXNzZTJhdnguCgkoaW50ZWxfZTA5KTogU3VwcG9ydCBZTU1XT1JELgoJKGludGVsX2UxMSk6IExpa2V3aXNlLgoJKGludGVsX2dldF90b2tlbik6IExpa2V3aXNlLgoKMjAwOC0wMy0yOCAgRXJpYyBCLiBXZWRkaW5ndG9uICA8ZXJpYy53ZWRkaW5ndG9uQGF0bWVsLmNvbT4KCgkqIGNvbmZpZy90Yy1hdnIuYyAobWN1X3R5cGVzKTogQWRkIGF0dGlueTE2Ny4KCSogZG9jL2MtYXZyLnRleGk6IExpa2V3aXNlLgoKMjAwOC0wMy0yOCAgRXJpYyBCLiBXZWRkaW5ndG9uICA8ZXJpYy53ZWRkaW5ndG9uQGF0bWVsLmNvbT4KCgkqIGNvbmZpZy90Yy1hdnIuYyAobWN1X3R5cGVzKTogQWRkIGF0bWVnYTMydTQuCgkqIGRvYy9jLWF2ci50ZXhpOiBMaWtld2lzZS4KCjIwMDgtMDMtMjggIEVyaWMgQi4gV2VkZGluZ3RvbiAgPGVyaWMud2VkZGluZ3RvbkBhdG1lbC5jb20+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1jdV90eXBlcyk6IEFkZCBhdG1lZ2EzMmMxLgoJKiBkb2MvYy1hdnIudGV4aTogTGlrZXdpc2UuCgoyMDA4LTAzLTI4ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChwYXJzZV9uZW9uX21vdik6IFBhcnNlIHJlZ2lzdGVyIGJlZm9yZSBpbW1lZGlhdGUKCXRvIGF2b2lkIHNwdXJpb3VzIHN5bWJvbHMuCgoyMDA4LTAzLTI4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3RjLW02OGsuYyAobWRfY29udmVydF9mcmFnXzEpOiBSZXBsYWNlIGFzX2ZhdGFsIHdpdGgKCWFzX2JhZF93aGVyZS4KCjIwMDgtMDMtMjcgIEVyaWMgQi4gV2VkZGluZ3RvbiAgPGVyaWMud2VkZGluZ3RvbkBhdG1lbC5jb20+CgoJKiBjb25maWcvdGMtYXZyLmMgKG1jdV90eXBlcyk6IEFkZCBhdG1lZ2EzMm0xLgoJKiBkb2MvYy1hdnIudGV4aTogTGlrZXdpc2UuCgoyMDA4LTAzLTI3ICBJbmVpZXYgIDxpbmVpZXZAeWFob28uY28udWs+CgoJKiBjb25maWcvdGMtYXJtLmMgKGRvX25lb25fY3Z0KTogTW92ZSB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8KCXN0YXJ0IG9mIGJsb2NrLgoJKGRvX25lb25fZXh0KTogRml4IHNpZ24gb2YgY29tcGFyaXNvbi4KCjIwMDgtMDMtMjYgIEJlcm5kIFNjaG1pZHQgIDxiZXJuZC5zY2htaWR0QGFuYWxvZy5jb20+CgoJRnJvbSBKaWUgWmhhbmcgIDxqaWUuemhhbmdAYW5hbG9nLmNvbT4KCSogY29uZmlnL2JmaW4tcGFyc2UueSAoYXNtXzEpOiBDaGVjayBBUkVHUyBpbiBjb21wYXJpc29uCglpbnN0cnVjdGlvbnMuIEFuZCBjYWxsIHl5ZXJyb3Igd2hlbiBjb21wYXJpbmcgUFJFRyB3aXRoCglEUkVHLgoJKGNoZWNrX21hY2Z1bmNfb3B0aW9uKTogTmV3LgoJKGNoZWNrX21hY2Z1bmNzKTogQ2hlY2sgb3B0aW9uIGJ5IGNhbGxpbmcgY2hlY2tfbWFjZnVuY19vcHRpb24uCglGaXggY29tcGFyaXNvbiBhbHdheXMgdHJ1ZSB3YXJuaW5ncy4gIEJvdGggc2NhbGFyIGluc3RydWN0aW9ucwoJb2YgdmVjdG9yIGluc3RydWN0aW9uIG11c3Qgc2hhcmUgdGhlIHNhbWUgbW9kZSBvcHRpb24uICBPbmx5IGFsbG93CglvcHRpb24gbW9kZSBhdCB0aGUgZW5kIG9mIHRoZSBzZWNvbmQgaW5zdHJ1Y3Rpb24gb2YgdGhlIHZlY3Rvci4KCShhc21fMSk6IENoZWNrIG9wdGlvbiBieSBjYWxsaW5nIGNoZWNrX21hY2Z1bmNfb3B0aW9uLgoKCSogY29uZmlnL2JmaW4tcGFyc2UueSAoY2hlY2tfbWFjZnVuY19vcHRpb24pOiBBbGxvdyAoSVUpCglvcHRpb24gZm9yIG11bHRpcGx5IGFuZCBtdWx0aXBseS1hY2N1bXVsYXRlIHRvIGRhdGEgcmVnaXN0ZXIKCWluc3RydWN0aW9uLgoJKGNoZWNrX21hY2Z1bmNzKTogRG9uJ3QgY2hlY2sgaWYgYWNjdW11bGF0b3IgbWF0Y2hlcyB0aGUgZGF0YSByZWdpc3RlcgoJaGVyZS4KCShhc3NpZ25fbWFjZnVuYyk6IENoZWNrIGlmIGFjY3VtdWxhdG9yIG1hdGNoZXMgdGhlCglkYXRhIHJlZ2lzdGVyIGluIGVhY2ggcnVsZSB0aGF0IG1vdmVzIHRvIHRoZSBkYXRhCglyZWdpc3Rlci4KCgkqIGNvbmZpZy90Yy1iZmluLmMgKGJmaW5fc3RhcnRfbGluZV9ob29rKTogTG9jYWxpemUgdGhlIGxhYmVscwoJZ2VuZXJhdGVkIGZvciBMT09QX0JFR0lOIGFuZCBMT09QX0VORCBpbnN0cnVjdGlvbnMuCgkoYmZpbl9nZW5fbG9vcCk6IExpa2V3aXNlLgoKMjAwOC0wMy0xOSAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbDFAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy90Yy1zMzkwLmMgKG1kX3BhcnNlX29wdGlvbik6IHoxMCBvcHRpb24gYWRkZWQuCgoyMDA4LTAzLTE3ICBSYWxmIFdpbGRlbmh1ZXMgIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgoKCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IExpa2V3aXNlLgoJKiBkb2MvTWFrZWZpbGUuaW46IExpa2V3aXNlLgoKMjAwOC0wMy0xNyAgQWRyaWFuIEJ1bmsgIDxidW5rQHN0dXN0YS5kZT4KCglQUiA1OTQ2CgkqIGNvbmZpZy90Yy1ocHBhLmMgKGlzX3NhbWVfZnJhZyk6IERlbGV0ZS4KCjIwMDgtMDMtMTQgIFN0ZXJsaW5nIEF1Z3VzdGluZSAgPHN0ZXJsaW5nQHRlbnNpbGljYS5jb20+CgoJKiBjb25maWcvdGMteHRlbnNhLmggKHh0ZW5zYV9yZWxheF9zdGF0ZXNFKTogVXBkYXRlIGNvbW1lbnQgZm9yCglSRUxBWF9MT09QX0VORF9BRERfTk9QLgoKMjAwOC0wMy0xMyAgRXZhbmRybyBNZW5lemVzICA8ZXZhbmRyb0B5YWhvby5jb20+CgoJUFIgZ2FzLzU4OTUKCSogcmVhZC5jIChzX21leGl0KTogV2FybiBpZiBhdHRlbXB0aW5nIHRvIGV4aXQgYSBtYWNybyB3aGVuIG5vdAoJaW5zaWRlIGEgbWFjcm8gZGVmaW5pdGlvbi4KCjIwMDgtMDMtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA4LTAzLTA5ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChhcm1fY3B1X29wdGlvbl90YWJsZSk6IEFkZCBjb3J0ZXgtYTkuCgkqIGRvYy9jLWFybS50ZXhpOiBBZGQgY29ydGV4LWE5LgoKMjAwOC0wMy0wOSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy90Yy1hcm0uYyAoZnB1X3ZmcF9leHRfZDMyKTogTmV3IHZhaXJhYmxlLgoJKHBhcnNlX3ZmcF9yZWdfbGlzdCwgZW5jb2RlX2FybV92ZnBfcmVnKTogVXNlIGl0LgoJKGFybV9vcHRpb25fY3B1X3ZhbHVlKTogQWRkIHZmcHYzLWQxNiwgdmZwdjIgYW5kIHZmcHYzLgoJKGFlYWJpX3NldF9wdWJsaWNfYXR0cmlidXRlcyk6IEhhbmRsZSBUYWdfVkZQX2FyY2g9VkZQVjMtRDE2LgoJKiBkb2MvYy1hcm0udGV4aTogRG9jdW1lbnQgbmV3IEFSTSBGUFUgdmFyaWFudHMuCgoyMDA4LTAzLTA3ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChtZF9hcHBseV9maXgpOiBVc2UgY29ycmVjdCBvZmZzZXQgcmFuZ2UuCgoyMDA4LTAzLTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5jIChwcGNfc2V0dXBfb3Bjb2Rlcyk6IFRpZHkuICBBZGQgY29kZSB0byB0ZXN0Cglmb3Igc3RyaWN0IG9yZGVyaW5nIG9mIHBvd2VycGNfb3Bjb2RlcywgYnV0IGRpc2FibGUgZm9yIG5vdy4KCjIwMDgtMDMtMDQgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdGMtYXJtLmMgKGFybV9leHRfYmFycmllciwgYXJtX2V4dF9tc3IpOiBOZXcuCgkoYXJtX2V4dF92N20pOiBSZW5hbWUuLi4KCShhcm1fZXh0X20pOiAuLi4gdG8gdGhpcy4gIEluY2x1ZGUgdjYtTS4KCShkb190X2FkZF9zdWIpOiBBbGxvdyBuYXJyb3cgbG93LXJlZyBub24gZmxhZyBzZXR0aW5nIGFkZHMuCgkoZG9fdF9tcnMsIGRvX3RfbXNyLCBhZWFiaV9zZXRfcHVibGljX2F0dHJpYnV0ZXMpOiBVc2UgYXJtX2V4dF9tLgoJKG1kX2Fzc2VtYmxlKTogQWxsb3cgd2lkZSBtc3IgaW5zdHJ1Y3Rpb25zLgoJKGluc25zKTogQWRkIGNsYXNzaWZpY2F0aW9ucyBmb3IgdjYtbSBpbnN0cnVjdGlvbnMuCgkoYXJtX2NwdV9vcHRpb25fdGFibGUpOiBBZGQgY29ydGV4LW0xLgoJKGFybV9hcmNoX29wdGlvbl90YWJsZSk6IEFkZCBhcm12Ni1tLgoJKGNwdV9hcmNoKTogQWRkIEFSTV9BUkNIX1Y2TS4gIEZpeCBudW1iZXJpbmcgb2Ygb3RoZXIgdjYgdmFyaWFudHMuCgoyMDA4LTAzLTAzICBTdGVybGluZyBBdWd1c3RpbmUgIDxzdGVybGluZ0B0ZW5zaWxpY2EuY29tPgoJICAgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBjb25maWcvdGMteHRlbnNhLmMgKHh0ZW5zYV9udW1fcGlwZV9zdGFnZXMpOiBOZXcuCgkobWRfYmVnaW4pOiBJbml0aWFsaXplIGl0LgoJKHJlc291cmNlc19jb25mbGljdCk6IFVzZSBpdC4KCjIwMDgtMDMtMDMgIFN0ZXJsaW5nIEF1Z3VzdGluZSAgPHN0ZXJsaW5nQHRlbnNpbGljYS5jb20+CgoJKiBjb25maWcvdGMteHRlbnNhLmggKFJFTEFYX1hURU5TQV9OT05FKTogTmV3LgoKMjAwOC0wMy0wMyAgRGVueXMgVmxhc2Vua28gPHZkYS5saW51eEBnb29nbGVtYWlsLmNvbT4KCSAgICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgZ2FzLzU1NDMKCSogcmVhZC5jIChwc2V1ZG9fc2V0KTogRG9uJ3QgYWxsb3cgZ2xvYmFsIHJlZ2lzdGVyIHN5bWJvbC4KCgkqIHN5bWJvbHMuYyAoU19TRVRfRVhURVJOQUwpOiBEb24ndCBhbGxvdyByZWdpc3RlciBzeW1ib2wKCWdsb2JhbC4KCjIwMDgtMDMtMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBnYXMvNTU0MwoJKiB3cml0ZS5jICh3cml0ZV9vYmplY3RfZmlsZSk6IERvbid0IGFsbG93IHN5bWJvbHMgd2hpY2ggd2VyZQoJZXF1YXRlZCB0byByZWdpc3Rlci4gIFN0b3AgaWYgdGhlcmUgaXMgYW4gZXJyb3IuCgoyMDA4LTAzLTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3RjLXBwYy5oIChzdHJ1Y3QgX3BwY19maXhfZXh0cmEpOiBOZXcuCgkocHBjX2NwdSk6IERlY2xhcmUuCgkoVENfRklYX1RZUEUsIFRDX0lOSVRfRklYX0RBVEEpOiBEZWZpbmUuCgkqIGNvbmZpZy90Yy1wcGMuYyAocHB1X2NwdSk6IE1ha2UgZ2xvYmFsLgoJKHBwY19pbnNlcnRfb3BlcmFuZCk6IEFkZCBwcHVfY3B1IHBhcmFtZXRlci4KCShtZF9hc3NlbWJsZSk6IEFkanVzdCBmb3IgYWJvdmUgY2hhbmdlLgoJKG1kX2FwcGx5X2ZpeCk6IFBhc3MgdGNfZml4X2RhdGEucHBjX2NwdSB0byBwcGNfaW5zZXJ0X29wZXJhbmQuCgoyMDA4LTAyLTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLWFybS5jIChkb19ieCk6IE9ubHkgdGVzdCBFRl9BUk1fRUFCSV9WRVJTSU9OIG9uIEVMRgoJdGFyZ2V0ZWQgQVJNIHBvcnRzLCBvdGhlcndpc2UganVzdCBza2lwIGdlbmVyYXRpbmcgdGhlIHJlbG9jLgoKMjAwOC0wMi0xOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZG9jL2MtaTM4Ni50ZXhpOiBVcGRhdGUgLW1hcmNoPSBhbmQgLmFyY2guCgoyMDA4LTAyLTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLW1uMTAzMDAuYyAoaGFzX2tub3duX3N5bWJvbF9sb2NhdGlvbik6IE5ldyBmdW5jdGlvbi4KCURvIG5vdCByZWdhcmQgd2VhayBzeW1ib2xzIGFzIGhhdmluZyBhIGtub3duIGxvY2F0aW9uLgoJKG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogVXNlIG5ldyBmdW5jdGlvbi4KCShtZF9wY3JlbF9mcm9tKTogRG8gbm90IGNvbXB1dGUgYSBwY3JlbCBhZ2FpbnN0IGEgd2VhayBzeW1ib2wuCgoyMDA4LTAyLTE4ICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtYXRjaF90ZW1wbGF0ZSk6IERpc2FsbG93ICdsJyBzdWZmaXggd2hlbgoJY3VycmVudGx5IHNlbGVjdGVkIENQVSBoYXMgbm8gMzItYml0IHN1cHBvcnQuCgkocGFyc2VfcmVhbF9yZWdpc3Rlcik6IERvIG5vdCByZXR1cm4gcmVnaXN0ZXJzIG5vdCBhdmFpbGFibGUgb24KCWN1cnJlbnRseSBzZWxlY3RlZCBDUFUuCgoyMDA4LTAyLTE2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwcm9jZXNzX2ltbWV4dCk6IEZpeCBmb3JtYXQuCgoyMDA4LTAyLTE2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChpbm91dHBvcnRyZWcpOiBOZXcuCgkocHJvY2Vzc19pbW1leHQpOiBOZXcuCgkobWRfYXNzZW1ibGUpOiBVc2UgaXQuCgkodXBkYXRlX2ltbSk6IFVzZSBpbW0xNiBhbmQgaW1tMzJzLgoJKGkzODZfYXR0X29wZXJhbmQpOiBVc2UgaW5vdXRwb3J0cmVnLgoKMjAwOC0wMi0xNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAob3BlcmFuZF90eXBlX2FsbF96ZXJvKTogTmV3LgoJKG9wZXJhbmRfdHlwZV9zZXQpOiBMaWtld2lzZS4KCShvcGVyYW5kX3R5cGVfZXF1YWwpOiBMaWtld2lzZS4KCShjcHVfZmxhZ3NfYWxsX3plcm8pOiBMaWtld2lzZS4KCShjcHVfZmxhZ3Nfc2V0KTogTGlrZXdpc2UuCgkoY3B1X2ZsYWdzX2VxdWFsKTogTGlrZXdpc2UuCgkoVUlOVFNfQUxMX1pFUk8pOiBSZW1vdmVkLgoJKFVJTlRTX1NFVCk6IExpa2V3aXNlLgoJKFVJTlRTX0NMRUFSKTogTGlrZXdpc2UuCgkoVUlOVFNfRVFVQUwpOiBMaWtld2lzZS4KCShjcHVfZmxhZ3NfbWF0Y2gpOiBVcGRhdGVkLgoJKHNtYWxsZXN0X2ltbV90eXBlKTogTGlrZXdpc2UuCgkoc2V0X2NwdV9hcmNoKTogTGlrZXdpc2UuCgkobWRfYXNzZW1ibGUpOiBMaWtld2lzZS4KCShvcHRpbWl6ZV9pbW0pOiBMaWtld2lzZS4KCShtYXRjaF90ZW1wbGF0ZSk6IExpa2V3aXNlLgoJKHByb2Nlc3Nfc3VmZml4KTogTGlrZXdpc2UuCgkodXBkYXRlX2ltbSk6IExpa2V3aXNlLgoJKHByb2Nlc3NfZHJleCk6IExpa2V3aXNlLgoJKHByb2Nlc3Nfb3BlcmFuZHMpOiBMaWtld2lzZS4KCShidWlsZF9tb2RybV9ieXRlKTogTGlrZXdpc2UuCgkoaTM4Nl9pbW1lZGlhdGUpOiBMaWtld2lzZS4KCShpMzg2X2Rpc3BsYWNlbWVudCk6IExpa2V3aXNlLgoJKGkzODZfYXR0X29wZXJhbmQpOiBMaWtld2lzZS4KCShwYXJzZV9yZWFsX3JlZ2lzdGVyKTogTGlrZXdpc2UuCgkobWRfcGFyc2Vfb3B0aW9uKTogTGlrZXdpc2UuCgkoaTM4Nl90YXJnZXRfZm9ybWF0KTogTGlrZXdpc2UuCgoyMDA4LTAyLTE0ICBEaW1pdHJ5IEFuZHJpYyAgPGRpbWl0cnlAYW5kcmljLmNvbT4KCglQUiBnYXMvNTcxMgoJKiBjb25maWcvdGMtYXJtLmMgKHNfYXJtX3Vud2luZF9zYXZlKTogQWR2YW5jZSB0aGUgaW5wdXQgbGluZQoJcG9pbnRlciBwYXN0IHRoZSBjb21tYSBhZnRlciBwYXJzaW5nIGEgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXIKCW5hbWUuCgoyMDA4LTAyLTE0ICBIYWthbiBBcmRvICA8aGFrYW5AZGViaWFuLm9yZz4KCglQUiBnYXMvMjYyNgoJKiBjb25maWcvdGMtYXZyLmMgKG1jdV90eXBlcyk6IENoYW5nZSB0aGUgSVNBIHR5b2Ugb2YgdGhlIGF0dGlueTI2Cgl0byBBVlJfSVNBXzJ4eGUuCgkoYXZyX29wZXJhbmQpOiBEaXNhbGxvdyBwb3N0LWluY3JlbWVudCBhZGRyZXNzaW5nIGluIHRoZSBscG0KCWluc3RydWN0aW9uIGZvciB0aGUgYXR0aW55MjYuCgoyMDA4LTAyLTEzICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChwYXJzZV9yZWFsX3JlZ2lzdGVyKTogRG9uJ3QgcmV0dXJuICdGTEFUJwoJaWYgbm90IGluIEludGVsIG1vZGUuCgkoaTM4Nl9pbnRlbF9vcGVyYW5kKTogSWdub3JlIHNlZ21lbnQgb3ZlcnJpZGVzIGluIGltbWVkaWF0ZSBhbmQKCW9mZnNldCBvcGVyYW5kcy4KCShpbnRlbF9lMTEpOiBSYW5nZS1jaGVjayBpLm1lbV9vcGVyYW5kcyBiZWZvcmUgdXNlIGFzIGFycmF5CglpbmRleC4gRmlsdGVyIG91dCBGTEFUIGZvciB1c2VzIG90aGVyIHRoYW4gYXMgc2VnbWVudCBvdmVycmlkZS4KCShpbnRlbF9nZXRfdG9rZW4pOiBSZW1vdmUgYnJva2VuIHByb21vdGlvbiBvZiAiRkxBVDoiIHRvIG1lYW4KCSJvZmZzZXQgRkxBVDoiLgoKMjAwOC0wMi0xMyAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoaW50ZWxfZTA5KTogQWxzbyBzcGVjaWFsLWNhc2UgJ2JvdW5kJy4KCjIwMDgtMDItMTMgIEphbiBCZXVsaWNoICA8amJldWxpY2hAbm92ZWxsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKGFsbG93X3BzZXVkb19yZWcpOiBOZXcuCgkocGFyc2VfcmVhbF9yZWdpc3Rlcik6IENoZWNrIGZvciBOVUxMIGp1c3Qgb25jZS4gQWxsb3cgYWxsCglyZWdpc3RlciB0YWJsZSBlbnRyaWVzIHdoZW4gYWxsb3dfcHNldWRvX3JlZyBpcyBub24temVyby4KCURvbid0IGFsbG93IGFueSByZWdpc3RlcnMgd2l0aG91dCB0eXBlIHdoZW4gYWxsb3dfcHNldWRvX3JlZwoJaXMgemVyby4KCSh0Y194ODZfcmVnbmFtZV90b19kdzJyZWdudW0pOiBSZXBsYWNlIHdpdGggLi4uCgkodGNfeDg2X3BhcnNlX3RvX2R3MnJlZ251bSk6IC4uLiB0aGlzLgoJKHRjX3g4Nl9mcmFtZV9pbml0aWFsX2luc3RydWN0aW9ucyk6IEFkanVzdCBmb3IgYWJvdmUgY2hhbmdlLgoJKiBjb25maWcvdGMtaTM4Ni5oICh0Y19yZWduYW1lX3RvX2R3MnJlZ251bSk6IFJlbW92ZS4KCSh0Y19wYXJzZV90b19kdzJyZWdudW0pOiBOZXcuCgkodGNfeDg2X3JlZ25hbWVfdG9fZHcycmVnbnVtKTogUmVwbGFjZSB3aXRoIC4uLgoJKHRjX3g4Nl9wYXJzZV90b19kdzJyZWdudW0pOiAuLi4gdGhpcy4KCSogZHcyZ2VuY2ZpLmMgKHRjX3BhcnNlX3RvX2R3MnJlZ251bSk6IE5ldywgYnJva2VuIG91dCBvZiAuLi4KCShjZmlfcGFyc2VfcmVnKTogLi4uIHRoaXMuIFVzZSB0Y19wYXJzZV90b19kdzJyZWdudW0uIEFkanVzdAoJZXJyb3IgaGFuZGxpbmcuCgoyMDA4LTAyLTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3RjLXRpYzR4LmMgKHRpYzR4X2luc25faW5zZXJ0KTogQWRkIGNvbnN0IHF1YWxpZmllciB0bwoJYXJndW1lbnQuCgkodGljNHhfaW5zbl9hZGQpOiBMaWtld2lzZS4KCShtZF9iZWdpbik6IERyb3AgY2FzdCB0aGF0IHdhcyBkaXNjYXJkaW5nIGEgY29uc3QgcXVhbGlmaWVyLgoJKiBjb25maWcvdGMtZDMwdi5jIChnZXRfcmVsb2MpOiBBZGQgY29uc3QgcXVhbGlmaWVyIHRvIG9wCglhcmd1bWVudC4KCShidWlsZF9pbnNuKTogRHJvcCBjYXN0IHRoYXQgd2FzIGRpc2NhcmRpbmcgYSBjb25zdCBxdWFsaWZpZXIuCgoyMDA4LTAyLTExICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChjcHVfYXJjaCk6IEFkZCAueHNhdmUuCgkobWRfc2hvd191c2FnZSk6IEFkZCAueHNhdmUuCgoJKiBkb2MvYy1pMzg2LnRleGk6IEFkZCB4c2F2ZSB0byAtbWFyY2g9LgoKMjAwOC0wMi0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJlYWQuYyAoc193ZWFrcmVmKTogRG9uJ3QgcGFzcyB1bmFkb3JuZWQgTlVMTCB0byBjb25jYXQuCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHNldF9jcHVfYXJjaCwgbWRfcGFyc2Vfb3B0aW9uKTogTGlrZXdpc2UuCgoyMDA4LTAyLTA1ICBTdGVybGluZyBBdWd1c3RpbmUgIDxzdGVybGluZ0B0ZW5zaWxpY2EuY29tPgoKCSogY29uZmlnL3RjLXh0ZW5zYS5jIChyZWxheF9mcmFnX2ltbWVkKTogQ2hhbmdlIGludGVybmFsIGNvbnNpc3RlbmN5CgljaGVja3MgaW50byBhc3NlcnRpb25zLiAgV2hlbiByZWxheGF0aW9uIHByb2R1Y2VzIGFuIG9wZXJhdGlvbiB0aGF0Cglkb2VzIG5vdCBmaXQgaW4gdGhlIGN1cnJlbnQgRkxJWCBpbnN0cnVjdGlvbiwgbWFrZSBzdXJlIHRoYXQgdGhlCglvcGVyYXRpb24gaXMgcmVsYXhlZCBhcyBuZWVkZWQgdG8gYWNjb3VudCBmb3IgYmVpbmcgcGxhY2VkIGZvbGxvd2luZwoJdGhlIGN1cnJlbnQgaW5zdHJ1Y3Rpb24uCgoyMDA4LTAyLTA0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgNTcxNQoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwOC0wMi0wNCAgQWRhbSBOZW1ldCAgPGFuZW1ldEBjYXZpdW1uZXR3b3Jrcy5jb20+CgoJKiBjb25maWcvdGMtbWlwcy5jIChtaXBzX2NwdV9pbmZvX3RhYmxlKTogQWRkIE9jdGVvbi4KCjIwMDgtMDEtMzEgIE1hcmMgR2F1dGhpZXIgIDxtYXJjQHRlbnNpbGljYS5jb20+CgoJKiBjb25maWd1cmUudGd0ICh4dGVuc2EqLSotKik6IFJlY29nbml6ZSBwcm9jZXNzb3IgdmFyaWFudHMuCgoyMDA4LTAxLTI1ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIHJlYWQuYzogKGVtaXRfZXhwcik6IENvcnJlY3QgZm9yIG1pbmd3IHVzZSBvZiBwcmludGYgc2l6ZQoJc3BlY2lmaWVyLgoKMjAwOC0wMS0yNCAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGRvYy9jLXh0ZW5zYS50ZXhpIChYdGVuc2EgU3ludGF4KTogQ2xhcmlmeSBoYW5kbGluZyBvZiBvcGNvZGVzIHRoYXQKCWNhbiBvbmx5IGJlIGVuY29kZWQgaW4gRkxJWCBpbnN0cnVjdGlvbnMgYnV0IGFyZSBub3Qgc3BlY2lmaWVkIGFzIHN1Y2guCgkoWHRlbnNhIEF1dG9tYXRpYyBBbGlnbm1lbnQpOiBSZW1vdmUgb2Jzb2xldGUgY29tbWVudCBhYm91dCBkZWJ1Z2dpbmcKCWxhYmVscy4KCjIwMDgtMDEtMjQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB4ODYgdGFyZ2V0cy4KCjIwMDgtMDEtMjMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1kX3Nob3dfdXNhZ2UpOiBSZXBsYWNlIHRhYnMgd2l0aCBzcGFjZXMuCgoyMDA4LTAxLTIzICBFcmljIEIuIFdlZGRpbmd0b24gIDxlcmljLndlZGRpbmd0b25AYXRtZWwuY29tPgoKCSogY29uZmlnL3RjLWF2ci5jIChtY3VfdHlwZXMpOiBDaGFuZ2Ugb3Bjb2RlIHNldCBmb3IgYXQ4NnJmNDAxLgoKMjAwOC0wMS0yMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWRfc2hvd191c2FnZSk6IFNob3cgbW9yZSBwcm9jZXNzb3JzIGZvcgoJLW1hcmNoPS8tbXR1bmU9LgoKMjAwOC0wMS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoaTM4Nl90YXJnZXRfZm9ybWF0KTogUmVtb3ZlIGNwdW1teDIuCgoyMDA4LTAxLTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChYWFhfUFJFRklYKTogTW92ZWQgZnJvbSB0Yy1pMzg2LmguCgkoWFhYX01ORU1fU1VGRklYKTogTGlrZXdpc2UuCgkoRU5EX09GX0lOU04pOiBMaWtld2lzZS4KCSh0ZW1wbGF0ZXMpOiBMaWtld2lzZS4KCShtb2RybV9ieXRlKTogTGlrZXdpc2UuCgkocmV4X2J5dGUpOiBMaWtld2lzZS4KCShEUkVYX1hYWCk6IExpa2V3aXNlLgoJKGRyZXhfYnl0ZSk6IExpa2V3aXNlLgoJKHNpYl9ieXRlKTogTGlrZXdpc2UuCgkocHJvY2Vzc29yX3R5cGUpOiBMaWtld2lzZS4KCShhcmNoX2VudHJ5KTogTGlrZXdpc2UuCgkoY3B1X3N1Yl9hcmNoX25hbWUpOiBSZW1vdmUgY29uc3QuCgkoY3B1X2FyY2gpOiBBZGQgLnZteCBhbmQgLnNteC4KCShzZXRfY3B1X2FyY2gpOiBBcHBlbmQgY3B1X3N1Yl9hcmNoX25hbWUuCgkobWRfcGFyc2Vfb3B0aW9uKTogU3VwcG9ydCAtbWFyY2g9Q1BVWywrRVhURU5TSU9OLi4uXS4KCShtZF9zaG93X3VzYWdlKTogVXBkYXRlZC4KCgkqIGNvbmZpZy90Yy1pMzg2LmggKFhYWF9QUkVGSVgpOiBNb3ZlZCB0byB0Yy1pMzg2LmMuCgkoWFhYX01ORU1fU1VGRklYKTogTGlrZXdpc2UuCgkoRU5EX09GX0lOU04pOiBMaWtld2lzZS4KCSh0ZW1wbGF0ZXMpOiBMaWtld2lzZS4KCShtb2RybV9ieXRlKTogTGlrZXdpc2UuCgkocmV4X2J5dGUpOiBMaWtld2lzZS4KCShEUkVYX1hYWCk6IExpa2V3aXNlLgoJKGRyZXhfYnl0ZSk6IExpa2V3aXNlLgoJKHNpYl9ieXRlKTogTGlrZXdpc2UuCgkocHJvY2Vzc29yX3R5cGUpOiBMaWtld2lzZS4KCShhcmNoX2VudHJ5KTogTGlrZXdpc2UuCgoJKiBkb2MvYXMudGV4aW5mbzogVXBkYXRlIGkzODYgLW1hcmNoIG9wdGlvbi4KCgkqIGRvYy9jLWkzODYudGV4aTogVXBkYXRlIC1tYXJjaD0gZm9yIElTQS4KCjIwMDgtMDEtMTggIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBjb25maWcvdGMteHRlbnNhLmMgKHh0ZW5zYV9sZWIxMjgpOiBOZXcgZnVuY3Rpb24uCgkobWRfcHNldWRvX3RhYmxlKTogVXNlIGl0IGZvciBzbGViMTI4IGFuZCB1bGViMTI4LgoJKGlzX2xlYjEyOF9leHByKTogTmV3IGludGVybmFsIGZsYWcuCgkoeHRlbnNhX3N5bWJvbF9uZXdfaG9vayk6IENoZWNrIG5ldyBmbGFnLgoKMjAwOC0wMS0xNiAgRXJpYyBCLiBXZWRkaW5ndG9uICA8ZXJpYy53ZWRkaW5ndG9uQGF0bWVsLmNvbT4KCgkqIGNvbmZpZy90Yy1hdnIuYyAobWN1X3R5cGVzKTogQ2hhbmdlIG9wY29kZSBzZXQgZm9yIGF2cjMsCglhdDkwdXNiODIsIGF0OTB1c2IxNjIuCgkqIGRvYy9jLWF2ci50ZXhpOiBDaGFuZ2UgYXJjaGl0ZWN0dXJlIGdyb3VwaW5nIGZvciBhdDkwdXNiODIsCglhdDkwdXNiMTYyLgoJVGhlc2UgY2hhbmdlcyBzdXBwb3J0IHRoZSBuZXcgYXZyMzUgYXJjaGl0ZWN0dXJlIGdyb3VwIGluIGdjYy4KCjIwMDgtMDEtMTUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1kX2Fzc2VtYmxlKTogQWxzbyB6YXAgbW92enggYW5kIG1vdnN4CglzdWZmaXggZm9yIEFUJlQgc3ludGF4LgoKMjAwOC0wMS0xNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWF0Y2hfcmVnX3NpemUpOiBOZXcuCgkobWF0Y2hfbWVtX3NpemUpOiBMaWtld2lzZS4KCShvcGVyYW5kX3NpemVfbWF0Y2gpOiBMaWtld2lzZS4KCShvcGVyYW5kX3R5cGVfbWF0Y2gpOiBBbHNvIGNsZWFyIGFsbCBzaXplIGZpZWxkcy4KCShtYXRjaF90ZW1wbGF0ZSk6IFNraXAgSW50ZWwgc3ludGF4IHdoZW4gaW4gQVQmVCBzeW50YXguCglDYWxsIG9wZXJhbmRfc2l6ZV9tYXRjaCB0byBjaGVjayBvcGVyYW5kIHNpemUuCgkoaTM4Nl9hdHRfb3BlcmFuZCk6IFNldCB0aGUgbWVtIGZpZWxkIHRvIDEgZm9yIG1lbW9yeQoJb3BlcmFuZC4KCShpMzg2X2ludGVsX29wZXJhbmQpOiBMaWtld2lzZS4KCjIwMDgtMDEtMTIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBnYXMvNTUzNAoJKiBjb25maWcvdGMtaTM4Ni5jIChfaTM4Nl9pbnNuKTogVXBkYXRlIGNvbW1lbnQuCgkob3BlcmFuZF90eXBlX21hdGNoKTogQWxzbyBjbGVhciB1bnNwZWNpZmllZC4KCShvcGVyYW5kX3R5cGVfcmVnaXN0ZXJfbWF0Y2gpOiBMaWtld2lzZS4KCShwYXJzZV9vcGVyYW5kcyk6IEluaXRpYWxpemUgdW5zcGVjaWZpZWQuCgkoaTM4Nl9pbnRlbF9vcGVyYW5kKTogTGlrZXdpc2UuCgkobWF0Y2hfdGVtcGxhdGUpOiBDaGVjayBtZW1vcnkgYW5kIGFjY3VtdWxhdG9yIG9wZXJhbmQgc2l6ZS4KCShpMzg2X2F0dF9vcGVyYW5kKTogQ2xlYXIgdW5zcGVjaWZpZWQgb24gcmVnaXN0ZXIgb3BlcmFuZC4KCShpbnRlbF9lMTEpOiBMaWtld2lzZS4KCShpbnRlbF9lMDkpOiBTZXQgb3BlcmFuZCBzaXplIGFuZCBjbGVhbiB1bnNwZWNpZmllZCBmb3IKCSJYWFggUFRSIi4KCjIwMDgtMDEtMTEgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiByZWFkLmMgKHNfc3BhY2UpOiBEZWNsYXJlIGByZXBlYXQnIGFzIG9mZnNldFQuCgoyMDA4LTAxLTEwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtYXRjaF90ZW1wbGF0ZSk6IENoZWNrIHByb2Nlc3NvciBzdXBwb3J0CglmaXJzdC4KCjIwMDgtMDEtMTAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKG1hdGNoX3RlbXBsYXRlKTogQ29udGludWUgaWYgcHJvY2Vzc29yCglkb2Vzbid0IG1hdGNoLgoKMjAwOC0wMS0wOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtaWE2NC5jIChpYTY0X2NvbnZlcnRfZnJhZyk6IFplcm8taW5pdGlhbGl6ZSByb29tIGZvcgoJdW53aW5kIHBlcnNvbmFsaXR5IGZ1bmN0aW9uIGFkZHJlc3MuCgoyMDA4LTAxLTA5ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZHdhcmYyZGJnLmMgKG91dF9zbGViMTI4KTogRGVsZXRlLgoJKHNpemVfZml4ZWRfaW5jX2xpbmVfYWRkciwgZW1pdF9maXhlZF9pbmNfbGluZV9hZGRyKTogTmV3LgoJKG91dF9maXhlZF9pbmNfbGluZV9hZGRyKTogRGVsZXRlLgoJKHJlbGF4X2luY19saW5lX2FkZHIsIGR3YXJmMmRiZ19lc3RpbWF0ZV9zaXplX2JlZm9yZV9yZWxheCk6IENhbGwgbmV3CglzaXplX2ZpeGVkX2luY19saW5lX2FkZHIgaWYgRFdBUkYyX1VTRV9GSVhFRF9BRFZBTkNFX1BDIGlzIHNldC4KCShkd2FyZjJkYmdfY29udmVydF9mcmFnKTogTGlrZXdpc2UgZm9yIGVtaXRfZml4ZWRfaW5jX2xpbmVfYWRkci4KCShwcm9jZXNzX2VudHJpZXMpOiBSZW1vdmUgY2FsbHMgdG8gb3V0X2ZpeGVkX2luY19saW5lX2FkZHIuICBXaGVuCglEV0FSRjJfVVNFX0ZJWEVEX0FEVkFOQ0VfUEMgaXMgc2V0LCBjYWxsIHJlbGF4X2luY19saW5lX2FkZHIuCgkqIHJlYWQuaCAoZW1pdF9leHByX2ZpeCk6IE5ldyBwcm90b3R5cGUuCgkqIHJlYWQuYyAoZW1pdF9leHByKTogTW92ZSBjb2RlIHRvIGVtaXRfZXhwcl9maXggYW5kIHVzZSBpdCBoZXJlLgoJKGVtaXRfZXhwcl9maXgpOiBOZXcuCgoyMDA4LTAxLTA5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtYXRjaF90ZW1wbGF0ZSk6IENoZWNrIHJlZ2lzdGVyIHNpemUKCW9ubHkgd2hlbiBzaXplIG9mIG9wZXJhbmRzIGNhbiBiZSBlbmNvZGVkIHRoZSBjYW5vbmljYWwgd2F5LgoKMjAwOC0wMS0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAoaTM4Nl9vcGVyYW5kKTogUmVuYW1lZCB0byAuLi4KCShpMzg2X2F0dF9vcGVyYW5kKTogVGhpcy4KCShwYXJzZV9vcGVyYW5kcyk6IFVwZGF0ZWQuCgoyMDA4LTAxLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBkb2MvYy1pMzg2LnRleGk6IFVwZGF0ZSAuYXR0X21uZW1vbmljIGFuZCAuaW50ZWxfbW5lbW9uaWMuCgoJKiBjb25maWcvdGMtaTM4Ni5jIChzZXRfaW50ZWxfbW5lbW9uaWMpOiBTZXQgaW50ZWxfbW5lbW9uaWMKCW9ubHkuCgkobWRfYXNzZW1ibGUpOiBSZW1vdmUgSW50ZWwgbW9kZSB3b3JrYXJvdW5kLgoJKG1hdGNoX3RlbXBsYXRlKTogQ2hlY2sgc3VwcG9ydCBmb3Igb2xkIGdjYywgQVQmVCBtbmVtb25pYwoJYW5kIEludGVsIFN5bnRheC4KCShtZF9wYXJzZV9vcHRpb24pOiBEb24ndCBzZXQgaW50ZWxfbW5lbW9uaWMgdG8gMCBmb3IKCU9QVElPTl9NT0xEX0dDQy4KCjIwMDgtMDEtMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2Lmg6IFVwZGF0ZSBjb3B5cmlnaHQgdG8gMjAwOC4KCjIwMDgtMDEtMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvdGMtcHBjLmMgKHBhcnNlX2NwdSk6IFByZXNlcnZlIHRoZSBzZXR0aW5ncyBvZiB0aGUKCVBQQ19PUENPREVfQUxUSVZFQyBhbmQgUFBDX09QQ09ERV9TUEUgZmxhZ3MuCgoyMDA4LTAxLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvdGMtaTM4Ni5jIChtZF9hc3NlbWJsZSk6IFVzZSAhaW50ZWxfbW5lbW9uaWMgaW5zdGVhZAoJb2YgU1lTVjM4Nl9DT01QQVQuCgoyMDA4LTAxLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBnYXMvY29uZmlnL3RjLWkzODYuYyAoY3B1X2FyY2hfZmxhZ3Nfbm90KTogUmVtb3ZlZC4KCShjcHVfZmxhZ3Nfbm90KTogTGlrZXdpc2UuCgkoY3B1X2ZsYWdzX21hdGNoKTogVXBkYXRlZCB0byBjaGVjayA2NGJpdCBhbmQgYXJjaC4KCShzZXRfY29kZV9mbGFnKTogUmVtb3ZlIGNwdV9hcmNoX2ZsYWdzX25vdC4KCShzZXRfMTZiaXRfZ2NjX2NvZGVfZmxhZyk6IExpa2V3aXNlLgoJKHNldF9jcHVfYXJjaCk6IExpa2V3aXNlLgoJKG1kX2JlZ2luKTogTGlrZXdpc2UuCgkocGFyc2VfaW5zbik6IENhbGwgY3B1X2ZsYWdzX21hdGNoIHRvIGNoZWNrIDY0Yml0IGFuZCBhcmNoLgoJKG1hdGNoX3RlbXBsYXRlKTogTGlrZXdpc2UuCgoyMDA4LTAxLTAzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHByb2Nlc3NfZHJleCk6IEluaXRpYWxpemUgbW9kcm1fcmVnIGFuZAoJbW9kcm1fcmVnbWVtIHRvIDAgaW5zdGVhZCBvZiBOb25lLgoKMjAwOC0wMS0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL3RjLWkzODYuYyAobWF0Y2hfdGVtcGxhdGUpOiBVc2UgdGhlIHhtbXdvcmQgZmllbGQKCWluc3RlYWQgb2Ygbm9feHN1Zi4KCjIwMDgtMDEtMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy90Yy1pMzg2LmMgKHByb2Nlc3Nfc3VmZml4KTogRml4IGEgdHlwby4KCjIwMDgtMDEtMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBnYXMvNTUzNAoJKiBjb25maWcvdGMtaTM4Ni5jIChtYXRjaF90ZW1wbGF0ZSk6IEhhbmRsZSBYTU1XT1JEX01ORU1fU1VGRklYLgoJQ2hlY2sgbWVtb3J5IHNpemUgaW4gSW50ZWwgbW9kZS4KCShwcm9jZXNzX3N1ZmZpeCk6IEhhbmRsZSBYTU1XT1JEX01ORU1fU1VGRklYLgoJKGludGVsX2UwOSk6IExpa2V3aXNlLgoKCSogY29uZmlnL3RjLWkzODYuaCAoWE1NV09SRF9NTkVNX1NVRkZJWCk6IE5ldy4KCjIwMDgtMDEtMDIgIENhdGhlcmluZSBNb29yZSAgPGNsbUBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3RjLW1pcHMuYyAobWlwc19pcCk6IENoZWNrIG9wZXJhbmRzIG9uIGphbHIgaW5zdHJ1Y3Rpb24uCgpGb3Igb2xkZXIgY2hhbmdlcyBzZWUgQ2hhbmdlTG9nLTIwMDcKDApMb2NhbCBWYXJpYWJsZXM6Cm1vZGU6IGNoYW5nZS1sb2cKbGVmdC1tYXJnaW46IDgKZmlsbC1jb2x1bW46IDc0CnZlcnNpb24tY29udHJvbDogbmV2ZXIKRW5kOgo=