U3VuIEphbiAyNiAyMzoyNDo1MCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIFZlcnNpb24gMi4wIG5ldCByZWxlYXNlLgoKCSogTWFrZS1kaXN0OiBEb24ndCB0YWtlIGNhcmUgZm9yIHR3byBtYWxsb2MgZGlyZWN0b3JpZXMuCgpTdW4gSmFuIDI2IDIyOjQ0OjM4IDE5OTcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogbWNoZWNrLmg6IEFkb3B0ZWQgdG8gbmV3LW1hbGxvYy9tYWxsb2MgY2hhbmdlLgoKU3VuIEphbiAyNiAxMzozOTozMSAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL0Rpc3Q6IENvcnJlY3QgZGlzdHJpYnV0aW9uIG9mCglrZXJuZWxfKi5oIGZpbGVzLgoKCSogTWFrZS1kaXN0OiBEb24ndCBtZW50aW9uIG5ldy1tYWxsb2MgZm9yIGRpcnMgd2l0aCBoYXZlIHRvIGJlCglwcm9jZXNzZWQuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXRpbmV0L2luLmggKFNPTF9JUCk6IEFkZGVkLgoJKiBpbmV0L25ldGluZXQvdGNwLmggKFNPTF9UQ1ApOiBBZGRlZC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc29ja2V0Yml0cy5oIChTT0xfUkFXKTogQWRkZWQuCglSZXBvcnRlZCBieSBhIHN1biA8YXN1bkB6b29sb2d5Lndhc2hpbmd0b24uZWR1Pi4KClN1biBKYW4gMjYgMTg6MzU6MjkgMTk5NyAgV29sZnJhbSBHbG9nZXIgIDx3bWdsb0BkZW50Lm1lZC51bmktbXVlbmNoZW4uZGU+CgoJKiBtYWxsb2MvTWFrZWZpbGU6IFJlbW92ZSAtRE1BTExPQ19ERUJVRy4gIE5vdCB3YW50ZWQgaW4gYQoJcmVsZWFzZWQgdmVyc2lvbi4KCSogbWFsbG9jL21hbGxvYy5jOiBDaGFuZ2UgbWFsbG9jX2NoZWNrX2luaXQoKSB0bwoJX19tYWxsb2NfY2hlY2tfaW5pdCgpLiAgQ2hlY2sgZm9yIE5VTEwgaW4gY2FsbG9jKCkgd2hlbiBhIGhvb2sgaXMKCWluIHBsYWNlLiAgTWFrZSBtb3JlIHZhcmlhYmxlcyB0dW5hYmxlIHZpYSBNQUxMT0NfLi4uIGVudmlyb25tZW50Cgl2YXJpYWJsZXMuCgkqIG1hbGxvYy9tYWxsb2MuaDogQ2hhbmdlIG1hbGxvY19jaGVja19pbml0KCkgdG8KCV9fbWFsbG9jX2NoZWNrX2luaXQoKS4KClN1biBKYW4gMjYgMDU6NDE6NDIgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB2ZXJzaW9uLmggKFZFUlNJT04pOiBCdW1wIHRvIDIuMC4KCShSRUxFQVNFKTogTm93IGl0J3MgImV4cGVyaW1lbnRhbCIuCgoJKiBNYWtlZmlsZSAoc3ViZGlycyk6IENoYW5nZSAkKG1hbGxvYykgdG8gbWFsbG9jLiAgV2UgaGF2ZSBvbmx5CglvbmUgbWFsbG9jIGltcGxlbWVudGF0aW9uIGFnYWluLgoJKiBtYWxsb2MvKjogUmVtb3ZlIGZyb20gR05VIGxpYmMuCgkqIG5ldy1tYWxsb2MvKiBNb3ZlIHRvIG1hbGxvYy8uCgkqIGNvbmZpZy5tYWtlLmluIChkZWZpbmVzKTogUmVtb3ZlIEBVU0VfTkVXX01BTExPQ0AuCgkqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlIC0tZW5hYmxlLW5ldy1tYWxsb2Mgb3B0aW9uIGFuZCBjaGVjayBmb3IKCW1hbGxvYyBpbXBsZW1lbnRhdGlvbiBjaG9pY2UuCgkqIG1hbGxvYy5oOiBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIGZvciB0aGUgaW1wbGVtZW50YXRpb24gdG8gdXNlCglhbnltb3JlLiAgU2ltcGx5IGluY2x1ZGUgbWFsbG9jL21hbGxvYy5oLgoJKiBtYWxsb2MvTWFrZWZpbGUgKHN1YmRpcik6IENoYW5nZSB0byBtYWxsb2MuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZS5pbjogRG9uJ3Qgc2V0IG1hbGxvYyBhbnltb3JlLgoKCSogTWFrZWZpbGU6IEFkZCBzcGVjaWFsIGdvYWwgdG8gZ2VuZXJhdGUgb25seS1NRDUgYmFzZWQgY3J5cHQKCWxpYnJhcnkuCgkqIG1kNS1jcnlwdC9NYWtlZmlsZTogTGlrZXdpc2UuCgoJKiBzdGRpby1jb21tb24vdHN0c2NhbmYuYzogRGUtQU5TSS1kZWNsZnkuICBVcGRhdGUgY29weXJpZ2h0LgoJKHJvdW5kcyk6IENoYW5nZSB0eXBlIHRvIHNpemVfdCB0byBwcmV2ZW50IHdhcm5pbmcuCgoJKiB3Y3NtYnMvYnRvd2MuYzogUmVmb3JtYXQgY29weXJpZ2h0LgoJKiB3Y3NtYnMvbWJybGVuLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvbWJzaW5pdC5jOiBMaWtld2lzZS4KCSogd2NzbWJzL21ic25ydG93Y3MuYzogTGlrZXdpc2UuCgkqIHdjc21icy9tYnNydG93Y3MuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3BjcHkuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3BuY3B5LmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzY2F0LmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzY21wLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzY29sbC5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc2NweS5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc2NzcG4uYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NkdXAuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NsZW4uYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NuY2F0LmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzbmNweS5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc25ydG9tYnMuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NydG9tYnMuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NzcG4uYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NzdHIuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2QuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2YuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2suYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2wuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2xkLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzdG9xLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzdG91bC5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc3RvdXEuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N3aWR0aC5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc3hmcm0uYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3RvYi5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djd2lkdGguYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3dpZHRoLmg6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd21lbWNoci5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3dtZW1jbXAuYzogTGlrZXdpc2UuCgkqIHdjc21icy93bWVtbW92ZS5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3dtZW1zZXQuYzogTGlrZXdpc2UuCgpTYXQgSmFuIDI1IDAzOjM0OjE0IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvdGVybWJpdHMuaDogUHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlCglpbmNsdXNpb24uICBSZXBvcnRlZCBieSBhIHN1biA8YXN1bkB6b29sb2d5Lndhc2hpbmd0b24uZWR1Pi4KClNhdCBKYW4gMjUgMDI6MDU6MTkgMTk5NyAgRWlyaWsgRnVsbGVyICA8ZWlyaWtAbmV0Y29tLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvcGVybS5jOiBSZW5hbWUgVDJfU1BBUlNFX0JBU0UgYW5kCglUMl9ERU5TRV9CQVNFIHRvIFQyX1NQQVJTRV9NRU0gYW5kIFQyX0RFTlNFX01FTSByZXNwLgoKVGh1IEphbiAyMyAxMToxMzo0NiAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3VzbGVlcC5jOiBOb3JtYWxpemUgdGhlIHRpbWUKCXNwZWNpZmljYXRpb24uCgpGcmkgSmFuIDI0IDE0OjMzOjQ1IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9nZW5lcmljL3NvY2tldGJpdHMuaDogQWxzbyBtYWtlIFNPQ0tfKiBjb25zdGFudHMgYXZhaWxhYmxlCglhcyBtYWNyb3Mgc28gdGhhdCAjaWZkZWYgd29ya3MuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NvY2tldGJpdHMuaDogTGlrZXdpc2UuCgoxOTk3LTAxLTIzICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIGxvZ2luL3V0bXBfZGIuYywgbWFudWFsL3RpbWUudGV4aSwgc2hsaWItdmVyc2lvbnMsIHN1bnJwYy9ycGMvc3ZjLmgsCglzdW5ycGMvcnBjc3ZjL3NtX2ludGVyLngsIHN5c2RlcHMvZ2VuZXJpYy9hYm9ydC5jLAoJc3lzZGVwcy9saWJtLWllZWU3NTQvZV9zaW5obC5jLCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXQvcm91dGUuaCwKCXN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL19fc2lndHJhbXBvbGluZS5TOiBTcGVsbCBmaXhlcy4KCjE5OTctMDEtMjMgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogbWt0aW1lLmMgKG1rdGltZSk6IEludm9rZSBfX3R6c2V0LCBub3QgX190enNldF9pbnRlcm5hbCwgdG8gc2V0IHR6LAoJc28gdGhhdCB0em5hbWUgaXMgc2V0IGFzIFBPU0lYIHJlcXVpcmVzLgoKRnJpIEphbiAyNCAwMjo0OToxOCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRpcmVudC9kaXJlbnQuaDogRGVjbGFyZSByZWFkZGlyX3IgYWxzbyB3aGVuIF9fVVNFX1BPU0lYLgoJKiBncnAvZ3JwLmg6IERlY2xhcmUgKl9yIGZ1bmN0aW9ucyBhbHNvIHdoZW4gX19VU0VfUE9TSVguCgkqIHB3ZC9wd2QuaDogTGlrZXdpc2UuCgkqIHRpbWUvdGltZS5oOiBMaWtld2lzZS4KCSogcG9zaXgvdW5pc3RkLmg6IERlY2xhcmUgdHR5bmFtZV9yIGFsc28gd2hlbiBfX1VTRV9QT1NJWC4KCSogc3RyaW5nL3N0cmluZy5oOiBEZWNsYXJlIHN0cnRva19yIGFsc28gd2hlbiBfX1VTRV9QT1NJWC4KCgkqIHN0ZGlvLWNvbW1vbi9idWc3LmM6IFVzZSB0bXBuYW0gdG8gZ2VuZXJhdGUgbmFtZXMgZm9yIHRlc3QgZmlsZXMuCgoJKiBzdGRpby1jb21tb24vdG1wbmFtLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgkqIHN0ZGlvLWNvbW1vbi90bXBuYW1fci5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5cy9rZXJuZWxfdGVybWlvcy5oOiBQcm90ZWN0CglhZ2FpbnN0IG11bHRpcGxlIGluY2x1c2lvbi4gIEluY2x1ZGUgPHRlcm1iaXRzLmg+LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMva2VybmVsX3Rlcm1pb3MuaDogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXQvaWYuaDogVXBkYXRlIGFjY29yZGluZyB0byByZWNlbnQKCWtlcm5lbCBoZWFkZXJzLiAgUGF0Y2ggYnkgUGhpbGlwIEJsdW5kZWxsIDxwamIyN0BjYW0uYWMudWs+LgoKVGh1IEphbiAyMyAxNzo0MjowMCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL2Nsb25lLlM6IENvcnJlY3QgYXV0aG9yIGF0dHJpYnV0aW9uLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L2lmX2FycCAoTUFYX0FERFJfTEVOKTogQWRkIGRlZmluaXRpb24uCgpUaHUgSmFuIDIzIDE0OjIwOjM0IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdGltZS90emZpbGUuYyAoX190emZpbGVfcmVhZCk6IERvbid0IGFsbG93IGFyYml0cmFyeSBmaWxlcyB0byBiZQoJcmVhZCB3aGVuIHJ1bm5pbmcgYSBzZXR1aWQgcHJvZ3JhbS4KClRodSBKYW4gMjMgMDQ6MDY6NDIgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlLWRpc3QgKC5QSE9OWTogZGlzdCk6IFJlbW92ZSBkdXBsaWNhdGUgZGVjbGFyYXRpb24uCgkoUkVBRE1FKTogRGVwZW5kIG9uIHZlcnNpb24uaCBub3QgdmVyc2lvbi5jLgoJKiBNYWtlZmlsZSAoUkVBRE1FKTogRGVwZW5kIG9uIHZlcnNpb24uaCBub3QgdmVyc2lvbi5jLgoKCSogTWFrZWNvbmZpZyAoaW5zdF9saWJkaXIsIGluc3Rfc2xpYmRpciwgaW5zdF9pbmNsdWRlZGlyLAoJaW5zdF9kYXRhZGlyLCBpbnN0X3pvbmVkaXIsIGluc3RfbG9jYWxlZGlyLCBpbnN0X2kxOG5kaXIsIGluc3RfYmluZGlyLAoJaW5zdF9zYmluZGlyLCBpbnN0X2luZm9kaXIsIGluc3Rfc3lzY29uZmRpcik6IE5ldyB2YXJpYWJsZXMuICBTYW1lCglhcyB2YXJpYWJsZSB3aXRob3VnaCBpbnN0XyBidXQgcHJlcGVuZGVkIHdpdGggJChpbnN0YWxsX3Jvb3QpLgoJKGxvY2FsdGltZS10aW1lKTogVXNlICQoaW5zdF9zeXNjb25mZGlyKSBub3QgJChzeXNjb25mZGlyKS4KCSogTWFrZWZpbGUgKGluc3RhbGwtb3RoZXJzKTogVXNlICQoaW5zdF9pbmNsdWRlZGlyKS4KCShnbnUvc3RhYnMuaCwgZ251L2xpYi1uYW1lcy5oKTogVXNlICQoaW5zdF9pbmNsdWRlZGlyKS4KCSogTWFrZXJ1bGVzICh0b25zIG9mIGluc3RhbGwgcnVsZXMpOiBVc2UgaW5zdF8lIHZhcmlhYmxlcy4KCSogZWxmL01ha2VmaWxlOiBMaWtld2lzZS4KCSogaHVyZC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIGludGwvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBtYW51YWwvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBwby9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN1bnJwYy9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdGFuZGFsb25lL2kzODYvZm9yY2VfY3B1Mzg2L01ha2VmaWxlOiBMaWtld2lzZS4KCSogdGltZS9NYWtlZmlsZTogTGlrZXdpc2UuCgoJKiBjb25maWcubWFrZS5pbjogUmV2ZXJ0IHBhdGNoIGZyb20gU2F0IEphbiAxOCAyMjoxNToyNiAxOTk3LAoJbGVhdmUgaW5zdGFsbF9yb290IGluIHBsYWNlLgoKCSogZ251LXZlcnNpb25zLmggKF9HTlVfR0VUT1BUX0lOVEVSRkFDRV9WRVJTSU9OKTogRGVmaW5lIHRvIDIuCgkqIHBvc2l4L2dldG9wdC5jIChHRVRPUFRfSU5URVJGQUNFX1ZFUlNJT04pOiBEZWZpbmUgdG8gMi4KCSogcG9zaXgvZ2V0b3B0MS5jIChHRVRPUFRfSU5URVJGQUNFX1ZFUlNJT04pOiBEZWZpbmUgdG8gMi4KCgkqIGVsZi9NYWtlZmlsZSBbeWVzPT0kKGhhcy1sZGNvbmZpZyldOiBDb3JyZWN0IGRlcGVuZGVuY2llcyBvZgoJbGRjb25maWcuCgkoQ0ZMQUdTLWRsLWxvYWQuYyk6IE5ldyB2YXJpYWJsZSwgYXZvaWQgZ2NjIHdhcm5pbmcuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9jb25maWd1cmUuaW46IEFkZCBfTElCQ19SRUVOVFJBTlQgdG8gREVGSU5FUy4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2dldGRlbnRzLmM6IFVwZGF0ZSBjb3B5cmlnaHQuICBEZS1BTlNJLWRlY2xmeS4KCSogc3lzZGVwcy9zdHViL2dldGRlbnRzLmM6IExpa2V3aXNlLiAgQ29ycmVjdCByZXR1cm4gdmFsdWUuCgkqIHN5c2RlcHMvdW5peC9nZXRkZW50cy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvZ2V0ZGVudHMuYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL3VuaXgvcmVhZGRpci5jOiBVcGRhdGUgY29weXJpZ2h0LgoKCSogc3lzZGVwcy91bml4L2JzZC9zb255L25ld3NvczQvTWFrZWZpbGU6IENvcnJlY3QgaWZlcSBhcmd1bWVudHMuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc3VuL3N1bm9zNC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvTWFrZWZpbGU6IExpa2V3aXNlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvRGlzdDogRG9uJ3QgZGlzdHJpYnV0ZSBrZXJuZWxfdGVybWlvcy5oLAoJYnV0IHN5cy9rZXJuZWxfdGVybWlvcy5oLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9EaXN0OiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgWyQoc3ViZGlyKT09dGVybWlvc10KCShzeXNkZXBfaGVhZGVycyk6IEFkZCBzeXMva2VybmVsX3Rlcm1pb3MuaC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgva2VybmVsX3Rlcm1pb3MuaDogTW92ZWQgdG8uLi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL2tlcm5lbF90ZXJtaW9zLmg6IC4uLmhlcmUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RjZ2V0YXR0ci5jOiBVc2UgX19rZXJuZWxfdGVybWlvcyBhbmQKCV9fS0VSTkVMX05DQ1MgaW5zdGVhZCBvZiBrZXJuZWxfdGVybWlvcyBhbmQgS0VSTkVMX05DQ1MgcmVzcC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvY3Rscy5oOiBOZXcgZmlsZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldGRlbnRzLmM6IENvcnJlY3QgcHJvYmxlbXMgd2l0aCBhbGlnbm1lbnQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5c2NhbGxzLmxpc3Q6IFJlbW92ZSBnZXRkZW50cy4KCVJlcG9ydGVkIGJ5IEVpcmlrIEZ1bGxlciA8ZWlyaWtAbmV0Y29tLmNvbT4uCgoJKiB0aW1lL0Jhbm5lcjogUmVtb3ZlZC4gIFdyb25nIGFuZCB1bm5lY2Vzc2FyeSBpbmZvcm1hdGlvbi4gIEl0J3Mgbm93Cglpbi4uLgoJKiB0aW1lL1JFQURNRTogTmV3IGZpbGUuCgkqIHRpbWUvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBSZW1vdmUgQmFubmVyLCBhZGQgUkVBRE1FLgoKV2VkIEphbiAyMiAxMzoxOTo1NiAxOTk3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvcGVybS5jIChwbGF0Zm9ybXMpOiBBZGQgU2FibGUuCgkoaW5pdF9pb3N5cyk6IFJlY29nbml6ZSAvZXRjL2FscGhhX3N5c3R5cGUgYXMgYSBmb3VyLXR1cGxlIGZvcgoJdGhlIHB1cnBvc2Ugb2Ygc3VwcG9ydGluZyBicmFuZCBuZXcgc3lzdGVtcy4KCSgqKTogVGhlIHR5cGUgb2YgaW9zeXMgdmFyaWFibGVzIHNob3VsZCBiZSBpb3N5c190LgoKMTk5Ny0wMS0yMiAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBzdHJmdGltZS5jIChfc3RyZnRpbWVfY29weXRtKToKCU5ldyBmdW5jdGlvbiwgdG8gd29yayBhcm91bmQgU29sYXJpcyAyLjUgdHpzZXQgYnVnLgoKV2VkIEphbiAyMiAyMzowNToxNCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3ZkcHJpbnRmLmM6IENvbXBsZXRlIGRlLUFOU0ktZGVjbGZpY2F0aW9uLgoJUmVwb3J0ZWQgYnkgTWFyY3VzIEcuIERhbmllbHMgPG1hcmN1c0BzaGFubm9uLnN5c2MucGR4LmVkdT4uCgpXZWQgSmFuIDIyIDEzOjU4OjU2IDE5OTcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogZWxmL01ha2VmaWxlIChDRkxBR1MtZGwtbG9hZC5jKTogTmV3IFZhcmlhYmxlIHRvIGtlZXAgZ2NjIHNpbGVudAoJc2luY2UgbmFtZV9jb3B5IGlzIGluaXRpYWxpemVkLgoKV2VkIEphbiAyMiAxNjo1ODoxMiAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGlvLWNvbW1vbi9NYWtlZmlsZSAodGVzdHMpOiBSZW1vdmUgc2NhbmYxMS4KCSogc3RkaW8tY29tbW9uL3NjYW5mMTEuYzogUmVtb3ZlZC4KCSogc3RkaW8tY29tbW9uL3Zmc2NhbmYuYyBSZXZlcnQgcGF0Y2ggb2YgVGh1IEphbiAxNiAyMzozOToyNSAxOTk3LgoJQWx0aG91Z2ggdGhlIENvcnJpZ2VuZHVtIDEgZGVzY3JpYmVzIHRoZSByZXN1bHQgYXMgaW1wbGVtZW50ZWQgdGhlCglldmVuIG1vcmUgcmVjZW50IEFtZW5kZW1lbnQgMSBzZWNvbmRzIHRoZSBwb3NpdGlvbiBvZiBJU08gQzoxOTkwCgl3aGVyZSB0aGUgJW4gZGlyZWN0aXZlIGhhcyBubyBlZmZlY3Qgb24gdGhlIGFzc2lnbm1lbnQgY291bnQuCgkqIHN0ZGlvLWNvbW1vbi9idWcxMC5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3NjYW5mMS5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3NjYW5mMy5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3NjYW5mMTAuYzogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi90c3RkaW9taXNjLmM6IExpa2V3aXNlLgoKCSogbmV3LW1hbGxvYy9vYnN0YWNrLmg6IERvbid0IGRlZmluZSBtYWxsb2MgdXNpbmcgYmNvcHkgaWYgbWFsbG9jCglpcyBub3QgYXZhaWxhYmxlLiAgVGhpcyBsZWFkcyB0byBwcm9ibGVtcyBzaW5jZSBiY29weSBkb2VzIG5vdAoJcmV0dXJuIGEgdmFsdWUuICBJbnN0ZWFkIGRlZmluZSBfb2JzdGFja19tZW1jcHkgYmFzZWQgb24gbWVtY3B5IG9yCgliY29weS4gIFRoaXMgbmFtZSBpc24ndCB1c2VkIG91dHNpZGUgb2JzdGFjay5oIGFuZCBzbyBubyBwcm9ibGVtcwoJZnJvbSB1c2luZyB0aGUgbWVtY3B5IGZ1bmN0aW9uIGluIGEgZmlsZSBpbmNsdWRpbmcgb2JzdGFjay5oIGNhbgoJcmVzdWx0LgoJUmVwb3J0ZWQgYnkgTWFydGluIFRyYXBwIDx0cmFwcEBpcGQuaW5mby51bmkta2FybHNydWhlLmRlPi4KClR1ZSBKYW4gMjEgMTg6MzU6NTUgMTk5NyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBtaXNjL3JlZ2V4cC5oIChjb21waWxlKTogRml4IHR5cG9zLgoKVHVlIEphbiAyMSAwMTowMTo1OSAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9wcm9jZnMuaCAoc3RydWN0IGVsZl9wcnBzaW5mbyk6IEZpeAoJdHlwZSBvZiBwcl97cGlkLHBwaWQscGdycCxzaWR9IGZpZWxkcy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzL3Byb2Nmcy5oIChzdHJ1Y3QKCWVsZl9wcnBzaW5mbyk6IExpa2V3aXNlLgoKMTk5Ny0wMS0yMSAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBwb3NpeC9nZXRvcHQuYyAoX2dldG9wdF9pbnRlcm5hbCk6IFJldHVybiAtMSwgbm90IEVPRiwgd2hlbiBhcmdzCglhcmUgZXhoYXVzdGVkOyB0aGlzIGlzIHJlcXVpcmVkIGJ5IFBPU0lYLjIuCgkqIGNhdGdldHMvZ2VuY2F0LmMsIGRiL21ha2VkYi5jLCBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlLmMsCglsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmMsIG1hbnVhbC9leGFtcGxlcy9zdWJvcHQuYywKCXBvc2l4L2dldG9wdC5jLCBwb3NpeC9nZXRvcHQxLmMsIHN0ZGlvLWNvbW1vbi9idWc0LmMsCglzdW5ycGMvcnBjaW5mby5jIChtYWluKTogQ2hlY2sgZ2V0b3B0IHJldHVybiB2YWx1ZSBhZ2FpbnN0IC0xLCBub3QgRU9GLgoKVHVlIEphbiAyMSAyMzoxMDo0MCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHZlcnNpb24uaCAoVkVSU0lPTik6IEJ1bXAgdG8gMS4xMDIuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9EaXN0OiBBZGQga2VybmVsX3NpZ2FjdGlvbi5oLgoKCSogZWxmL01ha2VmaWxlOiBEb24ndCB1c2UgQ0ZMQUdTLWRsLWxvYWQuYywgYnV0IGluc3RlYWQKCUNQUEZMQUdTLWRsLWxvYWQuYyBzbyB0aGF0IGRlcGVuZGVuY2llcyBjYW4gYmUgZGV0ZXJtaW5lZCBjb3JyZWN0bHkuCgkqIGVsZi9kbC1sb2FkLmM6IEZpeCBjb21tZW50LgoKCSogdGltZS9CYW5uZXI6IE5ldyBmaWxlLgoJKiB0aW1lL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIEJhbm5lci4KCglVcGRhdGUgZnJvbSBBRE8gdHpjb2RlMTk5N2EgYW5kIHR6ZGF0YTE5OTdhLgoJKiB0aW1lL2FudGFyY3RpY2E6IFVwZGF0ZS4KCSogdGltZS9hdXN0cmFsaWE6IFVwZGF0ZS4KCSogdGltZS96ZHVtcC5jOiBVcGRhdGUuCgkqIHRpbWUvemljLmM6IFVwZGF0ZS4KCSogdGltZS96b25lLnRhYjogVXBkYXRlLgoKTW9uIEphbiAyMCAwODozODozMiAxOTk3ICBILkouIEx1ICA8aGpsQGdudS5haS5taXQuZWR1PgoKCSogY29uZmlnLm1ha2UuaW4gKGhhcy1sZGNvbmZpZyk6IE5ldyB2YXJpYWJsZS4KCgkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChoYXNfbGRjb25maWcpOiBOZXcgc3Vic3RpdHV0ZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZS5pbiAoaGFzX2xkY29uZmlnKTogTmV3LAoJY2hlY2sgaWYgJHNyY2Rpci9lbGYvbGRjb25maWcuYyBleGlzdHMuCgoJKiBNYWtlY29uZmlnIChyb290c2JpbmRpcik6IE5ldywgZGVmYXVsdCBhcwoJJChleGVjX3ByZWZpeCkvc2Jpbi4KCShydGxkLXZlcnNpb24taW5zdGFsbGVkLW5hbWUpOiBOZXcsIGRlZmF1bHQgYXMKCWxkLSQodmVyc2lvbikuc28uCgoJKiBNYWtlZmlsZSAoaW5zdGFsbCk6IENhbGwgYCQoY29tbW9uLW9ianBmeCllbGYvbGRjb25maWcgLWQnCglvbmx5IGlmICQoY3Jvc3MtY29tcGlsaW5nKSBpcyBubyBhbmQgJChidWlsZC1zaGFyZWQpIGlzIHllcy4KCgkqIE1ha2VydWxlcyAobWFrZS1zaGxpYi1saW5rKTogTmV3IG1hY3JvLgoJKCQoc2xpYmRpcikvbGliZm9vLnNvLiQobGliZm9vLnNvLXZlcnNpb24pKTogVXNlCgkkKG1ha2Utc2hsaWItbGluaykgZm9yIHN5bWxpbmsuCgkoaW5zdGFsbC1yb290c2JpbiwgaW5zdGFsbC1yb290c2Jpbi1ub3N1YmRpcik6IE5ldy4KCShpbnN0YWxsLW5vLWxpYmMuYS1ub3N1YmRpcik6IEFkZAoJaW5zdGFsbC1yb290c2Jpbi1ub3N1YmRpci4KCgkqIFJ1bGVzIChvdGhlcnMpOiBBZGQgJChpbnN0YWxsLXJvb3RzYmluKS4KCgkqIGNvbmZpZy5tYWtlLmluIChyb290c2JpbmRpcik6IE5ldy4KCgkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChsaWJjX2N2X3Jvb3RzYmluZGlyKTogTmV3CglzdWJzdGl0dXRlLgoKCSogZWxmL01ha2VmaWxlIChvdGhlcnMsIGluc3RhbGwtcm9vdHNiaW4pOiBOZXcsIHNldCB0bwoJbGRjb25maWcuCgkoK2xpbmspOiBOZXcgZm9yIHN0YXRpYyBsaW5raW5nLgoJKCQoc2xpYmRpcikvJChydGxkLXZlcnNpb24taW5zdGFsbGVkLW5hbWUpKTogTmV3LgoJKCQoc2xpYmRpcikvJChydGxkLWluc3RhbGxlZC1uYW1lKSk6IERlcGVuZCBvbgoJJChzbGliZGlyKS8kKHJ0bGQtdmVyc2lvbi1pbnN0YWxsZWQtbmFtZSkgYW5kIHVzZQoJJChtYWtlLXNobGliLWxpbmspIGZvciBzeW1saW5rLgoKCSogc3VucnBjL3hkci5jICh4ZHJfc3RyaW5nKTogUmV0dXJuIEZBTFNFIGlmIHNwID09IE5VTEwKCXdoaWxlIFhEUl9FTkNPREUuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hLm91dC5oOiBVc2UgI2luY2x1ZGVfbmV4dCBmb3IKCWdsaWJjIGludGVybmFscy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZS5pbiAobGliY19jdl9yb290c2JpbmRpcik6CglOZXcsIHNldCB0byAiL3NiaW4iIGlmICIkcHJlZml4IiA9PSAiL3VzciIuCgpUdWUgSmFuIDIxIDEzOjM4OjM5IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgZ2xpYmNidWcuaW4uCglSZXBvcnRlZCBieSBQaGlsaXAgQmx1bmRlbGwgPHBqYjI3QGNhbS5hYy51az4uCgoJKiBlbGYvTWFrZWZpbGUgKCQob2JqcGZ4KXRydXN0ZWQtZGlycy5oKTogQ3JlYXRlIGVsZi8gc3ViZGlyIGluCglidWlsZCBkaXJlY3RvcnkgaWYgbmVjZXNzYXJ5LgoJUmVwb3J0ZWQgYnkgbWFyY3VzQHNoYW5ub24uc3lzYy5wZHguZWR1IChNYXJjdXMgRy4gRGFuaWVscykuCgpUdWUgSmFuIDIxIDA0OjA1OjIwIDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdmVyc2lvbi5oIChWRVJTSU9OKTogQnVtcCB0byAxLjEwMS4KCglJbXBsZW1lbnQgLWQgYW5kIC1yIG9wdGlvbiB0byBgbGRkJyB0byBjaGVjayByZWxvY2F0aW9ucy4KCSogZWxmL2RsLWVycm9yLmM6IEFkZCBhbm90aGVyIG1ldGhvZCB0byBpbnRlcmNlcHQgZXJyb3JzLgoJKF9kbF9yZWNlaXZlX2Vycm9yKTogTmV3IGZ1bmN0aW9uLiAgSW5zdGFsbCB1c2VyIGRlZmluZWQgaGFuZGxlci4KCShyZWNlaXZlcik6IE5ldyB2YXJpYWJsZS4gIENvbnRhaW5zIHBvaW50ZXIgdG8gdXNlciBwcm92aWRlZCBoYW5kbGVyLgoJKF9kbF9zaWduYWxfZXJyb3IpOiBJZiB1c2VyIHByb3ZpZGVkIGhhbmRsZXIgaXMgaW5zdGFsbGVkIGNhbGwgdGhpcy4KCSogZWxmL2RsLWxvYWQuYyAoX2RsX21hcF9vYmplY3QpOiBXaGVuIHNoYXJlZCBvYmplY3QgaXMgbm90IGZvdW5kIGluCgl0cmFjZSBtb2RlIGluaXRpYWxpemUgYSBmZXcgbW9yZSBmaWVsZHMgc28gdGhhdCBsb29rdXAgY2FuIGFjdHVhbGx5CgloYXBwZW4gYnV0IGFsd2F5cyBmYWlscy4KCSogZWxmL2xkZC5zaC5pbjogUmV3cml0ZSBhcmd1bWVudCBoYW5kbGluZy4gIFJlY29nbml6ZSBuZXcgYXJndW1lbnRzCgl0byB0cmlnZ2VyIHJlbG9hdGlvbiB0ZXN0LiAgUmV0dXJuIHdpdGggYXBwcm9wcmlhdGUgZXJyb3IgY29kZSBpZgoJYSBmaWxlIHdhc24ndCBmb3VuZC4gIFByaW50IHdhcm5pbmcgaWYgb2JqZWN0IGlzIG5vdCBleGVjdXRhYmxlLgoJKiBlbGYvbGRkLmJhc2guaW46IExpa2V3aXNlLgoJKiBlbGYvbGluay5oIChyZWNlaXZlcl9mY3QpOiBOZXcgdHlwZS4gIFVzZWQgaW4gX2RsX3JlY2VpdmVfZXJyb3IuCgkoX2RsX3N5c2RlcF9lcnJvcik6IE5ldyBwcm90b3R5cGUuCgkoX2RsX3JlY2VpdmVfZXJyb3IpOiBOZXcgcHJvdG90eXBlLgoJKF9kbF9zaWduYWxfZXJyb3IpOiBSZW1vdmUgIF9fYXR0cmlidXRlX18gKChfX25vcmV0dXJuX18pKS4KCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IFJld3JpdGUgYXJndW1lbnQgaGFuZGxpbmcuICBNb3JlIHRoYW4KCW9uZSBhcmd1bWVudCBhbGxvd2VkLiAgUmVjb2duaXplIC0tZGF0YS1yZWxvY3MgYW5kIC0tZnVuY3Rpb24tcmVsb2NzCglhcmd1bWVudHMuCglEb24ndCBkZXRlcm1pbmUgYGxhenknIG1vZGUgZnJvbSBMRF9CSU5EX05PVyBlbnZpcm9ubWVudCB2YXJpYWJsZQoJd2hlbiBpbiB0cmFjZSBtb2RlLgoJSWYgaW4gdHJhY2UgbW9kZSBhbmQgZWl0aGVyIC0tZGF0YS1yZWxvY3Mgb3IgLS1mdW5jdGlvbi1yZWxvY3MgaXMKCWdpdmVuIHBlcmZvcm0gcmVsb2NhdGlvbi4gIFJlcG9ydCBlcnJvcnMgdXNpbmcgcHJpbnRfdW5yZXNvbHZlZAoJZnVuY3Rpb24uCgkocHJpbnRfdW5yZXNvbHZlZCk6IE5ldyBmdW5jdGlvbi4gIFByaW50IGluZm9ybWF0aW9uIGFib3V0IG1pc3NpbmcKCXN5bWJvbCBvbiBzdGRlcnIuCgkqIHN5c2RlcHMvZ2VuZXJpYy9kbC1zeXNkZXAuYyAoX2RsX3N5c2RlcF9lcnJvcik6IE5ldyBmdW5jdGlvbi4KCUxpa2UgX2RsX3N5c2RlcF9tZXNzYWdlIGJ1dCBwcmludCB0byBzdGRlcnIuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2RsLXN5c2RlcC5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zb2NrYWRkcmNvbS5oOiBBZGQgZGVmaW5pdGlvbiBvZiBzYV9mYW1pbHlfdC4KCVJlcG9ydGVkIGJ5IEFuZHJlYXMgU2Nod2FiLgoJKF9fU09DS0FERFJfQ09NTU9OKTogVXNlIHNhX2ZhbWlseV90IGZvciBmYW1pbHkgbWVtYmVyLgoJKiBzeXNkZXBzL3VuaXgvYnNkL2JzZDQuNC9zb2NrYWRkcmNvbS5oOiBMaWtld2lzZS4KCglMaW51eC9TcGFyYyBzdXBwb3J0IGJ5IE1pZ3VlbCBkZSBJY2F6YS4KCSogc3lzZGVwcy9zcGFyYy9mcHVfY29udHJvbC5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3BhcmMvX19zaWd0cmFtcG9saW5lLlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9icmsuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3Byb2ZpbC1jb3VudGVyLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9zaWdhY3Rpb24uYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3NvY2tldC5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3BhcmMvc3lzY2FsbC5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3BhcmMvc3lzZGVwLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9EaXN0OiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3BhcmMvTWFrZWZpbGU6IE5ldyBmaWxlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L2lmX2FycC5oOiBEb24ndCB1c2Uga2VybmVsIGhlYWRlci4KCVByb3ZpZGUgb3duIGRlZmluaXRpb24gYmFzZWQgb24gNC40QlNEIGFuZCBMaW51eC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L3BwcF9kZWZzLmg6IERlZmluZSBfX3UzMiBiZWZvcmUKCWluY2x1ZGluZyA8bGludXgvcHBwX2RlZnMuaD4uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tc3FfYnVmLmggKHN0cnVjdCBtc3FpZF9kcyk6IERvbid0Cgl1c2UgX19waWRfdCBzaW5jZSB0aGUga2VybmVsIG1pZ2h0IGhhdmUgYSBkaWZmZXJlbnQgc2l6ZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3NobV9idWYuaCAoc3RydWN0IHNobWlkX2RzKTogTGlrZXdpc2UuCglSZXBvcnRlZCBieSBBbmRyZWFzIFNjaHdhYi4KCgkqIHRpbWUvYXNjdGltZS5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKiB0aW1lL2R5c2l6ZS5jOiBMaWtld2lzZS4KCSogdGltZS9nbXRpbWUuYzogTGlrZXdpc2UuCgkqIHRpbWUvdGltZWdtLmM6IExpa2V3aXNlLgoJKiB0aW1lL29mZnRpbWUuYzogTGlrZXdpc2UuICBEZS1BTlNJLWRlY2xmeS4KCgkqIHRpbWUvdHpzZXQuYyAoX190enNldF9pbnRlcm5hbCk6IFdoZW4gVFogZW52dmFyIGRvZXMgbm90IG5hbWUgYQoJRFNUIHRpbWV6b25lIGRvbid0IGRlZmF1bHQgdG8gb2Zmc2V0IC0xLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L3JvdXRlLmg6IERvbid0IHVzZSBrZXJuZWwgaGVhZGVyLgoJUmVwb3J0ZWQgYnkgYSBzdW4gPGFzdW5Aem9vbG9neS53YXNoaW5ndG9uLmVkdT4uCgoJKiByZXNvbHYvTWFrZWZpbGU6IENvcnJlY3Qgc3BlbGxpbmc6IHN1YmRpcnMtZGlycyAtPiBzdWJkaXItZGlycy4KCgkqIHN5c2RlcHMvc3R1Yi9zeXN2X3NpZ25hbC5jOiBOZXcgZmlsZS4gIFN0dWIgaW1wbGVtZW50YXRpb24uCgoJKiBNYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBtY2hlY2suaC4KCgkqIG5pcy9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBuc3MtbmlzLmguCgoJKiBsaWJpby9NYWtlZmlsZSAocm91dGluZXMpOiBDaGFuZ2UgdmRwcmludGYgdG8gaW92ZHByaW50ZiB0byBwcmV2ZW50CglkaXN0IHByb2JsZW0uCgoJKiBuc3MvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgZGlnaXRzX2RvdHMuYy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IEFkZCBrZXJuZWxfc2lnYWN0aW9uLmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL0Rpc3Q6IEFkZCBzeXMvcHJvY2ZzLmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL0Rpc3Q6IEFkZCBjbG9uZS5TLgoJKiBuZXctbWFsbG9jL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIG1jaGVjay1pbml0LmMgYW5kIG1jaGVjay5oLgoKTW9uIEphbiAyMCAxNzo1NDoyOCAxOTk3ICBTdmVuIFZlcmRvb2xhZWdlICA8c2tpbW9AYnJldWdoZWwudWZzaWEuYWMuYmU+CgoJKiBtYW51YWwvZmlsZXN5cy50ZXhpOiBGaXggbGl0dGxlIHByb2JsZW0gKHJlZW50cmFudC0+cmVhZGRpcikuCgpGcmkgSmFuIDE3IDE5OjA3OjA3IDE5OTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogY29uZmlndXJlLmluIFskZWxmPXllc106IENoZWNrIGZvciBzdXBwb3J0IG9mIC5wcmV2aW91cyBhbmQKCS5wb3BzZWN0aW9uIGluIHRoZSBhc3NlbWJsZXIuCgkqIGNvbmZpZy5oLmluOiBBZGQgSEFWRV9BU01fUFJFVklPVVNfRElSRUNUSVZFIGFuZAoJSEFWRV9BU01fUE9QU0VDVElPTl9ESVJFQ1RJVkUuCgkqIGxpYmMtc3ltYm9scy5oIChfX21ha2Vfc2VjdGlvbl91bmFsbG9jYXRlZCkgW0hBVkVfRUxGXTogRGVmaW5lCglhcHByb3ByaWF0ZSBpZiBlaXRoZXIgLnByZXZpb3VzIG9yIC5wb3BzZWN0aW9uIGlzIHN1cHBvcnRlZC4KCShsaWJjX3dhcm5pbmcpIFtIQVZFX0VMRl06IFVzZSBpdCBoZXJlLgoKU2F0IEphbiAxOCAyMjoxNToyNiAxOTk3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIE1ha2Vjb25maWcgKENGTEFHUy0uc28pOiBBZGQgLWZuby1jb21tb24gdG8gcHJldmVudCBvZGQgc29ydHMgb2YKCWVycm9ycyB0aGF0IGNhbiBvY2N1ciB3aGVuIGxpbmtpbmcgbGliYy5zby4KCk1vbiBKYW4gMjAgMDU6MjA6NDkgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYvZGwtbG9hZC5jIChvcGVuX3BhdGgpOiBXaGVuIHJ1bm5pbmcgc2V0dWlkIGRvbid0IHRyeQoJYSBkaXJlY3RvcnkgaWYgaXQgaXMgbm90IGdpdmVuIHdpdGggdGhlIGZ1bGwgbmFtZS4KCgkqIGVsZi9NYWtlZmlsZSAoYmVmb3JlLWNvbXBpbGUpOiBOZXcgdmFyaWFibGUuICBNZW50aW9uIHRydXN0ZWQtZGlycy5oLgoJKHRydXN0ZWQtZGlycy5oKTogQ29uc3RydWN0IGZpbGUgZnJvbSAkKGRlZmF1bHQtcnBhdGgpIGFuZAoJJCh1c2VyLWRlZmluZWQtdHJ1c3RlZC1kaXJzKSB2YXJpYWJsZXMuCgkqIGVsZi9kbC1sb2FkLmMgKF9kbF9tYXBfb2JqZWN0KTogUGFzcyBhZGRpdGlvbmFsIGFyZ3VtZW50IHRvIG9wZW5fcGF0aAoJd2hpY2ggaXMgTlVMTCBleGNlcHQgZm9yIHRoZSBMRF9MSUJSQVJZX1BBVEggcGFzcyBpbiB3aGljaCBjYXNlIGl0CglpcyBhIHBvaW50ZXIgdG8gdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgZnJvbSB0aGUgdHJ1c3RlZC1kaXJzLmgKCWZpbGUuCgkob3Blbl9wYXRoKTogQWNjZXB0IGFkZGl0aW9uYWwgYXJndW1lbnQgd2l0aCBsaXN0IG9mIHRydXN0ZWQgZGlycy4KCVdoZW4gcnVubmluZyBzZXR1aWQgYW5kIGEgbGlzdCBvZiB0cnVzdGVkIGRpcnMgaXMgZ2l2ZW4gb25seSB1c2UKCXRob3NlIHdoaWNoIGFyZSBtZW50aW9uZWQgaW4gdGhlIGxpc3QuCgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogRG9uJ3QgcmVqZWN0IHdob2xlIExEX0xJQlJBUllfUEFUSCB3aGVuCglydW5uaW5nIHNldHVpZC4gIEluc3RlYWQgYWNjZXB0IGVudHJpZXMgd2hpY2ggZG8gbm90IGNvbnRhaW4gYSAnLycuCgoJKiBNYWtlY29uZmlnOiBDb3JyZWN0IGNvbW1lbnQgYWJvdXQgKyhkZWZhdWx0X2NmbGFncykuCgpNb24gSmFuIDIwIDA1OjExOjE0IDE5OTcgIEhydm9qZSBOaWtzaWMgIDxobmlrc2ljQHNyY2UuaHI+CgoJKiB0aW1lL3N0cnB0aW1lLmMgKHJlY3Vyc2l2ZSk6IFVzZSAmJiBub3QgfHwgdG8gdGVzdCBmb3IgdmFsaWQKCWFyZ3VtZW50LgoKTW9uIEphbiAyMCAwNTowNjo1MCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9sZGQuc2guaW46IEV4aXQgd2l0aCB2YWx1ZSAxIGlmIGFuIGVycm9yIG9jY3VyZWQuCgkqIGVsZi9sZGQuYmFzaC5pbjogTGlrZXdpc2UuCgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogRG8gbm90IGFsd2F5cyBpZ25vcmUgTERfUFJFTE9BRCB3aGVuIHRoZQoJYmluYXJ5IHJ1bnMgc2V0dWlkLiAgSXQgaXMgc2F2ZSB0byB1c2UgdGhvc2UgZW50cmllcyB3aGljaCBkbyBub3QKCWNvbnRhaW4gYSAnLycuICBUaGlzIGlzIGNvbXBhdGlibGUgd2l0aCBTb2xhcmlzLTIuCgpNb24gSmFuIDIwIDAzOjAyOjUwIDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZS1kaXN0OiBVcGRhdGUgYW5kIHJlZm9ybWF0IGNvcHlyaWdodC4KCSogTWFrZWNvbmZpZzogTGlrZXdpc2UuCgkqIGFzc2VydC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIGJhcmUvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBjdHlwZS9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIGRpcmVudC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIGdtb24vTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBnbnVsaWIvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBncnAvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBodXJkL01ha2VmaWxlOiBMaWtld2lzZS4KCSogaW50bC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIG1hY2gvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBtYWxsb2MvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBtYW51YWwvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBtYXRoL01ha2VmaWxlOiBMaWtld2lzZS4KCSogcG8vTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBwd2QvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiByZXNvdXJjZS9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHNldGptcC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHNvY2tldC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN0cmluZy9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN1bnJwYy9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dudS9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc3dpdGNoL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zd2l0Y2gvNjg4ODEtc3cuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc3dpdGNoL3N3aXRjaC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy9odXJkL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zcGFyYy9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3RhbmRhbG9uZS9pOTYwL25pbmR5OTYwL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdGFuZGFsb25lL202OGsvbTY4MDIwL212bWUxMzYvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvY29tbW9uL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9pcml4NC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3NjbzMuMi9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3N5c3Y0L01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy92YXgvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBzeXN2aXBjL01ha2VmaWxlOiBMaWtld2lzZS4KCSogd2NzbWJzL01ha2VmaWxlOiBMaWtld2lzZS4KCSogd2N0eXBlL01ha2VmaWxlOiBMaWtld2lzZS4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBPYmplY3RzIGluIExEX1BSRUxPQUQgZW52aXJvbm1lbnQgdmFyaWFibGUKCWFyZSBzZXBhcmF0ZWQgYWNjb3JkaW5nIHRvIFN1biBkb2NzIGJ5IHdoaXRlIHNwYWNlIG5vdCBjb2xvbi4KCgkqIGxvY2FsZS9DLXRpbWUuYyAoX25sX0NfTENfVElNRSk6IFVzZSBlbXB0eSBzdHJpbmcgdG8gaW5pdGlhbGl6ZQoJZmllbGRzIHdoaWNoIGFyZSBub3QgZGVmaW5lZCBmb3IgdGhlIEMgbG9jYWxlLgoKCSogc3lzZGVwcy9tNjhrL2ZwdS9zd2l0Y2gvTWFrZWZpbGU6IERvbid0IHVzZSBhbnNpZGVjbC5oIGluIGNvbnN0cnVjdGVkCglmaWxlcy4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zd2l0Y2gvNjg4ODEtc3cuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc3dpdGNoL3N3aXRjaC5jOiBMaWtld2lzZS4KClN1biBKYW4gMTkgMTk6NDM6MzEgMTk5NyAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiB0aW1lL3N0cnB0aW1lLmM6IFByb3ZpZGUgcHJvdG90eXBlIGZvciBzdHJwdGltZV9pbnRlcm5hbC4KClN1biBKYW4gMTkgMjM6NDY6MjcgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBnbGliY2J1Zy5pbjogV2UgZG9uJ3QgZ3VhcmFudGVlIGNvbmZpZGVudGlhbCBoYW5kbGluZy4gIFNldAoJZmllbGQgdG8gYWx3YXlzIGNvbnRhaW4gYG5vJy4KClN1biBKYW4gMTkgMjE6Mjg6MDEgMTk5NyAgUGhpbGlwcGUgRGUgTXV5dGVyICA8cGhkbUBpbmZvLnVjbC5hYy5iZT4KCgkqIGludGwvZXhwbG9kZW5hbWUuYzogSW5jbHVkZSBzeXMvdHlwZXMuaC4KCSogaW50bC9sMTBuZmxpc3QuYzogTGlrZXdpc2UuCgpTYXQgSmFuIDE4IDIyOjE1OjI2IDE5OTcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogY29uZmlnLm1ha2UuaW4gKGluc3RhbGxfcm9vdCk6IE5ldyB2YXJpYWJsZSB0byBtYWtlIGl0IGVhc3kgdG8KCWluc3RhbGwgZ2xpYmMgc29tZXdoZXJlIG90aGVyIHRoYW4gLy4KCgkqIHNobGliLXZlcnNpb25zOiBhbHBoYS0qLWxpbnV4LSogbGliYz02LjEuCgoJU2luY2Ugc2lnc2V0X3Qgbm8gbG9uZ2VyIGZpdHMgaW4gYSByZWdpc3Rlciwgd2UgY2FuJ3QgcGFzcyBpbiB0aGUKCXRocmVhZCdzIGluaXRpYWwgbWFzayBzbyBlYXNpbHkuICBUYWtlIHRoaXMgb3Bwb3J0dW5pdHkgdG8gc2ltcGxpZnkKCXRoZSBjbG9uZSBpbXBsZW1lbnRhdGlvbiBieSBvbmx5IGFjY2VwdGluZyBhIHNpbmdsZSB2b2lkKiBhcmd1bWVudC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2Nsb25lLlM6IE9ubHkgdGFrZSBvbmUgYXJndW1lbnQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvY2xvbmUuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvY2xvbmUuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL2Nsb25lLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zY2hlZGJpdHMuaDogVXBkYXRlIGNsb25lIHByb3RvdHlwZXMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pb2N0bC10eXBlcy5oOiBSZW1vdmUuCglEZWZhdWx0IExpbnV4IHZlcnNpb24gc2hvdWxkIGJlIHN1ZmZpY2llbnQuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zaWdwcm9jbWFzay5jOiBUaGUgb3NmX3NpZ3Byb2NtYXNrCglzeXN0ZW0gY2FsbCB3YW50cyB0aGUgc2lnc2V0IGRlcmVmZXJlbmNlZC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5c2NhbGxzLmxpc3Q6IEFkZCBlbnRyaWVzIGZvcgoJX19zeXNjYWxsX3VzdGF0IGFuZCBfX3N5c2NhbGxfeG1rbm9kLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS94bWtub2QuYzogSW5jbHVkZSBzeXMvc3lzbWFjcm9zLmguCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaWdzZXQuaDogVXNlIGxvbmdzIGluc3RlYWQgb2YgaW50cy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Rjc2V0YXR0ci5jOiBGaXggcG9pbnRlciBkZXJlZmVyZW5jZXMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zaWdzdXNwZW5kLmM6IEFkZCBjb21tZW50IGFib3V0CglkZXBlbmRlbmN5IHRvIGtlcm5lbCB0eXBlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvdGVybWJpdHMuaDogQ29ycmVjdCBjb21tZW50LgoKU3VuIEphbiAxOSAwNDozODoyMCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy5tYWtlLmluIChoYXZlLWtzaCwgS1NIKTogTmV3IHZhcmlhYmxlcy4gIFdpbGwgYmUgZmlsbGVkCglpbiBieSBjb25maWd1cmUuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHRlc3QgZm9yIGtzaCBsaWtlIHNoZWxsIChwcmVmZXIgYmFzaCkuCgkqIHRpbWUvTWFrZWZpbGUgKHRlc3RzKTogRGVwZW5kIG9uIGluc3RhbGwtdGVzdC1kYXRhLgoJKGRpc3RyaWJ1dGUpOiBBZGQgc2ltcGxlYmFja3cuCgkoZ2VuZXJhdGVkLWRpcnMpOiBOZXcgdmFyaWFibGUuCglbJChoYXZlLWtzaCk9PXllc10gKGluc3RhbGwtb3RoZXJzKTogQWRkIGlzbzMxNjYudGFiIGFuZCB6b25lLnRhYi4KCShpbnN0YWxsLWJpbik6IEFkZCB0enNlbGVjdC4KCShpbnN0YWxsLXRlc3QtZGF0YSk6IEluc3RhbGwgdGhlIHpvbmVpbmZvIGZpbGVzIHdoaWNoIGFyZSBuZWVkZWQKCWZvciB0aGUgdGVzdCBjYXNlIGluIHRoZSBidWlsZCBkaXJlY3RvcnkuCgkodGVzdC10ei1FTlYpOiBOZXcgdmFyaWFibGUuICBDYWxsIHRlc3QtdHogcHJvZ3JhbSB1c2luZyBkYXRhIGluCglidWlsZCBkaXJlY3RvcnkuCgkqIHRpbWUvc2ltcGxlYmFjazogTmV3IGZpbGUuCgkqIHRpbWUvdGVzdC10ei5jOiBQcmV0dHkgcHJpbnQuCgkqIHRpbWUvdHpmaWxlLmM6IFVzZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZSBUWkRJUiBhcyBkaXJlY3RvcnkKCXRvIGxvb2sgZm9yIHpvbmUgaW5mbyBmaWxlcy4KCWRvbid0IGxldCBzZWFyY2ggZm9yIERTVCBkYXRhIGRlc3Ryb3kgYWxyZWFkeSBmb3VuZCB2YWx1ZXMuCgkqIHRpbWUvdHpzZWxlY3Qua3NoOiBVc2UgQEtTSEAgYW5kIEBUWkRJUkAgdG8gYmUgc3Vic3RpdHV0ZWQgd2hlbgoJaW5zdGFsbGluZy4KCSogdGltZS90enNldC5jIChfX3R6c2V0X2ludGVybmFsKTogQXZvaWQgZnJlZWluZyBzdHJpbmcgdHdpY2UuCglTZXQgRFNUIHpvbmUgbmFtZSB0byBub3JtYWwgem9uZSBuYW1lIGlmIG5vIGluZm9ybWF0aW9uIGlzIHByb3ZpZGVkLgoKCSogdGltZS9ta3RpbWUuYyAobWt0aW1lKTogQ2FsbCBfX3R6c2V0X2ludGVybmFsIHRvIHVzZSBjdXJyZW50Cgl2YWx1ZSBvZiBUWi4KCgkqIE1ha2VydWxlcyAoY29tbW9uLWNsZWFuKTogUmVtb3ZlICQoZ2VuZXJhdGVkLWRpcnMpIGluY2x1c2luZyBjb250ZW50LgoKCSogZ2xpYmNidWcuaW46IEZpeCBzZXZlcmFsIGJ1Z3MuICBSZXBvcnRlZCBieSBzZXZlcmFsIHBlb3BsZS4KCgkqIGVsZi9NYWtlZmlsZTogQ29ycmVjdCBkZXBlbmRlY2llcyBmb3IgJChvYmpwZngpbGRkLgoKCSogaW5ldC9uZXRpbmV0L2lwLmg6IERlZmluZSBJUFRPU19MT1dDT1NUIGFuZCBJUFRPU19NSU5DT1NULgoKCSogbG9jYWxlL0MtdGltZS5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKiBsb2NhbGUvbG9jYWxlaW5mby5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9ic2Q0LjQvZGlyZW50cnkuaDogTGlrZXdpc2UuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtdGltZS5jICh0aW1lX2ZpbmlzaCk6IENvcnJlY3QgbWVzc2FnZSBzdHJpbmcuCgkqIGxvY2FsZS9wcm9ncmFtcy9saW5lcmVhZGVyLmMgKGxyX3Rva2VuKTogVXNlIGNvcnJlY3RseSBgbnVtYmVyJwoJbm90IGBkaWdpdCcgaW4gbWVzc2FnZSBzdHJpbmcuCgoJKiBzdGRsaWIvc3RydG9sLmMgW1VOU0lHTkVEXTogRG9uJ3QgcHVudCBpbW1lZGlhdGVseSB3aGVuIGAtJyBpcwoJc2Vlbi4gIEluc3RlYWQgcmV0dXJuIFVMT05HX01BWCBhbmQgc2V0IEVSQU5HRS4KCSogc3RkbGliL3RzdC1zdHJ0b2wuYzogQ29ycmVjdCB0ZXN0IHRvIHJlZmxlY3QgYWJvdmUgY2hhbmdlLgoKU3VuIEphbiAxOSAwMzoyMjozMCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tdGlvLmg6IERvbid0IHVzZSA8bGludXgvbXRpby5oPi4KCVdlIG11c3Qgbm90IHVzZSA8bGludXgvcG9zaXhfdHlwZXMuaD4uCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvaXBjX2J1Zi5oOiBEb24ndCB1c2UgX19rZXJuZWxfKiB0eXBlcwoJc2luY2Ugd2UgbXVzdCBub3QgdXNlIDxsaW51eC9wb3NpeF90eXBlcy5oPi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3Byb2Nmcy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzL2lwY19idWYuaDogTmV3IGZpbGUuICBTaW1pbGFyCgl0byBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvaXBjX2J1Zi5oLCBidXQgdXNlIGFscGhhIHJlbGF2ZW50Cgl0eXBlcy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzL3Byb2Nmcy5oOiBOZXcgZmlsZS4gIFNpbWlsYXIKCXRvIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9wcm9jZnMuaCwgYnV0IHVzZSBhbHBoYSByZWxhdmVudAoJdHlwZXMuCgpTdW4gSmFuIDE5IDAxOjQ4OjIwIDE5OTcgIEguSi4gTHUgIDxoamxAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2V4cC5TOiBDb3JyZWN0IGNvbXB1dGF0aW9uIG9mIGZyYWN0aW9uYWwKCXBhcnQuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZXhwZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9leHBsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2V4cG0xLlM6IENvcnJlY3QgY29tcHV0YXRpb24gb2YgZnJhY3Rpb25hbAoJcGFydC4gIFRha2UgY2FyZSBvZiBhZGRpdGlvbmFsIHZhbHVlIGxlZnQgb24gc3RhY2sgYnkgZnNjYWxlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2V4cG0xZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19leHBtMWwuUzogTGlrZXdpc2UuCgpGcmkgSmFuIDE3IDE3OjQ1OjMyIDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcG9zaXgvZ2V0b3B0LmM6IENoYW5nZSBhbGwgZGlyZWN0IHVzYWdlcyBvZiBgZ2V0dGV4dCcgdG8gYF8nLgoKCSogc3lzZGVwcy9nZW5lcmljL3N5c2Qtc3RkaW8uYyAoX19zdGRpb19yZW9wZW4pOiBBZGQgbWlzc2luZwoJcGFyYW1ldGVyLgoJUmVwb3J0ZWQgYnkgSGFybWFuaml0IFNpbmdoIDxoYXJtYW5AbmV0ZWFydGguaWl0ZC5lcm5ldC5pbj4uCgpUaHUgSmFuIDE2IDIzOjM5OjI1IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkaW8tY29tbW9uL01ha2VmaWxlICh0ZXN0cyk6IEFkZCBzY2FuZjExLgoJKiBzdGRpby1jb21tb24vc2NhbmYxMS5jOiBOZXcgZmlsZS4KCSogc3RkaW8tY29tbW9uL3Zmc2NhbmYuYyAoX192ZnNjYW5mKTogSW5jcmVtZW50IGBkb25lJyB3aGVuICVuCgl3YXMgcHJvY2Vzc2VkIGFuZCB2YWx1ZSBpcyBub3Qgc3VwcHJlc3NlZC4KCSogc3RkaW8tY29tbW9uL2J1ZzEwLmM6IENvcnJlY3QgdGVzdCB0byBleHBlY3QgJW4gaW5jcmVtZW50IHRoZQoJcmV0dXJuIHZhbHVlIG9mIHNjYW5mLgoJKiBzdGRpby1jb21tb24vc2NhbmYxLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vc2NhbmYzLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vc2NhbmYxMC5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3RzdGRpb21pc2MuYzogTGlrZXdpc2UuCgoJKiB0aW1lL3N0cnB0aW1lLmM6IEFkZCBsb3RzIG9mIGNvbmRpdGlvbmFsIGNvbXBpbGluZyB0byBlbmFibGUgdXNlCglvdXRzaWRlIGdsaWJjLiAgV2hlbiB1c2VkIGluIGdsaWJjLCBtYWtlIHN1cmUgQyBsb2NhbGUgZm9ybWF0CglzdHJpbmdzIHdpbGwgYWx3YXlzIGJlIHJlY29nbml6ZWQuCgpTYXQgSmFuIDExIDE4OjUzOjQ3IDE5OTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3N5c21hY3Jvcy5oIChtYWpvciwgbWlub3IsIG1ha2VkZXYpOgoJRml4IGRlZmluaXRpb25zIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggX19rZXJuZWxfZGV2X3QuCgpTYXQgSmFuIDExIDE0OjI0OjEwIDE5OTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgva2VybmVsX3NpZ2FjdGlvbi5oLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEva2VybmVsX3NpZ2FjdGlvbi5oLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2lnYWN0aW9uLmM6IE5ldyBmaWxlcy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdDogQWRkIHNfc2lnYWN0aW9uLgoKU3VuIEphbiAxMiAxNToyMjozMyAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGxpYmMtc3ltYm9scy5oIChsaW5rX3dhcm5pbmcpOiBNYWtlIHN1cmUgdGhhdCB0aGUgLmdudS53YXJuaW5nCglzZWN0aW9uIGlzIG5vdCBhbGxvY2F0ZWQuCglVcGRhdGUgYW5kIHJlZm9ybWF0IGNvcHlyaWdodC4KClN1biBKYW4gMTIgMTI6MTk6MjggMTk5NyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBlbGYvTWFrZWZpbGUgKCQob2JqcGZ4KWxkZCk6IEZpeCBkZXBlZGVuY3kgbGlzdC4KClNhdCBKYW4gMTEgMTU6MTE6MjYgMTk5NyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvTWFrZWZpbGUgKCQoY29tbW9uLW9ianBmeClzeXNkLXN5c2NhbGxzKTogRml4Cgljb21tYW5kIHNvIHRoYXQgaXQgd29ya3MgaW4gc3ViZGlyZWN0b3JpZXMuCgpXZWQgSmFuICA4IDIyOjA3OjU4IDE5OTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNjYWxscy5saXN0OiBBZGQgc19nZXRncm91cHMgYW5kCglzX3NldGdyb3Vwcy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNjYWxscy5saXN0OiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9nZXRncm91cHMuYywKCXN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc2V0Z3JvdXBzLmMsCglzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2dldGdyb3Vwcy5jLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zZXRncm91cHMuYzogTmV3IGZpbGVzLgoKV2VkIEphbiAgOCAxOTo0Mjo1OSAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VmaWxlIChjb25maWcuc3RhdHVzKTogRGVsZXRlIGJvZ3VzIHJ1bGUuCgkoJChvYmpwZngpZ2xpYmNidWcpOiBSZW5hbWVkIGZyb20gcGxhaW4gYGdsaWJjYnVnJywgZGVwZW5kIG9uCgljb25maWcuc3RhdHVzIGluIGJ1aWxkIGRpcmVjdG9yeSwgZml4IGNvbW1hbmQgdG8gY2hhbmdlIHRvIGJ1aWxkCglkaXJlY3RvcnkuCgkqIE1ha2Vjb25maWcgKCQoY29tbW9uLW9ianBmeCljb25maWcuc3RhdHVzKTogRGVwZW5kIG9uIHZlcnNpb24uaC4KClRodSBKYW4gIDkgMDg6NDc6NTQgMTk5NyAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiBnbGliY2J1Zy5pbiAod2hpbGUpOiBXZSB0ZXN0IGZvciBmb3VyIGFuZCBub3QgZml2ZSBjb25kaXRpb25zLAoJc2V0IE1BSUxfQUdFTlQgaW5zdGVhZCBvZiBSTUFJTCwgZmlsdGVyIHNwYWNlcyBhbmQgdGFicy4KClRodSBKYW4gMTYgMjI6MDA6MjcgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBtaXNjL3N5c2xvZy5jOiBEb24ndCBkZWZpbmUgY2FuY2VsX2hhbmRsZXIgaWYgX0xJQkNfUkVFTlRSQU5UCglpcyBub3QgZGVmaW5lZC4gIFJlcG9ydGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKVGh1IEphbiAgOSAwODo0Nzo1NCAxOTk3ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIG5ldy1tYWxsb2MvbWFsbG9jLmMgKF9fTUFMTE9DX1ApOiBkZWZpbmUgY2FsbCB0byBwdGhyZWFkCglpbml0aWFsaXplciBvbmx5IGlmIE5PX1RIUkVBRFMgaXMgbm90IGRlZmluZWQuCgpXZWQgSmFuICA4IDIxOjI4OjU4IDE5OTcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYzogQ2xlYW4tdXA6IGRlbGV0ZSB1bm5lY2Vzc2FyeSBpbmNsdWRlcwoJYW5kIHZhcmlhYmxlcy4KClRodSBKYW4gMTYgMjE6NTA6MjcgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpbmV0L2FycGEvaW5ldC5oOiBJbmNsdWRlIDxuZXRpbmV0L2luLmg+IHRvIGdldCBzdHJ1Y3QgaW5fYWRkcgoJZGVmaW5lZC4KClR1ZSBKYW4gIDcgMTc6Mjk6NTkgMTk5NyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlcnVsZXMgKExETElCUy1jLnNvKTogTmV3IHZhcmlhYmxlLgoKVHVlIEphbiAgNyAxOToyMjowMCAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VmaWxlICgkKGluY2x1ZGVkaXIpL2dudS9saWItbmFtZXMuaCk6IERlZmluZSB0aGUgbGlicmFyeQoJbmFtZXMgYXMgc3RyaW5ncywgbm90IGFzIHNlcXVlbmNlIG9mIHRva2VucyB0aGF0IG1heSBmYWxsIGFwYXJ0LgoKRnJpIEphbiAxMCAxNDowODo0MSAxOTk3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBmbWguZnJvYi5jb20+CgoJKiB0aW1lL3R6ZmlsZS5jIChfX3R6ZmlsZV9yZWFkKTogQ2hlY2sgZm9yIGJvZ3VzIHR5cGUgYW5kIHpvbmUgbmFtZQoJaW5kaWNlcyBpbiBkYXRhIGZpbGUgYW5kIHB1bnQsIHNvIGEgYm9ndXMgZmlsZSBjYW4ndCBjcmFzaCB1cy4KClRodSBKYW4gMTYgMjA6Mjk6MTUgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB2YWx1ZXMuaCBbX19VU0VfTUlTQ106IERlZmluZSBCSVRTUEVSQllURS4KCkZyaSBKYW4gMTcgMTQ6MTY6MjggMTk5NyAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN0ZGlvL3ZkcHJpbnRmLmM6IE1vdmVkIGZpbGUgdG8gLi4uCgkqIHN5c2RlcHMvcG9zaXgvdmRwcmludGYuYzogSGVyZS4gIERlLWFuc2lkZWNsaWZpY2F0ZS4KCSogc3lzZGVwcy9zdHViL3ZkcHJpbnRmLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC92ZHByaW50Zi5jOiBOZXcgZmlsZS4KClRodSBKYW4gIDkgMTU6NTk6MzUgMTk5NyAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3Bvc2l4X29wdC5oOiBOZXcgZmlsZS4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NpZ3dhaXQuYyAoc2lnd2FpdCk6IERvbid0IGFmZmVjdCBzaWduYWwgbWFzay4KCgkqIHN5c2RlcHMvdW5peC9ic2QvdGNzZW5kYnJrLmMgKHRjc2VuZGJyZWFrKTogRmluaXNoCglkZWFuc2lkZWNsaWZpY2F0aW9uLgoKCSogc3lzZGVwcy9tYWNoL2xpYmMtbG9jay5oOiBBZGQga2x1ZGdlcyB0byBwcmV0ZW5kIHRvIGltcGxlbWVudAoJcmVjdXJzaXZlIGxvY2tzLgoKVHVlIEphbiAgNyAwOTo0ODoxNSAxOTk3ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIHNpZ25hbC9zaWdlbXB0eS5jIChzaWdlbXB0eXNldCk6IENvcnJlY3QgdHlwbzogRW1wdHkgc2V0IHNob3VsZAoJaGF2ZSBhbGwgYml0cyB6ZXJvLgoKVHVlIEphbiAgNyAyMzo0NDozOSAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGluZXQvZ2V0aHN0YnlubS5jOiBJbmNsdWRlIGFkZGl0aW9uYWwgaGVhZGVycyBmb3IgYWRkaXRpb25hbAoJY29kZSBpbiBuc3MvZGlnaXRzX2RvdHMuYy4KCSogaW5ldC9nZXRoc3RieW5tX3IuYzogTGlrZXdpc2UuCgkqIGluZXQvZ2V0aHN0YnlubTIuYzogTGlrZXdpc2UuCgkqIGluZXQvZ2V0aHN0YnlubTJfci5jOiBMaWtld2lzZS4KCSogbnNzL2RpZ2l0c19kb3RzLmM6IE5ldyBmaWxlLiAgSGFuZGxlIGRvdHRlZCBwYWlyIG5vdGF0aW9uIGZvcgoJZ2V0aHN0YnlubSBmdW5jdGlvbnMuCgkqIG5zcy9nZXRYWGJ5WVkuYzogSW5jbHVkZSBkaWdpdHNfZG90cy5jIHRvIGdldCBleHRyYSBjb2RlIGZvcgoJaGFuZGxpbmcgZG90dGVkIHBhaXIgbm90YXRpb24uCgkqIG5zcy9nZXRYWGJ5WVlfci5jOiBMaWtld2lzZS4KCVBhdGNoZXMgYnkgSEogTHUuCgoJKiByZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jOiBEb24ndCBoYW5kbGUgZG90dGVkIHBhaXIgbm90YXRpb24uCgoJKiBpby9nZXR3ZC5jOiBPcHRpbWl6ZWQgYSBiaXQuCgoJKiBzaWduYWwvc2lnbmFsLmg6IEFsd2F5cyBkZWNsYXJlIF9fc3lzdl9zaWduYWwuCgoJKiBzeXNkZXBzL2dlbmVyaWMvc2V0ZW52LmM6IEFkZCBzb21lIHBvcnRhYmlsaXR5IGNvZGUuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9mY250bGJpdHMuaDogVXBkYXRlIGNvcHlyaWdodC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2ZjbnRsYml0cy5oOiBBZGQgZGVmaW5pdGlvbnMgZnJvbSBrZXJuZWwKCXRvIGF2b2lkIHVzaW5nIGtlcm5lbCBoZWFkZXJzLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9mY250bGJpdHMuaDogTmV3IGZpbGUuICBBbHBoYQoJc3BlY2lmaWMgdmVyc2lvbi4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IEFkZCBzeXNfbWtub2QuICBEb24ndAoJbWFyayBzaWdyZXR1cm4gYXMgRVhUUkEuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC91c3RhdC5jOiBEZWNsYXJlIF9fc3lzY2FsbF91c3RhdC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvdXN0YXQuYzogTmV3IGZpbGUuICBBbHBoYSB2ZXJzaW9uLgoKVHVlIEphbiAgNyAwOTo0ODoxNSAxOTk3ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIGlvL2Z0cy5jIChmdHNfYWxsb2MpOiBBZGQgY29uc3QgdG8gc2Vjb25kIHBhcmFtZXRlciBvZiBmdW5jdGlvbi4KCgkqIGlvL01ha2VmaWxlOiBDaGFuZ2UgQ0ZMQUdTLWZ0cy5jIGFuZCBkZWZpbmUgQ0ZMQUdTLWZ0dy5jIHRvCglwcmV2ZW50IHdhcm5pbmdzLgoKCSogc2lnbmFsL3NpZ2ZpbGxzZXQuYzogSW5jbHVkZSA8c3RyaW5nLmg+IGZvciBtZW1zZXQgZGVjbGFyYXRpb24uCgpUdWUgSmFuICA3IDExOjE0OjMyIDE5OTcgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL2dlbmVyaWMvc2V0ZW52LmM6IEZpeCBwb3J0YWJpbGl0eSBwcm9ibGVtcy4KClR1ZSBKYW4gIDcgMDI6MTA6MTcgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBwb3NpeC9nZXRvcHQuYyAoX2dldG9wdF9pbnRlcm5hbCk6IERvbid0IHJlc2V0IF9fZ2V0b3B0X2luaXRpYWxpemVkCglhZnRlciB0aGUgbGFzdCBvcHRpb24gd2FzIHNlZW4uCgpNb24gSmFuICA2IDE1OjMwOjIxIDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL2VsZi5oIChEVF9FWFRSQU5VTSk6IFNldCB0byAzIHNpbmNlIDB4N2ZmZmZmZmQgaXMgdXNlZC4KCk1vbiBKYW4gIDYgMTM6NTc6MDUgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpby9mdHcuYzogQWRkIGBjb25zdCcgdG8gc2Vjb25kIHBhcmFtZXRlciBvZiBmdW5jdGlvbiBnaXZlbiBhcwoJc2Vjb25kIHBhcmFtZXRlciB0byBmdHcuCgkqIGlvL2Z0dy5oOiBMaWtld2lzZSBmb3IgcHJvdG90eXBlLgoJUmVwb3J0ZWQgYnkgUm9uYWxkIEYuIEd1aWxtZXR0ZSA8cmZnQG1vbmtleXMuY29tPi4KClRodSBKYW4gIDIgMjM6NDQ6MzkgMTk5NyAgUGhpbGlwIEJsdW5kZWxsICA8cGpiMjdAY2FtLmFjLnVrPgoKCSogaW5ldC9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBuZXRpbmV0L2lwLmguCgkqIGluZXQvbmV0aW5ldC9pcC5oOiBOZXcgZmlsZSwgY29udGFpbnMgQlNEIGRlZmluaXRpb25zIGZvciBzdHJ1Y3QKCWlwIGFuZCBmcmllbmRzLgoKRnJpIEphbiAgMyAyMzoxNzoxMSAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN0cmluZy9zdHJpbmcuaCAoc3Rybmxlbik6IEFkZCBjYXN0IGZvciBDKysuCgpNb24gSmFuICA2IDAzOjMxOjQ2IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUgKGluc3RhbGwtYmluKTogRGVmaW5lIGFzIGdsaWJjYnVnIHRvIGluc3RhbGwgc2NyaXB0LgoJKGdsaWJjYnVnKTogTmV3IHJ1bGVzLiAgQ3JlYXRlIGZyb20gZ2xpYmNidWcuaW4uCgkqIGNvbmZpZ3VyZS5pbiAoQUNfT1VUUFVUKTogR2VuZXJhdGUgZ2xpYmNidWcgc2NyaXB0LgoJKiBnbGliY2J1Zy5pbjogTmV3IGZpbGUuCgkqIHZlcnNpb24uYzogTWVudGlvbiBnbGliY2J1ZyB0byByZXBvcnQgYnVncy4KCSogY2F0Z2V0cy9nZW5jYXQuYzogTGlrZXdpc2UuCgkqIGRiL21ha2VkYi5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZS5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZWRlZi5jOiBMaWtld2lzZS4KCSogZWxmL2xkZC5iYXNoLmluOiBMaWtld2lzZS4KCSogZWxmL2xkZC5zaC5pbjogTGlrZXdpc2UuCgkqIGludGwvbG9jYWxlLmFsaWFzOiBMaWtld2lzZS4KCgkqIG1jaGVjay5oOiBOZXcgZmlsZS4gIE5lY2Vzc2FyeSBzaW5jZSBtY2hlY2suaCBpcyB1c2VkIGluIHRpbWUvYXAuYy4KCgkqIHNldC1pbml0LmM6IFVwZGF0ZSBhbmQgcmVmb3JtYXQgY29weXJpZ2h0LgoJKiB2ZXJzaW9uLmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnYWRkc2V0LmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnZGVsc2V0LmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnZW1wdHkuYzogTGlrZXdpc2UuCgkqIHNpZ25hbC9zaWdmaWxsc2V0LmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnZ2V0bWFzay5jOiBMaWtld2lzZS4KCSogc2lnbmFsL3NpZ2lzbWVtLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvc3BlZWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9nZXRkZW50cy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3hta25vZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9wb2xsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3RjZHJhaW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdGNmbG93LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3RjZmx1c2guYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdGNnZXRwZ3JwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3Rjc2VuZGJyay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC90Y3NldHBncnAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc3VuL3N1bm9zNC90Y3NldGF0dHIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2dldGRlbnRzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9pMzg2L3NpZ3JldHVybi5TOiBMaWtld2lzZS4KCSogdGVybWlvcy9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHRlcm1pb3MvY2ZtYWtlcmF3LmM6IExpa2V3aXNlLgoJKiB0ZXJtaW9zL2Nmc2V0c3BlZWQuYzogTGlrZXdpc2UuCgoJKiB2ZXJzaW9uLmg6IEJ1bXAgVkVSU0lPTiB0byAxLjEwMC4KCgkqIGludGwvZmluZGRvbWFpbi5jOiBEZWZpbmluZyBzdHBjcHkgZnVuY3Rpb24gaXNuJ3QgbmVjZXNzYXJ5LgoKCSogbGliaW8vZ2Vub3BzLmMgKF9JT19pbml0KTogVXNlIF9JT19sb2NrX2luaXQgaW5zdGVhZCBvZgoJX0lPX2xvY2tfaW5pdF9yZWN1cnNpdmUuCgkqIGxpYmlvL3N0ZGZpbGVzLmMgKERFRl9TVERGSUxFKTogVXNlIF9JT19sb2NrX2luaXRpYWxpemVyIGluc3RlYWQKCW9mIF9JT19sb2NrX2luaXQuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvY2hhcm1hcC5jIChvYnN0YWNrX2NodW5rX2FsbG9jKTogVXNlIG1hbGxvYyBpbnN0ZWFkCglvZiB4bWFsbG9jLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtY29sbGF0ZS5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL3NpbXBsZS1oYXNoLmM6IExpa2V3aXNlLgoKCSogbWlzYy9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBzZWxlY3RiaXRzLmguCgkqIG1pc2Mvc3lzL3NlbGVjdC5oOiBJbmNsdWRlIDxzZWxlY3RiaXRzLmg+IHRvIGdldCBuZWNlc3NhcnkKCWRlZmluaXRpb25zLgoJKiBzeXNkZXBzL2dlbmVyaWMvc2VsZWN0Yml0cy5oOiBOZXcgZmlsZS4gIEdlbmVyaWMgbWFjcm9zIGZvcgoJaGFuZGxpbmcgZmlsZSBkZXNjcmlwdG9yIHNldHMuCgkqIHN5c2RlcHMvaTM4Ni9zZWxlY3RiaXRzLmg6IE5ldyBmaWxlLiAgaTM4NiBzcGVjaWZpYyBtYWNyb3MgZm9yCgloYW5kbGluZyBmaWxlIGRlc2NyaXB0b3Igc2V0cy4KCSogc3lzZGVwcy9nZW5lcmljL2dudS90eXBlcy5oOiBSZW1vdmUgX0ZEXyogbWFjcm9zLgoKCSogbWlzYy9tbnRlbnRfci5jOiBGaXggaGFuZGxpbmcgb2YgbXVsdGlwbGUsIGNvbW1hLXNlcGFyYXRlZAoJb3B0aW9ucy4gIFBhdGNoIGJ5IFNhaS1MYWkgTG8gPHNsbEBvcmwuY28udWs+LgoKCSogcG8vZGUucG86IFVwZGF0ZS4KCSogcG8va28ucG86IFVwZGF0ZS4KCSogcG8vc3YucG86IFVwZGF0ZS4KCgkqIHBvc2l4L2dldG9wdC5jOiBPbmx5IHVzZSB0aGUgYmFzaCBnZW5lcmF0ZWQgZW52aXJvbm1lbnQgdmFyaWFibGUKCXRvIGRldGVybWluZSBub24tb3B0aW9uIHBhcmFtZXRlcnMgd2hlbiB1c2luZyBpbiBHTlUgbGliYyBhbmQgaWYKCXRoZSBhcmd1bWVudCB2ZWN0b3IgZ2l2ZW4gdG8gZ2V0b3B0IGlzIHRoZSBzYW1lIGFzIGdpdmVuIHRvIHRoZQoJcHJvZ3JhbS4KCgkqIHBvc2l4L3VuaXN0ZC5oIFtfX1VTRV9HTlVdOiBEZWNsYXJlIGVudmlyb24uCgoJKiBwb3NpeC9zeXMvdHlwZXMuaCAoa2V5X3QpOiBBbHNvIGRlZmluZSB3aGVuIF9fVVNFX1hPUEVOLgoKCSogcmVzb2x2L3Jlc19kZWJ1Zy5jOiBBZGQgY2FzdHMgdG8gcHJldmVudCB3YXJuaW5ncy4KCSogcmVzb2x2L3Jlc19xdWVyeS5jOiBMaWtld2lzZS4KCgkqIHJlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmM6IENoYW5nZSB0eXBlIGZvciBidWZmZXIgc2l6ZSBhcmd1bWVudHMKCXRvIGBzaXplX3QnLgoJKiByZXNvbHYvbnNzX2Rucy9kbnMtbmV0d29yay5jOiBMaWtld2lzZS4KCgkqIHNpZ25hbC9zaWdlbXB0eS5jOiBVc2UgbWVtc2V0IHRvIGluaXRpYWxpemUgdmFyaWFibGUuCgkqIHNpZ25hbC9zaWdmaWxsc2V0LmM6IExpa2V3aXNlLgoKCSogc2lnbmFsL3NpZ25hbC5oOiBDaGFuZ2UgYmFjayBoYW5kbGluZyBvZiBzaWduYWwuICBUaGUgQlNECgl2ZXJzaW9uIGlzIHByZWZlcnJlZCBhbmQgdGhlIG5ldyBzeXN2X3NpZ25hbCBpcyB1c2VkIHdoZW4KCV9fVVNFX1hPUEVOLgoJKiBzeXNkZXBzL3Bvc2l4L3N5c3Zfc2lnbmFsLmM6IFJlbmFtZWQgZnJvbSBzaWduYWwuYy4gIFVzZSBTVklECglzZW1hbnRpYy4KCSogc3lzZGVwcy9wb3NpeC9zaWduYWwuYzogUmVuYW1lZCBmcm9tIGJzZF9zaWduYWwuYy4gIFVzZSBCU0QKCXNlbWFudGljLgoJKiBzeXNkcGVzL3Bvc2l4L3NpZ3BhdXNlLmM6IENvcnJlY3QgY29tbWVudC4KCSogc3lzZGVwcy9zdHViL3NpZ3BhdXNlLmM6IFByb3ZpZGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KCSogc2lnbmFsL01ha2VmaWxlIChyb3V0aW5lcyk6IFJlbW92ZSBic2Rfc2lnbmFsLCBhZGQgc3lzdl9zaWduYWwuCgoJKiBzeXNkZXBzL2dlbmVyaWMvYWJvcnQuYzogQWxsb3cgcmVwZWF0ZWQgY2FsbHMgdG8gYWJvcnQgaWYKCWEgdXNlciBkZWZpbmVkIGhhbmRsZXIgZm9yIFNJR0FCUlQgaXMgaW5zdGFsbGVkLgoKCSogc3lzZGVwcy9zdHViL2xpYmMtbG9jay5oOiBEZWZpbmUgc2VwYXJhdGUgc2V0IG9mIG1hY3JvcyBmb3IKCWhhbmRsaW5nIHJlY3Vyc2l2ZSBtdXRleGVzLgoKCSogc3lzZGVwcy91bml4L01ha2VmaWxlOiBDaGFuZ2UgcnVsZSB0byBnZW5lcmF0ZSBzeXNjYWxsLmggZmlsZQoJc28gdGhhdCBpdCBpcyBnZW5lcmF0ZSBpbiB0aGUgc3lzLyBzdWJkaXIuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9EaXN0OiBBZGQga2VybmVsX3Rlcm1pb3MuaC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvRGlzdDogQWRkIGtlcm5lbF90ZXJtaW9zLmggYW5kCglzeXMvYWNjdC5oLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZGlyZW50cnkuaDogRG9uJ3QgdXNlIHN0cnVjdCBkaXJlbnQgZnJvbQoJa2VybmVsLiAgRGVmaW5lIG93biB2ZXJzaW9uIHdpdGggYWRkaXRpb25hbCBmaWVsZCBkX3R5cGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldGRlbnRzLmM6IE5ldyBmaWxlLiAgUmVmb3JtYXQgZGlyZW50CgllbnRyaWVzIGFmdGVyIHJlYWRpbmcgZnJvbSBrZXJuZWwuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nbnUvdHlwZXMuaDogRG9uJ3QgdXNlIGtlcm5lbCBoZWFkZXJzLgoJRGVmaW5lIHR5cGVzIGJhc2VkIG9uIGtlcm5lbCB0eXBlcyBleGNlcHQgZm9yIHVpZF90LCBnaWRfdCwgbW9kZV90LAoJZGV2X3Qgd2hpY2ggYXJlIGxhcmdlciBub3cuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2dudS90eXBlcy5oOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lvY3RsLXR5cGVzLmg6IERvbid0IGluY2x1ZGUKCTxsaW51eC90ZXJtaW9zLmg+LiAgRGVmaW5lIHN0cnVjdHVyZSBoZXJlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pb2N0bC10eXBlcy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgva2VybmVsX3Rlcm1pb3MuaDogTmV3IGZpbGUuIERlZmluZQoJYXJjaGl0ZWN0dXJlIGRlcGVuZGVudCBzdHJ1Y3QgdGVybWlvIHR5cGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2tlcm5lbF90ZXJtaW9zLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaWdzZXQuaDogRGVmaW5lIGV4dGVuZGVkIHNpZ3NldF90IHR5cGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NpZ3N1c3BlbmQuYzogUGFzcyBmaXJzdCB3b3JkIG9mIGFycmF5Cgl0byBzeXNjYWxsLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc29ja2V0Yml0cy5oOiBEb24ndCB1c2Uga2VybmVsIGhlYWRlci4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3RhdGZzYnVmLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90ZXJtYml0cy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvdGVybWJpdHMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3VzdGF0Yml0cy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L2lmLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXRpbmV0L2luLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvYWNjdC5oOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zeXNtYWNyb3MuaCAobWlub3IsIG1ham9yLCBta2Rldik6CglDaGFuZ2UgZGVmaW5pdGlvbnMgdG8gZml0IG5ldyBkZXZfdCBkZWZpbml0aW9uLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdDogQWRkIGdldGRlbnRzIGFuZCBzaWdyZXR1cm4uCglSZW5hbWUgdXN0YXQgdG8gc191c3RhdCBzaW5jZSB3cmFwcGVyIGlzIG5lZWRlZC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RjZ2V0YXR0ci5jOiBBZnRlciBnZXR0aW5nIHZhbHVlIGZyb20KCWtlcm5lbCByZXdyaXRlIGl0IHRvIHVzZXJsYW5kIGxldmVsIGRhdGEgZm9ybWF0LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90Y3NldGF0dHIuYzogQmVmb3JlIGNhbGxpbmcga2VybmVsIGNoYW5nZQoJZGF0YSBmb3JtYXQgdG8ga2VybmVsIGZvcm1hdC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvdXN0YXQuYzogTmV3IGZpbGUuICBDaGFuZ2UgZm9ybWF0IG9mCglkZXZpY2UgcGFyYW1ldGVyIHRvIGZvcm1hdCBuZWVkZWQgYnkga2VybmVsLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS91c3RhdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgveG1rbm9kLmM6IE5ldyBmaWxlLiAgRXh0ZW5kIGdlbmVyaWMKCXZlcnNpb24gdG8gY2hhbmdlIGRldmljZSBwYXJhbWV0ZXIgdG8gZm9ybWF0IG5lZWRlZCBieSBrZXJuZWwuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3hta25vZC5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5cy9hY2N0Lmg6IE5ldyBmaWxlLiAgQWxwaGEgc3BlY2lmaWMKCWRlZmluaXRpb24gb2YgYWNjb3VudGluZyBzdHJ1Y3R1cmUuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvcHRyYWNlLmg6IEluY2x1ZGUgPGFzbS9wdHJhY2UuaD4uCglQYXRjaCBieSBBbmRyZWFzIFNjaHdhYi4KCgkqIHRpbWUvYXAuYzogSW5jbHVkZSA8bWNoZWNrLmg+LgoKCSogdGltZS90enNldC5jIChfX3R6c2V0X2ludGVybmFsKTogQ2hhbmdlIHRvIHRha2Ugb25lIGFyZ3VtZW50Cgl3aGljaCB0ZWxscyB3aGV0aGVyIGV4YW1pbmluZyBvZiBUWiBpcyBhbHdheXMgd2FudGVkIG9yIG9ubHkgaWYKCW5vIGluaXRpYWxpemF0aW9uIGhhcHBlbmVkIGJlZm9yZS4KCSogdGltZS9sb2NhbHRpbWUuYzogKGxvY2FsdGltZSwgX19sb2NhbHRpbWVfcik6IENoYW5nZSBmb3IgbmV3CglfX3R6c2V0X2ludGVybmFsIGZvcm0uCgoJKiB0aW1lL3N5cy90aW1lLmg6IEluY2x1ZGUgPHN5cy9zZWxlY3QuaD4gdG8gZ2V0IHNlbGVjdCByZWxhdGVkCglkZWNsYXJhdGlvbnMuCgpNb24gSmFuICA2IDAxOjU4OjIxIDE5OTcgIFJpY2hhcmQgSGVuZGVyc29uICA8cmljaGFyZEBhdGhlaXN0LnRhbXUuZWR1PgoKCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX2R5bmFtaWMpOiBXb3JrIGFyb3VuZAoJYnVnIGluIEdOVSBsZC4KCk1vbiBKYW4gIDYgMDE6MzU6MjkgMTk5NyAgSC5KLiBMdSAgPGhqbEBnbnUuYWkubWl0LmVkdT4KCgkqIG1pc2MvZ2V0cGFzcy5jOiBNYWtlIHN1cmUgdGhlIGNvbnRlbnQgb2YgdGhlIGlucHV0IGJ1ZmZlciBpcyBub3QKCXByaW50ZWQgaWYgdGhlIGdldHBhc3MgZnVuY3Rpb24gaXMgaW50ZXJydXB0ZWQuCgpTYXQgSmFuICA0IDE3OjA3OjA4IDE5OTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGZtaC5mcm9iLmNvbT4KCgkqIG1kNS1jcnlwdC9NYWtlZmlsZSAocnBhdGgtbGluayk6IEFkZCBtZDUtY3J5cHQgb2JqZGlyLCBub3QgY3J5cHQuCgpUaHUgSmFuICAyIDE3OjU4OjIzIDE5OTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGZtaC5mcm9iLmNvbT4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9hYm9ydC5jOiBJbmNsdWRlIDxzdHJpbmcuaD4gZm9yIG1lbXNldCBkZWNsLgoKCSogbmV3LW1hbGxvYy9tY2hlY2suYyBbX0xJQkMgfHwgU1REQ19IRUFERVJTIHx8IFVTR106IEluY2x1ZGUKCTxzdHJpbmcuaD4gc28gbWVtc2V0IGlzIGRlY2xhcmVkLgoKVHVlIERlYyAzMSAyMToxNjowNSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBmbWguZnJvYi5jb20+CgoJKiBlbGYvZGwtZGVwcy5jIChfZGxfbWFwX29iamVjdF9kZXBzKTogU3VwcG9ydCBEVF9BVVhJTElBUlkuCgoJKiBlbGYvZGwtZXJyb3IuYyAoX2RsX2NhdGNoX2Vycm9yKTogU2F2ZSBhbmQgcmVzdG9yZSBvbGQgY2F0Y2ggc2l0ZSBzbwoJY2FsbHMgY2FuIGJlIG5lc3RlZC4KCgkqIGVsZi9saW5rLmggKHN0cnVjdCBsaW5rX21hcCk6IEV4dGVuZCBgbF9pbmZvJyBieSBEVF9FWFRSQU5VTSBlbHRzLgoJKiBlbGYvZHluYW1pYy1saW5rLmggKGVsZl9nZXRfZHluYW1pY19pbmZvKTogR3JvayB0YWdzIGluIHRoZSBTdW4KCWV4dGVuc2lvbiByYW5nZS4KCgkqIGVsZi9lbGYuaCAoRFRfQVVYSUxJQVJZLCBEVF9GSUxURVIsIERUX0VYVFJBTlVNKTogTmV3IGNvbnN0YW50CgltYWNyb3MsIGZvciBTdW4gZXh0ZW5zaW9ucy4KCShEVF9FWFRSQVRBR0lEKTogTmV3IG1hY3JvIHRvIGNvbnZlcnQgU3VuIGV4dGVuc2lvbiB0YWcgdmFsdWVzIHBsYWNlZAoJbmVhciB0aGUgdG9wIG9mIHRoZSBwcm9jZXNzb3Itc3BlY2lmaWMgcmFuZ2UgaW50byB6ZXJvLW9yaWdpbiBpbmRpY2VzLgoKCSogZWxmL2RsLWRlcHMuYyAoX2RsX21hcF9vYmplY3RfZGVwcyk6IENoZWNrIGZvciBtYWxsb2MgZmFpbHVyZS4KClNhdCBKYW4gIDQgMjI6MjU6MDEgMTk5NyAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiBsaWJpby9mY2xvc2VhbGwuYzogSW5jbHVkZSBzdGRpby5oIGZvciBwcm90b3R5cGUgZGVjbGFyYXRpb24gZm9yCglfX2ZjbG9zZWFsbC4KClRodSBKYW4gIDIgMTc6MzU6MjAgMTk5NyAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvcG9zaXgvc2lnbmFsLmM6IFByb3ZpZGUgaWdub3JhYmxlIGRlZmluaXRpb25zIG9mCglTQV9PTkVTSE9ULCBTQV9OT01BU0ssIGFuZCBTQV9JTlRFUlJVUFQgZm9yIG5vbi10aHJlYWRzIFBvc2l4CglzeXN0ZW1zLgoKVGh1IEphbiAgMiAyMzoyMDo1MSAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VUQUdTICgkUC9zaWdsaXN0LnBvdCk6IERlbGV0ZSBydWxlLgoJKFhHRVRURVhURkxBR1Mtc2lnbGlzdC5wb3QpOiBSZW1vdmUgZGVmaW5pdGlvbi4KCShhbGwtcG90KTogUmVtb3ZlICRQL3NpZ2xpc3QucG90LgoJKiBzeXNkZXBzL3VuaXgvc2lnbGlzdC5jOiBNYXJrIHN0cmluZ3MgYXMgdHJhbnNsYXRhYmxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaWdsaXN0Lmg6IExpa2V3aXNlLgoKV2VkIEphbiAgMSAyMjoyMToxOCAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIG1pc2Mvc3lzY2FsbC5oOiBOZXcgZmlsZS4KCSogbWlzYy9zeXMvc3lzY2FsbC5oOiBSZW1vdmVkLiAgRm9yd2FyZGluZyB0byA8c3lzY2FsbC5oPiBtaWdodAoJZmluZCB1c2VyIGhlYWRlciwgc28gZG8gaXQgdGhlIG90aGVyIHdheSByb3VuZC4KCSogc3lzZGVwcy9tYWNoL3N5cy9zeXNjYWxsLmg6IE1vdmVkIGhlcmUgZnJvbSBwYXJlbnQgZGlyZWN0b3J5LgoJKiBzeXNkZXBzL3N0dWIvc3lzL3N5c2NhbGwuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zeXNjYWxsLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zY28zLjIuNC9zeXMvc3lzY2FsbC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgKCQob2JqcGZ4KXN5c2NhbGwtJS5oKTogVXBkYXRlCglkZXBlbmRlbmN5LgoJKiBzeXNkZXBzL3VuaXgvc3lzZGVwLmg6IEluY2x1ZGUgPHN5cy9zeXNjYWxsLmg+IGluc3RlYWQgb2YKCTxzeXNjYWxsLmg+LgoKVHVlIERlYyAzMSAwMDowMzoxOCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGZlYXR1cmVzLmg6IEZpeCB0eXBvLgoKVGh1IEphbiAgMiAwMDo0NjowOSAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxpYmlvL19HX2NvbmZpZy5oOiBBZGQgX0dfSEFWRV9MT05HX0RPVUJMRV9JTyBmb3IgbGliZysrLgoKV2VkIEphbiAgMSAxNToxNTowMCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxpYmlvL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBmY2xvc2VhbGwuCgkqIGxpYmlvL2ZjbG9zZWFsbC5jOiBOZXcgZmlsZS4KCSogbGliaW8vc3RkaW8uaCBbX19VU0VfR05VXTogQWRkIHByb3RvdHlwZSBmb3IgZmNsb3NlYWxsLgoJKiBsaWJpby9pb2ZjbG9zZS5jOiBEb24ndCBjbG9zZSBhbGwgc3RyZWFtcyB3aGVuIGFyZ3VtZW50IGlzIE5VTEwuCgoJKiBzdGRpby9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgZmNsb3NlYWxsLgoJKiBzdGRpby9mY2xvc2VhbGwuYzogTmV3IGZpbGUuCgkqIHN0ZGlvL3N0ZGlvLmggW19fVVNFX0dOVV06IEFkZCBwcm90b3R5cGUgZm9yIGZjbG9zZWFsbC4KCSogc3RkaW8vZmNsb3NlLmM6IERvbid0IGNsb3NlIGFsbCBzdHJlYW1zIHdoZW4gYXJndW1lbnQgaXMgTlVMTC4KCgkqIG1hbnVhbC9zdGRpby50ZXhpOiBEb2N1bWVudCBmY2xvc2VhbGwuCgoJKiBzeXNkZXBzL2dlbmVyaWMvYWJvcnQuYzogQ2FsbCBfX2ZjbG9zZWFsbCBpbnN0ZWFkIG9mIGZjbG9zZSB3aXRoCglOVUxMIGFyZ3VtZW50LgoKCSogc29ja2V0L3N5cy91bi5oIChTVU5fTEVOKTogQWRkIGNhc3QuCgoJKiBzdW5ycGMvYXV0aF91bml4LmMgKGF1dGh1bml4X2NyZWF0ZSk6IENoYW5nZSBwYXJhbWV0ZXIgdHlwZXMKCW9mIHVpZCwgZ2lkLCBhbmQgYXVwX2dpZHMgdG8gdWlkX3QgYW5kIGdpZF90IHJlc3BlY3RpdmVseS4KCShhdXRodW5peF9jcmVhdGVfZGVmYXVsdCk6IExpa2V3aXNlLgoJKGF1dGh1bml4X3JlZnJlc2gpOiBDb3JyZWN0IGNhc3QgZm9yIGF1cF9naWRzIGFzc2lnbm1lbnQuCgkqIHN1bnJwYy9ycGMvYXV0aC5oIChhdXRodW5peF9jcmVhdGUpOiBDb3JyZWN0IHR5cGVzIGluIGRlY2xhcmF0aW9uLgoJKiBzdW5ycGMvcnBjL2F1dGhfdW5peC5oIChzdHJ1Y3QgYXV0aHVuaXhfcGFybXMpOiBDb3JyZWN0IGZpZWxkCgl0eXBlcyB0byB1aWRfdCBhbmQgZ2lkX3QgcmVzcGVjdGl2ZWx5LgoJKHN0cnVjdCBzaG9ydF9oYW5kX3ZlcmYpOiBMaWtld2lzZS4KCVJlcG9ydGVkIGJ5IEFuZHJlYXMgU2Nod2FiLgoKCSogc3lzZGVwcy9pZWVlNzU0L01ha2VmaWxlOiBOZXcgZmlsZS4gIE1ha2Ugc3VyZSBpZWVlNzU0LmggZ2V0cwoJaW5zdGFsbGVkLgoJKiBzeXNkZXBzL2llZWU3NTQvaWVlZTc1NC5oOiBQcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5jbHVzaW9uIGFuZAoJdXNlIGluIEMrKyBwcm9ncmFtcy4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfcG93LlM6IE5ldyBmaWxlLiAgT3B0aW1pemVkIGl4ODcgYXNzZW1ibGVyCgl2ZXJzaW9uIG9mIHBvdygpIGZ1bmN0aW9uLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3Bvd2YuUzogTmV3IGZpbGUuICBGbG9hdCB2ZXJzaW9uLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3Bvd2wuUzogTmV3IGZpbGUuICBMb25nIGRvdWJsZSB2ZXJzaW9uLgoKCSogc3lzZGVwcy9saWJtLWkzODcvc19leHBtMS5TOiBOZXcgZmlsZS4gIE9wdGltaXplZCBpeDg3IGFzc2VtYmxlcgoJdmVyc2lvbiBvZiBleHBtMSgpIGZ1bmN0aW9uLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2V4cG0xZi5TOiBOZXcgZmlsZS4gIEZsb2F0IHZlcnNpb24uCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZXhwbTFsLlM6IE5ldyBmaWxlLiAgTG9uZyBkb3VibGUgdmVyc2lvbi4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZXhwLlM6IE9wdGltaXplIGhhbmRsaW5nIG9mICstSW5mLgoJQmV0dGVyIGhhbmRsaW5nIG9mIGNvbXB1dGF0aW9uIHN0YWNrIGZyb20gY3VycmVudCBOZXRCU0Qgc291cmNlcy4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9leHBmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2V4cGwuUzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZy5TOiBVc2UgZnN0cCBpbnN0ZWFkIG9mIGZpbmNzdHAuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2dsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZzEwLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZzEwZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2cxMGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfYXNpbmguUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfYXNpbmhmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2FzaW5obC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaWduaWZpY2FuZGwuUzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2NlaWwuUzogRG9uJ3QgY3JlYXRlIHN0YWNrIGZyYW1lLiAgTW9kaWZ5CglzdGFjayBwb2ludGVyIGRpcmVjdGx5LiAgVXNlIDMyIGJpdCBpbnN0ZWFkIG9mIDE2IGJpdCBvcGVyYXRpb25zLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2NlaWxmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2NlaWxsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Zsb29yLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Zsb29yZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19mbG9vcmwuUzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX2Nvc2hmLmMgKGh1Z2UpOiBEb24ndCBkZWNsYXJlIHZvbGF0aWxlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX2V4cGYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfcG93Zi5jOiBMaWtld2lzZS4KCUZyb20gY3VycmVudCBOZXRCU0Qgc291cmNlcy4KCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfaHlwb3QuYyAoX19pZWVlNzU0X2h5cG90KTogRG9uJ3QgaW5pdGlhbGl6ZQoJYGEnIGFuZCBgYicgaW4gZGVmaW5pdGlvbi4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9oeXBvdGYuYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX2h5cG90bC5jOiBOZXcgZmlsZS4gIExvbmcgZG91YmxlCglpbXBsZW1lbnRhdGlvbi4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9zaW5obC5jOiBOZXcgZmlsZS4gIExvbmcgZG91YmxlCglpbXBsZW1lbnRhdGlvbi4KCSogc3lzZGVwcy9zdHViL2VfaHlwb3RsLmM6IFJlbW92ZWQuICBXZSBoYXZlIGEgcmVhbCB2ZXJzaW9uIG5vdy4KCSogc3lzZGVwcy9zdHViL2Vfc2luaGwuYzogUmVtb3ZlZC4KCgkqIHN5c2RlcHMvcG9zaXgvc2lncGF1c2UuYyAoX19zaWdwYXVzZSk6IFVzZSBzaWdkZWxzZXQgaW5zdGVhZCBvZgoJc2lnYWRkc2V0LiAgUmVwb3J0ZWQgYnkgQW5kcmVhcyBTY2h3YWIuCgkoX19kZWZhdWx0X3NpZ3BhdXNlKTogTmV3IGZ1bmN0aW9uLiAgQ2FsbCBfX3NpZ3BhdXNlIGFzIEJTRCB2ZXJzaW9uLgoJTWFrZSB0aGlzIHRoZSBkZWZhdWx0IGZ1bmN0aW9uIGJ5IHByb3ZpZGluZyBhbGlhcyBzaWdwYXVzZS4KCSogc3lzZGVwcy9zdHViL3NpZ3BhdXNlLmMgKF9fZGVmYXVsdF9zaWdwYXVzZSk6IE5ldyBmdW5jaXRvbi4KCVNpbXBseSBmYWlsLiAgUHJvdmlkZSBhbGlhcyBzaWdwYXVzZS4KCldlZCBKYW4gIDEgMTI6MzQ6NTQgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBwby9lcy5wbzogVXBkYXRlIGZvciBnbGliYy0xLjk4LgoJKiBwby9mci5wbzogTGlrZXdpc2UuCgkqIHBvL3N2LnBvOiBOZXcgZmlsZS4gIFN3ZWRpc2ggdHJhbnNsYXRpb24uCgpXZWQgSmFuICAxIDEyOjE4OjA3IDE5OTcgICBNYWNHeXZlciAgPG1hY2d5dmVyQHRvcy5uZXQ+CgoJKiB2YWx1ZXMuaDogRml4IHR5cG9zOiB1c2UgU0hSVF9NQVggYnV0IFNIT1JUX01BWCBhbmQgU0hSVF9NSU4gYnV0CglTSE9SVF9NSU4uCgpUdWUgRGVjIDI0IDIzOjEwOjIxIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZWZpbGU6IFJlcGxhY2UgYHN0dWJzLmgnIGJ5IGBnbnUvc3R1YnMuaCcuCgkqIGZlYXR1cmVzLmg6IEluY2x1ZGUgPGdudS9zdHVicy5oPiBpbnN0ZWFkIG9mIDxzdHVicy5oPi4KClR1ZSBEZWMgMjQgMjI6MTY6NTUgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlZmlsZSAoc3ViZGlycyk6IE1vdmUgYGVsZicgbGFzdCBzbyB0aGF0IGxpYnJ0bGQuc28gaXNuJ3QKCXJlbGlua2VkIGluIHRoZSBgbWFrZSBvdGhlcnMnIHBhc3MgaWYgYW4gYWRkLW9uIGFkZHMgc29tZXRoaW5nIHRvCglsaWJjLgoKTW9uIERlYyAyMyAyMToyMzoxNiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvbTY4ay9hYm9ydC1pbnN0ci5oOiBOZXcgRmlsZS4KCk1vbiBEZWMgMjMgMjE6MTY6MzggMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL202OGsvTWFrZWZpbGUgKCQoc3ViZGlyKT1lbGYpOiBEZWZpbmUgQ0ZMQUdTLXJ0bGQuYwoJdG8gcHJldmVudCB3YXJuaW5nLgoKTW9uIERlYyAyMyAyMToxNDoyMiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHJlc29sdi9NYWtlZmlsZSAoc3ViZGlycy1kaXJzKTogRGVmaW5lLgoKTW9uIERlYyAyMyAyMDo1Njo0OSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvZ251L3V0bXBiaXRzLmggKHN0cnVjdCB1dG1wKTogRml4IHBhZGRpbmcuCgpNb24gRGVjIDMwIDExOjA1OjExIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCVVwZGF0ZSBmcm9tIEFETyB0emNvZGUxOTk2by4KCSogdGltZS9kaWZmdGltZS5jOiBEZS1BTlNJLWRlY2xmeS4gIFNpbXBsaWZ5IGNvbXB1dGF0aW9uIG9mIGhpYml0CglhY2NvcmRpbmcgdG8gQURPIHZlcnNpb24uCgkqIHRpbWUvemljLmM6IENvcnJlY3QgdHlwbyBpcyBtZXNzYWdlLgoKCVVwZGF0ZSBmcm9tIEFETyB0emRhdGExOTk2bi4KCSogdGltZS9hc2lhOiBVcGRhdGVkLgoJKiB0aW1lL2F1c3RyYWxhc2lhOiBMaWtld2lzZS4KCSogdGltZS9ldXJvcGU6IExpa2V3aXNlLgoJKiB0aW1lL25vcnRoYW1lcmljYTogTGlrZXdpc2UuCgkqIHRpbWUvc291dGhhbWVyaWNhOiBMaWtld2lzZS4KCk1vbiBEZWMgMzAgMDE6MzI6NTkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB0bWUvbG9jYWx0aW1lLmM6IFJld3JpdGUgc28gdGhhdCBsb2NhbHRpbWVfciBkb2VzIG5vdCBjYWxsIHR6c2V0LAoJYnV0IGxvY2FsdGltZSBkb2VzLgoKCSogZmVhdHVyZXMuaDogUmVuYW1lIEFOU0kgQyB0byBJU08gQy4KCU1lbnRpb24gX19HTElCQ19fIGFuZCBfX0dMSUJDX01JTk9SX18gbWFjcm9zLgoKCSogZ251LXZlcnNpb25zLmg6IEFkZCBfR05VX0dFVE9QVF9JTlRFUkZBQ0VfVkVSU0lPTi4KCSogcG9zaXgvZ2V0b3B0LmM6IFVzZSBfR05VX0dFVE9QVF9JTlRFUkZBQ0VfVkVSU0lPTiB0byBjaGVjawoJd2hldGhlciB3ZSBjYW4gZWxpZGUgdGhlIGNvZGUuCgkqIHBvc2l4L2dldG9wdDEuYzogTGlrZXdpc2UuCgkqIHBvc2l4L01ha2VmaWxlOiBDb3JyZWN0IGNvcHlyaWdodC4KCgkqIGVsZi9kbC1lcnJvci5jIChfZGxfY2F0Y2hfZXJyb3IpOiBDbGVhciBgY2F0Y2gnIGFsc28gd2hlbiBlcnJvcgoJb2NjdXJyZWQuCgkqIGVsZi9kbC1zdXBwb3J0LmMgKF9kbF9zeXNkZXBfb3Blbl96ZXJvX2ZpbGwpOiBEb24ndCBkZWZpbmUgaWYKCU1BUF9BTk9OIGlzIGRlZmluZWQuCgkqIGVsZi9ldmFsLmM6IFVzZSBfX2dldGxpbmUgaW5zdGVhZCBvZiBnZXRsaW5lLgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIF9kbF9uZXdfb2JqZWN0CglmdW5jdGlvbiBmb3IgTlVMTC4KCSogc3lzZGVwcy9nZW5lcmljL2RsLWNhY2hlLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgoJKiBzaWduYWwvTWFrZWZpbGU6IENvcnJlY3QgY29weXJpZ2h0LgoJKHJvdXRpbmVzKTogUmVtb3ZlIGdzaWduYWwgYW5kIHNzaWduYWwuICBBZGQgYnNkX3NpZ25hbC4KCSogc2lnbmFsL2dzaWduYWwuYzogUmVtb3ZlZC4gIE5vdyBpcyBtYWRlIGFuIGFsaWFzLgoJKiBzaWduYWwvc3NpZ25hbC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9yYWlzZS5jOiBBZGQgYWxpYXMgZ3NpZ25hbC4KCSogc3lzZGVwcy9zdHViL3JhaXNlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ25hbC5jOiBBZGQgYWxpYXMgc3NpZ25hbC4KCSogc3lzZGVwcy9zdHViL3NpZ25hbC5jOiBMaWtld2lzZS4KCSogc2lnbmFsL3NpZ25hbC5oOiBEZWNsYXJlIGJzZF9zaWduYWwuICBEZWZpbmUgc2lnbmFsIGFzIGJzZF9zaWduYWwKCWlmIF9fRkFWT1JfQlNELgoJKiBzeXNkZXBzL3Bvc2l4L2JzZF9zaWduYWwuYzogTmV3IGZpbGUuICBJbXBsZW1lbnRhdGlvbiBvZiBYUEcKCWZ1bmN0aW9uLiAgVGhpcyBpcyB0aGUgb2xkIHNpZ25hbC5jIGZpbGUuCgkqIHN5c2RlcHMvcG9zaXgvc2lnbmFsLmM6IENoYW5nZSB0byBoYXZlIHNlbWFudGljIG9mIFgvT3Blbi4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NpZ25hbC5jOiBBZGQgZXhwbGFuYXRpb24uCgoJKiBzb2NrZXQvc3lzL3VuLmg6IERlZmluZSBTVU5fTEVOIGFjY29yZGluZyB0byBQT1NJWC4xZy4KCgkqIHN0ZGlvLWNvbW1vbi9NYWtlZmlsZSAodGVzdHMpOiBBZGQgc2NhbmYxMC4KCSogc3RkaW8tY29tbW9uL3NjYW5mMTAuYzogTmV3IGZpbGUuCgkqIHN0ZGlvLWNvbW1vbi92ZnNjYW5mLmM6IERlY3JlbWVudCBjb3VudGVyIGlmIEVPRiBpcyByZWFkIHdoaWxlCglyZWFkaW5nIHN0cmluZy4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYWNvcy5TOiBVc2UgRU5ELCBub3QgUFNFVURPX0VORC4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hY29zbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hc2luLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2FzaW5sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2F0YW4yLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2F0YW4yZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hdGFuMmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZXhwLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2V4cGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZm1vZC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9mbW9kbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2cuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nMTAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nMTBsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZ2wuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfcmVtYWluZGVyLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3JlbWFpbmRlcmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfcmVtYWluZGVybC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9zY2FsYi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9zY2FsYmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2Vfc3FydC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9zcXJ0Zi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9zcXJ0bC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19hdGFuLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2F0YW5mLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2F0YW5sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2NlaWwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY2VpbGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY2VpbGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY29weXNpZ24uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY29weXNpZ25mLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2NvcHlzaWdubC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3MuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY29zZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3NsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Zpbml0ZS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19maW5pdGVmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Zpbml0ZWwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmxvb3IuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmxvb3JmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Zsb29ybC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19pbG9nYi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19pbG9nYmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfaWxvZ2JsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZzFwLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZzFwZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19sb2cxcGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfbG9nYi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19sb2diZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19sb2dibC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19yaW50LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3JpbnRmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3JpbnRsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NjYWxibi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zY2FsYm5mLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NjYWxibmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2lnbmlmaWNhbmQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2lnbmlmaWNhbmRmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NpZ25pZmljYW5kbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2luZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaW5sLlM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2cuUzogVXNlIGZ5bDJ4cDEgaW5zdHJ1Y3Rpb24gZm9yIHZhbHVlcwoJbmVhciAxIHRvIGluY3JlYXNlIHByZWNpc2lvbi4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2cxMC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2cxMGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nbC5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY29zLlM6IFVzZSB0ZXN0bCBpbnN0ZWFkIG9mIGFuZHcuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY29zbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2lubC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc190YW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfdGFubC5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYWNvc2YuUzogTmV3IGZpbGUuICBBZGQgZmxvYXQgdmVyc2lvbnMuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXNpbmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZXhwZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9mbW9kZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2cxMGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9zY2FsYmYuUzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2Fjb3NoLlM6IE5ldyBmaWxlLiAgSGlnaGx5IG9wdGltaXplZCB2ZXJzaW9ucy4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hY29zaGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYWNvc2hsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2F0YW5oLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2F0YW5oZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hdGFuaGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXNpbmguUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXNpbmhmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2FzaW5obC5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfYXNpbmhmLmM6IFR3ZWFrIGEgYml0LiAgVXNlIGxvd2VyIGxldmVscwoJZm9yIHNpbXBsaWZpZWQgaGFuZGxpbmcuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0OiBBZGQgcXVlcnlfbW9kdWxlLgoKU3VuIERlYyAyMiAwMTozOToyOSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGluZXQvcmNtZC5jIChyY21kKTogU2V0IGhfZXJybm8gYmVmb3JlIGNhbGxpbmcgaGVycm9yLgoJKiBpbmV0L3JleGVjLmMgKHJleGVjKTogTGlrZXdpc2UuCgpTYXQgRGVjIDIxIDIxOjQ3OjA4IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zZXRqbXAuYyAoX19zZXRqbXApOiBNYWtlIGl0IHJlYWxseQoJY29tcGF0aWJsZS4KClN1biBEZWMgMjIgMDM6MjM6MzMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZzFwLlM6IFVzZSBmeWwyeHAxIGZvciBudW1iZXJzIGluIHJhbmdlCgktMC4yOSA8PSB4IDw9IDAuMjksIG90aGVyd2lzZSB0aGUgb2xkIG1ldGhvZC4KCSogc3lzZGVwcy9saWJtLWkzODcvc19sb2cxcGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfbG9nMXBsLlM6IExpa2V3aXNlLgoKU3VuIERlYyAyMiAwMDowMToyNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGluZXQvZ2V0bmV0Z3JlbnQuYzogUmVmb3JtYXQgY29weXJpZ2h0LgoKCSogaW5ldC9nZXRuZXRncmVudF9yLmMgKF9faW50ZXJuYWxfZW5kbmV0Z3JlbnQpOiBDb3JyZWN0IGNvbW1lbnQuCgkoX19pbnRlcm5hbF9nZXRuZXRncmVudCk6IFJlbmFtZSB0byBfX2ludGVybmFsX2dldG5ldGdyZW50X3IgYXMKCXJlcXVpcmVkIGluIGNoYW5nZSBuaXMvbnNzX2NvbXBhdC8qIGF0IFRodSBEZWMgMTkgMTQ6MjQ6NTAgMTk5Ni4KCVJlcG9ydGVkIGJ5IFRob3JzdGVuIEt1a3VrIDxrdWt1a0B3ZWJlci51bmktcGFkZXJib3JuLmRlPi4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtbmV0Z3JwLmM6IEZpeCB0eXBvLgoJKiBsb2dpbi91dG1wX2RiLmM6IENvbW1lbnQgb3V0IHVudXNlZCB2YXJpYWJsZXMuCgkqIG1pc2MvdHN0LWRpcm5hbWUuYzogUHJvdmlkZSBwcm90b3R5cGUgZm9yIG1haW4gKGZvciBub3cpLgoJKiBuZXctbWFsbG9jL21jaGVjay1pbml0LmM6IEluY2x1ZGUgPG1jaGVjay5oPi4KCSogbmV3LW1hbGxvYy9vYnN0YWNrLmM6IFByb3ZpZGUgcmVhbCBwcm90b3R5cGVzLgoKCSogcmVzb2x2L2Jhc2U2NC5jIChiNjRfbnRvcCk6IFVzZSBzaXplX3QgYXMgdHlwZSBvZiBgaScsIG5vdCBpbnQuCgkoYjY0X3B0b24pOiBMaWtld2lzZSBmb3IgYHRhcmluZGV4Jy4KCSogcmVzb2x2L25zYXBfYWRkci5jIChpbmV0X25zYXBfYWRkcik6IEFkZCBjYXN0IHRvIHByZXZlbnQgd2FybmluZy4KCgkqIHN0ZGlvLWNvbW1vbi9NYWtlZmlsZTogQWRkIENGTEFHUy12ZnByaW50Zi5jIHRvIHByZXZlbnQgd2FybmluZy4KCSogc3RkaW8tY29tbW9uL3ByaW50Zi1wYXJzZS5oOiBSZW1vdmUgZGVmaW5pdGlvbiBvZiBNSU4gYW5kIE1BWC4KCSogc3RkaW8tY29tbW9uL3ByaW50Zi1wcnMuYzogSW5jbHVkZSA8c3lzL3BhcmFtLmg+IHRvIGdldCBNSU4gYW5kIE1BWC4KCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvZ21wLWltcGwuaDogT25seSBkZWZpbmUgTUlOIGFuZCBNQVggaWYgbm90IGFscmVhZHkgZG9uZS4KCSogc3RkbGliL3RzdC1zdHJ0b2wuYzogRG9uJ3QgdXNlIC0yMTQ3NDgzNjQ4IGFzIHVuc2lnbmVkIGxvbmcgdmFsdWUuCgoJKiBzeXNkZXBzL2dlbmVyaWMvTWFrZWZpbGUgKCQoc3ViZGlyKT1zdHJpbmcpOiBEZWZpbmUKCUNGTEFHUy13b3JkY29weS5jIHRvIHByZXZlbnQgd2FybmluZy4KCSogc3lzZGVwcy9nZW5lcmljL211bF9uLmMgKG1wbl9tdWxfbik6IERvbid0IGRlZmluZSBhcyBpbmxpbmUuCgkqIHN5c2RlcHMvZ2VuZXJpYy93b3JkY29weS5jOiBEZS1BTlNJLWRlY2xmeS4KCSogc3lzZGVwcy9pMzg2L01ha2VmaWxlICgkKHN1YmRpcik9ZWxmKTogRGVmaW5lIENGTEFHUy1ydGxkLmMKCXRvIHByZXZlbnQgd2FybmluZy4KCSogc3lzZGVwcy9pMzg2L2RsLW1hY2hpbmUuaDogQ29ycmVjdCBjb3B5cmlnaHQuCgkqIHN5c2RlcHMvdW5peC9jbG9zZWRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2RpcnN0cmVhbS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L29wZW5kaXIuYzogTGlrZXdpc2UuCgkqIHRpbWUvdHpzZXQuYzogQWRkIHByb3RvdHlwZSBmb3IgX190enNldF9pbnRlcm5hbC4KCgkqIHN5c2RlcHMvZ251L3V0bXBiaXRzLmggKGVudW0gdXRsb2dpbik6IENvbW1lbnQgb3V0IHNpbmNlIHRoZQoJd2F5IGl0IGlzIHN1cHBvc2VkIHRvIHdvcmsgaXMgbm90IHlldCBrbm93bi4KCShzdHJ1Y3QgdXRtcCk6IFJlbW92ZSB1dF9sb2dpbiBhbmQgdXRfc3lzbGVuIGZpZWxkIGZvciBub3cuCgpTYXQgRGVjIDIxIDE2OjIzOjU0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdGltZS9zdHJmdGltZS5jOiBGaXggYW5vdGhlciBidWcgaW4gaGFuZGxpbmcgZmxhZ3MgbWFkZSBpdAoJaW1wb3NzaWJsZSB0byB1c2UgdGhlIGAtJywgYF8nLCBvciBgMCcgZmxhZy4KClNhdCBEZWMgMjEgMDQ6MTQ6MTYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvY29tbW9uL3BhdXNlLmM6IEFkZCBtaXNzaW5nIHNlY29uZCBhcmd1bWVudCBpbgoJY2FsbCB0byBfX3NpZ3BhdXNlLgoJUmVwb3J0ZWQgYnkgYSBzdW4gPGFzdW5Aem9vbG9neS53YXNoaW5ndG9uLmVkdT4uCgoJKiBsb2NhbGUvd2VpZ2h0Lmg6IENvcnJlY3QgaGFuZGxpbmcgb2YgY29sbGF0aW9uIGVsZW1lbnRzLgoJUmVwb3J0ZWQgYnkgS2VsZCBTaW1vbnNlbiA8a2VsZEBka3V1Zy5kaz4uCgoJKiBtYW51YWwvdGltZS50ZXhpOiBEb2N1bWVudCBeIGZsYWcgYW5kICVQIGZvcm1hdC4KCgkqIG5ldy1tYWxsb2MvbWFsbG9jLmM6IFVwZGF0ZSBmcm9tIFdvbGZyYW0gR2xvZ2VyLgoKCSogbnNzL25zcy5oOiBSZWZvcm1hdCBjb3B5cmlnaHQuCgkqIHBvc2l4L3NjaGVkLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvZnB1X2NvbnRyb2wuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2ZjbnRsYml0cy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaW9jdGxzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaWdjb250ZXh0Lmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC91dHNuYW1lbGVuLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvYWNjdC5oOiBMaWtld2lzZS4KCSogc3lzdmlwcy9zeXMvbXNnLmg6IExpa2V3aXNlLgoKCSogc3RkaW8tY29tbW9uL01ha2VmaWxlIChyb3V0aW5lcyk6IFJlbW92ZSBmY2xvc2VhbGwuCgkqIHN0ZGlvLWNvbW1vbi9mY2xvc2VhbGwuYzogUmVtb3ZlZC4KCgkqIHN0ZGxpYi9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBhYm9ydC1pbnN0ci5oLgoJKiBzeXNkZXBzL2dlbmVyaWMvYWJvcnQtaW5zdHIuaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvaTM4Ni9hYm9ydC1pbnN0ci5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9nZW5lcmljL2Fib3J0LmM6IFVzZSBsb2NrIGFuZCBzdGFnZSBjb3VudGVyIHRvIHByZXZlbnQKCWFueSBmb3JtIG9mIGxvb3AuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90aW1lYml0cy5oOiBEZWZpbmUgQ0xLX1RDSyBhcyAxMDAuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3RpbWViaXRzLmg6IERlZmluZSBDTE9DS1NfUEVSX1NFQwoJYXMgMTAwMDAwMC4gIERlZmluZSBDTEtfVENLIGFzIDEwMjQuCgkqIHRpbWUvdGltZS5jIChDTEtfVENLKTogRGVmaW5lIG9ubHkgaWYgbm90IGFscmVhZHkgc2V0LgoKCSogdGltZS9zdHJmdGltZS5jOiBEb24ndCB1c2UgYGlzZGlnaXQnIHdoZW4gY29tcHV0aW5nIGZpZWxkIHdpZHRoCglmcm9tIHN0cmluZyBzaW5jZSB0aGUgbG9jYWxlIG1pZ2h0IGhhdmUgbW9yZSB0aGFuIG9uZSBkaWdpdAoJYmxvY2suCgpGcmkgRGVjIDIwIDEyOjM4OjE0IDE5OTYgIERhcnJlbCBIYW5rZXJzb24gIDxoYW5rZWRyQG1haWwuYXVidXJuLmVkdT4KCgkqIHBvc2l4L2dldG9wdC5jIChpbiAtVyBvcHRpb24gaGFuZGxpbmcpOiBSZXR1cm4gd2hlbiBvcHRpbmQgPT0gYXJnYy4KClRodSBEZWMgMTkgMTQ6MjQ6NTAgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBuaXMvbnNzX25pcy9uaXMtYWxpYXMuYyAoX25zc19uaXNfcGFyc2VfYWxpYXNlbnQpOiBBZGQgY29uc3QgdG8KCXR5cGUgb2YgS0VZLgoKCSogbmlzL25zc19jb21wYXQvY29tcGF0LWdycC5jOiBJbmNsdWRlIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgZmlsZQoJcGFyc2VyLgoJKiBuaXMvbnNzX2NvbXBhdC9jb21wYXQtcHdkLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX2NvbXBhdC9jb21wYXQtc3B3ZC5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLWV0aGVycy5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLWdycC5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLW5ldHdvcmsuYzogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1wcm90by5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLXB3ZC5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLXJwYy5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLXNwd2QuYzogTGlrZXdpc2UuCgoJKiBuaXMvbnNzX2NvbXBhdC9jb21wYXQtZ3JwLmMgKGdldGdyZW50X25leHRfbmlzLAoJZ2V0Z3JlbnRfbmV4dF9maWxlKTogUGFzcyB0aGUgY29ycmVjdCB0eXBlIGZvciB0aGUgYnVmZmVyIHRvIHRoZQoJcGFyc2VyIGZ1bmN0aW9uLgoJKiBuaXMvbnNzX2NvbXBhdC9jb21wYXQtcHdkLmMgKGdldHB3ZW50X25leHRfbmV0Z3IsCglnZXRwd2VudF9uZXh0X25pcywgZ2V0cHdlbnRfbmV4dF9maWxlKTogTGlrZXdpc2UuCgkqIG5pcy9uc3NfY29tcGF0L2NvbXBhdC1zcHdkLmMgKGdldHNwZW50X25leHRfbmV0Z3IsCglnZXRzcGVudF9uZXh0X25pcywgZ2V0c3BlbnRfbmV4dF9maWxlKTogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1ldGhlcnMuYyAoaW50ZXJuYWxfbmlzX2dldGV0aGVyZW50X3IsCglfbnNzX25pc19nZXRldGhlcm5hbV9yLCBfbnNzX25pc19nZXRldGhlcmJ5YWRkcl9yKTogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1ncnAuYyAoaW50ZXJuYWxfbmlzX2dldGdyZW50X3IsCglfbnNzX25pc19nZXRncm5hbV9yLCBfbnNzX25pc19nZXRncmdpZF9yKTogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1uZXR3b3JrLmMgKGludGVybmFsX25pc19nZXRuZXRlbnRfciwKCV9uc3NfbmlzX2dldG5ldGJ5bmFtZV9yLCBfbnNzX25pc19nZXRuZXRieWFkZHJfcik6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtcHJvdG8uYyAoaW50ZXJuYWxfbmlzX2dldHByb3RvZW50X3IsCglfbnNzX25pc19nZXRwcm90b2J5bmFtZV9yLCBfbnNzX25pc19nZXRwcm90b2J5bnVtYmVyX3IpOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLXB3ZC5jIChpbnRlcm5hbF9uaXNfZ2V0cHdlbnRfciwKCV9uc3NfbmlzX2dldHB3bmFtX3IsIF9uc3NfbmlzX2dldHB3dWlkX3IpOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLXJwYy5jIChpbnRlcm5hbF9uaXNfZ2V0cnBjZW50X3IsCglfbnNzX25pc19nZXRycGNieW51bWJlcl9yKTogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1zcHdkLmMgKGludGVybmFsX25pc19nZXRzcGVudF9yLAoJX25zc19uaXNfZ2V0c3BuYW1fcik6IExpa2V3aXNlLgoKVGh1IERlYyAxOSAxMzozNzoxNiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc2V0am1wLmM6IE5ldyBmaWxlLgoKVGh1IERlYyAxOSAyMzoyODozMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHJlc29sdi9yZXNvbHYuaDogVXBkYXRlIGZyb20gQklORCA0LjkuNS1QMS4KCSogcmVzb2x2L3Jlc19jb21wLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX2RlYnVnLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvQmFubmVyOiBVcGRhdGUgdmVyc2lvbiBudW1iZXIuCgpUaHUgRGVjIDE5IDIwOjU4OjUzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL2RsZmNuLmg6IEFkZCBleHRlcm4gIkMiIHdyYXBwZXIuCgoJKiBpby91dGltZS5oOiBEb24ndCBkZWZpbmUgTlVMTCBzaW5jZSB0aGlzIGlzbid0IGFsbG93ZWQgaW4gUE9TSVguCgkqIGlvL3N5cy9zdGF0Lmg6IERlY2xhcmUgYGxzdGF0JyBvbmx5IGlmIF9fVVNFX0JTRCB8fAoJX19VU0VfWE9QRU5fRVhURU5ERUQuCgkqIGxvY2FsZS9sb2NhbGUuaDogRGVmaW5lIE5VTEwuCgkqIG1hdGgvbWF0aC5jOiBEb24ndCBpbmNsdWRlIDxlcnJuby5oPiB0byBkZWZpbmUgbWF0aCBlcnJvcnMuCgkqIHN0ZGxpYi9zdGRsaWIuaDogTGlrZXdpc2UuCgkqIHBvc2l4L3VuaXN0ZC5oOiBEb24ndCBkZWNsYXJlIGVudmlyb24uCgkqIHBvc2l4L3N5cy91dHNuYW1lLmggKHN0cnVjdCB1dHNuYW1lKTogRGVjbGFyZSBtZW1iZXIgZG9tYWlubmFtZQoJYXMgX19kb21haW5uYW1lIGlzICFfX1VTRV9HTlUuCgkqIHNpZ25hbC9zaWduYWwuaDogRGVjbGFyZSBzaXplX3Qgb25seSBpZiBfX1VTRV9CU0QgfHwKCV9fVVNFX1hPUEVOX0VYVEVOREVELgoJKiBzdGRpby9zdGRpby5oOiBEb24ndCBkZWNsYXJlIGN1c2VyaWQgd2hlbiBfX1VTRV9QT1NJWCwgYnV0CglpbnN0ZWFkIHdoZW4gX19VU0VfWE9QRU4uCgkqIHN0cmluZy9zdHJpbmcuaDogRGVmaW5lIHN0cm5kdXAgb25seSBpZiBfX1VTRV9HTlUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Nsb2NrLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90aW1lYml0cy5oOiBEZWZpbmUgQ0xPQ0tTX1BFUl9TRUMgYXMKCTEwMDAwMDAgcGVyIFgvT3BlbiBzdGFuZGFyZC4KCSogZmVhdHVyZXMuaDogQWRkIGNvZGUgdG8gcmVjb2duaXplIF9QT1NJWF9DX1NPVVJDRSB2YWx1ZSAxOTkzMDkuCglEZWZpbmUgX19VU0VfUE9TSVgxOTkzMDkuCgkqIHBvc2l4L3VuaXN0ZC5oOiBEZWNsYXJlIGZkYXRhc3luYyBvbmx5IGlmIF9fVVNFX1BPU0lYMTk5MzA5LgoJKiB0aW1lL3RpbWUuYzogRGVjbGFyZSBuYW5vc2xlZXAgb25seSBpZiBfX1VTRV9QT1NJWDE5OTMwOS4KCVBhdGNoZXMgYnkgUvxkaWdlciBIZWxzY2ggPHJoQHVuaWZpeC5kZT4uCgoJKiBsb2NhbGUvbG9jYWxlLmg6IEFkZCBkZWNsYXJhdGlvbiBvZiBuZXdsb2NhbGUgYW5kIGZyZWVsb2NhbGUuCgoJKiBuZXctbWFsbG9jL01ha2VmaWxlIChkaXN0aWJ1dGUpOiBBZGQgbXRyYWNlLmF3ay4KCShkaXN0LXJvdXRpbmVzKTogQWRkIG1jaGVjayBhbmQgbXRyYWNlLgoJKGluc3RhbGwtbGliLCBub24tbGliLmEpOiBEZWZpbmUgYXMgbGlibWNoZWNrLmEuCgkqIG5ldy1tYWxsb2MvbWFsbG9jLmg6IEFkZCBkZWNsYXJhdGlvbiBvZiBfX21hbGxvY19pbml0aWFsaXplZC4KCSogbmV3LW1hbGxvYy9tY2hlY2suYzogTmV3IGZpbGUuCgkqIG5ldy1tYWxsb2MvbWNoZWNrLmg6IE5ldyBmaWxlLgoJKiBuZXctbWFsbG9jL210cmFjZS5jOiBOZXcgZmlsZS4KCSogbmV3LW1hbGxvYy9tdHJhY2UuYXdrOiBOZXcgZmlsZS4KCgkqIHBvc2l4L3VuaXN0ZC5oOiBDb3JyZWN0IHByb3RvdHlwZSBmb3IgdXNsZWVwLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3VzbGVlcC5jOiBEZS1BTlNJLWRlY2xmeS4gIENvcnJlY3QgcmV0dXJuIHR5cGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3VzbGVlcC5jOiBSZWFsIGltcGxlbWVudGF0aW9uIGJhc2VkIG9uCgluYW5vc2xlZXAuCgoJKiBzaWduYWwvc2lnbmFsLmg6IENoYW5nZSBwcm90b3lwZSBvZiBfX3NpZ3BhdXNlIHRvIHRha2UgdHdvCglhcmd1bWVudHMuICBSZW1vdmUgcHJvdG90eXBlIGZvciBzaWdwYXVzZS4gIEFkZCB0d28gZGlmZmVyZW50CgltYWNyb3MgbmFtZWQgc2lncGF1c2Ugc2VsZWN0ZWQgd2hlbiBfX1VTRV9CU0Qgb3IgX19VU0VfWE9QRU4KCWFyZSBkZWZpbmVkLiAgVGhpcyBpcyBuZWNlc3Nhcnkgc2luY2UgdGhlIG9sZCBCU0QgZGVmaW5pdGlvbgoJb2YgdGhlaXMgZnVuY3Rpb24gY29sbGlkZXMgd2l0aCB0aGUgWC9PcGVuIGRlZmluaXRpb24uCgkqIHN5c2RlcHMvcG9zaXgvc2lncGF1c2UuYzogQ2hhbmdlIGZ1bmN0aW9uIGRlZmluaXRpb24gdG8gYWxzbwoJZml0IFgvT3BlbiBkZWZpbml0aW9uLgoKCSogc3lzZGVwcy9saWJtLWkzODcvZV9leHAuUzogTWFrZSBzdXJlIHN0YWNrIGlzIGVtcHR5IHdoZW4gdGhlCglmdW5jdGlvbiBpcyBsZWZ0LgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2V4cGwuUzogTGlrZXdpc2UuCglQYXRjaCBieSBISiBMdS4KCjE5OTYtMTItMTcgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogbWFueSwgbWFueSBmaWxlczogU3BlbGxpbmcgY29ycmVjdGlvbnMuCgkqIGNhdGdldHMvY2F0Z2V0c2luZm8uaCAobW1hcHBlZCk6CglSZW5hbWVkIGZyb20gbW1hcGVkIChpbiBzdHJ1Y3QgY2F0YWxvZ19pbmZvLnN0YXR1cykuCgkqIG1hY2gvZXJyX2tlcm4uc3ViIChlcnJfY29kZXNfdW5peCksIHN0cmluZy9zdHJhdGNsaWZmLmMgKG1haW4pOgoJRml4IHNwZWxsaW5nIGluIG1lc3NhZ2UuCgkqIHBvL2xpYmMucG90OiBGaXggc3BlbGxpbmcgaW4gbWVzc2FnZSBmb3IgYHppYyc7IHRoaXMgYW50aWNpcGF0ZXMKCWEgZml4IGluIHRoZSB0emNvZGUgZGlzdHJpYnV0aW9uLgoKV2VkIERlYyAxOCAxNTo0ODowMiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHRpbWUvc3RyZnRpbWUuYzogSW1wbGVtZW50IF4gZmxhZyB0byBjYXVzZSBvdXRwdXQgYmUgY29udmVydGVkCgl0byB1c2UgdXBwZXIgY2FzZSBjaGFyYWN0ZXJzLgoKCSogdGltZS96aWMuYzogVXBkYXRlIGZyb20gQURPIHR6Y29kZTE5OTZuLgoKV2VkIERlYyAxOCAxNDoyOToyNCAxOTk2ICBFcmlrIE5hZ2d1bSAgPGVyaWtAbmFnZ3VtLm5vPgoKCSogdGltZS9zdHJmdGltZS5jIChhZGQpOiBEb24ndCBjaGFuZ2UgZ2xvYmFsIGBpJyB1bnRpbCBhbGwgaXMgb3Zlci4KCURlZmluZSBOVUxMIGlzIG5vdCBhbHJlYWR5IGRlZmluZWQuCgpUdWUgRGVjIDE3IDA5OjQ5OjAzIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbGliaW8vaW92c3ByaW50Zi5jIChfSU9fdnNwcmludGYpOiBDaGFuZ2UgYCZzZicgdG8gYCZzZi5fc2JmLl9mJwoJdG8gYXZvaWQgdGhlIG5lZWQgZm9yIGEgY2FzdC4KCSogbGliaW8vaW92c3NjYW5mLmMgKF9JT192c3NjYW5mKTogTGlrZXdpc2UuCgpXZWQgRGVjIDE4IDAzOjMxOjU4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZGlyZW50L3NjYW5kaXIuYzogVW5kbyBjaGFuZ2UgZnJvbSBNb24gRGVjICAyIDE1OjMyOjE1IDE5OTYuCglUaGUgc3RyZWFtIGlzIHByaXZhdGUgYW5kIHVzYWdlcyBvdXRzaWRlIGdsaWJjIGRvbid0IGNhcmUgYWJvdXQKCXJlZW50cmFuY3kuCgkqIGlvL2Z0cy5jOiBMaWtld2lzZS4KCSogaW8vZnR3LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2dldGN3ZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC90dHluYW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3R0eW5hbWVfci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9nbG9iLmM6IExpa2V3aXNlLgoKCSogbGliaW8vaW92c3ByaW50Zi5jOiBBZGQgY2FzdCB0byBwcmV2ZW50IHdhcm5pbmcuCgkqIGxpYmlvL2lvdnNzY2FuZi5jOiBMaWtld2lzZS4KCgkqIGxpYmlvL2xpYmlvUC5oOiBEZWZpbmUgbW1hcCB0byBfX21tYXAgYW5kIG11bm1hcCB0byBfX211bm1hcAoJdG8ga2VlcCBuYW1lc3BhY2UgY2xlYW4uCgoJKiBuZXctbWFsbG9jL21hbGxvYy5jOiBVcGRhdGUgdG8gbGFzdCB2ZXJzaW9uIGZyb20gV29sZnJhbSBHbG9nZXIuCglBZGQgaG9va3MgYW5kIGNoZWNrIGZ1bmN0aW9ucyBmcm9tIG9sZCBHTlUgbWFsbG9jLgoJKiBuZXctbWFsbG9jL21hbGxvYy5oOiBMaWtld2lzZS4KCgkqIG5pcy95cGNsbnQuYzogUmVtb3ZlIHByb3RvdHlwZSBmb3IgeGRyX2ZyZWUuCgkqIHN1bnJwYy9ycGMveGRyLmg6IEFkZCBwcm90b3R5cGUgZm9yIHhkcl9mcmVlLgoKCSogbWFudWFsL25zcy50ZXhpOiBDb3JyZWN0IGRlc2NyaXB0aW9uIG9mIGRlZmF1bHQgdmFsdWVzIGFuZCBkb24ndAoJbWVhbnRpb24gTlNTIGFzIGFuIGFkZC1vbi4KCgkqIG5zcy9ncnAtbG9va3VwLmM6IFByb3ZpZGUgZGVmYXVsdCB2YWx1ZSBhcwoJImNvbXBhdCBbTk9URk9VTkQ9cmV0dXJuXSBmaWxlcyIuCgkqIG5zcy9wd2QtbG9va3VwLmM6IExpa2V3aXNlLgoJKiBuc3Mvc3B3ZC1sb29rdXAuYzogTGlrZXdpc2UuCgkqIG5zcy9uZXR3b3JrLWxvb2t1cC5jOiBDb3JyZWN0IGRlZmF1bHQgdG8KCSJkbnMgWyFVTkFWQUlMPXJldHVybl0gZmlsZXMiLgoJKiBuc3MvbnNzd2l0Y2guYzogQ2hhbmdlIGRlZmF1bHQtZGVmYXVsdCB2YWx1ZSB0byAibmlzCglbTk9URk9VTkQ9cmV0dXJuXSBmaWxlcyIgc2luY2UgY29tcGF0IGlzIG9ubHkgYXZhaWxhYmxlIGZvciBncm91cCwKCXBhc3N3ZCwgYW5kIHNoYWRvdy4KCgkqIHN0ZGxpYi9vbl9leGl0LmMgKG9uX2V4aXQpOiBSZW5hbWUgdG8gX19vbl9leGl0IGFuZCBtYWtlIG9sZCBuYW1lCglhIHdlYWsgYWxpYXMuCgkqIHN0ZGxpYi9zdGRsaWIuaDogQWRkIHByb3RvdHlwZSBmb3IgX19vbl9leGl0LgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2NoZWRiaXRzLmg6IEFkZCBwcm90b3R5cGUgZm9yIF9fY2xvbmUuCgoJKiB0aW1lL01ha2VmaWxlOiBVbmRvIGNoYW5nZSBmcm9tIFN1biBEZWMgIDggMDY6NTY6NDkgMTk5Ni4KCVRoZSBuZXcgbWFsbG9jIG5vdyBoYXMgbWNoZWNrLgoJKiB0aW1lL2FwLmM6IExpa2V3aXNlLgoKCSogdGltZS90enNldC5jIChfX3R6c2V0KTogUmVuYW1lIHRvIF9fdHpzZXRfaW50ZXJuYWwuCgkodHpzZXQpOiBSZW5hbWUgdG8gX190enNldC4gIE1ha2UgdHpzZXQgYSB3ZWFrIGFsaWFzIGZvciBfX3R6c2V0LgoJKiB0aW1lL2xvY2FsdGltZS5jOiBVc2UgX190enNldF9pbnRlcm5hbCBub3QgX190enNldC4KCSogdGltZS9zdHJmdGltZS5jIFtfTElCQ106IERlZmluZSB0em5hbWUgYXMgX190em5hbWUgYW5kIHR6c2V0CglhcyBfX3R6c2V0IHRvIHByZXZlbnQgbmFtZXNwYWNlIHBvbGx1dGlvbi4KCgkqIHdjdHlwZS9pc3djdHlwZS5oIChpY3djdHlwZSk6IFJlbmFtZSB0byBfX2lzd2N0eXBlLiAgTWFrZSBpc3djdHlwZQoJYSB3ZWFrIGFsaWFzIG9mIF9faXN3Y3R5cGUuCgkqIHdjdHlwZS93Y3R5cGUuaDogQWRkIHByb3RvdHlwZSBmb3IgX19pc3djdHlwZS4KCShpc3dhbG51bSwgaXN3YWxwaGEsIGlzd2NudHJsLCBpc3dkaWdpdCwgaXN3bG93ZXIsIGlzd2dyYXBoLAoJaXN3cHJpbnQsIGlzd3B1bmN0LCBpc3dzcGFjZSwgaXN3dXBwZXIsIGlzd3hkaWdpdCwgaXN3YmxhbmspOgoJVXNlIF9faXN3Y3R5cGUgZm9yIHRoZSB0ZXN0LCBub3QgaXN3Y3R5cGUuCgoxOTk2LTEyLTE2ICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIGh1cmQvaHVyZC9zaWdwcmVlbXB0LmgKCShzdHJ1Y3QgaHVyZF9zaWduYWxfcHJlZW1wdG9yLnByZWVtcHRvciwgX2h1cmRzaWdfcHJlZW1wdG9ycyksCglodXJkL2h1cmQvc2lnbmFsLmggKHN0cnVjdCBodXJkX3NpZ3N0YXRlLnByZWVtcHRvcnMpLAoJaHVyZC9odXJkZmF1bHQuYywgaHVyZC9odXJkZmF1bHQuaCAoX2h1cmRzaWdfZmF1bHRfcHJlZW1wdG9yKSwKCWh1cmQvaHVyZHNpZy5jIChfaHVyZHNpZ19wcmVlbXB0ZXJzKToKCVJlbmFtZWQgdG8gZml4IHNwZWxsaW5nIGZyb20gYHByZWVtcHRlcicgdG8gYHByZWVtcHRvcicuCglBbGwgdXNlcyBjaGFuZ2VkLgoKMTk5Ni0xMi0xNSAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBjdGltZS5jIChjdGltZSk6IFJldHVybiBhc2N0aW1lIChsb2NhbHRpbWUgKHQpKSwgYXMgdGhlIEMKCXN0YW5kYXJkIHJlcXVpcmVzLgoKVHVlIERlYyAxNyAwMjowNTo0OCAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2xpYmMtbG9jay5oIChfX2xpYmNfbG9ja190cnlsb2NrKTogSW52ZXJ0IHJldHVybgoJdmFsdWUgYmVjYXVzZSBNYWNoL2N0aHJlYWRzIHVzZXMgdGhlIG9wcG9zaXRlIGNvbnZlbnRpb24gZnJvbQoJUG9zaXgvZ2xpYmMuCgpNb24gRGVjIDE2IDIyOjQxOjAxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkaW8tY29tbW9uL2ZjbG9zZWFsbC5jOiBDb3JyZWN0IHRlc3Qgb2YgYWxyZWFkeV9jYWxsZWQuCglSZXBvcnRlZCBieSBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHLgoKTW9uIERlYyAxNiAxNDo1MjowNyAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogbWFjaC9sb2NrLWludGVybi5oIChfX211dGV4X3RyeV9sb2NrKTogTmV3IGZ1bmN0aW9uLgoKU3VuIERlYyAxNSAxNjozMzo0NCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHRlcm1pb3Mvc3lzL3R0eWRlZmF1bHRzLmggKFRUWURFRl9PRkxBRyk6IE9ubHkgdXNlIE9YVEFCUyBpZgoJZGVmaW5lZCwgZWxzZSBYVEFCUy4KCShDRU9MLCBDU1RBVFVTKTogVXNlIF9QT1NJWF9WRElTQUJMRSBpZiBkZWZpbmVkLgoKU3VuIERlYyAxNSAxMTo1NjoxOSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvbXJlbWFwLlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL0Rpc3Q6IERpc3RyaWJ1dGUgaXQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvTWFrZWZpbGUgKHN5c2RlcF9yb3V0aW5lcyk6IEFkZCBtcmVtYXAuCgpNb24gRGVjIDE2IDAyOjE1OjQyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCU1ha2Ugc3VyZSB0enNldCgpIHNldHMgYWx3YXlzIHR6bmFtZVtdLgoJKiB0aW1lL3R6ZmlsZS5jOiBEZS1BTlNJLWRlY2xmeS4KCShmaW5kX3RyYW5zaXRpb24pOiBOZXcgZnVuY3Rpb24uICBTZXQgdHpuYW1lIGFjY29yZGluZyB0byBnaXZlbiB0aW1lLgoJKF9fdHpyZWFkX2ZpbGUpOiBVc2UgZmluZF90cmFuc2l0aW9uIHRvIHNldCB0em5hbWUuCgkoX190emZpbGVfY29tcHV0ZSk6IFVzZSBmaW5kX3RyYW5zaXRpb24gaW5zdGVhZCBvZiBkb2luZyB0aGUgd29yawoJc2VsZi4KCSogdGltZS90enNldC5jICh0enNldCk6IFNldCB0em5hbWVbXSBkaXJlY3RseSBvbmx5IGlmICFfX3VzZV90emZpbGUuCgpTdW4gRGVjIDE1IDE2OjUyOjM0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9naW4vdXRtcC1maWxlLmMgKHB1dHV0bGluZV9maWxlKTogT3BlbiBmaWxlIGlmIGNsb3NlZC4KCVJlcG9ydGVkIGJ5IFJvbWEgRWt6aGFub3YgPGVremhhbm92QHBhcmFncmFwaC5jb20+LgoJVXNlIGZjbnRsIGluc3RlYWQgb2YgZmxvY2suCgpTdW4gRGVjIDE1IDE0OjIwOjUxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbWFudWFsL3RpbWUudGV4aTogVXBkYXRlIGRvY3VtZW50YXRpb24gb2Ygc3RyZnRpbWUgZnVuY3Rpb24uCgpTdW4gRGVjIDE1IDAxOjUzOjIwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUgKHN1YmRpcnMpOiBDaGFuZ2UgY3J5cHQgdG8gbWQ1LWNyeXB0LgoJKiBjcnlwdC9NYWtlZmlsZSwgY3J5cHQvbWQ1LWNyeXB0LmMsIGNyeXB0L21kNS5jLCBjcnlwdC9tZDUuaCwKCWNyeXB0L21kNWMtdGVzdC5jLCBjcnlwdC9tZDV0ZXN0LmM6IE1vdmUgdG8gbmV3IGRpcmVjdG9yeQoJbWQ1LWNyeXB0LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jb25maWd1cmUuaW46IFJlZmVyIHRvIGxpbnV4dGhyZWFkcyBhbmQKCWNyeXB0IGluc3RlYWQgb2YgTGludXhUaHJlYWRzIGFuZCBkZXMtY3J5cHQuCgoJKiBNYWtlZmlsZSAoc3ViZGlycyk6IEFkZCBuc3MgYmFjay4KCSogc3lzZGVwcy91bml4L2luZXQvU3ViZGlyczogTW92ZSBuaXMgdG8gZW5kIG9mIGZpbGUgdG8gZnVsZmlsbAoJZGVwZW5kZW5jaWVzLgoKCSogbGliaW8vaW9mY2xvc2UuYzogSW1wbGVtZW50IGZjbG9zZShOVUxMKSBhcyBjbG9zaW5nIGFsbCBzdHJlYW1zLgoJKiBzdGRpby1jb21tb24vTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGZjbG9zZWFsbC4KCSogc3RkaW8tY29tbW9uL2ZjbG9zZWFsbC5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9nZW5lcmljL2Fib3J0LmM6IE1ha2UgaW1wbGVtZW50YXRpb24gUE9TSVguMSBjb21wYXRpYmxlLgoKCSogc3lzZGVwcy9tYWNoL2xpYmMtbG9jay5oOiBBZGQgZGVmaW5pdGlvbiBvZiBfX2xpYmNfbG9ja190cnlsb2NrLgoJKiBzeXNkZXBzL3N0dWIvbGliYy1sb2NrLmg6IERlZmluZSBfX2xpYmNfbG9ja190cnlsb2NrIHRvIGFsd2F5cwoJcmV0dXJuIDAuCgoJKiBzdGRpby1jb21tb24vcHJpbnRmLmg6IERlZmluZSBNSU4gYW5kIE1BWCBvbmx5IGlmIG5vdCBhbHJlYWR5CglkZWZpbmVkLgoKCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IFNldCBlcnJubyB0byBFQkFERiBpZiBzdHJlYW0gZG9lcyBub3QKCWFsbG93IHdyaXRpbmcuICBSZXF1aXJlZCBieSBQT1NJWC4xLgoKCSogbGliaW8vbGliaW9QLmggKENIRUNLX0ZJTEUpOiBVc2UgTUFZQkVfU0VUX0VJTlZBTCBpbnN0ZWFkIG9mCglhc3NpZ25tZW50LgoKCSogaW50ZXJwLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgkqIGxpYmlvL2NsZWFyZXJyLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3NlZWtvZmYuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvc2Vla3Bvcy5jOiBMaWtld2lzZS4KCSogc3RkaW8vZmNsb3NlLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mZmx1cy5jOiBMaWtld2lzZS4KCgkqIGxpYmlvL2xpYmlvLmggWyFfSU9fTVRTQUZFX0lPXTogRGVmaW5lIF9JT19jbGVhbnVwX3JlZ2lvbl9zdGFydAoJYW5kIF9JT19jbGVhbnVwX3JlZ2lvbl9lbmQgYXMgZW1wdHkuCgkqIGxpYmlvL2ZnZXRjLmM6IFVzZSBfSU9fY2xlYW51cF9yZWdpb25fc3RhcnQgYW5kCglfSU9fY2xlYW51cF9yZWdpb25fZW5kIGluc3RlYWQgb2YgX19saWJjX2NsZWFudXBfcmVnaW9uX3N0YXJ0IGFuZAoJX19saWJjX2NsZWFudXBfcmVnaW9uX2VuZC4KCSogbGliaW8vZnB1dGMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2ZyZW9wZW4uYzogTGlrZXdpc2UuCgkqIGxpYmlvL2ZzZWVrLmM6IExpa2V3aXNlLgoJKiBsaWJpby9nZXRjLmM6IExpa2V3aXNlLgoJKiBsaWJpby9nZXRjaGFyLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb2ZjbG9zZS5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mZmx1c2guYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZmdldHBvcy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mZ2V0cy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mcHV0cy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mcmVhZC5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mc2V0cG9zLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb2Z0ZWxsLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb2Z3cml0ZS5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9nZXRkZWxpbS5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9nZXRzLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3B1dHMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvc2V0YnVmZmVyLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3NldHZidWYuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvdW5nZXRjLmM6IExpa2V3aXNlLgoKCSogbGliaW8vaW92c3BpbnRmLmM6IFVzZSBjbGVhbnVwIGhhbmRsZXIgdG8gbWFrZSBzdXJlIG5vIGRhbmdsaW5nCglsb2NrcyBjYW4gc3RheSBvdmVyLgoJKiBsaWJpby9pb3Zzc2NhbmYuYzogTGlrZXdpc2UuCgoJKiBsaWJpby9nZW5vcHMuYzogVXNlIF9JT19sb2NrX2luaXRfcmVjdXJzaXZlIGFuZCBfSU9fbG9ja19maW5pCglpbnN0ZWFkIG9mIF9fbGliY19sb2NrX2luaXRfcmVjdXJzaXZlIGFuZCBfX2xpYmNfbG9ja19maW5pLgoKCSogbGliaW8vZmlsZWRvYWxsb2MuYzogT25seSB1c2UgX19pc2F0dHkgd2hlbiBjb21waWxpbmcgR05VIGxpYmMuCglPdGhlcndpc2UgdXNlIGlzYXR0eS4KCSogbGliaW8vZmlsZW9wcy5jOiBMaWtld2lzZSBmb3IgX19vcGVuIGFuZCBvcGVuLgoKCSogbG9naW4vdXRtcF9maWxlLmMgKGdldHV0ZW50X3JfZmlsZSk6IFVzZSBmY250bCBpbnN0ZWFkIG9mCglmbG9jay4KCgkqIG5pcy95cGNsbnQuaDogQWRkIG1vcmUgY2FzdHMgdG8gcHJldmVudCB3YXJuaW5ncy4KCgkqIG5zcy9NYWtlZmlsZSAoc2VydmljZXMpOiBSZW1vdmUgZG5zLgoJKGxpYm5zc19kbnMsIGxpYm5zc19kbnMtaW5oaWJpdC1vKTogUmVtb3ZlIGRlZmluaXRpb24uCgkoJChvYmpwZngpbGlibnNzX2Rucy5zbyk6IFJlbW92ZWQuCgkqIG5zcy9uc3NfZG5zL2Rucy1ob3N0LmMsIG5zcy9uc3NfZG5zL2Rucy1uZXR3b3JrLmM6IE1vdmVkIHRvLi4uCgkqIHJlc29sdi9uc3NfZG5zOiAuLi5oZXJlLgoJKiByZXNvbHYvTWFrZWZpbGUgKGV4dHJhLWxpYnMpOiBBZGQgbGlibnNzX2Rucy4KCShsaWJuc3NfZG5zLXJvdXRpbmVzLCBsaWJuc3NfZG5zLWluaGliaXQtbyk6IERlZmluZSBhcyBpbgoJbnNzL01ha2VmaWxlLgoKCSogbnNzL1hYWC1sb29rdXAuYzogQ2FsbCBfX25zc19kYXRhYmFzZV9sb29rdXAgd2l0aCBuZXcgYXJndW1lbnQKCXNwZWNpZnlpbmcgYWx0ZXJuYXRlIG5hbWUgZm9yIGVudHJ5IGluIC9ldGMvbnNzd2l0Y2guY29uZgoJKiBuc3MvbnNzd2l0Y2guYzogSWYgbm8gZW50cnkgd2l0aCBwcmltYXJ5IG5hbWUgaXMgZm91bmQgaW4KCS9ldGMvbnNzd2l0Y2guY29uZiB0cnkgYWx0ZXJuYXRlIG5hbWUgaWYgZ2l2ZW4uCgkqIG5zcy9uc3N3aXRjaC5oOiBBZGQgbmV3IHBhcmFtZXRlciBpbiBwcm90b3R5cGUgZm9yCglfX25zc19kYXRhYmFzZV9sb29rdXAuCgkqIG5zcy9zcHdkLWxvb2t1cC5jOiBQcm92aWRlIGFsdGVybmF0aXZlIGVudHJ5IG5hbWUgdG8gbG9vayBmb3IuCglUaGlzIG1ha2VzIG91ciBOU1MgY29tcGF0aWJsZSB3aXRoIFNvbGFyaXMnIG5zc3dpdGNoLmNvbmYgZmlsZXMuCgoJKiBzdHJpbmcvdHN0LXN0cmxlbi5jOiBDaGFuZ2UgYWxsIGNvdW50aW5nIHZhcmlhYmxlcyB0byB0eXBlIHNpemVfdAoJdG8gcHJldmVudCB3YXJuaW5ncy4KCgkqIHN5c2RlcHMvcG9zaXgvZnBhdGhjb25mLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgkqIHN5c2RlcHMvcG9zaXgvcGF0aGNvbmYuYzogRG9uJ3QgY2FsbCBmcGF0aGNvbmYgdG8gZG8gdGhlIHdvcmsuCglPcGVuaW5nIHRoZSBmaWxlIGF0IHRoaXMgcGF0aCBtYXkgZmFpbCBpZiBpdCBpcyBhIEZJRk8gb3IgcGlwZS4KCglUaGVzZSBjaGFuZ2VzIG1ha2UgdGhlIHRpbWUgaW1wbGVtZW50YXRpb24gUE9TSVguMSBjb21wbGlhbnQuCgkqIHRpbWUvbG9jYWx0aW1lLmMgKF9fbG9jYWx0aW1lX3IpOiBBbHdheXMgY2FsbCBfX3R6c2V0IG5vdCBvbmx5CglpZiBfX3R6c2V0X3J1biBpcyB6ZXJvLgoJKiB0aW1lL3N0cmZ0aW1lLmM6IEFkZCBkZWZpbml0aW9uIG9mIG1lbXNldF9zcGFjZSB0byBoZWxwIHRvCglyZWR1Y2UgZm9yIHN5c3RlbXMgd2hpY2ggaGF2ZSBtZW1zZXQuCgkoc3RyZnRpbWUpOiBEb24ndCB1c2UgdG1fem9uZSBtZW1iZXIgb2YgYXJndW1lbnQgZm9yIHpvbmUgbmFtZS4KCUluc3RlYWQgYWx3YXlzIHVzZSB0em5hbWVbXS4KCUNhbGwgdHpzZXQoKSBhcyByZXF1aXJlZCBieSBQT1NJWC4xIGJlZm9yZSBhbnkgYWN0aW9uLgoJKiB0aW1lL3R6c2V0LmMgKHR6c2V0KTogU2V0IHR6bmFtZVtdIGFzIHJlcXVpcmVkIGJ5IFBPU0lYLjEuCglSZW1vdmUgZ2xvYmFsIHZhcmlhYmxlIF9fdHpzZXRfcnVuLiAgX190enNldCBpcyBub3cgY2FsbGVkIGFsd2F5cwoJd2hlbiBhIGRlcGVuZGVudCBmdW5jdGlvbiBpcyB1c2VkLgoJKF9fdHpzZXQpOiBDYWNoaW5nIGhhcHBlbnMgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZQoJZW52aXJvbm1lbnQgdmFyaWFibGUgVFouCgpGcmkgRGVjIDEzIDAxOjA2OjUyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvcGF0aHMuaDogQWRkIF9QQVRIX0tMT0cuCgpUaHUgRGVjIDEyIDA5OjE2OjM1IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogcmVsbG5zLXNoOiBDb3JyZWN0bHkgaGFuZGxlIGEgcmVsYXRpdmUgc291cmNlIGZpbGUgbmFtZS4KCldlZCBEZWMgMTEgMTk6MTg6NDAgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBsb2dpbi91dG1wX2ZpbGUuYyAoc2V0dXRlbnRfZmlsZSk6IFNlZWsgYmFjayB0byBiZWdpbm5pbmcgb2YgdGhlCglmaWxlIGlmIHJlc2V0dGluZy4KClRodSBEZWMgMTIgMTY6Mzk6MTIgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIGh1cmQvaHVyZGluaXQuYyAobWFwMCk6IERlbGV0ZSBmdW5jdGlvbi4gIERvbid0IGRvIHRoaXMgb24KCV9odXJkX3ByZWluaXRfaG9vay4KCSogaHVyZC9odXJkc3RhcnR1cC5jIChfaHVyZF9zdGFydHVwKTogTWFwIHBhZ2UgemVybyByZWR6b25lIGhlcmUuCgpUaHUgRGVjIDEyIDAzOjMyOjIxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbGliaW8vX0dfY29uZmlnLmg6IEFkZCBkZWZpbml0aW9uIG9mIF9HX2ludDE2X3QsIF9HX2ludDMyX3QsCglfR191aW50MTZfdCwgX0dfdWluMzJfdCwgX0dfSEFWRV9CT09MLCBfR19IQVZFX01NQVAsIGFuZAoJX0dfQVJHUy4KCglDaGFuZ2UgbGliaW8gYnVmZmVyIGhhbmRsaW5nIHRvIGFsbG9jYXRlIGludGVybmFsIGJ1ZmZlcnMgdXNpbmcKCW1tYXAgaWYgcG9zc2libGUuCgkqIGxpYmlvL2ZpbGVkb2FsbG9jLmMgKF9JT19maWxlX2RvYWxsb2NhdGUpOiBDaGFuZ2UgY2FsbCB0bwoJQUxMT0NfQlVGLgoJKiBsaWJpby9nZW5vcHMuYyAoX0lPX3NldGIsIF9JT19kZWZhdWx0X2ZpbmlzaCk6IENoYW5nZSBjYWxsCgl0byBGUkVFX0JVRi4KCShfSU9fZGVmYXVsdF9kb2FsbG9jYXRlKTogQ2hhbmdlIGNhbGwgdG8gQUxMT0NfQlVGLgoJKiBsaWJpby9saWJpb1AuaDogQ2hhbmdlIGRlZmluaXRpb24gb2YgQUxMT0NfQlVGIGFuZCBGUkVFX0JVRgoJdG8gdXNlIG1tYXAvbXVubWFwIHdoZW4gcG9zc2libGUuCgkqIGxpYmlvL21lbXN0cmVhbS5jOiBEb24ndCB1c2UgQUxMT0NfQlVGLCBidXQgZGlyZWN0bHkgbWFsbG9jLgoJKiBsaWJpby92YXNwcmludGYuYzogTGlrZXdpc2UuCglQYXRjaCBieSBISiBMdS4KCgkqIGxpYmlvL2xpYmlvLmg6IERlZmluZSBOVUxMIGFzIF9fbnVsbCBvbmx5IGZvciBnY2MtMi44IGFuZCB1cC4KCSogbGliaW8vbGliaW9QLmg6IExpa2V3aXNlLgoKCSogbGliaW8vZmlsZW9wcy5jIChfSU9fZmlsZV9yZWFkLCBfSU9fZmlsZV93cml0ZSk6IERvbid0CglyZXN0YXJ0IHN5c2NhbGwgd2hlbiBFSU5UUiB3YXMgcmV0dXJuZWQuICBOZWNlc3NhcnkgZm9yIFBPU0lYLjEuCgoJKiBsaWJpby9zdHJvcHMuYyAoX0lPX3N0cl9vdmVyZmxvdyk6IEFkZCBjYXN0IHRvIHByZXZlbnQgd2FybmluZy4KCgkqIG5ldy1tYWxsb2MvbWFsbG9jLmMgKGhlYXBfdHJpbSk6IENvcnJlY3RseSBwbGFjZSBwYXJlbnRoZXNlcyB0bwoJcHJldmVudCB3YXJuaW5ncy4KCgkqIG5pcy9NYWtlZmlsZTogUmVtb3ZlIHJ1bGVzIGZvciBic2QtdG9vbHMgd2hpY2ggYXJlIG5vdCBwYXJ0CglvZiBnbGliYy4KCVBhdGNoIGJ5IFRob3JzdGVuIEt1a3VrLgoKCSogbmlzL3lwY2xudC5jOiBBZGQgcHJvdG90eXBlIGZvciB4ZHJfZnJlZS4KCUFkZCBjb25zdCB0byBmaXJzdCBwYXJhbWV0ZXIgZm9yIF9feXBfYmluZC4KCSogbmlzL25zc19jb21wYXQvY29tcGF0LXB3ZC5jIChnZXRwd2VudF9uZXh0X25ldGdyLCBnZXRwd2VudF9uZXh0X25pcywKCWdldHB3ZW50X25leHRfZmlsZSk6IFZhcmlhYmxlIGBwMmxlbicgbXVzdCBoYXZlIHR5cGUgc2l6ZV90LgoJKiBuaXMvbnNzX25pcy9uaXMtYWxpYXMuYzogQWRkIGNhc3RzIHRvIHByZXZlbnQgd2FybmluZ3MuCgkqIG5pcy9uc3NfbmlzL25pcy1ldGhlcnMuYzogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1ncnAuYzogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1ob3N0cy5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLW5ldHdvcmsuYzogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1wcm90by5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLXB3ZC5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLXJwYy5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLXNlcnZpY2UuYzogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1zcHdkLmM6IExpa2V3aXNlLgoKCSogbmlzL3JwY3N2Yy95cF9wcm90LmggKHlwcmVxX2tleSk6IENoYW5nZSB0eXBlIG9mIG1lbWJlcnMgdG8KCWBjb25zdCBjaGFyIConLgoJKHlwbWFwbGlzdCk6IENoYW5nZSBtZW1iZXIgbmFtZXMgdG8gYG1hcCcgYW5kIGBuZXh0JyBhbmQgcHJvdmlkZQoJI2RlZmluZXMgZm9yIG9sZCBuYW1lcy4KCVBhdGNoIGJ5IFRob3JzdGVuIEt1a3VrLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jIChwYXJzZV9saW5lLCBwYXJzZV9saXN0KTogQ2hhbmdlCgl0eXBlIGZvciBgZGF0YWxlbicgcGFyYW1ldGVyIHRvIHNpemVfdC4KCgkqIHNoc2Rvdy9sY2twd2RmLmM6IFVzZSBmY250bCBmb3Jsb2NraW5nLCBub3QgZmxvY2suCgoJKiBzdGRpby1jb21tb24vcHJpbnRmLmMgW1VTRV9JTl9MSUJJT106IFByb3ZpZGUgYWxpYXMgX0lPX3ByaW50ZgoJZm9yIHByaW50Zi4KCSogc3RkaW8tY29tbW9uL3NzY2FuZi5jIFtVU0VfSU5fTElCSU9dOiBQcm92aWRlIGFsaWFzIF9JT19zc2NhbmYKCWZvciBzc2NhbmYuCglQYXRjaCBieSBISiBMdS4KCgkqIHN0ZGlvLWNvbW1vbi90bXBmaWxlLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgoJKiBzdGRpby1jb21tb24vdmZzY2FuZi5jOiBDb3JyZWN0bHkgaGFuZGxlIEVJTlRSIGVycm9yIGZyb20gZmdldGMKCWZ1bmN0aW9uLgoJRG9uJ3QgZWF0IHdoaXRlIHNwYWNlIGZvciBgQycgZm9ybWF0LgoKCSogc3RkbGliL3RzdC1zdHJ0b2wuYyBbfjBVTCAhPSAweGZmZmZmZmZmXTogRml4IHR5cG8gaW4gdGVzdCBkYXRhLgoKCSogc3lzZGVwcy9nZW5lcmljL2Fib3J0LmM6IFVwZGF0ZSBjb3B5cmlnaHQuICBEZS1BTlNJLWRlY2xmeS4KCSogc3lzZGVwcy9pMzg2L2Fib3J0LmM6IFJlbW92ZWQuICBUaGlzIHZlcnNpb24gZG9lcyBub3QgdXNlCglzaWduYWwgU0lHQUJSVC4KCgkqIHN5c2RlcHMvaTM4Ni9mcHUvX19tYXRoLmg6IERlZmluZSBfX05PX01BVEhfSU5MSU5FUyBpZiBub3QgdXNpbmcKCWdjYy0yLjggb3IgdXAuCglQYXRjaCBieSBISiBMdS4KCgkqIHN5c2RlcHMvcG9zaXgvdGVtcG5hbWUuYzogVGVzdCBmb3IgZXJyb3IgYnV0IEVFWElTVCBhZnRlciBvcGVuCgljYWxsLiAgSWYgRU1GSUxFLCBFTkZJTEUsIG9yIEVJTlRSIHJldHVybiB3aXRoIGVycm9yLgoKV2VkIERlYyAxMSAxNDo0Mzo1MiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGdudS12ZXJzaW9ucy5oOiBTZXQgX0dOVV9PQlNUQUNLX0lOVEVSRkFDRV9WRVJTSU9OIGJhY2sgdG8gMS4KCVdlIGFyZSBjb21wYXRpYmxlIGFnYWluLgoJKiBuZXctbWFsbG9jL29ic3RhY2suaCAoc3RydWN0IG9ic3RhY2spOiBBZGQgYmFjayBhbGxvY19mYWlsZWQgYml0CglldmVuIHRob3VnaCBpdCBpcyBub3QgdXNlZC4KCSogbWFsbG9jL29ic3RhY2suaDogTGlrZXdpc2UuCgkqIG5ldy1tYWxsb2Mvb2JzdGFjay5jIChfb2JzdGFja19iZWdpbiwgX29ic3RhY2tfYmVnaW5fMSk6IEluaXRpYWxpemUKCWFsbG9jX2ZhaWxlZCBiaXQgdG8gMC4KCgkqIHRpbWUvc3RyZnRpbWUuYzogRXh0ZW5kIGZvciBFbWFjcycgbmVlZHMuICBSZWNvZ25pemUgZmllbGQgd2lkdGgsCgklUCBmb3JtYXQgYW5kIGAwJyBtb2RpZmllci4KClR1ZSBEZWMgMTAgMjE6MjA6NDQgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlcnVsZXMgKG1ha2UtbGluayk6IERvbid0IGRpc2NhcmQgZXhpdCBjb2RlcyBvZiBpbnRlcm1lZGlhdGUKCWNvbW1hbmRzLiAgQWx3YXlzIHVzZSByZWxsbnMtc2ggaWYgc3ltYm9saWMgbGlua3MgYXJlIGF2YWlsYWJsZS4KClR1ZSBEZWMgMTAgMjA6MDk6NTEgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXRpbmV0L2luLmg6IEVuY2xvc2UgI2luY2x1ZGUKCTxsaW51eC9pbi5oPiBpbiBfX0JFR0lOX0RFQ0xTL19fRU5EX0RFQ0xTIHRvIGF2b2lkIGxpbmthZ2UKCWNvbmZsaWN0IG9mIG50b2hzIGV0Yy4gaW4gPGFzbS9ieXRlb3JkZXIuaD4uCgpXZWQgRGVjIDExIDAxOjA0OjMwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCUFkZCBOSVMgTlNTIGltcGxlbWVudGF0aW9uLgoJKiBzaGxpYi12ZXJzaW9uczogQWRkIHZlcnNpb25zIGZvciBOSVMgbGlicmFyaWVzLgoJKiBzeXNkZXBzL3VuaXgvaW5ldC9TdWJkaXJzOiBBZGQgbmlzLgoJKiBuaXMvQmFubmVyOiBOZXcgZmlsZS4KCSogbmlzL01ha2VmaWxlOiBOZXcgZmlsZS4KCSogbmlzL25zcy1uaXMuaDogTmV3IGZpbGUuCgkqIG5pcy95cF94ZHIuaDogTmV3IGZpbGUuCgkqIG5pcy95cGNsbnQuaDogTmV3IGZpbGUuCgkqIG5pcy95cHVwZGF0ZV94ZHIuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfY29tcGF0L2NvbXBhdC1ncnAuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfY29tcGF0L2NvbXBhdC1wd2QuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfY29tcGF0L2NvbXBhdC1zcHdkLmM6IE5ldyBmaWxlLgoJKiBuaXMvbnNzX25pcy9uaXMtYWxpYXMuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1ldGhlcnMuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1ncnAuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1ob3N0cy5jOiBOZXcgZmlsZS4KCSogbmlzL25zc19uaXMvbmlzLW5ldGdycC5jOiBOZXcgZmlsZS4KCSogbmlzL25zc19uaXMvbmlzLW5ldHdvcmsuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1wcm90by5jOiBOZXcgZmlsZS4KCSogbmlzL25zc19uaXMvbmlzLXB1YmxpY2tleS5jOiBOZXcgZmlsZS4KCSogbmlzL25zc19uaXMvbmlzLXB3ZC5jOiBOZXcgZmlsZS4KCSogbmlzL25zc19uaXMvbmlzLXJwYy5jOiBOZXcgZmlsZS4KCSogbmlzL25zc19uaXMvbmlzLXNlcnZpY2UuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1zcHdkLmM6IE5ldyBmaWxlLgoJKiBuaXMvcnBjc3ZjL3lwLmg6IE5ldyBmaWxlLgoJKiBuaXMvcnBjc3ZjL3lwLng6IE5ldyBmaWxlLgoJKiBuaXMvcnBjc3ZjL3lwX3Byb3QuaDogTmV3IGZpbGUuCgkqIG5pcy9ycGNzdmMveXBjbG50Lmg6IE5ldyBmaWxlLgoJKiBuaXMvcnBjc3ZjL3lwdXBkLmg6IE5ldyBmaWxlLgoKCSogbGliaW8vX0dfY29uZmlnLmg6IERlZmluZSBfR19IQVZFX1NZU19XQUlUIGFuZCBfR19IQVZFX1BSSU5URl9GUC4KCgkqIGxvY2FsZS9DLW51bWVyaWMuYzogVXBkYXRlIGNvcHlyaWdodC4KCgkqIGxvY2FsZS9NYWtlZmlsZTogQWRkIHJ1bGVzIHRvIGJ1aWxkIGxpYkJyb2tlbkxvY2FsZS4KCSogbG9jYWxlL2Jyb2tlbl9jdXJfbWF4LmM6IE5ldyBmaWxlLgoJKiBsb2NhbGUvbWJfY3VyX21heC5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKF9fY3R5cGVfZ2V0X21iX2N1cl9tYXgpOiBNYWtlIGZ1bmN0aW9uIHdlYWsuCgoJKiBuZXctbWFsbG9jL21hbGxvYy5jOiBDb3JyZWN0IGNvcHlyaWdodC4KCSogbmV3LW1hbGxvYy90aHJlYWQtbS5oOiBDb3JyZWN0IGtleSBoYW5kbGluZy4KCgkqIHNoYWRvdy9sY2twd2RmLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgkoUFdEX0xPQ0tGSUxFKTogQ2hhbmdlIHRvIC9ldGMvLnB3ZC5sb2NrLgoKCSogc3RkbGliL3N0cnRvZC5jOiBBZGQgYW5vdGhlciBhc3NlcnRpb24uCgkqIHN0ZGxpYi90c3Qtc3RydG9kLmM6IEFkZCBhbm90aGVyIHRlc3QgY2FzZS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9wYXRocy5oOiBBZGQgX1BBVEhfUFJFU0VSVkUuICBOZWVkZWQgYnkgbnZpLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wYXRocy5oOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvZ251L3V0bXBiaXRzLmg6IFJlbmFtZSB1dF9hZGRyIGZpZWxkIHRvIHV0X2FkZHJfdjYuCgl1dF9hZGRyIG5hbWVzIGEgc2luZ2xlIGVsZW1lbnQgaW4gdXRfYWRkcl92Ni4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3hta25vZC5jOiBSZW1vdmUgYWxpYXMgZnJvbSBfX21rbm9kIHRvIG1rbm9kLgoJUGF0Y2ggYnkgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRy4KClR1ZSBEZWMgMTAgMTE6MzU6MjggMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBzeXNkZXBzL2FscGhhL3N0cm5jbXAuUzogRml4IGFsaWduZWQgc2hvcnQgdHJ1bmNhdGVkIGNvbXBhcmUKCWNvcm5lciBjb25kaXRpb24uCgoJKiBzeXNkZXBzL2FscGhhL21lbWNoci5TOiBEb24ndCByZWFkIGFoZWFkLCBldmVuIGlmIHRoZSBsb2FkCglkaWQgZml0IG5pY2VseSBpbnRvIHRoYXQgZGVsYXkgc2xvdCAocGF0Y2ggZnJvbSBEYXZpZCBNb3NiZXJnZXItVGFuZykuCgpNb24gRGVjICA5IDIzOjUzOjQzIDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC90dHluYW1lX3IuYyAoX190dHluYW1lX3IpOiBSZW5hbWVkIGZyb20KCWB0dHluYW1lX3InLgoJKHR0eW5hbWVfcik6IE5ldyBhbGlhcy4KClR1ZSBEZWMgMTAgMDI6MTc6MzEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRpby1jb21tb24vcHJpbnRmX2ZwLmMgKF9fZ3Vlc3NfZ3JvdXBpbmcpOiBGaXggb2ZmIGJ5IG9uZQoJZXJyb3IgaW4gY29tcHV0YXRpb24gb2YgbnVtYmVyIG9mIGdyb3Vwcy4KCVBhdGNoIHNlbnQgYnkgSGFyYWxkIFNjaHJlaWJlciA8SGFyYWxkLlNjaHJlaWJlckBwb3N0LnJ3dGgtYWFjaGVuLmRlPi4KClR1ZSBEZWMgMTAgMDE6NTA6MDcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB2ZXJzaW9uLmg6IFNldCB2ZXJzaW9uIHRvIDEuOTkuCgoJKiBNYWtlLWRpc3QgKHJvdXRpbmVzKTogQWRkIG1hbGxvYyBhbmQgbmV3LW1hbGxvYy4KCgkqIE1ha2Vjb25maWc6IEFsbG93IE1ha2VmaWxlcyB0byBzZXQgJChDUFBGTEFHUy0kKDxGKSkgYW5kCgkkKENQUEZMQUdTLSQoQEYpKSB0byBiZSBhZGRlZCB0byBDUFBGTEFHUy4KCVNhbWUgZm9yICQoQ0ZMQUdTLSQoQEYpKSBhbmQgQ0ZMQUdTLgoKCSogZ21vbi9zeXMvZ21vbl9vdXQuaDogQWRkIF9fQkVHSU5fREVDTFMvX19FTkRfREVDTFMuICBVbmlmeQoJbGF5b3V0LgoJKiBpby9zeXMvcG9sbC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3N5cy9pcGJfYnVmLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5cy9wZXJtLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5cy92bTg2Lmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvaXBjX2J1Zi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL2tkYWVtb24uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9rbG9nLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW1hbi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21vZHVsZS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21vdW50Lmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbXNxX2J1Zi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3BhcmFtLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvcHJvY2ZzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvcHRyYWNlLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvcmVib290Lmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvc2VtX2J1Zi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3NobV9idWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zb2NrZXRjYWxsLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvc3dhcC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3N5c2N0bC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3N5c2luZm8uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zeXNtYWNyb3MuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy90aW1leC5oOiBMaWtld2lzZS4KCSogc3lzdmlwYy9zeXMvc2VtLmg6IExpa2V3aXNlLgoJKiBzeXN2aXBjL3N5cy9zaG0uaDogTGlrZXdpc2UuCgoJKiBuZXctbWFsbG9jL01ha2VmaWxlOiBTZXQgQ1BQRkxBR1MtbWFsbG9jLm8uCgkqIG5ldy1tYWxsb2MvbWFsbG9jLmM6IFJlbW92ZSBwcm9ibGVtIHdpdGggNjQgYml0cyBwb2ludGVycy4KCUFkZCBzdGF0aXN0aWNzIGZvciB0aHJlYWRzLgoJKiBuZXctbWFsbG9jL21hbGxvYy5oOiBMaWtld2lzZS4KCSogbmV3LW1hbGxvYy90aHJlYWQtbS5oOiBMaWtld2lzZS4KCgkqIHRpbWUvc3RyZnRpbWUuYzogRGVjbGFyZSB0em5hbWUgaWYgaWYgSEFWRV9UWk5BTUUgaXMgZGVmaW5lZC4KCgkqIHRpbWUvc3RycHRpbWUuYzogVXBkYXRlIGNvcHlyaWdodC4KCk1vbiBEZWMgIDkgMTQ6NTE6MTAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlLWRpc3Q6IE1ha2Ugc3VyZSBib3RoIG1hbGxvYyBkaXJlY3RvcmllcyBnZXQgZGlzdHJpYnV0ZWQuCgpTdW4gRGVjICA4IDIzOjE0OjEwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbGliaW8vaW9nZXRzLmMgKF9JT19nZXRzKTogRml4IGVhcmx5IHJldHVybnMgdG8gbm90IGxlYXZlIHRoZQoJc3RyZWFtIGxvY2tlZC4KClNhdCBEZWMgIDcgMjI6MDg6MDkgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW9kdWxlLmg6IEVuY2xvc2UgZGVjbGFyYXRpb25zIGluCglfX0JFR0lOX0RFQ0xTL19fRU5EX0RFQ0xTLgoKU2F0IERlYyAgNyAxNDoyMzoxMiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGxvZ2luL3V0bXBfZmlsZS5jOiBDb25zaXN0ZW50bHkgc2V0IGZpbGVfb2Zmc2V0IHRvIHRoZSBwb3NpdGlvbgoJYWZ0ZXIgdGhlIGVudHJ5IGp1c3QgcmVhZC4KCk1vbiBEZWMgIDkgMDM6Mzk6MzAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjb25maWcubWFrZS5pbiAoZGVmaW5lcyk6IEFkZCBAVVNFX05FV19NQUxMT0NALgoJKiBNYWtlZmlsZS5pbjogRGVmaW5lIFVTRV9ORVdfTUFMTE9DIHRvIC1EVVNFX05FV19NQUxMT0MgaWYKCXdlIHVzZSB0aGUgbmV3IG1hbGxvYy4KCgkqIG1hbGxvYy5oOiBVc2UgZWl0aGVyIDxtYWxsb2MvbWFsbG9jLmg+IG9yIDxuZXctbWFsbG9jL21hbGxvYy5oPgoJZGVwZW5kaW5nIG9uIFVTRV9ORVdfTUFMTE9DLgoKCUZpeCBzb21lIG1vcmUgUE9TSVguMSBwcm9ibGVtcy4KCSogbGliaW8vZmlsZW9wcy5jIChfSU9fZmlsZV91bmRlcmZsb3cpOiBTZXQgZXJybm8gdG8gRUJBREYgaWYgdXNlZAoJb24gYSB3cml0ZS1vbmx5IHN0cmVhbS4KCShfSU9fZmlsZV9vdmVyZmxvdyk6IFNldCBlcnJubyB0byBFQkFERiBpZiB1c2VkIG9uIGEgcmVhZC1vbmx5CglzdHJlYW0uCgkoX0lPX2ZpbGVfc2Vla29mZik6IFBPU0lYLjEgcmVxdWlyZXMgdGhhdCBmc2VlaygpIGFmdGVyIGFuIGZmbHVzaCgpCgljYWxsIHJlYWxseSBwb3NpdGlvbnMgdGhlIGZpbGUgb2Zmc2V0IHRvIHRoZSBjb3JyZWN0IHBvc2l0aW9uCglhbmQgbm8gcmVhZC1haGVhZCBoYXBwZW5zLgoKCSogbG9jYWxlL0MtbW9uZXRhcnkuYzogU2V0IG1vbl9ncm91cGluZyBmaWxlIHRvICIiIGFuZCAiXDM3NyIKCXRvIHBhc3MgUE9TSVggdGVzdCBzdWl0ZS4KCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IEhhbmRsZSBlbXB0eSBzdHJpbmcgYXMgZ3JvdXBpbmcgY29tbWFuZAoJY29ycmVjdGx5LgoJKiBzdGRsaWIvZ3JvdXBpbmcuaDogTGlrZXdpc2UuCgoJKiBtaXNjL3N5c2xvZy5jOiBDYXNlIGZpcnN0IGFyZ3VtZW50IG9mIF9fbGliY19jbGVhbnVwX3JlZ2lvbl9zdGFydC4KCgkqIHNpZ25hbC9zaWdzZXRvcHMuaDogVXBkYXRlIGNvcHlyaWdodC4gIERvbid0IGluY2x1ZGUgYW5zaWRlY2wuaC4KCgkqIHN0ZGlvLWNvbW1vbi9wcmludGZfZnAuYzogVXBkYXRlIGNvcHlyaWdodC4KClN1biBEZWMgIDggMTY6Mzk6MjggMTk5NiAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiB0aW1lL01ha2VmaWxlOiBDb21waWxlIGFwLmMgd2l0aCBOT19NQ0hFQ0sgZmxhZyBpZiBuZXctbWFsbG9jCgl1c2VkIChub3Qgb3RoZXJ3aXNlKS4KClN1biBEZWMgIDggMDY6NTY6NDkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpby9nZXR3ZC5jOiBVc2UgUEFUSF9NQVggbm90IExPQ0FMX1BBVEhfTUFYLiAgRml4IHR5cG8gaW4KCWNvbW1lbnQuCgkqIHN0ZGxpYi9jYW5vbmljYWxpemUuYzogQ29ycmVjdCBidWdzIGluIGxhc3QgY2hhbmdlLgoJUGF0Y2ggYnkgSEogTHUuCgoJKiBsaWJpby9NYWtlZmlsZSAocm91dGluZXMpOiBSZW1vdmUgaW9wcmltcy4KCShhdXgpOiBSZW1vdmUgY2xlYW51cC4KCUFkZCBJT19ERUJVRyBvcHRpb24gZm9yIC5vIGZpbGVzLgoJKiBsaWJpby9jbGVhbnVwcy5jOiBSZW1vdmVkLgoJKiBsaWJpby9pb3ByaW1zLmM6IFJlbW92ZWQuCgkqIGxpYmlvL2ZpbGVkb2FsbG9jLmM6IE1vcmUgdXBkYXRlcyBmcm9tIGxpYmcrKy0yLjhiNS4KCSogbGliaW8vZmlsZW9wcy5jOiBMaWtld2lzZS4KCSogbGliaW8vZ2Vub3BzLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb2xpYmlvLmg6IExpa2V3aXNlLgoJKiBsaWJpby9pb3BvcGVuLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3ZzcHJpbnRmLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3Zzc2NhbmYuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2xpYmlvLmg6IExpa2V3aXNlLgoJKiBsaWJpby9saWJpb1AuaDogTGlrZXdpc2UuCgkqIGxpYmlvL21lbXN0cmVhbS5jOiBMaWtld2lzZS4KCSogbGliaW8vc3RyZmlsZS5oOiBMaWtld2lzZS4KCSogbGliaW8vdmFzcHJpbnRmLmM6IExpa2V3aXNlLgoJKiBsaWJpby92c25wcmludGYuYzogTGlrZXdpc2UuCgoJKiBsaWJpby9zdGRpby5oOiBEZWZpbmUgUF90bXBkaXIgb25seSBpcyBfX1VTRV9TVklELgoKCSogbWFudWFsL2FyaXRoLnRleGk6IENoYW5nZSByZWZlcmVuY2VzIHRvIEFOU0kgQyB0byBJU08gQy4KCSogbWFudWFsL2NvbmYudGV4aTogTGlrZXdpc2UuCgkqIG1hbnVhbC9jcmVhdHVyZS50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL2N0eXBlLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvZXJybm8udGV4aTogTGlrZXdpc2UuCgkqIG1hbnVhbC9maWxlc3lzLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvaW50cm8udGV4aS4gTGlrZXdpc2UuCgkqIG1hbnVhbC9pby50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL2xhbmcudGV4aTogTGlrZXdpc2UuCgkqIG1hbnVhbC9saWJjLnRleGluZm86IExpa2V3aXNlLgoJKiBtYW51YWwvbG9jYWxlLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvbWFpbnQudGV4aTogTGlrZXdpc2UuCgkqIG1hbnVhbC9tYnl0ZS50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL21lbW9yeS50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL3Byb2Nlc3MudGV4aTogTGlrZXdpc2UuCgkqIG1hbnVhbC9wcm9jZXNzLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvc2VhcmNoLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvc2V0am1wLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvc2lnbmFsLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvc3RhcnR1cC50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL3N0ZGlvLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvc3RyaW5nLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvdGltZS50ZXhpOiBMaWtld2lzZS4KCgkqIG1hbnVhbC9sb2NhbGUudGV4aTogUmVtb3ZlIGRlc2NyaXB0aW9uIG9mIExDX1JFU1BPTlNFIGFuZCBhZGQKCUxDX01FU1NBR0VTLgoKCSogTWFrZWZpbGUgKHN1YmRpcnMpOiBDaGFuZ2UgbWFsbG9jIGluICQobWFsbG9jKS4KCSogY29uZmlnLm1ha2UuaW46IEFkZCB2YXJpYWJsZSBtYWxsb2Mgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgZnJvbQoJQG1hbGxvY0AuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIG5ldyBvcHRpb24gLS1lbmFibGUtbmV3LW1hbGxvYyB0byB1c2UgbmV3CgltYWxsb2MuICBUaGlzIGlzIHRoZSBkZWZhdWx0IG9uIExpbnV4LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jb25maWd1cmUuaW46IERlZmluZSBtYWxsb2MgdG8gbmV3LW1hbGxvYwoJYnkgZGVmYXVsdC4KCSogbmV3LW1hbGxvYy9NYWtlZmlsZTogTmV3IGZpbGUuICBJbXByb3ZlZCBtYWxsb2MgaW1wbGVtZW50YXRpb24uCgkqIG5ldy1tYWxsb2MvbWFsbG9jLmM6IExpa2V3aXNlLgoJKiBuZXctbWFsbG9jL21hbGxvYy5oOiBMaWtld2lzZS4KCSogbmV3LW1hbGxvYy9tYWxsb2NidWcuYzogTGlrZXdpc2UuCgkqIG5ldy1tYWxsb2Mvb2JzdGFjay5jOiBMaWtld2lzZS4KCSogbmV3LW1hbGxvYy9vYnN0YWNrLmg6IExpa2V3aXNlLgoJKiBuZXctbWFsbG9jL3RocmVhZC1tLmg6IExpa2V3aXNlLgoJKiB0aW1lL01ha2VmaWxlOiBDb21waWxlIGFwLmMgd2l0aCBOT19NQ0hFQ0sgZmxhZyBmb3Igbm93LgoJKiB0aW1lL2FwLmM6IERvbid0IGNhbGwgbWNoZWNrIGlmIE5PX01DSEVDSyBpcyBkZWZpbmVkLgoKCSogcmVzb2x2L01ha2VmaWxlOiBBZGQgcnVsZSB0byByZWJ1aWlsZCBsaWJyZXNvbHYuc28gd2hlbiBsaWJjLnNvCgljaGFuZ2VkLgoKCSogc3RkaW8vZmVvZi5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKiBzdGRpby9zdGRpby5oOiBBZGQgZmllbGQgZm9yIGxvY2sgdG8gRklMRSBzdHJ1Y3R1cmUuCglBZGQgY2FzdCB0byAqTUFHSUMgY29uc3RhbnRzIHRvIHByZXZlbnQgd2FybmluZ3MuCgoJKiBzdGRpby1jb21tb24vYnVnNy5jOiBDb3JyZWN0IHRlc3QuICBTdHJlYW0gbXVzdCBub3QgYmUgY2xvc2VkCgl0d2ljZS4KCgkqIHN0ZGxpYi9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgc2VjdXJlLWdldGVudi4KCSogc3RkbGliL3NlY3VyZS1nZXRlbnYuYzogTmV3IGZpbGUuICBfX3NlY3VyZV9nZXRlbnYgZnVuY3Rpb24KCW1vdmVkIHRvIGhlcmUgZnJvbSBzeXNkZXBzL2dlbmVyaWMvZ2V0ZW52LmMuICBPdGhlcndpc2UgYW4KCWFwcGxpY2F0aW9uIGNhbm5vdCByZXBsYWNlIHRoZSBnZXRlbnYgZnVuY3Rpb24gaW4gdGhlIGxpYmMuCgkqIHN5c2RlcHMvZ2VuZXJpYy9nZXRlbnYuYzogUmVtb3ZlIF9fc2VjdXJlX2dldGVudiBmdW5jdGlvbi4KCSogc3lzZGVwcy9zdHViL2dldGVudi5jOiBSZW1vdmUgX19zZWN1cmVfZ2V0ZW52IGFsaWFzLgoKCSogc3lzZGVwcy9tYWNoL2xpYmMtbG9jay5oOiBEZWZpbmVfX2xpYmNfbXV0ZXhfbG9jayB0byBfX211dGV4X2xvY2suCgoJKiBzeXNkZXBzL3Bvc2l4L2Zkb3Blbi5jOiBVcGRhdGUgY29weXJpZ2h0LiAgRG9uJ3QgdXNlIEVYRlVOLgoKCSogdGltZS90ZXN0LXR6LmM6IENvbW1lbnQgZmlmdGggdGVzdCBvdXQuICBQUk9CTEVNLgoKCSogdGltZS90enNldC5jOiBEZS1BTlNJLWRlY2xmeS4KCShfX3R6c2V0KTogRG9uJ3QgaW5jcmVtZW50IHBvaW50ZXIgdHogd2hlbiBubyBEU1QgaW5mb3JtYXRpb24gaXMKCWdpdmVuLgoKCSogbWlzYy9zeXNsb2cuYyAodnN5c2xvZyk6IENhc3QgYXJndW1lbnQgdG8gX19saWJjX2NsZWFudXBfcmVnaW9uCgl0byBnZXQgSHVyZCBtYWNyb3MgcmlnaHQuCgpTYXQgRGVjICA3IDIzOjQ3OjU0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9tYWNoL2xpYmMtbG9jay5oIFtfTElCQ106IEFkZCBkZWZpbml0aW9uIG9mCglfX2xpYmNfbXV0ZXhfbG9jay4KCVBhdGNoIGJ5IFRob21hcyBCdXNobmVsbC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RpbWViaXRzLmg6IExvYWQgPGFzbS9wYXJhbS5oPiBvbmx5CglpZiBfX1VTRV9NSVNDLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvRGlzdDogQWRkIGxsc2Vlay5jLgoKU2F0IERlYyAgNyAxMjoxODo1NiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHRpbWUvc3RyZnRpbWUgKCVjIGZvcm1hdCk6IFJlbW92ZSAlWiBmcm9tIGRlZmF1bHQgc3RyaW5nLgoJUmVwb3J0ZWQgYnkgUGF1bCBFZ2dlcnQKClNhdCBEZWMgIDcgMDM6MjQ6MzYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IERpc2NhcmQgZXJyb3IgbWVzc2FnZSBmcm9tIHRlc3QgaW4gdGVzdCBmb3IKCWJhc2gtMi4wLgoKCSogaW8vZ2V0d2QuYzogRG9uJ3QgYXBwbHkgZ2V0Y3dkIG9uIHVzZXIgc3VwcGxpZWQgYnVmZmVyLgoJSW5zdGVhZCBhbHdheXMgdXNlIHRlbXBvcmFyeSBidWZmZXIgYW5kIG9ubHkgY29weSB0aGUgcmVzdWx0LgoJUGF0Y2ggYnkgSEogTHUuCgkqIHN0ZGxpYi9jYW5vbmljYWxpemUuYzogTGlrZXdpc2UuCgoJKiBsaWJpby9maWxlb3BzLmM6IENoYW5nZSBjb21tZW50cyBhY2NvcmRpbmcgdG8gbGliZysrMi44YjUuCgkqIGxpYmlvL2lvc2V0dmJ1Zi5jOiBGb2xsb3cgY2hhbmdlIGluIGxpYmcrKy0yLjhiNSB0byBjbGVhcgoJdW5idWZmZXJlZCBmbGFnLgoJUmVwb3J0ZWQgYnkgSEogTHUuCgoJKiBtYW51YWwvbnNzLnRleGk6IENvcnJlY3QgcHJvdG90eXBlcy4KCgkqIG1pc2Mvc3lzbG9nLmM6IE1ha2UgcmVlbnRyYW50LiAgQ2F0Y2ggU0lHUElQRSBzaWduYWwgdG8gcHJldmVudAoJY3Jhc2ggaWYgc3lzbG9nIGRhZW1vbiBpcyByZXN0YXJ0ZWQuCgoJKiBzdGRsaWIvcmFuZF9yLmM6IE5ldyBmaWxlLiAgSW1wbGVtZW50YXRpb24gb2YgUE9TSVguMiBmdW5jdGlvbgoJcmFuZF9yLgoJKiBzdGRsaWIvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIHJhbmRfci4KCgkqIHN5c2RlcHMvc3R1Yi9saWJjLWxvY2suaDogRGVmaW5lIF9fbGliY19sb2NrX3RyeWxvY2sgYW5kCglfX2xpYmNfbXV0ZXhfbG9jay4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIC0tZGlzYWJsZS1zYW5pdHktY2hlY2sgb3B0aW9uLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jb25maWd1cmUuaW46IElmIGxpbnV4dGhyZWFkcyBvcgoJZGVzLWNyeXB0IGFyZSBub3QgYXZhaWxhYmxlIGFuZCAtLWRpc2JhbGUtc2FuaXR5LWNoZWNrIGlzIG5vdAoJZ2l2ZW4gYWJvcnQgd2l0aCBhIG1lc3NhZ2UuCgpUaHUgRGVjICA1IDE5OjE5OjUzIDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogcG9zaXgvZ2xvYi5jOiBUZXN0cyBhZ2FpbnN0IFNURENfSEVBREVSUyBzaG91bGQgYWxzbyB0ZXN0CglfX0dOVV9MSUJSQVJZX18uCgpUaHUgRGVjICA1IDE2OjIwOjU1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbWlzYy9lcnIuYyAodndhcm4pOiBTZXQgZXJybm8gYWdhaW4gYmVmb3JlIHVzaW5nICVtIGZvcm1hdC4KClRodSBEZWMgIDUgMTA6MTQ6MDUgMTk5NiAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiBncnAvZ3JwLmg6IEFkZCBkZWNsYXJhdGlvbiBvZiBfX2dldGdyZW50X3IuCgoJKiBpby9mdHMuYyAoZnRzX2J1aWxkKTogUmVtb3ZlICJyZWdpc3RlciIgZnJvbSB2YXJpYWJsZXMgZGlyYnVmCglhbmQgZHAgc2luY2UgdGhlaXIgYWRkcmVzcyBpcyBuZWVkZWQuCgoJKiBzeXNkZXBzL3Bvc2l4L2dldGN3ZC5jIChfX2dldGN3ZCk6IFJlbW92ZSAicmVnaXN0ZXIiIGZyb20KCXZhcmlhYmxlIGQgc2luY2UgZCdzIGFkZHJlc3MgaXMgbmVlZGVkLgoKCSogbWlzYy90c3QtZGlybmFtZS5jIChtYWluKTogUHJvdmlkZSBwcm90b3R5cGUuCgkqIG1pc2MvaW9jdGx0c3QuYyAobWFpbik6IERpdG8uCgoJKiBNYWtlZmlsZTogQWRkIGdudS9saWItbmFtZXMuaCB0byBpbnN0YWxsLW90aGVycyBiZWZvcmUgaW5jbHVkaW5nCglNYWtlcnVsZXMuCgpXZWQgRGVjICA0IDE2OjAwOjA5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3NvY2tldHZhci5oOiBOZXcgZmlsZS4gIFNpbXBseSB1c2UKCTxzeXMvc29ja2V0Lmg+LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9EaXN0OiBBZGQgc3lzL3NvY2tldHZhci5oLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSBbJChzdWJkaXIpPWluZXQpXTogQWRkCglzeXMvc29ja2V0dmFyLmggdG8gc3lzZGVwX2hlYWRlcnMuCgpUdWUgRGVjICAzIDA4OjM4OjE1IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogc3lzZGVwcy91bml4L2FscGhhL3N5c2RlcC5TOiBSZW1vdmUgZGVmaW5pdGlvbiBvZiBfX2Vycm5vX2xvY2F0aW9uLgoJUmVmb3JtYXQgY29weXJpZ2h0LgoKCSogZWxmL3J0bGQuYyAoX2RsX3N0YXJ0KTogRG9uJ3QgZGVyZWZlcmVuY2UgdGhlIHZhbHVlIHJldHVybmVkIGJ5CgllbGZfbWFjaGluZV9nb3QgdG8gZ2V0IF9EWU5BTUlDLCBpbnN0ZWFkIGNhbGwgbmV3IGZ1bmN0aW9uCgllbGZfbWFjaGluZV9keW5hbWljLgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaDogUGVybXV0ZSBlbGZfbWFjaGluZV9nb3QgdG8KCWVsZl9tYWNoaW5lX2R5bmFtaWMuICBSZWZvcm1hdCBjb3B5cmlnaHQuCgkqIHN5c2RlcHMvaTM4Ni9kbC1tYWNoaW5lLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZGwtbWFjaGluZS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9taXBzL2RsLW1hY2hpbmUuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3BhcmMvZGwtbWFjaGluZS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2RsLW1hY2hpbmUuaDogTGlrZXdpc2UuCgpUdWUgT2N0IDE1IDIzOjQ2OjAwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZVRBR1MgKHN5c2RlcF9kaXJzKTogSW5jbHVkZSBhZGQtb24gc3lzZGVwIGRpcmVjdG9yaWVzLgoKVHVlIERlYyAgMyAwMjowNjoxOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIE1ha2VydWxlcyAoJChsaWJkaXIpL2xpYmMuc28pOiBNYWtlIGZpcnN0IGxpbmUgb2YgZ2VuZXJhdGVkCglsaW5rIHNjcmlwdCBjb250YWluIGAvKiBHTlUgbGQgc2NyaXB0Jy4gIFRoaXMgd2lsbCBiZSB1c2VkIGluCglsZGNvbmZpZyB0byBjaGVjayBmb3IgbGlua2VyIHNjcmlwdHMuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2xpYmMtbGRzY3JpcHQ6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9saWJjX3AtbGRzY3JpcHQ6IExpa2V3aXNlLgoKCSogc3RkbGliL2dldHN1Ym9wdC5jOiBVcGRhdGUgY29weXJpZ2h0LiAgQ29ycmVjdCB0eXBvIGluIGNvbW1lbnQuCgpNb24gRGVjICAyIDE1OjMyOjE1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL2RsLWxvb2t1cC5jIChfZGxfbG9va3VwX3N5bWJvbF9za2lwKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoJYGZvdW5kX2VudHJ5Jy4KCgkqIG1pc2MvdHR5c2xvdC5jOiBVc2UgdHR5bmFtZV9yIGluc3RlYWQgb2YgdHR5bmFtZS4KCgkqIGFzc2VydC9hc3NlcnQtcGVyci5jOiBVc2UgX19zdHJlcnJvcl9yIGluc3RlYWQgb2Ygc3RyZXJyb3IuCgkqIGFzc2VydC9hc3NlcnQuYzogRGUtQU5TSWRlY2wtZnkuICBVcGRhdGUgY29weXJpZ2h0LgoJKiBzdHJpbmcvc3RyaW5nLmg6IERlY2xhcmUgX19zdHJlcnJvcl9yLgoJKiBzdHJpbmcvc3RyZXJyb3Jfci5jOiBNYWtlIHN0cmVycm9yX3IgYSB3ZWFrIGFsaWFzIG9mIF9fc3RyZXJyb3Jfci4KCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IFNhdmUgY3VycmVudCBlcnJubyB2YWx1ZSBvbiBlbnRyeSBzbwoJdGhhdCAlbSBmb3JtYXQgZmluZHMgdGhlIGNvcnJlY3QgdmFsdWUuCgkqIGlvL2dldHdkLmM6IFVzZSBfX3N0cmVycm9yX3IgaW5zdGVhZCBvZiBzdHJlcnJvci4KCSogbWlzYy9lcnIuYyAodndhcm4pOiBVc2UgJW0gcHJpbnRmIGZvcm1hdCBpbnN0ZWFkIG9mIGV4cGxpY2l0bHkKCWNhbGxpbmcgc3RyZXJyb3IuCgkqIGluZXQvcmNtZC5jOiBMaWtld2lzZS4KCSogbWlzYy9lcnJvci5jIChlcnJvciwgZXJyb3JfYXRfbGluZSk6IFVzZSBfX3N0cmVycm9yX3IgaW5zdGVhZAoJb2Ygc3RyZXJyb3Igd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGF2YWlsYWJsZS4KCgkqIHN0ZGxpYi9yYW5kLmM6IFVwZGF0ZSBjb3B5cmlnaHQgYW5kIGRlLUFOU0ktZGVjbGZ5LgoJKiBzdGRsaWIvcmFuZG9tX3IuYzogRG9uJ3QgbWFrZSBzcmFuZF9yIHdlYWsgYWxhaXMgb2YgX19zcmFuZG9tX3IuCgkqIHN0ZGxpYi9zdGRsaWIuaDogRGVmaW5lIHByb3RvdHlwZSBmb3IgcmFuZF9yLgoKCSogc3RyaW5nL3N0cmZyeS5jOiBVcGRhdGUgY29weXJpZ2h0LiAgVXNlIHJlZW50cmFudCByYW5kb20gZnVuY3Rpb25zLgoKCSogZGlyZW50L3NjYW5kaXIuYzogVXNlIF9fcmVhZGRpcl9yIGluc3RlYWQgb2YgcmVhZGRpci4KCSogcG9zaXgvZ2xvYi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC90dHluYW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3R0eW5hbWVfci5jOiBMaWtld2lzZS4KCSogaW8vZnR3LmM6IExpa2V3aXNlLgoJKiBpby9mdHMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvZ2V0Y3dkLmM6IExpa2V3aXNlLgoJKiBkaXJlbnQvZGlyZW50Lmg6IEFkZCBwcm90b3R5cGUgZm9yIF9fcmVhZGRpcl9yLgoJKiBzeXNkZXBzL3VuaXgvcmVhZGRpcl9yOiBVcGRhdGUgY29weXJpZ2h0LgoKCSogdGltZS9jdGltZS5jOiBVc2UgX19sb2NhbHRpbWVfciBhbmQgX19hc2N0aW1lX3IgaW5zdGVhZCBvZgoJbm9uIHJlZW50cmFudCB2ZXJzaW9ucy4KCSogdGltZS9jdGltZV9yLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgoJKiBpbnRsL2wxMG5mbGlzdC5jIChfbmxfbWFrZV9sMTBuZmxpc3QpOiBQcmV0dHkgcHJpbnQuCgoJKiBsb2NhbGUvTWFrZWZpbGUgKGxvY2FsZXBhdGgpOiBDb3JyZWN0IHZhbHVlLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1YWFguYzogSW5jbHVkZSA8bmV0ZGIuaD4gdG8gZGVmaW5lCglORVREQl9JTlRFUk5BTC4KCUZpeCB0eXBvIGluIHVzaW5nIEhfRVJSTk9fU0VUIG1hY3JvLgoKRnJpIE5vdiAyOSAyMzoyMjoxNCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VydWxlcyAoZWxmb2JqZGlyKTogRGVmaW5pdGlvbiByZW1vdmVkLgoJKiBNYWtlY29uZmlnIChlbGZvYmpkaXIpOiBEZWZpbmUgaXQgaGVyZSBpbnN0ZWFkLCBzbyB0aGF0CglleHBhbmRpbmcgJChycGF0aC1saW5rKSBnZXRzIHRoZSByaWdodCB2YWx1ZS4KCgkqIGEub3V0Lmg6IFJlbW92ZWQuCgkqIG1pc2MvYS5vdXQuaDogTW92ZWQgdG8uLi4KCSogc3lzZGVwcy9nZW5lcmljL2Eub3V0Lmg6IC4uLmhlcmUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Eub3V0Lmg6IE5ldyBmaWxlLiAgV3JhcHBlciBhcm91bmQKCWtlcm5lbCBoZWFkZXIuCgpNb24gRGVjICAyIDAzOjU5OjM4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZ3JwL2luaXRncm91cHMuYzogVXBkYXRlIGFuZCByZWZvcm1hdCBjb3B5cmlnaHQuCglVc2UgX19nZXRncmVudF9yIGluc3RlYWQgb2YgZ2V0Z3JlbnQuCgoJKiBpbmV0L3JjbWQuYzogVXBkYXRlIGFuZCByZWZvcm1hdCBjb3B5cmlnaHQuCglVc2UgX19nZXRob3N0YnluYW1lX3IgaW5zdGVhZCBvZiBnZXRob3N0YnluYW1lLgoJKiBpbmV0L3JleGVjLmM6IExpa2V3aXNlLgoKCSogaW50bC9maW5kZG9tYWluLmM6IENvcnJlY3QgY29tbWVudCBhYm91dCBDRU4gc3BvbnNvciBhbmQgcmV2aXNpb24uCgkqIGxvY2FsZS9maW5kbG9jYWxlLmM6IExpa2V3aXNlLgoJKiBpbnRsL2wxMG5mbGlzdC5jOiBDb3JyZWN0IGhhbmRsaW5nIG9mIENFTiBzcG9uc29yIGFuZCByZXZpc2lvbi4KCSogbG9jYWxlL01ha2VmaWxlIChDUFBGTEFHUyk6IEFkZCBkZWZpbml0aW9uIG9mIExPQ0FMRURJUi4KCSogbG9jYWxlL3NldGxvY2FsZS5jIChzZXRsb2NhbGUpOiBDb3JyZWN0bHkgc3BsaXQgdmFsdWUgb2YKCUxPQ0FMRV9QQVRILgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmM6IFVzZSBMT0NBTEVESVIgbm90IExPQ0FMRV9QQVRIIHRvCglmaW5kIG91dHB1dCBkaXJlY3RvcnkuCgoJKiBuc3MvZ2V0WFhieVlZLmMgW05FRURfSF9FUlJOT106IEJlZm9yZSBlbmxhcmdpbmcgYnVmZmVyIHRlc3QKCWhfZXJybm9fdG1wIHZhcmlhYmxlLgoJU2F2ZSBlcnJvciB2YWx1ZSBmcm9tIGJlaW5nIGNoYW5nZWQgZHVyaW5nIGBmcmVlJyBjYWxsLgoJKiBuc3MvZ2V0WFhlbnQuYzogTGlrZXdpc2UuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLVhYWC5jOiBTZXQgaF9lcnJubyB2YXJpYWJsZSB0byBORVREQl9JTlRFUk5BTAoJYmVmb3JlIHJldHVybmluZyBFUkFOR0UgZXJyb3IuCgoJKiBwb3NpeC9nbG9iLmM6IFVzZSBnZXRsb2dpbl9yIGFuZCBnZXRwd25hbV9yIGZ1bmN0aW9uIHdoZW4gYXZhaWxhYmxlCglvciBpbiBHTlUgbGliYy4KCgkqIHB3ZC9nZXRwdy5jOiBVc2UgZ2V0cHd1aWRfciBpbnN0ZWFkIG9mIGdldHB3dWlkLgoKCSogc3VucnBjL2NsbnRfZ2VuLmM6IFVzZSBnZXRob3N0YnluYW1lX3IgYW5kIGdldHByb3RvYnluYW1lX3IuCgkqIHN1bnJwYy9jbG50X3NpbXAuYzogTGlrZXdpc2UuCgkqIHN1bnJwYy9nZXRycGNwb3J0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nZXRob3N0aWQuYzogTGlrZXdpc2UuCgoJKiBwb3NpeC9nZXRjb25mLmM6IFRyZWF0IF9TQ19VTklUX01BWCBhbmQgX1NDX1VMT05HX01BWCBzZXBhcmF0ZWx5CglzaW5jZSB0aGUgdmFsdWUgbWlnaHQgYmUgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgdGhlIGBsb25nIGludCcuCglQcmludCBzdHJpbmcgYHVuZGVmaW5lZCcgd2hlbiBhIHZhbHVlIGlzIHVuZGVmaW5lZC4KCgkqIHN0ZGxpYi9sNjRhLmM6IFJldHVybiBjb3JyZWN0IHBvaW50ZXIuCglQYXRjaCBieSBOSUlCRSBZdXRha2EgPGduaWliZUBtcmkuY28uanA+LgoKCSogc3RyaW5nL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBhcmd6LWFkZHNlcC4KCSogc3RyaW5nL2FyZ3otYWRkc2VwLmM6IE5ldyBmaWxlLgoJKiBzdHJpbmcvYXJnei5oOiBBZGQgcHJvdG90eXBlcyBmb3IgYXJnel9hZGRfc2VwLgoKCSogc3RyaW5nL2FyZ3otY3RzZXAuYzogUHJldmVudCBtZW1vcnkgbGVhay4KCgkqIHN0cmluZy9zdHJjb2xsLmM6IENvcnJlY3QgdHlwbyBpbiBjb21tZW50LgoKU2F0IE5vdiAzMCAwMjo1Mzo1OSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zZXJpYWwuaDogUmVtb3ZlZCBhZ2Fpbi4gIFRoZSBmaWxlIGlzCglub3QgZ2VuZXJhbCBlbm91Z2ggdG8gYmUgcGFydCBvZiB0aGUgbGliYy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvRGlzdDogUmVtb3ZlIHN5cy9zZXJpYWwuaC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGU6IERvbid0IGluc3RhbGwgc3lzL3NlcmlhbC5oLgoKVGh1IE5vdiAyOCAyMDowNDo0MSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGxvZ2luL01ha2VmaWxlOiBGaXggdHlwby4KCgkqIG5zcy9NYWtlZmlsZSAoZ2VuZXJhdGVkKTogRmlsdGVyIG91dCBkYi1hbGlhcy5jLgoKVGh1IE5vdiAyOCAxNDo0NDowMSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHRpbWUvTWFrZWZpbGUgKGVjaG8tem9uZW5hbWVzKTogRG9uJ3QgZGVwZW5kIG9uIG5vbi1leGlzdGluZwoJdGFyZ2V0IGB6b25lbmFtZXMnLgoKVGh1IE5vdiAyOCAxMjozNDowNSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGxpbmsuaDogTmV3IGZpbGUuCgkqIG5zcy9uc3N3aXRjaC5jOiBVc2UgaXQuCgoJKiBwcmludGYuaDogRml4IGZpbGUgbmFtZS4KCSogc3RkbGliL3N0cmZtb24uYzogVXNlIGl0LgoKVGh1IE5vdiAyOCAyMzowMzozMiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25ldGluZXQvaW5fc3lzdG0uaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IEFkZCBuZXRpbmV0L2luX3N5c3RtLmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIFskKHN1YmRpcik9aW5ldF0gKHN5c2RlcF9oZWFkZXJzKToKCUFkZCBuZXRpbmV0L2luX3N5c3RtLmguCglSZXBvcnRlZCBieSBOSUlCRSBZdXRha2EgPGduaWliZUBtcmkuY28uanA+LgoKVGh1IE5vdiAyOCAwMzoxMToxMSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxpYmlvL2ZpbGVvcHMuYzogVXBkYXRlIGZyb20gbGF0ZXN0IGxpYmcrKy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2luaXQtZmlyc3QuYzogUmVmb3JtYXQgY29weXJpZ2h0LgoKCSogc3lzZGVwcy9zdHViL2xpYmMtbG9jay5oOiBBZGQgX19saWJjX2xvY2tfaW5pdF9yZWN1cnNpdmUuCgkqIGxpYmlvL2dlbm9wcy5jIChfSU9faW5pdCk6IFVzZSBfX2xpYmNfbG9ja19pbml0X3JlY3Vyc2l2ZQoJaW5zdGVhZCBvZiBfX2xpYmNfbG9ja19pbml0IGZvciBzdHJlYW1zLgoJUmVwb3J0ZWQgYnkgYSBzdW4gPGFzdW5Aem9vbG9neS53YXNoaW5ndG9uLmVkdT4uCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2Jyay5jOiBSZWZvcm1hdCBjb3B5cmlnaHQuCgoJKiBzeXNkZXBzL2dlbmVyaWMvZXJybm8tbG9jLmM6IE5ldyBmaWxlLiAgR2VuZXJpYyBkZWZpbml0aW9uIG9mCglfX2Vycm5vX2xvY2F0aW9uIGZ1bmN0aW9uLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2RlcC5TOiBSZW1vdmUgZGVmaW5pdGlvbiBvZgoJX19lcnJub19sb2NhdGlvbi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIFskKHN1YmRpcik9Y3N1XTogQWRkIGVycm5vLWxvYwoJdG8gc3lzZGVwLXJvdXRpbmVzLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvY29uZmlndXJlOiBBZGQgdGVzdCBmb3IgbGludXh0aHJlYWRzCglhbmQgY3J5cHQgYWRkLW9uIGFuZCB3YXJuIGlmIG5vdCBhdmFpbGFibGUuCgpXZWQgTm92IDI3IDIzOjA5OjM3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcG8va28ucG86IFVwZGF0ZSBmcm9tIEJhbmcgSnVuLVlvdW5nIDxiYW5nanlAbm93bnVyaS5ub3djb20uY28ua3I+LgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdDogUmVtb3ZlIF9sbHNlZWsuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIFskKHN1YmRpcik9bWlzY10gKHJvdXRpbmVzKTogQWRkCglsbHNlZWsuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2xsc2Vlay5jOiBOZXcgZmlsZS4gIFVzZXMgc3lzY2FsbC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNjYWxscy5saXN0OiBBZGQgX19zeXNfbGxzZWVrLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2NhbGxzLmxpc3Q6IEFkZCBfX3N5c19sbHNlZWsuCglSZXBvcnRlZCBieSBISiBMdSA8aGpsQGdudS5haS5taXQuZWR1Pi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzY2FsbHMubGlzdDogQWRkIGxsc2Vlay4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvbGxzZWVrLlM6IFJlbW92ZS4gIEdlbmVyaWMgc3lzY2FsbAoJaXMgZW5vdWdoLgoJUGF0Y2ggYnkgUmljaGFyZCBIZW5kZXJzb24gPHJ0aEB0YW11LmVkdT4uCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zeXMvaW8uaDogQWRkIHByb3RvdHlwZXMgZm9yCglwY2ljb25maWdfcmVhZCBhbmQgcGNpY29uZmlnX3dyaXRlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zeXNjYWxscy5saXN0OiBBZGQgbmV3IHN5c2NhbGxzCglwY2ljb25maWdfcmVhZCBhbmQgcGNpY29uZmlnX3dyaXRlLgoKCSogbG9naW4vZ2V0dXRlbnRfci5jOiBGaXggc2V2ZXJhbCBidWdzIGluIGxhc3QgY2hhbmdlLgoKV2VkIE5vdiAyNyAwNjoxMDoxMCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIE1ha2VmaWxlOiBGaXggdHlwby4KCgkqIGNvbmZpZ3VyZTogUmVxdWlyZSBhdXRvY29uZi0yLjExLgoKCSogZWxmL2RsLWRlcHMuYzogVGVybWluYXRlIGR1cGxpY2F0ZSBsaXN0LgoKCSogbGliaW8vbGliaW8uaDogQWRkIHByb3RvdHlwZXMgZm9yIF9JT19zZWVrb2ZmIGFuZCBfSU9fc2Vla3Bvcy4KCSogbGliaW8vc3RyZmlsZS5oOiBVcGRhdGUgZnJvbSBjdXJyZW50IGxpYmcrKy4KCSogbGliaW8vc3Ryb3BzLmM6IExpa2V3aXNlLgoKCSogbG9naW4vTWFrZWZpbGUgKHJvdXRpbmVzKTogVXBkYXRlIGFmdGVyIGNvcnJlY3Rpb24gb2YgcmVlbnRyYW50CglpbnRlcmZhY2UuCgkqIGxvZ2luL2VuZHV0ZW50LmM6IFJlbW92ZWQuCgkqIGxvZ2luL2VuZHV0ZW50X3IuYzogTGlrZXdpc2UuCgkqIGxvZ2luL3B1dHV0bGluZS5jOiBMaWtld2lzZS4KCSogbG9naW4vcHV0dXRsaW5lX3IuYzogTGlrZXdpc2UuCgkqIGxvZ2luL3NldHV0ZW50LmM6IExpa2V3aXNlLgoJKiBsb2dpbi9zZXR1dGVudF9yLmM6IExpa2V3aXNlLgoJKiBsb2dpbi9nZXR1dGVudC5jOiBVcGRhdGUgZm9yIG5ldyBpbnRlcmZhY2UuCgkqIGxvZ2luL2dldHV0ZW50X3IuYzogTGlrZXdpc2UuCgkqIGxvZ2luL2dldHV0aWQuYzogTGlrZXdpc2UuCgkqIGxvZ2luL2dldHV0aWRfci5jOiBMaWtld2lzZS4KCSogbG9naW4vZ2V0dXRsaW5lLmM6IExpa2V3aXNlLgoJKiBsb2dpbi9nZXR1dGxpbmVfci5jOiBMaWtld2lzZS4KCSogbG9naW4vbG9naW4uYzogTGlrZXdpc2UuCgkqIGxvZ2luL2xvZ291dC5jOiBMaWtld2lzZS4KCSogbG9naW4vbG9nd3RtcC5jOiBMaWtld2lzZS4KCSogbG9naW4vdXRtcC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2dldGxvZ2luLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvZ2V0bG9naW5fci5jOiBMaWtld2lzZS4KCSogbG9naW4vdXRtcC1wcml2YXRlLmg6IE5ldyBwcml2YXRlIGhlYWRlci4KCSogbG9naW4vdXRtcF9kYi5jOiBTdHViIERCIGJhY2tlbmQgZm9yIHV0bXAgaGFuZGxlci4KCSogbG9naW4vdXRtcF9maWxlLmM6IEZpbGUgYmFja2VuZCBmb3IgdXRtcCBoYW5kbGVyLgoJKiBzeXNkZXBzL2dudS91dG1wYml0cy5oIChzdHJ1Y3QgdXRtcCk6IEFkZCBzb21lIG1vcmUgZmllbGRzLgoJKGVudW0gdXRsb2dpbik6IExpc3Qgb2YgcmVjb3JkIHR5cGVzLgoJKHN0cnVjdCBleGl0X3N0YXR1cyk6IFJlY29yZCB0byBhbGlnbiB3aXRoIG90aGVyIGltcGxlbWVudGF0aW9ucy4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9wYXRocy5oOiBBZGQgX1BBVEhfVVRNUF9EQi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvcGF0aHMuaDogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2dlbmVyaWMvcHR5LmM6IFVzZSBnZXRncm5hbV9yIGluc3RlYWQgb2YgZ2V0Z3JuYW0uCgoJKiBzeXNkZXBzL3N0dWIvZ2V0bG9naW4uYzogVXBkYXRlIGNvcHlyaWdodC4KCSogc3lzZGVwcy9zdHViL2dldGxvZ2luX3IuYzogTGlrZXdpc2UuCgoJKiBuc3MvZ2V0WFhieVlZX3IuYzogVXNlIC0xbCBmb3IgZXJyb3ItcG9pbnRlciB2YWx1ZSBpbnN0ZWFkIG9mIC0xLgoJKiBuc3MvZ2V0WFhlbnRfci5jOiBMaWtld2lzZS4KCSogbnNzL25zc3dpdGNoLmM6IExpa2V3aXNlLgoKCSogcG9zaXgvTWFrZWZpbGUgKGhlYWRlcnMpOiBBZGQgd2FpdC5oLgoJKiBwb3NpeC93YWl0Lmg6IE5ldyBmaWxlLgoKCSogcG9zaXgvc3lzL3R5cGVzLmg6IEFsd2F5cyBkZWZpbmUgaW50Tl90IHR5cGVzLgoKCSogc3RkaW8tY29tbW9uL01ha2VmaWxlOiBVcGRhdGUgY29weXJpZ2h0LgoJVXNlIC1Xbm8tZm9ybWF0IGZsYWcgZm9yIHNjYW5mNC5jIGFuZCBzY2FuZjcuYy4KCgkqIHN0ZGxpYi9zdGRsaWIuaDogUmVmb3JtYXQuCgpGcmkgTm92IDIyIDE5OjM0OjEyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9wb3NpeC9nZXRjd2QuYyAoX19nZXRjd2QpOiBBZnRlciByZXNpemluZyB0aGUgYnVmZmVyCgltb3ZlIHRoZSBjdXJyZW50IGNvbnRlbnRzIHRvIHRoZSBlbmQgYW5kIHJlbG9jYXRlIGZpbGUgbmFtZQoJcG9pbnRlciB0byB1cHBlciBoYWxmIG9mIHRoZSBidWZmZXIuCgpTdW4gTm92IDI0IDA0OjU2OjE5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdGltZS9hZnJpY2E6IFVwZGF0ZSBmcm9tIEFETyB0emRhdGExOTk2bS4KCSogdGltZS9hbnRhcmN0aWNhOiBMaWtld2lzZS4KCSogdGltZS9hc2lhOiBMaWtld2lzZS4KCSogdGltZS9hdXN0cmFsaWE6IExpa2V3aXNlLgoJKiB0aW1lL2V0Y2V0ZXJhOiBMaWtld2lzZS4KCSogdGltZS9ldXJvcGU6IExpa2V3aXNlLgoJKiB0aW1lL25vdGhhbWVyaWNhOiBMaWtld2lzZS4KCSogdGltZS9zb3V0aGFtZXJpYTogTGlrZXdpc2UuCgkqIHRpbWUvem9uZS50YWI6IExpa2V3aXNlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3NlcmlhbC5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgWyQoc3ViZGlyKT1taXNjXSAoc3lzZGVwX2hlYWRlcnMpOgoJQWRkIHN5cy9zZXJpYWwuaC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvRGlzdDogQWRkIHN5cy9zZXJpYWwuaC4KCgkqIHBvc2l4L3dhaXQuaDogTmV3IGZpbGUuCgkqIHBvc2l4L01ha2VmaWxlIChoZWFkZXJzKTogQWRkIHdhaXQuaC4KClNhdCBOb3YgMjMgMTc6Mjc6NTIgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZ251LmFpLm1pdC5lZHU+CgoJKiBNYWtlY29uZmlnICgkKGNvbW1vbi1vYmpwZngpc292ZXJzaW9ucy5tayk6IFVzZSByZWd1bGFyCglleHByZXNzaW9uIGluc3RlYWQgb2Ygc2hlbGwgcGF0dGVybiBtYXRjaGluZy4KCSogc2hsaWItdmVyc2lvbnM6IENoYW5nZSB0byByZWd1bGFyIGV4cHJlc3Npb25zLgoKU2F0IE5vdiAyMyAxMzoyNDo1NSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGlvL3N0YXQuYzogQWRkIHNlY3Rpb24gZnJvbSBsaWJnY2MgdG8gY29weXJpZ2h0IGNvbW1lbnQKCXRvIGFsbG93IHRoaXMgZmlsZSB0byBiZSBzdGF0aWNhbGx5IGxpbmtlZCBpbiBhcHBsaWNhdGlvbnMuCgkqIGlvL2ZzdGF0LmM6IExpa2V3aXNlLgoJKiBpby9sc3RhdC5jOiBMaWtld2lzZS4KCSogaW8vbWtub2QuYzogTGlrZXdpc2UuCgpGcmkgTm92IDIyIDE1OjE0OjIzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogY3N1L2luaXRmaW5pLmM6IEFkZCBzZWN0aW9uIGZyb20gbGliZ2NjIHRvIGNvcHlyaWdodCBjb21tZW50Cgl0byBhbGxvdyB0aGlzIGZpbGUgdG8gYmUgc3RhdGljYWxseSBsaW5rZWQgaW4gYXBwbGljYXRpb25zLgoKCSogbWFsbG9jL29ic3RhY2suaCBbIV9MSUJDICYmICFIQVZFX1NUUklOR19IXTogRGVmaW5lIG1lbWNweSBpZgoJbm90IGFscmVhZHkgZGVmaW5lZC4KCShvYnN0YWNrX2dyb3csIG9ic3RhY2tfZ3JvdzApOiBDb3JyZWN0IHBsYWNlbWVudCBvZiBicmFjZXMuCgoJKiBnbnUtdmVyc2lvbnMuaCAoX0dOVV9PQlNUQUNLX0lOVEVSRkFDRV9WRVJTSU9OKTogRGVmaW5lIHRvIDIuCgkqIG1hbGxvYy9vYnN0YWNrLmMgKE9CU1RBQ0tfSU5URVJGQUNFX1ZFUlNJT04pOiBEZWZpbmUgdG8gMi4KClRodSBOb3YgMjEgMTk6NTQ6NTEgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlcnVsZXMgKG1ha2UtbGluayk6IFNpbXBsaWZ5IGJ5IGNoYW5naW5nIGRpcmVjdG9yeSBvbmx5IGlmCglub3QgdXNpbmcgcmVsbG5zLXNoOyBjaGVjayB3aGV0aGVyIHdlIHJlYWxseSBoYXZlIHN5bWJvbGljIGxpbmtzLgoKCSogcmVsbG5zLXNoOiBGaXggdGhlIGNhc2Ugb2YgJChkaXJuYW1lICQyKSBiZWluZyBhIHByZWZpeCBvZgoJJChkaXJuYW1lICQxKTsgdXNlIHN0YXR1cyBvZiBsbiBmb3IgZXhpdCBjb2RlOyBtYWtlIG1vcmUgcm9idXN0CglhZ2FpbnN0IG11bHRpcGxlIHNsYXNoZXMgaW4gYSByb3cuCgpUaHUgTm92IDIxIDEzOjA1OjIxIDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBjb25maWd1cmUuaW4gKGFmdGVyIEFDX0NBTk9OSUNBTF9IT1NUKTogbXV0YXRlICotKi1nbnUqIG5hbWVzCglpbnRvICotKi1nbnUtZ251Ki4KCSogc2hsaWItdmVyc2lvbnMgKGdudSB2ZXJzaW9ucyk6IFJlY29nbml6ZSAqLSotZ251LWdudSogaW5zdGVhZCBvZgoJdGhlIHRocmVlLXBhcnQgbmFtZSwgdG8gZGlzdGluZ3Vpc2ggY29ycmVjdGx5IGZyb20gKi0qLWxpbnV4LWdudSouCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9NYWtlZmlsZSAoJChsaWJkaXIpL2xpYmMuc28pOiBEZXBlbmQgb24KCSQocnBjdXNlcmxpYnMpLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvTWFrZWZpbGUgKGluc3RhbGwtb3RoZXJzKTogQWRkCgkkKGxpYmRpcikvbGliY19wLmEuCgkoJChsaWJkaXIpL2xpYmNfcC5hKTogTmV3IHJ1bGUuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2xpYmNfcC1sZHNjcmlwdDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvbWFjaC9odXJkL0Rpc3Q6IEFkZCBsaWJjX3AtbGRzY3JpcHQuCgpXZWQgTm92IDIwIDIwOjI4OjIxIDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogTWFrZXJ1bGVzIChtYWtlLWxpbmspOiBVc2UgJChzaGVsbCkgdG8gZmluZCByZWxsbnMtc2ggYmVmb3JlIHdlIGNkLgoJKiB0aW1lL01ha2VmaWxlOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvYWxwaGEvZWxmL01ha2VmaWxlOiBOZXcgZmlsZS4gIEJ1aWxkIGNydGJlZ2luLm8gJiBjcnRlbmQuby4KCSogc3lzZGVwcy9hbHBoYS9lbGYvRGlzdDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvZWxmL2NydGJlZ2luLlMsIHN5c2RlcHMvYWxwaGEvZWxmL2NydGVuZC5TOiBOZXcgZmlsZXMuCglUaGUgYml0cyBjdXJyZW50bHkgZGlzdHJpYnV0ZWQgd2l0aCBHQ0MgZmFpbCBpbiB0d28gd2F5cyAtLSB0aGV5IGRvbid0Cgl1bmRlcnN0YW5kIG11bHRpcGxlIC5nb3Qgc3Vic2VjdGlvbnMgYW5kIHRoZSBleHRlbnRzIG9mIHRoZSBsaXN0cyBhcmUKCWR5bmFtaWNseSBib3VuZCBtZWFuaW5nIHRoYXQgdGhlIGFwcGxpY2F0aW9uJ3MgbGlzdHMgZ2V0IGV4ZWN1dGVkCgltdWx0aXBsZSB0aW1lcyBhbmQgdGhlIGxpYnJhcnkncyBsaXN0cyBuZXZlciBnZXQgZXhlY3V0ZWQuCgpXZWQgTm92IDIwIDAwOjQyOjQ1IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3RkbGliL3N0cnRvZC5jOiBGaXggcHJldmlvdXMgY2hhbmdlLgoKV2VkIE5vdiAyMCAyMjowNzo1OCAxOTk2ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIHRpbWUvTWFrZWZpbGUgKCQoaW5zdGFsbGVkLWxvY2FsdGltZS1maWxlKSk6IFVzZSAkKC4uKSB0byBmaW5kCglyZWxsbnMtc2ggc2NyaXB0LgoKV2VkIE5vdiAyMCAxMjo1MDo1NCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGlvLWNvbW1vbi9NYWtlZmlsZTogQWRkIENGTEFHUy1zY2FuZjcuYyB0byBwcmV2ZW50IHdhcm5pbmcuCglMaWtld2lzZSBmb3Igc2NhbmY0LmMKCldlZCBOb3YgMjAgMDI6MDQ6MTEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaWdzdXNwZW5kLmM6IE1ha2Ugc2lnc3VzcGVuZCBhIHdlYWsKCWFsaWFzIG9mIF9fc2lnc3VzcGVuZC4KCgkqIGdycC9ncnAuaDogQ29ycmVjdCBjb21tZW50IGFib3V0IFBPU0lYIGNvbXBsaWFuY2UuCgkqIHB3ZC9wd2QuaDogTGlrZXdpc2UuCgoJKiBsb2dpbi91dG1wLmg6IFVwZGF0ZSBjb3B5cmlnaHQgYW5kIHByZXR0eS1wcmludCBwcm90b3R5cGVzLgoJKiBzeXNkZXBzL2dlbmVyaWMvcGF0aHMuaDogQWRkIF9QQVRIX0xBU1RMT0csIF9QQVRIX1VUTVAgYW5kCglfUEFUSF9XVE1QIGZyb20gdXRtcGJpdHMuaC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvcGF0aHMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy91dG1wYml0cy5oOiBSZW1vdmUgaGVyZS4KCSogc3lzZGVwcy9nbnUvdXRtcGJpdHMuaDogTGlrZXdpc2UuCgoJKiBtaXNjL3N5cy91aW8uaDogUGxhY2UgX19CRUdJTl9ERUNMUyBjb3JyZWN0bHkuCglQcmV0dHktcHJpbnQgcHJvdG90eXBlcy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL2Nsb25lLlM6IE5ldyBmaWxlLiAgVGFrZW4gZnJvbQoJTGludXhUaHJlYWRzLTAuNS4KClR1ZSBOb3YgMTkgMTM6NDM6MDcgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBpbmV0L2V0aGVyX2h0b24uYzogSW5jbHVkZSA8c3RyaW5nLmg+LgoJKiBpbmV0L2V0aGVyX250b2guYzogTGlrZXdpc2UuCgkqIGluZXQvcmV4ZWMuYzogR2V0IGVycm5vLCBpbmRleCwgZ2V0cGFzcywgZ2V0bG9naW4gZnJvbSBoZWFkZXJzLgoJKiBtaXNjL3NlYXJjaC5oOiBGaXggaGNyZWF0ZV9yIGFyZ3VtZW50IHR5cGUgKHVuc2lnbmVkIC0+IHNpemVfdCkuCgoJKiBtaXNjL3N5cy9jZGVmcy5oOiBDaGFuZ2UgX19sb25nX2RvdWJsZV90IGRlZmluaXRpb24gZnJvbSB0eXBlZGVmCgl0byBkZWZpbmUuICBKaW0gTmFuY2UgcmVwb3J0cyBwcm9ibGVtcyBidWlsZGluZyBYRW1hY3Mgb3RoZXJ3aXNlLgoKCSogcmVzb2x2L2dldGhuYW1hZGRyLmM6IFByb3RlY3QgaF9lcnJubyByZWRlZmluaXRpb24uCgkqIHJlc29sdi9nZXRuZXRuYW1hZHIuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9oZXJyb3IuYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2dlbmVyaWMvc2lnc2V0LmggKF9fU0lHU0VURk4pOiBPcGVyYXRvciAjIyBkb2Vzbid0IHdvcmsKCXdpdGggLXRyYWRpdGlvbmFsLiAgUmVwb3J0ZWQgYnkgRXJpYyBZb3VuZ2RhbGUuICBXaGlsZSB3ZSdyZSBhdCB0aGlzLAoJZG9uJ3QgZG8gZXJyb3IgY2hlY2tpbmcgaW4gdGhlIF9fIGZ1bmN0aW9ucy4gIFRoaXMgaXMgY29uc2lzdGVudAoJd2l0aCB0aGUgc3lzdjQgZGVmaW5pdGlvbnMgYW5kIHNlZW1zIFJpZ2h0LgoJKiBzaWduYWwvc2lnbmFsLmg6IERvbid0IF9fT1BUSU1JWkVfXyBzaWdvcHMgdG8gX18gdmVyc2lvbnMuICBBZGQKCXByb3RvdHlwZSBmb3IgX19zaWdzdXNwZW5kLgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ2Jsb2NrLmM6IE9wdGltaXplIHNpZ21hc2sgPC0+IHNpZ3NldF90IGNvbnZlcnNpb25zCglmb3Igc2lnc2V0X3QgPT0gdW5zaWduZWQgbG9uZy4gIERlLWFuc2lkZWNsLWlmeS4gIFJlZm9ybWF0IGNvcHlyaWdodC4KCSogc3lzZGVwcy9wb3NpeC9zaWdwYXVzZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9zaWdzZXRtYXNrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ3ZlYy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9zaWdpbnRyLmM6IFJlZm9ybWF0IGNvcHlyaWdodC4KCSogc3lzZGVwcy9wb3NpeC9zaWduYWwuYzogQ2hlY2sgc2lnbmFsIG51bWJlciBvdXQgb2YgcmFuZ2Ugc2luY2UKCV9fc2lnaXNtZW1iZXIgZG9lc24ndCBhbnltb3JlLiAgUmVmb3JtYXQgY29weXJpZ2h0LgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ3dhaXQuYzogVXNlIF9fIHZlcnNpb25zIG9mIHNpZ2ZpbGxzZXQsIHNpZ2lzbWVtYmVyLAoJc2lnZGVsc2V0LCBzaWdhY3Rpb24sIGFuZCBzaWdzdXNwZW5kLgoKCSogc3RkbGliL2RyYW5kNDgtaXRlci5jIChfX2RyYW5kNDhfaXRlcmF0ZSk6IENhc3Qgc3RhdGUgZnJhZ21lbnRzCgl0byB0aGUgd2lkZXIgdHlwZSBiZWZvcmUgc2hpZnRpbmcuCgoJKiBzeXNkZXBzL2FscGhhL2JzZC1fc2V0am1wLlM6IFNpbGVuY2UgYXNzZW1ibGVyIHdhcm5pbmcgIiRhdCB1c2VkCgl3aXRob3V0IC5zZXQgbm9hdCIgaW4gcHJvZmlsaW5nIGhvb2suCgkqIHN5c2RlcHMvYWxwaGEvYnNkLXNldGptcC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9odG9ubC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9odG9ucy5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zX2NvcHlzaWduLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3NldGptcC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zdHBjcHkuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc3RyY2F0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3N0cmNweS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJuY2F0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9icmsuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2Nsb25lLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pZWVlX2dldF9mcF9jb250cm9sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pZWVlX3NldF9mcF9jb250cm9sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9sbHNlZWsuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3NpZ3N1c3BlbmQuUzogTGlrZXdpc2UuICBSZW5hbWUKCWZ1bmN0aW9uIHRvIF9fc2lnc3VzcGVuZCBhbmQgYWRkIHdlYWsgYWxpYXMuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5c2NhbGwuUzogTGlrZXdpc2UuICBBZGQgbWlzc2luZyBFTkQuCgoJKiBzeXNkZXBzL2FscGhhL3dfc3FydC5TOiBEZWZpbmUgX0VSUk5PX0ggc28gPGVycm5vcy5oPiBkZWZpbmVzIEVET00uCgoJKiBzeXNkZXBzL3VuaXgvZXhlY3ZlLlM6IE1hdGNoIFBTRVVET19FTkQgc3ltYm9sIHdpdGggdGhlIHN5bWJvbAoJU1lTQ0FMTF9fIGFjdHVhbGx5IGdlbmVyYXRlZC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Vycm5vcy5oIFtfTElCQ19SRUVOVFJBTlRdOiBSZWZsZXhpdmVseQoJI2RlZmluZSBfX3NldF9lcnJubywgYXMgc2V2ZXJhbCBpbXBvcnRlZCBzdWJzeXN0ZW1zIChlZy4gQklORCkgY2hlY2sKCXRoYXQgdGhlIHN5bWJvbCBpcyBkZWZpbmVkLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ2V0c3lzc3RhdHMuYzogSW5jbHVkZSA8YWxsb2NhLmg+LgoKCSogc3lzZGVwcy9hbHBoYS9tZW1jcHkuUzogVGVtcG9yYXJpbHkgcmVtb3ZlIHVudGlsIEkgY2FuIGZpbmQgYSBidWcKCXRoYXQgbWFuaWZlc3RzIGluIEdDQy4KClR1ZSBOb3YgMTkgMTE6MTA6MDUgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvcG9zaXgvd3JpdGV2LmMgKHdyaXRldik6IENPVU5UIHBhcm0gaXMgbm93IGludC4KCSogc3lzZGVwcy9wb3NpeC9yZWFkdi5jIChyZWFkdik6IExpa2V3aXNlLgoKVHVlIE5vdiAxOSAxNToyODoyOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG5zcy9uc3NfZG5zL2Rucy1uZXR3b3JrLmM6IENoYW5nZSByZXR1cm4gdHlwZSBvZiBhbGwgZnVuY3Rpb25zCgl0byBlbnVtIG5zc19zdGF0dXMuCglSZXBvcnRlZCBieSBOSUlCRSBZdXRha2EuCgkqIG5zcy9uc3NfZG5zL2Rucy1ob3N0LmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgpGcmkgTm92IDE1IDIwOjE2OjM4IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogY29uZmlnLm1ha2UuaW46IFJlbW92ZSBkZWZpbml0aW9uIG9mIHRvcF9hYnNkaXIuCgkqIGNvbmZpZ3VyZS5pbjogTGlrZXdpc2UuIFVzZSAkKC4uKSBpbnN0ZWFkLgoJKiBNYWtlcnVsZXMgKG1ha2UtbGluayk6IFVzZSAkKC4uKSB0byBmaW5kIHJlbGxucy1zaCBzY3JpcHQuCgpTYXQgTm92IDE2IDE1OjUyOjI5IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbWFudWFsL25zcy50ZXhpIChOYW1lIFNlcnZpY2UgU3dpdGNoKTogRml4IHJlZmVyZW5jZSB0bwoJYGZyb2JuaWNhdGUnLgoKRnJpIE5vdiAxNSAyMjowODozMyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIChzeXNkZXBfaGVhZGVycyk6IEFkZAoJc3lzL210aW8uaC4KCk1vbiBOb3YgMTggMDU6NTE6MTMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL2dlbmVyaWMvd2FpdHN0YXR1cy5oIChfX1dJRlNJR05BTEVEKTogUmVuYW1lIGxvY2FsCgl2YXJpYWJsZSBmcm9tIF9fc3RhdCB0byBfX3N0YXR1cyB0byBwcmV2ZW50IHNoYWRvd2luZy4KCSogc3VucnBjL3JwYy9jbG50LmggKGNsbnR1ZHBfY3JlYXRlLCBjbG50dWRwX2J1ZmNyZWF0ZSk6IExpa2V3aXNlCglmb3IgcGFyYW1ldGVyIF9fd2FpdC4KCVJlcG9ydGVkIGJ5IE5JSUJFIFl1dGFrYS4KCk1vbiBOb3YgMTggMDI6MDU6MzggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBtaXNjL3JlZ2V4cC5jOiBOZXcgZmlsZS4gIEltcGxlbWVudGF0aW9uIG9mIG9ic29sZXRlIGludGVyZmFjZQoJdG8gcmVndWxhciBleHByZXNzaW9uIG1hdGNoZXIgKHJlcXVpcmVkIGluIFhQRzQuMikuCgkqIG1pc2MvcmVnZXhwLmg6IE5ldyBmaWxlLiAgSGVhZGVyIGZvciBhYm92ZS4KCSogbWlzYy9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCByZWdleHAuaC4KCShyb3V0aW5lcyk6IEFkZCByZWdleHAuYy4KCVVwZGF0ZSBjb3B5cmlnaHQuCgpTdW4gTm92IDE3IDIxOjUwOjI0IDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogc3RkbGliL3RzdC1zdHJ0b2QuYyAobWFpbik6IEFkZCBhcmd1bWVudHMgZm9yIG1haW4uCgkqIHN0ZGxpYi90c3Qtc3RydG9sLmMgKG1haW4pOiBMaWtld2lzZS4KClN1biBOb3YgMTcgMjE6MTU6MDUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IFN1YnN0aXR1dGUgbGliY19jdl9zbGliZGlyIGFuZCBsaWJjX2N2X3N5c2NvbmZkaXIKCWluIG91dHB1dCBmaWxlcy4KCSogc3lzZGVwZXMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZTogRGVmaW5lIGxpYmNfY3Zfc2xpYmRpciB0byAvbGliCglhbmQgc3lzY29uZmRpciB0byAvZXRjIGlmICRwcmVmaXggaXMgL3Vzci4KCSogY29uZmlnLm1ha2UuaW46IEFkZCBzbGliZGlyLCBzeXNjb25mZGlyIGFuZCBCQVNIIHRvIGJlIHJlcGxhY2VkLgoKCSogZWxmL01ha2VmaWxlICgkKG9ianBmeClsZGQpOiBJbnN0YWxsIGxkZC5iYXNoLmluIGlmCgkkKGhhdmUtYmFzaDIpIGlzIHllcy4KCSogZWxmL2xkZC5iYXNoLmluOiBBZGQgY29weXJpZ2h0IGFuZCB2YXJpb3VzIGNsZWFudXBzLgoJKiBlbGYvbGRkLnNoLmluOiBMaWtld2lzZS4KCglJbXBsZW1lbnQgUlRMRF9ORVhULgoJKiBlbGYvZGxmY24uaDogRGVmaW5lIFJUTERfTkVYVC4KCSogZWxmL2RsLWRlcHMuYzogQnVpbGQgc2Vjb25kIHNlYXJjaGxpc3Qgd2hpY2ggY29udGFpbnMgZHVwbGljYXRlcy4KCSogZWxmL2RsLWxvb2t1cC5jIChfZGxfbG9va3VwX3N5bWJvbF9za2lwKTogTmV3IGZ1bmN0aW9uLiAgVXNlZAoJZm9yIFJUTERfTkVYVCBsb29rdXAuCglSZXdyaXRlIF9kbF9sb29rdXBfc3ltYm9sIHRvIHB1dCBjb21tb24gcGFydHMgZm9yIGJvdGggbG9va3VwCglmdW5jdGlvbnMgaW4gYSBzZXBhcmF0ZSBmdW5jdGlvbi4KCSogZWxmL2Rsc3ltLmM6IEhhbmRsZSBSVExEX05FWFQgYnkgY2FsbGluZyBfZGxfbG9va3VwX3N5bWJvbF9za2lwLgoJKiBlbGYvbGluay5oIChzdHJ1Y3QgbGlua19tYXApOiBBZGQgbF9kdXBzZWFyY2hsaXN0IGFuZAoJbF9uZHVwc2VhcmNobGlzdC4KCUFkZCBwcm90b3R5cGUgZm9yIF9kbF9sb29rdXBfc3ltYm9sX3NraXAuCgoJKiBzdW5ycGMvTWFrZWZpbGUgKHJwY3N2Yyk6IEFkZCBydXNlcnMuCgkqIHN1bnJwYy9ycGNzdmMvcm51c2Vycy54OiBSZW1vdmUuICBPYnNvbHRldGVkIGJ5IHJ1c2Vycy54LgoJKiBzdW5ycGMvcnBjc3ZjL3J1c2Vycy54OiBOZXcgZmlsZS4KClN1biBOb3YgMTcgMDQ6MjQ6MzUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYyBbVVNFX0lOX0xJQklPXSAoYnVmZmVyZWRfdmZwcmludGYpOiBDYWxsCglfX2xpYmNfbG9ja19pbml0IGZvciBsb2NhbCBsb2NrLgoJUmVwb3J0ZWQgYnkgYSBzdW4gPGFzdW5Aem9vbG9neS53YXNoaW5ndG9uLmVkdT4uCglbIVVTRV9JTl9MSUJJT10gKFBBRCk6IE9wdGltaXplIGEgYml0LgoKU3VuIE5vdiAxNyAwMzoxMzo1NyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRiL21ha2VkYi5jOiBVcGRhdGUgYW5kIHJlZm9ybWF0IGNvcHlyaWdodC4KCSogZWxmL01ha2VmaWxlOiBMaWtld2lzZS4KCSogZWxmL2RsLWNsb3NlLmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtZGVidWcuYzogTGlrZXdpc2UuCgkqIGVsZi9kbC1kZXBzLmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtZXJyb3IuYzogTGlrZXdpc2UuCgkqIGVsZi9kbC1maW5pLmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtaW5pdC5jOiBMaWtld2lzZS4KCSogZWxmL2RsLWxvYWQuYzogTGlrZXdpc2UuCgkqIGVsZi9kbC1sb29rdXAuYzogTGlrZXdpc2UuCgkqIGVsZi9kbC1taW5pbWFsLmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtb2JqZWN0LmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtb3Blbi5jOiBMaWtld2lzZS4KCSogZWxmL2RsLXJlbG9jLmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtcnVudGltZS5jOiBMaWtld2lzZS4KCSogZWxmL2RsLXN1cHBvcnQuYzogTGlrZXdpc2UuCgkqIGVsZi9kbC1zeW1ib2wuYzogTGlrZXdpc2UuCgkqIGVsZi9kbGFkZHIuYzogTGlrZXdpc2UuCgkqIGVsZi9kbGNsb3NlLmM6IExpa2V3aXNlLgoJKiBlbGYvZGxlcnJvci5jOiBMaWtld2lzZS4KCSogZWxmL2Rsb3Blbi5jOiBMaWtld2lzZS4KCSogZWxmL2Rsc3ltLmM6IExpa2V3aXNlLgoJKiBlbGYvZG8tcmVsLmg6IExpa2V3aXNlLgoJKiBlbGYvZHluYW1pYy1saW5rLmg6IExpa2V3aXNlLgoJKiBlbGYvZXZhbC5jOiBMaWtld2lzZS4KCSogZWxmL3J0bGQuYzogTGlrZXdpc2UuCgkqIGluZXQvZXRoZXJfaHRvbi5jOiBMaWtld2lzZS4KCSogaW5ldC9ldGhlcl9udG9oLmM6IExpa2V3aXNlLgoJKiBpbmV0L2V0aGVyX2xpbmUuYzogTGlrZXdpc2UuCgkqIGluZXQvZ2V0bmV0Z3JlbnRfci5jOiBMaWtld2lzZS4KCgkqIGluZXQvTWFrZWZpbGUgKCtnY2N3YXJuKTogUmVtb3ZlIGRlZmluaXRpb24uCglJbnN0ZWFkIHNldCBDRkxBR1MtcmNtZC5jLCBDRkxBR1MtcmV4ZWMuYywgYW5kIENGTEFHUy1ydXNlcnBhc3MuYwoJdG8gYC13Jy4KCSogaW5ldC9hbGlhc2VzLmg6IEFkZCBDKysgcHJvdGVjdGlvbi4KCSogaW5ldC9ldGhlcl9odG9uLmM6IEFkZCBwcm90b3R5cGUgZm9yIF9fbnNzX2V0aGVyc19sb29rdXAuCgkoZXRoZXJfaG9zdHRvbik6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgcmVzdWx0LgoJKiBpbmV0L2V0aGVyX250b2guYzogTGlrZXdpc2UuCgkqIGluZXQvZXRoZXJfbGluZS5jOiBJbmNsdWRlIDxjdHlwZS5oPiBhbmQgPHN0cmluZy5oPi4KCSogaW5ldC9nZXRuZXRncmVudF9yLmM6IEluY2x1ZGUgPHN0ZGxpYi5oPi4KCVVzZSBjYXN0cyB0byBwcmV2ZW50IHdhcm5pbmdzLgoJKGlubmV0Z3IpOiBJbml0aWFsaXplIGBrbm93bicgYW5kIGBuZWVkZWQnLgoJKiBpbmV0L2luZXRfbmV0LmM6IE1ha2UgbG9jYWwgdmFyaWFibGUgYGknIG9mIHR5cGUgdV9pbnQzMl90LgoJKiBuc3MvZ2V0WFhieVlZX3IuYyAoSU5URVJOQUwgKFJFRU5UUkFOVF9OQU1FKSkgW05FRURfX1JFU106IERvbid0CglyZXR1cm4gTlVMTC4gIEluc3RlYWQgc2V0ICpSRVNVTFQgdG8gTlVMTCBhbmQgcmV0dXJuIC0xLgoJKiBuc3MvZ2V0WFhlbnRfci5jIChJTlRFUk5BTCAoUkVFTlRSQU5UX0dFVE5BTUUpKTogTGlrZXdpc2UuCgkoU0VURlVOQ19OQU1FLCBFTkRGVU5DX05BTUUpIFtORUVEX19SRVNdOiBEb24ndCByZXR1cm4gYW55dGhpbmcuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLWFsaWFzLmM6IERlYnVnIGZ1bmN0aW9uLiAgSSBkaWRuJ3Qgd29ya2VkIGF0CglhbGwgYmVmb3JlLgoKU2F0IE5vdiAxNiAxNToyNTozNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvcG9zaXgvcmVhZHYuYzogRG9uJ3QgdXNlIFBUUiBhbnltb3JlLgoJKiBzeXNkZXBzL3Bvc2l4L3dyaXRldi5jOiBMaWtld2lzZS4KCgkqIHZlcnNpb24uaCAoVkVSU0lPTik6IEJ1bXAgdG8gMS45OC4KCgkqIG5zcy9kYi1NYWtlZmlsZTogR2VuZXJhdGUgbGluZXMgZm9yIGdldFhYWGVudCBpdGVyYXRpb24uCgoJKiBzeXNkZXBzL2FscGhhL0Rpc3Q6IERvbid0IGRpc3RyaWJ1dGUgcmVtb3ZlZCBmaWxlcyBkaXZsdS5TLAoJZGl2cXUuUywgcmVtbHUuUywgYW5kIHJlbXF1LlMuCgpGcmkgTm92IDE1IDA4OjU1OjU0IDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogcG9zaXgvdW5pc3RkLmg6IENvcnJlY3QgdHlwbyBpbiBkb2N1bWVudGF0aW9uLgoKVGh1IE5vdiAxNCAxODowODoxNCAxOTk2ICBhIHN1biAgPGFzdW5Aem9vbG9neS53YXNoaW5ndG9uLmVkdT4KCgkqIGluZXQvbmV0aW5ldC90Y3AuaDogVXNlIF9fIHByb3RlY3RlZCB2ZXJzaW9ucyBpbnN0ZWFkIG9mCglCWVRFX09SREVSLCBMSVRUTEVfRU5ESUFOLCBhbmQgQklHX0VORElBTiBkaXJlY3RseS4KClNhdCBOb3YgMTYgMTM6NDQ6NTUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpbnRsL2xvYWRtc2djYXQuYyAoX25sX21zZ19jYXRfY250cik6IEluaXRpYWxpemUgc28gdGhhdAoJcmVmZXJlbmNlcyBpbiBsaWJjLnNvIGFyZSBub3QgYW55bW9yZSB1bmRlZmluZWQuCgpTYXQgTm92IDE2IDE4OjE3OjM2IDE5OTYgIE5JSUJFIFl1dGFrYSAgPGduaWliZUBtcmkuY28uanA+CgoJKiBpby91dGltZS5oOiBSZW5hbWUgc2Vjb25kIHBhcmFtZXRlciBmb3IgdXRpbWUgdG8gcHJldmVudCB3YXJuaW5nCglmb3IgLVdzaGFkb3cuCgkqIGRpcmVudC9kaXJlbnQuaDogU2FtZSBoZXJlIGZvciBzY2FuZGlyIHByb3RvdHlwZS4KCSogbWF0aC9tYXRoY2FsbHMuaDogTGlrZXdpc2UgZm9yIGZyZXhwIGFuZCBsZGV4cC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0aW5ldC9pbi5oOiBMaWtld2lzZSBmb3IgYmluZHJlc3Zwb3J0LgoKU2F0IE5vdiAxNiAwMzo0OToyNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGxpYi90c3Qtc3RydG9kLmM6IEFkZCB0ZXN0IGZvciBlcnJvciBjYXNlIGJlbG93LgoKU2F0IE5vdiAxNiAwMzo0ODozOSAxOTk2ICBXb2xmcmFtIEdsb2dlciAgPFdvbGZyYW0uR2xvZ2VyQGRlbnQubWVkLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHN0ZGxpYi9zdHJ0b2QuYzogUmVjb2duaXplIG51bWJlcnMgbGlrZSAwZS0xOS4KCkZyaSBOb3YgMTUgMDg6Mzg6NDMgMTk5NiAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiB0aW1lL01ha2VmaWxlICgkKGluc3RhbGxlZC1sb2NhbHRpbWUtZmlsZSkpOiBGaXggcGF0aCB0bwoJcmVsbG5zLXNoLgoKCSogTWFrZWZpbGU6IERvbid0IGdlbmVyYXRlIGFuZCBpbnN0YWxsIGdudS9saWItbmFtZXMuaCBpZgoJJChidWlsZC1zaGFyZWQpIGlzIG5vdCBgeWVzJy4KClRodSBOb3YgMTQgMDk6MjM6NTggMTk5NiAgSC5KLiBMdSAoaGpsQGdudS5haS5taXQuZWR1KQoKCSogc3lzZGVwcy9wb3NpeC9NYWtlZmlsZSAoJChjb21tb24tb2JqcGZ4KW1rLXN0ZGlvbGltKTogRGVwZW5kCglvbiAkKC4uKXBvc2l4L3Bvc2l4MV9saW0uaCwgbm90IC4uL3Bvc2l4L3Bvc2l4MV9saW0uaC4KCgkqIE1ha2VydWxlcyAoUkVBTF9NQUtFX1ZFUlNJT04pOiBOZXcsIHVzZSBpdCBpbnN0ZWFkIG9mCglNQUtFX1ZFUlNJT04uCgpUaHUgTm92IDE0IDIyOjEwOjQzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbnNzL25zc19maWxlcy9maWxlcy1YWFgueCAoX25zc19maWxlc19nZXQsRU5UTkFNRV9yKTogRml4IHR5cG8uCgkqIG5zcy9nZXRYWGVudF9yLmM6IEZpeCB0eXBvLiAgU2V0IGNvcnJlY3QgcmV0dXJuIHZhbHVlIHdoZW4KCW5vIGZ1cnRoZXIgc2VydmljZSBpcyBhdmFpbGFibGUuCgpUaHUgTm92IDE0IDE3OjQ4OjEzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZGIvcmVjbm8vcmVjX3B1dC5jOiBBZGQgY2FzdCB0byBhdm9pZCB3YXJuaW5nLgoJKiBkYi9yZWNuby9yZWNfY2xvc2UuYzogTGlrZXdpc2UuCgkqIGRiL21wb29sL21wb29sLmM6IExpa2V3aXNlLgoJKiBkYi9oYXNoL2hhc2hfYmlna2V5Lmg6IExpa2V3aXNlLgoJKiBkYi9oYXNoL2hhc2guYzogTGlrZXdpc2UuCgkqIGRiL2J0cmVlL2J0X3NwbGl0LmM6IExpa2V3aXNlLgoJKiBkYi9idHJlZS9idF9wdXQuYzogTGlrZXdpc2UuCgpUaHUgTm92IDE0IDE0OjExOjQ0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZGlyZW50L2RpcmVudC5oOiBVcGRhdGUgY29weXJpZ2h0LgoJKiBlbGYvZWxmLmg6IExpa2V3aXNlLgoJKiBlbGYvbGluay5oOiBMaWtld2lzZS4KCSogZ21vbi9zeXMvZ21vbl9vdXQuaDogTGlrZXdpc2UuCgkqIGdudS12ZXJzaW9ucy5oOiBMaWtld2lzZS4KCSogaW50bC9saWJpbnRsLmg6IExpa2V3aXNlLgoJKiBpby9mY250bC5oOiBMaWtld2lzZS4KCSogaW8vZnR3Lmg6IExpa2V3aXNlLgoJKiBpby9zeXMvc3RhdGZzLmg6IExpa2V3aXNlLgoJKiBpby91dGltZS5oOiBMaWtld2lzZS4KCSogbG9jYWxlL2xhbmdpbmZvLmg6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jLmg6IExpa2V3aXNlLgoJKiBtYWxsb2Mvb2JzdGFjay5oOiBMaWtld2lzZS4KCSogbWlzYy9hci5oOiBMaWtld2lzZS4KCSogbWlzYy9lcnJvci5oOiBMaWtld2lzZS4KCSogbWlzYy9tbnRlbnQuaDogTGlrZXdpc2UuCgkqIG1pc2Mvc2d0dHkuaDogTGlrZXdpc2UuCgkqIG1pc2Mvc3lzL2NkZWZzLmg6IExpa2V3aXNlLgoJKiBtaXNjL3N5cy9kaXIuaDogTGlrZXdpc2UuCgkqIG1pc2Mvc3lzL2ZpbGUuaDogTGlrZXdpc2UuCgkqIG1pc2Mvc3lzL2lvY3RsLmg6IExpa2V3aXNlLgoJKiBtaXNjL3N5cy91c3RhdC5oOiBMaWtld2lzZS4KCSogcG9zaXgvZm5tYXRjaC5oOiBMaWtld2lzZS4KCSogcG9zaXgvZ2V0b3B0Lmg6IExpa2V3aXNlLgoJKiBwb3NpeC9nbG9iLmg6IExpa2V3aXNlLgoJKiBwb3NpeC9wb3NpeDJfbGltLmg6IExpa2V3aXNlLgoJKiBwb3NpeC9yZWdleC5oOiBMaWtld2lzZS4KCSogcG9zaXgvc3lzL3RpbWVzLmg6IExpa2V3aXNlLgoJKiBwb3NpeC9zeXMvdHlwZXMuaDogTGlrZXdpc2UuCgkqIHBvc2l4L3N5cy91dHNuYW1lLmg6IExpa2V3aXNlLgoJKiBwb3NpeC90YXIuaDogTGlrZXdpc2UuCgkqIHBvc2l4L3dvcmRleHAuaDogTGlrZXdpc2UuCgkqIHJlc291cmNlL3N5cy9yZXNvdXJjZS5oOiBMaWtld2lzZS4KCSogcmVzb3VyY2Uvc3lzL3ZsaW1pdC5oOiBMaWtld2lzZS4KCSogcmVzb3VyY2Uvc3lzL3Z0aW1lcy5oOiBMaWtld2lzZS4KCSogc29ja2V0L3N5cy9zb2NrZXQuaDogTGlrZXdpc2UuCgkqIHNvY2tldC9zeXMvdW4uaDogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi9wcmludGYuaDogTGlrZXdpc2UuCgkqIHN0ZGxpYi9hbGxvY2EuaDogTGlrZXdpc2UuCgkqIHN0cmluZy9hcmd6Lmg6IExpa2V3aXNlLgoJKiBzdHJpbmcvZW5kaWFuLmg6IExpa2V3aXNlLgoJKiBzdHJpbmcvZW52ei5oOiBMaWtld2lzZS4KCSogc3RyaW5nL21lbW9yeS5oOiBMaWtld2lzZS4KCSogc3RyaW5nL3N0cmluZ3MuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy9jcnlwdC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL2RpcmVudHJ5Lmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvZ251L3R5cGVzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvaW9jdGwtdHlwZXMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy9uZXRpbmV0L2luLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvcmVzb3VyY2ViaXRzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvc2lnc2V0Lmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvc29ja2FkZHJjb20uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy9zeXMvbW1hbi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL3N5cy9wdHJhY2UuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy90ZXJtYml0cy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL3dhaXRzdGF0dXMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaWVlZTc1NC9odWdlX3ZhbC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pZWVlNzU0L25hbi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvbG9jYWxfbGltLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zdGF0YnVmLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvaHVnZV92YWwuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9saWJjLWxvY2suaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaWdudW0uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zdGF0YnVmLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvd2FpdGZsYWdzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL2JzZDQuNC9zb2NrYWRkcmNvbS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9vc2YvYWxwaGEvc3RhdGJ1Zi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9vc2Yvc3lzL21tYW4uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc2lnbnVtLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3N0YXRidWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc3VuL3NpZ251bS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zdW4vc3Vub3M0L3Jlc291cmNlYml0cy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zdW4vc3Vub3M0L3N5cy9tbWFuLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3N1bi9zdW5vczQvdGVybWJpdHMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdWx0cml4NC9zeXMvbW1hbi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC93YWl0ZmxhZ3MuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2lyaXg0L3NpZ251bS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvaXJpeDQvc3RhdGJ1Zi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvaXJpeDQvc3lzL21tYW4uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N0YXRidWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5cy9pby5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZGlyZW50cnkuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dudS90eXBlcy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaW9jdGwtdHlwZXMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2xvY2FsX2xpbS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0aW5ldC9pbi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmVzb3VyY2ViaXRzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaWdudW0uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N0YXRidWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9pby5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL2tsb2cuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tbWFuLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvcHRyYWNlLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxsLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90ZXJtYml0cy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbG9jYWxfbGltLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zY28zLjIuNC9zeXNjYWxsLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zY28zLjIvbG9jYWxfbGltLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zaWdudW0uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3N5c3Y0L2kzODYvc3RhdGJ1Zi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc3lzdjQvc2lnbnVtLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zeXN2NC9zaWdzZXQuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3N5c3Y0L3NvbGFyaXMyL3NpZ251bS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc3lzdjQvc29sYXJpczIvc3RhdGJ1Zi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc3lzdjQvd2FpdGZsYWdzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3ZheC9odWdlX3ZhbC5oOiBMaWtld2lzZS4KCSogdmFsdWVzLmg6IExpa2V3aXNlLgoKVGh1IE5vdiAxNCAwNDoyMjo0MSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG1hbGxvYy9vYnN0YWNrLmg6IFVzZSBtZW1jcHkgaW5zdGVhZCBvZiBiY29weSBhbmQgZGVmaW5lIGEgbWFjcm8KCWBtZW1jcHknIHVzaW5nIGJjb3B5IGlmIG1lbWNweSBpcyBub3QgYXZhaWxhYmxlLgoKCSogbWFudWFsL3N0ZGlvLnRleGk6IENvcnJlY3QgZGVzY3JpcHRpb24gb2YgcHJpbnRmIGN1c3RvbWl6YXRpb24uCglUaGUgYXJndW1lbnQgaW5mbyBmdW5jdGlvbiBpcyBub3Qgb3B0aW9uYWwgYW55bW9yZSBhbmQgdGhlCglpbnRlcmZhY2UgZm9yIGBwcmludGZfZnVuY3Rpb24nIGFsc28gY2hhbmdlZC4KCSogbWFudWFsL2V4YW1wbGVzL3JwcmludGYuYzogRGVmaW5lIGFuZCB1c2UgYXJndW1lbnQgaW5mbyBmdW5jdGlvbi4KCgkqIHN0ZGlvLWNvbW1vbi9wcmludGYuaCAoc3RydWN0IHByaW50Zl9pbmZvKTogQ2hhbmdlIHR5cGUgZm9yIGZpZWxkCglgcGFkJyB0byB3Y2hhcl90LgoJQ29ycmVjdCBjb21tZW50IGZvciBgcmVnaXN0ZXJfcHJpbnRmX2Z1bmN0aW9uJy4KCgkqIG5zcy9nZXRYWGJ5WVkuYyBbTkVFRF9IX0VSUk5PXTogRG9uJ3QgcGFzcyBwb2ludGVyIHRvIGhfZXJybm8KCXRvIHJlZW50cmFudCBmdW5jdGlvbi4gIEluc3RlYWQgdXNlIHRlbXBvcmFyeSB2YXJpYWJsZSBhbmQgc2V0CgloX2Vycm5vIGlmIGFuIGVycm9yIG9jY3VyZWQuCglSZXBvcnRlZCBieSBOSUlCRSBZdXRha2EuCgpGcmkgTm92IDE1IDEyOjI3OjI1IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zdGF0YnVmLmggKFNfSVBUUkFOUywgU19JQVRSQU5TLCBTX0lST09ULAoJU19JVFJBTlMpOiBOZXcgbWFjcm9zLgoJKFNfSVNQQVJFKTogVXBkYXRlIHRvIGluY2x1ZGUgbmV3IG1hY3JvcyBhbmQgU19JVVNFVU5LLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvc2VsZWN0LmMgKF9fc2VsZWN0KTogQ29uc3RydWN0IGFyZyB0bwoJbWFjaF9tc2dfZGVzdHJveSBtb3JlIG5pY2VseS4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2lvY3RsLmM6IEluY2x1ZGUgPG1hY2gvbWlnLXN1cHBvcnQuaD4uCgoJKiBzdGRpby9mb3Blbi5jIChfX2dldG1vZGUpOiBEZWNsYXJlIHdpdGggcHJvdG90eXBlLgoJKiBzdGRpby9tZW1zdHJlYW0uYyAoZW5sYXJnZV9idWZmZXIsIHNlZWssIGZyZWVfaW5mbyk6IExpa2V3aXNlLgoJKiBzdGRpby9pbnRlcm5hbHMuYyAoX19zdGRpb19jaGVja19mdW5jcywgaW5pdF9zdHJlYW0sCglzZWVrX3RvX3RhcmdldCwgZmx1c2hidWYsIGZpbGxidWYpOiBMaWtld2lzZS4KCgkqIHN0ZGlvLWNvbW1vbi92ZnNjYW5mLmMgKGVuY29kZV9lcnJvcikgWyEgVVNFX0lOX0xJQklPXTogQ2FsbAoJZnVubG9ja2ZpbGUsIG5vdCBfSU9fZnVubG9ja2ZpbGUuCgoJKiBzeXNkZXBzL3Bvc2l4L3JlYWR2LmMgKHJlYWR2KTogQ2hhbmdlIHJldHVybiB0eXBlIHRvIHNzaXplX3QuCglEZWFuc2lkZWNsaXplZC4KCSogc3lzZGVwcy9wb3NpeC93cml0ZXYuYyAod3JpdGV2KTogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9sY2hvd24uYzogSW5jbHVkZSA8ZmNudGwuaD4gYW5kIGZpeCB0eXBvLgoKVGh1IE5vdiAxNCAxMjo1MzoxNiAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9pbml0LWZpcnN0LmMgKF9kbF9zdGFydCk6IE1ha2UgdGhpcyBhCglwcm90b3R5cGVkIGRlZmluaXRpb24uCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zZWxlY3QuYyAoX19zZWxlY3QpOiBEZWFsIHByb3Blcmx5IHdoZW4gdGhlcmUKCWFyZSBubyBiaXRzIHNldCBpbiB0aGUgbWFza3MuICBSZXBvcnRlZCBieSBiYWxkYXp6aUBjc3IudW5pYm8uaXQuCgpUaHUgTm92IDE0IDAyOjAwOjMzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW5ldC9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBhbGlhc2VzLmguCgkocm91dGluZXMpOiBBZGQgZ2V0YWxpYXNlbnRfciwgZ2V0YWxpYXNlbnQsIGdldGFsaWFzbmFtZSwgYW5kCglnZXRhbGlhc25hbWVfci4KCSogYWxpYXNlcy5oOiBOZXcgZmlsZS4KCSogaW5ldC9hbGlhc2VzLmg6IE5ldyBmaWxlLgoJKiBpbmV0L2dldGFsaWFzZW50LmM6IE5ldyBmaWxlLgoJKiBpbmV0L2dldGFsaWFzZW50X3IuYzogTmV3IGZpbGUuCgkqIGluZXQvZ2V0YWxpYXNuYW1lLmM6IE5ldyBmaWxlLgoJKiBpbmV0L2dldGFsaWFzbmFtZV9yLmM6IE5ldyBmaWxlLgoJKiBuc3MvTWFrZWZpbGUgKGRhdGFiYXNlcyk6IEFkZCBhbGlhcy4KCSogbnNzL2FsaWFzLWxvb2t1cC5jOiBOZXcgZmlsZS4KCSogbnNzL2RhdGFiYXNlcy5kZWY6IEFkZCBhbGlhc2VzIGFuZCBwdWJsaWNrZXkuCgkqIG5zcy9uc3NfZGIvZGItYWxpYXMuYzogTmV3IGZpbGUuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtYWxpYXMuYzogTmV3IGZpbGUuCgoJKiBpbmV0L2dldG5ldGdyZW50X3IuYyAoX19pbnRlcm5hbF9nZXRuZXRncmVudCk6IEJ1ZmZlciBsZW5ndGgKCWFyZ3VtZW50IHRvIGxvb2t1cCBmdW5jdGlvbiBpcyBvZiB0eXBlIHNpemVfdC4KCShpbm5ldGdyKTogTGlrZXdpc2UuCgkqIG5zcy9nZXRYWGJ5WVlfci5jOiBMaWtld2lzZS4KCSogbnNzL2dldFhYZW50X3IuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZGIvZGItWFhYLmM6IExpa2V3aXNlLgoKCSogbnNzL2dldFhYYnlZWS5jOiBEb24ndCBwcm92aWRlIHN0YXRpYyBidWZmZXIuICBSZXNpemUgaWYgY2FsbAoJZmFpbGVkIGJlY2F1c2UgYnVmZmVyIHdhcyB0b28gc21hbGwuCgkqIG5zcy9nZXRYWGVudC5jOiBMaWtld2lzZS4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLmM6IENvcnJlY3QgaGFuZGxpbmcgb2Ygc2hhcmVkIGZpbGUuICBUaGUKCWdldFhYZW50X3IgZnVuY3Rpb24gbm93IHVzZXMgZltnc11ldHBvcyB0byBnZXQgdG8gdGhlIGNvcnJlY3QKCXBvc2l0aW9uLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jOiBJbmRlbnQgbGluZXMgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCgkqIG1hbGxvYy9vYnN0YWNrLmM6IEFkZCBuZXcgdmFyaWFibGUgb2JzdGFja19hbGxvY19mYWlsZWRfaGFuZGxlcgoJYW5kIG5ldyBmdW5jdGlvbiBwcmludF9hbmRfYWJvcnQuICBSZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8KCWFsbG9jX2ZhaWxlZCBmaWVsZC4KCUFkZCBuZXcgZnVuY3Rpb24gX29ic3RhY2tfbWVtb3J5X3VzZWQuCgkqIG1hbGxvYy9vYnN0YWNrLmggKHN0cnVjdCBvYnN0YWNrKTogUmVtb3ZlIGZpZWxkIGFsbG9jX2ZpZWxkLgoJUmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIGFsbG9jX2ZhaWxlZCBmaWVsZC4KCUFkZCBwcm90b3R5cGUgZm9yIF9vYnN0YWNrX21lbW9yeV91c2VkLgoKCSogcG9zaXgvdW5pc3RkLmg6IENvcnJlY3QgdHlwby4KCldlZCBOb3YgMTMgMDM6MDk6MTYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IFJlcXVpcmUgYXQgbGVhc3QgYXV0b2NvbmYtMi4xMC4yLgoKVHVlIE5vdiAxMiAxNjo1ODo0MSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogbWFjaC9tYWNoLmggKF9fbWFjaF9tc2dfZGVzdHJveSwgbWFjaF9tc2dfZGVzdHJveSwgX19tYWNoX21zZyk6CglQcm92aWRlIHByb3RvdHlwZXMuCgoJKiBtYWNoL21zZy1kZXN0cm95LmMgKG1hY2hfbXNnX2Rlc3Ryb3lfcG9ydCwKCW1hY2hfbXNnX2Rlc3Ryb3lfbWVtb3J5KTogVXNlIHByb3RvdHlwZQlzeW50YXguCgkqIGh1cmQvaHVyZG1hbGxvYy5jIChtb3JlX21lbW9yeSwgbWFsbG9jX2ZvcmtfcHJlcGFyZSwKCW1hbGxvY19mb3JrX3BhcmVudCwgbWFsbG9jX2ZvcmtfY2hpbGQpOiBMaWtld2lzZS4KCgkqIHN0ZGlvL3N0ZGlvLmg6IFJlcGFpciBicm9rZW4gY3BwIHN5bnRheC4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2xjaG93bi5jOiBOZXcgZmlsZS4gIEd1dHMgZnJvbSBjaG93bi5jLCBleGNlcHQKCXdlIHBhc3MgT19OT0xJTksgb24gdGhlIG9wZW4uCgoJKiBtYW51YWwvZXJybm8udGV4aSAoRUJBRE1TRywgRUlEUk0sIEVNVUxUSUhPUCwgRU5PREFUQSwgRU5PTElOSywKCUVOT01TRywgRU5PU1IsIEVOT1NUUiwgRU9WRVJGTE9XLCBFUFJPVE8sIEVUSU1FKTogUmVkZXNpZ25hdGUgYXMKCWFuIFhPUEVOIGVycm9yIGNvZGUsIG1vdmUgdG8gYmVmb3JlIHRoZSAiTGludXggb25seSIgc2VjdGlvbiwgYW5kCglnaXZlIGl0IGEgbmV3IG51bWJlciBmb3IgdGhlIEh1cmQuCgpUdWUgTm92IDEyIDAzOjM1OjAxIDE5OTYgIENocmlzdGlhbiB2b24gUm9xdWVzICA8cm9xdWVzQHBvbmQuc3ViLm9yZz4KCgkqIG1hbGxvYy9vYnN0YWNrLmg6IEFkZCBuZXcgbWFjcm8gYG9ic3RhY2tfbWFrZV9yb29tJy4KCSogbWFsbG9jL29ic3RhY2suYzogQWRkIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIGZvcgoJYG9ic3RhY2tfbWFrZV9yb29tJy4KCk1vbiBOb3YgMTEgMTM6NTQ6MDQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJVXBkYXRlIHRvIEJJTkQtNC45LjUtUkVMLgoJKiByZXNvbHYvQmFubmVyOiBTZXQgdG8gNC45LjUtUkVMLgoJKiByZXNvbHYvaW5ldF9uZXRfcHRvbi5jOiBXYXMgZG9pbmcgYmFkIHRoaW5ncyB0byBzdWJuZXRzIGFuZCBiJ2Nhc3RzLgoJKiByZXNvbHYvcmVzX2RlYnVnLmMgKF9fZnBfbnF1ZXJ5KTogQ291bGQgcmVhZCBwYXN0IGVuZCBvZiBidWZmZXIuCgkoZml4IGZyb20gQklORCA4LjEpCgoJKiBjb25maWcubWFrZS5pbjogQWRkIGRlZmluaXRpb24gZm9yIHRvcF9hYnNkaXIuCgkqIE1ha2VydWxlcyAobWFrZS1saW5rKTogRml4IHBhdGggdG8gcmVsbG5zLXNoIHNjcmlwdC4KClNhdCBOb3YgIDkgMDI6MTU6MjQgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBwb3NpeC91bmlzdGQuaDogRml4IGNvbW1lbnQuCgoJKiBtYW51YWwvYXJpdGgudGV4aTogRml4IG1pc3NwZWxsaW5ncy4gIFVzZSBgemVybycsIG5vdCBgbnVsbCcsCgl3aGVuIHRhbGtpbmcgYWJvdXQgbnVtYmVycy4KCSogbWFudWFsL3VzZXJzLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvY3JlYXR1cmUudGV4aTogTGlrZXdpc2UuICBVc2UgQGRlZnZhcnggZm9yIGEgc2Vjb25kYXJ5CglkZXNjcmlwdGlvbiBoZWFkZXIuCgpTYXQgTm92ICA5IDE5OjI1OjExIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9wb3NpeC9NYWtlZmlsZSAoJChjb21tb24tb2JqcGZ4KW1rLXN0ZGlvbGltKTogRGVwZW5kIG9uCgl0aGUgcmVhbCBwb3NpeDFfbGltLmggZmlsZSBzbyB0aGF0IGl0IHdvcmtzIGluIGFsbCBzdWJkaXJzLCBub3QKCW9ubHkgaW4gcG9zaXguCgpTYXQgTm92ICA5IDAyOjA4OjM0IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZWZpbGUgKCQoaW5jbHVkZWRpcikvZ251L2xpYi1uYW1lcy5oKTogUXVvdGUgYXJndW1lbnRzIG9mIHRyLgoKU2F0IE5vdiAgOSAwMjowNjoxNyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9NYWtlZmlsZSAoJChjb21tb24tb2JqcGZ4KXMtcHJvdG8uZCk6IERvbid0IGRlcGVuZAoJb24gJChiZWZvcmUtY29tcGlsZSkgd2hpY2ggaGFzbid0IGJlZW4gcHJvcGVybHkgc2V0dXAgeWV0IGF0IHRoaXMKCXBvaW50LgoKU2F0IE5vdiAgOSAwMjowMjo0OCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zaWdzZXQuaDogRG9uJ3QgdXNlIGltcGxpY2l0IGludCB3aGljaCB3aWxsCglwcm9iYWJseSByZXF1aXJlIGEgZGlhZ25vc3RpYyBpbiB0aGUgbmV4dCByZXZpc2lvbiBvZiB0aGUgQwoJc3RhbmRhcmQuCgkqIHN5c2RlcHMvc3R1Yi9sb2NrZmlsZS5jOiBMaWtld2lzZS4KClNhdCBOb3YgIDkgMDE6NTc6MTcgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2NhbGwuUzogQ29ycmVjdCBsYXN0IGNoYW5nZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuaDogTGlrZXdpc2UuCgpNb24gTm92IDExIDAyOjUzOjE0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdGltZS9zdHJmdGltZS5jOiBVcGRhdGUgY29weXJpZ2h0LiAgU21hbGwgY29zbWV0aWMgY2hhbmdlcy4KClN1biBOb3YgMTAgMjM6Mjg6MTYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpbmV0L2dldHBydG5hbWVfci5jOiBSZWZvcm1hdCBjb3B5cmlnaHQuCgoJKiBuc3MvTWFrZWZpbGUgKGRhdGFiYXNlcyk6IEFkZCBrZXkuCgkobGlibnNzX2ZpbGVzLXJvdXRpbmVzKTogRXhjbHVkZSBrZXkgZGF0YWJhc2UuCgkobGlibnNzX2RiLXJvdXRpbmVzKTogTGlrZXdpc2UuCgkqIG5zcy9rZXktbG9va3VwLmM6IE5ldyBmaWxlLgoKCSogbnNzL2dldFhYZW50X3IuYyAobGFzdF9uaXApOiBSZW1lbWJlciBsYXN0IHNlcnZpY2UgdXNlZCBzaW5jZQoJbGFzdCBzZXRYWGVudCBjYWxsLgoJKFNFVEZVTkMpOiBEb24ndCBmb3JjZSB0byB3b3JrIHRocm91Z2ggd2hvbGUgbGlzdCBvZiBzZXJ2aWNlcyBpbgoJY2FsbCB0byBfX25zc19uZXh0LgoJVXBkYXRlIGxhc3RfbmlwIGlmIG5lY2Vzc2FyeS4KCShFTkRGVU5DKTogT25seSBwcm9jZXNzIGVuZFhYZW50IGZ1bmN0aW9uIHVwIHRvIGN1cnJlbnRseSB1c2VkCglsYXN0IHNlcnZpY2UuCgkoR0VURlVOQyk6IFVwZGF0ZSBsYXN0X25pcCBpZiBuZWNlc3NhcnkuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLW5ldGdycC5jIChfbnNzX25ldGdyb3VwX3BhcnNlbGluZSk6IERvbid0CgltYWtlIHN0YXRpYy4KCgkqIHJwYy9hdXRoX2Rlcy5oOiBOZXcgZmlsZS4KCSogc3VucnBjL01ha2VmaWxlIChoZWFkZXJzKTogQWRkIGF1dGhfZGVzLmguCgkocm91dGluZXMpOiBBZGQgcHVibGlja2V5LgoJKiBzdW5ycGMvcHVibGlja2V5LmM6IE5ldyBmaWxlLiAgSW50ZXJmYWNlIHRvIHB1YmxpYyBrZXkgaGFuZGxpbmcuCgkqIHN1bnJwYy9ycGMvYXV0aF9kZXMuaDogTmV3IGZpbGUuCgkqIHN1bnJwYy9ycGMvbmV0ZGIuaDogUmVhbGx5IGluY2x1ZGUgPHJwYy9hdXRoX2Rlcy5oPi4KClN1biBOb3YgMTAgMDI6Mzc6MTUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpbmV0L2dldGhzdGVudF9yLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgkqIG5zcy9nZXRYWGJ5WVlfci5jOiBMaWtld2lzZS4KCSogbnNzL25zc3dpdGNoLmM6IExpa2V3aXNlLgoJKiBuc3MvZ2V0WFhlbnRfci5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1YWFguYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtbmV0Z3JvdXAuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYzogTGlrZXdpc2UuCgoJKiBuc3MvZ2V0WFhlbnRfci5jOiBDaGFuZ2UgaW1wbGVtZW50YXRpb24uICBJdCdzIG5vdCBuZWNlc3NhcnkgdG8KCWNhbGwgYWxsIHNldFhYZW50IGZ1bmN0aW9ucy4gIEp1c3QgZmluZCBmaXJzdCBhdmFpbGFibGUgYW5kCgl3aGVuIG5lY2Vzc2FyeSBsZXQgZ2V0WFhlbnRfciBjYWxsIHRoZSBvdGhlcnMuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLVhYWC5jOiBNYWtlIHJlYWxseSByZWVudHJhbnQuICBOb3cgY2FsbHMKCW9mIGdldFhYZW50IGFuZCBnZXRYWGJ5WVkgY2FuIGJlIG1peGVkLiAgVGhlIGN1cnNvciBmb3IgdHJhdmVyc2luZwoJdGhlIGRhdGFiYXNlIHdpdGggZ2V0WFhlbnQgd2lsbCBiZSByZW1lbWJlcmVkLgoKCSogc3RkbGliL3Rlc3QtY2Fub24uYyAoY3dkKTogQ2hhbmdlIHNpemUgdG8gUEFUSF9NQVguCgpTYXQgTm92ICA5IDE1OjM0OjQ4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvRGlzdDogQWRkIHN5cy9tdGlvLmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tdGlvLmg6IE5ldyBmaWxlLgoKCSogc2lnbmFsL3NpZ25hbC5oIFtfX1VTRV9CU0RdOiBBZGQgcHJvdG90eXBlIGZvciBzaWdnZXRtYXNrLgoKRnJpIE5vdiAgOCAxMzoyOTozMCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGN0eXBlL2N0eXBlLmggKF9faXNhc2NpaSk6IERvbid0IHRlc3QgZm9yIHNldmVudGggYml0IG5vdCB0byBiZQoJc2V0LiAgSW5zdGVhZCBmb3Igbm9uZSBiZXNpZGUgdGhlIGZpcnN0IHNldmVuIGJpdHMgdG8gYmUgc2V0LgoJWC9PcGVuIGFsbG93cyB0aGUgYXJndW1lbnQgdG8gYmUgYW4gYGludCcgdmFsdWUuCglSZXBvcnRlZCBieSBBbGFpbiBXaWxsaWFtcyA8YWRkd0BwaGNvbXAuY28udWs+LgoJKHRvYXNjaWksIGlzYXNjaWkpOiBEZWZpbmUgbWFjcm8gYWxzbyB3aGVuIF9fVVNFX1hPUEVOLgoKCSogc3lzZGVwcy9wb3NpeC9mcGF0aGNvbmYuYzogVXNlIGZzdGF0ZnMgdG8gY29tcHV0ZSBOQU1FX01BWCwgbm90CglQQVRIX01BWC4KClRodSBOb3YgIDcgMDM6MDQ6MjkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBuc3MvZ2V0WFhYZW50X3IuYyAoU0VURlVOQ19OQU1FKTogUmVzZXQgYG5pcCcgYWZ0ZXIgbG9vcCB0bwoJTlVMTCBzbyB0aGF0IEdFVEZVTkMgd2lsbCBzZWUgZmlyc3QgZW50cnkuCgkoRU5ERlVOQ19OQU1FKTogTGlrZXdpc2UuCgoJUmV3cml0ZSBOZXRncm91cHMgaW1wbGVtZW50YXRpb24gdG8gYXZvaWQgZ2xvYmFsIGRhdGEuCgkqIGluZXQvbmV0Z3JvdXAuaDogQWRkIGRlZmluaXRpb24gb2YgbmFtZV9saXN0IGFuZCBzdHJ1Y3QKCV9fbmV0Z3JlbnQuCglBZGQgcHJvdG90eXBlcyBmb3IgaW50ZXJuYWwgbmV0Z3JvdXAgZnVuY3Rpb25zLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLW5ldGdyb3VwLmMgKF9uc3NfZmlsZXNfc2V0bmV0Z3JlbnQpOiBUYWtlCglleHRyYSBhcmd1bWVudCBhbmQgdXNlIHRoZSBpbmNsdWRlZCBkYXRhIGluc3RlYWQgb2YgZ2xvYmFsIHZhcnMuCgkoX25zc19maWxlc19lbmRuZXRncmVudCk6IExpa2V3aXNlLgoJKF9uc3NfbmV0Z3JvdXBfcGFyc2VsaW5lKTogQ2hhbmdlIHRvIGJlIHN0YXRpYyBhbmQgdXNlIGRhdGEKCWluY2x1ZGVkIGluIHRoZSBSRVNVTFQgc3RydWN0dXJlLgoJKiBpbmV0L2dldG5ldGdyZW50X3IuYyAoc3RhcnRwKTogTW92ZSBpbnRvIHNldHVwIGZ1bmN0aW9uLgoJKGtub3duX2dyb3VwcywgbmVlZGVkX2dyb3Vwcyk6IG5ldyBwYXJ0IG9mIHRoZSBfX25ldGdyZW50IHNydWN0LgoJKGZyZWVtZW1vcnkpOiBUYWtlIGV4dHJhIGFyZ3VtZW50IGFuZCB1c2UgaW5jbHVkZWQgZGF0YS4KCShfX2ludGVybmFsX2VuZG5ldGdyZW50KTogTGlrZXdpc2UuCgkoaW50ZXJuYWxfc2V0bmV0Z3JlbnQpOiBSZW5hbWVkIHRvIF9faW50ZXJuYWxfc2V0bmV0Z3JlbnRfcmV1c2UKCWFuZCB0YWtlIGV4dHJhIGFyZ3VtZW50LgoJKF9faW50ZXJuYWxfc2V0bmV0Z3JlbnQpOiBOZXcgZnVuY3Rpb24uICBDYWxsCglfX2ludGVybmFsX3NldG5ldGdyZW50X3JldXNlIGFmdGVyIGNhbGxpbmcgZnJlZV9tZW1vcnkuCgkoc2V0bmV0Z3JlbnQpOiBPbmx5IGNhbGwgX19pbnRlcm5hbF9zZXRuZXRncmVudC4KCShfX2dldG5ldGdyZW50X3IpOiBTcGxpdCBpbnRvIHR3byBmdW5jdGlvbnMuICBfX2dldG5ldGdyZW50X3IKCWNhbGxzIF9faW50ZXJuYWxfZ2V0bmV0Z3JlbnQgYWZ0ZXIgbG9ja2luZy4KCShpbm5ldGdyKTogVXNlIGR5bmFtaWMgZGF0YSBvbmx5LiAgSS5lLiwgaW5uZXRnciBub3cgaXMgZnVsbHkKCXJlZW50cmFudC4KClRodSBOb3YgIDcgMDA6MTU6MTQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3N0dWIvc2V0ZW52LmM6IENvcnJlY3QgdHlwbzogdW5zZWVudiAtPiB1bnNldGVudi4KCVJlcG9ydGVkIGJ5IEpvc2h1YSBDb3dhbiA8amNvd2FuQGpjb3dhbi5yZXNsaWZlLm9rc3RhdGUuZWR1Pi4KCldlZCBOb3YgIDYgMTM6MTM6MzcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBtYW51YWwvY3JlYXR1cmUudGV4aTogRG9jdW1lbnQgdGhhdCBfR05VX1NPVVJDRSBpcyBubyBsb25nZXIgdGhlCglkZWZhdWx0IHdoZW4gbm8gKl9TT1VSQ0UgbWFjcm8gaXMgZ2l2ZW4uCglSZXBvcnRlZCBieSBLYXJzdGVuIFdlaXNzIDxrYXJzdGVuQGFkZHguYXUucy5zaHV0dGxlLmRlPi4KCSogTk9URVM6IHJlbWFkZSBmcm9tIG1hbnVhbC9jcmVhdHVyZS50ZXhpLgoJKiBtYW51YWwvbGliYy50ZXhpbmZvOiBBZGQgYmFjayBsaW5lIGFib3V0IEdQTCB0cmFuc2xhdGlvbiB3aGljaAoJc29tZWhvdyBnb3QgbG9zdC4KCgkqIE1ha2UtZGlzdCAoZGlzdC50YXIpOiBEZXBlbmQgb24gUkVBRE1FIGJlaW5nIHVwZGF0ZWQuCgoJKiByZWxsbnMtc2g6IENvcnJlY3QgdGhpbmtvIGluIHJlbW92aW5nIGxlYWRpbmcgLy4KCVJlcG9ydGVkIGJ5IEFuZHJlYXMgSmFlZ2VyIDxhakBhcnRodXIucGZhbHouZGU+LgoKCSogcHdkL2ZnZXRwd2VudF9yLmM6IFJlY29nbml6ZSBsaW5lcyBjb250YWluaW5nIG9ubHkgbmFtZXMgc3RhcnRpbmcKCXdpdGggYCsnIG9yIGAtJyBpbiBwYXJzZXIuCgkqIGdycC9mZ2V0Z3JlbnRfci5jOiBMaWtld2lzZS4KCSogc2hhZG93L3NnZXRzcGVudF9yLmM6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXNwd2QuYzogRG9uJ3QgYWNjZXB0IGVudHJpZXMgc3RhcnRpbmcgd2l0aAoJYCsnIG9yIGAtJy4KCldlZCBOb3YgIDYgMDQ6MzA6MjYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0OiBBZGQgd2VhayBhbGlhcyBsbHNlZWsgZm9yCglfbGxzZWVrIHN5c2NhbGwuICBSZXBvcnRlZCBieSBBbmR5IFNld2VsbCA8cHVja0Bwb29raGlsbC5kZW1vbi5jby51az4uCgoJKiBzdHJpbmcvYXJnei5oOiBEb24ndCBwcm90ZWN0IGJ5IF9fVVNFX0dOVS4KClR1ZSBOb3YgIDUgMjM6Mzg6MjggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBMb3RzIG9mIGZpbGVzOiBVcGRhdGUgYW5kIHJlZm9ybWF0IGNvcHlyaWdodC4KCgkqIE1ha2VmaWxlIChoZWFkZXJzKTogQWRkIHhvcGVuX2xpbS5oLgoKCSogY2F0Z2V0cy9ubF90eXBlcy5oOiBNb3ZlIF9fQkVHSU5fREVDTFMgYmVmb3JlIGRlZmluaXRpb24gb2YgbmxfY2F0ZC4KCgkqIGdycC9ncnAuaDogRGVmaW5lIHNldGdyZW50LCBnZXRncmVudCwgZW5kZ3JlbnQsIGFuZCBnZXRncmVudF9yCglpZiBfX1VTRV9YT1BFTl9FWFRFTkRFRCBpcyBkZWZpbmVkLgoJKiBwd2QvcHdkLmg6IERlZmluZSBzZXRwd2VudCwgZ2V0cHdlbnQsIGVuZHB3ZW50LCBhbmQgZ2V0cHdlbnRfcgoJaWYgX19VU0VfWE9QRU5fRVhURU5ERUQgaXMgZGVmaW5lZC4KCgkqIGlvL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBsY2hvd24uCgkqIHN5c2RlcHMvc3R1Yi9sY2hvd24uYzogTmV3IGZpbGUuCgoJKiBpby9zeXMvcG9sbC5oOiBBZGQgZGVmaW5pdGlvbiBvZiBQT0xMV1JOT1JNLgoKCSogaW8vc3lzL3N0YXQuaDogRGVjbGFyZSBsc3RhdCwgZmNobW9kLCBta25vZCB3aGVuCglfX1VTRV9YT1BFTl9FWFRFTkRFRCBpcyBkZWZpbmVkLgoKCSogbGliaW8vTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIG9icHJpbnRmLgoJKiBsaWJpby9vYnByaW50Zi5jOiBOZXcgZmlsZS4KCSogbGliaW8vaW9saWJpby5oOiBBZGQgcHJvdG90eXBlcyBmb3IgX0lPX29ic3RhY2tfdnByaW50ZiBhbmQKCV9JT19vYnN0YWNrX3ByaW50Zi4KCSogbGliaW8vbGliaW8uaDogRml4IHR5cG8uCgkqIGxpYmlvL3N0ZGlvLmg6IERlY2xhcmUgdGVtcG5hbSBpZiBfX1VTRV9YT1BFTl9FWFRFTkRFRCBpcyBkZWZpbmVkLgoJQWRkIHByb3RvdHlwZXMgZm9yIG9ic3RhY2tfdnByaW50ZiBhbmQgb2JzdGFja19wcmludGYuCgoJKiBtYW51YWwvY3JlYXR1cmUudGV4aTogRGVzY3JpYmUgX1hPUEVOX1NPVVJDRSBtYWNyby4KCSogbWFudWFsL2ludHJvLnRleGk6IEFkZCByZWZlcmVuY2UgdG8gTlNTIGNoYXB0ZXIuCgkqIG1hbnVhbC9saWJjLnRleGluZm86IFVwZGF0ZSBVUERBVEVELgoJQ29tbWVudCBvdXQgYEBwcmludGluZGV4IGNwJy4gIEl0IHdvcmtzIGFnYWluLgoJKiBtYW51YWwvbWVtb3J5LnRleGk6IEFkZCBkZXNjcmlwdGlvbiBmb3Igb2JzdGFja19wdHJfZ3JvdywKCW9ic3RhY2tfaW50X2dyb3csIG9ic3RhY2tfcHRyX2dyb3dfZmFzdCwgYW5kIG9ic3RhY2tfaW50X2dyb3dfZmFzdC4KCSogbWFudWFsL25zcy50ZXhpOiBBZGQgYSBmZXcgQGNpbmRleCBlbnRyaWVzIGFuZCBjaGFuZ2UgTlNTX1NUQVRVU18qCglpbmRleCBlbnRyaWVzIHRvIEB2aW5kZXguCgkqIG1hbnVhbC91c2Vycy50ZXhpOiBDb3JyZWN0IEBjaW5kZXggZW50cnkgZm9yIE5ldGdyb3VwLgoKCSogbWF0aC9tYXRoY2FsbHMuaDogVXNlIF9fVVNFX1hPUEVOIGFuZCBfX1VTRV9YT1BFTl9FWFRFTkRFRCB0bwoJbWFrZSBkZWNsYXJhdGlvbnMgdmlzaWJsZSBmb3IgWC9PcGVuIHNvdXJjZXMuCgoJKiBtaXNjL3NlYXJjaC5oOiBEZWNsYXJlIGluc3F1ZS9yZW1xdWUgb25seSBpcyBfX1VTRV9TVklEIG9yCglfX1VTRV9YT1BFTl9FWFRFTkRFRCBpcyBkZWZpbmVkLgoKCSogbWlzYy9zeXMvdWlvLmggKHJlYWR2LCB3cml0ZXYpOiBDaGFuZ2UgcmV0dXJuIHZhbHVlIGZyb20gaW50IHRvCglzc2l6ZV90LgoKCSogcG9zaXgvTWFrZWZpbGUgKGhlYWRlcnMpOiBBZGQgcmVfY29tcC5oLgoJKiBwb3NpeC9yZV9jb21wLmg6IE5ldyBmaWxlLiAgWFBHIGludGVyZmFjZSB0byByZWdleCBmdW5jdGlvbnMuCgoJKiBwb3NpeC9nZXRjb25mLmM6IEFkZCBhbGwgbmFtZXMgZnJvbSBYUEc0LjIuCgkqIHBvc2l4L3Bvc2l4MV9saW0uaDogSW5jcmVhc2UgbWluaW11bSB2YWx1ZXMgZm9yIF9QT1NJWF9DSElMRF9NQVgKCWFuZCBfUE9TSVhfT1BFTl9NQVggdG8gbWluaW11bXMgZnJvbSBYUEc0LjIuCgkqIHN5c2RlcHMvZ2VuZXJpYy9jb25mbmFtZS5oOiBBZGQgYWxsIF9TQ18qIG5hbWVzIGZyb20gWFBHNC4yLgoJKiBzeXNkZXBzL3Bvc2l4L3N5c2NvbmYuYzogSGFuZGxlIG5ldyBfU0NfKiB2YWx1ZXMuCgkqIHN5c2RlcHMvc3R1Yi9zeXNjb25mLmM6IExpa2V3aXNlLgoKCSogcG9zaXgvdW5pc3RkLmg6IEFkZCBkZWNsYXJhdGlvbiBvZiB1YWxhcm0gYW5kIGxjaG93bi4gIERlY2xhcmUKCXVzbGVlcCwgZmNob3duLCBmY2hkaXIsIG5pY2UsIGdldHBnaWQsIHNldHNpZCwgZ2V0c2lkLCBzZXRyZXVpZCwKCXNldHJlZ2lkLCB2Zm9yaywgdHR5c2xvdCwgc3ltbGluaywgcmVhZGxpbmssIGdldGhvc3RpZCwgdHJ1bmNhdGUsCglmdHJ1bmNhdGUsIGdldGR0YWJsZXNpemUsIGJyaywgc2JyaywgbG9ja2Ygd2hlbgoJX19VU0VfWE9QRU5fRVhURU5ERUQgaXMgZGVmaW5lZC4KCgkqIHBvc2l4L3N5cy93YWl0Lmg6IERlY2xhcmUgd2FpdDMgaWYgX19VU0VfWE9QRU5fRVhURU5ERUQgaXMgZGVmaW5lZC4KCgkqIHNoYWRvdy9zaGFkb3cuaDogRGVmaW5lIFNIQURPVyB1c2luZyBfUEFUSF9TSEFET1cuCgkqIHN5c2RlcHMvZ2VuZXJpYy9wYXRocy5oOiBEZWZpbmUgX1BBVEhfU0hBRE9XLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wYXRocy5oOiBMaWtld2lzZS4KCgkqIHNpZ25hbC9zaWduYWwuaDogRGVjbGFyZSBraWxscGcsIHNpZ3N0YWNrIGFuZCBzaWdhbHRzdGFjayB3aGVuCglfX1VTRV9YT1BFTl9FWFRFTkRFRCBpcyBkZWZpbmVkLgoKCSogc3RkaW8vc3RkaW8uaDogRGVjbGFyZSB0ZW1wbmFtIHdoZW4gX19VU0VfWE9QRU4gaXMgZGVmaW5lZC4KCgkqIHN0ZGxpYi9zdGRsaWIuaDogTWFrZSByYW5kNDggZnVuY3Rpb25zIGF2YWlsYWJsZSB3aGVuIF9fVVNFX1hPUEVOCglpcyBkZWZpbmVkLgoJTGlrZXdpc2UgZm9yIHZhbGxvYywgcHV0ZW52LCByZWFscGF0aCwgW2VmZ11jdnQqLCBhbmQgZ2V0c3Vib3B0CglmdW5jdGlvbnMuCgoJKiBzdHJpbmcvc3RyaW5nLmg6IE1ha2UgbWVtY2NweSwgc3RyZHVwLCBiY21wLCBiY29weSwgYnplcm8sIGluZGV4LAoJYW5kIHJpbmRleCBhdmFpbGFibGUgd2hlbiBfX1VTRV9YT1BFTl9FWFRFTkRFRCBpcyBkZWZpbmVkLgoKCSogc3lzZGVwcy9tYWNoL2dldHBhZ2VzaXplLmM6IERlLUFOU0ktZnkuICBDaGFuZ2UgcmV0dXJuIHR5cGUgdG8gaW50LgoJKiBzeXNkZXBzL3Bvc2l4L2dldHBhZ2VzaXplLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0cGFnZXNpemUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9nZXRwYWdlc2l6ZS5jOiBMaWtld2lzZS4KCgkqIHRpbWUvYWZyaWNhOiBVcGRhdGUgZnJvbSB0emRhdGExOTk2bC4KCSogdGltZS9hc2lhOiBMaWtld2lzZS4KCSogdGltZS9hdXN0cmFsaWE6IExpa2V3aXNlLgoJKiB0aW1lL2V1cm9wZTogTGlrZXdpc2UuCgkqIHRpbWUvbm9ydGhhbWVyaWNhOiBMaWtld2lzZS4KCSogdGltZS9wYWNpZmljbmV3OiBMaWtld2lzZS4KCSogdGltZS9zb3V0aGFtZXJpY2E6IExpa2V3aXNlLgoJKiB0aW1lL3R6ZmlsZS5oOiBVcGRhdGUgZnJvbSB0emNvZGUxOTk2bS4KCgkqIHRpbWUvdGltZS5oOiBEZWNsYXJlIHN0cnB0aW1lIGlmIF9fVVNFX1hPUEVOLgoJRGVjbGFyZSBkYXlsaWdodCBhbmQgdGltZXpvbmUgYWxzbyBpZiBfX1VTRV9YT1BFTi4KCgkqIHRpbWUvc3lzL3RpbWUuaDogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIHVhbGFybS4KCgkqIHdjdHlwZS93Y3R5cGUuaDogSnVzdCByZWZlcmVuY2UgSVNPIEMgc3RhbmRhcmQuCgpUdWUgTm92ICA1IDAxOjI2OjMyIDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogY3J5cHQvTWFrZWZpbGU6IEFkZCBjcnlwdCByb3V0aW5lcyB0byBsaWJjIGFzIHdlbGwgaWZmCgkkKGNyeXB0LWluLWxpYmMpIGlzIHNldC4gIERvIHRoaXMgZm9yIHRlbXBvcmFyeSBiaW5hcnkgY29tcGF0aWJpbGl0eQoJb24gZXhpc3RpbmcgTGludXgvQWxwaGEgaW5zdGFsbGF0aW9ucy4KCgkqIHN0ZGxpYi9kaXYuYywgc3lzZGVwcy9nZW5lcmljL2Rpdi5jOiBNb3ZlIGZpbGUgdG8gLi4uL2dlbmVyaWMvLgoJKiBzdGRsaWIvbGRpdi5jLCBzeXNkZXBzL2dlbmVyaWMvbGRpdi5jOiBMaWtld2lzZS4KCSogc3RkbGliL2xsZGl2LmMsIHN5c2RlcHMvZ2VuZXJpYy9sbGRpdi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9NYWtlZmlsZSAoZGl2cmVtKTogQWRkIGRpdmx1LCBkdmlxdSwgcmVtbHUsIGFuZAoJcmVtcXUuCgkqIHN5c2RlcHMvYWxwaGEvZGl2LlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL2xkaXYuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvbGxkaXYuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvZGl2cmVtLmg6IE1lcmdlIHNpZ25lZCBhbmQgdW5zaWduZWQgZGl2aXNpb24uCglUYWtlIHBvaW50ZXJzIGZyb20gTGludXMgYW5kIHRpZ2h0ZW4gdGhlIGlubmVyIGxvb3BzIGEgYml0LgoJKiBzeXNkZXBzL2FscGhhL2RpdmwuUzogQ2hhbmdlIGRlZmluZXMgZm9yIG1lcmdlZCByb3V0aW5lcy4KCSogc3lzZGVwcy9hbHBoYS9kaXZxLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3JlbWwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvcmVtcS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9kaXZsdS5TOiBSZW1vdmUgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS9kaXZxdS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9yZW1sdS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9yZW1xdS5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvYWxwaGEvYnNkLV9zZXRqbXAuUzogSWYgUFJPRiwgY2FsbCBfbWNvdW50LgoJKiBzeXNkZXBzL2FscGhhL2JzZC1zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvYnplcm8uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvZmZzLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL2h0b25sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL2h0b25zLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL21lbWNoci5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9tZW1zZXQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc19jb3B5c2lnbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zX2ZhYnMuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc2V0am1wLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3N0cGNweS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zdHBuY3B5LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3N0cmNhdC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJjaHIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc3RyY3B5LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3N0cmxlbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJuY2F0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3N0cm5jcHkuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc3RycmNoci5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS91ZGl2X3Fybm5kLlM6IExpa2V3aXNlLiAgRml4IHByaXZhdGUgbGFiZWxzLgoJQ29udmVydCB0d28gc21hbGwganVtcHMgdG8gdXNlIGNvbmRpdGlvbmFsIG1vdmVzLgoJKiBzeXNkZXBzL3VuaXgvYWxwaGEvc3lzZGVwLmg6IENvbXByZXNzIGFsbCBfX1NURENfXyBuYXN0aW5lc3MuCgkoUFNFVURPKTogSWYgUFJPRiwgY2FsbCBfbWNvdW50LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9icmsuUzogSWYgUFJPRiwgY2FsbCBfbWNvdW50LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9jbG9uZS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaWVlZV9nZXRfZnBfY29udHJvbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaWVlZV9zZXRfZnBfY29udHJvbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvbGxzZWVrLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zaWdzdXNwZW5kLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zeXNjYWxsLlM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9hbHBoYS9tZW1jcHkuUzogTmV3IGZpbGUuICBPZGQgbGF5b3V0IGJlY2F1c2UgaXQgc2hvdWxkCglldmVudHVhbGx5IGNvbnRhaW4gbWVtbW92ZSBhcyB3ZWxsLgoJKiBzeXNkZXBzL2FscGhhL3N0cmNtcC5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJuY21wLlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL3dfc3FydC5TOiBOZXcgZmlsZS4KClR1ZSBOb3YgIDUgMTg6MDY6MDYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC90dHluYW1lX3IuYzogVXNlIGBzaXplX3QnIGZvciBsZW4gdmFyaWFibGUuCgpUdWUgTm92ICA1IDEyOjA5OjI5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9nZW5lcmljL3N5c2RlcC5oOiBEZWZpbmUgRU5EIG9ubHkgaWYgbm90IHlldCBkZWZpbmVkLgoJKiBzeXNkZXBzL3VuaXgvc3lzZGVwLmg6IERlZmluZSBQU0VVRE9fRU5EIG9ubHkgaWYgbm90IHlldCBkZWZpbmVkLgoJUmVwb3J0ZWQgYnkgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRy4KCk1vbiBOb3YgIDQgMjI6NDY6NTMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBtYW51YWwvdXNlcnMudGV4aSAoTmV0Z3JvdXAgRGF0YSk6IFJlbW92ZSB7IH0gYXJvdW5kIEBjaW5kZXguCgpNb24gTm92ICA0IDE5OjA3OjA1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbWFsbG9jL2NhbGxvYy5jOiBDaGVjayBmb3Igb3ZlcmZsb3cgYmVmb3JlIHRyeWluZyB0byBhbGxvY2F0ZQoJbWVtb3J5LiAgUHJvcG9zZWQgYnkgTmVpbCBNYXR0aGV3cyA8bm1AYWR2LnNiYy5zb255LmNvLmpwPi4KCkZyaSBOb3YgIDEgMTg6MTg6MzIgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBtYW51YWwvbGxpby50ZXhpIChPcGVyYXRpbmcgTW9kZXMpOiBBZGQgbWlzc2luZyBhcmd1bWVudHMgdG8KCUBkZWZ0eXBldnIgaW4gT19OT05CTE9DSyBkZXNjcmlwdGlvbi4KCgkqIG1hbnVhbC90aW1lLnRleGkgKFRpbWUgWm9uZSBGdW5jdGlvbnMpOiBFbmNsb3NlIHR5cGUgbmFtZSBpbgoJYnJhY2VzIGluIGRlc2NyaXB0aW9uIG9mIHR6bmFtZS4gIEZJWE1FOiB0aGlzIGRvZXMgbm90IHlldCB3b3JrCgljb3JyZWN0bHkgaW4gaW5mby4KClN1biBOb3YgIDMgMTc6Mjk6MDYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBmZWF0dXJlcy5oOiBBZGQgWC9PcGVuIG1hY3Jvcy4KCSogcG9zaXgvdW5pc3RkLmg6IERlZmluZSBYL09wZW4gbWFjcm9zLgoJKiBzeXNkZXBzL2dlbmVyaWMvY29uZm5hbWUuaDogQWRkIF9TQ19YT1BFTl9YQ1VfVkVSU0lPTiwKCV9TQ19YT1BFTl9VTklYLCBfU0NfWE9QRU5fQ1JZUFQsIF9TQ19YT1BFTl9FTkhfSTE4TiwKCV9TQ19YT1BFTl9TSE0sIF9TQ18yX0NIQVJfVEVSTSwgX1NDXzJfQ19WRVJTSU9OLCBhbmQgX1NDXzJfVVBFLgoJKiBzeXNkZXBzL3Bvc2l4L3N5c2NvbmYuYzogSGFuZGxlIG5ldyBjb25zdGFudHMuCgkqIHN5c2RlcHMvc3R1Yi9zeXNjb25mLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb3NpeF9vcHQuaDogQWRkIGRlZmluaXRpb24gb2YgX1hPUEVOX1NITS4KCgkqIGNhdGdldHMvY2F0Z2V0cy5jIChjYXRvcGVuKTogU2V0IGVycm5vIHRvIEVOT01FTSB3aGVuCgl3ZSBydW4gb3V0IG9mIG1lbW9yeS4KCShjYXRnZXRzKTogU2V0IGVycm5vIHRvIEVCQURGIHdoZW4gY2F0YWxvZyBoYW5kbGUgaXMgaW52YWxpZC4KCVNldCBlcnJubyB0byBFTk9NU0cgd2hlbiB0cmFuc2xhdGlvbiBpcyBub3QgYXZhaWxhYmxlLgoJKGNhdGNsb3NlKTogU2V0IGVycm5vIHRvIEVCQURGIHdoZW4gY2F0YWxvZyBoYW5kbGUgaXMgaW52YWxpZC4KCgkqIGN0eXBlL2N0eXBlLmg6IERlY2xhcmUgaXNhc2NpaSBhbmQgdG9hc2NpaSB3aGVuIF9fVVNFX1hPUEVOLgoJTGlrZXdpc2UgZm9yIF90b3VwcGVyIGFuZCBfdG9sb3dlci4KCgkqIG1hbnVhbC9hcml0aC50ZXhpOiBEb2N1bWVudCBzdHJ0b3EsIHN0cnRvbGwsIHN0cnRvdXEsIHN0cnRvdWxsLAoJc3RydG9mLCBhbmQgc3RydG9sZC4KCSogbWFudWFsL21hdGgudGV4aTogRG9jdW1lbnQgSFVHRV9WQUxmIGFuZCBIVUdFX1ZBTGwuCgkqIG1hbnVhbC9zdGRpby5oOiBEb2N1bWVudCAnIGZsYWcgZm9yIG51bWVyaWMgZm9ybWF0cyBvZiBzY2FuZi4KCSogbWFudWFsL3VzZXJzLnRleGk6IERvY3VtZW50IHRoYXQgY3VzZXJpZCBzaG91bGRuJ3QgYmUgdXNlZC4KCgkqIG1pc2MvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGRpcm5hbWUuCgkoaGVhZGVycyk6IEFkZCBsaWJnZW4uaC4KCSh0ZXN0cyk6IEFkZCB0c3QtZGlybmFtZS4KCSogbWlzYy9kaXJuYW1lLmM6IE5ldyBmaWxlLgoJKiBtaXNjL2xpYmdlbi5oOiBOZXcgZmlsZS4KCSogbWlzYy90c3QtZGlybmFtZS5jOiBOZXcgZmlsZS4KCgkqIG1pc2Mvc2VhcmNoLmg6IFBhcmFtZXRlciBvZiBoY3JlYXRlIG11c3QgYmUgb2YgdHlwZSBzaXplX3QuCgkqIG1pc2MvaHNlYXJjaC5jOiBMaWtld2lzZS4KCSogbWlzYy9oc2VhcmNoX3IuYzogTGlrZXdpc2UgZm9yIGhjcmVhdGVfci4KCSogbWlzYy9zZWFyY2guaDogUGFyYW1ldGVycyBvZiBpbnNxdWUgYW5kIHJlbXF1ZSBtdXN0IGJlIGB2b2lkIConLgoJKiBtaXNjL2luc3JlbXF1ZS5jOiBMaWtld2lzZS4KCgkqIHBvc2l4L3VuaXN0ZC5oOiBNb3ZlIGRlY2xhcmF0aW9ucyBvZiBta3RlbXAgYW5kIG1rc3RlbXAgdG8uLi4KCSogc3RkbGliL3N0ZGxpYi5oOiAuLi5oZXJlLgoJKiBwb3NpeC91bmlzdGQuaCBbX19VU0VfWE9QRU5dOiBBZGQgcHJvdG90eXBlcyBmb3IgY3J5cHQsIHNldGtleSwKCWVuY3J5cHQsIGFuZCBzd2FiLgoKCSogc3RkaW8tY29tbW9uL3ByaW50Zi1wYXJzZS5oIChzdHJ1Y3QgcHJpbnRmX3NwZWMpOiBBZGQgcGFfd2NoYXIKCWFuZCBwYV93c3RyaW5nLgoJKHBhcnNlX29uZV9zcGVjKTogUmVtb3ZlIExpbnV4IGNvbXBhdGliaWxpdHkgY29kZS4KCVJlY29nbml6ZSAlQyBhbmQgJVMgZm9ybWF0cy4KCSogc3RkaW8tY29tbW9uL3ByaW50Zi5oOiBBZGQgUEFfV0NIQVIgYW5kIFBBX1dTVFJJTkcuCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jOiBBZGQgaW1wbGVtZW50YXRpb24gb2YgJUMgYW5kICVTIGZvcm1hdC4KCSogc3RkaW8tY29tbW9uL3Zmc2NhbmYuYzogTGlrZXdpc2UgZm9yIHNjYW5mLgoKCSogc3RkbGliL2w2NGEuYzogUmV0dXJuIHZhbHVlIGZvciAwIG11c3QgYmUgdGhlIGVtcHR5IHN0cmluZy4KCSogc3RkbGliL3N0ZGxpYi5oOiBEZWNsYXJlIHJlZW50cmFudCBmdW5jdGlvbiBmcm9tIHJhbmQ0OCBmYW1pbHkKCW9ubHkgaWYgX19VU0VfUkVFTlRSQU5ULgoJRGVjbGFyZSByYW5kNDggZnVuY3Rpb25zIGFsc28gaWYgX19VU0VfWE9QRU4uCgoJKiBzdGRsaWIvc3RydG9sLmM6IFJldHVybiAwIGFuZCBzZXQgZXJybm8gdG8gRUlOVkFMIHdoZW4gQkFTRSBpcwoJbm90IGEgbGVnYWwgdmFsdWUuCglSZXR1cm4gMCBhbmQgc2V0IGVycm5vIHRvIEVJTlZBTCB3aGVuIHN0cm91KiBzZWVzIG5lZ2F0aXYgbnVtYmVyLgoJKiBzdGRsaWIvdHN0LXN0cnRvbC5jOiBEZS1BTlNJLWZ5LgoJQ2hhbmdlIGV4cGVjdGVkIHJlc3VsdHMgZm9yIHRlc3Qgb2YgdW5zaWduZWQgZnVuY3Rpb24gYW5kIG5lZ2F0aXZlCglpbnB1dC4KCgkqIHN0cmluZy9zdHJhdGNsaWZmLmM6IFByZXZlbnQgd2FybmluZ3MuCgkqIHN0cmluZy5oOiBNb3ZlIGRlY2xhcmF0aW9uIG9mIHN3YWIgdG8gPHVuaXN0ZC5oPi4KCSogc3RyaW5nL3N3YWIuYzogRGUtQU5TSS1meS4KCgkqIHN5c2RlcHMvcG9zaXgvY3VzZXJpZC5jOiBJbXBsZW1lbnQgdXNpbmcgZ2V0cHd1aWRfci4KCSogc3lzZGVwcy9wb3NpeC9ta3N0ZW1wLmM6IEluY2x1ZGUgPHN0ZGxpYi5oPiBmb3IgcHJvdG90eXBlLgoJKiBzeXNkZXBzL3Bvc2l4L21rdGVtcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21rc3RlbXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9ta3RlbXAuYzogTGlrZXdpc2UuCgoJKiBzeXN2aXBjL3N5cy9pcGMuaDogUHJvdG90eXBlcyBvZiBmdG9rIGhhdmUgdG8gYmUgb2YgdHlwZXMgYGNvbnN0CgljaGFyIConIGFuZCBgaW50Jy4KCSogc3lzdmlwYy9mdG9rLmM6IExpa2V3aXNlLiAgTWFrZSBzdXJlIG9ubHkgbG93ZXIgOCBiaXRzIG9mCglQUk9KX0lEIGFyZSB1c2VkLgoKU3VuIE5vdiAgMyAwMzoyMToyOCAxOTk2ICBIZWlrbyBTY2hyb2VkZXIgIDxIZWlrby5TY2hyb2VkZXJAcG9zdC5yd3RoLWFhY2hlbi5kZT4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC1udW1lcmljLmMgKG51bWVyaWNfb3V0cHV0KTogQ29tcHV0ZSBpZHhbMF0KCWNvcnJlY3RseS4KClNhdCBOb3YgIDIgMTc6NDQ6MzIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3Bvc2l4L2N1c2VyaWQuYzogVXNlIHJlZW50cmFudCBmdW5jdGlvbnMuCgkqIG1hbnVhbC91c2Vycy50ZXhpOiBUZWxsIHRoYXQgY3VzZXJpZCBpcyBtYXJrZWQgdG8gYmUgd2l0aGRyYXduIGluCglYUEc0LjIuCgpTYXQgTm92ICAyIDE0OjI2OjM3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCUxpbnVzIHNhaWQgaGUgd2lsbCBtYWtlIHN1cmUgbm8gc3lzdGVtIGNhbGwgd2lsbCByZXR1cm4gYSB2YWx1ZQoJaW4gLTEgLi4uIC00MDk1IGFzIGEgdmFsaWQgcmVzdWx0LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2RlcC5oOiBDb3JyZWN0IHRlc3QgZm9yIGVycm9yLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2NhbGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2NhbGwuUzogTGlrZXdpc2UuCgpTYXQgTm92ICAyIDE2OjU0OjQ5IDE5OTYgIE5JSUJFIFl1dGFrYSAgPGduaWliZUBtcmkuY28uanA+CgoJKiBzeXNkZXBzL3N0dWIvbG9ja2ZpbGUuYyBbIVVTRV9JTl9MSUJJT106IERlZmluZSB3ZWFrIGFsaWFzIGZvcgoJX19mdW5sb2NrZmlsZSwgbm90IGEgY2lyY3VsYXIgYWxpYXMuCglEZWZpbmUgX19JT19mdHJ5bG9ja2ZpbGUgaWYgVVNFX0lOX0xJQklPIGFuZCBfX2Z0cnlsb2NrZmlsZSBpZiBub3QsCglub3QgdmljZSB2ZXJzYS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc3lzZGVwLlMgKF9fZXJybm9fbG9jYXRpb24pOiBNYWtlCglpdCBhIHdlYWsgc3ltYm9sLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2RlcC5TIChfX2Vycm5vX2xvY2F0aW9uKTogTGlrZXdpc2UuCgpUdWUgTm92ICA1IDAwOjA0OjQ4IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogSW5jbHVkZSA8bGliYy1sb2NrLmg+LgoKTW9uIE5vdiAgNCAxNjo1Nzo0MiAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvdHR5bmFtZV9yLmMgKHR0eW5hbWVfcik6IENoYW5nZSBwcm90b3R5cGUgdG8KCW1hdGNoIFBPU0lYLjFjLgoKCSogc3lzZGVwcy9zdHViL2xvY2tmaWxlLmMgWyEgVVNFX0lOX0xJQklPXTogU2Vjb25kIGRlZmluaXRpb24gb2YKCV9faW50ZXJuYWxfZnVubG9ja2ZpbGUgKGluIHRlcm1zIG9mIGl0c2VsZikgc2hvdWxkIGFjdHVhbGx5IGJlIGEKCWRlZmluaXRpb24gb2YgX19mdW5sb2NrZmlsZS4KCgkqIHB3ZC9wd2QuaDogR2V0IGBzaXplX3QnIGZyb20gPHN0ZGRlZi5oPi4KCSogZ3JwL2dycC5oOiBMaWtld2lzZS4KCSogc2hhZG93L3NoYWRvdy5oOiBMaWtld2lzZS4KCgkqIHN0ZGxpYi9hdGV4aXQuYyAoX19uZXdfZXhpdGZuKTogQWRkIG1pc3Npbmcgc2VtaWNvbG9ucyBhZnRlcgoJY2FsbHMgdG8gX19saWJjX2xvY2tfbG9jayBhbmQgX19saWJjX2xvY2tfdW5sb2NrLgoJKiBzdGRsaWIvcmFuZG9tLmMgKF9fc3JhbmRvbSwgX19pbml0c3RhdGUsIF9fc2V0c3RhdGUsIF9fcmFuZG9tKToKCUxpa2V3aXNlLgoKCSogaHVyZC9odXJkc2lnLmMgKHdyaXRlX2NvcmVmaWxlKTogRml4IHR5cG8uCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zaWd3YWl0LmM6IE5ldyBmaWxlLgoKU2F0IE5vdiAgMiAwMTo0ODo0NyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Vycm5vcy5oOiBNb3ZlIGRlY2xhcmF0aW9uIG9mIGVycm5vCglhbmQgX19lcnJub19sb2NhdGlvbiB0byBjb3JyZWN0IHBvc2l0aW9uLgoKVGh1IE9jdCAzMSAyMjo1MToyNSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIE1ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIHJlbGxucy1zaC4KCSogcmVsbG5zLXNoOiBOZXcgZmlsZS4KCSogTWFrZXJ1bGVzIChtYWtlLWxpbmspOiBVc2UgcmVsbG5zLXNoLgoJKiB0aW1lL01ha2VmaWxlICgkKGluc3RhbGxlZC1sb2NhbHRpbWUtZmlsZSkpOiBMaWtld2lzZS4KClRodSBPY3QgMzEgMTE6MzM6MDEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYvTWFrZWZpbGUgKCRvYmpwZngpbGRkKSBTdWJzdGl0dXRlICQodmVyc2lvbikgZm9yIEBWRVJTSU9OQC4KCShkaXN0cmlidXRlKTogQWRkIGxkZC5iYXNoLmluLgoJKiBlbGYvbGRkLnNoLmluOiBQcm9jZXNzIC0taGVscCBhbmQgLS12ZXJzaW9uIHBhcmFtZXRlci4KCUNvcnJlY3QgY29tbWVudHMuCgkqIGVsZi9sZGQuYmFzaC5pbjogTmV3IGZpbGUuCgoJKiBzdGRsaWIvc3RkbGliLmg6IEFkZCBwcm90b3R5cGUgZm9yIGNsZWFyZW52LgoJKiBzeXNkZXBzL2dlbmVyaWMvc2V0ZW52LmM6IEFkZCBpbXBsZW1lbnRhdGlvbiBvZiBjbGVhcmVudi4KCShzZXRlbnYpOiBIYW5kbGUgX19lbnZpcm9uID09IE5VTEwgY29ycmVjdGx5LgoJKiBzeXNkZXBzL3N0dWIvc2V0ZW52LmM6IEFkZCBzdHViIGRlZmluaXRpb24gZm9yIHVuc2V0ZW52IGFuZAoJY2xlYXJlbnYuCgoJKiBzeXNkZXBzL2dlbmVyaWMvcHV0ZW52LmM6IENvcnJlY3QgbGF5b3V0IHRvIGZpdCBpbiBsaWJpdC4KCSogc3lzZGVwcy9nZW5lcmljL3NldGVudi5jOiBMaWtld2lzZS4KCSogc3RkbGliL3N0cnRvbC5oOiBMaWtld2lzZS4KCgkqIHRpbWUvc3lzL3RpbWUuaDogRGVmaW5lIF9fbmVlZF90aW1ldmFsIGFuZCBpbmNsdWRlIDx0aW1lYml0cy5oPi4KCVJlbW92ZSBkZWZpbml0aW9uIG9mIHN0cnVjdCB0aW1ldmFsLgoJKiBzeXNkZXBzL3N0dWIvdGltZWJpdHMuaCBbX19uZWVkX3RpbWV2YWxdOiBEZWZpbmUgc3RydWN0IHRpbWV2YWwKCXVzaW5nIGB0aW1lX3QnIGZvciBtZW1iZXJzLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90aW1lYml0cy5oIFtfX25lZWRfdGltZXZhbF06IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS90aW1lYml0cy5oOiBOZXcgZmlsZS4gIFNhbWUKCWFzIG9sZCBMaW51eCBzcGVjaWZpYyB2ZXJzaW9uLgoKVGh1IE9jdCAzMSAwMDowMTozOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHNpZ25hbC9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgc2lnd2FpdC4KCSogc2lnbmFsL3NpZ25hbC5oOiBBZGQgcHJvdG90eXBlIGZvciBzaWd3YWl0LgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ3dhaXQuYzogTmV3IGZpbGUuICBJbXBsZW1lbnRhdGlvbiBvZiBzaWd3YWl0CglmdW5jdGlvbiBmcm9tIFBPU0lYLjFjLgoJKiBzeXNkZXBzL3N0dWIvc2lnd2FpdC5jOiBOZXcgZmlsZS4gIFN0dWIgdmVyc2lvbiBvZiBzaWd3YWl0LgoKV2VkIE9jdCAzMCAwMjowMToxNyAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN1bnJwYy94ZHJfZmxvYXQuYyAoeGRyX2Zsb2F0KTogSGFuZGxlIHNpemVvZihmbG9hdCkhPXNpemVvZihsb25nKSwKCWJ1dCBkb24ndCBib3RoZXIgZ29pbmcgZmFydGhlciB0aGFuIHNpemVvZihmbG9hdCk9PXNpemVvZihpbnQpLgoJKHhkcl9kb3VibGUpOiBIYW5kbGUgbGl0dGxlLWVuZGlhbiBtYWNoaW5lcyEgIEhhbmRsZSBzaXplb2YoZG91YmxlKQoJIT0gMipzaXplb2YobG9uZyksIHRob3VnaCBhZ2FpbiBkb24ndCBib3RoZXIgd2l0aCBtb3JlIHRoYW4gaW50LgoKVGh1IE9jdCAyOSAxNjowOTo0MiAxOTk2ICBDcmFpZyBNZXR6ICA8Y21ldHpAaW5uZXIubmV0PgoKCSogc3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jOiBVc2UgYnVmZmVyIGxpbWl0cyBmb3IgaW5ldF9udG9wCglmdW5jdGlvbi4KClR1ZSBPY3QgMjkgMTI6Mzc6MjIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlcnVsZXM6IENyZWF0ZSBzeW1ib2xpYyBsaW5rcyBmb3IgbGlua2luZyBpbiAkKGxpYmRpcikuCgkobWFrZS1saW5rKTogVXNlIGFic29sdXRlIHBhdGggZm9yIGRlc3RpbmF0aW9uIGlmIHRoaXMgaXMgbm90IGluCgl0aGUgc2FtZSBkaXJlY3RvcnkuCgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogV2hlbiB2ZXJpZnlpbmcgZG9uJ3QgY2hlY2sgdGhlIG5hbWUgb2YKCXRoZSBkeW5hbWljIGxpbmtlci4KCgkqIHNobGliLXZlcnNpb25zOiBDaGFuZ2UgZW50cmllcyBmb3IgSHVyZCBzcGVjaWZpYyBsaWJzIGZyb20KCSotKi1nbnUqIHRvICotKi1nbnU/KiBzbyB0aGF0IGk1ODYtcGMtbGludXgtZ251IGRvZXMgbm90IG1hdGNoCgl0aGVzZSBlbnRyaWVzLgoKCSogYXNzZXJ0L2Fzc2VydC5oOiBSZWZvcm1hdCBjb3B5cmlnaHQuCglDaGFuZ2UgcmVmZXJlbmNlIHRvIEFOU0kgaW50byByZWZlcmVuY2UgdG8gSVNPIEMuCgkqIGN0eXBlL2N0eXBlLmg6IExpa2V3aXNlLgoJKiBlcnJuby5oOiBMaWtld2lzZS4KCSogbGltaXRzLmg6IExpa2V3aXNlLgoJKiBtYXRoL21hdGguaDogTGlrZXdpc2UuCgkqIHNldGptcC9zZXRqbXAuaDogTGlrZXdpc2UuCgkqIHN0ZGlvL3N0ZGlvLmg6IExpa2V3aXNlLgoJKiBsaWJpby9zdGRpby5oOiBMaWtld2lzZS4KCSogc3RkbGliL3N0ZGxpYi5oOiBMaWtld2lzZS4KCSogc3RyaW5nL3N0cmluZy5oOiBMaWtld2lzZS4KCSogdGltZS90aW1lLmg6IExpa2V3aXNlLgoKCSogc3RyaW5nL2FyZ3ouaDogVXNlIF9fY29uc3QgaW4gZGVmaW5pdGlvbnMuCgoJKiBlbGYvZGxmY24uaDogVXNlIF9fY29uc3QgYW5kIF9fUC4gIFJlZm9ybWF0IGNvcHlyaWdodC4KCSogbWlzYy9lcnIuaDogTGlrZXdpc2UuCgoJKiB3Y3R5cGUvd2N0eXBlLmggKHdjdHJhbnNfdCk6IFVzZSBfX2NvbnN0IGluc3RlYWQgb2YgY29uc3QuCgoJKiBNYWtlY29uZmlnICgkKGNvbW1vbi1vYmpwZngpc292ZXJzaW9ucy5tayk6IEdlbmVyYXRlIGxpc3Qgb2YKCXNvbmFtZXMgZm9yIHZlcnNpb25lZCBsaWJyYXJpZXMuCgkqIE1ha2VmaWxlOiBSZW1vdmUgY29kZSB0byBnZW5lcmF0ZSBsaWJjLXZlcnNpb24uaC4KCUdlbmVyYXRlIGdudS9saWItbmFtZXMuaCB3aXRoIGluZm8gZnJvbSBzb3ZlcnNpb25zLm1rLgoJKiBmZWF0dXJlcy5oOiBEZWZpbmUgX19HTElCQ19fIGFuZCBfX0dMSUJDX01JTk9SX18uCgoJKiBkaXJlbnQvdHN0LXNlZWtkaXIuYzogSW5pdGlhbGl6ZSBzYXZlMy4KCSogZ3JwL3Rlc3RncnAuYzogSW5pdGlhbGl6ZSBteV9ncm91cC4KCgkqIGdycC9mZ2V0Z3JlbnRfci5jOiBDaGFuZ2UgaW50ZXJmYWNlIHRvIGZvbGxvdyBQT1NJWC4xYy4KCSogZ3JwL2dycC5oOiBMaWtld2lzZS4KCSogbnNzL2dldFhYYnlZWS5jOiBMaWtld2lzZS4KCSogbnNzL2dldFhYYnlZWV9yLmM6IExpa2V3aXNlLgoJKiBuc3MvZ2V0WFhlbnQuYzogTGlrZXdpc2UuCgkqIG5zcy9nZXRYWGVudF9yLmM6IExpa2V3aXNlLgoJKiBwd2QvZmdldHB3ZW50X3IuYzogTGlrZXdpc2UuCgkqIHB3ZC9wd2QuaDogTGlrZXdpc2UuCgkqIHNoYWRvdy9mZ2V0c3BlbnRfci5jOiBMaWtld2lzZS4KCSogc2hhZG93L3NnZXRzcGVudC5jOiBMaWtld2lzZS4KCSogc2hhZG93L3NnZXRzcGVudF9yLmM6IExpa2V3aXNlLgoJKiBncnAvZmdldGdyZW50LmM6IEFkYXB0IGZvciBjaGFuZ2UgaW4gaW50ZXJmYWNlIG9mIGZnZXRncmVudF9yLgoJKiBwd2QvZmdldHB3ZW50LmM6IExpa2V3aXNlLCBmb3IgZmdldHB3ZW50X3IuYy4KCSogc2hhZG93L2ZnZXRzcGVudC5jOiBMaWtld2lzZSwgZm9yIGZnZXRwd2VudF9yLmMuCgkqIHJlc29sdi9uZXRkYi5oOiBBZGFwdCBwcm90b3R5cGVzIGZvciByZWVudHJhbnQgZnVuY3Rpb25zIHRvCglmb2xsb3cgUE9TSVguMWMuCgkqIHN1bnJwYy9ycGMvbmV0ZGIuaDogTGlrZXdpc2UsCgkqIHNoYWRvdy9zaGFkb3cuaDogTGlrZXdpc2UuCgoJKiBpbmV0L2dldG5ldGdyZW50X3IuYzogRm9sbG93IGNoYW5nZSBpbiBwd2QvZ3JwIGZ1bmN0aW9uIGludGVyZmFjZS4KCgkqIHN5c2RlcHMvdW5peC9nZXRsb2dpbl9yLmM6IFJldHVybiBFUkFOR0Ugd2hlbiBidWZmZXIgaXMgdG9vIHNtYWxsLgoKCSogaW5ldC9oZXJybm8uYzogRG9uJ3QgZGVmaW5lIF9faF9lcnJubywgb25seSBoX2Vycm5vIG90aGVyd2lzZSB0aGUKCUVMRiBhbGlhc2luZyBjcmVhdGVzIHN0cmFuZ2Ugc2l0dWF0aW9ucy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZXJybm9zLkg6IERlZmluZSBfX3NldF9lcnJubyBhcyBpbmxpbmUKCWZ1bmN0aW9uLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2RlcC5TOiBEb24ndCBkZWZpbmUgX19lcnJuby4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuUzogTGlrZXdpc2UuCgoJKiBsaWJpby9saWJpby5oOiBEb24ndCBkZWNsYXJlIF9JT19mbG9ja2ZpbGUgYW5kIF9JT19mdW5sb2NrZmlsZQoJd2Vhay4KCgkqIGxvY2FsZS9wcm9ncmFtcy9jaGFybWFwLmM6IEFkZCBjYXN0cyB0byBwcmV2ZW50IHdhcm5pbmdzLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGluZXJlYWRlci5oOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xkLWNvbGxhdGUuYzogTGlrZXdpc2UuCgkqIGxvY2FsZS9wcm9ncmFtcy9zdHJpbmd0cmFucy5jOiBMaWtld2lzZS4KCUNoYW5nZSB0eXBlcyBmb3IgdmFyaW91cyB2YXJpYWJsZXMgdG8gcHJldmVudCB3YXJuaW5ncy4KCSogbG9jYWxlL3Byb2dyYW1zL2xkLWN0eXBlLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGluZXJlYWRlci5oIChscl91bmdldGMpOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2NoYXJzZXQuaCAoc3RydWN0IGNoYXJzZXQpOiBVc2UgYHVuc2lnbmVkIGludCcKCWFzIHR5cGUgZm9yIHdpZHRoX2RlZmF1bHQuCgkqIHBvc2l4L3JlZ2V4LmM6IENoYW5nZSB0eXBlIG9mIGB0aGlzX3JlZycgdmFyaWFibGVzLgoJKiBzdGRpby1jb21tb24vTWFrZWZpbGU6IFVzZSAtV25vLWZvcm1hdCBmb3IgdHN0ZGlvbWlzYy5jLgoJKiBzdGRpby1jb21tb24vYnVnNS5jOiBEZS1BTlNJLWZ5LiAgVXNlIGNvcnJlY3QgdHlwZXMgZm9yCgl2YXJpYWJsZXMuCgkqIHN0ZGlvLWNvbW1vbi9wcmludGZfZnAuYzogSW5pdGlhbGl6ZSB0b19zaGlmdC4KCSogc3RkaW8tY29tbW9uL3Rlc3RfcmR3ci5jOiBBZGQgY2FzdC4KCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IEFkZCBjYXN0cyBhbmQgdXNlIGNvcnJlY3QgdHlwZXMgdG8KCXByZXZlbnQgd2FybmluZ3MuCgkqIHN0ZGlvLWNvbW1vbi92ZnNjYW5mLmM6IEluaXRpYWxpemUgc3RyIGFuZCBzdHJwdHIuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2Vfam5mLmM6IFVzZSBjb3JyZWN0IHR5cGVzIHRvIHByZXZlbnQgd2FybmluZ3MuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfcG93LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX3Bvd2YuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfcmVtX3BpbzJmLmM6IExpa2V3aXNlLgoJKiB0aW1lL3Rlc3QtdHouYzogTGlrZXdpc2UuCgoJKiBtYW51YWwvY3JlYXR1cmUudGV4aTogRG9jdW1lbnQgX1JFRU5UUkFOVCBhbmQgX1RIUkVBRF9TQUZFLgoJKiBtYW51YWwvbGliYy50ZXhpbmZvOiBQcmV2ZW50IG1ha2VpbmZvIGZhaWx1cmUgYnkgYXZvaWRpbmcKCWxpYmMuY3AgaW5kZXguICBUaGlzIG11c3QgYmUgZml4ZWQuCgkqIG1hbnVhbC9uc3MudGV4aTogQWRhcHQgZm9yIGNvcnJlY3QgUE9TSVguMWMgaW50ZXJmYWNlIG9mCglyZWVudHJhbnQgZnVuY3Rpb25zLgoJKiBtYW51YWwvdXNlcnMudGV4aTogRG9jdW1lbnQgbmV0Z3JvdXAgZnVuY3Rpb25zLgoKCSogcG8vZXMucG86IFVwZGF0ZWQuCgkqIHBvL2ZyLnBvOiBVcGRhdGVkLgoKCSogcG9zaXgvZm5tYXRjaC5jOiBDaGFuZ2UgdG8gbWF0Y2ggbGliaXQgdmVyc2lvbi4KCgkqIHBvc2l4L3VuaXN0ZC5oOiBDaGFuZ2UgcHJvdG90eXBlIGZvciB0dHluYW1lX3IgdG8gbWF0Y2ggUE9TSVguMWMuCgkqIHN5c2RlcC9wb3NpeC90dHluYW1lX3IuYzogTGlrZXdpc2UuCgoJKiBzdGRsaWIvYXRleGl0LmggKF9fbmV3X2V4aXRmbik6IEFkZCBpbnRlcm5hbCBsb2NraW5nLgoJKiBzdGRsaWIvZXhpdC5jOiBEZS1BTlNJLWZ5LiAgSGFuZGxlIG5ldyBlZl91cyB2YWx1ZSBmb3IgZmxhdm9yLgoJKiBzdGRsaWIvZXhpdC5oOiBEZS1BTlNJLWZ5LiAgRGVmaW5lIG5ldyBlZl91cyB2YWx1ZSBmb3IgZmxhdm9yLgoJKiBzdGRsaWIvcmFuZG9tLmMgKF9fc3JhbmRvbSk6IEFkZCBpbnRlcm5hbCBsb2NraW5nLgoJKF9faW5pdHN0YXRlKTogTGlrZXdpc2UuCgkoX19zZXRzdGF0ZSk6IExpa2V3aXNlLgoJKF9fcmFuZG9tKTogTGlrZXdpc2UuCgpNb24gT2N0IDI4IDIyOjI4OjM3IDE5OTYgIE5JSUJFIFl1dGFrYSAgPGduaWliZUBtcmkuY28uanA+CgoJKiBzeXNkZXBzL2dlbmVyaWMvY3J5cHQtZW50cnkuYyAoY3J5cHRfcik6IFVzZSBfX3NldF9lcnJuby4KCShjcnlwdCk6IExpa2V3aXNlLgoJKiByZXNvbHYvZ2V0aG5hbWFkZHIuYyAoZ2V0aG9zdGJ5bmFtZTIpOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL3VuYW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3JlbmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldHJsaW1pdC5jOiBMaWtld2lzZS4KCgkqIG5zcy9uc3NfZGIvZGItbmV0Z3JwLmMgKF9uc3NfZGJfc2V0bmV0Z3JlbnQpOiBGaXggdHlwby4KClN1biBPY3QgMjcgMTE6MTI6NTAgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtY29sbGF0ZS5jIChjb2xsYXRlX29yZGVyX2VsZW0pOiBGaXggZm9ybWF0CglzdHJpbmcuCgkoY29sbGF0ZV9lbGVtZW50X3RvKTogQ2FzdCBmaWVsZCB3aWR0aCBhcmd1bWVudCB0byBgaW50JyBmb3IKCWZvcm1hdCBzdHJpbmcuCgkoY29sbGF0ZV9zeW1ib2wpOiBMaWtld2lzZS4KCShjb2xsYXRlX29yZGVyX2VsZW0pOiBMaWtld2lzZS4KCShjb2xsYXRlX3dlaWdodF9ic3ltYm9sKTogTGlrZXdpc2UuCgkoY29sbGF0ZV9zaW1wbGVfd2VpZ2h0KTogTGlrZXdpc2UuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtdGltZS5jIChTVFJBUlJfRUxFTSk6IEZpeCBmb3JtYXQgc3RyaW5nLgoKCSogbG9jYWxlL3Byb2dyYW1zL2xkLWN0eXBlLmMgKGN0eXBlX2NsYXNzX25ld1ApOiBBZGQgbWlzc2luZwoJYXJndW1lbnQgZm9yIGZvcm1hdCBzdHJpbmcuCgkoY3R5cGVfbWFwX25ld1ApOiBMaWtld2lzZS4KCShzZXRfY2xhc3NfZGVmYXVsdHMpOiBGaXggZm9ybWF0IHN0cmluZy4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGVkZWYuYyAoY29uc3RydWN0X291dHB1dF9wYXRoKTogUHV0dGluZyBhbgoJZXhwbGljaXQgXDAgaW50byB0aGUgZm9ybWF0IHN0cmluZyBkb2VzIG5vdCB3b3JrLCB1c2UgJWMuCgpTYXQgT2N0IDI2IDIwOjM4OjM2IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogTWFrZXJ1bGVzOiBJbnN0YWxsIGFsbCBzaGFyZWQgbGlicmFyaWVzIGluICQoc2xpYmRpcikuCgoJKiBsb2dpbi9NYWtlZmlsZTogQnVpbGQgbGlidXRpbC5zbyBpbiBvdGhlcnMgcGFzcyBhZnRlcgoJbGliYy5zbyBpcyBjcmVhdGVkLgoKCSogbWlzYy9tbnRlbnQuaDogSW5jbHVkZSA8cGF0aHMuaD4gZm9yIF9QQVRIX01OVFRBQiAmIF9QQVRIX01PVU5URUQuCgoJKiBzdHJpbmcvc3RyYXRjbGlmZi5jOiBBbGxvY2F0ZSAzIHBhZ2VzIGluc3RlYWQgb2Ygb25lLCB0aGVuIHVzZQoJbXByb3RlY3Qgc28gdGhhdCB3ZSBrbm93IHRoYXQgdGhlIGFkamFjZW50IHBhZ2VzIGFyZSBpbmFjY2Vzc2libGUuCgoJKiByZXNvdXJjZS9zeXMvcmVzb3VyY2UuaDogTW92ZSBhbGwgc3RydWN0dXJlcyBhbmQgZW51bXMgdG8gLi4uCgkqIHN5c2RlcHMvZ2VuZXJpYy9yZXNvdXJjZWJpdHMuaDogLi4uIGhlcmUgLi4uCgkqIHN5c2RlcHMvdW5peC9ic2Qvc3VuL3N1bm9zNC9yZXNvdXJjZWJpdHMuaDogLi4uIGFuZCBoZXJlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9yZXNvdXJjZWJpdHMuaDogUmVtb3ZlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3Jlc291cmNlYml0cy5oOiBSZW1vdmUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvcmVzb3VyY2ViaXRzLmg6IFJlbW92ZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9yZXNvdXJjZWJpdHMuaDogUmVtb3ZlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yZXNvdXJjZWJpdHMuaDogTmV3IGZpbGUuICBVc2Uga2VybmVsCgloZWFkZXIgZm9yIFJMSU1JVF8qIGRlZmluaXRpb25zLiAgVGhlIG1lbWJlcnMgb2Ygc3RydWN0IHJsaW1pdAoJYXJlIGxvbmdzLgoKClRodSBPY3QgMjQgMTc6NDM6MzQgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlVEFHUyAoc3lzZGVwLWRpcnMpOiBGaXggdHlwby4KClRodSBPY3QgMjQgMTc6MzI6NTcgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIGh1cmQvaHVyZHNpZy5jICh3cml0ZV9jb3JlZmlsZSk6IElmIHdlIGNhbid0IGNyZWF0ZSB0aGUgY29yZQoJZmlsZSwgc3RpbGwgY2FsbCBjcmFzaF9kdW1wX3Rhc2sgd2l0aCBhIG51bGwgRklMRSBhcmcuICBNYXliZSBpdAoJd29uJ3QgYWN0dWFsbHkgbmVlZCB0aGUgZmlsZS4KCldlZCBPY3QgMjMgMDM6NDU6MjIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlZmlsZSAoaGVhZGVycyk6IERvbid0IG1lbnRpb24gbGliYy12ZXJzaW9uLmguCgkoaW5zdGFsbC1vdGhlcnMpOiAuLi5idXQgaGVyZS4KClR1ZSBPY3QgMjIgMjE6Mzg6MjEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB2ZXJzaW9uLmg6IEJ1bXAgdmVyc2lvbiBudW1iZXIgdG8gMS45Ny4KCgkqIGZlYXR1cmVzLmg6IFVuZG8gY2hhbmdlIG9mIFN1biBPY3QgMjAgMjI6MTk6NTggMTk5Ni4KCUluY2x1ZGUgbGliYy12ZXJzaW9uLmguCgkqIGZlYXR1cmVzLmguaW46IFJlbW92ZWQuCgkqIE1ha2VmaWxlOiBDaGFuZ2UgcnVsZXMgdG8gZ2VuZXJhdGUgbGliYy12ZXJzaW9uLmggaW5zdGVhZCBvZgoJZmVhdHVyZXMuaC4KCgkqIG1hbGxvYy9mcmVlLmM6IEFkZCBjYXN0IHRvIHByZXZlbnQgd2FybmluZy4KCSogbWFsbG9jL21hbGxvYy13YWxrLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvcmFsbG9jLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvcmVhbGxvYy5jOiBMaWtld2lzZS4KCgkqIGdycC9mZ2V0Z3JlbnRfci5jOiBBY2NlcHQgZW1wdHkgbnVtZXJpYyBmaWVsZCBpZiBuYW1lIHN0YXJ0IHdpdGggKwoJb3IgLS4KCSogcHdkL2ZnZXRwd2VudF9yLmM6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLWdycC5jOiBEb24ndCBhY2NlcHQgZW50cmllcyB3aXRoIG5hbWVzIHN0YXJ0aW5nCgl3aXRoICsgb3IgLSBpbiBsb29rdXAgZnVuY3Rpb25zLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXB3ZC5jOiBMaWtld2lzZS4KCgkqIE1ha2VydWxlczogQ2FsbCBhdXRvbG9jay5zaCB1c2luZyAkKFNIRUxMKS4KCk1vbiBPY3QgMjEgMjI6NTI6MTYgMTk5NiAgTklJQkUgWXV0YWthICA8Z25paWJlQG1yaS5jby5qcD4KCgkqIGVsZi9kbC1taW5pbWFsLmM6IERvbid0IGRlZmluZSBgZGdldHRleHQnIHJlcGxhY2VtZW50IGJ1dAoJYGRjZ2V0dGV4dCcuICBXaGVuIG9wdGltaXppbmcgdGhlIG1hY3JvcyBpbiA8bGliaW50bC5oPiBkZWZpbmUKCWBkZ2V0dGV4dCcgYXMgYSBtYWNybyBhbmQgc28gdGhpcyBmdW5jdGlvbiB3aWxsIG5ldmVyIGJlIGNhbGxlZC4KCk1vbiBPY3QgMjEgMTU6NDE6NTkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL2kzODYvc3lzZGVwLmg6IERlZmluZSBFTkQgdG8gdXNlIC5zaXplIHdoZW4gYXZhaWxhYmxlLgoJKFBTRVVET19FTkQpOiBVc2UgRU5ELgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2RlcC5oOiBEZWZpbmUgUFNFVURPX0VORCB0bwoJZGVmaW5lIFNZU0NBTExfRVJST1JfSEFORExFUiBiZWZvcmUgdXNpbmcgRU5ELgoJKFNZU0NBTExfRVJST1JfSEFORExFUik6IERvbid0IHVzZSAuc2l6ZSBkaXJlY3RpdmUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Nsb25lLlM6IERvbid0IHVzZSBTWVNDQUxMX0VSUk9SX0hBTkRMRVIKCWFuZCAuc2l6ZSBkaXJlY3RpdmUgYnV0IFBTRVVET19FTkQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21tYXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NvY2tldC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzZGVwLlMgKF9fZXJybm9fbG9jYXRpb24pOiBVc2UgRU5ELgoJKiBzeXNkZXBzL3VuaXgvaTM4Ni9zeXNkZXAuUyAoX19zeXNjYWxsX2Vycm9yKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9fX2xvbmdqbXAuUzogVXNlIEVORCBpbnN0ZWFkIG9mIFBTRVVET19FTkQuCgkqIHN5c2RlcHMvaTM4Ni9ic2QtX3NldGptcC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2JzZC1zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9tZW1jaHIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9tZW1jbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9zdHBjcHkuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9zdHBuY3B5LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RyY2hyLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RyY3Nwbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L3N0cnBicmsuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9zdHJyY2hyLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3Ryc3BuLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RydG9rLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvaTQ4Ni9zdHJjYXQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9pNDg2L3N0cmxlbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2k1ODYvbWVtc2V0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvaTU4Ni9zdHJjaHIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9pNTg2L3N0cmxlbi5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvaTM4Ni9zdHJsZW4uYzogRGUtQU5TSS1meS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9fc3RyZXJyb3IuYzogVW5kbyBjaGFuZ2Ugb2YgTW9uIE9jdCAyMSAwMTozMjozNiAxOTk2LgoJRGVmaW5lIGRnZXR0ZXh0IGlmIG5vdCBkZWZpbmVkIHRvIHVzZSBkY2dldHRleHQuCgkqIHN5c2RlcHMvbWFjaC9fc3RyZXJyb3IuYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9pMzg2L3RpbWUuUzogQWRkIFBTRVVET19FTkQgdG8gZ2V0CglfX3N5c2NhbGxfZXJyb3IgZGVmaW5lZC4uCgpTYXQgT2N0IDE5IDEyOjI3OjUwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9tbWFwLlM6IEZpeCBicmFpbm86IENBTExfTUNPVU5UIGlzCglhbHJlYWR5IGluY2x1ZGVkIGluIHRoZSBFTlRSWSBtYWNyby4gIFJlbW92ZSBTWVNDQUxMX0VSUk9SX0hBTkRMRVIKCW5vdyBwcm92aWRlZCBieSBQU0VVRE9fRU5ELgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3NpZ3JldHVybi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zb2NrZXQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzY2FsbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvY2xvbmUuUzogTGlrZXdpc2UuICBVc2UgSlVNUFRBUkdFVC4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zeXNkZXAuaCAoRU5EKTogUHJvdmlkZSBkZWZhdWx0IGVtcHR5CglkZWZpbml0aW9uLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2RlcC5oIChFTkQpOiBSZWRlZmluZSB0byB1c2UKCXNpemUgZGlyZWN0aXZlLgoJKFBTRVVETyk6IERvbid0IGluY2x1ZGUgU1lTQ0FMTF9FUlJPUl9IQU5ETEVSLgoJKFBTRVVET19FTkQpOiBJbmNsdWRlIGl0IGhlcmUgaW5zdGVhZC4KCShTWVNDQUxMX0VSUk9SX0hBTkRMRVIpOiBSZW1vdmUgdHlwZSBkaXJlY3RpdmUuCgkqIHN5c2RlcHMvbTY4ay9ic2QtX3NldGptcC5TOiBVc2UgRU5ELCBub3QgUFNFVURPX0VORC4KCSogc3lzZGVwcy9tNjhrL2JzZC1zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc2lncmV0dXJuLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2RlcC5TOiBMaWtld2lzZS4KCShfX3N5c2NhbGxfZXJyb3IpOiBDYW4ndCB1c2UgRU5UUlkgbWFjcm8uCgpTYXQgT2N0IDE5IDEyOjEzOjI0IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdCAoZ2V0cmVzdWlkLCBzZXRyZXN1aWQpOgoJU2V0IGNhbGxlciB0byBFWFRSQS4KCk1vbiBPY3QgMjEgMDE6MzI6MzYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogTW92ZSBpbml0aWFsaXphdGlvbiBvZiBgX2RsX3N0YXJ0aW5nX3VwJwoJdG8gYmVnaW5uaW5nIG9mIGZ1bmN0aW9uLiAgU28gbGliYyBmdW5jdGlvbnMgY2FuIHVzZSB0aGlzIGZsYWcuCgkqIHN5c2RlcHMvZ2VuZXJpYy9fc3RyZXJyb3IuYzogRG9uJ3QgdXNlIGRnZXR0ZXh0IGZvciBtZXNzYWdlCgl0cmFuc2xhdGlvbiB3aGlsZSBgX2RsX3N0YXJ0aW5nX3VwJyBpcyBub256ZXJvLgoKCSogZWxmL2RsLWRlcHMuYyAoX2RsX21hcF9vYmplY3RfZGVwcyk6IEFkZCBuZXcgcGFyYW1ldGVyCglUUkFDRV9NT0RFLgoJUGFzcyBwYXJhbWV0ZXIgdmFsdWUgdG8gX2RsX21hcF9vYmplY3QuCgkqIGVsZi9kbC1sb2FkIChfZGxfbWFwX29iamVjdCk6IEFkZCBuZXcgcGFyYW1ldGVyIFRSQUNFX01PREUuCglJZiBUUkFDRV9NT0RFIGlzIG5vbnplcm8gZG9uI3Qgc2lnbmFsIGVycm9yIHdoZW4gc2hhcmVkIGxpYgoJaXMgbm90IGZvdW5kLiAgSW5zdGVhZCBjcmVhdGUgZmFrZSBlbnRyeSBmb3IgbGluayBtYXAuCgkqIGRsLW9wZW4uYyAoZGwtb3Blbik6IFBhc3MgMCBmb3IgbmV3IGFyZ3VtZW50IHRvIF9kbF9tYXBfb2JqZWN0LgoJKiBkbC1ydW50aW1lLmMgKF9kbF9vYmplY3RfcmVsb2NhdGlvbl9zY29wZSk6IFBhc3MgMCBmb3IgbmV3Cglhcmd1bWVudCB0byBfZGxfbWFwX29iamVjdF9kZXBzLgoJKiBlbGYvbGluay5oOiBBZGQgbmV3IHBhcmFtZXRlciBUUkFDRV9NT0RFIGZvciBwcm90b3R5cGVzIG9mCglfZGxfbWFwX29iamVjdCBhbmQgX2RsX21hcF9vYmplY3RfZGVwcy4KCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IFBhc3MgMCBmb3IgbmV3IGFyZ3VtZW50IHRvIF9kbF9tYXBfb2JqZWN0CglhbmQgX2RsX21hcF9vYmplY3RfZGVwcy4KCVdoZW4gbW9kZSA9PSB0cmFjZSB0ZXN0IGZvciBsX29wZW5jb3VudCA9PSAwIGJlZm9yZSBwcmludGluZwoJbGluayBpbmZvcm1hdGlvbiBzaW5jZSB0aGlzIG1lYW5zIHRoZSBsaWIgaXMgbm90IGZvdW5kLgoKU3VuIE9jdCAyMCAyMjoxOTo1OCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHJwbS90ZW1wbGF0ZTogQWRkIElOU1RBTEwgdG8gJWRvYyBsaW5lIHRvIGZvbGxvdyBjb3B5cmlnaHQKCXJlc3RyaWN0aW9ucyB3aGljaCBkZW1hbmQgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgY29weXJpZ2h0CgltZXNzYWdlcyBpbiBJTlNUQUxMIGV2ZW4gZm9yIGJpbmFyeSBkaXN0cmlidXRpb25zLgoKCSogZmVhdHVyZXMuaDogUmVuYW1lIHRvLi4uCgkqIGZlYXR1cmVzLmguaW46IC4uLnRoaXMuICBDaGFuZ2UgdmFsdWUgb2YgX19HTlVfTElCUkFSWV9fIHRvIDIKCShmb3IgbWFqb3IgdmVyc2lvbiBudW1iZXJvZiBwYWNrYWdlKSBhbmQgYWRkIF9fR05VX0xJQlJBUllfTUlOT1JfXwoJYW5kIF9fR05VX0xJQlJBUllfSU5URVJGQUNFX18uCgkqIE1ha2VmaWxlICgkKG9ianBmeClmZWF0dXJlcy5oKTogTmV3IHJ1bGUgdG8gZ2VuZXJhdGUgZmVhdHVyZXMuaAoJZnJvbSB0ZW1wbGF0ZSBmZWF0dXJlcy5oLmluLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ2V0c3lzc3RhdHMuYzogSW5jbHVkZSA8cGF0aHMuaD4uCgpTdW4gT2N0IDIwIDAwOjAwOjEzIDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogbG9jYWxlL3Byb2dyYW1zL2xpbmVyZWFkZXIuYyAobHJfb3Blbik6IENhc3QgYXdheSBjb25zdCBiZWZvcmUgZnJlZS4KCShscl9jbG9zZSk6IExpa2V3aXNlLgoKCSogbWlzYy9tbnRlbnQuaDogTW92ZSBfUEFUSF9NTlRUQUIgJiBfUEFUSF9NT1VOVEVEIHRvIHBhdGhzLmguCgkqIG1pc2MvcGF0aHMuaDogTW92ZSB0byAuLi4KCSogc3lzZGVwcy9nZW5lcmljL3BhdGhzLmg6IC4uLiBoZXJlLgoJKiBwYXRocy5oOiBSZW1vdmUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BhdGhzLmg6IE5ldyBmaWxlLiAgQ29ycmVjdCBfUEFUSF9TVERQQVRILAoJX1BBVEhfTUFJTERJUiwgX1BBVEhfTU9VTlRFRCwgX1BBVEhfVU5JWCB0byBjb21wbHkgd2l0aCB0aGUgZnNzdGQuCgoJKiBuc3MvbnNzX2RiL2RiLW5ldGdycC5oOiBJbmNsdWRlIDxzdHJpbmcuaD4uCgoJKiBzdGRpby1jb21tb24vcHNpZ25hbC5jOiBEZS1hbnNpZGVjbC1pZnkuICBBbGxvdyBOVUxMIGVudHJpZXMgaW4KCV9zeXNfc2lnbGlzdCwgd2hpY2ggcmVzdWx0IGluIHRoZSAiVW5rbm93biBzaWduYWwiIG1lc3NhZ2UuCgkqIHN0cmluZy9zdHJzaWduYWwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy9NYWtlZmlsZSBbc3RkaW8tY29tbW9uXTogSWYgJChpbmhpYml0LXNpZ2xpc3QpLAoJZG9uJ3QgYXV0by1nZW5lcmF0ZSBzaWdsaXN0LmMuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIFtzdGRpby1jb21tb25dOiBTZXQgaW5oaWJpdC1zaWdsaXN0LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaWdsaXN0LmM6IE5ldyBmaWxlLiAgTm90IG5lZWRpbmcgdG8KCWF1dG9nZW5lcmF0ZSBtYWtlcyBib290c3RyYXBwaW5nIGFuZCBjcm9zcy1jb21waWxpbmcgbXVjaCBlYXNpZXIuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NpZ2xpc3QuaDogTmV3IGZpbGUuCgoJKiBzdGRsaWIvbG9uZ2xvbmcuaDogUHJvdG90eXBlIF9fdWRpdl9xcm5uZC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL01ha2VmaWxlIChzeXNkZXBfaGVhZGVycyk6IFJlbW92ZQoJc3lzL2lvLmguICBJdCBpcyBhbHJlYWR5IGFkZGVkIGluIC4uLi9saW51eC9NYWtlZmlsZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3NpZ2FjdGlvbi5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc2lnbnVtLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zdGF0YnVmLmg6IE5ldyBmaWxlLgoKU3VuIE9jdCAyMCAxNzoxNzoxMiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCglBZGQgaW1wbGVtZW50YXRpb24gb2YgUE9TSVguMWcgZnVuY3Rpb24gZ2V0YWRkcmluZm8uCgkqIHBvc2l4L01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBnZXRhZGRyaW5mby4KCSogc3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jLjogTmV3IGZpbGUuICBBZGQgaW1wbGVtZW50YXRpb24gYnkKCUNyYWlnIE1ldHouCgkqIHN5c2RlcHMvc3R1Yi9nZXRhZGRyaW5mby5jOiBOZXcgZmlsZS4gIFN0dWIgaW1wbGVtZW50YXRpb24uCgkqIHJlc29sdi9uZXRkYi5oIFtfX1VTRV9QT1NJWF06IEFkZCBnZXRhZGRyaW5mbyBwcm90b3R5cGVzIGFuZAoJcmVsYXRlZCBjb25zdGFudHMgYW5kIHN0cnVjdHVyZXMuCgpTdW4gT2N0IDIwIDEzOjAyOjM0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9zdHViL2xvY2tmaWxlLmM6IFJlbmFtZSBmdW5jdGlvbnMgdG8gX19pbnRlcm5hbF8qLgoJTWFrZSBhbGwgb2xkIG5hbWVzIHdlYWsgYWxpc2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgcmVwbGFjZWQKCWJ5IGxpYnB0aHJlYWQuCgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogT25seSBkZWNsYXJlIF9fZmxvY2tmaWxlIGFuZCBfX2Z1bmxvY2tmaWxlCglmb3IgIVVTRV9JTl9MSUJJTy4KCVtVU0VfSU5fTElCSU9dOiBDYWxsIF9JT19mbG9ja2ZpbGUgYW5kIF9JT19mdW5sb2NrZmlsZSBpbnN0ZWFkIG9mCglfX2Zsb2NrZmlsZSBhbmQgX19mdW5sb2NrZmlsZS4KCVJlcG9ydGVkIGJ5IE5JSUJFIFl1dGFrYS4KCgkqIGNyeXB0L21kNS5jOiBDaGFuZ2UgZm9ybSBvZiBjb3B5cmlnaHQgbWVzc2FnZSBhY2NvcmRpbmcgdG8gR05JVFMKCXJ1bGVzLgoJQWRkIHdhcm5pbmcgZm9yIHJlcXVpcmVtZW50IG9uIFJFU0JVRiBwYXJhbWV0ZXIgZm9yIGBtZDVfZmluaXNoX2N0eCcKCWFuZCBgbWQ1X3JlYWRfY3R4JyBmdW5jdGlvbi4KCSogY3J5cHQvbWQ1Lmg6IExpa2V3aXNlLgoKCSogZ3JwL3Rlc3RncnAuYzogRG9uJ3QgdXNlIHBlcnJvciBmb3IgZXJyb3IgY2FzZXMgc2luY2UgZ2V0Z3IqIGFuZAoJZ2V0cHcqIGZ1bmN0aW9ucyBkbyBub3QgcmV0dXJuIHVzYWJsZSBlcnJvciBjb2Rlcy4KClN1biBPY3QgMTkgMjM6MDU6MzIgMTk5NiAgSmltIE1leWVyaW5nICA8bWV5ZXJpbmdAYXNpYy5zYy50aS5jb20+CgoJKiBjcnlwdC9tZDUuYyAobWQ1X3Byb2Nlc3NfYnl0ZXMpOiBVc2VkIGNhc3RpbmcgZm9yIHBvaW50ZXIKCWFyaXRobWV0aWMuCgpTdW4gT2N0IDIwIDAzOjUzOjIzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3VucnBjL01ha2VmaWxlIChvdGhlcnMpOiBSZW1vdmUgcG9ydG1hcCBoZXJlLCB0b28uCgpTYXQgT2N0IDE5IDE3OjQyOjI0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW50bC9sb2NhbGUuYWxpYXM6IExhbmd1YWdlIGZvciBlbnRyeSBgY3plY2gnIGlzIGBjcycuCgpGcmkgT2N0IDE3IDEzOjIwOjM1IDE5OTYgIFRob3JzdGVuIEt1a3VrICA8a3VrdWtAd2ViZXIudW5pLXBhZGVyYm9ybi5kZT4KCgkqIHN1bnJwYy9ldGMucnBjOiBVcGRhdGUgZnJvbSB0aS1ycGNzdmMgMi4zLgoKRnJpIE9jdCAxOCAyMjo1Njo0NSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN1bnJwYy9NYWtlZmlsZSAoaW5zdGFsbC1zYmluKTogUmVtb3ZlIHBvcnRtYXAuICBUaGlzIHZlcnNpb24gaXMKCWJ1Z2d5IGFuZCBtb3JlIGNvbXBldGVudCBwZW9wbGUgd29yayBvbiBhIHVzYWJsZSB2ZXJzaW9uIHdoaWNoIGlzCglkaXN0cmlidXRlZCBzZXBhcmF0ZWx5LgoJKiBzdW5ycGMvcG9ydG1hcC5jOiBSZW1vdmVkLgoJU3VnZ2VzdGVkIGJ5IFRob3JzdGVuIEt1a3VrLgoKRnJpIE9jdCAxOCAxMjoxNzowOSAxOTk2ICBFbnJpcXVlIE1lbGVybyAgPGp1c3RpbmVAaXByb2xpbmsuY2g+CgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2Zpbml0ZWwuYzogQ2hhbmdlIGZ1bmN0aW9uIG5hbWUgdG8KCWBmaW5pdGVsJy4KCkZyaSBPY3QgMTggMDA6MDE6MTAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdHJpbmcvTWFrZWZpbGUgKHRlc3RzKTogQWRkIHN0cmF0Y2xpZmYuCgkqIHN0cmluZy9zdHJhdGNsaWZmLmM6IE5ldyBmaWxlLiAgVGVzdCBmb3Igc3RyaW5nIGZ1bmN0aW9uIGF0Cgl0aGUgZWRnZSBvZiB0aGUgdXNhYmxlIG1lbW9yeS4KClRodSBPY3QgMTcgMjI6MTA6MTkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlcnVsZXMgKCQobGliZGlyKS9saWJjLnNvKTogRml4IHR5cG8uCgoJKiBlbGYvbGRkLnNoLmluOiBUZXN0IHdoZXRoZXIgZ2l2ZW4gZmlsZSByZWFsbHkgZXhpc3QgYW5kIGdpdmUKCWJldHRlciBtZXNzYWdlIGlmIGl0IGlzIG5vdCBhdmFpbGFibGUuCgpUaHUgT2N0IDE3IDA0OjI1OjM4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3NobV9idWYuaDogQWRkIGRlZmluaXRpb24gZm9yCglTSE1fUiBhbmQgU0hNX1cuCgpUaHUgT2N0IDE3IDAxOjU1OjM0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3VucnBjL01ha2VmaWxlICgkKG9ianBmeClycGNzdmMvJS5oLCAkKG9ianBmeCl4JS5jKTogV3JpdGUKCW91dHB1dCB0byAkQFQgYW5kIG1vdmUgdG8gJEAgbGF0ZXIgc2luY2UgdGhlIG5ldyBycGNnZW4gd2lsbCBub3QKCW92ZXJ3cml0ZSBleGlzdGluZyBmaWxlcy4KCgkqIHBvL01ha2VmaWxlIChsaWJjLnBvdCk6IEZpeCB0eXBvLgoKU3VuIE9jdCAxMyAyMDo1MjowNyAxOTk2ICBUaG9yc3RlbiBLdWt1ayAgPGt1a3VrQHdlYmVyLnVuaS1wYWRlcmJvcm4uZGU+CgoJVXBkYXRlIHJwY2dlbiBwcm9ncmFtIHRvIFRJLXJwYyBjb2RlLgoJKiBzdW5ycGMvTWFrZWZpbGUgKHJwY2dlbi1vYmpzKTogQWRkIHJwY190YmxvdXQubyBhbmQgcnBjX3NhbXBsZS5vLgoJKGRpc3RyaWJ1dGUpOiBBZGQgcHJvdG8uaC4KCSogc3VucnBjL3Byb3RvLmg6IE5ldyBmaWxlLiAgUHJvdG90eXBlcyBmb3IgYWxsIHRoZSBSUEMgZnVuY3Rpb25zLgoJKiBzdW5ycGMvcnBjX2NsbnRvdXQuYzogQ2hhbmdlIHRvIGFsbG93IGdlbmVyYXRpb24gb2YgSVNPIEMgY29kZS4KCSogc3VucnBjL3JwY19jb3V0LmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjX2hvdXQuYzogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGNfbWFpbi5jOiBMaWtld2lzZS4KCSogc3VucnBjL3JwY19wYXJzZS5jOiBMaWtld2lzZS4KCSogc3VucnBjL3JwY19wYXJzZS5oOiBMaWtld2lzZS4KCSogc3VucnBjL3JwY19zY2FuLmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjX3NjYW4uaDogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGNfc3Zjb3V0LmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjX3V0aWwuYzogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGNfdXRpbC5oOiBMaWtld2lzZS4KCgkqIHN1bnJwYy9ycGNfdGJsb3V0LmM6IE5ldyBmaWxlLgoJKiBzdW5ycGMvcnBjX3NhbXBsZS5jOiBMaWtld2lzZS4KClRodSBPY3QgMTcgMDA6MjY6MjAgMTk5NiAgTklJQkUgWXV0YWthICA8Z25paWJlQG1yaS5jby5qcD4KCgkqIHN5c2RlcHMvdW5peC9vcGVuZGlyLmM6IEFkZCBzZW1pY29sb24gZm9yIGNvbnNpc3RlbmN5LgoKV2VkIE9jdCAxNiAxMjoyNjo1MyAxOTk2ICBTdmVuIFZlcmRvb2xhZWdlICA8c2tpbW9AYnJldWdoZWwudWZzaWEuYWMuYmU+CgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmMgKG1haW4pOiBUZXN0IHdpdGggLTEgdG8gZmluZCBvdXQKCXdoZXRoZXIgcmVhZCBmYWlsZWQuCgpXZWQgT2N0IDE2IDE0OjU0OjU5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9jbG9uZS5TOiBVc2UgSlVNUFRBUkdFVCBhbmQKCVBTRVVET19FTkQgbWFjcm8uCgpUdWUgT2N0IDE1IDIxOjI3OjQyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zaWdjb250ZXh0Lmg6IFJlbW92ZWQuCgpUdWUgT2N0IDE1IDE1OjUyOjI5IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9jbG9uZS5TOiBBZGQgQ0FMTF9NQ09VTlQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvbW1hcC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zaWdyZXR1cm4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc29ja2V0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2RlcC5TIChfX2Vycm5vX2xvY2F0aW9uKToKCUxpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2NhbGwuUzogTGlrZXdpc2UuCglDb3JyZWN0IGdlbmVyYXRpb24gb2Ygc3lzdGVtIGNhbGwuCgpUdWUgT2N0IDE1IDE1OjEzOjE2IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZXJ1bGVzIChzeXNkLU1ha2VmaWxlKTogRml4IGNvbW1hbmQgc28gdGhhdCBpdCB3b3JrcyBpbiB0aGUKCXN1YmRpcmVjdG9yaWVzLgoJKEJVSUxEX0NGTEFHUyk6IENoYW5nZSBiYWNrIHVzaW5nICQoLi4pIGluc3RlYWQgb2YKCSQoY29tbW9uLW9ianBmeCksIHRoZSBsYXR0ZXIgZmFpbHMgaW4gdGhlIHRvcGxldmVsIGRpcmVjdG9yeSB3aGVuCgkkKG9iamRpcikgaXMgcmVsYXRpdmUuCgkoY29tbW9uLW9iamRpci1jb21waWxlKTogUnVuIGNvbXBpbGVyIGluICQob2JqZGlyKS4KCSogc3lzZGVwcy9wb3NpeC9NYWtlZmlsZSAobWstc3RkaW9saW0pOiBMaWtld2lzZS4KClR1ZSBPY3QgMTUgMjM6Mzk6NDggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdHJpbmcvc3RyaW5nLmggW19fVVNFX1NWSURdOiBBZGQgcHJvdG90eXBlIGZvciBzd2FiLgoJKiB0aW1lL3N5cy90aW1lLmggW19fVVNFX0JTRF06IEFkZCBwcm90b3R5cGUgZm9yIHVhbGFybS4KCVJlcG9ydGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKCVRoZSBhdmFpbGFibGUgbmxpc3QgaW1wbGVtZW50YXRpb24gaXMgbm90IGdlbmVyYWxseSB1c2FibGUuCglFc3BlY2lhbGx5IG9uIHRoZSBjdXJyZW50bHkgc3VwcG9ydGVkIEVMRiBzeXN0ZW1zIHRoZSBubGlzdAoJZnVuY3Rpb24gY29tZXMgd2l0aCB0aGUgbGliZWxmLgoJKiBtaXNjL01ha2VmaWxlIChoZWFkZXJzKTogUmVtb3ZlIG5saXN0LmguCgkocm91dGluZXMpOiBSZW1vdmUgbmxpc3QuCgoJKiBNYWtlZmlsZSAoJChvYmpwZngpdmVyc2lvbi1pbmZvLmgpOiBJbmNsdWRlIGluZm9ybWF0aW9uIGFib3V0CglzeXN0ZW0gdGhlIGxpYmMgaXMgYnVpbHQgb24gaW4gdmVyc2lvbi1pbmZvLmggZmlsZS4KCgkqIHBvL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIGhlYWRlci5wb3QuCgpUdWUgT2N0IDE1IDE2OjM0OjE1IDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2xlZXAuYzogSW5jbHVkZSBmaWxlIHdpdGggcHJvdG90eXBlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yZWJvb3QuYzogTGlrZXdpc2UuCgkqIG1pc2MvZXJyb3IuYzogTGlrZXdpc2UuCgpUdWUgT2N0IDE1IDIyOjQxOjI3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdDogQWRkIHtnZXQsc2V0fXJlc3VpZC4KClR1ZSBPY3QgMTUgMDg6MDY6MDIgMTk5NiAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiBjcnlwdC9NYWtlZmlsZSAocnBhdGgtbGluayk6IEV4dGVuZCBzZWFyY2ggcGF0aCB0byBjdXJyZW50IGRpcmVjdG9yeS4KCkZyaSBPY3QgMTEgMDk6MTg6MDYgMTk5NiAgU3ZlbiBWZXJkb29sYWVnZSAgPHNraW1vQGJyZXVnaGVsLnVmc2lhLmFjLmJlPgoKCSogc3lzZGVwcy9pMzg2L2k1ODYvc3RybGVuLlM6IENvcnJlY3QgaGFuZGxpbmcgb2YgcHJvbG9nIGZvcgoJYWxpZ25pbmcgcG9pbnRlci4KClR1ZSBPY3QgMTUgMDI6MTM6MjEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogRG9uJ3QgZGVjbGFyZSBfX2Zsb2NrZmlsZSBhcyB3ZWFrLgoKCSogY3J5cHQvbWQ1LWNyeXB0LmMgKG1kNV9jcnlwdF9yKTogQWRkIGNhc3QgdG8gcHJldmVudCB3YXJuaW5nLgoKVHVlIE9jdCAxNSAxNDozNzo0MCAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvZmNudGxiaXRzLmggKE9fSFVSRCk6IEFkZCBPX0VYTE9DSyBhbmQKCU9fU0hMT0NLLgoKU3VuIE9jdCAxMyAxOToxNjoxMCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLmggKFBPVU5EKTogTWFjcm8gcmVtb3ZlZCwKCXJlcGxhY2VkIGJ5IGAmJy4KCShQU0VVRE9fRU5EKTogUHJvdmlkZSBkZWZpbml0aW9uIHRvIHVzZSAuc2l6ZSBkaXJlY3RpdmUuCgkoUFNFVURPKTogRG9uJ3QgaW50ZXJwcmV0IG5lZ2F0aXZlIHJldHVybiB2YWx1ZXMgbGVzcyB0aGFuIC0xMjggYXMKCXN5c2NhbGwgZXJyb3IuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzY2FsbC5TIChzeXNjYWxsKTogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL202OGsvYnNkLV9zZXRqbXAuUzogVXNlIFBTRVVET19FTkQgbWFjcm8gdG8gcHJvdmlkZQoJLnNpemUgZGlyZWN0aXZlLgoJKiBzeXNkZXBzL202OGsvYnNkLXNldGptcC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9jbG9uZS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9tbWFwLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3NpZ3JldHVybi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zb2NrZXQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzY2FsbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuUzogVXNlIFBTRVVET19FTkQgaW5zdGVhZCBvZgoJZXhwbGljaXQgLnNpemUgZGlyZWN0aXZlLgoKU3VuIE9jdCAxMyAyMjo1Mjo1NiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHNobGliLXZlcnNpb25zOiBBZGQgdmVyc2lvbiBudW1iZXIvbmFtZSBmb3IgbGQuc28uCgkqIE1ha2Vjb25maWc6IE1vdmUgZGVmaW5pdGlvbiBvZiBydGxkLWluc3RhbGxlZC1uYW1lIGFmdGVyCglpbmNsdXNpb24gb2Ygc292ZXJzaW9ucy5tay4KCURvbid0IGFkZCAuIGJlZm9yZSB2ZXJzaW9uIG51bWJlciBmcm9tIHNobGliLXZlcnNpb25zIGZpbGUgd2hlbgoJd2hlbiBuYW1lIGRvZXMgbm90IHN0YXJ0IHdpdGggZGlnaXQuICBUaGlzIGlzIG5lZWRlZCBmb3IgbGQuc28uCgpTYXQgT2N0IDEyIDIwOjMxOjU4IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogbGliaW8vaW9nZXRzLmM6IFdhcm4gd2hlbiBnZXRzIGlzIHVzZWQuCgkqIHN0ZGlvL2dldHMuYzogU3RyZW5ndGhlbiB0aGUgd2FybmluZy4KClNhdCBPY3QgMTIgMjM6MTA6NDMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBsaWJpby9NYWtlZmlsZSBbX0xJQkNfUkVFTlRSQU5UXSAocm91dGluZXMpOiBBZGQgcGVla2MuCgkqIGxpYmlvL2xpYmlvLmg6IEFkZCBwcm90b3R5cGVzIGZvciBfSU9fZ2V0YywgX0lPX3B1dGMsIF9JT19mZW9mLAoJX0lPX2ZlcnJvciwgX0lPX3BlZWtjX2xvY2tlZCwgYW5kIF9JT19mdHJ5bG9ja2ZpbGUuCglSZW1vdmUgcHJvdG90eXBlcyBmb3IgX0lPX2dldGNfbG9ja2VkIGFuZCBfSU9fcHV0Y19sb2NrZWQuCglbX0lPX01UU0FGRV9JT106IEFkZCB3ZWFrIGFsaWFzZXMgZm9yIF9JT19mbG9ja2ZpbGUgYW5kCglfSU9fZnVubG9ja2ZpbGUuCglbISBfSU9fTVRTQUZFX0lPXTogRGVmaW5lIF9JT19mdHJ5bG9ja2ZpbGUgYXMgZW1wdHkuCglEZWZpbmUgX0lPX2dldGMsIF9JT19wZWVrYywgX0lPX3B1dGMsIF9JT19mZW9mLCBfSU9fZmVycm9yIHRvCglhcHByb3ByaWF0ZSB2YWx1ZXMgYWNjb3JkaW5nIHRvIF9fVVNFX1JFRU5UUkFOVC4KCSogbGliaW8vc3RkaW8uaDogQWRkIHByb3RvdHlwZSBmb3IgZnRyeWxvY2tmaWxlLgoJWyFfTElCQ106IERlZmluZSBnZXRjX2xvY2tlZCwgZ2V0Y2hhcl9sb2NrZWQsIHB1dGNoYXJfbG9ja2VkLAoJZ2V0YywgZ2V0Y2hhciwgcHV0YywgYW5kIHB1dGNoYXIgdXNpbmcgX0lPXyogbmFtZXMuCgkqIGxpYmlvL2Zlb2YuYzogUmVuYW1lIHRvIF9JT19mZW9mIGFuZCBtYWtlIGZlb2Ygd2VhayBhbGlhcy4KCSogbGliaW8vZmVycm9yLmM6IFJlbmFtZSB0byBfSU9fZmVycm9yIGFuZCBtYWtlIGZlcnJvciB3ZWFrIGFsaWFzLgoJKiBsaWJpby9nZXRjLmM6IFJlbmFtZSB0byBfSU9fZ2V0YyBhbmQgbWFrZSBnZXRjIHdlYWsgYWxpYXMuCgkqIGxpYmlvL3B1dGMuYzogUmVuYW1lIHRvIF9JT19wdXRjIGFuZCBtYWtlIHB1dGMgd2VhayBhbGlhcy4KCSogbGliaW8vcHV0Y191LmM6IERvbid0IGRlZmluZSBhbGlhcyBfSU9fcHV0Y191bmxvY2tlZC4KCSogbGliaW8vcGVla2MuYzogTmV3IGZpbGUuCgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYyAodmZwcmludGYpOiBVbmNvbmRpdGlvbmFsbHkgY2FsbAoJX19mbG9ja2ZpbGUuCgoJKiBzeXNkZXBzL3N0dWIvbG9jZmlsZS5jIFtVU0VfSU5fTElCSU9dOiBBbHNvIGRlZmluZSBfSU9fKiBuYW1lcy4KCgkqIGNyeXB0L01ha2VmaWxlICh0ZXN0cyk6IEFkZCBtZDV0ZXN0IGFuZCBtZDVjLXRlc3QuCgkqIGNyeXB0L21kNS1jcnlwdC5jOiBDb3JyZWN0IHZhcmlvdXMgZXJyb3IuICBOb3cgbWQ1X3Byb2Nlc3NfYnl0ZXMKCWlzIGNhbGxlZCwgdGhlIGJ1ZmZlciBsaW1pdCBpcyBob25vdXJlZCBhbmQgYSBsb29wIGluIGEgaW5uZXIKCWxvb3AgaXMgY29ycmVjdGVkLgoJKiBjcnlwdC9tZDUuaCAoc3RydWN0IG1kNV9jdHgpOiBBZGQgbmV3IGZpZWxkcy4KCUFkZCBwcm90b3R5cGVzIGZvciBuZXcgZnVuY3Rpb25zLgoJKiBjcnlwdC9tZDUuYyAobWQ1X2luaXRfY3R4KTogSW5pdGlhbGl6ZSBuZXcgZmllbGRzLgoJKG1kNV9maW5pc2hfY3R4KTogTmV3IGZ1bmN0aW9uLiAgTGlrZSBtZDVfcmVhZF9jdHggYnV0IGJlZm9yZQoJcGVyZm9ybSBjb3JyZWN0IGZpbmFsaXphdGlvbi4KCShtZDVfcHJvY2Vzc19ieXRlcyk6IE5ldyBmdW5jdGlvbi4gIFNpbWlsYXIgdG8gbWQ1X3Byb2Nlc19ibG9jaywKCWJ1dCBkb2VzIG5vdCByZXF1aXJlIGlucHV0IHNpemUgdG8gYmUgbXVsdGlwbGUgb2YgNjQuCgkobWQ1X3N0cmVhbSk6IFJld3JpdGUgdXNpbmcgbWQ1X3Byb2Nlc3NfYnl0ZXMgYW5kIG1kNV9maW5pc2hfY3R4LgoJKG1kNV9idWZmZXIpOiBMaWtld2lzZS4KCShtZDVfcHJvY2Vzc19ibG9jayk6IENvdW50IG51bWJlciBvZiBieXRlcy4KCSogY3J5cHQvbWQ1dGVzdC5jOiBOZXcgZmlsZS4gIFRlc3QgcHJvZ3JhbSBmb3IgTUQ1IGZ1bmN0aW9ucy4KCSogY3J5cHQvbWQ1Yy10ZXN0LmM6IE5ldyBmaWxlOiAgVGVzdCBwcm9ncmFtIGZvciBNRDUgY3J5cHQKCWZ1bmN0aW9uLgoKCSogcG8vZnIucG86IFVwZGF0ZS4KCgkqIHRpbWUvc3RycHRpbWUuYzogUmVjb2duaXplICVzLCAldSwgJWcsIGFuZCAlRyBmb3JtYXQuCgoJKiBwb3NpeC9nZXRvcHQuYzogQWRkIHNvbWUgbW9yZSBjYXN0cyBhbmQgaW5pdGlhbGl6YXRpb25zIHRvCglwcmV2ZW50IHdhcm5pbmdzLgoKU2F0IE9jdCAxMiAxNjoxNToyOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwZWVkLmMgKHNwZWVkcyk6IFJlbW92ZWQuICBXZSBwcm92aWRlCglhbiBleHRyYSBmdW5jdGlvbiB0byBwcm92aWRlIHRoaXMgZnVuY3Rpb25hbGl0eS4KCShjZmdldG9zcGVlZCk6IFNpbXBseSByZXR1cm4gbWFza2VkIHZhbHVlLgoJKGNmc2V0b3NwZWVkKTogRG9uJ3QgdXNlIHNwZWVkcyBhcnJheSBhbmQgc28gd2UgY2FuIHNpbXBseSB0ZXN0Cgl0aGUgdmFsdWUgb2YgU1BFRUQgZm9yIGlsbGVnYWwgdmFsdWVzLgoJKiB0ZXJtaW9zL2Nmc2V0c3BlZWQuYzogUmV3cml0ZS4gIFdlIGNvbnZlcnQgaGVyZSBiZXR3ZWVuIHRoZQoJcmVhbCB2YWx1ZXMgYW5kIHRoZSBCKiBjb25zdGFudHMuCglDaGFuZ2VzIHN1Z2dlc3RlZCBieSBVd2UgT2hzZSA8dXdlQHRpcmthLmd1bi5kZT4uCgpGcmkgT2N0IDExIDIxOjQ1OjM0IDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogbG9jYWxlL3Byb2dyYW1zL3hzdHJkdXAuYzogRGVmaW5lIHByb3RvdHlwZXMuCgkqIGxvY2FsZS9wcm9ncmFtcy94bWFsbG9jLmM6IExpa2V3aXNlLgoKCSogc3RkaW8tY29tbW9uL3hidWcuYyAobWFpbik6IENoYW5nZSBkZWZpbml0aW9uIHRvIGF2b2lkIHdhcm5pbmcuCgpGcmkgT2N0IDExIDIzOjM2OjMxIDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBkYi9oYXNoL2hhc2guYyAoX19oYXNoX29wZW4pOiBDb3JyZWN0bHkgdGVzdCBmb3IgYSByZWFkLXdyaXRlIGRiLgoKRnJpIE9jdCAxMSAxOToxMzozNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvY2FsZS9NYWtlZmlsZSAoQ1BQRkxBR1MpOiBTZXQgQ0hBUk1BUF9QQVRIIHRvCgkiJChpMThuZGlyKS9jaGFybWFwcyIuCgpGcmkgT2N0IDExIDIyOjEyOjQxIDE5OTYgIE5JSUJFIFl1dGFrYSAgPGduaWliZUBtcmkuY28uanA+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvcHJvY2ZzLmg6IEluY2x1ZGUgPGFzbS91c2VyLmg+Cgl0byBnZXQgZGVmaW5pdGlvbiBvZiBGUFUgZGVzY3JpcHRpb24gc3RydWN0LgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgWyQoc3ViZGlyKT1zb2NrZXRdIChzdWJkaXJfaGVhZGVycyk6CglBZGQgbmV0L2lmLmgsIG5ldC9pZl9wcHAuaCwgbmV0L3BwcC1jb21wLmgsIG5ldC9wcHBfZGVmcy5oLAoJbmV0L2lmX2FycC5oLCBhbmQgbmV0L3JvdXRlLmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25ldC9pZl9hcnAuaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25ldC9yb3V0ZS5oOiBOZXcgZmlsZS4KCkZyaSBPY3QgMTEgMTQ6NDk6MTMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3N0dWIvcmVhZGRpcl9yLmM6IE5ldyBmaWxlLiAgV2UgbmVlZCBhIHN0dWIgdmVyc2lvbi4KCSogc3lzZGVwcy9zdHViL2VfYWNvc2wuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9lX2FzaW5sLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZV9hdGFuMmwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9lX2V4cGwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9lX2Ztb2RsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZV9sb2cxMGwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9lX2xvZ2wuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9lX3NxcnRsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc19hdGFubC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NfbG9nMXBsLmM6IExpa2V3aXNlLgoKCSogTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgbnNzd2l0Y2guaCBhbmQgbmV0Z3JvdXAuaC4KCgkqIG5zcy9NYWtlZmlsZSAoZ2VuZXJhdGVkKTogZGItbmV0Z3JwLmMgaXMgbm90IGdlbmVyYXRlZC4KCgkqIHN5c2RlcHMvYWxwaGEvRGlzdDogQWRkIHN0eGNweS5TIGFuZCBzdHhuY3B5LlMuCgoJKiBNYWtlLWRpc3QgKCtvdXQpOiBBZGQgJChkb250X2Rpc3RyaWJ1dGUpLgoKRnJpIE9jdCAxMSAwMDoyNzoxOCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN0ZGlvLWNvbW1vbi9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgdG1wbmFtX3IuCgpGcmkgT2N0IDExIDA1OjMyOjUxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdmVyc2lvbi5oOiBCdW1wIHZlcnNpb24gdG8gMS45Ni4KCkZyaSBPY3QgMTEgMTg6MTM6NDcgMTk5NiAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiBzdGRpby1jb21tb24vdHN0LXByaW50Zi5jOiBTb21lIG1vcmUgY2xlYW51cHMuCgpGcmkgT2N0IDExIDAyOjQ4OjAyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcmVzb2x2L2FycGEvbmFtZXNlci5oOiBVcGRhdGUgZnJvbSBiaW5kLTQuOS41LVQ2Qi4KCSogcmVzb2x2L3Jlc29sdi5oOiBMaWtld2lzZS4KCSogcmVzb2x2L2dldGhuYW1hZGRyLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX2NvbXAuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfZGVidWcuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfaW5pdC5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19zZW5kLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvQmFubmVyOiBVcGRhdGUgdmVyc2lvbiBudW1iZXIuCgoJKiBuc3MvbnNzX2Rucy9kbnMtaG9zdC5jOiBVcGRhdGUgYWNjb3JkaW5nIHRvIGNoYW5nZSBpbgoJcmVzb2x2L2dldGhuYW1hZGRyLmMuCgpGcmkgT2N0IDEwIDIwOjUyOjI4IDE5OTYgIFJhbHBoIExvYWRlciAgPGxvYWRlckBtYXRocy5veC5hYy51az4KCgkqIGNyeXB0L21kNS5jIChtZDVfc3RyZWFtKTogV2hlbiByZWFkaW5nIHRoZSBibG9jayBpbiBzZXZlcmFsCglwaWVjZXMgYXBwZW5kIHRvIGluc3RlYWQgb2YgcmVwbGFjZSBwcmV2aW91c2x5IHJlYWQgZGF0YS4KClRodSBPY3QgMTAgMTU6NTM6MTcgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBzeXNkZXBzL2FscGhhL3N0eGNweS5TICgkdW5hbGlnbmVkKTogSW4gc2luZ2xlIHdvcmQgY29weSwgY29ycmVjdAoJbGFzdC1ieXRlLXdyaXR0ZW4gYml0IGZvciBzb3VyY2Ugd29yZCBtaXNhbGlnbm1lbnQuCgkqIHN5c2RlcHMvYWxwaGEvc3RyY2hyLmM6IFJlbW92ZWQuICBUaGVyZSBpcyBub3cgYW4gYXNzZW1ibGVyCgl2ZXJzaW9uLgoKVGh1IE9jdCAxMCAxNzoxNzoyMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN1bnJwYy9NYWtlZmlsZSAocnBjc3ZjKTogUmVtb3ZlIHlwLnguICBUaGUgY29ycmVjdGVkIHZlcnNpb24KCWNvbWVzIHdpdGggZ2xpYmMtbmlzLgoJKiBzdW5ycGMvcnBjc3ZjL3lwLng6IFJlbW92ZWQuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLW5ldGdyLmMgKF9uc3NfbmV0Z3JvdXBfcGFyc2VsaW5lKTogVGVzdAoJZm9yICpDVVJTT1IgdG8gYmUgTlVMTCBhbmQgZHVtcCBhIGNvcmUgaWYgeWVzLgoKVGh1IE9jdCAgOSAyMDowOTo1MyAxOTk2ICBNYXR0aGV3IEphY29iICA8bWphY29iQGZlcmFsLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2Jyay5TOiBEZWZpbmUgX0VSUk5PX0ggYmVmb3JlCglpbmNsdWRpbmcgPGVycm5vcy5oPiB0byBnZXQgZXJyb3IgbnVtYmVycy4KClRodSBPY3QgMTAgMTQ6MDA6MDEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3NpZ2NvbnRleHQuaDogTW92ZWQgZmlsZS4uLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaWdjb250ZXh0Lmg6IC4uLnRvIGhlcmUuICBTbyB0aGUKCUFscGhhIHBlb3BsZSBmaW5kIGEgY29ycmVjdCBmaWxlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2NhYnMuYzogV2UgY2Fubm90IG1ha2UgX19jYWJzbCBzaW1wbHkKCWFuIGFsaWFzIG9mIF9fY2FicyBzaW5jZSB0aGUgc3RydWN0dXJlcyBoYXZlIGRpZmZlcmVudCBuYW1lcy4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19sb2cxMC5jOiBGaXggdHlwbyBpbiB3ZWFrX2FsaWFzLgoJUmVwb3J0ZWQgYnkgTWF0dGhldyBKYWNvYiA8bWphY29iQGZlcmFsLmNvbT4uCgpXZWQgT2N0ICA5IDAwOjI0OjUyIDE5OTYgIEppbSBNZXllcmluZyAgPG1leWVyaW5nQGFzaWMuc2MudGkuY29tPgoKCSogdGltZS9zdHJmdGltZS5jOiBBbGxvdyBvbGQgSyZSIGNvbXBpbGVycyBjb21waWxlIHRoaXMgZmlsZS4KCldlZCBPY3QgIDkgMTI6MDM6NTYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBwb3NpeC9leGVjbHAuYzogQWRkIGZpcnN0IGFyZ3VtZW50IHBhcmFtZXRlciB0byBiZSBjb21wbGlhbnQKCXdpdGggUE9TSVguICBSZWFycmFuZ2UgYm9keSB0byBzdGFydCB2YXJhcmcgY291bnRlciBhZnRlcgoJdGhpcyBuZXcgYXJndW1lbnQuCgpXZWQgT2N0ICA5IDA0OjM0OjUwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3Byb2Nmcy5oOiBSZXdyaXRlLiAgV2UgY2Fubm90IHVzZQoJc2ltcGx5IGEgd3JhcHBlciBhcm91bmQgdGhlIDxsaW51eC9lbGZjb3JlLmg+IGZpbGUgc2luY2UgdGhlCglrZXJuZWwgaGVhZGVyIGlzIG5vdCBjbGVhbiBlbm91Z2guICBXZSBwcm92aWRlIHRoZSBkZWZpbml0aW9ucwoJaW4gdGhpcyBmaWxlIGluc3RlYWQuCgpXZWQgT2N0ICA5IDAxOjQzOjE4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ2V0aG9zdGlkLmMgKHNldGhvc3RpZCk6IEF2b2lkCglnZXQ/aWQgY2FsbHMgYnkgdXNpbmcgX19saWJjX2VuYWJsZV9zZWN1cmUuCgpXZWQgT2N0ICA5IDAwOjMwOjMzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW5ldC9nZXRuZXRncmVudF9yLmM6IENvcnJlY3QgbmV0Z3JvdXAgaW1wbGVtZW50YXRpb24uICBBCglzcGVjaWZpY2F0aW9uIG9mIGEgbmV0Z3JvdXAgY2FuIGFsc28gbmFtZSBhbm90aGVyIG5ldGdyb3VwLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLW5ldGdycC5jOiBMaWtld2lzZS4KCSogaW5ldC9uZXRncm91cC5oOiBBZGQgZmllbGRzIHRvIGhvbGQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi4KClR1ZSBPY3QgIDggMjE6NTE6MTQgMTk5NiAgQXJub2xkIEQuIFJvYmJpbnMgIDxhcm5vbGRAc2tlZXZlLmF0bC5nYS51cz4KCgkqIHBvc2l4L2dldG9wdC5jOiBJbXBsZW1lbnQgUE9TSVggLVcgb3B0aW9uIGhhbmRsaW5nLiAgV2hlbiB0aGUKCW9wdGlvbiBzdHJpbmcgY29udGFpbnMgIlc7IiAtVyBmb28gaXMgaGFuZGxlZCBsaWtlIC0tZm9vLgoKVHVlIE9jdCAgOCAxMjoyNzoyNiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvY2xvbmUuUzogRGVmaW5lIF9FUlJOT19IIGJlZm9yZQoJaW5jbHVzaW5nIDxlcnJub3MuaD4gc28gd2UgcmVhbGx5IGdldCBlcnJvciBzeW1ib2xzIGRlZmluZWQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvY2xvbmUuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2Nsb25lLlM6IExpa2V3aXNlLgoKCSogc3VucnBjL2F1dGhfdW5peC5jIChhdXRodW5peF9jcmVhdGVfZGVmYXVsdCk6IERvbid0IHVzZSBmaXhlZAoJc2l6ZSBhcnJheSBmb3IgZ2V0Z3JvdXBzIGNhbGwuICBJbnN0ZWFkIGdldCBtYXhpbWFsIG51bWJlciB2aWEKCXN5c2NvbmYuICBCdXQgZGlzY2FyZCBsaXN0IHRvIE5HUlBTIGVsZW1lbnRzIGJlZm9yZSBjYWxsaW5nIFhEUgoJZnVuY3Rpb24gc2luY2UgU3VuJ3MgY29kZSBjYW5ub3QgaGFuZGxlIGxvbmdlciBsaXN0cy4KCUJhc2VkIG9uIGEgcGF0Y2ggYnkgVGhvcnN0ZW4gS3VrdWsgPGt1a3VrQHdlYmVyLnVuaS1wYWRlcmJvcm4uZGU+LgoKCSogc3lzZGVwcy9zdHViL2VfajBsLmM6IERlZmluZSB5MGwgYXMgd2VsbC4KCSogc3lzZGVwcy9zdHViL2VfajFsLmM6IERlZmluZSB5MWwgYXMgd2VsbC4KCSogc3lzZGVwcy9zdHViL2Vfam5sLmM6IERlZmluZSB5bmwgYXMgd2VsbC4KCgkqIHBvc2l4L3VuaXN0ZC5oOiBDb3JyZWN0IHByb3RvdHlwZSBmb3IgZXhlY2xwLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvcG9zaXhfb3B0Lmg6IERlZmluZSBfUE9TSVhfTk9fVFJVTkMuCgpNb24gT2N0ICA3IDIyOjE4OjAzIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZWNvbmZpZyAoc3lzZGVwLWxpYnJhcnktcGF0aCk6IE5ldyB2YXJpYWJsZS4KCShidWlsdC1wcm9ncmFtLWNtZCk6IFVzZSBpdCBoZXJlIHRvIHByb3Blcmx5IGJ1aWxkIGEgY29sb24KCXNlcGFyYXRlZCBsaWJyYXJ5IHBhdGguCgpNb24gT2N0ICA3IDIyOjExOjU1IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogY3J5cHQvbWQ1LWNyeXB0LmMgKG1kNV9jcnlwdF9yKTogQWRkIG1pc3NpbmcgcGFyZW5zIGFyb3VuZCAmCgl3aXRoaW4gY29tcGFyaXNvbi4gIEZpeCBjb21tZW50cy4KCShtZDVfY3J5cHQpOiBGaXggY29tbWVudC4KClR1ZSBPY3QgIDggMDU6MTA6NDkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9lcnJub3MuaDogT25seSBpbmNsdWRlIDxsaW51eC9lcnJub3MuaD4KCXdoZW4gX0VSUk5PX0ggaXMgZGVmaW5lZC4KCVshX0VSUk5PX0ggJiYgX19uZWVkX0VtYXRoXTogRGVmaW5lIHZhbHVlIGZvciBFRE9NIGFuZCBFUkFOR0UuCglTaG91bGQgdGhlcmUgZXZlciBiZSBhIExpbnV4IHBvcnQgd2hlcmUgdGhlIG51bWVyaWMgdmFsdWVzIGFyZQoJbm90IDMzIGFuZCAzNCB0aGlzIGZpbGUgbXVzdCBjaGFuZ2UuCgpNb24gT2N0ICA3IDEzOjU0OjA0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbGliaW8vaW9mZ2V0cy5jIChfSU9fZmdldHMpOiBVc2UgX0lPX2Zsb2NrZmlsZSBpbnN0ZWFkIG9mCglfX2Zsb2NrZmlsZS4KCk1vbiBPY3QgIDcgMTE6MDE6NDUgMTk5NiAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiBzdHJpbmcvdHN0LXN0cmxlbi5jIChtYWluKTogUHJvdmlkZSBwcm90b3R5cGUuCgkqIG1hbGxvYy9tYWxsb2NidWcuYzogTGlrZXdpc2UuCgkqIGlvL3Rlc3QtdXRpbWUuYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2dlbmVyaWMvY3J5cHQtZW50cnkuYzogQ29ycmVjdCB0eXBvLgoKTW9uIE9jdCAgNyAxMzo0MjoyMCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9kbC1vcGVuLmMgKF9kbF9vcGVuKTogQ2hlY2sgYWdhaW5zdCBfZGxfc3lzZGVwX3N0YXJ0IHRvCgl0ZXN0IGZvciBsaWJjLmEuICBDaGVja2luZyBfRFlOQU1JQyBpcyBvZiBubyB3b3J0aCBoZXJlLgoJU3VnZ2VzdGVkIGJ5IEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+LgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jOiBEZWZpbmUgTE9PS1VQX05BTUUgZXZlbiBpZgoJRVhURVJOX1BBUlNFUiBpcyBkZWZpbmVkLgoKU2F0IE9jdCAgNSAxNzowNTozNiAxOTk2ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIFJ1bGVzIChkZXAtZHVtbXktbGliKTogQ29ycmVjdCBwcm90b3R5cGUgZm9yIF9fZHVtbXlfXy4KCgkqIGNyeXB0L21kNS1jcnlwdC5jOiBGaXggdHlwb3MgaW4gY29tbWVudHMuCgoJKiBnbW9uL2dtb24uYzogUHJvdmlkZSBwcm90b3R5cGVzLgoJKiBkYi9tYWtlZGIuYzogTGlrZXdpc2UuCgkqIGxvY2FsZS9wcm9ncmFtcy94bWFsbG9jLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vYnVnMTEuYyAobWFpbik6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vYnVnNy5jIChtYWluKTogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi9idWc4LmMgKG1haW4pOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL2J1ZzkuYyAobWFpbik6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vc2NhbmYxLmMgKG1haW4pOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3NjYW5mMi5jIChtYWluKTogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi9zY2FuZjUuYyAobWFpbik6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vc2NhbmY2LmMgKG1haW4pOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3NjYW5mNy5jIChtYWluKTogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi9zY2FuZjguYyAobWFpbik6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vdGVtcHRlc3QuYyAobWFpbik6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vdGVzdC1md3JpdGUuYyAobWFpbik6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vdHN0LXByaW50Zi5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3RzdGRpb21pc2MuYzogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi90c3RnZXRsbi5jIChtYWluKTogTGlrZXdpc2UuCgkqIHN0ZGxpYi90ZXN0bWIuYyAobWFpbik6IExpa2V3aXNlLgoKCSogc3RkaW8tY29tbW9uL3NjYW5mNC5jIChtYWluKTogQ29ycmVjdCBwcm90b3R5cGUsIHJlbW92ZSB1bnVzZWQKCXZhcmlhYmxlIG4uCgoJKiBzdGRpby1jb21tb24vc2NhbmYzLmMgKG1haW4pOiBDb3JyZWN0IHByb3RvdHlwZSwgY2hhbmdlCglkZWNsYXJhdGlvbiBvZiBzIHRvIHJlZHVjZSB3YXJuaW5ncy4KCSogc3RkaW8tY29tbW9uL2J1ZzEwLmMgKG1haW4pOiBMaWtld2lzZS4KCgkqIHN0ZGlvLWNvbW1vbi90ZmZvcm1hdC5jOiBQcm92aWRlIHByb3RvdHlwZSwgcmVtb3ZlIHVudXNlZAoJcmVmZXJlbmNlIHRvIGR1bXBfc3RhdHMsIGFkZCBicmFjZXMgaW4gc3ByaW50X2RvdWJsZXMuCgkqIHN0ZGlvLWNvbW1vbi90aWZvcm1hdC5jOiBMaWtld2lzZS4KCgkqIHN0ZGlvLWNvbW1vbi90ZXN0X3Jkd3IuYyAobWFpbik6IFBhcmFtZXRlciBgd2hlcmUnIGlzIGxvbmcgaW4KCXByaW50ZiBjYWxsLgoKTW9uIE9jdCAgNyAxNDowNDoyNiAxOTk2ICBOSUlCRSBZdXRha2EgIDxnbmlpYmVAbXJpLmNvLmpwPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3NvdW5kY2FyZC5oOiBGaXggdHlwby4KCgkqIHNoYWRvdy9wdXRzcGVudC5jOiBEb24ndCB3cml0ZSBjb2xvbiBhZnRlciBmbGFnIGZpZWxkLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L2lmX3BwcC5oOiBOZXcgZmlsZS4gIFdyYXBwZXIgYXJvdW5kCglrZXJuZWwgaGVhZGVyLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXQvcHBwLWNvbXAuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25ldC9wcHBfZGVmcy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvRGlzdDogTWVudGlvbiBuZXcgZmlsZXMuCgpNb24gT2N0ICA3IDAwOjU4OjE5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9pMzg2L2k1ODYvc3RyY2hyLlM6IENvcnJlY3QgaGFuZGxpbmcgb2YgZmlyc3QgYnl0ZXMgdG8KCWdldCBwb2ludGVyIGFsaWduZWQuICBSZXBvcnRlZCBieSBNYXR0aGlhcyBVcmxpY2hzIDxzbXVyZkBub3Jpcy5kZT4uCgoJKiBzeXNkZXBzL3Bvc2l4L2V1aWRhY2Nlc3MuYyBbX0xJQkNdOiBBdm9pZCBjYWxsaW5nIGdldD9pZCBmdW5jdGlvbnMKCWJ5IHVzaW5nIF9fbGliY19lbmFibGVfc2VjdXJlIHZhcmlhYmxlLgoKVHVlIE9jdCAgOCAxMzo1ODozMSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogaHVyZC9wb3J0cy1nZXQuYyAoX2h1cmRfcG9ydHNfZ2V0KTogSWYgdGhlIHJlcXVlc3RlZCBwb3J0IGlzCgludWxsLCBkb24ndCBhdHRlbXB0IG1hY2hfcG9ydF9tb2RfcmVmcy4KCk1vbiBPY3QgIDcgMTQ6NTE6NTIgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3BpcGVzdHJlYW0uYzogTmV3IGZpbGUgdG8gYXZvaWQgdXNlIG9mCglzeXNkZXBzL3VuaXgvcGlwZXN0cmVhbS5jLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvcmVhZGRpcl9yLmM6IE5ldyBmaWxlLCBndXRzIGNvcGllZCBlbnRpcmVseQoJZnJvbSBzeXNkZXBzL21hY2gvaHVyZC9yZWFkZGlyLmMuCgoJKiBzdGRpby9mcmVvcGVuLmM6IENvbXBsZXRlIGRlLWFuc2lkZWNsaWZpY2F0aW9uLgoJKiBzdGRpby9mZ2V0cy5jIChmZ2V0cyk6IExpa2V3aXNlLgoJKiBzdGRpby9nZXRkZWxpbS5jIChfX2dldGRlbGltKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvcGlwZXN0cmVhbS5jIChyZWFkZGVjbCwgd3JpdGVkZWNsLCBzZWVrZGVjbCwKCXBvcGVuKToKCUxpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3RjZmxvdy5jICh0Y2Zsb3cpOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC90Y2ZsdXNoLmMgKHRjZmx1c2gpOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3dhaXQ0LmMgKF9fd2FpdDQpOiBBbGxvdyBhIG51bGwgdmFsdWUgZm9yCglTVEFUX0xPQyB3aXRob3V0IGVycm9yLgoKU3VuIE9jdCAgNiAwMjowNTo1MiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHBvc2l4L2dldG9wdC5jOiBBZGQgY2FzdHMgdG8gcHJldmVudCB3YXJuaW5ncy4KCSogcG9zaXgvcmVnZXguYzogTGlrZXdpc2UuCgoJKiBtYXRoL01ha2VmaWxlIChsb25nLW0tcm91dGluZXMsIGxvbmctbS15ZXMpOiBEZWZpbmUgdG8gY29ycmVjdAoJdmFsdWVzIHRvIG1ha2UgYGxvbmcgZG91YmxlJyBmdW5jdGlvbnMgYXZhaWxhYmxlLgoJKGRpc3RyaWJ1dGUpOiBBZGQgJChsb25nLW0teWVzOj0uYykuCgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2NvcHlzaWdubC5TOiBDb3JyZWN0IGxvYWRpbmcgb2YgcmV0dXJuIHZhbHVlLgoJVXNlIGxvbmcgZG91YmxlIGluc3RydWN0aW9uLgoKCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9hdGFuaGwuYyAoaHVnZSk6IENvcnJlY3QgY29uc3RhbnQuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfYXNpbmhsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX3RhbmhsLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9jb3NobC5jOiBOZXcgZmlsZS4KCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfYXNpbmguYyBbIU5PX0xPTkdfRE9VQkxFXTogRGVmaW5lIG5hbWVzCglmb3IgYGxvbmcgZG91YmxlJyB2ZXJzaW9uIGFzIGFsaWFzLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2F0YW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfY2JydC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19jZWlsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2NvcHlzaWduLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2Nvcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19lcmYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfZXhwbTEuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfZmFicy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19maW5pdGUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfZmxvb3IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfZnJleHAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfaWxvZ2IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfbGRleHAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfbG9nMXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfbG9nYi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19tb2RmLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX25leHRhZnRlci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19yaW50LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX3NjYWxibi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19zaWduaWZpY2FuZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19zaW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfdGFuLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX3RhbmguYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfYWNvcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19hY29zaC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19zaW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfYXRhbjIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfYXRhbmguYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfY2Ficy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19jb3NoLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2RyZW0uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfZXhwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2Ztb2QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfZ2FtbWEuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfZ2FtbWFfci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19oeXBvdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19qMC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19qMS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19qbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19sZ2FtbWEuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfbGdhbW1hX3IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfbG9nLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2xvZzEwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X3Bvdy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19yZW1haW5kZXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfc2NhbGIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfc2luaC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19zcXJ0LmM6IExpa2V3aXNlLgoKCVN0dWIgZmlsZXMgZm9yIG1pc3NpbmcgbG9uZyBkb3VibGUgbWF0aCBmdW5jdGlvbnMuCgkqIHN5c2RlcHMvc3R1Yi9lX2Fjb3NobC5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9zdHViL2VfaHlwb3RsLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3N0dWIvZV9qMGwuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9lX2oxbC5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9zdHViL2Vfam5sLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3N0dWIvZV9sZ2FtbWFsX3IuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9lX3Bvd2wuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9lX3JlbV9waW8ybC5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9zdHViL2Vfc2luaGwuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9rX2Nvc2wuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9rX3JlbV9waW8ybC5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9zdHViL2tfc2lubC5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9zdHViL2tfdGFubC5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9zdHViL3NfZXJmbC5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9zdHViL3NfZXhwbTFsLmM6IE5ldyBmaWxlLgoKCSogc3lzZGVwcy9pMzg2L19fbG9uZ2ptcC5TOiBVc2UgUFNFVURPX0VORCBtYWNybyB0byBwcm92aWRlCgkuc2l6ZSBkaXJlY3RpdmUuCgkqIHN5c2RlcHMvaTM4Ni9ic2QtX3NldGptcC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2JzZC1zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9tZW1jaHIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9tZW1jbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9zdHBjcHkuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9zdHBuY3B5LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RyY2hyLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RyY3Nwbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L3N0cnBicmsuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9zdHJyY2hyLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3Ryc3BuLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RydG9rLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvaTQ4Ni9zdHJjYXQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9pNDg2L3N0cmxlbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2k1ODYvbWVtc2V0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvaTU4Ni9zdHJjaHIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9pNTg2L3N0cmxlbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hY29zLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2Fjb3NsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2FzaW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXNpbmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXRhbjIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXRhbjJsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2V4cC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9leHBsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2Ztb2QuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZm1vZGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZzEwLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZzEwbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2dsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3JlbWFpbmRlci5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9yZW1haW5kZXJmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3JlbWFpbmRlcmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2Vfc2NhbGIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2Vfc2NhbGJsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3NxcnQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2Vfc3FydGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2Vfc3FydGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfYXRhbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19hdGFuZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19hdGFubC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jZWlsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2NlaWxmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2NlaWxsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2NvcHlzaWduLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2NvcHlzaWduZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3B5c2lnbmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY29zLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Nvc2YuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY29zbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19maW5pdGUuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmluaXRlZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19maW5pdGVsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Zsb29yLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Zsb29yZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19mbG9vcmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfaWxvZ2IuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfaWxvZ2JmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2lsb2dibC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19sb2cxcC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19sb2cxcGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfbG9nMXBsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZ2IuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfbG9nYmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfbG9nYmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfcmludC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19yaW50Zi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19yaW50bC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zY2FsYm4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2NhbGJuZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zY2FsYm5sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NpZ25pZmljYW5kLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NpZ25pZmljYW5kZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaWduaWZpY2FuZGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2luLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NpbmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2lubC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc190YW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfdGFuZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc190YW5sLlM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9jbG9uZS5TOiBBZGQgLnNpemUgZGlyZWN0aXZlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L21tYXAuUy4gTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc29ja2V0LlMuIExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2RlcC5TLiBNb3JlIGNvbXBhY3QgLnNpemUgbGluZS4KCgkqIHN5c2RlcHMvaTM4Ni9zeXNkZXAuaCAoQVNNX1NJWkVfRElSRUNUSVZFKTogTmV3IG1hY3JvLiAgVXNlZAoJdG8gcHJvdmlkZSAuc2l6ZSBkaXJlY3RpdmUgb24gRUxGIHN5c3RlbXMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3Byb2ZpbC1jb3VudGVyLmg6IEluY2x1ZGUKCTxzaWdjb250ZXh0Lmg+IGFuZCByZW5hbWUgcGFyYW1ldGVyIHR5cGUgdG8gc2lnY29udGV4dC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zaWdjb250ZXh0LmggTmV3IGZpbGUuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2NhbGwuUzogRnJvbSBMaW51eCAyLjEgb24KCW5lZ2F0aXZlIHZhbHVlcyBtaWdodCBvY2N1ciBhcyBwb3NpdGl2ZSByZXN1bHRzLiAgVGVzdCBhZ2FpbnN0CgktMTI1IHRvIGRlY2lkZSBmb3IgZXJyb3Igb3Igbm90LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2RlcC5oOiBMaWtld2lzZSBmb3Igc3lzdGVtIGNhbGxzLgoKVGh1IE9jdCAgMyAyMTowNzo1OCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGVsZi9kbC1vcGVuLmM6IFVzZSBfRFlOQU1JQyBpbnN0ZWFkIG9mIF9kbF9zdGFydCB0byBkZWNpZGUKCXdoZXRoZXIgdGhpcyBpcyBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0uICBUaGUgbGF0dGVyIGlzIG5vdwoJYWx3YXlzIGRlZmluZWQuCgpGcmkgT2N0ICA0IDE3OjMwOjIyIDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBodXJkL2h1cmRzaWcuYyAoc2lnbmFsX2FsbG93ZWQpOiBBZGQgU0lHV0lOQ0ggdG8gdGhlIGxpc3QgdGhhdAoJY29udHJvbGxpbmcgdGVybWluYWxzIGFyZSBhbGxvd2VkIHRvIHNlbmQuCgoJKiBodXJkL2FsbG9jLWZkLmMgKF9odXJkX2FsbG9jX2ZkKTogSWYgU0laRSBpcyBzbyBiaWcgdGhhdCB0aGUKCXRhYmxlIGlzIGxhcmdlciB0aGFuIHRoZSBhbGxvd2FibGUgYWRkcmVzcyBzaXplLCB0aGVuIHJldHVybgoJZmFpbHVyZS4KCkZyaSBPY3QgIDQgMDI6MDg6MTAgMTk5NiAgQmFuZyBKdW4tWW91bmcgIDxiYW5nanlAbm93bnVyaS5ub3djb20uY28ua3I+CgoJKiBwby9rby5wbzogVXBkYXRlLgoKRnJpIE9jdCAgNCAwMjowNzo0NiAxOTk2ICBNaWNoZWwgUm9iaXRhaWxsZSAgPHJvYml0YWlsQElSTy5VTW9udHJlYWwuQ0E+CgoJKiBwby9mci5wbzogTmV3IGZpbGUuCgpGcmkgT2N0ICA0IDA1OjA0OjUyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zaWdjb250ZXh0Lmg6IE5ldyBmaWxlLgoKCUFkZCBzdXBwb3J0IGZvciBNRDUgY3J5cHQgcmVwbGFjZW1lbnQuCgkqIE1ha2VmaWxlIChzdWJkaXJzKTogQWRkIGNyeXB0LgoJKiBzaGxpYi12ZXJzaW9uczogQWRkIGVudHJ5IGZvciBsaWJjcnlwdC4KCSogY3J5cHQvbWQ1LWNyeXB0LmM6IE5ldyBmaWxlLgoJKiBjcnlwdC9tZDUuYzogTmV3IGZpbGUuCgkqIGNyeXB0L21kNS5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9nZW5lcmljL2NyeXB0LWVudHJ5LmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2dlbmVyaWMvY3J5cHQuaDogTmV3IGZpbGUuCgpUaHUgT2N0ICAzIDIwOjUzOjIzIDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogZGlyZW50L3RzdC1zZWVrZGlyLmM6IFByb3ZpZGUgY29ycmVjdCBwcm90b3R5cGVzLgoJKiBpby90ZXN0LXV0aW1lLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jYnVnLmM6IExpa2V3aXNlLgoJKiBwb3NpeC90ZXN0Zm5tLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24veGJ1Zy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9jdXNlcmlkLmM6IExpa2V3aXNlLgoKV2VkIE9jdCAgMiAxMzozMzo0OCAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCglQcm92aWRlIG9wdGltaXplZCBzdHJpbmcgZnVuY3Rpb25zIGZvciBBbHBoYSBwcm9jZXNzb3JzLgoJKiBzeXNkZXBzL2FscGhhL2J6ZXJvLlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL21lbXNldC5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS9zdHBjcHkuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvc3RwbmNweS5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJjYXQuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvc3RyY2hyLlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL3N0cmNweS5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJuY2F0LlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL3N0cm5jcHkuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvc3RycmNoci5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS9zdHhjcHkuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvc3R4bmNweS5TOiBOZXcgZmlsZS4KCgkqIHN5c2RlcHMvYWxwaGEvTWFrZWZpbGUgWyQoc3VkaXIpPT1zdHJpbmddOiBBZGQgc3R4Y3B5IGFuZAoJc3R4bmNweSB0byBzeXNkZXBfcm91dGluZXMuCglNaW5vciBjb3JyZWN0aW9uLgoKVGh1IE9jdCAgMyAxMzozMzozMSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9nZW5lcmljL2dudS90eXBlcy5oOiBBZGRlZCBfX2xvZmZfdC4KCURvbid0IGRlY2xhcmUga2V5X3QgaGVyZS4KCgkqIGh1cmQvYWxsb2MtZmQuYyAoX2h1cmRfYWxsb2NfZmQpOiBJZiByZWFsbG9jIGZhaWxzLCBib3RoZXIgdG8KCXNldCBlcnJubyAodG8gRU5PTUVNKS4KCldlZCBPY3QgIDIgMTM6NDE6NDggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL2dlbmVyaWMvc3RydG9rLmM6IERvbid0IHNldCBzdG9yZWQgcG9pbnRlciB0byBOVUxMIHdoZW4KCW5vdGhpbmcgaXMgZm91bmQuICBUaGlzIGd1YXJhbnRlZXMgYWxsIHN1YnNlcXVlbnQgY2FsbHMgYmVoYXZlCgl0aGUgc2FtZS4KCSogc3lzZGVwcy9nZW5lcmljL3N0cnRva19yLmM6IExpa2V3aXNlLgoKTW9uIFNlcCAzMCAyMjoyNzozNiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvcG9zaXgvdGVtcG5hbWUuYyAoX19zdGRpb19nZW5fdGVtcG5hbWUpOiBEb24ndCBkZWNsYXJlCglgaScgYXMgY29uc3QuCgpNb24gU2VwIDMwIDIyOjM4OjI5IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogc3lzZGVwcy9nZW5lcmljL3N0cnRvay5jOiBXaGVuIHdlIGhpdCBFT1MsIGRvbid0IHNldCBvbGRzIHRvCglOVUxMIGltbWVkaWF0ZWx5OyB3ZSdyZSBnb2luZyB0byBnZXQgY2FsbGVkIG9uZSBtb3JlIHRpbWUuCgkqIHN5c2RlcHMvZ2VuZXJpYy9zdHJ0b2tfci5jOiBMaWtld2lzZS4KClR1ZSBPY3QgIDEgMDk6MTI6MjEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtdGltZS5jOiBBbHdheXMgd3JpdGUgc29tZSBieXRlcyBhdCB0aGUgZW5kIG9mCgl0aGUgZmlsZSBldmVuIGlmIG5vIGBlcmEncyBhcmUgc3BlY2lmaWVkLgoKCSogc3RkaW8tY29tbW9uL3RtcG5hbWUuYyAodG1wYnVmKTogRG9uJ3QgZGVmaW5lIGFzIGFycmF5IG9mCglwb2ludGVycy4KClR1ZSBPY3QgIDEgMDE6NDM6MTEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBsaWJpby9pb2ZjbG9zZS5jOiBNb3ZlIHVubG9ja2luZyB0byByaWdodCBwb3NpdGlvbi4KCk1vbiBTZXAgMzAgMDM6MDg6MzQgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBtaXNjL01ha2VmaWxlOiBLaWxsIGZvcmNlLXdyYXBwZXIuCgkqIG1pc2MvZm9yY2Utd3JhcHBlci5jOiBEZWxldGUuCgoJKiBlbGYvZXZhbC5jOiBBZGQgPHN0cmluZy5oPi4KCgkqIGdtb24vc3lzL2dtb25fb3V0Lmg6IE5vbnNlbnNlIGxpa2UgYGNoYXIgZm9vW3NpemVvZihjaGFyKildJwoJZm9sbG93ZWQgYnkgYGJjb3B5KCZwdHIsICZmb28sIHNpemVvZihmb28pKScgaGVscHMgcG9ydGFiaWxpdHkKCWFuZCBiaW5hcnkgY29tcGF0aWJpbGl0eSBub3QgYXQgYWxsLiAgQmV0dGVyIHRvIGRvIGBjaGFyICpmb28nCglmb2xsb3dlZCBieSBgZm9vID0gcHRyJyBhcyBpdCBpcyBtdWNoIGNsZWFuZXIuCgkoc3RydWN0IGdtb25faGRyKTogRml4IHZlcnNpb24uCgkoc3RydWN0IGdtb25faGlzdF9oZHIpOiBGaXggbG93X3BjLCBoaWdoX3BjLCBoaXN0X3NpemUsIHByb2ZfcmF0ZS4KCShzdHJ1Y3QgZ21vbl9jZ19hcmNfcmVjb3JkKTogRml4IGZyb21fcGMsIHNlbGZfcGMsIGNvdW50LgoJKiBnbW9uL2dtb24uYzogRGUtYW5zaWRlY2wtaWZ5LgoJKHdyaXRlX2hpc3QpOiBEZS1iY29weS1meS4KCSh3cml0ZV9jYWxsX2dyYXBoKTogTGlrZXdpc2UuCgoJKiBnbW9uL21jb3VudC5jOiBBc3N1bWUgX01DT1VOVF9ERUNMIGRvZXMgdGhlIGVudGlyZSBkZWNsYXJhdGlvbi4KCSogc3lzZGVwcy9hbHBoYS9tYWNoaW5lLWdtb24uaDogVXBkYXRlIF9NQ09VTlRfREVDTC4KCSogc3lzZGVwcy9nZW5lcmljL21hY2hpbmUtZ21vbi5oOiBMaWtld2lzZS4KCgkqIHJlc29sdi9uZXRkYi5oOiBBZGQgX19zZXRfaF9lcnJubyB0byBtaW1pYyBfX3NldF9lcnJuby4KCSogbnNzL2dldFhYZW50X3IuYzogVXNlIF9fc2V0X2hfZXJybm8gdG8gc2V0IGhfZXJybm8gaW4gYWxsIGZ1bmNzLgoJKiBuc3MvbnNzX2Rucy9kbnMtbmV0d29yay5jOiBMaWtld2lzZS4KCSogcmVzb2x2L2dldHVuYW1hZGRyLmM6IExpa2V3aXNlLiAgQWxzbyB1c2UgX19zZXRfZXJybm8gd2hlcmUgbmVlZGVkLgoJKiByZXNvbHYvZ2V0bmV0bmFtYWRyLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX2RlYnVnLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX21rcXVlcnkuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfcXVlcnkuYzogTGlrZXdpc2UuCgoJKiBsaWJpby9jbGVhcmVycl91LmM6IEl0J3Mgbm90IG5lY2Vzc2FyeSB0byBkZWZpbmUgX18gcHJvdGVjdGVkCglmdW5jdGlvbiBzbyBkb24ndCBkbyBpdC4KCSogbGliaW8vZmVvZl91LmMsIGxpYmlvL2ZlcnJvcl91LmMsIGxpYmlvL2ZwdXRjX3UuYywKCSAgbGliaW8vZ2V0Y191LmMsIGxpYmlvL2dldGNoYXJfdS5jLCBsaWJpby9pb2ZmbHVzaF91LmM6IExpa2V3aXNlLgoKCSogbGliaW8vZmdldGMuYzogQXZvaWQgYSB3YXJuaW5nIGJ5IGNhc3RpbmcgX0lPX2Z1bmxvY2tmaWxlIGZvcgoJdGhlIGNsZWFudXAgcmVnaXN0cmFyLgoJKiBsaWJpby9mcHV0Yy5jLCBsaWJpby9mcmVvcGVuLmMsIGxpYmlvL2ZzZWVrLmMsIGxpYmlvL2dldGMuYywKCSAgbGliaW8vZ2V0Y2hhci5jLCBsaWJpby9pb2ZjbG9zZS5jLCBsaWJpby9pb2ZmbHVzaC5jLAoJICBsaWJpby9pb2ZnZXRwb3MuYywgbGliaW8vaW9mZ2V0cy5jLCBsaWJpby9pb2ZwdXRzLmMsCgkgIGxpYmlvL2lvZnJlYWQuYywgbGliaW8vaW9mc2V0cG9zLmMsIGxpYmlvL2lvZnRlbGwuYywKCSAgbGliaW8vaW9md3JpdGUuYywgbGliaW8vaW9nZXRkZWxpbS5jLCBsaWJpby9pb2dldHMuYywKCSAgbGliaW8vaW9wdXRzLmMsIGxpYmlvL2lvc2V0YnVmZmVyLmMsIGxpYmlvL2lvc2V0dmJ1Zi5jLAoJICBsaWJpby9pb3VuZ2V0Yy5jLCBsaWJpby9wdXRjLmMsIGxpYmlvL3B1dGNoYXIuYywgbGliaW8vcmV3aW5kLmM6CglMaWtld2lzZS4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC1jdHlwZS5jOiBJbmNsdWRlIDxhbGxvY2EuaD4uCgoJKiBsb2dpbi9sb2dpbl90dHkuYzogR2V0IGxvZ2luX3R0eSBwcm90b3R5cGUgZnJvbSA8dXRtcC5oPi4KCgkqIHBvc2l4L3N5cy90eXBlcy5oOiBDaGFuZ2UgI2RlZmluZXMgdG8gdHlwZWRlZnMuICBUaGlzIGlzIGxvb2tpbmcKCWZvcndhcmQgdG8gbW9yZSBjb21wcmVoZW5zaXZlIG5hbWVzcGFjZSBjbGVhbnVwcyBmb3IgQysrLgoJKiBwb3NpeC91bmlzdGQuaDogTGlrZXdpc2UgZm9yIHNzaXplX3QuCgoJKiBwd2QvZ2V0cHcuYzogUHJvdG90eXBlIGFuZCByZW5hbWUgZ2V0cHcgLT4gX19nZXRwdyBhbmQgYWRkIGEKCXdlYWsgYWxpYXMuCgoJKiByZXNvbHYvYmFzZTY0LmM6IERvbid0IGRvIGBmb3IgKE5VTEw7IC4uLiknIGFzIGl0IGNhdXNlcwoJYHN0YXRlbWVudCB3aXRoIG5vIGVmZmVjdCcgd2FybmluZ3MuCgkqIHJlc29sdi9pbmV0X25ldGEuYzogSW5jbHVkZSA8c3RyaW5nLmg+IGZvciBzdHJsZW4uCgoJKiBzdGRpby1jb21tb24vZ2V0bGluZS5jOiBVbmRlZiBzc2l6ZV90IGJlZm9yZSBsaWJpbyByZWRlZmluaXRpb24uCgkqIHN0ZGlvLWNvbW1vbi90c3RnZXRsbi5jOiBTYW1lLiAgRGUtYW5zaWRlY2wtaWZ5LgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogU2FtZSBmb3IgdmFfbGlzdC4KCSogc3RkaW8tY29tbW9uL3Zmc2NhbmYuYzogU2FtZS4KCSogc3RkaW8tY29tbW9uL3JlZy1wcmludGYuYzogUHJvdG90eXBlIHRoZSBfXyBmdW5jdGlvbi4KCSogc3RkaW8tY29tbW9uL3NjYW5mLmMgW1VTRV9JTl9MSUJJT106IEluY2x1ZGUgPGxpYmlvUC5oPiBmb3IKCV9JT192c2NhbmYgZGVjbGFyYXRpb24uCgoJKiBzdHJpbmcvdGVzdGVyLmM6IFRzaywgdHNrLiAgRG9uJ3QgY2FzdCBwb2ludGVycyB0byBpbnQsCglidXQgdG8gdW5zaWduZWQgbG9uZyBmb3IgdGhlIGhlYWx0aCBvZiA2NC1iaXQgc3lzdGVtcy4KCgkqIHN1bnJwYy9zdmNfdWRwLmM6IERlZmluZSBNQVggb25seSBpZiB3ZSBkb24ndCBoYXZlIGl0IHlldC4KCU1hbnkgc3lzdGVtJ3MgPHN5cy9wYXJhbS5oPiBwdWxscyB0aGlzIGluLgoKCSogc3lzZGVwcy9nZW5lcmljL2RsLWNhY2hlLmM6IEtpbGwgdGhlIGJvdHRvbSBoYWxmIG9mIHRoZQoJcGF0Y2ggZG91YmxlZCBmaWxlLgoKCSogc3lzZGVwcy9nZW5lcmljL3B0eS5jIChmb3JrcHR5KTogR2V0IGxvZ2luX3R0eSBkZWNsIGZyb20gPHV0bXAuaD4KCWluc3RlYWQgb2YgZGVmaW5pbmcgaXQgbG9jYWxseS4KCgkqIHN5c2RlcHMvcG9zaXgvc2lndmVjLmM6IFByb3RvdHlwZSB3cmFwcGVyX2hhbmRsZXIgYW5kIGNvbnZlcnRfbWFzay4KCSogc3lzZGVwcy9zdHViL2NoZmxhZ3MuYzogUHJvdG90eXBlIGNoZmxhZ3MuCgkqIHN5c2RlcHMvc3R1Yi9mY2hmbGFncy5jOiBQcm90b3R5cGUgZmNoZmxhZ3MuCgkqIHN5c2RlcHMvc3R1Yi9zc3RrLmM6IFByb3RvdHlwZSBzc3RrLgoKCSogc3lzZGVwcy91bml4L2FscGhhL3N5c2RlcC5TOiAgQWRkIHN0cm9uZyBhbGlhcyBmcm9tIGVycm5vCgl2YXJpYWJsZSB0byBfX2Vycm5vLiAgVXBkYXRlIF9fc3lzY2FsbF9lcnJvciB0byBzdG9yZSB0byBib3RoCgl0aGUgZ2xvYmFsIGFuZCBwZXItdGhyZWFkIHZhcmlhYmxlcy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2luaXQtZmlyc3QuYzogQ2hhbmdlIGluY2x1ZGUgb2YKCWluaXQtZmlyc3QuaCBmcm9tICIiIHRvIDw+IGFzICIiIGRvZXMgbm90IHNlYXJjaCB0aGUgaW5jbHVkZSBwYXRoLgoJUHJvdG90eXBlIF9kbF9zdGFydC4KClN1biBTZXAgMjkgMTQ6NDE6MTcgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvTWFrZWZpbGUgKCQoY29tbW9uLW9ianBmeClzLXByb3RvLmQpOiBNYWtlIGl0IGEKCXBhdHRlcm4gcnVsZSB0byBnZXQgdGhlIHJpZ2h0IHN0ZW0uCgpTYXQgU2VwIDI4IDAxOjMwOjA2IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZWZpbGUgKCQob2JqcGZ4KXZlcnNpb24taW5mby5oKTogRml4IHR5cG8gaW4gcHJldmlvdXMgY2hhbmdlLgoKU2F0IFNlcCAyOCAwMDo0NDozOCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvcG9zaXgvZXVpZGFjY2Vzcy5jIChfX3NldF9lcnJubyk6IEZpeCB0eXBvLgoKU2F0IFNlcCAyOCAwMDo0MDozOCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIG1hbGxvYy9mcmVlLmMgKF9mcmVlX2ludGVybmFsKTogRG9uJ3QgY2FsbCBmcmVlIHJlY3Vyc2l2ZWx5LCB1c2UKCXRoZSBpbnRlcm5hbCBmdW5jdGlvbnMgaW5zdGVhZC4KClNhdCBTZXAgMjggMDA6MjM6MjAgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3Bvc2l4L3RlbXBuYW1lLmMgKF9fc3RkaW9fZ2VuX3RlbXBuYW1lKSBbVVNFX0lOX0xJQklPICYmCglfSU9fTVRTQUZFX0lPXTogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgdGhlIGZpbGUgbG9jay4KCkZyaSBTZXAgMjcgMjM6NTg6MTcgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBjYXRnZXRzL2dlbmNhdC5jIChtYWluKTogUHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbiBvbiBzdGRvdXQsCglub3Qgc3RkZXJyLgoJKiBkYi9tYWtlZGIuYzogTGlrZXdpc2UuCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGUuYzogTGlrZXdpc2UuCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGVkZWYuYzogTGlrZXdpc2UuCgpNb24gU2VwIDMwIDAwOjE0OjI2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCUFkZCBpbXBsZW1lbnRhdGlvbiBvZiBuZXRncm91cC4KCSogaW5ldC9NYWtlZmlsZSAoZGlzdHJpYnV0ZXMpOiBBZGQgbmV0Z3JvdXAuaC4KCShyb3V0aW5lcyk6IEFkZCBnZXRuZXRncmVudC5jIGFuZCBnZXRuZXRncmVudF9yLmMuCgkqIGluZXQvZ2V0bmV0Z3JlbnQuYzogTmV3IGZpbGUuCgkqIGluZXQvZ2V0bmV0Z3JlbnRfci5jOiBOZXcgZmlsZS4KCSogaW5ldC9uZXRncm91cC5oOiBOZXcgZmlsZS4KCSogbmV0Z3JvdXAuaDogTmV3IGZpbGUuCgkqIG5zc3dpdGNoLmg6IE5ldyBmaWxlLgoJKiBuc3MvTWFrZWZpbGUgKGRhdGFiYXNlcyk6IEFkZCBnZXRncnAuCgkqIG5zcy9kYXRhYmFzZXMuZGVmOiBBZGQgbmV0Z3JvdXAuCgkqIG5zcy9kYi1NYWtlZmlsZTogQWRkIHJ1bGVzIGZvciBuZXRncm91cC4KCSogbnNzL25ldGdycC1sb29rdXAuYzogTmV3IGZpbGUuCgkqIG5zcy9uc3MuaDogQWRkIG5ldyBzdGF0dXMgdmFsdWUgTlNTX1NUQVRVU19SRVRVUk4gd2hpY2ggd2lsbAoJYWx3YXlzIHJldHVybiB3aXRob3V0IGEgY2hlY2sgb2YgdGhlIHRyYW5zaXRpb24gdGFibGUuCgkqIG5zcy9uc3N3aXRjaC5oIChzdHJ1Y3Qgc2VydmljZV91c2VyKTogRXh0ZW5kIGFjdGlvbnMgYXJyYXkgdG8KCWZpdmUgZWxlbWVudHMuCgkqIG5zcy9uc3N3aXRjaC5jIChfX25zc19uZXh0KTogQWxsb3cgTlNTX1NUQVRVU19SRVRVUk4gYXMgbGVnYWwKCXN0YXR1cyB2YWx1ZS4KCShuc3NfcGFyc2Vfc2VydmljZV9saXN0KTogSW5pdGlhbGl6ZSBhY3Rpb24gZm9yIE5TU19TVEFUVVNfUkVUVVJOCgl0byBOU1NfQUNUSU9OX1JFVFVSTi4KCSogbnNzL25zc19kYi9kYi1uZXRncnAuYzogTmV3IGZpbGUuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtbmV0Z3JwLmM6IE5ldyBmaWxlLgoJKiBuc3MvbnNzd2l0Y2guY29uZjogQWRkIGVudHJ5IGZvciBuZXRncm91cC4KCSogcmVzb2x2L25ldGRiLmg6IEFkZCBwcm90b3R5cGVzIGZvciBuZXRncm91cCBmdW5jdGlvbnMuCgoJKiBuc3MvbnNzX2RiL2RiLVhYWC5jOiBVc2UgYGVudW0gbnNzX3N0YXR1cycgdHlwZSB3aGVuIHN0YXR1cwoJdmFsdWUgaXMgdXNlZC4KClN1biBTZXAgMjkgMTI6NTU6NTggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0OiBDaGFuZ2UgZnVuY3Rpb24gbmFtZSBmb3IKCV9sbHNlZWsgdG8gX2xsc2VlayAobm90IGxsc2VlaykuCglSZXBvcnRlZCBieSBNYXR0aGlhcyBVcmxpY2hzIDxzbXVyZkBzbXVyZi5ub3Jpcy5kZT4uCgpTdW4gU2VwIDI5IDA1OjM0OjMyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW5ldC9yY21kLmM6IFJlbW92ZSBkZWZpbml0aW9uIG9mIE1JTi4KClNhdCBTZXAgMjggMTQ6MjI6NTEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBkaXJlbnQvcmVhZGRpcl9yLmM6IFJlbW92ZWQuICBXZSBpbmRlZWQgbmVlZCBhIHJlYWwgaW1wbGVtZW50YXRpb24uCgkqIHN5c2RlcHMvdW5peC9yZWFkZGlyX3IuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9yZWFkZGlyLmM6IFJlbW92ZSBjaGVjayBmb3IgY29ycmVjdCBwYXJhbWV0ZXIKCXZhbHVlcy4gIExldCB0aGVtIHNpbXBseSBkaWUuCgkqIG1hbnVhbC9maWxlc3lzLnRleGk6IERvY3VtZW50IHJlYWRkaXJfci4KCgkqIHN5c2RlcHMvZ251L2Vycmxpc3QuYXdrOiBEZWZpbmUgX3N5c19lcnJsaXN0IGFzIGBjb25zdCBjaGFyKiBjb25zdCcuCglQcm9wb3NlZCBieSBQZXIgQWJyYWhhbXNlbiA8YWJyYWhhbUBkaW5hLmt2bC5kaz4uCgpTYXQgU2VwIDI4IDAzOjAyOjQ5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZGlyZW50L01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCByZWFkZGlyX3IuCgkqIGRpcmVudC9yZWFkZGlyX3IuYzogTmV3IGZpbGUuICBXcmFwcGVyIGFyb3VuZCByZWFkZGlyLmMuCgkqIGRpcmVudC9kaXJlbnQuaDogQWRkIHByb3RvdHlwZSBmb3IgcmVhZGRpcl9yLgoKCSogbWlzYy9oc2VhcmNoX3IuYyAoRU5UUlkpOiBNYWtlIGZpZWxkIGB1c2VkJyBvZiB0eXBlIGB1bnNpZ25lZCBpbnQnCgl0byBwcmV2ZW50IHdhcm5pbmdzLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ2V0c3lzc3RhdHMuYyAoZ2V0X3Byb2NfcGF0aCk6CglJbml0aWFsaXplIGByZXN1bHQnLgoKU2F0IFNlcCAyOCAwMToxNjo0MiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zdHJzZXAuYzogUmVuYW1lIHRvIF9fc3Ryc2VwIGFuZCBtYWtlIHN0cnNlcAoJd2VhayBhbGlhcy4KCSogc3RyaW5nL3N0cmluZy5oOiBBZGQgcHJvdG90eXBlIGZvciBfX3N0cnNlcC4KCSogbWlzYy9tbnRlbnRfci5jOiBVc2UgX19zdHJzZXAgaW5zdGVhZCBvZiBzdHJzZXAgdG8ga2VlcAoJbmFtZXNwYWNlIGNsZWFuLgoKCSogc3lzZGVwcy9zdHViL25hbm9zbGVlcC5jOiBSZW5hbWUgdG8gX19saWJjX25hbm9zbGVlcCBhbmQgbWFrZQoJX19uYW5vc2xlZXAgYW5kIG5hbm9zbGVlcCB3ZWFrIGFsaWFzZXMuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IEFkZCBfX25hbm9zbGVlcCBhcyB3ZWFrCglhbGlhcy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2xlZXAuYzogQ2FsbCBfX25hbm9zbGVlcCBpbnN0ZWFkIG9mCgluYW5vc2xlZXAgdG8ga2VlcCBuYW1lc3BhY2UgY2xlYW4uCgoJKiBzeXNkZXBzL3Bvc2l4L3R0eW5hbWUuYyAodHR5bmFtZSk6IEFkZCBjYXN0IHRvIHByZXZlbnQgd2FybmluZy4KCSogc3lzZGVwcy9wb3NpeC90dHluYW1lX3IuYyAodHR5bmFtZV9yKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvZ2V0Y3dkLmMgKF9fZ2V0Y3dkKTogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL3VuaXgvbmxpc3QuYzogVXNlIElTTyBDIGRlZmluaXRpb24gc2luY2Ugd2UgZG9uJ3QgYWx3YXlzCgloYXZlIHByb3RvdHlwZS4KCgkqIGxvZ2luL01ha2VmaWxlIChoZWFkZXJzKTogQWRkIHB0eS5oLgoJKiBsb2dpbi9wdHkuaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvZ2VuZXJpYy9wdHkuaDogSW5jbHVkZSA8cHR5Lmg+LgoJKiBsb2dpbi9wdXR1dGxpbmVfci5jOiBBZGQgY2FzdCB0byBwcmV2ZW50IHdhcm5pbmcuCgoJKiBnbW9uL2dtb24uYzogQWRkIHByb3RvdHlwZSBmb3IgX19wcm9maWxlX2ZyZXF1ZW5jeS4KCShtb25zdGFydHVwKTogQWRkIGNhc3QgdG8gcHJldmVudCB3YXJuaW5nLgoJKiBzeXNkZXBzL2dlbmVyaWMvcHJvZi1mcmVxLmM6IENoYW5nZSB0byB1c2UgSVNPIEMgc3R5bGUgZGVmaW5pdGlvbi4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC10aW1lLmMgKHRpbWVfb3V0cHV0KTogV3JpdGUgYGVyYScgaW5mb3JtYXRpb24KCWluIGNvcnJlY3Qgb3JkZXIuCgpTYXQgU2VwIDI4IDAwOjExOjA4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdDogQWRkIHdlYWsgYWxpYXMKCWBhZGp0aW1leCcuCglTZXQgY2FsbGVyIGZvciBtbG9jaywgbWxvY2thbGwsIG1yZW1hcCwgbXVubG9jaywgYW5kIG11bmxvY2thbGwKCXRvIEVYVFJBLgoJUmVwb3J0ZWQgYnkgTWF0dGhpYXMgVXJsaWNocyA8c211cmZAc211cmYubm9yaXMuZGU+LgoKMTk5Ni0wOS0yNyAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBzdHJmdGltZS5jIChzdHJmdGltZSk6IE91dHB1dCBpbmNvbXBsZXRlIGZvcm1hdHMgbGlrZSAlRQoJYXQgZW5kIG9mIHN0cmluZy4KCjE5OTYtMDktMjcgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogc3RyZnRpbWUuYyAoc3RyZnRpbWUpOiBBZGQgc3VwcG9ydCBmb3IgJUVDIGFuZCAlRXkuCglGaXggc3VwcG9ydCBmb3IgJUVZLiAgVGhpcyB1c2VzIHRoZSBuZXcgX25sX2dldF9lcmFfZW50cnkgZnVuY3Rpb24uCgpGcmkgU2VwIDI3IDE0OjEyOjI3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCVNlY3VyaXR5IHJlbGF0ZWQgcGF0Y2ggYnkgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPiBhbmQKCURhdmlkIEhvbGxhbmQgPGRob2xsYW5kQGVlY3MuaGFydmFyZC5lZHU+LgoKCSogaW5ldC9yZXhlYy5jIChyZXhlYyk6IEluY3JlYXNlIHNpemUgb2YgYG51bScgYXJyYXkgZnJvbSA4IHRvIDMyLgoJKiBpbmV0L3J1c2VycGFzcy5jIChydXNlcnBhc3MpOiBEb24ndCBhbGxvdyAkSE9NRSBlbnZ2YXIgdG8gbm90IGV4aXN0LgoKCSogc3lzZGVwcy9nZW5lcmljL2dldGVudi5jIChfX3NlY3VyZV9nZXRlbnYpOiBOZXcgZnVuY3Rpb24uICBSZXR1cm4KCU5VTEwgd2hlbiBwcm9ncmFtcyBydW5zIHdpdGggU1VJRCBvciBTR0lEIGVuYWJsZWQuCgkqIHN5c2RlcHMvc3R1Yi9nZXRlbnYuYzogTWFrZSBfX3NlY3VyZV9nZXRlbnYgYW4gYWxpYXMgb2YgZ2V0ZW52LgoJKiBzdGRsaWIvc3RkbGliLmg6IEFkZCBwcm90b3R5cGUgZm9yIF9fc2VjdXJlX2dldGVudi4KCgkqIGxvY2FsZS9zZXRsb2NhbGUuYzogVXNlIF9fc2VjdXJlX2dldGVudi4KCSogcmVzb2x2L3Jlc19pbml0LmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX3F1ZXJ5LmM6IExpa2V3aXNlLgoJKiBpbmV0L3J1c2VycGFzcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC90ZW1wbmFtZS5jOiBMaWtld2lzZS4KCSogbWFsbG9jL210cmFjZS5jOiBMaWtld2lzZS4KCSogY2F0Z2V0cy9jYXRnZXRzLmM6IExpa2V3aXNlLgoKCU1ha2UgdGVtcG9yYXJ5IGZpbGUgaGFuZGxpbmcgZnVuY3Rpb25zIHJlZW50cmFudC4KCgkqIHN0ZGlvLWNvbW1vbi90bXBuYW0uYzogUmV3cml0ZSB0byBoYXZlIG93biBidWZmZXIgdG8gd3JpdGUKCXJlc3VsdCB0by4gIFRoZSBjYWxsZWQgX19zdGRpb19nZW5fdGVtcG5hbWUgZnVuY3Rpb24gbXVzdCBiZQoJdGhyZWFkIHNhZmUuCgkqIHN0ZGlvLWNvbW1vbi90bXBuYW1fci5jOiBOZXcgZmlsZS4KCSogc3RkaW8vc3RkaW8uaDogQWRkIHByb3RvdHlwZSBmb3IgYHRtcG5hbV9yJy4KCUNoYW5nZSBwcm90b3R5cGUgZm9yIF9fc3RkaW9fZ2VuX3RlbXBuYW1lLgoJKiBzdGRpby9saWJpby5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC90ZW1wbmFtZS5jOiBBZGQgbmV3IHBhcmFtZXRlcnMgYW5kIHVzZSB0aGVtIGluc3RlYWQKCW9mIHN0YXRpYyBidWZmZXIuCglEb24ndCByZXNldCBgaW5kZWNlcycgd2hlbiBQSUQgY2hhbmdlZCBiZXR3ZWVuIGNhbGxzLgoJRG9uJ3QgZmFpbCBmb3IgbG9uZyBydW5uaW5nIHByb2dyYW1zIHdoZW4gaW5kZXggY291bnRlciBvbmNlCglyZWFjaGVkIHRoZSBsaW1pdC4KCSogc3lzZGVwcy9zdHViL3RlbXBuYW1lLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vdGVtcG5hbS5jOiBQcm92aWRlIGxvY2FsIGJ1ZmZlciBhcyBleHRyYSBhcmd1bWVudAoJdG8gX19zdGRpb19nZW5fdGVtcG5hbWUuICBUaGlzIG1ha2VzIHRoaXMgZnVuY3Rpb24gcmVlbnRyYW50LgoJKiBzdGRpby1jb21tb24vdG1wZmlsZS5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3RlbXB0ZXN0LmM6IFByb3ZpZGUgZXh0cmEgYXJndW1lbnQgdG8KCV9fc3RkaW9fZ2VuX3RlbXBuYW1lLgoJKiBtYW51YWwvZmlsZXN5cy50ZXhpOiBEZXNjcmliZSB0bXBuYW1fciBhbmQgYWRkIGNvbW1lbnRzIGFib3V0CglyZWVudHJhbmN5IG9mIHRoZSBmdW5jdGlvbnMuCgoJKiBpbmV0L3JjbWQuYzogRml4ZWQgYWRkcmVzcyBsZW5ndGggaGFuZGxpbmcuCgoJKiBzeXNkZXBzL3Bvc2l4L21rLXN0ZGlvbGltLmM6IENvdW50IGZpbmFsIFwwIGJ5dGUgaW4gTF90bXBuYW0gdmFsdWUuCgoJKiB0aW1lL3N0cmZ0aW1lLmM6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGFsdF9kaWdpdHMgYW5kCgllbmRfYWx0X2RpZ2l0cy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zeXNpbmZvLmg6IENvcnJlY3QgcHJvdG90eXBlIG5hbWVzCglmb3IgZ2V0X25wcm9jcyBhbmQgZ2V0X25wcm9jc19jb25mLgoJKiBzeXNkZXBzL2dlbmVyaWMvc3lzL3N5c2luZm8uaDogTGlrZXdpc2UuCgoJKiBzdGRsaWIvdGVzdC1jYW5vbi5jOiBGaW5hbGx5IGRvIHRoZSByaWdodCBmaXguCgoJKiBtaXNjL01ha2VmaWxlOiBPbmx5IGNvbXBpbGUgZm9yY2Utd3JhcHBlciB3aGVuIGNvbXBpbGluZwoJcmVlbnRyYW50IGxpYmMuCgpGcmkgU2VwIDI3IDAzOjQ5OjU2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCUFkZCBzdXBwb3J0IGZvciBjYW5jZWxhYmxlIHN5c3RlbSBjYWxscy4KCgkqIGNzdS9pbml0ZmluaS5jOiBNYWtlIGluIGNydGkubyByZWZlcmVuY2UgdG8gc3ltYm9sCglfX2xpYmNfZm9yY2VfY2FuY2VsX3dyYXBwZXIgd2hlbiBjb21waWxpbmcgcmVlbnRyYW50IHZlcnNpb24uCgkqIG1pc2MvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGZvcmNlLXdyYXBwZXIuCgkqIG1pc2MvZm9yY2Utd3JhcHBlci5jOiBOZXcgZmlsZS4KCgkqIHBvc2l4L3N5c3RlbS5jOiBSZW5hbWUgZnVuY3Rpb24gdG8gX19saWJjX3N5c3RlbSBhbmQgbWFrZSBzeXN0ZW0KCWEgd2VhayBhbGlhcy4KCSogc3lzZGVwcy9zdHViL3N5c3RlbS5jOiBMaWtld2lzZS4KCSogcG9zaXgvd2FpdC5jOiBSZW5hbWUgZnVuY3Rpb24gdG8gX19saWJjX3dhaXQgYW5kIG1ha2UgX193YWl0IGEKCXdlYWsgYWxpYXMuICBEZS1BTlNJLWZ5LgoJKiBzeXNkZXBzL3N0YW5kYWxvbmUvcmVhZC5jOiBSZW5hbWUgZnVuY3Rpb24gdG8gX19saWJjX3JlYWQgYW5kCgltYWtlIF9fcmVhZCBhIHdlYWsgYWxpYXMuCgkqIHN5c2RlcHMvc3R1Yi9yZWFkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0YW5kYWxvbmUvd3JpdGUuYzogUmVuYW1lIGZ1bmN0aW9uIHRvIF9fbGliY193cml0ZSBhbmQKCW1ha2UgX193cml0ZSBhIHdlYWsgYWxpYXMuCgkqIHN5c2RlcHMvc3R1Yi93cml0ZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3RjZHJhaW4uYzogUmVuYW1lIGZ1bmN0aW9uIHRvIF9fbGliY190Y2RyYWluIGFuZAoJbWFrZSB0Y2RyYWluIGEgd2VhayBhbGlhcy4KCSogc3lzZGVwcy91bml4L2JzZC90Y2RyYWluLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL2JzZDQuNC90Y2RyYWluLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi90Y2RyYWluLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90Y2RyYWluLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL2JzZDQuNC93YWl0LmM6IFJlbmFtZSBmdW5jdGlvbiB0byBfX2xpYmNfd2FpdAoJYW5kIG1ha2UgX193YWl0IGEgd2VhayBhbGlhcy4KCSogc3lzZGVwcy9zdHViL3dhaXRwaWQuYzogUmVuYW1lIGZ1bmN0aW9uIHRvIF9fbGliY193YWl0cGlkIGFuZAoJbWFrZSBfX3dhaXRwaWQgYSB3ZWFrIGFsaWFzLgoJKiBzeXNkZXBzL3VuaXgvYnNkL2JzZDQuNC93YWl0cGlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC93YWl0cGlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zeXN2NC93YWl0cGlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvY29tbW9uL3BhdXNlLmM6IFJlbmFtZSBmdW5jdGlvbiB0byBfX2xpYmNfcGF1c2UKCWFuZCBtYWtlIHBhdXNlIGEgd2VhayBhbGlhcy4gIERlLUFOU0ktZnkuCgoJKiBzeXNkZXBzL3VuaXgvc3lzY2FsbHMubGlzdDogQ2hhbmdlIG5hbWUgZm9yIGNsb3NlLCBmY250bCwgZnN5bmMsCglsc2Vlaywgb3BlbiwgcmVhZCwgYW5kIHdyaXRlIHRvIGhhdmUgX19saWJjXyBwcmVmaXggYW5kIG1ha2Ugb2xkCgluYW1lcyBhIHdlYWsgYWxpYXMuCgkqIHN5c2RlcHMvdW5peC9tbWFuL3N5c2NhbGxzLmxpc3Q6IExpa2V3aXNlIGZvciBtc3luYy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdDogTGlrZXdpc2UgZm9yIG5hbm9zbGVlcC4KCgkqIGlvL2NyZWF0LmM6IERlLUFOU0ktZnkuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0OiBBZGQgcGF1c2UuCgpUaHUgU2VwIDI2IDE5OjE1OjU1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbWlzYy9tbnRlbnQuaDogQWRkIE1OVFRZUEVfKiBhbmQgTU5UT1BUXyogbWFjcm9zLgoJUmVwb3J0ZWQgYnkgSGFucyBHcm9ibGVyIDxncm9iaEBub2xpYW4uZWUuc3VuLmFjLnphPi4KClRodSBTZXAgMjYgMTQ6NDA6MTAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3Bvc2l4L3BhdGhjb25mLmM6IFBhc3MgZGVzY3JpcHRvciBmb3IganVzdCBvcGVuZWQgZmlsZQoJdG8gZnBhdGhjb25mLgoJUmVwb3J0ZWQgYnkgTWFydGluIHZvbiBMb2V3aXMgPG1hcnRpbkBtaXJhLmlzZG4uY3MudHUtYmVybGluLmRlPi4KClRodSBTZXAgMjYgMDQ6MDI6NDMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jZmlsZS5jICh3cml0ZV9sb2NhbGVfZGF0YSk6IEFsbG9jYXRlIHJvb20KCWV2ZW4gZm9yIGZpbGUgbmFtZSBmb3IgTENfTUVTU0FHRVMgbG9jYWxlLgoJKGxvY2FmaWxlX3JlYWQpOiBgdG9rX2VyYScgbXVzdCBiZSBoYW5kbGVkIGFzIGEgc3RyaW5nIGxpc3QuCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC10aW1lLmM6IEZpbmlzaCBjb3JyZWN0aW9uIG9mIGhhbmRsaW5nIGBlcmEnLgoJKiBsb2NhbGUvQy10aW1lLmMgKF9ubF9DX0xDX1RJTUUpOiBBZGQgaW5pdGlhbGl6ZXIgZm9yIG5ldyBmaWVsZHMuCgkqIGxvY2FsZS9jYXRlZ29yaWVzLmRlZjogQWRkIHBvc3Rsb2FkIGZ1bmN0aW9uIGZvciBMQ19USU1FLgoJKiBsb2NhbGUvc2V0bG9jYWxlLmM6IE1ha2UgbG9jayBnbG9iYWwgYW5kIHJlbmFtZSB0bwoJX19saWJjX3NldGxvY2FsZV9sb2NrLgoJKiBsb2NhbGUvbG9jYWxlaW5mby5oIChzdHJ1Y3QgZXJhX2VudHJ5KTogTmV3IHR5cGUuICBVc2VkIGluIHN0cmZ0aW1lLgoJQWRkIHByb3RvdHlwZXMgZm9yIF9ubF9nZXRfZXJhX2VudHJ5IGFuZCBfbmxfZ2V0X2FsdF9kaWdpdC4KCSogbG9jYWxlL2xjLXRpbWUuYyAoX25sX3Bvc3Rsb2FkX3RpbWUpOiBOZXcgZnVuY3Rpb24uICBJbml0aWFsaXplCglsYXp5IGludGlhbGl6YXRpb24uCgkoX25sX2dldF9lcmFfZW50cnkpOiBOZXcgZnVuY3Rpb24uICBSZXR1cm4gZXJhIGVudHJ5IHdoaWNoIGNvcnJlc3BvbmRzCgl0byBnaXZlbiB5ZWFyLgoJKF9ubF9nZXRfYWx0X2RpZ2l0KTogTmV3IGZ1bmN0aW9uLiAgUmV0dXJuIHN0cmluZyB3aXRoIGFsdGVybmF0ZQoJZGlnaXQgcmVwcmVzZW50YXRpb24gZm9yIGdpdmVuIG51bWJlci4KCgkqIHRpbWUvc3RyZnRpbWUuYyAoc3RyZnRpbWUpOiBVc2UgX25sX2dldF9hbHRfZGlnaXQgdG8gZ2V0CglzdHJpbmcgcmVwcmVzZW50aW5nIGFsdGVybmF0ZSBkaWdpdCBub3RhdGlvbi4KCldlZCBTZXAgMjUgMTc6MzE6NTUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL2dlbmVyaWMvd2FpdHN0YXR1cy5oICh1bmlvbiB3YWl0KTogQWRkIHdfc3RhdHVzIGZpZWxkLgoJUmVwb3J0ZWQgYnkgSGFucyBHcm9ibGVyIDxncm9iaEBub2xpYW4uZWUuc3VuLmFjLnphPi4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBQcm9jZXNzIExEX1BSRUxPQUQgYmVmb3JlIGxvYWRpbmcKCWxkLnNvLnByZWxvYWQuICBTdWdnZXN0ZWQgYnkgRGF2aWQgRW5nZWwgPGRhdmlkQGVsby5vZHMuY29tPi4KCldlZCBTZXAgMjUgMTM6MTA6NTcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjYXRnZXRzL2dlbmNhdC5jIChtYWluKTogQ2hhbmdlIC0tdmVyc2lvbiBhZ2FpbiBiZWNhdXNlIFJNUyB3YW50cwoJdGhlIHBhY2thZ2UgbmFtZSBpbiBwYXJlbnRoZXNlcy4KCSogZGIvbWFrZWRiLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmM6IExpa2V3aXNlLgoKVHVlIFNlcCAyNCAwMToyODowNSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VmaWxlICgkKG9ianBmeClzeXNkLWRpcnMpOiBEZXBlbmQgb24gU3ViZGlycyBmaWxlcywgY29tbWFuZAoJcmV3cml0dGVuLgoJKCQob2JqcGZ4KXZlcnNpb24taW5mby5oKTogRGVwZW5kIG9uIEJhbm5lciBmaWxlcywgY29tbWFuZAoJcmV3cml0dGVuLgoKV2VkIFNlcCAyNSAwMjo0NDo0MSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NsZWVwLmM6IE5ldyBmaWxlLiAgQmFzZWQgb24gbmFub3NsZWVwLgoKVHVlIFNlcCAyNCAyMTo0NjowMiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHNoYWRvdy9sY2twd2RmLmMgKFBXRF9MT0NLRklMRSk6IENoYW5nZSB0byAvZXRjL2xvY2sucHdkIHRvIGJlCglvbiB0aGUgc2FtZSBkZXZpY2UgYXMgdGhlIHBhc3N3b3JkIGZpbGUuCgkqIHNoYWRvdy9zaGFkb3cuaCAoc3RydWN0IHNwd2QpOiBDaGFuZ2UgdHlwZSBvZiBudW1lcmljIGZpZWxkcwoJdG8gYGxvbmcgaW50JyBzaW5jZSB0aGVyZSB2YWx1ZSBhcmUgZGF5cywgbm90IHNlY29uZHMuCgkqIHNoYWRvdy9wdXRzcGVudC5jOiBDaGFuZ2UgY2FzdHMgZnJvbSB0aW1lX3QgdG8gYGxvbmcgaW50Jy4KCSogc2hhZG93L3NnZXRzcGVudF9yLmMgKExJTkVfUkVBREVSKTogTGlrZXdpc2UuCgpNb24gU2VwIDIzIDIzOjA1OjI0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZXJybm9zLmg6IERlZmluZSBfX3NldF9lcnJubyB0byBtYWtlCglzdXJlIHRoZSB0aHJlYWQgc3BlY2lmaWMgdmFyaWFibGUgaXMgc2V0IGFzIHdlbGwgYXMgdGhlIGdsb2JhbAoJdmFyaWFibGUuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2Vycm5vcy5hd2s6IERlZmluZSBtYWNybyBmb3Igc291cmNlIGNvZGUKCWNvbXBhdGliaWxpdHkuCgkqIHN5c2RlcHMvc3R1Yi9lcnJub3MuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvYnNkNC40L2Vycm5vcy5oOiBMaWtld2lzZS4KCgkqIHNoYWRvdy9wdXRzcGVudC5jOiBEb24ndCBpbmNsdWRlIDxlcnJuby5oPi4KCgkqIGRpcmVudC9zY2FuZGlyLmMgKHNjYW5kaXIpOiBVc2UgX19zZXRfZXJybm8gdG8gc2V0IGVycm5vCgl2YXJpYWJsZS4KCSogZWxmL2RsLWxvYWQuYyAob3Blbl9wYXRoKTogTGlrZXdpc2UuCgkqIGluZXQvcmNtZC5jIChyY21kKTogTGlrZXdpc2UuCgkocnJlc3Zwb3J0KTogTGlrZXdpc2UuCgkqIGludGwvZGNnZXR0ZXh0LmMgWyFfX3NldF9lcnJub106IERlZmluZSBfX3NldF9lcnJuby4KCShEQ0dFVFRFWFQpOiBVc2UgX19zZXRfZXJybm8gdG8gc2V0IGVycm5vIHZhcmlhYmxlLgoJKiBpby9mdHMuYyAoZnRzX29wZW4pOiBMaWtld2lzZS4KCShmdHNfY2xvc2UpOiBMaWtld2lzZS4KCShmdHNfcmVhZCk6IExpa2V3aXNlLgoJKGZ0c19zZXQpOiBMaWtld2lzZS4KCShmdHNfY2hpbGRyZW4pOiBMaWtld2lzZS4KCShmdHNfYnVpbGQpOiBMaWtld2lzZS4KCShmdHNfc3RhdCk6IExpa2V3aXNlLgoJKiBpby9mdHcuYyAoZnR3X2Rpcik6IExpa2V3aXNlLgoJKGZ0dyk6IExpa2V3aXNlLgoJKiBpby9nZXR3ZC5jIChnZXR3ZCk6IExpa2V3aXNlLgoJKiBpby9sb2NrZi5jIChsb2NrZik6IExpa2V3aXNlLgoJKiBsaWJpby9saWJpb1AuaCBbRUlOVkFMXTogVXNlIF9fc2V0X2Vycm5vIHRvIGRlZmluZSBNQVlCRV9TRVRfRUlOVkFMLgoJKiBsaWJpby9pb2Zkb3Blbi5jIChfSU9fZmRvcGVuKTogVXNlIE1BWUJFX1NFVF9FSU5WQUwgdG8gZXJybm8uCgkqIGxpYmlvL2lvZ2V0ZGVsaW0uYyAoX0lPX2dldGRlbGltKTogTGlrZXdpc2UuCgkqIGxpYmlvL2ZpbGVvcHMuYyAoX0lPX2ZpbGVfb3Blbik6IFVzZSBfX3NldF9lcnJubyB0byBzZXQgZXJybm8KCXZhcmlhYmxlLgoJKiBsaWJpby9pb2ZnZXRwb3MuYyAoX0lPX2ZnZXRwb3MpOiBMaWtld2lzZS4KCSogbGliaW8vaW9mc2V0cG9zLmMgKF9JT19mc2V0cG9zKTogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZnRlbGwuYyAoX0lPX2Z0ZWxsKTogTGlrZXdpc2UuCgkqIGxvY2FsZS9sb2FkbG9jYWxlLmMgKF9ubF9sb2FkX2xvY2FsZSk6IExpa2V3aXNlLgoJKiBsb2NhbGUvbmxfbGFuZ2luZm8uYyAobmxfbGFuZ2luZm8pOiBMaWtld2lzZS4KCSogbG9jYWxlL3NldGxvY2FsZS5jIChFUlJPUl9SRVRVUk4pOiBMaWtld2lzZS4KCSogbG9naW4vZ2V0dXRpZF9yIChfX2dldHV0aWRfcik6IExpa2V3aXNlLgoJKiBsb2dpbi9nZXR1dGxpbmVfciAoX19nZXR1dGxpbmVfcik6IExpa2V3aXNlLgoJKiBsb2dpbi9sb2dpbi5jICh0dHlfbmFtZSk6IExpa2V3aXNlLgoJKiBsb2dpbi9vdXR1dGxpbmVfci5jIChfX3B1dHV0bGluZV9yKTogTGlrZXdpc2UuCgkqIG1hbGxvYy9tYWxsb2MuYyAobW9yZWNvcmUpOiBMaWtld2lzZS4KCSogbWlzYy9lZmdjdnRfci5jIChmY3Z0X3IpOiBMaWtld2lzZS4KCSogbWlzYy9oc2VhcmNoX3IuYyAoaGNyZWF0ZV9yKTogTGlrZXdpc2UuCgkoaGRlc3Ryb3lfcik6IExpa2V3aXNlLgoJKGhzZWFyY2hfcik6IExpa2V3aXNlLgoJKiBuc3MvbnNzd2l0Y2guYyAoX19uc3NfY29uZmlndXJlX2xvb2t1cCk6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2Rucy9kbnMtaG9zdC5jIChfbnNzX2Ruc19nZXRob3N0YnluYW1lMl9yKTogTGlrZXdpc2UuCgkoX25zc19kbnNfZ2V0aG9zdGJ5YWRkcl9yKTogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLmMgKGludGVybmFsX2dldGVudCk6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmMgKHBhcnNlX2xpc3QpOiBMaWtld2lzZS4KCSogcG9zaXgvY29uZnN0ci5jIChjb25mc3RyKTogTGlrZXdpc2UuICBEZS1BTlNJLWZ5LgoJKiBwb3NpeC9leGVjdnAuYyAoZXhlY3ZwKTogTGlrZXdpc2UuCgkqIHBvc2l4L2dsb2IuYzogRGVmaW5lIF9fc2V0X2Vycm5vLgoJKGdsb2IpOiBVc2UgX19zZXRfZXJybm8gdG8gc2V0IGVycm5vIHZhcmlhYmxlLgoJKGdsb2JfaW5fZGlyKTogTGlrZXdpc2UuCgkqIHB3ZC9nZXRwdy5jOiBMaWtld2lzZS4gRGUtQU5TSS1meS4KCSogcHdkL3B1dHB3ZW50LmM6IExpa2V3aXNlLgoJKiByZXNvbHYvaW5ldF9uZXRfbnRvcC5jOiBMaWtld2lzZS4KCSogcmVzb2x2L2luZXRfbmV0X3B0b24uYzogTGlrZXdpc2UuCgkqIHJlc29sdi9pbmV0X25ldGEuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9pbmV0X250b3AuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9pbmV0X3B0b24uYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfcXVlcnkuYyAocmVzX3NlYXJjaCk6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX3NlbmQuYyAoQWVycm9yKTogTGlrZXdpc2UuCgkoUGVycm9yKTogTGlrZXdpc2UuCgkocmVzX3NlbmQpOiBMaWtld2lzZS4KCSogc2lnbmFsL3NpZ2FkZHNldC5jOiBMaWtld2lzZS4gIERlLUFOU0ktZnkuCgkqIHNpZ25hbC9zaWdkZWxzZXQuYzogTGlrZXdpc2UuCgkqIHNpZ25hbC9zaWdlbXB0eS5jOiBMaWtld2lzZS4KCSogc2lnbmFsL3NpZ2ZpbGxzZXQuYzogTGlrZXdpc2UuCgkqIHNpZ25hbC9zaWdpc21lbS5jOiBMaWtld2lzZS4KCSogc3RkaW8vZmNsb3NlLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mZW9mLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mZXJyb3IuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ZmbHVzaC5jOiBMaWtld2lzZS4KCSogc3RkaW8vZmdldGMuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ZnZXRwb3MuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ZnZXRzLmM6IExpa2V3aXNlLgoJKiBzdGRpby9maWxlbm8uYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ZtZW1vcGVuLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mb3Blbi5jOiBMaWtld2lzZS4KCSogc3RkaW8vZnB1dGMuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ZyZWFkLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mcmVvcGVuLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mc2Vlay5jOiBMaWtld2lzZS4KCSogc3RkaW8vZnNldHBvcy5jOiBMaWtld2lzZS4KCSogc3RkaW8vZnRlbGwuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2Z3cml0ZS5jOiBMaWtld2lzZS4KCSogc3RkaW8vZ2V0ZGVsaW0uYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2dldHMuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2dsdWUuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ludGVybmFscy5jOiBMaWtld2lzZS4KCSogc3RkaW8vbWVtc3RyZWFtLmM6IExpa2V3aXNlLgoJKiBzdGRpby9zZXR2YnVmLmM6IExpa2V3aXNlLgoJKiBzdGRpby91bmdldGMuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL3Zzc2NhbmYuYzogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi9yZWctcHJpbnRmLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi92ZnNjYW5mLmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvY2Fub25pY2FsaXplLmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvbXNvcnQuYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9yYW5kb21fci5jOiBMaWtld2lzZS4KCSogc3RkbGliL3N0cmZtb24uYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9zdHJ0b2QuYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9zdHJ0b2wuYzogTGlrZXdpc2UuCgkqIHN1bnJwYy9iaW5kcnN2cHJ0LmM6IExpa2V3aXNlLgoJKiB0aW1lL2FzY3RpbWUuYzogTGlrZXdpc2UuCgkqIHRpbWUvbG9jYWx0aW1lLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvbWJydG93Yy5jOiBMaWtld2lzZS4KCSogd2NzbWJzL21ic25ydG93Y3MuYzogTGlrZXdpc2UuCgkqIHdjc21icy9tYnNydG93Y3MuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3J0b21iLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzbnJ0b21icy5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc3J0b21icy5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc3Rvay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL2Z0aW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvcHR5LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvc2V0ZW52LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvc3BlZWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy9zeXNkLXN0ZGlvLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvdW5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy92bGltaXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2tfc3RhbmRhcmQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfbGRleHAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfbGRleHBmLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2xkZXhwbC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19zY2FsYi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19zY2FsYmYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfc2NhbGJsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2R1cDIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvZXVpZGFjY2Vzcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9mZG9wZW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvZmxvY2suYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvZnBhdGhjb25mLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2dldGN3ZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9nZXR0aW1lb2ZkYXkuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvaXNhdHR5LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2lzZmR0eXBlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2tpbGxwZy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9ta3N0ZW1wLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L21rdGVtcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9wYXRoY29uZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9waXBlc3RyZWFtLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3JlbW92ZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9yZW5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvc2lnaW50ci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9zaWduYWwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvc2lnc3VzcGVuZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9zaWd2ZWMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvc2xlZXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvc3lzY29uZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9zeXN0ZW0uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvdGVtcG5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvdHJ1bmNhdGUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvdHR5bmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC90dHluYW1lX3IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvd2FpdDMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3RhbmRhbG9uZS9jbG9zZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdGFuZGFsb25lL29wZW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3RhbmRhbG9uZS9yZWFkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0YW5kYWxvbmUvd3JpdGUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9fX2xvbmdqbXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9hY2NlcHQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9hY2Nlc3MuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9hY2N0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvYWRqdGltZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2FsYXJtLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvYmluZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2Jyay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2NoZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvY2hmbGFncy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2NobW9kLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvY2hvd24uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9jaHJvb3QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9jbG9jay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2Nsb3NlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvY2xvc2VkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9jb25uZWN0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvY3Rlcm1pZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2N1c2VyaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9kaXJmZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2R1cC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2R1cDIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9ldWlkYWNjZXNzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZXhlY3ZlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZmNoZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZmNoZmxhZ3MuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9mY2htb2QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9mY2hvd24uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9mY250bC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2Zkb3Blbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2ZleGVjdmUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9mbG9jay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2ZvcmsuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9mcGF0aGNvbmYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9mc3RhdGZzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZnN5bmMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9mdHJ1bmNhdGUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9meHN0YXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRjd2QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRkZW50cy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldGRvbWFpbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldGR0c3ouYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRlZ2lkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0ZW52LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0ZXVpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldGdpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldGdyb3Vwcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldGhvc3RpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldGhvc3RuYW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0aXRpbWVyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0bG9naW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRsb2dpbl9yLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0cGFnZXNpemUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRwZWVybmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHBpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHBwaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRwcmlvcml0eS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHJsaW1pdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHJ1c2FnZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHNpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHNvY2tuYW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0c29ja29wdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHN5c3N0YXRzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0dGltZW9mZGF5LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0dWlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ3R0eS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2lvY3RsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvaXNhdHR5LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvaXNmZHR5cGUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9raWxsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIva2lsbHBnLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbGluay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2xpc3Rlbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2xzZWVrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbHhzdGF0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbWFkdmljZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21rZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbWtmaWZvLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbWtzdGVtcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21rdGVtcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21tYXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9tb3JlY29yZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21wcm90ZWN0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbXNnY3RsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbXNnZ2V0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbXNncmN2LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbXNnc25kLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbXN5bmMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9tdW5tYXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9uYW5vc2xlZXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9uaWNlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbmxpc3QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9vcGVuLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvb3BlbmRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3BhdGhjb25mLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcGF1c2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9waXBlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcGlwZXN0cmVhbS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3BvbGwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9wcm9maWwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9wdHJhY2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9wdXRlbnYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yYWlzZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3JlYWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZWFkZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcmVhZGxpbmsuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZWFkdi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3JlYm9vdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3JlY3YuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZWN2ZnJvbS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3JlY3Ztc2cuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZW1vdmUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZW5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZXZva2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZXdpbmRkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9ybWRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NicmsuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zY2hlZF9nZXRwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2NoZWRfZ2V0cy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NjaGVkX3ByaW1heC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NjaGVkX3ByaW1pbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NjaGVkX3JyX2dpLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2NoZWRfc2V0cC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NjaGVkX3NldHMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zY2hlZF95aWVsZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NlZWtkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZWxlY3QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZW1jdGwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZW1nZXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZW1vcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NlbmQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZW5kbXNnLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2VuZHRvLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0ZG9tYWluLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0ZWdpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldGVudi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldGV1aWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRnaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRncm91cHMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRob3N0aWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRob3N0bmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldGl0aW1lci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldGptcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldGxvZ2luLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0cGdpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldHByaW9yaXR5LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0cmVnaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRyZXVpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldHJsaW1pdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldHNpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldHNvY2tvcHQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXR0aW1lb2ZkYXkuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXR1aWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaG1hdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NobWN0bC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NobWR0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2htZ2V0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2h1dGRvd24uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaWdhY3Rpb24uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaWdhbHRzdGFjay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ2Jsb2NrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2lnaW50ci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ25hbC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ3BhdXNlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2lncGVuZGluZy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ3Byb2NtYXNrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2lncmV0dXJuLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2lnc2V0bWFzay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ3N0YWNrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2lnc3VzcGVuZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ3ZlYy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NsZWVwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc29ja2V0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc29ja2V0cGFpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NzdGsuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zdGF0ZnMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zdGltZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3N0dHkuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zd2Fwb2ZmLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc3dhcG9uLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc3ltbGluay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3N5bmMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zeXNjYWxsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc3lzY29uZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3N5c2Qtc3RkaW8uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zeXN0ZW0uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90Y2RyYWluLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvdGNmbG93LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvdGNmbHVzaC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3RjZ2V0YXR0ci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3RjZ2V0cGdycC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3Rjc2VuZGJyay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3Rjc2V0YXR0ci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3Rjc2V0cGdycC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3RlbGxkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90ZW1wbmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3RpbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90aW1lcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3RydW5jYXRlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvdHR5bmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3R0eW5hbWVfci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3VhbGFybS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3VsaW1pdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3VtYXNrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvdW5saW5rLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvdXNsZWVwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvdXN0YXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi91dGltZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3V0aW1lcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3ZoYW5ndXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi93YWl0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvd2FpdDMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi93YWl0NC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3dhaXRwaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi93cml0ZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3dyaXRldi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3hta25vZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3hzdGF0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvY2xvc2VkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9meHN0YXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9nZXRsb2dpbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2dldGxvZ2luX3IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ta2Rpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L25pY2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ubGlzdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L29wZW5kaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9yZWFkZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvcm1kaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zdGltZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3hta25vZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3hzdGF0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL2lzYXR0eS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zZXRlZ2lkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3NldGV1aWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc2V0c2lkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3NpZ2FjdGlvbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zaWdwcm9jbWFzay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zaWdzdXNwZW5kLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3RjZmxvdy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC90Y2ZsdXNoLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3RjZ2V0YXR0ci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC90Y3NldGF0dHIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdGltZXMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdWxpbWl0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvY29tbW9uL2x4c3RhdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2NvbW1vbi90Y3NlbmRicmsuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3NldHJsaW1pdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc2V0dGltZW9mZGF5LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zaWdhY3Rpb24uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3RjZmxvdy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvdGNmbHVzaC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvdGNnZXRhdHRyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi90Y3NlbmRicmsuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3Rjc2V0YXR0ci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC91bHRyaXg0L3N5c2NvbmYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2lyaXg0L2dldHByaW9yaXR5LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9pcml4NC9zZXRwcmlvcml0eS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWRqdGltZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ2V0aG9zdGlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nZXRob3N0bmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ2V0c3lzc3RhdHMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3B0cmFjZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3BlZWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3VsaW1pdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc3lzdjQvc2lnYWN0aW9uLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zeXN2NC9zeXNjb25mLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3N1bi9tNjhrL3NpZ3RyYW1wLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3N1bi9zcGFyYy9zaWd0cmFtcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zdW4vc3Vub3M0L3NwZWVkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3N1bi9zdW5vczQvdGNzZXRhdHRyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pb3Blcm0uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvYnJrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3NpZ2FjdGlvbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9icmsuYzogTGlrZXdpc2UuCgoJKiBzdW5ycGMvY2xudF90Y3AuYzogUHJvdGVjdCBkZWNsYXJhdGlvbiBvZiBlcnJubyBieSAjaWZuZGVmLgoJKiBzdW5ycGMvY2xudF91ZHAuYzogTGlrZXdpc2UuCgkqIHN1bnJwYy9iaW5kcnN2cHJ0LmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvcG1fZ2V0bWFwcy5jOiBMaWtld2lzZS4KCSogc3VucnBjL3BtYXBfcm10LmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvc3ZjLmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvc3ZjX3J1bi5jOiBMaWtld2lzZS4KCSogc3VucnBjL3N2Y190Y3AuYzogTGlrZXdpc2UuCgkqIHN1bnJwYy9zdmNfdWRwLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9nZW5lcmljL3N0cnRvay5jOiBEb24ndCBjaGVjayBhcmd1bWVudCwganVzdCBjcmFzaC4KCSogc3lzZGVwcy9nZW5lcmljL3N0cnRva19yLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9zdHViL3N0YXJ0LmM6IE1ha2UgX19lcnJubyBhIHN0cm9uZyBhbGlhcyBvZiBlcnJuby4KCSogc3lzZGVwcy91bml4L3N0YXJ0LmM6IExpa2V3aXNlLiAgRGUtQU5TSS1meS4KCSogc3lzZGVwcy91bml4L3NwYXJjL3N0YXJ0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0YW5kYWxvbmUvbTY4ay9tNjgwMjAvc3RhcnQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2lyaXg0L3N0YXJ0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3VsdHJpeDQvbWlwcy9zdGFydC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNkZXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLlM6IExpa2V3aXNlLgoKTW9uIFNlcCAyMyAxNzo1NDo1NyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGNhdGdldHMvZ2VuY2F0LmMgKG1haW4pOiBQdXQgcGFja2FnZSBuYW1lIGluIC0tdmVyc2lvbiBtZXNzYWdlCglpbiBwYXJhbnRoZXNlcy4gIFJlcG9ydGVkIGJ5IEppbSBNZXllcmluZy4KCSogZGIvbWFrZWRiLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9pMzg2L2ZwdS9fX21hdGguaCAodGFuKTogTWFrZSBzdXJlIGdjYyBrbm93cyB3ZSB1c2UKCXR3byByZWdpc3RlcnMuICBQYXRjaCBieSBKb2huIEJvd21hbi4KClNhdCBTZXAgMjEgMTU6MDg6MjUgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL21hY2gvbGliYy1sb2NrLmg6IEZpeCBjb21tZW50LgoJKiBzeXNkZXBzL3N0dWJzL2xpYmMtbG9jay5oOiBMaWtld2lzZS4KClNhdCBTZXAgMjEgMTM6NTA6NDAgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBsaWJpby9nZW5vcHMuYyAoX0lPX2luaXQpIFtfSU9fTVRTQUZFX0lPXTogRGVyZWZlcmVuY2UgcG9pbnRlcgoJdG8gbG9jayB3aGVuIHBhc3NpbmcgaXQgdG8gX19saWJjX2xvY2tfaW5pdCBtYWNyby4KCShfSU9fZGVmYXVsdF9maW5pc2gpIFtfSU9fTVRTQUZFX0lPXTogRGVyZWZlcmVuY2UgcG9pbnRlciB0byBsb2NrCgl3aGVuIHBhc3NpbmcgaXQgdG8gX19saWJjX2xvY2tfZmluaSBtYWNyby4KClNhdCBTZXAgMjEgMTQ6MzU6NDAgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2RlcC5oIChTWVNDQUxMX0VSUk9SX0hBTkRMRVIpCglbX0xJQkNfUkVFTlRSQU5UXTogQWRkIG1pc3Npbmcgc2VtaWNvbG9uLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuUzogTW92ZSBpbmNsdXNpb24gb2YKCXN5c2RlcC5oIHRvIHRoZSB0b3Agb3V0c2lkZSBvZiAjaWZuZGVmIFBJQy4gIERvbid0IGluY2x1ZGUgZXJybm9zLmguCglVc2UgdGhlIEVOVFJZIG1hY3JvLgoKU2F0IFNlcCAyMSAxNDozMzo0MSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGxpYmlvL01ha2VmaWxlOiBNYWtlIGBhbGwnIHRoZSBkZWZhdWx0IHRhcmdldC4KCSogcG8vTWFrZWZpbGU6IExpa2V3aXNlLgoKTW9uIFNlcCAyMyAxNTo0OTo0NyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGxpYi90ZXN0LWNhbm9uLmM6IENvcnJlY3QgcGF0Y2ggZnJvbSBUaHUgU2VwIDEyIDIzOjAxOjE2IDE5OTYuCglJIGFwcGxpZWQgaXQgaW5jb3JyZWN0bHkuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc19zY2FsYm4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc19zY2FsYm5mLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L3Nfc2NhbGJubC5jOiBMaWtld2lzZS4KCk1vbiBTZXAgMjMgMDM6MDA6MTAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzaGFkb3cvc2dldHNwZW50X3IuYyAoTElORV9QQVJTRVIpOiBBY2NlcHQgZW1wdHkgOXRoIGZpZWxkLgoJUGF0Y2ggYnkgTklJQkUgWXV0YWthIDxnbmlpYmVAbXJpLmNvLmpwPi4KCgkqIHNoYWRvdy9zZ2V0c3BlbnRfci5jIChMSU5FX1BBUlNFUik6IERvbid0IGFjY2VwdCBhbnkgY2hhcnMgYWZ0ZXIKCTl0aCBmaWVsZC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIFskKHN1YmRpcik9PW1pc2NdCgkoc3lzZGVwX2hlYWRlcnMpOiBBZGQgc3lzL2RlYnVncmVnLmgsIHN5cy9rZC5oLCBzeXMvc291bmRjYXJkLmgsCglhbmQgc3lzL3Z0LmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9kZWJ1Z3JlZy5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL2tkLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvc291bmRjYXJkLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvdnQuaDogTmV3IGZpbGUuCglSZXBvcnRlZCBieSBOSUlCRSBZdXRha2EgPGduaWliZUBtcmkuY28uanA+LgoKVGh1IFNlcCAyNiAxMzo0NDoyOSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogaHVyZC9NYWtlZmlsZSAoaW5zdGFsbGVkLXN1bnJwYy1oZWFkZXJzKTogTmV3IHZhcmlhYmxlLgoJKHN1bnJwYy1oZWFkZXJzKTogTmV3IHZhcmlhYmxlLgoJKGluc3RhbGwtaGVhZGVycy1ub3N1YmlyKTogRGVwZW5kIG9uICQoaW5zdGFsbGVkLXN1bnJwYy1oZWFkZXJzKSwKCW5vdCBqdXN0IDxycGMvbmV0ZGIuaD4uCgkoJChpbnN0YWxsZWQtc3VucnBjLWhlYWRlcnMpKTogUHJvdmlkZSBydWxlIGZvciBhbGwgb2YgdGhlc2UuCgpNb24gU2VwIDIzIDE1OjMxOjA0IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBodXJkL01ha2VmaWxlICgkKGluY2x1ZGVkaXIpL3JwYy9uZXRkYi5oKTogVGhlcmUgaXMgbm8gbWFrZQoJdmFyaWFibGUgYHRvcF9zcmNkaXInIGluIGxpYmM7IHVzZSAkKC4uKSBpbnN0ZWFkLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvTWFrZWZpbGUgKHJ0bGQtaW5zdGFsbGVkLW5hbWUpOiBEZWxldGUgc3BlY2lhbAoJZGVmaW5pdGlvbi4gIEl0IHdhcyBhICpNaXN0YWtlKi4gIChXaXRoIGEgY2FwaXRhbCBNLikKCgkqIHN5c2RlcHMvbWFjaC9nZXRzeXNzdGF0cy5jIChfX2dldF9ucHJvY3MpOiBSZW5hbWVkIGZyb20KCV9fZ2V0X25wcm9jLgoJKF9fZ2V0X25wcm9jc19jb25mKTogUmVuYW1lZCBmcm9tIF9fZ2V0X25wcm9jX2NvbmYuCgpTdW4gU2VwIDIyIDE1OjE4OjQxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaW5pdC1maXJzdC5jOiBEZWZpbmUgZHVtbXkgZnVuY3Rpb24KCWBfZGxfc3RhcnQnIHNvIHRoYXQgbGlua2luZyBmYWlscyBpZiB0aGlzIGZpbGUgc2hvdWxkIGV2ZXIgYmUgdXNlZAoJaW4gbGQuc28uCgoJKiBjYXRnZXRzL2dlbmNhdC5jIChtYWluKTogQ2hhbmdlIC0tdmVyc2lvbiBtZXNzYWdlIGFjY29yZGluZyB0bwoJUk1TJyBsYXN0IHN0YW5kYXJkIHJldmlzaW9uLgoJKiBkYi9tYWtlZGIuYzogTGlrZXdpc2UuCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGUuYzogTGlrZXdpc2UuCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGVkZWYuYzogTGlrZXdpc2UuCgpTYXQgU2VwIDIxIDIzOjQyOjM5IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvZ2V0c3lzc3RhdHMuYzogSW5jbHVkZSA8c3lzL3N5c2luZm8uaD4uCgkoX19nZXRfbnByb2NfY29uZik6IE5ldyBmdW5jdGlvbi4KClN1biBTZXAgMjIgMDM6NDA6NTIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiByZXNvbHYvcmVzb2x2Lmg6IFVwZGF0ZSB0byBiaW5kLTQuOS41LVQ0Qi4KCSogcmVzb2x2L2Jhc2U2NC5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19kZWJ1Zy5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19xdWVyeS5jOiBMaWtld2lzZS4KCSogcmVzb2x2L2dldGhuYW1hZGRyLmM6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2Rucy9kbnMtaG9zdC5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19jb21wLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX3NlbmQuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9hcnBhL25hbWVzZXIuaDogTGlrZXdpc2UuICBBdHRlbnRpb246IE1BWEROQU1FIGlzIG11Y2gKCWhpZ2hlciBub3cuCgoJKiByZXNvbHYvQmFubmVyOiBOZXcgZmlsZS4KCSogcmVzb2x2L01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIEJhbm5lci4KClNhdCBTZXAgMjEgMTk6MTU6MjQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3N0dWIvZ2V0c3lzc3RhdHMuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldHN5c3N0YXRzLmM6IE5ldyBmaWxlLgoKCSogbWlzYy9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBzeXMvc3lzaW5mby5oLgoJKHJvdXRpbmVzKTogQWRkIGdldHN5c3N0YXRzLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSBbJChzdWJkaXIpPT1taXNjXQoJKHN5c2RlcF9oZWFkZXJzKTogUmVtb3ZlIHN5cy9zeXNpbmZvLmguCgkqIHN5c2RlcHMvZ2VuZXJpYy9zeXMvc3lzaW5mby5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3N5c2luZm8uaDogQWRkIHByb3RvdHlwZSBmb3IgZ2V0X25wcm9jcywKCWdldF9waHlzX3BhZ2VzLCBhbmQgZ2V0X2F2cGh5c19wYWdlcy4KCgkqIG1pc2MvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIG1udGVudF9yLgoJKiBtaXNjL21udGVudF9yLmM6IE5ldyBmaWxlLgoJKiBtaXNjL21udGVudC5jOiBSZW1vdmUgYWxsIGZ1bmN0aW9ucyBidXQgZ2V0bW50ZW50IGFuZCB1c2UKCV9fZ2V0bW50ZW50X3IuCgkqIG1pc2MvbW50ZW50Lmg6IEFkZCBwcm90b3R5cGUgZm9yIF9fZ2V0bW50ZW50X3IuCgkqIG1pc2MvZnN0YWIuYzogVXNlIF9fZ2V0bW50ZW50X3IgZnVuY3Rpb24gaW5zdGVhZCBvZiBnZXRtbnRlbnQuCglUaGlzIHdpbGwgbm90IGNsb2JiZXIgdGhlIHN0YXRlIGluIGdldG1udGVudC4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9jb25mbmFtZS5oOiBBZGQgX1NDX1BST0NFU1NPUlNfQ09ORiwKCV9TQ19OUFJPQ0VTU09SU19PTkxOLCBfU0NfUEhZU19QQUdFUywgX1NDX0FWUEhZU19QQUdFUywKCV9TQ19BVEVYSVRfTUFYLCBhbmQgX1NDX1BBU1NfTUFYLgoJKiBzeXNkZXBzL3N0dWIvc3lzY29uZi5jOiBBZGQgaGFuZGxpbmcgX1NDX1BST0NFU1NPUlNfQ09ORiBhbmQKCV9TQ19OUFJPQ0VTU09SU19PTkxOIGJ5IGNhbGxpbmcgX19nZXRfbnByb2NzLCBfU0NfUEhZU19QQUdFUyBieQoJY2FsbGluZyBfX2dldF9waHlzX3BhZ2VzLCBfU1lfQVZQSFlTX1BBR0VTIGJ5IGNhbGxpbmcKCV9fZ2V0X2F2cGh5c19wYWdlcywgX1NDX0FURVhJVF9NQVggYW5kIF9TQ19QQVNTX01BWC4KCSogc3lzZGVwcy9wb3NpeC9zeXNjb25mLmM6IExpa2V3aXNlLgoJKiBwb3NpeC9nZXRjb25mLmMgKHZhcnMpOiBBZGQgX05QUk9DRVNTT1JTX0NPTkYsIF9OUFJPQ0VTU09SU19PTkxOLAoJX1BIWVNfUEFHRVMsIF9BVlBIWVNfUEFHRVMsIEFURVhJVF9NQVgsIGFuZCBQQVNTX01BWCBlbnRyaWVzLgoKU2F0IFNlcCAyMSAwNToyMDozNiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHZlcnNpb24uaCAoVkVSU0lPTik6IEJ1bXAgdG8gMS45NS4KCgkqIE1ha2UtZGlzdCAoK3RzcmNzKTogRG9uJ3QgZmlsdGVyIG91dCBmaWxlcyBpbiBzdWJkaXJzIHdoaWNoCgltYXRjaCBmaWxlcyBpbiB0aGUgc3lzZGVwcyBoaWVyYWNoeSAod2VsY29tZSBiYWNrLAoJc3lzL3N5c2NhbGwuaCEpLgoKCSogcmVzb2x2L01ha2VmaWxlIChsaWJyZXNvbHYtcm91dGluZXMpOiBSZW1vdmUgZ2V0bmV0bmFtYWQuCgpTYXQgU2VwIDIxIDAzOjAwOjE5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL2xvYWRsb2NhbGUuYyAoX25sX2ZyZWVfbG9jYWxlKTogUmVtb3ZlIGZ1bmN0aW9uLgoJKiBsb2NhbGUvbG9jYWxlaW5mby5oOiBSZW1vdmUgcHJvdG90eXBlIGZvciBfbmxfZnJlZV9sb2NhbGUuCgkqIGxvY2FsZS9zZXRsb2NhbGUuYyAoc2V0bG9jYWxlKTogRG9uJ3QgZnJlZSBsb2NhbGUgZGF0YSBvZgoJY2F0ZWdvcmllcyB3aGljaCBzdWNjZWVkZWQgdG8gbG9hZCBhZnRlciBhIHdyb25nIG9yIG1pc3NpbmcgZGF0YQoJZmlsZSB3YXMgb2JzZXJ2ZWQuCgoJKiBsb2NhbGUvc2V0bG9jYWxlIChzZXRsb2NhbGUpOiBJbml0aWFsaXplIE5FV05BTUUgY29ycmVjdGx5IHNvCgl0aGF0IGl0IHdvcmtzIGV2ZW4gd2hlbiB0aGUgbG9jYWxlIGRhdGEgaXMgbm90IHVzZWQuCgoJKiBzdGRsaWIvcmFuZG9tX3IuYzogRml4IHR5cG8gaW4gY29tbWVudC4KCSogc3RkbGliL2RyYW5kNDgtaXRlci5jOiBMaWtld2lzZS4KCSogc3RkbGliL2RyYW5kNDguYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9lcmFuZDQ4LmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvanJhbmQ0OC5jOiBMaWtld2lzZS4KCSogc3RkbGliL2xjb25nNDguYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9scmFuZDQ4LmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvbXJhbmQ0OC5jOiBMaWtld2lzZS4KCSogc3RkbGliL25yYW5kNDguYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9yYW5kb20uYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9zZWVkNDguYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9zcmFuZDQ4LmM6IExpa2V3aXNlLgoJKiBtaXNjL3NlYXJjaC5oOiBMaWtld2lzZS4KCSogbWlzYy9oc2VhcmNoLmM6IExpa2V3aXNlLgoJKiBtaXNjL2hzZWFyY2hfci5jOiBMaWtld2lzZS4KClNhdCBTZXAgMjEgMTQ6NTk6MjIgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9nZXRzeXNzdGF0cy5jOiBOZXcgZmlsZS4KCgkqIHNobGliLXZlcnNpb25zICgqLSotZ251Kik6IEluY3JlbWVudCBsaWJjIHRvIDAuMiBmb3IgdXBjb21pbmcKCWJpbmFyeSBkaXN0cmlidXRpb24uCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9NYWtlZmlsZSAocnRsZC1pbnN0YWxsZWQtbmFtZSk6IFByb3ZpZGUKCWRlZmluaXRpb24gdG8gb3ZlcnJpZGUgZGFuZ2Vyb3VzIG9uZSBpbiBNYWtlY29uZmlnLgoKCSogaHVyZC9NYWtlZmlsZSAoaW5zdGFsbC1oZWFkZXJzLW5vc3ViZGlyKTogSW5zdGFsbCA8cnBjL25ldGRiLmg+LgoJKCQoaW5jbHVkZWRpcikvcnBjL25ldGRiLmgpOiBOZXcgcnVsZS4KCVsgVGhpcyBpcyBYWFggdW50aWwgc3VucnBjIGNhbiBiZSBidWlsdDsgPHJwYy9uZXRkYi5oPiBpcwoJZXNzZW50aWFsLiBdCgpGcmkgU2VwIDIwIDE2OjA2OjA2IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9pMzg2L2luaXQtZmlyc3QuYyAoX2RsX3N0YXJ0KTogQWRkIGRlZmluaXRpb24sCgl0byBndWFyYW50ZWUgbGluayBlcnJvcnMgaWYgdGhpcyBpcyBpbmNsdWRlZCBpbiBsZC5zby4KClRodSBTZXAgMTkgMjE6NTA6NTUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3Bvc2l4L2dldHRpbWVvZmRheS5jIChfX2dldHRpbWVvZmRheSk6IFVzZSBsb2NhbHRpbWVfcgoJaW5zdGVhZCBvZiBsb2NhbHRpbWUuCglSZXBvcnRlZCBieSBNYXR0aGlhcyBVcmxpY2hzLgoKCSogc2hsaWItdmVyc2lvbnM6IFJlbW92ZSB2ZXJzaW9uIG51bWJlciBmb3IgbGliY3J5cHQuCgkqIGZlYXR1cmVzLmg6IERlZmluZSBfX1VTRV9SRUVOVFJBTlQgaWYgX1JFRU5UUkFOVCBvciBfVEhSRUFEX1NBRkUuCgkqIGxpYmMtc3ltYm9scy5oOiBEZWZpbmUgX1JFRU5UUkFOVCB3aGlsZSBjb21waWxpbmcgbGliYy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc3lzZGVwLlMgKF9fZXJybm9fbG9jYXRpb24pOgoJRGVmaW5lIGV2ZW4gaWYgIV9MSUJDX1JFRU5UUkFOVC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuUyAoX19lcnJub19sb2NhdGlvbik6CglMaWtld2lzZS4KCgkqIHN5c2RlcHMvcG9zaXgvY3VzZXJpZC5oOiBSZW1vdmUgcHJvdG90eXBlIGZvciBnZXRldWlkKCkuCglEZS1BTlNJLWZ5LgoKCSogTWFrZVRBR1MgKCRQL2xpYmMucG90KTogR2VuZXJhdGUgY29ycmVjdGx5IGZvcm1lZCBoZWFkZXIuCgkqIHBvL2hlYWRlci5wb3Q6IENvcnJlY3QgdGl0bGUgbGluZS4KCSogcG8vbmwucG86IFVwZGF0ZS4KClRodSBTZXAgMTkgMTg6NTk6NTUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlY29uZmlnIChzb3ZlcnNpb25zLm1rKTogUHJlZmVyIHNoYXJlZCBsaWIgdmVyc2lvbiBudW1iZXJzCglpcyBhZGQgb25zIG92ZXIgdmVyc2lvbiBpbiBsaWJjIGl0c2VsZi4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc3lzZGVwLlM6IEluY2x1ZGUgPHN5c2RlcC5oPi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNkZXAuaDogUHJldmVudCBtdWx0aXBsZQoJaW5jbHVzaW9uLgoKCSogbGliaW8vaW9mZ2V0cy5jOiBVc2UgX19mbG9ja2ZpbGUgYW5kIF9fZnVubG9ja2ZpbGUgaW5zdGVhZCBvZgoJX0lPX2Zsb2NrZmlsZSBhbmQgX0lPX2Z1bmxvY2tmaWxlIHJlc3AuCgoJKiBsb2NhbGUvY2F0ZWdvcmllcy5kZWY6IFBhcnRseSBzdXBwb3J0IGZvciBjb3JyZWN0IGBlcmEnIGhhbmRsaW5nCglpbiBMQ19USU1FIGNhdGVnb3J5LgoJKiBsb2NhbGUvbGFuZ2luZm8uaDogTGlrZXdpc2UuCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC10aW1lLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvbG9jYWxlaW5mby5oOiBDaGFuZ2UgY29tbWVudCBhIGJpdC4KCgkqIG1hbGxvYy9tZW1hbGlnbi5jOiBEb24ndCB1c2UgZ290bywgbm90IG5lY2Vzc2FyeSBhbnltb3JlLgoKMTk5Ni0wOS0xOCAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiB0aW1lL21rdGltZS5jICh5ZGhtc190bV9kaWZmKTogIFdvcmsgY29ycmVjdGx5IGV2ZW4gaWYgeWVhcgoJaXMgbmVnYXRpdmUsIG9yIGlmIHRpbWVfdCBpcyB1bnNpZ25lZC4KCSogdGltZS9zdHJmdGltZS5jICh0bV9kaWZmKTogV29yayBjb3JyZWN0bHkgZXZlbiBpZiB0bV95ZWFyCglpcyBuZWFyIElOVF9NSU4uCgpUdWUgU2VwIDE3IDE2OjE0OjM0IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9tNjhrL2ZwdS9fX21hdGguaCAoX19pbmxpbmVfbWF0aG9wKTogQ2hhbmdlZCB0byBnZW5lcmF0ZQoJYWxsIHRocmVlIHZlcnNpb25zIG9mIHRoZSBtYXRoIGZ1bmN0aW9uLgoJKF9faW5saW5lX21hdGhvcGYsIF9faW5saW5lX21hdGhvcGwpOiBSZW1vdmVkLgoJKF9faW5saW5lX2Z1bmN0aW9ucyk6IE5ldyB0ZW1wb3JhcnkgZGVmaW5pdGlvbiBjb250YWluaW5nIGFsbAoJbm9uLXRyaXZpYWwgaW5saW5lIGZ1bmN0aW9ucy4KCldlZCBTZXAgMTggMDA6MjU6NDEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB0aW1lL3N0cmZ0aW1lLmMgKHN0cmZ0aW1lKTogVGhlIFRfRk1UX0FNUE0gc3RyaW5nIG1heSBiZSBlbXB0eS4KClR1ZSBTZXAgMTcgMjA6Mjc6MTggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBtYXRoL01ha2VmaWxlIChleHRyYS1saWJzLW90aGVycyk6IFVzZSAkKGV4dHJhLWxpYnMpIGluc3RlYWQKCW9mICQoZXh0cmEtbGliYykuCgpUdWUgU2VwIDE3IDE3OjA5OjQ0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9zdHViL2ZwdV9jb250cm9sLmg6IENvcnJlY3QgZW5kIG9mIGZpbGUgY29tbWVudC4KClR1ZSBTZXAgMTcgMDU6Mzk6MTggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRpby1jb21tb24vYnVnMy5jLCBzdGRpby1jb21tb24vYnVnNC5jLCBzdGRpby1jb21tb24vYnVnNS5jLAoJc3RkaW8tY29tbW9uL3Rlc3QtcG9wZW4uYzogUmVtb3ZlIHRlbXBvcmFyeSBmaWxlcyBhZnRlciB0ZXN0LgoJKiBzdGRpby1jb21tb24vYnVnNS5jOiBVc2UgYHN5c3RlbScgaW5zdGVhZCBvZiBgZXhlY2xwJy4KCVBhdGNoZXMgYnkgQW5kcmVhcyBKYWVnZXIuCgoJKiBzdGRpby1jb21tb24vYnVnNS5jOiBDcmVhdGUgc3RyaW5nIGZvciBgc3lzdGVtJyBhcmd1bWVudCB0bwoJbWFrZSBzdXJlIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGZpbGUgbmFtZXMgYXJlIHJlYWxseSBjb3JyZWN0LgoKU3VuIFNlcCAxNSAxMjo0Njo0NCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGNvbmZpZ3VyZS5pbjogSWYgJG9zIGNvbnRhaW5zIGEgaHlwaGVuIGFkZCB0aGUgcGFydCBiZWZvcmUgdGhlCgloeXBoZW4gdG8gJG9zdHJ5LgoKU3VuIFNlcCAxNSAxODoxNDowMiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvbTY4ay9mcHUvX19tYXRoLmggKF9faWVlZTc1NF9wb3csIF9faWVlZTc1NF9wb3dmLAoJX19pZWVlNzU0X3Bvd2wpOiBSZW5hbWUgbG9jYWwgdmFyaWFibGUgaSB0byBfX2kuCgkoX19pZWVlNzU0X2F0YW4yLCBfX2llZWU3NTRfYXRhbjJmLCBfX2llZWU3NTRfYXRhbjJsKTogTmV3IGlubGluZQoJZnVuY3Rpb25zLgoJKiBzeXNkZXBzL202OGsvZnB1L2VfYXRhbjIuYywgc3lzZGVwcy9tNjhrL2ZwdS9lX2F0YW4yZi5jLAoJc3lzZGVwcy9tNjhrL2ZwdS9lX2F0YW4ybC5jOiBOZXcgZmlsZXMuCgoxOTk2LTA5LTE1ICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIG1hbnVhbC90aW1lLnRleGk6IENoYW5nZSBgcmFuZ2UgWCB0byBZJyB0byBgcmFuZ2UgWCB0aHJvdWdoCglZJywgdG8gYXZvaWQgYW1iaWd1aXR5IGluIEVuZ2xpc2guCgoJKHN0cmZ0aW1lKTogTnVtYmVycyB0aGF0IGRvIG5vdCBoYXZlIGEgcmFuZ2UgaW5kaWNhdGVkIGFyZSBub3QgcGFkZGVkLgoJRGVzY3JpYmUgRSBhbmQgTyBtb2RpZmllcnMuCgklZywgJUcsICV1OiBOZXcgZm9ybWF0cy4KCSVDLCAleSwgJVk6IERlc2NyaWJlIGJlaGF2aW9yIG9uIG5lZ2F0aXZlIHllYXJzLgoJJWU6IEZpeCB0eXBvICh3YXMgbGFiZWxlZCAlZCkuCgklbCwgJVY6IEZpeCB0eXBvIGluIHJhbmdlLgoJJU0sICVTLCAlVSwgJXcsICVXOiBHaXZlIHJhbmdlcy4KCSVwOiBDbGFyaWZ5IGhvdyBub29uIGFuZCBtaWRuaWdodCBhcmUgaGFuZGxlZCBmb3IgQU0gYW5kIFBNLgoJJXM6IENsYXJpZnkgbGVhcCBzZWNvbmQgaGFuZGxpbmcuCgklcjogTm93IGxvY2FsZS1kZWZpbmVkLgoJJUMsICVELCAlZSwgJWgsICVuLCAlciwgJXQsICVUOiBTYXkgdGhhdCB0aGV5IGFyZSBQT1NJWC4yIGV4dGVuc2lvbnMuCgklejogU2F5IHRoYXQgaXQgaXMgYSBHTlUgZXh0ZW5zaW9uLgoJJVo6IFdvcmRpbmcgZml4LgoKCSogdGltZS9zdHJmdGltZS5jOiAoc3RyZnRpbWUpOgoJCSVWOiBGaXggbWlzaGFuZGxpbmcgb2Ygd2VlayBudW1iZXJzIG5lYXIgeWVhciBib3VuZGFyaWVzLgoJCSVnLCAlRzogTmV3IGZvcm1hdHMgKHN1Z2dlc3RlZCBieSBBcnRodXIgRGF2aWQgT2xzb24pLgoJCSVVLCAlVzogVXNlIGlubGluZSBleHByZXNzaW9uIGluc3RlYWQgb2YgYHdlZWsnIGZ1bmN0aW9uLgoJCSVDLCAleTogSGFuZGxlIG5lZ2F0aXZlIHllYXJzIHBvcnRhYmx5LgoJCSVDLCAlWTogVXNlIHdpZHRoIDEsIHNpbmNlIHZhbHVlcyBjYW4gYmUgYXJiaXRyYXJpbHkgd2lkZS4KCQklcjogVXNlIFRfRk1UX0FNUE0gZm9ybWF0IGlmIF9OTF9DVVJSRU5UIGlzIGRlZmluZWQuCgkJJXU6IE5ldyBQb3NpeC4yIGZvcm1hdC4KCQkldzogV2lkdGggaXMgMSwgbm90IDIuCgkoaXNvX3dlZWtfZGF5cyk6IE5ldyBmdW5jdGlvbiwgZm9yICVWLCAlRywgJWcuCgkod2Vlayk6IFJlbW92ZTsgaXQgZGlkbid0IGhhbmRsZSAlViBjb3JyZWN0bHkuCgkoX19pc2xlYXApOiBOZXcgbWFjcm8uCgkobWJzaW5pdCk6IFVzZSBhcmcsIHRvIHBhY2lmeSBHQ0MgLVdhbGwuCgoxOTk2LTA5LTEzICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIHRpbWUvc3RyZnRpbWUuYyAoc3RyZnRpbWUpOgoJSWYgdXNpbmcgdGhlIEdOVSBDIGxpYnJhcnksIGRvIG5vdCBib3RoZXIgdG8gY2hlY2sgZm9yCgltdWx0aWJ5dGUgZW5jb2RpbmdzLCBzaW5jZSB0aGV5J3JlIHNhZmUgaW4gZm9ybWF0cy4gIE90aGVyd2lzZToKCSAgLSBDaGVjayBmb3IgbXVsdGlieXRlIGVuY29kaW5ncyB3aGVuIGVuY291bnRlcmluZyBhbnkgY2hhcmFjdGVyIHRoYXQKCSAgaXMgbm90IGluIHRoZSBiYXNpYyBleGVjdXRpb24gY2hhcmFjdGVyIHNldCBvZiB0aGUgQyBTdGFuZGFyZC4KCSAgLSBVc2UgbWJybGVuIChpZiBhdmFpbGFibGUpIGluc3RlYWQgb2YgbWJsZW4sIHRvIGF2b2lkIG1vZGlmeWluZwoJICBtYmxlbidzIGludGVybmFsIHN0YXRlLgoJICAtIERvIG5vdCBhc3N1bWUgdGhhdCAnJScgY2Fubm90IGFwcGVhciBhcyB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEKCSAgbXVsdGlieXRlIGNoYXJhY3RlciBzZXF1ZW5jZSwgc2luY2UgdGhpcyBpcyBwb3NzaWJsZSB3aGVuIG5vdCBpbiB0aGUKCSAgaW5pdGlhbCBzaGlmdCBzdGF0ZS4KCShIQVZFX01CUkxFTiwgTVVMVElCWVRFX0lTX0ZPUk1BVF9TQUZFKTogRGVmaW5lIGlmIF9MSUJDIGlzIGRlZmluZWQuCgkoRE9fTVVMVElCWVRFKTogTmV3IG1hY3JvLgoJKDxjdHlwZS5oPik6IERvIG5vdCBpbmNsdWRlLgoJKDx3Y2hhci5oPik6IEluY2x1ZGUgaWYgSEFWRV9NQlJMRU4uCgkobWJzdGF0ZV90LCBtYnJsZW4sIG1ic2luaXQpOiBEZWZpbmUgaWYgISBIQVZFX01CUkxFTi4KCShtYnN0YXRlX3plcm8pOiBOZXcgY29uc3RhbnQuCgoxOTk2LTA5LTEyICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIHRpbWUvc3RyZnRpbWUuYyAoc3RyZnRpbWUpOgoJVXNlIGFuIGVtcHR5IHpvbmUgaWYgaXQgY2FuJ3QgYmUgZGV0ZXJtaW5lZDsgUE9TSVguMiByZXF1aXJlcyB0aGlzLgoJVXNlIHBsYWluIGBpbnQnIGZvciBwYWQgYW5kIG1vZGlmaWVyICh3aGljaCBub3cgY29udGFpbiBjaGFyIHZhbHVlKS4KCVVzZSBwbGFpbiBgaW50JyBmb3IgbnVtYmVyX3ZhbHVlLCB0byBwcmludCBuZWdhdGl2ZSB2YWx1ZXMgY29ycmVjdGx5LgoJVXNlIHBsYWluIGBpbnQnIGZvciBkaWdpdHM7IHRoZXJlIHdhcyBubyBuZWVkIHRvIG1ha2UgaXQgdW5zaWduZWQuCglJbml0aWFsaXplIHN1YmZtdCBjb25zaXN0ZW50bHkuCglSZW1vdmUgaW5jb3JyZWN0IGNvZGUgZm9yICVFQyBhbmQgJUV5OyB0aGV5IGFyZW4ndCBpbXBsZW1lbnRlZCB5ZXQuCglGb3IgJU8sIGlmIHRoZXJlIGlzIG5vIGFsdGVybmF0ZSBkaWdpdCwgb3V0cHV0IEFzY2lpIGluc3RlYWQgb2YgIiIuCglPdXRwdXQgdGhlIGAlJyBvZiBhbiB1bmtub3duIGZvcm1hdDsgdGhpcyBpcyBtb3N0IGxpa2VseSB0aGUgcmlnaHQKCXRoaW5nIHRvIGRvIGlmIGEgbXVsdGlieXRlIHN0cmluZyBoYXMgYmVlbiBtaXNwYXJzZWQuCgpUaHUgU2VwIDEyIDIzOjIzOjEzIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3RkaW8tY29tbW9uL3NjYW5mNy5jIChtYWluKTogUmVtb3ZlIGV4dHJhIGNvbnZlcnNpb24gZnJvbQoJcHJpbnRmIGZvcm1hdCBzdHJpbmcuCgpUaHUgU2VwIDEyIDIzOjAxOjE2IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3RkbGliL3Rlc3QtY2Fub24uYyAodGVzdHMpOiBSZW5hbWUgc3RydWN0dXJlIG1lbWJlciBmcm9tIGVycm5vCgl0byBlcnJvciwgYWxsIHVzZXMgY2hhbmdlZC4KClRodSBTZXAgMTIgMjA6MDg6MDYgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL202OGsvZnB1L19fbWF0aC5oIChfX2xkZXhwLCBfX2xkZXhwZiwgX19sZGV4cGwpOgoJUmVtb3ZlZC4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zX2xkZXhwLmMsIHN5c2RlcHMvbTY4ay9mcHUvc19sZGV4cGYuYywKCXN5c2RlcHMvbTY4ay9mcHUvc19sZGV4cGwuYzogUmVtb3ZlZCwgdXNlIGdlbmVyaWMgaW1wbGVtZW50YXRpb24KCWluc3RlYWQuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc19zY2FsYm4uYywgc3lzZGVwcy9tNjhrL2ZwdS9zX3NjYWxibmYuYywKCXN5c2RlcHMvbTY4ay9mcHUvc19zY2FsYm5sLmM6IFJlcGxhY2VkIHdpdGggb2xkIGNvbnRlbnRzIG9mCglzX2xkZXhwLmMsIHNfbGRleHBmLmMgYW5kIHNfbGRleHBsLmMsIHJlc3AuLCBzdWl0YWJseSBhZHB0ZWQuCgoJKiBzeXNkZXBzL202OGsvZnB1L19fbWF0aC5oIChfX2ZyZXhwLCBfX2ZyZXhwZiwgX19mcmV4cGwpOgoJUmV0dXJuIHZhbHVlIG11c3QgYmUgaW4gWzAuNSwgMSksIG5vdCBbMSwgMikuICBSZXBvcnRlZCBieSBDaHJpcwoJTGF3cmVuY2UuCgkoX19pbG9nYiwgX19pbG9nYmYsIF9faWxvZ2JsKTogQ2hlY2sgZm9yIGFyZ3VtZW50IGJlaW5nIHplcm8uCgkoX19zY2FsYm4sIF9fc2NhbGJuZiwgX19zY2FsYm5sKTogVXNlIHNlY29uZCBhcmd1bWVudCBkaXJlY3RseS4KClRodSBTZXAgMTIgMTk6NTk6MjQgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX2Fjb3NobC5jOiBGaXggdHlwb3MuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfY2JydGwuYzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KClRodSBTZXAgMTIgMTk6NTk6MjQgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX2Fjb3NobC5jOiBGaXggdHlwb3MuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfY2JydGwuYzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KClRodSBTZXAgMTIgMTk6NTY6MDcgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBpbmV0L2hlcnJuby5jIChfX2hfZXJybm9fbG9jYXRpb24pOiBGaXggcmV0dXJuIHR5cGUuCgpUaHUgU2VwIDE5IDIzOjM2OjE5IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBodXJkL2h1cmRpbml0LmMgKF9fbGliY19hcmd2KTogUHJvdmlkZSBjb21tb24gZGVjbC4KCShfaHVyZF9zZXRwcm9jKTogRG9uJ3QgZGVjbGFyZSBfX2xpYmNfYXJndiBoZXJlLgoKVHVlIFNlcCAxNyAxMDo1MTo1OCAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogbWFsbG9jL21lbWFsaWduLmMgKG1lbWFsaWduKTogT25seSBhY3F1aXJlIF9fbGliY19tYWxsb2NfbG9jawoJZm9yIGFjdHVhbCBtb2RpZmljYXRpb25zIHRvIGdsb2JhbCBzdGF0ZS4KCkZyaSBTZXAgMTMgMDE6MjE6MzYgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9NYWtlZmlsZSAoaW5jbHVkZXMpOiBBZGQgLUkkKGNvbW1vbi1vYmpwZngpbWFjaC8uCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlIChpbmNsdWRlcyk6IEFkZAoJLUkkKGNvbW1vbi1vYmpwZngpaHVyZC8uICBSZXBvcnRlZCBieSBNYXJjdXMgRGFuaWVscy4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zY2hlZGJpdHMuaCAoc3RydWN0IHNjaGVkX3BhcmFtKTogUmVuYW1lZCBmcm9tCglzdHJ1Y3Qgc2NoZWRfcGFyYW1zLgoJKiBzeXNkZXBzL3N0dWIvc2NoZWRfc2V0cC5jIChfX3NjaGVkX3NldHBhcmFtKTogc3RydWN0CglzY2hlZF9wYXJhbXMgLT4gc3RydWN0IHNjaGVkX3BhcmFtLgoJKiBzeXNkZXBzL3N0dWIvc2NoZWRfZ2V0cC5jIChfX3NjaGVkX2dldHBhcmFtKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zY2hlZF9zZXRzLmMgKF9fc2NoZWRfc2V0c2NoZWR1bGVyKTogTGlrZXdpc2UuCgpUaHUgU2VwIDEyIDIzOjU4OjI1IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvbGliYy1sb2NrLmggKF9fbGliY19jbGVhbnVwX3JlZ2lvbl9zdGFydCk6IEZpeAoJc3ludGF4IGVycm9yLgoKCSogc3RkaW8tY29tbW9uL01ha2VmaWxlOiBQdXQgbG9ja2ZpbGUgaW4gcm91dGluZXMKCXVuY29uZGl0aW9uYWxseS4KCURlZmluZSBfTVRfU0FGRV9JTyBpZiB1c2luZyBmb3IgbGliaW8gYW5kIGNvbXBpbGluZyByZWVudHJhbnQKCWxpYmMuCgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYyAoX19mbG9ja2ZpbGUsIF9fZnVubG9ja2ZpbGUpOiBEZWNsYXJlCgl0aGlzIGFsd2F5cywgbm90IGp1c3QgaWYgX0xJQkNfUkVFTlRSQU5ULgoJKF9fZnVubG9ja2ZpbGUpOiBEb24ndCB1c2Ugd2Vha19leHRlcm4gZm9yIHRoaXMgb25lOwoJX19saWJjX2NsZWFudXBfcmVnaW9uX2VuZCBtaWdodCBiZSBkZWZpbmVkIGFuZCB0aGUgdXNlIG9mCglfX2Z1bmxvY2tmaWxlIGNhbid0IGJlIHByb3RlY3RlZCB0aGUgd2F5IHRoZSB1c2Ugb2YgX19mbG9ja2ZpbGUKCWNhbiBiZS4KCkZyaSBTZXAgMTMgMDQ6MzM6MDggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzY2hlZC5oOiBOZXcgZmlsZS4gIEhlbHBlciB0byBhY2Nlc3MgcG9zaXgvc2NoZWQuaC4KCSogcG9zaXgvc2NoZWQuaDogQ2hhbmdlIGBzY2hlZF9wYXJhbXMnIHRvIGBzY2hlZF9wYXJhbScgdG8gZm9sbG93CglQT1NJWC40LgoKVGh1IFNlcCAxMiAyMDoxMjo0MCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRiL21ha2VkYi5jICh1c2FnZSk6IFByaW50IGJ1ZyByZXBvcnQgYWRkcmVzcyBzZXBhcmF0ZWx5IHRvCgllYXNlIHRyYW5zbGF0b3JzIHRhc2suCgkqIGNhdGdldHMvZ2VuY2F0LmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIGxvY2FsZS9sb2NhbGUuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogbG9jYWxlL2xvY2FsZWRlZi5jICh1c2FnZSk6IExpa2V3aXNlLgoKMTk5Ni0wOS0xMiAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiB0aW1lL3N0cmZ0aW1lLmMgKG15X2xvY2FsdGltZV9yKTogRGVmaW5lIGlmICEgSEFWRV9MT0NBTFRJTUVfUiwKCWFuZCAjZGVmaW5lIGxvY2FsdGltZV9yIHRvIGl0LglJZiBfTElCQywgdXNlIF9fbG9jYWx0aW1lX3IgaW5zdGVhZC4KCShteV9nbXRpbWVfcik6IFNpbWlsYXIsIGV4Y2VwdCBpdCdzIG5vdCBuZWVkZWQgaWYgISBIQVZFX1RNX0dNVE9GRi4KClRodSBTZXAgMTIgMTQ6MDM6MjkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjcnlwdC9NYWtlZmlsZTogSW5jbHVkZSBNYWtlY29uZmlnIGFuZCBhZGQgY3J5cHQgb2JqZWN0IGRpciB0bwoJcnBhdGgtbGluayBzbyB0aGF0IHJ1bm5pbmcgdGhlIGNoZWNrIGZpbmRzIHRoZSBuZXcgbGlicmFyeS4KCSogY3J5cHQvY2VydC5jOiBwcm92aWRlIGNvcnJlY3QgcHJvdG90eXBlcyB0byBwcmV2ZW50IHdhcm5pbmdzLgoJUmVwb3J0ZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9NYWtlZmlsZSAocnBhdGgtbGluayk6IERvbid0IHVzZSArPSBiZWNhdXNlCglvbGQgYW5kIG5ldyB2YWx1ZSBtdXN0IGJlIGdsdWVkIHVzaW5nIGA6Jy4KCVJlcG9ydGVkIGJ5IE1hcmN1cyBEYW5pZWxzLgoKVGh1IFNlcCAxMiAxMjozMzo1MiAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvZGwtY2FjaGUuYzogRGVsZXRlIHNlY29uZCBjb3B5IG9mIGZpbGUKCWFjY2lkZW50YWxseSBhZGRlZCBvbi4KCgkqIHN5c2RlcHMvc3R1Yi9pbnRyLW1zZy5oOiBOZXcgZmlsZS4KCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jOiBJbmNsdWRlIDxsaWJjLWxvY2suaD4uCgkqIHN0ZGlvLWNvbW1vbi92ZnNjYW5mLmM6IEluY2x1ZGUgPGxpYmMtbG9jay5oPi4KCgkqIHN5c2RlcHMvbWFjaC9saWJjLWxvY2suaCAoX19saWJjX2NsZWFudXBfcmVnaW9uX3N0YXJ0KTogTmV3CgltYWNyby4KCShfX2xpYmNfY2xlYW51cF9yZWdpb25fZW5kKTogTmV3IG1hY3JvLgoKVGh1IFNlcCAxMiAwMzozNToyNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvRGlzdDogUmVtb3ZlIGluaXQtZmlyc3QuaC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9EaXN0OiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvRGlzdDogQWRkIGluaXQtZmlyc3QuaC4KCjE5OTYtMDktMTEgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogc3RyZnRpbWUuYyAoc3RyZnRpbWUpOgoJSGFuZGxlIEUgYW5kIE8gbW9kaWZpZXJzLCByZXF1aXJlZCBmb3IgUE9TSVguMiBhbmQgWFBHNC4KCURvbid0IHVzZSBzcHJpbnRmIHRvIGZvcm1hdCBudW1iZXJzOyB0aGlzIHdheSwgd2UgY2FuIGhhbmRsZSB0aW1lX3QKCWNvcnJlY3RseSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQncyBzaWduZWQuCglEb24ndCBkdW1wIGNvcmUgaWYgZm9ybWF0IGVuZHMgaW4gJS4KCUluIGRlZmF1bHQgJWMgZm9ybWF0LCB1c2UgJWUgaW5zdGVhZCBvZiAlZCwgZm9yIFBPU0lYLjIgY29tcGF0aWJpbGl0eS4KCUZvciAlejoKCQlVc2UgdG1fZ210b2ZmIGlmIGF2YWlsYWJsZS4KCQlPdXRwdXQgbm90aGluZyBpZiB0bV9pc2RzdCBpcyBuZWdhdGl2ZS4KCQlPdXRwdXQgY29ycmVjdCB2YWx1ZSBldmVuIGlmIGFyZyBpcyAxOTY5LTEyLTMxIDIzOjU5OjU5IFVUQy4KCQlEb24ndCBhc3N1bWUgdGhhdCBVVEMgb2Zmc2V0IGlzIGxlc3MgdGhhbiAyNCBob3VyczsKCQlQb3NpeCByZXF1aXJlcyBzdXBwb3J0IGZvciAyNCBob3VycywgYW5kIHRoZXJlJ3Mgbm8gcG9pbnQKCQlsaW1pdGluZyBpdCBhdCBhbGwuCgkoSEFWRV9UTV9HTVRPRkYsIFRZUEVfU0lHTkVELCBJTlRfU1RSTEVOX0JPVU5EKTogTmV3IG1hY3Jvcy4KCShDSEFSX0JJVCk6IERlZmluZSBpZiA8bGltaXRzLmg+IGRvZXNuJ3QuCgkodG1fZGlmZik6IE5ldyBmdW5jdGlvbi4KCShmbXQsIDxzdGRpby5oPik6IFJlbW92ZTsgbm8gbG9uZ2VyIHVzZWQuCgpUaHUgU2VwIDEyIDAyOjIxOjQ0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZGIvTWFrZWZpbGU6IEFkZCBleHRyYS1saWJzLW90aGVycyB2YXJpYWJsZSBzbyB0aGF0IHNoYXJlZAoJbGlicmFyeSBpcyBidWlsdCBpbiBgb3RoZXJzJyBwYXNzLgoJKiBlbGYvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBtYXRoL01ha2VmaWxlOiBMaWtld2lzZS4KCSogcmVzb2x2L01ha2VmaWxlOiBMaWtld2lzZS4KCgkqIE1ha2VmaWxlIChnZW5lcmF0ZWQpOiBBZGQgdmVyc2lvbi5pbmZvLmguCgoJKiB0aW1lL2NoZWNrdGFiLmF3azogTmV3IGZpbGUuICBGcm9tIEFETyA5NmsuCgkqIHRpbWUvaXNvMzE2Ni50YWI6IExpa2V3aXNlLgoJKiB0aW1lL3R6c2VsZWN0LmtzaDogTGlrZXdpc2UuCgkqIHRpbWUvem9uZS50YWI6IExpa2V3aXNlLgoKCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IENvcnJlY3QgY2xlYW51cCByZWdpc3RyYXRpb24uICBXZQoJY2Fubm90IHVzZSBhIG1hY3JvCgoxOTk2LTA5LTExICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIHRpbWUvdGltZS5oICh0bV9nbXRvZmYsIHRtX3pvbmUpOiBQcmVmaXggd2l0aCBgX18nIHVubGVzcwoJX19VU0VfQlNEOyB0aGlzIGlzIHJlcXVpcmVkIGZvciBBTlNJIEMgY29tcGF0aWJpbGl0eS4KCSogbWFudWFsL3RpbWUudGV4aTogUmVwbGFjZSBHTVQgYnkgVVRDLCBkYXlsaWdodCBzYXZpbmdzIGJ5CglkYXlsaWdodCBzYXZpbmcsIHRpbWV6b25lIGJ5IHRpbWUgem9uZS4KCVJld3JpdGUgZGVzY3JpcHRpb24gb2YgJVYgdG8gbWF0Y2ggSVNPIDg2MDEuCglGaXggVFogUG9zaXggc3RyaW5nIGV4YW1wbGUgZm9yIFVTIEVhc3Rlcm4gdGltZS4KCUV4cGxhaW4gdHpuYW1lWzFdIHdoZW4gRFNUIGlzbid0IHVzZWQuCglFeHBsYWluIHR6bmFtZSB3aGVuIG11bHRpcGxlIGFiYnJldmlhdGlvbnMgdXNlZCAoZS5nLiBFU1QvRVdUL0VEVCkuCglFeHBsYWluIHRoYXQgdGltZXpvbmUncyBzaWduIGlzIG9wcG9zaXRlIGZyb20gdG1fZ210b2ZmLCBhbmQgdGhhdAoJdGltZXpvbmUgbGFja3MgRFNUIGFkanVzdG1lbnQgd2hlcmVhcyB0bV9nbXRvZmYgaGFzIGl0LgoJRGVwcmVjYXRlIHR6bmFtZSBhbmQgdGltZXpvbmUuCgpUdWUgU2VwIDEwIDE0OjQ2OjE2IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCUltcGxlbWVudCBSb2xhbmQgTWNHcmF0aCdzIGlkZWEgb2YgaG93IHRvIHB1dCBhbiAuaW50ZXJwIGludG8KCXNoYXJlZCBsaWJyYXJpZXMuCgkqIGludGVycC5jOiBOZXcgZmlsZS4KCSogTWFrZXJ1bGVzIChpbnRlcnAtb2JqKTogTmV3IG9iamVjdCwgbGlua2VkIGludG8gZXZlcnkgc2hhcmVkCglsaWJyYXJ5LgoJKGNvbW1vbi1nZW5lcmF0ZWQpOiBBZGQgaW50ZXJwLnNvLgoJKENGTEFHUy1pbnRlcnAuYyk6IFBhc3MgbmFtZSBvZiBpbnRlcnByZXRlci4KClR1ZSBTZXAgMTAgMjE6MDk6MzUgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBkYi9NYWtlZmlsZTogRml4IHR5cG8uCgpUdWUgU2VwIDEwIDE5OjI5OjUzIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbnNzL2RiLU1ha2VmaWxlICgkKFZBUl9EQikvcGFzc3dkLmRiKTogTG9vayBmb3IgbXVsdGlwbGUKCW9jY3VyZW5jZXMgb2YgdGhlIHNhbWUgdWlkLCBhbmQgb25seSBnZW5lcmF0ZSBhIG1hcHBpbmcgZm9yIHRoZQoJZmlyc3Qgb25lLgoKVHVlIFNlcCAxMCAwMzoxNDo1OSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c3RlbS5jOiBOZXcgZmlsZSwgdG8gb3ZlcnJpZGUKCXN5c2RlcHMvdW5peC9zeXN0ZW0uYy4KClR1ZSBTZXAgMTAgMTU6MDU6NDAgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlZmlsZSAoYmVmb3JlLWNvbXBpbGUpOiBBZGQgdmVyc2lvbi1pbmZvLmgsIG5lZWRlZCB0byBidWlsZAoJdmVyc2lvbi5kLgoKVHVlIFNlcCAxMCAxNDoxNDozMyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLlM6IFJlbW92ZSBjaGVjayBmb3IKCUVXT1VMREJMT0NLLCBuZXZlciB0cnVlIG9uIExpbnV4LgoJKF9fZXJybm9fbG9jYXRpb24pOiBOZXcgZnVuY3Rpb24uCglbX0xJQkNfUkVFTlRSQU5UXTogU2V0IGVycm5vIHVzaW5nIF9fZXJybm9fbG9jYXRpb24gZnVuY3Rpb24uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLmggW1BJQ106IEFkZCBzZWNvbmQKCXN5c2NhbGxfZXJyb3IgaGFuZGxlciBmb3IgcmVlbnRyYW50IGxpYmMuCgpUdWUgU2VwIDEwIDEzOjI3OjQ5IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogZWxmL01ha2VmaWxlIChleHRyYS1vYmpzKTogQWRkIGV2YWwuc28gdG8gZ2V0IGRlcGVuZGVuY2llcy4KCldlZCBTZXAgMTEgMDQ6NDA6NTcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB0aW1lL3R6c2V0LmMgKF9fdHpuYW1lX2N1cl9tYXgpOiBVc2UgdHlwZSBgc2l6ZV90JyB0byBhdm9pZAoJd2FybmluZy4KCSogdGltZS90emZpbGUuYyAoY29tcHV0ZV90em5hbWVfbWF4KTogTGlrZXdpc2UuCgpXZWQgU2VwIDExIDAyOjU3OjMxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluOiBRdW90ZSAkYWRkX29ucyBhcmd1bWVudCBpbiBsb29wIHRvIGdlbmVyYXRlZAoJcHJlZmljZXMuCgpUdWUgU2VwIDEwIDIwOjQzOjQ1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZGIvbWFrZWRiLmM6IEluY2x1ZGUgPGxvY2FsZS5oPi4gIFJlcG9ydGVkIGJ5IEZpbGEgS29sb2RueS4KClR1ZSBTZXAgMTAgMTQ6NDI6MzkgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIGVsZi9kbC1jYWNoZS5jOiBSZW5hbWUgdG8gLi4uCgkqIHN5c2RlcHMvZ2VuZXJpYy9kbC1jYWNoZS5jOiAgLi4uIGhlcmUuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2RsLWNhY2hlLmM6IE5ldyBmaWxlLgoKCSogbWFjaC9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBgZXJyc3lzdGVtcy5hd2snLgoJKiBodXJkL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIGBOb3RlcycgYW5kIGBpbnRyLW1zZy5oJy4KCSogaHVyZC9odXJkaW50ci5hd2s6IERlbGV0ZSBmaWxlLiAgKE5vdCB1c2VkIGluIGFnZXMuKQoJKiBodXJkL2ludHItcnBjLmF3azogTGlrZXdpc2UuCgkqIGh1cmQvaW52b2tlLXRyYW5zLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9pMzg2L2xvbmdqbXAtY3R4LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9hbHBoYS9sb25nam1wLWN0eC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvbWlwcy9sb25nam1wLWN0eC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9pbml0LWZhdWx0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9taXBzL2luaXQtZmF1bHQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9pbml0LWZhdWx0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbG9uZ2ptcC1jdHguYzogTGlrZXdpc2UuCgpUdWUgU2VwIDEwIDEzOjQ5OjA4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW5ldC9oZXJybm8uYzogSW5pdGlhbGl6ZSBgaF9lcnJubycgc28gdGhhdCB3ZSBjYW4gcHJvdmlkZQoJYWxpYXMuCgoJKiBNYWtlZmlsZSAodmVyc2lvbi1pbmZvLmgpOiBGaXggdHlwbyBpbiBzaGVsbCBzY3JpcHQuCgoJKiBzeXNkZXBzL2kzODYvaTU4Ni9zdHJsZW4uUzogT3B0aW1pemUgc3RhcnR1cCBjb2RlIGEgYml0LgoJKiBzeXNkZXBzL2kzODYvaTU4Ni9zdHJjaHIuUzogTGlrZXdpc2UuCgpNb24gU2VwICA5IDIwOjMxOjI3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdmVyc2lvbi5jIChiYW5uZXIpOiBSZXBvcnQgdG8gYnVnLWdsaWJjQHByZXAgbm90IEBnbnUuCglSZXBvcnRlZCBieSBBbmRyZWFzIEphZWdlci4KCgkqIGxpYmlvL3N0ZGlvLmggWyFfX1VTRV9SRUVOVFJBTlRdOiBEb24ndCBkZWZpbmUgZ2V0YyBhcwoJX0lPX2dldGNfdW5sb2NrZWQuCglbX19VU0VfUkVFTlRSQU5UXTogRG9uJ3QgZGVmaW5lCgpNb24gU2VwICA5IDE1OjU5OjMyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9pMzg2L3N0cnJjaHIuYzogRml4IGJ1ZyB3aGVyZSBOVUwgYnl0ZSBpcyBub3QgcmVjb2duaXplZAoJd2hlbiBpdCBpcyB0aGUgdGhpcmQgYnl0ZSBpbiB0aGUgc3RyaW5nLiAgUmVwb3J0ZWQgYnkKCU5JSUJFIFl1dGFrYS4KCSogc3RyaW5nL3Rlc3Rlci5jOiBBZGQgdGVzdHMgZm9yIGFib3ZlIGJ1ZyB0byBzdHJsZW4sIHN0cmNociwgYW5kCglzdHJyY2hyIHRlc3RzLgoKRnJpIFNlcCAgNiAyMToyMzozMyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvbTY4ay9mcHUvZV9hY29zLmM6IERlYW5zaWRlY2xpemVkLiAgSW5jbHVkZQoJIm1hdGhfcHJpdmF0ZS5oIiB0byBnZXQgcHJvdG90eXBlLgoJKiBzeXNkZXBzL202OGsvZnB1L2VfZm1vZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9rX2Nvcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9rX3Npbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9rX3Rhbi5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbTY4ay9mcHUva19zaW4uYzogUmVtb3ZlIHVuZWVkZWQgaW5kaXJlY3Rpb24gb2YKCV9fbTgxX3UuCgkqIHN5c2RlcHMvbTY4ay9mcHUva190YW4uYzogTGlrZXdpc2UuCgpTdW4gU2VwICAxIDE4OjAxOjM1IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9tNjhrL2ZwdS9fX21hdGguaDogQ2hlY2sgZm9yIF9fTk9fTTgxX01BVEhfSU5MSU5FUwoJaW5zdGVhZCBvZiBfX05PX01BVEhfSU5MSU5FUy4KCShfX004MV9NQVRIX0lOTElORVMpOiBSZW5hbWVkIGZyb20gX19NQVRIX0lOTElORVMuCgkqIHN5c2RlcHMvbTY4ay9mcHUvZV9hY29zLmM6IERlZmluZSBfX05PX004MV9NQVRIX0lOTElORVMuCgkqIHN5c2RlcHMvbTY4ay9mcHUvZV9mbW9kLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L2tfY29zLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L2tfc2luLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L2tfdGFuLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L3NfYXRhbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zX2ZyZXhwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L3NfaWxvZ2IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc19pc2luZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zX2xkZXhwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L3NfbW9kZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9rX2Nvcy5jOiBVc2UgaW5saW5lIHZlcnNpb24gb2YgX19jb3MuCgkqIHN5c2RlcHMvbTY4ay9mcHUva19zaW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUva190YW4uYzogTGlrZXdpc2UuCgpNb24gU2VwICA5IDEyOjU1OjE0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jIChJTlRfRklFTERfTUFZQkVfTlVMTCk6IENoZWNrIGZvcgoJYXZhaWxhYmxlIGNoYXJhY3RlciBiZWZvcmUgY29udmVydGluZyBudW1iZXIgYW5kIHJldHVybiB3aXRoCgllcnJvciBpZiBub25lIGlzIGF2YWlsYWJsZS4KCkZyaSBTZXAgIDYgMjI6MDk6MDggMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbml0LWZpcnN0Lmg6IE5ldyBmaWxlLCBnZW5lcmljCglpbXBsZW1lbnRhdGlvbiBmb3IgYXJjaGl0ZWN0dXJlcyB3aGVyZSBwYXJhbWV0ZXJzIGFyZSBwYXNzZWQgb24KCXN0YWNrLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2luaXQtZmlyc3QuaDogUmVtb3ZlZC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9pbml0LWZpcnN0Lmg6IFJlbW92ZWQuCgpGcmkgU2VwICA2IDIyOjA1OjMyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogY29uZmlndXJlLmluOiBSZW1vdmUgdW5uZWVkZWQgc3lzbmFtZXMgZnJvYmJpbmcuCgpNb24gU2VwICA5IDA1OjI5OjA5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdGltZS96aWMuYzogVXBkYXRlIGZyb20gQURPIDk2bC4KCSogdGltZS9hZnJpY2E6IFVwZGF0ZSBmcm9tIEFETyA5NmsuCgkqIHRpbWUvYW50YXJjdGljYTogTGlrZXdpc2UuCgkqIHRpbWUvYXNpYTogTGlrZXdpc2UuCgkqIHRpbWUvYXVzdHJhbGlhOiBMaWtld2lzZS4KCSogdGltZS9ldXJvcGU6IExpa2V3aXNlLgoJKiB0aW1lL25vcnRoYW1lcmljYTogTGlrZXdpc2UuCgkqIHRpbWUvc291dGhhbWVyaWNhOiBMaWtld2lzZS4KCk1vbiBTZXAgIDkgMDU6MDM6NDcgMTk5NiAgTklJQkUgWXV0YWthICA8Z25paWJlQG1yaS5jby5qcD4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvaW5pdC1maXJzdC5oOiBXb3JrIGFyb3VuZCBidWdneQoJZ2NjIDw9IDIuNy4yLjEgd2hpY2ggb3B0aW1pemVzIGF3YXkgYWRkcmVzcyBvcGVyYXRpb25zIG9uIHdlYWsKCW9iamVjdHMuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmMgKElOVF9GSUVMRF9NQVlCRV9OVUxMKTogTmV3IG1hY3JvLgoJTGlrZSBJTlRfRklFTEQgYnV0IGFsc28gYWNjZXB0IG5vbi1leGlzdGluZyBmaWVsZC4KCSogc2hhZG93L3NnZXRzcGVudF9yLmMgKExJTkVfUEFSU0VSKTogVXNlIElOVF9GSUVMRF9NQVlCRV9OVUxMCglmb3IgbGFzdCBmb3VyIGZpZWxkcy4KCSogc2hhZG93L3B1dHNwZW50LmMgKHB1dHNwZW50KTogUHJpbnQgYDonIGFmdGVyIG51bWVyaWMgdmFsdWUuCgpNb24gU2VwICA5IDAyOjQyOjQ4IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogbGliaW8vc3RkaW8uaCAoQlVGU0laKTogRGVmaW5lIHVzaW5nIF9JT19CVUZTSVouCgpTdW4gU2VwICA4IDE2OjQzOjU2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZS1kaXN0OiBGaWx0ZXIgb3V0ICQoYWRkLW9ucykgZnJvbSAkKHN1YmRpcnMpLgoJRG9uJ3QgZGlzdHJpYnV0ZSBUQUdTIGZpbGVzLgoJKCQodGFyZGlyKS50YXIpOiBSZW1vdmUgZGlzdC50YXIgd2hlbiBhbGwgaXMgZG9uZS4KCSogbWFudWFsL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIGxpYmMuaW5mbyouCgkqIGxpYmlvL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIEJhbm5lci4KCSogaW5ldC9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBuZXRpbmV0L3RjcC5oLgoKCSogcmVzb2x2L01ha2VmaWxlIChsaWJyZXNvbHYtcm91dGluZXMpOiBBZGQgZ2V0bmV0bmFtYWRyLgoKCSogY3J5cHQtUkVBRE1FOiBSZW1vdmVkLgoJKiBnbnUtc3RhYnMuaDogUmVtb3ZlZC4KCgkqIHN5c2RlcHMvYWxwaGEvY29weXNpZ24uUzogUmVuYW1lZCB0by4uLgoJKiBzeXNkZXBzL2FscGhhL3NfY29weXNpZ24uUzogLi4udGhpcy4KCSogc3lzZGVwcy9hbHBoYS9mYWJzLlM6IFJlbmFtZWQgdG8uLi4KCSogc3lzZGVwcy9hbHBoYS9zX2ZhYnMuUzogLi4udGhpcy4KCgkqIHN5c2RlcHMvbTY4ay9pc2luZmwuYzogUmVuYW1lZCB0by4uLgoJKiBzeXNkZXBzL202OGsvc19pc2luZmwuYzogLi4udGhpcy4KCSogc3lzZGVwcy9tNjhrL2lzbmFubC5jOiBSZW5hbWVkIHRvLi4uCgkqIHN5c2RlcHMvbTY4ay9zX2lzbmFubC5jOiAuLi50aGlzLgoKCSogc3lzZGVwcy9zcGFyYy9zcXJ0LmM6IFJlbmFtZWQgdG8uLi4KCSogc3lzZGVwcy9zcGFyYy9lX3NxcnQuYzogLi4udGhpcy4gIEZ1bmN0aW9uIG5hbWUgbm93IGlzCglfX2llZWU3NTRfc3FydC4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9nZXRfc3RyLmM6IFJlbW92ZWQuCgoJKiBzeXNkZXBzL2llZWU3NTQvY2JydC5jOiBSZW1vdmVkLgoJKiBzeXNkZXBzL2llZWU3NTQvZHJlbS5jOiBSZW1vdmVkLgoJKiBzeXNkZXBzL2llZWU3NTQvbG9nYi5jOiBSZW1vdmVkLgoJKiBzeXNkZXBzL2llZWU3NTQvc3FydC5jOiBSZW1vdmVkLgoKCSogc3lzZGVwcy9zdHViL2NicnQuYzogUmVtb3ZlZC4KCSogc3lzZGVwcy9zdHViL2Nvcy5jOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3N0dWIvZHJlbS5jOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3N0dWIvaXNpbmYuYzogUmVtb3ZlZC4KCSogc3lzZGVwcy9zdHViL2lzaW5mbC5jOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3N0dWIvaXNuYW5sLmM6IFJlbW92ZWQuCgkqIHN5c2RlcHMvc3R1Yi9sb2diLmM6IFJlbW92ZWQuCgkqIHN5c2RlcHMvc3R1Yi9zaW4uYzogUmVtb3ZlZC4KCSogc3lzZGVwcy9zdHViL3NxcnQuYzogUmVtb3ZlZC4KCgkqIHN5c2RlcHMvdGFob2UvbG9nMTAuYzogUmVtb3ZlZC4KCgkqIHN5c2RlcHMvdmF4L2luZGV4LnM6IFJlbW92ZWQuCgkqIHN5c2RlcHMvdmF4L3JpbmRleC5zOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3ZheC9iY21wLnM6IFJlbW92ZWQuCgkqIHN5c2RlcHMvdmF4L2xvZzEwLmM6IFJlbW92ZWQuCgkqIHN5c2RlcHMvdmF4L2luZm5hbi5jOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3ZheC9EaXN0OiBBZGQgZmwuaC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL0Rpc3Q6IEFkZCBsbHNlZWsuUy4KCgkqIGluZXQvcmNtZC5jIChyY21kKTogTWFrZSBtZXNzYWdlcyBtb3JlIHVuaWZvcm0uCgpTdW4gU2VwICA4IDE0OjE1OjQyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcG8vZGUucG86IFVwZGF0ZS4KCSogcG8vZXMucG86IFVwZGF0ZS4KCSogcG8va28ucG86IFVwZGF0ZS4KCSogcG8vcGwucG86IE5ldyBmaWxlLgoJKiBwby9ubC5wbzogTmV3IGZpbGUuCgpTYXQgU2VwICA3IDE4OjQxOjE3IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogTWFrZWNvbmZpZyAoK2xpbmspOiBGaWx0ZXIgb3V0IHN0YXJ0LCBwcmUgJiBwb3N0aW5pdCBmcm9tIHRoZQoJZ2VuZXJpYyBkZXBlbmFuY2llcyBhcyB3ZWxsLgoJKiBSdWxlczogQWRkIHN0YXJ0LCBwcmUgJiBwb3N0aW5pdCB0byB0aGUgZGVwZW5kYW5jaWVzIG9mCgkkKG90aGVycykgYW5kICQodGVzdHMpLgoKCSogY29uZmlndXJlLmluOiBlbGZfZGlycyBtaXNzaW5nICJzeXNkZXBzIiBjb21wb25lbnQuCgpTdW4gU2VwICA4IDAyOjM2OjAyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL1NZU19saWJjLmMgKF9saWJjX2ludGxfZG9tYWlubmFtZSk6IENoYW5nZSB2YWx1ZSB0byAibGliYyIuCglUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBhbGwgb3RoZXIgR05VIHBhY2thZ2VzLiAgV2Ugc2hvdWxkbid0Cgl0YWtlIGNhcmUgZm9yIGEgcG9zc2libGUgY2xhc2guICBOb2JvZHkgd2lsbCBuYW1lIHRoZSBkb21haW4KCW9mIGEgcGFja2FnZSBsaWJjIGlmIGl0IGlzIG5vdCB0aGUgbGliYyBpdHNlbGYuCgkqIE1ha2VUQUdTICgkUC9TWVNfbGliYy5wb3QpOiBSZW5hbWUgdG8gJFAvbGliYy5wb3QuCgkqIHBvL01ha2VmaWxlIChkb21haW5uYW1lKTogQ2hhbmdlIHRvIGxpYmMuCgkoZGlzdHJpYnV0ZSk6IE5vdyBzaGlwIGxpYmMucG90LgoJKiBjYXRnZXRzL2dlbmNhdC5jICh1c2FnZSk6IFVzZSBgUEFDS0FHRScgZm9yIHBhY2thZ2UgbmFtZSBpbgoJdmVyc2lvbiBpbmZvcm1hdGlvbiBiYW5uZXIuCglDaGFuZ2UgYnVnIHJlcG9ydCBhZGRyZXNzIHRvIGJ1Zy1nbGliY0BwcmVwIG5vdCBAZ251LgoJKiBkYi9tYWtlZGIuYyAoUEFDS0FHRSk6IE5ldyBtYWNyby4gIFNldCB0byBfbGliY19pbnRsX2RvbWFpbi4KCShtYWluKTogVXNlIGBQQUNLQUdFJyBmb3IgcGFja2FnZSBuYW1lIGluIHZlcnNpb24gaW5mb3JtYXRpb24KCWJhbm5lci4KCUNoYW5nZSBidWcgcmVwb3J0IGFkZHJlc3MgdG8gYnVnLWdsaWJjQHByZXAgbm90IEBnbnUuCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGUuYyAobWFpbik6IFVzZSBgUEFDS0FHRScgZm9yIHBhY2thZ2UgbmFtZQoJaW4gdmVyc2lvbiBpbmZvcm1hdGlvbiBiYW5uZXIuCglDaGFuZ2UgYnVnIHJlcG9ydCBhZGRyZXNzIHRvIGJ1Zy1nbGliY0BwcmVwIG5vdCBAZ251LgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmMgKG1haW4pOiBMaWtld2lzZS4KCgkqIHZlcnNpb24uaCAoVkVSU0lPTik6IEJ1bXAgdG8gMS45NC4KCgkqIGxvY2FsZS9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBsb2NhbGUuYyBhbmQgbG9jYWxlZGVmLmMuCgpTYXQgU2VwICA3IDE0OjAwOjMzIDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBjYXRnZXRzL2NhdGdldHMuYyAoY2F0b3Blbik6IEFsbG9jYXRlIHNpemVvZigqcmVzdWx0KSBieXRlcwoJaW5zdGVhZCBvZiBzaXplb2YobmxfY2F0ZCkgKHdoaWNoIGlzIGp1c3QgYSBwb2ludGVyISkuCgpTYXQgU2VwICA3IDE5OjM5OjE5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUgKCQob2JqcGZ4KXZlcnNpb24taW5mby5oKTogR2VuZXJhdGUgZnJvbSBCYW5uZXIgZmlsZXMuCgkqIHZlcnNpb24uYyAoYmFubmVyKTogQWRkIGNvbnRlbnRzIG9mIHZlcnNpb24taW5mby5oIHRvIHN0cmluZy4KCgkqIE1ha2VydWxlczogSWYgJCgkKHN1YmRpciktdmVyc2lvbikgaXMgYXZhaWxhYmxlIG5hbWUgdmVyc2lvbmVkCglzaGFyZWQgbGlicmFyeSBhY2NvcmRpbmcgdG8gdGhpcyB2YWx1ZSBpbnN0ZWFkIG9mIGdsaWJjJ3MgdmVyc2lvbi4KCgkqIGxpYmlvL0Jhbm5lcjogTmV3IGZpbGUuCgoJKiBlbGYvZXZhbC5jIChmdW5jYWxsKTogV3JpdGUgZXJyb3IgbWVzc2FnZSBpbiBjYXNlIGZ1bmN0aW9uIGlzCglub3QgZm91bmQuCgkoZXZhbCk6IFJlY29nbml6ZSBgXycgaW4gbmFtZXMuCgpTYXQgU2VwICA3IDA1OjE1OjQ1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbGliaW8vaW9mZG9wZW46IEluaXRpYWxpemUgX2xvY2sgZmllbGQgb25seSBpZiBfSU9fTVRTQUZFX0lPLgoJKiBsaWJpby9pb2ZvcGVuOiBMaWtld2lzZS4KCSogbGliaW8vaW9mb3BuY29vay5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9wb3Blbi5jOiBMaWtld2lzZS4KCSogbGliaW8vaW92c3ByaW50Zi5jOiBMaWtld2lzZS4KCSogbGliaW8vaW92c3NjYW5mLmM6IExpa2V3aXNlLgoJKiBsaWJpby9tZW1zdHJlYW0uYzogTGlrZXdpc2UuCgkqIGxpYmlvL3Zhc3ByaW50Zi5jOiBMaWtld2lzZS4KCSogbGliaW8vdmRwcmludGYuYzogTGlrZXdpc2UuCgkqIGxpYmlvL3ZzbnByaW50Zi5jOiBMaWtld2lzZS4KClNhdCBTZXAgIDcgMDM6NTU6NDcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlY29uZmlnIChzb3ZlcnNpb25zLm1rKTogQWxzbyB1c2Ugc2hsaWItdmVyc2lvbnMgZmlsZXMKCWluIGFkZC1vbiBkaXJlY3Rvcmllcy4KCSogY29uZmlnLm1ha2UuaW4gKGNvbmZpZy1kZWZpbmVzKTogUmVtb3ZlLiAgTm90IHVzZWQgYW55bW9yZS4KCShkZWZpbmVzKTogTmV3IHZhcmlhYmxlLiAgSW5pdGlsaWF6ZWQgYnkgQERFRklORVNALgoJKiBjb25maWd1cmUuaW46IEFkZCBBQ19TVUJTVChERUZJTkVTKS4KCgkqIGxpYmlvL01ha2VmaWxlIChyb3V0aW5lcyk6IFdoZW4gY29tcGlsaW5nIHJlZW50cmFudCBsaWJjIGFkZAoJY2xlYXJlcnJfdSwgZmVvZl91LCBmZXJyb3JfdSwgZnB1dGNfdSwgZ2V0Y191LCBnZXRjaGFyX3UsCglpb2ZmbHVzaF91LCBwdXRjX3UsIHB1dGNoYXJfdSwgaW9mbG9ja2ZpbGUuCgkoQ1BQRkxBR1MpOiBBZGQgLURfSU9fTVRTQUZFX0lPIGZvciByZWVudHJhbnQgbGliYy4KCgkqIHN5c2RlcHMvc3R1Yi9saWJjLWxvY2suaDogQWRkIHN0dWJzIGZvciBfX2xpYmNfY2xlYW51cF9yZWdpb25fc3RhcnQKCWFuZCBfX2xpYmNfY2xlYW51cF9yZWdpb25fZW5kLgoKCSogc3lzZGVwcy91bml4L2kzODYvc3lzZGVwLlMgW19MSUJDX1JFRU5UUkFOVF06IFNldCBlcnJubwoJdXNpbmcgX19lcnJub19sb2NhdGlvbiBmdW5jdGlvbi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNkZXAuUyBbX0xJQkNfUkVFTlRSQU5UXTogU2V0IGVycm5vCgl1c2luZyBfX2Vycm5vX2xvY2F0aW9uIGZ1bmN0aW9uLgoJKF9fZXJybm9fbG9jYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc3lzZGVwLmggW1BJQ106IEFkZCBzZWNvbmQKCXN5c2NhbGxfZXJyb3IgaGFuZGxlciBmb3IgcmVlbnRyYW50IGxpYmMuCgoJKiBzeXNkZXBzL3VuaXgvb3BlbmRpci5jOiBSZW1vdmUgdW5uZWVkZWQgYDsnLgoKCSogbGliaW8uaCBbX0lPX01UU0FGRV9JT106IEluY2x1ZGUgPHB0aHJlYWQuaD4uCglbIV9JT19NVFNBRkVfSU9dOiBEZWZpbmUgX0lPX2Zsb2NrZmlsZSBhbmQgX0lPX2Z1bmxvY2tmaWxlCglhcyBlbXB0eSBtYWNyb3MuCgkqIGxpYmlvUC5oOiBJbmNsdWRlIDxsaWJjLWxvY2suaD4uCgkqIGxpYmlvL3N0ZGlvLmg6IEFkZCBwcm90b3R5cGVzIGZvciAqX2xvY2tlZCBhbmQgKl91bmxvY2tlZAoJZnVuY3Rpb25zLgoKCSogbGliaW8vY2xlYXJlcnIuYzogVXNlIF9JT18gcHJvdGVjdGVkIHZlcnNpb25zIG9mIGZsb2NrZmlsZQoJYW5kIGZ1bmxvY2tmaWxlIHRvIGJlIG5hbWVzcGFjZSBjbGVhbi4KCgkqIGxpYmlvL2dlbm9wcy5jOiBVc2UgX19saWJjX2xvY2tfKiBtYWNyb3MgZm9yIGhhbmRsaW5nIGxvY2suCgoJKiBsaWJpby9pb2Zkb3BlbjogQWRkIGluaXRpYWxpemF0aW9uIG9mIF9sb2NrIGluIF9JT19GSUxFLgoJKiBsaWJpby9pb2ZvcGVuOiBMaWtld2lzZS4KCSogbGliaW8vaW9mb3BuY29vay5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9wb3Blbi5jOiBMaWtld2lzZS4KCSogbGliaW8vaW92c3ByaW50Zi5jOiBMaWtld2lzZS4KCSogbGliaW8vaW92c3NjYW5mLmM6IExpa2V3aXNlLgoJKiBsaWJpby9tZW1zdHJlYW0uYzogTGlrZXdpc2UuCgkqIGxpYmlvL3Zhc3ByaW50Zi5jOiBMaWtld2lzZS4KCSogbGliaW8vdmRwcmludGYuYzogTGlrZXdpc2UuCgkqIGxpYmlvL3ZzbnByaW50Zi5jOiBMaWtld2lzZS4KCgkqIGxpYmlvL2ZnZXRjLmM6IFVzZSBfX2xpYmNfY2xlYW51cF9yZWdpb25fKiBtYWNyb3MgaW5zdGVhZAoJb2YgZmxvY2tmaWxlIGV0Yy4KCSogbGliaW8vZnB1dGMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2ZyZW9wZW4uYzogTGlrZXdpc2UuCgkqIGxpYmlvL2ZzZWVrLmM6IExpa2V3aXNlLgoJKiBsaWJpby9nZXRjLmM6IExpa2V3aXNlLgoJKiBsaWJpby9nZXRjaGFyLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb2ZjbG9zZS5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mZmx1c2guYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZmdldHBvcy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mZ2V0cy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mcHV0cy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mcmVhZC5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mc2V0cG9zLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb2Z0ZWxsLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb2Z3cml0ZS5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9nZXRkZWxpbS5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9nZXRzLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3B1dHMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvc2V0YnVmZmVyLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3NldHZidWYuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvdW5nZXRjLmM6IExpa2V3aXNlLgoJKiBsaWJpby9wdXRjLmM6IExpa2V3aXNlLgoJKiBsaWJpby9wdXRjaGFyLmM6IExpa2V3aXNlLgoJKiBsaWJpby9yZXdpbmQuYzogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3Zmc2NhbmYuYzogTGlrZXdpc2UuCgoJKiBsaWJpby9jbGVhcmVycl91LmM6IENvcnJlY3QgYWxpYXMgbmFtZS4KCSogbGliaW8vZmVycm9yX3UuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2ZpbGVuby5jOiBMaWtld2lzZS4KCSogbGliaW8vZnB1dGNfdS5jOiBMaWtld2lzZS4KCSogbGliaW8vZ2V0Yy5jOiBMaWtld2lzZS4KCSogbGliaW8vZ2V0Y191LmM6IExpa2V3aXNlLgoJKiBsaWJpby9nZXRjaGFyLmM6IExpa2V3aXNlLgoJKiBsaWJpby9nZXRjaGFyX3UuYzogTGlrZXdpc2UuCgkqIGxpYmlvL3B1dGMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL3B1dGNoYXIuYzogTGlrZXdpc2UuCgoJKiBsaWJpby9mZW9mX3UuYzogVW5kZWZpbmUgbWFjcm8gd2l0aCBuYW1lIG9mIGZ1bmN0aW9uIGJlZm9yZQoJZGVmaW5pdGlvbiBvZiBmdW5jdGlvbiBpdHNlbGYuCgoJKiBsaWJpby9pb2Zsb2NrZmlsZS5jOiBOZXcgZmlsZS4gIEltcGxlbWVudGF0aW9uIG9mIGZsb2NrZmlsZSBhbmQKCWZ1bmxvY2tmaWxlLgoKCSogbGliaW8vcHV0Y2hhcl91LmM6IEZpeCB0eXBvLiAgVXNlIHN0ZG91dCBpbnN0ZWFkIG9mIGZwLgoKCSogbWFsbG9jL21hbGxvYy5oOiBEb24ndCBpbmNsdWRlIDxsaWJjLWxvY2suaD4gYW5kIGRvbid0IGRlY2xhcmUKCV9tYWxsb2NfbG9jLgoKCSogbWFsbG9jL2ZyZWUuYzogSW5jbHVkZSA8bGliYy1sb2NrLmg+LgoJKiBtYWxsb2MvcmVhbGxvYy5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy1maW5kLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jLXNpemUuYzogTGlrZXdpc2UuCgkqIG1hbGxvYy9tYWxsb2Mtd2Fsay5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21lbWFsaWduLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9pMzg2L2RsLW1hY2hpbmUuaDogQ29ycmVjdCBjbGVhcmluZyBvZiBfZGxfc3RhcnRpbmdfdXAuCgpGcmkgU2VwICA2IDE5OjM4OjQ5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9zdHViL2xpYmMtbG9jay5oOiBEZWZpbmUgX19saWJjX2xvY2tfY3JpdGljYWxfc3RhcnQKCWFuZCBfX2xpYmNfbG9ja19jcml0aWNhbF9lbmQgYXMgZW1wdHkgbWFjcm9zLgoKCSogbWFsbG9jL21hbGxvYy5oOiBEb24ndCBpbmNsdWRlIDxsaWJjLWxvY2suaD4gYW5kIGRvbid0IGRlY2xhcmUKCV9fbGliY19tYWxsb2NfbG9jay4KCSogbWFsbG9jL2ZyZWUuYzogSW5jbHVkZSA8bGliYy1sb2NrLmg+LgoJKiBtYWxsb2MvbWFsbG9jLWZpbmQuYzogTGlrZXdpc2UuCgkqIG1hbGxvYy9tYWxsb2Mtc2l6ZS5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy13YWxrLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWVtYWxpZ24uYzogTGlrZXdpc2UuCgkqIG1hbGxvYy9yZWFsbG9jLmM6IExpa2V3aXNlLgoKCSogTWFrZWZpbGU6IFVuZG8gY2hhbmdlIGZyb20gTW9uIFNlcCAgMiAyMjoxNToxNCAxOTk2LiAgTm8gbW9yZQoJZXh0cmFfc29saWJzIHBhc3MuCgkqIFJ1bGVzOiBMaWtld2lzZS4KCSogZXh0cmEtbGliLm1rOiBMaWtld2lzZS4KCSogbWFudWFsL01ha2VmaWxlOiBMaWtld2lzZS4KCgkqIGRiL01ha2VmaWxlIChtYWtlZGIpOiBDaG9vc2UgZGVwZW5kZWNpZXMgYmFzZWQgb24gYnVpbGQtc2hhcmVkLgoJUGF0Y2ggYnkgQW5kcmVzIFNjaHdhYi4KCgkqIHN5c2RlcHMvcG9zaXgvc3lzY29uZi5jOiBEb24ndCB1c2UgUFRIUkVBRF9ERVNUUlVDVE9SX0lURVJBVElPTlMKCWJ1dCBfUE9TSVhfVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Vycm5vcy5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2NoZWRiaXRzLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC93YWl0ZmxhZ3MuaDogTmV3IGZpbGUuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nbnUvdHlwZXMuaDogQWRkIGRlZmluaXRpb24gb2YgYGtleV90Jy4KCkZyaSBTZXAgIDYgMDg6MjY6MzEgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBycG0vdGVtcGxhdGU6IEZpeCB0eXBvIGluICVidWlsZCBzZWN0aW9uLgoKRnJpIFNlcCAgNiAwMzozMTowNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Vycm5vcy5oOiBEb24ndCBkZWZpbmUgZXJybm8gbWFjcm8gd2hlbgoJYnVpbGRpbmcgbGliYyB3aXRob3V0IHRocmVhZCBzdXBwb3J0LgoJKiByZXNvbHYvbmV0ZGIuaDogTGlrZXdpc2UgZm9yIGhfZXJybm8gbWFjcm8uCgpUaHUgU2VwICA1IDIzOjAxOjQ4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbGliYy1zeW1ib2xzLmg6IEFkZCBuZXcgbWFjcm8gd2Vha19jb25zdF9mdW5jdGlvbi4gIEl0J3MgbGlrZQoJd2Vha19mdW5jdGlvbiwgYnV0IHRoZSBmdW5jdGlvbiBpcyBhZGRpdGlvbmFsbHkgbWFya2VkIGFzIGNvbnN0LgoJKiBmZWF0dXJlcy5oOiBPbmx5IGluY2x1ZGUgPHN5cy9jZGVmcy5oPiBpZiAhX19BU1NFTUJMRVJfXy4KClRodSBTZXAgIDUgMjI6NTU6NDkgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBpbmV0L2hlcnJuby5jIChfX2hfZXJybm9fbG9jYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoaF9lcnJubyk6IE1ha2Ugc3Ryb25nX2FsaWFzIF9faF9lcnJubyBzbyB0aGF0IHdlIGNhbiBhY2Nlc3MKCXRoZSB2YXJpYWJsZSBldmVuIGlmIGBoX2Vycm5vJyBpcyBhIG1hY3JvLgoJKiByZXNvbHYvbmV0ZGIuaDogRGVmaW5lIG1hY3JvIGhfZXJybm8gdG8gYWNjZXNzIHRocmVhZCBzcGVjaWZpYwoJdmVyc2lvbiBvZiBoX2Vycm5vIHZhcmlhYmxlLiAgRGVjbGFyZSBhbGlhcyBfX2hfZXJybm8gZm9yIGhfZXJybm8uCgkqIHJlc29sdi9yZXNfcXVlcnkgKGhfZXJybm8pOiBSZW1vdmUgZGVmaW5pdGlvbi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZXJybm9zLmggWyFfX0FTU0VNQkxFUl9fICYmIF9fVVNFX1JFRU5UUkFOVF06CglBZGQgbWFjcm8gYGVycm5vJyB0byBnZXQgdGhyZWFkIHNwZWNpZmljIHZhcmlhYmxlLgoJKiBzeXNkZXBzL3VuaXgvYWxwaGEvc3lzZGVwLlMgW19MSUJDX1JFRU5UUkFOVF06IFNldCBlcnJubyB1c2luZwoJX19lcnJub19sb2NhdGlvbiBmdW5jdGlvbi4KCShfX2Vycm5vX2xvY2F0aW9uKTogTmV3IGZ1bmN0aW9uLgoKVGh1IFNlcCAgNSAyMTowODo0NCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHBvc2l4L2dudS90eXBlcy5oOiBSZW1vdmUgZGVmaW5pdGlvbiBvZiBrZXlfdC4KCSogc3lzZGVwcy9nZW5lcmljL2dudS90eXBlcy5oOiBNb3ZlIGl0IHRvIGhlcmUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dudS90eXBlcy5oOiBBZGQgTGludXggc3BlY2lmaWMKCWRlZmluaXRpb24gb2Yga2V5X3QuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC93YWl0ZmxhZ3MuaDogTmV3IGZpbGUuICBMaW51eCBzcGVjaWZpYwoJZGVmaW5pdGlvbnMuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NjaGVkYml0cy5oOiBOZXcgZmlsZS4gIEluY2x1ZGUKCWNsb25lIHByb3RvdHlwZXMgYW5kIGFzc29jaWF0ZWQgZmxhZ3MuCgpUaHUgU2VwICA1IDA4OjU4OjQ3IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogc3lzZGVwcy9hbHBoYS9lbGYvc3RhcnQuUzogTWFrZSBfc3RhcnQgZ2xvYmFsIGFnYWluLgoKVGh1IFNlcCAgNSAxMzoxODoyNSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9pbml0LWZpcnN0LmMgKF9fbGliY19hcmdjLCBfX2xpYmNfYXJndik6CglOZXcgdmFyaWFibGVzLgoJKGluaXQxKTogSW5pdGlhbGl6ZSB0aGVtLgoJKiBodXJkL2h1cmRpbml0LmMgKF9odXJkX3NldHByb2MpOiBOb3cgdGhhdCBoYXBwZW5zIHRvIGJlCglhdmFpbGFibGUsIHBhc3MgX19saWJjX2FyZ3YgaW4gY2FsbCB0byBfX3Byb2Nfc2V0X2FyZ19sb2NhdGlvbnMuCgoJKiBnbW9uL2dtb24uYyAod3JpdGVfaGlzdCk6IENhbGwgX19wcm9maWxlX2ZyZXF1ZW5jeSBpbnN0ZWFkIG9mCgloZXJ0ei4KCShoZXJ0eik6IERlbGV0ZSBmdW5jdGlvbi4KCSogZ21vbi9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgYHByb2YtZnJlcScuCgkqIHN5c2RlcHMvZ2VuZXJpYy9wcm9mLWZyZXEuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvbWFjaC9odXJkL3Byb2YtZnJlcS5jOiBOZXcgKHN0dWJieSkgZmlsZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvcHJvZmlsLmMgKHByb2ZpbGVfdGljayk6IE5ldyB2YXJpYWJsZS4KCSh1cGRhdGVfd2FpdGVyKTogU3RvcmUgZnJlcXVlbmN5IGluIHByb2ZpbGVfdGljay4KCShfX3Byb2ZpbGVfZnJlcXVlbmN5KTogTmV3IGZ1bmN0aW9uLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvc2VuZHRvLmMgKHNlbmR0byk6IFVzZSBwcm90b3R5cGUgZGVmaW5pdGlvbgoJc3ludGF4LgoKCSogUnVsZXMgKGdlbmVyYXRlZCk6IFJlc3RvcmUgcmVmZXJlbmNlIHRvICQoZ2VuZXJhdGVkKS4KCgkqIG1hY2gvTWFjaHJ1bGVzIChtaWcudWgsIG1pZy5fX2gpOiBEb24ndCBpbmNsdWRlICQodXNlci1NSUdGTEFHUykKCWhlcmUuCgoJKiBtYWxsb2MvZnJlZS5jIChmcmVlKTogX19saWJfbWFsbG9jX2xvY2sgLT4gX19saWJjX21hbGxvY19sb2NrLgoKCSogbWFsbG9jL2ZyZWUuYzogUHJvdmlkZSBleHRlcm4gZGVjbCBvZiBfX2xpYmNfbWFsbG9jX2xvY2suCgkqIG1hbGxvYy9yZWFsbG9jLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jLWZpbmQuYzogTGlrZXdpc2UuCgkqIG1hbGxvYy9tYWxsb2Mtc2l6ZS5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy13YWxrLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWVtYWxpZ24uYzogTGlrZXdpc2UuCgpUaHUgU2VwICA1IDAzOjIwOjQyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCUNoYW5nZSBjb25maWd1cmF0aW9uIGFuZCBNYWtlZmlsZXMgdG8gYWxsb3cgYWRkLW9ucyB0byBoYXZlIGEKCXN5c2RlcHMvIGRpcmVjdG9yeSBoaWVyYWNoeS4KCSogY29uZmlndXJlLmluOiBUZXN0IGZvciBzeXNkZXBzLyBkaXJlY3RvcnkgaW4gYWRkLW9ucy4gIEJlZm9yZQoJYWxsIHRlc3QgYW5kIHNlYXJjaGVzIGluIHRoZXNlIGhpZXJhY2hpZXMsIHRvby4KCSogTWFrZWNvbmZpZyAoZnVsbC1jb25maWctc3ViZGlycyk6IERlZmluZSBiYXNlZCBvbiAkKGNvbmZpZy1zeXNkaXJzKS4KCUV4dGVuZCB3aXRoICQoLi4pIGlmIG5vdCBhYnNvbHV0ZSBwYXRoLgoJVXNlICQoZnVsbC1jb25maWctc3ViZGlycykgd2hlcmUgJChjb25maWctc3lzZGlycykgd2FzIHVzZWQuCgkqIE1ha2VmaWxlICgkKG9ianBmeClzeXNkLWRpcnMpOiBVc2UgY29uZmlnLXN5c2RpcnMuCgkqIE1ha2VUQUdTOiBVc2UgJChmdWxsLWNvbmZpZy1zdWJkaXJzKS4KCSogTWFrZXJ1bGVzOiBDaGFuZ2UgY29tbWVudCB0byBsaWJjLnNvIGxpbmsgc2NyaXB0LgoJKHN5c2RpcnMpOiBEZWZpbmUgYmFzZWQgb24gJChmdWxsLWNvbmZpZy1zdWJkaXJzKS4KCShzeXNkLU1ha2VmaWxlKTogRGVmaW5lIHVzaW5nIGNvbmZpZy1zeXNkaXJzLgoJKHN5c2QtcnVsZXMpOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L01ha2VmaWxlIChzeXNkLXN5c2NhbGxzKTogRGVmaW5lIGJhc2VkIG9uICtzeXNkZXAtZGlycy4KCSogc3lzZGVwcy91bml4L21ha2Utc3lzY2FsbHMuc2g6IFJlbW92ZSBiYXNlZGlyIGFyZ3VtZW50LgoKV2VkIFNlcCAgNCAwMTozMjoyMSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvbTY4ay9mcHUva19jb3MuYzogUmV3cml0dGVuIGZvciBiZXR0ZXIgYWNjdXJhY3kuCgkqIHN5c2RlcHMvbTY4ay9mcHUva19zaW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUva190YW4uYzogTGlrZXdpc2UuCgpUaHUgU2VwICA1IDAxOjA2OjA5IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogbWFsbG9jL2ZyZWUuYyAoZnJlZSk6IFByb3RlY3QgYnkgdXNpbmcgX19saWJjX21hbGxvY19sb2NrLgoJKiBtYWxsb2MvbWFsbG9jLWZpbmQuYyAobWFsbG9jX2ZpbmRfb2JqZWN0X2FkZHJlc3MpOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy1zaXplLmMgKG1hbGxvY191c2FibGVfc2l6ZSk6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jLXdhbGsuYyAobWFsbG9jX3dhbGspOiBMaWtld2lzZS4KCSogbWFsbG9jL21lbWFsaWduLmMgKG1lbWFsaWduKTogTGlrZXdpc2UuCgkqIG1hbGxvYy9yZWFsbG9jLmMgKHJlYWxsb2MpOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy5jOiBEZWZpbmUgX19saWJjX21hbGxvY19sb2NrLgoJKF9tYWxsb2NfaW50ZXJuYWwpOiBEb24ndCB1c2UgYG1hbGxvYycuICBJbnN0ZWFkIGxvb2sgZm9yCglgX19tYWxsb2NfaG9vaycgb3IgY2FsbCBgX21hbGxvY19pbnRlcm5hbCcuCgkobWFsbG9jKTogUHJvdGVjdCBieSB1c2luZyBgX19saWJjX21hbGxvY19sb2NrJy4KCSogbWFsbG9jL21hbGxvYy5oOiBEZWNsYXJlIGBfX2xpYmNfbWFsbG9jX2xvY2snLgoKTW9uIFNlcCAgMiAyMjo0Mjo1OSAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN5c2RlcHMvYWxwaGEvZWxmL3N0YXJ0LlM6IFVzZSB3ZWFrX2FsaWFzIGZvciBfX3N0YXJ0CglpbnN0ZWFkIG9mIHRoZSBoYXJkIGRlZmluaXRpb24uCgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaCAoUlRMRF9TVEFSVCk6IEFkZCB0eXBlIGluZm8gZm9yCglfc3RhcnQgYW5kIF9kbF9zdGFydF91c2VyLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaW5pdC1maXJzdC5oIChTWVNERVBfQ0FMTF9JTklUKToKCU1ha2UgX2RsX3N0YXJ0aW5nX3VwIHdlYWsuICBBZGQgdHlwZSBpbmZvIGZvciBOQU1FLgoKTW9uIFNlcCAgMiAyMjoxNToxNCAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIE1ha2VmaWxlIChhbGwpOiBBZGQgZXh0cmFfc29saWJzIHBhc3MuCgkoK3N1YmRpcl90YXJnZXRzKTogU2FtZS4KCSogUnVsZXMgKGV4dHJhX3NvbGlicyk6IE5ldyBwaG9ueSBlbXB0eSB0YXJnZXQgZm9yIHN1YmRpcnMgd2l0aG91dAoJZXh0cmEgbGlicy4KCSogZXh0cmEtbGliLm1rOiBCdWlsZCBsaWIqLnNvKiBpbiBleHRyYV9zb2xpYnMgbm90IGxpYi1ub3JhbmxpYi4KCSogbWFudWFsL01ha2VmaWxlOiBBZGQgZHVtbXkgZXh0cmFfc29saWJzIHRhcmdldC4KClN1biBTZXAgIDEgMTU6NDE6MjIgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBNYWtlY29uZmlnICgrbGluayk6IEFkZCAkKGxpbmstZXh0cmEtbGlicykuCgkobGluay1leHRyYS1saWJzKTogTmV3IHZhcmlhYmxlIHdoaWNoIGV4cGFuZHMgdG8gdGhlIGZ1bGwgcGF0aHMgb2YKCXRoZSBvdGhlciBsaWJyYXJpZXMgbmVlZGVkIGJ5IGEgcHJvZ3JhbSwgYXMgY29udHJvbGVkIGJ5IExETElCUy0kKEBGKS4KCSogZGIvTWFrZWZpbGU6IFVzZSBMRExJQlMtbWFrZWRiIHRvIGxpbmsgbGliZGIgbm90IGEgZGVwZW5kZW5jeSwgYXMKCXRoZSBsYXRlciBhdHRlbXB0cyB0byBpbnN0YWxsIHRoZSBsaWJyYXJ5IGJlZm9yZSBsaW5raW5nIGl0LgoKCSogc3lzZGVwcy91bml4L2FscGhhL3N5c2RlcC5TOiBBbGlnbiBlcnJuby4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvcGVybS5jIChzdHJ1Y3QgcGxhdGZvcm0pOiBBZGQKCWhhZV9zaGlmdCBlbnRyeS4KCShpbyk6IE1vdmUgYnVzX21lbW9yeV9iYXNlIGFuZCBzcGFyc2VfYnVzX21lbW9yeV9iYXNlIGludG8gc3RydWN0LgoJKF9oYWVfc2hpZnQpOiBOZXcgZnVuY3Rpb24uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5cy9pby5oOiBOZXcgZmlsZS4gIFByb3RvdHlwZXMKCWZvciB0aGUgYnVzIHF1ZXJ5IGZ1bmN0aW9ucy4KClNhdCBBdWcgMzEgMTg6MTQ6NTQgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBlbGYvZGwtY2xvc2UuYyAoX2RsX2Nsb3NlKTogSW4gc3RhdGljIGV4ZWN1dGFibGVzLCBtYXAtPmxfcHJldgoJY2FuIGJlIE5VTEwgd2hlbiB1bmxvYWRpbmcgYSBsaWJyYXJ5LgoKCSogZWxmL2RsLW9wZW4uYyAoX2RsX29wZW4pOiBQYXNzIF9fZW52aXJvbiBpbnN0ZWFkIG9mIF9fbGliY19lbnZwCgl0byB0aGUgbGlicmFyeSAuaW5pdCBmdW5jdGlvbi4KCgkqIHN5c2RlcHMvYWxwaGEvZGwtbWFjaGluZS5oIChlbGZfbWFjaGluZV9yZWxhKTogIFNpbmNlIHdlIG9taXR0ZWQKCXBhcnQgb2YgdGhlIENPUFkgcmVsb2MgcHJvY2Vzc2luZyBlYXJsaWVyLCBvbWl0IHRoZSByZXN0IG5vdyAtLQoJd2UnbGwgZ2V0IGludG8gbGVzcyB0cm91YmxlIGxhdGVyIHdoZW4gc29tZSBmb29sIGRvZXMgdXNlIGEgQ09QWS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2luaXQtZmlyc3QuYyAoaW5pdCk6IEFjY2VwdCBhcmdjIGV0IGFsIGFzCglwYXJhbWV0ZXJzLiAgTW92ZSBhbGwgYXJnYyBhbmQgX19saWJjX211bHRpcGxlX2xpYmNzIGNhbGN1bGF0aW9uIG91dAoJdG8gaW5pdC1maXJzdC5oLiAgVXNlIF9fZW52aXJvbiBub3QgX19saWJjX2VudnAuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2luaXQtZmlyc3QuaDogUmV3cml0ZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9pbml0LWZpcnN0Lmg6IFJld3JpdGUuCgpUaHUgQXVnIDI5IDIwOjI2OjQwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9wb3NpeC9wcm9maWwuYyAocHJvZmlsKTogRG9uJ3QgY2xvYmJlciBzYXZlZCB0aW1lciBhbmQKCXNpZ25hbCBzZXR0aW5ncyB3aGVuIHByb2ZpbGluZyB3YXMgYWxyZWFkeSB0dXJuZWQgb24uCgoJKiBjc3UvZ21vbi1zdGFydC5jIChfX2dtb25fc3RhcnRfXykgW0hBVkVfSU5JVEZJTkldOiBQcm90ZWN0IGZyb20KCWJlaW5nIGNhbGxlZCB0d2ljZS4KCldlZCBTZXAgIDQgMDE6MzE6NTAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L21tYXAuUzogVGVzdCBmb3IKCTAgPCByZXR1cm4gdmFsdWUgPCAtNDA5NiBhbmQgbm90IDwgMCB0byBkZWNpZGUgYWJvdXQgZmFpbHVyZS4KCVJlcG9ydGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKVHVlIFNlcCAgMyAxOTowNDowNSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGlvLWNvbW1vbi92ZnNjYW5mLmMgKF9fdmZzY2FuZik6IERvbid0IGNvdW50IEVPRiBjaGFyCglpbiAlYyBmb3JtYXQuCgpTYXQgQXVnIDMxIDE4OjEwOjUxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogd2NzbWJzL3djaGFyLmg6IERlZmluZSBwcm90b3R5cGVzIGZvciB3Y3N0b3EgYW5kIHdjc3RvdXEgb25seQoJI2lmZGVmIF9fVVNFX0dOVS4KClNhdCBBdWcgMzEgMTI6MzQ6MjkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB2ZXJzaW9uLmM6IEFkZCBtaXNzaW5nIG5ld2xpbmUgY2hhcmFjdGVyIGluIGJhbm5lci4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL0Rpc3Q6IENvcnJlY3QgdHlwby4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9EaXN0OiBMaWtld2lzZS4KClNhdCBBdWcgMzEgMDM6MDc6MzkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpbnRsL2wxMG5mbGlzdC5jIChfbmxfbm9ybWFsaXplX2NvZGVzZXQpOiBXZSBjb252ZXJ0IHRvIGxvd2VyCgljYXNlLCBzbyBkb24ndCBwcmVwZW5kIHVwcGVyY2FzZSBgSVNPJyBmb3Igb25seSBudW1lcmljIGFyZy4KCldlZCBTZXAgIDQgMTY6MTY6MTMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zZW5kLmMgKF9fc2VuZCk6IERlLUFOU0ktZnkuCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NlbmR0by5jIChzZW5kdG8pOiBMaWtld2lzZS4KClR1ZSBTZXAgIDMgMTE6MTY6MDcgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLyBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHNoYWRvdy9sY2twd2RmLmMgKF9fdWxja3B3ZGYpOiBEb24ndCB0YWtlIGFkZHJlc3Mgb2YgTE9DSyBpbgoJY2FsbCB0byBfX2xpYmNfbG9ja19sb2NrLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvc2VuZC5jIChfX3NlbmQpOiBEZWNsYXJlIEJVRiBjb25zdC4KCSogc3lzZGVwcy9tYWNoL2h1cmQvc2VuZHRvLmMgKHNlbmR0byk6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9zdHViL3VzdGF0LmM6IEluY2x1ZGUgPHN5cy91c3RhdC5oPi4KCgkqIG1pc2Mvc3lzbG9nLmMgKHZzeXNsb2cpOiBGaXggdHlwbyAoYG1vd190bScgLT4gYG5vd190bScpLgoKRnJpIEF1ZyAzMCAxOTo1NToyNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxpYmlvL2dlbm9wcy5jOiBNYWtlIF9jbGVhbnVwIGFuIGFsaWFzIG9mIF9JT19jbGVhbnVwLgoJUmVwb3J0ZWQgYnkgRXJpayBUcm9hbi4KCkZyaSBBdWcgMzAgMTU6NDA6MDQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9EaXN0OiBBZGQgc3lzL3Byb2Nmcy5oIGFuZAoJc3lzL3N5c21hY3Jvcy5oLiAgUmVwb3J0ZWQgYnkgQ3VydGlzcyA8MUNNQzM0NjZASUJNLk1UU0FDLkVEVT4uCgpGcmkgQXVnIDMwIDEzOjUzOjMyIDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogc3lzZGVwcy91bml4L21tYW4vc3lzY2FsbHMubGlzdDogYG1tYXAnIGhhcyA2IGFyZ3VtZW50cywgbm90IDUuCgpGcmkgQXVnIDMwIDEzOjAxOjEwIDE5OTYgIE5JSUJFIFl1dGFrYSAgPGduaWliZUBtcmkuY28uanA+CgoJKiBzeXNkZXBzL2kzODYvZnB1L19fbWF0aC5oICh0YW4pOiBQb3AgMS4wIGluIFNUIHRvIGdldAoJcmVhbCByZXN1bHQuCgpGcmkgQXVnIDMwIDAzOjMzOjMzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19jYnJ0bC5jOiBOZXcgZmlsZS4gIGBsb25nIGRvdWJsZScKCWltcGxlbWVudGF0aW9uLgoKRnJpIEF1ZyAzMCAxMzozOToyMSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogTWFrZXJ1bGVzIChCVUlMRF9DRkxBR1MpOiBVc2UgQChjb21tb24tb2JqcGZ4KSBmb3IgY29uZmlnLmgsIG5vdAoJJCguLikuICBTb21lIHJ1bGVzIChsaWtlIHN5c2RlcHMvcG9zaXgvTWFrZWZpbGUgZm9yIG1rLXN0ZGlvbGltKQoJZG8gYGNkJyBjb21tYW5kcy4KCShzZWQtcmVtb3ZlLW9ianBmeCk6IERvbid0IHN1YnN0aXR1dGUgZm9yICQob2JqcGZ4KSBhbnltb3JlOwoJJChjb21tb24tb2JqcGZ4KSBpcyBnb29kIGVub3VnaC4KCSogUnVsZXMgKGNvbW1vbi1nZW5lcmF0ZWQpOiBQcm92aWRlIGRlZmF1bHQgKGVtcHR5KSB2YWx1ZS4KCShkdW1teS5vLCBkdW1teS5jLCBlbXB0eS5vLCBlbXB0eS5jKTogUHV0IHRoZXNlIGluCgkkKGNvbW1vbi1nZW5lcmF0ZWQpLCBub3QgJChnZW5lcmF0ZWQpLCBhbmQgd2l0aG91dCAkKC4uKS4KCShzdWJkaXJfZWNoby1kaXN0aW5mbyk6IFRyZWF0ICQoY29tbW9uLWdlbmVyYXRlZCkganVzdCBsaWtlCgkkKGdlbmVyYXRlZCkuCgkoZ2VuZXJhdGVkKTogRGVwZW5kIG9uIHRoZSAoc3VpdGFibHkgbXV0YXRlZCkgJChjb21tb24tZ2VuZXJhdGVkKQoJZmlsZXMgdG9vLgoJKiBNYWtlcnVsZXMgKGNvbW1vbi1jbGVhbik6IFJlbW92ZSBjb21tb24tZ2VuZXJhdGVkIGZpbGVzIHRvby4KCSogc3lzZGVwcy9tYWNoL2h1cmQvTWFrZWZpbGUgKGdlbmVyYXRlZCk6IERvbid0IHB1dCBlcnJub3MuZCBhbmQKCXN0YW1wLWVycm5vcyBoZXJlLgoJKGNvbW1vbi1nZW5lcmF0ZWQpOiBEbyBwdXQgZXJybm9zLmQgYW5kIHN0YW1wLWVycm5vcyBoZXJlLgoJKHJwYXRoLWxpbmspOiBEb24ndCB1c2UgKz07ICQocnBhdGgtbGluaykgaXMgYSBjb2xvbiBzZXBhcmF0ZWQgbGlzdC4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlIChiZWZvcmUtY29tcGlsZSk6IEFkZCBhdXRoOyBhbHNvIGFkZAoJYXV0aCB0bwlmb2xsb3dpbmcgcnVsZSB0byBnZXQgaXQgYnVpbHQuCgpGcmkgQXVnIDMwIDAxOjI2OjQ0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9EaXN0OiBBZGQgY2xvbmUuUy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9EaXN0OiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvRGlzdDogTGlrZXdpc2UuCgoJKiB2ZXJzaW9uLmM6IEFkZCBjb21tZW50IGFib3V0IHdoZXJlIHRvIHJlcG9ydCBidWdzIHRvLgoJKiBjYXRnZXRzL2dlbmNhdC5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiBkYi9tYWtlZGIuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZS5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmMgKHVzYWdlKTogTGlrZXdpc2UuCgoJKiBtYW51YWwvc29ja2V0LnRleGk6IEEgbGl0dGxlIGJpdCBiZXR0ZXIgd29yZGluZy4KClRodSBBdWcgMjkgMTg6MDM6MDYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlcnVsZXM6IE1ha2Ugc3VyZSBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBnZW5lcmF0aW5nIHN0YW1wIGZpbGUuCgkoQlVJTERfQ0ZMQUdTKTogQWx3YXlzIHJlZmVyIHRvIHVzaW5nICQoLi4pLgoJKiBtYW51YWwvTWFrZWZpbGU6IE1ha2Ugc3VyZSBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBnZW5lcmF0aW5nCglzdGFtcCBmaWxlLgoJKG1ha2UtdGFyZ2V0LWRpcmVjdG9yeSk6IEFkZCBtYWNybyBkZWZpbml0aW9uLgoJKiBzeXNkZXBzL2dlbmVyaWMvTWFrZWZpbGU6IE1ha2Ugc3VyZSBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZQoJZ2VuZXJhdGluZyBzdGFtcCBmaWxlLgoKCSogTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgYXV0b2xvY2suc2guICBSZXBvcnRlZCBieSBGaWxhIEtvbG9kbnkuCgpUdWUgQXVnIDI3IDEwOjA2OjIyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCVdoZW4gY29tcGlsaW5nIGluIHNlcGFyYXRlIGRpcmVjdG9yeSBwdXQgb2JqZWN0cyBpbnRvCglzdWJkaXJlY3RvcmllcyBtYXRjaGluZyB0aGUgc291cmNlIGxheW91dC4KCSogTWFrZWNvbmZpZyAob2JqcGZ4KSBbaWZkZWYgb2JqZGlyXTogQXBwZW5kICQoc3ViZGlyKS4KCVdoZW4gbG9va2luZyBmb3IgY29uZmlncGFybXMgdHJ5IGluICQoY29tbW9uLW9ianBmeCkuCglVc2UgJChjb21tb24tb2JqcGZ4KVNVQkRJUiB0byBmaW5kIG9iamVjdHMgZnJvbSBvdGhlciBzdWJkaXJlY3RvcnkKCWJ1aWxkcy4KCSogTWFrZXJ1bGVzOiBBZGQgJChvYmpwZngpIHRvIHZwYXRoIGxpc3QuCgkobWFrZS1kdW1teS1kZXApOiBVc2UgJChjb21tb24tb2JqcGZ4KSB0byBhdm9pZCBjcmVhdGluZyBkdW1teS5kCgltb3JlIHRoYW4gb25jZS4gIEFsbCB1c2VzIGluIGRlcGVuZGVuY3kgbGlzdHMgY2hhbmdlZC4KCSgrbWFrZS1kZXBzKTogTWFrZSB0YXJnZXQgZGlyZWN0b3J5LgoJKHNlZC1yZW1vdmUtb2JqcGZ4KTogU3Vic3RpdHV0ZSAkKGNvbW1vbi1vYmpwZngpLgoJKGRvLWFyLCBidWlsZC1leHRyYS1saWIsICQoY29tbW9uLW9ianBmeClzdHViLSQoc3ViZGlyKSk6IFVzZQoJJChvYmpwZngpIGluc3RlYWQgb2YgJChvYmpkaXIpIGZvciBjZCBjb21tYW5kLgoJKE8lLWxpYik6IEFsd2F5cyBmaW5kIGxpYmMgcmVsYXRpdmUgdG8gJCguLikuCgkoc3ViZGlyLXN0YW1wcyk6IENvbGxlY3Qgc3RhbXAgZmlsZXMgZnJvbSBzdWJkaXJzLgoJKGNvbW1vbi1tb3N0bHljbGVhbik6IFJlbW92ZSBzdHViIGZpbGUgaW4gJChjb21tb24tb2JqcGZ4KS4KCSogTWFrZVRBR1MgKCRQL3NpZ2xpc3QucG90KTogRmluZCBzaWdsaXN0LmMgaW4gc3RkaW8tY29tbW9uLgoJKiBSdWxlcyAoZGVwLWR1bW15LWxpYik6IFVzZSAkKGNvbW1vbi1vYmpwZngpIHRvIGF2b2lkIGNyZWF0aW5nIHRvCgltb3JlIHRoYW4gb25jZS4KCSgkKG9ianBmeClkdW1teS5jLCAkKG9ianBmeCllbXB0eS5jKTogQ2hhbmdlIHRhcmdldCBuYW1lIHRvIHVzZQoJJChjb21tb24tb2JqZnB4KS4gIEFsbCB1c2VzIGluIGRlcGVuZGVuY3kgbGlzdHMgY2hhbmdlZC4KCShnZW5lcmF0ZWQpOiBQcmVwZW5kICQoLi4pIHRvIG5hbWVzLgoJKiBiYXJlL01ha2VmaWxlICgkKG9ianBmeClsaWIkKGNvbmZpZy12ZW5kb3IpLmEpOiBSZW1vdmUgJChvYmpwZngpCglmcm9tICRALgoJKiBuc3MvTWFrZWZpbGUgKCQob2JqcGZ4KWxpYm5zc19kbnMuc28sICQob2JqcGZ4KWxpYm5zc19kYi5zbyk6CglVc2UgJChjb21tb24tb2JqcGZ4KSBpbnN0ZWFkIG9mICQoLi4pIGluIGRlcGVuZGVuY2llcy4KCSogc3lzZGVwcy9tYWNoL01ha2VmaWxlIChtYWNoLW9ianBmeCk6IFVuY29uZGl0aW9uYWxseSB1c2UKCSQoY29tbW9uLW9ianBmeCkgaW5zdGVhZCBvZiAkKC4uKSBhbmQgKG9ianBmeCkuCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlIChodXJkLW9ianBmeCk6IExpa2V3aXNlLgoJKHJwYXRoLWxpbmspOiBMaWtld2lzZS4KCShycGN1c2VybGlicyk6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvTWFrZWZpbGUgWyQoc3ViZGlyKSA9IHN0ZGlvLWNvbW1vbl06IENoZWNrIGZvcgoJZXJybGlzdC5jIGluICQob2JqcGZ4KSwgbm90ICQoY29tbW9uLW9ianBmeCkuCgkoJChjb21tb24tb2JqcGZ4KXMtcHJvdG8uZCk6IFNwZWNpYWwgcnVsZSBub3QgY292ZXJlZCBieSBwYXR0ZXJuCglydWxlLgoJKiBzeXNkZXBzL3VuaXgvbWFrZS1zeXNjYWxscy5zaDogTWFrZSBzeXNjYWxsIHJ1bGVzIGRlcGVuZGluZyBvbgoJcy1wcm90by5kIGluICQoY29tbW9uLW9ianBmeCksIG5vdCAkKG9ianBmeCkuCgpUaHUgQXVnIDI5IDE3OjQ1OjQ5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbnNzL25zc3dpdGNoLmMgKG5zc19kbGVycm9yX3J1bik6IEZyZWUgcmV0dXJuZWQgZXJyb3IKCXN0cmluZy4KClRodSBBdWcgMjkgMTU6NTM6MzMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX2Fjb3NobC5jOiBOZXcgZmlsZS4gYGxvbmcgZG91YmxlJwoJaW1wbGVtZW50YXRpb24uCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfYXRhbmhsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX3JlbWFpbmRlcmwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2Vfc2NhbGJsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2FzaW5obC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19jb3NsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX3NpbmwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfdGFuaGwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfdGFubC5jOiBMaWtld2lzZS4KClRodSBBdWcgMjkgMDA6Mjg6MDggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRpby1jb21tb24vcHJpbnRmX2ZwLmMgKF9fcHJpbnRmX2ZwKTogVXNlIGRlZmF1bHQgdmFsdWUgJy4nIGlmCglgZGVjaW1hbCcgY2hhciBpcyAwLgoKCSogQy1udW1lcmljLmMgKG5vdF9hdmFpbGFibGUpOiBOZXcgY29uc3RhbnQuCgkoX25sX0NfTENfTlVNRVJJQyk6IFVzZSBgbm90X2F2YWlsYWJsZScgZm9yIGdyb3VwaW5nIHZhbHVlLgoKCSogbnNzL25zc3dpdGNoLmNvbmY6IEV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlLgoJKiBuc3MvZGItTWFrZWZpbGU6IEV4YW1wbGUgTWFrZWZpbGUgZm9yIGdlbmVyYXRpb24gb2YgZGF0YWJhc2VzCglmb3IgbnNzX2RiLgoJKiBuc3MvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgbnNzd2l0Y2guY29uZiBhbmQgZGItTWFrZWZpbGUuCgoxOTk2LTA4LTI4ICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIEMtbWVzc2FnZXMuYyAoX25sX0NfTENfTUVTU0FHRVMpOiBTZXQgeWVzZXhwciB0byAiXlt5WV0iIGFuZAoJbm9leHByIHRvICJeW25OXSI7IHRoaXMgY29uZm9ybXMgdG8gUE9TSVguMi4KCgkqIEMtdGltZS5jIChfbmxfQ19MQ19USU1FKTogQ2hhbmdlICVkIHRvICVlIGluIGRfdF9mb3JtYXQsIHRvCgljb25mb3JtIHRvIFBPU0lYLjIuCgoxOTk2LTA4LTI4ICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIEMtbW9uZXRhcnkuYyAobm90X2F2YWlsYWJsZSk6IE5ldyBjb25zdGFudC4KCShfbmxfQ19MQ19NT05FVEFSWSk6IFNldCBtb25fZGVjaW1hbF9wb2ludCB0byAiIiwgYW5kIHNldAoJbW9uX2dyb3VwaW5nLCBpbnRfZnJhY19kaWdpdHMsIGZyYWNfZGlnaXRzLCBwX2NzX3ByZWNlZGVzLAoJcF9zZXBfYnlfc3BhY2UsIG5fY3NfcHJlY2VkZXMsIG5fc2VwX2J5X3NwYWNlLCBwX3NpZ25fcG9zbiwgYW5kCgluX3NpZ25fcG9zbiB0byBDSEFSX01BWCwgYXMgcmVxdWlyZWQgYnkgdGhlIFBPU0lYIFN0YW5kYXJkLgoKV2VkIEF1ZyAyOCAyMzoxMjoyOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG5zcy9uc3NfZGIvZGItWFhYLmM6IENvcnJlY3QgZnVuY3Rpb24gbmFtZXMuICBUaGV5IG11c3QgYmUKCWBfbnNzX2RiXyonIGluc3RlYWQgb2YgYF9uc3NfZmlsZXNfKicuCgkobG9va3VwKTogYHBhcnNlX2xpbmUnIHJldHVybnMgMSBpZiBzdWNjZXNmdWwuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtc2VydmljZS5jIChzZXJ2YnluYW1lKTogS2V5IGZvciBkYXRhYmFzZQoJbXVzdCBhbHNvIGNvbnRhaW4gcHJvdG9jb2wgbmFtZXMuCgkoc2VydmJ5cHQpOiBMaWtld2lzZS4KCVRlc3QgbXVzdCBhbHNvIGNoZWNrIGZvciBwcm90b2NvbC4gIEFkZCBgcHJvdG8nIGFyZ3VtZW50LgoKVHVlIEF1ZyAyNyAwOTo1NjoxMyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VUQUdTICgkUC9zdWJkaXJzLnBvdCk6IFByZWZpeCBhbGwgZmlsZSBuYW1lcywgbm90IG9ubHkgdGhlCglmaXJzdCBvbmUuCgpUdWUgQXVnIDI3IDE3OjQ1OjIxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZXJ1bGVzOiBBZGQgc29tZSB0ZXN0IGZvciBjb3JyZWN0IHZlcnNpb24gb2YgR05VIE1ha2UuCgoJKiBpby9mY250bC5oOiBVbmRvIGNoYW5nZSBmcm9tIE1vbiBBdWcgMjYgMjI6MjI6MTcgMTk5Ni4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZmNudGxiaXRzLmg6IFBsYWNlIG1hY3JvcyBoZXJlIGluc3RlYWQuCgoJKiBzeXNkZXBzL2dlbmVyaWMvZGwtc3lzZGVwLmM6IEluaXRpYWxpemUgYnJlYWsgYWRkcmVzcyB0bwoJYXZvaWQgb3ZlcndyaXRpbmcgbGFzdCBwYWdlIChPSywgUm9sYW5kKS4KClR1ZSBBdWcgMjcgMTY6MjA6MzcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiByZXNvbHYvcmVzb2x2Lmg6IFVwZGF0ZSBmcm9tIEJJTkQtNC45LjUtVDNBLgoJKiByZXNvbHYvYXJwYS9uYW1lc2VyLmg6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX2luaXQuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfZGVidWcuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfbWtxdWVyeS5jOiBMaWtld2lzZS4KClR1ZSBBdWcgMjcgMTU6NDc6MDQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYvZGwtZXJyb3IuYyAoY2F0Y2gpOiBEZWZpbmUgZXJyc3RyaW5nIGVsZW1lbnQgbm90IGFzIGNvbnN0LgoJKF9kbF9jYXRjaF9lcnJvcik6IEVSUlNUUklORyBhcmd1bWVudCBpcyBub3QgY29uc3QgcG9pbnRlci4KCUluaXRpYWxpemUgKkVSUlNUUklORyBhbmQgKk9CSk5BTUUgc2VwYXJhdGVseS4KCSogZWxmL2xpbmsuaDogQ2hhbmdlIHByb3RvdHlwZSBmb3IgYF9kbF9jYXRjaF9lcnJvcicuCgoJKiBlbGYvZGwtbG9hZC5jIChfZGxfbWFwX29iamVjdCk6IFVzZSBzZXBhcmF0ZSB2YXJpYWJsZSBmb3IKCWNvcGllZCBOQU1FIHRvIGF2b2lkIGBjb25zdCcgd2FybmluZy4KCgkqIGVsZi9kbGVycm9yLmM6IE1ha2UgYGxhc3RfZXJyc3RyaW5nJyB2YXJpYWJsZSBub3QgY29uc3QgcG9pbnRlci4KCgkqIGVsZi9ydGxkLmM6IEltcGxlbWVudCByZWFkaW5nIG9mIC9ldGMvbGQuc28ucHJlbG9hZC4gIFRoaXMKCXByb3ZpZGVzIHByZWxvYWRpbmcgZXZlbiBmb3IgU1VJRCBiaW5hcmllcy4KCUFkZCBzb21lIG1vcmUgY2FzdHMgdG8gYXZvaWQgc2lnbmVkPC0+dW5zaWduZWQgd2FybmluZ3MuCgpUdWUgQXVnIDI3IDE1OjQwOjI4IDE5OTYgIE5JSUJFIFl1dGFrYSAgPGduaWliZUBtcmkuY28uanA+CgoJKiBwb3NpeC9zeXMvdHlwZXMuaDogRGVmaW5lIGxvZmZfdC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ251L3R5cGVzLmg6IERlZmluZSBfX2xvZmZfdC4KCk1vbiBBdWcgMjYgMjI6MjI6MTcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpby9mY250bC5oOiBBZGQgZGVmaW5pdGlvbiBmb3IgQlNEIEYqIG1hY3Jvcy4KCgkqIG1pc2MvaW5pdC1taXNjLmMgKF9faW5pdF9taXNjKTogTWFrZSBzdGF0aWMuCgkqIG1pc2MvTWFrZWZpbGU6IFBhc3MgLWZrZWVwLWlubGluZS1mdW5jdGlvbnMgZmxhZyBmb3IgaW5pdC1taXNjLmMuCgoJKiBjb25maWd1cmUuaW46IEFkZCB0ZXN0IGZvciAtZm5vLWV4Y2VwdGlvbiBvcHRpb24gb2YgZ2NjLgoJKiBjb25maWcubWFrZS5pbjogQWRkIGRlZmluaXRpb24gb2YgaGF2ZS1uby1leGNlcHRpb25zLgoJKiBNYWtlcnVsZXM6IERlZmluZSBuby1leGNlcHRpb25zIGJhc2VkIG9uIGhhdmUtbm8tZXhjZXB0aW9ucy4KCSogY3N1L01ha2VmaWxlOiBXaGVuIHRyYW5zbGF0aW5nIGluaXRmaW5pLmMgcGFzcyAkKG5vLWV4Y2VwdGlvbnMpLgoJVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGdjYyA+PSBzcy05NjA4MTYuCgpNb24gQXVnIDI2IDE3OjE2OjQ4IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmg6IENsZWFyIHN0YXJ0dXAgZmxhZy4KCkZyaSBBdWcgMTYgMjE6MTc6NTAgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlcnVsZXMgKG8taXRlcmF0b3ItZG9pdCk6IFNpbXBsaWZ5IHJlZmVyZW5jZSB0byBhdXRvbG9jawoJc2NyaXB0LgoKU2F0IEF1ZyAyNCAxNToyNzo0MSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2dldGN3ZC5jCgkoX2h1cmRfY2Fub25pY2FsaXplX2RpcmVjdG9yeV9uYW1lX2ludGVybmFsKTogQWZ0ZXIgcmVzaXppbmcgdGhlCglidWZmZXIgbW92ZSB0aGUgY3VycmVudCBjb250ZW50cyB0byB0aGUgZW5kLiAgQ29ycmVjdGx5IHJlbG9jYXRlCglmaWxlIG5hbWUgcG9pbnRlciB0byB1cHBlciBoYWxmIG9mIHRoZSBidWZmZXIuCgpNb24gQXVnIDI2IDE1OjQ5OjU5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcnRsZC5jIChkbF9tYWluKTogUmVtb3ZlIGNvZGUgdG8gY2FsbCBsZC5zbyBpbml0aWFsaXplci4gIFRoaXMKCXdhcyBpbnRyb2R1Y2VkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggTGludXggbGQuc28gYW5kIHdvdWxkIG5vdAoJYmUgdXNlZCBhbnltb3JlLiAgTm93IHdlIGRvbid0IGhhdmUgYW55IGdvb2QgdmFsdWVzIHRvIHVzZSBhcyB0aGUKCXBhcmFtZXRlcnMgdG8gdGhlIGluaXRpYWxpemVyIHNvIHNpbXBseSByZW1vdmUgaXQuCgpTdW4gQXVnIDI1IDE4OjI1OjUyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogZ21vbi9nbW9uLmMgKEVSUik6IERvbid0IHdyaXRlIHRoZSB0ZXJtaW5hdGluZyBOVUwuCgoJKiBzeXNkZXBzL3Bvc2l4L3Byb2ZpbC5jIChwcm9maWwpOiBEaXNhYmxlIHRoZSBwcm9maWxpbmcgdGltZXIgYXQKCWZpcnN0LgoJKHByb2ZpbF9jb3VudCk6IFVzZSA2NCBiaXQgYXJpdGhtZXRoaWMgdG8gYXZvaWQgb3ZlcmZsb3cuCgoJKiBzeXNkZXBzL2dlbmVyaWMvbWFjaGluZS1nbW9uLmggKE1DT1VOVCk6IEZpeCBhcmd1bWVudCBvcmRlci4KCk1vbiBBdWcgMjYgMTY6MzE6MzMgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NldGl0aW1lci5jIChzZXRpdGltZXJfbG9ja2VkKTogVG9sZXJhdGUgTkVXCgliZWluZyBudWxsOyBpbiB0aGF0IGNhc2UgZG9uJ3QgdG91Y2ggdGhlIHRpbWVyIGF0IGFsbCAoYnV0IGRvCglyZXR1cm4gc29tZXRoaW5nIGluIE9MRCBpZiBuZWNlc3NhcnkpLgoKTW9uIEF1ZyAyNiAxMzozNToxNiAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9pbml0LWZpcnN0LmMgKF9fbGliY19tdWx0aXBsZV9saWJjcyk6IE5ldwoJdmFyaWFibGUuCgkqIHN5c2RlcHMvaTM4Ni9pbml0LWZpcnN0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvaW5pdC1maXJzdC5jOiBMaWtld2lzZS4KCk1vbiBBdWcgMjYgMDI6MDE6MzcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYvZGwtb3Blbi5jIChfZGxfb3Blbik6IENhbGwgbGlicmFyeSBpbml0aWFsaXplciB3aXRoCgljb3JyZWN0IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgYW5kIGVudmlyb25tZW50IGluZm9ybWF0aW9uLgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogUHJvdmlkZSBhcmd1bWVudHMgdG8gaW5pdGlhbGl6ZXIgb2YKCWxkLnNvIGl0c2VsZi4KClN1biBBdWcgMjUgMTk6MTU6NDYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzaGFkb3cvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGxja3B3ZGYuCgkqIHNoYWRvdy9sY2twd2RmLmM6IE5ldyBmaWxlLgoKCSogc3lzZGVwcy9pMzg2L2ZwdV9jb250cm9sLmggKF9GUFVfR0VUQ1csIF9GUFVfU0VUQ1cpOiBGb3JjZQoJYXJndW1lbnQgYGN3JyB0byBiZSBwbGFjZWQgaW4gbWVtb3J5LiAgUGF0Y2ggYnkgVG9yYmpvcm4gR3Jhbmx1bmQuCgpTdW4gQXVnIDI1IDEyOjUzOjM3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgZGVmaW5pdGlvbiBmb3IgYF9fZWhfcGMnIGFuZCBgX190aHJvdycgaW4KCXRlc3QgZm9yIC0tbm8td2hvbGUtYXJjaGl2ZS4gIFRoZSBjb21waWxlciBnZW5lcmF0ZXMgZGVwZW5kZW5jaWVzCglmb3IgdGhpcyBidXQgbm9uZSBvZiB0aGUgc3RhbmRhcmQgbGlicmFyZXMgYW5kIHN0YXJ0dXAgZmlsZXMKCWFyZSB1c2VkLiAgTmVjZXNzYXJ5IGZvciBnY2MgPj0gc3MtOTYwODE2LgoKU3VuIEF1ZyAyNSAwMTozMTozMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9kbC1lcnJvci5jIChfZGxfc2lnbmFsX2Vycm9yKTogSWYgZXJyb3IgaXMgY2F0Y2hlZCwgbWFsbG9jCglyZXR1cm4gc3RyaW5nIHNpbmNlIHN0cmluZyBtaWdodCBiZSBvbiBzdGFjay4KCSogZWxmL2RsLWxvb2t1cC5jIChfZGxfbG9va3VwX3N5bWJvbCk6IFVuZG8gY2hhbmdlIG9mCglXZWQgQXVnIDIxIDEwOjE0OjU5IDE5OTYuCgkqIGVsZi9kbGVycm9yLmMgKGRsZXJyb3IpOiBGcmVlIGVycm9yIHN0cmluZyBhZnRlciBwcmludGluZy4KCShfZGxlcnJvcl9ydW4pOiBJZiBlcnJvciBzdHJpbmcgd2FzIG5vdCBwcmludGVkIHNpbmNlIGxhc3QgZXJyb3IKCWZyZWUgc3RyaW5nLgoJKiBydGxkLmMgKGRsX21haW4pOiBGcmVlIGVycm9yIHN0cmluZyBpbiBjYXNlIG9mIGVycm9yLgoKU2F0IEF1ZyAyNCAwMzoxNjo0NyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG1pc2Mvc3lzbG9nLmMgKHZzeXNsb2cpOiBEb24ndCB1c2UgYGxvY2FsdGltZScgb3IgYGdtdGltZScgc2luY2UKCXRoaXMgY2hhbmdlcyB0aGUgZ2xvYmFsIHN0YXRlIGZvciBgbG9jYWx0aW1lJyBhbmQgYGdtdGltZScuICBVc2UKCWBfX2xvY2FsdGltZV9yJy9gX19nbXRpbWVfcicgaW5zdGVhZC4KCSogcmVzb2x2L3Jlc19kZWJ1Zy5jIChfX3Bfc2Vjc3RvZGF0ZSk6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvZnRpbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvZ2V0dGltZW9mZGF5LmM6IExpa2V3aXNlLgoJUmVwb3J0ZWQgYnkgUGF1bCBFZ2dlcnQuCgoJKiB0aW1lL2dtdGltZS5jOiBEZS1BTlNJLWZ5LgoJKiB0aW1lL3N0cmZ0aW1lLmM6IERvbid0IGNhbGwgbm9uLXJlZW50cmFudCBmdW5jdGlvbnMgd2hpY2ggY2hhbmdlCglzdGF0ZS4KCldlZCBBdWcgMjEgMTA6MTQ6NTkgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBlbGYvZGwtbG9va3VwLmMgKF9kbF9sb29rdXBfc3ltYm9sKTogTWFsbG9jIHRoZSBlcnJvciBzdHJpbmcgcmF0aGVyCgl0aGFuIHB1dHRpbmcgaXQgb24gdGhlIHN0YWNrLgoKV2VkIEF1ZyAyMSAxMDoxMjo0MiAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBXaGVuIGxvb2tpbmcgdXAgc3ltYm9scyBpbiByZXNwb25zZSB0byAtLWxpc3QsCglkb24ndCBmaW5kIC5wbHQgZW50cmllcy4KCk1vbiBBdWcgMTkgMjM6MTg6MTIgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL202OGsvZGwtbWFjaGluZS5oIChSVExEX1NUQVJUKTogT3B0aW1pemUgY2xlYXJpbmcKCV9kbF9zdGFydGluZ191cC4KClR1ZSBBdWcgMjAgMTc6NDI6MTAgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN0ZGlvL2xpbmV3cmFwLmMgKGxpbmVfd3JhcF9zdHJlYW0pOiBJbml0aWFsaXplIEQtPnNlZWsuCgpTYXQgQXVnIDE3IDEyOjE5OjM3IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBsb2dpbi9wdXR1dGxpbmVfci5jIChfX3B1dHV0bGluZV9yKTogRml4IGhhbmRsaW5nIG9mIGNhc2Ugd2hlcmUKCWdldHV0aWRfcigpIGZhaWxzIHdpdGggRVNSQ0guICBSZXBvcnRlZCBieSBNaXF1ZWwgdmFuIFNtb29yZW5idXJnLgoKV2VkIEF1ZyAxNCAxNDoxMDo1NCAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaW9wZXJtLmMgKHBsYXRmb3JtKTogQ2hhbmdlIGVudHJ5Cglmb3IgIkplbnNlbiIgc28gX2J1c19iYXNlKCkgcmV0dXJucyAwIG9uIHRoYXQgcGxhdGZvcm0uICBVc2UKCV9idXNfYmFzZV9zcGFyc2UoKSB0byBkZXRlcm1pbmUgYmFzZSBhZGRyZXNzIG9mIHNwYXJzZSBtZW1vcnkuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvaW8uaDogRW5jbG9zZSAjaW5jbHVkZSA8YXNtL2lvLmg+CglhbmQgZGVjbGFyYXRpb25zIGluIF9fQkVHSU5fREVDTFMvX19FTkRfREVDTFMuCgpTdW4gQXVnIDE4IDEzOjM3OjA5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZXJyLmg6IE5ldyBmaWxlLiAgV3JhcHBlciBhcm91bmQgbWlzYy9lcnIuaC4KCglDb3JyZWN0IHNvbHV0aW9uIG9mIG11bHRpcGxlIGluaXRpYWxpemF0aW9uIHByb2JsZW0gYnkKCVJvbGFuZCBNY0dyYXRoLgoJKiBjc3UvaW5pdGZpbmkuYzogUmVtb3ZlIGdsb2JhbCB2YXJpYWJsZSBfX2xpYmNfaXNfc3RhdGljLgoJKiBlbGYvcnRsZC5jOiBJbnRyb2R1Y2UgbmV3IGdsb2JhbCB2YXJpYWJsZSBfZGxfc3RhcnRpbmdfdXAuCglJdCdzIG5vbnplcm8gZHVyaW5nIHRoZSBzdGFydHVwLgoJKiBlbGYvZGwtb3Blbi5jIChfZGxfb3Blbik6IFdoZW4gX2RsX3N0YXJ0IGZ1bmN0aW9uIGlzIG5vdAoJYXZhaWxhYmxlIChpLmUuLCBpZiBpbiBzdGF0aWMgbGliYykgc2V0IGBfX2xpYmNfbXVsdGlwbGVfbGliY3MnCgl0byBub256ZXJvIHZhbHVlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbml0LWZpcnN0LmMgKF9fbGliY19tdWx0aXBsZV9saWJjKToKCU5ldyBnbG9iYWwgdmFyaWFibGUuCgkoaW5pdCk6IFVuZG8gY2hhbmdlIG9mIEZyaSBBdWcgIDIgMDM6MTI6NDAgMTk5Ni4KCUluaXRpYWxpemUgYF9fbGliY19tdWx0aXBsZV9saWJjcycgdG8gbm9uemVybyBvbmx5IGlmIHRoaXMgaXMKCWEgc2hhcmVkIGxpYiBjYWxsZWQgZnJvbSBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gYW5kIGRvbid0CgljYWxsIGBwZXJzb25hbGl0eScgYW5kIGBzZXRmcHVjdycgaW4gdGhpcyBjYXNlIGVpdGhlci4KCSogc3lzZGVwcy9nZW5lcmljL3NicmsuYzogVW5kbyBjaGFuZ2Ugb2YgRnJpIEF1ZyAgMiAwMzoxMjo0MCAxOTk2LgoJRG9uJ3QgY2FsbCBicmsoMCkgdW50aWwgYF9fbGliY19tdWx0aXBsZV9saWJjcycgaXMgbm9uemVyby4KCSogc3lzZGVwcy9pMzg2L2RsLW1hY2hpbmUuaCAoUlRMRF9TVEFSVCk6IENsZWFyIF9kbF9zdGFydGluZ191cAoJYmVmb3JlIGp1bXBpbmcgdG8gdXNlciBjb2RlLgoJKiBzeXNkZXBzL202OGsvZGwtbWFjaGluZS5oIChSVExEX1NUQVJUKTogTGlrZXdpc2UuCgpGcmkgQXVnIDE2IDA0OjU5OjAxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaW5pdC1maXJzdC5jOiBSZW1vdmUgaGFjayBmcm9tCglUaHUgQXVnICA4IDEyOjQwOjIwIDE5OTYuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIFskKHN1YmRpcikgPSBjc3VdOiBVc2UKCS1ma2VlcC1pbmxpbmUtZnVuY3Rpb25zIGZsYWcgaW5zdGVhZC4KCkZyaSBBdWcgMTYgMDE6MjQ6MzMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpbmV0L3J1c2VycGFzcy5jICh1c2VycGFzcyk6IEFsbG9jYXRlIGJ1ZmZlciBmb3IgLm5ldHJjIGZpbGUKCW5hbWUgZHluYW1pY2FsbHkuICBSZXBvcnRlZCBieSBBbGFuIENveC4KCVVuY29tbWVudCB3YXJuaW5ncyBhbmQgbWFyayBhcyB0cmFuc2xhdGFibGUuCgoJKiB0aW1lL3N0cmZ0aW1lIChzdHJmdGltZSk6IEFkZCBpbXBsZW1lbnRhdGlvbiBmb3IgJXMgYW5kICV6Cglmb3JtYXQuICBDaGFuZ2UgYmVoYXZpb3VyIGZvciB1bmtub3duIGZvcm1hdCBjaGFyYWN0ZXI6IG5vdwoJc2ltcGx5IHByaW50IGl0LiAgVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvdXIgb2YgcHJpbnRmLgoJUmVwb3J0ZWQgYnkgSmltIE1leWVyaW5nLgoJKiBtYW51YWwvdGltZS50ZXhpOiBEb2N1bWVudCBhbGwgZm9ybWF0cyBhbmQgZmxhZ3Mgb2Ygc3RyZnRpbWUuCgpUaHUgQXVnIDE1IDE4OjAyOjUxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IExvYWRlZCBvYmplY3QgaGFzIHR5cGUgbHRfZXhlY3V0YWJsZSwKCW5vdCBsdF9saWJyYXJ5LgoKCSogbWlzYy9zeXMvc2VsZWN0Lmg6IERlZmluZSBmZF9zZXQgdXNpbmcgdHlwZWRlZiwgbm90ICNkZWZpbmUuCglQcm9wb3NlZCBieSBEYXZpZCBNb3NiZXJnZXItVGFuZy4KClRodSBBdWcgMTUgMTI6NDg6MjEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBwby9oZWFkZXIucG90OiBVc2UgcmVhbCBkZXNjcmlwdGlvbiBsaW5lLgoKVGh1IEF1ZyAxNSAwNDo0Mjo0NCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBXaGVuIHN0YXJ0ZWQgd2l0aCAtLXZlcmlmeSBwcmV2ZW50Cglhbnkgd2FybmluZy4gIEp1c3QgZXhpdCB3aXRoIGFuIGVycm9yLgoJKiBlbGYvbGRkLnNoLmluOiBEb24ndCBydW4gZ2l2ZW4gb2JqZWN0IGRpcmVjdGx5LiAgVGhpcyBmYWlscyBmb3IKCWxpYnJhcmllcy4gIEluc3RlYWQgdXNlICRSVExEIGFnYWluLgoKVGh1IEF1ZyAxNSAwMjowODo1OSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG1hbnVhbC9uc3MudGV4aTogTmV3IGZpbGUuICBEb2N1bWVudCBOU1MuCgkqIG1hbnVhbC9uc3N3aXRjaC50ZXhpOiBOZXcgZmlsZS4gIEV4YW1wbGUgY29uZmlndXJhdGlvbi4KCgkqIG1hbnVhbC9zdHJpbmcudGV4aTogRG9jdW1lbnQgc3RwbmNweSwgc3RyZHVwYSwgYW5kIHN0cm5kdXBhLgoJKiBtYW51YWwvZXhhbXBsZS9zdHJkdXBhLmM6IE5ldyBmaWxlLiAgRXhhbXBsZSBmb3Igc3RyZHVwYS4KCldlZCBBdWcgMTQgMjE6MzY6MTYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRsaWIvc3RydG9kLmMgKFNUUlRPRCk6IENvcnJlY3QgYXNzZXJ0aW9uIGFib3V0IHNpemUgb2YKCXdpbnRfdCBhbmQgd2NoYXJfdC4gIFJlcG9ydGVkIGJ5IERhdmlkIE1vc2Jlcmdlci1UYW5nLgoKTW9uIEF1ZyAxMiAyMjo0MDoxNiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGVsZi9kbC1sb29rdXAuYyAoX2RsX2xvb2t1cF9zeW1ib2wpOiBSZW1vdmUgZmlmdGggcGFyYW1ldGVyCglSRUxPQ19BRERSIGFuZCBtYWtlIE5PUExUIGEgc2V0IG9mIGZsYWdzLiAgQWxsIGNhbGxlcnMKCWNoYW5nZWQuICBEZWxldGUgY29uZGl0aW9uIHRoYXQgY2hlY2tzIGZvciByZXNvbHZpbmcgdG8gdGhlCglsb2NhdGlvbiBiZWluZyBmaWxsZWQgaW4uICBBZGQgY29uZGl0aW9uIHRvIHNraXAgdGhlCglleGVjdXRhYmxlJ3Mgc3ltYm9scyBpZiByZXF1ZXN0ZWQuCgkqIGVsZi9saW5rLmg6IENoYW5nZSBkZWNsYXJhdGlvbiBvZiBfZGxfbG9va3VwX3N5bWJvbAoJYWNjb3JkaW5nbHkuCgkoRExfTE9PS1VQX05PRVhFQywgRExfTE9PS1VQX05PUExUKTogTmV3IGRlZmluaXRpb25zLgoJKiBlbGYvZGwtcmVsb2MuYyAoUkVTT0xWRSk6IFJlbW92ZSBzZWNvbmQgcGFyYW1ldGVyIGFuZCByZW5hbWUKCU5PUExUIHRvIEZMQUdTLgoJKiBlbGYvZGwtcnVudGltZS5jIChSRVNPTFZFKTogTGlrZXdpc2UuCgkqIGVsZi9ydGxkLmMgKFJFU09MVkUpOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsYSk6IFBhc3MKCURMX0xPT0tVUF9OT0VYRUMgYXMgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBSRVNPTFZFIG1hY3JvIGlmCglwcm9jZXNzaW5nIGEgY29weSByZWxvYywgRExfTE9PS1VQX05PUExUIGZvciBhIGp1bXAgc2xvdAoJcmVsb2MsIHplcm8gb3RoZXJ3aXNlLgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsYSk6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvZGwtbWFjaGluZS5oIChlbGZfbWFjaGluZV9yZWwpOiBMaWtld2lzZS4KCSogc3lzZGVwcy9taXBzL2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsKTogTGlrZXdpc2UuCgpXZWQgQXVnIDE0IDE3OjU3OjA4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZVRBR1M6IENsZWFuIHVwIHVzZSBvZiAtLW9taXQtaGVhZGVyIGFuZCAtbiBmb3IgeGdldHRleHQuCgkqIHBvL2hlYWRlci5wb3Q6IEFkZCBlbXB0eSBsaW5lIGF0IGVuZC4KClN1biBBdWcgMTEgMTM6NDU6MzMgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlVEFHUyAoYWxsLXBvdCk6IFJlbW92ZSAkUC9lcnJsaXN0LnBvdCwgYWxsIGVycm9yIG1lc3NhZ2VzCglhcmUgbm93IGluICRQL3N0ZGlvLWNvbW1vbi5wb3QuCgkoWEdFVFRFWFRGTEFHUy1lcnJsaXN0LnBvdCk6IFZhcmlhYmxlIHJlbW92ZWQuCgpNb24gQXVnIDEyIDE5OjI1OjAzIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZXJ1bGVzIChkby1hciwgby1pdGVyYXRvci1kb2l0KTogQ29tcHV0ZSBwYXRoIHRvIGF1dG9sb2NrCglzY3JpcHQgYXQgcnVuIHRpbWUsIG5vdCBjb25maWd1cmUgdGltZS4KCSogY29uZmlnLm1ha2UuaW4sIGNvbmZpZ3VyZS5pbjogVW5kbyBwcmV2aW91cyBjaGFuZ2UuCgpXZWQgQXVnIDE0IDEzOjIwOjAyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9jbG9zZS5TOiBQdXNoIHJldHVybiB2YWx1ZSBvZiB0aHJlYWQKCW9uIHN0YWNrIGFzIGFyZ3VtZW50IGZvciBgX2V4aXQnLiAgUmVwb3J0ZWQgYnkgQW5kcmVhcyBTY2h3YWIuCgpNb24gQXVnIDEyIDE5OjM2OjI1IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9jbG9uZS5TOiBOZXcgZmlsZS4KCldlZCBBdWcgMTQgMDQ6MjI6MzUgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBlbGYvZGwtbG9hZC5jIChfZGxfbWFwX29iamVjdCk6IFNhdmUgbmFtZSBpbiBtYWxsb2NlZCBtZW1vcnkuCgkoX2RsX21hcF9vYmplY3RfZnJvbV9mZCk6IEZyZWUgbmFtZSBvbiBlcnJvci4KCldlZCBBdWcgMTQgMTM6MDA6MDkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdHJpbmcvc3RyZHVwLmM6IFVzZSByZXN1bHQgb2YgbWVtY3B5IHRvIGF2b2lkIHJlbG9hZGluZy4KClR1ZSBBdWcgMTMgMDA6NTU6MDMgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzaGFkb3cvc2dldHNwZW50X3IuYyAoX19zZ2V0c3BlbnRfcik6IENvcHkgc3RyaW5nIHRvIGJ1ZmZlciwgbm90Cgl0aGUgb3RoZXIgd2F5IHJvdW5kLgoKVHVlIEF1ZyAxMyAyMDo1MToyMSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGxpYi9jYW5vbmljYWxpemUuYyAoY2Fub25pY2FsaXplKTogQWRkIGNhc3QgdG8gcHJldmVudAoJd2FybmluZy4KCgkqIE1ha2VydWxlcyAoby1pdGVyYXRvci1kb2l0KTogVXNlIGF1dG9sb2NrLnNoIHdoZW4gcnVubmluZyByYW5saWIuCgpUdWUgQXVnIDEzIDE4OjI2OjQ1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbnNzL25zc3dpdGNoLmMgKF9fbnNzX2NvbmZpZ3VyZV9sb29rdXApOiBVc2UgZmFjdCB0aGF0IGxpc3QgaXMKCXNvcnRlZC4KCglVcGRhdGUgZnJvbSBiaW5kLTQuOS41LVQxQS4KCSogcmVzb2x2L01ha2VmaWxlIChsaWJyZXNvbHYtcm91dGluZXMpOiBBZGQgYmFzZTY0LCBpbmV0X25ldF9udG9wLAoJaW5ldF9uZXRfcHRvbiwgaW5ldF9uZXQuCgoJKiByZXNvbHYvZ2V0aG5hbWFkZHIuYzogSW5jbHVkZSA8c3lzL3R5cGVzLmg+LgoJKiByZXNvbHYvZ2V0bmV0bmFtYWRyLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvaGVycm9yLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvaW5ldF9hZGRyLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvbnNhcF9hZGRyLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX2NvbXAuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfZGF0YS5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19pbml0LmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX21rcXVlcnkuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfcXVlcnkuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfc2VuZC5jOiBMaWtld2lzZS4KCgkqIHJlc29sdi9nZXRobmFtYWRkci5jIFshIFNQUklOVEZfQ0hBUl0gKFNQUklOVEYpOiBDYXN0IHJldHVybgoJdmFsdWUgb2Ygc3ByaW50Zi4KCSogcmVzb2x2L2luZXRfbnRvcC5jOiBMaWtld2lzZS4KCgkqIHJlc29sdi9nZXRobmFtYWRkci5jIFtCU0RdOiBJbmNsdWRlIDxzdGRsaWIuaD4uCglSZW1vdmUgcHJvdG90eXBlIG9mIGdldGhvc3RieW5hbWVfaXB2NC4KCgkqIHJlc29sdi9pbmV0X250b3AuYywgcmVzb2x2L2luZXRfcHRvbi5jOiBVc2UgSVNPIEMgYG1lbSonCglmdW5jdGlvbnMgaW5zdGVhZCBvZiBCU0QgYGIqJyBmdW5jdGlvbnMuCgoJKiByZXNvbHYvbnNhcF9hZGRyLmM6IEFkZCBjb3B5cmlnaHQgbWVzc2FnZS4KCgkqIHJlc29sdi9yZXNfY29tcC5jOiBSZW1vdmUgY29tbWVudCBleHBsYWluaW5nIGxhYmVsIGZvcm1hdC4KCShyZXNfbWFpbG9rKTogQ29ycmVjdCBjaGVjay4KCgkqIHJlc29sdi9yZXNfZGVidWc6IEluY2x1ZGUgbWlzc2luZyBoZWFkZXJzLgoJKF9fZnBfbnF1ZXJ5KTogSGFuZGxlIGB1bnVzZWQnLCBgYWQnLCBhbmQgYGNkJyBiaXRzLgoJKF9fcF9mcW5uYW1lKTogTmV3IGZ1bmN0aW9uIHRvIHByaW50IEZRRE4gZnJvbSBjb21wcmVzc2VkIG5hbWUuCgkoX19wX3JyKTogVXNlIF9fcF9mcW5uYW1lLiAgQ29ycmVjdCBwcmludGluZyBvZiAiLiAgSGFuZGxlIFRfVFhUCgljb3JyZWN0bHkuICBBZGQgaGFuZGxpbmcgb2YgVF9LRVkgYW5kIFRfU0lHLgoJSGFuZGxlIGNsYXNzIGFuZCB0eXBlIG5hbWVzIGJ5IHVzaW5nIG5hbWUgYXJyYXlzIGluc3RlYWQgb2YKCWV4cGxpY2l0IGBzd2l0Y2gnZXMuCgkoX19zeW1fc3RvbiwgX19zeW1fbnRvcywgX19zeW1fbnRvcCk6IE5ldyBmdW5jdGlvbnMgdG8gdXNlIGFycmF5cy4KCShfX2RuX2NvdW50X2xhYmVscywgX19wX3NlY3N0b2RhdGUpOiBOZXcgZnVuY3Rpb25zLgoKCSogcmVzb2x2L3Jlc29sdi5oIChfX1JFUyk6IFVwZGF0ZSB2ZXJzaW9uIG51bWJlci4KCShyZXNfc3ltKTogTmV3IHR5cGUuCglBZGQgI2RlZmluZXMgZm9yIG5ldyBmdW5jdGlvbnMuCglEZWNsYXJlIHN5bV9udG9zLCBzeW1fbnRvcCwgYjY0X250b3AsIGI2NF9wdG9uLCBfX3BfZnFubmFtZSwKCV9fcF9zZWNzdG9kYXRlLCBkbl9jb3VudF9sYWJlbHMuCgoJKiByZXNvbHYvYXJwYS9uYW1lc2VyLmggKF9fQklORCk6IFVwZGF0ZSB2ZXJzaW9uIG51bWJlci4KCUFkZCBLRVlGTEFHXyogYW5kIEFMR09SSVRITV8qIHN5bWJvbHMuCgkoSEVBREVSKTogQWRkIGBhZCcgYW5kIGBjZCcgZmxhZ3MuCgoJKiBpbmV0L2llbnQuaDogQWRkIHByb3RvdHlwZXMgZm9yIGluZXRfbmV0YSwgaW5ldF9uZXRfbnRvcCwKCWFuZCBpbmV0X25ldF9wdG9uLgoKCSogbWFudWFsL21haW50LnRleGk6IERvY3VtZW50IHRoYXQgd2UgdXNlIGJpbmQtNC45LjUuCgkqIElOU1RBTEw6IERpdHRvLgoKTW9uIEF1ZyAxMiAxOTowMzoyMiAxOTk2ICBUaG9tYXMgQnVzaG5lbGwgbi9CU0cgIDx0aG9tYXNAcHNpbG9jaW4uZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL2dlbmVyaWMvZ251L3R5cGVzLmg6IERlY2xhcmUgX19mZF9tYXNrIGFzIGB1bnNpZ25lZCBsb25nJy4KCgkqIG1hY2gvTWFrZWZpbGUgKG1hY2gvbWFjaF9ob3N0LnVoKTogRGVwZW5kIG9uCgkkKG9ianBmeCkvbWFjaC1zeXNjYWxscy5tay4KCSgkKG9ianBmeCltYWNoLXNob3J0Y3V0cy5oKTogRGVwZW5kIG9uICQob2JqcGZ4KW1hY2gvbWFjaF9ob3N0LmguCgkoVGhpcyBmaXhlcyBhIG1ha2UgbG9vcDsgdGhhbmtzIHRvIE1hcmN1cyBEYW5pZWxzCgk8bWFyY3VzQHN5c2MucGR4LmVkdT4gZm9yIHRoZSBwYXRjaC4pCgpNb24gQXVnIDEyIDE2OjQxOjUyIDE5OTYgIFRob21hcyBCdXNobmVsbCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIGlvL2dldHdkLmMgKGdldHdkKSBbISBQQVRIX01BWF06IERvbid0IGFzc3VtZSB0aGF0IHRoZSB1c2VyJ3MKCWJ1ZmZlciBpcyBhbnkgbG9uZ2VyIHRoYW4gdGhlIGFtb3VudCBuZWNlc3NhcnkgdG8gaG9sZCB0aGUKCWZpbGVuYW1lOyB0aGUgSHVyZCBnZXRjd2QgdXNlcyB0aGUgKmVudGlyZSogY29udGVudHMgb2YgdGhlCglidWZmZXIsIGhvd2V2ZXIgbG9uZyBpdCBpcyBzcGVjaWZpZWQgdG8gYmUuCgpNb24gQXVnIDEyIDA0OjMzOjA5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbnNzL25zc3dpdGNoLmMgKF9fbnNzX2RhdGFiYXNlX2xvb2t1cCk6IEFsd2F5cyByZWxlYXNlIGxvY2tzCgliZWZvcmUgcmV0dXJuaW5nLiAgUmVwb3J0ZWQgYnkgTWlsZXMgQmFkZXIuCgpNb24gQXVnIDEyIDAzOjMxOjU4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbnNzL25zc3dpdGNoLmMgKF9fbnNzX2NvbmZpZ3VyZV9sb29rdXApOiAgTmV3IGZ1bmN0aW9uLgoJQWxsb3dzIHRvIHNwZWNpZnkgc2VydmljZXMuCgkqIG5zcy9YWFgtbG9va3VwLmg6IFJlbmFtZSBkYXRhYmFzZSB2YXJpYWJsZSBhbmQgbWFrZSBnbG9iYWwuCgkqIG5zcy9kYXRhYmFzZXMuZGVmOiBOZXcgZmlsZS4gIFJlYWwgbmFtZXMgb2YgYWxsIGRhdGFiYXNlcy4KCgkqIG5zcy9uc3MuaDogTmV3IGZpbGUuICBDb250YWlucyBkZWNsYXJhdGlvbiB1c2VmdWwgZm9yIHVzZXJzCglhbmQgc2VydmljZSBkZXZlbG9wZXJzLgoJKiBuc3MvbnNzd2l0Y2guaDogTW92ZSBzb21lIGRlY2xhcmF0aW9ucyB0byBuc3MvbnNzLmguCgkqIG5zcy5oOiBOZXcgZmlsZS4gIFdyYXBwZXIgYXJvdW5kIG5zcy9uc3MuaC4KCgkqIG5zcy9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBuc3MuaC4KCShkaXN0cmlidXRlcyk6IEFkZCBkYXRhYmFzZXMuZGVmLgoKU3VuIEF1ZyAxMSAxNjoxOTo0MiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCglIZWxwIHRoZSBwb29yIHBlb3BsZSB3aXRoIGZhc3QgbWFjaGluZXMgYnkgbWFraW5nIHN1cmUgb25seQoJb25lIGBhcicgY29tbWFuZHMgd29ya3Mgb24gdGhlIGxpYnJhcnkuCgkqIGF1dG9sb2NrLnNoOiBOZXcgZmlsZS4gIFdyaXR0ZW4gYnkgVG9tIFRyb21leS4KCSogTWFrZXJ1bGVzIChkby1hcik6IENhbGwgYXV0b2xvY2suc2ggc2hlbGwgc2NyaXB0IGluc3RlYWQgb2YKCWRpcmVjdGx5IHVzaW5nIGBhcicuCgkqIGNvbmZpZy5tYWtlLmluOiBNYWtlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgQVVUT0xPQ0sgd2hpY2gKCWdldHMgaW5pdGlhbGl6ZWQgYnkgY29uZmlndXJlLgoJKiBjb25maWd1cmUuaW46IERlZmluZSB2YXJpYWJsZSBBVVRPTE9DSyB0byBwb2ludCB0byBhdXRvbG9jay5zaAoJc2NyaXB0IGFuZCBtYXJrIGl0IHRvIHN1YnN0aXR1dGUuCgoJKiBzdHJpbmcvTWFrZWZpbGU6IEFkZCAtZm5vLWJ1aWx0aW4gZm9yIHRzdC1zdHJsZW4uYywgdG9vLgoKCSogc3lzZGVwcy9nZW5lcmljL3NicmsuYyAoX19zYnJrKTogIEdldCBrZXJuZWwgYnJrIGFkZHJlc3MKCWFsd2F5cyBvbmx5IGlmIGluIHN0YXRpYyBsaWJjIG9yIGlmIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0KCXVzZXMgbGliYy5zby4KClN1biBBdWcgMTEgMDE6MTI6MzggMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaCAoZWxmX2FscGhhX2ZpeF9wbHQpOiBPcHRpbWl6ZSBMRF9CSU5EX05PVwoJc3RhcnR1cCBieSBtb3ZpbmcgSWNhY2hlIGZsdXNoIGZyb20gaGVyZSAuLi4KCShFTEZfTUFDSElORV9SVU5USU1FX1RSQU1QT0xJTkUpOiAuLi4gdG8gaGVyZS4KCShFTEZfTUFDSElORV9VU0VSX0FERFJFU1NfTUFTSyk6IERlbGV0ZTsgaXQgaXMgdW51c2VkLgoKCSogc3lzZGVwcy9hbHBoYS9kaXZyZW0uaDogVXBkYXRlIGNvbW1lbnQgdG8gcmVmbGVjdCB0aGUgYWN0dWFsCgljYWxsaW5nIGNvbnZlbnRpb25zLiAgVGhlIGNvZGUgaXMgYWxyZWFkeSBjb3JyZWN0LgoKU3VuIEF1ZyAxMSAwMTowNjo0MiAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN0cmluZy9NYWtlZmlsZTogQ29tcGlsZSB0ZXN0ZXIgd2l0aCAtZm5vLWJ1aWx0aW4gYXMgd2Ugd2FudCB0bwoJdGVzdCBvdXIgaW1wbGVtZW50YXRpb25zLCBub3QgZ2NjJ3MuCgpTYXQgQXVnIDEwIDEzOjE3OjI3IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzaGFkb3cuaDogTmV3IGZpbGUuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXRpbmV0L2luLmg6IE1vdmUKCV9fQkVHSU5fREVDTFMvX19FTkRfREVDTFMgdXAgc28gbnRvaGwoKSBldCBhbCBhcmUgYnJhY2tldGVkIGFzCgl3ZWxsLgoKCSogc29ja2V0L3N5cy9zb2NrZXQuaCBbX19jcGx1c3BsdXNdOiBVc2Ugb2xkLXN0eWxlIF9fU09DS0FERFJfQVJHLgoJZysrIDIuNy4yIChhbmQgZWFybGllcikgaGFzIG5vIHRyYW5zcGFyZW50IHVuaW9ucyBzdXBwb3J0LgoKRnJpIEF1ZyAgOSAxODo1MDowNiAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaW9wZXJtLmMgKF9idXNfYmFzZV9zcGFyc2UpOiBOZXcKCWZ1bmN0aW9uIHRvIGRldGVybWluZSB0aGUgYmFzZSBhZGRyZXNzIG9mIHNwYXJzZSBidXMgbWVtb3J5LgoJKEFQRUNTXyopOiBSZW5hbWUgdG8gQ0lBXyouCgkoQVBFQ1NfU1BBUlNFX01FTSwgQ0lBX1NQQVJTRV9NRU0pOiBOZXcgbWFjcm9zLgoJKHBsYXRmb3JtKTogQWRkIHNwYXJzZV9idXNfbWVtb3J5X2Jhc2UgbWVtYmVyIGFuZCBpbml0aWFsaXplLgoJKHNwYXJzZV9idXNfbWVtb3J5X2Jhc2UpOiBOZXcgdmFyaWFibGUuCgpUdWUgQXVnICA2IDEwOjIzOjE4IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3Bvc2l4L3R0eW5hbWVfci5jICh0dHluYW1lX3IpLAoJc3lzZGVwcy9wb3NpeC90dHluYW1lLmMgKHR0eW5hbWUpOiBSZXR1cm4gLTEvTlVMTCBpZgoJIV9faXNhdHR5KGZkKSAoUE9TSVguMSBzYXlzIHNvLikKCgkqIHN5c2RlcHMvdW5peC9nZXRsb2dpbi5jIChnZXRsb2dpbik6IEZpeCB0byBjaGVjayBmZCAwIG9ubHkuCglUaGlzIGlzIG5vdCBhIGdyb3NzIGhhY2ssIGFmdGVyIGFsbC0tLWZvciBjb21wYXRpYmlsaXR5LAoJZ2V0bG9naW4oKSByZWFsbHkgc2hvdWxkIGNoZWNrIGZkIDAgb25seSBhbmQgbm90IHRyeSB0byBiYXNlIGl0cwoJb3BlcmF0aW9uIG9uIHRoZSBjb250cm9sbGluZyB0dHkuCgpXZWQgSnVsIDE3IDEwOjU0OjIwIDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvZ2V0bG9naW4uYyAoZ2V0bG9naW4pOiBBZGQgc3RhdGljIHZhcmlhYmxlIE5BTUUsCgljaGFuZ2UgdXRtcF9kYXRhIGZyb20gc3RhdGljIHRvIGF1dG8uCgpTdW4gQXVnIDExIDAyOjU2OjA4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcG9zaXgvdW5pc3RkLmggW19fVVNFX01JU0NdOiBBZGQgcHJvdG90eXBlIGZvciBgbmljZScuCglSZXBvcnRlZCBieSBEYXZpZCBNb3NiZXJnZXItVGFuZy4KClNhdCBBdWcgMTAgMDI6MDU6MjggMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxyaWNoYXJkQHR3aWRkbGUudGFtdS5lZHU+CgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2lzbmFuLmMgW05PX0xPTkdfRE9VQkxFXTogQWRkIHN0cm9uZwoJYWxpYXMgdG8gYF9faXNuYW5sJy4KCkZyaSBBdWcgIDkgMTc6Mzg6NTggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvdGltZXguaDogSW5jbHVkZSA8c3lzL3RpbWUuaD4gdG8KCWdldCBgc3RydWN0IHRpbWV2YWwnLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvYWNjdC5oOiBHZXQgdGltZV90IGZyb20gPHRpbWUuaD4uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tb2R1bGUuaDogR2V0IHNpemVfdCBmcm9tIDxzdGRkZWYuaD4uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9pby5oOiBHZXQgZGVmaW5pdGlvbiBvZiBfX1AuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9rbG9nLmg6IExpa2V3aXNlLgoJKiBnbW9uL3N5cy9nbW9uLmg6IEluY2x1ZGUgPHN5cy90eXBlcy5oPiB0byBnZXQgdV9sb25nLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9kaXJlbnRyeS5oOiBDb21wbGV0ZSB0eXBlcyBpbgoJPGxpbnV4L2RpcmVudC5oPi4KCSogaW8vZnRzLmg6IEluY2x1ZGUgPHN5cy90eXBlcy5oPiB0byBnZXQgZGV2X3QuCglSZXBvcnRlZCBieSBNYXR0aGlhcyBVcmxpY2hzLgoKCSogc3lzZGVwcy9wb3NpeC90ZW1wbmFtZS5jIFtVU0VfSU5fTElCSU9dOiBEb24ndCBjbGVhcgoJX0lPX2ZpbGVfZmxhZ3MuICBJdCdzIHRoZSBzYW1lIGFzIF9mbGFncy4KCVJlcG9ydGVkIGJ5IE1pcXVlbCB2YW4gU21vb3JlbmJ1cmcgPG1pcXVlbHNAUS5jaXN0cm9uLm5sPi4KCldlZCBBdWcgIDcgMTk6Mzg6NDcgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3Jlc291cmNlYml0cy5oOiBBZGQgUkxJTUlUX0FTLgoKVGh1IEF1ZyAgOCAxNjoxNzozOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHB3ZC9nZXRwd2VudC5jOiBEZWZpbmUgQlVGTEVOIGZyb20gTlNTX0JVRkxFTl9QQVNTV0QuCgkqIHB3ZC9nZXRwd2VudF9yLmM6IExpa2V3aXNlLgoJKiBwd2QvZ2V0cHduYW0uYzogTGlrZXdpc2UuCgkqIHB3ZC9nZXRwd25hbV9yLmM6IExpa2V3aXNlLgoJKiBwd2QvZ2V0cHd1aWQuYzogTGlrZXdpc2UuCgkqIHB3ZC9nZXRwd3VpZF9yLmM6IExpa2V3aXNlLgoKCSogZ3JwL2dldGdyZW50LmM6IERlZmluZSBCVUZMRU4gZnJvbSBOU1NfQlVGTEVOX0dST1VQLgoJKiBncnAvZ2V0Z3JlbnRfci5jOiBMaWtld2lzZS4KCSogZ3JwL2dldGdyZ2lkLmM6IExpa2V3aXNlLgoJKiBncnAvZ2V0Z3JnaWRfci5jOiBMaWtld2lzZS4KCSogZ3JwL2dldGdybmFtLmM6IExpa2V3aXNlLgoKCSogcHdkL2ZnZXRwd2VudF9yLmM6IE5ldyBmaWxlLiAgUmVlbnRyYW50IHZlcnNpb24gb2YgZmdldHB3ZW50LgoJKiBwd2QvZmdldHB3ZW50LmM6IFJld3JpdGUgdG8gdXNlIGZnZXRwd2VudF9yLgoJKiBwd2QvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGZnZXRwd2VudF9yLgoJKiBwd2QvcHdkLmg6IEFkZCBwcm90b3R5cGVzIGZvciBfX2ZnZXRwd2VudF9yIGFuZCBmZ2V0cHdlbnRfci4KCgkqIGdycC9mZ2V0Z3JlbnRfci5jOiBOZXcgZmlsZS4gIFJlZW50cmFudCB2ZXJzaW9uIG9mIGZnZXRncmVudC4KCSogZ3JwL2ZnZXRncmVudC5jOiBSZXdyaXRlIHRvIHVzZSBmZ2V0Z3JlbnRfci4KCSogZ3JwL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBmZ2V0Z3JlbnRfci4KCSogZ3JwL2dycC5oOiBBZGQgcHJvdG90eXBlcyBmb3IgX19mZ2V0Z3JlbnRfciBhbmQgZmdldGdyZW50X3IuCgoJSW1wbGVtZW50IHNoYWRvdyBwYXNzd29yZCBsb29rdXAgZnVuY3Rpb25zLiAgVGhpcyBpcyBubyBjb21wbGV0ZQoJc2hhZG93IHBhc3N3b3JkIHN1aXRlLgoJKiBzaGFkb3cvTWFrZWZpbGU6IE5ldyBmaWxlLgoJKiBzaGFkb3cvZmdldHNwZW50LmM6IE5ldyBmaWxlLgoJKiBzaGFkb3cvZmdldHNwZW50X3IuYzogTmV3IGZpbGUuCgkqIHNoYWRvdy9nZXRzcGVudC5jOiBOZXcgZmlsZS4KCSogc2hhZG93L2dldHNwZW50X3IuYzogTmV3IGZpbGUuCgkqIHNoYWRvdy9nZXRzcG5hbS5jOiBOZXcgZmlsZS4KCSogc2hhZG93L2dldHNwbmFtX3IuYzogTmV3IGZpbGUuCgkqIHNoYWRvdy9wdXRzcGVudC5jOiBOZXcgZmlsZS4KCSogc2hhZG93L3NnZXRzcGVudC5jOiBOZXcgZmlsZS4KCSogc2hhZG93L3NnZXRzcGVudF9yLmM6IE5ldyBmaWxlLgoJKiBzaGFkb3cvc2hhZG93Lmg6IE5ldyBmaWxlLgoJKiBzaGFkb3cvc3B3ZC1sb29rdXAuYzogTmV3IGZpbGUuCgkqIHNoYWRvdy9uc3NfZmlsZXMvZmlsZXMtc3B3ZC5jOiBOZXcgZmlsZS4KClRodSBBdWcgIDggMTM6MzM6NDUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9mdGltZS5jOiBOZXcgZmlsZS4gIEF2YWlsYWJsZSBzeXN0ZW0KCWNhbGwgaXMgb25seSBhIHN0dWIuCglSZXBvcnRlZCBieSBNYXR0aGlhcyBVcmxpY2hzLgoKCSogTWFrZWNvbmZpZyBbIWRlZmF1bHRfY2ZsYWdzXTogQ2hhbmdlIGRlZmF1bHQgdmFsdWUgZnJvbSBgLWcnCgl0byBgLWcgLU8nLgoKCSogY29uZmlndXJlLmluOiBSZWNvZ25pemUgaTY4Ni4KCSogc3lzZGVwcy9pMzg2L2k2ODYvSW1wbGllczogRGVmYXVsdCBvbiBpNTg2IG9wdGltaXplZCBjb2RlLgoKVGh1IEF1ZyAgOCAxMjo0MDoyMCAxOTk2ICBNYXR0aGlhcyBVcmxpY2hzICA8c211cmZAc211cmYubm9yaXMuZGU+CgoJKiBNYWtlY29uZmlnIFskKGJ1aWxkLW9taXRmcCkgPT0geWVzXTogQWRkIHRvIENGTEFHUy0uc28KCXZhbHVlIG9mIENGTEFHUy0ubywgbm90IENGTEFHUy1vLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaW5pdC1maXJzdC5jIChpbml0KTogQWRkIHZvbGF0aWxlCglwb2ludGVyIHRvIG91cnNlbGYuICBPdGhlcndpc2UgYGdjYyAtTzMnIG9wdGltaXplZCBpbml0IGF3YXkuCgpUaHUgQXVnICA4IDAxOjQxOjQzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL01ha2VmaWxlOiBVbmRvIGNoYW5nZSBvZiBUdWUgQXVnICA2IDE0OjI3OjExIDE5OTYuCgkqIGVsZi9kbC1zdXBwb3J0OiBBZGQgZGVmaW5pdGlvbiBvZiBgX2RsX3N5c2RlcF9yZWFkX3dob2xlX2ZpbGUnLgoKVGh1IEF1ZyAgOCAwMToxNTo1OSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvaTM4Ni9mcHVfY29udHJvbC5oIChfRlBVX0RFRkFVTFQsIF9GUFVfSUVFRSk6IFNldAoJdG8gMHgxMzdmIHRvIGFsbG93IGxvbmcgZG91YmxlIG9wZXJhdGlvbnMuCgpTdW4gQXVnICA0IDEzOjEyOjA1IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCUJ1ZyBGaXhlczoKCgkqIG5zcy9uc3N3aXRjaC5jIChfcmVzKTogUmVtb3ZlIHJlZHVuZGFudCB2YXJpYWJsZSBkZWZpbml0aW9uLgoJVGhlIHJlYWwgb25lIGlzIGluIHJlc29sdmUvcmVzX2luaXQuYywgYW5kIGhhdmluZyBib3RoIHByZXZlbnRzCgl1c2luZyAtZm5vLWNvbW1vbiB3aGVuIGJ1aWxkaW5nIHRoZSBzaGFyZWQgbGlicmFyeS4KCSogc3VucnBjL3JwY19wcm90LmMgKF9udWxsX2F1dGgpOiBTYW1lLiAgT3JpZ2luYWwgaXMgaW4gcnBjX2NvbW1vbi5jLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvYnJrLlM6IFdoZW4gUElDLCBkZWZpbmUgX19jdXJicmsgYXMKCWEgLmJzcyBvYmplY3Qgbm90IGEgQ09NTU9OIHN5bWJvbC4KCgkqIHN5c2RlcHMvYWxwaGEvYnNkLV9zZXRqbXAuUywgc3lzZGVwcy9hbHBoYS9ic2Qtc2V0am1wLlM6IE11c3QgbG9hZAoJJGdwIGJlZm9yZSByZWZlcmVuY2luZyBfX3NpZ3NldGptcCBzeW1ib2wuICBSZXRhaW4gTElUVVNFIGZvciBzYW1lLgoKCU9wdGltaXphdGlvbnM6CgoJKiBzeXNkZXBzL2FscGhhL3N0cmxlbi5TOiBSZWFycmFuZ2UgZmlyc3Qtd29yZCBzZXR1cCBhbmQgdGhlbnNlIHRoZQoJbWFpbiBsb29wIGZvciBiZXR0ZXIgZHVhbC1pc3N1ZSBvbiBFVjUuICBSZWFycmFuZ2UgYmluYXJ5IHNlYXJjaCB0bwoJcGlwZWxpbmUgYmV0dGVyIGFuZCB0cmltIG9uZSBpbnN0cnVjdGlvbi4KCglDb3NtZXRpYyBDaGFuZ2VzOgoKCSogdGltZS9sb2NhbHRpbWUuYyAobG9jYWx0aW1lX3IpOiBNb3ZlIGxvY2sgZGVjbGFyYXRpb24gYmFjayBuZXh0IHRvCgl0aGUgY29tbWVudCB3aGVyZSBpdCB3YXMgYmVmb3JlIHRoZSA5NjA3MjQgY2hhbmdlLgoKCSogSU5TVEFMTCwgbWFudWFsL21haW50LnRleGk6IGFscGhhLWdudS1saW51eCAtPiBhbHBoYS1BTllUSElORy1saW51eC4KCVRoZSBzZWNvbmQgd29yZCBpcyBzdXBwb3NlZCB0byBiZSB0aGUgaGFyZHdhcmUgbWFudWZhY3R1cmVyLgoKCSogc3lzZGVwcy9hbHBoYS9fbWNvdW50LlM6IFJldGFpbiBMSVRVU0UgZm9yIF9fbWNvdW50LgoJKiBzeXNkZXBzL2FscGhhL3NldGptcC5TOiBSZXRhaW4gTElUVVNFIGZvciBfX3NpZ3NldGptcF9hdXguCgoJKiBzeXNkZXBzL2FscGhhL2RpdnJlbS5oOiBNb3JlIGxvY2FsIGxhYmVscywgcmV0YWluIExJVFVTRSBmb3IgX21jb3VudC4KCgkqIHN5c2RlcHMvYWxwaGEvYWxwaGFldjUvYWRkX24uUywgc3lzZGVwcy9hbHBoYS9hbHBoYWV2NS9sc2hpZnQuUywKCXN5c2RlcHMvYWxwaGEvYWxwaGFldjUvcnNoaWZ0LlMsIHN5c2RlcHMvYWxwaGEvYWxwaGFldjUvc3ViX24uUzoKCVNhbWUgY2xlYW51cHMgYXMgd2l0aCBFVjQgR01QIHN0dWZmLgoKVHVlIEp1bCAyNSAwMzozMDo1NiAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIFttaXNjXSAoc3lzZGVwX3JvdXRpbmVzKTogQWRkIGNsb25lLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9jbG9uZS5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9jbG9uZS5TOiBOZXcgZmlsZS4KClN1biBBdWcgIDQgMDA6MTI6NDEgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dudS90eXBlcy5oOiBEZWNsYXJlIF9fZmRfbWFzayBhcwoJYHVuc2lnbmVkIGxvbmcnLgoKCSogbWlzYy9zeXMvc2VsZWN0Lmg6IERlY2xhcmUgZmRfbWFzayBhcyBhbGlhcyBvZiBfX2ZkX21hc2suCgpTYXQgQXVnICAzIDE2OjIwOjAyIDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pb3Blcm0uYyAocGxhdGZvcm0pOiBBZGQgZW50cnkgZm9yCglNaWthc2EuCgoJKiBzb2NrZXQvc3lzL3NvY2tldC5oIChzZW5kLCBfX3NlbmQsIHNlbmR0byk6IERlY2xhcmUgYnVmZmVyCglwb2ludGVyIGFzIF9fY29uc3QuCgoJKiBzdHJpbmcvdGVzdGVyLmMgKG1haW4pOiBUZXN0IHN0cG5jcHkuCgoJKiBzeXNkZXBzL2dlbmVyaWMvc3RwbmNweS5jIChfX3N0cG5jcHkpOiBGaXggc28gaXQgd29ya3Mgd2l0aG91dAoJc2VnZmF1bHQgd2hlbiBjYWxsZWQgd2l0aCBhbiBOIHRoYXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgZm91ciBhbmQKCXNyY1tOLTFdPT0nXDAnLgoKCSogbWlzYy9zeXNsb2cuYyAoTG9nVHlwZSk6IE5ldyB2YXJpYWJsZS4KCShvcGVubG9nKTogSWYgY29ubmVjdCgpIHdpdGggU09DS19ER1JBTSBmYWlscyB3aXRoIEVQUk9UT1RZUEUsCgl0cnkgYWdhaW4gd2l0aCBTT0NLX1NUUkVBTSAodGhlIExpbnV4IHN5c2xvZ2QgdXNlcyBhIHNvY2tldCBvZiB0aGUKCWxhdHRlciB0eXBlKS4KCSh2c3lzbG9nKTogV2hlbiBMb2dUeXBlPT1TT0NLX1NUUkVBTSwgYWxzbyBzZW5kIEFTQ0lJIE5VTAoJdGVybWluYXRvciBhcyBhIHJlY29yZC1kZWxpbWl0ZXIuICBJZiBfX3NlbmQoTG9nRmlsZSkgZmFpbHMsCgljYWxsIGNsb3NlbG9nKCkgc28gbG9nZmlsZSBnZXRzIHJlLW9wZW5lZCBuZXh0IHRpbWUuCgpXZWQgQXVnICA3IDE1OjE1OjE0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL2RsLW9wZW4gKF9kbF9vcGVuKTogQWRkIGNhc3QgdG8gYXZvaWQgd2FybmluZy4KCgkqIG1hbnVhbC9tZW1vcnkudGV4aTogSW1wcm92ZSBzb21lIGV4YW1wbGVzIHRvIGdpdmUgcmVhZGVycyBiZXR0ZXIKCWFkdmljZTogVXNlIGBzdHBjcHknIGluc3RlYWQgb2YgYHN0cmNhdCcgaWYgcG9zc2libGUuCgkqIG1hbnVhbC9zdHJpbmcudGV4aTogRG9jdW1lbnQgYHN0cnRva19yJyBhbmQgYHN0cnRvaycuCgoJKiBzdW5ycGMvTWFrZWZpbGU6IE1vdmUgYCtnY2N3YXJuJyBkZWZpbml0aW9uIGJlZm9yZSBpbmNsdXNpb24KCW9mIE1ha2Vjb25maWcuCglbJChjcm9zcy1jb21waWxpbmcpPW5vXTogQ2hhbmdlIHRlc3QgYmVmb3JlIG1ha2luZyBsaWJycGNzdmMKCXRvIHRoaXMgZnJvbSAkKGNyb3NzLWNvbXBpbGUpLgoJUmVwb3J0ZWQgYnkgQW5kcmVhcyBTY2h3YWIuCgpUdWUgQXVnICA2IDE0OjI3OjExIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL01ha2VmaWxlIChyb3V0aW5lcyk6IE1vdmUgZGwtc3lzZGVwIHRvIGhlcmUuLi4KCShydGxkLXJvdXRpbmVzKTogLi4uZnJvbSBoZXJlLiAgVGhpcyBzaG91bGQgbWFrZSBzdGF0aWMgbGlua2luZwoJd29yayBhZ2Fpbi4KCgkqIGxvY2FsZS9zZXRsb2NhbGUuYzogQWRkIGxvY2FsIHZhcmlhYmxlIGBsb2NrJyBhbmQgYWRkIGNvZGUgdG8KCWBzZXRsb2NhbGUnIHRvIGF2b2lkIHNpbXVsdGFuZW91cyBjaGFuZ2luZyBvZiBnbG9iYWwgZGF0YS4KCgkqIGNhdGdldHMvY2F0Z2V0cy5jIChjYXRvcGVuKTogVXNlIGBfX3N0cmR1cCcgaW5zdGVhZCBvZiBgc3RyZHVwJy4KCSogY2F0Z2V0cy9vcGVuX2NhdGFsb2cgKF9fb3Blbl9jYXRhbG9nKTogVXNlIGBfX3N0cGNweScsIGBfX29wZW4nLAoJYF9fZnN0YXQnLCBgX19yZWFkJywgYF9fbW1hcCcsIGBfX211bm1hcCcgYW5kIGBfX2Nsb3NlJyBpbnN0ZWFkCglvZiB1bnByb3RlY3RlZCBuYW1lcy4KClR1ZSBBdWcgIDYgMDE6MTM6NTYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJQ2xlYW4gbmFtZSBzcGFjZSBhY2NvcmRpbmcgdG8gSVNPIEMsIElTTyBDL0FtZCAxLCBhbmQgUE9TSVguMS4KCVRoaXMgcmVxdWlyZXMgdG8gcmVuYW1lIHNldmVyYWwgZnVuY3Rpb25zIHRvIHVzZSBfXyBwcm90ZWN0ZWQKCW5hbWVzLgoJKiBkaXJlbnQvZGlyZW50Lmg6IEFkZCBwcm90b3R5cGVzIG9mIF9fb3BlbmRpciwgX19jbG9zZWRpciwKCWFuZCBfX3JlYWRkaXIuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2Nsb3NlZGlyLmM6IFByZXBlbmQgZnVuY3Rpb24gbmFtZSB3aXRoIF9fCglhbmQgbWFrZSBvbGQgbmFtZSBhIHdlYWsgYWxpYXMuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2dldHJsaW1pdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvb3BlbmRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvcmVhZGRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2Nsb3NlZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvb3BlbmRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3JlYWRkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9jbG9zZWRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L29wZW5kaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9yZWFkZGlyLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy91bml4L29wZW5kaXIuYzogQ2FsbCBgX19mY250bCcgaW5zdGVhZCBgZmNudGwnLgoKCSogc3lzZGVwcy9wb3NpeC9nZXRjd2QuYzogQ2FsbCBgX19vcGVuZGlyJywgYF9fcmVhZGRpcicsCglgX19jbG9zZWRpcicgaW5zdGVhZCBvZiB1bnByb3RlY3RlZCBuYW1lcy4KCgkqIGxpYmlvL2ZpbGVkb2FsbG9jLmMgKF9JT19maWxlX2RvYWxsb2NhdGUpOiBDYWxsIGBfX2lzYXR0eScKCWluc3RlYWQgb2YgYGlzYXR0eScgc2luY2UgbGF0ZXIgaXMgbm90IHBhcnQgb2YgSVNPIEMuCgkqIGxpYmlvL2ZpbGVvcHMuYyAoX0lPX2ZpbGVfZm9wZW4pOiBDYWxsIGBfX29wZW4nIGluc3RlYWQgb2YKCWBvcGVuJyBzaW5jZSBsYXRlciBpcyBub3QgcGFydCBvZiBJU08gQy4KCgkqIGxvZ2luL2VuZHV0ZW50LmMgKGVuZHV0ZW50KTogQ2FsbCBgX19lbmR1dGVudF9yJywgbm90CglgZW5kdXRlbnRfcicuCgkqIGxvZ2luL2VuZHV0ZW50X3IuYzogUmVuYW1lIGRlZmluZWQgZnVuY3Rpb24gdG8gYF9fZW5kdXRlbnRfcicsCgltYWtlIGBlbmR1dGVudF9yJyB3ZWFrIGFsaWFzLgoJKiBsb2dpbi9nZXR1dGVudC5jIChnZXR1dGVudCk6IENhbGwgYF9fZ2V0dXRlbnRfcicsIG5vdAoJYGdldHV0ZW50X3InLgoJKiBsb2dpbi9nZXR1dGlkLmMgKGdldHV0aWQpOiBDYWxsIGBfX2dldHV0aWRfcicsIG5vdCBgZ2V0dXRpZF9yJy4KCSogbG9naW4vZ2V0dXRpZF9yLmM6IFJlbmFtZSBkZWZpbmVkIGZ1bmN0aW9uIHRvIGBfX2dldHV0ZW50X3InLAoJbWFrZSBgZ2V0dXRlbnRfcicgd2VhayBhbGlhcy4KCSogbG9naW4vZ2V0dXRsaW5lLmMgKGdldHV0bGluZSk6IENhbGwgYF9fZ2V0dXRsaW5lX3InLCBub3QKCWBnZXR1dGxpbmVfcicuCgkqIGxvZ2luL2dldHV0bGluZV9yLmM6IFJlbmFtZSBkZWZpbmVkIGZ1bmN0aW9uIHRvIGBfX2dldHV0bGluZV9yJywKCW1ha2UgYGdldHV0bGluZV9yJyB3ZWFrIGFsaWFzLgoJKiBsb2dpbi9wdXR1dGxpbmVfci5jOiBSZW5hbWUgZGVmaW5lZCBmdW5jdGlvbiB0byBgX19wdXR1dGxpbmVfcicsCgltYWtlIGBwdXR1dGxpbmVfcicgd2VhayBhbGlhcy4KCSogbG9naW4vc2V0dXRlbnQuYyAoc2V0dXRlbnQpOiBDYWxsIGBfX3NldHV0bGluZV9yJywgbm90Cglgc2V0dXRsaW5lX3InLgoJKiBsb2dpbi9zZXR1dGVudF9yLmM6IFJlbmFtZSBkZWZpbmVkIGZ1bmN0aW9uIHRvIGBfX3NldHV0bGluZV9yJywKCW1ha2UgYHNldHV0bGluZV9yJyB3ZWFrIGFsaWFzLgoJUmVuYW1lIGB1dG1wbmFtZScgdG8gYF9fdXRtcG5hbWUnIGFuZCBtYWtlIGZvcm1lciB3ZWFrIGFsaWFzLgoJKF9fdXRtcG5hbWUpOiBDYWxsIGBfX3N0cmR1cCcsIG5vdCBgc3RyZHVwJy4KCSogbG9naW4vdXRtcC5oOiBBZGQgcHJvdG90eXBlcyBmb3IgbmFtZSBzcGFjZSBjbGVhbiByZWVudHJhbnQKCXZlcnNpb25zLgoJKiBzeXNkZXBzL3VuaXgvZ2V0bG9naW4uYzogQ2FsbCBgX190dHluYW1lX3InLCBgX19zZXR1dGVudF9yJywKCWFuZCBgX19lbmR1dGVudF9yJyBpbnN0ZWFkIG9mIHVucHJvdGVjdGVkIG5hbWVzLgoKCSogbWF0aC9tYXRoLmg6IEFkZCBwcm90b3R5cGUgZm9yIGBfX21hdGhlcnInLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9rX3N0YW5kYXJkLmM6IENhbGwgYF9fbWF0aGVycicgaW5zdGVhZAoJb2YgYG1hdGhlcnInLgoKCSogbnNzL2dldFhYYnlZWS5jOiBDYWxsIF9fIHByb3RlY3RlZCByZWVudHJhbnQgZnVuY3Rpb24uCgkqIG5zcy9nZXRYWGVudC5jOiBMaWtld2lzZS4KCSogbnNzL2dldFhYYnlZWV9yLmM6IERlZmluZSBgZ2V0KicgZnVuY3Rpb24gd2l0aCBfXyBwcm90ZWN0ZWQKCW5hbWUuICBNYWtlIHVzdWFsIG5hbWUgYSB3ZWFrIGFsaWFzLgoJKiBuc3MvZ2V0WFhlbnRfci5jOiBMaWtld2lzZS4KCgkqIHBvc2l4L3VuaXN0ZC5oOiBBZGQgcHJvdG90eXBlIGZvciBgX190dHluYW1lX3InLgoJKiBzeXNkZXBzL3Bvc2l4L3R0eW5hbWVfci5jOiBSZW5hbWUgZnVuY3Rpb24gdG8gYF9fdHR5bmFtZV9yJwoJYW5kIG1ha2UgYHR0eW5hbWVfcicgYSB3ZWFrIGFsaWFzLgoKCSogcmVzb3VyY2Uvc3lzL3Jlc291cmNlLmg6IEFkZCBwcm90b3R5cGUgZm9yIGBfX2dldHJsaW1pdCcuCgkqIHN5c2RlcHMvc3R1Yi9nZXRybGltaXQuYzogUHJlcGVuZCBmdW5jdGlvbiBuYW1lIHdpdGggX18KCWFuZCBtYWtlIG9sZCBuYW1lIGEgd2VhayBhbGlhcy4KCSogc3lzZGVwcy91bml4L3N5c2NhbGxzLmxpc3Q6IFJlbmFtZSBzeXN0ZW0gY2FsbCB0byBgX19nZXRybGltaXQnCglhbmQgbWFrZSBgZ2V0cmxpbWl0JyB3ZWFrIGFsaWFzLgoKCSogbGliYy9zdGRpby9zdGRpby5oOiBBZGQgcHJvdG90eXBlIGZvciBgX192c2NhbmYnLgoJKiBsaWJjL3N0ZGlvL3ZzY2FuZi5jOiBEZS1BTlNJLWZ5LgoJUmVuYW1lIGZ1bmN0aW9uIHRvIGBfX3ZzY2FuZicgYW5kIG1ha2UgYHZzY2FuZicgYSB3ZWFrIGFsaWFzLgoJKiBzdGRpby1jb21tb24vc2NhbmYuYyAoc2NhbmYpOiBVc2UgX0lPX3ZzY2FuZi9fX3ZzY2FuZiBpbnN0ZWFkCglvZiBgdnNjYW5mJy4KCgkqIHN0ZGlvLWNvbW1vbi9yZWctcHJpbnRmLmM6IERlLUFOU0ktZnkuCglSZW5hbWUgZnVuY3Rpb24gdG8gYF9fcmVnaXN0ZXJfcHJpbnRmX2Z1bmN0aW9uJyBhbmQgbWFrZQoJYHJlZ2lzdGVyX3ByaW50Zl9mdW5jdGlvbicgd2VhayBhbGlhcy4KCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jOiBDYWxsIGBfX3djc3J0b21icycgaW5zdGVhZCBvZgoJYHdjc3J0b21icycuCgoJKiBzdGRsaWIvbWJzdG93Y3MuYzogQ2FsbCBgX19tYnNydG93Y3MnIGluc3RlYWQgb2YgYG1ic3J0b3djcycuCgkqIHN0ZGxpYi9tYnRvd2MuYzogQ2FsbCBgX19tYnJ0b3djJyBpbnN0ZWFkIG9mIGBtYnJ0b3djJy4KCSogc3RkbGliL3djc3RvbWJzLmM6IENhbGwgYF9fd2NzcnRvbWJzJyBpbnN0ZWFkIG9mIGB3Y3NydG9tYnMnLgoJKiBzdGRsaWIvd2N0b21iLmM6IENhbGwgYF9fd2NydG9tYicgaW5zdGVhZCBvZiBgd2NydG9tYicuCgkqIHdjc21icy9tYnJ0b3djLmM6IFByZXBlbmQgZnVuY3Rpb24gbmFtZSB3aXRoIF9fIGFuZCBtYWtlIG9sZAoJbmFtZSBhIHdlYWsgYWxpYXMuCgkqIHdjc21icy9tYnNydG93Y3MuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3J0b21iLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzcnRvbWJzLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NoYXIuaDogQWRkIHByb3RvdHlwZXMgZm9yIF9fIHByb3RlY3RlZCB2ZXJzaW9ucy4KCgkqIHN5c2RlcHMvcG9zaXgvc2lnc2V0bWFzay5jIChfX3NpZ3NldG1hc2spOiBDYWxsIGBfX3NpZ3Byb2NtYXNrJwoJaW5zdGVhZCBvZiBgc2lncHJvY21hc2snLgoKCgkqIGdycC9ncnAuaCBbX19VU0VfUkVFTlRSQU5UXTogQWRkIHByb3RvdHlwZXMgZm9yIHJlZW50cmFudAoJdmVyc2lvbiBnZXRncmVudF9yLCBnZXRncmdpZF9yLCBhbmQgZ2V0Z3JuYW1fci4KCSogcHdkL3B3ZC5oIFtfX1VTRV9SRUVOVFJBTlRdOiBBZGQgcHJvdG90eXBlcyBmb3IgcmVlbnRyYW50Cgl2ZXJzaW9uIGdldHB3ZW50X3IsIGdldHB3dWlkX3IsIGdldHB3bmFtX3IgYW5kIF9fIHByb3RlY3RlZAoJbmFtZXMuCgkqIHJlc29sdi9uZXRkYi5oOiBDb21wbGV0ZSByZXdyaXRlLiAgTm8gbW9yZSBCU0QgdWdsaW5lc3MuCgoKCSogbWlzYy9lcnJvci5jIChwcml2YXRlX3N0cmVycm9yKTogVHJhbnNsYXRlIG1lc3NhZ2VzIGZyb20gdGFibGUsCgl0b28uCgoJKiBpby9mY250bC5oOiBQcmV0dHkgcHJpbnRpbmcuCgkqIG1pc2MvZnN0YWIuaDogTGlrZXdpc2UuCgkqIG1pc2MvdHR5ZW50Lmg6IExpa2V3aXNlLgoJKiByZXNvdXJjZS9zeXMvcmVzb3VyY2UuaDogTGlrZXdpc2UuCgkqIHN0cmluZy9hcmd6Lmg6IExpa2V3aXNlLgoJKiBzdHJpbmcvZW52ei5oOiBMaWtld2lzZS4KCglBZGQgc3VwcG9ydCBmb3Igc3ltYm9scyBmcm9tIFBPU0lYLjFjIChQT1NJWCB0aHJlYWRzKS4KCSogcG9zaXgvZ2V0Y29uZi5jOiBIYW5kbGUgbmV3IHN5c2NvbmYgc3ltYm9scy4KCSogcG9zaXgvcG9zaXgxX2xpbS5oOiBEZWZpbmUgX1BPU0lYX1RUWV9OQU1FX01BWCBhbmQKCV9QT1NJWF9MT0dJTl9OQU1FX01BWCB3aXRoIG1pbmltYWwgbWF4aW1hbCB2YWx1ZXMuCgkqIHN5c2RlcHMvZ2VuZXJpYy9jb25mbmFtZS5oOiBEZWZpbmUgbmV3IHN5bWJvbHMuCgkqIHN5c2RlcHMvcG9zaXgvc3lzY29uZi5jOiBIYW5kbGUgbmV3IHN5bWJvbHMuCgkqIHN5c2RlcHMvc3R1Yi9zeXNjb25mLmM6IERpdHRvLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjb25mLmM6IFJlbW92ZWQuICBHZW5lcmljIHZlcnNpb24KCWlzIG9rIG5vdy4KCgkqIHN1bnJwYy9ycGMveGRyLmg6IE1vdmUgZGVmaW5pdGlvbiBvZiB0eXBlIGB4ZHJwcm9jX3QnIHRvCgloYXZlIHJlYWwgcHJvdG90eXBlLgoKCSogc3lzZGVwcy9nZW5lcmljL3Jlc291cmNlYml0cy5oOiBBZGQgbWFjcm8gZGVmaW5pdGlvbiBmb3IKCVJMSU1JVF8qIHZhbHVlcy4gIFNvbWUgc291cmNlcyB0ZXN0IHVzaW5nICNpZmRlZiB3aGV0aGVyIHNwZWNpZmljCglsaW1pdCBpcyBhdmFpbGFibGUuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc3VuL3N1bm9zNC9yZXNvdXJjZWJpdHMuaDogRGl0dG8uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jlc291cmNlYml0cy5oOiBSZW1vdmVkLiAgV2UgbmVlZAoJc2VwYXJhdGUgZmlsZXMgZm9yIHRoZSBhcmNoaXRlY3R1cmVzLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9yZXNvdXJjZWJpdHMuaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvcmVzb3VyY2ViaXRzLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3Jlc291cmNlYml0cy5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9yZXNvdXJjZWJpdHMuaDogTmV3IGZpbGUuCgoJKiBzeXNkZXBzL3Bvc2l4L2dldGR0c3ouYzogUmV3cml0ZSB0byB1c2UgYF9fZ2V0cmxpbWl0JyBmdW5jdGlvbgoJYW5kIG9ubHkgZGVmYXVsdCBvbiBgT1BFTl9NQVgnLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zeXN2NC9nZXRkdHN6LmM6IFJlbW92ZWQuICBEZWZhdWx0IGlzIGFscmVhZHkKCXRoZSBQT1NJWCB2ZXJzaW9uLgoKCSogdGltZS9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgY3RpbWVfci4KCSogdGltZS9hc2N0aW1lLmM6IEFkZCBpbXBsZW1lbnRhdGlvbiBvZiBgYXNjdGltZV9yJy4gIE1ha2UKCWBhc2N0aW1lJyBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiByZWVudHJhbnQgdmVyc2lvbi4KCSogdGltZS9jdGltZV9yLmM6IE5ldyBmaWxlLgoJKiB0aW1lL3RpbWUuaCBbX19VU0VfUkVFTlRSQU5UXTogQWRkIGRlZmluaXRpb24gb2YgYGFzY3RpbWVfcicKCWFuZCBgY3RpbWVfcicuCgpTYXQgQXVnICAzIDE4OjQxOjM2IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbG9jYWxlL0MtY3R5cGUuYyAoX25sX0NfTENfQ1RZUEVfdG91cHBlcik6IEZpeCBFT0YgZW50cnkuCgkoX25sX0NfTENfQ1RZUEUpOiBGaXggb3JkZXJpbmcuCgkqIGxvY2FsZS9jYXRlZ29yaWVzLmRlZiAoTENfQ1RZUEUpOiBBZGQgbWlzc2luZyBjdHlwZS1jbGFzczMyOyBmaXgKCXR5cG8uCgpTYXQgQXVnICAzIDEyOjMxOjA2IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogY3N1L2luaXRmaW5pLmM6IERpc2NvdmVyIHRoZSBtYXhpbXVtIGFsaWdubWVudCBnZW5lcmF0ZWQgYnkgdGhlCgljb21waWxlciB3aGVuIGVtaXR0aW5nIGEgZnVuY3Rpb24uCgkoX2luaXQpOiBNYWtlIHN1cmUgdGhlIGVuZCBvZiB0aGUgY3J0aSBmcmFnbWVudCBpcyBhbGlnbmVkLgoJKF9maW5pKTogTGlrZXdpc2UuCgpGcmkgQXVnICAyIDAzOjEyOjQwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW5pdGZpbmkuYzogKF9fbGliY19pc19zdGF0aWMpOiBOZXcgdmFyaWFibGUuICBXaWxsIGJlCglpbml0aWFsaXplZCBpbiBpbml0LWZpcnN0LmMuICBTb21lIGFjdGlvbnMgaW4gdGhlIGxpYmMgd29yawoJZGlmZmVyZW50IHdoZW4gbGliYyBpcyBzdGF0aWMgb3IgZHluYW1pYy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2luaXQtZmlyc3QuYyAoaW5pdCk6IFVzZQoJYF9fbGliY19pc19zdGF0aWMnIHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIGNhbGwgdG8KCWBwZXJzb25hbGl0eScgYW5kIGBzZXRmcHVjdycgaXMgbmVjZXNzYXJ5LiAgV2hlbiBkb25lIHNldCB2YXJpYWJsZQoJdG8gKy0xIGRlcGVuZGluZyBvbiBsaWJyYXJ5IHR5cGUuCgoJKiBsb2NhbGUvc2V0bG9jYWxlLmMgKHNldGxvY2FsZSk6IFVzZSBnbG9iYWwgdmFyaWFibGUKCWBfX2xpYmNfZW5hYmxlX3NlY3VyZScgaW5zdGVhZCBvZiBjYWxsaW5nIGBnZXR7LGV9e2csdX1pZCgpJyB0bwoJZGV0ZXJtaW5lIHdoZXRoZXIgaXQncyBhIFNFVFtVR11JRCBwcm9ncmFtLgoKRnJpIEF1ZyAgMiAxNDo0MDoyMiAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBmYXN0LmNzLnV0YWguZWR1PgoKCSogVmVyc2lvbiAxLjkzIHRlc3QgcmVsZWFzZS4KCgkqIG1hbnVhbC9NYWtlZmlsZTogVXNlIC1pbmNsdWRlIGZvciBjaGFwdGVycy1pbmNsIHRvby4KCgkqIE1ha2Vjb25maWcgKCtsaW5rKTogQWRkIGJhY2sgc3RhcnQubywgbWlzdGFrZW5seSByZW1vdmVkIGluIGxhc3QKCWNoYW5nZS4KCkZyaSBBdWcgIDIgMDE6MDQ6MDIgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIG5zcy9NYWtlZmlsZSAoZ2VuZXJhdGVkKTogQWRkIGRiLSouYy4KCgkqIHN5c2RlcHMvaTM4Ni9zeXNkZXAuaDogR2V0IGdlbmVyaWMvc3lzZGVwLmggZXhwbGljaXRseSBpbnN0ZWFkIG9mCgl1c2luZyAjaW5jbHVkZV9uZXh0LgoKCSogY29uZmlndXJlLmluICgtLWVuYWJsZS1hZGQtb25zKTogUXVvdGUgbTQgbWFjcm8gYXJncy4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBGb3IgLS12ZXJpZnksIGZhaWwgaWYgbm8gZHluYW1pYyBzZWN0aW9uLgoKVGh1IEF1ZyAgMSAxNDo0MDowMyAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBmYXN0LmNzLnV0YWguZWR1PgoKCSogc3VucnBjL01ha2VmaWxlIFskKGNyb3NzLWNvbXBpbGUpPW5vXTogVGVzdCBiZWZvcmUgbWFraW5nIGxpYnJwY3N2Yy4KCgkqIE1ha2VydWxlcyAoYnVpbGQtc2hsaWIpOiBBZGQgLUIkKGNzdS1vYmpwZngpIHRvIGZpbmQgY3J0W2luXS5vIHRoZXJlLgoKCSogTWFrZWNvbmZpZyAoK3ByZWluaXQsICtwb3N0aW5pdCk6IFByZXBlbmQgJChjc3Utb2JqcGZ4KSBoZXJlLgoJKCtsaW5rKTogTm90IGhlcmUuCgoJKiBzdGRpby1jb21tb24vX2l0b2EuaCAoX2l0b2Ffd29yZCk6IERlY2xhcmUgdW51c2VkIHRvIHN1cHByZXNzCgl3YXJuaW5nIHdoZW4gaW5saW5lIGZ1bmN0aW9uIGlzIGVsaWRlZC4KCSogc3lzZGVwcy9pMzg2L2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfbWF0Y2hlc19ob3N0KTogTGlrZXdpc2UuCgkoZWxmX21hY2hpbmVfcnVudGltZV9zZXR1cCk6IExpa2V3aXNlLgoJKiBlbGYvZHluYW1pYy1saW5rLmggKGVsZl9nZXRfZHluYW1pY19pbmZvKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX2dvdCk6IExpa2V3aXNlLgoJKGVsZl9tYWNoaW5lX2xvYWRfYWRkcmVzcyk6IExpa2V3aXNlLgoKCSogY2F0Z2V0cy9nZW5jYXQuYzogSW5jbHVkZSA8bG9jYWxlLmg+LgoKCSogc3lzZGVwcy91bml4L21rLWxvY2FsX2xpbS5jIChwYXJhbSk6IEFkZCBTWU1MT09QX01BWC9NQVhTWU1MSU5LUy4KCgkqIGxvZ2luL2xvZ3d0bXAuYyAobG9nd3RtcCk6IENhbGwgdGltZSwgbm90IF9fdGltZS4KCgkqIHN5c2RlcHMvZ251L3V0bXBiaXRzLmggKF9IQVZFX1VUX1BJRCk6IE5ldyBtYWNyby4KCSogbG9naW4vbG9naW4uYyAobG9naW4pOiBUZXN0IFtfSEFWRV9VVF9QSURdIHRvIHVzZSB1dF9waWQgbWVtYmVyLgoJKiBsb2dpbi9sb2d3dG1wLmMgKGxvZ3d0bXApOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9pb2N0bC10eXBlcy5oIChzaXplb2YpOiBEZWZpbmUgdG8gMCBhcm91bmQgI2lmCgljb21wYXJpbmcgaW9jdGwgbWFjcm8gdmFsdWVzLgoKCSogc3lzZGVwcy9pMzg2L3N5c2RlcC5oOiBEbyBgI2luY2x1ZGVfbmV4dCA8c3lzZGVwLmg+Jy4KCgkqIG1hbnVhbC9NYWtlZmlsZTogVXNlIC1pbmNsdWRlIGZvciBjaGFwdGVycyB0byBzdXBwcmVzcyB3YXJuaW5nLgoKCSogc3lzZGVwcy9zdHViL3NvY2tldC5jOiBGaXggdHlwZSBvZiBUWVBFIGFyZy4KCSogc3lzZGVwcy9zdHViL3NvY2tldHBhaXIuYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL3N0dWIvX2V4aXQuYyAoX2V4aXQpOiBSZW1vdmUgb2Jzb2xldGUgX19OT1JFVFVSTiBrZXl3b3JkLgoKCSogc3lzZGVwcy9nZW5lcmljL3N5c2RlcC5oOiBOZXcgZmlsZSwgYnJva2VuIG91dCBvZiAuLi4KCSogc3lzZGVwcy91bml4L3N5c2RlcC5oOiAuLi4gaGVyZS4KCShDX0xBQkVMKTogTW92ZWQgb3V0LgoKCSogTWFrZWNvbmZpZyAoc292ZXJzaW9ucy5tayk6IERvbid0IHVzZSBuZXdmYW5nbGVkICR7eCUleX0gc3ludGF4OwoJc3RpY2sgdG8gc2VkLiAgRG8gYGV4aXQgMCcgYXQgZW5kIGJlY2F1c2Ugd2hpbGUgcmV0dXJucyBub256ZXJvLgoKCSogc3lzZGVwcy9pMzg2L3N5c2RlcC5oOiBOZXcgZmlsZSwgYnJva2VuIG91dCBvZiAuLi4KCSogc3lzZGVwcy91bml4L2kzODYvc3lzZGVwLmg6IC4uLiBoZXJlLiAgR2VuZXJpYyBhc20gbWFjcm9zIG1vdmVkIG91dC4KCgkqIHN5c2RlcHMvc3R1Yi9zdGRpb19saW0uaCAoTF9jdGVybWlkLCBMX2N1c2VyaWQpOiBNYWNyb3MgcmVtb3ZlZC4KCVRoZXkgYXJlIGRlZmluZWQgdW5jb25kaXRpb25hbGx5IGluIGxpYmlvL3N0ZGlvLmguCgoJKiBlbGYvZGwtcnVudGltZS5jOiBJbmNsdWRlIDxzdGRkZWYuaD4gZm9yIGBOVUxMJyBkZWZuLgoJKiBlbGYvZGwtY2FjaGUuYzogTGlrZXdpc2UuCgpNb24gSnVsIDI5IDE5OjIwOjA1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgWyQoc3ViZGlyID09IG1pc2NdCgkoc3lzZGVwX2hlYWRlcnMpOiBBZGQgc3lzL3N5c21hY3Jvcy5oLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvc3lzbWFjcm9zLmg6IE5ldyBmaWxlLgoKV2VkIEp1bCAzMSAxNDoyMTozNiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHRlcm1pb3MvdGVybWlvcy5oIFtfX09QVElNSVpFX19dOiBSZW1vdmUgIm9wdGltaXphdGlvbiIgZm9yCgl0Y2dldGF0dHIuICBXZSBoYXZlIHdlYWsgYWxpYXNlcyBub3cuCgkqIHN0ZGxpYi9zdGRsaWIuaCBbX19PUFRJTUlaRV9fICYmIF9fR05VQ19fID49IDJdOiBSZW1vdmUKCSJvcHRpbWl6YXRpb25zIiBmb3IgcmFuZG9tIGZ1bmN0aW9ucy4KCk1vbiBKdWwgMjkgMjA6MzM6NDIgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXRpbmV0L2luLmggKG50b2hsLCBudG9ocywgaHRvbmwsCglodG9ucykgW19fQklHX0VORElBTl06ICN1bmRlZiB0aGVtIGJlZm9yZSBkZWZpbmluZyB0byBhdm9pZAoJcmVkZWZpbml0aW9uIHdhcm5pbmcuCgpNb24gSnVsIDI5IDIwOjI4OjI3IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogdGltZS90aW1lLmg6IERvbid0IG9wdGltaXplIHR6c2V0KCkgdG8gX190enNldCgpIHdoaWNoIGJ5cGFzc2VzCgl0aGUgX190enNldF9sb2NrLgoKVHVlIEp1bCAzMCAxNToxNDo1MCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogc3VucnBjL3JwYy9wbWFwX2NsbnQuaDogRml4IGJvdGNoZWQgcGF0Y2ggZm9yIG11bHRpcGxlIGluY2x1c2lvbgoJcHJvdGVjdGlvbi4KClR1ZSBKdWwgMzAgMDI6NDg6MjggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBsb2NhbGUvbG9hZGxvY2FsZS5jIChfbmxfbG9hZF9sb2NhbGUpOiBDaGFuZ2UgY2FzdCB0byBgc2l6ZV90JwoJdG8gYmUgNjQtYml0IGNsZWFuLgoJUmVwb3J0ZWQgYnkgUmljaGFyZCBIZW5kZXJzb24gPHJ0aEB0YW11LmVkdT4uCgpUdWUgSnVsIDMwIDE1OjA0OjUwIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtY29sbGF0ZS5jIChjb2xsYXRlX291dHB1dCk6IEZpeCB0eXBvIHJlcG9ydGVkIGJ5CglEYXZpZCBNaWxsZXIuCgpUdWUgSnVsIDMwIDEzOjIzOjEzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL3NldGxvY2FsZS5jIChzZXRsb2NhbGUpOiBEb24ndCB0cnkgdG8gZnJlZSBDIGxvY2FsZQoJZGF0YS4KCVJlcG9ydGVkIGJ5IE1hdHRoaWFzIFVybGljaHMuCgpUdWUgSnVsIDMwIDE0OjM1OjE3IDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9kbC1zeXNkZXAuYwkoX19vcGVuKTogVXNlIG9wZW5fZmlsZS4KCShvcGVuX2ZpbGUpOiBOZXcgZnVuY3Rpb24sIGNvbnRlbnRzIG1vc3RseSBmcm9tIF9fb3Blbi4KCShfZGxfc3lzZGVwX3JlYWRfd2hvbGVfZmlsZSk6IE5ldyBmdW5jdGlvbi4KClNhdCBKdWwgMjcgMTE6MjM6NTkgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlICgkKGNvbW1vbi1vYmpwZngpZXJybm9zLmQpOiBRdW90ZQoJYC4uJyBkb3RzIGluIHNlZCBzZWFyY2ggc3RyaW5nLgoKTW9uIEp1bCAyOSAwMToyNzowNyAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogc3VucnBjL3JwYy9ycGNfbXNnLmg6IEZpeCBib3RjaGVkIHBhdGNoIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KCXByb3RlY3Rpb24uCgpTdW4gSnVsIDI4IDIzOjQ2OjE0IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBjb25maWd1cmUuaW46IEdyb2sgYC0tZW5hYmxlLWFkZC1vbnM9RElSMSxESVIyLC4uLicsIGFuZCBjb25maWd1cmUKCWluIHRob3NlIGRpcmVjdG9yaWVzLgoJKiBjb25maWcubWFrZS5pbiAoYWRkLW9ucyk6IE5ldyB2YXJhaWJsZSwgc2V0IGZyb20gQHN1YmRpcnNALgoJKiBNYWtlZmlsZSAoc3ViZGlycyk6IEFkZGVkICQoYWRkLW9ucykgYXQgdGhlIGVuZC4KCgkqIHRpbWUvc3RyZnRpbWUuYyAoc3RyZnRpbWU6IGRvX251bWJlcik6IEluaXRpYWxpemUgUFJJTlRFRCB0bwoJTUFYRElHSVRTIGluIGNhc2UgUCBpcyBudWxsIGFuZCBzbyBzcHJpbnRmIGlzIG5ldmVyIGFjdHVhbGx5IGNhbGxlZC4KCk1vbiBKdWwgMjkgMDI6NDY6MjMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJQWRkIHN1cHBvcnQgZm9yIHRoZSB0by1iZS13cml0dGVuIGludGVybmF0aW9uYWxpemVkIHJlZ2V4cC4KCVRoaXMgY29kZSBtdXN0IGJlIGFibGUgdG8gdXNlIGNvbGxhdGlvbiBzeW1ib2xzIGFuZCBjb2xsYXRpb24KCWVxdWl2YWxlbnQgY2xhc3Nlcy4KCSogbG9jYWxlL0MtY29sbGF0ZS5jIChfbmxfQ19MQ19DT0xMQVRFX3N5bWJvbF9oYXNoLAoJX25sX0NfTENfQ09MTEFURV9zeW1ib2xfc3RyaW5ncywgX25sX0NfTENfQ09MTEFURV9zeW1ib2xfY2xhc3Nlcyk6CglOZXcgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgY29sbGF0aW9uIGNsYXNzZXMuCgkqIGxvY2FsZS9jYXRlZ29yaWVzLmRlZjogQWRkIG5ldyBkZXNjcmlwdGlvbnMgZm9yIGNvbGxhdGlvbiBzeW1ib2xzCglhbmQgY29sbGF0aW9uIGNsYXNzZXMuCgkqIGxvY2FsZS9sYW5naW5mby5oOiBBZGQgY29uc3RhbnRzIGZvciBjb2xsYXRpb24gc3ltYm9scyBhbmQKCWNvbGxhdGlvbiBjbGFzc2VzLgoJKiBsb2NhbGUvbGMtY29sbGF0ZS5jOiBBZGQgbmV3IGdsb2JhbCB2YXJpYWJsZXMgZm9yIGNvbGxhdGlvbiBzeW1ib2xzCglhbmQgY29sbGF0aW9uIGNsYXNzZXMuCgkoX25sX3Bvc3Rsb2FkX2NvbGxhdGUpOiBJbml0aWFsaXplIG5ldyB2YXJpYWJsZXMuCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC1jb2xsYXRlLmM6IEFkZCBjb2RlIHRvIGVtaXQgdGFibGVzIGZvcgoJY29sbGF0aW9uIHN5bWJvbHMgYW5kIGNvbGxhdGlvbiBjbGFzc2VzLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlcy5oOiBDaGFuZ2UgcHJvdG90eXBlIGZvciBgY29sbGF0ZV9vdXRwdXQnLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jZmlsZS5jICh3cml0ZV9hbGxfY2F0ZWdvcmllcyk6IENhbGwKCWBjb2xsYXRlX291dHB1dCcgd2l0aCBuZXcgYXJndW1lbnQuCgkqIGxvY2FsZS9sb2NhbGVpbmZvLmg6IEFkZCBkZWNsYXJhdGlvbiBmb3IgbmV3IGdsb2JhbCB2YXJzLgoJKHVuaW9uIGxvY2FsZV9kYXRhX3ZhbHVlKTogTmV3IG1lbWJlciB3c3RyIGZvciBgd2NoYXJfdCcgc3RyaW5ncy4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZS1zcGVjLmM6IEhhbmRsZSBgY29sbGF0ZS1jbGFzc2VzJwoJa2V5d29yZCBhbmQgcHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgYXZhaWxhYmxlIGNvbGxhdGlvbiBjbGFzc2VzLgoJKiBsb2NhbGUvc3RybGVuLWhhc2guaDogTmV3IGZpbGUuICBTaW1wbGUgaGFzaGluZyBmdW5jdGlvbiB3aGljaAoJdGFrZXMgYSBzdHJpbmcgd2l0aCBrbm93biBsZW5ndGguCgkqIGxvY2FsZS9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBzdHJsZW4taGFzaC5oLgoJKGxvY2FsZS1tb2R1bGVzKTogTmV3IHZhci4gIEFkZGl0aW9uYWwgZmlsZXMgZm9yIGBsb2NhbGUnIHByb2dyYW0uCgoJKiBsb2NhbGUvQy1jdHlwZS5jOiBSZXdyaXRlIHRvIGF2b2lkIHVzaW5nIHN0cmluZyBmb3IgZ2l2aW5nIHZhbHVlcwoJd2hpY2ggYXJlIG9mIHR5cGUgYHVfaW50MzJfdCcuCglDb3JyZWN0IGVudHJ5IGZvciBFT0YgaW4gdG91cHBlciBhbmQgdG9sb3dlciB0YWJsZXMuCgoJKiBsb2NhbGUvbG9hZGxvY2FsZS5jIChfbmxfbG9hZF9sb2NhbGUpOiAgQWRkIGNhc3QgdG8gcHJldmVudAoJd2FybmluZy4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC1jdHlwZS5jIChjdHlwZV9vdXRwdXQpOiBBZGQgY29kZSB0byBtYWtlCglzdXJlIHRoYXQgYWxsIHRhYmxlcyBpbiBiaW5hcnkgZmlsZSBhcmUgd29yZC1hbGlnbmVkLgoKCSogbG9jYWxlL3Byb2dyYW1zL2xvY2ZpbGUuYyAod3JpdGVfbG9jYWxlX2RhdGEpOiBDb3JyZWN0IGhhbmRsaW5nCglvZiBMQ19NRVNTQUdFUyBsb2NhbGUuICBDcmVhdGUgZGlyZWN0b3J5IGlmIG5lY2Vzc2FyeS4KCgkqIGxvY2FsZS9zZXRsb2NhbGUuYyAoc2V0bG9jYWxlKTogQWRkIGNhc3QgdG8gYXZvaWQgd2FybmluZy4KCgkqIHN0cmluZy9zdHJpbmcuaDogQWRkIHByb3RvdHlwZSBmb3IgYF9fc3RybmR1cCcuCgpXZWQgSnVsIDI0IDE5OjEwOjAwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogd2NzbWJzL21icnRvd2MuYzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KClN1biBKdWwgMjggMjI6NDA6MjUgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZS5pbiAoTElCQ19MSU5VWF9WRVJTSU9OKTogVXBkYXRlIHRvCgkyLjAuMTA7IHNvbWUgcHJvYmxlbXMgd2VyZSByZXBvcnRlZCB3aXRoIGFuIGVhcmxpZXIgdmVyc2lvbiwgYW5kIHRoaXMKCW9uZSBpcyBrbm93biB0byB3b3JrLgoKCSogc3lzZGVwcy9nZW5lcmljL2RsLXN5c2RlcC5jIChfX2xpYmNfZW5hYmxlX3NlY3VyZSk6IE5ldyB2YXJpYWJsZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvZGwtc3lzZGVwLmM6IExpa2V3aXNlLgoKU2F0IEp1bCAyNyAxMzowMjowOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBJZ25vcmUgYXJndW1lbnRzIHdoZW4gZW52aXJvbm1lbnQgdmFyaWFibGUKCUxEX1RSQUNFX0xPQURFRF9PQkpFQ1RTIGlzIHNldC4KClN1biBKdWwgMjggMTk6NDI6NTEgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9kbC1zeXNkZXAuYyAoX2RsX3N5c2RlcF9zdGFydCk6IEluaXRpYWxpemUKCV9fbGliY19lbmFibGVfc2VjdXJlIGluc3RlYWQgb2YgX2RsX3NlY3VyZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvZGwtc3lzZGVwLmMgKF9kbF9zeXNkZXBfc3RhcnQpOiBMaWtld2lzZS4KCSogZWxmL2RsLWxvYWQuYyAoX2RsX21hcF9vYmplY3QpOiBDaGVjayBfX2xpYmNfZW5hYmxlX3NlY3VyZSBpbnN0ZWFkCglvZiBfZGxfc2VjdXJlLgoJKiBlbGYvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGVuYmwtc2VjdXJlLgoJKGVsaWRlLXJvdXRpbmVzLnNvKTogSGVyZSB0b28uCgkqIHN5c2RlcHMvZ2VuZXJpYy9lbmJsLXNlY3VyZS5jOiBOZXcgZmlsZS4KCSogcG9zaXgvdW5pc3RkLmggW19fVVNFX0dOVV06IERlY2xhcmUgYF9fbGliY19lbmFibGVfc2VjdXJlJyBmbGFnLgoJKiBlbGYvZGwtc3VwcG9ydC5jIChfZGxfc2VjdXJlKTogVmFyaWFibGUgcmVtb3ZlZC4KCSogZWxmL3J0bGQuYzogTGlrZXdpc2UuICBSZXBsYWNlIGFsbCB1c2VzIHdpdGggX19saWJjX2VuYWJsZV9zZWN1cmUuCgpTdW4gSnVsIDI4IDE5OjI2OjQwIDE5OTYgIERhdmlkIFMuIE1pbGxlciAgPGRtQG5ldGVuZy5lbmdyLnNnaS5jb20+CgoJKiBzeXNkZXBzL21pcHMvZGwtbWFjaGluZS5oIChFTEZfTUFDSElORV9SVU5USU1FX1RSQU1QT0xJTkUpOgoJRGVjbGFyZSBfZGxfcnVudGltZV9yZXNvbHZlIHdpdGggX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpIHNvIHRoZQoJY29tcGlsZXIgZG9lc24ndCBlbGlkZSBpdC4KCShlbGZfbWFjaGluZV9yZWwpOiBGb2xsb3cgSnVsIDE0IGNoYW5nZSBpbiBzeXNkZXBzL2kzODYvZGwtbWFjaGluZS5oLgoKU2F0IEp1bCAyNyAwMjo1ODo0OSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IFRha2UgbmV3IG9wdGlvbiAtLXZlcmlmeSB3aGVuIHJ1biBkaXJlY3RseS4KCUluIHZlcmlmeSBtb2RlLCBleGl0IHdpdGggc3RhdHVzIHplcm8gaWZmIHRoZSBhcmd1bWVudCBvYmplY3QncwoJUFRfSU5URVJQIG1hdGNoZXMgYXJndlswXS4KCSogZWxmL2xkZC5zaC5pbjogVXNlICR7UlRMRH0gLS12ZXJpZnkgYW5kIG9ubHkgcnVuIHRoZSBwcm9ncmFtIGlmIGl0CglleGl0cyB3aXRoIHplcm8gc3RhdHVzLiAgVGhpcyBtYWtlcyBgbGRkJyBzZWN1cmUgYWdhaW4uCgpGcmkgSnVsIDI2IDIyOjQ5OjU4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IEltcGxlbWVudCBMRF9UUkFDRV9MT0FERURfT0JKRUNUUwoJZW52aXJvbm1lbnQgdmFyaWFibGUgaGFuZGxpbmcuICBUaGlzIG1ha2VzIHRoZSBkeW5hbWljIGxpbmtlcgoJb25seSBwcmludCBsb2FkZWQgbGlicmFyaWVzIGFuZCBxdWl0LgoKCSogZWxmL2xkZC5zaC5pbjogRG9uJ3QgdXNlIGBydGxkIC0tbGlzdCcgYnV0IGluc3RlYWQKCUxEX1RSQUNFX0xPQURFRF9PQkpFQ1RTIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHByaW50IG5lZWRlZAoJb2JqZWN0cy4KClNhdCBKdWwgMjcgMDI6MDM6MjYgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGRiL21ha2VkYi5jIChtYWluKTogUHJpbnQgdmVyc2lvbiBvbiBzdGRvdXQsIG5vdCBzdGRlcnIuICBEb24ndCBleGl0CglhZnRlciBwcmludGluZyB2ZXJzaW9uIHVudGlsIGFmdGVyIGRvaW5nIHVzYWdlIGZvciAtLWhlbHAuCgkobG9uZ19vcHRpb25zLCBtYWluLCB1c2FnZSk6IFJlbmFtZSAtbC8tLWxvd2VyY2FzZSBvcHRpb24gdG8KCS1mLy0tZm9sZC1jYXNlICgtZiBtYXRjaGVzIHNvcnQpLgoKU2F0IEp1bCAyNyAwNDozMjozMSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRiL21ha2VkYi5jOiBOZXcgZmlsZS4gIEltcGxlbWVudCBwcm9ncmFtIHRvIGNyZWF0ZSBzaW1wbGUgPGRiLmg+CglkYXRhYmFzZSBmcm9tIHRleHR1YWwgaW5wdXQuICBUaGlzIHdpbGwgYmUgdXNlZCBmb3IgbnNzX2RiLgoKU2F0IEp1bCAyNyAwMToyNDowNSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogc3VucnBjL3JwYy9hdXRoX3VuaXguaDogRml4IG1pc2FwcGxpZWQgcGF0Y2hlcyBpbiBsYXN0IGNoYW5nZXMuCgkqIHN1bnJwYy9ycGMvcG1hcF9jbG50Lmg6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjL2F1dGguaDogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGMvcG1hcF9ybXQuaDogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGMvcnBjX21zZy5oOiBMaWtld2lzZS4KClNhdCBKdWwgMjcgMDQ6Mzc6MzQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdHJpbmcvc3RyaW5nLmggKHN0cm5kdXBhKTogQ2hhbmdlIHRvIHVzZSByZXR1cm4gdmFsdWUgb2YKCWBtZW1jcHknIGZvciBtb3JlIHBlcmZvcm1hbmNlLgoJKiBzdHJpbmcvc3RybmR1cC5jOiBMaWtld2lzZS4KCgkqIHN0cmluZy9zdHJpbmcuaCAoc3RyZHVwYSk6IERvbid0IGNhbGwgX19idWlsdGluX2FsbG9jYSBpbiBhcmd1bWVudC4KCVRoaXMgbWlnaHQgbGVhZCB0byBwcm9ibGVtcy4KCShzdHJuZHVwYSk6IExpa2V3aXNlLgoKRnJpIEp1bCAyNiAxNToyNDoyNSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN1bnJwYy9ycGMvYXV0aC5oOiBBZGQgcHJvdGVjdGlvbiBhZ2FpbnN0IG11bHRpcGxlIGluY2x1c2lvbgoJYW5kIGNoYW5nZSBLJlIgcHJvdG90eXBlcyB0byBBTlNJIHByb3RvdHlwZXMuCgkqIHN1bnJwYy9ycGMvYXV0aF91bml4Lmg6IERpdHRvLgoJKiBzdW5ycGMvcnBjL2NsbnQuaDogRGl0dG8uCgkqIHN1bnJwYy9ycGMvcG1hcF9jbG50Lmg6IERpdHRvLgoJKiBzdW5ycGMvcnBjL3BtYXBfcHJvdC5oOiBEaXR0by4KCSogc3VucnBjL3JwYy9wbWFwX3JtdC5oOiBEaXR0by4KCSogc3VucnBjL3JwYy9ycGNfbXNnLmg6IERpdHRvLgoJKiBzdW5ycGMvcnBjL3N2Yy5oOiBEaXR0by4KCSogc3VucnBjL3JwYy9zdmNfYXV0aC5oOiBEaXR0by4KCSogc3VucnBjL3JwYy94ZHIuaDogRGl0dG8uCgpGcmkgSnVsIDI2IDIwOjM5OjQyIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBjdHlwZS90ZXN0X2N0eXBlLmM6IFRlc3QgRU9GIHRvby4KCkZyaSBKdWwgMjYgMTg6MDY6NTggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdW5ycGMvcnBjL2F1dGguaDogQWRkIF9fQkVHSU5fREVDTFMgYW5kIF9fRU5EX0RFQ0xTLgoJKiBzdW5ycGMvcnBjL2F1dGhfdW5peC5oOiBMaWtld2lzZS4KCSogc3VucnBjL3JwYy9jbG50Lmg6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjL25ldGRiLmg6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjL3BtYXBfY2xudC5oOiBMaWtld2lzZS4KCSogc3VucnBjL3JwYy9wbWFwX3Byb3QuaDogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGMvcnBjX21zZy5oOiBMaWtld2lzZS4KCSogc3VucnBjL3JwYy9zdmMuaDogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGMvc3ZjX2F1dGguaDogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGMveGRyLmg6IExpa2V3aXNlLgoKCSogc3VucnBjL3JwYy9wbWFwX2NsbnQuaDogTW92ZSBkZWZpbml0aW9uIG9mIHR5cGUgYHJlc3VsdHByb2NfdCcKCXRvIGhlcmUgZnJvbS4uLgoJKiBzdW5ycGMvcG1hcF9ybXQuYzogLi4uaGVyZS4KCkZyaSBKdWwgMjYgMTY6MTA6NDMgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIGxvZ2luL3B1dHV0bGluZV9yLmMgKHB1dHV0bGluZV9yKTogT25seSBjYWxsIGdldHV0aWRfciBpZiBJRCBoYXMgYQoJdmFsaWQgdXRfaWQgZmllbGQuCgkqIGxvZ2luL2dldHV0aWRfci5jIChnZXR1dGlkX3IpOiBNYXJrIFVUTVBfREFUQS0+bG9jX3V0bXAgaW52YWxpZAoJaWYgYSBzZWFyY2ggZmFpbHMuCgpGcmkgSnVsIDI2IDAwOjM2OjUwIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21pcHMvZGwtbWFjaGluZS5oOiBOZXcgZmlsZSwgY29udHJpYnV0ZWQgYnkgS2F6dW1vdG8gS29qaW1hCgk8a2tvamltYUBpbmZvLmthbmFnYXdhLXUuYWMuanA+LgoKRnJpIEp1bCAyNiAwNDo0MToyOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGludGwvbGliaW50bC5oOiBEZWZpbmUgb3B0aW1pemluZyBtYWNyb3MgaWYgX19PUFRJTUlaRV9fIGlzCglkZWZpbmVkLCBub3QgX19PUFRJTUlaRUQuCgkoX25sX21zZ19jYXRfY250cik6IE1vdmUgZGVjbGFyYXRpb24gb3V0c2lkZSBtYWNybyBkZWZpbml0aW9uCgl0byBwcmV2ZW50ICJuZXN0ZWQgZXh0ZXJuIiB3YXJuaW5nLgoJKGRjZ2V0dGV4dCk6IFJlbmFtZSBsb2NhbCB2YXJpYWJsZSBgcmVzdWx0JyB0byBgX19yZXN1bHQnLgoKVGh1IEp1bCAyNSAyMjo0NjozMCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZWRlZi5jIChfX3Byb2duYW1lKTogUmVtb3ZlIGRlY2wuCgkobWFpbik6IFVzZSBwcm9ncmFtX2ludm9jYXRpb25fc2hvcnRfbmFtZSBpbnN0ZWFkIG9mIF9fcHJvZ25hbWUuCgkodXNhZ2UpOiBVc2UgcHJvZ3JhbV9pbnZvY2F0aW9uX25hbWUgaW5zdGVhZCBvZiBfX3Byb2duYW1lLgoKRnJpIEp1bCAyNiAwMzo0NjowOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGNhdGdldHMvZ2VuY2F0LmM6IFVzZSAibGliYyIgaW5zdGVhZCBvZiBQQUNLQUdFLgoJKiBsb2NhbGUvbG9jYWxlZGVmLmM6IERpdHRvLgoJKiBsb2NhbGUvbG9jYWxlLmM6IERpdHRvLgoKCSogbG9jYWxlL2ZpbmRsb2NhbGUuYyAoX25sX2ZpbmRfbG9jYWxlKTogTGl0dGxlIG9wdGltaXphdGlvbi4KCVVzZSBuZXcgZnVuY3Rpb24gYHN0cm5kdXAnLgoKCSogbG9jYWxlL2xvYWRsb2NhbGUuYzogTGl0dGxlIG9wdGltaXphdGlvbi4gIFVzZSBjb25zdGFudCB2YWx1ZQoJZnJvbSBgX25sX2NhdGVnb3J5X251bV9pdGVtcycgaW5zdGVhZCBvZiBieXRlLW9yZGVyIGRlcGVuZGVuZAoJdmFsdWUgZnJvbSBmaWxlLgoKCSogbG9jYWxlL3Byb2dyYW1zL2xkLXRpbWUuYyAodGltZV9hZGQpOiBDb3JyZWN0IHN0cmluZyBjb25zdGFudC4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGUtc3BlYy5jOiBOZXcgZmlsZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZS5jOiBDYWxsIGBsb2NhbGVfc3BlY2lhbCcgZnVuY3Rpb24gaWYKCW5vIG90aGVyIGZpZWxkIG1hdGNoZXMuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmM6IE5vIG5lZWQgdG8gZGVmaW5lIGBwcm9ncmFtX25hbWUnLgoJVXNlIGdsb2JhbCB2YXJpYWJsZSBgX19wcm9nbmFtZScuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jZmlsZS5jICh3cml0ZV9sb2NhbGVfZGF0YSk6IEFsd2F5cyB3cml0ZQoJTENfTUVTU0FHRVMgZGF0YSBpbiBMQ19NRVNTQUdFUy9TWVNfTENfTUVTU0FHRVMgZmlsZS4gIFRoaXMgaXMKCW5lY2Vzc2FyeSBzaW5jZSBtZXNzYWdlIGNhdGFsb2dzIGFyZSBhbHNvIGluc3RhbGxlZCBpbiB0aGUKCUxDX01FU1NBR0VTLyBkaXJlY3RvcnkuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvc3RyaW5ndHJhbnMuYyAoQUREQyk6IENvcnJlY3RseSB1c2UgYGVuY29kZV9jaGFyJwoJZnVuY3Rpb24gaW5zdGVhZCBvZiB3cml0aW5nIHNpbmdsZSBieXRlcy4KCShlbmNvZGVfY2hhcik6IEFsc28gaGFuZGxlIGxpdHRsZSBlbmRpYW4uCgoJKiBsb2NhbGUvc2V0bG9jYWxlLmMgKG5ld19jb21wb3NpdGVfbmFtZSk6IExpdHRsZSBvcHRpbWl6YXRpb24uCglVc2UgcmV0dXJuIHZhbHVlIG9mIGBtZW1jcHknLgoKCSogbWlzYy90dHllbnQuaDogUHJldHR5IHByaW50IHByb3RvdHlwZXMsIGFkZCBtaXNzaW5nIHBhcmFtZXRlcgoJbmFtZXMsIHByZXBlbmQgcGFyYW1ldGVyIG5hbWVzIHdpdGggX18gIGFuZCB1c2UgYF9fY29uc3QnIGluc3RlYWQKCW9mIGBjb25zdCcuCgkqIHBvc2l4L3VuaXN0ZC5oOiBEaXR0by4KCSogc3RkbGliL3N0ZGxpYi5oOiBEaXR0by4KCSogc3RyaW5nL3N0cmluZy5oOiBEaXR0by4KCgkqIHBvc2l4L2dldGNvbmYuYzogRGUtQU5TSS1meS4gIFJlY29nbml6ZSBQT1NJWC4yIGNvbnN0YW50IG5hbWVzLgoJVXNlIGBlcnJvcicgZnVuY3Rpb24gaW5zdGVhZCBvZiBkb2luZyBpdCBieSBoYW5kLgoJKiBzeXNkZXBzL3Bvc2l4L3N5c2NvbmYuYzogRGUtQU5TSS1meS4KCUhhbmRsZSBfU0NfQ09MTF9XRUlHSFRTX01BWC4KCSogc3lzZGVwcy9zdHViL3N5c2NvbmYuYzogSGFuZGxlIF9TQ19DSEFSQ0xBU1NfTkFNRV9NQVgsCglfU0NfQ09MTF9XRUlHSFRTX01BWCwgX1NDX0VRVUlWX0NMQVNTX01BWCwgX1NDXzJfTE9DQUxFREVGCglzaW5jZSB0aGVzZSBkbyBub3QgZGVwZW5kIG9uIHRoZSBwbGF0Zm9ybS4KCUFkZCBQT1NJWC40IHN5bWJvbHMuCgoJKiBwb3NpeC9wb3NpeDJfbGltLmg6IEFkZCBtaXNzaW5nIGRlZmluaXRpb24gb2YKCV9QT1NJWDJfQ09MTF9XRUlHSFRTX01BWC4KCUNoYW5nZSBfUE9TSVgyX0VRVUlWX0NMQVNTX01BWCBhbmQgX1BPU0lYMl9DSEFSQ0xBU1NfTkFNRV9NQVgKCXRvIGhpZ2ggdmFsdWVzIHNpbmNlIHdlIGhhdmUgbm8gZml4ZWQgbGltaXQuCgoJKiBzeXNkZXBzL2dlbmVyaWMvY29uZm5hbWUuaDogQWRkIF9TQ19QQUdFX1NJWkUgYXMgYWxpYXMgZm9yCglfU0NfUEFHRVNJWkUgZm9yIGJ1Z2d5IHN5c3RlbXMgKD0gSFAgVVgpIG91dCB0aGVyZS4KCgkqIHdjc21icy9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgbWJzbnJ0b3djcyBhbmQgd2NzbnJ0b21icy4KCSogd2NzbWJzL21ic25ydG93Y3MuYzogTmV3IGZpbGUuICBOb24tc3RhbmRhcmQgaW1wbGVtZW50YXRpb24uCgkqIHdjc21icy93Y3NucnRvbWJzLmM6IERpdHRvLgoJKiB3Y3NtYnMvd2NoYXIuaCBbX19VU0VfR05VXTogQWRkIHByb3RvdHlwZXMgZm9yIG1ic25ydG93Y3MgYW5kCgl3Y3NucnRvbWJzLgoKVGh1IEp1bCAyNSAwMDoyNTo1NCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBuc3MvbnNzX2RiL2RiLVhYWC5jOiBLaWxsIHRyYWlsaW5nIDsgZnJvbSBsb2NrIGRlZm4gYXMgYSBtYXR0ZXIgb2YKCWNvdXJzZS4KCSogbnNzL2dldFhYZW50X3IuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3N3aXRjaC5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1YWFguYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2RpcnN0cmVhbS5oIChzdHJ1Y3QgX19kaXJzdHJlYW0pOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC90ZWxsZGlyLmMgKHN0cnVjdCByZWNvcmQpOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2RpcnN0cmVhbS5oIChzdHJ1Y3QgX19kaXJzdHJlYW0pOiBMaWtld2lzZS4KClRodSBKdWwgMjUgMDA6NTM6MDYgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZS5pbiAoTElCQ19MSU5VWF9WRVJTSU9OKTogTmV3CgltYWNybywgbm93IHB1dCB0aGUgbmVlZGVkIExpbnV4IHZlcnNpb24ganVzdCBvbmNlLCBoZXJlOyB1cGRhdGUgdG8KCW5lZWRpbmcgbGludXgtMi4wLjMgaGVhZGVycy4KCShsaWJjX2N2X2xpbnV4VkVSKTogTmV3IG1hY3JvIGRlcml2ZWQgZnJvbSB0aGF0LgoJKGtlcm5lbCBoZWFkZXIgY2hlY2spOiBVc2UgdGhvc2UgbWFjcm9zIGFuZCBzb21lIG00IG1hZ2ljIHRvIHJlcGxhY2UKCWhhcmQtY29kZWQgYDIwMScgYW5kIGAyLjAuMScgaW4gc2V2ZXJhbCBwbGFjZXMuCgoJKiBNYWtlcnVsZXMgKCQobGliZGlyKS9saWJjLnNvKTogRml4IHR5cG9zIGluIGdlbmVyYXRlZCBjb21tZW50LgoKV2VkIEp1bCAyNCAxNzowMjozMCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHRpbWUvbG9jYWx0aW1lLmM6IE1vdmUgbG9jayB2YXJpYWJsZSBkZWNsYXJhdGlvbiB0byBlbmQgb2YKCXZhcmlhYmxlIGRlY2xhcmF0aW9ucyBzaW5jZSBpZiBpcyBhIGR1bW15IG1hY3JvIHRoZSA7IGF0IHRoZQoJZW5kIHRlcm1pbmF0ZXMgdGhlIHZhcmlhYmxlIHNlY3Rpb24gb2YgdGhlIGZ1bmN0aW9uLgoKCSogdGltZS90enNldC5jOiBVbmRlZmluZSBgdHpzZXQnIGJlZm9yZSBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KCVVzZSBgd2Vha19mdW5jdGlvbicgbWFjcm8gaW5zdGVhZCBvZiBgd2Vha19zeW1ib2wnLgoKV2VkIEp1bCAyNCAxODo1NzozMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGxpYi9zdHJ0b3VxLmM6IEFkZGl0aW9uYWwgd2VhayBhbGlhcyBpcyBgc3RydG91bGwnLCBub3QKCWBzdHJvdHVsbCcuCgpXZWQgSnVsIDI0IDE4OjI2OjIzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL0MtY3R5cGUuYzogSW5jcmVtZW50IG51bWJlciBvZiBmaWVsZHMgYWZ0ZXIgY2hhbmdlCglmcm9tIFdlZCBKdW4gMTkgMDM6MjQ6NTggMTk5Ni4KClR1ZSBKdWwgMjMgMTg6MTM6MzcgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlIChycGN1c2VybGlicyk6IE5ldyB2YXJpYWJsZS4KCSgkKGNvbW1vbi1vYmpwZngpbGliYy5zbyk6IE1vdmUgZGVwcyBpbnRvIHRoYXQsIHVzZSBpdC4KCVskKHN1YmRpcikgPSBlbGZdICgkKG9ianBmeClsaWJydGxkLnNvKTogRGVwZW5kIG9uCgkkKHJwY3VzZXJsaWJzOi5zbz1fcGljLmEpLgoJKiBlbGYvTWFrZWZpbGUgKCQob2JqcGZ4KWxpYnJ0bGQuc28pOiBKdXN0IGRlcGVuZCBvbiBsaWJjX3BpYy5hOyBkb24ndAoJdXNlICQoTERMSUJTLWMuc28pLgoKVGh1IEp1bCAxOCAyMTo0MToyNSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zdHBuY3B5LmM6IEZpeCBzZW1hbnRpY3MgdG8gbWFrZSBgc3RwbmNweSAoZCwgcywKCW4pJyBlcXVpdmFsZW50IHRvIGBzdHJuY3B5IChkLCBzLCBuKSwgZCArPSBzdHJubGVuIChkLCBuKScuCgpUdWUgSnVsIDIzIDAyOjQ5OjU4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL2lzby00MjE3LmRlZjogQWRkIEluZGlhIHRvIGNvbW1lbnQgZm9yIHN5bWJvbCAiSU5SICIuCglSZXBvcnRlZCBieSBSYWphIFIgSGFyaW5hdGggIDxoYXJpbmF0aEBjcy51bW4uZWR1Pi4KClNhdCBKdWwgMjAgMTQ6MDM6NDUgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL202OGsvZGwtbWFjaGluZS5oIChlbGZfbWFjaGluZV9yZWxhKTogUmVtb3ZlIGJvZ3VzCgkjdW5kZWYgUkVTT0xWRS4KClN1biBKdWwgMjEgMDY6NDg6MzggMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHRpbWUvdHpzZXQuYzogSW5jbHVkZSA8bGliYy1sb2NrLmg+LgoJKF9fdHpzZXRfbG9jayk6IE5ldyBsb2NrIHZhcmlhYmxlLgoJKHR6c2V0KTogTmV3IGZ1bmN0aW9uICh3ZWFrIGRlZm4pLCBubyBsb25nZXIgd2VhayBhbGlhcyBmb3IgX190enNldC4KCUNhbGwgX190enNldCB3aGlsZSBob2xkaW5nIF9fdHpzZXRfbG9jay4KCSogdGltZS9sb2NhbHRpbWUuYzogSW5jbHVkZSA8bGliYy1sb2NrLmg+LgoJKF9fbG9jYWx0aW1lX3IpOiBIb2xkIF9fdHpzZXRfbG9jayB3aGlsZSBkb2luZyB0aGUgd29yay4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zZXRlbnYuYyAoX19lbnZpcm9uKTogQ2hhbmdlIGNvbmRpdGlvbmFsIGZvciAjZGVmaW5lCglmcm9tIFshSEFWRV9HTlVfTERdIHRvIFshX0xJQkNdLgoJW19MSUJDXTogSW5jbHVkZSA8bGliYy1sb2NrLmg+IGFuZCBkZWZpbmUgYSBsb2NrLgoJKExPQ0ssIFVOTE9DSyk6IE5ldyBtYWNyb3MsIG5vLW9wcyBmb3IgWyEgX0xJQkNdLgoJKHNldGVudiwgdW5zZXRlbnYpOiBVc2UgdGhlbS4KClN1biBKdWwgMjEgMDE6NDQ6MzkgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NmaWxlLmMgKHdyaXRlX2xvY2FsZV9kYXRhKTogRGVhbCB3aXRoIG1pc3NpbmcKCVVJT19NQVhJT1YuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zb2NrZXQuYyAoc29ja2V0KTogTWFrZSBUWVBFIGFuIGludC4KCSogc3lzZGVwcy9tYWNoL2h1cmQvc29ja2V0cGFpci5jIChzb2NrZXRwYWlyKTogTGlrZXdpc2UuCgpTYXQgSnVsIDIwIDIxOjU1OjMxIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJV2luMzIgaGFja3MgZnJvbSA8Um9iX1R1bGxvaEB0aXZvbGkuY29tPi4KCSogcG9zaXgvZ2xvYi5jIFtXSU4zMl06IERvbid0IGluY2x1ZGUgPHB3ZC5oPjsgZG9uJ3QgdXNlIGRfaW5vOwoJdXNlIHZvaWQgKiBmb3IgbXlfcmVhbGxvYzsgaW5jbHVkZSA8bWFsbG9jLmg+IGZvciBhbGxvY2EuCgkoZ2xvYikgW1dJTjMyXTogVXNlICJjOi91c2Vycy9kZWZhdWx0IiBmb3IgfiBpZiBubyBIT01FIHZhcmlhYmxlLgoJKiBwb3NpeC9mbm1hdGNoLmggW1dJTjMyXTogVXNlIHByb3RvdHlwZXMgZXZlbiBpZiBbIV9fU1REQ19fXS4KCSogcG9zaXgvZ2xvYi5oOiBMaWtld2lzZS4KClNhdCBKdWwgMjAgMTM6Mjg6NTIgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NlbGVjdC5jIChfX3NlbGVjdCk6IERvbid0IHBvbGwgb24gdGhlIGxhc3QKCWNhbGwgX19pb19zZWxlY3QgdW5sZXNzIHRoZXJlJ3Mgb25seSBhIHNpbmdsZSBkZXNjcmlwdG9yLCBhcyBlYWNoCglkZXNjcmlwdG9yIG5vdyBoYXMgaXRzIG93biByZXBseSBwb3J0LgoJSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBkZXNjcmlwdG9yLCBqdXN0IHVzZSBpdHMgcmVwbHkgcG9ydCBmb3IKCWV2ZXJ5dGhpbmcgYW5kIGRvbid0IGJvdGhlciBjcmVhdGluZyB0aGUgcG9ydCBzZXQuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC91bmFtZS5jICh1bmFtZSk6IERlcmVmIFVOQU1FIHRvIGdldCBub2RlbmFtZS4KCTx1bmlzdGQuaD46IE5ldyBpbmNsdWRlLgoKCSogc3lzZGVwcy9tYWNoL2xpYmMtbG9jay5oIChfX2xpYmNfbG9ja19kZWZpbmUpOiBCYWNrc2xhc2hpZnkKCWNvbnRpbnVhdGlvbiBsaW5lLgoKU2F0IEp1bCAyMCAwNzoxNTozMyAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogY3J5cHQvTWFrZWZpbGUsIGNyeXB0L25vY3J5cHQuYzogUmVtb3ZlZC4gIEl0IGlzIGlsbGVnYWwgdG8gZXhwb3J0Cglmcm9tIHRoZSBVU0EgYW55IHNvZnR3YXJlIHRoYXQgZXZlbiBtYWtlcyBpdCBlYXN5IHRvIGRyb3AgaW4gYW4KCWVuY3J5cHRpb24gbW9kdWxlIG9mIGZvcmVpZ24gb3JpZ2luLgoJKiBNYWtlcnVsZXMgKGNyeXB0b2JqZGlyKTogVmFyaWFibGUgcmVtb3ZlZC4KCSgkKGxpYmRpcikvbGliYy5zbyk6IFJlbW92ZSBkZXAgb24gbGliY3J5cHQuc28kKGxpYmNyeXB0LnNvLXZlcnNpb24pLgoJKiBNYWtlZmlsZSAoc3ViZGlycyk6IFJlbW92ZSBjcnlwdC4KCkZyaSBKdWwgMTkgMTU6NDU6MjAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBsb2NhbGUvQy1tZXNzYWdlcy5jIChfbmxfQ19MQ19NRVNTQUdFUyk6IEFkZCBtaXNzaW5nIEtsZWVuZQoJb3BlcmF0b3IgdG8geWVzZXhwciBhbmQgbm9leHByIHN0cmluZy4KCkZyaSBKdWwgMTkgMTU6MTA6MzcgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHN1bnJwYy94ZHJfbWVtLmMgKHhkcm1lbV9wdXRsb25nKTogRG9uJ3QgY2FzdCBMUCB0byBpbnQzMiAodGhlCglvbGQgY29kZSB3b3VsZCBoYXZlIGZhaWxlZCBvbiBhIGJpZy1lbmRpYW4gNjQtYml0IGFyY2hpdGVjdHVyZSkuCgkqIHN1bnJwYy94ZHJfc3RkaW8uYyAoeGRyc3RkaW9fcHV0bG9uZyk6IERpdHRvLgoKCSogc3VucnBjL3hkci5jICh4ZHJfaW50KTogSGFuZGxlIFhEUl9GUkVFIGNhc2UuCgkoeGRyX3VfbG9uZyk6IFVzZSBzd2l0Y2ggaW5zdGVhZCBvZiBjaGFpbiBvZiBpZi1zdGF0ZW1lbnRzLgoJUmVtb3ZlIGdyYXRpdG91cyBwYXJlbnRoZXNlcyBhcm91bmQgcmV0dXJuIGV4cHJlc3Npb25zLgoJKHhkcl9lbnVtKTogT3BlbiBjb2RlIGNhc2Ugd2hlcmUgSU5UX01BWDxMT05HX01BWC4KCgkqIHN1bnJwYy9zdmMuYyAoc3ZjX2dldHJlcXNldCk6IEluY3JlbWVudCBTT0NLIGJ5IDMyLCBub3QgTkZEQklUUy4KCgkqIHN1bnJwYy9wb3J0bWFwLmMgKHJlZ19zZXJ2aWNlKTogRGVjbGFyZSBBTlMgYW5kIFBPUlQgYXMgbG9uZywKCW5vdCBpbnQuCgpGcmkgSnVsIDE5IDE2OjU2OjQxIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBkbGZjbi5oLCBkYi5oOiBOZXcgd3JhcHBlciBoZWFkZXJzLgoKCSogcG9zaXgvZ2xvYi5oIFshX0FNSUdBICYmICFWTVNdOiBDaGVjayB0aGlzIGluc3RlYWQgb2YganVzdCBbIV9BTUlHQV0KCWZvciBgc3RydWN0IHN0YXQ7JyBmb3J3YXJkIGRlY2wuCgpGcmkgSnVsIDE5IDIyOjI1OjE5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL2lzby00MjE3LmRlZjogQWRkIHNvbWUgbW9yZSBzdGFuZGFyZGl6ZWQgY3VycmVuY3kKCXN5bWJvbHMuCgpGcmkgSnVsIDE5IDEzOjE4OjAyIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBodXJkL3JlcG9ydC13YWl0LmMgKGRlc2NyaWJlX251bWJlcik6IFVzZSB1bnNpZ25lZCBsb25nIGludCBmb3IgSi4KClRodSBKdWwgMTggMTI6MzM6NTcgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAYmFhbHBlcmF6aW0uZnJvYi5jb20+CgoJKiBSdWxlcyAoZHVtbXkubywgZW1wdHkubyk6IFRhcmdldHMgcmVtb3ZlZC4KCShkdW1teS5jLCBlbXB0eS5jKTogTmV3IHRhcmdldHMgcmVwbGFjZSB0aGVtLgoKVGh1IEp1bCAxOCAxMTo0MjozOSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogY3J5cHQvTWFrZWZpbGUgKGxpYi1ub3JhbmxpYik6IERlcGVuZCBvbgoJJChvYmpwZngpbGliY3J5cHQuc28kKGxpYmNyeXB0LnNvLXZlcnNpb24pLgoJKHN1YmRpcik6IEZpeCBuYW1lLgoKVGh1IEp1bCAxOCAwNDozMzoyMSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBiYWFscGVyYXppbS5mcm9iLmNvbT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2Vycm5vcy5hd2s6IE1vdmUgRVdPVUxEQkxPQ0sgY2hlY2sgYmVmb3JlIGVycm5vPT0wCgljaGVjay4gIG1pYidzIGNsdWVsZXNzIGhhY2tpbmcgYnJva2UgaXQuCgpUaHUgSnVsIDE4IDA0OjI3OjIxIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBNYWtlcnVsZXMgKCQobGliZGlyKS9saWJjLnNvKTogQWRkIG1pc3NpbmcgLyBhZnRlciAkKGNyeXB0b2JqZGlyKS4KCldlZCBKdWwgMTcgMTA6NTQ6MjAgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIG1pc2Mvc3lzL3VzdGF0Lmg6IE5ldyBmaWxlLgoJKiBtaXNjL3VzdGF0Lmg6IERpdHRvLgoJKiBzeXNkZXBzL2dlbmVyaWMvdXN0YXRiaXRzLmg6IERpdHRvLgoJKiBzeXNkZXBzL3N0dWIvdXN0YXQuYzogRGl0dG8uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3VzdGF0Yml0cy5oOiBEaXR0by4KCSogbWlzYy9NYWtlZmlsZSAoaGVhZGVycyk6IE1lbnRpb24gdXN0YXQuaCwgc3lzL3VzdGF0LmgsIGFuZAoJdXN0YXRiaXRzLmguCgkocm91dGluZXMpOiBNZW50aW9uIHVzdGF0LgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3RhcnQuUzogTW92ZSB0byAuLi4KCSogc3lzZGVwcy9hbHBoYS9lbGYvc3RhcnQuUzogaGVyZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IE1lbnRpb24ga2xvZ2N0bCBpbgoJYWxwaGFiZXRpY2FsbHkgY29ycmVjdCBwbGFjZS4gIE1lbnRpb24gdXN0YXQuCgoJKiBzeXNkZXBzL3VuaXgvYWxwaGEvc3lzZGVwLlM6IE1ha2UgZXJybm8gYSBic3Mgc3ltYm9sLCBub3QgYQoJY29tbW9uIHN5bWJvbCAobWFrZXMgZXJybm8gYWNjZXNzaWJsZSBmcm9tIGdkYikuCgoJKiBsb2dpbi9wdXR1dGxpbmVfci5jIChwdXR1dGxpbmVfcik6IFRlc3QgdXRfaWQgaW4gcmVwb3NpdGlvbmluZwoJdGVzdCwgbm90IHV0X3R5cGUuCgoJKiBsb2dpbi9sb2d3dG1wLmMgKGxvZ3d0bXApOiBSZWltcGxlbWVudGVkLiAgTXVzdCBlbnN1cmUgdGhhdCBhCglyZWNvcmQgYWx3YXlzIGdldHMgYXBwZW5kZWQgYXQgZW5kIG9mIGZpbGUgKHd0bXAgaXMgYSBsb2cgZmlsZSwKCWFmdGVyIGFsbCkuICBTZXQgdXRfdHlwZSB0byBERUFEX1BST0NFU1MgaWYgbmFtZSBpcyBlbXB0eS4KCgkqIGxvZ2luL2dldHV0aWRfci5jIChnZXR1dGlkX3IpOiBIYW5kbGUgc2VhcmNoIGZvciBVVF9UWVBFIGluCglzZXBhcmF0ZSBsb29wIGZyb20gc2VhcmNoIGZvciBVVF9JRC4gIEZpeCBjb2RlIHNvIGl0IGlzIGluCglzeW5jIHdpdGggVW5peCBtYW4gcGFnZS4KCgkqIGxvZ2luL2dldHV0bGluZV9yLmMgKGdldHV0bGluZV9yKTogU3RvcCBzZWFyY2hpbmcgb25seSBpZgoJdXRfbGluZSBtYXRjaGVzIGFuZCB0eXBlIGlzIGVpdGhlciBVU0VSX1BST0NFU1Mgb3IgTE9HSU5fUFJPQ0VTUy4KClR1ZSBKdWwgMTYgMTU6MDY6MTggMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25ldGluZXQvaW4uaDogQmFzZSBvbiA8bGludXgvaW4uaD4gdG8KCWF2b2lkIGR1cGxpY2F0ZSBkZWNsYXJhdGlvbnMuCgpTdW4gSnVsIDE0IDE5OjA4OjU1IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBtYW51YWwvbWFpbnQudGV4aSAoU3VwcG9ydGVkIENvbmZpZ3VyYXRpb25zKTogQWRkIGFscGhhLWdudS1saW51eAoJYW5kIGFscGhhLWdudS1saW51eGVjb2ZmIHRhcmdldHMuCgpGcmkgSnVsIDEyIDE2OjU4OjQ0IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXRpbmV0L2luLmg6IERlY2xhcmUgYmluZHJlc3Zwb3J0KCkuCgpTYXQgSnVuIDIyIDIzOjMwOjA3IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiByZXNvbHYvcmVzX3NlbmQuYyAocmVzX3NlbmQpOiBEZWNsYXJlIEZST01MRU4gYXMgc2l6ZV90IGluc3RlYWQKCW9mIGludC4KCgkqIHJlc29sdi9yZXNfY29tcC5jIChyZXNfaG5vayk6IFVzZSBlbXB0eSBzdGF0ZW1lbnQgaW4gcGxhY2UKCW9mIE5VTEwgKHdoaWNoIGdlbmVyYXRlcyBhICJ1c2VsZXNzIGV4cHJlc3Npb24iIHdhcm5pbmcgaW4KCWdjYykuCgpXZWQgSnVsIDE3IDIzOjU2OjM1IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGJhYWxwZXJhemltLmZyb2IuY29tPgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvTWFrZWZpbGUgKCQoY29tbW9uLW9ianBmeCllcnJub3MuZCk6IFJlcGxhY2UgLi4vCgl3aXRoICQoLi4pIGluIG91dHB1dC4KCldlZCBKdWwgMTcgMjE6NTM6NDUgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGVsZi9NYWtlZmlsZSAoZGwtcm91dGluZXMpOiBBZGQgZGwtY2FjaGUuCgkqIGVsZi9kbC1jYWNoZS5jOiBOZXcgZmlsZS4KCSogZWxmL2RsLWxvYWQuYyAoX2RsX21hcF9vYmplY3QpOiBDaGVjayBjYWNoZSBiZWZvcmUgZGVmYXVsdCBwYXRoLgoKV2VkIEp1bCAxNyAyMDo0MTozMCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGlvLWNvbW1vbi92ZnNjYW5mLmM6IE1ham9yIGNoYW5nZS4gIE5vdyByZWFkIGNoYXJhY3RlcgoJZnJvbSBzdHJlYW0gb25seSBpZiBuZWVkZWQuICBCZWZvcmUgaXQgd2FzIHJlYWQgYWZ0ZXIgdGhlCglwcmV2aW91cyBjaGFyYWN0ZXIgd2FzIHVzZWQuCglCdWcgcmVwb3J0ZWQgYnkgTWFydGluIEdvaWsgPGdvbWEwMDAyQEZILUthcmxzcnVoZS5ERT4KCgkqIHN0ZGlvLWNvbW1vbi90c3RzY2FuZi5jOiBDaGFuZ2UgdGVzdCBwcm9ncmFtIHNvIHRoYXQgcmV0dXJuCgl2YWx1ZSBpcyAhPSAwIGlmIG9uZSB0ZXN0IGZhaWxlZC4KCldlZCBKdWwgMTcgMTc6MDg6NDggMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbTY4ay9NYWtlZmlsZSAoY3J5cHQpOiBWYXJpYWJsZSByZW1vdmVkLgoJKiBzeXNkZXBzL3NwYXJjL01ha2VmaWxlOiBMaWtld2lzZS4KCgkqIHZlcnNpb24uaCAoVkVSU0lPTik6IFVwZGF0ZSB0byAxLjkzLgoKCSogTWFrZXJ1bGVzICgkKGxpYmRpcikvbGliYy5zbyk6IERlcGVuZCBvbgoJJChjb21tb24tb2JqcGZ4KWxpYmNyeXB0LnNvJChsaWJjcnlwdC5zby12ZXJzaW9uKS4KCgkqIGNyeXB0L25vY3J5cHQuYzogTmV3IGZpbGUuCgkqIE1ha2VmaWxlIChzdWJkaXJzKTogQWRkIGNyeXB0LgoJKiBjcnlwdC9NYWtlZmlsZTogTmV3IGZpbGUuCgoJKiBNYWtlcnVsZXMgKHNvdmVyc2lvbnMubWspOiBNb3ZlIHRoaXMgdGFyZ2V0LCBpbmNsdWRlIG9mIGl0LCBhbmQKCWluY2x1ZGUgb2YgdmVyc2lvbi5tayB0byAuLi4KCSogTWFrZWNvbmZpZzogLi4uIGhlcmUuCgkoc292ZXJzaW9ucy5tayk6IERlcGVuZCBvbiBNYWtlY29uZmlnIGluc3RlYWQgb2YgTWFrZXJ1bGVzLgoKCSogc2hsaWItdmVyc2lvbnMgKCotKi0qKTogU2V0IGxpYmNyeXB0PTAuCgpXZWQgSnVsIDE3IDExOjI5OjI2IDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzdGRpby9saW5ld3JhcC5jIChsd3VwZGF0ZSk6IEZpeCBib3VuZGFyeSBjb25kaXRpb24gd2hlcmUgYQoJd29yZCBleHRlbmRzIHJpZ2h0IHVwIHRvIHJtYXJnaW4uCgoJKiBzdGRpby9saW5ld3JhcC5jIChsd3VwZGF0ZSk6IFdoZW4gd2UndmUgZG9uZSBhIHdvcmQgd3JhcCBhbmQKCW91dHB1dCB0aGUgd3JhcCBtYXJnaW4sIHNldCBwb2ludF9jb2wgdG8gd21hcmdpbi4KCVVzZSBuZWdhdGl2ZSBwb2ludF9jb2wgdG8gZGVhbCB3aXRoIGEgd21hcmdpbiBvZiAwLgoJKGxpbmVfd3JhcF9wb2ludCk6IFJldHVybiAwIGZvciBhIG5lZ2F0aXZlIHBvaW50X2NvbC4KCShsaW5lX3dyYXBfc3RyZWFtKTogTWFrZSB3bWFyZ2luIHNzaXplX3QuCgkqIHN0ZGlvL2xpbmV3cmFwLmggKHN0cnVjdCBsaW5lX3dyYXBfZGF0YSk6IE1ha2Ugd21hcmdpbiAmCglwb2ludF9jb2wgc3NpemVfdC4KCShsaW5lX3dyYXBfc3RyZWFtKTogTWFrZSB3bWFyZ2luIHNzaXplX3QuCgkobGluZV93cmFwX3BvaW50KTogUmV0dXJuIDAgZm9yIGEgbmVnYXRpdmUgcG9pbnRfY29sLgoKV2VkIEp1bCAxNyAwMjo0MzoyOCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogc2hsaWItdmVyc2lvbnMgKCotKi1nbnUqKTogU2V0IGxpYmM9MC4wCgpUdWUgSnVsIDE2IDAxOjUyOjQyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9tNjhrL2RsLW1hY2hpbmUuaDogRm9sbG93IEp1bCAxNCBjaGFuZ2UgaW4KCXN5c2RlcHMvaTM4Ni9kbC1tYWNoaW5lLmguCgpUdWUgSnVsIDE2IDAwOjE4OjE5IDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzdGRpby9saW5ld3JhcC5jIChfX2xpbmVfd3JhcF91cGRhdGUpOiBBZGQgaGFja2VyeSBmcm9tIGZsc2hmcAoJdG8gZmlkZGxlIF9fcHV0X2xpbWl0IGluIGNvbmp1bmN0aW9uIHdpdGggX19saW5lYnVmX2FjdGl2ZS4KClR1ZSBKdWwgMTYgMDA6MTQ6MDcgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvaW5ldC9zeXNjYWxscy5saXN0IChjb25uZWN0LCBzZW5kKTogQWRkIHVuZGVyc2NvcmVzCgl0byB0aGUgc3Ryb25nIG5hbWUsIG5vdCB0aGUgZmlsZSBuYW1lLgoKVHVlIEp1bCAxNiAxNjo0Mzo1OCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogY3N1L2luaXRmaW5pLmM6IE1vcmUgbWFnaWMuICBEZXRlY3QgaWYgLmVuZCBpcyBwcm9kdWNlZCBhbmQgcHV0IGl0CglpbiB0aGUgb3V0cHV0IGlmZiB0aGUgY29tcGlsZXIgZG9lcy4KCgkqIGVsZi9kbC1sb29rdXAuYyAoX2RsX2xvb2t1cF9zeW1ib2wpOiBBdm9pZCBzaXplb2YgZHluYW1pYyBhdXRvIGFycmF5CgliZWNhdXNlIHRoYXQgaXMgYnJva2VuIG9uIGFscGhhLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvbW1hcC5jOiBVc2Ugc2FtZSBpbmhlcml0YW5jZSBhcmcgaW4gc2Vjb25kIHZtX21hcAoJY2FsbCBhcyBpbiBmaXJzdC4KCgkqIE1ha2VydWxlcyAobWFrZS1saW5rKTogSW5zdGFsbCB0aGUgbmV3IGxpbmsgd2l0aCBhdG9taWMgbXYgLWYgaW4KCWNhc2UgbG4gaXRzZWxmIHJlcXVpcmVzIHRoZSBsaWJyYXJ5IGJlaW5nIGluc3RhbGxlZC4KClR1ZSBKdWwgMTYgMDA6MzE6MzEgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaDogTWlycm9yIFJvbGFuZCdzIGNoYW5nZXMgdG8KCWkzODYvZGwtbWFjaGluZS5oIG9mIDk2MDcxMy4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9kbC1zeXNkZXAuYzogIEluY2x1ZGUgPHN5cy9tbWFuLmg+LgoJKF9kbF9zeXNkZXBfcmVhZF93aG9sZV9maWxlKTogRml4IHJlc3VsdCB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KClR1ZSBKdWwgMTYgMDA6NTM6NTcgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3VuYW1lLmM6IENhbGwgX19nZXRob3N0bmFtZSB0byBmaWxsIGluIHRoZQoJYG5vZGVuYW1lJyBtZW1iZXIuCgpNb24gSnVsIDE1IDE3OjIzOjUzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmMgKHZmcHJpbnRmKTogQ2FsbCBwYXJzZV9vbmVfc3BlYwoJd2l0aCBwb2ludGVyIHRvIGxvY2FsIHZhcmlhYmxlIGluc3RlYWQgb2YgTlVMTC4KCjE5OTYtMDctMTUgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogdGltZS9zdHJmdGltZS5jIChzdHJmdGltZSk6IERvbid0IHBhc3MgZW1wdHkgbWFjcm8gYXJndW1lbnQgdG8gYGFkZCcuCgpTYXQgSnVsIDEzIDA5OjUzOjM5IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgKHN5c2RlcF9yb3V0aW5lcyk6IFJlbW92ZSBuYW1lcwoJdGhhdCBhcmUgYWxyZWFkeSBhZGRlZCBieSBvdGhlciBtZWFucy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IEFkZCBtb3JlIEVYVFJBJ3MgaW4gdGhlCgljYWxsZXIgY29sdW1uIHRvIGdldCB0aG9zZSBzeXNjYWxscyBhZGRlZCBhdXRvbWFnaWNhbGx5LgoKTW9uIEp1bCAxNSAxMjoyNDo1NCAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogbG9naW4vbG9nb3V0LmMgKGxvZ291dCk6IEluaXRpYWxpemUgREFUQSB0byBhIHN0YXRlIHRoYXQgd2lsbAoJbWFrZSBzZXR1dGVudF9yIGhhcHB5LgoKU3VuIEp1bCAxNCAwMTo1MTozOSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogZWxmL3J0bGQuYyAoZGxfbWFpbikgW0VMRl9NQUNISU5FX0RFQlVHX1NFVFVQXTogVXNlIHRoaXMgbWFjcm8KCWluc3RlYWQgb2Ygc2V0dGluZyB0aGUgRFRfREVCVUcgcG9pbnRlci4KCgkqIGNzdS9pbml0ZmluaS5jIChfaW5pdCwgX2ZpbmkpOiBHZW5lcmF0ZSAuZW5kIGRpcmVjdGl2ZXMgYWZ0ZXIKCXN0YW5kYWxvbmUgcHJvbG9ndWVzIGFuZCBmaWx0ZXIgdGhlbSBvdXQgZnJvbSBlcGlsb2d1ZXMuCgoJKiBNYWtlY29uZmlnIChydGxkLWluc3RhbGxlZC1uYW1lKTogU2V0IHRvIGxkLnNvLjEuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIChydGxkLWluc3RhbGxlZC1uYW1lKTogVmFyaWFibGUKCXJlbW92ZWQuCgoJKiBtYW51YWwvTWFrZWZpbGUgKGdsaWJjLXRhcmdldHMpOiBSZW1vdmUgc3ViZGlyXyBmcm9tIGVsdHMuCgoJKiBzeXNkZXBzL2dlbmVyaWMvZGwtc3lzZGVwLmMgKF9kbF9zeXNkZXBfcmVhZF93aG9sZV9maWxlKTogTmV3IGZuLgoKCSogTWFrZVRBR1MgKGV4dHJhY3QpOiBQYXNzIC0tYWRkLWNvbW1lbnRzPVRSQU5TLgoJKiBzeXNkZXBzL2dudS9lcnJsaXN0LmF3azogV3JpdGUgY29tbWVudHMgaW50byB0aGUgb3V0cHV0IHdpdGggdGhlCglkZXNjcmlwdGl2ZSBwYXJhZ3JhcGhzIGZyb20gdGhlIG1hbnVhbCBwcmVjZWRlZCBieSBUUkFOUy4KCgkqIGVsZi9ydGxkLmMgKFJFU09MVkUpOiBVc2UgdGhlIGRsJ3MgbG9hZCBhZGRyZXNzLCBub3QgYSBjb25zdGFudCB6ZXJvIQoJKF9kbF9zdGFydCk6IE1vdmUgUkVTT0xWRSBkZWZuIGluc2lkZSB0aGlzIGZ1bmN0aW9uIGFuZCAjaW5jbHVkZQoJImR5bmFtaWMtbGluay5oIiBhIHNlY29uZCB0aW1lIHRoZXJlLgoJW1JUTERfU1RBUlRdOiBNb3ZlIHVzZSBvZiB0aGlzIGFmdGVyIF9kbF9zdGFydCBmdW5jdGlvbi4KCgkqIGVsZi9kbC1yZWxvYy5jOiBJbmNsdWRlICJkeW5hbWljLWxpbmsuaCIgYXQgZmlsZSBzY29wZS4KCgkqIGVsZi9ydGxkLmM6IEluY2x1ZGUgPHN0cmluZy5oPi4KCgkqIGVsZi9keW5hbWljLWxpbmsuaCAoRUxGX0RZTkFNSUNfRE9fUkVMLCBFTEZfRFlOQU1JQ19ET19SRUxBLAoJRUxGX0RZTkFNSUNfUkVMT0NBVEUpOiBObyBsb25nZXIgdGFrZSBSRVNPTFZFIGFyZ3VtZW50LgoJQ29uZGl0aW9uYWxpemUgZGVmbnMgb24gW1JFU09MVkVdLgoJKiBlbGYvZG8tcmVsLmggKGVsZl9keW5hbWljX2RvX3JlbCk6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvZGwtbWFjaGluZS5oIChlbGZfbWFjaGluZV9yZWwpOiBMaWtld2lzZS4KCUluc3RlYWQgdXNlIFJFU09MVkUgbWFjcm8gd2l0aCBzYW1lIGFyZ3MuCgkoZWxmX21hY2hpbmVfcmVsKTogQ29uZGl0aW9uYWxpemUgZGVmbiBvbiBbUkVTT0xWRV0uCgkqIGVsZi9kbC1yZWxvYy5jIChSRVNPTFZFKTogTmV3IG1hY3JvLCBkZWZpbmUgYmVmb3JlIGluY2x1ZGluZwoJImR5bmFtaWMtbGluay5oIi4gIEl0IHJlcGxhY2VzIGByZXNvbHZlJyBsb2NhbCBmdW5jdGlvbi4KCSogZWxmL2RsLXJ1bnRpbWUuYzogTGlrZXdpc2UuCgkqIGVsZi9ydGxkLmM6IExpa2V3aXNlLgoKCSogZWxmL2RsLWRlcHMuYyAoX2RsX21hcF9vYmplY3RfZGVwcyk6IFN0YXJ0IFRBSUxQIGF0IGxhc3QgcHJlbG9hZC4KCgkqIGVsZi9kbC1vcGVuLmMgKF9kbF9vcGVuKTogRm9yY2UgYW4gaW5kaXJlY3QgY2FsbCBmb3IKCV9kbF9yZWxvY2F0ZV9vYmplY3Qgc28gdGhlcmUgaXMgbm8gY2hhbmNlIGEgUExUIGZpeHVwIHdpbGwgYmUgZG9uZQoJYW5kIGNsb2JiZXIgX2RsX2dsb2JhbF9zY29wZSBiZWZvcmUgb3VyIGNhbGwgaGFwcGVucy4KCgkqIHN5c2RlcHMvaTM4Ni9mcHUvX19tYXRoLmggKHRhbik6IENvcnJlY3Qgb3V0cHV0IGNvbnN0cmFpbnQgZnJvbSA9dQoJdG8gPXQ7IG11c3Qgb3BlcmF0ZSBvbiB0b3Agb2YgZnAgcmVnIHN0YWNrLCBub3Qgc2Vjb25kIGZyb20gdG9wLgoJQ29ycmVjdCBpbnB1dCBjb25zdHJhaW50IHRvIDAgZnJvbSB0OyBtdXN0IGJlIGV4cGxpY2l0IHdoZW4gaW5wdXQgYW5kCglvdXRwdXQgYXJlIHRoZSBzYW1lIHJlZ2lzdGVyLgoJKGZsb29yKTogVXNlIF9fdm9sYXRpbGUgaW5zdGVhZCBvZiB2b2xhdGlsZS4KCShjZWlsKTogTGlrZXdpc2UuCgoJKiBtYW51YWwvTWFrZWZpbGUgKCQob2JqcGZ4KXN0YW1wJS0kKHN1YmRpcikpOiBTZXBhcmF0ZSBydWxlIGZyb20KCW90aGVyIHRhcmdldHMuCgpTYXQgSnVsIDEzIDIzOjUwOjE3IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBtYW51YWwvTWFrZWZpbGUgKGxpYik6IE5ldyBwaG9ueSB0YXJnZXQuICBEZXBlbmQgb24gc3RhbXAgZmlsZXMuCgkoJChvYmpwZngpc3RhbXAlLSQoc3ViZGlyKSk6IE5ldyBydWxlIHRvIGNyZWF0ZSB0aGVtIHdoZW4gbmVjZXNzYXJ5LgoKMTk5Ni0wNy0xMyAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiB0aW1lL3N0cmZ0aW1lLmMgKHN0cmZ0aW1lKTogVXNlIHNwYWNlIHBhZGRpbmcgZm9yICVlLCAlaywgJWwsCgl0byBtYXRjaCBFbWFjcyBmb3JtYXQtdGltZS1zdHJpbmcgc3BlY2lmaWNhdGlvbi4KCShET19OVU1CRVJfU1BBQ0VQQUQpOiBSZW5hbWVkIGZyb20gRE9fTlVNQkVSX05PUEFELgoKU2F0IEp1bCAxMyAyMDoxNzozOCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogZWxmL2RsLWRlcHMuYyAoX2RsX21hcF9vYmplY3RfZGVwcyk6IFRha2UgbmV3IGFyZ3MgUFJFTE9BRFMgYW5kCglOUFJFTE9BRFMsIHZlY3RvciBvZiBgc3RydWN0IGxpbmtfbWFwIConczsgYWRkIHRoZW0gdG8gdGhlIHNlYXJjaGxpc3QKCWJldHdlZW4gTUFQIGFuZCBpdHMgZGVwcy4KCSogZWxmL2xpbmsuaDogRml4IGRlY2wuCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBJZiBub3Qgc2VjdXJlLCBwYXJzZSBMRF9QUkVMT0FEIGZvcgoJY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgbmFtZXMsIG1hcCB0aG9zZSBhbmQgcGFzcyB2ZWN0b3Igb2YgcHRycyBhcwoJUFJFTE9BRFMgbGlzdCB0byBfZGxfbWFwX29iamVjdF9kZXBzLgoJKiBlbGYvZGwtcnVudGltZS5jIChfZGxfb2JqZWN0X3JlbG9jYXRpb25fc2NvcGUpOiBQYXNzIG5ldyBhcmdzIHRvCglfZGxfbWFwX29iamVjdF9kZXBzIHdpdGggZW1wdHkgcHJlbG9hZCBsaXN0LgoJKiBlbGYvZGwtb3Blbi5jIChfZGxfb3Blbik6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvZGwtc3lzZGVwLmMgKF9kbF9zeXNkZXBfb3Blbl96ZXJvX2ZpbGwpOiBGdW5jdGlvbgoJcmVtb3ZlZC4KCShfX21tYXApOiBQYXNzIE1BQ0hfUE9SVF9OVUxMIGZvciBtZW1vYmogcG9ydCB3aGVuIChmbGFncyAmIE1BUF9BTk9OKS4KCSogc3lzZGVwcy9nZW5lcmljL2RsLXN5c2RlcC5jIChfZGxfc3lzZGVwX29wZW5femVyb19maWxsKToKCUNvbmRpdGlvbmFsaXplIGRlZm4gb24gWyEgTUFQX0FOT05dLgoJKiBlbGYvZGwtbWluaW1hbC5jIChtYWxsb2MpOiBDb25kaXRpb25hbGl6ZSB1c2Ugb2YgX2RsX3plcm9mZAoJb24gWyEgTUFQX0FOT05dLgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogTGlrZXdpc2UuCgkqIGVsZi9kbC1sb2FkLmMgKF9kbF96ZXJvZmQpOiBDb25kaXRpb25hbGl6ZSBkZWZuIG9uIFshIE1BUF9BTk9OXS4KCShfZGxfbWFwX29iamVjdF9mcm9tX2ZkKTogQ29uZGl0aW9uYWxpemUgaW5pdGlhbGl6YXRpb24gb2YgX2RsX3plcm9mZC4KCgkqIGVsZi9kbC1maW5pLmMgKF9kbF9maW5pKTogU2tpcCBmaW5hbGl6ZXIgZm9yIGV4ZWN1dGFibGUgaXRzZWxmLgoKU2F0IEp1bCAxMyAwMjo0Nzo1MyAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogc3RkbGliL3JhbmRvbS5jIChfX3JhbmRvbSk6IERlY2xhcmUgYXMgaW50MzJfdCB0byBiZSBpbiBzeW5jCgl3aXRoIGRlY2xhcmF0aW9uLgoKCSogc29ja2V0L01ha2VmaWxlIChoZWFkZXJzKTogQWRkIHNvY2tldGJpdHMuaC4KCgkqIG1pc2MvbW50ZW50LmMgKGVuZG1udGVudCk6IEFsbG93IGZvciBOVUxMIHN0cmVhbS4gIFN1bk9TIGRvZXMKCWl0IHRoYXQgd2F5LgoKCSogZ3JwL2luaXRncm91cHMuYyAoaW5pdGdyb3Vwcyk6IEFkZCBncm91cHMgdGhhdCB1c2VyIGlzIGEgbWVtYmVyCglvZiwgbm90IHRoZSBvbmVzIGhlIGlzIF9ub3RfIGEgbWVtYmVyIG9mLgoKCSogbnNzL25zc3dpdGNoLmMgKGtub3duX2NvbXBhcmUpOiBNYWtlIGtub3duX2NvbXBhcmUoKSBhIHN0YXRpYwoJaW5zdGVhZCBvZiBhIGxvY2FsIGZ1bmN0aW9uLiAgVGhlIGxhdHRlciBhcmUgZGlmZmljdWx0IHRvIGRlYnVnCglhbmQgc2xvdyB0byBleGVjdXRlIG9uIGNlcnRhaW4gcGxhdGZvcm1zLgoKCSogc3lzZGVwcy9wb3NpeC90dHluYW1lX3IuYyAodHR5bmFtZV9yKTogVXNlIHNpemVvZiAoZGV2KSAtIDEgaW4KCXBsYWNlIG9mIHNpemVvZiAoZGV2KS4gIFRoZSBzaXplIG9mIGEgbGl0ZXJhbCBzdHJpbmcgaW5jbHVkZXMgdGhlCglOVUwgYnl0ZS4KCgkqIHN5c2RlcHMvdW5peC9nZXRsb2dpbi5jIChnZXRsb2dpbik6IEluaXRpYWxpemUgdXRfZmQgd2l0aCAtMS4KClRodSBKdWwgMTEgMTY6NTk6MTAgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIG1pc2MvbW50ZW50LmMgKGFkZG1udGVudCk6IFNlZWsgdG8gZW5kIG9mIGZpbGUgYmVmb3JlIHdyaXRpbmcKCWVudHJ5LiAgUmV0dXJuIDEgb24gZXJyb3IsIG5vdCAtMS4KClR1ZSBKdWwgIDkgMTk6MDg6MDUgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IE1hcmsgYmRmbHVzaCBhcyBFWFRSQQoJc3lzY2FsbC4KCkZyaSBKdWwgIDUgMTg6NDQ6NTUgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvcGVybS5jIChwb3J0X3RvX2NwdV9hZGRyKTogU2l6ZQoJc2hpZnQgYW1vdW50IGZvciBKZW5zZW4gbXVzdCBiZSA1IG5vdCA0LgoKU2F0IEp1bCAxMyAyMDowNDoyOCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogc29ja2V0L3N5cy9zb2NrZXQuaCAoc3RydWN0IG9zb2NrYWRkcik6IE5ldyB0eXBlLgoKU2F0IEp1bCAxMyAwMzo1MDo1MyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG1pc2MvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIHFlZmdjdnQgYW5kIHFlZmdjdnRfci4KCSogbWlzYy9lZmdjdnQuYywgbWlzYy9lZmdjdnRfci5jOiBDaGFuZ2UgY29kZSBzbyB0aGF0IHRoZSBgZG91YmxlJwoJYW5kIGBsb25nIGRvdWJsZScgdmVyc2lvbnMgY2FuIGJlIGdlbmVyYXRlZC4KCSogbWlzYy9xZWZnY3Z0LmMsIG1pc2MvcWVmZ2N2dF9yLmM6IE5ldyBmaWxlcy4gIERlZmluZSBtYWNyb3MKCXNvIHRoYXQgaW5jbHVkZWQgZWZnY3Z0eyxfcn0uYyBmaWxlIGdlbmVyYXRlIGBsb25nIGRvdWJsZScKCXZlcnNpb25zLgoJKiBzdGRsaWIvc3RkbGliLmg6IEFkZCBwcm90b3R5cGVzIGZvciBxW2VmZ11jdnQoKSBhbmQgcVtlZl1jdnRfcigpCglmdW5jdGlvbnMuCgoJKiBtYW51YWwvc3RhcnR1cC50ZXhpOiBEb2N1bWVudCBuZXcgZ2V0c3Vib3B0IGZ1bmN0aW9uLgoJKiBtYW51YWwvZXhhbXBsZXMvc3Vib3B0LmM6IE5ldyBleGFtcGxlIHByb2dyYW0gZm9yIGRvY3VtZW50aW5nCglnZXRzdWJvcHQgZnVuY3Rpb24uCgpGcmkgSnVsIDEyIDIzOjU4OjM3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkbGliL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBnZXRzdWJvcHQuCgkqIHN0ZGxpYi9zdGRsaWIuaDogQWRkIHByb3RvdHlwZSBmb3IgZ2V0c3Vib3B0LgoJKiBzdGRsaWIvZ2V0c3Vib3B0LmM6IE5ldyBmaWxlLiAgSW1wbGVtZW50IGdldHN1Ym9wdCBmdW5jdGlvbgoJdG8gaGFuZGxlIHN1Ym9wdGlvbiBwYXJzaW5nLgoKVGh1IEp1bCAxMSAyMDowOTo1NSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogaW5ldC9nZXRuZXRlbnRfci5jOiBEZWZpbmUgTkVFRF9IX0VSUk5PLgoJKiBpbmV0L2dldG5ldGJ5bm1fci5jOiBMaWtld2lzZS4KCSogaW5ldC9nZXRuZXRlbnQuYzogTGlrZXdpc2UuCgkqIGluZXQvZ2V0bmV0YnlhZF9yLmM6IExpa2V3aXNlLgoJKiBpbmV0L2dldG5ldGJ5YWQuYzogTGlrZXdpc2UuCgkqIGluZXQvZ2V0bmV0YnlubS5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9wc2VsZWN0LmM6IEluY2x1ZGUgPHN5cy90aW1lLmg+LgoKCSogbWlzYy9zeXMvc2VsZWN0Lmg6IEluY2x1ZGUgPHRpbWUuaD4gaW5zdGVhZCBvZiA8c3lzL3RpbWUuaD4gZm9yCglgc3RydWN0IHRpbWVzcGVjJy4KCgkqIG1hdGgvTWFrZWZpbGUgKGNhbGxzKTogQWRkIHNfZnJleHAsIHNfbGRleHAuCgkocm91dGluZXMpOiBSZW1vdmUgdGhlbSBhbmQgJmYgZnJvbSBoZXJlLgoKCSogc3lzL3NvY2tldC5oOiBOZXcgZmlsZSwgd3JhcHBlciBmb3Igc29ja2V0L3N5cy9zb2NrZXQuaC4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtc2VydmljZS5jIChnZXRzZXJ2YnluYW1lKTogVGFrZSBzZWNvbmQgYXJnIFBST1RPCglhbmQgY2hlY2sgaXQuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLVhYWC5jOiBDb21tZW50IGZpeC4KCkZyaSBKdWwgMTIgMDE6Mjg6MzUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBuc3MvZ2V0WFhlbnRfci5jIChHRVRGVU5DX05BTUVfU1RSSU5HKTogRGVmaW5lIHdpdGggbmFtZQoJb2YgcmVlbnRyYW50IGZ1bmN0aW9uLgoJKHNldHVwKTogUGFzcyBhZGRpdGlvbmFsIGFyZ3VtZW50IHdpdGggZnVuY3Rpb24gbmFtZSB3ZSBhcmUKCWxvb2tpbmcgZm9yLgoJKFNFVEZVTkNfTkFNRSwgRU5ERlVOQ19OQU1FLCBHRVRGVU5DX05BTUUpOiBDYWxsIHNldHVwIHdpdGgKCW5ldyBhcmd1bWVudCB7U0VULEVORCxHRVR9RlVOQ19OQU1FX1NUUklORy4KCgkqIG5zcy9nZXRYWGVudC5jIChHRVRGVU5DX05BTUUpOiBSRVNVTFQgbXVzdCBiZSBzdGF0aWMgYmVjYXVzZQoJd2UgcmV0dXJuIGEgcG9pbnRlci4KClRodSBKdWwgMTEgMTg6MjA6NDQgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYzogQWRkIGNvbW1lbnQgYWJvdXQgdGhpbmdzIHRvICNkZWZpbmUuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLWhvc3RzLmMgKE5FRURfSF9FUlJOTyk6IERlZmluZSBpdC4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYyAoU1RSSU5HX0ZJRUxEKTogRG9uJ3QgZmxhZyBOVUwgYmVmb3JlCgl0ZXJtaW5hdG9yIGNoYXIgYXMgYW4gZXJyb3IuCgoJKiBuc3MvZ2V0WFhieVlZX3IuYyAoUkVFTlRSQU5UX05BTUUpOiBTZXQgKkhfRVJSTk9QLCBub3QgaF9lcnJuby4KClRodSBKdWwgMTEgMDM6MjE6MTAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjYXRnZXRzL2dlbmNhdC5jICh3cml0ZV9vdXQpOiBNb3ZlIGNvZGUgdG8gZGV0ZXJtaW5lIG5ldwoJYmVzdCBzaXplIG91dCBvZiBpbm5lciBsb29wLgoKVGh1IEp1bCAxMSAwMDoyMjo0MCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfZnJleHBsLmM6IE5ldyBmaWxlLiAgYGxvbmcgZG91YmxlJwoJaW1wbGVtZW50YXRpb24gb2YgZnJleHAoKSBmdW5jdGlvbi4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19sZGV4cGwuYzogTmV3IGZpbGUuICBgbG9uZyBkb3VibGUnCglpbXBsZW1lbnRhdGlvbiBvZiBsZGV4cCgpIGZ1bmN0aW9uLgoKCSogc3lzZGVwcy9saWJtLWkzODcvc19pc25hbmwuYyAoaXNuYW5sKTogTWFzayBleHBsaWNpdCBvbmUKCW91dCBiZWZvcmUgb3InaW5nLgoKV2VkIEp1bCAxMCAwNToyNDo0MCAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogbWlzYy9tbnRlbnQuYzogSW5jbHVkZSA8c3lzL3R5cGVzLmg+LgoJKGVuZG1udGVudCk6IFJldHVybiAxIG9uZSBzdWNjZXNzLCAwIG9uIGZhaWx1cmUuCgkoZ2V0bW50ZW50KTogQ2hvcCBuZXdsaW5lIGFuZCBpZ25vcmUgZW1wdHkgbGluZXMuCgpNb24gSnVsICA4IDIxOjE4OjQwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9tNjhrL2RsLW1hY2hpbmUuaCAoUkVTT0xWRSk6IE5ldyBtYWNybywgZGVmaW5lZAoJZGlmZmVyZW50bHkgYmFzZWQgb24gW1JUTERfQk9PVFNUUkFQXS4KCShlbGZfbWFjaGluZV9yZWxhKTogVXNlIGl0IGluc3RlYWQgb2YgdGhlIGZuIHB0ciBhcmcgZGlyZWN0bHkuCgpUdWUgSnVsICA5IDA5OjM3OjU1IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBwb3NpeC9nbG9iLmggKF9fZ2xvYl9vcGVuZGlyX2hvb2ssIF9fZ2xvYl9yZWFkZGlyX2hvb2ssCglfX2dsb2JfY2xvc2VkaXJfaG9vayk6IFJlbW92ZSBkZWNscy4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9tYWNoaW5lLWdtb24uaDogRGVjbGFyZSBtY291bnRfaW50ZXJuYWwuCgoJKiBzeXNkZXBzL3VuaXgvaW5ldC9zeXNjYWxscy5saXN0OiBEZWZpbmUgX18gbmFtZXMgd2l0aCB3ZWFrIGFsaWFzZXMKCWZvciBzZW5kIGFuZCBjb25uZWN0IHN5c2NhbGxzLgoKCSogc29ja2V0L3N5cy9zb2NrZXQuaDogTmV3IGZpbGUsIHRha2VuIGZyb20gbm9uLXN5c2RlcCBwYXJ0cyBvZgoJbGludXgvc3lzL3NvY2tldC5oOyBicmVhayBzeXNkZXBzIHBhcnRzIG91dCBpbnRvIHNvY2tldGJpdHMuaC4KCURlY2xhcmUgX18gbmFtZXMgZm9yIHNlbmQgYW5kIGNvbm5lY3QuCgkqIHN5c2RlcHMvZ2VuZXJpYy9zb2NrZXRiaXRzLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zb2NrZXRiaXRzLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvc29ja2V0Lmg6IEZpbGUgcmVtb3ZlZC4KCSogc3lzZGVwcy9nZW5lcmljL3N5cy9zb2NrZXQuaDogRmlsZSByZW1vdmVkLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvY29ubmVjdC5jOiBEZWZpbmUgX18gbmFtZSBhbmQgd2VhayBhbGlhcy4KCSogc3lzZGVwcy9tYWNoL2h1cmQvc2VuZC5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbWFjaC9saWJjLWxvY2suaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9yZWFkZGlyLmM6IERvIGxvY2tpbmcuCgkqIHN5c2RlcHMvdW5peC9zZWVrZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvcmV3aW5kZGlyLmM6ICBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2Nsb3NlZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3RlbGxkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NlZWtkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL3JlYWRkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2Nsb3NlZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9vcGVuZGlyLmM6IEluaXRpYWxpemUgdGhlIGxvY2suCgkqIHN5c2RlcHMvdW5peC9vcGVuZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9kaXJzdHJlYW0uaDogSW5jbHVkZSA8bGliYy1sb2NrLmg+LgoJKHN0cnVjdCBfX2RpcnN0cmVhbSk6IEFkZCBsb2NrIG1lbWJlciB1c2luZyBfX2xpYmNfbG9ja19kZWZpbmUuCgkqIHN5c2RlcHMvdW5peC9kaXJzdHJlYW0uaDogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL3N0dWIvbGliYy1sb2NrLmggKF9fbGliY19sb2NrX2ZpbmkpOiBOZXcgbWFjcm8uCgoJKiBzdGRsaWIvbWJzdG93Y3MuYzogUGFzcyBhZGRyZXNzIG9mIHBvaW50ZXIgdG8gbWJzcnRvd2NzLgoKCSogc3RkbGliL3djc3RvbWJzLmM6IFVzZSB3Y3NydG9tYnMgaW5zdGVhZCBvZiBtYnNydG93Y3MuCgpUaHUgSnVsICA0IDAxOjM0OjA0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL3Byb2dyYW1zL3N0cmluZ3RyYW5zLmM6IEZpeCB0eXBvIGluIGNvcHlyaWdodC4KCgkqIHN0ZGlvLWNvbW1vbi9wcmludGYtcHJzLmM6IEFkZCBjYXN0cyB0byBwcmV2ZW50CglzaWduZWQ8LT51bnNpZ25lZCB3YXJuaW5ncy4KCgkqIHN0ZGlvLWNvbW1vbi9wcmludGYtcGFyc2UuaDogSW5pdGlhbGl6ZSBzdGF0ZSB2YXJpYWJsZSBiZWZvcmUKCWNhbGxpbmcgbWJybGVuLgoJKiBzdGRpby1jb21tb24vcHJpbnRmLXBycy5jOiBEb24ndCBpbml0aWFsaXplIHN0YXRlIHZhcmlhYmxlIGhlcmUuCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jOiBEb24ndCBpbml0aWFsaXplIHN0YXRlIHZhcmlhYmxlLgoJKHZmcHJpbnRmKTogV2hpbGUgZGV0ZXJtaW5pbmcgbGVuZ3RoIG9mIG11bHRpYnl0ZSBzdHJpbmcgZG9uJ3QKCXRyeSB0byBiZSBjbGV2ZXIgaW4gZGV0ZXJtaW5pbmcgY2hhcmFjdGVycyB0byB1c2UgZm9yIGZpcnN0CgljYWxsLgoKCUFkZCByZWFsIGltcGxlbWVudGF0aW9uIG9mIG11bHRpYnl0ZTwtPndpZGUgY2hhciBjb252ZXJzaW9uCglmdW5jdGlvbnMuICBUaGUgZnVuY3Rpb25zIGFsd2F5cyBjb252ZXJ0IGJldHdlZW4gdGhlIGZpeGVkIHdpZGUKCWNoYXIgZm9ybWF0IChJU08gMTA2NDYgaW4gVUNTNCkgYW5kIHRoZSBVVEY4IHJlcHJlc2VudGF0aW9uIG9mCgl0aGlzIGNoYXJhY3RlciBzZXQuICBDb252ZXJzaW9uIGJldHdlZW4gdGhlIGN1cnJlbnRseSB1c2VkCgk4Yml0IGNoYXJhY3RlciBzZXQgYW5kIElTTyAxMDY0NiB3aWxsIG5vdCB0YWtlIHBsYWNlLiAgVGhpcyBpcwoJd2hhdCBpY29udigpIGlzIGZvci4KCSogd2NzbWJzL3djaGFyLmggKG1ic3RhdGVfdCk6IERlZmluZSBhcyBzdHJ1Y3R1cmUgdG8gcmVwbGFjZQoJZHVtbXkgZGVmaW5pdGlvbi4KCUFkZCBvcHRpbWl6ZWQgdmVyc2lvbiBvZiBgbWJybGVuJyBmdW5jdGlvbi4KCSogd2NzbWJzL2J0b3djLmMgKGJ0b3djKTogUmVzdHJpY3QgcmFuZ2Ugb2YgbGVnYWwgY2hhcmFjdGVycwoJdG8gMC4uLjB4N2YuCgkqIHdjc21icy93Y3RvYi5jICh3Y3RvYik6IFJlc3RyaWN0IHJhbmdlIG9mIGxlZ2FsIGNoYXJhY3RlcnMKCXRvIDAuLjB4N2YuCgkqIHdjc21icy9tYnJsZW4uYzogTWFrZSBtYnJsZW4gYSB3ZWFrIGFsaWFzIG9mIF9fbWJybGVuLgoJVGhpcyBpcyBuZWVkZWQgaW4gdGhlIHdjaGFyLmggaGVhZGVyLgoJKiB3Y3NtYnMvbWJydG93Yy5jOiBSZXBsYWNlIGR1bW15IGltcGxlbWVudGF0aW9uLiAgQ29udmVydCBVVEY4CgllbmNvZGVkIGNoYXJhY3RlciB0byBVQ1M0LgoJKiB3Y3NtYnMvbWJzaW5pdC5jOiBSZXBsYWNlIGR1bW15IGltcGxlbWVudGF0aW9uLiAgVGVzdCBDT1VOVAoJZWxlbWVudCBvZiBgbWJzdGF0ZV90JyBmb3IgaW5pdGlhbCBzdGF0ZS4KCSogd2NzbWJzL21ic3J0b3djcy5jOiBSZXBsYWNlIGR1bW15IGltcGxlbWVudGF0aW9uLiAgQ29udmVydCBVVEY4CgllbmNvZGVkIHN0cmluZyB0byBVQ1M0IHN0cmluZy4KCSogd2NzbWJzL3djcnRvbWIuYzogUmVwbGFjZSBkdW1teSBpbXBsZW1lbnRhdGlvbi4gIENvbnZlcnQgVUNTNAoJY2hhcmFjdGVyIHRvIFVURjggZW5jb2RlZCBmb3JtLgoJKiB3Y3NtYnMvd2NzcnRvbWJzLmM6IFJlcGxhY2UgZHVtbXkgaW1wbGVtZW50YXRpb24uICBDb252ZXJ0IFVDUzQKCWVuY29kZWQgc3RyaW5nIHRvIFVURjggZW5jb2RlZCBmb3JtLgoKVHVlIEp1bCAgOSAwNjoxOToyOSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvY29uZmlndXJlLmluOiBVc2UgdmVyc2lvbiBudW1iZXIgaW4gY2FjaGUKCXZhcmlhYmxlIG5hbWUsIHNvIG5ldyBhIGxpYmMgd2l0aCBuZXcgcmVxdWlyZW1lbnRzIHdvbid0IGZhaWwgdG8KCW5vdGljZSBhbiBpbnN1ZmZpY2llbnQgTGludXggdmVyc2lvbi4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2RpcmVudHJ5Lmg6IE5ldyBmaWxlIGZyb20gRGF2aWQgTW9zYmVyZ2VyLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvY29uZmlndXJlLmluOiBDaGVjayBmb3IgTGludXggMi4wLjEgaGVhZGVycywKCWluc3RlYWQgb2YgMi4wIGhlYWRlcnMuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9NYWtlZmlsZSAoc3RhbXAtZXJybm9zKTogVW5jb21tZW50IENWUyBjb21taXQgY21kcy4KCgkqIHN5c2RlcHMvZ251L2Vycmxpc3QuYXdrOiBVbmRvIG1pYidzIGJvZ3VzIGNoYW5nZXMuICBUaGUKCXN5c2RlcHMvbWFjaC9odXJkL2Vycm5vcy5hd2sgYnVnIGZpeCB3YXMgdGhlIG9ubHkgY29ycmVjdCBjaGFuZ2UuCgoJKiBzeXNkZXBzL2dlbmVyaWMvbWFjaGluZS1nbW9uLmggW05PX1VOREVSU0NPUkVTXTogRGVjbGFyZSBfbWNvdW50CgliZWZvcmUgdXNpbmcgaXQgaW4gbGhzIG9mIHdlYWtfYWxpYXMuCgoJKiBuc3MvZ2V0WFhlbnRfci5jIChzZXR1cCk6IE5ldyBmdW5jdGlvbiwgYnJva2VuIG91dCBvZiBTRVRGVU5DX05BTUUuCglDYWxsIF9fbnNzX2xvb2t1cCB3aGVuIG5vdCBzZXR0aW5nIFNUQVJUUC4KCShTRVRGVU5DX05BTUUsIEVOREZVTkNfTkFNRSwgUkVFTlRSQU5UX0dFVE5BTUUpOiBDYWxsIGl0IHRvIHNldCB1cCBmb3IKCWZ1bmN0aW9uLWNhbGxpbmcgbG9vcC4KClR1ZSBKdWwgIDkgMDA6MTQ6NTIgMTk5NiAgTWljaGFlbCBJLiBCdXNobmVsbCBwL0JTRyAgPG1pYkBnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2lvY3Rscy5oIChNRE1CVUYsIEVDSE8sIFRPU1RPUCwgRkxVU0hPLAoJUEVORElOLCBOT0ZMU0gpOiBVbmRlZmluZSB0aGVzZSBhdCBzdGFydCBpZiB0aGV5IGFyZSBhbHJlYWR5CglkZWZpbmVkIHRvIGF2b2lkIGNvbGxpc2lvbiB3aXRoIHRlcm1iaXRzLmguCgkqIHN5c2RlcHMvZ2VuZXJpYy90ZXJtYml0cy5oIChFQ0hPLCBUT1NUT1AsIE5PRkxTSCk6IExpa2V3aXNlLgoJKE1ETUJVRiwgRkxVU0hPLCBQRU5ESU4pIFtfX1VTRV9CU0RdOiBMaWtld2lzZS4KCk1vbiBKdWwgIDggMTM6Mzc6NDAgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIG1hdGgvbWF0aC5oIChfTWZsb2F0XywgX01sb25nX2RvdWJsZV8pOiBOZXcgbWFjcm9zLCBkZWZpbmVkIGlmZiBub3QKCWFscmVhZHkgZGVmaW5lZCB0byBmbG9hdCwgbG9uZyBkb3VibGUuICBVc2UgdGhvc2UgbWFjcm9zIGZvciBfTWRvdWJsZV8KCWRlZm5zIHdoZW4gaW5jbHVkaW5nIG1hdGhjYWxscy5oLgoJKiBtYXRoL01ha2VmaWxlIFskKGxvbmctZG91YmxlLWZjdHMpICE9IHllc10gKENQUEZMQUdTKTogQXBwZW5kCgktRF9NbG9uZ19kb3VibGVfPWRvdWJsZS4KCglBZGQgbW9yZSAtbG0gZnVuY3Rpb25zIHRvIC1sYyBiZWNhdXNlIGxkZXhwIHVzZXMgdGhlbS4KCSogbWF0aC9NYWtlZmlsZSAoY2FsbHMpOiBBZGQgc19maW5pdGUsIHNfY29weXNpZ24sIHNfc2NhbGJuLCBzX21vZGYuCgkocm91dGluZXMpOiBSZW1vdmUgc19tb2RmLCBhZGQgc19mcmV4cGYsIHNfbGRleHBmOyBhbGwgYnV0IGZyZXhwIGFuZAoJbGRleHAgaGF2ZSBib3RoIGYgYW5kIGwgY29kZSwgYW5kIHRob3NlIGhhdmUgZiB0aG91Z2ggbm90IGwgY29kZS4KCk1vbiBKdWwgIDggMTM6MTA6NTAgMTk5NiAgTWljaGFlbCBJLiBCdXNobmVsbCBwL0JTRyAgPG1pYkBnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2Vycm5vcy5hd2s6IFNraXAgZW50cmllcyB3aGVyZSB0aGUKCWVycm9yIGlzIDAuICBUaGUgInBsYWNlaG9sZGVyIiBlbnRyaWVzIHJlY2VudGx5IGFkZGVkIHRvCgllcnJuby50ZXhpIGNvbnZlcnQgdG8gemVybyBzaW5jZSBgPz8/LycgaXMgYXQgdGhlIGZyb250IG9mIHRoZW0uCgkqIHN5c2RlcHMvZ251L2Vycmxpc3QuYXdrIChlcnJub2gpOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvc3R1Yi9zZXRkb21haW4uYyAoc2V0ZG9tYWlubmFtZSk6IERlY2xhcmUgTkFNRSBwYXJtCglfX2NvbnN0IHRvIGNvbmZvcm0gd2l0aCB1bmlzdGQuaC4KCgkqIHN0ZGxpYi9zdGRsaWIuaCAocmFuZG9tKTogRGVjbGFyZSByZXR1cm4gdHlwZSB0byBiZSBpbnQzMl90LgoKCSogc3RyaW5nL2FyZ3otZGVsZXRlLmMgKGFyZ3pfZGVsZXRlKTogVXNlIG1lbW1vdmUgaW5zdGVhZCBvZgoJbWVtY3B5IGZvciBwb3NzaWJseSBvdmVybGFwcGluZyBzdHJpbmdzLgoKTW9uIEp1bCAgOCAwMjoxNDoyNSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogbGliYy1zeW1ib2xzLmggW0dDQyA+PSAyLjddIChzdHJvbmdfYWxpYXMsIHdlYWtfYWxpYXMpOiBVc2UgZXh0ZXJuCglzdG9yYWdlIGNsYXNzLiAgR0NDIGdpdmVzIGFuIGVycm9yIGZvciBub24tZXh0ZXJuIGRhdGEgZGVmbnMgd2l0aCB0aGUKCWFsaWFzIGF0dHJpYnV0ZS4KCk1vbiBKdWwgIDggMDE6Mzc6MzQgMTk5NiAgTWljaGFlbCBJLiBCdXNobmVsbCwgcC9CU0cgIDxtaWJAZ251LmFpLm1pdC5lZHU+CgoJKiBzdHJpbmcvYXJnei1pbnNlcnQuYyAoX19hcmd6X2luc2VydCk6IChfX2FyZ3pfaW5zZXJ0KTogVXNlCgltZW1tb3ZlIGluc3RlYWQgb2YgbWVtY3B5IGZvciBwb3NzaWJsZSBvdmVybGFwcGluZyBzdHJpbmdzLgoKTW9uIEp1bCAgOCAwMDoxMToxNSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogbGliYy1zeW1ib2xzLmggKHdlYWtfZnVuY3Rpb24pOiBOZXcgbWFjcm8uCglGb3IgR0NDIDIuNysgZGVmaW5lIGFzIF9fYXR0cmlidXRlX18gKCh3ZWFrKSkuCgkqIGVsZi9kbC1taW5pbWFsLmM6IFVzZSB3ZWFrX2Z1bmN0aW9uIGFzIGtleXdvcmQgaW4gZnVuY3Rpb24gZGVmbnMKCWluc3RlYWQgb2Ygd2Vha19zeW1ib2wgKE5BTUUpIGFmdGVyIHRoZSBkZWZuLgoJKiBzdGRsaWIvc3RydG9sLmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvc3RydG9kLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9kbC1zeXNkZXAuYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsYSkgW1JUTERfQk9PVFNUUkFQXToKCUlmIHRoaXMgaXMgZGVmaW5lZCwgZG9uJ3QgZGVjbGFyZSBfZGxfcnRsZF9tYXAgYXMgd2VhaywgYW5kCglkb24ndCBjaGVjayBmb3IgTUFQIHBvaW50aW5nIHRvIGl0LiAgUkVTT0xWRSBpcyBhbHdheXMgbnVsbCBpbiB0aGlzCgljYXNlLCBzbyB0ZXN0IHdpdGggI2lmZGVmIGluc3RlYWQgb2YgaWYuCgoJKiBsaWJjLXN5bWJvbHMuaCAoc3ltYm9sX3NldF9kZWNsYXJlKTogVXNlIHdlYWtfZXh0ZXJuIGluc3RlYWQgb2YKCXdlYWtfc3ltYm9sLgoJKiBjc3UvaW5pdGZpbmkuYyAoX2luaXQpOiBMaWtld2lzZS4KCSogbG9jYWxlL3NldGxvY2FsZS5jIChERUZJTkVfQ0FURUdPUlkpOiBMaWtld2lzZS4KCSogbWlzYy9lZmdjdnRfci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX3JlbGEpOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsKTogTGlrZXdpc2UuCgoJKiBsaWJjLXN5bWJvbHMuaCBbQVNTRU1CTEVSXSAod2Vha19zeW1ib2wpOiBNYWNybyByZW1vdmVkLgoJSXQgd2FzIG5vdCB1c2VkIGluIGFueSBhc3NlbWJsZXIgY29kZS4KCSh3ZWFrX3N5bWJvbF9hc20pOiBSZW5hbWVkIHRvIHdlYWtfZXh0ZXJuX2FzbS4KCSh3ZWFrX2V4dGVybik6IE5ldyBtYWNybyByZXBsYWNlcyB3ZWFrX3N5bWJvbCBmb3Igd2VhayBleHRlcm4gcmVmczsKCWRlZmluZSB0byB3ZWFrX2V4dGVybl9hc20gZm9yIFshQVNTRU1CTEVSXS4KClN1biBKdWwgIDcgMTg6NDI6MDYgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGxpYmMtc3ltYm9scy5oIFshIEFTU0VNQkxFUl0gW0hBVkVfV0VBS19TWU1CT0xTXSAod2Vha19zeW1ib2xfYXNtLAoJd2Vha19hbGlhc19hc20pOiBOZXcgbWFjcm9zLCByZW5hbWVkIGZyb20gd2Vha19zeW1ib2wvd2Vha19hbGlhczsKCWRlZmluZSB0aG9zZSBub3cgYXMgYWxpYXNlcy4KCUNoYW5nZSBjb25kaXRpb25hbCB0byB1c2UgX19hdHRyaWJ1dGVfXyBzeW50YXggZm9yIEdDQyAyLjcrLCBub3QgMi44KwoJW0dDQyA+PSAyLjddIFtIQVZFX1dFQUtfU1lNQk9MU10gKHdlYWtfc3ltYm9sKTogRG8gd2Vha19zeW1ib2xfYXNtCglhZnRlciBHQ0Mgd2VhayBhdHRyaWJ1dGUgZGVjbC4KCgkqIHN5c2RlcHMvZ251L2Vycmxpc3QuYXdrIChCRUdJTik6IEluaXRpYWxpemUgYXNzb2NpYXRpdmUgYXJyYXkgQUxJQVMsCgltYXAgRVdPVUxEQkxPQ0stPkVBR0FJTiwgRURFQURMT0NLLT5FREVBRExLLgoJKGVsZW1lbnQgcHJpbnRlcik6IENoZWNrIGZvciBlbHQgaW4gQUxJQVMsIGluc3RlYWQgb2Ygc3BlY2lhbCBjYXNlCglmb3IgRVdPVUxEQkxPQ0suCgoJKiBpby9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBzeXMvdmZzLmguCgkqIGlvL3N5cy92ZnMuaDogTmV3IGZpbGUuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9qbXAtdW53aW5kLmMgKF9sb25nam1wX3Vud2luZCk6IERvbid0IHVubG9jayB0aGUKCWNyaXRpY2FsIHNlY3Rpb24gbG9jayBiZWZvcmUgdW5saW5raW5nIGR5aW5nIGFjdGl2ZSByZXNvdXJjZXMuCglUaGUgdW5sb2NrIGp1c3QgYmVmb3JlIHJldHVybiBpcyByaWdodCAoaS5lLiBvbGQgY29kZSB1bmxvY2tlZCB0d2ljZSkuCgpTdW4gSnVuICAyIDIyOjI4OjQzIDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzdGRpby9saW5ld3JhcC5jIChsd3VwZGF0ZSk6IFVwZGF0ZSBELT5wb2ludF9vZmZzIHdoZW4gZG9uZS4KCVVzZSBtZW1tb3ZlIGluc3RlYWQgb2YgbWVtY3B5IHdoZXJlIG92ZXJsYXAgaXMgcG9zc2libGUgKG5vdAoJbmVjZXNzYXJ5IHVzaW5nIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgbWVtY3B5LCBidXQuLi4pLgoJKF9fbGluZV93cmFwX3VwZGF0ZSk6IERvbid0IHVwZGF0ZSBELT5wb2ludF9vZmZzIChsd3VwZGF0ZSBkb2VzIGl0KS4KCkZyaSBNYXkgMzEgMTE6NDg6NDYgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN0ZGlvL2xpbmV3cmFwLmMgKGx3dXBkYXRlKTogTmV3IGZ1bmN0aW9uLCBtb3N0bHkgd2FzCglfX2xpbmVfd3JhcF91cGRhdGUuICBVc2UgUE9JTlRfQ09MIGZpZWxkIGluc3RlYWQgb2YgUE9JTlQuCgkoX19saW5lX3dyYXBfb3V0cHV0KTogVXNlIGx3dXBkYXRlLgoJKF9fbGluZV93cmFwX3VwZGF0ZSk6IE5ldyBmdW5jdGlvbi4KCShlbnN1cmVfdW53cmFwcGVkLCBlbnN1cmVfd3JhcHBlZCk6IE5ldyBmdW5jdGlvbnMuCgkobGluZV93cmFwX3NldF9sbWFyZ2luLCBsaW5lX3dyYXBfc2V0X3JtYXJnaW4sCglsaW5lX3dyYXBfc2V0X3dtYXJnaW4sIGxpbmVfd3JhcF9wb2ludCk6IFVzZSBfX2xpbmVfd3JhcF91cGRhdGUuCgoJKiBzdGRpby9saW5ld3JhcC5oIChzdHJ1Y3QgbGluZV93cmFwX2RhdGEpOiBSZW5hbWUgUE9JTlQgZmllbGQgdG8KCVBPSU5UX0NPTC4gQWRkIFBPSU5UX09GRlMgZmllbGQuCgkoX19saW5lX3dyYXBfdXBkYXRlKTogTmV3IGRlY2wuCgkobGluZV93cmFwX3NldF9sbWFyZ2luLCBsaW5lX3dyYXBfc2V0X3JtYXJnaW4sCglsaW5lX3dyYXBfc2V0X3dtYXJnaW4sIGxpbmVfd3JhcF9wb2ludCk6IFVzZSBfX2xpbmVfd3JhcF91cGRhdGUuCgpGcmkgSnVsICA1IDE3OjM0OjQ3IDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBsb2dpbi9sb2dvdXQuYyAobG9nb3V0KTogRG8gbm90aGluZyBpZiBnZXR1dGxpbmVfciByZXR1cm5zIEVTUkNILgoKCSogbG9naW4vcHV0dXRsaW5lX3IuYyAocHV0dXRsaW5lX3IpOiBTaW5jZSB3ZSBhc3NpZ24gUkVTVUxUIGZyb20KCWxzZWVrIG5vdywgY2hlY2sgdGhhdCBpdCdzID49IDAsIG5vdCA9PSAwLgoKV2VkIEp1bCAgMyAxMzoyODowNCAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogbG9naW4vbG9naW4uYyAobG9naW4pOiBNYWtlIGEgY29weSBvZiAqVVQsIGZpbGwgaW4gdmFyaW91cwoJZmllbGRzIHRoYXQgd2Ugc3VwcGx5ICh1dF9saW5lLCB1dF90eXBlLCB1dF9waWQpLCBhbmQgdXNlIHRoZSBjb3B5CglpbiBwbGFjZSBvZiBVVC4KCgkqIGxvZ2luL2dldHV0bGluZV9yLmMgKGdldHV0bGluZV9yKTogV2hlbiB3ZSByZXR1cm4gRVNSQ0gsIG1hcmsKCVVUTVBfREFUQS0+dWJ1ZiBpbnZhbGlkIChieSBzZXR0aW5nIFVUTVBfREFUQS0+bG9jX3V0bXAgdG8gMCkuCgpGcmkgSnVsICA1IDEyOjIyOjUxIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBodXJkL2h1cmRzaWcuYyAoX2h1cmRfaW50ZXJuYWxfcG9zdF9zaWduYWwpOiBJbiBjYXNlIG9mIGhhbmRsZWQKCXNpZ25hbCBkdXJpbmcgY3JpdGljYWwgc2VjdGlvbiBkb2luZyBpbnRlcnJ1cHRpYmxlIFJQQywgaWYKCV9odXJkc2lnX2Fib3J0X3JwY3Mgd2FudHMgdG8gY2hhbmdlIHRocmVhZCBzdGF0ZSwgZG8gdGhyZWFkX3NldF9zdGF0ZQoJYmVmb3JlIHRocmVhZF9yZXN1bWUuICBJZiBpbiBjcml0aWNhbCBzZWN0aW9uLCBwYXNzIDAgZm9yIFNJR05PIHRvCglfaHVyZHNpZ19hYm9ydF9ycGNzIHNvIHJwYyBpcyBpbnRlcnJ1cHRlZCByZWdhcmRsZXNzIG9mIFNBX1JFU1RBUlQuCgoJKiBleHRyYS1saWIubWs6IEZpeCB0eXBvIGluICQoZXh0cmEtbGlicy1vdGhlcnMpIGNvbmRpdGlvbmFsLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3VzZXIuaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IEFkZCBpdC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgKHN5c2RlcF9oZWFkZXJzKTogQWRkIHN5cy91c2VyLmguCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmMgKHBhcnNlX2xpc3QpOiBTZXQgRU9MIGZyb20gTElORSBpZiBpdAoJcG9pbnRzIHdpdGhpbiBEQVRBLT5saW5lYnVmZmVyOyBvdGhlcndpc2UgdXNlIGFsbCBvZiBEQVRBLT5saW5lYnVmZmVyCglpdHNlbGYsIG5vIG5lZWQgdG8gc2tpcCBwYXN0IGEgTlVMLgoKCSogbnNzL25zc3dpdGNoLmggKGtub3duX2Z1bmN0aW9uKTogQ29tbWVudCBmaXguCgkqIG5zcy9uc3N3aXRjaC5jIChuc3NfbG9va3VwX2Z1bmN0aW9uKTogUmV3cml0dGVuIHVzaW5nIF9fdHNlYXJjaAoJZGlyZWN0bHkuICBEbyB0aGUgbG9va3VwIGFuZCBpbnNlcnRpb24gd2l0aCBhIHNpbmdsZSBjYWxsLCBhbmQgZmlsbCBpbgoJdGhlIHRyZWUgbm9kZSBhZnRlcndhcmRzIGlmIG5ldy4KCShrbm93bl9jb21wYXJlLCBuc3NfZmluZF9lbnRyeSwgbnNzX2luc2VydF9lbnRyeSk6IEZ1bmN0aW9ucyByZW1vdmVkLgoKCSogbWlzYy9zeXMvc2VsZWN0Lmg6ICNkZWZpbmUgX19uZWVkX3RpbWVzcGVjIGJlZm9yZSA8c3lzL3RpbWUuaD4gaW5jbC4KCShzdHJ1Y3QgdGltZXZhbCk6IEFkZCBib2RpbGVzcyBkZWNsIGZvciBzY29wZS4KCgkqIHRpbWUvdGltZS5oIChzdHJ1Y3QgdGltZXNwZWMpOiBSZW5hbWUgbWVtYmVycyBmcm9tIGB0c18qJyB0byBgdHZfKicuCglNb3ZlIHN0cnVjdCB0aW1lc3BlYyBkZWZuIG91dHNpZGUgW19USU1FX0hdIHNvIGl0IGNhbiBiZSBnb3Qgd2l0aAoJI2RlZmluZSBfX25lZWRfdGltZXNwZWMuCgoJKiB0aW1lL3N5cy90aW1lLmggKFRJTUVWQUxfVE9fVElNRVNQRUMpOiBVc2UgYHR2XyonIGluc3RlYWQgb2YgYHRzXyonCglmb3IgYHN0cnVjdCB0aW1lc3BlYycgbWVtYmVyIG5hbWVzLgoJKFRJTUVTUEVDX1RPX1RJTUVWQUwpOiBMaWtld2lzZS4KCgkqIG5zcy9NYWtlZmlsZSAoZXh0cmEtbGlicy1vdGhlcnMpOiBOZXcgdmFyaWFibGUuCgoJKiBleHRyYS1saWIubWs6IERvbid0IHRlc3QgZm9yICQoJChsaWIpLW5vLWxpYi1kZXApLiAgSW5zdGVhZCBtYXRjaAoJJChsaWIpIGluICQoZXh0cmEtbGlicy1vdGhlcnMpLgoJKiBzdW5ycGMvTWFrZWZpbGUgKGV4dHJhLWxpYnMtb3RoZXJzKTogTmV3IHZhcmlhYmxlLgoJKGxpYnJwY3N2Yy1uby1saWItZGVwKTogVmFyaWFibGUgcmVtb3ZlZC4KCgkqIGVsZi9ydGxkLmM6IERlZmluZSBSVExEX0JPT1RTVFJBUCBiZWZvcmUgI2luY2x1ZGUgImR5bmFtaWMtbGluay5oIi4KCSogc3lzZGVwcy9pMzg2L2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsKTogUmVtb3ZlIHdlYWsgZGVjbCBmb3IKCV9kbF9ydGxkX21hcC4KCShSRVNPTFZFKTogTmV3IG1hY3JvLCBkZWZpbmVkIGRpZmZlcmVudGx5IGJhc2VkIG9uIFtSVExEX0JPT1RTVFJBUF0uCgkoZWxmX21hY2hpbmVfcmVsKTogVXNlIGl0IGluc3RlYWQgb2YgdGVzdGluZyBmbiBwdHIgYXJnIGF0IHJ1bnRpbWUuCgkoZWxmX21hY2hpbmVfcmVsOiBjYXNlIFJfMzg2XzMyKSBbISBSVExEX0JPT1RTVFJBUF06IERlY2xhcmUKCV9kbF9ydGxkX21hcCB3ZWFrIG9ubHkgaGVyZS4KCgkqIHBvc2l4L3VuaXN0ZC5oIFtfX1VTRV9CU0RdOiBEZWNsYXJlIGdldGRvbWFpbm5hbWUsIHNldGRvbWFpbm5hbWUuCgpUaHUgSnVsICA0IDA1OjIxOjU5IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBsb2dpbi91dG1wLmg6IEZpeCB0eXBvcy4KCgkqIG1pc2Mvc3lzbG9nLmMgKHZzeXNsb2cpOiBVc2UgX19zZW5kIGluc3RlYWQgb2Ygc2VuZCBhbmQKCV9fY29ubmVjdCBpbnN0ZWFkIG9mIGNvbm5lY3QgdG8gYXZvaWQgbmFtZS1zcGFjZSBjb2xsaXNpb25zIChlLmcuLAoJd2l0aCBwc2dldHR5KS4KCldlZCBKdWwgIDMgMTY6Mjk6NDEgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIG5zcy9nZXRYWGJ5WVlfci5jIChSRUVOVFJBTlRfTkFNRSk6IENhc3QgRkNUIGluIF9fbnNzX25leHQgY2FsbC4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zYnJrLmM6IEFsd2F5cyBjYWxsIF9fYnJrICgwKSB0byB1cGRhdGUgX19jdXJicmsuCgoJKiBtYWxsb2MvbWFsbG9jLXNpemUuYyAobWFsbG9jX3VzYWJsZV9zaXplKTogUmVuYW1lZCBmcm9tCgltYWxsb2Nfb2JqZWN0X2FsbG9jYXRpb25fc2l6ZS4KCSogbWFsbG9jL21hbGxvYy5oOiBGaXggZGVjbC4KCgkqIHN5cy9zZWxlY3QuaDogTmV3IGZpbGUsIHdyYXBwZXIgaGVhZGVyLgoKCSogcG9zaXgvc3lzL3R5cGVzLmggW19fVVNFX0JTRF06IEluY2x1ZGUgPHN5cy9zZWxlY3QuaD47IHJlbW92ZQoJZmRfc2V0LCBhc3NvY2lhdGVkIG1hY3JvcywgYW5kIHNlbGVjdCBkZWNsLgoKCSogc3lzZGVwcy9wb3NpeC9pc2ZkdHlwZS5jOiBOZXcgZmlsZS4KClR1ZSBKdWwgIDIgMjM6NDU6MTQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJVGhlIGxhdGVzdCBKYXBhbmVzZSBwcm9wb3NhbCBmb3IgUE9TSVggbG9jYWxlcyByZW5hbWVzIHRoZQoJQ0hBUk1BUCBrZXl3b3JkIGluIGxvY2FsZSBkZWZpbml0aW9uIGZpbGVzIHRvIENIQVJDT05WLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtY3R5cGUuYywgbG9jYWxlL3Byb2dyYW1zL2xvY2FsZXMuaDogUmVuYW1lCglmdW5jdGlvbiBjdHlwZV9pc19jaGFybWFwIHRvIGN0eXBlX2lzX2NoYXJjb252LgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jZmlsZS1rdy5ncGVyZjogUmVwbGFjZSBjaGFybWFwIGtleXdvcmQgd2l0aAoJY2hhcmNvbnYuCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NmaWxlLXRva2VuLmg6IEFkZCBkZWZpbml0aW9uIG9mIHRva2VuCgljaGFyY29udi4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2ZpbGUuYzogUmVjb2duaXplIGNoYXJjb252IGtleXdvcmQuICBSZW5hbWUKCWxhYmxlcyBhY2NvcmRpbmcgdG8gdGhpcy4KCgkqIGxvY2FsZS93ZWlnaHQuaCAoZ2V0X3dlaWdodCk6IENhc3QgY29uc3RhbnRzIHRvIHByZXZlbnQKCXdhcm5pbmdzLgoKCSogc3RkbGliL3N0cnRvZC5jLCBzdGRsaWIvc3RydG9sLmMsIHN0cmluZy9zdHJjb2xsLmMsCglzdHJpbmcvc3RyeGZybS5jOiBBZGQgc29tZSBtb3JlIGNhc3RzIHRvIHByZXZlbnQgc2lnbmVkPC0+dW5zaWduZWQKCXdhcm5pbmdzLgoKCU5ldyBzdHVmZiBkZXNjcmliZWQgaW4gUDEwMDMuMWcuCgkqIG1pc2MvTWFrZWZpbGUgKGhlYWRlcnMpOiBBZGQgc3lzL3NlbGVjdC5oLgoJKHJvdXRpbmVzKTogQWRkIHBzZWxlY3QuCgkqIG1pc2Mvc3lzL3NlbGVjdC5oOiBOZXcgZmlsZS4gIERlY2xhcmUgc2VsZWN0IGZ1bmN0aW9ucyBhbmQKCW5lZWRlZCBkYXRhIHR5cGVzIGFuZCBtYWNyb3MuCgkqIHN5c2RlcHMvZ2VuZXJpYy9wc2VsZWN0LmM6IE5ldyBmaWxlLiAgQWRkIGdlbmVyaWMgaW1wbGVtZW50YXRpb24KCW9mIHBzZWxlY3QoKSBmdW5jdGlvbiB3aGljaCB1c2VzIHNlbGVjdCgpLgoKCSogcG9zaXgvZ2V0Y29uZi5jOiBSZWNvZ25pemUgbmV3IHZhcmlhYmxlcyBmcm9tIFAxMDAzLjFnLgoJKiBwb3NpeC9wb3NpeDFfbGltLmg6IERlZmluZSBfUE9TSVhfRkRfU0VUU0laRSwgX1BPU0lYX1FMSU1JVCwKCV9QT1NJWF9ISVdBVCwgYW5kIF9QT1NJWF9VSU9fTUFYSU9WLgoJKiBwb3NpeC91bmlzdGQuaDogQWRkIGRlc2NyaXB0aW9uIG9mIHRoZSBQMTAwMy4xZyB2YXJpYWJsZXMuCgkqIHN5c2RlcHMvZ2VuZXJpYy9jb25mbmFtZS5oOiBEZWZpbmUgX1NDXyogdmFsdWVzIGZvciBuZXcKCXZhcmlhYmxlcy4KCSogc3lzZGVwcy9wb3NpeC9mcGF0aGNvbmYuYyAoZnBhdGhjb25mKTogQWRkIGhhbmRsaW5nIG9mCglfUENfU09DS19NQVhCVUYuCgkqIHN5c2RlcHMvc3R1Yi9mcGF0aGNvbmYuYyAoZnBhdGhjb25mKTogRGl0dG8uCgkqIHN5c2RlcHMvcG9zaXgvc3lzY29uZi5jIChzeXNjb25mKTogQWRkIGhhbmRsaW5nIG9mIG5ldwoJUDEwMDMuMWcgdmFyaWFibGVzLgoJKiBzeXNkZXBzL3N0dWIvc3lzY29uZi5jIChzeXNjb25mKTogRGl0dG8uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Bvc2l4X29wdC5oOiBEZWZpbmUgX1BPU0lYX1BPTEwgYW5kCglfUE9TSVhfU0VMRUNUIHNpbmNlIExpbnV4IGhhcyB0aGlzLgoKCSogc29ja2V0L01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBpc2ZkdHlwZS4KCSogc3lzZGVwcy9nZW5lcmljL3N5cy9zb2NrZXQuaDogQWRkIHByb3RvdHlwZSBmb3IgaXNmZHR5cGUuCgkqIHN5c2RlcHMvc3R1Yi9pc2ZkdHlwZS5jOiBOZXcgZmlsZS4gIFN0dWIgaW1wbGVtZW50YXRpb24gb2YKCWlzZmR0eXBlLgoKCSogd2NzbWJzL3djcnRvbWIuYyAod2NydG9tYik6IEZpeCB0eXBvLgoKV2VkIEp1bCAgMyAxMToyNjoyOCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogZWxmL01ha2VmaWxlIChMREZMQUdTLWRsLnNvKTogTmV3IHZhcmlhYmxlLgoJKGxpYmRsLnNvKTogRGVwZW5kIG9uIGV2YWwuc28uCgkoZGlzdHJpYnV0ZSk6IEFkZCBldmFsLmMuCgkqIGVsZi9ldmFsLmM6IE5ldyBmaWxlLgoKCSogdGltZS9zdHJmdGltZS5jIChzdHJmdGltZTogZG9fbnVtYmVyKTogQWRqdXN0IFAgYW5kIEkgYWZ0ZXIgc3ByaW50ZgoJaW4gY2FzZSBpdCB3cm90ZSBmZXdlciB0aGFuIE1BWERJR0lUUyBjaGFycy4KCgkqIHN0ZGlvL2Z3cml0ZS5jIChmd3JpdGU6IGZpbGxfYnVmZmVyKTogU2VwYXJhdGUgZmx1c2hpbmcgZm9yIGxhc3QKCW5ld2xpbmUgZnJvbSBmbHVzaGluZyBmdWxsIGJ1ZmZlciBpbiBsb29wLCBmaXggdGVzdCBzbyBubyBmZmx1c2ggaXMKCWRvbmUgd2hlbiBsYXN0IGJ5dGUgd3JpdHRlbiBleGFjdGx5IGZpbGxzIHRoZSBidWZmZXIuCgoJKiBuc3MvTWFrZWZpbGUgKCQoc2VydmljZXM6JT0kKG9ianBmeClsaWJuc3NfJS5zbykpOiBEZXBlbmQgb24gbGliYy5zby4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlIChMRExJQlMtYy5zbyk6IFZhcmlhYmxlIHJlbW92ZWQuCgkobGliYy5zbyk6IEluc3RlYWQsIGdpdmUgdGhpcyBkZXBzIG9uIGxpYnttYWNoLGh1cmR9dXNlci5zby4KCgkqIGVsZi9kbC1kZWJ1Zy5jIChfZGxfZGVidWdfaW5pdGlhbGl6ZSk6IFVzZSBMREJBU0UgYXJnIGluc3RlYWQgb2YKCWV4dHJhY3RpbmcgX2RsX3J0bGRfbWFwLmxfYWRkci4KCgkqIHN5c2RlcHMvaTM4Ni9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX3JlbCk6IERlY2xhcmUgX2RsX3J0bGRfbWFwIGFzCgl3ZWFrLgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsYSk6IExpa2V3aXNlLgoKCSogc2hsaWItdmVyc2lvbnMgKCotKi0qKTogU2V0IGxpYm5zc19kYj0xLgoKVHVlIEp1bCAgMiAxMDo0NDozNyAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IFNldCBfZGxfcnRsZF9tYXAncyBEVF9ERUJVRyBsb2NhdGlvbiB0b28uCgoJKiBycG0vdGVtcGxhdGUgKCVidWlsZCk6IFVzZSBAcHJlZml4QCBpbnN0ZWFkIG9mIGFsd2F5cyAvdXNyLgoJU2V0IHVwIGNvbmZpZ3Bhcm1zIG9ubHkgaWYgQHByZWZpeEAgaXMgaW4gZmFjdCAvdXNyLgoJKiBycG0vTWFrZWZpbGUgKCQoY29uZmlnKSk6IFN1YnN0aXR1dGUgJChwcmVmaXgpIGZvciBAcHJlZml4QC4KCgkqIGVsZi9NYWtlZmlsZTogQWRkIG1pc3NpbmcgZW5kaWYuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLWV0aGVycy5jIChudG9ob3N0KTogRml4IGRiIGtleS4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtbmV0d29yay5jOiBQYXNzIGVtcHR5IGZvciBuZXcgREJfTE9PS1VQIGFyZ3MuCgkoREFUQUJBU0UpOiBEZWZpbmUgdGhpcyBpbnN0ZWFkIG9mIERBVEFGSUxFLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLWhvc3RzLmM6IExpa2V3aXNlLgoJKGhvc3RieW5hbWUpOiBVc2UgTE9PS1VQX05BTUUgbWFjcm8uCgoJKiBuc3MvbnNzX2RiL2RiLVhYWC5jOiBOZXcgZmlsZS4KCSogbnNzL01ha2VmaWxlIChzZXJ2aWNlcyk6IEFkZCBkYi4KCShsaWJuc3NfZGItaW5oaWJpdC1vKTogTmV3IHZhcmlhYmxlLgoJKGxpYm5zc19kYi1yb3V0aW5lcyk6IE5ldyB2YXJpYWJsZS4KCShkaXN0cmlidXRlKTogQXBwZW5kIGRiLVhYWC5jLgoJKGxpYm5zc19kYi5zbyk6IERlcGVuZCBvbiBsaWJkYi5zbyBhbmQgbGlibnNzX2ZpbGVzLnNvLgoJKCQobGlibnNzX2RiLXJvdXRpbmVzOiU9JChvYmpwZngpJS5jKSk6IE5ldyBzdGF0aWMgcGF0dGVybiBydWxlLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1YWFguYyAoREJfTE9PS1VQKTogQWRkIEtFWVNJWkUgYW5kIEtFWVBBVFRFUk4KCWFyZ3MsIGlnbm9yZWQuCgkoREFUQUZJTEUpOiBOZXcgbWFjcm8uCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYyAoR0VORVJJQyk6IElmIHVuZGVmaW5lZCwgZGVmaW5lIHRvCgkiZmlsZXMtWFhYLmMiLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXJwYy5jOiBJbmNsdWRlIEdFTkVSSUMgaW5zdGVhZCBvZiAiZmlsZXMtWFhYLmMiLgoJUGFzcyBkYiBrZXkgYXJncyB0byBEQl9MT09LVVAuCgkoREFUQUZJTEUpOiBNYWNybyByZW1vdmVkLgoJKERBVEFCQVNFKTogTmV3IG1hY3JvIHJlcGxhY2VzIGl0LCBsYWNrcyAiL2V0Yy8iIHByZWZpeC4KCSogbnNzL25zc19maWxlcy9maWxlcy1zZXJ2aWNlLmM6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXB3ZC5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1wcm90by5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1ncnAuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtZXRoZXJzLmM6IExpa2V3aXNlLgoKCSogZWxmL2xpbnV4LWNvbXBhdC5jOiBGaWxlIHJlbW92ZWQuCgkqIGVsZi9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IFJlbW92ZSBsaW51eC1jb21wYXQuYy4KCShsZC1saW51eC5zby4xKTogUmVtb3ZlIHRhcmdldCBhbmQgYXNzb2NpYXRlZCB2YXJpYWJsZXMuCgoJKiBzdW5ycGMveGRyLmM6IFJlbW92ZSBtYWxsb2MgZGVjbC4KCSogc3VucnBjL3BvcnRtYXAuYzogTGlrZXdpc2UuCgoJKiBzdW5ycGMvc3ZjX3RjcC5jIChhYm9ydCk6IERvbid0IGRlY2xhcmUuICBJbnN0ZWFkIGRlZmluZSBhcyBtYWNybwoJY2FzdGluZyBhYm9ydCB0byBmbiByZXR1cm5pbmcgYm9vbF90LgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jIFtFWFRFUk5fUEFSU0VSXTogRG8gYW4gZXh0ZXJuIGRlY2wgb2YKCXRoZSBwYXJzZXIgZnVuY3Rpb24uCglbRVhURVJOX1BBUlNFUl0gKExJTkVfUEFSU0VSKTogRGVmaW5lIHRvIGVtcHR5LgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXB3ZC5jIChFWFRFUk5fUEFSU0VSKTogRGVmaW5lIGl0LgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLWdycC5jOiBMaWtld2lzZS4KCgkqIE1ha2Vjb25maWcgKEJVSUxEX0NDKTogSWYgdW5kZWZpbmVkLCBkZWZpbmUgdG8gJChDQykuCgoJKiBzdW5ycGMvcnBjL3R5cGVzLmg6IEluY2x1ZGUgc3RkbGliLmggaW5zdGVhZCBvZiBkZWNsYXJpbmcgbWFsbG9jLgoKCSogTWFrZWNvbmZpZyAoYnVpbHQtcHJvZ3JhbS1jbWQpOiBVc2UgJChydGxkLWluc3RhbGxlZC1uYW1lKSBpbiBwbGFjZQoJb2YgbGQuc28gc28gbG9va3VwcyBmb3IgdGhhdCBzb25hbWUgZmluZCBpdC4KCgkqIG5zcy9NYWtlZmlsZSAobGlibnNzX2Rucy5zbyk6IERlcGVuZCBvbiBsaWJyZXNvbHYuc28uCgkocmVzb2JqZGlyLCBMRExJQlMtbnNzX2Rucy5zbyk6IFZhcmlhYmxlcyByZW1vdmVkLgoKCSogcHdkL2ZnZXRwd2VudC5jOiBEb24ndCBpbmNsdWRlIC4uL25zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYyB0bwoJZGVmaW5lIHBhcnNlX2xpbmUgZnVuY3Rpb24uCgkocGFyc2VfbGluZSk6ICNkZWZpbmUgdG8gX25zc19maWxlc19wYXJzZV9wd2VudCBhbmQKCWFkZCBleHRlcm4gZGVjbCBmb3IgdGhhdC4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLmMgKGludGVybmFsX2dldGVudCk6IFJldHVybgoJTlNTX1NUQVRVU19UUllBR0FJTiBmb3IgRVJBTkdFIGVycm9yLgoKCSogc3lzZGVwcy9pMzg2L3N0cnRvay5TIChMcmV0dXJuTlVMTCk6IFNhdmUgY3VycmVudCBzdGF0ZSBwdHIgaW5zdGVhZAoJb2YgbnVsbCwgc28gbmV4dCByb3VuZCByZXR1cm5zIG51bGwgYWdhaW4gaW5zdGVhZCBvZiBib21iaW5nLiAgRml4Cglmcm9tIGRyZXBwZXIuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmMgKExJTkVfUEFSU0VSKTogVGFrZSBuZXcgZmlyc3QgYXJnIEVPTFNFVC4KCVJlbW92ZSA7IGFmdGVyIGBFTlREQVRBX0RFQ0wgKGRhdGEpJy4KCVRydW5jYXRlIGxpbmUgYXQgc3RycGJyayAobGluZSwgRU9MU0VUICJcbiIpLgoJKEVOVERBVEFfREVDTCk6IFB1dCA7IGF0IGVuZC4KCShNSURMSU5FX0NPTU1FTlRTKTogTWFjcm8gcmVtb3ZlZC4KCSogbnNzL25zc19maWxlcy9maWxlcy1ldGhlcnMuYzogUGFzcyBuZXcgYXJndW1lbnQuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtaG9zdHMuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtbmV0d29yay5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1wcm90by5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1ycGMuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtc2VydmljZS5jOiBMaWtld2lzZS4KCSogZ3JwL2ZnZXRncmVudC5jOiBMaWtld2lzZS4KCSogcHdkL2ZnZXRwd2VudC5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1wd2QuYzogR2V0IHBhcnNlX2xpbmUgd2l0aCBleHRlcm4gZGVjbCwgc2luY2UKCWZnZXRwd2VudC5jIGFscmVhZHkgZGVmaW5lcyBpdC4KCSogbnNzL25zc19maWxlcy9maWxlcy1ncnAuYzogTGlrZXdpc2UuCgoJKiBlbGYvZGwtbG9hZC5jIChfZGxfbWFwX29iamVjdCk6IFVzZSBhbnkgb2JqZWN0IHdpdGggbWF0Y2hpbmcgbF9uYW1lCglhcyB3ZWxsIGFzIGFueSBtYXRjaGluZyB3aXRoIGxfbGlibmFtZS4gIEZpeCBEVF9TT05BTUUgbG9va3VwIHRvIHVzZQoJc3RyaW5nIHRhYmxlIHByb3Blcmx5LgoKCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IFNldCBfZGxfcnRsZF9tYXAubF9uYW1lIGZyb20gX2RsX2FyZ3ZbMF0gd2hlbgoJaW52b2tlZCBkaXJlY3RseSwgYW5kIGxfbGlibmFtZSBmcm9tIHRoYXQgaWYgUFRfSU5URVJQIG1pc3NpbmcuCglTZXQgbF9uYW1lIGZyb20gbF9saWJuYW1lIG9ubHkgaWYgbm90IHNldCBmcm9tIGFyZ3YuCgoJKiB0aW1lL2V1cm9wZSwgdGltZS9ub3J0aGFtZXJpY2E6IFVwZGF0ZWQgZnJvbSBBRE8gOTZpLgoKTW9uIEp1bCAgMSAxNTo0NDozNCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogc3RkaW8tY29tbW9uL3RzdC11bmdldGMuYzogSW5jbHVkZSB1bmlzdGQuaC4KCgkqIGluZXQvTWFrZWZpbGUgKHJvdXRpbmVzKTogQ2hhbmdlIGdldG5ldGJ5cHQgdG8gZ2V0bmV0YnlhZC4KCk1vbiBKdWwgIDEgMTM6MzI6NDIgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIGh1cmQvcmVwb3J0LXdhaXQuYyAoZGVzY3JpYmVfbnVtYmVyKTogTWFrZSBJIHVuc2lnbmVkIGxvbmcuCgoJKiBsb2dpbi9sb2dpbi5jIChsb2dpbik6IE9ubHkgRnJvYiBPTEQtPnV0X3R5cGUgaWYgZ2V0dXRsaW5lX3IKCWFjdHVhbGx5IGZvdW5kIGFueSBlbnRyeS4KCgkqIGxvZ2luL3B1dHV0bGluZV9yLmMgKHB1dHV0bGluZV9yKTogSWYgbm90IGxvY2F0ZWQgYWZ0ZXIgYW55CgllbnRyeSBkb24ndCB1c2UgVVRNUF9EQVRBLT51YnVmLCBhbmQgc2VlayB0byB0aGUgZW5kIGJlZm9yZSBhZGRpbmcuCglMb2NrIHRoZSBmaWxlIGJlZm9yZSBzdGF0aW5nLgoKTW9uIEp1bCAgMSAxMjoyOTo1MCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogbnNzL01ha2VmaWxlIChkYXRhYmFzZXMpOiBDaGFuZ2UgaG9zdCB0byBob3N0cy4KCSogbnNzL2hvc3QtbG9va3VwLmM6IFJlbmFtZWQgdG8gbnNzL2hvc3RzLWxvb2t1cC5jLgoKCSogbnNzL25zc3dpdGNoLmMgKG5zc19wYXJzZV9zZXJ2aWNlX2xpc3QpOiBVc2UgY29uc3QgZm9yIE5BTUUuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmMgKHBhcnNlX2xpc3QpOiBDb3JyZWN0IGFsaWdubWVudCBmaXh1cC4KCgkqIHN0cmluZy9zdHJpbmcuaCAoc3RybmR1cGEpOiBQYXNzIG1pc3NpbmcgYXJnIHRvIHN0cm5sZW4uCgoJKiBpbmV0L2dldG5ldGJ5cHRfci5jOiBSZW5hbWVkIHRvIC4uLgoJKiBpbmV0L2dldG5ldGJ5YWRfci5jOiB0aGlzOyBmaXhlZCBmdW5jdGlvbiBuYW1lLgoJKiBpbmV0L2dldG5ldGJ5cHQuYzogUmVuYW1lZCB0byAuLi4KCSogaW5ldC9nZXRuZXRieWFkLmM6IHRoaXM7IGZpeGVkIGZ1bmN0aW9uIG5hbWUuCgpTYXQgSnVuIDI5IDAxOjA4OjM1IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogZ3JwL2dldGdyZ2lkX3IuYyAoTE9PS1VQX1RZUEUpOiBEZWZpbmUgdG8gc3RydWN0IGdyb3VwLCBub3QKCXN0cnVjdCBwYXNzd2QuCgpGcmkgSnVuIDI4IDIzOjI1OjM1IDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBsb2dpbi9sb2dpbi5jIChsb2dpbik6IEluaXRpYWxpemUgREFUQSBzbyB0aGF0IHNldHV0ZW50X3Igd2lsbAoJYWN0dWFsbHkgZG8gc29tZXRoaW5nLgoKRnJpIEp1biAyOCAxNjo1MzowMSAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogcmVzb2x2L3Jlc19oY29uZi5jIChzdHJuZHVwKTogUmVtb3ZlIGZ1bmN0aW9uLgoKCSogbnNzL25zc3dpdGNoLmMgKG5zc19sb29rdXBfZnVuY3Rpb24pOiBEZWNsYXJlIGxvYWRiYXNlIGFuZCByZWYKCXVzaW5nIEVsZlcoKSBpbnN0ZWFkIG9mIEVsZjMyXyouCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pbml0LWZpcnN0LmgsCglzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2luaXQtZmlyc3QuaCwKCXN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvaW5pdC1maXJzdC5oOiBOZXcgZmlsZXMuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2luaXQtZmlyc3QuYzogVXNlIHBsYXRmb3JtLWRlcGVuZGVudAoJaW5pdC1maXJzdC5oIHRvIG1ha2UgYWJzdHJhY3QgbWFjaGluZSBkZXBlbmRlbnQgcGFydHMgb2YKCWluaXRpYWxpemF0aW9uLgoKCSogc3lzZGVwcy91bml4L2FscGhhL3N5c2RlcC5oOiBVbmRvIFBJQy1vcHRpbWl6YXRpb24gb2Ygc3lzY2FsbAoJZXJyb3IgaGFuZGxpbmcuICBJdCdzIHNhZmVyIHRoYXQgd2F5LgoKCSogc3lzZGVwcy91bml4L2FscGhhL3N5c2RlcC5TOiBNYWtlIGxkZ3AgcGFydCBvZiB0aGUgcHJvbG9ndWUuCglGaXggYnkgUmljaGFyZCBIZW5kZXJzb24uCgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaCAoZWxmX2FscGhhX2ZpeF9wbHQpOiBGaXgKCXR5cG8vZXh0cmFuZW91cyB3aGl0ZXNwYWNlLgoKCSogc3VucnBjL3hkci5jICh4ZHJfaW50LCB4ZHJfdV9pbnQpOiBVc2UgPGxpbWl0cy5oPiB0byB0ZXN0CglkZXRlcm1pbmUgd2hhdCBpbnRlZ2VyIHNpemVzIHdlJ3JlIGRlYWxpbmcgd2l0aC4KCkZyaSBKdW4gMjggMTU6NDY6MDIgMTk5NiAgTWljaGFlbCBJLiBCdXNobmVsbCwgcC9CU0cgIDxtaWJAZ251LmFpLm1pdC5lZHU+CgoJKiBodXJkL2h1cmRzaWcuYyAoX2h1cmRfaW50ZXJuYWxfcG9zdF9zaWduYWwpOiBJbiBwZW5kaW5nIHNpZ25hbAoJY2hlY2sgZm9yIHNpZ25hbCB6ZXJvLCByZXBhaXIgbG9naWNhbCBzZW5zZSBvZiB0ZXN0IGJ5CglwYXJlbnRoZXNpemluZyBjb3JyZWN0bHkuCgoJKiBodXJkL2h1cmRzaWcuYyAoX2h1cmRfaW50ZXJuYWxfcG9zdF9zaWduYWwpOiBJbgoJY2hlY2stZm9yLXBlbmRpbmcgc2lnbmFscyBjb2RlLCByZWxlYXNlIF9odXJkX3NpZ2xvY2sgYmVmb3JlCglqdW1waW5nIHRvIGRlbGl2ZXJfcGVuZGluZy4KClRodSBKdW4gMjcgMDQ6MDQ6MjcgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoY29uZmlnX21hY2hpbmUpOiBNYWtlIEVMRiB0aGUgZGVmYXVsdCBldmVuIGZvcgoJTGludXgvQWxwaGEgdW5sZXNzIGEgY29uZmlndXJhdGlvbiBvZiB0aGUgZm9ybSAqLSotbGludXgqZWNvZmYKCWlzIHNwZWNpZmllZC4KCkZyaSBKdW4gMjggMDc6Mjc6MTAgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtaG9zdHMuYyAoRU5UREFUQSk6IERlZmluZSBpdC4KCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jIChzdHJ1Y3QgcGFyc2VyX2RhdGEpOiBEZWZpbmUgZW50ZGF0YQoJbWVtYmVyIG9ubHkgI2lmZGVmIEVOVERBVEEuCgkoRU5UREFUQV9ERUNMKTogTmV3IG1hY3JvLgoJKExJTkVfUEFSU0VSKTogVXNlIGl0IGZvciBlbnRkYXRhIGRlY2wuCgkocGFyc2VfbGlzdCk6IEZpbmQgdGhlIHNwYWNlIGZvciBMSVNUIGZyb20gREFUQS0+bGluZWJ1ZmZlciBpbnN0ZWFkIG9mCglmcm9tIHRoZSBpbnB1dCBMSU5FLCB3aGljaCBtaWdodCBub3QgYmUgd3JpdGFibGUgYnVmZmVyIHNwYWNlLgoJKExJTkVfUEFSU0VSKTogVXNlIGBwYXJzZXJfc3RjbGFzcycgaW4gcGxhY2Ugb2YgYHN0YXRpYyBpbmxpbmUnLgoJW0VOVERBVEFdIChwYXJzZXJfc3RjbGFzcyk6ICNkZWZpbmUgdG8gYHN0YXRpYyBpbmxpbmUnLgoJWyFFTkRBVEFdIChwYXJzZXJfc3RjbGFzcyk6ICNkZWZpbmUgdG8gZW1wdHkuCglbIUVOVERBVEFdIChwYXJzZV9saW5lKTogI2RlZmluZSB0byBfbnNzX2ZpbGVzX3BhcnNlX0VOVE5BTUU7IHRoZQoJZnVuY3Rpb24gaXMgZXhwb3J0ZWQgdG8gLWxuc3NfZmlsZXMgdXNlcnMuCgoJKiBzdHJpbmcvc3RybmR1cC5jOiBBZGQgbWlzc2luZyBhcmcuCgoJKiBzdHJpbmcvc3RyaW5nLmggKHN0cm5kdXBhKTogTGlrZXdpc2UuCgkqIHN0cmluZy9zdHJuZHVwLmMgKHN0cm5kdXApOiBBbHdheXMgdGVybWluYXRlIHRoZSBzdHJpbmcuCgpUaHUgSnVuIDI3IDE0OjIyOjMxIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3RkaW8vTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIHZzY2FuZi4KCSogc3RkaW8tY29tbW9uL01ha2VmaWxlIChyb3V0aW5lcyk6IFJlbW92ZSB2c2NhbmYuCgkqIHN0ZGlvLWNvbW1vbi92c2NhbmYuYzogTW92ZSB0byAuLi4KCSogc3RkaW8vdnNjYW5mLmM6IGhlcmUuCgoJKiBycG0vTWFrZWZpbGUgKGhlYWRlcnMsIGluc3RhbGwtbGliLCBpbnN0YWxsLWxpYi5zbywKCXZlcnNpb25lZCwgaW5zdGFsbC1iaW4sIGluc3RhbGwtc2JpbiwgaW5zdGFsbC1kYXRhLAoJaW5zdGFsbC1vdGhlcnMpOiBBZGQgJCgtVkFSSUFCTEUpLgoKRnJpIEp1biAyOCAwMjo0MTowOCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogbnNzL01ha2VmaWxlIChkYXRhYmFzZXMpOiBOZXcgdmFyaWFibGUuCgkocm91dGluZXMsIGxpYm5zc19maWxlcy1yb3V0aW5lcyk6IFVzZSBpdC4KCShzdWJkaXItZGlycyk6IENvbXB1dGUgZnJvbSAkKHNlcnZpY2VzKS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3QgKGNyZWF0ZV9tb2R1bGUsIGRlbGV0ZV9tb2R1bGUsCglpbml0X21vZHVsZSwga2xvZ2N0bCk6IFVzZSBFWFRSQSBpbiB0aGUgImNhbGxlciIgY29sdW1uIHNvIHRoZXNlIGdldAoJYWRkZWQgdG8gdW5peC1leHRyYS1zeXNjYWxscyBhbmQgdGh1cyBjb21waWxlZCBpbiBtaXNjLgoKCSogc3RyaW5nL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBzdHJuZHVwLgoJKiBzdHJpbmcvc3RybmR1cC5jOiBOZXcgZmlsZS4KCSogc3RyaW5nL3N0cmluZy5oOiBEZWNsYXJlIHN0cm5kdXAuCgkoc3RybmR1cGEpOiBOZXcgbWFjcm8uCgoJKiBzdHJpbmcvc3RyaW5nLmg6IERlY2xhcmUgX19zdHJkdXAuCgkqIHN0cmluZy9zdHJkdXAuYzogRGVhbnNpZGVjbGl6ZWQuICBEZWZpbmUgX18gbmFtZSBhbmQgd2VhayBhbGlhcy4KCgkqIHN0cmluZy9zdHJpbmcuaDogRG9uJ3QgZGVmaW5lIG1lbWNjcHkgYXMgbWFjcm8gZm9yIFtfX09QVElNSVpFX19dLgoKVGh1IEp1biAyNyAwMjo0OToyOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGNhdGdldHMvZ2VuY2F0LmM6IEFkZCBjYXN0cyB0byBhdm9pZCBzaWduZWQ8LT51bnNpZ25lZCB3YXJuaW5ncy4KCgkqIGdycC9pbml0Z3JvdXBzLmMgKGluaXRncm91cHMpOiBEZS1hbnNpLWZ5LgoJTW92ZSBkZWNsYXJhdGlvbiBvZiBOR1JPVVBTIGFuZCBHUk9VUFMgb3V0c2lkZSAjaWYgc28gdGhhdAoJdGhlIGNvZGUgY29tcGlsZXMgZm9yIE5HUk9VUFNfTUFYICE9IDAuCgoJKiBpbmV0L01ha2VmaWxlIChoZWFkZXJzKTogQWRkIG5ldGluZXQvZXRoZXIuaCBhbmQgbmV0aW5ldC9pZl9ldGhlci5oLgoJKHJvdXRpbmVzKTogQWRkIGV0aGVyX2F0b24sIGV0aGVyX2F0b25fciwgZXRoZXJfaHRvbiwgZXRoZXJfbGluZSwKCWV0aGVyX250b2EsIGV0aGVyX250b2FfciwgYW5kIGV0aGVyX250b2guCgkqIGluZXQvZXRoZXJfYXRvbi5jLCBpbmV0L2V0aGVyX2F0b25fci5jLCBpbmV0L2V0aGVyX2h0b24uYywKCWluZXQvZXRoZXJfbGluZS5jLCBpbmV0L2V0aGVyX250b2EuYywgaW5ldC9ldGhlcl9udG9hX3IuYywKCWluZXQvZXRoZXJfbnRvaC5jOiBOZXcgZmlsZXMuICBJbXBsZW1lbnRhdGlvbiBvZiBmdW5jdGlvbnMgdG8KCWhhbmRsZSBFdGhlcm5ldCBhZGRyZXNzIHRvIGhvc3QgbWFwcGluZy4KCSogaW5ldC9uZXRpbmV0L2V0aGVyLmg6IE5ldyBmaWxlLiAgRGVjbGFyZSBldGhlcl8qIGZ1bmN0aW9ucy4KCSogbmV0aW5ldC9ldGhlci5oOiBXcmFwcGVyIGFyb3VuZCBpbmV0L25ldGluZXQvZXRoZXIuaCBmb3IgZ2xpYmMKCWNvbXBpbGF0aW9uLgoJKiBuc3MvZXRoZXJzLWxvb2t1cC5jOiBOZXcgZmlsZS4gIExvb2t1cCBmdW5jdGlvbiBmb3IgZXRoZXJzIGRhdGFiYXNlLgoJKiBuc3MvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGV0aGVycy1sb29rdXAuCgkobGlibnNzX2ZpbGVzLXJvdXRpbmVzKTogQWRkIGZpbGVzLWV0aGVycy4KCgkqIG5zcy9nZXRYWGVudF9yLmM6IERvbid0IGRlZmluZSBzZXQqZW50IGFuZCBlbmQqZW50IGZ1bmN0aW9uCgl3aXRoIF9yIHN1ZmZpeC4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLmMgKGludGVybmFsX2VuZGVudCk6IERvbid0IHJlc2V0CglLRUVQX1NUUkVBTSBldmVyeSB0aW1lIGNhbGxlZC4KCShfbnNzX2ZpbGVzX2VuZCk6IFJlc2V0IEtFRVBfU1RSRUFNIGhlcmUgaW5zdGVhZC4KCShpbnRlcm5hbF9nZXRlbnQpOiBJZiBTVFJFQU0gPT0gTlVMTCB0cnkgdG8gb3BlbiBpbnN0ZWFkIG9mCglzaWduYWxsaW5nIGVycm9yLgoJVXNlIGNhc3QgdG8gcHJldmVudCB3YXJuaW5nLgoJVGVybWluYXRlIHJlYWQgbGluZSBpbiBjYXNlIHRoZSBidWZmZXIgaXMgdG9vIHNtYWxsLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1ldGhlcnMuYzogTmV3IGZpbGUuICBJbXBsZW1lbnRhdGlvbiBvZgoJRXRoZXJuZXQgYWRyZXNzPC0+aG9zdG5hbWUgbG9va3VwIHRocm91Z2ggZmlsZXMgaW50ZXJmYWNlLgoKCSogc3RkbGliL21ic3Rvd2NzLmM6IERlZmluZSBiYXNlZCBvbiBtYnNydG93Y3MoKS4KCSogc3RkbGliL21idG93Yy5jOiBEZWZpbmUgYmFzZWQgb24gbWJydG93YygpLgoJKiBzdGRsaWIvd2NzdG9tYnMuYzogRGVmaW5lIGJhc2VkIG9uIHdjc3J0b21icygpLgoJKiBzdGRsaWIvd2N0b21iLmM6IERlZmluZSBiYXNlZCBvbiB3Y3J0b21iKCkuCgoJKiBzdW5ycGMveGRyLmMgKHhkcl91X2ludCk6IEF2b2lkIGJvZ3VzIGNhbGwgdG8KCXVuZXhwZWN0ZWRfc2l6ZXNfaW5feGRyX3VfaW50LgoKCSogc3lzZGVwcy9nZW5lcmljL25ldGluZXQvaWZfZXRoZXIuaDogTmV3IGZpbGUuICBHZW5lcmljIGRlY2xhcmF0aW9uCglvZiBgc3RydWN0IGV0aGVyX2FkZHInLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXRpbmV0L2lmX2V0aGVyLmg6IE5ldyBmaWxlLiAgTGludXggc3BlY2lmaWMKCWRlY2xhcmF0aW9uIG9mIGBzdHJ1Y3QgZXRoZXJfYWRkcicuCgoJKiB3Y3NtYnMvbWJydG93Yy5jOiBIYW5kbGUgY2FzZSB3aGVyZSBhcmd1bWVudCBQUyBpcyBOVUxMLgoJKiB3Y3NtYnMvbWJzcnRvd2NzLmM6IERpdHRvLgoJKiB3Y3NtYnMvd2NydG9tYi5jOiBEaXR0by4KCSogd2NzbWJzL3djc3J0b21icy5jOiBEaXR0by4KCgkqIHdjc21icy9tYnNpbml0LmM6IFByZXBhcmUgZm9yIFBTIGJlaW5nIE5VTEwuCgpXZWQgSnVuIDI2IDEzOjE5OjM1IDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBodXJkL2dldC1ob3N0LmMgPGZjbnRsLmg+OiBOZXcgaW5jbHVkZS4KCSogaHVyZC9zZXQtaG9zdC5jIDxmY250bC5oPjogTmV3IGluY2x1ZGUuCgkoX2h1cmRfc2V0X2hvc3RfY29uZmlnKTogSW5jbHVkZSBORVcgaW4gYXJncyB0byBkaXJfbGluay4KCVJldHVybiBOV1JPVEUsIG5vdCBOUkVBRC4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2dldGN3ZC5jCgkoX2h1cmRfY2Fub25pY2FsaXplX2RpcmVjdG9yeV9uYW1lX2ludGVybmFsKTogRG9uJ3QgZGVhbGxvY2F0ZQoJRE9USUQgJiBET1RERVZJRCB1bnRpbCB3ZSdyZSBmaW5pc2hlZCB3aXRoIHRoZW0gKHdlIG5lZWQgdG8ga2VlcAoJdGhlbSBhdCBsZWFzdCB1bnRpbCB3ZSd2ZSBmZXRjaGVkIHRoZSBuZXh0IGxldmVsIG9mIGlkIHBvcnRzLCBzbwoJdGhhdCBtYWNoIHdpbGwgYmUgYWJsZSB0byB1c2UgdGhlIHNhbWUgbmFtZSBpZiB0aGV5J3JlIHRoZSBzYW1lKS4KCUFkZCBpbm5lcl9lcnJsb3NlOiBsYWJlbCwgd2hpY2ggZGVhbGxvY2F0ZXMgRE9USUQgJiBET1RERVZJRCBhbmQKCWp1bXBzIHRvIGVycmxvc2UsIGZvciB0aG9zZSBwbGFjZXMgd2hlcmUgc3VjaCBjbGVhbnVwIGlzIG5lZWRlZC4KCldlZCBKdW4gMjYgMDE6NTg6NDkgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYyAocGFyc2VfbGlzdCk6IENvdW50IG51bGwgaW4gRU9MIGNhbGMuCgoJTW92ZSBEQiBjb2RlIGludG8gc2VwYXJhdGUgLWxkYiBsaWJyYXJ5LgoJKiBkYi9NYWtlZmlsZSAoZXh0cmEtbGlicyk6IE5ldyB2YXJpYWJsZSwgbGlzdCBsaWJkYi4KCShyb3V0aW5lcyk6IFJlbmFtZWQgdG8gbGliZGItcm91dGluZXMuCgkqIHNobGliLXZlcnNpb25zOiBBZGQgbGliZGI9Mi4KCgkqIG5zcy9uZXR3b3JrLWxvb2t1cC5jIChERUZBVUxUX0NPTkZJRyk6IE5ldyBtYWNyby4KCSogbnNzL2hvc3QtbG9va3VwLmMgKERFRkFVTFRfQ09ORklHKTogTmV3IG1hY3JvLgoKCSogbnNzL25zc3dpdGNoLmMgKG5zc19wYXJzZV9zZXJ2aWNlX2xpc3QpOiBVc2UgX19zdHJuY2FzZWNtcCBpbnN0ZWFkCglvZiBzdHJuY2FzZWNtcC4gIEV4dGVuZCBzeW50YXggdG8gZ3JvayBbIWZvbz1iYXJdLgoKCSogc3lzZGVwcy9nZW5lcmljL3N0cm5jYXNlLmM6IERlZmluZSBfX3N0cm5jYXNlY21wIHdpdGggc3RybmNhc2VjbXAgYXMKCXdlYWsgYWxpYXMuCgkqIHN0cmluZy9zdHJpbmcuaDogRGVjbGFyZSBfX3N0cm5jYXNlY21wLgoKCSogbnNzL25zc3dpdGNoLmMgKG5zc19wYXJzZV9maWxlKTogQ2FsbCBfX2dldGxpbmUsIG5vdCBnZXRsaW5lLgoJKHNlcnZpY2VfYWxpYXMpOiBWYXJpYWJsZSByZW1vdmVkLgoJKG5zc19wYXJzZV9zZXJ2aWNlX2xpc3QpOiBOZXcgZnVuY3Rpb24sIGJyb2tlbiBvdXQgb2YgbnNzX2dldGxpbmUuCglSZW1vdmUgYWxpYXMgY29udmVyc2lvbjsgd2Ugd2lsbCBqdXN0IHVzZSBzeW1saW5rcy4KCShfX25zc19kYXRhYmFzZV9sb29rdXApOiBUYWtlIG5ldyBzdHJpbmcgYXJnIERFRkNPTkZJRy4KCUlmIG5vIGVudHJ5IGV4aXN0cywgbWFrZSBvbmUgd2l0aCBzZXJ2aWNlIGxpc3QgcGFyc2VkIGZyb20gdGhhdC4KCSogbnNzL25zc3dpdGNoLmg6IFVwZGF0ZSBwcm90b2NvbCBmb3IgX19uc3NfZGF0YWJhc2VfbG9va3VwLgoJKiBuc3MvWFhYLWxvb2t1cC5jIChERUZBVUxUX0NPTkZJRyk6IE5ldyBtYWNybywgc2V0IHRvIDAgaWYgdW5kZWZpbmVkLgoJKERCX0xPT0tVUF9GQ1QpOiBQYXNzIGl0IHRvIF9uc3NfZGF0YWJhc2VfbG9va3VwLgoKCSogZ3JwL2luaXRncm91cHMuYzogUmV3cml0dGVuIHVzaW5nIGdldGdyZW50LiAgSGFuZGxlIHVubGltaXRlZCBncm91cAoJbGlzdCBzaXplLgoKCSogc3VucnBjL3hkci5jICh4ZHJfaW50KTogI2lmIDAgb3V0IHVucmVzb2x2ZWQgcmVmZXJlbmNlcyBpbiBkZWFkIGNvZGUuCgpXZWQgSnVuIDI2IDAxOjU2OjUwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZS5jIChsb25nX29wdGlvbnMpOiBTaG9ydCBmb3JtIG9mCgktLXZlcnNpb24gb3B0aW9uIGlzIGAtVicuCgkobWFpbik6IFJlY29nbml6ZSBgLVYnIGFzIG9wdGlvbiwgbm90IGAtdicuCglDYWxsIGB1c2FnZScgaW5zdGVhZCBvZiBwcmludGluZyBlcnJvciBtZXNzYWdlIGZvciBpbGxlZ2FsCglvcHRpb24uCgkodXNhZ2UpOiBEb2N1bWVudCBgLVYnLgoKVHVlIEp1biAyNSAxNzoyMjo1NSAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvZ2V0Y3dkLmMKCShfaHVyZF9jYW5vbmljYWxpemVfZGlyZWN0b3J5X25hbWVfaW50ZXJuYWwpOiBJbml0aWFsaXplIFBBUkVOVCB0bwoJVEhJU0RJUiwgYW5kIGRvbid0IGV2ZXIgZGVhbGxvY2F0ZSBQQVJFTlQgdW5sZXNzIGl0J3MgIT0gVEhJU0RJUi4KClR1ZSBKdW4gMjUgMTA6NTg6MjMgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGluZXQvZ2V0cnBjZW50LmM6IEZpeCBtYWNyb3MuCgkqIGluZXQvZ2V0cnBjZW50X3IuYzogRml4IG1hY3Jvcy4KCgkqIGVsZi9kbHN5bS5jIChkbHN5bSk6IFNlYXJjaCB0aGUgZ2xvYmFsIHNjb3BlIGlmIEhBTkRMRSBpcyBudWxsLgoKCSogZWxmL2RsLWxvYWQuYyAoX2RsX21hcF9vYmplY3RfZnJvbV9mZCk6IEluaXRpYWxpemUgTC4KClR1ZSBKdW4gMjUgMDk6NTU6NDcgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AQVpTdGFyTmV0LmNvbT4KCgkqIGNhdGdldHMvZ2VuY2F0LmMgKHdyaXRlX291dCk6IFVzZSAlWnUgdG8gcHJpbnQgdmFyaWFibGVzIG9mIHR5cGUKCXNpemVfdC4KCSogcmVzb2x2L3Jlc19kZWJ1Zy5jIChfX3BfcnIpOiBQcmludCBzaXplX3QgdmFyaWFibGUgYXMgJWx1IGFuZAoJY2FzdCBpdCB0byAodW5zaWduZWQgbG9uZykgdG8gbWFrZSBpdCB3b3JrIGJvdGggb24gMzIgYW5kIDY0CgliaXQgYXJjaGl0ZWN0dXJlcy4KClNhdCBKdW4gMjIgMTM6MDU6MjUgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBsb2NhbGUvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgYHByb2dyYW1zLycgcHJlZml4IHRvIGFsbAoJZmlsZXMgaW4gdGhhdCBkaXJlY3RvcnkuCgoJKiBNYWtlcnVsZXMgKGRpc3RpbmZvLXZhcnMpOiBBc3NpZ24gc3ViZGlyIGRpcmVjdGx5IHNvIHRoYXQgYGlmZGVmCglzdWJkaXInIHdvcmtzLgoKCSogTWFrZVRBR1MgKHNvdXJjZXMsIGhlYWRlcnMpOiBNYWtlIHRoZW0gc2ltcGx5IGV4cGFuZGVkIHZhcmlhYmxlcwoJc28gdGhhdCBhbGwtZGlzdCBpcyBleHBhbmRlZCBiZWZvcmUgaXQgaXMgY2hhbmdlZC4KClR1ZSBKdW4gMjUgMDI6NTk6MTEgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIE1ha2UtZGlzdCAoZGlzdCk6IERvbid0IGRlcGVuZCBvbiBjcnlwdCB0YXIgZmlsZS4gIFJlbW92ZSB0aGF0IHJ1bGUuCgkqIE1ha2VmaWxlIChzdWJkaXJzKTogUmVtb3ZlIGNyeXB0LgoJKiBjcnlwdDogRGlyZWN0b3J5IHJlbW92ZWQuICBJdCB3aWxsIGJlIG1hZGUgYW4gaW5kZXBlbmRlbnQgbGlicmFyeQoJZGlzdHJpYnV0aW9uLgoKCSogTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgcnBtL3tNYWtlZmlsZSx0ZXBsYXRlLHJwbXJjfS4KCgkqIGluZXQvZ2V0cnBjZW50X3IuYyAoREFUQUJBU0VfTkFNRSk6IE5ldyBtYWNyby4KCgkqIGluZXQvZ2V0cnBjYnludW1iZXIuYyAoQlVGTEVOKTogTmV3IG1hY3JvLgoKCSogY29uZmlndXJlLmluICgtLW5vLXdob2xlLWFyY2hpdmUgY2hlY2spOiBSZW1vdmUgYmFja3NsYXNoZXMgaW4gY21kLgoKCSogTWFrZWZpbGUgKGhlYWRlcnMpOiBBZGQgbGliYy1sb2NrLmguCgkqIHN5c2RlcHMvc3R1Yi9saWJjLWxvY2suaDogTmV3IGZpbGUuCgoJKiBpbmV0L2dldHJwY2J5bnVtYmVyLmM6IFJlbW92ZSBfciB0eXBvLgoKCSogZWxmL2RsLWxvYWQuYyAoX2RsX21hcF9vYmplY3QpOiBGaXggdHlwbyBpbiBsYXN0IGNoYW5nZS4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYyAocGFyc2VfbGlzdCk6IFJlc2V0IEVMVCBmb3IgZWxlbWVudHMKCWFmdGVyIHRoZSBmaXJzdCEKCgkqIG5zcy9uc3N3aXRjaC5jIChfX25zc19kYXRhYmFzZV9sb29rdXApOiBJZiBuc3N3aXRjaC5jb25mIGlzIG1pc3NpbmcKCW9yIGRvZXNuJ3QgbWVudGlvbiBEQVRBQkFTRSwgdXNlIGFuIGludGVybmFsIGRlZmF1bHQgZXF1aXZhbGVudCB0bwoJIkRBVEFCQVNFOiBjb21wYXQgW05PVEZPVU5EPXJldHVybl0gZG5zIFtOT1RGT1VORD1yZXR1cm5dIGZpbGVzIi4KCShuc3NfbG9va3VwX2Z1bmN0aW9uKTogQ2FsbCBuc3NfbmV3X3NlcnZpY2UgYXMgbmVlZGVkLgoJKG5zc19wYXJzZV9maWxlKTogRG9uJ3QgYm90aGVyIGNhbGxpbmcgbnNzX25ld19zZXJ2aWNlIGhlcmUuCgoJKiBncnAvZmdldGdyZW50LmMgKExJTkVfUEFSU0VSKTogUGFzcyB6ZXJvIFNXQUxMT1cgYXJnIGZvciBmaWVsZHMuCgkqIHB3ZC9mZ2V0cHdlbnQuYzogTGlrZXdpc2UuCgoJKiBtYWxsb2MvbWFsbG9jLmg6IERlY2xhcmUgbWFsbG9jX29iamVjdF9hbGxvY2F0ZWRfc2l6ZSwgbWFsbG9jX3dhbGsuCgkqIG1hbGxvYy9NYWtlZmlsZSAoZGlzdC1yb3V0aW5lcyk6IEFkZCBtYWxsb2Mtc2l6ZSwgbWFsbG9jLXdhbGsuCgkqIG1hbGxvYy9tYWxsb2Mtc2l6ZS5jOiBOZXcgZmlsZS4KCSogbWFsbG9jL21hbGxvYy13YWxrLmM6IE5ldyBmaWxlLgoKCSogbWFsbG9jL21hbGxvYy1maW5kLmMgKG1hbGxvY19maW5kX29iamVjdF9hZGRyZXNzKTogUmV0dXJuIG51bGwgaWYKCVBUUiBpcyBvdXRzaWRlIHRoZSBoZWFwLgoKCSogZWxmL2RsLWxvYWQuYyAoX2RsX21hcF9vYmplY3QpOiBJZiB0aGUgcmVxdWVzdGVkIG5hbWUgbWF0Y2hlcyB0aGUKCXNvbmFtZSBvZiBhIGxvYWRlZCBvYmplY3QsIHVzZSB0aGF0IG9iamVjdC4KCk1vbiBKdW4gMjQgMTk6NTc6MDEgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIE1ha2VmaWxlIChzdWJkaXJzKTogQWRkIG5zcy4KCgkqIGluZXQvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGdldHJwY2VudCwgZ2V0cnBjYnluYW1lLAoJZ2V0cnBjYnludW1iZXIsIGdldHJwY2VudF9yLCBnZXRycGNieW5hbWVfciwgZ2V0cnBjYnludW1iZXJfci4KCSogaW5ldC9nZXRycGNieW51bWJlcl9yLmM6IE5ldyBmaWxlLgoJKiBpbmV0L2dldHJwY2J5bnVtYmVyLmM6IE5ldyBmaWxlLgoJKiBpbmV0L2dldHJwY2J5bmFtZS5jOiBOZXcgZmlsZS4KCSogaW5ldC9nZXRycGNieW5hbWVfci5jOiBOZXcgZmlsZS4KCSogaW5ldC9nZXRycGNlbnRfci5jOiBOZXcgZmlsZS4KCSogaW5ldC9nZXRycGNlbnQuYzogTmV3IGZpbGUuCgkqIG5zcy9ycGMtbG9va3VwLmM6IE5ldyBmaWxlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXJwYy5jOiBOZXcgZmlsZS4KCSogbnNzL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBycGMtbG9va3VwLgoJKGxpYm5zc19maWxlcy1yb3V0aW5lcyk6IEFkZCBmaWxlcy1ycGMuCgkqIHN1bnJwYy9NYWtlZmlsZSAocm91dGluZXMpOiBSZW1vdmUgZ2V0cnBjZW50LgoJKiBzdW5ycGMvZ2V0cnBjZW50LmM6IEZpbGUgcmVtb3ZlZC4KCgkqIG5zcy9nZXRYWGVudF9yLmMgKFJFRU5UUkFOVF9HRVROQU1FKTogQ2xlYXIgTk9fTU9SRSB3aGVuIE5JUCBpcwoJbm9uLW51bGwgb24gZW50cnkuCgoJKiBNYWtlY29uZmlnIChycGF0aC1saW5rKTogQWRkICQobnNzb2JqZGlyKS4KCShuc3NvYmpkaXIpOiBOZXcgdmFyaWFibGUuCgoJKiBNYWtlcnVsZXM6IE1vdmUgc2hhcmVkIGxpYnJhcnkgYnVpbGRpbmcgYmVmb3JlIG9iamVjdHMgcnVsZXMsIHNvCgl2ZXJzaW9ucyBhcmUga25vd24gYmVmb3JlIGV4dHJhLWxpYi5tayBnZXRzIGluY2x1ZGVkLgoJKiBleHRyYS1saWIubWsgKGxpYi1ub3JhbmxpYik6IERlcGVuZCBvbiB0aGUgc2hhcmVkIG9iamVjdCB0b28uCgoJKiBwd2QvZ2V0cHd1aWQuYzogUmV3cml0dGVuIHVzaW5nIG5zcy4KCSogcHdkL2dldHB3bmFtLmM6IExpa2V3aXNlLgoJKiBwd2QvZ2V0cHdlbnQuYzogTGlrZXdpc2UuCgkqIGdycC9nZXRncm5hbS5jOiBMaWtld2lzZS4KCSogZ3JwL2dldGdyZ2lkLmM6IExpa2V3aXNlLgoJKiBncnAvZ2V0Z3JlbnQuYzogTGlrZXdpc2UuCgkqIHB3ZC9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgZ2V0cHdlbnRfciwgZ2V0cHduYW1fciwgZ2V0cHd1aWRfci4KCSogcHdkL2dldHB3ZW50X3IuYzogTmV3IGZpbGUuCgkqIHB3ZC9nZXRwd25hbV9yLmM6IE5ldyBmaWxlLgoJKiBwd2QvZ2V0cHd1aWRfci5jOiBOZXcgZmlsZS4KCSogZ3JwL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBnZXRncmVudF9yLCBnZXRncmdpZF9yLCBnZXRncm5hbV9yLgoJKiBncnAvZ2V0Z3JuYW1fci5jOiBOZXcgZmlsZS4KCSogZ3JwL2dldGdyZ2lkX3IuYzogTmV3IGZpbGUuCgkqIGdycC9nZXRncmVudF9yLmM6IE5ldyBmaWxlLgoJKiBncnAvTWFrZWZpbGUgKHJvdXRpbmVzKTogUmVtb3ZlIGdycG9wZW4sIGdycHJlYWQuCgkqIHB3ZC9NYWtlZmlsZSAocm91dGluZXMpOiBSZW1vdmUgcHdkb3BlbiwgcHdkcmVhZC4KCSogZ3JwL2dycG9wZW4uYywgZ3JwL2dycHJlYWQuYywgcHdkL3B3ZG9wZW4uYywgcHdkL3B3ZHJlYWQuYzogUmVtb3ZlZC4KCgkqIHB3ZC9mZ2V0cHdlbnQuYzogUmV3cml0dGVuIHVzaW5nIGZpbGVzLXBhcnNlLmMuCgkqIGdycC9mZ2V0Z3JlbnQuYzogTGlrZXdpc2UuCgoJKiBuc3MvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGdycC1sb29rdXAgYW5kIHB3ZC1sb29rdXAuCgkqIG5zcy9wd2QtbG9va3VwLmMsIG5zcy9ncnAtbG9va3VwLmM6IE5ldyBmaWxlcy4KCSogbnNzL25zc19maWxlcy9maWxlcy1ncnAuYzogTmV3IGZpbGUuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcHdkLmM6IE5ldyBmaWxlLgoKCSogbnNzL01ha2VmaWxlIChzdWJkaXItZGlycyk6IE5ldyB2YXJpYWJsZTsgdXNlIGl0IGluIHZwYXRoLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jOiBOZXcgZmlsZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1YWFguYzogTmV3IGZpbGUuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtaG9zdHMuYywgbnNzL25zc19maWxlcy9maWxlcy1wcm90by5jLAoJbnNzL25zc19maWxlcy9maWxlcy1zZXJ2aWNlLmMsIG5zcy9uc3NfZmlsZXMvZmlsZXMtbmV0d29yay5jOgoJUmV3cml0dGVuIHVzaW5nIHRoZW0uCgoJKiBuc3MvTWFrZWZpbGUgKGxpYm5zc19maWxlcy1yb3V0aW5lcyk6IFJlbW92ZSBmaWxlcy1ob3N0LgoJQWRkIGZpbGVzLWhvc3RzLCBmaWxlcy1ncnAsIGZpbGVzLXB3ZC4KCgkqIG5zcy9uc3NfZG5zL2Rucy1uZXR3b3JrLmM6IERvbid0IGluY2x1ZGUgPHB0aHJlYWQuaD4uCgpNb24gSnVuIDI0IDIyOjM5OjEyIDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmggKEVMRl9NQUNISU5FX1JVTlRJTUVfVFJBTVBPTElORSk6CglBIC5wbHQgZW50cnkgbm93IGxvYWRzIHRoZSAucmVsYS5wbHQgb2Zmc2V0IGRpcmVjdGx5IHJhdGhlcgoJdGhhbiBtYWtpbmcgdXMgY2FsY3VsYXRlIGl0LgoKU3VuIEp1biAyMyAxNToyNDowNSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogdGltZS9NYWtlZmlsZSAoJChpbnN0YWxsZWQtbG9jYWx0aW1lLWZpbGUpIHJ1bGUpOiBEbwoJJChtYWtlLXRhcmdldC1kaXJlY3RvcnkpIGZpcnN0LgoKCSogcmVzb2x2Lmg6IEZpeCB3cmFwcGVyIGZvciByZXNvbHYvcmVzb2x2LmguCgoJKiBjb25maWd1cmUuaW4gKGxkIC0tbm8td2hvbGUtYXJjaGl2ZSBjaGVjayk6IFVzZSBBQ19UUllfQ09NTUFORC4KCUNvbXBpbGUgZHVtbXkgZmlsZSBhbmQgcGFzcyAtbm9zdGRsaWIgLW5vc3RhcnRmaWxlcyBzbyBhcyBub3QgdG8KCXJlcXVpcmUgaW5zdGFsbGVkIGxpYnJhcmllcy4KCgkqIHNobGliLXZlcnNpb25zICgqLSotKik6IFNldCBsaWJyZXNvbHY9MiwgbGlibnNzX2ZpbGVzPTEsCglsaWJuc3NfZG5zPTEuCgpTdW4gSnVuIDIzIDE5OjQyOjA1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcmVzb2x2L01ha2VmaWxlIChkaXN0cmlidXRlKTogUmVtb3ZlIHJlc19oY29uZi5oOyBhZGQgbWFwdjR2NmFkZHIuaAoJYW5kIG1hcHY0djZob3N0ZW50LmguCgkocm91dGluZXMpOiBNb3ZlIHJlcyogYW5kIGdldGhuYW1hZGRyIGludG8gbGlicmVzb2x2LXJvdXRpbmVzLgoJKGxpYnJlc29sdi1yb3V0aW5lcyk6IE5ldyB2YXJpYWJsZSwgcHV0IHRoZW0gdGhlcmUuCgkoZXh0cmEtbGlicyk6IE5ldyB2YXJpYWJsZSwgbGlzdCBsaWJyZXNvbHYuCgkoQ1BQRkxBR1MpOiBBZGQgLUQgZm9yIGdldCpieSogdG8gcmVzX2dldCpieSouCgoJKiByZXNvbHYvbmV0ZGIuaCAoX1BBVEhfTlNTV0lUQ0hfQ09ORik6IE5ldyBtYWNyby4KCgkqIGluZXQvaGVycm5vLmM6IE5ldyBmaWxlLgoKCSogcmVzb2x2L3Jlc19pbml0LmM6IFJlbW92ZSByZXNfaGNvbmYgY2FsbHMuCgoJKiBuc3MvTWFrZWZpbGUsIG5zcy9YWFgtbG9va3VwLmMsIG5zcy9maWxlLWxvb2t1cC5jLAoJbnNzL2dldFhYYnlZWS5jLCBuc3MvZ2V0WFhieVlZX3IuYywgbnNzL2dldFhYZW50LmMsCgluc3MvZ2V0WFhlbnRfci5jLCBuc3MvaG9zdC1sb29rdXAuYywgbnNzL25ldHdvcmstbG9va3VwLmMsCgluc3MvbnNzd2l0Y2guYywgbnNzL25zc3dpdGNoLmgsIG5zcy9wcm90by1sb29rdXAuYywKCW5zcy9zZXJ2aWNlLWxvb2t1cC5jOiBOZXcgZmlsZXMuICBJbXBsZW1lbnRhdGlvbiBvZiBuYW1lCglzZXJ2aWNlIHN3aXRjaCwgZm9sbG93aW5nIHRoZSBhcHByb2FjaCBpbiBTb2xhcmlzLgoJSW50ZXJmYWNlIHNwZWNpZmljYXRpb24gYW5kIGdlbmVyYWwgc3RydWN0dXJlIGluc3BpcmVkIGJ5IFBldGVyCglFcmlrc3NvbiA8cGVuQGx5c2F0b3IubGl1LnNlPi4KCSogbnNzL25zc19maWxlcy9maWxlcy1ob3N0LmMsIG5zcy9uc3NfZmlsZXMvZmlsZXMtbmV0d29yay5jLAoJbnNzL25zc19maWxlcy9maWxlcy1wcm90by5jLCBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXNlcnZpY2UuYzoKCUltcGxlbWVudGF0aW9uIG9mIGxpYm5zc19maWxlcy5zbyBtb2R1bGUgZm9yIGZpbGUgYmFzZWQgZGF0YWJhc2VzCglpbiBOU1Mgc2VydmljZS4KCSogbnNzL25zc19kbnMvZG5zLWhvc3QuYywgbnNzL25zc19kbnMvZG5zLW5ldHdvcmsuYzogSW1wbGVtZW50YXRpb24KCWlmIGxpYm5zc19kbnMuc28gbW9kdWxlIGZvciBETlMgbmFtZSBsb29rdXAgaW4gTlNTIHNlcnZpY2UuCgoJKiBpbmV0L2dldHByb3RvLmMsIGluZXQvZ2V0cHJ0ZW50LmMsIGluZXQvZ2V0cHJ0bmFtZS5jLAoJaW5ldC9nZXRzZXJ2ZW50LmMsIGluZXQvZ2V0c3J2YnlubS5jLCBpbmV0L2dldHNydmJ5cHQuYzoKCUNoYW5nZWQgdG8gc2VydmUgYXMgaW50ZXJmYWNlIHRvIE5TUy4KCSogaW5ldC9nZXRoc3RieWFkLmMsIGluZXQvZ2V0aHN0YnlhZF9yLmMsIGluZXQvZ2V0aHN0YnlubS5jLAoJaW5ldC9nZXRoc3RieW5tMi5jLCBpbmV0L2dldGhzdGJ5bm0yX3IuYywgaW5ldC9nZXRoc3RieW5tX3IuYywKCWluZXQvZ2V0aHN0ZW50LmMsIGluZXQvZ2V0aHN0ZW50X3IuYywgaW5ldC9nZXRuZXRieW5tLmMsCglpbmV0L2dldG5ldGJ5bm1fci5jLCBpbmV0L2dldG5ldGJ5cHQuYywgaW5ldC9nZXRuZXRieXB0X3IuYywKCWluZXQvZ2V0bmV0ZW50LmMsIGluZXQvZ2V0bmV0ZW50X3IuYywgaW5ldC9nZXRwcm90b19yLmMsCglpbmV0L2dldHBydGVudF9yLmMsIGluZXQvZ2V0cHJ0bmFtZV9yLmMsIGluZXQvZ2V0c2VydmVudF9yLmMsCglpbmV0L2dldHNydmJ5bm1fci5jLCBpbmV0L2dldHNydmJ5cHRfci5jOiBOZXcgZmlsZXMuICBJbXBsZW1lbnQKCWludGVyZmFjZXMgdG8gTlNTLCBpbmNsdWRpbmcgcmVlbnRyYW50IGZ1bmN0aW9ucy4KCgkqIHJlc29sdi9nZXRuZXRieWFkZHIuYywgcmVzb2x2L2dldG5ldGJ5bmFtZS5jLCByZXNvbHYvZ2V0bmV0ZW50LmMsCglyZXNvbHYvc2V0aG9zdGVudC5jOiBSZW1vdmVkOiAgT2Jzb2xldGVkIGJ5IE5TUy4KCgkqIHJlc29sdi9tYXB2NHY2YWRkci5oLCByZXNvbHYvbWFwdjR2Nmhvc3RlbnQuaDogRXh0cmFjdGVkIGZyb20KCWdldGhuYW1hZGRyLmMuICBUaGVzZSBwcml2YXRlIGZ1bmN0aW9ucyBhcmUgbm93IHVzZWQgaW4gbW9yZQoJdGhhbiBvbmUgZmlsZS4KCgkqIHJlc29sdi9pbmV0X3B0b24uYywgcmVzb2x2L2dldGhuYW1hZGRyLmM6IFVwZGF0ZWQgdG8gYmluZC00LjkuNC1UNUIuCgpTYXQgSnVuIDIyIDE2OjQ5OjQ3IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogcnBtL01ha2VmaWxlICgkKGNvbmZpZykpOiBNYWtlIHN1cmUgdGhlIHdvcmQgbGlzdCBpbiB0aGUgZm9yCglsb29wIGlzIHN5bnRhY3RpY2FsbHkgbm9uLWVtcHR5LgoKU2F0IEp1biAyMiAyMToyOTo1MiAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogVmVyc2lvbiAxLjkyIHRlc3QgcmVsZWFzZS4KClNhdCBKdW4gMjIgMjM6MzA6MDcgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3QgKGtzeXNsb2dfY3RsKTogUmVuYW1lCgl0byBrbG9nY3RsIHRvIG1hdGNoIHByb3RvdHlwZSBpbiBzeXMva2xvZy5oLgoKCSogc3lzZGVwcy9wb3NpeC9saWJjX2ZhdGFsLmM6IEFkZCBpbmNsdWRlIG9mIDxzdHJpbmcuaD4uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldGhvc3RpZC5jOiBEaXR0by4KCgkqIHN5c2RlcHMvcG9zaXgvZ2V0Y3dkLmMgKF9fY2Fub25pY2FsaXplX2RpcmVjdG9yeV9uYW1lX2ludGVybmFsKToKCVJlbW92ZS4gIENvZGUgaXMgbm93IHBhcnQgb2YgX19nZXRjd2QgYWdhaW4uICBUaGUgb2xkIGZ1bmN0aW9uCgluZXZlciByZWFsbHkgd29ya2VkIGZvciBhbnl0aGluZyBidXQgVEhJU0RJUj09Ii4iLgoKCSogc3lzZGVwcy9hbHBoYS9NYWtlZmlsZSAoQ0ZMQUdTLXJ0bGQuYyk6IEFkZCAtbWJ1aWxkLWNvbnN0YW50cwoJb25seSB3aGVuIGJ1aWxkaW5nIEVMRiB2ZXJzaW9uIG9mIGxpYnJhcnkuCgoJKiBsaWJpby9saWJpb1AuaCAoX0lPX3ZzY2FuZik6IEFkZCBwcm90b3R5cGUuCgoJKiBwb3NpeC91bmlzdGQuaCAoc3lzY2FsbCk6IENoYW5nZSBzeXNubyBhcmcgYW5kIHJldHVybiB2YWx1ZQoJdG8gaW50IGxvbmcuCgpTYXQgSnVuIDIyIDEwOjQ0OjA5IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiB2ZXJzaW9uLmggKFZFUlNJT04pOiBVcGRhdGVkIHRvIDEuOTIuCgoJKiBtaXNjL01ha2VmaWxlIChoZWFkZXJzKTogQWRkIGFyLmguCgkqIG1pc2MvYXIuaDogTmV3IGZpbGUuCgoJKiBjb25maWcubWFrZS5pbiAoQlVJTERfQ0MpOiBOZXcgdmFyaWFibGUuCgkqIGNvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIEJVSUxEX0NDIGlmICRob3N0ICE9ICRidWlsZC4KCgkqIHBvc2l4L2dsb2IuYzogSW5jbHVkZSA8YWxsb2NhLmg+IG9ubHkgW0hBVkVfQUxMT0NBX0hdLCBub3QgW3NwYXJjXS4KCgkqIE1ha2VydWxlcyBbISBvYmplY3RzXSAoc3ViZGlyX2xpYik6IERlcGVuZCBvbiB0aGUgc3RhbXAkbyBmaWxlcy4KCShzdGFtcCRvIGZpbGVzKTogTmV3IHRhcmdldHMsIGNyZWF0ZSB0aGVtIGVtcHR5LCBubyBkZXBzLgoKCSogcnBtL3RlbXBsYXRlIChTb3VyY2UpOiBOZXcgZmllbGQuCgkoJXByZXAsICVidWlsZCwgJWluc3RhbGwpOiBOZXcgc2VjdGlvbnMuCgkoJWZpbGVzKTogQWRkICVkb2MgRkFRIE5FV1MgTk9URVMgUkVBRE1FLgoJKiBycG0vcnBtcmMgKGJ1aWxkZGlyKTogUmVtb3ZlZC4KCkZyaSBKdW4gMjEgMDA6Mjc6NTEgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGVsZi9kbC1sb2FkLmMgKF9kbF9tYXBfb2JqZWN0X2Zyb21fZmQpOiBGaXggbWFwcGluZyBhbmQgbF9waGRyCglndWVzc2luZyB0byBub3QgYXNzdW1lIHBfdmFkZHIgb2YgZmlyc3QgbG9hZCBjbWQgaXMgemVyby4KCgkqIHN5c2RlcHMvc3BhcmMvZWxmL3N0YXJ0LlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3NwYXJjL2RsLW1hY2hpbmUuaDogTmV3IGZpbGUuCgoJKiBwb3NpeC9mbm1hdGNoLmMgKGZubWF0Y2gpOiBGaXggXCpbKj9dKyBjYXNlIHRvIGluY3JlbWVudCBuYW1lIHB0cgoJb25seSBmb3IgP3MsIG5vdCBmb3IgKnMuICBGaXggZnJvbSBDaGV0IFJhbWV5LgoKCUZpeGVzIHRoYW5rcyB0byBSYWphIFIgSGFyaW5hdGggPGhhcmluYXRoQGNzLnVtbi5lZHU+OgoJKiBzeXNkZXBzL3VuaXgvc3lzdi91dG1wYml0cy5oOiBEZWZpbmUgX0hBVkVfVVRfe1RZUEUsSUQsVFYsSE9TVH0uCglVc2UgX197QkVHSU4sRU5EfV9ERUNMUy4KCShfUEFUSF9XVE1QLCBfUEFUSF9VVE1QLCBfUEFUSF9MQVNUTE9HKTogTmV3IG1hY3Jvcy4KCSogbG9naW4vdXRtcC5oIChVVE1QX0ZJTEUsIFVUTVBfRklMRU5BTUUsIFdUTVBfRklMRSwgV1RNUF9GSUxFTkFNRSk6CglOZXcgbWFjcm9zLCBtb3ZlZCBoZXJlIGZyb20gc3lzZGVwcy9nbnUvdXRtcGJpdHMuaC4KCSogc3lzZGVwcy9nZW5lcmljL3V0bXBiaXRzLmggKF9IQVZFX1VUX0hPU1QpOiBEZWZpbmUgaXQuCgkqIHN5c2RlcHMvZ251L3V0bXBiaXRzLmggKF9IQVZFX1VUX0hPU1QpOiBMaWtld2lzZS4KCSogbG9naW4vbG9nb3V0LmM6IFVzZSB1dF9ob3N0IG9ubHkgI2lmIF9IQVZFX1VUX0hPU1QuCglVc2Ugc2l6ZW9mIGluc3RlYWQgb2YgVVRfKlNJWkUuCgkqIGxvZ2luL2xvZ3d0bXAuYzogTGlrZXdpc2UuCgoJKiBtaXNjL3RzZWFyY2guYyAodGRlbGV0ZSk6IERlZmluZSBhcyB3ZWFrIGFsaWFzIHRvIF9fdGRlbGV0ZS4KCgkqIHZlcnNpb24uYyAoYmFubmVyKTogQWRkIHRyYWlsaW5nIG5ld2xpbmUuCgoJKiBsb2dpbi91dG1wLmg6IERlY2xhcmUgbG9naW5fdHR5LgoKVGh1IEp1biAyMCAyMToxOTowNyAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN5c2RlcHMvYWxwaGEvZGwtbWFjaGluZS5oIChlbGZfYWxwaGFfZml4X3BsdCk6CglDaGFuZ2VkIHRvIGEgMTItYnl0ZSBQTFQgZW50cnkgdG8gcmVtb3ZlIGRlcGVuZGVuY3kgb24gJGdwLgoJVGFrZSBhIG5ldyBnb3RfYWRkciBwYXJhbWV0ZXIuCgkoZWxmX21hY2hpbmVfcmVsYSk6IFBhc3MgdGhlIG5ldyBwYXJhbWV0ZXIuCgkoRUxGX01BQ0hJTkVfUlVOVElNRV9UUkFNUE9MSU5FKTogRG8gYXJpdGhtZXRpYyBmb3IgMTItYnl0ZSBQTFQuCgkoUlRMRF9TVEFSVCk6IERvIG5vcm1hbCBsaW5rYWdlIHdpdGggcHJvZ3JhbSBlbnRyeS4KClRodSBKdW4gMjAgMTI6MTg6MjEgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2Jyay5jIChfaHVyZF9icmspOiBJbml0aWFsaXplIHRvIDAuCgoJKiBodXJkL2dldHVpZHMuYyAoZ2V0dWlkcyk6IE5ldyB3ZWFrIGxpbmsgdG8gX19nZXR1aWRzLgoKV2VkIEp1biAxOSAxMDoyMToyNCAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogaHVyZC9odXJkbG9va3VwLmMgKF9faHVyZF9maWxlX25hbWVfbG9va3VwX3JldHJ5LAoJX19odXJkX2ZpbGVfbmFtZV9sb29rdXAsIF9faHVyZF9maWxlX25hbWVfc3BsaXQpOiBBZGQgJiB1c2UgTE9PS1VQCglhcmd1bWVudC4KCVJlbmFtZSBuZXN0ZWQgZnVuY3Rpb24gbG9va3VwIHRvIGxvb2t1cF9vcC4KCShfX2ZpbGVfbmFtZV9sb29rdXAsIF9fZmlsZV9uYW1lX2xvb2t1cF91bmRlcik6CglQYXNzIDAgZm9yIGxvb2t1cCBhcmcgdG8gX19odXJkX2ZpbGVfbmFtZV9sb29rdXAuCgkoX19maWxlX25hbWVfc3BsaXQpOiBMaWtld2lzZSBmb3IgX19odXJkX2ZpbGVfbmFtZV9zcGxpdC4KCSogaHVyZC9wYXRoLWxvb2t1cC5jIChodXJkX2ZpbGVfbmFtZV9wYXRoX2xvb2t1cCk6IEFkZCBMT09LVVAgYXJndW1lbnQuCglSZW5hbWUgbmVzdGVkIGZ1bmN0aW9uIGxvb2t1cCB0byBzY2FuX2xvb2t1cC4KCShmaWxlX25hbWVfcGF0aF9sb29rdXApOiBQYXNzIDAgZm9yIGxvb2t1cCBhcmcgdG8KCWh1cmRfZmlsZV9uYW1lX3BhdGhfbG9va3VwLgoJKiBodXJkL2h1cmQvbG9va3VwLmggKF9faHVyZF9maWxlX25hbWVfbG9va3VwLCBodXJkX2ZpbGVfbmFtZV9sb29rdXAsCglfX2h1cmRfZmlsZV9uYW1lX2xvb2t1cF9yZXRyeSwgaHVyZF9maWxlX25hbWVfbG9va3VwX3JldHJ5OgoJX19odXJkX2ZpbGVfbmFtZV9zcGxpdCwgaHVyZF9maWxlX25hbWVfc3BsaXQsIGh1cmRfZmlsZV9uYW1lX2xvb2t1cCk6CglBZGQgTE9PS1VQIGFyZ3VtZW50LgoJKiBzeXNkZXBzL21hY2gvaHVyZC9hY2Nlc3MuYyAoX19hY2Nlc3MpOiBQYXNzIDAgbG9va3VwIGFyZyB0bwoJX19odXJkX2ZpbGVfbmFtZV9sb29rdXAuCgpNb24gSnVuIDE3IDE5OjA5OjQ5IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZS1kaXN0ICgrc3lzZGVwcyk6IE1vdmUgd2lsZGNhcmQgaW5zaWRlIGxvb3AgdG8gYXZvaWQgY29uc2luZwoJdXAgYSBodWdlIGxpc3QganVzdCB0byBkaXNjYXJkIG1vc3Qgb2YgaXQuCgoJKiBjb25maWd1cmUuaW4gKHN5c25hbWVzKTogQXZvaWQgZmdyZXAgYnkgdXNpbmcgdGhlIGNhc2Ugc2hlbGwKCWJ1aWx0aW4uCgoJKiBNYWtlY29uZmlnIChjb25maWcuc3RhdHVzKTogRml4IGRlcGVuZGVuY3kgb24gSW1wbGllcyBmaWxlcy4KCldlZCBKdW4gMTkgMDE6Mjc6NTcgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIG1hdGgvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgaWVlZS1tYXRoLmMuCgpXZWQgSnVuIDE5IDAzOjI0OjU4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL2NvZGVzZXRfbmFtZS5jOiBOZXcgZmlsZS4gIFByb3ZpZGUgZnVuY3Rpb24gZm9yIGluZm9ybWF0aW9uCglhYm91dCBjdXJyZW50bHkgdXNlZCBjaGFyYWN0ZXIgc2V0LgoJKiBsb2NhbGUvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGNvZGVzZXRfbmFtZS4KCSogbG9jYWxlL2xhbmdpbmZvLmggKF9OTF9DVFlQRV9DT0RFU0VUX05BTUUpOiBBZGQgbmV3IGNvbnN0YW50LgoJKiBsb2NhbGUvbG9jYWxlaW5mby5oOiBDaGFuZ2UgbWFnaWMgbnVtYmVyIGJlY2F1c2Ugb2YgaW5jb21wYXRpYmxlCgljaGFuZ2UuCgkqIGxvY2FsZS9DLWN0eXBlLmM6IEFkZCBpbml0aWFsaXplciBmb3IgbmV3IGZpZWxkIGBjb2Rlc2V0X25hbWUnLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtY3R5cGUuYzogSW1wbGVtZW50IGhhbmRsaW5nIG9mIGBjb2Rlc2V0X25hbWUnLgoKCSogbG9jYWxlL3Byb2dyYW1zL2xvY2ZpbGUuYzogRG9uJ3QgZGVwZW5kIGluIHByZS0yLjAgTGludXggc3BlY2lmaWMKCW5hbWUgYE1BWF9JT1ZFQycuICBJbnN0ZWFkIHVzZSBzdGFuZGFyZCBuYW1lIGBVSU9fTUFYSU9WJy4KCgkqIGxvY2FsZS9zZXRsb2NhbGUuYyAoc2V0bG9jYWxlKTogSW5pdGlhbGl6ZSBsb2NhbCB2YXJpYWJsZXMgdG8KCXByZXZlbnQgd2FybmluZ3MuCgpUaHUgSnVuIDEzIDE3OjI1OjExIDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL2dlbmVyaWMvbWVtY21wLmM6IEFkZCBwcm90b3R5cGUgZGVjbHMgZm9yIGludGVybmFsIGZucy4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGUuYzogSW5jbHVkZSBzdHJpbmcuaC4KCgkqIHN1bnJwYy94ZHJfc3RkaW8uYyAoeGRyc3RkaW9fZ2V0bG9uZyksIHN1bnJwYy94ZHJfcmVjLmMKCSh4ZHJyZWNfZ2V0bG9uZyksIHN1bnJwYy94ZHJfbWVtLmMgKHhkcm1lbV9nZXRsb25nKTogTWFrZSBzdXJlCglhcHByb3ByaWF0ZSBzaWduLWV4dGVuc2lvbiBpcyBwZXJmb3JtZWQgb24gbWFjaGluZXMgd2l0aAoJc2l6ZW9mKGxvbmcpID4gNC4KCgkqIHN1bnJwYy94ZHIuYyAoeGRyX2ludCwgeGRyX3VfaW50KTogSWYgc2l6ZW9mKGxvbmcpPT04IGFuZAoJc2l6ZW9mKGludCk8c2l6ZW9mKGxvbmcpLCB3ZSBuZWVkIHRvIGdvIHRocm91Z2ggYSB0ZW1wb3JhcnkKCXZhcmlhYmxlLgoKCSogbG9jYWxlL3Byb2dyYW1zL2xkLW51bWVyaWMuYzogSW5jbHVkZSA8YWxsb2NhLmg+CgoJKiBsaWJpby9zdGRpby5oIChfX2xpYmNfZmF0YWwpOiBBZGQgcHJvdG90eXBlLgoKCSogbGliaW8vY2xlYW51cC5jOiBVc2UgX19QKCkgdG8gZGVjbGFyZSBwcm90b3R5cGUgd2hlbiBfX1NURENfXyBpcwoJaW4gZWZlY3QuCgoJKiBsaWJpby9pb3BvcGVuLmMgKHJlYWRfb3Jfd3JpdGUsIHBhcmVudF9lbmQsIGNoaWxkX2VuZCk6IERlY2xhcmUKCXZvbGF0aWxlIHRvIGF2b2lkICJtaWdodCBnZXQgY2xvYmJlcmVkIGJ5IGxvbmdqbXAiIHdhcm5pbmcuCgoJKiBmZWF0dXJlcy5oIChfX0tFUk5FTF9TVFJJQ1RfTkFNRVMpOiBEZWZpbmUgX19LRVJORUxfU1RSSUNUX05BTUVTCgl1bmxlc3MgX0xPT1NFX0tFUk5FTF9OQU1FUyBpcyBpbiBlZmZlY3QgKHdoaWNoLCB3aXRoIGhpZ2gKCXByb2JhYmlsaXR5IGlzIGEgc3VyZSBsb3NlcikuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dudS90eXBlcy5oIChfX0tFUk5FTF9TVFJJQ1RfTkFNRVMpOiBSZW1vdmUuCgoJKiBzeXNkZXBzL3VuaXgvYnNkL29zZi9hbHBoYS9zdGFydC5TIChlcnJubyk6IFJlbW92ZWQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N0YXJ0LlM6IERpdHRvLgoKCSogbWlzYy9wYXRocy5oIChfUEFUSF9NQU4pOiBDaGFuZ2UgZnJvbSAvdXNyL3NoYXJlL21hbiB0byAvdXNyL21hbgoJdG8gYmUgTGludXggRlNTVE5EIGNvbXBsaWFudC4KCk1vbiBKdW4gMTAgMTc6NTA6MzEgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3BpcGUuUzogVXNlIFBTRVVETy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5c2RlcC5TLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvYnJrLlMsCglzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pZWVlX2dldF9mcF9jb250cm9sLlMsCglzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pZWVlX3NldF9mcF9jb250cm9sLlMsCglzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9sbHNlZWsuUywKCXN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3NpZ3N1c3BlbmQuUywKCXN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5c2NhbGwuUzogUmVuYW1lIHN5c2NhbGxfZXJyb3IgdG8KCV9fc3lzY2FsbF9lcnJvciB0byBhdm9pZCBpbnRydWRpbmcgYXBwbGljYXRpb24gbmFtZSBzcGFjZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5c2RlcC5oOiBSZW5hbWUgX19OUl9nZXQ/aWQKCXRvIFNZU19nZXQ/aWQgc28gdGhhdCBzeXNjYWxsIHN0dWJzIGluIHN5c2RlcHMvdW5peCBkZWZpbmUKCXRoZXNlIHN5c2NhbGxzIGluIHRlcm1zIG9mIGdldHhwaWQvZ2V0eHVpZC9nZXR4Z2lkLgoKCSogc3lzZGVwcy91bml4L19leGl0LlMsIHN5c2RlcHMvdW5peC9nZXRlZ2lkLlMsCglzeXNkZXBzL3VuaXgvZ2V0ZXVpZC5TLCBzeXNkZXBzL3VuaXgvZ2V0cHBpZC5TLAoJc3lzZGVwcy91bml4L2V4ZWN2ZS5TLCBzeXNkZXBzL3VuaXgvZm9yay5TLAoJc3lzZGVwcy91bml4L3N5c2NhbGwuUzogVGVybWluYXRlIHN5c2NhbGwgd2l0aCBQU0VVRE9fRU5ELgoKCSogc3lzZGVwcy91bml4L21ha2Utc3lzY2FsbHMuc2gsIHN5c2RlcHMvdW5peC9zeXNkZXAuaAoJKFBTRVVET19FTkQpOiBSZW5hbWUgRU5EKCkgdG8gUFNFVURPX0VORCgpLgoKCSogc3lzZGVwcy91bml4L2FscGhhL3N5c2RlcC5oOiBNb3ZlIGVycm9yLWhhbmRsaW5nIGNvZGUgaW4gUFNFVURPCgl0byBQU0VVRE9fRU5EIHRvIGltcHJvdmUgYnJhbmNoLXByZWRpY3Rpb24uICBJbmNsdWRlIC5mcmFtZQoJZGlyZWN0aXZlIHRvIG1ha2Ugc3lzY2FsbHMgZGVidWdhYmJsZS4KCShQU0VVRE9fRU5EKTogTmV3IG1hY3JvLgoKCSogc3lzZGVwcy91bml4L2FscGhhL3N5c2RlcC5oLCBzeXNkZXBzL2FscGhhL2JiX2luaXRfZnVuYy5TLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvYnJrLlM6IFVzZSBsZGlxIGluc3RlYWQgb2YgbGRpIHNpbmNlCglsYXR0ZXIgaXMgaWxsZWdhbCB1bmRlciBERUMgVW5peC4KCgkqIHN5c2RlcHMvdW5peC9hbHBoYS9zeXNkZXAuUzogUmVuYW1lZCBmcm9tCglzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zeXNkZXAuUy4gIFRoaXMgZmlsZSB3b3JrcyBmb3IgT1NGLzEKCWFzIHdlbGwuCgkqIHN5c2RlcHMvdW5peC9ic2Qvb3NmL2FscGhhL3N5c2RlcC5TOiBSZW1vdmUgKG5vdGUgdGhhdCB0aGUKCUVXT1VMREJMT0NLIC0+IEVBR0FJTiBtYXBwaW5nIHdhcyB1bm5lY2Vzc2FyeSBzaW5jZQoJRVdPVUxEQkxPQ0s9PUVBR0FJTiB1bmRlciBERUMgVW5peCBhbmQgTGludXgvQWxwaGEpLgoKCSogc3lzZGVwcy9hbHBoYS9kaXZyZW0uaDogVXNlIHJldGFkZHIgaW5zdGVhZCBvZiByYSBhcyB0aGUgcmV0dXJuCglhZGRyZXNzIHJlZ2lzdGVyIGluIHRoZSAuZnJhbWUgZGlyZWN0aXZlLgoKCSogc3lzZGVwcy9hbHBoYS9jb3B5c2lnbi5jOiBSZW1vdmUuCgoJKiBzdW5ycGMvcnBjL3R5cGVzLmg6IEluY2x1ZGUgPHN5cy9wYXJhbS5oPiBhbmQgPG5ldGluZXQvaW4uaD4gdG8KCWF2b2lkIFJQQyBkZWZpbml0aW9ucyBvZiBJTkFERFJfTE9PUEJBQ0sgYW5kL29yIE1BWEhPU1ROQU1FTEVOLgoKCSogZXJybm8uaDogTW92ZSBfX0VORF9ERUNMUyB0byBjb3JyZWN0IHBsYWNlIHRvIG1ha2UgZmlsZQoJY29tcGlsYWJsZSB1bmRlciBjKysuCgoJKiBkaXJlbnQvZGlyZW50Lmg6IERvY3VtZW50IF9ESVJFTlRfSEFWRV9EX09GRiBtYWNyby4gIERlZmluZQoJZF9pbm8gb25seSBpZiA8ZGlyZW50cnkuaD4gaGFzbid0IGRlZmluZWQgZF9maWxlbm8uCgoJKiBjb25maWd1cmUuaW4gKEhBVkVfQVNNX1dFQUtFWFRfRElSRUNUSVZFKTogUmV2ZXJzZSBvcmRlciBvZgoJYXJndW1lbnRzIHRvIHdlYWtleHQgdG8gbWFrZSAud2Vha2V4dCBkZXRlY3Rpb24gd29yayBvbiBFQ09GRiBzeXN0ZW1zLgoKCSogRkFROiBBZGQgTGludXgvQWxwaGEgdG8gbGlzdCBvZiBzdXBwb3J0ZWQgcGxhdGZvcm1zLiAgTWVudGlvbgoJdGhhdCBfdmFsaWR1c2VyKCkgaGFzIGJlZW4gcmVwbGFjZWQgYnkgX19pdmFsaWR1c2VyKCkuCgpUaHUgSnVuICA2IDIxOjM5OjM4IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvYnNkL3N1bi9zdW5vczQvdGNzZXRhdHRyLmMgKHRjc2V0YXR0cik6IERlY2xhcmUgY21kCglhcyB1bnNpZ25lZCBsb25nLCBub3QgYXMgaW50ICh0byBhdm9pZCBpbmNvcnJlY3QgaW50LT5sb25nCglwcm9tb3Rpb24pLgoKDAoKU2VlIENoYW5nZUxvZy41IGZvciBlYXJsaWVyIGNoYW5nZXMuCg==