MjAwNC0wOS0wNiAgUmVsZWFzZSBNYW5hZ2VyCgoJKiBHQ0MgMy40LjIgcmVsZWFzZWQuCgoyMDA0LTA4LTI2ICBNYXR0aGlhcyBLbG9zZSAgPGRva29AZGViaWFuLm9yZz4KCgkqIHRleGkycG9kLnBsOiBrZWVwIHJlZmVyZW5jZXMgb2YgdGhlIGZvcm0gQHJlZnsuLi59LCBwcmludCB0aGVtIGJvbGQuCgoyMDA0LTA4LTI2ICBNYXR0aGlhcyBLbG9zZSAgPGRva29AZGViaWFuLm9yZz4KCgkqIHRlc3Rfc3VtbWFyeTogSW5jbHVkZSBiYXNlbGluZSB1c2VkIGZvciBsaWJzdGRjKystdjMgYWJpIGNoZWNrCglpbiB0ZXN0IHN1bW1hcnkuCgoyMDA0LTA3LTAxICBSZWxlYXNlIE1hbmFnZXIKCgkqIEdDQyAzLjQuMSByZWxlYXNlZC4KCjIwMDQtMDYtMDkgIEFybmF1ZCBDaGFybGV0ICA8Y2hhcmxldEBhY3QtZXVyb3BlLmZyPgoKCVBSIGFkYS8xNDE1MAoJKiBnY2NfdXBkYXRlIChmaWxlc19hbmRfZGVwZW5kZW5jaWVzKTogUmVtb3ZlIGdjYy9hZGEvKi50ZXhpLgoKMjAwNC0wNS0xNSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBnZW5uZXdzOiBVcGRhdGUgZm9yIEdDQyAzLjQuCgoyMDA0LTA0LTE4ICBSZWxlYXNlIE1hbmFnZXIKCgkqIEdDQyAzLjQuMCByZWxlYXNlZC4KCjIwMDQtMDEtMDkgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBnY2NfdXBkYXRlIChmaWxlc19hbmRfZGVwZW5kZW5jaWVzKTogVXBkYXRlIGZhc3RqYXIvY29uZmlndXJlLmluCgl0byBmYXN0amFyL2NvbmZpZ3VyZS5hYwoKMjAwNC0wMS0wNyAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIGdjY191cGRhdGUgKGZpbGVzX2FuZF9kZXBlbmRlbmNpZXMpOiBSZW1vdmUgbm9uLWV4aXN0YW50IGZpbGVzLgoKMjAwNC0wMS0wNSAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIGdjY191cGRhdGUgKGZpbGVzX2dlbmVyYXRlZCk6IFJldmVydCAyMDAzLTEyLTE4IGNoYW5nZS4KCjIwMDQtMDEtMDMgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogZ2NjX3VwZGF0ZSAoZmlsZXNfYW5kX2RlcGVuZGVuY2llcyk6IEZvciBnY2MgZGlyZWN0b3J5LAoJcmVuYW1lIGNvbmZpZ3VyZS5pbiB0byBjb25maWd1cmUuYWMuCgoyMDAzLTEyLTE5ICBBbmRyZWFzIFRvYmxlciAgPGEudG9ibGVyQHNjaHdlaXouY2g+CgoJKiBnY2NfdXBkYXRlIChmaWxlc19hbmRfZGVwZW5kZW5jaWVzKTogRm9yIGxpYmphdmEvbGlibHRkbCBkaXJlY3RvcnksCglyZW1vdmUgYWNjb25maWcuaC4gTm8gbG9uZ2VyIHVzZWQuCgoyMDAzLTEyLTE4ICBLZWxsZXkgQ29vayAgPGtjb29rQGdjYy5nbnUub3JnPgoKCSogZ2NjX3VwZGF0ZSAoZmlsZXNfZ2VuZXJhdGVkKTogQWRkIGluIGdjYy9hZGEvc3RhbXAteGduYXR1ZyBhbmQgdXBkYXRlCglnY2MvYWRhL2duYXRfdWdfKiB0byB1c2UgaXQuCgoyMDAzLTEyLTE2ICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiBnY2NfdXBkYXRlIChmaWxlc19hbmRfZGVwZW5kZW5jaWVzKTogRm9yIGxpYmphdmEvbGlibHRkbCBkaXJlY3RvcnksCglyZW5hbWUgY29uZmlndXJlLmluIHRvIGNvbmZpZ3VyZS5hYywgYW5kIHN0YW1wLWguaW4gdG8gY29uZmlnLWguaW4uCgoyMDAzLTEyLTExICBLZWxsZXkgQ29vayAgPGtjb29rQGdjYy5nbnUub3JnPgoKCSogZ2NjX3VwZGF0ZSAoZmlsZXNfYW5kX2RlcGVuZGVuY2llcyk6IENvcnJlY3QgdHlwbyBpbiB0aGUgZmlsZW5hbWUKCWduYXRfdWdfd250LnRleGkuCgoyMDAzLTEyLTA4ICBBcm5hdWQgQ2hhcmxldCAgPGNoYXJsZXRAYWN0LWV1cm9wZS5mcgoKCSogZ2NjX3VwZGF0ZTogUmVtb3ZlIGhhbmRsaW5nIG9mIHNpbmZvLmgsIGVpbmZvLmgsIG5tYWtlLmFkcywKCXRyZWVwcnMuYWRzLgoKMjAwMy0xMC0xNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdlbm5ld3MgKGZpbGVzKTogQWRkIEdDQyAzLjMgZmlsZXMuCgoyMDAzLTA4LTIxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2NjX2J1aWxkOiBGaXggaGFuZGxpbmcgb2YgLXQgb3B0aW9uLiAgQWRkIC14IG9wdGlvbi4KCjIwMDMtMDctMzEgIE1hdHQgS3JhYWkgIDxrcmFhaUBhbHVtbmkuY211LmVkdT4KCgkqIHRleGkycG9kLnBsOiBSZW1vdmUgZXh0cmEgbGluZS4KCjIwMDMtMDctMTUgIE1hdHQgS3JhYWkgIDxrcmFhaUBhbHVtbmkuY211LmVkdT4KCgkqIHRleGkycG9kLnBsOiBEZWZhdWx0IEBpdGVtaXplJ3MgcGFyYW1ldGVyIHRvIEBidWxsZXQuCgoyMDAzLTA3LTEyICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2NjX3VwZGF0ZTogZ2NjL2FjY29uZmlnLmggbm8gbG9uZ2VyIGV4aXN0cy4KCjIwMDMtMDctMTEgIE1hdHRoaWFzIEtsb3NlICA8ZG9rb0BkZWJpYW4ub3JnPgoKCSogdGVzdF9pbnN0YWxsZWQ6IEFkZCBvcHRpb25zIHRvIHJ1biBvYmpjIHRlc3RzLgoJSW4gZ2VuZXJhdGVkIHNpdGUuZXhwLCBpbml0aWFsaXplIHJvb3RtZSwgQ0ZMQUdTLCBDWFhGTEFHUy4KCjIwMDMtMDctMDQgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2NfdXBkYXRlOiBSZW1vdmUgZ2NjL2ludGwvcGx1cmFsLmMgZnJvbSBsaXN0LgoJQWRkIG5ldyBnZW5lcmF0ZWQgZmlsZXMgaW50bC9wbHVyYWwuYywgaW50bC9jb25maWd1cmUsCglpbnRsL2NvbmZpZy5oLmluLgoKMjAwMy0wNi0xMyAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGdjY191cGRhdGUgKGZpbGVzX2FuZF9kZXBlbmRlbmNpZXMpOiBBZGQKCWdjYy90ZXN0c3VpdGUvZ2NjLmRnL2NwcC9fUHJhZ21hMy5jIGRlcGVuZHMgb24KCWdjYy90ZXN0c3VpdGUvZ2NjLmRnL2NwcC9taTFjLmguCgoyMDAzLTA1LTIzICBOYXRoYW5hZWwgTmVyb2RlIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCSogcGFyYW5vaWEuY2M6IEZpeCBzcGVsbGluZyBlcnJvci4KCgkqIGFuYWx5emVfYnJwcm9iLCBnY2NfYnVpbGQsIGdlbm5ld3MsIHRleGkycG9kLnBsOiBDaGFuZ2UgR05VIENDCgl0byBHQ0MuCgoyMDAzLTA0LTA0ICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIGNvbXBhcmVfdGVzdHM6IEZpeCBleGl0IHN0YXR1cyBhbmQgYmUgbW9yZSBmbGV4aWJsZSB3aXRoIHNwYWNpbmcuCgoyMDAzLTAzLTA4ICBQaGlsIEVkd2FyZHMgIDxwbWVAZ2NjLmdudS5vcmc+CgoJKiB0ZXN0X3N1bW1hcnk6ICBBZGQgLWgsIHByaW50IGV4aXN0aW5nIGNvbW1lbnRzIGFzIGhlbHAuCgoyMDAzLTAzLTAzICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGdjY19idWlsZDogVXNlICRHQ0NfQ1ZTLyRDVlMgaW5zdGVhZCBvZiBjdnMuCgkqIGdjY191cGRhdGU6IExpa2V3aXNlLgoKMjAwMy0wMS0xOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiB0ZXN0X3N1bW1hcnkgKGNvbmZpZ2ZsYWdzKTogT25seSB1c2UgdGhlIGZpcnN0IG1hdGNoLiAgUmVtb3ZlCglleGNlc3Mgc3BhY2UuICBVc2Ugc3ViIGluc3RlYWQgb2YgZ3N1YiB3aGVyZSBwb3NzaWJsZS4gIFVzZSBgbm9uZScKCWlmIG5vIGNvbmZpZ3VyZSBmbGFncyB3ZXJlIGdpdmVuLgoKMjAwMy0wMS0xMCAgTG9yZW4gSi4gUml0dGxlICA8bGpyaXR0bGVAYWNtLm9yZz4KCgkqIHRlc3Rfc3VtbWFyeSAoY29uZmlnZmxhZ3MpOiBhd2sgcG9ydGFiaWxpdHkuCgoyMDAzLTAxLTA3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIHRlc3Rfc3VtbWFyeSAoY29uZmlnZmxhZ3MpOiBDb21wdXRlIGNvcnJlY3RseSB3aXRoIGJvdGgKCWF1dG9jb25maXNjYXRlZCBhbmQgQ3lnbnVzLXN0eWxlIHRvcC1sZXZlbC4KCjIwMDMtMDEtMDMgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGdjY191cGRhdGUgKGZpbGVzX2FuZF9kZXBlbmRlbmNpZXMpOiBBZGQgZ2NjL2NwL2NmbnMuaCBkZXBlbmRzCglvbiBnY2MvY3AvY2Zucy5ncGVyZiBhbmQgZ2NjL2phdmEva2V5d29yZC5oIGRlcGVuZHMgb24KCWdjYy9qYXZhL2tleXdvcmQuZ3BlcmYKCjIwMDItMTItMjkgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGdjY191cGRhdGUgKGZpbGVzX2FuZF9kZXBlbmRlbmNpZXMpOiBBZGQgZ2NjL2ludGwvcGx1cmFsLmMgYXMKCWRlcGVuZGluZyBvbiBnY2MvaW50bC9wbHVyYWwueS4KCjIwMDItMTItMjggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZ2NjX3VwZGF0ZSAoY29uZmlndXJlKTogRGVwZW5kIG9uIGNvbmZpZy9hY3gubTQgYXMgd2VsbC4KCgkqIGdjY191cGRhdGUgKGNvbmZpZ3VyZSk6IERlcGVuZCBvbiBjb25maWd1cmUuaW4uCgoyMDAyLTEyLTI0ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIHRleGkycG9kLnBsOiBTa2lwIGNvbnRlbnRzIG9mIEBjb3B5aW5nLgoKMjAwMi0xMS0wOSAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGd0aHJfc3VwcF92eHdfNXguYzogTmV3IGZpbGUuCgoyMDAyLTEwLTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcGFyYW5vaWEuY2MgKHJlYWxfY19mbG9hdDo6aW1hZ2UpOiBBY2NvbW9kYXRlIHNpemUgb2YKCXJlYWxfaW50ZXJuYWwgZm9ybWF0LgoJKG1haW4pOiBVbmJ1ZmZlciBzdGRpby4gIEFkZCByZWFsX2ludGVybmFsIGZvcm1hdC4KCShmbG9vcl9sb2cyX3dpZGUpOiBOZXcuCgoyMDAyLTEwLTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcGFyYW5vaWEuY2MgKEVOVU1fQklURklFTEQpOiBOZXcuCgkoY2xhc3MpOiBEZWZpbmUgYXMga2xhc3MgYXJvdW5kIHJlYWwuaC4KCShyZWFsX2NfZmxvYXQpOiBOb3QgYSB0ZW1wbGF0ZSBhbnkgbG9uZ2VyOyBkZWZpbmUgTU9ERSBhcyBhCgljbGFzcyBzdGF0aWMgY29uc3RhbnQ7IHVzZSByZWFsX2Zvcm1hdCBlbGVtZW50cyBmb3IgU0laRS4KCVVwZGF0ZSB1c2VzIG9mIHJlYWxfdG9fZGVjaW1hbCBhbmQgcmVhbF90b19oZXhhZGVjaW1hbC4KCShtYWluKTogQ2hhbmdlIC1nIGFyZ3VtZW50IHRvIHVzZSBhIGZvcm1hdCBuYW1lLgoJKG1vZGVfZm9yX3NpemUpOiBSZW1vdmUuCgoyMDAyLTA5LTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcGFyYW5vaWEuY2M6IE5ldyBmaWxlLgoKMjAwMi0wOS0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVucXVpcmUuYzogUmVtb3ZlLgoKMjAwMi0wOC0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdlbm5ld3MgKGZpbGVzKTogQWRkIEdDQyAzLjIgZmlsZXMuCgoyMDAyLTA3LTIyICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CgoJKiBnZW5uZXdzIChmaWxlcyk6IEFkZCBwcm9wZXIgZmlsZXMgZm9yIHRoZSBHQ0MgMy4xIHJlbGVhc2Ugc2VyaWVzLgoJU2ltcGxpZnkgYW5kIHJlZm9ybWF0IGludHJvZHVjdG9yeSB3b3JkaW5nLgoKMjAwMi0wNy0xNiAgTmF0aGFuYWVsIE5lcm9kZSAgPG5lcm9kZW5AZ2NjLmdudS5vcmc+CgoJKiBlbnF1aXJlLmM6IE1vdmUgZnJvbSBnY2MuCgoyMDAyLTA3LTE2ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGdjY191cGRhdGUgKHRvdWNoX2ZpbGVzKTogUGFzcyAtcyB0byAke01BS0V9LgoKMjAwMi0wNi0yNiAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRleGkycG9kLnBsOiBDb3JyZWN0IGhhbmRsaW5nIG9mIHRoZSBpbnRlcm5hbCBSPD4gc2VxdWVuY2UuCgoyMDAyLTA1LTMxICBGbG9yaWFuIFdlaW1lciAgPGZ3QGRlbmViLmVueW8uZGU+CgoJKiBnY2NfdXBkYXRlIChmaWxlc19hbmRfZGVwZW5kZW5jaWVzKTogQWRkIGdlbmVyYXRlZCBUZXhpbmZvIGZpbGVzCglmb3IgQWRhLgoKMjAwMi0wNS0xNiAgUmFpbmVyIE9ydGggIDxyb0BUZWNoRmFrLlVuaS1CaWVsZWZlbGQuREU+CgoJKiB0ZXN0X2luc3RhbGxlZDogQWxsb3cgZm9yIFBXRENNRCB0byBvdmVycmlkZSBoYXJkY29kZWQgcHdkLgoJKiB0ZXN0X3N1bW1hcnk6IExpa2V3aXNlLgoKMjAwMi0wNC0xOCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogZ2NjX3VwZGF0ZSAodG91Y2hfZmlsZXMpOiBEb24ndCBoYXZlIGVtcHR5IGZvciBsb29wLgoKMjAwMi0wNC0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGdjY191cGRhdGU6IFJlbW92ZSBsaWJjaGlsbC4KCjIwMDItMDMtMjUgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0ZXhpMnBvZC5wbDogSGFuZGxlIEBlbmQgZnRhYmxlIGFuZCBAZW5kIHZ0YWJsZS4KCjIwMDItMDMtMTEgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0ZXhpMnBvZC5wbDogSGFuZGxlIEBpbmNsdWRlLCBAZnRhYmxlLCBAdnRhYmxlLgoJUmVmb3JtYXQgc29tZSBjb2RlIGZvciBjbGFyaXR5LgoKMjAwMi0wMi0yNCAgQ2hyaXN0aWFuIEr2bnNzb24gIDxjLmNocmlzdGlhbi5qb2Vuc3NvbkB0ZWxpYS5jb20+CgoJKiB0ZXN0X3N1bW1hcnk6IEFkZGl0aW9uYWwgdG8gWFBBU1MgYW5kIEZBSUwsIGFkZCBVTlJFU09MVkVELAoJV0FSTklORyBhbmQgRVJST1Igb3V0cHV0IGZyb20gdGhlICouc3VtIGZpbGVzLgoKMjAwMi0wMS0yNiAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogZ2VubmV3cyAoZmlsZXMpOiBSZXBsYWNlIGdjYy0yLjk1L2djYy0yLjk1Lmh0bWwsCglnY2MtMi45NS9nY2MtMi45NS4xLmh0bWwsIGdjYy0yLjk1L2djYy0yLjk1LjIuaHRtbCwKCWFuZCBnY2MtMi45NS9nY2MtMi45NS4zLmh0bWwgYnkgZ2NjLTIuOTUvaW5kZXguaHRtbC4KCjIwMDItMDEtMTYgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGdlbm5ld3MgKGZpbGVzKTogUmVwbGFjZSBlZ2NzLTEuMS9lZ2NzLTEuMS4yLmh0bWwsCgllZ2NzLTEuMS9lZ2NzLTEuMS4xLmh0bWwsIGFuZCBlZ2NzLTEuMS9lZ2NzLTEuMS5odG1sIGJ5CgllZ2NzLTEuMS9pbmRleC5odG1sLgoKMjAwMi0wMS0wMSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogd2Fybl9zdW1tYXJ5OiBBZGQgLWFkYSBzdWJkaXJlY3RvcnkgZmxhZy4KCjIwMDEtMTItMTIgIE1hdHRoaWFzIEtsb3NlICA8ZG9rb0BkZWJpYW4ub3JnPgoKCSogdGV4aTJwb2QucGw6IE1lcmdlIGNoYW5nZXMgZnJvbSBiaW51dGlscycgdGV4aTJwb2QucGwuIEFsbG93cwoJZ2VuZXJhdGlvbiBvZiBtb3JlIHRoYW4gb25lIG1hbiBwYWdlIGZyb20gb25lIHNvdXJjZS4KCUFkZCAnLScgdG8gc2V0IG9mIHZhbGlkIGNoYXJzIGZvciBhbiBpZGVudGlmaWVyLgoJTGV0IC1EIG9wdGlvbiBhY2NlcHQgZmxhZ3Mgb2YgdGhlIGZvcm0gPGZsYWc+PTx2YWx1ZT4uCglVc2UgXHMrIGZvciB3aGl0ZXNwYWNlIGRldGVjdGlvbiBpbiAnQGMgbWFuJyBsaW5lcy4KCUhhbmRsZSBAc2V0IGFuZCBAY2xlYXIgaW5kZXBlbmRlbnQgb2YgJG91dHB1dC4KCVN1YnN0aXR1dGUgYWxsIEB2YWx1ZXt9J3MgaW4gYSBsaW5lLgoKMjAwMS0xMS0xNCAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogdGV4aTJwb2QucGw6IEhhbmRsZSBAaWZub3R0ZXgsIEBpZnRleCBhbmQgQGRpc3BsYXkuICBIYW5kbGUgQHZhcgoJaW4gdmVyYmF0aW0gYmxvY2tzIHNwZWNpYWxseS4gIEhhbmRsZSBAdW5udW1iZXJlZCwgQHVubnVtYmVyZWRzZWMKCWFuZCBAY2VudGVyLiAgQWxsb3cgW2Etel0gYWZ0ZXIgQGVudW1lcmF0ZS4gIEhhbmRsZSAwIGFuZCBudW1iZXJzCglncmVhdGVyIHRoYW4gOSBpbiBlbnVtZXJhdGlvbnMuCgoyMDAxLTExLTA3ICBMYXVyZW50IEd1ZXJieSA8Z3VlcmJ5QGFjbS5vcmc+CgoJKiBnY2NfdXBkYXRlIChmaWxlc19hbmRfZGVwZW5kZW5jaWVzKTogQWRkIEFkYSBkZXBlbmRlbmNpZXMuCgoyMDAxLTEwLTA4ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBzbmFwc2hvdDogUmVtb3ZlLgoKMjAwMS0wOS0wNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCVJldmVydDoKCSogZ2NjX3VwZGF0ZTogKGZpbGVzX2FuZF9kZXBlbmRlbmNpZXMpIEFkZCBnY2MvamF2YS9wYXJzZS5jCglnY2MvamF2YS9wYXJzZS1zY2FuLmMgYW5kIGdjYy9qYXZhL2tleXdvcmQuaCB0byBsaXN0IG9mIGZpbGVzIHRvCgl0b3VjaC4KCjIwMDEtMDktMDQgIERhdmlkLkJpbGxpbmdodXJzdCA8RGF2aWQuQmlsbGluZ2h1cnN0QHJpb3RpbnRvLmNvbT4KCgkqIGdjY191cGRhdGU6IChmaWxlc19hbmRfZGVwZW5kZW5jaWVzKSBBZGQgZ2NjL2phdmEvcGFyc2UuYwoJZ2NjL2phdmEvcGFyc2Utc2Nhbi5jIGFuZCBnY2MvamF2YS9rZXl3b3JkLmggdG8gbGlzdCBvZiBmaWxlcyB0bwoJdG91Y2guCgpNb24gQXVnIDEzIDAyOjI5OjA4IENFU1QgMjAwMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogYW5hbHl6ZV9icnByb2I6IFVwZGF0ZSBmb3IgY2hhbmdlcyBpbiBnY2MgZGVidWcgb3V0cHV0LgoKU2F0IEp1bCAyOCAyMjozNzo0OSBDRVNUIDIwMDEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGFuYWx5emVfYnJwcm9iOiBBdm9pZCBtb3JlIG92ZXJmbG93cy4KCjIwMDEtMDctMjcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0ZXN0X3N1bW1hcnk6IENvcHkgTEFTVF9VUERBVEVEIFVUQyB0aW1lIHRvIGhlYWQgb2Ygc3VtbWFyeS4KCkZyaSBKdWwgMjcgMTg6MDE6MjEgQ0VTVCAyMDAxICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBhbmFseXplX2JycHJvYjogQXZvaWQgb3ZlcmZsb3dzLgoKMjAwMS0wNy0yNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGdjY191cGRhdGU6IER1bXAgdGltZXN0YW1wIGluIExBU1RfVVBEQVRFRC4KCjIwMDEtMDctMjYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4sCgkgICAgSGFucy1QZXRlciBOaWxzc29uIDxocEBiaXRyYW5nZS5jb20+CgoJKiBhbmFseXplX2JycHJvYjogRml4IGRvY3VtZW50YXRpb24uCgpNb24gSnVsIDIzIDE1OjQ3OjE5IENFU1QgMjAwMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogYW5hbHl6ZV9icnByb2I6IEZpeCBhd2sgY29tcGF0aWJpbGl0eSBwcm9ibGVtczsgdXBkYXRlIGNvbW1lbnQuCgoyMDAxLTA3LTIzICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBhbmFseXplX2JycHJvYjogRml4IG1vcmUgdHlwb3MuCgoyMDAxLTA3LTIzICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBhbmFseXplX2JycHJvYjogRml4IHR5cG9zLgoKMjAwMS0wNy0wMyAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogdGV4aTJwb2QucGw6IEhhbmRsZSBAciBpbnNpZGUgQGl0ZW0uCgoyMDAxLTA3LTAyICBaYWNrIFdlaW5iZXJnICA8emFja3dAc3RhbmZvcmQuZWR1PgoKCSogZ2NjX3VwZGF0ZTogUmVtb3ZlIGVudHJpZXMgZm9yIGdjYy4xLCBjcHAuMSwgZ2Nvdi4xLgoKMjAwMS0wNy0wMSAgWm9sdGFuIEZlbGxlZyA8emZlbGxlZ0B0ZWxuZXQuaHU+CgoJKiB3YXJuX3N1bW1hcnk6IEZpeCB0eXBvIGluIGEgY29tbWVudC4KCjIwMDEtMDYtMTQgIEFsYmVydCBDaGluLUEtWW91bmcgIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+CgoJKiBjb250cmliL2djY191cGRhdGU6IEZpeCB0aW1lc3RhbXAgb24gZ2NjL2YvaW50ZG9jLnRleGkuCgoyMDAxLTA2LTEzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2VubmV3czogU2V0IFRFUk0gdG8gdnQxMDAgZm9yIEx5bnguCgoyMDAxLTA2LTEzICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CgoJKiByZWxlYXNlOiBSZW1vdmUuCgpUdWUgSnVuIDEyIDEyOjIxOjQwIENFU1QgMjAwMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogYW5hbHl6ZV9icnByb2I6IE5ldyBmaWxlLgoKMjAwMS0wNi0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdjY19idWlsZDogT3V0cHV0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21tYW5kcyB1c2VkIHRvCgljb25maWd1cmUgdGhlIGNvbXBpbGVyLgoKMjAwMS0wNi0wNyAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ2VubmV3czogVXBkYXRlIGZvciBHQ0MgMy4wLgoKMjAwMS0wNi0wMiAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ2NjX3VwZGF0ZTogVXBkYXRlIGZvciBtb3ZlIG9mIGRvY3VtZW50YXRpb24gdG8gZ2NjL2RvYy4KCjIwMDEtMDUtMjggIFJhaW5lciBPcnRoICA8cm9AVGVjaEZhay5VbmktQmllbGVmZWxkLkRFPgoKCSogY29udHJpYi90ZXN0X3N1bW1hcnkgKGZpbGVzKTogU29ydCBiZWZvcmUgZXZhbHVhdGluZy4KCjIwMDEtMDUtMjMgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGdjY191cGRhdGUgKFVQREFURV9PUFRJT05TKTogQWRkIC1kIHRvIHRoZSBkZWZhdWx0IHNldHRpbmdzLgoKMjAwMS0wNS0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdjY19idWlsZDogVXNlIC1kIHdoZW4gaW52b2tpbmcgZ2NjX3VwZGF0ZS4KCjIwMDEtMDUtMTggIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGdjY191cGRhdGU6IEFkZCBydWxlcyBmb3IgbGliZjJjL2xpYkk3Ny4KCjIwMDEtMDUtMTcgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZ2NjX3VwZGF0ZSAodG91Y2hfZmlsZXMpOiBVc2Ugc2ltcGxlciwgeWV0IGFzIHBvcnRhYmxlLCBzeW50YXguCgoyMDAxLTA1LTE0ICBMb3JlbiBKLiBSaXR0bGUgIDxsanJpdHRsZUBhY20ub3JnPgoKCSogZ2NjX3VwZGF0ZSAodG91Y2hfZmlsZXMpOiBFbmhhbmNlIG1ha2UgcG9ydGFiaWxpdHkuCgoyMDAxLTA1LTE0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGdjY191cGRhdGUgKHRvdWNoX2ZpbGVzKTogVXNlIGEgTWFrZWZpbGUgdG8gdG91Y2ggZmlsZXMuCgoyMDAxLTA1LTAzICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogQWRkIGNvcHlyaWdodCBhbmQgR1BMIG5vdGljZXMuCgoyMDAxLTAxLTI0ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogSGFuZGxlICJcLCIuCgoyMDAxLTAxLTE1ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogRml4IHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgQHIgdG8gYXZvaWQgZXhwb25lbnRpYWwKCXJlY3Vyc2lvbi4gIEZyb20gUnVzcyBBbGxiZXJ5IDxycmFAc3RhbmZvcmQuZWR1Pi4gIFJlbW92ZSBwZXJsCgl2ZXJzaW9uIGNoZWNrLgoKMjAwMS0wMS0xNSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogd2Fybl9zdW1tYXJ5IChzdGFnZU5maWx0ZXIpOiBVcGRhdGUgZm9yIHJlY2VudCBjaGFuZ2VzIGluCglib290c3RyYXAgbG9naWMuCgoyMDAxLTAxLTE0ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogUmVxdWlyZSBhdCBsZWFzdCBwZXJsIDUuNi4wLgoKMjAwMS0wMS0xMyAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ2NjX3VwZGF0ZTogQWRkIGdjYy9nY2MuMSB0byBnZW5lcmF0ZWQgZmlsZXMuCgkqIHRleGkycG9kLnBsOiBIYW5kbGUgQHIgYW5kIEBnY2NvcHRsaXN0LiAgSGFuZGxlIEBnb2wuICBIYW5kbGUKCWRpc2NhcmRpbmcgdG8gZW5kIG9mIHNlbnRlbmNlIHdpdGggQHhyZWYgd2hlcmUgdGhlIHNlbnRlbmNlIGhhcyBhbgoJaW50ZXJpb3IgIi4iIGluIG1hcmt1cCwgYW5kIGhhbmRsZSBkaXNjYXJkaW5nIHBhcmVudGhlc2VzIGFyb3VuZAoJc3VjaCBhIHNlbnRlbmNlLgoKMjAwMS0wMS0xMSAgQmVybmQgU2NobWlkdCAgPGJlcm5kc0ByZWRoYXQuY29tPgoKCSogZ2VubmV3czogQWRkIGdjYy0yLjk1LjMuCgoyMDAxLTAxLTEwICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogSGFuZGxlIEBnY2N0YWJvcHQgYW5kIEBlbnYgaW4gdGFibGVzLiAgSGFuZGxlCglAY29tbWFuZC4gIEZvcm1hdCBVUkxzIGFuZCBlbWFpbCBhZGRyZXNzZXMgaW4gYm9sZC4KCjIwMDEtMDEtMDMgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGdjY191cGRhdGU6IEFkZCBjcHAuMSB0byB0aGUgbGlzdCBvZiBnZW5lcmF0ZWQgZmlsZXMuCgoJKiB0ZXhpMnBvZC5wbDogSGFuZGxlIEBvcHRpb24gYW5kIEBlbnYuCgoyMDAxLTAxLTAzICBNaWtlIFN0dW1wICA8bXJzQHdycy5jb20+CgoJKiBzbmFwc2hvdDogVXBkYXRlIHRvIGFjY291bnQgZm9yIGphdmEgbGlicmFyaWVzLgoKMjAwMC0xMi0yOCAgSmVmZnJleSBPbGRoYW0gIDxvbGRoYW1AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRlc3Rfc3VtbWFyeTogRXhwb3J0IGZpbGVzdWZmaXgsIG5vdCBmaWxlcHJlZml4LgoKMjAwMC0xMi0yMiAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogcmVsZWFzZTogQ2hhbmdlIHNvbWUgRUdDUyByZWZlcmVuY2VzIHRvIEdDQy4KCjIwMDAtMTItMTQgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIHdhcm5fc3VtbWFyeTogRml4IHN1YmRpcmVjdG9yeSBmaWx0ZXJpbmcuICBBZGQgLWludGwgYW5kIC1maXhpbmMKCXN1YmRpcmVjdG9yeSBmbGFncy4gIEFkZCBzb3VyY2UgZGlyZWN0b3J5IHByZWZpeCBmaWx0ZXJpbmcuCglSZWRpcmVjdCBkaWFnbm9zdGljIG91dHB1dCB0byBzdGRlcnIuCgoyMDAwLTEyLTA3ICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuc3RhbmZvcmQuZWR1PgoKCSogdGV4aTJwb2QucGw6IElmIG11bHRpcGxlIEBjIG1hbiBzZWN0aW9ucyB3aXRoIHRoZSBzYW1lIHRhZwoJYXBwZWFyLCBjb25jYXRlbmF0ZSB0aGVtIGluIHRoZSBmaW5hbCBvdXRwdXQuICBXaGVuIHNraXBwaW5nLAoJaWdub3JlIGJsb2NrIGNvbW1hbmRzIHRoYXQgY2FuJ3QgY2F1c2Ugc2tpcHBpbmcsIGFuZCBob25vcgoJdGhvc2UgdGhhdCBjYW4uICBFbnN1cmUgdGhhdCB2ZXJiYXRpbSBibG9ja3MgYXJlIHNlcGFyYXRlCglwYXJhZ3JhcGhzLgoKMjAwMC0xMi0wNyAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ2NjX3VwZGF0ZTogRG9uJ3QgdG91Y2ggdHJhZGNpZi5jIG9yIGphdmEvcGFyc2UuaC4KCjIwMDAtMTItMDUgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5zdGFuZm9yZC5lZHU+CgoJKiB0ZXhpMnBvZC5wbDogUmVzdHJ1Y3R1cmUgZm9yIGNvbXByZWhlbnNpYmlsaXR5LCBhZGQKCWNvbW1lbnRzLiAgTWVyZ2UgaGFuZGxpbmcgb2YgQGlnbm9yZSBhbmQgQGlmeHh4LiAgSGFuZGxlIGEKCXdob2xlIGJ1bmNoIG1vcmUgVGV4aW5mbyBjb21tYW5kcy4gIFVzZSBjb25zaXN0ZW50IGZvcm1hdHRpbmcKCXN0eWxlLgoKMjAwMC0xMi0wNCAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ2VubmV3czogTmV3IHNjcmlwdC4KCjIwMDAtMTEtMjIgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGdjY191cGRhdGU6IFVwZGF0ZSBhIGNvbW1lbnQgYXMgd2Ugbm93IHJlcXVpcmUgYmlzb24gZm9yIENWUyB1c2Vycy4KCjIwMDAtMTEtMjIgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGdjY191cGRhdGU6IEFkZCBnY292LjEgdG8gdGhlIGxpc3Qgb2YgZ2VuZXJhdGVkIGZpbGVzLgoKMjAwMC0xMS0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdjY19idWlsZDogUmVtb3ZlIGNvZGUgdG8gcHV0IGluZm9ybWF0aW9uIGluIGEgbG9nIGZpbGUuCgoyMDAwLTExLTE5ICBaYWNrIFdlaW5iZXJnICA8emFja3dAc3RhbmZvcmQuZWR1PgoKCSogdGV4aTJwb2QucGw6CgkgIC0gQWRkIHJlYWwgY29tbWFuZCBsaW5lIHBhcnNpbmcuCgkgIC0gU3VwcG9ydCBAaWZzZXQsIEBpZmNsZWFyLCBAc2V0LCBAdmFsdWUsIC1EIHN3aXRjaC4KCSAgLSBTdXBwb3J0IEBzYy4gIEltcHJvdmUgaGFuZGxpbmcgb2YgQHJlZiBhbmQgZnJpZW5kcy4KCSAgLSBEaXNjYXJkIEBzdWJzZWN0aW9uLCBAbmVlZCwgQG5vZGUgbGluZXMuCgkgIC0gVW4tbmVzdCBmb250IGNoYW5nZXMgdG8gbWF0Y2ggdGV4aW5mbyBzZW1hbnRpY3MuCgkgIC0gSGFuZGxlIEB7IGFuZCBAfS4gIE9vcHMuCgkgIC0gRG9uJ3QgZW1pdCBFPD4gZGlyZWN0aXZlcyBpbnNpZGUgdmVyYmF0aW0gYmxvY2tzLgoKMjAwMC0xMS0xMiAgQnJ1Y2UgS29yYiAgPGJrb3JiQGdudS5vcmc+CgoJKiByZWxlYXNlOiBnZW5lcmFsaXplIHRoZSByZWxlYXNlIHNjcmlwdCBhIGJpdC4KClNhdCBOb3YgMTEgMTc6Mjk6MDMgMjAwMCAgTWFyayBQIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2NjX2J1aWxkOiBBZGQgLW8gb3B0aW9uIGZvciBzZXR0aW5nIHRoZSBvYmpkaXIgdG8gdXNlLgoKMjAwMC0xMS0xMSAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4sCgoJKiByZWxlYXNlOiBOZXcgZmlsZS4KCjIwMDAtMTEtMDggIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+LAoJICAgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIHNuYXBzaG90OiBOZXcgZmlsZS4KCjIwMDAtMTEtMDggIEplZmZyZXkgT2xkaGFtICA8b2xkaGFtQG96LmNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2NfYnVpbGQgKGJvb3RzdHJhcF9nY2MpOiBOZXcgZnVuY3Rpb24uCgkoY29uZmlndXJlX2djYyk6IExpa2V3aXNlLgoJKGJ1aWxkX2djYyk6IFJld3JpdHRlbiB0byB1c2UgY29uZmlndXJlIGFuZCBib290c3RyYXAuCgkoTUFLRV9CT09UU1RSQVBfT1BUSU9OUyk6IFJlcGxhY2VkIE1BS0VfT1BUSU9OUy4KCjIwMDAtMTAtMzEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2NfYnVpbGQgKE1BS0UpOiBOZXcgdmFyaWFibGUuCgkoYnVpbGRfZ2NjKTogVXNlIGl0LiAgRml4IGxvZ2dpbmcgb2YgZXJyb3JzLgoJKGluc3RhbGxfZ2NjKTogTGlrZXdpc2UuCgoyMDAwLTEwLTI5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2NjX2J1aWxkOiBTYXZlIHRoZSBvdXRwdXQgZnJvbSBDVlMgaW50byB0aGUgbG9nZmlsZSBhcyB3ZWxsLgoKMjAwMC0xMC0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdjY19idWlsZDogRml4IHR5cG9zLgoKMjAwMC0xMC0xNCAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ3BlcmYtMi43LTE5OTgxMDA2LnBhdDogUmVtb3ZlLgoKMjAwMC0xMC0wOCAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogdGVzdF9pbnN0YWxsZWQ6IENoYW5nZSBFR0NTIHJlZmVyZW5jZXMgdG8gcmVmZXIgdG8gR0NDLgoKMjAwMC0wOS0yOCAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogZ2NjX3VwZGF0ZSAodG91Y2hfZmlsZXMpOiBBZGQgc29tZSBpbmZvcm1hdGl2ZSBvdXRwdXQuCgoyMDAwLTA5LTE2ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBnY2NfdXBkYXRlOiBSZW1vdmUgZ2NjL2MtcGFyc2UuZ3BlcmYuCgoyMDAwLTA4LTMwICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+LAoJICAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZ2NjX3VwZGF0ZTogRXhlY3V0ZSB0b3VjaF9maWxlc19yZWV4ZWMgZXZlbiBpZiBgY3ZzIHVwZGF0ZWAKCWZhaWxlZC4KCjIwMDAtMDgtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogdGVzdF9zdW1tYXJ5OiBBV0sgYnJlYWtzIHdpdGggZmlsZW5hbWVzIGNvbnRhaW5pbmcgYD0nLgoKU3VuIEp1bCAxNiAxMjowNDozMyAyMDAwICBNYXJrIFAgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2NfYnVpbGQ6IE5ldyBzY3JpcHQuCgoyMDAwLTA3LTEzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2NjX3VwZGF0ZSAoZmlsZXNfYW5kX2RlcGVuZGVuY2llcyk6IFJlbW92ZSBnZW5lcmF0ZWQgWUFDQyBmaWxlcy4KCjIwMDAtMDctMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2NfdXBkYXRlIChmaWxlc19hbmRfZGVwZW5kZW5jaWVzKTogUmVtb3ZlIGdlbmVyYXRlZCBZQUNDIGZpbGVzLgoKMjAwMC0wNi0wNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG5ld2N2c3Jvb3Q6IEhhbmRsZSBmaWxlbmFtZXMgdGhhdCBjb250YWluIHNwYWNlcy4KCjIwMDAtMDYtMDMgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIHRlc3Rfc3VtbWFyeTogSW4gZ2VuZXJhdGVkIHNjcmlwdCwgdXNlIGNhdCA8PCdFT0YnIG5vdCBjYXQgPDxcRU9GLgoJRWxpZGUgLS13aXRoLWdjYy12ZXJzaW9uLXRyaWdnZXIgYW5kIC0tbm9yZWN1cnNpb24gZnJvbQoJY29uZmlndXJlIGZsYWdzLiAgUmVtb3ZlIGNvZGUgdG8gcmVwb3J0IHN0YXR1cyBvZiBoYWlmYSBzY2hlZHVsZXIuCgoyMDAwLTA1LTE4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAY3lnbnVzLmNvbT4KCgkqIGdjY191cGRhdGUgKHNlbGYpOiBTZXQgdG8gYCQwJy4KCSh0b3VjaF9maWxlc19yZWV4ZWMpOiBVc2UgYCRzZWxmJyBpbnN0ZWFkIG9mIGAkMCcuCgoyMDAwLTA1LTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAY3lnbnVzLmNvbT4KCgkqIGdjY191cGRhdGUgKHRvdWNoX2ZpbGVzX3JlZXhlYyk6IE5ldyBmdW5jdGlvbiwgcnVuIGFmdGVyIHRoZQoJdHJlZSBpcyBtb2RpZmllZC4KCjIwMDAtMDUtMDggIFJpY2hhcmQgSGVuZGVzb24gIDxydGhAY3lnbnVzLmNvbT4KCgkqIGdjY191cGRhdGU6IFJlbW92ZSByZWZlcmVuY2VzIHRvIGluY2xoYWNrLnRwbC4KCjIwMDAtMDQtMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogaW5kZXgtcHJvcDogVXNlIGEgc2luZ2xlIHBhdHRlcm4uICBBbHNvIHN1cHBvcnQgKioqIGNkaWZmcy4KCjIwMDAtMDQtMjggIFBhdmVsIFJvc2tpbiA8cGF2ZWxfcm9za2luQGdlb2NpdGllcy5jb20+CgoJKiBpbmRleC1wcm9wOiBEb24ndCBjaGFuZ2UgL2Rldi9udWxsLgoKMjAwMC0wNC0yNyAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogZ2NjX3VwZGF0ZTogUmVmZXIgdG8gR0NDIGFuZCBnY2NfdXBkYXRlIGluc3RlYWQgb2YgZWdjcyBhbmQKCWVnY3NfdXBkYXRlLgoKMjAwMC0wNC0yNiAgSm9uYXRoYW4gTGFybW91ciAgPGpsYXJtb3VyQHJlZGhhdC5jby51az4KCgkqIGluZGV4LXByb3A6IEZpeCBvY2Nhc2lvbmFsIHByb2JsZW0gd2hlbiB1c2luZyBjdnMgZGlmZiAtcC4KCjIwMDAtMDQtMTggIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGdjY191cGRhdGU6IFJlbW92ZSByZWZlcmVuY2VzIHRvIGNleHAuYy9jZXhwLnkuCgoxOTk5LTEyLTE4ICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CgoJKiBuZXdjdnNyb290OiBBZGQgY2hlY2sgb24gdGhlIG51bWJlciBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzLgoJQWRkIHVzYWdlLgoKU3VuIE5vdiAyOCAwMDo0MTo0NCAxOTk5ICBXaWxsaWFtIEJhZGVyICh3aWxsaWFtQG5zY3MuZmFzdC5uZXQpCgoJKiBnY2NfdXBkYXRlOiBBbGxvdyBwYXRjaGVzIGNvbXByZXNzZWQgYnkgYnppcDIuCgoxOTk5LTEwLTExICBNYXJ0aW4gdi4gTPZ3aXMgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIG5ld2N2c3Jvb3Q6IE5ldyBmaWxlLgoKMTk5OS0wOS0xMSAgQ3JhaWcgQnVybGV5ICA8Y3JhaWdAamNiLXNjLmNvbT4KCgkqIGNvbnZlcnRfdG9fZjJjLCBjb252ZXJ0X3RvX2cyYywgZG93bmxvYWRfZjJjOiBOZXcgZmlsZS4KCjE5OTktMDgtMTYgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGdjY191cGRhdGU6IE5ldyBmaWxlLgoJKiBlZ2NzX3VwZGF0ZTogUmVuYW1lZCB0byBnY2NfdXBkYXRlLgoKMTk5OS0wOC0wOSAgUm9iZXJ0IExpcGUgIDxyb2JlcnRsaXBlQHVzYS5uZXQ+CgoJKiB0ZXN0X3N1bW1hcnk6IFF1b3RlIGN1cmx5IGJyYWNlcyBpbiAxOTk5LTA3LTAzIGNoYW5nZS4KCjE5OTktMDctMjggIEFsZXhhbmRyZSBPbGl2YSAgPG9saXZhQGRjYy51bmljYW1wLmJyPgoKCSogZWdjc191cGRhdGUgKGZpbGVzX2FuZF9kZXBlbmRlbmNpZXMpOiBGaXhlZCB0eXBvIGluCglnY2MvY3N0YW1wLWguaW4uICBBZGRlZCBnY2MvY29uZmlnLmluLgoKMTk5OS0wNy0yNyAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiBlZ2NzX3VwZGF0ZSAoZmlsZXNfYW5kX2RlcGVuZGVuY2llcyk6IE5ldyBmdW5jdGlvbiwgd2l0aAoJY29tcGxldGUgbGlzdCBvZiBmaWxlcyB0byBiZSB1cGRhdGVkLCBhcyB3ZWxsIGFzIHRoZWlyCglkZXBlbmRlbmNpZXMuCgkodG91Y2hfZmlsZXMpOiBDaGVjayB0aGUgdGltZXN0YW1wIG9mIGVhY2ggZ2VuZXJhdGVkIGZpbGUgYWdhaW5zdAoJaXRzIGRlcGVuZGVuY2llcycuCgkobWFpbik6IE5ldyBmbGFncyAtLXRvdWNoLCAtLWxpc3QgYW5kIC0taGVscC4gIFJlbW92ZSB0aGUKCXByZS11cGRhdGUgc3RlcC4KCjE5OTktMDctMTcgIEFsZXhhbmRyZSBPbGl2YSAgPG9saXZhQGRjYy51bmljYW1wLmJyPgoKCSogdGVzdF9zdW1tYXJ5OiBSZXBsYWNlIGVnY3Mgd2l0aCBnY2MuICBVcGRhdGUgZS1tYWlsIGFkZHJlc3MuCgoxOTk5LTA3LTA1ICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CgkgICAgSmVycnkgUXVpbm4gPGpxdWlubkBub3J0ZWxuZXR3b3Jrcy5jb20+CgoJKiBlZ2NzX3VwZGF0ZSAodG91Y2hfZmlsZXMsIGFwcGx5X3BhdGNoKTogTmV3IGZ1bmN0aW9ucy4KCVVzZSB0aGVtLiAgTmV3IGNvbW1hbmQtbGluZSBvcHRpb24gLS1wYXRjaC4gIFNwbGl0IHRlc3Qgb2YgbG9jYWwKCXRyZWUgaW50byB0d28gcGFydHMuICBBZGQgY29tbWVudHMuCgoxOTk5LTA3LTAzICBBbGV4YW5kcmUgT2xpdmEgIDxvbGl2YUBkY2MudW5pY2FtcC5icj4KCgkqIHRlc3Rfc3VtbWFyeTogSWYgVGFyZ2V0IGlzIGB1bml4eyp9JywgYXBwZW5kIHRoZSBUYXJnZXQgdmFyaWFudHMKCXRvIEhvc3QuCgoxOTk5LTA2LTEyICBBbGV4YW5kcmUgT2xpdmEgIDxvbGl2YUBkY2MudW5pY2FtcC5icj4KCgkqIHRlc3Rfc3VtbWFyeTogU2V0IGRlZmF1bHQgbWFpbC1hZGRyZXNzIGFuZCB2ZXJzaW9uIGZvciBlZ2NzCglpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdW5wcmVkaWN0YWJsZSBwYXRobmFtZXMuCglSZXBvcnRlZCBieSBBbmRyZWFzIEphZWdlciA8YWpAYXJ0aHVyLnJoZWluLW5lY2thci5kZT4KCkZyaSBBcHIgIDIgMTY6MDk6MDIgMTk5OSAgSmVmZnJleSBBIExhdyAgKGxhd0BjeWdudXMuY29tKQoKCSogZml4aW5jLyo6IERlbGV0ZSBvYnNvbGV0ZSBmaWxlcy4KCjE5OTktMDItMDQgIFJvYmVydCBMaXBlICA8cm9iZXJ0bGlwZUB1c2EubmV0PgoKCSogZWdjc191cGRhdGU6IFRlc3QgcmV0dXJuIHZhbHVlcyBvZiAnY3ZzIHVwZGF0ZScuICBQcm9wb2dhdGUKCXRvIGNhbGxlciBhcyBleGl0IHZhbHVlcy4KCjE5OTktMDEtMjUgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGVnY3NfdXBkYXRlOiBVc2UgImlmIiBpbnN0ZWFkIG9mICImJiIuICBUb3VjaCBnZW5lcmF0ZWQgZmlsZXMKCW9ubHkgYWZ0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgKi55IGZpbGVzLgoKMTk5OS0wMS0xOSAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogZWdjc191cGRhdGU6IERvIG5vdCB1c2UgeGFyZ3MsIGJ1dCBhIGJhY2txdW90ZSBjb25zdHJ1Y3QuCgoxOTk5LTAxLTA3ICBBbGV4YW5kcmUgT2xpdmEgIDxvbGl2YUBkY2MudW5pY2FtcC5icj4KCgkqIHRlc3Rfc3VtbWFyeSAodmVyc2lvbik6IFJlbW92ZSBjYXJyaWFnZSByZXR1cm4gdGhhdCBnYXdrIGluc2VydHMKCWluIHRoZSB2ZXJzaW9uIHN0cmluZyBmb3Igc29tZSByZWFzb24uCgoxOTk4LTExLTMwICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CgoJKiBlZ2NzX3VwZGF0ZTogT25seSB0b3VjaCBmaWxlcyB0aGF0IGFscmVhZHkgZXhpc3QuCgoxOTk4LTExLTI5ICBBbGV4YW5kcmUgT2xpdmEgIDxvbGl2YUBkY2MudW5pY2FtcC5icj4KCgkqIHRlc3Rfc3VtbWFyeSAoRU9GKTogUmVtb3ZlIGRvdWJsZSBiYWNrc2xhc2guCglSZXBvcnRlZCBieSBGcmFueiBTaXJsIDxGcmFuei5TaXJsLWtlcm5lbEBsYXV0ZXJiYWNoLmNvbT4KCjE5OTgtMTEtMjggIEFsZXhhbmRyZSBPbGl2YSAgPG9saXZhQGRjYy51bmljYW1wLmJyPgoKCSogdGVzdF9zdW1tYXJ5IChhZGRyZXNzKTogU2V0IHRvIGVnY3MtdGVzdHJlc3VsdHMgbWFpbGluZyBsaXN0LgoKMTk5OC0xMS0yNyAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiB0ZXN0X3N1bW1hcnkgKGFkZHJlc3MpOiBBZGRlZCBNYXJjIExlaG1hbm4ncyB0ZXN0c3VpdGUtcmVzdWx0cwoJdG8gdGhlIGRlZmF1bHQgZS1tYWlsIGFkZHJlc3MuCgoxOTk4LTExLTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxvbGl2YUBkY2MudW5pY2FtcC5icj4KCgkqIHRlc3Rfc3VtbWFyeSAoLXAsIHByZXBlbmRfbG9ncyk6IEFkZCB0aGVzZSBiZWZvcmUgdGhlIHN1bW1hcnkuCgkoQ29tcGlsZXIsIFBsYXRmb3JtKTogUHJpbnQgdGhlc2UganVzdCBiZWZvcmUgY29uZmlnZmxhZ3MuCgpTYXQgT2N0IDMxIDEwOjUzOjQwIDE5OTggIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIHdhcm5fc3VtbWFyeSAobG9uZ0xpbmVGaWx0ZXIpOiBOZXcgc2hlbGwgZnVuY3Rpb24gdG8gZW5jYXBzdWxhdGUKCXRoaXMgZnVuY3Rpb25hbGl0eS4gIEl0IGlzIG9mZiBieSBkZWZhdWx0LCBvbmx5IGFjdGl2ZSBpZiAtbGxmCglmbGFnIGlzIHNwZWNpZmllZC4KCShzdWJkaXJlY3RvcnlGaWx0ZXIpOiBGaXggYnVnIGluIGZpbHRlcmluZyB3aGljaCBtYWRlIHNvbWUKCXN1YmRpcmVjdG9yeSB3YXJuaW5ncyBlcnJvbmVvdXNseSBhcHBlYXIgaW4gdGhlIHRvcGxldmVsIHNldC4KCShzdGFnZU5maWx0ZXIpOiBSZW5hbWVkIGZyb20gYHN0YWdlTndhcm5zJy4gIFVwZGF0ZWQgdG8gY29sbGVjdAoJd2FybmluZ3MgZnJvbSBzdGFnZTEgYXMgd2VsbCBhcyBzdGFnZTAsIHdoaWNoIG1lYW5zIHdhcm5pbmdzIGZyb20KCW91dHNpZGUgdGhlIGJvb3RzdHJhcCBkaXJlY3RvcnkuICBFZywgdGhlIGxpYnJhcmllcywgZXRjLgoJKHdhcm5pbmdGaWx0ZXIpOiBOZXcgc2hlbGwgZnVuY3Rpb24gdG8gZW5jYXBzdWxhdGUgdGhpcwoJZnVuY3Rpb25hbGl0eS4KCShrZXl3b3JkRmlsdGVyKTogTmV3IHNoZWxsIGZ1bmN0aW9uIHRvIGVuY2Fwc3VsYXRlIHRoaXMKCWZ1bmN0aW9uYWxpdHkuCgoJU3RvcmUgZGF0YSBpbiBhIHRlbXAgZmlsZSByYXRoZXIgdGhhbiBjYWxjdWxhdGluZyBpdCAzeC4gIEFycmFuZ2UKCXRvIHJlbW92ZSBpdCBvbiBleGl0IGFuZCBzaWduYWxzLgoKCUFkZCAtcGFzcy8td3Bhc3MgZmxhZ3MgdG8gZG8gInBhc3MgdGhyb3VnaCIgKGkuZS4gbWFudWFsCglpbnNwZWN0aW9uKSBvZiBib290c3RyYXAgb3V0cHV0IGZyb20gYSBwYXJ0aWN1bGFyIHN0YWdlTiBhcyB3ZWxsCglhcyBsYW5ndWFnZSBzdWJkaXJzLgoKCUFkZCBiZXR0ZXIgY29tbWVudHMvZG9jdW1lbnRhdGlvbi4KClNhdCBPY3QgMzEgMTY6Mzk6MzEgMTk5OCAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogZWdjc191cGRhdGU6IEFkZCBjb21tZW50IGFib3V0IGtlZXBpbmcgdGhlIEZBUSBzeW5jaHJvbml6ZWQuCgpGcmkgT2N0IDMwIDAwOjM5OjI3IDE5OTggIEplZmZyZXkgQSBMYXcgIChsYXdAY3lnbnVzLmNvbSkKCgkqIGVnY3NfdXBkYXRlOiBEbyB0b3VjaCBqYXZhL3BhcnNlLmMgYW5kIGphdmEvcGFyc2Utc2Nhbi5jLiBUaGV5J3JlCglpbiB0aGUgcmVwbyBhZ2Fpbi4KCkZyaSBPY3QgMTYgMDc6MzU6MDAgMTk5OCAgQnJ1Y2UgS29yYiA8a29yYkBkYXRhZGVzaWduLmNvbT4KCgkqIGVnY3NfdXBkYXRlOiAgQWRkZWQgZ2NjL2ZpeGluYy8qIGdlbmVyYXRlZCBmaWxlcyB0byB0b3VjaCBsaXN0LgoKVHVlIE9jdCAxMyAyMzoyODozMyAxOTk4ICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiBlZ2NzX3VwZGF0ZTogUmVtb3ZlIGdjYy9qYXZhL3BhcnNlLmMgZnJvbSBsaXN0IG9mIGZpbGVzIHRvCgl0b3VjaC4KCldlZCBPY3QgIDcgMTM6MDA6NDAgMTk5OCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogZ3BlcmYtMi43LTE5OTgxMDA2LnBhdDogTmV3IGZpbGUsIHBhdGNoIGZvciBlZ2NzLWxvY2FsIGdwZXJmLgoKTW9uIE9jdCAgNSAxNDoxOTo0OCAxOTk4ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiB3YXJuX3N1bW1hcnkgKHN1YmRpcmVjdG9yeUZpbHRlcik6IE5ldyBzaGVsbCBmdW5jdGlvbiB0bwoJb3B0aW9uYWxseSBmaWx0ZXIgaW4vb3V0IGdjYyBzdWJkaXJlY3RvcmllcyB3aGVuIHN1bW1hcml6aW5nCgl3YXJuaW5ncy4gIEFkZCBuZXcgZmxhZ3MgdG8gc3VwcG9ydCBzdWJkaXJlY3RvcnkgZmlsdGVyaW5nLgoKCUFsc28sIGVuc3VyZSB0aGUgYm9vdHN0cmFwIHN0YWdlIGlzIGEgbnVtYmVyLiAgQWRkIHNvbWUgbW9yZSBDCglrZXl3b3JkcyB0aGF0IGFyZSBwcmVzZXJ2ZWQgaW4gdGhlICJ3YXJuaW5nIHR5cGUiIHN1bW1hcnkgYW5kCgl0aWdodGVuIHVwIHRoZSAiYXJnID8/PyIgcmVnZXhwLgoKVHVlIFNlcCAyMiAwNzozMCBCcnVjZSBLb3JiIDxrb3JiQGRhdGFkZXNpZ24uY29tPgoKCSogZml4aW5jL2luY2xoYWNrLmRlZjogIE5vdCBhbGwgQysrIGNvbW1lbnRzIGluIEMgaGVhZGVycwoJd2VyZSB0cmVhdGVkIGFsaWtlLiAgVGhleSBhcmUgbm93LiAgQWxzbyBmaXhlZCBzeW50YXgKCW9mIHNlZCBleHByZXNzaW9uIGluICJzeXN0eXBlcyIgZml4LgoKCSogZml4aW5jL2luY2xoYWNrLmRlZjogIFJlbW92ZWQgU1ZSNC4yLWlzbSBmcm9tIHNoZWxsIGludm9jYXRpb24KCgkqIGVnY3NfdXBkYXRlOiAgQWRkZWQgZml4aW5jLyogZ2VuZXJhdGVkIGZpbGVzIHRvIHRvdWNoIGxpc3QuCgpXZWQgU2VwIDE2IDE2OjA2OjUxIDE5OTggIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGVnY3NfdXBkYXRlOiBBZGRpdGlvbmFsbHkgdG91Y2ggZ2NjL2phdmEvcGFyc2UuW2NoXS4KClRodSBTZXAgIDkgMTY6NDggQnJ1Y2UgS29yYiA8a29yYkBkYXRhZGVzaWduLmNvbT4KCgkqIGZpeGluYy9pbmNsaGFjay5kZWY6ICBBZGRlZCB0d28gZmlsZXMgcmVxdWlyZWQgYnkKCVNDTydzIE9wZW4gU2VydmVyIDUncyBhdm9pZF9ib29sIGZpeC4KCVJlZ2VuZXJhdGVkIGZpeGluYy54IGFuZCBpbmNsaGFjay5zaCB0byBpbmNvcnBvcmF0ZQoJdGhlIHVwZGF0ZS4KClRodSBTZXAgIDMgMTA6MTE6MzIgMTk5OCAgUm9iZXJ0IExpcGUgICA8cm9iZXJ0bEBkZ2lpLmNvbT4KCgkqIGVnY3NfdXBkYXRlOiBEbyB0aGUgcGFzcyAxIENWUyB1cGRhdGUgb25seSBmb3IgZmlsZXMgdGhhdAoJbWF5IHJlYXNvbmFibHkgYmUgdW5kZXIgQ1ZTIGNvbnRyb2wuCgoxOTk4LTA4LTE0ICBBbGV4YW5kcmUgT2xpdmEgIDxvbGl2YUBkY2MudW5pY2FtcC5icj4KCgkqIHRlc3RfaW5zdGFsbGVkOiBOZXcgc2NyaXB0IGZvciB0ZXN0aW5nIGFscmVhZHktaW5zdGFsbGVkCglnY2MvZysrL2c3Ny4KCldlZCBBdWcgMTIgMTk6NTk6MzYgMTk5OCAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogZWdjc191cGRhdGU6IEFzc2lnbmVkIGNvcHlyaWdodCB0byBGU0YuCgpUdWUgQXVnIDExIDE3OjU1OjUzIDE5OTggIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCQkJICBBbGV4YW5kcmUgT2xpdmEgIDxvbGl2YUBkY2MudW5pY2FtcC5icj4KCgkqIGVnY3NfdXBkYXRlOiBOZXcgc3dpdGNoIC0tbm9zdGRmbGFncyBhbmQgZG9jdW1lbnRhdGlvbgoJZW5oYW5jZW1lbnRzLgoKVHVlIEF1ZyAxMSAxNzozMzoxOSAxOTk4ICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CgoJKiBlZ2NzX3VwZGF0ZTogTmV3IHNjcmlwdC4KCjE5OTgtMDgtMDUgIEJydWNlIEtvcmIgPGtvcmJiQGRhdGFkZXNpZ24uY29tPgoKCSogZml4aW5jL01ha2VmaWxlCglBZGRlZCBkZWZpbmUgZm9yIHRhcmdldCBtYWNoaW5lIHNvIG1hY2hpbmUtc3BlY2lmaWMgdGVzdHMKCWNhbiBiZSBzZWxlY3RlZCBmb3Igb3IgYWdhaW5zdC4KCgkqIGZpeGluYy9maXhpbmNsLmMKCUFkZGVkIGFuIGFycmF5IG9mIHN0cmluZyBwb2ludGVycyB0byBtYWNoaW5lcyB0byBzZWxlY3QKCW9yIGF2b2lkLCBkZXBlbmRpbmcgb24gYSBGRF9NQUNIX0lGTk9UIGJpdCBmbGFnLgoJVXNlZCBhIHNoZWxsIHNjcmlwdCB0byBtYXRjaCB0aGUgZGVmaW5lZCBUQVJHRVRfTUFDSElORQoJd2l0aCBhbnkgb2YgdGhlIGdpdmVuIG1hdGNoIHBhdHRlcm5zLgoKCSogZml4aW5jL2ZpeGluY2wudHBsCglHZW5lcmF0ZSB0aGUgYXJyYXkgb2Ygc3RyaW5ncyBhbmQgYml0IGZsYWcsIGFzIG5lZWRlZCwKCWRlcGVuZGluZyBvbiAibWFjaCIgYW5kICJub3RfbWFjaGluZSIgYXR0cmlidXRlcyBmb3IgYSBmaXguCgoJKiBmaXhpbmMvbWtmaXhpbmMuc2gKCUludm9rZSB0aGUgbWFrZSB3aXRoIFRBUkdFVCBhc3NpZ25lZCB0aGUgdmFsdWUgb2YgdGhlCgltYWNoaW5lIG5hbWUgYXJndW1lbnQuCgpNb24gSnVsIDI3IDIyOjA4OjEyIDE5OTggIE1pa2UgU3R1bXAgIChtcnNAd3JzLmNvbSkKCgkqIGNvbXBhcmVfdGVzdHM6IE5ldyBzY3JpcHQuCgoxOTk4LTA3LTI4ICBBbGV4YW5kcmUgT2xpdmEgIDxvbGl2YUBkY2MudW5pY2FtcC5icj4KCgkqIHRlc3Rfc3VtbWFyeTogQXNzaWduZWQgY29weXJpZ2h0IHRvIEZTRi4KCk1vbiBKdWwgMjcgMjA6MzM6MDIgMTk5OCAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogdGVzdF9zdW1tYXJ5OiBDb3JyZWN0ZWQgc2NyaXB0IG5hbWUgaW4gY29tbWVudHMgcHJvdmlkaW5nCglkb2N1bWVudGF0aW9uLiAgQWRkZWQgbGluZWJyZWFrcyBmb3IgbGluZXMgd2l0aCA+IDgwIGNoYXJhY3RlcnMuCgpGcmkgSnVuIDE5IDAyOjM2OjU5IDE5OTggIEFsZXhhbmRyZSBPbGl2YSA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiB0ZXN0X3N1bW1hcnk6IE5ldyBzd2l0Y2gsIC1pLCBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGUsCglhcHBlbmRfbG9ncywgZm9yIGluY2x1ZGluZyBmaWxlcyBpbiB0aGUgcmVwb3J0LgoKMTk5OC0wNi0wMSAgTWFuZnJlZCBIb2xsc3RlaW4gIDxtYW5mcmVkQHMtZGlyZWt0bmV0LmRlPgoKCSogd2Fybl9zdW1tYXJ5OiBVcGRhdGUgdG8gS2F2ZWgncyBsYXRlc3QgdmVyc2lvbiBhbGxvd2luZyB0bwoJc3BlY2lmeSB0aGUgbGFzdCBzdGFnZSBidWlsdC4KCjE5OTgtMDUtMjkgIEJydWNlIEtvcmIgPGtvcmJiQGRhdGFkZXNpZ24uY29tPgoKCSogZml4aW5jL21rZml4aW5jLnNoCglDaGFuZ2VzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGludm9rZSBvbiBwbGF0Zm9ybXMgdGhhdAoJbm9ybWFsbHkgZG8gbm90IGludm9rZSBmaXhpbmNsdWRlcy4KCgkqIGZpeGluYy9pbmNsaGFjay5kZWYKCUFwcGxpZWQgZml4ZXMgZnJvbSBlZ2NzL2djYy9maXhpbmNsdWRlcyBmcm9tIHRoZSBwYXN0IHNldmVyYWwKCW1vbnRocy4KCjE5OTgtMDUtMjggIEJydWNlIEtvcmIgPGtvcmJiQGRhdGFkZXNpZ24uY29tPgoKCSogZml4aW5jLyo6IFVwZGF0ZWQgbW9zdCBldmVyeXRoaW5nIGZvciBhIGZpcnN0IHJlYWwKCXRyeSBhdCBnZXR0aW5nICJmYXN0X2ZpeGluY2x1ZGVzIiB3b3JraW5nLgoKMTk5OC0wNS0yOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHlvcmljay5jeWdudXMuY29tPgoKCSogaW5kZXgtcHJvcDogTmV3IGZpbGUuCgpTYXQgTWF5IDIzIDIzOjM4OjQ5IDE5OTggIE1hdHRoaWFzIEtsb3NlICA8ZG9rb0Bjcy50dS1iZXJsaW4uZGU+CgoJKiB0ZXN0X3N1bW1hcnk6IGZpbmQgZ29vZCBhd2sgKGNvcGllZCBmcm9tIHdhcm5fc3VtbWFyeSkuCgpTYXQgTWF5IDIzIDIzOjM4OjMzIDE5OTggIEplZmZyZXkgQSBMYXcgIChsYXdAY3lnbnVzLmNvbSkKCgkqIHRlc3Rfc3VtbWFyeSwgd2Fybl9zdW1tYXJ5OiBOZXcgZmlsZXMK