MjAwNy0wNC0wOSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCVJhZGFyIDUwOTc4MzkKICAgICAgICBQUiB0YXJnZXQvMjc4NjkKICAgICAgICAqIGNvbmZpZy9pMzg2L3NzZS5tZAogICAgICAgIChzc2Vfdm1hZGR2NHNmMywgc3NlX3ZtbXVsdjRzZjMpOiBSZW1vdmUgJyUnIG1vZGlmaWVyLgogICAgICAgIChzc2Vfdm1zbWF4djRzZjNfZmluaXRlLCBzc2Vfdm1zbWludjRzZjNfZmluaXRlKTogUmVtb3ZlLgogICAgICAgIChzc2UyX3ZtYWRkdjJkZjMsIHNzZTJfdm1tdWx2MmRmMyk6IFJlbW92ZSAnJScgbW9kaWZpZXIuCiAgICAgICAgKHNzZTJfdm1zbWF4djJkZjNfZmluaXRlLCBzc2UyX3Ztc21pbnYyZGYzX2Zpbml0ZSk6IFJlbW92ZS4KCjIwMDctMDMtMjggIE1pa2UgU3R1bXAgIDxtcnNAYXBwbGUuY29tPgoKCVJhZGFyIDUwNzczNTgKCSogY29uZmlnL2RhcndpbjkuaCAoQVNNX09VVFBVVF9BTElHTkVEX0NPTU1PTik6IEFkZC4KCSogY29uZmlnL2Rhcndpbi5oIChNQVhfT0ZJTEVfQUxJR05NRU5UKTogRml4LgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChBU01fT1VUUFVUX0FMSUdORURfQ09NTU9OKTogUmVtb3ZlZCAjdW5kZWYuCgoyMDA2LTEyLTEzICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCglSYWRhciA0Njk3MzI1CgkqIGRvYy9pbnZva2UudGV4aSAoRGFyd2luIE9wdGlvbnMpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IKCS1tbWFjb3N4LXZlcnNpb24tbWluLgoJKiBjb25maWcuZ2NjICgqLSotZGFyd2luKik6IFNldCBleHRyYV9nY2Nfb2Jqcy4KCSogY29uZmlnL2Rhcndpbi1kcml2ZXIuYzogTmV3IGZpbGUuCgkqIGNvbmZpZy9kYXJ3aW4uaCAoR0NDX0RSSVZFUl9IT1NUX0lOSVRJQUxJWkFUSU9OKTogTmV3LgoJKiBjb25maWcvdC1kYXJ3aW4gKGRhcndpbi1kcml2ZXIubyk6IE5ldyBydWxlLgoKMjAwNi0xMi0xMiAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBtaXBzLXRkdW1wLmM6IFJlcGxhY2UgQ1JPU1NfQ09NUElMRSB3aXRoCglDUk9TU19ESVJFQ1RPUllfU1RSVUNUVVJFLgoJKiBtaXBzLXRmaWxlLmM6IExpa2V3aXNlLgoJKiBnY2MuYzogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZS5hYzogTGlrZXdpc2UuCgkqIGNwcGRlZmF1bHQuYzogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBMaWtld2lzZS4KCSogY29uZmlnL2FscGhhL29zZi5oOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvY3lnd2luLmg6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9iZW9zLWVsZi5oOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvbnRvLmg6IExpa2V3aXNlLgoJKiBjb25maWcvZnIzMC9mcjMwLmg6IExpa2V3aXNlLgoJKiBjb25maWcvc3ZyNC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9haXguaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvc3lzdjQuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9wYS9wYTY0LWhwdXguaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9wYS9wYS1ocHV4MTAuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9wYS9wYS1ocHV4MTEuaDogTGlrZXdpc2UuCgkqIGNvbGxlY3QyLmM6IExpa2V3aXNlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA3LTAzLTEzICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aSAoU3BlYyBGaWxlcyk6IFVwZGF0ZSBmb3IgJyV7LCcgc3BlYy4KCjIwMDctMDMtMTAgIFRvYmlhcyBTY2hs/HRlciAgPHRvYmlAZ2NjLmdudS5vcmc+CgoJKiBjb25maWcvaTM4Ni9kYXJ3aW4uaCAoREFSV0lOX01JTlZFUlNJT05fU1BFQyk6IEFkZCBtaXNzaW5nCglxdW90YXRpb24gbWFyay4KCjIwMDctMDMtMDkgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDUwNDA3NTgKCSogZ2NjLmM6IERvY3VtZW50ICV7LCBpbiBiaWcgY29tbWVudCBhdCB0b3AuCgkoaW5wdXRfc3VmZml4X21hdGNoZXMpOiBSZW1vdmUgc3BlY2lhbCBoYW5kbGluZyBmb3IgLnMgYW5kCgkuUy4KCShpbnB1dF9zcGVjX21hdGNoZXMpOiBOZXcuCgkoaGFuZGxlX2JyYWNlcyk6IEhhbmRsZSAleywuCgkodmFsaWRhdGVfc3dpdGNoZXMpOiAnLCcgaW5kaWNhdGVzIGEgdmFsdWUgd2hpY2ggaXMgbm90IGEgc3dpdGNoLgoJKiBjb25maWcvYWxwaGEvb3NmLmggKEFTTV9GSU5BTF9TUEVDKTogVXNlICV7LCByYXRoZXIgdGhhbiAley4KCXRvIGRldGVjdCBhc3NlbWJsZXIgaW5wdXQuCgkqIGNvbmZpZy9pMzg2L3NvbDIuaCAoQ1BQX1NQRUMpOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9zeXN2NC5oIChBU01fU1BFQyk6IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL3Z4d29ya3MuaCAoQVNNX1NQRUMpOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9seW54LmggKEFTTV9TUEVDKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvbGludXg2NC5oIChBU01fU1BFQ19DT01NT04pOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvZGFyd2luLmggKERBUldJTl9NSU5WRVJTSU9OX1NQRUMpOiBPYmplY3RpdmUtQyBwbHVzCgktbTY0IGNhdXNlcyBkZXBsb3ltZW50IHRhcmdldCB0byBkZWZhdWx0IHRvIDEwLjUuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKERBUldJTl9NSU5WRVJTSU9OX1NQRUMpOiBMaWtld2lzZS4KCjIwMDctMDItMjAgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDUwMDU3NDMsIDQyMjY1NDYKCSogY29uZmlnL2Rhcndpbi5oIChMSU5LX1NQRUMpOiBEZWZhdWx0IC1tbWFjb3N4LXZlcnNpb24tbWluIG9ubHkKCWlmIHVzZXIgZGlkbid0IHBhc3MgaXQuCgkqIGNvbmZpZy9pMzg2L2Rhcndpbi5oIChDQzFfU1BFQyk6IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChDQzFfU1BFQyk6IExpa2V3aXNlLgoJKERBUldJTl9NSU5WRVJTSU9OX1NQRUMpOiBEb24ndCBkZXBlbmQgb24gdXNlcidzIHNldHRpbmcgb2YKCS1tbWFjb3N4LXZlcnNpb24tbWluLgoKCSogY29uZmlnL2Rhcndpbi5oIChMSU5LX1NQRUMpOiBBbHdheXMgcGFzcyAtbWFjb3N4X3ZlcnNpb25fbWluCgl0byBsaW5rZXIuCgkoREFSV0lOX0VYVFJBX1NQRUNTKTogQWRkICUoZGFyd2luX21pbnZlcnNpb24pLgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChTVUJUQVJHRVRfT1ZFUlJJREVfT1BUSU9OUyk6IEp1c3QgY2FsbAoJZGFyd2luX3JzNjAwMF9vdmVycmlkZV9vcHRpb25zLgoJKENfQ09NTU9OX09WRVJSSURFX09QVElPTlMpOiBFeHBlY3QKCWRhcndpbl9tYWNvc3hfdmVyc2lvbl9taW4gdG8gYmUgbm9uLU5VTEwgYWx3YXlzLgoJKFRBUkdFVF9DOTlfRlVOQ1RJT05TKTogTGlrZXdpc2UuCgkoQ0MxX1NQRUMpOiBBbHdheXMgcGFzcyAtbW1hY29zeC12ZXJzaW9uLW1pbiB0byBjYzEqLgoJKERBUldJTl9NSU5WRVJTSU9OX1NQRUMpOiBOZXcuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKGRhcndpbl9yczYwMDBfb3ZlcnJpZGVfb3B0aW9ucyk6IE5ldy4KCSogY29uZmlnL2kzODYvZGFyd2luLmggKENDMV9TUEVDKTogQWx3YXlzIHBhc3MgLW1tYWNvc3gtdmVyc2lvbi1taW4KCXRvIGNjMSouCgkoREFSV0lOX01JTlZFUlNJT05fU1BFQyk6IE5ldy4KCSogY29uZmlnL2Rhcndpbi5vcHQgKG1tYWNvc3gtdmVyc2lvbi1taW4pOiBJbml0aWFsaXplIHRvIG5vbi1OVUxMCgl2YWx1ZS4KCSogY29uZmlnL2Rhcndpbi1jLmMgKGRhcndpbl9jcHBfYnVpbHRpbnMpOiBFeHBlY3QKCWRhcndpbl9tYWNvc3hfdmVyc2lvbl9taW4gdG8gYmUgbm9uLU5VTEwgYWx3YXlzLgoKMjAwNy0wMS0wNCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJUmFkYXIgNDg3MTkxNQoJKiB0YXJnZXQuaCAoc3RydWN0IGdjY190YXJnZXQpOiBOZXcgZmllbGQgbGlicmFyeV9ydHRpX2NvbWRhdC4KCSogdGFyZ2V0LWRlZi5oIChUQVJHRVRfQ1hYX0xJQlJBUllfUlRUSV9DT01EQVQpOiBOZXcuCgkoVEFSR0VUX0NYWCk6IEFkZCBUQVJHRVRfQ1hYX0xJQlJBUllfUlRUSV9DT01EQVQuCgkqIGRvYy90bS50ZXhpIChDKysgQUJJKTogRG9jdW1lbnQgVEFSR0VUX0NYWF9MSUJSQVJZX1JUVElfQ09NREFULgoJKiBjb25maWcvZGFyd2luLmggKFRBUkdFVF9DWFhfTElCUkFSWV9SVFRJX0NPTURBVCk6IERlZmluZS4KCjIwMDYtMTItMTggIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgogICAgICAgICAgICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AYXBwbGUuY29tPgoKCVJhZGFyIDQ4MjAzODUKICAgICAgICBQUiB0YXJnZXQvMjkzMDIKICAgICAgICAqIHJlYWwuYyAocmVhbF9tYXh2YWwpOiBDb3JyZWN0bHkgaGFuZGxlIElCTSBleHRlbmRlZCBkb3VibGUgZm9ybWF0LgoKMjAwNi0xMi0yMiAgTWlrZSBTdHVtcCAgPG1yc0BhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL3QtZGFyd2luIChEQVJXSU5fRVhUUkFfQ1JUX0JVSUxEX0NGTEFHUyk6IEFkZAoJLW1tYWNvc3gtdmVyc2lvbi1taW49MTAuNC4KCShjcnQyLm8pOiBBZGQgJChEQVJXSU5fRVhUUkFfQ1JUX0JVSUxEX0NGTEFHUykuCgoyMDA2LTEyLTE4ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCglSYWRhciA0ODY5NTU0CgkqIGRvYy9pbnZva2UudGV4aSAoRGVidWdnaW5nIE9wdGlvbnMpOiBEb2N1bWVudCAtZzAuCgkqIGNvbmZpZy9kYXJ3aW4uaCAoTElOS19DT01NQU5EX1NQRUMpOiBSZXBsYWNlIC1nbm9uZSB3aXRoIC1nMC4KCjIwMDYtMTItMTMgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDQ2OTczMjUKCSogZG9jL2ludm9rZS50ZXhpIChEYXJ3aW4gT3B0aW9ucyk6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIGZvcgoJLW1tYWNvc3gtdmVyc2lvbi1taW4uCgkqIGNvbmZpZy5nY2MgKCotKi1kYXJ3aW4qKTogU2V0IGV4dHJhX2djY19vYmpzLgoJKiBjb25maWcvZGFyd2luLWRyaXZlci5jOiBOZXcgZmlsZS4KCSogY29uZmlnL2Rhcndpbi5oIChHQ0NfRFJJVkVSX0hPU1RfSU5JVElBTElaQVRJT04pOiBOZXcuCgkqIGNvbmZpZy90LWRhcndpbiAoZGFyd2luLWRyaXZlci5vKTogTmV3IHJ1bGUuCgoyMDA2LTEyLTEyICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIG1pcHMtdGR1bXAuYzogUmVwbGFjZSBDUk9TU19DT01QSUxFIHdpdGgKCUNST1NTX0RJUkVDVE9SWV9TVFJVQ1RVUkUuCgkqIG1pcHMtdGZpbGUuYzogTGlrZXdpc2UuCgkqIGdjYy5jOiBMaWtld2lzZS4KCSogY29uZmlndXJlLmFjOiBMaWtld2lzZS4KCSogY3BwZGVmYXVsdC5jOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IExpa2V3aXNlLgoJKiBjb25maWcvYWxwaGEvb3NmLmg6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9jeWd3aW4uaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2Jlb3MtZWxmLmg6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9udG8uaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9mcjMwL2ZyMzAuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9zdnI0Lmg6IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL2FpeC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9zeXN2NC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3BhL3BhNjQtaHB1eC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3BhL3BhLWhwdXgxMC5oOiBMaWtld2lzZS4KCSogY29uZmlnL3BhL3BhLWhwdXgxMS5oOiBMaWtld2lzZS4KCSogY29sbGVjdDIuYzogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDYtMTItMDggIE1pa2UgU3R1bXAgIDxtcnNAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC90LWRhcndpbiAoVEFSR0VUX0xJQkdDQzJfQ0ZMQUdTKTogQnVpbGQKCWxpYmdjYyB3aXRoIC1tbWFjb3N4LXZlcnNpb24tbWluPTEwLjQuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKFNVQlRBUkdFVF9PVkVSUklERV9PUFRJT05TKTogRGVmYXVsdCB0bwoJRzQgZm9yIDEwLjUrIHVubGVzcyBkb2luZyBrZXJuZWwgYnVpbGRzLgoKMjAwNS0wOS0xOSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuQGdjYy5nbnUub3JnPgoKCVJhZGFyIDQ4NDIwODYKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMjM5NDMKCSogY3NlLmMgKGZpbmRfYmVzdF9hZGRyKTogTmV2ZXIgcHJvcGFnYXRlIGFuIEVYUFJfTElTVCBydHguCgoyMDA2LTEyLTA0ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AYXBwbGUuY29tPgoKCVJhZGFyIDQ1MjEzNzAKCSogY29uZmlnL2Rhcndpbi5oIChEQVJXSU5fRVhUUkFfU1BFQ1MpOiBOZXcuCgkoU1RBUlRGSUxFX1NQRUMpOiBVc2UuCgkoREFSV0lOX0RZTElCMV9TUEVDKTogTmV3LgoJKERBUldJTl9DUlQxX1NQRUMpOiBOZXcuCgkqIGNvbmZpZy9pMzg2L2RhcndpbjY0LmggKFNVQlRBUkdFVF9FWFRSQV9TUEVDUyk6IFVzZQoJREFSV0lOX0VYVFJBX1NQRUNTLgoJKiBjb25maWcvaTM4Ni9kYXJ3aW4uaDogRGl0dG8uCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmg6IERpdHRvLgoKMjAwNS0wNC0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRhcmdldC1kZWYuaCAoVEFSR0VUX0NYWF9FWFBPUlRfQ0xBU1NfREFUQSk6IFJlbW92ZS4KCShUQVJHRVRfQ1hYX0RFVEVSTUlORV9DTEFTU19WSVNJQklMSVRZKTogTmV3IG1hY3JvLgoJKFRBUkdFVF9DWFhfQ0xBU1NfREFUQV9BTFdBWVNfQ09NREFUKTogTGlrZXdpc2UuCgkoVEFSR0VUX0NYWCk6IEFkanVzdCBhY2NvcmRpbmdseS4KCSogdGFyZ2V0LmggKHN0cnVjdCBnY2NfdGFyZ2V0KTogUmVtb3ZlIGVweG9ydF9jbGFzc19kYXRhLiAgQWRkCglkZXRlcm1pbmVfY2xhc3NfZGF0YV92aXNpYmlsaXR5IGFuZCBjbGFzc19kYXRhX2Fsd2F5c19jb21kYXQuCgkqIGRvYy90bS50ZXhpIChUQVJHRVRfQ1hYX0VYUE9SVF9DTEFTU19EQVRBKTogUmVtb3ZlLgoJKFRBUkdFVF9DWFhfREVURVJNSU5FX0NMQVNTX0RBVEFfVklTSUJJTElUWSk6IERvY3VtZW50LgoJKFRBUkdFVF9DWFhfQ0xBU1NfREFUQV9BTFdBWVNfQ09NREFUKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9hcm0vYXJtLmMgKGFybV9jeHhfZXhwb3J0X2NsYXNzX2RhdGEpOiBSZW1vdmUuCgkoYXJtX2N4eF9kZXRlcm1pbmVfY2xhc3NfZGF0YV92aXNpYmlsaXR5KTogTmV3LgoJKGFybV9jeHhfY2xhc3NfZGF0YV9hbHdheXNfY29tZGF0KTogTGlrZXdpc2UuCgkoVEFSR0VUX0NYWF9FWFBPUlRfQ0xBU1NfREFUQSk6IFJlbW92ZS4KCShUQVJHRVRfQ1hYX0RFVEVSTUlORV9DTEFTU19EQVRBX1ZJU0lCSUxJVFkpOiBEZWZpbmUuCgkoVEFSR0VUX0NYWF9DTEFTU19EQVRBX0FMV0FZU19DT01EQVQpOiBMaWtld2lzZS4KCSogY29uZmlnL2FybS9hcm0uaCAoVEFSR0VUX0FSTV9EWU5BTUlDX1ZBR1VFX0xJTktBR0VfUCk6IERlZmluZS4KCSogY29uZmlnL2FybS9zeW1iaWFuLmggKFRBUkdFVF9BUk1fRFlOQU1JQ19WQUdVRV9MSU5LQUdFX1ApOgoJRGVmaW5lLgoKMjAwNi0xMS0wOSAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQGFwcGxlLmNvbT4KCglQUiBib290c3RyYXAvMjY4OTIKCVBSIGJvb3RzdHJhcC8yNzgxNAoJUFIgb3RoZXIvMjg5OTQKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUuYWM6IE1hdGNoIHBvd2VycGMqLSotZGFyd2luKiBmb3IgcG93ZXJwYyBkYXJ3aW4gY2hlY2tzLgoJKiBjb25maWcuZ2NjIChwb3dlcnBjNjQtKi1kYXJ3aW4qKTogTmV3IHRhcmdldC4KCSogY29uZmlnLmhvc3Q6IERpdHRvLgoJKiBjb25maWcvcnM2MDAwL2RhcndpbjY0Lmg6IE5ldyBmaWxlLgoJKiBjb25maWcvcnM2MDAwL3gtZGFyd2luNjQ6IERpdHRvLgoJKiBjb25maWcvcnM2MDAwL2hvc3QtcHBjNjQtZGFyd2luLmM6IERpdHRvLgoKMjAwNi0xMS0wNiAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy5nY2M6IEFkZCB4ODZfNjQtZGFyd2luIGhvc3Qgc3VwcG9ydC4KCSogY29uZmlnLmhvc3Q6IERpdHRvLgoJKiBjb25maWcvaTM4Ni9kYXJ3aW42NC5oOiBOZXcgZmlsZS4KCSogY29uZmlnL2kzODYvdC1kYXJ3aW42NDogRGl0dG8uCgoyMDA2LTEwLTI3ICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4tYy5jIChkYXJ3aW5fY3BwX2J1aWx0aW5zKTogTW92ZSBfX1NUQVRJQ19fIGFuZAoJX19EWU5BTUlDX18gZnJvbSBoZXJlIGJhY2sgdG8gLi4uCgkqIGNvbmZpZy9kYXJ3aW4uaCAoQ1BQX1NQRUMpOiAuLi4gaGVyZS4KCjIwMDYtMTAtMTYgIE1pa2UgU3R1bXAgIDxtcnNAYXBwbGUuY29tPgoKCSogZG9jL2ludm9rZS50ZXhpIChEYXJ3aW4gT3B0aW9ucyk6IERvY3VtZW50IC1ta2VybmVsLgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChTVUJUQVJHRVRfT1ZFUlJJREVfT1BUSU9OUyk6IEFkZAoJLW1rZXJuZWwgc3VwcG9ydC4KCShDX0NPTU1PTl9PVkVSUklERV9PUFRJT05TKTogQWRkIC1ta2VybmVsIHN1cHBvcnQuICBBZGQKCVNVQlRBUkdFVF9DX0NPTU1PTl9PVkVSUklERV9PUFRJT05TIGNhbGxvdXQuCgkoQ0MxX1NQRUMpOiBEb24ndCB0dXJuIG9uIC1mUElDIHdoZW4gLW1rZXJuZWwgaXMgZ2l2ZW4uCgkoT1NfTUlTU0lOR19BTFRJVkVDKTogQWRkLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKG92ZXJyaWRlX29wdGlvbnMpOiBBZGQKCVNVQlNVQlRBUkdFVF9PVkVSUklERV9PUFRJT05TIGNhbGxvdXQuCgkqIGNvbmZpZy9pMzg2L2Rhcndpbi5oIChDQzFfU1BFQyk6IERvbid0IHR1cm4gb24gLWZQSUMgd2hlbgoJLW1rZXJuZWwsIC1zdGF0aWMgb3IgLW1keW5hbWljLW5vLXBpYyBpcyBnaXZlbi4KCShDX0NPTU1PTl9PVkVSUklERV9PUFRJT05TKTogQWRkLgoJKiBjb25maWcvZGFyd2luLm9wdCAoZmFwcGxlLWtleHQpOiBBZGQuCgkobWtlcm5lbCk6IEFkZC4KCSogY29uZmlnL2Rhcndpbi5oIChUQVJHRVRfT1BUSU9OX1RSQU5TTEFURV9UQUJMRSk6IEFkZAoJLWZhcHBsZS1rZXh0LCAtZmluZGlyZWN0LXZpcnR1YWwtY2FsbHMsIC1mdGVybWluYXRlZC12dGFibGVzIGFuZAoJLW1rZXJuZWwgc3VwcG9ydC4KCShTVUJTVUJUQVJHRVRfT1ZFUlJJREVfT1BUSU9OUyk6IEFkZC4KCShTVUJUQVJHRVRfQ19DT01NT05fT1ZFUlJJREVfT1BUSU9OUyk6IEFkZC4KCShDUFBfU1BFQyk6IE1vdmUgZGVmaW5lcyBmb3IgX19EWU5BTUlDX18gYW5kIF9fU1RBVElDX18gZnJvbSBoZXJlLi4uCgkoU1VCVEFSR0VUX0FUVFJJQlVURV9UQUJMRSk6IEFkZCBhcHBsZV9rZXh0X2NvbXBhdGliaWxpdHkuCgkoVEFSR0VUX0NYWF9DRFRPUl9SRVRVUk5TX1RISVMpOiBBZGQuCgkoZmxhZ19ta2VybmVsKTogQWRkLgoJKGZsYWdfYXBwbGVfa2V4dCk6IEFkZC4KCShUQVJHRVRfS0VYVEFCSSk6IEFkZC4KCSogY29uZmlnL2Rhcndpbi5jIChkYXJ3aW5faGFuZGxlX2tleHRfYXR0cmlidXRlKTogQWRkLgoJKERBUldJTl9WVEFCTEVfUCk6IEFkZC4KCShkYXJ3aW5fYmluZHNfbG9jYWxfcCk6IEFkZCBwYXJ0aWFsIHN1cHBvcnQgZm9yIHJlYmluZGluZyB2dGFibGVzCglpbiBrZXh0cy4KCShkYXJ3aW5fa2V4dGFiaV9wKTogQWRkLgoJKGRhcndpbl9vdmVycmlkZV9vcHRpb25zKTogQWRkLgoJKiBjb25maWcvZGFyd2luLXByb3Rvcy5oIChkYXJ3aW5faGFuZGxlX2tleHRfYXR0cmlidXRlKTogQWRkLgoJKGRhcndpbl9rZXh0YWJpX3ApOiBBZGQuCgkoZGFyd2luX292ZXJyaWRlX29wdGlvbnMpOiBBZGQuCgkqIGNvbmZpZy9kYXJ3aW4tYy5jIChkYXJ3aW5fY3BwX2J1aWx0aW5zKTogLi4uIG1vdmUgZGVmaW5lcyBmb3IKCV9fRFlOQU1JQ19fIGFuZCBfX1NUQVRJQ19fIGhlcmUuCgoyMDA2LTA5LTExICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uaCAoUFJFRkVSUkVEX0RFQlVHR0lOR19UWVBFKTogU2V0IHRvIERXQVJGMl9ERUJVRy4KCjIwMDYtMDktMDEgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnL2Rhcndpbi5oIChMSU5LX0NPTU1BTkRfU1BFQyk6IERvbid0IGRvIHdlaXJkIHRoaW5ncyB3aXRoIC1ALgoJQ2FsbCBkc3ltdXRpbCB3aGVuIGNvbXBpbGluZyBhbmQgbGlua2luZyBvbmUgb3IgbW9yZSBzb3VyY2UgZmlsZXMKCWluIG9uZSBzdGVwLgoKMjAwNi0wOS0yMCAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQGFwcGxlLmNvbT4KCglSYWRhciA0NjMyMjYyCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoeDg2X2Zpc3R0cCk6IFJlbW92ZS4KCSogY29uZmlnL2kzODYvaTM4Ni5oICh4ODZfZmlzdHRwKTogRGl0dG8uCiAgICAgICAgKFRBUkdFVF9GSVNUVFApOiBEaXR0by4KCjIwMDUtMDYtMTYgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuaW4gKGNjMS1jaGVja3N1bS5jKTogVXNlCglidWlsZC9nZW5jaGVja3N1bSQoYnVpbGRfZXhlZXh0KSwgbm90IGJ1aWxkL2dlbmNoZWNrc3VtJChleGVleHQpLgoKMjAwNi0wOC0xNiAgTWlrZSBTdHVtcCAgPG1yc0BhcHBsZS5jb20+CgoJKiBkb2MvaW52b2tlLnRleGkgKC1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMpOiBGaXh1cCB1c2Ugb2YgcHhyZWYuCgkqIGRvYy9jcHBvcHRzLnRleGkgKC1NRCk6IExpa2V3aXNlLgoKMjAwNS0xMC0zMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCVJhZGFyIDQ2NTExNzcKCVBSIHRhcmdldC8yMDkyOAoJKiBpMzg2LmMgKGxlZ2l0aW1pemVfcGljX2FkZHJlc3MpOiBEZWFsIHdpdGggbGFyZ2UgaW1tZWRpYXRlcy4KCjIwMDYtMDctMjAgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0BhcHBsZS5jb20+CgogICAgICAgIFBSIHRhcmdldC8yNjg3NwoJUmFkYXIgNDYzOTk1MwoJKiBjb25maWcvaTM4Ni9pMzg2LmggKE9QVElPTl9ERUZBVUxUX1NQRUNTKTogUmVvcmRlci4KCjIwMDYtMDctMDUgIE1pa2UgU3R1bXAgIDxtcnNAYXBwbGUuY29tPgoKCSogZG9jL2ludm9rZS50ZXhpIChJbnZva2luZyBHKyspOiBDbGFyaWZ5IHByb3NlIGZvciBnKysuCgoyMDA2LTA2LTAyICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCglSYWRhciA0NTA4ODE0CgkqIGNvbmZpZy9yczYwMDAvaG9zdC1kYXJ3aW4uYyAoc2lnYWx0c3RhY2spOiBQcm90ZWN0IHByb3RvdHlwZSB3aXRoCglIQVZFX0RFQ0xfU0lHQUxUU1RBQ0suCgkoTUNfRkxEKTogTmV3LgoJKHNlZ3ZfaGFuZGxlcik6IFVzZSBNQ19GTEQuCgkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIGEgc2lnYWx0c3RhY2sgZGVjbGFyYXRpb24uCglDb21wdXRlIEhBU19NQ09OVEVYVF9UX1VOREVSU0NPUkVTIG9uIERhcndpbi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgoyMDA1LTA0LTIwICBNaWNoYWVsIFBvZ3VlICA8bWljaGFlbC5wb2d1ZUBzdW4uY29tPgoJICAgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVJhZGFyIDI4ODM1ODUKCSogYy5vcHQgKFdpbnQtdG8tcG9pbnRlci1jYXN0LCBXcG9pbnRlci10by1pbnQtY2FzdCk6IE5ldyBvcHRpb25zLgoJKiBjLXR5cGVjay5jIChidWlsZF9jX2Nhc3QpOiBDaGVjayB0aGVzZSBvcHRpb25zLgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IHRoZXNlIG9wdGlvbnMuCgoyMDA2LTA1LTE2ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCglSYWRhciA0NTUwNTI2CgkqIGMtZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IERvbid0IHNldCBERUNMX0VYVEVSTkFMIG9uCglpbmxpbmUgc3RhdGljIGZ1bmN0aW9ucyBpbiBjOTkgbW9kZS4KCjIwMDYtMDUtMDkgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDQxMzQzMDcKCVBSIDE2NjIyCgkqIGRvYy9leHRlbmQudGV4aSAoSW5saW5lKTogVXBkYXRlLgoJKiBjLXRyZWUuaCAoc3RydWN0IGxhbmd1YWdlX2Z1bmN0aW9uKTogUmVtb3ZlIGZpZWxkICdleHRlcm5faW5saW5lJy4KCSogYy1kZWNsLmMgKGN1cnJlbnRfZXh0ZXJuX2lubGluZSk6IERlbGV0ZS4KCShwb3Bfc2NvcGUpOiBBZGp1c3QgdGVzdCBmb3IgYW4gdW5kZWZpbmVkIG5lc3RlZCBmdW5jdGlvbi4KCUFkZCB3YXJuaW5nIGFib3V0IHVuZGVjbGFyZWQgaW5saW5lIGZ1bmN0aW9uLgoJKGRpYWdub3NlX21pc21hdGNoZWRfZGVjbHMpOiBVcGRhdGUgY29tbWVudHMuICBEaXNhbGxvdyBvdmVycmlkaW5nCglvZiBpbmxpbmUgZnVuY3Rpb25zIGluIGEgdHJhbnNsYXRpb24gdW5pdCBpbiBDOTkuICBBbGxvdyBpbmxpbmUKCWRlY2xhcmF0aW9ucyBpbiBDOTkgYXQgYW55IHRpbWUuCgkobWVyZ2VfZGVjbHMpOiBCb29saXplIHZhcmlhYmxlcy4gIEhhbmRsZSBDOTkgJ2V4dGVybiBpbmxpbmUnCglzZW1hbnRpY3MuCgkoZ3Jva2RlY2xhcmF0b3IpOiBTZXQgREVDTF9FWFRFUk5BTCBoZXJlIGZvciBmdW5jdGlvbnMuICBIYW5kbGUKCUM5OSBpbmxpbmUgc2VtYW50aWNzLgoJKHN0YXJ0X2Z1bmN0aW9uKTogRG9uJ3QgY2xlYXIgY3VycmVudF9leHRlcm5faW5saW5lLiAgRG9uJ3Qgc2V0CglERUNMX0VYVEVSTkFMLgoJKGNfcHVzaF9mdW5jdGlvbl9jb250ZXh0KTogRG9uJ3QgcHVzaCBjdXJyZW50X2V4dGVybl9pbmxpbmUuCgkoY19wb3BfZnVuY3Rpb25fY29udGV4dCk6IERvbid0IHJlc3RvcmUgY3VycmVudF9leHRlcm5faW5saW5lLgoKMjAwNi0wNS0wNCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJUmFkYXIgNDEzNDMwNwoJUFIgMTEzNzcKCSogYy10eXBlY2suYyAoYnVpbGRfZXh0ZXJuYWxfcmVmKTogV2FybiBhYm91dCBzdGF0aWMgdmFyaWFibGVzCgl1c2VkIGluIGV4dGVybiBpbmxpbmUgZnVuY3Rpb25zLgoJKiBjLWRlY2wuYyAoc3RhcnRfZGVjbCk6IFdhcm4gYWJvdXQgc3RhdGljIHZhcmlhYmxlcyBkZWNsYXJlZAoJaW4gZXh0ZXJuIGlubGluZSBmdW5jdGlvbnMuCgoyMDA2LTA1LTE4ICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCglSYWRhciA0MzM2MjIyCglGaXggdXAgdmxhLCB2bSBhbmQgWypdIHNlbWF0aWNzLgoKCVBSIGMvMTg3NDAKCVBSIGMvNzk0OAoJUFIgYy8yNTgwMgoJUFIgYy8yNzY3MwoJKiBjLXRyZWUuaCAoc3RydWN0IGNfYXJnX2luZm8pOiBBZGQgaGFkX3ZsYV91bnNwZWMuCgkoY192bGFfdW5zcGVjX3ApOiBBZGQuCgkoY192bGFfdHlwZV9wKTogQWRkLgoJKiBjLWRlY2wuYyAoc3RydWN0IGNfc2NvcGUpOiBBZGQgaGFkX3ZsYV91bnNwZWMuCgkoYnVpbGRfYXJyYXlfZGVjbGFyYXRvcik6IEFkZCBzdXBwb3J0IGZvciBbKl0uCgkoZ3Jva2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCShncm9rcGFybXMpOiBMaWtld2lzZS4KCShnZXRfcGFybV9pbmZvKTogTGlrZXdpc2UuCgkqIGMtb2JqYy1jb21tb24uYyAoY192bGFfdW5zcGVjX3ApOiBMaWtld2lzZS4KCSogYy1vYmpjLWNvbW1vbi5oIChMQU5HX0hPT0tTX1RSRUVfSU5MSU5JTkdfVkFSX01PRF9UWVBFX1ApOiBMaWtld2lzZS4KCSogYy1wYXJzZXIuYyAoY19wYXJzZXJfdHlwZW9mX3NwZWNpZmllcik6IEV2YWx1YXRlIGFyZ3VtZW50cyB0bwoJdHlwZW9mIHdoZW4gYXJndW1lbnQgaXMgYSB2YXJpYWJseSBtb2RpZmllZCB0eXBlIG5vdCBpbnNpZGUgc2l6ZW9mIG9yIGFsaWdub2YuCgkoY19wYXJzZXJfZGlyZWN0X2RlY2xhcmF0b3JfaW5uZXIpOiBQcm9wYWdhdGUgZXJyb3JzLgoJKGNfcGFyc2VyX3NpemVvZl9leHByZXNzaW9uKTogQWRkIHN1cHBvcnQgZm9yIFsqXS4KCShjX3BhcnNlcl9wYXJtc19kZWNsYXJhdG9yKTogSW5pdGlhbGl6ZSBoYWRfdmxhX3Vuc3BlYy4KCShjX3BhcnNlcl9wYXJtc19saXN0X2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCSogYy10eXBlY2suYyAoY192bGFfdHlwZV9wKTogQWRkLgoJKGNvbXBvc2l0ZV90eXBlKTogQWRkIHN1cHBvcnQgZm9yIHZsYSBjb21wb3NpdGluZy4KCShjb21wdHlwZXNfaW50ZXJuYWwpOiBBZGQgc3VwcG9ydCBmb3IgdmxhIGNvbXBhdGliaWxpdHkuCgkoY19leHByX3NpemVvZl9leHByKTogRXZhbHVhdGUgdmxhIGFyZ3VtZW50cy4KCSogdHJlZS5jICh2YXJpYWJseV9tb2RpZmllZF90eXBlX3ApOiBVcGRhdGUgY29tbWVudCBmb3IgWypdLgoKMjAwNS0xMi0wMSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJUmFkYXIgNDA5NjE4MwoJKiBjb25maWcvdC1zbGliZ2NjLWRhcndpbiAoU0hMSUJfTElOSyk6IFVzZSAtc2luZ2xlX21vZHVsZSByYXRoZXIKCXRoYW4gLWZsYXRfbmFtZXNwYWNlLgoKMjAwNi0xMC0xMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglSYWRhciA0NDg0MDYwCglQUiBjKysvMjQzMDIKCSogdG9wbGV2LmMgKGNoZWNrX2dsb2JhbF9kZWNsYXJhdGlvbnMpOiBDaGVjayBhbm9ueW1vdXMKCWRlY2wgbmFtZS4KCjIwMDYtMDYtMTEgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0BhcHBsZS5jb20+CgoJUmFkYXIgNDU4MTk0OAoJUFIgbWlkZGxlLWVuZC8yNzk0OAoJKiBzdG9yLWxheW91dC5jIChwbGFjZV9maWVsZCk6IFJlbW92ZSBjaGVjayBmb3IKCXJlbWFpbmluZ19pbl9hbGlnbm1lbnQgd2hlbiBhbGlnbmluZyBhdCB0aGUgZW5kIG9mIGEgcnVuLgoKMjAwNi0wNS0wOCAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQGFwcGxlLmNvbT4KCglSYWRhciA0NTM3ODgxCgkqIHVud2luZC1kdzItZmRlLWRhcndpbi5jIChleGFtaW5lX29iamVjdHMpOiBPbmx5IGNoZWNrIGRhdGEKCXNlY3Rpb24gZm9yIHBwYy4KCjIwMDYtMDQtMjUgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0BhcHBsZS5jb20+CgoJUmFkYXIgNDUyOTk3OAoJKiB0YXJnZXQtZGVmLmggKFRBUkdFVF9TRVRfREVGQVVMVF9UWVBFX0FUVFJJQlVURVMpOiBCcmFja2V0Cgl3aXRoICNpZm5kZWYvI2VuZGlmLgoJKiBjb25maWcvZGFyd2luLWMuYyAoZGFyd2luX21zX3N0cnVjdCk6IE5ldy4KCShkYXJ3aW5fcHJhZ21hX21zX3N0cnVjdCk6IERpdHRvLgoJKGRhcndpbl9zZXRfZGVmYXVsdF90eXBlX2F0dHJpYnV0ZXMpOiBEaXR0by4KCSogY29uZmlnL2Rhcndpbi1wcm90b3MuaCAoZGFyd2luX3ByYWdtYV9tc19zdHJ1Y3QpOiBEZWNsYXJlLgoJKiBjb25maWcvZGFyd2luLmggKERBUldJTl9SRUdJU1RFUl9UQVJHRVRfUFJBR01BUyk6CglSZWdpc3RlciBtc19zdHJ1Y3QgcHJhZ21hLgoJKiBjb25maWcvaTM4Ni9kYXJ3aW4uaCAoUkVHSVNURVJfVEFSR0VUX1BSQUdNQVMpOiBEZWNsYXJlLgoJKFRBUkdFVF9TRVRfREVGQVVMVF9UWVBFX0FUVFJJQlVURVMpOiBEaXR0by4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3NldF9kZWZhdWx0X3R5cGVfYXR0cmlidXRlcyk6IENhbGwKCWRhcndpbl9zZXRfZGVmYXVsdF90eXBlX2F0dHJpYnV0ZXMgaWYgVEFSR0VUX01BQ0hPLgoKMjAwNi0wNC0yNSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJUmFkYXIgNDQ5ODIwMQoJKiBkd2FyZjJvdXQuYyAoc2l6ZV9vZl9sb2NzKTogRG9uJ3QgZmlsbCBkd19sb2NfYWRkciBpZiB0aGVyZQoJYXJlIG5vIGJyYW5jaGVzLgoKCVJhZGFyIDQ0OTgyMDEKCSogZHdhcmYyYXNtLmMgKGR3Ml9hc21fb3V0cHV0X2RhdGEpOiBEb24ndCBnZW5lcmF0ZSBSVEwganVzdAoJdG8gcHJpbnQgYW4gaW50ZWdlci4KCjIwMDYtMDQtMjQgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDQ0OTgyMDEKCSogZHdhcmYyb3V0LmMgKHZlcmlmeV9tYXJrc19jbGVhcik6IE5ldy4KCShwcnVuZV91bnVzZWRfdHlwZXMpOiBDYWxsIHZlcmlmeV9tYXJrc19jbGVhciBpbml0aWFsbHksIG5vdAoJcHJ1bmVfdW5tYXJrX2RpZXMuCgoyMDA2LTA0LTIxICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCglSYWRhciA0NDk4MjAxCgkqIGR3YXJmMm91dC5jIChzdHJ1Y3QgZGllX3N0cnVjdCk6IERvY3VtZW50IHRoYXQgZGllX3NpYiBtYWtlcwoJYSBjaXJjdWxhciBsaW5rZWQgbGlzdC4KCShGT1JfRUFDSF9DSElMRCk6IE5ldy4KCShyZXZlcnNlX2RpZV9saXN0cyk6IERlbGV0ZS4KCShyZXZlcnNlX2FsbF9kaWVzKTogRGVsZXRlLgoJKGFkZF9kd2FyZl9hdHRyKTogQ29ycmVjdCBkb2N1bWVudGF0aW9uLgoJKHJlbW92ZV9jaGlsZF93aXRoX3ByZXYpOiBOZXcuCgkocmVtb3ZlX2NoaWxkX1RBRyk6IFVwZGF0ZSBmb3IgY2hhbmdlIHRvIGRpZV9zdHJ1Y3QsIHVzZQoJcmVtb3ZlX2NoaWxkX3dpdGhfcHJldi4KCShhZGRfY2hpbGRfZGllKTogVXBkYXRlIGZvciBjaGFuZ2UgdG8gZGllX3N0cnVjdC4KCShzcGxpY2VfY2hpbGRfZGllKTogVXNlIHJlbW92ZV9jaGlsZF93aXRoX3ByZXYgYW5kIGFkZF9jaGlsZF9kaWUuCgkocHJpbnRfZGllKTogVXNlIEZPUl9FQUNIX0NISUxELgoJKGRpZV9jaGVja3N1bSk6IExpa2V3aXNlLgoJKGFzc2lnbl9zeW1ib2xfbmFtZXMpOiBMaWtld2lzZS4KCShvdXRwdXRfbG9jYXRpb25fbGlzdHMpOiBMaWtld2lzZS4KCShidWlsZF9hYmJyZXZfdGFibGUpOiBMaWtld2lzZS4KCShjYWxjX2RpZV9zaXplcyk6IExpa2V3aXNlLgoJKG1hcmtfZGllcyk6IExpa2V3aXNlLgoJKHVubWFya19kaWVzKTogTGlrZXdpc2UuCgkodW5tYXJrX2FsbF9kaWVzKTogTGlrZXdpc2UuCgkob3V0cHV0X2RpZSk6IExpa2V3aXNlLgoJKHBydW5lX3VudXNlZF90eXBlc19tYXJrKTogTGlrZXdpc2UuCgkocHJ1bmVfdW51c2VkX3R5cGVzX3dhbGspOiBMaWtld2lzZS4KCShzYW1lX2RpZV9wKTogVXBkYXRlIGZvciBjaGFuZ2UgdG8gZGllX3N0cnVjdC4KCShicmVha19vdXRfaW5jbHVkZXMpOiBMaWtld2lzZS4KCShwcnVuZV91bnVzZWRfdHlwZXNfcHJ1bmUpOiBMaWtld2lzZS4KCShhZGRfc2libGluZ19hdHRyaWJ1dGVzKTogVXNlIEZPUl9FQUNIX0NISUxELCBzaW1wbGlmeSBsb2dpYy4KCShwcnVuZV91bm1hcmtfZGllcyk6IFVzZSBGT1JfRUFDSF9DSElMRCwgZG9uJ3QgY2xlYXIgZGllX21hcmsgaWYKCWl0J3MgYWxyZWFkeSBjbGVhci4KCShkd2FyZjJvdXRfZmluaXNoKTogRG9uJ3QgY2FsbCByZXZlcnNlX2FsbF9kaWVzLgoKMjAwNi0wNC0wNCAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQGFwcGxlLmNvbT4KCglSYWRhciA0NTI1MDE0CgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKFRBUkdFVF9NU19CSVRGSUVMRF9MQVlPVVRfUCk6IERlZmluZS4KCShUQVJHRVRfVVNFX01TX0JJVEZJRUxEX0xBWU9VVCk6IERpdHRvLgoJKHJzNjAwMF9oYW5kbGVfc3RydWN0X2F0dHJpYnV0ZSk6IE5ldy4KCShyczYwMDBfbXNfYml0ZmllbGRfbGF5b3V0X3ApOiBEaXR0by4KCjIwMDYtMDQtMTcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDQ0OTgyMDEKCSogZHdhcmYyb3V0LmMgKGZyZWVfQVQpOiBEZWxldGUuCgkocmVtb3ZlX0FUKTogVXBkYXRlIHN0cmluZyByZWYgY291bnRzLgoJKHJlbW92ZV9jaGlsZF9UQUcpOiBEb24ndCBjYWxsIGZyZWVfZGllLgoJKGZyZWVfZGllKTogRGVsZXRlLgoJKGJyZWFrX291dF9pbmNsdWRlcyk6IERvbid0IGNhbGwgZnJlZV9kaWUgb24gRFdfVEFHX0dOVV9CSU5DTAoJb3IgRFdfVEFHX0dOVV9FSU5DTC4KCShwcnVuZV91bnVzZWRfdHlwZXNfd2Fsa19hdHRyaWJzKTogUmVzZXQgc3RyaW5nIHJlZmNvdW50cy4KCShwcnVuZV91bnVzZWRfdHlwZXNfdXBkYXRlX3N0cmluZ3MpOiBOZXcuCgkocHJ1bmVfdW51c2VkX3R5cGVzX3BydW5lKTogRG9uJ3QgbWFrZSB1bm5lY2Vzc2FyeSBzdG9yZXMuICBEb24ndAoJY2FsbCBmcmVlX2RpZS4gIERvIGNhbGwgcHJ1bmVfdW51c2VkX3R5cGVzX3VwZGF0ZV9zdHJpbmdzLgoJKHBydW5lX3VudXNlZF90eXBlcyk6IEVtcHR5IGRlYnVnX3N0cl9oYXNoLgoKMjAwNi0wNC0xMCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJUmFkYXIgNDQ5ODIwMQoJKiBkd2FyZjJvdXQuYyAoc3RydWN0IGR3X2F0dHJfc3RydWN0KTogUmVtb3ZlIGR3X2F0dHJfbmV4dC4KCURlY2xhcmUgVkVDcyBvZiB0aGlzIHR5cGUuCgkoc3RydWN0IGRpZV9zdHJ1Y3QpOiBNYWtlIGZpZWxkIGRpZV9hdHRyIGEgVkVDIG9mIGR3X2F0dHJfc3RydWN0LgoJKHJlbW92ZV9jaGlsZHJlbik6IERlbGV0ZS4KCShhZGRfZHdhcmZfYXR0cik6IFVzZSBWRUMgcm91dGluZXMuCgkoYWRkX0FUX2ZsYWcpOiBVcGRhdGUgZm9yIGNoYW5nZXMgdG8gYWRkX2R3YXJmX2F0dHIuCgkoYWRkX0FUX2ludCk6IExpa2V3aXNlLgoJKGFkZF9BVF91bnNpZ25lZCk6IExpa2V3aXNlLgoJKGFkZF9BVF9sb25nX2xvbmcpOiBMaWtld2lzZS4KCShhZGRfQVRfdmVjKTogTGlrZXdpc2UuCgkoYWRkX0FUX3N0cmluZyk6IExpa2V3aXNlLgoJKGFkZF9BVF9kaWVfcmVmKTogTGlrZXdpc2UuCgkoYWRkX0FUX2ZkZV9yZWYpOiBMaWtld2lzZS4KCShhZGRfQVRfbG9jKTogTGlrZXdpc2UuCgkoYWRkX0FUX2xvY19saXN0KTogTGlrZXdpc2UuCgkoYWRkX0FUX2FkZHIpOiBMaWtld2lzZS4KCShhZGRfQVRfbGJsX2lkKTogTGlrZXdpc2UuCgkoYWRkX0FUX2xpbmVwdHIpOiBMaWtld2lzZS4KCShhZGRfQVRfbWFjcHRyKTogTGlrZXdpc2UuCgkoYWRkX0FUX29mZnNldCk6IExpa2V3aXNlLgoJKGFkZF9BVF9yYW5nZV9saXN0KTogTGlrZXdpc2UuCgkoZ2V0X0FUKTogVXNlIFZFQ19pdGVyYXRlLgoJKHJlbW92ZV9BVCk6IFVzZSBWRUNfb3JkZXJlZF9yZW1vdmUuCgkoZnJlZV9kaWUpOiBGb2xkIHJlbW92ZV9jaGlsZHJlbiBpbnRvIGhlcmU7IGhhdmUgaXQgdXNlIFZFQ19pdGVyYXRlLgoJKHByaW50X2RpZSk6IFVzZSBWRUNfaXRlcmF0ZSBvbiBhdHRycy4KCShyZXZlcnNlX2RpZV9saXN0cyk6IERvbid0IHJldmVyc2UgYXR0ciBsaXN0cy4KCShkaWVfY2hlY2tzdW0pOiBVc2UgVkVDX2l0ZXJhdGUgb24gYXR0cnMuCgkoc2FtZV9kaWVfcCk6IExpa2V3aXNlLgoJKG91dHB1dF9sb2NhdGlvbl9saXN0cyk6IExpa2V3aXNlLgoJKGJ1aWxkX2FiYnJldl90YWJsZSk6IExpa2V3aXNlLgoJKHNpemVfb2ZfZGllKTogTGlrZXdpc2UuCgkodW5tYXJrX2FsbF9kaWVzKTogTGlrZXdpc2UuCgkob3V0cHV0X2FiYnJldl9zZWN0aW9uKTogTGlrZXdpc2UuCgkob3V0cHV0X2RpZSk6IExpa2V3aXNlLgoJKHBydW5lX3VudXNlZF90eXBlc193YWxrX2F0dHJpYnMpOiBMaWtld2lzZS4KCjIwMDYtMDQtMDQgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDQ1MDIyMDkKCSogY29uZmlnL2Rhcndpbi1jcnQzLmMgKGF0ZXhpdCk6IFBhc3MgJl9fZHNvX2hhbmRsZSByYXRoZXIgdGhhbgoJTlVMTCBmb3IgZHNvIHBhcmFtZXRlciB0byBhdGV4aXRfY29tbW9uLgoKCVJhZGFyIDQzODM2MTMKCSogZG9jL2V4dGVuZC50ZXhpIChGdW5jdGlvbiBBdHRyaWJ1dGVzKTogUmV3cml0ZSB2aXNpYmlsaXR5CglhdHRyaWJ1dGUgZG9jdW1lbnRhdGlvbi4KCSogZG9jL2ludm9rZS50ZXhpIChDKysgRGlhbGVjdCBPcHRpb25zKTogUmV3cml0ZQoJLWZ2aXNpYmlsaXR5LWlubGluZXMtaGlkZGVuIGRvY3VtZW50YXRpb24gdG8gZGVzY3JpYmUgc29tZXRoaW5nCgllbnRpcmVseSBkaWZmZXJlbnQsIGFsdGhvdWdoIGluIHByYWN0aXNlIGNvbXBhdGlibGUuCgkoQ29kZSBHZW4gT3B0aW9ucyk6IFdhcm4gYWJvdXQgc3lzdGVtIGhlYWRlcnMgaW4gLWZ2aXNpYmlsaXR5PQoJZG9jdW1lbnRhdGlvbi4KCjIwMDYtMDMtMjIgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0BhcHBsZS5jb20+CgoJUmFkYXIgNDQxOTIwMAoJMjAwNi0wMS0yNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL2kzODYvZW1taW50cmluLmggKF9tbV9jdnRzZF9mNjQpOiBBZGQgbWlzc2luZyBJbnRlbAoJaW50cmluc2ljLgoJKF9tbV9jdnRzaTEyOF9zaTY0KTogTGlrZXdpc2UuCgkoX21tX2N2dHNkX3NpNjQpOiBMaWtld2lzZS4KCShfbW1fY3Z0dHNkX3NpNjQpOiBMaWtld2lzZS4KCShfbW1fY3Z0c2k2NF9zZCk6IExpa2V3aXNlLgoJKF9tbV9jdnRzaTY0X3NpMTI4KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L21taW50cmluLmggKF9tX2Zyb21faW50NjQpOiBMaWtld2lzZS4KCShfbW1fY3Z0c2k2NF9tNjQpOiBMaWtld2lzZS4KCShfbV90b19pbnQ2NCk6IExpa2V3aXNlLgoJKF9tbV9jdnRtNjRfc2k2NCk6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni94bW1pbnRyaW4uaCAoX21tX2N2dHNzX3NpNjQpOiBMaWtld2lzZS4KCShfbW1fY3Z0dHNzX3NpNjQpOiBMaWtld2lzZS4KCShfbW1fY3Z0c2k2NF9zcyk6IExpa2V3aXNlLgoJKF9tbV9jdnRzc19mMzIpOiBMaWtld2lzZS4KCjIwMDYtMDMtMzAgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDQ0OTU1MjAKCSogY29uZmlnL2Rhcndpbi5oIChMSU5LX0NPTU1BTkRfU1BFQyk6IERvbid0IHRyeSB0byBwcm90ZWN0ICVTIHdpdGgKCSFaZHluYW1pY2xpYi4KCjIwMDYtMDMtMjQgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDQ0ODU1OTcKCSogZHdhcmYyb3V0LmMgKGlzX2NfZmFtaWx5KTogVW5kZXJzdGFuZCBuZXcgRFdBUkYzIGxhbmd1YWdlIHR5cGVzLgoJKGlzX2N4eCk6IExpa2V3aXNlLgoJKGdlbl9jb21waWxlX3VuaXRfZGllKTogVXNlIG5ldyBsYW5ndWFnZSB0eXBlcyBmb3IgT2JqZWN0aXZlLUMgYW5kCglPYmplY3RpdmUtQysrLgoJKGR3YXJmMm91dF9kZWNsKTogVXNlIGlzX2N4eCByYXRoZXIgdGhhbiB0ZXN0aW5nIGV4cGxpY2l0bHkgYWdhaW5zdAoJRFdfTEFOR19DX3BsdXNfcGx1cy4KCjIwMDYtMDMtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZHdhcmYyLmggKERXX1RBR19jb25kaXRpb24sIERXX1RBR19zaGFyZWRfdHlwZSk6IE5ldyBjb25zdGFudHMKCWZyb20gRFdBUkYgMy4KCShEV19BVF9kZXNjcmlwdGlvbiwgRFdfQVRfYmluYXJ5X3NjYWxlLCBEV19BVF9kZWNpbWFsX3NjYWxlLAoJRFdfQVRfc21hbGwsIERXX0FUX2RlY2ltYWxfc2lnbiwgRFdfQVRfZGlnaXRfY291bnQsCglEV19BVF9waWN0dXJlX3N0cmluZywgRFdfQVRfbXV0YWJsZSwgRFdfQVRfdGhyZWFkc19zY2FsZWQsCglEV19BVF9leHBsaWNpdCwgRFdfQVRfb2JqZWN0X3BvaW50ZXIsIERXX0FUX2VuZGlhbml0eSwKCURXX0FUX2VsZW1lbnRhbCwgRFdfQVRfcHVyZSwgRFdfQVRfcmVjdXJzaXZlKTogTmV3LgoJKERXX09QX2Zvcm1fdGxzX2FkZHJlc3MsIERXX09QX2NhbGxfZnJhbWVfY2ZhLCBEV19PUF9iaXRfcGllY2UpOiBOZXcuCgkoRFdfQVRFX3BhY2tlZF9kZWNpbWFsLCBEV19BVEVfbnVtZXJpY19zdHJpbmcsIERXX0FURV9lZGl0ZWQsCglEV19BVEVfc2lnbmVkX2ZpeGVkLCBEV19BVEVfdW5zaWduZWRfZml4ZWQpOiBOZXcuCgkoRFdfRFNfdW5zaWduZWQsIERXX0RTX2xlYWRpbmdfb3ZlcnB1bmNoLCBEV19EU190cmFpbGluZ19vdmVycHVuY2gsCglEV19EU19sZWFkaW5nX3NlcGFyYXRlLCBEV19EU190cmFpbGluZ19zZXBhcmF0ZSk6IE5ldy4KCShEV19FTkRfZGVmYXVsdCwgRFdfRU5EX2JpZywgRFdfRU5EX2xpdHRsZSk6IE5ldy4KCShEV19FTkRfbG9fdXNlciwgRFdfRU5EX2hpX3VzZXIpOiBEZWZpbmUuCgkoRFdfTE5FX2xvX3VzZXIsIERXX0xORV9oaV91c2VyKTogRGVmaW5lLgoJKERXX0NGQV92YWxfb2Zmc2V0LCBEV19DRkFfdmFsX29mZnNldF9zZiwgRFdfQ0ZBX3ZhbF9leHByZXNzaW9uKTogTmV3LgoJKERXX0xBTkdfUExJLCBEV19MQU5HX09iakMsIERXX0xBTkdfT2JqQ19wbHVzX3BsdXMsIERXX0xBTkdfVVBDLAoJRFdfTEFOR19EKTogTmV3LgoKMjAwNi0wMy0xNSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJUmFkYXIgMzk5MjE5OAoJKiBjb25maWcuZ2NjICgqLSotZGFyd2luKik6IERvbid0IGJ1aWxkIGNydDIubyBmb3IgYWxsIERhcndpbiBwb3J0cy4KCURvIHN3aXRjaCBvbiBkZWZhdWx0X3VzZV9jeGFfYXRleGl0LgoJKHBvd2VycGMqLSotZGFyd2luKik6IEJ1aWxkIGNydDIubyBvbiBwb3dlcnBjLgoJKiBjb25maWcvZGFyd2luLWNydDMubzogTmV3LgoJKiBjb25maWcvZGFyd2luLmggKExJTktfU1BFQyk6IElmIC1zaGFyZWQtbGliZ2NjLCBtYWtlIGxpbmtlciBkZWZhdWx0Cgl0byAxMC4zLiAgUGFzcyAnLW11bHRpcGx5X2RlZmluZWQgc3VwcHJlc3MnIGlmIGNydDMubyBpcyBpbiB1c2UuCgkoU1RBUlRGSUxFX1NQRUMpOiBBZGQgY3J0My5vIHdoZW4gLXNoYXJlZC1saWJnY2MgYW5kIGFwcHJvcHJpYXRlCglPUyB2ZXJzaW9uLgoJKiBjb25maWcvcnM2MDAwL3QtZGFyd2luOiBNb3ZlIGNydDIubyBidWlsZGluZyB0byBoZXJlLgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChDX0NPTU1PTl9PVkVSUklERV9PUFRJT05TKTogVXBkYXRlCglNYWMgT1MgdmVyc2lvbiBmb3IgdXNpbmcgX19jeGFfZ2V0X2V4Y2VwdGlvbl9wdHIuICBEb24ndCB0ZXN0IHZlcnNpb25zCglvZiBfX2N4YV9hdGV4aXQuCgoyMDA2LTAzLTA3ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCglSYWRhciA0NDY2ODE5CgkqIGR3YXJmMm91dC5jIChEV0FSRjJfRlJBTUVfUkVHX09VVCk6IE1vdmUgdXAgaW4gZmlsZS4KCShleHBhbmRfYnVpbHRpbl9kd2FyZl9zcF9jb2x1bW4pOiBDYWxsIERXQVJGMl9GUkFNRV9SRUdfT1VULgoJKGV4cGFuZF9idWlsdGluX2luaXRfZHdhcmZfcmVnX3NpemVzKTogTGlrZXdpc2UuCgoJUmFkYXIgNDQ0NjU5MAoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfZGVsZWdpdGltaXplX2FkZHJlc3MpOiBIYW5kbGUgRGFyd2luCglhZGRyZXNzZXMgd2l0aCBvZmZzZXRzOyByZW9yZ2FuaXplLgoKMjAwNi0wMy0wMiAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAobWFjaG9waWNfb3V0cHV0X3N0dWIpOiBBZGQgaW5kaXJlY3Rpb24gdG8KCWp1bXAuCgoyMDA2LTAyLTI0ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCglSYWRhciA0MDg2Nzc3CgkqIGRvYy90bS50ZXhpIChSdW4tdGltZSBUYXJnZXQpOiBEb2N1bWVudCBDX0NPTU1PTl9PVkVSUklERV9PUFRJT05TLgoJKiBkb2MvaW52b2tlLnRleGkgKEMrKyBEaWFsZWN0IE9wdGlvbnMpOiBEb2N1bWVudAoJLWZuby11c2UtY3hhLWdldC1leGNlcHRpb24tcHRyLgoJKiBjb25maWd1cmUuYWM6IERlZmluZSBERUZBVUxUX1VTRV9DWEFfQVRFWElUIHRvIDIgbm90IDEuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogYy5vcHQgKGZ1c2UtY3hhLWdldC1leGNlcHRpb24tcHRyKTogTmV3LgoJKiBjLW9wdHMuYyAoY19jb21tb25faGFuZGxlX29wdGlvbik6IEhhbmRsZQoJT1BUX2Z1c2VfY3hhX2dldF9leGNlcHRpb25fcHRyLgoJKiBjLWNvbW1vbi5jIChmbGFnX3VzZV9jeGFfYXRleGl0KTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkoZmxhZ191c2VfY3hhX2dldF9leGNlcHRpb25fcHRyKTogTmV3LgoJKiBjLWNvbW1vbi5oIChmbGFnX3VzZV9jeGFfZ2V0X2V4Y2VwdGlvbl9wdHIpOiBOZXcuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKFNVQlRBUkdFVF9PVkVSUklERV9PUFRJT05TKTogSW1wcm92ZQoJZG9jdW1lbnRhdGlvbi4KCShDX0NPTU1PTl9PVkVSUklERV9PUFRJT05TKTogTmV3LgoKMjAwNi0wMi0yMSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJUmFkYXIgNDQzOTA1MQoJKiBjb25maWcvaTM4Ni9kYXJ3aW4uaCAoRFdBUkYyX0ZSQU1FX1JFR19PVVQpOiBOZXcuCgoyMDA2LTAyLTEzICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCglSYWRhciA0NDMzNDUzCgkqIGR3YXJmMm91dC5jIChiYXNlX3R5cGVfZGllKTogRG9uJ3QgYWRkIEFUX25hbWUgaGVyZS4KCShzdWJyYW5nZV90eXBlX2RpZSk6IERvbid0IGFkZCBBVF9uYW1lIGhlcmUuCgkobW9kaWZpZWRfdHlwZV9kaWUpOiBSZWFycmFuZ2UgY29kZSBmbG93LiAgRG8gYWRkIEFUX25hbWUgaGVyZS4KCjIwMDYtMDItMTAgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDQ0MzkwNTEKCSogY29uZmlnL2kzODYvZGFyd2luLmggKERCWF9SRUdJU1RFUl9OVU1CRVIpOiBEZWZpbmUuCgoyMDA2LTAyLTA3ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCglSYWRhciA0NDMwMDQxCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9kZWxlZ2l0aW1pemVfYWRkcmVzcyk6IFN1cHBvcnQgRGFyd2luCglQSUMgYWRkcmVzc2VzLgoKMjAwNi0wMS0wNiAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQGFwcGxlLmNvbT4KCiAgICAgICAgKiBkb2MvdG0udGV4aSAoVEFSR0VUX0FTTV9FTUlUX0VYQ0VQVF9UQUJMRV9MQUJFTCk6IERvY3VtZW50LgogICAgICAgIChUQVJHRVRfVU5XSU5EX0VNSVQpOiBGaXggc3BlbGxpbmcuCiAgICAgICAgKiB0YXJnZXQuaCAoZ2NjX3RhcmdldCk6IEFkZCBleGNlcHRfdGFibGVfbGFiZWwuCiAgICAgICAgKiBleGNlcHQuYyAob3V0cHV0X2Z1bmN0aW9uX2V4Y2VwdGlvbl90YWJsZSk6IFVzZS4KICAgICAgICAqIHZhcmFzbS5jIChkZWZhdWx0X2VtaXRfZXhjZXB0X3RhYmxlX2xhYmVsKTogTmV3LgogICAgICAgICogdGFyZ2V0LWRlZi5oIChUQVJHRVRfQVNNX0VNSVRfRVhDRVBUX1RBQkxFX0xBQkVMKTogTmV3IGRlZmF1bHQKICAgICAgICBkZWZpbmUuCiAgICAgICAgKGFzbV9vdXQpOiBBZGQgaGVyZS4KICAgICAgICAqIG91dHB1dC5oIChkZWZhdWx0X2VtaXRfZXhjZXB0X3RhYmxlX2xhYmVsKTogUHJvdG90eXBlLgogICAgICAgICogY29uZmlnL2Rhcndpbi1wcm90b3MuaCAoZGFyd2luX2VtaXRfZXhjZXB0X3RhYmxlX2xhYmVsKTogRGl0dG8uCiAgICAgICAgKiBjb25maWcvZGFyd2luLmMgKGRhcndpbl9lbWl0X2V4Y2VwdF90YWJsZV9sYWJlbCk6IERlZmluZS4KICAgICAgICAqIGNvbmZpZy9kYXJ3aW4uaCAoVEFSR0VUX0FTTV9FTUlUX0VYQ0VQVF9UQUJMRSk6IERpdHRvLgoKMjAwNi0wMS0wMiAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBkd2FyZjJvdXQuYyAoaGF2ZV9zd2l0Y2hlZF90ZXh0X3NlY3Rpb24pOiBEZWxldGUuCgkoaGF2ZV9tdWx0aXBsZV9mdW5jdGlvbl9zZWN0aW9ucyk6IE5ldy4KCShoYXZlX2xvY2F0aW9uX2xpc3RzKTogTWFrZSAnYm9vbCcuCgkoYWRkX0FUX2xvY19saXN0KTogVXNlICd0cnVlJyBub3QgJzEnLgoJKGR3YXJmMm91dF9zd2l0Y2hfdGV4dF9zZWN0aW9uKTogU2V0IGhhdmVfbXVsdGlwbGVfZnVuY3Rpb25fc2VjdGlvbnMuCgkob3V0cHV0X2xvY19saXN0KTogVXNlIGhhdmVfbXVsdGlwbGVfZnVuY3Rpb25fc2VjdGlvbnMuCgkob3V0cHV0X3Jhbmdlcyk6IExpa2V3aXNlLgoJKGR3YXJmMm91dF9iZWdpbl9mdW5jdGlvbik6IFNldCBoYXZlX211bHRpcGxlX2Z1bmN0aW9uX3NlY3Rpb25zIGlmCgluZWNlc3NhcnkuCgkoZHdhcmYyb3V0X3NvdXJjZV9saW5lKTogRG9uJ3QgZmFrZSBzZXBhcmF0ZV9saW5lX2luZm9fdGFibGVfaW5fdXNlLgoJQ2hlY2sgZnVuY3Rpb25fc2VjdGlvbiByYXRoZXIgdGhhbiBERUNMX1NFQ1RJT05fTkFNRS4KCShkd2FyZjJvdXRfZmluaXNoKTogVXNlIGhhdmVfbXVsdGlwbGVfZnVuY3Rpb25fc2VjdGlvbnMuCglEb24ndCBjbGVhciBoYXZlX2xvY2F0aW9uX2xpc3RzLgoKMjAwNS0xMi0wNiAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBjb25maWcvZGFyd2luLmggKFRBUkdFVF9DWFhfQ0xBU1NfREFUQV9BTFdBWVNfQ09NREFUKTogTmV3LgoKMjAwNS0xMi0wNSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBjb25maWcvZGFyd2luLmMgKG1hY2hvcGljX3NlbGVjdF9zZWN0aW9uKTogSXQncyBub3QgZGVmaW5lZAoJYXMgd2VhayBpZiBpdCdzIG9ubHkgbWFya2VkIGFzIHdlYWtfaW1wb3J0LgoKCSogY29uZmlnL3JzNjAwMC9ob3N0LWRhcndpbi5jIChzZWd2X2hhbmRsZXIpOiBVbmJsb2NrIFNFR1Ygc28KCXdlIGRvbid0IGdvIGludG8gYW4gaW5maW5pdGUgbG9vcC4KCjIwMDUtMTEtMTUgIE1pa2UgU3R1bXAgIDxtcnNAYXBwbGUuY29tPgoKCSogYy1kZWNsLmMgKGxvb2t1cF9uYW1lX3R3byk6IEFkZC4KCSogYy10cmVlLmggKGxvb2t1cF9uYW1lX3R3byk6IExpa2V3aXNlLgoJKiBjLWNvbW1vbi5jIChoYW5kbGVfY2xlYW51cF9hdHRyaWJ1dGUpOiBVc2UgbG9va3VwX25hbWVfdHdvIGluc3RlYWQuCgkqIGNvbmZpZy9kYXJ3aW4tYy5jIChkYXJ3aW5fcHJhZ21hX3VudXNlZCk6IExpa2V3aXNlLgoKMjAwNS0xMS0xNCAgTWlrZSBTdHVtcCAgPG1yc0BhcHBsZS5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKG92ZXJyaWRlX29wdGlvbnMpOiAtbWFzbT1pbnRlbCBpc24ndAoJc3VwcG9ydGVkIG9uIGRhcndpbi4KCSogZG9jL2ludm9rZS50ZXhpIChpMzg2IGFuZCB4ODYtNjQgT3B0aW9ucyk6IExpa2V3aXNlLgoKMjAwNS0xMC0wNiAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBjb25maWcvdC1zbGliZ2NjLWRhcndpbiAoU0hMSUJfTUFQRklMRVMpOiBVc2UgJys9Jy4KCjIwMDUtMTAtMDQgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogZG9jL2ludm9rZS50ZXhpIChPcHRpb24gU3VtbWFyeSk6IENvcnJlY3Qgc3BlbGxpbmcKCW9mIC1tbWFjb3N4LXZlcnNpb24tbWluLgoKMjAwNS0wOS0zMCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBjb25maWcvdC1zbGliZ2NjLWRhcndpbiAobGliZ2NjX3NfJS5keWxpYik6IFJlbW92ZSBvbGQgc3ltbGlua3MKCWJlZm9yZSBjcmVhdGluZyBuZXcgb25lcy4gIERvIHN5bWxpbmtzIGJlZm9yZSBjcmVhdGluZyB0aGUgYWN0dWFsCgl0YXJnZXRzLgoKCSogY29uZmlnL3Qtc2xpYmdjYy1kYXJ3aW4gKGxpYmdjY19zXyUuZHlsaWIpOiBVc2UgLS1wcmludC1tdWx0aS1saWIKCXRvIHdvcmsgb3V0IHdoaWNoIG11bHRpbGlicyBhcmUgYWN0dWFsbHkgYmVpbmcgYnVpbHQuCgoyMDA1LTA5LTI4ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIE1ha2VmaWxlLmluOiBFeHBvcnQgTElQT19GT1JfVEFSR0VULCBTVFJJUF9GT1JfVEFSR0VULgoJKHN0YWdlMS1zdGFydCk6IERlbGV0ZSBvbGQgbGliZ2NjIGFuZCBsaWJ1bndpbmQgYmVmb3JlIG1vdmluZwoJYW55dGhpbmcgaW50byB0aGUgc3RhZ2UgZGlyZWN0b3J5LgoJKHN0YWdlMi1zdGFydCk6IExpa2V3aXNlLgoJKHN0YWdlMy1zdGFydCk6IExpa2V3aXNlLgoJKHN0YWdlNC1zdGFydCk6IExpa2V3aXNlLgoJKHN0YWdlcHJvZmlsZS1zdGFydCk6IExpa2V3aXNlLgoJKHN0YWdlZmVlZGJhY2stc3RhcnQpOiBMaWtld2lzZS4KCSogY29uZmlnLmdjYyAoKi0qLWRhcndpbiopOiBBdXRvbWF0aWNhbGx5IHVzZSBDUFUtc3BlY2lmaWMgZGFyd2luLmgKCWhlYWRlciBpbiB0bV9maWxlIGFuZCBDUFUtc3BlY2lmaWMgdC1kYXJ3aW4gaW4gdG1ha2VfZmlsZS4KCShpWzM0NTY3XTg2LSotZGFyd2luKik6IERvbid0IGNoYW5nZSB0bV9maWxlLgoJKHBvd2VycGMtKi1kYXJ3aW4qKTogRG9uJ3QgY2hhbmdlIHRtX2ZpbGUgb3IgdG1ha2VfZmlsZS4KCSogY29uZmlnL2Rhcndpbi5oIChSRUFMX0xJQkdDQ19TUEVDKTogUmV3cml0ZSB0byB1c2UgcHJvcGVyIGxpYmdjYwoJc2hhcmVkIGxpYnJhcnkgc3R1YiBmb3IgdGFyZ2V0IE9TIHZlcnNpb24uCgkqIGNvbmZpZy90LXNsaWJnY2MtZGFyd2luIChTSExJQl9TT0xJTkspOiBEZWxldGUuCgkoU0hMSUJfTElOSyk6IERvbid0IG1ha2UgU0hMSUJfU09MSU5LLgoJKFNITElCX0lOU1RBTEwpOiBEb24ndCBpbnN0YWxsIFNITElCX1NPTElOSy4KCShsaWJnY2Nfcy4lLmR5bGliKTogTmV3LgoJKExJQkdDQyk6IERlZmluZS4KCShpbnN0YWxsLWRhcndpbi1saWJnY2Mtc3R1YnMpOiBOZXcuCgkoSU5TVEFMTF9MSUJHQ0MpOiBOZXcgYXBwZW5kLgoJKiBjb25maWcvaTM4Ni9kYXJ3aW4tbGliZ2NjLjEwLjQudmVyOiBOZXcuCgkqIGNvbmZpZy9pMzg2L2Rhcndpbi1saWJnY2MuMTAuNS52ZXI6IE5ldy4KCSogY29uZmlnL2kzODYvdC1kYXJ3aW46IE5ldy4KCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4tbGliZ2NjLjEwLjQudmVyOiBOZXcuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLWxpYmdjYy4xMC41LnZlcjogTmV3LgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChSRUFMX0xJQkdDQ19TUEVDKTogRGVsZXRlLgoJKiBjb25maWcvcnM2MDAwL3QtZGFyd2luIChTSExJQl9WRVJQRlgpOiBEZWZpbmUuCgoyMDA1LTA5LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKICAgICAgICBQUiAyMzY2OAoJUmFkYXIgNDIzMjU2MgogICAgICAgICogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF92ZWN0b3JfaW5pdF9vbmVfdmFyKTogUmVzdG9yZQogICAgICAgIGNvbnZlcnNpb24gdG8gQ09OU1RfVkVDVE9SLgoKMjAwNS0wOC0yOSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJUmFkYXIgNDIzMjU2MgogICAgICAgICogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF92ZWN0b3JfaW5pdF9vbmVfdmFyKTogRG9uJ3QgbW9kaWZ5CiAgICAgICAgcGFydHMgb2YgJ3ZhbHMnLgoKMjAwNS0wOS0wNiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgogICAgICAgIFBSIHJ0bC1vcHRpbWl6YXRpb24vMjMwOTgKICAgICAgICBSYWRhciA0MTY4NjM1CgogICAgICAgICogY3NlLmMgKGZvbGRfcnR4X21lbSk6IENhbGwgZGVsZWdpdGltaXplX2FkZHJlc3MgdGFyZ2V0IGhvb2suCiAgICAgICAgKiBzaW1wbGlmeS1ydHguYyAoY29uc3RhbnRfcG9vbF9yZWZlcmVuY2VfcCk6IE5ldyBmdW5jdGlvbi4KICAgICAgICAqIHJ0bC5oIChjb25zdGFudF9wb29sX3JlZmVyZW5jZV9wKTogTmV3IHByb3RvdHlwZS4KICAgICAgICAqIGNvbmZpZy9pMzg2L2kzODYubWQgKHB1c2hmIHNwbGl0LCBtb3Zbc2R4XWYgc3BsaXQpOiBVc2UKICAgICAgICBjb25zdGFudF9wb29sX3JlZmVyZW5jZV9wIGluIGNvbmRpdGlvbiBhbmQKICAgICAgICBhdm9pZF9jb25zdGFudF9wb29sX3JlZmVyZW5jZSBpbiBwcmVwYXJhdGlvbiBzdGF0ZW1lbnRzLgoKMjAwNS0wOC0zMSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBkb2MvaW5zdGFsbC50ZXhpIChTcGVjaWZpYyk6IFVwZGF0ZSBjY3Rvb2xzIHZlcnNpb24gcmVxdWlyZWQKCWZvciBmdWxsIGZ1bmN0aW9uYWxpdHkuCgkqIGNvbmZpZy9kYXJ3aW4uaCAoTElOS19TUEVDKTogUGFzcyAtbW1hY29zeC12ZXJzaW9uLW1pbiB0byB0aGUKCWxpbmtlcnMgYXMgLW1hY29zeF92ZXJzaW9uX21pbi4KCjIwMDUtMDctMDcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnLmdjYyAoKi0qLWRhcndpbiopOiBPbmx5IG9uZSB0YXJnZXQtc3BlY2lmaWMgaGVhZGVyIGZpbGUKCWZvciBnZW5lcmljIGRhcndpbi4KCShwb3dlcnBjLSotZGFyd2luKik6IEFkZCB2ZXJzaW9uLXNwZWNpZmljIGhlYWRlciBmaWxlcy4KCSogY29uZmlndXJlLmluIChnY2NfQUNfQ0hFQ0tfREVDTFMpOiBBZGQgc3RydmVyc2NtcC4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGdjYy5jOiBJbmNsdWRlIHhyZWdleC5oLgoJKHZlcnNpb25fY29tcGFyZV9zcGVjX2Z1bmN0aW9uKTogTmV3LgoJKHNwZWNfZnVuY3Rpb24pOiBBZGQgdmVyc2lvbi1jb21wYXJlLgoJKHJlcGxhY2Vfb3V0ZmlsZV9zcGVjX2Z1bmN0aW9uKTogUmVmb3JtYXQgY29tbWVudC4KCShjb21wYXJlX3ZlcnNpb25fc3RyaW5ncyk6IE5ldy4KCSogY29uZmlnL2Rhcndpbi1jLmMgKHZlcnNpb25fYXNfbWFjcm8pOiBOZXcuCgkoYnVpbHRpbl9kZWZpbmUpOiBOZXcuCgkoZGFyd2luX2NwcF9idWlsdGlucyk6IE5ldy4KCSogY29uZmlnL2Rhcndpbi1wcm90b3MuaCAoZGFyd2luX2NwcF9idWlsdGlucyk6IE5ldy4KCSogY29uZmlnL2Rhcndpbi5oIChDUFBfU1BFQyk6IERvbid0IGRlZmluZSBBUFBMRV9DQyBoZXJlLgoJKExJQl9TUEVDKTogTWFrZSB1bmNvbmRpdGlvbmFsLCB1cGRhdGUgY29tbWVudC4KCShUQVJHRVRfQzk5X0ZVTkNUSU9OUyk6IERlZmluZS4KCSogY29uZmlnL2Rhcndpbi5vcHQ6IFNvcnQuCgkobW1hY29zeC12ZXJzaW9uLW1pbj0pOiBOZXcuCgkqIGNvbmZpZy9kYXJ3aW43Lmg6IERlbGV0ZS4KCSogY29uZmlnL2RhcndpbjguaDogRGVsZXRlLgoJKiBjb25maWcvaTM4Ni9kYXJ3aW4uaCAoKTogQ2FsbCBkYXJ3aW5fY3BwX2J1aWx0aW5zLgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oICgpOiBDYWxsIGRhcndpbl9jcHBfYnVpbHRpbnMuCgkoVEFSR0VUX0M5OV9GVU5DVElPTlMpOiBEZWZpbmUuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luNy5oOiBOZXcuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luOC5oOiBOZXcuCgkqIGRvYy9pbnZva2UudGV4aSAoRGFyd2luIE9wdGlvbnMpOiBBZGQgLW1tYWNvc3gtdmVyc2lvbi1taW49CgkoLW1tYWNvc3gtdmVyc2lvbi1taW4pOiBEb2N1bWVudC4KCjIwMDUtMDgtMzEgIEZhcmlib3J6IEphaGFuaWFuIDxmamFoYW5pYW5AYXBwbGUuY29tPgoKICAgICAgICAqIGV4cHIuYyAoZXhwYW5kX2V4cHJfcmVhbF8xKTogQ29tcGFyZSBzaXplIG9mIGFkZHJlc3MKICAgICAgICBtb2RlIHRvIHRhcmdldCdzIGFkZHJlc3MgbW9kZSBzaXplIGluIGRlY2lkaW5nIGV4cGFuc2lvbiBvZgogICAgICAgIHRoZSBjb25zdGFudCBhZGRyZXNzLgoKMjAwNS0wNy0xOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdC8yMjI3OAoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9leHByKTogVXNlIG1haW4gdmFyaWFudCB0eXBlIGZvciB0aGUgdGVtcAoJZGVzdGluYXRpb24gZm9yIGEgZGlzY2FyZGVkIHZvbGF0aWxlIHJlYWQuCgkqIHRyZWUtc3NhLmMgKHRyZWVfc3NhX3VzZWxlc3NfdHlwZV9jb252ZXJzaW9uXzEpOiBEb24ndCBlbGlkZQoJY2FzdHMgYmV0d2VlbiBub24tdm9pZCB0eXBlcyB0aGF0IGNoYW5nZSB2b2xhdGlsaXR5LgoKMjAwNS0wNy0yNiAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgMjI1OTEKCSogdHJlZS1zc2EtYWxpYXMuYyAobWF5X2FsaWFzX3ApOiBSZW1vdmUgc2hvcnRjdXQgdGhhdCB0ZXN0cwoJd2hldGhlciBhIHBvaW50ZXIgb2YgdHlwZSBUICogbWF5IHBvaW50IHRvIG9iamVjdHMgb2YgdHlwZSBUICouCgoyMDA1LTA3LTA4IEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogdHJlZS1pbmxpbmUuYyAoZXhwYW5kX2NhbGxfaW5saW5lKTogUHJldmVudCAnbWF5IHJlYWNoIGVuZCcKCXdhcm5pbmcgaW4gc3lzdGVtIGhlYWRlcnMuCgoyMDA1LTA2LTE2ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy90LXNsaWJnY2MtZGFyd2luIChTSExJQl9TT1ZFUlNJT04pOiBSZW5hbWUgZnJvbQoJU0hMSUJfTUlOT1IuCgkoU0hMSUJfUkVWSVNJT04pOiBEZWxldGUuCgkoU0hMSUJfVkVSU1RSSU5HKTogVXBkYXRlIHRvIGNvbXBlbnNhdGUuCgkoU0hMSUJfU09OQU1FKTogSnVzdCB1c2Ugb25lICcuJyBpbiB0aGUgbmFtZS4KCjIwMDUtMDUtMTggIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogZHVtbXktY2hlY2tzdW0uYzogTmV3LgoJKiBnZW5jaGVja3N1bS5jOiBOZXcuCgkqIGMub3B0IChwcmludF9wY2hfY2hlY2tzdW0pOiBOZXcgZmxhZy4KCSogYy1wY2guYyAoc3RydWN0IGNfcGNoX3ZhbGlkaXR5KTogTWFrZSBtdWNoIHNob3J0ZXIuCgkobm9fY2hlY2tzdW0pOiBOZXcuCgkoaG9zdF9tYWNoaW5lKTogUmVtb3ZlLgoJKHRhcmdldF9tYWNoaW5lKTogUmVtb3ZlLgoJKGdldF9pZGVudCk6IENoYW5nZSBQQ0ggdmVyc2lvbiBudW1iZXIuCgkocGNoX2luaXQpOiBXaGVuIC1mdmVyYm9zZS1hc20sIHByaW50IG91dCB0aGUgY29tcGlsZXIgZmluZ2VycHJpbnQuCglEb24ndCBwdXQgdHJpcGxldHMgb3IgdmVyc2lvbiBzdHJpbmcgaW4gUENIIHZhbGlkaXR5IGRhdGEuCglEbyBwdXQgdGhlIGNvbXBpbGVyIGNoZWNrc3VtIGluIHRoZSB2YWxpZGl0eSBkYXRhLgoJKGNfY29tbW9uX3ZhbGlkX3BjaCk6IERvbid0IGNoZWNrIHRyaXBsZXRzIG9yIHZlcnNpb24gc3RyaW5nLiAgRG8KCWNoZWNrIGNoZWNrc3VtLgoJKGNfY29tbW9uX3ByaW50X3BjaF9jaGVja3N1bSk6IE5ldy4KCSogYy1vcHRzLmMgKGNfY29tbW9uX2hhbmRsZV9vcHRpb24pOiBBZGQgT1BUX3ByaW50X3BjaF9jaGVja3N1bS4KCVByaW50IGZpbmdlcnByaW50IHdpdGggLXYuCgkqIGMtY29tbW9uLmggKGNfY29tbW9uX3ByaW50X3BjaF9jaGVja3N1bSk6IE5ldy4KCShleGVjdXRhYmxlX2NoZWNrc3VtKTogTmV3LgoJKiBNYWtlZmlsZS5pbiAoU1RBR0VNT1ZFU1RVRkYpOiBBZGQgY2MxKi1kdW1teSwgKi1jaGVja3N1bS5jLgoJKGNjMS1kdW1teSk6IE5ldyBydWxlLgoJKGNjMS1jaGVja3N1bS5jKTogTmV3IHJ1bGUuCgkoY2MxLWNoZWNrc3VtLm8pOiBOZXcgcnVsZS4KCShjYzEpOiBBZGQgY2hlY2tzdW0gc3VwcG9ydC4KCShidWlsZC9nZW5jaGVja3N1bSk6IE5ldy4KCShidWlsZC9nZW5jaGVja3N1bS5vKTogTmV3LgoJKGR1bW15LWNoZWNrc3VtLm8pOiBOZXcuCgkoZ2Vub2JqbmFtZXMpOiBBZGQgZ2VuY2hlY2tzdW0uby4KCShtb3N0bHljbGVhbik6IFJlbW92ZSAqLWNoZWNrc3VtLmMuCgkoZ251Y29tcGFyZSk6IEFkZCBsaWJnY2MgdG8gbGlzdCBvZiBkaXJlY3RvcmllcyBjaGVja2VkLgoJTWFrZSBjb21wYXJpc29uIHByb2JsZW1zIGluIGxpYmdjYy8gYW5kIHdpdGggY2hlY2tzdW0gZmlsZXMgb25seQoJYmUgd2FybmluZ3MuCgkqIGRvYy9pbnZva2UudGV4aSAoUHJlY29tcGlsZWQgSGVhZGVycyk6IFJlbW92ZSBjYXV0aW9uLgoJRG9jdW1lbnQgdGhhdCBpdCBtdXN0IGJlIHRoZSBleGFjdCBzYW1lIGJpbmFyeS4gIEFkZCBhIGZldwoJa25vd24tc2FmZSBmbGFncyB0byB0aGUgbGlzdC4KCjIwMDUtMDYtMTMgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogTWFrZWZpbGUuaW4gKGluc3RhbGwtbWFuKTogRG9lc24ndCByZWFsbHkgZGVwZW5kIG9uIGluc3RhbGxkaXJzLgoJKHZhcmlvdXMgcnVsZXMgZm9yIGluc3RhbGxpbmcgbWFucGFnZXMpOiBEbyBkZXBlbmQgb24gaW5zdGFsbGRpcnMuCgoyMDA1LTA2LTAzICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uaCAoTElOS19TUEVDKTogUGFzcyAtc3lzbGlicm9vdCB0byBsaW5rZXIKCXdoZW4gLWlzeXNyb290IHBhc3NlZC4KCjIwMDUtMDctMDcgIFJlbGVhc2UgTWFuYWdlcgoKCSogR0NDIDQuMC4xIHJlbGVhc2VkLgoKMjAwNS0wNy0wMSAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWRvbS5jIChmaW5kX2VxdWl2YWxlbnRfZXF1YWxpdHlfY29tcGFyaXNvbik6IERvIG5vdAoJYSBlbGltaW5hdGUgdHlwZSBjb252ZXJzaW9uIHdoaWNoIGZlZWRzIGFuIGVxdWFsaXR5IGNvbXBhcmlzb24KCWlmIHRoZSBvcmlnaW5hbCB0eXBlIG9yIGVpdGhlciBvcGVyYW5kIGluIHRoZSBjb21wYXJpc29uIGlzIGEKCWZ1bmN0aW9uIHBvaW50ZXIuCgoyMDA1LTA2LTMwICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIHRhcmdldC8yMjI2MAoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAoZW1pdF9hbmRfcHJlc2VydmUpOiBBZGQgMm5kIHJlZ2lzdGVyLgoJUHJlc2VydmUgdGhlIDJuZCByZWdpc3RlciB0b28sIGlmIHByZXNlbnQuCgkoc3BhcmNfb3V0cHV0X21pX3RodW5rKSA8UElDIGNhc2U+OiBQcmVzZXJ2ZSB0aGUgUElDIHJlZ2lzdGVyIHRvby4KCUFkanVzdCBjYWxsIHRvIGVtaXRfYW5kX3ByZXNlcnZlLgoKMjAwNS0wNi0yNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiAyMjE3MQoJKiB0cmVlLXNzYS1vcGVyYW5kcyAoZ2V0X2V4cHJfb3BlcmFuZHMpOiBDaGVjayBzX2FubiBmb3IgTlVMTAoJYmVmb3JlIHVzZS4KCjIwMDUtMDYtMjMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJQmFja3BvcnQ6CgkyMDA1LTA2LTEzICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoJUFIgbWlkZGxlLWVuZC8yMTk4NQoJKiBmb2xkLWNvbnN0LmMgKHNwbGl0X2FkZHJlc3NfdG9fY29yZV9hbmRfb2Zmc2V0KTogQWx3YXlzIHJldHVybgoJdGhlIGFkZHJlc3Mgb2YgdGhlIGJhc2Ugb2JqZWN0LgoKCVBSIDIyMDAwCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGdldF9leHByX29wZXJhbmRzKTogQ2hlY2sgdGhlIHZvbGF0aWxpdHkgb2YKCXRoZSBGSUVMRF9ERUNMIGFuZCBzZXQgc19hbm4tPmhhc192b2xhdGlsZV9vcHMgYWNjb3JkaW5nbHkuCgoyMDA1LTA2LTIwICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBjb25maWcvaTM4Ni9uZXR3YXJlLWxpYmdjYy5kZWY6IFVwZGF0ZSBjb3B5cmlnaHQuCgkqIGNvbmZpZy9pMzg2L25ldHdhcmUtbGliZ2NjLmV4cCAoX19kaXZkYzMsIF9fZGl2c2MzLCBfX2RpdnhjMywKCV9fbXVsZGMzLCBfX211bHNjMywgX19tdWx4YzMsIF9fcG93aWRmMiwgX19wb3dpc2YyLCBfX3Bvd2l4ZjIpOiBBZGQuCgkqIGNvbmZpZy9pMzg2L25ldHdhcmUuYyAoZ2VuX3N0ZGNhbGxfZGVjb3JhdGlvbiwKCWdlbl9mYXN0Y2FsbF9kZWNvcmF0aW9uKTogTWVyZ2UgaW50byAuLi4KCShnZW5fc3RkY2FsbF9vcl9mYXN0Y2FsbF9kZWNvcmF0aW9uKTogLi4uIHRoaXMuIEFkanVzdCB0byBtYXRjaAoJV2luTlQncyBjaGFuZ2VzLgoJKGdlbl9yZWdwYXJtX3ByZWZpeCk6IEFkanVzdCB0byBtYXRjaCBpMzg2X25sbV9lbmNvZGVfc2VjdGlvbl9pbmZvLgoJKGkzODZfbmxtX2VuY29kZV9zZWN0aW9uX2luZm8pOiBBZGp1c3QgdG8gbWF0Y2ggV2luTlQncyBjaGFuZ2VzLgoJKiBjb25maWcvaTM4Ni90LW53bGQgKFNITElCX0xJTkspOiBBbHNvIGNyZWF0ZSBsaWJnY2MuaW1wIGFsaWFzIG9mCglsaWJnY2Nfcy5pbXAuIFVzZSAnZXhwcicgcmF0aGVyIHRoYW4gJCgoKSkgc2hlbGwgZXhwcmVzc2lvbnMuCgkqIGd0aHItbmtzLmggKF9fZ3RocmVhZF9vYmpjX211dGV4X2FsbG9jYXRlKTogS2lsbCBhbm90aGVyIGR1YmlvdXMKCXVzZSBvZiBOWF9NVVRFWF9SRUNVUlNJVkUuCgoyMDA1LTA2LTE3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzIxODUwCgkqIHRyZWUuYyAoZ2V0X3Vud2lkZW5lZCk6IFN0b3AgYXQgTk9QX0VYUFIvQ09OVkVSVF9FWFBSIHRoYXQgY29udmVydAoJZnJvbSB2ZWN0b3IgdHlwZXMuCgoyMDA1LTA2LTE0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8yMjA0MwoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9pbml0X2NvbnN0cnVjdG9yKTogSWYgbnVtX3R5cGVfZWxlbWVudHMgPCAwCglmb3IgYSBjb25zdGFudC1zaXplZCBvYmplY3QsIHNldCBjbGVhcmVkIGFzIHdlbGwuCgoyMDA1LTA2LTE0ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIHRhcmdldC8yMDMwMQoJKiBjb25maWcvc3BhcmMvc29sMi5oIChBU01fR0VORVJBVEVfSU5URVJOQUxfTEFCRUwpOiBFbWl0Cgl1bnNpZ25lZCBpbmRleCBudW1iZXJzLgoKMjAwNS0wNi0wOCAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8yMTE3MQoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChmaW5kX2ludGVyZXN0aW5nX3VzZXNfYWRkcmVzcyk6IERvIG5vdAoJcmVjb3JkIGFkZHJlc3MgdXNlcyBpZiB0aGUgcmVmZXJlbmNlIGlzIHZvbGF0aWxlLgoKMjAwNS0wNi0wOCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0YXJnZXQvMjE4ODkKCSogY29uZmlnL3NwYXJjL3NvbDIuaCAoQVNNX09VVFBVVF9EV0FSRl9EVFBSRUwpOiBVbmRlZmluZS4KCSogY29uZmlnL3NwYXJjL3NvbDItZ2FzLmggKEFTTV9PVVRQVVRfRFdBUkZfRFRQUkVMKTogUmVkZWZpbmUuCgoyMDA1LTA2LTA4ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0cmVlLW9wdC8xOTc2OAoJKiB0cmVlLXNzYS1kc2UuYzogUmV2ZXJ0IGFjY2lkZW50YWwgY29tbWl0dGVkIHBhdGNoLgoKMjAwNS0wNi0wNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBydGwtb3B0LzIxNTI4CgkqIHJ0bGFuYWwuYyAocmVnX292ZXJsYXBfbWVudGlvbmVkX3ApIDxNRU0+OiBIYW5kbGUgJ0UnIGZvcm1hdHMuCgoyMDA1LTA2LTA3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMjE4NDcKCSogdHJlZS1zc2EtZGNlLmMgKG1hcmtfc3RtdF9pZl9vYnZpb3VzbHlfbmVjZXNzYXJ5KTogV2l0aAoJLWZub24tY2FsbC1leGNlcHRpb25zLCBhbHNvIG1hcmsgc3RhdGVtZW50cyBpbmhlcmVudGx5CgluZWNlc3NhcnkgaWYgdGhleSBtYXkgdGhyb3cuCgoyMDA1LTA2LTA2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGludGwuaCAoR18pOiBOZXcgbWFjcm8uCgkqIHJ0bC1lcnJvci5jIChlcnJvcl9mb3JfYXNtLCB3YXJuaW5nX2Zvcl9hc20pOiBVc2UgZ21zZ2lkCglpbnN0ZWFkIG9mIG1zZ2lkIGZvciBhcmd1bWVudCBuYW1lLgoJKiB0cmVlLXNzYS5jICh3YXJuX3VuaW5pdCk6IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC1jLmMgKFNZTlRBWF9FUlJPUik6IExpa2V3aXNlLgoJKiBjb25maWcvZGFyd2luLWMuYyAoQkFEKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9jNHgvYzR4LWMuYyAoQkFEKTogTGlrZXdpc2UuCgkqIGMtcHJhZ21hLmMgKEdDQ19CQUQsIEdDQ19CQUQyKTogTGlrZXdpc2UuCgkqIGMtZXJyb3JzLmMgKHBlZHdhcm5fYzk5LCBwZWR3YXJuX2M5MCk6IExpa2V3aXNlLgoJKiBjLWNvbW1vbi5jIChjX3BhcnNlX2Vycm9yKTogTGlrZXdpc2UuCgkqIGRpYWdub3N0aWMuYyAoZGlhZ25vc3RpY19zZXRfaW5mbywgdmVyYmF0aW0sIGluZm9ybSwgd2FybmluZywKCXBlZHdhcm4sIGVycm9yLCBzb3JyeSwgZmF0YWxfZXJyb3IsIGludGVybmFsX2Vycm9yKTogTGlrZXdpc2UuCgkoZm5vdGljZSk6IFVzZSBjbXNnaWQgaW5zdGVhZCBvZiBtc2dpZCBmb3IgYXJndW1lbnQgbmFtZS4KCSogZ2Nvdi5jIChmbm90aWNlKTogTGlrZXdpc2UuCgkqIHByb3RvaXplLmMgKG5vdGljZSk6IExpa2V3aXNlLgoJKiBmaW5hbC5jIChvdXRwdXRfb3BlcmFuZF9sb3NzYWdlKTogTGlrZXdpc2UuCgkqIGdjYy5jIChmYXRhbCwgbm90aWNlKTogTGlrZXdpc2UuCgkoZXJyb3IpOiBVc2UgZ21zZ2lkIGluc3RlYWQgb2YgbXNnaWQgZm9yIGFyZ3VtZW50IG5hbWUuCgkqIGNvbGxlY3QyLmMgKG5vdGljZSwgZmF0YWxfcGVycm9yLCBmYXRhbCk6IFVzZSBjbXNnaWQgaW5zdGVhZAoJb2YgbXNnaWQgZm9yIGFyZ3VtZW50IG5hbWUuCgkoZXJyb3IpOiBVc2UgZ21zZ2lkIGluc3RlYWQgb2YgbXNnaWQgZm9yIGFyZ3VtZW50IG5hbWUuCgkqIGMtZGVjbC5jIChsb2NhdGVfb2xkX2RlY2wsIGltcGxpY2l0X2RlY2xfd2FybmluZyk6IFVzZSBHXygpCglpbnN0ZWFkIG9mIE5fKCkuCgkqIGMtdHlwZWNrLmMgKHJlYWRvbmx5X2Vycm9yLCBjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogTGlrZXdpc2UuCgkqIHRyZWUtaW5saW5lLmMgKGlubGluZV9mb3JiaWRkZW5fcF8xKTogTGlrZXdpc2UuCgkqIEFCT1VULUdDQy1OTFM6IFJlcXVpcmUgZ2V0dGV4dCAwLjE0LjUgb3IgbGF0ZXIuICBNZW50aW9uIHRoZSBuZXcKCWNvbnZlbnRpb25zIGZvciBtYXJraW5nIHRyYW5zbGF0aW9ucy4KCSogZG9jL2luc3RhbGwudGV4aTogTWVudGlvbiBnZXR0ZXh0IDAuMTQuNSBvciBsYXRlciByZXF1aXJlbWVudC4KCjIwMDUtMDYtMDYgIFNlYmFzdGlhbiBQb3AgPHBvcEBjcmkuZW5zbXAuZnI+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMjA3NDIKCSogcGFyYW1zLmRlZiAoUEFSQU1fU0NFVl9NQVhfRVhQUl9TSVpFKTogTmV3IHBhcmFtZXRlciB3aXRoCglkZWZhdWx0IHZhbHVlIDIwLgoJKiB0cmVlLWNocmVjLmM6IERlcGVuZCBvbiBwYXJhbXMuaC4gIFJlcGxhY2UgYnVpbGQgd2l0aCBidWlsZE4sCglhbmQgZm9sZCBidWlsZCB3aXRoIGZvbGRfYnVpbGROLgoJKGNocmVjX2ZvbGRfcGx1c18xKTogRmFpbCB3aXRoIGEgY2hyZWNfZG9uX2tub3cgd2hlbiB0aGUgc2l6ZSBvZgoJdGhlIGV4cHJlc3Npb24gZXhjZWVkcyBQQVJBTV9TQ0VWX01BWF9FWFBSX1NJWkUuCgkodHJlZV9jb250YWluc19jaHJlY3MpOiBDb21wdXRlIGFuIGVzdGltYXRpb24gb2YgdGhlIHNpemUgb2YgdGhlCglnaXZlbiBleHByZXNzaW9uLgoJKiB0cmVlLWNocmVjLmggKHRyZWVfY29udGFpbnNfY2hyZWNzKTogTW9kaWZ5IGl0cyBkZWNsYXJhdGlvbi4KCSh0cmVlX2RvZXNfbm90X2NvbnRhaW5fY2hyZWNzKTogVXBkYXRlIHRoZSB1c2Ugb2YgdHJlZV9jb250YWluc19jaHJlY3MuCgkqIHRyZWUtc2NhbGFyLWV2b2x1dGlvbi5jIChzaW1wbGVfaXYpOiBEaXR0by4KCSogZG9jL2ludm9rZS50ZXhpIChzY2V2LW1heC1leHByLXNpemUpOiBEb2N1bWVudGVkLgoKMjAwNS0wNi0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCiAgICAgICAgUFIgdGFyZ2V0LzIxODg4CiAgICAgICAgKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoYWxwaGFfYWxpZ25faW5zbnMpOiBEb24ndCBpbnNlcnQgbm9wcwogICAgICAgIHVudGlsIHdlJ3ZlIHBhc3NlZCBpbml0aWFsIGxkZ3AuCgoyMDA1LTA2LTA0ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWcvcnM2MDAwL2FpeDUyLmggKEFTTV9DUFVfU1BFQyk6IEFkZCBwb3dlcjUuCgoyMDA1LTA2LTA0ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjLzIxODczCgkqIGMtdHlwZWNrLmMgKHB1c2hfaW5pdF9sZXZlbCk6IERvbid0IHBvcCBsZXZlbHMgd2l0aG91dCBicmFjZXMgaWYKCWltcGxpY2l0ID09IDEuCgoyMDA1LTA2LTAzICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjLzIxODc5CgkqIGMtZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IFJlc3RvcmUgbGFiZWxfY29udGV4dF9zdGFja19zZSBhbmQKCWxhYmVsX2NvbnRleHRfc3RhY2tfdm0gIGlmIHJldHVybmluZyB3aXRoIGFuIGVycm9yLgoKMjAwNS0wNi0wMyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBjb25maWd1cmUuYWM6IENoZWNrIGRlY2xhcmF0aW9uIGZvciBhc3ByaW50ZiwgbmVlZGVkIGJ5CglsaWJpYmVydHkuaC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IExpa2V3aXNlLgoKMjAwNS0wNi0wMyAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiB0cmVlLmMgKGJ1aWxkX2NvbW1vbl9idWlsdGluX25vZGVzKTogRml4IHRoZSByZXR1cm4gdHlwZSBvbgoJX19idWlsdGluX21lbWNtcC4KCjIwMDUtMDYtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIGMvMjE1MzYKCVBSIGMvMjA3NjAKCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfZGVjbF9leHByKTogQ2FsbCBnaW1wbGlmeV90eXBlX3NpemVzCglvbiB2YXJpYWJsZSBzaXplcyB0eXBlcyBpZiBhIGRlY2wgaXMgYSBwb2ludGVyIHRvIGEgVkxBLgoJKGdpbXBsaWZ5X3R5cGVfc2l6ZXMpOiBIYW5kbGUgUE9JTlRFUl9UWVBFIGFuZCBSRUZFUkVOQ0VfVFlQRS4KCUNhbGwgZ2ltcGxpZnlfdHlwZV9zaXplcyBvbiBhZ2dyZWdhdGUgZmllbGRzLiAgUHJldmVudCBpbmZpbml0ZQoJcmVjdXJzaW9uLgoKCSogY29uZmlnL2kzODYveG1taW50cmluLmggKF9tbV9zZXR6ZXJvX3BzLCBfbW1fc2V0X3NzLCBfbW1fc2V0MV9wcywKCV9tbV9zZXRfcHMsIF9tbV9zZXRyX3BzKTogQWRkIF9fZXh0ZW5zaW9uX18uCgkqIGNvbmZpZy9pMzg2L2VtbWludHJpbi5oIChfbW1fc2V0X3NkLCBfbW1fc2V0MV9wZCwgX21tX3NldF9wZCwKCV9tbV9zZXRyX3BkLCBfbW1fc2V0emVyb19wZCwgX21tX3NldF9lcGk2NHgsIF9tbV9zZXRfZXBpNjR4LAoJX21tX3NldF9lcGkzMiwgX21tX3NldF9lcGkxNiwgX21tX3NldF9lcGk4LCBfbW1fc2V0emVyb19zaTEyOCk6CglMaWtld2lzZS4KCShfbW1fY2xmbHVzaCk6IERvbid0IHVzZSByZXR1cm4gaW4gdm9pZCBmdW5jdGlvbi4KCgkqIGNvbmZpZy9pMzg2L2VtbWludHJpbi5oIChfbW1fY2FzdHBkX3BzLCBfbW1fY2FzdHBkX3NpMTI4LAoJX21tX2Nhc3Rwc19wZCwgX21tX2Nhc3Rwc19zaTEyOCwgX21tX2Nhc3RzaTEyOF9wcywgX21tX2Nhc3RzaTEyOF9wZCk6CglVc2UgX19pbmxpbmUgaW5zdGVhZCBvZiBpbmxpbmUuCgoyMDA1LTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjIChIQVZFX0FTX0pTUkRJUkVDVF9SRUxPQ1MpOiBOZXcuCgkqIGNvbmZpZy5pbiwgY29uZmlndXJlOiBSZWJ1aWxkLgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAocHJpbnRfb3BlcmFuZCk6IEFkZCAnaicuCgkqIGFscGhhLm1kIChkaXZtb2RzaV9pbnRlcm5hbF9lcl8xKTogVXNlIGl0LgoJKGRpdm1vZGRpX2ludGVybmFsX2VyXzEpOiBMaWtld2lzZS4KCjIwMDUtMDUtMzEgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMjE4MTcKCSogdHJlZS1zc2EtbG9vcC1pbS5jIChmb3JfZWFjaF9pbmRleCk6IEhhbmRsZSBWRUNUT1JfQ1NULgoKMjAwNS0wNS0zMSAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgbWlkZGxlLWVuZC8yMDkzMQoJUFIgbWlkZGxlLWVuZC8yMDk0NgoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfY2hlY2tzdW1fdHJlZSk6IENvcHkgdHlwZXMgYWxzbyBpZgoJVFlQRV9DT05UQUlOU19QTEFDRUhPTERFUl9JTlRFUk5BTCBpcyBzZXQuCglEb24ndCBjYWxsIGZvbGRfY2hlY2tzdW1fdHJlZSBmb3IgVFJFRV9MSVNUJ3MgVFJFRV9DSEFJTgoJZmlyc3QuCglUYWlsIHJlY3Vyc2UgVFJFRV9MSVNUJ3MgVFJFRV9DSEFJTi4KCjIwMDUtMDUtMzEgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBkb2MvaW5zdGFsbC50ZXhpIChzcGFyYy1zdW4tc29sYXJpczIqKTogVXBkYXRlIG5vdGUKCWFib3V0IFN1biBidWcgNDkxMDEwMS4KCShzcGFyYy1zdW4tc29sYXJpczIuNyk6IERvY3VtZW50IGJvb3RzdHJhcAoJZmFpbHVyZSB3aXRoIFN1biBXb3JrU2hvcCA2IDk5LzA4LzE4IGFzLgoKMjAwNS0wNS0yNyAgUmljaGFyZCBHdWVudGhlciAgPHJndWVudGhAZ2NjLmdudS5vcmc+CgoJUFIgbWlkZGxlLWVuZC8yMTU5NQoJKiBidWlsdGlucy5jIChmb2xkX2J1aWx0aW5fY29uc3RhbnRfcCk6IEhhbmRsZQoJJiJzdHJpbmcgY3N0IlswXSBhcyBjb25zdGFudC4KCjIwMDUtMDUtMjYgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCglCYWNrcG9ydCBmcm9tIG1haW5saW5lOgoJMjAwNS0wNS0yNiAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBhaXJzLmNvbT4KCSogcmVsb2FkMS5jICh2ZXJpZnlfaW5pdGlhbF9lbGltX29mZnNldHMpOiBBZGQgYnJhY2VzIHRvIGF2b2lkCgloYXZpbmcgYSBkZWNsYXJhdGlvbiBhZnRlciBhIHN0YXRlbWVudC4KCjIwMDUtMDUtMjYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8yMTcxNgoJKiByZWctc3RhY2suYyAoc3dhcF9ydHhfY29uZGl0aW9uKTogRG9uJ3QgY3Jhc2ggaWYgJWF4IHVzZXIgd2FzIG5vdAoJZm91bmQgaW4gdGhlIGJhc2ljIGJsb2NrIGFuZCBsYXN0IGluc24gaW4gdGhlIGJhc2ljIGJsb2NrIGlzIG5vdAoJSU5TTl9QLiAgUmVtb3ZlIGV4cGxpY2l0IHVuc3BlYyBudW1iZXJzIHRoYXQgYXJlIG5vIGxvbmdlciB2YWxpZAoJZnJvbSBjb21tZW50cy4KCjIwMDUtMDUtMjYgIFJhbGYgQ29yc2VwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCSogY29uZmlnL3JzNjAwMC90LXJ0ZW1zOiBSZW1vdmUgcm9lIG11bHRpbGliIHZhcmlhbnQuCgoyMDA1LTA1LTI1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzIxNDkyCgkqIGNmZ2NsZWFudXAuYyAodHJ5X2Nyb3NzanVtcF90b19lZGdlKTogdXBkYXRlX2ZvcndhcmRlcl9mbGFnIGZvcgoJc3JjMiBpZiBzcmMyIGhhcyBiZWVuIHNwbGl0LgoKMjAwNS0wNS0yNSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogcmVsb2FkMS5jICh2ZXJpZnlfaW5pdGlhbF9lbGltX29mZnNldHMpOiBSZXR1cm4gYm9vbGVhbiBzdGF0dXMKCWluc3RlYWQgb2YgYWJvcnRpbmcuCgkocmVsb2FkKTogQWRhcHQgdmVyaWZ5X2luaXRpYWxfZWxpbV9vZmZzZXRzIGNhbGwgc2l0ZS4gIFJlc3RhcnQKCW1haW4gbG9vcCBpZiBzb21lIGluaXRpYWwgZWxpbWluYXRpb24gb2Zmc2V0cyBjaGFuZ2VkLgoKMjAwNS0wNS0yNCAgS2F6dWhpcm8gSW5hb2thIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJKiBjb25maWcvbTMyci9tMzJyLmMgKG0zMnJfZXhwYW5kX2Jsb2NrX21vdmUpOiAgUmV0dXJuIDAgaWYKCW5vdGhpbmcgd2FzIGRvbmUuCgkqIGNvbmZpZy9tMzJyL20zMnIubWQgKG1vdm1lbXNpKTogIElmIG0zMnJfZXhwYW5kX2Jsb2NrX21vdmUgZGlkCglub3RoaW5nIHRoZW4gRkFJTC4KCSogY29uZmlnL20zMnIvbTMyci9tMzJyLXByb3Rvcy5oICAobTMycl9leHBhbmRfYmxvY2tfbW92ZSk6IFVwZGF0ZQoJcHJvdG90eXBlLgoKMjAwNS0wNS0yMyAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbDFAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9vcHRpbWl6ZV9wcm9sb2d1ZSk6IERvbid0IHJlcGxhY2UgYW4gaW5zbgoJc2F2aW5nIGxlc3MgcmVnaXN0ZXJzIHRoYW4gdGhlIHJlcGxhY2VtZW50LgoKMjAwNS0wNS0yMyAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogZ3Roci1wb3NpeC5oIChfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X2luaXRfZnVuY3Rpb24pOiBBZGQKCW1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudC4KCjIwMDUtMDUtMjEgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIG1pZGRsZS1lbmQvMjEzMzEKCVBSIHRyZWUtb3B0LzIxMjkzCglCYWNrcG9ydCBmcm9tIHRoZSBtYWlubGluZToKCTIwMDUtMDMtMTQgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgkqIHRyZWUtY2ZnLmMgKGZpbmRfdGFrZW5fZWRnZV9jb25kX2V4cHIpOiBVc2UgemVyb19wIGluc3RlYWQgb2YKCWludGVnZXJfemVyb3AuCgkqIHRyZWUtZ2ltcGxlLmMgKGlzX2dpbXBsZV9taW5faW52YXJpYW50KTogQ29uc2lkZXIgb3ZlcmZsb3dlZAoJY29uc3RhbnRzIGludmFyaWFudC4KCjIwMDUtMDUtMTkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzIxMzkwCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jIChhbHBoYV9lbWl0X2NvbmRpdGlvbmFsX2JyYW5jaCk6IE1vdmUKCVRGbW9kZSBjb2RlIHN3YXBwaW5nIC4uLgoJKGFscGhhX2VtaXRfeGZsb2F0aW5nX2NvbXBhcmUpOiAuLi4gaGVyZS4KCShhbHBoYV9lbWl0X3NldGNjKTogVXBkYXRlIHRvIG1hdGNoLgoJKGFscGhhX2xvb2t1cF94ZmxvYXRpbmdfbGliX2Z1bmMpOiBBc3NlcnQgVEFSR0VUX0hBU19YRkxPQVRJTkdfTElCUy4KCjIwMDUtMDUtMTkgIEppZSBaaGFuZyAgPGppZS56aGFuZ0BhbmFsb2cuY29tPgoJICAgIEJlcm5kIFNjaG1pZHQgIDxiZXJuZC5zY2htaWR0QGFuYWxvZy5jb20+CgoJKiBjb25maWcvYmZpbi9iZmluLmMgKGJyYW5jaF9kZXN0KTogQWRkIGNvbW1lbnQgd2h5IGl0J3MKCW5lY2Vzc2FyeS4KCSogY29uZmlnL2JmaW4vYmZpbi5tZCAoYXR0ciAibGVuZ3RoIiBkZWZhdWx0KTogQ2hhbmdlIHRoZSBvZmZzZXQgb2YKCWZvcndhcmQgY29uZGl0aW9uYWwgYnJhbmNoIG9mIGxlbmd0aCA0IGZyb20gNDA5NiB0byA0MDkyLgoKMjAwNS0wNS0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMjE2NTcKCSogY29uZmlnL2lhNjQvaWE2NC5jIChpYTY0X2V4cGFuZF90bHNfYWRkcmVzcyk6IFJlbW92ZSBleHRyYQoJbWVtb3J5IGluZGlyZWN0aW9uIGluIGxvY2FsLWR5bmFtaWMgY2FzZS4KCjIwMDUtMDUtMTggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzIxNjMyCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaWE2NF9leHRyYV9jb25zdHJhaW50KSA8J1QnPjogVXNlCglzbWFsbF9hZGRyX3N5bWJvbGljX29wZXJhbmQuCgoyMDA1LTA1LTE4ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogY29uZmlnL3NwYXJjL3NvbDIuaCAoVEFSR0VUX0RFRkFVTFQpOiBBZGQgYmFjayBNQVNLX0FQUF9SRUdTLgoJKiBjb25maWcvc3BhcmMvc29sMi02NC5oIChUQVJHRVRfREVGQVVMVCk6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvc3AtZWxmLmggKFRBUkdFVF9ERUZBVUxUKTogRGVsZXRlLgoJKiBkb2MvaW52b2tlLnRleGkgKFNQQVJDIG9wdGlvbnMpOiBEb2N1bWVudCB0aGF0IC1tYXBwLXJlZ3MgaXMKCXRoZSBkZWZhdWx0IG9uIFNvbGFyaXMgdG9vLgoKMjAwNS0wNS0xNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMjE2MTAKCSogYy10eXBlY2suYyAoZGVjbF9jb25zdGFudF92YWx1ZV9mb3JfYnJva2VuX29wdGltaXphdGlvbik6IElmIG5vdAoJcmV0dXJuaW5nIERFQ0wsIGNhbGwgdW5zaGFyZV9leHByLgoKCSogdmFyYXNtLmMgKHN0cnVjdCBjb25zdGFudF9kZXNjcmlwdG9yX3RyZWUpOiBBZGQgaGFzaCBmaWVsZC4KCShjb25zdF9kZXNjX2hhc2gpOiBKdXN0IHJldHVybiBoYXNoIGZpZWxkLgoJKGNvbnN0X2Rlc2NfZXEpOiBJZiBoYXNoIHZhbHVlcyBhcmUgZGlmZmVyZW50LCByZXR1cm4gMCBpbW1lZGlhdGVseS4KCShvdXRwdXRfY29uc3RhbnRfZGVmKTogQ29tcHV0ZSBoYXNoIGZpZWxkIG9mIHRlbXBvcmFyeSBrZXksIHVzZQoJaHRhYl9maW5kX3Nsb3Rfd2l0aF9oYXNoIGluc3RlYWQgb2YgaHRhYl9maW5kX3Nsb3QuICBTZXQgaGFzaCBpbgoJbmV3bHkgYnVpbHQgY29uc3RhbnQgZGVzY3JpcHRvci4KCShsb29rdXBfY29uc3RhbnRfZGVmKTogQ29tcHV0ZSBoYXNoIGZpZWxkIG9mIHRlbXBvcmFyeSBrZXksIHVzZQoJaHRhYl9maW5kX3dpdGhfaGFzaCBpbnN0ZWFkIG9mIGh0YWJfZmluZC4KCjIwMDUtMDUtMTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzIxNTU2CgkqIGNvbmZpZy9pYTY0L2lhNjQubWQgKGxvYWRfZHRwbW9kLCBsb2FkX2x0b2ZmX2R0cG1vZCwgbG9hZF9kdHByZWwsCglsb2FkX2R0cHJlbDY0LCBsb2FkX2R0cHJlbDIyLCBsb2FkX2R0cHJlbF9nZCwgbG9hZF9sdG9mZl9kdHByZWwsCglhZGRfZHRwcmVsLCBhZGRfZHRwcmVsMTQsIGFkZF9kdHByZWwyMiwgbG9hZF90cHJlbCwgbG9hZF90cHJlbDY0LAoJbG9hZF90cHJlbDIyLCBsb2FkX3RwcmVsX2llLCBsb2FkX2x0b2ZmX3RwcmVsLCBhZGRfdHByZWwsIGFkZF90cHJlbDE0LAoJYWRkX3RwcmVsMjIpOiBSZW1vdmUgbW9kZSBmcm9tIHN5bWJvbGljIG9wZXJhbmQuCgoyMDA1LTA1LTE1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCUJhY2twb3J0OgoJMjAwNS0wNS0wOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCVBSIDE4NjU1CgkqIGR3YXJmMm91dC5jIChvdXRwdXRfY2FsbF9mcmFtZV9pbmZvKTogVXNlIERXQVJGMl9GUkFNRV9SRUdfT1VUCgliZWZvcmUgb3V0cHV0dGluZyBEV0FSRl9GUkFNRV9SRVRVUk5fQ09MVU1OLgoKMjAwNS0wNS0xNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIHRhcmdldC8yMTU1MQoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZXhwYW5kX21vdmUpOiBEb24ndCBhZGQgYWRkZW5kIHR3aWNlLgoKMjAwNS0wNS0xMyAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCVBSIG1pZGRsZS1lbmQvMjEyMzcKCSogZG9qdW1wLmMgKGRvX2p1bXAsIE1JTlVTX0VYUFIpOiBCdWlsZCBORV9FWFBSIGFuZCBmYWxsIHRocm91Z2gKCXRvIE5FX0VYUFIgY2FzZS4KCjIwMDUtMDUtMTMgIFJpY2hhcmQgR3VlbnRoZXIgIDxyZ3VlbnRoQGdjYy5nbnUub3JnPgoKCVJldmVydDoKCTIwMDUtMDUtMTEgIFJpY2hhcmQgR3VlbnRoZXIgIDxyZ3VlbnRoQGdjYy5nbnUub3JnPgoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfaW5kaXJlY3RfcmVmXzEpOiBBdm9pZCByZW1vdmluZwoJTk9QX0VYUFJzIHdpdGggdHlwZSBxdWFsaWZpZXJzIGxpa2UgY29uc3QuCgoyMDA1LTA1LTEyICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCglGaXggUFIgdHJlZS1vcHRpbWl6YXRpb24vMjE1MzIKCSogdHJlZS1zc2EtcHJlLmMgKGNyZWF0ZV9leHByZXNzaW9uX2J5X3BpZWNlcyk6IHN0bXQKCW5lZWRzIHRvIGdvIG9udG8gdGhlIGluc2VydGVkX2V4cHJzIGxpc3QuCgoyMDA1LTA1LTEyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8yMTQxMgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKFRBUkdFVF9DQU5OT1RfRk9SQ0VfQ09OU1RfTUVNKTogTmV3LgoJKGlhNjRfY2Fubm90X2ZvcmNlX2NvbnN0X21lbSk6IE5ldy4KCSh0bHNfc3ltYm9saWNfb3BlcmFuZF90eXBlKTogTmV3LgoJKGlhNjRfbGVnaXRpbWF0ZV9jb25zdGFudF9wKTogTmV3LgoJKGlhNjRfZXhwYW5kX2xvYWRfYWRkcmVzcyk6IFJldHVybiB0cnVlIG9uIHN1Y2Nlc3MuICBJbXByb3ZlCgljaGVja3MgZm9yIHdoZW4gd2Ugc2hvdWxkIG5vdCBzcGxpdC4KCShpYTY0X2V4cGFuZF90bHNfYWRkcmVzcyk6IE5ldyBhZGRlbmQgb3BlcmFuZC4gIERpc3RyaWJ1dGUgaXQKCWFzIGFwcHJvcHJpYXRlIHRvIHRoZSB0bHNfa2luZC4gIERlbGF5IHJlZmVyZW5jaW5nIGdwLgoJKGlhNjRfZXhwYW5kX21vdmUpOiBTcGxpdCBzeW1ib2xpYyBhZGRlbmQgYXMgbmVjZXNzYXJ5LiAgSGFuZGxlCgl0bHMgc3ltYm9scyB3aXRoIGFkZGVuZHMuCgkqIGNvbmZpZy9pYTY0L2lhNjQtcHJvdG9zLmg6IFVwZGF0ZS4KCSogY29uZmlnL2lhNjQvaWE2NC5oIChDQUxMX1JFQUxMWV9VU0VEX1JFR0lTVEVSUyk6IEZhbHNlIGZvciByMCwKCXAwLCBmMCwgZjEsIGFuZCByMTMuCgkoTEVHSVRJTUFURV9DT05TVEFOVF9QKTogTW92ZSB0byBpYTY0X2xlZ2l0aW1hdGVfY29uc3RhbnRfcC4KCSogY29uZmlnL2lhNjQvaWE2NC5tZCAoVU5TUEVDX0RUUE1PRCk6IE5ldy4KCShzeW1ib2xpY19vcGVyYW5kIHNwbGl0dGVyKTogUGFzcyBldmVyeXRoaW5nIHRocm91Z2gKCWlhNjRfZXhwYW5kX2xvYWRfYWRkcmVzcyBhbmQgRkFJTCBvciBET05FIGFzIGFwcHJvcHJpYXRlLgoJKGxvYWRfZnB0cik6IE9ubHkgYWNjZXB0IGFmdGVyIHJlbG9hZC4KCShsb2FkX2ZwdHJfaW50ZXJuYWwxLCBncHJlbDY0X29mZnNldCwgbG9hZF9ncHJlbDY0LCBsb2FkX3N5bXB0cl9oaWdoLAoJbG9hZF9zeW1wdHJfbG93LCBsb2FkX2x0b2ZmX2R0cG1vZCwKCShsb2FkX2R0cG1vZCk6IE5ldy4KCShsb2FkX2R0cHJlbCk6IE9ubHkgYWNjZXB0IHRscyBzeW1ib2xzLgoJKGxvYWRfZHRwcmVsNjQsIGxvYWRfZHRwcmVsMjIpOiBMaWtld2lzZS4KCShsb2FkX3RwcmVsLCBsb2FkX3RwcmVsNjQsIGxvYWRfdHByZWwyMik6IExpa2V3aXNlLgoJKGxvYWRfZHRwcmVsX2dkLCBsb2FkX2x0b2ZmX2R0cHJlbCwgbG9hZF90cHJlbF9pZSk6IE5ldy4KCShhZGRfZHRwcmVsKTogT25seSBhY2NlcHQgdGxzIHN5bWJvbHMuICBDYW5vbmljYWxpemUgUExVUy4KCShhZGRfZHRwcmVsMTQsIGFkZF9kdHByZWwyMik6IExpa2V3aXNlLgoJKGFkZF90cHJlbCwgYWRkX3RwcmVsMTQsIGFkZF90cHJlbDIyKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pYTY0L3ByZWRpY2F0ZXMubWQgKHNtYWxsX2FkZHJfc3ltYm9saWNfb3BlcmFuZCk6IE5ldy4KCShhbnlfb2Zmc2V0X3N5bWJvbF9vcGVyYW5kLCBhbGlnbmVkX29mZnNldF9zeW1ib2xfb3BlcmFuZCk6IE5ldy4KCShnb3Rfc3ltYm9saWNfb3BlcmFuZCk6IENoZWNrIENPTlNUIG9mZnNldHMuCgkodGxzX3N5bWJvbGljX29wZXJhbmQsIGxkX3Rsc19zeW1ib2xpY19vcGVyYW5kKTogTmV3LgoJKGllX3Rsc19zeW1ib2xpY19vcGVyYW5kLCBsZV90bHNfc3ltYm9saWNfb3BlcmFuZCk6IE5ldy4KCShtb3ZlX29wZXJhbmQpOiBEb24ndCBoYW5kbGUgdGxzIGhlcmUuICBDaGVjayBDT05TVCBvZmZzZXRzLgoKMjAwNS0wNS0xMSAgSmFtZXMgQS4gTW9ycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzIxMDg1CgkqIGZvbGQtY29uc3QgKGZvbGQpOiBEb24ndCBjaGFuZ2UgWCAlIC1DIHRvIFggJSBDIGlmIEMgaGFzCglvdmVyZmxvd2VkLgoKMjAwNS0wNS0xMSAgUmljaGFyZCBHdWVudGhlciAgPHJndWVudGhAZ2NjLmdudS5vcmc+CgoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfaW5kaXJlY3RfcmVmXzEpOiBBdm9pZCByZW1vdmluZwoJTk9QX0VYUFJzIHdpdGggdHlwZSBxdWFsaWZpZXJzIGxpa2UgY29uc3QuCgoyMDA1LTA1LTExICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIGMvMjE1MDIKCSogYy1kZWNsLmMgKGZpbmlzaF9kZWNsKTogUHJvcGFnYXRlIHRoZSBjb21wbGV0ZWQgYXJyYXkgdHlwZSBvZgoJYSBnbG9iYWwgdmFyaWFibGUgaW50byB0aGUgYmluZGluZy4KCjIwMDUtMDUtMTAgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAobWVtX21pbl9hbGlnbm1lbnQpOiBEbyBub3QgcmVseQoJb24gTUVNX0FMSUdOIGlmIFRBUkdFVF9VTkFMSUdORURfRE9VQkxFUy4KCjIwMDUtMDUtMTAgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMvMjEzNDIKCSogYy1kZWNsLmMgKHB1c2hkZWNsKTogV2hlbiB0aGVyZSBpcyBhIGRlY2xhcmF0aW9uIGluIHRoZSBjdXJyZW50CglzY29wZSBhbmQgdGhlIGRlY2xhcmF0aW9ucyBhcmUgZXh0ZXJuYWwgbGlua2FnZSwgY2hlY2sgZm9yCgljb21wYXRpYmlsaXR5IHdpdGggdGhlIHR5cGUgaW4gdGhlIGV4dGVybmFsIHNjb3BlIGFuZCB1cGRhdGUgdGhlCgl0eXBlIGluIHRoZSBleHRlcm5hbCBzY29wZSB3aXRoIHRoZSBjb21wb3NpdGUgdHlwZSBpbmZvcm1hdGlvbi4KCURvIG5vdCBmb3JtIGEgY29tcG9zaXRlIHR5cGUgb2YgdGhlIG5ldyB0eXBlIGFuZCB0aGUgdmlzaWJsZSB0eXBlCglpZiB0aGV5IGFyZSBpbmNvbXBhdGlibGUuCgoyMDA1LTA1LTEwICBNaWNoYWVsIE1hdHogIDxtYXR6QHN1c2UuZGU+CgoJZnJvbSB0cnVuazoKCTIwMDUtMDQtMjggIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoSElfUkVHSVNURVJfTkFNRVMpOiBGaXggdHlwb3MgaW4gY29tbWVudC4KCShBRERJVElPTkFMX1JFR0lTVEVSX05BTUVTKTogRGVsZXRlIG9ic29sZXRlIG1teCByZWdpc3RlciBlbnRyaWVzLgoKMjAwNS0wNS0xMCAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgb3RoZXIvMjEwNTIKCSogZG9jL2V4dGVuZC50ZXhpIChUeXBlIEF0dHJpYnV0ZXMpOiBDb3JyZWN0IGV4YW1wbGUgc3ludGF4LgoKMjAwNS0wNS0wOSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYy8yMTE2MAoJKiBkb2MvaW52b2tlLnRleGkgKC1XdW5pbml0aWFsaXplZCk6IFVwZGF0ZSBkb2N1bWVudGF0aW9uLgoKMjAwNS0wNS0wOSAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJUFIgdGFyZ2V0LzIxMzk3CgkqIGFybS5jIChBUk1fT1BUX1NFVF9DUFUsIEFSTV9PUFRfU0VUX0FSQ0gsIEFSTV9PUFRfU0VUX1RVTkUpOiBEZWZpbmUuCgkoYXJtX292ZXJyaWRlX29wdGlvbnMpOiBVc2UgdGhlbSBpbnN0ZWFkIG9mIG1hbmlmZXN0IGNvbnN0YW50cy4gIERvbid0CglhbGxvdyAtbWFyY2ggdG8gb3ZlcnJpZGUgdGhlIC1tdHVuZSBzZXR0aW5nLgoKMjAwNS0wNS0wOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfb3ZlcnJpZGVfb3B0aW9ucyk6IERvbid0IHNldAoJaWE2NF9mbGFnX3Zhcl90cmFja2luZyBhbmQgY2xlYXIgZmxhZ192YXJfdHJhY2tpbmcgaGVyZS4uLgoJKGlhNjRfZmlsZV9zdGFydCk6IC4uLiBidXQgaGVyZS4KCjIwMDUtMDUtMDggIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogY29uZmlnL202OGhjMTEvbTY4aGMxMS5jIChtNjhoYzExX3pfcmVwbGFjZW1lbnQpOiBVc2UgZW1pdF9pbnNuX2FmdGVyCgl3aGVuIGFkZGluZyB0aGUgc2F2ZSBaIGluc3RydWN0aW9uIHNvIHRoYXQgaXQgaXMgcGFydCBvZiB0aGUgZ29vZCBCQi4KCShyZWdfb3Jfc29tZV9tZW1fb3BlcmFuZCk6IERvIG5vdCBhbGxvdyB0aGUgNjhIQzEyIGFkZHJlc3MgaW5kaXJlY3QKCWFkZHJlc3NpbmcgbW9kZSBhcyBpdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGJzZXQgYW5kIGJjbHIuCgkobTY4aGMxMV9nZW5fbW92aGkpOiBGaXggaW52YWxpZCBnZW5lcmF0aW9uIG9mIGluZGV4ZWQgaW5kaXJlY3QKCWFkZHJlc3Npbmcgd2l0aCBtb3Z3LgoJKG02OGhjMTFfZ2VuX21vdnFpKTogVXNlIHB1bGEgYW5kIHB1bGIgaW5zdGVhZCBvZiBsZGEgYW5kIGxkYiBmb3IKCTY4SEMxMi4KCSogY29uZmlnL202OGhjMTEvbTY4aGMxMS5tZCAoIm1vdmhpX2NvbnN0MCIpOiBVc2UgdGhpcyBwYXR0ZXJuIG9ubHkKCWZvciA2OEhDMTEuCgkoIiptb3ZoaV82OGhjMTIiKTogSGFuZGxlIG1vdmhpX2NvbnN0MC4KCSgiKnN1YmhpMyIsICJzdWJxaTMiKTogVXNlIGdlbmVyYWxfb3BlcmFuZCBmb3Igb3BlcmFuZCAxLgoJKCIqc3ViaGkzX3pleHQiKTogTGlrZXdpc2UuCgoyMDA1LTA1LTA4ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCglQUiB0YXJnZXQvMTkwNTEKCSogY29uZmlnL202OGhjMTEvbTY4aGMxMS5tZCAoIm11bHFpMyIpOiBVc2UgZ2VuZXJhbF9vcGVyYW5kIGZvciBvcGVyYW5kCgkxIGFuZCBmaXggY29uc3RyYWludHMuCgkoIm11bHFpaGkzIik6IFVzZSBnZW5lcmFsX29wZXJhbmQgZm9yIG9wZXJhbmQgMi4KCjIwMDUtMDUtMDggIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMjE0MTYKCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX2VtaXRfY29tcGFyZSk6IERvbid0IHJldmVyc2UgVU5HRSBhbmQgVU5HVAoJY29tcGFyaXNvbnMuCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKHN3YXBwZWRfZmNvbmQpOiBOZXcgY29kZSBtYWNybyBhbmQgYXR0cmlidXRlLgoJKHNndF88bW9kZT4sIHNnZV88bW9kZT4pOiBHZW5lcmFsaXplIHRvIGFsbCBtZW1iZXJzIG9mIHN3YXBwZWRfZmNvbmQsCglpbmNsdWRpbmcgc3VuZ2VfPG1vZGU+IGFuZCBzdW5ndF88bW9kZT4uCgoyMDA1LTA1LTA4ICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCglQUiB0YXJnZXQvMTY5MjUKCSogY29uZmlnL202OGhjMTEvbTY4aGMxMS5jIChtNjhoYzExX2dlbl9oaWdocGFydCk6IEhhbmRsZSBzcGxpdCBvZgoJNjQtYml0IGNvbnN0YW50cyBvbiA2NC1iaXQgaG9zdHMuCgkobTY4aGMxMV9zcGxpdF9sb2dpY2FsKTogU2ltcGxpZnkuCgkobTY4aGMxMV9zcGxpdF9tb3ZlKTogTGlrZXdpc2UuCgoyMDA1LTA1LTA3ICBBbnRob255IEdyZWVuICA8Z3JlZW5AcmVkaGF0LmNvbT4KCglQUiBib290c3RyYXAvMjE0MDMKCSogY29uZmlndXJlLmFjIChTVE1QX0ZJWFBST1RPKTogRml4IFsgXSBjb25zdW1wdGlvbiBwcm9ibGVtIGluCgl4JFNUTVBfRklYUFJPVE8gdGVzdC4KCSogY29uZmlndXJlOiBSZWJ1aWx0LgoKMjAwNS0wNS0wNyAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvcGEvcGEtaHB1eDExLmggKFRBUkdFVF9PU19DUFBfQlVJTFRJTlMpOiBEbyBub3QgZGVmaW5lCglpbmFwcHJvcHJpYXRlIGZlYXR1cmUgdGVzdCBtYWNyb3MgaWYgZmxhZ19pc28uCgoyMDA1LTA1LTA3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8yMTQxMgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZW1pdF9tb3ZlKTogTG9vayBmb3IgdGxzIGFkZHJlc3NlcwoJd2l0aCBjb25zdGFudCBvZmZzZXRzLgoKMjAwNS0wNS0wNiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8yMTMzMAoJKiBsb29wLXVuc3dpdGNoLmMgKG1heV91bnN3aXRjaF9vbik6IFNldCAqY2luc24gb25seSB3aGVuCglyZXR1cm5pbmcgbm9uLU5VTEwuCgkodW5zd2l0Y2hfc2luZ2xlX2xvb3ApOiBDbGVhciBjaW5zbiB3aGVuIHJldHJ5aW5nLgoKCVBSIGMrKy8yMDk2MQoJKiB2YXJhc20uYyAobWVyZ2Vfd2Vhayk6IFJlbW92ZSBORVdERUNMIGZyb20gV0VBS19ERUNMUyBjaGFpbgoJaWYgYm90aCBORVdERUNMIGFuZCBPTERERUNMIGFyZSBhbHJlYWR5IHdlYWsuCgoyMDA1LTA1LTA1ICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzIxMzgwCgkqIHRyZWUtc3NhLXRocmVhZHVwZGF0ZS5jICh0aHJlYWRfdGhyb3VnaF9hbGxfYmxvY2tzKTogRG8gbm90Cgl0aHJlYWQgdGhyb3VnaCBhIGJsb2NrIHdpdGggbm8gcHJlZHMuCgoyMDA1LTA1LTA1ICBSYWxmIENvcnNlcGl1cyAgPHJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZz4KCgkqIGNvbmZpZy5nY2MgKGhwcGExLjEtKi1ydGVtcyopOiBPYnNvbGV0ZS4KCjIwMDUtMDUtMDUgIFJhbGYgQ29yc2VwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCSogY29uZmlnL3JzNjAwMC90LXJ0ZW1zIChNVUxUSUxJQl9ORVdfRVhDRVBUSU9OU19PTkxZKToKCUV4Y2x1ZGUgcm9lLzYwM2UgbXVsdGlsaWIgdmFyaWFudHMuCgoyMDA1LTA1LTA0ICBEZW5pcyBDaGVydHlrb3YgIDxkZW5pc2NAb3ZlcnRhLnJ1PgoKCVBSIHRhcmdldC8yMTI4NAoJKiBjb25maWcvYXZyL2F2ci5jIChhdnJfb3V0cHV0X2FkZHJfdmVjX2VsdCk6IFVzZSBzcGVjaWFsIHNlY3Rpb24KCWZvciBvdXRwdXQuCgoyMDA1LTA1LTA0ICBHZXJhbGQgUGZlaWZlciAgPGdlcmFsZEBwZmVpZmVyLmNvbT4KCgkqIGRvYy9jb250cmliLnRleGkgKENvbnRyaWJ1dG9ycyk6IEFkZCBNb3N0YWZhIEhhZ29nIGFuZCBBeWFsIFpha3MuCgoyMDA1LTA1LTA0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzIxMjY1CgkqIGV4cHIuaCAoZW51bSBibG9ja19vcF9tZXRob2RzKTogQWRkIEJMT0NLX09QX1RBSUxDQUxMLgoJKGNsZWFyX3N0b3JhZ2UpOiBBZGQgYXJndW1lbnQuCgkqIGV4cHIuYyAoZW1pdF9ibG9ja19tb3ZlX3ZpYV9saWJjYWxsLCBjbGVhcl9zdG9yYWdlX3ZpYV9saWJjYWxsKToKCUFkZCB0YWlsY2FsbCBhcmd1bWVudCwgc2V0IENBTExfRVhQUl9UQUlMQ0FMTCBvZiB0aGUgQ0FMTF9FWFBSIHRvCgl0YWlsY2FsbC4KCShlbWl0X2Jsb2NrX21vdmUpOiBIYW5kbGUgQkxPQ0tfT1BfVEFJTENBTEwgbWV0aG9kLgoJKGNsZWFyX3N0b3JhZ2UpOiBBZGQgbWV0aG9kIGFyZ3VtZW50LCBoYW5kbGUgQkxPQ0tfT1BfVEFJTENBTEwuCgkoc3RvcmVfZXhwciwgc3RvcmVfY29uc3RydWN0b3IpOiBBZGp1c3QgY2FsbGVycy4KCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fbWVtY3B5KTogUGFzcyBCTE9DS19PUF9UQUlMQ0FMTAoJdG8gZW1pdF9ibG9ja19tb3ZlIGlmIENBTExfRVhQUl9UQUlMQ0FMTCAoZXhwKS4KCShleHBhbmRfYnVpbHRpbl9tZW1tb3ZlKTogQWRkIE9SSUdfRVhQIGFyZ3VtZW50LCBjb3B5CglDQUxMX0VYUFJfVEFJTENBTEwgZnJvbSBPUklHX0VYUCB0byB0aGUgbmV3IENBTExfRVhQUi4KCShleHBhbmRfYnVpbHRpbl9iY29weSk6IFJlcGxhY2UgQVJHTElTVCBhbmQgVFlQRSBhcmd1bWVudHMKCXdpdGggRVhQLiAgUGFzcyBFWFAgdG8gZXhwYW5kX2J1aWx0aW5fbWVtbW92ZS4KCShleHBhbmRfYnVpbHRpbl9tZW1zZXQpOiBBZGQgT1JJR19FWFAgYXJndW1lbnQsIHBhc3MKCUJMT0NLX09QX1RBSUxDQUxMIHRvIGNsZWFyX3N0b3JhZ2UgaWYgQ0FMTF9FWFBSX1RBSUxDQUxMIChvcmlnX2V4cCkuCgkoZXhwYW5kX2J1aWx0aW5fYnplcm8pOiBSZXBsYWNlIEFSR0xJU1QgYXJndW1lbnQgd2l0aCBFWFAuCglQYXNzIEVYUCB0byBleHBhbmRfYnVpbHRpbl9tZW1zZXQuCgkoZXhwYW5kX2J1aWx0aW5fc3RyY21wKTogQ29weSBDQUxMX0VYUFJfVEFJTENBTEwgZnJvbSBFWFAgdG8KCXRoZSBuZXcgQ0FMTF9FWFBSLgoJKGV4cGFuZF9idWlsdGluX3N0cm5jbXApOiBMaWtld2lzZS4KCShleHBhbmRfYnVpbHRpbl9wcmludGYpOiBSZXBsYWNlIEFSR0xJU1QgYXJndW1lbnQgd2l0aCBFWFAuCglDb3B5IENBTExfRVhQUl9UQUlMQ0FMTCBmcm9tIEVYUCB0byB0aGUgbmV3IENBTExfRVhQUi4KCShleHBhbmRfYnVpbHRpbl9mcHJpbnRmKTogTGlrZXdpc2UuCgkoZXhwYW5kX2J1aWx0aW4pOiBBZGp1c3QgY2FsbHMgdG8KCWV4cGFuZF9idWlsdGluX3ttZW1tb3ZlLGJjb3B5LG1lbXNldCxiemVybyx7LGZ9cHJpbnRmfS4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9leHBhbmRfdmVjdG9yX3NldCk6IEZpeCBzZXR0aW5nIDNyZCBhbmQgNHRoCglpdGVtIGluIFY0U0YgbW9kZS4KCglQUiBydGwtb3B0aW1pemF0aW9uLzIxMjM5CgkqIGNvbWJpbmUuYyAoY29tYmluZV9zaW1wbGlmeV9ydHgpIDxjYXNlIFZFQ19TRUxFQ1Q+OiBGaXggYSB0eXBvLgoKCVBSIHRhcmdldC8yMTI5NwoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGxlZ2l0aW1pemVfYWRkcmVzcyk6IFdoZW4gY2Fub25pY2FsaXppbmcKCUFTSElGVCBpbnRvIE1VTFQsIG11bHRpcGx5IGJ5IDEgPDwgc2hpZnRfY291bnQgaW5zdGVhZCBvZgoJMSA8PCBsb2cyIChzaGlmdF9jb3VudCkuCgoyMDA1LTA1LTAzICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTY4ODgKCSogY29uZmlnL2kzODYvaTM4Ni5oIChDT05ESVRJT05BTF9SRUdJU1RFUl9VU0FHRSk6IENsZWFyIHJlZyBuYW1lcwoJZm9yIHVuYXZhaWxhYmxlIHJlZ2lzdGVycy4KCjIwMDUtMDUtMDMgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuaWJtLmNvbT4KCgkqIGRvYy9wYXNzZXMudGV4aTogRG9jdW1lbnQgdmVjdG9yaXphdGlvbiBwYXNzLgoKMjAwNS0wNS0wMiAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYy8xNTY5OAoJKiBjLXRyZWUuaCAoQ19ERUNMX0JVSUxUSU5fUFJPVE9UWVBFKTogTmV3LgoJKiBjLWRlY2wuYyAoY3VycmVudF9mdW5jdGlvbl9wcm90b3R5cGVfYnVpbHRfaW4sCgljdXJyZW50X2Z1bmN0aW9uX3Byb3RvdHlwZV9hcmdfdHlwZXMpOiBOZXcuCgkobWVyZ2VfZGVjbHMpOiBLZWVwIHNvdXJjZSBsb2NhdGlvbiBvZiBwcm90b3R5cGUgZm9sbG93ZWQgYnkKCW5vbnByb3RvdHlwZSBkZWNsYXJhdGlvbi4gIFVwZGF0ZSBDX0RFQ0xfQlVJTFRJTl9QUk9UT1RZUEUuCgkoYnVpbHRpbl9mdW5jdGlvbik6IFNldCBDX0RFQ0xfQlVJTFRJTl9QUk9UT1RZUEUuCgkoc3RhcnRfZnVuY3Rpb24pOiBBbHdheXMgc2V0IGN1cnJlbnRfZnVuY3Rpb25fcHJvdG90eXBlX2xvY3VzLAoJY3VycmVudF9mdW5jdGlvbl9wcm90b3R5cGVfYnVpbHRfaW4gYW5kCgljdXJyZW50X2Z1bmN0aW9uX3Byb3RvdHlwZV9hcmdfdHlwZXMuICBDaGVjayBmb3IgZXh0ZXJuYWwKCXByb3RvdHlwZSB3aGV0aGVyIG9yIG5vdCB2aXNpYmxlIGZvciBleHRlcm5hbCBmdW5jdGlvbiBhbmQgc2V0CgljdXJyZW50X2Z1bmN0aW9uX3Byb3RvdHlwZV9hcmdfdHlwZXMgYWNjb3JkaW5nbHkuCgkoc3RvcmVfcGFybV9kZWNsc19vbGRzdHlsZSk6IFVzZQoJY3VycmVudF9mdW5jdGlvbl9wcm90b3R5cGVfYXJnX3R5cGVzIGZvciBjaGVja2luZyBvbGQtc3R5bGUKCWRlZmluaXRpb24gYWdhaW5zdCBwcm90b3R5cGUuICBHaXZlIHdhcm5pbmdzIG9ubHkgaWYKCWN1cnJlbnRfZnVuY3Rpb25fcHJvdG90eXBlX2J1aWx0X2luKS4KCjIwMDUtMDUtMDIgIEphbmlzIEpvaG5zb24gIDxqYW5pczE4N0B1cy5pYm0uY29tPgoKCVBSIDE5OTg1CgkqIGdjb3YtaW8uaDogRGVjbGFyZSBnY292IGV4dGVybmFsIGZ1bmN0aW9ucyBoaWRkZW4uCgoyMDA1LTA1LTAxICBHZXJhbGQgUGZlaWZlciAgPGdlcmFsZEBwZmVpZmVyLmNvbT4KCgkqIGRvYy9pbnN0YWxsLnRleGkgKFNwZWNpZmljKTogT21pdCBkb3RzIGluIHRoZSBAYW5jaG9ycyBuYW1lcwoJZm9yIGk/ODYtKi1zY28zLjJ2NSosIGk/ODYtKi1zb2xhcmlzMi4xMCwgYW5kIHNwYXJjLXN1bi1zb2xhcmlzMi43LgoJT21pdCB1bmRlcnNjb3JlcyBmb3IgeDg2XzY0LSotKiBhbmQgdGhlICJhbGwgRUxGIHRhcmdldHMiIGVudHJ5LgoKMjAwNS0wNS0wMSAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiBib290c3RyYXAvMjA2MzMKCSogY29uZmlnL2ZyZWVic2Qtc3BlYy5oIChGQlNEX0NQUF9TUEVDKTogQWRkICUoY3BwX2FyY2gpLgoKMjAwNS0wNS0wMSAgTWljaGFlbCBNYXR6ICA8bWF0ekBzdXNlLmRlPgoKCVBSIGMrKy8xOTU0MgoJKiBjLWNvbW1vbi5jIChjX2NvbW1vbl9ub2Rlc19hbmRfYnVpbHRpbnMpOiBDcmVhdGUgZ2xvYmFsIG51bGxfbm9kZS4KCSh3YXJuX3N0cmljdF9udWxsX3NlbnRpbmVsKTogRGVmaW5lLgoJKGNoZWNrX2Z1bmN0aW9uX3NlbnRpbmVsKTogQ2hlY2sgZm9yIG51bGxfbm9kZSBhcyB2YWxpZCBzZW50aW5lbCB0b28uCgkqIGMtY29tbW9uLmggKGNfdHJlZV9pbmRleCk6IEFkZGVkIENUSV9OVUxMLgoJKG51bGxfbm9kZSkgRGVmaW5lIGdsb2JhbF90cmVlW0NUSV9OVUxMXS4KCSh3YXJuX3N0cmljdF9udWxsX3NlbnRpbmVsKTogRGVjbGFyZS4KCSogYy1vcHRzLmM6IChjX2NvbW1vbl9oYW5kbGVfb3B0aW9uKTogSGFuZGxlIC1Xc3RyaWN0LW51bGwtc2VudGluZWwuCgkqIGMub3B0OiAoV3N0cmljdC1udWxsLXNlbnRpbmVsKTogTmV3IEMrKyBvcHRpb24uCgkqIGRvYy9pbnZva2UudGV4aSAoQysrIE9wdGlvbnMpOiBEb2N1bWVudCAtV3N0cmljdC1udWxsLXNlbnRpbmVsLgoKMjAwNS0wNC0zMCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vYnBhYmkuaCAoUkVOQU1FX0xJQlJBUllfU0VUKTogQWx3YXlzIHVzZSAudGh1bWJfc2V0IGluCgl0aHVtYiBtb2RlLgoJKiBjb25maWcvYXJtL2llZWU3NTQtZGYuUzogVXNlIF9fSU5URVJXT1JLSU5HX1NUVUJTX18uCgkqIGNvbmZpZy9hcm0vaWVlZTc1NC1zZi5TOiBEaXR0by4KCSogY29uZmlnL2FybS9saWIxZnVuY3MuYXNtOiBEZWZpbmUgYW5kIHVzZSBfX0lOVEVSV09SS0lOR19TVFVCU19fLgoJKEZVTkNfQUxJQVMpOiBVc2UgLnRodW1iX3NldCBmb3IgdGh1bWIgcm91dGluZXMuCgoyMDA1LTA0LTI5ICBNaWNoYWVsIE1hdHogIDxtYXR6QHN1c2UuZGU+CgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChtb3ZtZW1zaSk6IEFsc28gYWN0aXZlIHdoZW4KCVRBUkdFVF9JTkxJTkVfQUxMX1NUUklOR09QUy4KCjIwMDUtMDQtMjkgIE1pY2hhZWwgTWF0eiAgPG1hdHpAc3VzZS5kZT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzIxMTQ0CgkqIHBvc3RyZWxvYWQuYyAocmVsb2FkX2NzZV9tb3ZlMmFkZCk6IENoZWNrIGZvciBWT0lEbW9kZS4KCjIwMDUtMDQtMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgdGFyZ2V0LzIxMDk4CgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9lbGZfZW5kX2luZGljYXRlX2V4ZWNfc3RhY2spOiBOZXcuCgkqIGNvbmZpZy9yczYwMDAvbGludXg2NC5oIChUQVJHRVRfQVNNX0ZJTEVfRU5EKTogVXNlIHRoZSBhYm92ZS4KCjIwMDUtMDQtMjggIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIGRvYy9pbnN0YWxsLnRleGk6IFVwZGF0ZSAtZW5hYmxlLWxhbmd1YWdlcyBpbmZvLiAgQ29ycmVjdCBwYXRoIHRvCglodG1sIGRvY3MuCgoyMDA1LTA0LTE5ICBBbmRyZXcgSGFsZXkgIDxhcGhAcmVkaGF0LmNvbT4KCglQUiBqYXZhLzIxMDIyCgkqIGRieG91dC5jIChkYnhvdXRfdHlwZV9maWVsZHMpOiBDaGVjayBERUNMX0lHTk9SRURfUCBiZWZvcmUKCWxvb2tpbmcgYXQgYSBmaWVsZCdzIGJpdHBvcy4KCjIwMDUtMDQtMjggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcuZ2NjOiBPYnNvbGV0ZSBjNHgtKiBhbmQgdGljNHgtKi4KCjIwMDUtMDQtMjggIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogYy10eXBlY2suYyAoYnVpbGRfY29tcG91bmRfZXhwcik6IENvcnJlY3QgbG9naWMgaW4gbGFzdCBjaGFuZ2UuCgoyMDA1LTA0LTI3ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjLzIxMTU5CgkqIGMtdHlwZWNrLmMgKGJ1aWxkX2NvbXBvdW5kX2V4cHIpOiBEb24ndCB3YXJuIGZvciBsZWZ0LWhhbmQgc2lkZQoJYmVpbmcgYSBjb21wb3VuZCBleHByZXNzaW9uIHdob3NlIHJpZ2h0LWhhbmQgc2lkZSBpcyBjYXN0IHRvIHZvaWQuCgoyMDA1LTA0LTI3ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjLzIxMjEzCgkqIGMtZGVjbC5jIChmaW5pc2hfc3RydWN0KTogRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCBUWVBFX0ZJRUxEUyBvZgoJdHJhbnNwYXJlbnQgdW5pb24uCgoyMDA1LTA0LTI3ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjLzIwNzQwCgkqIGMtZm9ybWF0LmMgKGluaXRfZHluYW1pY19hc21fZnByaW50Zl9pbmZvKTogR2l2ZSBlcnJvcnMsIG5vdAoJYXNzZXJ0aW9uIGZhaWx1cmVzLCBpZiBfX2djY19ob3N0X3dpZGVfaW50X18gaXMgbm90IHByb3Blcmx5CglkZWZpbmVkLgoJKGluaXRfZHluYW1pY19kaWFnX2luZm8pOiBHaXZlIGVycm9ycywgbm90IGFzc2VydGlvbiBmYWlsdXJlcywgaWYKCWxvY2F0aW9uX3QsIHRyZWUgb3IgX19nY2NfaG9zdF93aWRlX2ludF9fIGFyZSBub3QgcHJvcGVybHkKCWRlZmluZWQuCgoyMDA1LTA0LTI1ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjb2xsZWN0Mi5jLCBnY2MuYywgZ2Nvdi1kdW1wLmMsIGdjb3YuYywgZ2VuLXByb3Rvcy5jLAoJZ2Vuc3VwcG9ydC5jLCBwcm90b2l6ZS5jLCB0b3BsZXYuYzogUmVwbGFjZSBjYWxscyB0bwoJYHVubG9ja19zdHJlYW0nIHdpdGggYHVubG9ja19zdGRfc3RyZWFtcycuCgoyMDA1LTA0LTI1ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aSAoQmxhY2tmaW4gT3B0aW9ucyk6IEF2b2lkIGVtcHR5IEBvcGluZGV4IGxpbmUuCgoyMDA1LTA0LTI1ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBib290c3RyYXAvMjEyMTUKCSogZG9jL2luc3RhbGwudGV4aTogRG9jdW1lbnQgY29ycmVjdCBhc3NlbWJsZXIgYW5kIGxpbmtlciB0byB1c2UKCW9uIGk/ODYtKi1zb2xhcmlzMi4xMC4KCjIwMDUtMDQtMjUgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCUZpeCBQUiB0cmVlLW9wdGltaXphdGlvbi8yMTE3MwoKCSogdHJlZS1zc2EtcHJlLmMgKGNyZWF0ZV9leHByZXNzaW9uX2J5X3BpZWNlcyk6IENhbGwgdW5zaGFyZV9leHByCglvbiB0aGluZ3Mgd2UgcGFzcyB0byBmb3JjZV9naW1wbGVfb3BlcmFuZC4gIERvbid0IHRyeSB0byBzcGVjaWFsCgljYXNlIG1pbl9pbnZhcmlhbnRzLgoKMjAwNS0wNC0yNSAgQmVybmQgU2NobWlkdCAgPGJlcm5kLnNjaG1pZHRAYW5hbG9nLmNvbT4KCgkqIGNvbmZpZy9iZmluL2JmaW4tbW9kZXMuZGVmOiBOZXcgZmlsZS4KCSogY29uZmlnL2JmaW4vYmZpbi1wcm90b3MuaDogTmV3IGZpbGUuCgkqIGNvbmZpZy9iZmluL2JmaW4uYzogTmV3IGZpbGUuCgkqIGNvbmZpZy9iZmluL2JmaW4uaDogTmV3IGZpbGUuCgkqIGNvbmZpZy9iZmluL2JmaW4ubWQ6IE5ldyBmaWxlLgoJKiBjb25maWcvYmZpbi9jcnRpLnM6IE5ldyBmaWxlLgoJKiBjb25maWcvYmZpbi9jcnRuLnM6IE5ldyBmaWxlLgoJKiBjb25maWcvYmZpbi9lbGYuaDogTmV3IGZpbGUuCgkqIGNvbmZpZy9iZmluL2xpYjFmdW5jcy5hc206IE5ldyBmaWxlLgoJKiBjb25maWcvYmZpbi9wcmVkaWNhdGVzLm1kOiBOZXcgZmlsZS4KCSogY29uZmlnL2JmaW4vdC1iZmluOiBOZXcgZmlsZS4KCSogY29uZmlnL2JmaW4vdC1iZmluLWVsZjogTmV3IGZpbGUuCgkqIGRvYy9leHRlbmQudGV4aSAoZXhjZXB0aW9uX2hhbmRsZXIsIGtzcGlzdXNwLCBuZXN0aW5nLCBubWlfaGFuZGxlcik6CglEb2N1bWVudCBuZXcgYXR0cmlidXRlcy4KCShpbnRlcnJ1cHQsIGludGVycnVwdF9oYW5kbGVyLCBzYXZlYWxsKTogVXBkYXRlIGRvY3VtZW50YXRpb24gZm9yCgl0aGVzZSBhdHRyaWJ1dGVzLgoJKiBkb2MvaW5zdGFsbC50ZXhpIChTcGVjaWZpYyk6IEFkZCBlbnRyeSBmb3IgdGhlIEJsYWNrZmluLgoJKiBkb2MvaW52b2tlLnRleGkgKEJsYWNrZmluIE9wdGlvbnMpOiBOZXcgc2VjdGlvbi4KCSogZG9jL21kLnRleGkgKEJsYWNrZmluIGZhbWlseSk6IE5ldyBzZWN0aW9uIHRvIGRvY3VtZW50IGNvbnN0cmFpbnRzLgoJKiBjb25maWcuZ2NjOiBBZGQgYmZpbiotKiBhbmQgYmZpbiotZWxmIGNvbmZpZ3VyYXRpb25zLgoKMjAwNS0wNC0yNSAgUmFsZiBDb3JzZXBpdXMgIDxyYWxmLmNvcnNlcGl1c0BydGVtcy5vcmc+CgoJKiBjb25maWcuZ2NjIChhdnItKi0qKTogUmVtb3ZlIHJlZHVuZGFudCAiY2FzZSIuCgoyMDA1LTA0LTI1ICBSYWxmIENvcnNlcGl1cyAgPHJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZz4KCglQUiB0YXJnZXQvMTc4MjIKCSogY29uZmlnL2F2ci90LWF2ciAoQVJfRk9SX1RBUkdFVCxSQU5MSUJfRk9SX1RBUkdFVCk6IFJlbW92ZS4KCjIwMDUtMDQtMjQgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCglQUi8xNzA5MgoJKiBjb25maWd1cmUuYWMgKGdjY19VTkxPQ0tFRF9GVU5DUyk6IE5ldy4KCShBQ19DSEVDS19GVU5DUywgQUNfQ0hFQ0tfREVDTFMpOiBDaGVjayBmb3IgZ2NjX1VOTE9DS0VEX0ZVTkNTLgoJKiBzeXN0ZW0uaCAocHV0Y2hhciwgZ2V0YywgZ2V0Y2hhciwgY2xlYXJlcnIsIGZlb2YsIGZpbGVubywKCWZmbHVzaCwgZmdldGMsIGZnZXRzLCBmZXJyb3IsIGZyZWFkKTogUmVkZWZpbmUgdG8gdGhlIGFzc29jaWF0ZWQKCV91bmxvY2tlZCBmdW5jdGlvbi4KCShmd3JpdGVfdW5sb2NrZWQpOiBGaXggcHJvdG90eXBlLgoKCSogY29uZmlndXJlLCBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgoJKiBzeXN0ZW0uaCAoZm9wZW4sIGZkb3BlbiwgZnJlb3Blbik6IERlZmluZSB0aGVzZSB0byB0aGUgdW5sb2NrZWQKCWxpYmliZXJ0eSBmdW5jdGlvbnMuCgoJKiBjb2xsZWN0Mi5jIChtYWluKTogVW5sb2NrIHRoZSBzdGRpbyBzdHJlYW1zLgoJKiBnY2MuYyAobWFpbik6IExpa2V3aXNlLgoJKiBnY292LWR1bXAuYyAobWFpbik6IExpa2V3aXNlLgoJKiBnY292LmMgKG1haW4pOiBMaWtld2lzZS4KCSogZ2VuLXByb3Rvcy5jIChtYWluKTogTGlrZXdpc2UuCgkqIGdlbnN1cHBvcnQuYyAoaW5pdF9tZF9yZWFkZXJfYXJnc19jYik6IExpa2V3aXNlLgoJKiBwcm90b2l6ZS5jIChtYWluKTogTGlrZXdpc2UuCgkqIHRvcGxldi5jIChnZW5lcmFsX2luaXQpOiBMaWtld2lzZS4KCjIwMDUtMDQtMjQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgcnRsLW9wdC8yMTE2MwoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfYmluYXJ5X29wZXJhdGlvbikgPElPUj46IENoZWNrCglmb3IgU0NBTEFSX0lOVF9NT0RFX1AgaW5zdGVhZCBvZiBub3QgTU9ERV9DQyBiZWZvcmUgcmV0dXJuaW5nCgljb25zdG0xX3J0eC4KCTxYT1IsIEFORCwgTFNISUZUUlQsIFVNSU4+OiBVc2UgQ09OU1QwX1JUWC4KCTxVRElWLCBVTU9EPjogVXNlIENPTlNUMF9SVFggYW5kIENPTlNUMV9SVFguCgk8RElWLCBNT0Q+OiBMaWtld2lzZS4KCjIwMDUtMDQtMjQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMjA5OTEKCSogY2dyYXBoLmggKGNncmFwaF9sb2NhbF9pbmZvKTogQWRkIHZ0YWJsZV9tZXRob2QgZmllbGQuCgkqIHZhcmFzbS5jIChtYXJrX2RlY2xfcmVmZXJlbmNlZCk6IElmIGNncmFwaF9nbG9iYWxfaW5mb19yZWFkeQoJYW5kIG5vZGUgaXMgdnRhYmxlX21ldGhvZCwgZmluYWxpemVkIGFuZCBub3QgcmVhY2hhYmxlLCBkb24ndCBkbwoJYW55dGhpbmcuCgoJUmV2ZXJ0OgoJMjAwNS0wNC0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgkqIHRyZWUtc3NhLWNjcC5jIChmb2xkX3N0bXQpOiBEb24ndCBvcHRpbWl6ZSBPQkpfVFlQRV9SRUZzIGlmIHRoYXQKCXdvdWxkIHJlc3VsdCBpbiBhbiBhbHJlYWR5IGZpbmFsaXplZCB1bnJlYWNoYWJsZSBub2RlIGJlY29taW5nCglyZWFjaGFibGUgd2hpbGUgY2dyYXBoX2dsb2JhbF9pbmZvX3JlYWR5LgoKMjAwNS0wNC0yNCAgUmFsZiBDb3JzZXBpdXMgIDxyYWxmLmNvcnNlcGl1c0BydGVtcy5vcmc+CgoJUFIgdGFyZ2V0LzE3ODI0CgkqIGNvbmZpZy9jNHgvYzR4LmggKEFTTV9QUk9HLCBMRF9QUk9HKTogUmVtb3ZlLgoKMjAwNS0wNC0yNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMjExMDEKCSogY29uZmlnL2kzODYvaTM4Ni5oIChDQU5OT1RfQ0hBTkdFX01PREVfQ0xBU1MpOiBNb3ZlIGd1dHMgdG8gLi4uCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9jYW5ub3RfY2hhbmdlX21vZGVfY2xhc3MpOiAuLi4gaGVyZS4KCURlbnkgbW9kZXMgc21hbGxlciB0aGFuIDQgYnl0ZXMuCgkqIGNvbmZpZy9pMzg2L2kzODYtcHJvdG9zLmg6IFVwZGF0ZS4KCjIwMDUtMDQtMjQgIFJhbGYgQ29yc2VwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCSogY29uZmlnLmdjYyAoaDgzMDAtKi1ydGVtcyopOiBBZGQgaDgzMDAtKi1ydGVtc2NvZmYqLgoJU3dpdGNoIGg4MzAwLSotcnRlbXMqIHRvIEVMRi4KCjIwMDUtMDQtMjMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfYmluYXJ5X29wZXJhdGlvbik6IEZpeCBzZWNvbmQgaW5zdGFuY2UKCWxhdGVyIGluIHRoZSBzYW1lIGZ1bmN0aW9uLgoKCVBSIHJ0bC1vcHQvMjExMDIKCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X2JpbmFyeV9vcGVyYXRpb24pOiBGaXggbW9kZSBjaGVjayBiZWZvcmUKCXBlcmZvcm1pbmcgc29tZSBpbnRlZ3JhbCBzY2FsYXIgc2ltcGxpZmljYXRpb25zLgoKMjAwNS0wNC0yMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMjExMDAKCSogY29uZmlnL2kzODYvbW14Lm1kIChwdXNoPE1NWE1PREU+MSk6IEZpeCBwcmVkaWNhdGUgdGhpbmtvLgoKMjAwNS0wNC0yMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMjEwOTkKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X3NwbGl0X3RvX3BhcnRzKTogVXNlIHByb3BlciBtb2RlIHdoZW4KCXNpbXBsaWZ5aW5nIENPTlNUX1ZFQ1RPUi4KCjIwMDUtMDQtMjIgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCglQUiBjKysvMjA4MDUKCSogZHdhcmYyb3V0LmMgKGdlbl92YXJpYWJsZV9kaWUpOiBEb24ndCBlbWl0IGEgc3BlY2lmaWNhdGlvbiBpZiB0aGlzCglpcyBhbm90aGVyIGRlY2xhcmF0aW9uLgoKMjAwNS0wNC0yMiAgTWljaGFlbCBNYXR6ICA8bWF0ekBzdXNlLmRlPgoKCVBSIG1pZGRsZS1lbmQvMjA5NzMKCSogcmVsb2FkLmMgKHB1c2hfcmVsb2FkLCBmaW5kX2R1bW15X3JlbG9hZCk6IENoZWNrIGZvciB1bmluaXRpYWxpemVkCglwc2V1ZG9zLgoKMjAwNS0wNC0yMiAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCUJhY2twb3J0IGZyb20gbWFpbmxpbmUuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9pbml0X2xpYmZ1bmNzKTogU2V0IFRGbW9kZQoJb3B0YWJzIHRvIHhscSBuYW1lcyBpZiBUQVJHRVRfWExfQ09NUEFULgoKMjAwNS0wNC0yMiAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYy8xMjkxMwoJKiBjLXRyZWUuaCAoc3RydWN0IGNfbGFiZWxfbGlzdCk6IFVwZGF0ZSBjb21tZW50LgoJKHN0cnVjdCBjX2xhYmVsX2NvbnRleHQpOiBSZW5hbWUgdG8gc3RydWN0IGNfbGFiZWxfY29udGV4dF9zZS4KCShsYWJlbF9jb250ZXh0X3N0YWNrKTogUmVuYW1lIHRvIGxhYmVsX2NvbnRleHRfc3RhY2tfc2UuCgkoQ19ERUNMX1VOSlVNUEFCTEVfVk0sIENfREVDTF9VTkRFRklOQUJMRV9WTSwgc3RydWN0CgljX2xhYmVsX2NvbnRleHRfdm0sIGxhYmVsX2NvbnRleHRfc3RhY2tfdm0sIGNfYmVnaW5fdm1fc2NvcGUsCgljX2VuZF92bV9zY29wZSk6IE5ldy4KCShDX0RFQ0xfREVDTEFSRURfQlVJTFRJTiwgQ19ERUNMX1VTRUQpOiBVc2UgRlVOQ1RJT05fREVDTF9DSEVDSy4KCSogYy1kZWNsLmMgKHBvcF9zY29wZSk6IENhbGwgY19lbmRfdm1fc2NvcGUuCgkocHVzaGRlY2wpOiBDYWxsIGNfYmVnaW5fdm1fc2NvcGUgZm9yIHZhcmlhYmx5IG1vZGlmaWVkCglkZWNsYXJhdGlvbnMuCgkoZGVmaW5lX2xhYmVsKTogQ2hlY2sgZm9yIGp1bXBpbmcgaW50byBzY29wZSBvZiBpZGVudGlmaWVyIHdpdGgKCXZhcmlhYmx5IG1vZGlmaWVkIHR5cGUuICBQdXNoIGxhYmVsIG9uIHN0YWNrIGZvciB0aG9zZSBkZWZpbmVkIGF0CgljdXJyZW50IGNvbnRleHQgb2YgaWRlbnRpZmllcnMgd2l0aCB2YXJpYWJseSBtb2RpZmllZCB0eXBlLgoJKHN0YXJ0X2Z1bmN0aW9uKTogQ3JlYXRlIHN0YWNrIGxldmVsIGZvciBjb250ZXh0IG9mIGlkZW50aWZpZXJzCgl3aXRoIHZhcmlhYmx5IG1vZGlmaWVkIHR5cGUuCgkoZmluaXNoX2Z1bmN0aW9uKTogUG9wIHN0YWNrIGxldmVsIGZvciBjb250ZXh0IG9mIGlkZW50aWZpZXJzIHdpdGgKCXZhcmlhYmx5IG1vZGlmaWVkIHR5cGUuCgkqIGMtdHlwZWNrLmMgKGxhYmVsX2NvbnRleHRfc3RhY2spOiBSZW5hbWUgdG8KCWxhYmVsX2NvbnRleHRfc3RhY2tfc2UuCgkobGFiZWxfY29udGV4dF9zdGFja192bSwgY19iZWdpbl92bV9zY29wZSwgY19lbmRfdm1fc2NvcGUpOiBOZXcuCgkoY19maW5pc2hfZ290b19sYWJlbCk6IENoZWNrIGZvciBqdW1waW5nIGludG8gc2NvcGUgb2YgaWRlbnRpZmllcgoJd2l0aCB2YXJpYWJseSBtb2RpZmllZCB0eXBlLiAgUHVzaCBsYWJlbCBvbiBzdGFjayBmb3IgdGhvc2UganVtcGVkCgl0byBmcm9tIGN1cnJlbnQgY29udGV4dCBvZiBpZGVudGlmaWVycyB3aXRoIHZhcmlhYmx5IG1vZGlmaWVkCgl0eXBlLgoJKHN0cnVjdCBjX3N3aXRjaCk6IEFkZCBibG9ja2VkX3ZtLgoJKGNfc3RhcnRfY2FzZSk6IEluaXRpYWxpemUgYmxvY2tlZF92bS4KCShkb19jYXNlKTogQ2hlY2sgYmxvY2tlZF92bS4KCShjX2ZpbmlzaF9jYXNlKTogQWRkIGNvbW1lbnQuCgkoY19iZWdpbl9zdG10X2V4cHIsIGNfZmluaXNoX3N0bXRfZXhwcik6IFVwZGF0ZSBmb3IgcmVuYW1lZAoJdmFyaWFibGUgbGFiZWxfY29udGV4dF9zdGFjay4KCjIwMDUtMDQtMjIgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogdmFyYXNtLmMgKGRvX2Fzc2VtYmxlX2FsaWFzKTogUmV0dXJuIGVhcmx5IGlmIFRSRUVfQVNNX1dSSVRURU4KCShkZWNsKS4KCjIwMDUtMDQtMjIgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBkb2MvaW52b2tlLnRleGkgKFNQQVJDIG9wdGlvbnMpOiBEb2N1bWVudCB0aGF0IC1tYXBwLXJlZ3MKCWlzIHR1cm5lZCBvZmYgYnkgZGVmYXVsdCBvbiBTb2xhcmlzLgoKMjAwNS0wNC0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHZlcnNpb24uYyAodmVyc2lvbl9zdHJpbmcpOiBSZXN0b3JlIHByZXJlbGVhc2UgaW5mb3JtYXRpb24uCgkqIGRvYy9pbmNsdWRlL2djYy1jb21tb24udGV4aSAodmVyc2lvbik6IFNldCB0byA0LjAuMS4KCjIwMDUtMDQtMjAgIFJlbGVhc2UgTWFuYWdlcgoKCSogR0NDIDQuMC4wIHJlbGVhc2VkLgoKMjAwNS0wNC0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8yMDk5MQoJKiB0cmVlLXNzYS1jY3AuYyAoZm9sZF9zdG10KTogRG9uJ3Qgb3B0aW1pemUgT0JKX1RZUEVfUkVGcyBpZiB0aGF0Cgl3b3VsZCByZXN1bHQgaW4gYW4gYWxyZWFkeSBmaW5hbGl6ZWQgdW5yZWFjaGFibGUgbm9kZSBiZWNvbWluZwoJcmVhY2hhYmxlIHdoaWxlIGNncmFwaF9nbG9iYWxfaW5mb19yZWFkeS4KCjIwMDUtMDQtMTkgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogZG9jL2ludm9rZS50ZXhpIChPcHRpbWl6ZSBPcHRpb25zKTogUmVmZXIgdG8gdGhlIGNvcnJlY3QKCW9wdGltaXNhdGlvbiBmbGFnIC1mdHJlZS1kb21pbmF0b3Itb3B0cywgbm90IC1mdHJlZS1kb20uCgoyMDA1LTA0LTE3ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCglGaXggUFIgdHJlZS1vcHRpbWl6YXRpb24vMjA0OTAKCUZpeCBQUiB0cmVlLW9wdGltaXphdGlvbi8yMDkyOQoKCSogdHJlZS1zc2EtcHJlLmMgKGNyZWF0ZV9leHByZXNzaW9uX2J5X3BpZWNlcyk6IFVzZQoJZm9yY2VfZ2ltcGxlX29wZXJhbmQgb24gcmVzdWx0IG9mIGZvbGQsIHZhbHVlIG51bWJlcgoJZ2ltcGxlX29wZXJhbmQgcmVzdWx0LgoKMjAwNS0wNC0xNyAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJTWVyZ2UgZnJvbSBtYWlubGluZToKCgkyMDA1LTAyLTI4ICBHZWVydCBCb3NjaCAgPGJvc2NoQGduYXQuY29tPgoKCQlQUiBhZGEvMTU5NzcKCQkqIGRvYy9jb250cmliLnRleGk6IExpc3QgY29udHJpYnV0b3JzIGZvciBBZGEgZnJvbnQgZW5kCgoJMjAwNS0wMy0xNCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJCSogZG9jL2NwcG9wdHMudGV4aSAoLWZleGVjLWNoYXJzZXQpOiBBZGQgY29uY2VwdCBpbmRleAoJCWVudHJ5LgoJCSgtZndpZGUtZXhlYy1jaGFyc2V0KTogTGlrZXdpc2UuCgkJKC1maW5wdXQtY2hhcnNldCk6IExpa2V3aXNlLgoKCTIwMDUtMDQtMTUgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkJKiBkb2MvaW5zdGFsbC50ZXhpICgqLWlibS1haXgqKTogQWRkIGNvbW1lbnQgYWJvdXQgc3lzdGVtCgkJbGltaXRzLgoKMjAwNS0wNC0xNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29tYmluZS5jIChjb21iaW5lX3NpbXBsaWZ5X3J0eCk6IFJlbW92ZSBhIHRyYW5zZm9ybWF0aW9uIHRoYXQKCXJlbGllcyBvbiBhbiBpbnZhbGlkIGFzc3VtcHRpb24gYWJvdXQgcnRsIHNpZ24tZXh0ZW5zaW9uIHNlbWFudGljcy4KCjIwMDUtMDQtMTcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzIwMzc1CgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jIChhbHBoYV9zZXR1cF9pbmNvbWluZ192YXJhcmdzKTogQWR2YW5jZSBhIGNvcHkKCW9mIENVTVVMQVRJVkVfQVJHUyBwYXN0IHRoZSBsYXN0IG5hbWVkIGFyZ3VtZW50LgoJKGFscGhhX3ZhX3N0YXJ0KTogRXhwZWN0IHByZXRlbmRfYXJnc19zaXplIG9ubHkgaWYgc3RyaWN0bHkgbGVzcyB0aGFuCgk2IG5hbWVkIGFyZ3VtZW50cy4KCSogY29uZmlnL2FscGhhL2FscGhhLmggKFRBUkdFVF9GUCwgVEFSR0VUX0ZQUkVHUywgVEFSR0VUX0dBUywKCVRBUkdFVF9JRUVFX0NPTkZPUk1BTlQsIFRBUkdFVF9JRUVFLCBUQVJHRVRfSUVFRV9XSVRIX0lORVhBQ1QsCglUQVJHRVRfQlVJTERfQ09OU1RBTlRTLCBUQVJHRVRfRkxPQVRfVkFYLCBUQVJHRVRfQldYLCBUQVJHRVRfTUFYLAoJVEFSR0VUX0ZJWCwgVEFSR0VUX0NJWCwgVEFSR0VUX0VYUExJQ0lUX1JFTE9DUywgVEFSR0VUX1NNQUxMX0RBVEEsCglUQVJHRVRfVExTX0tFUk5FTCwgVEFSR0VUX1NNQUxMX1RFWFQsIFRBUkdFVF9MT05HX0RPVUJMRV8xMjgsCglUQVJHRVRfQ1BVX0VWNSwgVEFSR0VUX0NQVV9FVjYsIFRBUkdFVF9TVVBQT1JUX0FSQ0gpOiBCb29sZWFuaXplLgoKMjAwNS0wNC0xNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8yMDczOQoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9hZGRyX2V4cHIpOiBDb21wZW5zYXRlIGZvciByZW1vdmFsIG9mCgllLmcuIGN2LXF1YWxpZmljYXRpb24gY29udmVyc2lvbnMuCgoyMDA1LTA0LTE2ICBHZXJhbGQgUGZlaWZlciAgPGdlcmFsZEBwZmVpZmVyLmNvbT4KCgkqIGRvYy9pbnN0YWxsLnRleGkgKFNwZWNpZmljKTogQXZvaWQgdXNpbmcgYXN0ZXJpc2tzIGluIEBhbmNob3IKCW5hbWVzIHJlbGF0ZWQgdG8gdGFyZ2V0IHRyaXBsZXRzLgoJUmVtb3ZlIGk/ODYtKi1lc2l4IGZyb20gcGxhdGZvcm0gZGlyZWN0b3J5LgoJUmVtb3ZlIHBvd2VycGMtKi1lYWJpYWl4IGZyb20gcGxhdGZvcm0gZGlyZWN0b3J5LgoKMjAwNS0wNC0xNiAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgbWlkZGxlLWVuZC8yMDQ5MQoJKiBjb25maWcvaWE2NC9pYTY0LmMgKHJ0eF9uZWVkc19iYXJyaWVyKTogUmVjdXJzZSBpbnN0ZWFkIG9mCglmYWxsaW5nIHRocm91Z2ggZnJvbSBTVUJSRUcgY2FzZSB0byBSRUcuCgoyMDA1LTA0LTE1ICBEYXZlIEtvcm4gPGRhdmUua29ybkBhcnRpbWkuY29tPgoKCSogZ2NjLmMgKGRlZmF1bHRfY29tcGlsZXJzKTogQ2xhcmlmeSBvYnNjdXJlIGVycm9yIG1lc3NhZ2Ugd2hlbgoJcmVhZGluZyBmcm9tIHN0YW5kYXJkIGlucHV0LgoKMjAwNS0wNC0xNSAgUmFpbmVyIE9ydGggIDxyb0BUZWNoRmFrLlVuaS1CaWVsZWZlbGQuREU+CgoJKiBndGhyLXBvc2l4LmMgKHB0aHJlYWRfY2FuY2VsKTogRGVmaW5lLgoJKHB0aHJlYWRfbXV0ZXhhdHRyX2luaXQpOiBMaWtld2lzZS4KCShwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKTogTGlrZXdpc2UuCgkocHRocmVhZF9tdXRleGF0dHJfZGVzdHJveSk6IExpa2V3aXNlLgoKMjAwNS0wNC0xNSAgVm9sa2VyIFJlaWNoZWx0ICA8cmVpY2hlbHRAaWdwbS5yd3RoLWFhY2hlbi5kZT4KCgkqIGRvYy9pbnZva2UudGV4aTogRml4IHR5cG9zLgoJKiBkb2MvbWQudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9ydGwudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9zb3VyY2VidWlsZC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL3RtLnRleGk6IExpa2V3aXNlLgoKMjAwNS0wNC0xNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiB0cmVlLWVoLmMgKGxvd2VyX3RyeV9maW5hbGx5X2NvcHkpOiBHZW5lcmF0ZSBuZXcgY29kZSBpbgoJcmVzcG9uc2UgdG8gZ290b19xdWV1ZSBlbnRyaWVzIGFzIGlmIHRoZSBxdWV1ZSB3YXMgc29ydGVkIGJ5CglpbmRleCwgbm90IHBvaW50ZXJzLgoJKGxvd2VyX3RyeV9maW5hbGx5X3N3aXRjaCk6IExpa2V3aXNlLgoKMjAwNS0wNC0xNSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5oIChBU01fT1VUUFVUX0NBU0VfTEFCRUwpOiBEZWxldGUuCgkoSlVNUF9UQUJMRVNfSU5fVEVYVF9TRUNUSU9OKTogRGVmaW5lLgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHMxNl9pbnNuX2xlbmd0aCk6IFJlbW92ZSByZWZlcmVuY2UgdG8KCUpVTVBfVEFCTEVTX0lOX1RFWFRfU0VDVElPTi4KCjIwMDUtMDQtMTQgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogZG9jL2NwcC50ZXhpLCBkb2MvaW5zdGFsbC50ZXhpOiBDaGFuZ2UgcmVmZXJlbmNlcyB0byBHQ0MgMy41IHRvCglyZWZlciB0byA0LjAuCgoyMDA1LTA0LTE0ICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCglQUiB0YXJnZXQvMjA5MjQKCSogY29uZmlnL2lhNjQvaWE2NC5tZCAoZGl2c2YzX2ludGVybmFsX2xhdCk6IEdlbmVyYXRlIGZyY3BhIHdpdGgKCWZwc3IgMCBpbnN0ZWFkIG9mIGZwc3IgMS4KCShkaXZzZjNfaW50ZXJuYWxfdGhyKTogRGl0dG8uCgkoZGl2ZGYzX2ludGVybmFsX2xhdCk6IERpdHRvLgoJKGRpdmRmM19pbnRlcm5hbF90aHIpOiBEaXR0by4KCShkaXZ4ZjNfaW50ZXJuYWxfbGF0KTogRGl0dG8uCgkoZGl2eGYzX2ludGVybmFsX3Rocik6IERpdHRvLgoKMjAwNS0wNC0xNCAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCVBSIHRhcmdldC8yMDkyNwoJKiBjb25maWcvczM5MC9zMzkwLW1vZGVzLmRlZjogRGVmaW5lIFRGbW9kZS4KCjIwMDUtMDQtMTQgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJICAgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIHRhcmdldC8yMDEyNgoJKiBsb29wLmMgKGxvb3BfZ2l2c19yZXNjYW4pOiBJZiByZXBsYWNlbWVudCBvZiBERVNUX0FERFIgZmFpbGVkLAoJc2lnbmFsIHRoYXQgYWxsIEdJVnMgY291bGRuJ3QgYmUgcmVkdWNlZC4KCjIwMDUtMDQtMTIgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBjb25maWcvc3BhcmMvc3BhcmMuaCAoQVBQTFlfUkVTVUxUX1NJWkUpOiBTZXQgdG8gMjQgaW4gNjQtYml0IG1vZGUuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5tZCAodW50eXBlZF9jYWxsKTogU2F2ZSB0aGUgcmVnaXN0ZXJzIG1hbnVhbGx5LgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKGxlZ2l0aW1hdGVfYWRkcmVzc19wKTogVXNlIFRBUkdFVF9BUkNIMzIuCgoyMDA1LTA0LTEyICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJUFIgbWlkZGxlLWVuZC8yMDkxNwoJKiBjb25maWcvczM5MC9zMzkwLm1kICgiKnNldF90cCIpOiBVc2UgU0VUIGluIHBhdHRlcm4uCgkoInNldF90cF82NCIsICJzZXRfdHBfMzEiKTogQWRhcHQgZXhwYW5kZWQgcGF0dGVybi4KCjIwMDUtMDQtMDkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8yMDc5NQoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGNvbnN0cnVjdF9jb250YWluZXIpOiBQYXNzIGVtcHR5IGFsaWduZWQKCXN0cnVjdCwgdW5pb24gb3IgY2xhc3MgaW4gbWVtb3J5LgoKMjAwNS0wNC0wOCAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCUJhY2twb3J0IGZyb20gbWFpbmxpbmU6CgkqIGNvbmZpZy9zMzkwL3RwZi5oIChBU01fU1BFQyk6IERlZmluZS4KCjIwMDUtMDQtMDcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJQmFja3BvcnQgZnJvbSBtYWlubGluZToKCgkyMDA1LTA0LTAzICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJUFIgbWlkZGxlLWVuZC8yMDY0OAoJKiBiYi1yZW9yZGVyLmMgKGR1cGxpY2F0ZV9jb21wdXRlZF9nb3Rvcyk6IERvIG5vdCB1bmZhY3RvcgoJYSBjb21wdXRlZCBnb3RvIGlmIHRoZSBlZGdlIHRvIHRoZSBjb21wdXRlZCBnb3RvIGJsb2NrIGhhcwoJaW5jb21pbmcgYWJub3JtYWwgZWRnZXMuICBDbGFyaWZ5IGhvdyB0aGUgZnVuY3Rpb24gd29ya3MuCgoyMDA1LTA0LTA3ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiB0YXJnZXQvMjAwOTMKCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X3VuYXJ5X29wZXJhdGlvbik6IENoZWNrCglTVUJSRUdfUFJPTU9URURfVU5TSUdORURfUCAob3ApID4gMCBmb3IgemVyby1leHRlbnNpb24uCgoyMDA1LTA0LTA3ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGFkYWNvcmUuY29tPgoKCVBSIGFkYS8xODY1OQoJUFIgYWRhLzE4ODE5CgkqIGRvYy9pbnZva2UudGV4aSAoT3B0aW1pemUgT3B0aW9ucyk6IERvY3VtZW50IHRoYXQKCS1mdHJlZS1zcmEgaXMgbm90IGF1dG9tYXRpY2FsbHkgZW5hYmxlZCBmb3IgdGhlIEFkYSBjb21waWxlci4KCjIwMDUtMDQtMDYgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGMub3B0ICgtRik6IFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGZyb20gaGVscCBzdHJpbmcuCgkoLWZpbnB1dC1jaGFyc2V0KTogVXNlIGEgdGFiIHRvIHNlcGFyYXRlIHRoZSBzd2l0Y2ggbmFtZSBhbmQgaGVscAoJc3RyaW5nLgoJKiBjb21tb24ub3B0ICgtZnNjaGVkLXN0YWxsZWQtaW5zbnMsIC1mc2NoZWQtc3RhbGxlZC1pbnNucy1kZXApCgkoLWZ0cmVlLXZlY3Rvcml6ZXItdmVyYm9zZSk6IExpa2V3aXNlLgoKMjAwNS0wNC0wNiAgRGFsZSBKb2hhbm5lc2VuICA8ZGFsZWpAYXBwbGUuY29tPgoKCSogZG9jL2ludm9rZS50ZXhpIChPcHRpbWl6YXRpb24gT3B0aW9ucyk6ICBSZW1vdmUKCWR1cGxpY2F0ZSAtZmNzZS1mb2xsb3ctanVtcHMuICBBZGQgLWZ3ZWIuCgkoLWZ0cmVlLWxpbSk6ICBGaXggc3BlbGxpbmcgKC1mdHJlZS1sb29wLWltLCBpbnZhcmlhbnRzKS4KCSgtZml2Y2Fub24pOiAgRml4IHNwZWxsaW5nICgtZnRyZWUtbG9vcC1pdmNhbm9uKS4KCjIwMDUtMDQtMDYgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogYy1kZWNsLmMgKGZpbmlzaF9kZWNsKTogQXBwbHkgcGVuZGluZyAjcHJhZ21hIHdlYWsgcmVnYXJkbGVzcyBvZgoJc2NvcGUuCgoyMDA1LTA0LTA2ICBSYW5qaXQgTWF0aGV3ICA8cm1hdGhld0Bob3RtYWlsLmNvbT4KCgkqIGRvYy9pbnN0YWxsLnRleGk6IFVwZGF0ZSB0aGUgVVJMIGZvciBKYWNrcy4KCSogZG9jL3NvdXJjZWJ1aWxkLnRleGk6IExpa2V3aXNlLgoKMjAwNS0wNC0wNiAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0YXJnZXQvMTcyNDUKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKGxlZ2l0aW1hdGVfYWRkcmVzc19wKTogUmVtb3ZlICdpbW0yJy4KCVJldmVydCAyMDA0LTEwLTA4IHBhdGNoLiAgUmVqZWN0IFRGbW9kZSBMT19TVU0gaW4gMzItYml0IG1vZGUuCgoyMDA1LTA0LTA1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8yMDA3NgoJKiB0cmVlLWlubGluZS5jIChpbmxpbmVfZm9yYmlkZGVuX3BfMSk6IFByZXZlbnQgaW5saW5pbmcgZnVuY3Rpb25zCgl0aGF0IGNhbGwgX19idWlsdGluX3JldHVybiBvciBfX2J1aWx0aW5fYXBwbHlfYXJncy4KCjIwMDUtMDQtMDYgVXJvcyBCaXpqYWsgPHVyb3NAa3NzLWxva2Euc2k+CgoJUFIgdGFyZ2V0LzIwNDIxCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKGZybmRpbnR4ZjJfZmxvb3IsIGZybmRpbnR4ZjJfY2VpbCkKCShmcm5kaW50eGYyX3RydW5jLCBmcm5kaW50eGYyX21hc2tfcG0pOiBBZGQgRkxBR1NfUkVHIGNsb2JiZXIuCglBbGxvY2F0ZSBsb2NhbCBzdGFjayBzbG90cyBoZXJlLiAgU2V0IGl4ODZfb3B0aW1pemVfbW9kZV9zd2l0Y2hpbmcuCglmbGFnIGhlcmUuIEltcGxlbWVudCB1c2luZyBkZWZpbmVfaW5zbl9hbmRfc3BsaXQuCgkoZnJuZGludHhmMl9mbG9vcl9pMzg3LCBmcm5kaW50eGYyX2NlaWxfaTM4NywgZnJuZGludHhmMl90cnVuY19pMzg3KQoJKGZybmRpbnR4ZjJfbWFza19wbV9pMzg3KTogTmV3IGluc24gcGF0dGVybnMuCgkoZmxvb3JzZjIsIGZsb29yZGYyLCBmbG9vcnhmMik6IFJlbW92ZSBsb2NhbCBzdGFjayBzbG90IGFsbG9jYXRpb25zLgoJRG8gbm90IHNldCBpeDg2X29wdGltaXplX21vZGVfc3dpdGNoaW5nIGZsYWcuCgkoY2VpbHNmMiwgY2VpbGRmMiwgY2VpbHhmMik6IFNhbWUuCgkoYnRydW5jc2YyLCBidHJ1bmNkZjIsIGJ0cnVuY3hmMik6IFNhbWUuCgkobmVhcmJ5aW50c2YyLCBuZWFyYnlpbnRkZjIsIG5lYXJieWludHhmMik6IFNhbWUuCgoyMDA1LTA0LTA1ICBKYW1lcyBFLiBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCVBSIHRhcmdldC8yMDY3MAoJKiB1bndpbmQtaWE2NC5jICh1d19pbnRhbGxfY29udGV4dCk6IEFkZCBtaXNzaW5nIGxvYWQgb2YgcjI3LgoKMjAwNS0wNC0wNSAgVGhvbWFzIEZpdHpzaW1tb25zICA8Zml0enNpbUByZWRoYXQuY29tPgoKCSogZG9jL2luc3RhbGwudGV4aSAoQ29uZmlndXJhdGlvbik6IERvY3VtZW50IC0td2l0aC1qYXZhLWhvbWUuCgoyMDA1LTA0LTA1ICBEYWxlIEpvaGFubmVzZW4gIDxkYWxlakBhcHBsZS5jb20+CgoJUFIgbWlkZGxlLWVuZC8xOTIyNQoJKiBjYWxscy5jIChleHBhbmRfY2FsbCk6ICBGbHVzaCBwZW5kaW5nIGRlZmVycmFscyBiZWZvcmUKCXRocm93aW5nIGNhbGwuCgoyMDA1LTA0LTA2ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHRhcmdldC8yMDYyNQoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChnZW5lcmljX3R5cGVfZm9yKTogTmV3IGZ1bmN0aW9uLgoJKGFkZF9jYW5kaWRhdGVfMSk6IFVzZSBnZW5lcmljX3R5cGVfZm9yIGluc3RlYWQgb2YgdW5zaWduZWRfdHlwZV9mb3IuCgoyMDA1LTA0LTA1ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKCp0cnVuY2Rmc2YyX2kzODdfMSk6IE5ldyBwYXR0ZXJuLgoKMjAwNS0wNC0wNSAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBkb2MvaW52b2tlLnRleGkgKE9wdGltaXplIE9wdGlvbnMpOiBNZW50aW9uIC1mdHJlZS1scnMsIG5vdAoJLWZ0cmVlLWxpdmVfcmFuZ2Vfc3BsaXQuICBQZXJoYXBzIHJlbmFtZWQgYXQgc29tZSBwb2ludD8KCjIwMDUtMDQtMDUgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy8xOTMxNwoJKiBjYWxscy5jIChleHBhbmRfY2FsbCk6IERpc2FibGUgcmV0dXJuIHNsb3Qgb3B0aW1pemF0aW9uLgoKMjAwNS0wNC0wNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMjAzNDIKCVBSIHRhcmdldC8yMDQ0NwoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKHByaW50X29wZXJhbmQpOiBIYW5kbGUgdmVjdG9yIHplcm9zLgoJKGl4ODZfc3BsaXRfdG9fcGFydHMpOiBIYW5kbGUgQ09OU1RfVkVDVE9SLgoJKGl4ODZfaGFyZF9yZWdub19tb2RlX29rKTogQWxsb3cgTU1YIG1vZGVzIGluIGdlbmVyYWwgcmVncy4KCShpeDg2X21vZGVzX3RpZWFibGVfcCk6IFVzZSBpeDg2X2hhcmRfcmVnbm9fbW9kZV9vayB0byBkZWNpZGUKCXdoYXQgbW9kZXMgdG8gdGllIGZvciBNTVggYW5kIFNTRSByZWdpc3RlcnMuCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoTU1YX1JFR19NT0RFX1ApOiBSZW1vdmUuCgkqIGNvbmZpZy9pMzg2L2kzODYubWQ6IEV4dGVuZCBtb3ZlIDAgLT4geG9yIHBlZXBob2xlIHRvIGFwcGx5Cgl0byB2ZWN0b3IgbW9kZXMgYXMgd2VsbC4KCSogY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZCAoY29uc3QwX29wZXJhbmQpOiBIYW5kbGUgVk9JRG1vZGUKCXByb3Blcmx5IGFzIGFuIGlucHV0IG1vZGUuCgoyMDA1LTA0LTA1ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzIwNTI3CgkqIGNvbWJpbmUuYyAoY2FuX2NvbWJpbmVfcCkgW0FVVE9fSU5DX0RFQ106IFdoZW4gSU5TTiBoYXMgYW4KCVJFR19JTkMgbm90ZSwgdGVzdCB0aGF0IHRoZSByZWdpc3RlciBhbHNvIGlzbid0IG1lbnRpb25lZCBpbiBQUkVECglvciBTVUNDLgoKMjAwNS0wNC0wNSAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChUQVJHRVRfQVNNX0ZJTEVfRU5EKTogVW5kZWZpbmUgYmVmb3JlCglvdmVycmlkaW5nLgoKMjAwNS0wNC0wNSAgT2xpdmllciBIYWlucXVlICA8aGFpbnF1ZUBhZGFjb3JlLmNvbT4KCgkqIGNvbmZpZy9taXBzL2lyaXM2LmggKERXQVJGX0ZSQU1FX1JFVFVSTl9DT0xVTU4pOiBSZWRlZmluZSB0bwoJbWF0Y2ggd2hhdCB0aGUgc3lzdGVtIHVud2luZGVyIGV4cGVjdHMuCgkqIGNvbmZpZy9taXBzL21pcHMuYyAobWlwc19mcmFtZV9zZXQpOiBJZiB3ZSdyZSBzYXZpbmcgdGhlIHJldHVybgoJYWRkcmVzcyByZWdpc3RlciBhbmQgdGhlIGR3YXJmIHJldHVybiBhZGRyZXNzIGNvbHVtbiBudW1iZXIgZGlmZmVycwoJZnJvbSB0aGUgaGFyZCByZWdpc3RlciBudW1iZXIsIGFkanVzdCB0aGUgbm90ZSByZWcgdG8gcmVmZXIgdG8gdGhlCglmb3JtZXIuCgoyMDA1LTA0LTA1ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoJICAgIFNlYmFzdGlhbiBQb3AgPHNlYmFzdGlhbi5wb3BAY3JpLmVuc21wLmZyPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5OTAzCgkqIHRyZWUtY2hyZWMuYyAoY2hyZWNfY29udmVydCk6IFJldHVybiBjaHJlY19kb250X2tub3cgZm9yIGNvbnN0YW50cwoJdGhhdCBkb24ndCBmaXQgaW4gdGhlaXIgdHlwZSBhZnRlciBjb252ZXJzaW9uLgoKMjAwNS0wNC0wNCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgkgICAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJUFIgYysrLzE5MTk5CgkqIGZvbGQtY29uc3QuYyAobm9uX2x2YWx1ZSk6IFNwbGl0IHRlc3RzIGludG8uLi4KCShtYXliZV9sdmFsdWVfcCk6IE5ldyBmdW5jdGlvbi4KCShmb2xkX2NvbmRfZXhwcl93aXRoX2NvbXBhcmlzb24pOiBQcmVzZXJ2ZSBsdmFsdWUtbmVzcyBmb3IgdGhlCglDKysgZnJvbnQtZW5kIHByaW9yIHRvIGxvd2VyaW5nIGludG8gZ2ltcGxlIGZvcm0uCgoyMDA0LTA0LTA0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE5NTM3CgkqIE1ha2VmaWxlLmluICh0cmVlLXNzYS1sb29wLWl2b3B0cy5vKTogRGVwZW5kIG9uIGxhbmdob29rcy5oLgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jOiBJbmNsdWRlIGxhbmdob29rcy5oLgoJKGFkZF9zdGFuZGFyZF9pdl9jYW5kaWRhdGVzX2Zvcl9zaXplKTogTmV3IGZ1bmN0aW9uLCBleHRyYWN0aW5nIGNvZGUKCWZyb20gYWRkX3N0YW5kYXJkX2l2X2NhbmRpZGF0ZXMgYW5kIHBhcmFtZXRlcml6aW5nIGl0IGJ5IHR5cGUgc2l6ZS4KCShhZGRfc3RhbmRhcmRfaXZfY2FuZGlkYXRlcyk6IFVzZSBhZGRfc3RhbmRhcmRfaXZfY2FuZGlkYXRlc19mb3Jfc2l6ZS4KCjIwMDUtMDQtMDQgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBkb2MvaW52b2tlLnRleGkgKFNQQVJDIG9wdGlvbnMpOiBEb2N1bWVudCB0aGF0CgktbWxpdHRsZS1lbmRpYW4gaXMgbm90IHN1cHBvcnRlZCBvbiBMaW51eCBlaXRoZXIuCgoyMDA1LTA0LTA0ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIHRhcmdldC8yMDQ0NgoJKiBjb25maWcvc3BhcmMvc3BhcmMuaCAoTkVFRF9JTkRJQ0FURV9FWEVDX1NUQUNLKTogRGVmaW5lIHRvIDAuCgkqIGNvbmZpZy9zcGFyYy9saW51eC5oIChUQVJHRVRfQVNNX0ZJTEVfRU5EKTogRGVsZXRlLgoJKE5FRURfSU5ESUNBVEVfRVhFQ19TVEFDSyk6IERlZmluZSB0byAxLgoJKiBjb25maWcvc3BhcmMvbGludXg2NC5oIChUQVJHRVRfQVNNX0ZJTEVfRU5EKTogRGVsZXRlLgoJKE5FRURfSU5ESUNBVEVfRVhFQ19TVEFDSyk6IERlZmluZSB0byAxLgoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAoVEFSR0VUX0FTTV9GSUxFX0VORCk6IFNldCB0byBzcGFyY19maWxlX2VuZC4KCShhZGRfcGNfdG9fcGljX3N5bWJvbCk6IFJlbmFtZSBpbnRvIHBpY19oZWxwZXJfc3ltYm9sLgoJKGFkZF9wY190b19waWNfc3ltYm9sX25hbWUpOiBSZW5hbWUgaW50byBwaWNfaGVscGVyX3N5bWJvbF9uYW1lLgoJKHBpY19oZWxwZXJfZW1pdHRlZF9wKTogTmV3IGdsb2JhbC4KCShlbWl0X3BpY19oZWxwZXIpOiBOZXcgZnVuY3Rpb24gZXh0cmFjdGVkIGZyb20uLi4KCShsb2FkX3BpY19yZWdpc3Rlcik6IC4uLmhlcmUuICBBZGQgJ2RlbGF5X3BpY19oZWxwZXInIHBhcmFtZXRlci4KCURvIG5vdCBjYWxsIGVtaXRfcGljX2hlbHBlciBpZiBkZWxheV9waWNfaGVscGVyIGlzIHRydWUuCgkoc3BhcmNfZXhwYW5kX3Byb2xvZ3VlKTogUGFzcyAnZmFsc2UnIHRvIGxvYWRfcGljX3JlZ2lzdGVyLgoJKHNwYXJjX291dHB1dF9taV90aHVuayk6IFBhc3MgJ3RydWUnIHRvIGxvYWRfcGljX3JlZ2lzdGVyLgoJKHNwYXJjX2ZpbGVfZW5kKTogTmV3IGZ1bmN0aW9uLgoKMjAwNS0wNC0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCSAgICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE2MTA0CgkqIGZvbGQtY29uc3QuYyAoZm9sZF91bmFyeSk6IEZpeCBmb2xkaW5nIG9mIHZlY3RvciBjb252ZXJzaW9ucy4KCjIwMDUtMDQtMDQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZGVidWcvMjA1MDUKCSogZHdhcmYyb3V0LmMgKHRyZWVfYWRkX2NvbnN0X3ZhbHVlX2F0dHJpYnV0ZSk6IE9ubHkgYWRkIGlmIGl0J3MKCWFuIElOVEVHRVJfQ1NULgoKMjAwNS0wNC0wMyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJUFIgYysrLzE4NjQ0CgkqIGRvYy9pbnZva2UudGV4aSAoLVdzeW50aCk6IERvbid0IGRvY3VtZW50LCBhcyBpdCBub3cgaXMgdm9pZCBvZgoJc2VtYW50aWNzLgoKMjAwNS0wNC0wMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJUFIgZGVidWcvMTkzNDUKCSogdHJlZS1pbmxpbmUuYyAocmVtYXBfdHlwZSk6IFJlbWFwIFRZUEVfU1RVQl9ERUNMLgoJKHJlbWFwX2RlY2wpOiBJbnNlcnQgdHlwZSBkZWNsIGluIG1hcCBlYXJsaWVyLgoKMjAwNS0wNC0wMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMjA2NDAKCSogdHJlZS1zc2EtZGNlLmMgKHJlbW92ZV9kZWFkX3N0bXQpOiBEb24ndCByZWRpcmVjdCBlZGdlIHRvCglwb3N0LWRvbWluYXRvciBpZiBpdCBoYXMgcGhpIG5vZGVzLgoJKGVsaW1pbmF0ZV91bm5lY2Vzc2FyeV9zdG10cyk6IFJlbW92ZSBkZWFkIHBoaXMgaW4gYWxsIGJsb2NrcwoJYmVmb3JlIGRlYWQgc3RhdGVtZW50cy4KCjIwMDUtMDQtMDIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMjA0OTEKCSogZmluYWwuYyAoYWx0ZXJfc3VicmVnKTogRG9uJ3QgY2FsbCBzdWJyZWdfcmVnbm8gZm9yIGEgbm9uLVJFRy4KCjIwMDUtMDQtMDIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMjAyOTAKCSogbG9vcC5jIChmb3JfZWFjaF9pbnNuX2luX2xvb3ApOiBEb24ndCBhc3N1bWUgdGhlIGxvb3AgYm9keSBydW5zCglpbiBldmVyeSBpdGVyYXRpb24gaWYgdGhlIGVudHJ5IHBvaW50IGlzIHRoZSBleGl0IHRlc3QuCgoyMDA1LTA0LTAyICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvdC1kYXJ3aW4gKFRBUkdFVF9MSUJHQ0MyX0NGTEFHUyk6IEFkZCAtcGlwZS4KCSogY29uZmlnL3QtZGFyd2luIChUQVJHRVRfTElCR0NDMl9DRkxBR1MpOiBMaWtld2lzZS4KCjIwMDUtMDQtMDIgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC90LWRhcndpbjg6IENvbW1lbnQgb3V0IHBwYzY0IG11bHRpbGliLgoKMjAwNS0wNC0wMSAgUmljaGFyZCBHdWVudGhlciA8cmd1ZW50aEB0YXQucGh5c2lrLnVuaS10dWViaW5nZW4uZGU+CgkgICAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoJICAgIFN0ZXZlbiBCb3NzY2hlciA8c3RldmVuYkBzdXNlLmRlPgoKCSogY2dyYXBodW5pdC5jIChjZ3JhcGhfZXN0aW1hdGVfc2l6ZV9hZnRlcl9pbmxpbmluZyk6IENvbXB1dGUKCWNhbGwgY29zdCBiYXNlZCBvbiBhcmd1bWVudCBzaXplcy4KCShjZ3JhcGhfbWFya19pbmxpbmVfZWRnZSk6IEF2b2lkIGlubGluZSB1bml0IGZyb20gc2hyaW5raW5nIGJ5CglpbmxpbmluZy4KCSogcGFyYW1zLmRlZjogKG1heC1pbmxpbmUtaW5zc24tc2luZ2xlKTogU2V0IHRvIDQ1MC4KCShtYXgtaW5saW5lLWluc25zLWF1dG8pOiBTZXQgdG8gOTAuCgkobWF4LWlubGluZS1pbnNucy1yZWN1cnNpdmUpOiBTZXQgdG8gNDUwCgkobWF4LWlubGluZS1pbnNucy1yZWN1cnNpdmUtYXV0byk6IFNldCB0byA0NTAuCgkobGFyZ2UtZnVuY3Rpb24taW5zbnMpOiBTZXQgdG8gMjcwMC4KCShpbmxpbmUtY2FsbC1jb3N0KTogTmV3IHBhcmFtZXRlci4KCSogdHJlZS1pbmxpbmUuYyAoZXN0aW1hdGVfbW92ZV9jb3N0KTogTmV3IGZ1bmN0aW9uLgoJKGVzdGltYXRlX251bV9pbnNuc18xKTogQ29tcHV0ZSBtb3ZlIHNpemVzIGNvc3RzIGJ5IGVzdGltYXRlX21vdmVfY29zdAoJZm9yIG5vbi1naW1wbGUtcmVncywgc2V0IGNvc3QgdG8gMCBmb3IgZ2ltcGxlLXJlZ3MuICBDb21wdXRlIGNhbGwgc2l6ZQoJYmFzZWQgb24gYXJndW1lbnRzLgoJKiB0cmVlLWlubGluZS5oIChlc3RpbWF0ZV9tb3ZlX2Nvc3QpOiBEZWNsYXJlLgoJKiBpbnZva2UudGV4aTogKG1heC1pbmxpbmUtaW5zc24tc2luZ2xlKTogQ2hhbmdlIGRlZmF1bHQgdG8gNDUwLgoJKG1heC1pbmxpbmUtaW5zbnMtYXV0byk6IENoYW5nZSBkZWZhdWx0IHRvIDkwLgoJKG1heC1pbmxpbmUtaW5zbnMtcmVjdXJzaXZlKTogQ2hhbmdlIGRlZmF1bHQgdG8gNDUwCgkobWF4LWlubGluZS1pbnNucy1yZWN1cnNpdmUtYXV0byk6IENoYW5nZSBkZWZhdWx0IHRvIDQ1MC4KCShsYXJnZS1mdW5jdGlvbi1pbnNucyk6IENoYW5nZSBkZWZhdWx0IHRvIDI3MDAuCgkoaW5saW5lLWNhbGwtY29zdCk6IERvY3VtZW50IG5ldyBwYXJhbWV0ZXIuCgoyMDA1LTA0LTAxICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2FybS9hcm0uYyAodGh1bWJfY2FsbF92aWFfbGFiZWwpOiBJbmNsdWRlIHNwYWNlIGZvciBTUC4KCShhcm1fb3V0cHV0X2Z1bmN0aW9uX2VwaWxvZ3VlKTogQWxsb3cgY2FsbF92aWFfU1AuCgkodGh1bWJfY2FsbF92aWFfcmVnLCBhcm1fZmlsZV9lbmQpOiBEaXR0by4KCSogY29uZmlnL2FybS9hcm0uaCAoc3RydWN0IG1hY2hpbmVfZnVuY3Rpb24pOiBJbmNsdWRlIHNwYWNlIGZvciBTUC4KCSh0aHVtYl9jYWxsX3ZpYV9sYWJlbCk6IFVwZGF0ZSBkZWNsYXJhdGlvbi4KCjIwMDUtMDQtMDEgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogYy1kZWNsLmMgKHZhbGlkYXRlX3Byb3RvX2FmdGVyX29sZF9kZWZuKTogTG9vayBhdAoJVFlQRV9NQUlOX1ZBUklBTlQgb2YgYXJndW1lbnQgdHlwZXMuCgoyMDA1LTA0LTAxICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJUFIgbWlkZGxlLWVuZC8yMDYzNQoJKiB2YXJhc20uYyAobWFya19kZWNsX3JlZmVyZW5jZWQpOiBEbyBub3QgbWFyayBleHRlcm4gaW5saW5lIGZ1bmN0aW9ucwoJYXMgbmVlZGVkLgoKMjAwNS0wNC0wMSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCglQUiBtaWRkbGUtZW5kLzE5NDU0CglQUiBydGwtb3B0aW1pemF0aW9uLzIwNjAwCgoJKiBjb21iaW5lLmMgKGdlbl9iaW5hcnkpOiBSZW1vdmUuCgkoa25vd25fY29uZCwgc2ltcGxpZnlfc2hpZnRfY29uc3QsIGZpbmRfc3BsaXRfcG9pbnQsCgljb21iaW5lX3NpbXBsaWZ5X3J0eCwgc2ltcGxpZnlfaWZfdGhlbl9lbHNlLCBzaW1wbGlmeV9zZXQsCglzaW1wbGlmeV9sb2dpY2FsLCBleHBhbmRfZmllbGRfYXNzaWdubWVudCwgZXh0cmFjdF9sZWZ0X3NoaWZ0LAoJZm9yY2VfdG9fbW9kZSwgaWZfdGhlbl9lbHNlX2NvbmQsIGFwcGx5X2Rpc3RyaWJ1dGl2ZV9sYXcsCglzaW1wbGlmeV9hbmRfY29uc3RfaW50LCBzaW1wbGlmeV9zaGlmdF9jb25zdCwgZ2VuX2xvd3BhcnRfZm9yX2NvbWJpbmUsCglzaW1wbGlmeV9jb21wYXJpc29uLCByZXZlcnNlZF9jb21wYXJpc29uKTogUmVwbGFjZSB3aXRoCglzaW1wbGlmeV9nZW5fYmluYXJ5LCBzaW1wbGlmeV9nZW5fcmVsYXRpb25hbCBvcgoJZGlzdHJpYnV0ZV9hbmRfc2ltcGxpZnlfcnR4LgoJKGRpc3RyaWJ1dGVfYW5kX3NpbXBsaWZ5X3J0eCk6IE5ldyBmdW5jdGlvbi4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9kZWNvbXBvc2VfYWRkcmVzcyk6IExvb2sgaW5zaWRlIFNVQlJFR3MKCXRvIGZpeCBhZGRyZXNzZXMgaW52b2x2aW5nIEVCUCBhbmQgRVNQLgoJKGFsaWduZWRfb3BlcmFuZCwgbGVnaXRpbWF0ZV9hZGRyZXNzX3AsIGl4ODZfYWRkcmVzc19jb3N0KTogQmUgcHJlcGFyZWQKCWZvciBTVUJSRUdlZCByZWdpc3RlcnMuCgkobGVnaXRpbWF0ZV9hZGRyZXNzX3ApOiBBY2NlcHQgU1VCUkVHZWQgcmVnaXN0ZXJzLgoKMjAwNS0wNC0wMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgYysrLzE5NDA2CgkqIGR3YXJmMm91dC5jIChnZW5fdHlwZV9kaWVfZm9yX21lbWJlcik6IEhhbmRsZSBGSUVMRF9ERUNMLgoJKGR3YXJmMm91dF9pbXBvcnRlZF9tb2R1bGVfb3JfZGVjbCk6IFVzZSBnZW5fdHlwZV9kaWVfZm9yX21lbWJlcgoJZm9yIEZJRUxEX0RFQ0xzLgoKMjAwNS0wNC0wMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy9jb250cmliLnRleGksIGRvYy9pbnZva2UudGV4aSwgZG9jL3RtLnRleGk6IEZpeCB0eXBvcy4KCjIwMDUtMDQtMDEgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMvMTc4NTUKCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfZXhwcik6IENyZWF0ZSBhIHRlbXBvcmFyeSBmb3IgbHZhbHVlCglDT05EX0VYUFIgYW5kIENBTExfRVhQUi4KCjIwMDUtMDMtMzEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBkb2MvdHJlZS1zc2EudGV4aTogRml4IGEgdHlwby4KCjIwMDUtMDMtMzEgIE9saXZpZXIgSGFpbnF1ZSAgPGhhaW5xdWVAYWRhY29yZS5jb20+CgoJKiBkd2FyZjJvdXQuYyAoZHdhcmYyb3V0X2ZyYW1lX2ZpbmlzaCk6IEhvbm9yIERXQVJGMl9GUkFNRV9JTkZPCglkZWZpbmVkIGFuZCBub24temVyby4KCjIwMDUtMDMtMzEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgdGFyZ2V0LzIwNjExCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChsb2FkX3RvY192NF9QSUNfMWIpOiBSZW1vdmUgaW5saW5lCglsYWJlbCBvcGVyYW5kLiAgUmVtb3ZlICh1c2UgKHVuc3BlYy4uKSkuICBEb24ndCBlbWl0IGEgbGFiZWwgb24KCXRoZSBvZmZzZXQgd29yZC4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2xlZ2l0aW1pemVfdGxzX2FkZHJlc3MpOiBEb24ndAoJZ2VuZXJhdGUgaW5saW5lIGxhYmVsIGZvciBsb2FkX3RvY192NF9QSUNfMWIuCgkocnM2MDAwX2VtaXRfbG9hZF90b2NfdGFibGUpOiBMaWtld2lzZS4KCjIwMDUtMDMtMzEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcuZ2NjOiBPYnNvbGV0ZSBpODYwLSotc3lzdjQqLCBpcDJrLSotZWxmLAoJbnMzMmstKi1uZXRic2RlbGYqLCBhbmQgbnMzMmstKi1uZXRic2QqLgoKMjAwNS0wMy0zMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy5nY2MgKGNwdV9pc182NGJpdCk6IFNldCBmb3IgNjQtYml0IHBvd2VycGMgY3B1cy4KCShwb3dlcnBjNjQtKi1saW51eCopOiBVc2UgaXQuICBSZWFycmFuZ2UgdG1fZmlsZSBhc3NpZ25tZW50LgoJKHBvd2VycGMtKi1saW51eCopOiBCdWlsZCBhIGJpYXJjaCBjb21waWxlciB3aGVuIC0tZW5hYmxlLXRhcmdldHMKCWlzIGdpdmVuIHdpdGggInBvd2VycGM2NCoiIG9yICJhbGwiLCBvciB3aGVuIC0td2l0aC1jcHUgY2hvb3NlcwoJYSA2NC1iaXQgY3B1LgoKMjAwNS0wMy0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNncmFwaC5oIChzdHJ1Y3QgY2dyYXBoX25vZGUpOiBBZGQgYWxpYXMuCgkqIHZhcmFzbS5jIChhc3NlbWJsZV9hbGlhcyk6IFNldCBpdC4KCSogY2dyYXBodW5pdC5jIChjZ3JhcGhfYXNzZW1ibGVfcGVuZGluZ19mdW5jdGlvbnMpOiBDaGVjayBpdCBhbmQKCWF2b2lkIGNhbGxpbmcgY2dyYXBoX2V4cGFuZF9mdW5jdGlvbi4KCjIwMDUtMDMtMzAgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMvNzcyCglQUiBjLzE3OTEzCgkqIGMtdHJlZS5oIChDX0RFQ0xfVU5KVU1QQUJMRV9TVE1UX0VYUFIsCglDX0RFQ0xfVU5ERUZJTkFCTEVfU1RNVF9FWFBSLCBzdHJ1Y3QgY19sYWJlbF9saXN0LCBzdHJ1Y3QKCWNfbGFiZWxfY29udGV4dCwgbGFiZWxfY29udGV4dF9zdGFjayk6IE5ldy4KCSogYy1kZWNsLmMgKGRlZmluZV9sYWJlbCk6IENoZWNrIGZvciBqdW1wcyBpbnRvIHN0YXRlbWVudAoJZXhwcmVzc2lvbnMuICBBZGQgbGFiZWwgdG8gbGlzdCBvZiBkZWZpbmVkIGxhYmVscy4KCShzdGFydF9mdW5jdGlvbik6IFB1c2ggY29udGV4dCBvbiBsYWJlbF9jb250ZXh0X3N0YWNrLgoJKGZpbmlzaF9mdW5jdGlvbik6IFBvcCBjb250ZXh0IGZyb20gbGFiZWxfY29udGV4dF9zdGFjay4KCSogYy10eXBlY2suYyAobGFiZWxfY29udGV4dF9zdGFjayk6IE5ldy4KCShjX2ZpbmlzaF9nb3RvX2xhYmVsKTogQ2hlY2sgZm9yIGp1bXBzIGludG8gc3RhdGVtZW50CglleHByZXNzaW9ucy4gIEFkZCBsYWJlbCB0byBsaXN0IG9mIGp1bXBlZCB0byBsYWJlbHMuCgkoc3RydWN0IGNfc3dpdGNoKTogQWRkIGJsb2NrZWRfc3RtdF9leHByLgoJKGNfc3RhcnRfY2FzZSk6IEluaXRpYWxpemUgaXQuCgkoZG9fY2FzZSk6IENoZWNrIGl0LgoJKGNfZmluaXNoX2Nhc2UpOiBWZXJpZnkgIWJsb2NrZWRfc3RtdF9leHByLgoJKGNfYmVnaW5fc3RtdF9leHByKTogIFB1c2ggY29udGV4dCBvbiBsYWJlbF9jb250ZXh0X3N0YWNrLgoJSW5jcmVtZW50IGJsb2NrZWRfc3RtdF9leHByLiAgTWFyayBsYWJlbHMganVtcGVkIHRvIGZyb20gb3V0c2lkZQoJYXMgdW5kZWZpbmFibGUuCgkoY19maW5pc2hfc3RtdF9leHByKTogRGVjZW1iZXIgYmxvY2tlZF9zdG10X2V4cHIuICBNYXJrIGxhYmVscwoJZGVmaW5lZCBpbiB0aGUgc3RhdGVtZW50IGV4cHJlc3Npb24gYW5kIG5vIGxvbmdlciBqdW1wYWJsZSB0by4KCU1hcmsgbGFiZWxzIGp1bXBlZCB0byBmcm9tIGp1c3Qgb3V0c2lkZSB0aGUgc3RhdGVtZW50IGV4cHJlc3Npb24KCWFzIGFnYWluIGRlZmluYWJsZS4gIFBvcCBjb250ZXh0IGZyb20gbGFiZWxfY29udGV4dF9zdGFjay4KCSogZG9jL2V4dGVuZC50ZXhpIChTdGF0ZW1lbnQgRXhwcnMpOiBVcGRhdGUuCgoyMDA1LTAzLTMwICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjLzIwMzY4CgkqIGMtZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IENoZWNrIGZvciBvbGRfZGVjbCBiZWluZwoJZXJyb3JfbWFya19ub2RlLgoKMjAwNS0wMy0zMCBNb3N0YWZhIEhhZ29nIDxtdXN0YWZhQGlsLmlibS5jb20+CgoJUFIgbWlkZGxlLWVuZC8yMDE3NwoJKiBkZGcuYyAoY3JlYXRlX2RkZ19kZXBlbmRlbmNlKTogSWdub3JlIHJlZy1hbnRpIGRlcGVuZGVuY3kuCgkqIG1vZHVsby1zY2hlZC5jIChjb25zdF9pdGVyYXRpb25fY291bnQpOiBSZXR1cm4gb24gTlVMTAoJcHJlLWhlYWRlci4KCShwcmludF9ub2RlX3NjaGVkX3BhcmFtcyk6IFJldHVybiBvbiBOVUxMIGR1bXBfZmlsZS4KCShnZW5lcmF0ZV9yZWdfbW92ZXMpOiBIYW5kbGUgcmVnLWFudGkgZGVwZW5kZW5jaWVzIGFuZCBkaXNyZWdhcmQKCWNsb3NpbmcgYnJhbmNoIHdoZW4gZ2VuZXJhdGluZyByZWdpc3RlciBtb3Zlcy4KCShzbXNfc2NoZWR1bGUpOiBNYXJrIHRoZSBTTVNlZCBibG9jayBkaXJ0eS4KCSogcGFzc2VzLmMgKHJlc3Rfb2ZfaGFuZGxlX3Ntcyk6IENhbGwgdXBkYXRlX2xpZmVfaW5mbyBmb3IgYWxsCgliYXNpYy1ibG9ja3MuCgkqIHRlc3RzdWl0ZS9nY2MuZGcvMjAwNTAzMjEtMS5jOiBOZXcgdGVzdC4KCSogdGVzdHN1aXRlL2djYy5kZy8yMDA1MDMzMC0xLmM6IE5ldyB0ZXN0LgoKMjAwNS0wMy0zMCAgU2ViYXN0aWFuIFBvcCAgPHBvcEBjcmkuZW5zbXAuZnI+CgoJKiB0cmVlLXNjYWxhci1ldm9sdXRpb24uYyAoaW5zdGFudGlhdGVfcGFyYW1ldGVyc18xKTogUmV0dXJuCglhcyBzb29uIGFzIGEgY2hyZWNfZG9udF9rbm93IGlzIGRldGVjdGVkLgoKMjAwNS0wMy0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGRvYy9pbnN0YWxsLnRleGk6IFVwZGF0ZSBiaW51dGlscyByZXF1aXJlbWVudCBmb3IgcG93ZXJwYyotbGludXguCgoyMDA1LTAzLTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVBSIHRhcmdldC8yMDIwMwoJKiBidWlsdGlucy5jIChnZXRfbWVtb3J5X3J0eCk6IEV4cGFuZCBhZGRyZXNzIGV4cCB1c2luZyBFWFBBTkRfTk9STUFMLgoJUmVtb3ZlIGNvbnZlcnRfbWVtb3J5X2FkZHJlc3MgY2FsbCBkdXBsaWNhdGluZyB0aGF0IGluIG1lbW9yeV9hZGRyZXNzLgoKMjAwNS0wMy0yOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8yMDUzMgoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfYmluYXJ5X29wZXJhdGlvbik6IFByb3RlY3QgZnJvbQoJb3ZlcmZsb3cgd2hlbiBhZGRpbmcgY29lZmZpY2llbnRzIGZvciBQTFVTIG9yIE1JTlVTLiAgSGFuZGxlCglDT05TVF9ET1VCTEUgZXhhY3QgcG93ZXIgb2YgdHdvIGFzIG11bHRpcGxpZXIuCgoyMDA1LTAzLTI5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIGMvMjA1MTkKCSogYy1kZWNsLmMgKGNfZmluaXNoX2luY29tcGxldGVfZGVjbCk6IFVwZGF0ZSBjb21wbGV0ZV9hcnJheV90eXBlIGNhbGwuCgkoYnVpbGRfY29tcG91bmRfbGl0ZXJhbCk6IExpa2V3aXNlLiAgUHJvcGFnYXRlIGRlY2wgdHlwZSBpbnRvIHRoZQoJaW5pdGlhbGl6ZXIuCgkoZmluaXNoX2RlY2wpOiBMaWtld2lzZS4gIFVzZSBuZXcgcmV0dXJuIHZhbHVlIGZyb20gY29tcGxldGVfYXJyYXlfdHlwZQoJZm9yIHplcm8gc2l6ZWQgYXJyYXlzLgoJKGNvbXBsZXRlX2FycmF5X3R5cGUpOiBNb3ZlIC4uLgoJKiBjLWNvbW1vbi5jIChjb21wbGV0ZV9hcnJheV90eXBlKTogLi4uIGhlcmUuICBDaGFuZ2UgZmlyc3QgYXJndW1lbnQKCXRvIHBvaW50ZXItdG8tdHlwZS1ub2RlLiAgQ29uc2lzdGVudGx5IHVzZSBzaXpldHlwZSBmb3IgdGhlIGluZGV4CglleGNlcHQgZm9yIHplcm8gc2l6ZWQgYXJyYXlzLiAgRGV0ZWN0IHplcm8gc2l6ZWQgYXJyYXlzIGZvciBwZWRhbnRpYwoJbW9kZSBkaWFnbm9zdGljcy4gIENyZWF0ZSBhIG5ldyB0eXBlIG5vZGUgaW5zdGVhZCBvZiBtb2RpZnlpbmcgdGhlCglvbGQgbm9kZSBpbiBwbGFjZS4KCSogYy10cmVlLmggKGNvbXBsZXRlX2FycmF5X3R5cGUpOiBNb3ZlIGRlY2wgLi4uCgkqIGMtY29tbW9uLmggKGNvbXBsZXRlX2FycmF5X3R5cGUpOiAuLi4gaGVyZS4KCjIwMDUtMDMtMjkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHQvMTkxMDgKCSogdHJlZS1zcmEuYyAoZ2VuZXJhdGVfZWxlbWVudF9pbml0XzEpOiBIYW5kbGUgUkFOR0VfRVhQUi4KCjIwMDUtMDMtMjkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMjA2MjIKCSogY2dyYXBoLmggKHN0cnVjdCBjZ3JhcGhfdmFycG9vbF9ub2RlKTogQWRkIGFsaWFzIGZpZWxkLgoJKiBjZ3JhcGguYyAoY2dyYXBoX3ZhcnBvb2xfYXNzZW1ibGVfcGVuZGluZ19kZWNscyk6IERvbid0IGNhbGwKCWFzc2VtYmxlX3ZhcmlhYmxlIG9uIGFsaWFzZXMuCgkqIHZhcmFzbS5jIChhc3NlbWJsZV9hbGlhcyk6IFNldCBub2RlLT5hbGlhcy4KCSogdG9wbGV2LmMgKHdyYXB1cF9nbG9iYWxfZGVjbGFyYXRpb25zKTogRG9uJ3QgY2FsbAoJcmVzdF9vZl9kZWNsX2NvbXBpbGF0aW9uIG9uIGFsaWFzZXMgYWdhaW4uCgoyMDA1LTAzLTI5ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIG1pZGRsZS1lbmQvMjAyNjMKCSogdmFyYXNtLmMgKG1ha2VfZGVjbF9ydGwpIFtBU01fREVDTEFSRV9SRUdJU1RFUl9HTE9CQUxdOiBVc2UKCXRoZSBERUNMX05BTUUsIG5vdCB0aGUgREVDTF9BU1NFTUJMRVJfTkFNRS4KCjIwMDUtMDMtMjQgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogYy5vcHQgKGZ2aXNpYmlsaXR5LWlubGluZXMtaGlkZGVuKTogQWxsb3cgZm9yIE9iakMrKy4KCgkqIGNvbmZpZy9pMzg2L2Rhcndpbi5oIChUQVJHRVRfU1VCVEFSR0VUX0RFRkFVTFQpOiBBZGQKCU1BU0tfMTI4QklUX0xPTkdfRE9VQkxFLCBNQVNLX0FMSUdOX0RPVUJMRS4KCjIwMDUtMDMtMjUgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNybmMuZ2MuY2E+CgoJUFIgdGFyZ2V0LzE1NDkxCgkqIHZheC5jICh2YXhfcnR4X2Nvc3RzXzEpOiBNZXJnZSB3aXRoIHZheF9ydHhfY29zdHMuCgkodmF4X3J0eF9jb3N0cyk6IFJldHVybiBmYWxzZSB3aGVuIHBhc3NlZCB1bnN1cHBvcnRlZCBydHgncy4gIEhhbmRsZQoJRkxPQVRfRVhURU5ELCBGTE9BVF9UUlVOQ0FURSBhbmQgVFJVTkNBVEUuICBGaXggY29zdHMgZm9yIFBPU1RfSU5DLAoJUFJFX0RFQywgTkVHIGFuZCBOT1QuCgoyMDA1LTAzLTI1ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMjAyNDkKCSogY3NlLmMgKGluc2VydF9yZWdzKTogRG8gbm90IHJlY29yZCBlcXVpdmFsZW5jZSBvZiByZWdpc3RlcnMgaW4KCWRpZmZlcmVudCBtb2Rlcy4KCjIwMDUtMDMtMjQgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIGRvYy9pbnN0YWxsLnRleGkgKC0tZW5hYmxlLWFsdGl2ZWMpOiBEZWxldGUgZG9jcy4KCjIwMDUtMDMtMjQgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdC5jb20+CgoJQmFuZCBhaWQgZm9yIFBSIHRhcmdldC8yMDYxNzoKCSogY29uZmlnL3NoL2xpYjFmdW5jcy5hc20gKEZVTkMsIEFMSUFTKTogQWRkIC5oaWRkZW4gZGlyZWN0aXZlLgoKMjAwNS0wMy0yMyAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJRml4IFBSIHRyZWUtb3B0aW1pemF0aW9uLzIwNjAxCgoJKiB0cmVlLXNzYS1wcmUuYyAoaW5zZXJ0X2F1eCk6IEFkZCBtaXNzaW5nIGNvbmRpdGlvbiB0bwoJY29uc3RpZmljYXRpb24uCgoyMDA1LTAzLTIyICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJUFIgYysrLzE5NzY5CgkqIGR3YXJmMm91dC5jIChkZWNsYXJlX2luX25hbWVzcGFjZSk6IElnbm9yZSBkZWNscyB3aXRoIGFuIGFic3RyYWN0CglvcmlnaW4uCgoyMDA1LTAzLTIyICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIGMtb3B0cy5jIChjX2NvbW1vbl9wYXJzZV9maWxlKTogT25seSBzdGFydC9lbmQgbWFpbiBzb3VyY2UgZmlsZQoJaWYgZGVidWcgaG9va3Mgc2F5cyB0aGUgd3JpdGVyIHdhbnRzIGl0LgoJKiBkYnhvdXQuYyAoZGJ4X2RlYnVnX2hvb2tzKTogQWRkIHN0YXJ0X2VuZF9tYWluX3NvdXJjZV9maWxlCgltZW1iZXIuCgkoeGNvZmZfZGVidWdfaG9va3MpOiBEaXR0by4KCSogZGVidWcuYyAoZG9fbm90aGluZ19ob29rcyk6IERpdHRvLgoJKiBkZWJ1Zy5oIChnY2NfZGVidWdfaG9va3MpOiBEaXR0by4KCSogZHdhcmYyb3V0LmMgKGR3YXJmMl9kZWJ1Z19ob29rcyk6IERpdHRvLgoJKiBzZGJvdXQuYyAoc2RiX2RlYnVnX2hvb2tzKTogRGl0dG8uCgkqIHZtc2RiZ291dC5jICh2bXNkYmdfZGVidWdfaG9va3MpOiBEaXR0by4KCjIwMDUtMDMtMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkb2MvZXh0ZW5kLnRleGk6IERlcHJlY2F0ZSBDKysgbWluL21heCBvcGVyYXRvcnMuCgoyMDA1LTAzLTIyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMjA1NjEKCSogY2ZnbGF5b3V0LmMgKHJlZW1pdF9pbnNuX2Jsb2NrX25vdGVzKTogRG9uJ3QgcHV0IGJsb2NrIG5vdGVzIGluCgliZXR3ZWVuIGp1bXAgdGFibGUgYW5kIGl0cyBsYWJlbC4KCSogZmluYWwuYyAoc2hvcnRlbl9icmFuY2hlcyk6IEhhbmRsZSBub3RlcyBpbiBiZXR3ZWVuIEFERFJfVkVDCglyZXNwLiBBRERSX0RJRkZfVkVDIGFuZCB0aGUgbGFiZWwgcHJlY2VlZGluZyBpdC4KCShmaW5hbF9zY2FuX2luc24pOiBMaWtld2lzZS4gIEVuc3VyZSBBRERSX1ZFQyByZXNwLiBBRERSX0RJRkZfVkVDCglpcyBlbWl0dGVkIGluIHRoZSByaWdodCBzZWN0aW9uLgoKMjAwNS0wMy0yMSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgbWlkZGxlLWVuZC8yMDUzOQoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfYmluYXJ5KTogRml4IHR5cGUgbWlzbWF0Y2ggYmV0d2VlbgoJVFJVVEhfe0FORCxPUixYT1J9X0VYUFIgbm9kZXMgYW4gdGhlaXIgb3BlcmFuZHMnIHR5cGVzLgoJKGZvbGRfYmluYXJ5KSA8VFJVVEhfWE9SX0VYUFI+OiBBdm9pZCBjYWxsaW5nIGludmVydF90cnV0aHZhbHVlCglmb3Igbm9uLXRydXRoLXZhbHVlZCBleHByZXNzaW9ucy4KCgkqIGMtY29tbW9uLmMgKGNfY29tbW9uX3RydXRodmFsdWVfY29udmVyc2lvbik6IEhhbmRsZSBFUlJPUl9NQVJLCglhbmQgRlVOQ1RJT05fREVDTCBpbiB0aGUgbWFpbiBzd2l0Y2guCgk8VFJVVEhfQU5ESUZfRVhQUiwgVFJVVEhfT1JJRl9FWFBSLCBUUlVUSF9BTkRfRVhQUiwgVFJVVEhfT1JfRVhQUiwKCVRSVVRIX1hPUl9FWFBSPjogV2hlbiBjaGFuZ2luZyB0aGUgcmVzdWx0IHR5cGUgb2YgdGhlc2UgdHJlZSBub2RlcywKCXdlIGFsc28gbmVlZCB0byBjb252ZXJ0IHRoZWlyIG9wZXJhbmRzIHRvIG1hdGNoLgoJPFRSVVRIX05PVF9FWFBSPjogTGlrZXdpc2UuCgoyMDA1LTAzLTIxICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzIwNTU3CgkqIGJiLXJlb3JkZXIuYyAoZHVwbGljYXRlX2NvbXB1dGVkX2dvdG9zKTogVXNlIGNhbl9kdXBsaWNhdGVfYmxvY2tfcAoJdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBibG9jayBjYW4gYmUgZHVwbGljYXRlZCwgcmF0aGVyIHRoYW4gdGVzdAoJd2hldGhlciB0aGUgYmxvY2sgY29udGFpbnMgbm9uY29weWFibGUgaW5zbnMgb3Vyc2VsdmVzLgoKMjAwNS0wMy0yMSAgUmljaGFyZCBHdWVudGhlciAgPHJndWVudGhAZ2NjLmdudS5vcmc+CgoJKiB0cmVlLXNzYS1sb29wLmMgKGdhdGVfdHJlZV9jb21wbGV0ZV91bnJvbGwpOiBSdW4gY29tcGxldGUKCXVucm9sbGluZyBpZiAtZnBlZWwtbG9vcHMgaXMgc3BlY2lmaWVkLCB0b28uCgkqIHRyZWUtc3NhLWxvb3AtaXZjYW5vbi5jICh0cnlfdW5yb2xsX2xvb3BfY29tcGxldGVseSk6CglSZW1vdmUgc3VwZXJmbHVvdXMgY2hlY2sgZm9yIGZsYWdfdW5yb2xsX2xvb3BzLgoKMjAwNS0wMy0yMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBvdGhlci8yMDU2NAoJKiBnY292LmMgKG91dHB1dF9saW5lcyk6IE9ubHkgb3V0cHV0IGZ1bmN0aW9uIGJsb2NrIHN1bW1hcnkgd2hlbgoJb3V0cHV0dGluZyBicmFuY2ggaW5mb3JtYXRpb24uCgkqIGRvYy9nY292LnRleGk6IERvY3VtZW50IGZvcm1hdCBvZiBwcmVhbWJsZSBhbmQgYWRkaXRpb25hbCBibG9jawoJaW5mb3JtYXRpb24gbGluZXMuCgoyMDA1LTAzLTIxICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBsaWJnY2MyLmggKExJQkdDQzJfSEFTX1NGX01PREUpOiBOZXcgbWFjcm8uCgkoTElCR0NDMl9IQVNfREZfTU9ERSwgTElCR0NDMl9IQVNfVEZfTU9ERSwgTElCR0NDMl9IQVNfWEZfTU9ERSk6IE1ha2UKCXRoZSBkZWZhdWx0cyBmYWxzZSBpZiBCSVRTX1BFUl9VTklUICE9IDguCgkoU0Z0eXBlLCBTQ3R5cGUsIF9fZml4c2ZkaSwgX19mbG9hdGRpc2YsIF9fZml4dW5zc2ZTSSwgX19maXh1bnNzZkRJKQoJKF9fcG93aXNmMiwgX19kaXZzYzMsIF9fbXVsc2MzKTogR3VhcmQgd2l0aCBMSUJHQ0MyX0hBU19TRl9NT0RFIHJhdGhlcgoJdGhhbiBCSVRTX1BFUl9VTklUICE9IDguCgkoTF9maXhkZmRpLCBMX2ZpeHNmZGksIExfZml4dGZkaSwgTF9maXh1bnNkZmRpLCBMX2ZpeHVuc2Rmc2kpCgkoTF9maXh1bnNzZmRpLCBMX2ZpeHVuc3Nmc2ksIExfZml4dW5zdGZkaSwgTF9maXh1bnN4ZmRpLCBMX2ZpeHVuc3hmc2kpCgkoTF9maXh4ZmRpLCBMX2Zsb2F0ZGlkZiwgTF9mbG9hdGRpc2YsIExfZmxvYXRkaXRmLCBMX2Zsb2F0ZGl4Zik6IFJlbW92ZQoJI3VuZGVmcy4KCSogbGliZ2NjMi5jIChfX2ZpeHVuc3NmREksIF9fZml4c2ZkaSwgX19mbG9hdGRpc2YsIF9fZml4dW5zc2ZTSSkKCShfX3Bvd2lzZjIsIF9fZGl2c2MzLCBfX211bHNjMyk6IEd1YXJkIHdpdGggTElCR0NDMl9IQVNfU0ZfTU9ERS4KCjIwMDUtMDMtMjAgIE1hcmVrIE1pY2hhbGtpZXdpY3ogIDxtYXJla21AYW1lbGVrLmdkYS5wbD4KCglQUiB0YXJnZXQvMTg1NTEKCSogY29uZmlnL2F2ci9hdnIuYyAoYXZyX291dHB1dF9mdW5jdGlvbl9wcm9sb2d1ZSk6IERvIG5vdCB1c2UKCWN1cnJlbnRfZnVuY3Rpb25fbmFtZSgpIGluIGEgbGFiZWwsIHVzZSBhIGxvY2FsIGxhYmVsIGluc3RlYWQuCgoyMDA1LTAzLTA4ICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgkgICAgSXJhIFJvc2VuICA8aXJhckBpbC5pYm0uY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzIwNDc0CgkqIHRyZWUtdmVjdC1hbmFseXplLmMgKHZlY3RfYW5hbHl6ZV9wb2ludGVyX3JlZl9hY2Nlc3MpOiBDaGVjayB0aGUKCXNpemVfdHlwZSBvZiB0aGUgcmVsZXZhbnQgcG9pbnRlci4gQ2hlY2sgZm9yIENPTVBMRVRFX1RZUEVfUC4KCjIwMDUtMDMtMjAgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogYy1kZWNsLmMgKGNoZWNrX2JpdGZpZWxkX3R5cGVfYW5kX3dpZHRoKTogUmVxdWlyZSBiaXQtZmllbGQKCXdpZHRoIHRvIGhhdmUgaW50ZWdlciB0eXBlLgoJKGJ1aWxkX2VudW1lcmF0b3IpOiBSZXF1aXJlIGVudW1lcmF0b3IgdmFsdWUgdG8gaGF2ZSBpbnRlZ2VyIHR5cGUuCgoyMDA1LTAzLTE5ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRvYy9leHRlbmQudGV4aSAoX19idWlsdGluX2luZik6IE1vdmUgc3RhdGVtZW50IGFib3V0IElORklOSVRZCgl0byBfX2J1aWx0aW5faW5mZi4KCjIwMDUtMDMtMTkgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogYy5vcHQgKGFuc2ksIHN0ZD1pc285ODk5OjE5OTAsIHN0ZD1pc285ODk5OjE5OTksCglzdGQ9aXNvOTg5OToxOTl4KTogQ29ycmVjdCBkZXNjcmlwdGlvbnMuCgoyMDA1LTAzLTE5ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy5nY2M6IENvbnNpc3RlbnRseSB1c2Ugc29sYXJpczIuMVswLTldKiBpbnN0ZWFkIG9mCglzb2xhcmlzMi4xWzAtOV0uCgoyMDA1LTAzLTE5ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCVBSIG1pZGRsZS1lbmQvMjA0OTMKCSogZm9sZC1jb25zdC5jIChmb2xkX3dpZGVuZWRfY29tcGFyaXNvbik6IERvbid0IG9wdGltaXplIGNhc3RzIG9mCglmdW5jdGlvbiBwb2ludGVycyBvbiB0YXJnZXRzIHRoYXQgcmVxdWlyZSBmdW5jdGlvbiBwb2ludGVyCgljYW5vbmljYWxpemF0aW9uLgoJKGZvbGRfc2lnbl9jaGFuZ2VkX2NvbXBhcmlzb24pOiBMaWtld2lzZS4KCjIwMDUtMDMtMTkgIEFuZHkgSHV0Y2hpbnNvbiAgPEh1dGNoaW5zb25BbmR5QG5ldHNjYXBlLm5ldD4KCglQUiB0YXJnZXQvMTgyNTEKCSogY29uZmlnL2F2ci9hdnIubWQgKG1vdm1lbWhpKTogUmV3cml0ZSBhcyBSVEwgbG9vcC4KCSgqbW92bWVtcWlfaW5zbik6IERlbGV0ZS4KCSgqbW92bWVtaGkpOiBEZWxldGUuCgoyMDA1LTAzLTE4ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJUFIgbWlkZGxlLWVuZC8yMDIyNQoJKiBjZ3JhcGguYyAoY2dyYXBoX21hcmtfcmVhY2hhYmxlX25vZGUpOiBBc3NlcnQgdGhhdCBpdCBpcyBub3QgY2FsbGVkCgl0b28gbGF0ZS4KCSogdmFyYXNtLmMgKGZpbmRfZGVjbF9hbmRfbWFya19uZWVkZWQpOiBNYXJrIG5lZWRlZCBvbmx5IHdoZW4gbm90CgljYWxsZWQgdG9vIGxhdGUuCgoyMDA1LTAzLTE4ICBSYWxmIENvcnNlcGl1cyAgPHJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZz4KCgkqIGNvbmZpZy9pMzg2L3QtcnRlbXMtaTM4NiAoTVVMVElMSUJTKTogUmVtb3ZlIGs2LCBhdGhsb24sCgltbm8tZnAtcmV0LWluLTM4NyBtdWx0aWxpYiB2YXJpYW50cy4KCjIwMDUtMDMtMTcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiB0YXJnZXQvMTgzODAKCSogY29uZmlnL2lhNjQvdW53aW5kLWlhNjQuYyAoX1Vud2luZF9GaW5kVGFibGVFbnRyeSk6IFJlbW92ZWQuCgoyMDA1LTAzLTE3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZG9jL2V4dGVuZC50ZXhpIChXZWFrIFByYWdtYXMpOiBOZXcgc2VjdGlvbi4KCShhdHRyaWJ1dGUgYWxpYXMpOiBDbGFyaWZ5IHRoYXQgdGFyZ2V0IG11c3QgYmUgaW4gdGhlIHNhbWUKCXRyYW5zbGF0aW9uIHVuaXQuCgoyMDA1LTAzLTE2ICBKYW1lcyBFLiBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogY29uZmlnL2lhNjQvaWE2NC5jIChpc3N1ZV9ub3BzX2FuZF9pbnNuKTogQ2hlY2sgZmlyc3RfaW5zbiBhdHRyaWJ1dGUsCglhbmQgcmV0dXJuIHdpdGhvdXQgY3JlYXRpbmcgbmV3IHN0YXRlIGlmIGJlZm9yZV9ub3BzX251bSBpcyBub256ZXJvLgoJKiBjb25maWcvaWE2NC9pYTY0Lm1kIChmaXJzdF9pbnNuKTogTmV3IGF0dHJpYnV0ZS4KCShhbGxvYyk6IFNldCBpdCB0byB5ZXMuCgoyMDA1LTAzLTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTU3MDAKCSogdmFyYXNtLmMgKHN0cnVjdCBhbGlhc19wYWlyKTogUmVuYW1lIGZyb20gc3RydWN0IG91dHB1dF9kZWZfcGFpci4KCShhbGlhc19wYWlycyk6IFJlbmFtZSBmcm9tIG91dHB1dF9kZWZzLgoJKGZpbmRfZGVjbF9hbmRfbWFya19uZWVkZWQpOiBTcGxpdCBvdXQgZnJvbSBhc3NlbWJsZV9hbGlhcy4KCShkb19hc3NlbWJsZV9hbGlhcyk6IE5ldy4KCShhc3NlbWJsZV9vdXRwdXRfZGVmKTogUmVtb3ZlLgoJKGZpbmlzaF9hbGlhc2VzXzEsIGZpbmlzaF9hbGlhc2VzXzIpOiBOZXcuCgkocHJvY2Vzc19wZW5kaW5nX2Fzc2VtYmxlX291dHB1dF9kZWZzKTogUmVtb3ZlLgoJKGFzc2VtYmxlX2FsaWFzKTogRGVmZXIgYWxpYXNlcyBmb3Igd2hpY2ggd2UgZG9uJ3QgeWV0IGhhdmUgYQoJbm9uLWV4dGVybmFsIGRlY2wgZm9yIHRoZSB0YXJnZXQgc3ltYm9sLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9kZWNsX2NvbXBpbGF0aW9uKTogUmVnaXN0ZXIgdmFyaWFibGVzIHdpdGggY2dyYXBoLgoJKiBjZ3JhcGh1bml0LmMgKGNncmFwaF9maW5hbGl6ZV9jb21waWxhdGlvbl91bml0KTogVXNlIGZpbmlzaF9hbGlhc2VzXzEuCgkqIHRvcGxldi5jIChjb21waWxlX2ZpbGUpOiBVc2UgZmluaXNoX2FsaWFzZXNfMiBpbnN0ZWFkIG9mCglwcm9jZXNzX3BlbmRpbmdfYXNzZW1ibGVfb3V0cHV0X2RlZnMuCgkqIHRyZWUuaCAoZmluaXNoX2FsaWFzZXNfMSwgZmluaXNoX2FsaWFzZXNfMik6IERlY2xhcmUuCgkocHJvY2Vzc19wZW5kaW5nX2Fzc2VtYmxlX291dHB1dF9kZWZzKTogUmVtb3ZlLgoKMjAwNS0wMy0xNiAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiBjb25maWcvaTM4Ni9lbW1pbnRyaW4uaCAoX21tX2V4dHJhY3RfZXBpMTYpOiBDb3JyZWN0IHRoZSBudW1iZXIKCW9mIGNsb3NpbmcgcGFyZW50aGVzaXMuCgoyMDA1LTAzLTE2ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNzQ1NAoJKiB0cmVlLmMgKHRyZWVfc2l6ZSk6IEFkZCBjYXNlIGZvciBUUkVFX0JJTkZPLgoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfY2hlY2tzdW1fdHJlZSk6IE9ubHkgY2xlYXIgdGhlIG92ZXJsb2FkZWQKCWZpZWxkIFRZUEVfQ0FDSEVEX1ZBTFVFUyBpZiBUWVBFX0NBQ0hFRF9WQUxVRVNfUCBpcyBzZXQuCgoyMDA1LTAzLTE1ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoRFdBUkZfQ0lFX0RBVEFfQUxJR05NRU5UKTogQ2hhbmdlIGZvcgoJU1RBQ0tfR1JPV1NfRE9XTldBUkQuCgoyMDA1LTAzLTE1ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2FybS9hcm0uaCAoQ09ORElUSU9OQUxfUkVHSVNURVJfVVNBR0UpOiBEb24ndCBjbGVhcgoJY2FsbF91c2VkX3JlZ3MgZm9yIHdDRyByZWdpc3RlcnMuCgoyMDA1LTAzLTE1ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHMzOTBfc2Vjb25kYXJ5X291dHB1dF9yZWxvYWRfY2xhc3MpOiBBZGFwdCBjaGVjawoJZm9yIG5vbi1vZmZzZXR0YWJsZSBtZW1vcnkgcmVmZXJlbmNlcyB0byBjb3BlIHdpdGggb3V0c3RhbmRpbmcgcmVsb2FkCglyZXBsYWNlbWVudHMsIHRha2UgMi4KCjIwMDUtMDMtMTQgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCVBSIGMrKy8yMDI4MAoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9jb25kX2V4cHIpOiBBZGQgZmFsbGJhY2sgYXJndW1lbnQuICBVc2UgYQoJdGVtcG9yYXJ5IHZhcmlhYmxlIG9mIHBvaW50ZXIgdHlwZSBpZiBhbiBsdmFsdWVzIGlzIHJlcXVpcmVkLgoJKGdpbXBsaWZ5X21vZGlmeV9leHByX3Jocyk6IFJlcXVlc3QgYW4gcnZhbHVlIGZyb20gaXQuCgkoZ2ltcGxpZnlfZXhwcik6IFBhc3MgZmFsbGJhY2sgb24uCgoyMDA1LTAzLTE0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzE4NjI4CgkqIGNzZS5jIChmb2xkX3J0eF9tZW0pOiBEb24ndCBmb2xkIGEgbG9hZCBmcm9tIGEganVtcHRhYmxlIGludG8gYQoJcmVnaXN0ZXIuCgoyMDA1LTAzLTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IG5ldyBNSVBTIC1tc3ltMzIgYW5kIC1tbm8tc3ltMzIgb3B0aW9ucy4KCSogY29uZmlnL21pcHMvbWlwcy5oIChNQVNLX1NZTTMyLCBUQVJHRVRfU1lNMzIpOiBOZXcgbWFjcm9zLgoJKFRBUkdFVF9TV0lUQ0hFUyk6IEFkZCAtbXN5bTMyIGFuZCAtbW5vLXN5bTMyLgoJKEFCSV9IQVNfNjRCSVRfU1lNQk9MUyk6IFNldCB0byBmYWxzZSBpZiBUQVJHRVRfU1lNMzIuCgkoQVNNX1NQRUMpOiBQYXNzIGRvd24gLW1zeW0zMiBhbmQgLW1uby1zeW0zMi4KCjIwMDUtMDMtMTQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuaCAobWlwc19maXhfdnI0MTMwX3N0cmluZyk6IERlY2xhcmUuCgkoVEFSR0VUX0ZJWF9WUjQxMzApOiBOZXcgbWFjcm8uCgkoVEFSR0VUX09QVElPTlMpOiBBZGQgLW1maXgtdnI0MTMwLgoJKElTQV9IQVNfTUFDQ0hJKTogTmV3IG1hY3JvLgoJKEFTTV9TUEVDKTogQWRkIC1tZml4LXZyNDEzMC4KCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX2ZpeF92cjQxMzBfc3RyaW5nKTogTmV3IHZhcmlhYmxlLgoJKG92ZXJyaWRlX29wdGlvbnMpOiBIYW5kbGUgbWlwc19maXhfdnI0MTMwX3N0cmluZy4KCShtaXBzX2F2b2lkX2hhemFyZHMpOiBDbGVhciBhbGxfbm9yZW9yZGVyX3AKCWlmIHdlJ3JlIHdvcmtpbmcgYXJvdW5kIFZSNDEzMCBlcnJhdGEgYW5kIHRoZSBtYWNjIGFsdGVybmF0aXZlcwoJYXJlIG5vdCBhdmFpbGFibGUuCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKG1maGlsb188bW9kZT4pOiBUdXJuIGludG8gYSBkZWZpbmVfZXhwYW5kLgoJKCptZmhpbG9fPG1vZGU+LCAqbWZoaWxvXzxtb2RlPl9tYWNjKTogTmV3IGluc25zLgoJKiBjb25maWcvbWlwcy92ci5oIChERUZBVUxUX1ZSX0FSQ0gpOiBTZXQgdG8gbWZpeC12cjQxMzAuCgkoTVVMVElMSUJfREVGQVVMVFMpOiBSZW1vdmUgbGVhZGluZyAibWFyY2g9Ii4KCShEUklWRVJfU0VMRl9TUEVDUyk6IExpa2V3aXNlLiAgTWFrZSAtbWZpeC12cjQxMzAgaW1wbHkgLW1hcmNoPXZyNDEzMAoJaWYgbm8gYXJjaGl0ZWN0dXJlIG9wdGlvbiBpcyBnaXZlbi4KCSogY29uZmlnL21pcHMvdC12ciAoTVVMVElMSUJfT1BUSU9OUyk6IFVzZSAtbWZpeC12cjQxMzAgZm9yIHRoZQoJVlI0MTMwIG11bHRpbGlicy4KCShNVUxUSUxJQl9NQVRDSEVTKTogTWFwIC1tYXJjaD12cjQxMzAgdG8gdGhlIC1tZml4LXZyNDEzMCBtdWx0aWxpYnMuCgkqIGRvYy9pbnZva2UudGV4aTogRG9jdW1lbnQgLW1maXgtdnI0MTMwLgoKMjAwNS0wMy0xMyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgbWlkZGxlLWVuZC8xOTMzMQoJKiB0cmVlLmMgKGdldF91bndpZGVuZWQpOiBUcmVhdCBDT05WRVJUX0VYUFIgYW5kIE5PUF9FWFBSIGlkZW50aWNhbGx5LgoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfc2lnbl9jaGFuZ2VkX2NvbXBhcmlzb24pOiBMaWtld2lzZS4KCShmb2xkX2JpbmFyeSk6IE9wdGltaXplIGNvbXBhcmlzb25zIGFnYWluc3Qgd2lkZW5lZCBvcGVyYW5kcyBpZgoJdGhlIGV4dGVuc2lvbiBpcyByZXByZXNlbnRlZCBieSBhIENPTlZFUlRfRVhQUiwgc2FtZSBhcyBhIE5PUF9FWFBSLgoKMjAwNS0wMy0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy5nY2M6IFJlbW92ZSBleGNlc3MgaW5kZW50YXRpb24uCgkocG93ZXJwYyotKi0qLCByczYwMDAtKi0qKTogQWNjZXB0IC0td2l0aC1jcHUvdHVuZSBwb3dlcjUgYW5kIDg1NDguCgoyMDA1LTAzLTEzICBNYXJlayBNaWNoYWxraWV3aWN6ICA8bWFyZWttQGFtZWxlay5nZGEucGw+CgoJUFIgdGFyZ2V0LzIwMjg4CgkqIGNvbmZpZy9hdnIvYXZyLmMgKHByaW50X29wZXJhbmQpOiBBZGQgJ3AnIGFuZCAncicuCgkob3V0X21vdmhpX3JfbXIpOiBSZWFkIGxvdyBieXRlIG9mIHZvbGF0aWxlIE1FTSBmaXJzdC4KCShvdXRfbW92aGlfbXJfcik6IFdyaXRlIGhpZ2ggYnl0ZSBvZiB2b2xhdGlsZSBNRU0gZmlyc3QuCgoyMDA1LTAzLTExICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8yMDMwNgoJKiBleHByLmMgKGVtaXRfbW92ZV9jb21wbGV4KTogU2V0IHRyeV9pbnQgZmFsc2UgaWYgbW9kZSBpcwoJTU9ERV9DT01QTEVYX0ZMT0FUIGFuZCBtb3Zfb3B0YWIgZXhpc3RzIGZvciBpbm5lciBtb2RlLiAgT25seSB0cnkKCWVtaXRfYmxvY2tfbW92ZSBpZiB0cnlfaW50IGlzIHRydWUuCgoyMDA1LTAzLTExICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8yMDQxNQoJKiBjb25maWcvaTM4Ni9tbXgubWQgKHZlY19kdXB2NGhpKTogRml4IHByZWRpY2F0ZS4KCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF92ZWN0b3JfaW5pdF9kdXBsaWNhdGUpOiBVcGRhdGUKCXRvIG1hdGNoLgoKMjAwNS0wMy0xMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5jIChvdmVycmlkZV9vcHRpb25zKTogT25seSB3YXJuIGFib3V0IC1taW50NjQKCWRlcHJlY2F0aW9uIGlmIFRBUkdFVF9JTlQ2NC4KCjIwMDUtMDMtMTAgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHJ0bC1vcHQvMjA0MTIKCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X3JlbGF0aW9uYWxfb3BlcmF0aW9uXzEpOiBGaXggdHlwbyAtIGNoZWNrIHRoZQoJY29ycmVjdCBtb2RlLgoKMjAwNS0wMy0xMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzIwMzIyCgkqIGNvbWJpbmUuYyAodHJ5X2NvbWJpbmUpOiBJZiByZWNvZ19mb3JfY29tYmluZSBhZGRlZCBDTE9CQkVScwoJdG8gTkVXSTJQQVQsIGZhaWwgdG8gY29tYmluZSBpZiB0aGV5IGFyZSB1c2VkIGJ5IE5FV1BBVC4KCjIwMDUtMDMtMTAgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aTogQWRkIDg1NDAgdG8gbGlzdCBvZiBjcHVzIGluIHJzNjAwMCBjcHUgc2VjdGlvbi4KCjIwMDUtMDMtMTAgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBjb25maWcveHRlbnNhL3h0ZW5zYS5oIChNRU1CRVJfVFlQRV9GT1JDRVNfQkxLKTogRGVmaW5lLgoKMjAwNS0wMy0xMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMjAzNzUKCSogZnVuY3Rpb24uYyAoc3RydWN0IGFzc2lnbl9wYXJtX2RhdGFfb25lKTogUmVtb3ZlIGxhc3RfbmFtZWQKCWZpZWxkLgoJKGFzc2lnbl9wYXJtX2ZpbmRfZGF0YV90eXBlcyk6IERvbid0IGRldGVybWluZSBsYXN0X25hbWVkLgoJUmVvcmRlciBuYW1lZF9wYXJtIGRldGVybWluYXRpb24uCgkoYXNzaWduX3Bhcm1zKTogT25seSBzZXR1cCB2YXJhcmdzIG9uIHRoZSBsYXN0IG5vbi12YXJhZGljCglwYXJhbWV0ZXIuCgoyMDA1LTAzLTEwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiBpbmxpbmUtYXNtLzIwMzE0CgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2FzbV9leHByKTogSGFuZGxlIGlucHV0L291dHB1dCBjb25zdHJhaW50cwoJd2l0aCBtdWx0aXBsZSBhbHRlcm5hdGl2ZXMuCgoJKiBzdG10LmMgKHBhcnNlX291dHB1dF9jb25zdHJhaW50KTogRml4IGEgdHlwby4KCjIwMDUtMDMtMDkgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9zZWNvbmRhcnlfb3V0cHV0X3JlbG9hZF9jbGFzcyk6IEFkYXB0IGNoZWNrCglmb3Igbm9uLW9mZnNldHRhYmxlIG1lbW9yeSByZWZlcmVuY2VzIHRvIGNvcGUgd2l0aCBvdXRzdGFuZGluZyByZWxvYWQKCXJlcGxhY2VtZW50cy4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAoInJlbG9hZF9vdXR0aSIpOiBDYWxsIGZpbmRfcmVwbGFjZW1lbnQgdG8KCWF2b2lkIGxvc2luZyBvdXRzdGFuZGluZyBhZGRyZXNzIHJlbG9hZHMuCgkoInJlbG9hZF9vdXRkaSIsICJyZWxvYWRfb3V0ZGYiKTogTGlrZXdpc2UuCgoyMDA1LTAzLTA4ICBJcmEgUm9zZW4gIDxpcmFyQGlsLmlibS5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMjAxMjIKCSogdHJlZS12ZWN0LWFuYWx5emUuYyAodmVjdF9vYmplY3RfYW5hbHlzaXMpOiBBbmFseXplIGluaXRpYWwKCWNvbmRpdGlvbiBvZiBhY2Nlc3MgZnVuY3Rpb24gaW5zdGVhZCBvZiBiYXNlLgoKMjAwNS0wMy0wNyAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAtcHJvdG9zLmg6IFJlbmFtZSBvdXRwdXRfZTUwMF9mbGlwX2VxX2JpdCB0bwoJb3V0cHV0X2U1MDBfZmxpcF9ndF9iaXQuCgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChwcmludF9vcGVyYW5kKTogY2FzZSBEOiBQcmludCBvdXQgYml0IDMxCglhcyBiaXQgMzEuCgkocnM2MDAwX2dlbmVyYXRlX2NvbXBhcmUpOiBGaXggbG9naWMgdG8gbG9vayBhdCB0aGUgY29ycmVjdCBiaXRzLgoJKG91dHB1dF9lNTAwX2ZsaXBfZXFfYml0KTogUmVuYW1lIHRvIG91dHB1dF9lNTAwX2ZsaXBfZ3RfYml0LgoJTG9vayBhdCBHVCBiaXQuCgkocnM2MDAwX2VtaXRfc0NPTkQpOiBSZW5hbWUgZ2VuX2U1MDBfZmxpcF9lcV9iaXQgdG8KCWdlbl9lNTAwX2ZsaXBfZ3RfYml0LiAgUmVuYW1lIGdlbl9tb3ZlX2Zyb21fQ1JfZXFfYml0IHRvCglnZW5fbW92ZV9mcm9tX0NSX2d0X2JpdC4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kICgibW92ZV9mcm9tX0NSX2VxX2JpdCIpOiBDaGFuZ2UgYml0CgkoIm1vdmVfZnJvbV9DUl9lcV9iaXQiKTogUmVuYW1lIHRvIG1vdmVfZnJvbV9DUl9ndF9iaXQuCgkoVU5TUEVDX01WX0NSX0VRKTogUmVuYW1lIHRvIFVOU1BFQ19NVl9DUl9HVC4KCgkqIGNvbmZpZy9yczYwMDAvc3BlLm1kICgiZTUwMF9jcl9pb3JfY29tcGFyZSIpOiBOZXcuCgkoRTUwMF9DUl9JT1JfQ09NUEFSRSk6IE5ldyBjb25zdGFudC4KCjIwMDUtMDMtMDggIEVhcmwgQ2hldyA8ZWFybF9jaGV3QGFnaWxlbnQuY29tPgoJICAgIERhdmlkIEJpbGxpbmdodXJzdCA8RGF2aWQuQmlsbGluZ2h1cnN0QHJpb3RpbnRvLmNvbT4KCgkqIGNvbmZpZy9pMzg2L2hvc3QtY3lnd2luLmM6IE5ldyBmaWxlIHRvIHN1cHBvcnQgcHJlY29tcGlsZWQKCWhlYWRlcnMgb24gY3lnd2luCgkqIGNvbmZpZy9pMzg2L3gtY3lnd2luOiBVc2UgaG9zdC1jeWd3aW4uYyBvbiBjeWd3aW4gaG9zdAoJKiBjb25maWcuaG9zdDogVXNlIGFib3ZlIGZpbGVzIGZvciBjeWd3aW4gaG9zdC4KCjIwMDUtMDMtMDcgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE5NjgzCgkqIHJlbG9hZDEuYyAoY2hvb3NlX3JlbG9hZF9yZWdzKTogUGFzcyB0aGUgbnVtYmVyIG9mIGJpdHMsIG5vdCB0aGUKCW51bWJlciBvZiBieXRlcywgdG8gc21hbGxlc3RfaW50X2Zvcl9tb2RlLiAgRml4IGFyZ3VtZW50cyB0bwoJUkVHX0NBTk5PVF9DSEFOR0VfTU9ERV9QLgoKMjAwNS0wMy0wNyAgRGF2aWQgQmlsbGluZ2h1cnN0IDxEYXZpZC5CaWxsaW5naHVyc3RAcmlvdGludG8uY29tPgoKCSogY29uZmlnL2kzODYvY3lnd2luMS5jKG1pbmd3X3NjYW4pOiBVc2UgeHN0cmR1cCBpbiBjYWxscyB0byBwdXRlbnYuCgoyMDA1LTAzLTA3ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9pYTY0L2hwdXguaCAoTElOS19TUEVDKTogQWRkIC16LgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZnVuY3Rpb25fdmFsdWUpOiBSZXR1cm4gYSBSRUcgbm90IGEKCVBBUkFMTEVMIGZvciBhbiBlbXB0eSBzdHJ1Y3R1cmUuCgoyMDA1LTAzLTA1ICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiBkb2MvYy10cmVlLnRleGk6IFdyYXAgY29tbWVudHMgaW4gQHJ7fS4KCSogZG9jL2NwcC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2NwcGludGVybmFscy50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2V4dGVuZC50ZXhpOiBMaWtld2lzZS4KCSogZG9jL21kLnRleGk6IExpa2V3aXNlLgoJKiBkb2Mvb2JqYy50ZXhpOiBMaWtld2lzZS4KCSogZG9jL3NvdXJjZWJ1aWxkLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvdG0udGV4aTogTGlrZXdpc2UuCgkqIGRvYy90cmVlLXNzYS50ZXhpCgoyMDA1LTAzLTA0ICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4ODE1CgkqIHRyZWUtaWYtY29udi5jIChjb21iaW5lX2Jsb2Nrcyk6IEFkanVzdCBsb29wIGhlYWRlciBlZGdlcyBmb3IKCWxvb3BzIHdpdGggemVybyBleGl0IGVkZ2VzLgoKMjAwNS0wMy0wNSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcuZ2NjIChocHBhKjY0Ki0qLWhwdXgxMSopOiBVc2UgcGEvcGEtaHB1eDExMTEuaCBmb3IKCSotKi1ocHV4MTEuWzEtOV0qLCBub3QganVzdCBmb3IgKi0qLWhwdXgxMS4xMS4KCjIwMDUtMDMtMDUgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5kYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoJICAgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xOTc5NwoJKiBwYS9lbGYuaCwgcGE2NC1ocHV4LmgsIHNvbS5oIChBU01fT1VUUFVUX0VYVEVSTkFMX1JFQUwpOiBEZWZpbmUuCgkoQVNNX09VVFBVVF9FWFRFUk5BTCk6IENhbGwgcGFfaHB1eF9hc21fb3V0cHV0X2V4dGVybmFsLgoJKiBwYS1wcm90b3MuaCAocGFfaHB1eF9hc21fb3V0cHV0X2V4dGVybmFsKTogQWRkIHByb3RvdHlwZS4KCSogcGEuYyAoZ2V0X3BsYWJlbCk6IENoYW5nZSBhcmd1bWVudCB0byBzeW1ib2xfcmVmLiAgQ2FsbAoJbWF5YmVfZ2V0X2lkZW50aWZpZXIgaW5zdGVhZCBvZiBnZXRfaWRlbnRpZmllci4KCShwYV9ocHV4X2FzbV9vdXRwdXRfZXh0ZXJuYWwsIHBhX2hwdXhfZmlsZV9lbmQpOiBOZXcgZnVuY3Rpb25zLgoJKHN0cnVjdCBkZWZlcnJlZF9wbGFiZWwpOiBSZXBsYWNlIG5hbWUgZmllbGQgd2l0aCBzeW1ib2wgZmllbGQuCgkoVEFSR0VUX0FTTV9GSUxFX0VORCk6IERlZmluZSBhcyBwYV9ocHV4X2ZpbGVfZW5kIGlmCglBU01fT1VUUFVUX0VYVEVSTkFMX1JFQUwgaXMgZGVmaW5lZC4KCShvdXRwdXRfZ2xvYmFsX2FkZHJlc3MpOiBVc2Ugb3V0cHV0X2FkZHJfY29uc3QgZm9yIG91dHB1dCBvZiBhbGwKCXN5bWJvbF9yZWZzLgoJKG91dHB1dF9kZWZlcnJlZF9wbGFiZWxzKTogVXNlIHN5bWJvbF9yZWYgaW5zdGVhZCBvZiBuYW1lIGZvciBhZGRyZXNzCglvdXRwdXQuCgkqIHBhLmggKFNZTUJPTF9GTEFHX1JFRkVSRU5DRUQsIFNZTUJPTF9SRUZfUkVGRVJFTkNFRF9QLAoJQVNNX09VVFBVVF9TWU1CT0xfUkVGKTogTmV3IG1hY3Jvcy4KCSogc29tLmggKEFTTV9PVVRQVVRfRVhURVJOQUxfTElCQ0FMTCk6IFVzZSBhc3NlbWJsZV9uYW1lX3Jhdy4gIFVwZGF0ZQoJY29tbWVudC4KCShBU01fV0VBS0VOX0xBQkVMKTogVXNlIHRhcmdldG0uYXNtX291dC5nbG9iYWxpemVfbGFiZWwgdG8gZ2xvYmFsaXplCglsYWJlbC4KCjIwMDUtMDMtMDQgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgoKCSogdW53aW5kLWR3Mi1mZGUtZ2xpYmMuYyAoc3RydWN0Cgl1bndfZWhfY2FsbGJhY2tfZGF0YS5jaGVja19jYWNoZSk6CgkoZnJhbWVfaGRyX2NhY2hlKTogTmV3LgoJKF9VbndpbmRfSXRlcmF0ZVBoZHJDYWxsYmFjayk6IEFkZCBleHRfZGxfcGhkcl9pbmZvLgoJQ2FjaGUgZnJhbWUgaGVhZGVyIGluZm8uCgoyMDA1LTAzLTA0ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoKCTIwMDUtMDMtMDIgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgkqIGNvbmZpZy9hcm0vbGludXgtZWxmLmggKEFSTV9GVU5DVElPTl9QUk9GSUxFUik6IERvIG5vdCB1c2UgKFBMVCkKCWZvciBUaHVtYi4KCSogY29uZmlnL2FybS9uZXRic2QtZWxmLmggKEFSTV9GVU5DVElPTl9QUk9GSUxFUik6IExpa2V3aXNlLgoKMjAwNS0wMy0wNCAgRGFuaWVsIEJlcmxpbiA8ZGJlcmxpbkBkYnJlbGluLm9yZz4KCglGaXggUFIgZGVidWcvMjAyNTMKCgkqIGMtb3B0cy5jIChjX2NvbW1vbl9wYXJzZV9maWxlKTogQ2FsbCBzdGFydF9zb3VyY2VfZmlsZQoJYW5kIGVuZF9zb3VyY2VfZmlsZSBhdCB0aGUgYXBwcm9yaWF0ZSB0aW1lcy4KCgkqIGR3YXJmMm91dC5jIChkd2FyZjJvdXRfZmluaXNoKTogRG9uJ3QgYXV0by1lbmQKCXRoZSBtYWluIGZpbGUsIGl0IHdpbGwgYmUgZG9uZSBmb3IgdXMgbm93LgoKMjAwNS0wMy0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiB0YXJnZXQvMjAyNzcKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX292ZXJyaWRlX29wdGlvbnMpOiBEb24ndCBhbGxvdwoJLW1jcHUgdG8gb3ZlcnJpZGUgYW55IG90aGVyIGV4cGxpY2l0bHkgZ2l2ZW4gZmxhZ3MuCgoyMDA1LTAzLTAyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xOTkxNgoJKiB2YXJhc20uYyAoaW5pdGlhbGl6ZXJfY29uc3RhbnRfdmFsaWRfcCk6IEFsbG93IGNvbnZlcnNpb25zCgliZXR3ZWVuIE9GRlNFVF9UWVBFcy4gIFRpZHkuCgoyMDA1LTAzLTAyICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW44LmggKExJQl9TUEVDKTogU3dpdGNoIC1sbXggYW5kIC1sU3lzdGVtLgoKMjAwNS0wMy0wMiAgUmljaGFyZCBHdWVudGhlciAgPHJndWVudGhAZ2NjLmdudS5vcmc+CgoJKiBjZ3JhcGguaCAoc3RydWN0IGNncmFwaF9lZGdlKTogQWRkIHByZXZfY2FsbGVyIGFuZAoJcHJldl9jYWxsZWUgZmllbGRzLgoJKGNncmFwaF9ub2RlX3JlbW92ZV9jYWxsZWVzKTogRXhwb3J0LgoJKiBjZ3JhcGguYyAoY2dyYXBoX2NyZWF0ZV9lZGdlKTogSW5pdGlhbGl6ZSBwcmV2X2NhbGxlcgoJYW5kIHByZXZfY2FsbGVlLgoJKGNncmFwaF9lZGdlX3JlbW92ZV9jYWxsZWUpOiBOZXcgZnVuY3Rpb24uCgkoY2dyYXBoX2VkZ2VfcmVtb3ZlX2NhbGxlcik6IExpa2V3aXNlLgoJKGNncmFwaF9yZW1vdmVfZWRnZSk6IFVzZS4KCShjZ3JhcGhfcmVkaXJlY3RfZWRnZV9jYWxsZWUpOiBMaWtld2lzZS4KCShjZ3JhcGhfbm9kZV9yZW1vdmVfY2FsbGVlcyk6IE5ldyBmdW5jdGlvbi4KCShjZ3JhcGhfbm9kZV9yZW1vdmVfY2FsbGVycyk6IExpa2V3aXNlLgoJKGNncmFwaF9yZW1vdmVfbm9kZSk6IFVzZS4KCSogdHJlZS1vcHRpbWl6ZS5jICh0cmVlX3Jlc3Rfb2ZfY29tcGlsYXRpb24pOiBVc2UKCWNncmFwaF9ub2RlX3JlbW92ZV9jYWxsZWVzIGluc3RlYWQgb2YgbWFudWFsIGxvb3AuCgkqIGNncmFwaHVuaXQuYyAoY2dyYXBoX2ZpbmFsaXplX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkoY2dyYXBoX2V4cGFuZF9mdW5jdGlvbik6IExpa2V3aXNlLgoJKGNncmFwaF9yZW1vdmVfdW5yZWFjaGFibGVfbm9kZXMpOiBMaWtld2lzZS4KCjIwMDUtMDMtMDEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzIwMjE2CgkqIHRyZWUtY2hyZWMuYyAodHJlZV9mb2xkX2ZhY3RvcmlhbCk6IERlbGV0ZS4KCSh0cmVlX2ZvbGRfYmlub21pYWwpOiBDaGFuZ2UgYXJndW1lbnQgbGlzdCB0byB0YWtlIGEgcmV0dXJuIHR5cGUKCWFuZCBjaGFuZ2UgdGhlIHR5cGUgb2YgSyB0byB1bnNpZ25lZCBpbnQuICBSZXdyaXRlIHRvIGF2b2lkIGV4cGxpY2l0CglldmFsdWF0aW9uIG9mIGZhY3RvcmlhbHMsIGFuZCAocmVjdXJzaXZlbHkpIGNhbGxpbmcgZm9sZCB0byBwZXJmb3JtCgljb21waWxlLXRpbWUgYXJpdGhtZXRpYy4gIFJldHVybiBOVUxMIG9uIChpbnRlcm5hbCkgb3ZlcmZsb3cuCgkoY2hyZWNfZXZhbHVhdGUpOiBDaGFuZ2UgdHlwZSBvZiBLIHRvIGFuIHVuc2lnbmVkIGludC4gIEF2b2lkCgljYWxsaW5nIHRyZWVfZm9sZF9iaW5vbWlhbCB1bm5lY2Vzc2FyaWx5LiAgUmV0dXJuIGNocmVjX2RvbnRfa25vdwoJaWYgYW55IGludGVybWVkaWF0ZSBjYWxjdWxhdGlvbiBvdmVyZmxvd3MuCgkoY2hyZWNfYXBwbHkpOiBVcGRhdGUgY2FsbCB0byBjaHJlY19ldmFsdWF0ZS4KCjIwMDUtMDMtMDEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCVBSIHRhcmdldC8xOTA2NS4KCSogY29uZmlnL2NyaXMvY3Jpcy5oIChFWFRSQV9DT05TVFJBSU5UX1EpOiBBY2NlcHQgb25seSAobWVtIChyZWcpKSwKCW5vdCBpbmNsdWRpbmcgKHJlZykuIERvIG5vdCBjaGVjayBmb3IgcmVnIGJlaW5nIENSSVNfUENfUkVHTlVNLgoJKEVYVFJBX01FTU9SWV9DT05TVFJBSU5UKTogRGVmaW5lIGFzICdRJy4KCSogY29uZmlnL2NyaXMvY3Jpcy5tZDogVHdlYWsgY29tbWVudHMgcmVmZXJyaW5nIHRvIFEuCgkoImNtcHNpIiwgImNtcGhpIiwgImNtcHFpIiwgIiptb3ZzaV9pbnRlcm5hbCIsICJtb3ZoaSIpCgkoIm1vdnN0cmljdGhpIiwgIm1vdnFpIiwgIm1vdnN0cmljdHFpIiwgIm1vdnNmIiwgImFkZHNpMyIpCgkoImFkZGhpMyIsICJhZGRxaTMiLCAic3Vic2kzIiwgInN1YmhpMyIsICJzdWJxaTMiKQoJKCIqZXhwYW5kZWRfYW5kc2kiLCAiKmV4cGFuZGVkX2FuZGhpIiwgIiphbmRoaV9sb3dwYXJ0IiwgImFuZHFpMyIpCgkoIiphbmRxaV9sb3dwYXJ0IiwgImlvcnNpMyIsICJpb3JoaTMiLCAiaW9ycWkzIiwgInVtaW5zaTMiKToKCUluc2VydCBzcGFjZXMgaW4gY29uc3RyYWludHMgdG8gYWxpZ24gYWx0ZXJuYXRpdmVzIHZlcnRpY2FsbHkgZm9yCglyZWFkYWJpbGl0eS4KCSgiY21waGkiKTogRGl0dG8uICBBZGQgc2VwYXJhdGUgYWx0ZXJuYXRpdmUgZm9yIG9wZXJhbmQgMCAiciIsCglvcGVyYW5kIDE6ICJNIi4KCjIwMDUtMDItMjggIERhbGUgSm9oYW5uZXNlbiAgPGRhbGVqQGFwcGxlLmNvbT4KCSAgICBTdGFuIFNoZWJzICA8c2hlYnNAYXBwbGUuY29tPgoKCVJld3JpdGUgb2YgNjQtYml0IERhcndpbiBzdHJ1Y3R1cmUtYnktdmFsdWUgcGFzcy9yZXR1cm4uCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKENVTVVMQVRJVkVfQVJHUyk6IE5ldyBmaWVsZHMKCWludG9mZnNldCwgdXNlX3N0YWNrLCBuYW1lZC4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2RhcndpbjY0X2Z1bmN0aW9uX2FyZyk6ICBSZW1vdmUuCgkocnM2MDAwX2RhcndpbjY0X3JlY29yZF9hcmdfYWR2YW5jZV9mbHVzaCk6ICBOZXcuCgkocnM2MDAwX2RhcndpbjY0X3JlY29yZF9hcmdfYWR2YW5jZV9yZWN1cnNlKTogTmV3LgoJKHJzNjAwMF9kYXJ3aW42NF9yZWNvcmRfYXJnX2ZsdXNoKTogIE5ldy4KCShyczYwMDBfZGFyd2luNjRfcmVjb3JkX2FyZ19yZWN1cnNlKTogIE5ldy4KCShyczYwMDBfZGFyd2luNjRfcmVjb3JkX2FyZyk6ICBOZXcuCgkocnM2MDAwX3JldHVybl9pbl9tZW1vcnkpOiAgUmVtb3ZlIEFHR1JFR0FURV9UWVBFX1AgY2hlY2suCgkoZnVuY3Rpb25fYXJnX2JvdW5kYXJ5KTogIEhhbmRsZSAxMjgtYml0IGFsaWduZWQgc3RydWN0cy4KCShmdW5jdGlvbl9hcmdfYWR2YW5jZSk6ICBSZXdyaXRlIGRhcndpbjY0IHN0cnVjdCBoYW5kbGluZy4KCShmdW5jdGlvbl9hcmcpOiAgQ2FsbCByczYwMDBfZGFyd2luNjRfcmVjb3JkX2FyZy4KCShmdW5jdGlvbl9hcmdfcGFydGlhbF9ucmVncyk6ICBIYW5kbGUgZGFyd2luNjQgc3RydWN0cy4KCShyczYwMDBfZGFyd2luNjRfZnVuY3Rpb25fdmFsdWUpOiAgUmVtb3ZlLgoJKHJzNjAwMF9mdW5jdGlvbl92YWx1ZSk6ICBDYWxsIHJzNjAwMF9kYXJ3aW42NF9yZWNvcmRfYXJnLgoKMjAwNS0wMi0yOCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbiNucmMtY25yYy5nYy5jYT4KCglQUiB0YXJnZXQvMTk4MTkKCSogcGEuaCAoR09fSUZfTEVHSVRJTUFURV9BRERSRVNTKTogQWxsb3cgYWxsb3cgaGFyZCByZWdpc3RlcnMgZHVyaW5nCglhbmQgYWZ0ZXIgcmVsb2FkIGluIFJFRytSRUcgaW5kZXhlZCBhZGRyZXNzZXMgd2l0aG91dCBSRUdfUE9JTlRFUgoJc2V0IGluIHRoZSBiYXNlIGFuZCBub3Qgc2V0IGluIHRoZSBpbmRleC4KCjIwMDUtMDItMjggIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIG1pZGRsZS1lbmQvMTk4NzQKCSogdHJlZS1zc2EuYyAodHJlZV9zc2FfdXNlbGVzc190eXBlX2NvbnZlcnNpb25fMSk6IEEgY29udmVyc2lvbgoJYmV0d2VlbiBkaWZmZXJlbnQgbWFjaGluZSBtb2RlcyBpcyBuZXZlciBhICJ1c2VsZXNzIiBjb252ZXJzaW9uLgoKMjAwNS0wMi0yNyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hbHBoYS90LW9zZjQsIGNvbmZpZy9hcm0vdC1uZXRic2QsIGNvbmZpZy9pYTY0L3QtaHB1eAoJKiBjb25maWcvcGEvdC1ocHV4LXNobGliIChTSExJQl9JTlNUQUxMKTogQ3JlYXRlIHRoZQoJaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBmaXJzdC4KCjIwMDUtMDItMjcgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNzcyOAoJKiBwYS5tZCAobXVsc2kzLCBkaXZzaTMsIHVkaXZzaTMsIG1vZHNpMyk6IENoYW5nZSBwcmVkaWNhdGUgZm9yCglvcGVyYW5kIDAgZnJvbSBnZW5lcmFsX29wZXJhbmQgdG8gbW92ZV9kZXN0X29wZXJhbmQuCgoyMDA1LTAyLTI2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogcGEvZWxmLmgsIHBhL3NvbS5oIChBU01fT1VUUFVUX0VYVEVSTkFMKTogVXNlIGFzc2VtYmxlX25hbWVfcmF3CglpbnN0ZWFkIG9mIHRyeWluZyB0byBzYXZlIGFuZCByZXN0b3JlIFRSRUVfU1lNQk9MX1JFRkVSRU5DRUQuCgkqIHBhL3BhNjQtaHB1eC5oIChBU01fT1VUUFVUX1RZUEVfRElSRUNUSVZFKTogRGVmaW5lLgoJKEFTTV9PVVRQVVRfRVhURVJOQUwpOiBEb24ndCBzYXZlIGFuZCByZXN0b3JlIFRSRUVfU1lNQk9MX1JFRkVSRU5DRUQuCgoyMDA1LTAyLTI2ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0cmVlLW9wdC8yMDE4OAoJKiB0cmVlLXNzYS1hbGlhcy5jIChjb3VudF91c2VzX2FuZF9kZXJlZnMpOiBJZiB3ZSBoYXZlIFRSRUVfTElTVAoJZm9yIHRoZSBsaHMsIGFsc28gd2FsayBvdmVyIHRoZSB0cmVlLiAgTGlrZXdpc2UgZm9yIHJocy4KCjIwMDUtMDItMjYgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogZG9jL2ludm9rZS50ZXhpLCBkb2Mvc3RhbmRhcmRzLnRleGk6IFJlZmVyIHRvCglnY2MtNC4wL2M5OXN0YXR1cy5odG1sLgoKMjAwNS0wMi0yNiAgUGFvbG8gQ2FybGluaSAgPHBjYXJsaW5pQHN1c2UuZGU+CgoJKiBkb2MvZXh0ZW5kLnRleGkgKDUuMjQgRGVjbGFyaW5nIEF0dHJpYnV0ZXMgb2YgRnVuY3Rpb25zKTxub3JldHVybj46CglDbGFyaWZ5IHRoYXQgdGhlIGFsdGVybmF0aXZlIHdheSBkb2Vzbid0IHdvcmsgaW4gR05VIEMrKy4KCjIwMDUtMDItMjUgIFN0ZXZlIEVsbGNleSAgPHNqZUBjdXAuaHAuY29tPgoKCVBSIHRhcmdldC8xOTkzMAoJKiBkb2MvdG0udGV4aSAoTElCR0NDMl9MT05HX0RPVUJMRV9UWVBFX1NJWkUpOiBEb2N1bWVudC4KCShMSUJHQ0MyX0hBU19ERl9NT0RFKTogTmV3LgoJKExJQkdDQzJfSEFTX1hGX01PREUpOiBOZXcuCgkoTElCR0NDMl9IQVNfVEZfTU9ERSk6IE5ldy4KCSogbGliZ2NjMi5oIChMSUJHQ0MyX0hBU19YRl9NT0RFKTogTmV3IG5hbWUgZm9yIEhBVkVfWEZNT0RFLgoJKExJQkdDQzJfSEFTX1RGX01PREUpOiBOZXcgbmFtZSBmb3IgSEFWRV9URk1PREUuCgkqIGxpYmdjYzIuYyAoTElCR0NDMl9IQVNfWEZfTU9ERSk6IE5ldyBuYW1lIGZvciBIQVZFX1hGTU9ERS4KCShMSUJHQ0MyX0hBU19URl9NT0RFKTogTmV3IG5hbWUgZm9yIEhBVkVfVEZNT0RFLgoJKExJQkdDQzJfSEFTX0RGX01PREUpOiBOZXcgbmFtZSBmb3IgSEFWRV9ERk1PREUuCgkqIGNvbmZpZy9pYTY0L3QtaWE2NCAoTElCMUFTTUZVTkNTKTogUmVtb3ZlIF9fY29tcGF0CglhbmQgYWRkIF9maXh0ZmRpLCBfZml4dW5zdGZkaSwgX2Zsb2F0ZGl0ZgoJKiBsaWIxZnVuY3MuYXNtOiBSZW1vdmUgTF9fY29tcGF0LiBBZGQgTF9maXh0ZmRpLAoJTF9maXh1bnN0ZmRpLCBMX2Zsb2F0ZGl0Zi4KCSogY29uZmlnL2lhNjQvaHB1eC5oIChMSUJHQ0MyX0hBU19YRl9NT0RFKTogRGVmaW5lLgoJKExJQkdDQzJfSEFTX1RGX01PREUpOiBEZWZpbmUuCgoyMDA1LTAyLTI1ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8yMDIwNAoJKiB0cmVlLWludG8tc3NhLmMgKGluc2VydF9waGlfbm9kZXNfZm9yKTogRG8gbm90IHVzZQoJUkVXUklURV9USElTX1NUTVQgbWFya2VycyBvbiBQSEkgbm9kZXMuCgkocmV3cml0ZV9pbml0aWFsaXplX2Jsb2NrKTogTGlrZXdpc2UuCgoyMDA1LTAyLTI1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogdmVyc2lvbi5jICh2ZXJzaW9uX3N0cmluZyk6IE1hcmsgYXMgcHJlcmVsZWFzZS4KCSogZG9jL2luY2x1ZGUvZ2NjLWNvbW1vbi50ZXhpIChERVZFTE9QTUVOVCk6IEBjbGVhciBpdC4KCSogY29uZmlndXJlLmFjIChpc19yZWxlYXNlKTogU2V0IHRvIDEuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDA1LTAyLTI1ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5OTM3CgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMgKHJld3JpdGVfdXNlX2NvbXBhcmUpOiBDYXN0IHRoZSBmaW5hbCB2YWx1ZQoJdG8gdGhlIHR5cGUgb2YgdGhlIGluZHVjdGlvbiB2YXJpYWJsZS4KCjIwMDUtMDItMjUgIEtheiBLb2ppbWEgIDxra29qaW1hQGdjYy5nbnUub3JnPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMjAxMTcKCSogYmItcmVvcmRlci5jIChkdXBsaWNhdGVfY29tcHV0ZWRfZ290b3MpOiBEb24ndCBkdXBsaWNhdGUKCXRoZSBibG9jayBpbmNsdWRpbmcgbm9uY29weWFibGUgaW5zbi4KCjIwMDUtMDItMjQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjc2UuYyAoZGVsZXRlX3RyaXZpYWxseV9kZWFkX2luc25zKTogU3BlZWQgdXAgYnkgbWluaW1pemluZwoJY2FsbHMgdG8gZmluZF9yZWdfbm90ZS4KCjIwMDUtMDItMjQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHQvMjAxMjcKCSogdHJlZS1zcmEuYyAoaW5zdGFudGlhdGVfZWxlbWVudCk6IENvcHkgVFJFRV9USElTX1ZPTEFUSUxFIGZyb20KCXRoZSB0eXBlLgoKMjAwNS0wMi0yNCAgRmFyaWJvcnogSmFoYW5pYW4gPGZqYWhhbmlhbkBhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfbGVnaXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyk6IENoZWNrIGZvcgoJdmVjdG9yIHR5cGVzIGlmIHRvIHVzZSBiYXNlIHJlZyBmb3IgbWlzYWxpZ25lZCBub24td29yZCBsZC9zdGQuCgoyMDA1LTAyLTI0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCglQUiB0YXJnZXQvMTQ2MTkKCSogY29uZmlnL2NyaXMvY3Jpcy5jIChjcmlzX3RhcmdldF9hc21fZnVuY3Rpb25fcHJvbG9ndWUpOiBDcmVhdGUKCWR3YXJmMiBsYWJlbCBtYW51YWxseSBhbmQgcHV0IGl0IGFmdGVyLCBub3QgYmVmb3JlIHRoZSBwcm9sb2d1ZS4KCjIwMDUtMDItMjQgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCglQUiB0YXJnZXQvMTkwMTkKCSogcmVsb2FkLmMgKG9wZXJhbmRzX21hdGNoX3ApOiBPbmx5IGluY3JlbWVudCByZWdpc3RlciBudW1iZXIgZm9yCglTQ0FMQVJfSU5UX01PREVfUCBtb2RlcyBpbiBtdWx0aXBsZSBoYXJkIHJlZ2lzdGVycy4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kICh0cnVuY3RmZGYyKTogUmVtb3ZlIHJlZ2lzdGVyIGNvbnN0cmFpbnRzLgoJRml4IGZvcm1hdHRpbmcuCgoyMDA1LTAyLTI0ICBWb2xrZXIgUmVpY2hlbHQgIDxyZWljaGVsdEBpZ3BtLnJ3dGgtYWFjaGVuLmRlPgoKCSogQ2hhbmdlTG9nLjU6IEZpeCBsb2cgbWVzc2FnZSB0eXBvKHMpLgoJKiBDaGFuZ2VMb2cuNzogTGlrZXdpc2UuCgkqIENoYW5nZUxvZy50cmVlLXNzYTogTGlrZXdpc2UuCgkqIGNmZ2V4cGFuZC5jOiBGaXggY29tbWVudCB0eXBvKHMpLgoJKiBjb25mbGljdC5jOiBMaWtld2lzZS4KCSogZGVmYXVsdHMuaDogTGlrZXdpc2UuCgkqIGR3YXJmMm91dC5jOiBMaWtld2lzZS4KCSogZ2NzZS5jOiBMaWtld2lzZS4KCSogZ2djLXBhZ2UuYzogTGlrZXdpc2UuCgkqIHRyZWUtZWguYzogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWRvbS5jOiBMaWtld2lzZS4KCjIwMDUtMDItMjQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xOTAxOQoJKiBta2xpYmdjYy5pbjogUGFzcyAtRFNIQVJFRCB3aGVuIGNvbXBpbGluZyBhbGwgKl9zJHtvYmpleHR9IG9iamVjdHMuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLWxkb3VibGUuYzogT25seSB1c2UgdGhlIC5zeW12ZXIgZGlyZWN0aXZlcwoJaWYgU0hBUkVEIGlzIGRlZmluZWQuCgoJUFIgdGFyZ2V0LzIwMTk2CgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChMVFUsIEdUVSBzQ0Mgc3BsaXR0ZXJzKTogQWRkIGVhcmx5Y2xvYmJlciwKCWFsbG93IHNwbGl0dGluZyBvbmx5IGlmIG9wZXJhbmRzIDAgYW5kIDMgZG9uJ3Qgb3ZlcmxhcC4KCjIwMDUtMDItMjQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8xOTk1MwoJKiBidWlsdGlucy5jIChmb2xkX2J1aWx0aW5fY29tcGxleF9tdWwsIGZvbGRfYnVpbHRpbl9jb21wbGV4X2Rpdik6IE5ldy4KCShmb2xkX2J1aWx0aW5fMSk6IENhbGwgdGhlbS4KCSogZm9sZC1jb25zdC5jIChmb2xkX2NvbXBsZXhfbXVsdF9wYXJ0cyk6IFNwbGl0IG91dCBmcm9tIC4uLgoJKGZvbGRfY29tcGxleF9tdWx0KTogLi4uIGhlcmUuICBGaXggdHlwbyBpbiBib3RoIGltYWdpbmFyeSBjYXNlLgoJKGZvbGRfY29tcGxleF9kaXZfcGFydHMsIGZvbGRfY29tcGxleF9kaXYpOiBOZXcuCgkoZm9sZCk6IFVzZSB0aGVtLgoJKiB0cmVlLmggKGZvbGRfY29tcGxleF9tdWx0X3BhcnRzLCBmb2xkX2NvbXBsZXhfZGl2X3BhcnRzKTogRGVjbGFyZS4KCjIwMDUtMDItMjQgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiB0cmVlLXNzYS1jY3AuYyAodmlzaXRfYXNzaWdubWVudCk6IFZlcmlmeSB0aGF0IHJlc3VsdCBvZgoJVklFV19DT05WRVJUX0VYUFIgaXNfZ2ltcGxlX21pbl9pbnZhcmlhbnQuCgoJKiBwcmludC10cmVlLmMgKHByaW50X25vZGVfYnJpZWYpOiBQcmludCBMQUJFTF9ERUNMX1VJRC4KCShwcmludF9ub2RlKTogTGlrZXdpc2UuCglQcmludCBUWVBFX1NJWkVTX0dJTVBMSUZJRUQuCgoyMDA1LTAyLTI0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGNvbmZpZy9jcmlzL2NyaXMubWQgKCJ1bXVsaGlzaTMiLCAidW11bHFpaGkzIiwgIm11bHNpMyIpCgkoIm11bHFpaGkzIiwgIm11bGhpc2kzIiwgIm11bHNpZGkzIiwgInVtdWxzaWRpMyIpOiBNYXJrIGlucHV0CglvcGVyYW5kcyBhcyBjb21tdXRhdGl2ZSBpbiBjb25zdHJhaW50cy4KCjIwMDUtMDItMjQgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1pbnRvLXNzYS5jOiBSZS1vcmdhbml6ZSBpbnRlcm5hbCBmdW5jdGlvbnMuCgoyMDA1LTAyLTI0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTg5MDIKCSogYy1vcHRzLmMgKGNfY29tbW9uX3Bvc3Rfb3B0aW9ucyk6IFNldCBmbGFnX2NvbXBsZXhfbWV0aG9kIHRvIDIKCWZvciBjOTkuCgkqIGNvbW1vbi5vcHQgKGZjeC1saW1pdGVkLXJhbmdlKTogTmV3LgoJKiBvcHRzLmMgKHNldF9mYXN0X21hdGhfZmxhZ3MpOiBTZXQgZmxhZ19jeF9saW1pdGVkX3JhbmdlLgoJKiB0b3BsZXYuYyAoZmxhZ19jb21wbGV4X21ldGhvZCk6IEluaXRpYWxpemUgdG8gMS4KCShwcm9jZXNzX29wdGlvbnMpOiBTZXQgZmxhZ19jb21wbGV4X21ldGhvZCB0byAwIGlmCglmbGFnX2N4X2xpbWl0ZWRfcmFuZ2UuCgkqIGRvYy9pbnZva2UudGV4aSAoLWZjeC1saW1pdGVkLXJhbmdlKTogTmV3LgoKMjAwNS0wMi0yNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNzZS5jIChkZWxldGVfdHJpdmlhbGx5X2RlYWRfaW5zbnMpOiBTcGVlZCB1cCBieSB1c2luZwoJTkVYVF9JTlNOIGFuZCBQUkVWX0lOU04gZGlyZWN0bHkgaW5zdGVhZCBvZiBuZXh0X3JlYWxfaW5zbiBhbmQKCXByZXZfcmVhbF9pbnNuLgoKMjAwNS0wMi0yNCAgQW5kcmVhIFRhcmFuaSAgPGFuZHJlYS50YXJhbmlAZ2lsYmFyY28uY29tPgoKCSogY29uZmlnL202OGsvbTY4ay5jIChtNjhrX3NhdmVfcmVnKTogQWxzbyBzYXZlIEE1IGZvciBub24tbGVhZgoJZnVuY3Rpb25zIHdoZW4gLW1pZC1zaGFyZWQtbGlicmFyeSBpcyBiZWluZyB1c2VkLgoKMjAwNS0wMi0yMyAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRvYy90bS50ZXhpIChMSU5LX0xJQkdDQ19TUEVDSUFMKTogUmVtb3ZlLgoJKExJTktfTElCR0NDX1NQRUNJQUxfMSk6IERvbid0IG1lbnRpb24gaXQuCgkqIGdjYy5jOiBEb24ndCBjaGVjayBmb3IgTElOS19MSUJHQ0NfU1BFQ0lBTC4KCSogc3lzdGVtLmg6IFBvaXNvbiBMSU5LX0xJQkdDQ19TUEVDSUFMLgoKMjAwNS0wMi0yMyAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogZ2VuZ3R5cGUuYyAobm90ZV9pbnNuX25hbWUpOiBNYWtlIDEgZWxlbWVudCBsYXJnZXIuCgoyMDA1LTAyLTIzICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiB0YXJnZXQvMjAwMTgKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMjAwOTcKCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X3JlbGF0aW9uYWxfb3BlcmF0aW9uXzEpOiBBdm9pZCBjcmVhdGluZwoJQkltb2RlIFNVQlJFR3Mgb2YgU0ltb2RlIHJlZ2lzdGVycyB3aGljaCBjb25mdXNlIHRoZSBpYTY0IGJhY2tlbmQuCgoyMDA1LTAyLTIzICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiB0LWFpeDQzIChTSExJQl9JTlNUQUxMKTogQ3JlYXRlIGRpcmVjdG9yeSBmb3Igc2hhcmVkIGxpYnJhcnkuCgkqIHQtYWl4NTIgKFNITElCX0lOU1RBTEwpOiBTYW1lLgoKMjAwNS0wMi0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGdlbnByZWRzLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgoyMDA1LTAyLTIzICBNaWNoYWVsIEJlYWNoICA8bWljaGFlbGJAaWVlZS5vcmc+CgoJUFIgdGFyZ2V0LzIwMTU5CgkqIGNvbmZpZy9zcGFyYy90LWVsZiAoc3RhcnR1cCBmaWxlcyk6IEFzc2VtYmxlIHdpdGggQ1BQLgoKMjAwNS0wMi0yMyAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGdlbnByZWRzLmMgKG1hcmtfbW9kZV90ZXN0cyk6IEhhbmRsZSBub24tVk9JRG1vZGUgbWF0Y2hfb3BlcmFuZHMuCgkod3JpdGVfcHJlZGljYXRlX2V4cHIpOiBMaWtld2lzZS4KCjIwMDUtMDItMjIgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzIwMTAwCglQUiB0cmVlLW9wdGltaXphdGlvbi8yMDExNQoJKiB0cmVlLW9wdGltaXplLmMgKGluaXRfdHJlZV9vcHRpbWl6YXRpb25fcGFzc2VzKTogUmVtb3ZlCglwYXNzX21heWJlX2NyZWF0ZV9nbG9iYWxfdmFyLgoJKiB0cmVlLXBhc3MuaCAocGFzc19tYXliZV9jcmVhdGVfZ2xvYmFsX3Zhcik6IFJlbW92ZS4KCSogdHJlZS1zc2EtYWxpYXMuYyAoYWxpYXNlc19jb21wdXRlZF9wKTogRGVjbGFyZS4KCShzdHJ1Y3QgYWxpYXNfaW5mbyk6IEFkZCBmaWVsZCBOVU1fUFVSRV9DT05TVF9DQUxMU19GT1VORC4KCShjb3VudF9jYWxsc19hbmRfbWF5YmVfY3JlYXRlX2dsb2JhbF92YXIpOiBSZW1vdmUuCgkocGFzc19tYXliZV9jcmVhdGVfZ2xvYmFsX3Zhcik6IFJlbW92ZS4KCShpbml0X2FsaWFzX2luZm8pOiBEbyBub3QgZGVjbGFyZSBhbGlhc2VzX2NvbXB1dGVkX3AuCgkobWF5YmVfY3JlYXRlX2dsb2JhbF92YXIpOiBJZiB0aGUgZnVuY3Rpb24gY29udGFpbnMgbm8KCWNhbGwtY2xvYmJlcmVkIHZhcmlhYmxlcyBhbmQgYSBtaXggb2YgcHVyZS9jb25zdCBhbmQgcmVndWxhcgoJZnVuY3Rpb24gY2FsbHMsIGNyZWF0ZSAuR0xPQkFMX1ZBUi4KCU1hcmsgYWxsIGNhbGwtY2xvYmJlcmVkIHZhcmlhYmxlcyBmb3IgcmVuYW1pbmcuCgkobWVyZ2VfcG9pbnRlZF90b19pbmZvKTogVXBkYXRlIGNvbW1lbnQuCgkoYWRkX3BvaW50ZWRfdG9fdmFyKTogTGlrZXdpc2UuCgkoaXNfZXNjYXBlX3NpdGUpOiBMaWtld2lzZS4KCUFjY2VwdCBzdHJ1Y3QgYWxpYXNfaW5mbyAqIGluc3RlYWQgb2Ygc2l6ZV90ICouCglVcGRhdGUgYWxsIHVzZXJzLgoJVXBkYXRlIEFJLT5OVU1fQ0FMTFNfRk9VTkQgYW5kIEFJLT5OVU1fUFVSRV9DT05TVF9DQUxMU19GT1VORAoJYXMgbmVjZXNzYXJ5LgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfY2FsbF9leHByX29wZXJhbmRzKTogSWYKCUFMSUFTRVNfQ09NUFVURURfUCBpcyBmYWxzZSwgZG8gbm90IGFkZCBjYWxsLWNsb2JiZXJpbmcKCW9wZXJhbmRzLgoJKiB0cmVlLXNzYS5jIChpbml0X3RyZWVfc3NhKTogU2V0IEFMSUFTRVNfQ09NUFVURURfUCB0byBmYWxzZS4KCShkZWxldGVfdHJlZV9zc2EpOiBMaWtld2lzZS4KCjIwMDUtMDItMjIgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIHRvcGxldi5jIChiYWNrZW5kX2luaXQpOiBEb24ndCBjYWxsIGluaXRfYWRqdXN0X21hY2hpbmVfbW9kZXMgaGVyZS4KCShkb19jb21waWxlKTogRG8gY2FsbCBpdCBoZXJlLgoKMjAwNS0wMi0yMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzIwMDE3LgoJKiBwYXNzZXMuYyAocmVzdF9vZl9oYW5kbGVfY29tYmluZSwgcmVzdF9vZl9oYW5kbGVfY3NlLAoJcmVzdF9vZl9oYW5kbGVfY3NlMiwgcmVzdF9vZl9oYW5kbGVfZ2NzZSk6IENhbGwKCWRlbGV0ZV9kZWFkX2p1bXB0YWJsZXMgaW1tZWRpYXRlbHkgYmVmb3JlIGNhbGxpbmcgY2xlYW51cF9jZmcuCgoyMDA1LTAyLTIyICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCVBSIDE5OTUyCgkqIHRyZWUtaWYtY29udi5jIChwcm9jZXNzX3BoaV9ub2Rlcyk6IFVzZSBic2lfYWZ0ZXJfbGFiZWxzIGFuZCBza2lwCglhbGwgbGFiZWxzCgoyMDA1LTAyLTIyICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWcvcnM2MDAwL2FpeC5oIChXSU5UX1RZUEUpOiBEZWZpbmUuCgoyMDA1LTAyLTIyICBTdGFuIFNoZWJzICA8c2hlYnNAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX292ZXJyaWRlX29wdGlvbnMpOiBEZWZhdWx0IHRvCgluYXR1cmFsIGFsaWdubWVudCBmb3IgNjQtYml0IERhcndpbi4KCShyczYwMDBfcGFyc2VfYWxpZ25tZW50X29wdGlvbik6IFdhcm4gYWJvdXQgdXNlcyBvZiAtbWFsaWduLXBvd2VyCglvbiA2NC1iaXQgRGFyd2luLgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IHRoaXMuCgoyMDA1LTAyLTIyICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGMtY29tbW9uLmMgKGNfY29tbW9uX3R5cGVfZm9yX21vZGUpOiBQYXNzIHRoZSBtb2RlJ3MgcHJlY2lzaW9uCgl0byBtYWtlX1t1bl1zaWduZWRfdHlwZSwgbm90IHRoZSBtb2RlIGl0c2VsZi4KCjIwMDUtMDItMjIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjZmcuYyAoY2FjaGVkX21ha2VfZWRnZSk6IENhbGwgbWFrZV9lZGdlIGlmIGVkZ2UgY2FjaGUgaXMKCW5vdCBhdmFpbGFibGUuICBVc2UgdGFpbCBjYWxscyB3aGVyZXZlciBwb3NzaWJsZS4KCShtYWtlX2VkZ2UpOiBDYWxsIHVuY2hlY2tlZF9tYWtlX2VkZ2UgdG8gY3JlYXRlIGFuIGVkZ2UuCgoJKiB0cmVlLW91dG9mLXNzYS5jIChTU0FOT1JNX1VTRV9DT0FMRVNDRV9MSVNUKTogUmVtb3ZlLgoJKGNvYWxlc2NlX3NzYV9uYW1lKTogRG9uJ3QgY2hlY2sgZm9yCglTU0FOT1JNX1VTRV9DT0FMRVNDRV9MSVNULgoJKHJld3JpdGVfb3V0X29mX3NzYSk6IERvbid0IHVzZSBTU0FOT1JNX1VTRV9DT0FMRVNDRV9MSVNULgoKMjAwNS0wMi0yMiAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLWludG8tc3NhLmMgKHJld3JpdGVfYmxvY2tzKTogTW92ZSBkZWJ1ZyBkdW1wcyBmcm9tIC4uLgoJKHJld3JpdGVfaW50b19zc2EpOiAuLi4gaGVyZS4KCjIwMDUtMDItMjEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5Nzg2CgkqIHRyZWUtc3NhLWFsaWFzLmMgKGNvbXB1dGVfZmxvd19pbnNlbnNpdGl2ZV9hbGlhc2luZyk6IEFkZCBvbmUKCXRhZyB0byBhbm90aGVyJ3MgbWF5LWFsaWFzIGJpdG1hcCB3aGVuIGFkZGluZyB0byB0aGUgb3RoZXIncyBsaXN0LgoKMjAwNS0wMi0yMSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChjb21wdXRhdGlvbl9jb3N0KTogU3RhcnQgcmVnaXN0ZXIKCW51bWJlcmluZyBhdCBMQVNUX1ZJUlRVQUxfUkVHSVNURVIrMSB0byBhdm9pZCBwb3NzaWJseSB1c2luZyBoYXJkCglyZWdpc3RlcnMgaW4gdW5zdXBwb3J0ZWQgd2F5cy4KCSogZXhwbWVkLmMgKGluaXRfZXhwbWVkKTogTGlrZXdpc2UuCgoyMDA1LTAyLTIxICBTdGFuIENveCAgPHNjb3hAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pcTIwMDAvaXEyMDAwLmggKERXQVJGX0ZSQU1FX1JFVFVSTl9DT0xVTU4pOiBDaGFuZ2UgdG8gMzEuCgoyMDA1LTAyLTIxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYyAoZm9sZF9jb25kX2V4cHJfY29uZCk6IE5ldy4KCShtYWtlX2VkZ2VzKTogQ2FsbCBmb2xkX2NvbmRfZXhwcl9jb25kLgoJKGZpbmRfdGFrZW5fZWRnZSk6IEFjY2VwdCBub3RoaW5nIGJ1dCBJTlRFR0VSX0NTVC4KCShmaW5kX3Rha2VuX2VkZ2VfY29uZF9leHByKTogUmVqZWN0IElOVEVHRVJfQ1NUIG90aGVyIHRoYW4gMAoJYW5kIDEuCgkoZmluZF90YWtlbl9lZGdlX3N3aXRjaF9leHByKTogUmVtb3ZlIGEgY2hlY2sgZm9yIElOVEVHRVJfQ1NULgoKCSogZmxvdy5jIChkZWxldGVfZGVhZF9qdW1wdGFibGVzKTogU3BlZWQgdXAgYnkgc2Nhbm5pbmcgaW5zbnMKCXRoYXQgZG8gbm90IGJlbG9uZyB0byBhbnkgYmFzaWMgYmxvY2suCgoyMDA1LTAyLTIxICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogY2ZnYW5hbC5jIChmaW5kX3VucmVhY2hhYmxlX2Jsb2Nrcyk6IE1hbnVhbGx5IENTRSBsb2FkIG9mCgllLT5kZXN0LgoKMjAwNS0wMi0yMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtb3V0b2Ytc3NhLmMgKFNTQU5PUk1fUkVNT1ZFX0FMTF9QSElTKTogUmVtb3ZlLgoJKFNTQU5PUk1fQ09BTEVTQ0VfUEFSVElUSU9OUywgU1NBTk9STV9VU0VfQ09BTEVTQ0VfTElTVCk6CglBZGp1c3QgdGhlaXIgZGVmaW5pdGlvbnMuCgkocmVtb3ZlX3NzYV9mb3JtKTogRG9uJ3QgY2hlY2sgZm9yIFNTQU5PUk1fUkVNT1ZFX0FMTF9QSElTLgoJKHJld3JpdGVfb3V0X29mX3NzYSk6IERvbid0IHVzZSBTU0FOT1JNX1JFTU9WRV9BTExfUEhJUy4KCgkqIGMtb2JqYy1jb21tb24uaCwgYy1wcmV0dHktcHJpbnQuYywgY2dyYXBodW5pdC5jLCBleGNlcHQuYywKCWdlbmF1dG9tYXRhLmMsIGxhbmdob29rcy5jLCBsYW5naG9va3MuaCwgc3lzdGVtLmgsCgljb25maWcvYXJtL2xpYjFmdW5jcy5hc206IFVwZGF0ZSBjb3B5cmlnaHQuCgoyMDA1LTAyLTIxICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBkYnhvdXQuYyAoZGJ4b3V0X2Z1bmN0aW9uX2VuZCk6IEVtaXQgTHNjb3BlIGxhYmVsIGFsd2F5cy4KCjIwMDUtMDItMjEgIFJpY2hhcmQgR3VlbnRoZXIgIDxyZ3VlbnRoQGdjYy5nbnUub3JnPgoKCVBSIGJvb3RzdHJhcC8xMzc3MAoJKiBkb2MvaW5zdGFsbC50ZXhpOiBEb2N1bWVudCAtLXdpdGgtZ2MuCgoyMDA1LTAyLTIxICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X3VuYXJ5X29wZXJhdGlvbik6IEFkZCBhIG1pc3NpbmcKCSJicmVhayIgc3RhdGVtZW50LgoKMjAwNS0wMi0yMSAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xODY2MwoJKiB0cmVlLXNzYS1kb20uYyAoZXh0cmFjdF9yYW5nZV9mcm9tX2NvbmQpOiBSZXR1cm4gMAoJaWYgdGhlIHR5cGUgaGFzIHZhcmlhYmxlIGJvdW5kcy4KCjIwMDUtMDItMjAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBnY3NlLmM6IFJlbW92ZSBhbiBvYnNvbGV0ZSBjb21tZW50LgoKCSogY3NlLmMgKGluaXRfY3NlX3JlZ19pbmZvKTogVXNlIHhtYWxsb2MgaW5zdGVhZCBvZiB4cmVhbGxvYy4KCjIwMDUtMDItMjAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZG9jL2V4dGVuZC50ZXhpIChGdW5jdGlvbiBBdHRyaWJ1dGVzKSA8QXR0cmlidXRlIGNvbnN0PjogVGhlCglhdHRyaWJ1dGUgInB1cmUiIGlzIGJlbG93IHRoaXMgdGV4dCwgbm90IGFib3ZlLgoKMjAwNS0wMi0yMCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIHBhLmMgKHBhX2Fzc2VtYmxlX2ludGVnZXIsIGdldF9wbGFiZWwpOiBTbWFsbCBjbGVhbnVwcy4KCShwYV9hc21fb3V0cHV0X21pX3RodW5rKTogVXNlIGFzbV9vdXRwdXRfaW5zbiBpbnN0ZWFkIG9mIGZwcmludGYuCgkqIHNvbS5oIChBU01fT1VUUFVUX0VYVEVSTkFMX0xJQkNBTEwpOiBTbWFsbCBjbGVhbnVwLgoKMjAwNS0wMi0yMCAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiAxODc4NQoJKiBsYW5naG9va3MuaCAoc3RydWN0IGxhbmdfaG9va3MpOiBBZGQgdG9fdGFyZ2V0X2NoYXJzZXQuCgkqIGxhbmdob29rcy5jIChsaGRfdG9fdGFyZ2V0X2NoYXJzZXQpOiBOZXcgZnVuY3Rpb24uCgkqIGxhbmdob29rcy1kZWYuaDogRGVjbGFyZSBsaGRfdG9fdGFyZ2V0X2NoYXJzZXQuCgkoTEFOR19IT09LU19UT19UQVJHRVRfQ0hBUlNFVCk6IE5ldyBtYWNyby4KCShMQU5HX0hPT0tTX0lOSVRJQUxJWkVSKTogVXBkYXRlLgoJKiBjLWNvbW1vbi5jIChjX2NvbW1vbl90b190YXJnZXRfY2hhcnNldCk6IE5ldyBmdW5jdGlvbi4KCSogYy1jb21tb24uaDogRGVjbGFyZSBpdC4KCSogYy1vYmpjLWNvbW1vbi5oIChMQU5HX0hPT0tTX1RPX1RBUkdFVF9DSEFSU0VUKTogU2V0IHRvCgljX2NvbW1vbl90b190YXJnZXRfY2hhcnNldC4KCgkqIGRlZmF1bHRzLmMgKFRBUkdFVF9CRUxMLCBUQVJHRVRfQlMsIFRBUkdFVF9DUiwgVEFSR0VUX0RJR0lUMCkKCShUQVJHRVRfRVNDLCBUQVJHRVRfRkYsIFRBUkdFVF9ORVdMSU5FLCBUQVJHRVRfVEFCLCBUQVJHRVRfVlQpOgoJRGVsZXRlIGRlZmluaXRpb25zLgoJKiBzeXN0ZW0uaDogUG9pc29uIHRoZW0uCgkqIGRvYy90bS50ZXhpOiBEb24ndCBkaXNjdXNzIHRoZW0uCgkqIGJ1aWx0aW5zLmMgKGZvbGRfYnVpbHRpbl9pc2RpZ2l0KTogVXNlIGxhbmdfaG9va3MudG9fdGFyZ2V0X2NoYXJzZXQuCgkqIGMtcHJldHR5LXByaW50LmMgKHBwX2NfaW50ZWdlcl9jb25zdGFudCk6IERvbid0IHVzZSBwcF9jX2NoYXIuCgkocHBfY19jaGFyKTogRG8gbm90IGF0dGVtcHQgdG8gZ2VuZXJhdGUgbGV0dGVyIGVzY2FwZXMgZm9yCgluZXdsaW5lLCB0YWIsIGV0Yy4KCSogY29uZmlnL2FybS9hcm0uYyAob3V0cHV0X2FzY2lpX3BzZXVkb19vcCk6IExpa2V3aXNlLgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfb3V0cHV0X2FzY2lpKTogTGlrZXdpc2UuCgoyMDA1LTAyLTIwICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTk5NTEKCSogdHJlZS12ZWN0LWFuYWx5emUuYyAodmVjdF9hbmFseXplX2xvb3BfZm9ybSk6IENoZWNrIGlmIGxvb3AgZXhpdCBlZGdlCglpcyBhYm5vcm1hbC4KCjIwMDUtMDItMTkgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCglQUiBtaWRkbGUtZW5kLzE5Njk4CgkqIGZ1bmN0aW9uLmggKHN0cnVjdCBmdW5jdGlvbik6IE5ldyBmaWVsZCBgbWF4X2xvb3BfZGVwdGgnLgoJKiBjZmdsb29wLmMgKGVzdGFibGlzaF9wcmVkcyk6IFVwZGF0ZSBtYXhpbXVtIGxvb3AgZGVwdGggc2VlbiBzbyBmYXIuCgkoZmxvd19sb29wc19maW5kKTogUmVzZXQgdGhlIG1heCBsb29wIGRlcHRoIGNvdW50IGJlZm9yZSBmaW5kaW5nIGxvb3BzLgoJKiBmbG93LmMgKE1BWF9MSVZFTkVTU19ST1VORFMpOiBOZXcgY29uc3RhbnQuCgkodXBkYXRlX2xpZmVfaW5mb19pbl9kaXJ0eV9ibG9ja3MpOiBSZW1vdmUgMjAwMi0wNS0yOCB3b3JrYXJvdW5kLgoJKGNhbGN1bGF0ZV9nbG9iYWxfcmVnc19saXZlKTogTWFrZSBzdXJlIHRoZSBsb29wIHdpbGwgdGVybWluYXRlCgl3aGVuIHRoZSBpbml0aWFsIHNldHMgYXJlIG5vdCBlbXB0eS4KCjIwMDUtMDItMTkgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBta2xpYmdjYy5pbjogSWYgbGliZ2NjX2VoLmEgd291bGQgYmUgZW1wdHksIHB1dCBhIGR1bW15CglvYmplY3QgaW5zaWRlLgoJKiBjb25maWcvaWE2NC9ocHV4Lmg6IERvbid0IGRlZmluZSBMSUJHQ0NfU1BFQy4KCjIwMDUtMDItMTkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCglQUiBvdGhlci8xOTUyNQoJKiBkb2MvaW52b2tlLnRleGk6IFJlbW92ZSBkb2N1bWVudGF0aW9uIG9mICVNIHNwZWMuCgkqIGdjYy5jOiBMaWtld2lzZS4KCShpbml0X3NwZWMpOiBSZW1vdmUgJU0gc3VmZml4IGZyb20gLWxnY2Nfcy4KCShkb19zcGVjXzEpOiBSZW1vdmUgJ00nIGNhc2UuCgkqIG1rbGliZ2NjLmluOiBSZW1vdmUgU0hMSUJfTVVMVElMSUIgaGFuZGxpbmcuICBFeHBlY3QgU0hMSUJfTElOSwoJdG8gcHV0IHNoYXJlZCBsaWJyYXJpZXMgaW4gdGhlIG11bHRpbGliIGRpcmVjdG9yeS4gIFJlbW92ZSB0aGUKCXNobGliX3NvX3NvbmFtZSBzdWJzdGl0dXRpb24gdmFyaWFibGUuICBEb24ndCBhZGQgYSBtdWx0aWxpYiBlbmNvZGluZwoJdG8gc2hsaWJfYmFzZV9uYW1lLiAgU2V0IHNobGliX3NsaWJkaXJfcXVhbCB0byB0aGUgZnVsbCBwYXRobmFtZQoJcmVwb3J0ZWQgYnkgLXByaW50LW11bHRpLW9zLWRpcmVjdG9yeS4gIFBhc3MgQG11bHRpbGliX2RpckAgdG8KCVNITElCX0lOU1RBTEwgYXMgd2VsbCBhcyBTSExJQl9MSU5LLgoJKiBjb25maWcvdC1zbGliZ2NjLWVsZi12ZXIgKFNITElCX1NPTkFNRSk6IFVzZSBAc2hsaWJfYmFzZV9uYW1lQC4KCShTSExJQl9OQU1FKTogRGVsZXRlLgoJKFNITElCX0RJUik6IE5ldyBtYWNyby4KCShTSExJQl9MSU5LKTogUHV0ICQoU0hMSUJfU09OQU1FKSBhbmQgJChTSExJQl9TT0xJTkspIGluICQoU0hMSUJfRElSKS4KCShTSExJQl9JTlNUQUxMKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKiBjb25maWcvdC1zbGliZ2NjLWRhcndpbjogQXMgZm9yIHQtc2xpYmdjYy1lbGYtdmVyLgoJKiBjb25maWcvdC1zbGliZ2NjLXNsZDogTGlrZXdpc2UuCgkqIGNvbmZpZy90LWxpYnVud2luZC1lbGYgKFNITElCVU5XSU5EX05BTUUpOiBEZWxldGUuCgkoU0hMSUJVTldJTkRfU09OQU1FKTogVXNlIEBzaGxpYl9iYXNlX25hbWVALgoJKFNITElCVU5XSU5EX0xJTkspOiBQdXQgJChTSExJQlVOV0lORF9TT05BTUUpIGFuZCAkKFNITElCX1NPTElOSykKCWluICQoU0hMSUJfRElSKS4KCShTSExJQlVOV0lORF9JTlNUQUxMKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKiBjb25maWcvaTM4Ni90LW53bGQgKFNITElCX1NPTkFNRSk6IERlbGV0ZS4KCShTSExJQl9MSU5LLCBTSExJQl9JTlNUQUxMKTogVXNlIFNITElCX05BTUUgaW5zdGVhZCBvZiBTSExJQl9TT05BTUUuCglVc2UgQHNobGliX2Jhc2VfbmFtZUAgaW5zdGVhZCBvZiBAc2hsaWJfc29fbmFtZUAuCgkqIGNvbmZpZy9pYTY0L3QtaHB1eCAoU0hMSUJfTElOSyk6IFB1dCBAc2hsaWJfYmFzZV9uYW1lQC5zby4wCglhbmQgQHNobGliX2Jhc2VfbmFtZUAuc28gaW4gQG11bHRpbGliX2RpckAuCgkoU0hMSUJfSU5TVEFMTCk6IEFkanVzdCBhY2NvcmRpbmdseS4gIEFkZCBAc2hsaWJfc2xpYmRpcl9xdWFsQAoJdG8gdGhlIGluc3RhbGwgcGF0aC4KCSogY29uZmlnL21pcHMvdC1zbGliZ2NjLWlyaXg6IEFzIGZvciB0LXNsaWJnY2MtZWxmLXZlci4KCShTSExJQl9MSU5LKTogUmVtb3ZlIHByZXZpb3VzIHdvcmthcm91bmQuCgkqIGNvbmZpZy9wYS90LWhwdXgtc2hsaWIgKFNITElCX0RJUiwgU0hMSUJfU0xJQkRJUl9RVUFMKTogTmV3IG1hY3Jvcy4KCShTSExJQl9MSU5LKTogUHV0ICQoU0hMSUJfU09OQU1FKSBhbmQgJChTSExJQl9OQU1FKSBpbiAkKFNITElCX0RJUikuCgkoU0hMSUJfSU5TVEFMTCk6IEFkanVzdCBhY2NvcmRpbmdseS4gIEFkZCAkKFNITElCX1NMSUJESVJfUVVBTCkgdG8KCXRoZSBpbnN0YWxsIHBhdGguCgkqIGNvbmZpZy9yczYwMDAvdC1haXg0MyAoU0hMSUJfTElOSyk6IFB1dCBAc2hsaWJfYmFzZV9uYW1lQC5hIGluCglAbXVsdGlsaWJfZGlyQC4gIFVzZSBAbXVsdGlsaWJfZGlyQCB0byBjaGVjayBmb3IgdGhyZWFkaW5nIGxpYnJhcmllcy4KCShTSExJQl9JTlNUQUxMKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKFNITElCX0xJQlMpOiBVc2UgQG11bHRpbGliX2RpckAgdG8gY2hlY2sgZm9yIHRocmVhZGluZyBsaWJyYXJpZXMuCgkqIGNvbmZpZy9yczYwMDAvdC1haXg1MjogQXMgZm9yIGNvbmZpZy9yczYwMDAvdC1haXg0My4KCSogY29uZmlnL3NoL3QtbGludXggKFNITElCX0xJTkssIFNITElCX0lOU1RBTEwpOiBBcyBmb3IKCWNvbmZpZy90LXNsaWJnY2MtZWxmLXZlci4KCjIwMDUtMDItMTkgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgkgICAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTk4MjgKCSogdHJlZS1zc2EtbG9vcC1pbS5jOiBBZGQgYSBUT0RPIGNvbW1lbnQuCgkobW92ZW1lbnRfcG9zc2liaWxpdHkpOiBSZXR1cm4gTU9WRV9QUkVTRVJWRV9FWEVDVVRJT04gZm9yIGNhbGxzCgl3aXRob3V0IHNpZGUtZWZmZWN0cy4KCjIwMDUtMDItMTggIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCgkqIHRyZWUtc3NhLWNjcC5jICh3aWRlbl9iaXRmaWVsZCk6IFBhc3MgdHlwZSB0byBidWlsZF9pbnRfY3N0IGFuZCBkb24ndAoJY2FsbCBmb2xkX2NvbnZlcnQuCgoyMDA1LTAyLTE4ICBKYW1lcyBFLiBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogZG9jL2ludm9rZS50ZXhpIChJQS02NCBPcHRpb25zKTogRGVsZXRlIC1tYi1zdGVwLgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGxhc3RfZ3JvdXAsIGdyb3VwX2lkeCk6IERlbGV0ZSB2YXJpYWJsZXMuCgkoZXJyYXRhX2ZpbmRfYWRkcmVzc19yZWdzLCBlcnJhdGFfZW1pdF9ub3BzLCBmaXh1cF9lcnJhdGEpOiBEZWxldGUKCWZ1bmN0aW9ucy4KCShpYTY0X3Jlb3JnKTogRGVsZXRlIGZpeHVwX2VycmF0YSBjYWxsLgoJKiBjb25maWcvaWE2NC9pYTY0LmggKE1BU0tfQl9TVEVQLCBUQVJHRVRfQl9TVEVQKTogRGVsZXRlLgoJKFRBUkdFVF9TV0lUQ0hFUyk6IERlbGV0ZSAtbWItc3RlcCBlbnRyeS4KCjIwMDUtMDItMTkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIGMvMjAwNDMKCSogYy10eXBlY2suYyAoY29tcG9zaXRlX3R5cGUpOiBIYW5kbGUgcXVhbHMgaW4gdHJhbnNwYXJlbnQgdW5pb25zLgoJKHR5cGVfbGlzdHNfY29tcGF0aWJsZV9wKTogTGlrZXdpc2UuCgoyMDA1LTAyLTE4ICBTdGFuIFNoZWJzICA8c2hlYnNAYXBwbGUuY29tPgoKCSogY29uZmlnL2Rhcndpbi5jIChtYWNob3BpY19zZWxlY3RfcnR4X3NlY3Rpb24pOiBEb24ndCBwdXQgcmVsb2NhdGFibGUKCWV4cHJlc3Npb25zIGluIHRoZSAubGl0ZXJhbDggc2VjdGlvbi4KCjIwMDUtMDItMTggIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4tdHJhbXAuYXNtOiBSZW1vdmUgc3RyYXkgJ0FQUExFIExPQ0FMJyBtYXJrZXIuCgoyMDA1LTAyLTE4ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGZvbGQtY29uc3QuYyAoY29uc3RhbnRfYm9vbGVhbl9ub2RlKTogQWx3YXlzIGNyZWF0ZSB2YWx1ZXMgb2YgdGhlCglzcGVjaWZpZWQgdHlwZSwgZG9uJ3QgYm90aGVyIGNhbGxpbmcgdHJ1dGh2YWx1ZV9jb252ZXJzaW9uLgoKMjAwNS0wMi0xOCAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBleGNlcHQuYyAob3V0cHV0X2Z1bmN0aW9uX2V4Y2VwdGlvbl90YWJsZSk6IENhbGwKCWFzc2VtYmxlX2V4dGVybmFsX2xpYmNhbGwgKGVoX3BlcnNvbmFsaXR5X2xpYmZ1bmMpLgoKMjAwNS0wMi0xOCAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgdGFyZ2V0LzE5ODg2CgkqIGNvbmZpZy9pYTY0L2lhNjQuaCAoc3RydWN0IG1hY2hpbmVfZnVuY3Rpb24pOiBBZGQgc3RhdGVfbnVtLgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKHByb2Nlc3NfZXBpbG9ndWUsCglwcm9jZXNzX2Zvcl91bndpbmRfZGlyZWN0aXZlKTogVXNlIG5ldyB1bndpbmQgc3RhdGUgbnVtYmVycyBlYWNoCgl0aW1lIHJhdGhlciB0aGFuIHN0YXRlIDEuCgoyMDA1LTAyLTE4ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJUFIgdGFyZ2V0LzIwMDU0CgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKCIqbGxndF9zaWRpIiwgIipsbGd0X3NpZGlfc3BsaXQiKTogTW92ZSB0bwoJYmVmb3JlIHRoZSAiKmxsZ3RfZGlkaSIgcGF0dGVybi4KCjIwMDUtMDItMTggIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfbW9kaWZ5X2V4cHJfcmhzKSBbQ0FMTF9FWFBSXTogUmV2ZXJ0IGFnYWluLgoKMjAwNS0wMi0xOCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBhcm0vbGliMWZ1bmNzLmFzbSAoRlVOQ19BTElBUyk6IE5ldyBtYWNyby4KCShkaXYwKTogVXNlIGl0IGluIHBsYWNlIG9mIEFSTV9GVU5DX0FMSUFTLgoJKGxzaHJkaTMsIGFzaHJkaTMsIGFzaGxyZGkzKTogTGlrZXdpc2UuCgoyMDA1LTAyLTE4ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBtaWRkbGUtZW5kLzIwMDMwCgkqIGZvbGQtY29uc3QuYyAoZm9sZF9pbmRpcmVjdF9yZWZfMSk6IFVzZSB0aGUgY29ycmVjdCBpbmRleCBmb3IgemVybwoJYWNjZXNzLCB0aGUgbG93ZXIgYm91bmQgb2YgdGhlIGFycmF5IHR5cGUgaWYgaXQgZXhpc3RzLgoKMjAwNS0wMi0xOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJUFIgYysrLzIwMDA4CgkqIHN0bXQuYyAoZXhwYW5kX2Nhc2UpOiBEb24ndCBhc3N1bWUgY2xlYW51cF90cmVlX2NmZyB3aWxsIHJlbW92ZQoJY2FzZXMgdGhhdCBhcmUgb3V0LW9mLXJhbmdlIGZvciB0aGUgaW5kZXggdHlwZS4KCjIwMDUtMDItMTggIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCgkqIHN0bXQuYyAoZW1pdF9jYXNlX2JpdF90ZXN0cyk6IENhbGwgZm9sZF9jb252ZXJ0IGluc3RlYWQgb2YgY29udmVydC4KCShlc3RpbWF0ZV9jYXNlX2Nvc3RzKTogRG9uJ3QgY2FsbCBjb252ZXJ0LgoJKiBleHBtZWQuYyAoZXhwYW5kX3NoaWZ0KTogTGlrZXdpc2UuCgkobWFrZV90cmVlKTogQ2FsbCBmb2xkX2NvbnZlcnQgaW5zdGVhZCBvZiBjb252ZXJ0LgoKMjAwNS0wMi0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgYysrLzE5ODEzCgkqIGVtaXQtcnRsLmMgKHNldF9tZW1fYXR0cmlidXRlc19taW51c19iaXRwb3MpOiBBZGQgYXNzZXJ0aW9uCgl0aGF0IHJlZiB0byBiZSBtYXJrZWQgTUVNX1JFQURPTkxZX1AgZG9lc24ndCBoYXZlIGJhc2UgdGhhdCBuZWVkcwoJY29uc3RydWN0aW5nLgoKMjAwNS0wMi0xOCAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnZW5hdXRvbWF0YS5jIChvdXRwdXRfZ2V0X2NwdV91bml0X2NvZGVfZnVuYywKCW91dHB1dF9jcHVfdW5pdF9yZXNlcnZhdGlvbl9wKTogRG9uJ3QgZ2VuZXJhdGUgb2xkLXN0eWxlIGZ1bmN0aW9uCglkZWZpbml0aW9ucy4KCjIwMDUtMDItMTggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIGMrKy8yMDAyMwoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMjAwMDkKCSogY29udmVydC5jIChjb252ZXJ0X3RvX2ludGVnZXIpOiBSZXZlcnQgMjAwNS0wMi0xNiBjaGFuZ2UuCgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTg5NDcKCSogY2dyYXBodW5pdC5jIChjZ3JhcGhfZmluYWxpemVfZnVuY3Rpb24pOiBXaGVuIHJlZGVmaW5pbmcgYW4gZXh0ZXJuCglpbmxpbmUsIHJlbW92ZSBhbGwgbm9kZXMgdGhhdCBhcmUgaW5saW5lZCBpbnRvIHRoZSBleHRlcm4gaW5saW5lCgliZWluZyByZWRlZmluZWQuCgoyMDA1LTAyLTE3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYnQtbG9hZC5jLCBjZmdsb29wLmMsIGNvbnZlcnQuYywgZG9taW5hbmNlLmMsIGdsb2JhbC5jLAoJbG9vcC1pbnZhcmlhbnQuYywgc3RtdC5jLCB0cmVlLXNzYS1mb3J3cHJvcC5jLAoJdHJlZS1zc2EtbGl2ZS5jLCB0cmVlLXNzYW5hbWVzLmMsIHRyZWUtdm4uYywKCWNvbmZpZy9ob3N0LWxpbnV4LmMsIGNvbmZpZy9hcm0vZnBhLm1kLCBjb25maWcvYXZyL2F2ci5oOgoJVXBkYXRlIGNvcHlyaWdodC4KCjIwMDUtMDItMTcgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5OTE3CgkqIHRyZWUtZWguYyAodHJlZV9jb3VsZF90cmFwX3ApOiBDb25zaWRlciBjYWxscyB0byB3ZWFrIGZ1bmN0aW9ucwoJdG8gYmUgcG90ZW50aWFsbHkgdHJhcHBpbmcuCgoyMDA1LTAyLTE3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogbGliZ2NjMi5jLCB0cmVlLXZlY3QtYW5hbHl6ZS5jOiBGaXggY29tbWVudCB0eXBvcy4KCjIwMDUtMDItMTcgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWwxQGRlLmlibS5jb20+CgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl9yZXR1cm5fYWRkcik6IFJlbW92ZSB0ZW0gcGFyYW1ldGVyLgoJdGVtIGJlY29tZXMgYSBsb2NhbCB2YXJpYWJsZSB3aGljaCBpcyBzZXQgdG8gdGhlIHZhbHVlIG9mIHRoZQoJYmFjayBlbmQgZGVmaW5lZCBJTklUSUFMX0ZSQU1FX0FERFJFU1MgbWFjcm8uCgkoZXhwYW5kX2J1aWx0aW5fZnJhbWVfYWRkcmVzcyk6IE9taXQgdGhlIGJhc2UgcGFyYW1ldGVyIHRvCglleHBhbmRfYnVpbHRpbl9yZXR1cm5fYWRkci4KCShleHBhbmRfYnVpbHRpbl9wcm9maWxlX2Z1bmMpOiBMaWtld2lzZS4KCSogY29uZmlnL3MzOTAvczM5MC5oIChJTklUSUFMX0ZSQU1FX0FERFJFU1NfUlRYKTogRGVmaW5lIG5ldyBtYWNyby4KCShEWU5BTUlDX0NIQUlOX0FERFJFU1MpOiBSZW1vdmUgdGhlIGNhc2UgZm9yIHRoZSBpbml0aWFsIGZyYW1lLgoJKiBkb2MvdG0udGV4aTogRG9jdW1lbnRhdGlvbiBmb3IgSU5JVElBTF9GUkFNRV9BRERSRVNTX1JUWCBhZGRlZC4KCjIwMDUtMDItMTcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX2FsbG9jX3Bvb2wsIHMzOTBfZnJlZV9wb29sLAoJczM5MF9jaHVua2lmeV9zdGFydCk6IFVzZSBCSVRNQVBfQUxMT0MgYW5kIEJJVE1BUF9GUkVFLgoJKiBjb25maWcvZnJ2L2Zydi5jIChmcnZfZnVuY3Rpb25fZXBpbG9ndWUpOiBMaWtld2lzZS4KCjIwMDUtMDItMTcgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogbGFtYmRhLWNvZGUgKHBlcmZlY3RfbmVzdGlmeSk6IFJlbW92ZSBtYXJrL3VubWFyawoJZm9yIHJld3JpdGluZyBoYWNrLgoJKiB0cmVlLWxvb3AtbGluZWFyLmMgKGxpbmVhcl90cmFuc2Zvcm1fbG9vcHMpOiBBZGQKCXJld3JpdGVfaW50b19zc2EgY2FsbCBzbyB0aGF0IHNzYSBpcyBjb3JyZWN0IGZvcgoJcmV3cml0aW5nIGludG8gbG9vcCBjbG9zZWQuCgoyMDA1LTAyLTE3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogYml0bWFwLmggKEJJVE1BUF9YTUFMTE9DLCBCSVRNQVBfWEZSRUUpOiBSZW1vdmUuCgkqIGJiLXJlb3JkZXIuYyAoZHVwbGljYXRlX2NvbXB1dGVkX2dvdG9zKTogVXNlIEJJVE1BUF9BTExPQyBhbmQKCUJJVE1BUF9GUkVFLgoJKiBidC1sb2FkLmMgKGJ0cl9kZWZfbGl2ZV9yYW5nZSwgY29tYmluZV9idHJfZGVmcywKCW1pZ3JhdGVfYnRyX2RlZiwgbWlncmF0ZV9idHJfZGVmcyk6IExpa2V3aXNlLgoJKiBjZmdjbGVhbnVwLmMgKHRocmVhZF9qdW1wKTogTGlrZXdpc2UuCgkqIGNmZ2xvb3AuYyAoZ2V0X2xvb3BfYm9keV9pbl9iZnNfb3JkZXIpOiBMaWtld2lzZS4KCSogZGYuYyAoZGZfaW5zbl90YWJsZV9yZWFsbG9jLCBkZl9iaXRtYXBzX2FsbG9jLCBkZl9iaXRtYXBzX2ZyZWUsCglkZl9hbGxvYywgZGZfZnJlZSwgZGZfZHVfY2hhaW5fY3JlYXRlLCBkZl9iYl9yZF9sb2NhbF9jb21wdXRlLAoJZGZfcmRfbG9jYWxfY29tcHV0ZSwgZGZfcmVnX2luZm9fY29tcHV0ZSk6IExpa2V3aXNlLgoJKiBkb21pbmFuY2UuYyAoaW5pdF9kb21faW5mbywgZnJlZV9kb21faW5mbyk6IExpa2V3aXNlLgoJKiBmbG93LmMgKGluaXRfcHJvcGFnYXRlX2Jsb2NrX2luZm8sCglmcmVlX3Byb3BhZ2F0ZV9ibG9ja19pbmZvKTogTGlrZXdpc2UuCgkqIGdjc2UuYyAoYWxsb2NfZ2NzZV9tZW0sIGZyZWVfZ2NzZV9tZW0pOiBMaWtld2lzZS4KCSogZ2xvYmFsLmMgKGFsbG9jYXRlX2JiX2luZm8sIGZyZWVfYmJfaW5mbywgY2FsY3VsYXRlX3JlZ19wYXYsCgltb2RpZnlfcmVnX3Bhdik6IExpa2V3aXNlLgoJKiBsb29wLWludmFyaWFudC5jIChmaW5kX2RlZnMsIGZpbmRfaW52YXJpYW50X2luc24sCglmaW5kX2ludmFyaWFudHMsIGZyZWVfaW52X21vdGlvbl9kYXRhKTogTGlrZXdpc2UuCgkqIHByZWRpY3QuYyAodHJlZV9wcmVkaWN0X2J5X29wY29kZSwKCWVzdGltYXRlX2JiX2ZyZXF1ZW5jaWVzKTogTGlrZXdpc2UuCgkqIHN0bXQuYyAoZXhwYW5kX2Nhc2UpOiBMaWtld2lzZS4KCSogdHJlZS1jZmcuYyAodHJlZV9kdXBsaWNhdGVfc2VzZV9yZWdpb24pOiBMaWtld2lzZS4KCSogdHJlZS1kZmEuYyAobWFya19uZXdfdmFyc190b19yZW5hbWUpOiBMaWtld2lzZS4KCSogdHJlZS1pZi1jb252LmMgKGdldF9sb29wX2JvZHlfaW5faWZfY29udl9vcmRlcik6IExpa2V3aXNlLgoJKiB0cmVlLWludG8tc3NhLmMgKGluc2VydF9waGlfbm9kZXNfZm9yLCBkZWZfYmxvY2tzX2ZyZWUsCglnZXRfZGVmX2Jsb2Nrc19mb3IsIG1hcmtfZGVmX3NpdGVfYmxvY2tzLCByZXdyaXRlX2ludG9fc3NhLAoJcmV3cml0ZV9zc2FfaW50b19zc2EpOiBMaWtld2lzZS4KCSogdHJlZS1vcHRpbWl6ZS5jICh0cmVlX3Jlc3Rfb2ZfY29tcGlsYXRpb24pOiBMaWtld2lzZS4KCSogdHJlZS1vdXRvZi1zc2EuYyAobmV3X3RlbXBfZXhwcl90YWJsZSwgZnJlZV90ZW1wX2V4cHJfdGFibGUsCglhbmFseXplX2VkZ2VzX2Zvcl9iYiwgcGVyZm9ybV9lZGdlX2luc2VydHMpOiBMaWtld2lzZS4KCSogdHJlZS1zY2FsYXItZXZvbHV0aW9uLmMgKHNjZXZfaW5pdGlhbGl6ZSwgc2Nldl9maW5hbGl6ZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNyYS5jICh0cmVlX3NyYSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1hbGlhcy5jIChpbml0X2FsaWFzX2luZm8sIGRlbGV0ZV9hbGlhc19pbmZvKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWNjcC5jIChjY3BfZm9sZF9idWlsdGluKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWRjZS5jICh0cmVlX2RjZV9pbml0LCB0cmVlX2RjZV9kb25lKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWRvbS5jICh0cmVlX3NzYV9kb21pbmF0b3Jfb3B0aW1pemUpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtZHNlLmMgKHRyZWVfc3NhX2RzZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1mb3J3cHJvcC5jICh0cmVlX3NzYV9mb3J3YXJkX3Byb3BhZ2F0ZV9zaW5nbGVfdXNlX3Zhcik6CglMaWtld2lzZS4KCSogdHJlZS1zc2EtbGl2ZS5jIChuZXdfdHJlZV9saXZlX2luZm8sIGRlbGV0ZV90cmVlX2xpdmVfaW5mbywKCWNhbGN1bGF0ZV9saXZlX29uX2VudHJ5LCBjYWxjdWxhdGVfbGl2ZV9vbl9leGl0LAoJYnVpbGRfdHJlZV9jb25mbGljdF9ncmFwaCk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jICh0cmVlX3NzYV9pdl9vcHRpbWl6ZV9pbml0LCByZWNvcmRfdXNlLAoJcmVjb3JkX2ltcG9ydGFudF9jYW5kaWRhdGVzLCBzZXRfdXNlX2l2X2Nvc3QsIGZpbmRfZGVwZW5kcywKCWRldGVybWluZV91c2VfaXZfY29zdHMsIGl2X2NhX25ldywgaXZfY2FfZnJlZSwgZnJlZV9sb29wX2RhdGEsCgl0cmVlX3NzYV9pdl9vcHRpbWl6ZV9maW5hbGl6ZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLW1hbmlwLmMgKGFkZF9leGl0X3BoaXNfdmFyLCBnZXRfbG9vcHNfZXhpdCwKCWZpbmRfdXNlc190b19yZW5hbWVfdXNlLCByZXdyaXRlX2ludG9fbG9vcF9jbG9zZWRfc3NhLAoJdHJlZV9kdXBsaWNhdGVfbG9vcF90b19oZWFkZXJfZWRnZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1wcmUuYyAoaW5pdF9wcmUsIGZpbmlfcHJlKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLmMgKHZlcmlmeV9mbG93X2luc2Vuc2l0aXZlX2FsaWFzX2luZm8sCgl2ZXJpZnlfbmFtZV90YWdzLCB2ZXJpZnlfc3NhLCBpbml0X3RyZWVfc3NhLAoJZGVsZXRlX3RyZWVfc3NhKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhbmFtZXMuYyAobWFya2VkX3NzYV9uYW1lcywgaW5pdF9zc2FuYW1lcywKCWZpbmlfc3NhbmFtZXMpOiBMaWtld2lzZS4KCSogdHJlZS12ZWN0b3JpemVyLmMgKHNscGVlbF90cmVlX3BlZWxfbG9vcF90b19lZGdlKTogTGlrZXdpc2UuCgoyMDA1LTAyLTE3ICBSYWxmIENvcnNlcGl1cyAgPHJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvdC1ydGVtczogQ29tcGxldGVseSByZXdvcmtlZC4KCjIwMDUtMDItMTcgIElyYSBSb3NlbiAgPGlyYXJAaWwuaWJtLmNvbT4KCgkqIHRyZWUtZGF0YS1yZWYuYyAoYXJyYXlfYmFzZV9uYW1lX2RpZmZlcl9wKTogUmVtb3ZlIGdjY19hc3NlcnQuCgoyMDA1LTAyLTE3ICBJcmEgUm9zZW4gIDxpcmFyQGlsLmlibS5jb20+CgoJKiB0cmVlLXZlY3QtYW5hbHl6ZS5jICh2ZWN0X2FuYWx5emVfcG9pbnRlcl9yZWZfYWNjZXNzKTogVXNlCglQT0lOVEVSX1RZUEVfUCB3aGVuIGNoZWNraW5nIHRoYXQgdHlwZSBpcyBhIHBvaW50ZXIuCgkodmVjdF9nZXRfbWVtdGFnKTogUmVtb3ZlLgoJKHZlY3RfYWRkcmVzc19hbmFseXNpcyk6IFVzZSBQT0lOVEVSX1RZUEVfUC4gQ2FsbAoJdmVjdF9vYmplY3RfYW5hbHlzaXMgd2l0aCBkdW1teSBwYXJhbWV0ZXIgZm9yIG1lbXRhZy4KCSh2ZWN0X29iamVjdF9hbmFseXNpcyk6IEV4dHJhY3QgbWVtdGFnIChmdW5jdGlvbmFsaXR5IHRoYXQKCXVzZWQgdG8gYmUgaW4gdmVjdF9nZXRfbWVtdGFnIGFuZCBtb3ZlZCBoZXJlKS4gRml4IHByaW50aW5ncy4KCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZzKTogRml4IGNvbW1lbnQuIENhbGwgdmVjdF9vYmplY3RfYW5hbHlzaXMKCXdpdGggY29ycmVjdCBwYXJhbWV0ZXJzLiBSZW1vdmUgY2FsbCB0byB2ZWN0X2dldF9tZW10YWcuCgoyMDA1LTAyLTE3ICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJKiBNYWtlZmlsZS5pbiAodHJlZS12ZWN0LWFuYWx5emUubywgdHJlZS12ZWN0LXRyYW5zZm9ybS5vKTogTmV3LgoJKHRyZWUtdmVjdG9yaXplci5vKTogQWRkZWQgbWlzc2luZyBkZXBlbmRlbmNpZXMuCgoJKiB0cmVlLXZlY3Rvcml6ZXIuaCAodmVjdF9kdW1wLCB2ZWN0X3ZlcmJvc2l0eV9sZXZlbCk6IEFkZGVkIGV4dGVybgoJZGVjbGVyYXRpb24uCgkoc2xwZWVsX3RyZWVfcGVlbF9sb29wX3RvX2VkZ2UpOiBGdW5jdGlvbiBleHRlcm5hbGl6ZWQgKGhhZCBhIHN0YXRpYwoJZGVjbGFyYXRpb24gaW4gdHJlZS12ZWN0b3JpemVyLmMsIG5vdyBoYXMgYW4gZXh0ZXJuIGRlY2xhcmF0aW9uIGluCgl0cmVlLXZlY3Rvcml6ZXIuaCkuCgkoc2xwZWVsX21ha2VfbG9vcF9pdGVyYXRlX250aW1lcywgc2xwZWVsX2Nhbl9kdXBsaWNhdGVfbG9vcF9wLAoJc2xwZWVsX3ZlcmlmeV9jZmdfYWZ0ZXJfcGVlbGluZywgdmVjdF9zdHJpcF9jb252ZXJzaW9uLAoJZ2V0X3ZlY3R5cGVfZm9yX3NjYWxhcl90eXBlLCB2ZWN0X2lzX3NpbXBsZV91c2UsCgl2ZWN0X2lzX3NpbXBsZV9pdl9ldm9sdXRpb24sIHZlY3RfY2FuX2ZvcmNlX2RyX2FsaWdubWVudF9wLAoJdmVjdF9zdXBwb3J0YWJsZV9kcl9hbGlnbm1lbnQsIG5ld19sb29wX3ZlY19pbmZvLCBkZXN0cm95X2xvb3BfdmVjX2luZm8sCgluZXdfc3RtdF92ZWNfaW5mbywgdmVjdF9hbmFseXplX2xvb3AsIHZlY3Rvcml6YWJsZV9sb2FkLAoJdmVjdG9yaXphYmxlX3N0b3JlLCB2ZWN0b3JpemFibGVfb3BlcmF0aW9uLCB2ZWN0b3JpemFibGVfYXNzaWdubWVudCwKCXZlY3RfdHJhbnNmb3JtX2xvb3AsIHZlY3RfcHJpbnRfZHVtcF9pbmZvLCB2ZWN0X3NldF92ZXJib3NpdHlfbGV2ZWwsCglmaW5kX2xvb3BfbG9jYXRpb24pOiBMaWtld2lzZS4KCgkqIHRyZWUtdmVjdG9yaXplci5jIChsYW5naG9va3MuaCk6ICNpbmNsdWRlIHJlbW92ZWQuCgkoc2xwZWVsX3RyZWVfcGVlbF9sb29wX3RvX2VkZ2UpOiBGdW5jdGlvbiBleHRlcm5hbGl6ZWQuIERlY2xhcmF0aW9uCgltb3ZlZCB0byB0cmVlLXZlY3Rvcml6ZWQuaC4KCShzbHBlZWxfbWFrZV9sb29wX2l0ZXJhdGVfbnRpbWVzLCBzbHBlZWxfY2FuX2R1cGxpY2F0ZV9sb29wX3AsCglzbHBlZWxfdmVyaWZ5X2NmZ19hZnRlcl9wZWVsaW5nLCB2ZWN0X3N0cmlwX2NvbnZlcnNpb24sCglnZXRfdmVjdHlwZV9mb3Jfc2NhbGFyX3R5cGUsIHZlY3RfaXNfc2ltcGxlX3VzZSwKCXZlY3RfaXNfc2ltcGxlX2l2X2V2b2x1dGlvbiwgdmVjdF9jYW5fZm9yY2VfZHJfYWxpZ25tZW50X3AsCgl2ZWN0X3N1cHBvcnRhYmxlX2RyX2FsaWdubWVudCwgbmV3X2xvb3BfdmVjX2luZm8sCglkZXN0cm95X2xvb3BfdmVjX2luZm8sIG5ld19zdG10X3ZlY19pbmZvLCB2ZWN0X3ByaW50X2R1bXBfaW5mbywKCXZlY3Rfc2V0X3ZlcmJvc2l0eV9sZXZlbCwgZmluZF9sb29wX2xvY2F0aW9uKTogTGlrZXdpc2UuCgoJKHZlY3RfYW5hbHl6ZV9sb29wKTogRnVuY3Rpb24gZXh0ZXJuYWxpemVkLiBEZWNsYXJhdGlvbiBtb3ZlZCB0bwoJdHJlZS12ZWN0b3JpemVkLmguIEZ1bmN0aW9uIGRlZmluaXRpb24gbW92ZWQgdG8gdHJlZS12ZWN0LWFuYWx5emUuYy4KCSh2ZWN0X2FuYWx5emVfbG9vcF9mb3JtKTogTW92ZWQgdG8gdHJlZS12ZWN0LWFuYWx5emUuYy4KCSh2ZWN0X21hcmtfc3RtdHNfdG9fYmVfdmVjdG9yaXplZCwgdmVjdF9hbmFseXplX3NjYWxhcl9jeWNsZXMsCgl2ZWN0X2FuYWx5emVfZGF0YV9yZWZfYWNjZXNzZXMsIHZlY3RfYW5hbHl6ZV9kYXRhX3JlZl9kZXBlbmRlbmNlcywKCXZlY3RfYW5hbHl6ZV9kYXRhX3JlZnNfYWxpZ25tZW50LCB2ZWN0X2NvbXB1dGVfZGF0YV9yZWZzX2FsaWdubWVudCwKCXZlY3RfZW5oYW5jZV9kYXRhX3JlZnNfYWxpZ25tZW50LCB2ZWN0X2FuYWx5emVfb3BlcmF0aW9ucywKCWV4aXN0X25vbl9pbmRleGluZ19vcGVyYW5kc19mb3JfdXNlX3AsIHZlY3RfbWFya19yZWxldmFudCwKCXZlY3Rfc3RtdF9yZWxldmFudF9wLCB2ZWN0X2dldF9sb29wX25pdGVycywKCXZlY3RfYW5hbHl6ZV9kYXRhX3JlZl9kZXBlbmRlbmNlLCB2ZWN0X2NvbXB1dGVfZGF0YV9yZWZfYWxpZ25tZW50LAoJdmVjdF9hbmFseXplX2RhdGFfcmVmX2FjY2VzcywgdmVjdF9hbmFseXplX3BvaW50ZXJfcmVmX2FjY2VzcywKCXZlY3RfY2FuX2FkdmFuY2VfaXZzX3AsIHZlY3RfZ2V0X3B0cl9vZmZzZXQsIHZlY3RfYW5hbHl6ZV9vZmZzZXRfZXhwciwKCXZlY3RfYmFzZV9hZGRyX2RpZmZlcl9wLCB2ZWN0X29iamVjdF9hbmFseXNpcywgdmVjdF9hZGRyZXNzX2FuYWx5c2lzLAoJdmVjdF9nZXRfbWVtdGFnKTogTGlrZXdpc2UuCgoJKHZlY3Rvcml6YWJsZV9sb2FkKTogRnVuY3Rpb24gZXh0ZXJuYWxpemVkLiBEZWNsYXJhdGlvbiBtb3ZlZCB0bwoJdHJlZS12ZWN0b3JpemVkLmguIEZ1bmN0aW9uIGRlZmluaXRpb24gbW92ZWQgdG8gdHJlZS12ZWN0LXRyYW5zZm9ybS5jLgoJKHZlY3Rvcml6YWJsZV9zdG9yZSwgdmVjdG9yaXphYmxlX29wZXJhdGlvbiwgdmVjdG9yaXphYmxlX2Fzc2lnbm1lbnQsCgl2ZWN0X3RyYW5zZm9ybV9sb29wKTogTGlrZXdpc2UuCgkodmVjdF90cmFuc2Zvcm1fc3RtdCk6IE1vdmVkIHRvIHRyZWUtdmVjdC10cmFuc2Zvcm0uYy4KCSh2ZWN0X2FsaWduX2RhdGFfcmVmLCB2ZWN0X2NyZWF0ZV9kZXN0aW5hdGlvbl92YXIsCgl2ZWN0X2NyZWF0ZV9kYXRhX3JlZl9wdHIsIHZlY3RfY3JlYXRlX2luZGV4X2Zvcl92ZWN0b3JfcmVmLAoJdmVjdF9jcmVhdGVfYWRkcl9iYXNlX2Zvcl92ZWN0b3JfcmVmLCB2ZWN0X2dldF9uZXdfdmVjdF92YXIsCgl2ZWN0X2dldF92ZWNfZGVmX2Zvcl9vcGVyYW5kLCB2ZWN0X2luaXRfdmVjdG9yLAoJdmVjdF9maW5pc2hfc3RtdF9nZW5lcmF0aW9uLCB2ZWN0X2dlbmVyYXRlX3RtcHNfb25fcHJlaGVhZGVyLAoJdmVjdF9idWlsZF9sb29wX25pdGVycywgdmVjdF91cGRhdGVfaXZzX2FmdGVyX3ZlY3Rvcml6ZXIsCgl2ZWN0X2dlbl9uaXRlcnNfZm9yX3Byb2xvZ19sb29wLCB2ZWN0X3VwZGF0ZV9pbml0c19vZl9kciwKCXZlY3RfdXBkYXRlX2luaXRzX29mX2RycywgdmVjdF9kb19wZWVsaW5nX2Zvcl9hbGlnbm1lbnQsCgl2ZWN0X2RvX3BlZWxpbmdfZm9yX2xvb3BfYm91bmQpOiBMaWtld2lzZS4KCgkqIHRyZWUtdmVjdC1hbmFseXplLmM6IE5ldyBmaWxlLgoJKiB0cmVlLXZlY3QtdHJhbnNmb3JtLmM6IE5ldyBmaWxlLgoKMjAwNS0wMi0xNyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgbXVkZmxhcC8xOTMxOSwgYysrLzE5MzE3CgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X21vZGlmeV9leHByX3JocykgW0NBTExfRVhQUl06IE1ha2UgcmV0dXJuCglzbG90IGV4cGxpY2l0LgoKMjAwNS0wMi0xNyAgR2VyYWxkIFBmZWlmZXIgIDxnZXJhbGRAcGZlaWZlci5jb20+CgoJKiBkb2MvaW5zdGFsbC50ZXhpIChTcGVjaWZpYyk6IFVwZGF0ZSBsaW5rIGZvciBEYXJ3aW4tc3BlY2lmaWMKCXRvb2wgYmluYXJ5IHNpdGUuCgoyMDA1LTAyLTE2ICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiBmb2xkLWNvbnN0LmMgKGludmVydF90cnV0aHZhbHVlKTogPElOVEVHRVJfQ1NUPjogQ2FsbAoJY29uc3RhbnRfYm9vbGVhbl9ub2RlLgoKMjAwNS0wMi0xNiAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCVBSIHRhcmdldC8xOTAxOQoJKiBjb25maWcvcnM2MDAwL3QtYWl4NDMgKFNITElCX01BUEZJTEVTKTogQWRkIGxpYmdjYy1wcGM2NC52ZXIuCgkqIGNvbmZpZy9yczYwMDAvdC1haXg1MiAoU0hMSUJfTUFQRklMRVMpOiBTYW1lLgoKMjAwNS0wMi0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiAxOTkyMAoJKiBsaWJnY2MyLmMgKFdPUkRfU0laRSk6IFJlbW92ZSBhbGwgZGVmaW5pdGlvbnM7IHJlcGxhY2UgdXNlcwoJd2l0aCBXX1RZUEVfU0laRS4KCShISUdIX1dPUkRfQ09FRkYsIEhJR0hfSEFMRldPUkRfQ09FRkYpOiBSZW1vdmUgYWxsIGRlZmluaXRpb25zOwoJcmVwbGFjZSB1c2VzIHdpdGggV3R5cGVfTUFYcDFfRi4KCShMX2ZpeHVuc3RmZGksIExfZml4dGZkaSwgTF9mbG9hdGRpdGYsIExfZml4dW5zeGZkaSwgTF9maXh4ZmRpLAoJTF9mbG9hdGRpeGYsIExfZml4dW5zeGZzaSwgTF9maXh1bnNkZmRpLCBMX2Zsb2F0ZGlkZiwgTF9maXh1bnNkZnNpLAoJTF9wb3dpZGYyLCBMX3Bvd2l4ZjIsIExfcG93aXRmMiwgTF9tdWxkYzMsIExfZGl2ZGMzLCBMX211bHhjMywKCUxfZGl2eGMzLCBMX211bHRjMywgTF9kaXZ0YzMpOiBQcm90ZWN0IHdpdGggSEFWRV9ERk1PREUsIEhBVkVfWEZNT0RFLAoJYW5kIEhBVkVfVEZNT0RFIGFzIGFwcHJvcHJpYXRlLgoJKF9fZml4dW5zc2ZESSk6IFByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vzbid0IG5lZWQgREZtb2RlLgoJKF9fZmxvYXRkaXNmKTogTGlrZXdpc2UuCgkqIGxpYmdjYzIuaCAoTElCR0NDMl9ET1VCTEVfVFlQRV9TSVpFKTogTmV3LgoJKEhBVkVfREZNT0RFLCBIQVZFX1hGTU9ERSwgSEFWRV9URk1PREUpOiBOZXcuCgkoV3R5cGVfTUFYcDFfRik6IE5ldy4KCShERnR5cGUsIERDdHlwZSwgX19maXhkZmRpLCBfX2Zsb2F0ZGlkZiwgX19maXh1bnNkZlNJLCBfX2ZpeHVuc2RmREksCglfX3Bvd2lkZjIsIF9fZGl2ZGMzLCBfX211bGRjMyk6IFByb3RlY3Qgd2l0aCBIQVZFX0RGTU9ERS4KCjIwMDUtMDItMTYgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogUFIgdGFyZ2V0LzE5MTYyCgkqIGFybS5jIChhcm1fYXBwbHlfcmVzdWx0X3NpemUpOiBOZXcgZnVuY3Rpb24uCgkqIGFybS5oIChBUFBMWV9SRVNVTFRfU0laRSk6IERlZmluZS4KCSogYXJtLXByb3Rvcy5oIChhcm1fYXBwbHlfcmVzdWx0X3NpemUpOiBBZGQgcHJvdG90eXBlLgoJKiBhcm0ubWQgKFJPX1JFR05VTSwgRlBBX0YwX1JFR05VTSwgRlBBX0Y3X1JFR05VTSk6IE5ldyBjb25zdGFudHMuCgkobW92eGYpOiBOZXcgZXhwYW5kLgoJKGxkbXNpX3Bvc3RpbmM0X3RodW1iLCBzdG1zaV9wb3N0aW5jNF90aHVtYik6IE5ldyBwYXR0ZXJucyBmb3IgVGh1bWIuCgkoY2FsbF92YWx1ZV9zeW1ib2wpOiBSZW1vdmUgcHJlZGljYXRlIGZvciBvcGVyYW5kIDAuCgkoY2FsbF92YWx1ZV9pbnNuLCBzaWJjYWxsX3ZhbHVlLCBzaWJjYWxsX3ZhbHVlX2luc24pOiBMaWtld2lzZS4KCSh1bnR5cGVkX2NhbGwpOiBSZXdvcmsgdG8gY29ycmVjbHR5IHJldHVybiB2YWx1ZXMgZm9yIGFueSB0eXBlLgoJKHVudHlwZWRfcmV0dXJuKTogTmV3IGV4cGFuZC4KCSogZnBhLm1kIChtb3Z4Zl9mcGEpOiBTaW1wbGlmeSBhbmQgdXNlIHNmbS9sZm0gd2hlbiBhcHByb3ByaWF0ZS4KCjIwMDUtMDItMTYgIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgoJKiBjb25maWcuZ2NjIChwb3dlcnBjLSotZGFyd2luKik6IFVzZSBmcmFnbWVudCBmb3IgRGFyd2luIDggb3IgbGF0ZXIuCgkqIGNvbmZpZy9yczYwMDAvdC1kYXJ3aW44OiBOZXcsIGZvciA2NC1iaXQgbXVsdGlsaWIuCgoyMDA1LTAyLTE2ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogZG9jL2luc3RhbGwudGV4aSAoc3BhcmMtc3VuLXNvbGFyaXMyKik6IERvY3VtZW50IHJlcXVpcmVkIEdNUAoJY29uZmlndXJlIHNldHRpbmdzIG9uIFNvbGFyaXMgNyBhbmQgbGF0ZXIuCgoyMDA1LTAyLTE2ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xOTg2NQoJKiB0cmVlLW9wdGltaXplLmMgKGluaXRfdHJlZV9vcHRpbWl6YXRpb25fcGFzc2VzKTogUnVuCglwYXNzX21heV9hbGlhcyBhZnRlciBwYXNzX3NyYS4KCjIwMDUtMDItMTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgkgICAgU3R1YXJ0IEhhc3RpbmdzICA8c3R1YXJ0QGFwcGxlLmNvbT4KCglQUiBkZWJ1Zy8xOTUyMQoJKiBkYnhvdXQuYyAoZGJ4b3V0X2Z1bmN0aW9uX2VuZCk6IFRha2UgZGVjbCBwYXJhbWV0ZXI7IHVwZGF0ZSBjYWxsZXJzLgoJRG8gbm90aGluZyBpZiBkZWJ1ZyBpbmZvIHN1cHByZXNzZWQgZm9yIHRoaXMgZnVuY3Rpb24uCgkoZGJ4b3V0X2JlZ2luX2Z1bmN0aW9uKTogRWFybHkgZXhpdCBpZiBkZWJ1ZyBpbmZvIHN1cHByZXNzZWQgZm9yCgl0aGlzIGZ1bmN0aW9uLgoKMjAwNS0wMi0xNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCglQUiB0YXJnZXQvMjAwMDcKCSogY29uZmlnL2lwMmsvaXAyay5jIChpcDJrX3Jlb3JnKTogQWRqdXN0IGNhbGxzIHRvCglmaW5kX2Jhc2ljX2Jsb2Nrcy4KCSogY29uZmlnL3NoL3NoLmMgKHNoX291dHB1dF9taV90aHVuayk6IExpa2V3aXNlLgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5OTY3CgkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluX3N0cnN0ciwgZXhwYW5kX2J1aWx0aW5fc3RycGJyaywKCWV4cGFuZF9idWlsdGluX3N0cmNociwgZXhwYW5kX2J1aWx0aW5fc3RycmNocik6IFRha2UgYSBuZXcKCWFyZ3VtZW50IFRZUEUuICBBZGp1c3QgY2FsbHMgdG8gZm9sZF9idWlsdGluX1hYWC4KCShleHBhbmRfYnVpbHRpbiwgZm9sZF9idWlsdGluXzEpOiBBZGp1c3QgY2FsbHMgdG8KCWV4cGFuZF9idWlsdGluX1hYWC4KCShmb2xkX2J1aWx0aW5fc3RyY2hyLCBmb2xkX2J1aWx0aW5fc3RycGJyaywKCWZvbGRfYnVpbHRpbl9zdHJzdHIsIGZvbGRfYnVpbHRpbl9zdHJyY2hyKTogQ29udmVydCB0aGUgZm9sZGVkCglyZXN1bHQgdG8gYSByZXF1ZXN0ZWQgdHlwZSBUWVBFLgoKMjAwNS0wMi0xNiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8xOTg1NwoJKiBmb2xkLWNvbnN0LmMgKGZvbGQpOiBEb24ndCBvcHRpbWl6ZSAoVCkoeCAmIGNzdCkgdG8KCShUKXggJiAoVCljc3QgaWYgKFQpY3N0IG92ZXJmbG93cy4KCSogY29udmVydC5jIChjb252ZXJ0X3RvX2ludGVnZXIpIDxjYXNlIFBPSU5URVJfVFlQRT46IFBhc3MKCVRZUEVfVU5TSUdORUQgKHR5cGUpIGFzIHR5cGVfZm9yX3NpemUncyBVTlNJR05FRFAgYXJndW1lbnQuCgoyMDA1LTAyLTE1ICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogZ2NzZS5jIChibG9ja3Nfd2l0aF9jYWxscyk6IE5ldyBiaXRtYXAuCgkoYWxsb2NfZ2NzZV9tZW0pOiBBbGxvY2F0ZSBpdC4KCShmcmVlX2djc2VfbWVtKTogRnJlZSBpdC4KCShjbGVhcl9tb2RpZllfbWVtX3RhYmxlcyk6IENsZWFyIGl0LgoJKHJlY29yZF9sYXN0X21lbV9zZXRfaW5mbyk6IFNldCB0aGUgcHJvcGVyIGJpdCBpbiBCTE9DS19XSVRIX0NBTExTCgl3aGVuIHdlIGVuY291bnRlciBDQUxMX0lOU05zLgoJKGNvbXB1dGVfdHJhbnNwLCBjYXNlIE1FTSk6IEhhbmRsZSBibG9ja3Mgd2l0aCBjYWxscyBzZXBhcmF0ZQoJZnJvbSBibG9ja3Mgd2l0aG91dCBjYWxscy4gIFVzZSBiaXRtYXAgaXRlcmF0b3JzIHJhdGhlciB0aGFuCglGT1JfRUFDSF9CQi4KCjIwMDUtMDItMTUgIFBldGVyIE8nR29ybWFuICA8cGV0ZXJAcG9nbWEuY29tPgoKCVBSIGJvb3RzdHJhcC8xODgxMAoJKiBta2xpYmdjYy5pbiAodmlzX2hpZGUpOiBVc2UgYSB0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIG5vdAoJLW8gL2Rldi9udWxsLgoKMjAwNS0wMi0xNSAgQW5keSBIdXRjaGluc29uICA8SHV0Y2hpbnNvbkFuZHlAbmV0c2NhcGUubmV0PgoKCVBSIHRhcmdldC8xOTkyNAoJKiBjb25maWcvYXZyL2F2ci5oIChNT0RFU19USUVBQkxFX1ApOiBEZWZpbmUgdG8gMSB0byBhbGxvdyBzdWJyZWcKCWFjY2VzcyBvcHRpbWl6YXRpb24uCgoyMDA1LTAyLTE1ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgkgICAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiB0YXJnZXQvMTkwMTkKCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4tbGRvdWJsZS5jIChfeGxxYWRkKTogUmVuYW1lIHRvIF9fZ2NjX3FhZGQuCgkoX3hscXN1Yik6IFJlbmFtZSB0byBfX2djY19xc3ViLgoJKF94bHFtdWwpOiBSZW5hbWUgdG8gX19nY2NfcW11bC4KCShfeGxxZGl2KTogUmVuYW1lIHRvIF9fZ2NjX3FkaXYuCglQcm92aWRlIHZlcnNpb25lZCBzeW1ib2wgYWxpYXNlcyB3aXRoIG9sZCBuYW1lcy4KCSogY29uZmlnL3JzNjAwMC9saWJnY2MtcHBjNjQudmVyOiBSZW5hbWUgc3ltYm9scy4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2luaXRfbGliZnVuY3MpOiBSZW5hbWUgc3ltYm9scy4KCSogY29uZmlnL3JzNjAwMC90LWFpeDQzIChMSUIyRlVOQ1NfRVhUUkEpOiBOZXcuCgkqIGNvbmZpZy9yczYwMDAvdC1haXg1MiAoTElCMkZVTkNTX0VYVFJBKTogTmV3LgoJKiBjb25maWcvcnM2MDAwL3QtbmV3YXMgKExJQjJGVU5DU19FWFRSQSk6IE5ldy4KCjIwMDUtMDItMTUgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCgkqIGZvbGQtY29uc3QuYyAoZm9sZCk6IEZvbGQgLSh+QSkgdG8gQSArIDEuICBGb2xkIH4oLUEpIHRvIEEgLSAxLgoJRm9sZCB+KEEgLSAxKSBhbmQgfihBICsgLTEpIHRvIC1BLgoKMjAwNS0wMi0xNSAgSmFtZXMgQS4gTW9ycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCVBSIHBjaC8xNDk0MAoJUFIgdGFyZ2V0LzE5MzAwCgkqIGNvbmZpZy9ob3N0LWxpbnV4LmMgKGxpbnV4X2d0X3BjaF91c2VfYWRkcmVzcyk6IENvcHkgZnJvbQoJY29uZmlnL3BhL3BhLWhvc3QuYzpwYV9ndF9wY2hfdXNlX2FkZHJlc3MuCgoyMDA1LTAyLTE1ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIHRyZWUtdm4uYyAoZ2V0X3ZhbHVlX2hhbmRsZSk6IE1ha2Ugc3VyZSB0aGF0IGdpdmVuIGFuCglpc19naW1wbGVfbWluX2ludmFyaWFudCBleHByZXNzaW9uLCB3ZSBhbHdheXMgcmV0dXJuIGl0LgoKMjAwNS0wMi0xNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHBhc3Nlcy5jIChyZXN0X29mX2hhbmRsZV9nY3NlKTogRml4IGEgY29tbWVudC4KCjIwMDUtMDItMTUgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiBnY3NlLmMgKGNhbm9uX21vZGlmeV9tZW1fc2V0X2xpc3Rfc2V0KTogS2lsbCB1bm5lY2Vzc2FyeQoJYml0bWFwLgoJKGFsbG9jX2djc2VfbWVtLCBmcmVlX2djc2VfbWVtKTogQ29ycmVzcG9uZGluZyBjaGFuZ2VzLgoJKGNhbm9uX2xpc3RfaW5zZXJ0LCByZWNvcmRfbGFzdF9tZW1fc2V0X2luZm8pOiBTaW1pbGFybHkuCgkoY2xlYXJfbW9kaWZ5X21lbV90YWJsZXMpOiBTaW1pbGFybHkuCgoyMDA1LTAyLTE1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYml0bWFwLmMsIGJpdG1hcC5oLCBsYW1iZGEtY29kZS5jLCB0cmVlLWRmYS5jLCB0cmVlLWR1bXAuYywKCXRyZWUtZHVtcC5oLCB0cmVlLXNzYS1sb29wLW1hbmlwLmMsIHZhbHVlLXByb2YuYywKCWNvbmZpZy9taXBzL21pcHMubWQsIGNvbmZpZy9yczYwMDAvYWl4LmgsCgljb25maWcvcnM2MDAwL2Jlb3MuaCwgY29uZmlnL3JzNjAwMC9zeXN2NC5oOiBVcGRhdGUgY29weXJpZ2h0LgoKMjAwNS0wMi0xNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGJiLXJlb3JkZXIuYyAoZmluZF90cmFjZXNfMV9yb3VuZCk6IEZvcmNlIGZhbGx0aHJ1IGVkZ2UgZnJvbSBhCgljYWxsIHRvIGJlIGJlc3RfZWRnZS4KCjIwMDUtMDItMTQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBiYXNpYy1ibG9jay5oOiBBZGp1c3QgdGhlIHByb3RvdHlwZSBmb3IgZmluZF9iYXNpY19ibG9ja3MuCgkqIGNmZ2J1aWxkLmMgKGZpbmRfYmFzaWNfYmxvY2tzKTogUmVtb3ZlIHVudXNlZCBhcmd1bWVudHMuCgkqIHBhc3Nlcy5jIChyZXN0X29mX2hhbmRsZV9sb29wX29wdGltaXplKTogQWRqdXN0IHRoZSBjYWxsIHRvCglmaW5kX2Jhc2ljX2Jsb2Nrcy4KCgkqIGZsb3cuYyAocmVjb21wdXRlX3JlZ191c2FnZSk6IFJlbW92ZSBhbGwgYXJndW1lbnRzLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9jb21waWxhdGlvbik6IEFkanVzdCB0aGUgY2FsbCB0bwoJcmVjb21wdXRlX3JlZ191c2FnZS4KCSogcnRsLmg6IEFkanVzdCB0aGUgcHJvdG90eXBlIGZvciByZWNvbXB1dGVfcmVnX3VzYWdlLgoKMjAwNS0wMi0xNCAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiB0cmVlLWR1bXAuYyAoZHVtcF9maWxlcyk6IFVwZGF0ZSB0byByZWZsZWN0IG5ldyBtZW1iZXIKCW9mIGR1bXBfZmlsZV9pbmZvLgoJKGR1bXBfcmVnaXN0ZXIpOiBBZGQgbmV3IGFyZ3VtZW50LgoJU2V0IGdsb2IgbmFtZS4KCShkdW1wX3N3aXRjaF9wXzEpOiBDaGVjayBhZ2FpbnN0IGdsb2IgbmFtZSBpZiBkb2dsb2Igd2FzIHBhc3NlZC4KCShkdW1wX3N3aXRjaF9wKTogQ2hlY2sgYWdhaW5zdCByZWd1bGFyIGZpcnN0LCB0aGVuIGdsb2IgaWYKCXdlIGRpZG4ndCBoYXZlIGFueSBoaXRzIG9uIHRoZSBkdW1wIG5hbWUuCgkqIHRyZWUtb3B0aW1pemUuYyAocmVnaXN0ZXJfb25lX2R1bXBfZmlsZSk6CglQYXNzIGluIGdsb2IgbmFtZSBhcyB3ZWxsLgoJKiB0cmVlLXBhc3MuaCAoc3RydWN0IGR1bXBfZmlsZV9pbmZvKTogQWRkIGdsb2IKCW1lbWJlci4KCjIwMDUtMDItMTQgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIHByZXByb2Nlc3Nvci8xNjMyMwoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IHRoYXQgLVdlbmRpZi1sYWJlbHMgaXMgb24gYnkgZGVmYXVsdC4KCjIwMDUtMDItMTQgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCglQUiB0YXJnZXQvMTkwMTkKCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKHRydW5jdGZkZjIpOiBDaGFuZ2UgdG8gZGVmaW5lX2V4cGFuZC4KCSh0cnVuY3RmZGYyX2ludGVybmFsMSk6IE5ldy4KCSh0cnVuY3RmZGYyX2ludGVybmFsMik6IFJlbmFtZWQgZnJvbSB0cnVuY3RmZGYyLgoKMjAwNS0wMi0xNCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTk4NTMKCSogdHJlZS1kZmEuYyAoYWRkX3JlZmVyZW5jZWRfdmFyKTogQWx3YXlzIGV4YW1pbmUgREVDTF9JTklUSUFMLgoKMjAwNS0wMi0xNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHBhc3Nlcy5jIChyZXN0X29mX2hhbmRsZV9sb29wX29wdGltaXplKTogUmVtb3ZlIGNhbGxzIHRvCglkZWxldGVfZGVhZF9qdW1wdGFibGVzIGFuZCBjbGVhbnVwX2NmZy4KCjIwMDUtMDItMTQgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIHJlbG9hZC5jIChmaW5kX3JlbG9hZHMpOiBTd2FwIGFkZHJlc3NfcmVsb2FkZWQgZmxhZ3Mgd2hlbgoJc3dhcHBpbmcgY29tbXV0YXRpdmUgb3BlcmFuZHMuCgoyMDA1LTAyLTE0ICBTZWJhc3RpYW4gUG9wICA8cG9wQGNyaS5lbnNtcC5mcj4KCgkqIGxhbWJkYS1jb2RlLmMgKGxhbWJkYV9sb29wbmVzdF90b19nY2NfbG9vcG5lc3QsIHBlcmZlY3RfbmVzdGlmeSk6CglVc2Ugc3RhbmRhcmRfaXZfaW5jcmVtZW50X3Bvc2l0aW9uIGZvciBjb21wdXRpbmcgdGhlIGJzaSBwb3NpdGlvbgoJZm9yIGNyZWF0ZV9pdi4KCSogdHJlZS1zc2EtbG9vcC1tYW5pcC5jIChjcmVhdGVfaXYpOiBBZGQgYSBjb21tZW50IG9uIGhvdyB0byBjb21wdXRlCgl0aGUgYnNpIHBvc2l0aW9uLgoKMjAwNS0wMi0xMyAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCglQUiB0YXJnZXQvMTc0MjgKCSogY2ZncnRsLmMgKHNhZmVfaW5zZXJ0X2luc25fb25fZWRnZSk6IEF2b2lkIGV4dGVuZGluZwoJbGlmZSByYW5nZSBvZiBoYXJkIHJlZ2lzdGVycy4KCSogdmFsdWUtcHJvZi5jIChpbnNuX3ByZWZldGNoX3ZhbHVlc190b19wcm9maWxlKTogT25seQoJc2NhbiBub3JtYWwgaW5zbnMuCgoJKiB2YWx1ZS1wcm9mLmMgKHJ0bF9maW5kX3ZhbHVlc190b19wcm9maWxlKTogRG8gbm90IGxvb2sgZm9yIHZhbHVlcyB0bwoJcHJvZmlsZSBpbiBsaWJjYWxscy4KCjIwMDUtMDItMTMgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBiaXRtYXAuaCAoYml0bWFwX2FuZF9jb21wbF9pbnRvKTogUmV0dXJuIGJvb2wuCgkqIGJpdG1hcC5jIChiaXRtYXBfYW5kX2NvbXBsX2ludG8pOiBSZXR1cm4gY2hhbmdlZCBmbGFnLgoKMjAwNS0wMi0xMyAgSmFtZXMgQS4gTW9ycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5OTQ0CgkqIGZvbGQtY29uc3QuYyAoZm9sZCk6IFJlLWFkZCBBQlNfRVhQUiBmb2xkaW5nLgoKMjAwNS0wMi0xMyAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCVBSIHRhcmdldC8xOTAxOQoJKiBjb25maWcvcnM2MDAwL2FpeC5oICh7VEFSR0VULE1BU0t9X1hMX0NBTEwpOiBSZW5hbWUgdG8KCXtUQVJHRVQsTUFTS31fWExfQ09NUEFULgoJKFNVQlRBUkdFVF9TV0lUQ0hFUyk6IFJlbmFtZSB4bC1jYWxsIHRvIHhsLWNvbXBhdC4gIFVzZQoJTUFTS19YTF9DT01QQVQuCgkqIGNvbmZpZy9yczYwMDAvYmVvcy5oICh7VEFSR0VULE1BU0t9X1hMX0NBTEwpOiBSZW1vdmUuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKGZ1bmN0aW9uX2FyZyk6IENoYW5nZSBUQVJHRVRfWExfQ0FMTCB0bwoJVEFSR0VUX1hMX0NPTVBBVC4KCShyczYwMDBfYXJnX3BhcnRpYWxfYnl0ZXMpOiBTYW1lLgoJKHJzNjAwMF9nZW5lcmF0ZV9jb21wYXJlKTogR2VuZXJhdGUgUEFSQUxMRUwgZm9yIGNvbXBhcmUgaWYgVEZtb2RlCglhbmQgWEwgY29tcGF0aWJpbGl0eSBlbmFibGVkLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5oIChUQVJHRVRfWExfQ0FMTCk6IFJlbmFtZSB0byBUQVJHRVRfWExfQ09NUEFULgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAoY21wdGZfaW50ZXJuYWwxKTogQWRkICFUQVJHRVRfWExfQ09NUEFUCgl0ZXN0IHRvIGZpbmFsIGNvbmRpdGlvbi4KCShjbXB0Zl9pbnRlcm5hbDIpOiBOZXcuCgkqIGRvYy9pbnZva2UudGV4aSAoUlMvNjAwMCBTdWJ0YXJnZXQgT3B0aW9ucyk6IENoYW5nZSB4bC1jYWxsIHRvCgl4bC1jb21wYXQuICBBZGQgVEZtb2RlIGluZm9ybWF0aW9uIHRvIGRlc2NyaXB0aW9uLgoKMjAwNS0wMi0xMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGZsYWdzLmgsIHJlYWQtcnRsLmMsIHRyZWUtc3NhLWxpdmUuaDogVXBkYXRlIGNvcHlyaWdodC4KCjIwMDUtMDItMTMgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy8xNjQwNQoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfaW5kaXJlY3RfcmVmXzEpOiBTcGxpdCBvdXQgZnJvbS4uLgoJKGJ1aWxkX2ZvbGRfaW5kaXJlY3RfcmVmKTogSGVyZS4KCShmb2xkX2luZGlyZWN0X3JlZik6IE5ldyBmbi4KCSogdHJlZS5oOiBEZWNsYXJlIGl0LgoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9jb21wb3VuZF9sdmFsKTogQ2FsbCBmb2xkX2luZGlyZWN0X3JlZi4KCShnaW1wbGlmeV9tb2RpZnlfZXhwcl9yaHMpOiBMaWtld2lzZS4KCShnaW1wbGlmeV9leHByKTogTGlrZXdpc2UuCgoyMDA1LTAyLTEzICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTQzMDMKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE1Nzg0CgkqIGZvbGQtY29uc3QuYyAoZm9sZCk6IEZvbGQgQUJTX0VYUFI8eD4gPj0gMCB0byB0cnVlLCB3aGVuIHBvc3NpYmxlLgoJRm9sZCBBQlNfRVhQUjx4PiA8IDAgdG8gZmFsc2UuICBGb2xkIEFCU19FWFBSPHg+ID09IDAgdG8geCA9PSAwIGFuZAoJQUJTX0VYUFI8eD4gIT0gMCB0byB4ICE9IDAuCgoyMDA1LTAyLTEyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYy10cmVlLmgsIGNvbWJpbmUuYywgZXhwbWVkLmMsIGZsb3cuYywgbGliZ2NjMi5jLAoJc2ltcGxpZnktcnR4LmMsIHRyZWUtc3NhLWxpdmUuaDogRml4IGNvbW1lbnQgdHlwb3MuICBGb2xsb3cKCXNwZWxsaW5nIGNvbnZlbnRpb25zLgoKCSogcGFzc2VzLmMgKHJlc3Rfb2ZfaGFuZGxlX2djc2UpOiBEb24ndCBydW4gY3NlX21haW4gYW5kCglkZWxldGVfdHJpdmlhbGx5X2RlYWRfaW5zbnMgdG9vIG1hbnkgdGltZXMuCgoJKiBwYXNzZXMuYyAocmVzdF9vZl9oYW5kbGVfZ2NzZSk6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzIHRvCgl0ZW0gYW5kIHRlbTIuCgoyMDA1LTAyLTEyICBJcmEgUm9zZW4gIDxpcmFyQGlsLmlibS5jb20+CgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAodmVjdF9nZXRfYmFzZV9hbmRfb2Zmc2V0KTogUmVtb3ZlLgoJKHZlY3RfaXNfc2ltcGxlX2l2X2V2b2x1dGlvbik6IFJlbW92ZSByZWR1bmRhbnQgcGFyYW1ldGVyCglhbmQgc3RlcCBjaGVjay4KCSh2ZWN0X2FuYWx5emVfc2NhbGFyX2N5Y2xlcyk6IENhbGwgdmVjdF9pc19zaW1wbGVfaXZfZXZvbHV0aW9uCgl3aXRob3V0IGxhc3QgcGFyYW1ldGVyLgoJKHZlY3RfYW5hbHl6ZV9wb2ludGVyX3JlZl9hY2Nlc3MpOiBHZXQgYWNjZXNzX2ZuIGFzIHBhcmFtZXRlci4KCVJldHVybiBwb2ludGVyIHN0ZXAuIENhbGwgdmVjdF9pc19zaW1wbGVfaXZfZXZvbHV0aW9uIHdpdGhvdXQKCWxhc3QgcGFyYW1ldGVyLiBDaGVjayBvbmx5IHRoYXQgdGhlIHN0ZXAgaXMgbXVsdGlwbGUgb2Ygc2l6ZQoJdHlwZS4gUmVtb3ZlIHN0bXRfdmluZm8gdXBkYXRlcy4KCSh2ZWN0X2dldF9tZW10YWdfYW5kX2RyKTogUmVtb3ZlLgoJKHZlY3RfZ2V0X21lbXRhZyk6IE5ldyBmdW5jdGlvbi4KCSh2ZWN0X2FkZHJlc3NfYW5hbHlzaXMpOiBOZXcgZnVuY3Rpb24uCgkodmVjdF9vYmplY3RfYW5hbHlzaXMpOiBOZXcgZnVuY3Rpb24uCgkodmVjdF9hbmFseXplX2RhdGFfcmVmcyk6IENhbGwgdmVjdF9vYmplY3RfYW5hbHlzaXMgYW5kCgl2ZWN0X2dldF9tZW10YWcuIFVwZGF0ZSBzdG10X3ZpbmZvIGZpZWxkcy4KCjIwMDUtMDItMTIgIElyYSBSb3NlbiAgPGlyYXJAaWwuaWJtLmNvbT4KCgkqIHRyZWUtZGF0YS1yZWYuYyAoYXJyYXlfYmFzZV9uYW1lX2RpZmZlcl9wKTogQ2hlY2sgdGhhdCB0aGUgYmFzZXMKCWV4aXN0IGFuZCBhcmUgb2JqZWN0cy4gUmVtb3ZlIGNoZWNrcyBmb3IgcG9pbnRlci4KCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfY3JlYXRlX2FkZHJfYmFzZV9mb3JfdmVjdG9yX3JlZik6IFVzZQoJU1RNVF9WSU5GT19WRUNUX0RSX0JBU0VfQUREUkVTUyBpbnN0ZWFkIG9mIERSX0JBU0VfTkFNRS4KCSh2ZWN0X2NyZWF0ZV9kYXRhX3JlZl9wdHIpOiBMaWtld2lzZS4KCSh2ZWN0X2Jhc2VfYWRkcl9kaWZmZXJfcCk6IE5ldyBmdW5jdGlvbi4KCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZfZGVwZW5kZW5jZSk6IENhbGwgdmVjdF9iYXNlX2FkZHJfZGlmZmVyX3AuCgkodmVjdF9hbmFseXplX3BvaW50ZXJfcmVmX2FjY2Vzcyk6IEFkZCBvdXRwdXQgcGFyYW1ldGVyIC0gcHRyX2luaXQuCglEb24ndCBzZXQgdGhlIERSX0JBU0VfTkFNRSBmaWVsZCBvZiBkYXRhLXJlZi4KCSh2ZWN0X2dldF9tZW10YWdfYW5kX2RyKTogVXNlIHB0cl9pbml0IGluc3RlYWQgb2YgRFJfQkFTRV9OQU1FLgoKMjAwNS0wMi0xMiAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCSogb3B0YWJzLmggKGVudW0gb3B0YWJfaW5kZXgpOiBBZGQgbmV3IE9USV9sZGV4cC4KCShsZGV4cF9vcHRhYik6IERlZmluZSBjb3JyZXNwb25kaW5nIG1hY3JvLgoJKiBvcHRhYnMuYyAoaW5pdF9vcHRhYnMpOiBJbml0aWFsaXplIGxkZXhwX29wdGFiLgoJKiBnZW5vcGluaXQuYyAob3B0YWJzKTogSW1wbGVtZW50IGxkZXhwX29wdGFiIHVzaW5nIGxkZXhwP2YzCglwYXR0ZXJucy4KCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fbWF0aGZuXzIpOiBIYW5kbGUgQlVJTFRfSU5fTERFWFB7LEYsTH0KCXVzaW5nIGxkZXhwX29wdGFiLgoJKGV4cGFuZF9idWlsdGluKTogRXhwYW5kIEJVSUxUX0lOX0xERVhQeyxGLEx9IHVzaW5nCglleHBhbmRfYnVpbHRpbl9tYXRoZm5fMiBpZiBmbGFnX3Vuc2FmZV9tYXRoX29wdGltaXphdGlvbnMgaXMgc2V0LgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAobGRleHBzZjMsIGxkZXhwZGYzLCBsZGV4cHhmMyk6IE5ldyBleHBhbmRlcnMKCXRvIGltcGxlbWVudCBsZGV4cGYsIGxkZXhwIGFuZCBsZGV4cGwgYnVpbHQtaW5zIGFzIGlubGluZSB4ODcKCWludHJpbnNpY3MuCgoyMDA1LTAyLTEyICBJcmEgUm9zZW4gIDxpcmFyQGlsLmlibS5jb20+CgoJKiB0cmVlLXZlY3Rvcml6ZXIuaCAoc3RydWN0IF9zdG10X3ZlY19pbmZvKTogUmVuYW1lIGEgZmllbGQ6IGJhc2UKCXRvIGJhc2VfYWRkcmVzcy4KCSogdHJlZS12ZWN0b3JpemVyLmMgKG5ld19zdG10X3ZlY19pbmZvKTogUmVuYW1lIHRoZSBhYm92ZSBmaWVsZCBvZgoJc3RtdF92ZWNfaW5mby4KCSh2ZWN0X2dldF9iYXNlX2FuZF9vZmZzZXQpOiBBbHdheXMgcmV0dXJuIGFuIGFkZHJlc3MuCgkodmVjdF9jcmVhdGVfYWRkcl9iYXNlX2Zvcl92ZWN0b3JfcmVmKTogUmVtb3ZlIHRyZWF0bWVudCBmb3IKCWRpZmZlcmVudCBkYXRhIHJlZmVyZW5jZSB0eXBlcy4KCSh2ZWN0X2NvbXB1dGVfZGF0YV9yZWZfYWxpZ25tZW50KTogUmVuYW1lIGJhc2UgdG8gYmFzZV9hZGRyZXNzIGluCglzdG10X3ZlY19pbmZvLiBHZXQgdGhlIG9iamVjdCBpbiBvcmRlciB0byBmb3JjZSBpdHMgYWxpZ25tZW50LgoJKHZlY3RfZ2V0X21lbXRhZ19hbmRfZHIpOiBSZW5hbWUgYmFzZSB0byBiYXNlX2FkZHJlc3MgaW4KCXN0bXRfdmVjX2luZm8uIEV4dHJhY3QgdGhlIG9iamVjdCBmb3IgbWVtdGFnIGFuYWx5c2lzLgoKMjAwNS0wMi0xMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJUFIgcmVncmVzc2lvbi8xOTg5OC4KCSogY29uZmlnL2NyaXMvY3Jpcy5jIChjcmlzX25vdGljZV91cGRhdGVfY2MpOiBXaGVuIHRlc3RpbmcgaWYgaW5zbgoJY2hhbmdlcyBjY19zdGF0dXMsIHVzZSBhcHBseSBtb2RpZmllZF9pbl9wIHRvIHBhcnQgb2YgY2Nfc3RhdHVzCglhbmQgaW5zbiwgbm90IGNyaXNfcmVnX292ZXJsYXBfbWVudGlvbmVkX3Agb24gU0VUX0RFU1Qgb2YgaW5zbgoJYm9keS4KCjIwMDUtMDItMTEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLWNvbXBsZXguYyAoZXhwYW5kX2NvbXBsZXhfbGliY2FsbCk6IE5ldy4KCShleHBhbmRfY29tcGxleF9tdWx0aXBsaWNhdGlvbik6IFVzZSBpdCBmb3IgYzk5IGNvbXBsaWFuY2UuCgkoZXhwYW5kX2NvbXBsZXhfZGl2aXNpb24pOiBMaWtld2lzZS4KCSogZm9sZC1jb25zdC5jIChmb2xkX2NvbXBsZXhfYWRkLCBmb2xkX2NvbXBsZXhfbXVsdCk6IE5ldy4KCShmb2xkKTogQ2FsbCB0aGVtLgoJKiBidWlsdGlucy5jIChidWlsdF9pbl9uYW1lcyk6IFJlbW92ZSBjb25zdC4KCSogdHJlZS5jIChidWlsZF9jb21tb25fYnVpbHRpbl9ub2Rlcyk6IEJ1aWxkIGNvbXBsZXggYXJpdGhtZXRpYwoJYnVpbHRpbnMuCgkqIHRyZWUuaCAoQlVJTFRfSU5fQ09NUExFWF9NVUxfTUlOLCBCVUlMVF9JTl9DT01QTEVYX01VTF9NQVgpOiBOZXcuCgkoQlVJTFRfSU5fQ09NUExFWF9ESVZfTUlOLCBCVUlMVF9JTl9DT01QTEVYX0RJVl9NQVgpOiBOZXcuCgkoYnVpbHRfaW5fbmFtZXMpOiBSZW1vdmUgY29uc3QuCgkqIGMtY29tbW9uLmMgKGNfY29tbW9uX3R5cGVfZm9yX21vZGUpOiBIYW5kbGUgY29tcGxleCBtb2Rlcy4KCSogZmxhZ3MuaCwgdG9wbGV2LmMgKGZsYWdfY29tcGxleF9tZXRob2QpOiBSZW5hbWUgZnJvbQoJZmxhZ19jb21wbGV4X2RpdmlkZV9tZXRob2QuCgkqIGxpYmdjYzIuYyAoX19kaXZzYzMsIF9fZGl2ZGMzLCBfX2RpdnhjMywgX19kaXZ0YzMsCglfX211bHNjMywgX19tdWxkYzMsIF9fbXVseGMzLCBfX211bHRjMyk6IE5ldy4KCSogbGliZ2NjMi5oOiBEZWNsYXJlIHRoZW0uCgkqIGxpYmdjYy1zdGQudmVyOiBFeHBvcnQgdGhlbS4KCSogbWtsaWJnY2MuaW4gKGxpYjJmdW5jcyk6IEJ1aWxkIHRoZW0uCgoyMDA1LTAyLTExICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTk4NzYKCVBhcnRpYWxseSByZXZlcnQgbXkgY2hhbmdlIGZyb20gMjAwNS0wMS0xNAoJKiB0cmVlLXNzYS1wcmUuYyAoY29tcHV0ZV9hbnRpY19hdXgpOiBNYWtlIHJlY3Vyc2l2ZSBvbmNlIGFnYWluLi4uCgkoY29tcHV0ZV9hbnRpYyk6IC4uLmFuZCByZW1vdmUgdGhlIGxvb3AgaGVyZS4KCjIwMDUtMDItMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTk4NTgKCSogZm9sZC1jb25zdC5jIChtYWtlX2JpdF9maWVsZF9yZWYpOiBJZiBiaXRwb3MgPT0gMCBhbmQgYml0c2l6ZQoJaXMgbnVtYmVyIG9mIGlubmVyJ3MgYml0cywgYXZvaWQgY3JlYXRpbmcgYSBCSVRfRklFTERfUkVGLgoKCSogY29uZmlnL3JzNjAwMC9zeXN2NC5oIChFTkRGSUxFX0xJTlVYX1NQRUMpOiBVc2UgY3J0ZW5kUy5vIGluc3RlYWQgb2YKCWNydGVuZC5vIGlmIC1waWUuICBVc2UgJXt4OmE7OmJ9IHNwZWMgc3ludGF4LgoKMjAwNS0wMi0xMSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9taXBzL2xpbnV4LXVud2luZC5oIChtaXBzX2ZhbGxiYWNrX2ZyYW1lX3N0YXRlKTogQWRqdXN0CglvZmZzZXRzIGZvciB0aGUgYmlnLWVuZGlhbiAzMi1iaXQgY2FzZS4KCjIwMDUtMDItMTEgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2lhNjQvaHB1eC5oIChXQ0hBUl9UWVBFLCBXQ0hBUl9UWVBFX1NJWkUpOiBEZWZpbmUuCgoyMDA1LTAyLTExICBEYWxlIEpvaGFubmVzZW4gIDxkYWxlakBhcHBsZS5jb20+CgoJKiBjc2VsaWIuYyAoY3NlbGliX3Byb2Nlc3NfaW5zbik6ICBDbGVhciBvdXQgcmVncyB3aGVyZQoJSEFSRF9SRUdOT19DQUxMX1BBUlRfQ0xPQkJFUkVEIGlzIHRydWUgYXQgYSBjYWxsLgoJKiByZWxvYWQuYyAoZmluZF9lcXVpdl9yZWcpOiBEaXR0by4KCjIwMDUtMDItMTEgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AYWlycy5jb20+CgoJKiByZWFkLXJ0bC5jIChyZWFkX3J0eF8xKTogR2l2ZSBmYXRhbCBlcnJvciBpZiB3ZSBzZWUgYSB2ZWN0b3IKCXdpdGggbm8gZWxlbWVudHMuCgoJKiB0cmVlLmMgKGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCk6IFdvcmsgY29ycmVjdGx5IGlmIHRoZXJlIGFyZQoJbm8gYXJndW1lbnRzLgoKMjAwNS0wMi0xMSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5tZCAoIipjbXBkaV9jY3QiLCAiKmNtcHNpX2NjdCIsICIqY21wZGlfY2NzIiwKCSIqY21wc2lfY2NzIik6IFVzZSAlaCBpbnN0ZWFkIG9mICVjIHRvIHByaW50IGltbWVkaWF0ZSBvcGVyYW5kLgoJKCIqemVyb19leHRlbmRoaXNpMl82NCIsICIqemVyb19leHRlbmRoaXNpMl8zMSIpOiBDaG9vc2UgYmFzZWQgb24KCVRBUkdFVF9aQVJDSCBpbnN0ZWFkIG9mIFRBUkdFVF82NEJJVC4KCjIwMDUtMDItMTEgIFJhbGYgQ29yc2VwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCSogY29uZmlnL3JzNjAwMC90LXJ0ZW1zOgoJKE1VTFRJTElCX09QVElPTlMpOiBSZW1vdmUgbWNwdT02MDIuCgkoTVVUTElMSUJfRElSTkFNRVMpOiBSZW1vdmUgbTYwMi4KCShNVUxUSUxJQl9NQVRDSEVTKTogQWRkICR7TVVMVElMSUJfTUFUQ0hFU19GTE9BVH0uCglMZXQgbWNwdT02MDIgbWF0Y2ggbWNwdT02MDMuCgkoTVVMVElMSUJfTkVXX0VYQ0VQVElPTlNfT05MWSk6IEFkZCBtY3B1PTYwMSwgbWNwdT02MDIsIG1jcHU9bTYwMy4KCjIwMDUtMDItMTAgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBwYS9saW51eC11bndpbmQuaCAocGEzMl9mYWxsYmFja19mcmFtZV9zdGF0ZSk6IEhhbmRsZSBtaXNhbGlnbmVkCglzaWduYWwgdHJhbXBvbGluZXMuCgoyMDA1LTAyLTEwICBEYXZpZCBEYW5leSAgPGRkYW5leUBhdnRyZXguY29tPgoKCSogY29uZmlnL2FscGhhL2xpbnV4LXVud2luZC5oOiBBZGQgZXhjZXB0aW9uIGNsYXVzZSB0byBjb3B5cmlnaHQuCgkqIGNvbmZpZy9pMzg2L2xpbnV4LXVud2luZC5oOiBMaWtld2lzZS4KCSogY29uZmlnL2lhNjQvbGludXgtdW53aW5kLmg6IExpa2V3aXNlLgoJKiBjb25maWcvbWlwcy9saW51eC11bndpbmQuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9wYS9saW51eC11bndpbmQuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvbGludXgtdW53aW5kLmg6IExpa2V3aXNlLgoJKiBjb25maWcvczM5MC9saW51eC11bndpbmQuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC9saW51eC11bndpbmQuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9zcGFyYy9saW51eC11bndpbmQuaDogTGlrZXdpc2UuCgoyMDA1LTAyLTEwICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc1NDkKCSogdHJlZS1vdXRvZi1zc2EuYyAoZmluZF9yZXBsYWNlYWJsZV9pbl9iYik6IERvIG5vdCBhbGxvdwoJVEVSIHRvIHJlcGxhY2UgYSBERUYgd2l0aCBpdHMgZXhwcmVzc2lvbiBpZiB0aGUgREVGIGFuZCB0aGUKCXJocyBvZiB0aGUgZXhwcmVzc2lvbiB3ZSByZXBsYWNlIGludG8gaGF2ZSB0aGUgc2FtZSByb290Cgl2YXJpYWJsZS4KCjIwMDUtMDItMTAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMubWQ6IEZpeCB0aGUgcGxhY2VtZW50IG9mIHRoZSBtYXRjaF9zY3JhdGNoIGluIHRoZQoJbGVhNjQgcGVlcGhvbGUyLgoKMjAwNS0wMi0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNzZS5jLCB0cmVlLXNzYS1sb29wLWl2b3B0cy5jLCBjb25maWcvcnM2MDAwL2xpbnV4LXVud2luZC5oOgoJRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA1LTAyLTEwICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoZGV0ZXJtaW5lX2Jhc2Vfb2JqZWN0KTogSWdub3JlIGNhc3RzLgoJKHN0cmlwX29mZnNldCk6IEhhbmRsZSBhZGRyZXNzZXMuCgkoYWRkX2FkZHJlc3NfY2FuZGlkYXRlcyk6IFVzZSBzdHJpcF9vZmZzZXQuCgkoZGlmZmVyZW5jZV9jb3N0KTogUmVmbGVjdCBzdHJpcF9vZmZzZXQgY2hhbmdlLgoJKGZvcmNlX3Zhcl9jb3N0LCBkaWZmZXJlbmNlX2Nvc3QpOiBTdHJpcCBub3BzLgoKMjAwNS0wMi0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRmLmggKERGX1JFRl9NT0RFX0NIQU5HRSwgREZfUkVGX01FTV9PSyk6IFJlbW92ZS4KCgkqIGJ1aWx0aW5zLmRlZiwgaGFpZmEtc2NoZWQuYywgbGliZ2NjMi5jLCBsaWJnY2MyLmgsCgl0cmVlLXNzYS1sb29wLWl2Y2Fub24uYywgdHJlZS1zc2EtbG9vcC1uaXRlci5jLAoJY29uZmlnL2NyaXMvY3Jpcy1wcm90b3MuaCwgY29uZmlnL2NyaXMvY3Jpcy5jOiBVcGRhdGUKCWNvcHlyaWdodC4KCjIwMDUtMDItMTAgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1kb20uYyAodGhyZWFkX2Fjcm9zc19lZGdlKTogVXNlIHhtYWxsb2MsIG5vdCB4Y2FsbG9jLgoJKGxvb2t1cF9hdmFpbF9leHByKTogU2ltaWxhcmx5LgoKMjAwNS0wMi0xMCAgUmljaGFyZCBHdWVudGhlciAgPHJndWVudGhAZ2NjLmdudS5vcmc+CgoJKiBidWlsdGlucy5jIChmb2xkX2J1aWx0aW5fcG93aSk6IE5ldyBmdW5jdGlvbi4KCShmb2xkX2J1aWx0aW5fMSk6IENhbGwgaXQuCgoyMDA1LTAyLTEwICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJUFIgZG9jdW1lbnRhdGlvbi8xOTMwOQoJKiBkb2MvY3BwLnRleGk6IFRoZSBfX0dOVUNfXyBhbmQgcmVsYXRlZCBwcmVkZWZpbmVkIG1hY3JvcwoJYXJlIGFsc28gZGVmaW5lZCBmb3IgdGhlICJzdGFuZGFsb25lIiBjcHAuCglTb21lIG5vbi1HQ0MgY29tcGlsZXJzIG1heSBhbHNvIGRlZmluZSBfX0dOVUNfXy4KCjIwMDUtMDItMTAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIGMvMTkzNDIKCSogYy10eXBlY2suYyAoY29tbW9uX3R5cGUpOiBOZXcgcm91dGluZS4gIE9sZCBjb21tb25fdHlwZSByZW5hbWVkCgl0by4uLgoJKGNfY29tbW9uX3R5cGUpOiAuLi50aGlzLgoJKGJ1aWxkX2NvbmRpdGlvbmFsX2V4cHIsIGJ1aWxkX2JpbmFyeV9vcCk6IFVzZSBjX2NvbW1vbl90eXBlIGluc3RlYWQKCW9mIGNvbW1vbl90eXBlLgoKMjAwNS0wMi0xMCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogZG9jL21kLnRleGk6IFJlcGxhY2UgQHNhbXB7bGVuZ3RofSB3aXRoIEBjb2Rle2xlbmd0aH0uCgoyMDA1LTAyLTA5ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4Njg3CgkqIHRyZWUtZmxvdy5oIChmaW5kX2xvb3Bfbml0ZXIpOiBEZWNsYXJlLgoJKiB0cmVlLXNzYS1sb29wLWl2Y2Fub24uYyAoY2Fub25pY2FsaXplX2xvb3BfaW5kdWN0aW9uX3ZhcmlhYmxlcyk6CglUcnkgdXNpbmcgc2NldiBldmVuIGZvciBsb29wcyB3aXRoIG1vcmUgdGhhbiBvbmUgZXhpdC4KCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoc3RydWN0IGxvb3BfZGF0YSk6IFJlbW92ZWQgbml0ZXIgZmllbGQuCgkoc3RydWN0IGl2b3B0c19kYXRhKTogQWRkZWQgbml0ZXJzIGZpZWxkLgoJKHN0cnVjdCBuZmVfY2FjaGVfZWx0KTogTmV3LgoJKG5mZV9oYXNoLCBuZmVfZXEsIG5pdGVyX2Zvcl9leGl0LCBuaXRlcl9mb3Jfc2luZ2xlX2RvbV9leGl0KTogTmV3CglmdW5jdGlvbnMuCgkodHJlZV9zc2FfaXZfb3B0aW1pemVfaW5pdCk6IEluaXRpYWxpemUgbml0ZXJzIGNhY2hlLgoJKGRldGVybWluZV9udW1iZXJfb2ZfaXRlcmF0aW9ucyk6IFJlbW92ZWQuCgkoZmluZF9pbmR1Y3Rpb25fdmFyaWFibGVzKTogRG8gbm90IGNhbGwgZGV0ZXJtaW5lX251bWJlcl9vZl9pdGVyYXRpb25zLgoJQWNjZXNzIG5pdGVycyBmb3Igc2luZ2xlIGV4aXQgdGhyb3VnaCBuaXRlcl9mb3Jfc2luZ2xlX2RvbV9leGl0LgoJKGFkZF9pdl9vdXRlcl9jYW5kaWRhdGVzKTogQWNjZXNzIG5pdGVycyBmb3Igc2luZ2xlIGV4aXQgdGhyb3VnaAoJbml0ZXJfZm9yX3NpbmdsZV9kb21fZXhpdC4KCShtYXlfZWxpbWluYXRlX2l2KTogVGFrZSBkYXRhIGFyZ3VtZW50LiAgVXNlIG5pdGVyX2Zvcl9leGl0LiAgRG8gbm90IHVzZQoJbnVtYmVyX29mX2l0ZXJhdGlvbnNfY29uZC4KCShpdl9wZXJpb2QpOiBOZXcgZnVuY3Rpb24uCgkoZGV0ZXJtaW5lX3VzZV9pdl9jb3N0X2NvbmRpdGlvbik6IFBhc3MgZGF0YSB0byBtYXlfZWxpbWluYXRlX2l2LgoJKG1heV9yZXBsYWNlX2ZpbmFsX3ZhbHVlKTogVGFrZSBkYXRhIGFyZ3VtZW50LiAgVXNlCgluaXRlcl9mb3Jfc2luZ2xlX2RvbV9leGl0LgoJKGRldGVybWluZV91c2VfaXZfY29zdF9vdXRlcik6IFBhc3MgZGF0YSB0byBtYXlfcmVwbGFjZV9maW5hbF92YWx1ZS4KCShyZXdyaXRlX3VzZV9jb21wYXJlKTogUGFzcyBkYXRhIHRvIG1heV9lbGltaW5hdGVfaXYuCgkocmV3cml0ZV91c2Vfb3V0ZXIpOiBQYXNzIGRhdGEgdG8gbWF5X3JlcGxhY2VfZmluYWxfdmFsdWUuCgkoZnJlZV9sb29wX2RhdGEpOiBDbGVhbiB1cCB0aGUgbml0ZXJzIGNhY2hlLgoJKHRyZWVfc3NhX2l2X29wdGltaXplX2ZpbmFsaXplKTogRnJlZSB0aGUgbml0ZXJzIGNhY2hlLgoJKHRyZWVfc3NhX2l2X29wdGltaXplX2xvb3ApOiBEbyBub3QgY2FsbCBsb29wX2NvbW1pdF9pbnNlcnRzLgoJKiB0cmVlLXNzYS1sb29wLW5pdGVyLmMgKGZpbmRfbG9vcF9uaXRlcik6IE5ldyBmdW5jdGlvbi4KCShmaW5kX2xvb3Bfbml0ZXJfYnlfZXZhbCk6IFVzZSB0cmVlX2ludF9jc3RfbHQuCgkobnVtX2VuZGluZ196ZXJvcyk6IE1vdmVkIHRvIHRyZWUuYy4KCSogdHJlZS5oIChudW1fZW5kaW5nX3plcm9zKTogRGVjbGFyZS4KCSogdHJlZS5jIChudW1fZW5kaW5nX3plcm9zKTogTW92ZWQgZnJvbSB0cmVlLmMuCgoyMDA1LTAyLTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoREVGX0JVSUxUSU4pOiBBZGQgQ09ORCBhcmd1bWVudC4KCSogdHJlZS5oIChERUZfQlVJTFRJTik6IExpa2V3aXNlLgoJKiBidWlsdGlucy5kZWYgKERFRl9HQ0NfQlVJTFRJTiwgREVGX0xJQl9CVUlMVElOLCBERUZfRVhUX0xJQl9CVUlMVElOLAoJREVGX0M5NF9CVUlMVElOLCBERUZfQzk5X0JVSUxUSU4sIERFRl9DOTlfQzkwUkVTX0JVSUxUSU4pOiBVcGRhdGUgdG8KCW1hdGNoLgoJKERFRl9CVUlMVElOX1NUVUIpOiBOZXcuCgkoQlVJTFRfSU5fU1RBQ0tfU0FWRSwgQlVJTFRfSU5fU1RBQ0tfUkVTVE9SRSwgQlVJTFRfSU5fSU5JVF9UUkFNUE9MSU5FLAoJQlVJTFRfSU5fQURKVVNUX1RSQU1QT0xJTkUsIEJVSUxUX0lOX05PTkxPQ0FMX0dPVE8sCglCVUlMVF9JTl9QUk9GSUxFX0ZVTkNfRU5URVIsIEJVSUxUX0lOX1BST0ZJTEVfRlVOQ19FWElUKTogVXNlIGl0LgoJKiBjLWNvbW1vbi5jIChERUZfQlVJTFRJTik6IEFkZCBDT05EIGFyZ3VtZW50LgoJKiB0cmVlLmMgKGxvY2FsX2RlZmluZV9idWlsdGluKTogTmV3LgoJKGJ1aWxkX2NvbW1vbl9idWlsdGluX25vZGVzKTogTmV3LgoKMjAwNS0wMi0wOSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfc3RyaXBfc2lnbl9vcHMpOiBOZXcgZnVuY3Rpb24gdG8gc2ltcGxpZnkgYQoJZmxvYXRpbmcgcG9pbnQgZXhwcmVzc2lvbiBpZ25vcmluZyB0aGUgc2lnbiBvZiB0aGUgcmVzdWx0LgoJKGZvbGQpIDxBQlNfRVhQUj46IFVzZSBpdCB0byBzaW1wbGlmeSBmYWJzKHgpLgoJKGZvbGQpIDxNVUxUX0VYUFI+OiBVc2UgaXQgdG8gc2ltcGxpZnkgeCp4LgoJKiB0cmVlLmggKGZvbGRfc3RyaXBfc2lnbl9vcHMpOiBQcm90b3R5cGUgaGVyZS4KCSogYnVpbHRpbnMuYyAoZm9sZF9idWlsdGluX2NvcHlzaWduKTogVGFrZSBhbiBhZGRpdGlvbmFsIEZOREVDTAoJYXJndW1lbnQuICBVc2UgZm9sZF9zdHJpcF9zaWduX29wcyB0byBzaW1wbGlmeSB0aGUgZmlyc3QgYXJndW1lbnQuCgkoZm9sZF9idWlsdGluX3Bvdyk6ICBVc2UgZm9sZF9zdHJpcF9zaWduX29wcyB0byBzaW1wbGlmeSB0aGUKCWZpcnN0IGFyZ3VtZW50IHdoZW4gdGhlIHNlY29uZCBhcmd1bWVudCBpcyBhbiBldmVuIGludGVnZXIKCWNvbnN0YW50LCBidXQgb25seSB3aXRoIC1mdW5zYWZlX21hdGhfb3B0aW1pemF0aW9ucy4KCShmb2xkX2J1aWx0aW5fMSk6IFVwZGF0ZSBjYWxsIHRvIGZvbGRfYnVpbHRpbl9jb3B5c2lnbi4KCjIwMDUtMDItMDkgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AYWlycy5jb20+CgoJUFIgbWlkZGxlLWVuZC8xOTU4MwoJKiBnaW1wbGUtbG93LmMgKHRyeV9jYXRjaF9tYXlfZmFsbHRocnUpOiBJbiBFSF9GSUxURVJfRVhQUiBjYXNlLAoJanVzdCBjaGVjayB3aGV0aGVyIEVIX0ZJTFRFUl9GQUlMVVJFIGZhbGxzIHRocm91Z2guCgoyMDA1LTAyLTA5ICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoKCSogZ2NjL2hhaWZhLXNjaGVkLmMgKHNjaGVkdWxlX2Jsb2NrKTogTWFrZSBxdWV1ZWQgc2NoZWQgZ3JvdXAKCWluc25zIHJldHVybiB0byByZWFkeSBsaXN0IGluIHRoZSBuZXh0IHR1cm4uCgoyMDA1LTAyLTA5ICBSaWNoYXJkIEd1ZW50aGVyICA8cmd1ZW50aEBnY2MuZ251Lm9yZz4KCglQUiBtaWRkbGUtZW5kLzE5NDAyCgkqIGJ1aWx0aW5zLmRlZjogTmV3IF9fYnVpbHRpbl9wb3dpW2xmXS4KCSogYnVpbHRpbnMuYyAobWF0aGZuX2J1aWx0X2luKTogSGFuZGxlIEJVSUxUX0lOX1BPV0kuCgkoZXhwYW5kX2J1aWx0aW5fcG93aSk6IE5ldyBmdW5jdGlvbi4KCShleHBhbmRfYnVpbHRpbik6IERpc3BhdGNoIHRvIGV4cGFuZF9idWlsdGluX3Bvd2kuCgkqIGxpYmdjYzIuaDogQWRkIHByb3RvdHlwZXMgZm9yIF9fYnVpbHRpbl9wb3dpW2xmXS4KCSogbGliZ2NjMi5jOiBBZGQgX19idWlsdGluX3Bvd2lbbGZdIGltcGxlbWVudGF0aW9uLgoJKiBta2xpYmdjYy5pbjogQWRkIF9fYnVpbHRpbl9wb3dpW2xmXSB0byBsaWIyZnVuY3MuCgkqIG9wdGFicy5oOiBBZGQgcG93aV9vcHRhYi4KCSogb3B0YWJzLmMgKGluaXRfb3B0YWJzKTogSW5pdGlhbGl6ZSBwb3dpX29wdGFiLgoJKiBkb2MvZXh0ZW5kLnRleGk6IERvY3VtZW50IF9fYnVpbHRpbl9wb3dpW2xmXS4KCjIwMDUtMDItMDkgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuaWJtLmNvbT4KCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X3NldF9kdW1wX3NldHRpbmdzKTogQ2hlY2sgdGhhdCBkdW1wX2ZpbGUKCWV4aXN0cy4KCjIwMDUtMDItMDkgIFJpY2hhcmQgR3VlbnRoZXIgIDxyZ3VlbnRoQGdjYy5nbnUub3JnPgoKCVBSIG1pZGRsZS1lbmQvMTk4NTQKCSogZm9sZC1jb25zdC5jICh0cnlfbW92ZV9tdWx0X3RvX2luZGV4KTogUmVtb3ZlIHJlZHVuZGFudAoJdHlwZSBhcmd1bWVudC4gIENyZWF0ZSBBRERSX0VYUFIgd2l0aCBjb3JyZWN0IHR5cGUuCgkoZm9sZCk6IFVwZGF0ZSBjYWxsZXJzIG9mIHRyeV9tb3ZlX211bHRfdG9faW5kZXguICBDb252ZXJ0CglyZXN1bHQgdG8gdGhlIGFwcHJvcHJpYXRlIHR5cGUuCgoyMDA1LTAyLTA5ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiB0YXJnZXQvMTk1OTcKCSogY29uZmlnL2F2ci9hdnIuYyAoZGVmYXVsdF9ydHhfY29zdHMpOiBEZWxldGUuCgkoYXZyX29wZXJhbmRfcnR4X2Nvc3QpOiBOZXcgZnVuY3Rpb24uCgkoYXZyX3J0eF9jb3N0cyk6IENvbXBsZXRlbHkgcmV3cml0ZS4KCjIwMDUtMDItMDggIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCVBSIHRhcmdldC8xOTgwNgoJKiBjb25maWcvY3Jpcy9jcmlzLmMgKGluX2NvZGUpOiBOZXcgdmFyaWFibGUuCgkoY3Jpc19vdXRwdXRfYWRkcl9jb25zdCk6IE5vdyBhIHN0YXRpYyBmdW5jdGlvbiwgYSB3cmFwcGVyIGZvcgoJb3V0cHV0X2FkZHJfY29uc3QuCgkoY3Jpc19hc21fb3V0cHV0X3N5bWJvbF9yZWYpOiBOZXcgZnVuY3Rpb24sIGJyb2tlbiBvdXQgU1lNQk9MX1JFRgoJY2FzZSBmcm9tIG9sZCBjcmlzX291dHB1dF9hZGRyX2NvbnN0LgoJKGNyaXNfYXNtX291dHB1dF9sYWJlbF9yZWYpOiBTaW1pbGFyIGZvciBMQUJFTF9SRUYuCgkoY3Jpc19vdXRwdXRfYWRkcl9jb25zdF9leHRyYSk6IFNpbWlsYXIgZm9yIFVOU1BFQy4KCSogY29uZmlnL2NyaXMvY3Jpcy5oIChPVVRQVVRfQUREUl9DT05TVF9FWFRSQSkKCShBU01fT1VUUFVUX1NZTUJPTF9SRUYsIEFTTV9PVVRQVVRfTEFCRUxfUkVGKTogRGVmaW5lLgoJKiBjb25maWcvY3Jpcy9jcmlzLXByb3Rvcy5oIChjcmlzX291dHB1dF9hZGRyX2NvbnN0KTogUmVtb3ZlCglkZWNsYXJhdGlvbi4KCShjcmlzX2FzbV9vdXRwdXRfc3ltYm9sX3JlZiwgY3Jpc19vdXRwdXRfYWRkcl9jb25zdF9leHRyYSkKCShjcmlzX2FzbV9vdXRwdXRfbGFiZWxfcmVmKTogRGVjbGFyZS4KCjIwMDUtMDItMDggIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJUFIgcHJlcHJvY2Vzc29yLzE5ODAxCgkqIGRvYy9jcHBpbnRlcm5hbHMudGV4aSAoQ29udmVudGlvbnMsIExleGVyLCBGaWxlcyk6IEFkanVzdAoJZmlsZW5hbWVzIHRoYXQgY2hhbmdlZCB3aGVuIGxpYmNwcCB3YXMgbW92ZWQgdG8gdGhlIHRvcGxldmVsLgoKMjAwNS0wMi0wNyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfcmVsYXRpb25hbF9vcGVyYXRpb25fMSk6IEF2b2lkIGNyZWF0aW5nCgl6ZXJvIGV4dGVuc2lvbnMgb2YgQkltb2RlIG9wZXJhbmRzLiAgQ2FsbCBsb3dwYXJ0X3N1YnJlZyBpbnN0ZWFkCglvZiBnZW5fbG93cGFydF9jb21tb24gYW5kIGdlbl9sb3dwYXJ0X1NVQlJFRy4KCjIwMDUtMDItMDcgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCVBSIGFkYS8xOTQ4OQoJKiBsaWJhZGEtbWsuaW46IFVzZSBjY19mb3JfY3Jvc3NfZ25hdHRvb2xzLCBub3QgY2Nfc2V0X2J5X2NvbmZpZ3VyZS4KCSogY29uZmlndXJlLmFjOiBTZXQgY2NfZm9yX2Nyb3NzX2duYXR0b29scy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNS0wMi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiB0YXJnZXQvMTk4MDMKCSogcHJlZGljdC5jIChQUk9CX1ZFUllfVU5MSUtFTFkpOiBVc2UgMSUgaW5zdGVhZCBvZiAxMCUuCgoyMDA1LTAyLTA3ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIGRlYnVnLzE5MzI3CgkqIGRieG91dC5jIChkYnhvdXRfc3ltYm9sKSA8RlVOQ1RJT05fREVDTD46IFNraXAgaW5saW5lIGluc3RhbmNlCglvZiBuZXN0ZWQgZnVuY3Rpb25zLgoKMjAwNS0wMi0wNyAgSm9uYXRoYW4gV2FrZWx5ICA8cmVkaUBnY2MuZ251Lm9yZz4KCgkqIGRvYy9leHRlbmQudGV4aTogRG9jdW1lbnQgZGVwcmVjYXRlZCBleHRlbnNpb25zIGFsbG93aW5nCglzdGF0aWMgZmxvYXRpbmctcG9pbnQgbWVtYmVycyB0byBoYXZlIGluaXRpYWxpemVycyBhbmQgYWxsb3dpbmcKCWZsb2F0aW5nLXBvaW50IGxpdGVyYWxzIGluIGludGVncmFsIGNvbnN0YW50IGV4cHJlc3Npb25zLgoKMjAwNS0wMi0wNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNmZ2NsZWFudXAuYywgZGYuaCwgZGlhZ25vc3RpYy5jLCBydGwuYywgdHJlZS12ZWN0b3JpemVyLmgsCgljb25maWcvZGFyd2luNy5oLCBjb25maWcvbWlwcy9taXBzLmMsCgljb25maWcvcnM2MDAwL2FsdGl2ZWMubWQsIGNvbmZpZy9yczYwMDAvZGFyd2luLXRyYW1wLmFzbToKCVVwZGF0ZSBjb3B5cmlnaHQuCgoJKiBjc2UuYzogVXBkYXRlIGNvbW1lbnRzLgoKMjAwNS0wMi0wNyAgUmljaGFyZCBHdWVudGhlciAgPHJndWVudGhAZ2NjLmdudS5vcmc+CgoJUFIgbWlkZGxlLWVuZC8xOTc3NQoJKiBidWlsdGlucy5jIChmb2xkX2J1aWx0aW5fc3FydCk6IFRyYW5zZm9ybQoJc3FydChwb3coeCx5KSkgdG8gcG93KGZhYnMoeCkseSowLjUpLCBub3QKCXBvdyh4LHkqMC41KS4KCjIwMDUtMDItMDcgIExlZWhvZCBCYXJ1Y2ggIDxsZWVob2RAaWwuaWJtLmNvbT4KCSAgICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJKiBkb2MvaW52b2tlLnRleGkgKGZ0cmVlLXZlY3Rvcml6ZXItdmVyYm9zZSk6IE5ldy4KCSogb3B0cy5jIChPUFRfZnRyZWVfdmVjdG9yaXplcl92ZXJib3NlXyk6IE5ldyBjYXNlIGZvciBzd2l0Y2guCgkqIGNvbW1vbi5vcHQgKGZ0cmVlLXZlY3Rvcml6ZXItdmVyYm9zZSk6IE5ldyBGbGFnIGZvciB0aGUgdmVjdG9yaXplcgoJd2FzIGFkZGVkLgoJKiB0cmVlLmggKHZlY3Rfc2V0X3ZlcmJvc2l0eV9sZXZlbCk6IE5ldyBleHRlcm4gZnVuY3Rpb24gZGVjbGFyYXRpb24KCWFkZGVkLgoJKiB0cmVlLXZlY3Rvcml6ZXIuaCAodmVyYm9zaXR5X2xldmVscyk6IE5ldyBlbnVtIHR5cGUuCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X2RlYnVnX3N0YXRzKTogRnVuY3Rpb24gcmVtb3ZlZC4KCSh2ZWN0X2RlYnVnX2RldGFpbHMpOiBMaWtld2lzZS4KCSh2ZWN0X3ZlcmJvc2l0eV9sZXZlbCk6IEdsb2JhbCB2YXJpYWJsZSB3YXMgZGVmaW5lZCBhbmQgaW5pdGlhbGl6ZWQuCgkodmVjdF9kdW1wKTogR2xvYmFsIHZhcmlhYmxlIGRlZmluaXRpb24uCgkodmVjdF9wcmludF9kdW1wX2luZm8pOiBOZXcgZnVuY3Rpb24uCgkodmVjdF9zZXRfZHVtcF9zZXR0aW5ncyk6IE5ldyBmdW5jdGlvbi4KCSh2ZWN0X3NldF92ZXJib3NpdHlfbGV2ZWwpOiBOZXcgZnVuY3Rpb24uCgkodmVjdG9yaXplX2xvb3BzKTogQWRkIGNhbGwgdG8gdmVjdF9zZXRfZHVtcF9zZXR0aW5ncy4KCgkoc2xwZWVsX21ha2VfbG9vcF9pdGVyYXRlX250aW1lcyk6IER1bXAgY29uZGl0aW9uIHdhcyBjaGFuZ2VkLgoJKHNscGVlbF90cmVlX2R1cGxpY2F0ZV9sb29wX3RvX2VkZ2VfY2ZnKTogTGlrZXdpc2UuCgkoc2xwZWVsX3RyZWVfcGVlbF9sb29wX3RvX2VkZ2UpOiBMaWtld2lzZS4KCgkodmVjdF9hbmFseXplX29mZnNldF9leHByKTogQ2FsbCB0byB2ZWN0X3ByaW50X2R1bXBfaW5mbyB3aXRoCglhcHByb3ByaWF0ZSB2ZXJib3NpdHkgbGV2ZWwgaW5zdGVhZCBvZiBjYWxsIHRvIHZlY3RfZGVidWdfZGV0YWlscwoJb3IgdmVjdF9kZWJ1Z19zdGF0cy4KCSh2ZWN0X2dldF9iYXNlX2FuZF9vZmZzZXQpOgoJKHZlY3RfY3JlYXRlX2FkZHJfYmFzZV9mb3JfdmVjdG9yX3JlZik6CgkoZ2V0X3ZlY3R5cGVfZm9yX3NjYWxhcl90eXBlKToKCSh2ZWN0X2NyZWF0ZV9kYXRhX3JlZl9wdHIpOgoJKHZlY3RfaW5pdF92ZWN0b3IpOgoJKHZlY3RfZ2V0X3ZlY19kZWZfZm9yX29wZXJhbmQpOgoJKHZlY3RfZmluaXNoX3N0bXRfZ2VuZXJhdGlvbik6CgkodmVjdG9yaXphYmxlX2Fzc2lnbm1lbnQpOgoJKHZlY3Rvcml6YWJsZV9vcGVyYXRpb24pOgoJKHZlY3Rvcml6YWJsZV9zdG9yZSk6CgkodmVjdG9yaXphYmxlX2xvYWQpOgoJKHZlY3RfdHJhbnNmb3JtX3N0bXQpOgoJKHZlY3RfdXBkYXRlX2l2c19hZnRlcl92ZWN0b3JpemVyKToKCSh2ZWN0X2RvX3BlZWxpbmdfZm9yX2xvb3BfYm91bmQpOgoJKHZlY3RfdXBkYXRlX2luaXRzX29mX2Rycyk6CgkodmVjdF9kb19wZWVsaW5nX2Zvcl9hbGlnbm1lbnQpOgoJKHZlY3RfdHJhbnNmb3JtX2xvb3ApOgoJKHZlY3RfaXNfc2ltcGxlX3VzZSk6CgkodmVjdF9hbmFseXplX29wZXJhdGlvbnMpOgoJKHZlY3RfaXNfc2ltcGxlX2l2X2V2b2x1dGlvbik6CgkodmVjdF9hbmFseXplX3NjYWxhcl9jeWNsZXMpOgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZl9kZXBlbmRlbmNlKToKCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZfZGVwZW5kZW5jZXMpOgoJKHZlY3RfY29tcHV0ZV9kYXRhX3JlZl9hbGlnbm1lbnQpOgoJKHZlY3RfZW5oYW5jZV9kYXRhX3JlZnNfYWxpZ25tZW50KToKCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZzX2FsaWdubWVudCk6CgkodmVjdF9hbmFseXplX2RhdGFfcmVmX2FjY2Vzcyk6CgkodmVjdF9hbmFseXplX2RhdGFfcmVmX2FjY2Vzc2VzKToKCSh2ZWN0X2FuYWx5emVfcG9pbnRlcl9yZWZfYWNjZXNzKToKCSh2ZWN0X2dldF9tZW10YWdfYW5kX2RyKToKCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZzKToKCSh2ZWN0X21hcmtfcmVsZXZhbnQpOgoJKHZlY3Rfc3RtdF9yZWxldmFudF9wKToKCSh2ZWN0X21hcmtfc3RtdHNfdG9fYmVfdmVjdG9yaXplZCk6CgkodmVjdF9jYW5fYWR2YW5jZV9pdnNfcCk6CgkodmVjdF9nZXRfbG9vcF9uaXRlcnMpOgoJKHZlY3RfYW5hbHl6ZV9sb29wX2Zvcm0pOgoJKHZlY3RfYW5hbHl6ZV9sb29wKToKCSh2ZWN0b3JpemVfbG9vcHMpOiBMaWtld2lzZS4KCgkodmVjdF9kb19wZWVsaW5nX2Zvcl9sb29wX2JvdW5kKTogRHVtcCBmb3JtYXQgc2xpZ2h0bHkgY2hhbmdlZC4KCSh2ZWN0X3VwZGF0ZV9pbml0c19vZl9kcnMpOgoJKHZlY3RfZG9fcGVlbGluZ19mb3JfYWxpZ25tZW50KToKCSh2ZWN0X3RyYW5zZm9ybV9sb29wKToKCSh2ZWN0X2FuYWx5emVfb3BlcmF0aW9ucyk6CgkodmVjdF9hbmFseXplX3NjYWxhcl9jeWNsZXMpOgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZl9kZXBlbmRlbmNlcyk6CgkodmVjdF9hbmFseXplX2RhdGFfcmVmc19hbGlnbm1lbnQpOgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZl9hY2Nlc3Nlcyk6CgkodmVjdF9hbmFseXplX2RhdGFfcmVmcyk6CgkodmVjdF9tYXJrX3N0bXRzX3RvX2JlX3ZlY3Rvcml6ZWQpOgoJKHZlY3RfZ2V0X2xvb3Bfbml0ZXJzKToKCSh2ZWN0X2FuYWx5emVfbG9vcF9mb3JtKToKCSh2ZWN0X2FuYWx5emVfbG9vcCk6IExpa2V3aXNlLgoJKHZlY3RfbWFya19zdG10c190b19iZV92ZWN0b3JpemVkKTogQWRkIGNhbGwgdG8gcHJpbnRfZ2VuZXJpY19leHByLgoKMjAwNS0wMi0wNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCVBSIGJvb3RzdHJhcC8xOTc5NgoJUmV2ZXJ0OgoJMjAwNS0wMS0yNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvbWlwcy9pcmlzNi5oIChFTkRGSUxFX1NQRUMpOiBEb24ndCBsaW5rIGluIGlyaXgtY3NyLm8gaWYKCWVpdGhlciAtZmZhc3QtbWF0aCBvciAtZnVuc2FmZS1tYXRoLW9wdGltaXphdGlvbnMgaXMgaW4gdXNlLgoKCTIwMDUtMDEtMjQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCSogY29uZmlnL21pcHMvaXJpeC1jc3IuYzogTmV3IGZpbGUuCgkqIGNvbmZpZy9taXBzL3QtaXJpczYgKGlyaXgtY3NyLm8pOiBOZXcgcnVsZSB0byBidWlsZCBpdC4KCShFWFRSQV9NVUxUSUxJQl9QQVJUUyk6IEFkZCBpcml4LWNzci5vLgoJKiBjb25maWcvbWlwcy9pcmlzNi5oIChFTkRGSUxFX1NQRUMpOiBJbmNsdWRlIGl0IGluIG4zMiBhbmQgbjY0CglleGVjdXRhYmxlcy4KCjIwMDUtMDItMDcgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL21uMTAzMDAvbGludXguaCAoTElCX1NQRUMsIFNUQVJURklMRV9TUEVDKTogUmVtb3ZlCglyZWR1bmRhbnQsIGluY29ycmVjdCBkZWZpbml0aW9ucy4KCgkqIGNvbmZpZy9mcnYvZnJ2Lm1kICgidGxzX2luZGlyZWN0X2NhbGwiKTogVHVybiBpbnRvIGxpYmNhbGwtbGlrZQoJZXhwYW5kLgoJKCIqdGxzX2luZGlyZWN0X2NhbGwiKTogTmV3LCByZWZlcmVuY2UgaGFyZCByZWdzIGRpcmVjdGx5LgoJKiBjb25maWcvZnJ2L2Zydi5jIChnZW5faW5saW5lZF90bHNfcGx0KTogQWRqdXN0LgoKMjAwNS0wMi0wNyAgUmFsZiBDb3JzZXBpdXMgIDxyYWxmLmNvcnNlcGl1c0BydGVtcy5vcmc+CgoJKiBjb25maWcvYXJtL3J0ZW1zLWVsZi5oIChTVUJUQVJHRVRfRVhUUkFfQVNNX1NQRUMpOgoJTGV0ICEtbWhhcmQtZmxvYXQgIS1tc29mdC1mbG9hdCBpbXBseSAtbWZwdT1zb2Z0ZnBhLgoKMjAwNS0wMi0wNiAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xOTgwMAoJKiBzaW1wbGlmeV9ydHguYyAoc2ltcGxpZnlfcmVsYXRpb25hbF9vcGVyYXRpb25fMSk6IEV4cGxpY2l0bHkKCWNhbGwgZ2VuX2xvd3BhcnRfY29tbW9uIGFuZCBnZW5fbG93cGFydF9TVUJSRUcgaW5zdGVhZCBvZiBjYWxsaW5nCglnZW5fbG93cGFydC4KCjIwMDUtMDItMDcgIFJhbGYgQ29yc2VwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCSogY29uZmlnL202OGsvdC1ydGVtcyAoTVVMVElMSUJfTUFUQ0hFUyk6IExldCBtNTI4eCBtYXRjaCBtNTIwMC4KCjIwMDUtMDItMDcgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIG90aGVyLzE3MTM1CgkqIGRvYy9pbnZva2UudGV4aTogQ29ycmVjdCBkb2N1bWVudGF0aW9uIG9mIC1mcmVvcmRlci1mdW5jdGlvbnMuCgoyMDA1LTAyLTA2ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBvdGhlci8xNDQwMgoJKiBkb2MvaW52b2tlLnRleGk6IERvbid0IG1lbnRpb24gZ2NjYnVnLgoKMjAwNS0wMi0wNiAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgkgICAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgkgICAgUGFvbG8gQm9uemluaSAgPHBhb2xvLmJvbnppbmlAbHUudW5pc2kuY2g+CgoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfcmVsYXRpb25hbF9vcGVyYXRpb25fMSk6IFNpbXBsaWZ5CgkobmU6U0kgKHplcm9fZXh0cmFjdDpTSSBGT08gKGNvbnN0X2ludCAxKSBCQVIpIChjb25zdF9pbnQgMCkpCglpbnRvIGp1c3QgKHplcm9fZXh0cmFjdDpTSSBGT08gKGNvbnN0X2ludCAxKSBCQVIpLgoKMjAwNS0wMi0wNiAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkb2MvY3BwLnRleGk6IEluY2x1ZGUgZ2NjLWNvbW1vbi50ZXhpLiAgRG9uJ3QgZGVmaW5lIGdjY3RhYm9wdAoJbWFjcm8gbG9jYWxseS4gIERvbid0IGdpdmUgbGFzdCByZXZpc2lvbiBkYXRlLiAgVXNlIEdDQyB2ZXJzaW9uCgludW1iZXIgZnJvbSBnY2MtY29tbW9uLnRleGkuCgkqIGRvYy9jcHBpbnRlcm5hbHMudGV4aTogSW5jbHVkZSBnY2MtY29tbW9uLnRleGkuICBEb24ndCBnaXZlIGxhc3QKCXJldmlzaW9uIGRhdGUuICBVc2UgR0NDIHZlcnNpb24gbnVtYmVyIGZyb20gZ2NjLWNvbW1vbi50ZXhpLgoJRGVzY3JpYmUgYmVpbmcgYSBsaWJyYXJ5IGFzIGN1cnJlbnQgc3RhdGUgcmF0aGVyIHRoYW4gYXMgMy54CgloaXN0b3J5LgoJKiBkb2MvZ2NjLnRleGk6IFJlbW92ZSBsYXN0IHVwZGF0ZSBkYXRlLgoJKiBkb2MvZ2NjaW50LnRleGk6IExpa2V3aXNlLiAgVXBkYXRlIGNvcHlyaWdodCBkYXRlcy4KCSogZG9jL2luc3RhbGwudGV4aTogVXBkYXRlIGNvcHlyaWdodCBkYXRlcy4KCjIwMDUtMDItMDYgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIG90aGVyLzc1NDkKCSogZG9jL2ludm9rZS50ZXhpOiBNZW50aW9uIGZvciBlYWNoIG9wdGlvbiBpbmNsdWRlZCBpbiAtV2FsbCB0aGF0CglpdCBpcyBpbmNsdWRlZCBpbiAtV2FsbC4KCSogZG9jL2djYy50ZXhpOiBVcGRhdGUgY29weXJpZ2h0IGFuZCBsYXN0IG1vZGlmaWNhdGlvbiBkYXRlLgoKMjAwNS0wMi0wNiAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMgKHJld3JpdGVfdXNlX25vbmxpbmVhcl9leHByKTogRG8gbm90IGFkZAoJdW5uZWNlc3NhcnkgY2FzdCB0byBvcmlnaW5hbCBpbmR1Y3Rpb24gdmFyaWFibGUgaW5jcmVtZW50cy4KCjIwMDUtMDItMDYgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTgyMTkKCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoZ2V0X2NvbXB1dGF0aW9uX2F0KTogUHJvZHVjZSBjb21wdXRhdGlvbnMKCWluIGRpc3RyaWJ1dGVkIGZvcm0uCgoyMDA1LTAyLTA2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBleHBtZWQuYyAoc3RvcmVfYml0X2ZpZWxkKTogTWFrZSB0aGUgU1VCUkVHIGNvZGUgYWRqdXN0IGJpdG51bS4KCVNldCBiaXRwb3MgYW5kIG9mZnNldCBsYXRlciBpbiB0aGUgZnVuY3Rpb24uICBEbyBub3RoaW5nIGlmIHRoZQoJdGFyZ2V0IGlzIGEgcmVnaXN0ZXIgYW5kIGlmIHRoZSBiaXRmaWVsZCBsaWVzIGNvbXBsZXRlbHkgb3V0c2lkZQoJdGhhdCByZWdpc3Rlci4KCShleHRyYWN0X2JpdF9maWVsZCk6IE1ha2UgdGhlIHNhbWUgU1VCUkVHLCBiaXRwb3MgYW5kIG9mZnNldCBjaGFuZ2VzCgloZXJlLiAgUmV0dXJuIGFuIHVuaW5pdGlhbGlzZWQgcmVnaXN0ZXIgaWYgdGhlIHNvdXJjZSB2YWx1ZSBpcyBzdG9yZWQKCWluIGEgcmVnaXN0ZXIgYW5kIHRoZSBiaXRmaWVsZCBsaWVzIGNvbXBsZXRlbHkgb3V0c2lkZSB0aGF0IHJlZ2lzdGVyLgoKMjAwNS0wMi0wNiAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogZGYuYyAoZGZfaW5zbl9yZWZzX3JlY29yZCk6IFVzZSBYRVhQIHRvIGdldCB0aGUgb3BlcmFuZCBvZiBhIFVTRSwKCW5vdCBTRVRfREVTVC4KCjIwMDUtMDItMDYgIE1hcmNpbiBEYWxlY2tpICA8bWFydGluQGRhbGVja2kuZGU+CgoJKiBkaWFnbm9zdGljLmMgKGRlZmF1bHRfZGlhZ25vc3RpY19maW5hbGl6ZXIpOiBGaXggdXNlIG9mIGF0dHJpYnV0ZS4KCjIwMDUtMDItMDYgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnLmdjYyAoKi0qLWRhcndpbiopOiBTZXBhcmF0ZSBkYXJ3aW43IGFuZCBkYXJ3aW44IGNvbmZpZ3MuCgkqIGNvbmZpZy9kYXJ3aW44Lmg6IE5ldy4KCSogY29uZmlnL2RhcndpbjcuaDogVXBkYXRlIGNvbW1lbnQuCgoyMDA1LTAyLTAzICBMZWVob2QgQmFydWNoICA8bGVlaG9kQGlsLmlibS5jb20+CgkgICAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmggKExPQyk6IE5ldyB0eXBlLgoJKFVOS05PV05fTE9DLCBFWFBSX0xPQywgTE9DX0ZJTEUsIExPQ19MSU5FKTogTmV3IG1hY3Jvcy4KCShsb29wX2xpbmVfbnVtYmVyKTogTmV3IGZpZWxkIGluIHN0cnVjdCBfbG9vcF92ZWNfaW5mby4KCShMT09QX1ZJTkZPX0xPQywgTE9PUF9MT0MpOiBOZXcgbWFjcm9zLgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKGlucHV0LmgpOiBJbmNsdWRlZC4KCShmaW5kX2xvb3BfbG9jYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkodmVjdF9kZWJ1Z19zdGF0cyk6IEFyZ3VtZW50IGNoYW5nZWQgZnJvbSBsb29wIHRvIExPQy4gQ29tcHV0YXRpb24gb2YKCWxvb3AgbGluZSBudW1iZXIgcmVtb3ZlZC4KCSh2ZWN0X2RlYnVnX2RldGFpbHMpOiBMaWtld2lzZS4KCShuZXdfbG9vcF92ZWNfaW5mbyk6IEluaXRpYWxpemUgbmV3IGZpZWxkIExPT1BfVklORk9fTE9DLgoKCShzbHBlZWxfbWFrZV9sb29wX2l0ZXJhdGVfbnRpbWVzKTogQ2FsbCBmaW5kX2xvb3BfbG9jYXRpb24uIEFyZ3VtZW50IGluCgljYWxsIHRvIHZlY3RfZGVidWdfZGV0YWlscy9zdGF0cyBjaGFuZ2VkIGZyb20gbG9vcCB0byBsb29wX2xvYy4KCShzbHBlZWxfdHJlZV9kdXBsaWNhdGVfbG9vcF90b19lZGdlX2NmZyk6IExpa2V3aXNlLgoJKHNscGVlbF90cmVlX3BlZWxfbG9vcF90b19lZGdlKTogTGlrZXdpc2UuCgoJKHZlY3RfYW5hbHl6ZV9vZmZzZXRfZXhwcik6IEFyZ3VtZW50IGluIGNhbGwgdG8gdmVjdF9kZWJ1Z19kZXRhaWxzL3N0YXRzCgljaGFuZ2VkIGZyb20gTlVMTCB0byBVTktOT1dOX0xPQy4KCSh2ZWN0X2dldF9iYXNlX2FuZF9vZmZzZXQpOgoJKHZlY3RfY3JlYXRlX2FkZHJfYmFzZV9mb3JfdmVjdG9yX3JlZik6CgkoZ2V0X3ZlY3R5cGVfZm9yX3NjYWxhcl90eXBlKToKCSh2ZWN0X2NyZWF0ZV9kYXRhX3JlZl9wdHIpOgoJKHZlY3RfaW5pdF92ZWN0b3IpOgoJKHZlY3RfZ2V0X3ZlY19kZWZfZm9yX29wZXJhbmQpOgoJKHZlY3RfZmluaXNoX3N0bXRfZ2VuZXJhdGlvbik6CgkodmVjdG9yaXphYmxlX2Fzc2lnbm1lbnQpOgoJKHZlY3Rvcml6YWJsZV9vcGVyYXRpb24pOgoJKHZlY3Rvcml6YWJsZV9zdG9yZSk6CgkodmVjdG9yaXphYmxlX2xvYWQpOgoJKHZlY3RfdHJhbnNmb3JtX3N0bXQpOgoJKHZlY3RfdXBkYXRlX2l2c19hZnRlcl92ZWN0b3JpemVyKToKCSh2ZWN0X2RvX3BlZWxpbmdfZm9yX2xvb3BfYm91bmQpOgoJKHZlY3RfZG9fcGVlbGluZ19mb3JfYWxpZ25tZW50KToKCSh2ZWN0X3RyYW5zZm9ybV9sb29wKToKCSh2ZWN0X2lzX3NpbXBsZV91c2UpOgoJKHZlY3RfYW5hbHl6ZV9vcGVyYXRpb25zKToKCSh2ZWN0X2lzX3NpbXBsZV9pdl9ldm9sdXRpb24pOgoJKHZlY3RfYW5hbHl6ZV9zY2FsYXJfY3ljbGVzKToKCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZfZGVwZW5kZW5jZXMpOgoJKHZlY3RfY29tcHV0ZV9kYXRhX3JlZl9hbGlnbm1lbnQpOgoJKHZlY3RfZW5oYW5jZV9kYXRhX3JlZnNfYWxpZ25tZW50KToKCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZfYWNjZXNzKToKCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZfYWNjZXNzZXMpOgoJKHZlY3RfYW5hbHl6ZV9wb2ludGVyX3JlZl9hY2Nlc3MpOgoJKHZlY3RfZ2V0X21lbXRhZ19hbmRfZHIpOgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZnMpOgoJKHZlY3RfbWFya19yZWxldmFudCk6CgkodmVjdF9zdG10X3JlbGV2YW50X3ApOgoJKHZlY3RfbWFya19zdG10c190b19iZV92ZWN0b3JpemVkKToKCSh2ZWN0X2Nhbl9hZHZhbmNlX2l2c19wKToKCSh2ZWN0X2dldF9sb29wX25pdGVycyk6CgkodmVjdF9hbmFseXplX2xvb3ApOgoJKHZlY3Rvcml6ZV9sb29wcyk6IExpa2V3aXNlLgoKCSh2ZWN0b3JpemFibGVfbG9hZCk6IEFyZ3VtZW50IGluIGNhbGwgdG8gdmVjdF9kZWJ1Z19kZXRhaWxzL3N0YXRzCgljaGFuZ2VkIGZyb20gbG9vcCB0byBMT09QX0xPQyAobG9vcF92aW5mbykuCgkodmVjdF90cmFuc2Zvcm1fbG9vcCk6CgkodmVjdF9hbmFseXplX29wZXJhdGlvbnMpOgoJKHZlY3RfYW5hbHl6ZV9zY2FsYXJfY3ljbGVzKToKCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZfZGVwZW5kZW5jZSk6CgkodmVjdF9lbmhhbmNlX2RhdGFfcmVmc19hbGlnbm1lbnQpOgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZl9hY2Nlc3Nlcyk6CgkodmVjdF9hbmFseXplX3BvaW50ZXJfcmVmX2FjY2Vzcyk6CgkodmVjdF9hbmFseXplX2RhdGFfcmVmcyk6CgkodmVjdF9hbmFseXplX2xvb3ApOiBMaWtld2lzZS4KCgkodmVjdF9hbmFseXplX2xvb3BfZm9ybSk6IEFyZ3VtZW50IGluIGNhbGwgdG8gdmVjdF9kZWJ1Z19kZXRhaWxzL3N0YXRzCgljaGFuZ2VkIGZyb20gbG9vcCB0byBsb29wX2xvYy4KCgkodmVjdF9lbmhhbmNlX2RhdGFfcmVmc19hbGlnbm1lbnQpOiBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZSBsb29wLgoKMjAwNS0wMi0wMyAgTGVlaG9kIEJhcnVjaCAgPGxlZWhvZEBpbC5pYm0uY29tPgoJICAgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuaWJtLmNvbT4KCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X2FuYWx5emVfZGF0YV9yZWZfZGVwZW5kZW5jZSk6IEZ1bmN0aW9uCglkZWNsYXJhdGlvbiBhZGRlZC4KCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZfZGVwZW5kZW5jZXMpOiBMaWtld2lzZS4KCgkodmVjdF9pc19zaW1wbGVfdXNlKTogQXJndW1lbnQgY2hhbmdlZCBmcm9tIGxvb3Agc3RydWN0dXJlIHRvCglsb29wX3ZlY3RfaW5mbyBzdHJ1Y3R1cmUuCgkodmVjdF9jYW5fYWR2YW5jZV9pdnNfcCk6IExpa2V3aXNlLgoJKHZlY3RfY3JlYXRlX2luZGV4X2Zvcl92ZWN0b3JfcmVmKTogTGlrZXdpc2UuCgkodmVjdF91cGRhdGVfaXZzX2FmdGVyX3ZlY3Rvcml6ZXIpOiBMaWtld2lzZS4KCShuZXdfc3RtdF92ZWNfaW5mbyk6IExpa2V3aXNlLgoKCShuZXdfbG9vcF92ZWNfaW5mbyk6IFNlY29uZCBhcmd1bWVudCBpbiBjYWxsIHRvIG5ld19zdG10X3ZlY19pbmZvIHdhcwoJY2hhbmdlZCBmcm9tIGxvb3AgdG8gbG9vcF92aW5mby4KCSh2ZWN0X2NyZWF0ZV9kYXRhX3JlZl9wdHIpOiBGaXJzdCBhcmd1bWVudCBpbiBjYWxsIHRvCgl2ZWN0X2NyZWF0ZV9pbmRleF9mb3JfdmVjdG9yX3JlZiB3YXMgY2hhbmdlZCBmcm9tIGxvb3AgdG8gbG9vcF92aW5mby4KCSh2ZWN0b3JpemFibGVfYXNzaWdubWVudCk6IFNlY29uZCBhcmd1bWVudCBpbiBjYWxsIHRvIHZlY3RfaXNfc2ltcGxlX3VzZQoJd2FzIGNoYW5nZWQgZnJvbSBsb29wIHRvIGxvb3BfdmluZm8uCgkodmVjdG9yaXphYmxlX29wZXJhdGlvbik6IExpa2V3aXNlLgoJKHZlY3Rvcml6YWJsZV9zdG9yZSk6IExpa2V3aXNlLgoJKHZlY3RfbWFya19zdG10c190b19iZV92ZWN0b3JpemVkKTogTGlrZXdpc2UuCgkodmVjdF9kb19wZWVsaW5nX2Zvcl9sb29wX2JvdW5kKTogRmlyc3QgYXJndW1lbnQgaW4gY2FsbCB0bwoJdmVjdF91cGRhdGVfaXZzX2FmdGVyX3ZlY3Rvcml6ZXIgd2FzIGNoYW5nZWQgZnJvbSBsb29wIHRvIGxvb3BfdmluZm8uCgkodmVjdF9hbmFseXplX29wZXJhdGlvbnMpOiBBcmd1bWVudCBpbiBjYWxsIHRvIHZlY3RfY2FuX2FkdmFuY2VfaXZzX3AKCXdhcyBjaGFuZ2VkIGZyb20gbG9vcCB0byBsb29wX3ZpbmZvLgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZl9kZXBlbmRlbmNlcyk6IFRoaXJkIGFyZ3VtZW50IGluIGNhbGwgdG8KCXZlY3RfYW5hbHl6ZV9kYXRhX3JlZl9kZXBlbmRlbmNlIHdhcyBjaGFuZ2VkIGZyb20gbG9vcCB0byBsb29wX3ZpbmZvLgoKCSh2ZWN0X2NyZWF0ZV9pbmRleF9mb3JfdmVjdG9yX3JlZik6IEdldCB0aGUgbG9vcCBmcm9tIGxvb3BfdmluZm8uCgkodmVjdF9jcmVhdGVfZGF0YV9yZWZfcHRyKTogTGlrZXdpc2UuCgkodmVjdF9pbml0X3ZlY3Rvcik6IExpa2V3aXNlLgoJKHZlY3RfZ2V0X3ZlY19kZWZfZm9yX29wZXJhbmQpOiBMaWtld2lzZS4KCSh2ZWN0b3JpemFibGVfYXNzaWdubWVudCk6IExpa2V3aXNlLgoJKHZlY3Rvcml6YWJsZV9vcGVyYXRpb24pOiBMaWtld2lzZS4KCSh2ZWN0b3JpemFibGVfc3RvcmUpOiBMaWtld2lzZS4KCSh2ZWN0b3JpemFibGVfbG9hZCk6IExpa2V3aXNlLgoJKHZlY3RfdXBkYXRlX2l2c19hZnRlcl92ZWN0b3JpemVyKTogTGlrZXdpc2UuCgkodmVjdF9pc19zaW1wbGVfdXNlKTogTGlrZXdpc2UuCgkodmVjdF9hbmFseXplX2RhdGFfcmVmX2RlcGVuZGVuY2UpOiBMaWtld2lzZS4KCSh2ZWN0X2FuYWx5emVfcG9pbnRlcl9yZWZfYWNjZXNzKTogTGlrZXdpc2UuCgkodmVjdF9jYW5fYWR2YW5jZV9pdnNfcCk6IExpa2V3aXNlLgoKCSogdHJlZS12ZWN0b3JpemVyLmg6IChfbG9vcF92ZWNfaW5mbyk6IERlZmluaXRpb24gYW5kIG1hY3JvcyBtb3ZlZAoJYmVmb3JlIF9zdG10X3ZlY19pbmZvLgoJKF9zdG10X3ZlY19pbmZvKTogTG9vcCBmaWVsZCByZXBsYWNlZCBieSBsb29wX3ZlY19pbmZvLgoJKFNUTVRfVklORk9fTE9PUCk6IFJlcGxhY2VkIHdpdGggU1RNVF9WSU5GT19MT09QX1ZJTkZPLgoJKG5ld19zdG10X3ZlY19pbmZvKTogQXJndW1lbnQgY2hhbmdlZCBmcm9tIGxvb3Agc3RydWN0dXJlIHRvCglsb29wX3ZlY3RfaW5mbyBzdHJ1Y3R1cmUKCgkodmVjdF9hbmFseXplX2RhdGFfcmVmX2RlcGVuZGVuY2VzKTogVW5uZWNlc3NhcnkgbGluZSB3YXMgcmVtb3ZlZC4KCSh2ZWN0X2FuYWx5emVfb2Zmc2V0X2V4cHIpOiBBdm9pZCA4MCBjb2x1bW5zIG92ZXJmbG93LgoJKHZlY3RfY3JlYXRlX2FkZHJfYmFzZV9mb3JfdmVjdG9yX3JlZik6IExpa2V3aXNlLgoJKHZlY3RfYW5hbHl6ZV9wb2ludGVyX3JlZl9hY2Nlc3MpOiBMaWtld2lzZS4KCjIwMDUtMDItMDMgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRyZWUtb3B0LzE5NzY4CgkqIHRyZWUtc3NhLWRzZS5jIChmaXhfcGhpX3VzZXMpOiBVcGRhdGUgdGhlIG9jY3VycyBpbiBhYm5vcm1hbAoJcGhpIGZsYWcgaWYgdGhlIHBoaSBpcyBhYm5vcm1hbC4KCjIwMDUtMDItMDMgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRyZWUtb3B0LzE5NzM2CgkqIHRyZWUtc3NhLmMgKHJlcGxhY2VfaW1tZWRpYXRlX3VzZXMpOiBVcGRhdGUgdGhlIGltbWVkaWF0ZV91c2VzCglpbmZvcm1hdGlvbiBmb3IgdGhlIG5ldyBzdGF0ZW1lbnQuCgoyMDA1LTAyLTAzICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBkcml2ZXIvMTkxMTcKCSogZ2NjLmMgKG1haW4pOiBJbmNsdWRlIHRoZSB0YXJnZXQgaW4gLXYgb3V0cHV0LgoKMjAwNS0wMi0wMyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb21iaW5lLmMgKHNpbXBsaWZ5X2NvbXBhcmlzb24sIGNhc2UgU0lHTl9FWFRFTkQsIFpFUk9fRVhURU5EKToKCURvIG5vdCBkcm9wIHRoZSBleHRlbmQgaWYgd2UnZCBoYXZlIHRvIGFkZCBhIHBhcmFkb3hpY2FsIHN1YnJlZwoJbGF0ZXIuICBJbmNsdWRlIG9wdGFicy5oIGFuZCBpbnNuLWNvZGVzLmguCgkqIE1ha2VmaWxlLmluIChjb21iaW5lLm8pOiBEZXBlbmQgb24gJChPUFRBQlNfSCkuCgoyMDA1LTAyLTAyICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE5NDA1CgkqIHJlYWwuaCAoUkVBTF9NT0RFX0ZPUk1BVF9DT01QT1NJVEVfUCk6IE5ldyBtYWNyby4KCSogZm9sZC1jb25zdC5jIChjb25zdF9iaW5vcCk6IEF2b2lkIGNvbnN0YW50IGZvbGRpbmcgZmxvYXRpbmcKCXBvaW50IG9wZXJhdGlvbnMgaW4gbW9kZXMgdGhhdCB1c2UgY29tcG9zaXRlIHJlcHJlc2VudGF0aW9ucy4KCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X2JpbmFyeV9vcGVyYXRpb24pOiBMaWtld2lzZS4KCjIwMDUtMDItMDIgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChhbHRpdmVjX2RzdCk6IE1ha2UgdGhlIGZpcnN0IG9wZXJhbmQKCWEgUkVHLCBub3QgYSBNRU0uCgkoYWx0aXZlY19kc3R0KTogTGlrZXdpc2UuCgkoYWx0aXZlY19kc3RzdCk6IExpa2V3aXNlLgoJKGFsdGl2ZWNfZHN0c3R0KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKGFsdGl2ZWNfZXhwYW5kX2RzdF9idWlsdGluKTogQWRqdXN0IGNyZWF0aW9uCglvZiBmaXJzdCBvcGVyYW5kLgoKMjAwNS0wMi0wMyAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKHNscGVlbF9tYWtlX2xvb3BfaXRlcmF0ZV9udGltZXMpOiBDb3B5CglFWFBSX0xPQ1VTIGZyb20gb3JpZ19jb25kIHRvIHRoZSBuZXcgY29uZF9zdG10LgoJKHZlY3RfZmluaXNoX3N0bXRfZ2VuZXJhdGlvbik6IENvcHkgRVhQUl9MT0NVUyBmcm9tIHN0bXQgdG8KCXRoZSBuZXcgdmVjX3N0bXQuCgoyMDA1LTAyLTAzICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAoc2xwZWVsX21ha2VfbG9vcF9pdGVyYXRlX250aW1lcyk6IENhbGwKCXN0YW5kYXJkX2l2X2luY3JlbWVudF9wb3NpdGlvbi4gUmVtb3ZlIGNhbGwgdG8gYnNpX25leHQKCShubyBuZWVkIHRvIGJ1bXAgdGhlIGl0ZXJhdG9yIGFueW1vcmUpLgoJKHZlY3RfY3JlYXRlX2luZGV4X2Zvcl92ZWN0b3JfcmVmKTogQ2FsbAoJc3RhbmRhcmRfaXZfaW5jcmVtZW50X3Bvc2l0aW9uLiBSZW1vdmUgc2Vjb25kIGZ1bmN0aW9uIGFyZ3VtZW50LgoJKHZlY3RfZmluaXNoX3N0bXRfZ2VuZXJhdGlvbik6IFJlbW92ZSBjYWxsIHRvIGJzaV9uZXh0Cgkobm8gbmVlZCB0byBidW1wIHRoZSBpdGVyYXRvciBhbnltb3JlKS4KCSh2ZWN0X2NyZWF0ZV9kYXRhX3JlZl9wdHIpOiBSZW1vdmUgc2Vjb25kIGFyZ3VtZW50IChic2kpIGluIGNhbGwKCXRvIHZlY3RfY3JlYXRlX2luZGV4X2Zvcl92ZWN0b3JfcmVmLgoKMjAwNS0wMi0wMyAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfbWFya19zdG10c190b19iZV92ZWN0b3JpemVkKTogQ2hlY2sgaWYKCXBoaXMgYXJlIHVzZWQgb3V0IG9mIHRoZSBsb29wLgoKMjAwNS0wMi0wMyAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYy8xNzgwNwoJKiBjLWRlY2wuYyAodW5kZWZfbmVzdGVkX2Z1bmN0aW9uKTogTmV3IHZhcmlhYmxlLgoJKHBvcF9zY29wZSk6IERpYWdub3NlIHVuZGVmaW5lZCBuZXN0ZWQgZnVuY3Rpb25zLgoJKGZpbmlzaF9mdW5jdGlvbik6IERvbid0IGF0dGVtcHQgY2dyYXBoIHByb2Nlc3Npbmcgb3IgZ2VuZXJpY2l6aW5nCglpZiBjdXJyZW50IHRvcC1sZXZlbCBmdW5jdGlvbiBjb250YWluZWQgYW4gdW5kZWZpbmVkIG5lc3RlZAoJZnVuY3Rpb24uICBSZXNldCB1bmRlZl9uZXN0ZWRfZnVuY3Rpb24gYXQgdGhlIGVuZCBvZiBhIHRvcC1sZXZlbAoJZnVuY3Rpb24uCgoyMDA1LTAyLTAyICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCSogdHJlZS5jIChidWlsZF9pbnRfY3N0X3R5cGUpOiBUYWtlIHNpZ24gb2YgdGhlIHZhbHVlIGludG8gYWNjb3VudAoJd2hlbiBkZWNpZGluZyB3aGV0aGVyIHNpZ24gZXh0ZW5kIHRoZSB2YWx1ZS4KCjIwMDUtMDItMDIgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMvMTg1MDIKCSogZ2NjLmMgKGNwcF91bmlxdWVfb3B0aW9ucyk6IFJlbW92ZSAle3RyaWdyYXBoc30uCgkoY3BwX29wdGlvbnMsIGNjMV9vcHRpb25zKTogQ2hhbmdlICV7c3RkKiZhbnNpfSB0bwoJJXtzdGQqJmFuc2kmdHJpZ3JhcGhzfS4KCjIwMDUtMDItMDIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjc2UuYzogVXBkYXRlIGNvbW1lbnRzLgoKMjAwNS0wMi0wMiAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3NwZV9mdW5jdGlvbl9hcmcpOiBNdWx0aS1yZWcKCWFyZ3VtZW50cyBnbyBvbiB0aGUgc3RhY2suICBEbyBub3QgcHV0IGNvbXBsZXggZG91YmxlcyBpbiBvZGQvZXZlbgoJcGFpcnMuCgoyMDA1LTAyLTAyICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBkb2MvaW52b2tlLnRleGk6IFVwZGF0ZSB0aGUgb3B0aW9ucyBlbmFibGVkIGF0IC1PMSwgLU8yLAoJYW5kIC1PMy4gIFVwZGF0ZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgLWZnY3NlLXNtLCAtZmdjc2UtbGFzLAoJLWZ0cmVlLXByZSwgYW5kIC1mdGhyZWFkLWp1bXBzLgoKMjAwNS0wMi0wMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5NTc4CgkqIHRyZWUtZmxvdy5oIChtb2RpZmllZF9ub3JldHVybl9jYWxscyk6IERlY2xhcmUuCgkobm9yZXR1cm5fY2FsbF9wKTogRGVjbGFyZS4KCSogdHJlZS1mbG93LWlubGluZS5oIChub3JldHVybl9jYWxsX3ApOiBOZXcgZnVuY3Rpb24uCgkobW9kaWZ5X3N0bXQpOiBBZGQgbW9kaWZpZWQgbm9yZXR1cm4gY2FsbHMgdG8gbW9kaWZpZWRfbm9yZXR1cm5fY2FsbHMuCgkqIHRyZWUtY2ZnLmMgKG1vZGlmaWVkX25vcmV0dXJuX2NhbGxzKTogTmV3IHZhcmlhYmxlLgoJKGNsZWFudXBfY29udHJvbF9mbG93KTogVXNlIG5vcmV0dXJuX2NhbGxfcC4gIFNwbGl0IGJhc2ljIGJsb2NrcwoJdGhhdCBjb250YWluIGEgbWlkLWJsb2NrIG5vcmV0dXJuIGNhbGwuCgkqIHRyZWUtc3NhLmMgKGRlbGV0ZV90cmVlX3NzYSk6IENsZWFyIG1vZGlmaWVkX25vcmV0dXJuX2NhbGxzLgoKMjAwNS0wMi0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRmLmMgKGRmX2RlZl9yZWNvcmRfMSwgZGZfdXNlc19yZWNvcmQpOiBEb24ndCB1c2UKCURGX0ZPUl9SRUdBTExPQy4KCSogZGYuaCAoREZfRk9SX1JFR0FMTE9DKTogUmVtb3ZlLgoKMjAwNS0wMi0wMiAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYy8xOTQzNQoJKiBjLXR5cGVjay5jIChyZWFsbHlfc3RhcnRfaW5jcmVtZW50YWxfaW5pdCk6IFJlc2V0Cgljb25zdHJ1Y3Rvcl9tYXhfaW5kZXggZm9yIGFycmF5cyBvZiBpbmNvbXBsZXRlIHR5cGUuCgoyMDA1LTAyLTAyICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogZ2NzZS5jIChzdHJ1Y3QgcmVnX3NldCk6IFN0b3JlIHRoZSBibG9jayBpbmRleCB3aGVyZSB0aGUgcmVnaXN0ZXIKCXdhcyBzZXQgcmF0aGVyIHRoYW4gdGhlIHNldHRpbmcgaW5zbi4KCShyZWNvcmRfb25lX3NldCwgY29tcHV0ZV90cmFuc3ApOiBDb3JyZXNwb25kaW5nIGNoYW5nZXMuCgkocHJlX2luc2VydF9jb3B5X2luc24pOiBEbyBub3QgY2FsbCByZXBsYWNlX29uZV9zZXQuCgkocmVwbGFjZV9vbmVfc2V0KTogUmVtb3ZlLgoKMjAwNS0wMi0wMiAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgb3RoZXIvMTU1MTQKCSogZG9jL2djb3YudGV4aTogRml4IHR5cG8uCgoyMDA1LTAyLTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tCgoJUFIgdGFyZ2V0LzE5NjgwCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoTU9ERVNfVElFQUJMRV9QKTogVXNlIGl4ODZfbW9kZXNfdGllYWJsZV9wLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfaGFyZF9yZWdub19tb2RlX29rKTogQ2hhbmdlIHJldHVybgoJdHlwZSB0byBib29sLgoJKGl4ODZfdGllYWJsZV9pbnRlZ2VyX21vZGVfcCwgaXg4Nl9tb2Rlc190aWVhYmxlX3ApOiBOZXcuCgkqIGNvbmZpZy9pMzg2L2kzODYtcHJvdG9zLmg6IFVwZGF0ZS4KCjIwMDUtMDItMDEgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xOTIxNwoJKiB0cmVlLWNmZy5jICh2ZXJpZnlfZXhwcik6IFVzZSB0aGUgZGF0YSBmaWVsZCB0byBzZWUgaWYgVFAgd2FzCglzZWVuIGluc2lkZSBhIFBISSBub2RlLiAgRG8gbm90IGRvIHRoZSBBRERSX0VYUFIgY2hlY2sgaWYgaXQgd2FzLgoJKHZlcmlmeV9zdG10cyk6IFBhc3MgKHZvaWQqKTEgYXMgZGF0YSB0byB2ZXJpZnlfZXhwciB0byBzaWduYWwKCXRoYXQgaXQgaXMgd2Fsa2luZyBhIFBISSBub2RlLgoKMjAwNS0wMi0wMSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkb2MvZXh0ZW5kLnRleGkgKE5lc3RlZCBGdW5jdGlvbnMpOiBVcGRhdGUuCgoyMDA1LTAyLTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIDE5Njk2CgkqIG9wdGFicy5jIChleHBhbmRfY29weXNpZ25fYWJzbmVnKTogRXhwb3J0LgoJKiBvcHRhYnMuaCAoZXhwYW5kX2NvcHlzaWduX2Fic25lZyk6IERlY2xhcmUuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChjb3B5c2lnbnRmMyk6IE5ldy4KCjIwMDUtMDItMDEgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5NjMzCgkqIHRyZWUtZmxvdy5oIChzdHJ1Y3QgcHRyX2luZm9fZGVmKTogQWRkIGZpZWxkICdwdF9udWxsJy4KCSogdHJlZS1zc2EtYWxpYXMuYyAoaW5pdF9hbGlhc19pbmZvKTogSW5pdGlhbGl6ZS4KCShtZXJnZV9wb2ludGVkX3RvX2luZm8pOiBTZXQuCgkoYWRkX3BvaW50ZWRfdG9fZXhwcik6IFNldCBwdF9udWxsIGlmIEVYUFIgaXMgYSBOVUxMIHBvaW50ZXIuCgkoZHVtcF9wb2ludHNfdG9faW5mb19mb3IpOiBTaG93IHZhbHVlIG9mIHB0X251bGwuCgkoc3RydWN0IGNvdW50X3B0cl9kKTogRGVjbGFyZS4KCShmaW5kX3B0cl9kZXJlZmVyZW5jZSk6IFJlbW92ZS4KCShwdHJfaXNfZGVyZWZlcmVuY2VkX2J5KTogUmVtb3ZlLgoJKGNvdW50X3B0cl9kZXJlZnMpOiBOZXcgbG9jYWwgZnVuY3Rpb24uCgkoY291bnRfdXNlc19hbmRfZGVyZWZzKTogTmV3IGxvY2FsIGZ1bmN0aW9uLgoJKGNvbXB1dGVfcG9pbnRzX3RvX2FuZF9hZGRyX2VzY2FwZSk6IENhbGwgaXQuICBJZiB0aGUgbnVtYmVyCglvZiBkZXJlZmVyZW5jZXMgaXMgZ3JlYXRlciB0aGFuIHplcm8sIG1hcmsgdGhlIHBvaW50ZXIgYXMKCWRlcmVmZXJlbmNlZC4gIElmIHRoZXJlIGFyZSBmZXdlciBkZXJlZmVyZW5jZXMgdGhhbiB1c2VzIG9mCgl0aGUgcG9pbnRlciwgdGhlIHBvaW50ZXIncyB2YWx1ZSBlc2NhcGVzLgoKMjAwNS0wMi0wMSAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTk2NzAKCSogdHJlZS1zc2EuYyAodmVyaWZ5X3NzYV9uYW1lKTogRG9uJ3Qgc2V0IFRSRUVfVklTSVRFRAoJaGVyZS4uLgoJKHZlcmlmeV91c2UpOiAuLi4gc2V0IGl0IGhlcmUsIGluc3RlYWQuCgoyMDA1LTAyLTAxICBKYW5pcyBKb2huc29uICA8amFuaXMxODdAdXMuaWJtLmNvbT4KCgkqIGRvYy9zb3VyY2VidWlsZC50ZXhpIChUZXN0IGRpcmVjdGl2ZXMpOiBGaXggZm9ybWF0dGluZy4KCgkqIGRvYy9zb3VyY2VidWlsZC50ZXhpIChUZXN0IGRpcmVjdGl2ZXMpOiBEZXNjcmliZSBzZWxlY3RvcgoJZXhwcmVzc2lvbnMuCgoyMDA1LTAyLTAxICBTZWdoZXIgQm9lc3Nlbmtvb2wgIDxzZWdoZXJAa2VybmVsLmNyYXNoaW5nLm9yZz4KCgkqIGNvbmZpZy5nY2MgKHBvd2VycGM2NC0qLWxpbnV4Kik6IERlZmF1bHQgdG8gLW02NCBhbHNvIGZvcgoJc3BlY2lmaWMgNjQtYml0IENQVXMuCgoyMDA1LTAyLTAxICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCglQUiB0YXJnZXQvMTYyMDEKCSogYXJtLmMgKGFybV9lbGltaW5hYmxlX3JlZ2lzdGVyKTogTmV3IGZ1bmN0aW9uLgoJKGFkamFjZW50X21lbV9sb2NhdGlvbnMpOiBEb24ndCBhbGxvdyBlbGltaW5hYmxlIHJlZ2lzdGVycy4gIFVzZQoJSE9TVF9XSURFX0lOVCBmb3IgYWRkcmVzcyBvZmZzZXRzLgoJKiBhcm0tcHJvdG9zLmggKGFybV9lbGltaW5hYmxlX3JlZ2lzdGVyKTogQWRkIHByb3RvdHlwZS4KCjIwMDUtMDItMDEgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCglQUiBvcHRpbWl6YXRpb24vMTUyNDIKCSogcGFyYW1zLmRlZiAoUEFSQU1fTUFYX0dPVE9fRFVQTElDQVRJT05fSU5TTlMpOiBOZXcgcGFyYW0uCgkqIGJhc2ljLWJsb2NrLmggKGR1cGxpY2F0ZV9jb21wdXRlZF9nb3Rvcyk6IEFkZCBwcm90b3R5cGUuCgkqIGJiLXJlb3JkZXIuYyAoZHVwbGljYXRlX2NvbXB1dGVkX2dvdG9zKTogTmV3IGZ1bmN0aW9uIHRvCglkdXBsaWNhdGUgc3VmZmljaWVudGx5IHNtYWxsIGJsb2NrcyBlbmRpbmcgaW4gYSBjb21wdXRlZCBqdW1wLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9jb21waWxhdGlvbik6IENhbGwgZHVwbGljYXRlX2NvbXB1dGVkX2dvdG9zCglpZiBub3Qgb3B0aW1pemluZyBmb3Igc2l6ZS4KCSogY2ZnY2xlYW51cC5jICh0cnlfY3Jvc3NqdW1wX2JiKTogSWYgbm90IG9wdGltaXppbmcgZm9yIHNpemUsCgluZXZlciBkbyB0YWlsIG1lcmdpbmcgZm9yIGJsb2NrcyBlbmRpbmcgaW4gYSBjb21wdXRlZCBqdW1wLgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IHRoZSBtYXgtZ290by1kdXBsaWNhdGlvbi1pbnNucyBwYXJhbS4KCjIwMDUtMDItMDEgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJUGF0Y2ggZnJvbSBSaWNoYXJkIFNhbmRpZm9yZCA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCSogcmVsb2FkMS5jIChjaG9vc2VfcmVsb2FkX3JlZ3MpOiBQcmV2ZW50IHRoZSBmaW5kX2VxdWl2X3JlZygpIGNvZGUKCWZyb20gaW5oZXJpdGluZyBhIHN1YnJlZyBlcXVpdmFsZW5jZSB3aXRoIGEgbm9uLXNwaWxsIHJlZ2lzdGVyLgoKCSogdHJlZS5oIChERUNMX0ZVTkNUSU9OX0NPREUpOiBEb2N1bWVudCB0aGF0IGl0IGlzIG92ZXJsb2FkZWQuCgoyMDA1LTAyLTAxICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9mcnYvZnJ2LmMgKG1vdmNjX2ZwX2Rlc3RpbmF0aW9uX29wZXJhbmQpOiBOZXcuCgkoZ3ByX29yX21lbW9yeV9vcGVyYW5kKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShncHJfb3JfbWVtb3J5X29wZXJhbmRfd2l0aF9zY3JhdGNoKTogTmV3LgoJKiBjb25maWcvZnJ2L2Zydi5oIChQUkVESUNBVEVfQ09ERVMpOiBBZGQgdGhlIHR3byBuZXcgcHJlZGljYXRlcy4KCSogY29uZmlnL2Zydi9mcnYubWQgKG1vdmNjX2ZwLCBtb3ZjY19mcF9pbnRlcm5hbCk6IFVzZQoJbW92Y2NfZnBfZGVzdGluYXRpb25fb3BlcmFuZC4KCShyZWxvYWRfaW5jY19mcCk6IFVzZSBncHJfb3JfbWVtb3J5X29wZXJhbmRfd2l0aF9zY3JhdGNoLgoJTGVnaXRpbWl6ZSBtZW1vcnkgYWRkcmVzc2VzIHVzaW5nIGEgc2NyYXRjaCByZWdpc3Rlci4KCjIwMDUtMDEtMzEgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLWludG8tc3NhLmMgKG1hcmtfZGVmX3NpdGVzX2dsb2JhbF9kYXRhKTogTWFrZSBLSUxMUwoJYml0bWFwIGEgc3BhcnNlIGJpdG1hcCBpbnN0ZWFkIG9mIGEgc2ltcGxlIGJpdG1hcC4KCShtYXJrX2RlZl9zaXRlc19pbml0aWFsaXplX2Jsb2NrKTogIENvcnJlc3BvbmRpbmcgY2hhbmdlcy4KCShzc2FfbWFya19kZWZfc2l0ZXNfaW5pdGlhbGl6ZV9ibG9jayk6IExpa2V3aXNlLgoJKHNzYV9tYXJrX3BoaV91c2VzKTogTGlrZXdpc2UuCgkobWFya19kZWZfc2l0ZSwgc3NhX21hcmtfZGVmX3NpdGVzKTogTGlrZXdpc2UuCgkobWFya19kZWZfc2l0ZV9ibG9ja3MpOiBMaWtld2lzZS4KCShyZXdyaXRlX3NzYV9pbnRvX3NzYSk6IExpa2V3aXNlLgoKCSogdHJlZS1zc2EtZG9tLmMgKHJlY29yZF9jb25kKTogUGFzcyBjb3JyZWN0IHZhcmlhYmxlIHR5cGUKCWZvciBsYXN0IGFyZ3VtZW50IHRvIGh0YWJfZmluZF9zbG90X3dpdGhfaGFzaC4KCgkqIGZvbGQtY29uc3QuYyAoZm9sZCwgY2FzZSBDRUlMX01PRF9FWFBSKTogRG8gbm90IGxvc2Ugc2lkZQoJZWZmZWN0cyB3aGVuIG9wdGltaXppbmcgMCAlIFguICBEbyBub3QgdHJ5IHRvIG9wdGltaXplIFggJSAwLgoKMjAwNS0wMS0zMSAgSmFtZXMgRS4gV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIGNvbmZpZy9pYTY0L2l0YW5pdW0xLm1kICgxX3NjYWxsIGJ5cGFzcyk6IENoYW5nZSAyX21tYWx1YSB0bwoJMV9tbWFsdWEuCgoyMDA1LTAyLTAxICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuYyAob3ZlcnJpZGVfb3B0aW9ucyk6IFdhcm4gaWYgLW1pbnQ2NAoJaXMgdXNlZC4KCSogZG9jL2ludm9rZS50ZXhpIChNSVBTIE9wdGlvbnMpOiBEb2N1bWVudCB0aGF0IC1taW50NjQgaXMKCWRlcHJlY2F0ZWQuCgoyMDA1LTAyLTAxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY3NlLmMgKGNzZV9yZWdfaW5mbyk6IFJlbW92ZSBoYXNoX25leHQsIG5leHQsIHJlZ25vLiAgQWRkCgl0aW1lc3RhbXAuCgkoY3NlX3JlZ19pbmZvX2xpc3QsIGNzZV9yZWdfaW5mb19saXN0X2ZyZWUsIFJFR0hBU0hfU0hJRlQsCglSRUdIQVNIX1NJWkUsIFJFR0hBU0hfTUFTSywgcmVnX2hhc2gsIFJFR0hBU0hfRk4sCgljYWNoZWRfY3NlX3JlZ19pbmZvLCBHRVRfQ1NFX1JFR19JTkZPKTogUmVtb3ZlLgoJKGNhY2hlZF9yZWdubyk6IEluaXRpYWxpemUgdG8gSU5WQUxJRF9SRUdOVU0uCgkoY3NlX3JlZ19pbmZvX3RhYmxlX3NpemUsCgljc2VfcmVnX2luZm9fdGFibGVfZmlyc3RfdW5pbml0aWFsaXplZCwKCWNzZV9yZWdfaW5mb190aW1lc3RhbXApOiBOZXcuCgkoUkVHX1RJQ0ssIFJFR19JTl9UQUJMRSwgU1VCUkVHX1RJQ0tFRCwgUkVHX1FUWSk6IFVzZQoJZ2V0X2NzZV9yZWdfaW5mby4KCShpbml0X2NzZV9yZWdfaW5mbywgZ2V0X2NzZV9yZWdfaW5mb18xKTogTmV3LgoJKGdldF9jc2VfcmVnX2luZm8pOiBDYWNoZSB0aGUgbGFzdCBsb29rLXVwLgoJKG5ld19iYXNpY19ibG9jayk6IFVwZGF0ZSB0aGUgY29kZSB0byBjbGVhciBtYXBwaW5ncyBmcm9tCglyZWdpc3RlcnMgdG8gY3NlX3JlZ19pbmZvIGVudHJpZXMuCgkoY3NlX21haW4pOiBDYWxsIGluaXRfY3NlX3JlZ19pbmZvLgoKCSogY3NlLmMgKGdldF9jc2VfcmVnX2luZm8pOiBVcGRhdGUgYSBjb21tZW50LgoKMjAwNS0wMS0zMSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCVBSIGMvMTkzMzMKCSogYy1kZWNsLmMgKHN0YXJ0X2RlY2wpOiBEbyBub3Qgd2FybiBhYm91dCBhcnJheXMgb2YgZWxlbWVudHMgd2l0aAoJYW4gaW5jb21wbGV0ZSB0eXBlIGhlcmUuCgkoZ3Jva2RlY2xhcmF0b3IpOiBEbyBpdCBoZXJlIGJ5IG1ha2luZyBhIHBlZHdhcm4gYW4gZXJyb3IuCgkqIGMtdHlwZWNrLmMgKHB1c2hfaW5pdF9sZXZlbCk6IElmIHRoZXJlIHdlcmUgcHJldmlvdXMgZXJyb3JzIHdpdGgKCXRoZSBjb25zdHJ1Y3RvciB0eXBlLCBkbyBub3Qgd2FybiBhYm91dCBicmFjZXMgZm9yIGluaXRpYWxpemVycy4KCShwcm9jZXNzX2luaXRfZWxlbWVudCk6IExpa2V3aXNlIGZvciBleGNlc3MgaW5pdGlhbGl6ZXIgZWxlbWVudHMuCgoyMDA1LTAxLTMxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY3NlLmMgKGRlbGV0ZV90cml2aWFsbHlfZGVhZF9pbnNuKTogRG9uJ3QgaXRlcmF0ZS4KCjIwMDUtMDEtMzEgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKGNvcHlzaWduc2YzKTogTmV3IGV4cGFuZC4KCShjb3B5c2lnbmRmMyk6IExpa2V3aXNlLgoKMjAwNS0wMS0zMSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogcmVjb2cuYyAoY29uc3RyYWluX29wZXJhbmRzKTogT25seSBsb29rIGZvciBlYXJseWNsb2JiZXIgb3BlcmFuZAoJY29uZmxpY3RzIGlmIGFuICcmJyBjb25zdHJhaW50IHdhcyBzZWVuLgoKMjAwNS0wMS0zMSAgTWFyYyBFc3BpZSA8ZXNwaWVAb3BlbmJzZC5vcmc+CgoJKiBjb25maWcuZ2NjOiBEb24ndCBpbmNsdWRlIGVtYmVkZGVkIHN5c3RlbXMgZnJhZ21lbnQsIHN3aXRjaGVzIGRlZmF1bHQKCWRlYnVnZ2luZyBmb3JtYXQgdG8gRUxGLgoJKiBjb25maWcvaTM4Ni9vcGVuYnNkZWxmLmg6IEFkZCBEQlhfUkVHSVNURVJfTlVNQkVSIHNpbmNlIHdlIG5vCglsb25nZXIgcGljayBpdCB1cCB0aGVyZS4KCjIwMDUtMDEtMzEgIERhbGUgSm9oYW5uZXNlbiAgPGRhbGVqQGFwcGxlLmNvbT4KCgkqIGRvYy9leHRlbmQudGV4aSAobmVzdGVkIGZ1bmN0aW9ucyk6IEZpeCBsaW5rYWdlIGRlc2NyaXB0aW9uLgoJQ2xhcmlmeSB0aGF0IHN0YXRpYyBpcyBub3QgYWxsb3dlZC4KCjIwMDUtMDEtMzEgIERhbGUgSm9oYW5uZXNlbiAgPGRhbGVqQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLm1kIChtb3ZzZl9sb3dfZGkpOiAgTWFrZSB3b3JrLgoJKG1vdmRmX2xvd19kaSk6ICBNYWtlIHdvcmsuCgoyMDA1LTAxLTMxICBEYWxlIEpvaGFubmVzZW4gIDxkYWxlakBhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi10cmFtcC5hc20gKF9fdHJhbXBvbGluZV9zZXR1cCk6CglNYWtlIHdvcmsgZm9yIDY0IGJpdC4KCjIwMDUtMDEtMzEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoJICAgIERhbGUgSm9oYW5uZXNlbiAgPGRhbGVqQGFwcGxlLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE5NjUwCgkqIGZvbGQtY29uc3QuYyAoZm9sZF9iaW5hcnlfb3Bfd2l0aF9jb25kaXRpb25hbF9hcmcpOgoJTWFrZSB0eXBlcyBtYXRjaCBvcmlnaW5hbCBvcGVyYW5kcywgYmVmb3JlIFNUUklQX05PUFMuCgoyMDA1LTAxLTMxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3JzNjAwMC9saW51eC11bndpbmQuaCAoc3RydWN0IGdjY192cmVncyk6IE5ldy4KCShzdHJ1Y3QgZ2NjX3JlZ3MpOiBSZW5hbWUgZnJvbSBnY2NfcHRfcmVncy4gIEFkZCBtb3JlIHJlZ3MuCgkoc3RydWN0IGdjY19zaWdjb250ZXh0KTogRGVsZXRlLiAgTWVyZ2UgY29udGVudHMgdG8uLgoJKHN0cnVjdCBnY2NfdWNvbnRleHQpOiAuLmhlcmUuCgkoZ2V0X3NpZ2NvbnRleHQpOiBEZWxldGUuCgkoZ2V0X3JlZ3MpOiBOZXcgZnVuY3Rpb24sIGxpa2UgZ2V0X3NpZ2NvbnRleHQgYnV0IHJldHVybiByZWdzIHB0ci4KCTY0LWJpdCB2ZXJzaW9uIGZpbmRzIHJlZ3MgZnJvbSByMSB0byBzdXBwb3J0IHZkc28uCgkocHBjX2xpbnV4X2F1eF92ZWN0b3IpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2ZhbGxiYWNrX2ZyYW1lX3N0YXRlKTogTW9kaWZ5IGZvciBnZXRfcmVncy4gIFJlc3RvcmUgZnBycwoJYW5kIHZlY3RvciByZWdzLgoKMjAwNS0wMS0zMSAgSXJhIFJvc2VuICA8aXJhckBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfYW5hbHl6ZV9vZmZzZXRfZXhwcik6IFVzZSBzc2l6ZXR5cGUgaW5zdGVhZAoJc2l6ZXR5cGUuCgkodmVjdF9nZXRfYmFzZV9hbmRfb2Zmc2V0KTogVXNlIHNzaXpldHlwZSBpbnN0ZWFkIHNpemV0eXBlLiBSZW1vdmUKCXJlZHVuZGFudCBmb2xkLiBGaXggbWlzYWxpZ25tZW50IGZvciBNSU5VU19FWFBSLgoJKHZlY3RfY29tcHV0ZV9kYXRhX3JlZl9hbGlnbm1lbnQpOiBVc2Ugc3NpemV0eXBlIGluc3RlYWQgc2l6ZXR5cGUuCgkodmVjdF9hbmFseXplX3BvaW50ZXJfcmVmX2FjY2Vzcyk6IExpa2V3aXNlLgoJKHZlY3RfZ2V0X21lbXRhZ19hbmRfZHIpOiBMaWtld2lzZS4KCjIwMDUtMDEtMzEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGFic25lZ3NmMl9taXhlZCk6IFJlbW92ZSBhbGwgb2YgdGhlICMgaGFja2VyeS4KCShhYnNuZWdzZjJfc3NlLCBhYnNuZWdzZjJfaTM4NywgYWJzbmVnZGYyX21peGVkLCBhYnNuZWdkZjJfc3NlLAoJYWJzbmVnZGYyX2kzODcsIGFic25lZ3hmMl9pMzg3KTogTGlrZXdpc2UuCgoyMDA1LTAxLTMxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIDE5Njk2CgkqIG9wdGFicy5jIChleHBhbmRfY29weXNpZ25fYWJzbmVnKTogTmV3LgoJKGV4cGFuZF9jb3B5c2lnbl9iaXQpOiBTcGxpdCBvdXQgZnJvbSAuLi4KCShleHBhbmRfY29weXNpZ24pOiAuLi4gaGVyZS4gIFVzZSBleHBhbmRfY29weXNpZ25fYWJzbmVnLgoKMjAwNS0wMS0zMCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgbWlkZGxlLWVuZC8xOTY5NwoJKiBjb25maWcvcGEvcGEubWQgKGFuZGRpMywgaW9yZGkzKTogT24gSFBQQTY0LCBkaXNhbGxvdyBhbiBpbnRlZ2VyCgljb25zdGFudCBhcyB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kIGEgcmVnaXN0ZXIgYXMgdGhlIHRoaXJkLgoKMjAwNS0wMS0zMSAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiB0YXJnZXQvMTk3MDQKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2Z1bmN0aW9uX29rX2Zvcl9zaWJjYWxsKTogIEFsc28gY2hlY2sKCXRoYXQgZGxsaW1wb3J0J2QgZnVuY3Rpb25zIGRvIG5vdCB1c2UgYWxsIGNhbGwtY2xvYmJlcmVkIHJlZ2lzdGVycwoJdG8gcGFzcyBwYXJhbWV0ZXJzLgoKMjAwNS0wMS0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiAxOTY5NgoJKiBvcHRhYnMuYyAoZXhwYW5kX2Fic25lZ19iaXQpOiBTcGxpdCBvdXQgZnJvbSBleHBhbmRfdW5vcCBhbmQKCWV4cGFuZF9hYnNfbm9qdW1wIGFuZCBnZW5lcmFsaXplLiAgVXNlIG9wZXJhbmRfc3Vid29yZCBhbmQKCWVtaXRfbm9fY29uZmxpY3RfYmxvY2suICBTdXBwb3J0IGxhcmdlIG1vZGVzLgoJKGV4cGFuZF9hYnNfbm9qdW1wKTogVXNlIGl0LiAgVXNlIEhPTk9SX1NJR05FRF9aRVJPUyB0byBmYWxsCgliYWNrIHRvIG1heGltdW0uCgkoZXhwYW5kX3Vub3ApOiBMaWtld2lzZS4gIFVzZSBIT05PUl9TSUdORURfWkVST1MgdG8gZmFsbCBiYWNrCgluZWdhdGlvbiB0byBzdWJ0cmFjdGlvbi4KCShleHBhbmRfY29weXNpZ24pOiBDaGVjayB0aGF0IHRoZSBmb3JtYXQgaGFzIHNpZ25lZCB6ZXJvcy4KCVVzZSBvcGVyYW5kX3N1YndvcmQgYW5kIGVtaXRfbm9fY29uZmxpY3RfYmxvY2suICBTdXBwb3J0IGxhcmdlIG1vZGVzLgoKMjAwNS0wMS0zMCAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJRml4IFBSIHRyZWUtb3B0aW1pemF0aW9uLzE5NjI0CgoJKiBNYWtlZmlsZS5pbiAodHJlZS1zc2EtcHJlLm8pOiBBZGQgQ0ZHTE9PUF9ILgoJKiB0cmVlLXNzYS1wcmUuYzogQWRkIGNmZ2xvb3AuaC4KCVVwZGF0ZSBjb21tZW50LgoJKHByZV9zdGF0cyk6IE5ldyBtZW1iZXIsIGNvbnN0aWZpZWQuCgkoaW5zZXJ0ZWRfZXhwcnMpOiBOZXcgc3RhdGljIHZhcmlhYmxlLgoJKE5FQ0VTU0FSWSk6IE5ldyBtYWNyby4KCShjcmVhdGVfZXhwcmVzc2lvbl9ieV9waWVjZXMpOiBGb2xkIHRoZSBleHByZXNzaW9uLCBhbmQKCW1hcmsgaXQgYXMgZGVmYXVsdGluZyB0byBub3QgbmVjZXNzYXJ5LiBBbHNvIHB1dCBpbgoJaW5zZXJ0ZWRfZXhwcnMuCgkoZnVsbHlfY29uc3RhbnRfZXhwcmVzc2lvbik6IE5ldyBmdW5jdGlvbi4KCShpbnNlcnRfaW50b19wcmVkc19vZl9ibG9jayk6IE1vZGlmeSB0byBub3QgaW5zZXJ0IHBoaXMgd2hlbiB3ZQoJYXJlIHBsYXlpbmcgd2l0aCBpbmR1Y3Rpb24gdmFyaWFibGVzLgoJUHVzaCBwaGlzIG9udG8gdGhlIGluc2VydGVkX2V4cHJzIHZlY3RvciwgYW5kIG1hcmsgdGhlbSBhcyBub3QKCW5lY2Vzc2FyeSBieSBkZWZhdWx0LgoJKGluc2VydF9hdXgpOiBDYWxsIGZ1bGx5X2NvbnN0YW50X2V4cHJlc3Npb24gb24gZXByaW1lLgoJSWYgYWxsIGVkZ2VzIHByb2R1Y2UgdGhlIHNhbWUgdmFsdWUsIG1hcmsgaXQgY29uc3RhbnQuCgkobWFya19vcGVyYW5kX25lY2Vzc2FyeSk6IE5ldyBmdW5jdGlvbi4KCShyZW1vdmVfZGVhZF9pbnNlcnRlZF9jb2RlKTogTmV3IGZ1bmN0aW9uLgoJKGluaXRfcHJlKTogSW5pdCBsb29wIG9wdGltaXplciB0byBnZXQgbG9vcCBpbmZvLgoJKGZpbmlfcHJlKTogRnJlZSBsb29wX29wdGltaXplciwgYW5kIGluc2VydGVkX2V4cHJzIHZlYy4KCShleGVjdXRlX3ByZSk6IENvbW1pdCBlZGdlIGluc2VydHMsIHRoZW4gcmVtb3ZlIGRlYWQgY29kZS4KCjIwMDUtMDEtMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBydGwuYyAocnR4X2VxdWFsX3ApOiBObyBlYXJseSBleGl0IGZvciBDT05TVF9WRUNUT1IuCgkqIHZhcmFzbS5jIChjb25zdF9ydHhfaGFzaF8xKTogSGFuZGxlIENPTlNUX1ZFQ1RPUi4KCjIwMDUtMDEtMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE5NzAwCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9leHBhbmRfY29weXNpZ24pOiBOZXcuCgkoaXg4Nl9zcGxpdF9jb3B5c2lnbl9jb25zdCk6IE5ldy4KCShpeDg2X3NwbGl0X2NvcHlzaWduX3Zhcik6IFJlbmFtZSBmcm9tIGl4ODZfc3BsaXRfY29weXNpZ24sCglyZWFycmFuZ2Ugb3AxL25tYXNrIG9wZXJhbmRzLgoJKiBjb25maWcvaTM4Ni9pMzg2LXByb3Rvcy5oOiBVcGRhdGUuCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKGNvcHlzaWduc2YzKTogVXNlIGl4ODZfZXhwYW5kX2NvcHlzaWduLgoJKGNvcHlzaWduZGYzKTogTGlrZXdpc2UuCgkoY29weXNpZ25zZjNfY29uc3QsIGNvcHlzaWduZGYzX2NvbnN0KTogTmV3LgoJKGNvcHlzaWduc2YzX3Zhcik6IFJlbmFtZSBmcm9tIGNvcHlzaWduc2YzLCBzcGxpdCBvdXQgc3BsaXR0ZXIKCWFuZCBmaXggc3BsaXQgcHJlZGljYXRlIGZvciBYIGNvbnN0cmFpbnQuCgkoY29weXNpZ25kZjNfdmFyKTogU2ltaWxhcmx5LgoKMjAwNS0wMS0zMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIG9wdGFicy5jLCBkb2MvYy10cmVlLnRleGksIGRvYy9pbnN0YWxsLnRleGksIGRvYy9tZC50ZXhpLAoJZG9jL3Bhc3Nlcy50ZXhpLCBkb2MvcnRsLnRleGksIGRvYy9zb3VyY2VidWlsZC50ZXhpLAoJZG9jL3RtLnRleGksIGRvYy90cmVlLXNzYS50ZXhpOiBVcGRhdGUgY29weXJpZ2h0LgoKMjAwNS0wMS0yOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTk2OTAKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAobW92ZGZfbm9pbnRlZ2VyLCBtb3ZkZl9pbnRlZ2VyKTogRml4IG9yZGVyaW5nCglvZiAjIGFuZCAqIGluIGNvbnN0cmFpbnRzLgoKMjAwNS0wMS0yOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzE5Njg5CgkqIGV4cHIuYyAoc3RvcmVfZmllbGQpOiBEb24ndCBzdHJpcCBzdWItbW9kZSBjYXN0IHdoZW4gdGhlIGlucHV0CglkYXRhIGlzIGV2ZW4gc21hbGxlci4KCjIwMDUtMDEtMjkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8xOTY4NwoJKiBleHByLmMgKGNhdGVnb3JpemVfY3Rvcl9lbGVtZW50c18xKTogQ2hlY2sgZm9yIENPTlNUUlVDVE9SIG9mIGEKCXVuaW9uIGJlaW5nIGVtcHR5LgoKMjAwNS0wMS0yOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbWJpbmUuYyAobWFrZV9maWVsZF9hc3NpZ25tZW50KTogRml4IGFyZ3VtZW50IG9yZGVyCgl0byBnZW5faW50X21vZGUuCgoyMDA1LTAxLTI5ICBSaWNoYXJkIEd1ZW50aGVyIDxyaWNoYXJkLmd1ZW50aGVyQHVuaS10dWViaW5nZW4uZGU+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTU3OTEKCSogZm9sZC1jb25zdC5jIChleHRyYWN0X2FycmF5X3JlZik6IE5ldyBmdW5jdGlvbi4KCShmb2xkKTogRm9sZCBjb21wYXJpc29ucyBiZXR3ZWVuICZhW2ldIGFuZCAmYVtqXSBvcgoJc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQgdHJlZXMuCgoyMDA1LTAxLTI5ICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogZ2NzZS5jIChpbnNlcnRfZXhwcl9pbl90YWJsZSk6IFJldmFtcCBoYW5kbGluZyBvZiBhdmFpbGFibGUKCWFuZCBhbnRpY2lwYXRhYmxlIG9jY3VycmVuY2UgbGlzdHMgdG8gYXZvaWQgdW5uZWNlc3NhcnkgbGlzdAoJd2Fsa2luZy4KCShpbnNlcnRfc2V0X2luX3RhYmxlKTogU2ltaWxhcmx5LgoKMjAwNS0wMS0yOSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWNvbW1vbi5jIChmaXhfc3RyaW5nX3R5cGUpOiBKdXN0IHVzZSBjX2J1aWxkX3F1YWxpZmllZF90eXBlIHRvCglidWlsZCBzdHJpbmcgdHlwZS4KCShjX2J1aWxkX3F1YWxpZmllZF90eXBlKTogQnVpbGQgcXVhbGlmaWVkIGFycmF5IHR5cGVzIHdpdGgKCVRZUEVfTUFJTl9WQVJJQU5UIHBvaW50aW5nIHRvIGNvcnJlc3BvbmRpbmcgdW5xdWFsaWZpZWQgdHlwZS4KCSogYy1kZWNsLmMgKGNfbWFrZV9mbmFtZV9kZWNsKTogQnVpbGQgdW5xdWFsaWZpZWQgYXJyYXkgdHlwZQoJYmVmb3JlIHF1YWxpZmllZCB0eXBlLgoJKGdyb2tkZWNsYXJhdG9yKTogVXNlIFRZUEVfTUFJTl9WQVJJQU5UIG9mIHR5cGVkZWYgdHlwZSBpZiBlbGVtZW50Cgl0eXBlIGlzIHF1YWxpZmllZCwgbm90IGp1c3QgaWYgdHlwZSBpdHNlbGYgaXMuICBEb24ndCBhcHBseQoJcXVhbGlmaWVycyB0byBhcnJheSB0eXBlIHdoZW4gZGVjbGFyYXRvciBpcyBwcm9jZXNzZWQuICBBcHBseQoJcXVhbGlmaWVycyB0byBmaWVsZCB0eXBlIHdoZXRoZXIgb3Igbm90IGl0IGlzIGFuIGFycmF5IHR5cGUuCglEb24ndCBoYW5kbGUgYXJyYXkgdHlwZXMgc3BlY2lhbGx5IGZvciBhcHBseWluZyBxdWFsaWZpZXJzIHRvCgl2YXJpYWJsZXMuCgkqIGMtdHlwZWNrLmMgKGNvbXBvc2l0ZV90eXBlKTogQnVpbGQgdW5xdWFsaWZpZWQgZWxlbWVudCB0eXBlIGFuZAoJYXJyYXkgdHlwZSB3aGVuIGZvcm1pbmcgY29tcG9zaXRlIG9mIGFycmF5IHR5cGVzLgoJKGNvbW1vbl9wb2ludGVyX3R5cGUsIGNvbXB0eXBlcywgY29tcF90YXJnZXRfdHlwZXMsCgl0eXBlX2xpc3RzX2NvbXBhdGlibGVfcCwgYnVpbGRfaW5kaXJlY3RfcmVmLCBidWlsZF9hcnJheV9yZWYsCgljb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogRG9uJ3QgYXBwbHkgVFlQRV9NQUlOX1ZBUklBTlQgdG8gYXJyYXkKCXR5cGVzLgoJKHR5cGVfbGlzdHNfY29tcGF0aWJsZV9wKTogQ2FjaGUgVFJFRV9WQUxVRSAoYXJnczEpIGFuZCBUUkVFX1ZBTFVFCgkoYXJnczIpIGluIHZhcmlhYmxlcyBhMSBhbmQgYTIuCgoyMDA1LTAxLTI5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY3NlLmMgKG5fZWxlbWVudHNfbWFkZSwgbWF4X2VsZW1lbnRzX21hZGUpOiBSZW1vdmUuCgkoaW5zZXJ0KTogRG9uJ3QgdG91Y2ggbl9lbGVtZW50c19tYWRlLgoJKGNzZV9tYWluKTogRG9uJ3QgdG91Y2ggbl9lbGVtZW50c19tYWRlIG9yIG1heF9lbGVtZW50c19tYWRlLgoKMjAwNS0wMS0yOCAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJUFIgdGFyZ2V0LzE1Mzg0CgkqIGNvbmZpZy9tNjhoYzExL3QtbTY4aGMxMS1nYXMgKGRwLWJpdC5jKTogRml4IHR5cG8gY2F1c2luZyBhCgljb25maWd1cmF0aW9uIHBhcnQgb2YgZHAtYml0LmMgdG8gYmUgbG9zdC4KCjIwMDUtMDEtMjggIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogZXhwbWVkLmMgKGV4cGFuZF9tdWx0X2hpZ2hwYXJ0X29wdGFiKTogV2hlbiBhdHRlbXB0aW5nIHRvIHVzZQoJYSBub24td2lkZW5pbmcgbXVsdGlwbGljYXRpb24gaW4gYSB3aWRlciBtb2RlLCB0aGUgb3BlcmFuZHMgbmVlZAoJdG8gYmUgY29udmVydGVkICh6ZXJvIG9yIHNpZ24gZXh0ZW5kZWQpIHRvIHRoYXQgbW9kZS4KCjIwMDUtMDEtMjggIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AYWlycy5jb20+CgoJUFIgbWlkZGxlLWVuZC8xNjU1OAoJUFIgbWlkZGxlLWVuZC8xOTU4MwoJKiBnaW1wbGUtbG93LmMgKGJsb2NrX21heV9mYWxsdGhydSk6IFRSWV9GSU5BTExZX0VYUFIgb25seSBmYWxscwoJdGhyb3VnaCBpZiBib3RoIG9wZXJhbmRzIGZhbGwgdGhyb3VnaC4KCjIwMDUtMDEtMjggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjc2UuYyAoZm9sZF9ydHgpIDxQQz46IERvbid0IG9wdGltaXplLgoKMjAwNS0wMS0yOCAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIGZvbGQtY29uc3QuYyAoZm9sZCwgY2FzZSBDRUlMX01PRF9FWFBSKTogT3B0aW1pemUgMCAlIFguCgkoY2FzZSBGTE9PUl9NT0RfRVhQUiwgUk9VTkRfTU9EX0VYUFIsIFRSVU5DX01PRF9FWFBSKTogU2ltaWxhcmx5LgoKMjAwNS0wMS0yOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNzZS5jIChjc2VfcmVnX2luZm9fZnJlZV9saXN0LCBjc2VfcmVnX2luZm9fdXNlZF9saXN0LAoJY3NlX3JlZ19pbmZvX3VzZWRfbGlzdF9lbmQpOiBSZW1vdmUuCgkoY3NlX3JlZ19pbmZvX2xpc3QsIGNzZV9yZWdfaW5mb19saXN0X2ZyZWUpOiBOZXcuCgkoZ2V0X2NzZV9yZWdfaW5mbyk6IFdoZW4gYWxsb2NhdGluZyBhbiBpbnN0YW5jZSBvZgoJY3NlX3JlZ19pbmZvLCBhZGQgaXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY3NlX3JlZ19pbmZvX2xpc3QKCWxpc3QuICBSZW1vdmUgY29kZSB0byBtYWludGFpbiBjc2VfcmVnX2luZm9fdXNlZF9saXN0LgoJKG5ld19iYXNpY19ibG9jayk6IFJlc2V0IHRoZSBmcmVlIGxpc3QgdG8gdGhlIGJlZ2lubmluZyBvZgoJY3NlX3JlZ19pbmZvX2xpc3QuCgoyMDA1LTAxLTI4ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvZnJ2L2Zydi5jIChiZGVzY18yYXJnKTogUmVtb3ZlIF9fTURQQUNLSC4KCShmcnZfaW5pdF9idWlsdGlucyk6IENoYW5nZSBpdHMgcHJvdG90eXBlIHRvIHRha2UgNCB1aGFsZiBhcmd1bWVudHMuCgkoZnJ2X2V4cGFuZF9tZHBhY2toX2J1aWx0aW4pOiBOZXcgZnVuY3Rpb24uCgkoZnJ2X2V4cGFuZF9idWlsdGluKTogVXNlIGl0IHRvIGV4cGFuZCBfX01EUEFDS0guCgkqIGRvYy9leHRlbmQudGV4aSAoX19NRFBBQ0tIKTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgoyMDA1LTAxLTI4ICBVcm9zIEJpemphayAgPHVyb3NAa3NzLWxva2Euc2k+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfZXhwYW5kX2ZwX2Fic25lZ19vcGVyYXRvcik6IFVzZQoJU1NFX0ZMT0FUX01PREVfUCBmb3IgdXNlX3NzZSBjb21wdXRhdGlvbi4KCjIwMDUtMDEtMjggIFJhbGYgQ29yc2VwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCVBSIHRhcmdldC8xOTY2MwoJKiBjb25maWcvc3BhcmMvcnRlbXNlbGYuaCAoTElOS19HQ0NfQ19TRVFVRU5DRV9TUEVDKTogdW5kZWZpbmUuCgoyMDA1LTAxLTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fY29weXNpZ24pOiBOZXcuCgkoZXhwYW5kX2J1aWx0aW4pOiBDYWxsIGl0LgoJKiBnZW5vcGluaXQuYyAob3B0YWJzKTogQWRkIGNvcHlzaWduX29wdGFiLgoJKiBvcHRhYnMuYyAoaW5pdF9vcHRhYnMpOiBJbml0aWFsaXplIGl0LgoJKGV4cGFuZF9jb3B5c2lnbik6IE5ldy4KCSogb3B0YWJzLmggKE9USV9jb3B5c2lnbiwgY29weXNpZ25fb3B0YWIpOiBOZXcuCgkoZXhwYW5kX2NvcHlzaWduKTogRGVjbGFyZS4KCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5tZCAoVU5TUEVDX0NPUFlTSUdOKTogTmV3LgoJKGNvcHlzaWduc2YzLCBuY29weXNpZ25zZjMsIGNvcHlzaWduZGYzLCBuY29weXNpZ25kZjMpOiBOZXcuCgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfYnVpbGRfc2lnbmJpdF9tYXNrKTogU3BsaXQgZnJvbSAuLi4KCShpeDg2X2V4cGFuZF9mcF9hYnNuZWdfb3BlcmF0b3IpOiAuLi4gaGVyZS4KCShpeDg2X3NwbGl0X2NvcHlzaWduKTogTmV3LgoJKiBjb25maWcvaTM4Ni9pMzg2LXByb3Rvcy5oOiBVcGRhdGUuCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKFVOU1BFQ19DT1BZU0lHTik6IE5ldy4KCShjb3B5c2lnbnNmMywgY29weXNpZ25kZjMpOiBOZXcuCgoJKiBjb25maWcvaWE2NC9pYTY0Lm1kIChVTlNQRUNfQ09QWVNJR04pOiBOZXcuCgkoY29weXNpZ25zZjMsIG5jb3B5c2lnbnNmMyk6IE5ldy4KCShjb3B5c2lnbmRmMywgbmNvcHlzaWduZGYzKTogTmV3LgoJKGNvcHlzaWdueGYzLCBuY29weXNpZ254ZjMpOiBOZXcuCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAocnR4X25lZWRzX2JhcnJpZXIpOiBIYW5kbGUgVU5TUEVDX0NPUFlTSUdOLgoKMjAwNS0wMS0yNyAgQXJlbmQgQmF5ZXIgIDxhcmVuZC5iYXllckB3ZWIuZGU+CgkgICAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNzZS5jOiAoZmluZF9iZXN0X2FkZHIpOiBEb24ndCBjYWxsIGNvcHlfcnR4IGJlZm9yZSBjYWxsaW5nCglmb2xkX3J0eC4gIFNhdmUgY29zdCByZWNvbXB1dGF0aW9uIGlmIGZvbGRfcnR4IGRpZCBub3RoaW5nLgoJKGZvbGRfcnR4KSA8QVNNX09QRVJBTkRTPjogRG9uJ3QgZG8gYW55dGhpbmcgaWYgSU5TTiBpcwoJTlVMTF9SVFguCgoyMDA1LTAxLTI3ICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1pbnRvLXNzYS5jIChzc2FfcmV3cml0ZV9pbml0aWFsaXplX2Jsb2NrKTogRG8gbm90IHJlZ2lzdGVyCglkZWZpbml0aW9ucyBvZiBTU0FfTkFNRXMgd2hpY2ggYXJlIG5vdCBiZWluZyByZXdyaXR0ZW4uCgkocmV3cml0ZV9zc2FfaW50b19zc2EpOiBPbmx5IGluaXRpYWxpemUgdGhlIGN1cnJlbnQgZGVmaW5pdGlvbgoJb2YgYW4gU1NBX05BTUUgaWYgdGhhdCBTU0FfTkFNRSBoYXMgYmVlbiBtYXJrZWQgZm9yIHJld3JpdGluZy4KCUlmIGNoZWNraW5nIGlzIGVuYWJsZWQsIGFzc2VydCB0aGF0IFNTQV9OQU1FX0FVWCBpcyBjbGVhciBmb3IgYWxsCglTU0FfTkFNRXMgYmVmb3JlIHJldHVybmluZy4KCjIwMDUtMDEtMjcgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjLWNvbW1vbi5kZWYsIGMtZHVtcC5jLCBjLWdpbXBsaWZ5LmMsIGMtb2JqYy1jb21tb24uYywKCWNmZ2V4cGFuZC5jLCBkYnhvdXQuYywgZnVuY3Rpb24uaCwgb3B0cy5jLCB0cmVlLWZsb3ctaW5saW5lLmgsCgl0cmVlLXNzYS1vcGVyYW5kcy5oLCB0cmVlLXNzYS10aHJlYWR1cGRhdGUuYywgdHJlZS10YWlsY2FsbC5jLAoJY29uZmlnL2F2ci9hdnIubWQsIGNvbmZpZy9jcmlzL2FvdXQuaCwgY29uZmlnL2NyaXMvY3Jpcy5oLAoJY29uZmlnL21pcHMvaXJpczYuaCwgY29uZmlnL3NoL3NoLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgoyMDA1LTAxLTI3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJUFIgbWlkZGxlLWVuZC8xNzI3OAoJKiBvcHRzLmMgKGRlY29kZV9vcHRpb25zKTogTW92ZSBmbGFnX3RocmVhZF9qdW1wcyBmcm9tIC1PMSBhbmQKCWhpZ2hlciB0byAtTzIgYW5kIGhpZ2hlci4gIExpa2V3aXNlIGZvciB0cmVlIFBSRS4KCSogdHJlZS1zc2EtZG9tLmMgKHRyZWVfc3NhX2RvbWluYXRvcl9vcHRpbWl6ZSk6IE9ubHkgaXRlcmF0ZSBhdCAtTzIKCWFuZCBiZXR0ZXIuCgoyMDA1LTAxLTI3ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGFpcnMuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTk1ODMKCSogZ2ltcGxlLWxvdy5jICh0cnlfY2F0Y2hfbWF5X2ZhbGx0aHJ1KTogTmV3IHN0YXRpYyBmdW5jdGlvbi4KCShibG9ja19tYXlfZmFsbHRocnUpOiBIYW5kbGUgVFJZX0NBVENIX0VYUFIuCgkqIHRyZWUtaW5saW5lLmMgKGV4cGFuZF9jYWxsX2lubGluZSk6IERvbid0IHdhcm4gYWJvdXQgcmVhY2hpbmcKCXRoZSBlbmQgb2YgYSBub24tdm9pZCBmdW5jdGlvbiBiZWluZyBpbmxpbmVkIGlmIHRoZSBmdW5jdGlvbiB1c2VzCglhIHJldHVybiBzbG90LgoKMjAwNS0wMS0yNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKENBTExfVVNFRF9SRUdJU1RFUlMpOiBGaXggY29tbWVudCBwYXN0b3MuCgoJUFIgYy8xODk0NgoJKiBjLWRlY2wuYyAod2Fybl9pZl9zaGFkb3dpbmcpOiBIYW5kbGUgb2xkX2RlY2wgZXJyb3JfbWFya19ub2RlLgoJKHB1c2hkZWNsKTogT25seSB1c2UgREVDTF9GSUxFX1NDT1BFX1AgaWYgREVDTF9QLgoJKGltcGxpY2l0bHlfZGVjbGFyZSk6IEhhbmRsZSBlcnJvcl9tYXJrX25vZGUuCgoyMDA1LTAxLTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0LzE0MzI5CgkqIHRyZWUuaCAoc3RydWN0IHRyZWVfZGVjbCk6IEFkZCBkZWJ1Z19leHByX2lzX2Zyb20uCgkoREVDTF9ERUJVR19FWFBSX0lTX0ZST00pOiBOZXcuCgkoREVDTF9ERUJVR19FWFBSKTogUmVuYW1lIGZyb20gREVDTF9ERUJVR19BTElBU19PRi4KCSogZHdhcmYyb3V0LmMgKGR3YXJmMm91dF92YXJfbG9jYXRpb24pOiBVcGRhdGUgdG8gbWF0Y2guCgkqIHRyZWUtb3V0b2Ytc3NhLmMgKGNyZWF0ZV90ZW1wKTogTGlrZXdpc2UuCgkqIHZhci10cmFja2luZy5jICh0cmFja19leHByX3ApOiBMaWtld2lzZS4KCSogdHJlZS1zcmEuYyAoaW5zdGFudGlhdGVfZWxlbWVudCk6IFNldCBERUNMX0RFQlVHX0VYUFIuCgkqIGMtb2JqYy1jb21tb24uYyAoY190cmVlX3ByaW50ZXIpIDwnRCc+OiBIYW5kbGUgREVDTF9ERUJVR19FWFBSLgoJKiB0b3BsZXYuYyAoZGVmYXVsdF90cmVlX3ByaW50ZXIpOiBMaWtld2lzZS4KCjIwMDUtMDEtMjcgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL2Zydi9mcnYuYyAoZnJ2X2NsYXNzX2xpa2VseV9zcGlsbGVkX3ApOiBBZGQgR1I4X1JFR1MsCglHUjlfUkVHUywgR1I4OV9SRUdTLCBGRFBJQ19GUFRSX1JFR1MsIEZEUElDX1JFR1MuCgoyMDA1LTAxLTI3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiB0cmVlLmggKFNXSVRDSF9DT05ELCBTV0lUQ0hfQk9EWSwgU1dJVENIX0xBQkVMUywgQ0FTRV9MT1csCglDQVNFX0hJR0gsIENBU0VfTEFCRUwsIEFTTV9TVFJJTkcsIEFTTV9PVVRQVVRTLCBBU01fSU5QVVRTLAoJQVNNX0NMT0JCRVJTKTogQWRkIHRyZWUgY2hlY2tzLgoKCSogYy1jb21tb24uaCAoU1dJVENIX1RZUEUpOiBSZW5hbWUgdG8gU1dJVENIX1NUTVRfVFlQRS4KCShTV0lUQ0hfU1RNVF9DT05ELCBTV0lUQ0hfU1RNVF9CT0RZKTogTmV3LgoJKiBjLWNvbW1vbi5kZWYgKFNXSVRDSF9TVE1UKTogVXBkYXRlIHRvIG1hdGNoLgoJKiBjLWNvbW1vbi5jIChjX2RvX3N3aXRjaF93YXJuaW5ncyk6IFVzZSBTV0lUQ0hfU1RNVCBhY2Nlc3NvcgoJbWFjcm9zIGluc3RlYWQgb2YgU1dJVENIX0VYUFIgb25lcy4KCSogYy1kdW1wLmMgKGNfZHVtcF90cmVlKTogTGlrZXdpc2UuCgkqIGMtZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfc3dpdGNoX3N0bXQpOiBMaWtld2lzZS4KCSogYy10eXBlY2suYyAoY19zdGFydF9jYXNlLCBkb19jYXNlLCBjX2ZpbmlzaF9jYXNlKTogTGlrZXdpc2UuCgoJKiBkb2MvYy10cmVlLnRleGkgKFNXSVRDSF9TVE1UKTogVXBkYXRlIGFjY2Vzc29yIG1hY3JvIG5hbWVzLgoKMjAwNS0wMS0yNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHVud2luZC1kdzIuYyAoZXhlY3V0ZV9zdGFja19vcCk6IEFkZCBtaXNzaW5nIGNhc2VzIGZvcgoJRFdfT1Bfc2hsLCBEV19PUF9zaHIsIERXX09QX3NocmEsIERXX09QX3hvci4KCjIwMDUtMDEtMjcgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBjb25maWcuZ2NjIChPYnNvbGV0ZSBjb25maWd1cmF0aW9ucyk6IFJlbW92ZSAnZHVtbXknLCBhZGQKCXNwYXJjbGl0ZS0qLWNvZmYqLCBzcGFyY2xpdGUtKi1lbGYqLCBzcGFyYzg2eC0qLWVsZiogYW5kCglzcGFyYy0qLW9wZW5ic2QqLgoKMjAwNS0wMS0yNiAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTk2MzMKCSogdHJlZS1zc2EtYWxpYXMuYyAocHRyX2lzX2RlcmVmZXJlbmNlZF9ieSk6IEFsc28gaGFuZGxlCglDQUxMX0VYUFJzLgoJKG1heWJlX2NyZWF0ZV9nbG9iYWxfdmFyKTogRG8gbm90IGNyZWF0ZSAuR0xPQkFMX1ZBUiBpZiB0aGVyZQoJYXJlIG5vIGNhbGwtY2xvYmJlcmVkIHZhcmlhYmxlcy4KCSogdHJlZS1vdXRvZi1zc2EuYyAoY2hlY2tfcmVwbGFjZWFibGUpOiBSZXR1cm4gZmFsc2UgZm9yIGNhbGxzCgl3aXRoIHNpZGUtZWZmZWN0cy4KCjIwMDUtMDEtMjYgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGRieG91dC5jIChkYnhvdXRfc3ltYm9sX2xvY2F0aW9uKTogUmVzb2x2ZSBjb25zdGFudCBwb29sIHJlZmVyZW5jZXMKCWV2ZW4gZm9yIHZhcmlhYmxlcyB3aXRoIE5VTEwgREVDTF9JTklUSUFMLgoKMjAwNS0wMS0yNiAgU3R1YXJ0IEhhc3RpbmdzICA8c3R1YXJ0QGFwcGxlLmNvbT4KCgkqIGdpbXBsaWZ5LmMgKHNob3J0Y3V0X2NvbmRfZXhwcik6IFJlLWNvbXB1dGUgc2lkZS1lZmZlY3RzLgoKMjAwNS0wMS0yNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzE4MDA4CgkqIGMtZGVjbC5jIChmaW5pc2hfc3RydWN0KTogU2V0IERFQ0xfTU9ERSBhZnRlciByZXNldHRpbmcgYQoJZmllbGQncyB0eXBlLgoJKiBleHByLmMgKHN0b3JlX2ZpZWxkKTogU3RyaXAgY29udmVyc2lvbnMgdG8gb2RkLWJpdC1zaXplZCB0eXBlcwoJaWYgdGhlIGRlc3RpbmF0aW9uIGZpZWxkIHdpZHRoIG1hdGNoZXMuCgoyMDA1LTAxLTI2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYy1kZWNsLmMsIGV4cG1lZC5jLCBleHByLmM6IFJldmVydCBsYXN0IGNoYW5nZS4KCjIwMDUtMDEtMjYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8xODAwOAoJKiBjLWRlY2wuYyAoZmluaXNoX3N0cnVjdCk6IFNldCBERUNMX01PREUgYWZ0ZXIgcmVzZXR0aW5nIGEKCWZpZWxkJ3MgdHlwZS4KCSogZXhwbWVkLmMgKHN0b3JlX2ZpeGVkX2JpdF9maWVsZCk6IENyZWF0ZSBhIHBhcmFkb3hpY2FsIHN1YnJlZwoJaWYgd2UgZG9uJ3QgbmVlZCB0aGUgYml0cyBhYm92ZSB0aG9zZSBwcmVzZW50IGluIHRoZSBjdXJyZW50IG1vZGUuCgkqIGV4cHIuYyAoc3RvcmVfZmllbGQpOiBTdHJpcCBjb252ZXJzaW9ucyB0byBvZGQtYml0LXNpemVkIHR5cGVzCglpZiB0aGUgZGVzdGluYXRpb24gZmllbGQgd2lkdGggbWF0Y2hlcy4KCjIwMDUtMDEtMjYgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL2lyaXM2LmggKEVOREZJTEVfU1BFQyk6IERvbid0IGxpbmsgaW4gaXJpeC1jc3IubyBpZgoJZWl0aGVyIC1mZmFzdC1tYXRoIG9yIC1mdW5zYWZlLW1hdGgtb3B0aW1pemF0aW9ucyBpcyBpbiB1c2UuCgoyMDA1LTAxLTI2ICBNYXJlayBNaWNoYWxraWV3aWN6ICA8bWFyZWttQGFtZWxlay5nZGEucGw+CgoJUFIgdGFyZ2V0LzE5MjkzCglQUiB0YXJnZXQvMTkzMjkKCSogY29uZmlnL2F2ci9hdnIuYyAobm90aWNlX3VwZGF0ZV9jYyk6IE9ubHkgc2V0IGNvbmRpdGlvbiBjb2RlIGZvcgoJYXNocnFpMyBpZiBzaGlmdCBjb3VudCA+IDAuCgkob3V0X3NoaWZ0X3dpdGhfY250KTogSGFuZGxlIHNoaWZ0IGNvdW50IDw9IDAgYXMgYSBuby1vcC4KCShhc2hscWkzX291dCwgYXNobGhpM19vdXQsIGFzaGxzaTNfb3V0LCBhc2hycWkzX291dCwgYXNocmhpM19vdXQsCglhc2hyc2kzX291dCwgbHNocnFpM19vdXQsIGxzaHJoaTNfb3V0LCBsc2hyc2kzX291dCk6IEhhbmRsZSBzaGlmdAoJY291bnQgPD0gMCBhcyBhIG5vLW9wLCBhbmQgc2hpZnQgY291bnQgPj0gd2lkdGggYnkgY29weWluZyB6ZXJvCglvciBzaWduIGJpdCB0byBhbGwgYml0cyBvZiB0aGUgcmVzdWx0LgoJKiBjb25maWcvYXZyL2F2ci5tZCAoYWxsIHNoaWZ0cyk6IEFkZCBhbHRlcm5hdGl2ZXMgZm9yIHplcm8gc2hpZnQKCWNvdW50LCB3aXRoIGF0dHJpYnV0ZSAibGVuZ3RoIiBzZXQgdG8gMCBhbmQgImNjIiBzZXQgdG8gIm5vbmUiLgoKMjAwNS0wMS0yNiAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogZG9jL2ludm9rZS50ZXhpOiBEb2N1bWVudCAtbVRMUy4KCgkqIHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2Zydi9hbGwtdGxzLWdsb2JhbC1keW5hbWljLmM6IE5ldy4KCSogdGVzdHN1aXRlL2djYy50YXJnZXQvZnJ2L2FsbC10bHMtaW5pdGlhbC1leGVjLmM6IE5ldy4KCSogdGVzdHN1aXRlL2djYy50YXJnZXQvZnJ2L2FsbC10bHMtaW5pdGlhbC1leGVjLXBpYy5jOiBOZXcuCgkqIHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2Zydi9hbGwtdGxzLWxvY2FsLWR5bmFtaWMuYzogTmV3LgoJKiB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9mcnYvYWxsLXRscy1sb2NhbC1keW5hbWljLXBsdC5jOiBOZXcuCgkqIHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2Zydi9hbGwtdGxzLWxvY2FsLWR5bmFtaWMtcGx0LXBpYy5jOiBOZXcuCgkqIHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2Zydi9hbGwtdGxzLWxvY2FsLWV4ZWMuYzogTmV3LgoJKiB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9mcnYvYWxsLXRscy1sb2NhbC1leGVjLVRMUy5jOiBOZXcuCgoJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBhIFRMUyBjYXBhYmxlIGdhcy4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDUtMDEtMjYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8xODAwOAoJKiBjb21iaW5lLmMgKG1ha2VfZmllbGRfYXNzaWdubWVudCk6IFNpbXBsaWZ5IHN0b3JlIHRvIHplcm9fZXh0cmFjdAoJZnJvbSBhIHNvdXJjZSB3aXRoIGFuIG92ZXJsYXBwaW5nIG1hc2suCgoyMDA1LTAxLTI2ICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJMjAwNC0xMS0xMSAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvZnJ2L2Zydi5tZDogQWRkIGZyNDAwX2ludGVnZXIgYXV0b21hdG9uLiBEb24ndAoJYWxsb3cgVFlQRV9NVUwsIFRZUEVfTUFDQywgb3IgVFlQRV9DVVQgdG8gaXNzdWUgaW4gcGFyYWxsZWwKCXRvIFRZUEVfTUFDQy4KCjIwMDUtMDEtMjYgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCglQUiBtaWRkbGUtZW5kLzE2NTg1CgkqIGNmZ2J1aWxkLmMgKG1ha2VfZWRnZXMpOiBEbyBub3QgY2xlYXIgb3Igc2V0CgljdXJyZW50X2Z1bmN0aW9uX2hhc19jb21wdXRlZF9qdW1wLgoJKiBmdW5jdGlvbi5oIChzdHJ1Y3QgZnVuY3Rpb24pOiBSZW1vdmUgdGhlIGhhc19jb21wdXRlZF9qdW1wIGZpZWxkLgoJKGN1cnJlbnRfZnVuY3Rpb25faGFzX2NvbXB1dGVkX2p1bXApOiBEbyBub3QgZGVmaW5lLgoJKiBzY2hlZC1yZ24uYyAoaXNfY2ZnX25vbnJlZ3VsYXIpOiBSZXR1cm4gdHJ1ZSBpZiBhIGJhc2ljIGJsb2NrIGVuZHMKCWluIGEgY29tcHV0ZWQganVtcC4gIElnbm9yZSBjdXJyZW50X2Z1bmN0aW9uX2hhc19jb21wdXRlZF9qdW1wLgoKMjAwNS0wMS0yNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzE5NTE1CgkqIGV4cHIuYyAoY2F0ZWdvcml6ZV9jdG9yX2VsZW1lbnRzKTogTmV3IGFyZ3VtZW50IHBfbXVzdF9jbGVhci4KCShjYXRlZ29yaXplX2N0b3JfZWxlbWVudHNfMSk6IExpa2V3aXNlLiAgRGV0ZWN0IGEgdW5pb24gdGhhdCBpc24ndAoJZnVsbHkgaW5pdGlhbGl6ZWQuCgkobW9zdGx5X3plcm9zX3ApOiBVcGRhdGUgZm9yIG5ldyBjYXRlZ29yaXplX2N0b3JfZWxlbWVudHMgYXJndW1lbnQuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2luaXRfY29uc3RydWN0b3IpOiBMaWtld2lzZS4gIE9ubHkgc2hvdmUKCW9iamVjdHMgaW50byBzdGF0aWMgc3RvcmFnZSBpZiB0aGV5IGhhdmUgbW9yZSB0aGFuIG9uZSBub24temVybyB2YWx1ZS4KCSogdHJlZS5oIChjYXRlZ29yaXplX2N0b3JfZWxlbWVudHMpOiBVcGRhdGUgZGVjbC4KCjIwMDUtMDEtMjYgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCglQUiBtaWRkbGUtZW5kLzE5NjE2CgkqIHRyZWUuaCAoQ0FMTF9FWFBSX1RBSUxDQUxMKTogQWRkIGNvbW1lbnQuCgkqIGNhbGxzLmMgKGNoZWNrX3NpYmNhbGxfYXJndW1lbnRfb3ZlcmxhcF8xKTogUmV2ZXJ0IHRoZSBjaGFuZ2UKCXRvIHRoaXMgZnVuY3Rpb24gZnJvbSAyMDA0LTA3LTEwLgoJKiB0cmVlLXRhaWxjYWxsLmMgKHN1aXRhYmxlX2Zvcl90YWlsX29wdF9wKTogRG8gbm90IGNvbnNpZGVyIHRoZQoJdGhlIGN1cnJlbnQgZnVuY3Rpb24gZm9yIHRhaWwgY2FsbCBvcHRpbWl6YXRpb25zIGlmIHRoZSBhZGRyZXNzCglvZiBvbmUgb2YgaXQgaXRzIGFyZ3VtZW50cyBpcyB0YWtlbi4KCjIwMDUtMDEtMjYgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjc2UuYyAoZm9sZF9ydHgpOiBDYWxsIGVxdWl2X2NvbnN0YW50IG9ubHkgd2hlbiBuZWNlc3NhcnkuCgoyMDA1LTAxLTI2ICBCZXJuZCBTY2htaWR0ICA8YmVybmQuc2NobWlkdEBhbmFsb2cuY29tPgoKCSogZnVuY3Rpb24uYyAoZXhwYW5kX2Z1bmN0aW9uX2VuZCk6IElmIGN1cnJlbnRfZnVuY3Rpb25fY2FsbHNfYWxsb2NhLAoJZW1pdCBzdGFjayByZXN0b3JlIGluIGEgcGxhY2UgdGhhdCBpcyByZWFjaGVkIHdoZW4gdGhlIGZ1bmN0aW9uIGZhbGxzCgl0aHJvdWdoIGF0IHRoZSBlbmQuCgoyMDA1LTAxLTI2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmluICguLi8kKGJ1aWxkX3N1YmRpcikvZml4aW5jbHVkZXMvZml4aW5jbCk6IEFkZCBkdW1teQoJcnVsZSB0byBhdm9pZCBtYXRjaGluZyBpbmFwcHJvcHJpYXRlIHN1ZmZpeCBydWxlLgoKMjAwNS0wMS0yNiAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5MjQxCgkqIHRyZWUtaW5saW5lLmMgKGNvcHlfYm9keV9yKTogRG8gbm90IHdhbGsgc3VidHJlZXMgYWZ0ZXIgc3Vic3RpdHV0aW5nLgoKMjAwNS0wMS0yNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjb25maWcvY3Jpcy9jcmlzLmggKExJQl9TUEVDKSA8c2ltKj46IFVzZSAtbHN5c2xpbnV4LCBub3QKCS1sc3lzc2ltLiAgV3JhcCAtbGMgLWxzeXNzaW0gaW4gLS1zdGFydC1ncm91cCAtLWVuZC1ncm91cCBpbnN0ZWFkCglvZiBkb3VibGluZy4KCShTVEFSVEZJTEVfU1BFQyk6IEFkZCBjcnRpLm8sIGJlZm9yZSBjcnRiZWdpbi5vLgoJPHNpbSo+OiBBbHdheXMgdXNlIGNydDEubywgcmVnYXJkbGVzcyBvZiBOIGluIHNpbU4uCgk8IXNpbT46IERyb3Agc3VwcG9ydCBmb3IgLXBnIGFuZCAtcCB2YXJpYW50czsgYWx3YXlzIHVzZSBjcnQwLm8uCgkoRU5ERklMRV9TUEVDKTogQWRkIGNydG4ubywgYWZ0ZXIgY3J0ZW5kLm8uCgkoQ1JUX0NBTExfU1RBVElDX0ZVTkNUSU9OKTogUmVtb3ZlLgoJKiBjb25maWcvY3Jpcy9hb3V0LmggKFNUQVJURklMRV9TUEVDKTogPCFtZWxpbnV4ICYmIHNpbSo+OiBBbHdheXMKCXVzZSBjcnQxLm8sIHJlZ2FyZGxlc3Mgb2YgTiBpbiBzaW1OLgoJPCFzaW0+OiBEcm9wIHN1cHBvcnQgZm9yIC1wZyBhbmQgLXAgdmFyaWFudHM7IGFsd2F5cyB1c2UgY3J0MC5vLgoJKExJQl9TUEVDKTogRG8gbm90IGRlZmluZTsgZGVmYXVsdCB0byB0aGUgb25lIGluIGNvbmZpZy9jcmlzL2NyaXMuaC4KCShDUklTX0NQUF9TVUJUQVJHRVRfU1BFQykgPG1lbGludXggJiYgIW5vc3RkaW5jPjogUmVtb3ZlIHNwZWNpYWwKCWNhc2UgaXN5c3RlbSBzZXR0aW5nLgoJKE1BWF9PRklMRV9BTElHTk1FTlQpOiBDb3JyZWN0IHRvIDMyLCBub3QgMTYuCgoyMDA1LTAxLTI1ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGFpcnMuY29tPgoKCSogZ2ltcGxlLWxvdy5jIChibG9ja19tYXlfZmFsbHRocnUpOiBDb3JyZWN0IGhhbmRsaW5nIG9mCglTV0lUQ0hfRVhQUi0tbWF5IGZhbGwgdGhyb3VnaCBpZiBTV0lUQ0hfTEFCRUxTIGlzIE5VTEwuCgoyMDA1LTAxLTI2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGNvbmZpZy9jcmlzL2NyaXMuaCAoQ1BQX1NQRUMpOiBBZGp1c3QgdGhlIHZhcmlvdXMgbXR1bmU9CgloYW5kbGVycyB0byBtYXRjaCBpbmRlbnRhdGlvbjsgbmVzdGVkIHVuZGVyIHRoZSBtdHVuZT0qIGhhbmRsZXIuCglTaW1pbGFyIGZvciBtY3B1PSBhbmQgbWFyY2g9LgoKMjAwNS0wMS0yNSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9taXBzL2xpbnV4LmggKExJQl9TUEVDKTogUmVtb3ZlIC1ycGF0aC1saW5rLgoJKiBjb25maWcvbWlwcy9saW51eDY0LmggKExJQl9TUEVDKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9tbjEwMzAwL2xpbnV4LmggKExJQl9TUEVDKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC9saW51eC5oIChMSUJfU1BFQyk6IExpa2V3aXNlLgoKMjAwNS0wMS0yNSAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2Zydi9mcnYuYyAoZnJ2X2xlZ2l0aW1pemVfdGxzX2FkZHJlc3MpOiBOZXcuCgkoVEFSR0VUX0hBVkVfVExTKTogRGVmaW5lLgoJKEZSVl9TWU1CT0xfUkVGX1RMU19QKTogRGVmaW5lLgoJKGZydl9vdmVycmlkZV9vcHRpb25zKTogSGFuZGxlIG5ldyByZWdpc3RlciBjbGFzc2VzLgoJKGZydl9sZWdpdGltYXRlX2FkZHJlc3NfcCk6IFJlamVjdCB0bHMgYWRkcmVzc2VzLgoJKGZydl9sZWdpdGltaXplX2FkZHJlc3MpOiBIYW5kbGUgVExTIGFkZHJlc3Nlcy4KCShnZW5faW5saW5lZF90bHNfcGx0KTogTmV3LgoJKGdlbl90bHNtb2ZmKTogTmV3LgoJKGZydl9sZWdpdGltaXplX3Rsc19hZGRyZXNzKTogTmV3LgoJKHVuc3BlY19nb3RfbmFtZSk6IEFkZCBUTFMgZW50cmllcy4KCShnb3QxMl9vcGVyYW5kKTogQWRkIFJfRlJWX1RMU01PRkYxMiBjYXNlLgoJKGZydl9lbWl0X21vdmUpOiBGaXh1cCBUTFMgYWRkcmVzc2VzLgoJKGZydl9lbWl0X21vdnNpKTogTGVnaXRpbWl6ZSBUTFMgYWRkcmVzc2VzLgoKCSogY29uZmlnL2Zydi9mcnYuaCAoTUFTS19CSUdfVExTKTogTmV3LgoJKFRBUkdFVF9CSUdfVExTKTogTmV3LgoJKEhBVkVfQVNfVExTKTogRGVmaW5lLgoJKFRBUkdFVF9TV0lUQ0hFUyk6IEFkZCAtbVRMUyBhbmQgLW10bHMgb3B0aW9ucy4KCShlbnVtIHJlZ19jbGFzcyk6IEFkZCBHUjhfUkVHUywgR1I5X1JFR1MsIEdSODlfUkVHUy4KCShSRUdfQ0xBU1NfTkFNRVMpOiBTYW1lLgoJKFJFR19DTEFTU19DT05URU5UUyk6IFNhbWUuCgkoQ09OU1RSQUlOVF9MRU4pOiBOZXcuCgkoUkVHX0NMQVNTX0ZST01fQ09OU1RSQUlOVCk6IE5ldy4KCShQUkVESUNBVEVfQ09ERVMpOiBBZGQgc3ltYm9saWNfb3BlcmFuZC4KCgkqIGNvbmZpZy9mcnYvZnJ2Lm1kIChkZWZpbmVfY29uc3RhbnRzKTogQWRkIFVOU1BFQ19HRVRUTFNPRkYsCglVTlNQRUNfVExTX0xPQURfR09UVExTT0ZGMTIsIFVOU1BFQ19UTFNfSU5ESVJFQ1RfQ0FMTCwKCVVOU1BFQ19UTFNfVExTREVTQ19MREQsIFVOU1BFQ19UTFNfVExTREVTQ19MRERfQVVYLAoJVU5TUEVDX1RMU19UTFNPRkZfTEQsIFVOU1BFQ19UTFNfTERESSwgVU5TUEVDX1RMU09GRl9ISUxPLAoJUl9GUlZfR09UVExTT0ZGX0hJLCBSX0ZSVl9HT1RUTFNPRkZfTE8sIFJfRlJWX1RMU01PRkZISSwKCVJfRlJWX1RMU01PRkZMTywgUl9GUlZfVExTTU9GRjEyLCBSX0ZSVl9UTFNERVNDSEksCglSX0ZSVl9UTFNERVNDTE8sIFJfRlJWX0dPVFRMU0RFU0NISSwgUl9GUlZfR09UVExTREVTQ0xPLCBHUjhfUkVHLAoJR1I5X1JFRywgR1IxNF9SRUcsIExSUkVHLgoJKHR5cGUpOiBBZGQgbG9hZF9vcl9jYWxsIGF0dHJpYnV0ZS4KCSgibG9hZF9vcl9jYWxsIik6IE5ldyByZXNlcnZhdGlvbi4KCSgiY2FsbF9nZXR0bHNvZmYiKTogTmV3LgoJKCJ0bHNfaW5kaXJlY3RfY2FsbCIpOiBOZXcuCgkoInRsc19sb2FkX2dvdHRsc29mZjEyIik6IE5ldy4KCSgidGxzb2ZmX2hpbG8iKTogTmV3LgoJKCJ0bHNfdGxzZGVzY19sZGQiKTogTmV3LgoJKCJ0bHNfdGxzb2ZmX2xkIik6IE5ldy4KCSgidGxzX2xkZGkiKTogTmV3LgoKCSogY29uZmlnL2Zydi9mcnYtcHJvdG9zLmggKHN5bWJvbGljX29wZXJhbmQpOiBQcm90b2l6ZS4KCgkyMDA1LTAxLTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9mcnYvZnJ2LmggKEFTTV9PVVRQVVRfRFdBUkZfRFRQUkVMKTogRGVmaW5lLgoJKiBjb25maWcvZnJ2L2Zydi1wcm90b3MuaCAoZnJ2X291dHB1dF9kd2FyZl9kdHByZWwpOiBEZWNsYXJlLgoJKiBjb25maWcvZnJ2L2Zydi5jIChUTFNfQklBUyk6IERlZmluZS4KCShmcnZfb3V0cHV0X2R3YXJmX2R0cHJlbCk6IE5ldy4KCjIwMDUtMDEtMjYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTk1NzkKCSogaWZjdnQuYyAobm9jZV90cnlfY21vdmVfYXJpdGgpOiBJZiBlbWl0dGluZyBpbnN0cnVjdGlvbnMgdG8gc2V0IHVwCglib3RoIEEgYW5kIEIsIHNlZSBpZiB0aGV5IGRvbid0IGNsb2JiZXIgcmVnaXN0ZXJzIHRoZSBvdGhlciBleHByIHVzZXMuCgoyMDA1LTAxLTI1ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3QuY29tPgoKCSogcmVhbC5jIChkb19hZGQpOiBJbml0aWFsaXplIHNpZ25hbGxpbmcgYW5kIGNhbm9uaWNhbCBtZW1iZXJzLgoKCSogcmVhbC5jIChyZWFsX2Zyb21faW50ZWdlcik6IFplcm8gb3V0IGRlc3RpbmF0aW9uLgoKMjAwNS0wMS0xOCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCVBSIHRyZWUtb3B0aW1pemUvMTkzMzcKCSogdHJlZS1pbmxpbmUuYyAoaW5pdGlhbGl6ZV9pbmxpbmVkX3BhcmFtZXRlcnMpOiBDb3B5CglzYXZlZF9zdGF0aWNfY2hhaW5fZGVjbCBvbmx5LgoKMjAwNS0wMS0yNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTk1NTYKCVBSIHRhcmdldC8xOTU4NAoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKHg4Nl9pbnRlcl91bml0X21vdmVzKTogWmVyby4KCShpeDg2X3ByZWZlcnJlZF9yZWxvYWRfY2xhc3MpOiBSZXdyaXRlIGZwLWNvbnN0YW50IHNlY3Rpb24sIHdpdGgKCTgwMzg3IGVuYWJsZWQsIHRvIHJldHVybiBhIHByb3BlciBzdWJjbGFzcy4gIFJldHVybiB0aGUgc3Vic2V0IHRoYXQKCW92ZXJsYXBzIHdpdGggR0VORVJBTF9SRUdTIGZvciBQTFVTLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChtb3ZzaV8xLCBtb3ZkaV8yKTogU2V0IHR5cGUgdG8gIm1teCIgZm9yIHB4b3IuCgoyMDA1LTAxLTI1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTk2MDkKCSogdHJlZS1jb21wbGV4LmMgKGV4cGFuZF9jb21wbGV4X2Rpdl93aWRlKTogVXNlIHRoZSBjb3JyZWN0IGZvcm11bGFlLgoKMjAwNS0wMS0yNSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBleHBtZWQuYyAoY2hvb3NlX211bHRpcGxpZXIpOiBDaGFuZ2UgaW50ZXJmYWNlIHRvIHJldHVybiB0aGUKCW11bHRpcGxpZXIgbG93cGFydCBhcyBhbiBydHggaW5zdGVhZCBvZiBhbiB1bnNpZ25lZCBIT1NUX1dJREVfSU5ULgoJKGV4cGFuZF9kaXZtb2QpOiBVcGRhdGUgY2FsbHMgdG8gY2hvb3NlX211bHRpcGxpZXIuCgoyMDA1LTAxLTI0ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCVBSIG1pZGRsZS1lbmQvMTkzMzAKCSogZXhwbWVkLmMgKGV4dHJhY3RfYml0X2ZpZWxkKTogVXNlIGFkanVzdF9hZGRyZXNzIGluc3RlYWQgb2YKCWdlbl9sb3dwYXJ0IHdoZW4gb3AwIGlzIGEgTUVNLgoKMjAwNS0wMS0yNCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogY2ZnZXhwYW5kLmMgKGV4cGFuZF9naW1wbGVfdGFpbGNhbGwpOiBGaXggdHlwby4KCjIwMDUtMDEtMjQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL2lyaXgtY3NyLmM6IE5ldyBmaWxlLgoJKiBjb25maWcvbWlwcy90LWlyaXM2IChpcml4LWNzci5vKTogTmV3IHJ1bGUgdG8gYnVpbGQgaXQuCgkoRVhUUkFfTVVMVElMSUJfUEFSVFMpOiBBZGQgaXJpeC1jc3Iuby4KCSogY29uZmlnL21pcHMvaXJpczYuaCAoRU5ERklMRV9TUEVDKTogSW5jbHVkZSBpdCBpbiBuMzIgYW5kIG42NAoJZXhlY3V0YWJsZXMuCgoyMDA1LTAxLTI0ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIGJvb3RzdHJhcC8xOTM2NAoJKiBjb25maWcuZ2NjIChzcGFyYy0qLWVsZiopOiBSZW1vdmUgc29sMi5oLCBzcGFyYy9zb2wyLmggYW5kCglzcGFyYy9lbGYuaCwgYWRkIHNwYXJjL3NwLWVsZi5oLgoJKHNwYXJjLSotcnRlbXMqKTogTGlrZXdpc2UuCgkoc3BhcmNsaXRlLSotZWxmKik6IFJlbW92ZSBzb2wyLmgsIHNwYXJjL3NvbDIuaCwgc3BhcmMvZWxmLmggYW5kCgl0bS1kd2FyZjIuaCwgYWRkIHNwYXJjL3NwLWVsZi5oLgoJKHNwYXJjODZ4LSotZWxmKTogTGlrZXdpc2UuCgkoc3BhcmM2NC0qLWVsZiopOiBSZW1vdmUgc29sMi5oLCBzcGFyYy9zb2wyLmggYW5kIHRtLWR3YXJmMi5oLgoJKiBjb25maWcvc3BhcmMvbGl0ZWVsZi5oIChUQVJHRVRfU1VCX09TX0NQUF9CVUlMVElOUyk6IFJlbmFtZSBpbnRvCglUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TLgoJKiBjb25maWcvc3BhcmMvc3A4NngtZWxmIChUQVJHRVRfU1VCX09TX0NQUF9CVUlMVElOUyk6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvcnRlbXNlbGYuaCAoVEFSR0VUX1NVQl9PU19DUFBfQlVJTFRJTlMpOiBMaWtld2lzZS4KCVVuZGVmaW5lIGl0LgoJKiBjb25maWcvc3BhcmMvb3BlbmJzZDY0LmggKE5PX0lNUExJQ0lUX0VYVEVSTl9DKTogVW5kZWZpbmUuCgkqIGNvbmZpZy9zcGFyYy9zcDY0LWVsZi5oIChOT19JTVBMSUNJVF9FWFRFUk5fQyk6IE5ldyBtYWNyby4KCShTV0lUQ0hfVEFLRVNfQVJHKTogTGlrZXdpc2UuCgkoTE9DQUxfTEFCRUxfUFJFRklYKTogTGlrZXdpc2UuCgkoQVNNX0dFTkVSQVRFX0lOVEVSTkFMX0xBQkVMKTogTGlrZXdpc2UuCgkoVEFSR0VUX05fRk9STUFUX1RZUEVTKTogRGVsZXRlLgoJKFRBUkdFVF9GT1JNQVRfVFlQRVMpOiBMaWtld2lzZS4KCShBU01fREVDTEFSRV9GVU5DVElPTl9TSVpFKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zcGFyYy9lbGYuaDogRGVsZXRlLgoJKiBjb25maWcvc3BhcmMvc3AtZWxmLmg6IE5ldyBmaWxlLgoKMjAwNS0wMS0yNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtZmxvdy1pbmxpbmUuaCAocGhpX2FyZ19mcm9tX2VkZ2UpOiBSZW1vdmUuCgkqIHRyZWUtZmxvdy5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlLgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5oLCB0cmVlLXNzYS10aHJlYWR1cGRhdGUuYywgdHJlZS1zc2EuYywKCXRyZWUtdmVjdG9yaXplci5jOiBVc2UgZGVzdF9pZHggaW5zdGVhZCBvZiBwaGlfYXJnX2Zyb21fZWRnZS4KCjIwMDUtMDEtMjQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xNzc1MQoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZmlsZV9zdGFydCk6IENyZWF0ZSB0b2Mgc2VjdGlvbgoJZm9yIEFJWCBBQkkgb3IgRUxGIC1mUElDLgoJKHJzNjAwMF9lbWl0X2xvYWRfdG9jX3RhYmxlKTogRG9uJ3QgY3JlYXRlIHRvY19zZWN0aW9uIGhlcmUuCgkocnM2MDAwX3hjb2ZmX2ZpbGVfc3RhcnQpOiBOb3IgaGVyZS4KCjIwMDUtMDEtMjQgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdC5jb20+CgoJKiBzaC5jIChyYS5oKTogRG9uJ3QgI2luY2x1ZGUuCgkoaGFyZF9yZWdzX2ludGVyc2VjdF9wKTogTmV3IGZ1bmN0aW9uLCByZXN1cnJlY3RlZCBmcm9tIHJhLmMuCgoJKiBzaC5jOiBGaXggMTk5NiBDb3B5cmlnaHQuCgoyMDA1LTAxLTI0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoJICAgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIHJlZ3JlbmFtZS5jIChub3RlX3NldHMpOiBIYW5kbGUgc3VicmVncy4KCjIwMDUtMDEtMjQgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGJvb3RzdHJhcC8xODA1OAoJKiBnZW5jb25kaXRpb25zLmMgKHdyaXRlX2hlYWRlciwgd3JpdGVfY29uZGl0aW9ucyk6IEVsaWRlIGZpbGUgaWYKCW5vdCBHQ0MgPj0gMy4wLjEuCgoyMDA1LTAxLTI0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYy1vcHRzLmMsIGV4cG1lZC5jLCBnZW5ndHlwZS5jLCB0cmVlLWNvbXBsZXguYywKCWNvbmZpZy9hcm0vaXdtbXh0Lm1kLCBjb25maWcvYXZyL2F2ci5jLCBjb25maWcvczM5MC9zMzkwLmg6CglVcGRhdGUgY29weXJpZ2h0LgoKMjAwNS0wMS0yNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBidWlsdGlucy5jIChnZXRfcG9pbnRlcl9hbGlnbm1lbnQsIGdpbXBsaWZ5X3ZhX2FyZ19leHByLAoJZXhwYW5kX2J1aWx0aW5fcHJpbnRmLCBleHBhbmRfYnVpbHRpbl9mcHJpbnRmLAoJZXhwYW5kX2J1aWx0aW5fc3ByaW50Zik6IFVzZSBQT0lOVEVSX1RZUEVfUCBpbnN0ZWFkIFRSRUVfQ09ERQoJY2hlY2tpbmcgYWdhaW5zdCBQT0lOVEVSX1RZUEUuCgkodmFsaWRhdGVfYXJnbGlzdCk6IEhhbmRsZSBQT0lOVEVSX1RZUEUgY29kZSBieSBjaGVja2luZwoJUE9JTlRFUl9UWVBFX1AuCgoyMDA1LTAxLTI0ICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogcnRsYW5hbC5jIChub25fcnR4X3N0YXJ0aW5nX29wZXJhbmRzLCBmb3JfZWFjaF9ydHhfMSwKCWluaXRfcnRsYW5hbCk6IE5ldy4KCShmb3JfZWFjaF9ydHgpOiBDYWxsIGZvcl9lYWNoX3J0eF8xLgoJKiBydGwuaCAoaW5pdF9ydGxhbmFsKTogRGVjbGFyZS4KCSogdG9wbGV2LmMgKGJhY2tlbmRfaW5pdCk6IENhbGwgaW5pdF9ydGxhbmFsLgoKMjAwNS0wMS0yNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBmbG93LmMgKHByb3BhZ2F0ZV9vbmVfaW5zbik6IEZvcm1hdHRpbmcuCgoJUFIgbWlkZGxlLWVuZC8xOTU1MQoJKiBmbG93LmMgKGxpYmNhbGxfZGVhZF9wKTogQmUgbW9yZSBjb25zZXJ2YXRpdmUgaWYgdW5zdXJlLgoJSWYgdGhlcmUgYXJlIGFueSBpbnN0cnVjdGlvbnMgYmV0d2VlbiBpbnNuIGFuZCBjYWxsLCBzZWUgaWYgdGhleSBhcmUKCWFsbCBkZWFkIGJlZm9yZSBzYXlpbmcgdGhlIGxpYmNhbGwgaXMgZGVhZC4KCjIwMDUtMDEtMjQgIFVyb3MgQml6amFrICA8dXJvc0Brc3MtbG9rYS5zaT4KCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKCpleHRlbmRzZmRmMl9zc2UpOiBVc2UgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIgoJb3BlcmFuZCBjb25zdHJhaW50IGZvciBvcGVyYW5kIDAuCgoyMDA1LTAxLTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIDE5NDg2CgkqIHRyZWUtY29tcGxleC5jIChleHBhbmRfY29tcGxleF9kaXZfd2lkZSk6IFNldCBFREdFX0ZBTExUSFJVIG9uCgllZGdlcyBsZWFkaW5nIHRvIGpvaW4gYmxvY2suCgoyMDA1LTAxLTIzICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGV4cG1lZC5jIChleHBhbmRfbXVsdF9oaWdocGFydCk6IE1ha2Ugc3RhdGljLiAgQ2hhbmdlIHR5cGUgb2YKCWNvbnN0YW50IG11bHRpcGxpZXIgYXJndW1lbnQgZnJvbSB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHRvIHJ0eC4KCShleHBhbmRfZGl2bW9kKTogVXBkYXRlcyBjYWxscyB0byBleHBhbmRfbXVsdF9oaWdocGFydCBieSB1c2luZwoJZ2VuX2ludF9tb2RlIHRvIHBhc3MgYSBDT05TVF9JTlQgcnR4LgoJKiBydGwuaCAoZXhwYW5kX211bHRfaGlnaHBhcnQpOiBSZW1vdmUgcHJvdG90eXBlLgoKMjAwNS0wMS0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGZsb3cuYyAocmVnc2V0X2J5dGVzLCByZWdzZXRfc2l6ZSk6IFJlbW92ZS4KCgkqIGNmZ2FuYWwuYzogRml4IGEgcmVmZXJlbmNlIHRvIEhhcnZleSdzIHBhcGVyLgoKMjAwNS0wMS0yMyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTk0NjQKCSogdHJlZS1vcHRpbWl6ZS5jIChpbml0X3RyZWVfb3B0aW1pemF0aW9uX3Bhc3Nlcyk6IEFkZCBvbmUgbW9yZQoJY29weXJlbmFtZSBwYXNzIGp1c3QgYmVmb3JlIG91dC1vZi1zc2EuCgoyMDA1LTAxLTIzICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBib290c3RyYXAvMTgwNTgKCSogcmVjb2cuYyAocmVjb2dfbWVtb2l6ZWQpOiBEb24ndCBkZWZpbmUgaWYgR0VORVJBVE9SX0ZJTEUuCgkqIGdnYy1ub25lLmMgKGdnY19mcmVlKTogRGVmaW5lLgoKMjAwNS0wMS0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNzZS5jIChtYXhfcmVnLCBtYXhfaW5zbl91aWQpOiBSZW1vdmUuCgkoY3NlX21haW4pOiBEb24ndCBhY2Nlc3MgbWF4X3JlZyBvciBtYXhfaW5zbl91aWQuCgoJKiBjLWNvbW1vbi5jIChleHBsaWNpdF9mbGFnX3NpZ25lZF9iaXRmaWVsZHMsCglsYW5nX3N0YXRlbWVudF9jb2RlX3AsIGxhbmdfZXhwYW5kX2Z1bmN0aW9uX2VuZCk6IFJlbW92ZS4KCSogYy1jb21tb24uaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGRlY2xhcmF0aW9ucy4KCSogYy1vcHRzLmMgKGNfY29tbW9uX2hhbmRsZV9vcHRpb24pOiBSZW1vdmUgYWxsIHdyaXRlIGFjY2VzcwoJdG8gZXhwbGljaXRfZmxhZ19zaWduZWRfYml0ZmllbGRzLgoKCSogY2dyYXBoLmMgKGNncmFwaF92YXJwb29sX25fbm9kZXMpOiBSZW1vdmUuCgkoY2dyYXBoX3ZhcnBvb2xfbm9kZSk6IERvbid0IGFjY2VzcyBjZ3JhcGhfdmFycG9vbF9uX25vZGVzLgoJKiBjZ3JhcGguaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGRlY2xhcmF0aW9uLgoKCSogZ2NzZS5jIChudWxsX3BvaW50ZXJfaW5mbyk6IFJlbW92ZS4KCjIwMDUtMDEtMjMgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoJICAgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBjb21iaW5lLmMgKHNpbXBsaWZ5X2xvZ2ljYWwpOiBPbmx5IHNpbXBsaWZ5IGxvZ2ljYWwgZXhwcmVzc2lvbnMKCW9mIHRoZSBmb3JtIGlvcihhbmQoeCx5KSx6KSBieSB0aGUgaW52ZXJzZSBkaXN0cmlidXRpdmUgbGF3IGlmIHRoZQoJcmVzdWx0IGlzIGNoZWFwZXIgdGhhbiB0aGUgb3JpZ2luYWwuCgoyMDA1LTAxLTIzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYWxpYXMuYywgYy1jb21tb24uaCwgYy1pbmNwYXRoLmMsIGMtaW5jcGF0aC5oLCBleHByLmMsCglmb2xkLWNvbnN0LmMsIGdpbXBsaWZ5LmMsIHBhcmFtcy5oLCB0cmVlLWRhdGEtcmVmLmMsCgl0cmVlLWlmLWNvbnYuYywgdHJlZS1uZXN0ZWQuYywgdHJlZS1vdXRvZi1zc2EuYywKCXRyZWUtc3NhLWRvbS5jLCB0cmVlLXZlY3Rvcml6ZXIuYywgdHJlZS5kZWYsIGNvbmZpZy9kYXJ3aW4uYywKCWNvbmZpZy9mcmVlYnNkLXNwZWMuaCwgY29uZmlnL2FybS9hcm0uaCwKCWNvbmZpZy9oODMwMC9oODMwMC5tZCwgY29uZmlnL2kzODYvaTM4Ni5tZCwKCWNvbmZpZy9pMzg2L3ByZWRpY2F0ZXMubWQsIGNvbmZpZy9pMzg2L3NzZS5tZCwKCWNvbmZpZy9pYTY0L2lhNjQuYywgY29uZmlnL2lwMmsvaXAyay5jLCBjb25maWcvczM5MC9zMzkwLmMsCgljb25maWcvdmF4L3ZheC5tZDogRml4IGNvbW1lbnQgdHlwb3MuICBGb2xsb3cgc3BlbGxpbmcKCWNvbnZlbnRpb25zLgoKMjAwNS0wMS0yMyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogZ2VuZ3R5cGUuYyAod2Fsa190eXBlKTogUHJvZHVjZSBgbm90IGVxdWFsIHRvJyBjb21wYXJlcyBmb3IgbG9vcAoJdGVzdHMsIGluc3RlYWQgb2YgYGxlc3MgdGhhbicuCgoyMDA1LTAxLTIzICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBmdW5jdGlvbi5jIChhc3NpZ25fcGFybV9zZXR1cF9ibG9jayk6IFdoZW4gY3JlYXRpbmcgYSBuZXcgc3RhY2sgc2xvdAoJZm9yIGEgcGFyYW1ldGVyLCBnZXQgaXRzIGFsaWdubWVudCBmcm9tIHRoZSBwYXJhbWV0ZXIncyBERUNMX0FMSUdOCglyYXRoZXIgdGhhbiB0aGUgdHlwZSdzIFRZUEVfQUxJR04uICBNYWtlIHN1cmUgdGhhdCB0aGUgcGFyYW1ldGVyCglpcyBhdCBsZWFzdCB3b3JkIGFsaWduZWQuCgoyMDA1LTAxLTIyICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE5Mzc4CgkqIGNvbmZpZy9hdnIvYXZyLmMgKGF2cl9oYXJkX3JlZ25vX21vZGVfb2spOiBSZXdyaXRlLgoKMjAwNS0wMS0yMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTk1MDYKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAobW92c2ZjY18xX3NzZV9tYXgpOiBVc2Ugbm9uaW1tZWRpYXRlX29wZXJhbmQKCWluIGJvdGggY29tcGFyZSBvcGVyYW5kcy4KCShtb3ZkZmNjXzFfc3NlX21heCk6IExpa2V3aXNlLgoJKG1vdnNmY2NfMV9zc2UpOiBMaWtld2lzZS4gIEFkZCBlYXJseWNsb2JiZXIgZm9yIHNjcmF0Y2guCgkobW92ZGZjY18xX3NzZSk6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfc3BsaXRfc3NlX21vdmNjKTogRW1pdCBjb3BpZXMgaW50byB0aGUKCXNjcmF0Y2ggcmVnaXN0ZXIgYXMgbmVlZGVkLgoKMjAwNS0wMS0yMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKHNtYXhzZjMpOiBGaXggbW5lbW9uaWMgdHlwby4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9wcmVwYXJlX2ZwX2NvbXBhcmVfYXJncyk6IEZpeCBpc19zc2UgdGVzdC4KCjIwMDUtMDEtMjIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBnZW5vcGluaXQuYyAob3B0YWJzKTogVXNlIHNtaW4vc21heCBmb3IgZmxvYXRpbmcgcG9pbnQgdG9vLgoJKiBkb2MvbWQudGV4aTogVXBkYXRlIHRvIG1hdGNoLiAgQ2xhcmlmeSB0aGF0IGZsb2F0aW5nIHBvaW50CglyZXN1bHRzIGFyZSB1bmRlZmluZWQgZm9yICswLy0wIGFuZCBOYU4uCgkqIGRvYy9ydGwudGV4aTogTGlrZXdpc2UuCgkqIHJ0bC5kZWYgKFNNSU4sIFNNQVgpOiBMaWtld2lzZQoJKiB0cmVlLmRlZiAoTUlOX0VYUFIsIE1BWF9FWFBSKTogTGlrZXdpc2UuCgoJKiBjb25maWcvYWxwaGEvYWxwaGEubWQgKHNtYXhkZjMsIHNtaW5kZjMsIHNtYXhzZjMsIHNtaW5zZjMpOiBBZGQKCWxlYWRpbmcgJ3MnIHRvIHRoZSBuYW1lLgoJKiBjb25maWcvaWE2NC9pYTY0Lm1kIChzbWF4c2YzLCBzbWluc2YzLCBzbWF4ZGYzLCBzbWluZGYzLAoJc21heHhmMywgc21pbnhmMyk6IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAoc21heGRmMywgc21pbmRmMywgc21heHNmMywgc21pbnNmMyk6CglMaWtld2lzZS4KCjIwMDUtMDEtMjIgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvYXJtL2FybS5tZDogVXNlICJVeSIgY29uc3RyYWludCBmb3Igd2NnciBsb2FkL3N0b3Jlcy4KCjIwMDUtMDEtMjEgIE1hcmsgRGV0dGluZ2VyICA8ZGV0dGluZ2VAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoc3RydWN0IHByb2Nlc3Nvcl9jb3N0cyk6IE5ldyBmaWVsZHMKCWRsZ3IsIGRsciwgZHIsIGRzZ2ZyLCBkc2dyLgoJKHo5MDBfY29zdCwgejk5MF9jb3N0KTogVmFsdWVzIGZvciBuZXcgZmllbGRzLgoJKHMzOTBfcnR4X2Nvc3RzKTogTmV3IGNhc2VzIE1FTSB1bmQgQ09NUEFSRSBpbiBzd2l0Y2gKCXN0YXRlbWVudC4gTW9kaWZpZWQgaGFuZGxpbmcgb2YgU0lHTl9FWFRFTkQsIFpFUk9fRVhURU5ELAoJRElWLCBNT0QsIFVESVYsIFVNT0QuCgoyMDA1LTAxLTIxICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLm1kICgiZG9sb29wX3NpNjQiKTogUmVsb2FkIGlucHV0IHZhbHVlIGRpcmVjdGx5CglpbnRvIHRoZSByZWdpc3RlciBiZWluZyBkZWNyZW1lbnRlZC4KCSgiZG9sb29wX3NpMzEiLCAiZG9sb29wX2RpIik6IExpa2V3aXNlLgoJKCIqZG9sb29wX3NpX2xvbmciKTogQWRhcHQgcGF0dGVybi4KCjIwMDUtMDEtMjEgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoSEFSRF9SRUdOT19OUkVHUyk6IEZpeCBjb21wdXRhdGlvbiBmb3IKCWFjY2VzcyByZWdpc3RlcnMuCgkoQ0xBU1NfTUFYX05SRUdTKTogTGlrZXdpc2UuCgoyMDA1LTAxLTIxICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIGRvYy90cmVlLXNzYS50ZXhpIChTdGF0ZW1lbnQgT3BlcmFuZHMpOiBBZGQgZXhhbXBsZSBmb3IgbmV3CgltdXN0LWRlZiBtYWNyby4gTm90ZSBkZXByZWNhdGlvbiBvZiBvbGQgb3BlcmFuZHMgaW50ZXJmYWNlLgoKMjAwNS0wMS0yMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5NDg0CgkqIHRyZWUtY2ZnLmMgKHJlbW92ZV9mYWxsdGhydV9lZGdlKTogTmV3IGZ1bmN0aW9uLgoJKGNsZWFudXBfY29udHJvbF9mbG93KTogUmVtb3ZlIGZhbGx0aHJ1IGVkZ2VzIGZyb20gY2FsbHMgdGhhdCBhcmUKCW5vdyBrbm93biBub3QgdG8gcmV0dXJuLgoKMjAwNS0wMS0yMCAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJRml4IFBSIHRyZWUtb3B0aW1pemF0aW9uLzE5MDM4CgkqIHRyZWUtc3NhLWRvbS5jIChjcHJvcF9vcGVyYW5kKTogRG9uJ3QgcmVwbGFjZSBsb29wIGludmFlcmlhbnQKCWNvcGllcyB3aXRoIGxvb3AgdmFyaWFudCBvbmVzLgoKMjAwNS0wMS0yMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNmZ2FuYWwuYywgcmVhbC5oLCByZW9yZy5jLCB0aW1ldmFyLmRlZiwgdHJlZS1zc2EtY2NwLmMsCgljb25maWcvYWxwaGEvYWxwaGEtcHJvdG9zLmgsIGNvbmZpZy9hbHBoYS9hbHBoYS5oLAoJY29uZmlnL2FscGhhL2FscGhhLm1kLCBjb25maWcvYWxwaGEvcHJlZGljYXRlcy5tZCwKCWNvbmZpZy9zcGFyYy9mcmVlYnNkLmgsIGNvbmZpZy9zcGFyYy9uZXRic2QtZWxmLmgsCgljb25maWcvc3BhcmMvc29sMi5oOiBVcGRhdGUgY29weXJpZ2h0LgoKCSogdHJlZS1jZmcuYyAocmVtb3ZlX2ZvcndhcmRlcl9ibG9ja193aXRoX3BoaSk6IExvb2sgYXQgdGhlCglmaXJzdCBsYWJlbCB0byBzZWUgaWYgaXQgaXMgYSBub25sb2NhbCBsYWJlbC4KCjIwMDUtMDEtMjIgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCSAgICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0YXJnZXQvMTk0OTEKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3ZhX3N0YXJ0KTogU2F0dXJhdGUgbl9ncHIgYXQKCW1heGltdW0gbnVtYmVyIG9mIEdQUnMuICBTYXR1cmF0ZSBuX2ZwciBhdCBtYXhpbXVtIG51bWJlciBvZiBGUFJzLgoKMjAwNS0wMS0yMiAgUmFsZiBDb3JzZXBpdXMgIDxyYWxmLmNvcnNlcGl1c0BydGVtcy5vcmc+CgoJKiBjb25maWcvcnM2MDAwL3J0ZW1zLmg6IFVwZGF0ZSBjb3B5cmlnaHQuCgoyMDA1LTAxLTIyICBSYWxmIENvcnNlcGl1cyAgPHJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZz4KCglQUiB0YXJnZXQvMTk1NDgKCSogY29uZmlnL3JzNjAwMC9ydGVtcy5oOiBSZXN1cnJlY3QgY3BwX29zX3J0ZW1zX3NwZWMgZnJvbSBnY2MgPCAzLjQuCgkoQ1BQX09TX1JURU1TX1NQRUMpOiBOZXcgKEZyb20gZ2NjLTMuMydzIGNvbmZpZy9yczYwMDAvc3lzNC5oKS4KCShTVUJTVUJUQVJHRVRfRVhUUkFfU1BFQ1MpOiBVc2UgQ1BQX09TX1JURU1TX1NQRUMuCgoyMDA1LTAxLTIyICBWb2xrZXIgUmVpY2hlbHQgIDxyZWljaGVsdEBpZ3BtLnJ3dGgtYWFjaGVuLmRlPgoKCVBSIGMvMTg4MDkKCSogYy10eXBlY2suYyAoY29udmVydF9hcmd1bWVudHMpOiBDaGVjayBmb3IgZXJyb3JfbWFya19ub2RlLgoKMjAwNS0wMS0yMSAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBhaXJzLmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xMzAwMAoJKiB0cmVlLWlubGluZS5jOiBJbmNsdWRlICJ0cmVlLWZsb3cuaCIuCgkoZXhwYW5kX2NhbGxfaW5saW5lKTogSWYgd2Fybl9yZXR1cm5fdHlwZSwgd2FybiBpZiBub24tdm9pZCBpbmxpbmUKCWZ1bmN0aW9uIGZhbGxzIHRocm91Z2guCgkqIHRyZWUtY2ZnLmMgKGV4ZWN1dGVfd2Fybl9mdW5jdGlvbl9yZXR1cm4pOiBEb24ndCB3YXJuIGFib3V0Cgljb250cm9sIHJlYWNoaW5nIGVuZCBpZiBUUkVFX05PX1dBUk5JTkcgaXMgc2V0LiAgU2V0CglUUkVFX05PX1dBUk5JTkcuCgkqIGdpbXBsZS1sb3cuYyAoYmxvY2tfbWF5X2ZhbGx0aHJ1KTogRG9uJ3QgYXNzdW1lIHRoYXQgU1dJVENIX0VYUFIKCWhhcyBiZWVuIGxvd2VyZWQuCgkqIGdpbXBsaWZ5LmMgKHNob3J0Y3V0X2NvbmRfZXhwcik6IERvbid0IGVtaXQgYSBqdW1wIG92ZXIgdGhlIGVsc2UKCWJyYW5jaCBpZiB3ZSBkb24ndCBuZWVkIG9uZS4KCSogYy10eXBlY2suYzogSW5jbHVkZSAidHJlZS1mbG93LmgiCgkoY19maW5pc2hfYmNfc3RtdCk6IERvbid0IGFkZCBhIGdvdG8gaWYgdGhlIGN1cnJlbnQgc3RhdGVtZW50CglsaXN0IGRvZXNuJ3QgZmFsbCB0aHJvdWdoIHRvIHRoZSBjdXJyZW50IHBvaW50LgoKMjAwNS0wMS0yMSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi81NzYKCSogcmVhbC5jIChyZWFsX2FyaXRobWV0aWMpOiBDaGFuZ2UgcmV0dXJuIHR5cGUgZnJvbSB2b2lkIHRvIGJvb2wKCXRvIHJldHVybiBhbiBpbmRpY2F0aW9uIHRoYXQgdGhlIHJlc3VsdCBtYXkgYmUgaW5leGFjdC4KCSogcmVhbC5oIChyZWFsX2FyaXRobWVyaWMpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiBmb2xkLWNvbnN0LmMgKGNvbnN0X2Jpbm9wKTogIERvbid0IGNvbnN0YW50IGZvbGQgZmxvYXRpbmcKCXBvaW50IGV4cHJlc3Npb25zIHdoZW4gdGhlIHVzZXIgc3BlY2lmaWVzIC1mcm91bmRpbmctbWF0aCBhbmQKCXRoZSByZXN1bHQgbWF5IGRlcGVuZCB1cG9uIHRoZSBydW4tdGltZSByb3VuZGluZyBtb2RlLgoJKGZvbGRfY29udmVydF9jb25zdF9yZWFsX2Zyb21fcmVhbCk6IENsZWFuLXVwLgoJKGZvbGRfaW5pdGlhbGl6ZXIpOiBJZ25vcmUgZmxhZ19yb3VuZGluZ19tYXRoIGZvciBpbml0aWFsaXplcnMuCgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9iaW5hcnlfb3BlcmF0aW9uKTogTGlrZXdpc2UsIGRvbid0Cgljb25zdGFudCBmb2xkIEZQIG9wZXJhdGlvbnMgd2l0aCBmbGFnX3JvdW5kaW5nX21hdGggaWYgdGhlCglyZXN1bHQgbWF5IGRlcGVuZCB1cG9uIHRoZSBydW4tdGltZSByb3VuZGluZyBtb2RlLgoKMjAwNS0wMS0yMSAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgoKCSogYy1jcHBidWlsdGluLmMgKGRlZmluZV9fR05VQ19fKTogQ29ycmVjdCBhc3NlcnRpb24uCgoyMDA1LTAxLTIxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYzogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA1LTAxLTIxICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3QuY29tPgoKCSogcGFzc2VzLmMgKHJlc3Rfb2ZfaGFuZGxlX2Zsb3cyKTogQ2xvc2UgLyBvcGVuIHRoZSBmbG93MiBkdW1wIGZpbGUKCWFyb3VuZCB0aGUgY2FsbCB0byByZXN0X29mX2hhbmRsZV9icmFuY2hfdGFyZ2V0X2xvYWRfb3B0aW1pemUuCgoyMDA1LTAxLTIxICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogY29uZmlnLmdjYyAoc3BhcmMtKi1uZXRic2RlbGYqKTogSW5jbHVkZSBkYnhlbGYuaAoJKHNwYXJjNjQtKi1vcGVuYnNkKik6IExpa2V3aXNlLgoJKHNwYXJjbGl0ZS0qLWVsZiopOiBJbmNsdWRlIHRtLWR3YXJmMi5oLgoJKHNwYXJjODZ4LSotZWxmKik6IExpa2V3aXNlLgoJKHNwYXJjNjQtKi1lbGYqKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zcGFyYy9saW51eDY0LmggKERXQVJGMl9ERUJVR0dJTkdfSU5GTyk6IERlbGV0ZS4KCShEQlhfREVCVUdHSU5HX0lORk8pOiBMaWtld2lzZS4KCSogY29uZmlnL3NwYXJjL2xpdGVlbGYuaCAoRFdBUkYyX0RFQlVHR0lOR19JTkZPKTogTGlrZXdpc2UuCgkoUFJFRkVSUkVEX0RFQlVHR0lOR19UWVBFKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zcGFyYy9uZXRic2QtZWxmLmggKFBSRUZFUlJFRF9ERUJVR0dJTkdfVFlQRSk6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvc3A2NC1lbGYuaCAoREJYX0RFQlVHR0lOR19JTkZPKTogTGlrZXdpc2UuCgkoUFJFRkVSUkVEX0RFQlVHR0lOR19UWVBFKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zcGFyYy9zcDg2eC1lbGYuaCAoRFdBUkYyX0RFQlVHR0lOR19JTkZPKTogTGlrZXdpc2UuCgkoUFJFRkVSUkVEX0RFQlVHR0lOR19UWVBFKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5oIChEQlhfREVCVUdHSU5HX0lORk8pOiBMaWtld2lzZS4KCjIwMDUtMDEtMjEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCglQUiB0YXJnZXQvMTg3MDEKCSogY29tYmluZS5jIChjb21iaW5lX3NpbXBsaWZ5X3J0eCk6IFJldmVydCBjaGFuZ2Ugb2YgMjAwNC0xMi0zMS4KCjIwMDUtMDEtMjAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkb2MvcnRsLnRleGk6IERvY3VtZW50IHZhbHVlIGV4dGVuc2lvbiByZXF1aXJlbWVudHMgZm9yIENPTlNUX0lOVC4KCjIwMDUtMDEtMjAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jICh0cmVlX3ZlcmlmeV9mbG93X2luZm8pOiBDaGVjayB0aGF0IGEgbm9ubG9jYWwKCWxhYmVsIGlzIGZpcnN0IGluIGEgc2VxdWVuY2Ugb2YgbGFiZWxzLgoKCSogdHJlZS1jZmcuYyAodHJlZV92ZXJpZnlfZmxvd19pbmZvKTogRml4IGEgdHlwby4KCjIwMDUtMDEtMjAgIEphbmlzIEpvaG5zb24gIDxqYW5pczE4N0B1cy5pYm0uY29tPgoJICAgIEdpb3Zhbm5pIEJham8gIDxnaW92YW5uaWJham9AZ2NjLmdudS5vcmc+CgoJKiBkb2Mvc291cmNlYnVpbGQudGV4aSAoVGVzdCBEaXJlY3RpdmVzKTogTmV3LgoKMjAwNS0wMS0yMCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiByZWFsLmMgKHJlYWxfZmxvb3IpOiBEb24ndCBsZWF2ZSB0aGUgcmVzdWx0IHVuaW5pdGlhbGl6ZWQgd2hlbgoJbW9kZSBpcyBWT0lETW9kZSwgYnV0IHJldHVybiB0aGUgdW5yb3VuZGVkIGludGVybWVkaWF0ZSB2YWx1ZS4KCShyZWFsX2NlaWwpOiBMaWtld2lzZS4KCjIwMDUtMDEtMjAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvYXJtL2FybS5tZCAoaW5zdik6IFVzZSBnZW5faW50X21vZGUuCgoyMDA1LTAxLTIwICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogY29uZmlnL3NwYXJjL2ZyZWVic2QuaCAoQVNNX09VVFBVVF9JTlRFUk5BTF9MQUJFTFJFRik6IERlbGV0ZS4KCSogY29uZmlnL3NwYXJjL2xpbnV4LmggKEFTTV9PVVRQVVRfSU5URVJOQUxfTEFCRUxSRUYpOiBMaWtld2lzZS4KCSogY29uZmlnL3NwYXJjL2xpbnV4NjQuaCAoQVNNX09VVFBVVF9JTlRFUk5BTF9MQUJFTFJFRik6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvbmV0YnNkLWVsZi5oIChBU01fT1VUUFVUX0lOVEVSTkFMX0xBQkVMUkVGKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zcGFyYy9zb2wyLmggKEFTTV9PVVRQVVRfSU5URVJOQUxfTEFCRUxSRUYpOiBMaWtld2lzZS4KCjIwMDUtMDEtMjAgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCUZpeCBQUiBkZWJ1Zy8xOTEyNAoJKiBkd2FyZjJvdXQuYyAoY29uY2F0X2xvY19kZXNjcmlwdG9yKTogV2UgZG9uJ3Qga25vdyB3ZSBjYW4gdXNlCglmYnJlZywgc28gd2UgaGF2ZSB0byBhc3N1bWUgd2UgY2FuJ3QuCgkobG9jX2Rlc2NyaXB0b3JfZnJvbV90cmVlXzEpOiBEaXR0by4KCShjb250YWluaW5nX2Z1bmN0aW9uX2hhc19mcmFtZV9iYXNlKTogTmV3IGZ1bmN0aW9uLgoJKGFkZF9sb2NhdGlvbl9vcl9jb25zdF92YWx1ZV9hdHRyaWJ1dGUpOiBVc2UgaXQuCglBbHNvIHRyeSB0byBnZW5lcmF0ZSBhIGZyYW1lX2Jhc2UgZnJvbSBhIHNpbmdsZSBlbGVtZW50IGxvY2F0aW9uCglsaXN0LgoKMjAwNS0wMS0yMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNTM0OQoJKiB0aW1ldmFyLmRlZiAoVFZfVFJFRV9NRVJHRV9QSEkpOiBOZXcuCgkqIHRyZWUtY2ZnLmMgKHRyZWVfZm9yd2FyZGVyX2Jsb2NrX3ApOiBBZGQgYSBuZXcgYXJndW1lbnQKCVBISV9XQU5URUQuCgkocmVtb3ZlX2ZvcndhcmRlcl9ibG9jaywgY2xlYW51cF9mb3J3YXJkZXJfYmxvY2tzKTogQWRqdXN0IHRoZQoJY2FsbHMgdG8gdHJlZV9mb3J3YXJkZXJfYmxvY2tfcC4KCShyZW1vdmVfZm9yd2FyZGVyX2Jsb2NrX3dpdGhfcGhpLCBtZXJnZV9waGlfbm9kZXMsCglnYXRlX21lcmdlX3BoaSwgcGFzc19tZXJnZV9waGkpOiBOZXcuCgkqIHRyZWUtb3B0aW1pemUuYyAoaW5pdF90cmVlX29wdGltaXphdGlvbl9wYXNzZXMpOiBBZGQKCXBhc3NfbWVyZ2VfcGhpLgoJKiB0cmVlLXBhc3MuaDogQWRkIGFuIGV4dGVybiBmb3IgcGFzc19tZXJnZV9waGk7CgoyMDA1LTAxLTIwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xOTQxOAoJKiBjb25maWcvaTM4Ni9lbW1pbnRyaW4uaCAoX21tX2Nhc3RwZF9wcywgX21tX2Nhc3RwZF9zaTEyOCk6IE5ldy4KCShfbW1fY2FzdHBzX3BkLCBfbW1fY2FzdHBzX3NpMTI4KTogTmV3LgoJKF9tbV9jYXN0c2kxMjhfcHMsIF9tbV9jYXN0c2kxMjhfcGQpOiBOZXcuCgoyMDA1LTAxLTIwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xOTUzMAoJKiBjb25maWcvaTM4Ni9tbWludHJpbi5oIChfbW1fY3Z0c2kzMl9zaTY0KTogVXNlCglfX2J1aWx0aW5faWEzMl92ZWNfaW5pdF92MnNpLgoJKF9tbV9jdnRzaTY0X3NpMzIpOiBVc2UgX19idWlsdGluX2lhMzJfdmVjX2V4dF92MnNpLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKElYODZfQlVJTFRJTl9WRUNfRVhUX1YyU0kpOiBOZXcuCgkoaXg4Nl9pbml0X21teF9zc2VfYnVpbHRpbnMpOiBDcmVhdGUgaXQuCgkoaXg4Nl9leHBhbmRfYnVpbHRpbik6IEV4cGFuZCBpdC4KCShpeDg2X2V4cGFuZF92ZWN0b3Jfc2V0KTogSGFuZGxlIFYyU0Ztb2RlIGFuZCBWMlNJbW9kZS4KCSogY29uZmlnL2kzODYvbW14Lm1kICh2ZWNfZXh0cmFjdHYyc2ZfMCwgdmVjX2V4dHJhY3R2MnNmXzEpOiBOZXcuCgkodmVjX2V4dHJhY3R2MnNpXzAsIHZlY19leHRyYWN0djJzaV8xKTogTmV3LgoKMjAwNS0wMS0yMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTY1MzMKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF9wdXNoKTogTmV3LgoJKiBjb25maWcvaTM4Ni9tbXgubWQgKHB1c2g8TU1YTU9ERT4xKTogTmV3LgoJKiBjb25maWcvaTM4Ni9zc2UubWQgKHB1c2g8U1NFTU9ERT4xKTogTmV3LgoJKiBjb25maWcvaTM4Ni9pMzg2LXByb3Rvcy5oOiBVcGRhdGUuCgoyMDA1LTAxLTIwICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogcGFyYW1zLmRlZiwgcGFyYW1zLmgsIHByZWRpY3QuYywgdHJlZS1zc2EtbG9vcC1pbS5jOiBVcGRhdGUKCWNvcHlyaWdodC4KCjIwMDUtMDEtMjAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBydGwuZGVmIChDT05TVF9WRUNUT1IpOiBVc2UgUlRYX0NPTlNUX09CSi4KCSogcnRsLmggKENPTlNUQU5UX1ApOiBEb24ndCBzcGVjaWFsIGNhc2UgQ09OU1RfVkVDVE9SLgoKMjAwNS0wMS0xOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTkzNTAKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF92ZWN0b3JfbW92ZV9taXNhbGlnbik6IENvbnZlcnQKCXRvIFY0U0Ztb2RlIGluIFNTRTEgZmFsbGJhY2sgbG9hZCBwYXRoLgoKMjAwNS0wMS0xOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9leHBhbmRfdmVjdG9yX2luaXRfb25lX3Zhcik6IEZpeCB0eXBvCglpbiBRSW1vZGUgZXhwYW5zaW9uIHRvIGl4ODZfZXhwYW5kX3ZlY3Rvcl9zZXQuCgkoaXg4Nl9leHBhbmRfdmVjdG9yX2luaXRfZ2VuZXJhbCk6IEZpeCB0eXBvIGluIFY4SEltb2RlIHJlY3Vyc2l2ZSBjYWxsLgoKMjAwNS0wMS0xOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTk1MTEKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X3ByZWZlcnJlZF9yZWxvYWRfY2xhc3MpOiBSZXR1cm4gYSBwcm9wZXIKCXN1YmNsYXNzIG9mIHRoZSBpbnB1dCBjbGFzcy4KCShpeDg2X3NlY29uZGFyeV9tZW1vcnlfbmVlZGVkKTogQWx3YXlzIHRydWUgZm9yIGNyb3NzLU1NWCBjbGFzc2VzLgoJQWx3YXlzIHRydWUgZm9yIGNyb3NzLVNTRTEgY2xhc3Nlcy4gIFJhdGlvbmFsaXplIGNvbmRpdGlvbmFscy4KCSogY29uZmlnL2kzODYvaTM4Ni5oIChTU0VfQ0xBU1NfUCwgTU1YX0NMQVNTX1ApOiBVc2Ugc3RyYWlnaHQgZXF1YWxpdHkuCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKG1vdnNpXzEpOiBBZGQgTU1YL1NTRSB6ZXJvcy4gIEZpeCBhbHRlcm5hdGl2ZXMKCWZvciBTU0UxLiAgRG9uJ3QgY2hlY2sgVEFSR0VUX0lOVEVSX1VOSVRfTU9WRVMuCgkobW92ZGlfMik6IEFkZCBNTVgvU1NFIHplcm9zLgoJKG1vdmRpXzFfcmV4NjQpOiBMaWtld2lzZS4gIERvbid0IGNoZWNrIFRBUkdFVF9JTlRFUl9VTklUX01PVkVTLgoJKG1vdnNmXzEpOiBEb24ndCBjaGVjayBUQVJHRVRfSU5URVJfVU5JVF9NT1ZFUy4KCSh6ZXJvX2V4dGVuZHNpZGkyXzMyLCB6ZXJvX2V4dGVuZHNpZGkyX3JleDY0KTogTGlrZXdpc2UuCgkobW92c2lfMV9ub2ludGVybnVuaXQsIG1vdmRpXzFfcmV4NjRfbm9pbnRlcnVuaXQpOiBSZW1vdmUuCgkobW92c2ZfMV9ub2ludGVydW5pdCwgemVyb19leHRlbmRzaWRpMl8zMl8xKTogUmVtb3ZlLgoJKHplcm9fZXh0ZW5kc2lkaTJfcmV4NjRfMSk6IFJlbW92ZS4KCShNT1YwIHBlZXBob2xlKTogQ2hlY2sgR0VORVJBTF9SRUdfUC4KCjIwMDUtMDEtMTkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE5NDI3CgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9leHBhbmRfdmVjdG9yX3NldCk6IEZpeCB0aGlyZCBhbmQgZm91cnRoCglzaHVmcHMgZWxlbWVudHMuCgkoaXg4Nl9leHBhbmRfdmVjdG9yX2V4dHJhY3QpOiBMaWtld2lzZS4KCjIwMDUtMDEtMTkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8xOTMwNAoJKiBleHByLmMgKGVtaXRfbW92ZV9jaGFuZ2VfbW9kZSk6IE5ldyBhcmd1bWVudCBmb3JjZTsgdXNlCglzaW1wbGlmeV9nZW5fc3VicmVnIGlmIHRydWUuCgkoZW1pdF9tb3ZlX3ZpYV9hbHRfbW9kZSk6IE1lcmdlIGludG8gLi4uCgkoZW1pdF9tb3ZlX3ZpYV9pbnRlZ2VyKTogLi4uIGhlcmUuCgkoZW1pdF9tb3ZlX2NjbW9kZSk6IFVzZSBlbWl0X21vdmVfY2hhbmdlX21vZGUgZGlyZWN0bHkuCgoyMDA1LTAxLTE5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xOTUxOAoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoYWxwaGFfcnR4X2Nvc3RzKTogSGFuZGxlIEhJR0guCgkoYWxwaGFfcHJlZmVycmVkX3JlbG9hZF9jbGFzcyk6IEhhbmRsZSBDT05TVF9WRUNUT1IuCgkoYWxwaGFfZW1pdF9zZXRfY29uc3RfMSk6IEFkZCBub19vdXRwdXQgcGFyYW1ldGVyOyBkb24ndCBlbWl0CglydGwgaWYgdHJ1ZS4KCShhbHBoYV9lbWl0X3NldF9jb25zdCk6IExpa2V3aXNlLiAgTWFrZSBzdGF0aWMuCgkoYWxwaGFfZW1pdF9zZXRfbG9uZ19jb25zdCk6IE1ha2Ugc3RhdGljLgoJKGFscGhhX2V4dHJhY3RfaW50ZWdlcik6IFNwbGl0IG91dCBmcm9tIGFscGhhX2V4cGFuZF9tb3YuCgkoYWxwaGFfc3BsaXRfY29uc3RfbW92KTogTGlrZXdpc2UuCgkoYWxwaGFfZXhwYW5kX21vdik6IFVzZSB0aGVtLiAgSGFuZGxlIENPTlNUX1ZFQ1RPUi4KCShhbHBoYV9sZWdpdGltYXRlX2NvbnN0YW50X3ApOiBOZXcuCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS1wcm90b3MuaDogVXBkYXRlLgoJKiBjb25maWcvYWxwaGEvYWxwaGEuaCAoUkVHSVNURVJfTU9WRV9DT1NUKTogQ29ycmVjdCBmcDwtPmdwIGNvc3QuCgkoTEVHSVRJTUFURV9DT05TVEFOVF9QKTogUmUtaW1wbGVtZW50IHdpdGggYSBmdW5jdGlvbi4KCSogY29uZmlnL2FscGhhL2FscGhhLm1kIChtb3ZzaSk6IEFkZCBuIGFsdGVybmF0aXZlLgoJKG1vdnNpX250X3ZtcywgbW92ZGlfZXJfbm9maXgsIG1vdmRpX2VyX2ZpeCwgbW92ZGlfZml4KTogTGlrZXdpc2UuCgkobW92PFZFQz5fZml4LCBtb3Y8VkVDPl9ub2ZpeCk6IEFkZCBpIGFsdGVybmF0aXZlLgoJKHNwbGl0dGVycyBmb3IgYWxsIG9mIHRoZSBhYm92ZSk6IFVzZSBhbHBoYV9zcGxpdF9jb25zdF9tb3YuCgkqIGNvbmZpZy9hbHBoYS9wcmVkaWNhdGVzLm1kIChub25fYWRkX2NvbnN0X29wZXJhbmQpOiBOZXcuCgkobm9uX3plcm9fY29uc3Rfb3BlcmFuZCk6IE5ldy4KCShpbnB1dF9vcGVyYW5kKTogVXNlIGFscGhhX2xlZ2l0aW1hdGVfY29uc3RhbnRfcCBhZnRlciByZWxvYWQuCgoyMDA1LTAxLTE5ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE5MDM4CgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMgKGFsbG93X2lwX2VuZF9wb3NfcCk6IE5ldyBmdW5jdGlvbi4KCShhZGRfY2FuZGlkYXRlKTogQWRkIGl2cyB3aXRoIGluY3JlbWVudCBpbiBsYXRjaCBvbmx5IGlmCglhbGxvd19pcF9lbmRfcG9zX3AgaXMgdHJ1ZS4KCShkZXRlcm1pbmVfaXZfY29zdCk6IFVzZSBlbXB0eV9ibG9ja19wLgoKMjAwNS0wMS0xOSAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiBjZmdhbmFsLmMgKGNvbXB1dGVfZG9taW5hbmNlX2Zyb250aWVyc18xKTogUmVwbGFjZSB3aXRoIG5ldyBhbGdvcml0aG0KCShjb21wdXRlX2RvbWluYW5jZV9mcm9udGllcnMpOiBEaXR0by4KCjIwMDUtMDEtMTkgIFJhbGYgQ29yc2VwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCVBSIHRhcmdldC8xOTUyOQoJKiBjb25maWcvc2gvdC1ydGVtczogTmV3LgoJKiBjb25maWcuZ2NjIChzaC0qLXJ0ZW1zKik6IFJlZmxlY3QgaGF2aW5nIGFkZGVkIGNvbmZpZy9zaC90LXJ0ZW1zLgoKMjAwNS0wMS0xOSAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCgkqIHRyZWUtc3NhLWNjcC5jIChtYXliZV9mb2xkX29mZnNldF90b19jb21wb25lbnRfcmVmKTogQWx3YXlzIHN1YnRyYWN0Cgl0aGUgb2Zmc2V0IG9mIHRoZSBzZWxlY3RlZCBmaWVsZC4KCjIwMDUtMDEtMTkgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jIChyZW1vdmVfZm9yd2FyZGVyX2Jsb2NrKTogRml4IHRoZSBjaGVjayB0bwoJcHJldmVudCBhIG5vbmxvY2FsIGxhYmVsIGZyb20gYXBwZWFyaW5nIGluIHRoZSBtaWRkbGUgb2YgYQoJYmFzaWMgYmxvY2suCgoyMDA1LTAxLTE5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE5NDYyCgkqIHJlb3JnLmMgKGZpbmRfZW5kX2xhYmVsKTogQ3JlYXRlIHJldHVybiBpbnNuIG9ubHkgaWYKCWN1cnJlbnRfZnVuY3Rpb25fZXBpbG9ndWVfZGVsYXlfbGlzdCBpcyBlbXB0eS4KCjIwMDUtMDEtMTkgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBkb2MvcGFzc2VzLnRleGk6IFJlbW92ZSBwYXJhZ3JhcGggbWVudGlvbmluZyBuZXctcmEuCgoyMDA1LTAxLTE5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE1MTM5CgkqIGNvbWJpbmUuYzogSW5jbHVkZSBwYXJhbXMuaC4KCShjb3VudF9ydHhzKTogTmV3IGZ1bmN0aW9uLgoJKHJlY29yZF92YWx1ZV9mb3JfcmVnKTogSWYgcmVwbGFjZV9ydHggd291bGQgcmVwbGFjZSBhdCBsZWFzdAoJMiBvY2N1cnJlbmNlcyBvZiBSRUcgaW4gVkFMVUUgYW5kIFRFTSBpcyByZWFsbHkgbGFyZ2UsIHJlcGxhY2UgUkVHIHdpdGgKCShjbG9iYmVyIChjb25zdF9pbnQgMCkpIGluc3RlYWQgb2YgVEVNLgoJKiBwYXJhbXMuZGVmIChQQVJBTV9NQVhfTEFTVF9WQUxVRV9SVEwpOiBOZXcuCgkqIHBhcmFtcy5oIChNQVhfTEFTVF9WQUxVRV9SVEwpOiBOZXcuCgkqIE1ha2VmaWxlLmluIChjb21iaW5lLm8pOiBEZXBlbmQgb24gJChQQVJBTVNfSCkuCgkqIGRvYy9pbnZva2UudGV4aSAoLS1wYXJhbSBtYXgtbGFzdC12YWx1ZS1ydGw9Tik6IERvY3VtZW50LgoKCVBSIGMvMTcyOTcKCSogYy10eXBlY2suYyAoZGlnZXN0X2luaXQpOiBPbmx5IGNhbGwgYnVpbGRfdmVjdG9yIGlmIGFsbCBjb25zdHJ1Y3RvcgoJZWxlbWVudHMgYXJlICpfQ1NUIG5vZGVzLgoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9pbml0X2NvbnN0cnVjdG9yKTogTGlrZXdpc2UuCgoJUFIgbWlkZGxlLWVuZC8xOTE2NAoJKiBjLXR5cGVjay5jIChkaWdlc3RfaW5pdCk6IE9ubHkgY2FsbCBidWlsZF92ZWN0b3IgaWYgaW5zaWRlX2luaXQKCWlzIGEgQ09OU1RSVUNUT1IuCgoyMDA1LTAxLTE4ICBUb2JpYXMgU2NobCJ1dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdG9wbGV2LmMgKGluaXRfYXNtX291dHB1dCk6IFJlbW92ZSBkZWFkICNpZmRlZi4KCjIwMDUtMDEtMTggIEtheiBLb2ppbWEgIDxra29qaW1hQGdjYy5nbnUub3JnPgoKCSogY29uZmlnL3NoL2xpbnV4LmggKFRBUkdFVF9DOTlfRlVOQ1RJT05TKTogRGVmaW5lLgoKMjAwNS0wMS0xOCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNhbGxzLmMgKGV4cGFuZF9jYWxsKTogQ2hlY2sgREVDTF9CVUlMVF9JTl9DTEFTUyBiZWZvcmUKCWFjY2Vzc2luZyBERUNMX0ZVTkNUSU9OX0NPREUuCgkqIGRvanVtcC5jIChkb19qdW1wKTogTGlrZXdpc2UuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2NhbGxfZXhwcik6IExpa2V3aXNlLgoJKiBwcmVkaWN0LmMgKGV4cHJfZXhwZWN0ZWRfdmFsdWUpOiBMaWtld2lzZS4KCShzdHJpcF9idWlsdGluX2V4cGVjdCk6IExpa2V3aXNlLgoJKiB0cmVlLWlubGluZS5jIChlc3RpbWF0ZV9udW1faW5zbnNfMSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLWltLmMgKHN0bXRfY29zdCk6IExpa2V3aXNlCgkqIGZvbGQtY29uc3QuYyAoZm9sZCk6IFRlc3QgZm9yIEJVSUxUX0lOX05PUk1BTC4KCSh0cmVlX2V4cHJfbm9ubmVnYXRpdmVfcCk6IExpa2V3aXNlLgoKMjAwNS0wMS0xOCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChsb2FkX3BpY19yZWdpc3Rlcik6IEVtaXQgdGhlIGFwcHJvcHJpYXRlCgl2YXJpYW50IG9mIHRoZSBsb2FkX3BjcmVsX3N5bSBwYXR0ZXJuLgoJKiBjb25maWcvc3BhcmMvc3BhcmMubWQgKFAgbWFjcm8pOiBNb3ZlIHRvIHRoZSB0b3AuCgkobG9hZF9wY3JlbF9zeW0pOiBNYWNyb2l6ZSB1c2luZyBQLgoJKHNhdmVfcmVnaXN0ZXJfd2luZG93KTogTGlrZXdpc2UuCgoyMDA1LTAxLTE4ICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAoInN1bm9yZGVyZWQiKTogRGlzYWJsZSBmb3IgZTUwMC4KCSgic29yZGVyZWQiKTogU2FtZS4KCjIwMDUtMDEtMTggIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIEMvMTk0NzIKCSogYy10eXBlY2suYyAoYnVpbGRfYXNtX2V4cHIpOiBTdHJpcCBub3BzIG9mZgoJaW5wdXQgbWVtb3J5IG9wZXJhbmRzLgoKMjAwNS0wMS0xOCAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlnL3JzNjAwMC9haXg0My5oIChDUExVU1BMVVNfQ1BQX1NQRUMpOiBEZWxldGUKCV9YT1BFTl9TT1VSQ0UsIF9YT1BFTl9TT1VSQ0VfRVhURU5ERUQsIF9MQVJHRV9GSUxFX0FQSS4KCSogY29uZmlnL3JzNjAwMC9haXg1MS5oIChDUExVU1BMVVNfQ1BQX1NQRUMpOiBTYW1lLgoJKiBjb25maWcvcnM2MDAwL2FpeDUyLmggKENQTFVTUExVU19DUFBfU1BFQyk6IFNhbWUuCgoyMDA1LTAxLTE4ICBKb2VsIFNoZXJyaWxsIDxqb2VsLnNoZXJyaWxsQG9hcmNvcnAuY29tPgoKCVBSIHRhcmdldC8xOTM3OQoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKG92ZXJyaWRlX29wdGlvbnMpOiBJZiB0aGUgODAzODcgaXMgZGlzYWJsZWQsCgl0aGVuIGRvIG5vdCByZXR1cm4gRlAgdmFsdWVzIHVzaW5nIEZQIHJlZ2lzdGVycy4KCjIwMDUtMDEtMTggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBiYXNpYy1ibG9jay5oLCBjLWNvbW1vbi5jLCBjLWNwcGJ1aWx0aW4uYywgYy1sYW5nLmMsCgljLXRyZWUuaCwgY2ZnYnVpbGQuYywgY2dyYXBoLmMsIGNncmFwaC5oLCBjb2xsZWN0Mi5jLAoJY29tYmluZS5jLCBjb25maWcuZ2NjLCBjb3ZlcmFnZS5oLCBjc2UuYywgY3NlbGliLmMsCglkZWZhdWx0cy5oLCBkZi5jLCBkd2FyZjJhc20uYywgZHdhcmYyb3V0LmMsIGV4cGxvdy5jLCBleHByLmMsCglmbG93LmMsIGZvbGQtY29uc3QuYywgZ2NzZS5jLCBnZ2MtcGFnZS5jLCBnaW1wbGUtbG93LmMsCglnaW1wbGlmeS5jLCBpZmN2dC5jLCBsYW5naG9va3MtZGVmLmgsIGxjbS5jLCBvcHRhYnMuaCwKCW91dHB1dC5oLCBwb3N0cmVsb2FkLWdjc2UuYywgcG9zdHJlbG9hZC5jLCByZWNvZy5jLAoJcmVzb3VyY2UuYywgcnRsLmRlZiwgcnRsYW5hbC5jLCBzY2hlZC1kZXBzLmMsIHNjaGVkLXJnbi5jLAoJdGFyZ2hvb2tzLmgsIHRvcGxldi5jLCB0cmVlLWRhdGEtcmVmLmMsIHRyZWUtZWguYywKCXRyZWUtZmxvdy5oLCB0cmVlLWxvb3AtbGluZWFyLmMsIHRyZWUtbXVkZmxhcC5oLCB0cmVlLW5ydi5jLAoJdHJlZS1vcHRpbWl6ZS5jLCB0cmVlLW91dG9mLXNzYS5jLCB0cmVlLXBhc3MuaCwKCXRyZWUtc2NhbGFyLWV2b2x1dGlvbi5jLCB0cmVlLXNzYS1jb3B5LmMsIHRyZWUtc3NhLWRjZS5jLAoJdHJlZS1zc2EtZHNlLmMsIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMsIHRyZWUtc3NhLW9wZXJhbmRzLmMsCgl0cmVlLXNzYS1wcmUuYywgdHJlZS1zc2EuYywgdHJlZS12ZWN0b3JpemVyLmMsIHRyZWUuZGVmLAoJdW53aW5kLWR3Mi1mZGUtZGFyd2luLmMsIHZhci10cmFja2luZy5jOiBVcGRhdGUgY29weXJpZ2h0LgoKCSogY29uZmlnL2Rhcndpbi5jLCBjb25maWcvZGFyd2luLmgsIGNvbmZpZy9mcmVlYnNkLXNwZWMuaCwKCWNvbmZpZy9hbHBoYS9hbHBoYS5jLCBjb25maWcvYXJtL3ZmcC5tZCwKCWNvbmZpZy9pMzg2L2VtbWludHJpbi5oLCBjb25maWcvaTM4Ni9pMzg2LW1vZGVzLmRlZiwKCWNvbmZpZy9pMzg2L2kzODYtcHJvdG9zLmgsIGNvbmZpZy9pMzg2L2kzODYuaCwKCWNvbmZpZy9pMzg2L3BtbWludHJpbi5oLCBjb25maWcvaTM4Ni9wcHJvLm1kLAoJY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZCwgY29uZmlnL2kzODYveG1taW50cmluLmgsCgljb25maWcvaTg2MC9pODYwLmMsIGNvbmZpZy9pYTY0L2lhNjQtbW9kZXMuZGVmLAoJY29uZmlnL2lhNjQvaWE2NC1wcm90b3MuaCwgY29uZmlnL2lhNjQvaWE2NC5oLAoJY29uZmlnL2lhNjQvaWE2NC5tZCwgY29uZmlnL2lhNjQvaXRhbml1bTEubWQsCgljb25maWcvaWE2NC9pdGFuaXVtMi5tZCwgY29uZmlnL2lhNjQvcHJlZGljYXRlcy5tZCwKCWNvbmZpZy9pcTIwMDAvaXEyMDAwLmgsIGNvbmZpZy9taXBzL2xpbnV4NjQuaCwKCWNvbmZpZy9yczYwMDAvYWl4NDEuaCwgY29uZmlnL3JzNjAwMC9haXg0My5oLAoJY29uZmlnL3JzNjAwMC9haXg1Mi5oLCBjb25maWcvcnM2MDAwL2Rhcndpbi1mYWxsYmFjay5jLAoJY29uZmlnL3JzNjAwMC9yczYwMDAuYywgY29uZmlnL3JzNjAwMC9yczYwMDAuaCwKCWNvbmZpZy9yczYwMDAvc3BlLm1kLCBjb25maWcvc2gvc2gubWQsIGNvbmZpZy9zcGFyYy9saW51eC5oLAoJY29uZmlnL3NwYXJjL2xpbnV4NjQuaCwgY29uZmlnL3NwYXJjL2xpdGVjb2ZmLmgsCgljb25maWcvc3BhcmMvc3A2NC1lbGYuaCwgY29uZmlnL3NwYXJjL3NwYXJjLmMsCgljb25maWcvc3BhcmMvc3BhcmMuaCwgY29uZmlnL3NwYXJjL3NwYXJjLm1kLAoJY29uZmlnL3NwYXJjL3N5c3Y0LW9ubHkuaDogVXBkYXRlIGNvcHlyaWdodC4KCjIwMDUtMDEtMTggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE5NDk2CgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9leHBhbmRfZnBfbW92Y2MpOiBGYWlsIGZvciBMVEdUIGFuZCBVTkVRLgoKMjAwNS0wMS0xOCAgTWFyYyBFc3BpZSAgPGVzcGllQG9wZW5ic2Qub3JnPgoJKiBjb25maWcvaTM4Ni9vcGVuYnNkZWxmLmg6IFR5cG8uCgoyMDA1LTAxLTE4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF9mcF9tb3ZjYyk6IFJlbW92ZSBUQVJHRVRfSUVFRV9GUAoJc3BlY2lhbCBjYXNlIGZvciBzc2UuCgkqIGNvbmZpZy9pMzg2L3ByZWRpY2F0ZXMubWQgKHNzZV9jb21wYXJpc29uX29wZXJhdG9yKTogTGlrZXdpc2UuCgoyMDA1LTAxLTE4ICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJKiB0cmVlLWlubGluZS5jIChlc3RpbWF0ZV9udW1faW5zbnNfMSk6IEFkZGVkIGNhc2VzIGZvcgoJQUxJR05fSU5ESVJFQ1RfUkVGLCBNSVNBTElHTkVEX0lORElSRUNUX1JFRiwgYW5kIFJFQUxJR05fTE9BRF9FWFBSLgoKMjAwNS0wMS0xOCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE5Mjk2CgkqIGNvbWJpbmUuYyAoc2ltcGxpZnlfY29tcGFyaXNvbik6IFJld3JpdGUgdGhlIGNvbmRpdGlvbiB1bmRlcgoJd2hpY2ggYSBub24tcGFyYWRveGljYWwgU1VCUkVHIG9mIGEgUExVUyBjYW4gYmUgbGlmdGVkIHdoZW4KCWNvbXBhcmVkIGFnYWluc3QgYSBjb25zdGFudC4KCjIwMDUtMDEtMTggIEFuZGkgS2xlZW4gPGFrQG11Yy5kZT4KCgkqIGMtdHlwZWNrLmM6IChjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogQ2hlY2sgd2Fybl9wb2ludGVyX3NpZ24uCgkqIGMub3B0ICgtV3BvaW50ZXItc2lnbik6IEFkZC4KCSogZG9jL2ludm9rZS50ZXhpOiAoLVdwb2ludGVyLXNpZ24pOiBBZGQuCgoyMDA1LTAxLTE4ICBVcm9zIEJpemphayAgPHVyb3NAa3NzLWxva2Euc2k+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKG92ZXJyaWRlX29wdGlvbnMpOiBSZXZlcnQgMjAwNC0xMS0yNCBjaGFuZ2UuCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKGZtb2RzZjMsIGRyZW1zZjMsICpzaW5zZjIsICpjb3NzZjIsIHNpbmNvc3NmMywKCSp0YW5zZjNfMSwgdGFuc2YyLCBhdGFuMnNmM18xLCBhdGFuMnNmMywgYXRhbnNmMiwgYXNpbnNmMiwgYWNvc3NmMiwKCWxvZ3NmMiwgbG9nMTBzZjIsIGxvZzJzZjIsIGxvZzFwc2YyLCBsb2dic2YyLCBpbG9nYnNmMiwgZXhwc2YyLAoJZXhwMTBzZjIsIGV4cDJzZjIsIGV4cG0xc2YyLCByaW50c2YyLCBmbG9vcnNmMiwgY2VpbHNmMiwgYnRydW5jc2YyLAoJbmVhcmJ5aW50c2YyKTogRGlzYWJsZSBmb3IgVEFSR0VUX1NTRV9NQVRILiAgTGVhdmUgcGF0dGVybnMgZW5hYmxlZAoJZm9yIFRBUkdFVF9NSVhfU1NFX0kzODcuCgkoZm1vZGRmMywgZHJlbWRmMywgKnNpbmRmMiwgKnNpbmV4dGVuZHNmZGYyLCAqY29zZGYyLCAqY29zZXh0ZW5kc2ZkZjIsCglzaW5jb3NkZjMsICpzaW5jb3NleHRlbmRzZmRmMywgKnRhbmRmM18xLCB0YW5kZjIsIGF0YW4yZGYzXzEsCglhdGFuMmRmMywgYXRhbmRmMiwgYXNpbmRmMiwgYWNvc2RmMiwgbG9nZGYyLCBsb2cxMGRmMiwgbG9nMmRmMiwKCWxvZzFwZGYyLCBsb2diZGYyLCBleHBkZjIsIGV4cDEwZGYyLCBleHAyZGYyLCBleHBtMWRmMiwgcmludGRmMiwKCWZsb29yZGYyLCBjZWlsZGYyLCBidHJ1bmNkZjIsIG5lYXJieWludGRmMik6IERpc2FibGUgZm9yCgkoVEFSR0VUX1NTRTIgJiYgVEFSR0VUX1NTRV9NQVRIKS4gIExlYXZlIHBhdHRlcm5zIGVuYWJsZWQgZm9yCglUQVJHRVRfTUlYX1NTRV9JMzg3LgoJKGF0YW4yc2YzLCBhdGFuMmRmMywgYXRhbjJ4ZjMpOiBSZW1vdmUgcmVnaXN0ZXIgY29uc3RyYWludHMKCWZyb20gZXhwYW5kZXIuCgoyMDA1LTAxLTE4ICBVcm9zIEJpemphayAgPHVyb3NAa3NzLWxva2Euc2k+CgoJUFIgdGFyZ2V0LzE5NDI0CgkqIGNvbmZpZy9pMzg2L21teC5tZCAoKm1vdnYyc2ZfaW50ZXJuYWxfcmV4NjQsICptb3Z2MnNmX2ludGVybmFsKToKCUFkZCBtb3ZhcHMgYWx0ZXJuYXRpdmUgZm9yIHhtbSByZWctPnJlZyBtb3ZlLgoKMjAwNS0wMS0xNyAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWRvbS5jICh0cmVlX3NzYV9kb21pbmF0b3Jfb3B0aW1pemUpOiBDbGVhciBTU0FfTkFNRV9WQUxVRQoJYXQgdGhlIGVuZCBvZiB0aGUgbWFpbiBET00gbG9vcCByYXRoZXIgdGhhbiBqdXN0IGJlZm9yZSBET00gZXhpdHMuCgoyMDA1LTAxLTE3ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xOTEyMQoJKiB0cmVlLXNzYS1hbGlhcy5jIChjb21wdXRlX2Zsb3dfc2Vuc2l0aXZlX2FsaWFzaW5nKTogV2hlbgoJYWRkaW5nIGFsaWFzZXMgdG8gYSBuYW1lIHRhZywgYWxzbyBhZGQgdGhlbSB0byB0aGUgcG9pbnRlcidzCgl0eXBlIHRhZy4KCSogdHJlZS1zc2EtY29weS5jIChtZXJnZV9hbGlhc19pbmZvKTogRG8gbm90IG1lcmdlIGZsb3cKCXNlbnNpdGl2ZSBhbGlhcyBpbmZvIGF0IGFsbC4gIE9ubHkgY2hlY2sgdGhhdCB0aGUgdHdvIHBvaW50ZXJzCgloYXZlIGNvbXBhdGlibGUgcG9pbnRlZC10byBzZXRzLgoJKiB0cmVlLXNzYS5jICh2ZXJpZnlfbmFtZV90YWdzKTogVmVyaWZ5IHRoYXQgdGhlIGFsaWFzIHNldCBvZgoJYSBwb2ludGVyJ3MgdHlwZSB0YWcgaXMgYSBzdXBlcnNldCBvZiB0aGUgYWxpYXMgc2V0IG9mIHRoZQoJcG9pbnRlcidzIG5hbWUgdGFnLgoKMjAwNS0wMS0xNyAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCVBSIHRhcmdldC8xOTM1NwoJKiBjb25maWcvaWE2NC9pYTY0Lm1kIChtb3Z4Zik6IEhhbmRsZSBnZW5lcmFsIHJlZ2lzdGVyIHNvdXJjZS4gIEFkanVzdAoJY29tbWVudCB0byBkb2N1bWVudCB3aHkuCgoyMDA1LTAxLTE3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvc3NlLm1kIChzbWF4djRzZjNfZmluaXRlLCBzc2Vfdm1zbWF4djRzZjNfZmluaXRlLAoJc21pbnY0c2YzX2Zpbml0ZSwgc3NlX3Ztc21pbnY0c2YzX2Zpbml0ZSwgc21heHYyZGYzX2Zpbml0ZSwKCXNzZTJfdm1zbWF4djJkZjNfZmluaXRlLCBzbWludjJkZjNfZmluaXRlLAoJc3NlMl92bXNtaW52MmRmM19maW5pdGUpOiBOZXcuCgkoc21heHY0c2YzLCBzc2Vfdm1zbWF4djRzZjMsIHNtaW52NHNmMywgc3NlX3Ztc21pbnY0c2YzLCBzbWF4djJkZjMsCglzc2UyX3Ztc21heHYyZGYzLCBzbWludjJkZjMsIHNzZTJfdm1zbWludjJkZjMpOiBSZW1vdmUgY29tbXV0YXRpdmUuCglGb3JjZSBvcDEgaW50byByZWdpc3Rlci4KCjIwMDUtMDEtMTcgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBNYWtlZmlsZS5pbiAoU1RBR0VNT1ZFU1RVRkYpOiBTdGFnZSBhbGwgdGhlIHN0YW1wIGZpbGVzIHRvIHByZXZlbnQKCWJ1YmJsZXN0cmFwIGZyb20gYWx3YXlzIHJlYnVpbGRpbmcgYnVpbGQgZGlyZWN0b3J5LgoKMjAwNS0wMS0xNyAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5tZCAoIipjbGMiKTogUmVtb3ZlIGluY29ycmVjdCAnPScuCgkoIipjbXBtZW1fc2hvcnQiKTogTGlrZXdpc2UuCgoyMDA1LTAxLTE3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBiYXNpYy1ibG9jay5oOiBEb2N1bWVudCBCQl8qIGZsYWdzLgoJKiByZWdyZW5hbWUuYyAoY29weXByb3BfaGFyZHJlZ19mb3J3YXJkKTogRG9uJ3QgdXNlIEJCX1ZJU0lURUQsCgl1c2UgYW4gc2JpdG1hcCBpbnN0ZWFkLgoJKiBzY2hlZC1yZ24uYyAoY29tcHV0ZV90cmdfaW5mbyk6IExpa2V3aXNlLgoKMjAwNS0wMS0xNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnLmdjYyAobWlwczY0Ki0qLWxpbnV4Kik6IFNldCB0aGUgZGVmYXVsdCBhYmkgdG8gbjMyLiAgUmVtb3ZlCglyZWR1bmRhbnQgdGFyZ2V0X2NwdV9kZWZhdWx0IGFuZCBleHRyYV9wYXJ0cyBsaW5lcy4gIFVzZSB0aGUgZGVmYXVsdAoJImZyb20tYWJpIiBJU0EuCgkqIGNvbmZpZy9taXBzL2xpbnV4NjQuaCAoRFJJVkVSX0RFRkFVTFRfQUJJX1NFTEZfU1BFQyk6IERlbGV0ZS4KCShTVUJUQVJHRVRfRVhUUkFfU1BFQ1MpOiBEZWxldGUuCgkoRFJJVkVSX1NFTEZfU1BFQ1MpOiBSZW1vdmUgYXJjaGl0ZWN0dXJlIGxpbmVzLiAgU2V0IHRoZSBBQkkgZGlyZWN0bHkuCgkoU1VCVEFSR0VUX0FTTV9TUEVDKTogUmVtb3ZlIC1tYWJpPW4zMiBhbmQgLW1hYmk9NjQgbWFwcGluZ3MuCgkqIGNvbmZpZy9taXBzL3QtbGludXg2NCAoTVVMVElMSUJfRElSTkFNRVMpOiBVc2UgIjMyIiBmb3IgLW1hYmk9MzIKCWFuZCAibjMyIiBmb3IgLW1hYmk9bjMyLgoKMjAwNS0wMS0xNyAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBhaXJzLmNvbT4KCglQUiBjLzU2NzUKCSogYy10eXBlY2suYyAoYnVpbGRfY19jYXN0KTogUmV2ZXJ0IHBhdGNoIG9mIDIwMDMtMDItMTY6IGRvbid0Cglmb2xkIGNvbnN0YW50IHZhcmlhYmxlcyBpbnRvIGluaXRpYWwgdmFsdWVzLgoKMjAwNS0wMS0xNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKHRyZWVfY2FuX21lcmdlX2Jsb2Nrc19wKTogUmVvcmRlciB0d28gY2hlY2tzLgoKCSogdHJlZS1jZmcuYyAodHJlZV9mb3J3YXJkZXJfYmxvY2tfcCk6IFNwZWVkIHVwIGJ5IHdhbGtpbmcKCXRocm91Z2ggdGhlIHN0YXRlbWVudHMgYmFja3dhcmQuCgoyMDA1LTAxLTE3ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGFpcnMuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTMxMjc6CgkqIHRyZWUtaW5saW5lLmMgKGV4cGFuZF9jYWxsX2lubGluZSk6IFNldCBUUkVFX05PX1dBUk5JTkcgb24KCWEgdmFyaWFibGUgc2V0IHRvIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGlubGluZWQgZnVuY3Rpb24uCgoyMDA1LTAxLTE3ICBNYXJrIERldHRpbmdlciAgPGRldHRpbmdlQGRlLmlibS5jb20+CgoJKiBydGxhbmFsLmMgKHJ0eF9jb3N0KTogQXNzaWduIGNvc3Qgb2YgMCB0byBhIFNVQlJFRwoJd2hlbiBtb2RlcyBhcmUgdGllYWJsZS4KCjIwMDUtMDEtMTcgIFJhbmppdCBNYXRoZXcgIDxybWF0aGV3QGhvdG1haWwuY29tPgoKCSogZ3Roci1wb3NpeC5oIChfX2d0aHJlYWRfYWN0aXZlX3ApOiBVc2UgcHRocmVhZF9jYW5jZWwgaW5zdGVhZAoJb2YgcHRocmVhZF9jcmVhdGUgdG8gZmluZCBvdXQgaWYgdGhyZWFkcyBhcmUgZW5hYmxlZC4KCSogZ3Roci1wb3NpeDk1LmggKF9fZ3RocmVhZF9hY3RpdmVfcCk6IExpa2V3aXNlLgoKMjAwNS0wMS0xNyAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGNvbW1vbi5vcHQgKC1mbmV3LXJhKTogUmVtb3ZlLgoJKiByYSouKjogUmVtb3ZlLgoJKiB0b3BsZXYuaCAoZmxhZ19uZXdfcmVnYWxsb2MpOiBSZW1vdmUuCgkqIE1ha2VmaWxlLmluIChyYSouKik6IERvbid0IG1lbnRpb24uCgkqIHBhc3Nlcy5jIChyZXN0X29mX2hhbmRsZV9uZXdfcmVnYWxsb2MpOiBSZW1vdmUuCgkocmVzdF9vZl9oYW5kbGVfY29tYmluZSwgcmVzdF9vZl9jb21waWxhdGlvbik6IEFsd2F5cyBjb25zaWRlcgoJZmxhZ19uZXdfcmVnYWxsb2MgYXMgZmFsc2UuCgkqIGRvYy9pbnZva2UudGV4aTogRG9uJ3QgZG9jdW1lbnQgLWZuZXctcmEuCgoyMDA1LTAxLTE3ICBQYW9sbyBCb256aW5pIDxib256aW5pQGdudS5vcmc+CgoJKiBiYi1yZW9yZGVyLmMgKGZpeF9lZGdlc19mb3JfcmFyZWx5X2V4ZWN1dGVkX2NvZGUpOiBSZW1vdmUKCWxhc3QgcGFyYW1ldGVyIHRvIHJlZ19zY2FuLgoJKiBsb29wLmMgKGxvb3Bfb3B0aW1pemUpOiBMaWtld2lzZS4KCSogcGFzc2VzLmMgKHJlc3Rfb2ZfaGFuZGxlX3RyYWNlciwgcmVzdF9vZl9oYW5kbGVfaWZfY29udmVyc2lvbiwKCXJlc3Rfb2ZfaGFuZGxlX3dlYiwgcmVzdF9vZl9oYW5kbGVfY2ZnLCByZXN0X29mX2hhbmRsZV9qdW1wX2J5cGFzcywKCXJlc3Rfb2ZfaGFuZGxlX2xpZmUsIHJlc3Rfb2ZfaGFuZGxlX2NzZSwgcmVzdF9vZl9oYW5kbGVfY3NlMiwKCXJlc3Rfb2ZfaGFuZGxlX2djc2UsIHJlc3Rfb2ZfaGFuZGxlX2xvb3Bfb3B0aW1pemUsCglyZXN0X29mX2hhbmRsZV9sb29wMiwgcmVzdF9vZl9oYW5kbGVfanVtcDIpOiBMaWtld2lzZS4KCSogcmVnY2xhc3MuYyAocmVnX3NjYW4pOiBMaWtld2lzZSwgZm9yIHRoZSBkZWNsYXJhdGlvbi4KCSogcnRsLmggKHJlZ19zY2FuKTogTGlrZXdpc2UsIGZvciB0aGUgcHJvdG90eXBlLgoKMjAwNS0wMS0xNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtc3NhLWRvbS5jICh0cmVlX3NzYV9kb21pbmF0b3Jfb3B0aW1pemUpOiBEb24ndCBjYWxsCgltYXJrX2Rmc19iYWNrX2VkZ2VzLgoKMjAwNS0wMS0xNiAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiB0cmVlLXNzYS1wcmUuYyAoYWRkX3RvX3NldHMpOiBzMSBtYXkgYmUgTlVMTC4KCShjb21wdXRlX2F2YWlsKTogVXNlcyBkb24ndCBnbyBpbiB0bXBfZ2VuLgoKMjAwNS0wMS0xNiAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogZ2djLXBhZ2UuYyAoZ2djX2FsbG9jX3N0YXQpOiBVc2UgX19idWlsdGluX2N0emwgaW5zdGVhZCBvZiBhCglsb29wIHRvIGxvb2sgZm9yIGEgZnJlZSBzbG90IGluIGEgcGFnZSBlbnRyeS4KCjIwMDUtMDEtMTYgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJUFIgdGFyZ2V0LzE2MzA0CgkqIGRlZmF1bHRzLmggKFRBUkdFVF9ERUZFUlJFRF9PVVRQVVRfREVGUyk6IFByb3ZpZGUgZGVmYXVsdC4KCSogdG9wbGV2LmMgKGNvbXBpbGVfZmlsZSk6IENhbGwgcHJvY2Vzc19wZW5kaW5nX2Fzc2VtYmxlX291dHB1dF9kZWZzCglqdXN0IGJlZm9yZSB0YXJnZXRtLmFzbV9vdXQuZmlsZV9lbmQuCgkqIHRyZWUuaCAocHJvY2Vzc19wZW5kaW5nX2Fzc2VtYmxlX291dHB1dF9kZWZzKTogRGVjbGFyZS4KCSogdmFyYXNtLmMgKGFzc2VtYmxlX291dHB1dF9kZWYsIHByb2Nlc3NfcGVuZGluZ19hc3NlbWJsZV9vdXRwdXRfZGVmcyk6CglOZXcgZnVuY3Rpb25zLgoJKGFzc2VtYmxlX2FsaWFzKTogRGVmZXIgZ2VuZXJhdGlvbiBvZiBhc3NlbWJseSBjb2RlIGZvciBkZWZpbmVzIHdoZW4KCVRBUkdFVF9ERUZFUlJFRF9PVVRQVVRfREVGUyBpcyB0cnVlLgoJKiBjb25maWcvcnM2MDAwL2FpeDQxLmggKFRBUkdFVF9ERUZFUlJFRF9PVVRQVVRfREVGUyk6IERlZmluZS4KCSogY29uZmlnL3JzNjAwMC9haXg0My5oIChUQVJHRVRfREVGRVJSRURfT1VUUFVUX0RFRlMpOiBEZWZpbmUuCgkqIGRvYy90bS50ZXhpIChUQVJHRVRfREVGRVJSRURfT1VUUFVUX0RFRlMpOiBkb2N1bWVudC4KCjIwMDUtMDEtMTUgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJUFIgdGFyZ2V0LzE5MzM2CgkqIHBhLmMgKHBhX3NjYWxhcl9tb2RlX3N1cHBvcnRlZF9wKTogTmV3IGZ1bmN0aW9uLgoJKFRBUkdFVF9TQ0FMQVJfTU9ERV9TVVBQT1JURURfUCk6IERlZmluZS4KCSogcGEuaCAoTUlOX1VOSVRTX1BFUl9XT1JEKTogQWRkIGNvbW1lbnQuCgoJKiBwYS1wcm90b3MuaCAocHJlZmV0Y2hfb3BlcmFuZCk6IERlbGV0ZS4KCShwcmVmZXRjaF9jY19vcGVyYW5kLCBwcmVmZXRjaF9ub2NjX29wZXJhbmQpOiBOZXcgZGVjbGF0aW9ucy4KCSogcGEuYyAocHJlZmV0Y2hfb3BlcmFuZCk6IERlbGV0ZS4KCShwcmVmZXRjaF9jY19vcGVyYW5kLCBwcmVmZXRjaF9ub2NjX29wZXJhbmQpOiBOZXcgZnVuY3Rpb25zLgoJKiBwYS5oIChFWFRSQV9DT05TVFJBSU5UKTogQWRkIGBXJyBjb25zdHJhaW50LgoJKFBSRURJQ0FURV9DT0RFUyk6IERlbGV0ZSBwcmVmZXRjaF9vcGVyYW5kLiAgQWRkIHByZWZldGNoX2NjX29wZXJhbmQKCWFuZCBwcmVmZXRjaF9ub2NjX29wZXJhbmQuCgkqIHBhLm1kIChwcmVmZXRjaCk6IFJld29yayB0byBhdm9pZCByZWxvYWQgcHJvYmxlbXMgaGFuZGxpbmcgc2hvcnQKCWRpc3BsYWNlbWVudHMgd2hlbiBhIGNhY2hlIGNvbnRyb2wgY29tcGxldGVyIG5lZWRzIHRvIGJlIHByb3ZpZGVkLgoJKHByZWZldGNoXzMyLCBwcmVmZXRjaF82NCk6IERlbGV0ZS4KCShwcmVmZXRjaF9jYywgcHJlZmV0Y2hfbm9jYyk6IE5ldyBwYXR0ZXJucy4KCjIwMDUtMDEtMTUgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvYWl4NTIuaCAoQ1BMVVNQTFVTX0NQUF9TUEVDKTogUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZS4KCjIwMDUtMDEtMTUgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJUFIgYWRhLzE5Mzg4CgkqIHBhLmMgKHBhX2FzbV9vdXRwdXRfYWxpZ25lZF9jb21tb24pOiBXYXJuIGlmIHNwZWNpZmllZCBhbGlnbm1lbnQKCWV4Y2VlZHMgbWF4aW11bSBhbGlnbm1lbnQgZm9yIGdsb2JhbCBjb21tb24gZGF0YS4KCSogcGE2NC1ocHV4LmggKE1BWF9PRklMRV9BTElHTk1FTlQpOiBEZWZpbmUgdG8gMzI3NjguCgkqIHNvbS5oIChNQVhfT0ZJTEVfQUxJR05NRU5UKTogTGlrZXdpc2UuCgoyMDA0LTAxLTE1ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIHRyZWUtc3NhLWRvbS5jIChleHRyYWN0X3JhbmdlX2Zyb21fY29uZCk6IENvcnJlY3QgY29uZGl0aW9uLgoKMjAwNC0wMS0xNSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBoYXJnLXJlZy1zZXQuaCAocmVnX2NsYXNzX25hbWVzKTogUHJvdG90eXBlIGdsb2JhbCBhcnJheS4KCSogcmVnY2xhc3MuYyAocmVnX2NsYXNzX25hbWVzKTogRGVjbGFyZSBoZXJlIGFuZCBpbml0aWFsaXplIHRvCglSRUdfQ0xBU1NfTkFNRVMuCgkoZHVtcF9yZWdjbGFzcyk6IFJlbW92ZSBsb2NhbCBkZWNsYXJhdGlvbiBvZiByZWdfY2xhc3NfbmFtZXMuCgkocmVnY2xhc3MpOiBMaWtld2lzZS4KCSogY2ZnLmMgKGR1bXBfZmxvd19pbmZvKTogTGlrZXdpc2UuCgkqIHJhLWRlYnVnLmMgKHJlZ19jbGFzc19uYW1lcyk6IExpa2V3aXNlLgoJKiByZWdyZW5hbWUuYyAocmVnX2NsYXNzX25hbWVzKTogTGlrZXdpc2UuCgkqIHJlbG9hZC5jIChyZWdfY2xhc3NfbmFtZXMpOiBMaWtld2lzZS4KCSogcmVsb2FkMS5jIChzcGlsbF9mYWlsdXJlKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9tNjhoYzExL202OGhjMTEuYyAocmVnX2NsYXNzX25hbWVzKTogTGlrZXdpc2UuCgoyMDA1LTAxLTE1ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLm1kICgicmVsb2FkX291dHRpIik6IFJlbW92ZSBwcmVkaWNhdGUgZm9yCglvdXRwdXQgb3BlcmFuZC4gIEFib3J0IGlmIG9wZXJhbmQgaXMgbm90IGEgTUVNLgoJKCJyZWxvYWRfb3V0ZGkiLCAicmVsb2FkX291dGRmIik6IExpa2V3aXNlLgoKMjAwNS0wMS0xNSAgTWFyYyBFc3BpZSAgPGVzcGllQG9wZW5ic2Qub3JnPgoKCSogY29uZmlnLmdjYyAoKi0qLW9wZW5ic2QqKTogU2V0IEhBU19MSUJDX1IgZm9yIE9wZW5CU0QgPD0gMy4yLgoJKGlbMzQ1NjddODYtKi1vcGVuYnNkKik6IFN3aXRjaCB0byBFTEYgZm9yIE9wZW5CU0QgPj0gMy40LgoJKiBjb25maWcvb3BlbmJzZC5oOiAgRml4IEMrKyBpbmNsdWRlcyBmb3IgbmF0aXZlIGNvbmZpZ3VyYXRpb25zLgoJQWRkIHByb3BlciBPU19DUFBfQlVJTFRJTlMuICBGaXggbGlic3BlYyBmb3IgcmVjZW50IE9wZW5CU0QuCglBZGQgdHJhbXBvbGluZSBzdXBwb3J0LgoJKiBjb25maWcvaTM4Ni9vcGVuYnNkZWxmLmg6IE5ldy4KCjIwMDUtMDEtMTUgIE1hcmMgRXNwaWUgIDxlc3BpZUBvcGVuYnNkLm9yZz4KCgkqIGNvbGxlY3QyLmMgKG1haW4pOiBFeHBsaWNpdGx5IHBhcnNlIC1keW5hbWljLWxpbmtlciBvcHRpb24uCgoyMDA1LTAxLTE1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xOTA2MAoJKiB0cmVlLXNzYS1kb20uYyAoZXh0cmFjdF9yYW5nZV9mcm9tX2NvbmQpIDxjYXNlIExUX0VYUFIsIEdUX0VYUFI+OgoJUmV0dXJuIDAgaWYgb3AxIDw9IFRZUEVfTUlOX1ZBTFVFICgpIHJlc3AuIG9wMSA+PSBUWVBFX01BWF9WQUxVRSAoKS4KCShzaW1wbGlmeV9jb25kX2FuZF9sb29rdXBfYXZhaWxfZXhwcik6IEFkZCBhc3NlcnQgZm9yIGR1bW15ID09IDAKCWFuZCBoYW5kbGUgZXh0cmFjdF9yYW5nZV9mcm9tX2NvbmQgcmV0dXJuaW5nIGZhbHNlLgoJKiBmb2xkLWNvbnN0LmMgKGZvbGQpOiBPcHRpbWl6ZSBjb21wYXJpc29ucyB3aXRoIG1pbi9tYXggZXZlbiBmb3IKCXdpZHRoID4gSE9TVF9CSVRTX1BFUl9XSURFX0lOVC4KCjIwMDUtMDEtMTUgIFJhbGYgQ29yc2VwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCSogY29uZmlnL21pcHMvcnRlbXMuaCAoTUlQU19ERUZBVUxUX0dWQUxVRSk6IFNldCB0byAwLgoJKiBjb25maWcvbWlwcy90LXJ0ZW1zIChNVUxUSUxJQlNfRElSTkFNRVMsTVVMVElMSUJfT1BUSU9OUyk6CglSZW1vdmUgbGl0dGxlIGVuZGlhbiBtdWx0aWxpYiB2YXJpYW50cy4KCUFkZCBtaXBzMzIgbXVsdGlsaWIgdmFyaWFudC4KCjIwMDUtMDEtMTUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBleHBsb3cuYyAoY29weV9hbGxfcmVnLCBzdGFiaWxpemUpOiBSZW1vdmUuCgkqIGV4cHIuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZXMuCgoJKiBydGxhbmFsLmMgKHJlZ3Nfc2V0X2JldHdlZW5fcCk6IFJlbW92ZS4KCSogcnRsLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoyMDA1LTAxLTE0ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczZrX25vbmltbWVkaWF0ZV9vcGVyYW5kKTogUmVuYW1lCgl0byByczYwMDBfbm9uaW1tZWRpYXRlX29wZXJhbmQuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKFBSRURJQ0FURV9DT0RFUyk6IFJlbmFtZQoJcnM2a19ub25pbW1lZGlhdGVfb3BlcmFuZCB0byByczYwMDBfbm9uaW1tZWRpYXRlX29wZXJhbmQuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChtb3ZzaV9pbnRlcm5hbDEpOiBSZW5hbWUgcHJlZGljYXRlIHRvCglyczYwMDBfbm9uaW1tZWRpYXRlX29wZXJhbmQuCgkqIGNvbmZpZy9yczYwMDAvc3BlLm1kIChtb3ZkZl9lNTAwX2RvdWJsZSk6IFJlbmFtZSBwcmVkaWNhdGUgdG8KCXJzNjAwMF9ub25pbW1lZGlhdGVfb3BlcmFuZC4KCjIwMDUtMDEtMTQgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogdHJlZS1zc2EtYWxpYXMuYyAocGFzc19tYXlfYWxpYXMpOiBBZGQgVE9ET192ZXJpZnlfc3RtdHMuCgoyMDA1LTAxLTE0ICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5oIChDTEFTU19NQVhfTlJFR1MpOiBERiBnb2VzIGluIDEgcmVnaXN0ZXIKCW9uIGU1MDB2Mi4KCShDQU5OT1RfQ0hBTkdFX01PREVfQ0xBU1MpOiBSZXN0cmljdCBESSBtb2RlIGNoYW5nZXMgb24gZTUwMHYyLgoJKFBSRURJQ0FURV9DT0RFUyk6IEFkZCByczZrX25vbmltbWVkaWF0ZV9vcGVyYW5kLgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoaW52YWxpZF9lNTAwX3N1YnJlZyk6IE5ldy4KCShyczZrX25vbmltbWVkaWF0ZV9vcGVyYW5kKTogTmV3LgoJKHJzNjAwMF9sZWdpdGltYXRlX29mZnNldF9hZGRyZXNzX3ApOiBIYW5kbGUgREkgbW9kZXMgb24gZTUwMHYyCgljb3JyZWN0bHkuCgkobGVnaXRpbWF0ZV9sb19zdW1fYWRkcmVzc19wKTogU2FtZS4KCShyczYwMDBfbGVnaXRpbWl6ZV9hZGRyZXNzKTogU2FtZS4KCShyczYwMDBfbGVnaXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyk6IFNhbWUuCgkocnM2MDAwX2xlZ2l0aW1hdGVfYWRkcmVzcyk6IFNhbWUuCgkoc3BlX2J1aWxkX3JlZ2lzdGVyX3BhcmFsbGVsKTogUGFzcyBERiBhbmQgREMgbW9kZXMgaW4gYSBESQoJcmVnaXN0ZXIuCgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAoIiptb3ZzaV9pbnRlcm5hbDEiKTogQ2hhbmdlIHByZWRpY2F0ZQoJdG8gcnM2a19ub25pbW1lZGlhdGVfb3BlcmFuZC4KCgkqIGNvbmZpZy9yczYwMDAvc3BlLm1kICgiKmZyb2JfZGZfZGkiKTogTmV3LgoJKCIqZnJvYl9kaV9kZiIpOiBOZXcuCgkoIipmcm9iX2RpX2RmXzIiKTogTmV3LgoJKCIqbW92X3NpZGZfZTUwMF9zdWJyZWcwIik6IE5ldy4KCSgiKm1vdl9zaWRmX2U1MDBfc3VicmVnNCIpOiBOZXcuCgkoIiptb3ZkZl9lNTAwX2RvdWJsZSIpOiBDaGFuZ2UgcHJlZGljYXRlIHRvCglyczZrX25vbmltbWVkaWF0ZV9vcGVyYW5kLgoKMjAwNS0wMS0xNCAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogcG9zdHJlbG9hZC5jIChtb3ZlMmFkZF9ub3RlX3N0b3JlKTogT25seSBjYWxsCgl0cnVuY19pbnRfZm9yX21vZGUgb24gc2NhbGFyIGludGVnZXJzLgoKMjAwNS0wMS0xNCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogdHJlZS1zc2EtZGNlLmMgKHZpc2l0ZWRfY29udHJvbF9wYXJlbnRzKTogTmV3IHNiaXRtYXAgdG8KCXJlcGxhY2UgQkJfVklTSVRFRCB1c2VzLgoJKGZpbmRfb2J2aW91c2x5X25lY2Vzc2FyeV9zdG10cyk6IERvbid0IGNsZWFyIEJCX1ZJU0lURUQuCgkocHJvcGFnYXRlX25lY2Vzc2l0eSk6IENoZWNrIHRoZSBiaXRtYXAgaW5zdGVhZCBvZiBCQl9WSVNJVEVELgoJKHRyZWVfZGNlX2RvbmUpOiBGcmVlIHZpc2l0ZWRfY29udHJvbF9wYXJlbnRzLgoJKHBlcmZvcm1fdHJlZV9zc2FfZGNlKTogQWxsb2NhdGUgYW5kIGNsZWFyIGl0LgoJKiB0cmVlLXNzYS1wcmUuYyAoY29tcHV0ZV9hbnRpY19hdXgpOiBNYWtlIG5vbi1yZWN1cnNpdmUuCgkoY29tcHV0ZV9hbnRpYyk6IEl0ZXJhdGUgZnJvbSBoZXJlIHVzaW5nIGEgREZTLiAgVXNlIGFuIHNiaXRtYXAKCWluc3RlYWQgb2YgQkJfVklTSVRFRC4KCjIwMDUtMDEtMTQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjLXRyZWUuaCwgY292ZXJhZ2UuaCwgbGFuZ2hvb2tzLWRlZi5oLCBvcHRhYnMuaCwgb3V0cHV0LmgsCglydGwuaCwgdGFyZ2hvb2tzLmgsIHRyZWUtZmxvdy5oLCB0cmVlLW11ZGZsYXAuaCwgdHJlZS5oOgoJUmVtb3ZlIHVudXNlZCBwcm90b3R5cGVzLgoKMjAwNS0wMS0xNCAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3N0YWNrX2luZm8pOiBGaXggY2FjaGluZyBvZiBTUEUKCTY0LWJpdCByZWdpc3RlciB1c2FnZS4KCShzcGVfZnVuY19oYXNfNjRiaXRfcmVnc19wKTogQWRkIEZJWE1FIG5vdGUuCgoyMDA1LTAxLTE0ICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZ2VuZXJhdGVfY29tcGFyZSk6IFJlcGxhY2UKCWZsYWdfZmluaXRlX21hdGhfb25seSB3aXRoIGZsYWdfdW5zYWZlX21hdGhfb3B0aW1pemF0aW9ucy4KCjIwMDUtMDEtMTQgIEouIEQuIEpvaG5zdG9uICA8ampvaG5zdEB1cy5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvdHBmLXVud2luZC5oIChzMzkwX2ZhbGxiYWNrX2ZyYW1lX3N0YXRlKTogQ29ycmVjdAoJZW5kLW9mLXN0YWNrIGNoZWNrLgoJKF9fdHBmX2VoX3JldHVybik6IENvcHkgVFBGIHByaXZhdGUgc3RhY2sgYXJlYSBmcm9tIHRoZSBtb2R1bGUKCWJvdW5kYXJ5IHN0YWNrIGZyYW1lLiAgQWRkIGNoZWNrIGZvciB3aGVuIG1vZHVsZSBhZGRyZXNzZXMgYXJlCgllcXVhbCwgYnV0IG5vIHN0dWIgYWRkcmVzcyBpcyBmb3VuZC4KCjIwMDUtMDEtMTQgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCVBSIHRhcmdldC83NTI1CgkqIGFybS5oIChzdHJ1Y3QgbWFjaGluZV9mdW5jdGlvbik6IEFkZCBjYWxsX3ZpYSBmaWVsZC4KCSh0aHVtYl9jYWxsX3ZpYV9sYWJlbCk6IERlY2xhcmUuCgkqIGFybS5jICh0aHVtYl9jYWxsX3ZpYV9sYWJlbCk6IE5ldyB2YXJpYWJsZS4KCSh0aHVtYl9jYWxsX3JlZ19uZWVkZWQpOiBOZXcgdmFyaWFibGUuCgkoYXJtX291dHB1dF9mdW5jdGlvbl9lcGlsb2d1ZSk6IEZvciBUaHVtYiBjb2RlLCBvdXRwdXQgYW55IHBlci1mdW5jdGlvbgoJY2FsbC1pbmRpcmVjdCB0cmFtcG9saW5lcy4KCSh0aHVtYl9jYWxsX3ZpYV9yZWcpOiBOZXcgZnVuY3Rpb24uCgkoYXJtX2ZpbGVfZW5kKTogTmV3IGZ1bmN0aW9uLgoJKFRBUkdFVF9BU01fRklMRV9FTkQpOiBDYWxsIGFybV9maWxlX2VuZC4KCShhb2ZfZmlsZV9lbmQpOiBMaWtld2lzZS4KCSogYXJtLXByb3Rvcy5oICh0aHVtYl9jYWxsX3ZpYV9yZWcpOiBEZWNsYXJlLgoJKiBhcm0ubWQgKGNhbGxfcmVnX3RodW1iLCBjYWxsX3ZhbHVlX3JlZ190aHVtYik6IENhbGwKCXRodW1iX2NhbGxfdmlhX3JlZyBpbiBub3JtYWwgY2FzZS4KCjIwMDUtMDEtMTQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTkwODQKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTkzNDgKCSogcmVjb2cuYyAocGVlcGhvbGUyX29wdGltaXplKTogRG8gZ2xvYmFsIGxpZmUgdXBkYXRlIGlmIHNvbWUgcGVlcGhvbGUKCWRlY2lkZXMgaXQgZG9lc24ndCBuZWVkIGF0IGxlYXN0IG9uZSBvZiBpdHMgaW5wdXRzIGFuZCB0aGF0IGNoYW5nZQoJaW5mbHVlbmNlcyBsaXZlbmVzcyBhdCB0aGUgc3RhcnQgb2YgdGhlIGJhc2ljIGJsb2NrLgoKCSogYmFzaWMtYmxvY2suaCAoRVhFQ1VURV9JRl9BTkRfQ09NUExfSU5fUkVHX1NFVCk6IE5lZWRzIDIgUkVHU0VUCglhcmd1bWVudHMgaW5zdGVhZCBvZiAxLgoKMjAwNS0wMS0xNCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiBtaWRkbGUtZW5kLzE4ODIwCgkqIHZhcmFzbS5jIChpbml0aWFsaXplcl9jb25zdGFudF92YWxpZF9wKSA8QUREUl9FWFBSPjogUmV0dXJuCgl6ZXJvIGZvciBuZXN0ZWQgZnVuY3Rpb25zIG5lZWRpbmcgYSBzdGF0aWMgY2hhaW4gb3IgZnVuY3Rpb25zCgl3aXRoIGEgbm9uLWNvbnN0YW50IGFkZHJlc3MuCgoyMDA1LTAxLTEzICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9iaW5hcnlfb3BlcmF0aW9uKSA8QU5EPjogT3B0aW1pemUKCShhbmQgKHNpZ25fZXh0ZW5kIFgpIEMpIGludG8gKHplcm9fZXh0ZW5kIChhbmQgWCBDKSkuCgoyMDA1LTAxLTEzICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogY29uZmlnL2ZyZWVic2Qtc3BlYy5oOiAgTWFrZSBLU0UgcHRocmVhZCBsaWIgbG9naWMgdGhlIGRlZmF1bHQuCgoyMDA1LTAxLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xOTAwOQoJUFIgdGFyZ2V0LzE5MjUwCglQUiB0YXJnZXQvMTkyNTIKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoY21wZGYsIGNtcHNmLCBidW5vcmRlcmVkLCBib3JkZXJlZCwgYnVuZXEsCglidW5nZSwgYnVuZ3QsIGJ1bmxlLCBidW5sdCwgYmx0Z3QpOiBFbmFibGUgZm9yIFRBUkdFVF9TU0VfTUFUSCwKCW5vdCBqdXN0IFRBUkdFVF9TU0UuCgkoY21wZnBfaV8zODcpOiBSZW5hbWUgZnJvbSBjbXBmcF9pLiAgTW92ZSBhZnRlciBzc2UgcGF0dGVybnMuCgkoY21wZnBfaV9taXhlZCk6IFJlbmFtZSBmcm9tIGNtcGZwX2lfc3NlOyB1c2UgZm9yIFRBUkdFVF9NSVhfU1NFX0kzODcuCgkoY21wZnBfaV9zc2UpOiBSZW5hbWUgZnJvbSBjbXBmcF9pX3NzZV9vbmx5OyB1c2UgZm9yIFRBUkdFVF9TU0VfTUFUSC4KCShjbXBmcF9pdV9taXhlZCwgY21wZnBfaXVfc3NlLCBjbXBmcF9pdV8zODcpOiBTaW1pbGFybHkuCgkoZnBfamNjXzFfbWl4ZWQsIGZwX2pjY18xX3NzZSwgZnBfamNjXzFfMzg3KTogU2ltaWxhcmx5LgoJKGZwX2pjY18yX21peGVkLCBmcF9qY2NfMl9zc2UsIGZwX2pjY18yXzM4Nyk6IFNpbWlsYXJseS4KCShmcF9qY2NfM18zODcsIGZwX2pjY180XzM4NywgZnBfamNjXzVfMzg3LCBmcF9qY2NfNl8zODcsCglmcF9qY2NfN18zODcsIGZwX2pjY184XzM4Nyk6IFJlbmFtZSBmcm9tIGZwX2pjY19OLgoJKG1vdmRpY2NfY19yZXg2NCk6IFJlbmFtZSB3aXRoICcqJy4KCShtb3ZzZmNjLCBtb3ZkZmNjKTogQWRkIGNoZWNrcyBmb3IgMzg3IGFuZCBzc2UgbWF0aCB0byBjb25kaXRpb24uCgkobW92c2ZjY18xX3NzZV9taW4sIG1vdnNmY2NfMV9zc2VfbWF4LCBtb3ZzZmNjXzFfc3NlKTogTmV3LgoJKG1vdnNmY2NfMV8zODcpOiBSZW5hbWUgZnJvbSBtb3ZzZmNjXzEuCgkobW92ZGZjY18xX3NzZV9taW4sIG1vdmRmY2NfMV9zc2VfbWF4LCBtb3ZkZmNjXzFfc3NlKTogTmV3LgoJKG1vdmRmY2NfMSwgbW92ZGZjY18xX3JleDY0KTogQWRkIGNoZWNrIGZvciAzODcuCgkoc21pbnNmMywgc21heHNmMywgc21pbmRmMywgc21heGRmMyk6IE5ldy4KCShtaW5zZjMsIG1pbnNmLCBtaW5zZl9ub25pZWVlLCBtaW5zZl9zc2UsIG1pbmRmMywgbWluZGYsCgltaW5kZl9ub25pZWVlLCBtaW5kZl9zc2UsIG1heHNmMywgbWF4c2YsIG1heHNmX25vbmllZWUsIG1heHNmX3NzZSwKCW1heGRmMywgbWF4ZGYsIG1heGRmX25vbmllZWUsIG1heGRmX3NzZSwgc3NlX21vdnNmY2MsIHNzZV9tb3ZzZmNjX2VxLAoJc3NlX21vdmRmY2MsIHNzZV9tb3ZkZmNjX2VxLCBzc2VfbW92c2ZjY19jb25zdDBfMSwKCXNzZV9tb3ZzZmNjX2NvbnN0MF8yLCBzc2VfbW92c2ZjY19jb25zdDBfMywgc3NlX21vdnNmY2NfY29uc3QwXzQsCglzc2VfbW92ZGZjY19jb25zdDBfMSwgc3NlX21vdmRmY2NfY29uc3QwXzIsIHNzZV9tb3ZkZmNjX2NvbnN0MF8zLAoJc3NlX21vdmRmY2NfY29uc3QwXzQpOiBSZW1vdmUuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9leHBhbmRfZnBfbW92Y2MpOiBGb3IgVEFSR0VUX1NTRV9NQVRILAoJcmVjb2duaXplIG1pbi9tYXggZWFybHkuICBVcGRhdGUgZm9yIGNoYW5nZWQgc3NlIGNtb3ZlIHBhdHRlcm5zLgoJKGl4ODZfc3BsaXRfc3NlX21vdmNjKTogTmV3LgoJKiBjb25maWcvaTM4Ni9pMzg2LXByb3Rvcy5oOiBVcGRhdGUuCgoyMDA1LTAxLTEzICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiB0cmVlLXNzYS1kc2UuYyAoZml4X3BoaV91c2VzKTogVXNlIFNTQSBvcGVyYW5kIGl0ZXJhdG9ycy4KCShmaXhfc3RtdF92X21heV9kZWZzKTogTGlrZXdpc2UuCgoyMDA1LTAxLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF9mcF9hYnNuZWdfb3BlcmF0b3IpOiBVc2UgZWx0X21vZGUKCWZvciBjb252ZXJ0aW5nIHRoZSBtYXNrLgoKMjAwNS0wMS0xMyAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlnL3JzNjAwMC9haXg1Mi5oIChDUExVU1BMVVNfQ1BQX1NQRUMpOiBDaGFuZ2UgX1hPUEVOX1NPVVJDRQoJZGVmaW5pdGlvbiB0byA2MDAuCgoyMDA1LTAxLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChJWDg2X0JVSUxUSU5fTU9WUSwgSVg4Nl9CVUlMVElOX0xPQURELAoJSVg4Nl9CVUlMVElOX1NUT1JFRCwgSVg4Nl9CVUlMVElOX01PVlEyRFEsCglJWDg2X0JVSUxUSU5fTU9WRFEyUSk6IFJlbW92ZS4KCShJWDg2X0JVSUxUSU5fVkVDX0VYVF9WNFNJKTogTmV3LgoJKGl4ODZfaW5pdF9tbXhfc3NlX2J1aWx0aW5zLCBpeDg2X2V4cGFuZF9idWlsdGluKTogVXBkYXRlIHRvIG1hdGNoLgoJKGl4ODZfZXhwYW5kX3ZlY3Rvcl9leHRyYWN0KTogRm9yIFY0U1tGSV0sIGV4dHJhY3QgZWxlbWVudCAwIGFmdGVyCglzaHVmZmxpbmcuCgkqIGNvbmZpZy9pMzg2L3NzZS5tZCAoc3NlX2NvbmNhdHYyc2YpOiBBY2NlcHQgemVybyBvcGVyYW5kIDIuCgkoc3NlMl9wZXh0cncpOiBGaXggaW1tZWRpYXRlIGNvbnN0cmFpbnQuCgkoc3NlMl9sb2FkcSwgc3NlMl9sb2FkcV9yZXg2NCk6IFJlbW92ZS4KCSogY29uZmlnL2kzODYvZW1taW50cmluLmggKF9tbV9jdnRzaTEyOF9zaTMyLCBfbW1fY3Z0c2kxMjhfc2k2NHgpOgoJVXNlIF9fYnVpbHRpbl9pYTMyX3ZlY19leHRfPHNpemU+LgoJKF9tbV9jdnRzaTMyX3NpMTI4LCBfbW1fY3Z0c2k2NHhfc2kxMjgpOiBVc2UgX21tX3NldF9lcGk8c2l6ZT4uCgoyMDA1LTAxLTEzICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBmdW5jdGlvbi5jIChhc3NpZ25fcGFybV9zZXR1cF9ibG9jayk6IExvb2sgaW5zaWRlIG9yaWdpbmFsCgllbnRyeV9wYXJtIHdoZW4gaW5zcGVjdGluZyBQQVJBTExFTC4KCjIwMDUtMDEtMTMgIFJhbGYgQ29yc2VwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoJICAgIEpvZWwgU2hlcnJpbGwgIDxqb2VsQG9hcmNvcnAuY29tPgoKCVBSIHRhcmdldC8xOTM5OQoJKiBndGhyLXJ0ZW1zLmggKF9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfdCk6IE5ldyB0eXBlLgoJKF9fR1RIUkVBRF9SRUNVUlNJVkVfTVVURVhfSU5JVF9GVU5DVElPTik6IERlZmluZSB0bwoJcnRlbXNfZ3h4X3JlY3Vyc2l2ZV9tdXRleF9pbml0LgoJKF9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfbG9jayk6IE5ldyBmdW5jdGlvbi4KCShfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X3RyeWxvY2spOiBMaWtld2lzZS4KCShfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X3VubG9jayk6IExpa2V3aXNlLgoKMjAwNS0wMS0xMyAgUmFsZiBDb3JzZXBpdXMgPHJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZz4KCgkqIGNvbmZpZy9pMzg2L3QtcnRlbXMtaTM4NjogTXVsdGlsaWIgb24gLW10dW5lIGluc3RlYWQgb2YgLW1jcHUuCgoyMDA1LTAxLTEzICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBjb25maWcvaWE2NC9pYTY0Lm1kIChhc2hsdGkzLCBhc2hsdGkzX2ludGVybmFsKTogTmV3LgoJKGFzaHJ0aTNfaW50ZXJuYWwpOiBJbmRpY2F0ZSBvdXRwdXQgaXMgZWFybHkgY2xvYmJlci4gR2VuZXJhdGUgcmVzdWx0CglpbnRvIG91dHB1dCByYXRoZXIgdGhhbiBmaXJzdCBpbnB1dC4gVXNlIG1vdmUgZm9yIGxvdyB3b3JkIG9mIG91dHB1dAoJaWYgc2hpZnQgY291bnQgaXMgZXhhY3RseSA2NC4KCShsc2hydGkzX2ludGVybmFsKTogTGlrZXdpc2UuCgoyMDA1LTAxLTEzICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJUFIgdGFyZ2V0LzE4MzI5CglQUiB0YXJnZXQvMTgzMzAKCSogcmVsb2FkMS5jIChkZWxldGVfb3V0cHV0X3JlbG9hZCk6IERvbid0IGRlbGV0ZSBhbiBvdXRwdXQgcmVsb2FkCglpZiB0aGUgcHNldWRvIGxpdmVzIGxvbmdlciB0aGFuIGEgc2luZ2xlIGJhc2ljIGJsb2NrLiAgQWRqdXN0IGFuZAoJaW1wcm92ZSB3b3JkaW5nIG9mIGNvbW1lbnQuCgoyMDA1LTAxLTEyICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0YXJnZXQvMTkzMzQKCSogY29uZmlnL2Rhcndpbi5jIChtYWNob3BpY19zZWxlY3Rfc2VjdGlvbik6IFVzZSBUWVBFX1NJWkVfVU5JVCBpbnN0ZWFkCglvZiBUWVBFX1NJWkUgd2hlcmUgd2UgbWVhbiB0aGUgbnVtYmVyIG9mIGJ5dGVzLgoKMjAwNS0wMS0xMiAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogZnVuY3Rpb24uYyAoYXNzaWduX3Bhcm1fc2V0dXBfYmxvY2spOiBSZWxheCBjb25kaXRpb24gb24KCW11bHRpLXJlZ2lzdGVyIG9wdGltaXphdGlvbi4KCjIwMDUtMDEtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvc2gvc2gubWQgKHVkaXZzaTNfc2gyYSwgZGl2c2kzX3NoMmEpOiBHaXZlIHRoZXNlIHBhdHRlcm5zCglhbiAiaW5fZGVsYXlfc2xvdCIgYXR0cmlidXRlIG9mICJubyIgdG8gcHJldmVudCB0aGVtIGJlaW5nIHVzZWQgaW4KCWRlbGF5IHNsb3RzLiAgVGhpcyBpcyBmb3JiaWRkZW4gYmVjYXVzZSB0aGV5IG1pZ2h0IGdlbmVyYXRlCglleGNlcHRpb25zLgoKMjAwNS0wMS0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiB0YXJnZXQvMTkzODkKCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKG1vdnRmX2ludGVybmFsKTogUmVwbGFjZSByLT5vIGFuZCBtLT5yCgl3aXRoIHItPlkgYW5kIFktPnIuCgoyMDA1LTAxLTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL2lxMjAwMC9pcTIwMDAuaCAoQVNNX1NQRUMpOiBVbmRlZmluZSAodG8gc3RvcCAtUXkgYmVpbmcKCXBhc3NlZCBvbiB0byBHQVMpIGJ1dCBkbyBub3QgZGVmaW5lLCBhcyBHQVMgbm8gbG9uZ2VyIHN1cHBvcnRzIG9yCgluZWVkcyB0aGUgLW0yMDAwIG9wdGlvbi4KCjIwMDUtMDEtMTEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogYnVpbHRpbnMuYyAoZm9sZF9idWlsdGluX2ZhYnMpOiBDb252ZXJ0IGFyZ3VtZW50IHRvIHRoZSBhcHByb3ByaWF0ZQoJdHlwZSBhcyBhcmdzIG9mIHVucHJvdG90eXBlZCBidWlsdGlucyBhcmVuJ3QgYXV0b21hdGljYWxseSBwcm9tb3RlZC4KCShmb2xkX2J1aWx0aW5fYWJzKTogTGlrZXdpc2UuCgoyMDA1LTAxLTExICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBNYWtlZmlsZS5pbjogU2V0IGEgYGJ1aWxkLXdhcm4nIHZhcmlhYmxlLgoKMjAwNS0wMS0xMSAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNzk0OQoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChtYXlfYmVfdW5hbGlnbmVkX3ApOiBOZXcgZnVuY3Rpb24uCgkoZmluZF9pbnRlcmVzdGluZ191c2VzX2FkZHJlc3MpOiBVc2UgaXQuCgoyMDA1LTAxLTExICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiByZWdyZW5hbWUuYyAoa2lsbF92YWx1ZSk6IEhhbmRsZSBzdWJyZWcncyB0aGF0IHdvbid0IHNpbXBsaWZ5LgoKMjAwNS0wMS0xMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTMzNjYKCSogY29uZmlnL2kzODYvaTM4Ni5oIChlbnVtIGl4ODZfYnVpbHRpbnMpOiBNb3ZlIC4uLgoJKiBjb25maWcvaTM4Ni9pMzg2LmM6IC4uLiBoZXJlLgoJKElYODZfQlVJTFRJTl9NT1ZERFVQLCBJWDg2X0JVSUxUSU5fTU1YX1pFUk8sIElYODZfQlVJTFRJTl9QRVhUUlcsCglJWDg2X0JVSUxUSU5fUElOU1JXLCBJWDg2X0JVSUxUSU5fTE9BREFQUywgSVg4Nl9CVUlMVElOX0xPQURTUywKCUlYODZfQlVJTFRJTl9TVE9SRVNTLCBJWDg2X0JVSUxUSU5fU1NFX1pFUk8sIElYODZfQlVJTFRJTl9QRVhUUlcxMjgsCglJWDg2X0JVSUxUSU5fUElOU1JXMTI4LCBJWDg2X0JVSUxUSU5fTE9BREFQRCwgSVg4Nl9CVUlMVElOX0xPQURTRCwKCUlYODZfQlVJTFRJTl9TVE9SRUFQRCwgSVg4Nl9CVUlMVElOX1NUT1JFU0QsICBJWDg2X0JVSUxUSU5fU1RPUkVIUEQsCglJWDg2X0JVSUxUSU5fU1RPUkVMUEQsIElYODZfQlVJTFRJTl9TRVRQRDEsIElYODZfQlVJTFRJTl9TRVRQRCwKCUlYODZfQlVJTFRJTl9DTFJQRCwgSVg4Nl9CVUlMVElOX0xPQURQRDEsIElYODZfQlVJTFRJTl9MT0FEUlBELAoJSVg4Nl9CVUlMVElOX1NUT1JFUEQxLCBJWDg2X0JVSUxUSU5fU1RPUkVSUEQsIElYODZfQlVJTFRJTl9MT0FERFFBLAoJSVg4Nl9CVUlMVElOX1NUT1JFRFFBLCBJWDg2X0JVSUxUSU5fQ0xSVEksCglJWDg2X0JVSUxUSU5fTE9BREREVVApOiBSZW1vdmUuCgkoSVg4Nl9CVUlMVElOX1ZFQ19JTklUX1YyU0ksIElYODZfQlVJTFRJTl9WRUNfSU5JVF9WNEhJLAoJSVg4Nl9CVUlMVElOX1ZFQ19JTklUX1Y4UUksIElYODZfQlVJTFRJTl9WRUNfRVhUX1YyREYsCglJWDg2X0JVSUxUSU5fVkVDX0VYVF9WMkRJLCBJWDg2X0JVSUxUSU5fVkVDX0VYVF9WNFNGLAoJSVg4Nl9CVUlMVElOX1ZFQ19FWFRfVjhISSwgSVg4Nl9CVUlMVElOX1ZFQ19FWFRfVjRISSwKCUlYODZfQlVJTFRJTl9WRUNfU0VUX1Y4SEksIElYODZfQlVJTFRJTl9WRUNfU0VUX1Y0SEkpOiBOZXcuCgkoaXg4Nl9pbml0X2J1aWx0aW5zKTogTWFrZSBzdGF0aWMuCgkoaXg4Nl9pbml0X21teF9zc2VfYnVpbHRpbnMpOiBVcGRhdGUgZm9yIGNoYW5nZWQgYnVpbHRpbnMuCgkoaXg4Nl9leHBhbmRfYmlub3BfYnVpbHRpbik6IE9ubHkgdXNlIGl4ODZfZml4dXBfYmluYXJ5X29wZXJhbmRzCglpZiBhbGwgdGhlIG1vZGVzIG1hdGNoLiAgT3RoZXJ3aXNlLCBmYWtlIGl0LgoJKGdldF9lbGVtZW50X251bWJlciwgaXg4Nl9leHBhbmRfdmVjX2luaXRfYnVpbHRpbiwKCWl4ODZfZXhwYW5kX3ZlY19leHRfYnVpbHRpbiwgaXg4Nl9leHBhbmRfdmVjX3NldF9idWlsdGluKTogTmV3LgoJKGl4ODZfZXhwYW5kX2J1aWx0aW4pOiBNYWtlIHN0YXRpYy4gIFVwZGF0ZSBmb3IgY2hhbmdlZCBidWlsdGlucy4KCShpeDg2X2V4cGFuZF92ZWN0b3JfbW92ZV9taXNhbGlnbik6IFVzZSBzc2UyX2xvYWRscGQgd2l0aCB6ZXJvCglvcGVyYW5kIGluc3RlYWQgb2Ygc3NlMl9sb2Fkc2QuICBDYXN0IHNzZTEgZmFsbGJhY2sgdG8gVjRTRm1vZGUuCgkoaXg4Nl9leHBhbmRfdmVjdG9yX2luaXRfZHVwbGljYXRlKTogTmV3LgoJKGl4ODZfZXhwYW5kX3ZlY3Rvcl9pbml0X2xvd19ub256ZXJvKTogTmV3LgoJKGl4ODZfZXhwYW5kX3ZlY3Rvcl9pbml0X29uZV92YXIsIGl4ODZfZXhwYW5kX3ZlY3Rvcl9pbml0X2dlbmVyYWwpOgoJU3BsaXQgb3V0IGZyb20gaXg4Nl9leHBhbmRfdmVjdG9yX2luaXQ7IGhhbmRsZSBpbnRlZ2VyIG1vZGVzLgoJKGl4ODZfZXhwYW5kX3ZlY3Rvcl9pbml0KTogVXNlIHRoZW0uCgkoaXg4Nl9leHBhbmRfdmVjdG9yX3NldCwgaXg4Nl9leHBhbmRfdmVjdG9yX2V4dHJhY3QpOiBOZXcuCgkqIGNvbmZpZy9pMzg2L2kzODYtcHJvdG9zLmg6IFVwZGF0ZS4KCSogY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZCAocmVnX29yXzBfb3BlcmFuZCk6IE5ldy4KCSogY29uZmlnL2kzODYvbW14Lm1kIChtb3Y8TU1YTU9ERUk+X2ludGVybmFsKTogQWRkICdyJyB2YXJpYW50cy4KCShtb3Z2MnNmX2ludGVybmFsKTogTGlrZXdpc2UuICBBbmQgYSBzcGxpdHRlciB0byBtYXRjaCB0aGVtIGFsbC4KCSh2ZWNfZHVwdjJzZiwgbW14X2NvbmNhdHYyc2YsIHZlY19zZXR2MnNmLCB2ZWNfZXh0cmFjdHYyc2YsCgl2ZWNfaW5pdHYyc2YsIHZlY19kdXB2NGhpLCB2ZWNfZHVwdjJzaSwgbW14X2NvbmNhdHYyc2ksIHZlY19zZXR2MnNpLAoJdmVjX2V4dHJhY3R2MnNpLCB2ZWNfaW5pdHYyc2ksIHZlY19zZXR2NGhpLCB2ZWNfZXh0cmFjdHY0aGksCgl2ZWNfaW5pdHY0aGksIHZlY19zZXR2OHFpLCB2ZWNfZXh0cmFjdHY4cWksIHZlY19pbml0djhxaSk6IE5ldy4KCShtbXhfcGluc3J3KTogRml4IG9wZXJhbmQgb3JkZXJpbmcuCgkqIGNvbmZpZy9pMzg2L3NzZS5tZCAobW92djRzZiBzcGxpdHRlcik6IFVzZSBkaXJlY3QgcGF0dGVybiwKCXJhdGhlciB0aGFuIHNzZV9sb2Fkc3MgZXhwYW5kZXIuCgkobW92djJkZiBzcGxpdHRlcik6IFNpbWlsYXJseS4KCShzc2VfbG9hZHNzLCBzc2VfbG9hZGxzcyk6IFJlbW92ZS4KCSh2ZWNfZHVwdjRzZiwgc3NlX2NvbmNhdHYyc2YsIHNzZV9jb25jYXR2NHNmLCB2ZWNfZXh0cmFjdHY0c2ZfMCk6IE5ldy4KCSh2ZWNfc2V0djRzZiwgdmVjX3NldHYyZGYpOiBVc2UgaXg4Nl9leHBhbmRfdmVjdG9yX3NldC4KCSh2ZWNfZXh0cmFjdHY0c2YsIHZlY19leHRyYWN0djJkZik6IFVzZSBpeDg2X2V4cGFuZF92ZWN0b3JfZXh0cmFjdC4KCShzc2UzX21vdmRkdXApOiBSZW5hbWUgd2l0aCAnKicuCgkoc3NlM19tb3ZkZHVwIHNwbGl0dGVyKTogVXNlIGdlbl9ydHhfUkVHIGluc3RlYWQgb2YgZ2VuX2xvd3BhcnQuCgkoc3NlMl9sb2Fkc2QpOiBSZW1vdmUuCgkodmVjX2R1cHYyZGZfc3NlMyk6IFJlbmFtZSBmcm9tIHNzZTNfbG9hZGRkdXAuCgkodmVjX2R1cHYyZGYsIHZlY19jb25jYXR2MmRmX3NzZTMsIHZlY19jb25jYXR2MmRmKTogTmV3LgoJKHNzZTJfcGluc3J3KTogRml4IGFyZ3VtZW50IG9yZGVyaW5nLgoJKHNzZTJfbG9hZGxkLCBzc2UyX2xvYWRxKTogQWRkIHNzZTEgYWx0ZXJuYXRpdmVzLgoJKHNzZTJfc3RvcmVkKTogUmVtb3ZlICdyJyBkZXN0aW5hdGlvbi4KCSh2ZWNfZHVwdjRzaSwgdmVjX2R1cHYyZGksIHNzZTJfY29uY2F0djJzaSwgc3NlMV9jb25jYXR2MnNpLAoJdmVjX2NvbmNhdHY0c2lfMSwgdmVjX2NvbmNhdHYyZGksIHZlY19zZXR2MmRpLCB2ZWNfZXh0cmFjdHYyZGksCgl2ZWNfaW5pdHYyZGksIHZlY19zZXR2NHNpLCB2ZWNfZXh0cmFjdHY0c2ksIHZlY19pbml0djRzaSwKCXZlY19zZXR2OGhpLCB2ZWNfZXh0cmFjdHY4aGksIHZlY19pbml0djhoaSwgdmVjX3NldHYxNnFpLAoJdmVjX2V4dHJhY3R2MTZxaSwgdmVjX2luaXR2MTZxaSk6IE5ldy4KCgkqIGNvbmZpZy9pMzg2L2VtbWludHJpbi5oIChfX20xMjhpLCBfX20xMjhkKTogVXNlIHR5cGVkZWYsIG5vdCBkZWZpbmUuCgkoX21tX3NldF9zZCwgX21tX3NldDFfcGQsIF9tbV9zZXR6ZXJvX3BkLCBfbW1fc2V0X2VwaTY0eCwKCV9tbV9zZXRfZXBpMzIsIF9tbV9zZXRfZXBpMTYsIF9tbV9zZXRfZXBpOCwgX21tX3NldHplcm9fc2kxMjgpOiBVc2UKCWNvbnN0cnVjdG9yIGZvcm0uCgkoX21tX2xvYWRfcGQsIF9tbV9zdG9yZV9wZCk6IFVzZSBwbGFpbiBkZXJlZmVyZW5jZS4KCShfbW1fbG9hZF9zaTEyOCwgX21tX3N0b3JlX3NpMTI4KTogTGlrZXdpc2UuCgkoX21tX2xvYWQxX3BkKTogVXNlIF9tbV9zZXQxX3BkLgoJKF9tbV9sb2FkX3NkKTogVXNlIF9tbV9zZXRfc2QuCgkoX21tX3N0b3JlX3NkLCBfbW1fc3RvcmVoX3BkKTogVXNlIF9fYnVpbHRpbl9pYTMyX3ZlY19leHRfdjJkZi4KCShfbW1fc3RvcmUxX3BkLCBfbW1fc3RvcmVyX3BkKTogVXNlIF9tbV9zdG9yZV9wZC4KCShfbW1fc2V0X2VwaTY0KTogVXNlIF9tbV9zZXRfZXBpNjR4LgoJKF9tbV9zZXQxX2VwaTY0eCwgX21tX3NldDFfZXBpNjQsIF9tbV9zZXQxX2VwaTMyLCBfbW1fc2V0X2VwaTE2LAoJX21tX3NldDFfZXBpOCwgX21tX3NldHJfZXBpNjQsIF9tbV9zZXRyX2VwaTMyLCBfbW1fc2V0cl9lcGkxNiwKCV9tbV9zZXRyX2VwaTgpOiBVc2UgX21tX3NldF9mb28gZm9ybS4KCShfbW1fbG9hZGxfZXBpNjQsIF9tbV9tb3ZwaTY0X2VwaTY0LCBfbW1fbW92ZV9lcGk2NCk6IFVzZSBfbW1fc2V0X2VwaTY0LgoJKF9tbV9zdG9yZWxfZXBpNjQsIF9tbV9tb3ZlcGk2NF9waTY0KTogVXNlIF9fYnVpbHRpbl9pYTMyX3ZlY19leHRfdjJkaS4KCShfbW1fZXh0cmFjdF9lcGkxNik6IFVzZSBfX2J1aWx0aW5faWEzMl92ZWNfZXh0X3Y4aGkuCgkoX21tX2luc2VydF9lcGkxNik6IFVzZSBfX2J1aWx0aW5faWEzMl92ZWNfc2V0X3Y4aGkuCgkqIGNvbmZpZy9pMzg2L21taW50cmluLmggKF9tbV9zZXR6ZXJvX3NpNjQpOiBVc2UgcGxhaW4gY2FzdC4KCShfbW1fc2V0X3BpMzIpOiBVc2UgX19idWlsdGluX2lhMzJfdmVjX2luaXRfdjJzaS4KCShfbW1fc2V0X3BpMTYpOiBVc2UgX19idWlsdGluX2lhMzJfdmVjX2luaXRfdjRoaS4KCShfbW1fc2V0X3BpOCk6IFVzZSBfX2J1aWx0aW5faWEzMl92ZWNfaW5pdF92OHFpLgoJKF9tbV9zZXQxX3BpMTYsIF9tbV9zZXQxX3BpOCk6IFVzZSBfbW1fc2V0X3BpTiB2YXJpYW50LgoJKiBjb25maWcvaTM4Ni9wbW1pbnRyaW4uaCAoX21tX2xvYWRkdXBfcGQpOiBVc2UgX21tX2xvYWQxX3BkLgoJKF9tbV9tb3ZlZHVwX3BkKTogVXNlIF9tbV9zaHVmZmxlX3BkLgoJKiBjb25maWcvaTM4Ni94bW1pbnRyaW4uaCAoX21tX3NldHplcm9fcHMsIF9tbV9zZXRfc3MsCglfbW1fc2V0MV9wcywgX21tX3NldF9wcywgX21tX3NldHJfcHMpOiBVc2UgY29uc3RydWN0b3IgZm9ybS4KCShfbW1fY3Z0cGkxNl9wcywgX21tX2N2dHB1MTZfcHMsIF9tbV9jdnRwaThfcHMsIF9tbV9jdnRwdThfcHMsCglfbW1fY3Z0cHNfcGk4LCBfbW1fY3Z0cGkzMngyX3BzKTogQXZvaWQgX19idWlsdGluX2lhMzJfbW14X3plcm87CglVc2UgX21tX3NldHplcm9fcHMuCgkoX21tX2xvYWRfc3MsIF9tbV9sb2FkMV9wcyk6IFVzZSBfbW1fc2V0KiBmb3JtLgoJKF9tbV9sb2FkX3BzLCBfbW1fbG9hZHJfcHMpOiBVc2UgcmF3IGRlcmVmZXJlbmNlLgoJKF9tbV9zdG9yZV9zcyk6IFVzZSBfX2J1aWx0aW5faWEzMl92ZWNfZXh0X3Y0c2YuCgkoX21tX3N0b3JlX3BzKTogVXNlIHJhdyBkZXJlZmVyZW5jZS4KCShfbW1fc3RvcmUxX3BzKTogVXNlIF9tbV9zdG9yZXVfcHMuCgkoX21tX3N0b3Jlcl9wcyk6IFVzZSBfbW1fc3RvcmVfcHMuCgkoX21tX2V4dHJhY3RfcGkxNik6IFVzZSBfX2J1aWx0aW5faWEzMl92ZWNfZXh0X3Y0aGkuCgkoX21tX2luc2VydF9waTE2KTogVXNlIF9fYnVpbHRpbl9pYTMyX3ZlY19zZXRfdjRoaS4KCjIwMDUtMDEtMTEgIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChtYWNob3BpY19vdXRwdXRfc3R1Yik6IElzc3VlCglsZHUgaW5zdGVhZCBvZiBsd3p1IGlmIDY0LWJpdCAtbWR5bmFtaWMtbm8tcGljLgoKMjAwNS0wMS0xMSAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgdGFyZ2V0LzE4NzYxCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9zcGVjaWFsX3JvdW5kX3R5cGVfYWxpZ24pOgoJU2tpcCBhbGwgREVDTHMgZXhjZXB0IGZvciBGSUVMRF9ERUNMcy4KCjIwMDUtMDEtMTEgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWwxQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKG92ZXJyaWRlX29wdGlvbnMpOiBSZXR1cm4gZXJyb3IgaWYKCS1tYmFja2NoYWluLCAtbXBhY2tlZC1zdGFjayBhbmQgLW1oYXJkLWZsb2F0IGFyZSB1c2VkIHRvZ2V0aGVyLgoJKHMzOTBfdmFfc3RhcnQpOiBSZW1vdmUgdGhlIGJhY2tjaGFpbiAmJiBwYWNrZWQtc3RhY2sgc3BlY2lhbCBjYXNlLgoJKHMzOTBfZ2ltcGxpZnlfdmFfYXJnKTogTGlrZXdpc2UuCgkqIGRvYy9pbnZva2UudGV4aTogUmVtb3ZlIHRoZSBBQkkgaW5jb21wYXRpYmlsaXR5IG5vdGUuCgoyMDA1LTAxLTExICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5jIChzdHJ1Y3QgczM5MF9mcmFtZV9sYXlvdXQpOiBSZW1vdmUKCXNhdmVfYmFja2NoYWluX3AuCgkoczM5MF9mcmFtZV9pbmZvLCBzMzkwX2VtaXRfcHJvbG9ndWUpOiBSZXBsYWNlIG9jY3VycmVuY2VzIG9mCglzYXZlX2JhY2tjaGFpbl9wIHdpdGggVEFSR0VUX0JBQ0tDSEFJTi4KCjIwMDUtMDEtMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgdGFyZ2V0LzE4OTE2CgkqIGJ1aWx0aW5zLmMgKHN0ZF9naW1wbGlmeV92YV9hcmdfZXhwcik6IEFkanVzdCBhbGlnbm1lbnQgb2YgKmFwLgoJKiBleHByLmggKHN0cnVjdCBsb2NhdGVfYW5kX3BhZF9hcmdfZGF0YSk6IEFkZCAiYm91bmRhcnkiLgoJKiBmdW5jdGlvbi5jIChsb2NhdGVfYW5kX3BhZF9wYXJtKTogU2V0IG5ldyBmaWVsZC4KCShhc3NpZ25fcGFybV9maW5kX3N0YWNrX3J0bCk6IFVzZSBpdCBpbnN0ZWFkIG9mIEZVTkNUSU9OX0FSR19CT1VOREFSWS4KCVR3ZWFrIHdoZXJlX3BhZCB0ZXN0IHRvIGluY2x1ZGUgIm5vbmUiLiAgQWx3YXlzIHNldCBtZW0gYWxpZ24gZm9yCglzdGFja19wYXJtLgoJKGFzc2lnbl9wYXJtX2FkanVzdF9zdGFja19ydGwpOiBEaXNjYXJkIHN0YWNrX3Bhcm0gaWYgYWxpZ25tZW50Cglub3Qgc3VmZmljaWVudCBmb3IgdHlwZS4KCShhc3NpZ25fcGFybV9zZXR1cF9ibG9jayk6IElmIHN0YWNrX3Bhcm0gaXMgemVybyBvbiBlbnRyeSwgYWx3YXlzCgltYWtlIGEgbmV3IHN0YWNrIGxvY2FsLiAgQmxvY2sgbW92ZSBvbGQgc3RhY2sgcGFybSBpZiBuZWNlc3NhcnkKCXRvIG5ldyBhbGlnbmVkIHN0YWNrIGxvY2FsLgoJKGFzc2lnbl9wYXJtX3NldHVwX3N0YWNrKTogVXNlIGEgYmxvY2sgbW92ZSB0byBoYW5kbGUKCXBvdGVudGlhbGx5IG1pc2FsaWduZWQgZW50cnlfcGFybS4KCShhc3NpZ25fcGFybXNfdW5zcGxpdF9jb21wbGV4KTogU3BlY2lmeSByZXF1aXJlZCBhbGlnbm1lbnQgd2hlbgoJY3JlYXRpbmcgc3RhY2sgbG9jYWwuCgkqIGNhbGxzLmMgKGNvbXB1dGVfYXJndW1lbnRfYWRkcmVzc2VzKTogT3ZlcnJpZGUgYWxpZ25tZW50IG9mIHN0YWNrCglhcmcgY2FsY3VsYXRlZCBmcm9tIGl0cyB0eXBlIHdpdGggdGhlIGFsaWdubWVudCBnaXZlbiBieQoJRlVOQ1RJT05fQVJHX0JPVU5EQVJZLgoJKHN0b3JlX29uZV9hcmcpOiBMaWtld2lzZS4KCjIwMDUtMDEtMTEgIEphbiBCZXVsaWNoICA8amJldWxpY2hAbm92ZWxsLmNvbT4KCgkqIGNvbmZpZy9pYTY0L2lhNjQubWQgKHplcm9fZXh0ZW5kc2lkaTIpOiBSZXBsYWNlIHp4dDQgYnkgYWRkcDQuCglDaGFuZ2UgcmVzcGVjdGl2ZSBpdGFuaXVtX2NsYXNzIGF0dHJpYnV0ZSB0byBpYWx1LgoJKHNobGFkZHA0X2ludGVybmFsKTogTmV3LgoJKiBjb25maWcvaWE2NC9wcmVkaWNhdGVzLm1kIChzaGxhZGRfbG9nMl9vcGVyYW5kKTogTmV3LgoKMjAwNS0wMS0xMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAoc3RvcmVfY29uc3RydWN0b3IpOiBVc2UgcnR2ZWNfYWxsb2MgaW5zdGVhZCBvZgoJYWxsb2NhK2dlbl9ydHZlY192LCBhbmQgYW4gaW5jb3JyZWN0IG51bWJlciBwYXNzZWQgdG8gYWxsb2NhLgoKMjAwNS0wMS0xMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jLCBjb25maWcvaTM4Ni9tbXgubWQ6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNS0wMS0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHZhcmFzbS5jIChkZWZhdWx0X3NlY3Rpb25fdHlwZV9mbGFnc18xKTogRG9uJ3Qgc2V0IFNFQ1RJT05fU01BTEwuCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoVEFSR0VUX1NFQ1RJT05fVFlQRV9GTEFHUyk6IERlZmluZS4KCShUQVJHRVRfUldSRUxPQyk6IERlZmluZS4KCShpYTY0X3J3cmVsb2Nfc2VjdGlvbl90eXBlX2ZsYWdzKTogRGVsZXRlLgoJKGlhNjRfc2VjdGlvbl90eXBlX2ZsYWdzKTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvaWE2NC9ocHV4LmggKFRBUkdFVF9TRUNUSU9OX1RZUEVfRkxBR1MpOiBEb24ndCBkZWZpbmUuCgkoVEFSR0VUX1JXUkVMT0MpOiBEZWZpbmUuCgoyMDA1LTAxLTEwICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCglQUiB0YXJnZXQvMTg5ODcKCSogY29uZmlnL2lhNjQvaWE2NC5jIChwcm9jZXNzX3NldCk6IEZvciBhbGxvYyBpbnNuLCBvbmx5IGNhbGwKCXByb2Nlc3NfZXBpbG9ndWUgaXMgIWZyYW1lX3BvaW50ZXJfbmVlZGVkLgoKMjAwNS0wMS0xMCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgYysrLzE5MzU1CgkqIGMtY29tbW9uLmMgKGNfY29tbW9uX3RydXRodmFsdWVfY29udmVyc2lvbik6IFRSVVRIX05PVF9FWFBSIGlzIGEKCXVuYXJ5IG9wZXJhdG9yIGFuZCBjYW4ndCBiZSB0cmVhdGVkIGFzIGEgYmluYXJ5L2NvbXBhcmlzb24gb3BlcmF0b3IuCgoyMDA1LTAxLTEwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2Z1bmN0aW9uX3ZhbHVlKTogVXNlIHR5cGVfbmF0dXJhbF9tb2RlLgoJKGl4ODZfcmV0dXJuX2luX21lbW9yeSk6IExpa2V3aXNlLgoJKGZ1bmN0aW9uX2FyZ19hZHZhbmNlKTogIExpa2V3aXNlLiAgTWlycm9yIHN0cnVjdHVyZSBpbiBmdW5jdGlvbl9hcmcKCWZvciBjaG9vc2luZyByZWdpc3RlciB0byBhZHZhbmNlLgoKMjAwNS0wMS0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtdmVjdG9yaXplci5jLCB0cmVlLmRlZjogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA1LTAxLTEwICBNYXJrIERldHRpbmdlciAgPGRldHRpbmdlQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHN0cnVjdCBwcm9jZXNzb3JfY29zdHMpOiA0IG5ldyBmaWVsZHM6CglkZGJyLCBkZHIsIGRlYnIsIGRlci4KCShzMzkwX3J0eF9jb3N0cyk6IE1vcmUgcHJlY2lzZSBoYW5kbGluZyBvZiBkaXZpZGUgaW5zdHJ1Y3Rpb25zLgoKMjAwNS0wMS0xMCAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlnL3JzNjAwMC90LWFpeDQzIChCT09UX0xERkxBR1MpOiBEZWZpbmUuCgoyMDA1LTAxLTEwICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfaW5fc21hbGxfZGF0YV9wKTogQWxzbyBoYW5kbGUgdGhlIHNlY3Rpb24KCW5hbWVzIHJlc3VsdGluZyBmcm9tIC1mZnVuY3Rpb24tc2VjdGlvbnMvLWZkYXRhLXNlY3Rpb25zIGFuZCBsaW5rb25jZQoJb25lcy4KCSogdmFyYXNtLmMgKGRlZmF1bHRfc2VjdGlvbl90eXBlX2ZsYWdzXzEpOiBBbHNvIHNldCBTRUNUSU9OX1NNQUxMCgliYXNlZCBvbiB0aGUgc2VjdGlvbiBuYW1lLiBSZWFycmFuZ2UgdGhlIHNlY3Rpb24gbmFtZSBjb21wYXJpc29uIGxvZ2ljCglzbGlnaHRseSBzbyB0aGF0IGVhY2ggc2VjdGlvbiBuYW1lIGlzIGNvbXBhcmVkIGFnYWluc3QgYXQgbW9zdCBvbmNlLgoKMjAwNS0wMS0xMCAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBkb2MvaW52b2tlLnRleGkgKENvZGUgR2VuIE9wdGlvbnMpOiBBZGQgUG93ZXJQQyB0byB0aGUgbGlzdCBvZgoJdGFyZ2V0cyBmb3Igd2hpY2ggLWZQSUMgcmVkdWNlcyBsaW1pdGF0aW9ucyBvbiB0aGUgR09UIHNpemUuCgoyMDA1LTAxLTA5ICBGYWxrIEh1ZWZmbmVyICA8ZmFsa0BkZWJpYW4ub3JnPgoKCSogZm9sZC1jb25zdC5jIChmb2xkKTogQWxzbyBoYW5kbGUgRVhBQ1RfRElWX0VYUFIgd2hlbiBmb2xkaW5nCglYL0MxIGNtcG9wIEMyLgoKMjAwNS0wMS0wOSAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCVBSIHRhcmdldC8xODcyMAoJKiBjb2xsZWN0Mi5jIChtYWluKTogU2V0IGFpeHJ0bF9mbGFnIGZvciAtYnJ0bCBvcHRpb24uCgkocmVzb2x2ZV9saWJfbmFtZSk6IFNlYXJjaCBmb3IgLnNvIGZpbGUgZXh0ZW5zaW9uIGJlZm9yZSAuYQoJaWYgYWl4cnRsX2ZsYWcgc2V0LgoKMjAwNS0wMS0wOSAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfZW5oYW5jZV9kYXRhX3JlZnNfYWxpZ25tZW50KTogQWRkIGR1bXAgcHJpbnRzLgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZnNfYWxpZ25tZW50KTogQWRkIGR1bXAgcHJpbnRzLgoKMjAwNS0wMS0wOSAgSXJhIFJvc2VuICA8aXJhckBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfYW5hbHl6ZV9vZmZzZXRfZXhwcik6IFVzZQoJZXhwcl9pbnZhcmlhbnRfaW5fbG9vcF9wLgoJSW5pdGlhbGl6ZSBvdXRwdXRzIGZpcnN0IHRoaW5nIGluIHRoZSBmdW5jdGlvbi4KCSh2ZWN0X3VwZGF0ZV9pdnNfYWZ0ZXJfdmVjdG9yaXplcik6IENhbGwgaW5pdGlhbF9jb25kaXRpb25faW5fbG9vcF9udW0uCgkodmVjdF9pc19zaW1wbGVfaXZfZXZvbHV0aW9uKTogQ2FsbCBpbml0aWFsX2NvbmRpdGlvbl9pbl9sb29wX251bS4KCSh2ZWN0X2FuYWx5emVfcG9pbnRlcl9yZWZfYWNjZXNzKTogQ2hlY2sgdGhhdCB0aGUgaW5pdGlhbCBjb25kaXRpb24gb2YKCXRoZSBhY2Nlc3MgZnVuY3Rpb24gaXMgbG9vcCBpbnZhcmlhbnQuCgoyMDA1LTAxLTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChiZGVzY18yYXJnKTogVXBkYXRlIG5hbWVzIGZvciBtbXhfIHByZWZpeGVzLgoJKGl4ODZfZXhwYW5kX2J1aWx0aW4pOiBMaWtld2lzZS4gIEZyb2IgTUFTS01PVlEgd3J0IHRoZSBpbnB1dCBtZW0KCWp1c3QgbGlrZSBNQVNLTU9WRFFVLiAgUmV0dXJuIHBsYWluIHplcm8gZm9yIE1NWF9aRVJPLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChNTVhNT0RFSSwgbW92PE1NWE1PREVJPiwKCW1vdjxNTVhNT0RFST5faW50ZXJuYWxfcmV4NjQsIG1vdjxNTVhNT0RFST5faW50ZXJuYWwsIG1vdnYyc2YsCgltb3Z2MnNmX2ludGVybmFsX3JleDY0LCBtb3Z2MnNmX2ludGVybmFsLCBNTVhNT0RFLAoJbW92bWlzYWxpZ248TU1YTU9ERT4sIG1teF9wbW92bXNrYiwgbW14X21hc2ttb3ZxLCBtbXhfbWFza21vdnFfcmV4LAoJc3NlX21vdm50ZGksIGFkZHY4cWkzLCBhZGR2NGhpMywgYWRkdjJzaTMsIG1teF9hZGRkaTMsIHNzYWRkdjhxaTMsCglzc2FkZHY0aGkzLCB1c2FkZHY4cWkzLCB1c2FkZHY0aGkzLCBzdWJ2OHFpMywgc3VidjRoaTMsIHN1YnYyc2kzLAoJbW14X3N1YmRpMywgc3NzdWJ2OHFpMywgc3NzdWJ2NGhpMywgdXNzdWJ2OHFpMywgdXNzdWJ2NGhpMywKCW11bHY0aGkzLCBzbXVsdjRoaTNfaGlnaHBhcnQsIHVtdWx2NGhpM19oaWdocGFydCwgbW14X3BtYWRkd2QsCglzc2UyX3VtdWxzaWRpMywgbW14X2lvcmRpMywgbW14X3hvcmRpMywgbW14X2FuZGRpMywgbW14X25hbmRkaTMsCgltbXhfdWF2Z3Y4cWkzLCBtbXhfdWF2Z3Y0aGkzLCBtbXhfcHNhZGJ3LCBtbXhfcGluc3J3LCBtbXhfcGluc3J3LAoJbW14X3BleHRydywgbW14X3BzaHVmdywgZXF2OHFpMywgZXF2NGhpMywgZXF2MnNpMywgZ3R2OHFpMywgZ3R2NGhpMywKCWd0djJzaTMsIHVtYXh2OHFpMywgc21heHY0aGkzLCB1bWludjhxaTMsIHNtaW52NGhpMywgYXNocnY0aGkzLAoJYXNocnYyc2kzLCBsc2hydjRoaTMsIGxzaHJ2MnNpMywgbW14X2xzaHJkaTMsIGFzaGx2NGhpMywgYXNobHYyc2kzLAoJbW14X2FzaGxkaTMsIG1teF9wYWNrc3N3YiwgbW14X3BhY2tzc2R3LCBtbXhfcGFja3Vzd2IsIG1teF9wdW5wY2toYncsCgltbXhfcHVucGNraHdkLCBtbXhfcHVucGNraGRxLCBtbXhfcHVucGNrbGJ3LCBtbXhfcHVucGNrbHdkLAoJbW14X3B1bnBja2xkcSwgZW1tcywgYWRkdjJzZjMsIHN1YnYyc2YzLCBzdWJydjJzZjMsIGd0djJzZjMsIGdldjJzZjMsCgllcXYyc2YzLCBwZm1heHYyc2YzLCBwZm1pbnYyc2YzLCBtdWx2MnNmMywgZmVtbXMsIHBmMmlkLCBwZjJpdywKCXBmYWNjLCBwZm5hY2MsIHBmcG5hY2MsIHBpMmZ3LCBmbG9hdHYyc2kyLCBwZnJjcHYyc2YyLCBwZnJjcGl0MXYyc2YzLAoJcGZyY3BpdDJ2MnNmMywgcGZyc3FydHYyc2YyLCBwZnJzcWl0MXYyc2YzLCBwbXVsaHJ3djRoaTMsIHBzd2FwZHYyc2kyLAoJcHN3YXBkdjJzZjIpOiBNb3ZlIHRvIG1teC5tZDsgcmVuYW1lIGFzIG5lY2Vzc2FyeSB3aXRoIGxlYWRpbmcKCW1teF8gcHJlZml4LgoJKG1teF9jbHJkaSwgcGF2Z3VzYik6IFJlbW92ZS4KCShsZG14Y3NyLCBzdG14Y3NyLCBzZmVuY2UsIHNmZW5jZV9pbnNuKTogTW92ZSB0byBzc2UubWQ7IHJlbmFtZQoJd2l0aCBsZWFkaW5nIHNzZV8gcHJlZml4LgoJKiBjb25maWcvaTM4Ni9zc2UubWQ6IFJlY2VpdmUgdGhlbS4KCSogY29uZmlnL2kzODYvbW14Lm1kOiBOZXcgZmlsZS4KCShNTVhNT0RFMTIsIE1NWE1PREUyNCwgbW14dmVjc2l6ZSk6IE5ldy4KCShzdWJydjJzZjMpOiBUdXJuIGludG8gZXhwYW5kZXIgZm9yIG5vcm1hbCBzdWJ0cmFjdGlvbi4KCShtbXhfYWRkdjJzZjMsIG1teF9tdWx2MnNmMywgbW14X3NtYXh2MnNmMywgbW14X3NtaW52MnNmMywKCW1teF9lcXYyc2YzLCBtbXhfbXVsdjRoaTMsIG1teF9zbXVsdjRoaTNfaGlnaHBhcnQsCgltbXhfdW11bHY0aGkzX2hpZ2hwYXJ0LCBtbXhfcG1hZGR3ZCwgbW14X3BtdWxocnd2NGhpMywgc3NlMl91bXVsc2lkaTMsCgltbXhfdW1heHY4cWkzLCBtbXhfc21heHY0aGkzLCBtbXhfdW1pbnY4cWkzLCBtbXhfc21pbnY0aGkzKTogTWFyawoJY29tbXV0YXRpdmU7IHVzZSBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vay4KCShtbXhfYWRkPE1NWE1PREVJPjMsIG1teF9zc2FkZDxNTVhNT0RFMTI+MywgbW14X3VzYWRkPE1NWE1PREUxMj4zLAoJbW14X3N1YjxNTVhNT0RFST4zLCBtbXhfc3NzdWI8TU1YTU9ERTEyPjMsIG1teF91c3N1YjxNTVhNT0RFMTI+MwoJbW14X2FzaHI8TU1YTU9ERTI0PjMsIG1teF9sc2hyPE1NWE1PREUyMz4zLCBtbXhfYXNobDxNTVhNT0RFMjQ+MwoJbW14X2VxPE1NWE1PREVJPjMsIG1teF9ndDxNTVhNT0RFST4zLCBtbXhfYW5kPE1NWE1PREVJPjMsCgltbXhfbmFuZDxNTVhNT0RFST4zLCBtbXhfaW9yPE1NWE1PREVJPjMsIG1teF94b3I8TU1YTU9ERUk+Myk6CglNYWNyb2l6ZSBmcm9tIGV4aXN0aW5nIHBhdHRlcm5zOyB1c2UgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2suCgkobW14X3BhY2tzc3diLCBtbXhfcGFja3NzZHcsIG1teF9wYWNrdXN3Yik6IEFkZCBtZW1vcnkgYWx0ZXJuYXRpdmUuCgkobW14X3B1bnBja2hidywgbW14X3B1bnBja2xidywgbW14X3B1bnBja2h3ZCwgbW14X3B1bnBja2x3ZCwKCW1teF9wdW5wY2toZHEsIG1teF9wdW5wY2toZHEsIG1teF9wdW5wY2tsZHEpOiBMaWtld2lzZS4gIE1vZGVsCgl3aXRoIHZlY19zZWxlY3QrdmVjX2NvbmNhdC4KCShtbXhfcHNodWZ3LCBtbXhfcHNodWZ3XzEpOiBMaWtld2lzZS4KCShtbXhfdWF2Z3Y4cWkzKTogTWVyZ2UgcGF2Z3VzYi4gIE1vZGVsIGNvcnJlY3R5LgoJKG1teF91YXZndjRoaTMpOiBNb2RlbCBjb3JyZWN0bHkuCgkqIGNvbmZpZy9pMzg2L21taW50cmluLmggKF9tbV9hbmRfc2k2NCwgX21tX2FuZG5vdF9zaTY0LCBfbW1fb3Jfc2k2NCwKCV9tbV94b3Jfc2k2NCk6IFJlbW92ZSBjYXN0cy4KCjIwMDUtMDEtMDkgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTkyMjQKCSogdHJlZS1zY2FsYXItZXZvbHV0aW9uLmMgKGdldF9pbnN0YW50aWF0ZWRfdmFsdWUsCglzZXRfaW5zdGFudGlhdGVkX3ZhbHVlKTogTmV3IGZ1bmN0aW9ucy4KCShpbnN0YW50aWF0ZV9wYXJhbWV0ZXJzXzEpOiBDYWNoZSB0aGUgcmVzdWx0cy4KCShpbnN0YW50aWF0ZV9wYXJhbWV0ZXJzLCByZXNvbHZlX21peGVycyk6IEluaXRpYWxpemUgYW5kIGZyZWUKCXRoZSBjYWNoZS4KCjIwMDUtMDEtMDggIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKGFkZGhpXzQpOiBDb3JyZWN0IHJlZmVyZW5jZSBpbiBjb21tZW50LgoJKGFkZHFpXzQpOiBTYW1lLgoKMjAwNS0wMS0wOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2VtbWludHJpbi5oIChfbW1fY3Z0c2kxMjhfc2kzMik6IE1vdmUgZWFybGllci4KCShfbW1fY3Z0c2kxMjhfc2k2NHgpOiBMaWtld2lzZS4KCShfbW1fc3JsX2VwaTY0LCBfbW1fc3JsX2VwaTMyLCBfbW1fc3JsX2VwaTE2LCBfbW1fc3JhX2VwaTMyLAoJX21tX3NyYV9lcGkxNiwgX21tX3NsbF9lcGk2NCwgX21tX3NsbF9lcGkzMiwgX21tX3NsbF9lcGkxNik6IFVzZQoJdGhlIF9tbV97c3JsLHNsbH1pX2ZvbyBjb3VudGVycGFydCwgYW5kIF9tbV9jdnRzaTEyOF9zaTMyLgoJKiBjb25maWcvaTM4Ni9pMzg2LW1vZGVzLmRlZjogQWRkIFYxNkhJLCBWMzJRSSwgVjRERiwgVjhTRi4KCSogY29uZmlnL2kzODYvaTM4Ni1wcm90b3MuaDogVXBkYXRlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKHByaW50X29wZXJhbmQpOiBBZGQgJ0gnLgoJKGl4ODZfZml4dXBfYmluYXJ5X29wZXJhbmRzKTogU3BsaXQgb3V0IGZyb20gLi4uCgkoaXg4Nl9leHBhbmRfYmluYXJ5X29wZXJhdG9yKTogLi4uIGhlcmUuCgkoaXg4Nl9maXh1cF9iaW5hcnlfb3BlcmFuZHNfbm9fY29weSk6IE5ldy4KCShpeDg2X2V4cGFuZF9mcF9hYnNuZWdfb3BlcmF0b3IpOiBIYW5kbGUgdmVjdG9yIG1vZGUgcmVzdWx0cy4KCShiZGVzY18yYXJnKTogVXBkYXRlIG5hbWVzIGZvciBzc2V7LDIsM31fIHByZWZpeGVzLgoJKGl4ODZfaW5pdF9tbXhfc3NlX2J1aWx0aW5zKTogUmVtb3ZlICptYXNrbmNtcCogc3BlY2lhbCBjYXNlcy4KCShzYWZlX3ZlY3Rvcl9vcGVyYW5kKTogVXNlIENPTlNUMF9SVFguCgkoaXg4Nl9leHBhbmRfYmlub3BfYnVpbHRpbik6IFVzZSBpeDg2X2ZpeHVwX2JpbmFyeV9vcGVyYW5kcy4KCShpeDg2X2V4cGFuZF9idWlsdGluKTogTWVyZ2UgQ09ERV9GT1Jfc3NlMl9tYXNrbW92ZHF1X3JleDY0IGFuZAoJQ09ERV9GT1Jfc3NlMl9tYXNrbW92ZHF1LiAgU3BlY2lhbCBjYXNlIFNTRSB2ZXJzaW9uIG9mIE1BU0tNT1ZEUVUKCWV4cGFuc2lvbi4gIFVwZGF0ZSBuYW1lcyBmb3Igc3NleywyLDN9XyBwcmVmaXhlcy4gIFJlbW92ZSAqbWFza25jbXAqCglzcGVjaWFsIGNhc2VzLgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKElYODZfQlVJTFRJTl9DTVBOR1RTUyk6IE5ldy4KCShJWDg2X0JVSUxUSU5fQ01QTkdFU1MpOiBOZXcuCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKFVOU1BFQ19GSVhfTk9UUlVOQyk6IE5ldy4KCShhdHRyIHR5cGUpOiBBZGQgc3NlbG9nMS4KCShhdHRyIHVuaXQsIGF0dHIgbWVtb3J5KTogSGFuZGxlIGl0LgoJKG1vdnRpLCBtb3Z0aV9pbnRlcm5hbCwgbW92dGlfcmV4NjQpOiBNb3ZlIG5lYXIgb3RoZXIgaW50ZWdlciBtb3Zlcy4KCShtb3Z0ZiwgbW92dGZfaW50ZXJuYWwpOiBNb3ZlIG5lYXIgb3RoZXIgZnAgbW92ZXMuCgkoU1NFTU9ERSwgU1NFTU9ERUksIHZlY19zZXR2MmRmLCB2ZWNfZXh0cmFjdHYyZGYsIHZlY19pbml0djJkZiwKCXZlY19zZXR2NHNmLCB2ZWNfZXh0cmFjdHY0c2YsIHZlY19pbml0djRzZiwgbW92djRzZiwgbW92djRzZl9pbnRlcm5hbCwKCW1vdnYyZGYsIG1vdnYyZGZfaW50ZXJuYWwsIG1vdjxTU0VNT0RFST4sIG1vdjxTU0VNT0RFST5faW50ZXJuYWwsCgltb3ZtaXNhbGlnbjxTU0VNT0RFPiwgc3NlX21vdnVwc18xLCBzc2VfbW92bXNrcHMsIHNzZV9tb3ZudHY0c2YsCglzc2VfbW92aGxwcywgc3NlX21vdmxocHMsIHNzZV9zdG9yZWhwcywgc3NlX2xvYWRocHMsIHNzZV9zdG9yZWxwcywKCXNzZV9sb2FkbHBzLCBzc2VfbG9hZHNzLCBzc2VfbG9hZHNzXzEsIHNzZV9tb3Zzcywgc3NlX3N0b3Jlc3MsCglzc2Vfc2h1ZnBzLCBhZGR2NHNmMywgdm1hZGR2NHNmMywgc3VidjRzZjMsIHZtc3VidjRzZjMsIG5lZ3Y0c2YyLAoJbXVsdjRzZjMsIHZtbXVsdjRzZjMsIGRpdnY0c2YzLCB2bWRpdnY0c2YzLCByY3B2NHNmMiwgdm1yY3B2NHNmMiwKCXJzcXJ0djRzZjIsIHZtcnNxcnR2NHNmMiwgc3FydHY0c2YyLCB2bXNxcnR2NHNmMiwgc3NlX2FuZHY0c2YzLAoJc3NlX25hbmR2NHNmMywgc3NlX2lvcnY0c2YzLCBzc2VfeG9ydjRzZjMsIHNzZTJfYW5kdjJkZjMsCglzc2UyX25hbmR2MmRmMywgc3NlMl9pb3J2MmRmMywgc3NlMl94b3J2MmRmMywgc3NlMl9hbmR2MmRpMywKCXNzZTJfbmFuZHYyZGkzLCBzc2UyX2lvcnYyZGkzLCBzc2UyX3hvcnYyZGkzLCBtYXNrY21wdjRzZjMsCgl2bW1hc2tjbXB2NHNmMywgc3NlX2NvbWksIHNzZV91Y29taSwgc3NlX3VucGNraHBzLCBzc2VfdW5wY2tscHMsCglzbWF4djRzZjMsIHZtc21heHY0c2YzLCBzbWludjRzZjMsIHZtc21pbnY0c2YzLCBjdnRwaTJwcywgY3Z0cHMycGksCgljdnR0cHMycGksIGN2dHNpMnNzLCBjdnRzaTJzc3EsIGN2dHNzMnNpLCBjdnRzczJzaXEsIGN2dHRzczJzaSwKCWN2dHRzczJzaXEsIGFkZHYyZGYzLCB2bWFkZHYyZGYzLCBzdWJ2MmRmMywgdm1zdWJ2MmRmMywgbXVsdjJkZjMsCgl2bW11bHYyZGYzLCBkaXZ2MmRmMywgdm1kaXZ2MmRmMywgc21heHYyZGYzLCB2bXNtYXh2MmRmMywgc21pbnYyZGYzLAoJdm1zbWludjJkZjMsIHNxcnR2MmRmMiwgdm1zcXJ0djJkZjIsIG1hc2tjbXB2MmRmMywgdm1tYXNrY21wdjJkZjMsCglzc2UyX2NvbWksIHNzZTJfdWNvbWksIHNzZTJfbW92bXNrcGQsIHNzZTJfcG1vdm1za2IsIHNzZTJfbWFza21vdmRxdSwKCXNzZTJfbWFza21vdmRxdV9yZXg2NCwgc3NlMl9tb3ZudHYyZGYsIHNzZTJfbW92bnR2MmRpLCBzc2UyX21vdm50c2ksCgljdnRkcTJwcywgY3Z0cHMyZHEsIGN2dHRwczJkcSwgY3Z0ZHEycGQsIGN2dHBkMmRxLCBjdnR0cGQyZHEsCgljdnRwZDJwaSwgY3Z0dHBkMnBpLCBjdnRwaTJwZCwgY3Z0c2Qyc2ksIGN2dHNkMnNpcSwgY3Z0dHNkMnNpLAoJY3Z0dHNkMnNpcSwgY3Z0c2kyc2QsIGN2dHNpMnNkcSwgY3Z0c2Qyc3MsIGN2dHNzMnNkLCBjdnRwZDJwcywKCWN2dHBzMnBkLCBhZGR2MTZxaTMsIGFkZHY4aGkzLCBhZGR2NHNpMywgYWRkdjJkaTMsIHNzYWRkdjE2cWkzLAoJc3NhZGR2OGhpMywgdXNhZGR2MTZxaTMsIHVzYWRkdjhoaTMsIHN1YnYxNnFpMywgc3VidjhoaTMsIHN1YnY0c2kzLAoJc3VidjJkaTMsIHNzc3VidjE2cWkzLCBzc3N1YnY4aGkzLCB1c3N1YnYxNnFpMywgdXNzdWJ2OGhpMywgbXVsdjhoaTMsCglzbXVsdjhoaTNfaGlnaHBhcnQsIHVtdWx2OGhpM19oaWdocGFydCwgc3NlMl91bXVsc2lkaTMsCglzc2UyX3VtdWx2MnNpdjJkaTMsIHNzZTJfcG1hZGR3ZCwgc3NlMl91YXZndjE2cWkzLCBzc2UyX3Vhdmd2OGhpMywKCXNzZTJfcHNhZGJ3LCBzc2UyX3BpbnNydywgc3NlMl9wZXh0cncsIHNzZTJfcHNodWZkLCBzc2UyX3BzaHVmbHcsCglzc2UyX3BzaHVmaHcsIGVxdjE2cWkzLCBlcXY4aGkzLCBlcXY0c2kzLCBndHYxNnFpMywgZ3R2OGhpMywKCWd0djRzaTMsIHVtYXh2MTZxaTMsIHNtYXh2OGhpMywgdW1pbnYxNnFpMywgc21pbnY4aGkzLCBhc2hydjhoaTMsCglhc2hydjRzaTMsIGxzaHJ2OGhpMywgbHNocnY0c2kzLCBsc2hydjJkaTMsIGFzaGx2OGhpMywgYXNobHY0c2kzLAoJYXNobHYyZGkzLCBzc2UyX2FzaGx0aTMsIHNzZTJfbHNocnRpMywgc3NlMl91bnBja2hwZCwgc3NlMl91bnBja2xwZCwKCXNzZTJfcGFja3Nzd2IsIHNzZTJfcGFja3NzZHcsIHNzZTJfcGFja3Vzd2IsIHNzZTJfcHVucGNraGJ3LAoJc3NlMl9wdW5wY2tod2QsIHNzZTJfcHVucGNraGRxLCBzc2UyX3B1bnBja2xidywgc3NlMl9wdW5wY2tsd2QsCglzc2UyX3B1bnBja2xkcSwgc3NlMl9wdW5wY2tscWRxLCBzc2UyX3B1bnBja2hxZHEsIHNzZTJfbW92dXBkLAoJc3NlMl9tb3ZkcXUsIHNzZTJfbW92ZHEycSwgc3NlMl9tb3ZkcTJxX3JleDY0LCBzc2UyX21vdnEyZHEsCglzc2UyX21vdnEyZHFfcmV4NjQsIHNzZTJfbG9hZGQsIHNzZTJfc3RvcmVkLCBzc2UyX3N0b3JlaHBkLAoJc3NlMl9sb2FkaHBkLCBzc2UyX3N0b3JlbHBkLCBzc2UyX2xvYWRscGQsIHNzZTJfbW92c2QsIHNzZTJfbG9hZHNkLAoJc3NlMl9sb2Fkc2RfMSwgc3NlMl9zdG9yZXNkLCBzc2UyX3NodWZwZCwgc3NlMl9jbGZsdXNoLCBzc2UyX21mZW5jZSwKCW1mZW5jZV9pbnNuLCBzc2UyX2xmZW5jZSwgbGZlbmNlX2luc24sIG13YWl0LCBtb25pdG9yLCBhZGRzdWJ2NHNmMywKCWFkZHN1YnYyZGYzLCBoYWRkdjRzZjMsIGhhZGR2MmRmMywgaHN1YnY0c2YzLCBoc3VidjJkZjMsIG1vdnNoZHVwLAoJbW92c2xkdXAsIGxkZHF1LCBsb2FkZGR1cCwgbW92ZGR1cCk6IE1vdmUgdG8gc3NlLm1kLiAgQW55IHdpdGgKCW5vbi1vcHRhYnMgbWVhbmluZ3MgcmVuYW1lZCB3aXRoIGFuICJzc2V7LDIsM31fIiBwcmVmaXggYXQgdGhlCglzYW1lIHRpbWUuCgkoU1NFUFVTSCwgcHVzaDxTU0VQVVNIPik6IFJlbW92ZS4KCShNTVhQVVNILCBwdXNoPE1NWFBVU0g+KTogUmVtb3ZlLgoJKHNzZV9tb3ZhcHMsIHNzZV9tb3ZhcHNfMSwgc3NlX21vdnVwcyk6IFJlbW92ZS4KCShzc2UyX21vdmFwZCwgc3NlMl9tb3ZkcWEsIHNzZTJfbW92cSk6IFJlbW92ZS4KCShzc2UyX2FuZHRpMywgc3NlMl9uYW5kdGkzLCBzc2UyX2lvcnRpMywgc3NlMl94b3J0aTMpOiBSZW1vdmUuCgkoc3NlX2NscnY0c2YsIHNzZV9jbHJ2MmRmLCBzc2UyX2NscnRpKTogUmVtb3ZlLgoJKG1hc2tuY21wdjRzZjMsIHZtbWFza25jbXB2NHNmMyk6IFJlbW92ZS4KCShtYXNrbmNtcHYyZGYzLCB2bW1hc2tuY21wdjJkZjMpOiBSZW1vdmUuCgkoYXNocnY4aGkzX3RpLCBhc2hydjRzaTNfdGksIGxzaHJ2OGhpM190aSwgbHNocnY0c2kzX3RpKTogUmVtb3ZlLgoJKGxzaHJ2MmRpM190aSwgYXNobHY4aGkzX3RpLCBhc2hsdjRzaTNfdGksIGFzaGx2MmRpM190aSk6IFJlbW92ZS4KCSogY29uZmlnL2kzODYvYXRobG9uLm1kIChhdGhsb25fc3NlbG9nX2xvYWQpOiBIYW5kbGUgc3NlbG9nMS4KCShhdGhsb25fc3NlbG9nX2xvYWRfazgsIGF0aGxvbl9zc2Vsb2csIGF0aGxvbl9zc2Vsb2dfazgpOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvcHByby5tZCAocHByb19zc2VfZGl2X1Y0U0ZfbG9hZCk6IEZpeCBtZW1vcnkgYXR0ci4KCShwcHJvX3NzZV9sb2dfVjRTRl9sb2FkKTogU2ltaWxhcmx5LiAgSGFuZGxlIHNzZWxvZzEuCgkocHByb19zc2VfbG9nX1Y0U0YpOiBIYW5kbGUgc3NlbG9nMS4KCSogY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZCAoY29uc3RfMF90b18xX29wZXJhbmQpOiBOZXcuCgkoY29uc3RfMF90b18yNTVfbXVsXzhfb3BlcmFuZCk6IE5ldy4KCShjb25zdF8xX3RvXzMxX29wZXJhbmQpOiBSZW5hbWUgZnJvbSBjb25zdF9pbnRfMV8zMV9vcGVyYW5kLgoJKGNvbnN0XzJfdG9fM19vcGVyYW5kLCBjb25zdF80X3RvXzdfb3BlcmFuZCk6IE5ldy4KCSogY29uZmlnL2kzODYvc3NlLm1kOiBOZXcgZmlsZS4KCShTU0VNT0RFMTIsIFNTRU1PREUyNCwgU1NFTU9ERTEyNCwgU1NFTU9ERTI0OCwgc3NldmVjc2l6ZSk6IE5ldy4KCShzc2VfbW92dXBzKTogUmVuYW1lIGZyb20gc3NlX21vdnVwc18xLgoJKHNzZV9sb2FkbHNzKTogUmVuYW1lIGZyb20gc3NlX2xvYWRzc18xLgoJKGFuZHY0c2YzLCBpb3J2NHNmMywgeG9ydjRzZjMsIGFuZHYyZGYzKTogUmVtb3ZlIHRoZSBzc2UgcHJlZml4Cglmcm9tIHRoZSBuYW1lLgoJKG5lZ3Y0c2YyKTogVXNlIGl4ODZfZXhwYW5kX2ZwX2Fic25lZ19vcGVyYXRvci4KCShhYnN2NHNmMiwgbmVndjJkZiwgYWJzdjJkZik6IE5ldy4KCShhZGR2NHNmMyk6IEFkZCBleHBhbmRlciB0byBjYWxsIGl4ODZfZml4dXBfYmluYXJ5X29wZXJhbmRzX25vX2NvcHkuCgkoc3VidjRzZjMsIG11bHY0c2YzLCBkaXZ2NHNmMywgc21heHY0c2YzLCBzbWludjRzZjMsIGFuZHY0c2YzLAoJaW9ydjRzZjMsIHhvcnY0c2YzLCBhZGR2MmRmMywgc3VidjJkZjMsIG11bHYyZGYzLCBkaXZ2MmRmMywKCXNtYXh2MmRmMywgc21pbnYyZGYzLCBhbmR2MmRmMywgaW9ydjJkZjMsIHhvcnYyZGYzLCBtdWx2OGhpMywKCXVtYXh2MTZxaTMsIHNtYXh2OGhpMywgdW1pbnYxNnFpMywgc21pbnY4aGkzKTogTGlrZXdpc2UuCgkoc3NlM19hZGRzdWJ2NHNmMyk6IE1vZGVsIGNvcnJlY3RseS4KCXNzZTNfaGFkZHY0c2YzLCBzc2UzX2hzdWJ2NHNmMywgc3NlM19hZGRzdWJ2MmRmMywgc3NlM19oYWRkdjJkZjMsCglzc2UzX2hzdWJ2MmRmMywgc3NlMl9hc2hsdGkzLCBzc2UyX2xzaHJ0aTMpOiBMaWtld2lzZS4KCShzc2VfbW92aGxwcyk6IE1vZGVsIHdpdGggdmVjX3NlbGVjdCt2ZWNfY29uY2F0LgoJKHNzZV9tb3ZsaHBzLCBzc2VfdW5wY2tocHMsIHNzZV91bnBja2xwcywgc3NlM19tb3ZzaGR1cCwKCXNzZTNfbW92c2xkdXAsIHNzZV9zaHVmcHMsIHNzZV9zaHVmcHNfMSwgc3NlMl91bnBja2hwZCwgc3NlM19tb3ZkZHVwLAoJc3NlMl91bnBja2xwZCwgc3NlMl9zaHVmcGQsIHNzZTJfc2h1ZnBkXzEsIHNzZTJfcHVucGNraGJ3LAoJc3NlMl9wdW5wY2tsYncsIHNzZTJfcHVucGNraHdkLCBzc2UyX3B1bnBja2x3ZCwgc3NlMl9wdW5wY2toZHEsCglzc2UyX3B1bnBja2xkcSwgc3NlMl9wdW5wY2tocWRxLCBzc2UyX3B1bnBja2xxZHEsIHNzZTJfcHNodWZkLAoJc3NlMl9wc2h1ZmRfMSwgc3NlMl9wc2h1Zmx3LCBzc2UyX3BzaHVmbHdfMSwgc3NlMl9wc2h1Zmh3LAoJc3NlMl9wc2h1Zmh3XzEpOiBMaWtld2lzZS4KCShuZWc8U1NFTU9ERUk+Miwgb25lX2NtcGw8U1NFTU9ERUk+Mik6IE5ldy4KCShhZGQ8U1NFTU9ERUk+Mywgc3NlMl9zc2FkZDxTU0VNT0RFMTI+Mywgc3NlMl91c2FkZDxTU0VNT0RFMTI+MywKCXN1YjxTU0VNT0RFST4zLCBzc2UyX3Nzc3ViPFNTRU1PREUxMj4zLCBzc2UyX3Vzc3ViPFNTRU1PREUxMj4zLAoJYXNocjxTU0VNT0RFMjQ+MywgbHNocjxTU0VNT0RFMjQ4PjMsIHNzZTJfZXE8U1NFTU9ERTEyND4zLAoJc3NlMl9ndDxTU0VNT0RERTEyND4zLCBhbmQ8U1NFTU9ERUk+Mywgc3NlX25hbmQ8U1NFTU9ERUk+MywKCWlvcjxTU0VNT0RFST4zLCB4b3I8U1NFTU9ERUk+Myk6IE1hY3JvaXplIGZyb20gZXhpc3RpbmcgcGF0dGVybnMuCgkoYWRkdjRzZjMsIHNzZV92bWFkZHY0c2YzLCBtdWx2NHNmMywgc3NlX3ZtbXVsdjRzZjMsIHNtYXh2NHNmMywKCXNzZV92bXNtYXh2NHNmMywgc21pbnY0c2YzLCBzc2Vfdm1zbWludjRzZjMsIGFkZHYyZGYzLCBzc2UyX3ZtYWRkdjJkZjMsCgltdWx2MmRmMywgc3NlMl92bW11bHYyZGYzLCBzbWF4djJkZjMsIHNzZTJfdm1zbWF4djJkZjMsIHNtaW52MmRmMywKCXNzZTJfdm1zbWludjJkZjMsIHVtYXh2MTZxaTMsIHNtYXh2OGhpMywgdW1pbnYxNnFpMwoJc21pbnY4aGkzKTogTWFyayBjb21tdXRhdGl2ZQoJb3BlcmFuZHMuICBVc2UgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2suCgkoc3NlX3VucGNraHBzLCBzc2VfdW5wY2tscHMsIHNzZTJfcGFja3Nzd2IsIHNzZTJfcGFja3NzZHcsCglzc2UyX3BhY2t1c3diLCBzc2UyX3B1bnBja2hidywgc3NlMl9wdW5wY2tsYncsIHNzZTJfcHVucGNraHdkLAoJc3NlMl9wdW5wY2tsd2QsIHNzZTJfcHVucGNraGRxLCBzc2UyX3B1bnBja2xkcSwgc3NlMl9wdW5wY2tocWRxLAoJc3NlMl9wdW5wY2tscWRxKTogQWxsb3cgb3BlcmFuZDIgaW4gbWVtb3J5LgoJKHNzZV9tb3ZobHBzLCBzc2VfbW92bGhwcywgc3NlMl91bnBja2hwZCwgc3NlMl91bnBja2xwZAoJc3NlMl9tb3ZzZCk6IEFkZCBtZW1vcnkgYWx0ZXJuYXRpdmVzLgoJKHNzZV9zdG9yZWxwcyk6IFR1cm4gZXhwYW5kZXIgaW50byBhbiBpbnNuOyBzcGxpdCBhZnRlciByZWxvYWQuCgkoc3NlX3N0b3Jlc3MsIHNzZTJfbG9hZGhwZCwgc3NlMl9sb2FkbHBkKTogQWRkIG5vbi14bW0gaW5wdXRzLgoJKHNzZTJfc3RvcmVocGQsIHNzZTJfc3RvcmVscGQpOiBBZGQgbm9uLXhtbSBvdXRwdXRzLgoKMjAwNS0wMS0wOCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZ3VyZS5hYyAoRFdBUkYtMiBkZWJ1Z19saW5lKTogVXNlIG9iamR1bXAuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDUtMDEtMDggIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgkgICAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTgyNDEKCSogdHJlZS1ucnYuYyAodHJlZV9ucnYpOiBJZ25vcmUgdm9sYXRpbGUgcmV0dXJuIHZhbHVlcy4KCSogdHJlZS1zc2EtZHNlLmMgKGRzZV9vcHRpbWl6ZV9zdG10KTogRG8gbm90IG9wdGltaXplCglzdGF0ZW1lbnRzIHdpdGggdm9sYXRpbGUgb3BlcmFuZHMuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGFkZF9zdG10X29wZXJhbmQpOiBEbyBhZGQgdm9sYXRpbGUKCW9wZXJhbmRzIGFmdGVyIG1hcmtpbmcgYSBzdGF0ZW1lbnQgd2l0aCBoYXNfdm9sYXRpbGVfb3BzLgoKMjAwNS0wMS0wOCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiB0cmVlLmMgKGludF9maXRzX3R5cGVfcCk6IEFsd2F5cyBob25vciBpbnRlZ2VyIGNvbnN0YW50CglUWVBFX01JTl9WQUxVRSBhbmQgVFlQRV9NQVhfVkFMVUUgaWYgdGhleSBleGlzdC4KCjIwMDUtMDEtMDggIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogaWZjdnQuYyAoZmluZF9pZl9jYXNlXzEpOiBSZWluc3RhdGUgMjAwNS0wMS0wNCBjaGFuZ2UsIG5vdyB0aGF0Cgl0aGUgbGF0ZW50IGJ1ZyBpbiBydGxfZGVsZXRlX2Jsb2NrIGhhcyBiZWVuIHJlc29sdmVkLgoKMjAwNS0wMS0wOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvdC1pcmlzNiAoTVVMVElMSUJfRElSTkFNRVMpOiBVc2UgLW1hYmkgYXJndW1lbnQgdmFsdWVzLgoJKE1VTFRJTElCX09TRElSTkFNRVMpOiBVc2UgdGhlIHN0YW5kYXJkIGxpYiwgbGliMzIgYW5kIGxpYjY0LgoKMjAwNS0wMS0wOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvdC1zbGliZ2NjLWlyaXggKFNITElCX0xJTkspOiBJbnN0YWxsIGEgY29weSBvZiB0aGUKCWxpYnJhcnkgYXMgQG11bHRpbGliX2RpckAvJChTSExJQl9TT05BTUUpLgoKMjAwNS0wMS0wNyAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZ3VyZS5hYyAoSEFWRV9BU19PRkZTRVRBQkxFX0xPMTApOiBGaXggdHlwby4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNS0wMS0wNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjLWNvbW1vbi5jIChoYW5kbGVfbW9kZV9hdHRyaWJ1dGUpOiBGb3IgRU5VTUVSQUxfVFlQRSwgYWxzbyBjb3B5CglUWVBFX01PREUuCgoyMDA1LTAxLTA3ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJUFIgdGFyZ2V0LzEzNjc0CgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9sZWdpdGltaXplX3JlbG9hZF9hZGRyZXNzKToKCUNvbnZlcnQgbm9uLXdvcmQgYWxpZ25lZCBvZmZzZXQgYWRkcmVzcyB1c2luZyBsZC9zdGQgaW50bwoJaW5kaXJlY3QgYWRkcmVzcy4KCjIwMDUtMDEtMDcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChzc2VfbG9hZGhwcyBzcGxpdHRlcik6IEZpeCBvcGVyYW5kIG51bWJlciB0eXBvLgoKMjAwNS0wMS0wNyAgUmljaGFyZCBTQW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogdHJlZS5oIChJU19FWFBSX0NPREVfQ0xBU1MpOiBVc2UgYSBzdHJhaWdodC1mb3J3YXJkIHJhbmdlIGNoZWNrLgoKMjAwNS0wMS0wNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTkyODMKCSogZm9sZC1jb25zdC5jIChmb2xkX3dpZGVuZWRfY29tcGFyaXNvbik6IFJldHVybiBOVUxMIGlmIHNob3J0ZXJfdHlwZQoJaXMgbm90IHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwgdHlwZS4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE5MDEyCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKGFkZHFpXzFfc2xwKTogU2V0IG1lbW9yeSBhdHRyaWJ1dGUuCgoJUFIgcnRsLW9wdGltaXphdGlvbi8xODg2MQoJKiBjZmdidWlsZC5jIChCTE9DS19VU0VEX0JZX1RBQkxFSlVNUCk6IERlZmluZS4KCShGVUxMX1NUQVRFKTogRGVmaW5lLgoJKG1hcmtfdGFibGVqdW1wX2VkZ2UpOiBOZXcgZnVuY3Rpb24uCgkocHVyZ2VfZGVhZF90YWJsZWp1bXBfZWRnZXMpOiBOZXcgZnVuY3Rpb24uCgkoZmluZF9iYl9ib3VuZGFyaWVzKTogVXNlIGl0LgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4ODI4CgkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluX25leHRfYXJnKTogUmVtb3ZlIGFyZ3VtZW50IGFuZCBhbGwKCXRoZSBhcmd1bWVudCBjaGVja2luZy4KCShleHBhbmRfYnVpbHRpbik6IEFkanVzdCBjYWxsZXIuCgkoZXhwYW5kX2J1aWx0aW5fdmFfc3RhcnQpOiBMaWtld2lzZS4gIFJlbW92ZSBlcnJvciBmb3IgdG9vIG1hbnkKCWFyZ3VtZW50cy4KCShmb2xkX2J1aWx0aW5fbmV4dF9hcmcpOiBJc3N1ZSBlcnJvciBmb3IgdG9vIG1hbnkgYXJndW1lbnRzLgoJQWZ0ZXIgY2hlY2tpbmcgYXJndW1lbnRzLCByZXBsYWNlIHRoZW0gd2l0aCBtYWdpYyBhcmd1bWVudHMgdGhhdAoJcHJldmVudCBmdXJ0aGVyIGNoZWNraW5nIG9mIHRoZSBhcmdzLgoKMjAwNS0wMS0wNiAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIHBhNjQtaHB1eC5oIChTVEFSVEZJTEVfU1BFQyk6IEZpeCB0eXBvIGluIHNwZWMuCgoyMDA1LTAxLTA2ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiB0YXJnZXQvNjA3NwoJKiBnY2MuYyAoaW5wdXRfc3VmZml4X21hdGNoZXMpOiBUd2VhayB0aGUgc2VtYW50aWNzIG9mICV7LnM6Li4ufQoJYW5kICV7LlM6Li4ufSAoYW5kIHRoZWlyIG5lZ2F0aXZlIHZhcmlhbnRzKSB0byB0ZXN0IHdoZXRoZXIgdGhlCglpbnB1dCBmaWxlIGlzIGFzc2VtYmxlciBvciBwcmUtcHJvY2Vzc2VkLWFzc2VtYmxlciBpbmRlcGVuZGVudCBvZgoJdGhlIGFjdHVhbCBmaWxlbmFtZSBleHRlbnNpb24uCgoyMDA1LTAxLTA2ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9zdWJyZWcpOiBTaW1wbGlmeSB0cnVuY2F0aW9ucyBvZiBzaGlmdHMKCW9mIHNpZ24gb3IgemVybyBleHRlbmRlZCB2YWx1ZXMuCgoyMDA1LTAxLTA2ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGMtY3BwYnVpbHRpbi5jIChidWlsdGluX2RlZmluZV9mbG9hdF9jb25zdGFudHMpOiBTZXQgX18qX0VQU0lMT05fXwoJZm9yIElCTSBsb25nIGRvdWJsZSBmb3JtYXQgY29ycmVjdGx5LgoKMjAwNS0wMS0wNiAgRGFuaWVsIEJlcmxpbiA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCglGaXggUFIgdHJlZS1vcHRpbWl6YXRpb24vMTg3OTIKCgkqIHRyZWUtZGF0YS1yZWYuYyAoYnVpbGRfY2xhc3NpY19kaXN0X3ZlY3Rvcik6IENoYW5nZSBmaXJzdF9sb29wCgl0byBmaXJzdF9sb29wX2RlcHRoLCBhbmQgdXNlIGxvb3AgZGVwdGggaW5zdGVhZCBvZiBsb29wIG51bWJlci4KCShidWlsZF9jbGFzc2ljX2Rpcl92ZWN0b3IpOiBEaXR0by4KCShjb21wdXRlX2RhdGFfZGVwZW5kZW5jZXNfZm9yX2xvb3ApOiBVc2UgZGVwdGgsIG5vdCBsb29wIG51bWJlci4KCSogdHJlZS1sb29wLWxpbmVhci5jICh0cnlfaW50ZXJjaGFuZ2VfbG9vcHMpOiBVc2UgbG9vcCBkZXB0aCwgbm90IGxvb3AKCW51bWJlci4gUGFzcyBpbiBsb29wcywgaW5zdGVhZCBvZiBsb29wIG51bWJlcnMuCgkoZ2F0aGVyX2ludGVyY2hhbmdlX3N0YXRzKTogRGl0dG8uCgkobGluZWFyX3RyYW5zZm9ybV9sb29wcyk6IERpdHRvLgoKMjAwNS0wMS0wNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCVBSIHJ0bC1vcHQvMTMyOTkKCSogbG9vcC5jIChnZXRfbW9ub3RvbmljX2luY3JlbWVudCwgYmlhc2VkX2Jpdl9maXRzX21vZGVfcCwKCWJpdl9maXRzX21vZGVfcCwgZXh0ZW5zaW9uX3dpdGhpbl9ib3VuZHNfcCk6IE5ldyBmdW5jdGlvbnMuCgkoY2hlY2tfZXh0X2RlcGVuZGVudF9naXZzKTogVXNlIHRoZW0uCgoyMDA1LTAxLTA2ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGNmZ3J0bC5jIChydGxfZGVsZXRlX2Jsb2NrKTogQSBiYXNpYyBibG9jayBtYXkgYmUgZm9sbG93ZWQgYnkKCW1vcmUgdGhhbiBvbmUgYmFycmllciwgaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGQgZGVsZXRlIHRoZW0gYWxsLgoKMjAwNS0wMS0wNiAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGdjYy5jIChwcm9jZXNzX2NvbW1hbmQpOiBDaGFuZ2UgeWVhciBpbiAnZ2NjIC0tdmVyc2lvbicgdG8gMjAwNS4KCjIwMDUtMDEtMDUgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCUZpeCBQUiBtaWRkbGUtZW5kLzE5Mjg2CglGaXggUFIgZGVidWcvMTkyNjcKCSogZHdhcmYyb3V0LmMgKGdlbl9zdWJwcm9ncmFtX2RpZSk6IElmIHdlJ3ZlIGFscmVhZHkgdHJpZWQgdG8KCW91dHB1dCB0aGlzIHN1YnByb2dyYW0sIHNpbXBseSBpZ25vcmUgdGhpcyBhdHRlbXB0IHRvIGRvIGl0IGFnYWluLgoJKGFkZF9hYnN0cmFjdF9vcmlnaW5fYXR0cmlidXRlKTogRG9uJ3QgYWJvcnQgdHJ5aW5nIHRvIGFkZCB0aGUgYWJzdHJhY3QKCW9yaWdpbiBhdHRyaWJ1dGUgaWYgaXQncyBub3QgcG9zc2libGUuCgkoZ2VuX2Jsb2NrX2RpZSk6IERvbid0IGlnbm9yZSBzdWJibG9ja3Mgb2YgInVudXNlZCIgYmxvY2tzLgoJKGRlY2xzX2Zvcl9zY29wZSk6IERpdHRvLgoJKiBnaW1wbGUtbG93LmMgKG1hcmtfYmxvY2tzX3dpdGhfdXNlZF9zdWJibG9ja3MpOiBSZW1vdmUuCgkobWFya191c2VkX2Jsb2Nrcyk6IERvbid0IGNhbGwgbWFya19ibG9ja3Nfd2l0aF91c2VkX3N1YmJsb2Nrcy4KCjIwMDUtMDEtMDUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzExMzI3CgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoQlVJTFRJTl9ERVNDX1NXQVBfT1BFUkFORFMpOiBOZXcuCgkoYmRlc2NfMmFyZyk6IFVzZSBpdC4KCShpeDg2X2V4cGFuZF9iaW5vcF9idWlsdGluKTogRm9yY2Ugb3BlcmFuZHMgaW50byByZWdpc3RlcnMKCXdoZW4gb3B0aW1pemluZy4KCShpeDg2X2V4cGFuZF91bm9wX2J1aWx0aW4sIGl4ODZfZXhwYW5kX3Vub3AxX2J1aWx0aW4sCglpeDg2X2V4cGFuZF9zc2VfY29tcGFyZSwgaXg4Nl9leHBhbmRfc3NlX2NvbWksCglpeDg2X2V4cGFuZF9idWlsdGluKTogTGlrZXdpc2UuCgoyMDA1LTAxLTA1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2lhNjQvaWE2NC5jIChydHhfbmVlZHNfYmFycmllcik6IEhhbmRsZSBDT05TVF9WRUNUT1IKCWFuZCBWRUNfU0VMRUNULgoJKiBjb25maWcvaWE2NC92ZWN0Lm1kIChtdWx2OHFpMyk6IFJlLWltcGxlbWVudCB3aXRoIG1peF9bcmxdLgoJKG11bHY0aGkzKTogU2V0IGl0YW5pdW1fY2xhc3MgbW1tdWwuCgkoZnBhY2tfc2Z4ZiwgZnBhY2tfeGZzZiwgZnBhY2tfeGZ4Zik6IFJlbW92ZS4KCShmcGFjayk6IFJlbmFtZSBmcm9tIGZwYWNrX3Nmc2YuCgoyMDA1LTAxLTA1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHJ0bC1vcHQvMTA2OTIKCSogcmVsb2FkMS5jIChkb19pbnB1dF9yZWxvYWQpOiBSZXN0cmljdCB0aGUgb3B0aW1pemF0aW9uIGRlbGV0ZWluZwoJYSBwcmV2aW91cyBvdXRwdXQgcmVsb2FkIHRvIFJFTE9BRF9GT1JfSU5QVVQuCgoyMDA1LTAxLTA1ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBjb21iaW5lLmMgKGV4cGFuZF9jb21wb3VuZF9vcGVyYXRpb24pICA8WkVST19FWFRSQUNUPjogQWRkCgljb21tZW50IHRoYXQgd2UgZmFsbCB0aHJvdWdoIGFmdGVyIGNhc2UuCgkobWFya191c2VkX3JlZ3NfY29tYmluZSk6IERvbid0IGV4cGVjdCBhIFNJR05fRVhUUkFDVCBpbiBhIFNFVF9ERVNULgoJKGRpc3RyaWJ1dGVfbGlua3MpOiBMaWtld2lzZS4KCSogY3NlLmMgKGNzZV9pbnNuKTogTGlrZXdpc2UuCgkqIGNzZWxpYi5jIChjc2VsaWJfaW52YWxpZGF0ZV9tZW0pOiBMaWtld2lzZS4KCSogZGYuYzogVXBkYXRlIGNvbW1lbnRzIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUuCgkocmVhZF9tb2RpZnlfc3VicmVnX3ApOiBVcGRhdGUgY29tbWVudHMgaGVyZSB0b28uCgkoZGZfZGVmX3JlY29yZF8xKTogRG9uJ3QgZXhwZWN0IGEgU0lHTl9FWFRSQUNUIGluIGEgU0VUX0RFU1QuCgkqIGZsb3cuYyAobWFya19zZXRfMSk6IExpa2V3aXNlLgoJKG1hcmtfdXNlZF9yZWdzKTogTGlrZXdpc2UuCgkqIGdjc2UuYyAobWVtc19jb25mbGljdF9mb3JfZ2NzZV9wKTogTGlrZXdpc2UuCgkoY2Fub25fbGlzdF9pbnNlcnQpOiBMaWtld2lzZS4KCShtYXJrX3NldCk6IExpa2V3aXNlLgoJKHRyeV9yZXBsYWNlX3JlZyk6IExpa2V3aXNlLgoJKHN0b3JlX2tpbGxlZF9pbl9pbnNuKTogTGlrZXdpc2UuCgkqIGxvb3AuYyAoY291bnRfb25lX3NldCk6IExpa2V3aXNlLgoJKGJhc2ljX2luZHVjdGlvbl92YXIpOiBMaWtld2lzZS4KCSogcG9zdHJlbG9hZC1nY3NlLmMgKGZpbmRfbWVtX2NvbmZsaWN0cyk6IExpa2V3aXNlLgoJKiBwb3N0cmVsb2FkLmMgKHJlbG9hZF9jb21iaW5lX25vdGVfc3RvcmUpOiBMaWtld2lzZS4KCShtb3ZlMmFkZF9ub3RlX3N0b3JlKTogTGlrZXdpc2UuCgkqIHJlbG9hZC5jIChmaW5kX2VxdWl2X3JlZyk6IExpa2V3aXNlLgoJKG1hcmtfcmVmZXJlbmNlZF9yZXNvdXJjZXMpOiBMaWtld2lzZS4KCSogcnRsYW5hbC5jIChzZXRfbm9vcF9wKTogTGlrZXdpc2UuCgkobm90ZV9zdG9yZXMpOiBMaWtld2lzZS4KCShub3RlX3VzZXMpOiBMaWtld2lzZS4KCSogc2NoZWQtZGVwcy5jIChzY2hlZF9hbmFseXplXzEpOiBMaWtld2lzZS4KCSogc2NoZWQtcmduLmMgKGNoZWNrX2xpdmVfMSk6IExpa2V3aXNlLgoJKHVwZGF0ZV9saXZlXzEpOiBMaWtld2lzZS4KCSogY29uZmlnL2k4NjAvaTg2MC5jOiBMaWtld2lzZS4KCgkqIHJ0bC5kZWMgKFNJR05fRVhUUkFDVCk6IERvY3VtZW50IHRoYXQgdGhpcyBjYW5ub3QgYXBwZWFyIGFzCglhbiBsdmFsdWUuCgkoWkVST19FWFRSQUNUKTogTWVudGlvbiB0aGF0IHRoaXMgb25lIGNhbiBiZSBhbiBsdmFsdWUuCgoJKiBkb2MvcnRsLnRleGk6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIGZvciBiaXQtZmllbGRzIGFuZCBTRVQuCgoyMDA1LTAxLTA1ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGlmY3Z0LmMgKGZpbmRfaWZfY2FzZV8xKTogUmV2ZXJ0IDIwMDUtMDEtMDQgY2hhbmdlLgoKMjAwNS0wMS0wNSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoJICAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE4OTEwCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9leHBhbmRfbW92ZSk6IEhhbmRsZSB0bHMgc3ltYm9scwoJd2l0aCBhbiBvZmZzZXQuCgoyMDA1LTAxLTA1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xMjkwMgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChzc2VfbW92aHBzLCBzc2VfbW92bHBzKTogUmVtb3ZlLgoJKHNzZV9zaHVmcHMpOiBDaGFuZ2Ugb3BlcmFuZCAzIHRvIGNvbnN0X2ludF9vcGVyYW5kLgoJKHNzZTJfc3RvcmVscHMpOiBGaXggdHlwbyBpbiB0ZW1wbGF0ZS4KCShzc2Vfc3RvcmVocHMsIHNzZV9sb2FkaHBzLCBzc2Vfc3RvcmVscHMsIHNzZV9sb2FkbHBzKTogTmV3LgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfZXhwYW5kX3ZlY3Rvcl9tb3ZlX21pc2FsaWduKTogVXNlIHRoZW0uCgkoaXg4Nl9leHBhbmRfYnVpbHRpbik6IExpa2V3aXNlLgoKMjAwNS0wMS0wNSAgSnVsaWFuIEJyb3duICA8anVsaWFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fcmV0dXJuX2luX21lbW9yeSk6IFRyZWF0IGNvbXBsZXggdHlwZXMKCWFzIGFnZ3JlZ2F0ZXMgZm9yIEFBUENTIEFCSXMuCgoyMDA1LTAxLTA1ICBTdGFuIFNoZWJzICA8c2hlYnNAYXBwbGUuY29tPgoKCSogdW53aW5kLWR3Mi1mZGUtZGFyd2luLmMgKGV4YW1pbmVfb2JqZWN0cyk6IFVzZSA2NC1iaXQKCU1hY2gtTyBnZXR0ZXJzIGlmIHBwYzY0LgoJKiBjb25maWcvZGFyd2luLmMgKGRhcndpbl9hc21fb3V0cHV0X2R3YXJmX2RlbHRhKTogT2JleQoJc2l6ZSBhcmd1bWVudC4KCSogY29uZmlnL2Rhcndpbi5oIChBU01fUFJFRkVSUkVEX0VIX0RBVEFfRk9STUFUKTogVXNlCglzaWduZWQgZm91ci1ieXRlIGZpZWxkIGZvciBnbG9iYWwgY29kZSBjYXNlLgoJKFNUQVJURklMRV9TUEVDKTogQXZvaWQgY3J0Mi5vIGZvciA2NC1iaXQgY29tcGlsYXRpb24uCgoyMDA1LTAxLTA1ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE5MTAwCgkqIGMtY29tbW9uLmM6IEluY2x1ZGUgcmVhbC5oLgoJKGNfY29tbW9uX3RydXRodmFsdWVfY29udmVyc2lvbik6IEF2b2lkIGRlc3RydWN0aXZlbHkgbW9kaWZ5aW5nIGV4cHIuCglDb3JyZWN0bHkgaGFuZGxlIFRSRUVfQ09OU1RBTlRfT1ZFUkZMT1cgZm9yIElOVEVHRVJfQ1NULgoJQ29ycmVjdGx5IGhhbmRsZSBUUkVFX0NPTlNUQU5UX09WRVJGTE9XIGFuZCBOYU5zIGZvciBSRUFMX0NTVC4KCSogTWFrZWZpbGUuaW4gKGMtY29tbW9uLm8pOiBVcGRhdGUgZGVwZW5kZW5jaWVzLgoKMjAwNS0wMS0wNSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLXBhcnNlLmluIChhc21fc3RyaW5nKTogQWRkIHRyYWlsaW5nIHNlbWljb2xvbi4KCjIwMDUtMDEtMDUgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogYy1wYXJzZS5pbiAoYXNtX3N0cmluZyk6IE5ldy4gIERvbid0IGFsbG93IHdpZGUgc3RyaW5ncyBpbgoJJ2FzbScuCgkoc2ltcGxlX2FzbV9leHByLCBhc21fYXJndW1lbnQsIGFzbV9vcGVyYW5kLCBhc21fY2xvYmJlcnMpOiBVc2UKCWFzbV9zdHJpbmcgaW5zdGVhZCBvZiBTVFJJTkcuCgoyMDA1LTAxLTA1ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGMtdHlwZWNrLmMgKGNvbnN0cnVjdG9yX25vX2ltcGxpY2l0KTogUmVtb3ZlLgoJKHNldF9kZXNpZ25hdG9yLCBwcm9jZXNzX2luaXRfZWxlbWVudCk6IERvbid0IGNoZWNrCgljb25zdHJ1Y3Rvcl9ub19pbXBsaWNpdC4KCjIwMDUtMDEtMDUgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdC5jb20+CgkgICAgS2F6IEtvamltYSAgPGtrb2ppbWFAZ2NjLmdudS5vcmc+CgoJUFIgdGFyZ2V0LzE2NDgyCgkqIGxjbS5jIChjcmVhdGVfcHJlX2V4aXQpOiBOZXcuCgkob3B0aW1pemVfbW9kZV9zd2l0Y2hpbmcpOiBJbiBNT0RFX0VOVFJZIC8gTU9ERV9FWElUIGNhc2UsIHNldAoJRU5UUllfRVhJVF9FWFRSQSB0byAzLiAgVXNlIGNyZWF0ZV9wcmVfZXhpdC4KCjIwMDQtMDEtMDUgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogYXJtLmggKFRBUkdFVF9PUFRJT05TKTogQ29ycmVjdGx5IHJlY29yZCAtbWhhcmQtZmxvYXQgYW5kCgktbXNvZnQtZmxvYXQgaW4gdGFyZ2V0X2Zsb2F0X3N3aXRjaC4KCSogYXJtLmMgKGFybV9vdmVycmlkZV9vcHRpb25zKTogRml4IHByb2Nlc3Npbmcgb2YgdGFyZ2V0X2Zsb2F0X3N3aXRjaC4KCjIwMDQtMDEtMDUgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogYXJtL3ZmcC5tZCAoYXJtX21vdnNpX3ZmcCk6IEhpZGUgVkZQIHJlZ2lzdGVyIGNsYXNzZXMgZnJvbSByZWdpc3RlcgoJcHJlZmVyZW5jaW5nLgoKMjAwNC0wMS0wNSAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCSogZG9jL2ludm9rZS50ZXhpIChJbnRlbCAzODYgYW5kIEFNRCB4ODYtNjQgT3B0aW9ucyk6CglSZXBsYWNlIGkzODcgd2l0aCAnaTM4NiBjb21waWxlcicgaW4gLW1mcG1hdGg9c3NlIG9wdGlvbi4KCjIwMDUtMDEtMDQgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogaWZjdnQuYyAoZmluZF9pZl9jYXNlXzEpOiBBdm9pZCBjcmVhdGluZyBhbiBlbXB0eSBmb3J3YXJkZXIgYmxvY2ssCglpZiBkZWxldGluZyB0aGUgdGhlbi1ibG9jayBhbGxvd3MgdGhlIHRlc3QtYmxvY2sgdG8gZmFsbHRocnUgdG8gdGhlCgllbHNlLWJsb2NrLgoKMjAwNS0wMS0wNCAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgYy8xOTE1MgoJKiBjLWRlY2wuYyAoZGlhZ25vc2VfbWlzbWF0Y2hlZF9kZWNscyk6IEFjY2VwdCAiZXh0ZXJuIGlubGluZSIgZGVjbGFyZWQKCWFmdGVyIHRoZSBmdWxsIGRlY2xhcmF0aW9uIGlmIHRoZSBhcmUgaW4gdHdvIGRpZmZlcmVudCBUVXMuCgoyMDA1LTAxLTA0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0LzE5MTU4CgkqIHRyZWUtc3JhLmMgKGdlbmVyYXRlX29uZV9lbGVtZW50X2luaXQpOiBKdXN0CgljYWxsIGdpbXBsaWZ5X2FuZF9hZGQuCgkoZ2VuZXJhdGVfZWxlbWVudF9pbml0KTogUmVjb3JkIHRoZQoJbmV3IHJlZmVyZW5jZWQgdmFyaWFibGVzIGFuZCBtYXJrIHRoZW0gZm9yIHJlbmFtaW5nCglhbmQgc3BsaXQgb3V0IHRvIC4uLgoJKGdlbmVyYXRlX2VsZW1lbnRfaW5pdF8xKTogVGhpcy4KCShzY2FsYXJpemVfaW5pdCk6IERvbid0IGNhbGwgcHVzaF9naW1wbGlmeV9jb250ZXh0LwoJcG9wX2dpbXBsaWZ5X2NvbnRleHQuCgoyMDA1LTAxLTA0ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIHRvcGxldi5jIChnZXRfc3JjX3B3ZCk6IEhhbmRsZSBmYWlsdXJlIG9mIGdldHB3ZCgpLgoKMjAwNS0wMS0wNCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfc2luZ2xlX2JpdF90ZXN0KTogRGVsZXRlIHVucmVhY2hhYmxlIGhhbmRsaW5nCglvZiBUUlVUSF9OT1RfRVhQUi4KCShmb2xkKTogRG9uJ3QgY2FsbCBmb2xkX3NpbmdsZV9iaXRfdGVzdCB3aXRoIGEgVFJVVEhfTk9UX0VYUFIsIGFzCglhbGwgdGhlIGNhc2VzIGhhbmRsZWQgYnkgaXQgYXJlIGludmVydGVkIGJ5IGludmVydF90cnV0aHZhbHVlLgoKMjAwNS0wMS0wNCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5tZCAoc2F2ZV9yZWdpc3Rlcl93aW5kb3dkaSk6IEFkZCBtaXNzaW5nIG1vZGUuCgkoc2F2ZV9yZWdpc3Rlcl93aW5kb3dzaSk6IExpa2V3aXNlLgoKMjAwNS0wMS0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyZWUtbXVkZmxhcC5jIChtZl92YXJuYW1lX3RyZWUpOiBGaXggdGhpbmtvIHNldHRpbmcgZGVjbG5hbWUuCgoyMDA1LTAxLTA0ICBVcm9zIEJpemphayAgPHVyb3NAa3NzLWxva2Euc2k+CgoJUFIgbWlkZGxlLWVuZC8xNzc2NwoJKiBjc2UuYyAoZm9sZF9ydHgpIFtSVFhfQ09NUEFSRSwgUlRYX0NPTU1fQ09NUEFSRV06IERvbid0IGF0dGVtcHQKCWFueSBzaW1wbGlmaWNhdGlvbnMgb2YgdmVjdG9yIG1vZGUgY29tcGFyaXNvbiBvcGVyYXRvcnMuCgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9yZWxhdGlvbmFsX29wZXJhdGlvbik6IEZpeCB2YXJpYWJsZSBuYW1lLgoKMjAwNS0wMS0wNCAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCSAgICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4MzA4CgkqIHRyZWUtaWYtY29udi5jIChhZGRfdG9fZHN0X3ByZWRpY2F0ZV9saXN0KTogR2ltcGxpZnkKCXRoZSBvcGVyYW5kcyBiZWZvcmUgY3JlYXRpbmcgYSBuZXcgZXhwcmVzc2lvbi4KCSogZG9qdW1wLmMgKGRvX2p1bXApOiBNYWtlIGRyb3BfdGhyb3VnaF9sYWJlbCBhdmFpbGFibGUKCWZvciBhbGwgY2FzZXMuICBBZGQgZXhwYW5zaW9uIG9mIENPTkRfRVhQUi4KCjIwMDUtMDEtMDQgIElyYSBSb3NlbiAgPGlyYXJAaWwuaWJtLmNvbT4KCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X2FuYWx5emVfb2Zmc2V0X2V4cHIpOiBUZXN0IGZvcgoJSU5URUdFUl9DU1QgaW5zdGVhZCBvZiBUUkVFX0NPTlNUQU5ULgoJKHZlY3RfZ2VuX25pdGVyc19mb3JfcHJvbG9nX2xvb3ApOiBUZXN0IGZvciBJTlRFR0VSX0NTVAoJaW5zdGVhZCBvZiBUUkVFX0NPTlNUQU5ULgoJKHZlY3RfYW5hbHl6ZV9wb2ludGVyX3JlZl9hY2Nlc3MpOiBUZXN0IGZvciBJTlRFR0VSX0NTVAoJaW5zdGVhZCBvZiBUUkVFX0NPTlNUQU5ULgoKMjAwNS0wMS0wNCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIHRyZWUtZWguYyAocmVwbGFjZV9nb3RvX3F1ZXVlKTogUmV0dXJuIGVhcmx5IGlmIHRoZSBxdWV1ZSBpcyBlbXB0eS4KCjIwMDUtMDEtMDQgIFVyb3MgQml6amFrICA8dXJvc0Brc3MtbG9rYS5zaT4KCglQUiB0YXJnZXQvMTkyNDAKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoKmZvcF9kZl8xX2kzODcpOiBEaXNhYmxlIGZvciBUQVJHRVRfU1NFX01BVEguCgkoKmZvcF9kZl8xX2kzODcpOiBEaXNhYmxlIGZvciAoVEFSR0VUX1NTRTIgJiYgVEFSR0VUX1NTRV9NQVRIKS4KCjIwMDUtMDEtMDMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBmb2xkLWNvbnN0LmMgKGZvcmNlX2ZpdF90eXBlKTogQ29wZSB3aXRoIHR5cGVzIGxhcmdlciB0aGFuIDIgSFdJLgoJKGZvbGRfY29udmVydF9jb25zdF9pbnRfZnJvbV9pbnQsIGZvbGRfY29udmVydF9jb25zdF9pbnRfZnJvbV9yZWFsLAoJZm9sZF9jb252ZXJ0X2NvbnN0X3JlYWxfZnJvbV9yZWFsKTogU3BsaXQgb3V0IGZyb20gLi4uCgkoZm9sZF9jb252ZXJ0X2NvbnN0KTogLi4uIGhlcmUuCgoyMDA1LTAxLTAzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xOTIzNQoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChtb3ZkaV8yKTogU2VwYXJhdGUgU1NFMSBhbmQgU1NFMiBhbHRlcm5hdGl2ZXMuCgkobW92PE1NWE1PREVJPl9pbnRlcm5hbCk6IExpa2V3aXNlLgoJKG1vdmRmX25vaW50ZWdlcik6IFByZWZlciBZIHdoaWxlIG5vdCBwcmVmZXJyaW5nLCBidXQgYWxsb3dpbmcsIHguCglBZGQgVjJTRiBjYXNlOyB1c2UgaXQgZm9yIFNTRTE7IGRvbid0IHVzZSBUSS4KCShtb3ZkZl9pbnRlZ2VyKTogTGlrZXdpc2UuCgkobW92PFNTRU1PREVJPl9pbnRlcm5hbCwgbW92dGlfaW50ZXJuYWwpOiBGb3JjZSBWNFNGIGZvciBTU0UxLgoKMjAwNS0wMS0wMyAgSXJhIFJvc2VuICA8aXJhckBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3Rfc3RyaXBfY29udmVyc2lvbnMpOiBOZXcgZnVuY3Rpb24uCgkodmVjdF9hbmFseXplX29mZnNldF9leHByKTogQ2FsbCB2ZWN0X3N0cmlwX2NvbnZlcnNpb25zLiBBZGQKCWNoZWNrIGZvciBiaW5hcnkgY2xhc3MuCgoyMDA1LTAxLTAzICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCglGaXggUFIgZGVidWcvMTc5MjQKCUZpeCBQUiBkZWJ1Zy8xOTE5MQoJKiBkd2FyZjJvdXQuYyAoYmxvY2tfdWx0aW1hdGVfb3JpZ2luKTogRm9sbG93IGRlY2wgb3JpZ2luIGlmIG9yaWdpbgoJaXMgYSBkZWNsLgoJKiBnaW1wbGUtbG93LmMgKG1hcmtfYmxvY2tzX3dpdGhfdXNlZF92YXJzKTogTmV3IGZ1bmN0aW9uLgoJKG1hcmtfYmxvY2tzX3dpdGhfdXNlZF9zdWJibG9ja3MpOiBEaXR0by4KCShtYXJrX3VzZWRfYmxvY2tzKTogRGl0dG8uCgkocGFzc19tYXJrX3VzZWRfYmxvY2tzKTogTmV3IHBhc3MuCgkqIHRyZWUtaW5saW5lLmM6IEluY2x1ZGUgZGVidWcuaC4KCShleHBhbmRfY2FsbF9pbmxpbmUpOiBDYWxsIG91dGxpbmluZ19pbmxpbmVfZnVuY3Rpb24gaGVyZS4KCSogdHJlZS1vcHRpbWl6ZS5jIChpbml0X3RyZWVfb3B0aW1pemF0aW9uX3Bhc3Nlcyk6IEFkZAoJcGFzc19tYXJrX3VzZWRfYmxvY2tzLgoJKiB0cmVlLXBhc3MuaCAocGFzc19tYXJrX3VzZWRfYmxvY2tzKTogTmV3LgoJKiBNYWtlZmlsZS5pbiAodHJlZS1pbmxpbmUubyk6IEFkZCBkZWJ1Zy5oIGRlcGVuZGVuY3kuCgoyMDA1LTAxLTAzICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uYyAoZGFyd2luX2hhbmRsZV93ZWFrX2ltcG9ydF9hdHRyaWJ1dGUpOiBQZXJtaXQKCVZBUl9ERUNMcyB0byBoYXZlIHdlYWtfaW1wb3J0IGF0dHJpYnV0ZS4KCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLWZhbGxiYWNrLmM6IFVzZSAndWNvbnRleHRfdCcgcmF0aGVyIHRoYW4KCSdzdHJ1Y3QgdWNvbnRleHQnLgoKMjAwNC0wMS0wMyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogcGFzc2VzLmMgKHJlc3Rfb2ZfY29tcGlsYXRpb24pOiBEb24ndCBydW4gcmVnbW92ZSBpZiBvbmx5CglmbGFnX2V4cGVuc2l2ZV9vcHRpbWl6YXRpb25zLCByZXF1aXJlIGZsYWdfcmVnbW92ZSBpbnN0ZWFkLgoKMjAwNS0wMS0wMyAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZy9zcGFyYy9saXRlY29mZi5oIChUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogRG8gbm90CglyZWdpc3RlciAic3BhcmMiLgoJKiBjb25maWcvc3BhcmMvc3lzdjQtb25seS5oIChUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zcGFyYy9ydGVtc2VsZi5oIChUQVJHRVRfU1VCX09TX0NQUF9CVUlMVElOUyk6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvc29sMi02NC5oIChUQVJHRVRfU1VCX09TX0NQUF9CVUlMVElOUyk6IERlbGV0ZS4KCSogY29uZmlnL3NwYXJjL3NwNjQtZWxmLmggKFRBUkdFVF9TVUJfT1NfQ1BQX0JVSUxUSU5TKTogTGlrZXdpc2UuCgoyMDA1LTAxLTAzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2lhNjQvaWE2NC5jIChUQVJHRVRfVkVDVE9SX01PREVfU1VQUE9SVEVEX1ApOiBOZXcuCgkoaWE2NF9jb25zdF9va19mb3JfbGV0dGVyX3ApOiBOZXcuCgkoaWE2NF9jb25zdF9kb3VibGVfb2tfZm9yX2xldHRlcl9wKTogTmV3LgoJKGlhNjRfZXh0cmFfY29uc3RyYWludCk6IE5ldy4KCShpYTY0X2V4cGFuZF92ZWNpbnRfY29tcGFyZSk6IE5ldy4KCShpYTY0X2V4cGFuZF92Y29uZHVfdjJzaSk6IE5ldy4KCShpYTY0X2V4cGFuZF92ZWNpbnRfY21vdik6IE5ldy4KCShpYTY0X2V4cGFuZF92ZWNpbnRfbWlubWF4KTogTmV3LgoJKGlhNjRfcHJpbnRfb3BlcmFuZCk6IEFkZCAndicuCgkoaWE2NF9wcmVmZXJyZWRfcmVsb2FkX2NsYXNzKTogTmV3LgoJKGlhNjRfdmVjdG9yX21vZGVfc3VwcG9ydGVkX3ApOiBOZXcuCgkqIGNvbmZpZy9pYTY0L2lhNjQuaCAoVU5JVFNfUEVSX1NJTURfV09SRCk6IE5ldy4KCShQUkVGRVJSRURfUkVMT0FEX0NMQVNTKTogTW92ZSB0byBmdW5jdGlvbi4KCShDT05TVF9PS19GT1JfTEVUVEVSX1ApOiBNb3ZlIHRvIGZ1bmN0aW9uLgoJKENPTlNUX0RPVUJMRV9PS19GT1JfTEVUVEVSX1ApOiBNb3ZlIHRvIGZ1bmN0aW9uLgoJKENPTlNUUkFJTlRfT0tfRk9SX1EsIENPTlNUUkFJTlRfT0tfRk9SX1IpOiBSZW1vdmUuCgkoQ09OU1RSQUlOVF9PS19GT1JfUywgQ09OU1RSQUlOVF9PS19GT1JfVCk6IFJlbW92ZS4KCShFWFRSQV9DT05TVFJBSU5UKTogTW92ZSB0byBmdW5jdGlvbi4KCSogY29uZmlnL2lhNjQvaWE2NC5tZDogSW5jbHVkZSB2ZWN0Lm1kLgoJKGl0YW5pdW1fY2xhc3MpOiBBZGQgbW1hbHVhLgoJKHR5cGUpOiBIYW5kbGUgaXQuCgkqIGNvbmZpZy9pYTY0L2l0YW5pdW0xLm1kICgxX21tYWx1YSk6IE5ldy4gIEFkZCBpdCB0byBieXBhc3Nlcy4KCSgxYl9tbWFsdWEpOiBOZXcuCgkqIGNvbmZpZy9pYTY0L2l0YW5pdW0yLm1kICgyX21tYWx1YSwgMmJfbW1hbHVhKTogU2ltaWxhcmx5LgoJKiBjb25maWcvaWE2NC9wcmVkaWNhdGVzLm1kIChncl9yZWdfb3JfMF9vcGVyYW5kKTogQWNjZXB0IGFueQoJQ09OU1QwX1JUWC4KCShjb25zdF9pbnRfMmJpdF9vcGVyYW5kKTogTmV3LgoJKGZyX3JlZ19vcl8wX29wZXJhbmQpOiBOZXcuCgkqIGNvbmZpZy9pYTY0L2lhNjQtbW9kZXMuZGVmOiBBZGQgdmVjdG9yIG1vZGVzLgoJKiBjb25maWcvaWE2NC9pYTY0LXByb3Rvcy5oOiBVcGRhdGUuCgkqIGNvbmZpZy9pYTY0L3ZlY3QubWQ6IE5ldyBmaWxlLgoKMjAwNS0wMS0wMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9iaW5hcnlfb3BlcmF0aW9uKTogSGFuZGxlIFZFQ19DT05DQVQuCgoyMDA1LTAxLTAzICBVcm9zIEJpemphayAgPHVyb3NAa3NzLWxva2Euc2k+CgoJUFIgdGFyZ2V0LzE5MjM2CgkqIGNvbmZpZy9pMzg2L2kzODYuYyAobG9nMXBzZjIpOiBDaGFuZ2UgbW9kZSBvZiBvcGVyYW5kc1swLDFdCgl0byBTRm1vZGUuCgkobG9nMXBkZjIpOiBDaGFuZ2UgbW9kZSBvZiBvcGVyYW5kc1swLDFdIHRvIERGbW9kZS4KCjIwMDUtMDEtMDMgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBjb25maWcvc3BhcmMvc3BhcmMuaCAoU1BBUkNfUkVMQVhFRF9PUkRFUklORyk6IERlZmluZSB0byBmYWxzZS4KCSogY29uZmlnL3NwYXJjL2xpbnV4LmggKFNQQVJDX1JFTEFYRURfT1JERVJJTkcpOiBEZWZpbmUgdG8gdHJ1ZS4KCSogY29uZmlnL3NwYXJjL2xpbnV4NjQuaCAoU1BBUkNfUkVMQVhFRF9PUkRFUklORyk6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAoVEFSR0VUX1JFTEFYRURfT1JERVJJTkcpOiBEZWZpbmUgdG8KCVNQQVJDX1JFTEFYRURfT1JERVJJTkcuCgoyMDA1LTAxLTAzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoJICAgIFVyb3MgQml6amFrICA8dXJvc0Brc3MtbG9rYS5zaT4KCglQUiB0YXJnZXQvMTQ2MzEKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF9idWlsdGluKTogW0lYODZfQlVJTFRJTl9QSU5TUlcsCglJWDg2X0JVSUxUSU5fUElOU1JXMTI4XTogRml4IHdyb25nIHNlbGVjdG9yIHJhbmdlIGluIGVycm9yIG1lc3NhZ2UuCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKG1teF9waW5zcncsIHNzZTJfcGluc3J3KTogRml4IHNlbGVjdG9yCgloYW5kbGluZy4KCSgqbW14X3BpbnNydywgKnNzZTJfcGluc3J3KTogTmV3IHBhdHRlcm5zLgoJKiBjb25maWcvaTM4Ni9pMzg2L3ByZWRpY2F0ZXMubWQgKGNvbnN0X3BvdzJfMV90b184X29wZXJhbmQsCgljb25zdF9wb3cyXzFfdG9fMTI4X29wZXJhbmQpOiBOZXcgcHJlZGljYXRlcy4KCjIwMDUtMDEtMDIgIEdyZWcgTWNHYXJ5ICA8Z3JlZ0BtY2dhcnkub3JnPgoKCSogdHJlZS1tdWRmbGFwLmMgKG1mX3Zhcm5hbWVfdHJlZSk6IGRlY2xfcHJpbnRhYmxlX25hbWUgaGFuZGxlcwoJYW5vbnltb3VzIGRlY2xzLgoJKG1mX3hmb3JtX2RlcmVmc18xKSBbUkVTVUxUX0RFQ0wsIFNUUklOR19DU1RdOiBIYW5kbGUgYXMgaW5uZXJtb3N0CglvYmplY3QuICBbcHRyX3R5cGVdOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoJUmVtZW1iZXIgbmVhcmVzdCBhZGRyZXNzYWJsZSBhcnJheS1lbGVtZW50IG9yIHJlY29yZC1jb21wb25lbnQKCXdoZW4gY2hlY2tpbmcgYml0ZmllbGQgY29tcG9uZW50cy4gIFRvbGVyYXRlIGVtcHR5IEJJTkRfRVhQUi4KCjIwMDUtMDEtMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAodmVjdF9hbmFseXplX29mZnNldF9leHByKTogU3RyaXAgY29udmVyc2lvbnMKCXRoYXQgZG9uJ3QgbmFycm93IHRoZSB2YWx1ZS4gIEZhaWwgZm9yIG90aGVyIGNvbnZlcnNpb25zLgoKMjAwNS0wMS0wMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBjLzE5MDMxCgkqIGMtZGVjbC5jIChwb3BfZmlsZV9zY29wZSk6IENhbGwgbWF5YmVfYXBwbHlfcGVuZGluZ19wcmFnbWFfd2Vha3MuCgkqIGMtbGFuZy5jIChmaW5pc2hfZmlsZSk6IERvbid0IGRvIGl0IGhlcmUuCgkqIG9iamMvb2JqYy1hY3QuYyAob2JqY19maW5pc2hfZmlsZSk6IExpa2V3aXNlLgoKCSogY2dyYXBoLmMgKGRlY2xfYXNzZW1ibGVyX25hbWVfZXF1YWwpOiBOZXcuCgkoY2dyYXBoX25vZGVfZm9yX2FzbSwgY2dyYXBoX3ZhcnBvb2xfbm9kZV9mb3JfYXNtKTogTmV3LgoJKGNncmFwaF92YXJwb29sX25vZGUpOiBBY3R1YWxseSBsaW5rIHVwIGNncmFwaF92YXJwb29sX25vZGVzLgoJKiBjZ3JhcGguaCAoc3RydWN0IGNncmFwaF92YXJwb29sX25vZGUpOiBBZGQgbmV4dC4KCShjZ3JhcGhfbm9kZV9mb3JfYXNtLCBjZ3JhcGhfdmFycG9vbF9ub2RlX2Zvcl9hc20pOiBEZWNsYXJlLgoJKiB2YXJhc20uYyAoYXNzZW1ibGVfYWxpYXMpOiBNYXJrIHRoZSB0YXJnZXQgYXMgbmVlZGVkLgoKMjAwNS0wMS0wMSAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgbWlkZGxlLWVuZC8xOTIyMQoJKiBmdW5jdGlvbi5jIChnZXRfYXJnX3BvaW50ZXJfc2F2ZV9hcmVhKTogVXNlIGVudHJ5X29mX2Z1bmN0aW9uCglpbnN0ZWFkIG9mIGdldF9pbnNucy4KCjIwMDUtMDEtMDEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoJICAgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoJICAgIEphbWVzIEUuIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xMjA5MgoJKiBsb29wLmMgKGVtaXRfcHJlZmV0Y2hfaW5zdHJ1Y3Rpb25zKTogRG8gbm90aGluZyBpZiBQUkVGRVRDSF9CTE9DSwoJaXMgemVyby4KCjIwMDUtMDEtMDEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoJICAgIE9saXZpZXIgSGFpbnF1ZSAgPGhhaW5xdWVAYWN0LWV1cm9wZS5mcj4KCgkqIHRyZWUuYyAoaW50X2ZpdHNfdHlwZV9wKTogQSBuYXJyb3dlciB0eXBlIGFsd2F5cyBmaXRzIGluIGEKCXdpZGVyIG9uZSwgZXhjZXB0IGZvciBuZWdhdGl2ZSB2YWx1ZXMgaW50byB1bnNpZ25lZCB0eXBlcy4KCjIwMDUtMDEtMDEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogdHJlZS5jIChpbnRfZml0c190eXBlX3ApOiBDb21wYXJlIHRoZSByZXN1bHQgb2YgZm9yY2VfZml0X3R5cGUKCXdpdGggdGhlIG9yaWdpbmFsIGNvbnN0YW50IHJhdGhlciB0aGFuIHJlcXVpcmUgVFJFRV9PVkVSRkxPVy4KCjIwMDUtMDEtMDEgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCglQUiBtaWRkbGUtZW5kLzE3NTQ0CgkqIGMtZGVjbC5jIChmaW5pc2hfZnVuY3Rpb24pOiBJZiBjb21waWxpbmcgQzk5LCBhbm5vdGF0ZSB0aGUKCWNvbXBpbGVyIGdlbmVyYXRlZCByZXR1cm4gd2l0aCB0aGUgY3VycmVudCBmaWxlIG5hbWUgYW5kIGxpbmUgMC4KCSogdHJlZS1jZmcuYyAocmVtb3ZlX3VzZWxlc3Nfc3RtdHNfd2Fybl9ub3RyZWFjaGVkKTogT25seSB3YXJuIGlmCgl0aGUgc291cmNlIGxpbmUgaXMgZ3JlYXRlciB0aGFuIDAuCgkocmVtb3ZlX2JiKTogTGlrZXdpc2UuCgpTZWUgQ2hhbmdlTG9nLjEyIGZvciBlYXJsaWVyIGNoYW5nZXMuCg==