ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggYjM3YWVhMS4uMDY1MDYyMSAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsMTMgKzEsMTMgQEAKLVRoaXMgaXMgcmVsZWFzZSAyMDA0MTAxOSBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgorVGhpcyBpcyByZWxlYXNlIDIwMDQxMjAxIG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCiBVbml4LiAgVGhpcyBpcyBzdGlsbCBhIGRldmVsb3BlcnMgb25seSByZWxlYXNlLiAgVGhlcmUgYXJlIG1hbnkgYnVncwogYW5kIHVuaW1wbGVtZW50ZWQgZmVhdHVyZXMuICBNb3N0IGFwcGxpY2F0aW9ucyBzdGlsbCBkbyBub3Qgd29yawogY29ycmVjdGx5LgogCi1XSEFUJ1MgTkVXIHdpdGggV2luZS0yMDA0MTAxOTogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCi0gICAgICAgIC0gQmVnaW5uaW5ncyBvZiBhbiBhcmNoaXRlY3R1cmUgZm9yIERpcmVjdDNEIDkgc3VwcG9ydC4KLSAgICAgICAgLSBNYW55IGRlYnVnZ2VyIHJlZ3Jlc3Npb25zIGZpeGVkLgotICAgICAgICAtIEltcHJvdmVtZW50cyB0byB0aGUgSURMIGNvbXBpbGVyIGFuZCB0aGUgQ09NIGhlYWRlcnMuCi0gICAgICAgIC0gTmV3IE1TQ01TIGRsbCAoY29sb3IgbWFuYWdlbWVudCBzdXBwb3J0KS4KK1dIQVQnUyBORVcgd2l0aCBXaW5lLTIwMDQxMjAxOiAoc2VlIENoYW5nZUxvZyBmb3IgZGV0YWlscykKKyAgICAgICAgLSBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgUlNBRU5IIGRsbC4KKyAgICAgICAgLSBNb3JlIHdvcmsgb24gdGhlIERpcmVjdDNEIDkgYXJjaGl0ZWN0dXJlLgorICAgICAgICAtIEJ1aWx0aW4gZGVidWdnZXIgaW1wcm92ZW1lbnRzLgorICAgICAgICAtIFJlb3JnYW5pc2F0aW9uIG9mIHRoZSBEZXZlbG9wZXIncyBHdWlkZS4KICAgICAgICAgLSBMb3RzIG9mIGJ1ZyBmaXhlcy4KIAogU2VlIHRoZSBSRUFETUUgZmlsZSBpbiB0aGUgZGlzdHJpYnV0aW9uIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLgpAQCAtMTYsOCArMTYsOCBAQAogdGhlIHJlbGVhc2UgaXMgYXZhaWxhYmxlIGF0IHRoZSBmdHAgc2l0ZXMuICBUaGUgc291cmNlcyB3aWxsIGJlIGF2YWlsYWJsZQogZnJvbSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKIAotICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwNDEwMTkudGFyLmd6Ci0gIGh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvd2luZS9XaW5lLTIwMDQxMDE5LnRhci5negorICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwNDEyMDEudGFyLmd6CisgIGh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvd2luZS9XaW5lLTIwMDQxMjAxLnRhci5negogCiBJdCBzaG91bGQgYWxzbyBiZSBhdmFpbGFibGUgZnJvbSBhbnkgb3RoZXIgc2l0ZSB0aGF0IG1pcnJvcnMgaWJpYmxpby5vcmcuCiBUaGVzZSBsb2NhdGlvbnMgYWxzbyBob2xkIHByZS1idWlsdCBkb2N1bWVudGF0aW9uIHBhY2thZ2VzIGluIHZhcmlvdXMKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0NDkyMGNkLi5kODY2ZjU5IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTczMSBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAwNC0xMi0wMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvdGhyZWFkLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWx3YXlzIGNyZWF0ZSBhIHN1c3BlbmRlZCB0aHJlYWQgaW4gQ3JlYXRlVGhyZWFkIGFuZCByZXN1bWUgaXQgaWYKKwlDUkVBVEVfU1VTUEVOREVEIGZsYWcgaXMgbm90IHNldCBhcyBXaW5kb3dzIGRvZXMuCisKKwkqIGRsbHMvcnNhZW5oL2ltcGxnbHVlLmMsIGRsbHMvcnNhZW5oL3JzYWVuaC5jOgorCU1pY2hhZWwgSnVuZyA8bWp1bmdAaXNzLnR1LWRhcm1zdGFkdC5kZT4KKwlNb3ZlZCBjb2RlIHNwZWNpZmljIHRvIENQR2VuS2V5LCBDUERlcml2ZUtleSBvciBDUEltcG9ydEtleSBmcm9tCisJbmV3X2tleSBpbnRvIHRoZSByZXNwZWN0aXZlIGZ1bmN0aW9ucy4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvbWFyc2hhbC5jLCBkbGxzL29sZTMyL29sZTMyLnNwZWMsCisJICBpbmNsdWRlL29iamJhc2UuaDoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBBZGQgc29tZSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG8gb2JqYmFzZS5oLgorCS0gQWRkIHN0dWJzIGZvciBzZXJ2ZXIgcmVmIGNvdW50aW5nLgorCS0gSW1wbGVtZW50IEhSRVNVTFQgbWFyc2hhbGluZy4KKworCSogZGxscy93aW5tbS9sb2x2bGRydi5jOiBGaWxpcCBOYXZhcmEgPHhuYXZhcmFAdm9sbnkuY3o+CisJLSBDaGVjayB0aGUgcmV0dXJuIHZhbHVlIGZyb20gKl9HRVROVU1ERVZTIG1lc3NhZ2UgYXMgcGVyIEtCOTA1NjIuCisJLSBGaXggdHlwbyBpbiBNTURSVl9JbnN0YWxsTWFwLgorCisJKiBkbGxzL2FkdmFwaTMyL3NlcnZpY2UuYzogQWxleGFuZGVyIFlhd29yc2t5IDx5YXdvcnNreUBtaWd1c29mdC5ydT4KKwlJbnRyb2R1Y2VkIHNlcnZpY2UgdGhyZWFkLgorCisJKiBpbmNsdWRlL3dpbmdkaS5oOiBS6W1pIEFzc2FpbGx5IDxyZW1pLmFzc2FpbGx5QGZyZWUuZnI+CisJQWRkIHNvbWUgbWlycm9yaW5nIGRlZmluZXMuCisKKwkqIGRsbHMvdXNlci90ZXh0LmM6IEJpbGwgTWVkbGFuZCA8YmlsbG1lZGxhbmRAbWVyY3VyeXNwZWVkLmNvbT4KKwlJZiB0aGUgYnVmZmVyIGlzIG5vIGxvbmdlciBzdGF0aWMgdGhlIG5hbWVzIHNob3VsZCByZWZsZWN0IHRoYXQuCisJQWxzbyBtaW5pbWlzZSB0aGUgdXNlIG9mIHRoZSBjb25zdGFudC4KKworCSogZGxscy9hZHZhcGkzMi9hZHZhcGkuYywgZGxscy9hZHZhcGkzMi9hZHZhcGkzMi5zcGVjOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBhIHN0dWIgaW1wbGVtZW50YXRpb24gZm9yIEdldEN1cnJlbnRId1Byb2ZpbGVXLgorCisJKiBkbGxzL2NvbWN0bDMyL2FuaW1hdGUuYzogVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCVByZXZlbnQgdGhlIGFuaW1hdGlvbiB0aHJlYWQgZnJvbSB3YWl0aW5nIG9uIGl0c2VsZiB3aGVuIGl0IHN0b3BzLgorCisyMDA0LTExLTMwICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2FkdmFwaTMyL3JlZ2lzdHJ5LmMsIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jLAorCSAgZGxscy9hZHZhcGkzMi90ZXN0cy9yZWdpc3RyeS5jLCBkbGxzL2NhYmluZXQvY2FiZXh0cmFjdC5jLAorCSAgZGxscy9jcnlwdDMyL21haW4uYywgZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvZHJhd3ByaW0uYywKKwkgIGRsbHMvZDNkOC9zaGFkZXIuYywgZGxscy9kM2Q4L3ZzaGFkZXJkZWNsYXJhdGlvbi5jLAorCSAgZGxscy9kM2Q5L3BpeGVsc2hhZGVyLmMsIGRsbHMvZGRyYXcvZDNkZGV2aWNlL21lc2EuYywKKwkgIGRsbHMvZGRyYXcvZDNkbGlnaHQuYywgZGxscy9kZHJhdy9oZWxwZXIuYywKKwkgIGRsbHMvZGV2ZW51bS9kZXZlbnVtX21haW4uYywgZGxscy9kcGxheXgvZHBsb2JieS5jLAorCSAgZGxscy9kcG5ldC9hZGRyZXNzLmMsIGRsbHMvZ2RpL2RyaXZlci5jLAorCSAgZGxscy9nZGkvZW5obWZkcnYvZ3JhcGhpY3MuYywgZGxscy9nZGkvdGVzdHMvbWV0YWZpbGUuYywKKwkgIGRsbHMvaW1tMzIvaW1tLmMsIGRsbHMvbXNkbW8vZG1vcmVnLmMsIGRsbHMvbXN2Y3J0L2Rpci5jLAorCSAgZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvc3RvcmFnZS5jLCBkbGxzL29sZTMyL3N0b3JhZ2UzMi5jLAorCSAgZGxscy9vbGVhdXQzMi90eXBlbGliMi5jLCBkbGxzL29sZWRsZy9pbnNvYmpkbGcuYywKKwkgIGRsbHMvb3BlbmdsMzIvd2dsLmMsIGRsbHMvcXVhcnR6L2F2aXNwbGl0LmMsCisJICBkbGxzL3F1YXJ0ei9maWx0ZXJtYXBwZXIuYywgZGxscy9ycGNydDQvY3Byb3h5LmMsCisJICBkbGxzL3JwY3J0NC9uZHJfbWFyc2hhbGwuYywgZGxscy9zZXR1cGFwaS9pbnN0YWxsLmMsCisJICBkbGxzL3NoZWxsMzIvY2hhbmdlbm90aWZ5LmMsIGRsbHMvc2hlbGwzMi9kZWJ1Z2hscC5jLAorCSAgZGxscy9zaGVsbDMyL3BpZGwuYywgZGxscy9zaGVsbDMyL3NoZWxsb3JkLmMsCisJICBkbGxzL3NoZWxsMzIvc2hsZm9sZGVyLmMsIGRsbHMvc2hlbGwzMi9zaHBvbGljeS5jLAorCSAgZGxscy9zaGx3YXBpL2NsaXN0LmMsIGRsbHMvc2hsd2FwaS91cmwuYywgZGxscy91c2VyL2V4dGljb24uYywKKwkgIGRsbHMvdXNlci9tc2cxNi5jLCBkbGxzL3VzZXIvcmVzb3VyY2UuYywgZGxscy92ZXJzaW9uL3Jlc291cmNlLmMsCisJICBkbGxzL3dpbmVkb3MvcHBkZXYuYywgZGxscy93aW5lcHMvZXNjYXBlLmMsIGRsbHMvd2luZXBzL2luaXQuYywKKwkgIGRsbHMvd2lubW0vbWNpLmMsIGRsbHMvd2luc3Bvb2wvaW5mby5jLCBkbGxzL3gxMWRydi9kaWIuYywKKwkgIGRsbHMveDExZHJ2L2RpYl9jb252ZXJ0LmMsIGRsbHMveDExZHJ2L2RpYl9kc3Rfc3dhcC5jLAorCSAgZGxscy94MTFkcnYvZGliX3NyY19zd2FwLmMsIGRsbHMveDExZHJ2L2luaXQuYywgZGxscy94MTFkcnYvb3BlbmdsLmMsCisJICBkbGxzL3gxMWRydi9wYWxldHRlLmMsIGRsbHMveDExZHJ2L3hmb250LmMsIGRsbHMveDExZHJ2L3hyZW5kZXIuYywKKwkgIGluY2x1ZGUvd2luZS9zZXJ2ZXIuaCwgbGlicy91bmljb2RlL2NwdGFibGUuYywgbGlicy91bmljb2RlL3djdG9tYi5jLAorCSAgcHJvZ3JhbXMvcnBjc3MvZXBtYXBfc2VydmVyLmMsIHByb2dyYW1zL3Rhc2ttZ3IvZGJnY2hubC5jLAorCSAgcHJvZ3JhbXMvdW5pbnN0YWxsZXIvbWFpbi5jLCBwcm9ncmFtcy93aW5lZmlsZS93aW5lZmlsZS5jLAorCSAgcHJvZ3JhbXMvd2luZW1lbnVidWlsZGVyL3dpbmVtZW51YnVpbGRlci5jLCBzZXJ2ZXIvZGVidWdnZXIuYywKKwkgIHNlcnZlci9yZWdpc3RyeS5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCUNvbnN0IGNvcnJlY3RuZXNzIGZpeGVzLgorCisJKiB3aW5kb3dzL21zZ2JveC5jOiBJdmFuIExlbyBQdW90aSA8cHVvdGlAaW53aW5kLml0PgorCUltcGxlbWVudCB0YXNrIG1vZGFsIG1lc3NhZ2UgYm94ZXMuCisKKwkqIGRsbHMvdXJsbW9uL3NlY19tZ3IuYywgZGxscy91cmxtb24vdW1vbi5jLCBkbGxzL3VybG1vbi91cmxtb24uc3BlYywKKwkgIGRsbHMvdXJsbW9uL3VybG1vbl9tYWluLmMsIGRsbHMvdXJsbW9uL3VybG1vbl9tYWluLmgsCisJICBpbmNsdWRlL3VybG1vbi5pZGw6CisJSmFjZWsgQ2FiYW4gPGphY2tAaXRtYS5wd3Iud3JvYy5wbD4KKwktIEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgSUludGVybmV0Wm9uZU1hbmFnZXIgaW50ZXJmYWNlLgorCS0gQWRkZWQgaW1wbGVtZW50YXRpb24gb2YgQ29JbnRlcm5ldENyZWF0ZVpvbmVNYW5hZ2VyIGZ1bmN0aW9uLgorCS0gQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBVcmxNa0dldFNlc3Npb25PcHRpb24gYW5kIGNvcnJlY3RlZAorCSAgZGVjbGFyYXRpb24gb2YgVXJsTWtTZXRTZXNzaW9uT3B0aW9uLgorCS0gQ29kZSBjbGVhbnVwLgorCisJKiBkbGxzL21zY21zL2hhbmRsZS5jLCBkbGxzL21zY21zL21zY21zLnNwZWMsIGRsbHMvbXNjbXMvbXNjbXNfcHJpdi5oLAorCSAgZGxscy9tc2Ntcy9wcm9maWxlLmMsIGRsbHMvbXNjbXMvdGVzdHMvcHJvZmlsZS5jLCBpbmNsdWRlL2ljbS5oOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUluZnJhc3RydWN0dXJlIGZvciBoYW5kbGluZyBJQ0MgcHJvZmlsZXMuCisJQWx3YXlzIGxvYWQgY29sb3IgcHJvZmlsZXMgaW50byBtZW1vcnkuCisJSW1wbGVtZW50IGFuZCB0ZXN0IEdldENvbG9yUHJvZmlsZUVsZW1lbnQgYW5kIEdldENvbG9yUHJvZmlsZUhlYWRlci4KKwlJbXBsZW1lbnQgR2V0Q29sb3JQcm9maWxlRnJvbUhhbmRsZSBhbmQgU2V0Q29sb3JQcm9maWxlSGVhZGVyLgorCisJKiBkbGxzL3dpbmVkM2QvZGV2aWNlLmM6IEFkYW0gRC4gTW9zcyA8YWRhbUBnaW1wLm9yZz4KKwlGaXggY29tcGlsYXRpb24uCisKKwkqIHByb2dyYW1zL3dpbmVjZmcvd2luZWNmZy5jOiBHZXJhbGQgUGZlaWZlciA8Z2VyYWxkQHBmZWlmZXIuY29tPgorCUFnYWluIHJlbmFtZSBnZXRrZXkoKSBhbmQgc2V0a2V5KCkgZm9yIEZyZWVCU0QuCisKKwkqIGRsbHMvd2luZXBzL2JpdG1hcC5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUZvciBhIDE1LzE2IGJwcCBkaWIgd2Ugc2VuZCBSR0IgdHJpcGxlcyB0byB0aGUgcHJpbnRlciBzbyB0aGUgc2l6ZQorCW11bHRpcGxpZXIgaXMgMyBub3QgMi4KKworCSogZGxscy9yc2FlbmgvTWFrZWZpbGUuaW4sIGRsbHMvcnNhZW5oL2Rlcy5jLCBkbGxzL3JzYWVuaC9pbXBsZ2x1ZS5jLAorCSAgZGxscy9yc2FlbmgvaW1wbGdsdWUuaCwgZGxscy9yc2FlbmgvaW1wbG9zc2wuYywKKwkgIGRsbHMvcnNhZW5oL2ltcGxvc3NsLmgsIGRsbHMvcnNhZW5oL21kMi5jLCBkbGxzL3JzYWVuaC9tcGkuYywKKwkgIGRsbHMvcnNhZW5oL3JjMi5jLCBkbGxzL3JzYWVuaC9yYzQuYywgZGxscy9yc2FlbmgvcnNhLmMsCisJICBkbGxzL3JzYWVuaC9yc2FlbmguYywgZGxscy9yc2FlbmgvdG9tY3J5cHQuaDoKKwlNaWNoYWVsIEp1bmcgPG1qdW5nQGlzcy50dS1kYXJtc3RhZHQuZGU+CisJSW5jb3Jwb3JhdGVkIExpYlRvbUNyeXB0IGNvZGUgaW50byByc2FlbmggdG8gZ2V0IHJpZCBvZiBPcGVuU1NMCisJZGVwZW5kZW5jaWVzLgorCisJKiBkbGxzL2NvbWNhdC9jb21jYXRfbWFpbi5jLCBkbGxzL2QzZHhvZi9tYWluLmMsIGRsbHMvbXByL21wci5zcGVjLAorCSAgZGxscy9tcHIvbXByX21haW4uYywgZGxscy9vbGVhdXQzMi9vbGVhdXQuYywKKwkgIGRsbHMvb2xlcHJvMzIvb2xlcHJvMzJzdHVicy5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJRW5zdXJlIERsbENhblVubG9hZE5vdyBpcyBhIHRydWx5IHZvaWQgZnVuY3Rpb24sIGFuZCBnaXZlIGl0IGEgdW5pcXVlCisJbmFtZSBzbyBpdCBjYW4gYmUgZG9jdW1lbnRlZCBwZXItZGxsLgorCisJKiBkbGxzL21hcGkzMi9NYWtlZmlsZS5pbiwgZGxscy9tYXBpMzIvaW1hbGxvYy5jLAorCSAgZGxscy9tYXBpMzIvbWFwaTMyLnNwZWMsIGRsbHMvbWFwaTMyL21hcGkzMl9tYWluLmMsCisJICBkbGxzL21hcGkzMi90ZXN0cy8uY3ZzaWdub3JlLCBkbGxzL21hcGkzMi90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvbWFwaTMyL3Rlc3RzL2ltYWxsb2MuYywgZGxscy9tYXBpMzIvdGVzdHMvdXRpbC5jLAorCSAgZGxscy9tYXBpMzIvdXRpbC5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJSW1wbGVtZW50IERsbE1haW4sIERsbENhblVubG9hZE5vdywgV3JhcFByb2dyZXNzLAorCU1BUElHZXREZWZhdWx0TWFsbG9jLCBJc0JhZEJvdW5kZWRTdHJpbmdQdHIsIFVGcm9tU3osIFVsRnJvbVN6SGV4LAorCUNiT2ZFbmNvZGVkLgorCUFkZCB0ZXN0cyBmb3IgdGhlIGFib3ZlLgorCisJKiBkbGxzL2NvbWN0bDMyL21vbnRoY2FsLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJLSBQYXNzIGluZm9QdHIgYXJvdW5kIGluIG1vbnRoIGNhbGVuZGFyIGNvbnRyb2wuCisJLSBBZGQgc3VwcG9ydCBmb3IgV01fU0VURk9OVCBhbmQgV01fR0VURk9OVCBtZXNzYWdlcy4KKworCSogZGxscy9hZHZhcGkzMi9jcnlwdC5jLCBkbGxzL2FkdmFwaTMyL3Rlc3RzL2NyeXB0LmMsCisJICBkbGxzL2F2aWZpbDMyL2F2aWZpbGUuYywgZGxscy9jb21jdGwzMi9pbWFnZWxpc3QuYzoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlGaXhlZCBhIGZldyBtZW1vcnkgbGVha3MuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jOiBBbGV4YW5kZXIgWWF3b3Jza3kgPHlhd29yc2t5QG1pZ3Vzb2Z0LnJ1PgorCU1lcmdlIFVuaWNvZGUgYW5kIEFTQ0lJIHZlcnNpb25zIG9mIFN0YXJ0U2VydmljZUN0cmxEaXNwYXRjaGVyLgorCUltcGxlbWVudCBTdGFydFNlcnZpY2VDdHJsRGlzcGF0Y2hlckEgb24gdGhlIHRvcCBvZgorCVN0YXJ0U2VydmljZUN0cmxEaXNwYXRjaGVyVy4KKwlHZXQgcmlkIG9mIEhFQVBfc3RyZHVwV3RvQS4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTdG9yZSB0aGUgbmV3IHN0eWxlIGJlZm9yZSByZWRyYXdpbmcgYW5kIHJlcG9zaXRpb25pbmcgdGhlIGNvbnRyb2wuCisKKwkqIGRsbHMvbmV0YXBpMzIvbmV0Ymlvcy5jOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUFsbG93IE5DQlJFU0VUIGFuZCBOQ0JBREROQU1FIHRvIHdvcmsgZXZlbiBpZiB0aGVyZSBhcmUgbm8gYWRhcHRlcnMuCisKKwkqIHdpbmRvd3MvZGVmd25kLmM6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJR2V0TW9kdWxlSGFuZGxlQS0+R2V0TW9kdWxlSGFuZGxlVy4KKworCSogREVWRUxPUEVSUy1ISU5UUzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlVc2UgYSBGSVhNRSBzdHlsZSB0aGF0IHdpbGwgYWN0dWFsbHkgY29tcGlsZS4KKworCSogaW5jbHVkZS93aW51c2VyLmg6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJR2F0aGVyIGFsbCBEcmF3VGV4dCBmbGFncyB0b2dldGhlciwgY29udmVydCB0aGVtIHRvIGhleCBmb3IKKwlyZWFkYWJpbGl0eS4KKworCSogZGxscy91c2VyL3RleHQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEcmF3VGV4dEV4IHNob3VsZCBhbGxvY2F0ZSB0ZXh0IGJ1ZmZlciBvbiBzdGFjayBmb3IgdGhyZWFkIHNhZmVuZXNzLgorCisyMDA0LTExLTI5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL250ZGxsL2Vudi5jOgorCUZpeGVkIFJ0bEV4cGFuZEVudmlyb25tZW50U3RyaW5nc19VIHRvIG5vdCBkZXBlbmQgb24gdGhlIHN0cmluZyBiZWluZworCW51bGwtdGVybWluYXRlZCAoc3BvdHRlZCBieSBBbGV4YW5kZXIgWWF3b3Jza3kpLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBzb21lIHRlc3RzIGZvciB0aW1lciBmdW5jdGlvbnMuCisKKwkqIGRsbHMvdXNlci9NYWtlZmlsZS5pbiwgZGxscy91c2VyL21lc3NhZ2UuYywgZGxscy91c2VyL3VzZXJfbWFpbi5jLAorCSAgZGxscy91c2VyL3dpbnByb2MuaCwgd2luZG93cy90aW1lci5jLCB3aW5kb3dzL3dpbi5jOgorCUdldCByaWQgb2YgdGhlIGNsaWVudC1zaWRlIHdpbmRvdyB0aW1lciBzdHJ1Y3R1cmVzLgorCisJKiBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsIHNlcnZlci9wcm90b2NvbC5kZWYsIHNlcnZlci9xdWV1ZS5jLAorCSAgc2VydmVyL3RyYWNlLmM6CisJQ29udmVydGVkIHRoZSB0aW1lciBsaXN0IHRvIHVzZSBzdGFuZGFyZCBsaXN0IGZ1bmN0aW9ucy4KKwlBbGxvY2F0ZSBhIHRpbWVyIGlkIHdoZW4gdGhlIHdpbmRvdyBpcyAwIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUKKwljbGllbnQgdG8gZG8gaXQuCisJQWxsb3cgc2V0dGluZyB0aW1lcnMgb24gd2luZG93cyBiZWxvbmdpbmcgdG8gb3RoZXIgdGhyZWFkcyAoZm91bmQgYnkKKwlNaWtlIE1jQ29ybWFjaykuCisKKwkqIGRsbHMvYXZpZmlsMzIvYXBpLmMsIGRsbHMvYXZpZmlsMzIvaWNtc3RyZWFtLmMsCisJICBkbGxzL2NvbW1kbGcvcHJpbnRkbGcuYywgZGxscy93aW5pbmV0L2ludGVybmV0LmMsCisJICBkbGxzL3dpbm1tL3BsYXlzb3VuZC5jLCBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmMsCisJICBkbGxzL3dpbm1tL3dpbmVhbHNhL21pZGkuYywgZGxscy93aW5tbS93aW5lYXJ0cy9hdWRpby5jLAorCSAgZGxscy93aW5tbS93aW5lbmFzL2F1ZGlvLmMsIHByb2dyYW1zL2Nsb2NrL21haW4uYywKKwkgIHByb2dyYW1zL2NvbnRyb2wvY29udHJvbC5jLCBwcm9ncmFtcy90YXNrbWdyL2RiZ2NobmwuYywKKwkgIHByb2dyYW1zL3ZpZXcvdmlldy5jLCBwcm9ncmFtcy93Y21kL2J1aWx0aW5zLmMsCisJICBwcm9ncmFtcy93aW5lY29uc29sZS9jdXJzZXMuYywgcHJvZ3JhbXMvd2luZWNvbnNvbGUvdXNlci5jLAorCSAgcHJvZ3JhbXMvd2luZXBhdGgvd2luZXBhdGguYzoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlNYWRlIHNvbWUgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgc3RhdGljLgorCisJKiBkb2N1bWVudGF0aW9uL2ludHJvZHVjdGlvbi5zZ21sOgorCVZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlGaXhlZCBtaXNzaW5nIDwvc2VjdDI+IHRhZy4KKworCSogZGxscy9kM2Q5L2RldmljZS5jLCBkbGxzL3dpbmVkM2QvZGV2aWNlLmMsCisJICBkbGxzL3dpbmVkM2QvaW5kZXhidWZmZXIuYywgZGxscy93aW5lZDNkL3dpbmVkM2RfcHJpdmF0ZS5oLAorCSAgaW5jbHVkZS93aW5lL3dpbmVkM2RfaW50ZXJmYWNlLmg6CisJSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlJbXBsZW1lbnQgTWF0ZXJpYWwsIENsaXAgcGxhbmUgYW5kIExpZ2h0IHN1cHBvcnQgcGx1cworCU11bHRpcGx5VHJhbnNmb3JtLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9kaXJlY3RvcnkuYzogR3VubmFyIERhbHNuZXMgPGhhcmRvbkBvbmxpbmUubm8+CisJQWRkZWQgYSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IENyZWF0ZURpcmVjdG9yeUEvVyBkb2VzIG5vdCBjcmVhdGUKKwltdWx0aXBsZSBub24tZXhpc3RpbmcgZGlyZWN0b3JpZXMgaW4gdGhlIHBhdGggZ2l2ZW4uCisKKwkqIGRsbHMvdXNlci9jb21iby5jOiBFcmljIEtvaGwgPGVyaWMua29obEB0LW9ubGluZS5kZT4KKwlGNCBrZXkgZmxpcHMgdGhlIGxpc3Rib3ggaW4gZGVmYXVsdCAobm90IGV4dGVuZGVkIFVJKSBtb2RlLgorCisJKiBkbGxzL3F1YXJ0ei9hdmlkZWMuYywgZGxscy9xdWFydHovYXZpc3BsaXQuYzoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJQVZJIGRlY29tcHJlc3NvcjoKKwktIE1ha2UgY29waWVzIG9mIGJpdG1hcCBoZWFkZXIgZnJvbSBtZWRpYSB0eXBlIGZvciBpbnB1dCBhbmQgb3V0cHV0CisJICBhbmQgdXBkYXRlIHRoZW0gd2hlbiBuZWVkZWQuCisJLSBGaXhlZCBzdWJ0eXBlIGZvciAzMi1iaXQgZGVwdGggaW4gUXVlcnlBY2NlcHQuCisJQVZJIHNwbGl0dGVyOgorCS0gRml4ZWQgaGFuZGxpbmcgb2YgcmVjIGxpc3QuCisKKwkqIHByb2dyYW1zL3JlZ2VkaXQvQ3MucmMsIHByb2dyYW1zL3JlZ2VkaXQvRGUucmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L0VuLnJjLCBwcm9ncmFtcy9yZWdlZGl0L0VzLnJjLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9Gci5yYywgcHJvZ3JhbXMvcmVnZWRpdC9JdC5yYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvSmEucmMsIHByb2dyYW1zL3JlZ2VkaXQvUGwucmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L1B0LnJjOgorCUphY2VrIENhYmFuIDxqYWNrQGl0bWEucHdyLndyb2MucGw+CisJQWRkZWQgc29tZSBvcHRpb25zIHRvIHBvcHVwIG1lbnUuCisKKwkqIGRsbHMvcXVhcnR6L3Rlc3RzL2ZpbHRlcmdyYXBoLmM6IEFkZGVkIG1pc3NpbmcgQ29Jbml0aWFsaXplLgorCisJKiBkbGxzL29sZTMyL2Vycm9yaW5mby5jOiBNaWtlIEhlYXJuIDxtaEBjb2Rld2VhdmVycy5jb20+CisJVHJhY2UgdGhlIE9MRSBlcnJvciBpbmZvIHN0cmluZ3MuCisKKwkqIGRsbHMvb2xlMzIvY29tcG9iai5jOiBNaWtlIEhlYXJuIDxtaEBjb2Rld2VhdmVycy5jb20+CisJLSBJbXByb3ZlIE9MRSBmdW5jdGlvbiBkb2N1bWVudGF0aW9uLgorCS0gQmFpbCBvdXQgd2l0aCBDT19FX05PVElOSVRJQUxJWkVEIHdoZW4gYXB0IGlzIG51bGwuCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnLmMsIGRsbHMvY29tbWRsZy9maWxlZGxnYnJvd3Nlci5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlDRk1fR0VUU1BFQyBhbHdheXMgcmV0dXJucyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0LgorCisyMDA0LTExLTI4ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3VzZXIvbXNnMTYuYywgZGxscy91c2VyL3dpbnByb2MuaCwgZGxscy91c2VyL3duZDE2LmMsCisJICB3aW5kb3dzL2NsYXNzLmMsIHdpbmRvd3MvbWVzc2FnZS5jLCB3aW5kb3dzL3RpbWVyLmM6CisJVGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG5ldyB3aW5wcm9jIGhhbmRsaW5nIHRvIG1vdmUgc29tZSBtb3JlIGZ1bmN0aW9ucworCXRvIDE2LWJpdCBmaWxlcy4KKwlUSU1FUl9Jc1RpbWVyVmFsaWQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBub3cgdGhhdCB3aW5wcm9jcyBhcmUgbmV2ZXIKKwlmcmVlZC4KKworCSogd2luZG93cy93aW5wcm9jLmM6CisJRml4ZWQgaXNfdmFsaWRfd2lucHJvYyB0byBhdm9pZCBiZWluZyBvcHRpbWl6ZWQgb3V0IGJ5IHJlY2VudCBnY2MKKwl2ZXJzaW9ucy4KKworCSogZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDkvZGV2aWNlLmMsIGRsbHMvd2luZWQzZC9kZXZpY2UuYywKKwkgIGRsbHMvd2luZWQzZC9kaXJlY3R4LmMsIGRsbHMvd2luZWQzZC9yZXNvdXJjZS5jLAorCSAgZGxscy93aW5lZDNkL3N0YXRlYmxvY2suYywgZGxscy93aW5lZDNkL3ZlcnRleGJ1ZmZlci5jLAorCSAgZGxscy93aW5lZDNkL3dpbmVkM2RfcHJpdmF0ZS5oLCBpbmNsdWRlL3dpbmUvd2luZWQzZF9pbnRlcmZhY2UuaDoKKwlKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCUFkZCBHZXQvU2V0IFRyYW5zZm9ybSBzdXBwb3J0LCBwbHVzIEJlZ2luU2NlbmUgKGRvZXMgbm90aGluZykuCisKKwkqIGRsbHMvbXN2Y3J0L3Rlc3RzL3ByaW50Zi5jOiBFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlGaXhlZCBmaWxlIG5hbWUgd2hlbiBvcGVuaW5nIE5VTC4KKworCSogdG9vbHMvd2luZS5pbmY6IEhhamltZSBTZWdhd2EgPGhhamltZUBzaWRlbmV0LmRkby5qcD4KKwlNYWtlIGZvbGRlcnMgb3BlbiBjb3JyZWN0bHkgaW4gV2luZG93cyBFeHBsb3Jlci4KKworCSogZG9jdW1lbnRhdGlvbi9QQUNLQUdJTkc6IE1hcmN1cyBNZWlzc25lciA8bWVpc3NuZXJAc3VzZS5kZT4KKwlVcGRhdGVkIFBBQ0tBR0lORyBob3d0by4KKworCSogZGxscy93aW5lcHMvcHBkLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJUHJvdGVjdCBzc2NhbmZzIHdpdGggYSAiQyIgbG9jYWxlIHNvIHRoYXQgdGhleSBzdGlsbCB3b3JrIHdpdGggbmV3CisJZ2xpYmNzIGluIGEgbG9jYWxlIGRvZXNuJ3QgdXNlIGEgJy4nIGFzIGEgZGVjaW1hbCBzZXBhcmF0b3IuCisKKwkqIGRsbHMva2VybmVsL2ZpbGUuYywgZGxscy9rZXJuZWwvdGVzdHMvZmlsZS5jLCBkbGxzL250ZGxsL2ZpbGUuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBhIHRlc3QgZm9yIFJlYWRGaWxlL1dyaXRlRmlsZSBmYXVsdCBoYW5kbGluZywgbWFrZSBpdCBwYXNzIHVuZGVyCisJV2luZS4KKworCSogZGxscy91c2VyL2VkaXQuYywgZGxscy91c2VyL3Rlc3RzL2VkaXQuYzoKKwlHZSB2YW4gR2VsZG9ycCA8Z3ZnQHJlYWN0b3MuY29tPgorCS0gRml4IHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRleHQgaW4gc2luZ2xlLWxpbmUgZWRpdCBjb250cm9scy4KKwktIEFkZCB0ZXN0cyBmb3IgdGhpcy4KKworCSogZGxscy93aW50YWIzMi9jb250ZXh0LmM6IFJvYmVydCBOb3J0aCA8N293bnEwazQwMkBzbmVha2VtYWlsLmNvbT4KKwktIEVuc3VyZSB0aGF0IGlmIGJ1ZmZlciBwb2ludGVyIGlzIG51bGwsIHF1ZXVlIGlzIGZsdXNoZWQuCisJLSBFbnN1cmUgdGhhdCBjb3JyZWN0IHBhY2tldHMgYXJlIGNvcGllZCBpbnRvIG91dHB1dCBidWZmZXIuCisJLSBVc2UgbWVtbW92ZSB3aGVuIG1vdmluZyBwYWNrZXRzIHdpdGhpbiBxdWV1ZSwgYXMgc291cmNlIGFuZCBkZXN0CisJICB3aWxsIHR5cGljYWxseSBvdmVybGFwLgorCS0gV2hlbiBtb3ZpbmcgcGFja2V0cyBpbiBxdWV1ZSwgZW5zdXJlIGNvcnJlY3QgbnVtYmVyIG9mIHBhY2tldHMgYXJlCisJICBtb3ZlZC4KKworCSogZGxscy9tc2kvbXNpcHJpdi5oLCBkbGxzL21zaS9wYWNrYWdlLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCS0gRG9uJ3QgbGltaXQgdGhlIHNpemUgb2YgdGhlIHByb3BlcnR5IHRoYXQgY2FuIGJlIHJldHJpZXZlZCBieQorCSAgTXNpR2V0UHJvcGVydHkuCisJLSBNYWtlIE1zaUdldFByb3BlcnR5IEEvVyBpbXBsZW1lbnRhdGlvbnMgbW9yZSBjb25zaXN0ZW50LgorCisJKiBwcm9ncmFtcy93aW5lY2ZnL2RyaXZlZGV0ZWN0LmM6IEdlcmFsZCBQZmVpZmVyIDxnZXJhbGRAcGZlaWZlci5jb20+CisJRml4IGNvbXBpbGF0aW9uIG9uIHN5c3RlbXMgd2hpY2ggZG8gbm90IGhhdmUgPG1udGVudC5oPi4KKworMjAwNC0xMS0yNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy91c2VyL3dpbnByb2MuaCwgd2luZG93cy9jbGFzcy5jLCB3aW5kb3dzL2RlZmRsZy5jLAorCSAgd2luZG93cy90aW1lci5jLCB3aW5kb3dzL3dpbi5jLCB3aW5kb3dzL3dpbnByb2MuYzoKKwlDaGFuZ2VkIHdpbnByb2MgYWxsb2NhdGlvbiB0byBiZSBiYXNlZCBvbmx5IG9uIHRoZSBwcm9jZWR1cmUgYWRkcmVzcywKKwl0byBhdm9pZCB0aGUgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHdpbnByb2NzIGZvciBlYWNoIHdpbmRvdyBhbmQgY2xhc3MuCisKKwkqIGluY2x1ZGUvd2ludXNlci5oOiBFcmljIEZyaWFzIDxlZnJpYXNAc3luY2FkLmNvbT4KKwlNb3JlIHBvcnRhYmxlIFBPSU5UU1RPUE9JTlQgbWFjcm8uCisKKwkqIGluY2x1ZGUvd2luZ2RpLmg6IFByZXZlbnQgdXNlIG9mIE1BS0VQT0lOVFMgaW4gV2luZSBjb2RlLgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWJvZXguYywgZGxscy9jb21jdGwzMi9kYXRldGltZS5jLAorCSAgZGxscy9jb21jdGwzMi9saXN0dmlldy5jLCBkbGxzL2NvbWN0bDMyL3JlYmFyLmMsCisJICBkbGxzL2NvbWN0bDMyL3N5c2xpbmsuYywgZGxscy9jb21jdGwzMi90cmFja2Jhci5jLAorCSAgZGxscy9jb21jdGwzMi91cGRvd24uYywgcHJvZ3JhbXMvcmVnZWRpdC9saXN0dmlldy5jLAorCSAgcHJvZ3JhbXMvd2luZWZpbGUvd2luZWZpbGUuYzoKKwlBdm9pZCB1c2luZyB0aGUgTUFLRVBPSU5UUyBtYWNybywgaXQncyBicm9rZW4gb24gYmlnIGVuZGlhbi4KKworCSogZGxscy9kM2Q5L2QzZDlfcHJpdmF0ZS5oLCBkbGxzL2QzZDkvaW5kZXhidWZmZXIuYywKKwkgIGRsbHMvZDNkOS92ZXJ0ZXhidWZmZXIuYywgZGxscy93aW5lZDNkL01ha2VmaWxlLmluLAorCSAgZGxscy93aW5lZDNkL2RldmljZS5jLCBkbGxzL3dpbmVkM2QvaW5kZXhidWZmZXIuYywKKwkgIGRsbHMvd2luZWQzZC92ZXJ0ZXhidWZmZXIuYywgZGxscy93aW5lZDNkL3dpbmVkM2RfcHJpdmF0ZS5oLAorCSAgaW5jbHVkZS93aW5lL3dpbmVkM2RfaW50ZXJmYWNlLmg6CisJSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlBZGQgaW5kZXhidWZmZXIgc3VwcG9ydCBpbnRvIHdpbmVkM2QuCisKKwkqIGRsbHMvb2xlMzIvb2xlMmltcGwuYywgZGxscy9vbGUzMi9vbGUyc3R1YnMuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IE9sZUR1cGxpY2F0ZURhdGEuCisKKwkqIGRsbHMvd2luc3Bvb2wvaW5mby5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJUmV0dXJuIGNvcnJlY3QgZXJyb3IgY29kZSBpbiBFbnVtUHJpbnRlcnMuCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggb2ZuLm5GaWxlT2Zmc2V0IHdoZW4gbXVsdGlwbGUgZmlsZXMgYXJlIHNlbGVjdGVkLgorCisJKiBkbGxzL2dkaS9icnVzaC5jLCBkbGxzL2dkaS90ZXN0cy8uY3ZzaWdub3JlLAorCSAgZGxscy9nZGkvdGVzdHMvTWFrZWZpbGUuaW4sIGRsbHMvZ2RpL3Rlc3RzL2JydXNoLmM6CisJS2V2aW4gS29sdHphdSA8a2V2aW5AcGxvcC5vcmc+CisJQ3JlYXRlQnJ1c2hJbmRpcmVjdCBzaG91bGQgbm90IHJldHVybiBhIHN0b2NrIGJydXNoLgorCisJKiBkbGxzL2dkaS9tZmRydi9iaXRibHQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBdm9pZCBzb21lIGRpcmVjdCBhY2Nlc3NlcyB0byBEQyBpbnRlcm5hbHMgZnJvbSBtZXRhZmlsZSBkcml2ZXIuCisKKwkqIGRsbHMva2VybmVsL2ZpbGUuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZW1vdmUgdXNlbGVzcyBjYWxscyB0byBJc0JhZFJlYWRQdHIgZnJvbSBSZWFkRmlsZSBhbmQgV3JpdGVGaWxlLgorCisyMDA0LTExLTIzICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3VzZXIvbWVzc2FnZS5jLCBkbGxzL3VzZXIvdGVzdHMvbXNnLmM6CisJRml4ZWQgaGFuZGxpbmcgb2YgTlVMTCBwb2ludGVyIGluIFBlZWtNZXNzYWdlVywgd2l0aCB0ZXN0IChyZXBvcnRlZCBieQorCUVyaWMgRnJpYXMpLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9tc2Ntcy9tc2Ntc19wcml2LmgsIGluY2x1ZGUvY29uZmlnLmguaW46CisJS2V2aW4gS29sdHphdSA8a2V2aW5AcGxvcC5vcmc+CisJTG9vayBmb3IgbGNtcy5oIGluIGxjbXMvbGNtcy5oLgorCisJKiBkbGxzL250ZGxsL2xvYWRlci5jOgorCUFwcGVuZCAuZGxsIGV4dGVuc2lvbiBpbiBhbGwgY2FzZXMgKHNwb3R0ZWQgYnkgTWlrZSBIZWFybikuCisKKwkqIGRsbHMvYW1zdHJlYW0vdmVyc2lvbi5yYywgZGxscy9jYXJkcy92ZXJzaW9uLnJjLAorCSAgZGxscy9kM2Q4L3ZlcnNpb24ucmMsIGRsbHMvZDNkOS92ZXJzaW9uLnJjLCBkbGxzL2QzZGltL3ZlcnNpb24ucmMsCisJICBkbGxzL2QzZHJtL3ZlcnNpb24ucmMsIGRsbHMvZDNkeG9mL3ZlcnNpb24ucmMsIGRsbHMvZGRyYXcvdmVyc2lvbi5yYywKKwkgIGRsbHMvZGV2ZW51bS9kZXZlbnVtLnJjLCBkbGxzL2RpbnB1dC92ZXJzaW9uLnJjLAorCSAgZGxscy9kaW5wdXQ4L3ZlcnNpb24ucmMsIGRsbHMvZG1iYW5kL3ZlcnNpb24ucmMsCisJICBkbGxzL2RtY29tcG9zL3ZlcnNpb24ucmMsIGRsbHMvZG1pbWUvdmVyc2lvbi5yYywKKwkgIGRsbHMvZG1sb2FkZXIvdmVyc2lvbi5yYywgZGxscy9kbXNjcmlwdC92ZXJzaW9uLnJjLAorCSAgZGxscy9kbXN0eWxlL3ZlcnNpb24ucmMsIGRsbHMvZG1zeW50aC92ZXJzaW9uLnJjLAorCSAgZGxscy9kbXVzaWMvdmVyc2lvbi5yYywgZGxscy9kbXVzaWMzMi92ZXJzaW9uLnJjLAorCSAgZGxscy9kcGxheS92ZXJzaW9uLnJjLCBkbGxzL2RwbGF5eC92ZXJzaW9uLnJjLCBkbGxzL2RwbmV0L3ZlcnNpb24ucmMsCisJICBkbGxzL2RwbmhwYXN0L3ZlcnNpb24ucmMsIGRsbHMvZHNvdW5kL3ZlcnNpb24ucmMsCisJICBkbGxzL2Rzd2F2ZS92ZXJzaW9uLnJjLCBkbGxzL2R4ZGlhZ24vdmVyc2lvbi5yYywgZGxscy9nZGkvdmVyc2lvbi5yYywKKwkgIGRsbHMvaGhjdHJsLm9jeC92ZXJzaW9uLnJjLCBkbGxzL21wci92ZXJzaW9uLnJjLCBkbGxzL21zZG1vL3JzcmMucmMsCisJICBkbGxzL21zaS92ZXJzaW9uLnJjLCBkbGxzL21zd3NvY2svdmVyc2lvbi5yYywKKwkgIGRsbHMvb3BlbmdsMzIvdmVyc2lvbi5yYywgZGxscy9xY2FwL3ZlcnNpb24ucmMsCisJICBkbGxzL3F1YXJ0ei92ZXJzaW9uLnJjLCBkbGxzL3NoZWxsMzIvdmVyc2lvbjE2LnJjLAorCSAgZGxscy93aW5pbmV0L3ZlcnNpb24ucmMsIGRsbHMvd2luc29jay92ZXJzaW9uLnJjLAorCSAgZGxscy93c29jazMyL3ZlcnNpb24ucmM6CisJVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAc2l0ZXN0YXIubmV0PgorCVZlcnNpb24gcmVzb3VyY2VzIGNsZWFudXAuCisKKwkqIGRsbHMvZDNkOC9kM2Q4X21haW4uYywgZGxscy9kM2Q4L2RpcmVjdHguYywgZGxscy9kM2Q5L2QzZDlfbWFpbi5jLAorCSAgZGxscy9kM2Q5L2RldmljZS5jLCBkbGxzL2QzZDkvZGlyZWN0eC5jLCBkbGxzL2QzZDkvdmVydGV4YnVmZmVyLmMsCisJICBkbGxzL3dpbmVkM2QvZGV2aWNlLmMsIGRsbHMvd2luZWQzZC9kaXJlY3R4LmMsCisJICBkbGxzL3dpbmVkM2QvcmVzb3VyY2UuYywgZGxscy93aW5lZDNkL3N0YXRlYmxvY2suYywKKwkgIGRsbHMvd2luZWQzZC92ZXJ0ZXhidWZmZXIuYywgZGxscy93aW5lZDNkL3dpbmVkM2RfbWFpbi5jLAorCSAgZGxscy93aW5lZDNkL3dpbmVkM2RfcHJpdmF0ZS5oLCBpbmNsdWRlL3dpbmUvd2luZWQzZF9pbnRlcmZhY2UuaDoKKwlKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCS0gSW1wbGVtZW50IFNldFN0cmVhbVNvdXJjZQorCS0gRW5zdXJlIHdpbmVkM2Qgb2JqZWN0cyBtYWludGFpbiBhIHJlZmVyZW5jZSBjb3VudCBvZiBhdCBsZWFzdCB0aGF0CisJICBvZiB0aGUgZDNkeCB2ZXJzaW9uLgorCisJKiBwcm9ncmFtcy93aW5lY2ZnL0VuLnJjLCBwcm9ncmFtcy93aW5lY2ZnL01ha2VmaWxlLmluLAorCSAgcHJvZ3JhbXMvd2luZWNmZy9hcHBkZWZhdWx0cy5jLCBwcm9ncmFtcy93aW5lY2ZnL2RyaXZlLmMsCisJICBwcm9ncmFtcy93aW5lY2ZnL2RyaXZlZGV0ZWN0LmMsIHByb2dyYW1zL3dpbmVjZmcvZHJpdmV1aS5jLAorCSAgcHJvZ3JhbXMvd2luZWNmZy9yZXNvdXJjZS5oLCBwcm9ncmFtcy93aW5lY2ZnL3dpbmVjZmcuYywKKwkgIHByb2dyYW1zL3dpbmVjZmcvd2luZWNmZy5oLCBwcm9ncmFtcy93aW5lY2ZnL3gxMWRydmRsZy5jOgorCU1pa2UgSGVhcm4gPG1pa2VAbmF2aS5jeD4KKwktIE1vcmUgaGVhcGlmaWNhdGlvbi4KKwktIFNwbGl0IGRyaXZlIGNvZGUgaW50byBjb3JlLCBVSSBhbmQgYXV0b2RldGVjdC4KKwktIEltcGxlbWVudCBkcml2ZSBhdXRvZGV0ZWN0aW9uLgorCS0gU2xpZ2h0IHJlZGVzaWduIG9mIGRyaXZlIHRhYi4KKwktIENvZGUgY2xlYW51cC4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGluY2x1ZGUvY29uZmlnLmguaW46CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlXZSBkb24ndCB1c2UgREdBIHZlcnNpb24gMSBzbyByZW1vdmUgdGhlIGNvbmZpZ3VyZSBjaGVjayBmb3IgaXQuCisKKwkqIGRsbHMveDExZHJ2L2RpYi5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJV2hlbiBjaGFuZ2luZyBmcm9tIERJQl9TdGF0dXNfR2RpTW9kIHRvIERJQl9TdGF0dXNfR2RpTW9kLCB3ZSBoYXZlIHRvCisJc2V0IHRoZSBwcmV2aW91cyBzdGF0dXMgdG8gRElCX1N0YXR1c19HZGlNb2QsIG90aGVyd2lzZSBhCisJbm9uLWNvbW1pdHRpbmcgdW5sb2NrIGNvdWxkIGluY29ycmVjdGx5IHJldmVydCB0aGUgRElCIHRvIGFub3RoZXIKKwlzdGF0ZSwgcmF0aGVyIHRoYW4gdGhlIGNvcnJlY3QgRElCX1N0YXR1c19HZGlNb2QuCisKKwkqIGRsbHMvZ2RpL2RjLmMsIGRsbHMvZ2RpL2dkaV9wcml2YXRlLmgsIGRsbHMvZ2RpL2dkaW9iai5jLAorCSAgZGxscy9nZGkvdGVzdHMvZ2Rpb2JqLmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlTZXQgdGhlIG1pdGVyIGxpbWl0IGluIHRoZSBEQyBzdGF0ZS4KKwlPbmx5IFNldExhc3RFcnJvcigpIGluIG9iamVjdCBmdW5jdGlvbnMgd2hlcmUgbmF0aXZlIGRvZXMuCisJVGVzdCB0aGUgZXJyb3IgY29tZGl0aW9ucyBvZiB0aGUgZ2Rpb2JqIGZ1bmN0aW9ucy4KKwlNaW5vciBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCisKKwkqIHByb2dyYW1zL21zaWV4ZWMvbXNpZXhlYy5jOiBIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlVc2Ugc3RyaW5nIGZ1bmN0aW9ucyB0aGF0IGFyZSBXaW5kb3dzIGxvY2FsZSBhd2FyZS4KKworMjAwNC0xMS0yMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogbGlicy93aW5lL3dpbmUuZGVmLCBsaWJzL3dpbmUvd2luZS5tYXA6CisJRXJpYyBGcmlhcyA8ZWZyaWFzQHN5bmNhZC5jb20+CisJRXhwb3J0IHdpbmVfcHRocmVhZF9nZXRfY3VycmVudF90ZWIuCisKKwkqIGxpYnMvd2luZS9wb3J0LmM6IEVyaWMgRnJpYXMgPGVmcmlhc0BzeW5jYWQuY29tPgorCUZpeCBTcGFyYyBhc3NlbWJseSBjb2RlIGluIHdpbmVfc3dpdGNoX3RvX3N0YWNrLgorCisJKiB0b29scy93aW5lZ2NjL3dpbmVnY2MuYzogUGFzcyBETExGTEFHUyB0byB3aW5lYnVpbGQgdG9vLgorCisJKiB0b29scy93aW5hcGkvbXN2Y21ha2VyOiBTdGV2ZW4gRWR3YXJkcyA8c3RldmVuX2VkNDE1M0B5YWhvby5jb20+CisJRGVmaW5lICJXSU5WRVI9MHgwNTAxIF9XSU4zMl9XSU5OVD0weDA1MDEgX1dJTjMyX0lFPTB4MDYwMCIgZm9yIGFsbAorCXRoZSB0YXJnZXRzLgorCisJKiBkbGxzL2RiZ2hlbHAvZWxmX21vZHVsZS5jLCBkbGxzL2RiZ2hlbHAvc3ltYm9sLmMsCisJICBkbGxzL2RiZ2hlbHAvdHlwZS5jLCBwcm9ncmFtcy93aW5lZGJnL3N5bWJvbC5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCUZpeGVkIHJlZ3Jlc3Npb25zIGludHJvZHVjZWQgd2hlbiBtb3ZpbmcgYWRkcmVzc2VzIGFzIDY0Yml0IHZhbHVlcy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvcHJvY2Vzcy5jOiBLZXZpbiBLb2x0emF1IDxrZXZpbkBwbG9wLm9yZz4KKwlQcmV2ZW50IGVudmlyb25tZW50IHRlc3QgZnJvbSBjcmFzaGluZyB3aGVuIGVudmlyb25tZW50IGlzIGxhcmdlLgorCisJKiBERVZFTE9QRVJTLUhJTlRTOiBUb20gV2lja2xpbmUgPHR3aWNrbGluZUBzaXRlc3Rhci5uZXQ+CisJQWRkZWQgYWR2cGFjay5kbGwsIHJzYWVuaC5kbGwsIHN0cm1paWRzLmxpYi4KKworCSogcHJvZ3JhbXMvbXNpZXhlYy9tc2lleGVjLmM6IEhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUhhbmRsZSB1bmtub3duIHBhcmFtZXRlcnMgbW9yZSBncmFjZWZ1bGx5LgorCisJKiB3aW5kb3dzL2lucHV0LmM6IEVyaWMgRnJpYXMgPGVmcmlhc0BzeW5jYWQuY29tPgorCUZpeGVkIEtFWUxQIHN0cnVjdHVyZSBmb3IgYmlnIGVuZGlhbi4KKworCSogZGxscy9rZXJuZWwvcGF0aC5jOiBBbGV4YW5kZXIgWWF3b3Jza3kgPHlhd29yc2t5QG1pZ3Vzb2Z0LnJ1PgorCUNoYW5nZWQgYWxsb2NhdGlvbiBvZiBhcmd1bWVudHMgaW4gU2VhcmNoUGF0aEEgc28gcGF0aCBpcyBub3QgbGltaXRlZAorCWJ5IHNpemUgb2YgVEVCIHN0YXRpYyBidWZmZXIuCisKKwkqIHByb2dyYW1zL3dpbmVmaWxlL3dpbmVmaWxlLmMsIHByb2dyYW1zL3dpbmVmaWxlL3dpbmVmaWxlLmg6CisJTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwlVbmljb2RpZnkgc3RyaW5nIGNvbnN0YW50cy4KKworCSogcHJvZ3JhbXMvd2luZWZpbGUvc3BsaXRwYXRoLmM6IE1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJc3BsaXRwYXRoIG1haW50YWluYW5jZS4KKworCSogZGxscy9nZGkvZW5obWV0YWZpbGUuYywgZGxscy9nZGkvZW5obWZkcnYvb2JqZWN0cy5jLAorCSAgZGxscy9nZGkvZ2RpX3ByaXZhdGUuaDoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCVN1cHBvcnQgbW9ubyBwYXR0ZXJuIGJydXNoZXMgaW4gRU1GJ3MuCisKKwkqIGRsbHMvZ2RpL21mZHJ2L29iamVjdHMuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlBdm9pZCBtYWdpYyBudW1iZXIuCisKKwkqIGRsbHMvZ2RpL2JpdG1hcC5jOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUltcGxlbWVudCBDcmVhdGVCaXRtYXAgdXNpbmcgQ3JlYXRlQml0bWFwSW5kaXJlY3Qgc28gd2UgY2FuIGhhbmRsZQorCWZ1bmt5IGFsaWdubWVudCBwYWRkaW5ncy4KKwlTZXRMYXN0RXJyb3IoKSBvbiBmYWlsdXJlLCBkb2N1bWVudGF0aW9uIGNsZWFudXAuCisKKwkqIHRvb2xzL3dyYy9wYXJzZXIueTogUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUFsbG93IG5lZ2F0aXZlIG51bWJlcnMgaW4gUkNEQVRBIHJlc291cmNlcyBsaWtlIFJDLkVYRSBkb2VzLgorCUZpeCBmYWxzZSBvdXQgb2YgMTYgYml0cyByYW5nZSB3YXJuaW5nLgorCisJKiBkbGxzL3gxMWRydi94cmVuZGVyLmM6IEdsZW5uIFd1cnN0ZXIgPGd3dXJzdGVyQHNjcy5jYXJsZXRvbi5jYT4KKwlVc2UgcGh5c0Rldi0+dGV4dFBpeGVsIGluc3RlYWQgb2YgR2V0VGV4dENvbG9yIGZvciBFeHRUZXh0T3V0LgorCisyMDA0LTExLTIxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9semV4cGFuZC9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvbHpleHBhbmQvdGVzdHMvLmN2c2lnbm9yZSwgZGxscy9semV4cGFuZC90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvbHpleHBhbmQvdGVzdHMvbHpleHBhbmRfbWFpbi5jOgorCUV2YW4gRy4gUGFycnkgPGVwYXJyeUBjcy5obWMuZWR1PgorCUFkZGVkIHNvbWUgdGVzdHMgZm9yIGx6ZXhwYW5kLgorCisJKiBkbGxzL2RiZ2hlbHAvTWFrZWZpbGUuaW4sIGRsbHMvZGJnaGVscC9jb2ZmLmMsIGRsbHMvZGJnaGVscC9tc2MuYywKKwkgIGRsbHMvZGJnaGVscC9tc2N2cGRiLmg6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBtb3ZlZCBpbnRvIG5ldyBtc2N2cGRiLmggKG91dCBvZiBtc2MuYykgYWxsIHR5cGVzIGFuZCBkZWZpbmVzIG5lZWRlZAorCSAgdG8gcGFyc2UgZGVidWcgZmlsZXMgZ2VuZXJhdGVkIGJ5IE1TIHRvb2xzCisJLSBtb3ZlZCBpbnRvIGNvZmYuYyAoYW5kIG91dCBvZiBtc2MuYykgdGhlIENPRkYgaGFuZGxpbmcKKwktIGNsZWFuZWQgbG90cyBvZiB0eXBlcyAoYWRkIGNvbnNpc3RlbmN5IGFjcm9zcyBzdHJ1Y3RzKQorCS0gdmVyc2lvbmluZyBvZiBzb21lIGRlZmluZXMgYW5kIHR5cGVzICh0byBmb2xsb3cgTVMgdG9vbHMgZXZvbHV0aW9uKQorCS0gZW5oYW5jZWQgVjIgb2Ygc3ltYm9scyBwYXJzaW5nIChzb21lIG1vcmUgdHlwZXMgcmVjb2duaXplZCwgc3VwcG9ydAorCSAgb2YgaW1wb3J0ZWQgLnBkYiBmaWxlcykKKwktIGFkZGVkIHN1cHBvcnQgZm9yIG5ld2VzdCAucGRiIGZvcm1hdAorCisJKiBkbGxzL2FkdmFwaTMyL3NlcnZpY2UuYzogQWxleGFuZGVyIFlhd29yc2t5IDx5YXdvcnNreUBtaWd1c29mdC5ydT4KKwlNb3ZlIHVwIFNFUlZfKiBmdW5jdGlvbnMuCisKKwkqIHByb2dyYW1zL3dpbmVjZmcvRXMucmMsIHByb2dyYW1zL3dpbmVmaWxlL0VuLnJjLAorCSAgcHJvZ3JhbXMvd2luZWZpbGUvRXMucmMsIHByb2dyYW1zL3dpbmhlbHAvRXMucmM6CisJSm9z6SBNYW51ZWwgRmVycmVyIE9ydGl6IDxqbWZvMTk4MkB5YWhvby5lcz4KKwlVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb25zLgorCisJKiBpbmNsdWRlL2ljbS5oLCBkbGxzL21zY21zL2xjbXNfYXBpLmgsIGRsbHMvbXNjbXMvbXNjbXMuc3BlYywKKwkgIGRsbHMvbXNjbXMvbXNjbXNfbWFpbi5jLCBkbGxzL21zY21zL3Byb2ZpbGUuYywKKwkgIGRsbHMvbXNjbXMvdGVzdHMvcHJvZmlsZS5jOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUltcGxlbWVudCBhbmQgdGVzdCBHZXRDb2xvclByb2ZpbGVFbGVtZW50VGFnLAorCUdldENvdW50Q29sb3JQcm9maWxlRWxlbWVudHMgYW5kIElzQ29sb3JQcm9maWxlVGFnUHJlc2VudC4gU3R1YgorCUdldFN0YW5kYXJkQ29sb3JTcGFjZVByb2ZpbGV7QSxXfS4KKworCSogZGxscy9rZXJuZWwvbG9jYWxlLmMsIGRsbHMva2VybmVsL3Rlc3RzL2xvY2FsZS5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQ2FsbCBDb21wYXJlU3RyaW5nQSB3aXRoIExPQ0FMRV9VU0VfQ1BfQUNQIGZsYWcgc2V0IGZyb20gbHN0cmNtcEEgYW5kCisJbHN0cmNtcGlBIGluIG9yZGVyIHRvIGltcHJvdmUgc3BlZWQuIEFkZCBhIHRlc3QgY2FzZSBjb25maXJtaW5nIHRoYXQKKwlDb21wYXJlU3RyaW5nIGFuZCBMQ01hcFN0cmluZyBhY2NlcHQgTE9DQUxFX1VTRV9DUF9BQ1AuCisKKwkqIHdpbmRvd3MvZGVmd25kLmM6IFN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCVJlbW92ZWQgVy0+QSBmcm9tIERFRldORF9JbW1Jc1VJTWVzc2FnZVcuCisKKwkqIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jLCBkbGxzL3dpbmluZXQvcmVzb3VyY2UuaCwKKwkgIGRsbHMvd2luaW5ldC93aW5pbmV0X0VuLnJjOgorCVJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIE1ha2UgSW50ZXJuZXRHZXRDb25uZWN0ZWRTdGF0ZUV4QSBub3QgY3Jhc2gsIGJ5IG1ha2luZworCSAgSW50ZXJuZXRHZXRDb25uZWN0ZWRTdGF0ZUV4VyBmaWxsIGluIHRoZSBidWZmZXIgY29ycmVjdGx5LgorCS0gUmVtb3ZlIHRoZSBkdW1waW5nIG9mIHN0cmluZ3MgdGhhdCB3aWxsIG9ubHkgY29udGFpbiBnYXJiYWdlLgorCS0gRG9jdW1lbnQgZnVuY3Rpb24uCisKKwkqIGRsbHMvbXN2Y3J0L2xvY2FsZS5jOiBCaWxsIE1lZGxhbmQgPGJpbGxtZWRsYW5kQG1lcmN1cnlzcGVlZC5jb20+CisJRG9uJ3QgbWVzcyB1cCB0aGUgbXN2Y3J0IGNvZGVwYWdlIG9uIGUuZy4gX01CX0NQX0FOU0kuCisKKwkqIGRsbHMvdXNlci9yZXNvdXJjZS5jOiBFcmljIEZyaWFzIDxlZnJpYXNAc3luY2FkLmNvbT4KKwlBY2NlbGVyYXRvciByZXNvdXJjZSBzdHJ1Y3QgZml4IGZvciBzcGFyYy4KKworCSogZGxscy9jb21jdGwzMi90cmVldmlldy5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVRoZSBkZWZhdWx0IGZvbnQgZm9yIHRoZSB0cmVldmlldyBzaG91bGQgYmUgdGhlIGljb24gdGl0bGUgZm9udC4KKworCSogdG9vbHMvd2luZWJ1aWxkL3BhcnNlci5jOiBFcmljIEZyaWFzIDxlZnJpYXNAc3luY2FkLmNvbT4KKwlIYW5kbGUgYSBkZWYgZmlsZSB3aGVyZSB0aGUgbmFtZXMgb2YgdGhlIGV4cG9ydGVkIGZ1bmN0aW9ucyBhcmUgbGlzdGVkCisJd2l0aG91dCBiZWluZyBmb2xsb3dlZCBieSBhbiBlcXVhbHMgc2lnbiBhbmQgYW4gYWxpYXMuCisKKwkqIGRsbHMvd2luZXBzL3BwZC5jOiBFcmljIEZyaWFzIDxlZnJpYXNAc3luY2FkLmNvbT4KKwlGaXhlZCBmaWxlIGhhbmRsZSBsZWFrLgorCisJKiBkbGxzL250ZGxsL3NpZ25hbF9zcGFyYy5jOiBFcmljIEZyaWFzIDxlZnJpYXNAc3luY2FkLmNvbT4KKwlQZXJtaXQgdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3Mgb24gc3BhcmMuCisKKwkqIHRvb2xzL3dyYy9nZW5yZXMuYzogRXJpYyBGcmlhcyA8ZWZyaWFzQHN5bmNhZC5jb20+CisJRml4ZWQgZXJyb3Igd3JpdGluZyBjb250cm9sIElEcyBpbiBkaWFsb2dleCBvbiBzcGFyYy4KKworCSogZGxscy93aW5tbS93aW5tbS5jOiBS6W1pIEFzc2FpbGx5IDxyZW1pLmFzc2FpbGx5QGZyZWUuZnI+CisJQWRkIHNvbWUgbWlzc2luZyBlcnJvciB2YWx1ZXMgaW4gV0lOTU1fRXJyb3JUb1N0cmluZy4KKworCSogd2luZG93cy9kaWFsb2cuYzogRXJpYyBGcmlhcyA8ZWZyaWFzQHN5bmNhZC5jb20+CisJRml4ZWQgZGlhbG9nZXggcmVzb3VyY2UgbG9hZGluZyBvbiBzcGFyYy4KKworCSogZGxscy9nZGkvYnJ1c2guYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlTZWFyY2ggdGhlIHdob2xlIHRhYmxlIHdoZW4gY3JlYXRpbmcgc29saWQgYnJ1c2hlcy4KKworCSogZGxscy9udGRsbC90aW1lLmM6IEFsZXhhbmRlciBZYXdvcnNreSA8eWF3b3Jza3lAbWlndXNvZnQucnU+CisJQWRkZWQgTk9WVCB0aW1lem9uZSBpbmZvLgorCisJKiBkbGxzL3V4dGhlbWUvZHJhdy5jOiBLZXZpbiBLb2x0emF1IDxrZXZpbkBwbG9wLm9yZz4KKwlGaXggY2xpcHBpbmcgZm9yIERyYXdUaGVtZVBhcmVudEJhY2tncm91bmQuCisKKwkqIFJFQURNRTogR2VyYWxkIFBmZWlmZXIgPGdlcmFsZEBwZmVpZmVyLmNvbT4KKwlVcGRhdGUgRnJlZUJTRCBpbmZvLgorCisJKiBpbmNsdWRlL21tc3lzdGVtLmg6IFLpbWkgQXNzYWlsbHkgPHJlbWkuYXNzYWlsbHlAZnJlZS5mcj4KKwlBZGRlZCBzb21lIHN0cnVjdHVyZSB0YWdzIGFuZCBlcnJvciBkZWZpbmVzLgorCisJKiBkbGxzL2tlcm5lbC9maWxlLmMsIGRsbHMvbnRkbGwvZmlsZS5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCU1vdmVkIGtlcm5lbDMyLkRlbGV0ZUZpbGVXIGNvcmUgaW1wbGVtZW50YXRpb24gdG8gbnRkbGwuTnREZWxldGVGaWxlLgorCisyMDA0LTExLTE5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL21wci8uY3ZzaWdub3JlLCBkbGxzL29sZTMyLy5jdnNpZ25vcmUsIGRsbHMvb2xlYXV0MzIvLmN2c2lnbm9yZSwKKwkgIGRsbHMvc2hlbGwzMi8uY3ZzaWdub3JlOgorCVJlbW92ZWQgYSBjb3VwbGUgb2Ygbm8gbG9uZ2VyIG5lZWRlZCBlbnRyaWVzLgorCisJKiBkbGxzL3VzZXIvZGlzcGxheS5jOiBGaXggY29uZmxpY3Rpbmcgc3RydWN0dXJlIHRhZy4KKworCSogZGxscy93aW5tbS93aW5lb3NzL2RzY2FwdHVyZS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCU9uZSBzdGVwIGNsb3NlciB0byBnZXR0aW5nIGhhcmR3YXJlIGFjY2VsZXJhdGVkIGNhcHR1cmUgd29ya2luZy4KKworCSogZm9udHMvTWFrZWZpbGUuaW4sIGZvbnRzL3dpbmVfc3lzdGVtLnNmZCwgdG9vbHMvc2ZudDJmbnQuYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUNhbGN1bGF0aW5nIHRoZSBhdmVyYWdlIHdpZHRoIGRvZXNuJ3Qgc2VlbSBwb3NzaWJsZSwgc28gc2V0IGl0CisJbWFudWFsbHkgaW5zdGVhZC4KKwlGaXggdGhlIGNvcHlyaWdodCBpbiB3aW5lX3N5c3RlbS4KKworCSogZGxscy9tc2Ntcy9tc2Ntcy5zcGVjLCBkbGxzL21zY21zL3Byb2ZpbGUuYywgaW5jbHVkZS9pY20uaDoKKwlIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlJbXBsZW1lbnQgSXNQcm9maWxlVmFsaWQuCisJRG9jdW1lbnQgYWxsIGZ1bmN0aW9ucy4KKworCSogZGxscy92ZXJzaW9uL3Rlc3RzL2luZm8uYzoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlGaXhlZCBHZXRGaWxlVmVyc2lvbkluZm9TaXplQSB0ZXN0cyBvbiBOVC4KKworCSogcHJvZ3JhbXMvd2luZWZpbGUvRW4ucmM6IE1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJRml4IEVuZ2xpc2ggbWVudSB0ZXh0LgorCisJKiBkbGxzL3F1YXJ0ei9maWx0ZXJncmFwaC5jOiBDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJSW1wbGVtZW50ZWQgSUdyYXBoQnVpbGRlciBtZXRob2RzOiBDb25uZWN0LCBSZW5kZXIsIFJlbmRlckZpbGUgJgorCUFkZFNvdXJjZUZpbHRlci4KKwlGaXhlZCBmaWx0ZXIgbmFtZSBnZW5lcmF0aW9uIGluIElHcmFwaEJ1aWxkZXI6OkFkZEZpbHRlci4KKworCSogZGxscy9zaGVsbDMyL21lbW9yeXN0cmVhbS5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBVc2UgbW9yZSBzcGVjaWZpYyBlcnJvciBjb2RlcyB0aGFuIEVfRkFJTCwgd2hlcmUgcG9zc2libGUuCisJLSBNb3ZlIHZ0YWJsZSB0byBlbmQsIGdpdmUgaXQgdGhlIGNvbnN0IG1vZGlmaWVyLCBhbmQgcmVtb3ZlIHVubmVlZGVkCisJICBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCisKKwkqIGRsbHMvYWR2YXBpMzIvdGVzdHMvcmVnaXN0cnkuYzogSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJQWRkZWQgYmVnaW5uaW5ncyBvZiBSZWdRdWVyeVZhbHVlRXggdGVzdHMuCisKKwkqIGluY2x1ZGUvY29tbWN0cmwuaDogQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCUNvcnJlY3Qgb3JkZXJpbmcgb2Ygc29tZSBkZWZpbmVzLgorCisJKiBkbGxzL3gxMWRydi94cmVuZGVyLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJRmFsbGJhY2sgdG8gc29tZSBzZW5zaWJsZSBkZWZhdWx0IHZhbHVlcyB3aGVuIHVuZGVybGluaW5nIGFuZCBzdHJpa2luZworCW91dCBiaXRtYXAgZm9udHMuCisJUm90YXRlIHRoZSBzdHJpa2VvdXQgbGluZSBpZiB0aGUgZXNjYXBlbWVudCBpcyBub24temVyby4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOiBaYWNoIEdvcm1hbiA8emFjaEBhcmNoZXR5cGVhdWN0aW9uLmNvbT4KKwlBZGQgdGhlIERUX05PUFJFRklYIGZsYWcgd2hlbiBjYWxsaW5nIERyYXdUZXh0KCkgZm9yIHNpbmdsZS1saW5lCisJbGlzdHZpZXcgY29udHJvbHMuCisKKwkqIGRsbHMvbXNjbXMvLmN2c2lnbm9yZSwgZGxscy9tc2Ntcy9NYWtlZmlsZS5pbiwgZGxscy9tc2Ntcy92ZXJzaW9uLnJjOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUFkZCB2ZXJzaW9uIGluZm9ybWF0aW9uLgorCisJKiBkbGxzL2RkcmF3L2RkcmF3L21haW4uYywgZGxscy9kZHJhdy9tZXNhLmM6CisJQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUZpeGVkIGNvbG9ya2V5IGNvbnZlcnNpb24uCisJSGFuZGxlIG51bGwgc3VyZmFjZSBwb2ludGVyIHdoZW4gY3JlYXRpbmcgc3VyZmFjZS4KKworCSogZGxscy9pdHNzL2l0c3MuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVVzZSBpbnRlcmxvY2tlZCBmdW5jdGlvbnMgZm9yIHRocmVhZCBzYWZldHkuCisKKwkqIGRsbHMvcXVhcnR6L2VudW1waW5zLmM6IENocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlGaXhlZCBJRW51bVBpbnNJbXBsX05leHQuCisKKwkqIGRsbHMvZGJnaGVscC9kYmdoZWxwLmMsIGRsbHMvZGJnaGVscC9kYmdoZWxwX3ByaXZhdGUuaCwKKwkgIGRsbHMvZGJnaGVscC9zeW1ib2wuYzoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwktIGltcGxlbWVudCBTeW1VbkROYW1lIGFuZCBVbmRlY29yYXRlU3ltYm9sTmFtZSBvbiB0b3Agb2YKKwkgIG1zdmNydC5fX3VuRE5hbWUKKwktIGltcGxlbWVudCBTWU1PUFRfVU5ETkFNRSBzdXBwb3J0CisKKwkqIGluY2x1ZGUvd2ludXNlci5oOiBS6W1pIEFzc2FpbGx5IDxyZW1pLmFzc2FpbGx5QGZyZWUuZnI+CisJQWRkZWQgc29tZSBzdHJ1Y3R1cmUgdGFncy4KKworCSogaW5jbHVkZS9tbGFuZy5pZGwsIGluY2x1ZGUvd2lubnQuaDoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCVVzZSBfV0lOTlRfIGFzIGV4Y2x1c2lvbiBkZWZpbmUgZm9yIHNvdXJjZSBjb21wYXRpYmlsaXR5LgorCisJKiBkbGxzL2F2aWZpbDMyL2F2aWZpbDMyLnNwZWM6IENocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlNYXBwZWQgQVZJU3RyZWFtT3BlbkZyb21GaWxlIHRvIEFWSVN0cmVhbU9wZW5Gcm9tRmlsZUEuCisKKwkqIGRsbHMvZHNvdW5kL2NhcHR1cmUuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlSZW1vdmUgdHJhaWxpbmcgd2hpdGUgc3BhY2UgaW50cm9kdWNlZCBpbiBwcmV2aW91cyBwYXRjaC4KKwlGaXhlZCBJRGlyZWN0U291bmRDYXB0dXJlQnVmZmVyX1N0b3AgdG8gYWxsb3cgYW5vdGhlciBTdGFydCB0bworCXN1Y2NlZWQuCisJUmVtb3ZlZCBPU1MgY2VudHJpYyBidWZmZXIgcmVjcmVhdGlvbiBoYWNrIHdoZW4gZG9pbmcgaGFyZHdhcmUKKwlhY2NlbGVyYXRpb24uCisJQ2xlYW5lZCB1cCBlcnJvciByZXBvcnRpbmcgYW5kIHRyYWNpbmcuCisKKwkqIGRsbHMvc2hsd2FwaS90ZXN0cy9zaHJlZy5jOiBKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlNYWtlIGZvdXIgc2hyZWcgdGVzdHMgcGFzcyBvbiBYUC4KKworCSogZGxscy9zaGRvY3Z3L3NoZG9jdncuc3BlYywgZGxscy9zaGRvY3Z3L3NoZG9jdndfbWFpbi5jOgorCUNocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlBZGRlZCBzdHViIGZvciBTZXRRdWVyeU5ldFNlc3Npb25Db3VudC4KKworCSogZGxscy93aW5pbmV0L2ludGVybmV0LmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlQYXNzIHRoZSBhZGRyZXNzIG9mIHRoZSBoYW5kbGUgcmF0aGVyIHRoYW4ganVzdCB0aGUgaGFuZGxlIHRvIGZpeCBhCisJY3Jhc2ggd2l0aCBJRS4KKworCSogZGxscy9pbWFnZWhscC9pbWFnZWhscC5zcGVjOiBDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJRml4ZWQgc29tZSBmb3J3YXJkcy4KKworMjAwNC0xMS0xMCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9jcnlwdDMyL2NlcnQuYywgZGxscy9jcnlwdDMyL2NyeXB0MzIuc3BlYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wcm92ZSB0aGUgQ2VydFN0b3JlIGNvZGUgYSBsaXR0bGUuCisKKwkqIGRsbHMvYWR2YXBpMzIvYWR2YXBpMzIuc3BlYywgZGxscy9hZHZhcGkzMi9zZXJ2aWNlLmM6CisJSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwktIFN0dWIgU2V0U2VydmljZU9iamVjdFNlY3VyaXR5IHRvIHByZXRlbmQgdG8gd29yayAocmV0dXJuIHRydWUpLgorCS0gQ2hhbmdlIFF1ZXJ5U2VydmljZU9iamVjdFNlY3VyaXR5IHNvIGl0IGluaXRpYWxpemVzIHRoZSBBQ0wgd2l0aCBhCisJICBudWxsIERBQ0wsIGFuZCByZXR1cm4gYXMgdGhvdWdoIGl0IHdvcmtlZC4KKwktIENoYW5nZWQgUXVlcnlTZXJ2aWNlU3RhdHVzIHRvIHRlbGwgaWYgdGhlIHNlcnZpY2UgaXMgcnVubmluZyBieSB0aGUKKwkgIHByZXNlbmNlIG9mIHNvbWUgbmFtZWQgc2hhcmVkIHN0b3JhZ2UgLSBjb3BpZWQgZnJvbSBTdGFydFNlcnZpY2Ugd2hlbgorCSAgaXQgY2hlY2tzIHRvIHNlZSBpZiBpdHMgYWxyZWFkeSBydW5uaW5nLgorCisJKiBkbGxzL3NobHdhcGkvdGVzdHMvc2hyZWcuYzogSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJVXNlIFNIRGVsZXRlS2V5IHRvIHJlbW92ZSBsZWZ0b3ZlciBrZXlzIGZyb20gdGhlIHNocmVnIHRlc3RzLgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gU2V0IGNhY2hlIGJpdG1hcCBkaW1lbnNpb25zIGNvcnJlY3RseSB3aGVuIGEgMHgwIGltYWdlIGxpc3QgaXMgdXNlZC4KKwktIE9wdGltaXplIFdNX1NUWUxFQ0hBTkdFRCBoYW5kbGVyIHRvIG9ubHkgcmVkcmF3IHdoZW4gYSBDQ1NfKiBzdHlsZQorCSAgaXMgY2hhbmdlZCwgbGlrZSBuYXRpdmUuCisKKwkqIGRsbHMvcnNhZW5oL3JzYWVuaC5jOiBNaWNoYWVsIEp1bmcgPG1qdW5nQGlzcy50dS1kYXJtc3RhZHQuZGU+CisJQ1BBY3F1aXJlQ29udGV4dDogU2V0IGxhc3QgZXJyb3IgdG8gRVJST1JfU1VDQ0VTUyBpbiBjYXNlIG9mIHN1Y2Nlc3MuCisKKzIwMDQtMTEtMDkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJQWRkIGEgZmlyc3QgQUNfQ0hFQ0tfSEVBREVSUywgZm9yY2luZyBjaGVja2luZyBvZiB0aGUgZGVmYXVsdCBpbmNsdWRlcworCWV2ZW4gd2hlbiBidWlsZGluZyB3aW5lIHdpdGhvdXQgWDExLgorCisJKiBkbGxzL250ZGxsL2ZpbGUuYzogSGFtaXNoIDxoYW1pc2hfbm9zcGFtQHlhaG9vLmNvbT4KKwlGaXggZm9yIGFzeW5jIHdyaXRlcyB0byBjb21tIHBvcnRzLgorCisJKiBkbGxzL3NobHdhcGkvdGVzdHMvb3JkaW5hbC5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCUZpeGVkIHRlc3RzIG9mIEdldEFjY2VwdExhbmd1YWdlc0EgZm9yIHBsYXRmb21zIDk4LE1FLE5UNC4KKworCSogZGxscy92ZXJzaW9uL3Rlc3RzL2luZm8uYzoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlGaXhlZCBHZXRGaWxlVmVyc2lvbkluZm9TaXplQSB0ZXN0cyBvbiBOVDQgcGxhdGZvcm0uCisKKwkqIGRsbHMvZHNvdW5kL2NhcHR1cmUuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlSZW1vdmUgcmVkdW5kYW50IEdVSUQgY2hlY2suCisKKwkqIGRsbHMvY29tY3RsMzIvdXBkb3duLmMsIHdpbmRvd3Mvc3B5LmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwktIGRvIG5vdCBtb3ZlIHVwZG93biBjb250cm9sIGFuZCBidWRkeSBpZiBhbiBhbGlnbm1lbnQgd2FzIG5vdCByZXF1ZXN0ZWQKKwktIGluIFVETV9TRVRBQ0NFTCBoYW5kbGVyIGRvIG5vdCBmb3JnZXQgdG8gdXBkYXRlIG51bWJlciBvZiBhY2NlbGVyYXRvcnMKKwktIHVwZGF0ZSBhcnJvd3MgaW5mbyBpbiBXTV9MQlVUVE9ORE9XTiBhcyB3ZWxsIGFzIGluIFdNX01PVVNFTU9WRQorCS0gdXNlIGFjY2VsZXJhdG9ycyBpbiBXTV9MQlVUVE9ORE9XTiBoYW5kbGVyCisKKwkqIGRsbHMvdXh0aGVtZS9kcmF3LmM6IEtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCUltcGxlbWVudGF0aW9uIG9mIEdldFRoZW1lQmFja2dyb3VuZEV4dGVudC4KKwlQYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIEdldFRoZW1lQmFja2dyb3VuZFJlZ2lvbi4KKwlDb3JyZWN0IGEgZmV3IGNvbW1lbnRzLgorCisJKiBkbGxzL3gxMWRydi94cmVuZGVyLmM6IEtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCUNoYW5nZSBBbHBoYUJsZW5kIHRvIHVzZSBkZXN0aW5hdGlvbiBkaW1lbnNpb25zIHJhdGhlciB0aGVuIHNvdXJjZS4KKworCSogZGxscy91eHRoZW1lL3N5c3RlbS5jOiBLZXZpbiBLb2x0emF1IDxrZXZpbkBwbG9wLm9yZz4KKwlGaXggY3Jhc2ggd2hlbiBubyB0aGVtZSBpcyBzZXQgYW5kIGFwcGxpY2F0aW9uIGlnbm9yZXMgZXJyb3JzLgorCisJKiBkbGxzL29sZWF1dDMyL29sZXBpY3R1cmUuYzogV2FsdCBPZ2J1cm4gPHJldWJlbkB1Z2NzLmNhbHRlY2guZWR1PgorCUluIE9sZVBpY3R1cmVJbXBsX0xvYWQsIGFsd2F5cyB1c2UgRElCX1JHQl9DT0xPUlMgYmVjYXVzZSBubyBpbmRleGVkCisJcGFsZXR0ZSBoYXMgYmVlbiBkZWZpbmVkLgorCisyMDA0LTExLTA4ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gYk50ZlVuaWNvZGUgaXMgYSBkdXAnIG9mIGJVbmljb2RlIHNvIHJlbW92ZSBpdCBhbmQgZml4IHRoZSBmZXcKKwkgIHBsYWNlcyB3aGVyZSBpdCB3YXMgdXNlZC4KKwktIFJlbW92ZSBhIGxvYWQgb2YgdXNlbGVzcyBOVUxMIGluZm9QdHIgY2hlY2tzLgorCS0gSGFyZGNvZGUgdGhlIGRlZmF1bHQgcGFkZGluZyBsaWtlIG5hdGl2ZSBpbnN0ZWFkIG9mIHVzaW5nIGEgd2Fja3kgZm9ybXVsYS4KKwktIFJlcGxhY2Ugc29tZSB0YWJzIHdpdGggc3BhY2VzIGFuZCByZW1vdmUgTk1IRFIgY2FzdHMuCisKKwkqIGRsbHMvdXNlci9tZW51LmM6IFdpbGxpYW0gUG9ldHJhIFlvZ2EgSCA8d2lsbGlhbXBvZXRyYUB5YWhvby5jb20+CisJR2l2ZSB0aGUgZmlyc3QgbWVudSBpdGVtIG9mIGEgcG9wdXAgbWVudSBhIGRpc3RhbmNlIG9mIDEgcGl4ZWwgdG8gdGhlCisJdG9wIGJvcmRlci4KKworCSogd2luZG93cy9ub25jbGllbnQuYzogV2lsbGlhbSBQb2V0cmEgWW9nYSBIIDx3aWxsaWFtcG9ldHJhQHlhaG9vLmNvbT4KKwlGaXggdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBzeXN0ZW0gbWVudSBpY29uIG9uIHRoZSBjYXB0aW9uIGJhci4KKworCSogZGxscy9tc3ZjcnQvY3BwLmMsIGRsbHMvbXN2Y3J0L3Rlc3RzL2NwcC5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCU5vdyB0aGF0IG5hbWUgdW5kZWNvcmF0aW9uIHdvcmtzLCBmaXggdGhlIHR5cGUgaW5mby4KKworCSogZGxscy9tc3ZjcnQvTWFrZWZpbGUuaW4sIGRsbHMvbXN2Y3J0L21haW4uYywgZGxscy9tc3ZjcnQvdW5kbmFtZS5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCUltcGxlbWVudGVkIF9fdW5ETmFtZSBhbmQgX191bkROYW1lRXggZnVuY3Rpb25zLgorCisJKiBkbGxzL3VzZXIvZWRpdC5jLCBkbGxzL3VzZXIvdGVzdHMvLmN2c2lnbm9yZSwKKwkgIGRsbHMvdXNlci90ZXN0cy9NYWtlZmlsZS5pbiwgZGxscy91c2VyL3Rlc3RzL2VkaXQuYzoKKwlWaXRhbGl5IE1hcmdvbGVuIDx3aW5lLXBhdGNoQGtpZXZpbmZvLmNvbT4KKwktIHJldHVybiAid2FudCBhbGwga2V5cyIgZm9yIFdNX0dFVERMR0NPREUgd2hlbiBtdWx0aS1saW5lCisJLSBzaW5nbGUtbGluZSBlZGl0IGNvbnRyb2wgZG9lcyBub3Qgd2FudCBhbGwgbWVzc2FnZXMKKwktIGFkZGl0aW9uYWwgc3R5bGUgY29tYmluYXRpb25zIGFyZSBwb3NzaWJsZSBmb3IgYm90aCBtdWx0aS1saW5lIGFuZAorCSAgc2luZ2xlLWxpbmUgZWRpdCBjb250cm9scworCS0gdGVzdHMgdG8gY29uZmlybSBpdAorCisJKiBkbGxzL2NvbWN0bDMyL21vbnRoY2FsLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJRGltZW5zaW9ucyBvZiBtb250aCBjYWxlbmRhciBjb250cm9sIHNob3VsZCBub3QgZGVwZW5kIG9uIHRoZSBjbGllbnQKKwl3aW5kb3cgc2l6ZS4KKworCSogZGxscy9oaGN0cmwub2N4Ly5jdnNpZ25vcmUsIGRsbHMvaGhjdHJsLm9jeC9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvaGhjdHJsLm9jeC92ZXJzaW9uLnJjOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUFkZCB2ZXJzaW9uIGluZm9ybWF0aW9uLgorCisJKiBkbGxzL2RiZ2hlbHAvZGJnaGVscF9wcml2YXRlLmgsIGRsbHMvZGJnaGVscC9lbGZfbW9kdWxlLmMsCisJICBkbGxzL2RiZ2hlbHAvbWVtb3J5LmMsIGRsbHMvZGJnaGVscC9tb2R1bGUuYywKKwkgIGRsbHMvZGJnaGVscC9wZV9tb2R1bGUuYywgZGxscy9kYmdoZWxwL3N0YWJzLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBmaXhlZCBsb2FkaW5nIHN0YWJzIGZyb20gUEUgbW9kdWxlcyBjb21waWxlZCB3aXRoIE1pbmdXCisJLSBlbmhhbmNlIHNvbWUgbG9hZGluZyBsb2dpYyBiZXR3ZWVuIEVMRi9QRSBETEwgcGFpcnMKKwktIHJlbW92ZWQgdW51c2VkIGluZGlyZWN0IG1lbW9yeSBhY2Nlc3MgZnVuY3Rpb24KKwktIGdldCByaWQgb2Ygc29tZSBHQ0MgZ2VuZXJhdGVkIHN5bWJvbHMKKworCSogcHJvZ3JhbXMvd2luZWRiZy9icmVhay5jLCBwcm9ncmFtcy93aW5lZGJnL2RiZy55LAorCSAgcHJvZ3JhbXMvd2luZWRiZy9kZWJ1Z2dlci5oLCBwcm9ncmFtcy93aW5lZGJnL21lbW9yeS5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy93aW5lZGJnLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBmaXhlZCByZWdyZXNzaW9uIGluIHdhdGNocG9pbnQgc2V0dGluZyAoYnkgYWRkcikKKwktIGluIGJhY2t0cmFjZSwgc2hvdyBhdCBsZWFzdCBtb2R1bGUgd2hlbiBubyBzeW1ib2wgaXMgZm91bmQKKwktIHByb3RlY3QgZXZlbnQgcGFyc2luZyBmcm9tIGNvbW1hbmQgbGluZSAod2hlbiBubyByZWFsIG51bWJlcikKKworCSogZGxscy94MTFkcnYva2V5Ym9hcmQuYzogV2FsdCBPZ2J1cm4gPHJldWJlbkB1Z2NzLmNhbHRlY2guZWR1PgorCVR1cm4gSVNPX0xlZnRfVGFiIGJhY2sgaW50byBhIHRhYiBjaGFyYWN0ZXIgaWYgbmVlZGVkLgorCisJKiBkbGxzL29sZWF1dDMyL29sZWF1dC5jOgorCVdpbGxpYW0gUG9ldHJhIFlvZ2EgSCA8d2lsbGlhbXBvZXRyYUB5YWhvby5jb20+CisJVXNlIENPTE9SX01FTlVCQVIgKGluc3RlYWQgb2YgQ09MT1JfR1JBRElFTlRJTkFDVElWRUNBUFRJT04pIGFzIHRoZQorCXVwcGVyIGxpbWl0IGluIEdldFN5c0NvbG9yKCkgdmFsaWRhdGlvbi4KKworCSogZGxscy91c2VyL3VpdG9vbHMuYzogV2lsbGlhbSBQb2V0cmEgWW9nYSBIIDx3aWxsaWFtcG9ldHJhQHlhaG9vLmNvbT4KKwlGaXggdGhlIGJ1dHRvbiBlZGdlIGNvbG9yLCBieSB1c2luZyB0aGUgQkZfU09GVCBib3JkZXIgc3R5bGUgZm9yCisJYnV0dG9ucy4KKworCSogaW5jbHVkZS93aW51c2VyLmg6IFLpbWkgQXNzYWlsbHkgPHJlbWkuYXNzYWlsbHlAZnJlZS5mcj4KKwlBZGQgc29tZSBzdHJ1Y3R1cmUgdGFncy4KKworMjAwNC0xMS0wNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9udGRsbC9sb2FkZXIuYzoKKwlGcmVlIHRoZSBtZW1vcnkgdmlldyBiZWZvcmUgd2UgdW5sb2FkIGEgYnVpbHRpbiBkbGwgdG8gYXZvaWQgYSByYWNlCisJY29uZGl0aW9uLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy90aW1lLmMsIGRsbHMva2VybmVsL3RpbWUuYywKKwkgIGRsbHMvbXN2Y3J0L3Rlc3RzL3RpbWUuYywgZGxscy9tc3ZjcnQvdGltZS5jLAorCSAgZGxscy9udGRsbC90ZXN0cy90aW1lLmMsIGRsbHMvbnRkbGwvdGltZS5jOgorCVJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwktIFJ0bFRpbWVGaWVsZHNUb1RpbWUgc2hvdWxkIG5vdCBub3JtYWxpemUgdGhlIHRpbWUgZmllbGRzCisJICBzdHJ1Y3R1cmUuIEluc3RlYWQgcmV0dXJuIGVycm9yIHdoZW4gaXQgaXMgZ2l2ZW4gYW4gdW5vcm1hbGl6ZWQKKwkgIGRhdGUuCisJLSBVc2UgYmV0dGVyIGFsZ29yaXRobXMgZm9yIFJ0bFRpbWVUb1RpbWVGaWVsZHMgYW5kCisJICBSdGxUaW1lRmllbGRzVG9UaW1lLiBSdGxUaW1lVG9UaW1lRmllbGRzIGlzIGFib3V0IDMgdGltZXMgZmFzdGVyLgorCS0gQWRkIHRlc3RzIGZvciBSdGxUaW1lRmllbGRzVG9UaW1lLgorCS0gU3lzdGVtVGltZVRvRmlsZVRpbWUgbXVzdCBmYWlsIGlmIFJ0bFRpbWVGaWVsZHNUb1RpbWUgZmFpbHMuIFVzZXJzCisJICBvZiBTeXN0ZW1UaW1lVG9GaWxlVGltZSBtdXN0IGRvIGxpa2V3aXNlLgorCS0gUmVtb3ZlIGEgdG9kb193aW5lIGZyb20gU3lzdGVtVGltZVRvRmlsZVRpbWUgdGVzdHMuCisJLSBTaW5jZSBtc3ZjcnQubWt0aW1lIG11c3QgYWNjZXB0IHVubm9ybWFsaXplZCBkYXRlcywgaXQgY2Fubm90IHVzZQorCSAgU3lzdGVtVGltZVRvRmlsZVRpbWUgYW5kIGRvIHRoZSBjYWxjdWxhdGlvbnMgaXRzZWxmLgorCS0gQWRkIHNvbWUgdGVzdHMgZm9yIG1rdGltZSBhY2NlcHRpbmcgdW5ub3JtYWxpemVkIGRhdGVzLgorCisJKiBkbGxzL29sZWF1dDMyL29sZWZvbnQuYzogTWlrZSBIZWFybiA8bWlrZUBuYXZpLmN4PgorCVN1cHBvcnQgYXNzaWduaW5nIGZvbnQgb2JqZWN0cyB0byBvdGhlciBmb250IG9iamVjdHMuCisKKwkqIGRsbHMvY29tY3RsMzIvYW5pbWF0ZS5jLCBkbGxzL2NvbWN0bDMyL2NvbWJvZXguYywKKwkgIGRsbHMvY29tY3RsMzIvZGF0ZXRpbWUuYywgZGxscy9jb21jdGwzMi9mbGF0c2IuYywKKwkgIGRsbHMvY29tY3RsMzIvaGVhZGVyLmMsIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYywKKwkgIGRsbHMvY29tY3RsMzIvbW9udGhjYWwuYywgZGxscy9jb21jdGwzMi9uYXRpdmVmb250LmMsCisJICBkbGxzL2NvbWN0bDMyL3JlYmFyLmMsIGRsbHMvY29tY3RsMzIvc3lzbGluay5jLAorCSAgZGxscy9jb21jdGwzMi90cmVldmlldy5jOgorCVJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZW1vdmUgdW5uZWNlc3NhcnkgV05EUFJPQyBjYXN0cy4KKworCSogZGxscy93aW5zb2NrL3NvY2tldC5jOiBHZXJhbGQgUGZlaWZlciA8Z2VyYWxkQHBmZWlmZXIuY29tPgorCUZpeCBmb3JtYXQgc3RyaW5nIGluIFdTQUFkZHJlc3NUb1N0cmluZ0EoKS4KKworCSogaW5jbHVkZS93aW5lL2xpc3QuaDogTWlrZSBIZWFybiA8bWlrZUBuYXZpLmN4PgorCURvY3VtZW50IHRoZSBsaW5rZWQgbGlzdCBzdXBwb3J0IGNvZGUuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jLCBpbmNsdWRlL2NvbW1jdHJsLmg6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBUQk5fUkVTVE9SRSBub3RpZmljYXRpb24uCisKKwkqIHByb2dyYW1zL3dpbmVkYmcvc3RhY2suYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUxpbWl0IFN0YWNrV2FsayBpdGVyYXRpb25zIHRvIHByZXZlbnQgaW5maW5pdGUgbG9vcC4KKworMjAwNC0xMS0wNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvTWFrZWZpbGUuaW4sIGRsbHMvcnNhZW5oLy5jdnNpZ25vcmUsCisJICBkbGxzL3JzYWVuaC9NYWtlZmlsZS5pbiwgZGxscy9yc2FlbmgvaGFuZGxlLmMsIGRsbHMvcnNhZW5oL2hhbmRsZS5oLAorCSAgZGxscy9yc2FlbmgvaW1wbG9zc2wuYywgZGxscy9yc2FlbmgvaW1wbG9zc2wuaCwgZGxscy9yc2FlbmgvcnNhZW5oLmMsCisJICBkbGxzL3JzYWVuaC9yc2Flbmguc3BlYywgZGxscy9yc2FlbmgvdGVzdHMvLmN2c2lnbm9yZSwKKwkgIGRsbHMvcnNhZW5oL3Rlc3RzL01ha2VmaWxlLmluLCBkbGxzL3JzYWVuaC90ZXN0cy9yc2FlbmguYywKKwkgIGluY2x1ZGUvY29uZmlnLmguaW4sIHRvb2xzL3dpbmUuaW5mOgorCU1pY2hhZWwgSnVuZyA8bWp1bmdAaXNzLnR1LWRhcm1zdGFkdC5kZT4KKwlJbXBsZW1lbnRlZCBhIHN1YnN0YW50aWFsIHBhcnQgb2YgcnNhZW5oLmRsbC4KKworCSogZG9jdW1lbnRhdGlvbi93aW5lLWRldmVsLnNnbWwsIGRvY3VtZW50YXRpb24vd2luZWRldi1rZXJuZWwuc2dtbDoKKwlNaWtlIEhlYXJuIDxtaWtlQG5hdmkuY3g+CisJRG9jdW1lbnQgaG93IFNFSCB3b3JrcyBpbiBXaW5lLgorCisJKiBkbGxzL2tlcm5lbC9sb2NhbGUuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgdW5peCBsb2NhbGUgdG8gY29kZSBwYWdlIG1hcHBpbmcgZm9yIElTTy04ODU5LTE2LgorCisJKiBkbGxzL3dpbnNvY2svTWFrZWZpbGUuaW4sIGRsbHMvd2luc29jay9zb2NrZXQuYywKKwkgIGRsbHMvd2luc29jay90ZXN0cy9zb2NrLmM6CisJSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJSW1wbGVtZW50IFdTQUFkZHJlc3NUb1N0cmluZ3tBLFd9LgorCUFkZCB0ZXN0cyBmb3IgV1NBQWRkcmVzc1RvU3RyaW5ne0EsV30gYW5kIFdTQVN0cmluZ1RvQWRkcmVzc3tBLFd9LgorCUFkZCBUUkFDRXMgdG8gV1NBU3RyaW5nVG9BZGRyZXNze0EsV30uCisKKwkqIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jLCBkbGxzL3dpbmluZXQvd2luaW5ldC5zcGVjOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgSW50ZXJuZXRHZXRDb25uZWN0ZWRTdGF0ZUV4QS4KKworCSogZGxscy9tc3ZjcnQvdGVzdHMvLmN2c2lnbm9yZSwgZGxscy9tc3ZjcnQvdGVzdHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL21zdmNydC90ZXN0cy9wcmludGYuYywgZGxscy9tc3ZjcnQvdGVzdHMvc2NhbmYuYzoKKwlBbmV1cmluIFByaWNlIDx3aW5lQHNoYWRvdmFsZC5keW5kbnMub3JnPgorCS0gTW92ZSBwcmludGYgdGVzdHMgZnJvbSBzY2FuZi5jIHRvIHByaW50Zi5jIChhbmQgZml4IG9uZSBvbiB0aGUKKwkgIHdheSkuCisJLSBBZGQgc29tZSBtb3JlLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMi5zcGVjLCBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmMsCisJICBkbGxzL3NoZWxsMzIvdW5kb2NzaGVsbC5oLCBpbmNsdWRlL3NobG9iai5oOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50YXRpb24gb2YgUGF0aENsZWFudXBTcGVjLgorCisJKiBsaWJzL3dpbmUvbW1hcC5jOiBHZXJhbGQgUGZlaWZlciA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KKwlEaXNhYmxlIG1lbW9yeSByZXNlcnZhdGlvbiBjb2RlIG9uIEZyZWVCU0QsIHdoZXJlIGl0IGp1c3QgZG9lc24ndAorCXdvcmsuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VjdXJpdHkuYywgZGxscy9hZHZhcGkzMi9zZXJ2aWNlLmMsCisJICBkbGxzL2FkdmFwaTMyL3Rlc3RzL3NlY3VyaXR5LmMsIGRsbHMvbnRkbGwvbnQuYywgaW5jbHVkZS93aW50ZXJubC5oOgorCUp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwktIGltcGxlbWVudCBMb29rdXBQcml2aWxlZ2VOYW1lCisJLSBjb3JyZWN0IExvb2t1cFByaXZpbGVnZVZhbHVlIChoYWQgYSBidWZmZXIgb3ZlcnJ1biBhbmQgc29tZXRpbWVzCisJICByZXR1cm5lZCBpbmNvcnJlY3QgTFVJRHMgZm9yIHdlbGwta25vd24gdmFsdWVzKQorCS0gbWFrZSBBbGxvY2F0ZUxvY2FsbHlVbmlxdWVJZCBsZXNzIG9idmlvdXNseSBpbmNvcnJlY3QKKwktIGFkZCBhIGJ1bmNoIG9mIHRlc3QgY2FzZXMKKworMjAwNC0xMS0wMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvdGFzay5jLCBkbGxzL2tlcm5lbC90ZXN0cy9jaGFuZ2UuYywKKwkgIGRsbHMva2VybmVsL3Rlc3RzL3RocmVhZC5jLCBkbGxzL3dpbm1tL21tc3lzdGVtLmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUZpeCBicm9rZW4gdGhyZWFkIHN0YXJ0IHJvdXRpbmVzLgorCisJKiB3aW5kb3dzL21zZ2JveC5jOiBJdmFuIExlbyBQdW90aSA8cHVvdGlAaW53aW5kLml0PgorCVByb3BlciBpbXBsZW1lbnRhdGlvbiBvZiBzeXNtb2RhbCBtZXNzYWdlIGJveGVzLgorCisJKiBkbGxzL21zdmNydC9maWxlLmM6IFRvbnkgTGFtYnJlZ3RzIDx0b255X2xhbWJyZWd0c0B0ZWx1c3BsYW5ldC5uZXQ+CisJRml4IHVwIGluaXRfZnAgdGVzdCBmb3IgZnJlb3Blbi4KKworCSogZGxscy9tc2kvYWN0aW9uLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJSGFuZGxlIDMgbW9yZSBjdXN0b20gYWN0aW9uIHR5cGVzCisKKwkqIGRsbHMvYWR2YXBpMzIvdGVzdHMvc2VjdXJpdHkuYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCUFsbG9jYXRlQW5kSW5pdGlhbGl6ZVNpZCBkb2VzIG5vdCB3b3JrIG9uIFdpbjk4LgorCisJKiBkbGxzL21zY21zL3Byb2ZpbGUuYywgZGxscy9tc2Ntcy90ZXN0cy9wcm9maWxlLmM6CisJSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJSW1wcm92ZSB7VW5pbnN0YWxsLEluc3RhbGx9Q29sb3JQcm9maWxle0EsV30uCisJQmV0dGVyIHRlc3RzIGZvciB0aGVzZSBmdW5jdGlvbnMuCisKKwkqIGRsbHMvd2lubW0vdGVzdHMvY2FwdHVyZS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCURvbid0IGNvbnNpZGVyIGEgTU1TWVNFUlJfTk9UU1VQUE9SVEVEIGZhaWx1cmUgYSB0ZXN0IGZhaWx1cmUuCisKKzIwMDQtMTEtMDIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIHRvb2xzL21ha2VfcmVxdWVzdHM6IFJlc3RvcmUgY2h1bmsgb2YgY29kZSBsb3N0IGluIHByZXZpb3VzIGNoYW5nZXMuCisKKwkqIGRsbHMvbnRkbGwvc3luYy5jOiBKZXJlbXkgV2hpdGUgPGp3aGl0ZUBjb2Rld2VhdmVycy5jb20+CisJVHVuZSB0aGUgYmVoYXZpb3Igb2YgU2xlZXAoKSBhbmQgV2FpdHh4eCgpIHRvIG1vcmUgY2xvc2VseSByZXNlbWJsZQorCVdpbmRvd3MgYmVoYXZpb3IuICBUaGUga2V5IGlzIHRvIHlpZWxkIGluIGEgU2xlZXAgYW5kIGluIGFueSBXYWl0IHRoYXQKKwl0aW1lcyBvdXQuCisKKwkqIGRvY3VtZW50YXRpb24vdGVzdGluZy5zZ21sOiBJdmFuIExlbyBQdW90aSA8cHVvdGlAaW53aW5kLml0PgorCURvd25sb2FkaW5nIHRoZSBwbGF0Zm9ybSBzZGsgZG9lc24ndCByZXF1aXJlIElFIGFueSBtb3JlLgorCisJKiBkbGxzL3dpbm1tL3RpbWUuYzogSmVyZW15IFdoaXRlIDxqd2hpdGVAY29kZXdlYXZlcnMuY29tPgorCVRoZSBTbGVlcCgwKSBpbiB0aGlzIGxvb3AgaXMgaW5jb3JyZWN0LCBhbmQgc2hvdWxkIGJlIHJlbW92ZWQuICBUaGlzCisJZml4ZXMgaVR1bmVzIGFuZCBhIGdhbWUgcmVwb3J0ZWQgYnkgY2hlLgorCisJKiBkbGxzL3dpbmVwcy9iaXRtYXAuYywgZGxscy93aW5lcHMvcHMuYywgZGxscy93aW5lcHMvcHNkcnYuaDoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVNjYWxlIHRoZSBwYXR0ZXJucyBzbyB0aGF0IHRoZXkncmUgcmVuZGVyZWQgYXQgMzAwZHBpLgorCUNyZWF0ZSB0aGUgaW1hZ2UgZGljdGlvbmFyeSBvbmNlLCByYXRoZXIgdGhhbiBldmVyeSB0aW1lIHRoZSBQYWludFByb2MKKwlpcyBjYWxsZWQgLSBzaG91bGQgc3BlZWQgcHJpbnRpbmcgdXAgc29tZXdoYXQuCisKKwkqIGRsbHMvd2luc29jay9zb2NrZXQuYywgZGxscy93aW5zb2NrL3dzMl8zMi5zcGVjOgorCVN0ZWZhbiBE9nNpbmdlciA8c3RlZmFuZG9lc2luZ2VyQGdteC5hdD4KKwlBZGRlZCBXU0FBZGRyZXNzVG9TdHJpbmdBL1cgc3R1YnMuCisKKwkqIGRsbHMvbnRkbGwvdGltZS5jOiBWaXRhbHkgTGlwYXRvdiA8bGF2QGV0ZXJzb2Z0LnJ1PgorCUFkZGVkIE1TSyB0aW1lem9uZSBpbmZvLgorCisJKiBkbGxzL3dpbnNvY2svcHJvdG9jb2wuYzogSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJTWFrZSBzdXJlIHdlIG1hdGNoIG91dHB1dCBvZiBXaW4yayBwcm90b2NvbCBlbnVtZXJhdGlvbiBmdW5jdGlvbnMuCisKKwkqIGRsbHMvbnRkbGwvdGltZS5jOiBNaWNoYWVsIEp1bmcgPG1qdW5nQGlzcy50dS1kYXJtc3RhZHQuZGU+CisJQWRkZWQgQ0VUIHRpbWV6b25lIGluZm8uCisKKwkqIGRsbHMvZ2RpL2JpdG1hcC5jLCBkbGxzL2dkaS9kaWIuYywgZGxscy9nZGkvdGVzdHMvYml0bWFwLmMsCisJICBkbGxzL3gxMWRydi9kaWIuYzoKKwlNaWNoYWVsIEthdWZtYW5uIDxoYWxsb0BtaWNoYWVsLWthdWZtYW5uLmNoPgorCS0gRXh0ZW5kZWQgc3VwcG9ydCBmb3IgQklUTUFQQ09SRUlORk8gLyBCSVRNQVBDT1JFSEVBREVSIHN0cnVjdHVyZXMuCisJLSBBbHdheXMgY2FsY3VsYXRlIHRoZSBsb2NhdGlvbiBvZiB0aGUgY29sb3IgdGFibGUuCisJLSBDcmVhdGVDb21wYXRpYmxlQml0bWFwOiBDcmVhdGUgYSBESUIgc2VjdGlvbiBpZiBuZWNlc3NhcnkuCisJLSBBZGRlZCBzb21lIHRlc3RzLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmM6IEZhYnJpY2UgTeluYXJkIDxtZW5hcmQuZmFicmljZUB3YW5hZG9vLmZyPgorCUNoZWNrIHRoZSB0eXBlIG9mIGVycm9yIHJldHVybmVkIGJ5IFNIQ3JlYXRlRGlyZWN0b3J5RXhXLgorCisJKiBkbGxzL250ZGxsL3RpbWUuYzogUm9nZXIgT2xzb24gPHU2MEBjb21jYXN0Lm5ldD4KKwlBZGQgUGFjaWZpYyBTdGFuZGFyZCBUaW1lIChQU1QpIHRvIFRaX0lORk8uCisKKzIwMDQtMTEtMDEgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIHdpbmRvd3MvdXNlci5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU3RhcnQgdGhlIHJlYm9vdCBwcm9jZXNzIGluIEV4aXRXaW5kb3dzRXguCisKKwkqIGRsbHMvc2hkb2N2dy8uY3ZzaWdub3JlLCBkbGxzL3NoZG9jdncvTWFrZWZpbGUuaW4sCisJICBkbGxzL3NoZG9jdncvc2hkb2N2dy5yYywgZGxscy9zaGRvY3Z3L3NoZG9jdndfbWFpbi5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEb3dubG9hZCB0aGUgTW96aWxsYSBBY3RpdmUgWCBjb250cm9sIG9uIGRlbWFuZC4KKworCSogZGxscy93aW5zb2NrL3Byb3RvY29sLmMsIGRsbHMvd2luc29jay90ZXN0cy8uY3ZzaWdub3JlLAorCSAgZGxscy93aW5zb2NrL3Rlc3RzL01ha2VmaWxlLmluLCBkbGxzL3dpbnNvY2svdGVzdHMvcHJvdG9jb2wuYywKKwkgIGRsbHMvd2luc29jay93czJfMzIuc3BlYywgaW5jbHVkZS93aW5zb2NrMi5oOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUZpbGwgV1NBUFJPVE9DT0xfSU5GTyBzdHJ1Y3R1cmVzIGluc3RlYWQgb2YgUFJPVE9DT0xfSU5GTyBzdHJ1Y3R1cmVzLgorCUltcGxlbWVudCBXU0NFbnVtUHJvdG9jb2xzKCkuCisJQWRkIHNvbWUgdGVzdHMuCisKKwkqIGRsbHMvY29tY3RsMzIvbmF0aXZlZm9udC5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUNvbnZlcnQgTmF0aXZlRm9udCBjb250cm9sIHRvIHVuaWNvZGUsIHVzZSBoYnJCYWNrZ3JvdW5kIGFzIGluIG5hdGl2ZS4KKworCSogZGxscy9hZHZwYWNrL2FkdnBhY2suYywgZGxscy9hZHZwYWNrL2FkdnBhY2suc3BlYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgYWR2cGFjay5Eb0luZkluc3RhbGwuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCURvIG5vdCByZXRyaWV2ZSBpbmZvUHRyIHR3aWNlIGluIFRvb2xiYXJXaW5kb3dQcm9jIGVudHJ5LgorCisJKiBkbGxzL2FkdmFwaTMyL2NyeXB0LmM6IE1pY2hhZWwgSnVuZyA8bWp1bmdAaXNzLnR1LWRhcm1zdGFkdC5kZT4KKwlDcnlwdEdldFVzZXJLZXk6IFNldCByZXR1cm4ga2V5IGhhbmRsZSB0byB6ZXJvIGluIGNhc2Ugb2YgZmFpbHVyZS4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVNlbmQgbm90aWZpY2F0aW9uIG1lc3NhZ2VzIGluIHRoZSBmb3JtYXQgZGljdGF0ZWQgYnkKKwlpbmZvUHRyLT5ub3RpZnlGb3JtYXQuCisKKwkqIHRvb2xzL01ha2VmaWxlLmluOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJUHV0ICQoRlJFRVRZUEVMSUJTKSBhcyB0aGUgbGFzdCBwYXJ0LCBhcyBpdCBjYW4gaW5jbHVkZSB0aGUgZGlyIG9mIGFuCisJb2xkZXIgV2luZSBpbnN0YWxsIHdoaWNoIGRvIG5vdCBoYXZlIHRoZSBzYW1lIGV4cG9ydHMgKHJlcG9ydGVkIGJ5CisJam9va2UpLgorCisJKiBkbGxzL2tlcm5lbC9sb2NhbGUuYywgZGxscy9rZXJuZWwvdGVzdHMvbG9jYWxlLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJU2V0IHRoZSBjb3JyZWN0IGxhc3QgZXJyb3IgaW4gRW51bVVJTGFuZ3VhZ2VzQSwgd2l0aCB0ZXN0cy4KKworCSogaW5jbHVkZS93aW51c2VyLmgsIHdpbmRvd3Mvc3lzY29sb3IuYzoKKwlXaWxsaWFtIFBvZXRyYSBZb2dhIEggPHdpbGxpYW1wb2V0cmFAeWFob28uY29tPgorCUFkZCBDT0xPUl9NRU5VSElMSUdIVCBhbmQgQ09MT1JfTUVOVUJBUiB0byB0aGUgc3lzdGVtIGNvbG9ycy4KKworMjAwNC0xMC0zMCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy91c2VyL21zZzE2LmMsIGRsbHMvdXNlci9wYWludGluZy5jLCBpbmNsdWRlL3dpbi5oLAorCSAgd2luZG93cy9tZXNzYWdlLmM6CisJR2V0IHJpZCBvZiB0aGUgV0lOX05FRURTX0JFR0lOUEFJTlQgZmxhZywgV2luZG93cyB3aWxsIGhhcHBpbHkgbG9vcAorCWZvcmV2ZXIgdG9vIGlmIFdNX1BBSU5UIGlzIG5vdCBoYW5kbGVkIHByb3Blcmx5LgorCisJKiBkb2N1bWVudGF0aW9uL2ludHJvZHVjdGlvbi5zZ21sOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlCYXNlZCBvbiB0aGUgbGFzdCAzNisgbW9udGhzIFdpbmUgaXMgcmVsZWFzZWQgb25jZSBhIG1vbnRoIG9uCisJYXZlcmFnZS4KKwlBc3NvcnRlZCBzcGVsbGluZyBmaXhlcyBhbmQgdHdlYWtzLgorCisJKiBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9DYS5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfQ3MucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9EYS5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfRGUucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9Fbi5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfRW8ucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9Fcy5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfRmkucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9Gci5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfSHUucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9JdC5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfSmEucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9Lby5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfTmwucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9Oby5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfUGwucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9QdC5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfUnUucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9TaS5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfU2sucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9Tdi5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfVWsucmMsCisJICBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9XYS5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfWmgucmM6CisJSXZhbiBMZW8gUHVvdGkgPHB1b3RpQGlud2luZC5pdD4KKwlSZW1vdmUgRFNfU1lTTU9EQUwgZnJvbSBtc2dib3ggcmVzb3VyY2UuCisKKwkqIGRsbHMva2VybmVsL3Byb2Nlc3MuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgc3VwcG9ydCBmb3IgUkVHX0VYUEFORF9TWiBpbiBzZXRfcmVnaXN0cnlfdmFyaWFibGVzKCkuCisJRml4IHByb2Nlc3Npbmcgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgYXJlIHRvbyBiaWcgKD4xMDI0CisJY2hhcmFjdGVycyk6IHRoZXkgc2hvdWxkIGJlIHRydW5jYXRlZCwgbm90IGlnbm9yZWQuCisKKwkqIHRvb2xzL2MybWFuLnBsLCB0b29scy93aW5hcGlfY2hlY2svbW9kdWxlcy5wbSwKKwkgIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfbG9jYWwucG0sIHRvb2xzL3dpbmVtYWtlcjoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBbHRlciB0aGUgZnVuY3Rpb25zIGRlY2xhcmF0aW9uIG9yZGVyIG9yIHByZWRlY2xhcmUgdGhlbSBzbyBwZXJsIGNhbgorCWNoZWNrIHRoZSBwcm90b3R5cGVzLgorCisJKiBkbGxzL250ZGxsL3Rlc3RzL3RpbWUuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJI2lmZGVmIG91dCB0aGUgdGVzdHMgaWYgY29tcGlsaW5nIHdpdGggdGhlIFBsYXRmb3JtIFNESyBoZWFkZXJzIHNpbmNlCisJdGhleSBhcmUgbWlzc2luZyBUSU1FX0ZJRUxEUy4KKworCSogZGxscy9ycGNydDQvdGVzdHMvZ2VuZXJhdGVkLmMsIHRvb2xzL3dpbmFwaS90ZXN0cy5kYXQ6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJTUlETF9TVFVCX01FU1NBR0UuVW5pcXVlUHRyQ291bnQgaGFzIGJlZW4gcmVuYW1lZCBpbiB0aGUgbGF0ZXN0IFNESyBzbworCWlnbm9yZSBpdC4KKworMjAwNC0xMC0yOSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy93aW5zcG9vbC9pbmZvLmMsIGRsbHMvd2luc3Bvb2wvd2luc3Bvb2wuZHJ2LnNwZWM6CisJVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdHVicyBmb3IgRW51bVByaW50UHJvY2Vzc29yc0FXLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy90aW1lLmMsIGRsbHMva2VybmVsL3RpbWUuYzoKKwlSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJLSBTaW1wbGlmeSB0aGUgY2FsY3VsYXRpb24gaW4gVElNRV9EYXlsaWdodENvbXBhcmVEYXRlOworCS0gRXhwYW5kIHRoZSBudW1iZXIgb2YgYXBwbGljYWJsZSB0ZXN0IGNhc2VzLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvaW5wdXQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlDbGVhbiB1cCB1c2VyMzIvaW5wdXQuYyB0ZXN0LCByZW1vdmUgdGhlIHdyb25nIGFzc3VtcHRpb24gdGhhdCBhCisJd2luZG93IGFsd2F5cyByZWNlaXZlcyBpbnB1dCBmb2N1cyB1cG9uIGNyZWF0aW9uLgorCisJKiBpbmNsdWRlL3dpbmluZXQuaDogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCURlZmluZSBzb21lIGV4dHJhIEhUVFBfUVVFUlkgdmFsdWVzLgorCisJKiB3aW5kb3dzL3VzZXIuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUtpbGwgYWxsIHdpbmUgcHJvY2Vzc2VzIHdoZW4gZG9pbmcgRXhpdFdpbmRvd3NFeC4KKworMjAwNC0xMC0yOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kaW5wdXQva2V5Ym9hcmQuYzoKKwlUb3JiavZybiBBbmRlcnNzb24gPFRvcmJqb3JuLkUuQW5kZXJzc29uQHRpZXRvZW5hdG9yLmNvbT4KKwlGaXhlZCBzaXplIGNoZWNrIGluIEdldERldmljZURhdGEuCisKKwkqIGRsbHMvd2luaW5ldC90ZXN0cy9odHRwLmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlTdXBwb3NlZGx5IGZpeCBodHRwIHRlc3Qgb24gV2luZG93cy4KKworCSogZGxscy9rZXJuZWwvdm9sdW1lLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlJbiBWT0xVTUVfUmVhZEZBVFN1cGVyYmxvY2s6CisJLSBkbyBub3QgdGVzdCBvbiB0aGUgSk1QIGluc3RydWN0aW9uOiBtb3N0IGJvb3QgYmxvY2tzIGhhdmUgdGhhdAorCS0gdGVzdCBpbnN0ZWFkIG9uIHRoZSAiRkFUIiBzdHJpbmdzIGZpcnN0LCBiZWZvcmUgdGhlIHNpemUKKwkgIGNhbGN1bGF0aW9uCisJLSBkbyBzb21lIHBhcmFtZXRlciBjaGVja2luZyB0byBwcmV2ZW50IGFyaXRobWV0aWMgZXJyb3JzCisJLSB1c2UgbWVhbmluZ2Z1bCBuYW1lcyBpbnN0ZWFkIG9mIGJsb2NrIG9mZnNldHMKKwkoYmFzZWQgb24gYSByZWplY3RlZCBwYXRjaCBmcm9tIFZpbmNlbnQgQulyb24pLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmM6CisJUm9sZiBLYWxiZXJtYXR0ZXIgPHJvbGYua2FsYmVybWF0dGVyQGNpdGVuZy5jb20+CisJVXNlIFNIQ3JlYXRlRGlyZWN0b3J5RXggZnVuY3Rpb24gaW5zdGVhZCBvZiBkb2luZyBleHBsaWNpdCByZWN1cnNpdmUKKwlkaXJlY3RvcnkgY3JlYXRpb24uCisKKwkqIGRsbHMvc2hlbGwzMi90ZXN0cy9zaGxmaWxlb3AuYzoKKwlSb2xmIEthbGJlcm1hdHRlciA8cm9sZi5rYWxiZXJtYXR0ZXJAY2l0ZW5nLmNvbT4KKwlBZGQgdGVzdCBmb3IgU0hDcmVhdGVEaXJlY3RvcnlFeCBmdW5jdGlvbi4KKwlGaXhlZCBzb21lIHR5cG9zLgorCisyMDA0LTEwLTI3ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBzZXJ2ZXIvcXVldWUuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlUYWtlIGludG8gYWNjb3VudCB3aW5kb3cgdmlzaWJpbGl0eSB3aGVuIHNlYXJjaGluZyBmb3IgYSB0YXJnZXQgZm9yIGEKKwloYXJkd2FyZSBtb3VzZSBtZXNzYWdlLgorCisJKiBzZXJ2ZXIvdXNlci5oLCBzZXJ2ZXIvd2luZG93LmM6IEFkZGVkIGlzX3dpbmRvd192aXNpYmxlIGZ1bmN0aW9uLgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWJvZXguYzoKKwlVc2UgY29ycmVjdCB0eXBlIGluc3RlYWQgb2Ygdm9pZCogaW4gaXRlbSBsaW5rZWQgbGlzdC4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfRnIucmM6CisJRmFicmljZSBN6W5hcmQgPG1lbmFyZC5mYWJyaWNlQHdhbmFkb28uZnI+CisJU29tZSBGcmVuY2ggdHJhbnNsYXRpb25zIGFkZGVkLgorCisJKiBkbGxzL2tlcm5lbC90aW1lLmMsIGluY2x1ZGUvd2luYmFzZS5oOgorCVJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwktIFJlb3JkZXJlZCBzb21lIGNvZGUgZnJvbSB0aGUgZXhpc3RpbmcgaGVscGVyIF9HZXRUaW1lWm9uZUJpYXMgdG8KKwkgIG1ha2UgaXQgbW9yZSBnZW5lcmFsIHVzZWZ1bCAoYW5kIGNoYW5nZWQgdGhlIGhlbHBlciBuYW1lcyB0bworCSAgVElNRV94eXopLgorCS0gTWFrZSBHZXRUaW1lWm9uZUluZm9ybWF0aW9uIHJldHVybiB0aGUgY29ycmVjdCB6b25lIGlkIGNvbnN0YW50cy4KKwktIENoYW5nZWQgc29tZSAiY29uc3QgTFBYX1lfWiIgZGVjbGFyYXRpb25zIHRvICJjb25zdCBYX1lfWiAqIi4KKworCSogZGxscy9zaGVsbDMyL3NobGZpbGVvcC5jOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCUZpeCBiYWQgbWVtb3J5IGFsbG9jYXRpb24gZm9yIHVuaWNvZGUgYnVmZmVyLgorCisJKiBkbGxzL3NobHdhcGkvdGVzdHMvb3JkaW5hbC5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCUZpeGVkIEdldEFjY2VwdExhbmd1YWdlc0EgdGVzdHMgZm9yIFdpbjk4LgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJRmx1c2ggcGVuZGluZyBtZXNzYWdlcyBiZWZvcmUgdGVzdGluZyBwYWludGluZyBtZXNzYWdlIHNlcXVlbmNlcy4KKworCSogZGxscy9tc3ZjcnQvdGltZS5jOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJSW4gTVNWQ1JUX2xvY2FsdGltZSgpIHJldHVybiB0bV9pc2RzdCA9IDAgd2hlbiB0aGVyZSBhcmUgbm8gZGF5bGlnaHQKKwl0aW1lIGNoYW5nZXMgaW4gdGhlIGxvY2FsIHRpbWUgem9uZS4KKworCSogZGxscy9zaGVsbDMyL3NoZWxscGF0aC5jOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJX1NIRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzIHNob3VsZCByZXR1cm4gaW5wdXQgc3RyaW5nIGlmIG5vICUgZm91bmQKKwl0byBleHBhbmQsIGFuZCBzaG91bGQgY2FsbCBFeHBhbmRFbnZpcm9ubWVudFN0cmluZ3NXIGlmIGl0IGRvZXNuJ3QKKwloYW5kbGUgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgZGlyZWN0bHkuICBCYXNlZCBvbiBhIHBhdGNoIGZyb20gRGFuCisJS2VnZWwuCisKKwkqIGluY2x1ZGUvd2ludXNlci5oOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBwcm9wZXIgcHJvdG90eXBlcyBmb3IgR2V0Q2xhc3NMb25nUHRyQS9XIGZvciBfV0lONjQgY2FzZS4KKworCSogZGxscy9jb21jdGwzMi9jb21ib2V4LmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJTWlub3IgY2xlYW51cHMuCisKKwkqIGRsbHMvY29tY3RsMzIvaG90a2V5LmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJVXNlIHR5cGVzYWZlIHNpZ25hdHVyZSB3aGVyZSBwb3NzaWJsZS4KKworCSogZGxscy9jb21jdGwzMi9zdGF0dXMuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlSZW5hbWUgU1RBVFVTV0lORE9XSU5GTyB0byBTVEFUVVNfSU5GTywgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIKKwljb250cm9scy4gRml4IHNvbWUgcHJvdG90eXBlcy4gQWx3YXlzIHBhc3MgaW5mb1B0ciBhcm91bmQuCisKKwkqIGRsbHMvY29tY3RsMzIvcHJvZ3Jlc3MuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlNaW5vciBjbGVhbnVwcy4KKworCSogZGxscy9jb21jdGwzMi9pcGFkZHJlc3MuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlVc2UgVW5pY29kZSBmdW5jdGlvbnMgd2hlcmUgcG9zc2libGUuCisKKwkqIGRsbHMvYWR2cGFjay9hZHZwYWNrLmMsIGRsbHMvYWR2cGFjay9hZHZwYWNrLnNwZWM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdHViIGltcGxlbWVudGF0aW9ucyBmb3IgTGF1bmNoSU5GU2VjdGlvbihFeCkuCisKKwkqIGRsbHMvYWR2YXBpMzIvY3J5cHQuYzogTWljaGFlbCBKdW5nIDxtanVuZ0Bpc3MudHUtZGFybXN0YWR0LmRlPgorCUNyeXB0Q3JlYXRlSGFzaDogU2V0IHJldHVybmVkIGhhc2ggaGFuZGxlIHRvIHplcm8gaW4gY2FzZSBvZiBmYWlsdXJlLgorCisJKiBzZXJ2ZXIvZmQuYzogQWRkZWQgZmFsbGJhY2sgc3lzY2FsbHMgZm9yIGVwb2xsIGZ1bmN0aW9ucy4KKworCSogZGxscy9tcHIvTWFrZWZpbGUuaW4sIGRsbHMvbXByL21wci5yYywgZGxscy9vbGUzMi9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvb2xlMzIvb2xlMzJyZXMucmMsIGRsbHMvb2xlYXV0MzIvTWFrZWZpbGUuaW4sCisJICBkbGxzL29sZWF1dDMyL29sZWF1dDMyLnJjLCBkbGxzL3NoZWxsMzIvTWFrZWZpbGUuaW4sCisJICBkbGxzL3NoZWxsMzIvc2hyZXMucmM6CisJR2UgdmFuIEdlbGRvcnAgPGd2Z0ByZWFjdG9zLmNvbT4KKwlVc2Ugb25seSBvbmUgLnJlcyBmaWxlLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy94MTFkcnYveHJlbmRlci5jLCBpbmNsdWRlL2NvbmZpZy5oLmluOgorCUtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCUFkZCBzdHJldGNoaW5nIHN1cHBvcnQgdG8gQWxwaGFCbGVuZC4KKworMjAwNC0xMC0yNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZG9jdW1lbnRhdGlvbi9NYWtlZmlsZS5pbiwgZG9jdW1lbnRhdGlvbi9hcmNoaXRlY3R1cmUuc2dtbCwKKwkgIGRvY3VtZW50YXRpb24vY29uc29sZXMuc2dtbCwgZG9jdW1lbnRhdGlvbi9jdnMtcmVncmVzc2lvbi5zZ21sLAorCSAgZG9jdW1lbnRhdGlvbi9pMThuLnNnbWwsIGRvY3VtZW50YXRpb24vaW1wbGVtZW50YXRpb24uc2dtbCwKKwkgIGRvY3VtZW50YXRpb24vcG9ydGluZy5zZ21sLCBkb2N1bWVudGF0aW9uL3dpbmUtZGV2ZWwuc2dtbCwKKwkgIGRvY3VtZW50YXRpb24vd2luZWRldi1jb2Rpbmcuc2dtbCwKKwkgIGRvY3VtZW50YXRpb24vd2luZWRldi1ncmFwaGljYWwuc2dtbCwKKwkgIGRvY3VtZW50YXRpb24vd2luZWRldi1rZXJuZWwuc2dtbCwKKwkgIGRvY3VtZW50YXRpb24vd2luZWRldi1vdGhlcmRlYnVnLnNnbWwsCisJICBkb2N1bWVudGF0aW9uL3dpbmVkZXYtd2luZG93aW5nLnNnbWw6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJUmVvcmdhbml6aW5nIHdpbmUtZGV2ZWw6CisJLSBraWxsaW5nIHRoZSBhZHZhbmNlZCBwYXJ0IChhbmQgbW92aW5nIGl0cyBjaGFwdGVycyBpbiBib3RoCisJICBkZXZlbG9waW5nIFdpbmUgYW5kIFdpbmUgYXJjaGkgcGFydHMpCisJLSBjcmVhdGluZyBhIG5ldyBib29rIG9uIGNvZGluZyBwcmFjdGljZXMgZnJvbSBpMThuLnNnbWwsIHBhdGNoZXMuc2dtbAorCSAgYW5kIHBvcnRpbmcuc2dtbAorCS0gY3JlYXRpbmcgYSBuZXcgYm9vayBvbiBzb21lIGRlYnVnZ2luZyBzdHJhdGVnaWVzIGZyb20gdGhlIG9sZAorCSAgYWR2YW5jZWQgYm9vayBhbmQgY3ZzLXJlZ3Jlc3Npb24uc2dtbAorCS0gY3JlYXRpbmcgYSBuZXcgYm9vayBvbiB0aGUga2VybmVsIG1vZHVsZXMgKE5URExMICYgS0VSTkVMMzIpIGZyb20KKwkgIGFyY2hpdGVjdHVyZS5zZ21sIC8gcmVsYXRlZCBETExzIGFuZCBhZGRyZXNzLXNwYWNlLnNnbWwsCisJICBjb25zb2xlLnNnbWwsIHRocmVhZGluZy5zZ21sCisJLSBjcmVhdGluZyBhIG5ldyBib29rIG9uIHRoZSB3aW5kb3dpbmcgZnJvbSBhcmNoaXRlY3R1cmUuc2dtbCAvIFVTRVIzMgorCSAgYW5kIHJlbGF0ZWQKKwktIGNyZWF0aW5nIGEgbmV3IGJvb2sgb24gdGhlIGdyYXBoaWNhbCBwYXJ0cyBmcm9tIGFyY2hpdGVjdHVyZS5zZ21sIC8KKwkgIEdESTMyIGFuZCByZWxhdGVkCisJT3RoZXIgY2hhbmdlczoKKwktIHJlbW92ZWQgbGlzdCBvZiBETExzIGFuZCB0aGVpciByb2xlIChmcm9tIHRoZSBtb2R1bGVzIG92ZXJ2aWV3KQorCS0gcmVtb3ZlZCBpbiBYMTEga2V5Ym9hcmQgbWFwcGluZyBzZWN0aW9uIHRoZSBwYXJ0IHJlbGF0ZWQgdG8gc3VibWl0IGEKKwkgIHBhdGNoCisKKwkqIGRsbHMvd2lubW0vd2luZW9zcy9NYWtlZmlsZS5pbiwgZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmMsCisJICBkbGxzL3dpbm1tL3dpbmVvc3MvYXVkaW8uaCwgZGxscy93aW5tbS93aW5lb3NzL2RzY2FwdHVyZS5jLAorCSAgZGxscy93aW5tbS93aW5lb3NzL2RzcmVuZGVyLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlTcGxpdCB1cCBhdWRpby5jIGludG8gdGhyZWUgc2VwYXJhdGUgLmMgZmlsZXM6CisJYXVkaW8uYzogT1NTIGZ1bmN0aW9ucyBhbmQgd2F2ZUluIGFuZCB3YXZlT3V0IGRyaXZlciBmdW5jdGlvbnMuCisJZHNjYXB0dXJlLmM6IGRpcmVjdCBzb3VuZCBjYXB0dXJlIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4KKwlkc3JlbmRlci5jOiBkaXJlY3Qgc291bmQgcmVuZGVyZXIgZHJpdmVyIGltcGxlbWVudGF0aW9uLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy90aW1lLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgc29tZSB0ZXN0cyBmb3IgdGltZSBjb252ZXJzaW9uIGZ1bmN0aW9ucy4KKworCSogZGxscy91c2VyL2xpc3Rib3guYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlNb3ZlIHRoZSBod25kIHNlbGYgaW50byB0aGUgbGlzdGJveCBMQl9ERVNDUiBzdHJ1Y3QuCisJVXNlIHByb3BlciB0eXBlcy9uYW1lcyBpbiBhbGwgY2FzZXMuCisJRml4IHNvbWUgYmFkIGluZGVudGF0aW9uLgorCisJKiBkbGxzL3dpbm1tL3Rlc3RzL3dhdmUuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwl3aW4gOXggZG9lc24ndCBhbHdheXMgc3VwcG9ydCB3YXZlT3V0R2V0RGV2Q2Fwc1cgc28gZG9uJ3QgZ2VuZXJhdGUgYW4KKwllcnJvciBmb3IgTU1TWVNFUlJfTk9UU1VQUE9SVEVELgorCVBsYXkgb25lIHNlY29uZCBvZiBzaWxlbmNlIGZvciBlYWNoIHNvdW5kIGNhcmQgd2hlbiBub3QgaW4gaW50ZXJhY3RpdmUKKwltb2RlLgorCisJKiBkbGxzL3VzZXIvYnV0dG9uLmMsIGRsbHMvdXNlci90ZXN0cy9tc2cuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCU1ha2UgYnV0dG9uIHJldHVybiBleGFjdGx5IHRoZSBzYW1lIGRpYWxvZyBjb2RlcyBhcyBXaW5kb3dzIGRvZXMuCisJQWRkIGEgdGVzdCBjYXNlLgorCisJKiBkbGxzL3NoZWxsMzIvdGVzdHMvc2hlbGxwYXRoLmMsIGRsbHMvc2hlbGwzMi92ZXJzaW9uLmg6CisJSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCVVwZGF0ZSBzaGVsbDMyJ3MgdmVyc2lvbiB0byBXaW5YUCBsZXZlbC4KKworCSogZGxscy9kc291bmQvdGVzdHMvZHNvdW5kOC5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCVZlcmlmeUNlcnRpZmljYXRpb24gaXMgbm90IGFsd2F5cyBpbXBsZW1lbnRlZC4KKworCSogZGxscy9rZXJuZWwvY29tbS5jOiBDb252ZXJ0IENvbW1Db25maWdEaWFsb2cgdG8gVW5pY29kZS4KKworCSogZGxscy9jb21jdGwzMi90YWIuYzogVGhvcnN0ZW4gS2FuaSA8YmVlYml4QGdteC5uZXQ+CisJVXNlIGFkZHJlc3Mgb2YgdGFiX2l0ZW0uZXh0cmEgd2hlbiBidWlsZGluZyBkcmF3aXRlbXN0cnVjdC4KKworCSogZGxscy9zaGVsbDMyL2RlYnVnaGxwLmMsIGRsbHMvc2hlbGwzMi9waWRsLmMsIGRsbHMvc2hlbGwzMi9waWRsLmgsCisJICBkbGxzL3NoZWxsMzIvdGVzdHMvc2hlbGxwYXRoLmM6CisJSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCUZpeCBDU0lETF9DT05UUk9MUyBhbmQgQ1NJRExfUFJJTlRFUlMgUElETCB0eXBlcywgYW5kIHVwZGF0ZSB0ZXN0cyBub3cKKwl0aGF0IHRoZXkgcGFzcy4KKworCSogZGxscy9rZXJuZWwvY29tbS5jLCBkbGxzL3NlcmlhbHVpL01ha2VmaWxlLmluLAorCSAgZGxscy9zZXJpYWx1aS9jb25mZGxnLmMsIGRsbHMvc2VyaWFsdWkvc2VyaWFsdWkuc3BlYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU0VSSUFMVUk6IGNvbnZlcnQgdG8gVW5pY29kZS4KKworCSogdG9vbHMvd2luYXBpL2NfZnVuY3Rpb24ucG0sIHRvb2xzL3dpbmFwaS9jX3BhcnNlci5wbSwKKwkgIHRvb2xzL3dpbmFwaS9jX3R5cGUucG0sIHRvb2xzL3dpbmFwaS9jb25maWcucG0sCisJICB0b29scy93aW5hcGkvZnVuY3Rpb24ucG0sIHRvb2xzL3dpbmFwaS9tYWtlX2ZpbHRlciwKKwkgIHRvb2xzL3dpbmFwaS9tYWtlX3BhcnNlci5wbSwgdG9vbHMvd2luYXBpL21zdmNtYWtlciwKKwkgIHRvb2xzL3dpbmFwaS9vcHRpb25zLnBtLCB0b29scy93aW5hcGkvdGVzdHMucG0sIHRvb2xzL3dpbmFwaS90eXBlLnBtLAorCSAgdG9vbHMvd2luYXBpL3V0aWwucG0sIHRvb2xzL3dpbmFwaS93aW5hcGkucG0sCisJICB0b29scy93aW5hcGkvd2luYXBpX2NoZWNrX29wdGlvbnMucG0sIHRvb2xzL3dpbmFwaS93aW5hcGlfY2xlYW51cCwKKwkgIHRvb2xzL3dpbmFwaS93aW5hcGlfZXh0cmFjdCwgdG9vbHMvd2luYXBpL3dpbmFwaV9maXh1cCwKKwkgIHRvb2xzL3dpbmFwaS93aW5hcGlfZml4dXBfZG9jdW1lbnRhdGlvbi5wbSwKKwkgIHRvb2xzL3dpbmFwaS93aW5hcGlfZml4dXBfZWRpdG9yLnBtLAorCSAgdG9vbHMvd2luYXBpL3dpbmFwaV9maXh1cF9zdGF0ZW1lbnRzLnBtLAorCSAgdG9vbHMvd2luYXBpL3dpbmFwaV9tb2R1bGVfdXNlci5wbSwgdG9vbHMvd2luYXBpL3dpbmFwaV90ZXN0OgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFkZCBmdW5jdGlvbiBwcm90b3R5cGVzLgorCUNoYW5nZSB0aGUgd2F5IGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGFuZCBlaXRoZXIgYWx0ZXIgdGhlaXIgZGVjbGFyYXRpb24KKwlvcmRlciBvciBwcmVkZWNsYXJlIHRoZW0gc28gcGVybCBjYW4gY2hlY2sgdGhlIHByb3RvdHlwZXMuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3RpbWUuYzogUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUNvcnJlY3RseSB1c2UgdGhlIHJldHVybiB2YWx1ZSBvZiBHZXRUaW1lWm9uZUluZm9ybWF0aW9uLgorCisJKiBkbGxzL2NvbWN0bDMyL2RhdGV0aW1lLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJSW1wbGVtZW50IHByb3BlciBHV0xfU1RZTEUgaGFuZGxpbmcsIHByb3BlciByZWFjdGlvbiB0byBzdHlsZSBjaGFuZ2VzLgorCU1lcmdlIHt7SW5jLERlY31yZW1lbnQsUmVzZXR7VXAsRG93bn19RmllbGQgaW50byBvbmUgbWV0aG9kLiBGaXggYQorCWJ1bmNoIG9mIGJ1Z3MgaW4gdGhlIHByb2Nlc3MuICBJbXBsZW1lbnQgRFRNX1tHU11FVE1DRk9OVC4gSW5kZW50YXRpb24KKwlmaXhlcywgY2xlYW51cHMuCisKKzIwMDQtMTAtMjUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIHByb2dyYW1zL3ZpZXcvQ3MucmMsIHByb2dyYW1zL3ZpZXcvdmlld3JjLnJjLCBwcm9ncmFtcy93Y21kL0NzLnJjLAorCSAgcHJvZ3JhbXMvd2NtZC93Y21kcmMucmMsIHByb2dyYW1zL3dpbmVjZmcvQ3MucmMsCisJICBwcm9ncmFtcy93aW5lY2ZnL3dpbmVjZmcucmMsIHByb2dyYW1zL3dpbmVjb25zb2xlL3dpbmVjb25zb2xlX0NzLnJjLAorCSAgcHJvZ3JhbXMvd2luZWNvbnNvbGUvd2luZWNvbnNvbGVfcmVzLnJjLCBwcm9ncmFtcy93aW5lZmlsZS9Dcy5yYywKKwkgIHByb2dyYW1zL3dpbmVmaWxlL3JzcmMucmMsIHByb2dyYW1zL3dpbmVtaW5lL0NzLnJjLAorCSAgcHJvZ3JhbXMvd2luZW1pbmUvcnNyYy5yYywgcHJvZ3JhbXMvd2luaGVscC9Dcy5yYywKKwkgIHByb2dyYW1zL3dpbmhlbHAvcnNyYy5yYzoKKwlEYXZpZCBLcmVkYmEgPGtyZWRiYUBpYm90LmNhcy5jej4KKwlOZXcgQ3plY2ggcmVzb3VyY2VzLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmM6IEp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlBdm9pZCBjb3B5aW5nIGludmFsaWQgZGF0YSBvbiBlcnJvci4KKworCSogdG9vbHMvd2luZWR1bXAvZnVuY3Rpb25fZ3JlcC5wbDogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRml4IHN0cmluZyBoYW5kbGluZy4KKwlFbmFibGUgcGVybCB3YXJuaW5ncworCUFkZCBhIHByb3BlciAtLWhlbHAgb3B0aW9uIGFuZCB1c2FnZS4KKworCSogdG9vbHMvd2luYXBpL21ha2VfZmlsdGVyX29wdGlvbnMucG0sIHRvb2xzL3dpbmFwaS9vcHRpb25zLnBtOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUZpeCB0aGUgdXNhZ2UgZm9yIG5vbi1ib29sZWFuIG9wdGlvbnMsIGFsd2F5cyBwcmludCB0aGUKKwlkZXNjcmlwdGlvbi4gVGhpcyBmaXhlcyB0aGUgb3V0cHV0IG9mICdtYWtlX2ZpbHRlciAtLWhlbHAnLgorCisJKiBpbmNsdWRlL2ltYWdlaGxwLmg6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUluY2x1ZGUgd2ludHJ1c3QuaC4KKworCSogaW5jbHVkZS93aW5jcnlwdC5oOiBNaWNoYWVsIEp1bmcgPG1qdW5nQGlzcy50dS1kYXJtc3RhZHQuZGU+CisJQWRkZWQgZGVmaW5lIGZvciBDVVJfQkxPQl9WRVJTSU9OLgorCisJKiBkbGxzL3VzZXIvZWRpdC5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVVzZSBwcm9wZXIgdHlwZXMvbmFtZXMgaW4gYWxsIGNhc2VzLiBGaXggc29tZSBpbmRlbnRhdGlvbi4KKworCSogZGxscy9tc3ZjcnQvdGVzdHMvdGltZS5jLCBkbGxzL21zdmNydC90aW1lLmM6CisJUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUNvcnJlY3RseSB1c2UgdGhlIHJldHVybmVkIHZhbHVlIGZyb20gR2V0VGltZVpvbmVJbmZvcm1hdGlvbi4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJLSBSZW1vdmUgYm9ndXMgdXNlIG9mIG5TdGF0Q291bnRlciBhbmQgaE9sZUF1dDMyIGluIENvU2V0U3RhdGUuCisJLSBSZW1vdmUgYSBjb21tZW50IGFib3V0IHByb3RlY3RpbmcgcGVyIHRocmVhZCBkYXRhIGJ5IGEgY3JpdGljYWwgc2VjdGlvbi4KKworCSogaW5jbHVkZS90bGhlbHAzMi5oOiBQZXRlciBRdWlyaW5nIDxwcXVpcmluZ0Bob3RtYWlsLmNvbT4KKwlBZGRlZCBIRjMyX0RFRkFVTFQgYW5kIEhGMzJfU0hBUkVEIHZhbHVlcy4KKworCSogZGxscy9jb21jdGwzMi91cGRvd24uYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlVc2Ugb25seSBVbmljb2RlIGZ1bmN0aW9ucywgaXQgbWFrZXMgaXQgZWFzaWVyIHRvIHNlZSB3ZSBhcmUgZnVsbHkKKwlVbmljb2RlIGNvbXBsaWFudC4KKworCSogZG9jdW1lbnRhdGlvbi9pbnRyb2R1Y3Rpb24uc2dtbDogU2NvdHQgUml0Y2hpZSA8c2NvdHRAb3Blbi12b3RlLm9yZz4KKwlSZXZpc2VkIFdpbmUgVXNlciBHdWlkZSBpbnRyb2R1Y3Rpb24uCisKKwkqIGRsbHMva2VybmVsL2Vudmlyb24uYywgZGxscy9rZXJuZWwvcHJvY2Vzcy5jLCBkbGxzL250ZGxsL2Vudi5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gZml4ZWQgdGhlIHdheSBsZW5ndGggb2YgbXN2Y3J0IHJ1bnRpbWUgaW5mbyBpcyBwYXNzZWQKKwktIGFsd2F5cyByZXR1cm4gYSBOVUxMIHJ1bnRpbWUgaW5mbyBidWZmZXIgaW4gY2hpbGQgaWYgcGFyZW50J3MKKwkgIHJ1bnRpbWUgaW5mbyBpcyBOVUxMCisJLSBmaXhlZCB0eXBvIGluIHN0YXJ0dXBpbmZvIHNpemUKKworCSogZGxscy93aW5tbS90ZXN0cy9jYXB0dXJlLmMsIGRsbHMvd2lubW0vdGVzdHMvbWl4ZXIuYzoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCURvbid0IGNvbnNpZGVyIG5vIGRyaXZlciBhIHRlc3QgZmFpbHVyZS4KKworCSogZGxscy9kc291bmQvdGVzdHMvY2FwdHVyZS5jLCBkbGxzL2Rzb3VuZC90ZXN0cy9kc291bmQuYywKKwkgIGRsbHMvZHNvdW5kL3Rlc3RzL2Rzb3VuZDguYzoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCURvbid0IGNvbnNpZGVyIGEgZGV2aWNlIGluIHVzZSBhIGZhaWx1cmUuCisKKwkqIGRsbHMvc2hlbGwzMi90ZXN0cy9zaGxmb2xkZXIuYzogU2FtaSBBYXJpbyA8c2FtaS5hYXJpb0BzdXJmZXUuZmk+CisJQ2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgU0hHZXREZXNrdG9wRm9sZGVyIGNhbGwuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBEb24ndCBmaWxsIGluIGFueSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gbmF0aXZlIGRvZXMgZm9yIG5vdGlmaWNhdGlvbnMuCisJLSBTdG9yZSBoaXQgY29kZSBpbiBhIHNpZ25lZCBpbnRlZ2VyIHNvIHRoYXQgd2UgY2FuIHNlZSB3aGV0aGVyIGl0IGlzCisJICBsZXNzIHRoYW4gemVyby4KKworCSogZGxscy9jb21jdGwzMi90b29sdGlwcy5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBEb24ndCBsZWFrIG1lbW9yeSB3aGVuIGFuIGFwcCBzZW5kcyBUVE1fU0VUVElUTEUgdHdpY2UuCisJLSBBbiBsUGFyYW0gb2YgMCBpbmRpY2F0ZXMgdGhhdCB0aGUgdGl0bGUgc2hvdWxkIGJlIHJlbW92ZWQuCisKKwkqIGRvY3VtZW50YXRpb24vd2luZS5jb25mLm1hbjogTWljaGFlbCBTdGVmYW5pdWMgPG1zdGVmYW5pQHJlZGhhdC5kZT4KKwktIEFkZCBpbmZvIHRoYXQgdGhlIHdpbmUgY29uZmlnIGZpbGUgaGFzL25lZWRzIGEgaGVhZGVyIGxpbmUuCisJLSBSZW1vdmUgc29tZSBpbmZvcyByZWdhcmRpbmcgZW50cmllcyB3aGljaCB3ZXJlIHJlbW92ZWQgbGF0ZWx5IGZyb20KKwkgIHRoZSBjb25maWcgZmlsZS4KKworCSogZGxscy9zZXR1cGFwaS9kaXJpZC5jOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJVXNlIHNoZWxsMzIgdG8gZ2V0IHRoZSB1c2VyIHByb2ZpbGUgZGlyLgorCisJKiBkbGxzL2FkdmFwaTMyL3NlY3VyaXR5LmM6IEp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlVcGRhdGUgY29tbWVudCBmb3IgTHNhT3BlblBvbGljeS4KKworMjAwNC0xMC0yMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9hdmlmaWwzMi9leHRyYWNodW5rLmMsIGRsbHMvY29tY3RsMzIvdGVzdHMvaW1hZ2VsaXN0LmMsCisJICBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsIGRsbHMvZHBsYXl4L2RwbGF5eF9tZXNzYWdlcy5oLAorCSAgZGxscy9rZXJuZWwvaGVhcC5jLCBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9zaGVsbDMyL3NobGZpbGVvcC5jLAorCSAgZGxscy93aW5lZDNkL2RldmljZS5jLCBkbGxzL3dpbmVkM2QvZGlyZWN0eC5jLCBkbGxzL3dpbmVkb3MvaW50MjEuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBc3NvcnRlZCBzcGVsbGluZyBmaXhlcy4KKworCSogZGxscy9vbGVhdXQzMi90eXBlbGliLmMsIGRsbHMvb2xlYXV0MzIvdHlwZWxpYjIuYzoKKwlDb252ZXJ0ZWQgbW9yZSBvZiB0aGUgKFVuKVJlZ2lzdGVyVHlwZUxpYiBjb2RlIHRvIFVuaWNvZGUuCisJRmFjdG9yZWQgb3V0IHNvbWUgY29tbW9uIHJvdXRpbmVzLgorCisJKiB3aW5kb3dzL21zZ2JveC5jOgorCVJlbW92ZWQgd3JvbmcgRklYTUUgZm9yIE1CX0FQUExNT0RBTCAocmVwb3J0ZWQgYnkgSXZhbiBMZW8gUHVvdGkpLgorCisJKiB0b29scy90ZXN0cnVuOiBHZXQgcmlkIG9mIHRoaXMgb2Jzb2xldGUgc2NyaXB0LgorCisJKiB0b29scy93aW5lLmluZjogSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCVNoZWxsIHJlZ2lzdHJ5IGVudHJpZXMgYXJlIG5vdyBjcmVhdGVkIGJ5IHNoZWxsMzIsIGRvbid0IGhhcmRjb2RlIHRoZW0KKwlpbiB3aW5lLmluZi4KKworCSogZGxscy9tc2kvYWN0aW9uLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJRG9uJ3QgcmVyZWdpc3RlciBQcm9nSWRzIG92ZXIgYW5kIG92ZXIsIGFsc28gd3JpdGUgb3V0IHRoZSBtYWluIGtleQorCWJlZm9yZSB0cnlpbmcgdG8gcmVnaXN0ZXIgdGhlIFBhcmVudC4gVGhpcyBhdm9pZHMgbG9vcHMgaWYgYSBQcm9nSWQKKwloYXMgaXRzZWxmIGFzIGEgcGFyZW50IG9yIHRoZXJlIGlzIGEgbG9vcCBpbiBkZXBlbmRlbmNpZXMuCisKKwkqIHRvb2xzL3dpbmVjb25mOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBZGQgZnVuY3Rpb24gcHJvdG90eXBlcy4KKwlDaGFuZ2UgdGhlIHdheSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBhbmQgdGhlaXIgZGVjbGFyYXRpb24gb3JkZXIgc28KKwlwZXJsIGNhbiBjaGVjayB0aGUgcHJvdG90eXBlcy4KKworCSogZGxscy9wc2FwaS90ZXN0cy9tb2R1bGUuYzoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlGaXhlZCBHZXRNb2R1bGVCYXNlTmFtZUEgdGVzdHMgZm9yIFdpblhQLgorCisJKiBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVVzZSBVbmljb2RlIGZ1bmN0aW9ucyBpbiBSZWdpc3RlclR5cGVMaWIuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9tc2cuYywgZGxscy94MTFkcnYva2V5Ym9hcmQuYywgaW5jbHVkZS93aW51c2VyLmg6CisJVktfMC05IGFuZCBWS19BLVogYXJlIG5vdCBkZWZpbmVkIGluIHRoZSBXaW5kb3dzIGhlYWRlcnMsIHJlbW92ZWQgdGhlbQorCShzcG90dGVkIGJ5IEZyYW5jb2lzIEdvdWdldCkuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbHBhdGguYzogQXZvaWQgY29weWluZyBpbnZhbGlkIGRhdGEgb24gZXJyb3IuCisKKwkqIGRsbHMvc2hlbGwzMi90ZXN0cy9zaGVsbHBhdGguYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRml4IHRoZSBmdW5jdGlvbiBwb2ludGVyIGRlY2xhcmF0aW9ucyBzbyBNU1ZDIGxpa2VzIHRoZW0uCisJQ1NJRExfUFJPRklMRVMgaXMgbm90IGRlZmluZWQgaW4gdGhlIFdpbmRvd3MgU0RLLgorCXNucHJpbnRmIGFuZCBzdHJjYXNlY21wIGRvbid0IGV4aXN0IG9uIFdpbmRvd3MuIFJlcGxhY2UgdGhlbSB3aXRoCisJd25zcHJpbnRmQSBhbmQgbHN0cmNtcGlBIHJlc3BlY3RpdmVseS4KKworCSogaW5jbHVkZS93aW5iYXNlLmg6CisJRml4ZWQgZGVmaW5pdGlvbiBvZiBNQVhfQ09NUFVURVJOQU1FX0xFTkdUSCAoc3BvdHRlZCBieSBNaWtlCisJTWNDb3JtYWNrKS4KKworCSogZGxscy9tc2Ntcy9oYW5kbGUuYywgZGxscy9tc2Ntcy9tc2Ntc19tYWluLmMsIGRsbHMvbXNjbXMvcHJvZmlsZS5jLAorCSAgZGxscy9tc2Ntcy90ZXN0cy9wcm9maWxlLmMsIGluY2x1ZGUvaWNtLmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRmxlc2ggb3V0IHRoZSBpY20uaCBoZWFkZXIgKGFkZCBDT0xPUk1BVENIU0VUVVAgJiBjbykgc28gaXQgaXMKKwluZWNlc3NhcnkgdG8gZmlyc3QgaW5jbHVkZSB3aW51c2VyLmggbGlrZSBvbiBXaW5kb3dzLgorCisJKiB0b29scy93aW5hcGkvY19wYXJzZXIucG0sIHRvb2xzL3dpbmFwaS9tYWtlX3BhcnNlci5wbSwKKwkgIHRvb2xzL3dpbmFwaS9tc3ZjbWFrZXIsIHRvb2xzL3dpbmFwaS93aW5hcGkucG0sCisJICB0b29scy93aW5hcGkvd2luYXBpX2V4dHJhY3QsIHRvb2xzL3dpbmFwaV9jaGVjay9tb2R1bGVzLnBtLAorCSAgdG9vbHMvd2luYXBpX2NoZWNrL25hdGl2ZWFwaS5wbSwgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaV9jaGVjaywKKwkgIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfZnVuY3Rpb24ucG0sCisJICB0b29scy93aW5hcGlfY2hlY2svd2luYXBpX2xvY2FsLnBtOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCVJldmlldyBhbmQgZml4IHJlZ3VsYXIgZXhwcmVzc2lvbnMgb2YgdGhlIGZvcm0gL15mb298YmFyJC8uCisJUmVwbGFjZSByZWd1bGFyIGV4cHJlc3Npb25zIHdpdGggc2ltcGxlIHN0cmluZyBjb21wYXJpc29ucyB3aGVyZQorCXBvc3NpYmxlLgorCVVzZSAnKD86c3VicmVnZXhwKScgaW5zdGVhZCBvZiAnKHN1YnJlZ2V4cCknIHdoZXJldmVyIHBvc3NpYmxlLgorCSdkbGxzL2dkaScgZG9lcyBub3QgaGF2ZSBhIHdpbjE2ZHJ2IHN1YmRpcmVjdG9yeSBhbnltb3JlIHNvIHNpbXBsaWZ5CisJcmVndWxhciBleHByZXNzaW9ucyBhY2NvcmRpbmdseS4KKworCSogZGxscy9rZXJuZWwvaGVhcC5jLCBkbGxzL2tlcm5lbC9uZV9tb2R1bGUuYywgZGxscy9rZXJuZWwvc2VsZWN0b3IuYywKKwkgIGRsbHMva2VybmVsL3RodW5rLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJVGhlcmUgaXMgbm8gcG9pbnQgbWFraW5nICctLXJlZ2lzdGVyJyBmdW5jdGlvbnMgc3RkY2FsbCBzbyBqdXN0CisJaW1wbGVtZW50IHRoZW0gYXMgY2RlY2wuCisKKwkqIGRsbHMvc2hsd2FwaS90ZXN0cy9vcmRpbmFsLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJRml4ZWQgR2V0QWNjZXB0TGFuZ3VhZ2VzQSB0ZXN0cyBmb3IgV2luWFAuCisKKwkqIGRsbHMvbnRkbGwvdGVzdHMvLmN2c2lnbm9yZSwgZGxscy9udGRsbC90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvbnRkbGwvdGVzdHMvdGltZS5jLCBkbGxzL250ZGxsL3RpbWUuYzoKKwlSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJQ29ycmVjdCB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIHllYXIgZm9yIHRoZSAzMSdzdCBvZiBEZWNlbWJlciBvZiAyMDAwCisJYW5kIGV2ZXJ5IDQwMCB5ZWFycyBhZnRlciB0aGF0LiBBZGQgYSB0ZXN0IHVzZWQgdG8gZmluZCB0aGlzIGJ1Zy4KKworCSogcHJvZ3JhbXMvd2luZWZpbGUvd2luZWZpbGUuYzogTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwlGaXggaW5kZW50aW5nIG9mIGxhc3QgcGF0Y2ggKHRhYnMgaW5zdGVhZCBvZiBzcGFjZXMpLgorCisJKiBkbGxzL3NoZWxsMzIvdGVzdHMvLmN2c2lnbm9yZSwgZGxscy9zaGVsbDMyL3Rlc3RzL01ha2VmaWxlLmluLAorCSAgZGxscy9zaGVsbDMyL3Rlc3RzL3NoZWxsbGluay5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgYSB0ZXN0IGZvciBjcmVhdGluZyBlbXB0eSBzaGVsbGxpbmsgZmlsZXMuCisKKwkqIGRsbHMvY29tY3RsMzIvZGF0ZXRpbWUuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlBdWRpdCB0aGUgRGF0ZSBUaW1lIENvbnRyb2wuIFVuaWNvZGlmaWNhdGlvbi4KKwlUeXBlIHNhZmUgZnVuY3Rpb25zIChwYXNzIGluZm9QdHIgYW5kIHR5cGUgc2FmZSB2YWx1ZXMgYXJvdW5kKS4KKwlTb21lIGNsZWFudXAgYW5kIGluZGVudGF0aW9uIGZpeGVzLgorCisJKiBkbGxzL2Rzb3VuZC90ZXN0cy9jYXB0dXJlLmMsIGRsbHMvZHNvdW5kL3Rlc3RzL2Rzb3VuZF90ZXN0Lmg6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlEb24ndCBjb25zaWRlciBhIGJhZCBmb3JtYXQgYW4gZXJyb3IgdW5sZXNzIHRoZSBjYXBhYmlsaXRpZXMgc2F5IGl0CisJc2hvdWxkIGJlIHN1cHBvcnRlZC4KKwlEb24ndCBjb25zaWRlciBhIGRldmljZSBhbHJlYWR5IGluIHVzZSBhbiBlcnJvci4KKworMjAwNC0xMC0yMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9zaGVsbDMyL3NobGZpbGVvcC5jOgorCVJvbGYgS2FsYmVybWF0dGVyIDxyb2xmLmthbGJlcm1hdHRlckBjaXRlbmcuY29tPgorCS0gU0hDcmVhdGVEaXJlY3Rvcnkgc2hvdWxkIGNyZWF0ZSBpbnRlcm1lZGlhdGUgZGlyZWN0b3JpZXMgaWYKKwkgIG5lY2Vzc2FyeS4KKwktIFJlbW92ZSBleHRyYSBib29sZWFuIHBhcmFtZXRlciBpbiBTSE5vdGlmeU1vdmVGaWxlIGFzIGl0IGlzIG5vdAorCSAgdXNlZC4KKwktIFVzZSBpbiBTSEZpbGVPcGVyYXRpb24gdGhlIGZ1bmN0aW9uIFNITm90aWZ5Q3JlYXRlRGlyZWN0b3J5IGluc3RlYWQKKwkgIG9mIFNIQ3JlYXRlRGlyZWN0b3J5RXggYXMgaXQgZG9lcyBub3QgYW55bW9yZSB3aGF0IGlzIG5lZWRlZCBoZXJlLgorCS0gRml4IHNldmVyYWwgdW5zaWduZWQvc2lnbmVkIG1pc21hdGNoIHdhcm5pbmdzLgorCisJKiB0b29scy93aW5hcGkvd2luMzIuYXBpOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlTdGFuZGFyZGl6ZSBvbiAnJWxvbmcgLS1wb2ludGVyJy4KKwlVcGRhdGUgaXQgdG8gbWF0Y2ggdGhlIGxhdGVzdCBzb3VyY2UuIEZpeGVzIG1hbnkgd2luYXBpX2NoZWNrCisJd2FybmluZ3MuCisKKwkqIGRsbHMvY29tY3RsMzIvbW9udGhjYWwuYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJTW9udGhjYWxfU2V0UmFuZ2U6IFNldCBwcm9wZXIgdmFsdWUgZm9yIG1pbiBkYXRlLgorCisJKiBkb2N1bWVudGF0aW9uL3NhbXBsZXMvY29uZmlnOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVJlbW92ZSBlbnYgdmFsdWVzIGZyb20gY29uZmlnLCB0aGV5IGFyZSBub3cgbWFpbnRhaW5lZCBpbiB0aGUKKwlyZWdpc3RyeS4KKworCSogZGxscy93aW50cnVzdC93aW50cnVzdF9tYWluLmMsIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvbXNjYXQuaCwKKwkgIGluY2x1ZGUvd2luY3J5cHQuaCwgaW5jbHVkZS93aW50cnVzdC5oLCB0b29scy93aW5hcGkvd2luMzIuYXBpOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUZpeCBzb21lIGlzc3VlcyByZXBvcnRlZCBieSB3aW5hcGlfY2hlY2s6CisJQWRkIG1zY2F0LmggYW5kIHdpbnRydXN0Lmg7IHVwZGF0ZSB3aW5jcnlwdC5oLgorCUZpeCB0aGUgQ3J5cHRDQVRBZG1pbkFjcXVpcmVDb250ZXh0KCkgYW5kIFdpblZlcmlmeVRydXN0KCkgcHJvdG90eXBlcworCXNvIHRoZXkgdXNlIHRoZSBwcm9wZXIgdHlwZXMuCisJVXBkYXRlIHRoZSB3aW50cnVzdCBzZWN0aW9uIG9mIHdpbjMyLmFwaS4KKworCSogZGxscy9jb21jdGwzMi9jb21ib2V4LmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBbHdheXMgcmVtb3ZlIFdTX0JPUkRFUiBzdHlsZSBmcm9tIENvbWJvQm94RXggY29udHJvbC4KKworCSogZGxscy9zaGVsbDMyL3NobGV4ZWMuYzogR2UgdmFuIEdlbGRvcnAgPGd2Z0ByZWFjdG9zLmNvbT4KKwktIERvbid0IGRvdWJsZS1xdW90ZSBhbiBhbHJlYWR5IGRvdWJsZS1xdW90ZWQgYXJndW1lbnQuCisJLSBQcm9wZXJseSBpbmNyZW1lbnQgdGhlIGZtdCBwb2ludGVyLgorCisJKiBkbGxzL2QzZDkvZGV2aWNlLmMsIGRsbHMvd2luZWQzZC9NYWtlZmlsZS5pbiwgZGxscy93aW5lZDNkL2RldmljZS5jLAorCSAgZGxscy93aW5lZDNkL2RpcmVjdHguYywgZGxscy93aW5lZDNkL3N0YXRlYmxvY2suYywKKwkgIGRsbHMvd2luZWQzZC93aW5lZDNkX3ByaXZhdGUuaCwgaW5jbHVkZS93aW5lL3dpbmVkM2RfaW50ZXJmYWNlLmg6CisJSmFzb24gRWRtZWFkZXMgPHVzQHRoZS1lZG1lYWRlcy5kZW1vbi5jby51az4KKwlJbXBsZW1lbnQgdGhlIGJlZ2lubmluZ3Mgb2YgdGhlIHN0YXRlYmxvY2sgY2xhc3MsIGFuZCBhIGZpcnN0IG1ldGhvZAorCXRvIHVzZSBpdC4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IFRob3JzdGVuIEthbmkgPGJlZWJpeEBnbXgubmV0PgorCURvbid0IGFkZCBleHRyYSBPRkZTRVRfWC9ZIHRvIHRoZSBjYWxjdWxhdGlvbiBvZiByY0JpdG1hcC50b3AvbGVmdCwKKwlqdXN0IHVzZSBHZXRTeXN0ZW1NZXRyaWNzLgorCisJKiB0b29scy93aW5hcGlfY2hlY2svd2luYXBpX2xvY2FsLnBtOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlXYXJuIGFib3V0IGltcGxlbWVudGluZyBhIC1yZWdpc3RlciBmdW5jdGlvbiBhcyBzdGRjYWxsLgorCisJKiB0b29scy93aW5hcGlfY2hlY2svd2luYXBpX2NoZWNrOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBZGQgc3VwcG9ydCBmb3IgaW5jbHVkZS9tc3ZjcnQuIEZpeGVzIGEgYnVuY2ggb2Ygc3B1cmlvdXMgd2FybmluZ3MuCisJUmVtb3ZlIGtsdWRnZXMgZm9yIGtlcm5lbF9wcml2YXRlLmgsIGdkaV9wcml2YXRlLmgsIG50ZGxsX21pc2MuaCwKKwl0c194bGliLmgsIHgxMWRydi5oIGFuZCB4MTFmb250LmguIFRoZXkgYXJlIG5vdCBuZWVkZWQgYW55bW9yZS4KKworCSogZGxscy9kc291bmQvY2FwdHVyZS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCVRyYWlsaW5nIHdoaXRlIHNwYWNlIGNsZWFudXAuCisJQWRkIElDbGFzc0ZhY3RvcnktPkNyZWF0ZUluc3RhbmNlIGFnZ3JlZ2F0aW9uIGNoZWNrcy4KKwlJSURfSURpcmVjdFNvdW5kQ2FwdHVyZSBhbmQgSUlEX0lEaXJlY3RTb3VuZENhcHR1cmU4IGFyZSBzYW1lIHNvCisJcmVtb3ZlIHJlZHVuZGFudCBjaGVjay4KKwlBbGxvY2F0ZSBjYXB0dXJlIGJ1ZmZlciBmb3IgaHcgZHJpdmVyIGlmIG5lY2Vzc2FyeS4KKworCSogZGxscy9hZHZhcGkzMi9zZXJ2aWNlLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnQgQ2hhbmdlU2VydmljZUNvbmZpZzJBIHVzaW5nIENoYW5nZVNlcnZpY2VDb25maWcyVy4KKworCSogZGxscy9zaGVsbDMyL3JlZ3N2ci5jLCBkbGxzL3NoZWxsMzIvc2hlbGwzMl9Fbi5yYywKKwkgIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uaCwgZGxscy9zaGVsbDMyL3NoZWxscGF0aC5jLAorCSAgZGxscy9zaGVsbDMyL3NocmVzZGVmLmgsIGRsbHMvc2hlbGwzMi90ZXN0cy8uY3ZzaWdub3JlLAorCSAgZGxscy9zaGVsbDMyL3Rlc3RzL01ha2VmaWxlLmluLCBkbGxzL3NoZWxsMzIvdGVzdHMvc2hlbGxwYXRoLmMsCisJICBpbmNsdWRlL3dpbnVzZXIuaDoKKwlKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJLSB0aGUgY29ycmVjdCByZWdpc3RyeSBsb2NhdGlvbiB0byBvdmVycmlkZSBpcyBVc2VyIFNoZWxsIEZvbGRlcnMsIG5vdAorCSAgU2hlbGwgRm9sZGVycworCS0gaWYgVXNlciBTaGVsbCBGb2xkZXJzIGRvZXNuJ3QgZXhpc3QgaW4gSEtDVSwgSEtMTSBzaG91bGQgYmUgdHJpZWQKKwktIFNIR2V0U3BlY2lhbEZvbGRlclBhdGggc2hvdWxkIGNhbGwgU0hHZXRGb2xkZXJQYXRoLCBub3QgdmljZS12ZXJzYQorCS0gdGhlIGRlZmF1bHQgdmFsdWVzIHNob3VsZCBiZSBsb2NhbGl6YWJsZQorCS0gc29tZSBvZiB0aGUgcGFyYW1ldGVyIGNoZWNraW5nIGFuZCByZXR1cm5lZCBMUElURU1JRExJU1RzIHdlcmUgYSBiaXQKKwkgIG9mZgorCisJKiB0b29scy9tYWtlX3JlcXVlc3RzOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlEZWNsYXJlIERPX0RVTVBfRlVOQygpIGJlZm9yZSBjYWxsaW5nIGl0IGFuZCBjYWxsIG5vcm1hbGx5IHNvIHRoYXQKKwlwZXJsIGNhbiBjaGVjayBpdHMgcHJvdG90eXBlLgorCisJKiB0b29scy9tYWtlX2F1dGhvcnM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCVN0cmljdGlmaWVkLgorCisJKiBkbGxzL3dpbm1tL3dpbmVhdWRpb2lvL2F1ZGlvaW8uYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJUmVtb3ZlIEhBVkVfTElCQVVESU9JT19NSURJIGFuZCBMSUJBVURJT0lPX01pZGlJbml0KCkuCisKKwkqIGRsbHMvZGJnaGVscC9kYmdoZWxwLnNwZWMsIGRsbHMvZGJnaGVscC9wYXRoLmMsCisJICBkbGxzL2RiZ2hlbHAvc291cmNlLmMsIGRsbHMvZGJnaGVscC90eXBlLmMsIHRvb2xzL3dpbmFwaS93aW4zMi5hcGk6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRml4IHRoZSBkZWNsYXJhdGlvbiBvZiBTeW1FbnVtU3ltYm9scygpIGluIGRiZ2hlbHAuc3BlYy4KKwlVc2UgUFZPSUQgaW5zdGVhZCBvZiB2b2lkKiBmb3IgY29uc2lzdGVuY3kuCisJVXBkYXRlIHRoZSBkYmdoZWxwIHNlY3Rpb24gaW4gd2luMzIuYXBpLgorCisJKiB0b29scy93aW5hcGlfY2hlY2svd2luYXBpX2xvY2FsLnBtOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlNYWtlIHRoZSAnd3JvbmcgYXJndW1lbnQgY291bnQnIHdhcm5pbmcgY2xlYXJlciB3aGVuIGRlYWxpbmcgd2l0aCBsb25nCisJdnMuICJsb25nIGxvbmciIGlzc3Vlcy4KKworCSogZGxscy9udGRsbC90aW1lLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlDb3JyZWN0IHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgeWVhciBmb3IgdGhlIDMxJ3N0IG9mIERlY2VtYmVyIG9mIGxlYXAKKwl5ZWFycy4KKworCSogZGxscy9tc3ZjcnQvbXN2Y3J0LmgsIGRsbHMvbXN2Y3J0L3RpbWUuYzoKKwlSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJLSBta3RpbWUgc2hvdWxkIGNvbXB1dGUgdGhlIHRtX3dkYXksIHRtX3lkYXkgYW5kIHJlbm9ybWFsaXplIHRoZQorCSAgb3RoZXIgZmllbGRzIG9mIHRoZSBzdXBwbGllZCB0bSBzdHJ1Y3R1cmUuCisJLSBhZGQgcHJvdG90eXBlIGRlY2xhcmF0aW9ucyBmb3IgdGhlIHRpbWUgZnVuY3Rpb25zLgorCisJKiBkbGxzL2NvbWN0bDMyL3JlYmFyLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlDb3JyZWN0IHRoZSBkYXRlIG9mIHRoZSBjb21wbGV0ZW5lc3MgYXVkaXQuCisKKwkqIGluY2x1ZGUvd2luc3ZjLmg6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEZWZpbmUgU0VSVklDRV9OT19DSEFOR0UgYW5kIFJlZ2lzdGVyU2VydmljZUN0cmxIYW5kbGVyRXguCisKKwkqIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfcGFyc2VyLnBtOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUZpeCBlc2NhcGVkIHF1b3RlIGhhbmRsaW5nIGluIHN0cmluZ3MuCisJUHJvcGVybHkgaGFuZGxlIEMgYW5kIEMrKyBjb21tZW50IHBhcnNpbmcuCisKKwkqIGRsbHMvb2xlYXV0MzIvdGVzdHMvdmFydGVzdC5jLCBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYzoKKwlXYWx0IE9nYnVybiA8cmV1YmVuQHVnY3MuY2FsdGVjaC5lZHU+CisJVmFyUGFyc2VOdW1Gcm9tU3RyOiBLZWVwIHplcm9zIGFmdGVyIGRlY2ltYWwgcG9pbnQsIGNvcnJlY3RseSBrZWVwCisJdHJhY2sgb2YgdHJhaWxpbmcgemVyb3MgaW4gYSBkZWNpbWFsIG51bWJlci4KKwlWYXJOdW1Gcm9tUGFyc2VOdW06IERvbid0IGVycm9yIG9uIGRlY2ltYWwgZXhwcmVzc2lvbnMgZm9yIHplcm8uCisKKwkqIGluY2x1ZGUvc2hlbGxhcGkuaDogUm9sZiBLYWxiZXJtYXR0ZXIgPHJvbGYua2FsYmVybWF0dGVyQGNpdGVuZy5jb20+CisJQWRkIHByb3RvdHlwZSBmb3IgU0hGcmVlTmFtZU1hcHBpbmdzLgorCisJKiBkbGxzL3gxMWRydi93aW50YWIuYzogUm9iZXJ0IE5vcnRoIDw3b3ducTBrNDAyQHNuZWFrZW1haWwuY29tPgorCUZpeCBXVEluZm9BIGluIHdpbnRhYi5jIHNvIGl0IGNhbiBub3cgdGFrZSBscE91dHB1dCA9PSBOVUxMLCBhcyBwZXIKKwlzdGFuZGFyZC4KKworCSogZGxscy9jb21jdGwzMi9tb250aGNhbC5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUF1ZGl0IHRoZSBtb250aCBjYWxlbmRhci4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIERyYXcgd2l0aCBJTERfVFJBTlNQQVJFTlQgaW5zdGVhZCBvZiBJTERfTk9STUFMIHRvIGRyYXcgYml0bWFwcyBmcm9tCisJICB0aGUgbmF0aXZlIHNoZWxsIGltYWdlIGxpc3QgcHJvcGVybHkgKHJlcG9ydGVkIGJ5IFRob3JzdGVuIEthbmkpLgorCS0gUmV3cml0ZSBUT09MQkFSX05vdGlmeUZvcm1hdCB0byBhdm9pZCBzaWRlLWVmZmVjdHMuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IENoYW5nZVNlcnZpY2VDb25maWdBIHVzaW5nIENoYW5nZVNlcnZpY2VDb25maWdXLgorCisJKiBwcm9ncmFtcy93aW5lZmlsZS9EZS5yYywgcHJvZ3JhbXMvd2luZWZpbGUvRW4ucmMsCisJICBwcm9ncmFtcy93aW5lZmlsZS9yZXNvdXJjZS5oLCBwcm9ncmFtcy93aW5lZmlsZS93aW5lZmlsZS5jOgorCU1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJLSB1c2UgSURfU0VMRUNUX0ZPTlQgaW4gZ2VybWFuIG1lbnUKKwktIG1vdmUgc3RyaW5nIGNvbnN0YW50cyBpbnRvIHN0cmluZyByZXNvdXJjZXMKKworCSogZGxscy9kc291bmQvdGVzdHMvZHMzZC5jLCBkbGxzL2Rzb3VuZC90ZXN0cy9kczNkOC5jLAorCSAgZGxscy9kc291bmQvdGVzdHMvZHNvdW5kLmMsIGRsbHMvZHNvdW5kL3Rlc3RzL2Rzb3VuZDguYywKKwkgIGRsbHMvZHNvdW5kL3Rlc3RzL3Byb3BzZXQuYzoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCURvbid0IGNvbnNpZGVyIGEgZGV2aWNlIHRoYXQgaXMgYWxyZWFkeSBpbiB1c2UgYSB0ZXN0IGZhaWx1cmUuCisKKzIwMDQtMTAtMTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIEFOTk9VTkNFLCBDaGFuZ2VMb2csIFZFUlNJT04sIGNvbmZpZ3VyZTogUmVsZWFzZSAyMDA0MTAxOS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMjAwNC0xMC0xOSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KIAogCSogZGxscy9jb21tZGxnL2ZpbGVkbGcuYywgZGxscy9rZXJuZWwvcHJvY2Vzcy5jLCBkbGxzL2tlcm5lbC9zeW5jLmMsCmRpZmYgLS1naXQgYS9WRVJTSU9OIGIvVkVSU0lPTgppbmRleCAzYTI4MGFkLi44ZDFlNzU5IDEwMDY0NAotLS0gYS9WRVJTSU9OCisrKyBiL1ZFUlNJT04KQEAgLTEgKzEgQEAKLVdpbmUgdmVyc2lvbiAyMDA0MTAxOQorV2luZSB2ZXJzaW9uIDIwMDQxMjAxCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggY2NhNTVjYi4uM2Y3NDc2OSAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMSw2ICsxLDYgQEAKICMhIC9iaW4vc2gKICMgR3Vlc3MgdmFsdWVzIGZvciBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyBhbmQgY3JlYXRlIE1ha2VmaWxlcy4KLSMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5IGZvciBXaW5lIDIwMDQxMDE5LgorIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkgZm9yIFdpbmUgMjAwNDEyMDEuCiAjCiAjIFJlcG9ydCBidWdzIHRvIDx3aW5lLWRldmVsQHdpbmVocS5vcmc+LgogIwpAQCAtMjY5LDggKzI2OSw4IEBACiAjIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KIFBBQ0tBR0VfTkFNRT0nV2luZScKIFBBQ0tBR0VfVEFSTkFNRT0nd2luZScKLVBBQ0tBR0VfVkVSU0lPTj0nMjAwNDEwMTknCi1QQUNLQUdFX1NUUklORz0nV2luZSAyMDA0MTAxOScKK1BBQ0tBR0VfVkVSU0lPTj0nMjAwNDEyMDEnCitQQUNLQUdFX1NUUklORz0nV2luZSAyMDA0MTIwMScKIFBBQ0tBR0VfQlVHUkVQT1JUPSd3aW5lLWRldmVsQHdpbmVocS5vcmcnCiAKIGFjX3VuaXF1ZV9maWxlPSJzZXJ2ZXIvYXRvbS5jIgpAQCAtNzg4LDcgKzc4OCw3IEBACiAgICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgogICAjIFRoaXMgbWVzc2FnZSBpcyB0b28gbG9uZyB0byBiZSBhIHN0cmluZyBpbiB0aGUgQS9VWCAzLjEgc2guCiAgIGNhdCA8PF9BQ0VPRgotXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgV2luZSAyMDA0MTAxOSB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCitcYGNvbmZpZ3VyZScgY29uZmlndXJlcyBXaW5lIDIwMDQxMjAxIHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KIAogVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtWQVI9VkFMVUVdLi4uCiAKQEAgLTg1Myw3ICs4NTMsNyBAQAogCiBpZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgogICBjYXNlICRhY19pbml0X2hlbHAgaW4KLSAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFdpbmUgMjAwNDEwMTk6Ijs7CisgICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBXaW5lIDIwMDQxMjAxOiI7OwogICAgZXNhYwogICBjYXQgPDxcX0FDRU9GCiAKQEAgLTk4NCw3ICs5ODQsNyBAQAogdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAwCiBpZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCiAgIGNhdCA8PFxfQUNFT0YKLVdpbmUgY29uZmlndXJlIDIwMDQxMDE5CitXaW5lIGNvbmZpZ3VyZSAyMDA0MTIwMQogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5CiAKIENvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTk5OCw3ICs5OTgsNyBAQAogVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKIHJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCiAKLUl0IHdhcyBjcmVhdGVkIGJ5IFdpbmUgJGFzX21lIDIwMDQxMDE5LCB3aGljaCB3YXMKK0l0IHdhcyBjcmVhdGVkIGJ5IFdpbmUgJGFzX21lIDIwMDQxMjAxLCB3aGljaCB3YXMKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwogCiAgICQgJDAgJEAKQEAgLTIwNTMxLDcgKzIwNTMxLDcgQEAKIH0gPiY1CiBjYXQgPiY1IDw8X0NTRU9GCiAKLVRoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgV2luZSAkYXNfbWUgMjAwNDEwMTksIHdoaWNoIHdhcworVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBXaW5lICRhc19tZSAyMDA0MTIwMSwgd2hpY2ggd2FzCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKIAogICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCkBAIC0yMDU5NCw3ICsyMDU5NCw3IEBACiAKIGNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCiBhY19jc192ZXJzaW9uPSJcXAotV2luZSBjb25maWcuc3RhdHVzIDIwMDQxMDE5CitXaW5lIGNvbmZpZy5zdGF0dXMgMjAwNDEyMDEKIGNvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OSwKICAgd2l0aCBvcHRpb25zIFxcImBlY2hvICIkYWNfY29uZmlndXJlX2FyZ3MiIHwgc2VkICdzL1tcXCIiXGBcJF0vXFxcXCYvZydgXFwiCiAK