MjAxMS0xMi0wMSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCglOQjogQ2hhbmdlTG9nIGZpbGVzIGFyZSBubyBsb25nZXIgbWFudWFsbHkgbWFpbnRhaW5lZC4gIFN0YXJ0aW5nCglvbiBEZWNlbWJlciAxc3QsIDIwMTEgd2UgcHV0IGNoYW5nZSBpbmZvcm1hdGlvbiBvbmx5IGluIHRoZSBHSVQKCWNvbW1pdCBsb2csIGFuZCBnZW5lcmF0ZSBhIHRvcC1sZXZlbCBDaGFuZ2VMb2cgZmlsZSBmcm9tIGxvZ3MgYXQKCSJtYWtlIGRpc3QiLiAgU2VlIGRvYy9IQUNLSU5HIGZvciBkZXRhaWxzLgoKMjAxMS0xMS0yOCAgSmltIE1leWVyaW5nICA8bWV5ZXJpbmdAcmVkaGF0LmNvbT4KCglhY2NlcHQgLS13aXRoLWxpYmdwZy1lcnJvci1wcmVmaXggYXMgd2VsbCBhcyAtLXdpdGgtZ3BnLWVycm9yLXByZWZpeAoJKiBtNC9ncGctZXJyb3IubTQ6IFVwZGF0ZSBmcm9tIGdpdCBtYXN0ZXIuCgoyMDExLTA5LTE2ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjIChIQVZFX1BUSFJFQUQpOiBOZXcuCgoyMDExLTA5LTE1ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBCdW1wIExUIHZlcnNpb24gYXQgQzE5L0EwL1IwIGR1ZSB0byB0aGUgQUJJIGNoYW5nZS4KCgkqIGNvbmZpZ3VyZS5hYyAoQ0NfRk9SX0JVSUxEKTogTmV3LgoKMjAxMS0wNi0yOSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCglSZWxlYXNlIDEuNS4wLgoKCSogY29uZmlndXJlLmFjOiBLZWVwIExUIHZlcnNpb24gYXQgQzE4L0E3L1IwIGJlY2F1c2UgaXQgaGFzCglhbHJlYWR5IGJlZW4gYnVtcGVkIHVwIGF0IDIwMTAtMDctMDkuCgoJKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWI6IFVwZGF0ZSB0byAyMDExLTA2LTAzLgoKMjAxMS0wNC0wNiAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoZW1hY3NfbG9jYWxfdmFyc19iZWdpbik6IE1vdmUgbW9yZSB0byB0aGUgdG9wIHRvCglhdm9pZCBFbWFjcyB3YXJuaW5ncy4KCjIwMTEtMDMtMzAgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb21wYXQvY29tcGF0LmMgKF9nY3J5X2NvbXBhdF9pZGVudGlmaWNhdGlvbik6IEFkZCB2ZXJzaW9uIHN0cmluZy4KCjIwMTEtMDMtMDggIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWMgKEJVSUxEX1JFVklTSU9OKTogVXNlIG5ldyBnaXRfYnJldmlzIG1hY3JvLgoKMjAxMS0wMi0yMyAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoTElCR0NSWVBUX0NPTkZJR19IT1NUKTogTmV3LgoKCSogYWNpbmNsdWRlLm00IChBTV9QQVRIX0dQR19FUlJPUik6IFJlbW92ZS4KCjIwMTEtMDItMjEgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJUmVsZWFzZSAxLjUuMC1iZXRhMS4KCjIwMTEtMDItMTggIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWMgW0dDQ106IFJlbW92ZSB0aGUgdXNlIG9mIC1mbm8tc3RyaWN0LWFsaWFzaW5nLgoKMjAxMS0wMi0xMSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogQWRkIG9wdGlvbiAtLWRpc2JhbGUtYWVzbmktc3VwcG9ydC4KCShFTkFCTEVfQUVTTklfU1VQUE9SVCk6IE5ldyBtYWNyby4KCjIwMTEtMDItMDQgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBhdXRvZ2VuLnNoOiBJbnN0YWxsIHRoZSBnaXQgcHJlLWNvbW1pdCBpZiBub3QgeWV0IGRvbmUuCgoyMDEwLTEyLTIzICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjIChCVUlMRF9SRVZJU0lPTik6IFVzZSBnaXRfcmV2aXNpb24uCgoyMDEwLTA4LTE5ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBEZWZpbmUgR1BHX0VSUl9FTkFCTEVfRVJSTk9fTUFDUk9TLiBSZW1vdmUKCWRlZmluaXRpb24gb2YgX0dOVV9TT1VSQ0UuCgkoQUNfR05VX1NPVVJDRSk6IE5ldy4KCjIwMTAtMDgtMTYgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWMgKElOU0VSVF9TWVNfU0VMRUNUX0gpOiBOZXcuCgoyMDEwLTA3LTA5ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBCdW1wIExUIHZlcnNpb24gdG8gQzE4L0E3L1IwIHRvIHByZXBhcmUgYSBiYWNrcG9ydAoJb2YgYSBuZXcgQVBJIHRvIHRoZSAxLjQgc2VyaWVzLgoKMjAxMC0wNC0xOSAgTWFyY3VzIEJyaW5rbWFubiAgPG1hcmN1c0BnMTBjb2RlLmRlPgoKCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3IgLWZuby1zdHJpY3QtYWxpYXNpbmcuCgoyMDEwLTA0LTEyICBCcmFkIEhhcmRzICA8YnJhZGhAZnJvZ21vdXRoLm5ldD4gICh3aykKCgkqIGNvbmZpZ3VyZS5hYzogUHJpbnQgbW9yZSB2ZXJib3NlIGluZm8gYXQgdGhlIGVuZC4KCjIwMTAtMDMtMjQgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWMgKFVTRV9STkRXMzJDRSk6IE5ldy4KCjIwMTAtMDMtMTUgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWMgKGVtYWNzX2xvY2FsX3ZhcnNfYmVnaW4pCgkoZW1hY3NfbG9jYWxfdmFyc19yZWFkX29ubHksIGVtYWNzX2xvY2FsX3ZhcnNfZW5kKTogTmV3LgoKMjAxMC0wMS0yMSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbXBhdC9NYWtlZmlsZS5hbTogTmV3LgoJKiBjb21wYXQvY29tcGF0LmM6IE5ldy4KCSogY29tcGF0L2xpYmNvbXBhdC5oOiBOZXcuCgkqIGNvbXBhdC9nZXRwaWQuYywgY29tcGF0L2Nsb2NrLmM6IE5ldy4KCgkqIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSBsaWJncGctZXJyb3IgMS44LgoJKEhBVkVfVzMyQ0VfU1lTVEVNKTogTmV3IGFtX2RlZmluZXMgYW5kIGFtX2NvbmRpdGlvbmFscy4KCShnZXRwaWQpOiBDaGVjayBmb3IgcmVwbGFjZW1lbnQgZnVuY3Rpb24uCgkoQUNfQ09ORklHX0xJQk9CSl9ESVIpOiBOZXcuCgkoQUNfVFlQRV9QSURfVCk6IE5ldy4KCShBTV9JTklUX0FVVE9NQUtFKTogVXNlIG1vZGVybiB2YXJpYW50LgoJKEFDX0NPTkZJR19GSUxFUyk6IEFkZCBjb21wYXQvTWFrZmlsZS4KCSogYXV0b2dlbi5zaDogU3VwcG9ydCBXMzJDRS4KCSogbHRtYWluLnNoOiBVcGRhdGUgdG8gMi4yLjZiCgkod3JhcHBlcnNfcmVxdWlyZWQpOiBEb24ndCBzZXQgZm9yIG1pbmd3MzJjZS4KCSogTWFrZWZpbGUuYW0gKERJU1RfU1VCRElSUywgU1VCRElSUyk6IEFkZCBjb21wYXQuCgoyMDA5LTEyLTEwICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBBZGQgb3B0aW9uIC0tZGlzYWJsZS1PLWZsYWctbXVuZ2luZy4KCjIwMDktMTItMDggIE1hcmN1cyBCcmlua21hbm4gIDxtYXJjdXNAZzEwY29kZS5kZT4KCglVcGRhdGUgdG8gbGlidG9vbCAyLjIuNmEuCgkqIGNvbmZpZ3VyZS5hYzogSW52b2tlIEFDX0NPTkZJR19NQUNST19ESVIuCgkoQUNfTElCVE9PTF9XSU4zMl9ETEwsIEFDX0xJQlRPT0xfUkMpOiBSZXBsYWNlIGJ5IC4uLgoJKExUX1BSRVJFUSwgTFRfSU5JVCwgTFRfTEFORyk6IC4uLiB0aGVzZS4KCSogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBpbnN0YWxsLXNoLCBsdG1haW4uc2gsIG00L2xpYnRvb2wubTQ6CglVcGRhdGVkIHRvIGxpYnRvb2wgMi4yLjZhLgoJKiBtNC9sdG9wdGlvbnMubTQsIG00L2x0c3VnYXIubTQsIG00L2x0dmVyc2lvbi5tNCwKCW00L2x0fm9ic29sZXRlLm00OiBOZXcgZmlsZXMgZnJvbSBsaWJ0b29sIDIuMi42YS4KCjIwMDktMDgtMDUgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IFRlc3QgZm9yIHN5cy9tc2cuaC4KCjIwMDktMDQtMjMgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBSRUFETUU6IEFkZCBhIHNlY3Rpb24gb24gYnVpbGQgcHJvYmxlbXMuCgoyMDA5LTAxLTIyICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBCdW1wIExUIHZlcnNpb24gdG8gQzE3L0E2L1IwIHRvIG1hcmsgdGhlIHN0YXJ0IG9mCglhIG5ldyBkZXZlbG9wbWVudCBzZXJpZXMuCgoyMDA5LTAxLTIyICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCVJlbGVhc2UgMS40LjQuCgoJKiBjb25maWd1cmUuYWM6IEJ1bXAgTFQgdmVyc2lvbiB0byBDMTYvQTUvUjIuCgoyMDA4LTEwLTMwICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBSZW1vdmUgb3B0aW9uIC0tZW5hYmxlLWdjYy13YXJuaW5ncy4gIEF1dG9kZXRlY3QKCXVzZWZ1bCBnY2Mgd2FybmluZ3MgaW4gbWFpbnRhaW5lciBtb2RlLgoKMjAwOC0wOS0xOCAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCglSZWxlYXNlIDEuNC4zLgoKCSogY29uZmlndXJlLmFjOiBCdW1wIExUIHZlcnNpb24gdG8gQzE2L0E1L1IxLgoKMjAwOC0wOS0xNSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogQ2VoY2sgZm9yIHN5c2xvZy4KCjIwMDgtMDktMDggIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJUmVsZWFzZSAxLjQuMi4KCjIwMDgtMDktMDEgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJUmVsZWFzZSAxLjQuMnJjMi4KCgkqIGNvbmZpZ3VyZS5hYzogVXBkYXRlIHN2bl9yZXZpc2lvbiBtYWNyby4KCjIwMDgtMDgtMjIgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IEFkZCBvcHRpb24gLS1lbmFibGUtaG1hYy1iaW5hcnktY2hlY2suCgkoRExfTElCUyk6IENoZWNrIHdoZXRoZXIgLWxkbCBpcyByZXF1aXJlZC4KCjIwMDgtMDgtMTkgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJUmVsZWFzZSAxLjQuMnJjMS4KCgkqIGNvbmZpZ3VyZS5hYzogQnVtcCBMVCB2ZXJzaW9uIHRvIEMxNi9BNS9SMC4KCjIwMDgtMDgtMTggIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoRVhUUkFfRElTVCk6IFJlbW92ZSB0aGUgdW51c2VkIEJVR1MgZmlsZS4KCjIwMDgtMDgtMTUgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWMgKEFIX0JPVFRPTSk6IERlZmluZSBHQ1JZX0dQR19FUlJfTk9UX09QRVJBVElPTkFMLgoKMjAwOC0wNy0wNSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIHJhbmRvbS86IE5ldy4KCSogTWFrZWZpbGUuYW0gKERJU1RfU1VCRElSUyk6IEFkZCByYW5kb20uCgkqIGNvbmZpZ3VyZS5hYyAoQUNfQ09ORklHX0ZJTEVTKTogQWRkIHJhbmRvbS9NYWtlZmlsZS4KCjIwMDgtMDQtMjUgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJUmVsZWFzZSAxLjQuMS4KCgkqIGNvbmZpZ3VyZS5hYzogQnVtcCBMVCB2ZXJzaW9uIHRvIEMxNS9BNC9SNC4KCjIwMDgtMDQtMjIgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IFNldCB2ZXJzaW9uIHRvIDEuNC4xcmMxLgoKMjAwOC0wNC0xOCAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoQUhfQk9UVE9NKTogQWRkIENBTUVMTElBX0VYVF9TWU1fUFJFRklYLgoJKE5BTUVfT0ZfREVWX1JBTkRPTSk6ICBSZW1vdmUgc3BlY2lhbCBjYXNlcyBmb3IgU29sYXJpcyBldGMuICBUaGlzCgltYXRjaGVzIHRoZSBnbnVwZyAxLjQuOSB2ZXJzaW9uLgoKMjAwOC0wNC0wMSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoQUNfSU5JVCk6IEZpeCBxdW90aW5nLgoKMjAwOC0wMy0xOSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogRml4IHRoZSB0ZXN0cyBmb3IgVVNFXzxhbGdvPiB0byBlaXRoZXIgZGVmaW5lIG9yCgl1bmRlZiB0aGUgbWFjcm9zLiAgU3VnZ2VzdGVkIGJ5IERpcmsgU3RvZWNrZXIuCgoyMDA4LTAzLTE4ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBUZXN0IGZvciB1aW50cHRyX3QuCgoyMDA4LTAyLTE4ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjIChJU19ERVZFTE9QTUVOVF9WRVJTSU9OKTogU2V0IGRlcGVuZGluZyBvbiB0aGUgbXlfc3ZuLgoKMjAwNy0xMi0xMSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogV2UgYWN0dWFsbHkgcmVxdWlyZSBsaWJncGctZXJyb3IgMS40LiAgUmVwb3J0ZWQgYnkKCVRpbSBNb29uZXkuCgoyMDA3LTEyLTEwICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCVJlbGVhc2VkIDEuNC4wLgoKCSogY29uZmlndXJlLmFjOiBTZXQgTFQgdG8gQzE1L0E0L1IzLgoKMjAwNy0xMi0wNSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogQWRkIG9wdGlvbiAtLWRpc2FibGUtcGFkbG9jay1zdXBwb3J0LgoKMjAwNy0xMi0wMyAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCglSZWxlYXNlZCAxLjMuMi4KCgkqIGNvbmZpZ3VyZS5hYzogU2V0IExUIHRvIEMxNS9BNC9SMi4KCgkqIGNvbmZpZy5zdWIsIGNvbmZpZy5ndWVzczogVXBkYXRlIHRvIHZlcnNpb24gMjAwNy0xMS0xOS4KCjIwMDctMTAtMzAgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IFByb3RlY3QgY29uZmlnLmggYWdhaW5zdCBkb3VibGUgaW5jbHVzaW9uLgoKMjAwNy0xMC0yNiAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCglSZWxlYXNlZCAxLjMuMS4KCgkqIGNvbmZpZ3VyZS5hYzogU2V0IExUIHRvIEMxNS9BNC9SMS4KCjIwMDctMDgtMjIgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBSRUFETUU6IFJld3JpdGUgdGhlIGxpY2Vuc2UgZGVzY3JpcHRpb24uCgkqIGNvbmZpZ3VyZS5hYyAoVVNFX1JORFczMiwgVVNFX1JORFVOSVgpOiBVbm1hcmsgYXMgR1BMIG1vZHVsZXMuCgoyMDA3LTA4LTA4ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBVc2UgJGhvc3QgYW5kIG5vdCAkdGFyZ2V0LgoKMjAwNy0wNy0yNiAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGFjaW5jbHVkZS5tNCAoR05VUEdfU1lTX1NZTUJPTF9VTkRFUlNDT1JFKTogRml4IGEgc3ludGF4IGVycm9yCglpbiB0aGUgdGVzdCBwcm9ncmFtIHdoaWNoIGx1cmtlZCB0aGVyZSBmb3IgNCB5ZWFycy4gIEFkanVzdGVkIG5hbWUKCW9mIGxpYnRvb2xzIGdsb2JhbF9zeXN0ZW1fcGlwZSB2YXJpYWJsZSBhbmQgYWRkIGV4dHJhIGN1dCBzdGFnZS4KCVJlcG9ydGVkIGJ5IEdyZWdvciBSaWVwbC4KCjIwMDctMDYtMTUgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBhdXRvZ2VuLnNoIChGT1JDRSk6IFVzZSA9IGFuZCBub3QgPT0gaW4gdGVzdCB0byBiZSBQT1NJWGx5IGNvcnJlY3QuCgoyMDA3LTA1LTMwICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBDYW1lbGxpYSBpcyBubyBsb25nZXIgR1BMLgoKMjAwNy0wNS0yNCAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogVHJ5IHRvIHVzZSAtV3BvaW50ZXItYXJpdGguCgoyMDA3LTA1LTE5ICBNYXJjdXMgQnJpbmttYW5uICA8bWFyY3VzQGcxMGNvZGUuZGU+CgoJKiBjb25maWd1cmUuYWM6IEZpeCB0ZXN0IGZvciBvcHRpb25hbCBVRElWIGFuZCBVRElWX1FSTk5EIE1QSQoJbW9kdWxlcy4KCjIwMDctMDUtMDkgIE1hcmN1cyBCcmlua21hbm4gIDxtYXJjdXNAZzEwY29kZS5kZT4KCgkqIGNvbmZpZ3VyZS5hYyAoYWNfY3ZfbXBpX2NvbmZpZ19kb25lKTogVW51c2VkIHZhcmlhYmxlIHJlbW92ZWQuCgkoYWNfY3ZfbXBpX21vZF9saXN0LCBNUElfTU9EX0xJU1RfTE8sIE1QSV9NT0RfTElTVF9PKTogUmVtb3ZlZC4KCShNUElfTU9EX0FTTV9NUElIX0FERDEsIE1QSV9NT0RfQVNNX01QSUhfU1VCMSwKCU1QSV9NT0RfQVNNX01QSUhfTVVMMSwgTVBJX01PRF9BU01fTVBJSF9NVUwyLAoJTVBJX01PRF9BU01fTVBJSF9NVUwzLCBNUElfTU9EX0FTTV9NUElIX0xTSElGVCwKCU1QSV9NT0RfQVNNX01QSUhfUlNISUZULCBNUElfTU9EX0FTTV9NUElIX1VESVYsCglNUElfTU9EX0FTTV9NUElIX1VESVZfUVJOTkQsIE1QSV9NT0RfQ19NUElIX0FERDEsCglNUElfTU9EX0NfTVBJSF9TVUIxLCBNUElfTU9EX0NfTVBJSF9NVUwxLCBNUElfTU9EX0NfTVBJSF9NVUwyLAoJTVBJX01PRF9DX01QSUhfTVVMMywgTVBJX01PRF9DX01QSUhfTFNISUZULCBNUElfTU9EX0NfTVBJSF9SU0hJRlQsCglNUElfTU9EX0NfTVBJSF9VRElWLCBNUElfTU9EX0NfTVBJSF9VRElWX1FSTk5EKTogTmV3IGF1dG9tYWtlCgl2YXJpYWJsZXMuCgoyMDA3LTA1LTA0ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCVJlbGVhc2VkIDEuMy4wLgoKCSogY29uZmlndXJlLmFjOiBTZXQgTFQgdG8gQzE1L0E0L1IwLgoKCSogY29uZmlndXJlLmFjOiBSZXF1aXJlIGF1dG9tYWtlIDEuMTAKCShBTV9QUk9HX0NDX0NfTyk6IE5ldy4KCjIwMDctMDUtMDMgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IEZpeCBkZXRlY3Rpb24gb2YgR1BMZWQgcmFuZG9tIG1vZHVsZXMuCgoyMDA3LTA1LTAyICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjIChMSUJHQ1JZUFRfRElHRVNUUywgTElCR0NSWVBUX0NJUEhFUlMpCgkoTElCR0NSWVBUX1BVQktFWV9DSVBIRVJTKTogQWNfZGVmaW5lIGxpc3RzIG9mIGFsZ29yaXRobXMuCgkoZGVmYXVsdF9jaXBoZXJzKTogRG9uJ3QgbWFrZSBjYW1lbGxpYSBhIGRlZmF1bHQuCgoyMDA3LTA1LTAyICBEYXZpZCBTaGF3ICA8ZHNoYXdAamFiYmVyd29ja3kuY29tPgoKCSogTkVXUywgY29uZmlndXJlLmFjOiBBZGQgQ2FtZWxsaWEuCgoyMDA3LTA0LTMwICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogUkVBRE1FLmFwaWNoYW5nZXM6IE1vdmUgdG8gZG9jLy4KCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBSZW1vdmVkIHRoYXQgZmlsZS4KCjIwMDctMDQtMjggIE1hcmN1cyBCcmlua21hbm4gIDxtYXJjdXNAZzEwY29kZS5kZT4KCgkqIGNvbmZpZ3VyZS5hYzogQWxsb3cgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIHNlYXJjaCBkaXJlY3RvcmllcwoJd2l0aCAtLWVuYWJsZS1tcGktcGF0aC4KCjIwMDctMDQtMTYgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBzeXNjb25mLgoJKiBhY2luY2x1ZGUubTQgKEdOVVBHX0NIRUNLX01MT0NLKTogVHJ5IHRvIHVzZSBzeXNjb25mIHRvIGdldCB0aGUKCXBhZ2Ugc2l6ZSBhbmQgdXNlIGdldHBhZ2VzaXplIG9ubHkgdGhlbiBpZiBhdmFpbGFibGUuCgoyMDA3LTAzLTIyICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBBZGQgc3VwcG9ydCBmb3IgRUNDLgoKMjAwNy0wMi0yMiAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChESVNUQ0hFQ0tfQ09ORklHVVJFX0ZMQUdTKTogVXNlCgktLWVuYWJsZS1yYW5kb20tZGFlbW9uLgoKCSogY29uZmlndXJlLmFjOiBOZXcgb3B0aW9uIC0tZW5hYmxlLXJhbmRvbS1kYWVtb24uCglDcmVhdGUgdmVyc2lvbmluZm8ucmMgYW5kIHByb3ZpZGUgdGhlIGJ1aWxkIGluZm9ybWF0aW9uLgoKMjAwNy0wMi0yMSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIE1ha2VmaWxlLmFtLCBjb25maWd1cmUuYWM6IElnbm9yZSB3MzItZGxsLy4KCjIwMDctMDItMjAgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IEJ1bXAgTFQgdmVyc2lvbiB0byBDMTQvQTMvUjAgaW4gcHJlcGFyYXRpb24gZm9yIGEKCXJlbGVhc2UuCgoJKiBhdXRvZ2VuLnNoOiBBZGQgb3B0aW9uIC0tZm9yY2UuCgkqIGNvbmZpZ3VyZS5hYzogTmV3IG9wdGlvbiAtLWRpc2FibGUtZW5kaWFuLWNoZWNrLiAgVXNlIGEgcmVhbAoJbm9leGVjc3RhY2sgdGVzdCBpbnN0ZWFkIG9mIHJlcXVpcmluZyBhbiBvcHRpb24uICBBZGQgU1ZOIHZlcnNpb24KCW1hZ2ljLgoKMjAwNy0wMi0wMiAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoRkFMTEJBQ0tfU09DS0xFTl9UKTogU3BlY2lhbCBjYXNlIGZvciBtaW5ndzMyLgoKMjAwNi0xMS0xNSAgV2VybmVyIEtvY2ggIDx3a0BnMTBjb2RlLmNvbT4KCgkqIGF1dG9nZW4uc2g6IEFkZCBjb252ZW5pZW5jZSBvcHRpb24gLS1idWlsZC1hbWQ2NC4KCjIwMDYtMTAtMjAgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoc3Rvd2luc3RhbGwpOiBOZXcgY29udmVuaWVuY2UgdGFyZ2V0LgoKMjAwNi0xMC0xMiAgTWFyY3VzIEJyaW5rbWFubiAgPG1hcmN1c0BnMTBjb2RlLmRlPgoKCSogY29uZmlndXJlLmFjIChGQUxMQkFDS19TT0NLTEVOX1QpOiBUaGlyZCB0aW1lIGlzIGEgY2hhcm0uCglEZWZpbmUgZ2NyeV9zb2NrbGVuX3QsIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIHNvY2tsZW5fdAoJZGVmaW5pdGlvbnMgYnkgYXV0b2NvbmYuCgoyMDA2LTEwLTExICBNYXJjdXMgQnJpbmttYW5uICA8bWFyY3VzQGcxMGNvZGUuZGU+CgoJKiBjb25maWd1cmUuYWMgKEZBTExCQUNLX1NPQ0tMRU5fVCk6IFJld3JpdGUgaW4gdGVybXMgb2YKCXNvY2tsZW4ubTQuCgoyMDA2LTEwLTExICBNYXJjdXMgQnJpbmttYW5uICA8bWFyY3VzQGcxMGNvZGUuZGU+CgoJKiBhY2luY2x1ZGUubTQgKEdOVVBHX0ZJWF9IRFJfVkVSU0lPTik6IFJlbW92ZWQuCgkqIGNvbmZpZ3VyZS5hYzogRG8gbm90IGNhbGwgR05VUEdfRklYX0hEUl9WRVJTSU9OLgoKMjAwNi0xMC0xMCAgTWFyY3VzIEJyaW5rbWFubiAgPG1hcmN1c0BnMTBjb2RlLmRlPgoKCSogY29uZmlndXJlLmFjOiBJbnZva2UgQUNfQ0hFQ0tfU09DS0xFTl9UWVBFLgoJKEFDX0NPTkZJR19GSUxFUyk6IEFkZCBzcmMvZ2NyeXB0LmguCgkoQUNfQ09ORklHX1NSQ0RJUik6IENoYW5nZSB0byBzcmMvbGliZ2NyeXB0LnZlcnMuCgoyMDA2LTEwLTAyICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogYWNpbmNsdWRlLm00IChHTlVQR19TWVNfU1lNQk9MX1VOREVSU0NPUkUpOiBUZXN0IG9uIEhPU1QgYW5kIG5vdAoJVEFSR0VULiAgSGFyZHdpcmUgZm9yIG1pbmd3MzIuIEFsbG93IHNldHRpbmcgdmlhIGNvbW1hbmQgbGluZSB3aGVuCgljcm9zcyBjb21waWxpbmcuCgoyMDA2LTA4LTI5ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjIChVU0VfU0VFRCk6IE5ldy4KCjIwMDYtMDctMjYgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IE5ldyBvcHRpb25zIC0tZW5hYmxlLW5vZXhlY3N0YWNrIGFuZAoJLS1kaXNhYmxlLW9wdGltaXphdGlvbi4KCjIwMDYtMDctMDQgIE1hcmN1cyBCcmlua21hbm4gIDxtYXJjdXNAZzEwY29kZS5kZT4KCgkqIGNvbmZpZ3VyZS5hYzogQ2FsbCBBQ19MSUJUT09fV0lOMzJfRExMIGFuZCBBQ19MSUJUT09MX1JDLgoKCSogY29uZmlndXJlLmFjOiBDYWxsIGdsX1RZUEVfU09DS0xFTl9UIGluc3RlYWQgb2YgdGhlIG90aGVyCglzb2NrbGVuX3QgY2hlY2tzLgoKMjAwNi0wNi0wOCAgTWFyY3VzIEJyaW5rbWFubiAgPG1hcmN1c0BnMTBjb2RlLmRlPgoKCSogY29uZmlndXJlLmFjIChQVEhfTElCUyk6IEFkZCAtLWFsbCB0byBwdGgtY29uZmlnIGludm9jYXRpb24uCgoyMDA2LTAzLTE0ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3IgZmN0bmwgYW5kIGZ0cnVuY2F0ZS4KCShIQVZFX1BUSCk6IENoZWNrIGZvciBHTlUgUHRoLgoJKEhBVkVfVzMyX1NZU1RFTSk6IERlZmluZSBpdC4KCSogYWNpbmNsdWRlLm00IChHTlVQR19QVEhfVkVSU0lPTl9DSEVDSyk6IE5ldy4gVGFrZW4gZnJvbSBHbnVQRyAxLjQuCgoyMDA1LTEyLTA4ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCSogY29uZmlndXJlLmFjOiBDaGFuZ2VkIHRoZSByYW5kb20gZGV2aWNlIG5hbWVzIGZvciBuZXRic2QuICBGcm9tCglDaHJpc3RpYW4gQmllcmUuCgoyMDA1LTExLTAyICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIE5FV1M6IERvY3VtZW50ZWQgbWlub3IgQVBJIGNoYW5nZXMuCgoyMDA1LTA5LTE1ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogRGVwZW5kIG9uIFJFQURNRS5TVk4sIG5vdCBvbiBSRUFETUUuQ1ZTLgoKMjAwNS0wNi0yNSAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IFJlbW92ZWQgc3JjL2xpYmdjcnlwdC5wYyBmcm9tIEFDX0NPTkZJR19GSUxFUy4KCjIwMDUtMDYtMTAgIFdlcm5lciBLb2NoICA8d2tAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IE1vdmUgZGV0ZWN0aW9uIG9mIGJhc2ljIHN0dWZmIHRvIHRoZSB0b3AuICBGb3IKCWV4YW1wbGUgd2UgbmVlZCB0byBrbm93IHdoZXRoZXIgZ2NjIGlzIHVzZWQgYmVmb3JlIHRlc3RpbmcgZm9yIGl0LgoJUmVwb3J0ZWQgYnkgUmFsZiBGYXNzZWwuCgoyMDA1LTA0LTIzICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIGFjaW5jbHVkZS5tNCAoVFlQRV9TT0NLTEVOX1QpOiBOZXcgdHlwZSBkZWZpbml0aW9uIHRlc3Q7Cglwcm92aWRlZCBieSBBbGJlcnQgQ2hpbi4KCSogY29uZmlndXJlLmFjOiBEb24ndCB1c2UgJChDTUQpIGFzIGl0J3Mgbm90IHBvcnRhYmxlOyB1c2UgQ01EIGluCgliYWNrdGlja3MgaW5zdGVhZC4gIFNpbXBsZXIgLWxuc2wvLWxzb2NrZXQgdGVzdC4gIFVzZQoJVFlQRV9TT0NLTEVOX1QgdGVzdC4gIERvbid0IGZvcmdldCB0byBzZXQgYHJhbmRvbV9tb2R1bGVzJwoJY29ycmVjdGx5LgoKMjAwNS0wNC0yMiAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IEFkZGVkIHN1cHBvcnQgZm9yIHBrZ2NvbmZpZzsgcHJvdmlkZWQgYnkgQWxiZXJ0CglDaGluLgoKMjAwNS0wNC0xMSAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IEludGVncmF0ZSBXaGlybHBvb2wuCgoyMDA1LTAxLTA0ICBXZXJuZXIgS29jaCAgPHdrQGcxMGNvZGUuY29tPgoKCVVwZGF0ZWQgdG8gYXV0b21ha2UgMS45LgoKCSogYWNpbmNsdWRlLm00OiBVcGRhdGVkIGZvciB1c2Ugd2l0aCBhdXRvbWFrZSAxLjkuCgoJKiBjb25maWd1cmUuYWM6IFJlcXVpcmUgbGliZ3BnLWVycm9yIDEuMDsgbm90IHJlYWxseSBuZWVkZWQgYnV0Cgl0aGF0IGlzIHRoZSBmaXJzdCBzdGFibGUgdmVyc2lvbi4KCgkqIE1ha2VmaWxlLmFtIChBQ0xPQ0FMX0FNRkxBR1MpOiBOZXcgZm9yIC1JIG00LgoJKEFVVE9NQUtFX09QVElPTlMpOiBOZXcgdG8gY3JlYXRlIGEgYnppcCBhcmNoaXZlLgoKMjAwNS0wMi0wMyAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBUSEFOS1M6IFVwZGF0ZWQuCgoyMDA0LTA4LTA5ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIFRIQU5LUzogVXBkYXRlZC4KCjIwMDQtMDctMDQgIE1vcml0eiBTY2h1bHRlICA8bW9yaXR6QGcxMGNvZGUuY29tPgoKCSogVEhBTktTOiBVcGRhdGVkLgoKMjAwNC0wNC0yMSAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgoJKiBjb25maWd1cmUuYWM6IERvbid0IHByaW50IGEgd2FybmluZyBpZiBHTlUgbWFrZSB3YXMgbm90IGZvdW5kLgoKMjAwNC0wNS0wNyAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5kZT4KCgkqIFRIQU5LUzogVXBkYXRlZC4KCjIwMDQtMDQtMDIgIFRob21hcyBTY2h3aW5nZSAgPHNjaHdpbmdlQG5pYy1uYWMtcHJvamVjdC5kZT4KCgkqIGF1dG9nZW4uc2g6IEFkZGVkIEFDTE9DQUxfRkxBR1MuCgoyMDA0LTA0LTE1ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCglSZWxlYXNlZCAxLjIuMC4KCgkqIGNvbmZpZ3VyZS5hYzogU2V0IExUIHRvIEMxMi9BMS9SMS4KCjIwMDQtMDQtMDYgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBsdG1haW4uc2g6IFVwZGF0ZWQgdG8gdGhvc2UgZnJvbQoJbGlidG9vbHMgMS41LjQuCgoyMDA0LTAzLTI5ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCglSZWxlYXNlZCAxLjEuOTQuCgoJKiBjb25maWd1cmUuYWM6IFNldCBMVCB0byBDMTIvQTEvUjAuCgoyMDA0LTAzLTEwICBNYXJjdXMgQnJpbmttYW5uICA8bWFyY3VzQGcxMGNvZGUuZGU+CgoJKiBjb25maWd1cmUuYWMgKExJQkdDUllQVF9DT05GSUdfTElCU19QVEhSRUFELAoJTElCR0NSWVBUX0NPTkZJR19DRkxBR1NfUFRIUkVBRCwgTElCR0NSWVBUX0NPTkZJR19MSUJTX1BUSCwKCUxJQkdDUllQVF9DT05GSUdfQ0ZMQUdTX1BUSCwgaGF2ZV9wdGgsIGhhdmVfcHRocmVhZCwgQUNfQ0hFQ0tfUFRILAoJQUNfQ0hFQ0tfTElCKHB0aHJlYWQpLCBIQVZFX1BUSCwgSEFWRV9QVEhSRUFEKTogUmVtb3ZlZC4KCjIwMDQtMDMtMDYgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCVJlbGVhc2VkIDEuMS45My4KCgkqIGNvbmZpZ3VyZS5hYyAoTElCR0NSWVBUX0NPTkZJR19TT05BTUVfTlVNQkVSKTogUmVwbGFjZWQgYnkKCUxJQkdDUllQVF9DT05QSUdfQVBJX1ZFUlNJT04uICBTZXQgaXQgdG8gMS4gIFNldCBMVCB0byBDMTEvQTAvUjEuCgoyMDA0LTAzLTA1ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYyAoTElCR0NSWVBUX0NPTkZJR19TT05BTUVfTlVNQkVSKTogTmV3LgoKMjAwNC0wMi0yMCAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgogICAgICAgIFJlbGVhc2VkIDEuMS45Mi4KCgkqIGNvbmZpZ3VyZS5hYzogU2V0IExUIHRvIEMxMS9BMC9SMC4KCjIwMDQtMDItMTEgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogYXV0b2dlbi5zaCAoY2hlY2tfdmVyc2lvbik6IFJlbW92ZWQgYmFzaGlzbSBhbmQgc2ltcGxpZmllZC4KCjIwMDQtMDItMDYgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogY29uZmlndXJlLmFjOiBBZGQgcmZjMjI2OCBjaXBoZXIgYWxnb3JpdGhtLgoKMjAwNC0wMS0yNSAgTW9yaXR6IFNjaHVsdGUgIDxtb0BnMTBjb2RlLmNvbT4KCgkqIFRIQU5LUzogVXBkYXRlZC4KCjIwMDMtMTItMTkgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCVJlbGVhc2VkIDEuMS45MS4KCgkqIGNvbmZpZ3VyZS5hYzogQnVtYmVkIExUIHZlcnNpb24gdG8gQzEwL0EzL1IxLgoKMjAwMy0xMi0wOCAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgoJKiBNYWtlZmlsZS5hbSAoZGlzdC1ob29rKTogRG9uJ3QgZGlzdHJpYnV0ZSBzdHVmZiBmcm9tIHRoZSBub3cKCW9ic29sZXRlIHNjcmlwdHMgZGlyLgoJKEVYVFJBX0RJU1QpOiBSZW1vdmUgUkVBRE1FX2FscGhhCgkqIFJFQURNRS1hbHBoYTogUmVtb3ZlZC4KCSogY29uZmlndXJlLmFjIChBTV9DT05GSUdfQVVYX0RJUik6IFJlbW92ZWQuCgoJKiBDT1BZSU5HLkRPQzogUmVtb3ZlZC4KCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGRlZCBSRUFETUUuQ1ZTIGFuZAoJYXV0b2dlbi5zaC4gUmVtb3ZlZCBDT1BZSU5HLkRPQy4KCjIwMDMtMTEtMTQgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCVJlbGVhc2VkIDEuMS45MC4KCgkqIGNvbmZpZ3VyZS5hYzogQnVtYmVkIExUIHZlcnNpb24gdG8gQzEwL0EzL1IwLgoKCSogY29uZmlndXJlLmFjIChoYXZlX2xkX3ZlcnNpb25fc2NyaXB0KTogU2V0IHRoZSBkZWZhdWx0IGluCglhIHNlcGFyYXRlIHRlc3QuCgkoUFJJTlRBQkxFX09TX05BTUUpOiBEb24ndCBoYW5kbGUgdGhlIEh1cmQgZXh0cmEsIHRoaXMgbGVhZHMgdG8KCWNvbmZsaWN0cyB3aXRoIEJTRCBiYXNlZCBHTlUgc3lzdGVtcy4gIFRoZSBIdXJkIGhhcyBub3cgYSB3b3JraW5nCgl1bmFtZS4KCjIwMDMtMTEtMDQgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogY29uZmlndXJlLmFjIChVU0VfU0hBMSk6IE1ha2Ugc3VyZSBpdCBpcyBhbHdheXMgaW5jbHVkZWQuCgkoVVNFX1JNRDE2MCk6IFJlbW92ZWQgdGhpcyBBTSBjb25kaXRpb25hbC4KCjIwMDMtMTAtMzEgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogY29uZmlndXJlLmFjOiBCdW1iZWQgdmVyc2lvbiBudW1iZXIgdG8gMS4xLjkwLWN2cyBmb3IgZnV0aGVyCglkZXZlbG9wbWVudAoKCVJlbGVhc2VkIDEuMS40NC4KCgkqIGFjaW5jbHVkZS5tNCAoQUNfQ0hFQ0tfUFRIKTogQWRkZWQuCgkqIGNvbmZpZ3VyZS5hYzogVXNlIGl0IGhlcmUgaW5zdGVhZCBvZiB0aGUgZ2VuZXJpYyBsaWIgdGVzdC4KCUJ1bWJlZCBMVCB2ZXNpb24gdG8gQzkvQTIvUjAuCgoyMDAzLTEwLTI3ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzogR2l2ZSBhIGhpbnQgb24gd2hlcmUgbGliZ3BnLWVycm9yIGlzIGF2YWlsYWJsZS4KCVJlZm9ybWF0dGVkIGxvbmcgbGluZXMuICBEb24ndCBpbmNsdWRlIGdjcnlwdC1kZWZzLmguCgkoLS1lbmFibGUtZ2NjLXdhcm5pbmdzKTogTmV3IG9wdGlvbi4KCjIwMDMtMTAtMjQgIE1vcml0eiBTY2h1bHRlICA8bW9AZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBzb2NrbGVuX3QuCgoyMDAzLTEwLTExICBNb3JpdHogU2NodWx0ZSAgPG1vQGcxMGNvZGUuY29tPgoKCSogYWNpbmNsdWRlLm00OiBVcGRhdGUgQU1fUEFUSF9HUEdfRVJST1IgbWFjcm8uCgoyMDAzLTA5LTA0ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCglSZWxlYXNlZCAxLjEuNDMuCgoJKiBjb25maWd1cmUuYWM6IFJlcXVpcmUgbGliZ3BnLWVycm9yIDAuNCBkdWUgdG8gdGhlIHByaW1lIGludGVyZmFjZS4KCjIwMDMtMDgtMjkgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogYWNpbmNsdWRlLm00IChHTlVQR19TWVNfU1lNQk9MX1VOREVSU0NPUkUpOiBSZS1pbXBsZW1lbnRlZC4KCSogY29uZmlndXJlLmFjOiBVc2UgaXQgaGVyZS4KCjIwMDMtMDgtMjcgIE1vcml0eiBTY2h1bHRlICA8bW9AZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IFN1YnN0aXR1dGU6IExJQkdDUllQVF9DT05GSUdfTElCU19QVEhSRUFELAoJTElCR0NSWVBUX0NPTkZJR19DRkxBR1NfUFRIUkVBRCwgTElCR0NSWVBUX0NPTkZJR19MSUJTX1BUSCwKCUxJQkdDUllQVF9DT05GSUdfQ0ZMQUdTX1BUSCwgTElCR0NSWVBUX1RIUkVBRF9NT0RVTEVTLgoKMjAwMy0wOC0wNyAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IEZhaWwsIGlmIGxpYmdwZy1lcnJvciBjb3VsZCBub3QgYmUgZm91bmQuCgoyMDAzLTA3LTMxICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCglSZWxlYXNlZCAxLjEuNDIuCgoJKiBjb25maWd1cmUuYWM6IFNldCBMVCB2ZXJzaW9uIHRvIDcvMC8wLgoKMjAwMy0wNy0zMCAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgoJKiBBVVRIT1JTIChNYWludGFpbmVyKTogQXNzaWduZWQgTW9yaXR6IGFzIE1haW50YWluZXIuCgoyMDAzLTA3LTMwICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIE5FV1M6IEluY2x1ZGUgbXVjaCBtb3JlIGNvbXBsZXRlIGxpc3Qgb2YgYEludGVyZmFjZSBjaGFuZ2VzCglyZWxhdGl2ZSB0byB0aGUgMS4xLjEyIHJlbGVhc2UnLgoKMjAwMy0wNy0xNCAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IEJ1bWJlZCB2ZXJzaW9uIG51bWJlciB1cCB0byAxLjEuNDItY3ZzLgoKMjAwMy0wNy0wOSAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IFJlaW50cm9kdWNlIC0tZGlzYWJsZS1hc20sIHNpbmNlIGl0IGlzIG5lZWRlZCBieQoJbXBpL2NvbmZpZy5saW5rcy4KCjIwMDMtMDctMDUgIE1vcml0eiBTY2h1bHRlICA8bW9yaXR6QGcxMGNvZGUuY29tPgoKCSogUkVBRE1FOiBGZXcgY2hhbmdlcywgbWVudGlvbiBsaWJncGctZXJyb3IuCgoyMDAzLTA2LTE4ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoYXZhaWxhYmxlX2NpcGhlcnMpOiBSZW1vdmVkIFNlcnBlbnQsIGhycm0uCgoyMDAzLTA2LTE3ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIGFjaW5jbHVkZS5tNDogUmVtb3ZlZCBtYWNybyBkZWZpbml0aW9uczogR05VUEdfQ0hFQ0tfRkFRUFJPRywKCUdOVVBHX0NIRUNLX0VORElBTiwgR05VUEdfQ0hFQ0tfQ0FDSEUsIEdOVVBHX0NIRUNLX1BJQywKCUdOVVBHX0NIRUNLX0VYUE9SVERZTkFNSUMsIEdOVVBHX0NIRUNLX0lQQywgR05VUEdfUFJPR19OTSwKCUdOVVBHX1NZU19TWU1CT0xfVU5ERVJTQ09SRSwgR05VUEdfRlVOQ19NS0RJUl9UQUtFU19PTkVfQVJHLAoJR1BIX1BST0dfREIyQU5ZLgoJQWRkZWQgbWFjcm8gZGVmaW5pdGlvbnM6IEFNX1BBVEhfR1BHX0VSUk9SLgoKCSogY29uZmlndXJlLmFjOiBVc2UgYWx0ZXJuYXRpdmUgYXBwcm9hY2ggZm9yIGJ1aWxkaW5nIGJhc2VkIG9uCgljb25kaXRpb25hbCBzb3VyY2VzLCB3aGljaCBkb2VzIG5vdCBtYWtlIGF1dG9tYWtlIGVhdCBhbGwgeW91cgoJbWVtb3J5LCBldGMuCglSZW1vdmVkIHVudXNlZCB0ZXN0cy4KCVJlbmFtZWQgLS1lbmFibGUtc3RhdGljLXJuZCB0byAtLWVuYWJsZS1yYW5kb20uCglVc2UgQXV0b2NvbmYncyBBQ19DX0JJR0VORElBTiBtYWNybyBpbnN0ZWFkIG9mIG91ciBvd24uCglSZS1vcmdhbml6ZWQgdGhlIHdob2xlIGZpbGUuCgoyMDAzLTA2LTE2ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoQUNfQ09ORklHX0ZJTEVTKTogUmVtb3ZlZCBkb2MvdmVyc2lvbi5zZ21sLgoKMjAwMy0wNi0xMSAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IFJlbW92ZSAtLWVuYWJsZS1saWJncGctZXJyb3IgZmxhZy4KCVVlIEFDX1BBVEhfR1BHX0VSUk9SLgoKMjAwMy0wNi0wOSAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBORVdTOiBNZW50aW9uIEFQSSBjaGFuZ2VzIGFuZCBsaWJncGctZXJyb3IuCgoyMDAzLTA1LTI1ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoVVNFX0xJQkdQR19FUlJPUik6IEltcGxlbWVudGF0aW9uIG9mIHRoZQoJLS1lbmFibGUtbGliZ3BnLWVycm9yIHN3aXRjaC4KCURlZmluZSBVU0VfTElCR1BHX0VSUk9SIGluIExJQkdDUllQVF9DT05GSUdfRkxBR1MsIGluIGNhc2UKCWxpYmdwZy1lcnJvciBpcyB1c2VkLgoKMjAwMy0wNS0yMiAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBjb25maWd1cmUuYWMgKEFDX0NIRUNLX0hFQURFUlMpOiBSZW1vdmVkIHVudXNlZCBoZWFkZXJzOgoJdGVybWlvLmgsIGxhbmdpbmZvLmguCgkoQUNfQ0hFQ0tfRlVOQ1MpOiBSZW1vdmVkIHVudXNlZCBmdW5jdGlvbnM6IHN0cnNlcCwgc3RybHdyLAoJdGNnZXRhdHRyLCBzZXRybGltaXQsIHN0cmZ0aW1lLCBubF9sYW5naW5mbywgc2lnYWN0aW9uLAoJc2lncHJvY21hc2ssIGZvcGVuNjQsIGZzdGF0NjQuCgoyMDAzLTA0LTI3ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIFJFQURNRTogRG9jdW1lbnRlZCBuZXcgY29uZmlndXJlIHN3aXRjaGVzLgoJTWVudGlvbiB0aGUgLS1lbmFibGUtbWFpbnRhaW5lci1zd2l0Y2guCgoJKiBjb25maWd1cmUuYWM6IE1lcmdlZCBzb21lIGNvZGUgZnJvbSBHbnVQRydzIGNvbmZpZ3VyZS5hYyBmb3IKCWRpc2FibGluZyBzaGE1MTIvdGlnZXIgaW4gY2FzZSBubyA2NCBkYXRhIHR5cGVzIGFyZSBhdmFpbGFibGUuCgoyMDAzLTA0LTE3ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogSW5jbHVkZSBzdXBwb3J0IGZvciBzaGE1MTIuCgoyMDAzLTA0LTE3ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIEFVVEhPUlM6IFVwZGF0ZWQuCgoyMDAzLTA0LTE2ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogSW1wbGVtZW50IGNvbW1hbmQgbGluZSBzd2l0Y2hlczogLS1lbmFibGUtY2lwaGVycywKCS0tZW5hYmxlLXB1YmtleS1jaXBoZXJzIGFuZCAtLWVuYWJsZS1kaWdlc3RzLgoJU2V0IEF1dG9tYWtlIGNvbmRpdGlvbmFscyBhbmQgY29uZmlnLmggc3ltYm9scyBkZXBlbmRpbmcgb24gdGhlCglzZWxlY3RlZCBjaXBoZXJzLCBwdWJrZXktY2lwaGVycywgZGlnZXN0cyBhbmQgcmFuZG9tLW1vZHVsZXMuCgoJKiBhY2luY2x1ZGUubTQgKExJU1RfTUVNQkVSKTogTmV3IG1hY3JvLgoKCSogY29uZmlndXJlLmFjOiBTaW1wbGlmaWVkLCByZW1vdmVkIGNvZGUgZm9yIHBhcnNpbmcKCUVYVFJBX1BST0dSQU1TIGZyb20gTWFrZWZpbGUuYW0uCgoyMDAzLTA0LTA4ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogTWVyZ2VkIHJhbmRvbS1tb2R1bGUgc2VsZWN0aW9uIGNvZGUgZnJvbSBHbnVQRydzCgljb25maWd1cmUuYWMuCgoyMDAzLTA0LTA3ICBNb3JpdHogU2NodWx0ZSAgPG1vcml0ekBnMTBjb2RlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlZCBjb2RlIGZvciBnZW5lcmF0aW5nIGNvbnRydWN0LmMuCglSZW1vdmUgZGlnZXN0IG1vZHVsZXMgZnJvbSB0aGUgc3RhdGljX21vZHVsZXMgbGlzdCwgb25seSBoYW5kbGUKCXJhbmRvbSBtb2R1bGUgc2VsZWN0aW9uLgoKCjIwMDMtMDMtMjQgIE1vcml0eiBTY2h1bHRlICA8bW9yaXR6QGcxMGNvZGUuY29tPgoKCSogTkVXUzogTWVudGlvbiBuZXcgQ0JDX01BQyBmbGFnLgoKCSogQVVUSE9SUyAoTWFpbnRhaW5lcik6IFVwZGF0ZSBlbnRyeSBmb3IgU2ltb24gSm9zZWZzc29uLgoKMjAwMy0wMy0wNCAgTW9yaXR6IFNjaHVsdGUgIDxtb3JpdHpAZzEwY29kZS5jb20+CgoJKiBUT0RPOiBSZW1vdmUgaXRlbSBhYm91dCByZXNldHRpbmcgaGFuZGxlcywgc2luY2UKCWdjcnlfY2lwaGVyX3Jlc2V0IGlzIGltcGxlbWVudGVkIGJ5IG5vdy4KCgkqIE5FV1M6IE1lbnRpb25lZCBnY3J5X2NpcGhlcl9yZXNldC4KCjIwMDMtMDEtMjEgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogUkVBRE1FIChDb25maWd1cmUgb3B0aW9ucyk6IE5ldy4KCSogY29uZmlndXJlLmFjIChoYXZlX2xkX3ZlcnNpb25fc2NyaXB0KTogTmV3IG9wdGlvbgoJLS1lbmFibGUtbGQtdmVyc2lvbi1zY3JpcHQuCgoyMDAzLTAxLTIwICBTaW1vbiBKb3NlZnNzb24gIDxqYXNAZXh0dW5kby5jb20+CgoJKiBjb25maWd1cmUuYWMgKE1PRFVMRVNfSU5fQ0lQSEVSKTogQWRkIGNyYy4KCjIwMDMtMDEtMjAgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCVJlbGVhc2VkIDEuMS4xMi4KCgkqIGNvbmZpZ3VyZS5hYyAoTElCR0NSWVBUX0xUX1JFVklTSU9OKTogQnVtYmVkIHVwLgoKMjAwMi0xMi0yMSAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgoJUmVsZWFzZWQgMS4xLjExLgoKCSogY29uZmlndXJlLmFjIChMSUJHQ1JZUFRfTFRfQ1VSUkVOVDogQnVtYmVkIHRvIDYvNS8wIGR1ZSB0byBhIG5ldwoJaW50ZXJmYWNlCgoyMDAyLTEyLTE5ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYyAoaGF2ZV9wdGhyZWFkKTogQ2hlY2sgZm9yIHB0aHJlYWRzIGluIGxpYmMuCgkoaGF2ZV9sZF92ZXJzaW9uX3NjcmlwdCk6IE5ldy4KCjIwMDItMTEtMTAgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogY29uZmlndXJlLmFjIChNT0RVTEVTX0lOX0NJUEhFUik6IEFkZCBtZDQuYy4gIEJ5IFNpbW9uIEpvc2Vmc3Nvbi4KCjIwMDItMDktMjAgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCVJlbGVhc2VkIDEuMS4xMC4KCgkqIGNvbmZpZ3VyZS5hYyAoSEFWRV9ERVZfUkFORE9NX0lPQ1RMKTogRG9uJ3QgY2hlY2sgZm9yIGl0OyBpdCBpcwoJbm90IHVzZWQuCgkoQVNfQ0hFQ0tfSEVBREVSUyk6IENoZWNrIGZvciBzeXMvc2VsZWN0LmguCgkqIE1ha2VmaWxlLmFtIChESVNUX1NVQkRJUlMpOiBOZXcgdG8gaW5jbHVkZSB0aGUgdzMyLWRsbCBkaXJlY3RvcnkKCjIwMDItMDktMTggIFRpbW8gU2NodWx6ICA8dHNAd2lucHQub3JnPgoKCSogY29uZmlndXJlLmFjOiBBZGRlZCBtYWtlZmlsZSBmb3IgdGhlIFczMiBETEwuCgoyMDAyLTA5LTE3ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIFB0aCBhbmQgUHRocmVhZHMuCgoyMDAyLTA4LTIzICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCglSZWxlYXNlZCAxLjEuOS4KCgkqIGNvbmZpZ3VyZS5hYyAoTElCR0NSWVBUX0NPTkZJR19DRkxBR1MpOiBSZW5hbWVkIGZyb20KCUxJQkdDUllQVF9DRkxBR1MgYW5kIHJlbW92ZWQgdGhlIGxpYnBhdGggYmVjYXVzZSBpdCBpcyBzZXQgYnkgdGhlCgljb25maWcgc2NyaXB0LgoJKExJQkdDUllQVF9MVF9SRVZJU0lPTik6IFNldCBMVCB2ZXJzaW9uIHRvIDUvNC8xLgoKMjAwMi0wNi0yNSAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgoJUmVsZWFzZWQgMS4xLjguCgoJKiBjb25maWd1cmUuYWM6IFNldCBMVCB2ZXJzaW9uIHRvIDUvNC8wLgoKMjAwMi0wNS0yMSAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgoJUmVsZWFzZWQgMS4xLjcuCgoJKiBjb25maWd1cmUuYWM6IFNldCBMVCB2ZXJzaW9uIHRvIDQvMy8wLgoKMjAwMi0wNS0xNyAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgoJKiBjb25maWd1cmUuYWM6IFJlbW92ZWQgYWxsIHRoZSBkeW5hbWljIGxvYWRpbmcgc3R1ZmYuCgoyMDAyLTA1LTE2ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzogUmVvcmRlcmVkIHRoZSBDX0NIRUNLX0ZVTkNTLgoKMjAwMi0wNS0xNSAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgoJKiBjb25maWd1cmUuYWM6IEFkanVzdGVkIGZvciBuZXcgTVBJIG1vZHVsZSBzdHVmZi4KCjIwMDItMDUtMTQgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCUNoYW5nZWQgbGljZW5zZSB0byB0aGUgTEdQTC4KCjIwMDItMDUtMDIgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogam5saWIvOiBSZW1vdmVkLgoJKiBNYWtlZmlsZS5hbSAoU1VCRElSUyk6IFJlbW92ZWQgam5saWIuCgkqIGNvbmZpZ3VyZS5hYyAoam5saWIvTWFrZWZpbGUpOiBSZW1vdmVkLgoKCSogY29uZmlndXJlLmFjOiBEZWZpbmUgX1JFRU5UUkFOVC4KCjIwMDItMDItMTggIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogY29uZmlndXJlLmFjIChNUElfRVhUUkFfQVNNX09CSlMpOiBVc2UgLmxvIHN1ZmZpeC4KCShBQ19DQU5PTklDQUxfVEFSR0VUKTogQWRkZWQuCgoyMDAyLTAyLTA3ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCglSZWxlYXNlZCAxLjEuNi4KCjIwMDItMDEtMjQgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogam5saWIvOiBSZXBsYWNlZCBieSBhIGZyZXNoIGNvcHkgZnJvbSBHbnVQRyAoYWN0dWFsbHkgdGhlIE5ld1BHCglkZXZlbG9wbWVudCBicmFuY2gpLiAgQWRqdXN0ZWQgTWFrZWZpbGUuYW0gYW5kIGpubGliLWNvbmZpZy5oCglhY2NvcmRpbmdseS4KCjIwMDEtMTItMTggIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCVJlbGVhc2VkIDEuMS41LgoKCSogTWFrZWZpbGUuYW0gKGRpc3QtaG9vayk6IE9ubHkgbG9vayBpbiBtcGkgYW5kIHNjcmlwdHMgZm9yCglkaXN0ZmlsZXM7IHRoaXMgd2F5IHdlIGRvbid0IGluY2x1ZGUgdGhvc2Ugb2YgYSBzdGFsZSAibWFrZSBkaXN0IgoJZGlyZWN0b3J5LgoKCSogYWNpbmNsdWRlLm00IChHTlVQR19GSVhfSERSX1ZFUlNJT04pOiBNYWtlIGl0IHdvcmsgd2l0aCB0aGUgbmV3CglhdXRvbWFrZS4KCSogY29uZmlndXJlLmFjOiBEb24ndCBjaG1vZCBkYjJhbnkuCgoyMDAxLTA4LTA2ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlZCBjcm9zcyBjb21waWxpbmcgaGFja3MuCgoyMDAxLTA4LTAzICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCglSZWxlYXNlZCAxLjEuNC4KCgkqIGFjaW5jbHVkZS5tNCAoR05VUEdfQ0hFQ0tfVFlQRURFRik6IERlZmluZSBHTlUgU291cmNlLgoKICAgICAgICBNaWdyYXRlZCB0byBhdXRvY29uZiAyLjUyLgoJKiBhY2luY2x1ZGUubTQ6IFJlbW92ZWQgR05VUEdfTElOS19GSUxFUyBhbmQgY29udmVydGVkLgoJKiBhY2NvbmZpZy5oOiBSZW1vdmVkCgkqIGNvbmZpZ3VyZS5pbjogUmVwbGFjZWQgYnkuLi4KCSogY29uZmlndXJlLmFjOiBhbmQgbW9kaWZpZWQgZm9yIHVzZSB3aXRoIGF1dG9jb25mIDIuNTIuICBSZXBsYWNlZAoJR05VUEdfTElOS19GSUxFUyB3aXRoIEFDX0NPTkZJR19MSU5LUyBhbmQgbW92ZWQgc29tZSBpbmZvcm1hdGlvbmFsCgltZXNzYWdlcyB0byB0aGUgZW5kLiBSZW1vdmVkIC0tZW5hYmxlLW0tZGVidWcKCgkqIHRlc3RzLzogTmV3LgoJKiBNYWtlZmlsZS5hbTogSW5jbHVkZWQgdGVzdHMgZGlyZWN0b3J5CgoJKiBjb25maWd1cmUuaW4gKERZTkxJTktfTU9EX0NGTEFHUyk6IFVzZSAtc2hhcmVkIHdpdGggZGVjLW9zZi4KCVJlcG9ydGVkIGJ5IENocmlzIEFkYW1zLiAgTWVyZ2VkIHNvbWUgY2FzZXMuCgoyMDAxLTA1LTMxICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCglSZWxlYXNlZCAxLjEuMy4KCgkqIGNvbmZpZ3VyZS5pbjogVXNlIF9nY3J5XyBwcmVmaXggd2hlbiBjcmVhdGluZyB0aGUgY2lwaGVyIGNvbnN0cnVjdG9yLgoKCSogYWNjb25maWcuaCAoX0dDUllQVF9JTl9MSUJHQ1JZUFQpOiBEZWZpbmUgaXQgaGVyZS4KCjIwMDEtMDUtMjggIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogYWNpbmNsdWRlLm00IChHUEhfUFJPR19ET0NCT09LKTogUmVtb3ZlZC4KCShHUEhfUFJPR19EQjJBTlkpOiBOZXcuIFRha2VuIGZyb20gR1BILgoJKiBjb25maWd1cmUuaW46IFVzZSBpdCBoZXJlLgoKMjAwMC0xMi0xOSAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgoJTWFqb3IgY2hhbmdlOgoJUmVtb3ZlZCBhbGwgR251UEcgc3R1ZmYgYW5kIHJlbmFtZWQgdGhpcyBwaWVjZSBvZiBzb2Z0d2FyZQoJdG8gZ2NyeXB0LiAgVGhlIGRpcmVjdG9yeSBnY3J5cHQgaGFzIGJlZW4gcmVuYW1lZCB0byBzcmMuCgoyMDAwLTExLTE0ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLm9yZz4KCglWZXJzaW9uIDEuMS4yIHJlbGVhc2VkLgoKMjAwMC0xMS0xMyAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5vcmc+CgoJKiBhY2luY2x1ZGUubTQgKEdOVVBHX0ZJWF9IRFJfVkVSU0lPTik6IFZQQVRIIGJ1aWxkIGZpeC4KCjIwMDAtMTAtMTAgIFdlcm5lciBLb2NoICA8d2tAZ251cGcub3JnPgoKCSogTWFrZWZpbGUuYW0gKGRpc3QtaG9vayk6IENyZWF0ZSB0aGUgdmVyc2lvbiBmaWxlLgoJKiBjb25maWd1cmUuaW46IFNldCB0aGUgbGlidG9vbCB2ZXJzaW9uIGhlcmUsIHJlbW92ZWQgdGhlIG5lZWQKCWZvciB0aGUgdmVyc2lvbiBmaWxlLgoKTW9uIFNlcCAxOCAxNjozNTo0NSBDRVNUIDIwMDAgIFdlcm5lciBLb2NoICA8d2tAb3Blbml0LmRlPgoKICAgICAgICAqIGFjaW5jbHVkZS5tNCAoR05VUEdfQ0hFQ0tfTUxPQ0spOiAgUmVtb3ZlZCB0aGF0IHNpbGx5IG1rZGlyKCkuCgogICAgICAgICogY29uZmlndXJlLmluOiAgQ2hhbmdlcyB0byBhbGxvdyBmb3IgU29sYXJpcyByYW5kb20gZGV2aWNlLgogICAgICAgIEJ5IE5pbHMgRWxsbWVucmVpY2guCiAgICAgICAgKC0td2l0aC1lZ2Qtc29ja2V0KTogTmV3LgoKICAgICAgICAqIGNvbmZpZ3VyZS5pbiAoR05VUEdfSE9NRURJUik6IE5ldy4KCiAgICAgICAgKiBjb25maWd1cmUuaW46IENoZWNrIGZvciBmc3RhdDY0IGFuZCBmb3BlbjY0CgogICAgICAgICogYWNpbmNsdWRlLm00IChHTlVQR19DSEVDS19GQVFQUk9HKTogTmV3LgogICAgICAgICogY29uZmlndXJlLmluOiBUZXN0IGZvciB0aGlzLgoKICAgICAgICAqIGNvbmZpZ3VyZS5pbiAoRFlOTElOS19NT0RfQ0ZMQUdTKTogRml4IGJ5IERhdmlkIENoYW1waW9uLgoKVHVlIEF1ZyAyMiAxNDozMToxNSBDRVNUIDIwMDAgIFdlcm5lciBLb2NoICA8d2tAb3Blbml0LmRlPgoKICAgICAgICBWZXJzaW9uIDEuMS4xCgpGcmkgQXVnIDE4IDE0OjI3OjE0IENFU1QgMjAwMCAgV2VybmVyIEtvY2ggIDx3a0BvcGVuaXQuZGU+CgogICogYWdlbnQvOiBOZXcuCiAgKiBNYWtlZmlsZS5hbSwgY29uZmlndXJlLmluOiBTdXBwb3J0IGZvciB0aGUgbmV3IGRpcmVjdG9yeS4KCk1vbiBKdWwgMTcgMTY6MzU6NDcgQ0VTVCAyMDAwICBXZXJuZXIgS29jaCAgPHdrQD4KCiAgKiBjb25maWd1cmUuaW4gKG1pbmd3MzIpOiBDaGFuZ2VzIHRvIGFsbG93IGZvciBtaW5ndzMybXN2YwoKRnJpIEp1bCAxNCAxOTozODoyMyBDRVNUIDIwMDAgIFdlcm5lciBLb2NoICA8d2tAPgoKICBUaGUgYmlnIG1lcmdlIGJldHdlZW4gdGhpcyBvbmUgYW5kIHRoZSBzdGFibGUgYnJhbmNoIDEuMC4gIFN0aWxsIG5lZWQKICB0byBtZXJnZSBUTkFOS1MsIEFVVEhPUlMgYW5kIHN1Y2guICBJdCBwcm9iYWx5IGRvZXMgbm90IGNvbXBpbGUgeWV0LgoKICAqIGFjaW5jbHVkZS5tNCAoR05VUEdfQ0hFQ0tfTUxPQ0spOiBGaXhlZCBzeW50YXggZXJyb3IgaW4gQyBjb2RlLgoKICAqIGNvbmZpZ3VyZS5pbjogQWRkIGNoZWNrIGZvciB0ZXJtaW8uaCwgd2FpdCB1bmN0aW9zbiBhbmQgc2lnYWN0aW9uLgoKICAqIGFjaW5jbHVkZS5tNCwgY29uZmlndXJlLmluIChHTlVQR19DSEVDS19HTlVNQUtFKTogTmV3LgoKICAqIGFjaW5jbHVkZS5tNCAoTUtESVJfVEFLRVNfT05FX0FSRyk6IENoZWNrIHNvbWUgaGVhZGVycy4gQnkgR2HrbCBRdelyaS4KCiAgKiBjb25maWd1cmUuaW4gKEFNX0lOSVRfQVVUT01BS0UpOiBVc2UgdGhpcyBub3cuIEJ5IEdh62wuCgogICogYWNpbmNsdWRlLm00IChHTlVQR19DSEVDS19FWFBPUlREWU5BTUlDKTogUmVwbGFjZW1lbnQgZm9yCiAgR05VUEdfQ0hFQ0tfUkRZTkFNSUMgd2hpY2ggc2hvdWxkIGhhbmRsZSBnY2Mgd2l0aCBub24gR05VIGxkIG5pY2VyLgogIENvbnRyaWJ1dGVkIGJ5IERhdmUgRHlrc3RyYS4KICAqIGNvbmZpZ3VyZS5pbiAoR05ZUEdfQ0hFQ0tfUkRZTkFNSUMpOiBSZXBsYWNlZCBieSB0aGUgbmV3IGNoZWNrLgoKICAqIGNvbmZpZ3VyZS5pbjogQWRkIGEgdGVzdCBmb3IgdW5pc2duZWQgbG9uZyBsb25nLgoKICAqIGNvbmZpZ3VyZS5pbiAoRFlOTElOS19NT0RfQ0ZMQUdTKTogU2V0IGRpZmZlcmVudCBmb3IgTmV0QlNELgoKICAqIGNvbmZpZ3VyZS5pbjogQWRkIGNoZWNrIGZvciBjbG9ja19nZXR0aW1lCgogICogY29uZmlndXJlLmluIChBTExfTElOR1VBUyk6IEFkZCBubC4KICAqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgRXNwZXJhbnRvLgogICogY29uZmlndXJlLmluIChBTExfTElOR1VBUyk6IEFkZCBzdiBhbmQgamEuCgogICogY29uZmlndXJlLmluOiBVc2UgL3Vzci9sb2NhbCBmb3IgQ0ZMQUdTIGFuZCBMREZMQUdTIHdoZW4KICB0YXJnZXQgaXMgZnJlZWJzZC4gIEJ5IFLpbWkuCgogICogY29uZmlndXJlLmluOiBEbyBub3Qgc2V0IGRldmVsb3BtZW50IHZlcnNpb24gd2hlbiB0aGUgdmVyc2lvbiBoYXMKICBhIGRhc2ggaW4gaXQuICBTdWdnZXN0ZWQgYnkgRGF2ZSBEeWtzdHJhLgoKICAqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlZCBzdWJzdGl0dXRpb24gZm9yIGRvYy9ncGgvTWFrZWZpbGUuCiAgRG8gYWxsIHRoZSBnY2Mgd2FybmluZyBvbmx5IGluIG1haW50YWluZXIgbW9kZS4KCiAgKiBjb25maWd1cmUuaW4gKGRsb3Blbik6IFVzZSBDSEVDS19GVU5DIGZvciBhIHRlc3Qgb2YgZGxvcGVuIGluIGxpYmMuCiAgU3VnZ2VzdGVkIGJ5IEFsZXhhbmRyZSBPbGl2YS4KICAoLVdhbGwpOiBNb3ZlZCB0aGUgc2V0dHRpbmcgb2YgZ2NjIHdhcm5pbmcgb3B0aW9ucyBuZWFyIHRvIHRoZSBlbmQKICBzbyB0aGF0IHRlc3RzIGRvbid0IGdldCBjb25mdXNlZC4gIFN1Z2dlc3RlZCBieSBQYXVsIEQuIFNtaXRoLgoKICAqIGFjaW5jbHVkZS5tNCAoR05VUEdfU1lTX05NX1BBUlNFKTogQWRkZWQgQlNESSBzdXBwb3J0LgogIChHTlVQR19DSEVDS19SRFlOQU1JQyk6IERpdHRvLgoKICAqIGFjaW5jbHVkZS5tNCAoR05VUEdfQ0hFQ0tfTUxPQ0spOiBDaGFuZ2VkIHRoZSB3YXkgdG8gdGVzdCBmb3IKICBsaWJydC4gIFRlc3Qgc3VnZ2VzdGVkIGJ5IEplZmYgTG9uZy4KCiAgKiBhY2luY2x1ZGUubTQgKEdOVVBHX0NIRUNLX01MT0NLKTogRG8gbGlicnQgY2hlY2sgb25seSB3aGVuCiAgd2UgY2FuJ3QgbGluayBhIHRlc3QgcHJvZ3JhbS4gIFRoaXMgd2F5IEdOVSBzeXN0ZW1zIGRvbid0IG5lZWQKICB0byBsaW5rIGFnYWluc3QgbGlucnQuCiAgKEdOVVBHX0NIRUNLX0lQQyk6IEZpeGVkIHVzZSBvZiBUUllfQ09NUElMRSBtYWNyby4gIEZyb20gVGltIE1vb25leS4KCiAgKiBhY2luY2x1ZGUubTQgKEdOVVBHX1NZU19TWU1CT0xfVU5ERVJTQ09SRSk6IEFkZCBzdXBwb3J0IGZvcgogIERKR1BQLgogIChHTlVQR19DSEVDS19NTE9DSyk6IENoZWNrIHdoZXRoZXIgbWxvY2sgc2l0cyBpbiBsaWJydC4KCiAgKiBhY2luY2x1ZGUubTQgKEdOVVBHX0NIRUNLX1JEWU5BTUlDKTogQWRkIE5ldEJTRC4gQnkgVGhvbWFzIEtsYXVzbmVyLgoKICAqIGFjY29uZmlnLmggKEhBVkVfTUxPQ0spOiBBZGRlZAoKTW9uIE1hciAxMyAxOToyMjo0NiBDRVQgMjAwMCAgV2VybmVyIEtvY2ggIDx3a0BvcGVuaXQuZGU+CgoJKiBjb25maWd1cmUuaW46IE5vdyB1c2VzIHRoZSBEb2Nib29rIE00cyBmcm9tIEdQSC4KCk1vbiBKYW4gMzEgMTc6NDY6MzUgQ0VUIDIwMDAgIFdlcm5lciBLb2NoICA8d2tAPgoKCSogTWFrZWZpbGUuYW06IFJlLWFkZGVkIHRvb2xzLiBCeSBS6W1pLgoKTW9uIEphbiAzMSAxNjozNzozNCBDRVQgMjAwMCAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5kZT4KCgkqIGNvbmZpZ3VyZS5pbjogQ3JlYXRlIGEgc3ltbGluayBmb3IgdHlwZXMuaCBpbiBnY3J5cHQvLgoKVGh1IEphbiAyNyAxODowMDo0NCBDRVQgMjAwMCAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5kZT4KCgkqIGNvbmZpZ3VyZS5pbiAoZzEwZGVmcy5oKTogUmVwbGFjZWQgYnkgZ251cGctZGVmcy5oCgpNb24gSmFuIDI0IDEzOjA0OjI4IENFVCAyMDAwICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLmRlPgoKCSogam5saWIvIDogTmV3LgoKCSogY29uZmlndXJlLmluOiBEbyBzZXQgZGV2ZWxvcG1lbnQgdmVyc2lvbiB3aGVuIHRoZSB2ZXJzaW9uIGhhcwoJYSBkYXNoIGluIGl0LiAgU3VnZ2VzdGVkIGJ5IERhdmUgRHlrc3RyYS4KClRodSBEZWMgIDkgMTc6MjI6MjcgQ0VUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAZ251cGcuZGU+CgoJKiBhY2luY2x1ZGUubTQgKEdOVVBHX0ZJWF9IRFJfVkVSU0lPTik6IE5ldy4KCSogY29uZmlndXJlLmluOiBDaGVjayBhbmQgZml4IHRoZSB2ZXJzaW9uIG51bWJlciBvZiBnY3J5cHQvZ2NyeXB0LmgKCXNvIHRoYXQgaXQgaXMgYWx3YXlzIHRoZSBzYXZlIGFzIFZFUlNJT04uCgpUaHUgT2N0IDI4IDE2OjE3OjQ2IENFU1QgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0BnbnVwZy5kZT4KCgkqIFN0YXJ0ZWQgd2l0aCBkZXZlbG9wbWVudCBzZXJpZXMgMS4xIG9uIDE5OTktMTAtMjYKClR1ZSBPY3QgMjYgMTQ6MTA6MjEgQ0VTVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGdudXBnLmRlPgoKCSogUkVBRE1FLWFscGhhOiBOZXcKCgkqIGNvbmZpZ3VyZS5pbjogRml4ZWQgcXVvdGluZyBpbiB0ZXN0IGZvciBkZXZlbG9wbWVudCB2ZXJzaW9uLgoKCSogVEhBTktTOiBBZGQgZW50cmllcyBmb3IgTWljaGFlbCwgQnJlbm5vIGFuZCBKIEhvcmFjaW8gd2hvIGRpZAoJdmVyeSBuaWNlIEhvd3RvIGRvY3VtZW50cyAtIEkgYXBvbGlnaXplIGZvciBmb3JnZXR0aW5nIHRvIG1lbnRpb24gdGhlbQoJZWFybGllci4KCkZyaSBTZXAgMTcgMTI6NTY6NDIgQ0VTVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCgkqIGNvbmZpZ3VyZS5pbjogQWRkICItbGNhcCIgd2hlbiBjYXBhYmlsaXRpZXMgYXJlIHJlcXVlc3RlZC4KCUFkZCB0aGUgY29uZGl0aW9uYWwgQ1JPU1NfQ09NUElMSU5HLgoJKiBNYWtlZmlsZS5hbTogRG9uJ3QgdXNlIGNoZWNrcyB3aGVuIENST1NTX0NPTVBJTElORy4KCgpXZWQgU2VwIDE1IDE2OjIyOjE3IENFU1QgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkIHB0X1BULgoKCSogY29uZmlndXJlLmluOiBTb21lIHR3ZWFrcyBmb3IgY3Jvc3MgY29tcGlsaW5nIHVuZGVyIE1pbmdXMzIKCSogYWNjb25maWcuaCAoVVNFX1NUQVRJQ19STkRXMzIpOiBOZXcuCgpUdWUgU2VwICA3IDE3OjA4OjEwIENFU1QgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgoJKiBWRVJTSU9OOiBTZXQgdG8gMS4wLjAuCgpNb24gU2VwICA2IDE5OjU5OjA4IENFU1QgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgoJKiBjb25maWd1cmUuaW46IENyZWF0ZSBtYWtlZmlsZSBpbiBkb2MvZ3BoCgoJKiBhY2luY2x1ZGUubTQgKEdOVVBHX0ZVTkNfTUtESVJfVEFLRVNfT05FX0FSRyk6IE5ldwoJKiBjb25maWd1cmUuaW46IHVzZSB0aGUgYWJvdmUuCgpUaHUgU2VwICAyIDE2OjQwOjU1IENFU1QgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgoJKiBWRVJTSU9OOiBTZXQgdG8gMC45LjExLgoKVHVlIEF1ZyAzMSAxNzoyMDo0NCBDRVNUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBjb25maWd1cmUuaW46IE1pbm9yIGNoYW5nZXMgdG8gdGhlIE9TLzIgYW5kIE1pbmd3MzIgc3lzdGVtIGxhYmVscy4KCUFkZCBhIHByaW50YWJsZSBuYW1lIGZvciBIdXJkLgoKTW9uIEF1ZyAzMCAyMDozODozMyBDRVNUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBjb25maWd1cmUuaW46IFNvbWUgc3VwcG9ydCBmb3IgREpHUFAgKE1hcmsgRWxicmVjaHQpCgpXZWQgQXVnICA0IDEwOjM0OjQ2IENFU1QgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIFZFUlNJT046IFNldCB0byAwLjkuMTAuCgpNb24gSnVsIDI2IDA5OjM0OjQ2IENFU1QgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIGFjaW5jbHVkZS5tNCAoR05VUEdfU1lTX1NZTUJPTF9VTkRFUlNDT1JFKTogcmVtb3ZlIGluaXQgb2YgYWNfY3ZfLi4uCgoJKiBNYWtlZmlsZS5hbSAoRElTQ0xFQU5GSUxFUyk6IE5ldwoKRnJpIEp1bCAyMyAxMzo1MzowMyBDRVNUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBWRVJTSU9OOiBTZXQgdG8gMC45LjkuCgoJKiBjb25maWd1cmUuaW46IFByaW50IGEgbm90aWNlIHdoZW4gcm5kdW5peCBpcyB1c2VkLgoKVGh1IEp1bCAxNSAxMDoxNTozNSBDRVNUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBhY2luY2x1ZGUubTQgKEdOVVBHX1NZU19TWU1CT0xfVU5ERVJTQ09SRSk6IEZpeGVkIGxhc3QgbW9kaWZpY2F0aW9uLgoKV2VkIEp1bCAgNyAxMzowODo0MCBDRVNUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBNYWtlZmlsZS5hbTogU3VwcG9ydCBmb3IgbGlidG9vbC4KCSogY29uZmlndXJlLmluOiBEaXR0by4KClR1ZSBKdW4gMjkgMjE6NDQ6MjUgQ0VTVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogY29uZmlndXJlLmluICh1c2VfbG9jYWxfemxpYik6IFRoZSBsb3N0IGRvbGxhciBpcyBiYWNrLgoKCSogYWNpbmNsdWRlLm00IChHTlVQR19TWVNfU1lNQk9MX1VOREVSU0NPUkUpOiBBZGQgRU1YIGNhc2UuCgkqIGNvbmZpZ3VyZS5pbjogQW5vdGhlciB2YXJpYW50IG9mIHRoZSBNWCB2ZW5kb3Igc3RyaW5nCgoJKiBjb25maWd1cmUuaW4gKC0td2l0aC1jYXBhYmlsaXRpZXMpOiBTb21lIHRlc3QgY29kZSAoUmVtaSkuCgpTYXQgSnVuIDI2IDEyOjE1OjU5IENFU1QgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIGFjaW5jbHVkZS5tNCAoR05VUEdfQ0hFQ0tfUkRZTkFNSUMpOiBTdXBwb3J0IGZvciBIUFVYIGFuZCBJUklYLgoJKiBjb25maWd1cmUuaW4gKEhBVkVfRExfU0hMX0xPQUQpOiBOZXcgZm9yIEhQVVggKERhdmUgRHlrc3RyYSkuCgoJKiBWRVJTSU9OOiBOb3cgMC45LjgKCldlZCBKdW4gMTYgMjA6MTY6MjEgQ0VTVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogY29uZmlndXJlLmluOiBBZGQgdGVzdCBmb3IgZG9jYm9vay10by1tYW4KClR1ZSBKdW4gMTUgMTI6MjE6MDggQ0VTVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogYWNpbmNsdWRlLm00IChHTlVQR19TWVNfTk1fUEFSU0UpOiBTdXBwb3J0IGZvciB7bmV0LGZyZWV9YnNkLAoKVGh1IEp1biAxMCAxNDoxODoyMyBDRVNUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBjb25maWd1cmUuaW4gKFpMSUIsR0RCTSk6IENoZWNrIGJvdGgsIGhlYWRlciBhbmQgbGliLgoKU2F0IEp1biAgNSAxNTozMDozMyBDRVNUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBwa2NsaXN0LmMgKGtleV9wcmVzZW50X2luX3BrX2xpc3QpOiBOZXcgKE1pY2hhZWwpLgoKVHVlIE1heSAyNSAxOTo1MDozMiBDRVNUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBjb25maWd1cmUuaW4gKElTX0RFVkVMT1BNRU5UX1ZFUlNJT04pOiBGaXhlZCBkZXRlY3Rpb24uCgpTdW4gTWF5IDIzIDE0OjIwOjIyIENFU1QgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIGFjaW5jbHVkZS5tNCAoR05VUEdfU1lTX1NZTUJPTF9VTkRFUlNDT1JFKTogYXNzdW1lIHllcyB3aGVuCgljcm9zcy1jb21waWxpbmcuCgpNb24gTWF5IDE3IDIxOjU0OjQzIENFU1QgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIGNvbmZpZ3VyZS5pbiAoc29ja2V0KTogRml4IGZvciBVbmlzeXMgYnkgS2F0c3VoaXJvIEtvbmRvdS4KClNhdCBNYXkgIDggMTk6Mjg6MDggQ0VTVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogTkVXUzogQWRkIGEgbWFya2VyIGxpbmUgd2hpY2ggSSBmb3Jnb3QgdG8gZG8gZm9yIDAuOS42LgoKVGh1IE1heSAgNiAxNDoxODoxNyBDRVNUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBSRUFETUU6IE1pbm9yIHVwZGF0ZXMKCgkqIFZFUlNJT046IE5vdyAwLjkuNgoKVGh1IEFwciAgOCAwOTozNTo1MyBDRVNUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBhY2luY2x1ZGUubTQgKEdOVVBHX0NIRUNLX1JEWU5BTUlDKTogRml4IGZvcgoJCQkJCSAgICAgICBhbWlnYS1vcGVuYnNkIChQZXRlciBSZWljaCkKCShHTlVQR19QUk9HX05NKTogRGl0dG8KCldlZCBBcHIgIDcgMjA6NTE6MzkgQ0VTVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogTWFrZWZpbGUuYW0gKGcxMGRlZnMuaCk6IFJlbW92ZWQuCgkqIGNvbmZpZ3VyZS5pbiAoQUNfT1VUUFVUX0NPTU1BTkRTKTogQ3JlYXRlIGcxMGRlZnMuaAoKU2F0IE1hciAyMCAxMjo1NTozMyBDRVQgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIFZFUlNJT046IE5vdyAwLjkuNQoKU3VuIE1hciAxNCAxOTozNDozNiBDRVQgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIGFjaW5jbHVkZS5tNCAoQU1fU1lTX1NZTUJPTF9VTkRFUlNDT1JFKTogUmVtb3ZlZCBiZWNhdXNlIGl0IGlzCglub3cgaW4gdGhlIGxhdGVzdCBsaWJ0b29sLgoKVGh1IE1hciAxMSAxNjozOTo0NiBDRVQgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlZCB0aGUgbmVlZCBmb3IgbGlidG9vbAoKTW9uIE1hciAgOCAyMDo0NzoxNyBDRVQgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIGNvbmZpZ3VyZS5pbiAoRExTWU1fTkVFRFNfVU5ERVJTQ09SRSk6IFJlcGxhY2VkLgoJKiBhY2luY2x1ZGUuaW4gKEFNX1NZU19TWU1CT0xfVU5ERVJTQ09SRSk6IE5ldy4KCgkqIFZFUlNJT046IE5vdyAwLjkuNAoKU3VuIEZlYiAyOCAxOToxMTowMCBDRVQgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIGNvbmZpZ3VyZS5pbiAoZGxkKTogVGVzdCBkaXNhYmxlZC4KCkZyaSBGZWIgMjYgMTc6NTU6NDEgQ0VUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBlbmNvZGUuYyAoZW5jb2RlX3NpbXBsZSk6IHRlbXBvcmFyeSBmaXguCgpXZWQgRmViIDI0IDExOjA3OjI3IENFVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogY29uZmlndXJlLmluOiBOZXcgb3B0aW9uIC0tZW5hYmxlLXN0YXRpYy1ybmQuCgpNb24gRmViIDIyIDIwOjA0OjAwIENFVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogQlVHUzogTm93IHdlIGFzc2lnbiBidWcgbnVtYmVycy4KCSogT0JVR1M6IE5ldyB0byBrZWVwIHJhY2sgbyBmaXhlZCBidWdzIChDVlMgb25seSkKCkZyaSBGZWIgMTkgMTg6MDE6NTQgQ0VUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBWRVJTSU9OOiBSZWxlYXNlZCAwLjkuMwoKRnJpIEZlYiAxOSAxNTo0OToxNSBDRVQgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIGFjaW5jbHVkZS5tNDogUmVtb3ZlZCBnZXR0ZXh0IG1hY3Jvcy4KClR1ZSBGZWIgMTYgMTQ6MTA6MDIgQ0VUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBjb25maWd1cmUuaW4gKHNvY2tldCk6IENoZWNrIGZvciAtbHNvY2tldCBhbmQgLWxuc2wuCgkob3NmNCk6IERpc2FibGUgYWxsIHdhcm5pbmdzIGZvciBERUMncyBjYy4KCSgtV2FsbCk6IEFkZCBtb3JlIHdhcm5pbmcgb3B0aW9ucyBmb3IgZ2NjCgpTYXQgRmViIDEzIDEyOjA0OjQzIENFVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogY29uZmlndXJlLmluOiBDaGFuZ2VkIGRldGVjdGlvbiBvZiBjb21waWxlciBmbGFncy4KCSogaW50bC8gOiBSZW1vdmVkIGRpcmVjdG9yeQoKV2VkIEZlYiAxMCAxNzoxNTozOSBDRVQgMTk5OSAgV2VybmVyIEtvY2ggIDx3a0Bpc2lsLmQuc2h1dHRsZS5kZT4KCgkqIGFjaW5jbHVkZS5tNCAoR05VUEdfQ0hFQ0tfUkRZTkFNSUMpOiBGaXggZm9yIGZyZWVic2QgMi4yCgoJKiBjb25maWd1cmUuaW46IGEgbG90IG9mIGNoYW5nZXMgdG8gYWxsb3cgc2VsZWN0aW9uIG9mIG1vZHVsZXMuCglBZGQgc3VwcG9ydCBmb3IgT1MvMi4KCgkqIGFjaW5jbHVkZS5tNDogYWRkIHNvbWUgbW9yZSBjYWNoaW5nCgoJKiBSRUFETUU6IFNwZWxsaW5nIGFuZCBncmFtbWFyIGNvcnJlY3Rpb25zIChKb2huIEEuIE1hcnRpbikKCSogSU5TVEFMTDogRGl0dG8uCgpXZWQgSmFuIDIwIDIxOjQwOjIxIENFVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogY29uZmlndXJlLmluOiAtLWVuYWJsZS1tLWd1YXJkIGlzIG5vdyBkZWZhdWx0CgpXZWQgSmFuIDEzIDEyOjQ5OjM2IENFVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogSU5TVEFMTDogQXBwbGllZCBuZXcgaW5mb3JtYXRpb24gaG93IHRvIGJ1aWxkIHJwbXMgYnkgRmFiaW8gQ29hdHRpCgkqIE1ha2VmaWxlLmluIChnbnVwZy5zcGVjKTogQ2hhbmdlZCB0aGUgbmFtZXMuCgpUdWUgSmFuIDEyIDExOjE3OjE4IENFVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogY29uZmlnLmxpbmtzIChtNjhrLWF0YXJpLW1pbnQpOiBOZXcKClR1ZSBKYW4gMTIgMDk6MTc6MTkgQ0VUIDE5OTkgIEdh62wgUXXpcmkgPGdxdWVyaUBtYWlsLmRvdGNvbS5mcj4KCgkqIGFsbDogRml4ZWQgdHlwb3MgYWxsIG92ZXIgdGhlIHBsYWNlCgpTYXQgSmFuICA5IDE2OjAyOjIzIENFVCAxOTk5ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogY29uZmlndXJlLmluOiBBZGQgYSB3YXkgdG8gc3RhdGljYWxseSBsaW5rIHJuZHVuaXgKClN1biBKYW4gIDMgMTU6Mjg6NDQgQ0VUIDE5OTkgIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBhY2luY2x1ZGUubTQgKEdOVVBHX0NIRUNLX1JEWU5BTUlDKTogTmV3LgoJKiBjb25maWd1cmUuaW4gKERZTkxPQURfQ0ZMQUdTKTogVXNlIHJlc3VsdCBmcm9tIENIRUNLX1JEWU5BTUlDCgpXZWQgRGVjIDIzIDEzOjE4OjE0IENFVCAxOTk4ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogUkVBRE1FOiBSZXBsYWNlZCB0aGUgY29tbWFuZCBvdmVydmlldyB3aXRoIGEgc2hvcnQgaW50cm8uCgpTYXQgRGVjIDEyIDE4OjQwOjMyIENFVCAxOTk4ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogY29uZmlndXJlLmluOiBBZGQgY2hlY2sgZm9yIGRsb3BlbiBpbiBsaWJjIChHcmVnIFRyb3hlbCkKCWFuZCBhIG5ldyBkZWZpbmUKCSogYWNjb25maWcuaCAoRExTWU1fTkVFRFNfVU5ERVJTQ09SRSk6IE5ldy4KClRodSBEZWMgMTAgMjA6MTU6MzYgQ0VUIDE5OTggIFdlcm5lciBLb2NoICA8d2tAaXNpbC5kLnNodXR0bGUuZGU+CgoJKiBhY2luY2x1ZGUubSAoR05VUEdfQ0hFQ0tfUElDKTogTmV3CgkqIGNvbmZpZ3VyZS5pbiwgYWNpbmNsdWRlLm00OiBSZW5hbWVkIGFsbCBXS18gdG8gR05VUEdfCgpUdWUgRGVjICA4IDE1OjA5OjI5IENFVCAxOTk4ICBXZXJuZXIgS29jaCAgPHdrQGlzaWwuZC5zaHV0dGxlLmRlPgoKCSogVkVSU0lPTjogU2V0IHRvIDAuNC41CgpXZWQgTm92IDI1IDEyOjM4OjI5IDE5OTggIFdlcm5lciBLb2NoICAod2tAaXNpbC5kLnNodXR0bGUuZGUpCgoJKiBjb25maWd1cmUuaW4gKFVTRV9STkRMSU5VWCk6IE5ldy4KCkZyaSBOb3YgMjAgMTk6MzQ6NTcgMTk5OCAgV2VybmVyIEtvY2ggICh3a0Bpc2lsLmQuc2h1dHRsZS5kZSkKCgkqIFZFUlNJT046IFJlbGVhc2VkIDAuNC40CgoJKiBjb25maWd1cmUuaW4gKHRyeV9hc21fbW9kdWxlcyk6IEZvciBvcHRpb24gLS1kaXNhYmxlLWFzbQoKVHVlIE5vdiAxMCAxOTozMjo0MCAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogY29uZmlndXJlLmluIChNUElfU0ZMQUdTKTogTmV3LgoKVHVlIE5vdiAxMCAxMzo0NDo1MyAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogQUJPVVQtTkxTOiBOZXcKCSogY29uZmlndXJlLmluIChBQ19SRVZJU0lPTik6IE5ldy4KClN1biBOb3YgIDggMTg6MjA6MzUgMTk5OCAgV2VybmVyIEtvY2ggICh3a0Bpc2lsLmQuc2h1dHRsZS5kZSkKCgkqIFZFUlNJT046IFNldCB0byAwLjQuMwoKU3VuIE9jdCAyNSAxOTo0OTozNyAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogTWFrZWZpbGUuYW0gKGcxMGRlZnMuaCk6IE5ldyBtYWNybyBHTlVQR19EQVRBRElSLgoKV2VkIE9jdCAyMSAxNzoyNDoyNCAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogY29uZmlndXJlLmluOiBSZW1vdmVkIGdldHRleHQga2x1ZGdlCgkqIGFjaW5jbHVkZS5tNDogQWRkIHBhdGNoZWQgQU1fV0lUSF9OS1MgbWFjcm8KClR1ZSBPY3QgMjAgMTk6MDM6MzYgMTk5OCAgV2VybmVyIEtvY2ggICh3a0Bpc2lsLmQuc2h1dHRsZS5kZSkKCgkqIGNvbmZpZ3VyZS5pbjogS2x1ZGdlIHRvIG1ha2UgQU1fR05VX0dFVFRFWFQgd29yaywKCWNoYW5nZWQgc29tZSBtYWNvcnMgdG8gbW9yZSBtb2Rlcm4gdmVyc2lvbnMuIEFsc28KCWNoYW5nZWcgdGhlIGFsbCBtYWtlZmlsZXMgdG8gcmVtb3ZlIGR1cGxpY2F0ZSAuLi9pbnRsLgoJKiBhY2luY2x1ZGUubTQ6IFJlbW92ZWQgdGhlIGdldHRleHQgc3R1ZmYsIGFzIHRoaXMKCWFscmVhZHkgY29tZXMgd2l0aCBhdXRvbWFrZSBub3cuCgpXZWQgT2N0IDE0IDEyOjExOjM0IDE5OTggIFdlcm5lciBLb2NoICAod2tAaXNpbC5kLnNodXR0bGUuZGUpCgoJKiBjb25maWd1cmUuaW4gKE5BTUVfT0ZfREVWX1JBTkRPTSk6IE5ldy4KCShEWU5MSU5LX01PRF9DRkxBR1MpOiBOZXcuCgpUaHUgT2N0ICA4IDEwOjU1OjE1IDE5OTggIFdlcm5lciBLb2NoICAod2tAaXNpbC5kLnNodXR0bGUuZGUpCgoJKiBNYWtlZmlsZS5hbSAoZzEwZGVmcy5oKTogY3JlYXRlcyBpbmNsdWRlIGZpbGUKCSogYWNjb25maWcuaDogbm93IGluY2x1ZGVzIGcxMGRlZnMuaAoJKiBjb25maWd1cmUuaW46IFJlbW92ZWQgRzEwX0xPQ0FMRURJUiBhbmQgR05VUEdfTElCCgpUaHUgU2VwIDE3IDE4OjQ5OjQwIDE5OTggIFdlcm5lciBLb2NoICAod2tAKG5vbmUpKQoKCSogTWFrZWZpbGUuYW0gKGRpc3QtaG9vayk6IE5vdyBjcmVhdGVzIFJQTSBmaWxlLgoJKiBzY3JpcHRzL2dudXBnLnNwZWM6IE5ldyB0ZW1wbGF0ZSBmaWxlIGZvciBSUE1zCgpUaHUgSnVsIDMwIDE5OjE3OjA3IDE5OTggIFdlcm5lciBLb2NoICAod2tAKG5vbmUpKQoKCSogYWNpbmNsdWRlLmggKFdLX0NIRUNLX0lQQyk6IE5ldwoJKiBjb25maWd1cmUuaW4gOiBBZGQgY2hlY2tzIGZvciBTeXNWIElQQwoKVGh1IEp1biAyNSAxMToxODo0OSAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogY29uZmlndXJlLmluICgtLWRpc2FibGUtZHlubG9hZCk6IE5ldy4KCldlZCBKdW4gMTAgMDc6NDg6NTkgMTk5OCAgV2VybmVyIEtvY2gsbW9iaWwsLCwJKHdrQHRvYm9sZCkKCgkqIGNvbmZpZ3VyZS5pbiAoR05VUEdfTElCRElSKTogTmV3LgoKTW9uIE1heSAyNSAxOToxMDo1OSAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogcmFuZC11bml4LmMgKGZhc3RfcmFuZG9tX3BvbGwpOiBmaXhlZCBzeW50YXggYnVnLgoKTW9uIE1heSAxMSAxMDoyMTozMSAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogY29uZmlndXJlLmluIChQUklOVEFCTEVfT1NfTkFNRSk6IExpbnV4IGlzIG5vdyBHTlUvTGludXgKClR1ZSBBcHIgMTQgMTk6MDg6MDUgMTk5OCAgV2VybmVyIEtvY2ggICh3a0Bpc2lsLmQuc2h1dHRsZS5kZSkKCgkqIFthbGwgZmlsZXNdOiBBcHBsaWVkIE1hdHRoZXcgU2thbGEncyB0eXBvIGFuZCBncmFtbWFyIGZpeGVzLgoKV2VkIE1hciAgNCAxMDozMjo0MCAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogY29uZmlndXJlLmluIChnZXRydXNhZ2UsZ2V0dGltZW9mZGF5KTogTmV3IHRlc3RzLgoKRnJpIEZlYiAyNyAxMzoxNDoxNyAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogY29uZmlndXJlLmluICgtLWRpc2FibGUtbS1ndWFyZCk6IE5ldy4KClRodSBGZWIgMjYgMTc6MDk6MjcgMTk5OCAgV2VybmVyIEtvY2ggICh3a0Bpc2lsLmQuc2h1dHRsZS5kZSkKCgkqIGNvbmZpZ3VyZS5pbiwgYWNpbmNsdWRlLm00LCBpbnRsLywgcG8vOiBOZXcgbWFjcm9zIHRha2VuCglmcm9tIEdOT01FLCBzd2l0Y2hlZCB0byBhdXRvbWFrZSAxLjJmCgpUaHUgRmViIDI2IDA5OjA1OjQ2IDE5OTggIFdlcm5lciBLb2NoICAod2tAaXNpbC5kLnNodXR0bGUuZGUpCgoJKiBjb25maWd1cmUuaW4gKGRvYy9NYWtlZmlsZSk6IE5ldwoKVGh1IEZlYiAyNiAwNzo0MDo0NyAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogY29uZmlndXJlLmluOiBDaGFuZ2VkIGdldHRleHQgc3R1ZmYKCldlZCBGZWIgMjUgMTE6NDQ6MTAgMTk5OCAgV2VybmVyIEtvY2ggICh3a0Bpc2lsLmQuc2h1dHRsZS5kZSkKCgkqIGNoZWNrcy8qdGVzdCA6IHJlc3RydWN0dXJlZCB0aGUgZGlyZWN0b3J5LgoKVHVlIEZlYiAyNCAxNTo1OToxMiAxOTk4ICBXZXJuZXIgS29jaCAgKHdrQGlzaWwuZC5zaHV0dGxlLmRlKQoKCSogY29uZmlndXJlLmluOiBDaGFuZ2VkIHRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlIHRvIEdOVVBHIGFuZAoJY2huYWdlZCBzZXZlcmFsIG90aGVyIG5hbWVzIHRvby4KCldlZCBGZWIgMTggMTc6MzY6NDUgMTk5OCAgV2VybmVyIEtvY2ggICh3a0Bpc2lsLmQuc2h1dHRsZS5kZSkKCgkqIE1ha2VmaWxlLmFtIChjaGVja3MpOiBOZXcuCgpTYXQgRmViIDE0IDE1OjM3OjU1IDE5OTggIFdlcm5lciBLb2NoICAod2tAaXNpbC5kLnNodXR0bGUuZGUpCgoJKiBjb25maWd1cmUuaW4gKG1waV9jb25maWdfZG9uZSk6IFJlbW92ZWQgYXNtIGxpbmtzIGNhY2hpbmcuCgpTYXQgRmViIDE0IDE0OjAyOjIwIDE5OTggIFdlcm5lciBLb2NoICAod2tAaXNpbC5kLnNodXR0bGUuZGUpCgoJKiBjb25maWd1cmUuaW4gKFBSSU5UQUJMRV9PU19OQU1FKTogTmV3LgoJKiBhY2NvbmZpZy5oOiBMaWtld2lzZS4KCkZyaSBGZWIgMTMgMTk6NDM6NDEgMTk5OCAgV2VybmVyIEtvY2ggICh3a0Bpc2lsLmQuc2h1dHRsZS5kZSkKCgkqIGNvbmZpZ3VyZS5pbiA6IEZpeGVkIHpsaWIgc3R1ZmYKCSogTWFrZWZpbGUuYW06IExpa2V3aXNlCgoKIENvcHlyaWdodCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA2LAoJICAgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KCiBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0aGUgYXV0aG9yIGdpdmVzCiB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgoKIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKIFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQgZXZlbiB0aGUKIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgoKCkxvY2FsIFZhcmlhYmxlczoKYnVmZmVyLXJlYWQtb25seTogdApFbmQ6Cg==