MjAwOS0xMi0zMSAgRWlyaWsgQnlya2plZmxvdCBBbm9uc2VuICA8ZWlyaWtAb3BlcmEuY29tPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBvYmpjb3B5LmMgKGFkZF9yZWRlZmluZV9zeW1zX2ZpbGUpOiBBdm9pZCBzeW1ib2wgYnVmZmVyCglvdmVycnVuLgoKMjAwOS0xMi0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBNQUlOVEFJTkVSUzogVXBkYXRlIG15IGVtYWlsIGFkZHJlc3MuCgoyMDA5LTEyLTE4ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9ub3RlX3R5cGUpOiBIYW5kbGUgTlRfUzM5MF9ISUdIX0dQUlMgbm90ZXMuCgoyMDA5LTEyLTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYXIuYzogRml4IHNoYWRvd2VkIHZhcmlhYmxlIHdhcm5pbmdzLgoJKiBidWNvbW0uYzogTGlrZXdpc2UuCgkqIGNvZmZncm9rLmM6IExpa2V3aXNlLgoJKiBjb25maWd1cmU6IExpa2V3aXNlLgoJKiBkbGx0b29sLmM6IExpa2V3aXNlLgoJKiBkbGx3cmFwLmM6IExpa2V3aXNlLgoJKiBkd2FyZi5jOiBMaWtld2lzZS4KCSogaWVlZS5jOiBMaWtld2lzZS4KCSogbmxtY29udi5jOiBMaWtld2lzZS4KCSogbm0uYzogTGlrZXdpc2UuCgkqIG9iamNvcHkuYzogTGlrZXdpc2UuCgkqIG9iamR1bXAuYzogTGlrZXdpc2UuCgkqIHByZGJnLmM6IExpa2V3aXNlLgoJKiByZWFkZWxmLmM6IExpa2V3aXNlLgoJKiByZXNiaW4uYzogTGlrZXdpc2UuCgkqIHJlc3JjLmM6IExpa2V3aXNlLgoJKiByZXNyZXMuYzogTGlrZXdpc2UuCgkqIHNyY29udi5jOiBMaWtld2lzZS4KCSogc3RhYnMuYzogTGlrZXdpc2UuCgkqIHN5c2R1bXAuYzogTGlrZXdpc2UuCgkqIHN5c2luZm8ueTogTGlrZXdpc2UuCgkqIHdyc3RhYnMuYzogTGlrZXdpc2UuCgoyMDA5LTEyLTEwICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogYWRkcjJsaW5lLmMgKHByZXR0eV9wcmludCk6IE5ldyB2YXJpYWJsZS4KCShsb25nX29wdGlvbnMpOiBBZGQgYW4gZW50cnkgZm9yIC1wLy0tcHJldHR5LXByaW50LgoJKHVzYWdlKTogRG9jdW1lbnQgLXAvLS1wcmV0dHktcHJpbnQuCgkodHJhbnNsYXRlX2FkZHJlc3Nlcyk6IEhhbmRsZSBwcmV0dHlfcHJpbnQuICBSZWluZGVudC4KCShtYWluKTogSGFuZGxlIG9wdGlvbiAtcC4KCSogZG9jL2JpbnV0aWxzLnRleGkgKGFkZHIybGluZSk6IERvY3VtZW50IC1wLy0tcHJldHR5LXByaW50LgoJKiBORVdTOiBNZW50aW9uIG5ldyBmZWF0dXJlLgoKMjAwOS0xMi0wOSAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIGFkZHIybGluZS5jICh0cmFuc2xhdGVfYWRkcmVzc2VzKTogRGlzcGxheSBhZGRyZXNzZXMKCWlmIG9wdGlvbiAtYSBpcyB1c2VkLgoJKHdpdGhfYWRkcmVzc2VzKTogTmV3IHZhcmlhYmxlLgoJKGxvbmdfb3B0aW9ucyk6IEFkZCBvcHRpb24gJy1hJy4KCSh1c2FnZSk6IEFkZCB1c2FnZSBmb3Igb3B0aW9uICctYScuCgkobWFpbik6IEhhbmRsZSBvcHRpb24gJy1hJy4KCSogZG9jL2JpbnV0aWxzLnRleGkgKGFkZHIybGluZSk6IERvY3VtZW50IG9wdGlvbiAnLWEnLgoJKiBORVdTOiBNZW50aW9uIG5ldyBmZWF0dXJlLgoKMjAwOS0xMi0wOCAgQ2FyeSBDb3V0YW50ICA8Y2NvdXRhbnRAZ29vZ2xlLmNvbT4KCgkqIGR3YXJmLmMgKGR3YXJmX3NlbGVjdF9zZWN0aW9uc19ieV9uYW1lcyk6IEhhbmRsZSBwdWJ0eXBlcyBjb3JyZWN0bHkuCgkoZGVidWdfZGlzcGxheXMpOiBSZW1vdmUgZHVwbGljYXRlIGVudHJ5IGZvciBkZWJ1Z19wdWJ0eXBlcy4KCjIwMDktMTItMDMgIERhdmlkIERhbmV5ICA8ZGRhbmV5QGNhdml1bW5ldHdvcmtzLmNvbT4KCSAgICBBZGFtIE5lbWV0ICA8YWRhbWJuZW1ldEBnbWFpbC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX2ZsYWdzKTogSGFuZGxlIEVfTUlQU19NQUNIX09DVEVPTjIgY2FzZS4KCjIwMDktMTItMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgYmludXRpbHMvMTEwNDUKCSogZHdhcmYuYyAoZG9fZGVidWdfcHVidHlwZXMpOiBOZXcgdmFyaWFibGUuCgkoZHdhcmZfc2VsZWN0X3NlY3Rpb25zX2J5X25hbWVzKTogSGFuZGxlIC5kZWJ1Z19wdWJ0eXBlcy4KCShkd2FyZl9zZWxlY3Rfc2VjdGlvbnNfYnlfbGV0dGVycyk6IEFkZCAndCcgZm9yIC5kZWJ1Z19wdWJ0eXBlLgoJKGR3YXJmX3NlbGVjdF9zZWN0aW9uc19hbGwpOiBTZXQgZG9fZGVidWdfcHVidHlwZXMuCgkoZGVidWdfZGlzcGxheXMpOiBBZGQgc3VwcG9ydCBmb3IgLmRlYnVnX3B1YnR5cGVzLgoJKiBkd2FyZi5oIChkb19kZWJ1Z19wdWJ0eXBlcyk6IEV4cG9ydC4KCSogb2JqZHVtcC5jICh1c2FnZSk6IEFkZCAtd3Qgb3IgLS1kd2FyZj1wdWJ0eXBlcy4KCSogcmVhZGVsZi5jICh1c2FnZSk6IExpa2V3aXNlLgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogRW5hYmxlIGRlYnVnIGRpc3BsYXkgaWYKCWRvX2RlYnVnX3B1YnR5cGVzIGlzIHNldC4KCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IC13dC8tLWR3YXJmPXB1YnR5cGVzIG9wdGlvbi4KCjIwMDktMTItMDIgIEplcmtlciBC5GNrICA8amVya2VyLmJhY2tAZ21haWwuY29tPgoKCVBSIGJpbnV0aWxzLzExMDE3CgkqIGRsbHRvb2wuYyAoUEFHRV9TSVpFKTogRGVsZXRlLgoJKFBBR0VfTUFTSyk6IFByb3ZpZGUgZGVmYXVsdCBkZWZpbml0aW9uIGJhc2VkIG9uIENPRkZfUEFHRV9TSVpFLgoJQ2hlY2sgZm9yIERMTFRPT0xfREVGQVVMVF9NWDg2XzY0IGFuZCBETExUT09MX0RFRkFVTFRfSTM4Ni4KCjIwMDktMTItMDEgIEpvc2VwaCBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9uYW1lLCBnZXRfb3NhYmlfbmFtZSk6IEhhbmRsZSBtb3JlCglhbGxvY2F0ZWQgdmFsdWVzLgoKMjAwOS0xMS0zMCAgSm9zZXBoIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA5LTExLTIwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jOiBJbmNsdWRlIHhjMTZ4LmguCgkoZHVtcF9yZWxvY2F0aW9ucyk6IEhhbmRsZSByZWxvY2F0aW9ucyBmb3IgdGhlIHhjMTZ4IHRhcmdldC4KCShnZXRfbWFjaGluZV9uYW1lKTogQWNjZXB0IEVNX0MxNjYgZm9yIHhjMTZ4IHRhcmdldHMuCgkoaXNfMzJiaXRfYWJzX3JlbG9jKTogQWRkIHN1cHBvcnQgZm9yIHhjMTZjIDMyLWJpdCBhYnNvbHV0ZSByZWxvYy4KCShpc18xNmJpdF9hYnNfcmVsb2MpOiBBZGQgc3VwcG9ydCBmb3IgeGMxNmMgMTYtYml0IGFic29sdXRlIHJlbG9jLgoJKGlzX25vbmVfcmVsb2MpOiBBZGQgc3VwcG9ydCBmb3IgeGMxNmMgbnVsbCByZWxvYy4KCjIwMDktMTEtMjAgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogTWFrZWZpbGUuYW0gKHN5c2xleC5vKTogVXNlICQoTk9fV0VSUk9SKSBub3QgLVduby1lcnJvci4KCShzeXNpbmZvLm8pOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTExLTE5ICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCgkqIGFybGV4Lmw6IEVuYWJsZSBub2lucHV0LCBub3VucHV0IGZsZXggb3B0aW9ucy4KCSogc3lzbGV4Lmw6IExpa2V3aXNlLgoKMjAwOS0xMS0xNyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcmVhZGVsZi5jIChhcm1fYXR0cl90YWdfQ1BVX2FyY2gpOiBBZGQgdjdFLU0uCgoyMDA5LTExLTE2ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIHdpbmRtYy5jIChzZXRfZW5kaWFuZXNzKTogVXNlIGJmZF9nZXRfdGFyZ2V0X2luZm8uCgkqIHdpbmRyZXMuYyAoc2V0X2VuZGlhbmVzcyk6IExpa2V3aXNlLgoJKGZpbmRfYXJjaF9tYXRjaCk6IFJlbW92ZWQuCgoyMDA5LTExLTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vaWQucG86IFVwZGF0ZWQgSW5kb25lc2lhbiB0cmFuc2xhdGlvbi4KCjIwMDktMTEtMTEgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogU3RvcCBjaGVja2luZyBmb3IgZm9wZW42NCBhbmQgc3RhdDY0LgoJKiBzdHJpbmdzLmMgKGZpbGVfb2ZmLCBmaWxlX29wZW4sIHN0YXRidWYsIGZpbGVfc3RhdCk6IFJlbW92ZS4KCShzdHJpbmdzX2ZpbGUpOiBDaGFuZ2UgZmlsZV9vZmYgdG8gZmlsZV9wdHIsIGZpbGVfb3BlbiB0byBmb3BlbiwKCXN0YXRidWYgdG8gc3RydWN0IHN0YXQgYW5kIGZpbGVfc3RhdCB0byBzdGF0LgoJKGdldF9jaGFyKTogQ2hhbmdlIHBhcmFtZXRlciB0eXBlIGZpbGVfb2ZmICogdG8gZmlsZV9wdHIgKi4KCShwcmludF9zdHJpbmdzKTogQ2hhbmdlIHBhcmFtZXRlciBhbmQgdmFyaWFibGUgYHN0YXJ0JyB0eXBlIGZpbGVfb2ZmIHRvCglmaWxlX3B0ci4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTExLTExICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IENhbGwgQUNYX0xBUkdFRklMRS4gIFN0b3AgY2FsbGluZyBBQ19QTFVHSU5TLAoJQUNfU1lTX0xBUkdFRklMRSBhbmQgY2hlY2tpbmcgdGhlIFNvbGFyaXMgbGFyZ2VmaWxlIGV4Y2VwdGlvbi4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOS0xMS0wOSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgoKCSogYnVjb21tLmMgKGdldF9maWxlX3NpemUpOiBVcGRhdGUgY29tbWVudCBmb3IgdGhlIGVycm9yIHJldHVybiB2YWx1ZS4KCjIwMDktMTEtMDggIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiByZWFkZWxmLmMgKHNsdXJwX2hwcGFfdW53aW5kX3RhYmxlKTogRG9uJ3QgcmVsb2NhdGUgYWRkcmVzcyB0d2ljZS4KCjIwMDktMTEtMDUgIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogZGxsd3JhcC5jIChpc19sZWFkaW5nX3VuZGVyc2NvcmUpOiBOZXcgdmFyaWFibGUuCgkoY3B1X3R5cGUpOiBOZXcgZW51bSB0eXBlLgoJKHdoaWNoX2NwdSk6IE5ldyB2YXJpYWJsZS4KCSh1c2FnZSk6IEFkZCBuZXcgb3B0aW9ucyAtLW5vLWxlYWRpbmctdW5kZXJzY29yZQoJYW5kIC0tbGVhZGluZy11bmRlcnNjb3JlLgoJKGxvbmdfb3B0aW9ucyk6IExpa2V3aXNlLgoJKE9QVElPTl9OT19MRUFESU5HX1VOREVSU0NPUkUpOiBOZXcgZGVmaW5lLgoJKE9QVElPTl9MRUFESU5HX1VOREVSU0NPUkUpOiBMaWtld2lzZS4KCShtYWluKTogSW5pdGlhbGl6ZSB3aGljaF9ob3N0LCBwYXNzIG5ldyBvcHRpb25zCgl0byBkbGx0b29sLCBkbyB1bmRlcnNjb3JpbmcgZGVwZW5kZW50IG9uCglpc19sZWFkaW5nX3VuZGVyc2NvcmUsIGFuZCBkbyAnQDEyJyBkZWNvcmF0aW9uCglvbmx5IGZvciB4ODYuCgoyMDA5LTExLTAyICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogcmVhZGVsZi5jIChhcm1fYXR0cl90YWdfVkZQX2FyY2gpOiBBZGQgVkZQdjQgYW5kIFZGUHY0LUQxNi4KCjIwMDktMTAtMjggIEthaSBUaWV0eiA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiBkbGx0b29sLmMgKGxlYWRpbmdfdW5kZXJzY29yZSk6IE5ldyBsb2NhbCB2YXJpYWJsZS4KCShhc21fcHJlZml4KTogSW50ZXJwcmV0IGxlYWRpbmdfdW5kZXJzY29yZS4KCSh4bGF0ZSk6IExpa2V3aXNlLgoJKGFkZF9leGNsdWRlcyk6IFVzZSBsZWFkaW5nX3VuZGVyc2NvcmUgZm9yIG1ha2luZwoJc3ltYm9sIG5hbWUuCgkoZ2VuX2V4cF9maWxlKTogVXNlIGxlYWRpbmdfdW5kZXJzY29yZSBmb3IgaW50ZXJuYWwKCV9pbXBfIHN5bWJvbHMuCgkodXNhZ2UpOiBBZGQgZGlzcGxheSBvZiAtLW5vLWxlYWRpbmctdW5kZXJzY29yZSBhbmQKCS0tbGVhZGluZy11bmRlcnNjb3JlIG9wdGlvbi4KCShPUFRJT05fTk9fTEVBRElOR19VTkRFUlNDT1JFKTogTmV3LgoJKE9QVElPTl9MRUFESU5HX1VOREVSU0NPUkUpOiBOZXcuCgkobG9uZ19vcHRpb25zKTogQWRkIC0tbm8tbGVhZGluZy11bmRlcnNjb3JlIGFuZAoJLS1sZWFkaW5nLXVuZGVyc2NvcmUgb3B0aW9uLgoJKG1haW4pOiBIYW5kbGUgbmV3IG9wdGlvbnMuCgkqIGRvYy9iaW51dGlscy50ZXh0OiBBZGQgZG9jdW1lbnRhdGlvbiBvZiB0aGUgb3B0aW9ucwoJLS1uby1sZWFkaW5nLXVuZGVyc2NvcmUgYW5kIC0tbGVhZGluZy11bmRlcnNjb3JlLgoKMjAwOS0xMC0yMyAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiBkZWZsZXgubDogQWxsb3cgJzwnIGFuZCAnPicgaW4gSUQgbmFtZXMuCgoJKiBkZWZwYXJzZS55IChFUVVBTCk6IE5ldyB0b2tlbiBjb25zdGFudC4KCShvcHRfaW1wb3J0X25hbWUpOiBOZXcgcnVsZSBmb3IgZW1wdHJ5IG9yICc9PScgSUQuCgkoZXhwbGluZSk6IEFkZCBvcHRfaW1wb3J0X25hbWUgYXMgbGFzdCBsaW5lIGVsZW1lbnQuCgkoaW1wbGluZSk6IExpa2V3aXNlLgoJKiBkbGx0b29sLmMgKGlmdW5jdCk6IE5ldyBtZW1iZXIgaXRzX25hbWUuCgkoZXhwb3J0KTogTGlrZXdpc2UuCgkoYXBwZW5kX2ltcG9ydCk6IEFkZCBpdHNfbmFtZSBhcmd1bWVudC4KCShkZWZleHBvcnRzKTogTGlrZXdpc2UuCgkoZGVmaW1wb3J0KTogTGlrZXdpc2UuCgkoc2Nhbl9kcmVjdHZlX3N5bWJvbHMpOiBBZGp1c3QgY2FsbHMgdG8gZGVmX2V4cG9ydHMuCgkoZHVtcF9kZWZfaW5mbyk6IFByaW50IG5ldyBvcHRpbmFsIGltcG9ydC9leHBvcnQgdGFibGUKCXN5bWJvbCBuYW1lLgoJKGdlbmVyYXRlX2lkYXRhX29maWxlKTogVXNlIGl0c19uYW1lIG1lbWJlci4KCShtYWtlX29uZV9saWJfZmlsZSk6IExpa2V3aXNlLgoJKG5mdW5jKTogVGFrZSBpdHNfbmFtZSBpbiBhY2NvdW50IG9uIHNvcnQuCgkqIGRsbHRvb2wuaCAoZGVmX2V4cG9ydHMpOiBBZGQgaXRzX25hbWUgYXMgYXJndW1lbnQuCgkoZGVmX2ltcG9ydCk6IExpa2V3aXNlLgoJKiBkb2MvYmludXRpbHMudGV4aTogQWRkIG5ldyBkZWYgZmlsZSBzeW50YXggZXh0ZW5zaW9uLgoJKiBkZWZsZXgubCAoRVFVQUwpOiBBZGQgcnVsZSBmb3IgJz09Jy4KCSogTkVXUzogTWVudGlvbiBuZXcgZmVhdHVyZS4KCjIwMDktMTAtMjMgIFRob21hcyBDb3VnbmFyZCAgPHRob21hcy5jb3VnbmFyZEBnbWFpbC5jb20+CgoJKiByZWFkZWxmLmMgKGR5bmFtaWNfaW5mbyk6IENvcnJlY3Qgc2l6ZSBvZiBhcnJheS4KCjIwMDktMTAtMjEgIEJlbiBFbGxpc3RvbiAgPGJqZUBnbnUub3JnPgoKCSogTUFJTlRBSU5FUlMgKEJVSUxEIFNZU1RFTSwgVEVTVFNVSVRFUyk6IFJlbW92ZSBteXNlbGYuCgoyMDA5LTEwLTE5ICBKZXJrZXIgQuRjayAgPGplcmtlci5iYWNrQGdtYWlsLmNvbT4KCglQUiBiaW51dGlscy8xMDc5MwoJKiBwcmRiZy5jICh0Z19lbmRfc3RydWN0X3R5cGUpOiBXYXJuaW5nIGZpeC4KCglQUiBiaW51dGlscy8xMDc5MgoJKiBkbGx0b29sLmMgKGRsbF9uYW1lX2xpc3RfYXBwZW5kKTogRGVjbGFyZSB2YXJpYWJsZSBhdCBzdGFydAoJb2YgYmxvY2suCgkoZGxsX25hbWVfbGlzdF9jb3VudCwgZGxsX25hbWUtbGlzdF9wcmludCk6IExpa2V3aXNlLgoKMjAwOS0xMC0xNiAgRG91ZyBFdmFucyAgPGRqZUBzZWJhYmVhY2gub3JnPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBteXNlbGYgYXMgbTMyciBtYWludGFpbmVyLgoKMjAwOS0xMC0xNiAgSmVya2VyIELkY2sgPGplcmtlci5iYWNrQGdtYWlsLmNvbT4KCglQUiAxMDc2NAoJKiBNYWtlZmlsZS5hbSAoc3lzaW5mby5vLCBzeXNsZXgubyk6IFBsYWNlIHNvdXJjZSBmaWxlIGFmdGVyIGFsbAoJY29tbWFuZCBsaW5lIHN3aXRjaGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDktMTAtMTYgIFlhbm4gRHJvbmVhdWQgIDx5YW5uQGRyb25lYXVkLmZyPgoKCVBSIDEwNzY4CgkqIGRsbHRvb2wuYyAoYmZkX2dldF9lcnJtc2cpOiBOZXcgbWFjcm8uCgkoc2Nhbl9vYmpfZmlsZSk6IFVzZSBpdC4KCShtYWtlX29uZV9saWJfZmlsZSk6IFVzZSBpdC4KCShtYWtlX2hlYWQpOiBVc2UgaXQuCgkobWFrZV9kZWxheV9oZWFkKTogVXNlIGl0LgoJKG1ha2VfdGFpbCk6IFVzZSBpdC4KCShnZW5fbGliX2ZpbGUpOiBVc2UgaXQuCgkoaWRlbnRpZnlfZGxsX2Zvcl9pbXBsaWIpOiBVc2UgaXQuCgkoaWRlbnRpZnlfc2VhcmNoX2FyY2hpdmUpOiAgVXNlIGl0LgoKMjAwOS0xMC0xNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAodXNhZ2UpOiBBZGQgbWVudGlvbiBvZiAtLWRlYnVnLWR1bXA9ZnJhbWVzLWludGVycC4KCVdyYXAgb3V0cHV0IHRvIDgwIGNvbHVtbnMuCgkqIG9iamR1bXAuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogZG9jL2JpbnV0aWxzLnRleGkgKHJlYWRlbGYpOiBBZGQgbm90ZSBhYm91dCA9ZnJhbWVzLWludGVycC4KCjIwMDktMTAtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhZGRyMmxpbmUuYyAoc2x1cnBfc3ltdGFiKTogRG9uJ3QgdXNlIGJmZF9yZWFkX21pbmlzeW1ib2xzLgoKMjAwOS0wOS0yOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGRvYy9iaW51dGlscy50ZXhpIChjKytmaWx0KTogUmVtb3ZlIHNwdXJpb3VzIGRlc2NyaXB0aW9uIG9mCglub25leGlzdGVudCAtLWphdmEgY29tbWFuZCBsaW5lIHN3aXRjaCBmb3IgY3h4ZmlsdC4KCjIwMDktMDktMjkgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jOiBBZGQgc3VwcG9ydCBmb3IgUlggdGFyZ2V0LgoJKiBNQUlOVEFJTkVSUzogQWRkIERKIGFuZCBOaWNrQyBhcyBtYWludGFpbmVycyBmb3IgUlguCgoyMDA5LTA5LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlndXJlLmluOiBEb24ndCBpbnZva2UgY29uZmlndXJlLnRndCBvbiAkZW5hYmxlX3RhcmdldHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDktMDktMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgMTA0NzgKCSogcmVhZGVsZi5jIChnZXRfZWxmX3NlY3Rpb25fZmxhZ3MpOiBBbGxvdyBTSE5fQkVGT1JFIGFuZAoJU0hOX0FGVEVSIHNlY3Rpb24gbGluayB2YWx1ZXMgaW4geDg2IGJpbmFyaWVzLgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogTGlrZXdpc2UuCgoyMDA5LTA5LTI1ICBEbWl0cnkgR29yYmFjaGV2ICA8ZC5nLmdvcmJhY2hldkBnbWFpbC5jb20+CgoJUFIgMTA2NTYKCSogcmVhZGVsZi5jOiBSZW1vdmUgZHVwbGljYXRlIGRlY2xhcmF0aW9uIG9mIHZhcmlhYmxlIGRvX3dpZGUuCgkqIGR3YXJmLmg6IEFkZCBleHBvcnQgb2YgZG9fd2lkZS4KCjIwMDktMDktMjQgIENhcnkgQ291dGFudCAgPGNjb3V0YW50QGdvb2dsZS5jb20+CgoJKiBkd2FyZi5jIChnZXRfVEFHX25hbWUpOiBBZGQgbWlzc2luZyBEV0FSRi0zIGFuZCBuZXcgRFdBUkYtNCB0YWdzLgoJKGdldF9GT1JNX25hbWUpOiBBZGQgbmV3IERXQVJGLTQgZm9ybXMuCgkocmVhZF9hbmRfZGlzcGxheV9hdHRyX3ZhbHVlKTogQWRkIERXX0ZPUk1fcmVmX3NpZzgsIERXX0xBTkdfUHl0aG9uLgoJKGdldF9BVF9uYW1lKTogQWRkIG5ldyBEV0FSRi00IGFuZCBHTlUtc3BlY2lmaWMgYXR0cmlidXRlcy4KCShwcm9jZXNzX2RlYnVnX2luZm8pOiBBZGQgZG9fdHlwZXMgcGFyYW1ldGVyOyBjaGFuZ2UgYWxsIGNhbGxlcnMuCglBZGQgc3VwcG9ydCBmb3IgLmRlYnVnX3R5cGVzIHNlY3Rpb25zLgoJKGRpc3BsYXlfZGVidWdfdHlwZXMpOiBOZXcgZnVuY3Rpb24uCgkoZGVidWdfZGlzcGxheXMpOiBBZGQgLmRlYnVnX3R5cGVzIHNlY3Rpb24uCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBBZGQgLmRlYnVnX3R5cGVzIHNlY3Rpb24uCgkoZGlzcGxheV9kZWJ1Z19zZWN0aW9uKTogU2ltcGxpZnkgY2FsbCB0byBzdHJlcS4KCjIwMDktMDktMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiByZWFkZWxmLmMgKHByaW50X2R5bmFtaWNfc3ltYm9sKTogRm9ybWF0IGVudHJpZXMgYXMgZm9yCglub3JtYWwgc3ltYm9sIHRhYmxlLgoJKHByb2Nlc3Nfc3ltYm9sX3RhYmxlKTogVXNlIC03cyBmb3JtYXQgc3RyaW5nIGZvciB2aXNpYmlsaXR5LgoKMjAwOS0wOS0yMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyZHNhbmRpZm9yZEBnb29nbGVtYWlsLmNvbT4KCgkqIG9iamR1bXAuYyAoZGlzYXNzZW1ibGVfc2VjdGlvbik6IFVzZSBiZmRfZ2V0X2FyY2hfc2l6ZQoJaW5zdGVhZCBvZiBhc3N1bWluZyB0aGF0IHRoZSBhZGRyZXNzIHNpemUgaXMgMzIgYml0cy4KCjIwMDktMDktMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiByZWFkZWxmLmMgKGdldF9wcGNfZHluYW1pY190eXBlKTogQWRkIFRMU09QVC4KCShnZXRfcHBjNjRfZHluYW1pY190eXBlKTogTGlrZXdpc2UuCgoyMDA5LTA5LTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZXMucG86IFVwZGF0ZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCSogcG8vdmkucG86IFVwZGF0ZWQgVmlldG5hbWVzZSB0cmFuc2xhdGlvbi4KCjIwMDktMDktMTEgIFBhdWwgUGx1emhuaWtvdiAgPHBwbHV6aG5pa292QGdvb2dsZS5jb20+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfdmVyc2lvbl9zZWN0aW9ucywgcHJvY2Vzc19zeW1ib2xfdGFibGUpOgoJVXNlIHN5bWJvbGljIGNvbnN0YW50cy4KCjIwMDktMDktMTEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9iaW51dGlscy5wb3Q6IFVwZGF0ZWQgYnkgdGhlIFRyYW5zbGF0aW9uIHByb2plY3QuCgoyMDA5LTA5LTExICBQaGlsaXBwZSBEZSBNdXl0ZXIgIDxwaGRtQG1hY3FlbC5iZT4KCgkqIG9iY29weS5jIChjb3B5X29iamVjdCk6IE5ldyBwYXJhbWV0ZXIgYGlucHV0X2FyY2gnLCBhcmNoaXRlY3R1cmUKCW9mIGlucHV0IGZpbGUsIGlmIG5vdCBzcGVjaWZpZWQgaW4gaW5wdXQgZmlsZSBpdHNlbGY7IGFsbCBjYWxsZXJzCgl1cGRhdGVkOyBgYmluYXJ5X2FyY2hpdGVjdHVyZScgaGFjayByZW1vdmVkLgoJKGNvcHlfYXJjaGl2ZSwgY29weV9maWxlKTogTmV3IHBhcmFtZXRlciBgaW5wdXRfYXJjaCcsIGZvcgoJYGNvcHlfb2JqZWN0JyB1c2FnZS4KCShjb3B5X21haW4pOiBBY2NlcHQgYC1CJyAoYC0tYmluYXJ5LWFyY2hpdGVjdHVyZScpIG9wdGlvbiBhbHNvCglmb3IgYW55IGFyY2gtbGVzcyBpbnB1dCBpZmlsZSBmb3JtYXQsIG5vdCBvbmx5IGBiaW5hcnknOyByZW1vdmUKCWJmZF9leHRlcm5hbF9iaW5hcnlfYXJjaGl0ZWN0dXJlIGhhY2s7IGluc3RlYWQsIGFkZCBgaW5wdXRfYXJjaCcKCXRvIGNhbGxzIHRvIGBjb3B5X2ZpbGUnLgoJKiB3aW5kcmVzLmMsIHdpbmRtYy5jIDogT2Jzb2xldGUgYW5kIHVzZWxlc3MgZXh0ZXJuYWwgcmVmZXJlbmNlcwoJdG8gYGJmZF9leHRlcm5hbF9iaW5hcnlfYXJjaGl0ZWN0dXJlJyBvciBgYmZkX2V4dGVybmFsX21hY2hpbmUnCglyZW1vdmVkLgoJKiBkb2MvYmludXRpbHMudGV4aTogTWVudGlvbiB0aGF0IC1CIHBhcmFtZXRlciBjYW4gYmUgdXNlZCBmb3IgYW55CglpbnB1dCBmaWxlIHR5cGUgd2hpY2ggZG9lcyBub3QgaGF2ZSBpdHMgb3duIGFyY2hpdGVjdHVyZS4KCjIwMDktMDktMTAgIE1hcnRpbiBUaHVyZXNzb24gIDxtYXJ0aW5AbXRtZS5vcmc+CgoJVXBkYXRlIHNvdXJjZXMgdG8gY29tcGlsZSBjbGVhbmx5IHdpdGggLVdjKystY29tcGF0OgoJKiBhZGRyMmxpbmUuYyAoc2x1cnBfc3ltdGFiKTogRml4IGNhc3RzLiBJbnRyb2R1Y2UgdmFyaWFibGUKCW1pbmlzeW1zIHRvIGF2b2lkIGFsaWFzaW5nIHZhcm5pbmcuCgkqIGFyLmM6IEFkZCBjYXN0cy4KCShub3JtYWxpemUpOiBVc2UgbmFtZSBkZWwgaW5zdGVhZCBvZiBkZWxldGUuCgkoZGlzcGxheV90YXJnZXRfbGlzdCxkaXNwbGF5X2luZm9fdGFibGUpOiBDaGFuZ2UgbG9vcCBjb3VudGVyCgl2YXJpYWJsZSBhIHRvIGludC4KCSogYnVjb21tLmM6IEFkZCBjYXN0cy4KCSogZGVidWcuYzogVXBkYXRlIGZ1bmN0aW9uIHRvIHVzZSBuZXcgbmFtZXMuCgkoc3RydWN0IGRlYnVnX2Jhc2VjbGFzcyk6IFJlbmFtZSBtZW1iZXIgZnJvbSB2aXJ0dWFsIHRvCglpc192aXJ0dWFsLgoJKHN0cnVjdCBkZWJ1Z190eXBlX3MsIHN0cnVjdCBkZWJ1Z19maWVsZF9zLCBzdHJ1Y3QKCWRlYnVnX2Jhc2VjbGFzc19zLCBzdHJ1Y3QgZGVidWdfbWV0aG9kX3MsIHN0cnVjdAoJZGVidWdfbWV0aG9kX3ZhcmlhbnRfcywgc3RydWN0IGRlYnVnX3R5cGVfcyk6IFJlbmFtZSBzdHJ1Y3QgZnJvbQoJYXZvaWQgbmFtZSBjb2xsaXNpb24uCgkqIGRlYnVnLmg6IFVzZSBuZXcgc3RydWN0IG5hbWVzLgoJKiBkd2FyZi5jOiBBZGQgY2FzdHMuCgkoZnJlZV9kZWJ1Z19tZW1vcnkpOiBDaGFuZ2UgbG9vcCBjb3VudGVyIHZhcmlhYmxlIGEgdG8gaW50LgoJKiBpZWVlLmM6IEFkZCBjYXN0cy4KCShlbnVtIGllZWVfdmFyX2tpbmQpOiBNb3ZlIHRvIHRvcCBsZXZlbC4KCShpZWVlX2NsYXNzX2Jhc2VjbGFzcyk6IFJlbmFtZSBwYXJhbWV0ZXIgdmlydHVhbCB0byBpc192aXJ0dWFsLgoJKGllZWVfY2xhc3NfbWV0aG9kX3Zhcik6IFJlbmFtZSB2YXJpYWJsZSB2aXJ0dWFsIHRvIGlzX3ZpcnR1YWwuCgkqIG5tLmM6IEFkZCBjYXN0cy4KCSogb2JqY29weS5jOiBBZGQgY2FzdHMuCgkoY29weV9hcmNoaXZlKTogUmVuYW1lIHZhcmlhYmxlIGRlbGV0ZSB0byBkZWwuCgkqIG9iamR1bXAuYzogQWRkIGNhc3RzLgoJKGR1bXBfZHdhcmZfc2VjdGlvbik6IENoYW5nZSBsb29wIGNvdW50ZXIgdmFyaWFibGUgaSB0byBpbnQuCgkqIHByZGJnLmM6IEFkZCBjYXN0cy4KCShwcl9jbGFzc19iYXNlY2xhc3MsdGdfY2xhc3NfYmFzZWNsYXNzKTogUmVuYW1lIHBhcmFtZXRlcnMgdmlydHVhbAoJdG8gaXNfdmlydHVhbC4KCSogcmVhZGVsZi5jOiBBZGQgY2FzdHMuCgkoc3RydWN0IGlhNjRfdW53X3RhYmxlX2VudHJ5LHN0cnVjdCBocHBhX3Vud190YWJsZV9lbnRyeSk6IE1vdmUgdG8KCXRvcCBsZXZlbC4KCSogc2l6ZS5jOiBBZGQgY2FzdHMuCgkqIHN0YWJzLmMgKHBhcnNlX3N0YWJfdHlwZSwgcGFyc2Vfc3RhYl9yYW5nZV90eXBlLAoJKHBhcnNlX3N0YWJfY3BwX2FiYnJldik6IFJlbmFtZSBwYXJhbWV0ZXIgZnJvbSB0eXBlbmFtZSB0bwoJdHlwZV9uYW1lLgoJKHBhcnNlX3N0YWJfYmFzZWNsYXNzZXMpOiBSZW5hbWUgdmFyaWFibGUgdmlydHVhbCB0byBpc192aXJ0dWFsLgoJKiBzdHJpbmdzLmM6IEFkZCBjYXN0cy4KCSogd3JzdGFicy5jIChzdGFiX2NsYXNzX2Jhc2VjbGFzcyk6IFJlbmFtZSBwYXJhbWV0ZXIgdmlydHVhbCB0bwoJaXNfdmlydHVhbC4KCjIwMDktMDktMDkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgMTA0Nzg6CglyZWFkZWxmLmMgKGdldF9lbGZfc2VjdGlvbl9mbGFncyk6IEFkZCBzdXBwb3J0IGZvciBTSEZfRVhDTFVERSBhbmQKCVNIRl9PUkRFUkVELgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogV2FybiBhYm91dCBvdXQgb2YgcmFuZ2Ugc2hfbGluawoJdmFsdWVzLiAgV2hlbiBkaXNwbGF5aW5nIGRldGFpbGVkIHNlY3Rpb24gaGVhZGVyIGluZm9ybWF0aW9uCglhbm5vdGUgdGhlIFNITl9CRUZPUkUgYW5kIFNITl9BRlRFUiB2YWx1ZXMuCgoyMDA5LTA5LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZHdhcmYuYyAoYnl0ZV9nZXRfbGl0dGxlX2VuZGlhbik6IEhhbmRsZSBzaXplIG9mIDMuCgkoYnl0ZV9nZXRfYmlnX2VuZGlhbik6IExpa2V3aXNlLgoJKiByZWFkZWxmLmMgKGJ5dGVfcHV0X2xpdHRsZV9lbmRpYW4pOiBMaWtld2lzZS4KCShieXRlX3B1dF9iaWdfZW5kaWFuKTogTGlrZXdpc2UuCgkoaXNfMjRiaXRfYWJzX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKGlzX25vbmVfcmVsb2MpOiBGb3JtYXR0aW5nLgoJKGFwcGx5X3JlbG9jYXRpb25zKTogVXNlIGlzXzI0Yml0X2Fic19yZWxvYy4gIEhhbmRsZSBwaiBhbmQgeHRlbnNhCglyZWxvYyBwZWN1bGlhcml0eS4KCjIwMDktMDktMDcgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoaXNfbm9uZV9yZWxvYyA8RU1fWFRFTlNBX09MRD4sIGlzX25vbmVfcmVsb2MgPEVNX1hURU5TQT4pOgoJTmV3LgoKMjAwOS0wOS0wNyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgoKCSogZHdhcmYuYyAocHJvY2Vzc19kZWJ1Z19pbmZvKTogU3VwcG9ydCBzZWN0aW9uIHBhZGRpbmcgYWJicmV2IGNvZGVzLgoKMjAwOS0wOS0wNyAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIHBvL2JpbnV0aWxzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDktMDktMDUgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChzeXNkdW1wLm8pOiBEZXBlbmQgb24gc3lzcm9mZi5jLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDktMDktMDUgIE1hcnRpbiBUaHVyZXNzb24gIDxtYXJ0aW5AbXRtZS5vcmc+CgoJKiBpZWVlLmMgKGllZWVfcmVhZF9jeHhfbWlzYywgaWVlZV9yZWFkX2N4eF9jbGFzcywKCWllZWVfcmVhZF9yZWZlcmVuY2UpOiBSZW5hbWUgdmFyaWFibGVzIG5hbWVkIGNsYXNzIHRvIGN4eGNsYXNzLgoKMjAwOS0wOS0wNCAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIEJSQU5DSEVTOiBBZGQgYmludXRpbHMtMl8yMC1icmFuY2guCgoyMDA5LTA5LTA0ICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogTkVXUzogQWRkIG1hcmtlciBmb3IgMi4yMC4KCjIwMDktMDktMDQgIFRpbW8gS3JldXplciAgPHRpbW8ua3JldXplckB3ZWIuZGU+CgoJKiBkbGx0b29sLmMgKGRlbGF5aW1wX25hbWUpOiBBZGQgbmV3IGdsb2JhbCB2YXJpYWJsZQoJKHVzYWdlLCBsb25nX29wdGlvbnMsIG1haW4pOiBBZGQgbmV3IG9wdGlvbiAiLXkiIC8gIi0tb3V0cHV0LWRlbGF5bGliIgoJKHN0cnVjdCBtYWMpOiBBZGQgZmllbGRzIGhvd19kbGp0YWJfc2l6ZSwgaG93X2RsanRhYl9yb2ZmMSwKCWhvd19kbGp0YWJfcm9mZjIsIGhvd19kbGp0YWIsIHRyYW1wb2xpbmUuCgkoaTM4Nl9kbGp0YWIpOiBBZGQgYmluYXJ5IHN0dWIgZm9yIHg4NiBkZWxheSBpbXBvcnQuCgkoaTM4Nl90cmFtcG9saW5lKTogQWRkIHRleHQgYXNzZW1ibHkgc3R1YiBmb3IgeDg2IGRlbGF5IGltcG9ydC4KCShtdGFibGUpOiBBZGQgZGVsYXkgaW1wb3J0IGRhdGEgZm9yIE0zODYgYW5kIE1YODYgb25seS4KCShtYWtlX2RlbGF5X2hlYWQpOiBOZXcgZnVuY3Rpb24uCgkobWFrZV9vbmVfbGliX2ZpbGUpOiBOZXcgYXJnIGRlbGF5IGNyZWF0ZXMgZGVsYXktbG9hZCBpbXBvcnQgc3R1Yi4KCShnZW5fbGliX2ZpbGUpOiBOZXcgYXJnIGRlbGF5IGxpa2V3aXNlLgoJKEhPV19KVEFCLCBIT1dfSlRBQl9TSVpFLCBIT1dfSlRBQl9ST0ZGKTogTmV3IGFyZyBkZWxheSBsaWtld2lzZS4KCShIT1dfSlRBQl9ST0ZGMiwgSE9XX0pUQUJfUk9GRjMpOiBOZXcgbWFjcm9zIGZvciBkZWxheSBpbXBvcnQuCgkobWFrZV90YWlsKTogQ29udmVydCBoYXJkIFRBQlMgZW1iZWRkZWQgaW4gc3RyaW5ncyB0byAiXHQiIGVzY2FwZXMuCgkqIE5FV1M6IE1lbnRpb24gbmV3IGZlYXR1cmUuICBBbHNvIGZpeCB3aGl0ZXNwYWNlLgoJKiBkb2MvYmludXRpbHMudGV4aTogVXBkYXRlZCBkbGx0b29sIGRvY3VtZW50YXRpb24uCgoyMDA5LTA5LTAyICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogY29uZmlndXJlLmNvbTogRG8gbm90IGNvcHkgbWFrZWZpbGUudm1zLWluIHRvIG1ha2VmaWxlLnZtcwoJKiBtYWtlZmlsZS52bXMtaW46IFJlbmFtZWQgdG8uLi4KCSogbWFrZWZpbGUudm1zOiAuLi4gdGhpcyB1c3VhbCBuYW1lIGFzIGl0IGlzIG5vdCBwcm9jZXNzZWQgYW55bW9yZS4KCVJlbW92ZSBXUklURV9ERUJVR19PQkpTICh1bnVzZWQpIGFuZCByZW9yZGVyIG9iamVjdCBmaWxlcyBmb3IKCW9iamR1bXAuZXhlLgoKMjAwOS0wOS0wMSAgUmFsZiBXaWxkZW5odWVzICA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KCgkqIE1ha2VmaWxlLmFtIChhcnBhcnNlLm8sIGFybGV4Lm8sIHN5c3JvZmYubywgZGVmcGFyc2UubykKCShkZWZsZXgubywgbmxtaGVhZGVycy5vLCByY3BhcnNlLm8sIG1jcGFyc2Uubyk6IFN1cHBseSBjb3JyZWN0Cglzb3VyY2UgZmlsZSBuYW1lIGZvciBnZW5lcmF0ZWQgZmlsZXMgd2hpY2ggbWF5IGJlIGluICQoc3JjZGlyKS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTA5LTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiB2ZXJzaW9uLmMgKHByaW50X3ZlcnNpb24pOiBDaGFuZ2UgdG8gIkNvcHlyaWdodCAyMDA5Ii4KCjIwMDktMDktMDEgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBtYWtlZmlsZS52bXMtaW46IFJlbW92ZSB1bnVzZWQgVkVSU0lPTiB2YXJpYWJsZS4gIFJlbW92ZSB1bnVzZWQKCWRlcGVuZGVuY2llcy4KCSogY29uZmlndXJlLmNvbTogUG9ydGVkIHRvIEl0YW5pdW0gVk1TLiAgQ3JlYXRlIGJ1aWxkLmNvbSBEQ0wgc2NyaXB0LgoKMjAwOS0wOC0yOSAgTWFydGluIFRodXJlc3NvbiAgPG1hcnRpbkBtdG1lLm9yZz4KCgkqIG5sbWNvbnYuYyAobWFpbik6IFJlbmFtZSB2YXJpYWJsZSBuZXcgdG8gbmV3X25hbWUuCgoyMDA5LTA4LTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoc3lzaW5mbyQoRVhFRVhUX0ZPUl9CVUlMRCkpOiBSZXBsYWNlCglDRkxBR1MvTERGTEFHUyB3aXRoIENGTEFHU19GT1JfQlVJTEQvTERGTEFHU19GT1JfQlVJTEQuCgkoc3lzbGV4Lm8pOiBMaWtld2lzZS4KCShzeXNpbmZvLm8pOiBMaWtld2lzZS4KCShiaW4yYyQoRVhFRVhUX0ZPUl9CVUlMRCkpOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoKMjAwOS0wOC0yNyAgRGF2ZSBLb3JuICA8ZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20+CgoJKiBkb2MvYmludXRpbHMudGV4aSAoLS1vbmx5LWtlZXAtZGVidWcpOiBSZWxvY2F0ZSBzdHJheSBwYXJhIGhlcmUgLi4uCgkoLS1zdWJzeXN0ZW0pOiAuLi4gZnJvbSBoZXJlLgoKMjAwOS0wOC0yNCAgQ2FyeSBDb3V0YW50ICA8Y2NvdXRhbnRAZ29vZ2xlLmNvbT4KCgkqIG9iamR1bXAuYyAoZmluZF9zeW1ib2xfZm9yX2FkZHJlc3MpOiBBdm9pZCBjb3N0bHkgY2FsbCB0bwoJYmZkX29jdGV0c19wZXJfYnl0ZS4KCjIwMDktMDgtMjQgIFJhbGYgV2lsZGVuaHVlcyAgPFJhbGYuV2lsZGVuaHVlc0BnbXguZGU+CgoJKiBNYWtlZmlsZS5hbSAoYW1fX3NraXBsZXgsIGFtX19za2lweWFjYyk6IE5ldy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTA4LTIzICBSYWxmIFdpbGRlbmh1ZXMgIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgoKCSogTWFrZWZpbGUuYW0gKHN5c2xleC5vKTogRGVwZW5kIG9uIHN5c2luZm8uaCBjb25maWcuaC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTA4LTIyICBSYWxmIFdpbGRlbmh1ZXMgIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgoKCSogTWFrZWZpbGUuYW0gKEFNX0NQUEZMQUdTKTogUmVuYW1lZCBmcm9tIC4uLgoJKElOQ0xVREVTKTogLi4uIHRoaXMuCgkoYmluMmMkKEVYRUVYVF9GT1JfQlVJTEQpOiBBZGp1c3QgcnVsZS4KCShpbnN0YWxsY2hlY2stbG9jYWwpOiBSZW5hbWVkIGZyb20gLi4uCgkoaW5zdGFsbGNoZWNrKTogLi4uIHRoaXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogTWFrZWZpbGUuYW0gKEFVVE9NQUtFX09QVElPTlMpOiBSZW1vdmUgY3lnbnVzLCBhZGQgbm8tZGlzdCBhbmQKCWZvcmVpZ24uCgkoTUtERVAsIENMRUFORklMRVMpOiBSZW1vdmUgbm93LXVubmVlZGVkIHZhcmlhYmxlcy4KCShERVAsIERFUDEsIGRlcC5zZWQsIGRlcCwgZGVwLWluLCBkZXAtYW0pOiBSZW1vdmUuCgkobWtkZXAgc2VjdGlvbik6IFJlbW92ZS4KCShCVUlMVF9TT1VSQ0VTKTogTmV3IHZhcmlhYmxlLCBsaXN0ICQoR0VORVJBVEVEX0hGSUxFUykuCgkoRVhUUkFfYXJfU09VUkNFUyk6IE5ldywgbGlzdCAkKENGSUxFUykuCgkoc3lzbGV4Lm8pOiBEZXBlbmQgb24gc3lzbGV4LmMuCgkoc3lzaW5mby5vKTogRGVwZW5kIG9uIHN5c2luZm8uYy4KCShhcnBhcnNlLmgsIGRlZnBhcnNlLmgsIG5sbWhlYWRlcnMuaCByY3BhcnNlLmggbWNwYXJzZS5oKToKCVJlbW92ZSBkZXBlbmRlbmNpZXMsIG5vdyB0cmFja2VkIGJ5IGF1dG9tYWtlLgoJKHNyY29udi5vKTogRGVwZW5kIG9uIHN5c3JvZmYuYy4KCShvYmpkdW1wLm8sIGFycGFyc2UubywgYXJsZXgubywgc3lzcm9mZi5vLCBkZWZwYXJzZS5vLCBkZWZsZXgubykKCShubG1oZWFkZXIubywgcmNwYXJzZS5vLCBtY3BhcnNlLm8sIHJjbGV4Lm8sIG1jbGV4Lm8sIGRsbHRvb2wubykKCShyZXNjb2ZmLm8sIG5sbWNvbnYubyk6IFJld3JpdGUgdXNpbmcgYXV0b21ha2Utc3R5bGUgZGVwZW5kZW5jeQoJdHJhY2tpbmcgcnVsZXM7IG9ubHkgbGlzdCB0aGUgZGVwZW5kZW5jeSB1cG9uIHRoZSBwcmltYXJ5IHNvdXJjZQoJZmlsZSwgYnV0IG5vIGluY2x1ZGVkIGhlYWRlcnMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogTWFrZWZpbGUuYW0gKGluc3RhbGwtcGRmLCBpbnN0YWxsLXBkZi1yZWN1cnNpdmUsIGluc3RhbGwtaHRtbCkKCShpbnN0YWxsLWh0bWwtcmVjdXJzaXZlKTogUmVtb3ZlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmFtIChwZGZfX3N0cmlwX2RpciwgaW5zdGFsbC1wZGYsIGluc3RhbGwtcGRmLWFtKQoJKGh0bWxfX3N0cmlwX2RpciwgaW5zdGFsbC1odG1sLCBpbnN0YWxsLWh0bWwtYW0pOiBSZW1vdmUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBhY2xvY2FsLm00OiBMaWtld2lzZS4KCSogY29uZmlnLmluOiBMaWtld2lzZS4KCSogY29uZmlndXJlOiBMaWtld2lzZS4KCSogZG9jL01ha2VmaWxlLmluOiBMaWtld2lzZS4KCjIwMDktMDgtMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGlzXzMyYml0X2Fic19yZWxvYyk6IFRyZWF0IFJfUEFSSVNDX1NFQ1JFTDMyIGFzIGEKCTMyLWJpdCBhYnNvbHV0ZSByZWxvYyBmb3IgdGhlIHB1cnBvc2VzIG9mIHByb2Nlc3NpbmcgZGVidWcKCXNlY3Rpb25zLgoKMjAwOS0wOC0xMCAgRGFuaWVsIEd1dHNvbiAgPGRndXRzb25AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJlYWRlbGYuYyAoZ2V0X2FybV9zZWN0aW9uX3R5cGVfbmFtZSk6IEFkZGVkIHN1cHBvcnQgZm9yCgluZXcgc2VjdGlvbnMgaGVhZGVycy4KCjIwMDktMDgtMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBiaW51dGlscy8xMDM2NAoJKiBvYmpjb3B5LmMgKHN0cmlwX21haW4pOiBDaGVjayByZXR1cm4gZnJvbSBzbWFydF9yZW5hbWUuCgkoY29weV9tYWluKTogTGlrZXdpc2UuCgoyMDA5LTA3LTI3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDEwNDEzCgkqIG9iamR1bXAuYyAoZHVtcF9zZWN0aW9uX2hlYWRlcik6IFNraXAgc2VjdGlvbnMgdGhhdCB3ZSBhcmUKCWlnbm9yaW5nLgoKMjAwOS0wNy0yNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogcmVhZGVsZi5jIChndWVzc19pc19yZWxhKTogSGFuZGxlIEVNX0wxT00uCgkoZHVtcF9yZWxvY2F0aW9ucyk6IExpa2V3aXNlLgoJKGdldF9tYWNoaW5lX25hbWUpOiBMaWtld2lzZS4KCShnZXRfc2VjdGlvbl90eXBlX25hbWUpOiBMaWtld2lzZS4KCShnZXRfZWxmX3NlY3Rpb25fZmxhZ3MpOiBMaWtld2lzZS4KCShnZXRfc3ltYm9sX2luZGV4X3R5cGUpOiBMaWtld2lzZS4KCShpc18zMmJpdF9hYnNfcmVsb2MpOiBMaWtld2lzZS4KCShpc18zMmJpdF9wY3JlbF9yZWxvYyk6IExpa2V3aXNlLgoJKGlzXzY0Yml0X2Fic19yZWxvYyk6IExpa2V3aXNlLgoJKGlzXzY0Yml0X3BjcmVsX3JlbG9jKTogTGlrZXdpc2UuCgkoaXNfbm9uZV9yZWxvYyk6IExpa2V3aXNlLgoKMjAwOS0wNy0yMyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9zeW1ib2xfYmluZGluZyk6IEZvciBMaW51eCB0YXJnZXRlZCBmaWxlcyByZXR1cm4KCVVOSVFVRSBmb3Igc3ltYm9scyB3aXRoIHRoZSBTVEJfR05VX1VOSVFVRSBiaW5kaW5nLgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgdGhlIG1lYW5pbmcgb2YgdGhlICd1JyBzeW1ib2wKCWJpbmRpbmcgaW4gdGhlIG91dHB1dCBvZiBubSBhbmQgb2JqZHVtcCAtLXN5bXMuCgoyMDA5LTA3LTIwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBORVdTOiBNZW50aW9uIC0taW5zbi13aWR0aC4KCgkqIG9iamR1bXAuYyAoaW5zbl93aWR0aCk6IE5ldy4KCSh1c2FnZSk6IERpc3BsYXkgLS1pbnNuLXdpZHRoLgoJKG9wdGlvbl92YWx1ZXMpOiBBZGQgT1BUSU9OX0lOU05fV0lEVEguCgkobG9uZ19vcHRpb25zKTogQWRkIC0taW5zbi13aWR0aC4KCShkaXNhc3NlbWJsZV9ieXRlcyk6IEhhbmRsZSBpbnNuX3dpZHRoLgoJKG1haW4pOiBIYW5kbGUgT1BUSU9OX0lOU05fV0lEVEguCgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgLS1pbnNuLXdpZHRoLgoKMjAwOS0wNy0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGR3YXJmLmMgKGRpc3BsYXlfZGVidWdfbGluZXMpOiBJZiBkb19kZWJ1Z19saW5lcyBoYXMgbm90IGJlZW4KCXNldCB0aGVuIGRlZmF1bHQgdG8gZGlzcGxheWluZyByYXcgLmRlYnVnX2xpbmUgc2VjdGlvbiBjb250ZW50cy4KCjIwMDktMDctMTQgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KCglTdXBwb3J0IHVub3JkZXJlZCAuZGVidWdfaW5mbyByZWZlcmVuY2VzIHRvIC5kZWJ1Z19yYW5nZXMuCgkqIGR3YXJmLmMgKHN0cnVjdCByYW5nZV9lbnRyeSwgcmFuZ2VfZW50cnlfY29tcGFyKTogTmV3LgoJKGRpc3BsYXlfZGVidWdfcmFuZ2VzKTogUmVtb3ZlIHZhcmlhYmxlcyBsYXN0X29mZnNldCwgZmlyc3QsIGosCglzZWVuX2ZpcnN0X29mZnNldCwgdXNlX2RlYnVnX2luZm8gYW5kIG5leHQuICBOZXcgdmFyaWFibGVzCglyYW5nZV9lbnRyaWVzIGFuZCByYW5nZV9lbnRyeV9maWxsLiAgQ3JlYXRlIHRoZSBzb3J0ZWQgY29weQoJcmFuZ2VfZW50cmllcy4gIFJlbW92ZSB0aGUgRklYTUUgZXJyb3Igb24gZGV0ZWN0ZWQgdW5vcmRlcmVkIHJlZmVyZW5jZXMuCgkqIGR3YXJmLmggKGRlYnVnX2luZm8gPHJhbmdlX2xpc3RzPik6IE5ldyBjb21tZW50LgoKMjAwOS0wNy0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiAxMDM4MAoJKiBSRUFETUU6IERvY3VtZW50IHVzZSBvZiBMREZMQUdTPSItLXN0YXRpYyIuCgoyMDA5LTA3LTEwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDktMDctMTAgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChkd2FyZi5vKTogUmVmZXIgdG8gZHdhcmYyLmgsIG5vdCBlbGYvZHdhcmYyLmguCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoJKiBkd2FyZi5jOiBJbmNsdWRlIGR3YXJmMi5oLCBub3QgZWxmL2R3YXJmMi5oLgoKMjAwOS0wNy0wNiAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIG9iamR1bXAuYyAoZHVtcF9kd2FyZl9zZWN0aW9uKTogSGFuZGxlIC5laF9mcmFtZSBsaWtlIG90aGVyIGR3YXJmCglzZWN0aW9ucy4KCSogZHdhcmYuaCAoc3RydWN0IGR3YXJmX3NlY3Rpb25fZGlzcGxheSk6IFJlbW92ZSBlaF9mcmFtZSBmaWVsZC4KCSogZHdhcmYuYyAoZGVidWdfZGlzcGxheXMpOiBBZGp1c3QgZm9yIHJlbW92ZWQgZmllbGQuCgoyMDA5LTA3LTAzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGR3YXJmLmMgKGRlY29kZV9sb2NhdGlvbl9leHByZXNzaW9uKTogSGFuZGxlIERXX09QX3N0YWNrX3ZhbHVlCglhbmQgRFdfT1BfaW1wbGljaXRfdmFsdWUuCgoyMDA5LTA3LTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDY3MTQKCSogcmNsZXguYyAoaGFuZGxlX3F1b3Rlcyk6IERvIG5vdCBjb21wbGFpbiBhYm91dCB3aGl0ZXNwYWNlCglzZXBhcmF0aW5nIHF1b3RlZCBzdHJpbmdzLgoJKHJjbGV4X3N0cmluZyk6IElnbm9yZSB3aGl0ZXNwYWNlIHdoZW4gbG9va2luZyBmb3IgYSBuZXcgb3BlbmluZwoJcXVvdGUgZm9sbG93aW5nIGEgY2xvc2luZyBxdW90ZS4KCjIwMDktMDYtMjcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBiaW51dGlscy8xMDMyMQoJKiBidWNvbW0uYyAoZ2V0X2ZpbGVfc2l6ZSk6IFJldHVybiAtMSBvbiBlcnJvci4KCgkqIG9iamNvcHkuYyAoY29weV9maWxlKTogUmVwb3J0IGVtcHR5IGZpbGUuCgoyMDA5LTA2LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZHdhcmYuYyAoZGlzcGxheV9kZWJ1Z19saW5lc19yYXcpOiBJbmNsdWRlIHRoZSBuYW1lIG9mIHRoZQoJc2VjdGlvbiBpbiB3YXJuaW5nIG1lc3NhZ2UuCgkoc3RydWN0IGRlYnVnX2Rpc3BsYXkpOiBFbmFibGUgcmVsb2MgcHJvY2Vzc2luZyBmb3IgLmRlYnVnX2xpbmUKCWFuZCAuZGVidWdfcmFuZ2VzIHNlY3Rpb25zLgoKCSogcmVhZGVsZi5jOiBBZGQgLS1yZWxvY2F0ZWQtZHVtcCBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGR1bXAgdGhlCglyZWxvY2F0ZWQgY29udGVudHMgb2YgYSBzcGVjaWZpZWQgc2VjdGlvbi4KCShyZXF1ZXN0X2R1bXApOiBOZXcgZnVuY3Rpb24uCgkocGFyc2VfYXJncyk6IFVzZSBpdC4KCShkdW1wX3NlY3Rpb25fYXNfYnl0ZXMpOiBBZGQgcGFyYW1ldGVyIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCgljb250ZW50cyBzaG91bGQgYmUgcmVsb2NhdGVkLgoJKHRhcmdldF9zcGVjaWZpY19yZWxvY19oYW5kbGluZyk6IEFkZCBjb2RlIGZvciBhIFJfTU4xMDMwMF8xNgoJcmVsb2MgZm91bmQgYWZ0ZXIgYSBSX01OMTAzMDBfU1lNX0RJRkYgcmVsb2MuCgkoZGVidWdfYXBwbHlfcmVsb2NhdGlvbnMpOiBSZW5hbWUgdG8gYXBwbHlfcmVsb2NhdGlvbnMuCgkoZ2V0X3NlY3Rpb25fY29udGVudHMpOiBOZXcgZnVuY3Rpb24uICBSZXBsYWNlcyBjb21tb24gY29kZSBmb3VuZAoJaW4gZHVtcF9zZWN0aW9uX2FzX3N0cmluZ3MgYW5kIGR1bXBfc2VjdGlvbl9hc19ieXRlcy4KCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uLgoJKiBORVdTOiBNZW50aW9uIHRoZSBuZXcgZmVhdHVyZS4KCjIwMDktMDYtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKHRhcmdldF9zcGVjaWZpY19yZWxvY19oYW5kbGluZyk6IE5ldyBmdW5jdGlvbjoKCVByb2Nlc3NlcyByZWxvY3MgaW4gYSB0YXJnZXQgc3BlY2lmaWMgbWFubmVyLgoJKGRlYnVnX2FwcGx5X3JlbG9jYXRpb25zKTogVXNlIHRoZSBuZXcgZnVuY3Rpb24uCgkqIGR3YXJmLmMgKGRpc3BsYXlfZGVidWdfbG9jKTogRW5kIHRoZSBkdW1wIHdpdGggYSBibGFuayBsaW5lLgoJKHN0cnVjdCBkZWJ1Z19kaXNwbGF5KTogRW5hYmxlIHJlbG9jIHByb2Nlc3NpbmcgZm9yIC5kZWJ1Z19hcmFuZ2VzCglhbmQgLmRlYnVnX2xvYyBzZWN0aW9ucy4KCjIwMDktMDYtMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhci5jICh1c2FnZSk6IERvIG5vdCB1c2UgI2lmZGVmIGluc2lkZSBfKCIuLi4pLgoJKiBubS5jICh1c2FnZSk6IExpa2V3aXNlLgoKMjAwOS0wNi0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiAxMDI4OAoJKiBvYmpkdW1wLmMgKGRpc2Fzc2VtYmxlX2J5dGVzKTogU2V0IHRoZQoJVVNFUl9TUEVDSUZJRURfTUFDSElORV9UWVBFIGZsYWcgaW4gdGhlIGRpc2Fzc2VtYmxlX2luZm8gc3RydWN0dXJlCglpZiB0aGUgdXNlciBoYXMgaW52b2tlZCB0aGUgLW0gc3dpdGNoLgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgdGhlIGFkZGl0aW9uYWwgYmVoYXZpb3VyIG9mCglvYmpkdW1wJ3MgLW0gc3dpdGNoIGZvciBBUk0gdGFyZ2V0cy4KCjIwMDktMDYtMTggIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoKCSogY29uZmlndXJlLmluOiBNZXJnZSBjZWdjYyBhbmQgbWluZ3czMmNlIHRhcmdldCBuYW1lIGNoYW5nZXMgZnJvbQoJQ2VHQ0MgcHJvamVjdC4KCjIwMDctMTItMjUgIFBlZHJvIEFsdmVzICA8cGVkcm9fYWx2ZXNAcG9ydHVnYWxtYWlsLnB0PgoKCSogY29uZmlndXJlLmluOiBBZGQgYXJtKi0qLWNlZ2NjKiBhbmQgYXJtKi0qLW1pbmd3MzJjZSogdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOS0wNi0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiAxMDI2MwoJKiBvYmpkdW1wLmMgKGRpc2Fzc2VtYmxlX2J5dGVzKTogU2V0IHRoZSBESVNBU1NFTUJMRV9EQVRBIGJpdCBpbgoJdGhlIGZsYWdzIGZpZWxkIG9mIHRoZSBkaXNhc3NlbWJsZV9pbmZvIHN0cnVjdHVyZSBpZiB0aGUgLUQgc3dpdGNoCglpcyBpbiBvcGVyYXRpb24uCgoyMDA5LTA2LTEyICBIb21lciBYaW5nICA8aG9tZXIueGluZ0B5YWhvby5jb20+CgoJKiBORVdTOiBNZW50aW9uIG5ldyBmZWF0dXJlIGFkZGVkIHRvIGdwcm9mLgoKMjAwOS0wNi0xMiAgSm9obiBSZWlzZXIgIDxqcmVpc2VyQEJpdFdhZ29uLmNvbT4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19zeW1ib2xfdGFibGUpOiBTZXQgZ251YnVja2V0cyB0byBOVUxMIGFmdGVyCglmcmVlaW5nIGl0IGFuZCBiZWZvcmUgcmV0dXJuaW5nLgoKMjAwOS0wNi0xMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3Nfc3ltYm9sX3RhYmxlKTogRG9uJ3QgcmV0dXJuIGVhcmx5IGlmCgkuaGFzaC8uZ251Lmhhc2ggaXMgZW1wdHkvdW51c2FibGUgYW5kIG5vdCAtRC4KCjIwMDktMDYtMDkgIFRvbSBCcmFtZXIgIDx0amJAcG9zdHByby5uZXQ+CgoJUFIgMTAxNjUKCSogd2luZHVuaS5jICh3aW5kX011bHRpQnl0ZVRvV2lkZUNoYXIpOiBEbyBub3QgcGFzcyBNQl9QUkVDT01QT1NFRAoJdG8gTXVsdGlCeXRlVG9XaWRlQ2hhciB3aGVuIHVzaW5nIHRoZSBDUF9VVEY4IG9yIENPX1VURjcgdHlwZXMuCgoyMDA5LTA2LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc3RyaW5ncy5jIChtYWluKTogRGVsYXkgcGFyc2luZyBvZiBkZWNpbWFsIGRpZ2l0cy4KCjIwMDktMDYtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkZXAtaW4uc2VkOiBEb24ndCB1c2UgXG4gaW4gcmVwbGFjZW1lbnQgcGFydCBvZiBzIGNvbW1hbmQuCgkqIE1ha2VmaWxlLmFtIChERVAxKTogTENfQUxMIGZvciB1bmlxLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOS0wNi0wMyAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgbXlzZWxmIGFzIE1hY2gtTyBtYWludGFpbmVyLgoKMjAwOS0wNi0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiAxMDE5OQoJKiBkb2MvYmludXRpbHMudGV4aSAobm0pOiBDb3JyZWN0IC1TIGRlc2NyaXB0aW9uLgoKMjAwOS0wNS0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2RhLnBvOiBVcGRhdGVkIERhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDktMDUtMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGRpc3BsYXlfZGVidWdfc2VjdGlvbik6IERvIG5vdCBkaXNwbGF5IGRlYnVnIHNlY3Rpb25zCgl3aXRoIHRoZSBOT0JJVFMgc2VjdGlvbiB0eXBlLgoKMjAwOS0wNS0yNyAgUmFmYWVsIEF2aWxhIGRlIEVzcGluZG9sYSAgPGVzcGluZG9sYUBnb29nbGUuY29tPgoKCSogYWNsb2NhbC5tNDogSW5jbHVkZSAuLi9jb25maWcvcGx1Z2lucy5tNC4KCSogY29uZmlndXJlLmluOiBVc2UgQUNfUExVR0lOUy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOS0wNS0yNyAgUmFmYWVsIEF2aWxhIGRlIEVzcGluZG9sYSAgPGVzcGluZG9sYUBnb29nbGUuY29tPgoKCSogYXIuYyAobWFpbik6IENhbGwgYmZkX3BsdWdpbl9zZXRfcHJvZ3JhbV9uYW1lLgoJKiBubS5jIChtYWluKTogQ2FsbCBiZmRfcGx1Z2luX3NldF9wcm9ncmFtX25hbWUuCgoyMDA5LTA1LTI3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc3lzZHVtcC5jICh0YWIpOiBVc2UgcHV0cyByYXRoZXIgdGhhbiB0d28gcHJpbnRmcy4KCjIwMDktMDUtMjYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9pZC5wbzogVXBkYXRlZCBJbmRvbmVzaWFuIHRyYW5zbGF0aW9uLgoJKiBwby9iaW51dGlscy5wb3Q6IFVwZGF0ZWQgdGVtcGxhdGUgZmlsZS4KCjIwMDktMDUtMjYgIFJhZmFlbCBBdmlsYSBkZSBFc3BpbmRvbGEgIDxlc3BpbmRvbGFAZ29vZ2xlLmNvbT4KCgkqIGFyLmM6IEluY2x1ZGUgcGx1Z2luLmguCgkobWFpbik6IEhhbmRsZSB0aGUgLS1wbHVnaW4gb3B0aW9uLgoJKiBubS5jOiBJbmNsdWRlIHBsdWdpbi5oLgoJKE9QVElPTl9QTFVHSU4pOiBOZXcuCgkobG9uZ19vcHRpb25zKTogQWRkIHBsdWdpbi4KCShtYWluKTogSGFuZGxlIE9QVElPTl9QTFVHSU4uCgkqIE5FV1M6IE1lbnRpb24gIHRoZSBuZXcgZmVhdHVyZS4KCSogZG9jL2JpbnV0aWxzOiBEb2N1bWVtZW50IHRoZSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgkqIGNvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIC0tZW5hYmxlLXBsdWdpbnMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDktMDUtMjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkZXAtaW4uc2VkOiBPdXRwdXQgb25lIGZpbGVuYW1lIHBlciBsaW5lIHdpdGggYWxsIGxpbmVzIGhhdmluZwoJY29udGludWF0aW9uIGJhY2tzbGFzaC4gIFByZWZpeCBmaXJzdCBsaW5lIHdpdGggIkEiLCBmb2xsb3dpbmcKCWxpbmVzIHdpdGggIkIiLgoJKiBNYWtlZmlsZS5hbSAoREVQKTogRG9uJ3QgdXNlIGRlcC5zZWQgaGVyZS4KCShERVAxKTogUnVuICRNS0RFUCBvbiBzaW5nbGUgZmlsZXMsIHVzZSBkZXAuc2VkIGhlcmUgb24gZGVwZW5kZW5jaWVzLAoJc29ydCBhbmQgdW5pcS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTA1LTI1ICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogbWFrZWZpbGUudm1zLWluOiBGaXggQ0ZMQUdTLCBhZGQgYWRkcjJsaW5lLmV4ZSB0YXJnZXQuCgoJKiBjb25maWd1cmUuY29tOiBGaXggaXQ6IGhhbmRsZSBhbGxvY2EgYW5kIGRlZmluZSBUQVJHRVQgaW4gY29uZmlnLmguCgoyMDA5LTA1LTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDktMDUtMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBvYmpjb3B5LmMgKHNldF9sb25nX3NlY3Rpb25fbW9kZSk6IENoZWNrIGlucHV0X2JmZCBpcyBjb2ZmCgliZWZvcmUgYWNjZXNzaW5nIGNvZmYgc3BlY2lmaWMgZmllbGRzIG9mIGJmZC4KCjIwMDktMDUtMDkgIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoKCSogTUFJTlRBSU5FUlM6ICBBZGQgbXlzZWxmIGFzIFBFL0NPRkYgY28tbWFpbnRhaW5lci4KCjIwMDktMDUtMDggIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogd2luZHVuaS5jIChpY29udl9vbmVjaGFyKTogT25seSBkZWZpbmUgd2hlbiBIQVZFX0lDT05WCglpcyBkZWZpbmVkLCBidXQgbm90IHdoZW4gX19DWUdXSU5fXyBvciBfV0lOMzIgYXJlIGRlZmluZWQuCglTZWUgd2luZF9pY29udl9jcCBmb3IgY2FsbCBsb2dpYyBvZiB0aGlzIGxvY2FsIGZ1bnRpb24uCgoyMDA5LTA1LTA1ICBHdWlsbGF1bWUgRHVoYW1lbCAgPGd1aWxsYXVtZS5kdWhhbWVsQGdtYWlsLmNvbT4KCglQUiAxMDEwOQoJKiB3aW5kdW5pLmM6IFJlcGxhY2UgdGVzdCBvZiBIQVZFX0lDT05WX0ggd2l0aCBhIHRlc3Qgb2YKCUhBVkVfSUNPTlYuCgkoaWNvbnZfb25lY2hhcik6IFVzZSBJQ09OVl9DT05TVCBpbnN0ZWFkIG9mICJjb25zdCIuCgkod2luZF9NdWx0aUJ5dGVUb1dpZGVDaGFyKTogSW5pdGlhbGlzZSBsb2NhbCBzdHJpbmdzLgoKMjAwOS0wNC0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZHVtcF9yZWxvY2F0aW9ucyk6IERpc3BsYXkgYSByZWxvY2F0aW9uIGFnYWluc3QgYW4KCWlmdW5jIHN5bWJvbCBhcyBpZiBpdCB3ZXJlIGEgZnVuY3Rpb24gaW52b2NhdGlvbi4KCShnZXRfc3ltYm9sX3R5cGUpOiBIYW5kbGUgU1RUX0dOVV9JRlVOQy4KCjIwMDktMDQtMjkgIEFudGhvbnkgR3JlZW4gIDxncmVlbkBtb3hpZWxvZ2ljLmNvbT4KCgkqIE5FV1M6IFR3ZWFrIHZlcmlsb2cgc3VwcG9ydCBkZXNjcmlwdGlvbi4KCjIwMDktMDQtMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgkgICAgRGVuaXMgU2NoZXJiYWtvdiA8ZGVuaXNfc2NoZXJiYWtvdkB5YWhvby5jb20+CgoJKiByZWFkZWxmLmMgKHNsdXJwX2lhNjRfdW53aW5kX3RhYmxlKTogQ29ycmVjdCA2NC1iaXQgdW53aW5kIHRhYmxlCglyZWFkLCBhbmQgbWVyZ2Ugd2l0aCAzMi1iaXQgY2FzZS4KCjIwMDktMDQtMjcgIEFudGhvbnkgR3JlZW4gIDxncmVlbkBtb3hpZWxvZ2ljLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gdmVyaWxvZyBzdXBwb3J0IGFkZGVkIHRvIGJmZC4KCjIwMDktMDQtMjcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIG9iamNvcHkuYyAoY29weV9vYmplY3QpOiBDb3B5IHBlX29wdGhkciBiZWZvcmUgY2hhbmdpbmcgUEUKCXBhcmFtZXRlcnMuCgoyMDA5LTA0LTI0ICBDYXJ5IENvdXRhbnQgIDxjY291dGFudEBnb29nbGUuY29tPgoKCSogZHdhcmYuYyAocHJvY2Vzc19leHRlbmRlZF9saW5lX29wKTogQWRkIERXX0xORV9zZXRfZGlzY3JpbWluYXRvci4KCUFkZCBtaXNzaW5nIG5ld2xpbmVzIHRvIEhQIGV4dGVuc2lvbnMuCgoyMDA5LTA0LTE3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBvYmpjb3B5LmMgKHNldF9wZV9zdWJzeXN0ZW0pOiBSZXBsYWNlIGVmaS1yb20gd2l0aCBzYWwtcnRkLgoJKiBkb2MvYmludXRpbHMudGV4aTogTGlrZXdpc2UuCgoyMDA5LTA0LTE3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgYmludXRpbHMvMTAwNzQKCSogb2JqY29weS5jOiBJbmNsdWRlIGNvZmYvaTM4Ni5oIGFuZCBjb2ZmL3BlLmguCgkocGVfZmlsZV9hbGlnbm1lbnQpOiBOZXcuCgkocGVfaGVhcF9jb21taXQpOiBMaWtld2lzZS4KCShwZV9oZWFwX3Jlc2VydmUpOiBMaWtld2lzZS4KCShwZV9pbWFnZV9iYXNlKTogTGlrZXdpc2UuCgkocGVfc2VjdGlvbl9hbGlnbm1lbnQpOiBMaWtld2lzZS4KCShwZV9zdGFja19jb21taXQpOiBMaWtld2lzZS4KCShwZV9zdGFja19yZXNlcnZlKTogTGlrZXdpc2UuCgkocGVfc3Vic3lzdGVtKTogTGlrZXdpc2UuCgkocGVfbWFqb3Jfc3Vic3lzdGVtX3ZlcnNpb24pOiBMaWtld2lzZS4KCShwZV9taW5vcl9zdWJzeXN0ZW1fdmVyc2lvbik6IExpa2V3aXNlLgoJKHNldF9wZV9zdWJzeXN0ZW0pOiBMaWtld2lzZS4KCShjb252ZXJ0X2VmaV90YXJnZXQpOiBMaWtld2lzZS4KCShjb21tYW5kX2xpbmVfc3dpdGNoKTogQWRkIE9QVElPTl9GSUxFX0FMSUdOTUVOVCwKCU9QVElPTl9IRUFQLCBPUFRJT05fSU1BR0VfQkFTRSwgT1BUSU9OX1NFQ1RJT05fQUxJR05NRU5ULAoJT1BUSU9OX1NUQUNLIGFuZCBPUFRJT05fU1VCU1lTVEVNLgoJKGNvcHlfb3B0aW9ucyk6IExpa2V3aXNlLgoJKGNvcHlfdXNhZ2UpOiBBZGQgLS1maWxlLWFsaWdubWVudCwgLS1oZWFwLCAtLWltYWdlLWJhc2UsCgktLXNlY3Rpb24tYWxpZ25tZW50LCAtLXN0YWNrIGFuZCAtLXN1YnN5c3RlbS4KCShjb3B5X29iamVjdCk6IFNldCB1cCBQRSBwYXJhbWV0ZXJzLgoJKGNvcHlfbWFpbik6IFByb2Nlc3MgQWRkIE9QVElPTl9GSUxFX0FMSUdOTUVOVCwKCU9QVElPTl9IRUFQLCBPUFRJT05fSU1BR0VfQkFTRSwgT1BUSU9OX1NFQ1RJT05fQUxJR05NRU5ULAoJT1BUSU9OX1NUQUNLIGFuZCBPUFRJT05fU1VCU1lTVEVNLiAgIENvbnZlcnQgRUZJIHRhcmdldCB0bwoJUEVJIHRhcmdldC4KCgkqIE5FV1M6IE1lbnRpb24gLS1maWxlLWFsaWdubWVudCwgLS1oZWFwLCAtLWltYWdlLWJhc2UsCgktLXNlY3Rpb24tYWxpZ25tZW50LCAtLXN0YWNrIGFuZCAtLXN1YnN5c3RlbSBjb21tYW5kIGxpbmUKCW9wdGlvbnMgZm9yIG9iamNvcHkuCgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgLS1maWxlLWFsaWdubWVudCwgLS1oZWFwLAoJLS1pbWFnZS1iYXNlLCAtLXNlY3Rpb24tYWxpZ25tZW50LCAtLXN0YWNrIGFuZCAtLXN1YnN5c3RlbQoJY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIG9iamNvcHkuCgoyMDA5LTA0LTE1ICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIG15c2VsZiBhcyBNb3hpZSBwb3J0IG1haW50YWluZXIuCgoyMDA5LTA0LTE0ICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCgkqIG9iamNvcHkuYyAoZW51bSBsb25nX3NlY3Rpb25fbmFtZV9oYW5kbGluZyk6ICBOZXcgZW51bSB0eXBlLgoJKGVudW0gY29tbWFuZF9saW5lX3N3aXRjaCk6ICBBZGQgT1BUSU9OX0xPTkdfU0VDVElPTl9OQU1FUy4KCShjb3B5X29wdGlvbnNbXSk6ICBBZGQgZW50cnkgZm9yIC0tbG9uZy1zZWN0aW9uLW5hbWVzIG9wdGlvbi4KCShjb3B5X3VzYWdlKTogIERvY3VtZW50IGl0LgoJKHNldF9sb25nX3NlY3Rpb25fbW9kZSk6ICBOZXcgc3Vicm91dGluZS4KCShjb3B5X2ZpbGUpOiAgQ2FsbCBpdC4KCShjb3B5X21haW4pOiAgQWNjZXB0IE9QVElPTl9MT05HX1NFQ1RJT05fTkFNRVMgYW5kIHBhcnNlIGFyZy4KCSogZG9jL2JpbnV0aWxzLnRleGk6ICBVcGRhdGUgb2JqY29weSBkb2N1bWVudGF0aW9uIHdpdGggZGV0YWlscwoJb2YgbmV3IG9wdGlvbi4KCjIwMDktMDQtMDEgIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoKCSogZGxsdG9vbC5jIChzZXRfZGxsX25hbWVfZnJvbV9kZWYpOiAgQWNjZXB0IG5ldyBzZWNvbmQgYXJnIHRoYXQKCWluZGljYXRlcyBpZiB3ZSBhcmUgYnVpbGRpbmcgRExMIG9yIEVYRSwgYW5kIHVzZSBpdCB0byBhZGQgYQoJZGVmYXVsdCBzdWZmaXggdG8gdGhlIG91dHB1dCBmaWxlbmFtZSB3aGVuIG5vbmUgaXMgYWxyZWFkeSBwcmVzZW50LgoJKGRlZl9uYW1lKTogIEluZGljYXRlIHdlIGFyZSBidWlsZGluZyBhbiBFWEUgd2hlbiBjYWxsaW5nIGl0LgoJKGRlZl9saWJyYXJ5KTogIEluZGljYXRlIHdlIGFyZSBidWlsZGluZyBhIERMTCB3aGVuIGNhbGxpbmcgaXQuCgoyMDA5LTA0LTAxICBKYXJpIEFhbHRvICA8amFyaS5hYWx0b0BjYW50ZS5uZXQ+CgoJUFIgOTk3MgoJKiBkb2MvYmludXRpbHMudGV4aSAoc3RyaW5ncyk6IERvY3VtZW50IHRoZSAtViBhbGlhcyBmb3IgdGhlCgktLXZlcnNpb24gb3B0aW9uLgoJKiBzdHJpbmdzLmMgKHVzYWdlKTogTGlrZXdpc2UuCgoyMDA5LTAzLTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDk5OTIKCSogY29uZmlndXJlLmluOiBJbXBvcnQgU29sYXJpcyBzcGVjaWZpYyBsYXJnZWZpbGUgdGVzdCBmcm9tCgliZmQvY29uZmlndXJlLmluLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA5LTAzLTMwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJkc2FuZGlmb3JkQGdvb2dsZW1haWwuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBzZWxmLgoKMjAwOS0wMy0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGR3YXJmLmMgKGRpc3BsYXlfZGVidWdfcmFuZ2VzKTogQWRkIHRoZSBiYXNlIGFkZHJlc3MgdG8gdGhlCglkaXNwbGF5ZWQgdmFsdWVzIGZvciAnQmVnaW4nIGFuZCAnRW5kJy4KCjIwMDktMDMtMjUgIFJ5YW4gTWFuc2ZpZWxkICA8cm1hbnNmaWVsZEBxbnguY29tPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX2ZpbGVfaGVhZGVyKTogRG9uJ3QgcmVwb3J0IGEgY29ycnVwdCBzdHJpbmcKCXRhYmxlIGluZGV4IGlmIGl0IGlzIHplcm8uCgoyMDA5LTAzLTE5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBkd2FyZi5jIChkd2FyZl9yZWduYW1lcyk6IE1vdmVkIGJlZm9yZSBmcmFtZV9uZWVkX3NwYWNlLgoJKGR3YXJmX3JlZ25hbWVzX2NvdW50KTogTGlrZXdpc2UuCgkoZnJhbWVfbmVlZF9zcGFjZSk6IFJldHVybiBpbnQuCgkoZGlzcGxheV9kZWJ1Z19mcmFtZXMpOiBDaGVjayBpbnZhbGlkIHJlZ2lzdGVycy4KCjIwMDktMDMtMTkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIHJlYWRlbGYuYyAoZGVidWdfYXBwbHlfcmVsb2NhdGlvbnMpOiBDaGVjayByZWxvY2F0aW9ucwoJYWdhaW5zdCBTVFRfU0VDVElPTiBzeW1ib2wuCgoyMDA5LTAzLTE4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiByZWFkZWxmLmMgKGRlYnVnX2FwcGx5X3JlbG9jYXRpb25zKTogQWxsb3cgcmVsb2NhdGlvbnMKCWFnYWluc3QgZnVuY3Rpb24gc3ltYm9scy4KCjIwMDktMDMtMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzeXNkZXAuaDogSW5jbHVkZSBhbGxvY2EtY29uZi5oIGluc3RlYWQgb2YgY29uZmlnLmggYW5kIHJlbW92ZQoJZXhpc3RpbmcgI2lmJ3MgaGFuZGxpbmcgYWxsb2NhLgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOS0wMy0xNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyLnNhbmRpZm9yZEB1ay5pYm0uY29tPgoKCSogY29uZmlndXJlLnRndDogRXh0ZW5kIEFJWCA1IGJlaGF2aW9yIHRvIEFJWCA2IGFuZCBhYm92ZS4KCSogY29uZmlndXJlLmluOiBMaWtld2lzZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOS0wMy0xMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGJpbnV0aWxzLzk5NDUKCSogb2JqY29weS5jIChjb3B5X29iamVjdCk6IENsZWFyIEhBU19SRUxPQyB3aGVuIHN0cmlwcGluZyBhbGwuCgoyMDA5LTAzLTExICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAZ29vZ2xlLmNvbT4KCgkqIGFyLmMgKGRldGVybWluaXN0aWMpOiBOZXcgZ2xvYmFsIHZhcmlhYmxlLgoJKG1haW4pOiBSZWNvZ25pemUgbmV3ICdEJyBvcHRpb24sIHdoaWNoIGVuYWJsZXMgJ2RldGVybWluaXN0aWMgbW9kZScuCgkodXNhZ2UpOiBEb2N1bWVudCBuZXcgJ0QnIG9wdGlvbi4KCSh3cml0ZV9hcmNoaXZlKTogU2V0IEJGRF9ERVRFUk1JTklTVElDX09VVFBVVCBpbiBvdXRwdXQgYXJjaGl2ZSdzCglmbGFncyBpZiBkZXRlcm1pbmlzdGljIG1vZGUgd2FzIHJlcXVlc3RlZC4KCSogZG9jL2JpbnV0aWxzLnRleGkgKGFyKTogRG9jdW1lbnQgZGV0ZXJtaW5pc3RpYyBtb2RlICgnRCcgb3B0aW9uKS4KCjIwMDktMDMtMDkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBiaW51dGlscy85OTMzCgkqIG9iamNvcHkuYyAoZmlsdGVyX3N5bWJvbHMpOiBQcm9wZXJseSBoYW5kbGUgY29tbW9uIHN5bWJvbHMKCWluIHJlbG9jYXRhYmxlIGZpbGUuCgoyMDA5LTAzLTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZXMucG86IFVwZGF0ZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDktMDMtMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBvYmpkdW1wLmMgKGRpc2Fzc2VtYmxlX3NlY3Rpb24pOiBJZiB0aGUgY29tcHV0ZWQgbmV4dCBvZmZzZXQgaXMKCW5vdCBiZXlvbmQgdGhlIGN1cnJlbnQgb2Zmc2V0IHRoZW4ganVzdCBjb250aW51ZSB0byB0aGUgZW5kLgoKMjAwOS0wMy0wNCAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgbXlzZWxmIGFzIFZNUyBtYWludGFpbmVyLgoKMjAwOS0wMy0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYzogVXBkYXRlIGZvcm1hdHRpbmcuCgoyMDA5LTAzLTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDktMDMtMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBvYmpkdW1wLmMgKGRpc2Fzc2VtYmxlX3NlY3Rpb24pOiBNYXNrIGFkZHJlc3MgYmVmb3JlIHNpZ24gZXh0ZW5kaW5nLgoKMjAwOS0wMy0wMiAgU2ViYXN0aWFuIEJpYWxsYXMgIDxzYkBiaWFsbGFzLm5ldD4KCgkqIGllZWUuYyAocGFyc2VfaWVlZV90eSk6IEFkZCBzdXBwb3J0IGZvciB1bmRvY3VtZW50ZWQgJ3YnIHR5cGUuCgkocGFyc2VfaWVlZV9iYik6IFNldCB0aGUgZmlsZW5hbWUgaWYgaXQgaGFzIG5vdCBhbHJlYWR5IGJlZW4KCWRpc2NvdmVyZWQuCgoyMDA5LTAzLTAyICBDYXJ5IENvdXRhbnQgIDxjY291dGFudEBnb29nbGUuY29tPgoKCSogcmVhZGVsZi5jIChhZGp1c3RfcmVsYXRpdmVfcGF0aCk6IE5ldyBmdW5jdGlvbi4KCShzdHJ1Y3QgYXJjaGl2ZV9pbmZvKTogTmV3IHR5cGUuCgkoc2V0dXBfYXJjaGl2ZSk6IE5ldyBmdW5jdGlvbi4KCShyZWxlYXNlX2FyY2hpdmUpOiBOZXcgZnVuY3Rpb24uCgkoc2V0dXBfbmVzdGVkX2FyY2hpdmUpOiBOZXcgZnVuY3Rpb24uCgkoZ2V0X2FyY2hpdmVfbWVtYmVyX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkoZ2V0X2FyY2hpdmVfbWVtYmVyX25hbWVfYXQpOiBOZXcgZnVuY3Rpb24uCgkobWFrZV9xdWFsaWZpZWRfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShwcm9jZXNzX2FyY2hpdmUpOiBGYWN0b3Igb3V0IGNvZGUgZm9yIHJlYWRpbmcgYXJjaGl2ZSBpbmRleCBhbmQKCWxvbmcgZmlsZW5hbWUgdGFibGUgdG8gc2V0dXBfYXJjaGl2ZS4gIEFkZCBzdXBwb3J0IGZvciB0aGluIGFyY2hpdmVzLgoKMjAwOS0wMy0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3NrLnBvOiBVcGRhdGVkIFNsb3ZhayB0cmFuc2xhdGlvbi4KCjIwMDktMDMtMDEgIFJhbGYgV2lsZGVuaHVlcyAgPFJhbGYuV2lsZGVuaHVlc0BnbXguZGU+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA5LTAyLTIzICBDYXJ5IENvdXRhbnQgPGNjb3V0YW50QGdvb2dsZS5jb20+CgoJKiBvYmpkdW1wLmMgKGxvYWRfc3BlY2lmaWNfZGVidWdfc2VjdGlvbik6IE5ldyBmdW5jdGlvbiwgZnJvbQoJbG9hZF9kZWJ1Z19zZWN0aW9uLgoJKGxvYWRfZGVidWdfc2VjdGlvbik6IFVzZSBsb2FkX3NwZWNpZmljX2RlYnVnX3NlY3Rpb24uCgkoZHVtcF9kd2FyZl9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDA5LTAyLTIzICBDYXJ5IENvdXRhbnQgPGNjb3V0YW50QGdvb2dsZS5jb20+CgoJKiByZWFkZWxmLmMgKHBhcnNlX2FyZ3MpOiBTZWxlY3QgYWxsIHNlY3Rpb25zIGV4cGxpY2l0bHkgZm9yIC13LgoKMjAwOS0wMi0wOSAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiB3aW5kcmVzLmMgKHNldF9lbmRpYW5lc3MpOiBDb3B5IG5hbWUgd2l0aG91dCBsZWFkaW5nICctJy4KCjIwMDktMDItMDkgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBORVdTOiBNZW50aW9uIGZlYXR1cmUgbWF0Y2ggYmV0d2VlbiBvYmpkdW1wIGFuZCByZWFkZWxmIGZvciBkdW1waW5nCglkd2FyZiBpbmZvLgoKCSogZG9jL2JpbnV0aWxzLnRleGkgKG9iamR1bXApOiBEb2N1bWVudCAtVy8tLWR3YXJmIGltcHJvdm1lbnRzIHRvCglvYmpkdW1wLgoKCSogb2JqZHVtcC5jICh1c2FnZSk6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIGZvciAtVy8tLWR3YXJmLgoJKGVudW0gb3B0aW9uX3ZhbHVlcyk6IEFkZCBPUFRJT05fRFdBUkYuCgkobG9uZ19vcHRpb25zKTogLS1kd2FyZiBjYW4gYWNjZXB0IGFyZ3VtZW50cy4KCShkdW1wX2R3YXJmX3NlY3Rpb24pOiBBbHNvIGNoZWNrIGVuYWJsZWQgZmllbGQuCgkobWFpbik6IE9wdGlvbiAtVyBjYW4gYWNjZXB0IGFyZ3VtZW50cywgY29kZSBtb3ZlZCB0bwoJZHdhcmYuYyBhbmQgY2FsbCBkd2FyZl9zZWxlY3Rfc2VjdGlvbnNfYWxsIGluc3RlYWQuCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBSZW1vdmUgZG9fZGVidWdfbGluZXNfZGVjb2RlZC4KCShwYXJzZV9hcmdzKTogTW92ZSBjb2RlIHRvLi4uCgkqIGR3YXJmLmMgKGR3YXJmX3NlbGVjdF9zZWN0aW9uc19ieV9sZXR0ZXJzLAoJZHdhcmZfc2VsZWN0X3NlY3Rpb25zX2J5X25hbWVzKTogOiAuLi5oZXJlIChuZXcgZnVuY3Rpb25zKS4KCShkb19kZWJ1Z19saW5lc19kZWNvZGVkKTogUmVtb3ZlIGFuZCByZXBsYWNlZCBieSAuLi4KCShGTEFHX0RFQlVHX0xJTkVTX1JBVywgRkxBR19ERUJVR19MSU5FU19ERUNPREVEKTogLi4uIG5ldyBtYWNyb3MuCgkoZGlzcGxheV9kZWJ1Z19saW5lcyk6IEFkanVzdCBmb3IgcHJldmlvdXMgY2hhbmdlLgoJKGR3YXJmX3NlbGVjdF9zZWN0aW9uc19hbGwpOiBOZXcgZnVuY3Rpb24uCgkoZGVidWdfZGlzcGxheXMpOiBBZGQgaW5pdGlhbGl6ZXIgZm9yIGVuYWJsZWQgZmllbGQuCgkqIGR3YXJmLmggKGRvX2RlYnVnX2xpbmVzX2RlY29kZWQpOiBSZW1vdmUuCglBZGQgcHJvdG90eXBlcyBmb3IgdGhlIG5ldyBmdW5jdGlvbnMuCgkoc3RydWN0IGR3YXJmX3NlY3Rpb25fZGlzcGxheSk6IEFkZCBlbmFibGVkIGZpZWxkLgoKMjAwOS0wMi0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3ZpLnBvOiBVcGRhdGVkIFZpZXRuYW1lc2UgdHJhbnNsYXRpb24uCgoyMDA5LTAyLTAzICBTYW5kaXAgTWF0dGUgIDxzYW5kaXBAcm1pY29ycC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX2ZsYWdzKTogSGFuZGxlIEVfTUlQU19NQUNIX1hMUi4KCjIwMDktMDItMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIE5FV1M6IE1vdmUgLS1hcy1uZWVkZWQgY2hhbmdlIHRvIC4uLgoJKiAuLi9sZC9ORVdTOiBIZXJlLgoKMjAwOS0wMi0wMyAgQ2FybG9zIE8nRG9uZWxsICA8Y2FybG9zQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWd1cmUuaW46IEFDX1NVQlNUIHBkZmRpci4KCSogTWFrZWZpbGUuYW06IEFkZCBpbnN0YWxsLXBkZiwgaW5zdGFsbC1wZGYtYW0sCglhbmQgaW5zdGFsbC1wZGYtcmVjdXJzaXZlIHRhcmdldHMuCgkqIGRvYy9NYWtlZmlsZS5hbTogRGVmaW5lIHBkZl9fc3RyaXBfZGlyLiBBZGQKCWluc3RhbGwtcGRmIGFuZCBpbnN0YWxsLXBkZi1hbSB0YXJnZXRzLgoJKiBwby9NYWtlLWluOiBBZGQgaW5zdGFsbC1wZGYgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTAyLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgYmludXRpbHMvOTc4NAoJKiBORVdTOiBNZW50aW9uIC0tcHJlZml4PVBSRUZJWCBhbmQgLS1wcmVmaXgtc3RyaXA9TEVWRUwuCgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgLS1wcmVmaXg9UFJFRklYIGFuZAoJLS1wcmVmaXgtc3RyaXA9TEVWRUwuCgoJKiBvYmpkdW1wLmM6IEluY2x1ZGUgImZpbGVuYW1lcy5oIi4KCShwcmVmaXgpOiBOZXcuCgkocHJlZml4X3N0cmlwKTogTGlrZXdpc2UuCgkocHJlZml4X2xlbmd0aCk6IExpa2V3aXNlLgoJKHVzYWdlKTogQWRkIC0tcHJlZml4PVBSRUZJWCBhbmQgLS1wcmVmaXgtc3RyaXA9TEVWRUwuCgkob3B0aW9uX3ZhbHVlcyk6IEFkZCBPUFRJT05fUFJFRklYIGFuZCBPUFRJT05fUFJFRklYX1NUUklQLgoJKGxvbmdfb3B0aW9ucyk6IExpa2V3aXNlLgoJKHNob3dfbGluZSk6IEhhbmRsZSBwcmVmaXggYW5kIHByZWZpeF9zdHJpcC4KCShtYWluKTogSGFuZGxlIE9QVElPTl9QUkVGSVggYW5kIE9QVElPTl9QUkVGSVhfU1RSSVAuCgoJKiByZWFkZWxmLmMgKFBBVEhfTUFYKTogTW92ZWQgdG8gLi4uCgkqIHN5c2RlcC5oOiBIZXJlLgoKMjAwOS0wMS0zMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE5FV1M6IE1lbnRpb24gLS1hcy1uZWVkZWQgY2hhbmdlLgoKMjAwOS0wMS0yOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiA5Nzk4CgkqIGJ1Y29tbS5jIChiZmRfbm9uZmF0YWxfbWVzc2FnZSk6IFVzZSBiZmRfZ2V0X2FyY2hpdmVfZmlsZW5hbWUuCgkoYmZkX2dldF9hcmNoaXZlX2ZpbGVuYW1lKTogQ29uc3RpZnkgcGFyYW0uCgkqIGJ1Y29tbS5oIChiZmRfZ2V0X2FyY2hpdmVfZmlsZW5hbWUpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiBvYmpjb3B5LmMgKFJFVFVSTl9OT05GQVRBTCk6IERlbGV0ZS4KCShjb3B5X3Vua25vd25fb2JqZWN0KTogRG9uJ3QgY2FsbCBiZmRfZ2V0X2FyY2hpdmVfZmlsZW5hbWUgZm9yCgliZmRfbm9uZmF0YWxfbWVzc2FnZSBmaWxlbmFtZSwgaW5zdGVhZCBqdXN0IHBhc3MgYmZkLgoJKGNvcHlfb2JqZWN0KTogTGlrZXdpc2UuCgkoY29weV9hcmNoaXZlLCBjb3B5X2ZpbGUpOiBMaWtld2lzZS4gIEV4cGFuZCBSRVRVUk5fTk9ORkFUQUwuICBPbgoJYmZkX2Nsb3NlIGVycm9ycywgZG8gbm90IHBhc3MgdGhlIGJmZCB0byBiZmRfbm9uZmF0YWxfbWVzc2FnZS4KCShzZXR1cF9iZmRfaGVhZGVycyk6IEZpeCBlcnJvciBtZXNzYWdlLgoKMjAwOS0wMS0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiA5Nzc0CgkqIG9iamR1bXAuYyAoZGlzYXNzZW1ibGVfc2VjdGlvbik6IFdoZW4gdGhlIHRhcmdldCB1c2VzIHNpZ25lZAoJYWRkcmVzc2VzIG1ha2Ugc3VyZSB0aGF0IHdlIGNvbXB1dGUgc2lnbmVkIHZhbHVlcy4KCjIwMDktMDEtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogUmVtb3ZlIFRoaWVtbyBTZXVmZXIncyBuYW1lIGZyb20gdGhlIGxpc3Qgb2YgTUlQUwoJbWFpbnRhaW5lcnMuCgoyMDA5LTAxLTI2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDk3NjYKCSogZGxsdG9vbC5jICh4bGF0ZSk6IFdoZW4gc3RyaXAgdGV4dCBhZnRlciB0aGUgQCBzaWduLCBsb29rIGZvcgoJdGhlIGxhc3Qgb25lIG5vdCB0aGUgZmlyc3Qgb25lLgoKMjAwOS0wMS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZ3VyZS5pbiAoY29tbW9uYmZkbGliKTogRGVsZXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA4LTAxLTE0ICBDaGFybGVzIFdpbHNvbiAgPGN5Z3dpbkBjd2lsc29uLmZhc3RtYWlsLmZtPgoKCUNsZWFudXAgY29kZSByZWxhdGVkIHRvIC0taWRlbnRpZnkgb3B0aW9uLgoKCSogZGxsdG9vbC5jIChmaWxlIHNjb3BlKTogUmVtb3ZlZCBnbG9iYWxzIGlkZW50aWZ5X21zLAoJaWRlbnRpZnlfbWVtYmVyX2NvbnRhaW5zX3N5bW5hbWVfcmVzdWx0LAoJaWRlbnRpZnlfZGxsX25hbWVfbGlzdF9oZWFkLCBhbmQgaWRlbnRpZnlfZGxsX25hbWVfbGlzdF90YWlsLgoJUmVuYW1lZCBleGlzdGluZyB0eXBlZGVmIGRsbF9uYW1lX2xpc3RfdHlwZSB0bwoJZGxsX25hbWVfbGlzdF9ub2RlX3R5cGUuCglBZGRlZCBuZXcgdHlwZWRlZnMgZGxsX25hbWVfbGlzdF90eXBlLCBzeW1uYW1lX3NlYXJjaF9kYXRhX3R5cGUsCglhbmQgaWRlbnRpZnlfZGF0YV90eXBlLgoJKGlkZW50aWZ5X2FwcGVuZF9kbGxfbmFtZV90b19saXN0KTogUmVuYW1lZCB0by4uLgoJKGRsbF9uYW1lX2xpc3RfYXBwZW5kKTogLi4uaGVyZS4gIENoYW5nZWQgc2lnbmF0dXJlIHRvIGFjY2VwdCBsaXN0Cglhcmd1bWVudCByYXRoZXIgdGhhbiB1c2UgZ2xvYmFsLgoJKGlkZW50aWZ5X2NvdW50X2RsbF9uYW1lX2xpc3QpOiBSZW5hbWVkIHRvLi4uCgkoZGxsX25hbWVfbGlzdF9jb3VudCk6IC4uLmhlcmUuICBDaGFuZ2VkIHNpZ25hdHVyZSB0byBhY2NlcHQgbGlzdAoJYXJndW1lbnQgcmF0aGVyIHRoYW4gdXNlIGdsb2JhbC4KCShpZGVudGlmeV9wcmludF9kbGxfbmFtZV9saXN0KTogUmVuYW1lZCB0by4uLgoJKGRsbF9uYW1lX2xpc3RfcHJpbnQpOiAuLi5oZXJlLiAgQ2hhbmdlZCBzaWduYXR1cmUgdG8gYWNjZXB0IGxpc3QKCWFyZ3VtZW50IHJhdGhlciB0aGFuIHVzZSBnbG9iYWwuCgkoaWRlbnRpZnlfZnJlZV9kbGxfbmFtZV9saXN0KTogUmVuYW1lZCB0by4uLgoJKGRsbF9uYW1lX2xpc3RfZnJlZV9jb250ZW50cyk6IC4uLmhlcmUuCgkoZGxsX25hbWVfbGlzdF9mcmVlKTogTmV3IGZ1bmN0aW9uLgoJKGRsbF9uYW1lX2xpc3RfY3JlYXRlKTogTmV3IGZ1bmN0aW9uLgoJKGlkZW50aWZ5X3Byb2Nlc3Nfc2VjdGlvbl9wKTogQ2hhbmdlZCBzaWduYXR1cmUgdG8gYWNjZXB0Cgltc19zdHlsZV9pbXBsaWIgYXJndW1lbnQgcmF0aGVyIHRoYW4gdXNlIGdsb2JhbC4KCShpZGVudGlmeV9tZW1iZXJfY29udGFpbnNfc3ltbmFtZSk6IEV4cGVjdCBpbmNvbWluZyB2b2lkICogZGF0YSB0bwoJYmUgc3ltbmFtZV9zZWFyY2hfZGF0YV90eXBlLgoJKGlkZW50aWZ5X2RsbF9mb3JfaW1wbGliKTogVXNlIG5ldyBmdW5jdGlvbnMgZGxsX25hbWVfbGlzdF9jcmVhdGUKCWFuZCBkbGxfbmFtZV9saXN0X2ZyZWUuICBVc2UgbmV3IHR5cGVzIHN5bW5hbWVfc2VhcmNoX2RhdGFfdHlwZQoJYW5kIGlkZW50aWZ5X2RhdGFfdHlwZSB0byBjb21tdW5pY2F0ZSB3aXRoIHNlYXJjaCByb3V0aW5lcy4KCShpZGVudGlmeV9zZWFyY2hfc2VjdGlvbik6IEV4cGVjdCBpbmNvbWluZyB2b2lkICogZGF0YSB0byBiZQoJaWRlbnRpZnlfZGF0YV90eXBlLiBVc2UgaXRzIGNvbnRlbnRzIHJhdGhlciB0aGFuIGdsb2JhbAoJdmFyaWFibGVzLgoKMjAwOS0wMS0xMyAgQ2hhcmxlcyBXaWxzb24gIDxjeWd3aW5AY3dpbHNvbi5mYXN0bWFpbC5mbT4KCglBZGQgLS1pZGVudGlmeS1zdHJpY3Qgb3B0aW9uLiAgSGFuZGxlIG1zLXN0eWxlIGltcGxpYnM6CgoJKiBkbGx0b29sLmMgKGZpbGUgc2NvcGUpOiBBZGRlZCBuZXcgZ2xvYmFscyBpZGVudGlmeV9tcyBhbmQKCWlkZW50aWZ5X3N0cmljdC4gTmV3IHR5cGVkZWYgZGxsX25hbWVfbGlzdF90eXBlLCBhbmQgZ2xvYmFscwoJaWRlbnRpZnlfZGxsX25hbWVfbGlzdF9oZWFkIGFuZCBpZGVudGlmeV9kbGxfbmFtZV9saXN0X3RhaWwuIEFkZGVkCgluZXcgZ2xvYmFsIGlkZW50aWZ5X21lbWJlcl9jb250YWluc19zeW1uYW1lX3Jlc3VsdC4KCShpZGVudGlmeV9hcHBlbmRfZGxsX25hbWVfdG9fbGlzdCk6IE5ldyBmdW5jdGlvbi4KCShpZGVudGlmeV9jb3VudF9kbGxfbmFtZV9saXN0KTogTmV3IGZ1bmN0aW9uLgoJKGlkZW50aWZ5X3ByaW50X2RsbF9uYW1lX2xpc3QpOiBOZXcgZnVuY3Rpb24uCgkoaWRlbnRpZnlfZnJlZV9kbGxfbmFtZV9saXN0KTogTmV3IGZ1bmN0aW9uLgoJKGlkZW50aWZ5X3NlYXJjaF9hcmNoaXZlKTogQ2hhbmdlZCBzaWduYXR1cmUgdG8gdGFrZSBmdW5jdGlvbgoJcG9pbnRlciB0byBvcGVyYXRpb24gdG8gYXBwbHkgdG8gZWFjaCBtZW1iZXIsIGFuZCBkYXRhIHRvIHBhc3Mgb24KCXRvIHRoYXQgZnVuY3Rpb24uCgkoaWRlbnRpZnlfc2VhcmNoX21lbWJlcik6IENoYW5nZWQgc2lnbmF0dXJlIHRvIGFjY2VwdCB1c2VyIGRhdGEKCWZyb20gY2FsbGVyLgoJKGlkZW50aWZ5X21lbWJlcl9jb250YWluc19zeW1uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKGlkZW50aWZ5X2RsbF9mb3JfaW1wbGliKTogUmV3cml0ZS4gTm93IGRldGVybWluZXMgd2hldGhlciBpbXBsaWIKCWlzIG1zLSBvciBiaW51dGlscy0gc3R5bGUsIGJlZm9yZSBzZWFyY2hpbmcgc2VjdGlvbnMgZm9yCglkbGxuYW1lLiBBbGxvd3MgbXVsdGlwbGUgZGxsbmFtZXMuCgkoaWRlbnRpZnlfcHJvY2Vzc19zZWN0aW9uX3ApOiBTZWFyY2ggYWx0ZXJuYXRlIHNlY3Rpb24gZm9yIGRsbG5hbWUKCXdoZW4gaW1wbGliIGlzIG1zLXN0eWxlLgoJKGlkZW50aWZ5X3NlYXJjaF9zZWN0aW9uKTogQWRkIGFkZGl0aW9uYWwgY29uZGl0aW9ucyB0byBleGNsdWRlcwoJY2FuZGlkYXRlIHNlY3Rpb25zIGZyb20gY29uc2lkZXJhdGlvbi4KCSh1c2FnZSk6IEFkZGVkIC0taWRlbnRpZnktc3RyaWN0LgoJKGxvbmdfb3B0aW9ucyk6IEFkZGVkIC0taWRlbnRpZnktc3RyaWN0LgoJKG1haW4pOiBIYW5kbGUgLS1pZGVudGlmeS1zdHJpY3Qgb3B0aW9uLgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgLS1pZGVudGlmeS1zdHJpY3QJb3B0aW9uLgoJKiBORVdTOiBEb2N1bWVudCAtLWlkZW50aWZ5IGFuZAktLWlkZW50aWZ5LXN0cmljdCBvcHRpb25zLgoKMjAwOS0wMS0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiA3MDM0CgkqIGRvYy9iaW51dGlscy50ZXhpIChvYmpkdW1wIC1SKTogTm90ZSBlZmZlY3Qgb2YgLWQgb3IgLUQuCgoyMDA5LTAxLTEzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogb2JqZHVtcC5jIChkaXNhc3NlbWJsZV9zZWN0aW9uKTogRG9uJ3QgYXNzdW1lIG5vbi1pbnN0cnVjdGlvbgoJZGF0YSBpZiBvYmplY3Qgc3ltYm9sIGF0IGdpdmVuIGFkZHJlc3MgaXMgaW4gZGlmZmVyZW50IHNlY3Rpb24uCgoyMDA5LTAxLTEyICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIGRsbHRvb2wuYyAoY3JlYXRlX2Zvcl9wZXApOiBOZXcuCgkoZmx1c2hfcGFnZSk6IFVzZSBjcmVhdGVfZm9yX3BlcCBpbnN0ZWFkIG9mIHVzaW5nCgltYWNybyBETExUT09MX01YODZfNjQgY2xhdXNlLgoJKGdlbmVyYXRlX2lkYXRhX29maWxlKTogTGlrZXdpc2UuCgkobWFrZV9vbmVfbGliX2ZpbGUpOiBMaWtld2lzZS4KCShtYWtlX2hlYWQpOiBMaWtld2lzZS4KCShtYWtlX3RhaWwpOiBMaWtld2lzZS4KCShtYWluKTogSW5pdGlhbGl6ZSBjcmVhdGVfZm9yX3BlcC4KCjIwMDktMDEtMDggIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogZGxsdG9vbC5jICh1c2VfbnVsX3ByZWZpeGVkX2ltcG9ydF90YWJsZXMpOiBOZXcuCgkobWFrZV9oZWFkKTogTWFrZSBwcmVmaXggbGVhZGluZyB6ZXJvIHByZWZpeCBlbGVtZW50IGZvcgoJaWRhdGEkNCBhbmQgaWRhdGEkNSBkZXBlbmRlbnQgdG8gbmV3IGZsYWcuCgkodXNhZ2UpOiBBZGQgbmV3IG9wdGlvbiAgLS11c2UtbnVsLXByZWZpeGVkLWltcG9ydC10YWJsZXMuCgkoT1BUSU9OX1VTRV9OVUxfUFJFRklYRURfSU1QT1JUX1RBQkxFUyk6IE5ldy4KCShsb25nX29wdGlvbnMpOiBBZGQgLS11c2UtbnVsLXByZWZpeGVkLWltcG9ydC10YWJsZXMuCgkobWFpbik6IExpa2V3aXNlLgoJKiBkb2MvYmludXRpbHMudGV4aTogQWRkIG5ldyBvcHRpb24gZG9jdW1lbnRhdGlvbiBmb3IKCS0tdXNlLW51bC1wcmVmaXhlZC1pbXBvcnQtdGFibGVzLgoJKiBORVdTOiBBZGQgbmV3IG9wdGlvbi4KCjIwMDktMDEtMDYgIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogd2luZHJlcy5jIChzZXRfZW5kaWFuZXNzKTogR2V0IGFyY2hpdGVjdHVyZSBuYW1lCglmb3IgaW50ZXJuYWwgdGFyZ2V0IG5hbWVzIGxpa2UgInBlLWFybS13aW5jZS1saXR0bGUiLgoJKGZpbmRfYXJjaF9tYXRjaCk6IE5ldyBoZWxwZXIuCgkqIENoYW5nZUxvZzogUmVzZXQgaXQuCgkqIENoYW5nZUxvZy0yMDA4OiBNb3ZlZCBvbGQgQ2hhbmdlTG9nLgoKRm9yIG9sZGVyIGNoYW5nZXMgc2VlIENoYW5nZUxvZy0yMDA4CgwKQ29weXJpZ2h0IChDKSAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgoKQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0Cm5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4KCkxvY2FsIFZhcmlhYmxlczoKbW9kZTogY2hhbmdlLWxvZwpsZWZ0LW1hcmdpbjogOApmaWxsLWNvbHVtbjogNzQKdmVyc2lvbi1jb250cm9sOiBuZXZlcgpFbmQ6Cg==