Return-Path: Subject: [PATCH] - for BT HID fixes + beginning of ctrl handling From: Matthew Grant To: Marcel Holtmann Cc: bluez-users@lists.sourceforge.net, bluez-devel@lists.sourceforge.net Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-l5jsyVyNu0dGio153ZX3" Date: Thu, 02 Dec 2004 08:49:15 +1300 Message-Id: <1101930555.6182.15.camel@localhost> Mime-Version: 1.0 List-ID: --=-l5jsyVyNu0dGio153ZX3 Content-Type: multipart/mixed; boundary="=-fRYArm0MOBsmePPp0z81" --=-fRYArm0MOBsmePPp0z81 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Marcel, Please find 2 patches attached. My original against 2.6.9-mh4, and one for 2.6.10-rc2-bk. These are the patches I can easily produce. Is this OK with you? Please let me know what else you need and I will see what can be done. I have not one yet between straight 2.6.10-rc2-bk+base-bthid+-mh4 and my trunk as the source tree manipulations are getting quite convoluted. Making this patching easier is something I would really like to sort out for both our work flows. My question is, how do you manage the patch creation of -mh4 patches etc? Looks like this just a simple diff of your trunk net/bluetooth and drivers/bluetooth against current mainstream kernel. Thanks for your suggestions here. Best Regards, Matthew Grant --=-fRYArm0MOBsmePPp0z81 Content-Disposition: attachment; filename=linux-2.6.10-rc2-bk-maghidp2004120201.patch Content-Type: text/x-patch; name=linux-2.6.10-rc2-bk-maghidp2004120201.patch; charset=ISO-8859-1 Content-Transfer-Encoding: base64 ZGlmZiAtdU5yIGxpbnV4LTIuNi4xMC1yYzItYmsxMy9uZXQvYmx1ZXRvb3RoL2hpZHAvY29yZS5j IGxpbnV4LTIuNi4xMC1yYzItYmsxMy1idGhpZC9uZXQvYmx1ZXRvb3RoL2hpZHAvY29yZS5jDQot LS0gbGludXgtMi42LjEwLXJjMi1iazEzL25ldC9ibHVldG9vdGgvaGlkcC9jb3JlLmMJMjAwNC0x MC0xOSAxMDo1NDo1NS4wMDAwMDAwMDAgKzEzMDANCisrKyBsaW51eC0yLjYuMTAtcmMyLWJrMTMt YnRoaWQvbmV0L2JsdWV0b290aC9oaWRwL2NvcmUuYwkyMDA0LTEyLTAyIDA4OjI3OjQxLjA0NTYy OTg3MiArMTMwMA0KQEAgLTQ1LDcgKzQ1LDcgQEANCiANCiAjaW5jbHVkZSAiaGlkcC5oIg0KIA0K LSNpZm5kZWYgQ09ORklHX0JUX0hJRFBfREVCVUcNCisjaWZuZGVmIENPTkZJR19CVF9ISURQX0RF QlVHX0JUDQogI3VuZGVmICBCVF9EQkcNCiAjZGVmaW5lIEJUX0RCRyhELi4uKQ0KICNlbmRpZg0K QEAgLTEzMCw4ICsxMzAsOCBAQA0KIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KIAl1bnNpZ25lZCBj aGFyIG5ld2xlZHM7DQogDQotCUJUX0RCRygic2Vzc2lvbiAlcCBoaWQgJXAgZGF0YSAlcCBzaXpl ICVkIiwgc2Vzc2lvbiwgZGV2aWNlLCBkYXRhLCBzaXplKTsNCi0NCisJQlRfREJHKCIiKTsNCisJ IA0KIAlpZiAodHlwZSAhPSBFVl9MRUQpDQogCQlyZXR1cm4gLTE7DQogDQpAQCAtMTUxLDcgKzE1 MSw3IEBADQogCQlyZXR1cm4gLUVOT01FTTsNCiAJfQ0KIA0KLQkqc2tiX3B1dChza2IsIDEpID0g MHhhMjsNCisJKnNrYl9wdXQoc2tiLCAxKSA9IEhJRFBfVFJBTlNfREFUQXxISURQX0RBVEFfUlRZ UEVfT1VQVVQ7DQogCSpza2JfcHV0KHNrYiwgMSkgPSAweDAxOw0KIAkqc2tiX3B1dChza2IsIDEp ID0gbmV3bGVkczsNCiANCkBAIC0yMzIsNyArMjMyLDM2IEBADQogCQlkZWxfdGltZXIoJnNlc3Np b24tPnRpbWVyKTsNCiB9DQogDQotc3RhdGljIGlubGluZSB2b2lkIGhpZHBfc2VuZF9tZXNzYWdl KHN0cnVjdCBoaWRwX3Nlc3Npb24gKnNlc3Npb24sIHVuc2lnbmVkIGNoYXIgaGRyKQ0KK3N0YXRp YyBpbmxpbmUgaW50IGhpZHBfc2VuZF9jdHJsX21lc3NhZ2Uoc3RydWN0IGhpZHBfc2Vzc2lvbiAq c2Vzc2lvbiwNCisJCQl1bnNpZ25lZCBjaGFyIGhkciwNCisJCQl1bnNpZ25lZCBjaGFyICpkYXRh LCBpbnQgc2l6ZSkNCit7DQorCXN0cnVjdCBza19idWZmICpza2I7DQorDQorCUJUX0RCRygic2Vz c2lvbiAlcCBkYXRhICVwIHNpemUgJWQiLCBzZXNzaW9uLCBkYXRhLCBzaXplKTsNCisNCisJaWYg KCEoc2tiID0gYWxsb2Nfc2tiKHNpemUgKyAxLCBHRlBfQVRPTUlDKSkpIHsNCisJCUJUX0VSUigi Q2FuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBuZXcgZnJhbWUiKTsNCisJCXJldHVybiAtRU5PTUVN Ow0KKwl9DQorDQorCSpza2JfcHV0KHNrYiwgMSkgPSBoZHI7DQorCWlmIChzaXplID4gMCkNCisJ CW1lbWNweShza2JfcHV0KHNrYiwgc2l6ZSksIGRhdGEsIHNpemUpOw0KKw0KKwlza2JfcXVldWVf dGFpbCgmc2Vzc2lvbi0+Y3RybF90cmFuc21pdCwgc2tiKTsNCisNCisJaGlkcF9zY2hlZHVsZShz ZXNzaW9uKTsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KKy8qIFNlbmQgYSAxIGJ5dGUgY29udHJv bCBtZXNzYWdlLg0KKyAqICAgU2NoZWR1bGUgZmxhZyBoYXMgdG8gYmUgc2V0IGlmIGNhbGxpbmcg ZnJvbSBvdXRzaWRlIEhJRCBzZXNzaW9uIHByb2Nlc3MgDQorICovDQorc3RhdGljIGlubGluZSB2 b2lkIGhpZHBfc2VuZF9jdHJsX2J5dGUoc3RydWN0IGhpZHBfc2Vzc2lvbiAqc2Vzc2lvbiwNCisJ CSAJCQl1bnNpZ25lZCBjaGFyIGhkciwNCisJCQkJCWludCBzY2hlZHVsZSkNCiB7DQogCXN0cnVj dCBza19idWZmICpza2I7DQogDQpAQCAtMjQ3LDI5ICsyNzYsMTk5IEBADQogDQogCXNrYl9xdWV1 ZV90YWlsKCZzZXNzaW9uLT5jdHJsX3RyYW5zbWl0LCBza2IpOw0KIA0KLQloaWRwX3NjaGVkdWxl KHNlc3Npb24pOw0KKwlpZiAoc2NoZWR1bGUpDQorCQloaWRwX3NjaGVkdWxlKHNlc3Npb24pOw0K K30NCisNCisNCitzdGF0aWMgaW5saW5lIHZvaWQgaGlkcF9wcm9jZXNzX2hhbmRzaGFrZShzdHJ1 Y3QgaGlkcF9zZXNzaW9uICpzZXNzaW9uLCBfX3U4IHBhcmFtKXsNCisJc3dpdGNoIChwYXJhbSkg ew0KKwljYXNlIEhJRFBfSFNIS19TVUNDRVNTRlVMOg0KKwkJLyogQ2FsbCBpbnRvIFNFVF8gR0VU XyBoYW5kbGVycyBoZXJlICovDQorCQlicmVhazsNCisJY2FzZSBISURQX0hTSEtfTk9UX1JFQURZ Og0KKwljYXNlIEhJRFBfSFNIS19FUlJfSU5WQUxJRF9SRVBPUlRfSUQ6DQorCWNhc2UgSElEUF9I U0hLX0VSUl9VTlNVUFBPUlRFRF9SRVFVRVNUOg0KKwljYXNlIEhJRFBfSFNIS19FUlJfSU5WQUxJ RF9QQVJBTUVURVI6DQorCQkvKiBDYWxsIGludG8gU0VUXyBHRVRfIGhhbmRsZXJzIGhlcmUgKi8N CisJCWJyZWFrOw0KKwljYXNlIEhJRFBfSFNIS19FUlJfVU5LTk9XTjoNCisJCUJUX0lORk8oIkhB TkRTSEFLRSBwYXJhbWV0ZXIgRVJSX1VOS05PV04gc2Vlbi4iKTsNCisJCWJyZWFrOw0KKwljYXNl IEhJRFBfSFNIS19FUlJfRkFUQUw6DQorCQkvKiBEZXZpY2UgcmVxdWVzdHMgYSByZWJvb3QsIGFz IHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRoaXMgZXJyb3INCisJCSAqIGNhbiBiZSByZWNvdmVyZWQu DQorCQkgKi8NCisJCWhpZHBfc2VuZF9jdHJsX2J5dGUoc2Vzc2lvbiwNCisJCQlISURQX1RSQU5T X0hJRF9DT05UUk9MfEhJRFBfQ1RSTF9TT0ZUX1JFU0VULA0KKwkJCTApOw0KKwkJYnJlYWs7DQor CWRlZmF1bHQ6DQorCQloaWRwX3NlbmRfY3RybF9ieXRlKHNlc3Npb24sDQorCQkJSElEUF9UUkFO U19IQU5EU0hBS0V8SElEUF9IU0hLX0VSUl9JTlZBTElEX1BBUkFNRVRFUiwNCisJCQkwKTsNCisJ CWJyZWFrOw0KKwl9DQorDQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCBoaWRwX3Byb2Nlc3Nf aGlkX2NvbnRyb2wgKHN0cnVjdCBoaWRwX3Nlc3Npb24gKnNlc3Npb24sIF9fdTggcGFyYW0pDQor ew0KKwlzd2l0Y2ggKHBhcmFtKSB7DQorCWNhc2UgSElEUF9DVFJMX05PUDoNCisJCWJyZWFrOw0K KwljYXNlIEhJRFBfQ1RSTF9WSVJUVUFMX0NBQkxFX1VOUExVRzoNCisJCS8qIEZsdXNoIHRoZSB0 cmFuc21pdCBxdWV1ZXMgKi8NCisJCXNrYl9xdWV1ZV9wdXJnZSgmc2Vzc2lvbi0+Y3RybF90cmFu c21pdCk7DQorCQlza2JfcXVldWVfcHVyZ2UoJnNlc3Npb24tPmludHJfdHJhbnNtaXQpOw0KKw0K KwkJLyogS2lsbCBzZXNzaW9uIHRocmVhZCAqLw0KKwkJYXRvbWljX2luYygmc2Vzc2lvbi0+dGVy bWluYXRlKTsNCisNCisJCS8qIERvIHNvbWUgZnVua3kgSENJIHN0dWZmIGhlcmUgdG8gZGVsZXRl IHBhaXJpbmcgb24gZG9uZ2xlPyAqLw0KKwkJYnJlYWs7DQorCWNhc2UgSElEUF9DVFJMX0hBUkRf UkVTRVQ6DQorCWNhc2UgSElEUF9DVFJMX1NPRlRfUkVTRVQ6DQorCWNhc2UgSElEUF9DVFJMX1NV U1BFTkQ6DQorCWNhc2UgSElEUF9DVFJMX0VYSVRfU1VTUEVORDoNCisJCS8qIFdlIGhhdmUgdG8g cGFyc2UgdGhlc2UgYW5kIHJldHVybiBubyBlcnJvciAqLw0KKwkJYnJlYWs7DQorCWRlZmF1bHQ6 DQorCQloaWRwX3NlbmRfY3RybF9ieXRlKHNlc3Npb24sDQorCQkJSElEUF9UUkFOU19IQU5EU0hB S0V8SElEUF9IU0hLX0VSUl9JTlZBTElEX1BBUkFNRVRFUiwNCisJCQkwKTsNCisJCWJyZWFrOw0K Kwl9DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgaW50IGhpZHBfcHJvY2Vzc19kYXRhKHN0cnVjdCBo aWRwX3Nlc3Npb24gKnNlc3Npb24sIHN0cnVjdCBza19idWZmICpza2IsIF9fdTggcGFyYW0pDQor ew0KKwlpbnQgcmVzdWx0ID0gMDsNCisNCisJQlRfSU5GTygiREFUQSBwYWNrZXQgb24gY29udHJv bCBjaGFubmVsLCBHRVRfLCBTRVRfIG5vdCBpbXBsZW1lbnRlZCIpOw0KKw0KKwlzd2l0Y2ggKHBh cmFtKSB7DQorCWNhc2UgSElEUF9EQVRBX1JUWVBFX0lOUFVUOg0KKwkJaGlkcF9zZXRfdGltZXIo c2Vzc2lvbik7DQorDQorCQlpZiAoc2Vzc2lvbi0+aW5wdXQpDQorCQkJaGlkcF9pbnB1dF9yZXBv cnQoc2Vzc2lvbiwgc2tiKTsNCisNCisJCWlmIChzZXNzaW9uLT5oaWQpIHsNCisJCQlyZXN1bHQg PSBoaWRfcmVjdl9yZXBvcnQoc2Vzc2lvbi0+aGlkLCANCisJCQkJCUhJRF9JTlBVVF9SRVBPUlQs IA0KKwkJCQkJc2tiLT5kYXRhLCANCisJCQkJCXNrYi0+bGVuKTsNCisJCQlzd2l0Y2ggKHJlc3Vs dCkgew0KKwkJCWNhc2UgLUVQUk9UT1RZUEU6DQorCQkJCWhpZHBfc2VuZF9jdHJsX2J5dGUoc2Vz c2lvbiwNCisgICAgICAgICAgICAgICAgICAgICAgICAJCUhJRFBfVFJBTlNfU0VUX1BST1RPQ09M fEhJRFBfUFJPVE9fUkVQT1JULA0KKyAgICAgICAgICAgICAgICAgICAgICAgIAkJMCk7DQorCQkJ CWJyZWFrOw0KKwkJCWNhc2UgLUVCQURGOg0KKwkJCQloaWRwX3NlbmRfY3RybF9ieXRlKHNlc3Np b24sDQorICAgICAgICAgICAgICAgICAgICAgICAgCQlISURQX1RSQU5TX0hBTkRTSEFLRXxISURQ X0hTSEtfRVJSX0lOVkFMSURfUkVQT1JUX0lELA0KKyAgICAgICAgICAgICAgICAgICAgICAgIAkJ MCk7DQorCQkJCWJyZWFrOw0KKwkJCWRlZmF1bHQ6DQorCQkJCWJyZWFrOw0KKwkJCX0NCisJCX0N CisJCWJyZWFrOw0KKwljYXNlIEhJRFBfREFUQV9SVFlQRV9PVEhFUjoNCisJY2FzZSBISURQX0RB VEFfUlRZUEVfT1VQVVQ6DQorCWNhc2UgSElEUF9EQVRBX1JUWVBFX0ZFQVRVUkU6DQorCQlCVF9E QkcoIlVuaW1wbGVtZW50ZWQgREFUQSBwYXJhbWV0ZXIgMHglMDF4IiwgcGFyYW0pOw0KKwkJYnJl YWs7DQorCWRlZmF1bHQ6DQorCQlCVF9EQkcoIkludmFsaWQgREFUQSBwYXJhbWV0ZXIgMHglMDF4 IiwgcGFyYW0pOw0KKwkJaGlkcF9zZW5kX2N0cmxfYnl0ZShzZXNzaW9uLA0KKwkJCUhJRFBfVFJB TlNfSEFORFNIQUtFfEhJRFBfSFNIS19FUlJfSU5WQUxJRF9QQVJBTUVURVIsDQorCQkJMCk7DQor CX0NCisJDQorCXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgaW5saW5lIGludCBoaWRwX3JlY3Zf ZnJhbWUoc3RydWN0IGhpZHBfc2Vzc2lvbiAqc2Vzc2lvbiwgc3RydWN0IHNrX2J1ZmYgKnNrYikN CisNCitzdGF0aWMgaW5saW5lIGludCBoaWRwX3JlY3ZfY3RybF9mcmFtZShzdHJ1Y3QgaGlkcF9z ZXNzaW9uICpzZXNzaW9uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIHsNCiAJX191OCBoZHI7DQor CV9fdTggdHlwZTsNCisJX191OCBwYXJhbTsNCisJaW50IHJldHZhbCA9IDA7DQogDQogCUJUX0RC Rygic2Vzc2lvbiAlcCBza2IgJXAgbGVuICVkIiwgc2Vzc2lvbiwgc2tiLCBza2ItPmxlbik7DQog DQogCWhkciA9IHNrYi0+ZGF0YVswXTsNCiAJc2tiX3B1bGwoc2tiLCAxKTsNCiANCi0JaWYgKGhk ciA9PSAweGExKSB7DQotCQloaWRwX3NldF90aW1lcihzZXNzaW9uKTsNCisJdHlwZSA9IGhkciAm IEhJRFBfVEhEUl9UUkFOU19NQVNLOw0KKwlwYXJhbSA9IGhkciAmIEhJRFBfVEhEUl9QQVJBTV9N QVNLOw0KIA0KLQkJaWYgKHNlc3Npb24tPmlucHV0KQ0KLQkJCWhpZHBfaW5wdXRfcmVwb3J0KHNl c3Npb24sIHNrYik7DQotCX0gZWxzZSB7DQorCXN3aXRjaCAodHlwZSkgew0KKwljYXNlIEhJRFBf VFJBTlNfSEFORFNIQUtFOg0KKwkJaGlkcF9wcm9jZXNzX2hhbmRzaGFrZShzZXNzaW9uLCBwYXJh bSk7DQorCQlicmVhazsNCisJY2FzZSBISURQX1RSQU5TX0hJRF9DT05UUk9MOg0KKwkJaGlkcF9w cm9jZXNzX2hpZF9jb250cm9sKHNlc3Npb24sIHBhcmFtKTsNCisJCWJyZWFrOw0KKwljYXNlIEhJ RFBfVFJBTlNfREFUQToNCisJCXJldHZhbCA9IGhpZHBfcHJvY2Vzc19kYXRhKHNlc3Npb24sIHNr YiwgcGFyYW0pOw0KKwkJYnJlYWs7DQorCWRlZmF1bHQ6DQogCQlCVF9EQkcoIlVuc3VwcG9ydGVk IHByb3RvY29sIGhlYWRlciAweCUwMngiLCBoZHIpOw0KKwkJaGlkcF9zZW5kX2N0cmxfYnl0ZShz ZXNzaW9uLA0KKwkJCUhJRFBfVFJBTlNfSEFORFNIQUtFfEhJRFBfSFNIS19FUlJfVU5TVVBQT1JU RURfUkVRVUVTVCwNCisJCQkwKTsNCisJCWJyZWFrOw0KIAl9DQorCQkNCisJa2ZyZWVfc2tiKHNr Yik7DQorCXJldHVybiByZXR2YWw7DQorfQ0KKw0KKy8qIFRoaXMgbmVlZHMgdG8gYmUgc2VwYXJh dGUgYXMgdGhlcmUgYXJlIG9ubHkgREFUQSBhbmQgREFUQyBwYWNrZXRzIG9uIHRoZSANCisgKiBp bnRlcnJ1cHQgY2hhbm5lbC4gTUFHDQorICovIA0KK3N0YXRpYyBpbmxpbmUgaW50IGhpZHBfcmVj dl9pbnRyX2ZyYW1lKHN0cnVjdCBoaWRwX3Nlc3Npb24gKnNlc3Npb24sIHN0cnVjdCBza19idWZm ICpza2IpDQorew0KKwlfX3U4IGhkcjsNCisJaW50IHJldHZhbCA9IDA7DQorCWludCByZXN1bHQg PSAwOw0KKw0KKwlCVF9EQkcoInNlc3Npb24gJXAgc2tiICVwIGxlbiAlZCIsIHNlc3Npb24sIHNr Yiwgc2tiLT5sZW4pOw0KKw0KKwloZHIgPSBza2ItPmRhdGFbMF07DQorCXNrYl9wdWxsKHNrYiwg MSk7DQorDQorCWlmICggaGRyID09IChISURQX1RSQU5TX0RBVEF8SElEUF9EQVRBX1JUWVBFX0lO UFVUKSApIHsNCisJCWhpZHBfc2V0X3RpbWVyKHNlc3Npb24pOw0KKwkJaWYgKHNlc3Npb24tPmlu cHV0KQ0KKwkJCWhpZHBfaW5wdXRfcmVwb3J0KHNlc3Npb24sIHNrYik7DQogDQorCQlpZiAoc2Vz c2lvbi0+aGlkKQ0KKwkJCXJlc3VsdCA9IGhpZF9yZWN2X3JlcG9ydChzZXNzaW9uLT5oaWQsIA0K KwkJCQkJSElEX0lOUFVUX1JFUE9SVCwgDQorCQkJCQlza2ItPmRhdGEsIA0KKwkJCQkJc2tiLT5s ZW4pOw0KKwkJCXN3aXRjaCAocmVzdWx0KSB7DQorCQkJY2FzZSAtRVBST1RPVFlQRToNCisJCQkJ aGlkcF9zZW5kX2N0cmxfYnl0ZShzZXNzaW9uLA0KKyAgICAgICAgICAgICAgICAgICAgICAgIAkJ SElEUF9UUkFOU19TRVRfUFJPVE9DT0x8SElEUF9QUk9UT19SRVBPUlQsDQorICAgICAgICAgICAg ICAgICAgICAgICAgCQkwKTsNCisJCQkJYnJlYWs7DQorCQkJZGVmYXVsdDoNCisJCQkJYnJlYWs7 DQorCQkJfQ0KKwkJCXJldHZhbCA9IHJlc3VsdDsNCisJfQ0KKwllbHNlIHsNCisJCUJUX0lORk8o IlVuc3VwcG9ydGVkIHByb3RvY29sIGhlYWRlciAweCUwMngiLCBoZHIpOw0KKwl9DQorCQkNCiAJ a2ZyZWVfc2tiKHNrYik7DQotCXJldHVybiAwOw0KKwlyZXR1cm4gcmV0dmFsOw0KIH0NCiANCiBz dGF0aWMgaW50IGhpZHBfc2VuZF9mcmFtZShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCB1bnNpZ25lZCBj aGFyICpkYXRhLCBpbnQgbGVuKQ0KQEAgLTM1MCwxMiArNTQ5LDEyIEBADQogDQogCQl3aGlsZSAo KHNrYiA9IHNrYl9kZXF1ZXVlKCZjdHJsX3NrLT5za19yZWNlaXZlX3F1ZXVlKSkpIHsNCiAJCQlz a2Jfb3JwaGFuKHNrYik7DQotCQkJaGlkcF9yZWN2X2ZyYW1lKHNlc3Npb24sIHNrYik7DQorCQkJ aGlkcF9yZWN2X2N0cmxfZnJhbWUoc2Vzc2lvbiwgc2tiKTsNCiAJCX0NCiANCiAJCXdoaWxlICgo c2tiID0gc2tiX2RlcXVldWUoJmludHJfc2stPnNrX3JlY2VpdmVfcXVldWUpKSkgew0KIAkJCXNr Yl9vcnBoYW4oc2tiKTsNCi0JCQloaWRwX3JlY3ZfZnJhbWUoc2Vzc2lvbiwgc2tiKTsNCisJCQlo aWRwX3JlY3ZfaW50cl9mcmFtZShzZXNzaW9uLCBza2IpOw0KIAkJfQ0KIA0KIAkJaGlkcF9wcm9j ZXNzX3RyYW5zbWl0KHNlc3Npb24pOw0KQEAgLTUxNCw3ICs3MTMsOSBAQA0KIAkJZ290byB1bmxp bms7DQogDQogCWlmIChzZXNzaW9uLT5pbnB1dCkgew0KLQkJaGlkcF9zZW5kX21lc3NhZ2Uoc2Vz c2lvbiwgMHg3MCk7DQorCQloaWRwX3NlbmRfY3RybF9ieXRlKHNlc3Npb24sIA0KKwkJCUhJRFBf VFJBTlNfU0VUX1BST1RPQ09MfEhJRFBfUFJPVE9fQk9PVCwNCisJCQkxKTsNCiAJCXNlc3Npb24t PmZsYWdzIHw9ICgxIDw8IEhJRFBfQk9PVF9QUk9UT0NPTF9NT0RFKTsNCiANCiAJCXNlc3Npb24t PmxlZHMgPSAweGZmOw0KQEAgLTU1NCwxNCArNzU1LDE2IEBADQogCXNlc3Npb24gPSBfX2hpZHBf Z2V0X3Nlc3Npb24oJnJlcS0+YmRhZGRyKTsNCiAJaWYgKHNlc3Npb24pIHsNCiAJCWlmIChyZXEt PmZsYWdzICYgKDEgPDwgSElEUF9WSVJUVUFMX0NBQkxFX1VOUExVRykpIHsNCi0JCQloaWRwX3Nl bmRfbWVzc2FnZShzZXNzaW9uLCAweDE1KTsNCisJCQloaWRwX3NlbmRfY3RybF9ieXRlKHNlc3Np b24sIA0KKwkJCQlISURQX1RSQU5TX0hJRF9DT05UUk9MfEhJRFBfQ1RSTF9WSVJUVUFMX0NBQkxF X1VOUExVRywgDQorCQkJCTEpOw0KIAkJfSBlbHNlIHsNCiAJCQkvKiBGbHVzaCB0aGUgdHJhbnNt aXQgcXVldWVzICovDQogCQkJc2tiX3F1ZXVlX3B1cmdlKCZzZXNzaW9uLT5jdHJsX3RyYW5zbWl0 KTsNCiAJCQlza2JfcXVldWVfcHVyZ2UoJnNlc3Npb24tPmludHJfdHJhbnNtaXQpOw0KIA0KIAkJ CS8qIEtpbGwgc2Vzc2lvbiB0aHJlYWQgKi8NCi0JCQlhdG9taWNfaW5jKCZzZXNzaW9uLT50ZXJt aW5hdGUpOw0KKwkJCWF0b21pY19pbmMoJnNlc3Npb24tPnRlcm1pbmF0ZSk7CQ0KIAkJCWhpZHBf c2NoZWR1bGUoc2Vzc2lvbik7DQogCQl9DQogCX0gZWxzZQ0KZGlmZiAtdU5yIGxpbnV4LTIuNi4x MC1yYzItYmsxMy9uZXQvYmx1ZXRvb3RoL2hpZHAvaGlkcC5oIGxpbnV4LTIuNi4xMC1yYzItYmsx My1idGhpZC9uZXQvYmx1ZXRvb3RoL2hpZHAvaGlkcC5oDQotLS0gbGludXgtMi42LjEwLXJjMi1i azEzL25ldC9ibHVldG9vdGgvaGlkcC9oaWRwLmgJMjAwNC0xMC0xOSAxMDo1Mzo1MC4wMDAwMDAw MDAgKzEzMDANCisrKyBsaW51eC0yLjYuMTAtcmMyLWJrMTMtYnRoaWQvbmV0L2JsdWV0b290aC9o aWRwL2hpZHAuaAkyMDA0LTEyLTAyIDA4OjAzOjU3Ljg1Nzk4NzI4MCArMTMwMA0KQEAgLTI2LDYg KzI2LDcxIEBADQogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+DQogI2luY2x1ZGUgPG5ldC9ibHVl dG9vdGgvYmx1ZXRvb3RoLmg+DQogDQorLyoNCisgKiBCbHVlIFRvb3RoIEhJRCBwYWNrZXQgZGVm aW5lcw0KKyAqLw0KKw0KKy8qDQorICogSElEIFRyYW5zYWN0aW9uIFR5cGVzLCBhbmQgVHJhbnNh Y3Rpb24gaGVhZGVyIHN0dWZmDQorICovDQorI2RlZmluZSBISURQX1RIRFJfVFJBTlNfTUFTSwkJ MHhGMA0KKyNkZWZpbmUgSElEUF9USERSX1BBUkFNX01BU0sJCTB4MEYNCisNCisjZGVmaW5lIEhJ RFBfVFJBTlNfSEFORFNIQUtFCQkweDAwDQorI2RlZmluZSBISURQX1RSQU5TX0hJRF9DT05UUk9M CQkweDEwDQorI2RlZmluZSBISURQX1RSQU5TX1JTUlZEXzIJCTB4MjANCisjZGVmaW5lIEhJRFBf VFJBTlNfUlNSVkRfMwkJMHgzMA0KKyNkZWZpbmUgSElEUF9UUkFOU19HRVRfUkVQT1JUCQkweDQw DQorI2RlZmluZSBISURQX1RSQU5TX1NFVF9SRVBPUlQJCTB4NTANCisjZGVmaW5lIEhJRFBfVFJB TlNfR0VUX1BST1RPQ09MCQkweDYwDQorI2RlZmluZSBISURQX1RSQU5TX1NFVF9QUk9UT0NPTAkJ MHg3MA0KKyNkZWZpbmUgSElEUF9UUkFOU19HRVRfSURMRQkJMHg4MA0KKyNkZWZpbmUgSElEUF9U UkFOU19TRVRfSURMRQkJMHg5MA0KKyNkZWZpbmUgSElEUF9UUkFOU19EQVRBCQkJMHhBMA0KKyNk ZWZpbmUgSElEUF9UUkFOU19EQVRDCQkJMHhCMA0KKyNkZWZpbmUgSElEUF9UUkFOU19SU1JWRF9D CQkweEMwDQorI2RlZmluZSBISURQX1RSQU5TX1JTUlZEX0QJCTB4RDANCisjZGVmaW5lIEhJRFBf VFJBTlNfUlNWUkRfRQkJMHhFMA0KKyNkZWZpbmUgSElEUF9UUkFOU19SU1ZSRF9GCQkweEYwDQor DQorLyoNCisgKiBISUQgSGFuZHNoYWtlIHJlc3VsdHMgcmV0dXJuZWQgaW4gdGhlIHJlc3VsdCBw YXJhbWV0ZXIgb2YgdGhlIGhhbmRzaGFrZSANCisgKiB0cmFuc2FjdGlvbiBISUQgcGFja2V0IA0K KyAqLw0KKyNkZWZpbmUgSElEUF9IU0hLX1NVQ0NFU1NGVUwJCQkweDAwDQorI2RlZmluZSBISURQ X0hTSEtfTk9UX1JFQURZCQkJMHgwMQ0KKyNkZWZpbmUgSElEUF9IU0hLX0VSUl9JTlZBTElEX1JF UE9SVF9JRAkJMHgwMg0KKyNkZWZpbmUgSElEUF9IU0hLX0VSUl9VTlNVUFBPUlRFRF9SRVFVRVNU CTB4MDMNCisjZGVmaW5lIEhJRFBfSFNIS19FUlJfSU5WQUxJRF9QQVJBTUVURVIJCTB4MDQNCisj ZGVmaW5lIEhJRFBfSFNIS19FUlJfVU5LTk9XTgkJCTB4MEUNCisjZGVmaW5lIEhJRFBfSFNIS19F UlJfRkFUQUwJCQkweDBGDQorDQorLyoNCisgKiBISUQgSElEX0NPTlRST0wgb3BlcmF0aW9uIHBh cmFtZXRlcg0KKyAqLw0KKyNkZWZpbmUgSElEUF9DVFJMX05PUAkJCTB4MDAJLyogTm8gb3BlcmF0 aW9uICovDQorI2RlZmluZSBISURQX0NUUkxfSEFSRF9SRVNFVAkJMHgwMQkvKiBSZXF1ZXN0IGhh cmQgcmVzZXQgKi8NCisjZGVmaW5lIEhJRFBfQ1RSTF9TT0ZUX1JFU0VUCQkweDAyCS8qIFJlcXVl c3Qgc29mdCByZXNldCAqLw0KKyNkZWZpbmUgSElEUF9DVFJMX1NVU1BFTkQJCTB4MDMJLyogUmVx dWVzdCBkZXZpY2UgdG8gc3VzcGVuZCAqLw0KKyNkZWZpbmUgSElEUF9DVFJMX0VYSVRfU1VTUEVO RAkJMHgwNAkvKiByZXF1ZXN0IGV4aXQgc3VzcGVuZCAqLw0KKyNkZWZpbmUgSElEUF9DVFJMX1ZJ UlRVQUxfQ0FCTEVfVU5QTFVHCTB4MDUJLyogb25seSBvbmUgTW91c2Uva2JkIGNhbiBzZW5kICov DQorDQorLyoNCisgKiBISUQgREFUQSBUcmFuc2FjdGlvbiBoZWFkZXIgcGFyYW1ldGVyIG5pYmJs ZQ0KKyAqLw0KKyNkZWZpbmUgSElEUF9EQVRBX1JUWVBFX01BU0sJCTB4MDMNCisjZGVmaW5lIEhJ RFBfREFUQV9SU1JWRF9NQVNLCQkweDBDDQorI2RlZmluZSBISURQX0RBVEFfUlRZUEVfT1RIRVIJ CTB4MDANCisjZGVmaW5lIEhJRFBfREFUQV9SVFlQRV9JTlBVVAkJMHgwMQ0KKyNkZWZpbmUgSElE UF9EQVRBX1JUWVBFX09VUFVUCQkweDAyDQorI2RlZmluZSBISURQX0RBVEFfUlRZUEVfRkVBVFVS RQkJMHgwMw0KKw0KKy8qDQorICogSElEIFNFVF9QUk9UT0NPTCBoZWFkZXIgcGFyYW1ldGVyIG5p YmJsZQ0KKyAqLw0KKyNkZWZpbmUgSElEUF9QUk9UT19CT09UCQkJMHgwMA0KKyNkZWZpbmUgSElE UF9QUk9UT19SRVBPUlQJCTB4MDENCisNCiAvKiBISURQIGlvY3RsIGRlZmluZXMgKi8NCiAjZGVm aW5lIEhJRFBDT05OQURECV9JT1coJ0gnLCAyMDAsIGludCkNCiAjZGVmaW5lIEhJRFBDT05OREVM CV9JT1coJ0gnLCAyMDEsIGludCkNCmRpZmYgLXVOciBsaW51eC0yLjYuMTAtcmMyLWJrMTMvbmV0 L2JsdWV0b290aC9oaWRwL0tjb25maWcgbGludXgtMi42LjEwLXJjMi1iazEzLWJ0aGlkL25ldC9i bHVldG9vdGgvaGlkcC9LY29uZmlnDQotLS0gbGludXgtMi42LjEwLXJjMi1iazEzL25ldC9ibHVl dG9vdGgvaGlkcC9LY29uZmlnCTIwMDQtMTAtMTkgMTA6NTQ6MzguMDAwMDAwMDAwICsxMzAwDQor KysgbGludXgtMi42LjEwLXJjMi1iazEzLWJ0aGlkL25ldC9ibHVldG9vdGgvaGlkcC9LY29uZmln CTIwMDQtMTItMDIgMDg6MDM6NTUuNTk1MzMxMjU2ICsxMzAwDQpAQCAtMTAsMyArMTAsMjcgQEAN CiAJICBTYXkgWSBoZXJlIHRvIGNvbXBpbGUgSElEUCBzdXBwb3J0IGludG8gdGhlIGtlcm5lbCBv ciBzYXkgTSB0bw0KIAkgIGNvbXBpbGUgaXQgYXMgbW9kdWxlIChoaWRwKS4NCiANCitjb25maWcg QlRfSElEUF9ERUJVR19CVA0KKwlib29sICJISURQIEJUIERlYnVnIGNvZGUiDQorCWRlcGVuZHMg b24gQlRfSElEUA0KKwlzZWxlY3QgSU5QVVQNCisJaGVscA0KKwkgIFR1cm4gdGhpcyBvbiBpZiB5 b3UgaGF2ZSBwcm9ibGVtcyBhbmQgd2FudCB0byBzZWUgd2hhdCB0aGUgQmx1ZSBUb290aCANCisg ICAgICAgICAgc2lkZSBvZiB0aGUgY29kZSBpcyBkb2luZy4NCisNCitjb25maWcgQlRfSElEUF9E RUJVR19SRVBPUlQNCisJYm9vbCAiSElEUCBSZXBvcnQgbW9kZSBEZWJ1ZyBjb2RlIg0KKwlkZXBl bmRzIG9uIEJUX0hJRFANCisJc2VsZWN0IElOUFVUDQorCWhlbHANCisJICBUdXJuIHRoaXMgb24g aWYgeW91IGhhdmUgcHJvYmxlbXMgYW5kIHdhbnQgdG8gc2VlIHdoYXQgdGhlIEhJRCBSZXBvcnQg DQorICAgICAgICAgIHBhcnQgb2YgdGhlIGNvZGUgaXMgZG9pbmcuDQorDQorDQorY29uZmlnIEJU X0hJRFBfREVCVUdfREFUQQ0KKwlib29sICJISURQIERlYnVnIG9mIERhdGEiDQorCWRlcGVuZHMg b24gQlRfSElEUA0KKwlzZWxlY3QgSU5QVVQNCisJaGVscA0KKwkgIFR1cm4gdGhpcyBvbiBmb3Ig ZGVidWcgcHJpbnRvdXQgb2YgQlQgSElEUCBkYXRhLg0KKw0K --=-fRYArm0MOBsmePPp0z81 Content-Disposition: attachment; filename=linux-2.6.9-mh4-maghidp2004112801.patch Content-Type: text/x-patch; name=linux-2.6.9-mh4-maghidp2004112801.patch; charset=ISO-8859-1 Content-Transfer-Encoding: base64 LS0tIGtlcm5lbC1zb3VyY2UtMi42LjktbWFnL25ldC9ibHVldG9vdGgvaGlkcC9LY29uZmlnLm1o MwkyMDA0LTEwLTE5IDEwOjU0OjM4LjAwMDAwMDAwMCArMTMwMA0KKysrIGtlcm5lbC1zb3VyY2Ut Mi42LjktbWFnL25ldC9ibHVldG9vdGgvaGlkcC9LY29uZmlnCTIwMDQtMTEtMTYgMDg6MTU6MDIu MDAwMDAwMDAwICsxMzAwDQpAQCAtMTAsMyArMTAsMjcgQEANCiAJICBTYXkgWSBoZXJlIHRvIGNv bXBpbGUgSElEUCBzdXBwb3J0IGludG8gdGhlIGtlcm5lbCBvciBzYXkgTSB0bw0KIAkgIGNvbXBp bGUgaXQgYXMgbW9kdWxlIChoaWRwKS4NCiANCitjb25maWcgQlRfSElEUF9ERUJVR19CVA0KKwli b29sICJISURQIEJUIERlYnVnIGNvZGUiDQorCWRlcGVuZHMgb24gQlRfSElEUA0KKwlzZWxlY3Qg SU5QVVQNCisJaGVscA0KKwkgIFR1cm4gdGhpcyBvbiBpZiB5b3UgaGF2ZSBwcm9ibGVtcyBhbmQg d2FudCB0byBzZWUgd2hhdCB0aGUgQmx1ZSBUb290aCANCisgICAgICAgICAgc2lkZSBvZiB0aGUg Y29kZSBpcyBkb2luZy4NCisNCitjb25maWcgQlRfSElEUF9ERUJVR19SRVBPUlQNCisJYm9vbCAi SElEUCBSZXBvcnQgbW9kZSBEZWJ1ZyBjb2RlIg0KKwlkZXBlbmRzIG9uIEJUX0hJRFANCisJc2Vs ZWN0IElOUFVUDQorCWhlbHANCisJICBUdXJuIHRoaXMgb24gaWYgeW91IGhhdmUgcHJvYmxlbXMg YW5kIHdhbnQgdG8gc2VlIHdoYXQgdGhlIEhJRCBSZXBvcnQgDQorICAgICAgICAgIHBhcnQgb2Yg dGhlIGNvZGUgaXMgZG9pbmcuDQorDQorDQorY29uZmlnIEJUX0hJRFBfREVCVUdfREFUQQ0KKwli b29sICJISURQIERlYnVnIG9mIERhdGEiDQorCWRlcGVuZHMgb24gQlRfSElEUA0KKwlzZWxlY3Qg SU5QVVQNCisJaGVscA0KKwkgIFR1cm4gdGhpcyBvbiBmb3IgZGVidWcgcHJpbnRvdXQgb2YgQlQg SElEUCBkYXRhLg0KKw0KLS0tIGtlcm5lbC1zb3VyY2UtMi42LjktbWFnL25ldC9ibHVldG9vdGgv aGlkcC9jb3JlLmMubWgzCTIwMDQtMTEtMjggMTI6NTc6MDYuNTM2Mjc4NjA4ICsxMzAwDQorKysg a2VybmVsLXNvdXJjZS0yLjYuOS1tYWcvbmV0L2JsdWV0b290aC9oaWRwL2NvcmUuYwkyMDA0LTEx LTI4IDExOjA5OjUwLjgzNjY1MzY2NCArMTMwMA0KQEAgLTQ2LDcgKzQ2LDcgQEANCiANCiAjaW5j bHVkZSAiaGlkcC5oIg0KIA0KLSNpZm5kZWYgQ09ORklHX0JUX0hJRFBfREVCVUcNCisjaWZuZGVm IENPTkZJR19CVF9ISURQX0RFQlVHX0JUDQogI3VuZGVmICBCVF9EQkcNCiAjZGVmaW5lIEJUX0RC RyhELi4uKQ0KICNlbmRpZg0KQEAgLTEzOCw4ICsxMzgsOCBAQA0KIAlzdHJ1Y3Qgc2tfYnVmZiAq c2tiOw0KIAl1bnNpZ25lZCBjaGFyIG5ld2xlZHM7DQogDQotCUJUX0RCRygic2Vzc2lvbiAlcCBo aWQgJXAgZGF0YSAlcCBzaXplICVkIiwgc2Vzc2lvbiwgZGV2aWNlLCBkYXRhLCBzaXplKTsNCi0N CisJQlRfREJHKCIiKTsNCisJIA0KIAlpZiAodHlwZSAhPSBFVl9MRUQpDQogCQlyZXR1cm4gLTE7 DQogDQpAQCAtMTU5LDcgKzE1OSw3IEBADQogCQlyZXR1cm4gLUVOT01FTTsNCiAJfQ0KIA0KLQkq c2tiX3B1dChza2IsIDEpID0gMHhhMjsNCisJKnNrYl9wdXQoc2tiLCAxKSA9IEhJRFBfVFJBTlNf REFUQXxISURQX0RBVEFfUlRZUEVfT1VQVVQ7DQogCSpza2JfcHV0KHNrYiwgMSkgPSAweDAxOw0K IAkqc2tiX3B1dChza2IsIDEpID0gbmV3bGVkczsNCiANCkBAIC0yNjMsNyArMjYzLDM2IEBADQog CQlkZWxfdGltZXIoJnNlc3Npb24tPnRpbWVyKTsNCiB9DQogDQotc3RhdGljIGlubGluZSB2b2lk IGhpZHBfc2VuZF9tZXNzYWdlKHN0cnVjdCBoaWRwX3Nlc3Npb24gKnNlc3Npb24sIHVuc2lnbmVk IGNoYXIgaGRyKQ0KK3N0YXRpYyBpbmxpbmUgaW50IGhpZHBfc2VuZF9jdHJsX21lc3NhZ2Uoc3Ry dWN0IGhpZHBfc2Vzc2lvbiAqc2Vzc2lvbiwNCisJCQl1bnNpZ25lZCBjaGFyIGhkciwNCisJCQl1 bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgc2l6ZSkNCit7DQorCXN0cnVjdCBza19idWZmICpza2I7 DQorDQorCUJUX0RCRygic2Vzc2lvbiAlcCBkYXRhICVwIHNpemUgJWQiLCBzZXNzaW9uLCBkYXRh LCBzaXplKTsNCisNCisJaWYgKCEoc2tiID0gYWxsb2Nfc2tiKHNpemUgKyAxLCBHRlBfQVRPTUlD KSkpIHsNCisJCUJUX0VSUigiQ2FuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBuZXcgZnJhbWUiKTsN CisJCXJldHVybiAtRU5PTUVNOw0KKwl9DQorDQorCSpza2JfcHV0KHNrYiwgMSkgPSBoZHI7DQor CWlmIChzaXplID4gMCkNCisJCW1lbWNweShza2JfcHV0KHNrYiwgc2l6ZSksIGRhdGEsIHNpemUp Ow0KKw0KKwlza2JfcXVldWVfdGFpbCgmc2Vzc2lvbi0+Y3RybF90cmFuc21pdCwgc2tiKTsNCisN CisJaGlkcF9zY2hlZHVsZShzZXNzaW9uKTsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KKy8qIFNl bmQgYSAxIGJ5dGUgY29udHJvbCBtZXNzYWdlLg0KKyAqICAgU2NoZWR1bGUgZmxhZyBoYXMgdG8g YmUgc2V0IGlmIGNhbGxpbmcgZnJvbSBvdXRzaWRlIEhJRCBzZXNzaW9uIHByb2Nlc3MgDQorICov DQorc3RhdGljIGlubGluZSB2b2lkIGhpZHBfc2VuZF9jdHJsX2J5dGUoc3RydWN0IGhpZHBfc2Vz c2lvbiAqc2Vzc2lvbiwNCisJCSAJCQl1bnNpZ25lZCBjaGFyIGhkciwNCisJCQkJCWludCBzY2hl ZHVsZSkNCiB7DQogCXN0cnVjdCBza19idWZmICpza2I7DQogDQpAQCAtMjc4LDMyICszMDcsMTk5 IEBADQogDQogCXNrYl9xdWV1ZV90YWlsKCZzZXNzaW9uLT5jdHJsX3RyYW5zbWl0LCBza2IpOw0K IA0KLQloaWRwX3NjaGVkdWxlKHNlc3Npb24pOw0KKwlpZiAoc2NoZWR1bGUpDQorCQloaWRwX3Nj aGVkdWxlKHNlc3Npb24pOw0KK30NCisNCitzdGF0aWMgaW5saW5lIHZvaWQgaGlkcF9wcm9jZXNz X2hhbmRzaGFrZShzdHJ1Y3QgaGlkcF9zZXNzaW9uICpzZXNzaW9uLCBfX3U4IHBhcmFtKQ0KK3sN CisJc3dpdGNoIChwYXJhbSkgew0KKwljYXNlIEhJRFBfSFNIS19TVUNDRVNTRlVMOg0KKwkJLyog Q2FsbCBpbnRvIFNFVF8gR0VUXyBoYW5kbGVycyBoZXJlICovDQorCQlicmVhazsNCisJY2FzZSBI SURQX0hTSEtfTk9UX1JFQURZOg0KKwljYXNlIEhJRFBfSFNIS19FUlJfSU5WQUxJRF9SRVBPUlRf SUQ6DQorCWNhc2UgSElEUF9IU0hLX0VSUl9VTlNVUFBPUlRFRF9SRVFVRVNUOg0KKwljYXNlIEhJ RFBfSFNIS19FUlJfSU5WQUxJRF9QQVJBTUVURVI6DQorCQkvKiBDYWxsIGludG8gU0VUXyBHRVRf IGhhbmRsZXJzIGhlcmUgKi8NCisJCWJyZWFrOw0KKwljYXNlIEhJRFBfSFNIS19FUlJfVU5LTk9X TjoNCisJCUJUX0lORk8oIkhBTkRTSEFLRSBwYXJhbWV0ZXIgRVJSX1VOS05PV04gc2Vlbi4iKTsN CisJCWJyZWFrOw0KKwljYXNlIEhJRFBfSFNIS19FUlJfRkFUQUw6DQorCQkvKiBEZXZpY2UgcmVx dWVzdHMgYSByZWJvb3QsIGFzIHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRoaXMgZXJyb3INCisgCQkg KiBjYW4gYmUgcmVjb3ZlcmVkLg0KKwkJICovDQorCQloaWRwX3NlbmRfY3RybF9ieXRlKHNlc3Np b24sDQorCQkJSElEUF9UUkFOU19ISURfQ09OVFJPTHxISURQX0NUUkxfU09GVF9SRVNFVCwNCisJ CQkwKTsNCisJCWJyZWFrOw0KKwlkZWZhdWx0Og0KKwkJaGlkcF9zZW5kX2N0cmxfYnl0ZShzZXNz aW9uLA0KKwkJCUhJRFBfVFJBTlNfSEFORFNIQUtFfEhJRFBfSFNIS19FUlJfSU5WQUxJRF9QQVJB TUVURVIsDQorCQkJMCk7DQorCQlicmVhazsNCisJfQ0KKw0KK30NCisNCitzdGF0aWMgaW5saW5l IHZvaWQgaGlkcF9wcm9jZXNzX2hpZF9jb250cm9sIChzdHJ1Y3QgaGlkcF9zZXNzaW9uICpzZXNz aW9uLCBfX3U4IHBhcmFtKQ0KK3sNCisJc3dpdGNoIChwYXJhbSkgew0KKwljYXNlIEhJRFBfQ1RS TF9OT1A6DQorCQlicmVhazsNCisJY2FzZSBISURQX0NUUkxfVklSVFVBTF9DQUJMRV9VTlBMVUc6 DQorCQkvKiBGbHVzaCB0aGUgdHJhbnNtaXQgcXVldWVzICovDQorCQlza2JfcXVldWVfcHVyZ2Uo JnNlc3Npb24tPmN0cmxfdHJhbnNtaXQpOw0KKwkJc2tiX3F1ZXVlX3B1cmdlKCZzZXNzaW9uLT5p bnRyX3RyYW5zbWl0KTsNCisNCisJCS8qIEtpbGwgc2Vzc2lvbiB0aHJlYWQgKi8NCisJCWF0b21p Y19pbmMoJnNlc3Npb24tPnRlcm1pbmF0ZSk7CQ0KKw0KKwkJLyogRG8gc29tZSBmdW5reSBIQ0kg c3R1ZmYgaGVyZSB0byBkZWxldGUgcGFpcmluZyBvbiBkb25nbGU/ICovDQorCQlicmVhazsNCisJ Y2FzZSBISURQX0NUUkxfSEFSRF9SRVNFVDoNCisJY2FzZSBISURQX0NUUkxfU09GVF9SRVNFVDoN CisJY2FzZSBISURQX0NUUkxfU1VTUEVORDoNCisJY2FzZSBISURQX0NUUkxfRVhJVF9TVVNQRU5E Og0KKwkJLyogV2UgaGF2ZSB0byBwYXJzZSB0aGVzZSBhbmQgcmV0dXJuIG5vIGVycm9yICovDQor CQlicmVhazsNCisJZGVmYXVsdDoNCisJCWhpZHBfc2VuZF9jdHJsX2J5dGUoc2Vzc2lvbiwNCisJ CQlISURQX1RSQU5TX0hBTkRTSEFLRXxISURQX0hTSEtfRVJSX0lOVkFMSURfUEFSQU1FVEVSLA0K KwkJCTApOw0KKwkJYnJlYWs7DQorCX0NCit9DQorDQorc3RhdGljIGlubGluZSBpbnQgaGlkcF9w cm9jZXNzX2RhdGEoc3RydWN0IGhpZHBfc2Vzc2lvbiAqc2Vzc2lvbiwgc3RydWN0IHNrX2J1ZmYg KnNrYiwgX191OCBwYXJhbSkNCit7DQorCWludCByZXN1bHQgPSAwOw0KKw0KKwlCVF9JTkZPKCJE QVRBIHBhY2tldCBvbiBjb250cm9sIGNoYW5uZWwsIEdFVF8sIFNFVF8gbm90IGltcGxlbWVudGVk Iik7DQorDQorCXN3aXRjaCAocGFyYW0pIHsNCisJY2FzZSBISURQX0RBVEFfUlRZUEVfSU5QVVQ6 DQorCQloaWRwX3NldF90aW1lcihzZXNzaW9uKTsNCisNCisJCWlmIChzZXNzaW9uLT5pbnB1dCkN CisJCQloaWRwX2lucHV0X3JlcG9ydChzZXNzaW9uLCBza2IpOw0KKw0KKwkJaWYgKHNlc3Npb24t PmhpZCkgew0KKwkJCXJlc3VsdCA9IGhpZF9yZWN2X3JlcG9ydChzZXNzaW9uLT5oaWQsIA0KKwkJ CQkJSElEX0lOUFVUX1JFUE9SVCwgDQorCQkJCQlza2ItPmRhdGEsIA0KKwkJCQkJc2tiLT5sZW4p Ow0KKwkJCXN3aXRjaCAocmVzdWx0KSB7DQorCQkJY2FzZSAtRVBST1RPVFlQRToNCisJCQkJaGlk cF9zZW5kX2N0cmxfYnl0ZShzZXNzaW9uLA0KKyAgICAgICAgICAgICAgICAgICAgICAgIAkJSElE UF9UUkFOU19TRVRfUFJPVE9DT0x8SElEUF9QUk9UT19SRVBPUlQsDQorICAgICAgICAgICAgICAg ICAgICAgICAgCQkwKTsNCisJCQkJYnJlYWs7DQorCQkJY2FzZSAtRUJBREY6DQorCQkJCWhpZHBf c2VuZF9jdHJsX2J5dGUoc2Vzc2lvbiwNCisgICAgICAgICAgICAgICAgICAgICAgICAJCUhJRFBf VFJBTlNfSEFORFNIQUtFfEhJRFBfSFNIS19FUlJfSU5WQUxJRF9SRVBPUlRfSUQsDQorICAgICAg ICAgICAgICAgICAgICAgICAgCQkwKTsNCisJCQkJYnJlYWs7DQorCQkJZGVmYXVsdDoNCisJCQkJ YnJlYWs7DQorCQkJfQ0KKwkJfQ0KKwkJYnJlYWs7DQorCWNhc2UgSElEUF9EQVRBX1JUWVBFX09U SEVSOg0KKwljYXNlIEhJRFBfREFUQV9SVFlQRV9PVVBVVDoNCisJY2FzZSBISURQX0RBVEFfUlRZ UEVfRkVBVFVSRToNCisJCUJUX0RCRygiVW5pbXBsZW1lbnRlZCBEQVRBIHBhcmFtZXRlciAweCUw MXgiLCBwYXJhbSk7DQorCQlicmVhazsNCisJZGVmYXVsdDoNCisJCUJUX0RCRygiSW52YWxpZCBE QVRBIHBhcmFtZXRlciAweCUwMXgiLCBwYXJhbSk7DQorCQloaWRwX3NlbmRfY3RybF9ieXRlKHNl c3Npb24sDQorCQkJSElEUF9UUkFOU19IQU5EU0hBS0V8SElEUF9IU0hLX0VSUl9JTlZBTElEX1BB UkFNRVRFUiwNCisJCQkwKTsNCisJfQ0KKwkNCisJcmV0dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyBp bmxpbmUgaW50IGhpZHBfcmVjdl9mcmFtZShzdHJ1Y3QgaGlkcF9zZXNzaW9uICpzZXNzaW9uLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KKw0KK3N0YXRpYyBpbmxpbmUgaW50IGhpZHBfcmVjdl9jdHJs X2ZyYW1lKHN0cnVjdCBoaWRwX3Nlc3Npb24gKnNlc3Npb24sIHN0cnVjdCBza19idWZmICpza2Ip DQogew0KIAlfX3U4IGhkcjsNCisJX191OCB0eXBlOw0KKwlfX3U4IHBhcmFtOw0KKwlpbnQgcmV0 dmFsID0gMDsNCiANCiAJQlRfREJHKCJzZXNzaW9uICVwIHNrYiAlcCBsZW4gJWQiLCBzZXNzaW9u LCBza2IsIHNrYi0+bGVuKTsNCiANCiAJaGRyID0gc2tiLT5kYXRhWzBdOw0KIAlza2JfcHVsbChz a2IsIDEpOw0KIA0KLQlpZiAoaGRyID09IDB4YTEpIHsNCi0JCWhpZHBfc2V0X3RpbWVyKHNlc3Np b24pOw0KKwl0eXBlID0gaGRyICYgSElEUF9USERSX1RSQU5TX01BU0s7DQorCXBhcmFtID0gaGRy ICYgSElEUF9USERSX1BBUkFNX01BU0s7DQogDQorCXN3aXRjaCAodHlwZSkgew0KKwljYXNlIEhJ RFBfVFJBTlNfSEFORFNIQUtFOg0KKwkJaGlkcF9wcm9jZXNzX2hhbmRzaGFrZShzZXNzaW9uLCBw YXJhbSk7DQorCQlicmVhazsNCisJY2FzZSBISURQX1RSQU5TX0hJRF9DT05UUk9MOg0KKwkJaGlk cF9wcm9jZXNzX2hpZF9jb250cm9sKHNlc3Npb24sIHBhcmFtKTsNCisJCWJyZWFrOw0KKwljYXNl IEhJRFBfVFJBTlNfREFUQToNCisJCXJldHZhbCA9IGhpZHBfcHJvY2Vzc19kYXRhKHNlc3Npb24s IHNrYiwgcGFyYW0pOw0KKwkJYnJlYWs7DQorCWRlZmF1bHQ6DQorCQlCVF9EQkcoIlVuc3VwcG9y dGVkIHByb3RvY29sIGhlYWRlciAweCUwMngiLCBoZHIpOw0KKwkJaGlkcF9zZW5kX2N0cmxfYnl0 ZShzZXNzaW9uLA0KKwkJCUhJRFBfVFJBTlNfSEFORFNIQUtFfEhJRFBfSFNIS19FUlJfVU5TVVBQ T1JURURfUkVRVUVTVCwNCisJCQkwKTsNCisJCWJyZWFrOw0KKwl9DQorCQkNCisJa2ZyZWVfc2ti KHNrYik7DQorCXJldHVybiByZXR2YWw7DQorfQ0KKw0KKy8qIFRoaXMgbmVlZHMgdG8gYmUgc2Vw YXJhdGUgYXMgdGhlcmUgYXJlIG9ubHkgREFUQSBhbmQgREFUQyBwYWNrZXRzIG9uIHRoZSANCisg KiBpbnRlcnJ1cHQgY2hhbm5lbC4gTUFHDQorICovIA0KK3N0YXRpYyBpbmxpbmUgaW50IGhpZHBf cmVjdl9pbnRyX2ZyYW1lKHN0cnVjdCBoaWRwX3Nlc3Npb24gKnNlc3Npb24sIHN0cnVjdCBza19i dWZmICpza2IpDQorew0KKwlfX3U4IGhkcjsNCisJaW50IHJldHZhbCA9IDA7DQorCWludCByZXN1 bHQgPSAwOw0KKw0KKwlCVF9EQkcoInNlc3Npb24gJXAgc2tiICVwIGxlbiAlZCIsIHNlc3Npb24s IHNrYiwgc2tiLT5sZW4pOw0KKw0KKwloZHIgPSBza2ItPmRhdGFbMF07DQorCXNrYl9wdWxsKHNr YiwgMSk7DQorDQorCWlmICggaGRyID09IChISURQX1RSQU5TX0RBVEF8SElEUF9EQVRBX1JUWVBF X0lOUFVUKSApIHsNCisJCWhpZHBfc2V0X3RpbWVyKHNlc3Npb24pOw0KIAkJaWYgKHNlc3Npb24t PmlucHV0KQ0KIAkJCWhpZHBfaW5wdXRfcmVwb3J0KHNlc3Npb24sIHNrYik7DQogDQogCQlpZiAo c2Vzc2lvbi0+aGlkKQ0KLQkJCWhpZF9yZWN2X3JlcG9ydChzZXNzaW9uLT5oaWQsIEhJRF9JTlBV VF9SRVBPUlQsIHNrYi0+ZGF0YSwgc2tiLT5sZW4pOw0KLQl9IGVsc2Ugew0KLQkJQlRfREJHKCJV bnN1cHBvcnRlZCBwcm90b2NvbCBoZWFkZXIgMHglMDJ4IiwgaGRyKTsNCisJCQlyZXN1bHQgPSBo aWRfcmVjdl9yZXBvcnQoc2Vzc2lvbi0+aGlkLCANCisJCQkJCUhJRF9JTlBVVF9SRVBPUlQsIA0K KwkJCQkJc2tiLT5kYXRhLCANCisJCQkJCXNrYi0+bGVuKTsNCisJCQlzd2l0Y2ggKHJlc3VsdCkg ew0KKwkJCWNhc2UgLUVQUk9UT1RZUEU6DQorCQkJCWhpZHBfc2VuZF9jdHJsX2J5dGUoc2Vzc2lv biwNCisgICAgICAgICAgICAgICAgICAgICAgICAJCUhJRFBfVFJBTlNfU0VUX1BST1RPQ09MfEhJ RFBfUFJPVE9fUkVQT1JULA0KKyAgICAgICAgICAgICAgICAgICAgICAgIAkJMCk7DQorCQkJCWJy ZWFrOw0KKwkJCWRlZmF1bHQ6DQorCQkJCWJyZWFrOw0KKwkJCX0NCisJCQlyZXR2YWwgPSByZXN1 bHQ7DQogCX0NCi0NCisJZWxzZSB7DQorCQlCVF9JTkZPKCJVbnN1cHBvcnRlZCBwcm90b2NvbCBo ZWFkZXIgMHglMDJ4IiwgaGRyKTsNCisJfQ0KKwkJDQogCWtmcmVlX3NrYihza2IpOw0KLQlyZXR1 cm4gMDsNCisJcmV0dXJuIHJldHZhbDsNCiB9DQogDQogc3RhdGljIGludCBoaWRwX3NlbmRfZnJh bWUoc3RydWN0IHNvY2tldCAqc29jaywgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbikNCkBA IC0zODksMTIgKzU4NSwxMiBAQA0KIA0KIAkJd2hpbGUgKChza2IgPSBza2JfZGVxdWV1ZSgmY3Ry bF9zay0+c2tfcmVjZWl2ZV9xdWV1ZSkpKSB7DQogCQkJc2tiX29ycGhhbihza2IpOw0KLQkJCWhp ZHBfcmVjdl9mcmFtZShzZXNzaW9uLCBza2IpOw0KKwkJCWhpZHBfcmVjdl9jdHJsX2ZyYW1lKHNl c3Npb24sIHNrYik7DQogCQl9DQogDQogCQl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZpbnRy X3NrLT5za19yZWNlaXZlX3F1ZXVlKSkpIHsNCiAJCQlza2Jfb3JwaGFuKHNrYik7DQotCQkJaGlk cF9yZWN2X2ZyYW1lKHNlc3Npb24sIHNrYik7DQorCQkJaGlkcF9yZWN2X2ludHJfZnJhbWUoc2Vz c2lvbiwgc2tiKTsNCiAJCX0NCiANCiAJCWhpZHBfcHJvY2Vzc190cmFuc21pdChzZXNzaW9uKTsN CkBAIC02MDgsNyArODA0LDkgQEANCiAJCWdvdG8gdW5saW5rOw0KIA0KIAlpZiAoc2Vzc2lvbi0+ aW5wdXQpIHsNCi0JCWhpZHBfc2VuZF9tZXNzYWdlKHNlc3Npb24sIDB4NzApOw0KKwkJaGlkcF9z ZW5kX2N0cmxfYnl0ZShzZXNzaW9uLCANCisJCQlISURQX1RSQU5TX1NFVF9QUk9UT0NPTHxISURQ X1BST1RPX0JPT1QsDQorCQkJMSk7DQogCQlzZXNzaW9uLT5mbGFncyB8PSAoMSA8PCBISURQX0JP T1RfUFJPVE9DT0xfTU9ERSk7DQogDQogCQlzZXNzaW9uLT5sZWRzID0gMHhmZjsNCkBAIC02NTQs MTQgKzg1MiwxNiBAQA0KIAlzZXNzaW9uID0gX19oaWRwX2dldF9zZXNzaW9uKCZyZXEtPmJkYWRk cik7DQogCWlmIChzZXNzaW9uKSB7DQogCQlpZiAocmVxLT5mbGFncyAmICgxIDw8IEhJRFBfVklS VFVBTF9DQUJMRV9VTlBMVUcpKSB7DQotCQkJaGlkcF9zZW5kX21lc3NhZ2Uoc2Vzc2lvbiwgMHgx NSk7DQorCQkJaGlkcF9zZW5kX2N0cmxfYnl0ZShzZXNzaW9uLCANCisJCQkJSElEUF9UUkFOU19I SURfQ09OVFJPTHxISURQX0NUUkxfVklSVFVBTF9DQUJMRV9VTlBMVUcsIA0KKwkJCQkxKTsNCiAJ CX0gZWxzZSB7DQogCQkJLyogRmx1c2ggdGhlIHRyYW5zbWl0IHF1ZXVlcyAqLw0KIAkJCXNrYl9x dWV1ZV9wdXJnZSgmc2Vzc2lvbi0+Y3RybF90cmFuc21pdCk7DQogCQkJc2tiX3F1ZXVlX3B1cmdl KCZzZXNzaW9uLT5pbnRyX3RyYW5zbWl0KTsNCiANCiAJCQkvKiBLaWxsIHNlc3Npb24gdGhyZWFk ICovDQotCQkJYXRvbWljX2luYygmc2Vzc2lvbi0+dGVybWluYXRlKTsNCisJCQlhdG9taWNfaW5j KCZzZXNzaW9uLT50ZXJtaW5hdGUpOwkNCiAJCQloaWRwX3NjaGVkdWxlKHNlc3Npb24pOw0KIAkJ fQ0KIAl9IGVsc2UNCi0tLSBrZXJuZWwtc291cmNlLTIuNi45LW1hZy9uZXQvYmx1ZXRvb3RoL2hp ZHAvaGlkLmMubWgzCTIwMDQtMTEtMDcgMTU6NTA6MjAuMDAwMDAwMDAwICsxMzAwDQorKysga2Vy bmVsLXNvdXJjZS0yLjYuOS1tYWcvbmV0L2JsdWV0b290aC9oaWRwL2hpZC5jCTIwMDQtMTEtMjcg MTc6NTA6MTkuMDAwMDAwMDAwICsxMzAwDQpAQCAtODU4LDExICs4NTgsMTEgQEANCiANCiAJaWYg KCFzaXplKSB7DQogCQlkYmcoImVtcHR5IHJlcG9ydCIpOw0KLQkJcmV0dXJuIC0xOw0KKwkJcmV0 dXJuIC1FSU5WQUw7DQogCX0NCiANCi0jaWZkZWYgREVCVUdfREFUQQ0KLQlwcmludGsoS0VSTl9E RUJVRyBfX0ZJTEVfXyAiOiByZXBvcnQgKHNpemUgJXUpICglc251bWJlcmVkKVxuIiwgbGVuLCBy ZXBvcnRfZW51bS0+bnVtYmVyZWQgPyAiIiA6ICJ1biIpOw0KKyNpZmRlZiBDT05GSUdfQlRfSElE UF9ERUJVR19EQVRBDQorCXByaW50ayhLRVJOX0RFQlVHIF9fRklMRV9fICI6IHJlcG9ydCAoc2l6 ZSAldSkgKCVzbnVtYmVyZWQpXG4iLCBzaXplLCByZXBvcnRfZW51bS0+bnVtYmVyZWQgPyAiIiA6 ICJ1biIpOw0KICNlbmRpZg0KIA0KIAluID0gMDsJCQkJLyogTm9ybWFsbHkgcmVwb3J0IG51bWJl ciBpcyAwICovDQpAQCAtODcxLDcgKzg3MSw3IEBADQogCQlzaXplLS07DQogCX0NCiANCi0jaWZk ZWYgREVCVUdfREFUQQ0KKyNpZmRlZiBDT05GSUdfQlRfSElEUF9ERUJVR19EQVRBDQogCXsNCiAJ CWludCBpOw0KIAkJcHJpbnRrKEtFUk5fREVCVUcgX19GSUxFX18gIjogcmVwb3J0ICVkIChzaXpl ICV1KSA9ICIsIG4sIHNpemUpOw0KQEAgLTg4MywxNCArODgzLDMzIEBADQogDQogCWlmICghKHJl cG9ydCA9IHJlcG9ydF9lbnVtLT5yZXBvcnRfaWRfaGFzaFtuXSkpIHsNCiAJCWRiZygidW5kZWZp bmVkIHJlcG9ydF9pZCAlZCByZWNlaXZlZCIsIG4pOw0KLQkJcmV0dXJuIC0xOw0KKwkJcmV0dXJu IC1FQkFERjsNCiAJfQ0KIA0KIAlyc2l6ZSA9ICgocmVwb3J0LT5zaXplIC0gMSkgPj4gMykgKyAx Ow0KIA0KKyNpZmRlZiBDT05GSUdfQlRfSElEUF9ERUJVR19EQVRBDQorCWRiZygicmVwb3J0ICVk LCBleHBlY3RlZCAlZCBiaXRzLCAlZCBtYXhmaWVsZCIsIHJlcG9ydC0+aWQsIHJlcG9ydC0+c2l6 ZSwgcmVwb3J0LT5tYXhmaWVsZCk7DQorCWZvciAobiA9IDA7IG4gPCByZXBvcnQtPm1heGZpZWxk OyBuKyspDQorCQlkYmcoInJlcG9ydDpmaWVsZCAlZDolZCwgY291bnQgJWQgLCBvZmZzZXQgJWQs IHNpemUoYml0cykgJWQiLA0KKwkJCXJlcG9ydC0+aWQsIG4sDQorCQkJcmVwb3J0LT5maWVsZFtu XS0+cmVwb3J0X2NvdW50LA0KKwkJCXJlcG9ydC0+ZmllbGRbbl0tPnJlcG9ydF9vZmZzZXQsDQor CQkJcmVwb3J0LT5maWVsZFtuXS0+cmVwb3J0X3NpemUpOw0KKyNlbmRpZg0KKw0KIAlpZiAoc2l6 ZSA8IHJzaXplKSB7DQotCQlkYmcoInJlcG9ydCAlZCBpcyB0b28gc2hvcnQsICglZCA8ICVkKSIs IHJlcG9ydC0+aWQsIHNpemUsIHJzaXplKTsNCi0JCXJldHVybiAtMTsNCisJCWRiZygicmVwb3J0 ICVkIGlzIHRvbyBzaG9ydCwgKCVkIDwgJWQpICVkIGJpdHMgZXhwZWN0ZWQsICVkIG1heGZpZWxk IiwgcmVwb3J0LT5pZCwgc2l6ZSwgcnNpemUsIHJlcG9ydC0+c2l6ZSwgcmVwb3J0LT5tYXhmaWVs ZCk7DQorCQlpZiAoc2l6ZSA9PSA4KSB7DQorCQkJLyogDQorCQkJICogRklYTUUgLSBuZWVkIHRv IGNoZWNrIGlmIGRldmljZSBpcyBhIGtleWJvYXJkISENCisJCQkgKi8NCisJCQlkYmcoInRlbGwg dXBwZXIgbGF5ZXIgd3JvbmcgcHJvdG9jb2wgLSBzd2l0Y2ggdG8gcmVwb3J0Iik7IA0KKwkJCXJl dHVybiAtRVBST1RPVFlQRTsNCisJCX0NCisJCWVsc2Ugew0KKwkJCXJldHVybiAtRU1TR1NJWkU7 DQorCQl9DQogCX0NCiANCiAJZm9yIChuID0gMDsgbiA8IHJlcG9ydC0+bWF4ZmllbGQ7IG4rKykN Ci0tLSBrZXJuZWwtc291cmNlLTIuNi45LW1hZy9uZXQvYmx1ZXRvb3RoL2hpZHAvaGlkcC5oLm1o MwkyMDA0LTExLTA3IDE1OjUwOjIwLjAwMDAwMDAwMCArMTMwMA0KKysrIGtlcm5lbC1zb3VyY2Ut Mi42LjktbWFnL25ldC9ibHVldG9vdGgvaGlkcC9oaWRwLmgJMjAwNC0xMS0yOCAxMDozNDoyNy4z MzE0NzU1MjAgKzEzMDANCkBAIC0yNiw2ICsyNiw3MSBAQA0KICNpbmNsdWRlIDxsaW51eC90eXBl cy5oPg0KICNpbmNsdWRlIDxuZXQvYmx1ZXRvb3RoL2JsdWV0b290aC5oPg0KIA0KKy8qDQorICog Qmx1ZSBUb290aCBISUQgcGFja2V0IGRlZmluZXMNCisgKi8NCisNCisvKg0KKyAqIEhJRCBUcmFu c2FjdGlvbiBUeXBlcywgYW5kIFRyYW5zYWN0aW9uIGhlYWRlciBzdHVmZg0KKyAqLw0KKyNkZWZp bmUgSElEUF9USERSX1RSQU5TX01BU0sJCTB4RjANCisjZGVmaW5lIEhJRFBfVEhEUl9QQVJBTV9N QVNLCQkweDBGDQorDQorI2RlZmluZSBISURQX1RSQU5TX0hBTkRTSEFLRQkJMHgwMA0KKyNkZWZp bmUgSElEUF9UUkFOU19ISURfQ09OVFJPTAkJMHgxMA0KKyNkZWZpbmUgSElEUF9UUkFOU19SU1JW RF8yCQkweDIwDQorI2RlZmluZSBISURQX1RSQU5TX1JTUlZEXzMJCTB4MzANCisjZGVmaW5lIEhJ RFBfVFJBTlNfR0VUX1JFUE9SVAkJMHg0MA0KKyNkZWZpbmUgSElEUF9UUkFOU19TRVRfUkVQT1JU CQkweDUwDQorI2RlZmluZSBISURQX1RSQU5TX0dFVF9QUk9UT0NPTAkJMHg2MA0KKyNkZWZpbmUg SElEUF9UUkFOU19TRVRfUFJPVE9DT0wJCTB4NzANCisjZGVmaW5lIEhJRFBfVFJBTlNfR0VUX0lE TEUJCTB4ODANCisjZGVmaW5lIEhJRFBfVFJBTlNfU0VUX0lETEUJCTB4OTANCisjZGVmaW5lIEhJ RFBfVFJBTlNfREFUQQkJCTB4QTANCisjZGVmaW5lIEhJRFBfVFJBTlNfREFUQwkJCTB4QjANCisj ZGVmaW5lIEhJRFBfVFJBTlNfUlNSVkRfQwkJMHhDMA0KKyNkZWZpbmUgSElEUF9UUkFOU19SU1JW RF9ECQkweEQwDQorI2RlZmluZSBISURQX1RSQU5TX1JTVlJEX0UJCTB4RTANCisjZGVmaW5lIEhJ RFBfVFJBTlNfUlNWUkRfRgkJMHhGMA0KKw0KKy8qDQorICogSElEIEhhbmRzaGFrZSByZXN1bHRz IHJldHVybmVkIGluIHRoZSByZXN1bHQgcGFyYW1ldGVyIG9mIHRoZSBoYW5kc2hha2UgDQorICog dHJhbnNhY3Rpb24gSElEIHBhY2tldCANCisgKi8NCisjZGVmaW5lIEhJRFBfSFNIS19TVUNDRVNT RlVMCQkJMHgwMA0KKyNkZWZpbmUgSElEUF9IU0hLX05PVF9SRUFEWQkJCTB4MDENCisjZGVmaW5l IEhJRFBfSFNIS19FUlJfSU5WQUxJRF9SRVBPUlRfSUQJCTB4MDINCisjZGVmaW5lIEhJRFBfSFNI S19FUlJfVU5TVVBQT1JURURfUkVRVUVTVAkweDAzDQorI2RlZmluZSBISURQX0hTSEtfRVJSX0lO VkFMSURfUEFSQU1FVEVSCQkweDA0DQorI2RlZmluZSBISURQX0hTSEtfRVJSX1VOS05PV04JCQkw eDBFDQorI2RlZmluZSBISURQX0hTSEtfRVJSX0ZBVEFMCQkJMHgwRg0KKw0KKy8qDQorICogSElE IEhJRF9DT05UUk9MIG9wZXJhdGlvbiBwYXJhbWV0ZXINCisgKi8NCisjZGVmaW5lIEhJRFBfQ1RS TF9OT1AJCQkweDAwCS8qIE5vIG9wZXJhdGlvbiAqLw0KKyNkZWZpbmUgSElEUF9DVFJMX0hBUkRf UkVTRVQJCTB4MDEJLyogUmVxdWVzdCBoYXJkIHJlc2V0ICovDQorI2RlZmluZSBISURQX0NUUkxf U09GVF9SRVNFVAkJMHgwMgkvKiBSZXF1ZXN0IHNvZnQgcmVzZXQgKi8NCisjZGVmaW5lIEhJRFBf Q1RSTF9TVVNQRU5ECQkweDAzCS8qIFJlcXVlc3QgZGV2aWNlIHRvIHN1c3BlbmQgKi8NCisjZGVm aW5lIEhJRFBfQ1RSTF9FWElUX1NVU1BFTkQJCTB4MDQJLyogcmVxdWVzdCBleGl0IHN1c3BlbmQg Ki8NCisjZGVmaW5lIEhJRFBfQ1RSTF9WSVJUVUFMX0NBQkxFX1VOUExVRwkweDA1CS8qIG9ubHkg b25lIE1vdXNlL2tiZCBjYW4gc2VuZCAqLw0KKw0KKy8qDQorICogSElEIERBVEEgVHJhbnNhY3Rp b24gaGVhZGVyIHBhcmFtZXRlciBuaWJibGUNCisgKi8NCisjZGVmaW5lIEhJRFBfREFUQV9SVFlQ RV9NQVNLCQkweDAzDQorI2RlZmluZSBISURQX0RBVEFfUlNSVkRfTUFTSwkJMHgwQw0KKyNkZWZp bmUgSElEUF9EQVRBX1JUWVBFX09USEVSCQkweDAwDQorI2RlZmluZSBISURQX0RBVEFfUlRZUEVf SU5QVVQJCTB4MDENCisjZGVmaW5lIEhJRFBfREFUQV9SVFlQRV9PVVBVVAkJMHgwMg0KKyNkZWZp bmUgSElEUF9EQVRBX1JUWVBFX0ZFQVRVUkUJCTB4MDMNCisNCisvKg0KKyAqIEhJRCBTRVRfUFJP VE9DT0wgaGVhZGVyIHBhcmFtZXRlciBuaWJibGUNCisgKi8NCisjZGVmaW5lIEhJRFBfUFJPVE9f Qk9PVAkJCTB4MDANCisjZGVmaW5lIEhJRFBfUFJPVE9fUkVQT1JUCQkweDAxDQorDQogLyogSElE UCBpb2N0bCBkZWZpbmVzICovDQogI2RlZmluZSBISURQQ09OTkFERAlfSU9XKCdIJywgMjAwLCBp bnQpDQogI2RlZmluZSBISURQQ09OTkRFTAlfSU9XKCdIJywgMjAxLCBpbnQpDQotLS0ga2VybmVs LXNvdXJjZS0yLjYuOS1tYWcvbmV0L2JsdWV0b290aC9oaWRwL2hpZC5oLm1oMwkyMDA0LTExLTI4 IDEyOjQ4OjQ5LjgwMDc5Mzg4MCArMTMwMA0KKysrIGtlcm5lbC1zb3VyY2UtMi42LjktbWFnL25l dC9ibHVldG9vdGgvaGlkcC9oaWQuaAkyMDA0LTExLTE2IDA4OjEzOjQ1LjAwMDAwMDAwMCArMTMw MA0KQEAgLTI2LDcgKzI2LDcgQEANCiAjaWZuZGVmIF9fSElEX0gNCiAjZGVmaW5lIF9fSElEX0gN CiANCi0jaWZkZWYgREVCVUcNCisjaWZkZWYgQ09ORklHX0JUX0hJRFBfREVCVUdfUkVQT1JUDQog I2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4pIHByaW50ayhLRVJOX0RFQlVHICIlczogIiBmb3Jt YXQgIlxuIiAsIF9fRklMRV9fICwgIyMgYXJnKQ0KICNlbHNlDQogI2RlZmluZSBkYmcoZm9ybWF0 LCBhcmcuLi4pIGRvIHt9IHdoaWxlICgwKQ0K --=-fRYArm0MOBsmePPp0z81-- --=-l5jsyVyNu0dGio153ZX3 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) iD8DBQBBriA7uk55Di7iAnARAqThAKCFTIvHEZotHg19EiNNvc7KXJmMHACdFBZ0 UTgiuCzwc6x/69SPSbflHb8= =uMOA -----END PGP SIGNATURE----- --=-l5jsyVyNu0dGio153ZX3--