MjAwOS0xMi0zMSAgRWlyaWsgQnlya2plZmxvdCBBbm9uc2VuICA8ZWlyaWtAb3BlcmEuY29tPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBvYmpjb3B5LmMgKGFkZF9yZWRlZmluZV9zeW1zX2ZpbGUpOiBBdm9pZCBzeW1ib2wgYnVmZmVyCglvdmVycnVuLgoKMjAwOS0xMi0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJKiBNQUlOVEFJTkVSUzogVXBkYXRlIG15IGVtYWlsIGFkZHJlc3MuCgoyMDA5LTEyLTE4ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9ub3RlX3R5cGUpOiBIYW5kbGUgTlRfUzM5MF9ISUdIX0dQUlMgbm90ZXMuCgoyMDA5LTEyLTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYXIuYzogRml4IHNoYWRvd2VkIHZhcmlhYmxlIHdhcm5pbmdzLgoJKiBidWNvbW0uYzogTGlrZXdpc2UuCgkqIGNvZmZncm9rLmM6IExpa2V3aXNlLgoJKiBjb25maWd1cmU6IExpa2V3aXNlLgoJKiBkbGx0b29sLmM6IExpa2V3aXNlLgoJKiBkbGx3cmFwLmM6IExpa2V3aXNlLgoJKiBkd2FyZi5jOiBMaWtld2lzZS4KCSogaWVlZS5jOiBMaWtld2lzZS4KCSogbmxtY29udi5jOiBMaWtld2lzZS4KCSogbm0uYzogTGlrZXdpc2UuCgkqIG9iamNvcHkuYzogTGlrZXdpc2UuCgkqIG9iamR1bXAuYzogTGlrZXdpc2UuCgkqIHByZGJnLmM6IExpa2V3aXNlLgoJKiByZWFkZWxmLmM6IExpa2V3aXNlLgoJKiByZXNiaW4uYzogTGlrZXdpc2UuCgkqIHJlc3JjLmM6IExpa2V3aXNlLgoJKiByZXNyZXMuYzogTGlrZXdpc2UuCgkqIHNyY29udi5jOiBMaWtld2lzZS4KCSogc3RhYnMuYzogTGlrZXdpc2UuCgkqIHN5c2R1bXAuYzogTGlrZXdpc2UuCgkqIHN5c2luZm8ueTogTGlrZXdpc2UuCgkqIHdyc3RhYnMuYzogTGlrZXdpc2UuCgoyMDA5LTEyLTEwICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogYWRkcjJsaW5lLmMgKHByZXR0eV9wcmludCk6IE5ldyB2YXJpYWJsZS4KCShsb25nX29wdGlvbnMpOiBBZGQgYW4gZW50cnkgZm9yIC1wLy0tcHJldHR5LXByaW50LgoJKHVzYWdlKTogRG9jdW1lbnQgLXAvLS1wcmV0dHktcHJpbnQuCgkodHJhbnNsYXRlX2FkZHJlc3Nlcyk6IEhhbmRsZSBwcmV0dHlfcHJpbnQuICBSZWluZGVudC4KCShtYWluKTogSGFuZGxlIG9wdGlvbiAtcC4KCSogZG9jL2JpbnV0aWxzLnRleGkgKGFkZHIybGluZSk6IERvY3VtZW50IC1wLy0tcHJldHR5LXByaW50LgoJKiBORVdTOiBNZW50aW9uIG5ldyBmZWF0dXJlLgoKMjAwOS0xMi0wOSAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIGFkZHIybGluZS5jICh0cmFuc2xhdGVfYWRkcmVzc2VzKTogRGlzcGxheSBhZGRyZXNzZXMKCWlmIG9wdGlvbiAtYSBpcyB1c2VkLgoJKHdpdGhfYWRkcmVzc2VzKTogTmV3IHZhcmlhYmxlLgoJKGxvbmdfb3B0aW9ucyk6IEFkZCBvcHRpb24gJy1hJy4KCSh1c2FnZSk6IEFkZCB1c2FnZSBmb3Igb3B0aW9uICctYScuCgkobWFpbik6IEhhbmRsZSBvcHRpb24gJy1hJy4KCSogZG9jL2JpbnV0aWxzLnRleGkgKGFkZHIybGluZSk6IERvY3VtZW50IG9wdGlvbiAnLWEnLgoJKiBORVdTOiBNZW50aW9uIG5ldyBmZWF0dXJlLgoKMjAwOS0xMi0wOCAgQ2FyeSBDb3V0YW50ICA8Y2NvdXRhbnRAZ29vZ2xlLmNvbT4KCgkqIGR3YXJmLmMgKGR3YXJmX3NlbGVjdF9zZWN0aW9uc19ieV9uYW1lcyk6IEhhbmRsZSBwdWJ0eXBlcyBjb3JyZWN0bHkuCgkoZGVidWdfZGlzcGxheXMpOiBSZW1vdmUgZHVwbGljYXRlIGVudHJ5IGZvciBkZWJ1Z19wdWJ0eXBlcy4KCjIwMDktMTItMDMgIERhdmlkIERhbmV5ICA8ZGRhbmV5QGNhdml1bW5ldHdvcmtzLmNvbT4KCSAgICBBZGFtIE5lbWV0ICA8YWRhbWJuZW1ldEBnbWFpbC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX2ZsYWdzKTogSGFuZGxlIEVfTUlQU19NQUNIX09DVEVPTjIgY2FzZS4KCjIwMDktMTItMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgYmludXRpbHMvMTEwNDUKCSogZHdhcmYuYyAoZG9fZGVidWdfcHVidHlwZXMpOiBOZXcgdmFyaWFibGUuCgkoZHdhcmZfc2VsZWN0X3NlY3Rpb25zX2J5X25hbWVzKTogSGFuZGxlIC5kZWJ1Z19wdWJ0eXBlcy4KCShkd2FyZl9zZWxlY3Rfc2VjdGlvbnNfYnlfbGV0dGVycyk6IEFkZCAndCcgZm9yIC5kZWJ1Z19wdWJ0eXBlLgoJKGR3YXJmX3NlbGVjdF9zZWN0aW9uc19hbGwpOiBTZXQgZG9fZGVidWdfcHVidHlwZXMuCgkoZGVidWdfZGlzcGxheXMpOiBBZGQgc3VwcG9ydCBmb3IgLmRlYnVnX3B1YnR5cGVzLgoJKiBkd2FyZi5oIChkb19kZWJ1Z19wdWJ0eXBlcyk6IEV4cG9ydC4KCSogb2JqZHVtcC5jICh1c2FnZSk6IEFkZCAtd3Qgb3IgLS1kd2FyZj1wdWJ0eXBlcy4KCSogcmVhZGVsZi5jICh1c2FnZSk6IExpa2V3aXNlLgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogRW5hYmxlIGRlYnVnIGRpc3BsYXkgaWYKCWRvX2RlYnVnX3B1YnR5cGVzIGlzIHNldC4KCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IC13dC8tLWR3YXJmPXB1YnR5cGVzIG9wdGlvbi4KCjIwMDktMTItMDIgIEplcmtlciBC5GNrICA8amVya2VyLmJhY2tAZ21haWwuY29tPgoKCVBSIGJpbnV0aWxzLzExMDE3CgkqIGRsbHRvb2wuYyAoUEFHRV9TSVpFKTogRGVsZXRlLgoJKFBBR0VfTUFTSyk6IFByb3ZpZGUgZGVmYXVsdCBkZWZpbml0aW9uIGJhc2VkIG9uIENPRkZfUEFHRV9TSVpFLgoJQ2hlY2sgZm9yIERMTFRPT0xfREVGQVVMVF9NWDg2XzY0IGFuZCBETExUT09MX0RFRkFVTFRfSTM4Ni4KCjIwMDktMTItMDEgIEpvc2VwaCBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9uYW1lLCBnZXRfb3NhYmlfbmFtZSk6IEhhbmRsZSBtb3JlCglhbGxvY2F0ZWQgdmFsdWVzLgoKMjAwOS0xMS0zMCAgSm9zZXBoIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA5LTExLTIwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jOiBJbmNsdWRlIHhjMTZ4LmguCgkoZHVtcF9yZWxvY2F0aW9ucyk6IEhhbmRsZSByZWxvY2F0aW9ucyBmb3IgdGhlIHhjMTZ4IHRhcmdldC4KCShnZXRfbWFjaGluZV9uYW1lKTogQWNjZXB0IEVNX0MxNjYgZm9yIHhjMTZ4IHRhcmdldHMuCgkoaXNfMzJiaXRfYWJzX3JlbG9jKTogQWRkIHN1cHBvcnQgZm9yIHhjMTZjIDMyLWJpdCBhYnNvbHV0ZSByZWxvYy4KCShpc18xNmJpdF9hYnNfcmVsb2MpOiBBZGQgc3VwcG9ydCBmb3IgeGMxNmMgMTYtYml0IGFic29sdXRlIHJlbG9jLgoJKGlzX25vbmVfcmVsb2MpOiBBZGQgc3VwcG9ydCBmb3IgeGMxNmMgbnVsbCByZWxvYy4KCQoyMDA5LTExLTIwICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChzeXNsZXgubyk6IFVzZSAkKE5PX1dFUlJPUikgbm90IC1Xbm8tZXJyb3IuCgkoc3lzaW5mby5vKTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOS0xMS0xOSAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBhcmxleC5sOiBFbmFibGUgbm9pbnB1dCwgbm91bnB1dCBmbGV4IG9wdGlvbnMuCgkqIHN5c2xleC5sOiBMaWtld2lzZS4KCjIwMDktMTEtMTcgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJlYWRlbGYuYyAoYXJtX2F0dHJfdGFnX0NQVV9hcmNoKTogQWRkIHY3RS1NLgoKMjAwOS0xMS0xNiAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiB3aW5kbWMuYyAoc2V0X2VuZGlhbmVzcyk6IFVzZSBiZmRfZ2V0X3RhcmdldF9pbmZvLgoJKiB3aW5kcmVzLmMgKHNldF9lbmRpYW5lc3MpOiBMaWtld2lzZS4KCShmaW5kX2FyY2hfbWF0Y2gpOiBSZW1vdmVkLgoKMjAwOS0xMS0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2lkLnBvOiBVcGRhdGVkIEluZG9uZXNpYW4gdHJhbnNsYXRpb24uCgoyMDA5LTExLTExICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IFN0b3AgY2hlY2tpbmcgZm9yIGZvcGVuNjQgYW5kIHN0YXQ2NC4KCSogc3RyaW5ncy5jIChmaWxlX29mZiwgZmlsZV9vcGVuLCBzdGF0YnVmLCBmaWxlX3N0YXQpOiBSZW1vdmUuCgkoc3RyaW5nc19maWxlKTogQ2hhbmdlIGZpbGVfb2ZmIHRvIGZpbGVfcHRyLCBmaWxlX29wZW4gdG8gZm9wZW4sCglzdGF0YnVmIHRvIHN0cnVjdCBzdGF0IGFuZCBmaWxlX3N0YXQgdG8gc3RhdC4KCShnZXRfY2hhcik6IENoYW5nZSBwYXJhbWV0ZXIgdHlwZSBmaWxlX29mZiAqIHRvIGZpbGVfcHRyICouCgkocHJpbnRfc3RyaW5ncyk6IENoYW5nZSBwYXJhbWV0ZXIgYW5kIHZhcmlhYmxlIGBzdGFydCcgdHlwZSBmaWxlX29mZiB0bwoJZmlsZV9wdHIuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoKMjAwOS0xMS0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBDYWxsIEFDWF9MQVJHRUZJTEUuICBTdG9wIGNhbGxpbmcgQUNfUExVR0lOUywKCUFDX1NZU19MQVJHRUZJTEUgYW5kIGNoZWNraW5nIHRoZSBTb2xhcmlzIGxhcmdlZmlsZSBleGNlcHRpb24uCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDktMTEtMDkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KCgkqIGJ1Y29tbS5jIChnZXRfZmlsZV9zaXplKTogVXBkYXRlIGNvbW1lbnQgZm9yIHRoZSBlcnJvciByZXR1cm4gdmFsdWUuCgoyMDA5LTExLTA4ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogcmVhZGVsZi5jIChzbHVycF9ocHBhX3Vud2luZF90YWJsZSk6IERvbid0IHJlbG9jYXRlIGFkZHJlc3MgdHdpY2UuCgoyMDA5LTExLTA1ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIGRsbHdyYXAuYyAoaXNfbGVhZGluZ191bmRlcnNjb3JlKTogTmV3IHZhcmlhYmxlLgoJKGNwdV90eXBlKTogTmV3IGVudW0gdHlwZS4KCSh3aGljaF9jcHUpOiBOZXcgdmFyaWFibGUuCgkodXNhZ2UpOiBBZGQgbmV3IG9wdGlvbnMgLS1uby1sZWFkaW5nLXVuZGVyc2NvcmUKCWFuZCAtLWxlYWRpbmctdW5kZXJzY29yZS4KCShsb25nX29wdGlvbnMpOiBMaWtld2lzZS4KCShPUFRJT05fTk9fTEVBRElOR19VTkRFUlNDT1JFKTogTmV3IGRlZmluZS4KCShPUFRJT05fTEVBRElOR19VTkRFUlNDT1JFKTogTGlrZXdpc2UuCgkobWFpbik6IEluaXRpYWxpemUgd2hpY2hfaG9zdCwgcGFzcyBuZXcgb3B0aW9ucwoJdG8gZGxsdG9vbCwgZG8gdW5kZXJzY29yaW5nIGRlcGVuZGVudCBvbgoJaXNfbGVhZGluZ191bmRlcnNjb3JlLCBhbmQgZG8gJ0AxMicgZGVjb3JhdGlvbgoJb25seSBmb3IgeDg2LgoKMjAwOS0xMS0wMiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJlYWRlbGYuYyAoYXJtX2F0dHJfdGFnX1ZGUF9hcmNoKTogQWRkIFZGUHY0IGFuZCBWRlB2NC1EMTYuCgoyMDA5LTEwLTI4ICBLYWkgVGlldHogPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogZGxsdG9vbC5jIChsZWFkaW5nX3VuZGVyc2NvcmUpOiBOZXcgbG9jYWwgdmFyaWFibGUuCgkoYXNtX3ByZWZpeCk6IEludGVycHJldCBsZWFkaW5nX3VuZGVyc2NvcmUuCgkoeGxhdGUpOiBMaWtld2lzZS4KCShhZGRfZXhjbHVkZXMpOiBVc2UgbGVhZGluZ191bmRlcnNjb3JlIGZvciBtYWtpbmcKCXN5bWJvbCBuYW1lLgoJKGdlbl9leHBfZmlsZSk6IFVzZSBsZWFkaW5nX3VuZGVyc2NvcmUgZm9yIGludGVybmFsCglfaW1wXyBzeW1ib2xzLgoJKHVzYWdlKTogQWRkIGRpc3BsYXkgb2YgLS1uby1sZWFkaW5nLXVuZGVyc2NvcmUgYW5kCgktLWxlYWRpbmctdW5kZXJzY29yZSBvcHRpb24uCgkoT1BUSU9OX05PX0xFQURJTkdfVU5ERVJTQ09SRSk6IE5ldy4KCShPUFRJT05fTEVBRElOR19VTkRFUlNDT1JFKTogTmV3LgoJKGxvbmdfb3B0aW9ucyk6IEFkZCAtLW5vLWxlYWRpbmctdW5kZXJzY29yZSBhbmQKCS0tbGVhZGluZy11bmRlcnNjb3JlIG9wdGlvbi4KCShtYWluKTogSGFuZGxlIG5ldyBvcHRpb25zLgoJKiBkb2MvYmludXRpbHMudGV4dDogQWRkIGRvY3VtZW50YXRpb24gb2YgdGhlIG9wdGlvbnMKCS0tbm8tbGVhZGluZy11bmRlcnNjb3JlIGFuZCAtLWxlYWRpbmctdW5kZXJzY29yZS4KCjIwMDktMTAtMjMgIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogZGVmbGV4Lmw6IEFsbG93ICc8JyBhbmQgJz4nIGluIElEIG5hbWVzLgoKCSogZGVmcGFyc2UueSAoRVFVQUwpOiBOZXcgdG9rZW4gY29uc3RhbnQuCgkob3B0X2ltcG9ydF9uYW1lKTogTmV3IHJ1bGUgZm9yIGVtcHRyeSBvciAnPT0nIElELgoJKGV4cGxpbmUpOiBBZGQgb3B0X2ltcG9ydF9uYW1lIGFzIGxhc3QgbGluZSBlbGVtZW50LgoJKGltcGxpbmUpOiBMaWtld2lzZS4KCSogZGxsdG9vbC5jIChpZnVuY3QpOiBOZXcgbWVtYmVyIGl0c19uYW1lLgoJKGV4cG9ydCk6IExpa2V3aXNlLgoJKGFwcGVuZF9pbXBvcnQpOiBBZGQgaXRzX25hbWUgYXJndW1lbnQuCgkoZGVmZXhwb3J0cyk6IExpa2V3aXNlLgoJKGRlZmltcG9ydCk6IExpa2V3aXNlLgoJKHNjYW5fZHJlY3R2ZV9zeW1ib2xzKTogQWRqdXN0IGNhbGxzIHRvIGRlZl9leHBvcnRzLgoJKGR1bXBfZGVmX2luZm8pOiBQcmludCBuZXcgb3B0aW5hbCBpbXBvcnQvZXhwb3J0IHRhYmxlCglzeW1ib2wgbmFtZS4KCShnZW5lcmF0ZV9pZGF0YV9vZmlsZSk6IFVzZSBpdHNfbmFtZSBtZW1iZXIuCgkobWFrZV9vbmVfbGliX2ZpbGUpOiBMaWtld2lzZS4KCShuZnVuYyk6IFRha2UgaXRzX25hbWUgaW4gYWNjb3VudCBvbiBzb3J0LgoJKiBkbGx0b29sLmggKGRlZl9leHBvcnRzKTogQWRkIGl0c19uYW1lIGFzIGFyZ3VtZW50LgoJKGRlZl9pbXBvcnQpOiBMaWtld2lzZS4KCSogZG9jL2JpbnV0aWxzLnRleGk6IEFkZCBuZXcgZGVmIGZpbGUgc3ludGF4IGV4dGVuc2lvbi4KCSogZGVmbGV4LmwgKEVRVUFMKTogQWRkIHJ1bGUgZm9yICc9PScuCgkqIE5FV1M6IE1lbnRpb24gbmV3IGZlYXR1cmUuCgoyMDA5LTEwLTIzICBUaG9tYXMgQ291Z25hcmQgIDx0aG9tYXMuY291Z25hcmRAZ21haWwuY29tPgoKCSogcmVhZGVsZi5jIChkeW5hbWljX2luZm8pOiBDb3JyZWN0IHNpemUgb2YgYXJyYXkuCgoyMDA5LTEwLTIxICBCZW4gRWxsaXN0b24gIDxiamVAZ251Lm9yZz4KCgkqIE1BSU5UQUlORVJTIChCVUlMRCBTWVNURU0sIFRFU1RTVUlURVMpOiBSZW1vdmUgbXlzZWxmLgoKMjAwOS0xMC0xOSAgSmVya2VyIELkY2sgIDxqZXJrZXIuYmFja0BnbWFpbC5jb20+CgoJUFIgYmludXRpbHMvMTA3OTMKCSogcHJkYmcuYyAodGdfZW5kX3N0cnVjdF90eXBlKTogV2FybmluZyBmaXguCgoJUFIgYmludXRpbHMvMTA3OTIKCSogZGxsdG9vbC5jIChkbGxfbmFtZV9saXN0X2FwcGVuZCk6IERlY2xhcmUgdmFyaWFibGUgYXQgc3RhcnQKCW9mIGJsb2NrLgoJKGRsbF9uYW1lX2xpc3RfY291bnQsIGRsbF9uYW1lLWxpc3RfcHJpbnQpOiBMaWtld2lzZS4KCjIwMDktMTAtMTYgIERvdWcgRXZhbnMgIDxkamVAc2ViYWJlYWNoLm9yZz4KCgkqIE1BSU5UQUlORVJTOiBBZGQgbXlzZWxmIGFzIG0zMnIgbWFpbnRhaW5lci4KCjIwMDktMTAtMTYgIEplcmtlciBC5GNrIDxqZXJrZXIuYmFja0BnbWFpbC5jb20+CgoJUFIgMTA3NjQKCSogTWFrZWZpbGUuYW0gKHN5c2luZm8ubywgc3lzbGV4Lm8pOiBQbGFjZSBzb3VyY2UgZmlsZSBhZnRlciBhbGwKCWNvbW1hbmQgbGluZSBzd2l0Y2hlcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTEwLTE2ICBZYW5uIERyb25lYXVkICA8eWFubkBkcm9uZWF1ZC5mcj4KCglQUiAxMDc2OAoJKiBkbGx0b29sLmMgKGJmZF9nZXRfZXJybXNnKTogTmV3IG1hY3JvLgoJKHNjYW5fb2JqX2ZpbGUpOiBVc2UgaXQuCgkobWFrZV9vbmVfbGliX2ZpbGUpOiBVc2UgaXQuCgkobWFrZV9oZWFkKTogVXNlIGl0LgoJKG1ha2VfZGVsYXlfaGVhZCk6IFVzZSBpdC4KCShtYWtlX3RhaWwpOiBVc2UgaXQuCgkoZ2VuX2xpYl9maWxlKTogVXNlIGl0LgoJKGlkZW50aWZ5X2RsbF9mb3JfaW1wbGliKTogVXNlIGl0LgoJKGlkZW50aWZ5X3NlYXJjaF9hcmNoaXZlKTogIFVzZSBpdC4KCjIwMDktMTAtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKHVzYWdlKTogQWRkIG1lbnRpb24gb2YgLS1kZWJ1Zy1kdW1wPWZyYW1lcy1pbnRlcnAuCglXcmFwIG91dHB1dCB0byA4MCBjb2x1bW5zLgoJKiBvYmpkdW1wLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIGRvYy9iaW51dGlscy50ZXhpIChyZWFkZWxmKTogQWRkIG5vdGUgYWJvdXQgPWZyYW1lcy1pbnRlcnAuCgoyMDA5LTEwLTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYWRkcjJsaW5lLmMgKHNsdXJwX3N5bXRhYik6IERvbid0IHVzZSBiZmRfcmVhZF9taW5pc3ltYm9scy4KCjIwMDktMDktMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkb2MvYmludXRpbHMudGV4aSAoYysrZmlsdCk6IFJlbW92ZSBzcHVyaW91cyBkZXNjcmlwdGlvbiBvZgoJbm9uZXhpc3RlbnQgLS1qYXZhIGNvbW1hbmQgbGluZSBzd2l0Y2ggZm9yIGN4eGZpbHQuCgoyMDA5LTA5LTI5ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYzogQWRkIHN1cHBvcnQgZm9yIFJYIHRhcmdldC4KCSogTUFJTlRBSU5FUlM6IEFkZCBESiBhbmQgTmlja0MgYXMgbWFpbnRhaW5lcnMgZm9yIFJYLgoKMjAwOS0wOS0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZ3VyZS5pbjogRG9uJ3QgaW52b2tlIGNvbmZpZ3VyZS50Z3Qgb24gJGVuYWJsZV90YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA5LTA5LTI4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDEwNDc4CgkqIHJlYWRlbGYuYyAoZ2V0X2VsZl9zZWN0aW9uX2ZsYWdzKTogQWxsb3cgU0hOX0JFRk9SRSBhbmQKCVNITl9BRlRFUiBzZWN0aW9uIGxpbmsgdmFsdWVzIGluIHg4NiBiaW5hcmllcy4KCShwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IExpa2V3aXNlLgoKMjAwOS0wOS0yNSAgRG1pdHJ5IEdvcmJhY2hldiAgPGQuZy5nb3JiYWNoZXZAZ21haWwuY29tPgoKCVBSIDEwNjU2CgkqIHJlYWRlbGYuYzogUmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYXJhdGlvbiBvZiB2YXJpYWJsZSBkb193aWRlLgoJKiBkd2FyZi5oOiBBZGQgZXhwb3J0IG9mIGRvX3dpZGUuCgoyMDA5LTA5LTI0ICBDYXJ5IENvdXRhbnQgIDxjY291dGFudEBnb29nbGUuY29tPgoKCSogZHdhcmYuYyAoZ2V0X1RBR19uYW1lKTogQWRkIG1pc3NpbmcgRFdBUkYtMyBhbmQgbmV3IERXQVJGLTQgdGFncy4KCShnZXRfRk9STV9uYW1lKTogQWRkIG5ldyBEV0FSRi00IGZvcm1zLgoJKHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSk6IEFkZCBEV19GT1JNX3JlZl9zaWc4LCBEV19MQU5HX1B5dGhvbi4KCShnZXRfQVRfbmFtZSk6IEFkZCBuZXcgRFdBUkYtNCBhbmQgR05VLXNwZWNpZmljIGF0dHJpYnV0ZXMuCgkocHJvY2Vzc19kZWJ1Z19pbmZvKTogQWRkIGRvX3R5cGVzIHBhcmFtZXRlcjsgY2hhbmdlIGFsbCBjYWxsZXJzLgoJQWRkIHN1cHBvcnQgZm9yIC5kZWJ1Z190eXBlcyBzZWN0aW9ucy4KCShkaXNwbGF5X2RlYnVnX3R5cGVzKTogTmV3IGZ1bmN0aW9uLgoJKGRlYnVnX2Rpc3BsYXlzKTogQWRkIC5kZWJ1Z190eXBlcyBzZWN0aW9uLgoJKiByZWFkZWxmLmMgKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogQWRkIC5kZWJ1Z190eXBlcyBzZWN0aW9uLgoJKGRpc3BsYXlfZGVidWdfc2VjdGlvbik6IFNpbXBsaWZ5IGNhbGwgdG8gc3RyZXEuCgoyMDA5LTA5LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZGVsZi5jIChwcmludF9keW5hbWljX3N5bWJvbCk6IEZvcm1hdCBlbnRyaWVzIGFzIGZvcgoJbm9ybWFsIHN5bWJvbCB0YWJsZS4KCShwcm9jZXNzX3N5bWJvbF90YWJsZSk6IFVzZSAtN3MgZm9ybWF0IHN0cmluZyBmb3IgdmlzaWJpbGl0eS4KCjIwMDktMDktMjIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cmRzYW5kaWZvcmRAZ29vZ2xlbWFpbC5jb20+CgoJKiBvYmpkdW1wLmMgKGRpc2Fzc2VtYmxlX3NlY3Rpb24pOiBVc2UgYmZkX2dldF9hcmNoX3NpemUKCWluc3RlYWQgb2YgYXNzdW1pbmcgdGhhdCB0aGUgYWRkcmVzcyBzaXplIGlzIDMyIGJpdHMuCgoyMDA5LTA5LTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZGVsZi5jIChnZXRfcHBjX2R5bmFtaWNfdHlwZSk6IEFkZCBUTFNPUFQuCgkoZ2V0X3BwYzY0X2R5bmFtaWNfdHlwZSk6IExpa2V3aXNlLgoKMjAwOS0wOS0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgkqIHBvL3ZpLnBvOiBVcGRhdGVkIFZpZXRuYW1lc2UgdHJhbnNsYXRpb24uCgoyMDA5LTA5LTExICBQYXVsIFBsdXpobmlrb3YgIDxwcGx1emhuaWtvdkBnb29nbGUuY29tPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3ZlcnNpb25fc2VjdGlvbnMsIHByb2Nlc3Nfc3ltYm9sX3RhYmxlKToKCVVzZSBzeW1ib2xpYyBjb25zdGFudHMuCgoyMDA5LTA5LTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vYmludXRpbHMucG90OiBVcGRhdGVkIGJ5IHRoZSBUcmFuc2xhdGlvbiBwcm9qZWN0LgoKMjAwOS0wOS0xMSAgUGhpbGlwcGUgRGUgTXV5dGVyICA8cGhkbUBtYWNxZWwuYmU+CgoJKiBvYmNvcHkuYyAoY29weV9vYmplY3QpOiBOZXcgcGFyYW1ldGVyIGBpbnB1dF9hcmNoJywgYXJjaGl0ZWN0dXJlCglvZiBpbnB1dCBmaWxlLCBpZiBub3Qgc3BlY2lmaWVkIGluIGlucHV0IGZpbGUgaXRzZWxmOyBhbGwgY2FsbGVycwoJdXBkYXRlZDsgYGJpbmFyeV9hcmNoaXRlY3R1cmUnIGhhY2sgcmVtb3ZlZC4KCShjb3B5X2FyY2hpdmUsIGNvcHlfZmlsZSk6IE5ldyBwYXJhbWV0ZXIgYGlucHV0X2FyY2gnLCBmb3IKCWBjb3B5X29iamVjdCcgdXNhZ2UuCgkoY29weV9tYWluKTogQWNjZXB0IGAtQicgKGAtLWJpbmFyeS1hcmNoaXRlY3R1cmUnKSBvcHRpb24gYWxzbwoJZm9yIGFueSBhcmNoLWxlc3MgaW5wdXQgaWZpbGUgZm9ybWF0LCBub3Qgb25seSBgYmluYXJ5JzsgcmVtb3ZlCgliZmRfZXh0ZXJuYWxfYmluYXJ5X2FyY2hpdGVjdHVyZSBoYWNrOyBpbnN0ZWFkLCBhZGQgYGlucHV0X2FyY2gnCgl0byBjYWxscyB0byBgY29weV9maWxlJy4KCSogd2luZHJlcy5jLCB3aW5kbWMuYyA6IE9ic29sZXRlIGFuZCB1c2VsZXNzIGV4dGVybmFsIHJlZmVyZW5jZXMKCXRvIGBiZmRfZXh0ZXJuYWxfYmluYXJ5X2FyY2hpdGVjdHVyZScgb3IgYGJmZF9leHRlcm5hbF9tYWNoaW5lJwoJcmVtb3ZlZC4KCSogZG9jL2JpbnV0aWxzLnRleGk6IE1lbnRpb24gdGhhdCAtQiBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgZm9yIGFueQoJaW5wdXQgZmlsZSB0eXBlIHdoaWNoIGRvZXMgbm90IGhhdmUgaXRzIG93biBhcmNoaXRlY3R1cmUuCgoyMDA5LTA5LTEwICBNYXJ0aW4gVGh1cmVzc29uICA8bWFydGluQG10bWUub3JnPgoKCVVwZGF0ZSBzb3VyY2VzIHRvIGNvbXBpbGUgY2xlYW5seSB3aXRoIC1XYysrLWNvbXBhdDoKCSogYWRkcjJsaW5lLmMgKHNsdXJwX3N5bXRhYik6IEZpeCBjYXN0cy4gSW50cm9kdWNlIHZhcmlhYmxlCgltaW5pc3ltcyB0byBhdm9pZCBhbGlhc2luZyB2YXJuaW5nLgoJKiBhci5jOiBBZGQgY2FzdHMuCgkobm9ybWFsaXplKTogVXNlIG5hbWUgZGVsIGluc3RlYWQgb2YgZGVsZXRlLgoJKGRpc3BsYXlfdGFyZ2V0X2xpc3QsZGlzcGxheV9pbmZvX3RhYmxlKTogQ2hhbmdlIGxvb3AgY291bnRlcgoJdmFyaWFibGUgYSB0byBpbnQuCgkqIGJ1Y29tbS5jOiBBZGQgY2FzdHMuCgkqIGRlYnVnLmM6IFVwZGF0ZSBmdW5jdGlvbiB0byB1c2UgbmV3IG5hbWVzLgoJKHN0cnVjdCBkZWJ1Z19iYXNlY2xhc3MpOiBSZW5hbWUgbWVtYmVyIGZyb20gdmlydHVhbCB0bwoJaXNfdmlydHVhbC4KCShzdHJ1Y3QgZGVidWdfdHlwZV9zLCBzdHJ1Y3QgZGVidWdfZmllbGRfcywgc3RydWN0CglkZWJ1Z19iYXNlY2xhc3Nfcywgc3RydWN0IGRlYnVnX21ldGhvZF9zLCBzdHJ1Y3QKCWRlYnVnX21ldGhvZF92YXJpYW50X3MsIHN0cnVjdCBkZWJ1Z190eXBlX3MpOiBSZW5hbWUgc3RydWN0IGZyb20KCWF2b2lkIG5hbWUgY29sbGlzaW9uLgoJKiBkZWJ1Zy5oOiBVc2UgbmV3IHN0cnVjdCBuYW1lcy4KCSogZHdhcmYuYzogQWRkIGNhc3RzLgoJKGZyZWVfZGVidWdfbWVtb3J5KTogQ2hhbmdlIGxvb3AgY291bnRlciB2YXJpYWJsZSBhIHRvIGludC4KCSogaWVlZS5jOiBBZGQgY2FzdHMuCgkoZW51bSBpZWVlX3Zhcl9raW5kKTogTW92ZSB0byB0b3AgbGV2ZWwuCgkoaWVlZV9jbGFzc19iYXNlY2xhc3MpOiBSZW5hbWUgcGFyYW1ldGVyIHZpcnR1YWwgdG8gaXNfdmlydHVhbC4KCShpZWVlX2NsYXNzX21ldGhvZF92YXIpOiBSZW5hbWUgdmFyaWFibGUgdmlydHVhbCB0byBpc192aXJ0dWFsLgoJKiBubS5jOiBBZGQgY2FzdHMuCgkqIG9iamNvcHkuYzogQWRkIGNhc3RzLgoJKGNvcHlfYXJjaGl2ZSk6IFJlbmFtZSB2YXJpYWJsZSBkZWxldGUgdG8gZGVsLgoJKiBvYmpkdW1wLmM6IEFkZCBjYXN0cy4KCShkdW1wX2R3YXJmX3NlY3Rpb24pOiBDaGFuZ2UgbG9vcCBjb3VudGVyIHZhcmlhYmxlIGkgdG8gaW50LgoJKiBwcmRiZy5jOiBBZGQgY2FzdHMuCgkocHJfY2xhc3NfYmFzZWNsYXNzLHRnX2NsYXNzX2Jhc2VjbGFzcyk6IFJlbmFtZSBwYXJhbWV0ZXJzIHZpcnR1YWwKCXRvIGlzX3ZpcnR1YWwuCgkqIHJlYWRlbGYuYzogQWRkIGNhc3RzLgoJKHN0cnVjdCBpYTY0X3Vud190YWJsZV9lbnRyeSxzdHJ1Y3QgaHBwYV91bndfdGFibGVfZW50cnkpOiBNb3ZlIHRvCgl0b3AgbGV2ZWwuCgkqIHNpemUuYzogQWRkIGNhc3RzLgoJKiBzdGFicy5jIChwYXJzZV9zdGFiX3R5cGUsIHBhcnNlX3N0YWJfcmFuZ2VfdHlwZSwKCShwYXJzZV9zdGFiX2NwcF9hYmJyZXYpOiBSZW5hbWUgcGFyYW1ldGVyIGZyb20gdHlwZW5hbWUgdG8KCXR5cGVfbmFtZS4KCShwYXJzZV9zdGFiX2Jhc2VjbGFzc2VzKTogUmVuYW1lIHZhcmlhYmxlIHZpcnR1YWwgdG8gaXNfdmlydHVhbC4KCSogc3RyaW5ncy5jOiBBZGQgY2FzdHMuCgkqIHdyc3RhYnMuYyAoc3RhYl9jbGFzc19iYXNlY2xhc3MpOiBSZW5hbWUgcGFyYW1ldGVyIHZpcnR1YWwgdG8KCWlzX3ZpcnR1YWwuCgoyMDA5LTA5LTA5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDEwNDc4OgoJcmVhZGVsZi5jIChnZXRfZWxmX3NlY3Rpb25fZmxhZ3MpOiBBZGQgc3VwcG9ydCBmb3IgU0hGX0VYQ0xVREUgYW5kCglTSEZfT1JERVJFRC4KCShwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IFdhcm4gYWJvdXQgb3V0IG9mIHJhbmdlIHNoX2xpbmsKCXZhbHVlcy4gIFdoZW4gZGlzcGxheWluZyBkZXRhaWxlZCBzZWN0aW9uIGhlYWRlciBpbmZvcm1hdGlvbgoJYW5ub3RlIHRoZSBTSE5fQkVGT1JFIGFuZCBTSE5fQUZURVIgdmFsdWVzLgoKMjAwOS0wOS0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGR3YXJmLmMgKGJ5dGVfZ2V0X2xpdHRsZV9lbmRpYW4pOiBIYW5kbGUgc2l6ZSBvZiAzLgoJKGJ5dGVfZ2V0X2JpZ19lbmRpYW4pOiBMaWtld2lzZS4KCSogcmVhZGVsZi5jIChieXRlX3B1dF9saXR0bGVfZW5kaWFuKTogTGlrZXdpc2UuCgkoYnl0ZV9wdXRfYmlnX2VuZGlhbik6IExpa2V3aXNlLgoJKGlzXzI0Yml0X2Fic19yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShpc19ub25lX3JlbG9jKTogRm9ybWF0dGluZy4KCShhcHBseV9yZWxvY2F0aW9ucyk6IFVzZSBpc18yNGJpdF9hYnNfcmVsb2MuICBIYW5kbGUgcGogYW5kIHh0ZW5zYQoJcmVsb2MgcGVjdWxpYXJpdHkuCgoyMDA5LTA5LTA3ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGlzX25vbmVfcmVsb2MgPEVNX1hURU5TQV9PTEQ+LCBpc19ub25lX3JlbG9jIDxFTV9YVEVOU0E+KToKCU5ldy4KCjIwMDktMDktMDcgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KCgkqIGR3YXJmLmMgKHByb2Nlc3NfZGVidWdfaW5mbyk6IFN1cHBvcnQgc2VjdGlvbiBwYWRkaW5nIGFiYnJldiBjb2Rlcy4KCjIwMDktMDktMDcgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBwby9iaW51dGlscy5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDA5LTA5LTA1ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoc3lzZHVtcC5vKTogRGVwZW5kIG9uIHN5c3JvZmYuYy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTA5LTA1ICBNYXJ0aW4gVGh1cmVzc29uICA8bWFydGluQG10bWUub3JnPgoKCSogaWVlZS5jIChpZWVlX3JlYWRfY3h4X21pc2MsIGllZWVfcmVhZF9jeHhfY2xhc3MsCglpZWVlX3JlYWRfcmVmZXJlbmNlKTogUmVuYW1lIHZhcmlhYmxlcyBuYW1lZCBjbGFzcyB0byBjeHhjbGFzcy4KCjIwMDktMDktMDQgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBCUkFOQ0hFUzogQWRkIGJpbnV0aWxzLTJfMjAtYnJhbmNoLgoKMjAwOS0wOS0wNCAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIE5FV1M6IEFkZCBtYXJrZXIgZm9yIDIuMjAuCgoyMDA5LTA5LTA0ICBUaW1vIEtyZXV6ZXIgIDx0aW1vLmtyZXV6ZXJAd2ViLmRlPgoKCSogZGxsdG9vbC5jIChkZWxheWltcF9uYW1lKTogQWRkIG5ldyBnbG9iYWwgdmFyaWFibGUKCSh1c2FnZSwgbG9uZ19vcHRpb25zLCBtYWluKTogQWRkIG5ldyBvcHRpb24gIi15IiAvICItLW91dHB1dC1kZWxheWxpYiIKCShzdHJ1Y3QgbWFjKTogQWRkIGZpZWxkcyBob3dfZGxqdGFiX3NpemUsIGhvd19kbGp0YWJfcm9mZjEsCglob3dfZGxqdGFiX3JvZmYyLCBob3dfZGxqdGFiLCB0cmFtcG9saW5lLgoJKGkzODZfZGxqdGFiKTogQWRkIGJpbmFyeSBzdHViIGZvciB4ODYgZGVsYXkgaW1wb3J0LgoJKGkzODZfdHJhbXBvbGluZSk6IEFkZCB0ZXh0IGFzc2VtYmx5IHN0dWIgZm9yIHg4NiBkZWxheSBpbXBvcnQuCgkobXRhYmxlKTogQWRkIGRlbGF5IGltcG9ydCBkYXRhIGZvciBNMzg2IGFuZCBNWDg2IG9ubHkuCgkobWFrZV9kZWxheV9oZWFkKTogTmV3IGZ1bmN0aW9uLgoJKG1ha2Vfb25lX2xpYl9maWxlKTogTmV3IGFyZyBkZWxheSBjcmVhdGVzIGRlbGF5LWxvYWQgaW1wb3J0IHN0dWIuCgkoZ2VuX2xpYl9maWxlKTogTmV3IGFyZyBkZWxheSBsaWtld2lzZS4KCShIT1dfSlRBQiwgSE9XX0pUQUJfU0laRSwgSE9XX0pUQUJfUk9GRik6IE5ldyBhcmcgZGVsYXkgbGlrZXdpc2UuCgkoSE9XX0pUQUJfUk9GRjIsIEhPV19KVEFCX1JPRkYzKTogTmV3IG1hY3JvcyBmb3IgZGVsYXkgaW1wb3J0LgoJKG1ha2VfdGFpbCk6IENvbnZlcnQgaGFyZCBUQUJTIGVtYmVkZGVkIGluIHN0cmluZ3MgdG8gIlx0IiBlc2NhcGVzLgoJKiBORVdTOiBNZW50aW9uIG5ldyBmZWF0dXJlLiAgQWxzbyBmaXggd2hpdGVzcGFjZS4KCSogZG9jL2JpbnV0aWxzLnRleGk6IFVwZGF0ZWQgZGxsdG9vbCBkb2N1bWVudGF0aW9uLgoKMjAwOS0wOS0wMiAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIGNvbmZpZ3VyZS5jb206IERvIG5vdCBjb3B5IG1ha2VmaWxlLnZtcy1pbiB0byBtYWtlZmlsZS52bXMKCSogbWFrZWZpbGUudm1zLWluOiBSZW5hbWVkIHRvLi4uCgkqIG1ha2VmaWxlLnZtczogLi4uIHRoaXMgdXN1YWwgbmFtZSBhcyBpdCBpcyBub3QgcHJvY2Vzc2VkIGFueW1vcmUuCglSZW1vdmUgV1JJVEVfREVCVUdfT0JKUyAodW51c2VkKSBhbmQgcmVvcmRlciBvYmplY3QgZmlsZXMgZm9yCglvYmpkdW1wLmV4ZS4KCjIwMDktMDktMDEgIFJhbGYgV2lsZGVuaHVlcyAgPFJhbGYuV2lsZGVuaHVlc0BnbXguZGU+CgoJKiBNYWtlZmlsZS5hbSAoYXJwYXJzZS5vLCBhcmxleC5vLCBzeXNyb2ZmLm8sIGRlZnBhcnNlLm8pCgkoZGVmbGV4Lm8sIG5sbWhlYWRlcnMubywgcmNwYXJzZS5vLCBtY3BhcnNlLm8pOiBTdXBwbHkgY29ycmVjdAoJc291cmNlIGZpbGUgbmFtZSBmb3IgZ2VuZXJhdGVkIGZpbGVzIHdoaWNoIG1heSBiZSBpbiAkKHNyY2RpcikuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOS0wOS0wMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogdmVyc2lvbi5jIChwcmludF92ZXJzaW9uKTogQ2hhbmdlIHRvICJDb3B5cmlnaHQgMjAwOSIuCgoyMDA5LTA5LTAxICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogbWFrZWZpbGUudm1zLWluOiBSZW1vdmUgdW51c2VkIFZFUlNJT04gdmFyaWFibGUuICBSZW1vdmUgdW51c2VkCglkZXBlbmRlbmNpZXMuCgkqIGNvbmZpZ3VyZS5jb206IFBvcnRlZCB0byBJdGFuaXVtIFZNUy4gIENyZWF0ZSBidWlsZC5jb20gRENMIHNjcmlwdC4KCjIwMDktMDgtMjkgIE1hcnRpbiBUaHVyZXNzb24gIDxtYXJ0aW5AbXRtZS5vcmc+CgoJKiBubG1jb252LmMgKG1haW4pOiBSZW5hbWUgdmFyaWFibGUgbmV3IHRvIG5ld19uYW1lLgoKMjAwOS0wOC0yOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogTWFrZWZpbGUuYW0gKHN5c2luZm8kKEVYRUVYVF9GT1JfQlVJTEQpKTogUmVwbGFjZQoJQ0ZMQUdTL0xERkxBR1Mgd2l0aCBDRkxBR1NfRk9SX0JVSUxEL0xERkxBR1NfRk9SX0JVSUxELgoJKHN5c2xleC5vKTogTGlrZXdpc2UuCgkoc3lzaW5mby5vKTogTGlrZXdpc2UuCgkoYmluMmMkKEVYRUVYVF9GT1JfQlVJTEQpKTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDktMDgtMjcgIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoKCSogZG9jL2JpbnV0aWxzLnRleGkgKC0tb25seS1rZWVwLWRlYnVnKTogUmVsb2NhdGUgc3RyYXkgcGFyYSBoZXJlIC4uLgoJKC0tc3Vic3lzdGVtKTogLi4uIGZyb20gaGVyZS4KCjIwMDktMDgtMjQgIENhcnkgQ291dGFudCAgPGNjb3V0YW50QGdvb2dsZS5jb20+CgoJKiBvYmpkdW1wLmMgKGZpbmRfc3ltYm9sX2Zvcl9hZGRyZXNzKTogQXZvaWQgY29zdGx5IGNhbGwgdG8KCWJmZF9vY3RldHNfcGVyX2J5dGUuCgoyMDA5LTA4LTI0ICBSYWxmIFdpbGRlbmh1ZXMgIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgoKCSogTWFrZWZpbGUuYW0gKGFtX19za2lwbGV4LCBhbV9fc2tpcHlhY2MpOiBOZXcuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOS0wOC0yMyAgUmFsZiBXaWxkZW5odWVzICA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KCgkqIE1ha2VmaWxlLmFtIChzeXNsZXgubyk6IERlcGVuZCBvbiBzeXNpbmZvLmggY29uZmlnLmguCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOS0wOC0yMiAgUmFsZiBXaWxkZW5odWVzICA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KCgkqIE1ha2VmaWxlLmFtIChBTV9DUFBGTEFHUyk6IFJlbmFtZWQgZnJvbSAuLi4KCShJTkNMVURFUyk6IC4uLiB0aGlzLgoJKGJpbjJjJChFWEVFWFRfRk9SX0JVSUxEKTogQWRqdXN0IHJ1bGUuCgkoaW5zdGFsbGNoZWNrLWxvY2FsKTogUmVuYW1lZCBmcm9tIC4uLgoJKGluc3RhbGxjaGVjayk6IC4uLiB0aGlzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIE1ha2VmaWxlLmFtIChBVVRPTUFLRV9PUFRJT05TKTogUmVtb3ZlIGN5Z251cywgYWRkIG5vLWRpc3QgYW5kCglmb3JlaWduLgoJKE1LREVQLCBDTEVBTkZJTEVTKTogUmVtb3ZlIG5vdy11bm5lZWRlZCB2YXJpYWJsZXMuCgkoREVQLCBERVAxLCBkZXAuc2VkLCBkZXAsIGRlcC1pbiwgZGVwLWFtKTogUmVtb3ZlLgoJKG1rZGVwIHNlY3Rpb24pOiBSZW1vdmUuCgkoQlVJTFRfU09VUkNFUyk6IE5ldyB2YXJpYWJsZSwgbGlzdCAkKEdFTkVSQVRFRF9IRklMRVMpLgoJKEVYVFJBX2FyX1NPVVJDRVMpOiBOZXcsIGxpc3QgJChDRklMRVMpLgoJKHN5c2xleC5vKTogRGVwZW5kIG9uIHN5c2xleC5jLgoJKHN5c2luZm8ubyk6IERlcGVuZCBvbiBzeXNpbmZvLmMuCgkoYXJwYXJzZS5oLCBkZWZwYXJzZS5oLCBubG1oZWFkZXJzLmggcmNwYXJzZS5oIG1jcGFyc2UuaCk6CglSZW1vdmUgZGVwZW5kZW5jaWVzLCBub3cgdHJhY2tlZCBieSBhdXRvbWFrZS4KCShzcmNvbnYubyk6IERlcGVuZCBvbiBzeXNyb2ZmLmMuCgkob2JqZHVtcC5vLCBhcnBhcnNlLm8sIGFybGV4Lm8sIHN5c3JvZmYubywgZGVmcGFyc2UubywgZGVmbGV4Lm8pCgkobmxtaGVhZGVyLm8sIHJjcGFyc2UubywgbWNwYXJzZS5vLCByY2xleC5vLCBtY2xleC5vLCBkbGx0b29sLm8pCgkocmVzY29mZi5vLCBubG1jb252Lm8pOiBSZXdyaXRlIHVzaW5nIGF1dG9tYWtlLXN0eWxlIGRlcGVuZGVuY3kKCXRyYWNraW5nIHJ1bGVzOyBvbmx5IGxpc3QgdGhlIGRlcGVuZGVuY3kgdXBvbiB0aGUgcHJpbWFyeSBzb3VyY2UKCWZpbGUsIGJ1dCBubyBpbmNsdWRlZCBoZWFkZXJzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIE1ha2VmaWxlLmFtIChpbnN0YWxsLXBkZiwgaW5zdGFsbC1wZGYtcmVjdXJzaXZlLCBpbnN0YWxsLWh0bWwpCgkoaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSk6IFJlbW92ZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5hbSAocGRmX19zdHJpcF9kaXIsIGluc3RhbGwtcGRmLCBpbnN0YWxsLXBkZi1hbSkKCShodG1sX19zdHJpcF9kaXIsIGluc3RhbGwtaHRtbCwgaW5zdGFsbC1odG1sLWFtKTogUmVtb3ZlLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogTGlrZXdpc2UuCgkqIGNvbmZpZy5pbjogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZTogTGlrZXdpc2UuCgkqIGRvYy9NYWtlZmlsZS5pbjogTGlrZXdpc2UuCgoyMDA5LTA4LTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChpc18zMmJpdF9hYnNfcmVsb2MpOiBUcmVhdCBSX1BBUklTQ19TRUNSRUwzMiBhcyBhCgkzMi1iaXQgYWJzb2x1dGUgcmVsb2MgZm9yIHRoZSBwdXJwb3NlcyBvZiBwcm9jZXNzaW5nIGRlYnVnCglzZWN0aW9ucy4KCjIwMDktMDgtMTAgIERhbmllbCBHdXRzb24gIDxkZ3V0c29uQGNvZGVzb3VyY2VyeS5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9hcm1fc2VjdGlvbl90eXBlX25hbWUpOiBBZGRlZCBzdXBwb3J0IGZvcgoJbmV3IHNlY3Rpb25zIGhlYWRlcnMuCgoyMDA5LTA4LTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgYmludXRpbHMvMTAzNjQKCSogb2JqY29weS5jIChzdHJpcF9tYWluKTogQ2hlY2sgcmV0dXJuIGZyb20gc21hcnRfcmVuYW1lLgoJKGNvcHlfbWFpbik6IExpa2V3aXNlLgoKMjAwOS0wNy0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiAxMDQxMwoJKiBvYmpkdW1wLmMgKGR1bXBfc2VjdGlvbl9oZWFkZXIpOiBTa2lwIHNlY3Rpb25zIHRoYXQgd2UgYXJlCglpZ25vcmluZy4KCjIwMDktMDctMjUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIHJlYWRlbGYuYyAoZ3Vlc3NfaXNfcmVsYSk6IEhhbmRsZSBFTV9MMU9NLgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBMaWtld2lzZS4KCShnZXRfbWFjaGluZV9uYW1lKTogTGlrZXdpc2UuCgkoZ2V0X3NlY3Rpb25fdHlwZV9uYW1lKTogTGlrZXdpc2UuCgkoZ2V0X2VsZl9zZWN0aW9uX2ZsYWdzKTogTGlrZXdpc2UuCgkoZ2V0X3N5bWJvbF9pbmRleF90eXBlKTogTGlrZXdpc2UuCgkoaXNfMzJiaXRfYWJzX3JlbG9jKTogTGlrZXdpc2UuCgkoaXNfMzJiaXRfcGNyZWxfcmVsb2MpOiBMaWtld2lzZS4KCShpc182NGJpdF9hYnNfcmVsb2MpOiBMaWtld2lzZS4KCShpc182NGJpdF9wY3JlbF9yZWxvYyk6IExpa2V3aXNlLgoJKGlzX25vbmVfcmVsb2MpOiBMaWtld2lzZS4KCjIwMDktMDctMjMgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfc3ltYm9sX2JpbmRpbmcpOiBGb3IgTGludXggdGFyZ2V0ZWQgZmlsZXMgcmV0dXJuCglVTklRVUUgZm9yIHN5bWJvbHMgd2l0aCB0aGUgU1RCX0dOVV9VTklRVUUgYmluZGluZy4KCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IHRoZSBtZWFuaW5nIG9mIHRoZSAndScgc3ltYm9sCgliaW5kaW5nIGluIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIG9iamR1bXAgLS1zeW1zLgoKMjAwOS0wNy0yMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogTkVXUzogTWVudGlvbiAtLWluc24td2lkdGguCgoJKiBvYmpkdW1wLmMgKGluc25fd2lkdGgpOiBOZXcuCgkodXNhZ2UpOiBEaXNwbGF5IC0taW5zbi13aWR0aC4KCShvcHRpb25fdmFsdWVzKTogQWRkIE9QVElPTl9JTlNOX1dJRFRILgoJKGxvbmdfb3B0aW9ucyk6IEFkZCAtLWluc24td2lkdGguCgkoZGlzYXNzZW1ibGVfYnl0ZXMpOiBIYW5kbGUgaW5zbl93aWR0aC4KCShtYWluKTogSGFuZGxlIE9QVElPTl9JTlNOX1dJRFRILgoKCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IC0taW5zbi13aWR0aC4KCjIwMDktMDctMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkd2FyZi5jIChkaXNwbGF5X2RlYnVnX2xpbmVzKTogSWYgZG9fZGVidWdfbGluZXMgaGFzIG5vdCBiZWVuCglzZXQgdGhlbiBkZWZhdWx0IHRvIGRpc3BsYXlpbmcgcmF3IC5kZWJ1Z19saW5lIHNlY3Rpb24gY29udGVudHMuCgoyMDA5LTA3LTE0ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CgoJU3VwcG9ydCB1bm9yZGVyZWQgLmRlYnVnX2luZm8gcmVmZXJlbmNlcyB0byAuZGVidWdfcmFuZ2VzLgoJKiBkd2FyZi5jIChzdHJ1Y3QgcmFuZ2VfZW50cnksIHJhbmdlX2VudHJ5X2NvbXBhcik6IE5ldy4KCShkaXNwbGF5X2RlYnVnX3Jhbmdlcyk6IFJlbW92ZSB2YXJpYWJsZXMgbGFzdF9vZmZzZXQsIGZpcnN0LCBqLAoJc2Vlbl9maXJzdF9vZmZzZXQsIHVzZV9kZWJ1Z19pbmZvIGFuZCBuZXh0LiAgTmV3IHZhcmlhYmxlcwoJcmFuZ2VfZW50cmllcyBhbmQgcmFuZ2VfZW50cnlfZmlsbC4gIENyZWF0ZSB0aGUgc29ydGVkIGNvcHkKCXJhbmdlX2VudHJpZXMuICBSZW1vdmUgdGhlIEZJWE1FIGVycm9yIG9uIGRldGVjdGVkIHVub3JkZXJlZCByZWZlcmVuY2VzLgoJKiBkd2FyZi5oIChkZWJ1Z19pbmZvIDxyYW5nZV9saXN0cz4pOiBOZXcgY29tbWVudC4KCjIwMDktMDctMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgMTAzODAKCSogUkVBRE1FOiBEb2N1bWVudCB1c2Ugb2YgTERGTEFHUz0iLS1zdGF0aWMiLgoKMjAwOS0wNy0xMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDA5LTA3LTEwICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoZHdhcmYubyk6IFJlZmVyIHRvIGR3YXJmMi5oLCBub3QgZWxmL2R3YXJmMi5oLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCSogZHdhcmYuYzogSW5jbHVkZSBkd2FyZjIuaCwgbm90IGVsZi9kd2FyZjIuaC4KCjIwMDktMDctMDYgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBvYmpkdW1wLmMgKGR1bXBfZHdhcmZfc2VjdGlvbik6IEhhbmRsZSAuZWhfZnJhbWUgbGlrZSBvdGhlciBkd2FyZgoJc2VjdGlvbnMuCgkqIGR3YXJmLmggKHN0cnVjdCBkd2FyZl9zZWN0aW9uX2Rpc3BsYXkpOiBSZW1vdmUgZWhfZnJhbWUgZmllbGQuCgkqIGR3YXJmLmMgKGRlYnVnX2Rpc3BsYXlzKTogQWRqdXN0IGZvciByZW1vdmVkIGZpZWxkLgoKMjAwOS0wNy0wMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBkd2FyZi5jIChkZWNvZGVfbG9jYXRpb25fZXhwcmVzc2lvbik6IEhhbmRsZSBEV19PUF9zdGFja192YWx1ZQoJYW5kIERXX09QX2ltcGxpY2l0X3ZhbHVlLgoKMjAwOS0wNy0wMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiA2NzE0CgkqIHJjbGV4LmMgKGhhbmRsZV9xdW90ZXMpOiBEbyBub3QgY29tcGxhaW4gYWJvdXQgd2hpdGVzcGFjZQoJc2VwYXJhdGluZyBxdW90ZWQgc3RyaW5ncy4KCShyY2xleF9zdHJpbmcpOiBJZ25vcmUgd2hpdGVzcGFjZSB3aGVuIGxvb2tpbmcgZm9yIGEgbmV3IG9wZW5pbmcKCXF1b3RlIGZvbGxvd2luZyBhIGNsb3NpbmcgcXVvdGUuCgoyMDA5LTA2LTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgYmludXRpbHMvMTAzMjEKCSogYnVjb21tLmMgKGdldF9maWxlX3NpemUpOiBSZXR1cm4gLTEgb24gZXJyb3IuCgoJKiBvYmpjb3B5LmMgKGNvcHlfZmlsZSk6IFJlcG9ydCBlbXB0eSBmaWxlLgoKMjAwOS0wNi0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGR3YXJmLmMgKGRpc3BsYXlfZGVidWdfbGluZXNfcmF3KTogSW5jbHVkZSB0aGUgbmFtZSBvZiB0aGUKCXNlY3Rpb24gaW4gd2FybmluZyBtZXNzYWdlLgoJKHN0cnVjdCBkZWJ1Z19kaXNwbGF5KTogRW5hYmxlIHJlbG9jIHByb2Nlc3NpbmcgZm9yIC5kZWJ1Z19saW5lCglhbmQgLmRlYnVnX3JhbmdlcyBzZWN0aW9ucy4KCgkqIHJlYWRlbGYuYzogQWRkIC0tcmVsb2NhdGVkLWR1bXAgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBkdW1wIHRoZQoJcmVsb2NhdGVkIGNvbnRlbnRzIG9mIGEgc3BlY2lmaWVkIHNlY3Rpb24uCgkocmVxdWVzdF9kdW1wKTogTmV3IGZ1bmN0aW9uLgoJKHBhcnNlX2FyZ3MpOiBVc2UgaXQuCgkoZHVtcF9zZWN0aW9uX2FzX2J5dGVzKTogQWRkIHBhcmFtZXRlciB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZQoJY29udGVudHMgc2hvdWxkIGJlIHJlbG9jYXRlZC4KCSh0YXJnZXRfc3BlY2lmaWNfcmVsb2NfaGFuZGxpbmcpOiBBZGQgY29kZSBmb3IgYSBSX01OMTAzMDBfMTYKCXJlbG9jIGZvdW5kIGFmdGVyIGEgUl9NTjEwMzAwX1NZTV9ESUZGIHJlbG9jLgoJKGRlYnVnX2FwcGx5X3JlbG9jYXRpb25zKTogUmVuYW1lIHRvIGFwcGx5X3JlbG9jYXRpb25zLgoJKGdldF9zZWN0aW9uX2NvbnRlbnRzKTogTmV3IGZ1bmN0aW9uLiAgUmVwbGFjZXMgY29tbW9uIGNvZGUgZm91bmQKCWluIGR1bXBfc2VjdGlvbl9hc19zdHJpbmdzIGFuZCBkdW1wX3NlY3Rpb25fYXNfYnl0ZXMuCgkqIGRvYy9iaW51dGlscy50ZXhpOiBEb2N1bWVudCBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbi4KCSogTkVXUzogTWVudGlvbiB0aGUgbmV3IGZlYXR1cmUuCgoyMDA5LTA2LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jICh0YXJnZXRfc3BlY2lmaWNfcmVsb2NfaGFuZGxpbmcpOiBOZXcgZnVuY3Rpb246CglQcm9jZXNzZXMgcmVsb2NzIGluIGEgdGFyZ2V0IHNwZWNpZmljIG1hbm5lci4KCShkZWJ1Z19hcHBseV9yZWxvY2F0aW9ucyk6IFVzZSB0aGUgbmV3IGZ1bmN0aW9uLgoJKiBkd2FyZi5jIChkaXNwbGF5X2RlYnVnX2xvYyk6IEVuZCB0aGUgZHVtcCB3aXRoIGEgYmxhbmsgbGluZS4KCShzdHJ1Y3QgZGVidWdfZGlzcGxheSk6IEVuYWJsZSByZWxvYyBwcm9jZXNzaW5nIGZvciAuZGVidWdfYXJhbmdlcwoJYW5kIC5kZWJ1Z19sb2Mgc2VjdGlvbnMuCgoyMDA5LTA2LTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXIuYyAodXNhZ2UpOiBEbyBub3QgdXNlICNpZmRlZiBpbnNpZGUgXygiLi4uKS4KCSogbm0uYyAodXNhZ2UpOiBMaWtld2lzZS4KCjIwMDktMDYtMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgMTAyODgKCSogb2JqZHVtcC5jIChkaXNhc3NlbWJsZV9ieXRlcyk6IFNldCB0aGUKCVVTRVJfU1BFQ0lGSUVEX01BQ0hJTkVfVFlQRSBmbGFnIGluIHRoZSBkaXNhc3NlbWJsZV9pbmZvIHN0cnVjdHVyZQoJaWYgdGhlIHVzZXIgaGFzIGludm9rZWQgdGhlIC1tIHN3aXRjaC4KCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IHRoZSBhZGRpdGlvbmFsIGJlaGF2aW91ciBvZgoJb2JqZHVtcCdzIC1tIHN3aXRjaCBmb3IgQVJNIHRhcmdldHMuCgoyMDA5LTA2LTE4ICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogTWVyZ2UgY2VnY2MgYW5kIG1pbmd3MzJjZSB0YXJnZXQgbmFtZSBjaGFuZ2VzIGZyb20KCUNlR0NDIHByb2plY3QuCgoyMDA3LTEyLTI1ICBQZWRybyBBbHZlcyAgPHBlZHJvX2FsdmVzQHBvcnR1Z2FsbWFpbC5wdD4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGFybSotKi1jZWdjYyogYW5kIGFybSotKi1taW5ndzMyY2UqIHRhcmdldHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDktMDYtMTUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgMTAyNjMKCSogb2JqZHVtcC5jIChkaXNhc3NlbWJsZV9ieXRlcyk6IFNldCB0aGUgRElTQVNTRU1CTEVfREFUQSBiaXQgaW4KCXRoZSBmbGFncyBmaWVsZCBvZiB0aGUgZGlzYXNzZW1ibGVfaW5mbyBzdHJ1Y3R1cmUgaWYgdGhlIC1EIHN3aXRjaAoJaXMgaW4gb3BlcmF0aW9uLgoKMjAwOS0wNi0xMiAgSG9tZXIgWGluZyAgPGhvbWVyLnhpbmdAeWFob28uY29tPgoKCSogTkVXUzogTWVudGlvbiBuZXcgZmVhdHVyZSBhZGRlZCB0byBncHJvZi4KCjIwMDktMDYtMTIgIEpvaG4gUmVpc2VyICA8anJlaXNlckBCaXRXYWdvbi5jb20+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3Nfc3ltYm9sX3RhYmxlKTogU2V0IGdudWJ1Y2tldHMgdG8gTlVMTCBhZnRlcgoJZnJlZWluZyBpdCBhbmQgYmVmb3JlIHJldHVybmluZy4KCjIwMDktMDYtMTIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3N5bWJvbF90YWJsZSk6IERvbid0IHJldHVybiBlYXJseSBpZgoJLmhhc2gvLmdudS5oYXNoIGlzIGVtcHR5L3VudXNhYmxlIGFuZCBub3QgLUQuCgoyMDA5LTA2LTA5ICBUb20gQnJhbWVyICA8dGpiQHBvc3Rwcm8ubmV0PgoKCVBSIDEwMTY1CgkqIHdpbmR1bmkuYyAod2luZF9NdWx0aUJ5dGVUb1dpZGVDaGFyKTogRG8gbm90IHBhc3MgTUJfUFJFQ09NUE9TRUQKCXRvIE11bHRpQnl0ZVRvV2lkZUNoYXIgd2hlbiB1c2luZyB0aGUgQ1BfVVRGOCBvciBDT19VVEY3IHR5cGVzLgoKMjAwOS0wNi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHN0cmluZ3MuYyAobWFpbik6IERlbGF5IHBhcnNpbmcgb2YgZGVjaW1hbCBkaWdpdHMuCgoyMDA5LTA2LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZGVwLWluLnNlZDogRG9uJ3QgdXNlIFxuIGluIHJlcGxhY2VtZW50IHBhcnQgb2YgcyBjb21tYW5kLgoJKiBNYWtlZmlsZS5hbSAoREVQMSk6IExDX0FMTCBmb3IgdW5pcS4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDktMDYtMDMgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIG15c2VsZiBhcyBNYWNoLU8gbWFpbnRhaW5lci4KCjIwMDktMDYtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgMTAxOTkKCSogZG9jL2JpbnV0aWxzLnRleGkgKG5tKTogQ29ycmVjdCAtUyBkZXNjcmlwdGlvbi4KCjIwMDktMDUtMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9kYS5wbzogVXBkYXRlZCBEYW5pc2ggdHJhbnNsYXRpb24uCgoyMDA5LTA1LTI4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX3NlY3Rpb24pOiBEbyBub3QgZGlzcGxheSBkZWJ1ZyBzZWN0aW9ucwoJd2l0aCB0aGUgTk9CSVRTIHNlY3Rpb24gdHlwZS4KCjIwMDktMDUtMjcgIFJhZmFlbCBBdmlsYSBkZSBFc3BpbmRvbGEgIDxlc3BpbmRvbGFAZ29vZ2xlLmNvbT4KCgkqIGFjbG9jYWwubTQ6IEluY2x1ZGUgLi4vY29uZmlnL3BsdWdpbnMubTQuCgkqIGNvbmZpZ3VyZS5pbjogVXNlIEFDX1BMVUdJTlMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDktMDUtMjcgIFJhZmFlbCBBdmlsYSBkZSBFc3BpbmRvbGEgIDxlc3BpbmRvbGFAZ29vZ2xlLmNvbT4KCgkqIGFyLmMgKG1haW4pOiBDYWxsIGJmZF9wbHVnaW5fc2V0X3Byb2dyYW1fbmFtZS4KCSogbm0uYyAobWFpbik6IENhbGwgYmZkX3BsdWdpbl9zZXRfcHJvZ3JhbV9uYW1lLgoKMjAwOS0wNS0yNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHN5c2R1bXAuYyAodGFiKTogVXNlIHB1dHMgcmF0aGVyIHRoYW4gdHdvIHByaW50ZnMuCgoyMDA5LTA1LTI2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vaWQucG86IFVwZGF0ZWQgSW5kb25lc2lhbiB0cmFuc2xhdGlvbi4KCSogcG8vYmludXRpbHMucG90OiBVcGRhdGVkIHRlbXBsYXRlIGZpbGUuCgoyMDA5LTA1LTI2ICBSYWZhZWwgQXZpbGEgZGUgRXNwaW5kb2xhICA8ZXNwaW5kb2xhQGdvb2dsZS5jb20+CgoJKiBhci5jOiBJbmNsdWRlIHBsdWdpbi5oLgoJKG1haW4pOiBIYW5kbGUgdGhlIC0tcGx1Z2luIG9wdGlvbi4KCSogbm0uYzogSW5jbHVkZSBwbHVnaW4uaC4KCShPUFRJT05fUExVR0lOKTogTmV3LgoJKGxvbmdfb3B0aW9ucyk6IEFkZCBwbHVnaW4uCgkobWFpbik6IEhhbmRsZSBPUFRJT05fUExVR0lOLgoJKiBORVdTOiBNZW50aW9uICB0aGUgbmV3IGZlYXR1cmUuCgkqIGRvYy9iaW51dGlsczogRG9jdW1lbWVudCB0aGUgbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zLgoJKiBjb25maWd1cmUuaW46IENoZWNrIGZvciAtLWVuYWJsZS1wbHVnaW5zLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA5LTA1LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZGVwLWluLnNlZDogT3V0cHV0IG9uZSBmaWxlbmFtZSBwZXIgbGluZSB3aXRoIGFsbCBsaW5lcyBoYXZpbmcKCWNvbnRpbnVhdGlvbiBiYWNrc2xhc2guICBQcmVmaXggZmlyc3QgbGluZSB3aXRoICJBIiwgZm9sbG93aW5nCglsaW5lcyB3aXRoICJCIi4KCSogTWFrZWZpbGUuYW0gKERFUCk6IERvbid0IHVzZSBkZXAuc2VkIGhlcmUuCgkoREVQMSk6IFJ1biAkTUtERVAgb24gc2luZ2xlIGZpbGVzLCB1c2UgZGVwLnNlZCBoZXJlIG9uIGRlcGVuZGVuY2llcywKCXNvcnQgYW5kIHVuaXEuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOS0wNS0yNSAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIG1ha2VmaWxlLnZtcy1pbjogRml4IENGTEFHUywgYWRkIGFkZHIybGluZS5leGUgdGFyZ2V0LgoKCSogY29uZmlndXJlLmNvbTogRml4IGl0OiBoYW5kbGUgYWxsb2NhIGFuZCBkZWZpbmUgVEFSR0VUIGluIGNvbmZpZy5oLgoKMjAwOS0wNS0yMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTA1LTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogb2JqY29weS5jIChzZXRfbG9uZ19zZWN0aW9uX21vZGUpOiBDaGVjayBpbnB1dF9iZmQgaXMgY29mZgoJYmVmb3JlIGFjY2Vzc2luZyBjb2ZmIHNwZWNpZmljIGZpZWxkcyBvZiBiZmQuCgoyMDA5LTA1LTA5ICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCgkqIE1BSU5UQUlORVJTOiAgQWRkIG15c2VsZiBhcyBQRS9DT0ZGIGNvLW1haW50YWluZXIuCgoyMDA5LTA1LTA4ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIHdpbmR1bmkuYyAoaWNvbnZfb25lY2hhcik6IE9ubHkgZGVmaW5lIHdoZW4gSEFWRV9JQ09OVgoJaXMgZGVmaW5lZCwgYnV0IG5vdCB3aGVuIF9fQ1lHV0lOX18gb3IgX1dJTjMyIGFyZSBkZWZpbmVkLgoJU2VlIHdpbmRfaWNvbnZfY3AgZm9yIGNhbGwgbG9naWMgb2YgdGhpcyBsb2NhbCBmdW50aW9uLgoKMjAwOS0wNS0wNSAgR3VpbGxhdW1lIER1aGFtZWwgIDxndWlsbGF1bWUuZHVoYW1lbEBnbWFpbC5jb20+CgoJUFIgMTAxMDkKCSogd2luZHVuaS5jOiBSZXBsYWNlIHRlc3Qgb2YgSEFWRV9JQ09OVl9IIHdpdGggYSB0ZXN0IG9mCglIQVZFX0lDT05WLgoJKGljb252X29uZWNoYXIpOiBVc2UgSUNPTlZfQ09OU1QgaW5zdGVhZCBvZiAiY29uc3QiLgoJKHdpbmRfTXVsdGlCeXRlVG9XaWRlQ2hhcik6IEluaXRpYWxpc2UgbG9jYWwgc3RyaW5ncy4KCjIwMDktMDQtMzAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGR1bXBfcmVsb2NhdGlvbnMpOiBEaXNwbGF5IGEgcmVsb2NhdGlvbiBhZ2FpbnN0IGFuCglpZnVuYyBzeW1ib2wgYXMgaWYgaXQgd2VyZSBhIGZ1bmN0aW9uIGludm9jYXRpb24uCgkoZ2V0X3N5bWJvbF90eXBlKTogSGFuZGxlIFNUVF9HTlVfSUZVTkMuCgoyMDA5LTA0LTI5ICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CgoJKiBORVdTOiBUd2VhayB2ZXJpbG9nIHN1cHBvcnQgZGVzY3JpcHRpb24uCgoyMDA5LTA0LTI5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoJICAgIERlbmlzIFNjaGVyYmFrb3YgPGRlbmlzX3NjaGVyYmFrb3ZAeWFob28uY29tPgoKCSogcmVhZGVsZi5jIChzbHVycF9pYTY0X3Vud2luZF90YWJsZSk6IENvcnJlY3QgNjQtYml0IHVud2luZCB0YWJsZQoJcmVhZCwgYW5kIG1lcmdlIHdpdGggMzItYml0IGNhc2UuCgoyMDA5LTA0LTI3ICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CgoJKiBORVdTOiBNZW50aW9uIHZlcmlsb2cgc3VwcG9ydCBhZGRlZCB0byBiZmQuCgoyMDA5LTA0LTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBvYmpjb3B5LmMgKGNvcHlfb2JqZWN0KTogQ29weSBwZV9vcHRoZHIgYmVmb3JlIGNoYW5naW5nIFBFCglwYXJhbWV0ZXJzLgoKMjAwOS0wNC0yNCAgQ2FyeSBDb3V0YW50ICA8Y2NvdXRhbnRAZ29vZ2xlLmNvbT4KCgkqIGR3YXJmLmMgKHByb2Nlc3NfZXh0ZW5kZWRfbGluZV9vcCk6IEFkZCBEV19MTkVfc2V0X2Rpc2NyaW1pbmF0b3IuCglBZGQgbWlzc2luZyBuZXdsaW5lcyB0byBIUCBleHRlbnNpb25zLgoKMjAwOS0wNC0xNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogb2JqY29weS5jIChzZXRfcGVfc3Vic3lzdGVtKTogUmVwbGFjZSBlZmktcm9tIHdpdGggc2FsLXJ0ZC4KCSogZG9jL2JpbnV0aWxzLnRleGk6IExpa2V3aXNlLgoKMjAwOS0wNC0xNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGJpbnV0aWxzLzEwMDc0CgkqIG9iamNvcHkuYzogSW5jbHVkZSBjb2ZmL2kzODYuaCBhbmQgY29mZi9wZS5oLgoJKHBlX2ZpbGVfYWxpZ25tZW50KTogTmV3LgoJKHBlX2hlYXBfY29tbWl0KTogTGlrZXdpc2UuCgkocGVfaGVhcF9yZXNlcnZlKTogTGlrZXdpc2UuCgkocGVfaW1hZ2VfYmFzZSk6IExpa2V3aXNlLgoJKHBlX3NlY3Rpb25fYWxpZ25tZW50KTogTGlrZXdpc2UuCgkocGVfc3RhY2tfY29tbWl0KTogTGlrZXdpc2UuCgkocGVfc3RhY2tfcmVzZXJ2ZSk6IExpa2V3aXNlLgoJKHBlX3N1YnN5c3RlbSk6IExpa2V3aXNlLgoJKHBlX21ham9yX3N1YnN5c3RlbV92ZXJzaW9uKTogTGlrZXdpc2UuCgkocGVfbWlub3Jfc3Vic3lzdGVtX3ZlcnNpb24pOiBMaWtld2lzZS4KCShzZXRfcGVfc3Vic3lzdGVtKTogTGlrZXdpc2UuCgkoY29udmVydF9lZmlfdGFyZ2V0KTogTGlrZXdpc2UuCgkoY29tbWFuZF9saW5lX3N3aXRjaCk6IEFkZCBPUFRJT05fRklMRV9BTElHTk1FTlQsCglPUFRJT05fSEVBUCwgT1BUSU9OX0lNQUdFX0JBU0UsIE9QVElPTl9TRUNUSU9OX0FMSUdOTUVOVCwKCU9QVElPTl9TVEFDSyBhbmQgT1BUSU9OX1NVQlNZU1RFTS4KCShjb3B5X29wdGlvbnMpOiBMaWtld2lzZS4KCShjb3B5X3VzYWdlKTogQWRkIC0tZmlsZS1hbGlnbm1lbnQsIC0taGVhcCwgLS1pbWFnZS1iYXNlLAoJLS1zZWN0aW9uLWFsaWdubWVudCwgLS1zdGFjayBhbmQgLS1zdWJzeXN0ZW0uCgkoY29weV9vYmplY3QpOiBTZXQgdXAgUEUgcGFyYW1ldGVycy4KCShjb3B5X21haW4pOiBQcm9jZXNzIEFkZCBPUFRJT05fRklMRV9BTElHTk1FTlQsCglPUFRJT05fSEVBUCwgT1BUSU9OX0lNQUdFX0JBU0UsIE9QVElPTl9TRUNUSU9OX0FMSUdOTUVOVCwKCU9QVElPTl9TVEFDSyBhbmQgT1BUSU9OX1NVQlNZU1RFTS4gICBDb252ZXJ0IEVGSSB0YXJnZXQgdG8KCVBFSSB0YXJnZXQuCgoJKiBORVdTOiBNZW50aW9uIC0tZmlsZS1hbGlnbm1lbnQsIC0taGVhcCwgLS1pbWFnZS1iYXNlLAoJLS1zZWN0aW9uLWFsaWdubWVudCwgLS1zdGFjayBhbmQgLS1zdWJzeXN0ZW0gY29tbWFuZCBsaW5lCglvcHRpb25zIGZvciBvYmpjb3B5LgoKCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IC0tZmlsZS1hbGlnbm1lbnQsIC0taGVhcCwKCS0taW1hZ2UtYmFzZSwgLS1zZWN0aW9uLWFsaWdubWVudCwgLS1zdGFjayBhbmQgLS1zdWJzeXN0ZW0KCWNvbW1hbmQgbGluZSBvcHRpb25zIGZvciBvYmpjb3B5LgoKMjAwOS0wNC0xNSAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQG1veGllbG9naWMuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBteXNlbGYgYXMgTW94aWUgcG9ydCBtYWludGFpbmVyLgoKMjAwOS0wNC0xNCAgRGF2ZSBLb3JuICA8ZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20+CgoJKiBvYmpjb3B5LmMgKGVudW0gbG9uZ19zZWN0aW9uX25hbWVfaGFuZGxpbmcpOiAgTmV3IGVudW0gdHlwZS4KCShlbnVtIGNvbW1hbmRfbGluZV9zd2l0Y2gpOiAgQWRkIE9QVElPTl9MT05HX1NFQ1RJT05fTkFNRVMuCgkoY29weV9vcHRpb25zW10pOiAgQWRkIGVudHJ5IGZvciAtLWxvbmctc2VjdGlvbi1uYW1lcyBvcHRpb24uCgkoY29weV91c2FnZSk6ICBEb2N1bWVudCBpdC4KCShzZXRfbG9uZ19zZWN0aW9uX21vZGUpOiAgTmV3IHN1YnJvdXRpbmUuCgkoY29weV9maWxlKTogIENhbGwgaXQuCgkoY29weV9tYWluKTogIEFjY2VwdCBPUFRJT05fTE9OR19TRUNUSU9OX05BTUVTIGFuZCBwYXJzZSBhcmcuCgkqIGRvYy9iaW51dGlscy50ZXhpOiAgVXBkYXRlIG9iamNvcHkgZG9jdW1lbnRhdGlvbiB3aXRoIGRldGFpbHMKCW9mIG5ldyBvcHRpb24uCgoyMDA5LTA0LTAxICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCgkqIGRsbHRvb2wuYyAoc2V0X2RsbF9uYW1lX2Zyb21fZGVmKTogIEFjY2VwdCBuZXcgc2Vjb25kIGFyZyB0aGF0CglpbmRpY2F0ZXMgaWYgd2UgYXJlIGJ1aWxkaW5nIERMTCBvciBFWEUsIGFuZCB1c2UgaXQgdG8gYWRkIGEKCWRlZmF1bHQgc3VmZml4IHRvIHRoZSBvdXRwdXQgZmlsZW5hbWUgd2hlbiBub25lIGlzIGFscmVhZHkgcHJlc2VudC4KCShkZWZfbmFtZSk6ICBJbmRpY2F0ZSB3ZSBhcmUgYnVpbGRpbmcgYW4gRVhFIHdoZW4gY2FsbGluZyBpdC4KCShkZWZfbGlicmFyeSk6ICBJbmRpY2F0ZSB3ZSBhcmUgYnVpbGRpbmcgYSBETEwgd2hlbiBjYWxsaW5nIGl0LgoKMjAwOS0wNC0wMSAgSmFyaSBBYWx0byAgPGphcmkuYWFsdG9AY2FudGUubmV0PgoKCVBSIDk5NzIKCSogZG9jL2JpbnV0aWxzLnRleGkgKHN0cmluZ3MpOiBEb2N1bWVudCB0aGUgLVYgYWxpYXMgZm9yIHRoZQoJLS12ZXJzaW9uIG9wdGlvbi4KCSogc3RyaW5ncy5jICh1c2FnZSk6IExpa2V3aXNlLgoKMjAwOS0wMy0zMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiA5OTkyCgkqIGNvbmZpZ3VyZS5pbjogSW1wb3J0IFNvbGFyaXMgc3BlY2lmaWMgbGFyZ2VmaWxlIHRlc3QgZnJvbQoJYmZkL2NvbmZpZ3VyZS5pbi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOS0wMy0zMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyZHNhbmRpZm9yZEBnb29nbGVtYWlsLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgc2VsZi4KCjIwMDktMDMtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkd2FyZi5jIChkaXNwbGF5X2RlYnVnX3Jhbmdlcyk6IEFkZCB0aGUgYmFzZSBhZGRyZXNzIHRvIHRoZQoJZGlzcGxheWVkIHZhbHVlcyBmb3IgJ0JlZ2luJyBhbmQgJ0VuZCcuCgoyMDA5LTAzLTI1ICBSeWFuIE1hbnNmaWVsZCAgPHJtYW5zZmllbGRAcW54LmNvbT4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19maWxlX2hlYWRlcik6IERvbid0IHJlcG9ydCBhIGNvcnJ1cHQgc3RyaW5nCgl0YWJsZSBpbmRleCBpZiBpdCBpcyB6ZXJvLgoKMjAwOS0wMy0xOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogZHdhcmYuYyAoZHdhcmZfcmVnbmFtZXMpOiBNb3ZlZCBiZWZvcmUgZnJhbWVfbmVlZF9zcGFjZS4KCShkd2FyZl9yZWduYW1lc19jb3VudCk6IExpa2V3aXNlLgoJKGZyYW1lX25lZWRfc3BhY2UpOiBSZXR1cm4gaW50LgoJKGRpc3BsYXlfZGVidWdfZnJhbWVzKTogQ2hlY2sgaW52YWxpZCByZWdpc3RlcnMuCgoyMDA5LTAzLTE5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiByZWFkZWxmLmMgKGRlYnVnX2FwcGx5X3JlbG9jYXRpb25zKTogQ2hlY2sgcmVsb2NhdGlvbnMKCWFnYWluc3QgU1RUX1NFQ1RJT04gc3ltYm9sLgoKMjAwOS0wMy0xOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogcmVhZGVsZi5jIChkZWJ1Z19hcHBseV9yZWxvY2F0aW9ucyk6IEFsbG93IHJlbG9jYXRpb25zCglhZ2FpbnN0IGZ1bmN0aW9uIHN5bWJvbHMuCgoyMDA5LTAzLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc3lzZGVwLmg6IEluY2x1ZGUgYWxsb2NhLWNvbmYuaCBpbnN0ZWFkIG9mIGNvbmZpZy5oIGFuZCByZW1vdmUKCWV4aXN0aW5nICNpZidzIGhhbmRsaW5nIGFsbG9jYS4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDktMDMtMTQgIFJpY2hhcmQgU2FuZGlmb3JkICA8ci5zYW5kaWZvcmRAdWsuaWJtLmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEV4dGVuZCBBSVggNSBiZWhhdmlvciB0byBBSVggNiBhbmQgYWJvdmUuCgkqIGNvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDktMDMtMTMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBiaW51dGlscy85OTQ1CgkqIG9iamNvcHkuYyAoY29weV9vYmplY3QpOiBDbGVhciBIQVNfUkVMT0Mgd2hlbiBzdHJpcHBpbmcgYWxsLgoKMjAwOS0wMy0xMSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGdvb2dsZS5jb20+CgoJKiBhci5jIChkZXRlcm1pbmlzdGljKTogTmV3IGdsb2JhbCB2YXJpYWJsZS4KCShtYWluKTogUmVjb2duaXplIG5ldyAnRCcgb3B0aW9uLCB3aGljaCBlbmFibGVzICdkZXRlcm1pbmlzdGljIG1vZGUnLgoJKHVzYWdlKTogRG9jdW1lbnQgbmV3ICdEJyBvcHRpb24uCgkod3JpdGVfYXJjaGl2ZSk6IFNldCBCRkRfREVURVJNSU5JU1RJQ19PVVRQVVQgaW4gb3V0cHV0IGFyY2hpdmUncwoJZmxhZ3MgaWYgZGV0ZXJtaW5pc3RpYyBtb2RlIHdhcyByZXF1ZXN0ZWQuCgkqIGRvYy9iaW51dGlscy50ZXhpIChhcik6IERvY3VtZW50IGRldGVybWluaXN0aWMgbW9kZSAoJ0QnIG9wdGlvbikuCgoyMDA5LTAzLTA5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgYmludXRpbHMvOTkzMwoJKiBvYmpjb3B5LmMgKGZpbHRlcl9zeW1ib2xzKTogUHJvcGVybHkgaGFuZGxlIGNvbW1vbiBzeW1ib2xzCglpbiByZWxvY2F0YWJsZSBmaWxlLgoKMjAwOS0wMy0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgoyMDA5LTAzLTA1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogb2JqZHVtcC5jIChkaXNhc3NlbWJsZV9zZWN0aW9uKTogSWYgdGhlIGNvbXB1dGVkIG5leHQgb2Zmc2V0IGlzCglub3QgYmV5b25kIHRoZSBjdXJyZW50IG9mZnNldCB0aGVuIGp1c3QgY29udGludWUgdG8gdGhlIGVuZC4KCjIwMDktMDMtMDQgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIG15c2VsZiBhcyBWTVMgbWFpbnRhaW5lci4KCjIwMDktMDMtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmM6IFVwZGF0ZSBmb3JtYXR0aW5nLgoKMjAwOS0wMy0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA5LTAzLTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogb2JqZHVtcC5jIChkaXNhc3NlbWJsZV9zZWN0aW9uKTogTWFzayBhZGRyZXNzIGJlZm9yZSBzaWduIGV4dGVuZGluZy4KCjIwMDktMDMtMDIgIFNlYmFzdGlhbiBCaWFsbGFzICA8c2JAYmlhbGxhcy5uZXQ+CgoJKiBpZWVlLmMgKHBhcnNlX2llZWVfdHkpOiBBZGQgc3VwcG9ydCBmb3IgdW5kb2N1bWVudGVkICd2JyB0eXBlLgoJKHBhcnNlX2llZWVfYmIpOiBTZXQgdGhlIGZpbGVuYW1lIGlmIGl0IGhhcyBub3QgYWxyZWFkeSBiZWVuCglkaXNjb3ZlcmVkLgoKMjAwOS0wMy0wMiAgQ2FyeSBDb3V0YW50ICA8Y2NvdXRhbnRAZ29vZ2xlLmNvbT4KCgkqIHJlYWRlbGYuYyAoYWRqdXN0X3JlbGF0aXZlX3BhdGgpOiBOZXcgZnVuY3Rpb24uCgkoc3RydWN0IGFyY2hpdmVfaW5mbyk6IE5ldyB0eXBlLgoJKHNldHVwX2FyY2hpdmUpOiBOZXcgZnVuY3Rpb24uCgkocmVsZWFzZV9hcmNoaXZlKTogTmV3IGZ1bmN0aW9uLgoJKHNldHVwX25lc3RlZF9hcmNoaXZlKTogTmV3IGZ1bmN0aW9uLgoJKGdldF9hcmNoaXZlX21lbWJlcl9uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKGdldF9hcmNoaXZlX21lbWJlcl9uYW1lX2F0KTogTmV3IGZ1bmN0aW9uLgoJKG1ha2VfcXVhbGlmaWVkX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkocHJvY2Vzc19hcmNoaXZlKTogRmFjdG9yIG91dCBjb2RlIGZvciByZWFkaW5nIGFyY2hpdmUgaW5kZXggYW5kCglsb25nIGZpbGVuYW1lIHRhYmxlIHRvIHNldHVwX2FyY2hpdmUuICBBZGQgc3VwcG9ydCBmb3IgdGhpbiBhcmNoaXZlcy4KCjIwMDktMDMtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby9zay5wbzogVXBkYXRlZCBTbG92YWsgdHJhbnNsYXRpb24uCgoyMDA5LTAzLTAxICBSYWxmIFdpbGRlbmh1ZXMgIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOS0wMi0yMyAgQ2FyeSBDb3V0YW50IDxjY291dGFudEBnb29nbGUuY29tPgoKCSogb2JqZHVtcC5jIChsb2FkX3NwZWNpZmljX2RlYnVnX3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24sIGZyb20KCWxvYWRfZGVidWdfc2VjdGlvbi4KCShsb2FkX2RlYnVnX3NlY3Rpb24pOiBVc2UgbG9hZF9zcGVjaWZpY19kZWJ1Z19zZWN0aW9uLgoJKGR1bXBfZHdhcmZfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwOS0wMi0yMyAgQ2FyeSBDb3V0YW50IDxjY291dGFudEBnb29nbGUuY29tPgoKCSogcmVhZGVsZi5jIChwYXJzZV9hcmdzKTogU2VsZWN0IGFsbCBzZWN0aW9ucyBleHBsaWNpdGx5IGZvciAtdy4KCjIwMDktMDItMDkgIEthaSBUaWV0eiAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogd2luZHJlcy5jIChzZXRfZW5kaWFuZXNzKTogQ29weSBuYW1lIHdpdGhvdXQgbGVhZGluZyAnLScuCgoyMDA5LTAyLTA5ICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogTkVXUzogTWVudGlvbiBmZWF0dXJlIG1hdGNoIGJldHdlZW4gb2JqZHVtcCBhbmQgcmVhZGVsZiBmb3IgZHVtcGluZwoJZHdhcmYgaW5mby4KCgkqIGRvYy9iaW51dGlscy50ZXhpIChvYmpkdW1wKTogRG9jdW1lbnQgLVcvLS1kd2FyZiBpbXByb3ZtZW50cyB0bwoJb2JqZHVtcC4KCgkqIG9iamR1bXAuYyAodXNhZ2UpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgLVcvLS1kd2FyZi4KCShlbnVtIG9wdGlvbl92YWx1ZXMpOiBBZGQgT1BUSU9OX0RXQVJGLgoJKGxvbmdfb3B0aW9ucyk6IC0tZHdhcmYgY2FuIGFjY2VwdCBhcmd1bWVudHMuCgkoZHVtcF9kd2FyZl9zZWN0aW9uKTogQWxzbyBjaGVjayBlbmFibGVkIGZpZWxkLgoJKG1haW4pOiBPcHRpb24gLVcgY2FuIGFjY2VwdCBhcmd1bWVudHMsIGNvZGUgbW92ZWQgdG8KCWR3YXJmLmMgYW5kIGNhbGwgZHdhcmZfc2VsZWN0X3NlY3Rpb25zX2FsbCBpbnN0ZWFkLgoJKiByZWFkZWxmLmMgKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogUmVtb3ZlIGRvX2RlYnVnX2xpbmVzX2RlY29kZWQuCgkocGFyc2VfYXJncyk6IE1vdmUgY29kZSB0by4uLgoJKiBkd2FyZi5jIChkd2FyZl9zZWxlY3Rfc2VjdGlvbnNfYnlfbGV0dGVycywKCWR3YXJmX3NlbGVjdF9zZWN0aW9uc19ieV9uYW1lcyk6IDogLi4uaGVyZSAobmV3IGZ1bmN0aW9ucykuCgkoZG9fZGVidWdfbGluZXNfZGVjb2RlZCk6IFJlbW92ZSBhbmQgcmVwbGFjZWQgYnkgLi4uCgkoRkxBR19ERUJVR19MSU5FU19SQVcsIEZMQUdfREVCVUdfTElORVNfREVDT0RFRCk6IC4uLiBuZXcgbWFjcm9zLgoJKGRpc3BsYXlfZGVidWdfbGluZXMpOiBBZGp1c3QgZm9yIHByZXZpb3VzIGNoYW5nZS4KCShkd2FyZl9zZWxlY3Rfc2VjdGlvbnNfYWxsKTogTmV3IGZ1bmN0aW9uLgoJKGRlYnVnX2Rpc3BsYXlzKTogQWRkIGluaXRpYWxpemVyIGZvciBlbmFibGVkIGZpZWxkLgoJKiBkd2FyZi5oIChkb19kZWJ1Z19saW5lc19kZWNvZGVkKTogUmVtb3ZlLgoJQWRkIHByb3RvdHlwZXMgZm9yIHRoZSBuZXcgZnVuY3Rpb25zLgoJKHN0cnVjdCBkd2FyZl9zZWN0aW9uX2Rpc3BsYXkpOiBBZGQgZW5hYmxlZCBmaWVsZC4KCjIwMDktMDItMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby92aS5wbzogVXBkYXRlZCBWaWV0bmFtZXNlIHRyYW5zbGF0aW9uLgoKMjAwOS0wMi0wMyAgU2FuZGlwIE1hdHRlICA8c2FuZGlwQHJtaWNvcnAuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9mbGFncyk6IEhhbmRsZSBFX01JUFNfTUFDSF9YTFIuCgoyMDA5LTAyLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBORVdTOiBNb3ZlIC0tYXMtbmVlZGVkIGNoYW5nZSB0byAuLi4KCSogLi4vbGQvTkVXUzogSGVyZS4KCjIwMDktMDItMDMgIENhcmxvcyBPJ0RvbmVsbCAgPGNhcmxvc0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLmluOiBBQ19TVUJTVCBwZGZkaXIuCgkqIE1ha2VmaWxlLmFtOiBBZGQgaW5zdGFsbC1wZGYsIGluc3RhbGwtcGRmLWFtLAoJYW5kIGluc3RhbGwtcGRmLXJlY3Vyc2l2ZSB0YXJnZXRzLgoJKiBkb2MvTWFrZWZpbGUuYW06IERlZmluZSBwZGZfX3N0cmlwX2Rpci4gQWRkCglpbnN0YWxsLXBkZiBhbmQgaW5zdGFsbC1wZGYtYW0gdGFyZ2V0cy4KCSogcG8vTWFrZS1pbjogQWRkIGluc3RhbGwtcGRmIHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwOS0wMi0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGJpbnV0aWxzLzk3ODQKCSogTkVXUzogTWVudGlvbiAtLXByZWZpeD1QUkVGSVggYW5kIC0tcHJlZml4LXN0cmlwPUxFVkVMLgoKCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IC0tcHJlZml4PVBSRUZJWCBhbmQKCS0tcHJlZml4LXN0cmlwPUxFVkVMLgoKCSogb2JqZHVtcC5jOiBJbmNsdWRlICJmaWxlbmFtZXMuaCIuCgkocHJlZml4KTogTmV3LgoJKHByZWZpeF9zdHJpcCk6IExpa2V3aXNlLgoJKHByZWZpeF9sZW5ndGgpOiBMaWtld2lzZS4KCSh1c2FnZSk6IEFkZCAtLXByZWZpeD1QUkVGSVggYW5kIC0tcHJlZml4LXN0cmlwPUxFVkVMLgoJKG9wdGlvbl92YWx1ZXMpOiBBZGQgT1BUSU9OX1BSRUZJWCBhbmQgT1BUSU9OX1BSRUZJWF9TVFJJUC4KCShsb25nX29wdGlvbnMpOiBMaWtld2lzZS4KCShzaG93X2xpbmUpOiBIYW5kbGUgcHJlZml4IGFuZCBwcmVmaXhfc3RyaXAuCgkobWFpbik6IEhhbmRsZSBPUFRJT05fUFJFRklYIGFuZCBPUFRJT05fUFJFRklYX1NUUklQLgoKCSogcmVhZGVsZi5jIChQQVRIX01BWCk6IE1vdmVkIHRvIC4uLgoJKiBzeXNkZXAuaDogSGVyZS4KCjIwMDktMDEtMzEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBORVdTOiBNZW50aW9uIC0tYXMtbmVlZGVkIGNoYW5nZS4KCjIwMDktMDEtMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgOTc5OAoJKiBidWNvbW0uYyAoYmZkX25vbmZhdGFsX21lc3NhZ2UpOiBVc2UgYmZkX2dldF9hcmNoaXZlX2ZpbGVuYW1lLgoJKGJmZF9nZXRfYXJjaGl2ZV9maWxlbmFtZSk6IENvbnN0aWZ5IHBhcmFtLgoJKiBidWNvbW0uaCAoYmZkX2dldF9hcmNoaXZlX2ZpbGVuYW1lKTogVXBkYXRlIHByb3RvdHlwZS4KCSogb2JqY29weS5jIChSRVRVUk5fTk9ORkFUQUwpOiBEZWxldGUuCgkoY29weV91bmtub3duX29iamVjdCk6IERvbid0IGNhbGwgYmZkX2dldF9hcmNoaXZlX2ZpbGVuYW1lIGZvcgoJYmZkX25vbmZhdGFsX21lc3NhZ2UgZmlsZW5hbWUsIGluc3RlYWQganVzdCBwYXNzIGJmZC4KCShjb3B5X29iamVjdCk6IExpa2V3aXNlLgoJKGNvcHlfYXJjaGl2ZSwgY29weV9maWxlKTogTGlrZXdpc2UuICBFeHBhbmQgUkVUVVJOX05PTkZBVEFMLiAgT24KCWJmZF9jbG9zZSBlcnJvcnMsIGRvIG5vdCBwYXNzIHRoZSBiZmQgdG8gYmZkX25vbmZhdGFsX21lc3NhZ2UuCgkoc2V0dXBfYmZkX2hlYWRlcnMpOiBGaXggZXJyb3IgbWVzc2FnZS4KCjIwMDktMDEtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgOTc3NAoJKiBvYmpkdW1wLmMgKGRpc2Fzc2VtYmxlX3NlY3Rpb24pOiBXaGVuIHRoZSB0YXJnZXQgdXNlcyBzaWduZWQKCWFkZHJlc3NlcyBtYWtlIHN1cmUgdGhhdCB3ZSBjb21wdXRlIHNpZ25lZCB2YWx1ZXMuCgoyMDA5LTAxLTI3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IFJlbW92ZSBUaGllbW8gU2V1ZmVyJ3MgbmFtZSBmcm9tIHRoZSBsaXN0IG9mIE1JUFMKCW1haW50YWluZXJzLgoKMjAwOS0wMS0yNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiA5NzY2CgkqIGRsbHRvb2wuYyAoeGxhdGUpOiBXaGVuIHN0cmlwIHRleHQgYWZ0ZXIgdGhlIEAgc2lnbiwgbG9vayBmb3IKCXRoZSBsYXN0IG9uZSBub3QgdGhlIGZpcnN0IG9uZS4KCjIwMDktMDEtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUuaW4gKGNvbW1vbmJmZGxpYik6IERlbGV0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwOC0wMS0xNCAgQ2hhcmxlcyBXaWxzb24gIDxjeWd3aW5AY3dpbHNvbi5mYXN0bWFpbC5mbT4KCglDbGVhbnVwIGNvZGUgcmVsYXRlZCB0byAtLWlkZW50aWZ5IG9wdGlvbi4KCgkqIGRsbHRvb2wuYyAoZmlsZSBzY29wZSk6IFJlbW92ZWQgZ2xvYmFscyBpZGVudGlmeV9tcywKCWlkZW50aWZ5X21lbWJlcl9jb250YWluc19zeW1uYW1lX3Jlc3VsdCwKCWlkZW50aWZ5X2RsbF9uYW1lX2xpc3RfaGVhZCwgYW5kIGlkZW50aWZ5X2RsbF9uYW1lX2xpc3RfdGFpbC4KCVJlbmFtZWQgZXhpc3RpbmcgdHlwZWRlZiBkbGxfbmFtZV9saXN0X3R5cGUgdG8KCWRsbF9uYW1lX2xpc3Rfbm9kZV90eXBlLgoJQWRkZWQgbmV3IHR5cGVkZWZzIGRsbF9uYW1lX2xpc3RfdHlwZSwgc3ltbmFtZV9zZWFyY2hfZGF0YV90eXBlLAoJYW5kIGlkZW50aWZ5X2RhdGFfdHlwZS4KCShpZGVudGlmeV9hcHBlbmRfZGxsX25hbWVfdG9fbGlzdCk6IFJlbmFtZWQgdG8uLi4KCShkbGxfbmFtZV9saXN0X2FwcGVuZCk6IC4uLmhlcmUuICBDaGFuZ2VkIHNpZ25hdHVyZSB0byBhY2NlcHQgbGlzdAoJYXJndW1lbnQgcmF0aGVyIHRoYW4gdXNlIGdsb2JhbC4KCShpZGVudGlmeV9jb3VudF9kbGxfbmFtZV9saXN0KTogUmVuYW1lZCB0by4uLgoJKGRsbF9uYW1lX2xpc3RfY291bnQpOiAuLi5oZXJlLiAgQ2hhbmdlZCBzaWduYXR1cmUgdG8gYWNjZXB0IGxpc3QKCWFyZ3VtZW50IHJhdGhlciB0aGFuIHVzZSBnbG9iYWwuCgkoaWRlbnRpZnlfcHJpbnRfZGxsX25hbWVfbGlzdCk6IFJlbmFtZWQgdG8uLi4KCShkbGxfbmFtZV9saXN0X3ByaW50KTogLi4uaGVyZS4gIENoYW5nZWQgc2lnbmF0dXJlIHRvIGFjY2VwdCBsaXN0Cglhcmd1bWVudCByYXRoZXIgdGhhbiB1c2UgZ2xvYmFsLgoJKGlkZW50aWZ5X2ZyZWVfZGxsX25hbWVfbGlzdCk6IFJlbmFtZWQgdG8uLi4KCShkbGxfbmFtZV9saXN0X2ZyZWVfY29udGVudHMpOiAuLi5oZXJlLgoJKGRsbF9uYW1lX2xpc3RfZnJlZSk6IE5ldyBmdW5jdGlvbi4KCShkbGxfbmFtZV9saXN0X2NyZWF0ZSk6IE5ldyBmdW5jdGlvbi4KCShpZGVudGlmeV9wcm9jZXNzX3NlY3Rpb25fcCk6IENoYW5nZWQgc2lnbmF0dXJlIHRvIGFjY2VwdAoJbXNfc3R5bGVfaW1wbGliIGFyZ3VtZW50IHJhdGhlciB0aGFuIHVzZSBnbG9iYWwuCgkoaWRlbnRpZnlfbWVtYmVyX2NvbnRhaW5zX3N5bW5hbWUpOiBFeHBlY3QgaW5jb21pbmcgdm9pZCAqIGRhdGEgdG8KCWJlIHN5bW5hbWVfc2VhcmNoX2RhdGFfdHlwZS4KCShpZGVudGlmeV9kbGxfZm9yX2ltcGxpYik6IFVzZSBuZXcgZnVuY3Rpb25zIGRsbF9uYW1lX2xpc3RfY3JlYXRlCglhbmQgZGxsX25hbWVfbGlzdF9mcmVlLiAgVXNlIG5ldyB0eXBlcyBzeW1uYW1lX3NlYXJjaF9kYXRhX3R5cGUKCWFuZCBpZGVudGlmeV9kYXRhX3R5cGUgdG8gY29tbXVuaWNhdGUgd2l0aCBzZWFyY2ggcm91dGluZXMuCgkoaWRlbnRpZnlfc2VhcmNoX3NlY3Rpb24pOiBFeHBlY3QgaW5jb21pbmcgdm9pZCAqIGRhdGEgdG8gYmUKCWlkZW50aWZ5X2RhdGFfdHlwZS4gVXNlIGl0cyBjb250ZW50cyByYXRoZXIgdGhhbiBnbG9iYWwKCXZhcmlhYmxlcy4KCjIwMDktMDEtMTMgIENoYXJsZXMgV2lsc29uICA8Y3lnd2luQGN3aWxzb24uZmFzdG1haWwuZm0+CgoJQWRkIC0taWRlbnRpZnktc3RyaWN0IG9wdGlvbi4gIEhhbmRsZSBtcy1zdHlsZSBpbXBsaWJzOgoKCSogZGxsdG9vbC5jIChmaWxlIHNjb3BlKTogQWRkZWQgbmV3IGdsb2JhbHMgaWRlbnRpZnlfbXMgYW5kCglpZGVudGlmeV9zdHJpY3QuIE5ldyB0eXBlZGVmIGRsbF9uYW1lX2xpc3RfdHlwZSwgYW5kIGdsb2JhbHMKCWlkZW50aWZ5X2RsbF9uYW1lX2xpc3RfaGVhZCBhbmQgaWRlbnRpZnlfZGxsX25hbWVfbGlzdF90YWlsLiBBZGRlZAoJbmV3IGdsb2JhbCBpZGVudGlmeV9tZW1iZXJfY29udGFpbnNfc3ltbmFtZV9yZXN1bHQuCgkoaWRlbnRpZnlfYXBwZW5kX2RsbF9uYW1lX3RvX2xpc3QpOiBOZXcgZnVuY3Rpb24uCgkoaWRlbnRpZnlfY291bnRfZGxsX25hbWVfbGlzdCk6IE5ldyBmdW5jdGlvbi4KCShpZGVudGlmeV9wcmludF9kbGxfbmFtZV9saXN0KTogTmV3IGZ1bmN0aW9uLgoJKGlkZW50aWZ5X2ZyZWVfZGxsX25hbWVfbGlzdCk6IE5ldyBmdW5jdGlvbi4KCShpZGVudGlmeV9zZWFyY2hfYXJjaGl2ZSk6IENoYW5nZWQgc2lnbmF0dXJlIHRvIHRha2UgZnVuY3Rpb24KCXBvaW50ZXIgdG8gb3BlcmF0aW9uIHRvIGFwcGx5IHRvIGVhY2ggbWVtYmVyLCBhbmQgZGF0YSB0byBwYXNzIG9uCgl0byB0aGF0IGZ1bmN0aW9uLgoJKGlkZW50aWZ5X3NlYXJjaF9tZW1iZXIpOiBDaGFuZ2VkIHNpZ25hdHVyZSB0byBhY2NlcHQgdXNlciBkYXRhCglmcm9tIGNhbGxlci4KCShpZGVudGlmeV9tZW1iZXJfY29udGFpbnNfc3ltbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShpZGVudGlmeV9kbGxfZm9yX2ltcGxpYik6IFJld3JpdGUuIE5vdyBkZXRlcm1pbmVzIHdoZXRoZXIgaW1wbGliCglpcyBtcy0gb3IgYmludXRpbHMtIHN0eWxlLCBiZWZvcmUgc2VhcmNoaW5nIHNlY3Rpb25zIGZvcgoJZGxsbmFtZS4gQWxsb3dzIG11bHRpcGxlIGRsbG5hbWVzLgoJKGlkZW50aWZ5X3Byb2Nlc3Nfc2VjdGlvbl9wKTogU2VhcmNoIGFsdGVybmF0ZSBzZWN0aW9uIGZvciBkbGxuYW1lCgl3aGVuIGltcGxpYiBpcyBtcy1zdHlsZS4KCShpZGVudGlmeV9zZWFyY2hfc2VjdGlvbik6IEFkZCBhZGRpdGlvbmFsIGNvbmRpdGlvbnMgdG8gZXhjbHVkZXMKCWNhbmRpZGF0ZSBzZWN0aW9ucyBmcm9tIGNvbnNpZGVyYXRpb24uCgkodXNhZ2UpOiBBZGRlZCAtLWlkZW50aWZ5LXN0cmljdC4KCShsb25nX29wdGlvbnMpOiBBZGRlZCAtLWlkZW50aWZ5LXN0cmljdC4KCShtYWluKTogSGFuZGxlIC0taWRlbnRpZnktc3RyaWN0IG9wdGlvbi4KCSogZG9jL2JpbnV0aWxzLnRleGk6IERvY3VtZW50IC0taWRlbnRpZnktc3RyaWN0CW9wdGlvbi4KCSogTkVXUzogRG9jdW1lbnQgLS1pZGVudGlmeSBhbmQJLS1pZGVudGlmeS1zdHJpY3Qgb3B0aW9ucy4KCjIwMDktMDEtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgNzAzNAoJKiBkb2MvYmludXRpbHMudGV4aSAob2JqZHVtcCAtUik6IE5vdGUgZWZmZWN0IG9mIC1kIG9yIC1ELgoKMjAwOS0wMS0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIG9iamR1bXAuYyAoZGlzYXNzZW1ibGVfc2VjdGlvbik6IERvbid0IGFzc3VtZSBub24taW5zdHJ1Y3Rpb24KCWRhdGEgaWYgb2JqZWN0IHN5bWJvbCBhdCBnaXZlbiBhZGRyZXNzIGlzIGluIGRpZmZlcmVudCBzZWN0aW9uLgoKMjAwOS0wMS0xMiAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiBkbGx0b29sLmMgKGNyZWF0ZV9mb3JfcGVwKTogTmV3LgoJKGZsdXNoX3BhZ2UpOiBVc2UgY3JlYXRlX2Zvcl9wZXAgaW5zdGVhZCBvZiB1c2luZwoJbWFjcm8gRExMVE9PTF9NWDg2XzY0IGNsYXVzZS4KCShnZW5lcmF0ZV9pZGF0YV9vZmlsZSk6IExpa2V3aXNlLgoJKG1ha2Vfb25lX2xpYl9maWxlKTogTGlrZXdpc2UuCgkobWFrZV9oZWFkKTogTGlrZXdpc2UuCgkobWFrZV90YWlsKTogTGlrZXdpc2UuCgkobWFpbik6IEluaXRpYWxpemUgY3JlYXRlX2Zvcl9wZXAuCgoyMDA5LTAxLTA4ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIGRsbHRvb2wuYyAodXNlX251bF9wcmVmaXhlZF9pbXBvcnRfdGFibGVzKTogTmV3LgoJKG1ha2VfaGVhZCk6IE1ha2UgcHJlZml4IGxlYWRpbmcgemVybyBwcmVmaXggZWxlbWVudCBmb3IKCWlkYXRhJDQgYW5kIGlkYXRhJDUgZGVwZW5kZW50IHRvIG5ldyBmbGFnLgoJKHVzYWdlKTogQWRkIG5ldyBvcHRpb24gIC0tdXNlLW51bC1wcmVmaXhlZC1pbXBvcnQtdGFibGVzLgoJKE9QVElPTl9VU0VfTlVMX1BSRUZJWEVEX0lNUE9SVF9UQUJMRVMpOiBOZXcuCgkobG9uZ19vcHRpb25zKTogQWRkIC0tdXNlLW51bC1wcmVmaXhlZC1pbXBvcnQtdGFibGVzLgoJKG1haW4pOiBMaWtld2lzZS4KCSogZG9jL2JpbnV0aWxzLnRleGk6IEFkZCBuZXcgb3B0aW9uIGRvY3VtZW50YXRpb24gZm9yCgktLXVzZS1udWwtcHJlZml4ZWQtaW1wb3J0LXRhYmxlcy4KCSogTkVXUzogQWRkIG5ldyBvcHRpb24uCgoyMDA5LTAxLTA2ICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIHdpbmRyZXMuYyAoc2V0X2VuZGlhbmVzcyk6IEdldCBhcmNoaXRlY3R1cmUgbmFtZQoJZm9yIGludGVybmFsIHRhcmdldCBuYW1lcyBsaWtlICJwZS1hcm0td2luY2UtbGl0dGxlIi4KCShmaW5kX2FyY2hfbWF0Y2gpOiBOZXcgaGVscGVyLgoJKiBDaGFuZ2VMb2c6IFJlc2V0IGl0LgoJKiBDaGFuZ2VMb2ctMjAwODogTW92ZWQgb2xkIENoYW5nZUxvZy4KCkZvciBvbGRlciBjaGFuZ2VzIHNlZSBDaGFuZ2VMb2ctMjAwOAoMCkNvcHlyaWdodCAoQykgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KCkNvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCmFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodApub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuCgpMb2NhbCBWYXJpYWJsZXM6Cm1vZGU6IGNoYW5nZS1sb2cKbGVmdC1tYXJnaW46IDgKZmlsbC1jb2x1bW46IDc0CnZlcnNpb24tY29udHJvbDogbmV2ZXIKRW5kOgo=