Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755043Ab3CDE3d (ORCPT ); Sun, 3 Mar 2013 23:29:33 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:33693 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754503Ab3CDE3a (ORCPT ); Sun, 3 Mar 2013 23:29:30 -0500 Message-ID: <1362371344.3768.293.camel@deadeye.wl.decadent.org.uk> Subject: Re: [ 000/153] 3.2.40-stable review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org Date: Mon, 04 Mar 2013 04:29:04 +0000 In-Reply-To: <20130304033707.648729212@decadent.org.uk> References: <20130304033707.648729212@decadent.org.uk> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-T5P+jyojVwSHdBxpC/tY" X-Mailer: Evolution 3.4.4-2 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 2001:470:1f08:1539:a11:96ff:fec6:70c4 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); Message bigger than SAmaxbody (256000) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 288725 Lines: 3781 --=-T5P+jyojVwSHdBxpC/tY Content-Type: multipart/mixed; boundary="=-Uw08nshe/nq6EqLuRsrX" --=-Uw08nshe/nq6EqLuRsrX Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.40-rc1 relative to 3.2.39. Ben. --=20 Ben Hutchings Always try to do things in chronological order; it's less confusing that way. --=-Uw08nshe/nq6EqLuRsrX Content-Disposition: attachment; filename="linux-3.2.40-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.40-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1l bnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQNCmluZGV4IDgxYzI4N2YuLmRkYmYxOGUgMTAw NjQ0DQotLS0gYS9Eb2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dA0KKysrIGIvRG9j dW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQNCkBAIC01NTIsNiArNTUyLDggQEAgYnl0 ZXMgcmVzcGVjdGl2ZWx5LiBTdWNoIGxldHRlciBzdWZmaXhlcyBjYW4gYWxzbyBiZSBlbnRpcmVs eSBvbWl0dGVkLg0KIAkJCVVBUlQgYXQgdGhlIHNwZWNpZmllZCBJL08gcG9ydCBvciBNTUlPIGFk ZHJlc3MsDQogCQkJc3dpdGNoaW5nIHRvIHRoZSBtYXRjaGluZyB0dHlTIGRldmljZSBsYXRlci4g IFRoZQ0KIAkJCW9wdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGZvciB0dHlTLCBhYm92ZS4NCisJCWh2 YzxuPglVc2UgdGhlIGh5cGVydmlzb3IgY29uc29sZSBkZXZpY2UgPG4+LiBUaGlzIGlzIGZvcg0K KwkJCWJvdGggWGVuIGFuZCBQb3dlclBDIGh5cGVydmlzb3JzLg0KIA0KICAgICAgICAgICAgICAg ICBJZiB0aGUgZGV2aWNlIGNvbm5lY3RlZCB0byB0aGUgcG9ydCBpcyBub3QgYSBUVFkgYnV0IGEg YnJhaWxsZQ0KICAgICAgICAgICAgICAgICBkZXZpY2UsIHByZXBlbmQgImJybCwiIGJlZm9yZSB0 aGUgZGV2aWNlIHR5cGUsIGZvciBpbnN0YW5jZQ0KQEAgLTcwMyw2ICs3MDUsNyBAQCBieXRlcyBy ZXNwZWN0aXZlbHkuIFN1Y2ggbGV0dGVyIHN1ZmZpeGVzIGNhbiBhbHNvIGJlIGVudGlyZWx5IG9t aXR0ZWQuDQogDQogCWVhcmx5cHJpbnRrPQlbWDg2LFNILEJMQUNLRklOXQ0KIAkJCWVhcmx5cHJp bnRrPXZnYQ0KKwkJCWVhcmx5cHJpbnRrPXhlbg0KIAkJCWVhcmx5cHJpbnRrPXNlcmlhbFssdHR5 U25bLGJhdWRyYXRlXV0NCiAJCQllYXJseXByaW50az10dHlTblssYmF1ZHJhdGVdDQogCQkJZWFy bHlwcmludGs9ZGJncFtkZWJ1Z0NvbnRyb2xsZXIjXQ0KQEAgLTcyMCw2ICs3MjMsOCBAQCBieXRl cyByZXNwZWN0aXZlbHkuIFN1Y2ggbGV0dGVyIHN1ZmZpeGVzIGNhbiBhbHNvIGJlIGVudGlyZWx5 IG9taXR0ZWQuDQogCQkJVGhlIFZHQSBvdXRwdXQgaXMgZXZlbnR1YWxseSBvdmVyd3JpdHRlbiBi eSB0aGUgcmVhbA0KIAkJCWNvbnNvbGUuDQogDQorCQkJVGhlIHhlbiBvdXRwdXQgY2FuIG9ubHkg YmUgdXNlZCBieSBYZW4gUFYgZ3Vlc3RzLg0KKw0KIAlla2dkYm9jPQlbWDg2LEtHREJdIEFsbG93 IGVhcmx5IGtlcm5lbCBjb25zb2xlIGRlYnVnZ2luZw0KIAkJCWVrZ2Rib2M9a2JkDQogDQpkaWZm IC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQ0KaW5kZXggMGZjZWI4Yi4uMWQyMzMzOSAxMDA2 NDQNCi0tLSBhL01ha2VmaWxlDQorKysgYi9NYWtlZmlsZQ0KQEAgLTEsNyArMSw3IEBADQogVkVS U0lPTiA9IDMNCiBQQVRDSExFVkVMID0gMg0KLVNVQkxFVkVMID0gMzkNCi1FWFRSQVZFUlNJT04g PQ0KK1NVQkxFVkVMID0gNDANCitFWFRSQVZFUlNJT04gPSAtcmMxDQogTkFNRSA9IFNhYmVyLXRv b3RoZWQgU3F1aXJyZWwNCiANCiAjICpET0NVTUVOVEFUSU9OKg0KZGlmZiAtLWdpdCBhL2FyY2gv YXJtL21hY2gtcHhhL2luY2x1ZGUvbWFjaC9zbWVtYy5oIGIvYXJjaC9hcm0vbWFjaC1weGEvaW5j bHVkZS9tYWNoL3NtZW1jLmgNCmluZGV4IGI3ZGU0NzEuLmI4MDJmMjggMTAwNjQ0DQotLS0gYS9h cmNoL2FybS9tYWNoLXB4YS9pbmNsdWRlL21hY2gvc21lbWMuaA0KKysrIGIvYXJjaC9hcm0vbWFj aC1weGEvaW5jbHVkZS9tYWNoL3NtZW1jLmgNCkBAIC0zNyw2ICszNyw3IEBADQogI2RlZmluZSBD U0FEUkNGRzEJKFNNRU1DX1ZJUlQgKyAweDg0KSAgLyogQWRkcmVzcyBDb25maWd1cmF0aW9uIFJl Z2lzdGVyIGZvciBDUzEgKi8NCiAjZGVmaW5lIENTQURSQ0ZHMgkoU01FTUNfVklSVCArIDB4ODgp ICAvKiBBZGRyZXNzIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgZm9yIENTMiAqLw0KICNkZWZpbmUg Q1NBRFJDRkczCShTTUVNQ19WSVJUICsgMHg4QykgIC8qIEFkZHJlc3MgQ29uZmlndXJhdGlvbiBS ZWdpc3RlciBmb3IgQ1MzICovDQorI2RlZmluZSBDU01TQURSQ0ZHCShTTUVNQ19WSVJUICsgMHhB MCkgIC8qIENoaXAgU2VsZWN0IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8NCiANCiAvKg0KICAq IE1vcmUgaGFuZHkgbWFjcm9zIGZvciBQQ01DSUENCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNo LXB4YS9zbWVtYy5jIGIvYXJjaC9hcm0vbWFjaC1weGEvc21lbWMuYw0KaW5kZXggNzk5MjMwNS4u ZjM4YWE4OSAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3NtZW1jLmMNCisrKyBiL2Fy Y2gvYXJtL21hY2gtcHhhL3NtZW1jLmMNCkBAIC00MCw2ICs0MCw4IEBAIHN0YXRpYyB2b2lkIHB4 YTN4eF9zbWVtY19yZXN1bWUodm9pZCkNCiAJX19yYXdfd3JpdGVsKGNzYWRyY2ZnWzFdLCBDU0FE UkNGRzEpOw0KIAlfX3Jhd193cml0ZWwoY3NhZHJjZmdbMl0sIENTQURSQ0ZHMik7DQogCV9fcmF3 X3dyaXRlbChjc2FkcmNmZ1szXSwgQ1NBRFJDRkczKTsNCisJLyogQ1NNU0FEUkNGRyB3YWtlcyB1 cCBpbiBpdHMgZGVmYXVsdCBzdGF0ZSAoMCksIHNvIHdlIG5lZWQgdG8gc2V0IGl0ICovDQorCV9f cmF3X3dyaXRlbCgweDIsIENTTVNBRFJDRkcpOw0KIH0NCiANCiBzdGF0aWMgc3RydWN0IHN5c2Nv cmVfb3BzIHNtZW1jX3N5c2NvcmVfb3BzID0gew0KQEAgLTQ5LDggKzUxLDE5IEBAIHN0YXRpYyBz dHJ1Y3Qgc3lzY29yZV9vcHMgc21lbWNfc3lzY29yZV9vcHMgPSB7DQogDQogc3RhdGljIGludCBf X2luaXQgc21lbWNfaW5pdCh2b2lkKQ0KIHsNCi0JaWYgKGNwdV9pc19weGEzeHgoKSkNCisJaWYg KGNwdV9pc19weGEzeHgoKSkgew0KKwkJLyoNCisJCSAqIFRoZSBvbmx5IGRvY3VtZW50YXRpb24g d2UgaGF2ZSBvbiB0aGUNCisJCSAqIENoaXAgU2VsZWN0IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIg KENTTVNBRFJDRkcpIGlzIHRoYXQNCisJCSAqIGl0IG11c3QgYmUgcHJvZ3JhbW1lZCB0byAweDIu DQorCQkgKiBNb3Jlb3ZlciwgaW4gdGhlIGJpdCBkZWZpbml0aW9ucywgdGhlIHNlY29uZCBiaXQN CisJCSAqIChDU01TQURSQ0ZHWzFdKSBpcyBjYWxsZWQgIlNFVEFMV0FZUyIuDQorCQkgKiBPdGhl ciBiaXRzIGFyZSByZXNlcnZlZCBpbiB0aGlzIHJlZ2lzdGVyLg0KKwkJICovDQorCQlfX3Jhd193 cml0ZWwoMHgyLCBDU01TQURSQ0ZHKTsNCisNCiAJCXJlZ2lzdGVyX3N5c2NvcmVfb3BzKCZzbWVt Y19zeXNjb3JlX29wcyk7DQorCX0NCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL21hY2gtczNjMjQxMC9pbmNsdWRlL21hY2gvZGVidWctbWFjcm8uUyBiL2FyY2gvYXJt L21hY2gtczNjMjQxMC9pbmNsdWRlL21hY2gvZGVidWctbWFjcm8uUw0KaW5kZXggNDEzNWRlOC4u MTNlZDMzYyAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9pbmNsdWRlL21hY2gv ZGVidWctbWFjcm8uUw0KKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL2luY2x1ZGUvbWFjaC9k ZWJ1Zy1tYWNyby5TDQpAQCAtNDAsMTcgKzQwLDE3IEBADQogCQlhZGRlcQlccmQsIFxyeCwgIyhT M0MyNFhYX1BBX0dQSU8gLSBTM0MyNFhYX1BBX1VBUlQpDQogCQlhZGRuZQlccmQsIFxyeCwgIyhT M0MyNFhYX1ZBX0dQSU8gLSBTM0MyNFhYX1ZBX1VBUlQpDQogCQliaWMJXHJkLCBccmQsICMweGZm MDAwDQotCQlsZHIJXHJkLCBbIFxyZCwgIyBTM0MyNDEwX0dTVEFUVVMxIC0gUzNDMjQxMF9HUElP UkVHKDApIF0NCisJCWxkcglccmQsIFtccmQsICMgUzNDMjQxMF9HU1RBVFVTMSAtIFMzQzI0MTBf R1BJT1JFRygwKV0NCiAJCWFuZAlccmQsIFxyZCwgIzB4MDBmZjAwMDANCiAJCXRlcQlccmQsICMw eDAwNDQwMDAwCQlAIGlzIGl0IDI0NDA/DQogMTAwNDoNCi0JCWxkcglccmQsIFsgXHJ4LCAjIFMz QzI0MTBfVUZTVEFUIF0NCisJCWxkcglccmQsIFtccngsICMgUzNDMjQxMF9VRlNUQVRdDQogCQlt b3ZlcQlccmQsIFxyZCwgbHNyICNTSElGVF8yNDQwVFhGDQogCQl0c3QJXHJkLCAjUzNDMjQxMF9V RlNUQVRfVFhGVUxMDQogCS5lbmRtDQogDQogCS5tYWNybyAgZmlmb19mdWxsX3MzYzI0MTAgcmQs IHJ4DQotCQlsZHIJXHJkLCBbIFxyeCwgIyBTM0MyNDEwX1VGU1RBVCBdDQorCQlsZHIJXHJkLCBb XHJ4LCAjIFMzQzI0MTBfVUZTVEFUXQ0KIAkJdHN0CVxyZCwgI1MzQzI0MTBfVUZTVEFUX1RYRlVM TA0KIAkuZW5kbQ0KIA0KQEAgLTY4LDE4ICs2OCwxOCBAQA0KIAkJYWRkZXEJXHJkLCBccngsICMo UzNDMjRYWF9QQV9HUElPIC0gUzNDMjRYWF9QQV9VQVJUKQ0KIAkJYWRkbmUJXHJkLCBccngsICMo UzNDMjRYWF9WQV9HUElPIC0gUzNDMjRYWF9WQV9VQVJUKQ0KIAkJYmljCVxyZCwgXHJkLCAjMHhm ZjAwMA0KLQkJbGRyCVxyZCwgWyBccmQsICMgUzNDMjQxMF9HU1RBVFVTMSAtIFMzQzI0MTBfR1BJ T1JFRygwKSBdDQorCQlsZHIJXHJkLCBbXHJkLCAjIFMzQzI0MTBfR1NUQVRVUzEgLSBTM0MyNDEw X0dQSU9SRUcoMCldDQogCQlhbmQJXHJkLCBccmQsICMweDAwZmYwMDAwDQogCQl0ZXEJXHJkLCAj MHgwMDQ0MDAwMAkJQCBpcyBpdCAyNDQwPw0KIA0KIDEwMDAwOg0KLQkJbGRyCVxyZCwgWyBccngs ICMgUzNDMjQxMF9VRlNUQVQgXQ0KKwkJbGRyCVxyZCwgW1xyeCwgIyBTM0MyNDEwX1VGU1RBVF0N CiAJCWFuZG5lCVxyZCwgXHJkLCAjUzNDMjQxMF9VRlNUQVRfVFhNQVNLDQogCQlhbmRlcQlccmQs IFxyZCwgI1MzQzI0NDBfVUZTVEFUX1RYTUFTSw0KIAkuZW5kbQ0KIA0KIAkubWFjcm8gZmlmb19s ZXZlbF9zM2MyNDEwIHJkLCByeA0KLQkJbGRyCVxyZCwgWyBccngsICMgUzNDMjQxMF9VRlNUQVQg XQ0KKwkJbGRyCVxyZCwgW1xyeCwgIyBTM0MyNDEwX1VGU1RBVF0NCiAJCWFuZAlccmQsIFxyZCwg I1MzQzI0MTBfVUZTVEFUX1RYTUFTSw0KIAkuZW5kbQ0KIA0KZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21hY2gtczNjMjQxMC9pbmNsdWRlL21hY2gvZW50cnktbWFjcm8uUyBiL2FyY2gvYXJtL21hY2gt czNjMjQxMC9pbmNsdWRlL21hY2gvZW50cnktbWFjcm8uUw0KaW5kZXggNDczYjNjZC4uZWYyMjg3 YiAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9pbmNsdWRlL21hY2gvZW50cnkt bWFjcm8uUw0KKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL2luY2x1ZGUvbWFjaC9lbnRyeS1t YWNyby5TDQpAQCAtMzQsMTAgKzM0LDEwIEBADQogDQogCQlAQCB0cnkgdGhlIGludGVycnVwdCBv ZmZzZXQgcmVnaXN0ZXIsIHNpbmNlIGl0IGlzIHRoZXJlDQogDQotCQlsZHIJXGlycXN0YXQsIFsg XGJhc2UsICNJTlRQTkQgXQ0KKwkJbGRyCVxpcnFzdGF0LCBbXGJhc2UsICNJTlRQTkQgXQ0KIAkJ dGVxCVxpcnFzdGF0LCAjMA0KIAkJYmVxCTEwMDJmDQotCQlsZHIJXGlycW5yLCBbIFxiYXNlLCAj SU5UT0ZGU0VUIF0NCisJCWxkcglcaXJxbnIsIFtcYmFzZSwgI0lOVE9GRlNFVCBdDQogCQltb3YJ XHRtcCwgIzENCiAJCXRzdAlcaXJxc3RhdCwgXHRtcCwgbHNsIFxpcnFucg0KIAkJYm5lCTEwMDFm DQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL3BtLWgxOTQwLlMgYi9hcmNoL2Fy bS9tYWNoLXMzYzI0MTAvcG0taDE5NDAuUw0KaW5kZXggYzkzYmYyZC4uNjE4M2E2OCAxMDA2NDQN Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9wbS1oMTk0MC5TDQorKysgYi9hcmNoL2FybS9t YWNoLXMzYzI0MTAvcG0taDE5NDAuUw0KQEAgLTMwLDQgKzMwLDQgQEANCiANCiBoMTk0MF9wbV9y ZXR1cm46DQogCW1vdglyMCwgI1MzQzI0MTBfUEFfR1BJTw0KLQlsZHIJcGMsIFsgcjAsICNTM0My NDEwX0dTVEFUVVMzIC0gUzNDMjRYWF9WQV9HUElPIF0NCisJbGRyCXBjLCBbcjAsICNTM0MyNDEw X0dTVEFUVVMzIC0gUzNDMjRYWF9WQV9HUElPXQ0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gt czNjMjQxMC9zbGVlcC5TIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL3NsZWVwLlMNCmluZGV4IGRk NWI2MzguLjY1MjAwYWUgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvc2xlZXAu Uw0KKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL3NsZWVwLlMNCkBAIC00NSw5ICs0NSw5IEBA IEVOVFJZKHMzYzI0MTBfY3B1X3N1c3BlbmQpDQogCWxkcglyNCwgPVMzQzI0MTBfUkVGUkVTSA0K IAlsZHIJcjUsID1TM0MyNFhYX01JU0NDUg0KIAlsZHIJcjYsID1TM0MyNDEwX0NMS0NPTg0KLQls ZHIJcjcsIFsgcjQgXQkJQCBnZXQgUkVGUkVTSCAoYW5kIGVuc3VyZSBpbiBUTEIpDQotCWxkcgly OCwgWyByNSBdCQlAIGdldCBNSVNDQ1IgKGFuZCBlbnN1cmUgaW4gVExCKQ0KLQlsZHIJcjksIFsg cjYgXQkJQCBnZXQgQ0xLQ09OIChhbmQgZW5zdXJlIGluIFRMQikNCisJbGRyCXI3LCBbcjRdCQlA IGdldCBSRUZSRVNIIChhbmQgZW5zdXJlIGluIFRMQikNCisJbGRyCXI4LCBbcjVdCQlAIGdldCBN SVNDQ1IgKGFuZCBlbnN1cmUgaW4gVExCKQ0KKwlsZHIJcjksIFtyNl0JCUAgZ2V0IENMS0NPTiAo YW5kIGVuc3VyZSBpbiBUTEIpDQogDQogCW9ycglyNywgcjcsICNTM0MyNDEwX1JFRlJFU0hfU0VM RglAIFNEUkFNIHNsZWVwIGNvbW1hbmQNCiAJb3JyCXI4LCByOCwgI1MzQzI0MTBfTUlTQ0NSX1NE U0xFRVAgQCBTRFJBTSBwb3dlci1kb3duIHNpZ25hbHMNCkBAIC02MSw4ICs2MSw4IEBAIEVOVFJZ KHMzYzI0MTBfY3B1X3N1c3BlbmQpDQogCUBAIGFsaWduIG5leHQgYml0IG9mIGNvZGUgdG8gY2Fj aGUgbGluZQ0KIAkuYWxpZ24JNQ0KIHMzYzI0MTBfZG9fc2xlZXA6DQotCXN0cmVxCXI3LCBbIHI0 IF0JCQlAIFNEUkFNIHNsZWVwIGNvbW1hbmQNCi0Jc3RyZXEJcjgsIFsgcjUgXQkJCUAgU0RSQU0g cG93ZXItZG93biBjb25maWcNCi0Jc3RyZXEJcjksIFsgcjYgXQkJCUAgQ1BVIHNsZWVwDQorCXN0 cmVxCXI3LCBbcjRdCQkJQCBTRFJBTSBzbGVlcCBjb21tYW5kDQorCXN0cmVxCXI4LCBbcjVdCQkJ QCBTRFJBTSBwb3dlci1kb3duIGNvbmZpZw0KKwlzdHJlcQlyOSwgW3I2XQkJCUAgQ1BVIHNsZWVw DQogMToJYmVxCTFiDQogCW1vdglwYywgcjE0DQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1z M2MyNDEyL3NsZWVwLlMgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTIvc2xlZXAuUw0KaW5kZXggYzgy NDE4ZS4uNWFkYWNlYiAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMi9zbGVlcC5T DQorKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTIvc2xlZXAuUw0KQEAgLTU3LDEyICs1NywxMiBA QCBzM2MyNDEyX3NsZWVwX2VudGVyMToNCiAJICogcmV0cnksIGFzIHNpbXBseSByZXR1cm5pbmcg Y2F1c2VzIHRoZSBzeXN0ZW0gdG8gbG9jay4NCiAJKi8NCiANCi0JbGRybmUJcjksIFsgcjEgXQ0K LQlzdHJuZQlyOSwgWyByMSBdDQotCWxkcm5lCXI5LCBbIHIyIF0NCi0Jc3RybmUJcjksIFsgcjIg XQ0KLQlsZHJuZQlyOSwgWyByMyBdDQotCXN0cm5lCXI5LCBbIHIzIF0NCisJbGRybmUJcjksIFty MV0NCisJc3RybmUJcjksIFtyMV0NCisJbGRybmUJcjksIFtyMl0NCisJc3RybmUJcjksIFtyMl0N CisJbGRybmUJcjksIFtyM10NCisJc3RybmUJcjksIFtyM10NCiAJYm5lCXMzYzI0MTJfc2xlZXBf ZW50ZXIxDQogDQogCW1vdglwYywgcjE0DQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC13OTB4 OTAwL2luY2x1ZGUvbWFjaC9lbnRyeS1tYWNyby5TIGIvYXJjaC9hcm0vbWFjaC13OTB4OTAwL2lu Y2x1ZGUvbWFjaC9lbnRyeS1tYWNyby5TDQppbmRleCBkMzlhY2E1Li4wODQzNmNmIDEwMDY0NA0K LS0tIGEvYXJjaC9hcm0vbWFjaC13OTB4OTAwL2luY2x1ZGUvbWFjaC9lbnRyeS1tYWNyby5TDQor KysgYi9hcmNoL2FybS9tYWNoLXc5MHg5MDAvaW5jbHVkZS9tYWNoL2VudHJ5LW1hY3JvLlMNCkBA IC0yMiw4ICsyMiw4IEBADQogDQogCQltb3YJXGJhc2UsICNBSUNfQkENCiANCi0JCWxkcglcaXJx bnIsIFsgXGJhc2UsICNBSUNfSVBFUl0NCi0JCWxkcglcaXJxbnIsIFsgXGJhc2UsICNBSUNfSVNO Ul0NCisJCWxkcglcaXJxbnIsIFtcYmFzZSwgI0FJQ19JUEVSXQ0KKwkJbGRyCVxpcnFuciwgW1xi YXNlLCAjQUlDX0lTTlJdDQogCQljbXAJXGlycW5yLCAjMA0KIA0KIAkuZW5kbQ0KZGlmZiAtLWdp dCBhL2FyY2gvYXJtL3BsYXQtc2Ftc3VuZy9pbmNsdWRlL3BsYXQvZGVidWctbWFjcm8uUyBiL2Fy Y2gvYXJtL3BsYXQtc2Ftc3VuZy9pbmNsdWRlL3BsYXQvZGVidWctbWFjcm8uUw0KaW5kZXggMjA3 ZTI3NS4uZjNhOWNmZiAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL3BsYXQtc2Ftc3VuZy9pbmNsdWRl L3BsYXQvZGVidWctbWFjcm8uUw0KKysrIGIvYXJjaC9hcm0vcGxhdC1zYW1zdW5nL2luY2x1ZGUv cGxhdC9kZWJ1Zy1tYWNyby5TDQpAQCAtMTQsMTIgKzE0LDEyIEBADQogLyogVGhlIFM1UFYyMTAv UzVQQzExMCBpbXBsZW1lbnRhdGlvbnMgYXJlIGFzIGJlbG93cy4gKi8NCiANCiAJLm1hY3JvIGZp Zm9fbGV2ZWxfczVwdjIxMCByZCwgcngNCi0JCWxkcglccmQsIFsgXHJ4LCAjIFMzQzI0MTBfVUZT VEFUIF0NCisJCWxkcglccmQsIFtccngsICMgUzNDMjQxMF9VRlNUQVRdDQogCQlhbmQJXHJkLCBc cmQsICNTNVBWMjEwX1VGU1RBVF9UWE1BU0sNCiAJLmVuZG0NCiANCiAJLm1hY3JvICBmaWZvX2Z1 bGxfczVwdjIxMCByZCwgcngNCi0JCWxkcglccmQsIFsgXHJ4LCAjIFMzQzI0MTBfVUZTVEFUIF0N CisJCWxkcglccmQsIFtccngsICMgUzNDMjQxMF9VRlNUQVRdDQogCQl0c3QJXHJkLCAjUzVQVjIx MF9VRlNUQVRfVFhGVUxMDQogCS5lbmRtDQogDQpAQCAtMjcsNyArMjcsNyBAQA0KICAqIG1vc3Qg d2lkZWx5IHJlLXVzZWQgKi8NCiANCiAJLm1hY3JvIGZpZm9fbGV2ZWxfczNjMjQ0MCByZCwgcngN Ci0JCWxkcglccmQsIFsgXHJ4LCAjIFMzQzI0MTBfVUZTVEFUIF0NCisJCWxkcglccmQsIFtccngs ICMgUzNDMjQxMF9VRlNUQVRdDQogCQlhbmQJXHJkLCBccmQsICNTM0MyNDQwX1VGU1RBVF9UWE1B U0sNCiAJLmVuZG0NCiANCkBAIC0zNiw3ICszNiw3IEBADQogI2VuZGlmDQogDQogCS5tYWNybyAg Zmlmb19mdWxsX3MzYzI0NDAgcmQsIHJ4DQotCQlsZHIJXHJkLCBbIFxyeCwgIyBTM0MyNDEwX1VG U1RBVCBdDQorCQlsZHIJXHJkLCBbXHJ4LCAjIFMzQzI0MTBfVUZTVEFUXQ0KIAkJdHN0CVxyZCwg I1MzQzI0NDBfVUZTVEFUX1RYRlVMTA0KIAkuZW5kbQ0KIA0KQEAgLTQ1LDExICs0NSwxMSBAQA0K ICNlbmRpZg0KIA0KIAkubWFjcm8Jc2VuZHVhcnQscmQscngNCi0JCXN0cmIgCVxyZCwgW1xyeCwg IyBTM0MyNDEwX1VUWEggXQ0KKwkJc3RyYiAJXHJkLCBbXHJ4LCAjIFMzQzI0MTBfVVRYSF0NCiAJ LmVuZG0NCiANCiAJLm1hY3JvCWJ1c3l1YXJ0LCByZCwgcngNCi0JCWxkcglccmQsIFsgXHJ4LCAj IFMzQzI0MTBfVUZDT04gXQ0KKwkJbGRyCVxyZCwgW1xyeCwgIyBTM0MyNDEwX1VGQ09OXQ0KIAkJ dHN0CVxyZCwgI1MzQzI0MTBfVUZDT05fRklGT01PREUJQCBmaWZvIGVuYWJsZWQ/DQogCQliZXEJ MTAwMWYJCQkJQA0KIAkJQCBGSUZPIGVuYWJsZWQuLi4NCkBAIC02MCw3ICs2MCw3IEBADQogDQog MTAwMToNCiAJCUAgYnVzeSB3YWl0aW5nIGZvciBub24gZmlmbw0KLQkJbGRyCVxyZCwgWyBccngs ICMgUzNDMjQxMF9VVFJTVEFUIF0NCisJCWxkcglccmQsIFtccngsICMgUzNDMjQxMF9VVFJTVEFU XQ0KIAkJdHN0CVxyZCwgI1MzQzI0MTBfVVRSU1RBVF9UWEZFDQogCQliZXEJMTAwMWINCiANCkBA IC02OCw3ICs2OCw3IEBADQogCS5lbmRtDQogDQogCS5tYWNybwl3YWl0dWFydCxyZCxyeA0KLQkJ bGRyCVxyZCwgWyBccngsICMgUzNDMjQxMF9VRkNPTiBdDQorCQlsZHIJXHJkLCBbXHJ4LCAjIFMz QzI0MTBfVUZDT05dDQogCQl0c3QJXHJkLCAjUzNDMjQxMF9VRkNPTl9GSUZPTU9ERQlAIGZpZm8g ZW5hYmxlZD8NCiAJCWJlcQkxMDAxZgkJCQlADQogCQlAIEZJRk8gZW5hYmxlZC4uLg0KQEAgLTc5 LDcgKzc5LDcgQEANCiAJCWIJMTAwMmYNCiAxMDAxOg0KIAkJQCBpZGxlIHdhaXRpbmcgZm9yIG5v biBmaWZvDQotCQlsZHIJXHJkLCBbIFxyeCwgIyBTM0MyNDEwX1VUUlNUQVQgXQ0KKwkJbGRyCVxy ZCwgW1xyeCwgIyBTM0MyNDEwX1VUUlNUQVRdDQogCQl0c3QJXHJkLCAjUzNDMjQxMF9VVFJTVEFU X1RYRkUNCiAJCWJlcQkxMDAxYg0KIA0KZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2luY2x1ZGUv YXNtL3BndGFibGUuaCBiL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL3BndGFibGUuaA0KaW5kZXgg MjJkYWRlYi4uOWQzNWEzZSAxMDA2NDQNCi0tLSBhL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL3Bn dGFibGUuaA0KKysrIGIvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vcGd0YWJsZS5oDQpAQCAtMTIs MTEgKzEyLDEwIEBADQogDQogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPg0KICNpbmNsdWRlIDxs aW51eC9zcGlubG9jay5oPg0KKyNpbmNsdWRlIDxsaW51eC9tbV90eXBlcy5oPg0KICNpbmNsdWRl IDxhc20vcHJvY2Vzc29yLmg+DQogI2luY2x1ZGUgPGFzbS9jYWNoZS5oPg0KIA0KLXN0cnVjdCB2 bV9hcmVhX3N0cnVjdDsNCi0NCiAvKg0KICAqIGtlcm5fYWRkcl92YWxpZChBRERSKSB0ZXN0cyBp ZiBBRERSIGlzIHBvaW50aW5nIHRvIHZhbGlkIGtlcm5lbA0KICAqIG1lbW9yeS4gIEZvciB0aGUg cmV0dXJuIHZhbHVlIHRvIGJlIG1lYW5pbmdmdWwsIEFERFIgbXVzdCBiZSA+PQ0KQEAgLTQwLDcg KzM5LDE0IEBAIHN0cnVjdCB2bV9hcmVhX3N0cnVjdDsNCiAgICAgICAgIGRveyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgICAgICAgICAg ICAgICAqKHB0ZXB0cikgPSAocHRldmFsKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog ICAgICAgICB9IHdoaWxlKDApDQotI2RlZmluZSBzZXRfcHRlX2F0KG1tLGFkZHIscHRlcCxwdGV2 YWwpIHNldF9wdGUocHRlcCxwdGV2YWwpDQorDQorZXh0ZXJuIHZvaWQgcHVyZ2VfdGxiX2VudHJp ZXMoc3RydWN0IG1tX3N0cnVjdCAqLCB1bnNpZ25lZCBsb25nKTsNCisNCisjZGVmaW5lIHNldF9w dGVfYXQobW0sIGFkZHIsIHB0ZXAsIHB0ZXZhbCkgICAgICAgICAgICAgICAgICAgICAgXA0KKwlk byB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisJCXNldF9wdGUocHRlcCwgcHRldmFsKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisJ CXB1cmdlX3RsYl9lbnRyaWVzKG1tLCBhZGRyKTsgICAgICAgICAgICAgICAgICAgIFwNCisJfSB3 aGlsZSAoMCkNCiANCiAjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLw0KIA0KQEAgLTQ2NCw2ICs0 NzAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHRlcF9zZXRfd3Jwcm90ZWN0KHN0cnVjdCBtbV9z dHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsDQogCQlvbGQgPSBwdGVfdmFsKCpwdGVwKTsN CiAJCW5ldyA9IHB0ZV92YWwocHRlX3dycHJvdGVjdChfX3B0ZSAob2xkKSkpOw0KIAl9IHdoaWxl IChjbXB4Y2hnKCh1bnNpZ25lZCBsb25nICopIHB0ZXAsIG9sZCwgbmV3KSAhPSBvbGQpOw0KKwlw dXJnZV90bGJfZW50cmllcyhtbSwgYWRkcik7DQogI2Vsc2UNCiAJcHRlX3Qgb2xkX3B0ZSA9ICpw dGVwOw0KIAlzZXRfcHRlX2F0KG1tLCBhZGRyLCBwdGVwLCBwdGVfd3Jwcm90ZWN0KG9sZF9wdGUp KTsNCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvY2FjaGUuYyBiL2FyY2gvcGFyaXNj L2tlcm5lbC9jYWNoZS5jDQppbmRleCA4MzMzNWYzLi41MjQxNjk4IDEwMDY0NA0KLS0tIGEvYXJj aC9wYXJpc2Mva2VybmVsL2NhY2hlLmMNCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9jYWNoZS5j DQpAQCAtNDIxLDYgKzQyMSwyNCBAQCB2b2lkIGt1bm1hcF9wYXJpc2Modm9pZCAqYWRkcikNCiBF WFBPUlRfU1lNQk9MKGt1bm1hcF9wYXJpc2MpOw0KICNlbmRpZg0KIA0KK3ZvaWQgcHVyZ2VfdGxi X2VudHJpZXMoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcikNCit7DQor CXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQorDQorCS8qIE5vdGU6IHB1cmdlX3RsYl9lbnRyaWVzIGNh biBiZSBjYWxsZWQgYXQgc3RhcnR1cCB3aXRoDQorCSAgIG5vIGNvbnRleHQuICAqLw0KKw0KKwkv KiBEaXNhYmxlIHByZWVtcHRpb24gd2hpbGUgd2UgcGxheSB3aXRoICVzcjEuICAqLw0KKwlwcmVl bXB0X2Rpc2FibGUoKTsNCisJbXRzcChtbS0+Y29udGV4dCwgMSk7DQorCXB1cmdlX3RsYl9zdGFy dChmbGFncyk7DQorCXBkdGxiKGFkZHIpOw0KKwlwaXRsYihhZGRyKTsNCisJcHVyZ2VfdGxiX2Vu ZChmbGFncyk7DQorCXByZWVtcHRfZW5hYmxlKCk7DQorfQ0KK0VYUE9SVF9TWU1CT0wocHVyZ2Vf dGxiX2VudHJpZXMpOw0KKw0KIHZvaWQgX19mbHVzaF90bGJfcmFuZ2UodW5zaWduZWQgbG9uZyBz aWQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsDQogCQkgICAgICAgdW5zaWduZWQgbG9uZyBlbmQpDQog ew0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lZWguaCBiL2FyY2gvcG93 ZXJwYy9pbmNsdWRlL2FzbS9lZWguaA0KaW5kZXggNjZlYTliOC4uMjExNjVhNCAxMDA2NDQNCi0t LSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lZWguaA0KKysrIGIvYXJjaC9wb3dlcnBjL2lu Y2x1ZGUvYXNtL2VlaC5oDQpAQCAtNjEsNiArNjEsNyBAQCB2b2lkIF9faW5pdCBwY2lfYWRkcl9j YWNoZV9idWlsZCh2b2lkKTsNCiAgKi8NCiB2b2lkIGVlaF9hZGRfZGV2aWNlX3RyZWVfZWFybHko c3RydWN0IGRldmljZV9ub2RlICopOw0KIHZvaWQgZWVoX2FkZF9kZXZpY2VfdHJlZV9sYXRlKHN0 cnVjdCBwY2lfYnVzICopOw0KK3ZvaWQgZWVoX2FkZF9zeXNmc19maWxlcyhzdHJ1Y3QgcGNpX2J1 cyAqKTsNCiANCiAvKioNCiAgKiBlZWhfcmVtb3ZlX2RldmljZV9yZWN1cnNpdmUgLSB1bmRvIEVF SCBmb3IgZGV2aWNlICYgY2hpbGRyZW4uDQpAQCAtMTA1LDYgKzEwNiw4IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBlZWhfYWRkX2RldmljZV90cmVlX2Vhcmx5KHN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4p IHsgfQ0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBlZWhfYWRkX2RldmljZV90cmVlX2xhdGUoc3Ry dWN0IHBjaV9idXMgKmJ1cykgeyB9DQogDQorc3RhdGljIGlubGluZSB2b2lkIGVlaF9hZGRfc3lz ZnNfZmlsZXMoc3RydWN0IHBjaV9idXMgKmJ1cykgeyB9DQorDQogc3RhdGljIGlubGluZSB2b2lk IGVlaF9yZW1vdmVfYnVzX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2KSB7IH0NCiAjZGVmaW5l IEVFSF9QT1NTSUJMRV9FUlJPUih2YWwsIHR5cGUpICgwKQ0KICNkZWZpbmUgRUVIX0lPX0VSUk9S X1ZBTFVFKHNpemUpICgtMVVMKQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvbWFj aGluZV9rZXhlY182NC5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9tYWNoaW5lX2tleGVjXzY0LmMN CmluZGV4IDI2Y2NiZjcuLjRjMDkwOGQgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVs L21hY2hpbmVfa2V4ZWNfNjQuYw0KKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9tYWNoaW5lX2tl eGVjXzY0LmMNCkBAIC0xNjIsNiArMTYyLDggQEAgc3RhdGljIGludCBrZXhlY19hbGxfaXJxX2Rp c2FibGVkID0gMDsNCiBzdGF0aWMgdm9pZCBrZXhlY19zbXBfZG93bih2b2lkICphcmcpDQogew0K IAlsb2NhbF9pcnFfZGlzYWJsZSgpOw0KKwloYXJkX2lycV9kaXNhYmxlKCk7DQorDQogCW1iKCk7 IC8qIG1ha2Ugc3VyZSBvdXIgaXJxcyBhcmUgZGlzYWJsZWQgYmVmb3JlIHdlIHNheSB0aGV5IGFy ZSAqLw0KIAlnZXRfcGFjYSgpLT5rZXhlY19zdGF0ZSA9IEtFWEVDX1NUQVRFX0lSUVNfT0ZGOw0K IAl3aGlsZShrZXhlY19hbGxfaXJxX2Rpc2FibGVkID09IDApDQpAQCAtMjQ0LDYgKzI0Niw4IEBA IHN0YXRpYyB2b2lkIGtleGVjX3ByZXBhcmVfY3B1cyh2b2lkKQ0KIAl3YWtlX29mZmxpbmVfY3B1 cygpOw0KIAlzbXBfY2FsbF9mdW5jdGlvbihrZXhlY19zbXBfZG93biwgTlVMTCwgLyogd2FpdCAq LzApOw0KIAlsb2NhbF9pcnFfZGlzYWJsZSgpOw0KKwloYXJkX2lycV9kaXNhYmxlKCk7DQorDQog CW1iKCk7IC8qIG1ha2Ugc3VyZSBJUlFzIGFyZSBkaXNhYmxlZCBiZWZvcmUgd2Ugc2F5IHRoZXkg YXJlICovDQogCWdldF9wYWNhKCktPmtleGVjX3N0YXRlID0gS0VYRUNfU1RBVEVfSVJRU19PRkY7 DQogDQpAQCAtMjgxLDYgKzI4NSw3IEBAIHN0YXRpYyB2b2lkIGtleGVjX3ByZXBhcmVfY3B1cyh2 b2lkKQ0KIAlpZiAocHBjX21kLmtleGVjX2NwdV9kb3duKQ0KIAkJcHBjX21kLmtleGVjX2NwdV9k b3duKDAsIDApOw0KIAlsb2NhbF9pcnFfZGlzYWJsZSgpOw0KKwloYXJkX2lycV9kaXNhYmxlKCk7 DQogfQ0KIA0KICNlbmRpZiAvKiBTTVAgKi8NCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2Vy bmVsL29mX3BsYXRmb3JtLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL29mX3BsYXRmb3JtLmMNCmlu ZGV4IGUxNjEyZGYuLmIxMGJlZWYgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL29m X3BsYXRmb3JtLmMNCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvb2ZfcGxhdGZvcm0uYw0KQEAg LTkxLDYgKzkxLDkgQEAgc3RhdGljIGludCBfX2RldmluaXQgb2ZfcGNpX3BoYl9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpDQogCS8qIEFkZCBwcm9iZWQgUENJIGRldmljZXMgdG8g dGhlIGRldmljZSBtb2RlbCAqLw0KIAlwY2lfYnVzX2FkZF9kZXZpY2VzKHBoYi0+YnVzKTsNCiAN CisJLyogc3lzZnMgZmlsZXMgc2hvdWxkIG9ubHkgYmUgYWRkZWQgYWZ0ZXIgZGV2aWNlcyBhcmUg YWRkZWQgKi8NCisJZWVoX2FkZF9zeXNmc19maWxlcyhwaGItPmJ1cyk7DQorDQogCXJldHVybiAw Ow0KIH0NCiANCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYyBi L2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jDQppbmRleCA0NThlZDNiLi5hM2NkOTQ5 IDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29tbW9uLmMNCisrKyBiL2Fy Y2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jDQpAQCAtMTUzNiwxMSArMTUzNiwxNCBAQCB2 b2lkIHBjaWJpb3NfZmluaXNoX2FkZGluZ190b19idXMoc3RydWN0IHBjaV9idXMgKmJ1cykNCiAJ cGNpYmlvc19hbGxvY2F0ZV9idXNfcmVzb3VyY2VzKGJ1cyk7DQogCXBjaWJpb3NfY2xhaW1fb25l X2J1cyhidXMpOw0KIA0KKwkvKiBGaXh1cCBFRUggKi8NCisJZWVoX2FkZF9kZXZpY2VfdHJlZV9s YXRlKGJ1cyk7DQorDQogCS8qIEFkZCBuZXcgZGV2aWNlcyB0byBnbG9iYWwgbGlzdHMuICBSZWdp c3RlciBpbiBwcm9jLCBzeXNmcy4gKi8NCiAJcGNpX2J1c19hZGRfZGV2aWNlcyhidXMpOw0KIA0K LQkvKiBGaXh1cCBFRUggKi8NCi0JZWVoX2FkZF9kZXZpY2VfdHJlZV9sYXRlKGJ1cyk7DQorCS8q IHN5c2ZzIGZpbGVzIHNob3VsZCBvbmx5IGJlIGFkZGVkIGFmdGVyIGRldmljZXMgYXJlIGFkZGVk ICovDQorCWVlaF9hZGRfc3lzZnNfZmlsZXMoYnVzKTsNCiB9DQogRVhQT1JUX1NZTUJPTF9HUEwo cGNpYmlvc19maW5pc2hfYWRkaW5nX3RvX2J1cyk7DQogDQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dl cnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2VlaC5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2Vy aWVzL2VlaC5jDQppbmRleCA1NjU4NjkwLi4zODllMDZiIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dl cnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2VlaC5jDQorKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z L3BzZXJpZXMvZWVoLmMNCkBAIC0xMjM4LDcgKzEyMzgsNiBAQCBzdGF0aWMgdm9pZCBlZWhfYWRk X2RldmljZV9sYXRlKHN0cnVjdCBwY2lfZGV2ICpkZXYpDQogCXBkbi0+cGNpZGV2ID0gZGV2Ow0K IA0KIAlwY2lfYWRkcl9jYWNoZV9pbnNlcnRfZGV2aWNlKGRldik7DQotCWVlaF9zeXNmc19hZGRf ZGV2aWNlKGRldik7DQogfQ0KIA0KIHZvaWQgZWVoX2FkZF9kZXZpY2VfdHJlZV9sYXRlKHN0cnVj dCBwY2lfYnVzICpidXMpDQpAQCAtMTI1Nyw2ICsxMjU2LDI5IEBAIHZvaWQgZWVoX2FkZF9kZXZp Y2VfdHJlZV9sYXRlKHN0cnVjdCBwY2lfYnVzICpidXMpDQogRVhQT1JUX1NZTUJPTF9HUEwoZWVo X2FkZF9kZXZpY2VfdHJlZV9sYXRlKTsNCiANCiAvKioNCisgKiBlZWhfYWRkX3N5c2ZzX2ZpbGVz IC0gQWRkIEVFSCBzeXNmcyBmaWxlcyBmb3IgdGhlIGluZGljYXRlZCBQQ0kgYnVzDQorICogQGJ1 czogUENJIGJ1cw0KKyAqDQorICogVGhpcyByb3V0aW5lIG11c3QgYmUgdXNlZCB0byBhZGQgRUVI IHN5c2ZzIGZpbGVzIGZvciBQQ0kNCisgKiBkZXZpY2VzIHdoaWNoIGFyZSBhdHRhY2hlZCB0byB0 aGUgaW5kaWNhdGVkIFBDSSBidXMuIFRoZSBQQ0kgYnVzDQorICogaXMgYWRkZWQgYWZ0ZXIgc3lz dGVtIGJvb3QgdGhyb3VnaCBob3RwbHVnIG9yIGRscGFyLg0KKyAqLw0KK3ZvaWQgZWVoX2FkZF9z eXNmc19maWxlcyhzdHJ1Y3QgcGNpX2J1cyAqYnVzKQ0KK3sNCisJc3RydWN0IHBjaV9kZXYgKmRl djsNCisNCisJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXYsICZidXMtPmRldmljZXMsIGJ1c19saXN0 KSB7DQorCQllZWhfc3lzZnNfYWRkX2RldmljZShkZXYpOw0KKwkJaWYgKGRldi0+aGRyX3R5cGUg PT0gUENJX0hFQURFUl9UWVBFX0JSSURHRSkgew0KKwkJCXN0cnVjdCBwY2lfYnVzICpzdWJidXMg PSBkZXYtPnN1Ym9yZGluYXRlOw0KKwkJCWlmIChzdWJidXMpDQorCQkJCWVlaF9hZGRfc3lzZnNf ZmlsZXMoc3ViYnVzKTsNCisJCX0NCisJfQ0KK30NCitFWFBPUlRfU1lNQk9MX0dQTChlZWhfYWRk X3N5c2ZzX2ZpbGVzKTsNCisNCisvKioNCiAgKiBlZWhfcmVtb3ZlX2RldmljZSAtIHVuZG8gRUVI IHNldHVwIGZvciB0aGUgaW5kaWNhdGVkIHBjaSBkZXZpY2UNCiAgKiBAZGV2OiBwY2kgZGV2aWNl IHRvIGJlIHJlbW92ZWQNCiAgKg0KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvdGltZS5j IGIvYXJjaC9zMzkwL2tlcm5lbC90aW1lLmMNCmluZGV4IDg2NDQzNjYuLmIyZjQ0ZGUgMTAwNjQ0 DQotLS0gYS9hcmNoL3MzOTAva2VybmVsL3RpbWUuYw0KKysrIGIvYXJjaC9zMzkwL2tlcm5lbC90 aW1lLmMNCkBAIC0xMjEsNiArMTIxLDkgQEAgc3RhdGljIGludCBzMzkwX25leHRfa3RpbWUoa3Rp bWVfdCBleHBpcmVzLA0KIAluc2VjcyA9IGt0aW1lX3RvX25zKGt0aW1lX2FkZCh0aW1lc3BlY190 b19rdGltZSh0cyksIGV4cGlyZXMpKTsNCiAJZG9fZGl2KG5zZWNzLCAxMjUpOw0KIAlTMzkwX2xv d2NvcmUuY2xvY2tfY29tcGFyYXRvciA9IHNjaGVkX2Nsb2NrX2Jhc2VfY2MgKyAobnNlY3MgPDwg OSk7DQorCS8qIFByb2dyYW0gdGhlIG1heGltdW0gdmFsdWUgaWYgd2UgaGF2ZSBhbiBvdmVyZmxv dyAoPT0geWVhciAyMDQyKSAqLw0KKwlpZiAodW5saWtlbHkoUzM5MF9sb3djb3JlLmNsb2NrX2Nv bXBhcmF0b3IgPCBzY2hlZF9jbG9ja19iYXNlX2NjKSkNCisJCVMzOTBfbG93Y29yZS5jbG9ja19j b21wYXJhdG9yID0gLTFVTEw7DQogCXNldF9jbG9ja19jb21wYXJhdG9yKFMzOTBfbG93Y29yZS5j bG9ja19jb21wYXJhdG9yKTsNCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2FyY2gvczM5 MC9rdm0va3ZtLXMzOTAuYyBiL2FyY2gvczM5MC9rdm0va3ZtLXMzOTAuYw0KaW5kZXggZGZmY2Fh NC4uNGRiOWIxZSAxMDA2NDQNCi0tLSBhL2FyY2gvczM5MC9rdm0va3ZtLXMzOTAuYw0KKysrIGIv YXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jDQpAQCAtNTk3LDYgKzU5NywxNCBAQCBpbnQga3ZtX3Mz OTBfdmNwdV9zdG9yZV9zdGF0dXMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25n IGFkZHIpDQogCX0gZWxzZQ0KIAkJcHJlZml4ID0gMDsNCiANCisJLyoNCisJICogVGhlIGd1ZXN0 IEZQUlMgYW5kIEFDUlMgYXJlIGluIHRoZSBob3N0IEZQUlMvQUNSUyBkdWUgdG8gdGhlIGxhenkN CisJICogY29weWluZyBpbiB2Y3B1IGxvYWQvcHV0LiBMZXRzIHVwZGF0ZSBvdXIgY29waWVzIGJl Zm9yZSB3ZSBzYXZlDQorCSAqIGl0IGludG8gdGhlIHNhdmUgYXJlYQ0KKwkgKi8NCisJc2F2ZV9m cF9yZWdzKCZ2Y3B1LT5hcmNoLmd1ZXN0X2ZwcmVncyk7DQorCXNhdmVfYWNjZXNzX3JlZ3ModmNw dS0+YXJjaC5ndWVzdF9hY3JzKTsNCisNCiAJaWYgKF9fZ3Vlc3Rjb3B5KHZjcHUsIGFkZHIgKyBv ZmZzZXRvZihzdHJ1Y3Qgc2F2ZV9hcmVhLCBmcF9yZWdzKSwNCiAJCQl2Y3B1LT5hcmNoLmd1ZXN0 X2ZwcmVncy5mcHJzLCAxMjgsIHByZWZpeCkpDQogCQlyZXR1cm4gLUVGQVVMVDsNCmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9LY29uZmlnIGIvYXJjaC94ODYvS2NvbmZpZw0KaW5kZXggZWZiNDI5NC4u OWE0MjcwMyAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L0tjb25maWcNCisrKyBiL2FyY2gveDg2L0tj b25maWcNCkBAIC0xMTUwLDcgKzExNTAsNyBAQCBjb25maWcgRElSRUNUX0dCUEFHRVMNCiBjb25m aWcgTlVNQQ0KIAlib29sICJOdW1hIE1lbW9yeSBBbGxvY2F0aW9uIGFuZCBTY2hlZHVsZXIgU3Vw cG9ydCINCiAJZGVwZW5kcyBvbiBTTVANCi0JZGVwZW5kcyBvbiBYODZfNjQgfHwgKFg4Nl8zMiAm JiBISUdITUVNNjRHICYmIChYODZfTlVNQVEgfHwgWDg2X0JJR1NNUCB8fCBYODZfU1VNTUlUICYm IEFDUEkpICYmIEVYUEVSSU1FTlRBTCkNCisJZGVwZW5kcyBvbiBYODZfNjQgfHwgKFg4Nl8zMiAm JiBISUdITUVNNjRHICYmIChYODZfTlVNQVEgfHwgWDg2X0JJR1NNUCB8fCBYODZfU1VNTUlUICYm IEFDUEkpICYmIEJST0tFTikNCiAJZGVmYXVsdCB5IGlmIChYODZfTlVNQVEgfHwgWDg2X1NVTU1J VCB8fCBYODZfQklHU01QKQ0KIAktLS1oZWxwLS0tDQogCSAgRW5hYmxlIE5VTUEgKE5vbiBVbmlm b3JtIE1lbW9yeSBBY2Nlc3MpIHN1cHBvcnQuDQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVk ZS9hc20vcGd0YWJsZS5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZS5oDQppbmRleCA4 ODQ1MDdlLi42YmU5OTA5IDEwMDY0NA0KLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJs ZS5oDQorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgNCkBAIC0xNDIsNiArMTQy LDExIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBwbWRfcGZuKHBtZF90IHBtZCkNCiAJ cmV0dXJuIChwbWRfdmFsKHBtZCkgJiBQVEVfUEZOX01BU0spID4+IFBBR0VfU0hJRlQ7DQogfQ0K IA0KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBwdWRfcGZuKHB1ZF90IHB1ZCkNCit7DQor CXJldHVybiAocHVkX3ZhbChwdWQpICYgUFRFX1BGTl9NQVNLKSA+PiBQQUdFX1NISUZUOw0KK30N CisNCiAjZGVmaW5lIHB0ZV9wYWdlKHB0ZSkJcGZuX3RvX3BhZ2UocHRlX3BmbihwdGUpKQ0KIA0K IHN0YXRpYyBpbmxpbmUgaW50IHBtZF9sYXJnZShwbWRfdCBwdGUpDQpkaWZmIC0tZ2l0IGEvYXJj aC94ODYva2VybmVsL2FwaWMveDJhcGljX3BoeXMuYyBiL2FyY2gveDg2L2tlcm5lbC9hcGljL3gy YXBpY19waHlzLmMNCmluZGV4IGY1MzczZGYuLmRiNGY3MDQgMTAwNjQ0DQotLS0gYS9hcmNoL3g4 Ni9rZXJuZWwvYXBpYy94MmFwaWNfcGh5cy5jDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvYXBpYy94 MmFwaWNfcGh5cy5jDQpAQCAtMjAsMTIgKzIwLDE5IEBAIHN0YXRpYyBpbnQgc2V0X3gyYXBpY19w aHlzX21vZGUoY2hhciAqYXJnKQ0KIH0NCiBlYXJseV9wYXJhbSgieDJhcGljX3BoeXMiLCBzZXRf eDJhcGljX3BoeXNfbW9kZSk7DQogDQorc3RhdGljIGJvb2wgeDJhcGljX2ZhZHRfcGh5cyh2b2lk KQ0KK3sNCisJaWYgKChhY3BpX2dibF9GQURULmhlYWRlci5yZXZpc2lvbiA+PSBGQURUMl9SRVZJ U0lPTl9JRCkgJiYNCisJCShhY3BpX2dibF9GQURULmZsYWdzICYgQUNQSV9GQURUX0FQSUNfUEhZ U0lDQUwpKSB7DQorCQlwcmludGsoS0VSTl9ERUJVRyAiU3lzdGVtIHJlcXVpcmVzIHgyYXBpYyBw aHlzaWNhbCBtb2RlXG4iKTsNCisJCXJldHVybiB0cnVlOw0KKwl9DQorCXJldHVybiBmYWxzZTsN Cit9DQorDQogc3RhdGljIGludCB4MmFwaWNfYWNwaV9tYWR0X29lbV9jaGVjayhjaGFyICpvZW1f aWQsIGNoYXIgKm9lbV90YWJsZV9pZCkNCiB7DQotCWlmICh4MmFwaWNfcGh5cykNCi0JCXJldHVy biB4MmFwaWNfZW5hYmxlZCgpOw0KLQllbHNlDQotCQlyZXR1cm4gMDsNCisJcmV0dXJuIHgyYXBp Y19lbmFibGVkKCkgJiYgKHgyYXBpY19waHlzIHx8IHgyYXBpY19mYWR0X3BoeXMoKSk7DQogfQ0K IA0KIHN0YXRpYyB2b2lkDQpAQCAtMTA4LDcgKzExNSw3IEBAIHN0YXRpYyB2b2lkIGluaXRfeDJh cGljX2xkcih2b2lkKQ0KIA0KIHN0YXRpYyBpbnQgeDJhcGljX3BoeXNfcHJvYmUodm9pZCkNCiB7 DQotCWlmICh4MmFwaWNfbW9kZSAmJiB4MmFwaWNfcGh5cykNCisJaWYgKHgyYXBpY19tb2RlICYm ICh4MmFwaWNfcGh5cyB8fCB4MmFwaWNfZmFkdF9waHlzKCkpKQ0KIAkJcmV0dXJuIDE7DQogDQog CXJldHVybiBhcGljID09ICZhcGljX3gyYXBpY19waHlzOw0KZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2tlcm5lbC9jcHUvbXNoeXBlcnYuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbXNoeXBlcnYuYw0K aW5kZXggMGE2MzBkZC4uNjQ2ZDE5MiAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUv bXNoeXBlcnYuYw0KKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tc2h5cGVydi5jDQpAQCAtNjgs NyArNjgsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgbXNfaHlwZXJ2X2luaXRfcGxhdGZvcm0odm9p ZCkNCiAJcHJpbnRrKEtFUk5fSU5GTyAiSHlwZXJWOiBmZWF0dXJlcyAweCV4LCBoaW50cyAweCV4 XG4iLA0KIAkgICAgICAgbXNfaHlwZXJ2LmZlYXR1cmVzLCBtc19oeXBlcnYuaGludHMpOw0KIA0K LQljbG9ja3NvdXJjZV9yZWdpc3Rlcl9oeigmaHlwZXJ2X2NzLCBOU0VDX1BFUl9TRUMvMTAwKTsN CisJaWYgKG1zX2h5cGVydi5mZWF0dXJlcyAmIEhWX1g2NF9NU1JfVElNRV9SRUZfQ09VTlRfQVZB SUxBQkxFKQ0KKwkJY2xvY2tzb3VyY2VfcmVnaXN0ZXJfaHooJmh5cGVydl9jcywgTlNFQ19QRVJf U0VDLzEwMCk7DQogfQ0KIA0KIGNvbnN0IF9fcmVmY29uc3Qgc3RydWN0IGh5cGVydmlzb3JfeDg2 IHg4Nl9oeXBlcl9tc19oeXBlcnYgPSB7DQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2hl YWQuYyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkLmMNCmluZGV4IGFmMDY5OWIuLmY2YzQ2NzQgMTAw NjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZC5jDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwv aGVhZC5jDQpAQCAtNSw4ICs1LDYgQEANCiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+DQogI2luY2x1 ZGUgPGFzbS9iaW9zX2ViZGEuaD4NCiANCi0jZGVmaW5lIEJJT1NfTE9XTUVNX0tJTE9CWVRFUyAw eDQxMw0KLQ0KIC8qDQogICogVGhlIEJJT1MgcGxhY2VzIHRoZSBFQkRBL1hCREEgYXQgdGhlIHRv cCBvZiBjb252ZW50aW9uYWwNCiAgKiBtZW1vcnksIGFuZCB1c3VhbGx5IGRlY3JlYXNlcyB0aGUg cmVwb3J0ZWQgYW1vdW50IG9mDQpAQCAtMTYsMTcgKzE0LDMwIEBADQogICogY2hpcHNldDogcmVz ZXJ2ZSBhIHBhZ2UgYmVmb3JlIFZHQSB0byBwcmV2ZW50IFBDSSBwcmVmZXRjaA0KICAqIGludG8g aXQgKGVycmF0YSAjNTYpLiBVc3VhbGx5IHRoZSBwYWdlIGlzIHJlc2VydmVkIGFueXdheXMsDQog ICogdW5sZXNzIHlvdSBoYXZlIG5vIFBTLzIgbW91c2UgcGx1Z2dlZCBpbi4NCisgKg0KKyAqIFRo aXMgZnVuY3Rpb25zIGlzIGRlbGliZXJhdGVseSB2ZXJ5IGNvbnNlcnZhdGl2ZS4gIExvc2luZw0K KyAqIG1lbW9yeSBpbiB0aGUgYm90dG9tIG1lZ2FieXRlIGlzIHJhcmVseSBhIHByb2JsZW0sIGFz IGxvbmcNCisgKiBhcyB3ZSBoYXZlIGVub3VnaCBtZW1vcnkgdG8gaW5zdGFsbCB0aGUgdHJhbXBv bGluZS4gIFVzaW5nDQorICogbWVtb3J5IHRoYXQgaXMgaW4gdXNlIGJ5IHRoZSBCSU9TIG9yIGJ5 IHNvbWUgRE1BIGRldmljZQ0KKyAqIHRoZSBCSU9TIGRpZG4ndCBzaHV0IGRvd24gKmlzKiBhIGJp ZyBwcm9ibGVtLg0KICAqLw0KKw0KKyNkZWZpbmUgQklPU19MT1dNRU1fS0lMT0JZVEVTCTB4NDEz DQorI2RlZmluZSBMT1dNRU1fQ0FQCQkweDlmMDAwVQkvKiBBYnNvbHV0ZSBtYXhpbXVtICovDQor I2RlZmluZSBJTlNBTkVfQ1VUT0ZGCQkweDIwMDAwVQkvKiBMZXNzIHRoYW4gdGhpcyA9IGluc2Fu ZSAqLw0KKw0KIHZvaWQgX19pbml0IHJlc2VydmVfZWJkYV9yZWdpb24odm9pZCkNCiB7DQogCXVu c2lnbmVkIGludCBsb3dtZW0sIGViZGFfYWRkcjsNCiANCi0JLyogVG8gZGV0ZXJtaW5lIHRoZSBw b3NpdGlvbiBvZiB0aGUgRUJEQSBhbmQgdGhlICovDQotCS8qIGVuZCBvZiBjb252ZW50aW9uYWwg bWVtb3J5LCB3ZSBuZWVkIHRvIGxvb2sgYXQgKi8NCi0JLyogdGhlIEJJT1MgZGF0YSBhcmVhLiBJ biBhIHBhcmF2aXJ0dWFsIGVudmlyb25tZW50ICovDQotCS8qIHRoYXQgYXJlYSBpcyBhYnNlbnQu IFdlJ2xsIGp1c3QgaGF2ZSB0byBhc3N1bWUgKi8NCi0JLyogdGhhdCB0aGUgcGFyYXZpcnQgY2Fz ZSBjYW4gaGFuZGxlIG1lbW9yeSBzZXR1cCAqLw0KLQkvKiBjb3JyZWN0bHksIHdpdGhvdXQgb3Vy IGhlbHAuICovDQorCS8qDQorCSAqIFRvIGRldGVybWluZSB0aGUgcG9zaXRpb24gb2YgdGhlIEVC REEgYW5kIHRoZQ0KKwkgKiBlbmQgb2YgY29udmVudGlvbmFsIG1lbW9yeSwgd2UgbmVlZCB0byBs b29rIGF0DQorCSAqIHRoZSBCSU9TIGRhdGEgYXJlYS4gSW4gYSBwYXJhdmlydHVhbCBlbnZpcm9u bWVudA0KKwkgKiB0aGF0IGFyZWEgaXMgYWJzZW50LiBXZSdsbCBqdXN0IGhhdmUgdG8gYXNzdW1l DQorCSAqIHRoYXQgdGhlIHBhcmF2aXJ0IGNhc2UgY2FuIGhhbmRsZSBtZW1vcnkgc2V0dXANCisJ ICogY29ycmVjdGx5LCB3aXRob3V0IG91ciBoZWxwLg0KKwkgKi8NCiAJaWYgKHBhcmF2aXJ0X2Vu YWJsZWQoKSkNCiAJCXJldHVybjsNCiANCkBAIC0zNywxOSArNDgsMjMgQEAgdm9pZCBfX2luaXQg cmVzZXJ2ZV9lYmRhX3JlZ2lvbih2b2lkKQ0KIAkvKiBzdGFydCBvZiBFQkRBIGFyZWEgKi8NCiAJ ZWJkYV9hZGRyID0gZ2V0X2Jpb3NfZWJkYSgpOw0KIA0KLQkvKiBGaXh1cDogYmlvcyBwdXRzIGFu IEVCREEgaW4gdGhlIHRvcCA2NEsgc2VnbWVudCAqLw0KLQkvKiBvZiBjb252ZW50aW9uYWwgbWVt b3J5LCBidXQgZG9lcyBub3QgYWRqdXN0IGxvd21lbS4gKi8NCi0JaWYgKChsb3dtZW0gLSBlYmRh X2FkZHIpIDw9IDB4MTAwMDApDQotCQlsb3dtZW0gPSBlYmRhX2FkZHI7DQorCS8qDQorCSAqIE5v dGU6IHNvbWUgb2xkIERlbGxzIHNlZW0gdG8gbmVlZCA0ayBFQkRBIHdpdGhvdXQNCisJICogcmVw b3J0aW5nIHNvLCBzbyBqdXN0IGNvbnNpZGVyIHRoZSBtZW1vcnkgYWJvdmUgMHg5ZjAwMA0KKwkg KiB0byBiZSBvZmYgbGltaXRzIChidWd6aWxsYSAyOTkwKS4NCisJICovDQorDQorCS8qIElmIHRo ZSBFQkRBIGFkZHJlc3MgaXMgYmVsb3cgMTI4SywgYXNzdW1lIGl0IGlzIGJvZ3VzICovDQorCWlm IChlYmRhX2FkZHIgPCBJTlNBTkVfQ1VUT0ZGKQ0KKwkJZWJkYV9hZGRyID0gTE9XTUVNX0NBUDsN CiANCi0JLyogRml4dXA6IGJpb3MgZG9lcyBub3QgcmVwb3J0IGFuIEVCREEgYXQgYWxsLiAqLw0K LQkvKiBTb21lIG9sZCBEZWxscyBzZWVtIHRvIG5lZWQgNGsgYW55aG93IChidWd6aWxsYSAyOTkw KSAqLw0KLQlpZiAoKGViZGFfYWRkciA9PSAwKSAmJiAobG93bWVtID49IDB4OWYwMDApKQ0KLQkJ bG93bWVtID0gMHg5ZjAwMDsNCisJLyogSWYgbG93bWVtIGlzIGxlc3MgdGhhbiAxMjhLLCBhc3N1 bWUgaXQgaXMgYm9ndXMgKi8NCisJaWYgKGxvd21lbSA8IElOU0FORV9DVVRPRkYpDQorCQlsb3dt ZW0gPSBMT1dNRU1fQ0FQOw0KIA0KLQkvKiBQYXJhbm9pYTogc2hvdWxkIG5ldmVyIGhhcHBlbiwg YnV0Li4uICovDQotCWlmICgobG93bWVtID09IDApIHx8IChsb3dtZW0gPj0gMHgxMDAwMDApKQ0K LQkJbG93bWVtID0gMHg5ZjAwMDsNCisJLyogVXNlIHRoZSBsb3dlciBvZiB0aGUgbG93bWVtIGFu ZCBFQkRBIG1hcmtlcnMgYXMgdGhlIGN1dG9mZiAqLw0KKwlsb3dtZW0gPSBtaW4obG93bWVtLCBl YmRhX2FkZHIpOw0KKwlsb3dtZW0gPSBtaW4obG93bWVtLCBMT1dNRU1fQ0FQKTsgLyogQWJzb2x1 dGUgY2FwICovDQogDQogCS8qIHJlc2VydmUgYWxsIG1lbW9yeSBiZXR3ZWVuIGxvd21lbSBhbmQg dGhlIDFNQiBtYXJrICovDQogCW1lbWJsb2NrX3g4Nl9yZXNlcnZlX3JhbmdlKGxvd21lbSwgMHgx MDAwMDAsICIqIEJJT1MgcmVzZXJ2ZWQiKTsNCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9mYXVs dC5jIGIvYXJjaC94ODYvbW0vZmF1bHQuYw0KaW5kZXggNWRiMDQ5MC4uN2I3M2M4OCAxMDA2NDQN Ci0tLSBhL2FyY2gveDg2L21tL2ZhdWx0LmMNCisrKyBiL2FyY2gveDg2L21tL2ZhdWx0LmMNCkBA IC03MzgsMTMgKzczOCwxNSBAQCBfX2JhZF9hcmVhX25vc2VtYXBob3JlKHN0cnVjdCBwdF9yZWdz ICpyZWdzLCB1bnNpZ25lZCBsb25nIGVycm9yX2NvZGUsDQogCQkJCXJldHVybjsNCiAJCX0NCiAj ZW5kaWYNCisJCS8qIEtlcm5lbCBhZGRyZXNzZXMgYXJlIGFsd2F5cyBwcm90ZWN0aW9uIGZhdWx0 czogKi8NCisJCWlmIChhZGRyZXNzID49IFRBU0tfU0laRSkNCisJCQllcnJvcl9jb2RlIHw9IFBG X1BST1Q7DQogDQotCQlpZiAodW5saWtlbHkoc2hvd191bmhhbmRsZWRfc2lnbmFscykpDQorCQlp ZiAobGlrZWx5KHNob3dfdW5oYW5kbGVkX3NpZ25hbHMpKQ0KIAkJCXNob3dfc2lnbmFsX21zZyhy ZWdzLCBlcnJvcl9jb2RlLCBhZGRyZXNzLCB0c2spOw0KIA0KLQkJLyogS2VybmVsIGFkZHJlc3Nl cyBhcmUgYWx3YXlzIHByb3RlY3Rpb24gZmF1bHRzOiAqLw0KIAkJdHNrLT50aHJlYWQuY3IyCQk9 IGFkZHJlc3M7DQotCQl0c2stPnRocmVhZC5lcnJvcl9jb2RlCT0gZXJyb3JfY29kZSB8IChhZGRy ZXNzID49IFRBU0tfU0laRSk7DQorCQl0c2stPnRocmVhZC5lcnJvcl9jb2RlCT0gZXJyb3JfY29k ZTsNCiAJCXRzay0+dGhyZWFkLnRyYXBfbm8JPSAxNDsNCiANCiAJCWZvcmNlX3NpZ19pbmZvX2Zh dWx0KFNJR1NFR1YsIHNpX2NvZGUsIGFkZHJlc3MsIHRzaywgMCk7DQpkaWZmIC0tZ2l0IGEvYXJj aC94ODYvbW0vaW5pdF82NC5jIGIvYXJjaC94ODYvbW0vaW5pdF82NC5jDQppbmRleCBiYmFhYTAw Li40NGI5M2RhIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYvbW0vaW5pdF82NC5jDQorKysgYi9hcmNo L3g4Ni9tbS9pbml0XzY0LmMNCkBAIC04MzEsNiArODMxLDkgQEAgaW50IGtlcm5fYWRkcl92YWxp ZCh1bnNpZ25lZCBsb25nIGFkZHIpDQogCWlmIChwdWRfbm9uZSgqcHVkKSkNCiAJCXJldHVybiAw Ow0KIA0KKwlpZiAocHVkX2xhcmdlKCpwdWQpKQ0KKwkJcmV0dXJuIHBmbl92YWxpZChwdWRfcGZu KCpwdWQpKTsNCisNCiAJcG1kID0gcG1kX29mZnNldChwdWQsIGFkZHIpOw0KIAlpZiAocG1kX25v bmUoKnBtZCkpDQogCQlyZXR1cm4gMDsNCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wbGF0Zm9ybS9l ZmkvZWZpLmMgYi9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpLmMNCmluZGV4IGJlZjk5OTEuLjFk ZTU0MmIgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpLmMNCisrKyBiL2Fy Y2gveDg2L3BsYXRmb3JtL2VmaS9lZmkuYw0KQEAgLTgzLDkgKzgzLDEwIEBAIGludCBlZmlfZW5h YmxlZChpbnQgZmFjaWxpdHkpDQogfQ0KIEVYUE9SVF9TWU1CT0woZWZpX2VuYWJsZWQpOw0KIA0K K3N0YXRpYyBib29sIGRpc2FibGVfcnVudGltZSA9IGZhbHNlOw0KIHN0YXRpYyBpbnQgX19pbml0 IHNldHVwX25vZWZpKGNoYXIgKmFyZykNCiB7DQotCWNsZWFyX2JpdChFRklfQk9PVCwgJng4Nl9l ZmlfZmFjaWxpdHkpOw0KKwlkaXNhYmxlX3J1bnRpbWUgPSB0cnVlOw0KIAlyZXR1cm4gMDsNCiB9 DQogZWFybHlfcGFyYW0oIm5vZWZpIiwgc2V0dXBfbm9lZmkpOw0KQEAgLTU0OSwzNSArNTUwLDM3 IEBAIHZvaWQgX19pbml0IGVmaV9pbml0KHZvaWQpDQogDQogCXNldF9iaXQoRUZJX0NPTkZJR19U QUJMRVMsICZ4ODZfZWZpX2ZhY2lsaXR5KTsNCiANCi0JLyoNCi0JICogQ2hlY2sgb3V0IHRoZSBy dW50aW1lIHNlcnZpY2VzIHRhYmxlLiBXZSBuZWVkIHRvIG1hcA0KLQkgKiB0aGUgcnVudGltZSBz ZXJ2aWNlcyB0YWJsZSBzbyB0aGF0IHdlIGNhbiBncmFiIHRoZSBwaHlzaWNhbA0KLQkgKiBhZGRy ZXNzIG9mIHNldmVyYWwgb2YgdGhlIEVGSSBydW50aW1lIGZ1bmN0aW9ucywgbmVlZGVkIHRvDQot CSAqIHNldCB0aGUgZmlybXdhcmUgaW50byB2aXJ0dWFsIG1vZGUuDQotCSAqLw0KLQlydW50aW1l ID0gZWFybHlfaW9yZW1hcCgodW5zaWduZWQgbG9uZyllZmkuc3lzdGFiLT5ydW50aW1lLA0KLQkJ CQlzaXplb2YoZWZpX3J1bnRpbWVfc2VydmljZXNfdCkpOw0KLQlpZiAocnVudGltZSAhPSBOVUxM KSB7DQotCQkvKg0KLQkJICogV2Ugd2lsbCBvbmx5IG5lZWQgKmVhcmx5KiBhY2Nlc3MgdG8gdGhl IGZvbGxvd2luZw0KLQkJICogdHdvIEVGSSBydW50aW1lIHNlcnZpY2VzIGJlZm9yZSBzZXRfdmly dHVhbF9hZGRyZXNzX21hcA0KLQkJICogaXMgaW52b2tlZC4NCi0JCSAqLw0KLQkJZWZpX3BoeXMu Z2V0X3RpbWUgPSAoZWZpX2dldF90aW1lX3QgKilydW50aW1lLT5nZXRfdGltZTsNCi0JCWVmaV9w aHlzLnNldF92aXJ0dWFsX2FkZHJlc3NfbWFwID0NCi0JCQkoZWZpX3NldF92aXJ0dWFsX2FkZHJl c3NfbWFwX3QgKikNCi0JCQlydW50aW1lLT5zZXRfdmlydHVhbF9hZGRyZXNzX21hcDsNCisJaWYg KCFkaXNhYmxlX3J1bnRpbWUpIHsNCiAJCS8qDQotCQkgKiBNYWtlIGVmaV9nZXRfdGltZSBjYW4g YmUgY2FsbGVkIGJlZm9yZSBlbnRlcmluZw0KLQkJICogdmlydHVhbCBtb2RlLg0KKwkJICogQ2hl Y2sgb3V0IHRoZSBydW50aW1lIHNlcnZpY2VzIHRhYmxlLiBXZSBuZWVkIHRvIG1hcA0KKwkJICog dGhlIHJ1bnRpbWUgc2VydmljZXMgdGFibGUgc28gdGhhdCB3ZSBjYW4gZ3JhYiB0aGUgcGh5c2lj YWwNCisJCSAqIGFkZHJlc3Mgb2Ygc2V2ZXJhbCBvZiB0aGUgRUZJIHJ1bnRpbWUgZnVuY3Rpb25z LCBuZWVkZWQgdG8NCisJCSAqIHNldCB0aGUgZmlybXdhcmUgaW50byB2aXJ0dWFsIG1vZGUuDQog CQkgKi8NCi0JCWVmaS5nZXRfdGltZSA9IHBoeXNfZWZpX2dldF90aW1lOw0KLQ0KLQkJc2V0X2Jp dChFRklfUlVOVElNRV9TRVJWSUNFUywgJng4Nl9lZmlfZmFjaWxpdHkpOw0KLQl9IGVsc2UNCi0J CXByaW50ayhLRVJOX0VSUiAiQ291bGQgbm90IG1hcCB0aGUgRUZJIHJ1bnRpbWUgc2VydmljZSAi DQotCQkgICAgICAgInRhYmxlIVxuIik7DQotCWVhcmx5X2lvdW5tYXAocnVudGltZSwgc2l6ZW9m KGVmaV9ydW50aW1lX3NlcnZpY2VzX3QpKTsNCisJCXJ1bnRpbWUgPSBlYXJseV9pb3JlbWFwKCh1 bnNpZ25lZCBsb25nKWVmaS5zeXN0YWItPnJ1bnRpbWUsDQorCQkJCQlzaXplb2YoZWZpX3J1bnRp bWVfc2VydmljZXNfdCkpOw0KKwkJaWYgKHJ1bnRpbWUgIT0gTlVMTCkgew0KKwkJCS8qDQorCQkJ ICogV2Ugd2lsbCBvbmx5IG5lZWQgKmVhcmx5KiBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZw0KKwkJ CSAqIHR3byBFRkkgcnVudGltZSBzZXJ2aWNlcyBiZWZvcmUgc2V0X3ZpcnR1YWxfYWRkcmVzc19t YXANCisJCQkgKiBpcyBpbnZva2VkLg0KKwkJCSAqLw0KKwkJCWVmaV9waHlzLmdldF90aW1lID0g KGVmaV9nZXRfdGltZV90ICopcnVudGltZS0+Z2V0X3RpbWU7DQorCQkJZWZpX3BoeXMuc2V0X3Zp cnR1YWxfYWRkcmVzc19tYXAgPQ0KKwkJCQkoZWZpX3NldF92aXJ0dWFsX2FkZHJlc3NfbWFwX3Qg KikNCisJCQkJcnVudGltZS0+c2V0X3ZpcnR1YWxfYWRkcmVzc19tYXA7DQorCQkJLyoNCisJCQkg KiBNYWtlIGVmaV9nZXRfdGltZSBjYW4gYmUgY2FsbGVkIGJlZm9yZSBlbnRlcmluZw0KKwkJCSAq IHZpcnR1YWwgbW9kZS4NCisJCQkgKi8NCisJCQllZmkuZ2V0X3RpbWUgPSBwaHlzX2VmaV9nZXRf dGltZTsNCisJCQkNCisJCQlzZXRfYml0KEVGSV9SVU5USU1FX1NFUlZJQ0VTLCAmeDg2X2VmaV9m YWNpbGl0eSk7DQorCQl9IGVsc2UNCisJCQlwcmludGsoS0VSTl9FUlIgIkNvdWxkIG5vdCBtYXAg dGhlIEVGSSBydW50aW1lIHNlcnZpY2UgIg0KKwkJCSAgICAgICAidGFibGUhXG4iKTsNCisJCWVh cmx5X2lvdW5tYXAocnVudGltZSwgc2l6ZW9mKGVmaV9ydW50aW1lX3NlcnZpY2VzX3QpKTsNCisJ fQ0KIA0KIAkvKiBNYXAgdGhlIEVGSSBtZW1vcnkgbWFwICovDQogCW1lbW1hcC5tYXAgPSBlYXJs eV9pb3JlbWFwKCh1bnNpZ25lZCBsb25nKW1lbW1hcC5waHlzX21hcCwNCmRpZmYgLS1naXQgYS9h cmNoL3g4Ni94ZW4vc3BpbmxvY2suYyBiL2FyY2gveDg2L3hlbi9zcGlubG9jay5jDQppbmRleCBk NjljYzZjLi42N2JjN2JhIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYveGVuL3NwaW5sb2NrLmMNCisr KyBiL2FyY2gveDg2L3hlbi9zcGlubG9jay5jDQpAQCAtMzI4LDcgKzMyOCw2IEBAIHN0YXRpYyBu b2lubGluZSB2b2lkIHhlbl9zcGluX3VubG9ja19zbG93KHN0cnVjdCB4ZW5fc3BpbmxvY2sgKnhs KQ0KIAkJaWYgKHBlcl9jcHUobG9ja19zcGlubmVycywgY3B1KSA9PSB4bCkgew0KIAkJCUFERF9T VEFUUyhyZWxlYXNlZF9zbG93X2tpY2tlZCwgMSk7DQogCQkJeGVuX3NlbmRfSVBJX29uZShjcHUs IFhFTl9TUElOX1VOTE9DS19WRUNUT1IpOw0KLQkJCWJyZWFrOw0KIAkJfQ0KIAl9DQogfQ0KZGlm ZiAtLWdpdCBhL2Jsb2NrL2dlbmhkLmMgYi9ibG9jay9nZW5oZC5jDQppbmRleCA0OTI3NDc2Li42 ZWRmMjI4IDEwMDY0NA0KLS0tIGEvYmxvY2svZ2VuaGQuYw0KKysrIGIvYmxvY2svZ2VuaGQuYw0K QEAgLTI2LDcgKzI2LDcgQEAgc3RhdGljIERFRklORV9NVVRFWChibG9ja19jbGFzc19sb2NrKTsN CiBzdHJ1Y3Qga29iamVjdCAqYmxvY2tfZGVwcjsNCiANCiAvKiBmb3IgZXh0ZW5kZWQgZHluYW1p YyBkZXZ0IGFsbG9jYXRpb24sIGN1cnJlbnRseSBvbmx5IG9uZSBtYWpvciBpcyB1c2VkICovDQot I2RlZmluZSBNQVhfRVhUX0RFVlQJCSgxIDw8IE1JTk9SQklUUykNCisjZGVmaW5lIE5SX0VYVF9E RVZUCQkoMSA8PCBNSU5PUkJJVFMpDQogDQogLyogRm9yIGV4dGVuZGVkIGRldnQgYWxsb2NhdGlv bi4gIGV4dF9kZXZ0X211dGV4IHByZXZlbnRzIGxvb2sgdXANCiAgKiByZXN1bHRzIGZyb20gZ29p bmcgYXdheSB1bmRlcm5lYXRoIGl0cyB1c2VyLg0KQEAgLTQyMSwxNyArNDIxLDE4IEBAIGludCBi bGtfYWxsb2NfZGV2dChzdHJ1Y3QgaGRfc3RydWN0ICpwYXJ0LCBkZXZfdCAqZGV2dCkNCiAJZG8g ew0KIAkJaWYgKCFpZHJfcHJlX2dldCgmZXh0X2RldnRfaWRyLCBHRlBfS0VSTkVMKSkNCiAJCQly ZXR1cm4gLUVOT01FTTsNCisJCW11dGV4X2xvY2soJmV4dF9kZXZ0X211dGV4KTsNCiAJCXJjID0g aWRyX2dldF9uZXcoJmV4dF9kZXZ0X2lkciwgcGFydCwgJmlkeCk7DQorCQlpZiAoIXJjICYmIGlk eCA+PSBOUl9FWFRfREVWVCkgew0KKwkJCWlkcl9yZW1vdmUoJmV4dF9kZXZ0X2lkciwgaWR4KTsN CisJCQlyYyA9IC1FQlVTWTsNCisJCX0NCisJCW11dGV4X3VubG9jaygmZXh0X2RldnRfbXV0ZXgp Ow0KIAl9IHdoaWxlIChyYyA9PSAtRUFHQUlOKTsNCiANCiAJaWYgKHJjKQ0KIAkJcmV0dXJuIHJj Ow0KIA0KLQlpZiAoaWR4ID4gTUFYX0VYVF9ERVZUKSB7DQotCQlpZHJfcmVtb3ZlKCZleHRfZGV2 dF9pZHIsIGlkeCk7DQotCQlyZXR1cm4gLUVCVVNZOw0KLQl9DQotDQogCSpkZXZ0ID0gTUtERVYo QkxPQ0tfRVhUX01BSk9SLCBibGtfbWFuZ2xlX21pbm9yKGlkeCkpOw0KIAlyZXR1cm4gMDsNCiB9 DQpAQCAtNjQ1LDcgKzY0Niw2IEBAIHZvaWQgZGVsX2dlbmRpc2soc3RydWN0IGdlbmRpc2sgKmRp c2spDQogCWRpc2tfcGFydF9pdGVyX2V4aXQoJnBpdGVyKTsNCiANCiAJaW52YWxpZGF0ZV9wYXJ0 aXRpb24oZGlzaywgMCk7DQotCWJsa19mcmVlX2RldnQoZGlza190b19kZXYoZGlzayktPmRldnQp Ow0KIAlzZXRfY2FwYWNpdHkoZGlzaywgMCk7DQogCWRpc2stPmZsYWdzICY9IH5HRU5IRF9GTF9V UDsNCiANCkBAIC02NjMsNiArNjYzLDcgQEAgdm9pZCBkZWxfZ2VuZGlzayhzdHJ1Y3QgZ2VuZGlz ayAqZGlzaykNCiAJaWYgKCFzeXNmc19kZXByZWNhdGVkKQ0KIAkJc3lzZnNfcmVtb3ZlX2xpbmso YmxvY2tfZGVwciwgZGV2X25hbWUoZGlza190b19kZXYoZGlzaykpKTsNCiAJZGV2aWNlX2RlbChk aXNrX3RvX2RldihkaXNrKSk7DQorCWJsa19mcmVlX2RldnQoZGlza190b19kZXYoZGlzayktPmRl dnQpOw0KIH0NCiBFWFBPUlRfU1lNQk9MKGRlbF9nZW5kaXNrKTsNCiANCmRpZmYgLS1naXQgYS9k cml2ZXJzL2FjcGkvc2xlZXAuYyBiL2RyaXZlcnMvYWNwaS9zbGVlcC5jDQppbmRleCBkNzkwNzkx Li5jYzlkMDIwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hY3BpL3NsZWVwLmMNCisrKyBiL2RyaXZl cnMvYWNwaS9zbGVlcC5jDQpAQCAtMTU2LDYgKzE1NiwxNCBAQCBzdGF0aWMgc3RydWN0IGRtaV9z eXN0ZW1faWQgX19pbml0ZGF0YSBhY3Bpc2xlZXBfZG1pX3RhYmxlW10gPSB7DQogCX0sDQogCXsN CiAJLmNhbGxiYWNrID0gaW5pdF9udnNfbm9zYXZlLA0KKwkuaWRlbnQgPSAiU29ueSBWYWlvIFZH Ti1GVzQxRV9IIiwNCisJLm1hdGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1Is ICJTb255IENvcnBvcmF0aW9uIiksDQorCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlZH Ti1GVzQxRV9IIiksDQorCQl9LA0KKwl9LA0KKwl7DQorCS5jYWxsYmFjayA9IGluaXRfbnZzX25v c2F2ZSwNCiAJLmlkZW50ID0gIlNvbnkgVmFpbyBWR04tRlcyMUUiLA0KIAkubWF0Y2hlcyA9IHsN CiAJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIlNvbnkgQ29ycG9yYXRpb24iKSwNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2F0YS9hdGFfcGlpeC5jIGIvZHJpdmVycy9hdGEvYXRhX3BpaXguYw0K aW5kZXggNjlhYzM3My4uZGY0NzM5NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRhL2F0YV9waWl4 LmMNCisrKyBiL2RyaXZlcnMvYXRhL2F0YV9waWl4LmMNCkBAIC0zMjEsNiArMzIxLDQxIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwaWl4X3BjaV90YmxbXSA9IHsNCiAJeyAw eDgwODYsIDB4MWUwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgaWNoOF8ycG9ydF9z YXRhIH0sDQogCS8qIFNBVEEgQ29udHJvbGxlciBJREUgKFBhbnRoZXIgUG9pbnQpICovDQogCXsg MHg4MDg2LCAweDFlMDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIGljaDhfMnBvcnRf c2F0YSB9LA0KKwkvKiBTQVRBIENvbnRyb2xsZXIgSURFIChMeW54IFBvaW50KSAqLw0KKwl7IDB4 ODA4NiwgMHg4YzAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBpY2g4X3NhdGFfc25i IH0sDQorCS8qIFNBVEEgQ29udHJvbGxlciBJREUgKEx5bnggUG9pbnQpICovDQorCXsgMHg4MDg2 LCAweDhjMDEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIGljaDhfc2F0YV9zbmIgfSwN CisJLyogU0FUQSBDb250cm9sbGVyIElERSAoTHlueCBQb2ludCkgKi8NCisJeyAweDgwODYsIDB4 OGMwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgaWNoOF8ycG9ydF9zYXRhIH0sDQor CS8qIFNBVEEgQ29udHJvbGxlciBJREUgKEx5bnggUG9pbnQpICovDQorCXsgMHg4MDg2LCAweDhj MDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIGljaDhfMnBvcnRfc2F0YSB9LA0KKwkv KiBTQVRBIENvbnRyb2xsZXIgSURFIChMeW54IFBvaW50LUxQKSAqLw0KKwl7IDB4ODA4NiwgMHg5 YzAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBpY2g4X3NhdGFfc25iIH0sDQorCS8q IFNBVEEgQ29udHJvbGxlciBJREUgKEx5bnggUG9pbnQtTFApICovDQorCXsgMHg4MDg2LCAweDlj MDEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIGljaDhfc2F0YV9zbmIgfSwNCisJLyog U0FUQSBDb250cm9sbGVyIElERSAoTHlueCBQb2ludC1MUCkgKi8NCisJeyAweDgwODYsIDB4OWMw OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgaWNoOF8ycG9ydF9zYXRhIH0sDQorCS8q IFNBVEEgQ29udHJvbGxlciBJREUgKEx5bnggUG9pbnQtTFApICovDQorCXsgMHg4MDg2LCAweDlj MDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIGljaDhfMnBvcnRfc2F0YSB9LA0KKwkv KiBTQVRBIENvbnRyb2xsZXIgSURFIChESDg5eHhDQykgKi8NCisJeyAweDgwODYsIDB4MjMyNiwg UENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgaWNoOF8ycG9ydF9zYXRhIH0sDQorCS8qIFNB VEEgQ29udHJvbGxlciBJREUgKEF2b3RvbikgKi8NCisJeyAweDgwODYsIDB4MWYyMCwgUENJX0FO WV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgaWNoOF9zYXRhX3NuYiB9LA0KKwkvKiBTQVRBIENvbnRy b2xsZXIgSURFIChBdm90b24pICovDQorCXsgMHg4MDg2LCAweDFmMjEsIFBDSV9BTllfSUQsIFBD SV9BTllfSUQsIDAsIDAsIGljaDhfc2F0YV9zbmIgfSwNCisJLyogU0FUQSBDb250cm9sbGVyIElE RSAoQXZvdG9uKSAqLw0KKwl7IDB4ODA4NiwgMHgxZjMwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCBpY2g4XzJwb3J0X3NhdGEgfSwNCisJLyogU0FUQSBDb250cm9sbGVyIElERSAoQXZv dG9uKSAqLw0KKwl7IDB4ODA4NiwgMHgxZjMxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAw LCBpY2g4XzJwb3J0X3NhdGEgfSwNCisJLyogU0FUQSBDb250cm9sbGVyIElERSAoV2VsbHNidXJn KSAqLw0KKwl7IDB4ODA4NiwgMHg4ZDAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBp Y2g4X3NhdGFfc25iIH0sDQorCS8qIFNBVEEgQ29udHJvbGxlciBJREUgKFdlbGxzYnVyZykgKi8N CisJeyAweDgwODYsIDB4OGQwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgaWNoOF8y cG9ydF9zYXRhIH0sDQorCS8qIFNBVEEgQ29udHJvbGxlciBJREUgKFdlbGxzYnVyZykgKi8NCisJ eyAweDgwODYsIDB4OGQ2MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgaWNoOF9zYXRh X3NuYiB9LA0KKwkvKiBTQVRBIENvbnRyb2xsZXIgSURFIChXZWxsc2J1cmcpICovDQorCXsgMHg4 MDg2LCAweDhkNjgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIGljaDhfMnBvcnRfc2F0 YSB9LA0KKw0KIAl7IH0JLyogdGVybWluYXRlIGxpc3QgKi8NCiB9Ow0KIA0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvYmFzZS9idXMuYyBiL2RyaXZlcnMvYmFzZS9idXMuYw0KaW5kZXggMDAwZTdiMi4u OGI4ZThjMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYmFzZS9idXMuYw0KKysrIGIvZHJpdmVycy9i YXNlL2J1cy5jDQpAQCAtMjg5LDcgKzI4OSw3IEBAIGludCBidXNfZm9yX2VhY2hfZGV2KHN0cnVj dCBidXNfdHlwZSAqYnVzLCBzdHJ1Y3QgZGV2aWNlICpzdGFydCwNCiAJc3RydWN0IGRldmljZSAq ZGV2Ow0KIAlpbnQgZXJyb3IgPSAwOw0KIA0KLQlpZiAoIWJ1cykNCisJaWYgKCFidXMgfHwgIWJ1 cy0+cCkNCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KIAlrbGlzdF9pdGVyX2luaXRfbm9kZSgmYnVz LT5wLT5rbGlzdF9kZXZpY2VzLCAmaSwNCkBAIC0zMjMsNyArMzIzLDcgQEAgc3RydWN0IGRldmlj ZSAqYnVzX2ZpbmRfZGV2aWNlKHN0cnVjdCBidXNfdHlwZSAqYnVzLA0KIAlzdHJ1Y3Qga2xpc3Rf aXRlciBpOw0KIAlzdHJ1Y3QgZGV2aWNlICpkZXY7DQogDQotCWlmICghYnVzKQ0KKwlpZiAoIWJ1 cyB8fCAhYnVzLT5wKQ0KIAkJcmV0dXJuIE5VTEw7DQogDQogCWtsaXN0X2l0ZXJfaW5pdF9ub2Rl KCZidXMtPnAtPmtsaXN0X2RldmljZXMsICZpLA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2sv bmJkLmMgYi9kcml2ZXJzL2Jsb2NrL25iZC5jDQppbmRleCA4Njg0OGM2Li40MGEwZmNiIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9ibG9jay9uYmQuYw0KKysrIGIvZHJpdmVycy9ibG9jay9uYmQuYw0K QEAgLTU4NCwxMiArNTg0LDIwIEBAIHN0YXRpYyBpbnQgX19uYmRfaW9jdGwoc3RydWN0IGJsb2Nr X2RldmljZSAqYmRldiwgc3RydWN0IG5iZF9kZXZpY2UgKmxvLA0KIAkJc3RydWN0IHJlcXVlc3Qg c3JlcTsNCiANCiAJCWRldl9pbmZvKGRpc2tfdG9fZGV2KGxvLT5kaXNrKSwgIk5CRF9ESVNDT05O RUNUXG4iKTsNCisJCWlmICghbG8tPnNvY2spDQorCQkJcmV0dXJuIC1FSU5WQUw7DQogDQorCQlt dXRleF91bmxvY2soJmxvLT50eF9sb2NrKTsNCisJCWZzeW5jX2JkZXYoYmRldik7DQorCQltdXRl eF9sb2NrKCZsby0+dHhfbG9jayk7DQogCQlibGtfcnFfaW5pdChOVUxMLCAmc3JlcSk7DQogCQlz cmVxLmNtZF90eXBlID0gUkVRX1RZUEVfU1BFQ0lBTDsNCiAJCW5iZF9jbWQoJnNyZXEpID0gTkJE X0NNRF9ESVNDOw0KKw0KKwkJLyogQ2hlY2sgYWdhaW4gYWZ0ZXIgZ2V0dGluZyBtdXRleCBiYWNr LiAgKi8NCiAJCWlmICghbG8tPnNvY2spDQogCQkJcmV0dXJuIC1FSU5WQUw7DQorDQogCQluYmRf c2VuZF9yZXEobG8sICZzcmVxKTsNCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogCX0NCkBA IC02MDMsNiArNjExLDcgQEAgc3RhdGljIGludCBfX25iZF9pb2N0bChzdHJ1Y3QgYmxvY2tfZGV2 aWNlICpiZGV2LCBzdHJ1Y3QgbmJkX2RldmljZSAqbG8sDQogCQluYmRfY2xlYXJfcXVlKGxvKTsN CiAJCUJVR19PTighbGlzdF9lbXB0eSgmbG8tPnF1ZXVlX2hlYWQpKTsNCiAJCUJVR19PTighbGlz dF9lbXB0eSgmbG8tPndhaXRpbmdfcXVldWUpKTsNCisJCWtpbGxfYmRldihiZGV2KTsNCiAJCWlm IChmaWxlKQ0KIAkJCWZwdXQoZmlsZSk7DQogCQlyZXR1cm4gMDsNCkBAIC02ODMsNiArNjkyLDcg QEAgc3RhdGljIGludCBfX25iZF9pb2N0bChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1 Y3QgbmJkX2RldmljZSAqbG8sDQogCQlsby0+ZmlsZSA9IE5VTEw7DQogCQluYmRfY2xlYXJfcXVl KGxvKTsNCiAJCWRldl93YXJuKGRpc2tfdG9fZGV2KGxvLT5kaXNrKSwgInF1ZXVlIGNsZWFyZWRc biIpOw0KKwkJa2lsbF9iZGV2KGJkZXYpOw0KIAkJaWYgKGZpbGUpDQogCQkJZnB1dChmaWxlKTsN CiAJCWxvLT5ieXRlc2l6ZSA9IDA7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9zdW52ZGMu YyBiL2RyaXZlcnMvYmxvY2svc3VudmRjLmMNCmluZGV4IDQ4ZThmZWUuLjk0ZjZhZTIgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL2Jsb2NrL3N1bnZkYy5jDQorKysgYi9kcml2ZXJzL2Jsb2NrL3N1bnZk Yy5jDQpAQCAtNDYxLDcgKzQ2MSw3IEBAIHN0YXRpYyBpbnQgZ2VuZXJpY19yZXF1ZXN0KHN0cnVj dCB2ZGNfcG9ydCAqcG9ydCwgdTggb3AsIHZvaWQgKmJ1ZiwgaW50IGxlbikNCiAJaW50IG9wX2xl biwgZXJyOw0KIAl2b2lkICpyZXFfYnVmOw0KIA0KLQlpZiAoISgoKHU2NCkxIDw8ICgodTY0KW9w IC0gMSkpICYgcG9ydC0+b3BlcmF0aW9ucykpDQorCWlmICghKCgodTY0KTEgPDwgKHU2NClvcCkg JiBwb3J0LT5vcGVyYXRpb25zKSkNCiAJCXJldHVybiAtRU9QTk9UU1VQUDsNCiANCiAJc3dpdGNo IChvcCkgew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2JhY2sveGVuYnVzLmMg Yi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNrL3hlbmJ1cy5jDQppbmRleCBmNzU5YWQ0Li42NzRl M2MyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay94ZW5idXMuYw0KKysr IGIvZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay94ZW5idXMuYw0KQEAgLTM2NCw2ICszNjQsNyBA QCBzdGF0aWMgaW50IHhlbl9ibGtia19yZW1vdmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldikN CiAJCWJlLT5ibGtpZiA9IE5VTEw7DQogCX0NCiANCisJa2ZyZWUoYmUtPm1vZGUpOw0KIAlrZnJl ZShiZSk7DQogCWRldl9zZXRfZHJ2ZGF0YSgmZGV2LT5kZXYsIE5VTEwpOw0KIAlyZXR1cm4gMDsN CkBAIC01MTMsNiArNTE0LDcgQEAgc3RhdGljIHZvaWQgYmFja2VuZF9jaGFuZ2VkKHN0cnVjdCB4 ZW5idXNfd2F0Y2ggKndhdGNoLA0KIAkJPSBjb250YWluZXJfb2Yod2F0Y2gsIHN0cnVjdCBiYWNr ZW5kX2luZm8sIGJhY2tlbmRfd2F0Y2gpOw0KIAlzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2ID0g YmUtPmRldjsNCiAJaW50IGNkcm9tID0gMDsNCisJdW5zaWduZWQgbG9uZyBoYW5kbGU7DQogCWNo YXIgKmRldmljZV90eXBlOw0KIA0KIAlEUFJJTlRLKCIiKTsNCkBAIC01MzIsMTAgKzUzNCwxMCBA QCBzdGF0aWMgdm9pZCBiYWNrZW5kX2NoYW5nZWQoc3RydWN0IHhlbmJ1c193YXRjaCAqd2F0Y2gs DQogCQlyZXR1cm47DQogCX0NCiANCi0JaWYgKChiZS0+bWFqb3IgfHwgYmUtPm1pbm9yKSAmJg0K LQkgICAgKChiZS0+bWFqb3IgIT0gbWFqb3IpIHx8IChiZS0+bWlub3IgIT0gbWlub3IpKSkgew0K LQkJcHJfd2FybihEUlZfUEZYICJjaGFuZ2luZyBwaHlzaWNhbCBkZXZpY2UgKGZyb20gJXg6JXgg dG8gJXg6JXgpIG5vdCBzdXBwb3J0ZWQuXG4iLA0KLQkJCWJlLT5tYWpvciwgYmUtPm1pbm9yLCBt YWpvciwgbWlub3IpOw0KKwlpZiAoYmUtPm1ham9yIHwgYmUtPm1pbm9yKSB7DQorCQlpZiAoYmUt Pm1ham9yICE9IG1ham9yIHx8IGJlLT5taW5vciAhPSBtaW5vcikNCisJCQlwcl93YXJuKERSVl9Q RlggImNoYW5naW5nIHBoeXNpY2FsIGRldmljZSAoZnJvbSAleDoleCB0byAleDoleCkgbm90IHN1 cHBvcnRlZC5cbiIsDQorCQkJCWJlLT5tYWpvciwgYmUtPm1pbm9yLCBtYWpvciwgbWlub3IpOw0K IAkJcmV0dXJuOw0KIAl9DQogDQpAQCAtNTUzLDM2ICs1NTUsMzMgQEAgc3RhdGljIHZvaWQgYmFj a2VuZF9jaGFuZ2VkKHN0cnVjdCB4ZW5idXNfd2F0Y2ggKndhdGNoLA0KIAkJa2ZyZWUoZGV2aWNl X3R5cGUpOw0KIAl9DQogDQotCWlmIChiZS0+bWFqb3IgPT0gMCAmJiBiZS0+bWlub3IgPT0gMCkg ew0KLQkJLyogRnJvbnQgZW5kIGRpciBpcyBhIG51bWJlciwgd2hpY2ggaXMgdXNlZCBhcyB0aGUg aGFuZGxlLiAqLw0KLQ0KLQkJY2hhciAqcCA9IHN0cnJjaHIoZGV2LT5vdGhlcmVuZCwgJy8nKSAr IDE7DQotCQlsb25nIGhhbmRsZTsNCi0JCWVyciA9IHN0cmljdF9zdHJ0b3VsKHAsIDAsICZoYW5k bGUpOw0KLQkJaWYgKGVycikNCi0JCQlyZXR1cm47DQorCS8qIEZyb250IGVuZCBkaXIgaXMgYSBu dW1iZXIsIHdoaWNoIGlzIHVzZWQgYXMgdGhlIGhhbmRsZS4gKi8NCisJZXJyID0gc3RyaWN0X3N0 cnRvdWwoc3RycmNocihkZXYtPm90aGVyZW5kLCAnLycpICsgMSwgMCwgJmhhbmRsZSk7DQorCWlm IChlcnIpDQorCQlyZXR1cm47DQogDQotCQliZS0+bWFqb3IgPSBtYWpvcjsNCi0JCWJlLT5taW5v ciA9IG1pbm9yOw0KKwliZS0+bWFqb3IgPSBtYWpvcjsNCisJYmUtPm1pbm9yID0gbWlub3I7DQog DQotCQllcnIgPSB4ZW5fdmJkX2NyZWF0ZShiZS0+YmxraWYsIGhhbmRsZSwgbWFqb3IsIG1pbm9y LA0KLQkJCQkgKE5VTEwgPT0gc3RyY2hyKGJlLT5tb2RlLCAndycpKSwgY2Ryb20pOw0KLQkJaWYg KGVycikgew0KLQkJCWJlLT5tYWpvciA9IDA7DQotCQkJYmUtPm1pbm9yID0gMDsNCi0JCQl4ZW5i dXNfZGV2X2ZhdGFsKGRldiwgZXJyLCAiY3JlYXRpbmcgdmJkIHN0cnVjdHVyZSIpOw0KLQkJCXJl dHVybjsNCi0JCX0NCisJZXJyID0geGVuX3ZiZF9jcmVhdGUoYmUtPmJsa2lmLCBoYW5kbGUsIG1h am9yLCBtaW5vciwNCisJCQkgICAgICFzdHJjaHIoYmUtPm1vZGUsICd3JyksIGNkcm9tKTsNCiAN CisJaWYgKGVycikNCisJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCBlcnIsICJjcmVhdGluZyB2YmQg c3RydWN0dXJlIik7DQorCWVsc2Ugew0KIAkJZXJyID0geGVudmJkX3N5c2ZzX2FkZGlmKGRldik7 DQogCQlpZiAoZXJyKSB7DQogCQkJeGVuX3ZiZF9mcmVlKCZiZS0+YmxraWYtPnZiZCk7DQotCQkJ YmUtPm1ham9yID0gMDsNCi0JCQliZS0+bWlub3IgPSAwOw0KIAkJCXhlbmJ1c19kZXZfZmF0YWwo ZGV2LCBlcnIsICJjcmVhdGluZyBzeXNmcyBlbnRyaWVzIik7DQotCQkJcmV0dXJuOw0KIAkJfQ0K Kwl9DQogDQorCWlmIChlcnIpIHsNCisJCWtmcmVlKGJlLT5tb2RlKTsNCisJCWJlLT5tb2RlID0g TlVMTDsNCisJCWJlLT5tYWpvciA9IDA7DQorCQliZS0+bWlub3IgPSAwOw0KKwl9IGVsc2Ugew0K IAkJLyogV2UncmUgcG90ZW50aWFsbHkgY29ubmVjdGVkIG5vdyAqLw0KIAkJeGVuX3VwZGF0ZV9i bGtpZl9zdGF0dXMoYmUtPmJsa2lmKTsNCiAJfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZGNhL2Rj YS1jb3JlLmMgYi9kcml2ZXJzL2RjYS9kY2EtY29yZS5jDQppbmRleCBiYzZmNWZhLi44MTlkZmRh IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9kY2EvZGNhLWNvcmUuYw0KKysrIGIvZHJpdmVycy9kY2Ev ZGNhLWNvcmUuYw0KQEAgLTQyMCw2ICs0MjAsMTEgQEAgdm9pZCB1bnJlZ2lzdGVyX2RjYV9wcm92 aWRlcihzdHJ1Y3QgZGNhX3Byb3ZpZGVyICpkY2EsIHN0cnVjdCBkZXZpY2UgKmRldikNCiANCiAJ cmF3X3NwaW5fbG9ja19pcnFzYXZlKCZkY2FfbG9jaywgZmxhZ3MpOw0KIA0KKwlpZiAobGlzdF9l bXB0eSgmZGNhX2RvbWFpbnMpKSB7DQorCQlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGNh X2xvY2ssIGZsYWdzKTsNCisJCXJldHVybjsNCisJfQ0KKw0KIAlsaXN0X2RlbCgmZGNhLT5ub2Rl KTsNCiANCiAJcGNpX3JjID0gZGNhX3BjaV9yY19mcm9tX2RldihkZXYpOw0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZmlyZXdpcmUvY29yZS1kZXZpY2UuYyBiL2RyaXZlcnMvZmlyZXdpcmUvY29yZS1k ZXZpY2UuYw0KaW5kZXggZjNiODkwZC4uMWYzZGQ1MSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZmly ZXdpcmUvY29yZS1kZXZpY2UuYw0KKysrIGIvZHJpdmVycy9maXJld2lyZS9jb3JlLWRldmljZS5j DQpAQCAtOTk1LDYgKzk5NSwxMCBAQCBzdGF0aWMgdm9pZCBmd19kZXZpY2VfaW5pdChzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspDQogCXJldCA9IGlkcl9wcmVfZ2V0KCZmd19kZXZpY2VfaWRyLCBH RlBfS0VSTkVMKSA/DQogCSAgICAgIGlkcl9nZXRfbmV3KCZmd19kZXZpY2VfaWRyLCBkZXZpY2Us ICZtaW5vcikgOg0KIAkgICAgICAtRU5PTUVNOw0KKwlpZiAobWlub3IgPj0gMSA8PCBNSU5PUkJJ VFMpIHsNCisJCWlkcl9yZW1vdmUoJmZ3X2RldmljZV9pZHIsIG1pbm9yKTsNCisJCW1pbm9yID0g LUVOT1NQQzsNCisJfQ0KIAl1cF93cml0ZSgmZndfZGV2aWNlX3J3c2VtKTsNCiANCiAJaWYgKHJl dCA8IDApDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2VkaWQuYw0KaW5kZXggYmI5NWQ1OS4uOTA4MGViNyAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Vk aWQuYw0KQEAgLTg3LDkgKzg3LDYgQEAgc3RhdGljIHN0cnVjdCBlZGlkX3F1aXJrIHsNCiAJaW50 IHByb2R1Y3RfaWQ7DQogCXUzMiBxdWlya3M7DQogfSBlZGlkX3F1aXJrX2xpc3RbXSA9IHsNCi0J LyogQVNVUyBWVzIyMlMgKi8NCi0JeyAiQUNJIiwgMHgyMmEyLCBFRElEX1FVSVJLX0ZPUkNFX1JF RFVDRURfQkxBTktJTkcgfSwNCi0NCiAJLyogQWNlciBBTDE3MDYgKi8NCiAJeyAiQUNSIiwgNDQz NTgsIEVESURfUVVJUktfUFJFRkVSX0xBUkdFXzYwIH0sDQogCS8qIEFjZXIgRjUxICovDQpAQCAt MTc0Myw3ICsxNzQwLDggQEAgaW50IGRybV9hZGRfZWRpZF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLCBzdHJ1Y3QgZWRpZCAqZWRpZCkNCiAJbnVtX21vZGVzICs9IGFkZF9j dnRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsNCiAJbnVtX21vZGVzICs9IGFkZF9zdGFuZGFyZF9t b2Rlcyhjb25uZWN0b3IsIGVkaWQpOw0KIAludW1fbW9kZXMgKz0gYWRkX2VzdGFibGlzaGVkX21v ZGVzKGNvbm5lY3RvciwgZWRpZCk7DQotCW51bV9tb2RlcyArPSBhZGRfaW5mZXJyZWRfbW9kZXMo Y29ubmVjdG9yLCBlZGlkKTsNCisJaWYgKGVkaWQtPmZlYXR1cmVzICYgRFJNX0VESURfRkVBVFVS RV9ERUZBVUxUX0dURikNCisJCW51bV9tb2RlcyArPSBhZGRfaW5mZXJyZWRfbW9kZXMoY29ubmVj dG9yLCBlZGlkKTsNCiANCiAJaWYgKHF1aXJrcyAmIChFRElEX1FVSVJLX1BSRUZFUl9MQVJHRV82 MCB8IEVESURfUVVJUktfUFJFRkVSX0xBUkdFXzc1KSkNCiAJCWVkaWRfZml4dXBfcHJlZmVycmVk KGNvbm5lY3RvciwgcXVpcmtzKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3Vz Yi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV91c2IuYw0KaW5kZXggNDQ1MDAzZi4uNDcxZjQ1MyAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdXNiLmMNCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fdXNiLmMNCkBAIC0xOSw3ICsxOSw3IEBAIGludCBkcm1fZ2V0X3VzYl9kZXYoc3Ry dWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwNCiANCiAJdXNiZGV2ID0gaW50ZXJmYWNlX3Rv X3VzYmRldihpbnRlcmZhY2UpOw0KIAlkZXYtPnVzYmRldiA9IHVzYmRldjsNCi0JZGV2LT5kZXYg PSAmdXNiZGV2LT5kZXY7DQorCWRldi0+ZGV2ID0gJmludGVyZmFjZS0+ZGV2Ow0KIA0KIAltdXRl eF9sb2NrKCZkcm1fZ2xvYmFsX211dGV4KTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jDQppbmRleCAxMGZlNDgwLi41NjIwMTkyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jDQpAQCAtNzU2LDcgKzc1Niw3IEBAIHN0YXRpYyBpbnQgaTkxNV9lcnJvcl9zdGF0ZShz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkNCiANCiAJc2VxX3ByaW50ZihtLCAiVGlt ZTogJWxkIHMgJWxkIHVzXG4iLCBlcnJvci0+dGltZS50dl9zZWMsDQogCQkgICBlcnJvci0+dGlt ZS50dl91c2VjKTsNCi0Jc2VxX3ByaW50ZihtLCAiS2VybmVsOiAiIFVUU19SRUxFQVNFKTsNCisJ c2VxX3ByaW50ZihtLCAiS2VybmVsOiAiIFVUU19SRUxFQVNFICJcbiIpOw0KIAlzZXFfcHJpbnRm KG0sICJQQ0kgSUQ6IDB4JTA0eFxuIiwgZGV2LT5wY2lfZGV2aWNlKTsNCiAJc2VxX3ByaW50Ziht LCAiRUlSOiAweCUwOHhcbiIsIGVycm9yLT5laXIpOw0KIAlzZXFfcHJpbnRmKG0sICJQR1RCTF9F UjogMHglMDh4XG4iLCBlcnJvci0+cGd0YmxfZXIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYw0KaW5kZXggNzgxNzQyOS4uMjMwM2MyYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jDQpAQCAtMTM4LDggKzEzOCw4IEBAIHN0YXRpYyBjb25zdCBpbnRlbF9saW1p dF90IGludGVsX2xpbWl0c19pOXh4X3Nkdm8gPSB7DQogCS52Y28gPSB7IC5taW4gPSAxNDAwMDAw LCAubWF4ID0gMjgwMDAwMCB9LA0KIAkubiA9IHsgLm1pbiA9IDEsIC5tYXggPSA2IH0sDQogCS5t ID0geyAubWluID0gNzAsIC5tYXggPSAxMjAgfSwNCi0JLm0xID0geyAubWluID0gMTAsIC5tYXgg PSAyMiB9LA0KLQkubTIgPSB7IC5taW4gPSA1LCAubWF4ID0gOSB9LA0KKwkubTEgPSB7IC5taW4g PSA4LCAubWF4ID0gMTggfSwNCisJLm0yID0geyAubWluID0gMywgLm1heCA9IDcgfSwNCiAJLnAg PSB7IC5taW4gPSA1LCAubWF4ID0gODAgfSwNCiAJLnAxID0geyAubWluID0gMSwgLm1heCA9IDgg fSwNCiAJLnAyID0geyAuZG90X2xpbWl0ID0gMjAwMDAwLA0KQEAgLTMyNDIsNiArMzI0Miw3IEBA IHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCiAJ c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOw0KIAlp bnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7DQogCWludCBwbGFuZSA9IGludGVsX2NydGMtPnBs YW5lOw0KKwl1MzIgcGN0bDsNCiANCiAJaWYgKCFpbnRlbF9jcnRjLT5hY3RpdmUpDQogCQlyZXR1 cm47DQpAQCAtMzI1Nyw2ICszMjU4LDEzIEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCiANCiAJaW50ZWxfZGlzYWJsZV9wbGFuZShkZXZfcHJp diwgcGxhbmUsIHBpcGUpOw0KIAlpbnRlbF9kaXNhYmxlX3BpcGUoZGV2X3ByaXYsIHBpcGUpOw0K Kw0KKwkvKiBEaXNhYmxlIHBhbm5lbCBmaXR0ZXIgaWYgaXQgaXMgb24gdGhpcyBwaXBlLiAqLw0K KwlwY3RsID0gSTkxNV9SRUFEKFBGSVRfQ09OVFJPTCk7DQorCWlmICgocGN0bCAmIFBGSVRfRU5B QkxFKSAmJg0KKwkgICAgKChwY3RsICYgUEZJVF9QSVBFX01BU0spID4+IFBGSVRfUElQRV9TSElG VCkgPT0gcGlwZSkNCisJCUk5MTVfV1JJVEUoUEZJVF9DT05UUk9MLCAwKTsNCisNCiAJaW50ZWxf ZGlzYWJsZV9wbGwoZGV2X3ByaXYsIHBpcGUpOw0KIA0KIAlpbnRlbF9jcnRjLT5hY3RpdmUgPSBm YWxzZTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYw0KaW5kZXggMDk3Nzg0OS4uNjBkMTNm ZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMNCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMNCkBAIC0xMTM3LDYgKzExMzcsOCBA QCB2b2lkIGV2ZXJncmVlbl9tY19zdG9wKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1 Y3QgZXZlcmdyZWVuX21jX3NhdmUgKnNhdg0KIAkJYmxhY2tvdXQgJj0gfkJMQUNLT1VUX01PREVf TUFTSzsNCiAJCVdSRUczMihNQ19TSEFSRURfQkxBQ0tPVVRfQ05UTCwgYmxhY2tvdXQgfCAxKTsN CiAJfQ0KKwkvKiB3YWl0IGZvciB0aGUgTUMgdG8gc2V0dGxlICovDQorCXVkZWxheSgxMDApOw0K IH0NCiANCiB2b2lkIGV2ZXJncmVlbl9tY19yZXN1bWUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsIHN0cnVjdCBldmVyZ3JlZW5fbWNfc2F2ZSAqc2F2ZSkNCmRpZmYgLS1naXQgYS9kcml2ZXJz L2hpZC9oaWQtY29yZS5jIGIvZHJpdmVycy9oaWQvaGlkLWNvcmUuYw0KaW5kZXggMjc5Yjg2M2Qu LmEyM2I2M2EgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2hpZC9oaWQtY29yZS5jDQorKysgYi9kcml2 ZXJzL2hpZC9oaWQtY29yZS5jDQpAQCAtMTkwMCw2ICsxOTAwLDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBoaWRfZGV2aWNlX2lkIGhpZF9pZ25vcmVfbGlzdFtdID0gew0KIAl7IEhJRF9VU0JfREVW SUNFKFVTQl9WRU5ET1JfSURfTEQsIFVTQl9ERVZJQ0VfSURfTERfSFlCUklEKSB9LA0KIAl7IEhJ RF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfTEQsIFVTQl9ERVZJQ0VfSURfTERfSEVBVENPTlRS T0wpIH0sDQogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9NQURDQVRaLCBVU0JfREVW SUNFX0lEX01BRENBVFpfQkVBVFBBRCkgfSwNCisJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9S X0lEX01BU1RFUktJVCwgVVNCX0RFVklDRV9JRF9NQVNURVJLSVRfTUE5MDFSQURJTykgfSwNCiAJ eyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX01DQywgVVNCX0RFVklDRV9JRF9NQ0NfUE1E MTAyNExTKSB9LA0KIAl7IEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfTUNDLCBVU0JfREVW SUNFX0lEX01DQ19QTUQxMjA4TFMpIH0sDQogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9J RF9NSUNST0NISVAsIFVTQl9ERVZJQ0VfSURfUElDS0lUMSkgfSwNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2hpZC9oaWQtaWRzLmggYi9kcml2ZXJzL2hpZC9oaWQtaWRzLmgNCmluZGV4IGMxNWMzOGUu LjI1ZjMyOTAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2hpZC9oaWQtaWRzLmgNCisrKyBiL2RyaXZl cnMvaGlkL2hpZC1pZHMuaA0KQEAgLTUwNiw2ICs1MDYsOSBAQA0KICNkZWZpbmUgVVNCX1ZFTkRP Ul9JRF9NQURDQVRaCQkweDA3MzgNCiAjZGVmaW5lIFVTQl9ERVZJQ0VfSURfTUFEQ0FUWl9CRUFU UEFECTB4NDU0MA0KIA0KKyNkZWZpbmUgVVNCX1ZFTkRPUl9JRF9NQVNURVJLSVQJCQkweDE2YzAN CisjZGVmaW5lIFVTQl9ERVZJQ0VfSURfTUFTVEVSS0lUX01BOTAxUkFESU8JMHgwNWRmDQorDQog I2RlZmluZSBVU0JfVkVORE9SX0lEX01DQwkJMHgwOWRiDQogI2RlZmluZSBVU0JfREVWSUNFX0lE X01DQ19QTUQxMDI0TFMJMHgwMDc2DQogI2RlZmluZSBVU0JfREVWSUNFX0lEX01DQ19QTUQxMjA4 TFMJMHgwMDdhDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jIGIvZHJp dmVycy9pb21tdS9pbnRlbC1pb21tdS5jDQppbmRleCBkZmZkY2E4Li5mNDRhMDY3IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jDQorKysgYi9kcml2ZXJzL2lvbW11L2lu dGVsLWlvbW11LmMNCkBAIC00MTQwLDEzICs0MTQwLDE5IEBAIHN0YXRpYyB2b2lkIF9fZGV2aW5p dCBxdWlya19pb21tdV9yd2JmKHN0cnVjdCBwY2lfZGV2ICpkZXYpDQogew0KIAkvKg0KIAkgKiBN b2JpbGUgNCBTZXJpZXMgQ2hpcHNldCBuZWdsZWN0cyB0byBzZXQgUldCRiBjYXBhYmlsaXR5LA0K LQkgKiBidXQgbmVlZHMgaXQ6DQorCSAqIGJ1dCBuZWVkcyBpdC4gU2FtZSBzZWVtcyB0byBob2xk IGZvciB0aGUgZGVza3RvcCB2ZXJzaW9ucy4NCiAJICovDQogCXByaW50ayhLRVJOX0lORk8gIkRN QVI6IEZvcmNpbmcgd3JpdGUtYnVmZmVyIGZsdXNoIGNhcGFiaWxpdHlcbiIpOw0KIAlyd2JmX3F1 aXJrID0gMTsNCiB9DQogDQogREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURf SU5URUwsIDB4MmE0MCwgcXVpcmtfaW9tbXVfcndiZik7DQorREVDTEFSRV9QQ0lfRklYVVBfSEVB REVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MmUwMCwgcXVpcmtfaW9tbXVfcndiZik7DQorREVD TEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MmUxMCwgcXVpcmtf aW9tbXVfcndiZik7DQorREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5U RUwsIDB4MmUyMCwgcXVpcmtfaW9tbXVfcndiZik7DQorREVDTEFSRV9QQ0lfRklYVVBfSEVBREVS KFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MmUzMCwgcXVpcmtfaW9tbXVfcndiZik7DQorREVDTEFS RV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MmU0MCwgcXVpcmtfaW9t bXVfcndiZik7DQorREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUws IDB4MmU5MCwgcXVpcmtfaW9tbXVfcndiZik7DQogDQogI2RlZmluZSBHR0MgMHg1Mg0KICNkZWZp bmUgR0dDX01FTU9SWV9TSVpFX01BU0sJKDB4ZiA8PCA4KQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bWVkaWEvcmMvcmMtbWFpbi5jIGIvZHJpdmVycy9tZWRpYS9yYy9yYy1tYWluLmMNCmluZGV4IDI5 ZjkwMDAuLmE0N2JhMzMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21lZGlhL3JjL3JjLW1haW4uYw0K KysrIGIvZHJpdmVycy9tZWRpYS9yYy9yYy1tYWluLmMNCkBAIC03NzQsOSArNzc0LDEyIEBAIHN0 YXRpYyBzc2l6ZV90IHNob3dfcHJvdG9jb2xzKHN0cnVjdCBkZXZpY2UgKmRldmljZSwNCiAJaWYg KGRldi0+ZHJpdmVyX3R5cGUgPT0gUkNfRFJJVkVSX1NDQU5DT0RFKSB7DQogCQllbmFibGVkID0g ZGV2LT5yY19tYXAucmNfdHlwZTsNCiAJCWFsbG93ZWQgPSBkZXYtPmFsbG93ZWRfcHJvdG9zOw0K LQl9IGVsc2Ugew0KKwl9IGVsc2UgaWYgKGRldi0+cmF3KSB7DQogCQllbmFibGVkID0gZGV2LT5y YXctPmVuYWJsZWRfcHJvdG9jb2xzOw0KIAkJYWxsb3dlZCA9IGlyX3Jhd19nZXRfYWxsb3dlZF9w cm90b2NvbHMoKTsNCisJfSBlbHNlIHsNCisJCW11dGV4X3VubG9jaygmZGV2LT5sb2NrKTsNCisJ CXJldHVybiAtRU5PREVWOw0KIAl9DQogDQogCUlSX2RwcmludGsoMSwgImFsbG93ZWQgLSAweCVs bHgsIGVuYWJsZWQgLSAweCVsbHhcbiIsDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRl by9vbWFwL29tYXBfdm91dC5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9vbWFwL29tYXBfdm91dC5j DQppbmRleCBlZTBkMGIzLi5kMzQ1MjE1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZWRpYS92aWRl by9vbWFwL29tYXBfdm91dC5jDQorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL29tYXAvb21hcF92 b3V0LmMNCkBAIC0yMDYsMTkgKzIwNiwyMSBAQCBzdGF0aWMgdTMyIG9tYXBfdm91dF91c2Vydmly dF90b19waHlzKHUzMiB2aXJ0cCkNCiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7DQogCXN0 cnVjdCBtbV9zdHJ1Y3QgKm1tID0gY3VycmVudC0+bW07DQogDQotCXZtYSA9IGZpbmRfdm1hKG1t LCB2aXJ0cCk7DQogCS8qIEZvciBrZXJuZWwgZGlyZWN0LW1hcHBlZCBtZW1vcnksIHRha2UgdGhl IGVhc3kgd2F5ICovDQotCWlmICh2aXJ0cCA+PSBQQUdFX09GRlNFVCkgew0KLQkJcGh5c3AgPSB2 aXJ0X3RvX3BoeXMoKHZvaWQgKikgdmlydHApOw0KLQl9IGVsc2UgaWYgKHZtYSAmJiAodm1hLT52 bV9mbGFncyAmIFZNX0lPKSAmJiB2bWEtPnZtX3Bnb2ZmKSB7DQorCWlmICh2aXJ0cCA+PSBQQUdF X09GRlNFVCkNCisJCXJldHVybiB2aXJ0X3RvX3BoeXMoKHZvaWQgKikgdmlydHApOw0KKw0KKwlk b3duX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7DQorCXZtYSA9IGZpbmRfdm1hKG1tLCB2 aXJ0cCk7DQorCWlmICh2bWEgJiYgKHZtYS0+dm1fZmxhZ3MgJiBWTV9JTykgJiYgdm1hLT52bV9w Z29mZikgew0KIAkJLyogdGhpcyB3aWxsIGNhdGNoLCBrZXJuZWwtYWxsb2NhdGVkLCBtbWFwZWQt dG8tdXNlcm1vZGUNCiAJCSAgIGFkZHJlc3NlcyAqLw0KIAkJcGh5c3AgPSAodm1hLT52bV9wZ29m ZiA8PCBQQUdFX1NISUZUKSArICh2aXJ0cCAtIHZtYS0+dm1fc3RhcnQpOw0KKwkJdXBfcmVhZCgm Y3VycmVudC0+bW0tPm1tYXBfc2VtKTsNCiAJfSBlbHNlIHsNCiAJCS8qIG90aGVyd2lzZSwgdXNl IGdldF91c2VyX3BhZ2VzKCkgZm9yIGdlbmVyYWwgdXNlcmxhbmQgcGFnZXMgKi8NCiAJCWludCBy ZXMsIG5yX3BhZ2VzID0gMTsNCiAJCXN0cnVjdCBwYWdlICpwYWdlczsNCi0JCWRvd25fcmVhZCgm Y3VycmVudC0+bW0tPm1tYXBfc2VtKTsNCiANCiAJCXJlcyA9IGdldF91c2VyX3BhZ2VzKGN1cnJl bnQsIGN1cnJlbnQtPm1tLCB2aXJ0cCwgbnJfcGFnZXMsIDEsDQogCQkJCTAsICZwYWdlcywgTlVM TCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby92NGwyLWRldmljZS5jIGIvZHJp dmVycy9tZWRpYS92aWRlby92NGwyLWRldmljZS5jDQppbmRleCAwZWRkNjE4Li44YjA3NzdmIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby92NGwyLWRldmljZS5jDQorKysgYi9kcml2 ZXJzL21lZGlhL3ZpZGVvL3Y0bDItZGV2aWNlLmMNCkBAIC0xNTksMzEgKzE1OSwyMSBAQCBpbnQg djRsMl9kZXZpY2VfcmVnaXN0ZXJfc3ViZGV2KHN0cnVjdCB2NGwyX2RldmljZSAqdjRsMl9kZXYs DQogCXNkLT52NGwyX2RldiA9IHY0bDJfZGV2Ow0KIAlpZiAoc2QtPmludGVybmFsX29wcyAmJiBz ZC0+aW50ZXJuYWxfb3BzLT5yZWdpc3RlcmVkKSB7DQogCQllcnIgPSBzZC0+aW50ZXJuYWxfb3Bz LT5yZWdpc3RlcmVkKHNkKTsNCi0JCWlmIChlcnIpIHsNCi0JCQltb2R1bGVfcHV0KHNkLT5vd25l cik7DQotCQkJcmV0dXJuIGVycjsNCi0JCX0NCisJCWlmIChlcnIpDQorCQkJZ290byBlcnJvcl9t b2R1bGU7DQogCX0NCiANCiAJLyogVGhpcyBqdXN0IHJldHVybnMgMCBpZiBlaXRoZXIgb2YgdGhl IHR3byBhcmdzIGlzIE5VTEwgKi8NCiAJZXJyID0gdjRsMl9jdHJsX2FkZF9oYW5kbGVyKHY0bDJf ZGV2LT5jdHJsX2hhbmRsZXIsIHNkLT5jdHJsX2hhbmRsZXIpOw0KLQlpZiAoZXJyKSB7DQotCQlp ZiAoc2QtPmludGVybmFsX29wcyAmJiBzZC0+aW50ZXJuYWxfb3BzLT51bnJlZ2lzdGVyZWQpDQot CQkJc2QtPmludGVybmFsX29wcy0+dW5yZWdpc3RlcmVkKHNkKTsNCi0JCW1vZHVsZV9wdXQoc2Qt Pm93bmVyKTsNCi0JCXJldHVybiBlcnI7DQotCX0NCisJaWYgKGVycikNCisJCWdvdG8gZXJyb3Jf dW5yZWdpc3RlcjsNCiANCiAjaWYgZGVmaW5lZChDT05GSUdfTUVESUFfQ09OVFJPTExFUikNCiAJ LyogUmVnaXN0ZXIgdGhlIGVudGl0eS4gKi8NCiAJaWYgKHY0bDJfZGV2LT5tZGV2KSB7DQogCQll cnIgPSBtZWRpYV9kZXZpY2VfcmVnaXN0ZXJfZW50aXR5KHY0bDJfZGV2LT5tZGV2LCBlbnRpdHkp Ow0KLQkJaWYgKGVyciA8IDApIHsNCi0JCQlpZiAoc2QtPmludGVybmFsX29wcyAmJiBzZC0+aW50 ZXJuYWxfb3BzLT51bnJlZ2lzdGVyZWQpDQotCQkJCXNkLT5pbnRlcm5hbF9vcHMtPnVucmVnaXN0 ZXJlZChzZCk7DQotCQkJbW9kdWxlX3B1dChzZC0+b3duZXIpOw0KLQkJCXJldHVybiBlcnI7DQot CQl9DQorCQlpZiAoZXJyIDwgMCkNCisJCQlnb3RvIGVycm9yX3VucmVnaXN0ZXI7DQogCX0NCiAj ZW5kaWYNCiANCkBAIC0xOTIsNiArMTgyLDE0IEBAIGludCB2NGwyX2RldmljZV9yZWdpc3Rlcl9z dWJkZXYoc3RydWN0IHY0bDJfZGV2aWNlICp2NGwyX2RldiwNCiAJc3Bpbl91bmxvY2soJnY0bDJf ZGV2LT5sb2NrKTsNCiANCiAJcmV0dXJuIDA7DQorDQorZXJyb3JfdW5yZWdpc3RlcjoNCisJaWYg KHNkLT5pbnRlcm5hbF9vcHMgJiYgc2QtPmludGVybmFsX29wcy0+dW5yZWdpc3RlcmVkKQ0KKwkJ c2QtPmludGVybmFsX29wcy0+dW5yZWdpc3RlcmVkKHNkKTsNCitlcnJvcl9tb2R1bGU6DQorCW1v ZHVsZV9wdXQoc2QtPm93bmVyKTsNCisJc2QtPnY0bDJfZGV2ID0gTlVMTDsNCisJcmV0dXJuIGVy cjsNCiB9DQogRVhQT1JUX1NZTUJPTF9HUEwodjRsMl9kZXZpY2VfcmVnaXN0ZXJfc3ViZGV2KTsN CiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLWVzZGhjLWlteC5jIGIvZHJp dmVycy9tbWMvaG9zdC9zZGhjaS1lc2RoYy1pbXguYw0KaW5kZXggMWI0NzkzNy4uODVhMDc0ZiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktZXNkaGMtaW14LmMNCisrKyBiL2Ry aXZlcnMvbW1jL2hvc3Qvc2RoY2ktZXNkaGMtaW14LmMNCkBAIC0yMzIsMTUgKzIzMiwxOCBAQCBz dGF0aWMgdm9pZCBlc2RoY193cml0ZWxfbGUoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHUzMiB2 YWwsIGludCByZWcpDQogDQogc3RhdGljIHUxNiBlc2RoY19yZWFkd19sZShzdHJ1Y3Qgc2RoY2lf aG9zdCAqaG9zdCwgaW50IHJlZykNCiB7DQorCXN0cnVjdCBzZGhjaV9wbHRmbV9ob3N0ICpwbHRm bV9ob3N0ID0gc2RoY2lfcHJpdihob3N0KTsNCisJc3RydWN0IHBsdGZtX2lteF9kYXRhICppbXhf ZGF0YSA9IHBsdGZtX2hvc3QtPnByaXY7DQorDQogCWlmICh1bmxpa2VseShyZWcgPT0gU0RIQ0lf SE9TVF9WRVJTSU9OKSkgew0KLQkJdTE2IHZhbCA9IHJlYWR3KGhvc3QtPmlvYWRkciArIChyZWcg XiAyKSk7DQotCQkvKg0KLQkJICogdVNESEMgc3VwcG9ydHMgU0RIQ0kgdjMuMCwgYnV0IGl0J3Mg ZW5jb2RlZCBhcyB2YWx1ZQ0KLQkJICogMHgzIGluIGhvc3QgY29udHJvbGxlciB2ZXJzaW9uIHJl Z2lzdGVyLCB3aGljaCB2aW9sYXRlcw0KLQkJICogU0RIQ0lfU1BFQ18zMDAgZGVmaW5pdGlvbi4g IFdvcmsgaXQgYXJvdW5kIGhlcmUuDQotCQkgKi8NCi0JCWlmICgodmFsICYgU0RIQ0lfU1BFQ19W RVJfTUFTSykgPT0gMykNCi0JCQlyZXR1cm4gLS12YWw7DQorCQlyZWcgXj0gMjsNCisJCWlmIChp c19pbXg2cV91c2RoYyhpbXhfZGF0YSkpIHsNCisJCQkvKg0KKwkJCSAqIFRoZSB1c2RoYyByZWdp c3RlciByZXR1cm5zIGEgd3JvbmcgaG9zdCB2ZXJzaW9uLg0KKwkJCSAqIENvcnJlY3QgaXQgaGVy ZS4NCisJCQkgKi8NCisJCQlyZXR1cm4gU0RIQ0lfU1BFQ18zMDA7DQorCQl9DQogCX0NCiANCiAJ cmV0dXJuIHJlYWR3KGhvc3QtPmlvYWRkciArIHJlZyk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvaW50ZWwvaWdiL2lnYl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9p bnRlbC9pZ2IvaWdiX21haW4uYw0KaW5kZXggY2YxNzdiOC4uZGY1YTA5YSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lnYi9pZ2JfbWFpbi5jDQorKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9pbnRlbC9pZ2IvaWdiX21haW4uYw0KQEAgLTQ1NTksMTEgKzQ1NTksMTMg QEAgdm9pZCBpZ2JfdXBkYXRlX3N0YXRzKHN0cnVjdCBpZ2JfYWRhcHRlciAqYWRhcHRlciwNCiAJ Ynl0ZXMgPSAwOw0KIAlwYWNrZXRzID0gMDsNCiAJZm9yIChpID0gMDsgaSA8IGFkYXB0ZXItPm51 bV9yeF9xdWV1ZXM7IGkrKykgew0KLQkJdTMyIHJxZHBjX3RtcCA9IHJkMzIoRTEwMDBfUlFEUEMo aSkpICYgMHgwRkZGOw0KKwkJdTMyIHJxZHBjID0gcmQzMihFMTAwMF9SUURQQyhpKSk7DQogCQlz dHJ1Y3QgaWdiX3JpbmcgKnJpbmcgPSBhZGFwdGVyLT5yeF9yaW5nW2ldOw0KIA0KLQkJcmluZy0+ cnhfc3RhdHMuZHJvcHMgKz0gcnFkcGNfdG1wOw0KLQkJbmV0X3N0YXRzLT5yeF9maWZvX2Vycm9y cyArPSBycWRwY190bXA7DQorCQlpZiAocnFkcGMpIHsNCisJCQlyaW5nLT5yeF9zdGF0cy5kcm9w cyArPSBycWRwYzsNCisJCQluZXRfc3RhdHMtPnJ4X2ZpZm9fZXJyb3JzICs9IHJxZHBjOw0KKwkJ fQ0KIA0KIAkJZG8gew0KIAkJCXN0YXJ0ID0gdTY0X3N0YXRzX2ZldGNoX2JlZ2luX2JoKCZyaW5n LT5yeF9zeW5jcCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2RtYS5o IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2RtYS5oDQppbmRleCAzMTViOTZlLi45ZmRkMTk4 IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2RtYS5oDQorKysgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9iNDMvZG1hLmgNCkBAIC0xNjksNyArMTY5LDcgQEAgc3RydWN0IGI0 M19kbWFkZXNjX2dlbmVyaWMgew0KIA0KIC8qIERNQSBlbmdpbmUgdHVuaW5nIGtub2JzICovDQog I2RlZmluZSBCNDNfVFhSSU5HX1NMT1RTCQkyNTYNCi0jZGVmaW5lIEI0M19SWFJJTkdfU0xPVFMJ CTY0DQorI2RlZmluZSBCNDNfUlhSSU5HX1NMT1RTCQkyNTYNCiAjZGVmaW5lIEI0M19ETUEwX1JY X0ZXNTk4X0JVRlNJWkUJKEI0M19ETUEwX1JYX0ZXNTk4X0ZPICsgSUVFRTgwMjExX01BWF9GUkFN RV9MRU4pDQogI2RlZmluZSBCNDNfRE1BMF9SWF9GVzM1MV9CVUZTSVpFCShCNDNfRE1BMF9SWF9G VzM1MV9GTyArIElFRUU4MDIxMV9NQVhfRlJBTUVfTEVOKQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL3A1NC9wNTR1c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3A1NC9w NTR1c2IuYw0KaW5kZXggN2NhODRjMy4uNTY0MjE4YyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3A1NC9wNTR1c2IuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcDU0L3A1 NHVzYi5jDQpAQCAtODQsOCArODQsOCBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgcDU0 dV90YWJsZVtdID0gew0KIAl7VVNCX0RFVklDRSgweDA2YjksIDB4MDEyMSl9LAkvKiBUaG9tc29u IFNwZWVkVG91Y2ggMTIxZyAqLw0KIAl7VVNCX0RFVklDRSgweDA3MDcsIDB4ZWUxMyl9LCAgIC8q IFNNQyAyODYyVy1HIHZlcnNpb24gMiAqLw0KIAl7VVNCX0RFVklDRSgweDA4MDMsIDB4NDMxMCl9 LAkvKiBab29tIDQ0MTBhICovDQotCXtVU0JfREVWSUNFKDB4MDgzYSwgMHg0NTAzKX0sCS8qIFQt Q29tIFNpbnVzIDE1NCBkYXRhIElJICovDQogCXtVU0JfREVWSUNFKDB4MDgzYSwgMHg0NTIxKX0s ICAgLyogU2llbWVucyBHaWdhc2V0IFVTQiBBZGFwdGVyIDU0IHZlcnNpb24gMiAqLw0KKwl7VVNC X0RFVklDRSgweDA4M2EsIDB4NDUzMSl9LAkvKiBULUNvbSBTaW51cyAxNTQgZGF0YSBJSSAqLw0K IAl7VVNCX0RFVklDRSgweDA4M2EsIDB4YzUwMSl9LAkvKiBab29tIFdpcmVsZXNzLUcgNDQxMCAq Lw0KIAl7VVNCX0RFVklDRSgweDA4M2EsIDB4ZjUwMyl9LAkvKiBBY2N0b24gRkQ3MDUwRSB2ZXIg MTAxMGVjICAqLw0KIAl7VVNCX0RFVklDRSgweDA4NDYsIDB4NDI0MCl9LAkvKiBOZXRnZWFyIFdH MTExICh2MikgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0 bDgxOTJjdS9zdy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY3Uvc3cu Yw0KaW5kZXggYTk5YmUyZDAuLjA5ODRkY2YgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJl bGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9y dGx3aWZpL3J0bDgxOTJjdS9zdy5jDQpAQCAtMjk1LDYgKzI5NSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg dXNiX2RldmljZV9pZCBydGw4MTkyY191c2JfaWRzW10gPSB7DQogCXtSVExfVVNCX0RFVklDRShV U0JfVkVOREVSX0lEX1JFQUxURUssIDB4ODE3ZiwgcnRsOTJjdV9oYWxfY2ZnKX0sDQogCS8qIFJU TDgxODhDVVMtVkwgKi8NCiAJe1JUTF9VU0JfREVWSUNFKFVTQl9WRU5ERVJfSURfUkVBTFRFSywg MHg4MThhLCBydGw5MmN1X2hhbF9jZmcpfSwNCisJe1JUTF9VU0JfREVWSUNFKFVTQl9WRU5ERVJf SURfUkVBTFRFSywgMHg4MTlhLCBydGw5MmN1X2hhbF9jZmcpfSwNCiAJLyogODE4OCBDb21ibyBm b3IgQkM0ICovDQogCXtSVExfVVNCX0RFVklDRShVU0JfVkVOREVSX0lEX1JFQUxURUssIDB4ODc1 NCwgcnRsOTJjdV9oYWxfY2ZnKX0sDQogDQpAQCAtMzcyLDkgKzM3MywxNSBAQCBzdGF0aWMgc3Ry dWN0IHVzYl9kZXZpY2VfaWQgcnRsODE5MmNfdXNiX2lkc1tdID0gew0KIA0KIE1PRFVMRV9ERVZJ Q0VfVEFCTEUodXNiLCBydGw4MTkyY191c2JfaWRzKTsNCiANCitzdGF0aWMgaW50IHJ0bDgxOTJj dV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwNCisJCQkgICBjb25zdCBzdHJ1Y3Qg dXNiX2RldmljZV9pZCAqaWQpDQorew0KKwlyZXR1cm4gcnRsX3VzYl9wcm9iZShpbnRmLCBpZCwg JnJ0bDkyY3VfaGFsX2NmZyk7DQorfQ0KKw0KIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydGw4 MTkyY3VfZHJpdmVyID0gew0KIAkubmFtZSA9ICJydGw4MTkyY3UiLA0KLQkucHJvYmUgPSBydGxf dXNiX3Byb2JlLA0KKwkucHJvYmUgPSBydGw4MTkyY3VfcHJvYmUsDQogCS5kaXNjb25uZWN0ID0g cnRsX3VzYl9kaXNjb25uZWN0LA0KIAkuaWRfdGFibGUgPSBydGw4MTkyY191c2JfaWRzLA0KIA0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvdXNiLmMgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9ydGx3aWZpL3VzYi5jDQppbmRleCAzMGRkMGE5Li5jMDRlZTkyIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS91c2IuYw0KKysrIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvcnRsd2lmaS91c2IuYw0KQEAgLTQ0LDggKzQ0LDEyIEBADQogDQogc3Rh dGljIHZvaWQgdXNiY3RybF9hc3luY19jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIpDQogew0KLQlp ZiAodXJiKQ0KLQkJa2ZyZWUodXJiLT5jb250ZXh0KTsNCisJaWYgKHVyYikgew0KKwkJLyogZnJl ZSBkciAqLw0KKwkJa2ZyZWUodXJiLT5zZXR1cF9wYWNrZXQpOw0KKwkJLyogZnJlZSBkYXRhYnVm ICovDQorCQlrZnJlZSh1cmItPnRyYW5zZmVyX2J1ZmZlcik7DQorCX0NCiB9DQogDQogc3RhdGlj IGludCBfdXNiY3RybF92ZW5kb3JyZXFfYXN5bmNfd3JpdGUoc3RydWN0IHVzYl9kZXZpY2UgKnVk ZXYsIHU4IHJlcXVlc3QsDQpAQCAtNTcsMzggKzYxLDQ2IEBAIHN0YXRpYyBpbnQgX3VzYmN0cmxf dmVuZG9ycmVxX2FzeW5jX3dyaXRlKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2LCB1OCByZXF1ZXN0 LA0KIAl1OCByZXF0eXBlOw0KIAlzdHJ1Y3QgdXNiX2N0cmxyZXF1ZXN0ICpkcjsNCiAJc3RydWN0 IHVyYiAqdXJiOw0KLQlzdHJ1Y3QgcnRsODE5eF9hc3luY193cml0ZV9kYXRhIHsNCi0JCXU4IGRh dGFbUkVBTFRFS19VU0JfVkVOUVRfTUFYX0JVRl9TSVpFXTsNCi0JCXN0cnVjdCB1c2JfY3RybHJl cXVlc3QgZHI7DQotCX0gKmJ1ZjsNCisJY29uc3QgdTE2IGRhdGFidWZfbWF4bGVuID0gUkVBTFRF S19VU0JfVkVOUVRfTUFYX0JVRl9TSVpFOw0KKwl1OCAqZGF0YWJ1ZjsNCisNCisJaWYgKFdBUk5f T05fT05DRShsZW4gPiBkYXRhYnVmX21heGxlbikpDQorCQlsZW4gPSBkYXRhYnVmX21heGxlbjsN CiANCiAJcGlwZSA9IHVzYl9zbmRjdHJscGlwZSh1ZGV2LCAwKTsgLyogd3JpdGVfb3V0ICovDQog CXJlcXR5cGUgPSAgUkVBTFRFS19VU0JfVkVOUVRfV1JJVEU7DQogDQotCWJ1ZiA9IGttYWxsb2Mo c2l6ZW9mKCpidWYpLCBHRlBfQVRPTUlDKTsNCi0JaWYgKCFidWYpDQorCWRyID0ga21hbGxvYyhz aXplb2YoKmRyKSwgR0ZQX0FUT01JQyk7DQorCWlmICghZHIpDQogCQlyZXR1cm4gLUVOT01FTTsN CiANCisJZGF0YWJ1ZiA9IGttYWxsb2MoZGF0YWJ1Zl9tYXhsZW4sIEdGUF9BVE9NSUMpOw0KKwlp ZiAoIWRhdGFidWYpIHsNCisJCWtmcmVlKGRyKTsNCisJCXJldHVybiAtRU5PTUVNOw0KKwl9DQor DQogCXVyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0FUT01JQyk7DQogCWlmICghdXJiKSB7DQot CQlrZnJlZShidWYpOw0KKwkJa2ZyZWUoZGF0YWJ1Zik7DQorCQlrZnJlZShkcik7DQogCQlyZXR1 cm4gLUVOT01FTTsNCiAJfQ0KIA0KLQlkciA9ICZidWYtPmRyOw0KLQ0KIAlkci0+YlJlcXVlc3RU eXBlID0gcmVxdHlwZTsNCiAJZHItPmJSZXF1ZXN0ID0gcmVxdWVzdDsNCiAJZHItPndWYWx1ZSA9 IGNwdV90b19sZTE2KHZhbHVlKTsNCiAJZHItPndJbmRleCA9IGNwdV90b19sZTE2KGluZGV4KTsN CiAJZHItPndMZW5ndGggPSBjcHVfdG9fbGUxNihsZW4pOw0KLQltZW1jcHkoYnVmLCBwZGF0YSwg bGVuKTsNCisJbWVtY3B5KGRhdGFidWYsIHBkYXRhLCBsZW4pOw0KIAl1c2JfZmlsbF9jb250cm9s X3VyYih1cmIsIHVkZXYsIHBpcGUsDQotCQkJICAgICAodW5zaWduZWQgY2hhciAqKWRyLCBidWYs IGxlbiwNCi0JCQkgICAgIHVzYmN0cmxfYXN5bmNfY2FsbGJhY2ssIGJ1Zik7DQorCQkJICAgICAo dW5zaWduZWQgY2hhciAqKWRyLCBkYXRhYnVmLCBsZW4sDQorCQkJICAgICB1c2JjdHJsX2FzeW5j X2NhbGxiYWNrLCBOVUxMKTsNCiAJcmMgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9BVE9NSUMp Ow0KLQlpZiAocmMgPCAwKQ0KLQkJa2ZyZWUoYnVmKTsNCisJaWYgKHJjIDwgMCkgew0KKwkJa2Zy ZWUoZGF0YWJ1Zik7DQorCQlrZnJlZShkcik7DQorCX0NCiAJdXNiX2ZyZWVfdXJiKHVyYik7DQog CXJldHVybiByYzsNCiB9DQpAQCAtODk0LDcgKzkwNiw4IEBAIHN0YXRpYyBzdHJ1Y3QgcnRsX2lu dGZfb3BzIHJ0bF91c2Jfb3BzID0gew0KIH07DQogDQogaW50IF9fZGV2aW5pdCBydGxfdXNiX3By b2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLA0KLQkJCWNvbnN0IHN0cnVjdCB1c2JfZGV2 aWNlX2lkICppZCkNCisJCQkgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkLA0KKwkJ CSAgICBzdHJ1Y3QgcnRsX2hhbF9jZmcgKnJ0bF9oYWxfY2ZnKQ0KIHsNCiAJaW50IGVycjsNCiAJ c3RydWN0IGllZWU4MDIxMV9odyAqaHcgPSBOVUxMOw0KQEAgLTkyOCw3ICs5NDEsNyBAQCBpbnQg X19kZXZpbml0IHJ0bF91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsDQogCXVz Yl9zZXRfaW50ZmRhdGEoaW50ZiwgaHcpOw0KIAkvKiBpbml0IGNmZyAmIGludGZfb3BzICovDQog CXJ0bHByaXYtPnJ0bGhhbC5pbnRlcmZhY2UgPSBJTlRGX1VTQjsNCi0JcnRscHJpdi0+Y2ZnID0g KHN0cnVjdCBydGxfaGFsX2NmZyAqKShpZC0+ZHJpdmVyX2luZm8pOw0KKwlydGxwcml2LT5jZmcg PSBydGxfaGFsX2NmZzsNCiAJcnRscHJpdi0+aW50Zl9vcHMgPSAmcnRsX3VzYl9vcHM7DQogCXJ0 bF9kYmdwX2ZsYWdfaW5pdChodyk7DQogCS8qIEluaXQgSU8gaGFuZGxlciAqLw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvdXNiLmggYi9kcml2ZXJzL25ldC93aXJl bGVzcy9ydGx3aWZpL3VzYi5oDQppbmRleCBkMmE2M2ZiLi40ZGM0YjFjIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS91c2IuaA0KKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvcnRsd2lmaS91c2IuaA0KQEAgLTE1OCw3ICsxNTgsOCBAQCBzdHJ1Y3QgcnRsX3VzYl9w cml2IHsNCiANCiANCiBpbnQgX19kZXZpbml0IHJ0bF91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRl cmZhY2UgKmludGYsDQotCQkJICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCk7DQor CQkJICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCwNCisJCQkgICAgc3RydWN0IHJ0 bF9oYWxfY2ZnICpydGw5MmN1X2hhbF9jZmcpOw0KIHZvaWQgcnRsX3VzYl9kaXNjb25uZWN0KHN0 cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKTsNCiBpbnQgcnRsX3VzYl9zdXNwZW5kKHN0cnVjdCB1 c2JfaW50ZXJmYWNlICpwdXNiX2ludGYsIHBtX21lc3NhZ2VfdCBtZXNzYWdlKTsNCiBpbnQgcnRs X3VzYl9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnB1c2JfaW50Zik7DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svaW50ZXJmYWNlLmMgYi9kcml2ZXJzL25ldC94ZW4t bmV0YmFjay9pbnRlcmZhY2UuYw0KaW5kZXggNTkyNWUwYi4uOGVhZjBlMiAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL2ludGVyZmFjZS5jDQorKysgYi9kcml2ZXJzL25ldC94 ZW4tbmV0YmFjay9pbnRlcmZhY2UuYw0KQEAgLTEzMiw2ICsxMzIsNyBAQCBzdGF0aWMgdm9pZCB4 ZW52aWZfdXAoc3RydWN0IHhlbnZpZiAqdmlmKQ0KIHN0YXRpYyB2b2lkIHhlbnZpZl9kb3duKHN0 cnVjdCB4ZW52aWYgKnZpZikNCiB7DQogCWRpc2FibGVfaXJxKHZpZi0+aXJxKTsNCisJZGVsX3Rp bWVyX3N5bmMoJnZpZi0+Y3JlZGl0X3RpbWVvdXQpOw0KIAl4ZW5fbmV0YmtfZGVzY2hlZHVsZV94 ZW52aWYodmlmKTsNCiAJeGVuX25ldGJrX3JlbW92ZV94ZW52aWYodmlmKTsNCiB9DQpAQCAtMzYy LDggKzM2Myw2IEBAIHZvaWQgeGVudmlmX2Rpc2Nvbm5lY3Qoc3RydWN0IHhlbnZpZiAqdmlmKQ0K IAlhdG9taWNfZGVjKCZ2aWYtPnJlZmNudCk7DQogCXdhaXRfZXZlbnQodmlmLT53YWl0aW5nX3Rv X2ZyZWUsIGF0b21pY19yZWFkKCZ2aWYtPnJlZmNudCkgPT0gMCk7DQogDQotCWRlbF90aW1lcl9z eW5jKCZ2aWYtPmNyZWRpdF90aW1lb3V0KTsNCi0NCiAJaWYgKHZpZi0+aXJxKQ0KIAkJdW5iaW5k X2Zyb21faXJxaGFuZGxlcih2aWYtPmlycSwgdmlmKTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMgYi9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRi YWNrLmMNCmluZGV4IGI4MDJiYjMuLjE4NWEwZWIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC94 ZW4tbmV0YmFjay9uZXRiYWNrLmMNCisrKyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25ldGJh Y2suYw0KQEAgLTg4MywxMyArODgzLDEzIEBAIHN0YXRpYyBpbnQgbmV0YmtfY291bnRfcmVxdWVz dHMoc3RydWN0IHhlbnZpZiAqdmlmLA0KIAkJaWYgKGZyYWdzID49IHdvcmtfdG9fZG8pIHsNCiAJ CQluZXRkZXZfZXJyKHZpZi0+ZGV2LCAiTmVlZCBtb3JlIGZyYWdzXG4iKTsNCiAJCQluZXRia19m YXRhbF90eF9lcnIodmlmKTsNCi0JCQlyZXR1cm4gLWZyYWdzOw0KKwkJCXJldHVybiAtRU5PREFU QTsNCiAJCX0NCiANCiAJCWlmICh1bmxpa2VseShmcmFncyA+PSBNQVhfU0tCX0ZSQUdTKSkgew0K IAkJCW5ldGRldl9lcnIodmlmLT5kZXYsICJUb28gbWFueSBmcmFnc1xuIik7DQogCQkJbmV0Ymtf ZmF0YWxfdHhfZXJyKHZpZik7DQotCQkJcmV0dXJuIC1mcmFnczsNCisJCQlyZXR1cm4gLUUyQklH Ow0KIAkJfQ0KIA0KIAkJbWVtY3B5KHR4cCwgUklOR19HRVRfUkVRVUVTVCgmdmlmLT50eCwgY29u cyArIGZyYWdzKSwNCkBAIC04OTcsNyArODk3LDcgQEAgc3RhdGljIGludCBuZXRia19jb3VudF9y ZXF1ZXN0cyhzdHJ1Y3QgeGVudmlmICp2aWYsDQogCQlpZiAodHhwLT5zaXplID4gZmlyc3QtPnNp emUpIHsNCiAJCQluZXRkZXZfZXJyKHZpZi0+ZGV2LCAiRnJhZyBpcyBiaWdnZXIgdGhhbiBmcmFt ZS5cbiIpOw0KIAkJCW5ldGJrX2ZhdGFsX3R4X2Vycih2aWYpOw0KLQkJCXJldHVybiAtZnJhZ3M7 DQorCQkJcmV0dXJuIC1FSU87DQogCQl9DQogDQogCQlmaXJzdC0+c2l6ZSAtPSB0eHAtPnNpemU7 DQpAQCAtOTA3LDcgKzkwNyw3IEBAIHN0YXRpYyBpbnQgbmV0YmtfY291bnRfcmVxdWVzdHMoc3Ry dWN0IHhlbnZpZiAqdmlmLA0KIAkJCW5ldGRldl9lcnIodmlmLT5kZXYsICJ0eHAtPm9mZnNldDog JXgsIHNpemU6ICV1XG4iLA0KIAkJCQkgdHhwLT5vZmZzZXQsIHR4cC0+c2l6ZSk7DQogCQkJbmV0 YmtfZmF0YWxfdHhfZXJyKHZpZik7DQotCQkJcmV0dXJuIC1mcmFnczsNCisJCQlyZXR1cm4gLUVJ TlZBTDsNCiAJCX0NCiAJfSB3aGlsZSAoKHR4cCsrKS0+ZmxhZ3MgJiBYRU5fTkVUVFhGX21vcmVf ZGF0YSk7DQogCXJldHVybiBmcmFnczsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9yZW1vdmUu YyBiL2RyaXZlcnMvcGNpL3JlbW92ZS5jDQppbmRleCA3Zjg3YmVlLi5mNTNkYTllIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9wY2kvcmVtb3ZlLmMNCisrKyBiL2RyaXZlcnMvcGNpL3JlbW92ZS5jDQpA QCAtMTksNiArMTksOCBAQCBzdGF0aWMgdm9pZCBwY2lfZnJlZV9yZXNvdXJjZXMoc3RydWN0IHBj aV9kZXYgKmRldikNCiANCiBzdGF0aWMgdm9pZCBwY2lfc3RvcF9kZXYoc3RydWN0IHBjaV9kZXYg KmRldikNCiB7DQorCXBjaV9wbWVfYWN0aXZlKGRldiwgZmFsc2UpOw0KKw0KIAlpZiAoZGV2LT5p c19hZGRlZCkgew0KIAkJcGNpX3Byb2NfZGV0YWNoX2RldmljZShkZXYpOw0KIAkJcGNpX3JlbW92 ZV9zeXNmc19kZXZfZmlsZXMoZGV2KTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS92cmM0 MTcxX2NhcmQuYyBiL2RyaXZlcnMvcGNtY2lhL3ZyYzQxNzFfY2FyZC5jDQppbmRleCA4NmU0YTFh Li42YmIwMmFiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9wY21jaWEvdnJjNDE3MV9jYXJkLmMNCisr KyBiL2RyaXZlcnMvcGNtY2lhL3ZyYzQxNzFfY2FyZC5jDQpAQCAtMjQ2LDYgKzI0Niw3IEBAIHN0 YXRpYyBpbnQgcGNjYXJkX2luaXQoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnNvY2spDQogCXNvY2tl dCA9ICZ2cmM0MTcxX3NvY2tldHNbc2xvdF07DQogCXNvY2tldC0+Y3NjX2lycSA9IHNlYXJjaF9u b251c2VfaXJxKCk7DQogCXNvY2tldC0+aW9faXJxID0gc2VhcmNoX25vbnVzZV9pcnEoKTsNCisJ c3Bpbl9sb2NrX2luaXQoJnNvY2tldC0+bG9jayk7DQogDQogCXJldHVybiAwOw0KIH0NCmRpZmYg LS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9hc3VzLWxhcHRvcC5jIGIvZHJpdmVycy9wbGF0 Zm9ybS94ODYvYXN1cy1sYXB0b3AuYw0KaW5kZXggZjc1YTRjOC4uM2EwOTQ2MCAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L2FzdXMtbGFwdG9wLmMNCisrKyBiL2RyaXZlcnMvcGxh dGZvcm0veDg2L2FzdXMtbGFwdG9wLmMNCkBAIC04MjAsOCArODIwLDEwIEBAIHN0YXRpYyBzc2l6 ZV90IHNob3dfaW5mb3Moc3RydWN0IGRldmljZSAqZGV2LA0KIAkvKg0KIAkgKiBUaGUgSFdSUyBt ZXRob2QgcmV0dXJuIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgaGFyZHdhcmUuDQogCSAqIDB4ODAg Yml0IGlzIGZvciBXTEFOLCAweDEwMCBmb3IgQmx1ZXRvb3RoLg0KKwkgKiAweDQwIGZvciBXV0FO LCAweDEwIGZvciBXSU1BWC4NCiAJICogVGhlIHNpZ25pZmljYW5jZSBvZiBvdGhlcnMgaXMgeWV0 IHRvIGJlIGZvdW5kLg0KLQkgKiBJZiB3ZSBkb24ndCBmaW5kIHRoZSBtZXRob2QsIHdlIGFzc3Vt ZSB0aGUgZGV2aWNlIGFyZSBwcmVzZW50Lg0KKwkgKiBXZSBkb24ndCBjdXJyZW50bHkgdXNlIHRo aXMgZm9yIGRldmljZSBkZXRlY3Rpb24sIGFuZCBpdA0KKwkgKiB0YWtlcyBzZXZlcmFsIHNlY29u ZHMgdG8gcnVuIG9uIHNvbWUgc3lzdGVtcy4NCiAJICovDQogCXJ2ID0gYWNwaV9ldmFsdWF0ZV9p bnRlZ2VyKGFzdXMtPmhhbmRsZSwgIkhXUlMiLCBOVUxMLCAmdGVtcCk7DQogCWlmICghQUNQSV9G QUlMVVJFKHJ2KSkNCkBAIC0xNTkxLDcgKzE1OTMsNyBAQCBzdGF0aWMgaW50IGFzdXNfbGFwdG9w X2dldF9pbmZvKHN0cnVjdCBhc3VzX2xhcHRvcCAqYXN1cykNCiB7DQogCXN0cnVjdCBhY3BpX2J1 ZmZlciBidWZmZXIgPSB7IEFDUElfQUxMT0NBVEVfQlVGRkVSLCBOVUxMIH07DQogCXVuaW9uIGFj cGlfb2JqZWN0ICptb2RlbCA9IE5VTEw7DQotCXVuc2lnbmVkIGxvbmcgbG9uZyBic3RzX3Jlc3Vs dCwgaHdyc19yZXN1bHQ7DQorCXVuc2lnbmVkIGxvbmcgbG9uZyBic3RzX3Jlc3VsdDsNCiAJY2hh ciAqc3RyaW5nID0gTlVMTDsNCiAJYWNwaV9zdGF0dXMgc3RhdHVzOw0KIA0KQEAgLTE2NTMsMTcg KzE2NTUsNiBAQCBzdGF0aWMgaW50IGFzdXNfbGFwdG9wX2dldF9pbmZvKHN0cnVjdCBhc3VzX2xh cHRvcCAqYXN1cykNCiAJaWYgKCpzdHJpbmcpDQogCQlwcl9ub3RpY2UoIiAgJXMgbW9kZWwgZGV0 ZWN0ZWRcbiIsIHN0cmluZyk7DQogDQotCS8qDQotCSAqIFRoZSBIV1JTIG1ldGhvZCByZXR1cm4g aW5mb3JtYXRpb25zIGFib3V0IHRoZSBoYXJkd2FyZS4NCi0JICogMHg4MCBiaXQgaXMgZm9yIFdM QU4sIDB4MTAwIGZvciBCbHVldG9vdGgsDQotCSAqIDB4NDAgZm9yIFdXQU4sIDB4MTAgZm9yIFdJ TUFYLg0KLQkgKiBUaGUgc2lnbmlmaWNhbmNlIG9mIG90aGVycyBpcyB5ZXQgdG8gYmUgZm91bmQu DQotCSAqLw0KLQlzdGF0dXMgPQ0KLQkgICAgYWNwaV9ldmFsdWF0ZV9pbnRlZ2VyKGFzdXMtPmhh bmRsZSwgIkhXUlMiLCBOVUxMLCAmaHdyc19yZXN1bHQpOw0KLQlpZiAoIUFDUElfRkFJTFVSRShz dGF0dXMpKQ0KLQkJcHJfbm90aWNlKCIgIEhXUlMgcmV0dXJuZWQgJXgiLCAoaW50KWh3cnNfcmVz dWx0KTsNCi0NCiAJaWYgKCFhY3BpX2NoZWNrX2hhbmRsZShhc3VzLT5oYW5kbGUsIE1FVEhPRF9X TF9TVEFUVVMsIE5VTEwpKQ0KIAkJYXN1cy0+aGF2ZV9yc3RzID0gdHJ1ZTsNCiANCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3Bwcy9jbGllbnRzL3Bwcy1sZGlzYy5jIGIvZHJpdmVycy9wcHMvY2xpZW50 cy9wcHMtbGRpc2MuYw0KaW5kZXggNzk0NTFmMi4uNjBjZWU5ZSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvcHBzL2NsaWVudHMvcHBzLWxkaXNjLmMNCisrKyBiL2RyaXZlcnMvcHBzL2NsaWVudHMvcHBz LWxkaXNjLmMNCkBAIC0zMSw3ICszMSw3IEBADQogc3RhdGljIHZvaWQgcHBzX3R0eV9kY2RfY2hh bmdlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHVuc2lnbmVkIGludCBzdGF0dXMsDQogCQkJCXN0 cnVjdCBwcHNfZXZlbnRfdGltZSAqdHMpDQogew0KLQlzdHJ1Y3QgcHBzX2RldmljZSAqcHBzID0g KHN0cnVjdCBwcHNfZGV2aWNlICopdHR5LT5kaXNjX2RhdGE7DQorCXN0cnVjdCBwcHNfZGV2aWNl ICpwcHMgPSBwcHNfbG9va3VwX2Rldih0dHkpOw0KIA0KIAlCVUdfT04ocHBzID09IE5VTEwpOw0K IA0KQEAgLTY3LDkgKzY3LDkgQEAgc3RhdGljIGludCBwcHNfdHR5X29wZW4oc3RydWN0IHR0eV9z dHJ1Y3QgKnR0eSkNCiAJCXByX2VycigiY2Fubm90IHJlZ2lzdGVyIFBQUyBzb3VyY2UgXCIlc1wi XG4iLCBpbmZvLnBhdGgpOw0KIAkJcmV0dXJuIC1FTk9NRU07DQogCX0NCi0JdHR5LT5kaXNjX2Rh dGEgPSBwcHM7DQorCXBwcy0+bG9va3VwX2Nvb2tpZSA9IHR0eTsNCiANCi0JLyogU2hvdWxkIG9w ZW4gTl9UVFkgbGRpc2MgdG9vICovDQorCS8qIE5vdyBvcGVuIHRoZSBiYXNlIGNsYXNzIE5fVFRZ IGxkaXNjICovDQogCXJldCA9IGFsaWFzX25fdHR5X29wZW4odHR5KTsNCiAJaWYgKHJldCA8IDAp IHsNCiAJCXByX2VycigiY2Fubm90IG9wZW4gdHR5IGxkaXNjIFwiJXNcIlxuIiwgaW5mby5wYXRo KTsNCkBAIC04MSw3ICs4MSw2IEBAIHN0YXRpYyBpbnQgcHBzX3R0eV9vcGVuKHN0cnVjdCB0dHlf c3RydWN0ICp0dHkpDQogCXJldHVybiAwOw0KIA0KIGVycl91bnJlZ2lzdGVyOg0KLQl0dHktPmRp c2NfZGF0YSA9IE5VTEw7DQogCXBwc191bnJlZ2lzdGVyX3NvdXJjZShwcHMpOw0KIAlyZXR1cm4g cmV0Ow0KIH0NCkBAIC05MCwxMSArODksMTAgQEAgc3RhdGljIHZvaWQgKCphbGlhc19uX3R0eV9j bG9zZSkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7DQogDQogc3RhdGljIHZvaWQgcHBzX3R0eV9j bG9zZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQ0KIHsNCi0Jc3RydWN0IHBwc19kZXZpY2UgKnBw cyA9IChzdHJ1Y3QgcHBzX2RldmljZSAqKXR0eS0+ZGlzY19kYXRhOw0KKwlzdHJ1Y3QgcHBzX2Rl dmljZSAqcHBzID0gcHBzX2xvb2t1cF9kZXYodHR5KTsNCiANCiAJYWxpYXNfbl90dHlfY2xvc2Uo dHR5KTsNCiANCi0JdHR5LT5kaXNjX2RhdGEgPSBOVUxMOw0KIAlkZXZfaW5mbyhwcHMtPmRldiwg InJlbW92ZWRcbiIpOw0KIAlwcHNfdW5yZWdpc3Rlcl9zb3VyY2UocHBzKTsNCiB9DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9wcHMvcHBzLmMgYi9kcml2ZXJzL3Bwcy9wcHMuYw0KaW5kZXggMmJhYWRk Mi4uZTgzNjY5ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcHBzL3Bwcy5jDQorKysgYi9kcml2ZXJz L3Bwcy9wcHMuYw0KQEAgLTI0NywxMiArMjQ3LDE1IEBAIHN0YXRpYyBpbnQgcHBzX2NkZXZfb3Bl bihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkNCiAJc3RydWN0IHBwc19k ZXZpY2UgKnBwcyA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2LA0KIAkJCQkJCXN0cnVjdCBw cHNfZGV2aWNlLCBjZGV2KTsNCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gcHBzOw0KLQ0KKwlrb2Jq ZWN0X2dldCgmcHBzLT5kZXYtPmtvYmopOw0KIAlyZXR1cm4gMDsNCiB9DQogDQogc3RhdGljIGlu dCBwcHNfY2Rldl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxl KQ0KIHsNCisJc3RydWN0IHBwc19kZXZpY2UgKnBwcyA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9j ZGV2LA0KKwkJCQkJCXN0cnVjdCBwcHNfZGV2aWNlLCBjZGV2KTsNCisJa29iamVjdF9wdXQoJnBw cy0+ZGV2LT5rb2JqKTsNCiAJcmV0dXJuIDA7DQogfQ0KIA0KQEAgLTI3NCw4ICsyNzcsMTAgQEAg c3RhdGljIHZvaWQgcHBzX2RldmljZV9kZXN0cnVjdChzdHJ1Y3QgZGV2aWNlICpkZXYpDQogew0K IAlzdHJ1Y3QgcHBzX2RldmljZSAqcHBzID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQogDQotCS8q IHJlbGVhc2UgaWQgaGVyZSB0byBwcm90ZWN0IG90aGVycyBmcm9tIHVzaW5nIGl0IHdoaWxlIGl0 J3MNCi0JICogc3RpbGwgaW4gdXNlICovDQorCWNkZXZfZGVsKCZwcHMtPmNkZXYpOw0KKw0KKwkv KiBOb3cgd2UgY2FuIHJlbGVhc2UgdGhlIElEIGZvciByZS11c2UgKi8NCisJcHJfZGVidWcoImRl YWxsb2NhdGluZyBwcHMlZFxuIiwgcHBzLT5pZCk7DQogCW11dGV4X2xvY2soJnBwc19pZHJfbG9j ayk7DQogCWlkcl9yZW1vdmUoJnBwc19pZHIsIHBwcy0+aWQpOw0KIAltdXRleF91bmxvY2soJnBw c19pZHJfbG9jayk7DQpAQCAtMzMwLDYgKzMzNSw3IEBAIGludCBwcHNfcmVnaXN0ZXJfY2Rldihz dHJ1Y3QgcHBzX2RldmljZSAqcHBzKQ0KIAlpZiAoSVNfRVJSKHBwcy0+ZGV2KSkNCiAJCWdvdG8g ZGVsX2NkZXY7DQogDQorCS8qIE92ZXJyaWRlIHRoZSByZWxlYXNlIGZ1bmN0aW9uIHdpdGggb3Vy IG93biAqLw0KIAlwcHMtPmRldi0+cmVsZWFzZSA9IHBwc19kZXZpY2VfZGVzdHJ1Y3Q7DQogDQog CXByX2RlYnVnKCJzb3VyY2UgJXMgZ290IGNkZXYgKCVkOiVkKVxuIiwgcHBzLT5pbmZvLm5hbWUs DQpAQCAtMzUwLDExICszNTYsNDQgQEAgZnJlZV9pZHI6DQogDQogdm9pZCBwcHNfdW5yZWdpc3Rl cl9jZGV2KHN0cnVjdCBwcHNfZGV2aWNlICpwcHMpDQogew0KKwlwcl9kZWJ1ZygidW5yZWdpc3Rl cmluZyBwcHMlZFxuIiwgcHBzLT5pZCk7DQorCXBwcy0+bG9va3VwX2Nvb2tpZSA9IE5VTEw7DQog CWRldmljZV9kZXN0cm95KHBwc19jbGFzcywgcHBzLT5kZXYtPmRldnQpOw0KLQljZGV2X2RlbCgm cHBzLT5jZGV2KTsNCiB9DQogDQogLyoNCisgKiBMb29rIHVwIGEgcHBzIGRldmljZSBieSBtYWdp YyBjb29raWUuDQorICogVGhlIGNvb2tpZSBpcyB1c3VhbGx5IGEgcG9pbnRlciB0byBzb21lIGVu Y2xvc2luZyBkZXZpY2UsIGJ1dCB0aGlzDQorICogY29kZSBkb2Vzbid0IGNhcmU7IHlvdSBzaG91 bGQgbmV2ZXIgYmUgZGVyZWZlcmVuY2luZyBpdC4NCisgKg0KKyAqIFRoaXMgaXMgYSBiaXQgb2Yg YSBrbHVkZ2UgdGhhdCBpcyBjdXJyZW50bHkgdXNlZCBvbmx5IGJ5IHRoZSBQUFMNCisgKiBzZXJp YWwgbGluZSBkaXNjaXBsaW5lLiAgSXQgbWF5IG5lZWQgdG8gYmUgdHdlYWtlZCB3aGVuIGEgc2Vj b25kIHVzZXINCisgKiBpcyBmb3VuZC4NCisgKg0KKyAqIFRoZXJlIGlzIG5vIGZ1bmN0aW9uIGlu dGVyZmFjZSBmb3Igc2V0dGluZyB0aGUgbG9va3VwX2Nvb2tpZSBmaWVsZC4NCisgKiBJdCdzIGlu aXRpYWxpemVkIHRvIE5VTEwgd2hlbiB0aGUgcHBzIGRldmljZSBpcyBjcmVhdGVkLCBhbmQgaWYg YQ0KKyAqIGNsaWVudCB3YW50cyB0byB1c2UgaXQsIGp1c3QgZmlsbCBpdCBpbiBhZnRlcndhcmQu DQorICoNCisgKiBUaGUgY29va2llIGlzIGF1dG9tYXRpY2FsbHkgc2V0IHRvIE5VTEwgaW4gcHBz X3VucmVnaXN0ZXJfc291cmNlKCkNCisgKiBzbyB0aGF0IGl0IHdpbGwgbm90IGJlIHVzZWQgYWdh aW4sIGV2ZW4gaWYgdGhlIHBwcyBkZXZpY2UgY2Fubm90DQorICogYmUgcmVtb3ZlZCBmcm9tIHRo ZSBpZHIgZHVlIHRvIHBlbmRpbmcgcmVmZXJlbmNlcyBob2xkaW5nIHRoZSBtaW5vcg0KKyAqIG51 bWJlciBpbiB1c2UuDQorICovDQorc3RydWN0IHBwc19kZXZpY2UgKnBwc19sb29rdXBfZGV2KHZv aWQgY29uc3QgKmNvb2tpZSkNCit7DQorCXN0cnVjdCBwcHNfZGV2aWNlICpwcHM7DQorCXVuc2ln bmVkIGlkOw0KKw0KKwlyY3VfcmVhZF9sb2NrKCk7DQorCWlkcl9mb3JfZWFjaF9lbnRyeSgmcHBz X2lkciwgcHBzLCBpZCkNCisJCWlmIChjb29raWUgPT0gcHBzLT5sb29rdXBfY29va2llKQ0KKwkJ CWJyZWFrOw0KKwlyY3VfcmVhZF91bmxvY2soKTsNCisJcmV0dXJuIHBwczsNCit9DQorRVhQT1JU X1NZTUJPTChwcHNfbG9va3VwX2Rldik7DQorDQorLyoNCiAgKiBNb2R1bGUgc3R1ZmYNCiAgKi8N CiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcGwwMzEuYyBiL2RyaXZlcnMvcnRjL3J0 Yy1wbDAzMS5jDQppbmRleCA3MzgxNmQ4Li4xZjk0MDczIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9y dGMvcnRjLXBsMDMxLmMNCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMS5jDQpAQCAtMzQ0LDcg KzM0NCw5IEBAIHN0YXRpYyBpbnQgcGwwMzFfcHJvYmUoc3RydWN0IGFtYmFfZGV2aWNlICphZGV2 LCBjb25zdCBzdHJ1Y3QgYW1iYV9pZCAqaWQpDQogCS8qIEVuYWJsZSB0aGUgY2xvY2t3YXRjaCBv biBTVCBWYXJpYW50cyAqLw0KIAlpZiAobGRhdGEtPmh3X2Rlc2lnbmVyID09IEFNQkFfVkVORE9S X1NUKQ0KIAkJZGF0YSB8PSBSVENfQ1JfQ1dFTjsNCi0Jd3JpdGVsKGRhdGEgfCBSVENfQ1JfRU4s IGxkYXRhLT5iYXNlICsgUlRDX0NSKTsNCisJZWxzZQ0KKwkJZGF0YSB8PSBSVENfQ1JfRU47DQor CXdyaXRlbChkYXRhLCBsZGF0YS0+YmFzZSArIFJUQ19DUik7DQogDQogCS8qDQogCSAqIE9uIFNU IFBMMDMxIHZhcmlhbnRzLCB0aGUgUlRDIHJlc2V0IHZhbHVlIGRvZXMgbm90IHByb3ZpZGUgY29y cmVjdA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9rdm0va3ZtX3ZpcnRpby5jIGIvZHJpdmVy cy9zMzkwL2t2bS9rdm1fdmlydGlvLmMNCmluZGV4IDk0ZjQ5ZmYuLmIxZThmNmMgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3MzOTAva3ZtL2t2bV92aXJ0aW8uYw0KKysrIGIvZHJpdmVycy9zMzkwL2t2 bS9rdm1fdmlydGlvLmMNCkBAIC00MTQsNiArNDE0LDI2IEBAIHN0YXRpYyB2b2lkIGt2bV9leHRp bnRfaGFuZGxlcih1bnNpZ25lZCBpbnQgZXh0X2ludF9jb2RlLA0KIH0NCiANCiAvKg0KKyAqIEZv ciBzMzkwLXZpcnRpbywgd2UgZXhwZWN0IGEgcGFnZSBhYm92ZSBtYWluIHN0b3JhZ2UgY29udGFp bmluZw0KKyAqIHRoZSB2aXJ0aW8gY29uZmlndXJhdGlvbi4gVHJ5IHRvIGFjdHVhbGx5IGxvYWQg ZnJvbSB0aGlzIGFyZWENCisgKiBpbiBvcmRlciB0byBmaWd1cmUgb3V0IGlmIHRoZSBob3N0IHBy b3ZpZGVzIHRoaXMgcGFnZS4NCisgKi8NCitzdGF0aWMgaW50IF9faW5pdCB0ZXN0X2RldmljZXNf c3VwcG9ydCh1bnNpZ25lZCBsb25nIGFkZHIpDQorew0KKwlpbnQgcmV0ID0gLUVJTzsNCisNCisJ YXNtIHZvbGF0aWxlKA0KKwkJIjA6CWx1cmEJMCwlMVxuIg0KKwkJIjE6CXhncgklMCwlMFxuIg0K KwkJIjI6XG4iDQorCQlFWF9UQUJMRSgwYiwyYikNCisJCUVYX1RBQkxFKDFiLDJiKQ0KKwkJOiAi K2QiIChyZXQpDQorCQk6ICJhIiAoYWRkcikNCisJCTogIjAiLCAiY2MiKTsNCisJcmV0dXJuIHJl dDsNCit9DQorLyoNCiAgKiBJbml0IGZ1bmN0aW9uIGZvciB2aXJ0aW8NCiAgKiBkZXZpY2VzIGFy ZSBpbiBhIHNpbmdsZSBwYWdlIGFib3ZlIHRvcCBvZiAibm9ybWFsIiBtZW0NCiAgKi8NCkBAIC00 MjQsMjEgKzQ0NCwyMyBAQCBzdGF0aWMgaW50IF9faW5pdCBrdm1fZGV2aWNlc19pbml0KHZvaWQp DQogCWlmICghTUFDSElORV9JU19LVk0pDQogCQlyZXR1cm4gLUVOT0RFVjsNCiANCisJaWYgKHRl c3RfZGV2aWNlc19zdXBwb3J0KHJlYWxfbWVtb3J5X3NpemUpIDwgMCkNCisJCXJldHVybiAtRU5P REVWOw0KKw0KKwlyYyA9IHZtZW1fYWRkX21hcHBpbmcocmVhbF9tZW1vcnlfc2l6ZSwgUEFHRV9T SVpFKTsNCisJaWYgKHJjKQ0KKwkJcmV0dXJuIHJjOw0KKw0KKwlrdm1fZGV2aWNlcyA9ICh2b2lk ICopIHJlYWxfbWVtb3J5X3NpemU7DQorDQogCWt2bV9yb290ID0gcm9vdF9kZXZpY2VfcmVnaXN0 ZXIoImt2bV9zMzkwIik7DQogCWlmIChJU19FUlIoa3ZtX3Jvb3QpKSB7DQogCQlyYyA9IFBUUl9F UlIoa3ZtX3Jvb3QpOw0KIAkJcHJpbnRrKEtFUk5fRVJSICJDb3VsZCBub3QgcmVnaXN0ZXIga3Zt X3MzOTAgcm9vdCBkZXZpY2UiKTsNCisJCXZtZW1fcmVtb3ZlX21hcHBpbmcocmVhbF9tZW1vcnlf c2l6ZSwgUEFHRV9TSVpFKTsNCiAJCXJldHVybiByYzsNCiAJfQ0KIA0KLQlyYyA9IHZtZW1fYWRk X21hcHBpbmcocmVhbF9tZW1vcnlfc2l6ZSwgUEFHRV9TSVpFKTsNCi0JaWYgKHJjKSB7DQotCQly b290X2RldmljZV91bnJlZ2lzdGVyKGt2bV9yb290KTsNCi0JCXJldHVybiByYzsNCi0JfQ0KLQ0K LQlrdm1fZGV2aWNlcyA9ICh2b2lkICopIHJlYWxfbWVtb3J5X3NpemU7DQotDQogCUlOSVRfV09S SygmaG90cGx1Z193b3JrLCBob3RwbHVnX2RldmljZXMpOw0KIA0KIAlzZXJ2aWNlX3N1YmNsYXNz X2lycV9yZWdpc3RlcigpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkvY29t ZWRpX2ZvcHMuYyBiL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkvY29tZWRpX2ZvcHMuYw0KaW5kZXgg YWI5ZjVlZC4uYTAyM2Y1MiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkvY29t ZWRpX2ZvcHMuYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9jb21lZGlfZm9wcy5jDQpA QCAtMTM2LDYgKzEzNiwxMSBAQCBzdGF0aWMgbG9uZyBjb21lZGlfdW5sb2NrZWRfaW9jdGwoc3Ry dWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsDQogCS8qIERldmljZSBjb25maWcgaXMg c3BlY2lhbCwgYmVjYXVzZSBpdCBtdXN0IHdvcmsgb24NCiAJICogYW4gdW5jb25maWd1cmVkIGRl dmljZS4gKi8NCiAJaWYgKGNtZCA9PSBDT01FRElfREVWQ09ORklHKSB7DQorCQlpZiAobWlub3Ig Pj0gQ09NRURJX05VTV9CT0FSRF9NSU5PUlMpIHsNCisJCQkvKiBEZXZpY2UgY29uZmlnIG5vdCBh cHByb3ByaWF0ZSBvbiBub24tYm9hcmQgbWlub3JzLiAqLw0KKwkJCXJjID0gLUVOT1RUWTsNCisJ CQlnb3RvIGRvbmU7DQorCQl9DQogCQlyYyA9IGRvX2RldmNvbmZpZ19pb2N0bChkZXYsDQogCQkJ CQkoc3RydWN0IGNvbWVkaV9kZXZjb25maWcgX191c2VyICopYXJnKTsNCiAJCWdvdG8gZG9uZTsN CkBAIC0xNTY5LDcgKzE1NzQsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGNvbWVkaV9wb2xsKHN0 cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICogd2FpdCkNCiANCiAJbWFzayA9IDA7DQogCXJl YWRfc3ViZGV2ID0gY29tZWRpX2dldF9yZWFkX3N1YmRldmljZShkZXZfZmlsZV9pbmZvKTsNCi0J aWYgKHJlYWRfc3ViZGV2KSB7DQorCWlmIChyZWFkX3N1YmRldiAmJiByZWFkX3N1YmRldi0+YXN5 bmMpIHsNCiAJCXBvbGxfd2FpdChmaWxlLCAmcmVhZF9zdWJkZXYtPmFzeW5jLT53YWl0X2hlYWQs IHdhaXQpOw0KIAkJaWYgKCFyZWFkX3N1YmRldi0+YnVzeQ0KIAkJICAgIHx8IGNvbWVkaV9idWZf cmVhZF9uX2F2YWlsYWJsZShyZWFkX3N1YmRldi0+YXN5bmMpID4gMA0KQEAgLTE1NzksNyArMTU4 NCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgY29tZWRpX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUs IHBvbGxfdGFibGUgKiB3YWl0KQ0KIAkJfQ0KIAl9DQogCXdyaXRlX3N1YmRldiA9IGNvbWVkaV9n ZXRfd3JpdGVfc3ViZGV2aWNlKGRldl9maWxlX2luZm8pOw0KLQlpZiAod3JpdGVfc3ViZGV2KSB7 DQorCWlmICh3cml0ZV9zdWJkZXYgJiYgd3JpdGVfc3ViZGV2LT5hc3luYykgew0KIAkJcG9sbF93 YWl0KGZpbGUsICZ3cml0ZV9zdWJkZXYtPmFzeW5jLT53YWl0X2hlYWQsIHdhaXQpOw0KIAkJY29t ZWRpX2J1Zl93cml0ZV9hbGxvYyh3cml0ZV9zdWJkZXYtPmFzeW5jLA0KIAkJCQkgICAgICAgd3Jp dGVfc3ViZGV2LT5hc3luYy0+cHJlYWxsb2NfYnVmc3opOw0KQEAgLTE2MjEsNyArMTYyNiw3IEBA IHN0YXRpYyBzc2l6ZV90IGNvbWVkaV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hh ciBfX3VzZXIgKmJ1ZiwNCiAJfQ0KIA0KIAlzID0gY29tZWRpX2dldF93cml0ZV9zdWJkZXZpY2Uo ZGV2X2ZpbGVfaW5mbyk7DQotCWlmIChzID09IE5VTEwpIHsNCisJaWYgKHMgPT0gTlVMTCB8fCBz LT5hc3luYyA9PSBOVUxMKSB7DQogCQlyZXR2YWwgPSAtRUlPOw0KIAkJZ290byBkb25lOw0KIAl9 DQpAQCAtMTczMiw3ICsxNzM3LDcgQEAgc3RhdGljIHNzaXplX3QgY29tZWRpX3JlYWQoc3RydWN0 IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBuYnl0ZXMsDQogCX0NCiANCiAJ cyA9IGNvbWVkaV9nZXRfcmVhZF9zdWJkZXZpY2UoZGV2X2ZpbGVfaW5mbyk7DQotCWlmIChzID09 IE5VTEwpIHsNCisJaWYgKHMgPT0gTlVMTCB8fCBzLT5hc3luYyA9PSBOVUxMKSB7DQogCQlyZXR2 YWwgPSAtRUlPOw0KIAkJZ290byBkb25lOw0KIAl9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFn aW5nL2NvbWVkaS9kcml2ZXJzL25pX2xhYnBjLmMgYi9kcml2ZXJzL3N0YWdpbmcvY29tZWRpL2Ry aXZlcnMvbmlfbGFicGMuYw0KaW5kZXggNzIxYjJiZS4uMDUxN2EyMyAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvc3RhZ2luZy9jb21lZGkvZHJpdmVycy9uaV9sYWJwYy5jDQorKysgYi9kcml2ZXJzL3N0 YWdpbmcvY29tZWRpL2RyaXZlcnMvbmlfbGFicGMuYw0KQEAgLTEyNjQsNyArMTI2NCw5IEBAIHN0 YXRpYyBpbnQgbGFicGNfYWlfY21kKHN0cnVjdCBjb21lZGlfZGV2aWNlICpkZXYsIHN0cnVjdCBj b21lZGlfc3ViZGV2aWNlICpzKQ0KIAllbHNlDQogCQljaGFubmVsID0gQ1JfQ0hBTihjbWQtPmNo YW5saXN0WzBdKTsNCiAJLyogbXVuZ2UgY2hhbm5lbCBiaXRzIGZvciBkaWZmZXJlbnRpYWwgLyBz Y2FuIGRpc2FibGVkIG1vZGUgKi8NCi0JaWYgKGxhYnBjX2FpX3NjYW5fbW9kZShjbWQpICE9IE1P REVfU0lOR0xFX0NIQU4gJiYgYXJlZiA9PSBBUkVGX0RJRkYpDQorCWlmICgobGFicGNfYWlfc2Nh bl9tb2RlKGNtZCkgPT0gTU9ERV9TSU5HTEVfQ0hBTiB8fA0KKwkgICAgIGxhYnBjX2FpX3NjYW5f bW9kZShjbWQpID09IE1PREVfU0lOR0xFX0NIQU5fSU5URVJWQUwpICYmDQorCSAgICBhcmVmID09 IEFSRUZfRElGRikNCiAJCWNoYW5uZWwgKj0gMjsNCiAJZGV2cHJpdi0+Y29tbWFuZDFfYml0cyB8 PSBBRENfQ0hBTl9CSVRTKGNoYW5uZWwpOw0KIAlkZXZwcml2LT5jb21tYW5kMV9iaXRzIHw9IHRo aXNib2FyZC0+YWlfcmFuZ2VfY29kZVtyYW5nZV07DQpAQCAtMTI4MCwyMSArMTI4Miw2IEBAIHN0 YXRpYyBpbnQgbGFicGNfYWlfY21kKHN0cnVjdCBjb21lZGlfZGV2aWNlICpkZXYsIHN0cnVjdCBj b21lZGlfc3ViZGV2aWNlICpzKQ0KIAkJZGV2cHJpdi0+d3JpdGVfYnl0ZShkZXZwcml2LT5jb21t YW5kMV9iaXRzLA0KIAkJCQkgICAgZGV2LT5pb2Jhc2UgKyBDT01NQU5EMV9SRUcpOw0KIAl9DQot CS8qICBzZXR1cCBhbnkgZXh0ZXJuYWwgdHJpZ2dlcmluZy9wYWNpbmcgKGNvbW1hbmQ0IHJlZ2lz dGVyKSAqLw0KLQlkZXZwcml2LT5jb21tYW5kNF9iaXRzID0gMDsNCi0JaWYgKGNtZC0+Y29udmVy dF9zcmMgIT0gVFJJR19FWFQpDQotCQlkZXZwcml2LT5jb21tYW5kNF9iaXRzIHw9IEVYVF9DT05W RVJUX0RJU0FCTEVfQklUOw0KLQkvKiBYWFggc2hvdWxkIGRpc2NhcmQgZmlyc3Qgc2NhbiB3aGVu IHVzaW5nIGludGVydmFsIHNjYW5uaW5nDQotCSAqIHNpbmNlIG1hbnVhbCBzYXlzIGl0IGlzIG5v dCBzeW5jZWQgd2l0aCBzY2FuIGNsb2NrICovDQotCWlmIChsYWJwY191c2VfY29udGludW91c19t b2RlKGNtZCkgPT0gMCkgew0KLQkJZGV2cHJpdi0+Y29tbWFuZDRfYml0cyB8PSBJTlRFUlZBTF9T Q0FOX0VOX0JJVDsNCi0JCWlmIChjbWQtPnNjYW5fYmVnaW5fc3JjID09IFRSSUdfRVhUKQ0KLQkJ CWRldnByaXYtPmNvbW1hbmQ0X2JpdHMgfD0gRVhUX1NDQU5fRU5fQklUOw0KLQl9DQotCS8qICBz aW5nbGUtZW5kZWQvZGlmZmVyZW50aWFsICovDQotCWlmIChhcmVmID09IEFSRUZfRElGRikNCi0J CWRldnByaXYtPmNvbW1hbmQ0X2JpdHMgfD0gQURDX0RJRkZfQklUOw0KLQlkZXZwcml2LT53cml0 ZV9ieXRlKGRldnByaXYtPmNvbW1hbmQ0X2JpdHMsIGRldi0+aW9iYXNlICsgQ09NTUFORDRfUkVH KTsNCiANCiAJZGV2cHJpdi0+d3JpdGVfYnl0ZShjbWQtPmNoYW5saXN0X2xlbiwNCiAJCQkgICAg ZGV2LT5pb2Jhc2UgKyBJTlRFUlZBTF9DT1VOVF9SRUcpOw0KQEAgLTEzNzQsNiArMTM2MSwyMiBA QCBzdGF0aWMgaW50IGxhYnBjX2FpX2NtZChzdHJ1Y3QgY29tZWRpX2RldmljZSAqZGV2LCBzdHJ1 Y3QgY29tZWRpX3N1YmRldmljZSAqcykNCiAJCWRldnByaXYtPmNvbW1hbmQzX2JpdHMgJj0gfkFE Q19GTkVfSU5UUl9FTl9CSVQ7DQogCWRldnByaXYtPndyaXRlX2J5dGUoZGV2cHJpdi0+Y29tbWFu ZDNfYml0cywgZGV2LT5pb2Jhc2UgKyBDT01NQU5EM19SRUcpOw0KIA0KKwkvKiAgc2V0dXAgYW55 IGV4dGVybmFsIHRyaWdnZXJpbmcvcGFjaW5nIChjb21tYW5kNCByZWdpc3RlcikgKi8NCisJZGV2 cHJpdi0+Y29tbWFuZDRfYml0cyA9IDA7DQorCWlmIChjbWQtPmNvbnZlcnRfc3JjICE9IFRSSUdf RVhUKQ0KKwkJZGV2cHJpdi0+Y29tbWFuZDRfYml0cyB8PSBFWFRfQ09OVkVSVF9ESVNBQkxFX0JJ VDsNCisJLyogWFhYIHNob3VsZCBkaXNjYXJkIGZpcnN0IHNjYW4gd2hlbiB1c2luZyBpbnRlcnZh bCBzY2FubmluZw0KKwkgKiBzaW5jZSBtYW51YWwgc2F5cyBpdCBpcyBub3Qgc3luY2VkIHdpdGgg c2NhbiBjbG9jayAqLw0KKwlpZiAobGFicGNfdXNlX2NvbnRpbnVvdXNfbW9kZShjbWQpID09IDAp IHsNCisJCWRldnByaXYtPmNvbW1hbmQ0X2JpdHMgfD0gSU5URVJWQUxfU0NBTl9FTl9CSVQ7DQor CQlpZiAoY21kLT5zY2FuX2JlZ2luX3NyYyA9PSBUUklHX0VYVCkNCisJCQlkZXZwcml2LT5jb21t YW5kNF9iaXRzIHw9IEVYVF9TQ0FOX0VOX0JJVDsNCisJfQ0KKwkvKiAgc2luZ2xlLWVuZGVkL2Rp ZmZlcmVudGlhbCAqLw0KKwlpZiAoYXJlZiA9PSBBUkVGX0RJRkYpDQorCQlkZXZwcml2LT5jb21t YW5kNF9iaXRzIHw9IEFEQ19ESUZGX0JJVDsNCisJZGV2cHJpdi0+d3JpdGVfYnl0ZShkZXZwcml2 LT5jb21tYW5kNF9iaXRzLCBkZXYtPmlvYmFzZSArIENPTU1BTkQ0X1JFRyk7DQorDQogCS8qICBz dGFydHVwIGFjcXVpc2l0aW9uICovDQogDQogCS8qICBjb21tYW5kMiByZWcgKi8NCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3N0YWdpbmcvc3BlYWt1cC9zcGVha3VwX3NvZnQuYyBiL2RyaXZlcnMvc3Rh Z2luZy9zcGVha3VwL3NwZWFrdXBfc29mdC5jDQppbmRleCBiNTEzMGM4Li5lMmY1YzgxIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3NwZWFrdXAvc3BlYWt1cF9zb2Z0LmMNCisrKyBiL2Ry aXZlcnMvc3RhZ2luZy9zcGVha3VwL3NwZWFrdXBfc29mdC5jDQpAQCAtNDYsNyArNDYsNyBAQCBz dGF0aWMgaW50IG1pc2NfcmVnaXN0ZXJlZDsNCiBzdGF0aWMgc3RydWN0IHZhcl90IHZhcnNbXSA9 IHsNCiAJeyBDQVBTX1NUQVJULCAudS5zID0geyJceDAxKzNwIiB9IH0sDQogCXsgQ0FQU19TVE9Q LCAudS5zID0geyJceDAxLTNwIiB9IH0sDQotCXsgUkFURSwgLnUubiA9IHsiXHgwMSVkcyIsIDUs IDAsIDksIDAsIDAsIE5VTEwgfSB9LA0KKwl7IFJBVEUsIC51Lm4gPSB7Ilx4MDElZHMiLCAyLCAw LCA5LCAwLCAwLCBOVUxMIH0gfSwNCiAJeyBQSVRDSCwgLnUubiA9IHsiXHgwMSVkcCIsIDUsIDAs IDksIDAsIDAsIE5VTEwgfSB9LA0KIAl7IFZPTCwgLnUubiA9IHsiXHgwMSVkdiIsIDUsIDAsIDks IDAsIDAsIE5VTEwgfSB9LA0KIAl7IFRPTkUsIC51Lm4gPSB7Ilx4MDElZHgiLCAxLCAwLCAyLCAw LCAwLCBOVUxMIH0gfSwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvenJhbS96cmFtX2Ry di5jIGIvZHJpdmVycy9zdGFnaW5nL3pyYW0venJhbV9kcnYuYw0KaW5kZXggMDlkZTk5Zi4uMjU5 NGEzMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy96cmFtL3pyYW1fZHJ2LmMNCisrKyBi L2RyaXZlcnMvc3RhZ2luZy96cmFtL3pyYW1fZHJ2LmMNCkBAIC0yNDIsNyArMjQyLDcgQEAgc3Rh dGljIGludCB6cmFtX2J2ZWNfcmVhZChzdHJ1Y3QgenJhbSAqenJhbSwgc3RydWN0IGJpb192ZWMg KmJ2ZWMsDQogDQogCWlmIChpc19wYXJ0aWFsX2lvKGJ2ZWMpKSB7DQogCQkvKiBVc2UgIGEgdGVt cG9yYXJ5IGJ1ZmZlciB0byBkZWNvbXByZXNzIHRoZSBwYWdlICovDQotCQl1bmNtZW0gPSBrbWFs bG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5FTCk7DQorCQl1bmNtZW0gPSBrbWFsbG9jKFBBR0VfU0la RSwgR0ZQX05PSU8pOw0KIAkJaWYgKCF1bmNtZW0pIHsNCiAJCQlwcl9pbmZvKCJFcnJvciBhbGxv Y2F0aW5nIHRlbXAgbWVtb3J5IVxuIik7DQogCQkJcmV0dXJuIC1FTk9NRU07DQpAQCAtMzM4LDcg KzMzOCw3IEBAIHN0YXRpYyBpbnQgenJhbV9idmVjX3dyaXRlKHN0cnVjdCB6cmFtICp6cmFtLCBz dHJ1Y3QgYmlvX3ZlYyAqYnZlYywgdTMyIGluZGV4LA0KIAkJICogVGhpcyBpcyBhIHBhcnRpYWwg SU8uIFdlIG5lZWQgdG8gcmVhZCB0aGUgZnVsbCBwYWdlDQogCQkgKiBiZWZvcmUgdG8gd3JpdGUg dGhlIGNoYW5nZXMuDQogCQkgKi8NCi0JCXVuY21lbSA9IGttYWxsb2MoUEFHRV9TSVpFLCBHRlBf S0VSTkVMKTsNCisJCXVuY21lbSA9IGttYWxsb2MoUEFHRV9TSVpFLCBHRlBfTk9JTyk7DQogCQlp ZiAoIXVuY21lbSkgew0KIAkJCXByX2luZm8oIkVycm9yIGFsbG9jYXRpbmcgdGVtcCBtZW1vcnkh XG4iKTsNCiAJCQlyZXQgPSAtRU5PTUVNOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFyZ2V0L3Rh cmdldF9jb3JlX2RldmljZS5jIGIvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfZGV2aWNlLmMN CmluZGV4IGEwMTQzYTAuLjVkZWYzNTkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3RhcmdldC90YXJn ZXRfY29yZV9kZXZpY2UuYw0KKysrIGIvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfZGV2aWNl LmMNCkBAIC0xNDM5LDI0ICsxNDM5LDE4IEBAIHN0YXRpYyBzdHJ1Y3Qgc2VfbHVuICpjb3JlX2Rl dl9nZXRfbHVuKHN0cnVjdCBzZV9wb3J0YWxfZ3JvdXAgKnRwZywgdTMyIHVucGFja2VkDQogDQog c3RydWN0IHNlX2x1bl9hY2wgKmNvcmVfZGV2X2luaXRfaW5pdGlhdG9yX25vZGVfbHVuX2FjbCgN CiAJc3RydWN0IHNlX3BvcnRhbF9ncm91cCAqdHBnLA0KKwlzdHJ1Y3Qgc2Vfbm9kZV9hY2wgKm5h Y2wsDQogCXUzMiBtYXBwZWRfbHVuLA0KLQljaGFyICppbml0aWF0b3JuYW1lLA0KIAlpbnQgKnJl dCkNCiB7DQogCXN0cnVjdCBzZV9sdW5fYWNsICpsYWNsOw0KLQlzdHJ1Y3Qgc2Vfbm9kZV9hY2wg Km5hY2w7DQogDQotCWlmIChzdHJsZW4oaW5pdGlhdG9ybmFtZSkgPj0gVFJBTlNQT1JUX0lRTl9M RU4pIHsNCisJaWYgKHN0cmxlbihuYWNsLT5pbml0aWF0b3JuYW1lKSA+PSBUUkFOU1BPUlRfSVFO X0xFTikgew0KIAkJcHJfZXJyKCIlcyBJbml0aWF0b3JOYW1lIGV4Y2VlZHMgbWF4aW11bSBzaXpl LlxuIiwNCiAJCQl0cGctPnNlX3RwZ190Zm8tPmdldF9mYWJyaWNfbmFtZSgpKTsNCiAJCSpyZXQg PSAtRU9WRVJGTE9XOw0KIAkJcmV0dXJuIE5VTEw7DQogCX0NCi0JbmFjbCA9IGNvcmVfdHBnX2dl dF9pbml0aWF0b3Jfbm9kZV9hY2wodHBnLCBpbml0aWF0b3JuYW1lKTsNCi0JaWYgKCFuYWNsKSB7 DQotCQkqcmV0ID0gLUVJTlZBTDsNCi0JCXJldHVybiBOVUxMOw0KLQl9DQogCWxhY2wgPSBremFs bG9jKHNpemVvZihzdHJ1Y3Qgc2VfbHVuX2FjbCksIEdGUF9LRVJORUwpOw0KIAlpZiAoIWxhY2wp IHsNCiAJCXByX2VycigiVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3Igc3RydWN0IHNlX2x1 bl9hY2wuXG4iKTsNCkBAIC0xNDY3LDcgKzE0NjEsOCBAQCBzdHJ1Y3Qgc2VfbHVuX2FjbCAqY29y ZV9kZXZfaW5pdF9pbml0aWF0b3Jfbm9kZV9sdW5fYWNsKA0KIAlJTklUX0xJU1RfSEVBRCgmbGFj bC0+bGFjbF9saXN0KTsNCiAJbGFjbC0+bWFwcGVkX2x1biA9IG1hcHBlZF9sdW47DQogCWxhY2wt PnNlX2x1bl9uYWNsID0gbmFjbDsNCi0Jc25wcmludGYobGFjbC0+aW5pdGlhdG9ybmFtZSwgVFJB TlNQT1JUX0lRTl9MRU4sICIlcyIsIGluaXRpYXRvcm5hbWUpOw0KKwlzbnByaW50ZihsYWNsLT5p bml0aWF0b3JuYW1lLCBUUkFOU1BPUlRfSVFOX0xFTiwgIiVzIiwNCisJCSBuYWNsLT5pbml0aWF0 b3JuYW1lKTsNCiANCiAJcmV0dXJuIGxhY2w7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFy Z2V0L3RhcmdldF9jb3JlX2ZhYnJpY19jb25maWdmcy5jIGIvZHJpdmVycy90YXJnZXQvdGFyZ2V0 X2NvcmVfZmFicmljX2NvbmZpZ2ZzLmMNCmluZGV4IDA5YjZmODcuLjYwMDA5YmQgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV9mYWJyaWNfY29uZmlnZnMuYw0KKysrIGIv ZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfZmFicmljX2NvbmZpZ2ZzLmMNCkBAIC0zNTQsOSAr MzU0LDE3IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX2dyb3VwICp0YXJnZXRfZmFicmljX21ha2Vf bWFwcGVkbHVuKA0KIAkJcmV0ID0gLUVJTlZBTDsNCiAJCWdvdG8gb3V0Ow0KIAl9DQorCWlmICht YXBwZWRfbHVuID4gKFRSQU5TUE9SVF9NQVhfTFVOU19QRVJfVFBHLTEpKSB7DQorCQlwcl9lcnIo Ik1hcHBlZCBMVU46ICVsdSBleGNlZWRzIFRSQU5TUE9SVF9NQVhfTFVOU19QRVJfVFBHIg0KKwkJ CSItMTogJXUgZm9yIFRhcmdldCBQb3J0YWwgR3JvdXA6ICV1XG4iLCBtYXBwZWRfbHVuLA0KKwkJ CVRSQU5TUE9SVF9NQVhfTFVOU19QRVJfVFBHLTEsDQorCQkJc2VfdHBnLT5zZV90cGdfdGZvLT50 cGdfZ2V0X3RhZyhzZV90cGcpKTsNCisJCXJldCA9IC1FSU5WQUw7DQorCQlnb3RvIG91dDsNCisJ fQ0KIA0KLQlsYWNsID0gY29yZV9kZXZfaW5pdF9pbml0aWF0b3Jfbm9kZV9sdW5fYWNsKHNlX3Rw ZywgbWFwcGVkX2x1biwNCi0JCQljb25maWdfaXRlbV9uYW1lKGFjbF9jaSksICZyZXQpOw0KKwls YWNsID0gY29yZV9kZXZfaW5pdF9pbml0aWF0b3Jfbm9kZV9sdW5fYWNsKHNlX3RwZywgc2VfbmFj bCwNCisJCQltYXBwZWRfbHVuLCAmcmV0KTsNCiAJaWYgKCFsYWNsKSB7DQogCQlyZXQgPSAtRUlO VkFMOw0KIAkJZ290byBvdXQ7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2Nv cmVfdHBnLmMgYi9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV90cGcuYw0KaW5kZXggZDkxZmU0 NC4uZDA0OGUzMyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX3RwZy5j DQorKysgYi9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV90cGcuYw0KQEAgLTExNywxNiArMTE3 LDEwIEBAIHN0cnVjdCBzZV9ub2RlX2FjbCAqY29yZV90cGdfZ2V0X2luaXRpYXRvcl9ub2RlX2Fj bCgNCiAJc3RydWN0IHNlX25vZGVfYWNsICphY2w7DQogDQogCXNwaW5fbG9ja19pcnEoJnRwZy0+ YWNsX25vZGVfbG9jayk7DQotCWxpc3RfZm9yX2VhY2hfZW50cnkoYWNsLCAmdHBnLT5hY2xfbm9k ZV9saXN0LCBhY2xfbGlzdCkgew0KLQkJaWYgKCFzdHJjbXAoYWNsLT5pbml0aWF0b3JuYW1lLCBp bml0aWF0b3JuYW1lKSAmJg0KLQkJICAgICFhY2wtPmR5bmFtaWNfbm9kZV9hY2wpIHsNCi0JCQlz cGluX3VubG9ja19pcnEoJnRwZy0+YWNsX25vZGVfbG9jayk7DQotCQkJcmV0dXJuIGFjbDsNCi0J CX0NCi0JfQ0KKwlhY2wgPSBfX2NvcmVfdHBnX2dldF9pbml0aWF0b3Jfbm9kZV9hY2wodHBnLCBp bml0aWF0b3JuYW1lKTsNCiAJc3Bpbl91bmxvY2tfaXJxKCZ0cGctPmFjbF9ub2RlX2xvY2spOw0K IA0KLQlyZXR1cm4gTlVMTDsNCisJcmV0dXJuIGFjbDsNCiB9DQogDQogLyoJY29yZV90cGdfYWRk X25vZGVfdG9fZGV2cygpOg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLmMg Yi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC5jDQppbmRleCA5MGRhZDE3Li42NzQ4NTY4IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAuYw0KKysrIGIvZHJpdmVycy90dHkvc2Vy aWFsLzgyNTAuYw0KQEAgLTI2OTUsNyArMjY5NSw3IEBAIHNlcmlhbDgyNTBfdmVyaWZ5X3BvcnQo c3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgc3RydWN0IHNlcmlhbF9zdHJ1Y3QgKnNlcikNCiAJaWYg KHNlci0+aXJxID49IG5yX2lycXMgfHwgc2VyLT5pcnEgPCAwIHx8DQogCSAgICBzZXItPmJhdWRf YmFzZSA8IDk2MDAgfHwgc2VyLT50eXBlIDwgUE9SVF9VTktOT1dOIHx8DQogCSAgICBzZXItPnR5 cGUgPj0gQVJSQVlfU0laRSh1YXJ0X2NvbmZpZykgfHwgc2VyLT50eXBlID09IFBPUlRfQ0lSUlVT IHx8DQotCSAgICBzZXItPnR5cGUgPT0gUE9SVF9TVEFSVEVDSCkNCisJICAgIHNlci0+dHlwZSA9 PSBQT1JUX1NUQVJURUNIIHx8IHVhcnRfY29uZmlnW3Nlci0+dHlwZV0ubmFtZSA9PSBOVUxMKQ0K IAkJcmV0dXJuIC1FSU5WQUw7DQogCXJldHVybiAwOw0KIH0NCkBAIC0yNzA1LDcgKzI3MDUsNyBA QCBzZXJpYWw4MjUwX3R5cGUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkNCiB7DQogCWludCB0eXBl ID0gcG9ydC0+dHlwZTsNCiANCi0JaWYgKHR5cGUgPj0gQVJSQVlfU0laRSh1YXJ0X2NvbmZpZykp DQorCWlmICh0eXBlID49IEFSUkFZX1NJWkUodWFydF9jb25maWcpIHx8IHVhcnRfY29uZmlnW3R5 cGVdLm5hbWUgPT0gTlVMTCkNCiAJCXR5cGUgPSAwOw0KIAlyZXR1cm4gdWFydF9jb25maWdbdHlw ZV0ubmFtZTsNCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvdHR5X2lvY3RsLmMgYi9kcml2 ZXJzL3R0eS90dHlfaW9jdGwuYw0KaW5kZXggOTMxNGQ5My4uOTM3ZjkyNyAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvdHR5L3R0eV9pb2N0bC5jDQorKysgYi9kcml2ZXJzL3R0eS90dHlfaW9jdGwuYw0K QEAgLTYxOCw3ICs2MTgsNyBAQCBzdGF0aWMgaW50IHNldF90ZXJtaW9zKHN0cnVjdCB0dHlfc3Ry dWN0ICp0dHksIHZvaWQgX191c2VyICphcmcsIGludCBvcHQpDQogCWlmIChvcHQgJiBURVJNSU9T X1dBSVQpIHsNCiAJCXR0eV93YWl0X3VudGlsX3NlbnQodHR5LCAwKTsNCiAJCWlmIChzaWduYWxf cGVuZGluZyhjdXJyZW50KSkNCi0JCQlyZXR1cm4gLUVJTlRSOw0KKwkJCXJldHVybiAtRVJFU1RB UlRTWVM7DQogCX0NCiANCiAJdHR5X3NldF90ZXJtaW9zKHR0eSwgJnRtcF90ZXJtaW9zKTsNCkBA IC02ODUsNyArNjg1LDcgQEAgc3RhdGljIGludCBzZXRfdGVybWlveChzdHJ1Y3QgdHR5X3N0cnVj dCAqdHR5LCB2b2lkIF9fdXNlciAqYXJnLCBpbnQgb3B0KQ0KIAlpZiAob3B0ICYgVEVSTUlPU19X QUlUKSB7DQogCQl0dHlfd2FpdF91bnRpbF9zZW50KHR0eSwgMCk7DQogCQlpZiAoc2lnbmFsX3Bl bmRpbmcoY3VycmVudCkpDQotCQkJcmV0dXJuIC1FSU5UUjsNCisJCQlyZXR1cm4gLUVSRVNUQVJU U1lTOw0KIAl9DQogDQogCW11dGV4X2xvY2soJnR0eS0+dGVybWlvc19tdXRleCk7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy90dHkvdnQvdnQuYyBiL2RyaXZlcnMvdHR5L3Z0L3Z0LmMNCmluZGV4IGU3 MTY4MzkuLjYzMmRmNTQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3R0eS92dC92dC5jDQorKysgYi9k cml2ZXJzL3R0eS92dC92dC5jDQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBzYXZlX3NjcmVlbihzdHJ1Y3QgdmNfZGF0YSAqdmMpDQogICoJUmVkcmF3aW5nIG9mIHNjcmVl bg0KICAqLw0KIA0KLXN0YXRpYyB2b2lkIGNsZWFyX2J1ZmZlcl9hdHRyaWJ1dGVzKHN0cnVjdCB2 Y19kYXRhICp2YykNCit2b2lkIGNsZWFyX2J1ZmZlcl9hdHRyaWJ1dGVzKHN0cnVjdCB2Y19kYXRh ICp2YykNCiB7DQogCXVuc2lnbmVkIHNob3J0ICpwID0gKHVuc2lnbmVkIHNob3J0ICopdmMtPnZj X29yaWdpbjsNCiAJaW50IGNvdW50ID0gdmMtPnZjX3NjcmVlbmJ1Zl9zaXplIC8gMjsNCkBAIC0z MDE2LDcgKzMwMTYsNyBAQCBpbnQgX19pbml0IHZ0eV9pbml0KGNvbnN0IHN0cnVjdCBmaWxlX29w ZXJhdGlvbnMgKmNvbnNvbGVfZm9wcykNCiANCiBzdGF0aWMgc3RydWN0IGNsYXNzICp2dGNvbnNv bGVfY2xhc3M7DQogDQotc3RhdGljIGludCBiaW5kX2Nvbl9kcml2ZXIoY29uc3Qgc3RydWN0IGNv bnN3ICpjc3csIGludCBmaXJzdCwgaW50IGxhc3QsDQorc3RhdGljIGludCBkb19iaW5kX2Nvbl9k cml2ZXIoY29uc3Qgc3RydWN0IGNvbnN3ICpjc3csIGludCBmaXJzdCwgaW50IGxhc3QsDQogCQkJ ICAgaW50IGRlZmx0KQ0KIHsNCiAJc3RydWN0IG1vZHVsZSAqb3duZXIgPSBjc3ctPm93bmVyOw0K QEAgLTMwMjcsNyArMzAyNyw3IEBAIHN0YXRpYyBpbnQgYmluZF9jb25fZHJpdmVyKGNvbnN0IHN0 cnVjdCBjb25zdyAqY3N3LCBpbnQgZmlyc3QsIGludCBsYXN0LA0KIAlpZiAoIXRyeV9tb2R1bGVf Z2V0KG93bmVyKSkNCiAJCXJldHVybiAtRU5PREVWOw0KIA0KLQljb25zb2xlX2xvY2soKTsNCisJ V0FSTl9DT05TT0xFX1VOTE9DS0VEKCk7DQogDQogCS8qIGNoZWNrIGlmIGRyaXZlciBpcyByZWdp c3RlcmVkICovDQogCWZvciAoaSA9IDA7IGkgPCBNQVhfTlJfQ09OX0RSSVZFUjsgaSsrKSB7DQpA QCAtMzExMiwxMSArMzExMiwyMiBAQCBzdGF0aWMgaW50IGJpbmRfY29uX2RyaXZlcihjb25zdCBz dHJ1Y3QgY29uc3cgKmNzdywgaW50IGZpcnN0LCBpbnQgbGFzdCwNCiANCiAJcmV0dmFsID0gMDsN CiBlcnI6DQotCWNvbnNvbGVfdW5sb2NrKCk7DQogCW1vZHVsZV9wdXQob3duZXIpOw0KIAlyZXR1 cm4gcmV0dmFsOw0KIH07DQogDQorDQorc3RhdGljIGludCBiaW5kX2Nvbl9kcml2ZXIoY29uc3Qg c3RydWN0IGNvbnN3ICpjc3csIGludCBmaXJzdCwgaW50IGxhc3QsDQorCQkJICAgaW50IGRlZmx0 KQ0KK3sNCisJaW50IHJldDsNCisNCisJY29uc29sZV9sb2NrKCk7DQorCXJldCA9IGRvX2JpbmRf Y29uX2RyaXZlcihjc3csIGZpcnN0LCBsYXN0LCBkZWZsdCk7DQorCWNvbnNvbGVfdW5sb2NrKCk7 DQorCXJldHVybiByZXQ7DQorfQ0KKw0KICNpZmRlZiBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5E SU5HDQogc3RhdGljIGludCBjb25faXNfZ3JhcGhpY3MoY29uc3Qgc3RydWN0IGNvbnN3ICpjc3cs IGludCBmaXJzdCwgaW50IGxhc3QpDQogew0KQEAgLTMxNTMsNiArMzE2NCwxOCBAQCBzdGF0aWMg aW50IGNvbl9pc19ncmFwaGljcyhjb25zdCBzdHJ1Y3QgY29uc3cgKmNzdywgaW50IGZpcnN0LCBp bnQgbGFzdCkNCiAgKi8NCiBpbnQgdW5iaW5kX2Nvbl9kcml2ZXIoY29uc3Qgc3RydWN0IGNvbnN3 ICpjc3csIGludCBmaXJzdCwgaW50IGxhc3QsIGludCBkZWZsdCkNCiB7DQorCWludCByZXR2YWw7 DQorDQorCWNvbnNvbGVfbG9jaygpOw0KKwlyZXR2YWwgPSBkb191bmJpbmRfY29uX2RyaXZlcihj c3csIGZpcnN0LCBsYXN0LCBkZWZsdCk7DQorCWNvbnNvbGVfdW5sb2NrKCk7DQorCXJldHVybiBy ZXR2YWw7DQorfQ0KK0VYUE9SVF9TWU1CT0wodW5iaW5kX2Nvbl9kcml2ZXIpOw0KKw0KKy8qIHVu bG9ja2VkIHZlcnNpb24gb2YgdW5iaW5kX2Nvbl9kcml2ZXIoKSAqLw0KK2ludCBkb191bmJpbmRf Y29uX2RyaXZlcihjb25zdCBzdHJ1Y3QgY29uc3cgKmNzdywgaW50IGZpcnN0LCBpbnQgbGFzdCwg aW50IGRlZmx0KQ0KK3sNCiAJc3RydWN0IG1vZHVsZSAqb3duZXIgPSBjc3ctPm93bmVyOw0KIAlj b25zdCBzdHJ1Y3QgY29uc3cgKmRlZmNzdyA9IE5VTEw7DQogCXN0cnVjdCBjb25fZHJpdmVyICpj b25fZHJpdmVyID0gTlVMTCwgKmNvbl9iYWNrID0gTlVMTDsNCkBAIC0zMTYxLDcgKzMxODQsNyBA QCBpbnQgdW5iaW5kX2Nvbl9kcml2ZXIoY29uc3Qgc3RydWN0IGNvbnN3ICpjc3csIGludCBmaXJz dCwgaW50IGxhc3QsIGludCBkZWZsdCkNCiAJaWYgKCF0cnlfbW9kdWxlX2dldChvd25lcikpDQog CQlyZXR1cm4gLUVOT0RFVjsNCiANCi0JY29uc29sZV9sb2NrKCk7DQorCVdBUk5fQ09OU09MRV9V TkxPQ0tFRCgpOw0KIA0KIAkvKiBjaGVjayBpZiBkcml2ZXIgaXMgcmVnaXN0ZXJlZCBhbmQgaWYg aXQgaXMgdW5iaW5kYWJsZSAqLw0KIAlmb3IgKGkgPSAwOyBpIDwgTUFYX05SX0NPTl9EUklWRVI7 IGkrKykgew0KQEAgLTMxNzQsMTAgKzMxOTcsOCBAQCBpbnQgdW5iaW5kX2Nvbl9kcml2ZXIoY29u c3Qgc3RydWN0IGNvbnN3ICpjc3csIGludCBmaXJzdCwgaW50IGxhc3QsIGludCBkZWZsdCkNCiAJ CX0NCiAJfQ0KIA0KLQlpZiAocmV0dmFsKSB7DQotCQljb25zb2xlX3VubG9jaygpOw0KKwlpZiAo cmV0dmFsKQ0KIAkJZ290byBlcnI7DQotCX0NCiANCiAJcmV0dmFsID0gLUVOT0RFVjsNCiANCkBA IC0zMTkzLDE1ICszMjE0LDExIEBAIGludCB1bmJpbmRfY29uX2RyaXZlcihjb25zdCBzdHJ1Y3Qg Y29uc3cgKmNzdywgaW50IGZpcnN0LCBpbnQgbGFzdCwgaW50IGRlZmx0KQ0KIAkJfQ0KIAl9DQog DQotCWlmIChyZXR2YWwpIHsNCi0JCWNvbnNvbGVfdW5sb2NrKCk7DQorCWlmIChyZXR2YWwpDQog CQlnb3RvIGVycjsNCi0JfQ0KIA0KLQlpZiAoIWNvbl9pc19ib3VuZChjc3cpKSB7DQotCQljb25z b2xlX3VubG9jaygpOw0KKwlpZiAoIWNvbl9pc19ib3VuZChjc3cpKQ0KIAkJZ290byBlcnI7DQot CX0NCiANCiAJZmlyc3QgPSBtYXgoZmlyc3QsIGNvbl9kcml2ZXItPmZpcnN0KTsNCiAJbGFzdCA9 IG1pbihsYXN0LCBjb25fZHJpdmVyLT5sYXN0KTsNCkBAIC0zMjI4LDE1ICszMjQ1LDE0IEBAIGlu dCB1bmJpbmRfY29uX2RyaXZlcihjb25zdCBzdHJ1Y3QgY29uc3cgKmNzdywgaW50IGZpcnN0LCBp bnQgbGFzdCwgaW50IGRlZmx0KQ0KIAlpZiAoIWNvbl9pc19ib3VuZChjc3cpKQ0KIAkJY29uX2Ry aXZlci0+ZmxhZyAmPSB+Q09OX0RSSVZFUl9GTEFHX0lOSVQ7DQogDQotCWNvbnNvbGVfdW5sb2Nr KCk7DQogCS8qIGlnbm9yZSByZXR1cm4gdmFsdWUsIGJpbmRpbmcgc2hvdWxkIG5vdCBmYWlsICov DQotCWJpbmRfY29uX2RyaXZlcihkZWZjc3csIGZpcnN0LCBsYXN0LCBkZWZsdCk7DQorCWRvX2Jp bmRfY29uX2RyaXZlcihkZWZjc3csIGZpcnN0LCBsYXN0LCBkZWZsdCk7DQogZXJyOg0KIAltb2R1 bGVfcHV0KG93bmVyKTsNCiAJcmV0dXJuIHJldHZhbDsNCiANCiB9DQotRVhQT1JUX1NZTUJPTCh1 bmJpbmRfY29uX2RyaXZlcik7DQorRVhQT1JUX1NZTUJPTF9HUEwoZG9fdW5iaW5kX2Nvbl9kcml2 ZXIpOw0KIA0KIHN0YXRpYyBpbnQgdnRfYmluZChzdHJ1Y3QgY29uX2RyaXZlciAqY29uKQ0KIHsN CkBAIC0zNTA4LDI4ICszNTI0LDE4IEBAIGludCBjb25fZGVidWdfbGVhdmUodm9pZCkNCiB9DQog RVhQT1JUX1NZTUJPTF9HUEwoY29uX2RlYnVnX2xlYXZlKTsNCiANCi0vKioNCi0gKiByZWdpc3Rl cl9jb25fZHJpdmVyIC0gcmVnaXN0ZXIgY29uc29sZSBkcml2ZXIgdG8gY29uc29sZSBsYXllcg0K LSAqIEBjc3c6IGNvbnNvbGUgZHJpdmVyDQotICogQGZpcnN0OiB0aGUgZmlyc3QgY29uc29sZSB0 byB0YWtlIG92ZXIsIG1pbmltdW0gdmFsdWUgaXMgMA0KLSAqIEBsYXN0OiB0aGUgbGFzdCBjb25z b2xlIHRvIHRha2Ugb3ZlciwgbWF4aW11bSB2YWx1ZSBpcyBNQVhfTlJfQ09OU09MRVMgLTENCi0g Kg0KLSAqIERFU0NSSVBUSU9OOiBUaGlzIGZ1bmN0aW9uIHJlZ2lzdGVycyBhIGNvbnNvbGUgZHJp dmVyIHdoaWNoIGNhbiBsYXRlcg0KLSAqIGJpbmQgdG8gYSByYW5nZSBvZiBjb25zb2xlcyBzcGVj aWZpZWQgYnkgQGZpcnN0IGFuZCBAbGFzdC4gSXQgd2lsbA0KLSAqIGFsc28gaW5pdGlhbGl6ZSB0 aGUgY29uc29sZSBkcml2ZXIgYnkgY2FsbGluZyBjb25fc3RhcnR1cCgpLg0KLSAqLw0KLWludCBy ZWdpc3Rlcl9jb25fZHJpdmVyKGNvbnN0IHN0cnVjdCBjb25zdyAqY3N3LCBpbnQgZmlyc3QsIGlu dCBsYXN0KQ0KK3N0YXRpYyBpbnQgZG9fcmVnaXN0ZXJfY29uX2RyaXZlcihjb25zdCBzdHJ1Y3Qg Y29uc3cgKmNzdywgaW50IGZpcnN0LCBpbnQgbGFzdCkNCiB7DQogCXN0cnVjdCBtb2R1bGUgKm93 bmVyID0gY3N3LT5vd25lcjsNCiAJc3RydWN0IGNvbl9kcml2ZXIgKmNvbl9kcml2ZXI7DQogCWNv bnN0IGNoYXIgKmRlc2M7DQogCWludCBpLCByZXR2YWwgPSAwOw0KIA0KKwlXQVJOX0NPTlNPTEVf VU5MT0NLRUQoKTsNCisNCiAJaWYgKCF0cnlfbW9kdWxlX2dldChvd25lcikpDQogCQlyZXR1cm4g LUVOT0RFVjsNCiANCi0JY29uc29sZV9sb2NrKCk7DQotDQogCWZvciAoaSA9IDA7IGkgPCBNQVhf TlJfQ09OX0RSSVZFUjsgaSsrKSB7DQogCQljb25fZHJpdmVyID0gJnJlZ2lzdGVyZWRfY29uX2Ry aXZlcltpXTsNCiANCkBAIC0zNTgyLDEwICszNTg4LDI5IEBAIGludCByZWdpc3Rlcl9jb25fZHJp dmVyKGNvbnN0IHN0cnVjdCBjb25zdyAqY3N3LCBpbnQgZmlyc3QsIGludCBsYXN0KQ0KIAl9DQog DQogZXJyOg0KLQljb25zb2xlX3VubG9jaygpOw0KIAltb2R1bGVfcHV0KG93bmVyKTsNCiAJcmV0 dXJuIHJldHZhbDsNCiB9DQorDQorLyoqDQorICogcmVnaXN0ZXJfY29uX2RyaXZlciAtIHJlZ2lz dGVyIGNvbnNvbGUgZHJpdmVyIHRvIGNvbnNvbGUgbGF5ZXINCisgKiBAY3N3OiBjb25zb2xlIGRy aXZlcg0KKyAqIEBmaXJzdDogdGhlIGZpcnN0IGNvbnNvbGUgdG8gdGFrZSBvdmVyLCBtaW5pbXVt IHZhbHVlIGlzIDANCisgKiBAbGFzdDogdGhlIGxhc3QgY29uc29sZSB0byB0YWtlIG92ZXIsIG1h eGltdW0gdmFsdWUgaXMgTUFYX05SX0NPTlNPTEVTIC0xDQorICoNCisgKiBERVNDUklQVElPTjog VGhpcyBmdW5jdGlvbiByZWdpc3RlcnMgYSBjb25zb2xlIGRyaXZlciB3aGljaCBjYW4gbGF0ZXIN CisgKiBiaW5kIHRvIGEgcmFuZ2Ugb2YgY29uc29sZXMgc3BlY2lmaWVkIGJ5IEBmaXJzdCBhbmQg QGxhc3QuIEl0IHdpbGwNCisgKiBhbHNvIGluaXRpYWxpemUgdGhlIGNvbnNvbGUgZHJpdmVyIGJ5 IGNhbGxpbmcgY29uX3N0YXJ0dXAoKS4NCisgKi8NCitpbnQgcmVnaXN0ZXJfY29uX2RyaXZlcihj b25zdCBzdHJ1Y3QgY29uc3cgKmNzdywgaW50IGZpcnN0LCBpbnQgbGFzdCkNCit7DQorCWludCBy ZXR2YWw7DQorDQorCWNvbnNvbGVfbG9jaygpOw0KKwlyZXR2YWwgPSBkb19yZWdpc3Rlcl9jb25f ZHJpdmVyKGNzdywgZmlyc3QsIGxhc3QpOw0KKwljb25zb2xlX3VubG9jaygpOw0KKwlyZXR1cm4g cmV0dmFsOw0KK30NCiBFWFBPUlRfU1lNQk9MKHJlZ2lzdGVyX2Nvbl9kcml2ZXIpOw0KIA0KIC8q Kg0KQEAgLTM2MDEsOSArMzYyNiwxOCBAQCBFWFBPUlRfU1lNQk9MKHJlZ2lzdGVyX2Nvbl9kcml2 ZXIpOw0KICAqLw0KIGludCB1bnJlZ2lzdGVyX2Nvbl9kcml2ZXIoY29uc3Qgc3RydWN0IGNvbnN3 ICpjc3cpDQogew0KLQlpbnQgaSwgcmV0dmFsID0gLUVOT0RFVjsNCisJaW50IHJldHZhbDsNCiAN CiAJY29uc29sZV9sb2NrKCk7DQorCXJldHZhbCA9IGRvX3VucmVnaXN0ZXJfY29uX2RyaXZlcihj c3cpOw0KKwljb25zb2xlX3VubG9jaygpOw0KKwlyZXR1cm4gcmV0dmFsOw0KK30NCitFWFBPUlRf U1lNQk9MKHVucmVnaXN0ZXJfY29uX2RyaXZlcik7DQorDQoraW50IGRvX3VucmVnaXN0ZXJfY29u X2RyaXZlcihjb25zdCBzdHJ1Y3QgY29uc3cgKmNzdykNCit7DQorCWludCBpLCByZXR2YWwgPSAt RU5PREVWOw0KIA0KIAkvKiBjYW5ub3QgdW5yZWdpc3RlciBhIGJvdW5kIGRyaXZlciAqLw0KIAlp ZiAoY29uX2lzX2JvdW5kKGNzdykpDQpAQCAtMzYyOSwyNyArMzY2Myw1MyBAQCBpbnQgdW5yZWdp c3Rlcl9jb25fZHJpdmVyKGNvbnN0IHN0cnVjdCBjb25zdyAqY3N3KQ0KIAkJfQ0KIAl9DQogZXJy Og0KLQljb25zb2xlX3VubG9jaygpOw0KIAlyZXR1cm4gcmV0dmFsOw0KIH0NCi1FWFBPUlRfU1lN Qk9MKHVucmVnaXN0ZXJfY29uX2RyaXZlcik7DQorRVhQT1JUX1NZTUJPTF9HUEwoZG9fdW5yZWdp c3Rlcl9jb25fZHJpdmVyKTsNCiANCiAvKg0KICAqCUlmIHdlIHN1cHBvcnQgbW9yZSBjb25zb2xl IGRyaXZlcnMsIHRoaXMgZnVuY3Rpb24gaXMgdXNlZA0KICAqCXdoZW4gYSBkcml2ZXIgd2FudHMg dG8gdGFrZSBvdmVyIHNvbWUgZXhpc3RpbmcgY29uc29sZXMNCiAgKglhbmQgYmVjb21lIGRlZmF1 bHQgZHJpdmVyIGZvciBuZXdseSBvcGVuZWQgb25lcy4NCiAgKg0KLSAqICAgICAgdGFrZV9vdmVy X2NvbnNvbGUgaXMgYmFzaWNhbGx5IGEgcmVnaXN0ZXIgZm9sbG93ZWQgYnkgdW5iaW5kDQorICoJ dGFrZV9vdmVyX2NvbnNvbGUgaXMgYmFzaWNhbGx5IGEgcmVnaXN0ZXIgZm9sbG93ZWQgYnkgdW5i aW5kDQorICovDQoraW50IGRvX3Rha2Vfb3Zlcl9jb25zb2xlKGNvbnN0IHN0cnVjdCBjb25zdyAq Y3N3LCBpbnQgZmlyc3QsIGludCBsYXN0LCBpbnQgZGVmbHQpDQorew0KKwlpbnQgZXJyOw0KKw0K KwllcnIgPSBkb19yZWdpc3Rlcl9jb25fZHJpdmVyKGNzdywgZmlyc3QsIGxhc3QpOw0KKwkvKg0K KwkgKiBJZiB3ZSBnZXQgYW4gYnVzeSBlcnJvciB3ZSBzdGlsbCB3YW50IHRvIGJpbmQgdGhlIGNv bnNvbGUgZHJpdmVyDQorCSAqIGFuZCByZXR1cm4gc3VjY2VzcywgYXMgd2UgbWF5IGhhdmUgdW5i b3VuZCB0aGUgY29uc29sZSBkcml2ZXINCisJICogYnV0IG5vdCB1bnJlZ2lzdGVyZWQgaXQuDQor CSAqLw0KKwlpZiAoZXJyID09IC1FQlVTWSkNCisJCWVyciA9IDA7DQorCWlmICghZXJyKQ0KKwkJ ZG9fYmluZF9jb25fZHJpdmVyKGNzdywgZmlyc3QsIGxhc3QsIGRlZmx0KTsNCisNCisJcmV0dXJu IGVycjsNCit9DQorRVhQT1JUX1NZTUJPTF9HUEwoZG9fdGFrZV9vdmVyX2NvbnNvbGUpOw0KKw0K Ky8qDQorICoJSWYgd2Ugc3VwcG9ydCBtb3JlIGNvbnNvbGUgZHJpdmVycywgdGhpcyBmdW5jdGlv biBpcyB1c2VkDQorICoJd2hlbiBhIGRyaXZlciB3YW50cyB0byB0YWtlIG92ZXIgc29tZSBleGlz dGluZyBjb25zb2xlcw0KKyAqCWFuZCBiZWNvbWUgZGVmYXVsdCBkcml2ZXIgZm9yIG5ld2x5IG9w ZW5lZCBvbmVzLg0KKyAqDQorICoJdGFrZV9vdmVyX2NvbnNvbGUgaXMgYmFzaWNhbGx5IGEgcmVn aXN0ZXIgZm9sbG93ZWQgYnkgdW5iaW5kDQogICovDQogaW50IHRha2Vfb3Zlcl9jb25zb2xlKGNv bnN0IHN0cnVjdCBjb25zdyAqY3N3LCBpbnQgZmlyc3QsIGludCBsYXN0LCBpbnQgZGVmbHQpDQog ew0KIAlpbnQgZXJyOw0KIA0KIAllcnIgPSByZWdpc3Rlcl9jb25fZHJpdmVyKGNzdywgZmlyc3Qs IGxhc3QpOw0KLQkvKiBpZiB3ZSBnZXQgYW4gYnVzeSBlcnJvciB3ZSBzdGlsbCB3YW50IHRvIGJp bmQgdGhlIGNvbnNvbGUgZHJpdmVyDQorCS8qDQorCSAqIElmIHdlIGdldCBhbiBidXN5IGVycm9y IHdlIHN0aWxsIHdhbnQgdG8gYmluZCB0aGUgY29uc29sZSBkcml2ZXINCiAJICogYW5kIHJldHVy biBzdWNjZXNzLCBhcyB3ZSBtYXkgaGF2ZSB1bmJvdW5kIHRoZSBjb25zb2xlIGRyaXZlcg0KLQnC oCogYnV0IG5vdCB1bnJlZ2lzdGVyZWQgaXQuDQotCSovDQorCSAqIGJ1dCBub3QgdW5yZWdpc3Rl cmVkIGl0Lg0KKwkgKi8NCiAJaWYgKGVyciA9PSAtRUJVU1kpDQogCQllcnIgPSAwOw0KIAlpZiAo IWVycikNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2RyaXZlci5jIGIvZHJpdmVycy91 c2IvY29yZS9kcml2ZXIuYw0KaW5kZXggYzc3ZjBkNi4uOWYzMDAzZSAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvdXNiL2NvcmUvZHJpdmVyLmMNCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvZHJpdmVyLmMN CkBAIC01NDEsMjIgKzU0MSwxMCBAQCBpbnQgdXNiX21hdGNoX2RldmljZShzdHJ1Y3QgdXNiX2Rl dmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpDQogfQ0KIA0KIC8qIHJl dHVybnMgMCBpZiBubyBtYXRjaCwgMSBpZiBtYXRjaCAqLw0KLWludCB1c2JfbWF0Y2hfb25lX2lk KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsDQotCQkgICAgIGNvbnN0IHN0cnVjdCB1 c2JfZGV2aWNlX2lkICppZCkNCitpbnQgdXNiX21hdGNoX29uZV9pZF9pbnRmKHN0cnVjdCB1c2Jf ZGV2aWNlICpkZXYsDQorCQkJICBzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICppbnRmLA0KKwkJ CSAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQ0KIHsNCi0Jc3RydWN0IHVzYl9ob3N0 X2ludGVyZmFjZSAqaW50ZjsNCi0Jc3RydWN0IHVzYl9kZXZpY2UgKmRldjsNCi0NCi0JLyogcHJv Y19jb25uZWN0aW5mbyBpbiBkZXZpby5jIG1heSBjYWxsIHVzIHdpdGggaWQgPT0gTlVMTC4gKi8N Ci0JaWYgKGlkID09IE5VTEwpDQotCQlyZXR1cm4gMDsNCi0NCi0JaW50ZiA9IGludGVyZmFjZS0+ Y3VyX2FsdHNldHRpbmc7DQotCWRldiA9IGludGVyZmFjZV90b191c2JkZXYoaW50ZXJmYWNlKTsN Ci0NCi0JaWYgKCF1c2JfbWF0Y2hfZGV2aWNlKGRldiwgaWQpKQ0KLQkJcmV0dXJuIDA7DQotDQog CS8qIFRoZSBpbnRlcmZhY2UgY2xhc3MsIHN1YmNsYXNzLCBhbmQgcHJvdG9jb2wgc2hvdWxkIG5l dmVyIGJlDQogCSAqIGNoZWNrZWQgZm9yIGEgbWF0Y2ggaWYgdGhlIGRldmljZSBjbGFzcyBpcyBW ZW5kb3IgU3BlY2lmaWMsDQogCSAqIHVubGVzcyB0aGUgbWF0Y2ggcmVjb3JkIHNwZWNpZmllcyB0 aGUgVmVuZG9yIElELiAqLw0KQEAgLTU4MSw2ICs1NjksMjYgQEAgaW50IHVzYl9tYXRjaF9vbmVf aWQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwNCiANCiAJcmV0dXJuIDE7DQogfQ0K Kw0KKy8qIHJldHVybnMgMCBpZiBubyBtYXRjaCwgMSBpZiBtYXRjaCAqLw0KK2ludCB1c2JfbWF0 Y2hfb25lX2lkKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsDQorCQkgICAgIGNvbnN0 IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkNCit7DQorCXN0cnVjdCB1c2JfaG9zdF9pbnRlcmZh Y2UgKmludGY7DQorCXN0cnVjdCB1c2JfZGV2aWNlICpkZXY7DQorDQorCS8qIHByb2NfY29ubmVj dGluZm8gaW4gZGV2aW8uYyBtYXkgY2FsbCB1cyB3aXRoIGlkID09IE5VTEwuICovDQorCWlmIChp ZCA9PSBOVUxMKQ0KKwkJcmV0dXJuIDA7DQorDQorCWludGYgPSBpbnRlcmZhY2UtPmN1cl9hbHRz ZXR0aW5nOw0KKwlkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGVyZmFjZSk7DQorDQorCWlm ICghdXNiX21hdGNoX2RldmljZShkZXYsIGlkKSkNCisJCXJldHVybiAwOw0KKw0KKwlyZXR1cm4g dXNiX21hdGNoX29uZV9pZF9pbnRmKGRldiwgaW50ZiwgaWQpOw0KK30NCiBFWFBPUlRfU1lNQk9M X0dQTCh1c2JfbWF0Y2hfb25lX2lkKTsNCiANCiAvKioNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Vz Yi9jb3JlL2h1Yi5jIGIvZHJpdmVycy91c2IvY29yZS9odWIuYw0KaW5kZXggMGZmOGU5YS4uMjU2 NGQ4ZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMNCisrKyBiL2RyaXZlcnMv dXNiL2NvcmUvaHViLmMNCkBAIC0xODgzLDcgKzE4ODMsNyBAQCBzdGF0aWMgaW50IHVzYl9lbnVt ZXJhdGVfZGV2aWNlKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KQ0KIAkJaWYgKGVyciA8IDApIHsN CiAJCQlkZXZfZXJyKCZ1ZGV2LT5kZXYsICJjYW4ndCByZWFkIGNvbmZpZ3VyYXRpb25zLCBlcnJv ciAlZFxuIiwNCiAJCQkJZXJyKTsNCi0JCQlnb3RvIGZhaWw7DQorCQkJcmV0dXJuIGVycjsNCiAJ CX0NCiAJfQ0KIAlpZiAodWRldi0+d3VzYiA9PSAxICYmIHVkZXYtPmF1dGhvcml6ZWQgPT0gMCkg ew0KQEAgLTE4OTksOCArMTg5OSwxMiBAQCBzdGF0aWMgaW50IHVzYl9lbnVtZXJhdGVfZGV2aWNl KHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KQ0KIAkJdWRldi0+c2VyaWFsID0gdXNiX2NhY2hlX3N0 cmluZyh1ZGV2LCB1ZGV2LT5kZXNjcmlwdG9yLmlTZXJpYWxOdW1iZXIpOw0KIAl9DQogCWVyciA9 IHVzYl9lbnVtZXJhdGVfZGV2aWNlX290Zyh1ZGV2KTsNCi1mYWlsOg0KLQlyZXR1cm4gZXJyOw0K KwlpZiAoZXJyIDwgMCkNCisJCXJldHVybiBlcnI7DQorDQorCXVzYl9kZXRlY3RfaW50ZXJmYWNl X3F1aXJrcyh1ZGV2KTsNCisNCisJcmV0dXJuIDA7DQogfQ0KIA0KIA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMgYi9kcml2ZXJzL3VzYi9jb3JlL3F1aXJrcy5jDQppbmRl eCAzZjA4YzA5Li4wYWFhNGYxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvY29yZS9xdWlya3Mu Yw0KKysrIGIvZHJpdmVycy91c2IvY29yZS9xdWlya3MuYw0KQEAgLTE1LDE3ICsxNSwyMiBAQA0K ICNpbmNsdWRlIDxsaW51eC91c2IvcXVpcmtzLmg+DQogI2luY2x1ZGUgInVzYi5oIg0KIA0KLS8q IExpc3Qgb2YgcXVpcmt5IFVTQiBkZXZpY2VzLiAgUGxlYXNlIGtlZXAgdGhpcyBsaXN0IG9yZGVy ZWQgYnk6DQorLyogTGlzdHMgb2YgcXVpcmt5IFVTQiBkZXZpY2VzLCBzcGxpdCBpbiBkZXZpY2Ug cXVpcmtzIGFuZCBpbnRlcmZhY2UgcXVpcmtzLg0KKyAqIERldmljZSBxdWlya3MgYXJlIGFwcGxp ZWQgYXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9mIHRoZSBlbnVtZXJhdGlvbiBwcm9jZXNzLA0KKyAq IHJpZ2h0IGFmdGVyIHJlYWRpbmcgdGhlIGRldmljZSBkZXNjcmlwdG9yLiBUaGV5IGNhbiB0aHVz IG9ubHkgbWF0Y2ggb24gZGV2aWNlDQorICogaW5mb3JtYXRpb24uDQorICoNCisgKiBJbnRlcmZh Y2UgcXVpcmtzIGFyZSBhcHBsaWVkIGFmdGVyIHJlYWRpbmcgYWxsIHRoZSBjb25maWd1cmF0aW9u IGRlc2NyaXB0b3JzLg0KKyAqIFRoZXkgY2FuIG1hdGNoIG9uIGJvdGggZGV2aWNlIGFuZCBpbnRl cmZhY2UgaW5mb3JtYXRpb24uDQorICoNCisgKiBOb3RlIHRoYXQgdGhlIERFTEFZX0lOSVQgYW5k IEhPTk9SX0JOVU1JTlRFUkZBQ0VTIHF1aXJrcyBkbyBub3QgbWFrZSBzZW5zZSBhcw0KKyAqIGlu dGVyZmFjZSBxdWlya3MsIGFzIHRoZXkgb25seSBpbmZsdWVuY2UgdGhlIGVudW1lcmF0aW9uIHBy b2Nlc3Mgd2hpY2ggaXMgcnVuDQorICogYmVmb3JlIHByb2Nlc3NpbmcgdGhlIGludGVyZmFjZSBx dWlya3MuDQorICoNCisgKiBQbGVhc2Uga2VlcCB0aGUgbGlzdHMgb3JkZXJlZCBieToNCiAgKiAJ MSkgVmVuZG9yIElEDQogICogCTIpIFByb2R1Y3QgSUQNCiAgKiAJMykgQ2xhc3MgSUQNCi0gKg0K LSAqIGFzIHdlIHdhbnQgc3BlY2lmaWMgZGV2aWNlcyB0byBiZSBvdmVycmlkZGVuIGZpcnN0LCBh bmQgb25seSBhZnRlciB0aGF0LCBhbnkNCi0gKiBjbGFzcyBzcGVjaWZpYyBxdWlya3MuDQotICoN Ci0gKiBSaWdodCBub3cgdGhlIGxvZ2ljIGFib3J0cyBpZiBpdCBmaW5kcyBhIHZhbGlkIGRldmlj ZSBpbiB0aGUgdGFibGUsIHdlIG1pZ2h0DQotICogd2FudCB0byBjaGFuZ2UgdGhhdCBpbiB0aGUg ZnV0dXJlIGlmIGl0IHR1cm5zIG91dCB0aGF0IGEgd2hvbGUgY2xhc3Mgb2YNCi0gKiBkZXZpY2Vz IGlzIGJyb2tlbi4uLg0KICAqLw0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCB1 c2JfcXVpcmtfbGlzdFtdID0gew0KIAkvKiBDQk0gLSBGbGFzaCBkaXNrICovDQpAQCAtNDEsNTMg KzQ2LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCB1c2JfcXVpcmtfbGlz dFtdID0gew0KIAkvKiBNaWNyb3NvZnQgTGlmZUNhbS1WWDcwMCB2Mi4wICovDQogCXsgVVNCX0RF VklDRSgweDA0NWUsIDB4MDc3MCksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNV TUUgfSwNCiANCi0JLyogTG9naXRlY2ggV2ViY2FtIEMyMDAgKi8NCi0JeyBVU0JfREVWSUNFKDB4 MDQ2ZCwgMHgwODAyKSwgLmRyaXZlcl9pbmZvID0gVVNCX1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0K LQ0KLQkvKiBMb2dpdGVjaCBXZWJjYW0gQzI1MCAqLw0KLQl7IFVTQl9ERVZJQ0UoMHgwNDZkLCAw eDA4MDQpLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sDQotDQotCS8q IExvZ2l0ZWNoIFdlYmNhbSBDMzAwICovDQotCXsgVVNCX0RFVklDRSgweDA0NmQsIDB4MDgwNSks IC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwNCi0NCi0JLyogTG9naXRl Y2ggV2ViY2FtIEIvQzUwMCAqLw0KLQl7IFVTQl9ERVZJQ0UoMHgwNDZkLCAweDA4MDcpLCAuZHJp dmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sDQotDQotCS8qIExvZ2l0ZWNoIFdl YmNhbSBDNjAwICovDQotCXsgVVNCX0RFVklDRSgweDA0NmQsIDB4MDgwOCksIC5kcml2ZXJfaW5m byA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwNCi0NCi0JLyogTG9naXRlY2ggV2ViY2FtIFBy byA5MDAwICovDQotCXsgVVNCX0RFVklDRSgweDA0NmQsIDB4MDgwOSksIC5kcml2ZXJfaW5mbyA9 IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwNCisJLyogTG9naXRlY2ggUXVpY2tjYW0gRnVzaW9u ICovDQorCXsgVVNCX0RFVklDRSgweDA0NmQsIDB4MDhjMSksIC5kcml2ZXJfaW5mbyA9IFVTQl9R VUlSS19SRVNFVF9SRVNVTUUgfSwNCiANCi0JLyogTG9naXRlY2ggV2ViY2FtIEM5MDUgKi8NCi0J eyBVU0JfREVWSUNFKDB4MDQ2ZCwgMHgwODBhKSwgLmRyaXZlcl9pbmZvID0gVVNCX1FVSVJLX1JF U0VUX1JFU1VNRSB9LA0KKwkvKiBMb2dpdGVjaCBRdWlja2NhbSBPcmJpdCBNUCAqLw0KKwl7IFVT Ql9ERVZJQ0UoMHgwNDZkLCAweDA4YzIpLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRf UkVTVU1FIH0sDQogDQotCS8qIExvZ2l0ZWNoIFdlYmNhbSBDMjEwICovDQotCXsgVVNCX0RFVklD RSgweDA0NmQsIDB4MDgxOSksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUg fSwNCisJLyogTG9naXRlY2ggUXVpY2tjYW0gUHJvIGZvciBOb3RlYm9vayAqLw0KKwl7IFVTQl9E RVZJQ0UoMHgwNDZkLCAweDA4YzMpLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVT VU1FIH0sDQogDQotCS8qIExvZ2l0ZWNoIFdlYmNhbSBDMjYwICovDQotCXsgVVNCX0RFVklDRSgw eDA0NmQsIDB4MDgxYSksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwN CisJLyogTG9naXRlY2ggUXVpY2tjYW0gUHJvIDUwMDAgKi8NCisJeyBVU0JfREVWSUNFKDB4MDQ2 ZCwgMHgwOGM1KSwgLmRyaXZlcl9pbmZvID0gVVNCX1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0KIA0K LQkvKiBMb2dpdGVjaCBXZWJjYW0gQzMxMCAqLw0KLQl7IFVTQl9ERVZJQ0UoMHgwNDZkLCAweDA4 MWIpLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sDQorCS8qIExvZ2l0 ZWNoIFF1aWNrY2FtIE9FTSBEZWxsIE5vdGVib29rICovDQorCXsgVVNCX0RFVklDRSgweDA0NmQs IDB4MDhjNiksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwNCiANCi0J LyogTG9naXRlY2ggV2ViY2FtIEM5MTAgKi8NCi0JeyBVU0JfREVWSUNFKDB4MDQ2ZCwgMHgwODIx KSwgLmRyaXZlcl9pbmZvID0gVVNCX1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0KLQ0KLQkvKiBMb2dp dGVjaCBXZWJjYW0gQzE2MCAqLw0KLQl7IFVTQl9ERVZJQ0UoMHgwNDZkLCAweDA4MjQpLCAuZHJp dmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sDQotDQotCS8qIExvZ2l0ZWNoIFdl YmNhbSBDMjcwICovDQotCXsgVVNCX0RFVklDRSgweDA0NmQsIDB4MDgyNSksIC5kcml2ZXJfaW5m byA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwNCi0NCi0JLyogTG9naXRlY2ggUXVpY2tjYW0g UHJvIDkwMDAgKi8NCi0JeyBVU0JfREVWSUNFKDB4MDQ2ZCwgMHgwOTkwKSwgLmRyaXZlcl9pbmZv ID0gVVNCX1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0KLQ0KLQkvKiBMb2dpdGVjaCBRdWlja2NhbSBF MzUwMCAqLw0KLQl7IFVTQl9ERVZJQ0UoMHgwNDZkLCAweDA5YTQpLCAuZHJpdmVyX2luZm8gPSBV U0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sDQotDQotCS8qIExvZ2l0ZWNoIFF1aWNrY2FtIFZpc2lv biBQcm8gKi8NCi0JeyBVU0JfREVWSUNFKDB4MDQ2ZCwgMHgwOWE2KSwgLmRyaXZlcl9pbmZvID0g VVNCX1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0KKwkvKiBMb2dpdGVjaCBRdWlja2NhbSBPRU0gQ2lz Y28gVlQgQ2FtZXJhIElJICovDQorCXsgVVNCX0RFVklDRSgweDA0NmQsIDB4MDhjNyksIC5kcml2 ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwNCiANCiAJLyogTG9naXRlY2ggSGFy bW9ueSA3MDAtc2VyaWVzICovDQogCXsgVVNCX0RFVklDRSgweDA0NmQsIDB4YzEyMiksIC5kcml2 ZXJfaW5mbyA9IFVTQl9RVUlSS19ERUxBWV9JTklUIH0sDQpAQCAtMTYzLDE2ICsxMzgsNTcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHVzYl9xdWlya19saXN0W10gPSB7DQog CXsgfSAgLyogdGVybWluYXRpbmcgZW50cnkgbXVzdCBiZSBsYXN0ICovDQogfTsNCiANCi1zdGF0 aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmZpbmRfaWQoc3RydWN0IHVzYl9kZXZpY2Ug KnVkZXYpDQorc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHVzYl9pbnRlcmZhY2Vf cXVpcmtfbGlzdFtdID0gew0KKwkvKiBMb2dpdGVjaCBVVkMgQ2FtZXJhcyAqLw0KKwl7IFVTQl9W RU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDQ2ZCwgVVNCX0NMQVNTX1ZJREVPLCAxLCAwKSwN CisJICAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sDQorDQorCXsgfSAg LyogdGVybWluYXRpbmcgZW50cnkgbXVzdCBiZSBsYXN0ICovDQorfTsNCisNCitzdGF0aWMgYm9v bCB1c2JfbWF0Y2hfYW55X2ludGVyZmFjZShzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiwNCisJCQkJ ICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkNCiB7DQotCWNvbnN0IHN0cnVjdCB1 c2JfZGV2aWNlX2lkICppZCA9IHVzYl9xdWlya19saXN0Ow0KKwl1bnNpZ25lZCBpbnQgaTsNCiAN Ci0JZm9yICg7IGlkLT5pZFZlbmRvciB8fCBpZC0+YkRldmljZUNsYXNzIHx8IGlkLT5iSW50ZXJm YWNlQ2xhc3MgfHwNCi0JCQlpZC0+ZHJpdmVyX2luZm87IGlkKyspIHsNCi0JCWlmICh1c2JfbWF0 Y2hfZGV2aWNlKHVkZXYsIGlkKSkNCi0JCQlyZXR1cm4gaWQ7DQorCWZvciAoaSA9IDA7IGkgPCB1 ZGV2LT5kZXNjcmlwdG9yLmJOdW1Db25maWd1cmF0aW9uczsgKytpKSB7DQorCQlzdHJ1Y3QgdXNi X2hvc3RfY29uZmlnICpjZmcgPSAmdWRldi0+Y29uZmlnW2ldOw0KKwkJdW5zaWduZWQgaW50IGo7 DQorDQorCQlmb3IgKGogPSAwOyBqIDwgY2ZnLT5kZXNjLmJOdW1JbnRlcmZhY2VzOyArK2opIHsN CisJCQlzdHJ1Y3QgdXNiX2ludGVyZmFjZV9jYWNoZSAqY2FjaGU7DQorCQkJc3RydWN0IHVzYl9o b3N0X2ludGVyZmFjZSAqaW50ZjsNCisNCisJCQljYWNoZSA9IGNmZy0+aW50Zl9jYWNoZVtqXTsN CisJCQlpZiAoY2FjaGUtPm51bV9hbHRzZXR0aW5nID09IDApDQorCQkJCWNvbnRpbnVlOw0KKw0K KwkJCWludGYgPSAmY2FjaGUtPmFsdHNldHRpbmdbMF07DQorCQkJaWYgKHVzYl9tYXRjaF9vbmVf aWRfaW50Zih1ZGV2LCBpbnRmLCBpZCkpDQorCQkJCXJldHVybiB0cnVlOw0KKwkJfQ0KKwl9DQor DQorCXJldHVybiBmYWxzZTsNCit9DQorDQorc3RhdGljIHUzMiBfX3VzYl9kZXRlY3RfcXVpcmtz KHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2LA0KKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdXNiX2Rl dmljZV9pZCAqaWQpDQorew0KKwl1MzIgcXVpcmtzID0gMDsNCisNCisJZm9yICg7IGlkLT5tYXRj aF9mbGFnczsgaWQrKykgew0KKwkJaWYgKCF1c2JfbWF0Y2hfZGV2aWNlKHVkZXYsIGlkKSkNCisJ CQljb250aW51ZTsNCisNCisJCWlmICgoaWQtPm1hdGNoX2ZsYWdzICYgVVNCX0RFVklDRV9JRF9N QVRDSF9JTlRfSU5GTykgJiYNCisJCSAgICAhdXNiX21hdGNoX2FueV9pbnRlcmZhY2UodWRldiwg aWQpKQ0KKwkJCWNvbnRpbnVlOw0KKw0KKwkJcXVpcmtzIHw9ICh1MzIpKGlkLT5kcml2ZXJfaW5m byk7DQogCX0NCi0JcmV0dXJuIE5VTEw7DQorDQorCXJldHVybiBxdWlya3M7DQogfQ0KIA0KIC8q DQpAQCAtMTgwLDE0ICsxOTYsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lk ICpmaW5kX2lkKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KQ0KICAqLw0KIHZvaWQgdXNiX2RldGVj dF9xdWlya3Moc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYpDQogew0KLQljb25zdCBzdHJ1Y3QgdXNi X2RldmljZV9pZCAqaWQgPSB1c2JfcXVpcmtfbGlzdDsNCi0NCi0JaWQgPSBmaW5kX2lkKHVkZXYp Ow0KLQlpZiAoaWQpDQotCQl1ZGV2LT5xdWlya3MgPSAodTMyKShpZC0+ZHJpdmVyX2luZm8pOw0K Kwl1ZGV2LT5xdWlya3MgPSBfX3VzYl9kZXRlY3RfcXVpcmtzKHVkZXYsIHVzYl9xdWlya19saXN0 KTsNCiAJaWYgKHVkZXYtPnF1aXJrcykNCiAJCWRldl9kYmcoJnVkZXYtPmRldiwgIlVTQiBxdWly a3MgZm9yIHRoaXMgZGV2aWNlOiAleFxuIiwNCi0JCQkJdWRldi0+cXVpcmtzKTsNCisJCQl1ZGV2 LT5xdWlya3MpOw0KIA0KIAkvKiBGb3IgdGhlIHByZXNlbnQsIGFsbCBkZXZpY2VzIGRlZmF1bHQg dG8gVVNCLVBFUlNJU1QgZW5hYmxlZCAqLw0KICNpZiAwCQkvKiB3YXM6ICNpZmRlZiBDT05GSUdf UE0gKi8NCkBAIC0yMDQsMyArMjE2LDE2IEBAIHZvaWQgdXNiX2RldGVjdF9xdWlya3Moc3RydWN0 IHVzYl9kZXZpY2UgKnVkZXYpDQogCQl1ZGV2LT5wZXJzaXN0X2VuYWJsZWQgPSAxOw0KICNlbmRp ZgkvKiBDT05GSUdfUE0gKi8NCiB9DQorDQordm9pZCB1c2JfZGV0ZWN0X2ludGVyZmFjZV9xdWly a3Moc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYpDQorew0KKwl1MzIgcXVpcmtzOw0KKw0KKwlxdWly a3MgPSBfX3VzYl9kZXRlY3RfcXVpcmtzKHVkZXYsIHVzYl9pbnRlcmZhY2VfcXVpcmtfbGlzdCk7 DQorCWlmIChxdWlya3MgPT0gMCkNCisJCXJldHVybjsNCisNCisJZGV2X2RiZygmdWRldi0+ZGV2 LCAiVVNCIGludGVyZmFjZSBxdWlya3MgZm9yIHRoaXMgZGV2aWNlOiAleFxuIiwNCisJCXF1aXJr cyk7DQorCXVkZXYtPnF1aXJrcyB8PSBxdWlya3M7DQorfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL2NvcmUvdXNiLmggYi9kcml2ZXJzL3VzYi9jb3JlL3VzYi5oDQppbmRleCA0NWU4NDc5Li4z ZTExNTliIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvY29yZS91c2IuaA0KKysrIGIvZHJpdmVy cy91c2IvY29yZS91c2IuaA0KQEAgLTI0LDYgKzI0LDcgQEAgZXh0ZXJuIHZvaWQgdXNiX2Rpc2Fi bGVfZGV2aWNlKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIGludCBza2lwX2VwMCk7DQogZXh0ZXJu IGludCB1c2JfZGVhdXRob3JpemVfZGV2aWNlKHN0cnVjdCB1c2JfZGV2aWNlICopOw0KIGV4dGVy biBpbnQgdXNiX2F1dGhvcml6ZV9kZXZpY2Uoc3RydWN0IHVzYl9kZXZpY2UgKik7DQogZXh0ZXJu IHZvaWQgdXNiX2RldGVjdF9xdWlya3Moc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYpOw0KK2V4dGVy biB2b2lkIHVzYl9kZXRlY3RfaW50ZXJmYWNlX3F1aXJrcyhzdHJ1Y3QgdXNiX2RldmljZSAqdWRl dik7DQogZXh0ZXJuIGludCB1c2JfcmVtb3ZlX2RldmljZShzdHJ1Y3QgdXNiX2RldmljZSAqdWRl dik7DQogDQogZXh0ZXJuIGludCB1c2JfZ2V0X2RldmljZV9kZXNjcmlwdG9yKHN0cnVjdCB1c2Jf ZGV2aWNlICpkZXYsDQpAQCAtMzUsNiArMzYsOSBAQCBleHRlcm4gaW50IHVzYl9zZXRfY29uZmln dXJhdGlvbihzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgY29uZmlndXJhdGlvbik7DQogZXh0 ZXJuIGludCB1c2JfY2hvb3NlX2NvbmZpZ3VyYXRpb24oc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYp Ow0KIA0KIGV4dGVybiB2b2lkIHVzYl9raWNrX2todWJkKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYp Ow0KK2V4dGVybiBpbnQgdXNiX21hdGNoX29uZV9pZF9pbnRmKHN0cnVjdCB1c2JfZGV2aWNlICpk ZXYsDQorCQkJCSBzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICppbnRmLA0KKwkJCQkgY29uc3Qg c3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTsNCiBleHRlcm4gaW50IHVzYl9tYXRjaF9kZXZpY2Uo c3RydWN0IHVzYl9kZXZpY2UgKmRldiwNCiAJCQkgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2Vf aWQgKmlkKTsNCiBleHRlcm4gdm9pZCB1c2JfZm9yY2VkX3VuYmluZF9pbnRmKHN0cnVjdCB1c2Jf aW50ZXJmYWNlICppbnRmKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktb21h cC5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLW9tYXAuYw0KaW5kZXggZTM5YjAyOS4uZDQxNTli OCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1vbWFwLmMNCisrKyBiL2RyaXZl cnMvdXNiL2hvc3QvZWhjaS1vbWFwLmMNCkBAIC0zMzcsNyArMzM3LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBoY19kcml2ZXIgZWhjaV9vbWFwX2hjX2RyaXZlciA9IHsNCiAJLmNsZWFyX3R0X2J1 ZmZlcl9jb21wbGV0ZSA9IGVoY2lfY2xlYXJfdHRfYnVmZmVyX2NvbXBsZXRlLA0KIH07DQogDQot TU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpvbWFwLWVoY2kiKTsNCitNT0RVTEVfQUxJQVMoInBsYXRm b3JtOmVoY2ktb21hcCIpOw0KIE1PRFVMRV9BVVRIT1IoIlRleGFzIEluc3RydW1lbnRzLCBJbmMu Iik7DQogTU9EVUxFX0FVVEhPUigiRmVsaXBlIEJhbGJpIDxmZWxpcGUuYmFsYmlAbm9raWEuY29t PiIpOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jIGIvZHJp dmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMNCmluZGV4IGQ2NDRhNjYuLjcxYzQ2OTYgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYw0KKysrIGIvZHJpdmVycy91c2Iv c2VyaWFsL2Z0ZGlfc2lvLmMNCkBAIC0xOTE2LDI0ICsxOTE2LDIyIEBAIHN0YXRpYyB2b2lkIGZ0 ZGlfZHRyX3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgb24pDQogew0KIAlz dHJ1Y3QgZnRkaV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQp Ow0KIA0KLQltdXRleF9sb2NrKCZwb3J0LT5zZXJpYWwtPmRpc2NfbXV0ZXgpOw0KLQlpZiAoIXBv cnQtPnNlcmlhbC0+ZGlzY29ubmVjdGVkKSB7DQotCQkvKiBEaXNhYmxlIGZsb3cgY29udHJvbCAq Lw0KLQkJaWYgKCFvbiAmJiB1c2JfY29udHJvbF9tc2cocG9ydC0+c2VyaWFsLT5kZXYsDQorCS8q IERpc2FibGUgZmxvdyBjb250cm9sICovDQorCWlmICghb24pIHsNCisJCWlmICh1c2JfY29udHJv bF9tc2cocG9ydC0+c2VyaWFsLT5kZXYsDQogCQkJICAgIHVzYl9zbmRjdHJscGlwZShwb3J0LT5z ZXJpYWwtPmRldiwgMCksDQogCQkJICAgIEZURElfU0lPX1NFVF9GTE9XX0NUUkxfUkVRVUVTVCwN CiAJCQkgICAgRlRESV9TSU9fU0VUX0ZMT1dfQ1RSTF9SRVFVRVNUX1RZUEUsDQogCQkJICAgIDAs IHByaXYtPmludGVyZmFjZSwgTlVMTCwgMCwNCiAJCQkgICAgV0RSX1RJTUVPVVQpIDwgMCkgew0K LQkJCSAgICBkZXZfZXJyKCZwb3J0LT5kZXYsICJlcnJvciBmcm9tIGZsb3djb250cm9sIHVyYlxu Iik7DQorCQkJZGV2X2VycigmcG9ydC0+ZGV2LCAiZXJyb3IgZnJvbSBmbG93Y29udHJvbCB1cmJc biIpOw0KIAkJfQ0KLQkJLyogZHJvcCBSVFMgYW5kIERUUiAqLw0KLQkJaWYgKG9uKQ0KLQkJCXNl dF9tY3RybChwb3J0LCBUSU9DTV9EVFIgfCBUSU9DTV9SVFMpOw0KLQkJZWxzZQ0KLQkJCWNsZWFy X21jdHJsKHBvcnQsIFRJT0NNX0RUUiB8IFRJT0NNX1JUUyk7DQogCX0NCi0JbXV0ZXhfdW5sb2Nr KCZwb3J0LT5zZXJpYWwtPmRpc2NfbXV0ZXgpOw0KKwkvKiBkcm9wIFJUUyBhbmQgRFRSICovDQor CWlmIChvbikNCisJCXNldF9tY3RybChwb3J0LCBUSU9DTV9EVFIgfCBUSU9DTV9SVFMpOw0KKwll bHNlDQorCQljbGVhcl9tY3RybChwb3J0LCBUSU9DTV9EVFIgfCBUSU9DTV9SVFMpOw0KIH0NCiAN CiAvKg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9tY3RfdTIzMi5jIGIvZHJpdmVy cy91c2Ivc2VyaWFsL21jdF91MjMyLmMNCmluZGV4IGQzYWRkYjIuLmRlMGJiOGUgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvbWN0X3UyMzIuYw0KKysrIGIvZHJpdmVycy91c2Ivc2Vy aWFsL21jdF91MjMyLmMNCkBAIC01NTgsMTkgKzU1OCwxNSBAQCBzdGF0aWMgdm9pZCBtY3RfdTIz Ml9kdHJfcnRzKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIGludCBvbikNCiAJdW5zaWdu ZWQgaW50IGNvbnRyb2xfc3RhdGU7DQogCXN0cnVjdCBtY3RfdTIzMl9wcml2YXRlICpwcml2ID0g dXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOw0KIA0KLQltdXRleF9sb2NrKCZwb3J0LT5z ZXJpYWwtPmRpc2NfbXV0ZXgpOw0KLQlpZiAoIXBvcnQtPnNlcmlhbC0+ZGlzY29ubmVjdGVkKSB7 DQotCQkvKiBkcm9wIERUUiBhbmQgUlRTICovDQotCQlzcGluX2xvY2tfaXJxKCZwcml2LT5sb2Nr KTsNCi0JCWlmIChvbikNCi0JCQlwcml2LT5jb250cm9sX3N0YXRlIHw9IFRJT0NNX0RUUiB8IFRJ T0NNX1JUUzsNCi0JCWVsc2UNCi0JCQlwcml2LT5jb250cm9sX3N0YXRlICY9IH4oVElPQ01fRFRS IHwgVElPQ01fUlRTKTsNCi0JCWNvbnRyb2xfc3RhdGUgPSBwcml2LT5jb250cm9sX3N0YXRlOw0K LQkJc3Bpbl91bmxvY2tfaXJxKCZwcml2LT5sb2NrKTsNCi0JCW1jdF91MjMyX3NldF9tb2RlbV9j dHJsKHBvcnQtPnNlcmlhbCwgY29udHJvbF9zdGF0ZSk7DQotCX0NCi0JbXV0ZXhfdW5sb2NrKCZw b3J0LT5zZXJpYWwtPmRpc2NfbXV0ZXgpOw0KKwlzcGluX2xvY2tfaXJxKCZwcml2LT5sb2NrKTsN CisJaWYgKG9uKQ0KKwkJcHJpdi0+Y29udHJvbF9zdGF0ZSB8PSBUSU9DTV9EVFIgfCBUSU9DTV9S VFM7DQorCWVsc2UNCisJCXByaXYtPmNvbnRyb2xfc3RhdGUgJj0gfihUSU9DTV9EVFIgfCBUSU9D TV9SVFMpOw0KKwljb250cm9sX3N0YXRlID0gcHJpdi0+Y29udHJvbF9zdGF0ZTsNCisJc3Bpbl91 bmxvY2tfaXJxKCZwcml2LT5sb2NrKTsNCisNCisJbWN0X3UyMzJfc2V0X21vZGVtX2N0cmwocG9y dC0+c2VyaWFsLCBjb250cm9sX3N0YXRlKTsNCiB9DQogDQogc3RhdGljIHZvaWQgbWN0X3UyMzJf Y2xvc2Uoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkNCmRpZmYgLS1naXQgYS9kcml2ZXJz L3VzYi9zZXJpYWwvb3B0aW9uLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMNCmluZGV4 IDUyY2Q4MTQuLjI0YTNlYTYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9u LmMNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYw0KQEAgLTQ3OSw2ICs0NzksNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbl9ibGFja2xpc3RfaW5mbyBmb3VyX2dfdzE0X2Js YWNrbGlzdCA9IHsNCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbl9ibGFja2xpc3RfaW5m byBhbGNhdGVsX3gyMDBfYmxhY2tsaXN0ID0gew0KIAkuc2VuZHNldHVwID0gQklUKDApIHwgQklU KDEpLA0KKwkucmVzZXJ2ZWQgPSBCSVQoNCksDQogfTsNCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0 IG9wdGlvbl9ibGFja2xpc3RfaW5mbyB6dGVfMDAzN19ibGFja2xpc3QgPSB7DQpAQCAtNTc1LDgg KzU3NiwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1td ID0gew0KIAl7IFVTQl9ERVZJQ0UoUVVBTlRBX1ZFTkRPUl9JRCwgUVVBTlRBX1BST0RVQ1RfR0xY KSB9LA0KIAl7IFVTQl9ERVZJQ0UoUVVBTlRBX1ZFTkRPUl9JRCwgUVVBTlRBX1BST0RVQ1RfR0tF KSB9LA0KIAl7IFVTQl9ERVZJQ0UoUVVBTlRBX1ZFTkRPUl9JRCwgUVVBTlRBX1BST0RVQ1RfR0xF KSB9LA0KKwl7IFVTQl9ERVZJQ0UoUVVBTlRBX1ZFTkRPUl9JRCwgMHhlYTQyKSwNCisJCS5kcml2 ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmbmV0X2ludGY0X2JsYWNrbGlzdCB9LA0KKwl7IFVT Ql9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4MWMwNSwgVVNC X0NMQVNTX0NPTU0sIDB4MDIsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNF X0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHgxYzIzLCBVU0JfQ0xBU1NfQ09NTSwgMHgwMiwgMHhm ZikgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lE LCBIVUFXRUlfUFJPRFVDVF9FMTczLCAweGZmLCAweGZmLCAweGZmKSwNCiAJCS5kcml2ZXJfaW5m byA9IChrZXJuZWxfdWxvbmdfdCkgJm5ldF9pbnRmMV9ibGFja2xpc3QgfSwNCisJeyBVU0JfREVW SUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCAweDE0NDEsIFVTQl9DTEFT U19DT01NLCAweDAyLCAweGZmKSB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZP KEhVQVdFSV9WRU5ET1JfSUQsIDB4MTQ0MiwgVVNCX0NMQVNTX0NPTU0sIDB4MDIsIDB4ZmYpIH0s DQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgSFVB V0VJX1BST0RVQ1RfSzQ1MDUsIDB4ZmYsIDB4ZmYsIDB4ZmYpLA0KIAkJLmRyaXZlcl9pbmZvID0g KGtlcm5lbF91bG9uZ190KSAmaHVhd2VpX2NkYzEyX2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9ERVZJ Q0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0sz NzY1LCAweGZmLCAweGZmLCAweGZmKSwNCkBAIC0xMjE1LDcgKzEyMjIsMTQgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0JfREVWSUNF KEFMQ0FURUxfVkVORE9SX0lELCBBTENBVEVMX1BST0RVQ1RfWDA2MFNfWDIwMCksDQogCSAgLmRy aXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZhbGNhdGVsX3gyMDBfYmxhY2tsaXN0DQogCX0s DQotCXsgVVNCX0RFVklDRShBTENBVEVMX1ZFTkRPUl9JRCwgQUxDQVRFTF9QUk9EVUNUX1gyMjBf WDUwMEQpIH0sDQorCXsgVVNCX0RFVklDRShBTENBVEVMX1ZFTkRPUl9JRCwgQUxDQVRFTF9QUk9E VUNUX1gyMjBfWDUwMEQpLA0KKwkgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmbmV0 X2ludGY2X2JsYWNrbGlzdCB9LA0KKwl7IFVTQl9ERVZJQ0UoQUxDQVRFTF9WRU5ET1JfSUQsIDB4 MDA1MiksDQorCSAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjZfYmxh Y2tsaXN0IH0sDQorCXsgVVNCX0RFVklDRShBTENBVEVMX1ZFTkRPUl9JRCwgMHgwMGI2KSwNCisJ ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmM19ibGFja2xpc3QgfSwN CisJeyBVU0JfREVWSUNFKEFMQ0FURUxfVkVORE9SX0lELCAweDAwYjcpLA0KKwkgIC5kcml2ZXJf aW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmbmV0X2ludGY1X2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9E RVZJQ0UoQUxDQVRFTF9WRU5ET1JfSUQsIEFMQ0FURUxfUFJPRFVDVF9MMTAwViksDQogCSAgLmRy aXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjRfYmxhY2tsaXN0IH0sDQogCXsg VVNCX0RFVklDRShBSVJQTFVTX1ZFTkRPUl9JRCwgQUlSUExVU19QUk9EVUNUX01DRDY1MCkgfSwN CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvc2llcnJhLmMgYi9kcml2ZXJzL3VzYi9z ZXJpYWwvc2llcnJhLmMNCmluZGV4IGUxZjFlYmQuLmE3ZmE2NzMgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL3VzYi9zZXJpYWwvc2llcnJhLmMNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9zaWVycmEu Yw0KQEAgLTg5MSwxOSArODkxLDEzIEBAIHN0YXRpYyBpbnQgc2llcnJhX29wZW4oc3RydWN0IHR0 eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkNCiANCiBzdGF0aWMg dm9pZCBzaWVycmFfZHRyX3J0cyhzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0LCBpbnQgb24p DQogew0KLQlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOw0KIAlzdHJ1 Y3Qgc2llcnJhX3BvcnRfcHJpdmF0ZSAqcG9ydGRhdGE7DQogDQogCXBvcnRkYXRhID0gdXNiX2dl dF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOw0KIAlwb3J0ZGF0YS0+cnRzX3N0YXRlID0gb247DQog CXBvcnRkYXRhLT5kdHJfc3RhdGUgPSBvbjsNCiANCi0JaWYgKHNlcmlhbC0+ZGV2KSB7DQotCQlt dXRleF9sb2NrKCZzZXJpYWwtPmRpc2NfbXV0ZXgpOw0KLQkJaWYgKCFzZXJpYWwtPmRpc2Nvbm5l Y3RlZCkNCi0JCQlzaWVycmFfc2VuZF9zZXR1cChwb3J0KTsNCi0JCW11dGV4X3VubG9jaygmc2Vy aWFsLT5kaXNjX211dGV4KTsNCi0JfQ0KKwlzaWVycmFfc2VuZF9zZXR1cChwb3J0KTsNCiB9DQog DQogc3RhdGljIGludCBzaWVycmFfc3RhcnR1cChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQ0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9zc3UxMDAuYyBiL2RyaXZlcnMvdXNiL3Nl cmlhbC9zc3UxMDAuYw0KaW5kZXggODczNjJlNC4uZmZmN2YxNyAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvdXNiL3NlcmlhbC9zc3UxMDAuYw0KKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3NzdTEwMC5j DQpAQCAtNTMzLDE5ICs1MzMsMTYgQEAgc3RhdGljIHZvaWQgc3N1MTAwX2R0cl9ydHMoc3RydWN0 IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IG9uKQ0KIA0KIAlkYmcoIiVzXG4iLCBfX2Z1bmNf Xyk7DQogDQotCW11dGV4X2xvY2soJnBvcnQtPnNlcmlhbC0+ZGlzY19tdXRleCk7DQotCWlmICgh cG9ydC0+c2VyaWFsLT5kaXNjb25uZWN0ZWQpIHsNCi0JCS8qIERpc2FibGUgZmxvdyBjb250cm9s ICovDQotCQlpZiAoIW9uICYmDQotCQkgICAgc3N1MTAwX3NldHJlZ2lzdGVyKGRldiwgMCwgVUFS VF9NQ1IsIDApIDwgMCkNCisJLyogRGlzYWJsZSBmbG93IGNvbnRyb2wgKi8NCisJaWYgKCFvbikg ew0KKwkJaWYgKHNzdTEwMF9zZXRyZWdpc3RlcihkZXYsIDAsIFVBUlRfTUNSLCAwKSA8IDApDQog CQkJZGV2X2VycigmcG9ydC0+ZGV2LCAiZXJyb3IgZnJvbSBmbG93Y29udHJvbCB1cmJcbiIpOw0K LQkJLyogZHJvcCBSVFMgYW5kIERUUiAqLw0KLQkJaWYgKG9uKQ0KLQkJCXNldF9tY3RybChkZXYs IFRJT0NNX0RUUiB8IFRJT0NNX1JUUyk7DQotCQllbHNlDQotCQkJY2xlYXJfbWN0cmwoZGV2LCBU SU9DTV9EVFIgfCBUSU9DTV9SVFMpOw0KIAl9DQotCW11dGV4X3VubG9jaygmcG9ydC0+c2VyaWFs LT5kaXNjX211dGV4KTsNCisJLyogZHJvcCBSVFMgYW5kIERUUiAqLw0KKwlpZiAob24pDQorCQlz ZXRfbWN0cmwoZGV2LCBUSU9DTV9EVFIgfCBUSU9DTV9SVFMpOw0KKwllbHNlDQorCQljbGVhcl9t Y3RybChkZXYsIFRJT0NNX0RUUiB8IFRJT0NNX1JUUyk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIHNz dTEwMF91cGRhdGVfbXNyKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsIHU4IG1zcikNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jIGIvZHJpdmVycy91c2Iv c2VyaWFsL3VzYi1zZXJpYWwuYw0KaW5kZXggZTUyMDZkZS4uZGMxY2U2MiAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvdXNiL3NlcmlhbC91c2Itc2VyaWFsLmMNCisrKyBiL2RyaXZlcnMvdXNiL3Nlcmlh bC91c2Itc2VyaWFsLmMNCkBAIC02OTcsOSArNjk3LDIwIEBAIHN0YXRpYyBpbnQgc2VyaWFsX2Nh cnJpZXJfcmFpc2VkKHN0cnVjdCB0dHlfcG9ydCAqcG9ydCkNCiBzdGF0aWMgdm9pZCBzZXJpYWxf ZHRyX3J0cyhzdHJ1Y3QgdHR5X3BvcnQgKnBvcnQsIGludCBvbikNCiB7DQogCXN0cnVjdCB1c2Jf c2VyaWFsX3BvcnQgKnAgPSBjb250YWluZXJfb2YocG9ydCwgc3RydWN0IHVzYl9zZXJpYWxfcG9y dCwgcG9ydCk7DQotCXN0cnVjdCB1c2Jfc2VyaWFsX2RyaXZlciAqZHJ2ID0gcC0+c2VyaWFsLT50 eXBlOw0KLQlpZiAoZHJ2LT5kdHJfcnRzKQ0KKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0g cC0+c2VyaWFsOw0KKwlzdHJ1Y3QgdXNiX3NlcmlhbF9kcml2ZXIgKmRydiA9IHNlcmlhbC0+dHlw ZTsNCisNCisJaWYgKCFkcnYtPmR0cl9ydHMpDQorCQlyZXR1cm47DQorCS8qDQorCSAqIFdvcmst YXJvdW5kIGJ1ZyBpbiB0aGUgdHR5LWxheWVyIHdoaWNoIGNhbiByZXN1bHQgaW4gZHRyX3J0cw0K KwkgKiBiZWluZyBjYWxsZWQgYWZ0ZXIgYSBkaXNjb25uZWN0IChhbmQgdHR5X3VucmVnaXN0ZXJf ZGV2aWNlDQorCSAqIGhhcyByZXR1cm5lZCkuIFJlbW92ZSBvbmNlIGJ1ZyBoYXMgYmVlbiBzcXVh c2hlZC4NCisJICovDQorCW11dGV4X2xvY2soJnNlcmlhbC0+ZGlzY19tdXRleCk7DQorCWlmICgh c2VyaWFsLT5kaXNjb25uZWN0ZWQpDQogCQlkcnYtPmR0cl9ydHMocCwgb24pOw0KKwltdXRleF91 bmxvY2soJnNlcmlhbC0+ZGlzY19tdXRleCk7DQogfQ0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dHR5X3BvcnRfb3BlcmF0aW9ucyBzZXJpYWxfcG9ydF9vcHMgPSB7DQpkaWZmIC0tZ2l0IGEvZHJp dmVycy91c2Ivc2VyaWFsL3VzYl93d2FuLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdXNiX3d3YW4u Yw0KaW5kZXggZDU1NWNhOS4uNmM5MjMwMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3Nlcmlh bC91c2Jfd3dhbi5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdXNiX3d3YW4uYw0KQEAgLTQx LDcgKzQxLDYgQEAgc3RhdGljIGludCBkZWJ1ZzsNCiANCiB2b2lkIHVzYl93d2FuX2R0cl9ydHMo c3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IG9uKQ0KIHsNCi0Jc3RydWN0IHVzYl9z ZXJpYWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsNCiAJc3RydWN0IHVzYl93d2FuX3BvcnRfcHJp dmF0ZSAqcG9ydGRhdGE7DQogDQogCXN0cnVjdCB1c2Jfd3dhbl9pbnRmX3ByaXZhdGUgKmludGZk YXRhOw0KQEAgLTU0LDEyICs1MywxMSBAQCB2b2lkIHVzYl93d2FuX2R0cl9ydHMoc3RydWN0IHVz Yl9zZXJpYWxfcG9ydCAqcG9ydCwgaW50IG9uKQ0KIAkJcmV0dXJuOw0KIA0KIAlwb3J0ZGF0YSA9 IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsNCi0JbXV0ZXhfbG9jaygmc2VyaWFsLT5k aXNjX211dGV4KTsNCisJLyogRklYTUU6IGxvY2tpbmcgKi8NCiAJcG9ydGRhdGEtPnJ0c19zdGF0 ZSA9IG9uOw0KIAlwb3J0ZGF0YS0+ZHRyX3N0YXRlID0gb247DQotCWlmIChzZXJpYWwtPmRldikN Ci0JCWludGZkYXRhLT5zZW5kX3NldHVwKHBvcnQpOw0KLQltdXRleF91bmxvY2soJnNlcmlhbC0+ ZGlzY19tdXRleCk7DQorDQorCWludGZkYXRhLT5zZW5kX3NldHVwKHBvcnQpOw0KIH0NCiBFWFBP UlRfU1lNQk9MKHVzYl93d2FuX2R0cl9ydHMpOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNi L3N0b3JhZ2UvaW5pdGlhbGl6ZXJzLmMgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL2luaXRpYWxpemVy cy5jDQppbmRleCAxNmIwYmYwLi43YWI5MDQ2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc3Rv cmFnZS9pbml0aWFsaXplcnMuYw0KKysrIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9pbml0aWFsaXpl cnMuYw0KQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgaW50IHVzYl9zdG9yX2h1YXdlaV9kb25n bGVzX3BpZChzdHJ1Y3QgdXNfZGF0YSAqdXMpDQogCWludCBpZFByb2R1Y3Q7DQogDQogCWlkZXNj ID0gJnVzLT5wdXNiX2ludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjOw0KLQlpZFByb2R1Y3QgPSB1 cy0+cHVzYl9kZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0Ow0KKwlpZFByb2R1Y3QgPSBsZTE2X3Rv X2NwdSh1cy0+cHVzYl9kZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KTsNCiAJLyogVGhlIGZpcnN0 IHBvcnQgaXMgQ0RST00sDQogCSAqIG1lYW5zIHRoZSBkb25nbGUgaW4gdGhlIHNpbmdsZSBwb3J0 IG1vZGUsDQogCSAqIGFuZCBhIHN3aXRjaCBjb21tYW5kIGlzIHJlcXVpcmVkIHRvIGJlIHNlbnQu ICovDQpAQCAtMTY5LDcgKzE2OSw3IEBAIGludCB1c2Jfc3Rvcl9odWF3ZWlfaW5pdChzdHJ1Y3Qg dXNfZGF0YSAqdXMpDQogCWludCByZXN1bHQgPSAwOw0KIA0KIAlpZiAodXNiX3N0b3JfaHVhd2Vp X2RvbmdsZXNfcGlkKHVzKSkgew0KLQkJaWYgKHVzLT5wdXNiX2Rldi0+ZGVzY3JpcHRvci5pZFBy b2R1Y3QgPj0gMHgxNDQ2KQ0KKwkJaWYgKGxlMTZfdG9fY3B1KHVzLT5wdXNiX2Rldi0+ZGVzY3Jp cHRvci5pZFByb2R1Y3QpID49IDB4MTQ0NikNCiAJCQlyZXN1bHQgPSB1c2Jfc3Rvcl9odWF3ZWlf c2NzaV9pbml0KHVzKTsNCiAJCWVsc2UNCiAJCQlyZXN1bHQgPSB1c2Jfc3Rvcl9odWF3ZWlfZmVh dHVyZV9pbml0KHVzKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxf Y3lwcmVzcy5oIGIvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2N5cHJlc3MuaA0KaW5kZXgg MmM4NTUzMC4uNjVhNmE3NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3Vh bF9jeXByZXNzLmgNCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9jeXByZXNzLmgN CkBAIC0zMSw3ICszMSw3IEBAIFVOVVNVQUxfREVWKCAgMHgwNGI0LCAweDY4MzEsIDB4MDAwMCwg MHg5OTk5LA0KIAkJIkN5cHJlc3MgSVNELTMwMExQIiwNCiAJCVVTQl9TQ19DWVBfQVRBQ0IsIFVT Ql9QUl9ERVZJQ0UsIE5VTEwsIDApLA0KIA0KLVVOVVNVQUxfREVWKCAweDE0Y2QsIDB4NjExNiwg MHgwMDAwLCAweDk5OTksDQorVU5VU1VBTF9ERVYoIDB4MTRjZCwgMHg2MTE2LCAweDAwMDAsIDB4 MDIxOSwNCiAJCSJTdXBlciBUb3AiLA0KIAkJIlVTQiAyLjAgIFNBVEEgQlJJREdFIiwNCiAJCVVT Ql9TQ19DWVBfQVRBQ0IsIFVTQl9QUl9ERVZJQ0UsIE5VTEwsIDApLA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmhvc3Qvdmhvc3QuYyBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYw0KaW5kZXggYWU2NjI3 OC4uYmUzMmIxYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYw0KKysrIGIvZHJp dmVycy92aG9zdC92aG9zdC5jDQpAQCAtMTA3Myw3ICsxMDczLDcgQEAgc3RhdGljIGludCB0cmFu c2xhdGVfZGVzYyhzdHJ1Y3Qgdmhvc3RfZGV2ICpkZXYsIHU2NCBhZGRyLCB1MzIgbGVuLA0KIAkJ fQ0KIAkJX2lvdiA9IGlvdiArIHJldDsNCiAJCXNpemUgPSByZWctPm1lbW9yeV9zaXplIC0gYWRk ciArIHJlZy0+Z3Vlc3RfcGh5c19hZGRyOw0KLQkJX2lvdi0+aW92X2xlbiA9IG1pbigodTY0KWxl biwgc2l6ZSk7DQorCQlfaW92LT5pb3ZfbGVuID0gbWluKCh1NjQpbGVuIC0gcywgc2l6ZSk7DQog CQlfaW92LT5pb3ZfYmFzZSA9ICh2b2lkIF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKQ0KIAkJCShy ZWctPnVzZXJzcGFjZV9hZGRyICsgYWRkciAtIHJlZy0+Z3Vlc3RfcGh5c19hZGRyKTsNCiAJCXMg Kz0gc2l6ZTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9hZHA4ODYwX2Js LmMgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9hZHA4ODYwX2JsLmMNCmluZGV4IDY2YmM3NGQu LmIzNWM4NTcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9hZHA4ODYwX2Js LmMNCisrKyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2FkcDg4NjBfYmwuYw0KQEAgLTc5MSw3 ICs3OTEsNyBAQCBzdGF0aWMgaW50IGFkcDg4NjBfaTJjX3N1c3BlbmQoc3RydWN0IGkyY19jbGll bnQgKmNsaWVudCwgcG1fbWVzc2FnZV90IG1lc3NhZ2UpDQogDQogc3RhdGljIGludCBhZHA4ODYw X2kyY19yZXN1bWUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkNCiB7DQotCWFkcDg4NjBfc2V0 X2JpdHMoY2xpZW50LCBBRFA4ODYwX01EQ1IsIE5TVEJZKTsNCisJYWRwODg2MF9zZXRfYml0cyhj bGllbnQsIEFEUDg4NjBfTURDUiwgTlNUQlkgfCBCTEVOKTsNCiANCiAJcmV0dXJuIDA7DQogfQ0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2FkcDg4NzBfYmwuYyBiL2RyaXZl cnMvdmlkZW8vYmFja2xpZ2h0L2FkcDg4NzBfYmwuYw0KaW5kZXggNmM2OGE2OC4uMjVhOWIzYSAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L2FkcDg4NzBfYmwuYw0KKysrIGIv ZHJpdmVycy92aWRlby9iYWNrbGlnaHQvYWRwODg3MF9ibC5jDQpAQCAtOTY1LDcgKzk2NSw3IEBA IHN0YXRpYyBpbnQgYWRwODg3MF9pMmNfc3VzcGVuZChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50 LCBwbV9tZXNzYWdlX3QgbWVzc2FnZSkNCiANCiBzdGF0aWMgaW50IGFkcDg4NzBfaTJjX3Jlc3Vt ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQ0KIHsNCi0JYWRwODg3MF9zZXRfYml0cyhjbGll bnQsIEFEUDg4NzBfTURDUiwgTlNUQlkpOw0KKwlhZHA4ODcwX3NldF9iaXRzKGNsaWVudCwgQURQ ODg3MF9NRENSLCBOU1RCWSB8IEJMRU4pOw0KIA0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy92aWRlby9jb25zb2xlL2ZiY29uLmMgYi9kcml2ZXJzL3ZpZGVvL2NvbnNvbGUv ZmJjb24uYw0KaW5kZXggYmY5YTliNy4uOWI4YmNhYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdmlk ZW8vY29uc29sZS9mYmNvbi5jDQorKysgYi9kcml2ZXJzL3ZpZGVvL2NvbnNvbGUvZmJjb24uYw0K QEAgLTUzMCw2ICs1MzAsMzMgQEAgc3RhdGljIGludCBzZWFyY2hfZm9yX21hcHBlZF9jb24odm9p ZCkNCiAJcmV0dXJuIHJldHZhbDsNCiB9DQogDQorc3RhdGljIGludCBkb19mYmNvbl90YWtlb3Zl cihpbnQgc2hvd19sb2dvKQ0KK3sNCisJaW50IGVyciwgaTsNCisNCisJaWYgKCFudW1fcmVnaXN0 ZXJlZF9mYikNCisJCXJldHVybiAtRU5PREVWOw0KKw0KKwlpZiAoIXNob3dfbG9nbykNCisJCWxv Z29fc2hvd24gPSBGQkNPTl9MT0dPX0RPTlRTSE9XOw0KKw0KKwlmb3IgKGkgPSBmaXJzdF9mYl92 YzsgaSA8PSBsYXN0X2ZiX3ZjOyBpKyspDQorCQljb24yZmJfbWFwW2ldID0gaW5mb19pZHg7DQor DQorCWVyciA9IGRvX3Rha2Vfb3Zlcl9jb25zb2xlKCZmYl9jb24sIGZpcnN0X2ZiX3ZjLCBsYXN0 X2ZiX3ZjLA0KKwkJCQlmYmNvbl9pc19kZWZhdWx0KTsNCisNCisJaWYgKGVycikgew0KKwkJZm9y IChpID0gZmlyc3RfZmJfdmM7IGkgPD0gbGFzdF9mYl92YzsgaSsrKQ0KKwkJCWNvbjJmYl9tYXBb aV0gPSAtMTsNCisJCWluZm9faWR4ID0gLTE7DQorCX0gZWxzZSB7DQorCQlmYmNvbl9oYXNfY29u c29sZV9iaW5kID0gMTsNCisJfQ0KKw0KKwlyZXR1cm4gZXJyOw0KK30NCisNCiBzdGF0aWMgaW50 IGZiY29uX3Rha2VvdmVyKGludCBzaG93X2xvZ28pDQogew0KIAlpbnQgZXJyLCBpOw0KQEAgLTk5 MSw3ICsxMDE4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmZiY29uX3N0YXJ0dXAodm9pZCkNCiAJ fQ0KIA0KIAkvKiBTZXR1cCBkZWZhdWx0IGZvbnQgKi8NCi0JaWYgKCFwLT5mb250ZGF0YSkgew0K KwlpZiAoIXAtPmZvbnRkYXRhICYmICF2Yy0+dmNfZm9udC5kYXRhKSB7DQogCQlpZiAoIWZvbnRu YW1lWzBdIHx8ICEoZm9udCA9IGZpbmRfZm9udChmb250bmFtZSkpKQ0KIAkJCWZvbnQgPSBnZXRf ZGVmYXVsdF9mb250KGluZm8tPnZhci54cmVzLA0KIAkJCQkJCWluZm8tPnZhci55cmVzLA0KQEAg LTEwMDEsNiArMTAyOCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpmYmNvbl9zdGFydHVwKHZvaWQp DQogCQl2Yy0+dmNfZm9udC5oZWlnaHQgPSBmb250LT5oZWlnaHQ7DQogCQl2Yy0+dmNfZm9udC5k YXRhID0gKHZvaWQgKikocC0+Zm9udGRhdGEgPSBmb250LT5kYXRhKTsNCiAJCXZjLT52Y19mb250 LmNoYXJjb3VudCA9IDI1NjsgLyogRklYTUUgIE5lZWQgdG8gc3VwcG9ydCBtb3JlIGZvbnRzICov DQorCX0gZWxzZSB7DQorCQlwLT5mb250ZGF0YSA9IHZjLT52Y19mb250LmRhdGE7DQogCX0NCiAN CiAJY29scyA9IEZCQ09OX1NXQVAob3BzLT5yb3RhdGUsIGluZm8tPnZhci54cmVzLCBpbmZvLT52 YXIueXJlcyk7DQpAQCAtMTE2MCw5ICsxMTg5LDkgQEAgc3RhdGljIHZvaWQgZmJjb25faW5pdChz dHJ1Y3QgdmNfZGF0YSAqdmMsIGludCBpbml0KQ0KIAlvcHMtPnAgPSAmZmJfZGlzcGxheVtmZ19j b25zb2xlXTsNCiB9DQogDQotc3RhdGljIHZvaWQgZmJjb25fZnJlZV9mb250KHN0cnVjdCBkaXNw bGF5ICpwKQ0KK3N0YXRpYyB2b2lkIGZiY29uX2ZyZWVfZm9udChzdHJ1Y3QgZGlzcGxheSAqcCwg Ym9vbCBmcmVlZm9udCkNCiB7DQotCWlmIChwLT51c2VyZm9udCAmJiBwLT5mb250ZGF0YSAmJiAo LS1SRUZDT1VOVChwLT5mb250ZGF0YSkgPT0gMCkpDQorCWlmIChmcmVlZm9udCAmJiBwLT51c2Vy Zm9udCAmJiBwLT5mb250ZGF0YSAmJiAoLS1SRUZDT1VOVChwLT5mb250ZGF0YSkgPT0gMCkpDQog CQlrZnJlZShwLT5mb250ZGF0YSAtIEZPTlRfRVhUUkFfV09SRFMgKiBzaXplb2YoaW50KSk7DQog CXAtPmZvbnRkYXRhID0gTlVMTDsNCiAJcC0+dXNlcmZvbnQgPSAwOw0KQEAgLTExNzQsOCArMTIw Myw4IEBAIHN0YXRpYyB2b2lkIGZiY29uX2RlaW5pdChzdHJ1Y3QgdmNfZGF0YSAqdmMpDQogCXN0 cnVjdCBmYl9pbmZvICppbmZvOw0KIAlzdHJ1Y3QgZmJjb25fb3BzICpvcHM7DQogCWludCBpZHg7 DQorCWJvb2wgZnJlZV9mb250ID0gdHJ1ZTsNCiANCi0JZmJjb25fZnJlZV9mb250KHApOw0KIAlp ZHggPSBjb24yZmJfbWFwW3ZjLT52Y19udW1dOw0KIA0KIAlpZiAoaWR4ID09IC0xKQ0KQEAgLTEx ODYsNiArMTIxNSw4IEBAIHN0YXRpYyB2b2lkIGZiY29uX2RlaW5pdChzdHJ1Y3QgdmNfZGF0YSAq dmMpDQogCWlmICghaW5mbykNCiAJCWdvdG8gZmluaXNoZWQ7DQogDQorCWlmIChpbmZvLT5mbGFn cyAmIEZCSU5GT19NSVNDX0ZJUk1XQVJFKQ0KKwkJZnJlZV9mb250ID0gZmFsc2U7DQogCW9wcyA9 IGluZm8tPmZiY29uX3BhcjsNCiANCiAJaWYgKCFvcHMpDQpAQCAtMTE5Nyw2ICsxMjI4LDggQEAg c3RhdGljIHZvaWQgZmJjb25fZGVpbml0KHN0cnVjdCB2Y19kYXRhICp2YykNCiAJb3BzLT5mbGFn cyAmPSB+RkJDT05fRkxBR1NfSU5JVDsNCiBmaW5pc2hlZDoNCiANCisJZmJjb25fZnJlZV9mb250 KHAsIGZyZWVfZm9udCk7DQorDQogCWlmICghY29uX2lzX2JvdW5kKCZmYl9jb24pKQ0KIAkJZmJj b25fZXhpdCgpOw0KIA0KQEAgLTI5NzgsNyArMzAxMSw3IEBAIHN0YXRpYyBpbnQgZmJjb25fdW5i aW5kKHZvaWQpDQogew0KIAlpbnQgcmV0Ow0KIA0KLQlyZXQgPSB1bmJpbmRfY29uX2RyaXZlcigm ZmJfY29uLCBmaXJzdF9mYl92YywgbGFzdF9mYl92YywNCisJcmV0ID0gZG9fdW5iaW5kX2Nvbl9k cml2ZXIoJmZiX2NvbiwgZmlyc3RfZmJfdmMsIGxhc3RfZmJfdmMsDQogCQkJCWZiY29uX2lzX2Rl ZmF1bHQpOw0KIA0KIAlpZiAoIXJldCkNCkBAIC0zMDUxLDcgKzMwODQsNyBAQCBzdGF0aWMgaW50 IGZiY29uX2ZiX3VucmVnaXN0ZXJlZChzdHJ1Y3QgZmJfaW5mbyAqaW5mbykNCiAJCXByaW1hcnlf ZGV2aWNlID0gLTE7DQogDQogCWlmICghbnVtX3JlZ2lzdGVyZWRfZmIpDQotCQl1bnJlZ2lzdGVy X2Nvbl9kcml2ZXIoJmZiX2Nvbik7DQorCQlkb191bnJlZ2lzdGVyX2Nvbl9kcml2ZXIoJmZiX2Nv bik7DQogDQogCXJldHVybiAwOw0KIH0NCkBAIC0zMTE2LDcgKzMxNDksNyBAQCBzdGF0aWMgaW50 IGZiY29uX2ZiX3JlZ2lzdGVyZWQoc3RydWN0IGZiX2luZm8gKmluZm8pDQogCQl9DQogDQogCQlp ZiAoaW5mb19pZHggIT0gLTEpDQotCQkJcmV0ID0gZmJjb25fdGFrZW92ZXIoMSk7DQorCQkJcmV0 ID0gZG9fZmJjb25fdGFrZW92ZXIoMSk7DQogCX0gZWxzZSB7DQogCQlmb3IgKGkgPSBmaXJzdF9m Yl92YzsgaSA8PSBsYXN0X2ZiX3ZjOyBpKyspIHsNCiAJCQlpZiAoY29uMmZiX21hcF9ib290W2ld ID09IGlkeCkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2NvbnNvbGUvdmdhY29uLmMgYi9k cml2ZXJzL3ZpZGVvL2NvbnNvbGUvdmdhY29uLmMNCmluZGV4IGQ0NDlhNzQuLjU4NTVkMTcgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL3ZpZGVvL2NvbnNvbGUvdmdhY29uLmMNCisrKyBiL2RyaXZlcnMv dmlkZW8vY29uc29sZS92Z2Fjb24uYw0KQEAgLTEwNjQsNyArMTA2NCw3IEBAIHN0YXRpYyBpbnQg dmdhY29uX2RvX2ZvbnRfb3Aoc3RydWN0IHZnYXN0YXRlICpzdGF0ZSxjaGFyICphcmcsaW50IHNl dCxpbnQgY2g1MTIpDQogCXVuc2lnbmVkIHNob3J0IHZpZGVvX3BvcnRfc3RhdHVzID0gdmdhX3Zp ZGVvX3BvcnRfcmVnICsgNjsNCiAJaW50IGZvbnRfc2VsZWN0ID0gMHgwMCwgYmVnLCBpOw0KIAlj aGFyICpjaGFybWFwOw0KLQkNCisJYm9vbCBjbGVhcl9hdHRyaWJzID0gZmFsc2U7DQogCWlmICh2 Z2FfdmlkZW9fdHlwZSAhPSBWSURFT19UWVBFX0VHQU0pIHsNCiAJCWNoYXJtYXAgPSAoY2hhciAq KSBWR0FfTUFQX01FTShjb2xvdXJtYXAsIDApOw0KIAkJYmVnID0gMHgwZTsNCkBAIC0xMTY5LDEy ICsxMTY5LDYgQEAgc3RhdGljIGludCB2Z2Fjb25fZG9fZm9udF9vcChzdHJ1Y3Qgdmdhc3RhdGUg KnN0YXRlLGNoYXIgKmFyZyxpbnQgc2V0LGludCBjaDUxMikNCiANCiAJLyogaWYgNTEyIGNoYXIg bW9kZSBpcyBhbHJlYWR5IGVuYWJsZWQgZG9uJ3QgcmUtZW5hYmxlIGl0LiAqLw0KIAlpZiAoKHNl dCkgJiYgKGNoNTEyICE9IHZnYV81MTJfY2hhcnMpKSB7DQotCQkvKiBhdHRyaWJ1dGUgY29udHJv bGxlciAqLw0KLQkJZm9yIChpID0gMDsgaSA8IE1BWF9OUl9DT05TT0xFUzsgaSsrKSB7DQotCQkJ c3RydWN0IHZjX2RhdGEgKmMgPSB2Y19jb25zW2ldLmQ7DQotCQkJaWYgKGMgJiYgYy0+dmNfc3cg PT0gJnZnYV9jb24pDQotCQkJCWMtPnZjX2hpX2ZvbnRfbWFzayA9IGNoNTEyID8gMHgwODAwIDog MDsNCi0JCX0NCiAJCXZnYV81MTJfY2hhcnMgPSBjaDUxMjsNCiAJCS8qIDI1Ni1jaGFyOiBlbmFi bGUgaW50ZW5zaXR5IGJpdA0KIAkJICAgNTEyLWNoYXI6IGRpc2FibGUgaW50ZW5zaXR5IGJpdCAq Lw0KQEAgLTExODUsOCArMTE3OSwyMiBAQCBzdGF0aWMgaW50IHZnYWNvbl9kb19mb250X29wKHN0 cnVjdCB2Z2FzdGF0ZSAqc3RhdGUsY2hhciAqYXJnLGludCBzZXQsaW50IGNoNTEyKQ0KIAkJICAg aXQgbWVhbnMsIGJ1dCBpdCB3b3JrcywgYW5kIGl0IGFwcGVhcnMgbmVjZXNzYXJ5ICovDQogCQlp bmJfcCh2aWRlb19wb3J0X3N0YXR1cyk7DQogCQl2Z2Ffd2F0dHIoc3RhdGUtPnZnYWJhc2UsIFZH QV9BUl9FTkFCTEVfRElTUExBWSwgMCk7CQ0KKwkJY2xlYXJfYXR0cmlicyA9IHRydWU7DQogCX0N CiAJcmF3X3NwaW5fdW5sb2NrX2lycSgmdmdhX2xvY2spOw0KKw0KKwlpZiAoY2xlYXJfYXR0cmli cykgew0KKwkJZm9yIChpID0gMDsgaSA8IE1BWF9OUl9DT05TT0xFUzsgaSsrKSB7DQorCQkJc3Ry dWN0IHZjX2RhdGEgKmMgPSB2Y19jb25zW2ldLmQ7DQorCQkJaWYgKGMgJiYgYy0+dmNfc3cgPT0g JnZnYV9jb24pIHsNCisJCQkJLyogZm9yY2UgaGkgZm9udCBtYXNrIHRvIDAsIHNvIHdlIGFsd2F5 cyBjbGVhcg0KKwkJCQkgICB0aGUgYml0IG9uIGVpdGhlciB0cmFuc2l0aW9uICovDQorCQkJCWMt PnZjX2hpX2ZvbnRfbWFzayA9IDB4MDA7DQorCQkJCWNsZWFyX2J1ZmZlcl9hdHRyaWJ1dGVzKGMp Ow0KKwkJCQljLT52Y19oaV9mb250X21hc2sgPSBjaDUxMiA/IDB4MDgwMCA6IDA7DQorCQkJfQ0K KwkJfQ0KKwl9DQogCXJldHVybiAwOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVv L2ZibWVtLmMgYi9kcml2ZXJzL3ZpZGVvL2ZibWVtLmMNCmluZGV4IDdhNDEyMjAuLmMxMzNkZGUg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZibWVtLmMNCisrKyBiL2RyaXZlcnMvdmlkZW8v ZmJtZW0uYw0KQEAgLTE2MjgsNyArMTYyOCw5IEBAIHN0YXRpYyBpbnQgZG9fcmVnaXN0ZXJfZnJh bWVidWZmZXIoc3RydWN0IGZiX2luZm8gKmZiX2luZm8pDQogCWV2ZW50LmluZm8gPSBmYl9pbmZv Ow0KIAlpZiAoIWxvY2tfZmJfaW5mbyhmYl9pbmZvKSkNCiAJCXJldHVybiAtRU5PREVWOw0KKwlj b25zb2xlX2xvY2soKTsNCiAJZmJfbm90aWZpZXJfY2FsbF9jaGFpbihGQl9FVkVOVF9GQl9SRUdJ U1RFUkVELCAmZXZlbnQpOw0KKwljb25zb2xlX3VubG9jaygpOw0KIAl1bmxvY2tfZmJfaW5mbyhm Yl9pbmZvKTsNCiAJcmV0dXJuIDA7DQogfQ0KQEAgLTE2NDQsOCArMTY0NiwxMCBAQCBzdGF0aWMg aW50IGRvX3VucmVnaXN0ZXJfZnJhbWVidWZmZXIoc3RydWN0IGZiX2luZm8gKmZiX2luZm8pDQog DQogCWlmICghbG9ja19mYl9pbmZvKGZiX2luZm8pKQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQorCWNv bnNvbGVfbG9jaygpOw0KIAlldmVudC5pbmZvID0gZmJfaW5mbzsNCiAJcmV0ID0gZmJfbm90aWZp ZXJfY2FsbF9jaGFpbihGQl9FVkVOVF9GQl9VTkJJTkQsICZldmVudCk7DQorCWNvbnNvbGVfdW5s b2NrKCk7DQogCXVubG9ja19mYl9pbmZvKGZiX2luZm8pOw0KIA0KIAlpZiAocmV0KQ0KQEAgLTE2 NjAsNyArMTY2NCw5IEBAIHN0YXRpYyBpbnQgZG9fdW5yZWdpc3Rlcl9mcmFtZWJ1ZmZlcihzdHJ1 Y3QgZmJfaW5mbyAqZmJfaW5mbykNCiAJbnVtX3JlZ2lzdGVyZWRfZmItLTsNCiAJZmJfY2xlYW51 cF9kZXZpY2UoZmJfaW5mbyk7DQogCWV2ZW50LmluZm8gPSBmYl9pbmZvOw0KKwljb25zb2xlX2xv Y2soKTsNCiAJZmJfbm90aWZpZXJfY2FsbF9jaGFpbihGQl9FVkVOVF9GQl9VTlJFR0lTVEVSRUQs ICZldmVudCk7DQorCWNvbnNvbGVfdW5sb2NrKCk7DQogDQogCS8qIHRoaXMgbWF5IGZyZWUgZmIg aW5mbyAqLw0KIAlwdXRfZmJfaW5mbyhmYl9pbmZvKTsNCkBAIC0xODMxLDExICsxODM3LDggQEAg aW50IGZiX25ld19tb2RlbGlzdChzdHJ1Y3QgZmJfaW5mbyAqaW5mbykNCiAJZXJyID0gMTsNCiAN CiAJaWYgKCFsaXN0X2VtcHR5KCZpbmZvLT5tb2RlbGlzdCkpIHsNCi0JCWlmICghbG9ja19mYl9p bmZvKGluZm8pKQ0KLQkJCXJldHVybiAtRU5PREVWOw0KIAkJZXZlbnQuaW5mbyA9IGluZm87DQog CQllcnIgPSBmYl9ub3RpZmllcl9jYWxsX2NoYWluKEZCX0VWRU5UX05FV19NT0RFTElTVCwgJmV2 ZW50KTsNCi0JCXVubG9ja19mYl9pbmZvKGluZm8pOw0KIAl9DQogDQogCXJldHVybiBlcnI7DQpk aWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYnN5c2ZzLmMgYi9kcml2ZXJzL3ZpZGVvL2Zic3lz ZnMuYw0KaW5kZXggNjdhZmE5Yy4uMzAzZmI5ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdmlkZW8v ZmJzeXNmcy5jDQorKysgYi9kcml2ZXJzL3ZpZGVvL2Zic3lzZnMuYw0KQEAgLTE3NSw2ICsxNzUs OCBAQCBzdGF0aWMgc3NpemVfdCBzdG9yZV9tb2RlcyhzdHJ1Y3QgZGV2aWNlICpkZXZpY2UsDQog CWlmIChpICogc2l6ZW9mKHN0cnVjdCBmYl92aWRlb21vZGUpICE9IGNvdW50KQ0KIAkJcmV0dXJu IC1FSU5WQUw7DQogDQorCWlmICghbG9ja19mYl9pbmZvKGZiX2luZm8pKQ0KKwkJcmV0dXJuIC1F Tk9ERVY7DQogCWNvbnNvbGVfbG9jaygpOw0KIAlsaXN0X3NwbGljZSgmZmJfaW5mby0+bW9kZWxp c3QsICZvbGRfbGlzdCk7DQogCWZiX3ZpZGVvbW9kZV90b19tb2RlbGlzdCgoY29uc3Qgc3RydWN0 IGZiX3ZpZGVvbW9kZSAqKWJ1ZiwgaSwNCkBAIC0xODYsNiArMTg4LDcgQEAgc3RhdGljIHNzaXpl X3Qgc3RvcmVfbW9kZXMoc3RydWN0IGRldmljZSAqZGV2aWNlLA0KIAkJZmJfZGVzdHJveV9tb2Rl bGlzdCgmb2xkX2xpc3QpOw0KIA0KIAljb25zb2xlX3VubG9jaygpOw0KKwl1bmxvY2tfZmJfaW5m byhmYl9pbmZvKTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVu L2V2dGNobi5jIGIvZHJpdmVycy94ZW4vZXZ0Y2huLmMNCmluZGV4IGRiYzEzZTkuLmM5M2Q1OWUg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3hlbi9ldnRjaG4uYw0KKysrIGIvZHJpdmVycy94ZW4vZXZ0 Y2huLmMNCkBAIC0yNjksNiArMjY5LDE0IEBAIHN0YXRpYyBpbnQgZXZ0Y2huX2JpbmRfdG9fdXNl cihzdHJ1Y3QgcGVyX3VzZXJfZGF0YSAqdSwgaW50IHBvcnQpDQogCQkJCSAgICAgICB1LT5uYW1l LCAodm9pZCAqKSh1bnNpZ25lZCBsb25nKXBvcnQpOw0KIAlpZiAocmMgPj0gMCkNCiAJCXJjID0g MDsNCisJZWxzZSB7DQorCQkvKiBiaW5kIGZhaWxlZCwgc2hvdWxkIGNsb3NlIHRoZSBwb3J0IG5v dyAqLw0KKwkJc3RydWN0IGV2dGNobl9jbG9zZSBjbG9zZTsNCisJCWNsb3NlLnBvcnQgPSBwb3J0 Ow0KKwkJaWYgKEhZUEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcChFVlRDSE5PUF9jbG9zZSwgJmNs b3NlKSAhPSAwKQ0KKwkJCUJVRygpOw0KKwkJc2V0X3BvcnRfdXNlcihwb3J0LCBOVUxMKTsNCisJ fQ0KIA0KIAlyZXR1cm4gcmM7DQogfQ0KQEAgLTI3Nyw2ICsyODUsOCBAQCBzdGF0aWMgdm9pZCBl dnRjaG5fdW5iaW5kX2Zyb21fdXNlcihzdHJ1Y3QgcGVyX3VzZXJfZGF0YSAqdSwgaW50IHBvcnQp DQogew0KIAlpbnQgaXJxID0gaXJxX2Zyb21fZXZ0Y2huKHBvcnQpOw0KIA0KKwlCVUdfT04oaXJx IDwgMCk7DQorDQogCXVuYmluZF9mcm9tX2lycWhhbmRsZXIoaXJxLCAodm9pZCAqKSh1bnNpZ25l ZCBsb25nKXBvcnQpOw0KIA0KIAlzZXRfcG9ydF91c2VyKHBvcnQsIE5VTEwpOw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaWJhY2tfb3BzLmMgYi9kcml2ZXJzL3hlbi94 ZW4tcGNpYmFjay9wY2liYWNrX29wcy5jDQppbmRleCA2MzYxNmQ3Li5kMDdjNGNkIDEwMDY0NA0K LS0tIGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19vcHMuYw0KKysrIGIvZHJpdmVy cy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19vcHMuYw0KQEAgLTgsNiArOCw3IEBADQogI2luY2x1 ZGUgPGxpbnV4L2JpdG9wcy5oPg0KICNpbmNsdWRlIDx4ZW4vZXZlbnRzLmg+DQogI2luY2x1ZGUg PGxpbnV4L3NjaGVkLmg+DQorI2luY2x1ZGUgPGxpbnV4L3JhdGVsaW1pdC5oPg0KICNpbmNsdWRl ICJwY2liYWNrLmgiDQogDQogaW50IHZlcmJvc2VfcmVxdWVzdDsNCkBAIC0xMzUsNyArMTM2LDYg QEAgaW50IHhlbl9wY2lia19lbmFibGVfbXNpKHN0cnVjdCB4ZW5fcGNpYmtfZGV2aWNlICpwZGV2 LA0KIAkJCSBzdHJ1Y3QgcGNpX2RldiAqZGV2LCBzdHJ1Y3QgeGVuX3BjaV9vcCAqb3ApDQogew0K IAlzdHJ1Y3QgeGVuX3BjaWJrX2Rldl9kYXRhICpkZXZfZGF0YTsNCi0JaW50IG90aGVyZW5kID0g cGRldi0+eGRldi0+b3RoZXJlbmRfaWQ7DQogCWludCBzdGF0dXM7DQogDQogCWlmICh1bmxpa2Vs eSh2ZXJib3NlX3JlcXVlc3QpKQ0KQEAgLTE0NCw4ICsxNDQsOSBAQCBpbnQgeGVuX3BjaWJrX2Vu YWJsZV9tc2koc3RydWN0IHhlbl9wY2lia19kZXZpY2UgKnBkZXYsDQogCXN0YXR1cyA9IHBjaV9l bmFibGVfbXNpKGRldik7DQogDQogCWlmIChzdGF0dXMpIHsNCi0JCXByaW50ayhLRVJOX0VSUiAi ZXJyb3IgZW5hYmxlIG1zaSBmb3IgZ3Vlc3QgJXggc3RhdHVzICV4XG4iLA0KLQkJCW90aGVyZW5k LCBzdGF0dXMpOw0KKwkJcHJfd2Fybl9yYXRlbGltaXRlZChEUlZfTkFNRSAiOiAlczogZXJyb3Ig ZW5hYmxpbmcgTVNJIGZvciBndWVzdCAldTogZXJyICVkXG4iLA0KKwkJCQkgICAgcGNpX25hbWUo ZGV2KSwgcGRldi0+eGRldi0+b3RoZXJlbmRfaWQsDQorCQkJCSAgICBzdGF0dXMpOw0KIAkJb3At PnZhbHVlID0gMDsNCiAJCXJldHVybiBYRU5fUENJX0VSUl9vcF9mYWlsZWQ7DQogCX0NCkBAIC0y MjMsMTAgKzIyNCwxMCBAQCBpbnQgeGVuX3BjaWJrX2VuYWJsZV9tc2l4KHN0cnVjdCB4ZW5fcGNp YmtfZGV2aWNlICpwZGV2LA0KIAkJCQkJCXBjaV9uYW1lKGRldiksIGksDQogCQkJCQkJb3AtPm1z aXhfZW50cmllc1tpXS52ZWN0b3IpOw0KIAkJfQ0KLQl9IGVsc2Ugew0KLQkJcHJpbnRrKEtFUk5f V0FSTklORyBEUlZfTkFNRSAiOiAlczogZmFpbGVkIHRvIGVuYWJsZSBNU0ktWDogZXJyICVkIVxu IiwNCi0JCQlwY2lfbmFtZShkZXYpLCByZXN1bHQpOw0KLQl9DQorCX0gZWxzZQ0KKwkJcHJfd2Fy bl9yYXRlbGltaXRlZChEUlZfTkFNRSAiOiAlczogZXJyb3IgZW5hYmxpbmcgTVNJLVggZm9yIGd1 ZXN0ICV1OiBlcnIgJWQhXG4iLA0KKwkJCQkgICAgcGNpX25hbWUoZGV2KSwgcGRldi0+eGRldi0+ b3RoZXJlbmRfaWQsDQorCQkJCSAgICByZXN1bHQpOw0KIAlrZnJlZShlbnRyaWVzKTsNCiANCiAJ b3AtPnZhbHVlID0gcmVzdWx0Ow0KZGlmZiAtLWdpdCBhL2ZzL2JpbmZtdF9lbTg2LmMgYi9mcy9i aW5mbXRfZW04Ni5jDQppbmRleCBiOGU4YjBhLi40YTFiOTg0IDEwMDY0NA0KLS0tIGEvZnMvYmlu Zm10X2VtODYuYw0KKysrIGIvZnMvYmluZm10X2VtODYuYw0KQEAgLTQyLDcgKzQyLDYgQEAgc3Rh dGljIGludCBsb2FkX2VtODYoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxzdHJ1Y3QgcHRfcmVn cyAqcmVncykNCiAJCQlyZXR1cm4gLUVOT0VYRUM7DQogCX0NCiANCi0JYnBybS0+cmVjdXJzaW9u X2RlcHRoKys7IC8qIFdlbGwsIHRoZSBiYW5nLXNoZWxsIGlzIGltcGxpY2l0Li4uICovDQogCWFs bG93X3dyaXRlX2FjY2VzcyhicHJtLT5maWxlKTsNCiAJZnB1dChicHJtLT5maWxlKTsNCiAJYnBy bS0+ZmlsZSA9IE5VTEw7DQpkaWZmIC0tZ2l0IGEvZnMvYmluZm10X21pc2MuYyBiL2ZzL2JpbmZt dF9taXNjLmMNCmluZGV4IGNhNTJlOTIuLjc0MjNjYjkgMTAwNjQ0DQotLS0gYS9mcy9iaW5mbXRf bWlzYy5jDQorKysgYi9mcy9iaW5mbXRfbWlzYy5jDQpAQCAtMTE2LDEwICsxMTYsNiBAQCBzdGF0 aWMgaW50IGxvYWRfbWlzY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwgc3RydWN0 IHB0X3JlZ3MgKnJlZ3MpDQogCWlmICghZW5hYmxlZCkNCiAJCWdvdG8gX3JldDsNCiANCi0JcmV0 dmFsID0gLUVOT0VYRUM7DQotCWlmIChicHJtLT5yZWN1cnNpb25fZGVwdGggPiBCSU5QUk1fTUFY X1JFQ1VSU0lPTikNCi0JCWdvdG8gX3JldDsNCi0NCiAJLyogdG8ga2VlcCBsb2NraW5nIHRpbWUg bG93LCB3ZSBjb3B5IHRoZSBpbnRlcnByZXRlciBzdHJpbmcgKi8NCiAJcmVhZF9sb2NrKCZlbnRy aWVzX2xvY2spOw0KIAlmbXQgPSBjaGVja19maWxlKGJwcm0pOw0KQEAgLTE5OSw4ICsxOTUsNiBA QCBzdGF0aWMgaW50IGxvYWRfbWlzY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwg c3RydWN0IHB0X3JlZ3MgKnJlZ3MpDQogCWlmIChyZXR2YWwgPCAwKQ0KIAkJZ290byBfZXJyb3I7 DQogDQotCWJwcm0tPnJlY3Vyc2lvbl9kZXB0aCsrOw0KLQ0KIAlyZXR2YWwgPSBzZWFyY2hfYmlu YXJ5X2hhbmRsZXIgKGJwcm0sIHJlZ3MpOw0KIAlpZiAocmV0dmFsIDwgMCkNCiAJCWdvdG8gX2Vy cm9yOw0KZGlmZiAtLWdpdCBhL2ZzL2JpbmZtdF9zY3JpcHQuYyBiL2ZzL2JpbmZtdF9zY3JpcHQu Yw0KaW5kZXggZTM5YzE4YS4uMjExZWRlMCAxMDA2NDQNCi0tLSBhL2ZzL2JpbmZtdF9zY3JpcHQu Yw0KKysrIGIvZnMvYmluZm10X3NjcmlwdC5jDQpAQCAtMjIsMTUgKzIyLDEzIEBAIHN0YXRpYyBp bnQgbG9hZF9zY3JpcHQoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxzdHJ1Y3QgcHRfcmVncyAq cmVncykNCiAJY2hhciBpbnRlcnBbQklOUFJNX0JVRl9TSVpFXTsNCiAJaW50IHJldHZhbDsNCiAN Ci0JaWYgKChicHJtLT5idWZbMF0gIT0gJyMnKSB8fCAoYnBybS0+YnVmWzFdICE9ICchJykgfHwN Ci0JICAgIChicHJtLT5yZWN1cnNpb25fZGVwdGggPiBCSU5QUk1fTUFYX1JFQ1VSU0lPTikpDQor CWlmICgoYnBybS0+YnVmWzBdICE9ICcjJykgfHwgKGJwcm0tPmJ1ZlsxXSAhPSAnIScpKQ0KIAkJ cmV0dXJuIC1FTk9FWEVDOw0KIAkvKg0KIAkgKiBUaGlzIHNlY3Rpb24gZG9lcyB0aGUgIyEgaW50 ZXJwcmV0YXRpb24uDQogCSAqIFNvcnRhIGNvbXBsaWNhdGVkLCBidXQgaG9wZWZ1bGx5IGl0IHdp bGwgd29yay4gIC1UWVQNCiAJICovDQogDQotCWJwcm0tPnJlY3Vyc2lvbl9kZXB0aCsrOw0KIAlh bGxvd193cml0ZV9hY2Nlc3MoYnBybS0+ZmlsZSk7DQogCWZwdXQoYnBybS0+ZmlsZSk7DQogCWJw cm0tPmZpbGUgPSBOVUxMOw0KZGlmZiAtLWdpdCBhL2ZzL2Jsb2NrX2Rldi5jIGIvZnMvYmxvY2tf ZGV2LmMNCmluZGV4IDliOTg5ODcuLjYxM2VkZDggMTAwNjQ0DQotLS0gYS9mcy9ibG9ja19kZXYu Yw0KKysrIGIvZnMvYmxvY2tfZGV2LmMNCkBAIC04MiwxMyArODIsMTQgQEAgc2VjdG9yX3QgYmxr ZGV2X21heF9ibG9jayhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQ0KIH0NCiANCiAvKiBLaWxs IF9hbGxfIGJ1ZmZlcnMgYW5kIHBhZ2VjYWNoZSAsIGRpcnR5IG9yIG5vdC4uICovDQotc3RhdGlj IHZvaWQga2lsbF9iZGV2KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpDQordm9pZCBraWxsX2Jk ZXYoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldikNCiB7DQogCWlmIChiZGV2LT5iZF9pbm9kZS0+ aV9tYXBwaW5nLT5ucnBhZ2VzID09IDApDQogCQlyZXR1cm47DQogCWludmFsaWRhdGVfYmhfbHJ1 cygpOw0KIAl0cnVuY2F0ZV9pbm9kZV9wYWdlcyhiZGV2LT5iZF9pbm9kZS0+aV9tYXBwaW5nLCAw KTsNCiB9CQ0KK0VYUE9SVF9TWU1CT0woa2lsbF9iZGV2KTsNCiANCiBpbnQgc2V0X2Jsb2Nrc2l6 ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBpbnQgc2l6ZSkNCiB7DQpAQCAtMTAyNCw2ICsx MDI1LDcgQEAgaW50IHJldmFsaWRhdGVfZGlzayhzdHJ1Y3QgZ2VuZGlzayAqZGlzaykNCiANCiAJ bXV0ZXhfbG9jaygmYmRldi0+YmRfbXV0ZXgpOw0KIAljaGVja19kaXNrX3NpemVfY2hhbmdlKGRp c2ssIGJkZXYpOw0KKwliZGV2LT5iZF9pbnZhbGlkYXRlZCA9IDA7DQogCW11dGV4X3VubG9jaygm YmRldi0+YmRfbXV0ZXgpOw0KIAliZHB1dChiZGV2KTsNCiAJcmV0dXJuIHJldDsNCmRpZmYgLS1n aXQgYS9mcy9jYWNoZWZpbGVzL3Jkd3IuYyBiL2ZzL2NhY2hlZmlsZXMvcmR3ci5jDQppbmRleCAw ZTNjMDkyLi5iNGQyNDM4IDEwMDY0NA0KLS0tIGEvZnMvY2FjaGVmaWxlcy9yZHdyLmMNCisrKyBi L2ZzL2NhY2hlZmlsZXMvcmR3ci5jDQpAQCAtOTE4LDcgKzkxOCw3IEBAIGludCBjYWNoZWZpbGVz X3dyaXRlX3BhZ2Uoc3RydWN0IGZzY2FjaGVfc3RvcmFnZSAqb3AsIHN0cnVjdCBwYWdlICpwYWdl KQ0KIAkgKiBvd24gdGltZSAqLw0KIAlkZ2V0KG9iamVjdC0+YmFja2VyKTsNCiAJbW50Z2V0KGNh Y2hlLT5tbnQpOw0KLQlmaWxlID0gZGVudHJ5X29wZW4ob2JqZWN0LT5iYWNrZXIsIGNhY2hlLT5t bnQsIE9fUkRXUiwNCisJZmlsZSA9IGRlbnRyeV9vcGVuKG9iamVjdC0+YmFja2VyLCBjYWNoZS0+ bW50LCBPX1JEV1IgfCBPX0xBUkdFRklMRSwNCiAJCQkgICBjYWNoZS0+Y2FjaGVfY3JlZCk7DQog CWlmIChJU19FUlIoZmlsZSkpIHsNCiAJCXJldCA9IFBUUl9FUlIoZmlsZSk7DQpkaWZmIC0tZ2l0 IGEvZnMvZGlyZWN0LWlvLmMgYi9mcy9kaXJlY3QtaW8uYw0KaW5kZXggZDc0MGFiNi4uYWM0MDFk MiAxMDA2NDQNCi0tLSBhL2ZzL2RpcmVjdC1pby5jDQorKysgYi9mcy9kaXJlY3QtaW8uYw0KQEAg LTMwNCw5ICszMDQsOSBAQCBzdGF0aWMgc3NpemVfdCBkaW9fY29tcGxldGUoc3RydWN0IGRpbyAq ZGlvLCBsb2ZmX3Qgb2Zmc2V0LCBzc2l6ZV90IHJldCwgYm9vbCBpcw0KIAkJZGlvLT5lbmRfaW8o ZGlvLT5pb2NiLCBvZmZzZXQsIHRyYW5zZmVycmVkLA0KIAkJCSAgICBkaW8tPnByaXZhdGUsIHJl dCwgaXNfYXN5bmMpOw0KIAl9IGVsc2Ugew0KKwkJaW5vZGVfZGlvX2RvbmUoZGlvLT5pbm9kZSk7 DQogCQlpZiAoaXNfYXN5bmMpDQogCQkJYWlvX2NvbXBsZXRlKGRpby0+aW9jYiwgcmV0LCAwKTsN Ci0JCWlub2RlX2Rpb19kb25lKGRpby0+aW5vZGUpOw0KIAl9DQogDQogCXJldHVybiByZXQ7DQpk aWZmIC0tZ2l0IGEvZnMvZXhlYy5jIGIvZnMvZXhlYy5jDQppbmRleCBjMjdmYTBkLi4zMTJlMjk3 IDEwMDY0NA0KLS0tIGEvZnMvZXhlYy5jDQorKysgYi9mcy9leGVjLmMNCkBAIC0xMzg1LDYgKzEz ODUsMTAgQEAgaW50IHNlYXJjaF9iaW5hcnlfaGFuZGxlcihzdHJ1Y3QgbGludXhfYmlucHJtICpi cHJtLHN0cnVjdCBwdF9yZWdzICpyZWdzKQ0KIAlzdHJ1Y3QgbGludXhfYmluZm10ICpmbXQ7DQog CXBpZF90IG9sZF9waWQ7DQogDQorCS8qIFRoaXMgYWxsb3dzIDQgbGV2ZWxzIG9mIGJpbmZtdCBy ZXdyaXRlcyBiZWZvcmUgZmFpbGluZyBoYXJkLiAqLw0KKwlpZiAoZGVwdGggPiA1KQ0KKwkJcmV0 dXJuIC1FTE9PUDsNCisNCiAJcmV0dmFsID0gc2VjdXJpdHlfYnBybV9jaGVjayhicHJtKTsNCiAJ aWYgKHJldHZhbCkNCiAJCXJldHVybiByZXR2YWw7DQpAQCAtMTQwOCwxMiArMTQxMiw4IEBAIGlu dCBzZWFyY2hfYmluYXJ5X2hhbmRsZXIoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSxzdHJ1Y3Qg cHRfcmVncyAqcmVncykNCiAJCQlpZiAoIXRyeV9tb2R1bGVfZ2V0KGZtdC0+bW9kdWxlKSkNCiAJ CQkJY29udGludWU7DQogCQkJcmVhZF91bmxvY2soJmJpbmZtdF9sb2NrKTsNCisJCQlicHJtLT5y ZWN1cnNpb25fZGVwdGggPSBkZXB0aCArIDE7DQogCQkJcmV0dmFsID0gZm4oYnBybSwgcmVncyk7 DQotCQkJLyoNCi0JCQkgKiBSZXN0b3JlIHRoZSBkZXB0aCBjb3VudGVyIHRvIGl0cyBzdGFydGlu ZyB2YWx1ZQ0KLQkJCSAqIGluIHRoaXMgY2FsbCwgc28gd2UgZG9uJ3QgaGF2ZSB0byByZWx5IG9u IGV2ZXJ5DQotCQkJICogbG9hZF9iaW5hcnkgZnVuY3Rpb24gdG8gcmVzdG9yZSBpdCBvbiByZXR1 cm4uDQotCQkJICovDQogCQkJYnBybS0+cmVjdXJzaW9uX2RlcHRoID0gZGVwdGg7DQogCQkJaWYg KHJldHZhbCA+PSAwKSB7DQogCQkJCWlmIChkZXB0aCA9PSAwKQ0KZGlmZiAtLWdpdCBhL2ZzL2V4 dDQvYmFsbG9jLmMgYi9mcy9leHQ0L2JhbGxvYy5jDQppbmRleCBkNjk3MGY3Li40ODRmZmVlIDEw MDY0NA0KLS0tIGEvZnMvZXh0NC9iYWxsb2MuYw0KKysrIGIvZnMvZXh0NC9iYWxsb2MuYw0KQEAg LTQyMCwxMSArNDIwLDE2IEBAIHN0YXRpYyBpbnQgZXh0NF9oYXNfZnJlZV9jbHVzdGVycyhzdHJ1 Y3QgZXh0NF9zYl9pbmZvICpzYmksDQogDQogCWZyZWVfY2x1c3RlcnMgID0gcGVyY3B1X2NvdW50 ZXJfcmVhZF9wb3NpdGl2ZShmY2MpOw0KIAlkaXJ0eV9jbHVzdGVycyA9IHBlcmNwdV9jb3VudGVy X3JlYWRfcG9zaXRpdmUoZGNjKTsNCi0Jcm9vdF9jbHVzdGVycyA9IEVYVDRfQjJDKHNiaSwgZXh0 NF9yX2Jsb2Nrc19jb3VudChzYmktPnNfZXMpKTsNCisNCisJLyoNCisJICogcl9ibG9ja3NfY291 bnQgc2hvdWxkIGFsd2F5cyBiZSBtdWx0aXBsZSBvZiB0aGUgY2x1c3RlciByYXRpbyBzbw0KKwkg KiB3ZSBhcmUgc2FmZSB0byBkbyBhIHBsYW5lIGJpdCBzaGlmdCBvbmx5Lg0KKwkgKi8NCisJcm9v dF9jbHVzdGVycyA9IGV4dDRfcl9ibG9ja3NfY291bnQoc2JpLT5zX2VzKSA+PiBzYmktPnNfY2x1 c3Rlcl9iaXRzOw0KIA0KIAlpZiAoZnJlZV9jbHVzdGVycyAtIChuY2x1c3RlcnMgKyByb290X2Ns dXN0ZXJzICsgZGlydHlfY2x1c3RlcnMpIDwNCiAJCQkJCUVYVDRfRlJFRUNMVVNURVJTX1dBVEVS TUFSSykgew0KLQkJZnJlZV9jbHVzdGVycyAgPSBFWFQ0X0MyQihzYmksIHBlcmNwdV9jb3VudGVy X3N1bV9wb3NpdGl2ZShmY2MpKTsNCisJCWZyZWVfY2x1c3RlcnMgID0gcGVyY3B1X2NvdW50ZXJf c3VtX3Bvc2l0aXZlKGZjYyk7DQogCQlkaXJ0eV9jbHVzdGVycyA9IHBlcmNwdV9jb3VudGVyX3N1 bV9wb3NpdGl2ZShkY2MpOw0KIAl9DQogCS8qIENoZWNrIHdoZXRoZXIgd2UgaGF2ZSBzcGFjZSBh ZnRlciBhY2NvdW50aW5nIGZvciBjdXJyZW50DQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHRlbnRz LmMgYi9mcy9leHQ0L2V4dGVudHMuYw0KaW5kZXggZmJiOTJlNi4uYjQ4ZTBkYyAxMDA2NDQNCi0t LSBhL2ZzL2V4dDQvZXh0ZW50cy5jDQorKysgYi9mcy9leHQ0L2V4dGVudHMuYw0KQEAgLTQ1LDYg KzQ1LDE3IEBADQogDQogI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy9leHQ0Lmg+DQogDQorLyoNCisg KiB1c2VkIGJ5IGV4dGVudCBzcGxpdHRpbmcuDQorICovDQorI2RlZmluZSBFWFQ0X0VYVF9NQVlf WkVST09VVAkweDEgIC8qIHNhZmUgdG8gemVyb291dCBpZiBzcGxpdCBmYWlscyBcDQorCQkJCQlk dWUgdG8gRU5PU1BDICovDQorI2RlZmluZSBFWFQ0X0VYVF9NQVJLX1VOSU5JVDEJMHgyICAvKiBt YXJrIGZpcnN0IGhhbGYgdW5pbml0aWFsaXplZCAqLw0KKyNkZWZpbmUgRVhUNF9FWFRfTUFSS19V TklOSVQyCTB4NCAgLyogbWFyayBzZWNvbmQgaGFsZiB1bmluaXRpYWxpemVkICovDQorDQorI2Rl ZmluZSBFWFQ0X0VYVF9EQVRBX1ZBTElEMQkweDggIC8qIGZpcnN0IGhhbGYgY29udGFpbnMgdmFs aWQgZGF0YSAqLw0KKyNkZWZpbmUgRVhUNF9FWFRfREFUQV9WQUxJRDIJMHgxMCAvKiBzZWNvbmQg aGFsZiBjb250YWlucyB2YWxpZCBkYXRhICovDQorDQogc3RhdGljIGludCBleHQ0X3NwbGl0X2V4 dGVudChoYW5kbGVfdCAqaGFuZGxlLA0KIAkJCQlzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAkJCQlz dHJ1Y3QgZXh0NF9leHRfcGF0aCAqcGF0aCwNCkBAIC01Miw2ICs2MywxMyBAQCBzdGF0aWMgaW50 IGV4dDRfc3BsaXRfZXh0ZW50KGhhbmRsZV90ICpoYW5kbGUsDQogCQkJCWludCBzcGxpdF9mbGFn LA0KIAkJCQlpbnQgZmxhZ3MpOw0KIA0KK3N0YXRpYyBpbnQgZXh0NF9zcGxpdF9leHRlbnRfYXQo aGFuZGxlX3QgKmhhbmRsZSwNCisJCQkgICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUsDQorCQkJICAg ICBzdHJ1Y3QgZXh0NF9leHRfcGF0aCAqcGF0aCwNCisJCQkgICAgIGV4dDRfbGJsa190IHNwbGl0 LA0KKwkJCSAgICAgaW50IHNwbGl0X2ZsYWcsDQorCQkJICAgICBpbnQgZmxhZ3MpOw0KKw0KIHN0 YXRpYyBpbnQgZXh0NF9leHRfdHJ1bmNhdGVfZXh0ZW5kX3Jlc3RhcnQoaGFuZGxlX3QgKmhhbmRs ZSwNCiAJCQkJCSAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAkJCQkJICAgIGludCBuZWVkZWQp DQpAQCAtNjM2LDYgKzY1NCw3IEBAIGV4dDRfZXh0X2ZpbmRfZXh0ZW50KHN0cnVjdCBpbm9kZSAq aW5vZGUsIGV4dDRfbGJsa190IGJsb2NrLA0KIAlzdHJ1Y3QgZXh0NF9leHRlbnRfaGVhZGVyICpl aDsNCiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsNCiAJc2hvcnQgaW50IGRlcHRoLCBpLCBwcG9z ID0gMCwgYWxsb2MgPSAwOw0KKwlpbnQgcmV0Ow0KIA0KIAllaCA9IGV4dF9pbm9kZV9oZHIoaW5v ZGUpOw0KIAlkZXB0aCA9IGV4dF9kZXB0aChpbm9kZSk7DQpAQCAtNjY1LDEyICs2ODQsMTUgQEAg ZXh0NF9leHRfZmluZF9leHRlbnQoc3RydWN0IGlub2RlICppbm9kZSwgZXh0NF9sYmxrX3QgYmxv Y2ssDQogCQlwYXRoW3Bwb3NdLnBfZXh0ID0gTlVMTDsNCiANCiAJCWJoID0gc2JfZ2V0YmxrKGlu b2RlLT5pX3NiLCBwYXRoW3Bwb3NdLnBfYmxvY2spOw0KLQkJaWYgKHVubGlrZWx5KCFiaCkpDQor CQlpZiAodW5saWtlbHkoIWJoKSkgew0KKwkJCXJldCA9IC1FTk9NRU07DQogCQkJZ290byBlcnI7 DQorCQl9DQogCQlpZiAoIWJoX3VwdG9kYXRlX29yX2xvY2soYmgpKSB7DQogCQkJdHJhY2VfZXh0 NF9leHRfbG9hZF9leHRlbnQoaW5vZGUsIGJsb2NrLA0KIAkJCQkJCXBhdGhbcHBvc10ucF9ibG9j ayk7DQotCQkJaWYgKGJoX3N1Ym1pdF9yZWFkKGJoKSA8IDApIHsNCisJCQlyZXQgPSBiaF9zdWJt aXRfcmVhZChiaCk7DQorCQkJaWYgKHJldCA8IDApIHsNCiAJCQkJcHV0X2JoKGJoKTsNCiAJCQkJ Z290byBlcnI7DQogCQkJfQ0KQEAgLTY4MywxMyArNzA1LDE1IEBAIGV4dDRfZXh0X2ZpbmRfZXh0 ZW50KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IGJsb2NrLA0KIAkJCXB1dF9iaChi aCk7DQogCQkJRVhUNF9FUlJPUl9JTk9ERShpbm9kZSwNCiAJCQkJCSAicHBvcyAlZCA+IGRlcHRo ICVkIiwgcHBvcywgZGVwdGgpOw0KKwkJCXJldCA9IC1FSU87DQogCQkJZ290byBlcnI7DQogCQl9 DQogCQlwYXRoW3Bwb3NdLnBfYmggPSBiaDsNCiAJCXBhdGhbcHBvc10ucF9oZHIgPSBlaDsNCiAJ CWktLTsNCiANCi0JCWlmIChuZWVkX3RvX3ZhbGlkYXRlICYmIGV4dDRfZXh0X2NoZWNrKGlub2Rl LCBlaCwgaSkpDQorCQlyZXQgPSBuZWVkX3RvX3ZhbGlkYXRlID8gZXh0NF9leHRfY2hlY2soaW5v ZGUsIGVoLCBpKSA6IDA7DQorCQlpZiAocmV0IDwgMCkNCiAJCQlnb3RvIGVycjsNCiAJfQ0KIA0K QEAgLTcxMSw3ICs3MzUsNyBAQCBlcnI6DQogCWV4dDRfZXh0X2Ryb3BfcmVmcyhwYXRoKTsNCiAJ aWYgKGFsbG9jKQ0KIAkJa2ZyZWUocGF0aCk7DQotCXJldHVybiBFUlJfUFRSKC1FSU8pOw0KKwly ZXR1cm4gRVJSX1BUUihyZXQpOw0KIH0NCiANCiAvKg0KQEAgLTg2Niw3ICs4OTAsNyBAQCBzdGF0 aWMgaW50IGV4dDRfZXh0X3NwbGl0KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5v ZGUsDQogCX0NCiAJYmggPSBzYl9nZXRibGsoaW5vZGUtPmlfc2IsIG5ld2Jsb2NrKTsNCiAJaWYg KCFiaCkgew0KLQkJZXJyID0gLUVJTzsNCisJCWVyciA9IC1FTk9NRU07DQogCQlnb3RvIGNsZWFu dXA7DQogCX0NCiAJbG9ja19idWZmZXIoYmgpOw0KQEAgLTkzOCw3ICs5NjIsNyBAQCBzdGF0aWMg aW50IGV4dDRfZXh0X3NwbGl0KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUs DQogCQluZXdibG9jayA9IGFibG9ja3NbLS1hXTsNCiAJCWJoID0gc2JfZ2V0YmxrKGlub2RlLT5p X3NiLCBuZXdibG9jayk7DQogCQlpZiAoIWJoKSB7DQotCQkJZXJyID0gLUVJTzsNCisJCQllcnIg PSAtRU5PTUVNOw0KIAkJCWdvdG8gY2xlYW51cDsNCiAJCX0NCiAJCWxvY2tfYnVmZmVyKGJoKTsN CkBAIC0xMDQ5LDExICsxMDczLDggQEAgc3RhdGljIGludCBleHQ0X2V4dF9ncm93X2luZGVwdGgo aGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwNCiAJCXJldHVybiBlcnI7DQog DQogCWJoID0gc2JfZ2V0YmxrKGlub2RlLT5pX3NiLCBuZXdibG9jayk7DQotCWlmICghYmgpIHsN Ci0JCWVyciA9IC1FSU87DQotCQlleHQ0X3N0ZF9lcnJvcihpbm9kZS0+aV9zYiwgZXJyKTsNCi0J CXJldHVybiBlcnI7DQotCX0NCisJaWYgKCFiaCkNCisJCXJldHVybiAtRU5PTUVNOw0KIAlsb2Nr X2J1ZmZlcihiaCk7DQogDQogCWVyciA9IGV4dDRfam91cm5hbF9nZXRfY3JlYXRlX2FjY2Vzcyho YW5kbGUsIGJoKTsNCkBAIC0yMzIxLDcgKzIzNDIsNyBAQCBleHQ0X2V4dF9ybV9sZWFmKGhhbmRs ZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogCXN0cnVjdCBleHQ0X2V4dGVudCAq ZXg7DQogDQogCS8qIHRoZSBoZWFkZXIgbXVzdCBiZSBjaGVja2VkIGFscmVhZHkgaW4gZXh0NF9l eHRfcmVtb3ZlX3NwYWNlKCkgKi8NCi0JZXh0X2RlYnVnKCJ0cnVuY2F0ZSBzaW5jZSAldSBpbiBs ZWFmXG4iLCBzdGFydCk7DQorCWV4dF9kZWJ1ZygidHJ1bmNhdGUgc2luY2UgJXUgaW4gbGVhZiB0 byAldVxuIiwgc3RhcnQsIGVuZCk7DQogCWlmICghcGF0aFtkZXB0aF0ucF9oZHIpDQogCQlwYXRo W2RlcHRoXS5wX2hkciA9IGV4dF9ibG9ja19oZHIocGF0aFtkZXB0aF0ucF9iaCk7DQogCWVoID0g cGF0aFtkZXB0aF0ucF9oZHI7DQpAQCAtMjM1Niw3ICsyMzc3LDcgQEAgZXh0NF9leHRfcm1fbGVh ZihoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAkJZXh0X2RlYnVnKCIg IGJvcmRlciAldToldVxuIiwgYSwgYik7DQogDQogCQkvKiBJZiB0aGlzIGV4dGVudCBpcyBiZXlv bmQgdGhlIGVuZCBvZiB0aGUgaG9sZSwgc2tpcCBpdCAqLw0KLQkJaWYgKGVuZCA8PSBleF9lZV9i bG9jaykgew0KKwkJaWYgKGVuZCA8IGV4X2VlX2Jsb2NrKSB7DQogCQkJZXgtLTsNCiAJCQlleF9l ZV9ibG9jayA9IGxlMzJfdG9fY3B1KGV4LT5lZV9ibG9jayk7DQogCQkJZXhfZWVfbGVuID0gZXh0 NF9leHRfZ2V0X2FjdHVhbF9sZW4oZXgpOw0KQEAgLTI0OTUsMTYgKzI1MTYsMTcgQEAgZXh0NF9l eHRfbW9yZV90b19ybShzdHJ1Y3QgZXh0NF9leHRfcGF0aCAqcGF0aCkNCiAJcmV0dXJuIDE7DQog fQ0KIA0KLXN0YXRpYyBpbnQgZXh0NF9leHRfcmVtb3ZlX3NwYWNlKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIGV4dDRfbGJsa190IHN0YXJ0KQ0KK3N0YXRpYyBpbnQgZXh0NF9leHRfcmVtb3ZlX3NwYWNl KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGV4dDRfbGJsa190IHN0YXJ0LA0KKwkJCQkgZXh0NF9sYmxr X3QgZW5kKQ0KIHsNCiAJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGlub2RlLT5pX3NiOw0KIAlp bnQgZGVwdGggPSBleHRfZGVwdGgoaW5vZGUpOw0KLQlzdHJ1Y3QgZXh0NF9leHRfcGF0aCAqcGF0 aDsNCisJc3RydWN0IGV4dDRfZXh0X3BhdGggKnBhdGggPSBOVUxMOw0KIAlleHQ0X2ZzYmxrX3Qg cGFydGlhbF9jbHVzdGVyID0gMDsNCiAJaGFuZGxlX3QgKmhhbmRsZTsNCi0JaW50IGksIGVycjsN CisJaW50IGkgPSAwLCBlcnI7DQogDQotCWV4dF9kZWJ1ZygidHJ1bmNhdGUgc2luY2UgJXVcbiIs IHN0YXJ0KTsNCisJZXh0X2RlYnVnKCJ0cnVuY2F0ZSBzaW5jZSAldSB0byAldVxuIiwgc3RhcnQs IGVuZCk7DQogDQogCS8qIHByb2JhYmx5IGZpcnN0IGV4dGVudCB3ZSdyZSBnb25uYSBmcmVlIHdp bGwgYmUgbGFzdCBpbiBibG9jayAqLw0KIAloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5v ZGUsIGRlcHRoICsgMSk7DQpAQCAtMjUxNywyOSArMjUzOSw5NiBAQCBhZ2FpbjoNCiAJdHJhY2Vf ZXh0NF9leHRfcmVtb3ZlX3NwYWNlKGlub2RlLCBzdGFydCwgZGVwdGgpOw0KIA0KIAkvKg0KKwkg KiBDaGVjayBpZiB3ZSBhcmUgcmVtb3ZpbmcgZXh0ZW50cyBpbnNpZGUgdGhlIGV4dGVudCB0cmVl LiBJZiB0aGF0DQorCSAqIGlzIHRoZSBjYXNlLCB3ZSBhcmUgZ29pbmcgdG8gcHVuY2ggYSBob2xl IGluc2lkZSB0aGUgZXh0ZW50IHRyZWUNCisJICogc28gd2UgaGF2ZSB0byBjaGVjayB3aGV0aGVy IHdlIG5lZWQgdG8gc3BsaXQgdGhlIGV4dGVudCBjb3ZlcmluZw0KKwkgKiB0aGUgbGFzdCBibG9j ayB0byByZW1vdmUgc28gd2UgY2FuIGVhc2lseSByZW1vdmUgdGhlIHBhcnQgb2YgaXQNCisJICog aW4gZXh0NF9leHRfcm1fbGVhZigpLg0KKwkgKi8NCisJaWYgKGVuZCA8IEVYVF9NQVhfQkxPQ0tT IC0gMSkgew0KKwkJc3RydWN0IGV4dDRfZXh0ZW50ICpleDsNCisJCWV4dDRfbGJsa190IGVlX2Js b2NrOw0KKw0KKwkJLyogZmluZCBleHRlbnQgZm9yIHRoaXMgYmxvY2sgKi8NCisJCXBhdGggPSBl eHQ0X2V4dF9maW5kX2V4dGVudChpbm9kZSwgZW5kLCBOVUxMKTsNCisJCWlmIChJU19FUlIocGF0 aCkpIHsNCisJCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOw0KKwkJCXJldHVybiBQVFJfRVJS KHBhdGgpOw0KKwkJfQ0KKwkJZGVwdGggPSBleHRfZGVwdGgoaW5vZGUpOw0KKwkJZXggPSBwYXRo W2RlcHRoXS5wX2V4dDsNCisJCWlmICghZXgpIHsNCisJCQlleHQ0X2V4dF9kcm9wX3JlZnMocGF0 aCk7DQorCQkJa2ZyZWUocGF0aCk7DQorCQkJcGF0aCA9IE5VTEw7DQorCQkJZ290byBjb250Ow0K KwkJfQ0KKw0KKwkJZWVfYmxvY2sgPSBsZTMyX3RvX2NwdShleC0+ZWVfYmxvY2spOw0KKw0KKwkJ LyoNCisJCSAqIFNlZSBpZiB0aGUgbGFzdCBibG9jayBpcyBpbnNpZGUgdGhlIGV4dGVudCwgaWYg c28gc3BsaXQNCisJCSAqIHRoZSBleHRlbnQgYXQgJ2VuZCcgYmxvY2sgc28gd2UgY2FuIGVhc2ls eSByZW1vdmUgdGhlDQorCQkgKiB0YWlsIG9mIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBzcGxpdCBl eHRlbnQgaW4NCisJCSAqIGV4dDRfZXh0X3JtX2xlYWYoKS4NCisJCSAqLw0KKwkJaWYgKGVuZCA+ PSBlZV9ibG9jayAmJg0KKwkJICAgIGVuZCA8IGVlX2Jsb2NrICsgZXh0NF9leHRfZ2V0X2FjdHVh bF9sZW4oZXgpIC0gMSkgew0KKwkJCWludCBzcGxpdF9mbGFnID0gMDsNCisNCisJCQlpZiAoZXh0 NF9leHRfaXNfdW5pbml0aWFsaXplZChleCkpDQorCQkJCXNwbGl0X2ZsYWcgPSBFWFQ0X0VYVF9N QVJLX1VOSU5JVDEgfA0KKwkJCQkJICAgICBFWFQ0X0VYVF9NQVJLX1VOSU5JVDI7DQorDQorCQkJ LyoNCisJCQkgKiBTcGxpdCB0aGUgZXh0ZW50IGluIHR3byBzbyB0aGF0ICdlbmQnIGlzIHRoZSBs YXN0DQorCQkJICogYmxvY2sgaW4gdGhlIGZpcnN0IG5ldyBleHRlbnQNCisJCQkgKi8NCisJCQll cnIgPSBleHQ0X3NwbGl0X2V4dGVudF9hdChoYW5kbGUsIGlub2RlLCBwYXRoLA0KKwkJCQkJCWVu ZCArIDEsIHNwbGl0X2ZsYWcsDQorCQkJCQkJRVhUNF9HRVRfQkxPQ0tTX1BSRV9JTyB8DQorCQkJ CQkJRVhUNF9HRVRfQkxPQ0tTX1BVTkNIX09VVF9FWFQpOw0KKw0KKwkJCWlmIChlcnIgPCAwKQ0K KwkJCQlnb3RvIG91dDsNCisJCX0NCisJfQ0KK2NvbnQ6DQorDQorCS8qDQogCSAqIFdlIHN0YXJ0 IHNjYW5uaW5nIGZyb20gcmlnaHQgc2lkZSwgZnJlZWluZyBhbGwgdGhlIGJsb2Nrcw0KIAkgKiBh ZnRlciBpX3NpemUgYW5kIHdhbGtpbmcgaW50byB0aGUgdHJlZSBkZXB0aC13aXNlLg0KIAkgKi8N CiAJZGVwdGggPSBleHRfZGVwdGgoaW5vZGUpOw0KLQlwYXRoID0ga3phbGxvYyhzaXplb2Yoc3Ry dWN0IGV4dDRfZXh0X3BhdGgpICogKGRlcHRoICsgMSksIEdGUF9OT0ZTKTsNCi0JaWYgKHBhdGgg PT0gTlVMTCkgew0KLQkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsNCi0JCXJldHVybiAtRU5P TUVNOw0KLQl9DQotCXBhdGhbMF0ucF9kZXB0aCA9IGRlcHRoOw0KLQlwYXRoWzBdLnBfaGRyID0g ZXh0X2lub2RlX2hkcihpbm9kZSk7DQotCWlmIChleHQ0X2V4dF9jaGVjayhpbm9kZSwgcGF0aFsw XS5wX2hkciwgZGVwdGgpKSB7DQotCQllcnIgPSAtRUlPOw0KLQkJZ290byBvdXQ7DQorCWlmIChw YXRoKSB7DQorCQlpbnQgayA9IGkgPSBkZXB0aDsNCisJCXdoaWxlICgtLWsgPiAwKQ0KKwkJCXBh dGhba10ucF9ibG9jayA9DQorCQkJCWxlMTZfdG9fY3B1KHBhdGhba10ucF9oZHItPmVoX2VudHJp ZXMpKzE7DQorCX0gZWxzZSB7DQorCQlwYXRoID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGV4dDRf ZXh0X3BhdGgpICogKGRlcHRoICsgMSksDQorCQkJICAgICAgIEdGUF9OT0ZTKTsNCisJCWlmIChw YXRoID09IE5VTEwpIHsNCisJCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOw0KKwkJCXJldHVy biAtRU5PTUVNOw0KKwkJfQ0KKwkJcGF0aFswXS5wX2RlcHRoID0gZGVwdGg7DQorCQlwYXRoWzBd LnBfaGRyID0gZXh0X2lub2RlX2hkcihpbm9kZSk7DQorCQlpID0gMDsNCisNCisJCWlmIChleHQ0 X2V4dF9jaGVjayhpbm9kZSwgcGF0aFswXS5wX2hkciwgZGVwdGgpKSB7DQorCQkJZXJyID0gLUVJ TzsNCisJCQlnb3RvIG91dDsNCisJCX0NCiAJfQ0KLQlpID0gZXJyID0gMDsNCisJZXJyID0gMDsN CiANCiAJd2hpbGUgKGkgPj0gMCAmJiBlcnIgPT0gMCkgew0KIAkJaWYgKGkgPT0gZGVwdGgpIHsN CiAJCQkvKiB0aGlzIGlzIGxlYWYgYmxvY2sgKi8NCiAJCQllcnIgPSBleHQ0X2V4dF9ybV9sZWFm KGhhbmRsZSwgaW5vZGUsIHBhdGgsDQogCQkJCQkgICAgICAgJnBhcnRpYWxfY2x1c3Rlciwgc3Rh cnQsDQotCQkJCQkgICAgICAgRVhUX01BWF9CTE9DS1MgLSAxKTsNCisJCQkJCSAgICAgICBlbmQp Ow0KIAkJCS8qIHJvb3QgbGV2ZWwgaGFzIHBfYmggPT0gTlVMTCwgYnJlbHNlKCkgZWF0cyB0aGlz ICovDQogCQkJYnJlbHNlKHBhdGhbaV0ucF9iaCk7DQogCQkJcGF0aFtpXS5wX2JoID0gTlVMTDsN CkBAIC0yNjQ2LDggKzI3MzUsMTAgQEAgYWdhaW46DQogb3V0Og0KIAlleHQ0X2V4dF9kcm9wX3Jl ZnMocGF0aCk7DQogCWtmcmVlKHBhdGgpOw0KLQlpZiAoZXJyID09IC1FQUdBSU4pDQorCWlmIChl cnIgPT0gLUVBR0FJTikgew0KKwkJcGF0aCA9IE5VTEw7DQogCQlnb3RvIGFnYWluOw0KKwl9DQog CWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7DQogDQogCXJldHVybiBlcnI7DQpAQCAtMjcyMiwx NyArMjgxMyw2IEBAIHN0YXRpYyBpbnQgZXh0NF9leHRfemVyb291dChzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBzdHJ1Y3QgZXh0NF9leHRlbnQgKmV4KQ0KIH0NCiANCiAvKg0KLSAqIHVzZWQgYnkgZXh0 ZW50IHNwbGl0dGluZy4NCi0gKi8NCi0jZGVmaW5lIEVYVDRfRVhUX01BWV9aRVJPT1VUCTB4MSAg Lyogc2FmZSB0byB6ZXJvb3V0IGlmIHNwbGl0IGZhaWxzIFwNCi0JCQkJCWR1ZSB0byBFTk9TUEMg Ki8NCi0jZGVmaW5lIEVYVDRfRVhUX01BUktfVU5JTklUMQkweDIgIC8qIG1hcmsgZmlyc3QgaGFs ZiB1bmluaXRpYWxpemVkICovDQotI2RlZmluZSBFWFQ0X0VYVF9NQVJLX1VOSU5JVDIJMHg0ICAv KiBtYXJrIHNlY29uZCBoYWxmIHVuaW5pdGlhbGl6ZWQgKi8NCi0NCi0jZGVmaW5lIEVYVDRfRVhU X0RBVEFfVkFMSUQxCTB4OCAgLyogZmlyc3QgaGFsZiBjb250YWlucyB2YWxpZCBkYXRhICovDQot I2RlZmluZSBFWFQ0X0VYVF9EQVRBX1ZBTElEMgkweDEwIC8qIHNlY29uZCBoYWxmIGNvbnRhaW5z IHZhbGlkIGRhdGEgKi8NCi0NCi0vKg0KICAqIGV4dDRfc3BsaXRfZXh0ZW50X2F0KCkgc3BsaXRz IGFuIGV4dGVudCBhdCBnaXZlbiBibG9jay4NCiAgKg0KICAqIEBoYW5kbGU6IHRoZSBqb3VybmFs IGhhbmRsZQ0KQEAgLTQyNzQsNyArNDM1NCw3IEBAIHZvaWQgZXh0NF9leHRfdHJ1bmNhdGUoc3Ry dWN0IGlub2RlICppbm9kZSkNCiANCiAJbGFzdF9ibG9jayA9IChpbm9kZS0+aV9zaXplICsgc2It PnNfYmxvY2tzaXplIC0gMSkNCiAJCQk+PiBFWFQ0X0JMT0NLX1NJWkVfQklUUyhzYik7DQotCWVy ciA9IGV4dDRfZXh0X3JlbW92ZV9zcGFjZShpbm9kZSwgbGFzdF9ibG9jayk7DQorCWVyciA9IGV4 dDRfZXh0X3JlbW92ZV9zcGFjZShpbm9kZSwgbGFzdF9ibG9jaywgRVhUX01BWF9CTE9DS1MgLSAx KTsNCiANCiAJLyogSW4gYSBtdWx0aS10cmFuc2FjdGlvbiB0cnVuY2F0ZSwgd2Ugb25seSBtYWtl IHRoZSBmaW5hbA0KIAkgKiB0cmFuc2FjdGlvbiBzeW5jaHJvbm91cy4NCkBAIC00NzUxLDE0ICs0 ODMxLDEyIEBAIGludCBleHQ0X2V4dF9wdW5jaF9ob2xlKHN0cnVjdCBmaWxlICpmaWxlLCBsb2Zm X3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoKQ0KIHsNCiAJc3RydWN0IGlub2RlICppbm9kZSA9IGZp bGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQogCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBp bm9kZS0+aV9zYjsNCi0Jc3RydWN0IGV4dDRfZXh0X2NhY2hlIGNhY2hlX2V4Ow0KLQlleHQ0X2xi bGtfdCBmaXJzdF9ibG9jaywgbGFzdF9ibG9jaywgbnVtX2Jsb2NrcywgaWJsb2NrLCBtYXhfYmxv Y2tzOw0KKwlleHQ0X2xibGtfdCBmaXJzdF9ibG9jaywgc3RvcF9ibG9jazsNCiAJc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBpbm9kZS0+aV9tYXBwaW5nOw0KLQlzdHJ1Y3QgZXh0NF9t YXBfYmxvY2tzIG1hcDsNCiAJaGFuZGxlX3QgKmhhbmRsZTsNCiAJbG9mZl90IGZpcnN0X3BhZ2Us IGxhc3RfcGFnZSwgcGFnZV9sZW47DQogCWxvZmZfdCBmaXJzdF9wYWdlX29mZnNldCwgbGFzdF9w YWdlX29mZnNldDsNCi0JaW50IHJldCwgY3JlZGl0cywgYmxvY2tzX3JlbGVhc2VkLCBlcnIgPSAw Ow0KKwlpbnQgY3JlZGl0cywgZXJyID0gMDsNCiANCiAJLyogTm8gbmVlZCB0byBwdW5jaCBob2xl IGJleW9uZCBpX3NpemUgKi8NCiAJaWYgKG9mZnNldCA+PSBpbm9kZS0+aV9zaXplKQ0KQEAgLTQ3 NzQsMTAgKzQ4NTIsNiBAQCBpbnQgZXh0NF9leHRfcHVuY2hfaG9sZShzdHJ1Y3QgZmlsZSAqZmls ZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aCkNCiAJCSAgIG9mZnNldDsNCiAJfQ0KIA0K LQlmaXJzdF9ibG9jayA9IChvZmZzZXQgKyBzYi0+c19ibG9ja3NpemUgLSAxKSA+Pg0KLQkJRVhU NF9CTE9DS19TSVpFX0JJVFMoc2IpOw0KLQlsYXN0X2Jsb2NrID0gKG9mZnNldCArIGxlbmd0aCkg Pj4gRVhUNF9CTE9DS19TSVpFX0JJVFMoc2IpOw0KLQ0KIAlmaXJzdF9wYWdlID0gKG9mZnNldCAr IFBBR0VfQ0FDSEVfU0laRSAtIDEpID4+IFBBR0VfQ0FDSEVfU0hJRlQ7DQogCWxhc3RfcGFnZSA9 IChvZmZzZXQgKyBsZW5ndGgpID4+IFBBR0VfQ0FDSEVfU0hJRlQ7DQogDQpAQCAtNDg1Niw3ICs0 OTMwLDYgQEAgaW50IGV4dDRfZXh0X3B1bmNoX2hvbGUoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZf dCBvZmZzZXQsIGxvZmZfdCBsZW5ndGgpDQogCQl9DQogCX0NCiANCi0NCiAJLyoNCiAJICogSWYg aV9zaXplIGlzIGNvbnRhaW5lZCBpbiB0aGUgbGFzdCBwYWdlLCB3ZSBuZWVkIHRvDQogCSAqIHVu bWFwIGFuZCB6ZXJvIHRoZSBwYXJ0aWFsIHBhZ2UgYWZ0ZXIgaV9zaXplDQpAQCAtNDg3Niw3MyAr NDk0OSwyMiBAQCBpbnQgZXh0NF9leHRfcHVuY2hfaG9sZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9m Zl90IG9mZnNldCwgbG9mZl90IGxlbmd0aCkNCiAJCX0NCiAJfQ0KIA0KKwlmaXJzdF9ibG9jayA9 IChvZmZzZXQgKyBzYi0+c19ibG9ja3NpemUgLSAxKSA+Pg0KKwkJRVhUNF9CTE9DS19TSVpFX0JJ VFMoc2IpOw0KKwlzdG9wX2Jsb2NrID0gKG9mZnNldCArIGxlbmd0aCkgPj4gRVhUNF9CTE9DS19T SVpFX0JJVFMoc2IpOw0KKw0KIAkvKiBJZiB0aGVyZSBhcmUgbm8gYmxvY2tzIHRvIHJlbW92ZSwg cmV0dXJuIG5vdyAqLw0KLQlpZiAoZmlyc3RfYmxvY2sgPj0gbGFzdF9ibG9jaykNCisJaWYgKGZp cnN0X2Jsb2NrID49IHN0b3BfYmxvY2spDQogCQlnb3RvIG91dDsNCiANCiAJZG93bl93cml0ZSgm RVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7DQogCWV4dDRfZXh0X2ludmFsaWRhdGVfY2FjaGUo aW5vZGUpOw0KIAlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpOw0KIA0KLQkvKg0K LQkgKiBMb29wIG92ZXIgYWxsIHRoZSBibG9ja3MgYW5kIGlkZW50aWZ5IGJsb2Nrcw0KLQkgKiB0 aGF0IG5lZWQgdG8gYmUgcHVuY2hlZCBvdXQNCi0JICovDQotCWlibG9jayA9IGZpcnN0X2Jsb2Nr Ow0KLQlibG9ja3NfcmVsZWFzZWQgPSAwOw0KLQl3aGlsZSAoaWJsb2NrIDwgbGFzdF9ibG9jaykg ew0KLQkJbWF4X2Jsb2NrcyA9IGxhc3RfYmxvY2sgLSBpYmxvY2s7DQotCQludW1fYmxvY2tzID0g MTsNCi0JCW1lbXNldCgmbWFwLCAwLCBzaXplb2YobWFwKSk7DQotCQltYXAubV9sYmxrID0gaWJs b2NrOw0KLQkJbWFwLm1fbGVuID0gbWF4X2Jsb2NrczsNCi0JCXJldCA9IGV4dDRfZXh0X21hcF9i bG9ja3MoaGFuZGxlLCBpbm9kZSwgJm1hcCwNCi0JCQlFWFQ0X0dFVF9CTE9DS1NfUFVOQ0hfT1VU X0VYVCk7DQotDQotCQlpZiAocmV0ID4gMCkgew0KLQkJCWJsb2Nrc19yZWxlYXNlZCArPSByZXQ7 DQotCQkJbnVtX2Jsb2NrcyA9IHJldDsNCi0JCX0gZWxzZSBpZiAocmV0ID09IDApIHsNCi0JCQkv Kg0KLQkJCSAqIElmIG1hcCBibG9ja3MgY291bGQgbm90IGZpbmQgdGhlIGJsb2NrLA0KLQkJCSAq IHRoZW4gaXQgaXMgaW4gYSBob2xlLiAgSWYgdGhlIGhvbGUgd2FzDQotCQkJICogbm90IGFscmVh ZHkgY2FjaGVkLCB0aGVuIG1hcCBibG9ja3Mgc2hvdWxkDQotCQkJICogcHV0IGl0IGluIHRoZSBj YWNoZS4gIFNvIHdlIGNhbiBnZXQgdGhlIGhvbGUNCi0JCQkgKiBvdXQgb2YgdGhlIGNhY2hlDQot CQkJICovDQotCQkJbWVtc2V0KCZjYWNoZV9leCwgMCwgc2l6ZW9mKGNhY2hlX2V4KSk7DQotCQkJ aWYgKChleHQ0X2V4dF9jaGVja19jYWNoZShpbm9kZSwgaWJsb2NrLCAmY2FjaGVfZXgpKSAmJg0K LQkJCQkhY2FjaGVfZXguZWNfc3RhcnQpIHsNCi0NCi0JCQkJLyogVGhlIGhvbGUgaXMgY2FjaGVk ICovDQotCQkJCW51bV9ibG9ja3MgPSBjYWNoZV9leC5lY19ibG9jayArDQotCQkJCWNhY2hlX2V4 LmVjX2xlbiAtIGlibG9jazsNCisJZXJyID0gZXh0NF9leHRfcmVtb3ZlX3NwYWNlKGlub2RlLCBm aXJzdF9ibG9jaywgc3RvcF9ibG9jayAtIDEpOw0KIA0KLQkJCX0gZWxzZSB7DQotCQkJCS8qIFRo ZSBibG9jayBjb3VsZCBub3QgYmUgaWRlbnRpZmllZCAqLw0KLQkJCQllcnIgPSAtRUlPOw0KLQkJ CQlicmVhazsNCi0JCQl9DQotCQl9IGVsc2Ugew0KLQkJCS8qIE1hcCBibG9ja3MgZXJyb3IgKi8N Ci0JCQllcnIgPSByZXQ7DQotCQkJYnJlYWs7DQotCQl9DQotDQotCQlpZiAobnVtX2Jsb2NrcyA9 PSAwKSB7DQotCQkJLyogVGhpcyBjb25kaXRpb24gc2hvdWxkIG5ldmVyIGhhcHBlbiAqLw0KLQkJ CWV4dF9kZWJ1ZygiQmxvY2sgbG9va3VwIGZhaWxlZCIpOw0KLQkJCWVyciA9IC1FSU87DQotCQkJ YnJlYWs7DQotCQl9DQotDQotCQlpYmxvY2sgKz0gbnVtX2Jsb2NrczsNCi0JfQ0KLQ0KLQlpZiAo YmxvY2tzX3JlbGVhc2VkID4gMCkgew0KLQkJZXh0NF9leHRfaW52YWxpZGF0ZV9jYWNoZShpbm9k ZSk7DQotCQlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlvbnMoaW5vZGUpOw0KLQl9DQorCWV4dDRf ZXh0X2ludmFsaWRhdGVfY2FjaGUoaW5vZGUpOw0KKwlleHQ0X2Rpc2NhcmRfcHJlYWxsb2NhdGlv bnMoaW5vZGUpOw0KIA0KIAlpZiAoSVNfU1lOQyhpbm9kZSkpDQogCQlleHQ0X2hhbmRsZV9zeW5j KGhhbmRsZSk7DQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmRpcmVjdC5jIGIvZnMvZXh0NC9pbmRp cmVjdC5jDQppbmRleCAzY2ZjNzNmLi4yNmQ2ZGJmIDEwMDY0NA0KLS0tIGEvZnMvZXh0NC9pbmRp cmVjdC5jDQorKysgYi9mcy9leHQ0L2luZGlyZWN0LmMNCkBAIC0xNDYsNiArMTQ2LDcgQEAgc3Rh dGljIEluZGlyZWN0ICpleHQ0X2dldF9icmFuY2goc3RydWN0IGlub2RlICppbm9kZSwgaW50IGRl cHRoLA0KIAlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gaW5vZGUtPmlfc2I7DQogCUluZGlyZWN0 ICpwID0gY2hhaW47DQogCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7DQorCWludCByZXQgPSAtRUlP Ow0KIA0KIAkqZXJyID0gMDsNCiAJLyogaV9kYXRhIGlzIG5vdCBnb2luZyBhd2F5LCBubyBsb2Nr IG5lZWRlZCAqLw0KQEAgLTE1NCw4ICsxNTUsMTAgQEAgc3RhdGljIEluZGlyZWN0ICpleHQ0X2dl dF9icmFuY2goc3RydWN0IGlub2RlICppbm9kZSwgaW50IGRlcHRoLA0KIAkJZ290byBub19ibG9j azsNCiAJd2hpbGUgKC0tZGVwdGgpIHsNCiAJCWJoID0gc2JfZ2V0YmxrKHNiLCBsZTMyX3RvX2Nw dShwLT5rZXkpKTsNCi0JCWlmICh1bmxpa2VseSghYmgpKQ0KKwkJaWYgKHVubGlrZWx5KCFiaCkp IHsNCisJCQlyZXQgPSAtRU5PTUVNOw0KIAkJCWdvdG8gZmFpbHVyZTsNCisJCX0NCiANCiAJCWlm ICghYmhfdXB0b2RhdGVfb3JfbG9jayhiaCkpIHsNCiAJCQlpZiAoYmhfc3VibWl0X3JlYWQoYmgp IDwgMCkgew0KQEAgLTE3Nyw3ICsxODAsNyBAQCBzdGF0aWMgSW5kaXJlY3QgKmV4dDRfZ2V0X2Jy YW5jaChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgZGVwdGgsDQogCXJldHVybiBOVUxMOw0KIA0K IGZhaWx1cmU6DQotCSplcnIgPSAtRUlPOw0KKwkqZXJyID0gcmV0Ow0KIG5vX2Jsb2NrOg0KIAly ZXR1cm4gcDsNCiB9DQpAQCAtNDcxLDcgKzQ3NCw3IEBAIHN0YXRpYyBpbnQgZXh0NF9hbGxvY19i cmFuY2goaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwNCiAJCSAqLw0KIAkJ YmggPSBzYl9nZXRibGsoaW5vZGUtPmlfc2IsIG5ld19ibG9ja3Nbbi0xXSk7DQogCQlpZiAodW5s aWtlbHkoIWJoKSkgew0KLQkJCWVyciA9IC1FSU87DQorCQkJZXJyID0gLUVOT01FTTsNCiAJCQln b3RvIGZhaWxlZDsNCiAJCX0NCiANCmRpZmYgLS1naXQgYS9mcy9leHQ0L2lub2RlLmMgYi9mcy9l eHQ0L2lub2RlLmMNCmluZGV4IDg0MjRkZGEuLjRiMmJiNzUgMTAwNjQ0DQotLS0gYS9mcy9leHQ0 L2lub2RlLmMNCisrKyBiL2ZzL2V4dDQvaW5vZGUuYw0KQEAgLTY2MSw3ICs2NjEsNyBAQCBzdHJ1 Y3QgYnVmZmVyX2hlYWQgKmV4dDRfZ2V0YmxrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9k ZSAqaW5vZGUsDQogDQogCWJoID0gc2JfZ2V0YmxrKGlub2RlLT5pX3NiLCBtYXAubV9wYmxrKTsN CiAJaWYgKCFiaCkgew0KLQkJKmVycnAgPSAtRUlPOw0KKwkJKmVycnAgPSAtRU5PTUVNOw0KIAkJ cmV0dXJuIE5VTEw7DQogCX0NCiAJaWYgKG1hcC5tX2ZsYWdzICYgRVhUNF9NQVBfTkVXKSB7DQpA QCAtMjc5NSw5ICsyNzk1LDkgQEAgc3RhdGljIHZvaWQgZXh0NF9lbmRfaW9fZGlvKHN0cnVjdCBr aW9jYiAqaW9jYiwgbG9mZl90IG9mZnNldCwNCiAJaWYgKCEoaW9fZW5kLT5mbGFnICYgRVhUNF9J T19FTkRfVU5XUklUVEVOKSkgew0KIAkJZXh0NF9mcmVlX2lvX2VuZChpb19lbmQpOw0KIG91dDoN CisJCWlub2RlX2Rpb19kb25lKGlub2RlKTsNCiAJCWlmIChpc19hc3luYykNCiAJCQlhaW9fY29t cGxldGUoaW9jYiwgcmV0LCAwKTsNCi0JCWlub2RlX2Rpb19kb25lKGlub2RlKTsNCiAJCXJldHVy bjsNCiAJfQ0KIA0KQEAgLTM1NzUsMTEgKzM1NzUsOCBAQCBzdGF0aWMgaW50IF9fZXh0NF9nZXRf aW5vZGVfbG9jKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogCWlsb2MtPm9mZnNldCA9IChpbm9kZV9v ZmZzZXQgJSBpbm9kZXNfcGVyX2Jsb2NrKSAqIEVYVDRfSU5PREVfU0laRShzYik7DQogDQogCWJo ID0gc2JfZ2V0YmxrKHNiLCBibG9jayk7DQotCWlmICghYmgpIHsNCi0JCUVYVDRfRVJST1JfSU5P REVfQkxPQ0soaW5vZGUsIGJsb2NrLA0KLQkJCQkgICAgICAgInVuYWJsZSB0byByZWFkIGl0YWJs ZSBibG9jayIpOw0KLQkJcmV0dXJuIC1FSU87DQotCX0NCisJaWYgKCFiaCkNCisJCXJldHVybiAt RU5PTUVNOw0KIAlpZiAoIWJ1ZmZlcl91cHRvZGF0ZShiaCkpIHsNCiAJCWxvY2tfYnVmZmVyKGJo KTsNCiANCmRpZmYgLS1naXQgYS9mcy9leHQ0L21iYWxsb2MuYyBiL2ZzL2V4dDQvbWJhbGxvYy5j DQppbmRleCAxZDA3YzEyLi41NTNmZjcxIDEwMDY0NA0KLS0tIGEvZnMvZXh0NC9tYmFsbG9jLmMN CisrKyBiL2ZzL2V4dDQvbWJhbGxvYy5jDQpAQCAtNDE3OCw3ICs0MTc4LDcgQEAgc3RhdGljIHZv aWQgZXh0NF9tYl9hZGRfbl90cmltKHN0cnVjdCBleHQ0X2FsbG9jYXRpb25fY29udGV4dCAqYWMp DQogCQkvKiBUaGUgbWF4IHNpemUgb2YgaGFzaCB0YWJsZSBpcyBQUkVBTExPQ19UQl9TSVpFICov DQogCQlvcmRlciA9IFBSRUFMTE9DX1RCX1NJWkUgLSAxOw0KIAkvKiBBZGQgdGhlIHByZWFsbG9j IHNwYWNlIHRvIGxnICovDQotCXJjdV9yZWFkX2xvY2soKTsNCisJc3Bpbl9sb2NrKCZsZy0+bGdf cHJlYWxsb2NfbG9jayk7DQogCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHRtcF9wYSwgJmxnLT5s Z19wcmVhbGxvY19saXN0W29yZGVyXSwNCiAJCQkJCQlwYV9pbm9kZV9saXN0KSB7DQogCQlzcGlu X2xvY2soJnRtcF9wYS0+cGFfbG9jayk7DQpAQCAtNDIwMiwxMiArNDIwMiwxMiBAQCBzdGF0aWMg dm9pZCBleHQ0X21iX2FkZF9uX3RyaW0oc3RydWN0IGV4dDRfYWxsb2NhdGlvbl9jb250ZXh0ICph YykNCiAJaWYgKCFhZGRlZCkNCiAJCWxpc3RfYWRkX3RhaWxfcmN1KCZwYS0+cGFfaW5vZGVfbGlz dCwNCiAJCQkJCSZsZy0+bGdfcHJlYWxsb2NfbGlzdFtvcmRlcl0pOw0KLQlyY3VfcmVhZF91bmxv Y2soKTsNCisJc3Bpbl91bmxvY2soJmxnLT5sZ19wcmVhbGxvY19sb2NrKTsNCiANCiAJLyogTm93 IHRyaW0gdGhlIGxpc3QgdG8gYmUgbm90IG1vcmUgdGhhbiA4IGVsZW1lbnRzICovDQogCWlmIChs Z19wcmVhbGxvY19jb3VudCA+IDgpIHsNCiAJCWV4dDRfbWJfZGlzY2FyZF9sZ19wcmVhbGxvY2F0 aW9ucyhzYiwgbGcsDQotCQkJCQkJb3JkZXIsIGxnX3ByZWFsbG9jX2NvdW50KTsNCisJCQkJCQkg IG9yZGVyLCBsZ19wcmVhbGxvY19jb3VudCk7DQogCQlyZXR1cm47DQogCX0NCiAJcmV0dXJuIDsN CmRpZmYgLS1naXQgYS9mcy9leHQ0L21tcC5jIGIvZnMvZXh0NC9tbXAuYw0KaW5kZXggN2VhNGJh NC4uZjMzNThhYiAxMDA2NDQNCi0tLSBhL2ZzL2V4dDQvbW1wLmMNCisrKyBiL2ZzL2V4dDQvbW1w LmMNCkBAIC00MSw2ICs0MSw4IEBAIHN0YXRpYyBpbnQgcmVhZF9tbXBfYmxvY2soc3RydWN0IHN1 cGVyX2Jsb2NrICpzYiwgc3RydWN0IGJ1ZmZlcl9oZWFkICoqYmgsDQogCSAqIGlzIG5vdCBibG9j a2VkIGluIHRoZSBlbGV2YXRvci4gKi8NCiAJaWYgKCEqYmgpDQogCQkqYmggPSBzYl9nZXRibGso c2IsIG1tcF9ibG9jayk7DQorCWlmICghKmJoKQ0KKwkJcmV0dXJuIC1FTk9NRU07DQogCWlmICgq YmgpIHsNCiAJCWdldF9iaCgqYmgpOw0KIAkJbG9ja19idWZmZXIoKmJoKTsNCmRpZmYgLS1naXQg YS9mcy9leHQ0L3BhZ2UtaW8uYyBiL2ZzL2V4dDQvcGFnZS1pby5jDQppbmRleCAyNGZlYjFjLi41 NGY1NjZkIDEwMDY0NA0KLS0tIGEvZnMvZXh0NC9wYWdlLWlvLmMNCisrKyBiL2ZzL2V4dDQvcGFn ZS1pby5jDQpAQCAtMTA4LDE0ICsxMDgsMTMgQEAgaW50IGV4dDRfZW5kX2lvX25vbG9jayhleHQ0 X2lvX2VuZF90ICppbykNCiAJCQkgaW5vZGUtPmlfaW5vLCBvZmZzZXQsIHNpemUsIHJldCk7DQog CX0NCiANCi0JaWYgKGlvLT5pb2NiKQ0KLQkJYWlvX2NvbXBsZXRlKGlvLT5pb2NiLCBpby0+cmVz dWx0LCAwKTsNCi0NCi0JaWYgKGlvLT5mbGFnICYgRVhUNF9JT19FTkRfRElSRUNUKQ0KLQkJaW5v ZGVfZGlvX2RvbmUoaW5vZGUpOw0KIAkvKiBXYWtlIHVwIGFueW9uZSB3YWl0aW5nIG9uIHVud3Jp dHRlbiBleHRlbnQgY29udmVyc2lvbiAqLw0KIAlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmRVhU NF9JKGlub2RlKS0+aV9haW9kaW9fdW53cml0dGVuKSkNCiAJCXdha2VfdXBfYWxsKGV4dDRfaW9l bmRfd3EoaW8tPmlub2RlKSk7DQorCWlmIChpby0+ZmxhZyAmIEVYVDRfSU9fRU5EX0RJUkVDVCkN CisJCWlub2RlX2Rpb19kb25lKGlub2RlKTsNCisJaWYgKGlvLT5pb2NiKQ0KKwkJYWlvX2NvbXBs ZXRlKGlvLT5pb2NiLCBpby0+cmVzdWx0LCAwKTsNCiAJcmV0dXJuIHJldDsNCiB9DQogDQpkaWZm IC0tZ2l0IGEvZnMvZXh0NC9yZXNpemUuYyBiL2ZzL2V4dDQvcmVzaXplLmMNCmluZGV4IDRlYWMz MzcuLjMzMTI5YzAgMTAwNjQ0DQotLS0gYS9mcy9leHQ0L3Jlc2l6ZS5jDQorKysgYi9mcy9leHQ0 L3Jlc2l6ZS5jDQpAQCAtMTQyLDcgKzE0Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgYnVmZmVyX2hlYWQg KmJjbGVhbihoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLA0KIA0KIAli aCA9IHNiX2dldGJsayhzYiwgYmxrKTsNCiAJaWYgKCFiaCkNCi0JCXJldHVybiBFUlJfUFRSKC1F SU8pOw0KKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7DQogCWlmICgoZXJyID0gZXh0NF9qb3Vy bmFsX2dldF93cml0ZV9hY2Nlc3MoaGFuZGxlLCBiaCkpKSB7DQogCQlicmVsc2UoYmgpOw0KIAkJ YmggPSBFUlJfUFRSKGVycik7DQpAQCAtMjIwLDcgKzIyMCw3IEBAIHN0YXRpYyBpbnQgc2V0dXBf bmV3X2dyb3VwX2Jsb2NrcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLA0KIA0KIAkJZ2RiID0gc2Jf Z2V0YmxrKHNiLCBibG9jayk7DQogCQlpZiAoIWdkYikgew0KLQkJCWVyciA9IC1FSU87DQorCQkJ ZXJyID0gLUVOT01FTTsNCiAJCQlnb3RvIGV4aXRfam91cm5hbDsNCiAJCX0NCiAJCWlmICgoZXJy ID0gZXh0NF9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MoaGFuZGxlLCBnZGIpKSkgew0KQEAgLTY5 NCw3ICs2OTQsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfYmFja3VwcyhzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKnNiLA0KIA0KIAkJYmggPSBzYl9nZXRibGsoc2IsIGdyb3VwICogYnBnICsgYmxrX29mZik7 DQogCQlpZiAoIWJoKSB7DQotCQkJZXJyID0gLUVJTzsNCisJCQllcnIgPSAtRU5PTUVNOw0KIAkJ CWJyZWFrOw0KIAkJfQ0KIAkJZXh0NF9kZWJ1ZygidXBkYXRlIG1ldGFkYXRhIGJhY2t1cCAlIzA0 bHhcbiIsDQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC94YXR0ci5jIGIvZnMvZXh0NC94YXR0ci5jDQpp bmRleCA0NDEwYWU3Li5kNTQ5OGIyIDEwMDY0NA0KLS0tIGEvZnMvZXh0NC94YXR0ci5jDQorKysg Yi9mcy9leHQ0L3hhdHRyLmMNCkBAIC00OTYsNyArNDk2LDcgQEAgZXh0NF94YXR0cl9yZWxlYXNl X2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogCQllcnJvciA9 IGV4dDRfaGFuZGxlX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgaW5vZGUsIGJoKTsNCiAJCWlmIChJ U19TWU5DKGlub2RlKSkNCiAJCQlleHQ0X2hhbmRsZV9zeW5jKGhhbmRsZSk7DQotCQlkcXVvdF9m cmVlX2Jsb2NrKGlub2RlLCAxKTsNCisJCWRxdW90X2ZyZWVfYmxvY2soaW5vZGUsIEVYVDRfQzJC KEVYVDRfU0IoaW5vZGUtPmlfc2IpLCAxKSk7DQogCQllYV9iZGVidWcoYmgsICJyZWZjb3VudCBu b3c9JWQ7IHJlbGVhc2luZyIsDQogCQkJICBsZTMyX3RvX2NwdShCSERSKGJoKS0+aF9yZWZjb3Vu dCkpOw0KIAl9DQpAQCAtNzg1LDcgKzc4NSw4IEBAIGluc2VydGVkOg0KIAkJCWVsc2Ugew0KIAkJ CQkvKiBUaGUgb2xkIGJsb2NrIGlzIHJlbGVhc2VkIGFmdGVyIHVwZGF0aW5nDQogCQkJCSAgIHRo ZSBpbm9kZS4gKi8NCi0JCQkJZXJyb3IgPSBkcXVvdF9hbGxvY19ibG9jayhpbm9kZSwgMSk7DQor CQkJCWVycm9yID0gZHF1b3RfYWxsb2NfYmxvY2soaW5vZGUsDQorCQkJCQkJRVhUNF9DMkIoRVhU NF9TQihzYiksIDEpKTsNCiAJCQkJaWYgKGVycm9yKQ0KIAkJCQkJZ290byBjbGVhbnVwOw0KIAkJ CQllcnJvciA9IGV4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZSwNCkBAIC04Mzks MTYgKzg0MCwxNyBAQCBpbnNlcnRlZDoNCiANCiAJCQluZXdfYmggPSBzYl9nZXRibGsoc2IsIGJs b2NrKTsNCiAJCQlpZiAoIW5ld19iaCkgew0KKwkJCQllcnJvciA9IC1FTk9NRU07DQogZ2V0Ymxr X2ZhaWxlZDoNCiAJCQkJZXh0NF9mcmVlX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBOVUxMLCBibG9j aywgMSwNCiAJCQkJCQkgRVhUNF9GUkVFX0JMT0NLU19NRVRBREFUQSk7DQotCQkJCWVycm9yID0g LUVJTzsNCiAJCQkJZ290byBjbGVhbnVwOw0KIAkJCX0NCiAJCQlsb2NrX2J1ZmZlcihuZXdfYmgp Ow0KIAkJCWVycm9yID0gZXh0NF9qb3VybmFsX2dldF9jcmVhdGVfYWNjZXNzKGhhbmRsZSwgbmV3 X2JoKTsNCiAJCQlpZiAoZXJyb3IpIHsNCiAJCQkJdW5sb2NrX2J1ZmZlcihuZXdfYmgpOw0KKwkJ CQllcnJvciA9IC1FSU87DQogCQkJCWdvdG8gZ2V0YmxrX2ZhaWxlZDsNCiAJCQl9DQogCQkJbWVt Y3B5KG5ld19iaC0+Yl9kYXRhLCBzLT5iYXNlLCBuZXdfYmgtPmJfc2l6ZSk7DQpAQCAtODgwLDcg Kzg4Miw3IEBAIGNsZWFudXA6DQogCXJldHVybiBlcnJvcjsNCiANCiBjbGVhbnVwX2RxdW90Og0K LQlkcXVvdF9mcmVlX2Jsb2NrKGlub2RlLCAxKTsNCisJZHF1b3RfZnJlZV9ibG9jayhpbm9kZSwg RVhUNF9DMkIoRVhUNF9TQihzYiksIDEpKTsNCiAJZ290byBjbGVhbnVwOw0KIA0KIGJhZF9ibG9j azoNCmRpZmYgLS1naXQgYS9mcy9sb2NrZC9jbG50cHJvYy5jIGIvZnMvbG9ja2QvY2xudHByb2Mu Yw0KaW5kZXggODM5MmNiOC4uYTNhMDk4NyAxMDA2NDQNCi0tLSBhL2ZzL2xvY2tkL2NsbnRwcm9j LmMNCisrKyBiL2ZzL2xvY2tkL2NsbnRwcm9jLmMNCkBAIC01NTEsNiArNTUxLDkgQEAgYWdhaW46 DQogCQlzdGF0dXMgPSBubG1jbG50X2Jsb2NrKGJsb2NrLCByZXEsIE5MTUNMTlRfUE9MTF9USU1F T1VUKTsNCiAJCWlmIChzdGF0dXMgPCAwKQ0KIAkJCWJyZWFrOw0KKwkJLyogUmVzZW5kIHRoZSBi bG9ja2luZyBsb2NrIHJlcXVlc3QgYWZ0ZXIgYSBzZXJ2ZXIgcmVib290ICovDQorCQlpZiAocmVz cC0+c3RhdHVzID09ICBubG1fbGNrX2RlbmllZF9ncmFjZV9wZXJpb2QpDQorCQkJY29udGludWU7 DQogCQlpZiAocmVzcC0+c3RhdHVzICE9IG5sbV9sY2tfYmxvY2tlZCkNCiAJCQlicmVhazsNCiAJ fQ0KZGlmZiAtLWdpdCBhL2ZzL25mcy9ibG9ja2xheW91dC9ibG9ja2xheW91dC5jIGIvZnMvbmZz L2Jsb2NrbGF5b3V0L2Jsb2NrbGF5b3V0LmMNCmluZGV4IDFhYWEwZWUuLmIxN2E4MWMgMTAwNjQ0 DQotLS0gYS9mcy9uZnMvYmxvY2tsYXlvdXQvYmxvY2tsYXlvdXQuYw0KKysrIGIvZnMvbmZzL2Js b2NrbGF5b3V0L2Jsb2NrbGF5b3V0LmMNCkBAIC0xMTAxLDYgKzExMDEsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IG5mc19wYWdlaW9fb3BzIGJsX3BnX3dyaXRlX29wcyA9IHsNCiBzdGF0aWMgc3Ry dWN0IHBuZnNfbGF5b3V0ZHJpdmVyX3R5cGUgYmxvY2tsYXlvdXRfdHlwZSA9IHsNCiAJLmlkCQkJ CT0gTEFZT1VUX0JMT0NLX1ZPTFVNRSwNCiAJLm5hbWUJCQkJPSAiTEFZT1VUX0JMT0NLX1ZPTFVN RSIsDQorCS5vd25lcgkJCQk9IFRISVNfTU9EVUxFLA0KIAkucmVhZF9wYWdlbGlzdAkJCT0gYmxf cmVhZF9wYWdlbGlzdCwNCiAJLndyaXRlX3BhZ2VsaXN0CQkJPSBibF93cml0ZV9wYWdlbGlzdCwN CiAJLmFsbG9jX2xheW91dF9oZHIJCT0gYmxfYWxsb2NfbGF5b3V0X2hkciwNCmRpZmYgLS1naXQg YS9mcy9uZnMvbmZzNHByb2MuYyBiL2ZzL25mcy9uZnM0cHJvYy5jDQppbmRleCAyZjk4YzUzLi42 ZDdjNTNkIDEwMDY0NA0KLS0tIGEvZnMvbmZzL25mczRwcm9jLmMNCisrKyBiL2ZzL25mcy9uZnM0 cHJvYy5jDQpAQCAtNTg5MSw3ICs1ODkxLDggQEAgaW50IG5mczRfcHJvY19sYXlvdXRnZXQoc3Ry dWN0IG5mczRfbGF5b3V0Z2V0ICpsZ3AsIGdmcF90IGdmcF9mbGFncykNCiAJc3RhdHVzID0gbmZz NF93YWl0X2Zvcl9jb21wbGV0aW9uX3JwY190YXNrKHRhc2spOw0KIAlpZiAoc3RhdHVzID09IDAp DQogCQlzdGF0dXMgPSB0YXNrLT50a19zdGF0dXM7DQotCWlmIChzdGF0dXMgPT0gMCkNCisJLyog aWYgbGF5b3V0cC0+bGVuIGlzIDAsIG5mczRfbGF5b3V0Z2V0X3ByZXBhcmUgY2FsbGVkIHJwY19l eGl0ICovDQorCWlmIChzdGF0dXMgPT0gMCAmJiBsZ3AtPnJlcy5sYXlvdXRwLT5sZW4pDQogCQlz dGF0dXMgPSBwbmZzX2xheW91dF9wcm9jZXNzKGxncCk7DQogCXJwY19wdXRfdGFzayh0YXNrKTsN CiAJZHByaW50aygiPC0tICVzIHN0YXR1cz0lZFxuIiwgX19mdW5jX18sIHN0YXR1cyk7DQpkaWZm IC0tZ2l0IGEvZnMvbmZzL29iamxheW91dC9vYmppb19vc2QuYyBiL2ZzL25mcy9vYmpsYXlvdXQv b2JqaW9fb3NkLmMNCmluZGV4IGEwM2VlNTIuLmMxODk3ZjcgMTAwNjQ0DQotLS0gYS9mcy9uZnMv b2JqbGF5b3V0L29iamlvX29zZC5jDQorKysgYi9mcy9uZnMvb2JqbGF5b3V0L29iamlvX29zZC5j DQpAQCAtNTY5LDYgKzU2OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcG5mc19sYXlvdXRkcml2ZXJfdHlw ZSBvYmpsYXlvdXRfdHlwZSA9IHsNCiAJLmZsYWdzICAgICAgICAgICAgICAgICAgID0gUE5GU19M QVlPVVRSRVRfT05fU0VUQVRUUiB8DQogCQkJCSAgIFBORlNfTEFZT1VUUkVUX09OX0VSUk9SLA0K IA0KKwkub3duZXIJCSAgICAgICAJID0gVEhJU19NT0RVTEUsDQogCS5hbGxvY19sYXlvdXRfaGRy ICAgICAgICA9IG9iamxheW91dF9hbGxvY19sYXlvdXRfaGRyLA0KIAkuZnJlZV9sYXlvdXRfaGRy ICAgICAgICAgPSBvYmpsYXlvdXRfZnJlZV9sYXlvdXRfaGRyLA0KIA0KZGlmZiAtLWdpdCBhL2Zz L25mc2QvbmZzNHN0YXRlLmMgYi9mcy9uZnNkL25mczRzdGF0ZS5jDQppbmRleCA4YjE5N2QyLi43 ZDE4OWRjIDEwMDY0NA0KLS0tIGEvZnMvbmZzZC9uZnM0c3RhdGUuYw0KKysrIGIvZnMvbmZzZC9u ZnM0c3RhdGUuYw0KQEAgLTEwMDksNiArMTAwOSw4IEBAIGZyZWVfY2xpZW50KHN0cnVjdCBuZnM0 X2NsaWVudCAqY2xwKQ0KIAkJcHV0X2dyb3VwX2luZm8oY2xwLT5jbF9jcmVkLmNyX2dyb3VwX2lu Zm8pOw0KIAlrZnJlZShjbHAtPmNsX3ByaW5jaXBhbCk7DQogCWtmcmVlKGNscC0+Y2xfbmFtZS5k YXRhKTsNCisJaWRyX3JlbW92ZV9hbGwoJmNscC0+Y2xfc3RhdGVpZHMpOw0KKwlpZHJfZGVzdHJv eSgmY2xwLT5jbF9zdGF0ZWlkcyk7DQogCWtmcmVlKGNscCk7DQogfQ0KIA0KZGlmZiAtLWdpdCBh L2ZzL25vdGlmeS9pbm90aWZ5L2lub3RpZnlfdXNlci5jIGIvZnMvbm90aWZ5L2lub3RpZnkvaW5v dGlmeV91c2VyLmMNCmluZGV4IDg0NDVmYmMuLjZmMjkyZGQgMTAwNjQ0DQotLS0gYS9mcy9ub3Rp ZnkvaW5vdGlmeS9pbm90aWZ5X3VzZXIuYw0KKysrIGIvZnMvbm90aWZ5L2lub3RpZnkvaW5vdGlm eV91c2VyLmMNCkBAIC01NzksOCArNTc5LDYgQEAgc3RhdGljIGludCBpbm90aWZ5X3VwZGF0ZV9l eGlzdGluZ193YXRjaChzdHJ1Y3QgZnNub3RpZnlfZ3JvdXAgKmdyb3VwLA0KIA0KIAkvKiBkb24n dCBhbGxvdyBpbnZhbGlkIGJpdHM6IHdlIGRvbid0IHdhbnQgZmxhZ3Mgc2V0ICovDQogCW1hc2sg PSBpbm90aWZ5X2FyZ190b19tYXNrKGFyZyk7DQotCWlmICh1bmxpa2VseSghKG1hc2sgJiBJTl9B TExfRVZFTlRTKSkpDQotCQlyZXR1cm4gLUVJTlZBTDsNCiANCiAJZnNuX21hcmsgPSBmc25vdGlm eV9maW5kX2lub2RlX21hcmsoZ3JvdXAsIGlub2RlKTsNCiAJaWYgKCFmc25fbWFyaykNCkBAIC02 MzIsOCArNjMwLDYgQEAgc3RhdGljIGludCBpbm90aWZ5X25ld193YXRjaChzdHJ1Y3QgZnNub3Rp ZnlfZ3JvdXAgKmdyb3VwLA0KIA0KIAkvKiBkb24ndCBhbGxvdyBpbnZhbGlkIGJpdHM6IHdlIGRv bid0IHdhbnQgZmxhZ3Mgc2V0ICovDQogCW1hc2sgPSBpbm90aWZ5X2FyZ190b19tYXNrKGFyZyk7 DQotCWlmICh1bmxpa2VseSghKG1hc2sgJiBJTl9BTExfRVZFTlRTKSkpDQotCQlyZXR1cm4gLUVJ TlZBTDsNCiANCiAJdG1wX2lfbWFyayA9IGttZW1fY2FjaGVfYWxsb2MoaW5vdGlmeV9pbm9kZV9t YXJrX2NhY2hlcCwgR0ZQX0tFUk5FTCk7DQogCWlmICh1bmxpa2VseSghdG1wX2lfbWFyaykpDQpk aWZmIC0tZ2l0IGEvZnMvb2NmczIvYW9wcy5jIGIvZnMvb2NmczIvYW9wcy5jDQppbmRleCA3OGI2 OGFmLi40NDAyYjE4IDEwMDY0NA0KLS0tIGEvZnMvb2NmczIvYW9wcy5jDQorKysgYi9mcy9vY2Zz Mi9hb3BzLmMNCkBAIC01OTMsOSArNTkzLDkgQEAgc3RhdGljIHZvaWQgb2NmczJfZGlvX2VuZF9p byhzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCWxldmVsID0gb2NmczJfaW9jYl9yd19sb2NrZWRfbGV2 ZWwoaW9jYik7DQogCW9jZnMyX3J3X3VubG9jayhpbm9kZSwgbGV2ZWwpOw0KIA0KKwlpbm9kZV9k aW9fZG9uZShpbm9kZSk7DQogCWlmIChpc19hc3luYykNCiAJCWFpb19jb21wbGV0ZShpb2NiLCBy ZXQsIDApOw0KLQlpbm9kZV9kaW9fZG9uZShpbm9kZSk7DQogfQ0KIA0KIC8qDQpkaWZmIC0tZ2l0 IGEvZnMvb2NmczIvZGxtZ2x1ZS5jIGIvZnMvb2NmczIvZGxtZ2x1ZS5jDQppbmRleCA4MWE0Y2Qy Li4yMzFlYWIyIDEwMDY0NA0KLS0tIGEvZnMvb2NmczIvZGxtZ2x1ZS5jDQorKysgYi9mcy9vY2Zz Mi9kbG1nbHVlLmMNCkBAIC0yNTQ1LDYgKzI1NDUsNyBAQCBpbnQgb2NmczJfc3VwZXJfbG9jayhz dHJ1Y3Qgb2NmczJfc3VwZXIgKm9zYiwNCiAJICogZXZlcnl0aGluZyBpcyB1cCB0byB0aGUgY2Fs bGVyIDopICovDQogCXN0YXR1cyA9IG9jZnMyX3Nob3VsZF9yZWZyZXNoX2xvY2tfcmVzKGxvY2ty ZXMpOw0KIAlpZiAoc3RhdHVzIDwgMCkgew0KKwkJb2NmczJfY2x1c3Rlcl91bmxvY2sob3NiLCBs b2NrcmVzLCBsZXZlbCk7DQogCQltbG9nX2Vycm5vKHN0YXR1cyk7DQogCQlnb3RvIGJhaWw7DQog CX0NCkBAIC0yNTUzLDggKzI1NTQsMTAgQEAgaW50IG9jZnMyX3N1cGVyX2xvY2soc3RydWN0IG9j ZnMyX3N1cGVyICpvc2IsDQogDQogCQlvY2ZzMl9jb21wbGV0ZV9sb2NrX3Jlc19yZWZyZXNoKGxv Y2tyZXMsIHN0YXR1cyk7DQogDQotCQlpZiAoc3RhdHVzIDwgMCkNCisJCWlmIChzdGF0dXMgPCAw KSB7DQorCQkJb2NmczJfY2x1c3Rlcl91bmxvY2sob3NiLCBsb2NrcmVzLCBsZXZlbCk7DQogCQkJ bWxvZ19lcnJubyhzdGF0dXMpOw0KKwkJfQ0KIAkJb2NmczJfdHJhY2tfbG9ja19yZWZyZXNoKGxv Y2tyZXMpOw0KIAl9DQogYmFpbDoNCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9zdWJhbGxvYy5jIGIv ZnMvb2NmczIvc3ViYWxsb2MuYw0KaW5kZXggZjE2OWRhNC4uYjdlNzRiNSAxMDA2NDQNCi0tLSBh L2ZzL29jZnMyL3N1YmFsbG9jLmMNCisrKyBiL2ZzL29jZnMyL3N1YmFsbG9jLmMNCkBAIC02NDIs NyArNjQyLDcgQEAgb2NmczJfYmxvY2tfZ3JvdXBfYWxsb2NfZGlzY29udGlnKGhhbmRsZV90ICpo YW5kbGUsDQogCSAqIGNsdXN0ZXIgZ3JvdXBzIHdpbGwgYmUgc3RheWluZyBpbiBjYWNoZSBmb3Ig dGhlIGR1cmF0aW9uIG9mDQogCSAqIHRoaXMgb3BlcmF0aW9uLg0KIAkgKi8NCi0JYWMtPmFjX2Fs bG93X2NoYWluX3JlbGluayA9IDA7DQorCWFjLT5hY19kaXNhYmxlX2NoYWluX3JlbGluayA9IDE7 DQogDQogCS8qIENsYWltIHRoZSBmaXJzdCByZWdpb24gKi8NCiAJc3RhdHVzID0gb2NmczJfYmxv Y2tfZ3JvdXBfY2xhaW1fYml0cyhvc2IsIGhhbmRsZSwgYWMsIG1pbl9iaXRzLA0KQEAgLTE4MjMs NyArMTgyMyw3IEBAIHN0YXRpYyBpbnQgb2NmczJfc2VhcmNoX2NoYWluKHN0cnVjdCBvY2ZzMl9h bGxvY19jb250ZXh0ICphYywNCiAJICogRG8gdGhpcyAqYWZ0ZXIqIGZpZ3VyaW5nIG91dCBob3cg bWFueSBiaXRzIHdlJ3JlIHRha2luZyBvdXQNCiAJICogb2Ygb3VyIHRhcmdldCBncm91cC4NCiAJ ICovDQotCWlmIChhYy0+YWNfYWxsb3dfY2hhaW5fcmVsaW5rICYmDQorCWlmICghYWMtPmFjX2Rp c2FibGVfY2hhaW5fcmVsaW5rICYmDQogCSAgICAocHJldl9ncm91cF9iaCkgJiYNCiAJICAgIChv Y2ZzMl9ibG9ja19ncm91cF9yZWFzb25hYmx5X2VtcHR5KGJnLCByZXMtPnNyX2JpdHMpKSkgew0K IAkJc3RhdHVzID0gb2NmczJfcmVsaW5rX2Jsb2NrX2dyb3VwKGhhbmRsZSwgYWxsb2NfaW5vZGUs DQpAQCAtMTkyOCw3ICsxOTI4LDYgQEAgc3RhdGljIGludCBvY2ZzMl9jbGFpbV9zdWJhbGxvY19i aXRzKHN0cnVjdCBvY2ZzMl9hbGxvY19jb250ZXh0ICphYywNCiANCiAJdmljdGltID0gb2NmczJf ZmluZF92aWN0aW1fY2hhaW4oY2wpOw0KIAlhYy0+YWNfY2hhaW4gPSB2aWN0aW07DQotCWFjLT5h Y19hbGxvd19jaGFpbl9yZWxpbmsgPSAxOw0KIA0KIAlzdGF0dXMgPSBvY2ZzMl9zZWFyY2hfY2hh aW4oYWMsIGhhbmRsZSwgYml0c193YW50ZWQsIG1pbl9iaXRzLA0KIAkJCQkgICAgcmVzLCAmYml0 c19sZWZ0KTsNCkBAIC0xOTQ3LDcgKzE5NDYsNyBAQCBzdGF0aWMgaW50IG9jZnMyX2NsYWltX3N1 YmFsbG9jX2JpdHMoc3RydWN0IG9jZnMyX2FsbG9jX2NvbnRleHQgKmFjLA0KIAkgKiBzZWFyY2hp bmcgZWFjaCBjaGFpbiBpbiBvcmRlci4gRG9uJ3QgYWxsb3cgY2hhaW4gcmVsaW5raW5nDQogCSAq IGJlY2F1c2Ugd2Ugb25seSBjYWxjdWxhdGUgZW5vdWdoIGpvdXJuYWwgY3JlZGl0cyBmb3Igb25l DQogCSAqIHJlbGluayBwZXIgYWxsb2MuICovDQotCWFjLT5hY19hbGxvd19jaGFpbl9yZWxpbmsg PSAwOw0KKwlhYy0+YWNfZGlzYWJsZV9jaGFpbl9yZWxpbmsgPSAxOw0KIAlmb3IgKGkgPSAwOyBp IDwgbGUxNl90b19jcHUoY2wtPmNsX25leHRfZnJlZV9yZWMpOyBpICsrKSB7DQogCQlpZiAoaSA9 PSB2aWN0aW0pDQogCQkJY29udGludWU7DQpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvc3ViYWxsb2Mu aCBiL2ZzL29jZnMyL3N1YmFsbG9jLmgNCmluZGV4IGI4YWZhYmYuLmEzNmQwYWEgMTAwNjQ0DQot LS0gYS9mcy9vY2ZzMi9zdWJhbGxvYy5oDQorKysgYi9mcy9vY2ZzMi9zdWJhbGxvYy5oDQpAQCAt NDksNyArNDksNyBAQCBzdHJ1Y3Qgb2NmczJfYWxsb2NfY29udGV4dCB7DQogDQogCS8qIHRoZXNl IGFyZSB1c2VkIGJ5IHRoZSBjaGFpbiBzZWFyY2ggKi8NCiAJdTE2ICAgIGFjX2NoYWluOw0KLQlp bnQgICAgYWNfYWxsb3dfY2hhaW5fcmVsaW5rOw0KKwlpbnQgICAgYWNfZGlzYWJsZV9jaGFpbl9y ZWxpbms7DQogCWdyb3VwX3NlYXJjaF90ICphY19ncm91cF9zZWFyY2g7DQogDQogCXU2NCAgICBh Y19sYXN0X2dyb3VwOw0KZGlmZiAtLWdpdCBhL2ZzL29jZnMyL3hhdHRyLmMgYi9mcy9vY2ZzMi94 YXR0ci5jDQppbmRleCBhYTllODc3Li4wZDVlYTljIDEwMDY0NA0KLS0tIGEvZnMvb2NmczIveGF0 dHIuYw0KKysrIGIvZnMvb2NmczIveGF0dHIuYw0KQEAgLTcxODksNyArNzE4OSw3IEBAIGludCBv Y2ZzMl9pbml0X3NlY3VyaXR5X2FuZF9hY2woc3RydWN0IGlub2RlICpkaXIsDQogCXN0cnVjdCBi dWZmZXJfaGVhZCAqZGlyX2JoID0gTlVMTDsNCiANCiAJcmV0ID0gb2NmczJfaW5pdF9zZWN1cml0 eV9nZXQoaW5vZGUsIGRpciwgcXN0ciwgTlVMTCk7DQotCWlmICghcmV0KSB7DQorCWlmIChyZXQp IHsNCiAJCW1sb2dfZXJybm8ocmV0KTsNCiAJCWdvdG8gbGVhdmU7DQogCX0NCmRpZmYgLS1naXQg YS9mcy9wYXJ0aXRpb25zL2NoZWNrLmMgYi9mcy9wYXJ0aXRpb25zL2NoZWNrLmMNCmluZGV4IDZi NWZjYzUuLjFlZjE1Y2MgMTAwNjQ0DQotLS0gYS9mcy9wYXJ0aXRpb25zL2NoZWNrLmMNCisrKyBi L2ZzL3BhcnRpdGlvbnMvY2hlY2suYw0KQEAgLTM5OSwxMSArMzk5LDExIEBAIHZvaWQgZGVsZXRl X3BhcnRpdGlvbihzdHJ1Y3QgZ2VuZGlzayAqZGlzaywgaW50IHBhcnRubykNCiAJaWYgKCFwYXJ0 KQ0KIAkJcmV0dXJuOw0KIA0KLQlibGtfZnJlZV9kZXZ0KHBhcnRfZGV2dChwYXJ0KSk7DQogCXJj dV9hc3NpZ25fcG9pbnRlcihwdGJsLT5wYXJ0W3BhcnRub10sIE5VTEwpOw0KIAlyY3VfYXNzaWdu X3BvaW50ZXIocHRibC0+bGFzdF9sb29rdXAsIE5VTEwpOw0KIAlrb2JqZWN0X3B1dChwYXJ0LT5o b2xkZXJfZGlyKTsNCiAJZGV2aWNlX2RlbChwYXJ0X3RvX2RldihwYXJ0KSk7DQorCWJsa19mcmVl X2RldnQocGFydF9kZXZ0KHBhcnQpKTsNCiANCiAJaGRfc3RydWN0X3B1dChwYXJ0KTsNCiB9DQpk aWZmIC0tZ2l0IGEvZnMvcHN0b3JlL3BsYXRmb3JtLmMgYi9mcy9wc3RvcmUvcGxhdGZvcm0uYw0K aW5kZXggNTdiYmY5MC4uNDVkMThkMSAxMDA2NDQNCi0tLSBhL2ZzL3BzdG9yZS9wbGF0Zm9ybS5j DQorKysgYi9mcy9wc3RvcmUvcGxhdGZvcm0uYw0KQEAgLTcyLDYgKzcyLDI3IEBAIHN0YXRpYyBj aGFyICpyZWFzb25fc3RyW10gPSB7DQogCSJPb3BzIiwgIlBhbmljIiwgIktleGVjIiwgIlJlc3Rh cnQiLCAiSGFsdCIsICJQb3dlcm9mZiIsICJFbWVyZ2VuY3kiDQogfTsNCiANCitib29sIHBzdG9y ZV9jYW5ub3RfYmxvY2tfcGF0aChlbnVtIGttc2dfZHVtcF9yZWFzb24gcmVhc29uKQ0KK3sNCisJ LyoNCisJICogSW4gY2FzZSBvZiBOTUkgcGF0aCwgcHN0b3JlIHNob3VsZG4ndCBiZSBibG9ja2Vk DQorCSAqIHJlZ2FyZGxlc3Mgb2YgcmVhc29uLg0KKwkgKi8NCisJaWYgKGluX25taSgpKQ0KKwkJ cmV0dXJuIHRydWU7DQorDQorCXN3aXRjaCAocmVhc29uKSB7DQorCS8qIEluIHBhbmljIGNhc2Us IG90aGVyIGNwdXMgYXJlIHN0b3BwZWQgYnkgc21wX3NlbmRfc3RvcCgpLiAqLw0KKwljYXNlIEtN U0dfRFVNUF9QQU5JQzoNCisJLyogRW1lcmdlbmN5IHJlc3RhcnQgc2hvdWxkbid0IGJlIGJsb2Nr ZWQgYnkgc3BpbiBsb2NrLiAqLw0KKwljYXNlIEtNU0dfRFVNUF9FTUVSRzoNCisJCXJldHVybiB0 cnVlOw0KKwlkZWZhdWx0Og0KKwkJcmV0dXJuIGZhbHNlOw0KKwl9DQorfQ0KK0VYUE9SVF9TWU1C T0xfR1BMKHBzdG9yZV9jYW5ub3RfYmxvY2tfcGF0aCk7DQorDQogLyoNCiAgKiBjYWxsYmFjayBm cm9tIGttc2dfZHVtcC4gKHMyLGwyKSBoYXMgdGhlIG1vc3QgcmVjZW50bHkNCiAgKiB3cml0dGVu IGJ5dGVzLCBvbGRlciBieXRlcyBhcmUgaW4gKHMxLGwxKS4gU2F2ZSBhcyBtdWNoDQpAQCAtOTcs MTAgKzExOCwxMiBAQCBzdGF0aWMgdm9pZCBwc3RvcmVfZHVtcChzdHJ1Y3Qga21zZ19kdW1wZXIg KmR1bXBlciwNCiAJZWxzZQ0KIAkJd2h5ID0gIlVua25vd24iOw0KIA0KLQlpZiAoaW5fbm1pKCkp IHsNCi0JCWlzX2xvY2tlZCA9IHNwaW5fdHJ5bG9jaygmcHNpbmZvLT5idWZfbG9jayk7DQotCQlp ZiAoIWlzX2xvY2tlZCkNCi0JCQlwcl9lcnIoInBzdG9yZSBkdW1wIHJvdXRpbmUgYmxvY2tlZCBp biBOTUksIG1heSBjb3JydXB0IGVycm9yIHJlY29yZFxuIik7DQorCWlmIChwc3RvcmVfY2Fubm90 X2Jsb2NrX3BhdGgocmVhc29uKSkgew0KKwkJaXNfbG9ja2VkID0gc3Bpbl90cnlsb2NrX2lycXNh dmUoJnBzaW5mby0+YnVmX2xvY2ssIGZsYWdzKTsNCisJCWlmICghaXNfbG9ja2VkKSB7DQorCQkJ cHJfZXJyKCJwc3RvcmUgZHVtcCByb3V0aW5lIGJsb2NrZWQgaW4gJXMgcGF0aCwgbWF5IGNvcnJ1 cHQgZXJyb3IgcmVjb3JkXG4iDQorCQkJCSAgICAgICAsIGluX25taSgpID8gIk5NSSIgOiB3aHkp Ow0KKwkJfQ0KIAl9IGVsc2UNCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZwc2luZm8tPmJ1Zl9sb2Nr LCBmbGFncyk7DQogCW9vcHNjb3VudCsrOw0KQEAgLTEzMSw5ICsxNTQsOSBAQCBzdGF0aWMgdm9p ZCBwc3RvcmVfZHVtcChzdHJ1Y3Qga21zZ19kdW1wZXIgKmR1bXBlciwNCiAJCXRvdGFsICs9IGwx X2NweSArIGwyX2NweTsNCiAJCXBhcnQrKzsNCiAJfQ0KLQlpZiAoaW5fbm1pKCkpIHsNCisJaWYg KHBzdG9yZV9jYW5ub3RfYmxvY2tfcGF0aChyZWFzb24pKSB7DQogCQlpZiAoaXNfbG9ja2VkKQ0K LQkJCXNwaW5fdW5sb2NrKCZwc2luZm8tPmJ1Zl9sb2NrKTsNCisJCQlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZwc2luZm8tPmJ1Zl9sb2NrLCBmbGFncyk7DQogCX0gZWxzZQ0KIAkJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmcHNpbmZvLT5idWZfbG9jaywgZmxhZ3MpOw0KIH0NCmRpZmYgLS1naXQg YS9mcy91Ymlmcy9vcnBoYW4uYyBiL2ZzL3ViaWZzL29ycGhhbi5jDQppbmRleCBjNTQyYzczLi5m OWM5MGI1IDEwMDY0NA0KLS0tIGEvZnMvdWJpZnMvb3JwaGFuLmMNCisrKyBiL2ZzL3ViaWZzL29y cGhhbi5jDQpAQCAtMTMwLDEzICsxMzAsMTQgQEAgdm9pZCB1Ymlmc19kZWxldGVfb3JwaGFuKHN0 cnVjdCB1Ymlmc19pbmZvICpjLCBpbm9fdCBpbnVtKQ0KIAkJZWxzZSBpZiAoaW51bSA+IG8tPmlu dW0pDQogCQkJcCA9IHAtPnJiX3JpZ2h0Ow0KIAkJZWxzZSB7DQotCQkJaWYgKG8tPmRuZXh0KSB7 DQorCQkJaWYgKG8tPmRlbCkgew0KIAkJCQlzcGluX3VubG9jaygmYy0+b3JwaGFuX2xvY2spOw0K IAkJCQlkYmdfZ2VuKCJkZWxldGVkIHR3aWNlIGlubyAlbHUiLA0KIAkJCQkJKHVuc2lnbmVkIGxv bmcpaW51bSk7DQogCQkJCXJldHVybjsNCiAJCQl9DQogCQkJaWYgKG8tPmNuZXh0KSB7DQorCQkJ CW8tPmRlbCA9IDE7DQogCQkJCW8tPmRuZXh0ID0gYy0+b3JwaF9kbmV4dDsNCiAJCQkJYy0+b3Jw aF9kbmV4dCA9IG87DQogCQkJCXNwaW5fdW5sb2NrKCZjLT5vcnBoYW5fbG9jayk7DQpAQCAtNDQ3 LDYgKzQ0OCw3IEBAIHN0YXRpYyB2b2lkIGVyYXNlX2RlbGV0ZWQoc3RydWN0IHViaWZzX2luZm8g KmMpDQogCQlvcnBoYW4gPSBkbmV4dDsNCiAJCWRuZXh0ID0gb3JwaGFuLT5kbmV4dDsNCiAJCXVi aWZzX2Fzc2VydCghb3JwaGFuLT5uZXcpOw0KKwkJdWJpZnNfYXNzZXJ0KG9ycGhhbi0+ZGVsKTsN CiAJCXJiX2VyYXNlKCZvcnBoYW4tPnJiLCAmYy0+b3JwaF90cmVlKTsNCiAJCWxpc3RfZGVsKCZv cnBoYW4tPmxpc3QpOw0KIAkJYy0+dG90X29ycGhhbnMgLT0gMTsNCkBAIC01MzYsNiArNTM4LDcg QEAgc3RhdGljIGludCBpbnNlcnRfZGVhZF9vcnBoYW4oc3RydWN0IHViaWZzX2luZm8gKmMsIGlu b190IGludW0pDQogCXJiX2xpbmtfbm9kZSgmb3JwaGFuLT5yYiwgcGFyZW50LCBwKTsNCiAJcmJf aW5zZXJ0X2NvbG9yKCZvcnBoYW4tPnJiLCAmYy0+b3JwaF90cmVlKTsNCiAJbGlzdF9hZGRfdGFp bCgmb3JwaGFuLT5saXN0LCAmYy0+b3JwaF9saXN0KTsNCisJb3JwaGFuLT5kZWwgPSAxOw0KIAlv cnBoYW4tPmRuZXh0ID0gYy0+b3JwaF9kbmV4dDsNCiAJYy0+b3JwaF9kbmV4dCA9IG9ycGhhbjsN CiAJZGJnX21udCgiaW5vICVsdSwgbmV3ICVkLCB0b3QgJWQiLCAodW5zaWduZWQgbG9uZylpbnVt LA0KZGlmZiAtLWdpdCBhL2ZzL3ViaWZzL3ViaWZzLmggYi9mcy91Ymlmcy91Ymlmcy5oDQppbmRl eCA4YmJjOTllLi5hMzlmY2U1IDEwMDY0NA0KLS0tIGEvZnMvdWJpZnMvdWJpZnMuaA0KKysrIGIv ZnMvdWJpZnMvdWJpZnMuaA0KQEAgLTkwOCw2ICs5MDgsNyBAQCBzdHJ1Y3QgdWJpZnNfYnVkZ2V0 X3JlcSB7DQogICogQGRuZXh0OiBuZXh0IG9ycGhhbiB0byBkZWxldGUNCiAgKiBAaW51bTogaW5v ZGUgbnVtYmVyDQogICogQG5ldzogJTEgPT4gYWRkZWQgc2luY2UgdGhlIGxhc3QgY29tbWl0LCBv dGhlcndpc2UgJTANCisgKiBAZGVsOiAlMSA9PiBkZWxldGUgcGVuZGluZywgb3RoZXJ3aXNlICUw DQogICovDQogc3RydWN0IHViaWZzX29ycGhhbiB7DQogCXN0cnVjdCByYl9ub2RlIHJiOw0KQEAg LTkxNyw2ICs5MTgsNyBAQCBzdHJ1Y3QgdWJpZnNfb3JwaGFuIHsNCiAJc3RydWN0IHViaWZzX29y cGhhbiAqZG5leHQ7DQogCWlub190IGludW07DQogCWludCBuZXc7DQorCXVuc2lnbmVkIGRlbDox Ow0KIH07DQogDQogLyoqDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hdXRvX2ZzLmggYi9p bmNsdWRlL2xpbnV4L2F1dG9fZnMuaA0KaW5kZXggZGE2NGUxNS4uNmNkYWJiNCAxMDA2NDQNCi0t LSBhL2luY2x1ZGUvbGludXgvYXV0b19mcy5oDQorKysgYi9pbmNsdWRlL2xpbnV4L2F1dG9fZnMu aA0KQEAgLTMxLDI1ICszMSwxNiBAQA0KICNkZWZpbmUgQVVUT0ZTX01JTl9QUk9UT19WRVJTSU9O CUFVVE9GU19QUk9UT19WRVJTSU9ODQogDQogLyoNCi0gKiBBcmNoaXRlY3R1cmVzIHdoZXJlIGJv dGggMzItIGFuZCA2NC1iaXQgYmluYXJpZXMgY2FuIGJlIGV4ZWN1dGVkDQotICogb24gNjQtYml0 IGtlcm5lbHMgbmVlZCB0aGlzLiAgVGhpcyBrZWVwcyB0aGUgc3RydWN0dXJlIGZvcm1hdA0KLSAq IHVuaWZvcm0sIGFuZCBtYWtlcyBzdXJlIHRoZSB3YWl0X3F1ZXVlX3Rva2VuIGlzbid0IHRvbyBi aWcgdG8gYmUNCi0gKiBwYXNzZWQgYmFjayBkb3duIHRvIHRoZSBrZXJuZWwuDQotICoNCi0gKiBU aGlzIGFzc3VtZXMgdGhhdCBvbiB0aGVzZSBhcmNoaXRlY3R1cmVzOg0KLSAqIG1vZGUgICAgIDMy IGJpdCAgICA2NCBiaXQNCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQotICogaW50ICAg ICAgMzIgYml0ICAgIDMyIGJpdA0KLSAqIGxvbmcgICAgIDMyIGJpdCAgICA2NCBiaXQNCi0gKg0K LSAqIElmIHNvLCAzMi1iaXQgdXNlci1zcGFjZSBjb2RlIHNob3VsZCBiZSBiYWNrd2FyZHMgY29t cGF0aWJsZS4NCisgKiBUaGUgd2FpdF9xdWV1ZV90b2tlbiAoYXV0b2ZzX3dxdF90KSBpcyBwYXJ0 IG9mIGEgc3RydWN0dXJlIHdoaWNoIGlzIHBhc3NlZA0KKyAqIGJhY2sgdG8gdGhlIGtlcm5lbCB2 aWEgaW9jdGwgZnJvbSB1c2Vyc3BhY2UuIE9uIGFyY2hpdGVjdHVyZXMgd2hlcmUgMzItIGFuZA0K KyAqIDY0LWJpdCB1c2Vyc3BhY2UgYmluYXJpZXMgY2FuIGJlIGV4ZWN1dGVkIGl0J3MgaW1wb3J0 YW50IHRoYXQgdGhlIHNpemUgb2YNCisgKiBhdXRvZnNfd3F0X3Qgc3RheXMgY29uc3RhbnQgYmV0 d2VlbiAzMi0gYW5kIDY0LWJpdCBMaW51eCBrZXJuZWxzIHNvIHRoYXQgd2UNCisgKiBkbyBub3Qg YnJlYWsgdGhlIGJpbmFyeSBBQkkgaW50ZXJmYWNlIGJ5IGNoYW5naW5nIHRoZSBzdHJ1Y3R1cmUg c2l6ZS4NCiAgKi8NCi0NCi0jaWYgZGVmaW5lZChfX3NwYXJjX18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgXA0KLSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8 fCBkZWZpbmVkKF9fczM5MF9fKQ0KLXR5cGVkZWYgdW5zaWduZWQgaW50IGF1dG9mc193cXRfdDsN Ci0jZWxzZQ0KKyNpZiBkZWZpbmVkKF9faWE2NF9fKSB8fCBkZWZpbmVkKF9fYWxwaGFfXykgLyog cHVyZSA2NGJpdCBhcmNoaXRlY3R1cmVzICovDQogdHlwZWRlZiB1bnNpZ25lZCBsb25nIGF1dG9m c193cXRfdDsNCisjZWxzZQ0KK3R5cGVkZWYgdW5zaWduZWQgaW50IGF1dG9mc193cXRfdDsNCiAj ZW5kaWYNCiANCiAvKiBQYWNrZXQgdHlwZXMgKi8NCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L2JpbmZtdHMuaCBiL2luY2x1ZGUvbGludXgvYmluZm10cy5oDQppbmRleCBmNjA2NDA2Li5hY2Q4 ZDRiIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9iaW5mbXRzLmgNCisrKyBiL2luY2x1ZGUv bGludXgvYmluZm10cy5oDQpAQCAtNjcsOCArNjcsNiBAQCBzdHJ1Y3QgbGludXhfYmlucHJtIHsN CiAjZGVmaW5lIEJJTlBSTV9GTEFHU19FWEVDRkRfQklUIDENCiAjZGVmaW5lIEJJTlBSTV9GTEFH U19FWEVDRkQgKDEgPDwgQklOUFJNX0ZMQUdTX0VYRUNGRF9CSVQpDQogDQotI2RlZmluZSBCSU5Q Uk1fTUFYX1JFQ1VSU0lPTiA0DQotDQogLyogRnVuY3Rpb24gcGFyYW1ldGVyIGZvciBiaW5mbXQt PmNvcmVkdW1wICovDQogc3RydWN0IGNvcmVkdW1wX3BhcmFtcyB7DQogCWxvbmcgc2lnbnI7DQpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jb25zb2xlLmggYi9pbmNsdWRlL2xpbnV4L2NvbnNv bGUuaA0KaW5kZXggNzQ1M2NmZC4uNmFlNmExNSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgv Y29uc29sZS5oDQorKysgYi9pbmNsdWRlL2xpbnV4L2NvbnNvbGUuaA0KQEAgLTc3LDcgKzc3LDkg QEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBjb25zdyBwcm9tX2NvbjsJLyogU1BBUkMgUFJPTSBjb25z b2xlICovDQogaW50IGNvbl9pc19ib3VuZChjb25zdCBzdHJ1Y3QgY29uc3cgKmNzdyk7DQogaW50 IHJlZ2lzdGVyX2Nvbl9kcml2ZXIoY29uc3Qgc3RydWN0IGNvbnN3ICpjc3csIGludCBmaXJzdCwg aW50IGxhc3QpOw0KIGludCB1bnJlZ2lzdGVyX2Nvbl9kcml2ZXIoY29uc3Qgc3RydWN0IGNvbnN3 ICpjc3cpOw0KK2ludCBkb191bnJlZ2lzdGVyX2Nvbl9kcml2ZXIoY29uc3Qgc3RydWN0IGNvbnN3 ICpjc3cpOw0KIGludCB0YWtlX292ZXJfY29uc29sZShjb25zdCBzdHJ1Y3QgY29uc3cgKnN3LCBp bnQgZmlyc3QsIGludCBsYXN0LCBpbnQgZGVmbHQpOw0KK2ludCBkb190YWtlX292ZXJfY29uc29s ZShjb25zdCBzdHJ1Y3QgY29uc3cgKnN3LCBpbnQgZmlyc3QsIGludCBsYXN0LCBpbnQgZGVmbHQp Ow0KIHZvaWQgZ2l2ZV91cF9jb25zb2xlKGNvbnN0IHN0cnVjdCBjb25zdyAqc3cpOw0KICNpZmRl ZiBDT05GSUdfSFdfQ09OU09MRQ0KIGludCBjb25fZGVidWdfZW50ZXIoc3RydWN0IHZjX2RhdGEg KnZjKTsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2ZzLmggYi9pbmNsdWRlL2xpbnV4L2Zz LmgNCmluZGV4IDI5YjYzNTMuLmEyNzY4MTcgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L2Zz LmgNCisrKyBiL2luY2x1ZGUvbGludXgvZnMuaA0KQEAgLTIxMDMsNiArMjEwMyw3IEBAIGV4dGVy biB2b2lkIGJkX2ZvcmdldChzdHJ1Y3QgaW5vZGUgKmlub2RlKTsNCiBleHRlcm4gdm9pZCBiZHB1 dChzdHJ1Y3QgYmxvY2tfZGV2aWNlICopOw0KIGV4dGVybiB2b2lkIGludmFsaWRhdGVfYmRldihz dHJ1Y3QgYmxvY2tfZGV2aWNlICopOw0KIGV4dGVybiBpbnQgc3luY19ibG9ja2RldihzdHJ1Y3Qg YmxvY2tfZGV2aWNlICpiZGV2KTsNCitleHRlcm4gdm9pZCBraWxsX2JkZXYoc3RydWN0IGJsb2Nr X2RldmljZSAqKTsNCiBleHRlcm4gc3RydWN0IHN1cGVyX2Jsb2NrICpmcmVlemVfYmRldihzdHJ1 Y3QgYmxvY2tfZGV2aWNlICopOw0KIGV4dGVybiB2b2lkIGVtZXJnZW5jeV90aGF3X2FsbCh2b2lk KTsNCiBleHRlcm4gaW50IHRoYXdfYmRldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKnNiKTsNCkBAIC0yMTEwLDYgKzIxMTEsNyBAQCBleHRlcm4gaW50IGZz eW5jX2JkZXYoc3RydWN0IGJsb2NrX2RldmljZSAqKTsNCiAjZWxzZQ0KIHN0YXRpYyBpbmxpbmUg dm9pZCBiZF9mb3JnZXQoc3RydWN0IGlub2RlICppbm9kZSkge30NCiBzdGF0aWMgaW5saW5lIGlu dCBzeW5jX2Jsb2NrZGV2KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpIHsgcmV0dXJuIDA7IH0N CitzdGF0aWMgaW5saW5lIHZvaWQga2lsbF9iZGV2KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYp IHt9DQogc3RhdGljIGlubGluZSB2b2lkIGludmFsaWRhdGVfYmRldihzdHJ1Y3QgYmxvY2tfZGV2 aWNlICpiZGV2KSB7fQ0KIA0KIHN0YXRpYyBpbmxpbmUgc3RydWN0IHN1cGVyX2Jsb2NrICpmcmVl emVfYmRldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpzYikNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2lkci5oIGIvaW5jbHVkZS9saW51eC9pZHIuaA0KaW5kZXggMjU1NDkxYy4uNTJhOWRhMiAx MDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvaWRyLmgNCisrKyBiL2luY2x1ZGUvbGludXgvaWRy LmgNCkBAIC0xNTIsNCArMTUyLDE1IEBAIHZvaWQgaWRhX3NpbXBsZV9yZW1vdmUoc3RydWN0IGlk YSAqaWRhLCB1bnNpZ25lZCBpbnQgaWQpOw0KIA0KIHZvaWQgX19pbml0IGlkcl9pbml0X2NhY2hl KHZvaWQpOw0KIA0KKy8qKg0KKyAqIGlkcl9mb3JfZWFjaF9lbnRyeSAtIGl0ZXJhdGUgb3ZlciBh biBpZHIncyBlbGVtZW50cyBvZiBhIGdpdmVuIHR5cGUNCisgKiBAaWRwOiAgICAgaWRyIGhhbmRs ZQ0KKyAqIEBlbnRyeTogICB0aGUgdHlwZSAqIHRvIHVzZSBhcyBjdXJzb3INCisgKiBAaWQ6ICAg ICAgaWQgZW50cnkncyBrZXkNCisgKi8NCisjZGVmaW5lIGlkcl9mb3JfZWFjaF9lbnRyeShpZHAs IGVudHJ5LCBpZCkJCQkJXA0KKwlmb3IgKGlkID0gMCwgZW50cnkgPSAodHlwZW9mKGVudHJ5KSlp ZHJfZ2V0X25leHQoKGlkcCksICYoaWQpKTsgXA0KKwkgICAgIGVudHJ5ICE9IE5VTEw7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKwkgICAgICsraWQsIGVu dHJ5ID0gKHR5cGVvZihlbnRyeSkpaWRyX2dldF9uZXh0KChpZHApLCAmKGlkKSkpDQorDQogI2Vu ZGlmIC8qIF9fSURSX0hfXyAqLw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva21vZC5oIGIv aW5jbHVkZS9saW51eC9rbW9kLmgNCmluZGV4IGIxNmY2NTMuLmY4ZDRiMjcgMTAwNjQ0DQotLS0g YS9pbmNsdWRlL2xpbnV4L2ttb2QuaA0KKysrIGIvaW5jbHVkZS9saW51eC9rbW9kLmgNCkBAIC01 NCw2ICs1NCw4IEBAIGVudW0gdW1oX3dhaXQgew0KIAlVTUhfV0FJVF9QUk9DID0gMSwJLyogd2Fp dCBmb3IgdGhlIHByb2Nlc3MgdG8gY29tcGxldGUgKi8NCiB9Ow0KIA0KKyNkZWZpbmUgVU1IX0tJ TExBQkxFCTQJLyogd2FpdCBmb3IgRVhFQy9QUk9DIGtpbGxhYmxlICovDQorDQogc3RydWN0IHN1 YnByb2Nlc3NfaW5mbyB7DQogCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOw0KIAlzdHJ1Y3QgY29t cGxldGlvbiAqY29tcGxldGU7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbXVfbm90aWZp ZXIuaCBiL2luY2x1ZGUvbGludXgvbW11X25vdGlmaWVyLmgNCmluZGV4IDFkMWIxZTEuLmVlMmJh ZjAgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L21tdV9ub3RpZmllci5oDQorKysgYi9pbmNs dWRlL2xpbnV4L21tdV9ub3RpZmllci5oDQpAQCAtNCw2ICs0LDcgQEANCiAjaW5jbHVkZSA8bGlu dXgvbGlzdC5oPg0KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPg0KICNpbmNsdWRlIDxsaW51 eC9tbV90eXBlcy5oPg0KKyNpbmNsdWRlIDxsaW51eC9zcmN1Lmg+DQogDQogc3RydWN0IG1tdV9u b3RpZmllcjsNCiBzdHJ1Y3QgbW11X25vdGlmaWVyX29wczsNCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L3Bwc19rZXJuZWwuaCBiL2luY2x1ZGUvbGludXgvcHBzX2tlcm5lbC5oDQppbmRleCA5 NDA0ODU0Li5jZTJhYjNkIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9wcHNfa2VybmVsLmgN CisrKyBiL2luY2x1ZGUvbGludXgvcHBzX2tlcm5lbC5oDQpAQCAtNDMsNyArNDMsNyBAQCBzdHJ1 Y3QgcHBzX3NvdXJjZV9pbmZvIHsNCiAJCQlpbnQgZXZlbnQsIHZvaWQgKmRhdGEpOwkvKiBQUFMg ZWNobyBmdW5jdGlvbiAqLw0KIA0KIAlzdHJ1Y3QgbW9kdWxlICpvd25lcjsNCi0Jc3RydWN0IGRl dmljZSAqZGV2Ow0KKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CQkvKiBQYXJlbnQgZGV2aWNlIGZvciBk ZXZpY2VfY3JlYXRlICovDQogfTsNCiANCiBzdHJ1Y3QgcHBzX2V2ZW50X3RpbWUgew0KQEAgLTY5 LDYgKzY5LDcgQEAgc3RydWN0IHBwc19kZXZpY2Ugew0KIAl3YWl0X3F1ZXVlX2hlYWRfdCBxdWV1 ZTsJCS8qIFBQUyBldmVudCBxdWV1ZSAqLw0KIA0KIAl1bnNpZ25lZCBpbnQgaWQ7CQkJLyogUFBT IHNvdXJjZSB1bmlxdWUgSUQgKi8NCisJdm9pZCBjb25zdCAqbG9va3VwX2Nvb2tpZTsJCS8qIHBw c19sb29rdXBfZGV2IG9ubHkgKi8NCiAJc3RydWN0IGNkZXYgY2RldjsNCiAJc3RydWN0IGRldmlj ZSAqZGV2Ow0KIAlzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqYXN5bmNfcXVldWU7CS8qIGZhc3luYyBt ZXRob2QgKi8NCkBAIC04MiwxNiArODMsMjYgQEAgc3RydWN0IHBwc19kZXZpY2Ugew0KIGV4dGVy biBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBwcHNfYXR0cnNbXTsNCiANCiAvKg0KKyAqIEludGVy bmFsIGZ1bmN0aW9ucy4NCisgKg0KKyAqIFRoZXNlIGFyZSBub3QgYWN0dWFsbHkgcGFydCBvZiB0 aGUgZXhwb3J0ZWQgQVBJLCBidXQgdGhpcyBpcyBhDQorICogY29udmVuaWVudCBoZWFkZXIgZmls ZSB0byBwdXQgdGhlbSBpbi4NCisgKi8NCisNCitleHRlcm4gaW50IHBwc19yZWdpc3Rlcl9jZGV2 KHN0cnVjdCBwcHNfZGV2aWNlICpwcHMpOw0KK2V4dGVybiB2b2lkIHBwc191bnJlZ2lzdGVyX2Nk ZXYoc3RydWN0IHBwc19kZXZpY2UgKnBwcyk7DQorDQorLyoNCiAgKiBFeHBvcnRlZCBmdW5jdGlv bnMNCiAgKi8NCiANCiBleHRlcm4gc3RydWN0IHBwc19kZXZpY2UgKnBwc19yZWdpc3Rlcl9zb3Vy Y2UoDQogCQlzdHJ1Y3QgcHBzX3NvdXJjZV9pbmZvICppbmZvLCBpbnQgZGVmYXVsdF9wYXJhbXMp Ow0KIGV4dGVybiB2b2lkIHBwc191bnJlZ2lzdGVyX3NvdXJjZShzdHJ1Y3QgcHBzX2RldmljZSAq cHBzKTsNCi1leHRlcm4gaW50IHBwc19yZWdpc3Rlcl9jZGV2KHN0cnVjdCBwcHNfZGV2aWNlICpw cHMpOw0KLWV4dGVybiB2b2lkIHBwc191bnJlZ2lzdGVyX2NkZXYoc3RydWN0IHBwc19kZXZpY2Ug KnBwcyk7DQogZXh0ZXJuIHZvaWQgcHBzX2V2ZW50KHN0cnVjdCBwcHNfZGV2aWNlICpwcHMsDQog CQlzdHJ1Y3QgcHBzX2V2ZW50X3RpbWUgKnRzLCBpbnQgZXZlbnQsIHZvaWQgKmRhdGEpOw0KKy8q IExvb2sgdXAgYSBwcHMgZGV2aWNlIGJ5IG1hZ2ljIGNvb2tpZSAqLw0KK3N0cnVjdCBwcHNfZGV2 aWNlICpwcHNfbG9va3VwX2Rldih2b2lkIGNvbnN0ICpjb29raWUpOw0KIA0KIHN0YXRpYyBpbmxp bmUgdm9pZCB0aW1lc3BlY190b19wcHNfa3RpbWUoc3RydWN0IHBwc19rdGltZSAqa3QsDQogCQlz dHJ1Y3QgdGltZXNwZWMgdHMpDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wc3RvcmUuaCBi L2luY2x1ZGUvbGludXgvcHN0b3JlLmgNCmluZGV4IDJjYThjZGUuLjliMTY5NjkgMTAwNjQ0DQot LS0gYS9pbmNsdWRlL2xpbnV4L3BzdG9yZS5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3BzdG9yZS5o DQpAQCAtMjIsNiArMjIsOCBAQA0KICNpZm5kZWYgX0xJTlVYX1BTVE9SRV9IDQogI2RlZmluZSBf TElOVVhfUFNUT1JFX0gNCiANCisjaW5jbHVkZSA8bGludXgva21zZ19kdW1wLmg+DQorDQogLyog dHlwZXMgKi8NCiBlbnVtIHBzdG9yZV90eXBlX2lkIHsNCiAJUFNUT1JFX1RZUEVfRE1FU0cJPSAw LA0KQEAgLTUwLDYgKzUyLDcgQEAgc3RydWN0IHBzdG9yZV9pbmZvIHsNCiANCiAjaWZkZWYgQ09O RklHX1BTVE9SRQ0KIGV4dGVybiBpbnQgcHN0b3JlX3JlZ2lzdGVyKHN0cnVjdCBwc3RvcmVfaW5m byAqKTsNCitleHRlcm4gYm9vbCBwc3RvcmVfY2Fubm90X2Jsb2NrX3BhdGgoZW51bSBrbXNnX2R1 bXBfcmVhc29uIHJlYXNvbik7DQogZXh0ZXJuIGludCBwc3RvcmVfd3JpdGUoZW51bSBwc3RvcmVf dHlwZV9pZCB0eXBlLCBjaGFyICpidWYsIHNpemVfdCBzaXplKTsNCiAjZWxzZQ0KIHN0YXRpYyBp bmxpbmUgaW50DQpAQCAtNTcsNiArNjAsMTEgQEAgcHN0b3JlX3JlZ2lzdGVyKHN0cnVjdCBwc3Rv cmVfaW5mbyAqcHNpKQ0KIHsNCiAJcmV0dXJuIC1FTk9ERVY7DQogfQ0KK3N0YXRpYyBpbmxpbmUg Ym9vbA0KK3BzdG9yZV9jYW5ub3RfYmxvY2tfcGF0aChlbnVtIGttc2dfZHVtcF9yZWFzb24gcmVh c29uKQ0KK3sNCisJcmV0dXJuIGZhbHNlOw0KK30NCiBzdGF0aWMgaW5saW5lIGludA0KIHBzdG9y ZV93cml0ZShlbnVtIHBzdG9yZV90eXBlX2lkIHR5cGUsIGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUp DQogew0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcXVvdGEuaCBiL2luY2x1ZGUvbGludXgv cXVvdGEuaA0KaW5kZXggY2I3ODU1Ni4uMTE2MjU4MCAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGlu dXgvcXVvdGEuaA0KKysrIGIvaW5jbHVkZS9saW51eC9xdW90YS5oDQpAQCAtNDEzLDYgKzQxMyw3 IEBAIHN0cnVjdCBxdW90YV9tb2R1bGVfbmFtZSB7DQogI2RlZmluZSBJTklUX1FVT1RBX01PRFVM RV9OQU1FUyB7XA0KIAl7UUZNVF9WRlNfT0xELCAicXVvdGFfdjEifSxcDQogCXtRRk1UX1ZGU19W MCwgInF1b3RhX3YyIn0sXA0KKwl7UUZNVF9WRlNfVjEsICJxdW90YV92MiJ9LFwNCiAJezAsIE5V TEx9fQ0KIA0KICNlbmRpZiAvKiBfX0tFUk5FTF9fICovDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9zZXJpYWxfY29yZS5oIGIvaW5jbHVkZS9saW51eC9zZXJpYWxfY29yZS5oDQppbmRleCA4 YmVjMjY1Li5iYWU1MTZlIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9zZXJpYWxfY29yZS5o DQorKysgYi9pbmNsdWRlL2xpbnV4L3NlcmlhbF9jb3JlLmgNCkBAIC00Nyw4ICs0Nyw4IEBADQog I2RlZmluZSBQT1JUX1U2XzE2NTUwQQkxOQkvKiBTVC1Fcmljc3NvbiBVNnh4eCBpbnRlcm5hbCBV QVJUICovDQogI2RlZmluZSBQT1JUX1RFR1JBCTIwCS8qIE5WSURJQSBUZWdyYSBpbnRlcm5hbCBV QVJUICovDQogI2RlZmluZSBQT1JUX1hSMTdEMTVYCTIxCS8qIEV4YXIgWFIxN0QxNXggVUFSVCAq Lw0KLSNkZWZpbmUgUE9SVF9CUkNNX1RSVU1BTkFHRQkyMg0KLSNkZWZpbmUgUE9SVF9NQVhfODI1 MAkyMgkvKiBtYXggcG9ydCBJRCAqLw0KKyNkZWZpbmUgUE9SVF9CUkNNX1RSVU1BTkFHRQkyNQ0K KyNkZWZpbmUgUE9SVF9NQVhfODI1MAkyNQkvKiBtYXggcG9ydCBJRCAqLw0KIA0KIC8qDQogICog QVJNIHNwZWNpZmljIHR5cGUgbnVtYmVycy4gIFRoZXNlIGFyZSBub3QgY3VycmVudGx5IGd1YXJh bnRlZWQNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3VzYi9hdWRpby5oIGIvaW5jbHVkZS9s aW51eC91c2IvYXVkaW8uaA0KaW5kZXggYTU0YjgyNS4uNmY4YjAyNiAxMDA2NDQNCi0tLSBhL2lu Y2x1ZGUvbGludXgvdXNiL2F1ZGlvLmgNCisrKyBiL2luY2x1ZGUvbGludXgvdXNiL2F1ZGlvLmgN CkBAIC0zODQsMTQgKzM4NCwxNiBAQCBzdGF0aWMgaW5saW5lIF9fdTggdWFjX3Byb2Nlc3Npbmdf dW5pdF9pUHJvY2Vzc2luZyhzdHJ1Y3QgdWFjX3Byb2Nlc3NpbmdfdW5pdF9kZQ0KIAkJCQkJCSAg IGludCBwcm90b2NvbCkNCiB7DQogCV9fdTggY29udHJvbF9zaXplID0gdWFjX3Byb2Nlc3Npbmdf dW5pdF9iQ29udHJvbFNpemUoZGVzYywgcHJvdG9jb2wpOw0KLQlyZXR1cm4gZGVzYy0+YmFTb3Vy Y2VJRFtkZXNjLT5iTnJJblBpbnMgKyBjb250cm9sX3NpemVdOw0KKwlyZXR1cm4gKih1YWNfcHJv Y2Vzc2luZ191bml0X2JtQ29udHJvbHMoZGVzYywgcHJvdG9jb2wpDQorCQkJKyBjb250cm9sX3Np emUpOw0KIH0NCiANCiBzdGF0aWMgaW5saW5lIF9fdTggKnVhY19wcm9jZXNzaW5nX3VuaXRfc3Bl Y2lmaWMoc3RydWN0IHVhY19wcm9jZXNzaW5nX3VuaXRfZGVzY3JpcHRvciAqZGVzYywNCiAJCQkJ CQkgaW50IHByb3RvY29sKQ0KIHsNCiAJX191OCBjb250cm9sX3NpemUgPSB1YWNfcHJvY2Vzc2lu Z191bml0X2JDb250cm9sU2l6ZShkZXNjLCBwcm90b2NvbCk7DQotCXJldHVybiAmZGVzYy0+YmFT b3VyY2VJRFtkZXNjLT5iTnJJblBpbnMgKyBjb250cm9sX3NpemUgKyAxXTsNCisJcmV0dXJuIHVh Y19wcm9jZXNzaW5nX3VuaXRfYm1Db250cm9scyhkZXNjLCBwcm90b2NvbCkNCisJCQkrIGNvbnRy b2xfc2l6ZSArIDE7DQogfQ0KIA0KIC8qIDQuNS4yIENsYXNzLVNwZWNpZmljIEFTIEludGVyZmFj ZSBEZXNjcmlwdG9yICovDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC92dF9rZXJuLmggYi9p bmNsdWRlL2xpbnV4L3Z0X2tlcm4uaA0KaW5kZXggYzIxNjRmYS4uNjQ0OTIxZiAxMDA2NDQNCi0t LSBhL2luY2x1ZGUvbGludXgvdnRfa2Vybi5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3Z0X2tlcm4u aA0KQEAgLTQ3LDYgKzQ3LDcgQEAgaW50IGNvbl9zZXRfY21hcCh1bnNpZ25lZCBjaGFyIF9fdXNl ciAqY21hcCk7DQogaW50IGNvbl9nZXRfY21hcCh1bnNpZ25lZCBjaGFyIF9fdXNlciAqY21hcCk7 DQogdm9pZCBzY3JvbGxiYWNrKHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGxpbmVzKTsNCiB2b2lk IHNjcm9sbGZyb250KHN0cnVjdCB2Y19kYXRhICp2YywgaW50IGxpbmVzKTsNCit2b2lkIGNsZWFy X2J1ZmZlcl9hdHRyaWJ1dGVzKHN0cnVjdCB2Y19kYXRhICp2Yyk7DQogdm9pZCB1cGRhdGVfcmVn aW9uKHN0cnVjdCB2Y19kYXRhICp2YywgdW5zaWduZWQgbG9uZyBzdGFydCwgaW50IGNvdW50KTsN CiB2b2lkIHJlZHJhd19zY3JlZW4oc3RydWN0IHZjX2RhdGEgKnZjLCBpbnQgaXNfc3dpdGNoKTsN CiAjZGVmaW5lIHVwZGF0ZV9zY3JlZW4oeCkgcmVkcmF3X3NjcmVlbih4LCAwKQ0KQEAgLTEzMSw2 ICsxMzIsOCBAQCB2b2lkIHZ0X2V2ZW50X3Bvc3QodW5zaWduZWQgaW50IGV2ZW50LCB1bnNpZ25l ZCBpbnQgb2xkLCB1bnNpZ25lZCBpbnQgbmV3KTsNCiBpbnQgdnRfd2FpdGFjdGl2ZShpbnQgbik7 DQogdm9pZCBjaGFuZ2VfY29uc29sZShzdHJ1Y3QgdmNfZGF0YSAqbmV3X3ZjKTsNCiB2b2lkIHJl c2V0X3ZjKHN0cnVjdCB2Y19kYXRhICp2Yyk7DQorZXh0ZXJuIGludCBkb191bmJpbmRfY29uX2Ry aXZlcihjb25zdCBzdHJ1Y3QgY29uc3cgKmNzdywgaW50IGZpcnN0LCBpbnQgbGFzdCwNCisJCQkg ICAgIGludCBkZWZsdCk7DQogZXh0ZXJuIGludCB1bmJpbmRfY29uX2RyaXZlcihjb25zdCBzdHJ1 Y3QgY29uc3cgKmNzdywgaW50IGZpcnN0LCBpbnQgbGFzdCwNCiAJCQkgICAgIGludCBkZWZsdCk7 DQogaW50IHZ0eV9pbml0KGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKmNvbnNvbGVfZm9w cyk7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaW5ldDZfaGFzaHRhYmxlcy5oIGIvaW5jbHVk ZS9uZXQvaW5ldDZfaGFzaHRhYmxlcy5oDQppbmRleCBlNDY2NzRkLi5mOWNlMmZhIDEwMDY0NA0K LS0tIGEvaW5jbHVkZS9uZXQvaW5ldDZfaGFzaHRhYmxlcy5oDQorKysgYi9pbmNsdWRlL25ldC9p bmV0Nl9oYXNodGFibGVzLmgNCkBAIC0yOCwxNiArMjgsMTYgQEANCiANCiBzdHJ1Y3QgaW5ldF9o YXNoaW5mbzsNCiANCi0vKiBJIGhhdmUgbm8gaWRlYSBpZiB0aGlzIGlzIGEgZ29vZCBoYXNoIGZv ciB2NiBvciBub3QuIC1EYXZlTSAqLw0KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGluZXQ2 X2VoYXNoZm4oc3RydWN0IG5ldCAqbmV0LA0KIAkJCQljb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmxh ZGRyLCBjb25zdCB1MTYgbHBvcnQsDQogCQkJCWNvbnN0IHN0cnVjdCBpbjZfYWRkciAqZmFkZHIs IGNvbnN0IF9fYmUxNiBmcG9ydCkNCiB7DQotCXUzMiBwb3J0cyA9IChscG9ydCBeIChfX2ZvcmNl IHUxNilmcG9ydCk7DQorCXUzMiBwb3J0cyA9ICgoKHUzMilscG9ydCkgPDwgMTYpIHwgKF9fZm9y Y2UgdTMyKWZwb3J0Ow0KIA0KIAlyZXR1cm4gamhhc2hfM3dvcmRzKChfX2ZvcmNlIHUzMilsYWRk ci0+czZfYWRkcjMyWzNdLA0KLQkJCSAgICAoX19mb3JjZSB1MzIpZmFkZHItPnM2X2FkZHIzMlsz XSwNCi0JCQkgICAgcG9ydHMsIGluZXRfZWhhc2hfc2VjcmV0ICsgbmV0X2hhc2hfbWl4KG5ldCkp Ow0KKwkJCSAgICBpcHY2X2FkZHJfamhhc2goZmFkZHIpLA0KKwkJCSAgICBwb3J0cywNCisJCQkg ICAgaW5ldF9laGFzaF9zZWNyZXQgKyBuZXRfaGFzaF9taXgobmV0KSk7DQogfQ0KIA0KIHN0YXRp YyBpbmxpbmUgaW50IGluZXQ2X3NrX2VoYXNoZm4oY29uc3Qgc3RydWN0IHNvY2sgKnNrKQ0KZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2luZXRfc29jay5oIGIvaW5jbHVkZS9uZXQvaW5ldF9zb2Nr LmgNCmluZGV4IGY5NDE5NjQuLmVlNGVlOTEgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL25ldC9pbmV0 X3NvY2suaA0KKysrIGIvaW5jbHVkZS9uZXQvaW5ldF9zb2NrLmgNCkBAIC0xOTksNiArMTk5LDcg QEAgc3RhdGljIGlubGluZSB2b2lkIGluZXRfc2tfY29weV9kZXNjZW5kYW50KHN0cnVjdCBzb2Nr ICpza190bywNCiBleHRlcm4gaW50IGluZXRfc2tfcmVidWlsZF9oZWFkZXIoc3RydWN0IHNvY2sg KnNrKTsNCiANCiBleHRlcm4gdTMyIGluZXRfZWhhc2hfc2VjcmV0Ow0KK2V4dGVybiB1MzIgaXB2 Nl9oYXNoX3NlY3JldDsNCiBleHRlcm4gdm9pZCBidWlsZF9laGFzaF9zZWNyZXQodm9pZCk7DQog DQogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaW5ldF9laGFzaGZuKHN0cnVjdCBuZXQgKm5l dCwNCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcHY2LmggYi9pbmNsdWRlL25ldC9pcHY2LmgN CmluZGV4IGEzNjZhOGEuLjRkNTQ5Y2YgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL25ldC9pcHY2LmgN CisrKyBiL2luY2x1ZGUvbmV0L2lwdjYuaA0KQEAgLTE1LDYgKzE1LDcgQEANCiANCiAjaW5jbHVk ZSA8bGludXgvaXB2Ni5oPg0KICNpbmNsdWRlIDxsaW51eC9oYXJkaXJxLmg+DQorI2luY2x1ZGUg PGxpbnV4L2poYXNoLmg+DQogI2luY2x1ZGUgPG5ldC9pZl9pbmV0Ni5oPg0KICNpbmNsdWRlIDxu ZXQvbmRpc2MuaD4NCiAjaW5jbHVkZSA8bmV0L2Zsb3cuaD4NCkBAIC0zODYsNiArMzg3LDE3IEBA IHN0cnVjdCBpcDZfY3JlYXRlX2FyZyB7DQogdm9pZCBpcDZfZnJhZ19pbml0KHN0cnVjdCBpbmV0 X2ZyYWdfcXVldWUgKnEsIHZvaWQgKmEpOw0KIGludCBpcDZfZnJhZ19tYXRjaChzdHJ1Y3QgaW5l dF9mcmFnX3F1ZXVlICpxLCB2b2lkICphKTsNCiANCisvKiBtb3JlIHNlY3VyZWQgdmVyc2lvbiBv ZiBpcHY2X2FkZHJfaGFzaCgpICovDQorc3RhdGljIGlubGluZSB1MzIgaXB2Nl9hZGRyX2poYXNo KGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqYSkNCit7DQorCXUzMiB2ID0gKF9fZm9yY2UgdTMyKWEt PnM2X2FkZHIzMlswXSBeIChfX2ZvcmNlIHUzMilhLT5zNl9hZGRyMzJbMV07DQorDQorCXJldHVy biBqaGFzaF8zd29yZHModiwNCisJCQkgICAgKF9fZm9yY2UgdTMyKWEtPnM2X2FkZHIzMlsyXSwN CisJCQkgICAgKF9fZm9yY2UgdTMyKWEtPnM2X2FkZHIzMlszXSwNCisJCQkgICAgaXB2Nl9oYXNo X3NlY3JldCk7DQorfQ0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGlwdjZfYWRkcl9hbnkoY29uc3Qg c3RydWN0IGluNl9hZGRyICphKQ0KIHsNCiAJcmV0dXJuIChhLT5zNl9hZGRyMzJbMF0gfCBhLT5z Nl9hZGRyMzJbMV0gfA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdGFyZ2V0L3RhcmdldF9jb3JlX2Rl dmljZS5oIGIvaW5jbHVkZS90YXJnZXQvdGFyZ2V0X2NvcmVfZGV2aWNlLmgNCmluZGV4IDJiZTMx ZmYuLjZmMzBlNzAgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL3RhcmdldC90YXJnZXRfY29yZV9kZXZp Y2UuaA0KKysrIGIvaW5jbHVkZS90YXJnZXQvdGFyZ2V0X2NvcmVfZGV2aWNlLmgNCkBAIC01MCw3 ICs1MCw3IEBAIGV4dGVybiBzdHJ1Y3Qgc2VfbHVuICpjb3JlX2Rldl9hZGRfbHVuKHN0cnVjdCBz ZV9wb3J0YWxfZ3JvdXAgKiwgc3RydWN0IHNlX2hiYSAqDQogZXh0ZXJuIGludCBjb3JlX2Rldl9k ZWxfbHVuKHN0cnVjdCBzZV9wb3J0YWxfZ3JvdXAgKiwgdTMyKTsNCiBleHRlcm4gc3RydWN0IHNl X2x1biAqY29yZV9nZXRfbHVuX2Zyb21fdHBnKHN0cnVjdCBzZV9wb3J0YWxfZ3JvdXAgKiwgdTMy KTsNCiBleHRlcm4gc3RydWN0IHNlX2x1bl9hY2wgKmNvcmVfZGV2X2luaXRfaW5pdGlhdG9yX25v ZGVfbHVuX2FjbChzdHJ1Y3Qgc2VfcG9ydGFsX2dyb3VwICosDQotCQkJCQkJCXUzMiwgY2hhciAq LCBpbnQgKik7DQorCQlzdHJ1Y3Qgc2Vfbm9kZV9hY2wgKiwgdTMyLCBpbnQgKik7DQogZXh0ZXJu IGludCBjb3JlX2Rldl9hZGRfaW5pdGlhdG9yX25vZGVfbHVuX2FjbChzdHJ1Y3Qgc2VfcG9ydGFs X2dyb3VwICosDQogCQkJCQkJc3RydWN0IHNlX2x1bl9hY2wgKiwgdTMyLCB1MzIpOw0KIGV4dGVy biBpbnQgY29yZV9kZXZfZGVsX2luaXRpYXRvcl9ub2RlX2x1bl9hY2woc3RydWN0IHNlX3BvcnRh bF9ncm91cCAqLA0KZGlmZiAtLWdpdCBhL2tlcm5lbC9jZ3JvdXAuYyBiL2tlcm5lbC9jZ3JvdXAu Yw0KaW5kZXggYjZjYWNmMS4uYzA3MzlmOCAxMDA2NDQNCi0tLSBhL2tlcm5lbC9jZ3JvdXAuYw0K KysrIGIva2VybmVsL2Nncm91cC5jDQpAQCAtMzYxLDEyICszNjEsMjAgQEAgc3RhdGljIHZvaWQg X19wdXRfY3NzX3NldChzdHJ1Y3QgY3NzX3NldCAqY2csIGludCB0YXNrZXhpdCkNCiAJCXN0cnVj dCBjZ3JvdXAgKmNncnAgPSBsaW5rLT5jZ3JwOw0KIAkJbGlzdF9kZWwoJmxpbmstPmNnX2xpbmtf bGlzdCk7DQogCQlsaXN0X2RlbCgmbGluay0+Y2dycF9saW5rX2xpc3QpOw0KKw0KKwkJLyoNCisJ CSAqIFdlIG1heSBub3QgYmUgaG9sZGluZyBjZ3JvdXBfbXV0ZXgsIGFuZCBpZiBjZ3JwLT5jb3Vu dCBpcw0KKwkJICogZHJvcHBlZCB0byAwIHRoZSBjZ3JvdXAgY2FuIGJlIGRlc3Ryb3llZCBhdCBh bnkgdGltZSwgaGVuY2UNCisJCSAqIHJjdV9yZWFkX2xvY2sgaXMgdXNlZCB0byBrZWVwIGl0IGFs aXZlLg0KKwkJICovDQorCQlyY3VfcmVhZF9sb2NrKCk7DQogCQlpZiAoYXRvbWljX2RlY19hbmRf dGVzdCgmY2dycC0+Y291bnQpICYmDQogCQkgICAgbm90aWZ5X29uX3JlbGVhc2UoY2dycCkpIHsN CiAJCQlpZiAodGFza2V4aXQpDQogCQkJCXNldF9iaXQoQ0dSUF9SRUxFQVNBQkxFLCAmY2dycC0+ ZmxhZ3MpOw0KIAkJCWNoZWNrX2Zvcl9yZWxlYXNlKGNncnApOw0KIAkJfQ0KKwkJcmN1X3JlYWRf dW5sb2NrKCk7DQogDQogCQlrZnJlZShsaW5rKTsNCiAJfQ0KZGlmZiAtLWdpdCBhL2tlcm5lbC9j cHVzZXQuYyBiL2tlcm5lbC9jcHVzZXQuYw0KaW5kZXggODRhNTI0Yi4uODM1ZWVlNiAxMDA2NDQN Ci0tLSBhL2tlcm5lbC9jcHVzZXQuYw0KKysrIGIva2VybmVsL2NwdXNldC5jDQpAQCAtMjUwNyw4 ICsyNTA3LDE2IEBAIHZvaWQgY3B1c2V0X3ByaW50X3Rhc2tfbWVtc19hbGxvd2VkKHN0cnVjdCB0 YXNrX3N0cnVjdCAqdHNrKQ0KIA0KIAlkZW50cnkgPSB0YXNrX2NzKHRzayktPmNzcy5jZ3JvdXAt PmRlbnRyeTsNCiAJc3Bpbl9sb2NrKCZjcHVzZXRfYnVmZmVyX2xvY2spOw0KLQlzbnByaW50Zihj cHVzZXRfbmFtZSwgQ1BVU0VUX05BTUVfTEVOLA0KLQkJIGRlbnRyeSA/IChjb25zdCBjaGFyICop ZGVudHJ5LT5kX25hbWUubmFtZSA6ICIvIik7DQorDQorCWlmICghZGVudHJ5KSB7DQorCQlzdHJj cHkoY3B1c2V0X25hbWUsICIvIik7DQorCX0gZWxzZSB7DQorCQlzcGluX2xvY2soJmRlbnRyeS0+ ZF9sb2NrKTsNCisJCXN0cmxjcHkoY3B1c2V0X25hbWUsIChjb25zdCBjaGFyICopZGVudHJ5LT5k X25hbWUubmFtZSwNCisJCQlDUFVTRVRfTkFNRV9MRU4pOw0KKwkJc3Bpbl91bmxvY2soJmRlbnRy eS0+ZF9sb2NrKTsNCisJfQ0KKw0KIAlub2RlbGlzdF9zY25wcmludGYoY3B1c2V0X25vZGVsaXN0 LCBDUFVTRVRfTk9ERUxJU1RfTEVOLA0KIAkJCSAgIHRzay0+bWVtc19hbGxvd2VkKTsNCiAJcHJp bnRrKEtFUk5fSU5GTyAiJXMgY3B1c2V0PSVzIG1lbXNfYWxsb3dlZD0lc1xuIiwNCmRpZmYgLS1n aXQgYS9rZXJuZWwvaHJ0aW1lci5jIGIva2VybmVsL2hydGltZXIuYw0KaW5kZXggNmRiN2E1ZS4u Y2RkNTYwNyAxMDA2NDQNCi0tLSBhL2tlcm5lbC9ocnRpbWVyLmMNCisrKyBiL2tlcm5lbC9ocnRp bWVyLmMNCkBAIC02NDAsMjEgKzY0MCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBocnRpbWVyX2lu aXRfaHJlcyhzdHJ1Y3QgaHJ0aW1lcl9jcHVfYmFzZSAqYmFzZSkNCiAgKiBhbmQgZXhwaXJ5IGNo ZWNrIGlzIGRvbmUgaW4gdGhlIGhydGltZXJfaW50ZXJydXB0IG9yIGluIHRoZSBzb2Z0aXJxLg0K ICAqLw0KIHN0YXRpYyBpbmxpbmUgaW50IGhydGltZXJfZW5xdWV1ZV9yZXByb2dyYW0oc3RydWN0 IGhydGltZXIgKnRpbWVyLA0KLQkJCQkJICAgIHN0cnVjdCBocnRpbWVyX2Nsb2NrX2Jhc2UgKmJh c2UsDQotCQkJCQkgICAgaW50IHdha2V1cCkNCisJCQkJCSAgICBzdHJ1Y3QgaHJ0aW1lcl9jbG9j a19iYXNlICpiYXNlKQ0KIHsNCi0JaWYgKGJhc2UtPmNwdV9iYXNlLT5ocmVzX2FjdGl2ZSAmJiBo cnRpbWVyX3JlcHJvZ3JhbSh0aW1lciwgYmFzZSkpIHsNCi0JCWlmICh3YWtldXApIHsNCi0JCQly YXdfc3Bpbl91bmxvY2soJmJhc2UtPmNwdV9iYXNlLT5sb2NrKTsNCi0JCQlyYWlzZV9zb2Z0aXJx X2lycW9mZihIUlRJTUVSX1NPRlRJUlEpOw0KLQkJCXJhd19zcGluX2xvY2soJmJhc2UtPmNwdV9i YXNlLT5sb2NrKTsNCi0JCX0gZWxzZQ0KLQkJCV9fcmFpc2Vfc29mdGlycV9pcnFvZmYoSFJUSU1F Ul9TT0ZUSVJRKTsNCi0NCi0JCXJldHVybiAxOw0KLQl9DQotDQotCXJldHVybiAwOw0KKwlyZXR1 cm4gYmFzZS0+Y3B1X2Jhc2UtPmhyZXNfYWN0aXZlICYmIGhydGltZXJfcmVwcm9ncmFtKHRpbWVy LCBiYXNlKTsNCiB9DQogDQogc3RhdGljIGlubGluZSBrdGltZV90IGhydGltZXJfdXBkYXRlX2Jh c2Uoc3RydWN0IGhydGltZXJfY3B1X2Jhc2UgKmJhc2UpDQpAQCAtNzM1LDggKzcyMyw3IEBAIHN0 YXRpYyBpbmxpbmUgaW50IGhydGltZXJfc3dpdGNoX3RvX2hyZXModm9pZCkgeyByZXR1cm4gMDsg fQ0KIHN0YXRpYyBpbmxpbmUgdm9pZA0KIGhydGltZXJfZm9yY2VfcmVwcm9ncmFtKHN0cnVjdCBo cnRpbWVyX2NwdV9iYXNlICpiYXNlLCBpbnQgc2tpcF9lcXVhbCkgeyB9DQogc3RhdGljIGlubGlu ZSBpbnQgaHJ0aW1lcl9lbnF1ZXVlX3JlcHJvZ3JhbShzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsDQot CQkJCQkgICAgc3RydWN0IGhydGltZXJfY2xvY2tfYmFzZSAqYmFzZSwNCi0JCQkJCSAgICBpbnQg d2FrZXVwKQ0KKwkJCQkJICAgIHN0cnVjdCBocnRpbWVyX2Nsb2NrX2Jhc2UgKmJhc2UpDQogew0K IAlyZXR1cm4gMDsNCiB9DQpAQCAtOTk1LDggKzk4MiwyMSBAQCBpbnQgX19ocnRpbWVyX3N0YXJ0 X3JhbmdlX25zKHN0cnVjdCBocnRpbWVyICp0aW1lciwga3RpbWVfdCB0aW0sDQogCSAqDQogCSAq IFhYWCBzZW5kX3JlbW90ZV9zb2Z0aXJxKCkgPw0KIAkgKi8NCi0JaWYgKGxlZnRtb3N0ICYmIG5l d19iYXNlLT5jcHVfYmFzZSA9PSAmX19nZXRfY3B1X3ZhcihocnRpbWVyX2Jhc2VzKSkNCi0JCWhy dGltZXJfZW5xdWV1ZV9yZXByb2dyYW0odGltZXIsIG5ld19iYXNlLCB3YWtldXApOw0KKwlpZiAo bGVmdG1vc3QgJiYgbmV3X2Jhc2UtPmNwdV9iYXNlID09ICZfX2dldF9jcHVfdmFyKGhydGltZXJf YmFzZXMpDQorCQkmJiBocnRpbWVyX2VucXVldWVfcmVwcm9ncmFtKHRpbWVyLCBuZXdfYmFzZSkp IHsNCisJCWlmICh3YWtldXApIHsNCisJCQkvKg0KKwkJCSAqIFdlIG5lZWQgdG8gZHJvcCBjcHVf YmFzZS0+bG9jayB0byBhdm9pZCBhDQorCQkJICogbG9jayBvcmRlcmluZyBpc3N1ZSB2cy4gcnEt PmxvY2suDQorCQkJICovDQorCQkJcmF3X3NwaW5fdW5sb2NrKCZuZXdfYmFzZS0+Y3B1X2Jhc2Ut PmxvY2spOw0KKwkJCXJhaXNlX3NvZnRpcnFfaXJxb2ZmKEhSVElNRVJfU09GVElSUSk7DQorCQkJ bG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOw0KKwkJCXJldHVybiByZXQ7DQorCQl9IGVsc2Ugew0K KwkJCV9fcmFpc2Vfc29mdGlycV9pcnFvZmYoSFJUSU1FUl9TT0ZUSVJRKTsNCisJCX0NCisJfQ0K IA0KIAl1bmxvY2tfaHJ0aW1lcl9iYXNlKHRpbWVyLCAmZmxhZ3MpOw0KIA0KZGlmZiAtLWdpdCBh L2tlcm5lbC9pcnEvc3B1cmlvdXMuYyBiL2tlcm5lbC9pcnEvc3B1cmlvdXMuYw0KaW5kZXggZGM4 MTNhOS4uNjM2MzNhMyAxMDA2NDQNCi0tLSBhL2tlcm5lbC9pcnEvc3B1cmlvdXMuYw0KKysrIGIv a2VybmVsL2lycS9zcHVyaW91cy5jDQpAQCAtODAsMTMgKzgwLDExIEBAIHN0YXRpYyBpbnQgdHJ5 X29uZV9pcnEoaW50IGlycSwgc3RydWN0IGlycV9kZXNjICpkZXNjLCBib29sIGZvcmNlKQ0KIA0K IAkvKg0KIAkgKiBBbGwgaGFuZGxlcnMgbXVzdCBhZ3JlZSBvbiBJUlFGX1NIQVJFRCwgc28gd2Ug dGVzdCBqdXN0IHRoZQ0KLQkgKiBmaXJzdC4gQ2hlY2sgZm9yIGFjdGlvbi0+bmV4dCBhcyB3ZWxs Lg0KKwkgKiBmaXJzdC4NCiAJICovDQogCWFjdGlvbiA9IGRlc2MtPmFjdGlvbjsNCiAJaWYgKCFh Y3Rpb24gfHwgIShhY3Rpb24tPmZsYWdzICYgSVJRRl9TSEFSRUQpIHx8DQotCSAgICAoYWN0aW9u LT5mbGFncyAmIF9fSVJRRl9USU1FUikgfHwNCi0JICAgIChhY3Rpb24tPmhhbmRsZXIoaXJxLCBh Y3Rpb24tPmRldl9pZCkgPT0gSVJRX0hBTkRMRUQpIHx8DQotCSAgICAhYWN0aW9uLT5uZXh0KQ0K KwkgICAgKGFjdGlvbi0+ZmxhZ3MgJiBfX0lSUUZfVElNRVIpKQ0KIAkJZ290byBvdXQ7DQogDQog CS8qIEFscmVhZHkgcnVubmluZyBvbiBhbm90aGVyIHByb2Nlc3NvciAqLw0KQEAgLTEwNCw2ICsx MDIsNyBAQCBzdGF0aWMgaW50IHRyeV9vbmVfaXJxKGludCBpcnEsIHN0cnVjdCBpcnFfZGVzYyAq ZGVzYywgYm9vbCBmb3JjZSkNCiAJZG8gew0KIAkJaWYgKGhhbmRsZV9pcnFfZXZlbnQoZGVzYykg PT0gSVJRX0hBTkRMRUQpDQogCQkJcmV0ID0gSVJRX0hBTkRMRUQ7DQorCQkvKiBNYWtlIHN1cmUg dGhhdCB0aGVyZSBpcyBzdGlsbCBhIHZhbGlkIGFjdGlvbiAqLw0KIAkJYWN0aW9uID0gZGVzYy0+ YWN0aW9uOw0KIAl9IHdoaWxlICgoZGVzYy0+aXN0YXRlICYgSVJRU19QRU5ESU5HKSAmJiBhY3Rp b24pOw0KIAlkZXNjLT5pc3RhdGUgJj0gfklSUVNfUE9MTF9JTlBST0dSRVNTOw0KZGlmZiAtLWdp dCBhL2tlcm5lbC9rbW9kLmMgYi9rZXJuZWwva21vZC5jDQppbmRleCBhNGJlYTk3Li5kNmZlMDhh IDEwMDY0NA0KLS0tIGEva2VybmVsL2ttb2QuYw0KKysrIGIva2VybmVsL2ttb2QuYw0KQEAgLTU4 LDYgKzU4LDQzIEBAIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0sodW1oX3N5c2N0bF9sb2NrKTsNCiAq Lw0KIGNoYXIgbW9kcHJvYmVfcGF0aFtLTU9EX1BBVEhfTEVOXSA9ICIvc2Jpbi9tb2Rwcm9iZSI7 DQogDQorc3RhdGljIHZvaWQgZnJlZV9tb2Rwcm9iZV9hcmd2KHN0cnVjdCBzdWJwcm9jZXNzX2lu Zm8gKmluZm8pDQorew0KKwlrZnJlZShpbmZvLT5hcmd2WzNdKTsgLyogY2hlY2sgY2FsbF9tb2Rw cm9iZSgpICovDQorCWtmcmVlKGluZm8tPmFyZ3YpOw0KK30NCisNCitzdGF0aWMgaW50IGNhbGxf bW9kcHJvYmUoY2hhciAqbW9kdWxlX25hbWUsIGludCB3YWl0KQ0KK3sNCisJc3RhdGljIGNoYXIg KmVudnBbXSA9IHsNCisJCSJIT01FPS8iLA0KKwkJIlRFUk09bGludXgiLA0KKwkJIlBBVEg9L3Ni aW46L3Vzci9zYmluOi9iaW46L3Vzci9iaW4iLA0KKwkJTlVMTA0KKwl9Ow0KKw0KKwljaGFyICoq YXJndiA9IGttYWxsb2Moc2l6ZW9mKGNoYXIgKls1XSksIEdGUF9LRVJORUwpOw0KKwlpZiAoIWFy Z3YpDQorCQlnb3RvIG91dDsNCisNCisJbW9kdWxlX25hbWUgPSBrc3RyZHVwKG1vZHVsZV9uYW1l LCBHRlBfS0VSTkVMKTsNCisJaWYgKCFtb2R1bGVfbmFtZSkNCisJCWdvdG8gZnJlZV9hcmd2Ow0K Kw0KKwlhcmd2WzBdID0gbW9kcHJvYmVfcGF0aDsNCisJYXJndlsxXSA9ICItcSI7DQorCWFyZ3Zb Ml0gPSAiLS0iOw0KKwlhcmd2WzNdID0gbW9kdWxlX25hbWU7CS8qIGNoZWNrIGZyZWVfbW9kcHJv YmVfYXJndigpICovDQorCWFyZ3ZbNF0gPSBOVUxMOw0KKw0KKwlyZXR1cm4gY2FsbF91c2VybW9k ZWhlbHBlcl9mbnMobW9kcHJvYmVfcGF0aCwgYXJndiwgZW52cCwNCisJCXdhaXQgfCBVTUhfS0lM TEFCTEUsIE5VTEwsIGZyZWVfbW9kcHJvYmVfYXJndiwgTlVMTCk7DQorZnJlZV9hcmd2Og0KKwlr ZnJlZShhcmd2KTsNCitvdXQ6DQorCXJldHVybiAtRU5PTUVNOw0KK30NCisNCiAvKioNCiAgKiBf X3JlcXVlc3RfbW9kdWxlIC0gdHJ5IHRvIGxvYWQgYSBrZXJuZWwgbW9kdWxlDQogICogQHdhaXQ6 IHdhaXQgKG9yIG5vdCkgZm9yIHRoZSBvcGVyYXRpb24gdG8gY29tcGxldGUNCkBAIC03OSwxMSAr MTE2LDYgQEAgaW50IF9fcmVxdWVzdF9tb2R1bGUoYm9vbCB3YWl0LCBjb25zdCBjaGFyICpmbXQs IC4uLikNCiAJY2hhciBtb2R1bGVfbmFtZVtNT0RVTEVfTkFNRV9MRU5dOw0KIAl1bnNpZ25lZCBp bnQgbWF4X21vZHByb2JlczsNCiAJaW50IHJldDsNCi0JY2hhciAqYXJndltdID0geyBtb2Rwcm9i ZV9wYXRoLCAiLXEiLCAiLS0iLCBtb2R1bGVfbmFtZSwgTlVMTCB9Ow0KLQlzdGF0aWMgY2hhciAq ZW52cFtdID0geyAiSE9NRT0vIiwNCi0JCQkJIlRFUk09bGludXgiLA0KLQkJCQkiUEFUSD0vc2Jp bjovdXNyL3NiaW46L2JpbjovdXNyL2JpbiIsDQotCQkJCU5VTEwgfTsNCiAJc3RhdGljIGF0b21p Y190IGttb2RfY29uY3VycmVudCA9IEFUT01JQ19JTklUKDApOw0KICNkZWZpbmUgTUFYX0tNT0Rf Q09OQ1VSUkVOVCA1MAkvKiBDb21wbGV0ZWx5IGFyYml0cmFyeSB2YWx1ZSAtIEtBTyAqLw0KIAlz dGF0aWMgaW50IGttb2RfbG9vcF9tc2c7DQpAQCAtMTI2LDkgKzE1OCw3IEBAIGludCBfX3JlcXVl c3RfbW9kdWxlKGJvb2wgd2FpdCwgY29uc3QgY2hhciAqZm10LCAuLi4pDQogDQogCXRyYWNlX21v ZHVsZV9yZXF1ZXN0KG1vZHVsZV9uYW1lLCB3YWl0LCBfUkVUX0lQXyk7DQogDQotCXJldCA9IGNh bGxfdXNlcm1vZGVoZWxwZXJfZm5zKG1vZHByb2JlX3BhdGgsIGFyZ3YsIGVudnAsDQotCQkJd2Fp dCA/IFVNSF9XQUlUX1BST0MgOiBVTUhfV0FJVF9FWEVDLA0KLQkJCU5VTEwsIE5VTEwsIE5VTEwp Ow0KKwlyZXQgPSBjYWxsX21vZHByb2JlKG1vZHVsZV9uYW1lLCB3YWl0ID8gVU1IX1dBSVRfUFJP QyA6IFVNSF9XQUlUX0VYRUMpOw0KIA0KIAlhdG9taWNfZGVjKCZrbW9kX2NvbmN1cnJlbnQpOw0K IAlyZXR1cm4gcmV0Ow0KQEAgLTE4Niw3ICsyMTYsNyBAQCBzdGF0aWMgaW50IF9fX19jYWxsX3Vz ZXJtb2RlaGVscGVyKHZvaWQgKmRhdGEpDQogCS8qIEV4ZWMgZmFpbGVkPyAqLw0KIGZhaWw6DQog CXN1Yl9pbmZvLT5yZXR2YWwgPSByZXR2YWw7DQotCWRvX2V4aXQoMCk7DQorCXJldHVybiAwOw0K IH0NCiANCiB2b2lkIGNhbGxfdXNlcm1vZGVoZWxwZXJfZnJlZWluZm8oc3RydWN0IHN1YnByb2Nl c3NfaW5mbyAqaW5mbykNCkBAIC0xOTcsNiArMjI3LDE5IEBAIHZvaWQgY2FsbF91c2VybW9kZWhl bHBlcl9mcmVlaW5mbyhzdHJ1Y3Qgc3VicHJvY2Vzc19pbmZvICppbmZvKQ0KIH0NCiBFWFBPUlRf U1lNQk9MKGNhbGxfdXNlcm1vZGVoZWxwZXJfZnJlZWluZm8pOw0KIA0KK3N0YXRpYyB2b2lkIHVt aF9jb21wbGV0ZShzdHJ1Y3Qgc3VicHJvY2Vzc19pbmZvICpzdWJfaW5mbykNCit7DQorCXN0cnVj dCBjb21wbGV0aW9uICpjb21wID0geGNoZygmc3ViX2luZm8tPmNvbXBsZXRlLCBOVUxMKTsNCisJ LyoNCisJICogU2VlIGNhbGxfdXNlcm1vZGVoZWxwZXJfZXhlYygpLiBJZiB4Y2hnKCkgcmV0dXJu cyBOVUxMDQorCSAqIHdlIG93biBzdWJfaW5mbywgdGhlIFVNSF9LSUxMQUJMRSBjYWxsZXIgaGFz IGdvbmUgYXdheS4NCisJICovDQorCWlmIChjb21wKQ0KKwkJY29tcGxldGUoY29tcCk7DQorCWVs c2UNCisJCWNhbGxfdXNlcm1vZGVoZWxwZXJfZnJlZWluZm8oc3ViX2luZm8pOw0KK30NCisNCiAv KiBLZXZlbnRkIGNhbid0IGJsb2NrLCBidXQgdGhpcyAoYSBjaGlsZCkgY2FuLiAqLw0KIHN0YXRp YyBpbnQgd2FpdF9mb3JfaGVscGVyKHZvaWQgKmRhdGEpDQogew0KQEAgLTIzMyw3ICsyNzYsNyBA QCBzdGF0aWMgaW50IHdhaXRfZm9yX2hlbHBlcih2b2lkICpkYXRhKQ0KIAkJCXN1Yl9pbmZvLT5y ZXR2YWwgPSByZXQ7DQogCX0NCiANCi0JY29tcGxldGUoc3ViX2luZm8tPmNvbXBsZXRlKTsNCisJ dW1oX2NvbXBsZXRlKHN1Yl9pbmZvKTsNCiAJcmV0dXJuIDA7DQogfQ0KIA0KQEAgLTI0NSw2ICsy ODgsOSBAQCBzdGF0aWMgdm9pZCBfX2NhbGxfdXNlcm1vZGVoZWxwZXIoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQ0KIAllbnVtIHVtaF93YWl0IHdhaXQgPSBzdWJfaW5mby0+d2FpdDsNCiAJcGlk X3QgcGlkOw0KIA0KKwlpZiAod2FpdCAhPSBVTUhfTk9fV0FJVCkNCisJCXdhaXQgJj0gflVNSF9L SUxMQUJMRTsNCisNCiAJLyogQ0xPTkVfVkZPUks6IHdhaXQgdW50aWwgdGhlIHVzZXJtb2RlIGhl bHBlciBoYXMgZXhlY3ZlJ2QNCiAJICogc3VjY2Vzc2Z1bGx5IFdlIG5lZWQgdGhlIGRhdGEgc3Ry dWN0dXJlcyB0byBzdGF5IGFyb3VuZA0KIAkgKiB1bnRpbCB0aGF0IGlzIGRvbmUuICAqLw0KQEAg LTI2Nyw3ICszMTMsNyBAQCBzdGF0aWMgdm9pZCBfX2NhbGxfdXNlcm1vZGVoZWxwZXIoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQ0KIAljYXNlIFVNSF9XQUlUX0VYRUM6DQogCQlpZiAocGlkIDwg MCkNCiAJCQlzdWJfaW5mby0+cmV0dmFsID0gcGlkOw0KLQkJY29tcGxldGUoc3ViX2luZm8tPmNv bXBsZXRlKTsNCisJCXVtaF9jb21wbGV0ZShzdWJfaW5mbyk7DQogCX0NCiB9DQogDQpAQCAtNDM1 LDkgKzQ4MSwyMSBAQCBpbnQgY2FsbF91c2VybW9kZWhlbHBlcl9leGVjKHN0cnVjdCBzdWJwcm9j ZXNzX2luZm8gKnN1Yl9pbmZvLA0KIAlxdWV1ZV93b3JrKGtoZWxwZXJfd3EsICZzdWJfaW5mby0+ d29yayk7DQogCWlmICh3YWl0ID09IFVNSF9OT19XQUlUKQkvKiB0YXNrIGhhcyBmcmVlZCBzdWJf aW5mbyAqLw0KIAkJZ290byB1bmxvY2s7DQorDQorCWlmICh3YWl0ICYgVU1IX0tJTExBQkxFKSB7 DQorCQlyZXR2YWwgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2tpbGxhYmxlKCZkb25lKTsNCisJCWlm ICghcmV0dmFsKQ0KKwkJCWdvdG8gd2FpdF9kb25lOw0KKw0KKwkJLyogdW1oX2NvbXBsZXRlKCkg d2lsbCBzZWUgTlVMTCBhbmQgZnJlZSBzdWJfaW5mbyAqLw0KKwkJaWYgKHhjaGcoJnN1Yl9pbmZv LT5jb21wbGV0ZSwgTlVMTCkpDQorCQkJZ290byB1bmxvY2s7DQorCQkvKiBmYWxsdGhyb3VnaCwg dW1oX2NvbXBsZXRlKCkgd2FzIGFscmVhZHkgY2FsbGVkICovDQorCX0NCisNCiAJd2FpdF9mb3Jf Y29tcGxldGlvbigmZG9uZSk7DQord2FpdF9kb25lOg0KIAlyZXR2YWwgPSBzdWJfaW5mby0+cmV0 dmFsOw0KLQ0KIG91dDoNCiAJY2FsbF91c2VybW9kZWhlbHBlcl9mcmVlaW5mbyhzdWJfaW5mbyk7 DQogdW5sb2NrOg0KZGlmZiAtLWdpdCBhL2tlcm5lbC9wb3NpeC1jcHUtdGltZXJzLmMgYi9rZXJu ZWwvcG9zaXgtY3B1LXRpbWVycy5jDQppbmRleCBlN2NiNzZkLi45NjJjMjkxIDEwMDY0NA0KLS0t IGEva2VybmVsL3Bvc2l4LWNwdS10aW1lcnMuYw0KKysrIGIva2VybmVsL3Bvc2l4LWNwdS10aW1l cnMuYw0KQEAgLTE0NTAsOCArMTQ1MCwxMCBAQCBzdGF0aWMgaW50IGRvX2NwdV9uYW5vc2xlZXAo Y29uc3QgY2xvY2tpZF90IHdoaWNoX2Nsb2NrLCBpbnQgZmxhZ3MsDQogCQl3aGlsZSAoIXNpZ25h bF9wZW5kaW5nKGN1cnJlbnQpKSB7DQogCQkJaWYgKHRpbWVyLml0LmNwdS5leHBpcmVzLnNjaGVk ID09IDApIHsNCiAJCQkJLyoNCi0JCQkJICogT3VyIHRpbWVyIGZpcmVkIGFuZCB3YXMgcmVzZXQu DQorCQkJCSAqIE91ciB0aW1lciBmaXJlZCBhbmQgd2FzIHJlc2V0LCBiZWxvdw0KKwkJCQkgKiBk ZWxldGlvbiBjYW4gbm90IGZhaWwuDQogCQkJCSAqLw0KKwkJCQlwb3NpeF9jcHVfdGltZXJfZGVs KCZ0aW1lcik7DQogCQkJCXNwaW5fdW5sb2NrX2lycSgmdGltZXIuaXRfbG9jayk7DQogCQkJCXJl dHVybiAwOw0KIAkJCX0NCkBAIC0xNDY5LDkgKzE0NzEsMjYgQEAgc3RhdGljIGludCBkb19jcHVf bmFub3NsZWVwKGNvbnN0IGNsb2NraWRfdCB3aGljaF9jbG9jaywgaW50IGZsYWdzLA0KIAkJICog V2Ugd2VyZSBpbnRlcnJ1cHRlZCBieSBhIHNpZ25hbC4NCiAJCSAqLw0KIAkJc2FtcGxlX3RvX3Rp bWVzcGVjKHdoaWNoX2Nsb2NrLCB0aW1lci5pdC5jcHUuZXhwaXJlcywgcnF0cCk7DQotCQlwb3Np eF9jcHVfdGltZXJfc2V0KCZ0aW1lciwgMCwgJnplcm9faXQsIGl0KTsNCisJCWVycm9yID0gcG9z aXhfY3B1X3RpbWVyX3NldCgmdGltZXIsIDAsICZ6ZXJvX2l0LCBpdCk7DQorCQlpZiAoIWVycm9y KSB7DQorCQkJLyoNCisJCQkgKiBUaW1lciBpcyBub3cgdW5hcm1lZCwgZGVsZXRpb24gY2FuIG5v dCBmYWlsLg0KKwkJCSAqLw0KKwkJCXBvc2l4X2NwdV90aW1lcl9kZWwoJnRpbWVyKTsNCisJCX0N CiAJCXNwaW5fdW5sb2NrX2lycSgmdGltZXIuaXRfbG9jayk7DQogDQorCQl3aGlsZSAoZXJyb3Ig PT0gVElNRVJfUkVUUlkpIHsNCisJCQkvKg0KKwkJCSAqIFdlIG5lZWQgdG8gaGFuZGxlIGNhc2Ug d2hlbiB0aW1lciB3YXMgb3IgaXMgaW4gdGhlDQorCQkJICogbWlkZGxlIG9mIGZpcmluZy4gSW4g b3RoZXIgY2FzZXMgd2UgYWxyZWFkeSBmcmVlZA0KKwkJCSAqIHJlc291cmNlcy4NCisJCQkgKi8N CisJCQlzcGluX2xvY2tfaXJxKCZ0aW1lci5pdF9sb2NrKTsNCisJCQllcnJvciA9IHBvc2l4X2Nw dV90aW1lcl9kZWwoJnRpbWVyKTsNCisJCQlzcGluX3VubG9ja19pcnEoJnRpbWVyLml0X2xvY2sp Ow0KKwkJfQ0KKw0KIAkJaWYgKChpdC0+aXRfdmFsdWUudHZfc2VjIHwgaXQtPml0X3ZhbHVlLnR2 X25zZWMpID09IDApIHsNCiAJCQkvKg0KIAkJCSAqIEl0IGFjdHVhbGx5IGRpZCBmaXJlIGFscmVh ZHkuDQpkaWZmIC0tZ2l0IGEva2VybmVsL3Bvc2l4LXRpbWVycy5jIGIva2VybmVsL3Bvc2l4LXRp bWVycy5jDQppbmRleCA2OTE4NWFlLi5lODg1YmUxIDEwMDY0NA0KLS0tIGEva2VybmVsL3Bvc2l4 LXRpbWVycy5jDQorKysgYi9rZXJuZWwvcG9zaXgtdGltZXJzLmMNCkBAIC02MzksNiArNjM5LDEz IEBAIHN0YXRpYyBzdHJ1Y3Qga19pdGltZXIgKl9fbG9ja190aW1lcih0aW1lcl90IHRpbWVyX2lk LCB1bnNpZ25lZCBsb25nICpmbGFncykNCiB7DQogCXN0cnVjdCBrX2l0aW1lciAqdGltcjsNCiAN CisJLyoNCisJICogdGltZXJfdCBjb3VsZCBiZSBhbnkgdHlwZSA+PSBpbnQgYW5kIHdlIHdhbnQg dG8gbWFrZSBzdXJlIGFueQ0KKwkgKiBAdGltZXJfaWQgb3V0c2lkZSBwb3NpdGl2ZSBpbnQgcmFu Z2UgZmFpbHMgbG9va3VwLg0KKwkgKi8NCisJaWYgKCh1bnNpZ25lZCBsb25nIGxvbmcpdGltZXJf aWQgPiBJTlRfTUFYKQ0KKwkJcmV0dXJuIE5VTEw7DQorDQogCXJjdV9yZWFkX2xvY2soKTsNCiAJ dGltciA9IGlkcl9maW5kKCZwb3NpeF90aW1lcnNfaWQsIChpbnQpdGltZXJfaWQpOw0KIAlpZiAo dGltcikgew0KZGlmZiAtLWdpdCBhL2tlcm5lbC9zeXNjdGxfYmluYXJ5LmMgYi9rZXJuZWwvc3lz Y3RsX2JpbmFyeS5jDQppbmRleCBhNjUwNjk0Li45ZjlhYTMyIDEwMDY0NA0KLS0tIGEva2VybmVs L3N5c2N0bF9iaW5hcnkuYw0KKysrIGIva2VybmVsL3N5c2N0bF9iaW5hcnkuYw0KQEAgLTExOTQs OSArMTE5NCwxMCBAQCBzdGF0aWMgc3NpemVfdCBiaW5fZG5fbm9kZV9hZGRyZXNzKHN0cnVjdCBm aWxlICpmaWxlLA0KIA0KIAkJLyogQ29udmVydCB0aGUgZGVjbmV0IGFkZHJlc3MgdG8gYmluYXJ5 ICovDQogCQlyZXN1bHQgPSAtRUlPOw0KLQkJbm9kZXAgPSBzdHJjaHIoYnVmLCAnLicpICsgMTsN CisJCW5vZGVwID0gc3RyY2hyKGJ1ZiwgJy4nKTsNCiAJCWlmICghbm9kZXApDQogCQkJZ290byBv dXQ7DQorCQkrK25vZGVwOw0KIA0KIAkJYXJlYSA9IHNpbXBsZV9zdHJ0b3VsKGJ1ZiwgTlVMTCwg MTApOw0KIAkJbm9kZSA9IHNpbXBsZV9zdHJ0b3VsKG5vZGVwLCBOVUxMLCAxMCk7DQpkaWZmIC0t Z2l0IGEva2VybmVsL3RpbWVjb25zdC5wbCBiL2tlcm5lbC90aW1lY29uc3QucGwNCmluZGV4IGVi NTFkNzYuLjNmNDI2NTIgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdGltZWNvbnN0LnBsDQorKysgYi9r ZXJuZWwvdGltZWNvbnN0LnBsDQpAQCAtMzY5LDEwICszNjksOCBAQCBpZiAoJGh6IGVxICctLWNh bicpIHsNCiAJCWRpZSAiVXNhZ2U6ICQwIEhaXG4iOw0KIAl9DQogDQotCUB2YWwgPSBAeyRjYW5u ZWRfdmFsdWVzeyRoen19Ow0KLQlpZiAoIWRlZmluZWQoQHZhbCkpIHsNCi0JCUB2YWwgPSBjb21w dXRlX3ZhbHVlcygkaHopOw0KLQl9DQorCSRjdiA9ICRjYW5uZWRfdmFsdWVzeyRoen07DQorCUB2 YWwgPSBkZWZpbmVkKCRjdikgPyBAJGN2IDogY29tcHV0ZV92YWx1ZXMoJGh6KTsNCiAJb3V0cHV0 KCRoeiwgQHZhbCk7DQogfQ0KIGV4aXQgMDsNCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvZnRy YWNlLmMgYi9rZXJuZWwvdHJhY2UvZnRyYWNlLmMNCmluZGV4IDRiMWE5NmIuLjZjODgwZTggMTAw NjQ0DQotLS0gYS9rZXJuZWwvdHJhY2UvZnRyYWNlLmMNCisrKyBiL2tlcm5lbC90cmFjZS9mdHJh Y2UuYw0KQEAgLTM0NTQsMzcgKzM0NTQsNTEgQEAgc3RhdGljIHZvaWQgZnRyYWNlX2luaXRfbW9k dWxlKHN0cnVjdCBtb2R1bGUgKm1vZCwNCiAJZnRyYWNlX3Byb2Nlc3NfbG9jcyhtb2QsIHN0YXJ0 LCBlbmQpOw0KIH0NCiANCi1zdGF0aWMgaW50IGZ0cmFjZV9tb2R1bGVfbm90aWZ5KHN0cnVjdCBu b3RpZmllcl9ibG9jayAqc2VsZiwNCi0JCQkJdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKmRhdGEp DQorc3RhdGljIGludCBmdHJhY2VfbW9kdWxlX25vdGlmeV9lbnRlcihzdHJ1Y3Qgbm90aWZpZXJf YmxvY2sgKnNlbGYsDQorCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lkICpkYXRhKQ0K IHsNCiAJc3RydWN0IG1vZHVsZSAqbW9kID0gZGF0YTsNCiANCi0Jc3dpdGNoICh2YWwpIHsNCi0J Y2FzZSBNT0RVTEVfU1RBVEVfQ09NSU5HOg0KKwlpZiAodmFsID09IE1PRFVMRV9TVEFURV9DT01J TkcpDQogCQlmdHJhY2VfaW5pdF9tb2R1bGUobW9kLCBtb2QtPmZ0cmFjZV9jYWxsc2l0ZXMsDQog CQkJCSAgIG1vZC0+ZnRyYWNlX2NhbGxzaXRlcyArDQogCQkJCSAgIG1vZC0+bnVtX2Z0cmFjZV9j YWxsc2l0ZXMpOw0KLQkJYnJlYWs7DQotCWNhc2UgTU9EVUxFX1NUQVRFX0dPSU5HOg0KKwlyZXR1 cm4gMDsNCit9DQorDQorc3RhdGljIGludCBmdHJhY2VfbW9kdWxlX25vdGlmeV9leGl0KHN0cnVj dCBub3RpZmllcl9ibG9jayAqc2VsZiwNCisJCQkJICAgICB1bnNpZ25lZCBsb25nIHZhbCwgdm9p ZCAqZGF0YSkNCit7DQorCXN0cnVjdCBtb2R1bGUgKm1vZCA9IGRhdGE7DQorDQorCWlmICh2YWwg PT0gTU9EVUxFX1NUQVRFX0dPSU5HKQ0KIAkJZnRyYWNlX3JlbGVhc2VfbW9kKG1vZCk7DQotCQli cmVhazsNCi0JfQ0KIA0KIAlyZXR1cm4gMDsNCiB9DQogI2Vsc2UNCi1zdGF0aWMgaW50IGZ0cmFj ZV9tb2R1bGVfbm90aWZ5KHN0cnVjdCBub3RpZmllcl9ibG9jayAqc2VsZiwNCi0JCQkJdW5zaWdu ZWQgbG9uZyB2YWwsIHZvaWQgKmRhdGEpDQorc3RhdGljIGludCBmdHJhY2VfbW9kdWxlX25vdGlm eV9lbnRlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnNlbGYsDQorCQkJCSAgICAgIHVuc2lnbmVk IGxvbmcgdmFsLCB2b2lkICpkYXRhKQ0KK3sNCisJcmV0dXJuIDA7DQorfQ0KK3N0YXRpYyBpbnQg ZnRyYWNlX21vZHVsZV9ub3RpZnlfZXhpdChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnNlbGYsDQor CQkJCSAgICAgdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKmRhdGEpDQogew0KIAlyZXR1cm4gMDsN CiB9DQogI2VuZGlmIC8qIENPTkZJR19NT0RVTEVTICovDQogDQotc3RydWN0IG5vdGlmaWVyX2Js b2NrIGZ0cmFjZV9tb2R1bGVfbmIgPSB7DQotCS5ub3RpZmllcl9jYWxsID0gZnRyYWNlX21vZHVs ZV9ub3RpZnksDQorc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGZ0cmFjZV9tb2R1bGVfZW50ZXJfbmIg PSB7DQorCS5ub3RpZmllcl9jYWxsID0gZnRyYWNlX21vZHVsZV9ub3RpZnlfZW50ZXIsDQogCS5w cmlvcml0eSA9IElOVF9NQVgsCS8qIFJ1biBiZWZvcmUgYW55dGhpbmcgdGhhdCBjYW4gdXNlIGtw cm9iZXMgKi8NCiB9Ow0KIA0KK3N0cnVjdCBub3RpZmllcl9ibG9jayBmdHJhY2VfbW9kdWxlX2V4 aXRfbmIgPSB7DQorCS5ub3RpZmllcl9jYWxsID0gZnRyYWNlX21vZHVsZV9ub3RpZnlfZXhpdCwN CisJLnByaW9yaXR5ID0gSU5UX01JTiwJLyogUnVuIGFmdGVyIGFueXRoaW5nIHRoYXQgY2FuIHJl bW92ZSBrcHJvYmVzICovDQorfTsNCisNCiBleHRlcm4gdW5zaWduZWQgbG9uZyBfX3N0YXJ0X21j b3VudF9sb2NbXTsNCiBleHRlcm4gdW5zaWduZWQgbG9uZyBfX3N0b3BfbWNvdW50X2xvY1tdOw0K IA0KQEAgLTM1MTYsOSArMzUzMCwxMyBAQCB2b2lkIF9faW5pdCBmdHJhY2VfaW5pdCh2b2lkKQ0K IAkJCQkgIF9fc3RhcnRfbWNvdW50X2xvYywNCiAJCQkJICBfX3N0b3BfbWNvdW50X2xvYyk7DQog DQotCXJldCA9IHJlZ2lzdGVyX21vZHVsZV9ub3RpZmllcigmZnRyYWNlX21vZHVsZV9uYik7DQor CXJldCA9IHJlZ2lzdGVyX21vZHVsZV9ub3RpZmllcigmZnRyYWNlX21vZHVsZV9lbnRlcl9uYik7 DQorCWlmIChyZXQpDQorCQlwcl93YXJuaW5nKCJGYWlsZWQgdG8gcmVnaXN0ZXIgdHJhY2UgZnRy YWNlIG1vZHVsZSBlbnRlciBub3RpZmllclxuIik7DQorDQorCXJldCA9IHJlZ2lzdGVyX21vZHVs ZV9ub3RpZmllcigmZnRyYWNlX21vZHVsZV9leGl0X25iKTsNCiAJaWYgKHJldCkNCi0JCXByX3dh cm5pbmcoIkZhaWxlZCB0byByZWdpc3RlciB0cmFjZSBmdHJhY2UgbW9kdWxlIG5vdGlmaWVyXG4i KTsNCisJCXByX3dhcm5pbmcoIkZhaWxlZCB0byByZWdpc3RlciB0cmFjZSBmdHJhY2UgbW9kdWxl IGV4aXQgbm90aWZpZXJcbiIpOw0KIA0KIAlzZXRfZnRyYWNlX2Vhcmx5X2ZpbHRlcnMoKTsNCiAN CmRpZmYgLS1naXQgYS9rZXJuZWwvd29ya3F1ZXVlLmMgYi9rZXJuZWwvd29ya3F1ZXVlLmMNCmlu ZGV4IDdiZjA2OGEuLjBhZDI0MjAgMTAwNjQ0DQotLS0gYS9rZXJuZWwvd29ya3F1ZXVlLmMNCisr KyBiL2tlcm5lbC93b3JrcXVldWUuYw0KQEAgLTEyOCw2ICsxMjgsNyBAQCBzdHJ1Y3Qgd29ya2Vy IHsNCiAJfTsNCiANCiAJc3RydWN0IHdvcmtfc3RydWN0CSpjdXJyZW50X3dvcms7CS8qIEw6IHdv cmsgYmVpbmcgcHJvY2Vzc2VkICovDQorCXdvcmtfZnVuY190CQljdXJyZW50X2Z1bmM7CS8qIEw6 IGN1cnJlbnRfd29yaydzIGZuICovDQogCXN0cnVjdCBjcHVfd29ya3F1ZXVlX3N0cnVjdCAqY3Vy cmVudF9jd3E7IC8qIEw6IGN1cnJlbnRfd29yaydzIGN3cSAqLw0KIAlzdHJ1Y3QgbGlzdF9oZWFk CXNjaGVkdWxlZDsJLyogTDogc2NoZWR1bGVkIHdvcmtzICovDQogCXN0cnVjdCB0YXNrX3N0cnVj dAkqdGFzazsJCS8qIEk6IHdvcmtlciB0YXNrICovDQpAQCAtODQzLDcgKzg0NCw4IEBAIHN0YXRp YyBzdHJ1Y3Qgd29ya2VyICpfX2ZpbmRfd29ya2VyX2V4ZWN1dGluZ193b3JrKHN0cnVjdCBnbG9i YWxfY3dxICpnY3dxLA0KIAlzdHJ1Y3QgaGxpc3Rfbm9kZSAqdG1wOw0KIA0KIAlobGlzdF9mb3Jf ZWFjaF9lbnRyeSh3b3JrZXIsIHRtcCwgYndoLCBoZW50cnkpDQotCQlpZiAod29ya2VyLT5jdXJy ZW50X3dvcmsgPT0gd29yaykNCisJCWlmICh3b3JrZXItPmN1cnJlbnRfd29yayA9PSB3b3JrICYm DQorCQkgICAgd29ya2VyLT5jdXJyZW50X2Z1bmMgPT0gd29yay0+ZnVuYykNCiAJCQlyZXR1cm4g d29ya2VyOw0KIAlyZXR1cm4gTlVMTDsNCiB9DQpAQCAtODUzLDkgKzg1NSwyNyBAQCBzdGF0aWMg c3RydWN0IHdvcmtlciAqX19maW5kX3dvcmtlcl9leGVjdXRpbmdfd29yayhzdHJ1Y3QgZ2xvYmFs X2N3cSAqZ2N3cSwNCiAgKiBAZ2N3cTogZ2N3cSBvZiBpbnRlcmVzdA0KICAqIEB3b3JrOiB3b3Jr IHRvIGZpbmQgd29ya2VyIGZvcg0KICAqDQotICogRmluZCBhIHdvcmtlciB3aGljaCBpcyBleGVj dXRpbmcgQHdvcmsgb24gQGdjd3EuICBUaGlzIGZ1bmN0aW9uIGlzDQotICogaWRlbnRpY2FsIHRv IF9fZmluZF93b3JrZXJfZXhlY3V0aW5nX3dvcmsoKSBleGNlcHQgdGhhdCB0aGlzDQotICogZnVu Y3Rpb24gY2FsY3VsYXRlcyBAYndoIGl0c2VsZi4NCisgKiBGaW5kIGEgd29ya2VyIHdoaWNoIGlz IGV4ZWN1dGluZyBAd29yayBvbiBAZ2N3cSBieSBzZWFyY2hpbmcNCisgKiBAZ2N3cS0+YnVzeV9o YXNoIHdoaWNoIGlzIGtleWVkIGJ5IHRoZSBhZGRyZXNzIG9mIEB3b3JrLiAgRm9yIGEgd29ya2Vy DQorICogdG8gbWF0Y2gsIGl0cyBjdXJyZW50IGV4ZWN1dGlvbiBzaG91bGQgbWF0Y2ggdGhlIGFk ZHJlc3Mgb2YgQHdvcmsgYW5kDQorICogaXRzIHdvcmsgZnVuY3Rpb24uICBUaGlzIGlzIHRvIGF2 b2lkIHVud2FudGVkIGRlcGVuZGVuY3kgYmV0d2Vlbg0KKyAqIHVucmVsYXRlZCB3b3JrIGV4ZWN1 dGlvbnMgdGhyb3VnaCBhIHdvcmsgaXRlbSBiZWluZyByZWN5Y2xlZCB3aGlsZSBzdGlsbA0KKyAq IGJlaW5nIGV4ZWN1dGVkLg0KKyAqDQorICogVGhpcyBpcyBhIGJpdCB0cmlja3kuICBBIHdvcmsg aXRlbSBtYXkgYmUgZnJlZWQgb25jZSBpdHMgZXhlY3V0aW9uDQorICogc3RhcnRzIGFuZCBub3Ro aW5nIHByZXZlbnRzIHRoZSBmcmVlZCBhcmVhIGZyb20gYmVpbmcgcmVjeWNsZWQgZm9yDQorICog YW5vdGhlciB3b3JrIGl0ZW0uICBJZiB0aGUgc2FtZSB3b3JrIGl0ZW0gYWRkcmVzcyBlbmRzIHVw IGJlaW5nIHJldXNlZA0KKyAqIGJlZm9yZSB0aGUgb3JpZ2luYWwgZXhlY3V0aW9uIGZpbmlzaGVz LCB3b3JrcXVldWUgd2lsbCBpZGVudGlmeSB0aGUNCisgKiByZWN5Y2xlZCB3b3JrIGl0ZW0gYXMg Y3VycmVudGx5IGV4ZWN1dGluZyBhbmQgbWFrZSBpdCB3YWl0IHVudGlsIHRoZQ0KKyAqIGN1cnJl bnQgZXhlY3V0aW9uIGZpbmlzaGVzLCBpbnRyb2R1Y2luZyBhbiB1bndhbnRlZCBkZXBlbmRlbmN5 Lg0KKyAqDQorICogVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIHdvcmsgaXRlbSBhZGRyZXNzLCB3 b3JrIGZ1bmN0aW9uIGFuZCB3b3JrcXVldWUNCisgKiB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMu ICBOb3RlIHRoYXQgdGhpcyBpc24ndCBjb21wbGV0ZSBhcyBvbmUgbWF5DQorICogY29uc3RydWN0 IGEgd29yayBmdW5jdGlvbiB3aGljaCBjYW4gaW50cm9kdWNlIGRlcGVuZGVuY3kgb250byBpdHNl bGYNCisgKiB0aHJvdWdoIGEgcmVjeWNsZWQgd29yayBpdGVtLiAgV2VsbCwgaWYgc29tZWJvZHkg d2FudHMgdG8gc2hvb3Qgb25lc2VsZg0KKyAqIGluIHRoZSBmb290IHRoYXQgYmFkbHksIHRoZXJl J3Mgb25seSBzbyBtdWNoIHdlIGNhbiBkbywgYW5kIGlmIHN1Y2gNCisgKiBkZWFkbG9jayBhY3R1 YWxseSBvY2N1cnMsIGl0IHNob3VsZCBiZSBlYXN5IHRvIGxvY2F0ZSB0aGUgY3VscHJpdCB3b3Jr DQorICogZnVuY3Rpb24uDQogICoNCiAgKiBDT05URVhUOg0KICAqIHNwaW5fbG9ja19pcnEoZ2N3 cS0+bG9jaykuDQpAQCAtMTgxNiw3ICsxODM2LDYgQEAgX19hY3F1aXJlcygmZ2N3cS0+bG9jaykN CiAJc3RydWN0IGdsb2JhbF9jd3EgKmdjd3EgPSBjd3EtPmdjd3E7DQogCXN0cnVjdCBobGlzdF9o ZWFkICpid2ggPSBidXN5X3dvcmtlcl9oZWFkKGdjd3EsIHdvcmspOw0KIAlib29sIGNwdV9pbnRl bnNpdmUgPSBjd3EtPndxLT5mbGFncyAmIFdRX0NQVV9JTlRFTlNJVkU7DQotCXdvcmtfZnVuY190 IGYgPSB3b3JrLT5mdW5jOw0KIAlpbnQgd29ya19jb2xvcjsNCiAJc3RydWN0IHdvcmtlciAqY29s bGlzaW9uOw0KICNpZmRlZiBDT05GSUdfTE9DS0RFUA0KQEAgLTE4NDUsNiArMTg2NCw3IEBAIF9f YWNxdWlyZXMoJmdjd3EtPmxvY2spDQogCWRlYnVnX3dvcmtfZGVhY3RpdmF0ZSh3b3JrKTsNCiAJ aGxpc3RfYWRkX2hlYWQoJndvcmtlci0+aGVudHJ5LCBid2gpOw0KIAl3b3JrZXItPmN1cnJlbnRf d29yayA9IHdvcms7DQorCXdvcmtlci0+Y3VycmVudF9mdW5jID0gd29yay0+ZnVuYzsNCiAJd29y a2VyLT5jdXJyZW50X2N3cSA9IGN3cTsNCiAJd29ya19jb2xvciA9IGdldF93b3JrX2NvbG9yKHdv cmspOw0KIA0KQEAgLTE4ODIsNyArMTkwMiw3IEBAIF9fYWNxdWlyZXMoJmdjd3EtPmxvY2spDQog CWxvY2tfbWFwX2FjcXVpcmVfcmVhZCgmY3dxLT53cS0+bG9ja2RlcF9tYXApOw0KIAlsb2NrX21h cF9hY3F1aXJlKCZsb2NrZGVwX21hcCk7DQogCXRyYWNlX3dvcmtxdWV1ZV9leGVjdXRlX3N0YXJ0 KHdvcmspOw0KLQlmKHdvcmspOw0KKwl3b3JrZXItPmN1cnJlbnRfZnVuYyh3b3JrKTsNCiAJLyoN CiAJICogV2hpbGUgd2UgbXVzdCBiZSBjYXJlZnVsIHRvIG5vdCB1c2UgIndvcmsiIGFmdGVyIHRo aXMsIHRoZSB0cmFjZQ0KIAkgKiBwb2ludCB3aWxsIG9ubHkgcmVjb3JkIGl0cyBhZGRyZXNzLg0K QEAgLTE4OTIsMTEgKzE5MTIsMTAgQEAgX19hY3F1aXJlcygmZ2N3cS0+bG9jaykNCiAJbG9ja19t YXBfcmVsZWFzZSgmY3dxLT53cS0+bG9ja2RlcF9tYXApOw0KIA0KIAlpZiAodW5saWtlbHkoaW5f YXRvbWljKCkgfHwgbG9ja2RlcF9kZXB0aChjdXJyZW50KSA+IDApKSB7DQotCQlwcmludGsoS0VS Tl9FUlIgIkJVRzogd29ya3F1ZXVlIGxlYWtlZCBsb2NrIG9yIGF0b21pYzogIg0KLQkJICAgICAg ICIlcy8weCUwOHgvJWRcbiIsDQotCQkgICAgICAgY3VycmVudC0+Y29tbSwgcHJlZW1wdF9jb3Vu dCgpLCB0YXNrX3BpZF9ucihjdXJyZW50KSk7DQotCQlwcmludGsoS0VSTl9FUlIgIiAgICBsYXN0 IGZ1bmN0aW9uOiAiKTsNCi0JCXByaW50X3N5bWJvbCgiJXNcbiIsICh1bnNpZ25lZCBsb25nKWYp Ow0KKwkJcHJfZXJyKCJCVUc6IHdvcmtxdWV1ZSBsZWFrZWQgbG9jayBvciBhdG9taWM6ICVzLzB4 JTA4eC8lZFxuIg0KKwkJICAgICAgICIgICAgIGxhc3QgZnVuY3Rpb246ICVwZlxuIiwNCisJCSAg ICAgICBjdXJyZW50LT5jb21tLCBwcmVlbXB0X2NvdW50KCksIHRhc2tfcGlkX25yKGN1cnJlbnQp LA0KKwkJICAgICAgIHdvcmtlci0+Y3VycmVudF9mdW5jKTsNCiAJCWRlYnVnX3Nob3dfaGVsZF9s b2NrcyhjdXJyZW50KTsNCiAJCWR1bXBfc3RhY2soKTsNCiAJfQ0KQEAgLTE5MTAsNiArMTkyOSw3 IEBAIF9fYWNxdWlyZXMoJmdjd3EtPmxvY2spDQogCS8qIHdlJ3JlIGRvbmUgd2l0aCBpdCwgcmVs ZWFzZSAqLw0KIAlobGlzdF9kZWxfaW5pdCgmd29ya2VyLT5oZW50cnkpOw0KIAl3b3JrZXItPmN1 cnJlbnRfd29yayA9IE5VTEw7DQorCXdvcmtlci0+Y3VycmVudF9mdW5jID0gTlVMTDsNCiAJd29y a2VyLT5jdXJyZW50X2N3cSA9IE5VTEw7DQogCWN3cV9kZWNfbnJfaW5fZmxpZ2h0KGN3cSwgd29y a19jb2xvciwgZmFsc2UpOw0KIH0NCmRpZmYgLS1naXQgYS9saWIvaWRyLmMgYi9saWIvaWRyLmMN CmluZGV4IGVkMDU1YjIuLmFhZGM1MjUgMTAwNjQ0DQotLS0gYS9saWIvaWRyLmMNCisrKyBiL2xp Yi9pZHIuYw0KQEAgLTM5LDYgKzM5LDE0IEBADQogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpp ZHJfbGF5ZXJfY2FjaGU7DQogc3RhdGljIERFRklORV9TUElOTE9DSyhzaW1wbGVfaWRhX2xvY2sp Ow0KIA0KKy8qIHRoZSBtYXhpbXVtIElEIHdoaWNoIGNhbiBiZSBhbGxvY2F0ZWQgZ2l2ZW4gaWRy LT5sYXllcnMgKi8NCitzdGF0aWMgaW50IGlkcl9tYXgoaW50IGxheWVycykNCit7DQorCWludCBi aXRzID0gbWluX3QoaW50LCBsYXllcnMgKiBJRFJfQklUUywgTUFYX0lEX1NISUZUKTsNCisNCisJ cmV0dXJuICgxIDw8IGJpdHMpIC0gMTsNCit9DQorDQogc3RhdGljIHN0cnVjdCBpZHJfbGF5ZXIg KmdldF9mcm9tX2ZyZWVfbGlzdChzdHJ1Y3QgaWRyICppZHApDQogew0KIAlzdHJ1Y3QgaWRyX2xh eWVyICpwOw0KQEAgLTIyMyw3ICsyMzEsNyBAQCBidWlsZF91cDoNCiAJICogQWRkIGEgbmV3IGxh eWVyIHRvIHRoZSB0b3Agb2YgdGhlIHRyZWUgaWYgdGhlIHJlcXVlc3RlZA0KIAkgKiBpZCBpcyBs YXJnZXIgdGhhbiB0aGUgY3VycmVudGx5IGFsbG9jYXRlZCBzcGFjZS4NCiAJICovDQotCXdoaWxl ICgobGF5ZXJzIDwgKE1BWF9MRVZFTCAtIDEpKSAmJiAoaWQgPj0gKDEgPDwgKGxheWVycypJRFJf QklUUykpKSkgew0KKwl3aGlsZSAoaWQgPiBpZHJfbWF4KGxheWVycykpIHsNCiAJCWxheWVycysr Ow0KIAkJaWYgKCFwLT5jb3VudCkgew0KIAkJCS8qIHNwZWNpYWwgY2FzZTogaWYgdGhlIHRyZWUg aXMgY3VycmVudGx5IGVtcHR5LA0KQEAgLTI2NSw3ICsyNzMsNyBAQCBidWlsZF91cDoNCiANCiBz dGF0aWMgaW50IGlkcl9nZXRfbmV3X2Fib3ZlX2ludChzdHJ1Y3QgaWRyICppZHAsIHZvaWQgKnB0 ciwgaW50IHN0YXJ0aW5nX2lkKQ0KIHsNCi0Jc3RydWN0IGlkcl9sYXllciAqcGFbTUFYX0xFVkVM XTsNCisJc3RydWN0IGlkcl9sYXllciAqcGFbTUFYX0xFVkVMICsgMV07DQogCWludCBpZDsNCiAN CiAJaWQgPSBpZHJfZ2V0X2VtcHR5X3Nsb3QoaWRwLCBzdGFydGluZ19pZCwgcGEpOw0KQEAgLTM1 Nyw3ICszNjUsNyBAQCBzdGF0aWMgdm9pZCBpZHJfcmVtb3ZlX3dhcm5pbmcoaW50IGlkKQ0KIHN0 YXRpYyB2b2lkIHN1Yl9yZW1vdmUoc3RydWN0IGlkciAqaWRwLCBpbnQgc2hpZnQsIGludCBpZCkN CiB7DQogCXN0cnVjdCBpZHJfbGF5ZXIgKnAgPSBpZHAtPnRvcDsNCi0Jc3RydWN0IGlkcl9sYXll ciAqKnBhW01BWF9MRVZFTF07DQorCXN0cnVjdCBpZHJfbGF5ZXIgKipwYVtNQVhfTEVWRUwgKyAx XTsNCiAJc3RydWN0IGlkcl9sYXllciAqKipwYWEgPSAmcGFbMF07DQogCXN0cnVjdCBpZHJfbGF5 ZXIgKnRvX2ZyZWU7DQogCWludCBuOw0KQEAgLTQ1MSwxNiArNDU5LDE2IEBAIHZvaWQgaWRyX3Jl bW92ZV9hbGwoc3RydWN0IGlkciAqaWRwKQ0KIAlpbnQgbiwgaWQsIG1heDsNCiAJaW50IGJ0X21h c2s7DQogCXN0cnVjdCBpZHJfbGF5ZXIgKnA7DQotCXN0cnVjdCBpZHJfbGF5ZXIgKnBhW01BWF9M RVZFTF07DQorCXN0cnVjdCBpZHJfbGF5ZXIgKnBhW01BWF9MRVZFTCArIDFdOw0KIAlzdHJ1Y3Qg aWRyX2xheWVyICoqcGFhID0gJnBhWzBdOw0KIA0KIAluID0gaWRwLT5sYXllcnMgKiBJRFJfQklU UzsNCiAJcCA9IGlkcC0+dG9wOw0KIAlyY3VfYXNzaWduX3BvaW50ZXIoaWRwLT50b3AsIE5VTEwp Ow0KLQltYXggPSAxIDw8IG47DQorCW1heCA9IGlkcl9tYXgoaWRwLT5sYXllcnMpOw0KIA0KIAlp ZCA9IDA7DQotCXdoaWxlIChpZCA8IG1heCkgew0KKwl3aGlsZSAoaWQgPj0gMCAmJiBpZCA8PSBt YXgpIHsNCiAJCXdoaWxlIChuID4gSURSX0JJVFMgJiYgcCkgew0KIAkJCW4gLT0gSURSX0JJVFM7 DQogCQkJKnBhYSsrID0gcDsNCkBAIC01MTksNyArNTI3LDcgQEAgdm9pZCAqaWRyX2ZpbmQoc3Ry dWN0IGlkciAqaWRwLCBpbnQgaWQpDQogCS8qIE1hc2sgb2ZmIHVwcGVyIGJpdHMgd2UgZG9uJ3Qg dXNlIGZvciB0aGUgc2VhcmNoLiAqLw0KIAlpZCAmPSBNQVhfSURfTUFTSzsNCiANCi0JaWYgKGlk ID49ICgxIDw8IG4pKQ0KKwlpZiAoaWQgPiBpZHJfbWF4KHAtPmxheWVyICsgMSkpDQogCQlyZXR1 cm4gTlVMTDsNCiAJQlVHX09OKG4gPT0gMCk7DQogDQpAQCAtNTU1LDE1ICs1NjMsMTUgQEAgaW50 IGlkcl9mb3JfZWFjaChzdHJ1Y3QgaWRyICppZHAsDQogew0KIAlpbnQgbiwgaWQsIG1heCwgZXJy b3IgPSAwOw0KIAlzdHJ1Y3QgaWRyX2xheWVyICpwOw0KLQlzdHJ1Y3QgaWRyX2xheWVyICpwYVtN QVhfTEVWRUxdOw0KKwlzdHJ1Y3QgaWRyX2xheWVyICpwYVtNQVhfTEVWRUwgKyAxXTsNCiAJc3Ry dWN0IGlkcl9sYXllciAqKnBhYSA9ICZwYVswXTsNCiANCiAJbiA9IGlkcC0+bGF5ZXJzICogSURS X0JJVFM7DQogCXAgPSByY3VfZGVyZWZlcmVuY2VfcmF3KGlkcC0+dG9wKTsNCi0JbWF4ID0gMSA8 PCBuOw0KKwltYXggPSBpZHJfbWF4KGlkcC0+bGF5ZXJzKTsNCiANCiAJaWQgPSAwOw0KLQl3aGls ZSAoaWQgPCBtYXgpIHsNCisJd2hpbGUgKGlkID49IDAgJiYgaWQgPD0gbWF4KSB7DQogCQl3aGls ZSAobiA+IDAgJiYgcCkgew0KIAkJCW4gLT0gSURSX0JJVFM7DQogCQkJKnBhYSsrID0gcDsNCkBA IC01OTUsMjMgKzYwMywyNSBAQCBFWFBPUlRfU1lNQk9MKGlkcl9mb3JfZWFjaCk7DQogICogUmV0 dXJucyBwb2ludGVyIHRvIHJlZ2lzdGVyZWQgb2JqZWN0IHdpdGggaWQsIHdoaWNoIGlzIG5leHQg bnVtYmVyIHRvDQogICogZ2l2ZW4gaWQuIEFmdGVyIGJlaW5nIGxvb2tlZCB1cCwgKkBuZXh0aWRw IHdpbGwgYmUgdXBkYXRlZCBmb3IgdGhlIG5leHQNCiAgKiBpdGVyYXRpb24uDQorICoNCisgKiBU aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgdW5kZXIgcmN1X3JlYWRfbG9jaygpLCBnaXZlbiB0 aGF0IHRoZSBsZWFmDQorICogcG9pbnRlcnMgbGlmZXRpbWVzIGFyZSBjb3JyZWN0bHkgbWFuYWdl ZC4NCiAgKi8NCi0NCiB2b2lkICppZHJfZ2V0X25leHQoc3RydWN0IGlkciAqaWRwLCBpbnQgKm5l eHRpZHApDQogew0KLQlzdHJ1Y3QgaWRyX2xheWVyICpwLCAqcGFbTUFYX0xFVkVMXTsNCisJc3Ry dWN0IGlkcl9sYXllciAqcCwgKnBhW01BWF9MRVZFTCArIDFdOw0KIAlzdHJ1Y3QgaWRyX2xheWVy ICoqcGFhID0gJnBhWzBdOw0KIAlpbnQgaWQgPSAqbmV4dGlkcDsNCiAJaW50IG4sIG1heDsNCiAN CiAJLyogZmluZCBmaXJzdCBlbnQgKi8NCi0JbiA9IGlkcC0+bGF5ZXJzICogSURSX0JJVFM7DQot CW1heCA9IDEgPDwgbjsNCiAJcCA9IHJjdV9kZXJlZmVyZW5jZV9yYXcoaWRwLT50b3ApOw0KIAlp ZiAoIXApDQogCQlyZXR1cm4gTlVMTDsNCisJbiA9IChwLT5sYXllciArIDEpICogSURSX0JJVFM7 DQorCW1heCA9IGlkcl9tYXgocC0+bGF5ZXIgKyAxKTsNCiANCi0Jd2hpbGUgKGlkIDwgbWF4KSB7 DQorCXdoaWxlIChpZCA+PSAwICYmIGlkIDw9IG1heCkgew0KIAkJd2hpbGUgKG4gPiAwICYmIHAp IHsNCiAJCQluIC09IElEUl9CSVRTOw0KIAkJCSpwYWErKyA9IHA7DQpAQCAtNjIzLDcgKzYzMywx NCBAQCB2b2lkICppZHJfZ2V0X25leHQoc3RydWN0IGlkciAqaWRwLCBpbnQgKm5leHRpZHApDQog CQkJcmV0dXJuIHA7DQogCQl9DQogDQotCQlpZCArPSAxIDw8IG47DQorCQkvKg0KKwkJICogUHJv Y2VlZCB0byB0aGUgbmV4dCBsYXllciBhdCB0aGUgY3VycmVudCBsZXZlbC4gIFVubGlrZQ0KKwkJ ICogaWRyX2Zvcl9lYWNoKCksIEBpZCBpc24ndCBndWFyYW50ZWVkIHRvIGJlIGFsaWduZWQgdG8N CisJCSAqIGxheWVyIGJvdW5kYXJ5IGF0IHRoaXMgcG9pbnQgYW5kIGFkZGluZyAxIDw8IG4gbWF5 DQorCQkgKiBpbmNvcnJlY3RseSBza2lwIElEcy4gIE1ha2Ugc3VyZSB3ZSBqdW1wIHRvIHRoZQ0K KwkJICogYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGxheWVyIHVzaW5nIHJvdW5kX3VwKCkuDQorCQkg Ki8NCisJCWlkID0gcm91bmRfdXAoaWQgKyAxLCAxIDw8IG4pOw0KIAkJd2hpbGUgKG4gPCBmbHMo aWQpKSB7DQogCQkJbiArPSBJRFJfQklUUzsNCiAJCQlwID0gKi0tcGFhOw0KQEAgLTc3OCw3ICs3 OTUsNyBAQCBFWFBPUlRfU1lNQk9MKGlkYV9wcmVfZ2V0KTsNCiAgKi8NCiBpbnQgaWRhX2dldF9u ZXdfYWJvdmUoc3RydWN0IGlkYSAqaWRhLCBpbnQgc3RhcnRpbmdfaWQsIGludCAqcF9pZCkNCiB7 DQotCXN0cnVjdCBpZHJfbGF5ZXIgKnBhW01BWF9MRVZFTF07DQorCXN0cnVjdCBpZHJfbGF5ZXIg KnBhW01BWF9MRVZFTCArIDFdOw0KIAlzdHJ1Y3QgaWRhX2JpdG1hcCAqYml0bWFwOw0KIAl1bnNp Z25lZCBsb25nIGZsYWdzOw0KIAlpbnQgaWRyX2lkID0gc3RhcnRpbmdfaWQgLyBJREFfQklUTUFQ X0JJVFM7DQpkaWZmIC0tZ2l0IGEvbW0vZmFkdmlzZS5jIGIvbW0vZmFkdmlzZS5jDQppbmRleCA4 ZDcyM2M5Li4zNWIyYmIwIDEwMDY0NA0KLS0tIGEvbW0vZmFkdmlzZS5jDQorKysgYi9tbS9mYWR2 aXNlLmMNCkBAIC0xNyw2ICsxNyw3IEBADQogI2luY2x1ZGUgPGxpbnV4L2ZhZHZpc2UuaD4NCiAj aW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+DQogI2luY2x1ZGUgPGxpbnV4L3N5c2NhbGxzLmg+ DQorI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4NCiANCiAjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPg0K IA0KQEAgLTEyMyw5ICsxMjQsMjIgQEAgU1lTQ0FMTF9ERUZJTkUoZmFkdmlzZTY0XzY0KShpbnQg ZmQsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCBsZW4sIGludCBhZHZpY2UpDQogCQlzdGFydF9pbmRl eCA9IChvZmZzZXQrKFBBR0VfQ0FDSEVfU0laRS0xKSkgPj4gUEFHRV9DQUNIRV9TSElGVDsNCiAJ CWVuZF9pbmRleCA9IChlbmRieXRlID4+IFBBR0VfQ0FDSEVfU0hJRlQpOw0KIA0KLQkJaWYgKGVu ZF9pbmRleCA+PSBzdGFydF9pbmRleCkNCi0JCQlpbnZhbGlkYXRlX21hcHBpbmdfcGFnZXMobWFw cGluZywgc3RhcnRfaW5kZXgsDQorCQlpZiAoZW5kX2luZGV4ID49IHN0YXJ0X2luZGV4KSB7DQor CQkJdW5zaWduZWQgbG9uZyBjb3VudCA9IGludmFsaWRhdGVfbWFwcGluZ19wYWdlcyhtYXBwaW5n LA0KKwkJCQkJCXN0YXJ0X2luZGV4LCBlbmRfaW5kZXgpOw0KKw0KKwkJCS8qDQorCQkJICogSWYg ZmV3ZXIgcGFnZXMgd2VyZSBpbnZhbGlkYXRlZCB0aGFuIGV4cGVjdGVkIHRoZW4NCisJCQkgKiBp dCBpcyBwb3NzaWJsZSB0aGF0IHNvbWUgb2YgdGhlIHBhZ2VzIHdlcmUgb24NCisJCQkgKiBhIHBl ci1jcHUgcGFnZXZlYyBmb3IgYSByZW1vdGUgQ1BVLiBEcmFpbiBhbGwNCisJCQkgKiBwYWdldmVj cyBhbmQgdHJ5IGFnYWluLg0KKwkJCSAqLw0KKwkJCWlmIChjb3VudCA8IChlbmRfaW5kZXggLSBz dGFydF9pbmRleCArIDEpKSB7DQorCQkJCWxydV9hZGRfZHJhaW5fYWxsKCk7DQorCQkJCWludmFs aWRhdGVfbWFwcGluZ19wYWdlcyhtYXBwaW5nLCBzdGFydF9pbmRleCwNCiAJCQkJCQllbmRfaW5k ZXgpOw0KKwkJCX0NCisJCX0NCiAJCWJyZWFrOw0KIAlkZWZhdWx0Og0KIAkJcmV0ID0gLUVJTlZB TDsNCmRpZmYgLS1naXQgYS9tbS9tbXVfbm90aWZpZXIuYyBiL21tL21tdV9ub3RpZmllci5jDQpp bmRleCA4NjJiNjA4Li44ZDFjYTJkIDEwMDY0NA0KLS0tIGEvbW0vbW11X25vdGlmaWVyLmMNCisr KyBiL21tL21tdV9ub3RpZmllci5jDQpAQCAtMTQsMTAgKzE0LDE0IEBADQogI2luY2x1ZGUgPGxp bnV4L2V4cG9ydC5oPg0KICNpbmNsdWRlIDxsaW51eC9tbS5oPg0KICNpbmNsdWRlIDxsaW51eC9l cnIuaD4NCisjaW5jbHVkZSA8bGludXgvc3JjdS5oPg0KICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0 ZS5oPg0KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPg0KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+ DQogDQorLyogZ2xvYmFsIFNSQ1UgZm9yIGFsbCBNTXMgKi8NCitzdGF0aWMgc3RydWN0IHNyY3Vf c3RydWN0IHNyY3U7DQorDQogLyoNCiAgKiBUaGlzIGZ1bmN0aW9uIGNhbid0IHJ1biBjb25jdXJy ZW50bHkgYWdhaW5zdCBtbXVfbm90aWZpZXJfcmVnaXN0ZXINCiAgKiBiZWNhdXNlIG1tLT5tbV91 c2VycyA+IDAgZHVyaW5nIG1tdV9ub3RpZmllcl9yZWdpc3RlciBhbmQgZXhpdF9tbWFwDQpAQCAt MjUsNTggKzI5LDYxIEBADQogICogaW4gcGFyYWxsZWwgZGVzcGl0ZSB0aGVyZSBiZWluZyBubyB0 YXNrIHVzaW5nIHRoaXMgbW0gYW55IG1vcmUsDQogICogdGhyb3VnaCB0aGUgdm1hcyBvdXRzaWRl IG9mIHRoZSBleGl0X21tYXAgY29udGV4dCwgc3VjaCBhcyB3aXRoDQogICogdm10cnVuY2F0ZS4g VGhpcyBzZXJpYWxpemVzIGFnYWluc3QgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIgd2l0aA0KLSAq IHRoZSBtbXVfbm90aWZpZXJfbW0tPmxvY2sgaW4gYWRkaXRpb24gdG8gUkNVIGFuZCBpdCBzZXJp YWxpemVzDQotICogYWdhaW5zdCB0aGUgb3RoZXIgbW11IG5vdGlmaWVycyB3aXRoIFJDVS4gc3Ry dWN0IG1tdV9ub3RpZmllcl9tbQ0KKyAqIHRoZSBtbXVfbm90aWZpZXJfbW0tPmxvY2sgaW4gYWRk aXRpb24gdG8gU1JDVSBhbmQgaXQgc2VyaWFsaXplcw0KKyAqIGFnYWluc3QgdGhlIG90aGVyIG1t dSBub3RpZmllcnMgd2l0aCBTUkNVLiBzdHJ1Y3QgbW11X25vdGlmaWVyX21tDQogICogY2FuJ3Qg Z28gYXdheSBmcm9tIHVuZGVyIHVzIGFzIGV4aXRfbW1hcCBob2xkcyBhbiBtbV9jb3VudCBwaW4N CiAgKiBpdHNlbGYuDQogICovDQogdm9pZCBfX21tdV9ub3RpZmllcl9yZWxlYXNlKHN0cnVjdCBt bV9zdHJ1Y3QgKm1tKQ0KIHsNCiAJc3RydWN0IG1tdV9ub3RpZmllciAqbW47DQotCXN0cnVjdCBo bGlzdF9ub2RlICpuOw0KKwlpbnQgaWQ7DQogDQogCS8qDQotCSAqIFJDVSBoZXJlIHdpbGwgYmxv Y2sgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIgdW50aWwNCi0JICogLT5yZWxlYXNlIHJldHVybnMu DQorCSAqIHNyY3VfcmVhZF9sb2NrKCkgaGVyZSB3aWxsIGJsb2NrIHN5bmNocm9uaXplX3NyY3Uo KSBpbg0KKwkgKiBtbXVfbm90aWZpZXJfdW5yZWdpc3RlcigpIHVudGlsIGFsbCByZWdpc3RlcmVk DQorCSAqIC0+cmVsZWFzZSgpIGNhbGxvdXRzIHRoaXMgZnVuY3Rpb24gbWFrZXMgaGF2ZQ0KKwkg KiByZXR1cm5lZC4NCiAJICovDQotCXJjdV9yZWFkX2xvY2soKTsNCi0JaGxpc3RfZm9yX2VhY2hf ZW50cnlfcmN1KG1uLCBuLCAmbW0tPm1tdV9ub3RpZmllcl9tbS0+bGlzdCwgaGxpc3QpDQotCQkv Kg0KLQkJICogaWYgLT5yZWxlYXNlIHJ1bnMgYmVmb3JlIG1tdV9ub3RpZmllcl91bnJlZ2lzdGVy IGl0DQotCQkgKiBtdXN0IGJlIGhhbmRsZWQgYXMgaXQncyB0aGUgb25seSB3YXkgZm9yIHRoZSBk cml2ZXINCi0JCSAqIHRvIGZsdXNoIGFsbCBleGlzdGluZyBzcHRlcyBhbmQgc3RvcCB0aGUgZHJp dmVyDQotCQkgKiBmcm9tIGVzdGFibGlzaGluZyBhbnkgbW9yZSBzcHRlcyBiZWZvcmUgYWxsIHRo ZQ0KLQkJICogcGFnZXMgaW4gdGhlIG1tIGFyZSBmcmVlZC4NCi0JCSAqLw0KLQkJaWYgKG1uLT5v cHMtPnJlbGVhc2UpDQotCQkJbW4tPm9wcy0+cmVsZWFzZShtbiwgbW0pOw0KLQlyY3VfcmVhZF91 bmxvY2soKTsNCi0NCisJaWQgPSBzcmN1X3JlYWRfbG9jaygmc3JjdSk7DQogCXNwaW5fbG9jaygm bW0tPm1tdV9ub3RpZmllcl9tbS0+bG9jayk7DQogCXdoaWxlICh1bmxpa2VseSghaGxpc3RfZW1w dHkoJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxpc3QpKSkgew0KIAkJbW4gPSBobGlzdF9lbnRyeSht bS0+bW11X25vdGlmaWVyX21tLT5saXN0LmZpcnN0LA0KIAkJCQkgc3RydWN0IG1tdV9ub3RpZmll ciwNCiAJCQkJIGhsaXN0KTsNCisNCiAJCS8qDQotCQkgKiBXZSBhcnJpdmVkIGJlZm9yZSBtbXVf bm90aWZpZXJfdW5yZWdpc3RlciBzbw0KLQkJICogbW11X25vdGlmaWVyX3VucmVnaXN0ZXIgd2ls bCBkbyBub3RoaW5nIG90aGVyIHRoYW4NCi0JCSAqIHRvIHdhaXQgLT5yZWxlYXNlIHRvIGZpbmlz aCBhbmQNCi0JCSAqIG1tdV9ub3RpZmllcl91bnJlZ2lzdGVyIHRvIHJldHVybi4NCisJCSAqIFVu bGluay4gIFRoaXMgd2lsbCBwcmV2ZW50IG1tdV9ub3RpZmllcl91bnJlZ2lzdGVyKCkNCisJCSAq IGZyb20gYWxzbyBtYWtpbmcgdGhlIC0+cmVsZWFzZSgpIGNhbGxvdXQuDQogCQkgKi8NCiAJCWhs aXN0X2RlbF9pbml0X3JjdSgmbW4tPmhsaXN0KTsNCisJCXNwaW5fdW5sb2NrKCZtbS0+bW11X25v dGlmaWVyX21tLT5sb2NrKTsNCisNCisJCS8qDQorCQkgKiBDbGVhciBzcHRlcy4gKHNlZSAncmVs ZWFzZScgZGVzY3JpcHRpb24gaW4gbW11X25vdGlmaWVyLmgpDQorCQkgKi8NCisJCWlmIChtbi0+ b3BzLT5yZWxlYXNlKQ0KKwkJCW1uLT5vcHMtPnJlbGVhc2UobW4sIG1tKTsNCisNCisJCXNwaW5f bG9jaygmbW0tPm1tdV9ub3RpZmllcl9tbS0+bG9jayk7DQogCX0NCiAJc3Bpbl91bmxvY2soJm1t LT5tbXVfbm90aWZpZXJfbW0tPmxvY2spOw0KIA0KIAkvKg0KLQkgKiBzeW5jaHJvbml6ZV9yY3Ug aGVyZSBwcmV2ZW50cyBtbXVfbm90aWZpZXJfcmVsZWFzZSB0bw0KLQkgKiByZXR1cm4gdG8gZXhp dF9tbWFwICh3aGljaCB3b3VsZCBwcm9jZWVkIGZyZWVpbmcgYWxsIHBhZ2VzDQotCSAqIGluIHRo ZSBtbSkgdW50aWwgdGhlIC0+cmVsZWFzZSBtZXRob2QgcmV0dXJucywgaWYgaXQgd2FzDQotCSAq IGludm9rZWQgYnkgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIuDQotCSAqDQotCSAqIFRoZSBtbXVf bm90aWZpZXJfbW0gY2FuJ3QgZ28gYXdheSBmcm9tIHVuZGVyIHVzIGJlY2F1c2Ugb25lDQotCSAq IG1tX2NvdW50IGlzIGhvbGQgYnkgZXhpdF9tbWFwLg0KKwkgKiBBbGwgY2FsbG91dHMgdG8gLT5y ZWxlYXNlKCkgd2hpY2ggd2UgaGF2ZSBkb25lIGFyZSBjb21wbGV0ZS4NCisJICogQWxsb3cgc3lu Y2hyb25pemVfc3JjdSgpIGluIG1tdV9ub3RpZmllcl91bnJlZ2lzdGVyKCkgdG8gY29tcGxldGUN CisJICovDQorCXNyY3VfcmVhZF91bmxvY2soJnNyY3UsIGlkKTsNCisNCisJLyoNCisJICogbW11 X25vdGlmaWVyX3VucmVnaXN0ZXIoKSBtYXkgaGF2ZSB1bmxpbmtlZCBhIG5vdGlmaWVyIGFuZCBt YXkNCisJICogc3RpbGwgYmUgY2FsbGluZyBvdXQgdG8gaXQuCUFkZGl0aW9uYWxseSwgb3RoZXIg bm90aWZpZXJzDQorCSAqIG1heSBoYXZlIGJlZW4gYWN0aXZlIHZpYSB2bXRydW5jYXRlKCkgZXQu IGFsLiBCbG9jayBoZXJlDQorCSAqIHRvIGVuc3VyZSB0aGF0IGFsbCBub3RpZmllciBjYWxsb3V0 cyBmb3IgdGhpcyBtbSBoYXZlIGJlZW4NCisJICogY29tcGxldGVkIGFuZCB0aGUgc3B0ZXMgYXJl IHJlYWxseSBjbGVhbmVkIHVwIGJlZm9yZSByZXR1cm5pbmcNCisJICogdG8gZXhpdF9tbWFwKCku DQogCSAqLw0KLQlzeW5jaHJvbml6ZV9yY3UoKTsNCisJc3luY2hyb25pemVfc3JjdSgmc3JjdSk7 DQogfQ0KIA0KIC8qDQpAQCAtODksMTQgKzk2LDE0IEBAIGludCBfX21tdV9ub3RpZmllcl9jbGVh cl9mbHVzaF95b3VuZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwNCiB7DQogCXN0cnVjdCBtbXVfbm90 aWZpZXIgKm1uOw0KIAlzdHJ1Y3QgaGxpc3Rfbm9kZSAqbjsNCi0JaW50IHlvdW5nID0gMDsNCisJ aW50IHlvdW5nID0gMCwgaWQ7DQogDQotCXJjdV9yZWFkX2xvY2soKTsNCisJaWQgPSBzcmN1X3Jl YWRfbG9jaygmc3JjdSk7DQogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShtbiwgbiwgJm1tLT5t bXVfbm90aWZpZXJfbW0tPmxpc3QsIGhsaXN0KSB7DQogCQlpZiAobW4tPm9wcy0+Y2xlYXJfZmx1 c2hfeW91bmcpDQogCQkJeW91bmcgfD0gbW4tPm9wcy0+Y2xlYXJfZmx1c2hfeW91bmcobW4sIG1t LCBhZGRyZXNzKTsNCiAJfQ0KLQlyY3VfcmVhZF91bmxvY2soKTsNCisJc3JjdV9yZWFkX3VubG9j aygmc3JjdSwgaWQpOw0KIA0KIAlyZXR1cm4geW91bmc7DQogfQ0KQEAgLTEwNiw5ICsxMTMsOSBA QCBpbnQgX19tbXVfbm90aWZpZXJfdGVzdF95b3VuZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwNCiB7 DQogCXN0cnVjdCBtbXVfbm90aWZpZXIgKm1uOw0KIAlzdHJ1Y3QgaGxpc3Rfbm9kZSAqbjsNCi0J aW50IHlvdW5nID0gMDsNCisJaW50IHlvdW5nID0gMCwgaWQ7DQogDQotCXJjdV9yZWFkX2xvY2so KTsNCisJaWQgPSBzcmN1X3JlYWRfbG9jaygmc3JjdSk7DQogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5 X3JjdShtbiwgbiwgJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxpc3QsIGhsaXN0KSB7DQogCQlpZiAo bW4tPm9wcy0+dGVzdF95b3VuZykgew0KIAkJCXlvdW5nID0gbW4tPm9wcy0+dGVzdF95b3VuZyht biwgbW0sIGFkZHJlc3MpOw0KQEAgLTExNiw3ICsxMjMsNyBAQCBpbnQgX19tbXVfbm90aWZpZXJf dGVzdF95b3VuZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwNCiAJCQkJYnJlYWs7DQogCQl9DQogCX0N Ci0JcmN1X3JlYWRfdW5sb2NrKCk7DQorCXNyY3VfcmVhZF91bmxvY2soJnNyY3UsIGlkKTsNCiAN CiAJcmV0dXJuIHlvdW5nOw0KIH0NCkBAIC0xMjYsOCArMTMzLDkgQEAgdm9pZCBfX21tdV9ub3Rp Zmllcl9jaGFuZ2VfcHRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHJl c3MsDQogew0KIAlzdHJ1Y3QgbW11X25vdGlmaWVyICptbjsNCiAJc3RydWN0IGhsaXN0X25vZGUg Km47DQorCWludCBpZDsNCiANCi0JcmN1X3JlYWRfbG9jaygpOw0KKwlpZCA9IHNyY3VfcmVhZF9s b2NrKCZzcmN1KTsNCiAJaGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KG1uLCBuLCAmbW0tPm1tdV9u b3RpZmllcl9tbS0+bGlzdCwgaGxpc3QpIHsNCiAJCWlmIChtbi0+b3BzLT5jaGFuZ2VfcHRlKQ0K IAkJCW1uLT5vcHMtPmNoYW5nZV9wdGUobW4sIG1tLCBhZGRyZXNzLCBwdGUpOw0KQEAgLTEzOCw3 ICsxNDYsNyBAQCB2b2lkIF9fbW11X25vdGlmaWVyX2NoYW5nZV9wdGUoc3RydWN0IG1tX3N0cnVj dCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywNCiAJCWVsc2UgaWYgKG1uLT5vcHMtPmludmFs aWRhdGVfcGFnZSkNCiAJCQltbi0+b3BzLT5pbnZhbGlkYXRlX3BhZ2UobW4sIG1tLCBhZGRyZXNz KTsNCiAJfQ0KLQlyY3VfcmVhZF91bmxvY2soKTsNCisJc3JjdV9yZWFkX3VubG9jaygmc3JjdSwg aWQpOw0KIH0NCiANCiB2b2lkIF9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcGFnZShzdHJ1Y3Qg bW1fc3RydWN0ICptbSwNCkBAIC0xNDYsMTMgKzE1NCwxNCBAQCB2b2lkIF9fbW11X25vdGlmaWVy X2ludmFsaWRhdGVfcGFnZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwNCiB7DQogCXN0cnVjdCBtbXVf bm90aWZpZXIgKm1uOw0KIAlzdHJ1Y3QgaGxpc3Rfbm9kZSAqbjsNCisJaW50IGlkOw0KIA0KLQly Y3VfcmVhZF9sb2NrKCk7DQorCWlkID0gc3JjdV9yZWFkX2xvY2soJnNyY3UpOw0KIAlobGlzdF9m b3JfZWFjaF9lbnRyeV9yY3UobW4sIG4sICZtbS0+bW11X25vdGlmaWVyX21tLT5saXN0LCBobGlz dCkgew0KIAkJaWYgKG1uLT5vcHMtPmludmFsaWRhdGVfcGFnZSkNCiAJCQltbi0+b3BzLT5pbnZh bGlkYXRlX3BhZ2UobW4sIG1tLCBhZGRyZXNzKTsNCiAJfQ0KLQlyY3VfcmVhZF91bmxvY2soKTsN CisJc3JjdV9yZWFkX3VubG9jaygmc3JjdSwgaWQpOw0KIH0NCiANCiB2b2lkIF9fbW11X25vdGlm aWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoc3RydWN0IG1tX3N0cnVjdCAqbW0sDQpAQCAtMTYw LDEzICsxNjksMTQgQEAgdm9pZCBfX21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0 KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLA0KIHsNCiAJc3RydWN0IG1tdV9ub3RpZmllciAqbW47DQog CXN0cnVjdCBobGlzdF9ub2RlICpuOw0KKwlpbnQgaWQ7DQogDQotCXJjdV9yZWFkX2xvY2soKTsN CisJaWQgPSBzcmN1X3JlYWRfbG9jaygmc3JjdSk7DQogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3Jj dShtbiwgbiwgJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxpc3QsIGhsaXN0KSB7DQogCQlpZiAobW4t Pm9wcy0+aW52YWxpZGF0ZV9yYW5nZV9zdGFydCkNCiAJCQltbi0+b3BzLT5pbnZhbGlkYXRlX3Jh bmdlX3N0YXJ0KG1uLCBtbSwgc3RhcnQsIGVuZCk7DQogCX0NCi0JcmN1X3JlYWRfdW5sb2NrKCk7 DQorCXNyY3VfcmVhZF91bmxvY2soJnNyY3UsIGlkKTsNCiB9DQogDQogdm9pZCBfX21tdV9ub3Rp Zmllcl9pbnZhbGlkYXRlX3JhbmdlX2VuZChzdHJ1Y3QgbW1fc3RydWN0ICptbSwNCkBAIC0xNzQs MTMgKzE4NCwxNCBAQCB2b2lkIF9fbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKHN0 cnVjdCBtbV9zdHJ1Y3QgKm1tLA0KIHsNCiAJc3RydWN0IG1tdV9ub3RpZmllciAqbW47DQogCXN0 cnVjdCBobGlzdF9ub2RlICpuOw0KKwlpbnQgaWQ7DQogDQotCXJjdV9yZWFkX2xvY2soKTsNCisJ aWQgPSBzcmN1X3JlYWRfbG9jaygmc3JjdSk7DQogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSht biwgbiwgJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxpc3QsIGhsaXN0KSB7DQogCQlpZiAobW4tPm9w cy0+aW52YWxpZGF0ZV9yYW5nZV9lbmQpDQogCQkJbW4tPm9wcy0+aW52YWxpZGF0ZV9yYW5nZV9l bmQobW4sIG1tLCBzdGFydCwgZW5kKTsNCiAJfQ0KLQlyY3VfcmVhZF91bmxvY2soKTsNCisJc3Jj dV9yZWFkX3VubG9jaygmc3JjdSwgaWQpOw0KIH0NCiANCiBzdGF0aWMgaW50IGRvX21tdV9ub3Rp Zmllcl9yZWdpc3RlcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwNCkBAIC0xOTIsNiArMjAzLDEy IEBAIHN0YXRpYyBpbnQgZG9fbW11X25vdGlmaWVyX3JlZ2lzdGVyKHN0cnVjdCBtbXVfbm90aWZp ZXIgKm1uLA0KIA0KIAlCVUdfT04oYXRvbWljX3JlYWQoJm1tLT5tbV91c2VycykgPD0gMCk7DQog DQorCS8qDQorCSogVmVyaWZ5IHRoYXQgbW11X25vdGlmaWVyX2luaXQoKSBhbHJlYWR5IHJ1biBh bmQgdGhlIGdsb2JhbCBzcmN1IGlzDQorCSogaW5pdGlhbGl6ZWQuDQorCSovDQorCUJVR19PTigh c3JjdS5wZXJfY3B1X3JlZik7DQorDQogCXJldCA9IC1FTk9NRU07DQogCW1tdV9ub3RpZmllcl9t bSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBtbXVfbm90aWZpZXJfbW0pLCBHRlBfS0VSTkVMKTsN CiAJaWYgKHVubGlrZWx5KCFtbXVfbm90aWZpZXJfbW0pKQ0KQEAgLTI3NCw4ICsyOTEsOCBAQCB2 b2lkIF9fbW11X25vdGlmaWVyX21tX2Rlc3Ryb3koc3RydWN0IG1tX3N0cnVjdCAqbW0pDQogLyoN CiAgKiBUaGlzIHJlbGVhc2VzIHRoZSBtbV9jb3VudCBwaW4gYXV0b21hdGljYWxseSBhbmQgZnJl ZXMgdGhlIG1tDQogICogc3RydWN0dXJlIGlmIGl0IHdhcyB0aGUgbGFzdCB1c2VyIG9mIGl0LiBJ dCBzZXJpYWxpemVzIGFnYWluc3QNCi0gKiBydW5uaW5nIG1tdSBub3RpZmllcnMgd2l0aCBSQ1Ug YW5kIGFnYWluc3QgbW11X25vdGlmaWVyX3VucmVnaXN0ZXINCi0gKiB3aXRoIHRoZSB1bnJlZ2lz dGVyIGxvY2sgKyBSQ1UuIEFsbCBzcHRlcyBtdXN0IGJlIGRyb3BwZWQgYmVmb3JlDQorICogcnVu bmluZyBtbXUgbm90aWZpZXJzIHdpdGggU1JDVSBhbmQgYWdhaW5zdCBtbXVfbm90aWZpZXJfdW5y ZWdpc3Rlcg0KKyAqIHdpdGggdGhlIHVucmVnaXN0ZXIgbG9jayArIFNSQ1UuIEFsbCBzcHRlcyBt dXN0IGJlIGRyb3BwZWQgYmVmb3JlDQogICogY2FsbGluZyBtbXVfbm90aWZpZXJfdW5yZWdpc3Rl ci4gLT5yZWxlYXNlIG9yIGFueSBvdGhlciBub3RpZmllcg0KICAqIG1ldGhvZCBtYXkgYmUgaW52 b2tlZCBjb25jdXJyZW50bHkgd2l0aCBtbXVfbm90aWZpZXJfdW5yZWdpc3RlciwNCiAgKiBhbmQg b25seSBhZnRlciBtbXVfbm90aWZpZXJfdW5yZWdpc3RlciByZXR1cm5lZCB3ZSdyZSBndWFyYW50 ZWVkDQpAQCAtMjg1LDM1ICszMDIsNDMgQEAgdm9pZCBtbXVfbm90aWZpZXJfdW5yZWdpc3Rlcihz dHJ1Y3QgbW11X25vdGlmaWVyICptbiwgc3RydWN0IG1tX3N0cnVjdCAqbW0pDQogew0KIAlCVUdf T04oYXRvbWljX3JlYWQoJm1tLT5tbV9jb3VudCkgPD0gMCk7DQogDQorCXNwaW5fbG9jaygmbW0t Pm1tdV9ub3RpZmllcl9tbS0+bG9jayk7DQogCWlmICghaGxpc3RfdW5oYXNoZWQoJm1uLT5obGlz dCkpIHsNCi0JCS8qDQotCQkgKiBSQ1UgaGVyZSB3aWxsIGZvcmNlIGV4aXRfbW1hcCB0byB3YWl0 IC0+cmVsZWFzZSB0byBmaW5pc2gNCi0JCSAqIGJlZm9yZSBmcmVlaW5nIHRoZSBwYWdlcy4NCi0J CSAqLw0KLQkJcmN1X3JlYWRfbG9jaygpOw0KKwkJaW50IGlkOw0KIA0KIAkJLyoNCi0JCSAqIGV4 aXRfbW1hcCB3aWxsIGJsb2NrIGluIG1tdV9ub3RpZmllcl9yZWxlYXNlIHRvDQotCQkgKiBndWFy YW50ZWUgLT5yZWxlYXNlIGlzIGNhbGxlZCBiZWZvcmUgZnJlZWluZyB0aGUNCi0JCSAqIHBhZ2Vz Lg0KKwkJICogRW5zdXJlIHdlIHN5bmNocm9uaXplIHVwIHdpdGggX19tbXVfbm90aWZpZXJfcmVs ZWFzZSgpLg0KIAkJICovDQorCQlpZCA9IHNyY3VfcmVhZF9sb2NrKCZzcmN1KTsNCisNCisJCWhs aXN0X2RlbF9yY3UoJm1uLT5obGlzdCk7DQorCQlzcGluX3VubG9jaygmbW0tPm1tdV9ub3RpZmll cl9tbS0+bG9jayk7DQorDQogCQlpZiAobW4tPm9wcy0+cmVsZWFzZSkNCiAJCQltbi0+b3BzLT5y ZWxlYXNlKG1uLCBtbSk7DQotCQlyY3VfcmVhZF91bmxvY2soKTsNCiANCi0JCXNwaW5fbG9jaygm bW0tPm1tdV9ub3RpZmllcl9tbS0+bG9jayk7DQotCQlobGlzdF9kZWxfcmN1KCZtbi0+aGxpc3Qp Ow0KKwkJLyoNCisJCSAqIEFsbG93IF9fbW11X25vdGlmaWVyX3JlbGVhc2UoKSB0byBjb21wbGV0 ZS4NCisJCSAqLw0KKwkJc3JjdV9yZWFkX3VubG9jaygmc3JjdSwgaWQpOw0KKwl9IGVsc2UNCiAJ CXNwaW5fdW5sb2NrKCZtbS0+bW11X25vdGlmaWVyX21tLT5sb2NrKTsNCi0JfQ0KIA0KIAkvKg0K LQkgKiBXYWl0IGFueSBydW5uaW5nIG1ldGhvZCB0byBmaW5pc2gsIG9mIGNvdXJzZSBpbmNsdWRp bmcNCi0JICogLT5yZWxlYXNlIGlmIGl0IHdhcyBydW4gYnkgbW11X25vdGlmaWVyX3JlbGFzZSBp bnN0ZWFkIG9mIHVzLg0KKwkgKiBXYWl0IGZvciBhbnkgcnVubmluZyBtZXRob2QgdG8gZmluaXNo LCBpbmNsdWRpbmcgLT5yZWxlYXNlKCkgaWYgaXQNCisJICogd2FzIHJ1biBieSBfX21tdV9ub3Rp Zmllcl9yZWxlYXNlKCkgaW5zdGVhZCBvZiB1cy4NCiAJICovDQotCXN5bmNocm9uaXplX3JjdSgp Ow0KKwlzeW5jaHJvbml6ZV9zcmN1KCZzcmN1KTsNCiANCiAJQlVHX09OKGF0b21pY19yZWFkKCZt bS0+bW1fY291bnQpIDw9IDApOw0KIA0KIAltbWRyb3AobW0pOw0KIH0NCiBFWFBPUlRfU1lNQk9M X0dQTChtbXVfbm90aWZpZXJfdW5yZWdpc3Rlcik7DQorDQorc3RhdGljIGludCBfX2luaXQgbW11 X25vdGlmaWVyX2luaXQodm9pZCkNCit7DQorCXJldHVybiBpbml0X3NyY3Vfc3RydWN0KCZzcmN1 KTsNCit9DQorDQorbW9kdWxlX2luaXQobW11X25vdGlmaWVyX2luaXQpOw0KZGlmZiAtLWdpdCBh L21tL3BhZ2VfYWxsb2MuYyBiL21tL3BhZ2VfYWxsb2MuYw0KaW5kZXggNGQzYTY5Ny4uNWMwMjhl MiAxMDA2NDQNCi0tLSBhL21tL3BhZ2VfYWxsb2MuYw0KKysrIGIvbW0vcGFnZV9hbGxvYy5jDQpA QCAtNDI1MywxMCArNDI1MywxMSBAQCBzdGF0aWMgdm9pZCBfX21lbWluaXQgY2FsY3VsYXRlX25v ZGVfdG90YWxwYWdlcyhzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0LA0KICAqIHJvdW5kIHdoYXQg aXMgbm93IGluIGJpdHMgdG8gbmVhcmVzdCBsb25nIGluIGJpdHMsIHRoZW4gcmV0dXJuIGl0IGlu DQogICogYnl0ZXMuDQogICovDQotc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IHVzZW1hcF9z aXplKHVuc2lnbmVkIGxvbmcgem9uZXNpemUpDQorc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0 IHVzZW1hcF9zaXplKHVuc2lnbmVkIGxvbmcgem9uZV9zdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcg em9uZXNpemUpDQogew0KIAl1bnNpZ25lZCBsb25nIHVzZW1hcHNpemU7DQogDQorCXpvbmVzaXpl ICs9IHpvbmVfc3RhcnRfcGZuICYgKHBhZ2VibG9ja19ucl9wYWdlcy0xKTsNCiAJdXNlbWFwc2l6 ZSA9IHJvdW5kdXAoem9uZXNpemUsIHBhZ2VibG9ja19ucl9wYWdlcyk7DQogCXVzZW1hcHNpemUg PSB1c2VtYXBzaXplID4+IHBhZ2VibG9ja19vcmRlcjsNCiAJdXNlbWFwc2l6ZSAqPSBOUl9QQUdF QkxPQ0tfQklUUzsNCkBAIC00MjY2LDE3ICs0MjY3LDE5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25n IF9faW5pdCB1c2VtYXBfc2l6ZSh1bnNpZ25lZCBsb25nIHpvbmVzaXplKQ0KIH0NCiANCiBzdGF0 aWMgdm9pZCBfX2luaXQgc2V0dXBfdXNlbWFwKHN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQsDQot CQkJCXN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25lZCBsb25nIHpvbmVzaXplKQ0KKwkJCQlzdHJ1 Y3Qgem9uZSAqem9uZSwNCisJCQkJdW5zaWduZWQgbG9uZyB6b25lX3N0YXJ0X3BmbiwNCisJCQkJ dW5zaWduZWQgbG9uZyB6b25lc2l6ZSkNCiB7DQotCXVuc2lnbmVkIGxvbmcgdXNlbWFwc2l6ZSA9 IHVzZW1hcF9zaXplKHpvbmVzaXplKTsNCisJdW5zaWduZWQgbG9uZyB1c2VtYXBzaXplID0gdXNl bWFwX3NpemUoem9uZV9zdGFydF9wZm4sIHpvbmVzaXplKTsNCiAJem9uZS0+cGFnZWJsb2NrX2Zs YWdzID0gTlVMTDsNCiAJaWYgKHVzZW1hcHNpemUpDQogCQl6b25lLT5wYWdlYmxvY2tfZmxhZ3Mg PSBhbGxvY19ib290bWVtX25vZGVfbm9wYW5pYyhwZ2RhdCwNCiAJCQkJCQkJCSAgIHVzZW1hcHNp emUpOw0KIH0NCiAjZWxzZQ0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF91c2VtYXAoc3RydWN0 IHBnbGlzdF9kYXRhICpwZ2RhdCwNCi0JCQkJc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGxv bmcgem9uZXNpemUpIHt9DQorc3RhdGljIGlubGluZSB2b2lkIHNldHVwX3VzZW1hcChzdHJ1Y3Qg cGdsaXN0X2RhdGEgKnBnZGF0LCBzdHJ1Y3Qgem9uZSAqem9uZSwNCisJCQkJdW5zaWduZWQgbG9u ZyB6b25lX3N0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyB6b25lc2l6ZSkge30NCiAjZW5kaWYgLyog Q09ORklHX1NQQVJTRU1FTSAqLw0KIA0KICNpZmRlZiBDT05GSUdfSFVHRVRMQl9QQUdFX1NJWkVf VkFSSUFCTEUNCkBAIC00NDAxLDcgKzQ0MDQsNyBAQCBzdGF0aWMgdm9pZCBfX3BhZ2luZ2luaXQg ZnJlZV9hcmVhX2luaXRfY29yZShzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0LA0KIAkJCWNvbnRp bnVlOw0KIA0KIAkJc2V0X3BhZ2VibG9ja19vcmRlcigpOw0KLQkJc2V0dXBfdXNlbWFwKHBnZGF0 LCB6b25lLCBzaXplKTsNCisJCXNldHVwX3VzZW1hcChwZ2RhdCwgem9uZSwgem9uZV9zdGFydF9w Zm4sIHNpemUpOw0KIAkJcmV0ID0gaW5pdF9jdXJyZW50bHlfZW1wdHlfem9uZSh6b25lLCB6b25l X3N0YXJ0X3BmbiwNCiAJCQkJCQlzaXplLCBNRU1NQVBfRUFSTFkpOw0KIAkJQlVHX09OKHJldCk7 DQpkaWZmIC0tZ2l0IGEvbW0vc2htZW0uYyBiL21tL3NobWVtLmMNCmluZGV4IDEyYjllODAuLmE3 OGFjZjAgMTAwNjQ0DQotLS0gYS9tbS9zaG1lbS5jDQorKysgYi9tbS9zaG1lbS5jDQpAQCAtMjEy MSw2ICsyMTIxLDcgQEAgc3RhdGljIGludCBzaG1lbV9yZW1vdW50X2ZzKHN0cnVjdCBzdXBlcl9i bG9jayAqc2IsIGludCAqZmxhZ3MsIGNoYXIgKmRhdGEpDQogCXVuc2lnbmVkIGxvbmcgaW5vZGVz Ow0KIAlpbnQgZXJyb3IgPSAtRUlOVkFMOw0KIA0KKwljb25maWcubXBvbCA9IE5VTEw7DQogCWlm IChzaG1lbV9wYXJzZV9vcHRpb25zKGRhdGEsICZjb25maWcsIHRydWUpKQ0KIAkJcmV0dXJuIGVy cm9yOw0KIA0KQEAgLTIxNDUsOCArMjE0NiwxMyBAQCBzdGF0aWMgaW50IHNobWVtX3JlbW91bnRf ZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50ICpmbGFncywgY2hhciAqZGF0YSkNCiAJc2Jp bmZvLT5tYXhfaW5vZGVzICA9IGNvbmZpZy5tYXhfaW5vZGVzOw0KIAlzYmluZm8tPmZyZWVfaW5v ZGVzID0gY29uZmlnLm1heF9pbm9kZXMgLSBpbm9kZXM7DQogDQotCW1wb2xfcHV0KHNiaW5mby0+ bXBvbCk7DQotCXNiaW5mby0+bXBvbCAgICAgICAgPSBjb25maWcubXBvbDsJLyogdHJhbnNmZXJz IGluaXRpYWwgcmVmICovDQorCS8qDQorCSAqIFByZXNlcnZlIHByZXZpb3VzIG1lbXBvbGljeSB1 bmxlc3MgbXBvbCByZW1vdW50IG9wdGlvbiB3YXMgc3BlY2lmaWVkLg0KKwkgKi8NCisJaWYgKGNv bmZpZy5tcG9sKSB7DQorCQltcG9sX3B1dChzYmluZm8tPm1wb2wpOw0KKwkJc2JpbmZvLT5tcG9s ID0gY29uZmlnLm1wb2w7CS8qIHRyYW5zZmVycyBpbml0aWFsIHJlZiAqLw0KKwl9DQogb3V0Og0K IAlzcGluX3VubG9jaygmc2JpbmZvLT5zdGF0X2xvY2spOw0KIAlyZXR1cm4gZXJyb3I7DQpkaWZm IC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9zdHBfYnBkdS5jIGIvbmV0L2JyaWRnZS9icl9zdHBfYnBk dS5jDQppbmRleCBlMTZhYWRlLi43MThjYmU4IDEwMDY0NA0KLS0tIGEvbmV0L2JyaWRnZS9icl9z dHBfYnBkdS5jDQorKysgYi9uZXQvYnJpZGdlL2JyX3N0cF9icGR1LmMNCkBAIC0xNiw2ICsxNiw3 IEBADQogI2luY2x1ZGUgPGxpbnV4L2V0aGVyZGV2aWNlLmg+DQogI2luY2x1ZGUgPGxpbnV4L2xs Yy5oPg0KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQorI2luY2x1ZGUgPGxpbnV4L3BrdF9zY2hl ZC5oPg0KICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPg0KICNpbmNsdWRlIDxuZXQvbGxj Lmg+DQogI2luY2x1ZGUgPG5ldC9sbGNfcGR1Lmg+DQpAQCAtNDAsNiArNDEsNyBAQCBzdGF0aWMg dm9pZCBicl9zZW5kX2JwZHUoc3RydWN0IG5ldF9icmlkZ2VfcG9ydCAqcCwNCiANCiAJc2tiLT5k ZXYgPSBwLT5kZXY7DQogCXNrYi0+cHJvdG9jb2wgPSBodG9ucyhFVEhfUF84MDJfMik7DQorCXNr Yi0+cHJpb3JpdHkgPSBUQ19QUklPX0NPTlRST0w7DQogDQogCXNrYl9yZXNlcnZlKHNrYiwgTExD X1JFU0VSVkUpOw0KIAltZW1jcHkoX19za2JfcHV0KHNrYiwgbGVuZ3RoKSwgZGF0YSwgbGVuZ3Ro KTsNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9hZl9pbmV0LmMgYi9uZXQvaXB2NC9hZl9pbmV0LmMN CmluZGV4IDFiNTA5NmEuLjVkMjI4ZGUgMTAwNjQ0DQotLS0gYS9uZXQvaXB2NC9hZl9pbmV0LmMN CisrKyBiL25ldC9pcHY0L2FmX2luZXQuYw0KQEAgLTIyNiw4ICsyMjYsMTIgQEAgRVhQT1JUX1NZ TUJPTChpbmV0X2xpc3Rlbik7DQogdTMyIGluZXRfZWhhc2hfc2VjcmV0IF9fcmVhZF9tb3N0bHk7 DQogRVhQT1JUX1NZTUJPTChpbmV0X2VoYXNoX3NlY3JldCk7DQogDQordTMyIGlwdjZfaGFzaF9z ZWNyZXQgX19yZWFkX21vc3RseTsNCitFWFBPUlRfU1lNQk9MKGlwdjZfaGFzaF9zZWNyZXQpOw0K Kw0KIC8qDQotICogaW5ldF9laGFzaF9zZWNyZXQgbXVzdCBiZSBzZXQgZXhhY3RseSBvbmNlDQor ICogaW5ldF9laGFzaF9zZWNyZXQgbXVzdCBiZSBzZXQgZXhhY3RseSBvbmNlLCBhbmQgdG8gYSBu b24gbnVsIHZhbHVlDQorICogaXB2Nl9oYXNoX3NlY3JldCBtdXN0IGJlIHNldCBleGFjdGx5IG9u Y2UuDQogICovDQogdm9pZCBidWlsZF9laGFzaF9zZWNyZXQodm9pZCkNCiB7DQpAQCAtMjM3LDcg KzI0MSw4IEBAIHZvaWQgYnVpbGRfZWhhc2hfc2VjcmV0KHZvaWQpDQogCQlnZXRfcmFuZG9tX2J5 dGVzKCZybmQsIHNpemVvZihybmQpKTsNCiAJfSB3aGlsZSAocm5kID09IDApOw0KIA0KLQljbXB4 Y2hnKCZpbmV0X2VoYXNoX3NlY3JldCwgMCwgcm5kKTsNCisJaWYgKGNtcHhjaGcoJmluZXRfZWhh c2hfc2VjcmV0LCAwLCBybmQpID09IDApDQorCQlnZXRfcmFuZG9tX2J5dGVzKCZpcHY2X2hhc2hf c2VjcmV0LCBzaXplb2YoaXB2Nl9oYXNoX3NlY3JldCkpOw0KIH0NCiBFWFBPUlRfU1lNQk9MKGJ1 aWxkX2VoYXNoX3NlY3JldCk7DQogDQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcGluZy5jIGIvbmV0 L2lwdjQvcGluZy5jDQppbmRleCA0M2Q0YzNiLi4yOTRhMzgwIDEwMDY0NA0KLS0tIGEvbmV0L2lw djQvcGluZy5jDQorKysgYi9uZXQvaXB2NC9waW5nLmMNCkBAIC0zMjEsOCArMzIxLDggQEAgdm9p ZCBwaW5nX2VycihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgaW5mbykNCiAJc3RydWN0IGlwaGRy ICppcGggPSAoc3RydWN0IGlwaGRyICopc2tiLT5kYXRhOw0KIAlzdHJ1Y3QgaWNtcGhkciAqaWNt cGggPSAoc3RydWN0IGljbXBoZHIgKikoc2tiLT5kYXRhKyhpcGgtPmlobDw8MikpOw0KIAlzdHJ1 Y3QgaW5ldF9zb2NrICppbmV0X3NvY2s7DQotCWludCB0eXBlID0gaWNtcGgtPnR5cGU7DQotCWlu dCBjb2RlID0gaWNtcGgtPmNvZGU7DQorCWludCB0eXBlID0gaWNtcF9oZHIoc2tiKS0+dHlwZTsN CisJaW50IGNvZGUgPSBpY21wX2hkcihza2IpLT5jb2RlOw0KIAlzdHJ1Y3QgbmV0ICpuZXQgPSBk ZXZfbmV0KHNrYi0+ZGV2KTsNCiAJc3RydWN0IHNvY2sgKnNrOw0KIAlpbnQgaGFyZGVycjsNCmRp ZmYgLS1naXQgYS9uZXQvc3VucnBjL3N2Y194cHJ0LmMgYi9uZXQvc3VucnBjL3N2Y194cHJ0LmMN CmluZGV4IDMyODI0NTMuLjlhY2VlOWQgMTAwNjQ0DQotLS0gYS9uZXQvc3VucnBjL3N2Y194cHJ0 LmMNCisrKyBiL25ldC9zdW5ycGMvc3ZjX3hwcnQuYw0KQEAgLTgxNiw3ICs4MTYsNiBAQCBzdGF0 aWMgdm9pZCBzdmNfYWdlX3RlbXBfeHBydHModW5zaWduZWQgbG9uZyBjbG9zdXJlKQ0KIAlzdHJ1 Y3Qgc3ZjX3NlcnYgKnNlcnYgPSAoc3RydWN0IHN2Y19zZXJ2ICopY2xvc3VyZTsNCiAJc3RydWN0 IHN2Y194cHJ0ICp4cHJ0Ow0KIAlzdHJ1Y3QgbGlzdF9oZWFkICpsZSwgKm5leHQ7DQotCUxJU1Rf SEVBRCh0b19iZV9hZ2VkKTsNCiANCiAJZHByaW50aygic3ZjX2FnZV90ZW1wX3hwcnRzXG4iKTsN CiANCkBAIC04MzcsMjUgKzgzNiwxNSBAQCBzdGF0aWMgdm9pZCBzdmNfYWdlX3RlbXBfeHBydHMo dW5zaWduZWQgbG9uZyBjbG9zdXJlKQ0KIAkJaWYgKGF0b21pY19yZWFkKCZ4cHJ0LT54cHRfcmVm LnJlZmNvdW50KSA+IDEgfHwNCiAJCSAgICB0ZXN0X2JpdChYUFRfQlVTWSwgJnhwcnQtPnhwdF9m bGFncykpDQogCQkJY29udGludWU7DQotCQlzdmNfeHBydF9nZXQoeHBydCk7DQotCQlsaXN0X21v dmUobGUsICZ0b19iZV9hZ2VkKTsNCisJCWxpc3RfZGVsX2luaXQobGUpOw0KIAkJc2V0X2JpdChY UFRfQ0xPU0UsICZ4cHJ0LT54cHRfZmxhZ3MpOw0KIAkJc2V0X2JpdChYUFRfREVUQUNIRUQsICZ4 cHJ0LT54cHRfZmxhZ3MpOw0KLQl9DQotCXNwaW5fdW5sb2NrX2JoKCZzZXJ2LT5zdl9sb2NrKTsN Ci0NCi0Jd2hpbGUgKCFsaXN0X2VtcHR5KCZ0b19iZV9hZ2VkKSkgew0KLQkJbGUgPSB0b19iZV9h Z2VkLm5leHQ7DQotCQkvKiBmaWRkbGluZyB0aGUgeHB0X2xpc3Qgbm9kZSBpcyBzYWZlICdjb3Mg d2UncmUgWFBUX0RFVEFDSEVEICovDQotCQlsaXN0X2RlbF9pbml0KGxlKTsNCi0JCXhwcnQgPSBs aXN0X2VudHJ5KGxlLCBzdHJ1Y3Qgc3ZjX3hwcnQsIHhwdF9saXN0KTsNCi0NCiAJCWRwcmludGso InF1ZXVpbmcgeHBydCAlcCBmb3IgY2xvc2luZ1xuIiwgeHBydCk7DQogDQogCQkvKiBhIHRocmVh ZCB3aWxsIGRlcXVldWUgYW5kIGNsb3NlIGl0IHNvb24gKi8NCiAJCXN2Y194cHJ0X2VucXVldWUo eHBydCk7DQotCQlzdmNfeHBydF9wdXQoeHBydCk7DQogCX0NCisJc3Bpbl91bmxvY2tfYmgoJnNl cnYtPnN2X2xvY2spOw0KIA0KIAltb2RfdGltZXIoJnNlcnYtPnN2X3RlbXB0aW1lciwgamlmZmll cyArIHN2Y19jb25uX2FnZV9wZXJpb2QgKiBIWik7DQogfQ0KZGlmZiAtLWdpdCBhL3NvdW5kL2Ry aXZlcnMvYWxvb3AuYyBiL3NvdW5kL2RyaXZlcnMvYWxvb3AuYw0KaW5kZXggMTkzY2U4MS4uNDJi ODc2ZCAxMDA2NDQNCi0tLSBhL3NvdW5kL2RyaXZlcnMvYWxvb3AuYw0KKysrIGIvc291bmQvZHJp dmVycy9hbG9vcC5jDQpAQCAtMjg3LDEyICsyODcsMTQgQEAgc3RhdGljIGludCBsb29wYmFja190 cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgY21kKQ0KIAkJ CWxvb3BiYWNrX2FjdGl2ZV9ub3RpZnkoZHBjbSk7DQogCQlicmVhazsNCiAJY2FzZSBTTkRSVl9Q Q01fVFJJR0dFUl9QQVVTRV9QVVNIOg0KKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NVU1BFTkQ6 DQogCQlzcGluX2xvY2soJmNhYmxlLT5sb2NrKTsJDQogCQljYWJsZS0+cGF1c2UgfD0gc3RyZWFt Ow0KIAkJc3Bpbl91bmxvY2soJmNhYmxlLT5sb2NrKTsNCiAJCWxvb3BiYWNrX3RpbWVyX3N0b3Ao ZHBjbSk7DQogCQlicmVhazsNCiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9SRUxFQVNF Og0KKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1JFU1VNRToNCiAJCXNwaW5fbG9jaygmY2FibGUt PmxvY2spOw0KIAkJZHBjbS0+bGFzdF9qaWZmaWVzID0gamlmZmllczsNCiAJCWNhYmxlLT5wYXVz ZSAmPSB+c3RyZWFtOw0KQEAgLTU1Miw3ICs1NTQsOCBAQCBzdGF0aWMgc25kX3BjbV91ZnJhbWVz X3QgbG9vcGJhY2tfcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkN CiBzdGF0aWMgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgbG9vcGJhY2tfcGNtX2hhcmR3YXJlID0N CiB7DQogCS5pbmZvID0JCShTTkRSVl9QQ01fSU5GT19JTlRFUkxFQVZFRCB8IFNORFJWX1BDTV9J TkZPX01NQVAgfA0KLQkJCSBTTkRSVl9QQ01fSU5GT19NTUFQX1ZBTElEIHwgU05EUlZfUENNX0lO Rk9fUEFVU0UpLA0KKwkJCSBTTkRSVl9QQ01fSU5GT19NTUFQX1ZBTElEIHwgU05EUlZfUENNX0lO Rk9fUEFVU0UgfA0KKwkJCSBTTkRSVl9QQ01fSU5GT19SRVNVTUUpLA0KIAkuZm9ybWF0cyA9CShT TkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0JFIHwNCiAJCQkg U05EUlZfUENNX0ZNVEJJVF9TMzJfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MzMl9CRSB8DQogCQkJ IFNORFJWX1BDTV9GTVRCSVRfRkxPQVRfTEUgfCBTTkRSVl9QQ01fRk1UQklUX0ZMT0FUX0JFKSwN CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYWxpNTQ1MS9hbGk1NDUxLmMgYi9zb3VuZC9wY2kvYWxp NTQ1MS9hbGk1NDUxLmMNCmluZGV4IGVmODVhYzUuLmJlNjYyYzkgMTAwNjQ0DQotLS0gYS9zb3Vu ZC9wY2kvYWxpNTQ1MS9hbGk1NDUxLmMNCisrKyBiL3NvdW5kL3BjaS9hbGk1NDUxL2FsaTU0NTEu Yw0KQEAgLTE0MzUsNyArMTQzNSw3IEBAIHN0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdCBzbmRfYWxp X3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pDQogDQogCXNwaW5f bG9jaygmY29kZWMtPnJlZ19sb2NrKTsNCiAJaWYgKCFwdm9pY2UtPnJ1bm5pbmcpIHsNCi0JCXNw aW5fdW5sb2NrX2lycSgmY29kZWMtPnJlZ19sb2NrKTsNCisJCXNwaW5fdW5sb2NrKCZjb2RlYy0+ cmVnX2xvY2spOw0KIAkJcmV0dXJuIDA7DQogCX0NCiAJb3V0Yihwdm9pY2UtPm51bWJlciwgQUxJ X1JFRyhjb2RlYywgQUxJX0dDX0NJUikpOw0KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0 Y2hfaGRtaS5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMNCmluZGV4IGJkZTI2MTUuLjNl MDJlMTcgMTAwNjQ0DQotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYw0KKysrIGIvc291 bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMNCkBAIC05MTgsOCArOTE4LDEyIEBAIHN0YXRpYyBpbnQg aGRtaV9wY21fb3BlbihzdHJ1Y3QgaGRhX3BjbV9zdHJlYW0gKmhpbmZvLA0KIAlpZiAoIXN0YXRp Y19oZG1pX3BjbSAmJiBlbGQtPmVsZF92YWxpZCkgew0KIAkJc25kX2hkbWlfZWxkX3VwZGF0ZV9w Y21faW5mbyhlbGQsIGhpbmZvKTsNCiAJCWlmIChoaW5mby0+Y2hhbm5lbHNfbWluID4gaGluZm8t PmNoYW5uZWxzX21heCB8fA0KLQkJICAgICFoaW5mby0+cmF0ZXMgfHwgIWhpbmZvLT5mb3JtYXRz KQ0KKwkJICAgICFoaW5mby0+cmF0ZXMgfHwgIWhpbmZvLT5mb3JtYXRzKSB7DQorCQkJcGVyX2N2 dC0+YXNzaWduZWQgPSAwOw0KKwkJCWhpbmZvLT5uaWQgPSAwOw0KKwkJCXNuZF9oZGFfc3BkaWZf Y3Rsc191bmFzc2lnbihjb2RlYywgcGluX2lkeCk7DQogCQkJcmV0dXJuIC1FTk9ERVY7DQorCQl9 DQogCX0NCiANCiAJLyogU3RvcmUgdGhlIHVwZGF0ZWQgcGFyYW1ldGVycyAqLw0KQEAgLTk4Myw2 ICs5ODcsNyBAQCBzdGF0aWMgdm9pZCBoZG1pX3ByZXNlbnRfc2Vuc2Uoc3RydWN0IGhkbWlfc3Bl Y19wZXJfcGluICpwZXJfcGluLCBpbnQgcmVwb2xsKQ0KIAkJIkhETUkgc3RhdHVzOiBDb2RlYz0l ZCBQaW49JWQgUHJlc2VuY2VfRGV0ZWN0PSVkIEVMRF9WYWxpZD0lZFxuIiwNCiAJCWNvZGVjLT5h ZGRyLCBwaW5fbmlkLCBlbGQtPm1vbml0b3JfcHJlc2VudCwgZWxkX3ZhbGlkKTsNCiANCisJZWxk LT5lbGRfdmFsaWQgPSBmYWxzZTsNCiAJaWYgKGVsZF92YWxpZCkgew0KIAkJaWYgKCFzbmRfaGRt aV9nZXRfZWxkKGVsZCwgY29kZWMsIHBpbl9uaWQpKQ0KIAkJCXNuZF9oZG1pX3Nob3dfZWxkKGVs ZCk7DQpAQCAtMTIyMyw2ICsxMjI4LDkgQEAgc3RhdGljIGludCBnZW5lcmljX2hkbWlfYnVpbGRf amFjayhzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywgaW50IHBpbl9pZHgpDQogCWludCBwY21kZXYg PSBzcGVjLT5wY21fcmVjW3Bpbl9pZHhdLmRldmljZTsNCiANCiAJc25wcmludGYoaGRtaV9zdHIs IHNpemVvZihoZG1pX3N0ciksICJIRE1JL0RQLHBjbT0lZCIsIHBjbWRldik7DQorCWlmICghaXNf amFja19kZXRlY3RhYmxlKGNvZGVjLCBwZXJfcGluLT5waW5fbmlkKSkNCisJCXN0cm5jYXQoaGRt aV9zdHIsICIgUGhhbnRvbSIsDQorCQkJc2l6ZW9mKGhkbWlfc3RyKSAtIHN0cmxlbihoZG1pX3N0 cikgLSAxKTsNCiANCiAJZXJyID0gc25kX2hkYV9pbnB1dF9qYWNrX2FkZChjb2RlYywgcGVyX3Bp bi0+cGluX25pZCwNCiAJCQkgICAgIFNORF9KQUNLX1ZJREVPT1VULCBwY21kZXYgPiAwID8gaGRt aV9zdHIgOiBOVUxMKTsNCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvcm1lMzIuYyBiL3NvdW5kL3Bj aS9ybWUzMi5jDQppbmRleCAyMWJjYjQ3Li42MjA3NWE1IDEwMDY0NA0KLS0tIGEvc291bmQvcGNp L3JtZTMyLmMNCisrKyBiL3NvdW5kL3BjaS9ybWUzMi5jDQpAQCAtMTAxNyw3ICsxMDE3LDcgQEAg c3RhdGljIGludCBzbmRfcm1lMzJfY2FwdHVyZV9jbG9zZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJl YW0gKnN1YnN0cmVhbSkNCiAJc3Bpbl9sb2NrX2lycSgmcm1lMzItPmxvY2spOw0KIAlybWUzMi0+ Y2FwdHVyZV9zdWJzdHJlYW0gPSBOVUxMOw0KIAlybWUzMi0+Y2FwdHVyZV9wZXJpb2RzaXplID0g MDsNCi0Jc3Bpbl91bmxvY2soJnJtZTMyLT5sb2NrKTsNCisJc3Bpbl91bmxvY2tfaXJxKCZybWUz Mi0+bG9jayk7DQogCXJldHVybiAwOw0KIH0NCiANCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvcXVp cmtzLXRhYmxlLmggYi9zb3VuZC91c2IvcXVpcmtzLXRhYmxlLmgNCmluZGV4IDMyZDJhMjEuLjRl MjUxNDggMTAwNjQ0DQotLS0gYS9zb3VuZC91c2IvcXVpcmtzLXRhYmxlLmgNCisrKyBiL3NvdW5k L3VzYi9xdWlya3MtdGFibGUuaA0KQEAgLTE2MjQsNyArMTYyNCw3IEBAIFlBTUFIQV9ERVZJQ0Uo MHg3MDEwLCAiVUI5OSIpLA0KIAkuZHJpdmVyX2luZm8gPSAodW5zaWduZWQgbG9uZykgJiAoY29u c3Qgc3RydWN0IHNuZF91c2JfYXVkaW9fcXVpcmspIHsNCiAJCS8qIC52ZW5kb3JfbmFtZSA9ICJS b2xhbmQiLCAqLw0KIAkJLyogLnByb2R1Y3RfbmFtZSA9ICJBLVBSTyIsICovDQotCQkuaWZudW0g PSAxLA0KKwkJLmlmbnVtID0gMCwNCiAJCS50eXBlID0gUVVJUktfTUlESV9GSVhFRF9FTkRQT0lO VCwNCiAJCS5kYXRhID0gJiAoY29uc3Qgc3RydWN0IHNuZF91c2JfbWlkaV9lbmRwb2ludF9pbmZv KSB7DQogCQkJLm91dF9jYWJsZXMgPSAweDAwMDMsDQo= --=-Uw08nshe/nq6EqLuRsrX-- --=-T5P+jyojVwSHdBxpC/tY Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAUTQjEOe/yOyVhhEJAQouQA/9FJuqayv5CC0fR05dSb/E9qEkvtGcYDy7 az7uSmJ1jMPaPMI8SM24pWJBmQKr5X+bHcObgybB1LqNktogLAFzWRqxiAu6x+h3 arq7l0bgJ5Je/MfCnD0ooS5fZeJgsrj9yj8D89AfrkbM8O0WKEtaA9Vr+JvjGBtZ y3Z0+QbnEv1rKkoWE4ULtPDPKG/y2lCf6N+8jzHd3q9DWnpaPQoVmA1xhkYfMWsL ms4F/YAUA6yDehUHNe9dZi3F53ol1PFD/q55NhImC87iSGKoBKWuw03c2TPPOUiF QS/GvsfImJHJYkopojWuQmiYGT/6oEzoliPa15KEAGwOXmu8vIDaEaLGWACEttqB FgM8R653MGjlyst9Gkk3LiXCz0hquANXeaTkxZozClw6xQOIbtCVJiiCYsUlpuxu EaoqQJUsx9isIWyLl0/vcrrAXlBefAfIdl97zPGGfe62t58tDxe4Q9fgR24I03wP HfJGNQWyrmG/uNWYVH+oMJnFGKnJFuhoCUQWt6Dxne0U9XS5YNM6lsL46CjzY+Gi G+qO6/OflyGKTKXkZNa3QQ2vJ1KCytx+oLyuCJFVg71xL8ImE/kJjTZkY7SBZ3nL FvVkxSGxAED1CHG6pz1RHPGiwecWqpQTdidwSedZ7yg5hdDAsaGRiLZ/SRhY69gJ TPiVcJmRCl4= =OCVU -----END PGP SIGNATURE----- --=-T5P+jyojVwSHdBxpC/tY-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/