ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggM2Q4MzljNi4uZWZmNjk0MCAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsNCArMSw0IEBACi1UaGlzIGlzIHJlbGVhc2UgMjAwMDAxMzAgb2YgV2luZSwgYSBmcmVlIGltcGxlbWVudGF0aW9uIG9mIFdpbmRvd3Mgb24KK1RoaXMgaXMgcmVsZWFzZSAyMDAwMDIyNyBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgogVW5peC4gIFRoaXMgaXMgc3RpbGwgYSBkZXZlbG9wZXJzIG9ubHkgcmVsZWFzZS4gIFRoZXJlIGFyZSBtYW55IGJ1Z3MKIGFuZCB1bmltcGxlbWVudGVkIGZlYXR1cmVzLiAgTW9zdCBhcHBsaWNhdGlvbnMgc3RpbGwgZG8gbm90IHdvcmsKIGNvcnJlY3RseS4KQEAgLTYsMTAgKzYsMTAgQEAKIFBhdGNoZXMgc2hvdWxkIGJlIHN1Ym1pdHRlZCB0byAianVsbGlhcmRAbHJjLmVwZmwuY2giLiAgUGxlYXNlIGRvbid0CiBmb3JnZXQgdG8gaW5jbHVkZSBhIENoYW5nZUxvZyBlbnRyeS4KIAotV0hBVCdTIE5FVyB3aXRoIFdpbmUtMjAwMDAxMzA6IChzZWUgQ2hhbmdlTG9nIGZvciBkZXRhaWxzKQotCS0gUmVnaXN0cnkgYW5kIE5URExMIGltcHJvdmVtZW50cy4KLQktIEZpcnN0IHN0ZXBzIHRvd2FyZHMgYWRkcmVzcyBzcGFjZSBzZXBhcmF0aW9uLgotCS0gUmVhZCBkcml2ZSBsYWJlbHMgZGlyZWN0bHkgZnJvbSBkZXZpY2UuCitXSEFUJ1MgTkVXIHdpdGggV2luZS0yMDAwMDIyNzogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCisJLSBNb3N0IGJ1aWx0aW4gRExMcyBhcmUgbm93IHNlcGFyYXRlIHNoYXJlZCBsaWJyYXJpZXMuCisJLSBUb25zIG9mIGNvZGUgbWVyZ2VkIGZyb20gdGhlIENvcmVsIHRyZWUuCisJLSBNYW55IG1vcmUgY29tbW9uIGNvbnRyb2xzIGFuZCBzaGVsbCBzdHVmZi4KIAktIExvdHMgb2YgYnVnIGZpeGVzLgogCiBTZWUgdGhlIFJFQURNRSBmaWxlIGluIHRoZSBkaXN0cmlidXRpb24gZm9yIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuCkBAIC0xOCwxMCArMTgsMTAgQEAKIHRoZSByZWxlYXNlIGlzIGF2YWlsYWJsZSBhdCB0aGUgZnRwIHNpdGVzLiAgVGhlIHNvdXJjZXMgd2lsbCBiZSBhdmFpbGFibGUKIGZyb20gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CiAKLSAgZnRwOi8vbWV0YWxhYi51bmMuZWR1L3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMDAxMzAudGFyLmd6Ci0gIGZ0cDovL3RzeC0xMS5taXQuZWR1L3B1Yi9saW51eC9BTFBIQS9XaW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMDAxMzAudGFyLmd6Ci0gIGZ0cDovL2Z0cC5pbmZvbWFnaWMuY29tL3B1Yi9taXJyb3JzL2xpbnV4L3N1bnNpdGUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDAwMTMwLnRhci5negotICBmdHA6Ly9vcmN1cy5wcm9nc29jLnV0cy5lZHUuYXUvcHViL1dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAwMDEzMC50YXIuZ3oKKyAgZnRwOi8vbWV0YWxhYi51bmMuZWR1L3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMDAyMjcudGFyLmd6CisgIGZ0cDovL3RzeC0xMS5taXQuZWR1L3B1Yi9saW51eC9BTFBIQS9XaW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMDAyMjcudGFyLmd6CisgIGZ0cDovL2Z0cC5pbmZvbWFnaWMuY29tL3B1Yi9taXJyb3JzL2xpbnV4L3N1bnNpdGUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDAwMjI3LnRhci5negorICBmdHA6Ly9vcmN1cy5wcm9nc29jLnV0cy5lZHUuYXUvcHViL1dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAwMDIyNy50YXIuZ3oKIAogSXQgc2hvdWxkIGFsc28gYmUgYXZhaWxhYmxlIGZyb20gYW55IHNpdGUgdGhhdCBtaXJyb3JzIHRzeC0xMSBvciBzdW5zaXRlLgogCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMWJhNjcwOC4uMmVkOTAxNiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSw0ICsxLDg5OCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAwMC0wMi0yNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogd2luMzIvaW5pdC5jOiBVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJR2V0Q29tcHV0ZXJOYW1lQSgpOiBhZGRlZCBwYXJhbWV0ZXIgY2hlY2sgbGlrZSBXaW45NSBkb2VzLgorCisJKiB0b29scy9idWlsZC5jOiBQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwktIEZpeGVkIHNvbWUgU29sYXJpcyBzcGVjaWZpYyBhc3NlbWJsZXIgcHJvYmxlbXMKKwktIEZpeGVkIHNvbWUgbWlzc2luZyAudHlwZSBAZnVuY3Rpb24gKGhlbHBzIGRlYnVnZ2luZyB3aXRoIGRieCkKKwktIEZpeGVkIGNvZGUgbmVlZGluZyBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpX18gZm9yIG5vbi1HQ0MgRUxGIGNvbXBpbGVycworCS0gRml4ZWQgdXNlIG9mIHplcm8gd2lkdGggYXJyYXlzIChBTlNJIEMgdmlvbGF0aW9uKQorCS0gQEdPVE9GRiBvbiBTb2xhcmlzIGRvZXNuJ3Qgd29yayAtIHVzZSBAR09UIGFuZCByZWRpcmVjdGlvbiBpbnN0ZWFkCisKKwkqIG1lbW9yeS9zZWxlY3Rvci5jLCBpbmNsdWRlL3NlbGVjdG9ycy5oOgorCVBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCUZpeGVkIHNvbWUgU29sYXJpcyBzcGVjaWZpYyBhc3NlbWJsZXIgcHJvYmxlbXMuCisKKwkqIGRsbHMvb2xlMzIvb2xlMzIuc3BlYywgZGxscy9zaGVsbDMyL3NobHdhcGkuc3BlYzoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlGaXhlZCBzb21lIGlzc3VlcyBmb3VuZCBieSB3aW5hcGlfY2hlY2suCisKKwkqIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9udGRsbC5hcGksIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9vbGUzMi5hcGksIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9vbGVhdXQzMi5hcGk6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJVXBkYXRlZCB3aW5hcGlfY2hlY2suCisKKwkqIHRvb2xzL2dlbnBhdGNoOiBTdGV2ZW4gRWxsaW90dCA8ZWxsaW90c2xAbWluZHNwcmluZy5jb20+CisJQWRkZWQgdXRpbGl0eSB0aGF0IGdlbmVyYXRlcyBwYXRjaGVzIGZvciBzdWJtaXNzaW9uIHRvCisJd2luZS1wYXRjaGVzQHdpbmVocS5jb20uCisKKwkqIGRsbHMvb2xlYXV0MzIvTWFrZWZpbGUuaW4sIGRsbHMvb2xlYXV0MzIvb2xlYXV0MzIuc3BlYzoKKwlvbGVhdXQzMiBzaG91bGQgbm90IGltcG9ydCBmdW5jdGlvbnMgZnJvbSBvbGVwcm8zMi4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jLCBpbmNsdWRlL2xpc3R2aWV3Lmg6CisJUGllcnJlIE1hZ2VhdSA8cGllcnJlQG1hY2FkYW1pYW4uY29tPgorCURvbid0IGRpc3BsYXkgdGhlIGNvbnRleHQgbWVudSBvbiBhIGRvdWJsZSBjbGljay4KKworCVVscmljaCBDemVrYWxsYSA8dWxyaWNoY0Bjb3JlbC5jYT4KKwlTZXQgdGhlIGZvbnQgb24gdGhlIGVkaXQgbGFiZWwgY29udHJvbCB0byB0aGF0IHVzZWQgYnkgdGhlIGxpc3R2aWV3CisJY29udHJvbC4gSXQgYWxzbyB1c2VzIHRleHQgbWV0cmljcyB0byBzZXQgYSBtb3JlIHJlYXNvbmFibGUgaW5pdGlhbAorCWVkaXQgY29udHJvbCBzaXplLgorCisJUGllcnJlIE1hZ2VhdSA8cGllcnJlQG1hY2FkYW1pYW4uY29tPgorCUhhbmRsZSBNX1NFVFJFRFJBVyBpbiBMaXN0Vmlldy4KKwlGaXggdG8gRW5zdXJlVmlzaWJsZSB0byBoYW5kbGUgc21hbGwgYW5kIGxhcmdlIGljb24gY29ycmVjdGx5LgorCUFkZCBlZGl0IGxhYmVsIGZ1bmN0aW9ubmFsaXR5IHRvIHRoZSBsaXN0dmlldyBhbmQgdGhlIGZpbGUgb3BlbiBkaWFsb2cuCisKKwlVbHJpY2ggQ3pla2FsbGEgPHVscmljaGNAY29yZWwuY2E+CisJUmVsYXNlREMgaW4gQ3JlYXRlRWRpdExhYmVsLgorCisJUGllcnJlIE1hZ2VhdSA8cGllcnJlQG1hY2FkYW1pYW4uY29tPgorCUFkZCBmdW5jdGlvbm5hbGl0eSB0byBjcmVhdGUgbmV3IGZvbGRlciBpbiB0aGUgb3BlbiBkaWFsb2cuCisJQWRkIHN1cHBvcnQgZm9yIHJpZ2h0IGNsaWNrIG1lbnUgaW4gY29tbW9uIGZpbGUgZGlhbG9nLgorCUxJU1RWSUVXX0VuZEVkaXRsYWJlbCBpcyBub3cgaGFuZGxpbmcgTk9OTFBTVFJfVEVYVENBTExCQUNLIGxpc3R2aWV3IGl0ZW1zLgorCisJU2VyZ2UgSXZhbm92IDxzZXJnZWlAY29yZWwuY2E+CisJTElTVFZJRVdfR2V0Q29sdW1uQSBmaXggKGRvIG5vdCBjb3B5IHN0cmluZywgcGFzcyBwb2ludGVycykuCisKKwlMdWMgVG91cmFuZ2VhdSA8bHVjQG1hY2FkYW1pYW4uY29tPgorCVByZXZlbnRpbmcgYSBkaXZpZGUgYnkgemVybyB3aGVuIGhhbmRsaW5nIExWV19FTlNVUkVWSVNJQkxFIG1lc3NhZ2UuCisKKwlEb24gS2VsbHkKKwktSW1wbGVtZW50ZWQgdGhlIHNvcnRpbmcgb24gaW5zZXJ0IG9mIGl0ZW1zIGludG8gYSBMaXN0VmlldyBjb250cm9sCisJIHdpdGggZWl0aGVyIExWU19TT1JUQVNDRU5ESU5HIG9yIExWU19TT1JUREVTQ0VORElORyBzZXQuCisJLShoZWxwaW5nIGV2aWwgYXBwbGljYXRpb25zKTogc29tZXRpbWVzIG5vdCBzbyB3ZWxsIHN0cnVjdHVyZWQgYXBwcworCSAoUEZQSTkwLCBpbiB0aGlzIGNhc2UpIHdpbGwgbm90IGZ1bGx5IGluaXRpYWxpemUgc3RydWN0cy4gIEluIHRoZSBjYXNlCisJIG9mIHRoZSBMVk1fR0VUSVRFTSBtZXNzYWdlIHRoZSBhcHAgbWF5IGhhdmUgb25seSBpbml0aWFsaXplZCB0aGUgbWFzaworCSBhbmQgaUl0ZW0gbWVtYmVycyBvZiB0aGUgc3RydWN0LiAgQWRkZWQgcHJvY2Vzc2luZyBvZiB0aGUgTFZJRl9QQVJBTQorCSBtYXNrIGluIHRoZSBjYXNlIHRoYXQgaVN1Ykl0ZW0gd2FzIHNldCBidXQgaXMgaW52YWxpZC91bmluaXRpYWxpemVkLgorCisJUGllcnJlIE1hZ2VhdSA8cGllcnJlQG1hY2FkYW1pYW4uY29tPgorCUZpeCBmb3IgaGFuZGxpbmcgY29ycmVjdGx5IHRoZSBjYW5jZWxsaW5nIG1vZGUgb2YgdGhlIEVkaXQgbGFiZWwuCisJRml4IHdpZHRoIGNhbGN1bGF0aW9uIG9mIHRoZSBlZGl0IGxhYmVsLgorCisJUGFzY2FsIExlc3NhcmQgPHBhc2NhbEBtYWNhZGFtaWFuLmNvbT4KKwlJbXBsZW1lbnRlZCB0aGUgYmVoYXZpb3Igb2Ygc2VuZGluZyBXTV9DT05URVhUTUVOVSB3aGVuIHJlY2VpdmluZyBhCisJV01fUkJVVFRPTlVQLgorCisJVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hjQGNvcmVsLmNhPgorCUZpeGVkIGEgcGFpbnRpbmcgcHJvYmxlbSB3aXRoIGxpc3R2aWV3IHdoZW4gdGhlIHZpZXcgY2hhbmdlcyBhbmQgYW4KKwllZGl0IGxhYmVsIGlzIGFjdGl2ZS4KKworCVVscmljaCBDemVrYWxsYSA8dWxyaWNoY0Bjb3JlbC5jYT4KKwlGaXhlZCBhIG5vdGlmaWNhdGlvbiBwcm9ibGVtIHdpdGggbGlzdHZpZXcuIE9uIGNyZWF0aW9uIGlmIHRoZSB1c2VyCisJc3BlY2lmaWVzIGFuIGl0ZW0gd2l0aCBmb2N1cyBhbmQvb3Igc2VsZWN0aW9uIHdlIHNob3VsZCBzZW5kIHRoZQorCXByb3BlciBub3RpZmljYXRpb24uIEluc2VydCB3YXMgcHJldmVudGluZyBMSVNUVklFV19TZXRJdGVtIGZyb20KKwlzZWVpbmcgdGhlIGNoYW5nZXMgYW5kIHNlbmRpbmcgdGhlIG5vdGlmaWNhdGlvbi4KKworCU1ha2UgdGhlIGRyYXcgaXRlbSByZWN0YW5nbGUgY29uc2lzdGVudCB3aXRoIHRoZSBzZWxlY3Rpb24KKwlyZWN0YW5nbGUuIFRoaXMgYWxsb3dzIHVzIHRvIGNsaWNrIG9uIHRoZSBmb2xkZXJzIGFuZCBpY29ucyBpbiB0aGUKKwlmaWxlIG9wZW4gZGlhbG9nIGJveCBhbmQgdGhlIGl0ZW0gYWN0dWFsbHkgZ2V0cyBzZWxlY3RlZC4KKworCSogZmlsZXMvZHJpdmUuYzogUGV0ciBUb21hc2VrIDx0b21hc2VrQGV0Zi5jdW5pLmN6PgorCS0gV3JpdGUgc2VyaWFsIG51bWJlcnMgdG8gdGhlIGRldmljZSAoRkFUKQorCS0gRFJJVkVfUmVhZFN1cGVyYmxvY2s6IGJldHRlciBjaGVja2luZyBmb3IgdGhlIEZBVCBmcy4KKworCSogZmlsZXMvZG9zX2ZzLmM6IFV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlHZXRGdWxsUGF0aE5hbWUgZml4ZXMuCisKKzIwMDAtMDItMjYgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGluY2x1ZGUvd2luYmFzZS5oLCBpbmNsdWRlL3dpbm50LmgsIG1lbW9yeS9zdHJpbmcuYywgZGxscy9udGRsbC9udGRsbC5zcGVjLCBkbGxzL250ZGxsL3J0bC5jOgorCUp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQGRlYml0ZWwubmV0PgorCUZpeGVkIGRlZmluaXRpb24gb2YgdGhlIFJ0bE1lbW9yeSBmdW5jdGlvbnMuIFVzZSBtYWNyb3MgaW50ZXJuYWxseSBhbmQKKwlmb3IgV2luZWxpYiwgdXNlIHJlYWwgZnVuY3Rpb25zIGZvciBleHBvcnRzIGZyb20gbnRkbGwuCisKKwkqIGluY2x1ZGUvb2xlMi5oOiBKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBkZWJpdGVsLm5ldD4KKwlQcm90b3R5cGVzIE9sZUluaXRpYWxpemUsIE9sZVVuaW5pdGlhbGl6ZS4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGc5NS5jOgorCUhpZGVub3JpIFRha2VzaGltYSA8aGlkZW5vcmlAYTIuY3RrdHYubmUuanA+CisJQXJyYW5nZUN0cmxQb3NpdGlvbnM6IGZpeCBmb3IgdXNlci1kZWZpbmVkIHRlbXBsYXRlIHdpdGggbm8gc3RjMzIuCisKKwkqIGNvbnRyb2xzL21lbnUuYywgaW5jbHVkZS9tZW51LmgsIHdpbmRvd3MvbWVzc2FnZS5jOgorCVVscmljaCBDemVrYWxsYSA8dWxyaWNoY0Bjb3JlbC5jb20+CisJU2VuZCBXTV9IRUxQIG1lc3NhZ2Ugd2hlbiBGMSBpcyBwcmVzc2VkLgorCisJKiBjb250cm9scy9saXN0Ym94LmM6IFl1eGkgWmhhbmcgPHl1eGlAY29yZWwuY2E+CisJSW4gdGhlIGxpc3Rib3gsIHdoZW4gdGhlIGxhc3QgaXRlbSBpcyBzZWxlY3RlZCBhbmQgZGVsZXRlZCwgaXQgc3RpbGwKKwlhcHBlYXJlZCBpbiB0aGUgd2luZG93LgorCisJU2hlcmkgU3RlZXZlcyA8c2hlcmlAbWFjYWRhbWlhbi5jb20+CisJSW4gTElTVEJPWF9VcGRhdGVTY3JvbGwoKSwgaWYgdGhlIGxpc3Rib3ggZGlkIG5vdCBoYXZlIHRoZSBXU19TQ1JPTEwKKwlzdHlsZSBpdCB3b3VsZCBqdXN0IHJldHVybi4gIFRoaXMgbGVmdCB0aGUgaG9yaXpvbnRhbCBzY3JvbGwgYmFyCisJdW5pbml0aWFsaXplZCBhbmQgaXQgd2FzIGFwcGVhcmluZyBhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0Ym94IHdoZW4KKwlpdCBkaWQgbm90IGhhdmUgdG8uCisKKwlTZXJnZSBJdmFub3YgPHNlcmdlaUBjb3JlbC5jb20+CisJTElTVEJPWF9TZXRDb2x1bW5XaWR0aCBhZGRzIGV4dHJhIDIgcGl4ZWxzIHRvIHRoZSBwYXNzZWQgY29sdW1uIHdpZHRoCisJKGl0IHNheXMgaXQgaXMgZm9yIGNvbHVtbiBtYXJnaW5zKS4gT2J2aW91c2x5IGl0IGlzIHdyb25nLCBiZWNhdXNlCisJbWFyZ2lucyBtdXN0IGJlIGludGVybmFsLgorCisJKiBkbGxzL29sZTMyL01ha2VmaWxlLmluLCBkbGxzL29sZTMyL2Vycm9yaW5mby5jLCBkbGxzL29sZWF1dDMyL01ha2VmaWxlLmluLCBkbGxzL29sZWF1dDMyL2Vycm9yaW5mby5jOgorCUVycm9ySW5mbyBmdW5jdGlvbnMgbmVlZCB0byBiZSBpbiBvbGUzMiwgbm90IG9sZWF1dDMyLgorCisJKiBkbGxzL2NydGRsbC93Y3N0cmluZy5jOiBNb3JlIHBvcnRhYmxlIENSVERMTF9pc3djdHlwZS4KKworCSogZGxscy9zaGVsbDMyL3NobG1lbnUuYywgZGxscy9zaGVsbDMyL3NobHZpZXcuYywgZGxscy9zaGVsbDMyL3NobHdhcGkuc3BlYywgZGxscy9zaGVsbDMyL3Nodl9iZ19jbWVudS5jLCBkbGxzL3NoZWxsMzIvc2h2X2l0ZW1fY21lbnUuYywgZGxscy9zaGVsbDMyL3BpZGwuaCwgZGxscy9zaGVsbDMyL3NobGZpbGVvcC5jLCBkbGxzL3NoZWxsMzIvc2hsZm9sZGVyLmM6CisJSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJTW92ZWQgZmlsZSBmdW5jdGlvbnMgdG8gc2hsZmlsZW9wLmMKKwlOZXcgU0hFTExfRGVsZXRlRGlyZWN0b3J5QQorCVVzZSBzaGVsbCBub3RpZmljYXRpb25zLgorCUVuYWJsZWQgZmlsZSBtYW5pcHVsYXRpb24gZnVuY3Rpb25zLgorCisJKiBkbGxzL3NoZWxsMzIvZm9sZGVycy5jLCBkbGxzL3NoZWxsMzIvaWNvbmNhY2hlLmM6CisJSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJRml4IGZvciBPcGVuSWNvbi4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzIuc3BlYywgZGxscy9zaGVsbDMyL3NoZWxscGF0aC5jOgorCUp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQGRlYml0ZWwubmV0PgorCVN0dWIgUGF0aElzRGlyZWN0b3J5LgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxvcmQuYzoKKwlKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBkZWJpdGVsLm5ldD4KKwlGaXhlcyBmb3IgU2hlbGxFeGVjdXRlRXguCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uaCwgaW5jbHVkZS93aW5lL3VuZG9jc2hlbGwuaCwgZGxscy9zaGVsbDMyL2NoYW5nZW5vdGlmeS5jLCBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmM6CisJSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJQmFzaWMgaW1wbGVtZW50YXRpb24gb2Ygc2hlbGwgbm90aWZpY2F0aW9ucy4KKworCSogZG9jdW1lbnRhdGlvbi9zaGVsbDMyOiBKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBkZWJpdGVsLm5ldD4KKwlVcGRhdGVkLgorCisJKiBpbmNsdWRlL3dpbmUvb2JqX2NvbnRleHRtZW51LmgsIGluY2x1ZGUvd2luZS9vYmpfZXh0cmFjdGljb24uaCwgaW5jbHVkZS93aW5lL29ial9zaGVsbGZvbGRlci5oOgorCUp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQGRlYml0ZWwubmV0PgorCUFkZGVkIFdpbmVsaWIgdHlwZXMuCisKKwkqIGRsbHMvc2hlbGwzMi9zaHJlcy5yYzogSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJQWRkZWQgaWNvbiBubyA0IChvcGVuIGZvbGRlcikuCisKKwkqIGRsbHMvb2xlMzIvb2xlMzIuc3BlYywgZGxscy9vbGVhdXQzMi9NYWtlZmlsZS5pbiwgZGxscy9vbGVhdXQzMi9lcnJvcmluZm8uYywgZGxscy9vbGVhdXQzMi9vbGVhdXQzMi5zcGVjLCBpbmNsdWRlL29sZWF1dG8uaDoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlBZGRlZCBzdHVicyBmb3Ige0NyZWF0ZSxHZXQsU2V0fUVycm9ySW5mby4KKworCSogZGxscy9vbGUzMi9vbGUyc3R1YnMuYzogQWJleSBHZW9yZ2UgPGFiZXlAbWFjYWRhbWlhbi5jb20+CisJUmV0dXJuIGFuIGVycm9yIGluc3RlYWQgb2YgYSBzdWNjZXNzIGNvZGUgaW4gT2xlQ3JlYXRlIHN0dWIgZnVuY3Rpb24uCisKKwkqIGRsbHMvY29tY3RsMzIvdGFiLmMsIGluY2x1ZGUvdGFiLmg6IERvbiBLZWxseQorCUluIFdpbmRvd3MgUHJvcGVydHkgU2hlZXQgY2FuIGhhdmUgYW55IG1peCBvZiBpY29uLWxlc3MgdGFicyBhbmQgdGFicworCXdpdGggaWNvbnMuICBBZGRzIGEgY2hlY2sgdG8gc2VlIGlmIHRoZSBpY29uIHdlJ3JlIGFkZGluZyBpcyBub24tTlVMTAorCShvdGhlcndpc2UgcmFuZG9tIGp1bmsgZnJvbSBtZW1vcnkgY2FuIGJlIHJlbmRlcmVkKSB3aGVuIHRoZSBhcHBsaWNhdGlvbgorCWhhcyBzcGVjaWZpZWQgdGhlIFBTUF9VU0VJQ09OSUQgZmxhZyBpcyBzZXQuICBDaGFuZ2VzIHRvIHRoZSBUYWIgY29udHJvbAorCXRvIG9ubHkgcmVuZGVyIGljb25zIGZvciB0YWJzIHRoYXQgaGF2ZSB0aGUgVENJRl9JTUFHRSBmbGFnIHNldAorCShwcmV2aW91c2x5LCBpZiB0aGUgZmxhZyB3YXMgc2V0IHRoZSBlbnRpcmUgaW1hZ2UgbGlzdCBvZiBpY29ucyB3YXMKKwlyZW5kZXJlZCkuCisKKwlTdGVwaGFuZSBMdXNzaWVyIDxzdGVwaGFuZUBtYWNhZGFtaWFuLmNvbT4KKwlGaXhlcyBmb3Igc29tZSB0YWIgY29udHJvbCBidWdzCisKKwlIZW5uaW5nIEhvZmZtYW5uCisJRml4ZWQgc29tZSB3aWR0aCBwcm9ibGVtIHdpdGggT1dORVJEUkFXIHRhYi4KKworCUx1YyBUb3VyYW5nZWF1IDxsdWNAbWFjYWRhbWlhbi5jb20+CisJVENNX0FESlVTVFJFQ1QgaXMgbm93IHJldHVybmluZyBjb25zaXN0YW50IGNvbXBhcmUgdG8gV2luZG93cy4KKworCVNlcmdlIEl2YW5vdiA8c2VyZ2VpQGNvcmVsLmNhPgorCUZpeGVkIHByb2JsZW0gd2l0aCB0YWIgc2VsZWN0aW9uLiBXaGVuIHlvdSBzZWxlY3QgdGFiIGl0IGJlY2FtZXMgZmlyc3QKKwl2aXNpYmxlIHRhYi4gTm93IGxlZnRtb3N0IHZpc2libGUgdGFiIGlzIGNhbGN1bGF0ZWQgcHJvcGVybHkuCisJLSBBZGRlZCBjb2RlIGZvciBjb3JyZWN0IGhhbmRsaW5nIG9mIHVwZG93biBjb250cm9sLgorCS0gRm9yY2VkIHJlY2FsY3VsYXRpb24gb2YgdGFicycgY29vcmRpbmF0ZXMgd2hlbjoKKwlhKSBhbGwgaXRlbXMgYXJlIGRlbGV0ZWQsCisJYikgd2luZG93IHN0eWxlIGlzIGNhbmdlZAorCisJKiBpbmNsdWRlL2NvbW1jdHJsLmg6IElhbiBTY2htaWR0IDxpc2NobWlkdEBjZmwucnIuY29tPgorCUFkZGVkIG5lY2Vzc2FyeSBkZWZpbmVzIGFuZCBzdHJ1Y3R1cmVzIHRvIGNvbXBpbGUgV2luZUxpYiBhcHBzIHVzaW5nCisJTUZDIDYuMCBoZWFkZXJzLgorCUZpeGVkIHR5cG8gaW4gVENNX1NFVE1JTlRBQldJRFRIIGNvbnN0YW50LgorCisJKiBjb250cm9scy9idXR0b24uYzogQmlsbCBKaW4gPGJpbGxqQGNvcmVsLmNhPgorCUJpdG1hcCBidXR0b25zIHdlcmUgbm90IHJlZnJlc2hlZCBjb3JyZWN0bHkuCisKKwkqIGRsbHMvY29tY3RsMzIvcHJvcHNoZWV0LmM6IEppbSBBc3RvbiA8amltYUBjb3JlbC5jYT4KKwlUaGlzIHJldmVydHMgTWF0dHMgcGF0Y2guICBUaGUgbWVzc2FnaW5nIG5lZWRzIGRvdWJsZSBjaGVja2luZy4KKworCSogd2luZG93cy9tZXNzYWdlLmMsIHdpbmRvd3Mvd2lucHJvYy5jLCBtZW1vcnkvc2VsZWN0b3IuYywgbWlzYy93MzJzY29tYi5jLCBtc2Rvcy9kcG1pLmMsIHJlbGF5MzIvcmVsYXkzODYuYywgc2NoZWR1bGVyL3N5c2RlcHMuYywgc2NoZWR1bGVyL3N5c2xldmVsLmMsIHRvb2xzL2J1aWxkLmMsIHdpbjMyL2tlcm5lbDMyLmMsIGNvbnRyb2xzL2VkaXQuYywgY29udHJvbHMvbGlzdGJveC5jLCBkZWJ1Z2dlci9yZWdpc3RlcnMuYywgZGxscy9udGRsbC9zaWduYWxfaTM4Ni5jLCBpZjE2MzIvc25vb3AuYywgaWYxNjMyL3RodW5rLmMsIGluY2x1ZGUvc2VsZWN0b3JzLmgsIGluY2x1ZGUvdGhyZWFkLmgsIGluY2x1ZGUvd2lubnQuaCwgbG9hZGVyL21haW4uYzoKKwlJbXByb3ZlZCB0aGUgc2VsZWN0b3IgZ2V0L3NldCBmdW5jdGlvbnMuCisJU3VwcG9ydCBBTlNJLWNvbXBhdGlibGUgaW5saW5lIGFzbSAod2l0aCB0aGUgaGVscCBvZiBQYXRyaWsgU3RyaWR2YWxsKS4KKworCSogZGxscy93aW5tbS9qb3lzdGljay9NYWtlZmlsZS5pbiwgZGxscy93aW5tbS9tY2lhbmltL01ha2VmaWxlLmluLCBkbGxzL3dpbm1tL21jaWF2aS9NYWtlZmlsZS5pbiwgZGxscy93aW5tbS9tY2ljZGEvTWFrZWZpbGUuaW4sIGRsbHMvd2lubW0vbWNpc2VxL01ha2VmaWxlLmluLCBkbGxzL3dpbm1tL21jaXdhdmUvTWFrZWZpbGUuaW4sIGRsbHMvd2lubW0vbWlkaW1hcC9NYWtlZmlsZS5pbiwgZGxscy93aW5tbS93YXZlbWFwL01ha2VmaWxlLmluLCBkbGxzL3dpbm1tL3dpbmVvc3MvTWFrZWZpbGUuaW4sIGluY2x1ZGUvYWNjb25maWcuaCwgaW5jbHVkZS9jb25maWcuaC5pbiwgZGxscy9NYWtlZmlsZS5pbiwgZGxscy9hdmlmaWwzMi9NYWtlZmlsZS5pbiwgZGxscy9jb21jdGwzMi9NYWtlZmlsZS5pbiwgZGxscy9jb21tZGxnL01ha2VmaWxlLmluLCBkbGxzL21zdmlkZW8vTWFrZWZpbGUuaW4sIGRsbHMvb2xlYXV0MzIvTWFrZWZpbGUuaW4sIGRsbHMvc2hlbGwzMi9NYWtlZmlsZS5pbiwgZGxscy93aW5tbS8uY3ZzaWdub3JlLCBkbGxzL3dpbm1tL01ha2VmaWxlLmluLCBNYWtlLnJ1bGVzLmluLCBNYWtlZmlsZS5pbjoKKwlNYWRlIHdpbm1tIGEgc2VwYXJhdGUgc2hhcmVkIGxpYnJhcnkuCisKKwkqIHNjaGVkdWxlci9wcm9jZXNzLmMsIHRvb2xzL2JpbjJyZXMuYywgaW5jbHVkZS93aW5lL3dpbmRlZjE2LmgsIGxvYWRlci9uZS9yZXNvdXJjZS5jLCBtaXNjL3JlZ2lzdHJ5LmMsIG9iamVjdHMvZGliLmMsIG9sZS9vbGUybmxzLmMsIHByb2dyYW1zL2Nsb2NrL3dpbmNsb2NrLmMsIGRsbHMvc2hlbGwzMi9jaGFuZ2Vub3RpZnkuYywgZGxscy9zaGVsbDMyL3NoZWxsb3JkLmMsIGdyYXBoaWNzL3gxMWRydi9kaWIuYywgaWYxNjMyL2J1aWx0aW4uYywgaW5jbHVkZS9kcGxvYmJ5LmgsIGluY2x1ZGUvd2luZ2RpLmgsIGRsbHMvZHBsYXl4L2RwbG9iYnkuYywgZGxscy9pY21wL2ljbXBfbWFpbi5jLCBkbGxzL250ZGxsL3JlZy5jLCBkbGxzL29kYmMzMi9wcm94eW9kYmMuYywgZGxscy9vbGVhdXQzMi90eXBlbGliLmMsIGRsbHMvY29tbWRsZy9maWxlZGxnOTUuYzoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlGaXhlZCBBTlNJIEMgdmlvbGF0aW9ucy4KKworCSogc2VydmVyL2NvbnRleHRfaTM4Ni5jOiBQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlGaXhlZCBTb2xhcmlzIHNwZWNpZmljIGNvbXBpbGVyIGlzc3VlLgorCisJKiBmaWxlcy9kb3NfZnMuYywgd2luMzIvaW5pdC5jOiBQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlGaXhlZCBzb21lIGRlYnVnIG1lc3NhZ2UgY3Jhc2hlcy4KKworCSogaW5jbHVkZS9kaW5wdXQuaCwgd2luZG93cy9kaW5wdXQuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gaW1wbGVtZW50IEVudW1PYmplY3RzIGFuZCBHZXRQcm9wZXJ0eSBmb3IgTW91c2UgYW5kIEpveXN0aWNrIGRyaXZlcnMKKwktIGltcGxlbWVudCBTZXREYXRhRm9ybWF0IGZvciB0aGUgTW91c2UgZHJpdmVyCisKKwkqIGRsbHMvd2lubW0vam95c3RpY2svLmN2c2lnbm9yZSwgZGxscy93aW5tbS9qb3lzdGljay9NYWtlZmlsZS5pbiwgZGxscy93aW5tbS9qb3lzdGljay9qb3lzdGljay5jLCBkbGxzL3dpbm1tL2pveXN0aWNrL2pveXN0aWNrLnNwZWMsIGluY2x1ZGUvZGVidWdkZWZzLmgsIGluY2x1ZGUvbWVzc2FnZS5oLCBpbmNsdWRlL21tZGRrLmgsIHdpbmRvd3MvbWVzc2FnZS5jLCBNYWtlLnJ1bGVzLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGxscy9NYWtlZmlsZS5pbiwgZGxscy93aW5tbS9NYWtlZmlsZS5pbiwgZGxscy93aW5tbS9qb3lzdGljay5jOgorCUVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCU1vdmVkIGhhcmR3YXJlIHJlbGF0ZWQgaGFuZGxpbmcgdG8gZGxscy93aW5tbS9qb3lzdGljayBkcml2ZXIuCisJR290IHJpZCBvZiBqb3lTZW5kTWVzc2FnZXMoKSBoYWNrIChub3cgaW1wbGVtZW50YXRpb24gd2l0aCBhIHRpbWVyKS4KKworMjAwMC0wMi0yNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogbWlzYy9kZWJ1Z3N0ci5jOgorCVJlbGVhc2UgdW51c2VkIHNwYWNlIGluIGRlYnVnIHN0cmluZ3MgdG8gYXZvaWQgdG9vIGZyZXF1ZW50CisJd3JhcC1hcm91bmRzIGluIHRoZSBjaXJjdWxhciBidWZmZXIuCisKKwkqIGRsbHMvb2xlYXV0MzIvTWFrZWZpbGUuaW46IEFkZGVkIGltcG9ydCBvZiBvbGVwcm8zMi4KKworCSogd2luZWRlZmF1bHQucmVnOiBBbmRyZWFzIE1vaHIgPGFtb2hyQHN0dWRlbnQuZWkudW5pLXN0dXR0Z2FydC5kZT4KKwlBZGRlZCBPTEUgZW50cmllcyBhbmQgY29tbWVudHMuCisKKwkqIG9sZS9ubHMvanBuLm5sczogSGlkZW5vcmkgVGFrZXNoaW1hIDxoaWRlbm9yaUBhMi5jdGt0di5uZS5qcD4KKwlKYXBhbmVzZSBzdXBwb3J0IGltcGxlbWVudGVkLgorCisJKiBvbGUvb2xlMm5scy5jOiBTdGV2ZW4gRWxsaW90dCA8ZWxsaW90c2xAbWluZHNwcmluZy5jb20+CisJU3R1YmJlZCBvdXQgdGhlIGltcGxlbWVudGF0aW9uIG9mIExDTUFQX1NPUlRLRVkgaW4gTENNYXBTdHJpbmdXKCkgaW4KKwlvcmRlciB0byBhbGxvdyBXaW5kb3dzIDl4IFBlcmwgdG8gc3RhcnQuCisKKwkqIGRsbHMvd2luc3Bvb2wvaW5mby5jOiBVbHJpY2ggQ3pla2FsbGEgPHVscmljaGNAY29yZWwuY2E+CisJVGhpcyBwYXRjaCBpbml0aWFsaXplcyB0aGUgcmV0dXJuIGJ1ZmZlciB1c2VkIGluIEdldFByaW50ZXJEcml2ZXJBIHRvCisJemVyb3MuIFRoaXMgcHJldmVudHMgYnVmZmVyIG92ZXJydW5zIGNhdXNlZCBieSBhY2Nlc3NpbmcgZ2FyYmFnZSBkYXRhLgorCVNvbWUgaW1wcm92ZW1lbnRzIHRvIHRoZSBOVUxMIGNoZWNrIHBhdGNoLgorCisJR2F1dGFtIEphaW4KKwlFbnVtUHJpbnRlcnMgaXMgbm90IHJldHVybmluZyB0aGUgbnVtYmVyIG9mIHByaW50ZXJzIGZvdW5kIGluIGNhc2UgdGhlCisJcGFyYW1ldGVyIGR3TGV2ZWwgaXMgMS4KKworCSogZGxscy9udGRsbC9yZWcuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QHNsb2JvZGEucnU+CisJRG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsaWQgT2JqZWN0QXR0cmlidXRlcy0+Um9vdERpcmVjdG9yeS4KKwlQZXJmb3JtIGNhc2UgaW5zZW5zaXRpdmUgY29tcGFyaXNvbiBmb3IgdGhlIHJlZ2lzdHJ5IHBhdGhzLgorCisJKiBpbmNsdWRlL250ZGRrLmg6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBzbG9ib2RhLnJ1PgorCUFkZGVkIHByb3RvdHlwZXMgZm9yIHJlZ2lzdHJ5IGZ1bmN0aW9ucy4KKworCSogaW5jbHVkZS93aW5iYXNlLmgsIGluY2x1ZGUvd2lubmxzLmg6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QHNsb2JvZGEucnU+CisJTW92ZSBkZWZpbml0aW9uIG9mIENQSU5GTyBzdHJ1Y3R1cmUgZnJvbSB3aW5iYXNlLmggdG8gd2lubmxzLmgKKwlBZGQgZGVmaW5pdGlvbiBvZiBDUElORk9FWCBzdHJ1Y3R1cmUgdG8gd2lubmxzLmgKKworCSogaW5jbHVkZS9jcnRkbGwuaDogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QHNsb2JvZGEucnU+CisJQWRkIHByb3RvdHlwZSBmb3IgQ1JURExMX3djc3RvbC4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IEhpZGVub3JpIFRha2VzaGltYSA8aGlkZW5vcmlAYTIuY3RrdHYubmUuanA+CisJRml4IGZvciB0b29sYmFyIGJ1dHRvbiBzaXplLgorCisJKiBtaXNjL2xzdHIuYzogSGlkZW5vcmkgVGFrZXNoaW1hIDxoaWRlbm9yaUBhMi5jdGt0di5uZS5qcD4KKwlGaXhlZCBDaGFyTmV4dEEvQ2hhck5leHRFeEEgZm9yIERCQ1MuCisKKwkqIHdpbmRvd3MvbXVsdGltb24uYywgd2luZG93cy94MTFkcnYvbW9uaXRvci5jLCBpbmNsdWRlL2RlYnVnZ2VyLmgsIG1pc2MvY29tbS5jLCBvbGUvb2xlMm5scy5jLCByZWxheTMyL3Nub29wLmMsIHRvb2xzL2J1aWxkLmMsIGRlYnVnZ2VyL21zYy5jLCBkZWJ1Z2dlci9zdGFicy5jLCBkbGxzL2NvbWN0bDMyL2RyYWdsaXN0LmMsIGdyYXBoaWNzL2RkcmF3LmM6CisJSmFtZXMgQWJiYXRpZWxsbyA8YWJiZXlqQFdQSS5FRFU+CisJTWlzYy4gZml4ZXMgZm9yIGNvbXBpbGVyIHdhcm5pbmdzLgorCisJKiBkbGxzL29sZTMyL3N0Z19zdHJlYW0uYywgZGxscy9vbGUzMi9zdG9yYWdlMzIuYywgZGxscy9vbGUzMi9zdG9yYWdlMzIuaCwgaW5jbHVkZS9vbGUyLmgsIGluY2x1ZGUvd2luZS9vYmpfYmFzZS5oLCBpbmNsdWRlL3dpbmVycm9yLmg6CisJUGllcnJlIE1hZ2VhdSA8cGllcnJlQG1hY2FkYW1pYW4uY29tPgorCUltcGxlbWVudGF0aW9uIG9mIE9sZUNvbnZlcnQgcm91dGluZXMuCisKKwlUaHV5IE5ndXllbiA8dGh1eUBtYWNhZGFtaWFuLmNvbT4KKwlEb24ndCBhbGxvdyB0byByZXNpemUgc3RyZWFtIG9wZW4gaW4gcmVhZCBvbmx5IG1vZGUKKwlBbGxvdyB3cml0ZSBhY2Nlc3MgZm9yIHN0cmVhbS9zdG9yYWdlIG9wZW4gd2l0aCBTVEdNX1JFQURXUklURS4KKwlTdGdPcGVuU3RvcmFnZSByZXR1cm4gdmFsdWVzIGFyZSBub3cgbW9yZSBkZXRhaWxlZC4KKwlEb24ndCByZWx5IG9uIFNUR01fQ1JFQVRFIGZsYWcgaW4gdGhlIFN0b3JhZ2UgY29uc3RydWN0b3IuCisJUHJldmVudGluZyB0byB3cml0ZSBvdXQgb2YgZGF0ZSBwcm9wZXJ0eS4KKworCU93ZW4gV2FuZyA8b3dlbndAY29yZWwuY2E+CisJQWxsb3cgYm90aCBwb3NpdGl2ZSAmIG5lZ2F0aXZlIDMyLWJpdCBpbnRlZ2VycyBhcyB3aXRoIE1GQyBhc3N1bXB0aW9uLgorCVRoaXMgcGF0Y2ggaW1wcm92ZXMgdGhlIDMyYml0IGxpbWl0IG9uIElTdHJlYW06OipfU2VlayBvcGVyYXRpb25zLgorCisJSm9obiBMaSA8am9obmxAY29yZWwuY2E+CisJV2hlbiBXUCBvcGVucyBhIGxpbmtlZCBmaWxlLCB0aGUgbWFsbG9jIGZ1bmN0aW9uIGluCisJT0xFQ09OVkVSVF9Mb2FkT0xFMTAoLi4uKSByZXR1cm5zIGEgTlVMTC4gVGhpcyBjYXVzZXMgYSBsYXRlciBXaW5lCisJY3Jhc2guIFRoZSBhY3R1YWwgcHJvYmxlbSBpcyB0aGUgZnVuY3Rpb24gcmVhZGluZyBhIGxhcmdlIGRhdGEgbGVuZ3RoLgorCisJKiBkbGxzL3ZlcnNpb24vaW5mby5jOiBQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlNYWRlIHNvbWUgbG9jYWwgZnVuY3Rpb25zIHN0YXRpYy4KKworCSogZGxscy9vbGVhdXQzMi9vbGVhdXQzMi5zcGVjLCBzZXJ2ZXIvY29udGV4dF9pMzg2LmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJRml4ZWQgc29tZSBpc3N1ZXMgZm91bmQgYnkgd2luYXBpX2NoZWNrLgorCisJKiB0b29scy93aW5hcGlfY2hlY2svKjoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlNb3ZlZCBzb21lIG9mIHRoZSBBUEkgc3BlY2lmaWNhdGlvbiBmcm9tIHRoZSBnbG9iYWwgZmlsZSB0byB0aGUgbG9jYWwKKwlmaWxlcy4KKworCSogZGxscy9tb3VzZS9tb3VzZV9tYWluLmMsIGluY2x1ZGUvbW91c2UuaCwgaW5jbHVkZS90dHlkcnYuaCwgaW5jbHVkZS94MTFkcnYuaCwgd2luZG93cy90dHlkcnYvbW91c2UuYywgd2luZG93cy94MTFkcnYvbW91c2UuYzoKKwlKYW1lcyBBYmJhdGllbGxvIDxhYmJleWpAV1BJLkVEVT4KKwlCZXR0ZXIgdGhyZWFkIHNhZmV0eSBmb3IgV2FycFBvaW50ZXIgaGFjay4KKworCSogZGxscy9hZHZhcGkzMi9hZHZhcGkzMi5zcGVjLCBkbGxzL2FkdmFwaTMyL3NlY3VyaXR5LmM6CisJSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJQWRkZWQgQWRkQWNjZXNzQWxsb3dlZEFjZS4KKworCSogaW5jbHVkZS9jb21tY3RybC5oOiBKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBkZWJpdGVsLm5ldD4KKwlTb21lIG1vcmUgTGlzdFZpZXdfIG1hY3Jvcywgd2luZWxpYiBmaXhlcy4KKworCSogb2JqZWN0cy9jdXJzb3JpY29uLmM6IEp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQGRlYml0ZWwubmV0PgorCUZpeGVkIGFsbG9jYXRpb24gb2YgMTZ4MTYgaWNvbnMuCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnOTUuYzoKKwlKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBkZWJpdGVsLm5ldD4KKwlGb3IgdW5pY29kZTogZ2l2ZSB0aGUgc2VsZWN0ZWQgZmlsZW5hbWUgYmFjay4KKworCSogdG9vbHMvd2luZWluc3RhbGw6IE92ZSBLYWF2ZW4gPG92ZWtAYXJjdGljbmV0Lm5vPgorCUNoZWNrIGZvciBYcG0gaGVhZGVycyBhbmQgYWRkIC91c3IvbG9jYWwvbGliIHRvIC9ldGMvbGQuc28uY29uZiBpZgorCW5lY2Vzc2FyeS4KKworCSogd2luZG93cy9wYWludGluZy5jOiBTZXJnZSBJdmFub3YgPHNlcmdlaUBjb3JlbC5jYT4KKwlXZSBkb24ndCBuZWVkIHRvIGNhbGwgTFB0b0RQIGluIGhlcmUgYXMgZmFyIGFzIFBhdEJsdCBkb2VzIGl0IGludGVybmFsbHkuCisKKwkqIGRsbHMvY29tY3RsMzIvcHJvcHNoZWV0LmM6IFNlcmdlIEl2YW5vdiA8c2VyZ2VpQGNvcmVsLmNhPgorCUluIFdpbmRvd3MsIGlmIFByb3BlcnR5U2hlZXQgY2FuJ3QgY3JlYXRlIHNvbWUgcGFnZSBpdCBqdXN0IHNraXBzIGl0LiBUaGlzCisJcGF0Y2ggYWRkcyBzaW1pbGFyIGJlaGF2aW91ciB0byBXaW5lLiBJdCBhbHNvIGFkZHMgc29tZSBOVUxMIGNoZWNrcy4KKworCTx5dXhpQGNvcmVsLmNvbT4KKwlGaXggcHJvcGVydHkgc2hlZXQgaW5pdGlhbGl6YXRpb24gYnVncy4KKworCU1hdHRoZXcgUm9iZXJ0c29uCisJVGhlIHRlbXBsYXRlIHdhcyBjYWxsaW5nIEdldEFjdGl2ZUluZGV4IHdoaWNoIHdhcyBub3QgYmVpbmcgc2V0IGluIHRoZQorCXByb3BzaGVldCBjb2RlLCBhbmQgdGhlIGNhbGwgd2FzIG1vdmVkIGJlZm9yZSB3ZSBjYWxsIFNldEFjdGl2ZSAtCisJYmVjYXVzZSB0aGF0J3Mgd2hlcmUgd2UgcXVlcnkgZm9yIHRoZSBBY3RpdmUgSW5kZXguCisKKwlOb29tZW4gSGFtemEKKwlSZXNpemUgcHJvcGVydHkgc2hlZXQgdG8gdGhlIGxhcmdlc3QgZGlhbG9nIHNpemUuCisKKwlEb24gS2VsbHkKKwlJbiB0aGUgV01fSU5JVERJQUxPRyBoYW5kbGVyIGZvciB0aGUgcHJvcCBzaGVldCwgdGhlcmUgaXMgYSBjYWxsIHRvCisJUFJPUFNIRUVUX0lzVG9vU21hbGwoKSB3aGljaCwgaWYgaXQgcmV0dXJucyBUUlVFLCBjYWxscworCVBST1BTSEVFVF9BZGp1c3RTaXplKCkuICBDb250cmFyeSB0byBpdHMgY29tbWVudCwgLi5fQWRqdXN0U2l6ZSgpIGFjdHVhbGx5CisJYWxpZ25zIHRoZSBzaXplcyBvZiB0aGUgImxhcmdlc3QiIHByb3AuIHNoZWV0IGRpYWxvZyB0ZW1wbGF0ZSBhbmQgdGhlIHRhYgorCWNvbnRyb2wuICBUaGUgSXNUb29TbWFsbCgpIGNhbGwgZG9lc24ndCBwcm9wZXJseSBjYXRjaCB0aGlzIG1pc21hdGNoLgorCU1vZGlmaWVkIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gVFJVRSBpZiB0aGUgc2l6ZXMgbWlzbWF0Y2ggYW5kIHJlbmFtZWQgaXQgdG8KKwlQUk9QU0hFRVRfU2l6ZU1pc21hdGNoKCkgdG8gcmVmbGVjdCBpdHMgcHJvcGVyIHVzZS4KKworCSogZGxscy9zaGVsbDMyL3NobHdhcGkuc3BlYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJV2UgZGVmaW5lIFBhdGhJU1VSTEEsIHNvIHVzZSBpdC4KKworCSogZGxscy9jb21jdGwzMi9pbWFnZWxpc3QuYzogU2VyZ2UgSXZhbm92IDxzZXJnZWlAY29yZWwuY2E+CisJSW4gZnVuY3Rpb24gSU1BR0VMSVNUX0ludGVybmFsRHJhd01hc2sgd2UgaGF2ZSB0byBtYXNrIG91dCBvdmVybGF5IG1hc2sgaW4KKwlmU3R5bGUuIE90aGVyd2lzZSBjb21wYXJpc29uIGZTdHlsZSA9PSBJTERfTk9STUFMIHdpbGwgbm90IHdvcmssIHdoaWNoIGxlYWRzCisJdG8gaW1wcm9wZXIgZGlzcGxheSBvZiBvdmVybGF5IGltYWdlcy4KKworCSogd2luZG93cy93aW4uYzoKKwlBbGV4YW5kcmUgSnVsbGlhcmQgPGp1bGxpYXJkQGNvZGV3ZWF2ZXJzLmNvbT4gKGZvciBDb3JlbCkKKwlBVE9NcyBhcmUgY29uc2lkZXJlZCB1bmlxdWUsIHNvIHdlIGRvbid0IG5lZWQgdG8gY2hlY2sgY2xhc3MKKwlwb2ludGVycyBpbiBGaW5kV2luZG93LgorCisJKiBvYmplY3RzL3JlZ2lvbi5jOiBTZXJnZSBJdmFub3YgPHNlcmdlaUBjb3JlbC5jb20+CisJTm90IGFsbCByZWdpb24gZnVuY3Rpb25zIHVwZGF0ZWQgJ3R5cGUnIGZpZWxkIHRvIHJlZmxlY3QgY3VycmVudAorCXJlZ2lvbiBzdGF0ZS4KKworCSogcHJvZ3JhbXMvY21kbGd0c3QvY21kbGdyLnJjLCBwcm9ncmFtcy9jbWRsZ3RzdC9jbWRsZ3RzdC5jOgorCUVyaWMgV2lsbGlhbXMgPGV3aWxsQG5jYWwudmVyaW8uY29tPgorCU1pbm9yIGZpeHVwcyBhbmQgdHdlYWtpbmcsIGFuZCBhIGR1bW15IGhvb2suCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnLmM6IEp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQGRlYml0ZWwubmV0PgorCUZpeGVkIGhhbmRsaW5nIG9mIGZpbGVkbGcgZmxhZ3MuCisKKzIwMDAtMDItMjAgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIHNjaGVkdWxlci9wcm9jZXNzLmM6IEFuZHJlYXMgTW9ociA8YW1vaHJAc3R1ZGVudC5laS51bmktc3R1dHRnYXJ0LmRlPgorCUFkZGVkIEZJWE1FIGNvbW1lbnQgZm9yIGVudHJ5IHBvaW50IHBhcmFtZXRlci4KKworCSogZGxscy9vbGUzMi9tb25pa2VyLmMsIGRsbHMvb2xlMzIvb2xlMzIuc3BlYzoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQHN0dWRlbnQuZWkudW5pLXN0dXR0Z2FydC5kZT4KKwktIHN0dWIgZm9yIE9MRTMyLk1rUGFyc2VEaXNwbGF5TmFtZQorCS0gc3BlbGxpbmcgZml4ZXMKKworCSogd2luZG93cy9kaWFsb2cuYywgd2luZG93cy93aW4uYzoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQHN0dWRlbnQuZWkudW5pLXN0dXR0Z2FydC5kZT4KKwktIGZpeGVkIG15IHNsaWdodGx5IGluY29ycmVjdCBFbmREaWFsb2cgcGF0Y2gKKwktIGNsZWFuZWQgdXAgd2luLmMKKworCSogd2luZG93cy94MTFkcnYvd25kLmMsIGRsbHMvY29tY3RsMzIvdGFiLmMsIHdpbmRvd3Mvd2lucHJvYy5jOgorCUFuZHJlYXMgTW9ociA8YW1vaHJAc3R1ZGVudC5laS51bmktc3R1dHRnYXJ0LmRlPgorCVNwZWxsaW5nIGZpeGVzLgorCisJKiBkbGxzL2Rzb3VuZC9kc291bmRfbWFpbi5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlNYWRlIHRoZSBidWZmZXIgbGlzdCBpbiB0aGUgZGlyZWN0c291bmQgb2JqZWN0IHRocmVhZC1zYWZlLgorCisJKiBsb2FkZXIvbW9kdWxlLmMsIGxvYWRlci9uZS9tb2R1bGUuYzoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQHN0dWRlbnQuZWkudW5pLXN0dXR0Z2FydC5kZT4KKwlJdCBzZWVtcyB0byBiZSBHZXRNb2R1bGVGaWxlTmFtZTE2IHRoYXQgY2hlY2tzIGV4ZSB2ZXJzaW9uIG9uIHdoZXRoZXIKKwl0byByZXR1cm4gbG9uZyBvciBzaG9ydCBwYXRocywgbm90IEdldE1vZHVsZUZpbGVOYW1lQS4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGcuYzogR2VyYXJkIFBhdGVsIDxnLnBhdGVsQHdhbmFkb28uZnI+CisJQXZvaWQgdG9vIG11Y2ggcmVmcmVzaGluZyB3aGVuIGNoYW5naW5nIHRoZSBkcml2ZSBpbiB0aGUgMTYgYml0cyBmaWxlCisJZGlhbG9nLgorCisJKiBmaWxlcy9kb3NfZnMuYzogUGV0ciBUb21hc2VrIDx0b21hc2VrQGV0Zi5jdW5pLmN6PgorCUdldExvbmdQYXRoTmFtZSByZXdyaXRlLgorCisJKiBkbGxzL2NvbW1kbGcvY2RsZ19Fbi5yYywgZGxscy9jb21tZGxnL2ZpbGVkbGc5NS5jLCBkbGxzL2NvbW1kbGcvZmlsZWRsZ2Jyb3dzZXIuYywgZGxscy9jb21tZGxnL2ZpbGVkbGdicm93c2VyLmgsIGRsbHMvY29tbWRsZy9maWxldGl0bGUuYzoKKwlDb3JlbCBtZXJnZToKKworCVBpZXJyZSBNYWdlYXUKKwlEb24ndCB1cGRhdGUgdGhlIGNvbWJvIGJveCBzZWxlY3Rpb24gd2hlbiBjbG9zaW5nIHRoZSBkaWFsb2cgb25seSB3aGVuCisJY2xpY2tpbmcgb24gT0sgYnV0dG9uLiAgQWRqdXN0IGZpbGUgZGlhbG9nIHNpemUgd2hlbiBoZWxwIGJ1dHRvbiBpc24ndAorCXByZXNlbnQuCisKKwlEb24gS2VsbHkuCisJRml4ZXMgcHJvYmxlbXMgd2l0aCBvcGVuIGRpYWxvZyBib3ggZmlsdGVycy4KKworCVVscmljaCBDemVrYWxsYQorCVByZXZlbnRzIHRoZSBoZWxwIGJ1dHRvbiBmcm9tIGRpc3BsYXlpbmcgb24gT3BlbkZpbGUgZGlhbG9ncyB1bmxlc3MKKwl0aGUgcHJvcGVyIGZsYWcgaXMgc2V0IGluIHRoZSBPUEVORklMRU5BTUUgc3RydWN0LgorCisJWXV4aSBaaGFuZworCUZpeGVkIG1lbW9yeSBsZWFrLgorCisJSmVhbi1DbGF1ZGUgQmF0aXN0YQorCUFkZCB0b29sdGlwcyB0byB0aGUgZmlsZSBEaWFsb2cgdG9vbGJhci4KKworCVN5bHZhaW4gQm91Y2hhcmQsIEJpbGwgSmluCisJVGhyZWUgbmV3IGZ1bmN0aW9ucworCUVudW1TZWxlY3RlZFBpZGxzLCBHZXROdW1TZWxlY3RlZCwgRklMRURMRzk1X09uT3BlblVzaW5nVmlldzogY29ycmVjdGlvbnMKKwlJbnN0ZWFkIG9mIHBhc3NpbmcgaW4gYSBjb3B5IG9mIG9mbiwgcGFzc2luZyBpbiB0aGUgcG9pbnRlciBvZiBvZm4uCisKKwlEYXZpZCBHb2xkaW5nCisJQSAiISIgd2FzIG1pc3NpbmcgaW4gYSBjaGVjayBhZ2FpbnN0IGxwc3RySW5pdGlhbERpci4KKworCVJpY2sgTXV0emtlCisJRml4ZWQgY3Jhc2g6IGlmIGRpYWxvZyBoYXMgbm8gZmlsZXR5cGVzIGFwcGVhcmluZyBpbiB0aGUgZHJvcGRvd24gbGlzdC4KKworCU1hdHQgUm9iZXJ0c29uLCBVbHJpY2ggQ3pla2FsbGEKKwlGaXhlZCBwcm9ibGVtcyBvY2N1cnJpbmcgd2l0aCBzZWxlY3Rpb24gb2YgZmlsZXMgaW5zaWRlIG9wZW5maWxlZGxnLgorCisJKiBkbGxzL2NvbW1kbGcvZmlsZWRsZy5jOiBKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBkZWJpdGVsLm5ldD4KKwktIGFjdGl2YXRlZCB1c2Ugb2YgdGVtcGxhdGVzCisJLSBtb3ZlZCB0aGUgY3JlYXRpbmcgb2YgbmV3IGZvbGRlcnMgdG8gdGhlIHNoZWxsdmlldworCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uaDoKKwlKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBkZWJpdGVsLm5ldD4KKwlTdGFydGVkIHdpdGggc2hlbGwtY2xpcGJvYXJkIGhhbmRsaW5nIChjb250ZXh0IG1lbnUgY3V0JnBhc3RlLAorCWRyYWcmZHJvcCkuCisKKwkqIGRsbHMvc2hlbGwzMi9kYXRhb2JqZWN0LmM6CisJSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJUmVtb3ZlZCBJdGVtSURMaXN0TGlzdCwgcmVvcmdhbmlzYXRpb24sIG1vcmUgZm9ybWF0cy4KKworCSogZGxscy9zaGVsbDMyL3NobHZpZXcuYzogSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJLSBpbXBsZW1lbnRlZCByZW5hbWUsIGNvcHkgYW5kIGRlbGV0ZSBmaWxlCisJLSAibmV3IGZpbGUiIGlzIGFjdGl2YXRpbmcgbGFiZWwgZWRpdCBmb3IgcmVuYW1lCisJLSBpbXBsZW1lbnRlZCBJU2hlbGxWaWV3X1NlbGVjdEl0ZW0KKworCSogZGxscy9zaGVsbDMyL3NocmVzLnJjLCBkbGxzL3NoZWxsMzIvc2hyZXNkZWYuaCwgZGxscy9zaGVsbDMyL3Nodl9iZ19jbWVudS5jOgorCUp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQGRlYml0ZWwubmV0PgorCUJldHRlciBjb250ZXh0IG1lbnVzLgorCisJKiBkbGxzL3NoZWxsMzIvTWFrZWZpbGUuaW4sIGRsbHMvc2hlbGwzMi9jbGlwYm9hcmQuYywgZGxscy9zaGVsbDMyL2NvbnRtZW51LmMsIGRsbHMvc2hlbGwzMi9zaHZfaXRlbV9jbWVudS5jLCBpbmNsdWRlL3dpbmUvb2JqX2NvbnRleHRtZW51LmgsIGluY2x1ZGUvd2luZS9vYmpfc2hlbGx2aWV3LmgsIGluY2x1ZGUvd2luZS91bmRvY3NoZWxsLmg6CisJSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJLSBuZXcgZmlsZXMgcmVsYXRlZCB0byBjb250ZXh0IG1lbnUgYW5kIGRyYWcgZHJvcCBmaWxlIG9wZXJhdGlvbnMKKwktIHJlbmRlciBmdW5jdGlvbnMgZm9yIGNsaXBib2FyZGZvcm1hdHMKKworCSogZGxscy9zaGVsbDMyL3NoZWxsLmMsIGRsbHMvc2hlbGwzMi9zaGVsbHBhdGguYzogU3RlcGhhbmUgTHVzc2llcgorCUltcGxlbWVudGVkIFBhdGhJc1VSTEEgYW5kIG1vZGlmaWVkIFNoZWxsRXhlY3V0ZTE2IHRvIGJlIGFibGUgdG8gbG9hZCBVUkwKKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzIuc3BlYywgZGxscy9zaGVsbDMyL2NoYW5nZW5vdGlmeS5jLCBkbGxzL3NoZWxsMzIvc2hlbGxvcmQuYywgaW5jbHVkZS9zaGVsbC5oLCBpbmNsdWRlL3NoZWxsYXBpLmgsIGluY2x1ZGUvc2hsb2JqLmg6CisJSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJU3RhcnRlZCBpbXBsZW1lbnRhdGlvbiBvZiBzaGVsbCBub3RpZmljYXRpb25zLgorCisJKiBkbGxzL3NoZWxsMzIvc2hsZmlsZW9wLmM6CisJSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJTmV3IGZpbGUgKFNIRmlsZU9wZXJhdGlvbikuCisKKwkqIGRsbHMvc2hlbGwzMi9jbGFzc2VzLmM6IEp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQGRlYml0ZWwubmV0PgorCUZpeGVzLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxmb2xkZXIuaCwgZGxscy9zaGVsbDMyL3NobGZvbGRlci5jOgorCUp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQGRlYml0ZWwubmV0PgorCS0gbmV3IGludGVybmFsIGludGVyZmFjZSBmb3IgaXRlbSBtYW5pcHVsYXRpb24gKGN1dC9wYXN0ZS9uZXcgZm9sZGVyL2RlbGV0ZS9yZW5hbWUpCisJLSBpbXBsZW1lbnRlZCBJUGVyc2lzdEZvbGRlcjIgaW50ZXJmYWNlCisKKwkqIGRsbHMvc2hlbGwzMi9waWRsLmMsIGRsbHMvc2hlbGwzMi9waWRsLmg6CisJSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJTmV3IGFQaWRsIGhhbmRsaW5nIGZ1bmN0aW9ucy4KKworCSogbWlzYy9tYWluLmM6IEF2b2lkIGNyYXNoIG9uIHVzYWdlIG1lc3NhZ2UuCisKKwkqIGRsbHMvYWR2YXBpMzIvcmVnaXN0cnkuYzogQXZvaWQgY3Jhc2ggb24gTlVMTCBkYXRhIHBvaW50ZXIuCisKKwkqIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9ydGwuYzoKKwlBbmRyZWFzIE1vaHIgPGFtb2hyQHN0dWRlbnQuZWkudW5pLXN0dXR0Z2FydC5kZT4KKwlBZGRlZCBzdHViIGZvciBSdGxBc3NlcnQoKS4KKworCSogd2luZG93cy94MTFkcnYva2V5Ym9hcmQuYzoKKwlIaWRlbm9yaSBUYWtlc2hpbWEgPGhpZGVub3JpQGEyLmN0a3R2Lm5lLmpwPgorCUFkZGVkIEphcGFuZXNlIGpwMTA2IGFuZCBwYzk4eDEga2V5Ym9hcmQgbGF5b3V0LgorCisJKiBkbGxzL3dpbm1tL21jaS5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlHb3QgcmlkIG9mIFBST0ZJTEVfIGZ1bmN0aW9ucywgbm93IGFjY2Vzc2luZyBXaW5lIGNvbmZpZyBvcHRpb25zCisJdGhyb3VnaCB0aGUgcmVnaXN0cnkuCisKKwkqIGZpbGVzL3Byb2ZpbGUuYzogRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJV2hpbGUgY3JlYXRpbmcgdGhlIHdpbmUgY29uZmlnIGtleSwgbWFrZSBzdXJlIHRoYXQgb25seSBXaW5lJ3Mgc3Via2V5cworCWFyZSB2b2xhdGlsZS4KKworCSogZ3JhcGhpY3MvcHNkcnYvZHJpdmVyLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUNoZWNrIGZvciBOVUxMIHB0ciBpbiBQU0RSVl9HZXREZXZpY2VDYXBhYmlsaXRpZXMuCisKKwkqIHdpbjMyL2NvbnNvbGUuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJQWRkZWQgYSBiaXQgbWFnaWMgdG8gQ09OU09MRV9nZXRfaW5wdXQgc28gd2UgZG9uJ3QgZ2V0IHNpbmdsZSBFc2NhcGVzCisJZnJvbSBmdW5jdGlvbiBrZXkgZXNjYXBlIHNlcXVlbmNlcy4KKworMjAwMC0wMi0xOSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogbWVtb3J5L2F0b20uYzogQnVnIGZpeCBmb3IgbmF0aXZlIFVTRVIuCisKKwkqIGxvYWRlci9sb2Fkb3JkZXIuYywgd2luZS5pbmk6CisJSGFyZC1jb2RlZCBEbGxQYWlycyBjb25maWd1cmF0aW9uOyB0aGVyZSBpcyBubyBuZWVkIGZvciB0aGUgdXNlciB0bworCWNoYW5nZSBpdC4KKworCSogZ3JhcGhpY3MvcHNkcnYvYWZtLmMsIGdyYXBoaWNzL3gxMWRydi94Zm9udC5jLCBpbmNsdWRlL2NvbnNvbGUuaCwgaW5jbHVkZS9tYWluLmgsIGluY2x1ZGUvb3B0aW9ucy5oLCBtaXNjL21haW4uYywgbWlzYy92ZXJzaW9uLmMsIHdpbmRvd3MveDExZHJ2L21haW4uYywgd2luZG93cy94MTFkcnYvd25kLmMsIGNvbnNvbGUvaW50ZXJmYWNlLmMsIGRvY3VtZW50YXRpb24vd2luZS5tYW4uaW4sIGZpbGVzL3Byb2ZpbGUuYzoKKwlTdG9yZSBjb25maWcgZmlsZSBjb250ZW50cyBpbiB0aGUgcmVnaXN0cnkgc28gd2Ugb25seSBoYXZlIHRvIGxvYWQgaXQKKwlvbmNlIHBlciBzZXNzaW9uLgorCVJlcGxhY2VkIFBST0ZJTEVfRW51bWVyYXRlV2luZUluaVNlY3Rpb24gYnkgUFJPRklMRV9FbnVtV2luZUluaVN0cmluZy4KKwlSZW1vdmVkIGEgZmV3IHVubmVjZXNzYXJ5L3VudXNlZCBjb21tYW5kLWxpbmUgb3B0aW9ucy4KKworMjAwMC0wMi0xOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogbG9hZGVyL2Rvcy9tb2R1bGUuYywgbG9hZGVyL25lL21vZHVsZS5jLCBsb2FkZXIvcGVfaW1hZ2UuYywgbG9hZGVyL3Rhc2suYywgc2NoZWR1bGVyL3Byb2Nlc3MuYywgc2VydmVyL3Byb2Nlc3MuYywgc2VydmVyL3Byb2Nlc3MuaCwgc2VydmVyL3RyYWNlLmMsIGluY2x1ZGUvcHJvY2Vzcy5oLCBpbmNsdWRlL3NlcnZlci5oOgorCVN0b3JlIHRoZSBoYW5kbGUgb2YgdGhlIHByb2Nlc3MgZXhlIGZpbGUgaW4gdGhlIHNlcnZlci4KKwlSZW1vdmVkIFBST0NFU1NfSW5pdGlhbCgpLgorCisJKiBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYzogT3dlbiBXYW5nIDxvd2Vud0Bjb3JlbC5jb20+CisJU2V0IHRoZSB0eXBlIG9mIFZhckJzdHJGcm9tRGF0ZSB0byBkd0ZsYWdzLCBpbnN0ZWFkIG9mIGxjaWQuCisKKwlVbHJpY2ggQ3pla2FsbGEgIDx1bHJpY2hjQGNvcmVsLmNhPgorCUZpeGVkIHRoZSBwcm9ibGVtIHdpdGggdGhlIGRhdGUgYmVpbmcgb2ZmIGJ5IG9uZS4KKworCVBldGFyIERqdWtpYworCVZhcmlhbnRDb3B5IHdhcyBpZ25vcmluZyBWVF9ESVNQQVRDSCxWVF9VTktOT1dOLCBhbmQgVlRfVkFSSUFOVC4gU2FtZQorCXdpdGggVmFyaWFudENsZWFyLgorCUNvZXJjZSBmdW5jdGlvbiBkb2Vzbid0IGltcGxlbWVudCBjb2VyY2lvbiBmb3IgVlRfRElTUEFUQ0ggdHlwZS4KKworCSogaWYxNjMyL2dkaS5zcGVjLCBpZjE2MzIva2VybmVsLnNwZWMsIGlmMTYzMi91c2VyLnNwZWM6CisJQW5kcmVhcyBNb2hyIDxhbW9ockBzdHVkZW50LmVpLnVuaS1zdHV0dGdhcnQuZGU+CisJQWRkZWQvY29ycmVjdGVkIG9yZGluYWxzIG9mIGtlcm5lbCwgZ2RpLCB1c2VyLgorCisJKiBpbmNsdWRlL3dpbi5oLCB3aW5kb3dzL3dpbi5jOiBOb29tZW4gSGFtemEgPG5vb21lbkBtYWNhZGFtaWFuLmNvbT4KKwlQb3B1cCB3aW5kb3dzIHdpbGwgYmUgaGlkZGVuIHdoZW4gbWluaW1pemluZyB0aGUgbWFpbiBmcmFtZS4KKworCSogZGxscy9vbGVhdXQzMi90eXBlbGliLmMsIGRsbHMvb2xlYXV0MzIvdHlwZWxpYi5oOgorCUFsZXhhbmRyZSBKdWxsaWFyZCA8anVsbGlhcmRAY29kZXdlYXZlcnMuY29tPiAoZm9yIENvcmVsKQorCUNoYW5nZWQgdGhlIGxvYWRpbmcgb2YgdHlwZWxpYiBmaWxlcyB0byB1c2UgYSBtZW1vcnkgbWFwcGluZyBpbnN0ZWFkCisJb2YgcmVhZGluZyB0aGUgZmlsZSBiaXQgYnkgYml0LgorCisJKiBmaWxlcy9kcml2ZS5jOiBBbmRyZWFzIE1vaHIgPGFtb2hyQHN0dWRlbnQuZWkudW5pLXN0dXR0Z2FydC5kZT4KKwlEUklWRV9GaW5kRHJpdmVSb290KCkgYWx3YXlzIGNoZWNrZWQgZnJvbSBkcml2ZSBBOiB0byBaOiBmb3IgZWFjaAorCXBhdGggY29tcG9uZW50IGV2ZW4gaWYgYSBtYXRjaCBhbHJlYWR5IG9jY3VycmVkLgorCisJKiBkbGxzL29sZWF1dDMyL29sZTJkaXNwLmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIHByb3RvdHlwZSBmb3IgT2xlVHJhbnNsYXRlQ29sb3IuCisKKwkqIGZpbGVzL2ZpbGUuYzogTWF0dGhldyBDbGluZSA8bWF0dEBuaWdodHJlYWxtcy5jb20+CisJQWRkZWQgV0FSTiBtZXNzYWdlcyBvbiBvcGVuIGVycm9ycy4KKworCSogbWlzYy93c3ByaW50Zi5jOiBIaWRlbm9yaSBUYWtlc2hpbWEgPGhpZGVub3JpQGEyLmN0a3R2Lm5lLmpwPgorCVRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIGJ1ZmZlciBpcyAxMDI0IGJ5dGVzIGluIFdpbjMyLgorCisyMDAwLTAyLTE2ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiByZWxheTMyL3Nub29wLmMsIHdpbmRvd3MvZHJpdmVyLmMsIHdpbmRvd3MvaG9vay5jLCB3aW5kb3dzL3dpbi5jLCB3aW5kb3dzL3dpbnByb2MuYywgaWYxNjMyL3Nub29wLmMsIGlmMTYzMi90aHVuay5jLCBpbmNsdWRlL3JlZ2lvbi5oLCBsb2FkZXIvbG9hZG9yZGVyLmMsIGxvYWRlci9uZS9tb2R1bGUuYywgbWlzYy9kZGVtbC5jLCBtaXNjL3Rvb2xoZWxwLmMsIG9iamVjdHMvZW5obWV0YWZpbGUuYywgb2JqZWN0cy9tZXRhZmlsZS5jLCBvYmplY3RzL3JlZ2lvbi5jLCBmaWxlcy9kcml2ZS5jLCBmaWxlcy9maWxlLmMsIGZpbGVzL3Byb2ZpbGUuYywgZ3JhcGhpY3MvZHJpdmVyLmMsIGdyYXBoaWNzL2VuaG1ldGFmaWxlZHJ2L2dyYXBoaWNzLmMsIGdyYXBoaWNzL2VuaG1ldGFmaWxlZHJ2L2luaXQuYywgZ3JhcGhpY3MvZW5obWV0YWZpbGVkcnYvb2JqZWN0cy5jLCBncmFwaGljcy9tZXRhZmlsZWRydi9iaXRibHQuYywgZ3JhcGhpY3MvbWV0YWZpbGVkcnYvZ3JhcGhpY3MuYywgZ3JhcGhpY3MvbWV0YWZpbGVkcnYvaW5pdC5jLCBncmFwaGljcy9tZXRhZmlsZWRydi9vYmplY3RzLmMsIGdyYXBoaWNzL3dpbjE2ZHJ2L2luaXQuYywgZ3JhcGhpY3Mvd2luMTZkcnYvcHJ0ZHJ2LmMsIGdyYXBoaWNzL3gxMWRydi94Zm9udC5jLCBkbGxzL2x6ZXhwYW5kL2x6ZXhwYW5kX21haW4uYywgZGxscy9tcHIvbXByX21haW4uYywgZGxscy93aW5hc3BpL3dpbmFzcGkxNi5jLCBkbGxzL3dpbm1tL2xvbHZsZHJ2LmMsIGRsbHMvd2lubW0vbWNpLmMsIGRsbHMvd2lubW0vd2luZW9zcy9taWRpLmMsIGRsbHMvd25hc3BpMzIvd2luYXNwaTMyLmMsIGZpbGVzL2Rvc19mcy5jLCBkbGxzL2FkdmFwaTMyL3NlY3VyaXR5LmM6CisJTW92ZWQgU3lzdGVtSGVhcCBhbGxvY2F0aW9ucyB0byB0aGUgcHJvY2VzcyBoZWFwLgorCisJKiB3aW5kb3dzL3dpbi5jOiBHZXJhcmQgUGF0ZWwgPGcucGF0ZWxAd2FuYWRvby5mcj4KKwlEbyBub3QgdXNlIEdsb2JhbEZpbmRBdG9tIHdpdGggYXRvbSBoYW5kbGVzIGluIENyZWF0ZVdpbmRvdyogZnVuY3Rpb25zLgorCisJKiB3aW5kb3dzL2RlZnduZC5jOiBVbHJpY2ggQ3pla2FsbGEgPHVscmljaGNAY29yZWwuY2E+CisJU2VuZCBXTV9IRUxQIG1lc3NhZ2Ugd2hlbiBGMSBpcyBwcmVzc2VkLgorCisJKiBvbGUvbmxzL2JyZi5ubHMsIG9sZS9ubHMvY29yLm5scywgb2xlL25scy9jeW0ubmxzLCBvbGUvbmxzL2dhZS5ubHMsIG9sZS9ubHMvZ2RoLm5scywgb2xlL25scy9nZHYubmxzLCBkb2N1bWVudGF0aW9uL3dpbmUubWFuLmluLCBpbmNsdWRlL29wdGlvbnMuaCwgaW5jbHVkZS93aW5ubHMuaCwgbWlzYy9tYWluLmMsIG9sZS9vbGUybmxzLmM6CisJQWxhc3RhaXIgTWNLaW5zdHJ5IDxBbGFzdGFpci5NY0tpbnN0cnlAZGlnaXRhbC5jb20+CisJQWRkZWQgc3VwcG9ydCBmb3IgdGhlIGZvbGxvd2luZyBjZWx0aWMgbGFuZ3VhZ2VzOiBJcmlzaCBHYWVsaWMsIFNjb3RzCisJR2FlbGljLCBNYW54IEdhZWxpYywgQnJldG9uLCBXZWxzaCwgQ29ybmlzaC4KKworMjAwMC0wMi0xNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9vbGUzMi9jbGlwYm9hcmQuYywgZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvb2xlMzIuc3BlYzoKKwlKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBkZWJpdGVsLm5ldD4KKwlBZGRlZCBzdHViIGZvciBDb1Jlc3VtZUNsYXNzT2JqZWN0cy4KKworCSogd2luZG93cy9kaW5wdXQuYzogTGlvbmVsIFVsbWVyIDxsaW9uZWwudWxtZXJAZnJlZS5mcj4KKwktIGFkZGVkIGFyZ3VtZW50IHByaW50aW5nIHRvIHN0dWJzCisJLSByZXBsYWNlZCBtZW1jbXAgYnkgSXNFcXVhbEdVSUQKKwktIGltcGxlbWVudGVkIEdldENhcGFiaWxpdGllcyBmb3IgTW91c2UgYW5kIEtleWJvYXJkCisKKwkqIGRsbHMvd2luc29jay9zb2NrZXQuYzogT3ZlIEthYXZlbiA8b3Zla0BhcmN0aWNuZXQubm8+CisJaW9jdGxzb2NrZXQoKSBub3cgcmV0dXJucyBzdWNjZXNzIGlmIHRoZSBhcHAgc2V0cyBub25ibG9ja2luZyBtb2RlIGZvcgorCVdTQUFzeW5jU2VsZWN0KCktZWQgc29ja2V0cy4KKworCSogZGxscy9jcnRkbGwvd2NzdHJpbmcuYzogR2VyYWxkIFBmZWlmZXIgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CisJRml4ZWQgRnJlZUJTRCBjb21waWxlLgorCisJKiBkbGxzL3dpbm1tL21jaS5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwktIGZpeGVkIGNyYXNoIG9uIG1jaSBjaGFubmVsIHRyYWNpbmcKKwktIGZpeGVkIDE2IHRvIDMyIGJpdCB0cmFuc2xhdGlvbiBmb3IgTUNJX0JSRUFLIGFuZCBNQ0lfU1lTSU5GTyBtZXNzYWdlcworCisyMDAwLTAyLTEzICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBncmFwaGljcy94MTFkcnYvYml0Ymx0LmM6IEphbWVzIEFiYmF0aWVsbG8gPGFiYmV5akB3cGkuZWR1PgorCU1vdmVkIENMSVBQSU5HX1VwZGF0ZUdDQ2xpcHBpbmcgY2FsbCBvdXRzaWRlIG9mIHRoZSBYMTEgc2VjdGlvbi4KKworCSogaW5jbHVkZS93aW5iYXNlLmgsIHNjaGVkdWxlci9wcm9jZXNzLmMsIHNjaGVkdWxlci90aHJlYWQuYywgc2VydmVyL3Byb2Nlc3MuYywgc2VydmVyL3RocmVhZC5jOgorCURhdmUgUGlja2xlcyA8ZGF2ZXBAbnVnYXRlLmRlbW9uLmNvLnVrPgorCUFkZGVkIGRlZmluaXRpb24gZm9yIFNUSUxMX0FDVElWRS4KKworCSogc2VydmVyL3JlcXVlc3QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvY29uZmlnLmguaW4sIHNjaGVkdWxlci9jbGllbnQuYzoKKwlKdWVyZ2VuIExvY2sgPG5veEBqZWxhbC5rbi1icmVtZW4uZGU+CisJQWRkZWQgY29uZmlndXJlIGNoZWNrIGZvciB0aGUgdW5peCBkb21haW4gc29ja2FkZHIgbGVuZ3RoLgorCisJKiBtaXNjL2Nkcm9tLmM6IEp1ZXJnZW4gTG9jayA8bm94QGplbGFsLmtuLWJyZW1lbi5kZT4KKwlGaXhlZCBDRFJPTV9BdWRpb19TZWVrIGZvciBub24tbGludXggc3lzdGVtcy4KKworCSogb2JqZWN0cy9nZGlvYmouYywgaW5jbHVkZS9nZGkuaDogTWF0dGhldyBDbGluZSA8bWF0dEBuaWdodHJlYWxtcy5jb20+CisJR2V0T2JqZWN0QSgpIG5vdyByZWplY3RzIEdESSBoYW5kbGVzIHdoaWNoIGFyZSBpbnZhbGlkLgorCisJKiBtaXNjL3ZlcnNpb24uYzogSnVlcmdlbiBMb2NrIDxub3hAamVsYWwua24tYnJlbWVuLmRlPgorCVZFUlNJT05fR2V0U3lzdGVtRExMVmVyc2lvbiBjcmFzaGVkIHdoZW4gYmVpbmcgY2FsbGVkIG9uIGEgLnNvLgorCisJKiB3aW5kb3dzL2RlZnduZC5jOiBNYXJ0aW4gRnVjaHMgPG1hcnRpbi1mdWNoc0BnbXgubmV0PgorCURpc3BsYXkgdGhlIHN5c3RlbSBwb3B1cCBtZW51IHdoZW4gY2xpY2tpbmcgd2l0aCB0aGUgcmlnaHQgbW91c2UKKwlidXR0b24gaW4gdGhlIHdpbmRvdyBjYXB0aW9uLgorCisJKiBkbGxzL29sZTMyL2NsaXBib2FyZC5jOiBSZW1vdmVkIGNoZWNrIGZvciBjbGFzcyBleGlzdGVuY2UuCisKKwkqIGRsbHMvY29tY3RsMzIvYW5pbWF0ZS5jLCBkbGxzL2NvbWN0bDMyL2NvbWJvZXguYywgZGxscy9jb21jdGwzMi9kYXRldGltZS5jLCBkbGxzL2NvbWN0bDMyL2ZsYXRzYi5jLCBkbGxzL2NvbWN0bDMyL2hlYWRlci5jLCBkbGxzL2NvbWN0bDMyL2hvdGtleS5jLCBkbGxzL2NvbWN0bDMyL2lwYWRkcmVzcy5jLCBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmMsIGRsbHMvY29tY3RsMzIvbW9udGhjYWwuYywgZGxscy9jb21jdGwzMi9uYXRpdmVmb250LmMsIGRsbHMvY29tY3RsMzIvcGFnZXIuYywgZGxscy9jb21jdGwzMi9wcm9ncmVzcy5jLCBkbGxzL2NvbWN0bDMyL3JlYmFyLmMsIGRsbHMvY29tY3RsMzIvc3RhdHVzLmMsIGRsbHMvY29tY3RsMzIvdGFiLmMsIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jLCBkbGxzL2NvbWN0bDMyL3Rvb2x0aXBzLmMsIGRsbHMvY29tY3RsMzIvdHJhY2tiYXIuYywgZGxscy9jb21jdGwzMi91cGRvd24uYzoKKwlBbGV4YW5kcmUgSnVsbGlhcmQgPGp1bGxpYXJkQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZW1vdmVkIHN1cGVyZmx1b3VzIEdsb2JhbEZpbmRBdG9tIGNhbGxzLgorCisJKiBtaXNjL3JlZ2lzdHJ5LmM6IEp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQGRlYml0ZWwubmV0PgorCVJlYWRpbmcgb2YgcmkgYmxvY2tzLgorCUJldHRlciBlcnJvciBoYW5kbGluZy4KKworCSogd2luZG93cy9tZGkuYzogTWF0dGhldyBDbGluZSA8bWF0dEBuaWdodHJlYWxtcy5jb20+CisJQ2hlY2sgdGhhdCBjaS0+aFdpbmRvd01lbnUgaXMgbm90IHplcm8gYmVmb3JlIHVzaW5nIGl0LgorCisJKiBkbGxzL2NydGRsbC9jcnRkbGwuc3BlYywgZGxscy9jcnRkbGwvd2NzdHJpbmcuYywgZGxscy9udGRsbC9udGRsbC5zcGVjOgorCURhdmlkIEhvd2VsbHMgPERhdmlkLkhvd2VsbHNAbmV4b3IuY28udWs+CisJSW1wbGVtZW50ZWQgaXN3KigpIHdjdHlwZS5oIGZ1bmN0aW9ucy4KKworCSogbWlzY2VtdS9tYWluLmM6IEFuZHJlYXMgTW9ociA8YW1vaHJAc3R1ZGVudC5laS51bmktc3R1dHRnYXJ0LmRlPgorCUJldHRlciBlcnJvciBtZXNzYWdlcy4KKworCSogZGxscy9jb21jdGwzMi90cmVldmlldy5jOiBBbGV4IFByaWVtIDxhbGV4cEBzY2kua3VuLm5sPgorCUZpeGVkIG9mZi1ieS1vbmUgZXJyb3IuCisKKwkqIG1lbW9yeS9hdG9tLmMsIHNlcnZlci9NYWtlZmlsZS5pbiwgc2VydmVyL2F0b20uYywgc2VydmVyL21haW4uYywgc2VydmVyL29iamVjdC5oLCBzZXJ2ZXIvcmVxdWVzdC5oLCBzZXJ2ZXIvdHJhY2UuYywgc2VydmVyL3VuaWNvZGUuaCwgd2luZG93cy9jbGFzcy5jLCB3aW5kb3dzL21lc3NhZ2UuYywgd2luZG93cy93aW4uYywgaWYxNjMyL2tlcm5lbC5zcGVjLCBpZjE2MzIvdXNlci5zcGVjLCBpbmNsdWRlL3NlcnZlci5oLCBpbmNsdWRlL3dpbmUvd2luYmFzZTE2LmgsIGluY2x1ZGUvd2luZS93aW51c2VyMTYuaDoKKwlNb3ZlZCBnbG9iYWwgYXRvbXMgdG8gdGhlIHNlcnZlciAoYmFzZWQgb24gdGhlIHdvcmsgb2YgU2VyZ2VpCisJVHVyY2hhbm92IDx0dXJjaGFub3ZAb3R2cHJpbS5ydT4pLgorCisyMDAwLTAyLTEyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBpbmNsdWRlL3dpbmdkaS5oOiBNYXR0aGV3IENsaW5lIDxtYXR0QG5pZ2h0cmVhbG1zLmNvbT4KKwlBZGRlZCBhIFBURVhUTUVUUklDW0F8V10gZGVmaW5pdGlvbi4KKworCSogaW5jbHVkZS93aW5kZWYuaDogTWF0dGhldyBDbGluZSA8bWF0dEBuaWdodHJlYWxtcy5jb20+CisJQWRkZWQgdHlwZWRlZnMgZm9yIFBTSE9SVCBhbmQgUFVTSE9SVC4KKworCSogd2luZG93cy9kaWFsb2cuYzogQW5kcmVhcyBNb2hyIDxhbW9ockBzdHVkZW50LmVpLnVuaS1zdHV0dGdhcnQuZGU+CisJUHJvdGVjdCBFbmREaWFsb2coKSBmcm9tIGludmFsaWQgd2luZG93IGhhbmRsZXMuCisKKwkqIGdyYXBoaWNzL2QzZGxpZ2h0LmMsIGdyYXBoaWNzL2QzZG1hdGVyaWFsLmMsIGdyYXBoaWNzL2QzZHRleHR1cmUuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCVJlcGxhY2VkIGZwcmludGZzIGJ5IHByb3BlciBkZWJ1ZyBtYWNyb3MgYW5kIGZpeGVkIHNvbWUgY29tcGlsYXRpb24gd2FybmluZ3MuCisKKzIwMDAtMDItMTAgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGluY2x1ZGUvZGRyYXcuaDogSWFuIFNjaG1pZHQgPGlzY2htaWR0QGNmbC5yci5jb20+CisJQWRkZWQgR1VJRHMsIGRlZmluZXMsIGFuZCBzdHJ1Y3R1cmVzIGZvciBEaXJlY3RYNy4KKworCSogZGxscy93aW5tbS93aW5tbV9SdS5yYywgZGxscy93aW5tbS93aW5tbV9yZXMucmM6CisJT2xlZyBLb3JkYSA8b2xlZ0Bpc3AubnNjLnJ1PgorCUFkZGVkIFJ1c3NpYW4gdHJhbnNsYXRpb24uCisKKwkqIHdpbmRvd3MvY2xhc3MuYzogUGhpbGxpcCBFem9sdCA8ZXpvbHRAcGVyZi56a28uZGVjLmNvbT4KKwlBZGRlZCBtaXNzaW5nIGdvdG8gaW4gc3dpdGNoIHN0YXRlbWVudC4KKworCSogbWlzYy9tYWluLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUluaXRpYWxpemUgdGhlIE5PTkNMSUVOVE1FVFJJQ1Mgd2l0aCAwIChoZWxwcyBtb29yaHVobi5leGUpLgorCisJKiB3aW4zMi9rZXJuZWwzMi5jLCB3aW5kb3dzL3gxMWRydi9ldmVudC5jLCB3aW5kb3dzL3gxMWRydi9tYWluLmMsIGdyYXBoaWNzL3BzZHJ2L2FmbS5jLCBncmFwaGljcy9wc2Rydi9wcGQuYywgZ3JhcGhpY3MvcHNkcnYvcHMuYywgaWYxNjMyL2J1aWx0aW4uYywgaW5jbHVkZS9kZWJ1Z2RlZnMuaCwgaW5jbHVkZS9kZWJ1Z3Rvb2xzLmgsIGluY2x1ZGUvbWlzY2VtdS5oLCBtZW1vcnkvZ2xvYmFsLmMsIG1lbW9yeS9oZWFwLmMsIG1lbW9yeS9sZHQuYywgbWVtb3J5L3ZpcnR1YWwuYywgbWlzYy9jcHUuYywgbWlzYy9kZWJ1Z3N0ci5jLCBtaXNjL2Vycm9yLmMsIG1pc2MvbWFpbi5jLCBtaXNjL3JlZ2lzdHJ5LmMsIG1zZG9zL2RwbWkuYywgbXNkb3MvaW50MmEuYywgbXNkb3MvaW50M2QuYywgbXNkb3MvaW50NDEuYywgbXNkb3MvaW50NGIuYywgbXNkb3MvaW9wb3J0cy5jLCByZWxheTMyL3Nub29wLmMsIHRvb2xzL21ha2VfZGVidWcsIGRsbHMvd2lubW0vbWNpY2RhL21jaWNkYS5jLCBkbGxzL3dpbm1tL21jaXNlcS9tY2ltaWRpLmMsIGRsbHMvd2lubW0vbW1pby5jLCBkbGxzL3dpbm1tL3dpbmVvc3MvbWl4ZXIuYywgZGxscy93bmFzcGkzMi93aW5hc3BpMzIuYywgZmlsZXMvZmlsZS5jLCBncmFwaGljcy9kZHJhdy5jLCBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9vbGUzMi9jb21wb3NpdGVtb25pa2VyLmMsIGRsbHMvb2xlYXV0MzIvdHlwZWxpYi5jLCBkbGxzL3NoZWxsMzIvY2xhc3Nlcy5jLCBkbGxzL3NoZWxsMzIvc2hlbGxvcmQuYywgZGxscy92ZXJzaW9uL2luc3RhbGwuYywgZGxscy92ZXJzaW9uL3Jlc291cmNlLmMsIGRsbHMvd2luYXNwaS93aW5hc3BpMTYuYywgZGxscy9hZHZhcGkzMi9yZWdpc3RyeS5jLCBkbGxzL2NvbWN0bDMyL2RhdGV0aW1lLmMsIGRsbHMvY29tY3RsMzIvaXBhZGRyZXNzLmMsIGRsbHMvY29tY3RsMzIvdHJhY2tiYXIuYywgZGxscy9jb21tZGxnL2ZpbGVkbGc5NS5jLCBkbGxzL2RwbGF5eC9kcGxheXhfZ2xvYmFsLmMsIGRsbHMvZHNvdW5kL2Rzb3VuZF9tYWluLmMsIGRsbHMvbHpleHBhbmQvbHpleHBhbmRfbWFpbi5jLCBkbGxzL250ZGxsL21pc2MuYywgZGxscy9udGRsbC9udGRsbF9taXNjLmgsIGRsbHMvbnRkbGwvc2lnbmFsX2kzODYuYzoKKwlPcHRpbWl6ZWQgZGVidWdnaW5nIEFQSSB0byByZWR1Y2UgY29kZSBzaXplLgorCisJKiBsaWJyYXJ5L3dpbmVzdHViLmMsIG1pc2MvY2Ryb20uYywgbXNkb3MvaW50MmYuYywgb2JqZWN0cy9saW5lZGRhLmMsIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jLCBkbGxzL29sZWNsaS9vbGVjbGlfbWFpbi5jLCBkbGxzL29sZXN2ci9vbGVzdnJfbWFpbi5jLCBncmFwaGljcy9jYWNoZS5jLCBncmFwaGljcy9lc2NhcGUuYywgZ3JhcGhpY3MvdHR5ZHJ2L3RleHQuYywgaW5jbHVkZS9jb2xvci5oLCBpbmNsdWRlL2VuaG1ldGFmaWxlZHJ2LmgsIGluY2x1ZGUvbWV0YWZpbGVkcnYuaCwgaW5jbHVkZS9vbGUuaCwgaW5jbHVkZS9wc2Rydi5oLCBpbmNsdWRlL3dpbjE2ZHJ2LmgsIGluY2x1ZGUvd2luZ2RpLmgsIGRsbHMvb2xlMzIvY29tcG9iai5jLCBkbGxzL29sZTMyL2RhdGFjYWNoZS5jLCBkbGxzL29sZTMyL3N0b3JhZ2UuYzoKKwlSZW1vdmVkIGV4dHJhIGluY2x1ZGVzIGZyb20gb2xlLmggYW5kIHdpbmdkaS5oLgorCisJKiAqLyo6CisJSmVyZW15IFdoaXRlIDxqd2hpdGVAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZWQgI2luY2x1ZGUgb2Ygd2luZ2RpLmggYW5kIHdpbmRlZi5oIGZyb20gd2ludXNlci5oIChhbmQgcmVzb2x2ZWQKKwl0aGUgcmVzdWx0aW5nIGNvbXBpbGF0aW9uIGZhaWx1cmVzKS4KKworMjAwMC0wMi0wNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmM6IE93ZW4gV2FuZyA8b3dlbndAY29yZWwuY2E+CisJTWFrZSBDTFNJREZyb21TdHJpbmcgcmV0dXJuIGEgQ0xTSUQgb2YgemVyb3MgaW5zdGVhZCBvZiBjcmFzaGluZyB3aGVuCisJcGFzc2VkIGEgbnVsbCBwb2ludGVyLgorCisJKiBkbGxzL3dpbm1tL2pveXN0aWNrLmM6IEdlcmFsZCBQZmVpZmVyIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgorCUZpeGVkIHVuY29uZGl0aW9uYWwgdXNlIG9mIEpPWURFVi4KKworCSogaW5jbHVkZS9jb21tZGxnLmgsIGluY2x1ZGUvd2luZG93c3guaCwgaW5jbHVkZS93aW5nZGkuaCwgaW5jbHVkZS93aW51c2VyLmg6CisJTWljaGFlbCBDYXJkZW5hcyA8bWljaGFlbF9jYXJkZW5hc0BkZW5lYmEuY29tPgorCUFkZGVkIGEgYnVuY2ggb2YgbWFjcm9zIG5lZWRlZCBmb3IgY29tcGlsaW5nIFdpbmVsaWIgYXBwcy4KKworCSogaW5jbHVkZS9jb21tY3RybC5oOiBKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBkZWJpdGVsLm5ldD4KKwlBZGRlZCBMaXN0Vmlld19FZGl0TGFiZWwgbWFjcm9zLgorCisJKiBkbGxzL2NvbW1kbGcvY2RsZzMyLmM6IEp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQGRlYml0ZWwubmV0PgorCUNoYW5nZWQgaW1wb3J0IHRvIG9yZGluYWwuCisKKwkqIGluY2x1ZGUvd2luZS9vYmpfc2hlbGxmb2xkZXIuaDoKKwlKdWVyZ2VuIFNjaG1pZWQgPGp1ZXJnZW4uc2NobWllZEBkZWJpdGVsLm5ldD4KKwlBZGRlZCBJUGVyc2lzdEZvbGRlcjIgaW50ZXJmYWNlLgorCisJKiBtaXNjL2Nkcm9tLmMsIG1zZG9zL2ludDJmLmMsIGRsbHMvd2lubW0vbWNpY2RhL21jaWNkYS5jLCBkbGxzL3dpbm1tL21jaWNkYS9tY2ljZGEuc3BlYywgZmlsZXMvZHJpdmUuYywgaW5jbHVkZS9jZHJvbS5oLCBpbmNsdWRlL2RlYnVnZGVmcy5oOgorCUFuZHJlYXMgTW9ociA8YW1vaHJAc3R1ZGVudC5laS51bmktc3R1dHRnYXJ0LmRlPgorCS0gaW1wbGVtZW50ZWQgc2VyaWFsIG51bWJlcnMgZm9yIGF1ZGlvIENEcyBhbmQgZGF0YSBDRHMKKwktIGJpZyBjbGVhbiB1cCBvZiBtaXNjL2Nkcm9tLmMgYW5kIGRsbHMvd2lubW0vbWNpY2RhL21jaWNkYS5jIGZ1bmN0aW9uCisJICBuYW1pbmcgYW5kIHN1Y2gKKwktIHNwbGl0IGRlYnVnIGNoYW5uZWwgY2RhdWRpbyBpbnRvIGNkcm9tIGFuZCBtY2ljZGEKKwktIGZpeGVkIHNvbWUgdHlwb3MKKworCSogZGxscy9vbGVhdXQzMi9vbGVmb250LmMsIGluY2x1ZGUvb2xlY3RsLmg6CisJU2VhbiBMYW5nbGV5IDxzZWFubEBjb3JlbC5jYT4KKwlNYWRlIE9sZUNyZWF0ZUZvbnRJbmRpcmVjdCBoYXZlIHRoZSBzYW1lIHNpZ25hdHVyZSAoZXhhY3RseSkgYXMgdGhlCisJaGVhZGVyIGZpbGUuIEFkZGVkIG9sZXBybzMyIGRsbCBzdHVicy4KKworCSogTWFrZS5ydWxlcy5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRsbHMvTWFrZWZpbGUuaW4sIGRsbHMvb2xlcHJvMzIvLmN2c2lnbm9yZSwgZGxscy9vbGVwcm8zMi9NYWtlZmlsZS5pbiwgZGxscy9vbGVwcm8zMi9SRUFETUUsIGRsbHMvb2xlcHJvMzIvb2xlcHJvMzIuc3BlYywgZGxscy9vbGVwcm8zMi9vbGVwcm8zMnN0dWJzLmM6CisJU2VhbiBMYW5nbGV5IDxzZWFubEBjb3JlbC5jYT4KKwlPTEVQUk8zMiBzdHVicy4KKworCSogd2luZG93cy9jbGlwYm9hcmQuYzogSnVlcmdlbiBTY2htaWVkIDxqdWVyZ2VuLnNjaG1pZWRAZGViaXRlbC5uZXQ+CisJQWRkZWQgQ0ZfSERST1AuCisKKwkqIGRsbHMvd2lubW0vam95c3RpY2suYzogV29sZmdhbmcgU2Nod290emVyIDx3b3NjaHdvdEBnbXgubmV0PgorCUV4dGVuZGVkIHRoZSB3aW5tbSBqb3lzdGljayBBUEkgY2FsbHMgdG8gc3VwcG9ydCB0aGUgbmV3IExpbnV4CisJam95c3RpY2sgZHJpdmVyLgorCisJKiBzZXJ2ZXIvY29udGV4dF9pMzg2LmM6IEp1ZXJnZW4gTG9jayA8bm94QGplbGFsLmtuLWJyZW1lbi5kZT4KKwlBZGRlZCBjb250ZXh0IGZ1bmN0aW9ucyBmb3IgRnJlZUJTRC4KKworCSogZGxscy9zaGVsbDMyL3N5c3RyYXkuYzogU2hlcmkgU3RlZXZlcyA8c2hlcmlAbWFjYWRhbWlhbi5jb20+CisJRml4IGZvciB0aGUgc3lzdGVtIHRyYXksIEljb24gYW5kIHBvcHVwIG1lbnUncyBub3cgd29yay4KKworCSogZ3JhcGhpY3MvZGRyYXcuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJVXNlIHdpbmRvdyBwcm9wZXJ0aWVzIGluc3RlYWQgb2Ygd2luZG93IGxvbmcsIGFsc28gdXNlIHRoZW0gdG8KKwlkZXRlcm1pbmUgaWYgd2UgcmVhbGx5IG93biBhIHdpbmRvdyBhbmQgY2FuIGRlc3Ryb3kgaXQuCisJVGhlIHBpeGVsZm9ybWF0IGZvciAyNTYgY29sb3JzIGhhcyBQQUxFVFRFfFJHQiBmbGFncyAoVG9tYiBSYWlkZXIgMikKKwlTZXQgcGFpbnRhYmxlIGZsYWcgZm9yIGFwcGxpY2F0aW9uIHBhc3NlZCBjb29wZXJhdGl2ZS9kcmF3aW5nIHdpbmRvdy4KKwlHZXREaXNwbGF5TW9kZTogV2UgbWlnaHQgaGF2ZSBhbmQgZG8gc3VwcG9ydCAyIGJhY2tidWZmZXJzLgorCisJKiBkbGxzL29sZTMyL21vbmlrZXIuYzogTm9vbWVuIEhhbXphIDxub29tZW5AbWFjYWRhbWlhbi5jb20+CisJUnVubmluZyBvYmplY3QgdGFibGUgYXJlIG5vdCB1c2luZyAwIGFzIGEgdmFsaWQgaW5kZXggYW55bW9yZS4KKworCSogY29udHJvbHMvc3RhdGljLmM6IEx1YyBUb3VyYW5nZWF1IDxsdWNAbWFjYWRhbWlhbi5jb20+CisJSW1wbGVtZW50YXRpb24gb2YgU3RhdGljIE93bmVyRHJhdy4KKworCSogZGxscy9jb21jdGwzMi9pbWFnZWxpc3QuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJSGVpZ2h0IGNhbGN1bGF0aW9uIHdhcyAxIG9mZiBpbiBJbWFnZUxpc3RfUmVhZC4KKworMjAwMC0wMi0wMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogcHJvZ3JhbXMvdmlldy9pbml0LmMsIHByb2dyYW1zL3ZpZXcvdmlldy5jLCB0b29scy93cmMvd3JjLmMsIHdpbmRvd3MvbWRpLmMsIGNvbnRyb2xzL2VkaXQuYywgY29udHJvbHMvbWVudS5jLCBkbGxzL2NvbW1kbGcvY29sb3JkbGcuYywgZGxscy9jb21tZGxnL2ZpbGVkbGcuYywgZGxscy9jb21tZGxnL2ZpbmRkbGcuYywgZGxscy9jb21tZGxnL2ZvbnRkbGcuYywgZGxscy9jb21tZGxnL3ByaW50ZGxnLmMsIGRsbHMvc2hlbGwzMi9icnNmb2xkZXIuYywgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jLCBncmFwaGljcy9wc2Rydi9kcml2ZXIuYywgaW5jbHVkZS9yZXNvdXJjZS5oLCBsb2FkZXIvbmUvcmVzb3VyY2UuYzoKKwlSZW1vdmVkIHJlc291cmNlLmguCisKKwkqIHByb2dyYW1zL3JlZ3Rlc3QvTWFrZWZpbGUuaW4sIHByb2dyYW1zL3JlZ3Rlc3QvcmVndGVzdC5zcGVjLCBwcm9ncmFtcy92aWV3Ly5jdnNpZ25vcmUsIHByb2dyYW1zL3ZpZXcvTWFrZWZpbGUuaW4sIHByb2dyYW1zL3ZpZXcvdmlldy5zcGVjLCBwcm9ncmFtcy93Y21kLy5jdnNpZ25vcmUsIHByb2dyYW1zL3djbWQvTWFrZWZpbGUuaW4sIHByb2dyYW1zL3djbWQvd2NtZC5zcGVjLCBwcm9ncmFtcy93aW5oZWxwLy5jdnNpZ25vcmUsIHByb2dyYW1zL3dpbmhlbHAvTWFrZWZpbGUuaW4sIHByb2dyYW1zL3dpbmhlbHAvd2luaGVscC5zcGVjLCBwcm9ncmFtcy93aW52ZXIvLmN2c2lnbm9yZSwgcHJvZ3JhbXMvd2ludmVyL01ha2VmaWxlLmluLCBwcm9ncmFtcy93aW52ZXIvd2ludmVyLnNwZWMsIHByb2dyYW1zL2F2aXRvb2xzLy5jdnNpZ25vcmUsIHByb2dyYW1zL2F2aXRvb2xzL01ha2VmaWxlLmluLCBwcm9ncmFtcy9hdml0b29scy9hdmlpbmZvLnNwZWMsIHByb2dyYW1zL2F2aXRvb2xzL2F2aXBsYXkuc3BlYywgcHJvZ3JhbXMvYXZpdG9vbHMvaWNpbmZvLnNwZWMsIHByb2dyYW1zL2Nsb2NrLy5jdnNpZ25vcmUsIHByb2dyYW1zL2Nsb2NrL01ha2VmaWxlLmluLCBwcm9ncmFtcy9jbG9jay9jbG9jay5zcGVjLCBwcm9ncmFtcy9jbWRsZ3RzdC8uY3ZzaWdub3JlLCBwcm9ncmFtcy9jbWRsZ3RzdC9NYWtlZmlsZS5pbiwgcHJvZ3JhbXMvY21kbGd0c3QvY21kbGd0c3Quc3BlYywgcHJvZ3JhbXMvY29udHJvbC8uY3ZzaWdub3JlLCBwcm9ncmFtcy9jb250cm9sL01ha2VmaWxlLmluLCBwcm9ncmFtcy9jb250cm9sL2NvbnRyb2wuc3BlYywgcHJvZ3JhbXMvbm90ZXBhZC8uY3ZzaWdub3JlLCBwcm9ncmFtcy9ub3RlcGFkL01ha2VmaWxlLmluLCBwcm9ncmFtcy9ub3RlcGFkL25vdGVwYWQuc3BlYywgcHJvZ3JhbXMvb3N2ZXJzaW9uY2hlY2svLmN2c2lnbm9yZSwgcHJvZ3JhbXMvb3N2ZXJzaW9uY2hlY2svTWFrZWZpbGUuaW4sIHByb2dyYW1zL29zdmVyc2lvbmNoZWNrL29zdmVyc2lvbmNoZWNrLnNwZWMsIHByb2dyYW1zL3Byb2dtYW4vLmN2c2lnbm9yZSwgcHJvZ3JhbXMvcHJvZ21hbi9NYWtlZmlsZS5pbiwgcHJvZ3JhbXMvcHJvZ21hbi9wcm9nbWFuLnNwZWMsIHByb2dyYW1zL3JlZ2FwaS8uY3ZzaWdub3JlLCBwcm9ncmFtcy9yZWdhcGkvTWFrZWZpbGUuaW4sIHByb2dyYW1zL3JlZ2FwaS9yZWdhcGkuc3BlYywgcHJvZ3JhbXMvcmVndGVzdC8uY3ZzaWdub3JlLCBsaWJ0ZXN0Ly5jdnNpZ25vcmUsIGxpYnRlc3QvTWFrZWZpbGUuaW4sIGxpYnRlc3QvZXhwYW5kLnNwZWMsIGxpYnRlc3QvaGVsbG8uc3BlYywgbGlidGVzdC9oZWxsbzIuc3BlYywgbGlidGVzdC9oZWxsbzMuc3BlYywgbGlidGVzdC9oZWxsbzQuc3BlYywgbGlidGVzdC9oZWxsbzUuc3BlYywgbGlidGVzdC9uZXcuc3BlYywgbGlidGVzdC9yb2xleC5zcGVjLCBsaWJ0ZXN0L3ZhcnRlc3Quc3BlYywgbGlidGVzdC92b2xpbmZvLnNwZWM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJQWRkZWQgLnNwZWMgZmlsZXMgZm9yIGFsbCBsaWJ0ZXN0LyBhbmQgcHJvZ3JhbXMvIFdpbmVMaWIgYXBwcy4KKwlVcGRhdGVkIGFsbCBNYWtlZmlsZXMgdG8gdXNlIC5zcGVjIGZpbGVzIGFuZCBuZXcgcmVzb3VyY2UgaGFuZGxpbmcuCisKKwkqIGxvYWRlci9saWJyZXMuYywgbG9hZGVyL21haW4uYywgbG9hZGVyL3BlX3Jlc291cmNlLmMsIGxvYWRlci9yZXNvdXJjZS5jLCByZWxheTMyL2J1aWx0aW4zMi5jLCByZXNvdXJjZXMvc3lzcmVzLmMsIHRvb2xzL2J1aWxkLmMsIGluY2x1ZGUvYnVpbHRpbjMyLmgsIGluY2x1ZGUvbGlicmVzLmgsIGluY2x1ZGUvbW9kdWxlLmgsIGluY2x1ZGUvcGVfaW1hZ2UuaCwgaW5jbHVkZS9yZXNvdXJjZS5oLCBsb2FkZXIvTWFrZWZpbGUuaW4sIGxvYWRlci9lbGYuYzoKKwlVbHJpY2ggV2VpZ2FuZCA8d2VpZ2FuZEBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKwlBZGRlZCAuc3BlYyBrZXl3b3JkICdtb2RlJyB0byBhbGxvdyBjcmVhdGluZyBidWlsdC1pbiBFWEUgbW9kdWxlcy4KKwlVc2UgYnVpbHQtaW4gRVhFIG1vZHVsZXMgZm9yIFdpbmVMaWIgYXBwcyAoaW5zdGVhZCBvZiBFTEYgbW9kdWxlcykuCisJUmVtb3ZlZCBkdW1teSBFTEYgbW9kdWxlIGNyZWF0aW9uLgorCVJlbW92ZWQgTElCUkVTIGhhbmRsaW5nLgorCisJKiBwcm9ncmFtcy9ub3RlcGFkL21haW4uYzoKKwlVbHJpY2ggV2VpZ2FuZCA8d2VpZ2FuZEBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKwlGaXhlZCBtZW1vcnkgb3ZlcndyaXRlIGJ1Zy4KKworCSogaW5jbHVkZS93aW5kZWYuaCwgaW5jbHVkZS93aW5lL3dpbmRlZjE2Lmg6CisJSmVyZW15IFdoaXRlIDxqd2hpdGVAY29kZXdlYXZlcnMuY29tPgorCU1vdmVkIGRlZmluaXRpb25zIHN1Y2ggYXMgQk9PTDE2IGFuZCBJTlQxNiBmcm9tIHdpbmRlZi5oIGludG8KKwl3aW5lL3dpbmRlZjE2LmguCisKKwkqIG9sZS9vbGUybmxzLmM6IEp1bGlvIEPpc2FyIEfhenF1ZXogPGpnYXpxdWV6QGRsZC5uZXQ+CisJR2V0TnVtYmVyRm9ybWF0QSBpbXBsZW1lbnRhdGlvbiBhZGRlZC4KKworCSogd2luMzIvY29uc29sZS5jOiBNYXJjdXMgTWVpc3NuZXIgPE1hcmN1cy5NZWlzc25lckBjYWxkZXJhLmRlPgorCVNhdmUgYW5kIHJlc3RvcmUgY3Vyc29yIGluIFdyaXRlQ29uc29sZU91dHB1dEEuCisKKwkqIGluY2x1ZGUvZGF0ZXRpbWUuaCwgaW5jbHVkZS9tb250aGNhbC5oLCBkbGxzL2NvbWN0bDMyL2RhdGV0aW1lLmMsIGRsbHMvY29tY3RsMzIvbW9udGhjYWwuYzoKKwlBbGV4IFByaWVtIDxhbGV4cEBzY2kua3VuLm5sPgorCS0gSW1wbGVtZW50YXRpb24gb2YgV01fU0VURk9STUFUCisJLSBSZXdvcmtlZCBkcmF3aW5nL3NlbGVjdGlvbgorCS0gSW1wbGVtZW50YXRpb24gb2YgV01fS0VZRE9XTgorCisJKiBpbmNsdWRlL21pc2NlbXUuaCwgbXNkb3MvaW50MDkuYywgbXNkb3MvaW50MTYuYzoKKwlPdmUgS2FhdmVuIDxvdmVrQGFyY3RpY25ldC5ubz4KKwlBZGRlZCBJTlRfSW50MTZSZWFkQ2hhciBhbmQgbWFkZSBpbnQwOSBoYW5kbGUgc3BlY2lhbCBrZXlzLgorCisJKiBncmFwaGljcy92Z2EuYywgaW5jbHVkZS92Z2EuaDogT3ZlIEthYXZlbiA8b3Zla0BhcmN0aWNuZXQubm8+CisJQWRkZWQgYWxwaGFudW1lcmljIG1vZGUgdG8gdGhlIFZHQSBlbXVsYXRpb24uCisJVXNlIHNlcnZpY2UgdGhyZWFkIGZvciB0aGUgcGVyaW9kaWMgcmVmcmVzaC4KKworCSogbG9hZGVyL2Rvcy9tb2R1bGUuYzogT3ZlIEthYXZlbiA8b3Zla0BhcmN0aWNuZXQubm8+CisJQ2xlYW51cCBWR0EgcmVmcmVzaCB3aGVuIHRlcm1pbmF0aW5nLgorCisJKiB3aW4zMi9jb25zb2xlLmM6IE92ZSBLYWF2ZW4gPG92ZWtAYXJjdGljbmV0Lm5vPgorCUhhbmRsZSBiYWNrc3BhY2UgY29ycmVjdGx5LgorCisyMDAwLTAxLTMxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBjb25maWd1cmUsIE1ha2UucnVsZXMuaW4sICovTWFrZWZpbGUuaW46CisJQnVpbGQgbW9zdCBkbGxzIGFzIHNlcGFyYXRlIHNoYXJlZCBsaWJyYXJpZXMuCisKKzIwMDAtMDEtMzAgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9jb25maWcuaC5pbiwgc2VydmVyL2NvbnRleHRfaTM4Ni5jLCBjb25maWd1cmU6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJQWRkZWQgY29uZmlndXJlIGNoZWNrIGZvciBzeXMvcmVnLmguCisKKwkqIGRsbHMvY29tY3RsMzIvaW1hZ2VsaXN0LmMsIGluY2x1ZGUvaW1hZ2VsaXN0Lmg6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJT3ZlcmxheSBpbmRpY2VzIGFyZSBzaWduZWQgc2hvcnRzICgtMSBtZWFucyBubyBvdmVybGF5KQorCShJbWFnZUxpc3RfU2V0T3ZlcmxheUluZGV4KSBzaG91bGQgYWNjZXB0IC0xIGFzIG92ZXJsYXlpbmRleC4KKwkoSW1hZ2VMaXN0X1JlYWQpIFdlIGNhbiByZWFkIGEgTnhNIGJpdG1hcCBmcm9tIHRoZSBzdHJlYW0gYW5kIGhhdmUKKwl0byBjb252ZXJ0IGl0IGludG8gYSAxeChNKk4pIGJpdG1hcCwgc2V0IGNDdXJJbWFnZSxjTWF4SW1hZ2UuIEFkZGVkCisJZG9jdW1lbnRhdGlvbi4KKwkob3RoZXJzKSByZW1vdmVkIHNvbWUgcG90ZW50aWFsIG9wZXJhdG9yIHByZWNlbmRlbmNlIHByb2JsZW1zLgorCisJKiBvYmplY3RzL2RjLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUdldERldmljZUNhcHM6IHNwb3QgeWV0IHVuc3VwcG9ydGVkIGFjY2Vzc2VzIHRvIHRoZSBEZXZpY2VDYXBzIHN0cnVjdC4KKworCSogaW5jbHVkZS93aW5lL2V4Y2VwdGlvbi5oLCBtaXNjZW11L21haW4uYywgd2luMzIvZXhjZXB0LmMsIE1ha2VmaWxlLmluLCBkZWJ1Z2dlci9kYmcueSwgZGVidWdnZXIvZXh0ZXJuYWwuYywgZGxscy9udGRsbC9leGNlcHRpb24uYywgaW5jbHVkZS9kZWJ1Z2dlci5oLCBpbmNsdWRlL3RocmVhZC5oOgorCVVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCU1vdmVkIGRlYnVnZ2VyIHRvIGxpYndpbmUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gV2luZUxpYiBhcHBzLgorCVRyeSB0byBpbnZva2UgZXh0ZXJuYWwgZGVidWdnZXIgaWYgaW50ZXJuYWwgZGVidWdnZXIgY3Jhc2hlcy4KKwlUcnkgdG8gaGFuZGxlIGVhcmx5IGludm9jYXRpb24gb2YgZGVidWdnZXIgbW9yZSBncmFjZWZ1bGx5LgorCisJKiBpbmNsdWRlL21haW4uaCwgaW5jbHVkZS9wcm9jZXNzLmgsIGluY2x1ZGUvdGFzay5oLCBsb2FkZXIvbWFpbi5jLCBzY2hlZHVsZXIvcHJvY2Vzcy5jLCBzY2hlZHVsZXIvdGhyZWFkLmM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJTWFyayBpbml0aWFsIHByb2Nlc3MgYXMgMzItYml0IGZvciBXaW5lTGliIGFwcHMuCisJVXNlIHRlYi0+dGliZmxhZ3MgaW5zdGVhZCBvZiB0ZWItPmZsYWdzIChmb3IgV2luOTUgVVNFUjMyIGNvbXBhdGliaWxpdHkpLgorCVJlbW92ZWQgdW51c2VkIHRocmVhZCBldmVudC4KKworCSogZmlsZXMvcHJvZmlsZS5jOiBBbmRyZWFzIE1vaHIgPGFtb2hyQHN0dWRlbnQuZWkudW5pLXN0dXR0Z2FydC5kZT4KKwktIFdpbmRvd3Mgc2tpcHMgdGhlICdcdCcgYW5kICcgJyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2Ygc2VjdGlvbgorCSAga2V5IG5hbWVzIG9mIC5JTkkgZmlsZXMuCisJLSBGaXhlZCBHZXQvV3JpdGVQcml2YXRlUHJvZmlsZVN0cnVjdEEoKToKKwkgIC0gKHJlLSl0cmFuc2xhdGUgdGhlIGJpbmFyeSBkYXRhIGludG8gQVNDSUkgaGV4IGNoYXJzCisJICAtIGFkZCBjaGVja3N1bSAvIGNoZWNraW5nIG9mIGl0CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIwMDAtMDEtMzAgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CiAKIAkqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9jb25maWcuaC5pbiwgc2VydmVyL2NvbnRleHRfaTM4Ni5jLCBjb25maWd1cmU6CmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZlcnNpb24uaCBiL2luY2x1ZGUvdmVyc2lvbi5oCmluZGV4IGQ2YWMxMDguLjU1NDgwYTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmVyc2lvbi5oCisrKyBiL2luY2x1ZGUvdmVyc2lvbi5oCkBAIC0xICsxIEBACi0jZGVmaW5lIFdJTkVfUkVMRUFTRV9JTkZPICJXaW5lIHJlbGVhc2UgMjAwMDAxMzAiCisjZGVmaW5lIFdJTkVfUkVMRUFTRV9JTkZPICJXaW5lIHJlbGVhc2UgMjAwMDAyMjciCg==